4. 自动对焦核心算法

自动对焦(AF)是相机3A中与用户体感最直接相关的环节。曝光偏一点用户未必立刻察觉,白平衡偏一点可能被当作风格,但对焦一旦拉风箱、反复犹豫或对到背景,用户会立即判定“这台相机不行”。高通平台的AF调优,核心是把PDAF的相位信息、对比度搜索的可靠性、场景识别与区域选择策略组合成一条稳定的决策链。

一、PDAF原理:用“相位差”直接测距

PDAF(Phase Detection Auto Focus)的本质,是在传感器像素中嵌入成对的遮光像素,分别只接收来自镜头左右(或上下)侧的光线。当被摄物合焦时,左右两路信号在像素上的分布一致;离焦时,两路信号会出现横向错位,这个错位量就是相位差(PD值)。PD值的大小反映离焦量,正负号反映离焦方向——这是PDAF相比纯对比度AF最大的优势:它能一次性判断“往哪边调、大概调多少”。

高通平台通常把PD信息以Defocus(离焦量)形式输出,单位可换算为镜头步数。调优时最关键的三个参数是:PD置信度(confidence)、PD线性度(linearity)和PD噪声底。置信度低时不能强行相信PD,否则会出现“对到一半突然跳走”;线性度差时,PD换算的步数会失真,需要分段标定;噪声底决定最小可信离焦量,低于该值应转入精细搜索。

PDAF 相位差测距与 AF 决策链 PDAF 像素对 左遮光像素 右遮光像素 相位差 PD Defocus = PD × 标定系数 AF 决策链 1. 读取 PD 与置信度 2. 置信度 > 阈值? 3. 低置信 → 转 CDAF 搜索 爬山算法 FV 曲线 峰值 镜头位置 FV 场景识别与对焦区域选择 人脸 / 人眼 优先人眼区域 ROI 小、权重高 跟踪 + PD 联合 近景 / 微距 中心 + 多点 限制搜索范围 防拉风箱 风景 / 远景 大区域 / 全屏 超焦距倾向 PD 快速收敛 运动 / 弱光 预测 + 连续 AF 降低 FV 阈值 提高 PD 权重

二、AF搜索策略:先PD粗定位,再CDAF精修

高通AF框架通常采用“PD优先、CDAF兜底”的混合策略。一次完整的AF流程可拆为四步:

  1. PD粗定位:读取当前帧PD,若置信度足够,直接按Defocus换算镜头步数,一步跳到接近合焦的位置,通常可覆盖80%以上离焦量。
  2. CDAF精修:在PD落点附近做小范围爬山搜索,用FV(Focus Value,通常为高频能量)找精确峰值,补偿PD线性度误差。
  3. 合焦确认:检查FV是否超过阈值、PD是否落入死区、连续多帧是否稳定,三者满足才锁定。
  4. 失焦重触发:若FV下降或PD重新变大,按场景决定是否重新进入搜索。
调优建议:PD死区(dead zone)不要设得过小,否则镜头会在峰值附近来回抖动;也不要过大,否则近景会明显对不准。通常按镜头步数与景深联合标定。

三、爬山算法:FV曲线的搜索逻辑

爬山算法是CDAF的核心。它从当前位置出发,按固定步长向FV增大的方向移动,直到FV开始下降,再反向缩小步长逼近峰值。关键参数包括:

  • 粗调步长:决定搜索速度,过大容易跨过峰值,过小则拉风箱。
  • 细调步长:决定最终精度,一般取粗调步长的1/4~1/2。
  • FV阈值:低于阈值认为场景无纹理,应放弃CDAF或转PD。
  • 最大搜索范围:防止在低纹理场景无限搜索。
典型AF参数片段(示意):
af_pd_confidence_threshold = 0.6
af_pd_dead_zone_steps      = 8
af_coarse_step             = 32
af_fine_step               = 8
af_fv_threshold            = 120
af_max_search_range        = 400
af_face_roi_weight         = 0.75
af_motion_pd_weight        = 0.85

四、场景识别与对焦区域选择

同一套AF参数不可能适配所有场景。高通平台通常结合人脸检测、运动检测、亮度统计与PD分布,把场景粗分为人脸/人眼、近景微距、风景远景、运动弱光四类,再动态调整ROI与权重。

场景 ROI策略 PD权重 搜索范围 典型风险
人脸/人眼 人眼小框优先 高 小 侧脸漏检
近景微距 中心+多点 中 受限 拉风箱
风景远景 全屏/大区域 高 大 对到近处前景
运动弱光 中心跟踪 高 中 噪声误判

五、案例与复盘:一次“对到背景”的排障

某项目在逆光人像下频繁对到背景。日志显示PD置信度正常,但人脸ROI权重被场景分类器判为“风景”,导致ROI切到全屏,背景高对比边缘抢占了FV峰值。复盘结论有三点:

  • 场景分类器的人脸置信度阈值偏高,逆光下人脸偏暗被漏检;
  • ROI切换缺少迟滞(hysteresis),一帧误判就切走;
  • PD权重在风景模式下过高,未对人脸区域做局部加权。
常见误区:把AF问题全部归因于“算法不行”。实际上多数对焦异常来自ROI选择、场景分类迟滞、PD标定线性度与FV阈值四者的组合失配。调优时应先看ROI与场景标签,再看PD与FV,最后才动搜索步长。

总结来看,PDAF提供方向与距离,CDAF提供精度兜底,爬山算法决定搜索效率,场景识别与区域选择决定“对哪里”。四者不是并列关系,而是一条从测距到决策、从决策到执行的完整链路。调优的核心,是让每一环的置信度与阈值互相匹配,而不是单独把某一环调到极致。