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

使用CUDA显卡加速SDK实现 H264编码相关推荐

  1. NVENC SDK 设置h264编码的slice划分问题

    1.问题:如何用NVENC h264编码一帧时划分更多的slice? 在官网下载的英伟达硬件编解码SKD:Video_Codec_SDK_11.1.5,编码h264时发现能够实现的最大slice数目为 ...

  2. FFMPEG 使用显卡加速转码

    FFMPEG 使用显卡加速转码 前言 视频转码时如果遇见视频比较大.时长很长的时候,转码压制需要等待很久且及占用cpu,所以就在想有没有什么办法可以加速转码进度呢 ,故本篇文章记录FFMPEG如何调用 ...

  3. 采集音频和摄像头视频并实时H264编码及AAC编码

    0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...

  4. 采集音频和摄像头视频并实时H264编码及AAC编码[转]

    0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...

  5. ae怎么设置gpu渲染_AE怎么开启影驰GTX750 GPU显卡加速?AE渲染开启GPU设置教程

    AE怎么开启影驰GTX750 GPU显卡加速?不少朋友都再问这个问题,下面系统世家大嘴巴根据网络资源整理出来有关资料,希望可以帮到大家,下面我们一起看看AE渲染开启GPU设置教程吧. 大嘴巴有话说: ...

  6. 1.1 海思3518 H264编码

    海思的SDK里其实有H264编码的sample,但因为要匹配很多东西,代码有点复杂,让初学都感到有点混乱.我根据sample自己修改了一下代码,从最简单的情况(确定摄像头类型,只选一种尺寸的图片,只用 ...

  7. CUDA并行加速一 -- 名词概念

    CUDA并行加速一 ------ 名词概念 在做CUDA并行加速时首先要明确几个概念,什么是显卡,什么是显卡驱动,什么是显卡内存,什么是GPU,什么是CUDA,什么是Cudnn. 显卡 不由分说,显卡 ...

  8. 若使用numba.cuda.jit加速pytorch训练代码会怎样

    也许没有察觉 在使用pytorch训练数据的时候cuda 显卡总是发挥不到最大性能 这就是你的cpu程序拖住了你的显卡 怎么办 目前我能想到的最好方法就是 使用numba.cuda.jit这样你也不用 ...

  9. ffmpeg的H264编码 视频逐渐模糊

    万能的互联网,又一次在临危之时解决了我的问题 最近在看ffmpeg里的H264编码,然后试着去做了一下.但是目前发现一个问题,就是编码写入的.264文件,用播放器(VLC,暴风都试过)播放后,发现编码 ...

最新文章

  1. 【Flask】request请求
  2. DSP、ARM和单片机的区别
  3. hp服务器硬盘ultra320,惠普/hp 300GB 1.5万转 3.5寸 SAS服务器硬盘 P/N:431944-B21
  4. asp.core api 通过socket和服务器通信发送udp_读懂Java中的Socket编程
  5. 如何编写高效优雅 Java 程序
  6. 架设 DNF(地下城与勇士) 三分钟搭建
  7. 可见光植被指数,RGB影像植被指数
  8. 数据安全分类分级剖析
  9. Python爬虫实战之爬取饿了么信息
  10. BTA前瞻 | 这家区块链公司币圈链圈通吃!专访井通科技CTO杨建新
  11. java 电子邮件客户端_java中的电子邮件客户端
  12. c++ min/max
  13. 利用出生年月日求年龄
  14. 周杰伦一发新歌,服务器为什就挂掉了?
  15. CUDA/cudnn/CUDA Toolkit/NVCC区别简介
  16. 关于我——人工智能专业大二的一年
  17. debian系统安装Google浏览器
  18. pandas中的concat操作
  19. ServerRoot must be a valid directory
  20. 订单失效怎么做的_数据库压力降低90%,携程机票订单缓存系统实践

热门文章

  1. labelme 简介
  2. Android创建一个无启动页服务
  3. 台式win7f1到f12热键取消_win10系统怎么关闭f1到f12的快捷键
  4. 《武林外传》之(二) 佟掌柜的三板斧
  5. excel表中怎么插入visio_怎样在visio中插入表格
  6. Games102 学习笔记
  7. 七牛云 上传图片问题
  8. mysql基于SSM的学生社团管理系统 毕业设计源码211531
  9. c语言实现跨平台dns域名解析
  10. Matlab编程:如何将不同类型的数据写入Excel表格