词条 | dxva |
释义 | DXVA是DirectX Video Acceleration的简称,中文译为视频硬件加速。DXVA是微软公司专门定制的视频加速规范,它共有两个版本,分别是DXVA 1.0和DXVA 2.0。DXVA规范不仅仅是在视频播放过程中的解码计算规范,其还有与视频后期处理息息相关,例如反交错、色彩空间转换或图像缩放等等。对于视频播放时CPU利用率影响最大的,通常也是我们最关心的,非视频解码莫属,尤其是 HD视频的解码(硬件解码),对于CPU较弱的系统来说,让显卡来完成解码是不二之选。 概述视频硬件加速的基础知识目前市面上几乎所有的显卡都具备一定的视频硬件加速能力。微软公司为此专门制订了DXVA规范(包括DXVA 1.0和DXVA 2.0两个版本)。但使用硬件加速,在视频播放的总体流程上也受到诸多限制,尤其是后期处理部分。因此对于追求后期效果的高清发烧友,宁可放弃硬件加速,当然代价可能是需要升级CPU甚至整个系统。 DXVA规范中,不同的显卡的视频硬件加速能力有差异,有的显卡支持的加速项目较多,有的显卡支持的较少,从显卡的发展历程来看,视频硬件加速能力总体是逐渐增强的,但在同一代显卡中,高端显卡的视频硬件加速能力不见得比低端显卡的强,甚至有些时候还会弱些。 对于高清发烧友来说,可以接触到的高清视频源的编码格式主要有MPEG2, H.264和WMV和VC-1四种。DXVA 1.0规范里最早定义了MPEG2和WMV硬件解码能力,在DXVA 2.0里又增加了H.264和VC-1硬件解码能力。 视频硬件解码能力的成功运用,需要几个环节的配合。首先,显卡硬件需要支持特定的视频编码格式;其次,显卡驱动需要正确的报告显卡硬件的这种能力;最后,视频解码器需要能够启用这种能力(这可能会进一步涉及到分离器和渲染器的配合)。当然,视频源本身也必须是这种编码格式。 还有一点需要特别注意的是,DXVA是一种接口规范,显卡硬件支持DXVA规范,不代表就实现了里面所有的功能,但是肯定的一点是,无论什么功能,显卡驱动的DXVA部分代码一定会告诉系统,这项功能它实现了还是没有实现,这是DXVA规范强制性要求的。好处是系统不需要自己去测试显卡有没有实现这项功能。解码器支持DXVA规范,不代表就能利用DXVA规范里面所有的功能组合,它可以选择自己有能力支持的,或者想要支持的那些功能组合,其他功能组合也许就放弃了。还有,某显卡虽然表示支持某种能力,但如果解码器认为这个能力的支持不够稳定,容易导致系统崩溃或错误,或者性能低下,它也可以放弃这种能力。 DXVA2.0为显卡定义了视频硬件解码能力级别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) 视频硬件解码的能力的级别从高到低的顺序如下,能力越高,显卡能够分担的视频解码计算量就 越多。 VLD(视频bitstream处理)->IDCT(帧内压缩)->MoComp(帧间压缩)->PostProc(后期处理) VLD级别的解码包含IDCT, MoComp和PostProc, IDCT级别的解码包含MoComp和PostProc MoComp级别的解码包含PostProc 对于H.264编码,还有一个称为FGT(Film Grain Technology)的技术,即所谓胶片感,目的是在不 牺牲压缩能力的同时保持视频源特有的颗粒信息。 有关DXVA框架看下图功能视频解码对于我们普通用户来说可以分成两类,一类是以CPU为核心的软件解码,另一类就是目前主流的以GPU为核心的额硬件加速解码。 就目前来看,二者各有利弊。 软件解码好处是,第三方软件解码器齐全通用性高,使用CPU来作为解码核心能够满足几乎所有的视频解码。而坏处也显而易见,在一台CPU性能较弱的平台上,尤其是在看高码率的高清视频时,CPU由于线程数和自身架构导致的效能上不足,视频画面卡、顿、慢成为不可避免的结局。 硬件加速解码好处是,目前主流显卡都能够很好的支持主流视频格式解码,尤其是在图形核心采用统一架构后,利用图形核心的并行架构设计,在H.264和VC-1格式高清视频上有绝佳的支持效果。弊端是,硬件解码受限视频播放总体流程,尤其是后期处理部分。所以很多追求最终画质效果的高清发烧友,宁可放弃硬件(GPU)加速解码的几倍性能,而选择基于CPU的软件解码。 根据DXVA的规范制定,硬件加速解码可分为四个级别,它们由高到低分别是: VLD(bitstream方面的处理)>IDCT(帧内压缩)>MoComp(帧间压缩)>PostProc(显示后处理) 从上面的等级分布上不难看出,VLD加速等级最高,所以其包含IDCT、MoCoopm和PostProc;IDCT加速次之,包含MoCoopm和PostProc;最后MoComp加速仅包含PostProc。 对于仅支持MC加速的显卡只有在2005年以前的老产品上出现,当NVIDIA进入GeForce 6000系列和AMD进入Radeon X800系列后,图形核心的硬件加速能力达到了IDCT加速级别。而当显卡进入图形核心统一架构设计后,GeForce 8000和Radeon HD 2000开始进入目前最高的VLD加速。 不过值得一提的是,由于NVIDIA的高清硬件加速功能基于Video Pocesser单元设计,而最早出现的GeForce 8800系列(G80核心产品)没有开放此功能单元设计,所以NVIDIA真正进入VLD加速是从2007年4月发布的GeForce 8600/8500系列开始。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。