平台:高通 Camx | 覆盖:PDAF/CDAF/HAF 三种对焦方案 | 含状态机+日志字段+4个常见case
AF(自动对焦)是 Camera 调优中最复杂的模块之一。用户对"对不上焦"、"对焦慢"、"跑焦"的容忍度极低——一张模糊的照片基本等于废片。
这篇文章基于高通 Camx 框架,梳理 AF 对焦的完整流程和调试方法。重点是实战日志分析和异常 case 排查,不只是讲原理。
一、AF 对焦基本原理
1.1 三种核心对焦方案
| PDAF | |||
| CDAF | |||
| HAF |
PDAF(Phase Detection Auto Focus)
通过 sensor 上特殊的像素(遮光像素)获取左右眼图像的相位差,直接计算出对焦距离。优点是速度快,缺点是需要 sensor 支持。
CDAF(Contrast Detection Auto Focus)
通过评估图像的清晰度(对比度)来判断是否对焦准确。优点是不需要特殊像素,缺点是速度慢——需要反复移动对焦马达寻找最清晰的点。
HAF(Hybrid Auto Focus)
结合 PDAF 和 CDAF,先用 PDAF 快速接近对焦位置,再用 CDAF 微调。这是目前主流手机采用的方案。
1.2 AF 关键概念
• Focus Position:对焦马达位置,通过 VCM(音圈马达)控制
• Confidence:PDAF 计算的置信度,越高越可信
• Progress:对焦进度,100 表示对焦完成
• Range Near/Far:对焦搜索范围
二、Camx AF 对焦流程
2.1 整体流程
2.2 AF 状态机
• INACTIVE:AF 未激活
• ACTIVE_SCAN:正在搜索对焦位置
• FOCUSED_LOCKED:对焦成功并锁定
• NOT_FOCUSED_LOCKED:对焦失败并锁定
调试技巧:看到 NOT_FOCUSED_LOCKED频繁出现,说明对焦逻辑有 bug。如果一直停在ACTIVE_SCAN,说明搜索过程卡住了。
三、AF 调试日志分析(重点)
3.1 开启 AF Debug 日志
修改文件:camxoverridesettings.txt
推送方式
说明:0x08000000是 STATS_AF 模块的 verbose 日志 mask。开启后会输出 AF 算法的详细过程日志。
3.2 典型对焦过程日志
搜索命令
典型日志输出
日志字段解读
四、4 个常见对焦问题排查
问题1:对焦不收敛
现象:HAF_CONVERGE_STATUS 持续为 0 或 1(搜索中),progress 一直不到 100。
排查方向
• 检查 PDAF 标定数据是否正确
• 检查 VCM 驱动 IC 配置是否正确
• 检查 AF 搜索范围是否合理
问题2:Confidence 偏低
现象:confidence 持续偏低(< 50)。
排查方向
• PDAF 像素标定有问题
• sensor 的 PDAF 像素被遮挡
• 环境光线太暗
问题3:next_pos 异常
现象:next_pos 在 0 或 399(极限位置)徘徊。
排查方向
• VCM 行程配置不对
• AF 搜索范围设置太窄
问题4:对焦速度慢
现象:从触发对焦到 FOCUSED_LOCKED 耗时过长(> 1s)。
排查方向
• AE 是否先收敛(AF 依赖 AE 收敛)
• PDAF 标定数据精度
• VCM 响应速度(驱动电流是否足够)
五、实用调试技巧
5.1 确认 VCM 是否正常工作
方法1:dump VCM 寄存器
方法2:日志确认
5.2 确认 PDAF 数据是否正常
正常情况下应该能看到 PDAF 数据统计日志。如果没有,说明 PDAF 配置有问题。
速查表
AF 调试的关键是看懂日志。每条日志字段背后都对应着一个具体的算法步骤,结合现象对照排查,效率会高很多。
如果你在 AF 调试中遇到具体问题,欢迎在评论区留言交流。
关注公众号「小驰行动派」
Caemra一站式学习平台:www.camerahub.cn
更多Camera开发实战内容
欢迎加入知识星球「小驰成长圈」
120+ Camera工程师 · 340+ 实战内容 · 已运营1565天
微信扫码 · 加入星球
评论 (0)