黑电平校正(BLC)基础概念
各位同学,咱们今天聊聊黑电平校正。这名字听着挺学术,其实说白了,就是让摄像头在完全没光的时候,输出纯黑画面。你想想看,如果拍出来的黑色不是纯黑,而是发灰、发紫、发绿,那后面的图像处理全白搭。
我做了十几年ISP,见过太多项目因为黑电平没调好,导致整批摄像头返工。嗯,咱们从根上讲起。
什么是黑电平
黑电平,英文叫 Black Level,指的是图像传感器在完全没有光照输入时,输出的信号值。
理想情况下,没光就应该输出 0。但现实不是这样的。传感器本身有暗电流,ADC(模数转换器)也有偏移,所以实际输出会大于 0。这个大于 0 的底数,就是黑电平。
核心概念:黑电平 = 传感器在暗场条件下的输出信号值。校正的目的就是把这个值拉回到 0(或目标基准值)。
我习惯把黑电平理解成「图像的零点」。零点不准,整个画面的亮度、颜色都会跑偏。
黑电平产生的物理原因
为什么会这样?主要有两个罪魁祸首。
1. 暗电流
暗电流是半导体器件的固有特性。即使没有光子入射,硅基材料中的热激发也会产生电子-空穴对。温度越高,暗电流越大。
我记得有一次做户外枪机项目,夏天中午画面偏紫得厉害。查了半天,就是暗电流随温度漂移了。黑电平没跟上,颜色全乱套。
| 温度 | 暗电流典型值(e-/s) | 对黑电平影响 |
|---|---|---|
| 25°C | 10~50 | 轻微偏移 |
| 60°C | 200~1000 | 明显抬升 |
| 85°C | 1000~5000 | 严重漂移 |
避坑指南:我曾经在项目里直接用常温标定的黑电平值去处理高温场景,结果画面暗部全偏红。后来才意识到,暗电流随温度变化是非线性的,必须做温度补偿。
2. ADC 偏移
ADC 把模拟信号转成数字信号时,本身就有个基准偏移。不同通道的 ADC 偏移还不一样,这就导致了 R、G、B 三个通道的黑电平不一致。
你想想看,三个通道的零点都不一样,画面能不偏色吗?
个人经验:我建议在产线标定时,单独测量每个通道的黑电平值,不要偷懒用平均值。通道间的差异有时候能差到 5~10 个 DN 值,这在暗部就是肉眼可见的偏色。
黑电平对图像质量的影响
黑电平没校好,后果很严重。我总结了两大问题。
1. 偏色
刚才说了,R、G、B 三个通道的黑电平不一致,暗部就会偏色。最常见的是暗部偏紫或偏绿。
为什么偏紫?因为红色和蓝色通道的黑电平比绿色高,暗部就多了红蓝成分。为什么偏绿?反过来,绿色通道的黑电平偏高。
- R 通道黑电平偏高 → 暗部偏红/偏紫
- G 通道黑电平偏高 → 暗部偏绿
- B 通道黑电平偏高 → 暗部偏蓝
- 三通道同时偏高 → 画面发灰,对比度下降
2. 对比度丢失
黑电平抬升,相当于把整个画面的亮度底数往上提。暗部细节被压缩,对比度自然就差了。
我举个例子。假设 10-bit 的传感器,理想黑电平是 0。如果实际黑电平是 32,那暗部 0~32 这个区间的细节全丢了。本来能分辨的暗部纹理,现在全变成一片灰。
关键数据:黑电平每抬升 1%,暗部动态范围就损失约 1%。在安防监控的夜间场景,这个损失是致命的。
知识体系总览
下面这张图,把黑电平校正的核心逻辑串起来了。我建议你多看几遍,理解清楚再往下走。
小结
黑电平校正,说白了就是给图像定零点。零点不准,后面做白平衡、做伽马、做色彩校正,全是在错误的基础上折腾。
我个人习惯,拿到一个新 sensor 的第一件事,就是测它的黑电平特性。常温测一组,高温测一组,低温测一组。把数据摸透了,后面调 ISP 才心里有底。
给新手的建议:别急着调参数。先把黑电平的物理原理吃透,把暗电流和 ADC 偏移这两个概念搞清楚。基础打牢了,后面学镜头阴影校正、学 AWB,都会轻松很多。