095、BLC黑电平校正的实时标定与温度补偿——基于高通Spectra的产线标定流程与算法实现
095、BLC黑电平校正的实时标定与温度补偿——基于高通Spectra的产线标定流程与算法实现产线上那台测试架又报红了,S5KGM2的Sensor在30度环境下标定的BLC值,到了60度老化房里暗电流直接飙了12个LSB。整批货差点报废,最后靠一套温度补偿查表硬拉回来的。这事让我一直想写写BLC这玩意——看着简单,不就是减个值嘛,但真到了量产环节,坑比想象中深得多。BLC的本质是Sensor在没有光入射时,像素本身存在的暗电流偏移。这个偏移不是常数,它跟温度强相关,跟曝光时间强相关,甚至跟增益档位都有关系。高通Spectra平台把BLC拆成了两部分:Sensor端有模拟域的黑电平钳位,ISP端有数字域的BLC校正。产线标定要做的,就是把数字域那部分校准到跟Sensor实际输出匹配。先说说产线标定的标准流程。我们用的是暗箱+均匀光源的方案,但这里有个关键细节——暗箱必须做到绝对遮光,不能有漏光点。之前有个兄弟工厂用了个旧暗箱,侧面有个小孔没堵上,标出来的BLC值整体偏了3个LSB,整批手机拍出来的夜景都发灰。检查方法很简单,把镜头用黑胶带完全封死,拍一张RAW图,看四个角落的亮度差,如果超过1个LSB,说明暗箱漏光,得先修设备。标定动作本身不复杂:封住镜头,在固定曝光时间下连拍N帧RAW图,取平均,然后统计中心区域的均值作为BLC值。但这里有个容易踩坑的点——Sensor的暗电流跟曝光时间是线性关系,所以标定曝光时间必须跟实际使用场景匹配。我们产线标准是30ms曝光,但用户实际拍夜景可能用到200ms,这时候BLC值就偏了。高通Spectra的ISP里有BLC模块的曝光补偿系数,但那个系数是线性外推的,到了长曝光区间,暗电流的非线性特性会让