Diit.cz - Novinky a informace o hardware, software a internetu

Analýza VP8 versus H.264: transformace a kvantizace

WebM logo
Tento týden Google představil nový projekt WebM. Jde o formát určený pro internetové streamování videa v rámci nadcházejícího HTML5, který v sobě sdružuje nově otevřený video kodek VP8 (zakoupený spolu s jeho mateřskou firmou On2 Technologies loni) a zvuk ve formátu Ogg Vorbis, vše pak zastřešeno další nesmírně populární otevřenou technologií, souborovým kontejnerem Matroška (mkv). Jaký osud pro VP8 a HTML5 video vůbec Google plánuje? Jak se k němu (po)staví Chrome, Firefox, Internet Explorer 9 či Opera a co si o kvalitě kompresních algoritmů ve VP8 myslí špičkoví experti stojící za open-source implementací H.264 formátu známou jako x264? Přežije vůbec Flash jakožto přehrávač internetového videa rok 2010?

Po "předpovědích" musí enkodér vzít rozdíl mezi jimi a aktuálním zdrojem pixelů a provést transformaci a kvantizaci. Transformace upravuje data tak, aby byla vhodnější pro samotné kompresní algoritmy, tím že je "sladí do vhodného tvaru". Právě tento krok je jedním z těch, v nichž probíhá ztráta informace (snad netřeba zdůrazňovat, že na rozdíl třeba od ZIPu, je H.264 ztrátová komprese :-) - hodnoty se zaokrouhlují, aby z tohoto kroku vypadlo jen "pár celočíselných hodnot".

Pro transformaci používá VP8 opět schéma vycházející z H.264. Makrobloky 16×16 se dělí na šestnáct 4×4 DCT bloků, na nichž se provede diskrétní kosinová transformace. Výstupy z této DCT jsou pak shromažďovány v další 4×4 skupině, nad kterou se provede Hadamardova transformace.

VP8 vynechává zcela 8×8 transformaci, pochopitelně, nemá přece i8×8 intra mód. H.264 používá záměrně extrémně zjednodušenou DCT (s velmi malými koeficienty jako 17, 22, 10, atd.), zatímco VP8 velice přesnou (s koeficienty jako 20091 a 35468) - tedy podobnou, jaká byla už ve VP3. H.264 je však za svou "nepřesnost" bita jen asi 1% ztrátou na kompresním poměru.

VP8 používá limitovanou implementaci Hadamardovy hierarchické transformace. Celkově je pak transformační schéma ve VP8 rozhodně slabší než v H.264. Absence 8×8 bude mít dopad na zachování detailů ve videu, speciálně ve vysokých rozlišeních.

WebM: ukákové nastavení H.264 (x264)

Kvantizace je v podstatě shodná s video formáty MPEG typu. Formáty se od sebe víceméně liší jen škálovacími faktory, které pro kvantizaci používají. VP8 používá méně flexibilní kvantizační metody než H.264 se svými uživatelsky definovatelnými kvantizačními maticemi. Zabijákem pro VP8 je dle Jasona to, že formát neimplementuje kvantizaci na úrovni makrobloků, tedy adaptivní kvantizaci, která je pro výslednou kvalitu videa klíčová. Jasonova vlastní implementace variance-based adaptive quantization v x264 představuje v historii projektu dosud nejvýznamnější dílčí skok ve vizuální kvalitě videa. Různá porovnání enkodérů stále dokola prokazují, že bez implementace adaptivní kvantizace nemá kodek šanci v konkurenci uspět.

WebM: ukákové nastavení H.264 (x264)

V rámci VP8 je její implementace samozřejmě možná, ale jen jistou neefektivní cestou.

David "David Ježek" Ježek

Bývalý zdejší redaktor (2005-2017), nyní diskusní rejpal.

více článků, blogů a informací o autorovi

Diskuse ke článku Google uvolnil video kodek VP8: další krok v revoluci webového videa?

Úterý, 22 Červen 2010 - 10:20 | Stanislav Hodaň | Tak to jsou přesně záležitosti bez kterých se rád...
Úterý, 25 Květen 2010 - 14:16 | Marv-CZ | Specifikace Flashe je oficiálně volně dostupná....
Úterý, 25 Květen 2010 - 10:18 | JeCh | S tím nadpisem je mi to jasné. Je třeba psát tak...
Úterý, 25 Květen 2010 - 09:23 | David Ježek | k použití slova kodek v nadpisu: na "kodek...
Úterý, 25 Květen 2010 - 07:39 | JeCh | O použití slova kodek by se dalo polemizovat už v...
Pondělí, 24 Květen 2010 - 22:35 | David Ježek | kde konkrétně je chybně použit pojem kodek nebo...
Pondělí, 24 Květen 2010 - 15:19 | JeCh | Měla to být reakce na příspěvek nade mnou, nějak...
Pondělí, 24 Květen 2010 - 15:03 | JeCh | V jinak dobrém článku se bohužel vyskytlo několik...
Pondělí, 24 Květen 2010 - 10:13 | David Ježek | protože je toto v kořenu diskuse, předpokládám,...
Pondělí, 24 Květen 2010 - 10:02 | JeCh | Stejně špatně to podle mě pochopili i na Rootu....

Zobrazit diskusi