MPP
MPP (Multimedia Processing Platform,多媒体处理平台) 属于自研操作系统 Bianbu 的一部分, 用于封装不同平台硬件编解码的差异,提供统一 API 给开发者调用。
1. 模块介绍
1.1 概念术语
-
MPP(Multimedia Processing Platform) 多媒体处理平台的整体框架。
-
MPI(Multimedia Processing Interface) MPP 提供给上层调用的 API 接口集合。
-
MPP AL 抽象层,统一不同 IP、SoC、方案的多媒体接口。
-
Packet 数据包,压缩后的视频数据单元(如 H.264/H.265 视频流),用于解码前或编码后阶段。
-
Frame 数据帧,未压缩的视频数据单元(如 YUV420 图像),用于解码后或编码前阶段。
1.2 模块功能
目前 MPP 主要包含下面几个部分:
-
VDEC 视频解码子模块及开放 API,主要用于将压缩数据流(Packet)解码成原始帧(Frame)。
-
VENC 视频编码子模块及开放 API,主要用于将原始帧(RGB/YUV)编码成压缩视频流(Packet)。
-
G2D 2D 图形处理加速子模块及开放 API,主要进行数据帧 Frame 的格式转换,缩放,旋转,裁剪等操作。
-
BIND 系统 支持多模块动态绑定。
-
AL(Abstract Layer) 跨平台支持层,屏蔽硬件差异。
-
VI 视频输入子模块及开放 API,目前仅支持文件输入及标准 V4L2 输入。
-
VO 视频输出子模块及开放 API,目前仅支持文件输出及 SDL2 视频输出。
暂未包含的部分:
-
AI/AO 音频输入输出,走
pipewire -> alsa-lib -> alsa driver
标准链路。 -
AENC/ADEC 暂不支持,推荐使用 GStreamer 或 FFmpeg 的软件实现。