有了片源,下面就可以进入第二步了,那就是高清视频的解码,当然,这部分重点是讲解给那些通过电脑(或者HTPC)来解码高清影片/视频的读者,其实这是目前大部分用户实现高清播放的方式。
在之前的文章中,我们大量的进行了显卡高清解码能力的概念解释以及性能考察,这方面将不是我们今天讨论的重点,因为高清解码能力是播放高清的一方面,真正播放高清还有很多其它的问题,在此我们只简单回顾一下GeForce 8600/8500/8400系列和HD 2600/2400系列显卡在解码高清时的异同,从而为下面的内容打基础。
◆ 高清解码的原理和步骤
高清编码的处理一般分为几个步骤,每个步骤会完成相应的任务,而解码的时候也会存在这些步骤,从而达成影片的顺利播放。这些步骤都会被执行(也许个别步骤可以省略,但是主要步骤都会存在),但是处理这些步骤的配件可能不同。电脑上,自然是CPU和显卡这两个配件来执行,我们播放高清影片导致的不流畅大都是因为CPU占用率过高,原因就是CPU处理了大部分步骤或者负载很高的步骤,显卡能解决的问题就是它来承担这些负载很高的步骤,从而释放了CPU的负担。
那么究竟哪个步骤最为消耗CPU占用率呢?下面的测试对比应该最能说明问题(见下图)。对比的视频包括Mpeg2和H.264(AVC),其中上面我们讲到的四个步骤都有涉及。显而易见,“流处理”是所有编码格式中最为消耗处理器运算的部分,但是Mpeg2视频的这部分还并不会造成很大的困扰,因为CPU的占用率还不到2%。
不同编码格式在解码过程中各个步骤的CPU消耗比率 | ||||
编码格式 | MPEG-2 | H.264/AVC | ||
数据流算法 | VLC | CAVLC | CABAC | CABAC |
码率 | 8Mb/s | 20Mb/s | 20Mb/s | 40Mb/s |
流处理 占用率 | 1.6% | 8.9% | 26.5% | 47.8% |
视频变换 占用率 | 0.7% | 1.2% | 1.5% | 2.6% |
动态补偿 占用率 | 0.5% | 11.0% | 11.5% | 11.6% |
去块滤波 占用率 | N/A | 8.2% | 8.5% | 8.2% |
注:以上的是4种不同的视频数据流算法解码时4个主要步骤所消耗的CPU占用率 |
『不同步骤的CPU占用率对比,显然H.264编码的“流处理”要求最高』
显卡的高清解码能力就是体现在能否实现所有高清解码过程的“GPU”化,答案已经很明显,在两种主要的高清编码格式上:H.264格式,NVIDIA和ATI显卡解码能力相近,都能实现全程解码;而VC-1格式,ATI作的比NVIDIA更彻底,HD 2600/2400实现了全程解码,而GeForce 8600/8500/8400则认为实现部分过程解码已经足够了。
单纯从比较结果看,HD 2600/2400的高清解码能力显然比GeForce 8600/8500/8400更全面。但实际使用中,你会发现结果并不如想像的那么简单。实际上,单纯具备解码能力是不是高清播放的唯一诉求?答案显然是否定的,我们会在下文继续讲解,在这之前,还是总结一下本节内容的两方优缺点。
显卡解码能力的优缺点对比 | ||
|
8600/8500/8400显卡 |
2600/2400显卡 |
优势 |
支持H.264硬件全程解码 |
支持全格式硬件全程解码 |
不足 |
不支持VC-1全程解码 |
下文分解 |
从上表看,好像留了点悬念给大家,对高清播放比较了解的行家可能已经知道是什么,但毕竟不了解的朋友更多,目前究竟该选择哪类显卡还是疑问,那就请接着往下看。
[小贴士]显卡的驱动选择同样,重要驱动推荐:
ATI Radeon HD 2600/2400:催化剂7.9(7.8、7.7)WHQL版。
NVIDIA GeForce 8600/8500/8400:Forceware 163.67、163.44Beta版本(XP)