从菜鸟出发!征服HTPC高清详细全攻略5

来源:百度文库 编辑:神马文学网 时间:2024/05/01 03:48:37
AVIVO HD与PUREVIDEO HD技术对比介绍(上)
新一代编码H.264/VC-1的编解码方案流程主要包括如下5个部分:精密运动估计与帧内估计(Estimation)、变换(Transform)及逆变换、量化(Quantization)及逆量化、环路滤波器(Loop Filter)、 熵解码(Entropy Coding)。下图则是H.264编码流程图

如果使用CPU软解,我们看到在熵解码时CPU占用率为最高,而其它各项加起来也不少,尤其是H.264主要档次。
% CPU Util
(P4 2.8GHz)
MPEG2
AVC
VLC
CAVLC
CABAC
CABAC
8Mbps
20Mbps
20Mbps
40Mbps
Entropy Decode
1.6
8.9
26.5
47.8
Freq trans
0.7
1.2
1.5
2.6
Pixel predic ' n
0.5
11.0
11.5
11.6
Deblock
N/A
8.2
8.5
8.2

AMD上代Radeon X1000显卡硬件支持ATI AVIVO技术, 针对H.264和VC-1编码的视频,由CPU处理器负责Bitstream Processing( 码流处理)和Entropy Decode(熵解码),由Shader着色单元来硬件加速Frequency Transform(频率转换)、Pixel Prediction(像素预测)和Deblocking(环内 解块滤波)过程。因此,不能称上纯硬件解码。
熵解码 Entropy decode
Frequency transform
Pixel prediction
Deblocking
MPEG-2
VLC
iDCT非连续反余弦变换
(浮点)
Inter Frame
(Bilinear)
N/A
VC-1
VLC
iDCT非连续反余弦变换
(整数r)
Inter Frame
(+ Bicubic)
Inloop
H.264
VLC / CAVLC / CABAC
Inverse Transform
Inter & Intra Frame
Inloop
AVIVO HD与PUREVIDEO HD技术对比介绍(下)
可以看出,AMD上一代的高清视频硬件解码技术并不完美,到了HD 2000系列,Radeon HD 2600系列(RV630),Radeon HD 2400系列(RV610)图形芯片当中集成专门的UVD硬件单元(通用视频解码器),完全负责硬件加速处理Bitstream Processing( 码流处理)和Entropy Decode(熵解码),由Shader着色单元来硬件加速Frequency Transform(频率转换)、Pixel Prediction(像素预测)和Deblocking(环内 解块滤波)过程,即Avivo HD。

NVIDIA早在GeForce 6时代就开始引入HD视频解决方法-PureVideo,实现硬件加速,其实其原理就是通过驱动利用可编程GPU的空闲运算能力对编码进行加速,实际上这并非完整的硬件解码,有相当一大部分是GPU通过软件来完成,但不论如何很大程度的分担了CPU的压力。 并且在画质上也有一定的改观。

前代的PureVideo的硬件组成部分只有一个VP(视频处理器,Video Processcor),并且这个VP的处理能力以及性能还是比较低下。到了G84,NVIDIA在GPU里不仅重新设计了一个功能更强强大的新的视频处理器,并且增加了一个 熵解码处理器引擎,NVIDIA称为BSP ENGINE(Bitstream Processcor ENGINE)。新的视频处理器(NEW VP或者是VP2)可以对MPEG-2,VC-1,H.264进行实时解码,包含了最近比较流行的第三代视频编码。而Bitstream Processcor ENGINE则主要针对H264的CABAC/CAVLC这两种 熵编码进行解码。
前面说过H.264标准采用的熵解码有两种:一种是基于内容的自适应变长编码(CAVLC)与统一的变长编码(CAVLC)结合;另一种是基于内容的自适应二进制算术编码(CABAC),也就是 主要档次。CAVLC与CABAC根据相临块的情况进行当前块的编码,以达到更好的编码效率。CABAC比CAVLC压缩效率高,但要复杂一些,对硬件要求会更高一些。 CABAC (CAVLC 也同样)是一个不会损伤画面的无损编码,但是会降低编码和解码的速度。
初步看之下PUREVIDEO HD以用AVIVO HD都拥有了完整的硬件解码功能,事实上则不然,两家在对视频编码的支持上有一些出入。
首先就是两家视频加速技术对MPEG2的并非全硬件解码,相当多的一部分交给了CPU去软解压,这一点上相信没有多少人会有异议,毕竟MPEG2本身对硬件损耗就非常低,再通过部分硬件解码,其CPU占用率已经降得相当低的一个地步,这在我们后面的测试中也得到证实。
而在对相当损费资源的H.264编码时,两家也采用了统一的态度,完全的硬件解码,彻底解放CPU瓶颈,这使得H.264在两家新显卡上解码不再是问题。

另外,对于VC-1,ATI/AMD和NVIDIA的态度就有所差异了。ATI/AMD认为,VC-1作为和H.264新一代HDTV标准编码,同时又有比较高的CPU占用率,所以仍然采用与H.264一样的全程VC-1解码(这也就是为何2600xt集成如此多晶体管的一个原因);而NVIDIA则认为,VC-1尽管占用比较高,但进行部分解码之后,低端CPU仍然能胜任解码工作,并且随着CPU主频的提升,这一状况会得到缓解。另外NVIDIA同时也认为,现在主流CPU即使软解也才70%的CPU占用,再加上PUREVIDEO HD分担一部分后则仅有40%左右的占用,在不进行其它大型任务的情况下,与0%CPU占用没有任何区别。
这一点上是仁者见仁智者见智,按照笔者个人看法,所有硬解码在未来都会给软解码所代替,而现在笔者即使是在解码CABAC 40m码率的片源时使用采用软解码,就为了保证画质以及可以随心换解码器;另外一方面,有总比没有好,哪天笔者要是没了3.6G的Conroe,使用一颗Athlon64 3000+时,带有全程解码VC-1以及H264的AVIVO HD显然会更好一些。

解码器,分离器以及DXVA的概念
我们介绍一下解码器,分离器以及DXVA的概念
解码器的功能就是对视频或者音频进行解压缩。我们知道不论是原始的视频或者是原始的音频,数据都是十分惊人和庞大的,所以我们要用编码器对其进行压缩,这样才有利于传输和存储。在播放时我们就要需要还原成画面或者声音,这就需要解压,也就是解码。其中视频解码器比较复杂:
视频压缩技术就像我们之前所说有很多种,每一种里又有不少官方的,第三方的解码器,各种解码器功能,画面,速度都有差异,不过一般分为两种解码器:硬件解码器和软件解码器。
硬件解码器就是利用解码器所带的驱动接口和硬件本身连接上,利用硬件所带的功能对视频进行解码,这样可以降低对CPU的负荷,从而实现流畅播放以及提升CPU多任务的能力。
软件解码器就是除了硬件解码器之外的所有解码器,其最大特征就是利用CPU通用处理的功能,对其进行软件解码。软件解码虽然耗费CPU,但是可以修改,升级,在CPU资源充足的情况下是最好的选择。
分离器的功能就是把封装在一起的视频以及音频还原出来。之前我们谈过有不少的封装,每一种封装必须对应一种分离器,才能正确的把视频和音频分离出来以供解码器解码。
分离器也有很多种,一般情况下非标准的封装格式在正规的播放器里都没有相应的分离器,比如MKV。而分离器比较出名的有月光分离器,haali等。
DXVA(也称DirectX VA)全称就是DirectX Video Acceleration(硬件视频加速接口)。
DXVA是一个由微软和图形芯片厂商联合定义的一个硬件接口规范。如果一种显卡芯片在硬件上支持DXVA规范,并不代表它就实现了DXVA里面定义的所有功能。不过有一点可以肯定的是:对于DXVA定义的每一项功能,符合DXVA规范的显示芯片驱动程序一定会告诉系统,这项功能在它的硬件里实现了还是没有实现——这是DXVA规范强制性要求的。这样做的好处是应用程序不需要自己花费时间和精力去测试显卡有没有实现某项功能。
同样的,如果一种解码器支持DXVA规范,也不代表它就能利用DXVA规范里面所有的功能组合,它可以选择自己有能力支持的,或者想要支持的那些功能的组合,而其他功能组合也许就放弃了。
此外,如果某种显示芯片虽然通过驱动表示支持某种功能,但解码器认为该芯片对这个功能的支持是不稳定的,容易导致系统崩溃或错误,那么解码器也可以放弃使用该芯片的这种功能。
按照DXVA规范,硬件解码加速有3种级别
1、MC加速(运动补偿,也就前文提到Pixel Prediction)
2、IDCT加速(前文提到的Frequency Transform) + MC加速
3、VLD加速(前文提到的熵解码) + IDCT加速 + MC加速+(deblocking fliter环内解块滤波)
除了比较老的显卡(例如Geforce3)才支持MC加速之外,现在GF6/7,X1000系列第二级,而GF 8600/8500支持H.264第三级加速,以及HD2000系列支持VC-1/H.264第三级加速,当然,这也需要解码器支持才能被调用。
当播放器或者解码器显示DXVA(也称DirectX VA)时也代表着硬件加速已经被开启。
PowerDVD开启硬解设置指南
在所有所有的播放软件器,设置最为简单,又能直接开启硬件解码的软件,只能是PowerDVD了。可以说PowerDVD是目前最好的软件解压VCD/DVD/HDTV播放工具,同时它自带了HDTV硬件加速的编码,使得调用极其简单。
如果您使用的是NVIDIA的显卡并且带有PUREVIDEO技术,那么它会有一个PUREVIDEO HD的标志显示出来。
PowerDVD分别可以对H.264,VC-1,MPEG2,X264,XVID,DVIX等格式进行解压。也就是说基本上主流的DVD/DVDrip,HDTV/HDrip都可以解码,并且在显卡有硬解功能时无需任何设置即可开启硬解。
以下信息代表DXVA硬件加速启用。

PowerDVD无疑是强大的而且方便的,非常适合菜鸟使用硬解看中文片,即使是软解,它也能最为迅速的找到正解的解码器,不会出现画面,音频不正确的情况,而这一切都是无需设置的。对了,为何要说中文片呢,因为除了您外语特别好的情况下,PowerDVD是没有办法外挂字幕的,这也是该软件的一大遗憾,许多人正是因为如此抛弃了PowerDVD,而仅仅使用它所附带的解码器配合其它播放器。
PowerDVD的缺点不仅如此,由于不可配置,其分离器比较少,就连AVI这种老得不行了的封装分离得都有些问题,当然,这和现在HDTV的AVI封装了dts多音轨可能有些关系。其它方面,尽管PowerDVD是靠播放DVD起家,但是如果碰到了HDDVD的同样为MPEG-2 PS封装的EVO文件,PowerDVD一样无法对其分离。
PowerDVD优点:无需设置,有众多同时存在不同级加速的解码器即开即用,十分方便,是购买HDDVD/BD碟最佳播放器。
PowerDVD缺点:PowerDVD对网上下载的Remux非TS封装片源都无法正常分离,如果碰到HDrip的MKV格式更是无可奈何。最为气愤的是无法挂任何字幕。
注意:PowerDVD一定要优先于其它播放器安装。如果PowerDVD工作不正常,有可能是解码器/分离器混乱,重装一般可以解决问题。