NIVIDIA 硬解码学习1

https://blog.csdn.net/poweroranger/article/details/77845238

https://blog.csdn.net/LG1259156776/article/details/73274226

https://www.cnblogs.com/betterwgo/p/6613641.html

1. 前言

  • 官方提供的资料比较少,只包括一页的视频解码器介绍和示例代码

2. 例程介绍

  • nvidia提供了source, parser, decoder三个基本模块。
  • source是用来解析视频文件(例如:纯h.264文件)
  • parser是用来解析视频并得到一帧帧的数据
  • decoder就是解码

VideoSource

  • VideoSourceData中包含了CUvideoparser和FrameQueue,通过上图可以看出,CUvideoparser是在VideoDecoder基础上实现了接口的封装,而VideoSource则是通过CUvideoparser进行解码。FrameQueue是存储硬件解码后图像的队列,注意硬件解码完的图像是存放在GPU显存里面了,而VideoDecoder中函数mapFrame,可完成从显存到内存的映射。

VideoParser

  • VideoParser中最重要的是三个回调函数,static int CUDAAPI HandleVideoSequence(void *pUserData, CUVIDEOFORMAT *pFormat), HandlePictureDecode(void *pUserData, CUVIDPICPARAMS *pPicParams),HandlePictureDisplay(void *pUserData, CUVIDPARSERDISPINFO *pPicParams),实现对视频格式变换、视频解码、解码后显示等处理功能。HandleVideoSequence主要负责视频格式进行校验,没有实现其他功能,解码函数HandlePictureDecode调用的就是VideoDecoder的解码函数(CUDA的接口),显示函数HandlePictureDisplay完成了解码后GPU图像进入FrameQueue。

VideoDecoder

  • 该类是最核心的硬件解码功能类,CUVIDDECODECREATEINFO oVideoDecodeCreateInfo_是创建解码信息结构体,CUvideodecoder oDecoder_是最内核的CUDA硬件解码器,VideoParser的解码功能实际上是在CUvideodecoder解码内核上封装实现的(层层封装导致源码有点复杂,所以想看懂实现机制需要有点耐心)。

NIVIDIA 硬解码学习1相关推荐

  1. 【学习】从零开发的Android音视频开发(13)——MediaCodec到OMX框架过程及其硬解码

    MediaCodec到OMX框架过程 在讲NuPlayer时,NuPlayer解码部分会创建MediaCodec,并且最终到达OMX框架,先看MediaCodec的init函数 从init函数中可以看 ...

  2. AI视频行为分析系统项目复盘——技术篇2:视频流GPU硬解码

    0 项目背景 见<AI视频行为分析系统项目复盘--技术篇1> https://blog.csdn.net/weixin_42118657/article/details/118105545 ...

  3. android硬编码封装mp4,【Android 音视频开发打怪升级:音视频硬解码篇】四、音视频解封和封装:生成一个MP4...

    [声 明] 首先,这一系列文章均基于自己的理解和实践,可能有不对的地方,欢迎大家指正. 其次,这是一个入门系列,涉及的知识也仅限于够用,深入的知识网上也有许许多多的博文供大家学习了. 最后,写文章过程 ...

  4. 视频GPU硬解码方案对比

    声明:文章仅作知识整理.分享,如有侵权请联系作者删除博文,谢谢! 实时视频处理中,紧靠CPU进行视频解码速度慢/占用CPU资源较多,导致整个系统处理效率不高,解码成为系统的瓶颈.需要进行GPU解码高清 ...

  5. Android音视频【三】硬解码播放H264

    人间观察 穷人家的孩子真的是在社会上瞎混 遥远的2020年马上就过去了,天呐!!! 前两篇介绍了下H264的知识和码流结构,本篇就拿上篇从抖音/快手抽离的h264文件实现在Android中进行解码播放 ...

  6. 【Android 音视频开发-音视频硬解码篇】1.音视频基础知识

    这是一个入门系列,涉及的知识也仅限于够用. 最后,写文章过程中,会借鉴参考其他人分享的文章,会在文章最后列出,感谢这些作者的分享. 本文你可以了解到 作为开篇的文章,我们先来看看音视频由什么构成的,以 ...

  7. ffmpeg + cuda(cuvid) 硬解码+像素格式转换(cpu主导)实战

    注意: VAAPI 是inter gpu 提供的硬编解码接口 VDPAU 是 video decode present api for unix nvdec / ncvid 都是nivida产出的硬解 ...

  8. Android视频滤镜添加硬解码方案

    由于工作的需求,研究过了一段时间的Android 的音视频播放渲染以及编辑方面的知识,这里就自己一些浅薄的了解对所了解做一个简单的介绍和记录,如有不对的地方请指正!同时也会记录下硬件解码的情况下完成滤 ...

  9. 集显也能硬件编码:Intel SDK 各种音视频编解码学习详解

    http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...

  10. Qt音视频开发10-ffmpeg内核硬解码

    一.前言 为了极大的降低CPU的占用,实现硬解码(也叫硬件加速)非常有必要,一个视频文件或者一路视频流还好,如果增加到64路视频流呢,如果是4K.8K这种高分辨率的视频呢,必须安装上硬解码才是上上策. ...

最新文章

  1. zabbix自动化监控8(2.4)
  2. stick和stuck的区别_怎样区别“stick to”、“stick with”和“stick by”这三个表达?...
  3. java读取pem格式私钥_openssl生成RSA格式及pkcs1与pkcs8格式互相转换
  4. 计算机设备管理规定是什么,计算机设备管理制度
  5. 数据挖掘:数据预处理相关概念
  6. Nokia真机测试程序自动退出现象搜集[1][javaME]
  7. python_numpy的基础
  8. iOS中使用URL Scheme进行App跳转
  9. ACC - 简介与解码
  10. ting56 下载 有声小说 超禁忌游戏
  11. mysql查询编辑器_navicat怎么进入查询编辑器
  12. 百万级别数据库优化方案
  13. Java保存书店每日交易记录
  14. 一文带你了解python opencv中霍夫变换(Hough transform)的常用操作
  15. 3.7V转1.5V超简单的LDO芯片
  16. OOP-面向对象程序设计
  17. 老黄历算命接口实现及代码示例
  18. 警惕!最新勒索病毒incaseformat来袭!清除方法如下!
  19. 顶级 Swift 服务端框架对决 Node.js
  20. select 多选之 xm-select

热门文章

  1. Java static关键字与静态块
  2. centos7 播放网页flash视频
  3. 开源和免费的gis软件工程索引
  4. go-ipfs命令详解之files
  5. Emily Morehouse的Python社区访谈
  6. mac 安装java8
  7. uniapp全端应用商城系统,应用市场APP,软件库APP,葫芦芥子博客
  8. 云计算时代的软件行业变化
  9. 小程序-云开发:云开发是什么?
  10. 模拟静态小米商城官网html+css