DirectX Video Acceleration

Source: Wikipedia, the free encyclopedia.

DirectX Video Acceleration (DXVA) is a

video capturing and processing
operations, to be hardware-accelerated as well.

DXVA works in conjunction with the

Enhanced Video Renderer (EVR) present in MF.[1]

Overview

The DXVA is used by

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

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

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.

PVP for protected content. Windows 7 implements DXVA-HD[6] 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.[7]

Software

See also

References

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

External links