Analýza VP8 versus H.264: transformace a kvantizace
Kapitoly článků
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.
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.
V rámci VP8 je její implementace samozřejmě možná, ale jen jistou neefektivní cestou.