嵌入式硬件从小工到专家(怎么学习MPP)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
所谓的mpp,全称就是media process platform的意思。这里的media,就是我们通常说的多媒体,可以是视频,也可以是音频,还可以是通过usb接口输入的camera数据。那我么知道,大部分soc都是跑linux的,既然如此,我们直接学习linux就好了,为什么还要学习mpp。其根本原因就在于硬件加速。以视频编码为例,虽然用软件也可以做,比如ffmpeg。但是ffmpeg纯软执行效率低,对cpu要求高,不一定可以满足要求,所以很多费时费力的工作,soc厂家就会用硬件来加速实现,这就是我们学习mpp的目的。

1、哪些品牌的soc支持mpp
大部分ipcam soc厂家都支持类似mpp的开发,只是或许不叫这个名字而已。比如,有的可能叫mdp,这也是有可能的。
2、mpp的关联资料有哪些
资料部分主要就是三部分,第一是文档,第二是底层驱动ko文件、动态库so文件,第三是示例代码。我们通过文档来了解mpp的基本构成,驱动和动态库做好本地部署,就可以编译代码到板子上实际运行了。
3、从哪里获取mpp的资料
获取的方式很多,比如通过搜索引擎来查找,通过代理商获取,或者是通过电商厂家去获取,这都是可以的。对于用量比较大的soc,其实很容易通过搜索引擎找到文档资料的,比如这里某志的mpp文档,
http://file.whycan.com/files/202304/V85x/Tina_Linux_%E5%A4%9A%E5%AA%92%E4%BD%93MPP_%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97.pdf
4、mpp的内容有哪些
mpp的内容主要还是围绕音视频展开的,比如说整体多媒体框架、内存管理、vi输入、vo输出、视频编码、视频解码、音频输入/输出/编码/解码、isp、区域管理、图像后处理等等。这里面的难点最主要的还是对多媒体框架的认知,里面不仅涉及到驱动知识,部分还涉及到硬件知识、cpu知识、操作系统知识,理解起来有一定的难度。不过只要理解了,其实还是比较好掌握的。
mpp是基础,至于用它来做camera产品、行车记录仪、运动相机、儿童显微镜、内窥镜、ipcam安防,或者是其他ai产品、娱乐产品,就取决于各个人自己的使用了。
5、怎么学好mpp
学好mpp的前提就是两个,第一把基本概念弄清楚,至少知道文档说的是什么;第二就是动手做实验,比如vi的实验,vo的实验,venc的实验,以及vdec的实验等等。至于硬件加速部分,也没有那么可怕。我们都知道一个函数的处理,就是输入、输出加流程。那么对于硬件加速,也是一样的,首先要准备资源,其次是配置资源,最后是投喂数据、得到结果,就是这么一个过程。
6、以region模块为例说明如何学习mpp
首先,了解region模块是干嘛的,比如了解到它是处理贴图的;
其实,看一下它有哪些api,重点看set部分,而不是get部分;
AW_MPI_RGN_Create
AW_MPI_RGN_Destrory
AW_MPI_RGN_GetAttr
AW_MPI_RGN_SetAttr
AW_MPI_RGN_SetBitMap
AW_MPI_RGN_AttachToChn
AW_MPI_RGN_DetachFrmChn
AW_MPI_RGN_SetDisplayAttr
AW_MPI_RGN_GetDisplayAttr
接着,自己尝试用这些api都把逻辑串起来,比如先创建region,然后set attribute,接着set bitmap,和channel进行bind,等不用的时候,再destroy region;
最后就是动手实验,将自己写的code和厂家sample code进行对比,看看差异在哪里。我们之所以要做第三部分,其实就是给自己一个思考和确认的过程。
更多推荐


所有评论(0)