海思平台的视频输入(VI)模块的介绍(以hi3559av100为例)
当前是从海思平台的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为例)相关推荐
- 海思平台INA220电压电流模块调试
1. 分析datasheet 主要是几个公式 梳理清楚即可 Current_LSB值用于转换 值在当前寄存器(04h)到实际电流安培.当前的最高分辨率寄存器(04h)可以根据期望的最大值使用允许的最小 ...
- 海思平台ISP系列从零开始:一、PQTools工具的使用总结
海思平台 ISP 系列: 一. PQTools 工具使用方法 正所谓工欲善其事必先利其器,磨刀不误砍柴工, 想要在海思平台开始IQ, 就得利用海思SDK中提供的PQTools工具,这个工具作的很好的, ...
- 第8季1:海思平台OSD的理论基础
以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 一.OSD概述 1.区域管理模块 "OSD"是"on screen display"的缩写,即在 ...
- 海思平台OSD的实现(1)
目录 一.海思平台OSD理论学习 1.OSD概述 2.海思OSD的4种类型 3.4种OSD类型各自支持的模块和功能 4.海思OSD的几个重要概念 5.海思平台OSD使用方法 6.海思平台OSD的API ...
- 海思平台ISP调试经验
ISP模块介绍 ISP是Image Signal Processor的缩写,全称是影像处理器.在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照.录像的第 ...
- c++ opencv mat_海思平台OpenCV编译与进一步裁剪
OpenCV是计算机视觉算法开发常用的工具.如果我们需要在嵌入式设备上运行opencv,那么就需要交叉编译,将它移植到对应平台上.但是有些嵌入式平台的存储空间有限,能节省1MB也有相当大的作用.Ope ...
- YOLO系列(v1~v3)的学习及YOLO-Fastest在海思平台的部署(中)
YOLO系列(v1~v3)的学习及YOLO-Fastest在海思平台的部署(上) YOLO系列(v1~v3)的学习及YOLO-Fastest在海思平台的部署(中) YOLO系列(v1~v3)的学习及Y ...
- 海思平台(hi3559/hi3519/hi3516/hi3518)下的ISP功能介绍及问题调试总结(包括黑光成像/逆光成像/降噪/宽动态wdr/偏色等问题)
海思平台下的ISP功能介绍及问题调试 平台说明 该调试是在海思平台下进行的(我用的是3559,在3519/3516测试也是没有问题的,只是部分参数稍微有差异.其海思他系列处理器的ISP调试大体上也是一 ...
- 【交叉编译】海思平台和安霸平台交叉编译
海思平台 板端编译首先需要配置系统的NFS,挂载NFS服务器:然后安装ubuntu下的交叉编译环境(3516A和3518为例):登录板端:板端编译(需要修改相关的makefile文件):板端运行: 一 ...
最新文章
- MySQL-Btree索引和Hash索引初探
- @vue/cli启动异常:ENOENT: no such file or directory, scandir
- numpy 矩阵乘法_一起学习Python常用模块——numpy
- 游戏服务器的架构演进
- Vue2 的学习经历 初识
- 计算机模拟病例考试试题,计算机模拟病例考试评分方法的研究概述
- Android 模拟器 GPU ON
- 用枚举法实现工厂模型
- c语言经典题100及答案,100个经典c语言例题(带答案)
- win10隐藏桌面功能
- java读取dbf数据类型,读取foxpro格式的dbf文件-JSP教程,Java技巧及代码
- java 动态性之反射机制 详解 案例,mybatis字段映射原理
- 引子——漂在中关村 1
- 手机的内核版本、基带版本等都是什么意思?
- OSPF(三)OSPF域内路由
- 【NLP】Pyhon+讯飞开放平台:​手把手带你写一个智能语音播报系统
- 图像仿射变换及图像扭曲(Image Warping)
- 游戏道具平台|基于Springboot+Vue实现游戏道具平台系统
- 给hacke拨乱反正 黑客、红客、蓝客究竟是什么--来自:互联网实验室
- 开发落网电台windows phone 8应用的计划(4)
热门文章
- sun java学习_Java学习笔记 -- yaml文件配置
- 大数据分析常用指标口径
- 计算机财务管理模型分析报告,计算机财务管理实验报告1.doc
- “碧桂园凤凰”雄踞中国连锁酒店豪华品牌榜首
- 【信号处理】基于小波变换的时间重分配多重同步压缩变换TMSST附matlab代码
- 值传递和引用传递详解
- 离线使用OBD本地部署单节点OceanBase
- jquery实现微信长按识别二维码
- 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛(北京移动用户体验影响因素研究全套代码)
- Kettle使用教程(一)