Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ingxenye yokuqala: Izisekelo zokusebenza ngevidiyo nezithombe

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Yini Ikhodekhi yevidiyo iwucezu lwesofthiwe/izingxenyekazi zekhompuyutha ezicindezela kanye/noma ezinciphisa ividiyo yedijithali.

Yini? Naphezu kwemikhawulo ethile kokubili ngokomkhawulokudonsa kanye
futhi ngokuya ngendawo yokugcina idatha, imakethe ifuna ividiyo yekhwalithi ephezulu kakhulu. Uyakhumbula ukuthi kokuthunyelwe kokugcina sibale kanjani ubuncane obudingekayo bozimele abangu-30 ngesekhondi, amabhithi angu-24 ngephikseli ngalinye, ngokulungiswa okungu-480x240? Sithole 82,944 Mbit/s ngaphandle kokucindezelwa. Ukucindezela okwamanje ukuphela kwendlela ngokuvamile yokudlulisa i-HD/FullHD/4K kuzikrini zikamabonakude kanye ne-inthanethi. Kufinyelelwa kanjani lokhu? Manje ake sibheke kafushane izindlela eziyinhloko.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ukuhumusha kwenziwe ngosekelo lwe-EDISON Software.

Sithembisene umshado ukuhlanganiswa kwezinhlelo zokubhekwa kwevidiyoFuthi sakha i-microtomograph.

I-Codec vs Isiqukathi

Iphutha elivamile elenziwa abasanda kuzalwa ukudida ikhodekhi yevidiyo yedijithali nesiqukathi sevidiyo yedijithali. Isiqukathi siyifomethi ethile. Isisonga esiqukethe imethadatha yevidiyo (futhi mhlawumbe yomsindo). Ividiyo ecindezelwe ingacatshangwa njengomthwalo wesitsha.

Ngokuvamile, ukunwetshwa kwefayela levidiyo kubonisa uhlobo lwalo lwesiqukathi. Isibonelo, ifayela elithi video.mp4 cishe liyisitsha MPEG-4 Ingxenye 14, futhi ifayela elinegama elithi video.mkv kungenzeka kakhulu i-matryoshka. Ukuze uqiniseke ngokuphelele ngefomethi ye-codec nesitsha, ungasebenzisa FFmpeg noma MediaInfo.

Umlando omncane

Ngaphambi kokuthi sifike Kanjani?, ake singene shi emlandweni ukuze siqonde kangcono amakhodekhi amadala.

Ikhodekhi yevidiyo H.261 yavela ngo-1990 (ngobuchwepheshe - ngo-1988) futhi yadalelwa ukusebenza ngenani lokudlulisa idatha lika-64 Kbps. Ivele isebenzise imibono efana nokusampula kombala, ama-macroblocks, njll. Izinga le-codec yevidiyo lashicilelwa ngo-1995 H.263, eyathuthukiswa kwaze kwaba ngu-2001.

Inguqulo yokuqala yaqedwa ngo-2003 H.264/AVC. Ngawo lowo nyaka, i-TrueMotion ikhiphe ikhodekhi yayo yamahhala yevidiyo elahlekile ebizwa VP3. I-Google ithenge inkampani ngo-2008, ukuyikhulula VP8 ngawo lowo nyaka. NgoDisemba 2012, i-Google yakhululwa VP9, futhi isekelwa cishe ku-ΒΎ yemakethe yesiphequluli (okuhlanganisa namadivaysi eselula).

AV1 iyikhodekhi yevidiyo yamahhala nevulekile ethuthukiswe ngu I-Alliance for Open Media (I-AOMedia), okufaka izinkampani ezidume kakhulu, njenge: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel neCisco. Inguqulo yokuqala yekhodekhi, 0.1.0, yashicilelwa ngo-April 7, 2016.

Ukuzalwa kwe-AV1

Ekuqaleni kuka-2015, i-Google yayisebenza VP10U-Xiph (ophethwe yi-Mozilla) ubesasebenza Daala, futhi i-Cisco yenza i-codec yayo yamahhala yevidiyo ebizwa ngokuthi Thor.

Khona-ke, MPEG LA okokuqala kumenyezelwe imikhawulo yonyaka ye HEVC (H.265) kanye nenkokhelo ephindwe izikhathi ezingu-8 kune-H.264, kodwa ngokushesha baphinde bashintsha imithetho:

akukho mkhawulo wonyaka,
imali yokuqukethwe (0,5% yemali engenayo) kanye
imali yeyunithi cishe iphindwe izikhathi ezingu-10 kune-H.264.

I-Alliance for Open Media yadalwa izinkampani ezivela emikhakheni ehlukene: abakhiqizi bemishini (Intel, AMD, ARM, Nvidia, Cisco), abahlinzeki bokuqukethwe (i-Google, i-Netflix, i-Amazon), abadali besiphequluli (i-Google, i-Mozilla) nabanye.

Izinkampani bezinomgomo ofanayo - ikhodekhi yevidiyo engakhokhelwa. Bese kuvela AV1 ngelayisense yelungelo lobunikazi elilula kakhulu. U-Timothy B. Terryberry unikeze isethulo esihle kakhulu esibe umsuka womqondo wamanje we-AV1 kanye nemodeli yawo yokulayisensa.

Uzomangala ukwazi ukuthi ungakwazi ukuhlaziya i-codec ye-AV1 ngesiphequluli (labo abanentshisekelo bangaya ku- i-aomanalyzer.org).

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

I-codec yomhlaba wonke

Ake sibheke izindlela eziyinhloko ezingaphansi kwekhodekhi yevidiyo yendawo yonke. Iningi lale miqondo ilusizo futhi isetshenziswa kuma-codec anamuhla njenge VP9, AV1 ΠΈ HEVC. Ngiyakuxwayisa ukuthi izinto eziningi ezichazweyo zizoba lula. Kwesinye isikhathi izibonelo zomhlaba wangempela (njengaku-H.264) zizosetshenziswa ukukhombisa ubuchwepheshe.

Isinyathelo sokuqala - ukuhlukanisa isithombe

Isinyathelo sokuqala siwukuhlukanisa ifreyimu ibe yizigaba eziningana, izigatshana nangale kwalokho.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Kwani? Kunezizathu eziningi. Uma sihlukanisa isithombe, singabikezela ngokunembe kakhudlwana i-vector enyakazayo ngokusebenzisa izingxenye ezincane zezingxenye ezincane ezihambayo. Ngenkathi ngengemuva elimile ungakwazi ukukhawulela ezigabeni ezinkulu.

Ama-codec ngokuvamile ahlela lezi zigaba zibe izigaba (noma izingcezu), ama-macroblocks (noma amabhlogo ezihlahla ezibhala ngekhodi), kanye nezigatshana eziningi. Usayizi omkhulu walezi zihlukanisi uyahlukahluka, i-HEVC iyibeka ku-64x64 kuyilapho i-AVC isebenzisa u-16x16, futhi izingxenye ezingaphansi zingahlukaniswa zibe osayizi abangu-4x4.

Uyazikhumbula izinhlobo zozimele ezivela esihlokweni sokugcina?! Okufanayo kungasetshenziswa kumabhulokhi, ukuze sibe ne-I-fragment, i-B-block, i-P-macroblock, njll.

Kulabo abafuna ukuzilolonga, bheka ukuthi isithombe sihlukaniswe kanjani ngezigaba nezigatshana. Ukuze wenze lokhu, ungasebenzisa lesi esivele sishiwo esihlokweni esandulele. I-Intel Video Pro Analyzer (leyo ekhokhelwayo, kodwa enenguqulo yesilingo yamahhala ekhawulelwe kumafreyimu okuqala ayi-10). Izigaba ezihlaziywe lapha VP9:

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Isinyathelo sesibili - ukubikezela

Uma sesinezigaba, singazenzela izibikezelo zezinkanyezi. Ngoba INTER izibikezelo kufanele idluliselwe ama-motion vectors futhi okusele, futhi ekubikezelweni kwe-INTRA kuyadluliselwa isibikezelo isiqondiso kanye nensalela.

Isinyathelo sesithathu - ukuguqulwa

Uma sesinebhulokhi eyinsalela (isigaba esibikezelwe β†’ isigaba sangempela), kuyenzeka ukuthi siyiguqule ngendlela yokuthi sazi ukuthi imaphi amaphikseli angalahlwa ngenkathi sigcina ikhwalithi iyonke. Kukhona ezinye izinguquko ezinikeza ukuziphatha okuqondile.

Nakuba zikhona ezinye izindlela, ake sizibheke kabanzi. ukuguqulwa kwe-cosine okuhlukile (I-DCT - kusuka ukuguqulwa kwe-cosine okuhlukile). Imisebenzi esemqoka ye-DCT:

  • Iguqula amabhlogo wamaphikseli abe amabhulokhi anosayizi olinganayo wama-coefficients of frequency.
  • Kufinyeza amandla okusiza ekuqedeni ukushoda kwendawo.
  • Ihlinzeka ngokubuyiselwa emuva.

Februwari 2, 2017 Sintra R.J. (Cintra, RJ) kanye ne-Bayer F.M. (I-Bayer FM) ishicilele i-athikili mayelana nokuguqulwa okufana ne-DCT kokuminyanisa kwesithombe okudinga kuphela izengezo eziyi-14.

Ungakhathazeki uma ungaqondi izinzuzo zento ngayinye. Manje ake sisebenzise izibonelo ezithile ukuze sibone ukubaluleka kwazo kwangempela.

Ake sithathe leli bhulokhi lamaphikseli angu-8x8:

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Leli bhulokhi lihunyushwe esithombeni esilandelayo samaphikseli angu-8 by 8:

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Faka i-DCT kule bhulokhi yamaphikseli futhi uthole ibhulokhi engu-8x8 yama-coefficients:

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Futhi uma sinikeza leli bhulokhi lama-coefficients, sizothola isithombe esilandelayo:

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Njengoba ubona, ayibukeki njengesithombe sokuqala. Ungabona ukuthi i-coefficient yokuqala ihluke kakhulu kuzo zonke ezinye. Le coefficient yokuqala yaziwa ngokuthi i-DC coefficient, emele wonke amasampuli kulungu lokufakwayo, into efana nesilinganiso.

Leli bhulokhi lama-coefficients linendawo ethokozisayo: lihlukanisa izingxenye ze-high-frequency kusukela kwe-low-frequency.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Esithombeni, amandla amaningi agxiliswe kumafrikhwensi aphansi, ngakho-ke uma uguqulela isithombe ezingxenyeni zaso zokuvama futhi ulahle ama-coefficients aphezulu, unganciphisa inani ledatha elidingekayo ukuchaza isithombe ngaphandle kokudela ikhwalithi yesithombe eningi kakhulu.

Imvamisa isho ukuthi isignali ishintsha ngokushesha kangakanani.

Ake sizame ukusebenzisa ulwazi esilutholile esimweni sokuhlola ngokuguqula isithombe sangempela sibe imvamisa yaso (ibhulokhi yama-coefficients) sisebenzisa i-DCT bese silahla ingxenye yama-coefficients abaluleke kakhulu.

Okokuqala siyiguqulela kusizinda semvamisa.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Okulandelayo, silahla ingxenye (67%) yama-coefficients, ikakhulukazi ingxenye engezansi kwesokudla.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Okokugcina, sakha kabusha isithombe esisuka kuleli bhulokhi elahliwe lama-coefficients (khumbula, kufanele singaguquleki) futhi sisiqhathanise nesangempela.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Siyabona ukuthi ifana nesithombe sokuqala, kodwa miningi umehluko kuneyasekuqaleni. Silahle u-67,1875% futhi sisenakho okufana nokwasekuqaleni. Kube nokwenzeka ukulahla ngokucabangisisa ama-coefficient ukuze uthole isithombe sekhwalithi engcono nakakhulu, kodwa leso isihloko esilandelayo.

I-coefficient ngayinye ikhiqizwa kusetshenziswa wonke amaphikseli

Okubalulekile: i-coefficient ngayinye ayimaphi ngokuqondile iphikseli eyodwa, kodwa iyisamba esinesisindo sawo wonke amaphikseli. Le grafu emangalisayo ibonisa ukuthi ama-coefficients okuqala nawesibili abalwa kanjani kusetshenziswa izisindo ezihlukile kunkomba ngayinye.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ungazama futhi ukubona ngeso lengqondo i-DCT ngokubheka ukwakheka kwesithombe okulula okusekelwe kukho. Isibonelo, nalu uphawu A olukhiqizwa kusetshenziswa isisindo se-coefficient ngayinye:

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Isinyathelo sesine - quantization

Ngemva kokuphonsa amanye ama-coefficients esinyathelweni sangaphambilini, esinyathelweni sokugcina (ukuguqulwa) senza uhlobo olukhethekile lwe-quantization. Kulesi sigaba kwamukelekile ukulahlekelwa ulwazi. Noma, kalula, sizolinganisa ama-coefficients ukuze sifinyelele ukuminyanisa.

Ungalinganisa kanjani ibhulokhi yama-coefficients? Enye yezindlela ezilula i-quantization efanayo, lapho sithatha ibhulokhi, sihlukanise ngenani elilodwa (ngo-10) futhi sizungeze umphumela.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Singakwazi yini ukuhlehlisa leli bhulokhi lama-coefficients? Yebo, singakwazi, ukuphindaphinda ngenani elifanayo esihlukanise ngalo.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Le ndlela ayiyona engcono kakhulu ngoba ayikunaki ukubaluleka kwe-coefficient ngayinye. Umuntu angasebenzisa i-matrix yamaquantizer esikhundleni senani elilodwa, futhi le matrix ingaxhaphaza impahla ye-DCT ngokulinganisa iningi eliphansi kwesokudla kanye nedlanzana elingaphezulu kwesokunxele.

Isinyathelo sesi-5 - ukufaka ikhodi ye-entropy

Uma sesilinganisele idatha (amabhulokhi wesithombe, izingcezu, ozimele), sisengakwazi ukuyiminyanisa ngokungenakulahlekelwa. Kunezindlela eziningi ze-algorithmic zokucindezela idatha. Sizobheka ngokushesha ezinye zazo, ukuze uthole ukuqonda okujulile ungafunda incwadi ethi Understanding Compression: Data Compression for Modern Developers ("Ukuqonda Ukucindezelwa: Ukucindezelwa Kwedatha Konjiniyela Banamuhla").

Umbhalo wekhodi wevidiyo usebenzisa i-VLC

Ake sithi sinochungechunge lwezinhlamvu: a, e, r ΠΈ t. Amathuba (asuka ku-0 kuye ku-1) okuthi uhlamvu ngalunye luvela kangaki ekusakazweni avezwa kuleli thebula.

a e r t
Amathuba 0,3 0,3 0,2 0,2

Singanikeza amakhodi kanambambili ahlukile (okungcono amancane) kwalawo okungenzeka kakhulu, kanye namakhodi amakhulu kunamathuba amancane.

a e r t
Amathuba 0,3 0,3 0,2 0,2
Ikhodi kanambambili 0 10 110 1110

Sicindezela ukusakaza, sicabanga ukuthi sizogcina sichitha amabhithi angu-8 ngohlamvu ngalunye. Ngaphandle kokucindezelwa, amabhithi angama-24 azodingeka ngohlamvu ngalunye. Uma ushintsha umlingisi ngamunye ngekhodi yakhe, uthola ukonga!

Isinyathelo sokuqala ukuhlanganisa uhlamvu e, elilingana no-10, kanti uhlamvu lwesibili ngu a, eyengezwe (hhayi ngendlela yezibalo): [10][0], futhi ekugcineni uhlamvu lwesithathu t, okwenza i-bitstream yethu yokugcina ecindezelwe ilingane ne-[10][0][1110] noma 1001110, okudinga amabhithi angu-7 kuphela (isikhala esiphindwe izikhathi ezingu-3,4 kunesokuqala).

Sicela uqaphele ukuthi ikhodi ngayinye kufanele kube ikhodi ehlukile enesiqalo. I-algorithm ye-Huffman izokusiza ukuthi uthole lezi zinombolo. Nakuba le ndlela ingenawo amaphutha ayo, akhona amakhodekhi evidiyo asanikeza le ndlela ye-algorithmic yokucindezela.

Kokubili isishumeki kanye nesikhiphi khodi kufanele zibe nokufinyelela kuthebula lophawu elinamakhodi abo kanambambili. Ngakho-ke, kuyadingeka futhi ukuthumela itafula njengokufakwayo.

Ukubhala ikhodi ye-arithmetic

Ake sithi sinochungechunge lwezinhlamvu: a, e, r, s ΠΈ t, futhi amathuba azo avezwe kuleli thebula.

a e r s t
Amathuba 0,3 0,3 0,15 0,05 0,2

Sisebenzisa leli thebula, sizokwakha ububanzi obuqukethe zonke izinhlamvu ezingaba khona, ezihlungwe ngenombolo enkulu kunazo zonke.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Manje ake sihlanganise ukusakaza kwezinhlamvu ezintathu: Udle.

Okokuqala khetha uhlamvu lokuqala e, esezingeni eliphansi ukusuka ku-0,3 kuye ku-0,6 (akubandakanyi). Sithatha lesi sigaba esingaphansi bese sisehlukanisa futhi ngezilinganiso ezifanayo nangaphambili, kodwa kulobu bubanzi obusha.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Masiqhubeke sibhala ngekhodi ukusakaza kwethu Udle. Manje thatha umlingiswa wesibili a, esesigabeni esisha esisuka ku-0,3 kuye ku-0,39, bese sithatha uhlamvu lwethu lokugcina t futhi siphinda inqubo efanayo futhi, sithola ububanzi obuncane bokugcina ukusuka ku-0,354 kuya ku-0,372.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Sidinga nje ukukhetha inombolo ebangeni lokugcina ukusuka ku-0,354 kuye ku-0,372. Asikhethe u-0,36 (kodwa ungakhetha noma iyiphi enye inombolo kulolu hlu). Ngale nombolo kuphela sizokwazi ukubuyisela ukusakaza kwethu kwangempela. Kufana nokuthi sidweba umugqa phakathi kwebanga ukuze sibhale ukusakaza kwethu.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ukusebenza okuphambene (okungukuthi, ukuqopha) ilula ngendlela efanayo: ngenombolo yethu engu-0,36 kanye nobubanzi bethu bokuqala, singaqhuba inqubo efanayo. Kodwa manje, sisebenzisa le nombolo, sihlonza ukusakaza okufakwe ikhodi kusetshenziswa le nombolo.

Ngobubanzi bokuqala, siqaphela ukuthi inombolo yethu ihambisana nocezu, ngakho-ke lolu uhlamvu lwethu lokuqala. Manje siphinda sihlukanise lolu hlu oluncane ngokulandela inqubo efanayo neyangaphambili. Lapha ungabona ukuthi u-0,36 uhambisana nophawu a, futhi ngemva kokuphinda inqubo safika kumlingiswa wokugcina t (ukwakha ukusakaza kwethu kwangempela okufakwe ikhodi Udle).

Kokubili isishumeki kanye nesikhiphi khodi kumele zibe nethebula lamathuba ophawu, ngakho-ke kuyadingeka ukulithumela nakudatha yokufaka.

Inhle kakhulu, akunjalo? Obeqhamuka nalesi sixazululo ubehlakaniphe kakhulu. Amanye amakhodekhi evidiyo asebenzisa le ndlela (noma okungenani ayinikeze njengenketho).

Umqondo uwukucindezela ngokungalahleki ukusakazwa kwe-quantized bit. Impela lesi sihloko sishoda ngamathani emininingwane, izizathu, ukuhwebelana, njll. Kodwa uma ungunjiniyela, kufanele wazi okwengeziwe. Amakhodekhi amasha azama ukusebenzisa ama-algorithms wombhalo wekhodi we-entropy ahlukene njengalokhu ANS.

Isinyathelo 6 - ifomethi ye-bitstream

Ngemva kokwenza konke lokhu, okusele nje ukuqaqa amafreyimu acindezelwe kumongo wezinyathelo ezenziwe. Idikhoda kufanele yaziswe ngokusobala ngezinqumo ezenziwe isishumeki. Idekhoda kufanele inikezwe lonke ulwazi oludingekayo: ukujula kancane, isikhala sombala, ukulungiswa, ulwazi lokubikezela (amavekhtha anyakazayo, isibikezelo se-INTER esiqondisayo), iphrofayili, ileveli, izinga lozimele, uhlobo lozimele, inombolo yozimele nokunye okuningi.

Sizobheka ngokushesha i-bitstream H.264. Isinyathelo sethu sokuqala ukudala i-H.264 bitstream encane (i-FFmpeg ngokuzenzakalelayo yengeza zonke izinketho zombhalo wekhodi njengokuthi SEI NAL - sizothola ukuthi kuyini ngokuqhubekayo). Singakwenza lokhu sisebenzisa eyethu inqolobane kanye ne-FFmpeg.

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

Lo myalo uzokhiqiza i-bitstream eluhlaza H.264 enohlaka olulodwa, isixazululo esingu-64Γ—64, nesikhala sombala YUV420. Kulokhu, isithombe esilandelayo sisetshenziswa njengohlaka.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

H.264 bitstream

Standard AVC (H.264) inquma ukuthi ulwazi luzothunyelwa ngama-macroframes (ngomqondo wenethiwekhi), okuthiwa nal (leli izinga lokukhipha inethiwekhi). Umgomo oyinhloko we-NAL ukuhlinzeka ngesethulo sevidiyo "esilungele iwebhu". Leli zinga kufanele lisebenze kuma-TV (asekelwe ekusakazweni), i-inthanethi (okusekelwe emaphaketheni).

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Kukhona umaka wokuvumelanisa wokuchaza imingcele yezinto ze-NAL. Ithokheni ngayinye yokuvumelanisa iqukethe inani 0x00 0x00 0x01, ngaphandle kweyokuqala, elingana ne 0x00 0x00 0x00 0x01. Uma siqala i-hexdump ku-bitstream ekhiqiziwe ye-H.264, sikhomba okungenani amaphethini amathathu e-NAL ekuqaleni kwefayela.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Njengoba kushiwo, i-decoder akumele yazi idatha yesithombe kuphela, kodwa futhi nemininingwane yevidiyo, ifreyimu, imibala, imingcele esetshenzisiwe, nokunye okuningi. Ibhayithi yokuqala ye-NAL ngayinye ichaza isigaba nohlobo lwayo.

Inkomba yohlobo lwe-NAL Incazelo
0 Uhlobo olungaziwa
1 Isiqeshana sesithombe esifakwe ikhodi ngaphandle kwe-IDR
2 Isigaba sedatha yocezu olunekhodi A
3 Isigaba sedatha yocezu olunekhodi B
4 Isigaba sedatha yocezu olunekhodi C
5 Isiqephu se-IDR esifakwe ikhodi sesithombe se-IDR
6 Ulwazi olwengeziwe mayelana nesandiso se-SEI
7 Isethi Yepharamitha Yokulandelana kwe-SPS
8 Isethi yamapharamitha wesithombe se-PPS
9 Finyelela isihlukanisi
10 Ukuphela kokulandelana
11 Ukuphela kochungechunge
... ...

Imvamisa i-NAL yokuqala ye-bitstream ithi SPS. Lolu hlobo lwe-NAL lubophezelekile ukwazisa ngeziguquko ezijwayelekile zombhalo wekhodi njengephrofayili, ileveli, ukulungiswa, njll.

Uma seqa umaka wokuqala wokuvumelanisa, singakwazi ukunquma ibhayithi yokuqala ukuze sithole ukuthi yiluphi uhlobo lwe-NAL lokuqala.

Isibonelo, ibhayithi yokuqala ngemva kwethokheni yokuvumelanisa 01100111, lapho ingxenye yokuqala (0) usensimini fi-orbidden_zero_bit. Amabhithi angu-2 alandelayo (11) usitshela insimu nal_ref_idc, okubonisa ukuthi le NAL iyinkambu yereferensi noma cha. Futhi izingcezu ezi-5 ezisele (00111) usitshela insimu uhlobo_lweyunithi_ephelele, kulokhu kuyibhulokhi ye-SPS (7) NAL.

Ibhayithi yesibili (binary=01100100, hex=0x64, Dec=100) ku-SPS NAL yinkambu profile_idc, okubonisa iphrofayili esetshenziswe isifaki khodi. Kulokhu, kusetshenziswe iphrofayili ephezulu elinganiselwe (okungukuthi, iphrofayili ephezulu ngaphandle kokusekelwa kwe-B-segment kabili).

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Uma ubheka ukucaciswa kwe-bitstream H.264 ku-SPS NAL, sizothola amanani amaningi egama lepharamitha, isigaba kanye nencazelo. Ngokwesibonelo, ake sibheke amasimu pic_width_in_mbs_minus_1 ΠΈ pic_height_in_map_units_minus_1.

Igama lepharamitha isigaba Incazelo
pic_width_in_mbs_minus_1 0 ue(v)
pic_height_in_map_units_minus_1 0 ue(v)

Uma senza eminye imisebenzi yezibalo ngamavelu ale mikhakha, sizothola isixazululo. Umuntu angamela u-1920 x 1080 esebenzisa pic_width_in_mbs_minus_1 ngenani elingu-119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Futhi, ukonga isikhala, esikhundleni sokufaka ikhodi ngo-1920, sikwenze ngo-119.

Uma siqhubeka nokuhlola ividiyo yethu edaliwe ngendlela kanambambili (isibonelo: xxd -b -c 11 v/minimal_yuv420.h264), bese ungaya ku-NAL yokugcina, okuwuhlaka ngokwalo.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Lapha sibona amanani ayo okuqala angu-6 byte: 01100101 10001000 10000100 00000000 00100001 11111111. Njengoba ibhayithi yokuqala yaziwa ngokukhombisa uhlobo lwe-NAL, kulokhu (00101) iwucezu lwe-IDR (5), bese ungaqhubeka uyihlole:

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ngokusebenzisa imininingwane ecacisiwe, kuzokwazi ukuqopha uhlobo lwengqephu (uhlobo_locezu) kanye nenombolo yozimele (inombolo_yohlaka) phakathi kweminye imikhakha ebalulekile.

Ukuthola amanani kwezinye izinkambu (ue(v), me(v), se(v) noma te(v)), sidinga ukuqopha ucezu sisebenzisa isiqophi sekhodi esikhethekile esisekelwe kuso ikhodi ye-Golomb exponential. Le ndlela iphumelela kakhulu ekubhaleni amanani aguquguqukayo, ikakhulukazi uma kunamanani amaningi azenzakalelayo.

Amanani uhlobo_locezu ΠΈ inombolo_yohlaka kule vidiyo kukhona 7 (I-fragment) kanye no-0 (uhlaka lokuqala).

Ukusakaza kancane kungacatshangwa njengephrothokholi. Uma ufuna ukwazi okwengeziwe mayelana ne-bitstream, kufanele ubhekisele ekucacisweni ITU H.264. Nawu umdwebo omkhulu obonisa ukuthi idatha yesithombe ikuphi (I-YUV ngefomu elicindezelwe).

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Amanye ama-bitstreams angahlolwa, njenge VP9, H.265 (HEVC) noma i-bitstream yethu entsha ehamba phambili AV1. Ingabe zonke ziyefana? Cha, kodwa uma uqonda okungenani eyodwa, kulula kakhulu ukuqonda okunye.

Ufuna ukuzilolonga? Hlola i-H.264 bitstream

Ungakha ividiyo yohlaka olulodwa futhi usebenzise i-MediaInfo ukuhlola i-bitstream H.264. Eqinisweni, akukho okukuvimbela ukuthi ubheke ikhodi yomthombo ehlaziya ukusakaza kancane H.264 (AVC).

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ukuze uzijwayeze, ungasebenzisa i-Intel Video Pro Analyzer (ingabe bese ngishilo ukuthi uhlelo lukhokhiwe, kodwa kukhona inguqulo yesilingo samahhala enomkhawulo wamafreyimu angu-10?).

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Uhlolojikelele

Qaphela ukuthi ama-codec amaningi esimanje asebenzisa imodeli efanayo esisanda kuyifunda. Lapha, ake sibheke umdwebo webhlokhi wekhodekhi yevidiyo Thor. Iqukethe zonke izinyathelo esesidlule kuzo. Iphuzu eliphelele lalokhu okuthunyelwe okungenani ukukunikeza ukuqonda okungcono kwezinto ezintsha nemibhalo kule ndawo.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ngaphambilini, kubalwe ukuthi i-139 GB yesikhala sediski izodingeka ukugcina ifayela levidiyo elihlala ihora elilodwa ngekhwalithi engu-720p kanye ne-30 fps. Uma usebenzisa izindlela okuxoxwe ngazo kulesi sihloko (i-inter-frame kanye nezibikezelo zangaphakathi, ukuguqulwa, i-quantization, i-entropy coding, njll.), ungafinyelela (ngokusekelwe eqinisweni lokuthi sisebenzisa amabhithi angu-0,031 ngephikseli ngayinye), ividiyo ikhwalithi egculisayo, ethatha kuphela i-367,82 MB, hhayi i-139 GB yememori.

I-H.265 ifinyelela kanjani isilinganiso esingcono sokucindezela kune-H.264?

Manje njengoba sesazi kabanzi mayelana nendlela ama-codec asebenza ngayo, kulula ukuqonda ukuthi ama-codec amasha angaletha kanjani izinqumo eziphakeme ngamabhithi ambalwa.

Uma siqhathanisa AVC ΠΈ HEVC, kufanelekile ukukhumbula ukuthi lokhu cishe njalo ukukhetha phakathi komthwalo omkhulu we-CPU kanye nesilinganiso sokucindezela.

HEVC inezinketho eziningi zesigaba (kanye nesigatshana) kune AVC, izikhombisi-ndlela zokuqagela kwangaphakathi okwengeziwe, ukubhala ngekhodi kwe-entropy okuthuthukisiwe, nokuningi. Konke lokhu kuthuthukiswa kwenziwe H.265 ekwazi ukucindezela 50% ngaphezu H.264.

Isebenza kanjani ikhodekhi yevidiyo? Ingxenye 2. Yini, ngani, kanjani

Ingxenye yokuqala: Izisekelo zokusebenza ngevidiyo nezithombe

Source: www.habr.com

Engeza amazwana