Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Overview  



1.1  DXVA on Windows Vista and later  



1.1.1  DXVA2 implementations: native and copy-back  









2 Software  





3 See also  





4 References  





5 External links  














DirectX Video Acceleration






Deutsch
Español

Nederlands

Русский
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free 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 (DirectX 7), and is currently available on Windows 98 or later, can use either the overlay rendering modeorVMR 7/9.[1] 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.[1]

Overview[edit]

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 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 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.[2][3] It also includes three sub-specifications: Deinterlacing DDI, COPP DDI and ProcAmp DDI.[4] 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 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[edit]

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.[5] 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 drivers, which limits DXVA 2.0 to Windows Vista, Windows Server 2008,[1][5] Windows 7, Windows Server 2008 R2 and Windows 8. On Windows XP and Windows 2000, 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.[1] (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.[1] DXVA 2.0 does not include the COPP DDI, rather it uses PVP for protected content. Windows 7 implements DXVA-HD[6] if the driver complies with WDDM 1.1.

DXVA2 implementations: native and copy-back[edit]

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.[7]

Software[edit]

See also[edit]

References[edit]

  1. ^ a b c d e "DirectX Video Acceleration 2.0". Retrieved 2007-10-24.
  • ^ "Introduction to DirectX VA". Archived from the original on 2008-04-23. Retrieved 2007-10-24.
  • ^ "Microsoft DirectX Video Acceleration (DirectX VA) support". Retrieved 2007-10-24.
  • ^ "DirectX Video Acceleration". Archived from the original on 2008-04-08. Retrieved 2007-10-24.
  • ^ a b "What's New in DirectShow". Retrieved 2007-10-24.
  • ^ "DXVA-HD (Windows)". msdn.microsoft.com. Retrieved 21 April 2018.
  • ^ S, Ganesh T. "ASRock's High-End Vision 3D 252B HTPC Review". anandtech.com. Retrieved 21 April 2018.
  • ^ "CoreAVC Changelog | CoreCodec". Archived from the original on 2011-07-04. Retrieved 2011-04-09.
  • ^ "Daum tv팟". tvpot.daum.net. Archived from the original on 22 May 2017. Retrieved 21 April 2018.
  • ^ "VLC GPU Decoding - VideoLAN Wiki". wiki.videolan.org. Retrieved 21 April 2018.
  • ^ "How to turn off the hardware acceleration on Windows Media Player".
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=DirectX_Video_Acceleration&oldid=1230081449"

    Categories: 
    Microsoft application programming interfaces
    DirectX
    Video acceleration
    Device drivers
    Hardware acceleration
     



    This page was last edited on 20 June 2024, at 14:30 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki