以下内容源于海思官方文档内容,如有侵权请告知删除。
一、MPP模块概述
海思的媒体处理软件平台(MPP,Media Process Platform)有利于应用软件的快速开发。因为该平台屏蔽了一些与芯片相关的复杂的底层处理,给应用软件提供了一些API来完成相应功能。
该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/MJPEG/JPEG/MPEG4 编码、H.264/MPEG4/MPEG2解码、视频输出显示、视频图像前处理(包括去噪、增强、锐化、Deinterlace)、编码码流叠加OSD、视频侦测分析、智能分析、音频捕获及输出、音频编解码等功能。
MPP模块的手册《HiMPP IPC V2.0 媒体处理软件开发参考.pdf》提取码:1111位于“01.software\board\document_cn”目录。
二、系统架构
MPP 平台支持的典型的系统层次如上图所示,主要分为以下层次:
(1)硬件层。硬件层由 Hi35xx 芯片加上必要的外围器件构成。外围器件包括 Flash、DDR、视频 Sensor 或 AD、音频 AD 等。
(2)操作系统层。基于 Linux 3.4 的 OS 系统。
(3)媒体处理平台,即MPP。基于操作系统层、控制芯片完成相应的媒体处理功能。它对应用层屏蔽了硬件处理细节,并为应用层提供 API 接口完成相应功能。由上图可知,MPP模块以ko和api形式提供,和驱动处于同一层次。
(4)其他驱动。除媒体处理平台外,海思为 Hi35xx 芯片的其他相关硬件处理单元提供了相应的驱动,包括 GMAC、SDIO、I2C、USB、SSP 等驱动。
(5)应用层。基于海思媒体处理平台及其他驱动,由用户开发的应用软件系统。
三、MPP架构概述
MPP模块内部主要处理流程包括两大模块,即视频处理模块、音频处理模块。
其中视频部分包括:视频采集输入(VI)/ 视频解码输入(VDEC)、视频处理(VPSS)、视频编码(VENC)/ 区域管理(REGION)/ 视频侦测分析(VDA)/ 视频输出(VO)等模块。音频部分包括:音频输入(AI)、音频输出(AO)、音频编码(AENC)、音频解码(ADEC)等模块。
(1)VI 模块,捕获视频图像,可对其做剪切、缩放等处理,并输出多路不同分辨率的图像数据。
(2)解码模块对编码后的视频码流进行解码,并将解析后的图像数据送 VPSS 进行图像处理或直接送 VO 显示。可对 H264/MPEG4/MPEG2 格式的视频码流进行解码。
(3)VPSS 模块接收 VI 和解码模块发送过来的图像,可对图像进行去噪、图像增强、锐化等处理,并实现同源输出多路不同分辨率的图像数据用于编码、预览或抓拍。
(4)编码模块接收 VI 捕获并经VPSS 处理后输出的图像数据,可叠加用户通过 Region模块设置的OSD 图像,然后按不同协议进行编码并输出相应码流。
(5)VDA 模块接收 VI 的输出图像,并进行移动侦测和遮挡侦测,最后输出侦测分析结果。
(6)VO 模块接收 VPSS 处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备。
(7)AI 模块捕获音频数据,然后 AENC 模块支持按多种音频协议对其进行编码,最后输出音频码流。
(8)用户从网络或外围存储设备获取的音频码流可直接送给 ADEC 模块,ADEC 支持解码多种不同的音频格式码流,解码后数据送给 AO 模块即可播放声音。