Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Qeybta koowaad: Aasaaska ku shaqaynta fiidyaha iyo sawirada

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Maxay tahay? Codka fiidiyoowgu waa qayb ka mid ah software/hardware-ka kaas oo cadaadiya/ama kala saara fiidyaha dhijitaalka ah.

Maxay? In kasta oo ay jiraan xaddidaadyo gaar ah labadaba marka la eego xajmiga xajmiga iyo
iyo marka la eego booska kaydinta xogta, suuqu wuxuu u baahan yahay muuqaal tayo sare leh oo sii kordheysa. Ma xasuusataa sida boostadii ugu dambeysay aan u xisaabinay ugu yaraan 30 fiim ilbiriqsikii, 24 bits per pixel, oo leh xallin 480x240? Waxaan helnay 82,944 Mbit/s iyada oo aan cadaadis la saarin. Cadaadisku hadda waa habka kaliya ee guud ahaan HD/FullHD/4K loogu gudbin karo shaashadaha telefishinka iyo internetka. Sidee taas lagu gaaraa? Hadda aynu si kooban u eegno hababka ugu muhiimsan.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Turjumaada waxaa lagu sameeyay taageerada EDISON Software.

Waanu ku hawlanahay isku dhafka hababka ilaalinta fiidiyowgaMarkaasay Waxaan horumarineynaa microtomograph.

Codec vs weel

Khaladka caadiga ah ee dadka cusubi galaan waa koodka fiidiyoowga dhijitaalka ah oo jahawareersan iyo weelka fiidyaha dhijitaalka ah. Weelku waa qaab gaar ah. Duub ka kooban fiidiyoow (iyo suurtogal ah maqal) xogta badan. Fiidiyowga la ciriiriyay waxaa loo maleyn karaa inuu yahay weel la soo shubay.

Caadi ahaan, kordhinta faylka fiidiyaha ayaa tilmaamaya nooca weelka. Tusaale ahaan, feylka fiidiyowga.mp4 malaha waa weel MPEG-4 Qaybta 14, iyo fayl lagu magacaabo video.mkv ayaa u badan matryoshka. Si aad si buuxda u hubiso qaabka codec iyo weelka, waxaad isticmaali kartaa FFmpeg ama MediaInfo.

Tiro yar oo taariikh ah

Kahor intaanan gaarin Sidee?, aan inyar u dhuuxno taariikhda si aan u yara fahanno qaar ka mid ah codecyadii hore.

Codka fiidiyowga H.261 waxa uu soo muuqday 1990 (farsamo ahaan - 1988) waxaana loo abuuray in lagu shaqeeyo xawilaadda xogta 64 Kbps. Waxay hore u isticmaashay fikrado ay ka mid yihiin sawir-hoosaadka midabka, macroblocks, iwm. Halbeegga codec-ga fiidiyowga waxaa la daabacay 1995-kii. H.263, kaas oo soo baxay ilaa 2001.

Nuqulkii ugu horreeyay waxa la dhammaystiray 2003dii H.264 / AVC. Isla sanadkaas, TrueMotion waxay sii daysay koodka fiidiyoowga bilaashka ah ee lumay ee loo yaqaan VP3. Google waxa ay iibsatay shirkadda 2008, iyada oo la sii daayay VP8 isla sanadkaas. Bishii Disembar 2012, Google ayaa sii daayay VP9, waxaana lagu taageeraa qiyaastii ¾ ee suuqa browserka (oo ay ku jiraan aaladaha mobilada).

AV1 waa codec muuqaal cusub oo bilaash ah oo furan oo uu sameeyay Isbahaysiga Warbaahinta Furan (AOMedia), oo ay ku jiraan shirkadaha ugu caansan, sida: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel iyo Cisco. Nooca ugu horreeya ee codec, 0.1.0, ayaa la daabacay Abriil 7, 2016.

Dhalashada AV1

Horraantii 2015, Google ayaa ka shaqaynaysay VP10Xiph (oo ay leedahay Mozilla) ayaa ka shaqaynayay Daala, iyo Cisco waxay samaysay codec fiidiyoow bilaash ah oo u gaar ah oo loo yaqaan Thor.

ka dibna MPEG LA marka hore lagu dhawaaqay xadka sanadlaha ah ee HEVC (H.265) iyo khidmad 8 jeer ka badan tii H.264, laakiin waxay isla markiiba beddeleen xeerarkii:

xad sanadeedka ma jiro,
khidmadda nuxurka (0,5% dakhliga) iyo
kharashka unuggu waxa uu 10 jeer ka badan yahay H.264.

Isbahaysiga Warbaahinta Furan waxaa abuuray shirkado ka kala yimid meelo kala duwan: soo-saareyaasha qalabka (Intel, AMD, ARM, Nvidia, Cisco), bixiyeyaasha content (Google, Netflix, Amazon), abuurayaasha browserka (Google, Mozilla) iyo kuwa kale.

Shirkaduhu waxay lahaayeen hadaf guud - codec fiidiyoow ah oo bilaa royalty ah. Kadibna wuu soo muuqdaa AV1 oo leh shatiga patent-ka oo aad uga fudud. Timothy B. Terryberry ayaa bixiyay bandhig cajiib ah oo noqday asalka fikradda AV1 ee hadda jirta iyo nooceeda shatiga.

Waxaad la yaabi doontaa inaad ogaato inaad ku falanqeyn karto codec-ka AV1 adoo adeegsanaya browserka (kuwa danaynaya way aadi karaan aomanalyzer.org).

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Koodhka caalamiga ah

Aynu eegno hababka ugu muhiimsan ee ka hooseeya codec fiidiyaha caalamiga ah. Inta badan fikradahani waa kuwo faa'iido leh waxaana loo adeegsadaa codecyada casriga ah sida VP9, AV1 и HEVC. Waxaan kaaga digayaa in waxyaabo badan oo la sharraxay la fududayn doono. Mararka qaarkood tusaalooyinka adduunka dhabta ah (sida H.264) ayaa loo isticmaali doonaa si loo muujiyo tignoolajiyada.

Tallaabada 1aad - kala qaybinta sawirka

Talaabada ugu horeysa waa in loo qaybiyo qaab-dhismeedka dhawr qaybood, qaybo-hoosaadyo iyo wixii ka baxsan.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Maxay? Waxaa jira sababo badan. Marka aan kala qaybinno sawirka, waxaan si sax ah u saadaalin karnaa dhaqdhaqaaqa dhaqdhaqaaqa annagoo adeegsanayna qaybo yaryar qaybaha yaryar ee dhaqdhaqaaqa. Halka asalka taagan aad ku xaddidi karto qaybo waaweyn.

Codecs-ku sida caadiga ah waxay u habeeyaan qaybahan qaybo (ama qaybo), macroblocks (ama koodka geedaha geedaha), iyo qaybo hoose oo badan. Cabbirka ugu badan ee qaybahani way kala duwan yihiin, HEVC waxay u dejisaa 64x64 halka AVC ay isticmaasho 16x16, qayb-hoosaadyada ayaa loo qaybin karaa ilaa 4x4 cabbir.

Ma xasuusataa noocyada fareeshka ee maqaalkii u dambeeyay?! Isla sidaas oo kale ayaa lagu dabaqi karaa blocks, si aan u yeelan karno I-fragment, B-block, P-macroblock, iwm.

Kuwa doonaya inay ku dhaqmaan, daawo sida sawirka loo qaybiyay qaybo iyo qaybo hoose. Si tan loo sameeyo, waxaad isticmaali kartaa mid hore loogu sheegay maqaalkii hore. Intel Video Pro Analyzer (midka lacagta la bixiyo, laakiin leh nooc tijaabo ah oo bilaash ah oo ku xaddidan 10-ka xaraf ee ugu horreeya). Qaybaha halkan lagu falanqeeyay VP9:

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Talaabada 2aad - saadaalinta

Marka aan helno qaybo, waxaan u samayn karnaa saadaasha xiddigiska iyaga. Waayo Saadaasha INTER waa in la wareejiyo dhaqdhaqaaqa dhaqdhaqaaqa iyo inta soo hartay, iyo saadaasha INTRA waa la kala qaadaa jihada saadaasha iyo inta soo hartay.

Talaabada 3-aad - isbedel

Marka aan haysanno xannibaad haraaga ah (qayb la saadaaliyay → qaybta dhabta ah), waxaa suurtogal ah in loo beddelo si aan u ogaanno pixels-ka la tuuri karo iyada oo la ilaalinayo tayada guud. Waxaa jira isbeddello qaar oo bixiya hab-dhaqanka saxda ah.

Inkasta oo ay jiraan habab kale, aan si faahfaahsan u eegno iyaga. isbedel cosine discrete (DCT - ka isbedel cosine discrete). Hawlaha ugu muhiimsan ee DCT:

  • U beddelaa baloogyada pixels-ka isku-dheellitirka isku-dheelitirka cabbirka siman.
  • Wuxuu xoojiyaa awoodda si uu uga caawiyo baabi'inta ka-reebista boosaska.
  • Waxay bixisaa dib u celin

Febraayo 2, 2017 Sintra R.J. (Cintra, RJ) iyo Bayer F.M. (Bayer FM) ayaa daabacday maqaal ku saabsan beddelka u eg DCT ee isu-ururinta sawirka oo u baahan 14 keliya oo lagu daro.

Ha werwerin haddii aadan fahmin faa'iidooyinka qodob kasta. Hadda aan isticmaalno tusaalooyin gaar ah si aan u aragno qiimahooda dhabta ah.

Aan soo qaadano 8x8 block of pixels:

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Balooggaan waxaa loo sameeyay sawirka soo socda 8 iyo 8 pixel:

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Codso DCT qaybtan pixels oo hel 8x8 block of coefficients:

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Oo haddii aan bixino qaybtan iskuxirayaasha, waxaan heli doonaa sawirka soo socda:

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Sida aad arki karto, uma eka sawirka asalka ah. Waxaad arki kartaa in isku-dhafka koowaad uu aad uga duwan yahay kuwa kale oo dhan. Isku-xidhka koowaad waxa loo yaqaannaa isku-xidhka DC-ga, kaas oo ka dhigan dhammaan muunadaha ku jira soo-bandhigista, wax la mid ah celceliska.

Qaybtan isku-dhafan waxay leedahay hanti xiiso leh: waxay ka soocdaa qaybaha soo noqnoqda sare iyo kuwa hooseeya.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Sawirka, awoodda inteeda badan waxay ku urursan tahay soo noqnoqoshada hoose, markaa haddii aad u beddesho sawirka qaybihiisa soo noqnoqda oo aad iska tuurto isku-dheellitirka sare ee soo noqnoqda, waxaad yarayn kartaa cadadka xogta loo baahan yahay si loo qeexo sawirka adiga oo aan u hurin tayada sawirka aad u badan.

Soo noqnoqoshada waxa loola jeedaa sida dhakhsaha ah ee calaamaduhu isu beddelo.

Aan isku dayno inaan ku dabaqno aqoonta aan ka helnay kiiska tijaabada anagoo u rogeyna sawirka asalka ah inta jeer ee ay tahay (block of coefficients) anagoo adeegsanayna DCT ka dibna aan iska tuurayno qayb ka mid ah coefficients-yada ugu yar.

Marka hore waxaan u beddelnaa qaybta soo noqnoqda.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Marka xigta, waxaan tuuraynaa qayb (67%) ee iskuxirayaasha, badi qaybta midig ee hoose.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Ugu dambayntii, waxaanu dib-u-dhis ku samaynaa sawirka laga soo qaaday isku-xidhayaasha la tuuray ee la tuuray (xusuusnow, waa inay noqotaa mid aan leexleexan karin) oo barbar dhig kii asalka ahaa.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Waxaan aragnaa in ay u egtahay sawirka asalka ah, laakiin waxaa jira kala duwanaansho badan oo asal ah. Waxaan tuurnay 67,1875% walina waxaan helnay wax u eg kii asalka ahaa. Waxaa suurtogal ahayd in si ka fakar badan loo tuuro isku-xireyaasha si loo helo sawir xitaa ka tayo wanaagsan, laakiin taasi waa mowduuca xiga.

Isku-dubarid kasta waxaa la soo saaray iyadoo la adeegsanayo dhammaan pixels

Muhiim: isugeyn kasta si toos ah looguma habayn hal pixel, laakiin waa wadarta miisaanka oo dhan pixels. Jaantuskan cajiibka ah waxa uu tusinayaa sida isku xidhka koowaad iyo labaad loo xisaabiyo iyadoo la isticmaalayo miisaanyo u gaar ah tusmooyin kasta.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Waxa kale oo aad isku dayi kartaa in aad sawirto DCT-ga adiga oo eegaya samaynta sawir fudud oo ku salaysan. Tusaale ahaan, halkan waa calaamadda A ee la sameeyay iyadoo la isticmaalayo miisaan kasta oo isku-dhafan:

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Talaabada 4aad - qiyaasid

Ka dib markii aan tuurno qaar ka mid ah coefficients ee tallaabadii hore, tallaabada ugu dambeysa (isbeddelka) waxaan sameynaa qaab gaar ah oo qiyaasid ah. Marxaladdan waa la aqbali karaa in la lumiyo macluumaadka. Ama, si ka fudud, waxaanu qiyaasi doonaa iskuxirayaasha si aan u gaarno cadaadis.

Sideed u qiyaasi kartaa block of coefficients? Mid ka mid ah hababka ugu fudud ayaa ah qiyaas isku mid ah, marka aan qaadano block, u qaybi hal qiime (10) oo ku wareegsan natiijada.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Miyaynu ka noqon karnaa isugayntan? Haa, waan awoodnaa, annagoo ku dhufanaya isla qiimaha aan ku kala qaybsannay.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Habkani ma aha kan ugu fiican sababtoo ah xisaabta kuma darin muhiimadda isku-xidhka kasta. Mid ka mid ah ayaa isticmaali kara matrix of quantizers halkii uu ka isticmaali lahaa hal qiime, shaxankani wuxuu ka faa'iidaysan karaa hantida DCT iyada oo la qiyaaso inta badan midigta hoose iyo kuwa laga tirada badan yahay ee bidixda sare.

Tallaabada 5 - entropy codeing

Marka aan qiyaasno xogta (sawirrada, jajabyada, fiimyada), waxaan wali ku cadaadin karnaa khasaare la'aan. Waxaa jira habab badan oo algorithm ah oo lagu cadaadiyo xogta. Waxaan si degdeg ah u eegi doonaa qaar ka mid ah, si aad si qoto dheer u fahanto waxaad akhrin kartaa buuga Understanding Compression: Data Compression for Modern Developers ("Fahamka Isku-buufinta: Cadaadiska Xogta ee Horumarinta Casriga ah").

Codaynta fiidiyooga iyadoo la adeegsanayo VLC

Aynu nidhaahno waxaanu haynaa jilayaal badan: a, e, r и t. Itimaalka (oo u dhexeeya 0 ilaa 1) inta jeer ee jilaa kasta ka soo muuqdo qulqulka ayaa lagu soo bandhigay shaxdan.

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

Waxaan ku meelayn karnaa nambarada binary-ga gaarka ah (gaar ahaan kuwa yaryar) kuwa ugu macquulsan, iyo koodka waaweyn kuwa yar yar.

a e r t
ixtimaalka 0,3 0,3 0,2 0,2
code binary 0 10 110 1110

Waxaan cadaadinnaa qulqulka, anagoo u maleynayna inaan ku dhamaaneyno inaan ku bixineyno 8 bits dabeecad kasta. Cadaadis la'aan, 24 bits ayaa loo baahan lahaa halkii qofba. Haddii aad ku bedesho xaraf kasta koodkiisa, waxaad helaysaa kayd!

Tallaabada ugu horreysa waa in la codeeyo jilaha e, oo u dhiganta 10, dabeecadda labaadna waa a, oo lagu daray (ma aha hab xisaabeed): [10] [0], iyo ugu dambeyntii dabeecadda saddexaad t, Kaas oo ka dhigaya qulqulkayaga ugu dambeeya ee la cufan la siman [10][0][1110] ama 1001110, kaas oo u baahan kaliya 7 bits (3,4 jeer ka yar booskii asalka ahaa).

Fadlan ogow in kood kastaa yahay kood gaar ah oo horgale leh. Huffman algorithm ayaa kaa caawin doona inaad hesho lambaradan. Inkasta oo habkani aanu ahayn mid aan lahayn cilladihiisa, waxaa jira codecs fiidiyoow ah oo weli bixiya habkan algorithmic ee isku-buufinta.

Labada cod-bixiye iyo cod-bixiyeba waa inay galaangal u yeeshaan miis calaamad ah oo leh koodhkooda binary. Sidaa darteed, waxaa sidoo kale lagama maarmaan ah in la soo diro miis si wax-ku-ool ah.

Codaynta xisaabta

Aynu nidhaahno waxaanu haynaa jilayaal badan: a, e, r, s и t, iyo suurtogalnimadooda ayaa lagu soo bandhigay shaxdan.

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

Isticmaalka shaxdan, waxaanu dhisi doonaa tirooyin ka kooban dhammaan jilayaasha suurtogalka ah, oo lagu kala soocayo tirada ugu badan.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Hadda aan codeeyno qulqulka saddex xaraf: cunin.

Marka hore dooro jilaha ugu horeeya e, kaas oo ku jira qaybta hoose ee 0,3 ilaa 0,6 (kuma jiraan). Waxaan qaadanaa qaybtan oo waxaan u qaybinnaa mar kale si la mid ah sidii hore, laakiin kala duwanaantan cusub.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Aan sii wadno kood gelinta qulqulkayaga cunin. Hadda qaado dabeecadda labaad a, kaas oo ku jira qaybta cusub ee 0,3 ilaa 0,39, ka dibna qaado dabeecadeena ugu dambeysa t iyo ku celcelinta isla habka mar kale, waxaan helnaa heerka ugu dambeeya ee 0,354 ilaa 0,372.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Kaliya waxaan u baahanahay inaan doorano nambarka hoose ee u dambeeya 0,354 ilaa 0,372. Aynu doorano 0,36 (laakin waxaad dooran kartaa lambar kasta oo kale oo ku jira qaybtan hoose). Lanbarkan oo keliya ayaanu ku soo celin karnaa qulqulkayagii asalka ahaa. Waxa aad mooddaa in aanu sawirnay xariiqda dhexda si aanu u codaynno qulqulkayaga.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Hawlgalka gadaale (taasi waa, codaynta) waa sida ugu fudud: lambarkayaga 0,36 iyo kala duwanaanshahayada bilowga ah, waxaan ku socodsiin karnaa isla habka. Laakin hadda, annagoo adeegsanayna lambarkan, waxaan aqoonsaneynaa qulqulka ku koodka isticmaalaya lambarkan.

Iyada oo kala duwanaanshaha ugu horreeya, waxaan ogaanay in nambarkayaga uu u dhigmo jeexan, sidaas darteed tani waa dabeecadeena koowaad. Hadda waxaanu qayb-hoosaadkan u qaybinaynaa mar labaad anagoo raacayna habraacii hore. Halkaan waxaad ka arki kartaa in 0,36 ay u dhiganto calaamadda a, ka dib markii aan ku celinay habka waxaan gaadhnay dabeecadii ugu dambeysay t (samaynta qulqulkayaga asalka ah ee codeed cunin).

Labada cod-bixiyeyaashu waa inay lahaadaan shax calaamad ah itimaalka, markaa waa lagama maarmaan in lagu soo diro xogta gelinta sidoo kale.

Aad u qurux badan, miyaanay ahayn? Cidii la timi xalkaan waa caqli badane. Qaar ka mid ah codecs-yada fiidiyowga ayaa isticmaala farsamadan (ama ugu yaraan waxay u bixiyaan ikhtiyaar ahaan).

Fikradda ayaa ah in si aan khasaare lahayn loo cadaadiyo qulqul yar oo la qiyaasay. Waxaa hubaal ah in maqaalkani uu ka maqan yahay tafaasiil aad u fara badan, sababo, ganacsiyo, iwm. Laakiin haddii aad tahay horumariye, waa inaad wax badan ka ogaataa. Codsiyada cusubi waxay isku dayaan inay adeegsadaan entropy codeing algorithms kala duwan sida berrito.

Talaabada 6 - qaabka bitstream

Ka dib marka waxaas oo dhan la sameeyo, waxa hadhay oo dhan waa in la furo xidhmooyinka la cufan ee macnaha guud ee tillaabooyinka la sameeyay. Furaha waa in si cad loogu wargaliyaa go'aamada uu sameeyo cod-bixiyaha. Furaha waa in la siiyaa dhammaan macluumaadka lagama maarmaanka ah: qoto dheer, booska midabka, xallinta, macluumaadka saadaasha (dhaqdhaqaaqa dhaqdhaqaaqa, saadaasha INTER jihada), profile, heerka, heerka jir, nooca jir, lambarka jir iyo wax ka badan.

Waxaan si degdeg ah u eegi doonaa bitstream-ka H.264. Talaabadayada ugu horeysa waa in aan abuurno ugu yar ee H.264 bitstream (FFmpeg sida caadiga ah waxay ku daraysaa dhammaan xulashooyinka codaynta sida SEI NAL - waanu ogaan doonaa waxa ay tahay wax yar). Waxaan taas ku samayn karnaa anagoo adeegsanayna kaydkeena iyo FFmpeg.

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

Amarkani wuxuu soo saari doonaa qulqulka qulqulka ee cayriin H.264 oo leh hal jir, 64 × 64 xallin, oo leh meel midab leh YUV420. Xaaladdan oo kale, sawirka soo socda ayaa loo isticmaalaa sidii qaab.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

H.264 bitstream

Standard AVC (H.264) go'aamiyay in macluumaadka lagu soo diri doono macroframes (macnaha shabakada), oo loo yaqaan nal (tani waa heerka abstraction network). Hadafka ugu weyn ee NAL waa inay bixiso bandhig muuqaal ah "web-saaxiibtinimo". Heerkani waa inuu ka shaqeeyaa TV-yada (stream-based), internetka (xirmo-ku-saleysan).

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Waxaa jira calaamade isku-dubarid si loo qeexo xuduudaha walxaha NAL. Token kasta oo isku xidhku waxa uu ka kooban yahay qiimo 0x00 0x00 0x01, marka laga reebo kan ugu horreeya, oo la mid ah 0x00 0x00 0x00 0x01. Hadii aan bilowno hexdump H.264 bitstream-ka la soo saaray, waxaanu aqoonsanay ugu yaraan saddex qaab oo NAL ah bilowga faylka.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Sida la sheegay, decoder-ku waa inuu yaqaanaa ma aha oo kaliya xogta sawirka, laakiin sidoo kale faahfaahinta fiidiyowga, jir, midabada, cabbirada la isticmaalo, iyo wax ka badan. Baytka ugu horreeya ee NAL kasta ayaa qeexaya qaybtiisa iyo nooca.

Aqoonsiga nooca NAL Description
0 Nooca aan la aqoon
1 Sawirka jajaban oo aan lahayn IDR
2 Qaybta xogta jeexan ee summadaysan A
3 Qaybta xogta jeexan ee summadaysan B
4 Qaybta xogta jeexan ee summadaysan C
5 Lifaaqa IDR ee sawirka IDR-ga
6 Macluumaad dheeraad ah oo ku saabsan kordhinta SEI
7 Habbeegga Taxanaha ee SPS
8 Dejinta cabbirrada sawirka PPS
9 Kala soocida gelitaanka
10 Dhamaadka isku xigxiga
11 Dhamaadka dunta
... ...

Caadi ahaan NAL-ka ugu horreeya ee qulqulka yara waa SPS. Noocan NAL ayaa mas'uul ka ah wargelinta ku saabsan doorsoomayaasha codeynta guud sida astaanta, heerka, xallinta, iwm.

Haddii aan ka boodno calaamadeeyaha isku-dhafka ugu horreeya, waxaan go'aamin karnaa byte-ka ugu horreeya si aan u ogaanno nooca NAL ee ugu horreeya.

Tusaale ahaan, byte-ka ugu horreeya ee ka dambeeya calaamadda sync waa 01100111, meesha ugu horeysa (0) garoon ku yaal forbidden_eber_bit. 2-bit oo xiga (11) wuxuu inoo sheegayaa garoonka nal_ref_idc, taasoo tilmaamaysa in NAL-kan uu yahay goob tixraac iyo in kale. Iyo 5-bit oo soo haray (00111) wuxuu inoo sheegayaa garoonka nal_unit_nooca, Xaaladdan oo kale waa SPS block (7) NAL.

byte labaad (ikhtiyaari ah=01100100, hex=0x64, Dec=100) gudaha SPS NAL waa garoonka profile_idc, kaas oo tusinaya profile-ka uu cod-bixiyaha isticmaalay. Xaaladdan oo kale, muuqaal sare oo xaddidan ayaa la isticmaalay (tusaale, muuqaal sare oo aan lahayn taageerada qaybta B ee laba jiho).

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Haddii aad eegto qeexitaanka bitstream-ka H.264 SPS NAL, waxaan ka heli doonaa qiimeyaal badan oo loogu talagalay magaca cabbirka, qaybta iyo sharraxaadda. Tusaale ahaan, aan eegno beeraha pic_ballaadhka_mbs_ laga jaray_1 и pic_dhererka_qariirada_cutubyo_laga jaray_1.

Magaca halbeegga category Description
pic_ballaadhka_mbs_ laga jaray_1 0 ue(v)
pic_dhererka_qariirada_cutubyo_laga jaray_1 0 ue(v)

Haddii aan samayno qaar ka mid ah hawlgallada xisaabta oo leh qiyamka meelahan, waxaan heli doonnaa xallin. Mid ayaa matali kara 1920 x 1080 iyadoo la isticmaalayo pic_ballaadhka_mbs_ laga jaray_1 oo qiimaheedu yahay 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Mar labaad, si loo badbaadiyo meel bannaan, halkii aan codayn lahayn 1920, waxaan ku samaynay 119.

Haddii aan sii wadno hubinta muuqaalkeena la abuuray ee qaabka laba-geesoodka ah (tusaale: xxd -b -c 11 v/minimal_yuv420.h264), ka dib waxaad aadi kartaa NAL ugu dambeeya, kaas oo ah qaabka laftiisa.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Halkan waxaan ku aragnaa qiimaheeda 6 ee ugu horreeya: 01100101 10001000 10000100 00000000 00100001 11111111. Maaddaama byte-ka ugu horreeya la og yahay inuu muujinayo nooca NAL, kiiskan (00101) waa jajab IDR ah (5), ka dibna waxaad sii sahamin kartaa:

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Isticmaalka macluumaadka qeexitaanka, waxa suurtagal noqon doonta in la kala saaro nooca jajabka (nooca_jeex) iyo lambarka xarafka (frame_num) oo ka mid ah qaybaha kale ee muhiimka ah.

Si aad u hesho qiyamka meelaha qaar (ue(v), me(v), se(v) ama te(v)), waxaan u baahanahay inaan go'no jajabka annagoo adeegsanayna dekodeer gaar ah oo ku saleysan Golomb code jibbaaran. Habkani aad buu ugu fiican yahay in lagu codeeyo qiyamka doorsoomayaasha, gaar ahaan marka ay jiraan qiyamyo badan oo aan caadi ahayn.

Macnaha nooca_jeex и frame_num Fiidiyowgaan waa 7 (I-fragment) iyo 0 (qaabka koowaad).

Qaybaha loo yaqaan 'bitstream' waxaa loo malayn karaa borotokool ahaan. Haddii aad rabto inaad wax badan ka ogaato bitstream-ka, waa inaad tixraacdaa qeexitaanka ITU H.264. Halkan waxaa ah jaantus weyn oo muujinaya halka xogta sawirku taal (YUV qaab la cufan).

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Qaybaha kale ee loo yaqaan 'bitstreams' waa la baari karaa, sida VP9, H.265 (HEVC) ama xitaa qulqulkayaga cusub ee ugu wanaagsan AV1. Dhammaantood miyay isku mid yihiin? Maya, laakiin marka aad fahamto ugu yaraan mid, aad ayay u fududahay in la fahmo inta kale.

Ma rabtaa inaad ku dhaqanto? Sahaminta H.264 bitstream-ka

Waxaad soo saari kartaa hal muuqaal oo muuqaal ah oo waxaad isticmaali kartaa MediaInfo si aad u baarto qulqulka H.264. Dhab ahaantii, ma jiraan wax kaa diidaya xitaa inaad eegto koodhka isha ee falanqeynaya qulqulka yar H.264 (AVC).

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Dhaqan ahaan, waxaad isticmaali kartaa Intel Video Pro Analyzer (miyaan horayba u idhi barnaamijka waa la bixiyaa, laakiin waxaa jira nooc tijaabo ah oo bilaash ah oo leh xadka 10?).

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

guudmar

Ogsoonow in codec-yo badan oo casri ah ay adeegsadaan qaabkii aan hadda barannay. Halkan, aan eegno jaantuska block ee codec-ga fiidiyowga Thor. Waxay ka kooban tahay dhammaan talaabooyinkii aan soo marnay. Dulucda qoraalkan oo dhan waa in uu ugu yaraan ku siiyo faham wanaagsan oo ku saabsan hal-abuurka iyo dukumentiyada aaggan.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Markii hore, waxaa la xisaabiyay in 139 GB ee booska diskka loo baahan doono in lagu kaydiyo faylka fiidiyowga socda hal saac oo ah tayada 720p iyo 30fps. Haddii aad isticmaasho hababka looga hadlay qodobkan (inter-frame iyo saadaasha gudaha, isbeddelka, qiyaasidda, codeynta entropy, iwm.), markaa waxaad ku guuleysan kartaa (oo ku saleysan xaqiiqda ah in aan ku bixinno 0,031 bits per pixel), fiidiyoow aad u badan. tayada lagu qanco, oo kaliya 367,82 MB, ma aha 139 GB ee xusuusta.

Sidee H.265 ku gaadhaan saamiga cadaadis ka wanaagsan H.264?

Hadda oo aan wax badan ka ogaannay sida codecyadu u shaqeeyaan, way fududahay in la fahmo sida codec-yada cusubi u keeni karaan xalal sare oo xoogaa yar ah.

Haddaynu is barbar dhigno AVC и HEVC, waxaa mudan in la xasuusto in tani ay had iyo jeer tahay doorashada u dhaxaysa culeyska CPU ee weyn iyo saamiga isku-buufinta.

HEVC waxa uu leeyahay doorashooyin ka badan (iyo qayb-hoosaad) oo ka badan AVC, Jihooyin saadaasha gudaha oo badan, koodhka entropy oo la hagaajiyay, iyo in ka badan. Dhammaan horumarintaas waa la sameeyay H.265 awood u leh inuu ku cadaadiyo 50% ka badan H.264.

Sidee buu u shaqeeyaa codec muuqaal ah? Qaybta 2. Waa maxay, sababta, sidee

Qeybta koowaad: Aasaaska ku shaqaynta fiidyaha iyo sawirada

Source: www.habr.com

Add a comment