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

  • Post author:
  • Post category:其他




CUDA(Compute Unified Device Architecture)





显卡



厂商



NVIDIA



推出的运算平台。

CUDA™

是一种由

NVIDIA

推出的通用



并行计算



架构,该架构使



GPU



能够解决复杂的计算问题。它包含了

CUDA




指令集架构







ISA



)以及

GPU

内部的



并行计算



引擎。开发人员现在可以使用




C

语言



来为

CUDA™

架构编写程序,

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

为输出文件。


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


http://download.csdn.net/detail/seniorwizard/6313395



版权声明:本文为seniorwizard原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。