3. HDR多帧合成流程总览:从Sensor曝光到最终YUV输出的完整链路

HDR(High Dynamic Range)多帧合成是移动设备相机提升动态范围的核心技术。本章从全局视角梳理一条完整的处理链路:从Sensor以不同曝光参数捕获多帧RAW数据开始,经过ISP管线、多帧对齐、合成、色调映射,最终输出标准YUV图像。理解这条链路是后续章节实现具体模块的基础。

核心认知: HDR多帧合成不是简单的“亮帧+暗帧平均”,而是一套包含曝光控制、运动补偿、权重融合、色调重建的精密流水线。任何环节的精度不足都会导致鬼影、亮度断层或细节丢失。
HDR多帧合成完整链路总览 HDR多帧合成完整链路总览 Sensor 多帧曝光 短/中/长 3帧RAW ISP RAW域处理 BLC / LSC / AWB 多帧对齐 ME / MC / 运动掩码 多帧合成 权重融合 / 去鬼影 色调映射 Tone Mapping / 细节增强 YUV输出 NV12 / NV21 格式 后处理 NR / Sharpen / 旋转 关键说明: • 多帧对齐与合成是HDR核心,直接影响鬼影抑制效果 • 色调映射决定最终动态范围与自然度 • YUV输出格式需与HAL / Framework约定一致

3.1 链路阶段划分与职责

完整的HDR多帧合成链路可划分为7个关键阶段,每个阶段承担特定的处理职责。下表列出各阶段、输入/输出数据格式及典型耗时占比(以30fps预览场景为例)。

阶段 输入 输出 典型耗时占比 关键挑战
1. Sensor多帧曝光 场景光信号 3帧RAW (10/12/14bit) ~15% 帧间延迟、曝光同步
2. ISP RAW域处理 RAW帧 线性RAW (去噪后) ~20% 黑电平校正、LSC一致性
3. 多帧对齐 多帧线性RAW 对齐后的帧 + 运动掩码 ~25% 运动估计精度、计算量
4. 多帧合成 对齐帧 + 运动掩码 单帧HDR RAW ~15% 权重设计、去鬼影
5. 色调映射 HDR RAW (高位宽) 8/10bit 线性/非线性图 ~10% 局部对比度、自然度
6. YUV输出 色调映射后图像 NV12 / NV21 ~5% 色彩空间转换精度
7. 后处理 YUV帧 最终YUV帧 ~10% 降噪与锐化平衡
工程提示: 在HAL层实现时,阶段3(多帧对齐)和阶段4(多帧合成)通常运行在独立的硬件加速器或DSP上,以降低CPU/GPU负载。阶段2(ISP RAW域处理)往往由ISP硬件流水线完成,HAL只需配置参数。

3.2 数据流与关键接口

各阶段之间的数据传递通过明确定义的接口完成。在Camera HAL实现中,这些接口通常对应buffer队列或共享内存句柄。以下列出核心接口及其数据格式。

  • Sensor → ISP: RAW帧通过MIPI CSI接口传输,格式为10/12/14bit Bayer RAW(如Bayer RGGB)。HAL通过V4L2或自定义驱动获取帧。
  • ISP → 对齐模块: 线性RAW帧(已完成BLC、LSC、AWB增益),通常以16bit无符号整数存储,保留高动态范围信息。
  • 对齐模块 → 合成模块: 对齐后的多帧RAW + 运动掩码(Motion Mask)。运动掩码为8bit灰度图,0表示静止区域,255表示强运动区域。
  • 合成模块 → 色调映射: 单帧HDR RAW,位宽通常为20bit(定点)或16bit(浮点),包含扩展的动态范围。
  • 色调映射 → YUV输出: 8bit或10bit线性/非线性图像,经过色彩空间转换(RGB→YUV)后输出NV12/NV21格式。
HDR多帧合成数据流与接口 HDR多帧合成数据流与接口 Sensor RAW 10/12/14bit ISP RAW域 线性RAW 16bit 多帧对齐 对齐帧+掩码 多帧合成 HDR RAW 20bit 色调映射 8/10bit 图像 YUV输出 NV12/NV21 MIPI CSI Buffer队列 共享内存 DMA 共享内存 Buffer队列 回传

3.3 关键算法模块简介

在HDR多帧合成链路中,以下算法模块直接决定最终图像质量。HAL层需要为这些模块提供正确的参数配置和buffer管理。

  1. 运动估计与运动补偿(ME/MC): 以中曝光帧为参考,计算短帧和长帧的运动矢量,进行像素级或块级对齐。常用方法包括光流法、块匹配(Block Matching)或基于特征点的配准。
  2. 运动掩码生成: 基于对齐残差或帧间差异,生成运动掩码图。运动区域在合成时降低权重或直接使用单帧信息,避免鬼影。
  3. 权重融合: 根据像素亮度、饱和度、运动掩码值计算每帧的融合权重。典型策略:亮区域优先使用短帧,暗区域优先使用长帧,中间区域加权平均。
  4. 去鬼影(De-ghosting): 对运动区域进行特殊处理,如使用参考帧替换、局部融合或基于深度学习的修复。
  5. 色调映射(Tone Mapping): 将高动态范围(如20bit)压缩到8bit/10bit显示范围,同时保留细节和对比度。常用算法包括Reinhard、Durand、自适应对数映射等。
常见陷阱: 多帧对齐阶段如果运动估计不准确,会导致合成后出现重影或模糊。建议在HAL层实现时,对运动掩码设置阈值,对高运动区域直接采用参考帧像素,避免错误融合。

3.4 时序与同步要求

HDR多帧合成对时序有严格要求,特别是在预览和录像场景下。以下列出关键时序参数及其典型值。

参数 典型值 说明
帧间隔(Frame Interval) 33ms (30fps) 3帧HDR需在100ms内完成曝光+处理
曝光时间差 1x / 4x / 16x 短:中:长曝光时间比例,避免过曝/欠曝
ISP处理延迟 < 8ms / 帧 RAW域处理需在帧间隔内完成
对齐+合成延迟 < 15ms 多帧处理通常使用流水线并行
色调映射+YUV输出 < 5ms 可与其他阶段重叠执行
架构决策: 在HAL层设计中,建议将多帧对齐和合成模块放在独立的硬件线程或DSP任务中,与ISP流水线并行运行。通过双buffer或环形buffer机制,实现“曝光-处理-输出”的流水线重叠,从而满足30fps的实时性要求。

3.5 本章小结