| VDPAU | |
|---|---|
| Original author | Nvidia |
| Developer | freedesktop.org |
| Initial release | September 17, 2009; 16 years ago (2009-09-17)[1] |
| Stable release | |
| Written in | C,C++ |
| Operating system | Cross-platform |
| Type | |
| License | MIT License |
| Website | www |
Video Decode and Presentation API for Unix (VDPAU) is a royalty-freeapplication programming interface (API) as well as its implementation asfree and open-sourcelibrary (libvdpau) distributed under theMIT License.[1] VDPAU is also supported byNvidia.[3]
The VDPAU interface is to be implemented bydevice drivers, such as theNvidia GeForce driver,nouveau, oramdgpu, to offer end-user software, such asVLC media player orGStreamer, a standardized access to availablevideo decompression acceleration hardware in the form ofapplication-specific integrated circuit (ASIC) blocks ongraphics processing units (GPU), such asNvidia'sPureVideo orAMD'sUnified Video Decoder and make use of it.
VDPAU is targeted atUnix-likeoperating systems (includingLinux,FreeBSD, andSolaris).[4][5][6]
VDPAU allows video programs to access the specialized video decoding ASIC on the GPU to offload portions of thevideo decoding process andvideo post-processing from theCPU to the GPU.[7]
Currently, the portions capable of being offloaded by VDPAU onto the GPU aremotion compensation (mo comp),inverse discrete cosine transform (iDCT),VLD (variable-length decoding) anddeblocking forMPEG-1,MPEG-2,MPEG-4 ASP (MPEG-4 Part 2),H.264/MPEG-4 AVC andVC-1,WMV3/WMV9 encoded videos.[4] Which specific codecs of these that can be offloaded to the GPU depends on the generation version of the GPU hardware.
VDPAU was originally designed by Nvidia for their PureVideoSIP block present on theirGeForce 8 series and later GPUs.[8]
On March 9, 2015, Nvidia released VDPAU version 1.0 which supportsHigh Efficiency Video Coding (HEVC) decoding for the Main, Main 4:4:4, Main Still Picture, Main 10, and Main 12 profiles.[9]
VDPAU is implemented inX11 softwaredevice drivers, but relies on acceleration features in the hardware GPU.
All Nvidia graphic cards for which the driver implements VDPAU are listed inNvidia PureVideo.[10]
S3 Graphics added VDPAU to the Linux drivers of theirChrome 400video 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.[12][13]
Intel does not offer VDPAU drivers, they only support theirVA-API. It is, however, possible to use Intel's VA-API drivers by way oflibvdpau-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]
sunxiSoCs (Allwinner) have experimental VDPAU implementation.[16]
Mesa as of v8.0 includes VDPAU for video cards that utilizeGallium3D.
As of late 2013, there is an independently developed back-end driver that in turn usesOpenGL (for drawing and scaling), and VA-API if available (for decoding).[17] It has been reported to work on someIntel graphics andAdobe 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 orFreeBSD supportsXv. 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.
VDPAU can also be used as abackend forVA-API andOpenMAX 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[32] 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 2048pixels, minimum width and height 48 pixels, and all codecs are currently limited to a maximum of 8192macroblocks (8190 for VC-1/WMV9).Partial acceleration means thatVLD (bitstream) decoding is performed on the CPU, with the GPU only performingIDCT,motion compensation anddeblocking. Complete acceleration means that the GPU performs all of VLD, IDCT, motion compensation and deblocking.
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.[8][36][37][38]
{{cite web}}: CS1 maint: archived copy as title (link)