2. 对焦基础原理:三大核心对焦技术
各位同学好,今天我们来聊聊对焦的基础原理。说实话,我在影像行业摸爬滚打这么多年,对焦这块是让我又爱又恨。爱的是它技术演进非常清晰,恨的是实际调优时坑实在太多。咱们今天就把PDAF、CDAF和激光/ToF辅助对焦这三个核心原理掰开揉碎讲清楚。
2.1 相位检测对焦(PDAF)原理
相位检测对焦,说白了就是模仿人眼判断距离的方式。你想想看,我们两只眼睛看同一个物体,左右眼看到的画面是有微小偏移的,大脑根据这个偏移量就能判断物体离我们多远。PDAF也是这个逻辑。
在传感器上,PDAF会放置一些特殊的像素对——我们叫它“相位检测像素”。这些像素被一分为二,左边只接收光线的一半,右边接收另一半。当镜头合焦时,左右像素接收到的光强是相等的;当镜头前焦或后焦时,左右像素的信号就会出现差异。
核心公式(简化版):
相位差 = 左像素信号 - 右像素信号
对焦方向 = sign(相位差) // 正数表示前焦,负数表示后焦
对焦步长 = |相位差| * 增益系数
我在项目中遇到过一个问题:有些场景下相位差信号非常微弱,比如拍摄纯色墙壁。这时候PDAF基本就失效了。嗯,这里要注意,PDAF对纹理是有依赖的,虽然比CDAF好很多,但也不是万能的。
个人经验: 我建议在PDAF像素布局上,尽量采用十字型排列。传统的水平排列在拍摄竖条纹物体时容易“失明”,十字型能覆盖水平和垂直两个方向的相位检测,鲁棒性提升明显。
2.2 反差检测对焦(CDAF)原理
反差检测对焦,这个名字听起来挺唬人,其实原理特别朴素。它就是在镜头移动过程中,不断计算图像中边缘区域的对比度。对比度最大的位置,就是合焦点。
为什么会这样?因为当画面清晰时,边缘的明暗过渡是锐利的,像素之间的灰度差异大;当画面模糊时,边缘被“抹平”了,灰度差异变小。CDAF就是利用这个特性,通过爬山算法找到对比度的峰值。
对比度计算常用方法:
// 拉普拉斯算子计算对比度
int contrast = 0;
for (int y = 1; y < height-1; y++) {
for (int x = 1; x < width-1; x++) {
int lap = abs(4 * img[y][x]
- img[y-1][x] - img[y+1][x]
- img[y][x-1] - img[y][x+1]);
contrast += lap;
}
}
CDAF最大的问题是什么?慢!它需要来回扫描才能找到峰值。我曾经在一个低端平台上做CDAF优化,那个镜头马达步进速度慢得让人抓狂,一个完整的对焦过程要花1.5秒。用户早就没耐心了。
避坑指南: 我曾经在弱光环境下吃过CDAF的亏。光线不足时,图像噪声会严重干扰对比度计算,导致爬山算法误判。后来我加了一个噪声门限预处理,先把低对比度的噪声区域过滤掉,情况才好转。
2.3 激光/ToF辅助对焦原理
激光和ToF(飞行时间)辅助对焦,属于主动式测距方案。它们不依赖图像内容,直接测量物体到镜头的距离,然后驱动镜头到对应的合焦位置。
激光对焦的原理很简单:发射一束激光打到物体上,反射回来被接收器捕获。通过测量发射和接收的时间差,就能算出距离。ToF原理类似,但通常使用面阵光源和传感器,能获取整个画面的深度信息。
| 技术类型 | 测距范围 | 精度 | 适用场景 |
|---|---|---|---|
| 激光对焦 | 0.1m - 5m | ±1cm | 近景、微距、弱光 |
| ToF | 0.3m - 10m | ±3cm | 中远距离、多人场景 |
我个人习惯把激光/ToF当作“快车道”。当用户举起手机时,先通过激光或ToF快速估算距离,把镜头驱动到大致位置,然后再用PDAF或CDAF做精细微调。这样既保证了速度,又保证了精度。
实际调优技巧: 激光对焦在透明物体(比如玻璃)上会失效,因为激光直接穿透了。ToF在强光下容易饱和。我建议在策略上做融合:优先用激光/ToF做粗定位,然后用PDAF做精调,最后用CDAF做确认。三层保险,基本不会翻车。
2.4 三种技术的协同工作逻辑
讲到这里,你可能已经发现了:没有一种技术是完美的。PDAF快但依赖纹理,CDAF准但慢,激光/ToF不受光照影响但有距离限制。所以实际产品中,我们通常把它们组合起来用。
下面这张图展示了我在一个项目中设计的混合对焦架构:
你看,实际流程是这样的:先判断当前场景——是弱光?是微距?还是普通白天?然后根据场景选择主技术。弱光下优先用激光,纹理丰富时用PDAF,静止场景用CDAF做最终确认。三种技术不是互斥的,而是接力赛。
关键参数调优建议:
- PDAF置信度阈值: 我一般设0.7,低于这个值就认为相位差不可靠,切换到CDAF
- 激光/ToF超时: 50ms内没返回有效距离,立即降级到PDAF
- CDAF扫描步长: 粗扫用大步(10μm),精扫用小步(2μm),节省时间
最后说一句,对焦这东西,理论是基础,但真正做好全靠调优。我见过太多团队把PDAF、CDAF、ToF都堆上去了,结果对焦还是慢。为什么?因为没有做好策略融合。你想想看,如果每次对焦都让三种技术轮流跑一遍,那还不如只用一种呢。关键是要让它们协同工作,各取所长。
我的调优口诀: 激光定远近,PDAF找方向,CDAF收尾刀。记住这个顺序,你的对焦系统就不会太差。
公众号:蓝海资料掘金营,微信deep3321