论文部分内容阅读
此次我们请出的是近两年来在显卡业界被提及最多的技术——CUDA和硬解码。在大家求知欲的推动下他们已经逐渐被认识、熟知,甚至变得没有任何新意可言。尤其是硬解码,现在已然成为了显卡的标配之一。
传统往往过于拘谨
以往的硬件解码方式是遇到特定影片格式时,就能把解码的动作改用DXVA(DirectX Video Acceleration,硬件视频加速接口)的指令来写,送给显示卡去加速运算,再把运算结果回传变成画面。DXVA实际是微软为了让程序员能更好地开发解码器而提供的一个API(Application Programming Interface,应用程序接口),其实只是一个泛称,微软所订的DXVA 1.0只支持到MPEG-2,现在播放软件支持VC-1或H.264硬件加速都是显卡厂商与播放软件厂合作,用DXVA的延伸指令所做的,两家所用的指令并不一样。所以现在事情演得变有点复杂,NVIDIA和ATI的硬件解码一直在改,驱动程序和播放软件也得一直升级才能支持最新的技术。
由于解码器和驱动程序之间需要DXVA的介入,使得硬件解码非常不灵活,不但对新格式的支持相对缓慢,并且某些特殊封包例如MKV,硬件解码也常常失效。新的DXVA 2.0支持所有新格式,但很不幸,它与DirectX 10一样是Vista Only,所以厂商可能还是会继续用专用指令,让播放软件可以同时支持Windows XP和Vista。
小知识 API是什么?
程序员在没有API的时候,就像是工人在盖房子,大部分时间用来忙着计算水泥要用多少,钢筋应该用在哪个地。而有了API后,API代替了程序员的部分工作,盖房子就像是搭积木一样,不用专注于建筑的材料、力学等问题,直接套用API给出的方案即可,就可以腾出更多的时间用来设计房子的外观、功能了。
利用CUDA绕过麻烦的DXVA
相信CUDA不用多做介绍,配合CoreAVC 1.90完全可以绕过DXVA实现显卡GPU和解码器的直接通信,好处不言而喻,解码器的更新速度快,对新格式支持度好,并且设置也非常傻瓜化。
第一步:显卡驱动更新为182.05(目前只有182.05版本的驱动才被CoreAVC所支持,下载地址:http://news.mydrivers.com/1/127/127462.htm);卸载暴风影音、完美解码、终极解码等播放器;下载并安装CoreAVC 1.9.0(下载地址http://work.newhua.com/cfan/200907/coreavc190.zip)。
第二步:在安装CoreAVC时勾选Use Tray Icon(使用系统托盘图标)、Prefer CUDA acceleration(开启CUDA加速)(见图2)。
第三步:打开KMPlayer,按“F2键”打开“参数选项”窗口,选择左侧的外部解码器,更改右侧的H.264和AVC1为CoreAVC Video Decoder,并选择设置。
第四步:在弹出的Filter Info(过滤器信息)中,确认右下方的Prefer CUDA acceleration为勾选状态(见图3)。
用KMPlayer播放电脑中的高清影片吧,你会发现不再需要复杂的分离器设置,不再担心其他的解码器、字幕插件会使硬件解码失效,绕开了DXVA,硬件“软”解码是如此的方便。
网络大补贴
我的显卡支持CUDA吗?
http://www.nvidia.com/object/cuda_learn_products.html
事实说话,谁能更好地让CPU放假
测试中我们选用了一部MKV封装格式、H.264编码无法用通常解码器实现硬件解码的FullHD影片,使用CPU进行软解时三核心的羿龙X3 8750平均占用率高达50%左右,而开启CUDA加速后,平均CPU占用率降到了只有10%左右的水平(见图4)。
传统往往过于拘谨
以往的硬件解码方式是遇到特定影片格式时,就能把解码的动作改用DXVA(DirectX Video Acceleration,硬件视频加速接口)的指令来写,送给显示卡去加速运算,再把运算结果回传变成画面。DXVA实际是微软为了让程序员能更好地开发解码器而提供的一个API(Application Programming Interface,应用程序接口),其实只是一个泛称,微软所订的DXVA 1.0只支持到MPEG-2,现在播放软件支持VC-1或H.264硬件加速都是显卡厂商与播放软件厂合作,用DXVA的延伸指令所做的,两家所用的指令并不一样。所以现在事情演得变有点复杂,NVIDIA和ATI的硬件解码一直在改,驱动程序和播放软件也得一直升级才能支持最新的技术。
由于解码器和驱动程序之间需要DXVA的介入,使得硬件解码非常不灵活,不但对新格式的支持相对缓慢,并且某些特殊封包例如MKV,硬件解码也常常失效。新的DXVA 2.0支持所有新格式,但很不幸,它与DirectX 10一样是Vista Only,所以厂商可能还是会继续用专用指令,让播放软件可以同时支持Windows XP和Vista。
小知识 API是什么?
程序员在没有API的时候,就像是工人在盖房子,大部分时间用来忙着计算水泥要用多少,钢筋应该用在哪个地。而有了API后,API代替了程序员的部分工作,盖房子就像是搭积木一样,不用专注于建筑的材料、力学等问题,直接套用API给出的方案即可,就可以腾出更多的时间用来设计房子的外观、功能了。
利用CUDA绕过麻烦的DXVA
相信CUDA不用多做介绍,配合CoreAVC 1.90完全可以绕过DXVA实现显卡GPU和解码器的直接通信,好处不言而喻,解码器的更新速度快,对新格式支持度好,并且设置也非常傻瓜化。
第一步:显卡驱动更新为182.05(目前只有182.05版本的驱动才被CoreAVC所支持,下载地址:http://news.mydrivers.com/1/127/127462.htm);卸载暴风影音、完美解码、终极解码等播放器;下载并安装CoreAVC 1.9.0(下载地址http://work.newhua.com/cfan/200907/coreavc190.zip)。
第二步:在安装CoreAVC时勾选Use Tray Icon(使用系统托盘图标)、Prefer CUDA acceleration(开启CUDA加速)(见图2)。
第三步:打开KMPlayer,按“F2键”打开“参数选项”窗口,选择左侧的外部解码器,更改右侧的H.264和AVC1为CoreAVC Video Decoder,并选择设置。
第四步:在弹出的Filter Info(过滤器信息)中,确认右下方的Prefer CUDA acceleration为勾选状态(见图3)。
用KMPlayer播放电脑中的高清影片吧,你会发现不再需要复杂的分离器设置,不再担心其他的解码器、字幕插件会使硬件解码失效,绕开了DXVA,硬件“软”解码是如此的方便。
网络大补贴
我的显卡支持CUDA吗?
http://www.nvidia.com/object/cuda_learn_products.html
事实说话,谁能更好地让CPU放假
测试中我们选用了一部MKV封装格式、H.264编码无法用通常解码器实现硬件解码的FullHD影片,使用CPU进行软解时三核心的羿龙X3 8750平均占用率高达50%左右,而开启CUDA加速后,平均CPU占用率降到了只有10%左右的水平(见图4)。