几个平台环境里视频编解码和图像scale的硬件加速的方法
记录一下遇到几个平台里的视频编解码和图像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的硬件加速的方法的更多相关文章
- 集显也能硬件编码:Intel SDK && 各种音视频编解码学习详解
http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...
- 【miscellaneous】各种音视频编解码学习详解
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
- 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...
- 视频编解码学习之路(H264)
学习视频编解码技术很难吗?视频编解码技术的未来是什么? 明了的说,无论是软件还是硬件设计,视频编解码技术有很多难点,都需要很长一段时间积累才行. 从一开始接触MPEG-2到最新的H.264标准,可算走 ...
- 音视频编解码技术(一):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的出现就是为了创 ...
- 视频编解码---x264用于编码,ffmpeg用于解码
项目要用到视频编解码,最近半个月都在搞,说实话真是走了很多弯路,浪费了很多时间.将自己的最终成果记录于此,期望会给其他人提供些许帮助. 参考教程: http://ffmpeg.org/trac/ffm ...
- FFmpeg音视频编解码实践总结
PS:由于目前开发RTSP服务器传输模块时用到了h264文件,所以攻了一段时间去实现h264的视频编解码,借用FFmpeg SDK实现了任意文件格式之间的转换,并实现了流媒体实时播放,目前音视频同步需 ...
- 121-基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 机器人主板
基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 一.板卡概述 本系统基于最先进的DSP技术,构建一个全高清的视频编解码系统,采用TI的芯片.借助TI的DaVin ...
- [转帖]AVS音视频编解码技术了解
AVS高清立体视频编码器 电视技术在经历了从黑白到彩色.从模拟到数字的技术变革之后正在酝酿另一场技术革命,从单纯观看二维场景的平面电视跨越到展现三维场景的立体电视3DTV.3DTV系统的核心问题之一是 ...
随机推荐
- ext4 关闭延迟分配
ext4的延迟分配特性(delalloc)保证文件在磁盘中的连续,提高文件的读写性能,但是却增加了丢数据的概率. Hadoop和HBase中建议将延迟分配特性关闭. 可以使用下面的方法关闭延迟分配 1 ...
- MySQL死锁[转]
案例描述 在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下: (1)inse ...
- BZOJ 3993: [SDOI2015]星际战争 [二分答案 二分图]
3993: [SDOI2015]星际战争 题意:略 R1D2T1考了裸二分答案+二分图最大匹配... #include <iostream> #include <cstdio> ...
- Spring Boot让开发如此简单
从html到asp后一直专注.net开发,从.net诞生到如今,从winform到webform,从asp.net到.net mcv,从.net mvc到.net core,从ado.net到linq ...
- 单元测试——Qunit
为什么需要单元测试 正确性:测试可以验证代码的正确性,在上线前做到心里有底 自动化:当然手工也可以测试,通过console可以打印出内部信息,但是这是一次性的事情,下次测试还需要从头来过,效率不能得到 ...
- return的新思考
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
- shiro框架的使用实例
文档路径(包括数据库结构):https://pan.baidu.com/s/1eRP14AI
- hihoCoder 1015 KMP算法
题意:经典字符串匹配算法.给定原串和模式串,求模式串在原串中出现的次数.算法讲解 AC代码 #include <cstdio> #include <cmath> #includ ...
- UVA - 11270 轮廓线DP
其实这题还能用状压DP解决,可是时间达到2000ms只能过掉POJ2411.状压DP解法详见状压DP解POJ2411 贴上POJ2411AC代码 : 2000ms 时间复杂度h*w*(2^w)*(2^ ...
- AGC010 - B: Boxes
原题链接 题意简述 给出一个由个数构成的环,每次可以选择一个位置并从这个数起顺时针依次对每个数-1,-2,-3,-,-n.问能否将所有数全变为0. 分析 考虑一次操作对环带来了什么影响. (在后加一个 ...