Android Camera | 高通Camx AF对焦调试全攻略

Android Camera | 高通Camx AF对焦调试全攻略

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

本文介绍高通Camx框架下AF自动对焦的调试方法,涵盖PDAF、CDAF、HAF三种对焦原理,AF状态机流程,以及通过开启STATS_AF日志分析对焦问题。重点讲解对焦不收敛、置信度低、位置异常、速度慢等常见问题的排查方向,并提供VCM和PDAF数据验证技巧。

🔎

延伸解读

AF调试的核心:日志字段与排查方向对应

文章强调看懂日志是AF调试的关键。每个字段如HAF_CONVERGE_STATUS、progress、confidence等,都对应具体的算法步骤和问题线索。例如,HAF_CONVERGE_STATUS持续为0或1表示未收敛,confidence低于50则提示PDAF标定或光线问题。调试时,应结合现象与日志字段,快速定位是PDAF、VCM还是AE的问题,避免盲目调整参数。

PDAF与CDAF的取舍:速度与精度的平衡

文章对比了PDAF、CDAF和HAF三种对焦方案。PDAF速度快但依赖sensor支持,CDAF通用但速度慢,HAF结合两者成为主流。这提示调试时需根据硬件能力选择方案:若sensor不支持PDAF,则只能依赖CDAF,对焦速度可能受限;若支持,则需确保PDAF标定准确,否则HAF的快速接近优势无法发挥,甚至导致对焦失败。

AF依赖AE收敛:对焦慢的隐藏因素

文章在排查对焦慢时提到“AE是否先收敛”,因为AF触发依赖AE收敛。实际调试中,若对焦速度慢,除了检查PDAF精度和VCM响应,还应关注AE的收敛时间。若AE收敛慢,AF会等待,导致整体对焦时间延长。因此,优化AE策略或调整AF触发时机,可能比直接调AF参数更有效。

Q&A

高通Camx框架下AF对焦有哪几种方案?各自原理和优缺点是什么?

高通Camx框架下AF对焦有三种方案:PDAF(相位检测自动对焦)通过sensor上的遮光像素获取相位差直接计算对焦距离,速度快但需要sensor支持;CDAF(反差检测自动对焦)通过评估图像对比度判断对焦,所有sensor都支持但速度慢;HAF(混合自动对焦)结合PDAF和CDAF,先用PDAF快速接近再用CDAF微调,是主流方案。

如何开启高通Camx的AF调试日志?

修改camxoverridesettings.txt文件,设置logVerboseMask=0x08000000,然后通过adb push camxoverridesettings.txt vendor/etc/camera/,重启设备即可。0x08000000是STATS_AF模块的verbose日志mask。

AF状态机有哪些状态?分别代表什么含义?

AF状态机包括INACTIVE(未激活)、ACTIVE_SCAN(正在搜索对焦位置)、FOCUSED_LOCKED(对焦成功并锁定)、NOT_FOCUSED_LOCKED(对焦失败并锁定)。频繁出现NOT_FOCUSED_LOCKED说明对焦逻辑有bug,一直停在ACTIVE_SCAN说明搜索过程卡住。

对焦不收敛(HAF_CONVERGE_STATUS持续为0或1)可能的原因有哪些?

可能原因包括:PDAF标定数据不正确、VCM驱动IC配置错误、AF搜索范围设置不合理。

如何确认VCM是否正常工作?

可以通过两种方法:1)dump VCM寄存器,执行adb shell "echo 0x0A00 > /sys/kernel/debug/camera/sensor/vcm_reg && cat /sys/kernel/debug/camera/sensor/vcm_reg";2)查看日志,执行logcat | grep -i "actuator|vcm|dac"。

AF日志中progress、confidence、next_pos等字段分别代表什么?正常值是多少?

progress表示对焦进度,100表示完成;confidence表示PDAF置信度,越高越好,100为最高;next_pos表示VCM下一步目标位置,应在马达行程范围内;range_near和range_far表示搜索范围,正常值分别为0和399(取决于VCM型号)。

对焦速度慢(耗时>1s)的排查方向有哪些?

排查方向包括:AE是否先收敛(AF依赖AE收敛)、PDAF标定数据精度、VCM响应速度(驱动电流是否足够)。

🏷️

标签

➡️

继续阅读