记录一下遇到几个平台里的视频编解码和图像scale的硬件加速的方法

1,intel平台
当包含GEN系列的集成GPU时,可用libva实现视频codec、颜色空间转换和图像scale的硬件加速,具体可使用libyami这个接口友好的封装库。加速处理过程中图像位于GPU内存,用libva的Surface表示。其在原生的linux和Android NDK环境中均可用。

2,Allwinner平台
可以直接使用特有的 cedarx 硬件引擎实现视频编解码加速。使用G2D组件实现图像scale的硬件加速。其SDK包可从其官方github上获取。

3,opemnax接口
openmax只是一套开放的媒体处理接口,有些厂商不直接提供原生的媒体SDK,将媒体处理功能以Openmax接口来提供。此时只能使用Openmax来使用硬件加速功能了。具体需要阅读Openmax接口规范,以及厂商自身的额外提供的扩展接口。
此类接口比较广泛,比如MTK/Intel/RasperryPi等,都可用。具体的功能是通过OMX组件来提供的,因此具体需要看实际有组件可用。在android系统框架中也有openmax组件接口可用,但只能用于系统定制开发,在开发App时只能使用Mediacodec接口。

4,Android的MediaCodec接口
MediaCodec接口为新版Android的所提供的媒体处理接口,其本质上也是基于openmax接口来做的实现。各个硬件平台厂商对自己平台提供的硬件加速功能以openmax接口的方式进行提供,在android框架中基于OMX继续封装成MediaCodec,实际上在android框架中除了平台厂商提供的硬件加速OMX组件,也有android提供软codec组件实现。这些实现位于libstagefright中。

5,Nvidia VideoCodec
直接利用显卡的内部的硬件视频编解码音频来进行编解码(不是CUDA计算引擎),直接使用vidia-video-codec-sdk来做开发即可。好处是与CUDA交互比较方便。类似主要是视频编解码功能。

其他平台没有接触到,暂不记录。

=== update 2017年12月25日 ===
其实各个平台实现硬件加速媒体处理的基本原理都是一致的,即在图像数据放在专有memory中,然后交给专有的硬件单元进行计算处理,这些专有硬件单元对这些计算任务都是特别设计和优化的,所以其处理速度比CPU软处理要快。

因而若图像数据开始时在常规内存中,那么则需要先将其copy到专有memory中,然后才能进行这些硬件加速计算,并且结果若需要由CPU后续处理,也需要将数据从专有memory中copy回常规内存中,这些copy过程效率取决于硬件平台的设计实现(CPU和内存总线等),性能各不相同,但是都是需要额外耗时的。若数据量比较小,且这种copy动作较多,那么copy动作耗时占比可能比较大,那么整体的效率可能还不如直接由CPU对常规内存中的数据进行直接处理来的快。

类似CUDA/OpenCL的使用都有类似问题,因而是否需要采用硬件加速计算,需要视情况而定,综合考虑数据量大小/硬件加速效率之后再决定,而不是一概盲目采用。

几个平台环境里视频编解码和图像scale的硬件加速的方法的更多相关文章

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

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

  2. 【miscellaneous】各种音视频编解码学习详解

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  3. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

  4. 视频编解码学习之路(H264)

    学习视频编解码技术很难吗?视频编解码技术的未来是什么? 明了的说,无论是软件还是硬件设计,视频编解码技术有很多难点,都需要很长一段时间积累才行. 从一开始接触MPEG-2到最新的H.264标准,可算走 ...

  5. 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准

    一.H264 概述 H.264,通常也被称之为H.264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 1. H.264视频编解码的意义 H.264的出现就是为了创 ...

  6. 视频编解码---x264用于编码,ffmpeg用于解码

    项目要用到视频编解码,最近半个月都在搞,说实话真是走了很多弯路,浪费了很多时间.将自己的最终成果记录于此,期望会给其他人提供些许帮助. 参考教程: http://ffmpeg.org/trac/ffm ...

  7. FFmpeg音视频编解码实践总结

    PS:由于目前开发RTSP服务器传输模块时用到了h264文件,所以攻了一段时间去实现h264的视频编解码,借用FFmpeg SDK实现了任意文件格式之间的转换,并实现了流媒体实时播放,目前音视频同步需 ...

  8. 121-基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 机器人主板

    基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 一.板卡概述 本系统基于最先进的DSP技术,构建一个全高清的视频编解码系统,采用TI的芯片.借助TI的DaVin ...

  9. [转帖]AVS音视频编解码技术了解

    AVS高清立体视频编码器 电视技术在经历了从黑白到彩色.从模拟到数字的技术变革之后正在酝酿另一场技术革命,从单纯观看二维场景的平面电视跨越到展现三维场景的立体电视3DTV.3DTV系统的核心问题之一是 ...

随机推荐

  1. log4j源码解析-文件解析

    承接前文log4j源码解析,前文主要介绍了log4j的文件加载方式以及Logger对象创建.本文将在此基础上具体看下log4j是如何解析文件并输出我们所常见的日志格式 附例 文件的加载方式,我们就选举 ...

  2. vue中如何获取后台数据

    原文链接:http://blog.csdn.net/vergilgeekopen/article/details/68954940 需要引用vue-resource 安装请参考https://gith ...

  3. [Sdoi2017]数字表格 [莫比乌斯反演]

    [Sdoi2017]数字表格 题意:求 \[ \prod_{i=1}^n \prod_{j=1}^m f[(i,j)] \] 考场60分 其实多推一步就推倒了... 因为是乘,我们可以放到幂上 \[ ...

  4. H5动画

    1.参考:http://blog.csdn.net/whqet/article/details/42911059?readlog https://developer.mozilla.org/zh-CN ...

  5. 六、BeautifulSoup4------自动登录网站(手动版)

    每天一个小实例:(按照教学视频上自动登录的网站,很容易就成功了.自已练习登录别的网站,问题不断) 这个自己分析登录boss直聘.我用了一下午的时间,而且还是手动输入验证码,自动识别输入验证码的还没成功 ...

  6. Redis 学习(二) —— 数据类型及操作

    Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个 ...

  7. iperf命令

    iperf命令网络测试 iperf命令是一个网络性能测试工具.iperf可以测试TCP和UDP带宽质量.iperf可以测量最大TCP带宽,具有多种参数和UDP特性.iperf可以报告带宽,延迟抖动和数 ...

  8. jq实现数字增加或者减少的动画

    效果图: 1.HTML: <div class="up"></div> <br> <div class="down"& ...

  9. 权限认证 cookie VS token

    权限认证 cookie VS token 我前公司的应用都是 token 授权的,现公司都是维护一个 session 确认登录状态的.那么我在这掰扯掰扯这两种权限认证的方方面面. 工作流程 先说 co ...

  10. 对于文件File类型中的目录分隔符

    当我们在使用File f=new File(path); 对于这个path来说是一个很痛苦的事情,在不同的系统上面的分隔符号是不一样的 在windows下面的话是一个"\"而在un ...