请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/15 20:58:03