1. LSC概述:什么是镜头阴影?

大家好,我是你们的讲师。咱们直接进入正题——镜头阴影校正,也就是LSC。很多刚接触图像处理的同学,拿到一张照片发现四角发暗、中间亮,第一反应是“是不是镜头坏了?”

其实不是。这种现象太常见了,我做了这么多年ISP,几乎每款摄像头模组都会遇到。说白了,这就是镜头阴影(Lens Shading)。

1.1 什么是镜头阴影?

镜头阴影,简单讲就是图像中心到边缘亮度不一致。中心亮,边缘暗,有时候还会带点颜色偏。你想想看,一张均匀的白板,拍出来中间白、四周灰,这就是典型的亮度阴影(Luma Shading)。如果四周还发红或发绿,那就是颜色阴影(Color Shading)。

核心定义:镜头阴影是光学系统导致的图像非均匀性,表现为亮度衰减和颜色偏移。

我在瑞芯微平台上调试过一款手机摄像头,当时客户反馈“拍天空时四角发暗”。我一看RAW图,中心亮度220,边缘只有150,差了将近30%。这就是典型的镜头阴影,不校正根本没法用。

1.2 镜头阴影的成因

为什么会这样?原因有三个层面。我一个个讲。

1.2.1 光学原因——光衰减

镜头本身是个凸透镜。光线从中心通过时,路径短、损耗小。从边缘通过时,路径长、损耗大。这个现象叫“余弦四次方定律”。

公式我就不推了,你记住结论:边缘光强 ≈ 中心光强 × cos⁴(θ)。θ是入射角度。角度越大,衰减越厉害。

举个例子,视场角60°时,边缘光强只有中心的(cos30°)⁴ ≈ 0.56倍。一半多都没了。

1.2.2 像素角度原因——感光效率下降

CMOS传感器上的每个像素,其实是个小“桶”。光线垂直射进来,桶底接得最多。光线斜着射进来,桶壁会挡住一部分光。

我打个比方:你拿杯子接水,垂直倒水全进杯子,斜着倒水一半洒外面。像素感光也是这个道理。

这种现象叫“像素角度响应”(Pixel Angular Response)。边缘像素因为入射角大,感光效率比中心像素低很多。

1.2.3 微透镜原因——光路偏移

现代CMOS传感器每个像素上面都有一颗微透镜,用来把光汇聚到感光区域。微透镜的设计很讲究。

理想情况下,微透镜应该正对入射光。但边缘像素的入射光角度大,微透镜汇聚的光斑会偏移,部分光落不到感光区。这就是“微透镜与像素的失配”。

我的经验:有些模组厂会做“微透镜偏移”工艺,把边缘像素的微透镜往中心方向挪一点,补偿光路偏移。但偏移量很难算准,最终还是得靠LSC算法兜底。

1.3 LSC校正的基本原理

校正原理其实不复杂。既然我们知道边缘比中心暗,那就给边缘像素乘一个大于1的增益,把亮度补回来。

数学表达很简单:

I_corrected(x, y) = I_raw(x, y) × Gain(x, y)

其中Gain(x,y)是一个二维增益矩阵。中心区域Gain≈1,边缘区域Gain>1。

但这里有个坑——增益不能太大。我曾经在瑞芯微RV1109上调试,边缘增益设到3.0,结果边缘噪声被放大了,画面全是噪点。后来我限制最大增益不超过2.0,配合降噪才搞定。

注意:LSC校正本质是“用增益换均匀性”。增益越大,噪声越大。实际项目中需要在均匀性和信噪比之间做权衡。

1.4 LSC校正的目标

校正目标有三个层次:

  1. 亮度均匀性:中心到边缘亮度差控制在5%以内
  2. 颜色一致性:消除R/G/B通道的增益差异,避免色偏
  3. 实时性:单帧处理时间控制在1ms以内(以1080P为例)

瑞芯微平台提供了硬件LSC模块,支持网格增益表。我们只需要生成一张增益表,硬件自动插值计算每个像素的增益。效率很高。

1.5 知识结构图

下面这张图总结了镜头阴影的成因、影响和校正流程。我建议你保存下来,后面每章都会用到这些概念。

镜头阴影校正(LSC)知识体系 镜头阴影(Lens Shading) 光学衰减(cos⁴定律) 像素角度响应 微透镜失配 亮度阴影(Luma) 颜色阴影(Color) 校正原理:I_corrected = I_raw × Gain 亮度均匀性 < 5% 颜色一致性 实时性 < 1ms 关键权衡:增益越大 → 均匀性越好 → 噪声越大 实际项目中需根据模组和场景调整增益上限

1.6 本章小结

镜头阴影是光学、像素、微透镜三者共同作用的结果。LSC校正的核心就是给每个像素算一个增益值,把边缘亮度补回来。

但记住:校正不是万能的。增益太大会放大噪声,增益太小又校正不彻底。实际项目中,我一般先用模组厂提供的标定数据生成初始增益表,再根据实拍效果微调。