3. ISP Pipeline 概述:LSC 与 DPC 模块的输入输出关系
ISP(Image Signal Processor,图像信号处理器)是数字成像系统的核心,负责将 RAW 域传感器数据转换为高质量的 RGB/YUV 图像。本章聚焦 ISP Pipeline 的完整流程,并重点剖析 LSC(Lens Shading Correction,镜头阴影校正)与 DPC(Defect Pixel Correction,坏点校正)两个关键模块的输入输出关系与数据流。
3.1 ISP Pipeline 完整流程
典型的 ISP Pipeline 按数据流顺序分为以下主要阶段:
| 阶段 | 模块 | 输入 | 输出 | 说明 |
|---|---|---|---|---|
| 1 | Sensor RAW 输入 | 光信号 → 电荷 → 数字码 | Bayer RAW 数据 | 单通道 Bayer 模式,含黑电平 |
| 2 | 黑电平校正 (BLC) | Bayer RAW | 校正后 RAW | 减去光学黑电平偏移 |
| 3 | 坏点校正 (DPC) | 校正后 RAW | 修复后 RAW | 检测并替换静态/动态坏点 |
| 4 | 镜头阴影校正 (LSC) | 修复后 RAW | 亮度/颜色均匀 RAW | 补偿镜头渐晕与颜色偏移 |
| 5 | 去马赛克 (Demosaic) | 均匀 RAW | RGB 图像 | 插值恢复全分辨率 RGB |
| 6 | 白平衡 (AWB) | RGB | 色温校正 RGB | 调整 R/G/B 增益 |
| 7 | 颜色校正矩阵 (CCM) | 校正后 RGB | 标准色域 RGB | 3×3 矩阵线性变换 |
| 8 | Gamma 校正 / 色调映射 | 线性 RGB | 非线性 RGB | 适应显示设备 |
| 9 | 边缘增强 / 降噪 | 非线性 RGB | 锐化后 RGB | 2D 滤波与细节提升 |
| 10 | 输出格式转换 | RGB | YUV / JPEG | 编码与压缩 |
关键理解:DPC 与 LSC 均位于 RAW 域处理的前端,且 DPC 必须在 LSC 之前执行。若先做 LSC 再修复坏点,坏点像素会被增益放大,导致修复难度增加且残留伪影。
3.2 ISP Pipeline 数据流架构图
下图展示了 ISP Pipeline 中 RAW 域与 RGB 域的主要模块及数据流向,其中 DPC 与 LSC 模块以高亮色标出:
3.3 LSC 模块的输入输出关系
LSC(Lens Shading Correction)用于补偿镜头光学特性导致的亮度衰减(渐晕)与颜色偏移。其核心数学模型为逐像素增益补偿:
// LSC 校正公式(简化)
I_corrected(x, y) = I_raw(x, y) × Gain(x, y)
// 增益矩阵通常由标定生成,存储为二维查找表(LUT)
// 对于 Bayer 格式,每个颜色通道(R, Gr, Gb, B)有独立的增益表
Gain(x, y) = LUT_R[x][y] // 若当前像素为 R 通道
| 属性 | 输入 | 输出 |
|---|---|---|
| 数据格式 | Bayer RAW(10/12/14-bit) | Bayer RAW(10/12/14-bit) |
| 分辨率 | 全分辨率(如 4000×3000) | 全分辨率(不变) |
| 像素值范围 | 中心亮、边缘暗(非均匀) | 全画面亮度均匀 |
| 颜色分布 | 边缘可能偏色(颜色阴影) | 颜色一致性恢复 |
| 附加数据 | 增益 LUT(标定参数) | 无(仅输出校正后 RAW) |
工程要点:LSC 增益值通常大于 1.0(边缘区域可达 2.0~4.0 倍),因此 LSC 会放大噪声。建议在 LSC 之后立即进行降噪处理,或采用自适应增益限制策略。
3.4 DPC 模块的输入输出关系
DPC(Defect Pixel Correction)用于检测并修复传感器上的坏点(死点、亮点、闪烁点)。DPC 分为静态校正(基于坏点表)与动态校正(基于邻域统计)。
// 动态 DPC 检测示例(简化)
// 以当前像素 p_center 与 8 邻域均值比较
mean = (p_tl + p_t + p_tr + p_l + p_r + p_bl + p_b + p_br) / 8
if (|p_center - mean| > threshold) {
p_center = median(p_tl, p_t, p_tr, p_l, p_r, p_bl, p_b, p_br)
}
| 属性 | 输入 | 输出 |
|---|---|---|
| 数据格式 | Bayer RAW(10/12/14-bit) | Bayer RAW(10/12/14-bit) |
| 分辨率 | 全分辨率 | 全分辨率(不变) |
| 像素值范围 | 含异常值(0 或饱和值) | 异常值被替换为合理值 |
| 坏点信息 | 静态坏点表(可选) | 无(仅输出修复后 RAW) |
| 检测方式 | 动态检测 + 静态表 | 修复后像素与邻域一致 |
常见陷阱:DPC 阈值设置过低会导致误判(将正常细节当作坏点),过高则漏检。建议在标定阶段统计传感器坏点分布,设置动态阈值与静态表双重保障。
3.5 LSC 与 DPC 的协同工作关系
在 ISP Pipeline 中,DPC 与 LSC 的先后顺序直接影响校正质量。下图展示了两个模块之间的数据依赖与交互:
3.6 实战调优建议
- 标定顺序:先标定 DPC 坏点表(静态),再标定 LSC 增益矩阵。若先标定 LSC,坏点会影响增益计算。
- 动态 DPC 阈值:建议根据传感器增益(ISO)自适应调整阈值,高 ISO 时适当放宽阈值避免误判。
- LSC 增益限制:设置最大增益上限(如 4.0 倍),防止边缘噪声过度放大。
- 调试工具:使用 RAW 分析工具(如 Imatest、DCRAW)分别查看 DPC 前后、LSC 前后的图像差异。
核心结论:DPC 与 LSC 是 RAW 域校正的基石。DPC 保证像素级数据干净,LSC 保证画面亮度与颜色均匀。两者配合得当,可显著提升后续 Demosaic、AWB 等模块的处理质量。