欢迎光临散文网 会员登陆 & 注册

海思hi3516dv300芯片AI图像模块学习(八)海思SDK学习—MPP部分源码

2022-08-05 18:06 作者:饼干快快快跑  | 我要投稿

sdk源码路径:

OpenHarmony/device/soc/hisilicon/hi3516dv300/sdk_linux/sample/platform

sample的platform文件夹里包含MPP、IVE、SVP使用的例子


(一)、MPP(Media Process Platform)媒体处理平台的VI、VO等功能

整体就是vi 到vpss到vo,大致分为三个部分,主要在vpss调用isp处理图像,vi、vo中也可以承担一部分处理任务




.h头文件里有包含的例子

1.第一个最基本例子:SAMPLE_VIO_ViOnlineVpssOfflineRoute

vi直接输出vpss处理:包含最基本的采集vi、处理vpss、输出vo过程

//Online./Offline,在线/离线的意思是在线当前模块不做缓存(ddr)接直接送到下一个模块,由于没有缓存当前模块也没有时间对这帧数据处理,

1.各个变量初始化


  

 2.像素、视频格式,压缩模式配置

WDR宽动态范围,DynamicRange动态范围、PixFormat像素格式(默认YUV)、

VideoFormat视频格式、CompressMode压缩格式、MastPipeMode管道模式

3.管道、通道、内存初始化

4.config结构体配置,把1-3配置的变量填进去

5.配置好后从对应传感器拿输入图像大小数据

SAMPLE_COMM_VI_GetSizeBySensor、SAMPLE_COMM_SYS_GetPicSize通用接口在common文件夹的vi部分里

6.内存分配

//拿到宽高后,vps、vi之间传输也需要一定缓存,分配两块缓存池pool,

//第一块,一般 linear 格式的 YUV 缓存池,预分配10块

//第二块,VI 写出的 Raw 数据缓存池 ,分4块缓存

7.分配完缓存池之后做一次系统初始化:

8. 到这一步所有配置完了,vi参数输进去启动vi

SAMPLE_COMM_VI_StartVi函数中:注意可能修改的部分

//分辨率和帧率控制在这里SAMPLE_COMM_VI_CreateVi,

配置dev、pipe、chn,将各部分绑定在一起

9.配置vpss

//stVpssGrpAttr,vps入口grp,帧率、动态范围、像素格式

 //astVpssChnAttr,vps出口chn

10.启动vpss

11.把配置好的vpss和vi绑定在一起,设备号在最前面步骤3定义了

12.,视频编码模块未配置未启动,encode

13.配置vo

14.启动vo

//输出设备配置,重要

//非直通模式,vo里会过一次vgs模块做图像处理,里面要处理的话需要一些缓存帧,一般3帧//设置视频属性,重要

//转格式用的,yuv到rgb格式转换,vo默认输出

SAMPLE_COMM_VO_StartVO函数中可能需要修改的部分,匹配屏幕和vo_pipe处理

提取设备分辨率

分配缓存

设置输出格式和yuv到rgb转码

14.绑定vpss和vo设备

end, 到这里整个vi_on,vpss_off模式完成

(三)其他例子的功能

1.SAMPLE_VIO_WDR_LDC_DIS_SPREAD:

WDR模式可以把一个输入绑定到多个管道pipe输出,且只有第一条pipe有输出,LDC畸形矫正,DIS防抖,SPREAD鱼眼畸变展宽矫正

2.SAMPLE_VIO_ViVpssLowDelay

低延时,vi在处理数据的同时就向vpss开始传处理好的数据

3.SAMPLE_VIO_ViDoubleWdrPipe

两个设备各绑两个通道,宽动态模式,长短帧对应两个通道,两帧合成得到宽动态

4.SAMPLE_VIO_FPN

去除固定模式噪声模式,去FPN(传感器底层噪声),需要标定配置

5.SAMPLE_VIO_ViWdrSwitch

wdr和线性模式可切换模式

6.SAMPLE_VIO_Rotate

vi中的旋转功能

上述功能的调用:

1.SAMPLE_VIO_WDR_LDC_DIS_SPREAD:

WDR模式可以把一个输入绑定到多个管道pipe输出,且只有第一条pipe有输出,LDC畸形矫正,DIS防抖,SPREAD鱼眼畸变展宽矫正

WDR功能在stat_vi,调用2两个pipe两帧合成一帧

在绑完vo和vpss后,启动LDC和DIS、Spread

一般都是在最后附加功能

一般都是在最后附加功能,不用改主干代码


海思hi3516dv300芯片AI图像模块学习(八)海思SDK学习—MPP部分源码的评论 (共 条)

分享到微博请遵守国家法律