4. 镜头阴影校正(LSC):亮度阴影与颜色阴影的成因分析、LSC Gain Table 的生成与标定流程、四角偏色问题的解决思路

镜头阴影校正,圈里人常叫 LSC。说白了,就是解决照片四周发暗、发绿或者发红的问题。你拿手机对着白墙拍一张,如果四角比中心暗,那就是亮度阴影;如果四角偏绿或偏紫,那就是颜色阴影。

我刚开始做 ISP 调试那会儿,最头疼的就是这个。明明 sensor 和 lens 都选得不错,一拍出来四角就是花的。后来才明白,这不是硬件坏了,是光学的物理规律决定的。

4.1 亮度阴影与颜色阴影的成因分析

先说说亮度阴影。镜头本身是个凸透镜,光线从中心通过和从边缘通过,路径长度不一样。边缘的光线到达 sensor 时,能量已经衰减了不少。这就是 cos⁴ 定律——边缘照度大致按 cos⁴θ 下降。θ 越大,衰减越狠。

颜色阴影呢?更麻烦。不同波长的光在镜头里折射率不同。红光偏折小,蓝光偏折大。到了 sensor 边缘,红光和蓝光到达的位置就错开了。这就是 Chief Ray Angle(CRA)失配。Sensor 的微透镜设计有最佳入射角,边缘光线角度偏了,颜色就串了。

核心结论:亮度阴影是能量衰减,颜色阴影是光谱分离。两个问题经常同时出现,但校正方法不同。

我在一个项目里遇到过极端情况——用了大广角镜头,边缘亮度掉了 40%,四角还带一圈紫边。当时排查了很久,最后发现是 lens 的 CRA 和 sensor 的 micro-lens 没对齐。换了个 lens 就好了。所以选型阶段就要看 CRA 匹配。

4.2 LSC Gain Table 的生成与标定流程

校正阴影,核心就是给每个像素乘一个增益。中心区域增益小,边缘增益大。这个增益值存在一张表里,叫 Gain Table。

标定流程我一般分五步走:

  1. 准备均匀光源——积分球或者均匀白板。光源色温要稳定,我习惯用 D65。
  2. 采集 raw 图——盖上镜头盖拍一张暗场,再对着光源拍一张亮场。暗场用来减掉固定噪声。
  3. 计算增益——把亮场图分成网格,比如 16x16 或 32x32。每个网格算一个平均亮度值。中心网格的亮度作为基准,其他网格的增益 = 基准 / 当前亮度。
  4. 插值平滑——直接算出来的增益可能有噪声,要用双线性或双三次插值做平滑。我习惯用双线性,速度快,效果也够。
  5. 写入寄存器——把平滑后的 Gain Table 转成定点数,烧进 ISP 的 LSC 模块。

这里有个细节:Gain Table 的精度很关键。我一般用 Q8.8 格式,也就是 16 位定点数,8 位整数 8 位小数。精度太低,校正后会有条纹;精度太高,寄存器装不下。

我的习惯:标定环境一定要稳定。光源波动超过 1%,就得重拍。我曾经因为空调吹动了积分球,导致标定结果每天都不一样。后来把积分球放在恒温箱里,问题才解决。

下面这张图是 LSC 标定的完整流程:

LSC Gain Table 标定流程 准备均匀光源 采集暗场 + 亮场 网格划分 & 增益计算 插值平滑 写入 ISP 寄存器 注意 网格大小影响精度 16x16 是常用折中

4.3 四角偏色问题的解决思路

亮度阴影校正完了,四角可能还是偏色。这就是颜色阴影没处理好。解决思路分三个层次:

4.3.1 分通道校正

R、G、B 三个通道的阴影曲线不一样。不能用一个 Gain Table 通吃。我习惯对每个通道单独标定,生成三张 Gain Table。这样校正后,四角的颜色就能和中心一致。

注意:分通道校正时,Gain Table 的网格要对齐。如果 R 通道用 16x16,G 通道用 32x32,插值后会出现颜色错位。我吃过这个亏,后来统一用 16x16。

4.3.2 色温补偿

不同色温下,颜色阴影的表现不同。D65 下偏绿,A 光下可能偏红。所以标定时要覆盖多个色温。我一般标三个点:D65(6500K)、TL84(4000K)、A 光(2856K)。运行时根据 AWB 的结果,插值选择对应的 Gain Table。

4.3.3 边缘微调

有时候标定做完了,四角还是有一点点偏。这时候可以手动微调边缘区域的增益。我习惯在调试工具里画一个 ROI,实时看四角的 R/G、B/G 比值。调到和中心一致为止。

举个例子,有一次客户反馈夜景模式下四角偏紫。我查了标定数据,发现暗光下 sensor 的 R 通道噪声大,导致增益计算不准。后来在暗场标定里加了多帧平均,噪声压下去了,偏色也消失了。

偏色类型 典型表现 根因 解决方向
四角偏绿 G 通道增益不足 CRA 失配导致 G 像素感光弱 增大 G 通道边缘增益
四角偏紫 R 和 B 通道增益不匹配 暗光下 R 通道噪声大 多帧平均降噪后重新标定
四角偏红 B 通道增益过高 lens 在红外波段透过率异常 检查 IR filter 或调整 B 通道增益
避坑指南:我曾经在量产阶段发现一批手机四角偏色。排查后发现是 lens 组装公差导致 CRA 偏移。后来在产线增加了 CRA 测试工位,问题才彻底解决。所以 LSC 标定不能只做一次,量产时要抽检。

嗯,到这里 LSC 的核心内容就差不多了。亮度阴影靠增益补,颜色阴影靠分通道加色温补偿。标定流程要稳,调试时要细。四角偏色不是玄学,是光学和 sensor 的物理规律。摸透了,就能调好。