ZSL里的Metadata = 依附在每一帧图像上的「本帧全套成像参数小票」,一帧图绑定一份Meta;ZSL抓拍靠小票筛选合格画面,小票丢了就不能存图。

结合ZSL零快门延时抓拍场景拆解。

一、ZSL场景里Metadata里面存什么(对应曝光链)

每一帧RAW/YUV存DDR缓存的同时,配套生成一份Metadata结构体,分三大块:

  1. Sensor曝光参数(AE核心)
    Shutter曝光时长、模拟增益、数字增益、ISO、帧周期、Sensor寄存器配置。
  2. 3A统计与收敛状态
    AE是否收敛、AWB色温/RGB增益、AF对焦状态(合焦/失焦)、画面直方图统计。
  3. ISP帧属性信息
    当前HDR开关、LTM强度、图像Flip配置、时间戳、帧序号、本帧是否可用标记(合格/废弃帧)。

每帧图像 ↔ 唯一一份Metadata,一一绑定存在DDR。

二、ZSL工作逻辑(为什么极度依赖Metadata)

普通拍照:点快门 → 触发Sensor新曝光 → 出图;
ZSL:后台一直在连续预存过往帧到DDR环形缓存,点击快门不去触发新帧,从缓存里挑一帧保存。

完整流程:

  1. 相机预览运行,每一帧出图后:图像进ZSL缓存 + 同步生成Metadata一起存入内存
  2. 用户按下快门;
  3. HAL遍历ZSL缓存里所有缓存帧的Metadata
    • 查看Meta里:AE是否收敛、曝光参数是否正常、AF有没有合焦、本帧标记是否合法;
    • 过滤掉:AE不稳、参数异常、标记“不可抓帧”的坏帧;
  4. 从合格帧里挑选最合适那一帧保存成照片。

若 AE 状态未稳定,ZSL Frame 会被标记为“不可抓帧”,重新等待下一轮;任何一帧 Metadata 丢失都可能导致抓拍失败。

  • AE没收敛 → 在这帧的Metadata里打上不可用标签 → HAL看到标签直接舍弃该帧;
  • Metadata丢失=没有小票:HAL不知道这张图曝光、对焦合不合格,无法判断能不能存图 → 抓拍直接失败、黑屏/无照片。

三、对应前文四种延迟里的Metadata延迟

Metadata 延迟:3A收敛信息需等待完整一帧处理完成,反馈滞后 ~1 帧周期

  1. 第N帧图像走完ISP处理完毕,才能统计直方图、跑完AE/AWB算法;
  2. 3A结果写入第N帧自身的Metadata
  3. 这套收敛参数要到下一帧(N+1)才会配置到Sensor生效;
  4. 所以Metadata里的AE状态天然滞后1帧,ZSL选帧时要考虑这个滞后。

Metadata就是每帧图片的身份证+体检报告:记录曝光、3A好坏、帧可用性;ZSL靠这份报告选照片,报告丢了/不合格,这张缓存帧直接作废。

四、AE Converged

监控 AE Converged 标志 = 看 “自动曝光是否已经稳住、不再跳动”

AE Converged = 曝光收敛 = 画面亮度已经稳定,不忽亮忽暗了。

  • Converged = YES → 亮度稳定了,可以拍照
  • Converged = NO → 亮度还在变,拍照会忽亮忽暗,不能拍
    ZSL 抓拍必须等 AE 收敛,否则照片亮度会乱跳。

AE Converged 到底是什么?

AE(自动曝光)在预览时会不断调整:
画面暗 → 自动加曝光
画面亮 → 自动减曝光

当它调整到合适亮度、不再变化时,就叫:AE Converged(曝光已收敛)