Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Prvi dio: Osnove rada sa video zapisima i slikama

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Šta? Video kodek je dio softvera/hardvera koji komprimira i/ili dekompresuje digitalni video.

Za šta? Uprkos određenim ograničenjima iu pogledu propusnosti i
a u smislu prostora za pohranu podataka, tržište zahtijeva sve kvalitetniji video. Sjećate li se kako smo u prošlom postu izračunali potrebni minimum za 30 frejmova u sekundi, 24 bita po pikselu, rezolucije 480x240? Dobili smo 82,944 Mbit/s bez kompresije. Kompresija je trenutno jedini način za općenito prijenos HD/FullHD/4K na televizijske ekrane i internet. Kako se to postiže? Pogledajmo sada ukratko glavne metode.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Prevod je napravljen uz podršku EDISON softvera.

Vereni smo integraciju sistema video nadzoraI razvijamo mikrotomograf.

Codec vs Container

Česta greška koju prave početnici je brkanje digitalnog video kodeka i digitalnog video kontejnera. Kontejner je određeni format. Omot koji sadrži video (i eventualno audio) metapodatke. Kompresovani video se može smatrati korisnim opterećenjem kontejnera.

Tipično, ekstenzija video datoteke označava njen tip kontejnera. Na primjer, datoteka video.mp4 je vjerovatno kontejner MPEG-4, deo 14, a najvjerovatnije je datoteka pod nazivom video.mkv matrëška. Da biste bili potpuno sigurni u kodek i format kontejnera, možete koristiti FFmpeg ili MediaInfo.

Malo istorije

Prije nego što stignemo Kako?, hajde da zaronimo malo u istoriju da bismo malo bolje razumeli neke starije kodeke.

Video kodek H.261 pojavio se 1990. (tehnički - 1988.) i stvoren je da radi pri brzini prijenosa podataka od 64 Kbps. Već je koristio ideje kao što su poduzorkovanje boja, makroblokovi, itd. Standard video kodeka objavljen je 1995. godine H.263, koji se razvijao do 2001.

Prva verzija je završena 2003 H.264 / AVC. Iste godine, TrueMotion je objavio svoj besplatni video kodek sa gubitkom pod nazivom VP3. Google je kupio kompaniju 2008. godine, izdavši VP8 iste godine. U decembru 2012, Google je objavio VP9, a podržan je na oko ¾ tržišta pretraživača (uključujući mobilne uređaje).

AV1 je novi besplatni video kodek otvorenog koda koji je razvio Alijansa za otvorene medije (AOMedia), koji uključuje najpoznatije kompanije, kao što su: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel i Cisco. Prva verzija kodeka, 0.1.0, objavljena je 7. aprila 2016. godine.

Rođenje AV1

Početkom 2015. Google je radio na tome VP10Xiph (koji je u vlasništvu Mozille) je radio na tome Daala, a Cisco je napravio vlastiti besplatni video kodek pod nazivom thor.

onda MPEG LA prvi najavljeni godišnji limiti za HEVC (H.265) i naknada 8 puta veća nego za H.264, ali su ubrzo ponovo promijenili pravila:

nema godišnjeg ograničenja,
naknada za sadržaj (0,5% prihoda) i
jedinična naknada je oko 10 puta veća od H.264.

Alijansa za otvorene medije kreirale su kompanije iz različitih oblasti: proizvođači opreme (Intel, AMD, ARM, Nvidia, Cisco), provajderi sadržaja (Google, Netflix, Amazon), kreatori pretraživača (Google, Mozilla) i drugi.

Kompanije su imale zajednički cilj - video kodek bez naknade. Zatim se pojavljuje AV1 sa mnogo jednostavnijom patentnom licencom. Timothy B. Terryberry je održao zadivljujuću prezentaciju koja je postala izvorište trenutnog koncepta AV1 i njegovog modela licenciranja.

Iznenadit ćete se kada saznate da AV1 kodek možete analizirati putem pretraživača (zainteresovani mogu posjetiti aomanalyzer.org).

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Univerzalni kodek

Pogledajmo glavne mehanizme koji stoje u osnovi univerzalnog video kodeka. Većina ovih koncepata je korisna i koristi se u modernim kodecima kao što su VP9, AV1 и HEVC. Upozoravam vas da će mnoge od objašnjenih stvari biti pojednostavljene. Ponekad će se primjeri iz stvarnog svijeta (kao kod H.264) koristiti za demonstraciju tehnologije.

1. korak - podjela slike

Prvi korak je podjela okvira na nekoliko dijelova, podsekcija i dalje.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Za što? Postoji mnogo razloga. Kada podijelimo sliku, možemo preciznije predvidjeti vektor kretanja koristeći male dijelove za male pokretne dijelove. Dok se za statičnu pozadinu možete ograničiti na veće dijelove.

Kodeci obično organizuju ove sekcije u sekcije (ili delove), makroblokove (ili blokove stabla kodiranja) i više podsekcija. Maksimalna veličina ovih particija varira, HEVC je postavlja na 64x64 dok AVC koristi 16x16, a podparticije se mogu podijeliti na veličine 4x4.

Sjećate li se tipova okvira iz prošlog članka?! Isto se može primijeniti na blokove, tako da možemo imati I-fragment, B-blok, P-makroblok, itd.

Za one koji žele vježbati, pogledajte kako je slika podijeljena na dijelove i pododjeljke. Da biste to učinili, možete koristiti onaj koji je već spomenut u prethodnom članku. Intel Video Pro Analyzer (onaj koji se plaća, ali sa besplatnom probnom verzijom koja je ograničena na prvih 10 kadrova). Ovdje su analizirani dijelovi VP9:

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

2. korak - predviđanje

Kada imamo sekcije, možemo za njih napraviti astrološke prognoze. Za INTER prognoze mora se prenijeti vektori kretanja i ostatak, a za INTRA predviđanje se prenosi smjer prognoze i ostatak.

3. korak - transformacija

Jednom kada imamo preostali blok (predviđeni odsjek → pravi odsjek), moguće ga je transformirati na takav način da znamo koji pikseli se mogu odbaciti, a da se zadrži ukupni kvalitet. Postoje neke transformacije koje pružaju tačno ponašanje.

Iako postoje i druge metode, pogledajmo ih detaljnije. diskretna kosinusna transformacija (DCT - od diskretna kosinusna transformacija). Glavne funkcije DCT-a:

  • Pretvara blokove piksela u blokove frekvencijskih koeficijenata jednake veličine.
  • Kondenzira snagu kako bi se eliminirala prostorna suvišnost.
  • Omogućava reverzibilnost.

2. februara 2017. Sintra R.J. (Cintra, RJ) i Bayer F.M. (Bayer FM) objavio je članak o DCT transformaciji za kompresiju slike koja zahtijeva samo 14 dodavanja.

Ne brinite ako ne razumijete prednosti svake tačke. Sada koristimo konkretne primjere da vidimo njihovu stvarnu vrijednost.

Uzmimo ovaj blok piksela 8x8:

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Ovaj blok se prikazuje u sljedećoj slici 8 x 8 piksela:

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Primijenite DCT na ovaj blok piksela i dobijete blok koeficijenata 8x8:

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

A ako renderiramo ovaj blok koeficijenata, dobićemo sljedeću sliku:

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Kao što vidite, ne izgleda kao originalna slika. Vidite da se prvi koeficijent jako razlikuje od svih ostalih. Ovaj prvi koeficijent je poznat kao DC koeficijent, koji predstavlja sve uzorke u ulaznom nizu, nešto poput prosjeka.

Ovaj blok koeficijenata ima zanimljivu osobinu: odvaja visokofrekventne komponente od niskofrekventnih.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Na slici je većina snage koncentrisana na nižim frekvencijama, pa ako pretvorite sliku u njene frekvencijske komponente i odbacite koeficijente više frekvencije, možete smanjiti količinu podataka potrebnih za opisivanje slike bez žrtvovanja previše kvaliteta slike.

Frekvencija se odnosi na brzinu promjene signala.

Pokušajmo primijeniti znanje stečeno u testnom slučaju pretvaranjem originalne slike u njenu frekvenciju (blok koeficijenata) pomoću DCT-a i zatim odbacivanjem dijela najmanje važnih koeficijenata.

Prvo ga konvertujemo u frekvencijski domen.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Zatim odbacujemo dio (67%) koeficijenata, uglavnom donji desni dio.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Konačno, rekonstruiramo sliku iz ovog odbačenog bloka koeficijenata (zapamtite, mora biti inverzibilan) i upoređivati ​​je s originalom.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Vidimo da liči na originalnu sliku, ali ima mnogo razlika od originala. Izbacili smo 67,1875% i ipak dobili nešto što liči na original. Bilo je moguće promišljenije odbaciti koeficijente kako bi se dobila još kvalitetnija slika, ali to je sljedeća tema.

Svaki koeficijent se generira korištenjem svih piksela

Važno: svaki koeficijent nije direktno mapiran u jedan piksel, već je ponderisani zbir svih piksela. Ovaj nevjerovatan grafikon pokazuje kako se prvi i drugi koeficijenti izračunavaju korištenjem pondera jedinstvenih za svaki indeks.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Također možete pokušati vizualizirati DCT gledajući jednostavnu formaciju slike na osnovu njega. Na primjer, ovdje je simbol A generiran korištenjem svake težine koeficijenta:

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

4. korak - kvantizacija

Nakon što izbacimo neke koeficijente u prethodnom koraku, u posljednjem koraku (transformacija) izvodimo poseban oblik kvantizacije. U ovoj fazi je prihvatljivo izgubiti informacije. Ili, jednostavnije, kvantiziraćemo koeficijente da bismo postigli kompresiju.

Kako možete kvantizirati blok koeficijenata? Jedna od najjednostavnijih metoda je uniformna kvantizacija, kada uzmemo blok, podijelimo ga s jednom vrijednošću (sa 10) i zaokružimo rezultat.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Možemo li obrnuti ovaj blok koeficijenata? Da, možemo, množenjem sa istom vrijednošću kojom smo podijelili.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Ovaj pristup nije najbolji jer ne uzima u obzir važnost svakog koeficijenta. Mogla bi se koristiti matrica kvantizatora umjesto jedne vrijednosti, a ova matrica bi mogla iskoristiti svojstvo DCT kvantizirajući većinu donjeg desnog i manjina gornjeg lijevog.

Korak 5 - entropijsko kodiranje

Jednom kada kvantiziramo podatke (blokove slike, fragmente, okvire), još uvijek ih možemo komprimirati bez gubitaka. Postoji mnogo algoritamskih načina kompresije podataka. Nakratko ćemo pogledati neke od njih, za dublje razumijevanje možete pročitati knjigu Razumijevanje kompresije: kompresija podataka za moderne programere ("Razumijevanje kompresije: kompresija podataka za moderne programere").

Video kodiranje koristeći VLC

Recimo da imamo niz znakova: a, e, r и t. Vjerovatnoća (u rasponu od 0 do 1) koliko se često svaki znak pojavljuje u toku prikazana je u ovoj tabeli.

a e r t
Vjerovatnoća 0,3 0,3 0,2 0,2

Možemo dodijeliti jedinstvene binarne kodove (po mogućnosti male) najvjerovatnijim, a veće kodove manje vjerovatnim.

a e r t
Vjerovatnoća 0,3 0,3 0,2 0,2
Binarni kod 0 10 110 1110

Komprimujemo tok, pod pretpostavkom da ćemo potrošiti 8 bitova za svaki karakter. Bez kompresije, bilo bi potrebno 24 bita po karakteru. Ako svaki znak zamijenite njegovim kodom, ostvarujete uštede!

Prvi korak je kodiranje karaktera e, što je jednako 10, a drugi znak je a, koji se dodaje (ne na matematički način): [10][0], i na kraju treći znak t, što naš konačni komprimirani bitstream čini jednakim [10][0][1110] ili 1001110, koji zahtijeva samo 7 bita (3,4 puta manje prostora od originala).

Imajte na umu da svaki kod mora biti jedinstven kod s prefiksom. Huffmanov algoritam pomoći će vam da pronađete ove brojeve. Iako ova metoda nije bez nedostataka, postoje video kodeci koji još uvijek nude ovu algoritamsku metodu za kompresiju.

I koder i dekoder moraju imati pristup tablici simbola sa svojim binarnim kodovima. Stoga je potrebno poslati i tabelu kao ulaz.

Aritmetičko kodiranje

Recimo da imamo niz znakova: a, e, r, s и t, a njihova vjerovatnoća je prikazana u ovoj tabeli.

a e r s t
Vjerovatnoća 0,3 0,3 0,15 0,05 0,2

Koristeći ovu tabelu, izgradićemo opsege koji sadrže sve moguće znakove, sortirane po najvećem broju.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Sada kodirajmo tok od tri karaktera: jesti.

Prvo odaberite prvi znak e, koji je u podopseg od 0,3 do 0,6 (ne uključujući). Uzimamo ovaj podopseg i ponovo ga dijelimo u istim omjerima kao i prije, ali za ovaj novi raspon.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Nastavimo s kodiranjem našeg streama jesti. Sada uzmite drugi lik a, koji je u novom podrasponu od 0,3 do 0,39, a zatim uzmite naš posljednji znak t i ponavljajući isti proces ponovo, dobijamo konačni podopseg od 0,354 do 0,372.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Samo trebamo odabrati broj u posljednjem podopsiju od 0,354 do 0,372. Odaberimo 0,36 (ali možete odabrati bilo koji drugi broj u ovom podopsiju). Samo s ovim brojem moći ćemo vratiti naš originalni stream. Kao da crtamo liniju unutar raspona da kodiramo naš tok.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Obrnuta operacija (tj. dekodiranje) je jednako jednostavan: sa našim brojem 0,36 i našim početnim rasponom, možemo pokrenuti isti proces. Ali sada, koristeći ovaj broj, identificiramo tok kodiran ovim brojem.

Kod prvog raspona primjećujemo da naš broj odgovara slice-u, stoga je ovo naš prvi znak. Sada ponovo dijelimo ovaj podopseg slijedeći isti proces kao i prije. Ovdje možete vidjeti da 0,36 odgovara simbolu a, i nakon ponavljanja procesa došli smo do posljednjeg znaka t (formirajući naš originalni kodirani tok jesti).

I koder i dekoder moraju imati tabelu vjerovatnoće simbola, pa je potrebno i nju poslati u ulazne podatke.

Prilično elegantno, zar ne? Ko god da je smislio ovo rješenje bio je prokleto pametan. Neki video kodeci koriste ovu tehniku ​​(ili je barem nude kao opciju).

Ideja je komprimirati kvantizirani tok bitova bez gubitaka. Sigurno u ovom članku nedostaje tona detalja, razloga, kompromisa, itd. Ali ako ste programer, trebali biste znati više. Novi kodeci pokušavaju koristiti različite algoritme entropijskog kodiranja kao što su ANS.

Korak 6 - bitstream format

Nakon što sve ovo uradite, ostaje samo da se raspakuju komprimirani okviri u kontekstu izvedenih koraka. Dekoder mora biti eksplicitno obaviješten o odlukama koje donosi koder. Dekoder mora imati sve potrebne informacije: bitnu dubinu, prostor boja, rezoluciju, informacije o predviđanju (vektori kretanja, usmjereno INTER predviđanje), profil, nivo, brzinu kadrova, tip kadra, broj okvira i još mnogo toga.

Brzo ćemo pogledati bitstream H.264. Naš prvi korak je da kreiramo minimalni H.264 bitstream (FFmpeg podrazumevano dodaje sve opcije kodiranja kao što su SEI NAL — saznaćemo o čemu se radi malo dalje). To možemo učiniti koristeći naše vlastito spremište i FFmpeg.

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

Ova naredba će generirati sirovi bitstream H.264 sa jednim okvirom, rezolucija 64×64, sa prostorom boja YUV420. U ovom slučaju, sljedeća slika se koristi kao okvir.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

H.264 bitstream

Standard AVC (H.264) određuje da će se informacije slati u makro okvirima (u smislu mreže), tzv nal (ovo je nivo mrežne apstrakcije). Glavni cilj NAL-a je da pruži video prezentaciju "prilagođenu webu". Ovaj standard bi trebao raditi na televizorima (bazirani na strimingu), na internetu (bazirani na paketima).

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Postoji marker za sinhronizaciju za definisanje granica NAL elemenata. Svaki token za sinhronizaciju sadrži vrijednost 0x00 0x00 0x01, osim prvog, koji je jednak 0x00 0x00 0x00 0x01. Ako pokrenemo hexdump za generirani H.264 bitstream identifikujemo najmanje tri NAL uzorka na početku datoteke.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Kao što je navedeno, dekoder mora znati ne samo podatke o slici, već i detalje videa, okvira, boja, korišćenih parametara i još mnogo toga. Prvi bajt svakog NAL-a definira njegovu kategoriju i tip.

NAL identifikator tipa Opis
0 Nepoznata vrsta
1 Fragment kodirane slike bez IDR-a
2 Odjeljak podataka kodiranih rezova A
3 Odjeljak podataka kodiranih rezova B
4 Odjeljak podataka kodiranih rezova C
5 Kodirani IDR fragment IDR slike
6 Više informacija o proširenju SEI
7 Skup parametara SPS sekvence
8 Skup parametara PPS slike
9 Pristupni separator
10 Kraj sekvence
11 Kraj teme
... ...

Obično je prvi NAL bitstreama SPS. Ovaj tip NAL-a je odgovoran za informisanje o uobičajenim varijablama kodiranja kao što su profil, nivo, rezolucija, itd.

Ako preskočimo prvi marker sinhronizacije, možemo dekodirati prvi bajt da saznamo koji je NAL tip prvi.

Na primjer, prvi bajt nakon tokena za sinhronizaciju je 01100111, gdje je prvi bit (0) je u polju forbidden_zero_bit. Sljedeća 2 bita (11) nam govori polje nal_ref_idc, što ukazuje da li je ovaj NAL referentno polje ili ne. I preostalih 5 bitova (00111) nam govori polje krajnja_vrsta_jedinice, u ovom slučaju to je SPS blok (7) NAL.

Drugi bajt (binarni=01100100, Hex=0x64, decembar=100) u SPS NAL je polje profile_idc, koji pokazuje profil koji je enkoder koristio. U ovom slučaju, korišten je ograničeni visoki profil (tj. visoki profil bez podrške dvosmjernog B-segmenta).

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Ako pogledate specifikaciju bitstreama H.264 za SPS NAL, naći ćemo mnoge vrijednosti za naziv parametra, kategoriju i opis. Na primjer, pogledajmo polja pic_width_in_mbs_minus_1 и pic_height_in_map_units_minus_1.

Naziv parametra kategorija Opis
pic_width_in_mbs_minus_1 0 ue(v)
pic_height_in_map_units_minus_1 0 ue(v)

Ako izvršimo neke matematičke operacije sa vrijednostima ovih polja, dobićemo rezoluciju. Može se predstaviti 1920 x 1080 koristeći pic_width_in_mbs_minus_1 sa vrijednošću 119 ((119 + 1) * veličina_makrobloka = 120 * 16 = 1920). Opet, da bismo uštedjeli prostor, umjesto da kodiramo 1920, uradili smo to sa 119.

Ako nastavimo provjeravati naš kreirani video u binarnom obliku (na primjer: xxd -b -c 11 v/minimal_yuv420.h264), tada možete ići na posljednji NAL, a to je sam okvir.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Ovdje vidimo njegovih prvih 6 bajtova vrijednosti: 01100101 10001000 10000100 00000000 00100001 11111111. Pošto je poznato da prvi bajt označava NAL tip, u ovom slučaju (00101) je IDR fragment (5), a zatim ga možete dalje istraživati:

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Koristeći informacije o specifikaciji, bit će moguće dekodirati tip fragmenta (slice_type) i broj okvira (frame_num) između ostalih važnih oblasti.

Da biste dobili vrijednosti nekih polja (ue(v), me(v), se(v) ili te(v)), trebamo dekodirati fragment pomoću posebnog dekodera zasnovanog na eksponencijalni Golomb kod. Ova metoda je vrlo efikasna za kodiranje vrijednosti varijabli, posebno kada postoji mnogo zadanih vrijednosti.

Vrednosti slice_type и frame_num ovog videa su 7 (I-fragment) i 0 (prvi kadar).

Bitstream se može smatrati protokolom. Ako želite saznati više o bitstreamu, trebali biste pogledati specifikaciju ITU H.264. Ovdje je makro dijagram koji pokazuje gdje se nalaze podaci slike (YUV u komprimovanom obliku).

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Mogu se ispitati i drugi bitstreamovi, kao npr VP9, H.265 (HEVC) ili čak naš novi najbolji bitstream AV1. Jesu li svi slični? Ne, ali kada jednom shvatite barem jedno, mnogo je lakše razumjeti ostalo.

Želite vježbati? Istražite H.264 bitstream

Možete generirati video s jednim kadrom i koristiti MediaInfo za ispitivanje bitstreama H.264. Zapravo, ništa vas ne sprječava da čak i pogledate izvorni kod koji analizira bit stream H.264 (AVC).

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Za praksu možete koristiti Intel Video Pro Analyzer (jesam li već rekao da je program plaćen, ali postoji besplatna probna verzija sa ograničenjem od 10 kadrova?).

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

pregled

Imajte na umu da mnogi moderni kodeci koriste isti model koji smo upravo proučavali. Evo, pogledajmo blok dijagram video kodeka thor. Sadrži sve korake kroz koje smo prošli. Cijela poenta ovog posta je da vam barem pruži bolje razumijevanje o inovacijama i dokumentaciji u ovoj oblasti.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Ranije je izračunato da će 139 GB prostora na disku biti potrebno za pohranjivanje video datoteke u trajanju od jednog sata u 720p kvalitetu i 30 fps. Ako koristite metode o kojima se govori u ovom članku (inter-frame i interna predviđanja, transformacija, kvantizacija, entropijsko kodiranje, itd.), tada možete postići (na osnovu činjenice da trošimo 0,031 bita po pikselu), video prilično zadovoljavajućeg kvaliteta, zauzima samo 367,82 MB, a ne 139 GB memorije.

Kako H.265 postiže bolji omjer kompresije od H.264?

Sada kada znamo više o tome kako kodeci rade, lakše je razumjeti kako noviji kodeci mogu dati veće rezolucije s manje bitova.

Ako uporedite AVC и HEVC, vrijedi zapamtiti da je ovo gotovo uvijek izbor između većeg opterećenja CPU-a i omjera kompresije.

HEVC ima više opcija sekcija (i pododjeljaka) od AVC, više unutrašnjih smjerova predviđanja, poboljšano entropijsko kodiranje i još mnogo toga. Sva ova poboljšanja su napravljena H.265 može komprimirati 50% više od H.264.

Kako funkcionira video kodek? Dio 2. Šta, zašto, kako

Prvi dio: Osnove rada sa video zapisima i slikama

izvor: www.habr.com

Dodajte komentar