Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Қисми аввал: Асосҳои кор бо видео ва тасвирҳо

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Чӣ? Видео кодек як порчаи нармафзор/сахтафзор мебошад, ки видеои рақамиро фишурда ва/ё кушода медиҳад.

Барои чӣ? Сарфи назар аз маҳдудиятҳои муайян ҳам аз ҷиҳати фарохмаҷро ва
ва дар робита ба фазои нигоҳдории маълумот, бозор видеои сифати баландтарро талаб мекунад. Оё шумо дар хотир доред, ки чӣ гуна мо дар мақолаи охирин ҳадди ақали лозимиро барои 30 кадр дар як сония, 24 бит дар як пиксел бо қарори 480x240 ҳисоб карда будем? Мо бе фишурда 82,944 Мбит/с гирифтем. Дар айни замон фишурдасозӣ ягона роҳи интиқоли HD/FullHD/4K ба экранҳои телевизион ва Интернет мебошад. Ин чӣ гуна ба даст оварда шудааст? Акнун биёед ба таври мухтасар ба усулҳои асосӣ назар андозем.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Тарҷума бо дастгирии EDISON Software анҷом дода шудааст.

Мо машғулем ҳамгироии системаҳои назорати видеоӣ, инчунин микротомографро тартиб дода истодаем.

Codec против Контейнер

Хатогии маъмули навоварон иштибоҳ кардани кодекҳои видеоии рақамӣ ва контейнери видеоии рақамӣ мебошад. Контейнер формати муайян аст. Бастае дорои метамаълумоти видео (ва эҳтимолан аудио). Видеои фишурдашуда метавонад ҳамчун як бори контейнер фикр карда шавад.

Одатан, васеъшавии файли видеоӣ навъи контейнери онро нишон медиҳад. Масалан, файли video.mp4 эҳтимолан контейнер аст Қисмати MPEG-4 14, ва файле бо номи video.mkv эҳтимол дорад матрешка. Барои боварӣ ҳосил кардан ба формати кодек ва контейнер, шумо метавонед истифода баред FFmpeg ё MediaInfo.

Якчанд таърих

Пеш аз он ки мо ба Чӣ тавр?, биёед каме ба таърих ғарқ шавем, то баъзе кодекҳои кӯҳнаро каме беҳтар дарк кунем.

Видео кодек H.261 соли 1990 пайдо шуд (аз ҷиҳати техникӣ - соли 1988) ва барои кор бо суръати интиқоли маълумот 64 Кбит/с сохта шудааст. Он аллакай ғояҳоро ба монанди зернамунаи рангҳо, макроблокҳо ва ғайра истифода кардааст. Стандарти видео кодек дар соли 1995 нашр шудааст H.263, ки то соли 2001 инкишоф ёфтааст.

Варианти аввал дар соли 2003 ба анҷом расид H.264 / AVC. Худи ҳамон сол TrueMotion кодеки видеои гумшудаи худро бо номи худ баровард VP3. Google ин ширкатро дар соли 2008 харида, озод кард VP8 дар ҳамон сол. Дар моҳи декабри соли 2012 Google бароварда шуд VP9, ва он тақрибан дар ¾ бозори браузер дастгирӣ карда мешавад (аз ҷумла дастгоҳҳои мобилӣ).

AV1 як кодеки видеоии нави ройгон ва кушодаасос мебошад, ки аз ҷониби он таҳия шудааст Иттиҳод барои расонаҳои кушод (AOMedia), ки ширкатҳои машҳуртаринро дар бар мегиранд: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel ва Cisco. Аввалин версияи кодек, 0.1.0, 7 апрели соли 2016 нашр шуд.

Таваллуди AV1

Дар аввали соли 2015, Google кор мекард VP10Xiph (ки ба Mozilla тааллуқ дорад) кор мекард Даала, ва Cisco кодеки видеоии ройгони худро бо номи худ сохт Thor.

баъд MPEG LA аввалин маҳдудиятҳои солона барои ҲЕЛК (H.265) ва пардохт нисбат ба H.8 264 маротиба зиёдтар аст, аммо онҳо ба зудӣ қоидаҳоро боз иваз карданд:

маҳдудияти солона нест,
ҳаққи мундариҷа (0,5% даромад) ва
ҳаққи воҳиди аст, тақрибан 10 маротиба зиёдтар аз H.264.

Иттиҳод барои расонаҳои кушод аз ҷониби ширкатҳои соҳаҳои гуногун сохта шудааст: истеҳсолкунандагони таҷҳизот (Intel, AMD, ARM, Nvidia, Cisco), провайдерҳои мундариҷа (Google, Netflix, Amazon), созандагони браузер (Google, Mozilla) ва ғайра.

Ширкатҳо як ҳадафи умумӣ доштанд - як кодеки видеоии бе роялти. Баъд пайдо мешавад AV1 бо иҷозатномаи патентии хеле соддатар. Тимотиюс Б. Терриберри презентатсияи аҷибе дод, ки сарчашмаи консепсияи кунунии AV1 ва модели иҷозатномадиҳии он гардид.

Шумо ҳайрон мешавед, ки шумо метавонед кодеки AV1-ро тавассути браузер таҳлил кунед (шахсони ҳавасманд метавонанд ба aomanalyzer.org).

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Кодеки универсалӣ

Биёед ба механизмҳои асосии кодекҳои универсалии видео нигарем. Аксари ин мафҳумҳо муфиданд ва дар кодекҳои муосир ба монанди VP9, AV1 и ҲЕЛК. Ман шуморо огоҳ мекунам, ки бисёре аз чизҳои фаҳмондашуда содда карда мешаванд. Баъзан мисолҳои воқеии ҷаҳонӣ (ба монанди H.264) барои намоиш додани технология истифода мешаванд.

Қадами 1 - тақсим кардани тасвир

Қадами аввал ин тақсим кардани чаҳорчӯба ба якчанд қисмҳо, зерфаслҳо ва берун аз он аст.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Барои чӣ? Сабабҳои зиёд вуҷуд доранд. Вақте ки мо тасвирро тақсим мекунем, мо метавонем вектори ҳаракатро бо истифода аз қисмҳои хурд барои қисмҳои хурди ҳаракаткунанда дақиқтар пешгӯӣ кунем. Дар ҳоле ки барои заминаи статикӣ шумо метавонед худро ба қисмҳои калонтар маҳдуд кунед.

Кодекҳо одатан ин бахшҳоро ба бахшҳо (ё порчаҳо), макроблокҳо (ё блокҳои дарахти рамзгузорӣ) ва зербахшҳои сершумор ташкил мекунанд. Андозаи ниҳоии ин қисмҳо фарқ мекунад, HEVC онро ба 64x64 муқаррар мекунад, дар ҳоле ки AVC 16x16-ро истифода мебарад ва зерҳисматҳоро то андозаи 4x4 тақсим кардан мумкин аст.

Намудҳои чаҳорчӯбаҳоро аз мақолаи охирин дар хотир доред?! Ҳаминро ба блокҳо татбиқ кардан мумкин аст, аз ин рӯ мо метавонем I-фрагмент, B-блок, P-макроблок ва ғайра дошта бошем.

Барои онҳое, ки мехоҳанд машқ кунанд, бубинед, ки тасвир ба қисмҳо ва зербахшҳо чӣ гуна тақсим шудааст. Барои ин, шумо метавонед якеро, ки дар мақолаи қаблӣ зикр шуда буд, истифода баред. Таҳлилгари Intel Video Pro (яке, ки пулакӣ аст, аммо бо версияи озмоишии ройгон, ки бо 10 чаҳорчӯбаи аввал маҳдуд аст). Қисмҳо дар ин ҷо таҳлил карда мешаванд VP9:

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Қадами 2 - пешгӯӣ

Вақте ки мо бахшҳо дорем, мо метавонем барои онҳо пешгӯиҳои астрологӣ кунем. Барои Пешгӯиҳои INTER бояд интиқол дода шавад векторҳои ҳаракат ва боқимонда ва барои пешгӯии INTRA интиқол дода мешавад самти пешгӯӣ ва боқимонда.

Қадами 3 - табдил

Пас аз он ки мо блоки боқимонда дорем (қисмати пешбинишуда → қисмати воқеӣ), онро тавре табдил додан мумкин аст, ки мо медонем, ки кадом пикселҳоро ҳангоми нигоҳ доштани сифати умумӣ партофтан мумкин аст. Баъзе дигаргуниҳо вуҷуд доранд, ки рафтори дақиқро таъмин мекунанд.

Гарчанде ки усулҳои дигар вуҷуд доранд, биёед онҳоро ба таври муфассал дида бароем. табдили косинуси дискретӣ (DCT - аз табдили косинуси дискретӣ). Вазифаҳои асосии DCT:

  • Блокҳои пикселро ба блокҳои якхелаи коэффисиентҳои басомад табдил медиҳад.
  • Қувваи барқро барои рафъи зиёдатии фазоӣ кӯмак мекунад.
  • Бозгаштро таъмин мекунад.

2 феврали соли 2017 Sintra R.J. (Cintra, RJ) ва Bayer F.M. (Bayer FM) мақолаеро дар бораи табдили ба DCT монанд барои фишурдани тасвир нашр кард, ки танҳо 14 иловаро талаб мекунад.

Агар шумо манфиатҳои ҳар як нуктаро нафаҳмед, хавотир нашавед. Акнун биёед мисолҳои мушаххасро истифода барем, то арзиши аслии онҳоро бубинем.

Биёед ин блоки 8x8 пикселро гирем:

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Ин блок ба тасвири зерини 8 бар 8 пиксел дода мешавад:

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Ба ин блоки пикселҳо DCT-ро татбиқ кунед ва блоки 8x8 коэффитсиентҳоро ба даст оред:

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Ва агар мо ин блоки коэффицентҳоро гузорем, мо тасвири зеринро мегирем:

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Тавре ки шумо мебинед, он ба тасвири аслӣ монанд нест. Шумо мебинед, ки коэффициенти якум аз хамаи дигархо хеле фарк мекунад. Ин коэффисиенти аввал ҳамчун коэффисиенти DC маълум аст, ки ҳама намунаҳои массиви вурудро ифода мекунад, ба монанди миёна.

Ин блоки коэффициентхо хусусияти ҷолиб дорад: вай ҷузъҳои баландбасомадро аз ҷузъҳои пастбасомад ҷудо мекунад.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Дар тасвир, қисми зиёди қувва дар басомадҳои пасттар мутамарказ шудааст, аз ин рӯ, агар шумо тасвирро ба ҷузъҳои басомади он табдил диҳед ва коэффитсиентҳои басомади баландтарро партоед, шумо метавонед миқдори маълумоти лозимиро барои тавсифи тасвир бе талафи сифати тасвир кам кунед.

Басомад ба он ишора мекунад, ки сигнал то чӣ андоза зуд тағйир меёбад.

Биёед кӯшиш кунем, ки донишҳои дар ҳолати тестӣ гирифташударо тавассути табдил додани тасвири аслӣ ба басомади он (блоки коэффитсиентҳо) бо истифода аз DCT ва сипас партофтани як қисми коэффисиентҳои камтар муҳим истифода барем.

Аввалан мо онро ба домени басомад табдил медиҳем.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Баъдан, мо як қисми (67%) коэффитсиентҳоро, асосан қисми рости поёниро мепартоем.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Ниҳоят, мо тасвирро аз ин блоки коэффисиентҳои партофташуда барқарор мекунем (дар хотир доред, ки он бояд инверсионалӣ бошад) ва онро бо асл муқоиса кунед.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Мо мебинем, ки он ба тасвири аслӣ шабоҳат дорад, аммо аз асл фарқиятҳои зиёд дорад. Мо 67,1875% -ро партофтем ва ба ҳар ҳол чизе ба асли он шабоҳат доштем. Мумкин буд, ки коэффитсиентҳоро бодиққат партофт, то тасвири боз ҳам беҳтарро ба даст орад, аммо ин мавзӯи оянда аст.

Ҳар як коэффитсиент бо истифода аз ҳама пикселҳо тавлид мешавад

Муҳим: ҳар як коэффитсиент мустақиман ба як пиксел харита карда намешавад, балки маблағи вазншудаи ҳамаи пикселҳо мебошад. Ин графики аҷиб нишон медиҳад, ки чӣ гуна коэффицентҳои якум ва дуюм бо истифода аз вазнҳои хоси ҳар як индекс ҳисоб карда мешаванд.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Шумо инчунин метавонед кӯшиш кунед, ки DCT-ро тавассути дидани ташаккули оддии тасвир дар асоси он тасаввур кунед. Масалан, дар ин ҷо аломати A мавҷуд аст, ки бо истифодаи ҳар як вазн коэффисиенти тавлидшуда:

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Қадами 4 - квантизатсия

Пас аз он ки мо баъзе коэффитсиентҳоро дар қадами қаблӣ партоем, дар марҳилаи охирин (трансформатсия) шакли махсуси квантизатсияро иҷро мекунем. Дар ин марҳила гум кардани маълумот қобили қабул аст. Ё, соддатар, мо барои ноил шудан ба фишурда коэффитсиентҳоро квантӣ хоҳем кард.

Чӣ тавр шумо блоки коэффитсиентҳоро квант кардан мумкин аст? Яке аз усулҳои соддатарин ин квантизатсияи якхела мебошад, ки ҳангоми гирифтани блок онро ба як қимат (ба 10) тақсим мекунем ва натиҷаро яклухт мекунем.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Оё мо метавонем ин блоки коэффицентҳоро баргардонем? Бале, мо метавонем, бо ҳамон арзише, ки мо онро тақсим кардем, зарб кунем.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Ин равиш беҳтарин нест, зеро он аҳамияти ҳар як коэффициентро ба назар намегирад. Ба ҷои як арзиши як матритсаи квантизаторҳоро метавон истифода бурд ва ин матритса метавонист моликияти DCT-ро тавассути квантизатсия кардани аксарияти рости поёнӣ ва ақаллияти чапи боло истифода барад.

Қадами 5 - рамзгузории энтропия

Вақте ки мо маълумотро (блокҳои тасвирӣ, порчаҳо, чаҳорчӯба) квантӣ кардем, мо метавонем онро бе талаф фишурда кунем. Роҳҳои зиёди алгоритмии фишурдани маълумот вуҷуд доранд. Мо ба баъзеи онҳо зуд назар хоҳем кард, барои фаҳмиши амиқ шумо метавонед китоби Фаҳмидани фишурдашавӣ: Фишурдани маълумот барои таҳиягарони муосир ("Фаҳмидани фишурдасозӣ: Фишурдани маълумот барои таҳиягарони муосир").

Рамзгузории видео бо истифода аз VLC

Фарз мекунем, ки мо як қатор аломатҳо дорем: a, e, r и t. Эҳтимолияти (аз 0 то 1) то чӣ андоза зуд-зуд пайдо шудани ҳар як аломат дар ҷараён дар ин ҷадвал оварда шудааст.

a e r t
Эҳтимолият 0,3 0,3 0,2 0,2

Мо метавонем рамзҳои беҳамтои бинариро (беҳтараш хурдтар) ба рамзҳои эҳтимолӣ ва рамзҳои калонтарро ба эҳтимоли камтар таъин кунем.

a e r t
Эҳтимолият 0,3 0,3 0,2 0,2
Рамзи дуӣ 0 10 110 1110

Мо ҷараёнро фишурда, фарз мекунем, ки барои ҳар як аломат 8 бит сарф мекунем. Бе фишурда, 24 бит барои як аломат лозим мешавад. Агар шумо ҳар як аломатро бо рамзи он иваз кунед, шумо пасандоз мегиред!

Қадами аввал ин рамзгузорӣ кардани аломат аст e, ки ба 10 баробар аст ва аломати дуюм аст a, ки илова карда мешавад (на бо роҳи математикӣ): [10][0] ва дар ниҳоят аломати сеюм t, ки ҷараёни ниҳоии фишурдашудаи моро ба [10][0][1110] ё 1001110, ки танҳо 7 бит талаб мекунад (3,4 маротиба камтар аз фосилаи аслӣ).

Лутфан қайд кунед, ки ҳар як код бояд рамзи беназир бо префикс бошад. Алгоритми Хаффман ба шумо дар ёфтани ин ракамхо ёрй мерасонад. Гарчанде ки ин усул аз камбудиҳои худ нест, кодекҳои видеоӣ мавҷуданд, ки ҳоло ҳам ин усули алгоритмиро барои фишурда пешниҳод мекунанд.

Ҳам рамзгузор ва ҳам декодер бояд ба ҷадвали рамзҳо бо рамзҳои дуии худ дастрасӣ дошта бошанд. Аз ин рӯ, инчунин зарур аст, ки ҷадвалро ҳамчун вуруд фиристед.

Рамзгузории арифметикӣ

Фарз мекунем, ки мо як қатор аломатҳо дорем: a, e, r, s и t, ва эҳтимолияти онҳо дар ин ҷадвал оварда шудааст.

a e r s t
Эҳтимолият 0,3 0,3 0,15 0,05 0,2

Бо истифода аз ин ҷадвал, мо диапазонҳоеро месозем, ки дорои ҳама аломатҳои имконпазир мебошанд, ки аз рӯи шумораи калонтарин мураттаб шудаанд.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Акнун биёед ҷараёни се аломатро рамзгузорӣ кунем: хӯрдан.

Аввал аломати аввалро интихоб кунед e, ки дар зердараҷаи аз 0,3 то 0,6 (бе дохил) аст. Мо ин зергурӯҳро мегирем ва онро дубора ба ҳамон таносуби пештара тақсим мекунем, аммо барои ин диапазони нав.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Биёед рамзгузории ҷараёни худро идома диҳем хӯрдан. Акнун аломати дуюмро гиред a, ки дар зергурӯҳи нав аз 0,3 то 0,39 аст ва сипас аломати охирини моро гиред t ва такрори ҳамон раванд, мо зергурӯҳи ниҳоиро аз 0,354 то 0,372 мегирем.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Мо танҳо бояд рақамеро дар зергурӯҳи охирин аз 0,354 то 0,372 интихоб кунем. Биёед 0,36-ро интихоб кунем (вале шумо метавонед ягон рақами дигарро дар ин зергурӯҳ интихоб кунед). Танҳо бо ин рақам мо метавонем ҷараёни аслии худро барқарор кунем. Чунин аст, ки гӯё мо дар дохили диапазон хат кашида бошем, то ҷараёни худро рамзгузорӣ кунем.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Амалиёти баръакс (яъне, рамзкушоӣ) хеле содда аст: бо рақами 0,36 ва диапазони ибтидоии мо, мо метавонем ҳамон равандро иҷро кунем. Аммо ҳоло, бо истифода аз ин рақам, мо ҷараёнро бо истифода аз ин рақам рамзгузорӣ мекунем.

Бо диапазони аввал, мо мебинем, ки рақами мо ба бурида мувофиқат мекунад, бинобар ин ин аломати аввалини мост. Ҳоло мо ин зергурӯҳро бо роҳи ҳамон раванде, ки қаблан буд, тақсим мекунем. Дар ин ҷо шумо мебинед, ки 0,36 ба аломат мувофиқат мекунад a, ва пас аз такрор кардани раванд мо ба аломати охирин расидем t (ташаккул додани ҷараёни аслии рамзгузории мо хӯрдан).

Ҳам рамзгузор ва ҳам декодер бояд ҷадвали эҳтимолияти аломатҳоро дошта бошанд, аз ин рӯ онро ба маълумоти воридотӣ низ фиристодан лозим аст.

Хеле шево, ҳамин тавр не? Ҳар касе, ки ин ҳалли худро пайдо кард, лаънати оқилона буд. Баъзе кодекҳои видеоӣ ин техникаро истифода мебаранд (ё ҳадди аққал онро ҳамчун вариант пешниҳод мекунанд).

Идея ин аст, ки бе талаф фишурдани ҷараёни миқдорбандишуда. Бешубҳа, дар ин мақола даҳҳо тафсилот, сабабҳо, мубодила ва ғайра мавҷуд нест. Аммо агар шумо таҳиягар бошед, шумо бояд бештар донед. Кодекҳои нав кӯшиш мекунанд, ки алгоритмҳои гуногуни рамзгузории энтропияро истифода баранд, ба монанди НИШ.

Қадами 6 - формати bitstream

Пас аз иҷрои ҳамаи ин, танҳо кушодани чаҳорчӯбаҳои фишурда дар заминаи қадамҳои иҷрошуда боқӣ мемонад. Декодер бояд аз қарорҳои қабулкардаи рамзгузор ба таври возеҳ огоҳ карда шавад. Декодер бояд бо тамоми маълумоти зарурӣ таъмин карда шавад: умқи бит, фазои ранг, қарор, иттилооти пешгӯӣ (векторҳои ҳаракат, пешгӯии самти INTER), профил, сатҳ, суръати кадрҳо, навъи кадрҳо, рақами кадрҳо ва ғайра.

Мо ба битстрим зуд назар хоҳем кард H.264. Қадами аввалини мо ин эҷоди ҳадди ақали битстрии H.264 мебошад (FFmpeg ба таври нобаёнӣ ҳама имконоти рамзгузориро илова мекунад, ба монанди СЕИ НАЛ - мо каме баъдтар мефаҳмем). Мо метавонем инро бо истифода аз анбори худ ва FFmpeg иҷро кунем.

./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h264

Ин фармон як ҷараёни хомро тавлид мекунад H.264 бо як чорчӯбаи, 64 × 64 ҳалли, бо фазои ранг YUV420. Дар ин ҳолат, тасвири зерин ҳамчун чаҳорчӯба истифода мешавад.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Ҷараёни bit H.264

Стандарт AVC (H.264) муайян мекунад, ки информатсия дар макрорамкахо (ба маънои шабака) фиристода мешавад, ном дорад НАЛ (ин сатҳи абстраксияи шабака аст). Мақсади асосии NAL ин пешниҳоди муаррифии видеоии "ба веб-дӯстона" мебошад. Ин стандарт бояд дар телевизорҳо (дар асоси ҷараён), Интернет (ба пакет) кор кунад.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Барои муайян кардани сарҳади унсурҳои NAL аломати синхронизатсия мавҷуд аст. Ҳар як аломати ҳамоҳангсозӣ дорои арзиш аст 0x00 0x00 0x01, ба гайр аз аввалинаш, ки ба он баробар аст 0x00 0x00 0x00 0x01. Агар мо сар кунем hexdump барои bitstream H.264 тавлидшуда, мо ҳадди ақал се намунаи NAL дар оғози файл муайян.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Тавре ки зикр гардид, декодер бояд на танҳо маълумоти тасвир, балки тафсилоти видео, чаҳорчӯба, рангҳо, параметрҳои истифодашуда ва ғайраро донад. Байти аввали ҳар як NAL категория ва навъи онро муайян мекунад.

Муайянкунандаи навъи NAL Шарҳи
0 Навъи номаълум
1 Фрагменти тасвири рамзгузоришуда бе IDR
2 Бахши маълумотҳои порчаи кодшуда A
3 Бахши маълумотҳои порчаи кодшуда B
4 Бахши маълумотҳои порчаи кодшуда C
5 Фрагментҳои кодшудаи IDR-и тасвири IDR
6 Маълумоти бештар дар бораи тамдиди SEI
7 Маҷмӯи параметрҳои пайдарпайии SPS
8 Маҷмӯи параметрҳои тасвири PPS
9 Ҷудокунандаи дастрасӣ
10 Анҷоми пайдарпай
11 Охири ришта
... ...

Одатан аввалин NAL-и ҷараёни бит аст SPS. Ин навъи NAL барои маълумот додан дар бораи тағирёбандаҳои умумии рамзгузорӣ, ба монанди профил, сатҳ, ҳалли ва ғайра масъул аст.

Агар мо маркери якуми синхронизатсияро гузаред, мо метавонем байти аввалро рамзкушоӣ кунем, то бифаҳмем, ки кадом навъи NAL аввал аст.

Масалан, байти аввал пас аз аломати синхронизатсия ин аст 01100111, ки дар он бит аввал (0) дар майдони f астorbidden_zero_bit. 2 бит (11) сахро ба мо накл мекунад nal_ref_idc, ки нишон медиҳад, ки ин NAL майдони истинод аст ё не. Ва 5 битҳои боқимонда (00111) сахро ба мо накл мекунад навъи_воҳиди_намуд, дар ин ҳолат блоки SPS (7) НАЛ.

Байти дуюм (binary=01100100, хш=0x64, Дек=100) дар SPS NAL майдон аст profile_idc, ки профилеро, ки рамзгузор истифода мебарад, нишон медихад. Дар ин ҳолат, профили маҳдуди баланд истифода шудааст (яъне профили баланд бидуни дастгирии дуҷонибаи B-сегмент).

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Агар шумо ба мушаххасоти bitstream нигаред H.264 барои SPS NAL, мо арзишҳои зиёдеро барои номи параметр, категория ва тавсиф хоҳем ёфт. Масалан, биёед ба майдонхо назар андозем pic_width_in_mbs_minus_1 и тасвири баландии_дар_харитаи_воҳидҳои_минуси_1.

Номи параметр категория Шарҳи
pic_width_in_mbs_minus_1 0 ue(v)
тасвири баландии_дар_харитаи_воҳидҳои_минуси_1 0 ue(v)

Агар мо баъзе амалҳои математикиро бо арзишҳои ин майдонҳо иҷро кунем, мо ҳалли худро хоҳем гирифт. Яке метавонад бо истифода аз 1920 x 1080 намояндагӣ кунад pic_width_in_mbs_minus_1 бо арзиши 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Боз, барои сарфаи ҷой, ба ҷои рамзгузории 1920, мо онро бо 119 иҷро кардем.

Агар мо тафтиши видеои офаридаамонро дар шакли дуӣ идома диҳем (масалан: xxd -b -c 11 v/minimal_yuv420.h264), пас шумо метавонед ба охирин NAL гузаред, ки худи чаҳорчӯба аст.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Дар ин ҷо мо арзишҳои аввалини 6 байти онро мебинем: 01100101 10001000 10000100 00000000 00100001 11111111. Азбаски байти аввал маълум аст, ки навъи NAL-ро нишон медиҳад, дар ин ҳолат (00101) порчаи IDR аст (5) ва шумо метавонед онро минбаъд таҳқиқ кунед:

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Бо истифода аз маълумоти мушаххасот, коди навъи фрагментро кушодан мумкин аст (навъи_бурида) ва рақами чаҳорчӯба (чаҳорчӯбаи_рақам) дар байни дигар сохахои мухим.

Барои гирифтани арзишҳои баъзе майдонҳо (ue(v), me(v), se(v) ё te(v)), мо бояд фрагментро бо истифода аз декодери махсус дар асоси рамзи экспоненсиалӣ Голомб. Ин усул барои рамзгузории арзишҳои тағирёбанда хеле самаранок аст, хусусан вақте ки арзишҳои пешфарз зиёданд.

Арзиши навъи_бурида и чаҳорчӯбаи_рақам аз ин видео 7 (фрагменти I) ва 0 (чорчӯбаи аввал) мебошанд.

Ҷараёни камеро метавон ҳамчун протокол баррасӣ кард. Агар шумо хоҳед, ки дар бораи bitstream маълумоти бештар гиред, шумо бояд ба мушаххасот муроҷиат кунед ITU H.264. Дар ин ҷо диаграммаи макрос нишон дода шудааст, ки маълумоти тасвир дар куҷост (ЮВ дар шакли фишурда).

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Дигар битҳо метавонанд тафтиш карда шаванд, ба монанди VP9, H.265 (ҲЕЛК) ё ҳатто ҷараёни нави беҳтарини мо AV1. Оё ҳамаи онҳо ба ҳам монанданд? Не, аммо вақте ки шумо ақаллан як чизро мефаҳмед, фаҳмидани боқимонда хеле осонтар мешавад.

Мехоҳед машқ кунед? Ҷараёни bit H.264-ро омӯзед

Шумо метавонед як видеои чаҳорчӯбаи ягона эҷод кунед ва MediaInfo-ро барои тафтиши ҷараёни бит истифода баред H.264. Дар асл, ҳеҷ чиз шуморо аз дидани коди сарчашмае, ки ҷараёни битро таҳлил мекунад, манъ намекунад H.264 (AVC).

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Барои таҷриба, шумо метавонед Intel Video Pro Analyzer -ро истифода баред (оё ман аллакай гуфта будам, ки барнома пулакӣ аст, аммо версияи озмоишии ройгон бо маҳдудияти 10 фоторамка мавҷуд аст?).

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

шарҳ

Дар хотир доред, ки бисёре аз кодекҳои муосир ҳамон моделеро истифода мебаранд, ки мо ҳоло омӯхтаем. Дар ин ҷо, биёед ба диаграммаи блоки кодеки видео назар андозем Thor. Он тамоми қадамҳоеро, ки мо аз сар гузаронидаем, дар бар мегирад. Мақсади ин мақола ин аст, ки ҳадди аққал ба шумо дар бораи навоварӣ ва ҳуҷҷатгузорӣ дар ин соҳа фаҳмиши беҳтаре диҳад.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Қаблан ҳисоб карда шуда буд, ки барои нигоҳ доштани файли видеоӣ бо сифати 139p ва 720 кадр дар сония 30 ГБ фазои диск лозим аст. Агар шумо усулҳои дар ин мақола муҳокимашударо истифода баред (пешгӯиҳои байни чаҳорчӯба ва дохилӣ, трансформатсия, квантизатсия, рамзгузории энтропия ва ғ.), пас шумо метавонед ба даст оред (дар асоси он, ки мо барои як пиксел 0,031 бит сарф мекунем), видеои хеле сифати қаноатбахш, ишғол танҳо 367,82 MB, на 139 ГБ хотира.

Чӣ тавр H.265 нисбат ба H.264 таносуби фишурдани беҳтарро ба даст меорад?

Акнун, ки мо дар бораи чӣ гуна кор кардани кодекҳо бештар медонем, фаҳмидан осонтар аст, ки чӣ гуна кодекҳои навтар метавонанд бо битҳои камтар қарорҳои баландтар расонанд.

Агар шумо муқоиса кунед AVC и ҲЕЛК, бояд дар хотир дошт, ки ин қариб ҳамеша интихоби байни сарбории CPU ва таносуби фишурдашавӣ аст.

ҲЕЛК дорои имконоти бештари бахш (ва зерфасл) аз AVC, самтҳои пешгӯии дохилӣ бештар, рамзгузории беҳтаршудаи энтропия ва ғайра. Хамаи ин такмилхо ба амал оварда шудаанд H.265 қодир ба фишурдани 50% бештар аз H.264.

Кодеки видео чӣ гуна кор мекунад? Қисми 2. Чӣ, чаро, чӣ гуна

Қисми аввал: Асосҳои кор бо видео ва тасвирҳо

Манбаъ: will.com

Илова Эзоҳ