3. 黑电平校正(BLC)

3.1 BLC 原理与作用

黑电平校正(Black Level Correction, BLC)是 ISP 流水线中位于最前端的预处理模块之一。其核心目标是消除图像传感器在无光照条件下(即完全遮光时)输出的非零信号,确保“黑”在数字域中对应正确的码值(通常为 0 或一个固定偏移量)。

核心作用: 恢复暗部细节、消除偏色、为后续自动曝光(AE)和自动白平衡(AWB)提供准确的暗区基准。

理想 CMOS 传感器在无光时输出应为 0,但由于暗电流、像素复位噪声、ADC 偏移等物理因素,实际输出会叠加一个基底值。BLC 通过减去这个基底值,使图像暗部回归中性。

关键概念: 黑电平校正 ≠ 暗角校正。BLC 处理的是全图均匀的暗电流偏移,而暗角校正是针对镜头引起的边缘亮度衰减。
BLC 在 ISP 流水线中的位置 RAW 输入 BLC 校正 LSC 校正 AWB / AE 输出 BLC 必须在 RAW 域、去马赛克(Demosaic)之前完成,否则暗电流偏移会被插值算法放大

3.2 暗电流对图像的影响及补偿策略

暗电流(Dark Current)是半导体器件中由热激发产生的电子-空穴对,即使没有光照也会累积电荷。温度每升高 6-8°C,暗电流约翻倍。暗电流对图像的具体影响如下:

影响维度 表现 严重程度
亮度偏移 暗部区域整体抬升,黑色不纯 高
信噪比下降 暗电流散粒噪声叠加,暗部噪点增多 高
偏色 不同颜色通道暗电流不一致,暗部偏绿/偏紫 中
动态范围压缩 暗电流占用 ADC 码值范围,减少有效信号摆幅 中
实战注意: 在 RK 平台上,如果 BLC 参数设置不当(如补偿值过大),会导致暗部细节被“剪掉”,出现死黑区域;补偿值过小则暗部发灰、偏色。建议在 25°C 恒温环境下标定 BLC 基准值。

补偿策略:

  • 帧级补偿: 每帧采集前,读取传感器 OB(Optical Black)像素行/列的平均值,实时减去该值。
  • 温度查表补偿: 预先标定不同温度下的暗电流值,运行时根据传感器温度传感器读数查表调整。
  • 通道独立补偿: R/Gr/Gb/B 四个通道分别计算 BLC 值,消除通道间暗电流差异导致的偏色。
暗电流补偿策略流程图 传感器 RAW 数据 OB 可用? 实时 OB 行/列均值 温度查表补偿 通道独立 BLC 输出 OB 像素优先:实时性强、精度高;温度查表作为 OB 不可用时的后备方案

3.3 RK 平台 BLC 参数配置方法

在瑞芯微 RK 平台(如 RK3588、RK3568)上,BLC 参数通过 IQ Tool 或 DTS 配置文件进行调节。核心参数位于 isp_modules 节点下的 blc 子节点。

关键参数表:

参数名 数据类型 说明 典型值范围
enable bool BLC 模块使能 0 / 1
blc_r uint16 R 通道黑电平偏移量 0 ~ 4095 (12bit)
blc_gr uint16 Gr 通道黑电平偏移量 0 ~ 4095
blc_gb uint16 Gb 通道黑电平偏移量 0 ~ 4095
blc_b uint16 B 通道黑电平偏移量 0 ~ 4095
ob_auto_en bool OB 像素自动校正使能 0 / 1
配置建议: 在 IQ Tool 中,建议先关闭 OB 自动校正(ob_auto_en = 0),手动填入标定值;待图像暗部中性后,再开启 OB 自动校正以应对温度漂移。

DTS 配置示例(RK3588):

isp_modules {
    blc {
        enable = <1>;
        blc_r = <64>;
        blc_gr = <60>;
        blc_gb = <62>;
        blc_b = <66>;
        ob_auto_en = <1>;
        ob_row_start = <0>;
        ob_row_end = <3>;
    };
};

标定步骤:

  1. 准备条件: 传感器完全遮光(镜头盖盖紧),环境温度稳定在 25°C ± 2°C。
  2. 采集 RAW 图: 使用 RK 提供的 rkisp_demo 工具抓取一帧 RAW 数据。
  3. 计算均值: 分别统计 R/Gr/Gb/B 四个通道的像素均值。
  4. 填入参数: 将各通道均值作为 blc_* 参数写入 DTS 或 IQ Tool。
  5. 验证: 再次抓取 RAW 图,确认各通道均值接近 0 或目标偏移值。
BLC 标定流程 ① 遮光恒温 ② 抓取 RAW ③ 通道均值 ④ 写入参数 ⑤ 验证输出 验证不合格时,返回步骤③重新计算

3.4 实战案例:暗部偏色问题排查

现象: 在低照度场景(0.1 lux)下,图像暗部区域明显偏紫红色。

排查步骤:

  1. 抓取全黑 RAW 图,分别统计 R/Gr/Gb/B 通道均值。
  2. 发现 R 通道均值为 96,B 通道均值为 88,Gr/Gb 均为 72。
  3. R 通道暗电流明显高于其他通道,导致暗部偏红/紫。
  4. 在 DTS 中将 blc_r 从 64 调整为 96,blc_b 从 66 调整为 88。
  5. 重新验证,暗部偏色消除。
经验总结: 暗部偏色 90% 以上由 BLC 通道间不匹配引起。在 RK 平台上,务必为 R/Gr/Gb/B 四个通道独立配置 BLC 值,不要使用统一值。

3.5 BLC 与后续模块的配合

BLC 校正后的数据质量直接影响后续模块:

后续模块 BLC 影响 配合要点
LSC(镜头阴影校正) BLC 不准会导致 LSC 增益计算偏差 先 BLC 后 LSC,确保暗场基准正确
AWB(自动白平衡) 暗电流偏移会污染色温统计 BLC 后的数据再送入 AWB 统计器
AE(自动曝光) 暗电流抬升亮度均值,导致 AE 欠曝 AE 统计窗口应避开 OB 像素区域
去马赛克(Demosaic) BLC 残留偏移会被插值放大为彩色条纹 确保 BLC 精度在 ±1 LSB 以内
RK 平台调试顺序: 建议按照 BLC → LSC → AWB/AE → Demosaic → 降噪 → 锐化的顺序逐步调优。BLC 是第一步,基础不牢,后续全白费。