一直以来,在高清玩家中都有高清视频软解码画质好于硬解码画质的观点。但是,大多数玩家对软解码和硬解码的了解并不够深入,很多只是道听途说,将信将疑。那么,软解码画质究竟好在哪里?我们今天一起来寻找答案。
视频解码有四个步骤,分别是VLD(流处理)、iDCT(频率转换) 、MoComp(运动补偿)和PostProc(显示后处理,解码去块滤波Deblocking)。通常我们所说的硬件加速或硬件解码,就是指视频解码的这几个步骤中,用显卡专用的解码引擎替代CPU的软件计算,降低CPU的计算负荷。
显卡的硬件解码引擎
微软规定的显卡硬件加速标准为DXVA 2.0(DirectX Video Acceleration),它将显卡硬件加速级别从高到低划分为四个等级,顺序为:VLD>iDCT>MoComp>PostProc。主要包括和以上四个步骤对应的流处理(Bitstream Processing CAVLC/CABAC,前后自适应可变长度编码、前后自适应二进制算数编码)、逆变换(Inverse Transform)、运动补偿(Motion Compensation)、解码去块滤波(Deblocking)。其中VLD加速包含了全部四步,iDCT加速包含了MoComp和PostProc;MoComp加速包含了PostProc。而对H.264视频解码则加上了FGT(Film Grain Technology,电影胶片质感技术)后分为A~F的六个等级,F级的硬解级别高。
其实,无论是硬件解码还是软件解码,所进行的解码过程和解码结果都是完全一样的。他们的区别就是视频解码的工作是由处理器完成,还是由显卡来完成而已。因此,在理论上硬件解码和软件解码的效果应该是完全一样的。但是,也的确有用户在开启和关闭硬解码之后发现明显的画质区别,这个关键在于后一个解码步骤PostProc(显示后处理,解码去块滤波操作Deblocking)。Deblocking的意思为解码去块,能够消除H.264压缩编码可能产生的马赛克现象,真实地还原视频图像。Deblocking对处理器提出了较高的要求,早期的GeForce 6/7或Radeon X1000显卡在开启显卡硬件加速的状态下就会关闭解码去块滤波操作Deblocking,这时播放一些影片会看到较明显的马赛克现象,明显影响画面质量。而在其它编码格式的高清视频中,则没有相关的问题。
Core AVC 中,对于Deblocking的选项设置。
目前,GeForce 8系列和Radeon HD 2000系列以后的显卡默认是开启Deblocking解码去块滤波操作的。PowerDVD的解码器会根据显卡对于H.264编码的解码能力,来相应作出不同的Deblocking设定。上一代显卡能力不足,就会关闭Deblocking来保证播放速度。
Deblocking忽略后,画面出现了不明显的马赛克。
而目前的新显卡解码能力足够,就可以开启Deblocking来获得好的画质。在CoreAVC H.264 Video Codec软件中,关于Deblocking有三个选项,分别是Standard Deblocking、Skip B-Frame Deblocking和Skip All Deblocking。第一个选项是标准的Deblocking,保证良好的画面质量,要求较高的处理器性能。如果处理器配置不高的话,建议启用Deblocking,它会放弃B帧的Deblocking。如果是单核处理器,建议选Skip All Deblocking,不做Deblocking,可提高解码速度20%以上,用降低画质来换取高速度的解码。
我们简单对比一下目前主流显卡的软解和硬解效果,测试平台是Pentium 4 530(3.0GHz HT) 、GeForce 8500 GT显卡、Windows XP SP2系统和Forceware驱动程序。测试片源是来自蓝光的高码率H.264和VC-1 Remux电影。播放软件是PowerDVD 7.3 build 2911、Windows Media Player 11和KMPlayer。
由于测试平台比较老旧,因此在打开硬件加速后,能够明显降低处理器的占用率,使得高清电影的播放流畅起来。硬件解码可以明显降低处理器的占用率,显卡进行解码的视频画面通过对放大的截图细节进行对比后,发现软解和硬解的画质完全没有区别。影片的解码效果是由影片本身决定的,和由处理器解码还是显卡解码没有关系。而NVIDIA的PureVideo HD和AMD的Avivo HD相比,它们的解码引擎不同,但是所进行的解码过程和内容是一致的。只可能会出现解码效率高低的差异,而不会出现画质的差别。但是实际上,这两种高清视频解码引擎除了要完成视频解码之外,还包含了HDCP电路和画质的优化算法,所以各自的解码画质在测试中略有区别。
H.264关闭和打开硬件加速后的细节对比
VC-1关闭和打开硬件加速后的细节对比
我们也观察到,确实有很多用户在反映软解和硬解的画质之间有区别,那么我们在排除GeForce 6/7系列显卡的关闭解码去块滤波操作Deblocking的不足后,软解的画质好在什么地方呢?这是因为硬解时,往往只能用特定的播放模式进行播放,调用固定的解码器和视频输出模式才能打开硬解。而软解播放时有很多丰富的模式可以选择,解码器并不固定。并且硬解的时候无法使用软件的视频后处理滤镜,而软解却可以通过加载一些优化视频的滤镜使得画质看起来似乎更加鲜艳生动一些,这也是一些软解推崇者说软解画质比硬解好的主要原因。所以,软解画质优于硬解,也是由于后期是否进行滤镜优化造成的,不是因为由谁解码而造成的。
在上一期的《微型计算机•高清实验室》栏目中,我们已经探讨了HTPC和家用设备之间的灰阶问题。PC用户在调用PowerDVD解码器硬解,在Overlay/VMR9渲染状态下存在灰阶的问题,造成画面细节的降低,也是影响画质的原因之一。我们可以通过更改驱动面板上的调整视频颜色选项中的高级菜单来对PC Level和TV Level的灰阶进行调节。
本文通过对硬解的剖析,进一步地了解硬解与软解产生画质区别的真实原因。虽然问题并不复杂,但是错误理解者却大有人在。我们希望高清视频的解码在未来能够更方便,我们不用再去关心是软解还是硬解的问题,不用再烦恼分离器、解码器、灰阶等众多问题,这才是高清普及的重要条件。