VDPAU
VDPAU (Video Decode and Presentation API for Unix)是一個最初由NVIDIA開發的針對其GeForce 8系列以及更高系列的GPU[1][2] ,在UNIX和類UNIX系統(包括 Linux、FreeBSD和Solaris)下基於X Window系統下的開源庫(libvdpau)和API。 VDPAU的API可以讓影片播放器把一部分的影片解碼和影片圖像補償交給GPU[3][4][5]。 目前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[6]。 VDPAU被認為在X Window系統下等同於Windows下的DxVA。
原作者 | NVIDIA |
---|---|
目前版本 | 1.4(2020年4月9日 | )
作業系統 | Linux, FreeBSD, Solaris |
類型 | 函數庫 |
許可協定 | |
網站 | http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/ |
硬件驅動
每種 GPU 都需要通過 X11 軟件裝置驅動來開啟這項功能。目前只有具有第二代 PureVideo HD 功能的NVIDIA GeForce 8 流處理器在安裝有180.06 beta以上版本的驅動程式才可支援。[3] 不支援的硬件包括 GeForce 8 系列的8800GTS 320/640MB 影像記憶體版和8800 GTX。後來基於 G9x 核心的顯示卡例如8400GS和8800GTS(G92核心)都已支援。 NVIDIA 沒有計劃對當前不支援的硬件提供後續支援。[7] S3 Graphics 對它的 Chrome 400顯示卡從驅動版本14.02.17開始添加了VDPAU的支援,支援的有S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT 和 S3 Chrome 540 GTX 。 [8] Intel和ATI目前不支援VDPAU,Nvidia 希望那些GPU設計者支援開源的VDPAU庫,提供支援VDPAU影片加速的驅動並使用實例名字那樣命名:Intel和ATI的: libvdpau_intel.so和libvdpau_ati.so。 [9] Intel 已經表示會考慮 VDPAU 的支援。 [10]
Mesa 從8.0版本開始就加入了 VDPAU 支援,任何利用 Gallium3D 的顯示卡驅動都可以讓顯示卡獲得 VDPAU 支援,包括 Intel 和 AMD 的開源顯示卡驅動。[11]
NVIDIA GPU 列表
顯示卡系列 | 核心 | PureVideo | VDPAU 支援[12] | 備註 |
---|---|---|---|---|
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[13] | 支援 | 請注意,只有基於 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[14] | 支援 | - |
Geforce 9300M GS, 9300 GS, 9300 GE | C79 | VP3[13] | 支援 | 大部分用於手提電腦和板載顯示卡。 |
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[15] | 支援 | First generation to support MPEG-4 ASP (MPEG-4 Part 2) |
GeForce GT 220, GT 230M, GT 240M | GT216 | VP4[15] | 支援 | |
GeForce GT 240, GTS 250M, GTS 260M | GT215 | VP4[15] | 支援 |
NVIDIA VDPAU 功能集
不同的硬件版本支援不同不同版本和不同水平的硬件解碼[16] 。目前所有的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不支援運動補償和數據分塊。
支援的軟件
參見
- PureVideo - NVIDIA開發的使用顯示卡進行影片加速的技術。
- DirectX Video Acceleration (DxVA) (頁面存檔備份,存於互聯網檔案館) - 在 Windows 系統下與 VDPAU 對應的技術。
- X-Video Bitstream Acceleration (XvBA) (頁面存檔備份,存於互聯網檔案館) - AMD 在 Linux/UNIX 開放系統下相應的 API 。
- Video Acceleration API (VA API) (頁面存檔備份,存於互聯網檔案館) - 一種在 Linux/UNIX 開放系統下的影片加速 API。
- X-Video Motion Compensation (XvMC) API (頁面存檔備份,存於互聯網檔案館) - 一種在 Linux/UNIX 開放系統下的影片加速 API。
參考資料
- ^ Announcing libvdpau 0.2. [2011-01-19]. (原始內容存檔於2021-02-24).
- ^ NVIDIA Releases Standalone VDPAU Library. [2011-01-19]. (原始內容存檔於2021-03-08).
- ^ 3.0 3.1 Michael Larabel. NVIDIA Driver Brings PureVideo Features To Linux. Phoronix. 2008-11-14 [2009-03-13]. (原始內容存檔於2021-05-22).
- ^ Michael Larabel. NVIDIA VDPAU Benchmarks. Phoronix. 2008-11-14 [2009-03-13]. (原始內容存檔於2021-05-22).
- ^ VDPAU (Video Decode and Presentation API for Unix). [2009-06-15]. (原始內容存檔於2021-05-08).
- ^ NVIDIA 190.32 Beta Brings New VDPAU Features. [2011-01-19]. (原始內容存檔於2022-04-12).
- ^ 存档副本. [2009-01-19]. (原始內容存檔於2009-01-25).
- ^ 存档副本. [2010-02-28]. (原始內容存檔於2012-07-08).
- ^ NVIDIA's driver for X11-oriented VDPAU. [2010-12-11]. (原始內容存檔於2021-03-31).
- ^ Intel Considering VDPAU Support For X.Org Driver. [2010-12-11]. (原始內容存檔於2021-06-13).
- ^ Mesa/Gallium3D Works On VDPAU Interoperability. [2013-10-09]. (原始內容存檔於2020-12-06).
- ^ 存档副本. [2009-06-15]. (原始內容存檔於2017-09-07).
- ^ 13.0 13.1 存档副本. [2013-09-10]. (原始內容存檔於2013-05-22).
- ^ 存档副本. [2009-06-15]. (原始內容存檔於2009-02-10).
- ^ 15.0 15.1 15.2 存档副本. [2010-01-09]. (原始內容存檔於2012-03-15).
- ^ ftp://download.nvidia.com/XFree86/Linux-x86/190.53/README/appendix-h.html#vdpau-implementation-limits-decoder[永久失效連結]
- ^ 存档副本. [2009-12-21]. (原始內容存檔於2022-02-19).
- ^ 存档副本. [2009-06-26]. (原始內容存檔於2009-06-26).
- ^ Michael Larabel. MythTV Adds Support For NVIDIA VDPAU. Phoronix. 2008-11-29 [2009-03-13]. (原始內容存檔於2021-08-09).
- ^ Michael Larabel. Xine Picks Up Support For NVIDIA's VDPAU. Phoronix. 2008-12-17 [2009-03-13]. (原始內容存檔於2021-08-09).
- ^ xine-lib-1.2 hg development tree, changeset 9b68f6efb713[永久失效連結]
- ^ ddennedy. VDPAU for MLT 0.4.11 GIT version. MLT. 2009-11-30 [2009-11-30]. (原始內容存檔於2010-02-27).
- ^ 存档副本. [2011-02-20]. (原始內容存檔於2018-12-24).