嵌入式开发中mpp(media process platform)中涉及的主要内容

MPP层屏蔽了不同操作系统和不同芯片平台的差异。当前一些主流的芯片的sdk中都提供了这一层,目的是使客户能够快速的开发自己的多媒体应用。常见的如:瑞星微,海思等平台以下分别以海思和瑞芯微的芯片作为对比,比较他们的主要内容以及使用。


海思mpp参考:https://blog.csdn.net/oqqhutu12345678/article/details/82843617

如下为海思的mpp的处理流程图:

嵌入式开发中mpp(media process platform)中涉及的主要内容_第1张图片

嵌入式开发中mpp(media process platform)中涉及的主要内容_第2张图片

一、视屏输入(VI)

视频输入,主要是指视频的输入接口,包括mipi-rx,lvds,HISPI,bt1120,bt656等接受视频数据。

视频的输入不仅是指camera的输入数据,以及SD卡上面的视频文件数据。vi将接受到的数据存入到制定的内存区域,再次过程中可以对接受到的原始数据视频图像数据进行裁剪等处理。

二、视频处理子系统(VPSS)

支持的功能FRC(frame rate control),crop,sharpen,3dnr,scale,像素格式转换,ldc,鱼眼角正,hdr,Spread、 固定角度旋转、 任意角度旋转、Cover/Coverex、 Overlayex、Mosaic、 Mirror/Flip、压缩解压等

三、视频编码(VENC)

主要关注的是视频编码的最大分辨率和最小分辨率,以及编码性能。和编码的算法,如h.264、h.265、mjpegd等

四、视频解码(VDEC)

关注的点基本同视频的编码一样。

五。视频输出(VO)

视频输出,主要是指模块主动的从内存的相应区域读取视频或者是图片数据,并通过显示设备显示出来。


瑞芯微mpp参考:https://www.cnblogs.com/xue0708/p/10088451.html

https://max.book118.com/html/2018/0922/7123201132001150.shtm

瑞芯微的mpp提供的功能包括:

视频解码:H.265 / H.264 / H.263 / VP9 / VP8 / MPEG-4 / MPEG-2 / MPEG-1 / VC1 / MJPEG
视频编码:H.264 / VP8 / MJPEG
视频处理:视频拷贝,缩放,色彩空间转换,场视频解交织(Deinterlace)
 

瑞芯微mpp的系统架构:

嵌入式开发中mpp(media process platform)中涉及的主要内容_第3张图片

硬件层:芯片平台的视频编解码硬件加速模块,包括 VPU, rkvdec, rkvenc 等不同类型,不同功能的硬件加速器。

内核驱动层 Kernel driver:Linux 内核的编码器硬件设备驱动,以及相关的 mmu,内存,时钟,电源管理模块等。 支持的平台
主要是 Linux kernel 3.10 和 4.4 两个版本。 MPP 库对于内核驱动有依赖。
MPP 层:用户态的 MPP 层屏蔽了不同操作系统和不同芯片平台的差异,为上层使用者提供统一的 MPI 接口。MPP 层包括 MPI 模块, OSAL 模块, HAL 模块以及视频编解码器(Video Decoder / Video Encoder)和视频处理功能模块(Video Process)。
操作系统层:MPP 用户态的运行平台,如 Android 以及 Debian 等 Linux 发行版
应用层:MPP 层通过 MPI 对接各种中间件软件,如 OpenMax, ffmpeg 和 gstreamer,或者直接对接客户的上层应用。
 

下图为mpi的主要的数据结构:

嵌入式开发中mpp(media process platform)中涉及的主要内容_第4张图片

你可能感兴趣的:(视频处理,数字图像处理,mpp,mpp,视频处理平台)