取长补短,实现VC-1“终极解码”
硬用高手
随着数字电视和HDTV高清视频的逐渐普及,很多用户在购买电脑时不再只是单纯考虑显卡的游戏性能,也同时增加了对显卡高清视频播放能力的关注。VC-1作为微软力推的一种新兴的HDTV编码格式,已经在主流高清视频格式中占有重要地位。下面就开始我们的VC-1终极解码之旅,看看如何通过软硬件的优化设置,让VC-1高清视频的播放更清晰更流畅。
一、VC-1高清视频播放中存在的问题
在现在的主流显卡中,AMD的HD 2400/2600/3800系列显卡都整合了UVD视频引擎,可以完整支持VC-1高清视频的全程硬件解码。目前能开启AMD显卡VC-1硬件解码功能的播放软件只有PowerDVD,但是PowerDVD对外挂中文字幕的支持不理想,挂上字幕后会导致无法开启硬件解码甚至死机。
而NVIDIA的G84、G86、G92系列显卡整合的BSP视频引擎只能完成对VC-1高清视频iDCT、MC两部分的硬件解码,剩下的部分必须依靠CPU来进行“软解码”,严格来说只能算“硬件加速”,因此CPU占用率比较高,搭配一些低端CPU来播放VC-1视频时往往比较吃力。
二、取长补短,实战VC-1终极解码
VC-1高清视频的播放软件一般包括解码器、分离器、播放器三部分,其中解码器又包括了视频解码器和音频解码器。VC-1高清视频中通常包含有视频信息和音频信息,有的甚至包含了多组音频和字幕信息(例如多语种对白)。播放时,分离器首先把视频和音频信息进行分离,交给各自的解码器进行解码。最后播放器会把这些解码后的信息汇总,转变为影像和声音,展现给用户。
PowerDVD在使用上简单方便,但是过于傻瓜化,只能使用默认的解码器、分离器,虽然其自带的VC-1解码器非常强大,但是搭配的音频解码器和分离器的CPU占用率比较高。面对上文中所出现的问题,我们可以取长补短,利用其他播放器来调用PowerDVD VC-1解码器,并且搭配更好的音频解码器和分离器,以此来得到更优质的播放效果。
1.软件方面的准备
首先要正确安装AMD和NVIDIA显卡的驱动程序,AMD显卡的驱动程序推荐使用催化剂驱动7.12官方正式版。
下载地址:https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/gamesite/7-12_xp32_dd_ccc_wdm_enu_55811.exe
NVIDIA显卡则推荐使用ForceWare Release 169.21版本。
下载地址:http://www.nvidia.cn/object/winxp_169.21_whql_cn.html
作为VC-1解码过程中的指挥官,播放器的选择最为重要,这里推荐使用KMPlayer,该播放器可以方便快捷地调用各种解码器和分离器。视频解码器我们选用PowerDVD自带的VC-1解码器,音频解码器则选择Sonic Cinemaster Audio Decoder,分离器方面推荐使用Sonic HD Demuxer。另外,因为我们要借用PowerDVD 中自带的VC-1解码器,所以还要安装CyberLink PowerDVD播放器,而且必须是 V7.3 Ultra版本。
KMPlayer V2.9.3.1428版、Sonic解码器分离器打包下载地址:http://www.cpcw.com/bzsoft
2.解码器/分离器的导入
正常情况下,PowerDVD 中自带的VC-1解码器是无法被第三方的播放器调用的,因此我们必须使用一个小补丁程序来“瞒天过海”。
下载该补丁(下载地址:http://www.cpcw.com/bzsoft)后解压得到一个名为“CLVc1Dec.ax”的文件,把它拷贝到PowerDVD安装目录下的 “Video Filter”文件夹中,替换掉原有的同名文件。
打开KMPlayer,点击鼠标右键菜单中的“选项→系统滤镜管理器”,然后点击滤镜管理器菜单右上角的“注册”选项卡(图1),在出现的对话框中,选择刚才覆盖到PowerDVD目录下的“CLVc1Dec.ax”文件并打开(图2)。此时可以看到CyberLink VC-1 Decoder(PDVD 7.X)已经注册到KMPlayer播放器中。


选择“CyberLink VC-1 Decoder(PDVD 7.X)”,然后点击右边的“属性”菜单(图3),选择“Use Hardware Accelerator”(启用硬件加速),并且在下面的Video Mode(视频模式)中选择“Auto-select”自动选择模式(图4)。


在上面的步骤中已经把PowerDVD的VC-1解码器调用到KMPlayer中,并且打开了硬件解码功能。下面要做的是把Sonic解码器、分离器也导入到KMPlayer中。下载上面的压缩包并解压,得到三个文件:Registry Drop.exe、SonicHDDemuxer.dll、CinemasterVideo.dll(图5),只要用鼠标把SonicHDDemuxer.dll、CinemasterVideo.dll两个文件拖放到Registry Drop.exe文件的图标上,就可以完成Sonic解码器分离器的注册。

3.KMPlayer的设置
重新打开KMPlayer,点击鼠标右键并进入“选项-参数设置”菜单中进行解码器、分离器的手动选择。首先进入”内部视频解码器”菜单中,点击“全部取消”把不用的视频解码器都取消掉(图6)。

然后进入“外部视频解码器”菜单中,点击“添加系统解码器”(图7),然后把菜单中的“CyberLink VC-1 Decoder(PDVD 7.X)”选中。注意,在选择“CyberLink VC-1 Decoder(PDVD 7.X)”时要勾选右边栏目中的“VC-1”。返回上一级菜单后,在VC-1编码视频后面选择”CyberLink VC-1 Decoder(PDVD 7.X)“解码器(图8)。


接着进入“分离器”菜单,点击“搜索外部解码器/分离器”→“添加系统编码器”,在出现的菜单中把”Sonic HD Demuxer“选中,返回上一级菜单,把MPEG-2的分离器全部选择为“Sonic HD Demuxer”(图9)。

进入“外部音频解码器”菜单,如法炮制,添加”Sonic Cinemaster Audio Decoder“,并把所有格式的音频解码器都设置为“Sonic Cinemaster Audio Decoder”(图10)。这样就设置好了解码VC-1时使用到的解码器和分离器组合。

最后进入“自定义滤镜管理器”,选择“添加已注册的滤镜”,把我们刚才选用的解码器、分离器都添加进去,并且在“优先级设置”中选择“强制使用”(图11)。这样就可以保证我们要使用的解码器、分离器都能被顺利调用。

三、播放测试
完成了上述的设置,我们就可以用KMPlayer来硬件解码VC-1高清视频了。打开VC-1视频后,播放器左下方会出现“VC-1”小图标(图12),旁边是音频信息和多声道信息。点击VC-1图标并且选择“高级播放信息”,在弹出的提示框中我们可以看到CyberLink VC-1 Decoder(PDVD 7.X)解码器已经被正确地调用(图13),VC-1硬件解码顺利开启。


下面我们来测试一下使用KMPlayer+Sonic分离器+CyberLink VC-1解码器+Sonic音频解码器的实际播放效果,测试片段采用20Mbps~30Mbps编码率的1080P VC-1视频《宁静号》、《星际传奇》、《X战警》。
测试平台配置:
CPU:Core 2 Duo E6320
主板:DFI 975G/X
内存:KINGMAX DDR2 800 1GB×2(5-5-5-18)
显卡:影驰8500GT魔灵版、盈通2600PRO
硬盘:三星SP2504C
光驱:华硕 DRW-1814BLT
电源:长城 BTX-500SD双卡王发烧版
不同播放模式下的VC-1视频播放CPU占用率

从上面的测试中我们可以看出,使用HD 2600PRO 显卡+KMPlayer硬件解码时,对VC-1的播放堪称完美,不仅可以顺利加载字幕,而且把CPU占用率很好地控制在5%以内,比运行QQ聊天时的占用率还低。而使用GF 8500GT+KMPlayer时,虽然无法全程对VC-1进行硬件解码,但也把CPU占用率控制在20%左右。得益于更优秀的Sonic分离器和音频解码器,大大降低了VC-1“软解码”计算部分对CPU的依赖性,获得比PowerDVD硬件解码更出色的播放效果。
小贴士:KMPlayer的功能设置比较全面,也更人性化,在完成上述的设置后,你还可以根据电脑配置的实际情况来选择不同的播放模式。如果你的电脑性能比较弱,为了更流畅地播放VC-1高清视频,可以在KMPlayer的“视频(高级)”菜单中选择“超级速度模式”(图14),以牺牲部分画面质量来提高播放的流畅程度。相反,如果你想要欣赏更出色的影像画质,则可以选择“质量”选项。大家可以根据自己的需要在速度与质量之间寻找平衡点。

结语
通过上文中的优化设置,不仅解决了播放VC-1视频时开启硬件解码与加载字幕的冲突问题,而且还更有效地控制了CPU占用率,让一些使用中低端平台的朋友也能顺利完成对VC-1高清视频的“终极解码”。