Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Kashi na farko: Tushen aiki tare da bidiyo da hotuna

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Menene? Codec na bidiyo wani yanki ne na software/hardware mai matsawa da/ko rage damfara bidiyo na dijital.

Don me? Duk da wasu ƙuntatawa duka cikin sharuddan bandwidth da
kuma dangane da sararin ajiyar bayanai, kasuwa yana buƙatar ƙarin ingancin bidiyo. Kuna tuna yadda a cikin post na ƙarshe muka ƙididdige mafi ƙarancin da ake buƙata don firam 30 a sakan daya, 24 bits akan pixel, tare da ƙudurin 480x240? Mun sami 82,944 Mbit / s ba tare da matsawa ba. Matsi a halin yanzu ita ce hanya ɗaya tilo don watsa HD/FullHD/4K gabaɗaya zuwa allon talabijin da Intanet. Ta yaya ake samun wannan? Yanzu bari mu ɗan kalli manyan hanyoyin.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

An yi fassarar tare da goyan bayan EDISON Software.

Mun yi alkawari hadewar tsarin kula da bidiyoKuma muna haɓaka microtomograph.

Codec vs Kwantena

Kuskure na yau da kullun na sababbin sababbin ke yi shine ruɗar codec na bidiyo na dijital da akwati na bidiyo na dijital. Kwantena takamaiman tsari ne. Kundin da ke ɗauke da metadata na bidiyo (da yiwuwar sauti). The matsa video za a iya tunanin a matsayin ganga biya.

Yawanci, tsawo na fayil ɗin bidiyo yana nuna nau'in akwati. Misali, bidiyon fayil.mp4 mai yiwuwa akwati ne Sashin MPEG-4 14, kuma fayil mai suna video.mkv ya fi dacewa matryoshka. Don tabbatar da cikakken tsarin codec da tsarin ganga, zaku iya amfani da su FFmpeg ko MediaInfo.

A bit of history

Kafin mu isa Ta yaya?, bari mu ɗan ɗan nutse cikin tarihi don fahimtar wasu tsofaffin codecs da ɗan kyau.

Codec na bidiyo H.261 ya bayyana a cikin 1990 (a fasaha - a cikin 1988) kuma an ƙirƙira shi don yin aiki akan ƙimar canja wurin bayanai na 64 Kbps. Ya riga ya yi amfani da ra'ayoyi kamar subsampling launi, macroblocks, da dai sauransu. An buga ma'aunin codec na bidiyo a cikin 1995 H.263, wanda ya ci gaba har zuwa 2001.

An kammala sigar farko a cikin 2003 H.264/AVC. A wannan shekarar, TrueMotion ya fito da codec ɗin bidiyo na asarar da ake kira VP3. Google ya sayi kamfanin a cikin 2008, ya sakewa VP8 shekara guda. A cikin Disamba 2012, Google ya fito VP9, kuma ana goyan bayanta a kusan ¾ na kasuwar burauza (ciki har da na'urorin hannu).

AV1 sabon codec na bidiyo ne na kyauta kuma buɗaɗɗen haɓakawa Alliance don Buɗe Media (AOMedia), wanda ya haɗa da shahararrun kamfanoni, kamar: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel da Cisco. An buga sigar farko ta codec, 0.1.0, a ranar 7 ga Afrilu, 2016.

Haihuwar AV1

A farkon 2015, Google yana aiki VP10Xiph (wanda Mozilla ke da shi) yana aiki Daala, kuma Cisco yayi nasa codec na bidiyo na kyauta wanda ake kira Thor.

sa'an nan MPEG LA na farko sanar da shekara-shekara iyaka ga HEVC (H.265) da kuɗi sau 8 fiye da na H.264, amma ba da daɗewa ba suka sake canza dokoki:

babu iyaka shekara,
Kudin abun ciki (0,5% na kudaden shiga) da
Kuɗin naúrar yana da kusan sau 10 sama da H.264.

Alliance don Buɗe Media kamfanoni ne suka ƙirƙira su daga fagage daban-daban: masana'antun kayan aiki (Intel, AMD, ARM, Nvidia, Cisco), masu samar da abun ciki (Google, Netflix, Amazon), masu ƙirƙirar burauzar (Google, Mozilla) da sauransu.

Kamfanonin suna da manufa ɗaya - codec na bidiyo mara sarauta. Sannan ya bayyana AV1 tare da lasisin haƙƙin mallaka mafi sauƙi. Timothy B. Terryberry ya ba da gabatarwa mai ban sha'awa wanda ya zama asalin ra'ayin AV1 na yanzu da samfurin lasisi.

Za ku yi mamakin sanin cewa zaku iya bincika codec AV1 ta hanyar mai bincike (masu sha'awar za su iya zuwa aomanalyzer.org).

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Universal Codec

Bari mu dubi manyan hanyoyin da ke ƙarƙashin codec na bidiyo na duniya. Yawancin waɗannan ra'ayoyin suna da amfani kuma ana amfani da su a cikin codecs na zamani kamar VP9, AV1 и HEVC. Ina gargadin ku cewa yawancin abubuwan da aka bayyana za a sauƙaƙa. Wani lokaci za a yi amfani da misalan ainihin duniya (kamar yadda yake tare da H.264) don nuna fasahar.

Mataki na 1 - raba hoton

Mataki na farko shine raba firam ɗin zuwa sassa da yawa, sassa da ƙari.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Don me? Akwai dalilai da yawa. Lokacin da muka raba hoto, za mu iya yin hasashen yanayin motsi daidai da yin amfani da ƙananan sassa don ƙananan sassa masu motsi. Yayin da ga madaidaicin bango za ka iya iyakance kanka zuwa manyan sassan.

Codecs yawanci suna tsara waɗannan sassan zuwa sassa (ko chunks), macroblocks (ko coding tubalan bishiyar), da kuma ɓangarori da yawa. Matsakaicin girman waɗannan ɓangarori ya bambanta, HEVC ya saita shi zuwa 64x64 yayin da AVC ke amfani da 16x16, kuma ana iya raba sassan har zuwa girman 4x4.

Kuna tuna nau'ikan firam ɗin daga labarin ƙarshe?! Hakanan za'a iya amfani da shi a kan tubalan, don haka za mu iya samun I-fragment, B-block, P-macroblock, da dai sauransu.

Ga masu son yin aiki, kalli yadda aka raba hoton zuwa sassa da sassa. Don yin wannan, zaku iya amfani da wanda aka riga aka ambata a cikin labarin da ya gabata. Intel Video Pro Analyzer (wanda ake biya, amma tare da nau'in gwaji na kyauta wanda ke iyakance ga firam 10 na farko). An tantance sassan anan VP9:

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Mataki na 2 - Hasashen

Da zarar mun sami sassan, za mu iya yin kisa a kan taurari. Domin INTER hasashen dole ne a canja wurin motsi motsi da sauran, kuma don hasashen INTRA ana watsa shi hanyar hasashen da sauran.

Mataki na 3 - canji

Da zarar muna da ragowar toshe (sashe da aka annabta → ainihin sashe), yana yiwuwa a canza shi ta yadda za mu san waɗanne pixels za a iya watsar da su yayin da suke kiyaye ingancin gabaɗaya. Akwai wasu canje-canje waɗanda ke ba da ainihin hali.

Ko da yake akwai wasu hanyoyin, bari mu duba su dalla-dalla. mai hankali cosine canza (DCT - daga mai hankali cosine canza). Babban ayyuka na DCT:

  • Yana canza tubalan pixels zuwa madaidaitan tubalan ma'aunin mitar.
  • Ƙarfafa iko don taimakawa kawar da sakewar sarari.
  • Yana ba da juzu'i.

Fabrairu 2, 2017 Sintra R.J. (Cintra, RJ) da Bayer F.M. (Bayer FM) ta buga labarin game da canji mai kama da DCT don matsawa hoto wanda ke buƙatar kari 14 kawai.

Kada ku damu idan ba ku fahimci amfanin kowane abu ba. Yanzu bari mu yi amfani da takamaiman misalai don ganin ainihin ƙimar su.

Bari mu ɗauki wannan 8x8 block na pixels:

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Ana yin wannan toshe cikin hoto na 8 da 8 pixel masu zuwa:

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Aiwatar da DCT zuwa wannan toshe na pixels kuma sami 8x8 block of coefficients:

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Kuma idan muka yi wannan block of coefficients, za mu sami hoto mai zuwa:

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Kamar yadda kuke gani, baya kama da ainihin hoton. Kuna iya ganin cewa ƙididdiga ta farko ta bambanta da sauran. An san wannan ƙididdiga ta farko da ƙimar DC, wanda ke wakiltar duk samfuran da ke cikin tsararrun shigarwa, wani abu kamar matsakaici.

Wannan toshe na ƙididdiga yana da dukiya mai ban sha'awa: yana raba abubuwan haɗin kai mai girma daga ƙananan mitoci.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

A cikin hoto, yawancin wutar lantarki yana ta'allaka ne a ƙananan mitoci, don haka idan kun canza hoton zuwa abubuwan haɗin mitarsa ​​kuma ku watsar da mafi girman mitar, zaku iya rage adadin bayanan da ake buƙata don siffanta hoton ba tare da sadaukar da ingancin hoto da yawa ba.

Mitar tana nufin yadda saurin siginar ke canzawa.

Mu yi ƙoƙari mu yi amfani da ilimin da aka samu a cikin gwajin gwaji ta hanyar canza hoton asali zuwa mitarsa ​​(block of coefficients) ta amfani da DCT sannan mu watsar da wani yanki na mafi ƙarancin ƙima.

Da farko za mu canza shi zuwa yankin mita.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Bayan haka, za mu watsar da sashi (67%) na ƙididdiga, galibi ƙananan ɓangaren dama.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

A ƙarshe, muna sake gina hoton daga wannan juzu'in da aka jefar na coefficients (tuna, dole ne ya zama mai jujjuyawa) kuma mu kwatanta shi da na asali.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Mun ga cewa ya yi kama da ainihin hoton, amma akwai bambance-bambance da yawa daga asali. Mun jefar da 67,1875% kuma har yanzu mun sami wani abu mai kama da asali. Zai yiwu a yi watsi da ƙididdigar ƙididdiga cikin tunani don samun hoto mafi inganci, amma wannan batu ne na gaba.

Ana samar da kowane ƙididdiga ta amfani da duk pixels

Muhimmi: kowace ƙididdiga ba a tsara taswirar kai tsaye zuwa pixel ɗaya ba, amma jimlar ma'auni ne na duk pixels. Wannan jadawali mai ban mamaki yana nuna yadda ake ƙididdige ƙididdiga na farko da na biyu ta amfani da ma'auni na musamman ga kowace fihirisa.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Hakanan zaka iya ƙoƙarin ganin DCT ta hanyar duban samuwar hoto mai sauƙi dangane da shi. Misali, ga alamar A da aka samar ta amfani da kowane ma'aunin nauyi:

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Mataki na 4 - ƙididdigewa

Bayan mun jefa wasu ƙididdiga a mataki na baya, a mataki na ƙarshe (canji) muna yin nau'i na musamman na ƙididdigewa. A wannan mataki yana da karɓa don rasa bayanai. Ko, mafi sauƙi, za mu ƙididdige ƙididdiga don cimma matsawa.

Ta yaya za ku iya ƙididdige block of coefficients? Ɗaya daga cikin mafi sauƙi hanyoyin shine ƙididdige ɗabi'a, lokacin da muka ɗauki toshe, raba shi da ƙima ɗaya (ta 10) kuma a zagaye sakamakon.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Za mu iya juyar da wannan toshe na coefficients? Eh, za mu iya, mu ninka ta da wannan kimar da muka raba.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Wannan hanya ba ita ce mafi kyau ba saboda baya la'akari da mahimmancin kowane ƙididdiga. Mutum zai iya amfani da matrix na ma'auni maimakon ƙima ɗaya, kuma wannan matrix na iya yin amfani da dukiyar DCT ta ƙididdige yawancin ƙananan dama da 'yan tsiraru na hagu na sama.

Mataki na 5 - entropy codeing

Da zarar mun ƙididdige bayanan (tushen hoto, gutsuttsura, firam ɗin), za mu iya har yanzu damfara shi ba tare da asara ba. Akwai hanyoyi da yawa algorithmic don damfara bayanai. Za mu yi saurin duba wasu daga cikinsu, don samun zurfin fahimta za ku iya karanta littafin Understanding Compression: Data Compression for Modern Developers ("Fahimtar Matsi: Matsalolin Bayanai don Masu Haɓakawa na Zamani").

Rikodin bidiyo ta amfani da VLC

Bari mu ce muna da rafi na haruffa: a, e, r и t. Yiwuwar (daga 0 zuwa 1) na sau nawa kowane hali ya bayyana a cikin rafi ana gabatar da shi a cikin wannan tebur.

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

Za mu iya sanya lambobin binary na musamman (zai fi dacewa kanana) ga masu yuwuwar, da manyan lambobi ga waɗanda ba su da yuwuwa.

a e r t
Yiwuwa 0,3 0,3 0,2 0,2
Binary code 0 10 110 1110

Muna matsa rafi, muna ɗauka cewa za mu ƙare kashe 8 ragowa ga kowane hali. Ba tare da matsawa ba, 24 ragowa za a buƙaci kowane hali. Idan kun maye gurbin kowane hali da lambar sa, kuna samun tanadi!

Mataki na farko shine rufa masa asiri e, wanda yayi daidai da 10, kuma hali na biyu shine a, wanda aka ƙara (ba ta hanyar lissafi ba): [10] [0], kuma a ƙarshe hali na uku t, wanda ke sanya matsewar bitstream ɗin mu na ƙarshe daidai da [10][0][1110] ko 1001110, wanda ke buƙatar kawai 7 ragowa (sau 3,4 ƙasa da sarari fiye da na asali).

Lura cewa kowace lamba dole ne ta zama lamba ta musamman tare da prefix. Huffman algorithm zai taimake ku nemo waɗannan lambobin. Kodayake wannan hanyar ba tare da lahani ba, akwai codecs na bidiyo waɗanda har yanzu suna ba da wannan hanyar algorithmic don matsawa.

Duka mai rikodin da mai ƙaddamarwa dole ne su sami damar zuwa tebur alama tare da lambobin binary ɗin su. Saboda haka, ya zama dole kuma a aika da tebur a matsayin shigarwa.

Ƙididdigar lissafi

Bari mu ce muna da rafi na haruffa: a, e, r, s и t, kuma an gabatar da yiwuwar su a cikin wannan tebur.

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

Yin amfani da wannan tebur, za mu gina jeri mai ɗauke da dukkan haruffa masu yuwuwa, waɗanda aka jera su da mafi girma lamba.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Yanzu bari mu ɓoye rafi na haruffa uku: ci.

Da farko zaɓi harafin farko e, wanda yake a cikin subbrange daga 0,3 zuwa 0,6 (ba a haɗa da shi ba). Muna ɗaukar wannan ƙaramin yanki kuma mu sake raba shi daidai gwargwado kamar da, amma don wannan sabon kewayon.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Mu ci gaba da yin codeing rafi ci. Yanzu ɗauki hali na biyu a, wanda yake a cikin sabon subbrange daga 0,3 zuwa 0,39, sa'an nan kuma ɗauki halinmu na ƙarshe. t da sake maimaita wannan tsari, muna samun ƙananan ƙananan ƙananan daga 0,354 zuwa 0,372.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Muna buƙatar kawai zaɓi lamba a cikin ƙasan ƙarshe daga 0,354 zuwa 0,372. Bari mu zaɓi 0,36 (amma kuna iya zaɓar kowane lamba a cikin wannan ƙaramin). Da wannan lambar ne kawai za mu iya dawo da asalin rafi. Kamar dai muna zana layi a cikin jeri don ɓoye rafin mu.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Aiki na baya (wato, yanke hukunci) yana da sauƙi: tare da lambar mu 0,36 da farkon mu, za mu iya gudanar da wannan tsari. Amma yanzu, ta amfani da wannan lambar, mun gano rafi da aka ɓoye ta amfani da wannan lambar.

Tare da kewayon farko, mun lura cewa lambar mu ta dace da yanki, saboda haka wannan shine halinmu na farko. Yanzu mun sake raba wannan ƙaramin yanki ta hanyar bin tsari iri ɗaya kamar da. Anan zaka iya ganin cewa 0,36 yayi daidai da alamar a, kuma bayan maimaita tsari mun isa ga hali na ƙarshe t (ƙirƙirar rafin mu na asali ci).

Duka mai rikodin rikodin da dikodi dole ne su kasance da tebur na alamar yuwuwar, don haka ya zama dole a aika shi a cikin bayanan shigarwar.

Yana da kyau sosai, ko ba haka ba? Duk wanda ya kawo wannan mafita to ya tsine wa kansa. Wasu codecs na bidiyo suna amfani da wannan fasaha (ko aƙalla bayar da shi azaman zaɓi).

Manufar ita ce a danne rafi mai ƙididdigewa ba tare da hasara ba. Tabbas wannan labarin ya ɓace tarin cikakkun bayanai, dalilai, cinikin kasuwanci, da sauransu. Amma idan kai mai haɓakawa ne, yakamata ka ƙara sani. Sabbin codecs suna ƙoƙarin amfani da daban-daban entropy encoding algorithms kamar ANS.

Mataki 6 - tsarin bitstream

Bayan yin duk wannan, abin da ya rage shi ne a kwance abubuwan da aka matsa a cikin mahallin matakan da aka yi. Dole ne a sanar da mai yanke hukunci a sarari game da shawarar da mai rikodin ya yanke. Dole ne a samar da mai ƙaddamarwa tare da duk mahimman bayanai: zurfin bit, sarari launi, ƙuduri, bayanan tsinkaya (masu motsi, tsinkayar INTER), bayanin martaba, matakin, ƙimar firam, nau'in firam, lambar firam da ƙari mai yawa.

Za mu yi sauri duba bitstream H.264. Matakin mu na farko shine ƙirƙirar ƙaramin bitstream H.264 (FFmpeg ta tsohuwa yana ƙara duk zaɓuɓɓukan ɓoyewa kamar su. SEI NAL - za mu gano abin da yake gaba kadan). Za mu iya yin wannan ta amfani da ma'ajiyar mu da FFmpeg.

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

Wannan umarnin zai haifar da danyen bitstream H.264 tare da firam ɗaya, 64 × 64 ƙuduri, tare da sarari launi YU420. A wannan yanayin, ana amfani da hoton da ke gaba azaman firam.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

H.264 bitstream

Standard AVC (H.264) ya ƙayyade cewa za a aika da bayanin a cikin macroframes (a cikin ma'anar hanyar sadarwa), wanda ake kira nal (wannan shine matakin abstraction na cibiyar sadarwa). Babban burin NAL shine samar da gabatarwar bidiyo "abokan yanar gizo". Wannan ma'auni yakamata yayi aiki akan TV (tushen rafi), Intanet (tushen fakiti).

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Akwai alamar aiki tare don ayyana iyakoki na abubuwan NAL. Kowace alamar daidaitawa ta ƙunshi ƙima 0x00 0x00 0x01, sai dai na farkon wanda yake daidai 0x00 0x00 0x00 0x01. Idan muka kaddamar hexdump don H.264 bitstream da aka samar, mun gano aƙalla tsarin NAL guda uku a farkon fayil ɗin.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Kamar yadda aka bayyana, mai ƙaddamarwa dole ne ya san ba kawai bayanan hoto ba, har ma da cikakkun bayanai na bidiyo, firam, launuka, sigogi da aka yi amfani da su, da ƙari mai yawa. Baiti na farko na kowane NAL yana bayyana nau'in sa da nau'in sa.

Mai gano nau'in NAL Description
0 Nau'in da ba a sani ba
1 Rufaffen guntun hoto ba tare da IDR ba
2 Sashin bayanan yanki mai lamba A
3 Sashin bayanan yanki mai lamba B
4 Sashin bayanan yanki mai lamba C
5 Rufaffen guntun IDR na hoton IDR
6 Ƙarin bayani game da tsawo na SEI
7 Saitin Ma'auni na SPS
8 Saitin sigogin hoto na PPS
9 Mai raba hanya
10 Ƙarshen jerin
11 Ƙarshen zaren
... ...

Yawanci NAL na farko na bitstream shine SPS. Wannan nau'in NAL yana da alhakin sanarwa game da masu canji na gama-gari kamar bayanin martaba, matakin, ƙuduri, da sauransu.

Idan muka tsallake alamar daidaitawa ta farko, za mu iya zazzage byte na farko don gano nau'in NAL na farko.

Misali, byte na farko bayan alamar daidaitawa shine 01100111, inda farkon bit (0) yana cikin forbidden_zero_bit. Na gaba 2 bits (11) ya gaya mana filin nal_ref_idc, wanda ke nuna ko wannan NAL filin magana ne ko a'a. Kuma sauran 5 bits (00111) ya gaya mana filin nau'in_unit, A wannan yanayin shi ne SPS block (7) NAL.

Byte na biyu (binary=01100100, hex=0x64, Dec=100) a cikin SPS NAL shine filin profile_idc, wanda ke nuna bayanin martabar da encoder yayi amfani da shi. A wannan yanayin, an yi amfani da ƙayyadaddun bayanin martaba mai iyaka (watau babban bayanin martaba ba tare da goyon bayan ɓangaren B-bidirectional ba).

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Idan ka dubi ƙayyadaddun bitstream H.264 don SPS NAL, za mu sami ƙima da yawa don sunan siga, nau'in da bayanin. Misali, bari mu kalli filayen pic_nisa_in_mbs_minus_1 и pic_height_in_map_raka'a_minus_1.

Sunan ma'auni category Description
pic_nisa_in_mbs_minus_1 0 uwa (v)
pic_height_in_map_raka'a_minus_1 0 uwa (v)

Idan muka yi wasu ayyukan lissafi tare da ƙimar waɗannan filayen, za mu sami ƙuduri. Mutum na iya wakiltar 1920 x 1080 ta amfani da shi pic_nisa_in_mbs_minus_1 tare da darajar 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Bugu da ƙari, don adana sarari, maimakon ɓoye 1920, mun yi shi da 119.

Idan muka ci gaba da duba bidiyon da aka ƙirƙira ta hanyar binary (misali: xxd -b -c 11 v/minimal_yuv420.h264), to, zaku iya zuwa NAL na ƙarshe, wanda shine firam ɗin kanta.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Anan mun ga ƙimar byte 6 na farko: 01100101 10001000 10000100 00000000 00100001 11111111. Tunda an san byte na farko yana nuna nau'in NAL, a wannan yanayin (00101) guntun IDR ne (5), sannan zaku iya kara bincika shi:

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Yin amfani da ƙayyadaddun bayanan, za a iya yiwuwa a yanke nau'in guntu (nau'in yanki) da lambar frame (frame_num) a tsakanin sauran muhimman fagage.

Don samun darajar wasu filayen (ue(v), me(v), se(v) ko te(v)), muna buƙatar ƙaddamar da guntu ta yin amfani da mai ƙididdigewa na musamman dangane da lambar Golomb mai lamba. Wannan hanyar tana da inganci sosai don ɓoye ƙima mai ma'ana, musamman idan akwai ƙima mara kyau da yawa.

Ma'ana nau'in yanki и frame_num na wannan bidiyon sune 7 (I-fragment) da 0 (firam na farko).

Ana iya ɗaukar rafi kaɗan azaman yarjejeniya. Idan kuna son ƙarin sani game da bitstream, yakamata ku koma ƙayyadaddun bayanai ITU H.264. Anan ga macro zane yana nuna inda bayanan hoton yake (YUV a cikin matsa lamba).

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Za'a iya bincika sauran abubuwan bitar, kamar VP9, H.265 (HEVC) ko ma sabon mu mafi kyawun bitstream AV1. Duk suna kama? A'a, amma da zarar kun fahimci akalla ɗaya, yana da sauƙin fahimtar sauran.

Kuna son yin aiki? Bincika H.264 bitstream

Kuna iya ƙirƙirar bidiyon firam guda ɗaya kuma amfani da MediaInfo don bincika bitstream H.264. A gaskiya ma, babu abin da zai hana ku ko kallon lambar tushe wanda ke nazarin rafin bit H.264 (AVC).

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Don yin aiki, zaku iya amfani da Intel Video Pro Analyzer (Shin na riga na faɗi cewa an biya shirin, amma akwai sigar gwaji kyauta tare da iyakokin firam 10?).

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Siffar

Lura cewa yawancin codecs na zamani suna amfani da samfurin iri ɗaya wanda muka yi nazari yanzu. Anan, bari mu kalli tsarin toshe na codec na bidiyo Thor. Ya ƙunshi duk matakan da muka bi. Duk abin da ke cikin wannan post ɗin shine aƙalla don ba ku kyakkyawar fahimtar sabbin abubuwa da takaddun bayanai a wannan yanki.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

A baya can, an ƙididdige cewa 139 GB na sararin faifai za a buƙaci don adana fayil ɗin bidiyo na tsawon sa'a ɗaya a ingancin 720p da 30fps. Idan kun yi amfani da hanyoyin da aka tattauna a cikin wannan labarin (inter-frame da tsinkaya na ciki, canji, ƙididdigewa, coding entropy, da sauransu), to, zaku iya cimma (bisa ga gaskiyar cewa muna kashe 0,031 rago a kowane pixel), bidiyo na sosai. inganci mai gamsarwa, yana ɗaukar 367,82 MB kawai, ba 139 GB na ƙwaƙwalwar ajiya ba.

Ta yaya H.265 cimma mafi alhẽri matsawa rabo fiye da H.264?

Yanzu da muka san ƙarin game da yadda codecs ke aiki, yana da sauƙin fahimtar yadda sabbin codecs za su iya sadar da ƙuduri mafi girma tare da ƴan kaɗan.

Idan muka kwatanta AVC и HEVC, yana da kyau a tuna cewa wannan kusan koyaushe zaɓi ne tsakanin babban nauyin CPU da ƙimar matsawa.

HEVC yana da ƙarin zaɓuɓɓukan sashe (da ƙaramin sashi) fiye da AVC, ƙarin kwatancen hasashen ciki, ingantattun coding entropy, da ƙari. Duk waɗannan gyare-gyare an yi su H.265 iya matsawa 50% fiye da H.264.

Ta yaya codec na bidiyo ke aiki? Sashe na 2. Me, me ya sa, ta yaya

Kashi na farko: Tushen aiki tare da bidiyo da hotuna

source: www.habr.com

Add a comment