4. 自动曝光AE原理

自动曝光(Auto Exposure,AE)是ISP 3A算法中最先影响主观画质的环节。它要解决的核心问题是:在传感器动态范围、镜头光圈和场景照度不断变化的前提下,让输出图像的平均亮度或主体亮度稳定落在目标区间,同时避免高光过曝和暗部死黑。理解AE,必须从曝光三角、测光模式、曝光表、目标亮度和收敛策略五个维度建立系统认知。

一、曝光三角:AE的物理约束

曝光量由三个物理量共同决定:光圈(Aperture)控制进光孔面积,快门时间(Exposure Time)控制感光时长,ISO增益控制模拟/数字放大倍数。三者构成“曝光三角”,任意一项变化都会改变最终亮度,但副作用不同:

  • 光圈:影响景深和进光量,F值越小进光越多,但景深越浅;手机多固定光圈,AE通常不调光圈。
  • 快门:影响运动模糊和进光时长,长曝光提升亮度但易拖影,短曝光冻结运动但需更高增益。
  • ISO:影响信噪比,高ISO提亮但噪声增大,低ISO画质干净但暗场欠曝。

在ISP联调中,AE通常优先调节曝光时间,再调节ISO,以在亮度与噪声之间取得平衡。曝光三角的数学关系可简化为:

EV = log2(N^2 / t) - log2(ISO / 100)
其中:N为光圈F值,t为快门时间(秒),ISO为感光度
目标:使 AE_avg_luma 接近 target_luma

二、测光模式:决定“以谁为准”

测光模式决定AE统计区域和权重分布。常见模式包括:

测光模式统计区域适用场景风险
全局平均测光整幅画面等权光照均匀的风景逆光时主体偏暗
中央重点测光中心区域高权重人像、主体居中主体偏离中心时失准
点测光中心小区域高对比、舞台对焦点偏移导致剧烈波动
矩阵/评价测光多分区加权复杂光照算法调参复杂

在ISP实现中,测光通常基于统计模块输出的亮度直方图和分区均值。AE模块读取这些统计值后,结合权重表计算当前亮度与目标亮度的偏差。

三、曝光表与目标亮度

曝光表(Exposure Table)是AE算法的“经验库”,通常以亮度索引(Lux Index)为横轴,记录不同环境照度下推荐的曝光时间、ISO和增益组合。目标亮度(Target Luma)则是AE收敛的期望值,通常以YUV域Y分量的均值或加权均值表示,典型目标区间为40%~60%(8bit下约102~153)。

联调要点:目标亮度不是固定值。夜景可适当降低目标亮度以保留高光,人像可略提高以突出面部。曝光表需与目标亮度联动标定,否则会出现“白天正常、夜晚过曝”或“夜景死黑”的问题。

四、收敛策略:从粗调到精调

AE收敛通常采用“粗调+精调”两级策略。粗调阶段根据亮度偏差快速调整曝光时间和ISO,步长较大;精调阶段在目标附近减小步长,避免振荡。常见收敛策略包括:

  1. 比例控制:根据亮度误差按比例调整曝光量,响应快但易超调。
  2. PI控制:引入积分项消除稳态误差,适合光照缓慢变化场景。
  3. 查表+插值:直接查曝光表并插值,稳定但灵活性差。
  4. 防振荡机制:设置死区(Dead Zone),误差小于阈值时停止调整。

以下为AE收敛的典型伪代码逻辑:

luma = get_weighted_luma()
error = target_luma - luma
if abs(error) < dead_zone:
    hold()
elif error > 0:
    increase_exposure(step = k * error)
else:
    decrease_exposure(step = k * error)
apply_exposure_table_limit()

五、常见曝光问题与复盘

在ISP 3A联调中,AE常见问题集中在以下几类:

  • 呼吸效应:画面亮度反复明暗变化,多因步长过大或死区过小。
  • 逆光主体过暗:全局测光导致背景高光拉低整体曝光,需切换中央重点或点测光。
  • 高光过曝:目标亮度设置过高,或曝光表上限未限制,需增加高光保护权重。
  • 夜景噪声大:ISO提升过快,应优先延长曝光时间并配合降噪。
  • 切换场景闪烁:曝光表切换阈值过于敏感,需增加迟滞区间。

排障建议:先抓取AE统计日志,确认当前luma、target_luma、曝光时间、ISO和增益值;再检查测光权重表是否与场景匹配;最后验证曝光表边界和收敛步长。多数AE问题不是算法错误,而是标定参数与场景不匹配。

自动曝光AE:曝光三角 · 测光 · 目标亮度 · 收敛策略 曝光三角 光圈 快门 ISO 进光量 景深 / 拖影 / 噪声 EV = log2(N²/t) − log2(ISO/100) 测光模式 全局平均 整幅等权 中央重点 中心高权重 点测光 小区域 矩阵评价 多分区加权 目标亮度与曝光表 Target Luma: 40%~60% Lux Index → 曝光组合 高光保护权重 夜景降目标 · 人像略提升 AE收敛策略与常见问题闭环 统计亮度 luma / 直方图 计算误差 error = target − luma 死区判断 |error| < dead_zone 步长调整 比例 / PI控制 曝光表限幅 时间 / ISO / 增益 闭环反馈:持续监测,防止振荡 呼吸效应 / 闪烁 步长过大 · 死区过小 逆光主体过暗 测光模式不匹配 高光过曝 目标亮度偏高 夜景噪声大 ISO提升过快

综上,AE联调的本质是在物理约束下寻找亮度、噪声、运动模糊和高光保留之间的最优平衡。掌握曝光三角的取舍逻辑、测光模式的适用边界、曝光表与目标亮度的标定方法,以及收敛策略的防振荡设计,才能在实际项目中快速定位并解决曝光问题。