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传感器每个像素上面都有一颗微透镜,用来把光汇聚到感光区域。微透镜的设计很讲究。
理想情况下,微透镜应该正对入射光。但边缘像素的入射光角度大,微透镜汇聚的光斑会偏移,部分光落不到感光区。这就是“微透镜与像素的失配”。
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,配合降噪才搞定。
1.4 LSC校正的目标
校正目标有三个层次:
- 亮度均匀性:中心到边缘亮度差控制在5%以内
- 颜色一致性:消除R/G/B通道的增益差异,避免色偏
- 实时性:单帧处理时间控制在1ms以内(以1080P为例)
瑞芯微平台提供了硬件LSC模块,支持网格增益表。我们只需要生成一张增益表,硬件自动插值计算每个像素的增益。效率很高。
1.5 知识结构图
下面这张图总结了镜头阴影的成因、影响和校正流程。我建议你保存下来,后面每章都会用到这些概念。
1.6 本章小结
镜头阴影是光学、像素、微透镜三者共同作用的结果。LSC校正的核心就是给每个像素算一个增益值,把边缘亮度补回来。
但记住:校正不是万能的。增益太大会放大噪声,增益太小又校正不彻底。实际项目中,我一般先用模组厂提供的标定数据生成初始增益表,再根据实拍效果微调。