一、黑电平校正概述

1.1 什么是黑电平

黑电平,说白了就是图像传感器在完全没有光照时输出的信号值。

你想想看,一个理想的传感器,在完全黑暗的环境下,输出的像素值应该是0。但现实世界哪有这么完美?我做过这么多项目,还没见过哪个传感器能真正做到零输出。

实际的情况是,即使你把镜头盖得严严实实,传感器还是会输出一个非零的数值。这个数值,就是黑电平。

黑电平的定义:传感器在零光照条件下输出的数字信号值,通常用DN(Digital Number)表示。

举个例子。我手头有一款索尼的IMX290传感器,它的黑电平典型值是64 DN(10-bit模式下)。这意味着什么?意味着在完全黑暗的环境下,每个像素都会输出64这个数值,而不是0。

1.2 黑电平产生的原因

为什么会这样?这里有几个主要原因。

  • 暗电流:半导体器件本身的热激发会产生电子。温度越高,暗电流越大。我在夏天做户外摄像头项目时,黑电平能比冬天高出30%以上。
  • 电路噪声:读出电路、放大器、ADC都会引入固定的偏置。这些偏置叠加在一起,就形成了黑电平。
  • 像素结构:CMOS传感器的每个像素都有复位晶体管和源跟随器,这些晶体管本身就有一定的偏置电压。
  • 工艺偏差:不同晶圆、不同批次生产的传感器,黑电平也会有差异。我记得有一次,同一款传感器,两个批次的样品黑电平差了8个DN。

我的经验:黑电平并不是一个固定值。它会随着温度、增益、曝光时间的变化而变化。所以很多ISP方案都会做动态黑电平校正,而不是用一个固定的值去减。

1.3 黑电平对图像质量的影响

黑电平如果不校正,会带来什么问题?我直接说结论:影响很大。

影响方面 具体表现 严重程度
色彩偏差 暗部偏色,尤其黑色物体看起来发灰发紫
对比度下降 动态范围被压缩,画面发雾
信噪比降低 暗部噪声被放大,细节丢失
白平衡不准 黑电平偏移导致白平衡算法误判

我遇到过最典型的一个案例:某款安防摄像头,在夜间模式下画面整体偏紫。排查了三天,最后发现是黑电平校正参数没跟上温度变化。白天温度高,黑电平漂了,但校正值还是用原来的。结果就是暗部色彩全乱套了。

避坑指南:我曾经在调试一款手机摄像头时,发现暗光下画面总是偏绿。折腾了各种白平衡参数都没用。后来才发现,是黑电平校正没做好,导致R通道和B通道的暗部响应不一致。所以,遇到色彩问题,先检查黑电平,别急着调白平衡。

1.4 BLC在ISP Pipeline中的位置

黑电平校正(Black Level Correction,简称BLC)在ISP流水线中,通常排在非常靠前的位置。

标准的ISP Pipeline顺序一般是这样的:

  1. Sensor RAW数据输入
  2. 黑电平校正(BLC) ← 我们在这里
  3. 坏点校正(DPC)
  4. 去噪(Denoise)
  5. 去马赛克(Demosaic)
  6. 白平衡(AWB)
  7. 色彩校正(CCM)
  8. Gamma校正
  9. 其他后处理

为什么BLC要放在这么前面?道理很简单:后面的所有处理,都依赖于正确的像素值。如果黑电平没校正好,后面的坏点检测、去噪、白平衡都会基于错误的数据做运算。结果就是一步错,步步错。

关键点:BLC是ISP Pipeline的基石。基础不牢,地动山摇。我见过太多工程师花大量时间调后面的模块,结果发现是黑电平没校好。嗯,这其实挺浪费时间的。

举个具体的例子。假设传感器黑电平是64 DN,一个暗部像素实际输出是70 DN。如果不做BLC,这个像素的真实亮度应该是70 - 64 = 6 DN。但如果BLC没做,后面的白平衡模块会把这个70 DN当作真实信号来处理。结果就是暗部被错误地放大,噪声也跟着被放大了。

所以,我的习惯是:拿到一款新传感器,第一件事就是测它的黑电平特性。不同温度、不同增益下的黑电平值,我都会记录下来。这些数据,是后续所有ISP调优的基础。

小技巧:很多传感器厂商会在datasheet里给出黑电平的典型值。但别完全信那个值。我建议你实际测一下,因为不同模组、不同批次之间确实有差异。测的方法很简单:盖上镜头盖,拍一张全黑图,然后统计所有像素的平均值。这个平均值,就是实际的黑电平。

好了,这一章我们讲清楚了黑电平是什么、为什么会产生、有什么影响,以及它在ISP Pipeline中的位置。下一章,我会带你看看BLC的具体实现方法,包括硬件实现和软件实现两种方式。