Letos byl dokončen video kodek AV1 (nebo správněji řečeno kompresní formát), jenž je následníkem komprese VP9 vyvinutým Googlem a řadou dalších firem pro distribuci videa na internetu. Před nedávnem začal Google AV1 experimentálně používat na YouTube, nicméně jde do značné míry jen o test. Kdy se s AV1 budete moci setkat i v praktickém provozu, bude záviset i na podpoře přehrávání v hardwaru, neboť jde o kompresi ještě náročnější na výpočetní výkon než HEVC. O tom, kdy bychom se jí mohli dočkat (a tím pádem také bezproblémového používání AV1), je tato zpráva.
Hardwarové přehrávání AV1 až za dva roky
To, kdy výrobci uvedou procesory, grafické karty a mobilní čipy schopné hardwarově dekódovat AV1, bude samozřejmě individuální v závislosti na roadmapách firem, rychlosti vývoje a na tom, jaká priorita bude této funkci dána. Google ale nyní nepřímo naznačil určitý harmonogram toho, kdy se zařízeních podpora AV1 měla objevit. Minulý víkend se totiž v Paříži konala open source konference Videolan Dev Days 2018, zaměřená na video (Videolan stojí za přehrávačem VLC). Jedním z témat byla právě technologie AV1, kterou za Google prezentoval Pascal „Skal“ Massimino, který v něm pracuje na kodecích a Youtube. Mimochodem je to původně jeden z autorů XviDu a jeho dílem je také bezeztrátová komprese ve formátu WebP.
V jeho prezentaci se dostalo i na to, jaké má Google plány s nasazením kodeku do praxe, což můžete vidět na následujícím slajdu. Letos bylo na programu kromě dokončení specifikace a pilotního dema v Youtube také ještě integrování podpory do prohlížeče Chrome, což by se mělo udát v nyní chystané nové verzi. Příští rok by Google chtěl kodek AV1 integrovat s technologií WebRTC, tedy umožnit jeho nasazení v browserech pro realtime komunikaci (například video chat). Zhruba za rok v Q3 2019 by se AV1 už mělo stát základní částí operačního systému Android Q. Podpora by tedy v tomto Androidu byla již integrována na systémové úrovni, ale ještě bude softwarová.
Pokud jde o přímo hardwarovou podporu, uvádí Google, že dle komunikace s výrobci hardwaru by první čipy pro mobilní telefony měly podporu AV1 (zejména asi dekódování) dostat až v roce 2020. Bude to ovšem jen první vlna zařízení – asi tedy nové highendové SoC, případně čipy, s kterými budou výrobci hodně agresivní. Ve větším množství mobilních procesorů se prý AV1 objeví asi spíše v roce 2021. Nicméně v televizích by snad prý mohl být nástup o něco rychlejší. Televize podporující AV1 můžeme dle prezentace čekat už v roce 2020, samozřejmě tedy pokud se bavíme o nových modelech s v té době aktuální elektronikou. Podobně by na tom asi mohly být settopboxy a multimediální centra, která bývají založena na podobných čipech jako chytré televize.
V slajdu a prezentaci byla řeč jen o mobilních čipech ARM, nikoliv o PC hardwaru. V jeho případě je asi možné, že podpora pro přehrávání přijde později, takže počítejte spíše s rokem 2021 u raných ptáčat. Pomaleji reagující firmy by se tedy možná mohly přidat až v roce 2022. Vývojové cykly procesorů x86 a GPU jsou obvykle delší než u mobilních SoC, takže trvá delší čas, než se nový kodek po dokončení v hotových CPU/GPU objeví.
Sofwarové přehrávání dovolí rychlý dekodér Dav1d
Ony dva roky jsou dlouhá doba a lze čekat, že Youtube spustí „vysílání“ v AV1 dříve. To ale neznamená, že nebudeme schopní na PC tento obsah přehrávat. Dostatečně výkonné softwarové přehrávání by totiž mělo být k mání o dost dříve. Referenční dekodér libaom, který dnes přehrávače a prohlížeče používají, má v tomto docela mezery a kvůli špatnému škálování na více jader nezvládá real-time přehrávání na CPU, která by měla mít výkonu dost. Na VDD 2018 byl ale také představen výkonnější dekodér pojmenovaný Dav1d, který by měl tento neduh odstranit a dovolit přehrávat rozlišení FullHD až 4K plynule i bez hardwarové akcelerace.
Dav1d je dekodér napsaný nezávisle na libaom. Podílí se na něm Videolan a autor dekodérů VP8 a VP9 z FFmpegu. Jde o samostatnou knihovnu pod permisivní licencí BSD, sponzorovanou aliancí AOM. Cílem je, aby Dav1d mohl být integrován do prohlížečů, FFmpegu a dalšího softwaru jak na platformě PC/x86, tak na Androidu/ARM. Proti referenčnímu dekodéru má být Dav1d výrazně rychlejší a využívat více procesorových jader, jelikož bude kombinovat threading jak pomocí separátního zpracování snímků, tak tile threading (podobný slice threadingu v H.264) zároveň.
Zatím je ještě ve vývoji, takže chybí optimalizace SIMD psané v asambléru, které jsou klíčem k obstojnému výkonu. Ovšem testy srovnávající čistě kód v jazyce C ukazují, že by Dav1d měl být už při jednovláknovém dekódování o desítky procent rychlejší než libaom. Po připočítání lepšího škálování na více vláken a budoucích SIMD optimalizací by tedy Dav1d měl být několikanásobně rychlejší.
Momentálně dokáže pomocí Dav1du čtyřjádrové notebookové CPU (pro test byl použitý procesor rodiny Haswell, mělo by jít o Core i7-4870HQ se základním taktem 2,5 GHz a turbem 3,7 GHz) dekódovat Full HD při 50 snímcích za sekundu. To je měřeno na 1080p 8bitovém vzorku Chimera od Netflixu, o němž jsme psali zde. A je to zatím bez SIMD asembléru. Se SIMD optimalizacemi by podle projekce autorů mělo být eventuálně možné na plus minus podobném čtyřjádrovém CPU dekódovat 4K video s více jak 60 snímky za vteřinu. To by mělo pokrývat většinu internetového obsahu mimo ten skutečně extrémní (HDR s 10bitovou kompresí a vysoké datové toky mohou potřebovat výkonu více).
Kromě samotné rychlosti (ve smyslu spotřeby CPU cyklů) má mít Dav1d výhodu také v menším objemu kódu a v menší spotřebě RAM. Nyní dostupná vývojová větev potřebuje pro jednu dekódovací instanci s testovacím videem okolo 40 MB RAM, zatímco dosavadní referenční dekodér libaom 160 MB. Toto bude důležité, až se na webech začnou objevovat reklamy používající video v AV1 a nedejbože takové stránky otevřete zároveň v několika záložkách.
Rychlejší SW dekodér bude ve Firefoxu, možná v Chrome a Edge
Momentálně ještě dekodér Dav1d není úplně hotov. Projekt ale poměrně rychle postupuje, i díky pomoci dobrovolníků po odhalení na VDD 2018. Po stránce podpory všech funkcí formátu AV1 by již měl být téměř kompletní (chybí zatím 12bitový režim nebo podpora techniky Film Grain Modelling). V současnosti tedy běží ladění, opravování chyb a ony SIMD optimalizace v asembléru, které by měly přinést onen výrazně vyšší výkon. V použitelném stavu by ale měl dekodér údajně být v řádu týdnů, takže je možné, že s ním bude možno přehrávat video už kolem nového roku nebo o Vánocích.
Integrace do prohlížečů nicméně může trvat déle. Podle vývojářů se Dav1d v budoucnu má dostat jako dekodér AV1 do Firefoxu. Záměrem vývojářů je prosadit dekodér místo libaom i do Chrome a Edge, ale tam ještě není definitivně jasno, zda bude akceptován. Při vývoji ale s těmito firmami probíhala komunikace a na jejich potřeby bylo údajně zvlášť hleděno.
Záznamy prezentací z Videolan Dev Days 2018 jsou nyní k vidění na YouTube, pokud máte o problematiku zájem – naleznete je v kanálu VLC. Kromě projektu Dav1d a AV1 bylo prezentováno také x265 (zastřešené formálně organizací Videolan stejně jako x264), enkodér formátu AV1 Rav1e od Mozilly, psaný v jazyce Rust, a další projekty nebo témata související s open source multimédii a VLC.