MPP 说明

海思提供的媒体处理软件平台(Media Process Platform,简称 MPP),可支持应用软件快速开发。该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供 MPI( MPP Program Interface )接口完成相应功能。该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/JPEG 编码、H.265/H.264/JPEG 解码、视频输出显 示、视频图像前处理 ( 包括去噪、增强、锐化 )、图像拼接、图像几何矫正、智能、音频捕获及输出、音频编解码等功能。源码中包含了平台所有模块功能的示例方便快速熟悉 软件开发。本节将以提供的MPP示例为基础做介绍。

目录介绍

Hi3559AV100_SDK/mpp/
├── component			部分模块驱动和库源码(GPU、ISP、Sensor、PCIV)
├── out				闭源驱动 ko 文件和 MPI 所需要的库
├── sample			所有模块的功能示例
└── tools			视频调试相关工具

Hi3559AV100_SDK/mpp/out/
├── linux			Linux 端部署
│   ├── big-little
│   │   ├── include		头文件
│   │   ├── init		驱动设备层信息
│   │   ├── ko			驱动文件
│   │   ├── lib			MPI 库
│   │   └── obj			驱动编译 .o 文件
│   └── multi-core
│       ├── include
│       ├── init
│       ├── ko
│       ├── lib
│       └── obj
└── liteos			Huawei LiteOS 端部署
    ├── dsp
    │   ├── dsp0
    │   ├── dsp1
    │   ├── dsp2
    │   └── dsp3
    └── single
        ├── include
        ├── init
        └── lib

Hi3559AV100_SDK/mpp/sample
├── audio			音频编解码
├── avs				视频拼接
├── awb_online_calibration	自动白平衡测试
├── common			MPI 再次封装
├── dis				数字防抖
├── dpu				深度图
├── fireflyfb			Firefly MPP初始化相关
├── fisheye			鱼眼模式
├── gpu				GPU相关(包含全景视频矫正)
├── hifb			Framebuff 
├── liteos			Huawei LiteOS 初始化
├── mode_switch			摄像头模式切换
├── pciv			PCIe 级联通信
├── snap			摄像头拍照
├── svp				SVP 平台相关(智能加速、神经网络)
├── tde				TDE 2D 加速
├── uvc_app			虚拟 UVC Camera
├── vdec			视频解码
├── venc			视频编码
├── vgs				视频图形子系统
└── vio				视频输入输出

编译流程

在编译之前,用户需要搭建好编译环境。官方已经提供了相关编译链工具,请参考《编译环境》一节。

  1. ./build.sh perpare Firefly3559A4G-multi-core_defconfig (如果是异构模式选择 Firefly3559A4G-big-little_defconfig)

  2. mpp内部部分功能需要其他模块的支持,在顶层目录执行 ./build.sh osdrv 把整个海思原始 SDK 编译一遍。

  3. ./build.sh mpp_sample 编译 sample

  4. sample 目录下会生成可执行文件,把二进制文件拷贝到板子上就可以运行了

PS:

  1. 如果是异构模式,编译出来的就是 A53UP 启动的 Huawei LiteOS 镜像,需要烧写到对应分区,具体操作可以产考《固件升级》一节。

  2. 异构模式下进入如果需要运行 sample 需要使用virt-tty进入 A53UP 运行 sample 命令运行。