第三章 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达到最大值时,镜头就在最佳焦平面。
算法流程其实就三步:
- 扫描:马达从近端向远端移动,每步采集一帧图像
- 计算:对每帧计算对比度值
- 定位:找到对比度峰值对应的马达位置
我在项目中遇到过一个问题:当场景里有大面积纯色区域(比如白墙),对比度曲线会变得非常平坦。这时候算法就像在沙漠里找路标——根本找不到峰值。我曾经因为这个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兜底?最后我们定了个规则:
- 粗调阶段:PDAF快速计算离焦量,马达一步到位(约30ms)
- 精调阶段:CDAF在小范围内微调,找到对比度峰值(约50ms)
- 锁定阶段:持续用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的核心逻辑与协作关系:
3.6 实战中的选择建议
说了这么多理论,最后给点实在的。如果你正在做AF选型,我的建议是:
- 入门级产品(百元机、IoT摄像头):纯CDAF就够了,省成本,调起来也简单
- 中端产品(千元机、行车记录仪):上PDAF,速度提升明显,注意暗光场景要加补光
- 旗舰产品(高端手机、专业相机):必须Hybrid AF,而且要把动态权重调精细——这是拉开体验差距的关键
一个小技巧:在Hybrid AF调试时,先单独调好PDAF和CDAF的各自参数,再合起来调权重。我曾经图省事直接合调,结果两个模块互相打架,花了三周才拆开。嗯,这个坑你们别踩。