Skip to content

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

Tallink Takso - rahvuslik taksofirma

Täna on teadagi Priiuse põlistumise päev ja hommikul oli tore kodumajast välja astuda ning näha kuidas trikoloor lehvib. Üle linna muidugi nii kena pilt ei avanenud - nii Tallinna linn kui enamus majaomanikke olid sujuvalt tänase päeva mõtte ära unustanud. Küll aga rõõmustas silma Tallink Takso, kelle kõikidel autodel lehvisid uhkelt kaks trikoloori. Äge, nüüd on rahvusliku lennufirma kõrval ka rahvuslik taksofirma.

Kes ei teadnud, siis täna oli ka Dokumendivabaduse päev - päev millal rõhutakse avatud ja vabade andmevormingute kasutamise vajadust nii internetis kui dokumendihalduses. Näiteks kõik on ju teadlikud, et Youtube videote vaatamiseks pole flashi vaja.

Opus - uus vaba audiovorming veebi jaoks

Mingis mõttes ootamatu kooslus (Skype/Microsoft, Xiph Foundationi ja Mozilla töötajad) on oma paari-aastase tööga valmis saanud - täna kinnitas IETF Opus helivormingu internetistandardina RFC 6716.

Opus on teadlikult internetikasutuseks tehtud helivorming, mis sobib nii kitsaribaliste VoIP lahenduste kui laiaribalise muusikaedastuse jaoks ning kõigele muule, mis sinna vahele jääb. Teist sarnaselt laia spektriga vormingut hetkel sisuliselt pole (6 kuni 510 kbit/s, sämplimissagedusega 8 kuni 48 kHz) ning latentsus on ka võimalikult madalaks seatud. Tehnilises mõttes sisaldab vorming kahte eri audiokodekit (üks on arendatud Skype SILK-i baasil ning teine Xiph-i CELT-i baasil) ning kõik implementatsioonid peavad neid lõppkasutajale läbipaistvalt pruukima. Vormingukonteineriks on Ogg ning failid võivad olla kas .opus või .ogg laiendiga.

Praeguseks on tugi olemas juba Firefoxi (alates versioonist 15) ja Seamonkey (alates 2.12) brauserites, VLC meediamängijas (alates 2.0.4) ning mõlemas olulisemas meediaraamistikus (FFmpeg/Libav ja GStreamer). Ilmselt võtab ka Skype Opuse oma VoIP-kõnede jaoks kasutusele. Kes kasutab Debian Wheezy't, siis libopus0 ja opus-tools pakid lisavad arvutile selle audiovormingu toe ja mõned tarvikud.

Kõike olulisem uudis on aga see, et WebRTC spetsifikatsioon näeb ette Opuse kohustuslikku kasutamist (G.711 kõrval). WebRTC saab lähiaastatega kasvama suurimaks tehniliseks lahenduseks (standardiks), mis võimaldab veebibrauserite-vahelist suhtlust.

Opus audiovorming on avaldatud BSD-stiilis litsentsi all ning kodekitega seotud patendid on omanike poolt antud vabaks kasutamiseks.

WebM - vaba veebivideo kaks aastat hiljem

Kaks aastat tagasi avaldas Google VP8 kodeki vaba tarkvara litsentsi all ning pani aluse WebM projektile. Aasta tagasi lubas Google oma Chrome veebibrauserist eemaldada H.264 toe. Suure hooga asus Google ka kõiki Youtube videosid WebM vormingusse kodeerima. Vaba ja avatud veebivideo tulevik tundus helge.

Mis on muutunud kahe viimase aastaga?

  • H.264 on siiani Google Chrome's alles
  • Firefox, kes seni on rangelt vabade kodekite joont ajanud ning vaid Theora ja Webm kodeerimist pakkunud on lubanud lähiajal võimaldada mis iganes kodekite kasutamist, mida operatsioonisüsteem toetab (arvestades et H.264 on automaatselt kaasas Windows 7'ga oleks tegemist märgatava võiduga selle kodeki pooldajatele)
  • senini puudub raudvaraline dekoodeerimine tarbeelektroonikas (mobiiltelefonid, tahvelarvutid, jne) - Google küll õnneks on kahe aasta jooksul sellega kõvasti tööd teinud ning WebM-toega kivid leiduvad nii mõnelgi silikooniarendajal (Rockchip, Huawei, ST-Ericsson) ja küllap pole tegelikud seadmed ka enam kaugel
  • libvpx (levinuim WebM kodeki tarkvaraline implementatsioon) on arenduses jõudnud versioonini 1.1, kuid reaalajas koderimine vajab rajumapoolset raudvara - viimati libav'ga katsetades FullHD 25 fps kodeerimine toimis Inteli i7-2600 protsessoriga vaid siis kui kõik 8 lõime olid kasutusel
  • Youtube kõik materjalid pole siiani WebM vormingus saadaval - seda on kerge testida, kui keerad oma Firefoxil või Operal flashi kinni, sätid siit www.youtube.com/html5 html5 video aktiivseks ning üritad oma lemmikvodeosid või viimast moodsat kraami vaadata
  • kui muud veebivideot pakkuvad saidid loovad flashi kõrvale alternatiivi, siis on see pigem H.264, kui WebM (sh. Eestis)
  • alates versioonist 2.3.3 mängib Android tarkvaraliselt WebM-faile (praeguse Androidi ostutempoga on see 900000 uut seadet päevas)

Google Chrome loobub H.264 toest HTML5-videos

Google on teatanud, et selle aasta jooksul eemaldatakse Chrome veebibrauserist HTML5 video-elemendi H.264 videokodeki tugi. Suure tõenäosusega tähendab see ka et Youtube lõpetab videote kodeerimise H.264 kodekiga ning tulevane HTML5-põhine Youtube jääb kasutama WebM-vormingut (vp8 video+vorbis audio).

Selline otsus saabki vist olema veebivideo tulevikku määravaks kaalukeeleks - patentide ja litsentsidega piiratud H.264 ei saa olema veebivideo põhivorminguks. Selle rolli täidab WebM.

Turujaotus videokodekite vahel on peale nimetatud otsuse teostamist selline:

  • Firefox - Theora ja WebM (WebM alates versioonist 4)
  • Chrome ja Chromium - Theora ja WebM
  • Opera - Theora ja WebM
  • Safari - H.264, Theora ja WebM (ehk mida iganes QT parasjagu oskab mängida)
  • Internet Explorer - H.264 (vaikimisi) ja WebM (kui kodek on paigaldatud)

Lisaks on ülioluline, et enamus olulisemaid kiibistiku- ja protsessoritootjaid on lisanud või lisamas WebM tuge oma raudvarale ning see tähendab, et tulevased meediakeskused, nutitelefonid, tahvel- ja sülearvutid ning muud sarnased seadmed suudavad WebM videot mängida seda raudvaraliselt dekodeerides (ehk võimalikult ressursisäästlikult).

WebM nüüdsest Google Chrome arendusversioons

WebM asjaloost paar uudist:

  • alates eilsest on Google Chromes WebM (VP8+Vorbis) tugi (versioon 6.0.422.0-r48573); vaatasin sellega ka youtube.com/html5 lehel ringi (päringute lõppu lisasin &webm=1) ning tavakasutaja jaoks pole flashi ja H.264 videotega mitte mingit vahet ja minu arvates on WebM koht veebivideo tulevik üsna muretu
  • Google muutis WebM litsentsi lihtsamaks ka kasutab nüüd puhtalt BSD litsentsi

VP8 ja H.264 videokodekite võrdlus

Tänase VP8 vaba litsentsi all avaldamise kontekstis on leidunud ka üks asjalik VP8 ja H.264 videokodekite võrdlus - The first in-depth technical analysis of VP8. Kui te detailset ja pikka juttu ei viitsi lugeda, siis lõpus on lühikokkuvõte. Lisaks on olemas ka konkreetsed näited eri kodekite tulemustest.

Esimesed järeldused on igal juhul huvitavad :-)

Google avaldab VP8 kodeki vaba litsentsi all - projekt WebM

Kuulujuttudel on tihtipeale siiski kindel põhjus. Nii õnneks ka seekord - Google avaldab moodsa ja tänapäevase VP8 videokodeki sellisel viisil, et mitte ühelegi kasutajale ei teki Google poolt patendi- ja litsentsinõudeid. Litsentsiks on ülivaba BSD-stiilis litsents.

Nagu kodekist veel vähe oleks, on samadel tingimustel avaldatud ka WebM konteinervorming (VP8 video + Vorbis audio, kusjuures konteinerivormingu aluseks on teada-tuntud Матрёшка formaat, seda on lihtsalt veebi jaoks optimeeritud ja koondatud .webm faili). Kogu projekti nimi on ka WebM.

Kuigi uudis on vaid loetud arv tunde vaba, siis rong juba kihutab enam kui kiiresti:

  • avaldatud on SDK
  • olemas on esimesed vahendid kodeerimiseks (paik ffmpeg jaoks, directshow filter + mõned kommertstarvikud)
  • kohe lisandub moodul GStreameri jaoks
  • Chromiumi, Opera ja Firefoxi igaöised arendusversioonid juba oskavad WebM faile ka dekodeerida
  • nagu imeväel on Youtube beetavarianti tekkinud hulk WebM videoklippe
  • ma ei imestaks, kui loetud nädalate jooksul on nii kodeerimise kui dekodeerimise vahendis juba ilmunud ka lõppversioonidena
  • Androidi tuge lubatakse juba selle aasta lõpus
  • WebM projekti liikmeteks ja toetajateks on lisaks Googlele muude hulgas paarkümmend raud- ja tarkvarahiiglast (Oracle, Sype, Adobe, AMD, ARM, Texas Instruments, Qualcomm, jne) ning see näitab projekti mastaapi


Ühe sõnaga öeldes - suurepärane!
Mitme sõnaga öeldes - vabadus videot toota ja edastada jääb kõigile huvilistele alles ning suurem H.264 lock-in jääb ilmselt ära!

Sikutan nüüd alla Chromiumi viimase versiooni ja vaatan seda Youtube beetavarianti :-)

Lisatud 20.05.2010 00:24

Chromiumi viimane build 47700ei saanud veel WebM'ga hakkama. Firefox aga küll. Vaatasin youtube.com/html5 beetat ja filmide kvaliteet oli korralik ning enam kui piisav veebivideo jaoks. Isegi arvestades seda et nii kodeerimine kui dekodeerimine tehti toore ja optimeerimata tarkvaraga.

Lisaks on Microsoft muutnud oma eelmisel nädalal avaldatud seisukohta ning teatanud, et IE9 tunnistab html5 video puhul ka WebM faile, kui vastav DirectShow filter on paigaldatud. Küü ikka toimub kõik kiiresti. Apple poolt on veel vaikus ja eks näis, kui kauaks ;-)