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 视频输入输出
编译流程¶
在编译之前,用户需要搭建好编译环境。官方已经提供了相关编译链工具,请参考《编译环境》一节。
./build.sh perpare Firefly3559A4G-multi-core_defconfig
(如果是异构模式
选择 Firefly3559A4G-big-little_defconfig)mpp内部部分功能需要其他模块的支持,在顶层目录执行
./build.sh osdrv
把整个海思原始 SDK 编译一遍。./build.sh mpp_sample
编译 samplesample 目录下会生成可执行文件,把二进制文件拷贝到板子上就可以运行了
PS:
如果是异构模式,编译出来的就是 A53UP 启动的 Huawei LiteOS 镜像,需要烧写到对应分区,具体操作可以产考《固件升级》一节。
异构模式下进入如果需要运行 sample 需要使用
virt-tty
进入 A53UP 运行 sample 命令运行。