DirectX Video Acceleration (DXVA) is a
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
API specification for the
Microsoft Windows and
Xbox 360
The Xbox 360 is a home video game console developed by Microsoft. As the successor to the original Xbox, it is the second console in the Xbox series. It competed with Sony's PlayStation 3 and Nintendo's Wii as part of the seventh generati ...
platforms that allows
video
Video is an Electronics, electronic medium for the recording, copying, playback, broadcasting, and display of moving picture, moving image, visual Media (communication), media. Video was first developed for mechanical television systems, whi ...
decoding
Decoding or decode may refer to: is the process of converting code into plain text or any format that is useful for subsequent processes.
Science and technology
* Decoding, the reverse of encoding
* Parsing, in computer science
* Digital-to-analog ...
to be
hardware-accelerated. The
pipeline allows certain
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, and ...
-intensive operations such as
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
deinterlacing
Deinterlacing is the process of converting interlaced video into a non-interlaced or progressive form. Interlaced video signals are commonly found in analog television, digital television (HDTV) when in the 1080i format, some DVD titles, and a ...
to be offloaded to the
GPU. DXVA 2.0 allows more operations, including
video capturing
Video capture is the process of converting an analog video signal—such as that produced by a video camera, DVD player, or television tuner—to digital video and sending it to local storage or to external circuitry. The resulting digital data ...
and
processing operations, to be hardware-accelerated as well.
DXVA works in conjunction with the
video rendering model used by the
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 mo ...
. DXVA 1.0, which was introduced as a standardized API with
Windows 2000
Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 4.0, and was released to manufacturing on December 15, 1999, and was official ...
and is currently available on
Windows 98
Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. The second operating system in the 9x line, it is the successor to Windows 95, and was released ...
or later, can use either the
overlay rendering mode or
VMR 7/9.
DXVA 2.0, available only on
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
,
Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearl ...
,
Windows 8
Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on August 1, 2012; it was subsequently made available for download via MSDN and TechNet on August 15, 2012, and later to ...
and later OSs, integrates with
Media Foundation (MF) and uses the
Enhanced Video Renderer (EVR) present in MF.
Overview
The DXVA is used by
software video decoders to define a codec-specific pipeline for hardware-accelerated decoding and rendering of the codec. The pipeline starts at the CPU which is used for parsing the media stream and conversion to DXVA-compatible structures. DXVA specifies a set of operations that can be hardware-accelerated and
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 ...
interfaces (DDIs) that the
graphic driver can implement to accelerate the operations. If the codec needs to do any of the defined operations, it can use these interfaces to access the hardware-accelerated implementation of these operations. If the graphic driver does not implement one or more of the interfaces, it is up to the codec to provide a software fallback for it. The decoded video is handed over to the hardware video renderer, where further
video post-processing might be applied to it before being rendered to the device. The resulting pipeline is usable in a
DirectShow
DirectShow (sometimes abbreviated as DS or DShow), codename Quartz, is a multimedia framework and API produced by Microsoft for software developers to perform various operations with media files or streams. It is the replacement for Microsoft's e ...
-compatible application.
DXVA specifies the
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 ...
DDI, which specifies the interfaces for
iDCT operations,
Huffman coding
In computer science and information theory, a Huffman code is a particular type of optimal prefix code that is commonly used for lossless data compression. The process of finding or using such a code proceeds by means of Huffman coding, an algor ...
,
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 ...
,
alpha blending, inverse
quantization,
color space conversion and frame-rate conversion operations, among others.
It also includes three sub-specifications: Deinterlacing DDI, COPP DDI and ProcAmp DDI. The
Deinterlacing
Deinterlacing is the process of converting interlaced video into a non-interlaced or progressive form. Interlaced video signals are commonly found in analog television, digital television (HDTV) when in the 1080i format, some DVD titles, and a ...
DDI specifies the callbacks for
deinterlacing
Deinterlacing is the process of converting interlaced video into a non-interlaced or progressive form. Interlaced video signals are commonly found in analog television, digital television (HDTV) when in the 1080i format, some DVD titles, and a ...
operations. The COPP (Certified Output Protection Protocol) DDI functions allow the pipeline to be secured for
DRM-protected media, by specifying
encryption
In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can dec ...
functions. The ProcAmp DDI is used to accelerate
post-processing video. The ProcAmp driver module sits between the hardware video renderer and the display driver, and it provides functions for applying post-processing filters on the decompressed video.
The functions exposed by DXVA DDIs are not accessible directly by a
DirectShow
DirectShow (sometimes abbreviated as DS or DShow), codename Quartz, is a multimedia framework and API produced by Microsoft for software developers to perform various operations with media files or streams. It is the replacement for Microsoft's e ...
client, but are supplied as
callback functions to the video renderer. As such, the renderer plays a very important role in anchoring the pipeline.
DXVA on Windows Vista and later
DXVA 2.0 enhances the implementation of the video pipeline and adds a host of other DDIs, including a Capture DDI for video capture. The DDIs it shares with DXVA 1.0 are also enhanced with the ability to use hardware acceleration of more operations. Also, the DDI functions are directly available to callers and need not be mediated by the video renderer.
As such, a program can also create a pipeline for simply decoding the media (without rendering) or post-processing and rendering (without decoding). These features require the
Windows Display Driver Model
Windows Display Driver Model (WDDM) is the graphic driver architecture for video card device driver, drivers running Microsoft Windows versions beginning with Windows Vista.
It is a replacement for the previous Windows 2000 and Windows XP display ...
drivers, which limits DXVA 2.0 to
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
,
Windows Server 2008
Windows Server 2008 is the fourth release of the Windows Server operating system produced by Microsoft as part of the Windows NT family of the operating systems. It was released to manufacturing on February 4, 2008, and generally to retail on F ...
,
Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearl ...
,
Windows Server 2008 R2
Windows Server 2008 R2 is the fifth version of the Windows Server operating system produced by Microsoft and released as part of the Windows NT family of operating systems. It was released to manufacturing on July 22, 2009, and became generally ...
and
Windows 8
Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on August 1, 2012; it was subsequently made available for download via MSDN and TechNet on August 15, 2012, and later to ...
. On
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
and
Windows 2000
Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 4.0, and was released to manufacturing on December 15, 1999, and was official ...
, programs can use DXVA 1.0. DXVA 2.0 allows
Enhanced Video Renderer as the video renderer only on Vista, Windows 7, and Windows 8.
(With Windows XP, DXVA-Rendering is possible with VMR9 and the well-known Overlay Mixer.) DXVA integrates with
Media Foundation and allows DXVA pipelines to be exposed as ''Media Foundation Transforms'' (''MFTs''). Even decoder pipelines or post-processing pipelines can be exposed as MFTs, which can be used by the
Media Foundation topology loader to create a full media playback pipeline. DXVA 1.0 is emulated using DXVA 2.0.
DXVA 2.0 does not include the COPP DDI, rather it uses
PVP for protected content.
Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearl ...
implements DXVA-HD if the driver complies with
WDDM 1.1.
DXVA2 implementations: native and copy-back
DXVA2 implementations come in two variants: native and
copy-back
A CPU cache is a hardware cache used by the central processing unit (CPU) of a computer to reduce the average cost (time or energy) to access data from the main memory. A cache is a smaller, faster memory, located closer to a processor core, which ...
.
With native implementation, the decoded video stays in GPU memory until it has been displayed. The video decoder must be connected to the video renderer with no intermediary processing filter. The video renderer must also support DXVA, which gives less freedom in the choice of renderers.
With copy-back implementation, the decoded video is copied from GPU memory back to the CPU's memory. This implementation doesn't have the limitations mentioned above and acts similarly to a normal software decoder; however, video stuttering will occur if the GPU is not fast enough to copy its memory back to the CPU's memory.
Native mode is advantageous unless there is a need for customized processing, as the additional copy-back operations will increase GPU memory load.
Software
*
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. Fla ...
v10.3 and later
*
Boxee
*
CoreAVC v2.5.0 and later
*
Daum PotPlayer
PotPlayer is a multimedia software player developed for the Microsoft Windows operating system by South Korean Internet company Kakao (formerly Daum Communications). It competes with other popular Windows media players such as VLC media player, ...
*
DivX H.264 Decoder v1.2 and later
*DVDFab Media Player 3
*
ffdshow-tryouts revision 3185 and later
*
Freemake Video Converter v2.2 and later
*
Kodi
KODI (1400 AM) is a radio station broadcasting a news/talk format. Licensed to Cody, Wyoming, United States, the station is currently owned by the Big Horn Radio Network, a division of Legend Communications of Wyoming, LLC, and features prog ...
*
Media Player Classic Home Cinema
*
MediaPortal
*
mpv (DXVA 2.0 only)
*
Nero Multimedia Suite (Nero Kwik Media, Nero MediaHub, Nero Showtime)
*
Plex
*
PowerDVD
*
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 d ...
v1.1 and later (DXVA 2.0 only)
*
WinDVD
*
Windows Media Player 11 (
WMV3 only)
*
Windows Media Player 12
Windows Media Player (WMP) is the first media player and media library application that was developed by Microsoft for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as on ...
*
HandBrake
See also
*
AMD Unified Video Decoder
*
Distributed Codec Engine
*
Intel Clear Video
*
Media Foundation
*
Nvidia PureVideo
*
OpenMAX
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, ...
*
VDPAU
*
Video Acceleration API
*
X-Video Bitstream Acceleration
X-Video Bitstream Acceleration (XvBA), designed by AMD Graphics for its Radeon GPU and APU, is an arbitrary extension of the X video extension (Xv) for the X Window System on Linux operating-systems. XvBA API allows video programs to offload por ...
*
X-Video Motion Compensation
References
External links
DirectX Video Acceleration utility listing DXVA modes of which the given computer is capable
{{DEFAULTSORT:Directx Video Acceleration
Microsoft application programming interfaces
Video Acceleration DirectX Video Acceleration
Video acceleration
Device drivers
Hardware acceleration