VDPAU

應用程式介面

VDPAU (Video Decode and Presentation API for Unix)是一个最初由NVIDIA开发的针对其GeForce 8系列以及更高系列的GPU[2][3] ,在UNIX类UNIX系统(包括 LinuxFreeBSDSolaris)下基于X Window系统下的开源库(libvdpau)和API。 VDPAU的API可以让视频播放器把一部分的视频解码和视频图像补偿交给GPU[4][5][6]。 目前VDPAU有能力处理一部分的运动补偿离散余弦变换可变长度代码英语Variable-length_code和对使用MPEG-1MPEG-2MPEG-4 AVC(H.264)、VC-1WMV3/WMV9格式编码的视频进行环内去块滤波 。当中有一些特定的格式能否于GPU来负担取决于GPU的版本,特别是MPEG-4 ASP (MPEG-4 Part 2), Xvid / OpenDivX (DivX 4)和DivX 5格式,这些格式必须使用GeForce 200M (2xxM)系列的GPU[7]。 VDPAU被认为在X Window系统下等同于Windows下的DxVA

VDPAU
原作者NVIDIA
当前版本
  • 1.1 (2015年3月16日)[1]
編輯維基數據鏈接
操作系统Linux, FreeBSD, Solaris
类型函式库
许可协议 編輯維基數據鏈接
网站http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/

硬件驱动 编辑

每种 GPU 都需要通过 X11 软件设备驱动来开启这项功能。目前只有具有第二代 PureVideo HD 功能的NVIDIA GeForce 8 流处理器在安装有180.06 beta以上版本的驱动程序才可支持。[4] 不支持的硬件包括 GeForce 8 系列的8800GTS 320/640MB 显存版和8800 GTX。后来基于 G9x 核心的显卡例如8400GS和8800GTS(G92核心)都已支持。 NVIDIA 没有计划对当前不支持的硬件提供后续支持。[8] S3 Graphics 对它的 Chrome 400显卡从驱动版本14.02.17开始添加了VDPAU的支持,支持的有S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT 和 S3 Chrome 540 GTX 。 [9] Intel和ATI目前不支持VDPAU,Nvidia 希望那些GPU设计者支持开源的VDPAU库,提供支持VDPAU视频加速的驱动并使用实例名字那样命名:Intel和ATI的: libvdpau_intel.so和libvdpau_ati.so。 [10] Intel 已经表示会考虑 VDPAU 的支持。 [11]

Mesa 从8.0版本开始就加入了 VDPAU 支持,任何利用 Gallium3D 的显卡驱动都可以让显卡获得 VDPAU 支持,包括 Intel 和 AMD 的开源显卡驱动。[12]

NVIDIA GPU 列表 编辑

显卡系列 核心 PureVideo VDPAU 支持[13] 备注
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[14] 支持 请注意,只有基于 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[15] 支持 -
Geforce 9300M GS, 9300 GS, 9300 GE C79 VP3[14] 支持 大部分用于笔记本电脑和板载显卡。
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[16] 支持 First generation to support MPEG-4 ASP (MPEG-4 Part 2)
GeForce GT 220, GT 230M, GT 240M GT216 VP4[16] 支持
GeForce GT 240, GTS 250M, GTS 260M GT215 VP4[16] 支持

NVIDIA VDPAU 功能集 编辑

不同的硬件版本支持不同不同版本和不同水平的硬件解码[17] 。目前所有的NVIDIA VDPAU 功能集,最大视频宽度与高度为2048 像素, 最小视频宽度与高度为48 像素,并且所有编码目前限制在最大8192个宏区块 (对于VC-1/WMV是8190个). 部分加速意味着 可变长度代码英语Variable-length_code(图像)的解码在CPU执行,当GPU执行离散余弦变换运动补偿时。完全加速意味着GPU执行全部的运动补偿离散余弦变换可变长度代码英语Variable-length_code

功能集 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不支持运动补偿和数据分块。

支持的软件 编辑

参见 编辑

参考资料 编辑

  1. ^ https://www.phoronix.com/scan.php?page=news_item&px=VDPAU-Library-1.1-Released.
  2. ^ Announcing libvdpau 0.2. [2011-01-19]. (原始内容存档于2021-02-24). 
  3. ^ NVIDIA Releases Standalone VDPAU Library. [2011-01-19]. (原始内容存档于2021-03-08). 
  4. ^ 4.0 4.1 Michael Larabel. NVIDIA Driver Brings PureVideo Features To Linux. Phoronix. 2008-11-14 [2009-03-13]. (原始内容存档于2021-05-22). 
  5. ^ Michael Larabel. NVIDIA VDPAU Benchmarks. Phoronix. 2008-11-14 [2009-03-13]. (原始内容存档于2021-05-22). 
  6. ^ VDPAU (Video Decode and Presentation API for Unix). [2009-06-15]. (原始内容存档于2021-05-08). 
  7. ^ NVIDIA 190.32 Beta Brings New VDPAU Features. [2011-01-19]. (原始内容存档于2022-04-12). 
  8. ^ 存档副本. [2009-01-19]. (原始内容存档于2009-01-25). 
  9. ^ 存档副本. [2010-02-28]. (原始内容存档于2012-07-08). 
  10. ^ NVIDIA's driver for X11-oriented VDPAU. [2010-12-11]. (原始内容存档于2021-03-31). 
  11. ^ Intel Considering VDPAU Support For X.Org Driver. [2010-12-11]. (原始内容存档于2021-06-13). 
  12. ^ Mesa/Gallium3D Works On VDPAU Interoperability. [2013-10-09]. (原始内容存档于2020-12-06). 
  13. ^ 存档副本. [2009-06-15]. (原始内容存档于2017-09-07). 
  14. ^ 14.0 14.1 存档副本. [2013-09-10]. (原始内容存档于2013-05-22). 
  15. ^ 存档副本. [2009-06-15]. (原始内容存档于2009-02-10). 
  16. ^ 16.0 16.1 16.2 存档副本. [2010-01-09]. (原始内容存档于2012-03-15). 
  17. ^ ftp://download.nvidia.com/XFree86/Linux-x86/190.53/README/appendix-h.html#vdpau-implementation-limits-decoder[永久失效連結]
  18. ^ 存档副本. [2009-12-21]. (原始内容存档于2022-02-19). 
  19. ^ 存档副本. [2009-06-26]. (原始内容存档于2009-06-26). 
  20. ^ Michael Larabel. MythTV Adds Support For NVIDIA VDPAU. Phoronix. 2008-11-29 [2009-03-13]. (原始内容存档于2021-08-09). 
  21. ^ Michael Larabel. Xine Picks Up Support For NVIDIA's VDPAU. Phoronix. 2008-12-17 [2009-03-13]. (原始内容存档于2021-08-09). 
  22. ^ xine-lib-1.2 hg development tree, changeset 9b68f6efb713[永久失效連結]
  23. ^ ddennedy. VDPAU for MLT 0.4.11 GIT version. MLT. 2009-11-30 [2009-11-30]. (原始内容存档于2010-02-27). 
  24. ^ 存档副本. [2011-02-20]. (原始内容存档于2018-12-24). 

外部链接 编辑