Skip to content

The future of free and open web video - AOMedia, libaom ja av1 (avx)

Alliance for Open Media (AOMedia) was launched in the beginning of last autumn as an effort of Amazon, Cisco, Google, Intel, Microsoft, Mozilla and Netflix (silently also Xiph) to create future-proof videocodec for web and other applications that is open, fast and royalty-free.

After a quiet winter there are news on the same subject:

  • AMD, ARM ja NVIDIA have joined AOMedia and in the contect of hardware implementations that is only good (I'd hope Qualcomm to sign up soon and maybe even Apple to rethink its position)
  • actual development has started and everyone can follow the commits over web
  • Google's libvpx is the starting-point of development
  • the name of core library will be libaom insted of libvpx
  • format will be called AOMedia instead of WebM
  • the generic name of videocodec will be avx instead of vpx
  • the first generation of videocodec will be called av1 (as vp8, vp9 and vp10 have been until now)
  • the first release called v0.1.0 "AOMedia Codec 1" is in the pipeline
  • the headings of commits show some inclusion of Daala
  • file container still seems to be mkv-based and audiocodecs are Vorbis and Opus

Veebivideo tulevik - AOMedia, libaom ja av1 (avx)

Sügise hakul kirjutasin Alliance for Open Media (AOMedia) projekti algatamisest. Nüüd on samal teemal ka sisulisi uudiseid:

  • AMD, ARM ja NVIDIA on liitunud AOMedia'ga ning arvestades et raudvaras tehtud implementatsioonid on üliolulised, siis see on väga hea uudis (Qualcomm'i loodaks ka samas pundis näha)
  • tegelik arendustöö on hooga käima läinud ja tulemusi saavad huvilised veebis jälgida
  • arenduse aluseks on võetud Google libvpx kood
  • uueks teegi nimeks libvpx asemel on libaom
  • vormingu uueks nimeks saab WebM asemel AOMedia
  • videokodeki üldistatud nimi vpx asemel on avx
  • videokodeki esimeseks konkreetseks nimeks saab vp8, vp9, vp10 asemel av1
  • ilmumas on esimene versioon v0.1.0 "AOMedia Codec 1"
  • commit'ide pealkirjade järgi on näha Daala koodi kaasamist
  • failikonteiner tundub olema jätkuvalt mkv-põhine ja audiokodekiteks opus ning vorbis


English version of this entry The future of free and open web video - AOMedia, libaom ja av1 (avx)

Olulised muutused vabade videokodekite arengus

Peale aastapikkust vaikust on korraga vabade videokodekite kohta tulnud palju häid uudiseid:

  • Cisco on avaldanud oma majasisese Thor-kodeki vaba tarkvara litsentsi all. Tegemist on nn järgmise põlvkonna videokodekiga. Võiks ju arvata, et tegemist on konkurendiga Xiph'i ja Mozilla arendatavale Daala'le, kuid Opuse-nimelise audiokodeki ajalugu räägib vastupidist - too loodi ka mitme firma arendustöö liitmise tulemusena (Xiph'i CELT ja Skype'i Silk) ning tulemus sai muljetavaldav. Nii Daala kui Thor on kaasatud ka suvel algatatud IETF'i NETVC standardiseerimisprojekti.
  • 01.09.15 teatasid Amazon, Cisco, Google, Intel Corporation, Microsoft, Mozilla ja Netflix Alliance for Open Media (AOMedia) projekti algatamisest. Selle eesmärgiks on luua järgmise põlvkonna meediakodekeid ja vorminguid ning teha seda viisil, et kasutajate jaoks ei teki nõudeid ei patentide ega tasuliste litsentside kontekstis (royalty free media codecs). Kõik tarkvara saab olema avaldatud Apache 2.0 litsentsi alusel. Keskendutakse nii tegelikule arendustööle kui patendi-uuringutele. Projekti toovad osalised nii Daala, Thor'i kui VP9/VP10. Saame näha kuhu see kõik viib ja kaua tegelike tulemusteni jõudmine aega võtab (räägitakse natuke enamast kui aastast). Projektiga liitunud firmade valik on väga hea - sisaldab nii enamusi suuri brauseritootjaid, suuri veebivideo-firmasid ning kaht olulist tehnoloogiafirmat.
  • Seni on vabade meediakodekite arendusest eemale hoidnud 2 olulist firmat - Apple ja Microsoft. Selles mõttes oli väga hea üllatus, et AOMedia'ga liitunute hulgas on ka Microsoft. Ja et sõnad päris tühjalt ei kõlaks, on Microsoft asunud ka reaalsetele tegudele. Alates üle-eilsest on Edge baruseri arenduse teekaardil märgitud et VP9 implementatsioon on töös ja Opuse+Vorbise oma tööde järjekorras.
  • Vabade kodekite suurim konkurent on patendialune HEVC/H.265 videokodek. Sellele on tekkinud kaks patendiorganisatsiooni (MPEG-LA ja HEVC Advance). Neist viimane on avaldanud nüüd ka oma hinnakirja ning nende arutult kallid tingimused on sisuomanikud ja suured tehnoloogiakasutajad pannud mõtlema vabade alternatiivide peale. Et pilt segasem oleks, siis on HEVC/H.265 jaoks ka kolmas patendiorganisatsioon loomisel.

WebM, Daala ja konkurendid - vaba veebivideo 2014. aasta alguses

Kirjutasime poolteist aastat tagasi WebM ja vaba veebivideo seisust ning vaatame mis on tänaseks muutunud:

  • Google sisuliselt lõpetas VP8 arenduse ning keskendus enam kui aasta tagasi VP9 arendusele - eesmärgiks VP8 ja H.264'ga võrreldes 2 korda väiksem ribalaius sama pildikvaliteedi juures (VP9 oleks seega võrreldav videokodek patendialuse H.265'ga)
  • VP9 bitivoog löödi lukku eelmise aasta jaanipäevaks ning sisuliselt samast ajast suudavad Chrome ja Chromium seda ka mängida
  • eelmise suve lõpuks asus Google aktiivselt Youtube videosid WebM VP9 varianti ümber kodeerima ning kõik VP8 materjal üle 360p videote eemaldati
  • kui kasutad youtube.com/html5 mängijat Chrome või Chromiumiga, siis esimene meediaeelistus on WebM VP9-Vorbis
  • sügisel 2013 lisasid nii libav (tulevases versioon 10's) kui ffmpeg (alates 2.1) VP9 toe oma teekidesse
  • VLC Media Player mängib VP9't alates versioonist 2.1.2
  • VP9 ja youtube.com/html5 jaoks vajalik minimaalne MSE tugi jõudis Firefoxi koodi jõulude eel ning on tavakasutajatele kasutatav alates versionist 28 (ilmub märtsis 2014)
  • konvergeerunud ja mobiilses maailmas (nutitelefonid, tahvelarvutid, nutiteleviisorid) on VP8 küll edenenud - Androidis on dekooder nõutav alates versioonist 2.3.3 ja kodeerimine alates versioonist 4.3 ja paljudesse seadmetesse on jõudnud ka raudvaraline VP8 tugi, kuid VP9 on veel liiga uus et raudvara poolel saadaval (2160p 60fps suutlik RTL sai valmis eelmise aasta lõpus), kuid tarkvaras implementeerituna mängib Androidi Chrome VP9't alates versioonist 29 ning on süsteemse teegina saadaval alates Android 4.4'st (dekodeerimine on 4.4 puhul nõutav)
  • Google üks plaan oli saada VP9 kiiresti levima seeläbi, et ta tehakse WebRTC üheks kohustuslikuks videokodekiks (nagu opus on üks kohustuslikke audiokodekeid), aga IETF (organisatsioon, mis WebRTC standardiseerimisega tegeleb) pole eri osapoolte vahelises võitluses suutnud videokodeki osas otsust teha

Konkurentide poolel:

  • on valmis saanud HVEC/H.265 videokodek 2012. aasta lõpuks (sellest ka Google kiirustamine VP9'ga) ning eelmisel aastal standardiseeritud ITU ja ISO/IEC poolt, kuid tegemist on mittevaba videokodekiga (eeldab patendinõuetega arvestamist ja litsentsitasude maksmist)
  • eelmise aasta jooksul on avaldatud palju erinevaid implementatsioone (sh 4K ja 8K kategooriates), kuid mingit olulist levimist tarbetehnoloogiatesse pole juhtunud
  • Google pole kuidagi näidanud oma eelistust HVEC/H.265 suunas - seda ei ole lisanudunud ei Androidi spetsifikatsiooni ega Youtube kasutatavate kodekite hulka ning pole võimatu, et see saab ühel hetkel kaalukeeleks turu pöördumisel VP9 suunas
  • enne sügisest IETF koosolekut, mis pidi otsustama WebRTC kohustusliku videokodeki tegi Cisco radikaalse avalduse, kus lubas maksta kõikide H.264/MPEG-4_AVC kasutajate litsentsitasud (MPEG-LA poolt seatud aastamakse ülempiiri tõttu see summa ei lähe väga ulmeliseks), kuid ka see plaan ei tundu olevat senist olukorda palju muutnud (Firefox lubas küll seda võimalust kasutada)

Samal ajal kui ISO/IEC MPEG ja ITU-T VCEG on üritanud tulevikuks läbi suruda HVEC/H.265 videokodekit ning Google ajanud oma vaba VP9 kodeki liini on Xiph (Vorbise ja Theora arendaja ning Opuse üks arendaja) ja Mozilla Foundation (Firefoxi arendaja) võtnud hoopis teise suuna:

  • Xiph'i poolt teoreetiliselt välja pakutud ülejärgmise põlvkonna videokodeki Daala arendus on suure hooga käima lükatud
  • eesmärgiks sama pildikvaliteedi juures väiksem ribalaius, kui tänaste moodsate videokodekite HVEC ja VP9 puhul
  • kui algoritmi mõttes on kõik senised MPEG-1, MPEG-2, MPEG-5, HVEC ning VP6, Theora, VP8, VP9 väga sarnased ning lähtuvad "teeme pildi ruutudeks ja siis üritame seda optimeerida" loogikast (ja on seetõttu patentide mõttes suur miiniväli), siis Daala aluseks on signaalitöötluse "lapped transform" lähenemine, mida on sama seltskond edukalt kasutanud nii Vorbis kui Opus audiokodekite juures - ei imestaks, kui selle arenduse esimesi beeta-tulemusi näeme juba sellel aastal
  • toimivat lahendust lubatakse 2015. aastaa lõpuks

Mozillal uus brauser plaanis

Mozilla üllatas täna täiega, aga siiski mitte brauseriga. Selgub et mõnda aega on koos Samsungiga arendatud uut Servo renderdusmootorit veebibrauserite jaoks (renderdusmootor on brauseri süda, mis serverilt saadud html, css, jne koodi tegelikuks veebileheks kuvab). Loomulikult on esmalt eesmärkideks tõhus, turvaline ja kaasaegne renderdusmootor Androidi-põhistele seadmetele ARM-protsessoritel. Kuid mitte miski ei välista kasutust muudel platvormidel.

Tõeliselt huvitav. Samal ajal kui Opera loobub oma renderdusmootori loomisest ja Webkiti-põhised tooted kipuvad natuke eest ära jooksma ei ole Mozilla maganud ja on edukat tulevikku plaaninud. Aeg näitab kas tegemist saab olema Nokia Webkit2-tüüpi katsetusega või pikema eduloo algusega.

Google avaldas WebRTC vaba tarkvarana

Google ostis aasta tagasi ligi 70 miljoni dollari eest firma Rootsi firma Global IP Solutions. Tegelesid nad sellise valdkonnaga nagu reaalajas toimivad video- ja audiolahendused (sealhulgas kasutati omaloodud audiokodekit iLBC). Neist erinevatest toodetest on Google nüüd loonud projekti WebRTC ning alates tänasest on see avaldatud vaba tarkvaranana (lihtsa BSD-stiilis litsentsi all). Nagu ikka, siis Google on loobunud kõikidest WebRTC'ga seotud patendi- ja litsentsinõuetest.

Miks see kõik huvitav on? Aga sellepärast, et integreerides WebRTC veebibrauserisse on veebisaitidel võimalik luua standardse html'i ja javascripti põhiseid lahendusi reaalajas toimivaks suhtluseks. Lihtsamalt öeldes on võimalik pidada veebipõhiseid videokõnesid (ja loomulikult tavalisi kõnesid) ilma lisatarkvara paigaldamise vajaduseta. Nii nagu ka WebM puhul ei ole ka siin Google üksinda - projektile on toeetust avaldanud nii Mozilla Foundation kui Opera Software (vastavalt Firefoxi ja Opera brauserite arendajad). Me ei peaks üllatuma, kui veel selle aastanumbri sees tehakse katse WebRTC laiemaks standardiseerimiseks ning kõik kolm brauseritootjat (mis kontrollivad pool turgu) on WebRTC toe oma brauseritesse lisanud.

Praegu vist ei ole hea olla Microsofti olukorras, kes kulutas 8,5 miljardit dollarit Skype ostmiseks ning ühe rakendusena nägi kindlasti ette just sedasama funktsionaalsust.

Brauserite turg, suvi 2006

Kui juba operatsioonisüsteemide analüüs tehtud, siis järgmine loogiline tegevus oli brauserite turu analüüs.

Sama valimi põhjal oli tulemus renderdusmootorite järgi:
Trident (MS Internet Explorer) - 78,10%
Gecko (Firefox, Mozilla Suite, Seamonkey, jne) - 19,29%
Presto (Opera) - 1,89%
KHTML/WebCore - (Safari, Konqueror) - 0,62%
Muud - 0,10%

Ning brauserite kaupa oleks esiviisik selline:
Microsoft Internet Explorer -78,10%
Mozilla Firefox - 17,86%
Opera - 1,89%
Mozilla Suite - 0,98%
Safari - 0,47%

Olulised kommentaarid:
- tegemist on unikaalsete kasutajate, mitte tavapärase lehevaadete põhise struktuuriga (nagu Analog, Webalizer jmt teevad), see on autoriseerimist mittekasutava veebi puhul lähim vaste reaalsetele kasutajatele
- Gecko-põhiste brauserite populaarsus on enam-vähem sarnane muu Euroopaga
- Opera on Eestis populaarsem kui arvata võiks (analüüsis sai arvestatud reaalseid Opera ua-väärtusi)
- sisuliselt on ära kadunud traditsiooniline Netscape ja Internet Explorer for Mac

Firefox ja Seamonkey - setTimeout viga parandatud

13.04.2006 välja antud Firefox 1.5.0.2 ja Seamonkey 1.0.1 versioonid sisaldavad mitmete oluliste turvavigade paranduste kõrval ka lõpuks lahenduse Firefox 1.5 ja Seamonkey 1.0 versioonidesse tehtud window.setTimeout() veale. Tegemist oli väga tüütu veaga, mis segas kõikide selliste rakenduste tööd, kus kasutatakse kliendipoolset javaskripti taimerit. Tean juhtumit, kus seetõttu oli vaja Firefox 1.5'lt tagasi kolida versioon 1.0.7'le.

Gecko, Windows, mstsc, hyperthreading ja kopeerimine

Järgnevate tingimuste kokkulangemisel oled hädas andmete kopeerimisega (tavaline copy-paste ehk lõika-aseta ei toimi):
- Firefox, Thunderbird, Mozilla Suite või Seamonkey kuulub su igapäevaste töövahendite hulka,
- sinu Windows'i töölaual on lahti mõni Remote Desktop Client aken (mstsc),
- sinu arvutil on hyperthreading protsessor.

Põhjus väga lihtne - see seltskond ei saa omavahel suheldud ning andmete sünkroniseerimine eri virtuaalsete protsessorite vahel ei toimi. Lahendus tegelikult on lihtne. Võta lahti tegumihaldur (Task Manager) ning säti sealt kõik need protsessid (mstsc, firefox, seamonkey, jne) kasutama üht protsessorit (Set affinity käsk). Kui ei viitsi seda iga kord peale programmi käivitamist teha, siis Windows 2000 Server Supplement One Resource Kit sisaldab tarviku imagecfg.exe, millega saad sama asja ette ära konfida (mstsc puhul pead nad Windowsi süsteemikataloogist ära kopeerima).

Omast kogemusest järgi proovitud ja täitsa kasutatav lahendus seniks kuni Mozilla Foundation sellele bugile lahenduse leiab (Microsoft vaevalt midagi selleks ette võtab).