当前是从海思平台的mpp角度理解VI这一部分的。

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

VI的功能框图(VI在软件上分为4个部分):

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

下面分别做介绍:

视频输入设备(DEV):所有 VI 设备都是相互独立的,支持时序解析。

输入 PIPE:VI 的 PIPE 包含了 ISP 的相关处理功能,主要是对图像数据进行流水线处理,输出YUV 图像格式给通道。

物理通道(PHY_CHN):Hi3559AV100 VI 只有一个物理通道,支持 8 个扩展通道。Hi3559AV100 物理通道支持的典型分辨率如 7680x4320@30fps、3840x2160@120fps、3840x2160@60fps、3840x2160@30fps、1080p@240fps、1080p @120fps、1080p @60fps、1080p@30fps 等。

扩展通道(EXT_CHN):扩展通道是物理通道的扩展,扩展通道具备缩放、裁剪、鱼眼矫正功能,它通过绑定物理通道,将物理通道输出作为自己的输入,然后输出用户设置的目标图像。

注意:不同的芯片MIPI和DEV的绑定关系不一样。Hi3559AV100 的 Dev 与 MIPI 绑定关系是固定的,不能动态修改绑定关系。

线性模式(非 WDR 模式)的一条通路应该是一个物理 PIPE 绑定一个 Dev,WDR模式下需要多个物理 PIPE 绑定一个 Dev,例如 2 合 1WDR,我们需要 2 个物理PIPE 绑定到一个 Dev。且在 WDR 模式下只有绑定到 Dev 的第 1 条物理 PIPE 的通道有数据输出,其他绑定的物理 PIPE 的通道是没有图像数据输出。每个 PIPE 都可以与任意 Dev 绑定,但不能动态修改绑定关系。

从模式 SENSOR,需要使用 VI 的从模式模块。从模式与 VI 的物理 PIPE 对应关系是固定的。用户需要根据 SENSOR 管脚的连线和从模式与 PIPE 的对应关系确定使用哪个从模式模块,然后选择对应的物理 PIPE 号创建物理 PIPE,否则会没有数据。

从模式与 PIPE 的对应关系如下:

HI3559AV100的设备、PIPE。通道个数如下:

DEV

PHY_PIPE

VIR_PIPE

PHY_CHN

EXT_CHN

8

8

2

1

8

HI3559AV100视频输入通道功能:

Hi3559AV100 SOC 有两个 VI 逻辑模块,默认两个逻辑都是打开的。在 Linux 操作系统下,逻辑的开关可以使用 viproc_en 模块参数控制,Huawei LiteOS 不涉及。Linux 操作系统下加载 VI 的驱动时可以控制逻辑 1 的开关,但是逻辑 0 必须要打开。打开逻辑 1的操作方法为 insmod hi3559av100_vi.ko viproc_en=1,1,关闭逻辑 1 的操作方法为insmod hi3559av100_vi.ko viproc_en=1,0。


下面是芯片hi3559av100的datasheet上关于mipi rx的说明:

MIPI RX

移动行业处理器接口 MIPI Rx(Mobile Industry Processor Interface Receiver),通过低电压差分信号接收原始视频数据(BAYER RGB 数据),并将其转化为 DC(DigitalCamera)时序后传递给下一级模块 VICAP(Video Capture)。

MIPI Rx 支持 MIPI D-PHY、LVDS(Low-Voltage Differential Signal)、HiSPi(HighSpeed Serial Pixel Interface)(MIPI Rx HiSPi 规范中包含HiVCM 和 SLVS 两种物理层电气标准)等串行视频信号输入,串行视频接口可以提供更高的传输带宽,增强传输的稳定性。MIPI Rx 是一个支持多种差分视频输入接口的采集单元,主要功能是接口时序的转换。通过不同的功能配置,MIPI Rx 可以接收 MIPI/LVDS/sub-LVDS/HiSPi 接口的数据,并且支持多种速度和分辨率的传输需求,兼容多种图像传感器。MIPI Rx 包括 4 个 D-PHY,每个 PHY 各自有两对差分随路时钟(CLK0/CLK1),每对时钟对应 2 对数据。因此 MIPI Rx 可以同时支持 1~8 路 sensor 输入。

通道指 MIPI_Rx 内部的数据处理通道,对应连接到 VICAP 通道,每个通道单独处理一个Sensor 的数据。

mipi rx框图:

MIPI Rx 只完成接口的时序转换,不处理图像的数据格式。在满足带宽的前提下可以支持任意分辨率和帧率。MIPI Rx 的带宽有两部分限制:combo-PHY 的接口数据率和内部处理速度。两路 sensor 输入都是接口最大支持 2.5Gbps/Lane,内部处理速度最大600M*2pixels/s。

MIPI Rx 控制器支持 MIPI、LVDS 和 HiSPi 模式,每种模式下的软件配置包含两部分:控制器和 combo-PHY。

以下分别介绍各个模式的配置流程:

1.MIPI模式

MIPI 模式下需要配置 PHY 的工作模式、数据传输所用的通道数、数据类型及宽动态模式。MIPI 模式的帧/行同步信息包含于数据包中,由控制器完成数据包的解析,从而恢复出像素数据。

step1. 上电启动。

step2. 根据使用场景将 MISC_CTRL130 寄存器中相应通道的 mipi_work_mode 配置为 MIPI 模式。

step3. 配置 CRG 寄存器中的 PERI_CRG61,打开 mipi_bus_clken、mipi_cil_clken 以及对应通道的 mipi_pix_clken。配置 mipi 总线软复位,撤销复位;配置对应通道 pix_core 复位,撤销复位。

step4. 配置 CRG 寄存器中的 PERI_CRG69,配置 sensor 复位,撤销复位;打开 sensor 时钟门控,并配置时钟频率。

step5. 配置 CRG 寄存器中的 PERI_CRG60,选择 MIP_Rx 通道时钟频率。

step6. 配置 MIPI_Rx 的 Lane 数(MIPI_LANES_NUM)和 Lane ID (LANE_ID*_CHN*)。

step7. 配置接收数据类型、WDR 模式等。

step8. 配置 PHY 的工作模式(PHY_MODE_LINK*)、PHY 通道延迟调节(PHY_SKEW_LINK*)、PHY 通道使能(PHY_EN_LINK*)、PHY 均衡调节(PHY_EQ_LINK*)、PHY 性能调节(PHY_CFG_LINK*)。

step9. 配置系统控制寄存器。场景模式选择(HS_MODE_SELECT)、PHY_EN、LANE_EN,打开 PHY_CIL_CTRL、选择 PHYCFG_MODE(对于 MIPI 模式,应选择0 或者 4)。

step10. 配置对应的 PHYCFG_EN。

step11. 配置 sensor 序列。

2. LVDS 和 HiSPi 模式配置流程

LVDS/HiSPi 模式下需要配置 RAW DATA 类型、数据大小端、同步方式、WDR 类型和图像宽高等寄存器。LVDS 模式依靠同步码识别帧/行同步信息,根据 RAW DATA 类型的不同,同步码可以为 8/10/12/14/16-bit。

step1.上电启动。

step2. 根据使用场景将 MISC_CTRL130 寄存器中相应通道的 mipi_work_mode 配置为 LVDS模式。

step3. 配置 CRG 寄存器中的 PERI_CRG61,打开 mipi_bus_clken、mipi_cil_clken 以及对应通道的 mipi_pix_clken。配置 mipi 总线软复位,撤销复位;配置对应通道 pix_core 复位,撤销复位。

step4. 配置 CRG 寄存器中的 PERI_CRG69,配置 sensor 复位,撤销复位;打开 sensor 时钟门控,并配置时钟频率。

step5. 配置 CRG 寄存器中的 PERI_CRG60,选择 MIP_Rx 通道时钟频率。

step6. 配置接收数据类型、WDR 模式,图像宽高(LVDS 模式下,配置的宽度是图像实际宽度除以 Lane 数-1)、同步头、Lane ID 等信息。

step7. 配置 PHY 的工作模式(PHY_MODE_LINK*)、PHY 通道延迟调节(PHY_SKEW_LINK*)、PHY 通道使能(PHY_EN_LINK*)、PHY 均衡调节(PHY_EQ_LINK*)、PHY 性能调节(PHY_CFG_LINK*);配置 LVDS 模式 Lane 同步头信息(PHY_SYNC_CODE*_LINK*)。

step8. 配置系统控制寄存器。场景模式选择(HS_MODE_SELECT)、PHY_EN、LANE_EN,打开 PHY_CIL_CTRL、选择 PHYCFG_MODE(对于 LVDS 模式,应选择1)。

step9. 配置对应的 PHYCFG_EN。

step10. 配置 sensor 序列。

海思平台的视频输入(VI)模块的介绍(以hi3559av100为例)相关推荐

  1. 海思平台INA220电压电流模块调试

    1. 分析datasheet 主要是几个公式 梳理清楚即可 Current_LSB值用于转换 值在当前寄存器(04h)到实际电流安培.当前的最高分辨率寄存器(04h)可以根据期望的最大值使用允许的最小 ...

  2. 海思平台ISP系列从零开始:一、PQTools工具的使用总结

    海思平台 ISP 系列: 一. PQTools 工具使用方法 正所谓工欲善其事必先利其器,磨刀不误砍柴工, 想要在海思平台开始IQ, 就得利用海思SDK中提供的PQTools工具,这个工具作的很好的, ...

  3. 第8季1:海思平台OSD的理论基础

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 一.OSD概述 1.区域管理模块 "OSD"是"on screen display"的缩写,即在 ...

  4. 海思平台OSD的实现(1)

    目录 一.海思平台OSD理论学习 1.OSD概述 2.海思OSD的4种类型 3.4种OSD类型各自支持的模块和功能 4.海思OSD的几个重要概念 5.海思平台OSD使用方法 6.海思平台OSD的API ...

  5. 海思平台ISP调试经验

    ISP模块介绍 ISP是Image Signal Processor的缩写,全称是影像处理器.在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照.录像的第 ...

  6. c++ opencv mat_海思平台OpenCV编译与进一步裁剪

    OpenCV是计算机视觉算法开发常用的工具.如果我们需要在嵌入式设备上运行opencv,那么就需要交叉编译,将它移植到对应平台上.但是有些嵌入式平台的存储空间有限,能节省1MB也有相当大的作用.Ope ...

  7. YOLO系列(v1~v3)的学习及YOLO-Fastest在海思平台的部署(中)

    YOLO系列(v1~v3)的学习及YOLO-Fastest在海思平台的部署(上) YOLO系列(v1~v3)的学习及YOLO-Fastest在海思平台的部署(中) YOLO系列(v1~v3)的学习及Y ...

  8. 海思平台(hi3559/hi3519/hi3516/hi3518)下的ISP功能介绍及问题调试总结(包括黑光成像/逆光成像/降噪/宽动态wdr/偏色等问题)

    海思平台下的ISP功能介绍及问题调试 平台说明 该调试是在海思平台下进行的(我用的是3559,在3519/3516测试也是没有问题的,只是部分参数稍微有差异.其海思他系列处理器的ISP调试大体上也是一 ...

  9. 【交叉编译】海思平台和安霸平台交叉编译

    海思平台 板端编译首先需要配置系统的NFS,挂载NFS服务器:然后安装ubuntu下的交叉编译环境(3516A和3518为例):登录板端:板端编译(需要修改相关的makefile文件):板端运行: 一 ...

最新文章

  1. MySQL-Btree索引和Hash索引初探
  2. @vue/cli启动异常:ENOENT: no such file or directory, scandir
  3. numpy 矩阵乘法_一起学习Python常用模块——numpy
  4. 游戏服务器的架构演进
  5. Vue2 的学习经历 初识
  6. 计算机模拟病例考试试题,计算机模拟病例考试评分方法的研究概述
  7. Android 模拟器 GPU ON
  8. 用枚举法实现工厂模型
  9. c语言经典题100及答案,100个经典c语言例题(带答案)
  10. win10隐藏桌面功能
  11. java读取dbf数据类型,读取foxpro格式的dbf文件-JSP教程,Java技巧及代码
  12. java 动态性之反射机制 详解 案例,mybatis字段映射原理
  13. 引子——漂在中关村 1
  14. 手机的内核版本、基带版本等都是什么意思?
  15. OSPF(三)OSPF域内路由
  16. 【NLP】Pyhon+讯飞开放平台:​手把手带你写一个智能语音播报系统
  17. 图像仿射变换及图像扭曲(Image Warping)
  18. 游戏道具平台|基于Springboot+Vue实现游戏道具平台系统
  19. 给hacke拨乱反正 黑客、红客、蓝客究竟是什么--来自:互联网实验室
  20. 开发落网电台windows phone 8应用的计划(4)

热门文章

  1. sun java学习_Java学习笔记 -- yaml文件配置
  2. 大数据分析常用指标口径
  3. 计算机财务管理模型分析报告,计算机财务管理实验报告1.doc
  4. “碧桂园凤凰”雄踞中国连锁酒店豪华品牌榜首
  5. 【信号处理】基于小波变换的时间重分配多重同步压缩变换TMSST附matlab代码
  6. 值传递和引用传递详解
  7. 离线使用OBD本地部署单节点OceanBase
  8. jquery实现微信长按识别二维码
  9. 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛(北京移动用户体验影响因素研究全套代码)
  10. Kettle使用教程(一)