Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Gawo loyamba: Zoyambira zogwirira ntchito ndi makanema ndi zithunzi

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Chiyani? Kanema codec ndi chidutswa cha mapulogalamu/hardware amene compresses ndi/kapena decompresses digito kanema.

Zachiyani? Ngakhale zolephera zina zonse potsata bandwidth ndi
ndipo ponena za malo osungira deta, msika umafuna mavidiyo apamwamba kwambiri. Kodi mukukumbukira momwe mu positi yomaliza tidawerengera zosachepera zofunika mafelemu 30 pa sekondi imodzi, ma bits 24 pa pixel, ndi 480x240? Tinalandira 82,944 Mbit / s popanda psinjika. Kuponderezana ndi njira yokhayo yofalitsira HD/FullHD/4K kumakanema akanema ndi intaneti. Kodi zimenezi zimatheka bwanji? Tsopano tiyeni tione mwachidule njira zazikulu.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Kumasuliraku kudapangidwa mothandizidwa ndi EDISON Software.

Tili pachibwenzi kuphatikiza machitidwe owonera makanemandipo Tikupanga microtomograph.

Codec vs Container

Cholakwika chofala omwe angoyamba kumene kupanga ndikusokoneza makanema amakanema a digito ndi chidebe chamavidiyo a digito. Chidebe ndi mtundu winawake. Chovala chokhala ndi kanema (ndipo mwina audio) metadata. Kanema woponderezedwa atha kuganiziridwa ngati chidebe cholipira.

Childs, kutambasuka kwa kanema wapamwamba limasonyeza mtundu wake chidebe. Mwachitsanzo, file video.mp4 mwina chidebe MPEG-4 Gawo 14, ndipo fayilo yotchedwa video.mkv ndiyotheka kwambiri matryoshka. Kuti mukhale otsimikiza kwathunthu za mtundu wa codec ndi chidebe, mutha kugwiritsa ntchito FFmpeg kapena MediaInfo.

Zakale za mbiriyakale

Tisanafike Motani?, tiyeni tilowe m'mbiri kuti timvetse bwino ma codec ena akale.

Video codec H.261 adawonekera mu 1990 (mwaukadaulo - mu 1988) ndipo adapangidwa kuti azigwira ntchito pakusinthana kwa data 64 Kbps. Idagwiritsa ntchito kale malingaliro monga mtundu wa subsampling, macroblocks, ndi zina. Kanema wa codec adasindikizidwa mu 1995. H.263, yomwe idachitika mpaka 2001.

Baibulo loyamba linamalizidwa mu 2003 H.264/AVC. Chaka chomwecho, TrueMotion idatulutsa codec yake yaulere yaulere yotchedwa VP3. Google idagula kampaniyo mu 2008, ndikutulutsa VP8 m’chaka chomwecho. Mu Disembala 2012, Google idatulutsidwa VP9, ndipo imathandizidwa pafupifupi ΒΎ ya msika wa osatsegula (kuphatikiza zida zam'manja).

AV1 ndi latsopano ufulu ndi lotseguka gwero kanema codec opangidwa ndi Alliance for Open Media (AOMedia), yomwe imaphatikizapo makampani otchuka kwambiri, monga: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel ndi Cisco. Mtundu woyamba wa codec, 0.1.0, unasindikizidwa pa Epulo 7, 2016.

Kubadwa kwa AV1

Kumayambiriro kwa 2015, Google inali kugwira ntchito VP10Xiph (yomwe ndi ya Mozilla) inali kugwira ntchito Daala, ndipo Cisco adapanga codec yake yaulere yotchedwa Thor.

ndiye MPEG LA woyamba analengeza malire pachaka kwa HEVC (H.265) ndi chindapusa cha 8 kuposa cha H.264, koma posakhalitsa adasinthanso malamulowo:

palibe malire apachaka,
malipiro okhutira (0,5% ya ndalama) ndi
mtengo wagawo ndi pafupifupi nthawi 10 kuposa H.264.

Alliance for Open Media idapangidwa ndi makampani ochokera m'magawo osiyanasiyana: opanga zida (Intel, AMD, ARM, Nvidia, Cisco), opereka zinthu (Google, Netflix, Amazon), opanga osatsegula (Google, Mozilla) ndi ena.

Makampaniwa anali ndi cholinga chimodzi - codec yamavidiyo yopanda malipiro. Kenako zimawonekera AV1 ndi chilolezo chosavuta cha patent. Timothy B. Terryberry anapereka chiwonetsero chodabwitsa chomwe chinakhala chiyambi cha lingaliro lamakono la AV1 ndi chitsanzo chake chopereka chilolezo.

Mudzadabwa kudziwa kuti mutha kusanthula codec ya AV1 kudzera pa msakatuli (omwe ali ndi chidwi atha kupita ku aomanalyzer.org).

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Universal codec

Tiyeni tiwone njira zazikulu zomwe zili pansi pa kanema wapadziko lonse lapansi. Ambiri mwa mfundo zimenezi ndi zothandiza ndipo ntchito masiku codecs monga VP9, AV1 ΠΈ HEVC. Ndikukuchenjezani kuti zambiri mwazinthu zomwe zafotokozedwa zikhala zosavuta. Nthawi zina zitsanzo zenizeni zapadziko lapansi (monga ndi H.264) zidzagwiritsidwa ntchito kuwonetsa ukadaulo.

1st sitepe - kugawa fano

Gawo loyamba ndikugawa chimango m'zigawo zingapo, tigawo ndi kupitirira.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Zachiyani? Pali zifukwa zambiri. Tikamagawanitsa chithunzi, titha kuneneratu molondola mayendedwe oyenda pogwiritsa ntchito tizigawo tating'ono tating'ono tating'ono. Pomwe kwa maziko osasunthika mutha kudzipatula ku magawo akulu.

Ma codecs nthawi zambiri amakonza magawowa kukhala magawo (kapena chunks), macroblocks (kapena midadada yoyika mitengo), ndi magawo angapo. Kukula kwakukulu kwa magawowa kumasiyanasiyana, HEVC imayiyika ku 64x64 pomwe AVC imagwiritsa ntchito 16x16, ndipo magawowo amatha kugawidwa mpaka kukula kwa 4x4.

Kodi mukukumbukira mitundu ya mafelemu kuchokera m'nkhani yomaliza?! Zomwezo zitha kugwiritsidwa ntchito ku midadada, kotero titha kukhala ndi I-chidutswa, B-block, P-macroblock, ndi zina.

Kwa iwo omwe akufuna kuyeserera, yang'anani momwe chithunzicho chimagawidwira m'magawo ndi magawo. Kuti muchite izi, mutha kugwiritsa ntchito zomwe tazitchula kale m'nkhani yapitayi. Intel Video Pro Analyzer (yomwe imalipidwa, koma ndi mtundu waulere woyeserera womwe umangokhala mafelemu 10 oyamba). Ndime zomwe zawunikidwa apa VP9:

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

2 sitepe - kulosera

Tikakhala ndi zigawo, tikhoza kupanga maulosi a nyenyezi kwa iwo. Za Zolosera za INTER ziyenera kusamutsidwa ma vectors oyenda ndi zotsalazo, ndipo pakulosera kwa INTRA zimaperekedwa mayendedwe amtsogolo ndi chotsalira.

3rd sitepe - kusintha

Tikakhala ndi chipika chotsalira (gawo loloseredwa β†’ gawo lenileni), ndizotheka kulisintha m'njira yoti tidziwe ma pixel omwe angatayidwe ndikusunga mtundu wonse. Pali zosintha zina zomwe zimapereka khalidwe lenileni.

Ngakhale pali njira zina, tiyeni tione mwatsatanetsatane. kusintha kwapadera kwa cosine (DCT - kuchokera kusintha kwapadera kwa cosine). Ntchito zazikulu za DCT:

  • Amasintha midadada ya ma pixel kukhala midadada yofanana ndi ma frequency coefficients.
  • Imawonjezera mphamvu kuti ithandizire kuthetsa kusapezeka kwa malo.
  • Amapereka kusinthika.

February 2, 2017 Sintra R.J. (Cintra, RJ) ndi Bayer F.M. (Bayer FM) idasindikiza nkhani yokhudza kusintha kwa DCT ngati kukanikizana kwa zithunzi komwe kumangofunika zowonjezera 14 zokha.

Osadandaula ngati simukumvetsa ubwino wa chinthu chilichonse. Tsopano tiyeni tigwiritse ntchito zitsanzo zenizeni kuti tiwone phindu lawo lenileni.

Tiyeni titenge mapikiselo a 8x8 awa:

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Chida ichi chimaperekedwa ku chithunzi chotsatira cha 8 ndi 8 pixel:

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Ikani DCT pamapixels awa ndikupeza 8x8 block of coefficients:

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Ndipo ngati tipereka ma coefficients awa, tipeza chithunzi chotsatirachi:

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Monga mukuwonera, sizikuwoneka ngati chithunzi choyambirira. Mutha kuwona kuti coefficient yoyamba ndi yosiyana kwambiri ndi ena onse. Coefficient yoyamba iyi imadziwika kuti DC coefficient, yomwe imayimira zitsanzo zonse zomwe zili mugulu lolowera, ngati avareji.

Chida ichi cha coefficients chili ndi chinthu chosangalatsa: chimalekanitsa zigawo zamtundu wapamwamba kuchokera ku zotsika kwambiri.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Pachithunzithunzi, mphamvu zambiri zimayikidwa pazigawo zotsika, kotero ngati mutasintha chithunzicho kukhala zigawo zake zafupipafupi ndikutaya ma coefficients apamwamba, mukhoza kuchepetsa kuchuluka kwa deta yofunikira kuti mufotokoze chithunzicho popanda kupereka chithunzithunzi chapamwamba kwambiri.

Mafupipafupi amatanthauza momwe chizindikiro chimasinthira mwachangu.

Tiyeni tiyese kugwiritsa ntchito chidziwitso chomwe tidapeza poyesa potembenuza chithunzi choyambirira kukhala pafupipafupi (block of coefficients) pogwiritsa ntchito DCT ndiyeno kutaya gawo la ma coefficients ofunikira kwambiri.

Choyamba timachitembenuzira ku frequency domain.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Kenako, timataya gawo (67%) la ma coefficients, makamaka gawo lakumanja lakumanzere.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Pomaliza, timapanganso chithunzicho kuchokera pagulu lotayidwa la coefficients (kumbukirani, liyenera kukhala losasinthika) ndikufanizira ndi choyambirira.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Tikuwona kuti ikufanana ndi chithunzi choyambirira, koma pali zosiyana zambiri ndi zoyambirira. Tidataya 67,1875% ndipo tidapezabe china chofanana ndi choyambirira. Zinali zotheka kutaya moganizira kwambiri ma coefficients kuti mupeze chithunzi chamtundu wabwinoko, koma uwu ndi mutu wotsatira.

Coefficient iliyonse imapangidwa pogwiritsa ntchito ma pixel onse

Chofunika: chigawo chilichonse sichimajambulidwa mwachindunji ku pixel imodzi, koma ndi kuchuluka kwa ma pixel onse. Chithunzi chodabwitsachi chikuwonetsa momwe ma coefficients oyamba ndi achiwiri amawerengedwera pogwiritsa ntchito miyeso yosiyana ndi index iliyonse.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Mutha kuyesanso kuwona DCT poyang'ana mawonekedwe osavuta azithunzi potengera. Mwachitsanzo, nachi chizindikiro A chopangidwa pogwiritsa ntchito kokwana koyezera:

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

4 sitepe - quantization

Tikataya ma coefficients pa sitepe yapitayi, pa sitepe yotsiriza (kusintha) timapanga mawonekedwe apadera a quantization. Panthawi imeneyi ndizovomerezeka kutaya chidziwitso. Kapena, mophweka, tidzawerengera ma coefficients kuti tikwaniritse kuponderezana.

Kodi mungawerenge bwanji chipika cha coefficients? Imodzi mwa njira zosavuta ndi quantization yunifolomu, pamene titenga chipika, tigawane ndi mtengo umodzi (ndi 10) ndi kuzungulira zotsatira.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Kodi tingathe kusintha chipika cha ma coefficients awa? Inde, titha, kuchulukitsa ndi mtengo womwewo womwe tidagawa nawo.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Njirayi si yabwino chifukwa sichiganizira kufunika kwa coefficient iliyonse. Mmodzi angagwiritse ntchito matrix a quantizers m'malo mwa mtengo umodzi, ndipo matrix awa angagwiritse ntchito katundu wa DCT powerengera ambiri omwe ali pansi kumanja ndi ochepa kumtunda kumanzere.

Khwerero 5 - entropy coding

Titawerengera zambiri (zotchinga zithunzi, zidutswa, mafelemu), titha kuzikanikiza mopanda malire. Pali zambiri algorithmic njira compress deta. Tiyang'ana mwachangu ena mwa iwo, kuti mumvetsetse mwakuya mutha kuwerenga buku la Kumvetsetsa Kupsinjika: Kuponderezedwa Kwa Data kwa Opanga Amakono ("Kumvetsetsa Kupsinjika: Kuponderezedwa Kwa Data Kwa Madivelopa Amakono").

Kuyika makanema pogwiritsa ntchito VLC

Tiyerekeze kuti tili ndi otchulidwa angapo: a, e, r ΠΈ t. Kuthekera (kuyambira 0 mpaka 1) kwa kuchuluka kwa mawonekedwe amtundu uliwonse kumawonetsedwa patsamba lino.

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

Titha kugawira manambala apadera apadera (makamaka ang'onoang'ono) kwa omwe akuyembekezeka kwambiri, ndi ma code akulu kwa omwe sangachitike.

a e r t
Mwina 0,3 0,3 0,2 0,2
Binary kodi 0 10 110 1110

Timakanikiza mtsinjewo, poganiza kuti titha kugwiritsa ntchito ma bits 8 pamunthu aliyense. Popanda kukakamiza, ma bits 24 amafunikira pamunthu aliyense. Mukasintha munthu aliyense ndi code yake, mumapeza ndalama!

Gawo loyamba ndikulemba zilembo e, yomwe ikufanana ndi 10, ndipo chilembo chachiwiri ndi a, yomwe yawonjezeredwa (osati mwa njira ya masamu): [10][0], ndipo potsiriza munthu wachitatu t, zomwe zimapangitsa kuti bitstream yathu yopanikizidwa yomaliza ikhale yofanana ndi [10][0][1110] kapena 1001110, zomwe zimangofunika 7 bits (malo ocheperako nthawi 3,4 kuposa choyambirira).

Chonde dziwani kuti khodi iliyonse iyenera kukhala ndi code yapadera yokhala ndi mawu oyamba. Huffman algorithm zikuthandizani kupeza manambala awa. Ngakhale njira iyi ilibe zolakwika zake, pali ma codec amakanema omwe amaperekabe njira ya algorithmic yophatikizira.

Onse encoder ndi decoder ayenera kukhala ndi mwayi wofika patebulo lazizindikiro ndi ma code awo a binary. Choncho, m'pofunikanso kutumiza tebulo monga zolowera.

Kulemba masamu

Tiyerekeze kuti tili ndi otchulidwa angapo: a, e, r, s ΠΈ t, ndipo kuthekera kwawo kwafotokozedwa mu tebulo ili.

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

Pogwiritsa ntchito tebulo ili, tipanga mizere yokhala ndi zilembo zonse zomwe zingatheke, zosankhidwa ndi nambala yayikulu kwambiri.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Tsopano tiyeni tisinthire mndandanda wa zilembo zitatu: kudya.

Choyamba sankhani munthu woyamba e, yomwe ili pamtunda kuchokera ku 0,3 mpaka 0,6 (osaphatikizapo). Timatenga subrange iyi ndikuyigawanso mofanana ndi kale, koma pamtundu watsopanowu.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Tiyeni tipitilize kukod stream yathu kudya. Tsopano tengani khalidwe lachiwiri a, yomwe ili m'gulu latsopano kuchokera ku 0,3 mpaka 0,39, ndiyeno tengani khalidwe lathu lomaliza. t ndikubwerezanso zomwezo, timapeza gawo lomaliza lochokera ku 0,354 mpaka 0,372.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Timangofunika kusankha nambala mugawo lomaliza kuchokera ku 0,354 mpaka 0,372. Tiyeni tisankhe 0,36 (koma mutha kusankha nambala ina iliyonse m'chigawochi). Ndi nambala iyi yokha yomwe titha kubwezeretsanso mtsinje wathu woyambirira. Zili ngati tikujambula mzere m'mizere kuti titseke mtsinje wathu.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

The reverse operation (ndiko kuti, decoding) ndizosavuta: ndi nambala yathu 0,36 ndi mtundu wathu woyamba, titha kuyendetsa njira yomweyo. Koma tsopano, pogwiritsa ntchito nambala iyi, timazindikira mtsinje womwe wasungidwa pogwiritsa ntchito nambalayi.

Ndi mtundu woyamba, tikuwona kuti nambala yathu imagwirizana ndi kagawo, chifukwa chake uyu ndiye munthu wathu woyamba. Tsopano timagawanitsanso gawo laling'onoli potsatira njira yomweyi monga kale. Apa mutha kuwona kuti 0,36 ikufanana ndi chizindikiro a, ndipo titabwereza ndondomekoyi tinafika pa khalidwe lomaliza t (kupanga mtsinje wathu wapachiyambi kudya).

Onse encoder ndi decoder ayenera kukhala ndi tebulo la kuthekera kwachizindikiro, kotero ndikofunikira kutumizanso muzolowera.

Zokongola kwambiri, sichoncho? Amene anabweretsa yankho limeneli anali wanzeru kwambiri. Ma codec ena amakanema amagwiritsa ntchito njirayi (kapena amangopereka ngati njira).

Lingaliro ndi kupondaponda mopanda malire mtsinje wa quantized bit. Zachidziwikire kuti nkhaniyi ikusowa zambiri, zifukwa, kusinthanitsa, ndi zina. Koma ngati ndinu wopanga mapulogalamu, muyenera kudziwa zambiri. Ma codec atsopano amayesa kugwiritsa ntchito ma entropy encoding aligorivimu monga ZINA.

Gawo 6 - bitstream mtundu

Pambuyo pochita zonsezi, chotsalira ndikutsegula mafelemu oponderezedwa malinga ndi zomwe zachitika. Decoder iyenera kudziwitsidwa bwino za zisankho zomwe wosindikizayo wapanga. Decoder iyenera kuperekedwa ndi zidziwitso zonse zofunika: kuya pang'ono, malo amtundu, kusanja, zidziwitso zolosera (ma vector oyenda, kuneneratu kwa INTER), mbiri, mulingo, kuchuluka kwa chimango, mtundu wa chimango, nambala yazithunzi ndi zina zambiri.

Tiyang'ana mwachangu pa bitstream H.264. Gawo lathu loyamba ndikupanga pang'ono H.264 bitstream (FFmpeg mwachisawawa imawonjezera zosankha zonse za encoding monga SEI NAL - tipeza zomwe zili patsogolo pang'ono). Titha kuchita izi pogwiritsa ntchito chosungira chathu komanso FFmpeg.

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

Lamulo ili lipanga bitstream yaiwisi H.264 ndi chimango chimodzi, 64Γ—64 kusamvana, ndi danga mtundu YUV420. Pankhaniyi, chithunzi chotsatirachi chimagwiritsidwa ntchito ngati chimango.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

H.264 pang'ono

Standard sitiroko (H.264) imatsimikizira kuti chidziwitso chidzatumizidwa mu macroframes (m'lingaliro la intaneti), lotchedwa ndi (uwu ndi mulingo wa network abstraction). Cholinga chachikulu cha NAL ndikupereka mavidiyo "osavuta pa intaneti". Muyezo uwu uyenera kugwira ntchito pa ma TV (otengera mitsinje), intaneti (yotengera paketi).

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Pali cholembera cholumikizira kuti chifotokoze malire azinthu za NAL. Chizindikiro chilichonse cholumikizira chimakhala ndi mtengo 0x00 0x00 0x01, kupatula woyamba, womwe ndi wofanana ndi 0x00 0x00 0x00 0x01. Ngati tiyambitsa hexdump kwa H.264 bitstream wopangidwa, timazindikira zosachepera zitatu za NAL pamayambiriro a fayilo.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Monga tafotokozera, wojambulayo sayenera kudziwa zazithunzi zokha, komanso tsatanetsatane wa kanema, chimango, mitundu, magawo omwe amagwiritsidwa ntchito, ndi zina zambiri. Biti yoyamba ya NAL iliyonse imatanthauzira gulu lake ndi mtundu wake.

Chizindikiritso cha mtundu wa NAL mafotokozedwe
0 Mtundu wosadziwika
1 Chidutswa chazithunzi chojambulidwa popanda IDR
2 Gawo la data lagawo la coded A
3 Gawo la data lagawo la coded B
4 Gawo la data lagawo la coded C
5 Chidutswa cha IDR chosungidwa cha chithunzi cha IDR
6 Zambiri pazowonjezera za SEI
7 SPS Sequence Parameter Set
8 Seti ya magawo azithunzi a PPS
9 Pezani cholekanitsa
10 Mapeto a ndondomeko
11 Mapeto a ulusi
... ...

Nthawi zambiri NAL yoyamba ya bitstream ndi SPS. Mtundu uwu wa NAL uli ndi udindo wodziwitsa zamitundu yosiyanasiyana ya ma encoding monga mbiri, mulingo, kusamvana, ndi zina.

Ngati tingalumphe chikhomo choyamba cholunzanitsa, titha kuzindikira baiti yoyamba kuti tidziwe mtundu wa NAL woyamba.

Mwachitsanzo, byte yoyamba pambuyo pa chizindikiro cholumikizira ndi 01100111, pomwe gawo loyamba (0) ali m'munda forbidden_zero_bit. 2 pang'ono pang'ono (11) limatiuza za munda nal_ref_idc, zomwe zimasonyeza ngati NAL iyi ndi malo owonetsera kapena ayi. Ndipo ma bits 5 otsala (00111) limatiuza za munda nal_unit_type, apa ndiye SPS block (7) NAL.

Second byte (binary=01100100, hex=0x64, Dis=100) mu SPS NAL ndiye gawo mbiri_idc, zomwe zikuwonetsa mbiri yomwe encoder idagwiritsa ntchito. Pachifukwa ichi, chiwerengero chapamwamba chochepa chinagwiritsidwa ntchito (ie, mawonekedwe apamwamba opanda chithandizo cha bidirectional B-segment).

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Ngati muyang'ana pa bitstream specifications H.264 kwa SPS NAL, tipeza zofunikira zambiri za dzina la parameter, gulu ndi kufotokozera. Mwachitsanzo, tiyeni tione minda pic_width_in_mbs_minus_1 ΠΈ pic_height_mu_map_units_minus_1.

Dzina chizindikiro gulu mafotokozedwe
pic_width_in_mbs_minus_1 0 uwu (v)
pic_height_mu_map_units_minus_1 0 uwu (v)

Ngati tichita masamu ena ndi mfundo za magawowa, tidzapeza chisankho. Mmodzi akhoza kuyimira 1920 x 1080 pogwiritsa ntchito pic_width_in_mbs_minus_1 ndi mtengo wa 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Apanso, kuti tisunge malo, m'malo molemba 1920, tidachita ndi 119.

Ngati tipitiliza kuyang'ana kanema wathu wopangidwa mu mawonekedwe a binary (mwachitsanzo: xxd -b -c 11 v/minimal_yuv420.h264), ndiye mutha kupita ku NAL yomaliza, yomwe ndi chimango chokha.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Apa tikuwona zoyambira zake 6 zoyambira: 01100101 10001000 10000100 00000000 00100001 11111111. Popeza byte yoyamba imadziwika kuti ikuwonetsa mtundu wa NAL, pamenepa (00101) ndi chidutswa cha IDR (5), ndiyeno mutha kuchifufuzanso:

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Pogwiritsa ntchito chidziwitso chatsatanetsatane, zitha kuzindikirika mtundu wa chidutswa (mtundu_gawo) ndi nambala ya chimango (chimango_nambala) pakati pa magawo ena ofunikira.

Kuti mupeze zikhalidwe za magawo ena (ue(v), me(v), se(v) kapena te(v)), tifunika kumasulira chidutswacho pogwiritsa ntchito decoder yapadera kutengera exponential Golomb kodi. Njirayi ndiyothandiza kwambiri pakusunga ma encoding values, makamaka pakakhala zinthu zambiri zosasinthika.

Makhalidwe mtundu_gawo ΠΈ chimango_nambala a kanemayu ndi 7 (I-chidutswa) ndi 0 (chimango choyamba).

Mtsinje pang'ono ungaganizidwe ngati protocol. Ngati mukufuna kudziwa zambiri za bitstream, muyenera kuyang'ana kutsatanetsatane ITU H.264. Nachi chithunzi chachikulu chomwe chikuwonetsa komwe kuli zithunzi (YUV mu mawonekedwe oponderezedwa).

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Other bitstreams akhoza kufufuzidwa, monga VP9, H.265 (HEVC) kapena ngakhale bitstream yathu yabwino kwambiri AV1. Kodi onse amafanana? Ayi, koma mukamvetsetsa chimodzi, ndizosavuta kumvetsetsa zina zonse.

Mukufuna kuchita? Onani H.264 bitstream

Mutha kupanga kanema wa chimango chimodzi ndikugwiritsa ntchito MediaInfo kuti muwunikire pang'ono H.264. M'malo mwake, palibe chomwe chimakulepheretsani kuyang'ana pa code source yomwe imasanthula pang'ono mtsinje H.264 (sitiroko).

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Kuti mugwiritse ntchito, mutha kugwiritsa ntchito Intel Video Pro Analyzer (kodi ndinanena kale kuti pulogalamuyo yalipidwa, koma pali mtundu woyeserera waulere wokhala ndi malire a mafelemu 10?).

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

mwachidule

Dziwani kuti ma codec ambiri amakono amagwiritsa ntchito chitsanzo chomwe tangophunzira kumene. Apa, tiyeni tione chipika chithunzi cha kanema codec Thor. Lili ndi njira zonse zomwe tadutsamo. Mfundo yonse ya positiyi ndikukupatsani kumvetsetsa bwino za zatsopano ndi zolemba m'derali.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

M'mbuyomu, zidawerengedwa kuti 139 GB ya disk space idzafunika kusunga fayilo ya kanema yomwe imakhala ola limodzi pa khalidwe la 720p ndi 30 fps. Ngati mugwiritsa ntchito njira zomwe takambirana m'nkhaniyi (inter-frame ndi zolosera zamkati, kusintha, kuchuluka, entropy coding, etc.), ndiye kuti mutha kukwaniritsa (kutengera kuti timathera 0,031 bits pa pixel), kanema wazinthu zambiri. wokhutiritsa, wokhala ndi 367,82 MB yokha, osati 139 GB ya kukumbukira.

Kodi H.265 imakwaniritsa bwanji chiΕ΅erengero chabwino cha kuponderezana kuposa H.264?

Tsopano popeza tadziwa zambiri za momwe ma codec amagwirira ntchito, ndizosavuta kumvetsetsa momwe ma codec atsopano amatha kuperekera malingaliro apamwamba ndi ma bits ochepa.

Tikayerekeza sitiroko ΠΈ HEVC, m'pofunika kukumbukira kuti pafupifupi nthawi zonse kusankha pakati waukulu CPU katundu ndi compression chiΕ΅erengero.

HEVC ili ndi magawo ambiri (ndi gawo) kuposa sitiroko, zolosera zamkati zambiri, kukodzedwa kwa entropy, ndi zina zambiri. Kuwongolera konseku kwapangidwa H.265 wokhoza compress 50% kuposa H.264.

Kodi vidiyo ya codec imagwira ntchito bwanji? Gawo 2: Bwanji, bwanji, bwanji

Gawo loyamba: Zoyambira zogwirira ntchito ndi makanema ndi zithunzi

Source: www.habr.com

Kuwonjezera ndemanga