HOME

TheInfoList



OR:

Video Decode and Presentation API for Unix (VDPAU) is a royalty-free
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
(API) as well as its implementation as
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
() distributed under the
MIT License The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license comp ...
. VDPAU is also supported by
Nvidia Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
. The VDPAU interface is to be implemented by
device driver In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and o ...
s, such as
Nvidia GeForce driver GeForce is a brand of graphics processing units (GPUs) designed by Nvidia. As of the GeForce 40 series, there have been eighteen iterations of the design. The first GeForce products were discrete GPUs designed for add-on graphics boards, inte ...
, nouveau, amdgpu, to offer end-user software, such as
VLC media player VLC media player (previously the VideoLAN Client and commonly known as simply VLC) is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desk ...
or
GStreamer GStreamer is a pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one format, processes the ...
, a standardized access to available video decompression acceleration hardware in the form of
application-specific integrated circuit An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-effici ...
(ASIC) blocks on
graphics processing unit A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, m ...
s (GPU), such as Nvidia's PureVideo or AMD's
Unified Video Decoder Unified Video Decoder (UVD, previously called Universal Video Decoder) is the name given to AMD's dedicated video decoding ASIC. There are multiple versions implementing a multitude of video codecs, such as H.264 and VC-1. UVD was introduced wit ...
and make use of it. VDPAU is targeted at
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s (including
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
,
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, Solaris).


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 A video decoder is an electronic circuit, often contained within a single integrated circuit chip, that converts base-band analog video signals to digital video. Video decoders commonly allow programmable control over video characteristics such as ...
process and
video post-processing The term post-processing (or postproc for short) is used in the video/film business for quality-improvement image processing (specifically digital image processing) methods used in video playback devices, such as stand-alone DVD-Video players; vid ...
from the
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, a ...
to the GPU. Currently, the portions capable of being offloaded by VDPAU onto the GPU are
motion compensation Motion compensation in computing, is an algorithmic technique used to predict a frame in a video, given the previous and/or future frames by accounting for motion of the camera and/or objects in the video. It is employed in the encoding of video d ...
(mo comp), inverse discrete cosine transform (iDCT), VLD (variable-length decoding) and deblocking for
MPEG-1 MPEG-1 is a standard for lossy compression of video and audio. It is designed to compress VHS-quality raw digital video and CD audio down to about 1.5 Mbit/s (26:1 and 6:1 compression ratios respectively) without excessive quality loss, making ...
,
MPEG-2 MPEG-2 (a.k.a. H.222/H.262 as was defined by the ITU) is a standard for "the generic coding of moving pictures and associated audio information". It describes a combination of lossy video compression and lossy audio data compression methods, ...
, MPEG-4 ASP (MPEG-4 Part 2), H.264/MPEG-4 AVC and
VC-1 SMPTE 421, informally known as VC-1, is a video coding format. Most of it was initially developed as Microsoft's proprietary video format Windows Media Video 9 in 2003. With some enhancements including the development of a new Advanced Profile ...
, WMV3/
WMV9 Windows Media Video (WMV) is a series of video codecs and their corresponding video coding formats developed by Microsoft. It is part of the Windows Media framework. WMV consists of three distinct codecs: The original video compression technolo ...
encoded videos. 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. On March 9, 2015, Nvidia released VDPAU version 1.0 which supports
High Efficiency Video Coding High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a video compression standard designed as part of the MPEG-H project as a successor to the widely used Advanced Video Coding (AVC, H.264, or MPEG-4 Part 10). In comp ...
(HEVC) decoding for the Main, Main 4:4:4, Main Still Picture, Main 10, and Main 12 profiles.


Device drivers and video controllers implementing VDPAU

VDPAU is implemented in
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
software
device driver In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and o ...
s, but relies on acceleration features in the hardware GPU. All Nvidia graphic cards for which the driver implements VDPAU are listed in
Nvidia PureVideo PureVideo is Nvidia's hardware SIP core that performs video decoding. PureVideo is integrated into some of the Nvidia GPUs, and it supports hardware decoding of multiple video codec standards: MPEG-2, VC-1, H.264, HEVC, and AV1. PureVideo occ ...
.
S3 Graphics S3 Graphics, Ltd (commonly referred to as S3) was an American computer graphics company. The company sold the Trio, ViRGE, Savage 3D, and Chrome series of graphics processors. Struggling against competition from 3dfx Interactive, ATI and Nvid ...
added VDPAU to the Linux drivers of their Chrome 400
video card A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer m ...
s. 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. ATI/AMD released an open source driver for Radeon HD 4000+ graphic cards featuring VDPAU acceleration.
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 ser ...
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. Intel has stated they are considering VDPAU. sunxi
SoCs SOCS (suppressor of cytokine signaling proteins) refers to a family of genes involved in inhibiting the JAK-STAT signaling pathway. Genes * CISH * SOCS1 * SOCS2 * SOCS3 * SOCS4 * SOCS5 * SOCS6 * SOCS7 Suppressor of cytokine signaling 7 is a ...
(
Allwinner Allwinner Technology Co., Ltd is a fabless semiconductor company that designs mixed-signal systems on a chip (SoC). The company is headquartered in Zhuhai, Guangdong, China. It has a sales and technical support office in Shenzhen, Guangdong, a ...
) have experimental VDPAU implementation.
Mesa A mesa is an isolated, flat-topped elevation, ridge or hill, which is bounded from all sides by steep escarpments and stands distinctly above a surrounding plain. Mesas characteristically consist of flat-lying soft sedimentary rocks capped by a ...
as of v8.0 includes VDPAU for video cards that utilize
Gallium3D Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers. Its most im ...
.


Generic VDPAU driver

As of late 2013, there is an independently developed back-end driver that in turn uses
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
(for drawing and scaling), and VA-API if available (for decoding). It has been reported to work on some
Intel graphics Intel graphics may refer to: * Intel740, a graphics processing unit released in 1998 *Intel Extreme Graphics, a series of integrated graphics released from 2002 to 2003 * Intel Graphics Media Accelerator (GMA), a series of integrated graphics relea ...
and
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is computer software for viewing multimedia contents, executing rich Internet applications, and streaming audio and video content created on ...
. 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 FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
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

* Avidemux as of version 2.6 *
Boxee Boxee was a cross-platform freeware HTPC (Home Theater PC) software application with a 10-foot user interface and social networking features designed for the living-room TV. It enabled its users to view, rate and recommend content to their fri ...
*
FFmpeg FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing of vid ...
*
GStreamer GStreamer is a pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one format, processes the ...

Fluendo
*
MPlayer MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for DOS using ...
*
MythTV MythTV is a free and open-source home entertainment application with a simplified "10-foot user interface" design for the living room TV. It turns a computer with the necessary hardware into a network streaming digital video recorder, a digital ...
* Kodi (formerly XBMC) *
Xine xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries ...
* MLT *
Adobe Flash Adobe Flash (formerly Macromedia Flash and FutureSplash) is a multimedia software platform used for production of animations, rich web applications, desktop applications, mobile apps, mobile games, and embedded web browser video players. Flash ...
10.2 ''Stage Video'' and later versions *
VLC media player VLC media player (previously the VideoLAN Client and commonly known as simply VLC) is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desk ...
2.1 * mpv VDPAU can also be used as a backend for VA-API and
OpenMAX IL OpenMAX (Open Media Acceleration), often shortened as "OMX", is a non-proprietary and royalty-free cross-platform set of C-language programming interfaces. It provides abstractions for routines that are especially useful for processing of audio, ...
, 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).


Nvidia VDPAU Feature Sets

Nvidia VDPAU Feature Sets 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
pixel In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a raster image, or the smallest point in an all points addressable display device. In most digital display devices, pixels are the ...
s, minimum width and height 48 pixels, and all codecs are currently limited to a maximum of 8192
macroblock The macroblock is a processing unit in image and video compression formats based on linear block transforms, typically the discrete cosine transform (DCT). A macroblock typically consists of 16×16 samples, and is further subdivided into transfor ...
s (8190 for VC-1/WMV9). Partial acceleration means that
VLD french: Libéraux et démocrates flamands ouverts , abbreviation = Open Vld , logo = , leader1_title = President , leader1_name = Egbert Lachaert , foundation = 1992 (VLD)2007 (Open Vld) , predecessor = P ...
(bitstream) decoding is performed on the CPU, with the GPU only performing IDCT,
motion compensation Motion compensation in computing, is an algorithmic technique used to predict a frame in a video, given the previous and/or future frames by accounting for motion of the camera and/or objects in the video. It is employed in the encoding of video d ...
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-1 is a standard for lossy compression of video and audio. It is designed to compress VHS-quality raw digital video and CD audio down to about 1.5 Mbit/s (26:1 and 6:1 compression ratios respectively) without excessive quality loss, making ...
,
MPEG-2 MPEG-2 (a.k.a. H.222/H.262 as was defined by the ITU) is a standard for "the generic coding of moving pictures and associated audio information". It describes a combination of lossy video compression and lossy audio data compression methods, ...
,
VC-1 SMPTE 421, informally known as VC-1, is a video coding format. Most of it was initially developed as Microsoft's proprietary video format Windows Media Video 9 in 2003. With some enhancements including the development of a new Advanced Profile ...
/
WMV9 Windows Media Video (WMV) is a series of video codecs and their corresponding video coding formats developed by Microsoft. It is part of the Windows Media framework. WMV consists of three distinct codecs: The original video compression technolo ...
; 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. ; 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. ; Feature Set G : Hardware support for HEVC Main 12 (12-bit) and VP9 Profile 2 (12-bit) video decoding are added. ; Feature Set H : Feature Set H are capable of hardware-accelerated decoding of 8192x8192 (8k resolution) H.265/HEVC video streams. ;Feature Set I : Similar to feature set H . Feature Set J Feature Set J adds HEVC 444 decode support. Feature Set K Feature Set K are capable of hardware-accelerated decoding of 8192x8192 (8k resolution) AV1 MAIN Profile video streams


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.


See also

* PureVideo *
Unified Video Decoder Unified Video Decoder (UVD, previously called Universal Video Decoder) is the name given to AMD's dedicated video decoding ASIC. There are multiple versions implementing a multitude of video codecs, such as H.264 and VC-1. UVD was introduced wit ...
* DirectX Video Acceleration (DXVA) – the VDPAU equivalent API for
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
operating-system. * Video Acceleration API (VA API) – an alternative video acceleration API for Linux/UNIX operating-system. * X-Video Bitstream Acceleration (XvBA) – an alternative video acceleration API for Linux/UNIX operating-system. * X-Video Motion Compensation (XvMC) API – alternative and oldest video acceleration API for Linux/UNIX operating-system. * Distributed Codec Engine (libcde) is a
Texas Instruments Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globa ...
API for the video codec engine in
OMAP The OMAP (Open Multimedia Applications Platform) family, developed by Texas Instruments, was a series of image/ video processors. They are proprietary system on chips (SoCs) for portable and mobile multimedia applications. OMAP devices generally ...
based embedded systems *
Video Decode Acceleration Framework Video is an electronic medium for the recording, copying, playback, broadcasting, and display of moving visual media. Video was first developed for mechanical television systems, which were quickly replaced by cathode-ray tube (CRT) system ...
is Apple Inc.'s API for hardware-accelerated decoding of H.264 on
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
* VideoToolbox is an API from Apple Inc. for hardware-accelerated decoding on
Apple TV An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ancesto ...
and
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
. * OpenMAX IL (Open Media Acceleration Integration Layer) - a royalty-free cross-platform media abstraction API from the
Khronos Group The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation ...


References


External links


VDPAU (Video Decode and Presentation API for Unix) by Nvidia

NVIDIA VDPAU Benchmarks

A NVIDIA VDPAU Back-End For Intel's VA-API

VDPAU usage by MythTV
{{NVIDIA Application programming interfaces Freedesktop.org Nvidia software Video acceleration Video acceleration APIs available on Linux Video libraries Video processing X Window extensions