高清尖兵——AVIVO HD技术解读
技术空间
在NVIDIA PureVideo HD咄咄逼人的攻势下,向来在视频编/解码方面有独到之处的AMD-ATI也拿出了自己的反击武器——AVIVO HD。随着HD 2000系列显卡的陆续上市,AVIVO HD给用户带来了一个新事物——UVD(Universal Video Decoder,通用视频解码器)。
看清楚高清解码
从AVIVO进化到AVIVO HD,关键就是对高清的支持,而对高清支持的重点是对高清视频的硬件解码。目前作为标准的Blu-ray/HD DVD光盘,已经确认了将H.264/AVC和VC-1作为官方编码规范,所以对高清编/解码的支持就是对H.264/AVC和VC-1的支持。
一般来说,高清视频解码过程主要分为四个步骤:Bitstream Processing/Entropy Decode(视频流处理/视频熵解码)、Frequency Transform(逆变换计算)、Pixel Prediction(像素预测)和Deblocking(去块滤波)。
我们知道,在G84/G86系列中,NVIDIA把用于视频解码的VP(Video Processor)引擎升级为VP2,可较好地支持Frequency Transform这个环节,同时VP2还专门加入了针对H.264视频CABAC/CAVLC硬件解码的BSP(视频流处理器)。不过, BSP只能处理H.264/AVC编码器的熵解码,对VC-1的熵解码无能为力。
相比上一代的AVIVO,AVIVO HD增加了对视频熵解码的支持,这是比较明显的进步。AVIVO HD技术是通过UVD视频加速引擎来实现的。UVD内置于GPU核心中,它可同时支持H.264和VC-1两种高清视频回放的引擎。在上述高清视频处理的四个环节中,每一步都是由UVD来完成,此时CPU可以轻松处理其他事情。
根据AMD-ATI官方提供的CPU软解码、显卡协助解码和UVD硬件解码之间性能差异对比图,在3.2GHz的Pentium D处理器+1GB内存的平台上,UVD在视频解码中带来的性能提升是非常可观的。
小贴士:
H.264是ITU(国际电信联盟)与ISO(国际标准化组织)的联合视频小组 (JVT)在蓝光时代制定的新标准。在ITU方面这个标准被称为H.264,在ISO方面这个标准被称为MPEG4-Part 10或MPEG4高级视频编解码(AVC)。也就是说,H.264和MPEG4-AVC是同一个标准的不同称呼,在比较正式的场合,H.264/AVC是比较规范的名称。

UVD的纯硬件解码
在微软新的DXVA2(DirectX Video Accelerate)中,我们可以看到视频硬件加速被分成了四个承接包容的部分:VLD(变长解码)、IDCT(帧内压缩)、MoComp(帧间压缩)和Post Processing(显示后处理)。
看到这里,大家可能会产生疑问:既然UVD能很好地支持H.264/AVC和VC-1这两种编码器,那是不是意味着它对高清视频就是纯硬件解码了呢?

我们知道,熵解码在视频解码中的作用和意义很大。在MPEG-2中已经有了Entropy Decode(熵解码),ATI的显卡在很早以前已经号称支持纯硬件解码MPEG-2,但Radeon X1000时代的AVIVO却“退回”到不能支持熵解码,而NVIDIA的产品更奇怪,最新的G84/G86系列的PureVideo HD居然还不支持VC-1编码方式下的熵解码,却能支持H.264/AVC的熵解码。
要解开上面的困惑,我们必须先了解一下高清时代常见的两种熵编码:CAVLC(Context-based Adaptive Variable Length Coding,前后自适应可变长度编码)和CABAC(Context-based Adaptive Binary Arithmetic Coding,前后自适应二进制算术编码)。
熵编码是视频压缩技术中非常重要的部分,VLC(变长编码)又是熵编码中必须先理解的概念。打个比方,我们经常将李白和杜甫合称为“李杜”,这就是一种压缩,这里的编/解码是基于一本“字典”来定义的。
更进一步的压缩就要考虑数据使用的频繁程度,调整字典的内容和长度。大家还记得《无间道》中梁朝伟敲摩尔斯码的情节吧,在摩尔斯码中,最常用字母“E”和“T”被赋予最简单的“.”和“-”,这是1位编码,而“Q”之类的不常见对象则被赋予“--.-”,这是4位编码,也是变长编码的精髓所在。
熵编码这个概念是借用了热力学的说法,在视频编码的时候尽可能把出现频率高的信息赋予较短的编码。在MPEG-2时期,熵编码采用的是单一VLC表,压缩的质量与VLC表有一定的依赖性,这种依赖性体现在对具体压缩对象无法有针对性的处理。
在H.264/AVC中,基于上下文并能自适应的CAVLC编码方式就出现了。CAVLC能进一步的提高视频压缩率,它采用若干联合VLC码表,将不同的码表对应不同的概率模型,用上下文选择最适合的码表。在寻找与当前数据概率模型匹配的VCL码表过程,工作量就提高了。
H.264/AVC中还有一种CABAC解码,CABAC是一种将码长视为分数的编码方式,它的工作流程是:先进入预解码状态,读取上下文模型变量,然后在下一个时钟进入二进制算术解码状态,完成1bit信息的解码。
在算术解码中,规则解码(Decode Decision)、旁路解码(Decode Bypass)和结束解码(Decode Terminate)中一种或多种将被调用,而且二进制转化的时候还涉及到四种算法的选择。CABAC的算法比CAVLC多出了不少,带来的变化是压缩比高出5%~15%,但对资源的消耗也更高。
下面我们来解释“纯硬件解码”的含义,对于采用MPEG-2方式编码的视频,AVIVO并不支持对VLC熵解码。原因是MPEG-2视频的VLC解码对CPU的占用并不是太高,所以被选择性地放弃了。
在H.264/AVC中,CAVLC和CABAC的性能相当强大。以CABAC而论,仅引进这项技术就将比普通VLC编码提高至少15%的压缩比率,但这也对编/解码系统增加了30%以上的负担,所以显卡熵解码就成为H.264/AVC硬件解码器中的头等大事。
而UVD作为最新的解码平台,自然也对它有着完美的支持。对于VC-1方式编码的视频而言,在熵编码部分并没有采用CAVLC或者CABAC这样非常消耗CPU资源的算法,所以PureVideo HD也对它进行了选择性的放弃。
通过熵解码一个例子,我们就可以看到视频解码过程是相当复杂的,不同编码器在实现步骤和细节、算法上更是相差巨大。厂商所说的“纯硬件解码”真正含义是,显卡对解码过程中资源消耗较大的部分进行承担,而非事无巨细、面面俱到。从这个意义上来看,G84/G86系列的PureVideo HD也称得上是对高清视频的纯硬件解码,但和UVD相比,前者还是略有不如。毕竟,VC-1的熵解码对系统还是存在一定的压力。
高清解码对CPU的负载
AMD-ATI在关于UVD的资料中提供了一个CPU负载对比表,从表中数据我们可以看到,相同码率的H.264/AVC在熵解码部分,对CPU的占有率比MPEG-2高出一倍不止,而CABAC模式的CPU占用率更比CAVLC的高出近200%。
而在Pixel Prediction(像素预测)部分,H.264/AVC编码方式对CPU占用率的增长也比MPEG-2的大得多,相同码率的CAVLC几乎增长了170%。
至此,我们可以得出明显的结论,相同项目下即便是模式相同,实现算法的不同也会让硬件解码产生巨大差异。所以,我们这里必须重视一个概念——显卡硬件解码的负载能力。换句话说,视频播放能力在很大程度上取决于GPU本身。
而对内置UVD引擎的RV630/RV610来说,视频处理问题就完全交给UVD负责,显卡的3D引擎被释放出来,去处理其他3D问题,比如Vista的Aero Glass界面,同时也摆脱了依靠CPU的局面。

写在最后
AVIVO HD的核心部分集成了一个HD音频处理器,意味着处理高清视频的显卡拥有处理和输出数字音频能力,这是一个较大的优势。而在此之前,配备了HDMI接口的显卡,在播放高清视频时,音频和视频的同步有些问题。
小贴士:
HDMI接口全称高清晰度多媒体接口(High-Definition Multimedia Interface),它支持在单线缆上传输无压缩的高清数字视频与多声道数字音频信号。无需在信号传送前进行数/模或模/数转换,这样可以保证高品质的影音信号传送。
但对于电脑来说,通常视频与音频是由显卡和声卡来分别输出,即使是配备了HDMI接口的显卡,通常也只利用了HDMI传输数字视频部分,而依旧通过模拟信号连接来播放音频,这不仅大大降低了数字音频部分的效果,还浪费了HDMI的音频信号输出功能。若使用HDMI接口连接电脑,同时输出数字视频与音频信号,则须在主板的声卡与显卡之间用数字音频连接线相连,但有可能出现兼容问题。
由此可见,HD 2000系列显卡集成了高清音频处理器后,直接利用显卡上的HDMI接口来连接电脑显示设备,在保证高效的同时,输出数字视频与音频信号也变得更方便和简单。
HD 2000的另一个重大改进是将HDCP认证密钥集成到了芯片当中,这意味着显卡厂商能真正推出支持HDCP和HDMI的产品。以前的ATI Radeon X1000系列图形芯片是属于HDCP Ready。
小贴士:
HDCP(High-bandwidth Digital Content Protection,高带宽数字内容保护)是由Intel带头开发的一种数字多媒体内容版权加密技术,通过嵌入软件和硬件中对传输内容进行认证解密,来保证高清视频内容只能在经过授权的设备上正常播放。如果设备不支持HDCP技术,那高清信号将会以低分辨率播出,甚至画面闪烁或黑屏。
强悍的UVD引擎、集成数字音频、对HDCP的完全支持,这一切使AVIVO HD延续了前代产品“视听娱乐平台”的概念,并成为目前高清硬件解码主流的选择。而它的对手PureVideo HD在整体表现上还有待提高,或许下一代的VP3引擎才是UVD的好对手。