第三章 AF算法基础:CDAF、PDAF与Hybrid AF原理

各位好,我是老张。今天咱们聊聊AF算法的三大基石——对比度检测、相位检测和混合对焦。说实话,这章内容我调了七八年才真正吃透。你想想看,手机摄像头从“能拍”到“秒拍”,核心就是这三套算法在背后较劲。

我个人习惯把AF算法比作三种不同的“找焦点”方式:CDAF像瞎子摸象,PDAF像狙击手测距,Hybrid AF则是两者合体。嗯,这个比喻虽然糙,但道理不糙。

3.1 对比度检测(CDAF)——最朴素的“爬山”算法

CDAF的原理说白了就一句话:找图像最清晰的位置。怎么判断清晰?看相邻像素的亮度差异。差异越大,对比度越高,图像越锐利。

核心公式(简化版):

Contrast = Σ |I(x,y) - I(x+1,y)| + Σ |I(x,y) - I(x,y+1)|

当Contrast达到最大值时,镜头就在最佳焦平面。

算法流程其实就三步:

  1. 扫描:马达从近端向远端移动,每步采集一帧图像
  2. 计算:对每帧计算对比度值
  3. 定位:找到对比度峰值对应的马达位置

我在项目中遇到过一个问题:当场景里有大面积纯色区域(比如白墙),对比度曲线会变得非常平坦。这时候算法就像在沙漠里找路标——根本找不到峰值。我曾经因为这个bug被客户追着骂了三天,后来加了边缘检测预处理才解决。

CDAF的致命伤:

  • 需要来回扫描,速度慢(通常200-500ms)
  • 在低光照下对比度信号弱,容易误判
  • 对运动物体无能为力——等你扫完,目标早跑了

3.2 相位检测(PDAF)——给镜头装上“测距仪”

PDAF的原理就高级多了。它利用微透镜和成对像素,直接测量光线的相位差。你想想看,这就像用两只眼睛看东西——天生就知道距离。

具体来说,传感器上每隔几个像素就埋一对“相位检测像素”:

  • 左像素只接收光线左侧部分
  • 右像素只接收光线右侧部分
  • 当合焦时,左右像素信号完全重合
  • 当离焦时,左右信号产生偏移——偏移量直接对应离焦方向和距离

我的经验:PDAF的精度取决于基线长度。基线越长,相位差越明显,对焦越准。但手机传感器空间有限,所以早期PDAF在暗光下经常“跑焦”。后来有了2x2 OCL(片上透镜)技术,才把暗光性能提上来。

PDAF的优势很明显:

  • 一次计算就能知道方向和距离,不需要来回扫描
  • 速度极快,通常10-50ms就能完成
  • 适合追焦——能预测运动物体的轨迹

但缺点也扎心:

  • 需要专用像素,占用成像面积(早期损失画质)
  • 对光线角度敏感,大光圈镜头边缘容易“串扰”
  • 在极暗环境下(<1 lux),相位信号基本消失

3.3 混合对焦(Hybrid AF)——取长补短的“最优解”

既然CDAF和PDAF各有短板,那把它们结合起来不就行了?嗯,这就是Hybrid AF的核心理念。

我参与的第一个旗舰机项目,用的就是Hybrid AF方案。当时团队争论了很久:到底该让PDAF主导还是CDAF兜底?最后我们定了个规则:

  1. 粗调阶段:PDAF快速计算离焦量,马达一步到位(约30ms)
  2. 精调阶段:CDAF在小范围内微调,找到对比度峰值(约50ms)
  3. 锁定阶段:持续用PDAF跟踪,如果置信度下降,再触发CDAF校准

典型Hybrid AF流程(以高通平台为例):

1. PDAF计算相位差 → 得到离焦方向+粗估距离
2. 马达跳到粗估位置(开环步进)
3. CDAF在±10步范围内扫描 → 找到精确峰值
4. 锁定焦点,进入跟踪模式
5. 每帧检查PDAF置信度,低于阈值则重复步骤3

这里有个坑,我曾经踩过:PDAF和CDAF的“信任权重”怎么分配?如果太信任PDAF,在暗光下会跑焦;如果太信任CDAF,速度又上不去。后来我们搞了个动态权重表:

场景 PDAF权重 CDAF权重 说明
明亮(>100 lux) 0.8 0.2 PDAF主导,CDAF仅做微调
中等(10-100 lux) 0.5 0.5 两者投票,取置信度高的
暗光(<10 lux) 0.2 0.8 CDAF主导,PDAF仅做方向参考
运动物体 0.9 0.1 PDAF追焦,CDAF暂停

这个表看着简单,但实际调起来要命。每个场景的阈值、权重系数、切换平滑度,都得一帧一帧地调。我记得有一次为了优化暗光下的切换逻辑,连续熬了三个通宵——最后发现是PDAF像素的增益没对齐,跟算法半毛钱关系没有。

3.4 三种算法的对比总结

咱们用一张表把三者的差异说清楚:

维度 CDAF PDAF Hybrid AF
原理 找对比度峰值 测量相位差 PDAF粗调+CDAF精调
速度 慢(200-500ms) 快(10-50ms) 较快(50-100ms)
精度 高(像素级) 中(受基线限制) 高(两者互补)
暗光性能 差 极差 中等(CDAF兜底)
运动追焦 不支持 支持 支持
硬件成本 低(无需专用像素) 中(需要PD像素) 高(需要PD+算法)

你可能会问:既然Hybrid AF这么好,为什么不全用?原因很简单——成本。Hybrid AF需要专用的PD像素、更复杂的ISP管线、更大的算法算力。在百元机上,老老实实用CDAF反而更靠谱。

3.5 知识结构图:三种AF算法的关系

下面这张图展示了CDAF、PDAF和Hybrid AF的核心逻辑与协作关系:

AF算法知识结构图 AF算法三大流派 自动对焦(AF) CDAF 对比度检测 PDAF 相位检测 Hybrid AF 混合对焦 特性 • 爬山算法找峰值 • 速度慢但精度高 • 暗光性能差 • 不支持运动追焦 特性 • 相位差测距 • 速度快(10-50ms) • 需要专用像素 • 支持运动追焦 特性 • PDAF粗调+CDAF精调 • 速度与精度平衡 • 动态权重分配 • 成本最高 核心结论 Hybrid AF = PDAF的速度 + CDAF的精度 实际产品中根据成本与场景选择最优方案

3.6 实战中的选择建议

说了这么多理论,最后给点实在的。如果你正在做AF选型,我的建议是:

  • 入门级产品(百元机、IoT摄像头):纯CDAF就够了,省成本,调起来也简单
  • 中端产品(千元机、行车记录仪):上PDAF,速度提升明显,注意暗光场景要加补光
  • 旗舰产品(高端手机、专业相机):必须Hybrid AF,而且要把动态权重调精细——这是拉开体验差距的关键

一个小技巧:在Hybrid AF调试时,先单独调好PDAF和CDAF的各自参数,再合起来调权重。我曾经图省事直接合调,结果两个模块互相打架,花了三周才拆开。嗯,这个坑你们别踩。