因为项目后期涉及到MPP平台下的VI接口,现把有关视频输入VI模块的实现细节总结,也方便大家进一步了解。

1、整体概述

  视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口、LVDS 接口和 HISPI 接口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口(在实际产品中,使用MIPI的比较多)接收视频数据。VI 将接收到的数据存入到指定的内存区域,在此过程中,VI 可以对接收到的原始视频图像数据进行处理,实现视频数据的采集。

2、功能描述与结构体解析

  VI 从软件上划分了输入设备(DEV),输入 PIPE(图示为物理 PIPE,虚拟 PIPE 只包含ISP_BE)、物理通道(PHY_CHN)、扩展通道(EXT_CHN)四个层级。如图1所示:

图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通道功能框图

  所有 VI 设备都是相互独立的,支持时序解析。VI 的 PIPE 包含了 ISP 的相关处理功能,主要是对图像数据进行流水线处理,输出YUV 图像格式给通道。Hi3559AV100 VI 只有一个物理通道,支持 8 个扩展通道。Hi3519AV100 VI 的一个 PIPE 包含 2 个物理通道,CH0 具有裁剪、压缩等功能,CH1 具有缩小的功能,支持 8 个扩展通道。扩展通道是物理通道的扩展,扩展通道具备缩放、裁剪、鱼眼矫正功能,它通过绑定物理通道,将物理通道输出作为自己的输入,然后输出用户设置的目标图像。

Hi3559AV100的VI细节处理说明的更多相关文章

  1. 基于Hi3559AV100 RFCN实现细节解析-(3)系统输入VI分析一 :

    下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: Hi3559AV100的 ...

  2. 基于Hi3559AV100 RFCN实现细节解析-(2)RFCN数据流分析

    下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: Hi3559AV100的 ...

  3. 基于Hi3559AV100 RFCN实现细节解析-(3)系统输入VI分析(HiISP)二 :

    下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: 基于Hi3559AV10 ...

  4. 基于Hi3559AV100 RFCN实现细节解析-(1)VGS初介绍

    下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,因为RFCN用到了VGS加框,因此本篇随笔将给出VGS视频图像子系统的具体说明,便于后面RFCN的细节实现说明. VGS 是视频图形子 ...

  5. vim /vi中对字符串的查找并替换

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  6. vi、vim 查找替换

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  7. Vi/Vim查找替换使用方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian 为 s ...

  8. [转]Vi/Vim查找替换使用方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  9. Vi/Vim 替换使用方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian 为 s ...

随机推荐

  1. P1091 合唱队形(LIS)

    题目描述 NNN位同学站成一排,音乐老师要请其中的(N−KN-KN−K)位同学出列,使得剩下的KKK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K1,2, ...

  2. Codeforces Round #681 (Div. 1, based on VK Cup 2019-2020 - Final) B. Identify the Operations (模拟,双向链表)

    题意:给你一组不重复的序列\(a\),每次可以选择一个数删除它左边或右边的一个数,并将选择的数append到数组\(b\)中,现在给你数组\(b\),问有多少种方案数得到\(b\). 题解:我们可以记 ...

  3. python2.* 版本 与 3.* 版本中的区别

    目录 Unicode编码 print函数 raw_input() 和 input( ) 不等运算符 数据类型 除法 map 和 filter Unicode编码 python2.x 解释器默认编码格式 ...

  4. CF1475-C. Ball in Berland

    CF1475-C. Ball in Berland 题意: 一个班级有\(a\)个男生和\(b\)个女生,现在这个班级有\(k\)对男女愿意一起出席毕业典礼,这里注意\(k\)对男女中可能会有某个男生 ...

  5. ELK Stack 介绍 & Logstash 日志收集

    ELK Stack 组成 Software Description Function E:Elasticsearch Java 程序 存储,查询日志 L:Logstash Java 程序 收集.过滤日 ...

  6. Java RMI 实现一个简单的GFS(谷歌文件系统)——背景与设计篇

    目录 背景 系统设计 1. 系统功能 2. Master组件 2.1 命名空间 2.2 心跳机制 2.3 故障恢复和容错机制 3. ChunkServer组件 3.1 本地存储 3.2 内存命中机制 ...

  7. 网络安全-WEB基础,burpsuite,WEB漏洞

    1. web基础 HTTP: GET POST REQUEST RESPONSE... JDK robots.txt 网页源代码/注释 目录扫描--御剑,dirmap 端口信息--nmap 备份文件- ...

  8. C++ part6

    C++源文件从文本到可执行文件经历的过程 references: 一个C++源文件从文本到可执行文件经历的过程 C++源文件从文本到可执行文件经历的过程 gcc程序编译的静态链接和动态链接 保留中间过 ...

  9. CNN可视化技术总结(四)--可视化工具与项目

    CNN可视化技术总结(一)-特征图可视化 CNN可视化技术总结(二)--卷积核可视化 CNN可视化技术总结(三)--类可视化 导言: 前面介绍了可视化的三种方法--特征图可视化,卷积核可视化,类可视化 ...

  10. html5 image>usemap (attribute)

    # html5   image>usemap  (attribute) https://caniuse.com/#search=usemap http://www.w3.org/TR/html5 ...