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
     
     为输出文件。
    
   
    
     演示工程源代码下载地址:
    
   
 
