E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Vaega muamua: Fa'avae o le galue ma ata vitio ma ata

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O le a? O le codec vitiō o se vaega o polokalame/megana e fa'aomi ma/po'o fa'ate'a ai ata fa'atekinolosi.

Mo le a? E ui lava i ni tapulaʻa faʻapitoa i tulaga ole bandwidth ma
ma e tusa ai ma avanoa e teu ai faʻamatalaga, o loʻo manaʻomia e le maketi le faʻateleina o le maualuga o le vitio. E te manatua pe faʻapefea i le pou mulimuli na matou faʻatatauina le manaʻomia maualalo mo 30 faʻavaa i le sekone, 24 bits i pika, faʻatasi ai ma se iugafono o le 480x240? Na matou mauaina le 82,944 Mbit/s e aunoa ma le fa'amalosi. O le fa'amalosi ua na'o le pau lea o le auala e fa'asalalauina ai le HD/FullHD/4K ile televise ma le Initaneti. E faapefea ona ausia lenei mea? Se'i o tatou va'ava'ai fa'apuupuu i metotia autu.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O le faaliliuga na faia ma le lagolago a le EDISON Software.

O loo tatou auai i tu'ufa'atasiga o faiga e mata'ituina ai ata, faapea foi ma o lo'o matou atia'e se microtomograph.

Codec vs Container

O se mea sese masani e faia e newbies o le fenumiai numera numera codec ma numera ata vitio. O se atigipusa o se faatulagaga patino. O se afifi o lo'o i ai le vitio (ma atonu o le leo) metadata. O le vitio fa'apipi'i e mafai ona manatu i ai o se uta pusa.

E masani lava, o le faʻalauteleina o se faila vitio e faʻaalia ai lona ituaiga o atigipusa. Mo se faʻataʻitaʻiga, o le faila video.mp4 atonu o se pusa MPEG-4 Vaega 14, ma o se faila e igoa video.mkv e foliga mai matryoshka. Ina ia mautinoa atoatoa le codec ma le container format, e mafai ona e faʻaogaina FFmpeg poʻo MediaInfo.

Se vaega o talafaasolopito

Ae tatou te lei oo i ai E faapefea?, se'i tatou su'esu'e teisi i le tala fa'asolopito e malamalama atili ai i nisi codec tuai.

Vitio codec H.261 na fa'aalia i le 1990 (fa'apitoa - i le 1988) ma na faia e fa'agaoioia i le fa'aliliuina o fa'amaumauga o le 64 Kbps. Ua uma ona faʻaaogaina manatu e pei o le lanu lanu, macroblocks, ma isi. O le video codec standard na lomia i le 1995 H.263, lea na atiina ae seia oo i le 2001.

O le lomiga muamua na maeʻa i le 2003 H.264 / AVC. O le tausaga lava lena, TrueMotion na faʻaalia ai lana free loss video codec ua taʻua VP3. Google faʻatau le kamupani i le 2008, faʻamalolo VP8 o le tausaga lava lea. Ia Tesema 2012, na tatalaina ai e Google VP9, ma e lagolagoina i le tusa ma le ¾ o le maketi su'esu'e (e aofia ai masini feavea'i).

AV1 o se fou free ma tatala punaoa vitio codec atiina ae e Alliance mo Faasalalauga Tatala (AOMedia), lea e aofia ai kamupani sili ona lauiloa, e pei o: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel ma Cisco. O le lomiga muamua o le codec, 0.1.0, na lomia ia Aperila 7, 2016.

Fanau mai o AV1

I le amataga o le 2015, sa galue ai Google VP10Xiph (lea e umia e Mozilla) sa galue i luga Daala, ma Cisco na faia lana lava codec vitio saoloto e taʻua Thor.

lea MPEG LA muamua fa'asalalau fa'aletausaga tapula'a mo HEVC (H.265) ma se totogifuapauina e 8 taimi sili atu nai lo le H.264, ae e leʻi umi ae toe suia tulafono:

leai se tapulaa faaletausaga,
totogifuapauina mataupu (0,5% o tupe maua) ma
o le tau o le iunite e tusa ma le 10 taimi maualuga atu nai lo le H.264.

Alliance mo Faasalalauga Tatala na faia e kamupani mai fanua eseese: gaosi meafaigaluega (Intel, AMD, ARM, Nvidia, Cisco), mea e tuʻuina atu (Google, Netflix, Amazon), tagata e faia suʻesuʻega (Google, Mozilla) ma isi.

O kamupani sa i ai se sini tutusa - o se codec vitio e leai ni tupu. Ona aliali mai lea AV1 ma se laisene pateni sili atu ona faigofie. Na tuʻuina atu e Timothy B. Terryberry se faʻaaliga mataʻina lea na avea ma amataga o le manatu o le AV1 o loʻo iai nei ma lona faʻataʻitaʻiga laisene.

O le ae ofo i le iloa e mafai ona e suʻesuʻeina le codec AV1 e ala i se masini suʻesuʻe (o i latou e fiafia e mafai ona alu i aomanalyzer.org).

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Codec lautele

Se'i o tatou va'ava'ai i auala autu o lo'o fa'avae ai le codec vitiō lautele. O le tele o nei manatu e aoga ma o loʻo faʻaaogaina i codec faʻaonaponei e pei o VP9, AV1 и HEVC. Ou te lapatai atu ia te oe o le tele o mea o loo faamatalaina o le a faafaigofieina. O nisi taimi o fa'ata'ita'iga moni o le lalolagi (pei o le H.264) o le a fa'aaogaina e fa'aalia ai tekinolosi.

Laasaga muamua - vaelua le ata

O le laasaga muamua o le vaevae lea o le faavaa i ni vaega, vaega laiti ma tua atu.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Mo le a? E tele mafuaaga. A tatou vaeluaina se ata, e mafai ona sili atu ona tatou vaʻai saʻo le vete o le gaioiga e ala i le faʻaogaina o vaega laiti mo vaega laiti. A'o mo se tala fa'amautu e mafai ona fa'atapula'aina oe i vaega tetele.

E masani ona fa'avasega e Codec nei vaega i ni vaega (po'o ni pusi), macroblocks (po'o le coding poloka laau), ma le tele o vaega laiti. O le maualuga maualuga o nei vaeluaga e eseese, HEVC seti i le 64x64 a'o fa'aoga e le AVC le 16x16, ma vaega laiti e mafai ona vaevaeina i le 4x4 lapopoa.

E te manatua ituaiga faʻavaa mai le tusiga mulimuli?! E mafai foʻi ona faʻaoga tutusa i poloka, ina ia mafai ona tatou maua se I-fragment, se B-block, se P-macroblock, ma isi.

Mo i latou e fia faʻataʻitaʻi, vaʻavaʻai pe faʻapefea ona vaevaeina le ata i vaega ma vaega laiti. Ina ia faia lenei mea, e mafai ona e faʻaogaina le mea ua uma ona taʻua i le mataupu muamua. Intel Vitio Pro Iloiloga (le mea e totogi, ae faʻatasi ai ma se faʻataʻitaʻiga faʻataʻitaʻiga e faʻatapulaʻa i le 10 faʻavaa muamua). Vaega o lo'o su'esu'eina iinei VP9:

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Laasaga 2 - va'aiga

O le taimi lava e maua ai a tatou vaega, e mafai ona tatou faia ni valo'aga o fetu mo i latou. Mo INTER vavalo e tatau ona siitia fa'agaioiga vectors ma le vaega o totoe, ma mo le INTRA forecasting e auina atu faasinoga o valo'aga ma le vaega totoe.

Laasaga 3 - suiga

O le taimi lava e maua ai se poloka totoe (vaega vavalo → vaega moni), e mafai ona suia i se auala tatou te iloa ai pixels e mafai ona lafoaʻi aʻo tausia le tulaga lelei atoa. E iai ni suiga e maua ai le amio tonu.

E ui lava o loʻo i ai isi metotia, seʻi o tatou vaʻavaʻai atili i ai. fesuia'i cosine tu'ufa'atasi (DCT - mai fesuia'i cosine tu'ufa'atasi). Galuega autu a le DCT:

  • Fa'aliliuina poloka o pika i poloka tutusa le lapopo'a o fa'asologa fa'atele.
  • Fa'ato'ato'a le mana e fesoasoani e fa'ate'aina le fa'aogaina o avanoa.
  • E maua ai le fa'afoliga.

Fepuari 2, 2017 Sintra R.J. (Cintra, RJ) ma Bayer F.M. (Bayer FM) lomia se tala e uiga i se suiga e pei o le DCT mo le faʻapipiʻiina o ata e manaʻomia naʻo le 14 faʻaopoopoga.

Aua e te popole pe afai e te le malamalama i aoga o mea taitasi. Ia tatou faʻaaoga faʻataʻitaʻiga faʻapitoa e iloa ai lo latou taua moni.

Tatou ave le poloka 8x8 lea o pika:

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O lenei poloka ua fa'aalia i le ata lea e 8 i le 8 pika:

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Fa'aoga le DCT i le poloka lea o pika ma maua se poloka 8x8 o fa'atatau:

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Ma afai tatou te tuʻuina atu lenei poloka o coefficients, o le a tatou maua le ata lenei:

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

E pei ona e vaʻai, e le pei o le ata muamua. E mafai ona e vaʻaia o le coefficient muamua e matua ese lava mai isi uma. O lenei coefficient muamua e taʻua o le DC coefficient, o loʻo faʻatusalia uma faʻataʻitaʻiga i totonu o le faʻaogaina o mea, se mea e pei o le averesi.

O lenei poloka o coefficients ei ai se mea manaia: e tuʻueseese ai vaega maualuga-televave mai mea maualalo.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

I se ata, o le tele o le malosi o loʻo faʻapipiʻiina i laina maualalo, o lea afai e te faʻaliliuina le ata i ona vaega faʻasolosolo ma lafoaʻi le maualuga o le faʻasologa o taimi, e mafai ona e faʻaititia le aofaʻi o faʻamatalaga e manaʻomia e faʻamatala ai le ata e aunoa ma le ositaulagaina o le tele o ata.

Ole tele ole taimi e faasino ile vave suia ole faailo.

Sei o tatou taumafai e faʻaaoga le malamalama na maua i le suʻega suʻega e ala i le faʻaliliuina o le ata muamua i lona taimi (poloka o coefficients) e faʻaaoga ai le DCT ona lafoai lea o se vaega o mea e sili ona taua.

Muamua matou te fa'aliliuina i le fa'asologa o taimi.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Sosoo ai, matou lafoa'i vaega (67%) o coefficients, aemaise lava le pito i lalo taumatau.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Ma le mea mulimuli, matou te toe faʻaleleia le ata mai lenei poloka poloka o coefficients (manatua, e tatau ona fesuiaʻi) ma faʻatusatusa i le mea muamua.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Ua tatou vaʻaia e pei o le ata muamua, ae e tele eseesega mai le ata muamua. Na matou lafoina i fafo le 67,1875% ae o loʻo maua pea se mea e pei o le mea muamua. Na mafai ona sili atu le mafaufau e lafoaʻi ia coefficients e maua ai se ata e sili atu le lelei, ae o le isi autu lena.

O coefficient ta'itasi e gaosia e fa'aaoga uma pixels

Taua: e le o fa'afanua sa'o ia fa'asologa ta'itasi i le pika e tasi, ae o se aofa'iga mamafa o pika uma. O lenei kalafi ofoofogia o loʻo faʻaalia ai pe faʻafefea ona faʻatatauina le muamua ma le lona lua e faʻaaoga ai le mamafa faʻapitoa i faʻamaumauga taʻitasi.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

E mafai fo'i ona e taumafai e va'ava'ai i le DCT e ala i le va'ava'ai i se fa'avae ata faigofie e fa'atatau i ai. Mo se fa'ata'ita'iga, o le fa'ailoga A lea e fa'aaogaina e fa'aaoga ai le mamafa fa'atatau ta'itasi:

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Laasaga 4 - quantization

A maeʻa ona matou togiina nisi o mea faʻapitoa i le laasaga muamua, i le laasaga mulimuli (suiga) matou te faia se ituaiga faʻapitoa o le quantization. I lenei laʻasaga e talia le leiloa o faʻamatalaga. Pe, sili atu ona faigofie, o le a matou faʻatusatusaina le coefficients e maua ai le faʻamalosi.

E fa'afefea ona e fa'atatauina se poloka o coefficients? O se tasi o auala sili ona faigofie o le faʻavasegaina tutusa, pe a tatou ave se poloka, vaevae i le tasi tau (i le 10) ma faʻataʻamilo le taunuuga.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

E mafai ona tatou toe suia lenei poloka o coefficients? Ioe, tatou te mafaia, faatele i le tau tutusa lea na tatou vaevaeina ai.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O lenei faiga e le o se mea e sili ona lelei ona e le o amanaia le taua o coefficient taitasi. E mafai e se tasi ona fa'aoga se matrix o quantizers nai lo se tau e tasi, ma e mafai e lenei matrix ona fa'aogaina le meatotino DCT e ala i le fa'atusatusaina o le tele o le pito i lalo taumatau ma le la'ititi o le agavale pito i luga.

Laasaga 5 - entropy coding

O le taimi lava e fa'amauina ai fa'amaumauga (poloka ata, vaevaega, fa'avaa), e mafai lava ona tatou fa'amauina e aunoa ma se gau. E tele auala algorithmic e faʻapipiʻi ai faʻamaumauga. O le a matou vaʻavaʻai vave i nisi o latou, mo se malamalama loloto e mafai ona e faitau i le tusi Understanding Compression: Data Compression for Modern Developers ("Malamalama i le Compression: Fa'amauina Fa'amatalaga mo Atina'e Fa'aonaponei").

Vitio fa'ailoga e fa'aaoga VLC

Fa'apea e iai a tatou fa'asologa o mataitusi: a, e, r и t. O le avanoa (mai le 0 i le 1) o le fa'afia ona fa'aalia o uiga ta'itasi i se vaitafe o lo'o tu'uina atu i lenei laulau.

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

E mafai ona tatou tuʻuina atu tulafono laiti faʻapitoa (sili atu nai lo laiti) i mea e sili ona foliga mai, ma tulafono tetele i mea e le masani ai.

a e r t
Avanoa 0,3 0,3 0,2 0,2
Fa'ailoga binary 0 10 110 1110

Matou te faʻapipiʻi le vaitafe, ma faʻapea o le a matou faʻamutaina le faʻaaluina o 8 bits mo tagata taʻitasi. A aunoa ma le fa'amalosi, e mana'omia le 24 bits ile tagata. Afai e te suia uiga taʻitasi i lona code, e te maua se tupe teu!

O le laasaga muamua o le faʻailogaina o le amio e, lea e tutusa ma le 10, ma le uiga lona lua o le a, lea e faʻaopoopoina (e le o se auala matematika): [10][0], ma mulimuli ane le uiga lona tolu t, lea e tutusa ai la tatou bitstream compressed mulimuli i le [10][0][1110] po o 1001110, lea e manaʻomia naʻo le 7 bits (3,4 taimi itiiti le avanoa nai lo le mea muamua).

Faamolemole ia matau o code taitasi e tatau ona avea ma code tulaga ese ma se prefix. Huffman algorithm o le a fesoasoani ia te oe e maua nei numera. E ui lava o lenei metotia e le aunoa ma ona faaletonu, o loʻo i ai codecs vitio o loʻo ofoina atu pea lenei metotia algorithmic mo le faʻamalosi.

O le encoder ma le decoder e tatau ona maua le avanoa i se laulau faʻailoga ma latou code binary. O le mea lea, e tatau foi ona tuʻuina atu se laulau e fai ma faʻaoga.

Fa'ailoga numera

Fa'apea e iai a tatou fa'asologa o mataitusi: a, e, r, s и t, ma o latou avanoa o loʻo tuʻuina atu i lenei laulau.

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

I le fa'aogaina o lenei laulau, o le a matou fausia ai laina o lo'o iai mataitusi uma e mafai, fa'avasega i le numera tele.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Se'i o tatou fa'ailoga se vaitafe e tolu mataitusi: ai.

Filifili muamua le tagata muamua e, lea o loʻo i totonu o le subrange mai le 0,3 i le 0,6 (e le aofia ai). Matou te ave lenei vaega laiti ma toe vaevae i le fua tutusa e pei ona muamua, ae mo lenei vaega fou.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Se'i fa'aauau le fa'avasegaina o la tatou vaitafe ai. Ave nei le uiga lona lua a, lea o loʻo i totonu o le subrange fou mai le 0,3 i le 0,39, ona ave lea o la tatou amio mulimuli t ma toe faia le faiga lava lea e tasi, matou te maua le vaega mulimuli mai le 0,354 i le 0,372.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

E tatau lava ona tatou filifilia se numera i le vaega mulimuli mai le 0,354 i le 0,372. Tatou filifili le 0,36 (ae e mafai ona e filifilia so'o se isi numera i lenei vaega laiti). E na'o le numera lava lea e mafai ai ona toe fa'afo'i lo tatou ulua'i vaitafe. E pei lava o lo o matou tusia se laina i totonu o laina e faʻapipiʻi ai la matou vaitafe.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O le faagaioiga i tua (o lona uiga, fa'avasegaina) e tutusa lava le faigofie: faʻatasi ai ma la tatou numera 0,36 ma la tatou vaega muamua, e mafai ona tatou faʻatautaia le faiga tutusa. Ae o lenei, i le faʻaaogaina o lenei numera, matou te iloa ai le vaitafe ua faʻaogaina e faʻaaoga ai lenei numera.

Faatasi ai ma le vaega muamua, matou te maitauina o la matou numera e fetaui ma le fasi pepa, o le mea lea o la matou amio muamua lea. O lea la ua tatou toe vaevaeina lenei vaega laiti e ala i le mulimuli i le faiga tutusa e pei ona muamua. O iinei e mafai ona e vaʻaia o le 0,36 e fetaui ma le faʻailoga a, ma ina ua uma ona toe faia le faagasologa sa matou taunuu i le tagata mulimuli t (faia a tatou uluai vaitafe faʻailoga ai).

O le encoder ma le decoder e tatau ona i ai se laulau o faʻailoga faʻapitoa, o lea e tatau ai ona tuʻuina atu i totonu o faʻamatalaga faʻapipiʻi.

E fai si aulelei, a ea? Po'o ai lava na sau ma lenei fofo e leaga le atamai. O nisi codecs vitio e faʻaogaina lenei metotia (poʻo le ofoina atu o se filifiliga).

O le manatu o le fa'amama fa'ato'ilaloina o se vaitafe fa'afuainumera. E mautinoa lava o lenei tusiga o loʻo misi le tele o faʻamatalaga, mafuaʻaga, fefaʻatauaʻiga, ma isi. Ae afai o oe o se atinaʻe, e tatau ona e iloa atili. O codecs fou e taumafai e fa'aoga eseese entropy encoding algorithms pei ole ANS.

Laasaga 6 - fa'asologa o le bitstream

A uma ona faia nei mea uma, pau lava le mea o loʻo totoe o le tatalaina lea o faʻamau faʻapipiʻi i le tulaga o laasaga na faia. E tatau ona fa'ailoa manino i le decoder fa'ai'uga na faia e le encoder. O le decoder e tatau ona tuʻuina atu faʻamatalaga talafeagai uma: loloto, avanoa lanu, faʻamatalaga, faʻamatalaga vavalo (vectors, directional INTER prediction), talaaga, tulaga, fua faʻatatau, ituaiga faʻavaa, numera faʻavaa ma sili atu.

O le a tatou tilotilo vave i le bitstream H.264. O la tatou laasaga muamua o le fatuina lea o se laʻititi H.264 bitstream (FFmpeg e le mafai ona faʻaopoopoina filifiliga uma e faʻaogaina e pei ole SEI NAL - o le a tatou iloa po o le a le mea e sili atu). E mafai ona matou faia lenei mea e faʻaaoga ai a matou lava faleoloa ma FFmpeg.

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

O lenei fa'atonuga o le a fa'atupuina ai se bitstream mata H.264 faʻatasi ma le faʻavaa e tasi, 64 × 64 iugafono, ma avanoa lanu YUV420. I lenei tulaga, o le ata o loʻo i lalo e faʻaaogaina e fai ma faʻavaa.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

H.264 bitstream

Tagavai AVC (H.264) e fuafua o le a lafoina faʻamatalaga i macroframes (i le uiga fesoʻotaʻiga), taʻua nal (o le tulaga lea o le fa'aogaina o feso'otaiga). O le sini autu a le NAL o le tu'uina atu lea o se ata vitio "faauo i luga ole laiga". O lenei tulaga e tatau ona galue i luga o TV (faʻavae-faʻasalalau), le Initaneti (faʻavae paʻu).

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O lo'o iai se fa'ailoga fa'amaopoopo e fa'amatala ai tua'oi o elemene NAL. O fa'ailoga sync taitasi o lo'o iai se tau 0x00 0x00 0x01, vagana ai le muamua, lea e tutusa ma 0x00 0x00 0x00 0x01. Afai tatou te tatalaina hexdump mo le gaosiga o le H.264 bitstream, matou te iloa a itiiti ifo ma le tolu mamanu NAL i le amataga o le faila.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

E pei ona taʻua, e tatau ona iloa e le decoder e le gata o faʻamatalaga ata, ae faʻapea foʻi faʻamatalaga o le vitio, faʻavaa, lanu, faʻaoga faʻaoga, ma sili atu. O le paita muamua o NAL taʻitasi e faʻamatalaina lona vaega ma le ituaiga.

Fa'ailoga ituaiga NAL faʻamatalaga
0 Le iloa ituaiga
1 Fa'ailoga ata fa'ailoga e aunoa ma le IDR
2 Vaega fa'amatalaga fasi fa'ailoga A
3 Vaega fa'amatalaga fasi fa'ailoga B
4 Vaega fa'amatalaga fasi fa'ailoga C
5 Fa'ailoga IDR vaega o se ata IDR
6 Fa'amatalaga atili e uiga i le fa'aopoopoga SEI
7 SPS Sequence Parameter Set
8 Seti fa'asologa o ata PPS
9 Avanoa vavaeese
10 Fa'ai'uga o le fa'asologa
11 Fa'ai'uga o filo
... ...

E masani lava o le NAL muamua o sina vaitafe SPS. O lenei ituaiga NAL e nafa ma le faʻailoaina e uiga i fesuiaiga masani faʻasologa e pei o talaaga, tulaga, iugafono, ma isi.

Afai tatou te fa'ase'e le fa'ailoga muamua, e mafai ona tatou fa'avasega le paita muamua e su'e ai po'o fea le ituaiga NAL e muamua.

Mo se faʻataʻitaʻiga, o le paita muamua pe a uma le faʻailoga sync o le 01100111, o fea le mea muamua (0) o lo'o i le fanua forbidden_zero_bit. isi 2 bits (11) ta'u mai ia i tatou le fanua nal_ref_idc, lea e ta'u mai ai pe o le NAL lenei ose fanua fa'asino pe leai. Ma isi 5 bits (00111) ta'u mai ia i tatou le fanua nal_unit_type, i lenei tulaga o le poloka SPS (7) NAL.

Byte lona lua (binary=01100100, Hex=0x64, Tesema=100) i le SPS NAL o le fanua profile_idc, lea e fa'aalia ai le fa'amatalaga na fa'aogaina e le encoder. I le tulaga lea, sa fa'aogaina se fa'ailoga maualuga fa'atapula'a (fa'ata'ita'iga, se fa'ailoga maualuga e aunoa ma se lagolago B-segment bidirectional).

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Afai e te vaʻai i le faʻamatalaga bitstream H.264 mo SPS NAL, o le a tatou mauaina le tele o tau mo le igoa faʻailoga, vaega ma faʻamatalaga. Mo se faʻataʻitaʻiga, seʻi o tatou tilotilo i fanua pic_width_in_mbs_minus_1 и pic_height_in_map_units_minus_1.

Igoa ole parameter katekoli faʻamatalaga
pic_width_in_mbs_minus_1 0 ue(v)
pic_height_in_map_units_minus_1 0 ue(v)

Afai tatou te faia ni gaioiga faʻa-matematika faʻatasi ai ma tulaga taua o nei fanua, o le a tatou maua se iugafono. E mafai e se tasi ona fa'atusalia le 1920 x 1080 fa'aoga pic_width_in_mbs_minus_1 faʻatasi ai ma le tau o le 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Toe fa'apea, ina ia fa'asaoina avanoa, nai lo le fa'ailogaina o le 1920, na matou faia i le 119.

Afai e faʻaauau pea ona siaki a matou vitio na faia i le binary form (mo se faʻataʻitaʻiga: xxd -b -c 11 v/minimal_yuv420.h264), ona mafai lea ona e alu i le NAL mulimuli, o le faavaa lava ia.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O iinei tatou te vaʻai ai i lona 6 byte muamua: 01100101 10001000 10000100 00000000 00100001 11111111. Talu ai o le muamua byte ua iloa e faʻaalia le ituaiga NAL, i lenei tulaga (00101) o se vaega IDR (5), ona mafai lea ona e suʻesuʻeina atili:

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

I le faʻaaogaina o faʻamatalaga faʻamatalaga, o le a mafai ona faʻavasega le ituaiga vaega (slice_type) ma le numera fa'avaa (frame_num) i isi matā'upu taua.

Ina ia maua le tau o nisi fanua (ue(v), me(v), se(v) poʻo te(v)), matou te manaʻomia le faʻavasegaina o le vaega e faʻaaoga ai se decoder faʻapitoa e faʻavae i luga numera fa'atele Golomb. O lenei metotia e sili ona lelei mo le faʻavasegaina o tau fesuiaʻi, aemaise lava pe a tele ni tau faʻaletonu.

Uiga slice_type и frame_num o lenei vitio e 7 (I-fragment) ma le 0 (fa'avaa muamua).

E mafai ona fa'apea o se fa'ata'ita'iga o se faiga. Afai e te fia iloa atili e uiga i le bitstream, e tatau ona e vaʻai i le faʻamatalaga ITU H.264. O se ata macro lea o lo'o fa'aalia ai le mea o iai fa'amaumauga o ata (YUV i le faiga fa'apipi'i).

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

O isi bitstreams e mafai ona suʻesuʻeina, pei o VP9, H.265 (HEVC) po'o la tatou bitstream fou fou AV1. Pe tutusa uma i latou? Leai, ae o le taimi lava e te malamalama ai ia le itiiti ifo ma le tasi, e sili atu le faigofie ona malamalama i le isi.

E te fia faataitai? Saili le H.264 bitstream

E mafai ona e fatuina se ata vitio se tasi ma faʻaaoga MediaInfo e suʻesuʻe ai le bitstream H.264. O le mea moni, e leai se mea e taofia ai oe mai le va'ava'ai i le source code e su'esu'e ai le bit stream H.264 (AVC).

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Mo le faʻataʻitaʻiga, e mafai ona e faʻaogaina le Intel Video Pro Analyzer (ua uma ona ou fai atu o loʻo totogi le polokalame, ae o loʻo i ai se faʻataʻitaʻiga faʻataʻitaʻiga e leai se totogi ma se tapulaa o 10 faʻavaa?).

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

lagona

Manatua o le tele o codecs faʻaonaponei o loʻo faʻaogaina le faʻataʻitaʻiga tutusa na matou suʻesuʻeina. Lenei, se'i o tatou va'ai ile ata poloka ole codec video Thor. O loo iai laasaga uma ua tatou uia. O le manatu atoa o lenei pou o le tuʻuina atu ia te oe se malamalama sili atu i mea fou ma faʻamaumauga i lenei vaega.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

I le taimi muamua, sa fuafuaina e manaʻomia le 139 GB o le disk space e teu ai se faila vitio tumau i le itula e tasi i le 720p quality ma le 30 fps. Afai e te faʻaogaina metotia o loʻo talanoaina i lenei tusiga (i totonu-faʻavaʻa ma vaʻaiga i totonu, suiga, quantization, entropy coding, ma isi), ona mafai lea ona e ausia (faʻavae i luga o le mea moni tatou te faʻaaluina 0,031 bits per pixel) vitio o se uiga faʻamalieina. , nofoia na o le 367,82 MB, ae le o le 139 GB o le manatua.

E fa'afefea ona ausia e le H.265 le fua fa'atatau fa'amalosi nai lo le H.264?

I le taimi nei ua tatou iloa atili e uiga i le auala e galue ai codecs, e faigofie ona malamalama i le auala e mafai ai e codecs fou ona tuʻuina atu iʻuga maualuluga i nai vaega laiti.

Afai tatou te faatusatusa AVC и HEVC, e taua le manatuaina o lenei mea e toetoe lava o taimi uma o se filifiliga i le va o le uta sili atu o le CPU ma le fua fa'atatau.

HEVC e tele atu vaega (ma le vaega) filifiliga nai lo AVC, sili atu fa'asinomaga vavalo i totonu, fa'aleleia le fa'ailoga entropy, ma isi mea. O nei faʻaleleia uma ua faia H.265 mafai ona compressing 50% sili atu nai lo H.264.

E fa'afefea ona galue se video codec? Vaega 2. O le a, aisea, pe faapefea

Vaega muamua: Fa'avae o le galue ma ata vitio ma ata

puna: www.habr.com

Faaopoopo i ai se faamatalaga