DirectX Video Acceleration (DXVA) is a
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
specification for the
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
Xbox 360
The Xbox 360 is a home video game console developed by Microsoft. As the successor to the Xbox (console), original Xbox, it is the second console in the Xbox#Consoles, Xbox series. It was officially unveiled on MTV on May 12, 2005, with detail ...
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 to be
hardware-accelerated. The
pipeline
A pipeline is a system of Pipe (fluid conveyance), pipes for long-distance transportation of a liquid or gas, typically to a market area for consumption. The latest data from 2014 gives a total of slightly less than of pipeline in 120 countries ...
allows certain
CPU-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 ...
and
deinterlacing
Deinterlacing is the process of converting interlaced video into a non-interlaced or Progressive scan, progressive form. Interlaced video signals are commonly found in analog television, VHS, Laserdisc, digital television (HDTV) when in the 1080 ...
to be offloaded to the
GPU. DXVA 2.0 allows more operations, including
video capturing and
processing operations, to be hardware-accelerated as well.
DXVA works in conjunction with the
video rendering model used by the
video card. 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, targeting the server and business markets. It is the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RT ...
(
DirectX 7), 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. It was the second operating system in the 9x line, as the successor to Windows 95. It was Software ...
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, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
,
Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
,
Windows 8
Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on August 1, 2012, made available for download via Microsoft ...
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 the context of an operating system, 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, enabli ...
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-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 ...
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 is Huffman coding, an algorithm developed by ...
,
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 ...
,
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 scan, progressive form. Interlaced video signals are commonly found in analog television, VHS, Laserdisc, digital television (HDTV) when in the 1080 ...
DDI specifies the callbacks for
deinterlacing
Deinterlacing is the process of converting interlaced video into a non-interlaced or Progressive scan, progressive form. Interlaced video signals are commonly found in analog television, VHS, Laserdisc, digital television (HDTV) when in the 1080 ...
operations. The COPP (Certified Output Protection Protocol) DDI functions allow the pipeline to be secured for
DRM-protected media, by specifying
encryption
In Cryptography law, cryptography, encryption (more specifically, Code, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the inf ...
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 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 support for
H.264 was added in
DirectX 9.0c.
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, initially LDDM as Longhorn Display Driver Model and then WVDDM in times of Windows Vista) is the graphic driver architecture for video card device driver, drivers running Microsoft Windows versions beginning with ...
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, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
,
Windows Server 2008,
Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
,
Windows Server 2008 R2 and
Windows 8
Windows 8 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on August 1, 2012, made available for download via Microsoft ...
. On
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct successor to Windows 2000 for high-end and business users a ...
and
Windows 2000
Windows 2000 is a major release of the Windows NT operating system developed by Microsoft, targeting the server and business markets. It is the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RT ...
, 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 Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
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.
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 mostly discontinuedAlthough it is discontinued by Adobe Inc., for the Chinese market it is developed by Zhongcheng and for the international enterprise market it is developed by Ha ...
v10.3 and later
*
Boxee
*
CoreAVC v2.5.0 and later
*
Daum PotPlayer
*
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
*
Media Player Classic Home Cinema
*
MediaPortal
*
mpv (DXVA 2.0 only)
*
Nero Multimedia Suite (Nero Kwik Media, Nero MediaHub, Nero Showtime)
*
Plex
*
PowerDVD
*
RealPlayer
RealPlayer, formerly RealAudio Player, RealOne Player and RealPlayer G2, is a cross-platform media player (software), media player app, developed by RealNetworks. The media player is compatible with numerous container file formats of the multimed ...
*
VLC media player
VLC media player (previously the VideoLAN Client) is a free and open-source software, free and open-source, software portability, portable, cross-platform media player software and streaming media Server (computing), server developed by the Vide ...
v1.1 and later (DXVA 2.0 only)
*
WinDVD
*
Windows Media Player
Windows Media Player (WMP, officially referred to as Windows Media Player Legacy to retronym, distinguish it from Windows Media Player (2022), the new Windows Media Player introduced with Windows 11) is the first media player (application soft ...
v6.4 and later
*
Windows Media Player 11 (
WMV3 only)
*
Windows Media Player 12
*
HandBrake
See also
*
AMD Unified Video Decoder
*
Distributed Codec Engine
*
Intel Clear Video
*
Media Foundation
*
Nvidia PureVideo
*
OpenMAX
*
VDPAU
*
Video Acceleration API
*
X-Video Bitstream Acceleration
*
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