4. 黑电平校正与镜头阴影补偿
黑电平校正(BLC)与镜头阴影补偿(LSC)是ISP前端最靠近Sensor的两级校正,它们处理的是两类不同来源的“非理想偏移”:一类是暗电流与读出电路引入的加性偏置,另一类是镜头与CRA失配引入的乘性空间衰减。理解这两级的关键,是先分清“加性”与“乘性”在数学上的差别,再理解它们在Bosch ISP流水线中的位置与参数形态。
黑电平漂移的机理
CMOS像素在无光条件下输出的并非0,而是由暗电流、复位噪声、源跟随器失调和列读出电路共同形成的基底电平。这个基底电平随温度、曝光时间和模拟增益变化:温度每升高约6~8℃,暗电流大致翻倍;模拟增益提高时,黑电平也会被同步放大。因此黑电平不是固定常数,而是一个随工况漂移的偏置量。若不做校正,暗部会被整体抬高,导致暗部对比度下降、暗部噪声被“垫高”,并在后续白平衡与色彩矩阵中被放大成偏色。
黑电平校正的数学形式是减性操作:P_out = P_in - BL。关键在于BL的取值必须与当前增益、温度、曝光时间匹配。工程上通常按“模拟增益档位”建立黑电平查找表,而不是用单一常数。
OB区统计与校正算法
Sensor通常会在有效像素区外围设置光学黑(Optical Black,OB)区,这些像素被遮光但保留同样的读出电路,因此其输出直接反映当前工况下的黑电平。Bosch ISP的BLC模块会读取OB区统计值,常用做法是:对OB区像素做均值统计,同时剔除异常点(如坏点、列固定噪声),再按行/列方向做一维平滑,得到逐行或逐列的黑电平估计。
校正算法一般分三步:
- OB统计:对OB区按行、按列分别求均值,得到行黑电平向量与列黑电平向量。
- 平滑与限幅:对行/列向量做滑动平均,抑制随机噪声;同时设置上下限,防止坏行坏列把估计值拉偏。
- 逐像素减除:对有效像素按所在行、列减去对应黑电平,并做下限钳位(通常钳到0或一个很小的正数),避免出现负值。
需要特别注意的是,OB区统计必须在模拟增益切换后重新收敛,否则会出现“增益切换瞬间暗部跳变”的现象。调试时可在增益切换后观察若干帧的OB均值曲线,确认其稳定时间。
LSC网格标定与插值
镜头阴影表现为画面四角亮度低于中心,且R/G/B三通道衰减比例不同。LSC的校正模型是乘性增益:P_out = P_in × G(x,y),其中G(x,y)是位置相关的增益,中心接近1,四角大于1。工程实现上不会存储逐像素增益,而是把画面划分为M×N个网格(常见如17×13、33×25),每个网格节点存储一个增益值,像素位置通过双线性插值得到实际增益。
标定流程通常为:在均匀面光源下拍摄一张平场图,对每个颜色通道分别计算“目标亮度/实际亮度”得到增益图,再降采样到网格节点。标定时要注意:平场图本身要先经过BLC,否则暗部偏置会污染增益计算;光源色温应接近模组常用场景;镜头对焦位置应与实际使用一致,因为对焦会改变阴影分布。
插值环节需要关注边界处理:画面边缘的像素可能落在网格外,此时应使用边缘节点增益做外推或钳位,避免出现增益突变。Bosch ISP的LSC模块通常支持网格分辨率、插值方式(双线性/双三次)和增益上限配置,增益上限用于防止四角过度放大噪声。
色差阴影处理
由于镜头对不同波长的折射率不同,R/G/B三通道的阴影形状并不一致,通常蓝通道四角衰减最严重,红通道次之,绿通道相对较轻。如果只用一个亮度增益表,校正后四角会出现偏色(常见为偏蓝或偏紫)。因此LSC必须分通道标定:R、Gr、Gb、B各自拥有独立的网格增益表。Gr与Gb虽然同为绿色,但由于Bayer阵列中位置不同,其阴影也可能存在细微差异,高端方案会分别处理。
色差阴影的验证方法是:校正后拍摄均匀灰卡,检查四角与中心的R/G/B比值是否一致。若四角偏蓝,说明蓝通道增益不足;若四角偏黄,说明蓝通道增益过大。调整时应以绿通道为基准,微调R/B通道增益,而不是整体抬高亮度。
Bosch ISP中BLC与LSC参数调试与效果验证
在Bosch ISP的调试工具中,BLC模块通常暴露以下参数:OB区起止行列、统计模式(均值/中值)、行/列平滑窗口、黑电平偏移量、钳位下限。LSC模块则暴露:网格行列数、各通道增益表、插值模式、增益上限、是否使能色差补偿。
调试顺序建议为:先关LSC、开BLC,在暗场下确认黑电平收敛;再开LSC,在均匀光源下确认四角亮度与色比;最后两者同时开启,检查暗部与四角是否出现异常。验证时可用以下检查表:
| 检查项 | 观察对象 | 合格判据(示例) |
|---|---|---|
| 黑电平收敛 | 暗场OB均值 | 增益切换后3帧内波动<1LSB |
| 暗部钳位 | 暗场有效像素最小值 | 无大面积0值或负值截断 |
| 亮度均匀性 | 平场图四角/中心亮度比 | 校正后≥90%(示例目标) |
| 色比一致性 | 四角与中心R/G、B/G比值 | 偏差<3%(示例目标) |
| 噪声放大 | 四角暗部噪声 | 不明显高于中心,无彩色噪点 |
最后需要强调的是,BLC与LSC的调试不是一次性的,而是随模组、镜头、温度、增益档位变化的。建议为每个增益档位建立独立的BLC黑电平表,并为每个镜头型号建立独立的LSC网格表,在产线标定时写入OTP或配置文件,运行时由ISP按当前工况加载。