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
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
Logged In: YES
user_id=630186
@Michael, any chance you guys can look at this for FFmpeg?
Logged In: YES
user_id=673104
or what about XvMC
http://www.xfree86.org/~mvojkovi/XvMC_API.txt
Logged In: YES
user_id=282150
dont mess with the assignment and priority
note1, i dont even use windows
note2, libavcodec does support XvMC
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 ;)
Logged In: NO
Is Gamester the only person reading this?