Video Decode and Presentation API for Unix (VDPAU)

VDPAU è un'API sviluppata da NVIDIA che permette agli utenti X-Window su sistemi Unix-like (Linux, Solaris e OpenBSD) di utilizzare un sottoinsieme delle funzionalità della propria tecnologia Pure Video HD.

Secondo l'annuncio su NVnews, VDPAU:

  • definisce un'API per la decodifica accelerata dalla GPU dei formati MPEG-1, MPEG-2, H.264 e VC-1
  • definisce un'API per le operazioni di post-processamento del video decodificato: deinterlacciamento temporale e spaziale, telecinema inverso e riduzione del rumore
  • definisce un'API per la presentazione del video finale basata su time-stamp
  • definisce un'API per la composizione di sotto-figure, OSD ed altri elementi dell'interfaccia utente

Per gli utenti Windows NVIDIA ha utilizzato l'API DXVA sviluppata da Microsoft

ATI sta sviluppando per i propri prodotti un'API concorrente chiamata XVBA

Supporto Hardware

L'attuale implementazione richiede schede che supportano la tecnologia Pure Video HD di seconda generazione: come minimo appartenenti alla serie GeForce 8 (con qualche eccezione).

NVIDIA ha invitato altri produttori di schede video ad implementare il supporto a VDPAU per i propri prodotti. S3 Graphics ha rilasciato il 27 Giugno 2009 la versione 14.02.17 dei driver per la propria serie Chrome 500 che abilitano il supporto a VDPAU.

Supporto del driver

La nuova API è stata introdotta a partire dalla beta pubblica del driver proprietario 180.06.

L'autore ha provato il supporto a VDPAU del driver 180.60.

Supporto delle applicazioni

mplayer & ffmepg

NVIDIA ha sviluppato delle patch per MPlayer e FFmpeg che abilitano il supporto alla nuova API, come esempio di applicazione video che utilizza VDPAU.

Installazione su Gentoo

  • Se necessario, aggiornare l'albero di Portage
    # emerge --sync
  • Installate i driver proprietari, seguendo le istruzioni sul sito di Gentoo. Non dimenticate di abilitare il driver proprietario, scrivendo nel file /etc/make.conf
    VIDEO_CARDS="nvidia"
  • Attivare il flag USE locale vdpau per MPlayer ed FFmpeg
  • Installare MPlayer
    # emerge --newuse mplayer

Installazione su Ubuntu

L'ultima versione di ffmpeg presente nei repository ufficiali di Ubuntu 9.10 (Karmic Koala) dovrebbe essere compilata col supporto a VDPAU.

$ apt-get install mplayer

Al termine della installazione occorre assicurasi che vdpau sia presente nell'elenco dei driver di uscita disponibili

$ mplayer -vo help

Utilizzo

Devi utilizzare il driver di uscita vdpau ed uno dei codec che supportano VDPAU

$ mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau,ffwmv3vdpau,ffvc1vdpau, <file>

la virgola alla fine dell'opzione -vc permette ad MPlayer di utilizzare i CODEC di default, quando quelli indicati non siano adeguati (es. non supportano il formato DivX)

Tabella dei CODEC
CODEC Descrizione
ffmpeg12vdpau MPEG-1/2 video (VDPAU acceleration)
ffh264vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)
ffwmv3vdpau Windows Media Video 9 VDPAU
ffvc1vdpau SMPTE VC-1 VDPAU

Si può evitare di digitare ogni volta le medesime opzioni, mettendole all'interno del file ~/.mplayer/config.

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

Flash Player

Sul sito di Adobe è stato aperto un ticket per richiedere il supporto a VDPAU in Flash Player. Effettivamente sarebbe una feature davvero utile, perché YouTube ha adottato la codifica H.264 per i video in qualità HQ ed HD.

Prestazioni

L'offload verso la GPU permette di ridurre considerevolmente il carico di lavoro sulla CPU. Provate a scaricare da YouTube un video in qualità HD (formato H.264). Tenete aperto il monitor di sistema e riproducete il filmato con MPlayer senza utilizzare l'accelerazione hardware:

$ mplayer -vo xv -vc ffh263 <video>

Ripetete l'esperimento utilizzando la nuova API

$ mplayer -vo vdpau -vc ffh264vdpau <video>

Dovreste vedere una drastica riduzione dell'utilizzazione della CPU.

L'utilizzo della tecnologia Pure Video HD dovrebbe risultare anche in immagini di qualità superiore.

Esporta pagina in formato Open Document