2、瑞芯微ISP与VIPP架构:RK ISP图像信号处理流程、VIPP作用、MIPI CSI与ISP/VIPP的硬件连接拓扑

2.1 RK ISP 图像信号处理流程

瑞芯微 ISP(Image Signal Processor)是 SoC 内部负责将 CMOS 传感器原始 RAW 数据转换为高质量 YUV/RGB 图像的关键硬件模块。其处理流程遵循经典的 ISP Pipeline 架构,主要包含以下阶段:

核心要点:RK ISP 的 Pipeline 是 全硬件流水线,每个模块在单帧时间内并行处理,延迟固定,不占用 CPU 资源。
阶段 模块 功能描述 输出数据格式
1 DPCC(坏点校正) 检测并插值修复传感器死点/亮点 RAW10/12
2 BLC(黑电平校正) 减去光学黑电平偏移,恢复真实暗区 RAW10/12
3 LSC(镜头阴影校正) 补偿镜头边缘亮度衰减(Lens Shading) RAW10/12
4 AWB Gain(自动白平衡增益) 对 R/G/B 通道施加独立增益,校正色温 RAW10/12
5 Demosaic(去马赛克) 将 Bayer 模式插值重建为全彩色 RGB RGB888
6 CCM(颜色校正矩阵) 3x3 矩阵变换,校准 sensor 色彩空间到 sRGB RGB888
7 Gamma(伽马校正) 非线性映射,适配显示设备亮度响应 RGB888
8 YUV Conversion(色彩空间转换) RGB → YUV 转换,分离亮度与色度 YUV420/NV12
9 Sharpen/Denoise(锐化降噪) 边缘增强与空域/时域降噪 YUV420
10 WDR(宽动态融合) 多帧 HDR 合成,扩展动态范围 YUV420

ISP 处理流程的硬件拓扑示意如下:

RK ISP Pipeline 硬件流水线 RAW 输入 DPCC BLC LSC AWB Gain Demosaic CCM Gamma YUV Conv Sharpen Denoise WDR YUV 输出 说明: • 所有模块在单帧时间内并行工作,流水线深度固定。 • 输出 YUV 数据可直接送入 VIPP 或 VOP 显示/编码。

2.2 VIPP(Video Input Pre-Processor)作用

VIPP 是位于 MIPI CSI 接收控制器与 ISP 之间的硬件预处理单元,主要解决 多路复用、格式转换、裁剪缩放 等前端适配问题。其核心功能如下:

  • 多路输入复用:支持同时接入最多 4 路 MIPI CSI 虚拟通道(Virtual Channel),通过 VIPP 内部 MUX 选择一路送入 ISP。
  • 数据格式转换:将 MIPI 接收到的 RAW8/RAW10/RAW12 统一打包为 ISP 所需的 RAW 格式,并处理 CSI-2 的 ECC/CRC 校验。
  • 裁剪与缩放:支持硬件级 ROI 裁剪(Crop)和 1/2、1/4 下采样(Scale Down),减少 ISP 处理负载。
  • 帧同步与缓冲:提供内部 Line Buffer,消除 MIPI 传输中的行抖动,输出稳定的帧同步信号(VSYNC/HSYNC)。
  • 统计信息采集:实时统计输入帧的亮度直方图、FPS、数据量,供驱动层做自适应调节。
调试提示:VIPP 的裁剪/缩放参数必须在 Stream-On 之前 配置,否则会导致 ISP 输入尺寸不匹配,产生花屏或帧错位。

VIPP 内部数据流架构:

VIPP 内部数据流架构 MIPI CSI RX VC 0/1/2/3 MUX Format Conv Crop/Scale To ISP Stats 说明: VIPP 通过 MUX 选择一路 VC 数据,经过格式转换和裁剪缩放后送入 ISP,同时采集统计信息供驱动使用。

2.3 MIPI CSI 与 ISP/VIPP 的硬件连接拓扑

在瑞芯微 SoC(如 RK3588、RK3568)中,MIPI CSI 接口、VIPP 和 ISP 之间的硬件连接遵循 分层拓扑 结构。典型连接方式如下:

层级 硬件模块 接口/协议 说明
1 Camera Sensor MIPI CSI-2(1/2/4 Lane) 输出 RAW 数据,含 VC 标签
2 MIPI D-PHY RX D-PHY v1.2 / v2.0 物理层接收,时钟恢复,串转并
3 MIPI CSI-2 Controller CSI-2 v1.3 / v2.0 协议层解析,ECC/CRC 校验,VC 分离
4 VIPP AXI4-Stream 多路复用、格式转换、裁剪缩放
5 ISP AXI4 / APB 图像信号处理 Pipeline
6 DDR / VOP AXI4 存储或显示输出

硬件连接拓扑图:

MIPI CSI → VIPP → ISP 硬件连接拓扑 Camera Sensor MIPI CSI-2 D-PHY RX 物理层 CSI-2 Ctrl 协议层 VIPP 预处理 ISP Pipeline DDR / VOP 存储/显示 数据流方向:自上而下,从左到右
驱动调试注意:在 RK 平台设备树中,VIPP 与 ISP 的绑定关系通过 rockchip,vipp 属性指定。若拓扑中 VIPP 输出与 ISP 输入格式不匹配(如 VIPP 输出 RAW10 但 ISP 配置为 RAW12),会导致 ISP 无法正确解析数据,表现为帧率异常或图像偏色。

2.4 关键驱动配置示例

以下为 RK3588 设备树中 VIPP 与 ISP 的典型绑定配置:

// RK3588 设备树片段:VIPP 与 ISP 连接
isp@ff4b0000 {
    compatible = "rockchip,rk3588-isp";
    reg = <0xff4b0000 0x10000>;
    interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
    rockchip,vipp = <&vipp0>;  // 绑定 VIPP0
    port {
        isp0_in: endpoint {
            remote-endpoint = <&vipp0_out>;
            data-lanes = <1 2 3 4>;
        };
    };
};

vipp0: vipp@ff4c0000 {
    compatible = "rockchip,rk3588-vipp";
    reg = <0xff4c0000 0x1000>;
    rockchip,isp = <&isp0>;  // 反向绑定 ISP
    port {
        vipp0_out: endpoint {
            remote-endpoint = <&isp0_in>;
        };
    };
};
调试技巧:使用 cat /sys/kernel/debug/vipp/status 可查看 VIPP 当前输入 VC、帧率、裁剪区域等实时状态,是定位 MIPI 数据流问题的第一入口。