PDA

View Full Version : WMV DxVA decoding..


z
02-14-2007, 10:24 PM
DXVA WMV decoding support:

XP - DirectShow - DXVA 1.0 - unrestricted
XP - WMP (WMFSDK) - DXVA 1.0 - minimum bitrate 1Mbps, maximum framerate 30 fps - "High quality" mode recommended
Vista - DirectShow - DXVA 1.0 - only in VMR7 and VMR9, but not EVR
Vista - WMP (MF) - DXVA 2.0 - unrestricted, uses EVR
Vista - WMP (WMFSDK) - unsupported

WMP doesn't use DirectShow for ASF playback. It uses WM Format SDK (in XP and older) and Media Foundation SDK (in Vista and later).


WMV AP external deinterlacing support:
("external" implies deinterlacing in the renderer - but could be software or hardware, depending on video driver support)

XP - DirectShow - supported only when DXVA decoding is used, otherwise just passes through as is
XP - WMP (WMFSDK) - supported with and without DXVA decoding - "High quality" mode recommended
Vista - DirectShow - supported with and without DXVA decoding
Vista - WMP (MF) - supported with and without DXVA decoding
Vista - WMP (WMFSDK) - supported


The list assumes latest WMP (v11) is installed in all cases! Prior to v11, the WMV decoder really lacked good support for DXVA decoding and interlaced content, so anybody wanting those two features in XP should really consider upgrading their WMP or at least their WMFSDK runtime.

----------------
The postprocessing step needs to be implemented by the video card maker with the rest of the DXVA support. Once the WMV decoder hands off the video samples to the DXVA driver for processing, it's gone and never comes back to the WMV decoder - so any kind of postprocessing, be it deblocking or range expansion, needs to be done by the GPU. I believe the decoder signals the need for deblocking+deringing through the DXVA API, but it's up to the video driver whether they want to respect that or not.

When DXVA support was added to WMP/WMFSDK in v10, it was defined to only kick in for content that truly needed it. The line was drawn at 1 Mbps. In other words, content under 1 Mbps never plays back through DXVA in WMP - regardless of the DXVA setting. Another interesting limitation of the WMFSDK pipeline is that no video content with framerate > 30 fps will play through DXVA.

Neither of these restrictions exist in DirectShow or Media Foundation (Vista WMP).

In general, I'd avoid overlays and always use either VMR7 Mixing Mode ("High Quality mode") or WMR9 in DShow. This will ensure correct AR signaling (if the decoder supports it) in the renderer and highest quality deinterlacing. In fact, I don't think DXVA deinterlacing and DXVA decoding are dependant on each other. I'm pretty sure you can get DXVA deinterlacing without DXVA decoding. Using "High quality mode" in WMP should enable this in WMP - the hardware bobber should kick in for any interlaced WMV content, and you can verify this by checking the framerate in Statistics - it should be doubled.


Unfortunately, a separate limitation in the XP WMV decoder restricts external deinterlacing to WMP/WMFSDK playback path only. Renderer deinterlacing will not work in DirectShow under XP, due to the decoder not exposing VideoInfoHeader2 (needed for interlaced signaling) for compatibility reasons. The restriction does not exist in Vista at all. In other words, if you want good deinterlacing for WMV content in XP - you have to use WMP. We fought a hard battle to get the VideoInfoHeader2 support working correctly in XP, but it didn't make the final cut.

[Only registered and activated users can see links]

z
02-14-2007, 10:51 PM
하드웨어 디인터레이싱(DxVA deinterlacing)은 VieoInfoHeader2를 노출시켜야 한다. 그런데 XP상의 DirectShow에서 WMV재생시는 이 동작이 되지 않는다. 다시 말해 WMV재생시 DxVA deinterlacing을 하려면 윈미플이나 WMFSDK를 이용한 소스필터가 있어야 한다는 의미이다.

참고로 KMP는 이 항목이 존재한다. 아래 항목에 체크하면 WMV 듀얼오디오 스위칭(Ctrl+X)과 DxVA deinterlacing이 가능하다는 뜻이다.

[Only registered and activated users can see links]



위 글에서 미루어 짐작할 수 있는 사실은 XP상에서 윈미플이 어떤 렌더러로 동작하는가에 대한 것이다. XP상에서 윈미플이 VMR7을 이용한다는 것은 주지의 사실이고 거기에 더해서 Mixing Mode를 사용한다는 것을 알 수 있다.

KMP에서의 동일한 설정이라면 아래 스샷을 참고하면 된다. KMP 비디오 필터를 떼면 윈미플과 같은 성능으로 재생할 수 있을 것이다.

[Only registered and activated users can see links]