Video Acceleration

From dankwiki
Jump to: navigation, search

Linux offers access to video accelerators through programs like mplayer, VAAPI and vlc.

X-Video

Offloads 2D scaling and YUV colorspace conversions. Use xvinfo to determine Xv support:

X-Video Extension version 2.2
screen #0
  Adaptor #0: "NV17 Video Texture"
    number of ports: 32
    port base: 313
    operations supported: PutImage 
    supported visuals:
      depth 24, visualID 0x21
      depth 24, visualID 0x24
      depth 24, visualID 0x25
      depth 24, visualID 0x26...

XvMC

MPEG-2 and MPEG-4 offloading (NVIDIA's closed driver only supports MPEG-2, prefering VDPAU) via motion compensation and iDCT offload. Extends the Xv extension, using XvPorts. The 1.0 API specification was introduced in 2000.

VAAPI

The Video Acceleration API, a vendor-independent replacement for XvMC. It has backends for both VDPAU and XvBA.

VDPAU

NVIDIA's proprietary X.org video acceleration API, comparable to Microsoft's DXVA. It is independent from CUDA. Builds atop NVIDIA's PureVideo. On Debian, I have to manually link libvdpau. From /usr/lib:

sudo ln -s vdpau/libvdpau_nvidia.so.260.19.29 libvdpau_nvidia.so
sudo ln -s vdpau/libvdpau_trace.so.260.19.29 libvdpau_trace.so

XvBA

ATI's answer to VDPAU, built atop ATI's Unified Video Decoder.

See Also