Streamování ve 4K je novou normou, ale každých 16 milisekund se přenáší informace o více než 8,2 milionu pixelů – ukládání a přenos 4K videa na internetu není snadný úkol.
Dvouhodinový film by v nekomprimovaném stavu zabral přes 1,7 terabajtu úložiště. Jak tedy streamovací giganti jako YouTube a Netflix zvládají ukládat a streamovat videa, která zabírají tolik místa?
No, ne, protože používají video kodeky ke zmenšení velikosti filmů, ale co je to video kodek a který z nich je nejlepší?
Co je to video kodek?
Než se ponoříte hluboko do složitosti video kodeků, je důležité pochopit, jak se video vytváří. Jednoduše řečeno, video není nic jiného než sada statických obrázků, které se rychle nahrazují.
Díky této vysoké rychlosti se lidský mozek domnívá, že se obrazy pohybují, což vytváří iluzi sledování videa. Při sledování videa ve 4K se tedy právě díváte na sadu snímků s rozlišením 2160x3840. Toto vysoké rozlišení obrázků umožňuje natáčení videa v rozlišení 4K, které poskytuje skvělý zážitek z videa. To znamená, že toto vysoké rozlišení obrázků zvyšuje velikost videa, takže není možné streamovat přes kanály s omezenou šířkou pásma, jako je internet.
K vyřešení tohoto problému máme video kodeky. Zkratka pro kodér/dekodér nebo komprese/dekomprese, video kodek komprimuje proud obrázků na bity dat. Tato komprese může buď snížit kvalitu videa, nebo na ni nemá žádný vliv na základě použitých kompresních algoritmů.
Jak název napovídá, kompresní bit v kodeku zmenšuje velikost každého obrázku. Ke stejnému účelu kompresní algoritmus využívá nuance lidského oka – zabraňuje lidem, aby věděli, že videa, která sledují, jsou komprimovaná.
Dekomprese naopak funguje opačně a vykresluje video pomocí komprimovaných informací.
Přestože kodeky odvádějí skvělou práci, pokud jde o kompresi informací, jejich provedení může být pro váš CPU náročné. Z tohoto důvodu je normální vidět kolísání výkonu systému, když v systému spouštíte algoritmy komprese videa.
K vyřešení tohoto problému jsou CPU a GPU dodávány se speciálním hardwarem, který dokáže tyto kompresní algoritmy spustit. Umožnění CPU vykonávat úkoly, které jsou po ruce, zatímco vyhrazený hardware zpracovává video kodeky, což zvyšuje efektivitu.
Jak funguje video kodek?
Nyní, když máme základní znalosti o tom, co video kodek dělá, můžeme se podívat, jak kodek funguje.
Chroma Subsampling
Jak bylo vysvětleno dříve, videa se skládají z obrázků a chroma subsampling redukuje informace v každém obrázku. K tomu redukuje barevnou informaci obsaženou v každém obrázku, ale jak je tato redukce barevných informací detekována lidským okem?
No, vidíte, lidské oči jsou skvělé v detekci změn jasu, ale to samé se nedá říct o barvách. Je to proto, že lidské oko má více tyčinek (buňky fotoreceptorů odpovědné za detekci změn jasu) ve srovnání s čípky (buňky fotoreceptorů odpovědné za rozlišování barev). Rozdíl v tyčinkách a čípcích zabraňuje očím detekovat barevné změny při porovnávání komprimovaných a nekomprimovaných obrázků.
Aby bylo možné provést podvzorkování barevnosti, algoritmus komprese videa převede informace o pixelech v RGB na data jasu a barev. Poté algoritmus sníží množství barvy v obrázku na základě úrovní komprese.
Odstranění nadbytečných informací o rámu
Videa se skládají z několika snímků a ve většině případů všechny tyto snímky obsahují stejné informace. Představte si například video s osobou mluvící na pevném pozadí. V takovém případě mají všechny snímky ve videu podobné složení. K vykreslení videa tedy nejsou potřeba všechny obrázky. Vše, co potřebujeme, je základní obrázek, který obsahuje všechny informace a data související se změnou při přechodu z jednoho snímku do druhého.
Proto, aby se zmenšila velikost videa, kompresní algoritmus rozděluje snímky videa na snímky I a P (předpokládané snímky). Zde jsou I snímky základní pravdou a používají se k vytvoření P snímků. P snímky jsou pak vykresleny pomocí informací v I snímcích a změnových informací pro tento konkrétní snímek. Pomocí této metodologie je video rozděleno na sadu I snímků prokládaných do P snímků, které video dále komprimují.
Komprese pohybu
Nyní, když jsme video rozdělili na I a P snímky, musíme se podívat na kompresi pohybu. Část algoritmu komprese videa, která pomáhá vytvářet P snímky pomocí I snímků. K tomu kompresní algoritmus rozdělí I snímek na bloky známé jako makrobloky. Těmto blokům jsou poté přiděleny pohybové vektory, které definují směr, kterým se tyto bloky pohybují při přechodu z jednoho snímku do druhého.
Tyto informace o pohybu pro každý blok pomáhají algoritmu komprese videa předpovědět umístění každého bloku v nadcházejícím snímku.
Odstranění vysokofrekvenčních obrazových dat
Stejně jako změny v barevných datech lidské oko nedokáže detekovat jemné změny ve vysokofrekvenčních prvcích na obrázku, ale co jsou to vysokofrekvenční prvky? No, vidíte, obraz vykreslený na vaší obrazovce se skládá z několika pixelů a hodnoty těchto pixelů se mění podle zobrazeného obrázku.
V některých oblastech obrazu se hodnoty pixelů postupně mění a takové oblasti mají nízkou frekvenci. Na druhou stranu, pokud dojde k rychlé změně v pixelových datech, oblast je kategorizována jako oblast s vysokofrekvenčními daty. Algoritmy komprese videa používají diskrétní kosinovou transformaci ke snížení vysokofrekvenční složky.
Zde je návod, jak to funguje. Nejprve na každém makrobloku běží algoritmus DCT a poté detekuje oblasti, kde je změna intenzity pixelů velmi rychlá. Poté tyto datové body z obrazu odstraní, čímž se zmenší velikost videa.
Kódování
Nyní, když byly odstraněny všechny nadbytečné informace z videa, můžeme uložit zbývající bity dat. Algoritmus komprese videa k tomu používá schéma kódování, jako je Huffmanovo kódování, které spojuje všechny datových bitů v rámci na počet, kolikrát se vyskytují ve videu, a poté je spojuje stromovým způsobem. Tato zakódovaná data jsou uložena v systému, což mu umožňuje snadno vykreslit video.
Různé video kodeky používají různé techniky ke kompresi videí, ale na velmi základní úrovni používají pět základních metod definovaných výše ke zmenšení velikosti videí.
AV1 vs. HEVC vs. VP9: Který kodek je nejlepší?
Nyní, když rozumíme tomu, jak kodeky fungují, můžeme určit, který z AV1, HEVC a VP9 je nejlepší.
Stlačitelnost a kvalita
Pokud máte 4K video, které zabírá hodně místa ve vašem systému a nelze je nahrát do vašeho oblíbenou streamovací platformu, možná hledáte video kodek, který nabízí nejlepší kompresi poměr. Musíte však také vzít v úvahu, že kvalita, kterou poskytuje, klesá, jak budete video komprimovat. Proto je při výběru kompresního algoritmu důležité sledovat kvalitu, kterou poskytuje při konkrétní bitové rychlosti, ale jaká je bitová rychlost videa?
Jednoduše řečeno, datový tok videa je definován jako počet bitů, které video potřebuje k přehrání za sekundu. Například 24bitové nekomprimované 4K video běžící při 60 snímcích má datový tok 11,9 Gb/s. Pokud tedy streamujete nekomprimované 4K video na internetu, vaše Wi-Fi musí dodat 11,9 gigabitů dat každou sekundu – vyčerpání vaší měsíční datové kvóty během několika minut.
Použití kompresního algoritmu naopak sníží datový tok na velmi malé množství na základě vámi zvoleného datového toku, aniž by došlo ke snížení kvality.
Pokud jde o čísla stlačitelnosti/kvalita, AV1 vede balíček a nabízí o 28,1 procenta lepší komprese ve srovnání s H.265 a úspora 27,3 procenta ve srovnání s VP9 při podobném poskytování kvalitní.
Pokud tedy hledáte nejlepší kompresi bez zhoršení kvality, AV1 je kompresní poměr pro vás. Vzhledem ke skvělému poměru komprese a kvality kodeku AV1 jej používá Google ve svém aplikace pro videokonference Google Duo a podle Netflix při přenosu videa na datovém připojení s nízkou šířkou pásma.
Kompatibilita
Jak bylo vysvětleno dříve, algoritmus komprese videa zakóduje video, jakmile je komprimováno. Chcete-li nyní toto video přehrát, vaše zařízení jej musí dekódovat. Pokud tedy vaše zařízení nemá hardwarovou/softwarovou podporu pro dekomprimaci videa, nebude jej moci spustit.
Proto je důležité porozumět aspektu kompatibility kompresního algoritmu, protože jaký je smysl vytváření a komprimace obsahu, který nelze spustit na mnoha zařízeních?
Pokud tedy hledáte kompatibilitu, pak by pro vás měl být kodek VP9 je podporován na více než dvou miliardách koncových bodů a lze jej spustit v každém prohlížeči, chytrém telefonu a chytrém telefonu TELEVIZE.
Totéž nelze říci o AV1, protože používá novější, složitější algoritmy ke snížení velikosti souboru videa a nelze jej přehrát na starších zařízeních. Pokud jde o podporu prohlížeče, Safari neumí přehrávat AV1, ale prohlížeče jako Firefox a Chrome mohou přehrávat videa AV1 bez problémů.
Pokud jde o podporu hardwaru, nové SoC a GPU jako Snapdragon 8 Gen 2, Samsung Exynos 2200, MediaTek Dimensity 1000 5G, Google Tensor G2, Nvidia RTX 4000-Series a Intel Xe a Arc GPU podporují zrychlené hardwarové dekódování pro kodek AV1. Pokud tedy vlastníte zařízení poháněná těmito čipovými sadami, můžete si užívat streamování obsahu komprimovaného pomocí kodeků AV1, aniž byste vyčerpali výkon svých CPU/GPU.
Pokud jde o kodek H.265, většina populárních prohlížečů, jako je Safari, Firefox a Google Chrome, může bez problémů spouštět videa zakódovaná pomocí kompresního algoritmu. To znamená, že ve srovnání s AV1 a VP9 není H.265 open source a pro použití kodeku H.265 je třeba získat licence. Z tohoto důvodu nemohou aplikace, jako je Microsoft's Movies & TV video player, které se dodávají s operačním systémem, ve výchozím nastavení spouštět videa kódovaná pomocí H.265. Místo toho si uživatelé musí nainstalovat další doplňky z obchodu Windows, aby mohli taková videa spustit.
Rychlost kódování
Video kodeky podstatně zmenšují velikost videa, ale ke zmenšení velikosti videa je třeba nekomprimované video zpracovat pomocí softwaru, což vyžaduje čas. Pokud tedy chcete zmenšit velikost videa, musíte se podívat na čas potřebný ke kompresi videa pomocí kompresního algoritmu.
Pokud jde o efektivitu kódování, VP9 je na prvním místě a doba kódování pro kompresi videa je mnohem kratší než u H.265 a AV1. AV1, na druhé straně, je nejpomalejší v době kódování a může trvat třikrát déle, než kódování videa ve srovnání s H.265.
Jaký kodek byste si měli vybrat?
Pokud jde o video kodeky, nalezení dokonalého kodeku je velmi subjektivní, protože každý kodek nabízí jiné funkce.
Pokud hledáte nejlepší kvalitu videa, vyberte si AV1. Na druhou stranu, pokud hledáte nejkompatibilnější video kodek, VP9 by pro vás byl nejvhodnější.
A konečně, kodek H.265 se skvěle hodí, pokud potřebujete dobrou kvalitu a kompresi bez režijních nákladů na kódování.