Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ny ampahany voalohany: Fototry ny fiasana amin'ny horonan-tsary sy sary

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Inona? Ny codec video dia rindrankajy/hardware izay manindry sy/na manalefaka ny horonan-tsary nomerika.

Fa inona? Na eo aza ny fetra sasany na eo amin'ny resaka bandwidth na
ary eo amin'ny sehatry ny fitahirizana angon-drakitra, ny tsena dia mitaky horonantsary avo lenta kokoa. Tadidinao ve hoe tamin'ny lahatsoratra farany no nanao kajy ny kely indrindra ilaina ho an'ny frame 30 isan-tsegondra, 24 bit isaky ny piksel, miaraka amin'ny famahana ny 480x240? Nahazo 82,944 Mbit/s tsy misy famoretana. Amin'izao fotoana izao, ny famatrarana no hany fomba handefasana HD/FullHD/4K amin'ny fahitalavitra sy Internet amin'ny ankapobeny. Ahoana no ahatratrarana izany? Andeha hojerentsika fohifohy ny fomba lehibe.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ny fandikana dia natao tamin'ny fanohanan'ny EDISON Software.

Efa nifamofo izahay fampidirana ny rafitra fanaraha-maso video, ary koa Mamolavola microtomograph izahay.

Codec vs Container

Ny fahadisoana mahazatra ataon'ny newbies dia mampisafotofoto ny codec video digital sy ny container video digital. Ny kaontenera dia endrika iray. Fonosana misy metadata video (ary mety ho feo). Ny horonan-tsary voaporitra dia azo heverina ho toy ny entana entana.

Amin'ny ankapobeny, ny fanitarana ny rakitra video dia manondro ny karazana fitoerany. Ohatra, ny rakitra video.mp4 dia mety ho fitoeran-javatra MPEG-4 Fizarana 14, ary mety misy rakitra antsoina hoe video.mkv matryoshka. Mba ho azo antoka tanteraka ny codec sy ny fitoeran-javatra endrika, dia afaka mampiasa FFmpeg na MediaInfo.

Tantaran'ny tantara

Alohan'ny hahatongavantsika Amin'ny fomba ahoana?, andao hibanjina kely ny tantara mba hahatakarana bebe kokoa ny codec tranainy sasany.

Video codec H.261 niseho tamin'ny 1990 (ara-teknika - tamin'ny 1988) ary noforonina mba hiasa amin'ny hafainganam-pandehan'ny data 64 Kbps. Efa nampiasa hevitra toy ny subsampling loko, macroblocks, sns. Navoaka tamin'ny 1995 ny fenitra codec video H.263, izay nivoatra hatramin'ny 2001.

Vita tamin'ny 2003 ny dikan-teny voalohany H.264/AVC. Tamin'io taona io ihany, TrueMotion dia namoaka ny codec video very maimaim-poana antsoina hoe VP3. Google dia nividy ny orinasa tamin'ny 2008, namoaka VP8 tamin’io taona io ihany. Tamin'ny Desambra 2012, namoaka ny Google VP9, ary tohana eo amin'ny ΒΎ eo amin'ny tsenan'ny navigateur (anisan'izany ny fitaovana finday).

AV1 dia codec horonan-tsarimihetsika malalaka sy malalaka vaovao novolavolain'ny Alliance for Open Media (AOMedia), izay ahitana ny orinasa malaza indrindra, toy ny: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel ary Cisco. Ny dikan-teny voalohany amin'ny codec, 0.1.0, dia navoaka tamin'ny 7 aprily 2016.

Fahaterahan'ny AV1

Tany am-piandohan'ny taona 2015 dia niasa i Google VP10Xiph (izay an'i Mozilla) no niasa Daala, ary nanao ny codec vidΓ©o maimaim-poana azy manokana antsoina ny Cisco Thor.

avy eo MPEG LA nambara voalohany fetra isan-taona ho an'ny HEVC (H.265) ary sarany avo 8 heny noho ny H.264, saingy tsy ela dia nanova ny fitsipika indray izy ireo:

tsy misy fetra isan-taona,
sarany votoaty (0,5% amin'ny vola miditra) ary
ny sandan'ny vondrona dia avo 10 heny noho ny H.264.

Alliance for Open Media dia noforonin'ny orinasa avy amin'ny sehatra samihafa: mpanamboatra fitaovana (Intel, AMD, ARM, Nvidia, Cisco), mpamatsy votoaty (Google, Netflix, Amazon), mpamorona navigateur (Google, Mozilla) sy ny hafa.

Nanana tanjona iraisan'ireo orinasa ireo - codec video tsy misy mpanjaka. Dia miseho AV1 miaraka amin'ny fahazoan-dΓ lana patanty tsotra kokoa. Timothy B. Terryberry dia nanao famelabelarana mahavariana izay lasa niandohan'ny foto-kevitra AV1 ankehitriny sy ny maodelin'ny fahazoan-dΓ lana.

Ho gaga ianao raha mahafantatra fa afaka mandinika ny codec AV1 amin'ny alΓ lan'ny navigateur ianao (izay liana dia afaka mandeha any aomanalyzer.org).

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Universal codec

Andeha hojerentsika ireo fomba fiasa fototra ao ambanin'ny codec video manerantany. Ny ankamaroan'ireo hevitra ireo dia mahasoa ary ampiasaina amin'ny codec maoderina toy ny VP9, AV1 ΠΈ HEVC. Mampitandrina anao aho fa maro amin'ireo zavatra hazavaina no hotsotra. Indraindray ny ohatra tena izy (toy ny amin'ny H.264) dia hampiasaina hanehoana ny teknolojia.

Dingana 1 - manasaraka ny sary

Ny dingana voalohany dia ny fizarana ny frame ho fizarana maromaro, fizarana ary mihoatra.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Hatao inona? Misy antony maro. Rehefa mizara sary iray isika dia afaka maminavina tsara kokoa ny vector mihetsika amin'ny fampiasana fizarana kely ho an'ny ampahany kely mihetsika. Raha ho an'ny fiaviana static dia azonao atao ny mametra ny tenanao amin'ny fizarana lehibe kokoa.

MazΓ na ny codecs dia mandamina ireo fizarana ireo ho fizarana (na sombiny), macroblocks (na bokan-kazo coding), ary fizarana maromaro. Ny habe ambony indrindra amin'ireo fizarazarana ireo dia miovaova, ny HEVC dia mametraka azy ho 64x64 raha ny AVC dia mampiasa 16x16, ary ny subpartitions dia azo zaraina hatramin'ny habe 4x4.

Tadidinao ve ireo karazana frame tamin'ny lahatsoratra farany?! Toy izany koa no azo ampiharina amin'ny blocs, ka afaka manana I-fragment, B-block, P-macroblock, sns.

Ho an'ireo izay te hanao fanazaran-tena dia jereo ny fizarana ny sary ho fizarana sy fizarana. Mba hanaovana izany, dia azonao ampiasaina ilay efa voalaza tao amin'ny lahatsoratra teo aloha. Intel Video Pro Analyzer (ilay misy karamaina, fa misy dikan-teny andrana maimaim-poana izay voafetra ho an'ny sary 10 voalohany). Fizarana nodinihina eto VP9:

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Dingana 2 - vinavina

Rehefa manana fizarana isika dia afaka manao vinavinan'ny astrolojika momba azy ireo. HO AN'NY vinavina INTER tsy maintsy afindra motion vectors ary ny ambiny, ary ho an'ny vinavinan'ny INTRA dia ampitaina izany vinavina lalana ary ny sisa.

Dingana faha-3 - fanovana

Raha vantany vao manana sakana sisa (fizarana vinavina β†’ fizarana tena izy), dia azo atao ny manova izany amin'ny fomba ahafantarantsika hoe piksela azo ariana nefa mitazona ny kalitao ankapobeny. Misy fiovana sasany manome ny fitondran-tena marina.

Na dia misy fomba hafa aza, andeha hojerentsika amin'ny antsipiriany kokoa. fiovan'ny cosine discrete (DCT - avy fiovan'ny cosine discrete). Ny tena fiasan'ny DCT:

  • Manova ny sakana piksel ho sakana mitovy habe amin'ny coefficient matetika.
  • Mampihena ny hery hanampy amin'ny fanafoanana ny fihoaram-pefy.
  • Manome fihemorana.

Febroary 2, 2017 Sintra R.J. (Cintra, RJ) sy Bayer F.M. (Bayer FM) dia namoaka lahatsoratra momba ny fiovan'ny DCT ho an'ny famatrarana sary izay mila fanampim-panampiana 14 ihany.

Aza manahy raha tsy azonao ny tombony amin'ny teboka tsirairay. Andeha isika hampiasa ohatra manokana hahitana ny tena lanjan'izy ireo.

Andeha horaisintsika ity sakana piksela 8x8 ity:

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ity sakana ity dia adika amin'ity sary 8 amin'ny 8 piksel manaraka ity:

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ampiharo ny DCT amin'ity sakana piksel ity ary makΓ  bloc 8x8 amin'ny coefficients:

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ary raha manolotra an'ity bloc of coefficient ity isika dia hahazo ity sary manaraka ity:

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Araka ny hitanao dia tsy mitovy amin'ny sary tany am-boalohany. Hitanao fa ny coefficient voalohany dia tsy mitovy amin'ny hafa rehetra. Ity coefficient voalohany ity dia fantatra amin'ny anarana hoe coefficient DC, izay maneho ny santionany rehetra ao amin'ny array fampidirana, toy ny salan'isa.

Manana fananana mahaliana ity sakana amin'ny coefficient ity: manasaraka ireo singa avo lenta amin'ireo singa ambany.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ao amin'ny sary iray, ny ankamaroan'ny hery dia mifantoka amin'ny frequence ambany kokoa, ka raha mamadika ny sary ho toy ny singa fandrefesana ianao ary manilika ny coefficient matetika kokoa, dia azonao atao ny mampihena ny habetsaky ny angona ilaina hamaritana ny sary nefa tsy manao sorona be loatra ny kalitaon'ny sary.

Ny frequency dia manondro ny fiovan'ny famantarana haingana.

Andao hiezaka hampihatra ny fahalalana azo tamin'ny tranga fitsapana amin'ny alΓ lan'ny famadihana ny sary tany am-boalohany ho amin'ny matetika (bloc of coefficients) amin'ny fampiasana DCT ary avy eo dia manary ny ampahany amin'ny coefficients manan-danja indrindra.

Voalohany dia avadika ho sehatra frequence izany.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Manaraka, arianay ny ampahany (67%) amin'ny coefficients, indrindra ny ampahany ambany havanana.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Farany, amboary indray ny sary avy amin'ity bloc coefficients nesorina ity (tadidio fa tsy maintsy mivadika izy io) ary ampitahao amin'ny tany am-boalohany.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Hitantsika fa mitovy amin'ny sary tany am-boalohany izy io, saingy misy fahasamihafana maro amin'ny voalohany. Nandroaka 67,1875% izahay ary mbola nahazo zavatra mitovy amin'ny tany am-boalohany. Azo natao ny nanary ny coefficient mba hahazoana sary tsara kokoa, saingy lohahevitra manaraka izany.

Ny coefficient tsirairay dia amboarina amin'ny fampiasana pixel rehetra

Zava-dehibe: ny coefficient tsirairay dia tsy voasokajy mivantana amin'ny piksel iray, fa fitambarana lanja ny piksel rehetra. Ity grafika mahavariana ity dia mampiseho ny fomba kajy ny coefficient voalohany sy faharoa amin'ny fampiasana lanja tokana ho an'ny tondro tsirairay.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Azonao atao ihany koa ny manandrana maka sary an-tsaina ny DCT amin'ny fijerena sary tsotsotra mifototra amin'izany. Ohatra, ity ny marika A vokarina amin'ny fampiasana ny lanjan'ny coefficient tsirairay:

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Dingana faha-4 - quantization

Rehefa avy manipy coefficients sasany amin'ny dingana teo aloha isika, amin'ny dingana farany (fanovana) dia manao endrika manokana amin'ny quantization. Amin'ity dingana ity dia azo ekena ny fahaverezan'ny vaovao. Na, raha tsotsotra kokoa, dia hamantatra ny coefficients mba hahatratrarana ny compression.

Ahoana ny fomba hamaritana ny bloc of coefficients? Ny iray amin'ireo fomba tsotra indrindra dia ny quantization fanamiana, rehefa maka sakana iray isika, zarao amin'ny sanda iray (amin'ny 10) ary manodidina ny valiny.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Afaka mamadika an'io bloc de coefficient io ve isika? Eny, azontsika atao, ampitomboina amin'ny sanda mitovy izay nizarantsika.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ity fomba fiasa ity dia tsy ny tsara indrindra satria tsy miraharaha ny maha-zava-dehibe ny coefficient tsirairay. Afaka mampiasa matrix quantizer fa tsy sanda tokana, ary ity matrix ity dia afaka manararaotra ny fananan'ny DCT amin'ny fanisana ny ankamaroan'ny havanana ambany sy ny vitsy an'isa amin'ny ankavia ambony.

Dingana 5 - coding entropy

Raha vantany vao voasokajy ny angon-drakitra (sary blocs, fragments, frames), dia mbola azontsika atao ny manindry azy tsy misy fatiantoka. Misy fomba algorithmika maro hanindriana ny angona. Hojerentsika haingana ny sasany amin'izy ireo, ho an'ny fahatakarana lalindalina kokoa dia azonao atao ny mamaky ny boky Understanding Compression: Data Compression for Modern Developers ("Fahatakarana ny Compression: Fampitandremana Data ho an'ny mpamorona maoderina").

Video encoding mampiasa VLC

Andeha atao hoe manana andian-tsoratra isika: a, e, r ΠΈ t. Ny mety (manomboka amin'ny 0 ka hatramin'ny 1) amin'ny hoe impiry ny endri-tsoratra tsirairay no miseho amin'ny renirano dia aseho amin'ity tabilao ity.

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

Azontsika atao ny manendry kaody mimari-droa tsy manam-paharoa (tsara kokoa ny kely) ho an'ny tena mety, ary ny kaody lehibe kokoa ho an'ireo tsy dia azo inoana loatra.

a e r t
mety 0,3 0,3 0,2 0,2
Code binary 0 10 110 1110

Manindry ny renirano izahay, mihevitra fa handany 8 bit isaky ny toetra tsirairay. Raha tsy misy famoretana dia ilaina ny bitika 24 isaky ny tarehintsoratra. Raha soloinao amin'ny kaodiny ny toetra tsirairay dia mahazo tahiry ianao!

Ny dingana voalohany dia ny fandiovana ny toetra e, izay mitovy amin'ny 10, ary ny toetra faharoa dia a, izay ampiana (tsy amin'ny fomba matematika): [10][0], ary farany ny tarehintsoratra fahatelo t, izay mahatonga ny bitstream voaporitra farany mitovy amin'ny [10][0][1110] na 1001110, izay tsy mila afa-tsy 7 bit (3,4 heny noho ny tany am-boalohany).

Mariho fa ny kaody tsirairay dia tsy maintsy kaody tokana misy tovana. Algorithm Huffman hanampy anao hahita ireo isa ireo. Na dia tsy misy lesoka aza io fomba io, dia misy codec video izay mbola manolotra ity fomba algorithmic ity ho an'ny famatrarana.

Na ny encoder na ny decoder dia tsy maintsy manana fidirana amin'ny latabatra marika miaraka amin'ny kaody binary. Noho izany dia ilaina ihany koa ny mandefa latabatra ho fampidirana.

Coding arithmetika

Andeha atao hoe manana andian-tsoratra isika: a, e, r, s ΠΈ t, ary aseho eto amin'ity tabilao ity ny mety hisian'izy ireo.

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

Amin'ny fampiasana an'ity tabilao ity, dia hanangana faritra misy tarehin-tsoratra rehetra azo atao isika, alahatra amin'ny isa lehibe indrindra.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Andeha isika hanidy andian-tsoratra telo: mihinana.

Fidio aloha ny toetra voalohany e, izay ao amin'ny subrange avy amin'ny 0,3 ka hatramin'ny 0,6 (tsy misy). Raisinay ity subrange ity ary zarainay amin'ny ampahany mitovy amin'ny teo aloha, fa ho an'ity faritra vaovao ity.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Andao hanohizantsika coding ny stream mihinana. Raiso izao ny toetra faharoa a, izay ao amin'ny subrange vaovao manomboka amin'ny 0,3 ka hatramin'ny 0,39, ary alaivo ny toetrantsika farany t ary mamerina indray ny dingana mitovy, mahazo ny zana-tsipika farany amin'ny 0,354 ka hatramin'ny 0,372.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Mila mifidy isa fotsiny isika ao amin'ny faritra ambany farany amin'ny 0,354 ka hatramin'ny 0,372. Andao hisafidy 0,36 (fa azonao atao ny misafidy isa hafa amin'ity zana-tsipika ity). Amin'ny alalan'io isa io ihany no ahafahantsika mamerina amin'ny laoniny ny renirano voalohany. Toy ny hoe manao tsipika ao anatin'ny elanelana isika mba hametahana ny renirano.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ny hetsika mivadika (izany hoe, decoding) dia tsotra ihany: miaraka amin'ny isa 0,36 sy ny laharana voalohany, dia afaka manao dingana mitovy isika. Fa ankehitriny, amin'ny fampiasana an'io isa io, dia fantatsika ny renirano voakodia mampiasa io isa io.

Miaraka amin'ny laharana voalohany, dia tsikaritray fa ny isantsika dia mifanaraka amin'ny silaka, noho izany dia io no toetrantsika voalohany. Ankehitriny dia mizara an'io zana-tany io indray isika amin'ny fanarahana ny dingana mitovy amin'ny teo aloha. Eto ianao dia afaka mahita fa ny 0,36 dia mifanitsy amin'ny marika a, ary rehefa avy namerina ny dingana dia tonga teo amin'ny toetra farany t (mamorona ny renirano misy kaody tany am-boalohany mihinana).

Na ny encoder na ny decoder dia tsy maintsy manana tabilao misy ny mety ho marika, noho izany dia ilaina ny mandefa azy ao amin'ny angona fidirana ihany koa.

Tena kanto, sa tsy izany? Na iza na iza namorona ity vahaolana ity dia tena hendry. Ny codec video sasany dia mampiasa ity teknika ity (na farafaharatsiny manolotra azy ho safidy).

Ny hevitra dia ny manindry tsy misy fatiantoka ny stream bit isa. Azo antoka fa ity lahatsoratra ity dia tsy ampy ny antsipiriany, ny antony, ny varotra, sns. Fa raha mpamorona ianao dia tokony hahafantatra bebe kokoa. Ny codecs vaovao dia manandrana mampiasa algorithm encoding entropy samihafa toy ny Ans.

Dingana 6 - endrika bitstream

Aorian'ny fanaovana izany rehetra izany, ny hany sisa tavela dia ny mamongotra ireo frame voaporitra ao anatin'ny tontolon'ny dingana natao. Ny decoder dia tsy maintsy ampahafantarina mazava tsara ny fanapahan-kevitra noraisin'ny encoder. Ny decoder dia tsy maintsy omena ny fampahalalana ilaina rehetra: ny halalin'ny bit, ny habaka loko, ny famahana, ny fampahalalana momba ny faminaniana (vector motion, ny faminaniana INTER directional), ny mombamomba, ny haavony, ny tahan'ny frame, ny karazana frame, ny laharan'ny frame ary ny maro hafa.

Hojerentsika haingana ny bitstream H.264. Ny dingana voalohany ataontsika dia ny mamorona bitstream H.264 kely indrindra (FFmpeg amin'ny alΓ lan'ny default dia manampy ny safidy encoding rehetra toy ny SEI NAL - ho hitantsika hoe inona izany bebe kokoa). Azontsika atao izany amin'ny alΓ lan'ny tahiry sy FFmpeg.

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

Ity baiko ity dia hiteraka bitstream manta H.264 miaraka amin'ny frame iray, 64Γ—64 resolution, miaraka amin'ny habaka loko YUV420. Amin'ity tranga ity, ity sary manaraka ity dia ampiasaina ho frame.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

H.264 bitstream

Malagasy AVC (H.264) dia mamaritra fa ny fampahalalana dia halefa amin'ny macroframes (amin'ny dikan'ny tambajotra), antsoina nal (ambaratonga abstraction ny tambazotra ity). Ny tena tanjon'ny NAL dia ny hanome fampisehoana horonantsary "mahazatra amin'ny Internet". Ity fenitra ity dia tokony hiasa amin'ny fahitalavitra (mifototra amin'ny stream), Internet (miorina amin'ny fonosana).

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Misy marika fampifanarahana hamaritana ny sisin'ny singa NAL. Misy sandany ny token'ny sync tsirairay 0x00 0x00 0x01, afa-tsy ny voalohany indrindra, izay mitovy amin'ny 0x00 0x00 0x00 0x01. Raha manomboka isika hexdump ho an'ny bitstream H.264 novokarina, dia mahita lamina NAL telo farafahakeliny isika eo am-piandohan'ny rakitra.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Araka ny voalaza, ny decoder dia tsy maintsy mahafantatra ny angon-drakitra sary ihany, fa ny antsipirian'ny horonan-tsary, frame, loko, parameter ampiasaina, sy ny maro hafa. Ny byte voalohany amin'ny NAL tsirairay dia mamaritra ny sokajy sy ny karazany.

NAL karazana identifier famaritana
0 Karazana tsy fantatra
1 Sombiny sary voakodia tsy misy IDR
2 Fizarana angon-drakitra tapaka kaody A
3 Fizarana angon-drakitra tapaka kaody B
4 Fizarana angon-drakitra tapaka kaody C
5 Sombiny IDR amin'ny sary IDR iray
6 Fampahalalana bebe kokoa momba ny fanitarana SEI
7 SPS Sequence Parameter Set
8 Fametrahana mari-pamantarana sary PPS
9 Separator fidirana
10 Faran'ny filaharana
11 Faran'ny kofehy
... ...

Matetika ny NAL voalohany amin'ny bitstream dia SPS. Ity karazana NAL ity dia tompon'andraikitra amin'ny fampahafantarana momba ireo fari-pandrafetana mahazatra toy ny mombamomba, ny haavony, ny fanapahan-kevitra, sns.

Raha mandingana ny marika sync voalohany isika dia afaka mamadika ny byte voalohany hahitana hoe iza no karazana NAL voalohany.

Ohatra, ny byte voalohany aorian'ny sync marker dia 01100111, izay ny bit voalohany (0) dia eo amin'ny saha forbidden_zero_bit. 2 bits manaraka (11) milaza amintsika ny saha nal_ref_idc, izay manondro na sehatra reference na tsia ity NAL ity. Ary ny 5 bit sisa (00111) milaza amintsika ny saha nal_unit_type, amin'ity tranga ity dia ny sakana SPS (7) NAL.

Byte faharoa (mimari-droa=01100100, hex=0x64, Dec=100) ao amin'ny SPS NAL no sehatra profile_idc, izay mampiseho ny mombamomba izay nampiasain'ny encoder. Amin'ity tranga ity dia nampiasaina ny mombamomba avo voafetra (izany hoe, mombamomba avo tsy misy fanohanana fizarana B roa).

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Raha mijery ny famaritana bitstream ianao H.264 ho an'ny SPS NAL dia hahita soatoavina maro ho an'ny anarana parameter, sokajy ary famaritana. Ohatra, andeha hojerentsika ny saha pic_width_in_mbs_minus_1 ΠΈ pic_height_in_map_units_minus_1.

Anaran'ny parameter Sokajy famaritana
pic_width_in_mbs_minus_1 0 ue (v)
pic_height_in_map_units_minus_1 0 ue (v)

Raha manao asa matematika miaraka amin'ny soatoavin'ireo sehatra ireo isika dia hahazo vahaolana. Ny iray dia afaka maneho 1920 x 1080 mampiasa pic_width_in_mbs_minus_1 miaraka amin'ny sandan'ny 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Indray, mba hitsitsiana toerana, raha tokony ho 1920, dia nanao izany tamin'ny 119.

Raha manohy mijery ny lahatsary noforoninay amin'ny endrika binary izahay (ohatra: xxd -b -c 11 v/minimal_yuv420.h264), dia afaka mandeha any amin'ny NAL farany ianao, izay ny frame mihitsy.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Eto isika dia mahita ny sandany 6 byte voalohany: 01100101 10001000 10000100 00000000 00100001 11111111. Satria ny byte voalohany dia fantatra fa manondro ny karazana NAL, amin'ity tranga ity (00101) dia sombiny IDR (5), ary azonao atao ny mijery azy bebe kokoa:

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Amin'ny fampiasana ny fampahalalana manokana dia azo atao ny mamadika ny karazana sombintsombiny (slice_type) sy ny laharan'ny frame (frame_num) ankoatry ny sehatra manan-danja hafa.

Mba hahazoana ny sandan'ny saha sasany (ue(v), me(v), se(v) na te(v)), mila mamadika ny sombintsombiny isika amin'ny fampiasana decoder manokana mifototra amin'ny kaody Golomb exponential. Ity fomba ity dia tena mahomby amin'ny fandrakofana ny soatoavina miovaova, indrindra rehefa misy sanda mahazatra maro.

Ny soatoavina slice_type ΠΈ frame_num amin'ity lahatsary ity dia 7 (I-fragment) ary 0 (fizarana voalohany).

Ny bitstream dia azo heverina ho protocol. Raha te-hahafantatra bebe kokoa momba ny bitstream ianao dia tokony hijery ny famaritana ITU H.264. Ity misy diagrama macro mampiseho ny toerana misy ny angona sary (YUV amin'ny endrika compressed).

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ny bitstreams hafa dia azo dinihina, toy ny VP9, H.265 (HEVC) na ny bitstream vaovao tsara indrindra AV1. Mitovy daholo ve izy ireo? Tsia, fa rehefa azonao ny iray farafahakeliny, dia mora kokoa ny mahazo ny ambiny.

Te hanao fanazaran-tena? Jereo ny H.264 bitstream

Afaka mamorona horonan-tsary tokana ianao ary mampiasa MediaInfo handinihana ny bitstream H.264. Raha ny marina, tsy misy na inona na inona misakana anao tsy hijery na dia ny kaody loharano mamakafaka ny stream bit H.264 (AVC).

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ho an'ny fanazaran-tena dia azonao atao ny mampiasa Intel Video Pro Analyzer (efa nilaza ve aho fa voaloa ny programa, fa misy dikan-teny maimaim-poana miaraka amin'ny fetra 10 frames?).

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

topy maso

Mariho fa maro amin'ireo codec maoderina no mampiasa ny modely vao avy nianarantsika. Eto, andeha hojerentsika ny sarin'ny sakana amin'ny codec video Thor. Ahitana ny dingana rehetra nolalovanay ao. Ny teboka iray manontolo amin'ity lahatsoratra ity dia ny hanomezana anao fahatakarana tsara kokoa momba ny fanavaozana sy ny antontan-taratasy amin'ity sehatra ity.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Teo aloha dia noheverina fa 139 GB ny habaka kapila no takiana hitahiry rakitra video maharitra adiny iray amin'ny kalitao 720p sy 30 fps. Raha mampiasa ny fomba noresahina ato amin'ity lahatsoratra ity ianao (faminaniana inter-frame sy anatiny, fanovana, quantization, coding entropy, sns.), dia azonao atao ny manatratra (mifototra amin'ny hoe mandany 0,031 bits isaky ny pixel) horonantsary tena mahafa-po. , 367,82 MB ihany no mibodo fa tsy fahatsiarovana 139 GB.

Ahoana no ahafahan'ny H.265 hahatratra ny tahan'ny famatrarana tsara kokoa noho ny H.264?

Rehefa mahafantatra bebe kokoa momba ny fomba fiasan'ny codec isika, dia mora kokoa ny mahatakatra ny fomba ahafahan'ny codec vaovao kokoa manome fanapahan-kevitra ambony amin'ny bitika kely kokoa.

Raha ampitahaina isika AVC ΠΈ HEVC, Tsara hotadidina fa saika safidy eo amin'ny enta-mavesatra CPU lehibe kokoa sy ny tahan'ny famatrarana izany.

HEVC manana safidy fizarana (sy fizarana) bebe kokoa noho ny AVC, toro-lalana momba ny faminaniany anatiny kokoa, kaody entropy nohatsaraina, sy ny maro hafa. Efa natao avokoa ireo fanatsarana rehetra ireo H.265 afaka manindry 50% mihoatra ny H.264.

Ahoana no fiasan'ny codec video? Fizarana 2. Inona, nahoana, ahoana

Ny ampahany voalohany: Fototry ny fiasana amin'ny horonan-tsary sy sary

Source: www.habr.com

Add a comment