AV1 vs. h265 (HEVC) vs. VP9: Aký je rozdiel medzi týmito kompresnými štandardmi?

AV1 vs. h265 (HEVC) vs. VP9: Aký je rozdiel medzi týmito kompresnými štandardmi?
Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Streamovanie v rozlíšení 4K je novou normou, ale s informáciami o viac ako 8,2 milióna pixelov, ktoré sa prenesú každých 16 milisekúnd, nie je ukladanie a prenos 4K videa na internete ľahká úloha.





Dvojhodinový film by po nekomprimovaní zabral viac ako 1,7 terabajtu úložného priestoru. Ako teda streamingoví giganti ako YouTube a Netflix dokážu ukladať a streamovať videá, ktoré zaberajú toľko miesta?





VYUŽITIE VIDEA DŇA

No, nie, pretože používajú video kodeky na zmenšenie veľkosti filmov, ale čo je to video kodek a ktorý z nich je najlepší?





Čo je to video kodek?

Pred ponorením sa hlboko do zložitosti video kodekov je dôležité pochopiť, ako sa video vytvára. Zjednodušene povedané, video nie je nič iné ako súbor statických obrázkov, ktoré sa rýchlo nahradia.

  Softvér na úpravu videa spustený v počítači

V dôsledku tejto vysokej rýchlosti zmeny si ľudský mozog myslí, že sa obrazy pohybujú, čo vytvára ilúziu sledovania videa. Pri sledovaní videa v 4K sa teda práve pozeráte na sadu obrázkov s rozlíšením 2160x3840. Toto vysoké rozlíšenie obrázkov umožňuje natáčanie videa v rozlíšení 4K, aby ste získali skvelý zážitok z videa. Toto vysoké rozlíšenie obrázkov však zväčšuje veľkosť videa, čo znemožňuje streamovanie cez kanály s obmedzenou šírkou pásma, ako je napríklad internet.



Na vyriešenie tohto problému máme video kodeky. Skratka pre kodér/dekodér alebo kompresia/dekompresia, video kodek komprimuje tok obrázkov na bity údajov. Táto kompresia môže buď znížiť kvalitu videa alebo na ňu nemá žiadny vplyv na základe použitých kompresných algoritmov.

Ako už názov napovedá, kompresný bit v kodeku zmenšuje veľkosť každého obrázka. Aby to isté urobil, kompresný algoritmus využíva nuansy ľudského oka – bráni ľuďom vedieť, že videá, ktoré pozerajú, sú komprimované.





Dekompresia naopak funguje opačne a vykresľuje video pomocou komprimovaných informácií.

Hoci kodeky odvádzajú skvelú prácu, pokiaľ ide o kompresiu informácií, vykonanie toho istého môže byť zaťažujúce váš procesor. Z tohto dôvodu je normálne vidieť kolísanie výkonu systému, keď v systéme spúšťate algoritmy kompresie videa.





ako nainštalovať osx z usb
  Aplikácia na úpravu videa spustená na iPade

Na vyriešenie tohto problému sa CPU a GPU dodávajú so špeciálnym hardvérom, ktorý dokáže spustiť tieto kompresné algoritmy. Umožňuje CPU vykonávať úlohy, ktoré sú k dispozícii, zatiaľ čo vyhradený hardvér spracováva video kodeky, čím sa zvyšuje efektivita.

Ako funguje video kodek?

Teraz, keď máme základné znalosti o tom, čo video kodek robí, môžeme sa pozrieť na to, ako kodek funguje.

Chroma Subsampling

Ako už bolo vysvetlené vyššie, videá sa skladajú z obrázkov a podvzorkovanie chroma znižuje informácie v každom obrázku. Na tento účel redukuje farebnú informáciu obsiahnutú v každom obrázku, ale ako je táto redukcia farebnej informácie detekovaná ľudským okom?

No vidíte, ľudské oči sú skvelé na zisťovanie zmien jasu, ale to isté sa nedá povedať o farbách. Je to preto, že ľudské oko má viac tyčiniek (buniek fotoreceptorov zodpovedných za detekciu zmien jasu) v porovnaní s čapíkmi (bunky fotoreceptorov zodpovedné za rozlišovanie farieb). Rozdiel v tyčinkách a čapoch bráni očiam rozpoznať farebné zmeny pri porovnávaní komprimovaných a nekomprimovaných obrázkov.

  Rôzne úrovne kompresie videa pomocou chroma subsampling
Poďakovanie za obrázok: Janke na anglickej Wikipedii/Wikimedia Commons

Na vykonanie podvzorkovania chromatickosti konvertuje algoritmus kompresie videa informácie o pixeloch v RGB na údaje jasu a farieb. Potom algoritmus zníži množstvo farby v obraze na základe úrovní kompresie.

Odstránenie nadbytočných informácií o ráme

Videá sa skladajú z niekoľkých snímok a vo väčšine prípadov všetky tieto snímky obsahujú rovnaké informácie. Predstavte si napríklad video s osobou, ktorá hovorí na nemennom pozadí. V takom prípade majú všetky snímky vo videu podobnú kompozíciu. Preto na vykreslenie videa nie sú potrebné všetky obrázky. Všetko, čo potrebujeme, je základný obrázok, ktorý obsahuje všetky informácie a údaje súvisiace so zmenou pri prechode z jedného rámca na druhý.

Preto, aby sa zmenšila veľkosť videa, kompresný algoritmus rozdeľuje snímky videa na I a P snímky (predpovedané snímky). Tu sú I rámy základnou pravdou a používajú sa na vytváranie P rámov. Snímky P sa potom vykreslia pomocou informácií v snímkach I a informácií o zmenách pre tento konkrétny rámec. Pomocou tejto metodológie sa video rozloží na sadu I snímok prekladaných do P snímok, ktoré video ďalej komprimujú.

Kompresia pohybu

Teraz, keď sme rozdelili video na I a P snímky, musíme sa pozrieť na kompresiu pohybu. Časť algoritmu kompresie videa, ktorá pomáha vytvárať P snímky pomocou I snímok. Na tento účel kompresný algoritmus rozdelí snímku I na bloky známe ako makrobloky. Týmto blokom sa potom pridelia pohybové vektory, ktoré definujú smer, ktorým sa tieto bloky pohybujú pri prechode z jedného rámca do druhého.

  Pohybové vektory na obrázku hry
Image Credits: Blender Foundation/ Wikimedia Commons

Tieto informácie o pohybe pre každý blok pomáhajú algoritmu kompresie videa predpovedať umiestnenie každého bloku v nadchádzajúcom rámci.

Odstránenie vysokofrekvenčných obrazových údajov

Rovnako ako zmeny vo farebných údajoch, ľudské oko nedokáže rozpoznať jemné zmeny vo vysokofrekvenčných prvkoch v obraze, ale čo sú to vysokofrekvenčné prvky? No, vidíte, obraz vykreslený na vašej obrazovke obsahuje niekoľko pixelov a hodnoty týchto pixelov sa menia v závislosti od zobrazeného obrázka.

V niektorých oblastiach obrazu sa hodnoty pixelov postupne menia a takéto oblasti majú nízku frekvenciu. Na druhej strane, ak dôjde k rýchlej zmene v údajoch o pixeloch, oblasť sa kategorizuje ako oblasť s vysokofrekvenčnými údajmi. Algoritmy kompresie videa používajú diskrétnu kosínusovú transformáciu na zníženie vysokofrekvenčnej zložky.

Tu je návod, ako to funguje. Po prvé, algoritmus DCT beží na každom makrobloku a potom detekuje oblasti, kde je zmena intenzity pixelov veľmi rýchla. Potom odstráni tieto dátové body z obrázka, čím sa zmenší veľkosť videa.

Kódovanie

Teraz, keď boli z videa odstránené všetky nadbytočné informácie, môžeme uložiť zostávajúce bity údajov. Algoritmus kompresie videa na to používa schému kódovania, ako je Huffmanovo kódovanie, ktoré spája všetky dátové bity v rámci s počtom výskytov vo videu a potom ich spája stromovým spôsobom. Tieto zakódované dáta sú uložené v systéme, čo mu umožňuje jednoducho vykresliť video.

  Štruktúra Huffmanovho kódovania
Obrazové kredity: Redor/ Wikimedia Commons