NIVIDIA 硬解码学习1
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相关推荐
- 【学习】从零开发的Android音视频开发(13)——MediaCodec到OMX框架过程及其硬解码
MediaCodec到OMX框架过程 在讲NuPlayer时,NuPlayer解码部分会创建MediaCodec,并且最终到达OMX框架,先看MediaCodec的init函数 从init函数中可以看 ...
- AI视频行为分析系统项目复盘——技术篇2:视频流GPU硬解码
0 项目背景 见<AI视频行为分析系统项目复盘--技术篇1> https://blog.csdn.net/weixin_42118657/article/details/118105545 ...
- android硬编码封装mp4,【Android 音视频开发打怪升级:音视频硬解码篇】四、音视频解封和封装:生成一个MP4...
[声 明] 首先,这一系列文章均基于自己的理解和实践,可能有不对的地方,欢迎大家指正. 其次,这是一个入门系列,涉及的知识也仅限于够用,深入的知识网上也有许许多多的博文供大家学习了. 最后,写文章过程 ...
- 视频GPU硬解码方案对比
声明:文章仅作知识整理.分享,如有侵权请联系作者删除博文,谢谢! 实时视频处理中,紧靠CPU进行视频解码速度慢/占用CPU资源较多,导致整个系统处理效率不高,解码成为系统的瓶颈.需要进行GPU解码高清 ...
- Android音视频【三】硬解码播放H264
人间观察 穷人家的孩子真的是在社会上瞎混 遥远的2020年马上就过去了,天呐!!! 前两篇介绍了下H264的知识和码流结构,本篇就拿上篇从抖音/快手抽离的h264文件实现在Android中进行解码播放 ...
- 【Android 音视频开发-音视频硬解码篇】1.音视频基础知识
这是一个入门系列,涉及的知识也仅限于够用. 最后,写文章过程中,会借鉴参考其他人分享的文章,会在文章最后列出,感谢这些作者的分享. 本文你可以了解到 作为开篇的文章,我们先来看看音视频由什么构成的,以 ...
- ffmpeg + cuda(cuvid) 硬解码+像素格式转换(cpu主导)实战
注意: VAAPI 是inter gpu 提供的硬编解码接口 VDPAU 是 video decode present api for unix nvdec / ncvid 都是nivida产出的硬解 ...
- Android视频滤镜添加硬解码方案
由于工作的需求,研究过了一段时间的Android 的音视频播放渲染以及编辑方面的知识,这里就自己一些浅薄的了解对所了解做一个简单的介绍和记录,如有不对的地方请指正!同时也会记录下硬件解码的情况下完成滤 ...
- 集显也能硬件编码:Intel SDK 各种音视频编解码学习详解
http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...
- Qt音视频开发10-ffmpeg内核硬解码
一.前言 为了极大的降低CPU的占用,实现硬解码(也叫硬件加速)非常有必要,一个视频文件或者一路视频流还好,如果增加到64路视频流呢,如果是4K.8K这种高分辨率的视频呢,必须安装上硬解码才是上上策. ...
最新文章
- zabbix自动化监控8(2.4)
- stick和stuck的区别_怎样区别“stick to”、“stick with”和“stick by”这三个表达?...
- java读取pem格式私钥_openssl生成RSA格式及pkcs1与pkcs8格式互相转换
- 计算机设备管理规定是什么,计算机设备管理制度
- 数据挖掘:数据预处理相关概念
- Nokia真机测试程序自动退出现象搜集[1][javaME]
- python_numpy的基础
- iOS中使用URL Scheme进行App跳转
- ACC - 简介与解码
- ting56 下载 有声小说 超禁忌游戏
- mysql查询编辑器_navicat怎么进入查询编辑器
- 百万级别数据库优化方案
- Java保存书店每日交易记录
- 一文带你了解python opencv中霍夫变换(Hough transform)的常用操作
- 3.7V转1.5V超简单的LDO芯片
- OOP-面向对象程序设计
- 老黄历算命接口实现及代码示例
- 警惕!最新勒索病毒incaseformat来袭!清除方法如下!
- 顶级 Swift 服务端框架对决 Node.js
- select 多选之 xm-select