CoreAVC 1.9.0.0 CUDA测试

昨天CoreAVC 1.9.0.0发布了,比较重大的改进是增加了对Nvidia CUDA的支持,来看一下官方的Changelog

CoreAVC H.264 Video Codec – Version 1.9.0.0 (20090210)
– Add: NVIDIA CUDA accelerated video decoding (Thanks NVIDIA!!!)
– Add: NVIDIA CUDA detection to installer
– Add: Tray icon showing NVIDIA CUDA state (green=in use, blue=not in use)
– Add: Tray icon mouse over shows 32bit/64bit states
– Add: Initial installer changes for 32/64bit
– Add: Updated Haali Media Splitter
– Fix: Focus bug related to MCE
– Fix: Focus prevention when the tray icon is off
– Fix: Improve seeking on frames with one IDR frame
– Fix: Various small bugs

安装时,一切都和以前一样,只不过多出了一个关于CUDA的说明页

CoreAVC 1.9.0.0 Setup

这里告诉我们,CoreAVC现在支持NVidia的CUDA技术了,只需要在解码器的设置中勾选Prefer CUDA acceleration就可以打开CUDA。如果勾选了Use Tray Icon的话,当播放视频的时候系统栏里的图标变成了绿色,表示CUDA已经启用。

这里推荐的驱动程序是181.64之后,大家可以去安装昨天发布的182.05。

下面来进行一下解码测试

操作系统:Windows XP with SP3

片源:自压《穿越时空的少女》蓝光Rip 1920×1080 x264 5.1FLAC

播放器:MPC-HC 908 stable

分离器:Haali 09-01-11

渲染器:Haali 09-01-11

CPU:AMD Athlon 64 X2 4000+ OC 2.44G

显卡:影驰 9800GT中将


Without CUDA

没有打开CUDA加速

With CUDA

打开CUDA加速

从CPU占用率图可以看出,使用了CUDA之后,效果还是非常明显的。数值上,不开启CUDA平均占用率在25%左右,开启了CUDA之后平均占用率在8%左右,没有超过10%。

补充

有些DVD的特典是30i的实摄,我把这种的都压成了MBAFF,就是interlaced,通过播放的时候调用显卡的Deinterlacer来做去交错处理。但是对于这种视频,CoreAVC无法打开CUDA加速。

有些动画的ED字幕是30i的,比如《濑户的花嫁》,我在压的时候是分段处理,把ED这部分压成MBAFF,每段都输出RAW格式,然后通过copy命令基于二进制连接,再封装MKV。对于这种格式,在播放到MBAFF部分之后,使用导航跳至progressive部分会花。如果不是按照顺序播放至MBAFF的ED,而是直接通过拖拽导航条直接跳转到MBAFF的ED部分,Deinterlace会失效,30i的画面会原样输出。

《CoreAVC 1.9.0.0 CUDA测试》有10个想法

  1. 我在想个问题,264使用了大量的整数运算,而GPU的长处在于single precision的SIMD运算(至少对现时的CUDA Library来说是如此),唯一可能用上浮点运算的entropy coding环节(如果开启CABAC而不用CAVLC的话)又无法SIMDize。我觉得用CUDA写编码器不会有很大的performance gain。

  2. 确实如此,而且还有一个内存到显存的步骤,据说这个步骤的延迟目前还是很高的
    不过看x264的开发日志,09年目标有GPU运算ME环节好像~

发表评论

电子邮件地址不会被公开。 必填项已用*标注