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以上版本的驱动程序才可支持。
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 列表
{| class="wikitable sortable"
|-
! 显卡系列 || 核心 || PureVideo || VDPAU 支持 || 备注
|-
| Geforce FX series
| align="center"| NV4x
| align="center"| VP1
| align="center"| 不支持
| align="center"| -
|-
| Geforce 6 series
| align="center"| NV4x
| align="center"| VP1
| align="center"| 不支持
| align="center"| -
|-
| Geforce 7 series
| align="center"| G7x
| align="center"| VP1
| align="center"| 不支持
| align="center"| -
|-
| Geforce 8800 Ultra, 8800 GTS (320/640MB)
| align="center"| G80
| align="center"| VP1
| align="center"| 不支持
| align="center"| -
|-
| Geforce 8800 GTX
| align="center"| G80
| align="center"| VP1
| align="center"| 不支持
| align="center"| -
|-
| Geforce 8400 GS, 8500 GT, 8600 GT, 8600 GTS
| align="center"| G84, G86
| align="center"| VP2
| align="center"| 支持
| align="center"| -
|-
| Geforce 8800 GS, 8800 GT, 8800 GTS (512MB/1GB)
| align="center"| G92, G94
| align="center"| VP2
| align="center"| 支持
| align="center"| -
|-
| Geforce 8400 GS
| align="center"| G98
| align="center"| VP3
| align="center"| 支持
| align="center"| 请注意,只有基于 G98 核心的才支持,购买前请先确认。
|-
| Geforce 8200, 8300
| align="center"| C77
| align="center"| VP3
| align="center"| 支持
| align="center"| -
|-
| Geforce 9600 GSO, 9600 GT, 9800 GT, 9800 GTX, 9800 GTX+, 9800 GX2
| align="center"| G92, G94
| align="center"| VP2
| align="center"| 支持
| align="center"| -
|-
| Geforce GTX 260, 260 CORE 216, 280, 285, 295
| align="center"| GT200
| align="center"| VP2
| align="center"| 支持
| align="center"| -
|-
| Geforce 9400 GT, 9500 GT
| align="center"| G96
| align="center"| VP2
| align="center"| 支持
| align="center"| -
|-
| Geforce 9300M GS, 9300 GS, 9300 GE
| align="center"| C79
| align="center"| VP3
| align="center"| 支持
| align="center"| First generation to support MPEG-4 ASP (MPEG-4 Part 2)
|-
| GeForce GT 220, GT 230M, GT 240M
| align="center"| GT216
| align="center"| VP4 。目前所有的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。
参考资料
外部链接
*[http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/ NVIDIA VDPAU]
*[http://www.phoronix.com/scan.php?page=article&item=nvidia_vdpau&num=1 NVIDIA VDPAU Benchmarks]
*[http://www.phoronix.com/scan.php?page=article&item=xorg_vdpau_vaapi&num=1 A NVIDIA VDPAU Back-End For Intel's VA-API]
*[http://forum.ubuntu.org.cn/viewtopic.php?f=74&t=286315 Ubuntu 10.04 x64版编译安装ffmpeg,mplayer,x264全教程 VDPAU的应用]
评论 (0)