第4页:新BSP引擎接管H.264视频解码关键阶段
在上一代甚至上两代的NVIDIA显卡上,已经提供了高清视频的解码加速功能,支持的格式包括Mpeg2、VC-1、H.264等等,但是需要注意的是:Geforce 6系列和Geforce 7系列显卡,对于H.264编码的高清视频的硬件解码仅仅实现了部分功能,并没有承担全部的责任,大部分任务还是CPU进行运算。
我们曾测试了20款以上显卡开启硬件加速后,使用Athlon 64 X2 3800+播放HDDVD版《通天塔》时的CPU占用率情况,虽然占用率已经大幅下降,但这个档次的双核CPU的情况也不能算太乐观,毕竟还可能出现要求更高的视频。
而在采用G86/G84核心的Geforce 8600/8500系列显卡上,显卡新的视频引擎已经可以实现几乎所有的H.264视频解码运算,极大的缓解了CPU的重负,其强大的性能,甚至可以满足那些拥有最高码率(比如40Mb/秒)的H.264编码视频的播放要求。
我们上文反复提到了H.264编码,因为它在目前主流的高清编码格式Mpeg2、VC-1、H.264这三个之中,是最有发展前景的一种编码格式,目前它已经在HDDVD和蓝光DVD载体中越来越多的被应用。此外,H.264编码格式的硬件配置要求最高,远远高于Mpeg2和VC-1。
下图很好的说明了G86/G84核心在这方面的进化过程。对比了:仅凭CPU进行视频解码的过程(第一行)、有Geforce 7系列显卡参与后的视频解码过程(第二行),以及在Geforce 8500(G86核心)显卡参与后的视频解码过程(第三行)。其中“蓝色方块”代表由CPU负责进行运算的部分,“绿色方块”代表由显卡负责运算的部分。
『显卡视频加速功能的演化过程』
图中每个流程的四个方块,基本就是H.264解码的四个最主要步骤,也是资源消耗的主要四个部分,其中又以第一步的“CAVLC/CABAC解码”最为消耗运算资源,这方面远高于其他三步(简单的说,CAVLC/CABAC是H.264编码规范中两种不同的算法,都是为了提高压缩比,其中CABAC比CAVLC压缩率更高,但解码时自然也要求更高)。
如果像第一行那种情况,所有四个步骤全采用CPU纯软件解码运算,当碰上HDDVD版本的高码率H.264视频,CPU的负载会非常巨大,我们有专门的测试成绩供读者参考,可以看到,即便是2000元附近的双核处理器,CPU的占用率也会达到70~80%。虽然我们测试使用的HDDVD版本视频,已经是目前要求最高的视频之一,但随着时间的推移,今后出现更高要求的视频也是很有可能的,到时候CPU很可能会不堪重负。
再到第二行的情况,在Geforce 7系列显卡上,虽然“CAVLC/CABAC解码”和“反向转换(Inverse Transformation)”仍然要CPU负责,但显卡已经可以承担“运动补偿”和“解码去块”功能(由VP引擎实现),因此在整体性能上提升了不少,CPU的负载大幅度下降(可以参照这里的成绩),即便是X2 3800+这款600块钱的CPU,占用率也能降低到50%左右。但这还并不是最终的目的。首先,如果使用单核处理器(很多现有用户就属于这种情况),依然无法很好的应付这类视频;其次,碰上编码率更高的视频,依然会给CPU造成很大的处理难度,导致视频播放的不确定性,可能消费者会遇到某些视频可以流畅播放,但是有些视频却丢帧的情况。
显然,显卡加速之路的最后方向就是:承担全部的H.264视频解码和处理过程,让其解码运算可以基本不依赖CPU!如果能实现这一点,以后消费者就无需过分担心自己的处理器性能如何,不同的视频编码率导致的负载差距过大等等问题,只要插上一块能支持“H.264全解码”的显卡,就能无所顾忌的播放所有高清视频,相信这是我们都希望看到的。
在图解第三行表示的Geforce 8500系列显卡上,我们就可以实现这一要求了,G86核心(G84核心同样)接过了H.264解码所有的主要运算过程,包括最繁重的“CAVLC/CABAC解码”和“反向转换(Inverse Transformation)”(这两步由BSP引擎完成),以及之前Geforce 7系列就能实现的“运动补偿”和“解码去块”(这两步由新改进的VP引擎完成)。
[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [下一页] |
|