930 字
5 分钟
[海思 3519DV500] VI 模块全解析
在海思 Hi3519DV500 架构中,VI (Video Input) 模块是一个极其复杂的图像处理子系统。它不仅负责物理层的数据接收,还承载着核心的图像信号处理(ISP)逻辑。
1. VI 硬件架构层级
根据软件层次划分,VI 模块从上到下分为四个核心层级:
- 输入设备 (DEV):负责物理接口层(MIPI/BT.1120/DC等)的时序解析。
- 输入 PIPE:核心处理层。包含 ISP 相关算法逻辑,负责将图像数据进行流水线加工。
- 物理通道 (PHY_CHN):VI 的最终输出端,负责将加工后的图像送往后级(如 VPSS/VENC)。
- 扩展通道 (EXT_CHN):用于缩放和裁剪。注:Hi3519DV500 不支持此功能。
资源统计Hi3519DV500 拥有 4 个 DEV、7 个物理 PIPE,但仅提供 1 个物理通道。这意味着所有输入最终需汇聚到单一物理输出。
2. 深度解析:VI 的核心组件
除了 ISP 算法外,VI 系统内部由多个职能明确的组件构成:
- MIPI Rx / SLVS-EC (物理接口层):负责与 Sensor 进行物理电平对接,完成信号解调、字节对齐及纠错(ECC)。
- VI Dev (设备层):定义输入数据的时序(Timing)、工作模式(WDR/Linear)以及像素位宽。
- VICAP (Video Capture - 捕获层):负责将数据“搬运”进内存或送入处理管道,控制帧率及基础空间操作(镜像/翻转)。
- VI Chn (通道层):在 ISP 处理完后,负责最终的裁剪、缩放和像素格式确定(YUV422/420)。
3. VI 与 ISP 的逻辑关系
技工与生产线的比喻ISP 与 VI 并不是并列关系,而是 ISP 运行在 VI PIPE 内部:
- VI 模块 是 “生产线轨道”:负责基础设施(内存、中断、数据搬运)。
- ISP 算法 是 “高级技工”:在轨道上对 RAW 数据进行 3A、降噪、增强等核心加工。
- 容器关系:一个 VI Pipe 就是一个容器,它承载了 ISP 硬件逻辑。
- 管理与执行:你调用
hi_mpi_vi_start_pipe时启动的是生产线;调用hi_mpi_isp_run时启动的是技工。
4. 数据处理流程:从 RAW 到 YUV
4.1 物理链路映射
数据流向链路
- Sensor (CMOS Sensor) 通过 MIPI/BT.1120 接入
- DEV (VI Device) 完成时序解析与绑定
- PIPE (VI PIPE / ISP) 进行画质算法处理
- CHN (VI PHY_CHN) 最终输出 YUV 420/422 图像
4.2 关键转换步骤
- ISP 预处理:进行黑电平校正 (BLC)、镜头校正 (LSC) 和坏点校正 (DPC)。
- 去马赛克 (Demosaic):将单通道 Bayer RAW 插值计算为三通道 RGB。这是转换的关键分水岭。
- 色彩空间转换 (CSC):将 RGB 按照色彩矩阵转换为 YUV 格式。
- 后处理:执行 3DNR 降噪和边缘锐化(Sharpening)。
5. 硬件规格与约束
5.1 PIPE 输入能力差异
| VI PIPE 号 | RAW 格式 | YUV 格式 | 说明 |
|---|---|---|---|
| 0 ~ 2 | 支持 | 不支持 | 仅限 RAW 场景 |
| 3 | 支持 | 支持 | 全能型 PIPE |
| 4 ~ 6 | 不支持 | 支持 | 仅限 YUV 场景 |
5.2 分辨率边界限制
| 模式 | 在线模式 (Online) | 离线模式 (Offline) |
|---|---|---|
| 最大宽度 | 4096 | 8192 |
| 最大高度 | 8192 | 8192 |
CAUTION在线模式下,水平宽度被严格限制在 4096。处理 8K 图像必须切换为离线模式。
6. 掩码 (Mask) 配置建议
引脚对应规则掩码的高 12bit 对应硬件 D0-D15 引脚。
- 12bit Sensor (D6-D15):掩码配置
0xFFF00000。- 10bit Sensor (D6-D15):掩码配置
0xFFC00000。- 8bit D1 场景:掩码配置
0xFF000000。
7. 总结
VI 模块是海思视频链路的核心。通过理解 DEV/PIPE/CHN 的分层设计以及 ISP 寄生于 PIPE 的逻辑,开发者可以更精准地控制图像从采集到输出的每一个环节。
[海思 3519DV500] VI 模块全解析
https://www.eustia-astraea.top/posts/hisi/hi3519dv500-vi-module-analysis/