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.

widgety

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?
Vitalia.cz: 5 důvodů, proč jet na výlov rybníka

5 důvodů, proč jet na výlov rybníka

Vitalia.cz: Inspekce našla nelegální sklad v SAPĚ. Zase

Inspekce našla nelegální sklad v SAPĚ. Zase

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

DigiZone.cz: Test LG 55UH750V aneb Cena/výkon

Test LG 55UH750V aneb Cena/výkon

Podnikatel.cz: Takhle se prodávají mražené potraviny

Takhle se prodávají mražené potraviny

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

Vitalia.cz: Jsou vegani a vyrábějí nemléko

Jsou vegani a vyrábějí nemléko

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

120na80.cz: Hrbatá prsa aneb mýty o implantátech

Hrbatá prsa aneb mýty o implantátech

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

Lupa.cz: Aukro.cz mění majitele. Vrací se do českých rukou

Aukro.cz mění majitele. Vrací se do českých rukou

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Lupa.cz: Hackeři mají data z půlmiliardy účtů Yahoo

Hackeři mají data z půlmiliardy účtů Yahoo

Podnikatel.cz: EET pro e-shopy? Postavené na hlavu

EET pro e-shopy? Postavené na hlavu