37.补充
ZSL里的Metadata = 依附在每一帧图像上的「本帧全套成像参数小票」,一帧图绑定一份Meta;ZSL抓拍靠小票筛选合格画面,小票丢了就不能存图。
结合ZSL零快门延时抓拍场景拆解。
一、ZSL场景里Metadata里面存什么(对应曝光链)
每一帧RAW/YUV存DDR缓存的同时,配套生成一份Metadata结构体,分三大块:
- Sensor曝光参数(AE核心)
Shutter曝光时长、模拟增益、数字增益、ISO、帧周期、Sensor寄存器配置。 - 3A统计与收敛状态
AE是否收敛、AWB色温/RGB增益、AF对焦状态(合焦/失焦)、画面直方图统计。 - ISP帧属性信息
当前HDR开关、LTM强度、图像Flip配置、时间戳、帧序号、本帧是否可用标记(合格/废弃帧)。
每帧图像 ↔ 唯一一份Metadata,一一绑定存在DDR。
二、ZSL工作逻辑(为什么极度依赖Metadata)
普通拍照:点快门 → 触发Sensor新曝光 → 出图;
ZSL:后台一直在连续预存过往帧到DDR环形缓存,点击快门不去触发新帧,从缓存里挑一帧保存。
完整流程:
- 相机预览运行,每一帧出图后:图像进ZSL缓存 + 同步生成Metadata一起存入内存;
- 用户按下快门;
- HAL遍历ZSL缓存里所有缓存帧的Metadata:
- 查看Meta里:AE是否收敛、曝光参数是否正常、AF有没有合焦、本帧标记是否合法;
- 过滤掉:AE不稳、参数异常、标记“不可抓帧”的坏帧;
- 从合格帧里挑选最合适那一帧保存成照片。
若 AE 状态未稳定,ZSL Frame 会被标记为“不可抓帧”,重新等待下一轮;任何一帧 Metadata 丢失都可能导致抓拍失败。
- AE没收敛 → 在这帧的Metadata里打上不可用标签 → HAL看到标签直接舍弃该帧;
- Metadata丢失=没有小票:HAL不知道这张图曝光、对焦合不合格,无法判断能不能存图 → 抓拍直接失败、黑屏/无照片。
三、对应前文四种延迟里的Metadata延迟
Metadata 延迟:3A收敛信息需等待完整一帧处理完成,反馈滞后 ~1 帧周期
- 第N帧图像走完ISP处理完毕,才能统计直方图、跑完AE/AWB算法;
- 3A结果写入第N帧自身的Metadata;
- 这套收敛参数要到下一帧(N+1)才会配置到Sensor生效;
- 所以Metadata里的AE状态天然滞后1帧,ZSL选帧时要考虑这个滞后。
Metadata就是每帧图片的身份证+体检报告:记录曝光、3A好坏、帧可用性;ZSL靠这份报告选照片,报告丢了/不合格,这张缓存帧直接作废。
四、AE Converged
监控 AE Converged 标志 = 看 “自动曝光是否已经稳住、不再跳动”
AE Converged = 曝光收敛 = 画面亮度已经稳定,不忽亮忽暗了。
- Converged = YES → 亮度稳定了,可以拍照
- Converged = NO → 亮度还在变,拍照会忽亮忽暗,不能拍
ZSL 抓拍必须等 AE 收敛,否则照片亮度会乱跳。
AE Converged 到底是什么?
AE(自动曝光)在预览时会不断调整:
画面暗 → 自动加曝光
画面亮 → 自动减曝光
当它调整到合适亮度、不再变化时,就叫:AE Converged(曝光已收敛)
评论