一、相机 3A¶
3A 指相机自动控制的三大部分:AE(自动曝光)、AF(自动对焦)、AWB(自动白平衡)来源。三者共同决定了一帧画面"亮不亮、清不清、准不准",是相机 ISP 流程中独立于画质渲染(demosaic、降噪、色彩渲染等)之外的一条反馈控制回路。
3A 的本质是闭环控制:每帧 sensor 曝光后,ISP 统计出 AE/AF/AWB 所需的度量值(亮度、对焦值/相位、颜色统计),3A 算法据此计算出下一步的执行量,再下发给各执行机构(sensor 寄存器控制曝光时间与增益、VCM 驱动镜头、闪光灯、ND/IR 滤镜等)。如此逐帧迭代,使画面收敛到目标状态。
┌────────┐ 统计 ┌────────┐ 计算 ┌────────────┐ 下发 ┌──────────┐
│ Sensor │ ──────► │ ISP │ ──────► │ 3A 算法 │ ──────► │ 执行机构 │
│ 曝光 │ │ AE/AF/ │ │ AE/AF/AWB │ │ 快门/ISO │
└────────┘ │ AWB │ │ 控制器 │ │ VCM/闪光 │
▲ └────────┘ └────────────┘ │ ND/IR... │
└────────────────────────────────────────────────────┘
下文按 AE → AF → AWB 展开,最后讨论三者协同。
1.1 AE(Auto Exposure,自动曝光)¶
1.1.1 曝光量与曝光三角¶
到达 sensor 的曝光量大致与三者成正比:
其中 \(E\) 为像面照度(由场景亮度、光圈决定),\(t\) 为曝光时间(快门),\(g\) 为增益(ISO)。AE 的任务就是在场景亮度 \(E\) 不可控时,调节 \(t\)、\(g\)、光圈、以及辅助光源,使输出亮度落在期望的"目标亮度"附近,同时尽量不踩过曝/欠曝与运动模糊/噪声的红线。
1.1.2 测光与目标亮度¶
AE 不直接知道场景亮度,它依据 ISP 给出的亮度统计(AE stats,通常是分块 luma 网格)来估计。常见测光模式:
- 矩阵/评价测光:整幅分块加权,综合判断。
- 中央重点测光:以画面中心为主。
- 点测光:只看很小的区域(如对焦点)。
目标亮度通常取中灰(约 18% 灰,详见 光与颜色)对应的 luma 值——因为大多数场景的平均反射率接近 18%,把它映射到中灰能让亮暗部都尽量落在 sensor 的有效动态范围内。这也是 AE 与"准确曝光"的平衡点:既不整体过曝丢高光,也不整体欠曝丢暗部。
1.1.3 AE 控制器与收敛¶
AE 控制器把"当前亮度 vs 目标亮度"的误差驱动到零,常用 PID 或类似算法。由于改变曝光会影响下一帧,AE 是逐帧迭代收敛的(通常数帧内稳定),并要避免在光照突变时震荡。EV 补偿通过人为抬升/压低目标亮度来实现"故意过曝/欠曝"的创作意图;AE Lock 则冻结当前曝光,便于重新构图。
1.1.4 AE 的执行机构¶
原笔记列举了 AE 可调的执行机构,含义如下:
- Auto ISO:调节增益(模拟增益 + 数字增益)。提亮的同时会放大噪声、降低 SNR,故通常在快门已达上限后才提升 ISO。
- Auto Shutter(自动快门,原文笔误为 "shtter"):调节曝光时间。延长快门可提亮,但长曝光会引入运动模糊与果冻效应,因此 AE 会在"冻结运动"与"提亮"间权衡。
- Auto Iris(自动光圈):调节进光孔径。光圈变大既提亮也缩小景深;手机多为固定光圈,部分旗舰才有可变光圈。
- Auto Flash(自动闪光):在暗光下触发 LED 闪光。通常配合预闪做闪光测光,避免主体过曝;闪光也常兼作 AF 辅助照明。
- Auto Laser:激光/ToF 测距辅助,用于暗光、低纹理场景下的对焦与曝光判断(见 AF 一节)。
- Auto ND Filter(自动中性灰度镜):在强光下插入 ND 镜削减进光,为大光圈或慢门留出空间(ND 镜概念见 光与颜色)。
- Auto IR Filter(自动红外截止滤镜):IR-cut 滤镜用于阻挡红外光、保证色彩还原。"Auto" 通常指可在昼/夜模式间切换——夜间移除 IR 滤镜以让红外成分参与成像、提升亮度(代价是偏色),白天再切入以保证色彩准确。
1.2 AF(Auto Focus,自动对焦)¶
1.2.1 对焦的本质¶
对焦就是让像面落在 sensor 上。对焦不准时图像高频细节弱、显得"糊"。AF 通过评估"清晰度"或"离焦量",驱动镜头到合焦位置。手机镜头多由 VCM(音圈电机) 推动,即下面提到的 Auto Focus Motor。
1.2.2 三类对焦技术¶
- CDAF(对比度检测对焦):通过评估图像对比度(高频能量)判断是否合焦——合焦处对比度最高。需要"爬山式"前后微调寻找峰值,故速度慢、会"拉风箱",但无需额外硬件。
- PDAF(相位检测对焦):利用屏蔽像素(相位像素)左右眼视差,直接得到离焦方向与大小,一步即可知道该往哪调多少。速度快、支持预测,是手机主流方案(双像素 Dual-PD 是其常见形态)。需要出厂标定离焦表(PDAF calibration)。
- 激光/ToF 对焦:主动发射光脉冲测距,直接得到物距。在暗光、低纹理场景下尤其有效(CDAF/PDAF 都失效的地方),常与 PDAF 融合使用。对应 AE 一节里的 Auto Laser。
1.2.3 AF 模式与执行¶
- AF-S / AF-C:单次对焦(按下即对准)与连续对焦(跟踪运动主体)。
- 人脸/眼部优先 AF:检测到人脸/眼睛时把对焦点优先给过去。
- Auto Zoom:自动构图/变焦,根据主体位置调整画面范围。
- Auto Spot(对焦点选择):自动选择对焦点/区域(点对焦、多点、广域)。
- Auto Focus Motor:驱动镜头的 VCM,是 AF 的执行末端。
- AF Lock:锁定当前对焦距离,便于重新构图。
1.3 AWB(Auto White Balance,自动白平衡)¶
1.3.1 色温与白平衡¶
不同光源的色温不同(详见 光与颜色):低色温(暖光)偏红,高色温(冷光)偏蓝。若不补偿,同一张白纸在不同光下会拍成不同颜色。白平衡就是让"中性色"(白/灰)物体在画面里仍然呈现为中性,从而让其余颜色也相对准确。
1.3.2 AWB 算法¶
AWB 先估计当前光源(Auto Color Temperature,自动色温估计),再算出 R/B 通道增益补偿。ISP 提供颜色统计(AWB stats,如分块 RGB 直方图、灰/白区域)。常见算法:
- 灰世界法(Gray-World):假设整幅画面平均起来是中性灰,于是把 R/G/B 均值拉平。
- 白斑法(White-Patch / Max-RGB):假设最亮中性区域为白,按其比值校正。
- 灰边法(Gray-Edge):以图像梯度的统计为中性假设。
- 色域映射 / 统计学习:基于色温轨迹(普朗克黑体轨迹)与经验统计,或用机器学习模型估计光源,鲁棒性更好。
AWB 通常对 G 通道固定、调整 R 与 B 的增益:
其中 \(g_r, g_b\) 由估计出的色温查表得到。
1.3.3 AWB Lock¶
AWB Lock 冻结当前白平衡增益,避免在复杂光源下连续波动,便于拍出色彩一致的多张照片。
1.4 3A 协同¶
三者在时间与优先级上相互制约:
- AE 与 AF:暗光下 AE 提高 ISO/延长快门以保亮度,但长快门带来运动模糊、高 ISO 带来噪声,都会降低 AF(尤其 CDAF)的判据质量;此时激光/ToF AF 的价值凸显。
- AE 与 AWB:闪光会瞬间改变光源色温,AE 的预闪与 AWB 的"闪光白平衡"需要协同,否则闪后偏色。
- AF 与 AWB:合焦区域影响 AWB 统计取样的可信度(失焦的高光斑点会污染白点估计)。
因此 3A 通常是联合调度的:先 AE 收敛到一个可用曝光(必要时触发闪光/激光),AF 在可用亮度下收敛,AWB 在稳定光源下收敛,三者状态机互相喂入彼此的结果,最终让画面在亮、清、准三个维度同时收敛。
架构¶
平台架构 | Platform | Android Developers
MTK相机概要架构图:
Camera2 概览 | Android media | Android Developers
csdn-森哥谈成像技术-Android影像基础-3A在系统平台中的实现
MTK3A架构历史:
Camera HAL3的整体架构和流程 - MTK: 两篇 Android Camera简单整理:四讲 深入理解Android相机体系结构:j十讲 Android Q 之MTK代码分析:六讲(重点) [官网-developers:camera2] 简书-HJDaryI:第一章 · 概览 简书-HJDaryI:第二章 · 开关相机 简书-HJDaryI:第三章 · 预览 简书-HJDaryI:第四章 · 拍照 极客笔记:Android Camera性能分析 极客笔记:Android Camera2 API Camera | Android NDK | Android Developers
MKT官网 :HAL3 Overview MTK官网:Camera入门视频
二、参考¶
专家/技术博主: 知乎-刘斯宁:ISP 知乎-章佳杰:光学 知乎-Wang J色度学 CSDN-木东 知乎-烫手的洋芋:AF 个人博客-xiaoqinxing高通/海思Camera CSDN-deepinout_camera10年Camera研发经验,Camera App/Framework/HAL/Driver多层架构经验 CSDN-IT先森安卓系统 CSDN-大胸背图像处理 知乎-凹凸思tuning


