Inxalenye yokuqala: Iziseko zokusebenza ngevidiyo kunye nemifanekiso
Yintoni? Ikhodekhi yevidiyo sisiqwenga sesoftware/i-hardware ecinezela kunye/okanye ithomalalisa ividiyo yedijithali.
Yenzelwe ntoni? Nangona imida ethile zombini ngokwemiqathango bandwidth kunye
kwaye ngokwendawo yokugcina idatha, imarike ifuna ikhwalithi ephezulu yevidiyo. Uyakhumbula ukuba kwiposti yokugqibela sibale njani ubuncinci obufunekayo kwizakhelo ezingama-30 ngesekhondi, iibhithi ezingama-24 ngepixel nganye, ngesisombululo se-480x240? Sifumene i-82,944 Mbit / s ngaphandle koxinzelelo. Uxinzelelo ngoku kuphela kwendlela yokuhambisa ngokubanzi iHD/FullHD/4K kwizikrini zikamabonwakude nakwi-Intanethi. Kufezwa njani oku? Ngoku makhe sijonge ngokufutshane iindlela eziphambili.
Uguqulo lwenziwe ngenkxaso ye-EDISON Software.Sithembisene ngomtshato
ukuhlanganiswa kweenkqubo zokucupha iividiyo , kwakunyesenza i-microtomograph .
Codec vs Umgqomo
Impazamo eqhelekileyo eyenziwa ngabantu abatsha kukubhidanisa ikhowudi yevidiyo yedijithali kunye nesingxobo sevidiyo yedijithali. Isingxobo luhlobo oluthile. Isisongelo esinevidiyo (kunye mhlawumbi nesandi) imetadata. Ividiyo ecinezelweyo inokucingelwa njengomthwalo wokuhlawula isikhongozeli.
Ngokuqhelekileyo, ukwandiswa kwefayile yevidiyo kubonisa uhlobo lwesikhongozeli. Umzekelo, ifayile video.mp4 mhlawumbi isikhongozeli MPEG-4 Icandelo 14, kwaye ifayile enegama elithi video.mkv inokwenzeka kakhulu
Inxalenye ethile yembali
Ngaphambi kokuba sifike Njani?, masingene kancinci kwimbali ukuqonda ezinye iicodecs ezindala ngcono kancinci.
Ikhodekhi yevidiyo H.261 yabonakala ngo-1990 (ngokobuchwepheshe - ngo-1988) kwaye yadalwa ukuba isebenze kwizinga lokudlulisa idatha ye-64 Kbps. Sele isebenzise izimvo ezinje ngesampulu yombala, ii-macroblocks, njl. Umgangatho wekhodekhi yevidiyo wapapashwa ngo-1995 H.263, eyaphuhliswa de kwangowama-2001.
Inguqulelo yokuqala yagqitywa ngowama-2003 H.264/AVC. Kwangaloo nyaka, i-TrueMotion yakhupha ikhowudi yayo yasimahla yevidiyo ebizwa ngokuba yi-codec VP3. UGoogle uthenge inkampani ngo-2008, ekhupha VP8 kwakuloo nyaka. NgoDisemba 2012, uGoogle wakhululwa VP9, kwaye ixhaswa malunga ne ΒΎ yemarike yomkhangeli zincwadi (iquka izixhobo eziphathwayo).
AV1 yikhowudi entsha yevidiyo esimahla nevulekileyo ephuhliswe ngu I-Alliance ye-Open Media (AOMedia), ezibandakanya iinkampani ezidumileyo, njenge: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel kunye neCisco. Inguqulelo yokuqala yecodec, 0.1.0, yapapashwa ngoAprili 7, 2016.
Ukuzalwa kuka-AV1
Ekuqaleni kuka-2015, uGoogle wayesebenza VP10I-Xiph (eyeye-Mozilla) ibisebenza Daala, kwaye uCisco wenza eyakhe ikhowudi yevidiyo yasimahla ebizwa Thor.
Emva koko, MPEG LA okokuqala kubhengezwe imida yonyaka ye HEVC (H.265) kunye nomrhumo wamaxesha angama-8 aphezulu kune-H.264, kodwa ngokukhawuleza batshintsha imigaqo kwakhona:
akukho mda wonyaka,
umrhumo womxholo (0,5% wengeniso) kunye
umrhumo weyunithi malunga namaxesha angama-10 aphezulu kune-H.264.
I-Alliance ye-Open Media yadalwa ziinkampani ezivela kwiinkalo ezahlukeneyo: abavelisi bezixhobo (i-Intel, i-AMD, i-ARM, i-Nvidia, i-Cisco), ababoneleli bomxholo (i-Google, i-Netflix, i-Amazon), abadali besiphequluli (i-Google, i-Mozilla) kunye nabanye.
Iinkampani zazinenjongo efanayo - i-codec yevidiyo yasebukhosini. Emva koko kuvela AV1 ngelayisenisi yelungelo elilodwa lomenzi wechiza. UTimothy B. Terryberry unike umboniso omangalisayo owaba yimvelaphi yengqiqo yangoku ye-AV1 kunye nemodeli yayo yelayisensi.
Uya kumangaliswa kukwazi ukuba ungayihlalutya ikhowudi ye-AV1 ngokusebenzisa isikhangeli (abo banomdla banokuya
Ikhowudi yendalo yonke
Makhe sijonge iindlela eziphambili eziphantsi kwekhodekhi yevidiyo yehlabathi. Uninzi lwezi ngcamango ziluncedo kwaye zisetyenziswa kwii-codecs zanamhlanje ezifana VP9, AV1 ΠΈ HEVC. Ndiyakulumkisa ukuba uninzi lwezinto ezichaziweyo ziya kwenziwa lula. Ngamanye amaxesha imizekelo yehlabathi yokwenyani (njengakuH.264) iya kusetyenziswa ukubonisa ubugcisa.
Isinyathelo sokuqala - ukwahlula umfanekiso
Inyathelo lokuqala kukwahlula isakhelo sibe ngamacandelo amaninzi, amacandelwana nangaphaya.
Yantoni? Kukho izizathu ezininzi. Xa sahlulahlula umfanekiso, sinokuqikelela ngokuchanekileyo ngakumbi i-vector eshukumayo ngokusebenzisa amacandelo amancinci kwiindawo ezincinci ezihambayo. Ngelixa imvelaphi engatshintshiyo unokuzikhawulela kumacandelo amakhulu.
IiCodecs ngokuqhelekileyo ziququzelela la macandelo abe ngamacandelo (okanye iinqununu), ii-macroblocks (okanye iibhloko zemithi ekhowudiweyo), kunye namacandelwana amaninzi. Ubungakanani obukhulu bezi zahlulo buyahluka, i-HEVC ibeka kwi-64x64 ngelixa i-AVC isebenzisa i-16x16, kwaye izahlulo zinokwahlulwa ukuya kuthi ga kwi-4x4 ubukhulu.
Ngaba uyazikhumbula iintlobo zezakhelo ezivela kwinqaku lokugqibela?! Okufanayo kunokusetyenziswa kwiibhloko, ngoko sinokuba ne-I-fragment, i-B-block, i-P-macroblock, njl.
Kwabo bafuna ukuziqhelanisa, jonga ukuba umfanekiso uhlukaniswe njani ube ngamacandelo kunye namacandelwana. Ukwenza oku, ungasebenzisa esele ikhankanywe kwinqaku elidlulileyo.
Inyathelo le-2 - ukubikezela
Sakuba sinamacandelo, sinokuwenzela uqikelelo ngeenkwenkwezi. Kuba INTER uqikelelo kufuneka idluliselwe iivektha ezishukumayo kunye nentsalela, kunye noqikelelo lwe-INTRA luyahanjiswa ulwalathiso lwengqikelelo kunye nentsalela.
Isinyathelo se-3 - inguqu
Xa sele sinebloko eshiyekileyo (icandelo eliqikelelweyo β icandelo lokwenyani), kuyenzeka ukuba siyiguqule ngendlela yokuba sazi ukuba zeziphi iipixels ezinokulahlwa ngelixa ugcina umgangatho uwonke. Kukho iinguqu ezithile ezibonelela ngokuziphatha okuchanekileyo.
Nangona kukho ezinye iindlela, makhe sijonge kuzo ngokubanzi. utshintsho lwecosine olucacileyo (I-DCT -isuka inguqu ecacileyo yecosine). Imisebenzi ephambili yeDCT:
- Guqula iibhloko zeepixels zibe ziibhloko ezinobungakanani obulinganayo be-coefficients frequency.
- Ithoba amandla ukunceda ukuphelisa ukungabikho kwesithuba.
- Ibonelela ngokubuyiselwa umva.
NgoFebruwari 2, 2017 Sintra R.J. (Cintra, R.J.) kunye neBayer F.M. (I-Bayer F.M.) ipapashe inqaku malunga nokuguqulwa okufana ne-DCT yoxinzelelo lwemifanekiso efuna kuphela izongezo ze-14.
Sukuba nexhala xa ungaziqondi iingenelo zenqaku ngalinye. Ngoku makhe sisebenzise imizekelo ethile ukubona ixabiso labo lokwenyani.
Masithathe le bhloko ye-8x8 yeepixels:
Le bhloko inikezelwa kumfanekiso we-pixel osi-8 ngo-8:
Faka isicelo seDCT kule bhloko yeepikseli kwaye ufumane ibhloko ye-8x8 yee-coefficients:
Kwaye ukuba sinikezela ngebloko yee-coefficients, siya kufumana lo mfanekiso ulandelayo:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π½Π΅ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π²ΡΠ΅Ρ
ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
. ΠΡΠΎΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ DC-ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π²ΡΠ΅ Π²ΡΠ±ΠΎΡΠΊΠΈ Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅, Π½Π΅ΡΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅Π΅ Π½Π° ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Le bloko ye-coefficients inepropati enomdla: ihlukanisa amacandelo aphezulu-frequency ukusuka kwi-low-frequency.
Kumfanekiso, amandla amaninzi agxininiswe kwiifrikhwensi ezisezantsi, ke ukuba uguqula umfanekiso ube ziinxalenye zawo kwaye ulahle i-coefficients ephezulu yefrikhwensi, unokunciphisa inani ledatha efunekayo ukuchaza umfanekiso ngaphandle kokuncama umgangatho womfanekiso omninzi.
Ukuphindaphinda kubhekisa kwindlela isignali etshintsha ngayo ngokukhawuleza.
Makhe sizame ukusebenzisa ulwazi olufunyenwe kwimeko yokuvavanya ngokuguqula umfanekiso wokuqala kwi-frequency yayo (ibhloko ye-coefficients) usebenzisa i-DCT kwaye ulahle inxalenye yee-coefficients ezingabalulekanga.
Okokuqala siyiguqulela kwi-domain frequency.
Emva koko, silahla inxalenye (67%) yee-coefficients, ngokukodwa inxalenye esezantsi ekunene.
Ekugqibeleni, sakha kwakhona umfanekiso kule bloko elahliweyo ye-coefficients (khumbula, kufuneka iguqulwe) kwaye uyithelekise neyokuqala.
Siyabona ukuba ifana nomfanekiso wokuqala, kodwa kukho iiyantlukwano ezininzi ukusuka ekuqaleni. Sikhuphe i-67,1875% kwaye sisenayo into efana neyokuqala. Bekunokwenzeka ukulahla ngokucingisisayo ii-coefficients ukufumana umfanekiso womgangatho ongcono, kodwa sisihloko esilandelayo eso.
I-coefficient nganye yenziwa kusetyenziswa zonke iipikseli
Kubalulekile: i-coefficient nganye ayonjiswanga ngokuthe ngqo kwi-pixel enye, kodwa sisimbuku esinobunzima bazo zonke iipikseli. Le grafu emangalisayo ibonisa indlela i-coefficients yokuqala neyesibini ebalwa ngayo ngokusebenzisa ubunzima obukhethekileyo kwisalathisi ngasinye.
Unokuzama kwakhona ukujonga ngeso lengqondo i-DCT ngokujonga ukubunjwa kwemifanekiso elula esekelwe kuyo. Umzekelo, nantsi isimboli A eyenziwe kusetyenziswa ubunzima bomlinganiso ngamnye:
Isinyathelo se-4 - ubungakanani
Emva kokuba silahle ezinye ii-coefficients kwisinyathelo sangaphambili, kwinqanaba lokugqibela (ukuguqulwa) senza uhlobo olukhethekileyo lwe-quantization. Kweli nqanaba kwamkelekile ukuphulukana nolwazi. Okanye, ngokulula, siya kulinganisa i-coefficients ukuphumeza uxinzelelo.
Ungayilinganisa njani ibhloko yee-coefficients? Enye yeendlela ezilula kakhulu i-quantization efanayo, xa sithatha ibhloko, sahlule ngexabiso elinye (ngo-10) kwaye ujikeleze umphumo.
Ngaba singayibuyisela umva le bhloko ye-coefficients? Ewe, singakwazi, ukuphindaphinda ngexabiso elifanayo esahlule ngalo.
Le ndlela ayiyona nto ibhetele kuba ayithatheli ingqalelo ukubaluleka kwe-coefficient nganye. Umntu unokusebenzisa i-matrix ye-quantizers endaweni yexabiso elinye, kwaye le matrix inokuxhaphaza ipropathi ye-DCT ngokulinganisa ubuninzi belungelo elisezantsi kunye nombalwa ongasentla osekhohlo.
Inyathelo lesi-5 - ikhowudi ye-entropy
Nje ukuba silinganise idatha (iibhloko zemifanekiso, amaqhekeza, iifreyimu), sisenako ukuyicinezela ngaphandle kokulahlekelwa. Kukho iindlela ezininzi ze-algorithmic zokucinezela idatha. Siza kujonga ngokukhawuleza kwezinye zazo, ukuqonda okunzulu unokufunda incwadi Ukuqonda Uxinzelelo: Uxinzelelo lweDatha kubaPhuhlisi banamhlanje ("
Ukufakwa kweekhowudi kwividiyo usebenzisa iVLC
Masithi sinothotho lwabalinganiswa: a, e, r ΠΈ t. Amathuba (ukususela ku-0 ukuya ku-1) wokuba umlinganiswa ngamnye uvela kangaphi kumsinga abonakaliswe kule theyibhile.
a | e | r | t | |
---|---|---|---|---|
Inokwenzeka | 0,3 | 0,3 | 0,2 | 0,2 |
Singanikezela iikhowudi zokubini ezikhethekileyo (ngokukhethekileyo zincinci) kwezona zinokwenzeka, kunye neekhowudi ezinkulu kwezincinci.
a | e | r | t | |
---|---|---|---|---|
Inokwenzeka | 0,3 | 0,3 | 0,2 | 0,2 |
Ikhowudi yokubini | 0 | 10 | 110 | 1110 |
Sicinezela umlambo, sicinga ukuba siya kugqiba ukuchitha ii-bits ezi-8 kumlinganiswa ngamnye. Ngaphandle koxinzelelo, amasuntswana angama-24 ayakufuneka ngomlinganiswa ngamnye. Ukuba ubuyisela umlinganiswa ngamnye ngekhowudi yakhe, ufumana ukonga!
Inyathelo lokuqala kukufaka ikhowudi umlinganiswa e, elilingana no 10, kunye nomsebenzi wesibini ngu a, eyongezwe (hayi ngendlela yezibalo): [10][0], kwaye ekugqibeleni umlinganiswa wesithathu t, eyenza i-bitstream yethu yokugqibela ecinezelweyo ilingane no [10][0][1110] okanye 1001110, efuna iibhithi ezi-7 kuphela (isithuba esiphindwe ngama-3,4 kunesokuqala).
Nceda uqaphele ukuba ikhowudi nganye kufuneka ibe yikhowudi eyodwa enezimaphambili.
Zombini i-encoder kunye nedekhowuda kufuneka zibe nofikelelo kwitafile yesimboli ngeekhowudi zazo zokubini. Ngoko ke, kuyimfuneko ukuthumela itafile njengegalelo.
Ikhowudi ye-arithmetic
Masithi sinothotho lwabalinganiswa: a, e, r, s ΠΈ t, kwaye ukuba nokwenzeka kwazo kubonisiwe kolu luhlu.
a | e | r | s | t | |
---|---|---|---|---|---|
Inokwenzeka | 0,3 | 0,3 | 0,15 | 0,05 | 0,2 |
Sisebenzisa le theyibhile, siya kwakha uluhlu oluqulathe bonke abasebenzi abanokubakho, abamiswe ngelona nani likhulu.
Ngoku makhe sidibanise umjelo wabalinganiswa abathathu: Badle.
Okokuqala khetha unobumba wokuqala e, ephantsi kwe-0,3 ukuya kwi-0,6 (ingabandakanyi). Sithatha le subrange kwaye sikwahlulahlule kwakhona kwimilinganiselo efanayo njengangaphambili, kodwa kolu luhlu olutsha.
Masiqhubeke nekhowudi umsinga wethu Badle. Ngoku thatha umlinganiswa wesibini a, ekuluhlu olutsha ukusuka ku-0,3 ukuya ku-0,39, kwaye emva koko sithathe umlinganiswa wethu wokugqibela t kunye nokuphinda inkqubo efanayo kwakhona, sifumana i-sub-range yokugqibela ukusuka kwi-0,354 ukuya kwi-0,372.
Sidinga nje ukukhetha inombolo kwinqanaba lokugqibela ukusuka kwi-0,354 ukuya kwi-0,372. Masikhethe u-0,36 (kodwa ungakhetha naliphi na elinye inani kolu luhlu). Kuphela ngale nombolo siya kukwazi ukubuyisela umsinga wethu wokuqala. Ingathi sizoba umgca phakathi koluhlu ukuze sifake iikhowudi kumsinga wethu.
Umsebenzi obuyela umva (oko kukuthi, ukuguqula iikhowudi) ilula nje: ngenombolo yethu 0,36 kunye noluhlu lwethu lokuqala, sinokuqhuba inkqubo efanayo. Kodwa ngoku, sisebenzisa eli nani, sichonga umsinga ofakwe ngekhowudi usebenzisa eli nani.
Ngoluhlu lokuqala, siqaphela ukuba inani lethu lihambelana nesilayi, ngoko ke lo ngumlinganiswa wethu wokuqala. Ngoku sahlulahlula kwakhona olu luhlu ngokulandela inkqubo efanayo nangaphambili. Apha ungabona ukuba i-0,36 ihambelana nesimboli a, kwaye emva kokuphinda inkqubo safika kumlinganiswa wokugqibela t (ukwenza umjelo wethu wokuqala onekhowudi Badle).
Zombini i-encoder kunye ne-decoder kufuneka ibe netafile yesimboli enokwenzeka, ngoko ke kuyimfuneko ukuyithumela kwidatha yegalelo ngokunjalo.
Intle kakhulu, akunjalo? Nabani na oze nesi sisombululo wayekrelekrele kakhulu. Ezinye iikhodekhi zevidiyo zisebenzisa obu buchule (okanye ubuncinci bunikezela njengokhetho).
Umbono kukucinezela ngokungenalahleko umjelo omncinci owenziweyo. Ngokuqinisekileyo eli nqaku lilahlekile iitoni zeenkcukacha, izizathu, ukurhweba, njl. Kodwa ukuba ungumphuhlisi, kuya kufuneka wazi ngakumbi. Iikhowudi ezintsha zama ukusebenzisa i-encoding algorithms ezahlukeneyo ezifana I-ANS.
Inyathelo lesi-6 - ifomathi ye-bitstream
Emva kokwenza konke oku, konke okuseleyo kukukhupha izakhelo ezicinezelweyo kumxholo wamanyathelo awenziweyo. Idikhowuda kufuneka yaziswe ngokucacileyo ngezigqibo ezenziwe ngumfaki-khowudi. Idikhowuda kufuneka ibonelelwe ngalo lonke ulwazi oluyimfuneko: ubunzulu bebhithi, indawo yombala, isisombululo, ulwazi oluqikelelweyo (iivektha ezishukumayo, uqikelelo lwe-INTER), iprofayili, inqanaba, ireyithi yesakhelo, uhlobo lwesakhelo, inombolo yesakhelo nokunye okuninzi.
Siza kujonga ngokukhawuleza kwi-bitstream H.264. Inyathelo lethu lokuqala kukudala i-H.264 bitstream encinci (i-FFmpeg ngokungagqibekanga yongeza zonke iinketho zokufaka iikhowudi ezifana SEI NAL - siza kufumanisa ukuba yintoni na phambili). Singakwenza oku sisebenzisa eyethu indawo yokugcina kunye neFFmpeg.
./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h264
Lo myalelo uzakuvelisa bitstream ekrwada H.264 ngesakhelo esinye, isisombululo se-64Γ64, esinendawo yombala YUV420. Kule meko, umfanekiso olandelayo usetyenziswa njengesakhelo.
H.264 bitstream
Umgangatho aVc (H.264) igqiba ukuba ulwazi luya kuthunyelwa kwii-macroframes (kwingqiqo yenethiwekhi), ebizwa nal (eli linqanaba lokutsalwa kwenethiwekhi). Eyona njongo iphambili ye-NAL kukubonelela ngevidiyo "elungele iwebhu". Lo mgangatho kufuneka usebenze kwiiTV (ezisekelwe kwi-stream), i-Intanethi (i-packet-based).
Kukho isiphawuli songqamaniso lokuchaza imida yezinto ze-NAL. Umqondiso ngamnye wongqamaniso unexabiso 0x00 0x00 0x01, ngaphandle kweyokuqala, elingana no 0x00 0x00 0x00 0x01. Ukuba siqalisa hexdump kwi-bitstream ye-H.264 eyenziwe, sichonga ubuncinane iipateni ezintathu ze-NAL ekuqaleni kwefayile.
Njengoko kuchaziwe, i-decoder kufuneka yazi kuphela idatha yomfanekiso, kodwa kunye neenkcukacha zevidiyo, isakhelo, imibala, iiparamitha ezisetyenzisiweyo, kunye nokunye okuninzi. Ibhayithi yokuqala yeNAL nganye ichaza udidi lwayo kunye nohlobo.
NAL uhlobo lokuchonga | inkcazelo |
---|---|
0 | Uhlobo olungaziwayo |
1 | Iqhekeza lemifanekiso ekhowudiweyo ngaphandle kwe-IDR |
2 | Icandelo ledatha yesilayi enekhowudi A |
3 | Icandelo ledatha yesilayi enekhowudi B |
4 | Icandelo ledatha yesilayi enekhowudi C |
5 | Iqhekeza le-IDR ekhowudiweyo yomfanekiso we-IDR |
6 | Ulwazi oluninzi malunga nolwandiso lwe-SEI |
7 | Iseti yeParameter yolandelelwano lwe-SPS |
8 | Iseti yeeparamitha zomfanekiso wePPS |
9 | Isahluli sokufikelela |
10 | Ukuphela kolandelelwano |
11 | Isiphelo somsonto |
... | ... |
Ngokuqhelekileyo i-NAL yokuqala ye-bitstream yi SPS. Olu hlobo lwe-NAL lunoxanduva lokwazisa malunga neenguqu eziqhelekileyo zokukhowuda ezifana neprofayili, inqanaba, isisombululo, njl.
Ukuba sitsiba isiphawuli sokuqala songqamaniso, singenza ikhowudi yebhayithi yokuqala ukufumana ukuba loluphi uhlobo lweNAL lokuqala.
Umzekelo, i-byte yokuqala emva kophawu lokuvumelanisa 01100111, apho intwana yokuqala (0) isentsimini forbidden_zero_bit. Amasuntswana ama-2 alandelayo (11) isixelela ngentsimi nal_ref_idc, ebonisa ukuba le NAL ngummandla wesalathiso okanye hayi. Kwaye i-5 bits eseleyo (00111) isixelela ngentsimi uhlobo_lweyunithi_esisiseko, kulo mzekelo yi SPS block (7) NAL.
Ibhayithi yesibini (bhinari=01100100, hex=0x64, dec=100) kwi-SPS NAL yintsimi iprofayile_idc, ebonisa iprofayile esetyenziswe ngumfaki khowudi. Kule meko, iprofayili ephakamileyo encinci yayisetyenzisiweyo (oko kukuthi, iphrofayili ephezulu ngaphandle kwenkxaso ye-bidirectional B-segment).
Ukuba ujonga iinkcukacha ze-bitstream H.264 ye-SPS NAL, siya kufumana amaxabiso amaninzi egama lepharamitha, udidi kunye nenkcazo. Umzekelo, makhe sijonge emasimini pic_width_in_mbs_minus_1 ΠΈ pic_ubude_kwimephu_iiyunithi_thabatha_1.
Igama lepharamitha | udidi | inkcazelo |
---|---|---|
pic_width_in_mbs_minus_1 | 0 | ue(v) |
pic_ubude_kwimephu_iiyunithi_thabatha_1 | 0 | ue(v) |
Ukuba senza imisebenzi ethile yemathematika ngamaxabiso ale mimandla, siya kufumana isisombululo. Omnye unokumela i-1920 x 1080 usebenzisa pic_width_in_mbs_minus_1 ngexabiso le-119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Kwakhona, ukonga indawo, endaweni yokufaka iikhowudi ngowe-1920, siye sayenza ngo-119.
Ukuba siyaqhubeka nokujonga ividiyo yethu eyenziweyo kwimo yokubini (umzekelo: xxd -b -c 11 v/minimal_yuv420.h264), ngoko ungaya kwi-NAL yokugqibela, eyisakhelo ngokwaso.
Apha sibona ixabiso layo lokuqala le-6 byte: 01100101 10001000 10000100 00000000 00100001 11111111. Kuba i-byte yokuqala isaziwa ngokubonisa uhlobo lwe-NAL, kulo mzekelo (00101) liqhekeza le-IDR (5), kwaye ke ungayiphonononga ngokubhekele phaya:
Ukusebenzisa ulwazi olucacileyo, kuyakwenzeka ukucacisa uhlobo lweqhekeza (isilayi_uhlobo) kunye nenombolo yesakhelo (Inombolo_yesakhelo) phakathi kweminye imimandla ebalulekileyo.
Ukufumana amaxabiso eminye imihlaba (ue(v), me(v), se(v) okanye te(v)), kufuneka sigqibe isiqwenga sisebenzisa idikhowuda ekhethekileyo esekwe kuyo
Iimpawu zentsulungeko isilayi_uhlobo ΠΈ Inombolo_yesakhelo yale vidiyo yi-7 (I-fragment) kunye ne-0 (isakhelo sokuqala).
Umjelo omncinci unokucingelwa njengeprothokholi. Ukuba ufuna ukwazi ngakumbi malunga ne-bitstream, kuya kufuneka ubhekisele kwinkcazo ITU H.264. Nanku umzobo omkhulu obonisa ukuba iphi idatha yomfanekiso (I-YUV kwifom ecinezelweyo).
Ezinye bitstreams zinokujongwa, ezifana VP9, H.265 (HEVC) okanye eyona bitstream yethu entsha AV1. Ngaba zonke ziyefana? Hayi, kodwa xa uqonda ubuncinane enye, kulula kakhulu ukuqonda okuseleyo.
Uyafuna ukuziqhelanisa? Phonononga H.264 bitstream
Unokwenza ividiyo yesakhelo esinye kwaye usebenzise iMediaInfo ukujonga i-bitstream H.264. Ngapha koko, akukho nto ikuthintelayo ukuba ujonge nakwikhowudi yomthombo ehlalutya umjelo omncinci H.264 (aVc).
Ukuziqhelanisa, ungasebenzisa i-Intel Video Pro Analyzer (ngaba sele nditshilo ukuba inkqubo ihlawulwe, kodwa kukho inguqulo yesilingo samahhala kunye nomda wezakhelo ezili-10?).
isishwankathelo
Qaphela ukuba iicodec ezininzi zale mihla zisebenzisa imodeli efanayo nesisandula kufunda ngayo. Apha, makhe sijonge kumzobo webhloko wekhodekhi yevidiyo Thor. Iqulethe onke amanyathelo esidlule kuwo. Inqaku elipheleleyo lale post kukunika ubuncinci ukuqonda okungcono kwezinto ezintsha kunye namaxwebhu kule ndawo.
Ngaphambili, kubalwa ukuba i-139 GB yendawo yediski iya kufuneka ukuba igcine ifayile yevidiyo ehlala iyure enye kumgangatho we-720p kunye ne-30 fps. Ukuba usebenzisa iindlela ekuxoxwe ngazo kweli nqaku (i-inter-frame kunye noqikelelo lwangaphakathi, inguqu, ubungakanani, ikhowudi ye-entropy, njl.njl.), ke unokufezekisa (ngokusekwe kwinto yokuba sichitha i-0,031 bits ngepixel), ividiyo umgangatho owanelisayo, uhlala kuphela 367,82 MB, hayi 139 GB yememori.
I-H.265 ifikelela njani kumlinganiselo woxinzelelo olungcono kune-H.264?
Ngoku siyazi ngakumbi malunga nendlela ii-codecs ezisebenza ngayo, kulula ukuqonda ukuba ii-codecs ezintsha zinokuzisa njani izigqibo eziphezulu ngamasuntswana ambalwa.
Ukuba siyathelekisa aVc ΠΈ HEVC, kufanelekile ukukhumbula ukuba oku kusoloko kukhetha phakathi komthwalo omkhulu we-CPU kunye nomlinganiselo woxinzelelo.
HEVC inokhetho oluninzi lwecandelo (kunye necandelwana) kune aVc, ngaphezulu koqikelelo lwangaphakathi, uphuculo lwekhowudi ye-entropy, kunye nokunye. Lonke olu phuculo lwenziwe H.265 ekwazi ukucinezela 50% ngaphezulu H.264.
Inxalenye yokuqala: Iziseko zokusebenza ngevidiyo kunye nemifanekiso
umthombo: www.habr.com