DXVA

From BakaBT Wiki
Jump to: navigation, search

This article is meant to give you a brief explanation of what DXVA is and why it is benificial if you can use it.

Contents

Overview

DXVA, or DirectX Video Accelleration, is a system built into Windows operating systems since Windows XP that allows programs, if they support it, to offload the decoding of certain media codecs to the GPU. Doing so reduces the strain on the CPU and allows for even High Definition content to be played on a relatively weak system.

Why offload?

In order to display it to you the program playing it must first decode the file and reassemble the image. The decoding process requires quite intensive calculations and while for small resolutions at low quality a modern CPU can handle it, high resoltion and high quality encodes, such as 1080P with H.264, can require such enormous amount of calculation that even modern CPUs can't handle it, resulting in image stuttering, artifacts and dropped frames. Media is almost always encoded in one format or another using one codec or another in order to save space.

What is a monstrous task for even the best CPU becomes a cakewalk for even the weakest GPU. Fortunately modern computers usually come equipped with a GPU: Graphics Processing Unit. As luck has it, the decoding of media codecs such as H.264 can be parallelised into the calculating abilities of a GPU, allowing the GPU to calculate it. To compare: a normal CPU nowadays has 2-4 cores that can calculate in parallel, a GPU has hundreds of them. One of the main capabilities however is to do specific calculations greatly parallellised. While normally used for rendering graphics, in essence a GPU is a processor just like your CPU is, only it supports a different and much more limited amount of capabilities.

This way people that do not have a strong CPU can still view 1080P content.

DXVA Versions

DXVA has 2 versions:

  • DXVA 1.0: supported in Windows XP and Windows 2000. Allows basic offloading of MPEG2 and standard definition codecs.
  • DXVA 2.0: supported in Windows Vista and Windows 7. Allows offloading of much more HD content such as VP-1 and H.264.

What do I need to use DXVA?

2 Things: a GPU that allows the calculations to be offloaded to it, and a program that is able to use DXVA.

Graphics cards

Both ATI and nVidia have graphics cards that support offloading, however not all GPUs support the same offload capabilities.

  • ATI: called UVD or Unified Video Decoder. Supports offloading of H.264/AVC and VC-1. Supported in Radeon HD 2xxx and up. Comes in 3 versions, each with more capabilities. Check the wiki page for details.
  • nVidia: called PureVideo. Supports offloading of H.264/AVC and VC-1. Supported from GeForce 6600 onwards. Comes in 4 versions, each with more capabilities. Check the wiki page for details.

Programs

The full list can be found on the Wikipedia page about DXVA (see references).

Recommended

Media Player Classic Home Cinema: Supports full H.264 offloading using internal decoders when configured properly. Refer to Windows Video Playback and this guide for more details.

References