VDPAU: akcelerace videa grafickou kartou

Adam Štrauch 16. 9. 2009

Desktopové prostředí se dnes hemží čím dál větším množstvím efektů, ty jsou samozřejmě náročné na výpočetní výkon a zrovna CPU má většinou lepší věci na práci než počítat multimédia. Grafické karty mají výkonu na rozdávání, tak proč toho nevyužít. Akcelerovaný desktop už tu máme, je čas zkusit akcelerované video.

Co a proč

S příchodem rychlého Internetu, velkých televizních obrazovek a velkokapacitních médií tu máme nové formáty pro ukládání obrazu, které se soustředí na uložení velmi kvalitního videa na relativně malý diskový prostor. Kvalitní video s sebou nese ale i výkonové požadavky na procesor. Dnešní procesory na tom s multimédii nejsou tak dobře, jak bychom chtěli. Přece jen jde o architekturu, která tu s námi je skoro 30 let. Operace nad multimédii dnes často přebírá grafická karta, jejíchž vývojáři nebyli zatíženi kompatibilitou a přesně věděli, na co se budou soustředit.

Ve Windows je akcelerace přehrávání videa vcelku běžná záležitost a API pro tuhle funkci je dostupné pod názvem DirectX Video Acceleration (DXVA). Využívají ho samozřejmě přehrávače, které používají standardní systémové knihovny pro přehrávání videa, takže podporu najdete všude možně. V Linuxu je to trochu složitější. První podobná funkce je X-Video Bitstream Acceleration (XvBA), která je součástí ovladačů pro grafické karty AMD a to již rok. Bohužel zatím nebyla uvolněna dokumentace a ani jedna řádka kódu pro nějaký přehrávač. Nikdo tak netuší, jak se toto API dá použít. Druhým koněm je Video Decode and Presentation API for Unix (VDPAU) od firmy NVIDIA, která je na tom o poznání lépe a podporu najdeme ve většině dnešních přehrávačů. O něm se dnes budeme bavit.

Když se rozhodneme přehrát video v přehrávači, který podporuje VDPAU, tak ten pokud zjistí, že může video přehrát grafická karta, jí ho postupně posílá přes VDPAU. O vše se pak stará grafická karta a procesor pouze přeposílá data do její paměti. Pro grafickou kartu jsou takovéto výpočty jednodušší a vy si tak můžete vychutnat plynulý chod filmu a při tom mít zátěž procesoru na několika jednotkách procent. Takto by to alespoň mělo vypadat v ideálním případě. Níže si ukážeme, že zatím musíme přehrávačům říkat, že mají VDPAU použít, a to často není pro dobro věci.

Na desktopových počítačích s výkonými procesory nemáte potřebu si komplikovat život s VDPAU. Zvlášť když třeba ve standardní instalaci Ubuntu, ale i v dalších distribucích, podpora není a je potřeba si přidat repositáře a nahradit některé balíčky. Smysl to má ale u netbooků, které mají grafickou kartu právě od firmy NVIDIA. Pak už není problém přehrát si na televizi 1080p video na televizi v nativním rozlišení.

Instalace

Instalaci ukážu na distribuci Ubuntu. Nejde o nic složitého a získáme podporu v přehrávačích:

  • mplayer
  • xine

Xine používá třeba i Totem, takže by v něm měla být podpora k dispozici také. To samé platí pro další přehrávače používající xine.

Nejdříve přidáme repositář. Ten najdeme na adrese launchpad.net/~nvi­dia-vdpau/+archive/ppa. Obsahuje ovladače, knihovny a některé přehrávače. Všechno s podporou VDPAU.

Po výběru vydání na odkazované stránce zkopírujeme vygenerovaný kód do souboru /etc/apt/sources.list. Samozřejmě můžeme použít jakoukoli jinou a třeba i klikací metodu přidávání repositářů (Systém->Správa->Zdroje softwaru). Pro 9.04 vypadá vygenerovaný kód takto:

deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main 

Teď potřebujeme přidat klíče. Jde o klíč 1024R/CEC06767. Nejjednodušší cesta, jak klíč přidat, vede přes příkazovou řádku:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CEC06767 

Pokud chcete použít nástroj „Zdroje softwaru“ z nabídky Systém->Správa, tak si stačí klíč stáhnout a naimportovat v záložce „Ověření“.

Nakonec upgradujeme systém třeba pomocí aptitude.

$ sudo aptitude update
$ sudo aptitude safe-upgrade 

A případně ještě nainstalujeme mplayer či smplayer.

Použití

Nejlepší volbou pro použití VDPAU je v aktuálním Ubuntu mplayer. Ten pracuje s VDPAU bezproblémově. Jediné co je potřeba přidat do konfiguračního souboru ~/mplayer/config jsou řádky:

vo=vdpau,xv,
vc=ffvc1vdpau,ffh264vdpau,ffmpeg12vdpau, 

Bohužel takto nakonfigurovaný mplayer nepřehraje běžná videa, která VDPAU nepřelouská, takže užitečnější udělat si alias:

alias mplayer-vdpau='mplayer -vo vdpau -vc ffvc1vdpau,ffh264vdpau,ffmpeg12vdpau' 

Podobnou fintu si můžete vytvořit i u výběru aplikace v kontextové nabídce třeba Nautilu.

Xine a všechny přehrávače na něm založené by měly používat VDPAU automaticky bez zvláštních zásahů. Totem, který používá jako backend Xine, se mi nepodařilo rozjet, ale na stránce s repositářem je krátký návod jak by to mělo jít.

Pokud nemáte rádi příkazovou řádku, tak pomůže určitě smplayer, ve kterém se dá VDPAU zapnout pouhým kliknutím.

Minibenchmark

Určitě vás zajímá, jak moc to ulehčí procesoru. Oproti dekódování h264 a zobrazení přes video výstup OpenGL v mplayeru si VDPAU vezme 10× méně procesorového času. Což je určitě dobrý výsledek. Hodnoty u VDPAU se pohybovaly od 7 do 10 % na procesoru AMD X2 2,1 GHz. U OpenGL výstupu zatížení lítalo mezi 70 a 80 %.

OpenGL:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[...]
cx        6012 74.7  2.0 340420 83404 pts/1    RLl+ 18:42   0:06 mplayer -vo gl -vc ffh264 big_buck_bunny_1080p_h264.mov
[...]

VDPAU:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[...]
cx        6146  7.9  1.1 308312 46236 pts/1    SLl+ 18:43   0:01 mplayer big_buck_bunny_1080p_h264.mov
[...]

Xv:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
[...]
cx       14526 50.5  1.4 327816 58272 pts/1    RLl+ 21:05   0:04 mplayer -vo xv -vc ffh264 big_buck_bunny_1080p_h264.mov
[...] 

U OpenGL výstupu procesor na přehrávání často nestačil a mplayer hlásil:

************************************************
**** Your system is too SLOW to play this!  ****
************************************************ 

U Xv výstupu tento problém není. VDPAU se nestará jen o dekódování videa, ale i o jeho postprocesing, což by se mělo projevit i na výsledné kvalitě zobrazení. Video přehrávané přes VDPAU bylo plynulejší a subjektivně mělo lepší obraz. Klasický procesor neměl s h264 kodekem problémy, pokud se jako video výstup použilo Xv.

Závěr

VDPAU si najde svoji cestu v budoucnu. Podpora v aplikacích sice je, ale k bezproblémové funkci to má daleko. Pokud si vyberete VDPAU, jste závislí na tom, co umí vaše karta dekódovat. Pokud konkrétní kodek neumí, čeká vás opět úprava konfigurace pro klasické přehrání. Snad přinesou zlepšení nové verze jednotlivých distribucí.

Poslední vydané ovladače měly podporu VDPAU i pro MPEG na mobilních jádrech. V této oblasti vidím pro VDPAU největší prostor. Intel Atom a podobné procesory bez kompromisů h264 videa nepřehrají a grafické jádro by jim v tomto mohlo pomoci.

Našli jste v článku chybu?
Podnikatel.cz: Česká pošta vycouvala ze služby ČP Cloud

Česká pošta vycouvala ze služby ČP Cloud

120na80.cz: Lepší poporodní sexuální život? Žádný problém

Lepší poporodní sexuální život? Žádný problém

Lupa.cz: Nechcete datacentrum? Jsou na prodej

Nechcete datacentrum? Jsou na prodej

Lupa.cz: Hackujete? Můžete mít problém sehnat práci

Hackujete? Můžete mít problém sehnat práci

DigiZone.cz: Čechy baví komedie, Slováky animace

Čechy baví komedie, Slováky animace

Lupa.cz: Online porno ničí sexuální život mladých mužů

Online porno ničí sexuální život mladých mužů

120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Lupa.cz: Kolín dá čipy na náměstí, do kontejnerů i dětem

Kolín dá čipy na náměstí, do kontejnerů i dětem

DigiZone.cz: Elektrická Formule E. Práva má Arena Sport

Elektrická Formule E. Práva má Arena Sport

DigiZone.cz: Skylink přepracoval web

Skylink přepracoval web

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Podnikatel.cz: Zajímavý paradox: Daří se vedle konkurence

Zajímavý paradox: Daří se vedle konkurence

Lupa.cz: Samořídicí taxíky jsou tu. Začíná s nimi Uber

Samořídicí taxíky jsou tu. Začíná s nimi Uber

120na80.cz: Pylová sezóna nejsilnějších alergenů končí

Pylová sezóna nejsilnějších alergenů končí

Root.cz: Čína má nejvýkonnější počítač světa

Čína má nejvýkonnější počítač světa

Měšec.cz: Investiční pasti. Děláte to, co ostatní, ale proděláváte

Investiční pasti. Děláte to, co ostatní, ale proděláváte

Podnikatel.cz: Novela zákoníku práce. Řeší homeworking

Novela zákoníku práce. Řeší homeworking

Vitalia.cz: 9 potravin, které nesmí chybět v jídelníčku těhotné

9 potravin, které nesmí chybět v jídelníčku těhotné

Podnikatel.cz: Kdy s příjmy není třeba platit zdravotko?

Kdy s příjmy není třeba platit zdravotko?