amistad 发表于 2011-1-29 13:26:08

DXVA2:明明白白GPU硬解高清

也不知道到底算不算原创,这些是俺1月12日整理了很多资料放在博客上的,后来看见几次有人问硬解的问题,想想还是干脆贴给大家方便吧。(BLOG里面
http://blog.sina.com.cn/s/blog_543400a60100o6kf.html
还有“精研事务所”网友论证硬解的“专业态度”,佩服啊)欢迎DEBUG!

    M$制订的接口规范DirectX Video Acceleration是一个具有“分级”的标准,不仅包括了影响CPU占用率的解码视频, 还有各种后期处理运算,比如图像缩放,色彩空间转换,反交错等。DXVA 1.0规范里最早定义了MPEG2和WMV硬件解码能力,在DXVA 2.0里又增加了H.264和VC-1硬件解码能力。
    DXVA并不是只有“支持”、“不支持”两个档次,显卡硬件支持DXVA规范,不代表就实现了里面所有的功能。DXVA强制规定:无论什么功能,显卡驱动的DXVA部分代码要通知系统,这项功能它实现了还是没有实现,不需要系统自己去测试。DXVA 2.0标准为显卡的解码加速能力分出了不同的档次(能力级别)。比如解码H.264的能力被分为了A~F共6个等级,其中A为最低,F为最高。

列表——DXVA2_ModeH264_A (DXVA2_ModeH264_MoComp_NoFGT)
  DXVA2_ModeH264_B (DXVA2_ModeH264_MoComp_FGT)
  DXVA2_ModeH264_C (DXVA2_ModeH264_IDCT_NoFGT)
  DXVA2_ModeH264_D (DXVA2_ModeH264_IDCT_FGT)
  DXVA2_ModeH264_E (DXVA2_ModeH264_VLD_NoFGT)
  DXVA2_ModeH264_F (DXVA2_ModeH264_VLD_FGT)
  DXVA2_ModeMPEG2_IDCT
  DXVA2_ModeMPEG2_MoComp
  DXVA2_ModeMPEG2_VLD
  DXVA2_ModeVC1_A (DXVA2_ModeVC1_PostProc)
  DXVA2_ModeVC1_B (DXVA2_ModeVC1_MoComp)
  DXVA2_ModeVC1_C (DXVA2_ModeVC1_IDCT)
  DXVA2_ModeVC1_D (DXVA2_ModeVC1_VLD)
  DXVA2_ModeWMV8_A (DXVA2_ModeWMV8_PostProc)
  DXVA2_ModeWMV8_B (DXVA2_ModeWMV8_MoComp)
  DXVA2_ModeWMV9_A (DXVA2_ModeWMV9_PostProc)
  DXVA2_ModeWMV9_B (DXVA2_ModeWMV9_MoComp)
  DXVA2_ModeWMV9_C (DXVA2_ModeWMV9_IDCT)
    硬件解码的加速能力的级别基本上分为4个,从高到底分别为:
VLD(Variable Length Decoding / 变字长解码):用于处理视频比特流(BitStream)
IDCT(Inverse Discrete Cosine Transform / 逆离散余弦变换):用于处理帧内压缩(Intraframe compression)
MoComp(Motion Compensatiom / 运动补尝):MC处理帧间压缩(Interframe Compression)
PostProc:显示后处理,比如Deblocking去码滤波操作。早期的GeForce 6/7或Radeon X1000显卡在开启显卡硬件加速的状态下就会关闭解码去块滤波操作Deblocking,这时播放一些影片会看到较明显的马赛克现象
VLD级别的解码包含IDCT, MoComp和PostProc;IDCT级别的解码包含MoComp和PostProc;MoComp级别的解码包含PostProc。显卡能够支持越高级的加速能力,就能更大幅度地减轻对 CPU 资源的占用。


    DXVA 1.0可在覆蓋合成器(Overlay Mixer)或VMR 7/9運行。DXVA 2.0,僅在Windows Vista、Windows 7以及之後的微軟操作系統中可用,與Media Foundation合併,並且在MF(Media Foundation)中使用的是增強型視頻渲染器(Enhanced Video Renderer/EVR)。
由於DXVA的限制,所使用的渲染器必須遵守以下規則:
Windows XP用戶,必須使用覆蓋合成器(Overlay Mixer),VMR 7或VMR9作為視頻渲染器(Video Renderer)
Windows Vista/7用戶,必須使用增強型視頻渲染器(Enhanced Video Renderer/EVR)或EVR custom renderer

    对于H.264,还有一个FGT(电影胶片质感技术)的额外技术,所谓胶片感,在不牺牲压缩能力的同时保持视频源特有的颗粒信息。未来的H.264编码器将会有FGT的开关选项,比如针对录像摄影素材则将FGT关闭,而对于胶卷摄影,出于胶卷的特性则将FGT打开,以保持特有的颗粒信息。而在影碟机一方,其解码器将识别颗粒信息,并在噪音滤波器中应用到H.264的视频流上。对 WMV9 的支持当中,有一个级别是“PostProc(Post Processing)”,中文是“显示后处理”,它是最低级的 DXVA。


    如果想详细了解自己显卡的DXVA能力靠厂家的宣传是靠不住的,我们需要一个小工具
dxva checker 它的最新版是2011-1-9发布的Version 2.4 http://bluesky23.yu-nagi.com/en

System Requirements:Windows 7/Vista/XP,必须安装64位或者32的
Runtime:Microsoft .NET Framework 2.0
Microsoft Visual C++ 2008 SP1 Runtime

运行它就可以显示你的DXVA档次
第一列:硬件加速的类型,大部分UUID都由DXVA2.0规范所定义,但显示长长一串数字的是DXVA2.0未定义的,可能是厂商自定义的专用API
第二列:新版的dxva checker只显示加速版本。

以前还列出了硬件加速使用的color space。“NV12”是指视频输出的色系(其它的颜色系还有 YUV12、YUY 等)NV12 是用于 DirectX VA 的首选 4:2:0 像素格式,Media SDK的decoder、vpp、encoder对输入输出格式有着严格的限制,现在仅仅支持NV12,其它的如YV12格式要转化为NV12格式。
第三列是指硬件加速支持的分辨率,分别测试480P(720*480), 720P(1280*720)和1080P(1920*1080), 测试成功,就显示相关分辨率。不成功就不显示。
官方文档http://msdn.microsoft.com/en-us/library/cc307941(VS.85).aspx

buzz_ 发表于 2011-1-29 13:35:25

我的电脑不支持高清加速 播放显示加速失败

amistad 发表于 2011-1-29 13:45:15

俺彻底晕了!
没有权限还是怎么着?这个链接老是贴不上去啊?!

bruce263@2 发表于 2011-1-29 14:04:57

俺彻底晕了!
没有权限还是怎么着?这个链接老是贴不上去啊?!
amistad 发表于 2011-1-29 13:45 http://www.gebi1.com/images/common/back.gif


    官方链接弄上来了 能打开

sto126 发表于 2011-1-29 14:06:01

挺专业 看不懂。。

zhouzhou829 发表于 2011-1-29 15:22:52

很专业的帖,不过得好好学习硬件知识了

Sae@2 发表于 2011-1-29 16:30:19

感谢LZ科普,去博客学习一下。

dreamd31 发表于 2011-1-29 18:59:17

感谢分享,进来学习一下

30130255@2 发表于 2011-1-29 19:14:55

现在用到硬解的比较少了 呵呵 不过上网本肯定用的到
另外现在完美者解码推荐的几个默认设置都不错 只有
选择适合自己机器的方案就可以了 不像以前要很复杂的
设置了

amistad 发表于 2011-1-29 21:07:46

回复 4# bruce263


俺都改了4、5遍了!
只有最后的URL正常,前面2个根本没有链接,现在忽然又出现了!
糊涂啊

zh2k2k 发表于 2011-1-30 18:22:12

很专业的帖!!需要多学习!

piaoguo778 发表于 2011-1-30 23:23:33

佩服楼主 这么专业

ninoyin 发表于 2011-1-31 13:46:19

{:2_127:}真专业....我现在一看这么专业的文字心里就没底的很==
佩服佩服...........

amistad 发表于 2011-1-31 18:32:33

谢谢斑竹+分

楼上2位是在寒碜我吧  {:5_535:}


满头大汗啊!
这个还好意思叫“专业”……玩高清的要笑死俺了 
{:5_508:}

wangxy724@2 发表于 2011-2-1 11:13:49

学习一下新知识。

vajray 发表于 2011-2-3 10:24:32

学习一下新知识。

czasroma 发表于 2011-2-5 00:41:57

认真学习了 谢谢

polato@2 发表于 2011-2-5 07:36:02

太专业了,说实在的只看懂一点点

leolew 发表于 2011-2-7 16:48:42

看到这贴突然想起vcd年代的硬解。个人觉得能软解的就开软解吧。毕竟没硬解的麻烦。

wayne12571 发表于 2011-2-11 13:33:04

真专业    我看不懂。。。
页: [1] 2
查看完整版本: DXVA2:明明白白GPU硬解高清