DXVA
Encyclopedia
DirectX Video Acceleration (DXVA) is a Microsoft
API specification for the Microsoft Windows
and Xbox 360
platforms that allows video
decoding
to be hardware accelerated. The pipeline
allows certain CPU-intensive operations such as iDCT, motion compensation
and deinterlacing
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
and is currently available on Windows 98
or later, can use either the overlay rendering mode
or VMR 7/9. DXVA 2.0, available only on Windows Vista
, Windows 7, Windows 8
and later OSs, integrates with Media Foundation
(MF) and uses the Enhanced Video Renderer (EVR) present in MF.
s 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
interfaces (DDIs) that the graphic driver can implement to accelerate the operations. If the codec needs any of the supported 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
DDI, which specifies the interfaces for iDCT operations, Huffman coding
, motion compensation
, 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 DDI specifies the callbacks for deinterlacing operations. The COPP (Certified Output Protection Protocol) DDI functions allow the pipeline to be secured for DRM-protected media
, by specifying encryption
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 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.
drivers, which limit DXVA 2.0 to Windows Vista
, Windows Server 2008, Windows 7, Windows Server 2008 R2
and Windows 8
. DXVA 2.0 supports only Enhanced Video Renderer as the video renderer on Vista, Windows 7 & 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. For Windows XP
and Windows 2000
DXVA 1.0 can be used. Windows 7 supports DXVA-HD if WDDM
1.1 is supported.
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
API specification for the Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
and Xbox 360
Xbox 360
The Xbox 360 is the second video game console produced by Microsoft and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the seventh generation of video game consoles...
platforms that allows video
Digital video
Digital video is a type of digital recording system that works by using a digital rather than an analog video signal.The terms camera, video camera, and camcorder are used interchangeably in this article.- History :...
decoding
Codec
A codec is a device or computer program capable of encoding or decoding a digital data stream or signal. The word codec is a portmanteau of "compressor-decompressor" or, more commonly, "coder-decoder"...
to be hardware accelerated. The pipeline
Pipeline (software)
In software engineering, a pipeline consists of a chain of processing elements , arranged so that the output of each element is the input of the next. Usually some amount of buffering is provided between consecutive elements...
allows certain CPU-intensive operations such as iDCT, motion compensation
Motion compensation
Motion compensation is an algorithmic technique employed in the encoding of video data for video compression, for example in the generation of MPEG-2 files. Motion compensation describes a picture in terms of the transformation of a reference picture to the current picture. The reference picture...
and deinterlacing
Deinterlacing
Deinterlacing is the process of converting interlaced video, such as common analog television signals or 1080i format HDTV signals, into a non-interlaced form....
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
Video card
A video card, Graphics Card, or Graphics adapter is an expansion card which generates output images to a display. Most video cards offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors...
. DXVA 1.0, which was introduced as a standardized API with Windows 2000
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...
and is currently available on Windows 98
Windows 98
Windows 98 is a graphical operating system by Microsoft. It is the second major release in the Windows 9x line of operating systems. It was released to manufacturing on 15 May 1998 and to retail on 25 June 1998. Windows 98 is the successor to Windows 95. Like its predecessor, it is a hybrid...
or later, can use either the overlay rendering mode
Overlay
Overlay may refer to:*Overlay architecture, term used to describe ‘event architecture’ and relates to the temporary elements that supplement existing buildings and infrastructure to enable the operation of major sporting events or festivals....
or VMR 7/9. DXVA 2.0, available only on Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
, Windows 7, Windows 8
Windows 8
Windows 8 is the codename for the next version of the Microsoft Windows computer operating system following Windows 7. It has many changes from previous versions. In particular it adds support for ARM microprocessors in addition to the previously supported x86 microprocessors from Intel and AMD...
and later OSs, integrates with Media Foundation
Media Foundation
Microsoft Media Foundation is a COM-based multimedia framework pipeline and infrastructure platform for digital media in Windows Vista, Windows 7 & Windows 8...
(MF) and uses the Enhanced Video Renderer (EVR) present in MF.
Overview
The DXVA is used by software video decoderVideo codec
A video codec is a device or software that enables video compression and/or decompression for digital video. The compression usually employs lossy data compression. Historically, video was stored as an analog signal on magnetic tape...
s 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
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
interfaces (DDIs) that the graphic driver can implement to accelerate the operations. If the codec needs any of the supported 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
Video post-processing
The term post-processing is used in the video/film business for quality-improvement image processing methods used in video playback devices, , and video players software and transcoding software...
might be applied to it before being rendered to the device. The resulting pipeline is usable in a DirectShow
DirectShow
DirectShow , 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 earlier Video for Windows technology...
compatible application.
DXVA specifies the Motion Compensation
Motion compensation
Motion compensation is an algorithmic technique employed in the encoding of video data for video compression, for example in the generation of MPEG-2 files. Motion compensation describes a picture in terms of the transformation of a reference picture to the current picture. The reference picture...
DDI, which specifies the interfaces for iDCT operations, Huffman coding
Huffman coding
In computer science and information theory, Huffman coding is an entropy encoding algorithm used for lossless data compression. The term refers to the use of a variable-length code table for encoding a source symbol where the variable-length code table has been derived in a particular way based on...
, motion compensation
Motion compensation
Motion compensation is an algorithmic technique employed in the encoding of video data for video compression, for example in the generation of MPEG-2 files. Motion compensation describes a picture in terms of the transformation of a reference picture to the current picture. The reference picture...
, alpha blending, inverse quantization
Quantization (image processing)
Quantization, involved in image processing, is a lossy compression technique achieved by compressing a range of values to a single quantum value. When the number of discrete symbols in a given stream is reduced, the stream becomes more compressible. For example, reducing the number of colors...
, 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 DDI specifies the callbacks for deinterlacing operations. The COPP (Certified Output Protection Protocol) DDI functions allow the pipeline to be secured for DRM-protected media
Digital rights management
Digital rights management is a class of access control technologies that are used by hardware manufacturers, publishers, copyright holders and individuals with the intent to limit the use of digital content and devices after sale. DRM is any technology that inhibits uses of digital content that...
, by specifying encryption
Encryption
In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...
functions. The ProcAmp DDI is used to accelerate post-processing
Post-processing
Post-processing may refer to:* Differential GPS post-processing* Video post-processing, methods used in video processing and 3D graphics* Finite element model data post-processing...
video. The ProcAmp driver module sits between the hardware video renderer and the display driver and 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
DirectShow , 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 earlier Video for Windows technology...
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 support for 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, pipelines for simply decoding the media (without rendering) or post-processing and rendering (without decoding) can also be created. These features require the Windows Display Driver ModelWindows Display Driver Model
Windows Display Driver Model is the graphic driver architecture for video card drivers running Microsoft Windows versions beginning with Windows Vista....
drivers, which limit DXVA 2.0 to Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
, Windows Server 2008, Windows 7, Windows Server 2008 R2
Windows Server 2008 R2
Windows Server 2008 R2 is a server operating system produced by Microsoft. It was released to manufacturing on July 22, 2009 and launched on October 22, 2009. According to the Windows Server Team blog, the retail availability was September 14, 2009. It is built on Windows NT 6.1, the same core...
and Windows 8
Windows 8
Windows 8 is the codename for the next version of the Microsoft Windows computer operating system following Windows 7. It has many changes from previous versions. In particular it adds support for ARM microprocessors in addition to the previously supported x86 microprocessors from Intel and AMD...
. DXVA 2.0 supports only Enhanced Video Renderer as the video renderer on Vista, Windows 7 & Windows 8. (With Windows XP, DXVA-Rendering is possible with VMR9 and the well-known Overlay Mixer.) DXVA integrates with Media Foundation
Media Foundation
Microsoft Media Foundation is a COM-based multimedia framework pipeline and infrastructure platform for digital media in Windows Vista, Windows 7 & Windows 8...
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
Media Foundation
Microsoft Media Foundation is a COM-based multimedia framework pipeline and infrastructure platform for digital media in Windows Vista, Windows 7 & Windows 8...
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. For Windows XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...
and Windows 2000
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...
DXVA 1.0 can be used. Windows 7 supports DXVA-HD if WDDM
Windows Display Driver Model
Windows Display Driver Model is the graphic driver architecture for video card drivers running Microsoft Windows versions beginning with Windows Vista....
1.1 is supported.
Software support
- Media Player Classic Home Cinema
- ffdshow-tryoutsFfdshowffdshow is a media decoder and encoder mainly used for the fast and high-quality decoding of video in the MPEG-4 ASP and AVC formats, but it supports numerous other video and audio formats as well...
(Since Revision 3185) - XBMC Media Center
- BoxeeBOXEEBoxee is a cross-platform freeware HTPC software application with a 10-foot user interface and social networking features designed for the living-room TV...
- MediaPortalMediaPortalMediaPortal is an open-source media center software project, often considered an alternative to Windows Media Center. It provides a 10-foot user interface for performing typical PVR/TiVo functionality, including playing, pausing, and recording live TV; playing DVDs, videos, and music; viewing...
- MicrosoftMicrosoftMicrosoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
Windows VistaWindows VistaWindows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
/Windows 7/Windows 8Windows 8Windows 8 is the codename for the next version of the Microsoft Windows computer operating system following Windows 7. It has many changes from previous versions. In particular it adds support for ARM microprocessors in addition to the previously supported x86 microprocessors from Intel and AMD...
internal MPEG-2MPEG-2MPEG-2 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 which permit storage and transmission of movies using currently available storage media and transmission...
decoder - Nero Showtime / Nero MediaHub / Nero Kwik Media
- PowerDVDPowerDVDCyberLink PowerDVD is a media player for Microsoft Windows. Several editions of the software are sold including "Ultra", "Deluxe" and "Standard". All editions support the viewing of DVD and the Ultra edition supports Blu-ray playback, including the playback of Blu-ray 3D content.The product is...
- WinDVDWinDVDWinDVD is a commercial video player and music player software for Microsoft Windows. It enables the viewing of DVD-Video movies on the user's PC. DVD-Video backups stored on hard disk can also be played...
- Windows Media Player 11Windows Media PlayerWindows Media Player is a media player and media library application developed by Microsoft that is used for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as on Pocket PC and Windows Mobile-based devices...
(WMV3VC-1VC-1 is the informal name of the SMPTE 421M video codec standard, which was initially developed as a proprietary video format by Microsoft before it was released as a formal SMPTE standard video format on April 3, 2006...
only) - Windows Media Player 12
- Adobe FlashAdobe FlashAdobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...
version 10.3 - DivXDivXDivX is a brand name of products created by DivX, Inc. , including the DivX Codec which has become popular due to its ability to compress lengthy video segments into small sizes while maintaining relatively high visual quality.There are two DivX codecs; the regular MPEG-4 Part 2 DivX codec and the...
H.264 Decoder (version 1.2, part of the DivX Plus software) - VLC media playerVLC media playerVLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...
(DXVA 2.0 only) (since version 1.1) - CoreAVCCoreAVCCoreAVC is a proprietary codec for decoding the H.264/MPEG-4 AVC video format.The decoder is currently one of the fastest software decoders, but is slower than hardware-based ones. CoreAVC supports all H.264 Profiles except for 4:2:2 and 4:4:4.CoreAVC now supports two forms of GPU hardware...
(since version 2.5.0) - Elecard MPEG-2 PlugIn for WMP and MPEG Player
- Freemake Video ConverterFreemake Video ConverterFreemake Video Converter is a freeware video converter developed by Ellora Assets Corporation. The program is used to convert between video formats, burn and rip DVDs, burn Blu-ray, create photo slideshow and music visualization, convert online videos, and upload files to YouTube.- Features...
(Since version 2.2 beta)
See also
- Nvidia PureVideoNvidia PureVideoNvidia PureVideo is a hardware feature designed to offload video decoding processes and video post-processing from a computer's CPU hardware to Nvidia's GPU hardware series GeForce 6 and later, GeForce M series ; and Nvidia Quadro series...
- the bit-stream technology from NVIDIANVIDIANvidia is an American global technology company based in Santa Clara, California. Nvidia is best known for its graphics processors . Nvidia and chief rival AMD Graphics Techonologies have dominated the high performance GPU market, pushing other manufacturers to smaller, niche roles...
used in their graphics chips to accelerate video decoding on hardware GPU with DXVA. - UVD (Unified Video Decoder)Unified Video DecoderThe Unified Video Decoder, previously called Universal Video Decoder, or UVD in short, is the video decoding unit from ATI Technologies to support hardware decode of H.264 and VC-1 video codec standards, and being a part of ATI Avivo HD technology....
- is the video decoding bit-stream technology from ATI TechnologiesATI TechnologiesATI Technologies Inc. was a semiconductor technology corporation based in Markham, Ontario, Canada, that specialized in the development of graphics processing units and chipsets. Founded in 1985 as Array Technologies Inc., the company was listed publicly in 1993 and was acquired by Advanced Micro...
to support hardware (GPU) decode with DXVA. - Intel Clear VideoIntel Clear VideoIntel Clear Video is a hardware feature designed to offload video decoding processes and video post-processing from a computer's CPU hardware to Intel's GMA integrated graphics processors.- External links :* *...
- Intel's hardware video decoding technology - Media FoundationMedia FoundationMicrosoft Media Foundation is a COM-based multimedia framework pipeline and infrastructure platform for digital media in Windows Vista, Windows 7 & Windows 8...
(and its Enhanced Video Renderer) which DXVA 2.0 uses. - VDPAU (Video Decode and Presentation API for Unix)VDPAUVDPAU is an open source library and API originally designed by Nvidia for its GeForce 8 series and later GPU hardware, targeted at the X Window System on Unix-based operating systems...
- X-Video Bitstream Acceleration (XvBA)X-Video Bitstream AccelerationX-Video Bitstream Acceleration , designed by AMD for its Radeon GPU and Fusion APU, is an arbitrary extension of the X video extension for the X Window System on Linux operating-systems. XvBA API allows video programs to offload portions of the video decoding process to the GPU video-hardware...
, the X11 equivalent of DXVA for MPEG-2MPEG-2MPEG-2 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 which permit storage and transmission of movies using currently available storage media and transmission...
, H.264, and VC-1VC-1VC-1 is the informal name of the SMPTE 421M video codec standard, which was initially developed as a proprietary video format by Microsoft before it was released as a formal SMPTE standard video format on April 3, 2006... - X-Video Motion Compensation, the X11 equivalent for MPEG-2MPEG-2MPEG-2 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 which permit storage and transmission of movies using currently available storage media and transmission...
video codec only - Video Acceleration API (VA API)Video Acceleration APIVideo Acceleration API is an open source software library and API specification. It enables and provides access to graphics hardware acceleration for video processing. VA API is targeted at the X Window System on Unix-based operating systems...
- Video Decode Acceleration Framework is Apple Inc.s API for hardware-accelerated decoding of H.264 on Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
- VideoToolBox is an undocumented API from Apple Inc. for hardware-accelerated decoding on Apple TV and Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
10.5 or later. - OpenVideo Decode (OVD) – a new open cross-platform video acceleration API from AMD.
- OpenMAX IL (Open Media Acceleration Integration Layer)OpenMAXOpenMAX is a royalty-free, cross-platform set of C-language programming interfaces that provides abstractions for routines especially useful for audio, video, and still images...
- a royalty-free cross-platform media abstraction API from the Khronos GroupKhronos GroupThe Khronos Group is a not-for-profit member-funded industry consortium based in Beaverton, Oregon, focused on the creation of open standard, royalty-free APIs to enable the authoring and accelerated playback of dynamic media on a wide variety of platforms and devices...
External links
- DirectX Video Acceleration
- DXVAChecker, utility listing supported DXVA modes on the given computer