AF算法详解:反差对焦、相位对焦、激光对焦与混合策略
自动对焦(AF)是相机体验的基石。用户按下快门前那零点几秒的犹豫,往往就决定了一张照片的成败。我这些年调试过的AF算法不下十几种,从最早的功能机到现在的旗舰机,每种方案都有它的脾气。今天咱们就把四种主流AF算法掰开揉碎了讲清楚。
反差对焦(CDAF)——最朴素的“爬山”算法
反差对焦的原理其实特别简单。说白了,就是镜头来回移动,找到画面中边缘最锐利、对比度最高的那个位置。
它的核心逻辑是这样的:
- 镜头从近到远移动,同时计算每一帧图像的对比度值
- 对比度值会形成一个“山峰”,峰值点就是最佳对焦位置
- 算法通过“爬山法”找到这个峰值
关键指标:对比度值通常用Sobel算子或Laplacian算子计算。值越大,说明边缘越清晰。
我在项目中遇到过一个问题:当场景是纯色墙壁或者天空时,对比度曲线几乎是一条平线。这时候CDAF就会“迷路”,来回拉风箱。嗯,这就是它最大的痛点——对低纹理场景极度不友好。
避坑指南:我曾经调试过一款室内监控摄像头,用户投诉晚上对焦不准。后来发现是红外补光下纹理丢失严重。解决方案是强制切换到PDAF模式,或者增加辅助光源。
CDAF的优点也很明显:
- 算法简单,不需要额外硬件
- 精度高,理论上可以做到像素级对焦
- 成本低,适合入门级设备
但缺点同样致命:
- 速度慢,需要来回扫描
- 无法判断方向,经常“过冲”再回调
- 低光照下对比度不足,容易失败
相位对焦(PDAF)——让像素“看”出距离
相位对焦的出现,算是解决了CDAF最大的痛点——速度。它的原理有点像人眼:通过左右两个“视角”的差异,直接算出镜头该往哪个方向移动多少距离。
PDAF在传感器上埋了专门的相位检测像素。这些像素被遮掉一半,只接收左边或右边的光线。当画面合焦时,左右像素的信号一致;当失焦时,信号会出现相位差。
核心公式:相位差 = 左像素值 - 右像素值。这个差值直接映射到镜头需要移动的步数。
你想想看,CDAF需要来回走一遍才能找到位置,PDAF只需要一次计算就知道方向。这就是为什么现在的旗舰机对焦那么快。
我调试过一款采用2x2 OCL(On-Chip Lens)结构的传感器。这种方案把四个像素共享一个微透镜,既能做相位检测,又能正常成像。但有个坑——像素串扰。左右像素的信号会互相干扰,导致相位差计算不准。
注意事项:PDAF在暗光下性能会急剧下降。因为相位检测像素的感光面积只有正常像素的一半,信噪比天然就差。我建议在低于50 lux的场景下,主动切换到CDAF或激光辅助。
PDAF的优缺点总结:
- 优点:速度快,一次计算到位;能判断方向;适合运动场景
- 缺点:需要专用像素,牺牲成像质量;暗光性能差;成本高
激光对焦(TOF)——用光速丈量距离
激光对焦的原理,说白了就是发射一束红外光,然后测量它反射回来的时间。光速是固定的,时间差直接换算成距离。
TOF对焦有个天然优势——它不依赖图像内容。不管你是拍白墙还是拍星空,激光测距的结果都一样稳定。这在暗光环境下简直是救命稻草。
我记得有一次调试一款旗舰机,用户反馈在极暗环境下对焦慢。我们检查了PDAF和CDAF的表现,确实都不理想。后来启用了TOF辅助,对焦时间从800ms降到了150ms。效果立竿见影。
实用技巧:TOF的有效距离一般在0.1m到5m之间。超过5m,反射信号太弱,误差会急剧增大。所以拍远景时,还是要靠PDAF或CDAF。
TOF的局限性也很明显:
- 只能测单点距离,无法覆盖整个画面
- 受环境光干扰,强阳光下性能下降
- 对透明物体(玻璃、水面)无效
- 需要额外硬件,增加成本和功耗
混合对焦策略——取长补短的智慧
单一算法都有短板。真正的旗舰机,靠的是混合对焦策略。说白了,就是根据场景动态切换或融合多种算法。
我常用的混合策略是这样的:
| 场景 | 主算法 | 辅助算法 | 说明 |
|---|---|---|---|
| 明亮场景(>100 lux) | PDAF | CDAF | PDAF快速粗调,CDAF精调 |
| 暗光场景(<50 lux) | TOF | CDAF | TOF提供距离,CDAF微调 |
| 低纹理场景 | TOF | PDAF | TOF做主,PDAF辅助 |
| 运动场景 | PDAF | TOF | PDAF连续跟踪,TOF防丢 |
这里有个关键点——融合权重。不是简单地说“用哪个算法”,而是根据置信度动态分配权重。比如PDAF的置信度是0.8,TOF是0.6,那最终结果就是0.8×PDAF + 0.6×TOF。
我的经验:混合对焦最难的其实是“切换时机”。切换太频繁,用户会感觉到对焦抖动;切换太慢,又跟不上场景变化。我一般会加一个“滞回区间”,比如从PDAF切到TOF时,要连续3帧都满足条件才切换。
下面这张图展示了混合对焦的决策流程:
实际工程中,混合对焦还要考虑功耗。PDAF和TOF都需要额外硬件工作,不能一直开着。我一般会设置一个“对焦完成”的阈值,一旦合焦就关闭辅助算法,只保留CDAF做微调。
重要提醒:混合对焦不是算法越多越好。每增加一种算法,就多一份调试工作。我见过一个项目同时用了PDAF、CDAF、TOF和激光雷达,结果四种算法互相打架,对焦反而更慢。精简才是王道。
最后说一句,AF算法的选择没有银弹。低端机用CDAF就够了,中端机加PDAF,旗舰机才上混合对焦。关键是要理解每种算法的物理限制,然后根据产品定位做取舍。
嗯,关于AF算法就先聊到这里。这些经验都是我在项目里一点点踩坑踩出来的,希望能帮你少走些弯路。
公众号:蓝海资料掘金营,微信 deep3321