Menu

#133 DirectX Video Acceleration (DxVA)

open
nobody
None
5
2014-08-19
2004-11-29
No

Microsoft DirectX Video Acceleration (DirectX VA) support

Microsoft DirectX Video Acceleration ( DirectX VA), both
for hardware acceleration (motion compensation) and
post-processing under new Windows OS, (options should
also be added to FFmpeg settings and/or auto-detect if
the video cards supported it and to what extent):

I really hope that the FFdshow developers can look into
this ( DXVA ) for all supported codecs and hardware(?)

Summery: Microsoft DirectX Video Acceleration (DXVA)
allows DirectShow based software applications to
accelerate video playback directly on the graphics
processors (GPU) if the decoder codec support it. If your
graphics processor supports DXVA and has built-in
technology to accelerate DVD and MPEG-2 file playback,
then DXVA can provide (GPU) hardware acceleration.
DVXA is an application programming interface (API) and
a corresponding motion compensation device driver
interface (DDI) for acceleration of digital video decoding.
DDIs are also provided as part of DXVA; a deinterlacing
DDI for deinterlacing and frame-rate conversion of video
content, and a to support ProcAmp DDI control and
postprocessing of video content.

A good exampel of the benifits of using DVXA for video
acceleration is that you can decode HDTV (ATSC/DTV)
MPEG-2 with a PIII 733Mhz CPU, a task that would
normaly require a PIII 1400Mhz CPU if the card does not
support DVXA HWMC.

Other post-processing featutes achivable via DVXA
(if the video adapter hardware support it of course):
- Hardware iDCT motion compensation
- Hardware iDCT subpicture decoding
- Hardware IDCT (Inverse Discrete Cosine Transform)
- IQ (Inverse quantization)
- Fullframe playback of HDTV content on slow CPU's
- Independent hardware color controls for video overlay
- Hardware colorspace conversion (YUV 4:2:2 & 4:2:0)
- 5tap horizontal by 3tap vertical filtering
- 8:1 up/down scaling
- Perpixel color keying
- Multiple video windows supported for CSC and filtering
- DVD subpicture alphablended compositing
- Alpha-Blending Surface

Developer links:
http://msdn.microsoft.com/library/en-
us/directshow/htm/directxvideoaccelerationdxvavideosub
types.asp
http://msdn.microsoft.com/library/en-
us/graphics/hh/graphics/ddraw_2ab799f5-77bc-497c-
9c64-68903bb940fb.xml.asp
http://msdn.microsoft.com/library/en-
us/graphics/hh/graphics/dxvaref_d72180f0-84bc-4acf-
b263-6f6c7e9f7b22.xml.asp
http://msdn.microsoft.com/library/en-
us/graphics/hh/graphics/dxvaref_557ca488-5ca9-4595-
994f-18eafa171f77.xml.asp
http://msdn.microsoft.com/library/default.asp?
url=/library/en-
us/wmform95/htm/enablingdirectxvideoacceleration.asp
http://msdn.microsoft.com/library/en-
us/wmform95/htm/enablingdirectxvideoacceleration.asp
http://msdn.microsoft.com/archive/en-
us/dx81_c/directx_cpp/htm/directxvideoacceleration.asp
http://msdn.microsoft.com/archive/en-
us/directx9_c/directx/htm/directxvideoaccelerationdxvavi
deosubtypes.asp
http://msdn.microsoft.com/archive/en-
us/directx9_c/directx/htm/522directxvaiamvideoaccelerat
oroperationalspecification.asp
http://msdn.microsoft.com/library/default.asp?
url=/library/en-
us/graphics/hh/graphics/dxvaguide_30c21a63-691d-
4ada-b469-08790b3b6c29.xml.asp
http://search.microsoft.com/search/results.aspx?
qu=DXVA&View=msdn&st=b&c=0&s=1&swc=0
http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/graphics/hh/graphics/ddraw_28178ef1-
ce67-476d-bdf0-f854fc342b4c.xml.asp
http://msdn.microsoft.com/library/default.asp?
url=/library/en-
us/graphics/hh/graphics/dxvaguide_6691221e-f352-47f9-
8345-b38d0955fd2a.xml.asp
http://msdn.microsoft.com/archive/en-
us/directx9_c/directx/htm/perpixelalphablending.asp

....AND MUCH MORE available on a Microsoft
Development Network search:
http://search.microsoft.com/search/results.aspx?
qu=dxva&View=msdn&st=b&c=0&s=1&swc=0

Exampel of above DXVA technology in use is the newly
announced "nVIDIA DVD Decoder", (as almost
GForce/nForce GPU's support it). nVIDIA DirectX Video
Acceleration (DXVA) support MPEG-2 acceleration for:
- Inverse quantization (IQ),
- Inverse discrete cosine transform (IDCT)
- Motion compensation (mo comp)
- Enables advanced de-interlacing
- Decodes high-definition MPEG-2
http://www.nvidia.com/object/dvd_decoder.html
http://www.nvidia.com/object/decoder_faq.html

Note! nVIDIA's part in the GPU that support this is called
HDVP (High Defininition Video Processor) / VPE (Video
Processing Engine). Nvidia HDVP Whitepaper (by Nvidia):
http://www.nvidia.com/attach/149

Nvidia's HDVP support hardware decoding of:
MPEG2 / MPEG-2 / MPEG-TS / DTV ATSC formats

nVIDIA developers websites:
http://developer.nvidia.com
http://nvdeveloper.nvidia.com

Discussion

  • Andreas Setterlind

    Logged In: YES
    user_id=630186

    Good base to start from:

    http://msdn.microsoft.com/archive/default.asp?
    url=/archive/en-
    us/directx9_c/directx/htm/howdecodersuseiamvideoaccelerator
    .asp

     
  • Andreas Setterlind

    • priority: 5 --> 9
    • summary: DXVA (DirectX Video Acceleration) --> DirectX Video Acceleration (DxVA)
     
  • Andreas Setterlind

    • assigned_to: nobody --> michaelni
     
  • Andreas Setterlind

    Logged In: YES
    user_id=630186

    @Michael, any chance you guys can look at this for FFmpeg?

     
  • Dennis Jansen

    Dennis Jansen - 2004-12-26

    Logged In: YES
    user_id=673104

    or what about XvMC
    http://www.xfree86.org/~mvojkovi/XvMC_API.txt

     
  • Michael Niedermayer

    Logged In: YES
    user_id=282150

    dont mess with the assignment and priority
    note1, i dont even use windows
    note2, libavcodec does support XvMC

     
  • Michael Niedermayer

    • priority: 9 --> 5
    • assigned_to: michaelni --> nobody
     
  • Andreas Setterlind

    Logged In: YES
    user_id=630186

    @Michael, I appologuise for changing priority and assigiment,
    assumed it was ok since the option was available, I'm sorry.

    PS! Do you gues use/check these RFE's on SF?, seems many
    other requests are open and have been opened for a while
    even after they have already been implemented in FFmpeg(?)
    ...maybe get a mod to close off stuff that's allready supported

    Best regards / Gamester17 (Project Manager of XBMC (on SF))
    PPS! Hope you can ask/get someone too just look into DxVA ;)

     
  • Nobody/Anonymous

    Logged In: NO

    Is Gamester the only person reading this?

     

Log in to post a comment.