注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gunwww的博客

 
 
 

日志

 
 

取长补短,实现VC-1“终极解码”  

2009-04-30 20:14:42|  分类: 终极解码 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  一、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官方正式版。NVIDIA显卡则推荐使用ForceWare Release 169.21版本。

  作为VC-1解码过程中的指挥官,播放器的选择最为重要,这里推荐使用KMPlayer,该播放器可以方便快捷的调用各种解码器和分离器。视频解码器我们选用PowerDVD自带的VC-1解码器,音频解码器则选择Sonic Cinemaster Audio Decoder,分离器方面推荐使用Sonic HD Demuxer。另外,因为我们要借用PowerDVD 中自带的VC-1解码器,所以还要安装CyberLink PowerDVD播放器,而且必需是 V7.3 Ultra版本。

  2.解码器/分离器的导入

  正常情况下,PowerDVD 中自带的VC-1解码器是无法被第三方的播放器调用的,因此我们必须使用一个小补丁程序来“瞒天过海”。

  下载该补丁后解压得到一个名为“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)。

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:注册

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:选择“CLVc1Dec.ax”文件并打开

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:属性

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:选择“Auto-select”自动选择模式

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

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:得到三个文件

  3.KMPlayer的设置

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

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:点击“全部取消”

  然后进入“外部视频解码器”菜单中,点击“添加系统解码器”(图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)。

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:点击“添加系统解码器”

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:选择CyberLink VC-1 Decoder(PDVD 7.X)解码器

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

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

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:把MPEG-2的分离器全部选择为“Sonic HD Demuxer”

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:把所有格式的音频解码器都设置为“Sonic Cinemaster Audio Decoder”

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

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:在“优先级设置”中选择“强制使用”

  三、播放测试

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

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:播放器左下方会出现“VC-1”小图标

取长补短,实现VC-1“终极解码” - gunwww - gunwww的博客

图:解码器已被正确调用

  下面我们来测试一下使用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“终极解码” - gunwww - gunwww的博客

不同播放模式下的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“终极解码” - gunwww - gunwww的博客

图:选择“超级速度模式”

  结语

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

  评论这张
 
阅读(693)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017