Google uvolnil video kodek VP8: další krok v revoluci webového videa?

21.5.2010, 16:17 | autor: David Ježek

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?

Následující text vychází z podrobné analýzy VP8, kterou provedl Jason Garrett-Glaser (známý též jako Dark Shikari), jeden z hlavních programátorů projektu x264, v současné době nejkomplexnější a přitom otevřené implementace formátu H.264. My pochopitelně nechceme jeho analýzu kompletně "vykrádat", proto si zmíníme pouze ty hlavní a zajímavé body, v případě hlubšího zájmu vás odkazujeme přímo na jeho blog, kde se k tématu už i rozvinula diskuse.

On2 Technologies, kteří VP8 vyvinuli a které Google loni koupil, uvádějí, že VP8 je o 50 % lepší než H.264, ale jak Jason píše, jejich zmínky jsou vždy takto nadnesené a neodpovídají realitě. Předchozí VP7 měl být o 15 % lepší než H.264 a současně i rychlejší, v reálu však byl pomalejší a poskytoval horší kvalitu videa.

Jak je to s těmi patenty, které jsme zmiňovali v průběhu článku? Dle Jasona ani to, že Google tento formát uvolnil pod otevřenou licencí a bez poplatků, neznamená, že je formát skutečně patenty nezatížen. Microsoft také kdysi uvolnil VC-1 podobným stylem a pár měsíců na to se na něj sesypala řada firem s tím, že používá její patenty.

Specifikace

Specifikace formátu je zatím doslova v plenkách a to pěkně "pokaděných". Pořádný dokument popisující celý formát vlastně neexistuje, specifikace je z velké části jen copy&pastnutý zdroják v Céčku, zahrnuje řadu TODOs či C-specifických hacků. Jistě většina vývojářů bude souhlasit, že zdroják v C rozhodně není žádná specifikace. Specifikace VP8 je tak v tuto chvíli poměrně nejasná a chaotická a je v podstatě nemožné jen podle ní napsat od základu třeba vlastní dekodér tohoto formátu.

VP8 samotné

Jason připomíná, že současné formáty této úrovně pracují následovně:

  • komprese: Predict -> Transform + Quant -> Entropy Code -> Loopfilter
  • dekomprese (přehrávání): Entropy Decode -> Predict -> Dequant + Inverse Transform -> Loopfilter

Predikce (intra + inter)

V této fázi se kodek snaží předpovídat, jaký je obsah scény. Intra analyzuje daný snímek jako samostatný, bez ohledu na okolní snímky (předcházející, následující, připomeňme, že daný snímek je často realizován tak, že obsahuje jen rozdíl oproti předchozímu - predicted frame, nebo rozdíl oproti předchozímu i následujícímu - bidirectional predicted; to vše pak ukládá v rámci analýzy motion vektorů - systému určujícím pohyb objektů ve scéně - jak směr, tak i rychlost).

Analýza sub-bloků je ve VP8 prakticky shodná s i4×4 módem v x264 a analýza celých bloků s i16×16. Totéž platí i pro chroma predikci, ale například "mezistupeň" i8×8 z H.264 High Profile svůj ekvivalent ve VP8 nemá. Jason je zde hodně zklamán. Zatímco intra predikce H.264 je obecně ve specifikaci dobrá, prošla i tak za posledních 7 let pořádným vývojem a On2 ji prostě převzali, což není zrovna "gentlemanská praktika", Jason čekal něco trochu kreativnějšího. Každopádně tohle Jason považuje za patentovou bombu, která čeká na vybouchnutí. Spatial intra predikce v H.264 je chráněna patenty a On2 (tedy Google) tohle asi jen těžko obhájí.

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

Inter predikce se používá k odhadu obsahu bloků s přihlédnutím k předchozím snímkům videa. Hlavními součástmi tohoto procesu jsou referenční snímky (to jsou ty, které jsou ve videu uloženy celé, nikoli jen jako změna oproti předchozím/okolním) a vektory pohybu (motion vectors). Daný snímek je pak sestaven tak, že se vezme počáteční hodnota z referenčního snímku a zjistí se, jaký posuv pro danou část definují vektory pohybu, tím se získá finální pozice daného objektu/pixelu ve snímku.

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

VP8 podporuje 3 referenční snímky: předchozí, "alt ref" a "golden frame" a partitions (oblasti obrazu) s proměnnou velikostí. H.264 umí 16 referenčních snímků a oproti typům oblastí z VP8 (16×16, 16×8, 8×16, 8×8, 4×4) umí i flexibilní, kde každá 8×8 může být 8×8, 8×4, 4×8, nebo 4×4. Jisté rozdíly jsou i v interpolačních filtrech. VP8 pak nepodporuje B-snímky (to jsou ty, které se odkazují na předchozí i následující) a weighted prediction (váhovou predikci).

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

Interpolační filtrace ve VP8 je dle Jasona sice o něco lepší než v H.264, ale její implementace také bude o něco pomalejší (tj. náročnější na výpočetní výkon). Absenci B-snímků považuje za zabijáka VP8, dávají totiž 10 až 20% kompresní bonus při jen minimálním snížení výkonu (tj. minimálním nárůstu výpočtů potřebných pro zpracování videa). Absence B-snímků bude VP8 patrně stát více než cokoli dalšího.

Diskuze k článku Analýza VP8 versus H.264: úvod, metody predikce

| 22.6., 10:20
| Tak to jsou přesně záležitosti bez...
| 25.5., 14:16
| Specifikace Flashe je oficiálně volně...
| 25.5., 10:18
| S tím nadpisem je mi to jasné. Je...
| 25.5., 09:23
| k použití slova kodek v nadpisu: na "...
| 25.5., 07:39
| O použití slova kodek by se dalo...
| 24.5., 22:35
| kde konkrétně je chybně použit pojem...
| 24.5., 15:19
| Měla to být reakce na příspěvek nade...
| 24.5., 15:03
| V jinak dobrém článku se bohužel...
| 24.5., 10:13
| protože je toto v kořenu diskuse,...
| 24.5., 10:02
| Stejně špatně to podle mě pochopili i...

Tipy: Články o moderním bydlení | Obnova dat | Herný portál undzwei.eu | Data recovery | Notebooky, počítače | Záchrana dat | www.64bit.eu
Brigády pro studenty | Samostatné Skype telefony | Tiskárny OKI | Download software instaluj.cz | Švýcarské náplně, cartridge SwissToner | levné stěhování Praha