3. 黑电平校正(BLC)

黑电平校正(Black Level Correction, BLC)是ISP Pipeline中最早期的模块之一,其核心任务是消除传感器在无光照条件下产生的固定模式暗电流偏移,确保图像的黑场基准为0。若BLC参数配置不当,图像会出现偏色、对比度下降或暗部细节丢失等问题。

3.1 黑电平产生原理

图像传感器(CMOS/CCD)的每个像素在无光照时仍会输出一个非零电压信号,该信号主要由以下因素引起:

  • 暗电流(Dark Current):半导体热激发产生的电子-空穴对,随温度升高呈指数增长。
  • 像素复位噪声:像素复位操作引入的固定偏移。
  • 读出电路偏移:列放大器、ADC等模拟前端电路的直流偏置。

黑电平通常以数字码值(DN, Digital Number)表示。例如,一个10-bit RAW传感器的理想黑电平为0,但实际输出可能在64~128 DN之间。BLC模块通过减去一个全局或局部偏移量,将暗场像素值归零。

关键概念:黑电平与暗电流不同。黑电平是传感器在完全遮光条件下的平均输出值,而暗电流是随时间累积的电荷。BLC校正的是静态偏移,而非动态噪声。
黑电平产生原理示意图 CMOS像素阵列 无光照时仍有输出 暗电流 热激发电子-空穴对 读出电路偏移 列放大器/ADC偏置 ∑ RAW输出(含黑电平) 例如:10-bit 输出 64~128 DN 黑电平 = 暗电流 + 读出偏移

3.2 BLC参数配置

瑞芯微RK平台ISP的BLC模块通常提供以下可配置参数,这些参数存储在IQ XML文件中:

参数名称 数据类型 说明 典型值范围
blc_r uint16 R通道黑电平偏移量 0 ~ 4095 (12-bit)
blc_gr uint16 Gr通道黑电平偏移量 0 ~ 4095
blc_gb uint16 Gb通道黑电平偏移量 0 ~ 4095
blc_b uint16 B通道黑电平偏移量 0 ~ 4095
blc_ob_enable bool 光学黑区(OB)自动校准使能 0 / 1
blc_ob_rows uint8 OB区域行数(用于动态计算黑电平) 2 ~ 16
配置要点:
  • BLC参数需按Bayer通道独立配置,因为不同通道的暗电流响应存在差异。
  • 若启用OB自动校准(blc_ob_enable = 1),ISP会从传感器光学黑区实时提取黑电平值,适应温度变化。
  • 手动配置时,建议在完全遮光环境下拍摄多帧RAW图,取各通道平均值作为初始值。

3.3 校正效果评估

BLC校正效果可通过以下指标和工具进行评估:

  • 暗场均值(Dark Mean):校正后暗场图像各通道均值应趋近于0(或目标值)。
  • 暗场标准差(Dark Std):反映校正后残留噪声水平,越小越好。
  • Bayer通道一致性:R/Gr/Gb/B四个通道的暗场均值差异应小于1 DN。
  • 直方图检查:校正后暗场直方图应集中在0附近,无截断或偏移。
常见问题:若BLC参数设置过大(过校正),暗部细节会被削波,导致图像发黑、偏色;若设置过小(欠校正),暗部会偏灰、对比度不足。建议在IQ调试初期优先使用OB自动校准模式。
BLC校正效果对比(暗场直方图示意) 校正前 像素值集中在 64~128 DN 0 255 校正后 像素值集中在 0~10 DN 0 255

3.4 BLC校正流程

在瑞芯微RK平台进行BLC调优的推荐步骤如下:

  1. 采集暗场RAW数据:使用镜头盖完全遮挡镜头,设置目标增益和曝光时间,拍摄至少100帧RAW图像。
  2. 计算各通道均值:对RAW图像按Bayer模式分离R/Gr/Gb/B通道,计算每个通道的像素均值。
  3. 写入IQ参数:将各通道均值作为blc_r、blc_gr、blc_gb、blc_b的初始值。
  4. 验证校正效果:重新采集暗场图像,检查各通道均值是否接近0,直方图是否集中在0附近。
  5. 温度补偿测试:在-20°C、25°C、60°C下重复步骤1~4,确认黑电平偏移在可接受范围内。
  6. 启用OB自动校准:若传感器支持光学黑区,设置blc_ob_enable = 1,并配置OB行数。
调试经验:在RK平台IQ Tool中,BLC参数通常与增益(Gain)联动。建议在多个增益点(如1x、2x、4x、8x)下分别标定黑电平,并拟合为增益的函数,以实现全增益范围的精确校正。
BLC校正流程架构图 采集暗场RAW 100帧 / 遮光 计算通道均值 R/Gr/Gb/B 写入IQ参数 blc_r/gr/gb/b 验证校正效果 均值≈0? 通过? 失败 → 返回步骤1 成功 → 温度补偿测试

3.5 代码示例:BLC参数配置

以下为瑞芯微RK平台IQ XML中BLC参数的配置片段:

<!-- IQ XML: BLC 参数配置示例 -->
<blc>
    <blc_r>64</blc_r>
    <blc_gr>66</blc_gr>
    <blc_gb>65</blc_gb>
    <blc_b>68</blc_b>
    <blc_ob_enable>1</blc_ob_enable>
    <blc_ob_rows>8</blc_ob_rows>
    <!-- 增益分段标定 -->
    <blc_gain_calib>
        <gain level="1.0">
            <blc_r>64</blc_r>
            <blc_gr>66</blc_gr>
            <blc_gb>65</blc_gb>
            <blc_b>68</blc_b>
        </gain>
        <gain level="4.0">
            <blc_r>72</blc_r>
            <blc_gr>74</blc_gr>
            <blc_gb>73</blc_gb>
            <blc_b>76</blc_b>
        </gain>
    </blc_gain_calib>
</blc>
提示:在RK平台ISP调试工具中,BLC参数支持实时预览。建议在调试时打开暗场直方图窗口,观察校正后的像素分布是否集中在0附近。若发现直方图在0处出现截断,说明黑电平设置过大,需要减小对应通道的偏移量。
评估项目 合格标准 测试方法
暗场均值 各通道 ≤ ±1 DN 镜头盖遮挡,拍摄100帧RAW取平均
通道间差异 max - min ≤ 2 DN 比较R/Gr/Gb/B四通道均值
温度稳定性 温度变化20°C时偏移 ≤ 3 DN 高低温箱测试
线性度 不同增益下黑电平偏移 ≤ 1 DN 改变模拟增益,检查暗场均值变化