瑞芯微RK平台LSC阴影校正参数调试与工程案例 - 第2节

2.1 RK3588/RK356x 系列 ISP 模块概览

瑞芯微 RK3588 与 RK356x 系列芯片集成了自研的 iSP (Image Signal Processor) 模块,支持最高 48M 像素的传感器输入。ISP 内部采用多级流水线架构,其中 LSC (Lens Shading Correction) 是位于前端的关键模块,专门用于补偿镜头光学特性导致的亮度与色彩不均匀现象。

2.1.1 ISP 流水线位置

LSC 模块在 ISP 流水线中的位置非常靠前,通常在 BLC (Black Level Correction) 和 DPC (Defect Pixel Correction) 之后,AWB (Auto White Balance) 和 Demosaic 之前。这种布局确保了在后续色彩处理之前,先消除镜头阴影带来的增益差异。

关键点: LSC 必须在 Bayer 域(RAW 数据)上进行处理,因为此时每个像素只包含 R/Gr/Gb/B 一种颜色分量,阴影校正的增益值需要按通道独立计算。

2.1.2 主要 ISP 模块功能对比

模块缩写 全称 功能描述 与 LSC 的关系
BLC Black Level Correction 减去传感器暗电流偏移 前置依赖,BLC 不准会导致 LSC 增益偏差
DPC Defect Pixel Correction 修复坏点 前置依赖,坏点不修会被 LSC 放大
LSC Lens Shading Correction 补偿镜头阴影(亮度 + 色差) 当前章节核心模块
AWB Auto White Balance 白平衡校正 后置依赖,LSC 校正后色温估计更准确
Demosaic Color Interpolation Bayer 到 RGB 插值 后置依赖,LSC 在 RAW 域完成

2.2 LSC 硬件模块框图

RK3588/RK356x 的 LSC 硬件模块采用 网格增益插值 架构。它将整个图像传感器平面划分为 M × N 个网格,每个网格顶点存储一个增益值。硬件通过双线性插值计算每个像素点的实际增益。

硬件特性: RK3588 支持最大 17×17 网格(289 个顶点),RK356x 支持最大 13×9 网格(117 个顶点)。网格越密,校正精度越高,但标定数据量也越大。
LSC 硬件模块框图 LSC 硬件模块框图(RK3588/RK356x) RAW Bayer 输入 网格增益表 (M×N 顶点增益值) 双线性插值 (计算逐像素增益) 乘法器 (增益 × 像素) 校正后 RAW ISP 控制总线 数据流说明: 1. RAW Bayer 数据进入 LSC 模块,同时硬件从网格增益表读取当前像素对应的 4 个顶点增益值。 2. 双线性插值器根据像素在网格内的相对位置,计算该像素的最终增益系数。 3. 乘法器将原始像素值与增益系数相乘,输出校正后的 RAW 数据。 4. ISP 控制总线负责更新网格增益表,支持实时切换不同色温下的校正参数。

2.3 LSC 数据流与处理流程

LSC 模块的数据流遵循 “读取 → 插值 → 乘加 → 输出” 的流水线模式。每个时钟周期可以处理一个像素点,支持全分辨率实时校正。

2.3.1 逐像素处理步骤

  1. 坐标映射: 根据当前像素的 (x, y) 坐标,计算其所属的网格索引 (i, j)。
  2. 顶点读取: 从增益表中读取 (i, j)、(i+1, j)、(i, j+1)、(i+1, j+1) 四个顶点的增益值。
  3. 权重计算: 计算像素在网格内的归一化偏移量 (dx, dy),范围 [0, 1)。
  4. 双线性插值: 按公式 Gain = (1-dx)*(1-dy)*G00 + dx*(1-dy)*G10 + (1-dx)*dy*G01 + dx*dy*G11 计算最终增益。
  5. 增益应用: 将插值得到的增益值与原始像素值相乘,结果截断到有效位宽。

2.3.2 通道独立增益

RK 平台的 LSC 硬件支持 R、Gr、Gb、B 四个通道独立存储增益表。这是因为镜头对不同波长光的折射率不同,导致 R 通道和 B 通道的阴影曲线差异较大。独立增益表可以分别补偿亮度阴影(Luma Shading)和色差阴影(Color Shading)。

工程注意: 在调试 LSC 参数时,务必使用 灰卡(18% 中性灰) 进行标定。如果使用彩色色卡,不同通道的增益计算会相互耦合,导致校正后出现偏色。灰卡可以确保四个通道的增益值独立反映镜头阴影,而不受目标颜色影响。

2.4 网格配置与性能参数

不同芯片型号的 LSC 硬件资源不同,直接影响可支持的网格密度和校正精度。下表列出了 RK3588 和 RK356x 系列的关键差异:

参数项 RK3588 RK3566/RK3568 说明
最大网格数 17 × 17 (289 顶点) 13 × 9 (117 顶点) 网格越多,校正越精细
增益精度 12-bit 定点 10-bit 定点 高精度减少量化误差
最大分辨率 48M (8000×6000) 16M (4608×3456) 受 ISP 整体带宽限制
通道独立 R/Gr/Gb/B 四通道 R/Gr/Gb/B 四通道 均支持独立增益表
插值方式 双线性 + 边界镜像 双线性 RK3588 增加边界处理

2.5 硬件加速与实时性

LSC 模块完全由硬件流水线实现,不占用 CPU 资源。在 RK3588 上,处理 4K@60fps 视频流时,LSC 模块的延迟仅为 2 行像素时间(约 0.5μs @ 500MHz ISP 时钟)。这种低延迟特性使得 LSC 可以无缝集成到 ISP 前端流水线中,不会成为系统瓶颈。

性能指标: RK3588 LSC 模块的吞吐量可达 1.2 Gpixels/s(12-bit RAW),足以应对 48M 传感器 15fps 或 12M 传感器 60fps 的实时校正需求。
LSC 数据流时序图 LSC 流水线时序图(每像素处理周期) T1: 坐标映射 T2: 顶点读取 T3: 权重计算 T4: 双线性插值 T5: 乘加 每个时钟周期处理一个像素,5 级流水线并行工作,吞吐量为 1 像素/周期 像素序列: P0 P1 P2 P3 …… Pn

2.6 本章小结

  • RK3588/RK356x 的 LSC 模块位于 ISP 流水线前端,在 Bayer 域进行阴影校正。
  • 硬件采用 网格增益表 + 双线性插值 架构,支持 R/Gr/Gb/B 四通道独立校正。
  • RK3588 支持 17×17 网格,RK356x 支持 13×9 网格,网格密度直接影响校正精度。
  • LSC 数据流为 5 级流水线,每时钟周期处理 1 像素,延迟仅 2 行像素时间,满足实时性要求。
  • 标定 LSC 参数时必须使用灰卡,避免通道间耦合导致的偏色问题。