使用CUDA显卡加速SDK实现 H264编码

是一种由内部的架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA的处理器上以超高性能运行。

NVIDIA在CUDA的基础上建立了一套SDK用于使用显卡硬件加速来进行H264编码,可以在CPU占用率很小的情况下完成高质量实时的H264编码。要使用CUDA进行H264编码,首先你要确定你的显卡驱动是否支持CUDA,(一般现在的NVIDIA显卡的驱动已经支持CUDA,如果不确定,可以到官方网站去下载最新的CUDA驱动安装)。然后CUDA toolkit安装包,根据机器系统,进入地址在https://developer.nvidia.com/选择需要的安装包,这些安装包分别支持XP32,Win7/Win8 32位和64位的台式机系统和笔记本系统。安装好安装包后,系统中应该包含了CUDA toolkit和 CUDA SDK。

安装好CUDA SDK包后,,就可以进行H264编码开发了。在其SDK样例代码中,附带了一个CudaEncode样例代码,在VS2010系统中可以编译调试,理解该SDK实现的H264编码,通过编译调试,发现在GT635M的移动笔记本电脑上可以接近实时编码1920x1080I的高清编码,在编码过程中,CPU的占用时间平均不超过10%(主要是用于读取视频文件和写编码后的H264文件)。

在该演示代码中,主要包括三个文件VideoEncoder.h, VideoEncoder.cpp和main.cpp文件,VideoEncoder.h和VideoEncoder.cpp实现了对CUDA SDK编码做了简单的封装,包括启动,调用编码配置文件,编码和结束编码,读取YUV文件和写H264文件的封装。main.cpp演示了调用过程,编译成功后,系统生成执行文件cudaEncode.exe。该执行文件编码的调用方式为:

cudaEncode -input=test.yuv -format=IYUV -device=0 -cfg=test.cfg-out=test.h264。

-input为输入文件,-format为输入视频的色彩样式(系统支持UYVY,YUY2,IV12,NV12, IYUV)。-device为使用的设备数目,不加该参数,系统自动判断处理,-cfg=test.cfg为编码配置文件,-out为输出文件。

演示工程源代码下载地址:

人生有一半掌握在上帝那里,另一半攥在自己的手中。

使用CUDA显卡加速SDK实现 H264编码

相关文章:

你感兴趣的文章:

标签云: