记录一下遇到几个平台里的视频编解码和图像scale的硬件加速的方法
1,intel平台
可基于VA-API实现视频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组件来提供的,因此具体需要看实际有组件可用。
4,Android的MediaCodec接口
MediaCodec接口为新版Android的所提供的媒体处理接口,其本质上也是基于各个硬件平台厂商提供的硬件加速接口封装而成。比如在MTK8163平台上基于Openmax接口做的封装。
主要是视频编解码功能。
5,Nvidia VideoCodec
直接利用显卡的内部的硬件视频编解码音频来进行编解码(不是CUDA计算引擎),直接使用vidia-video-codec-sdk来做开发即可。好处是与CUDA交互比较方便。
类似主要是视频编解码功能。
其他平台没有接触到,暂不记录。
时间: 2024-10-05 06:05:30