2. RK平台AF架构:ISP硬件加速器、统计信息获取与AIQ算法框架

在RK平台自动对焦调试中,理解底层硬件加速器、统计信息获取流程以及上层算法框架是进行精准调试的前提。本章将深入剖析RK ISP的AF硬件加速器工作原理、统计信息获取的数据通路,以及RK AIQ中AF算法的整体架构。

2.1 RK ISP的AF硬件加速器

RK ISP内部集成了专用的AF硬件加速器,用于实时计算图像清晰度评价函数,从而减轻CPU/GPU的负载。该加速器主要包含以下核心模块:

  • 像素数据预处理单元:从ISP管线中截取指定ROI(Region of Interest)区域的RAW或RGB数据,进行必要的格式转换与降噪处理。
  • 滤波器组:内置多种高通滤波器(如Sobel、Laplacian、Bayer域梯度滤波器),用于提取图像的高频分量。
  • 统计累加器:对滤波后的像素值进行绝对值求和、平方和或最大值统计,生成多种清晰度指标。
  • 配置寄存器组:用于设置ROI坐标、滤波器系数、统计模式等参数,由驱动层通过I2C或MMIO进行配置。
调试要点: AF硬件加速器的滤波器系数直接影响对比度计算的灵敏度。在调试初期,建议使用默认系数,待搜索步长调优后再根据场景微调滤波器带宽。

下图展示了AF硬件加速器在ISP管线中的位置及其内部数据流:

RK ISP AF硬件加速器架构图 RK ISP AF硬件加速器架构图 ISP Sensor Input ROI截取 & 预处理 高通滤波器组 Sobel / Laplacian 累加器 配置寄存器组 (I2C/MMIO) AF统计值 说明: AF硬件加速器独立于主ISP管线运行,支持多ROI并行统计。滤波器系数可通过AIQ算法动态调整。

2.2 AF统计信息获取流程

AF统计信息的获取是一个从硬件到软件的分层传递过程,涉及ISP硬件、内核驱动以及AIQ算法库。完整的流程如下:

  1. 硬件层统计:AF硬件加速器在每个帧周期内完成ROI区域的滤波与累加计算,将结果写入ISP内部的统计缓冲区。
  2. 驱动层读取:RK ISP驱动(如 rkisp_af.c)在VSYNC中断服务函数中,通过DMA或直接寄存器读取方式,将硬件统计值搬运到内核内存。
  3. 用户态传递:驱动通过V4L2元数据队列或自定义IOCTL接口,将统计值上报到用户态的AIQ服务进程。
  4. AIQ预处理:AIQ中的AF算法模块对原始统计值进行归一化、滤波平滑、无效帧剔除等预处理操作。
关键指标: 统计信息获取的延迟通常控制在1~2帧以内。若超过3帧,会导致AF搜索滞后,产生明显的“拉风箱”现象。

下表总结了各层传递的数据格式与典型延迟:

层级 数据格式 典型延迟 接口方式
硬件层 32位累加值 / 16位最大值 1帧 (16.6ms @60fps) 内部总线
驱动层 struct rkisp_af_stat 0.1~0.5ms DMA / MMIO
用户态AIQ 浮点归一化数组 0.5~2ms V4L2 / Netlink

下图以时序图形式展示了统计信息从硬件到AIQ的完整获取流程:

AF统计信息获取时序图 AF统计信息获取流程时序图 ISP硬件 内核驱动 AIQ用户态 1. 滤波 & 累加 2. DMA读取统计值 3. 归一化 & 滤波 配置更新 (ROI/系数) 整个流程在每帧VSYNC周期内完成。驱动层负责数据搬运,AIQ层负责算法决策与配置回写。

2.3 RK AIQ中的AF算法框架

RK AIQ(AI Quality)是RK平台统一的图像质量算法库,其中AF模块采用分层可插拔的框架设计。整体框架分为以下三层:

  • 策略层 (Strategy Layer):负责场景识别与对焦策略选择。根据环境亮度、运动检测、人脸检测等信息,决定使用对比度法、相位法还是混合模式。
  • 算法层 (Algorithm Layer):实现具体的对焦算法,包括对比度评价函数计算、搜索步长生成、峰值检测、防抖逻辑等。
  • 适配层 (Adapter Layer):封装硬件差异,提供统一的接口供上层调用,包括ROI配置、马达驱动、统计值获取等。
注意: 在RK3588/RK356X等不同芯片平台上,AF硬件加速器的寄存器布局和统计值格式可能存在差异。适配层负责屏蔽这些差异,确保算法层代码可复用。

下表对比了AF框架中各层的职责与关键接口:

层级 主要职责 关键接口/模块 平台相关性
策略层 场景识别、策略切换 af_scene_detect, af_strategy_selector 低
算法层 对比度计算、搜索步长、峰值检测 af_contrast_calc, af_search_engine 低
适配层 硬件寄存器配置、统计值解析 af_hw_ops, af_stats_parser 高

下图展示了RK AIQ中AF算法框架的模块组成与调用关系:

RK AIQ AF算法框架图 RK AIQ AF算法框架图 策略层 (Strategy Layer) 场景识别 | 策略选择 | 模式切换 (对比度/相位/混合) 算法层 (Algorithm Layer) 对比度评价函数 | 搜索步长生成 | 峰值检测 | 防抖逻辑 适配层 (Adapter Layer) ROI配置 | 马达驱动 | 统计值解析 | 硬件差异封装 ISP硬件 / 马达驱动