
047、AF自动对焦的PDAF像素校准——从sensor OTP到对焦搜索算法的跨平台实现去年年底有个项目,主控是骁龙8 Gen2,sensor是IMX758,模组厂送来的第一批EVT样机,预览画面一动起来就糊,静止的时候对焦倒是挺准。我一开始以为是AF驱动电流表没标定好,查了VCM的OTP,没问题,近摄远摄行程都正常。后来把raw图拉出来看,发现PDAF的置信度图(confidence map)上全是花斑,像得了皮肤病的猫。这才意识到,问题出在PDAF像素本身的校准上,而不是对焦算法。PDAF的原理不复杂,sensor上有一排排被遮掉一半的像素,左边遮和右边遮成对出现,通过比较左右像素的相位差来推算defocus的方向和大小。但问题是,这些像素的响应和普通像素不一样,灵敏度低,而且左右像素之间还有工艺偏差。如果不做校准,相位差算出来就是歪的,AF引擎拿歪的数据去搜索对焦位置,结果就是反复横跳或者干脆拉风箱。校准数据的源头:sensor OTP里到底存了什么IMX758的OTP里,PDAF相关的校准数据分三块:一是每个PDAF像素的灵敏度补偿系数(LSC gain),二是左右像素的响应差异校正(shading correction),三是出厂时测好的相位偏移基准(phase offset)。很多工程师拿到sensor datasheet,看到OTP里有数据就直接读出来往ISP里灌,结果发现对焦还是不准。为什么?因为OTP里的phase offset是在特定色温、特定照度、特定距离下测的,你实际使用环境跟出厂测试条件不一样,这个offset就得重新标定。跨平