第三章 AF算法基础:三种对焦方式的硬核拆解
自动对焦算法,说白了就是让镜头自己找到最清晰的那个位置。我做了这么多年影像系统,见过太多工程师把算法调优想得太玄乎。其实核心就三种:反差对焦、相位对焦、还有激光/ToF辅助。今天咱们一个一个掰开揉碎了讲。
3.1 反差对焦(CDAF)—— 最朴素的“爬山”算法
CDAF的原理特别直观。你想想看,镜头从近到远移动,图像清晰度会先变好再变差。算法就是找到那个“最清晰”的峰值点。
核心逻辑:计算每一帧图像的对比度值,然后沿着对比度上升的方向移动镜头。一旦发现对比度开始下降,就退回到峰值位置。
对比度评价函数(常用):
- Tenengrad函数:基于Sobel算子,计算梯度幅值之和。我个人习惯用这个,稳定性好。
- Laplacian函数:二阶微分,对边缘敏感,但噪声也敏感。
- 方差函数:计算像素灰度值的方差,简单粗暴,适合低纹理场景。
我在项目中遇到过一个问题:用Tenengrad函数在室内灯光下表现完美,一到户外强光下就开始抖动。后来发现是自动增益控制(AGC)把图像亮度拉得太高,导致梯度计算饱和。嗯,这里要注意——评价函数必须与ISP的AE/AWB状态解耦。
避坑指南:我曾经在某个旗舰机项目里,CDAF在暗光下反复来回搜索,就是找不到峰值。后来排查发现,是降噪滤波器把高频细节全抹掉了。建议在CDAF搜索过程中,临时降低降噪强度,或者使用原始RAW域数据做评价。
CDAF的优缺点
| 维度 | 说明 |
|---|---|
| 优点 | 算法简单,硬件成本低,不需要额外传感器;对场景适应性好,任何有纹理的场景都能工作。 |
| 缺点 | 需要“爬山”过程,速度慢;在低对比度场景(白墙、天空)容易失效;容易陷入局部峰值。 |
3.2 相位对焦(PDAF)—— 一次到位,不拖泥带水
PDAF的原理就高级多了。它利用微透镜和遮光像素,把进入镜头的光线分成左右两路。如果图像在左右像素上位置一致,说明合焦;如果有偏移,算法就能算出偏移方向和大小。
核心公式(简化版):
相位差 = 左像素相位 - 右像素相位
镜头移动量 = 相位差 × 校准系数
你想想看,CDAF需要一帧一帧地试,PDAF只需要一帧就能算出镜头该往哪走。这就是为什么现在旗舰机都用PDAF。
注意:PDAF像素会牺牲一部分成像质量。每个PDAF像素的感光面积只有普通像素的一半,所以PDAF像素越多,暗光下的画质损失越大。我见过一些厂商为了对焦速度,塞了太多PDAF像素,结果夜景模式下一片噪点。
PDAF的两种实现方式
- 片上PDAF:在传感器上直接集成遮光像素。优点是集成度高,缺点是像素损失。
- 独立PDAF传感器:用单独的传感器做相位检测。优点是画质无损,缺点是成本高、体积大。
我个人建议:如果做中低端机型,用片上PDAF就够了,但PDAF像素占比不要超过5%。 高端机型可以考虑双PD(Dual PD),每个像素都分成左右两半,对焦精度更高。
3.3 激光/ToF辅助对焦—— 暗光下的救星
CDAF和PDAF在暗光下都会失效。为什么?因为光线不够,图像信噪比太低,无论是对比度计算还是相位检测,结果都不靠谱。
这时候就需要主动式对焦——激光或ToF。
原理:发射一束红外光或激光,测量反射回来的时间差(ToF)或相位差(激光),直接算出距离。然后根据距离查表,把镜头推到对应位置。
关键参数对比:
| 技术 | 测距范围 | 精度 | 功耗 | 适用场景 |
|---|---|---|---|---|
| 激光(点阵) | 0.1m - 5m | ±1cm | 低 | 近景、微距 |
| ToF(单点) | 0.1m - 10m | ±3cm | 中 | 室内、暗光 |
| ToF(阵列) | 0.1m - 20m | ±5cm | 高 | AR、3D扫描 |
我曾经在一个平板项目里用过ToF辅助对焦。当时遇到一个坑:ToF在阳光下会被红外干扰,测距值跳来跳去。后来加了带通滤波器和时间窗口滤波才搞定。嗯,这里要注意——主动式对焦在强光下反而可能失效,因为环境光中的红外成分会淹没发射信号。
实战建议:不要把激光/ToF作为唯一对焦手段。我一般把它作为预对焦——先用激光算出大致距离,把镜头推到附近,再用CDAF或PDAF做精细调整。这样既快又准。
3.4 三种对焦方式的融合策略
实际产品中,没人只用一种对焦方式。我见过的最优方案是这样的:
- 场景判断:先看环境亮度。如果亮度足够(>100 lux),优先用PDAF。
- 暗光切换:如果亮度不足(<50 lux),启动激光/ToF做预对焦,然后切到CDAF做精细调整。
- 低纹理处理:如果场景是白墙或天空,PDAF和CDAF都失效,这时候激光/ToF就是唯一选择。
- 运动场景:如果检测到物体在运动,强制用PDAF,因为CDAF跟不上。
重要:融合策略最怕的是模式切换抖动。比如从PDAF切到CDAF时,如果两个算法算出的镜头位置不一致,画面会突然变模糊再变清晰。我建议在切换时做位置平滑过渡,比如用一阶低通滤波把镜头位置慢慢移过去。
3.5 知识体系总览
下面这张图把三种对焦方式的核心逻辑、优缺点和融合关系画清楚了。你可以把它当作本章的思维导图。
这张图把三种对焦方式的核心逻辑、适用场景和优缺点都串起来了。你可以把它打印出来贴在工位上,调优的时候对照着看。
3.6 本章小结
CDAF、PDAF、激光/ToF,各有各的脾气。CDAF像老黄牛,踏实但慢;PDAF像猎豹,快但挑环境;激光/ToF像夜视仪,专治暗光。实际产品里,没有万能方案,融合才是王道。