虽然在中国,高清视频、高清电影的片源问题仍停留在“盗版”传播阶段,但是在近一年来这种“盗版”趋势也在慢慢发生变化。如今,HD DVD和Blu-ray Disc(蓝光,下文缩写为BD)两种介质的高清电影不计其数,相对DVD介质电影,HDDVD和BD光盘介质盗版几乎没有,所以各大电影厂商对于以新一代高清光碟为介质的电影发布也比DVD介质积极得多。《007 皇家赌场》、《通天塔》(《Babel》)这样的热门影片推出高清光盘电影步伐之迅速是最好的见证。
HDDVD光盘,极其丰富的操作菜单与功能 |
《剑鱼行动》,HDDVD,VC编码影片。在去年E6300 |
但是与我们以往通过国外高清电视台获得高清节目不同的是,在HD DVD和BD上高清片源视频方面多采用VC1和H.264编码,音频方面则是DolbyDigital Plus、DTS-HD、多声道LPCM的天下。而视频的码率也大多在30Mbps左右。大家很快发现,前几年打造高清播放机或HTPC的念头,不得不被HDDVD、BD电影大潮所颠覆,因为它们解码的工作量对于CPU来说实在不小,尤其是CABAC的H.264片源。
幸运的是,在近半年间入门级的双核心CPU降价,对于发烧友来说无疑是一个好消息。但对于苛刻的HTPC玩家来说,即便Intel Core2Duo E6300的发热量和效率都不能满足它们组装静音和低功耗HTPC要求时,那些Athlon64X2和PentiumD自然也不在考虑范围。更需要注意的是,2GHz以下的Athlon64X2、3GHz以下的PentiumD甚至E6300、E4300,它们的性能对于高码率H.264回放来说,也最多是工作在流畅与不流畅的边缘。显卡加速势在必行。
当然,我们不会忘记NVIDIA Purevideo和ATi AVIVO。前者的硬件加速可以有效的降低CPU占用率,而后者即便是使用在1950XTX上,也不见得有什么缓解CPU压力的作用,只是在HDTV输出画质上有所改善。
2007年4月12日,在GeForce8500\8600的发布小型培训会上,NVIDIA第一次公布GeForce8500、8600将内建专门芯片单元,负责H.264解码。NVIDIA虽然没有当场实际播放,也不允许与会人员拍照记录,但一个数据仍太让人记忆深刻。Pentium4 531+GeForce8500播放40Mbps码率1080p BD电影时,CPU占用率在40%左右。这意味着,一颗普通的Pentium4或者赛扬D级别的CPU,就可以播放目前规格不凡的HDTV。大家思维迅速发散,开始幻想着AGP版本的GeForce8500推出,来拯救自己老旧的电脑。
显然,NVIDIA在GeForce8500/8600中加入H264硬件解码功能相当低调。与此同时,AMD方面的Radeon R600/RV600系列 GPU也在声称加入硬件解码H264和VC1编码高清视频的UVD单元。但显然,这个卖点又要被NVIDIA抢先了(但值得注意的是,AMD Radeon的UVD单元官方表示可以提供对VC1编码的硬件解码,而NVIDIA并不完全支持)。
说到“硬件解码”、Purevideo以及Purevideo HD,显然NVIDIA的定义稍显不明确。在Purevideo时代,NVIDIA似乎也默认它就是对高清视频的硬件解码;而在GeForce8800系列推出时,NVIDIA也将它与PurevideoHD对应。但今天看来,GeForce8800系列对高清视频解码功能上与GeForce7系列并无本质区别。而今天,NVIDIA将Purevideo HD再次搭配给GeForce8500/8600,并明确了H264硬件解码的定义。其中,又有怎样的变化呢?
大家看到,GeForce8500/8600系列的核心中,改进了原有的VP(Video P{rocessor),并增加了BSP Engine(BitStream Processing Engine)的处理单元,而它就是为H264服务的。也正是它让H264解码硬件化落到实处。
从上图大家看到的是H264高清视频处理示意图。蓝色部分过程代表无GPU参与,全部由CPU完成,而绿色的则代表GeForce7和GeForce8500时期,显卡完成的工作。大家可以看到,在GeForce7上,Bitstream处理与InverseTransform两相均由CPU完成,而VP单元完成后两步。GeForce8500/8600将上述两部交给BSP Engine处理,而后面则有新的VP处理。
可是为什么Bitstream过程如此重要?它的“硬件化”为何可以带来如此显著的变化。由于我们对H264编码算法没有太深的研究,只能将官方的叙述和我们简单的理解向大家做简单解释。
在H264的编码过程中,熵编码是编码过程的最后一步,也是非常重要的一步。而在这里,对于解码来说则是第一步需要做的。在H264规范中定义了熵编码来提高编码效率,可分为两种CAVLC和CABAC。前者是对所有的待编码的符号采用统一的可变长编码UVLC,Universal VLC。在解码量化后的差值变化系数则使用自适应变长编码(CAVLC),利用特别的算法,提高压缩比。
而CABAC是要进一步提供更好的压缩效果的算法。编码时首先将语法元素的值从简单的变长编码映射成二进制串(bit String),即二进制化(bit化)。随后通过自适应算法对每一位的值(bin Value)进行编码。与CAVLC相比,CABAC将会让比特率减少10%-15%(上图是CABAC编码过程示意图)。
无论是上述哪种编码,都需要有大量的运算,甚至我们可以看到有专门的硬件CABAC编码器产品单独销售。而对它进行单独解码也不足为奇了。而另一方面我们也看到,采用CABAC算法后,码率会相对更低,但解码消耗的资源则会更大。
为了体现GeForce8500/8600在H264硬件解码上的实力,我们使用了普通的CeleronD 3.06G(并降频至100X23=2.3G)、Conroe-L 2.4G(降频至6X200=1.2G)、AM2接口 Athlon64 3200+(2GHz)、PentiumD915 (2.8GHz)、Athlon64X2 3800+(2GHz)等入门级CPU进行测试。
翔升8600GTS
七彩虹8600GT |
硬件平台 | |
CPU | Intel Core2 Duo E6700 |
Intel Core2 Duo E6300 | |
Intel Conroe-L E4600@1.2GHz | |
Intel PentiumD 915@2.8GHz | |
Intel Pentium4 631@3GHz | |
Intel CeleronD 346@3.06G @2.3G | |
AMD Athlon64X2 3800+@2GHz | |
AMD Athlon64 3200+@2GHz | |
主板 | ASUS P5B Deluxe Wifi/AP |
ASUS M2N32 SLi | |
内存 | Corsair DDR2 1066 1GBX2 @800MHz 5-5-5-18 |
硬盘 | Seagate 7200.10 320GB |
电源 | 极能8688 |
软件环境 | |
操作系统 | Windows Vista |
驱动程序 | Intel Chipset Software Installation Utility 8.1.1.1011 |
nForce Forecware15.00 | |
Forceware158.14、16 | |
高清电影 | X-Men3 The Last Stand 1080p Blu-ray |
V字特工队 V for Vendetta HDDVD VC1 DD+ | |
剑鱼行动 Swordfish HDDVD VC1 DD+ | |
播放软件 | Windvd 8.08 |
NVIDIA此次提供了Forceware158.14、158.16两个驱动程序,分别对应WindowsVista和WindowsXP操作系统。有趣的是,与先前泄露的(甚至是显卡包装盒内已经搭配的驱动)版本相比,差别较大。目前我们收到的显卡包装盒搭配的驱动版本为101.2。根据NVIDIA介绍,158系列驱动相对前一版本多修复了400个bug。
重要的是,在HDDVD和BD播放支持方面,Forceware158.14、WindowsVista、Windvd8.08特别版三者缺一不可。只有在Windvd8.08下才可以支持硬件H264解码。
X-Men3是蓝光光盘载体,H264视频编码+DTS-HD 6.1音频编码的电影。从码率来看大概在25-30Mbps左右。
V for Vendetta,这部VC1编码的HDDVD电影码率并不算高,大概平均值在25Mbps左右。与下面一张我们介绍的HDDVD相比,码率差距较大。
剑鱼行动是多张HDDVD电影,采用VC1编码中较高的一款。在后面的CPU占用率测试中可以明显看到它要比Vendetta高出10%左右。
BD完美菜单 |
X-Men3 播放照片 |
在Windvd8.08下,我们可以方便的播放HDDVD和BD光盘,但是AVI、TS或者MKV等重新封装的各种编码的1080p文件都无法正常播放。毕竟,这只是一款测试版的播放器。
我们测试在WindowsVista下进行,没有关闭任何Aero效果,以及桌面的边栏。大家看到,这部X-Men在E6700下不打开硬件加速,CPU占用率平均在50%左右,而打开H264加速后,CPU占用率平均值不到10%。
在VC1编码的V For Vendetta中,CPU占用率如图所示并不算高。但是,在打开硬件加速后VC1的CPU占用率要比H264高出一倍左右了。
在E6300下,H264硬解码的效果依然出众,CPU占用率平均值仍在15%左右。这样的占用率几乎可以让我们忽略该应用的存在,这台电脑可以做另外的很多工作。不过在VC1编码的电影中,如果没有Purevideo,CPU占用率已经达到35%以上,即便打开Purevideo,CPU占用率的峰值也突破30%,并多次突破25%。
我们使用的是AMD Athlon64 X2 3800+处理器,处理器的主频为2GHz,二级缓存1MHz,是老款的3800+处理器。我们看到在打开H264硬解码后,CPU占用率在10%左右,比E6300的效果还好。而且由于AMD CPU的电源管理特性,在CPU占用率较低时功耗会比酷睿2架构的CPU还低。此时平台功耗为120W左右,而E6300平台为136W。
|
PentiumD915在启用Purevideo HD时稍逊色于Athlon64X2。不过仍属于同一水平,不但可以流畅播放,还可以做其他电脑常规操作。
这组CPU是典型的老款单核心CPU,他们在没有H264硬件解码时均无法播放我们的测试项目。
我们用CD 346,3.06G的Prescott核心的赛扬来进行测试。它工作在133X23的模式下。我们将它的频率降至100X23=2.3GHz时,仍然完美的进行H264解码。AM2接口的3200+,运行频率为2GHz,在打开硬件加速后流畅播放测试项目。CPU平均占用率不到30%。
Conroe-L1.2G,是我们一个极限测试。我们将单核心酷睿2架构的CPU 频率降至100X6和200X6,在100X6时,WindowsVista系统频繁报错崩溃。不过在1.2GHz下,顺利完成测试,CPU平均占用率低于40%。此时的平台功耗为110W。
但大家也注意到,在这几款CPU测试中,我们没有VC1电影的项目,因为它们无法正常的流畅播放我们的测试项目。显然,NVIDIA在这点上似乎考虑的不够周全。老CPU的用户,可以充分享受播放H264的乐趣,而原本认为简单的VC1编码的高清电影却无法播放了。
单核心的Pentium4 631是与AMD Athlon64 3200+同级别的产品。在Purevideo HD的支持下,竟然可以在平均15%的CPU占用率下完美播放1080p的 H264电影,CPU占用情况优于AMD单核心产品。不过Pentium4还有一个优势,就是可以播放VC1的1080p视频,我们看后文介绍。
关于VC1的解码,其实没有前面测试那么糟糕。目前很多盗版高清片源,重新封装后都延用VC1编码,一般情况下在单核心3.2GHz以上的Pentium4可以播放。而目前VC1解码器的解码效率也各有不同。上图我们看到,在PowerDVD7.3和Windvd8.08下,VC1解码效率有所不同。尤其是在这个版本的Windvd下可能VC1解码仍不完善。但我们也可以看到,以《剑鱼行动》电影为代表的高码率VC1编码影片,对于单核心CPU来说的确是个考验。
最后这项测试是验证在显卡核心频率有差别时,解码性能是否会有影响。我们此次测试的8600GT的规格为540MHz核心频率,而8600GTS核心频率为675MHz。但从测试来看,两者解码效果基本一样(E6300CPU平台下)。NVIDIA官方消息,核心频率会对解码效果有所影响,我们今后会跟进GeForce8500的解码效果。
目前流行的HDDVD和BD光盘的电影节目被MPEG2、VC1和AVC(H264)三种编码格式统治。MPEG2解码对CPU要求很低,即便是AthlonXP Barton 2500+都可以流畅播放。而NVIDIA在GeForce8500、8600上首次采用了Bitstream机制的处理单元,对应H264编码中熵编码时的高负荷解码运算。大大的解放了CPU的负担。尤其是双核心CPU(即便是入门级的产品),在打开H264硬件解码后,CPU平均占用率只有15%左右。
400MHz前端总线的2.3GHz古老的赛扬和古老的Pentium4,未来的单核心仅有1.2GHz主频的酷睿赛扬、以及现在正热门的500-600元的双核心处理器。它们在NVIDIA GeForce8600、8500 H264硬件解码下都可以流畅的播放该规格的 1080p高清视频,这的确值得大家高兴。
但对于赛扬D、3GHz以下Pentium4、单核心Athlon64等以下等级的CPU来说,GeForce8500、8600给它们的消息只能是喜忧参半。显然,即便是比这些CPU性能再差些,H264的解码也不成问题,但VC1的解码却无法解决,最终这些古董级别的平台仍然无法体验到NVIDIA的最新产品。不过毫无疑问,虽然GeForce8500还未上市,但它已经成为无数打算打造HTPC用户的非常好的待选产品。