VDPAU

VDPAU (Video Decode and Presentation API for Unix)是一個最初由NVIDIA開發的針對其GeForce 8系列以及更高系列的GPU，在UNIX和類UNIX系統（包括 Linux、FreeBSD和Solaris）下基於X Window系統下的開源庫(libvdpau)和API。VDPAU的API可以讓影片播放器把一部分的影片解碼和影片圖像補償交給GPU。

目前VDPAU有能力處理一部分的運動補償、離散餘弦變換、可變長度代碼和對使用MPEG-1、MPEG-2、MPEG-4 AVC(H.264)、VC-1和WMV3/WMV9格式編碼的影片進行環內去塊濾波。當中有一些特定的格式能否於GPU來負擔取決於GPU的版本，特別是MPEG-4 ASP (MPEG-4 Part 2), Xvid / OpenDivX (DivX 4)和DivX 5格式，這些格式必須使用GeForce 200M (2xxM)系列的GPU。

VDPAU被認為在X Window系統下等同於Windows下的DxVA。

## 硬體驅動

每種 GPU 都需要通過 X11 軟體設備驅動來開啟這項功能。目前只有具有第二代 PureVideo HD 功能的NVIDIA GeForce 8 流處理器在安裝有180.06 beta以上版本的驅動程序才可支持。不支持的硬體包括 GeForce 8 系列的8800GTS 320/640MB 顯存版和8800 GTX。後來基於 G9x 核心的顯卡例如8400GS和8800GTS(G92核心)都已支持。NVIDIA 沒有計劃對當前不支持的硬體提供後續支持。

S3 Graphics 對它的 Chrome 400顯卡從驅動版本14.02.17開始添加了VDPAU的支持，支持的有S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT 和 S3 Chrome 540 GTX。

Intel和ATI目前不支持VDPAU，Nvidia 希望那些GPU設計者支持開源的VDPAU庫,提供支持VDPAU影片加速的驅動並使用實例名字那樣命名:Intel和ATI的: libvdpau_intel.so和libvdpau_ati.so。

Intel 已經表示會考慮 VDPAU 的支持。

Mesa 從8.0版本開始就加入了 VDPAU 支持，任何利用 Gallium3D 的顯卡驅動都可以讓顯卡獲得 VDPAU 支持，包括 Intel 和 AMD 的開源顯卡驅動。

### NVIDIA GPU 列表

顯卡系列｜核心｜PureVideo｜VDPAU 支持｜備註

Geforce FX series｜NV4x｜VP1｜不支持

Geforce 6 series｜NV4x｜VP1｜不支持

Geforce 7 series｜G7x｜VP1｜不支持

Geforce 8800 Ultra, 8800 GTS (320/640MB)｜G80｜VP1｜不支持

Geforce 8800 GTX｜G80｜VP1｜不支持

Geforce 8400 GS, 8500 GT, 8600 GT, 8600 GTS｜G84, G86｜VP2｜支持

Geforce 8800 GS, 8800 GT, 8800 GTS (512MB/1GB)｜G92, G94｜VP2｜支持

Geforce 8400 GS｜G98｜VP3｜支持｜請注意，只有基於 G98 核心的才支持，購買前請先確認。

Geforce 8200, 8300｜C77｜VP3｜支持

Geforce 9600 GSO, 9600 GT, 9800 GT, 9800 GTX, 9800 GTX+, 9800 GX2｜G92, G94｜VP2｜支持

Geforce GTX 260, 260 CORE 216, 280, 285, 295｜GT200｜VP2｜支持

Geforce 9400 GT, 9500 GT｜G96｜VP2｜支持

Geforce 9300M GS, 9300 GS, 9300 GE｜C79｜VP3｜支持｜大部分用於筆記型電腦和板載顯卡。

Quadro FX 360M, 370, 570, 570M, 770M, 1600M｜VP2｜支持

Quadro FX 1700, 2700M, 3600M, 3700, 4800, 5800｜VP2｜支持

Quadro NVS 130M, NVS 150M, 135M, 140M, 290, 320M｜VP2｜支持

Quadro FX 370 LP, 160M, 295, 420, 450｜G98｜VP3｜支持

GeForce GTX 260M, GTX 280M｜G92｜VP2｜支持

GeForce G210, G210M｜GT218｜VP4｜支持｜First generation to support MPEG-4 ASP (MPEG-4 Part 2)

GeForce GT 220, GT 230M, GT 240M｜GT216｜VP4｜支持

GeForce GT 240, GTS 250M, GTS 260M｜GT215｜VP4｜支持

### NVIDIA VDPAU 功能集

不同的硬體版本支持不同不同版本和不同水平的硬體解碼。目前所有的NVIDIA VDPAU 功能集,最大影片寬度與高度為2048 像素, 最小影片寬度與高度為48 像素,並且所有編碼目前限制在最大8192個宏區塊 (對於VC-1/WMV是8190個).

部分加速意味著 可變長度代碼(圖像)的解碼在CPU執行,當GPU執行離散餘弦變換 和運動補償時。完全加速意味著GPU執行全部的運動補償、離散餘弦變換、可變長度代碼

功能集 A：對H.264的完全加速。

對MPEG-1, MPEG-2, VC-1/WMV9的部分加速。

功能集 B：對 MPEG-1, MPEG-2, VC-1/WMV9 and H.264的完全加速.

所用功能集 B 硬體不能解碼以下寬度的: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 像素 H.264編碼。

功能集 C：對 MPEG-1, MPEG-2, MPEG-4 Part 2 (也叫作 MPEG-4 ASP), VC-1/WMV9 和 H.264的完全加速。

對於MPEG-4 Part 2不支持運動補償和數據分塊。

## 支持的軟體

- MPlayer
- Kodi
- GStreamer
- Boxee
- MythTV
- Xine
- MLT
- Adobe Flash 10.2 Stage Video （目前僅支持32位）
- VLC

## 參見

- PureVideo - NVIDIA開發的使用顯卡進行影片加速的技術。
- DirectX Video Acceleration (DxVA) - 在 Windows 系統下與 VDPAU 對應的技術。
- - AMD 在 Linux/UNIX 開放系統下相應的 API。
- - 一種在 Linux/UNIX 開放系統下的影片加速 API。
- - 一種在 Linux/UNIX 開放系統下的影片加速 API。

## 外部連結

- NVIDIA VDPAU
- NVIDIA VDPAU Benchmarks
- A NVIDIA VDPAU Back-End For Intel's VA-API
- Ubuntu 10.04 x64版編譯安裝ffmpeg,mplayer,x264全教程 VDPAU的應用

## 基本資料

- 作者：NVIDIA
- 軟體版本週期：1.4
- 軟體版本週期：2020年4月9日
- 作業系統：Linux, FreeBSD, Solaris
- 類型：函式庫
- 網站：http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/