019、从imx298到imx989——手机镜头设计如何应对1英寸sensor的像面增大与CRA挑战
去年夏天,我们实验室接到一个棘手的案子。客户拿着一台搭载IMX989的工程机找上门,说边缘画质崩了——不是简单的崩边,是那种从画面中心到边缘,亮度像坐滑梯一样往下掉的崩法,同时边缘还泛着一层淡淡的青紫色。我们第一反应是lens shading calibration没做好,但翻遍代码,校准系数已经拉满,边缘亮度还是差中心将近40%。这就不是算法能补回来的事了。
问题出在镜头上,更准确地说,出在镜头CRA(Chief Ray Angle,主光线角)和sensor微透镜阵列的匹配上。IMX989这种1英寸大底,像面高度从IMX298时代的4.6mm直接干到8.4mm左右,像面大了将近一倍,但镜头模组的物理高度——也就是Z向尺寸——受限于手机厚度,几乎没怎么变。这就逼着镜头设计在“短总长”和“大像面”之间走钢丝,CRA曲线被压得极其陡峭。
先说说CRA到底是个什么鬼。你可以把sensor上每个像素想象成一口井,微透镜就是井口的漏斗,负责把光线收进井底的光电二极管。这个漏斗有个最佳接收角度,光线垂直打进来效率最高,斜着打进来就会有一部分光被井壁挡住,这就是vignetting的物理根源。镜头设计时,每一片镜片组合出来的出瞳位置决定了光线到达sensor不同位置时的入射角,这个角度随像高变化的曲线就是CRA曲线。IMX298时代,sensor对角线才6.4mm左右,CRA曲线从中心0度缓升到边缘35度上下,镜头设计有充足余量去匹配。到了IMX989,对角线干到15.9mm,边缘CRA如果还按老思路走,直接飙到45度以上,微透镜那点收光能力根本扛不住。
我们当时做的第一件事,是拉出IMX989的datasheet,看它推荐的CRA target曲线。索尼其实给了参考值,边缘大概在38度左右,但问题在于——这颗sensor的微透镜阵列是经过特殊设计的,边缘像素的微透镜做了偏移(pixel shift),目的是让光线在斜射时也能尽量对准光电二极管。可偏移量是固定的,它假设镜头出瞳位置在一个特定范围内。如果你的镜头出瞳太近,光线角度比预期更陡,微透镜偏移就补偿不到位;出瞳太远,光线角度偏缓,又会产生新的串扰。我们那台工程机的镜头,出瞳位置比参考设计近了将近3mm,边缘CRA实测到了43度,直接击穿sensor的容忍上限。
根因找到了,但镜头已经开模,改镜片设计不现实。我们只能从系统层面找补。当时试了三条路。第一条,调sensor内部的pixel binning模式——把四合一合并成2.24μm大像素,微透镜等效面积变大,对角度容忍度会好一些,但代价是分辨率从50MP掉到12.5MP,客户不干。第二条,在ISP里做lens shading correction时,把边缘的Gain值压到物理极限以下,同时配合色彩校正矩阵(CCM)去拉回边缘的偏色——这能缓解亮度问题,但边缘信噪比会明显劣化,暗部噪点像雪花一样。第三条路,也是最靠谱的——我们重新设计了镜头模组里的IR滤光片和微透镜之间的贴合工艺,用高折射率的胶水填充间隙,相当于在sensor表面加了一层“光路矫正层”,把边缘光线的有效入射角掰回来几度。这条路我们花了三周时间做DOE验证,最终把边缘CRA从43度拉回到39.5度,配合算法补偿,边缘亮度差控制在15%以内,客户勉强接受了。
这个案子让我对手机镜头设计有了几个刻骨铭心的认知。第一,大底sensor不是简单的“更大靶面”,它把整个光学系统的设计约束从“像差主导”推向了“CRA主导”。IMX298时代,你主要操心球差、色差、场曲,CRA只要别太离谱就行。到了IMX989,CRA曲线成了第一优先级,像差反而可以靠算法去修(比如畸变校正、色差校正),但CRA是物理层面的,算法救不了。第二,镜头总长和CRA是一对死敌。想压低CRA,就得把出瞳位置推远,出瞳远了,镜片组就得拉长,模组厚度就压不住。现在各家旗舰机都在卷“大底+薄机身”,这本质上是在挑战物理极限。第三,sensor厂商其实给了你暗门——IMX989的datasheet里有一页叫“Chief Ray Angle Correction Table”,里面给了不同出瞳距离下的推荐CRA曲线,但很多镜头厂根本不看这页,拿着老设计硬套,结果就是边缘画质崩盘。
如果你现在要设计一颗适配1英寸sensor的镜头,我的建议是——别急着堆镜片数量,先定CRA策略。具体来说,把出瞳位置定在sensor表面上方18mm到22mm之间,这个区间内IMX989的微透镜偏移补偿效果最好。然后,用光学仿真软件把CRA曲线拉出来,跟sensor的target curve做差,差值超过3度的像高区域,就要回头调整镜片曲率或间隔。还有一点容易踩坑——温度。手机镜头用的塑料镜片,折射率随温度变化明显,CRA曲线在-20度到60度之间会漂移2到3度。我们后来在量产版本里加了温度补偿算法,根据模组NTC温度传感器的读数,动态调整lens shading的Gain曲线,这才把冬天室外和夏天室内的画质一致性稳住。
最后说句掏心窝子的话——影像系统设计,永远是“sensor定边界,镜头定上限,算法定下限”。大底sensor给了你更高的天花板,但如果你镜头端不把CRA这个地基打牢,算法再强也补不上那个窟窿。别迷信“大底就是好”,底越大,光学设计的坑越深。