Hi3559AV100的VI细节处理说明
因为项目后期涉及到MPP平台下的VI接口,现把有关视频输入VI模块的实现细节总结,也方便大家进一步了解。
1、整体概述
2、功能描述与结构体解析
图1 VI软件层次图解
其对应的参数定义如下所示:
1 typedef struct hiSAMPLE_VI_INFO_S
2 {
3 SAMPLE_SENSOR_INFO_S stSnsInfo;
4 SAMPLE_DEV_INFO_S stDevInfo;
5 SAMPLE_PIPE_INFO_S stPipeInfo;
6 SAMPLE_CHN_INFO_S stChnInfo;
7 SAMPLE_SNAP_INFO_S stSnapInfo;
8 } SAMPLE_VI_INFO_S;
而这五个结构体分别对应如下:
1 typedef struct hiSAMPLE_SENSOR_INFO_S
2 {
3 //支持的sony MIPI接口相机类型 如IMX334 477
4 SAMPLE_SNS_TYPE_E enSnsType;
5
6 HI_S32 s32SnsId;
7 HI_S32 s32BusId;
8 combo_dev_t MipiDev; //MIPI Rx、SLVS 设备类型
9 } SAMPLE_SENSOR_INFO_S; //支持MIPI接口相机的参数及ID信息等
1 typedef struct hiSAMPLE_DEV_INFO_S
2 {
3 VI_DEV ViDev; //VI 设备号
4 WDR_MODE_E enWDRMode; //WDR 工作模式,分为帧模式、行模式、非 WDR 等三大类。
5 } SAMPLE_DEV_INFO_S;
1 typedef struct hiSAMPLE_PIPE_INFO_S
2 {
3 VI_PIPE aPipe[WDR_MAX_PIPE_NUM]; //输入 物理PIPE号
4 VI_VPSS_MODE_E enMastPipeMode; //定义VI PIPE和VPSS组的工作模式 如VI_ONLINE_VPSS_OFFLINE
5 } SAMPLE_PIPE_INFO_S;
1 typedef struct hiSAMPLE_CHN_INFO_S
2 {
3 VI_CHN ViChn; //输入通道
4 PIXEL_FORMAT_E enPixFormat; //定义视频格式 如VIDEO_FORMAT_LINEAR线性存储的视频格式
5 DYNAMIC_RANGE_E enDynamicRange; //定义动态范围枚举 如8bit 数据的标准动态范围
6 VIDEO_FORMAT_E enVideoFormat; //定义视频格式 如VIDEO_FORMAT_LINEAR线性存储的视频格式
7 COMPRESS_MODE_E enCompressMode;//定义视频压缩数据格式 如非压缩的视频格式COMPRESS_MODE_NONE
8 } SAMPLE_CHN_INFO_S;
1 typedef struct hiSAMPLE_SNAP_INFO_S //项目中没有用到此参数,就不说明了
2 {
3 HI_BOOL bSnap;
4 HI_BOOL bDoublePipe;
5 VI_PIPE VideoPipe;
6 VI_PIPE SnapPipe;
7 VI_VPSS_MODE_E enVideoPipeMode;
8 VI_VPSS_MODE_E enSnapPipeMode;
9 }SAMPLE_SNAP_INFO_S;
Hi3559AV100 VI通道功能框图如下所示:
图2 Hi3559AV100 VI通道功能框图
Hi3559AV100的VI细节处理说明的更多相关文章
- 基于Hi3559AV100 RFCN实现细节解析-(3)系统输入VI分析一 :
下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: Hi3559AV100的 ...
- 基于Hi3559AV100 RFCN实现细节解析-(2)RFCN数据流分析
下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: Hi3559AV100的 ...
- 基于Hi3559AV100 RFCN实现细节解析-(3)系统输入VI分析(HiISP)二 :
下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: 基于Hi3559AV10 ...
- 基于Hi3559AV100 RFCN实现细节解析-(1)VGS初介绍
下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,因为RFCN用到了VGS加框,因此本篇随笔将给出VGS视频图像子系统的具体说明,便于后面RFCN的细节实现说明. VGS 是视频图形子 ...
- vim /vi中对字符串的查找并替换
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
- vi、vim 查找替换
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
- Vi/Vim查找替换使用方法
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian 为 s ...
- [转]Vi/Vim查找替换使用方法
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
- Vi/Vim 替换使用方法
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian 为 s ...
随机推荐
- C++11 Java基本数据类型以及转换
写在前面: 母语是Java,后来学了C++11,这两个语言的基本数据类型隐式转换不太一样,有点晕,整理一下 整理自网络和书籍,标明出处 C++ 基本数据类型 --http://www.cnblogs. ...
- 国产网络损伤仪 SandStorm -- 只需要拖拽就能删除链路规则
国产网络损伤仪SandStorm可以模拟出带宽限制.时延.时延抖动.丢包.乱序.重复报文.误码.拥塞等网络状况,在实验室条件下准确可靠地测试出网络应用在真实网络环境中的性能,以帮助应用程序在上线部署前 ...
- 通过js正则表达式实例学习正则表达式基本语法
正则表达式又叫规则表达式,一般用来检查字符串中是否有与规则相匹配的子串,达到可以对匹配的子串进行提取.删除.替换等操作的目的.先了解有哪些方法可以使用正则对字符串来实现这些操作: RegExpObje ...
- Kubernets二进制安装(14)之flannel之SNAT规则优化
flannel之SNAT规则优化的目的是由于在K8S中的容器内,访问不同宿主机中的容器的资源的时候,日志文件会记录为宿主机的IP地址,而不是记录为容器本身自己的IP地址,建议在不同的宿主机上的容器互访 ...
- windows hook + pyhook3 + python win32api hook + C 键盘hook
安装pyhook3见:https://www.cnblogs.com/lqerio/p/12096710.html 使用见:https://www.cnblogs.com/lqerio/p/12106 ...
- python--通过ocr对数据可视化视频还原为csv,进行简单的分析
见github https://github.com/TouwaErioH/Machine-Learning/tree/master/video/video 题目描述: source https:// ...
- history-back
;!function(pkg, undefined){ //此声明函数在xback.js文件里有,在app.js里必须再声明一次,不然监听返回事件失败 var STATE = 'x-back'; va ...
- 51nod-1065 最小正子段和 【贪心 + 思维】
N个整数组成的序列a[1],a[2],a[3],-,a[n],从中选出一个子序列(a[i],a[i+1],-a[j]),使这个子序列的和>0,并且这个和是所有和>0的子序列中最小的. 例如 ...
- XSS脚本汇总
(1)普通的XSS JavaScript注入<SCRIPT SRC=http://***/XSS/xss.js></SCRIPT> (2)IMG标签XSS使用JavaScrip ...
- 深入理解JavaScript中的箭头
箭头函数可以使我们的代码更加简洁,如下: var sum = (a,b) => a+b; JavaScript 充满了我们需要编写在其他地方执行的小函数的情况. 例如: arr.forEach( ...