一、两类模块本质

1. ISP 图像变换模块(前面讲的BLC、LSC、DPC、CCM、Gamma等)

  • 工作内容改画面像素,对图像数据做计算、修正、渲染。
    比如校正暗角、修复坏点、调色、提亮暗部……输入一帧图像 → 输出一帧被处理后的图像
  • 运行位置:硬件ISP流水线内部,帧数据一路流经这些模块,是图像加工工序
  • 比喻:像加工厂流水线,原料(RAW数据)过来,一道道工序加工成成品图。

2. 3A(AE/AWB/AF)控制模块

  • 工作内容不直接修改像素,只做「采样分析 → 计算参数 → 下发配置」。
    它不会亲手处理画面,而是给流水线、Sensor、马达下达参数指令
  • 运行位置:大多跑在CPU/算法库/HAL层,挂在ISP流水线旁,属于调度+决策单元
  • 比喻:像车间调度员,不亲手加工产品,只盯着成品状态,然后调整机器参数、工位设置。

原文核心意思:
3A 不是ISP流水线上“加工图像”的工序,而是盯着画面、动态调参的控制系统


二、结合ISP流水线,逐个拆解3A角色&位置

先回顾整体链路:

Sensor输出RAW → ISP各级图像变换模块 → 出图 + 输出统计数据
↑                     ↓
└────── 3A控制模块 ←─── 读取统计数据

2.1 AE 自动曝光

  • 位置:RAW预处理之后
  • 逻辑:
    1. AE 从当前帧提取亮度直方图(Histogram),判断画面整体偏亮/偏暗;
    2. 不修改像素,而是算出一组参数:曝光时长、Sensor模拟增益、ISP数字增益;
    3. 通过I2C把参数写给Sensor和ISP,让下一帧的图像变换模块用新参数工作
  • 举例:夜景画面太暗 → AE 下发指令:拉长曝光、提高增益 → 下一帧画面自然变亮。

2.2 AWB 自动白平衡

  • 位置:CFA插值(转RGB)之后
  • 逻辑:
    1. AWB 采样画面色彩区块,判断当前环境色温(比如室内黄光、户外白光);
    2. 不直接改颜色,而是计算 R/G/B 三通道增益、微调CCM色彩矩阵;
    3. 把参数写入ISP寄存器,由后续CCM等色彩模块执行调色,修正偏色。
  • 举例:灯光下画面发黄 → AWB 下发白平衡增益 → ISP色彩模块拉高蓝通道,画面恢复正常白色。

2.3 AF 自动对焦

  • 位置:RAW/YUV域均可
  • 逻辑:
    1. AF 截取画面对焦窗口的图像数据,计算边缘清晰度;
    2. 完全不处理图像,只判断:现在对焦准不准、镜头该往前/往后移;
    3. 下发PWM/SPI指令驱动对焦马达,物理移动镜头位置,改变成像焦平面。
  • 举例:拍远处物体模糊 → AF 算出偏移量 → 马达带动镜头移动 → 画面变清晰。

三、再理解表格里的「作用阶段、依赖数据、控制范围」

模块作用阶段依赖数据控制影响范围通俗解读
AERAW预处理后亮度直方图曝光时间、Sensor/ISP增益看画面亮暗 → 调Sensor曝光和信号放大倍数
AWBCFA之后色彩统计值色彩通道增益、CCM矩阵看画面色温 → 调ISP色彩参数修正偏色
AFYUV/RAW可选局部对焦窗口镜头马达位置看画面清晰度 → 物理移动镜头

核心共同点:
✅ 都依赖ISP输出的统计数据(直方图、色块、清晰度数据)做判断
❌ 都不参与像素运算,不是图像加工环节
✅ 最终都是对外/对ISP下发控制指令,间接改变成像效果


四、结合「帧触发链路」加深理解(Frame N → Frame N+1)

  1. 第N帧
    Sensor出图 → ISP走完所有图像变换模块
    同时ISP额外输出亮度、色彩、清晰度等统计信息
    3A算法拿到统计数据,完成计算决策。
    → 这一帧画面,不会被本次3A结果影响

  2. 参数下发
    3A把算好的曝光、白平衡、对焦位置等参数,分别写给Sensor、ISP、镜头马达。

  3. 第N+1帧
    Sensor、ISP、马达使用新参数工作;
    新参数作用在新一轮ISP图像流水线上,输出调整后的画面。

简单总结链路:用当前帧的数据,算参数,改下一帧的成像


五、总结

  1. ISP里的BLC、DPC、CCM等:亲手处理像素,加工图像,属于图像处理模块
  2. AE/AWB/AF(3A):只分析画面数据、计算参数、下发指令,不直接改像素,属于系统控制模块
  3. 3A依附在ISP流水线旁,靠ISP的统计数据做判断,再反过来控制Sensor、ISP、镜头硬件,形成闭环。