Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
VDPAU
Royalty-free application programming interface and free and open-source library

Video Decode and Presentation API for Unix (VDPAU) is a royalty-free application programming interface (API) as well as its implementation as free and open-source library (libvdpau) distributed under the MIT License. VDPAU is also supported by Nvidia.

The VDPAU interface is to be implemented by device drivers, such as the Nvidia GeForce driver, nouveau, or amdgpu, to offer end-user software, such as VLC media player or GStreamer, a standardized access to available video decompression acceleration hardware in the form of application-specific integrated circuit (ASIC) blocks on graphics processing units (GPU), such as Nvidia's PureVideo or AMD's Unified Video Decoder and make use of it.

VDPAU is targeted at Unix-like operating systems (including Linux, FreeBSD, and Solaris).

We don't have any images related to VDPAU yet.
We don't have any YouTube videos related to VDPAU yet.
We don't have any PDF documents related to VDPAU yet.
We don't have any Books related to VDPAU yet.
We don't have any archived web articles related to VDPAU yet.

Functional range of the interface

VDPAU allows video programs to access the specialized video decoding ASIC on the GPU to offload portions of the video decoding process and video post-processing from the CPU to the GPU.6

Currently, the portions capable of being offloaded by VDPAU onto the GPU are motion compensation (mo comp), inverse discrete cosine transform (iDCT), VLD (variable-length decoding) and deblocking for MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Part 2), H.264/MPEG-4 AVC and VC-1, WMV3/WMV9 encoded videos.7 Which specific codecs of these that can be offloaded to the GPU depends on the generation version of the GPU hardware.

History

VDPAU was originally designed by Nvidia for their PureVideo SIP block present on their GeForce 8 series and later GPUs.8

On March 9, 2015, Nvidia released VDPAU version 1.0 which supports High Efficiency Video Coding (HEVC) decoding for the Main, Main 4:4:4, Main Still Picture, Main 10, and Main 12 profiles.9

Device drivers and video controllers implementing VDPAU

VDPAU is implemented in X11 software device drivers, but relies on acceleration features in the hardware GPU.

All Nvidia graphic cards for which the driver implements VDPAU are listed in Nvidia PureVideo.10

S3 Graphics added VDPAU to the Linux drivers of their Chrome 400 video cards. As of version 14.02.17 of its Linux device driver, VDPAU is available with the S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT and the S3 Chrome 540 GTX hardware.11

ATI/AMD released an open source driver for Radeon HD 4000+ graphic cards featuring VDPAU acceleration.1213

Intel does not offer VDPAU drivers, they only support their VA-API. It is, however, possible to use Intel's VA-API drivers by way of libvdpau-va-gl.

Nvidia hopes other GPU designers will make their products compatible with the open source VDPAU library and provide drivers with VDPAU acceleration by mentioning example names of hardware specific drivers for Intel and ATI: libvdpau_intel.so and libvdpau_ati.so.14 Intel has stated they are considering VDPAU.15

sunxi SoCs (Allwinner) have experimental VDPAU implementation.16

Mesa as of v8.0 includes VDPAU for video cards that utilize Gallium3D.

Generic VDPAU driver

As of late 2013, there is an independently developed back-end driver that in turn uses OpenGL (for drawing and scaling), and VA-API if available (for decoding).17 It has been reported to work on some Intel graphics and Adobe Flash Player.18

The accelerated scaling with just OpenGL functionality is needed mostly because of Flash player, which uses un-accelerated scaling if VDPAU is unavailable. Almost all other video software that runs on Linux or FreeBSD supports Xv. It's essential for full-screen video on slower computers without native VDPAU support.

The VDPAU to VA-API translation for HW decoding is useful with recent Intel graphics hardware, as some software supports HW decoding through VDPAU but not VA-API.

Software that supports VDPAU

VDPAU can also be used as a backend for VA-API and OpenMAX IL, which themselves cover a subset of the VDPAU capabilities; so any software that uses the VA-API or OpenMAX IL is also partly capable of using VDPAU (e.g., VLC media player).31

Nvidia VDPAU Feature Sets

Nvidia VDPAU Feature Sets32 are different hardware generations of GPU's supporting different levels of (Nvidia PureVideo) hardware decoding capabilities. For feature sets A, B and C, the maximum video width and height are 2048 pixels, minimum width and height 48 pixels, and all codecs are currently limited to a maximum of 8192 macroblocks (8190 for VC-1/WMV9). Partial acceleration means that VLD (bitstream) decoding is performed on the CPU, with the GPU only performing IDCT, motion compensation and deblocking. Complete acceleration means that the GPU performs all of VLD, IDCT, motion compensation and deblocking.

Feature Set A Supports complete acceleration for H.264 and partial acceleration for MPEG-1, MPEG-2, VC-1/WMV9. Feature Set B Supports complete acceleration for MPEG-1, MPEG-2, VC-1/WMV9 and H.264. Note that all Feature Set B hardware cannot decode H.264 for the following widths: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 pixels. Feature Set C Supports complete acceleration for MPEG-1, MPEG-2, MPEG-4 Part 2 (a.k.a. MPEG-4 ASP), VC-1/WMV9 and H.264. Global motion compensation and Data Partitioning are not supported for MPEG-4 Part 2. Feature Set D Similar to feature set C but added support for decoding H.264 with a resolution of up to 4032 × 4080 and MPEG-1/MPEG-2 with a resolution of up to 4032 × 4048 pixels. Feature Set E Similar to feature set D but added support for decoding H.264 with a resolution of up to 4096 × 4096 and MPEG-1/MPEG-2 with a resolution of up to 4080 × 4080 pixels. GPUs with VDPAU feature set E support an enhanced error concealment mode which provides more robust error handling when decoding corrupted video streams.33 Feature Set F Introduced dedicated HEVC Main (8-bit), Main 10 (10-bit) and VP9 Profile 0 (8-bit) video decoding up to 4096 × 2304 pixels resolution.34 Feature Set G Hardware support for HEVC Main 12 (12-bit) and VP9 Profile 2 (12-bit) video decoding are added.35 Feature Set H Feature Set H are capable of hardware-accelerated decoding of 8192x8192 (8k resolution) H.265/HEVC video streams.36 Feature Set I Similar to feature set H.37 Feature Set J Feature Set J adds HEVC 444 decode support.38 Feature Set K Feature Set K are capable of hardware-accelerated decoding of 8192x8192 (8k resolution) AV1 MAIN Profile video streams.39

libvdpau standalone VDPAU library

The libvdpau standalone VDPAU library is distributed by Nvidia independently of their proprietary Linux graphics driver in an effort to help the adoption of VDPAU by those outside of Nvidia. This open source library package contains a wrapper library and a debugging library allowing other manufacturers to implement VDPAU in their device drivers.40414243

See also

  • Free and open-source software portal

References

  1. "Announcing libvdpau 0.2". freedesktop.org. 2009-09-17. http://lists.freedesktop.org/archives/xorg-announce/2009-September/001036.html

  2. "GStreamer Adds NVDEC NVIDIA GPU Decoding Support - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-NVDEC-GStreamer

  3. Michael Larabel (2008-11-14). "NVIDIA Driver Brings PureVideo Features To Linux". Phoronix. Retrieved 2009-03-13. /wiki/Michael_Larabel

  4. Michael Larabel (2008-11-14). "NVIDIA VDPAU Benchmarks". Phoronix. Retrieved 2009-03-13. /wiki/Michael_Larabel

  5. "VDPAU: Video Decode and Presentation API for Unix". Nvidia. http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/index.html

  6. "Video4Linux2: Path to a Standardized Video Codec API" (PDF). Events.linusfoundation.org\accessdate=2016-05-25. Archived from the original (PDF) on 2014-01-06. Retrieved 2013-12-04. https://web.archive.org/web/20140106032317/https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf

  7. Michael Larabel (2008-11-14). "NVIDIA Driver Brings PureVideo Features To Linux". Phoronix. Retrieved 2009-03-13. /wiki/Michael_Larabel

  8. "NVIDIA Releases Standalone VDPAU Library – Phoronix". Phoronix. https://www.phoronix.com/scan.php?page=news_item&px=NzU0MA

  9. Larabel, Michael (9 March 2015). "NVIDIA Announces VDPAU 1.0 With HEVC/H.265 Decoding". Phoronix. Retrieved 9 March 2015. https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-VDPAU-1.0-Released

  10. "PureVideo Support Table" (PDF). Nvidia. Retrieved 2014-05-22. http://www.nvidia.com/docs/CP/11036/PureVideo_Product_Comparison.pdf

  11. "Archived copy". Archived from the original on 2012-07-08. Retrieved 2010-02-28.{{cite web}}: CS1 maint: archived copy as title (link) https://archive.today/20120708022205/http://drivers.s3graphics.com/en/download/drivers/chrome4x-Linux/RN_Linux_EN.txt

  12. "[PATCH] drm/radeon: UVD support for RV710-SI". Lists.freedesktop.org. 2 April 2013. Retrieved 2016-05-25. http://lists.freedesktop.org/archives/dri-devel/2013-April/036766.html

  13. "AMD Releases Open-Source UVD Video Support – Phoronix". Phoronix. Retrieved 2016-05-25. https://www.phoronix.com/scan.php?page=article&item=amd_opensource_uvd&num=1

  14. "VDPAU: X11 Window System Integration Layer". Download.nvidia.com. http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/group__api__winsys__x11.html#Driver

  15. "Intel Considering VDPAU Support For X.Org Driver – Phoronix". Phoronix. Retrieved 2016-05-25. https://www.phoronix.com/scan.php?page=news_item&px=NzA0Nw

  16. "GitHub – linux-sunxi/libvdpau-sunxi: Experimental VDPAU for Allwinner sunxi SoCs (WiP)". GitHub. Retrieved 2016-05-25. https://github.com/linux-sunxi/libvdpau-sunxi

  17. "GitHub – i-rinat/libvdpau-va-gl: VDPAU driver with OpenGL/VAAPI backend". GitHub. Retrieved 2016-05-25. https://github.com/i-rinat/libvdpau-va-gl

  18. "Adobe Flash Player Hardware Acceleration on Intel Graphics Cards". WebUpd8. 5 September 2013. Retrieved 2016-05-25. http://www.webupd8.org/2013/09/adobe-flash-player-hardware.html

  19. "Boxee blog » boxee for windows, moving up to the Major Leagues". Archived from the original on June 26, 2009. Retrieved June 26, 2009. https://web.archive.org/web/20090626184934/http://blog.boxee.tv/2009/06/23/boxee-for-windows-moving-up-to-the-major-leagues/

  20. "Fluendo's New Codecs Support VDPAU, VA-API – Phoronix". Phoronix.com. Retrieved 2016-05-25. https://www.phoronix.com/scan.php?page=news_item&px=ODEwMw

  21. Michael Larabel (2008-11-29). "MythTV Adds Support For NVIDIA VDPAU". Phoronix. Retrieved 2009-03-13. /wiki/Michael_Larabel

  22. "XBMC for Linux VDPAU – NVIDIA GPU video decoding support (now in the mainline SVN)". Xbmc.org. Archived from the original on 2009-02-28. Retrieved 2016-05-25. https://web.archive.org/web/20090228052803/http://xbmc.org/forum/showthread.php?t=45525

  23. "Kodi – Open Source Home Theater Software". Xbmc.org. Archived from the original on 2009-04-14. Retrieved 2016-05-25. https://web.archive.org/web/20090414065224/http://xbmc.org/trac/changeset/17698

  24. "XBMC Receives Mainline Support For VDPAU – Phoronix". Phoronix. https://www.phoronix.com/scan.php?page=news_item&px=NzE2Mg

  25. "XBMC Receives Mainline Support For VDPAU". Phoronix.com. 2009-03-23. Retrieved 2016-05-25. https://www.phoronix.com/scan.php?page=news_item&px=NzE2Mg

  26. Michael Larabel (2008-12-17). "Xine Picks Up Support For NVIDIA's VDPAU". Phoronix. Retrieved 2009-03-13. /wiki/Michael_Larabel

  27. "xine-lib/xine-lib-1.2: changeset 11335:9b68f6efb713". Debian.org. Archived from the original on July 8, 2012. Retrieved 2016-05-25. https://archive.today/20120708163753/http://hg.debian.org/hg/xine-lib/xine-lib-1.2/rev/9b68f6efb713

  28. ddennedy (2009-11-30). "VDPAU for MLT 0.4.11 Git version". MLT. Archived from the original on 2010-02-27. Retrieved 2009-11-30. https://web.archive.org/web/20100227024923/http://sourceforge.net/news/?group_id=96039&id=279508

  29. "Flash Player 10.2 beta – with VDPAU acceleration! : linux". reddit. December 2010. https://www.reddit.com/r/linux/comments/eeh52/

  30. "mpv Reference Manual". Retrieved 2016-04-09. https://mpv.io/manual/master/#video

  31. Michael Larabel (2009-02-03). "A NVIDIA VDPAU Back-End For Intel's VA-API". Phoronix. Retrieved 2009-03-13. /wiki/Michael_Larabel

  32. "Appendix G. VDPAU Support". Nvidia. 2016-12-14. Retrieved 2017-01-03. http://us.download.nvidia.com/XFree86/Linux-x86_64/375.26/README/vdpausupport.html#vdpau-implementation-limits

  33. "VDPAU For NVIDIA's Maxwell GPU On Linux". Phoronix.com. 2014-03-03. Retrieved 2016-05-25. https://www.phoronix.com/scan.php?page=news_item&px=MTYyMDQ

  34. "Appendix G. VDPAU Support". us.download.nvidia.com. Retrieved 2022-06-02. http://us.download.nvidia.com/XFree86/Linux-x86_64/515.48.07/README/vdpausupport.html

  35. "Appendix G. VDPAU Support". us.download.nvidia.com. Retrieved 2022-06-02. http://us.download.nvidia.com/XFree86/Linux-x86_64/515.48.07/README/vdpausupport.html

  36. http://www.nvidia.com/download/driverResults.aspx/104284/en-us Nvidia LINUX X64 (AMD64/EM64T) DISPLAY DRIVER Version:367.27 http://www.nvidia.com/download/driverResults.aspx/104284/en-us

  37. "Appendix G. VDPAU Support". us.download.nvidia.com. Retrieved 2022-06-02. http://us.download.nvidia.com/XFree86/Linux-x86_64/515.48.07/README/vdpausupport.html

  38. "Appendix G. VDPAU Support". us.download.nvidia.com. Retrieved 2022-06-02. http://us.download.nvidia.com/XFree86/Linux-x86_64/515.48.07/README/vdpausupport.html

  39. "Appendix G. VDPAU Support". us.download.nvidia.com. Retrieved 2022-06-02. http://us.download.nvidia.com/XFree86/Linux-x86_64/515.48.07/README/vdpausupport.html

  40. "NVIDIA Releases Standalone VDPAU Library – Phoronix". Phoronix. https://www.phoronix.com/scan.php?page=news_item&px=NzU0MA

  41. "[ANNOUNCE] libvdpau 0.2". Lists.freedesktop/org. 17 September 2009. Retrieved 2016-05-25. http://lists.freedesktop.org/archives/xorg-announce/2009-September/001036.html

  42. "NVIDIA Proposes VDPAU For DRI2 Patches – Phoronix". Phoronix. Retrieved 2016-05-25. https://www.phoronix.com/scan.php?page=news_item&px=NzYzNg

  43. "[PULL] Add VDPAU drivers to the server's DRI2 implementation". xorg. 23 October 2009. Retrieved 2016-05-25. http://lists.x.org/archives/xorg-devel/2009-October/003056.html

  44. "VideoToolbox - Apple Developer Documentation". developer.apple.com. Retrieved 2018-08-05. https://developer.apple.com/documentation/videotoolbox