Next gen video kodek AV1 je tady (skoro), aliance AOMedia oznamuje dokončení specifikace

29. 3. 2018

Sdílet

 Autor: Alliance for Open Media, Cnews.cz
Video kodek AV1, který přináší novou generaci komprese pro streamování na internetu, je téměř hotov a pomalu začíná doba jeho nasazování do praxe.

Tento týden se přiblížil možná významný milník ve vývoji digitálního videa na internetu. Po letech vývoje bylo totiž konsorciem AOMedia oznámeno vydání specifikace kodeku či přesněji řečeno formátu AV1, který tato aliance vyvíjela jako konkurenci pro pokročilý formát HEVC, která by ale byla dostupné pro použitá zdarma a také vyvinuta v duchu open source.AOMedia včera oznámila veřejné vydání verze 1.0 specifikace video kodeku 1.0, což signalizuje dokončení prací na jeho vývoji a přechod do fáze, kdy se tato technologie může pomalu začít šířit a pomalu nasazovat do provozu. To doposud nebylo možné, jelikož formát nebyl finální, nebyl tzv. „zmrazen“, což znamená, že už nebude měněn. Pokud byste video zkomprimované enkodérem před verzí 1.0 veřejně distribuovali, budoucí standardní dekodéry by ho už nedokázaly správně přehrát.

Specifikace potřebuje ještě malou chvíli

V titulu stojí, že kodek je tady „skoro“. Realita je totiž mírně odlišná informacím v tiskové zprávě. Jak zjistíte pohledem do repozitáře na githubu, specifikace je stále ještě označená jako předběžný „draft“. V tuto chvíli ještě pořád není vypořádáno několik zbývajících záležitostí a vývojáři mi potvrdili, že ve skutečnosti k onomu zmrazení formátu ještě nedošlo. Nedávno údajně běžely i konzultace s výrobci na úpravách, které by usnadnily dekodování v hardwarových blocích, ještě tedy může dojít k nějaké změně, která by kompatibilitu rozbila.

Podle vývojářů údajně tiskovou zprávu oznamující vydání specifikace vydalo PR oddělení AOMedia poněkud odtrženě od skutečného stavu schvalování formátu. Pravděpodobně proto, aby byly vyslány ty správné signály o připravenosti technologie AV1 před blízkým veletrhem NAB, který je důležitou výroční událostí pro svět videa, vysílací techniky a souvisejících oborů. Nicméně tato šalba by ve výsledku neměla situaci až zas tak měnit. Oněch problematických bodů zbývá jen pár a na jejich dotažení se usilovaně pracuje. Ač tedy ještě reálně specifikace hotová není, měla by snad být dofinalizována brzy, během několika týdnů.

Netflix O nasazení kodeku AV1 v streamování má zájem i Netflix

Nasazení AV1 je běh na delší trať

Po dokončení a skutečném zmrazení formátu by ale měla brzy být dostupná počáteční ostrá podpora přehrávání v prohlížečích a přehrávačích videa pomocí knihovny libaom (odvozené od libvpx pro VP8/VP9). AOMedia oficiálně slibuje „až o 30 % lepší“ kompresi proti konkurenčním formátům, což na internetu znamená lepší využití omezené rychlosti připojení a možnost dostat vyšší rozlišení do stejného objemu dat. Tato zlepšení by měla být výraznější ve vyšších rozlišeních.

Ovšem je třeba počítat s tím, že zpočátku formát AV1 nebude úplně praktický a tato zlepšení zůstanou nějakou dobu spíše teoretická. V tuto chvíli je enkodér libaom/libvpx v značně syrovém stavu, což znamená jednak extrémní pomalost, ale vedle toho také velmi rudimentární „rate control“, tedy optimalizaci využití datového toku. Obecně platí, že pro nový formát trvá zrání enkodérů i několik let.

Služby a produkty, v kterým se má podpora AV1 objevit Služby a produkty, v kterým se má podpora AV1 objevit

Pozitivní je, že nebudeme odkázáni jen na oficiální implementaci libaom. V tuto chvíli již existuje i separátní projekt enkodéru Rav1e, který píše jeden z vývojářů AV1 v jazyce Rust a nachystán je i další nezávislý enkodér Eve od autorů VP9 enkodéru se stejným jménem. Ten ale asi bude stejně jako Eve dostupný jen velkým streamovacím firmám. V rámci projektu FFmpeg by také měl být vyvinut nezávislý dekodér AV1, stejně jako tomu bylo v případě VP8 a VP9 (pro tyto formáty je FFmpeg výkonnější a lépe škáluje na více jader než oficiální knihovna od Googlu). Eventuálně se v procesorech a grafikách objeví i hardwarová podpora, to ale bude trvat delší dobu, nejméně rok až dva.

aomedia-av1-video-format-kodekAV1: konkurence HEVC i technologie nové generace

Formát AV1 je je do určité míry následníkem formátu VP9, který v roce 2013 uvolnil také k bezplatnému použití Google. Ovšem AV1 má podstatně širší „technologickou základnu“. Založen byl na projektu kodeku VP10 (evoluci VP9), prvcích z kodeku Thor od Cisca a experimentálního projektu Daala vyvíjeného Mozillou a Xiphem (autoři Vorbisu) a dalších příspěvcích, které se objevily poté. Přímo k vývoji nebo jako partneři se připojili mnohé další společnosti, takže na rozdíl od VP9 má AV1 skutečně širokou podporu napříč průmyslem, od výrobců hardwaru po firmy živící se streamingem videa.

bitcoin školení listopad 24

Členové konsorcia AV1 Členové konsorcia AV1, podporující formát AV1

AV1 má některé technické parametry pokročilejší než HEVC. Například velikosti bloků mohou být ještě větší, formát umožňuje použít nepravoúhlé plochy pro kompenzaci pohybu a používá se například technika predikce barevné složky z luminance (kódování je klasicky v barevném prostoru YUV), což byla technika navržená pro HEVC, ale nakonec nepoužitá. Ambicí aliance AOM je proto HEVC technologicky předstihnout. To by ostatně bylo přirozené vzhledem k několikaletému zpoždění formátu proti tomuto konkurentovi, ale i tomu, že z něj AV1 zdědilo určité inspirace skrze VP9 a VP10.

Kompresi by mělo pomoci, že AV1 používá podstatně více různých nástrojů (i když všechny z HEVC nemá), ale kvůli tomu bude enkódování se srovnatelnou sofistikovaností vyžadovat výrazně větší množství procesorového výkonu. Zhoršení komplexity nastane i při dekódování, tam ale asi bude zpomalení mírnější, dejme tomu jen dvojnásobné, kdežto komplexita enkódování na CPU se nafoukne spíše několikanásobně. Ovšem pokud byste AV1 zkoušeli nyní, nebude náročnost odpovídat předpokladům. Jak dekodéry, tak enkodéry nejsou ještě optimalizované. Oficiální libaom prý například zvládá dekódovat na highendovém procesoru Skylake-X zhruba rozlišení 1080p30 (ne s použitím všech jader, multi-threading asi ještě moc nefunguje).