WDR模式详解
OS08A20 与海思平台 WDR 三种模式讲义关键词OT_WDR_MODE_BUILT_IN、OT_WDR_MODE_2To1_LINE、OT_WDR_MODE_2To1_FRAME、OS08A20、Staggered HDR、Sequential HDR、MIPI VC目录三种 WDR 模式总览基本概念BUILT_IN 模式2To1_LINE 模式2To1_FRAME 模式三种模式对比MIPI Lane 与 VCOS08A20 对应关系核心修正项常见误区逐条修正工程检查清单一句话总结1. 三种 WDR 模式总览海思平台 MPP 定义的 3 种 WDR 模式模式合成位置Sensor 输出平台角色OT_WDR_MODE_BUILT_INSensor 内部完成 WDR 融合 非线性压缩单路压缩后的合成 RAW非线性格式ISP 仅做 Expander 解压不参与长短帧合成OT_WDR_MODE_2To1_LINE海思 ISP 行间合成行交替长曝光行/短曝光行分两路 RAWVC0/VC1VI 拆分两路行数据ISP 做行间 2To1 融合OT_WDR_MODE_2To1_FRAME海思 ISP 帧间合成完整长帧 RAW、完整短帧 RAW 先后串行输出VI 缓存两帧图像ISP 做帧间 2To1 融合占用双帧 Buffer一句话精简BUILT_INSensor 合成 压缩ISP 只负责解压无多帧融合动作。2To1_LINE长短曝光行交错输出ISP 行间融合运动鬼影最轻。2To1_FRAME长短整帧先后输出ISP 帧间融合必须双帧缓存。2. 基本概念2.1 WDR 宽动态通过两组独立曝光采集长曝光 Long拉高暗部信噪比高光易饱和短曝光 Short保住亮部不溢出暗部噪声大后端将两路线性 RAW 合并为一帧宽动态画面。2.2 两大采集架构Sensor 端融合BUILT_IN片内完成长短帧合并 PWL 非线性压缩输出单路压缩 RAWISP 端融合2To1_LINE / 2To1_FRAMESensor 只输出两路独立线性 RAW不做任何合成由 ISP 完成融合。重点2To1_LINE / 2To1_FRAME 下长短帧数据始终是线性 RAW没有片内压缩。3. BUILT_IN 模式3.1 数据流ISP AE计算曝光/增益 → 写入Sensor寄存器 ↓ Sensor采集长短曝光 → 片内完成WDR融合 → PWL分段压缩 ↓ 输出单路压缩RAW一路MIPI数据流 ↓ 海思MIPI RX接收 ↓ ISP Expander模块加载PWL曲线执行反向解压 ↓ 正常去拜耳、3A、ToneMapping处理3.2 核心特性Sensor 内部完成长短帧融合ISP没有两路 RAW 输入不执行 WDR 融合算法输出为压缩 RAW必须配置 Expander 分段线性曲线还原动态范围AE 只下发一组曝光与增益不需要分别配置长帧、短帧两套参数带宽开销低只占用 1 路 MIPI 数据流不需要多路 VC。3.3 关键修正针对 OS08A20⚠️重大结论OS08A20 原生硬件不支持 BUILT_IN 片内合成 压缩输出OS08A20 仅支持两路独立线性 RAW 输出Staggered/Sequential HDR无片内 WDR 融合与压缩电路无法直接跑OT_WDR_MODE_BUILT_IN该模式仅适用于带 Built-in WDR 的 Sensor如部分 OV/索尼 DCG HDR 型号。4. 2To1_LINE 模式Staggered HDROS08A20 原生首选4.1 工作时序Sensor 逐行交替曝光奇数行 长曝光偶数行 短曝光一行 Long、一行 Short 循环读出输出两路独立 RAW 数据流。4.2 两种输出方案修正原文误区双 VC 模式主流方案长行数据走 VC0短行数据走 VC1MIPI 一进两路逻辑流VI 直接拆分 VC0/VC1 得到两路行数据无需软件逐行解析。单 VC 无虚拟通道模式长短行共用同一个 VC依靠 Dummy Line 行计数区分长行/短行由 VI 软件逐行切割两路数据兼容性弱只在 VC 资源不足时使用。4.3 模式特点长短曝光时间差只有一行读出时间运动物体鬼影、重影最轻仅需要少量行缓存DDR 开销远小于 2To1_FRAME两路 RAW 都是线性未压缩数据ISP 可以自由调节曝光比 RatioAE 必须分别配置 Long Exp/Gain、Short Exp/Gain 两组参数短板行交替会带来行间噪声差异容易出现水平横纹需要 ISP 做行均衡降噪。5. 2To1_FRAME 模式Sequential HDR帧交替双曝光5.1 工作时序输出一整帧完整长曝光 RAWLong Frame紧接着输出一整帧完整短曝光 RAWShort Frame循环往复长帧 → 短帧 → 长帧 → 短帧。两帧先后串行输出共用一路 MIPI可以用 FS/帧序号区分长短帧。5.2 模式特点长短帧是两张完整图像像素一一对应帧配准简单无行间横纹问题必须开启双帧帧缓存DDR 占用显著升高两帧采集存在一帧的时间差运动场景一定会出现 Ghost 重影有效输出帧率直接减半Sensor 输出 30fpsWDR 合成后只有 15fps同样输出两路线性 RAW无片内压缩AE 独立控制长短帧曝光比。补充OS08A20 本身没有原生 Sequential 帧交替模式2To1_FRAME 是靠驱动配置 Context 切换 组保持Group Hold时序软件模拟实现的并非硬件原生时序。6. 三种模式对比项目BUILT_IN2To1_LINEStaggered2To1_FRAMESequential融合位置Sensor 片内ISP 行间融合ISP 帧间融合RAW 数据非线性压缩 RAW两路线性 RAW两路线性 RAWMIPI 输出单路数据流双 VCVC0/VC1为主单路、帧序号区分时间差无片内同时采集仅一行时间整整一帧时间运动鬼影几乎无轻微严重缓存开销极小无需双路缓存仅行缓存双帧缓存DDR 开销大OS08A20 支持❌ 硬件不支持✅ 原生硬件支持⚠️ 软件时序模拟AE 参数仅一组曝光增益长短帧两套独立参数长短帧两套独立参数7. MIPI Lane 与 VCVCVirtual Channel 虚拟通道是 MIPI 协议逻辑标签不是物理线Lane 才是物理差分数据线二者互不冲突2To1_LINE 标准配置物理 Lane 只用 1 组2/4 lane逻辑上拆分 VC0长行、VC1短行一路物理 MIPI 承载两路逻辑数据流2To1_FRAME 不需要双 VC长帧、短帧先后分时输出在同一个 VC 下依靠帧起始 FS 和帧序号区分无 VC 模式不是关闭 VC 字段而是长短两路复用同一个 VC 编号只能依靠行计数/Dummy Line 做软件切分。8. OS08A20 对应关系核心修正项OS08A20 硬件只具备2-exposure Staggered HDR行间交替双曝光无内置 WDR 融合压缩功能对应关系严格如下OS08A20 HDR 工作模式数据输出形态海思 WDR 模式映射硬件原生性Staggered HDR行间交替长短行交替支持 VC0/VC1 双路输出OT_WDR_MODE_2To1_LINE✅ 硬件原生支持首选方案Sequential HDR帧交替整长帧 整短帧先后输出OT_WDR_MODE_2To1_FRAME⚠️ 仅能通过 Context 切换 Group Hold 软件模拟非原生时序Built-in WDR 片内合成单路压缩合成 RAWOT_WDR_MODE_BUILT_IN❌硬件不支持无法启用重要结论OS08A20 工程上只能跑 2To1_LINE2To1_FRAME 为软件模拟方案BUILT_IN 模式直接不可用。9. 常见误区逐条修正误区 1VC 是物理 Lane❌ 错误。VC 是 MIPI 协议的逻辑通道标签Lane 是物理差分线一路物理 MIPI 可以承载多个 VC 数据流。误区 2Staggered HDR 只输出一帧交织图像❌ 不准确。Sensor 输出交织行但 MIPI 通过 VC0/VC1 拆分成两路独立 RAW 流VI 接收后先拆成长行、短行两路数据再送入 ISP 做行间融合不是单帧数据。误区 3无 VC 模式就不带 VC 字段❌ 错误。无 VC 模式只是长短两路共用同一个 VC 编号MIPI 包依然携带 VC 字段只是不再依靠 VC 区分长短曝光改用行号、Dummy Line 软件切分。误区 4BUILT_IN 模式下 ISP 不用配置曝光寄存器✅ 正确。ISP 依然负责 AE 闭环依然要下发曝光与增益只是只下发一组参数不需要区分长短帧同时必须配置 Expander 解压曲线。误区 52To1_FRAME 和 2To1_LINE 只是名字区别❌ 错误2To1_LINE行间采集时间差极小行缓存鬼影轻微OS08A20 原生硬件2To1_FRAME帧间采集时间差一整帧双帧缓存运动重影严重OS08A20 只能软件模拟时序。误区 6OS08A20 可以直接开启 BUILT_IN 模式❌ 错误。OS08A20 没有片内 WDR 融合 PWL 压缩电路硬件原生不支持 BUILT_IN 模式无法配置该模式运行不要在 SDK 里尝试开启。误区 72To1 模式下 Sensor 输出是非线性 HDR RAW❌ 错误。2To1_LINE / 2To1_FRAME 都属于 HDR 采集模式但长短帧每一组曝光都是线性 12bit RAWSensor 不做任何压缩所有融合与非线性映射都交给 ISP 处理。10. 工程检查清单10.1 2To1_LINEStaggered HDR正式项目首选Sensor 寄存器配置为 Staggered 2-exposure HDR关闭帧交替时序开启 MIPI 双 VC 输出长行 → VC0短行 → VC1VI 配置双路 RAW 接收绑定 VC0/VC1 分别对应长帧、短帧数据流ISP WDR 模式选择OT_WDR_MODE_2To1_LINE开启行间融合AE 配置双路曝光分别设置 Long Exp/Gain、Short Exp/Gain配置曝光比 Ratio校验长短行对齐、行时序无错位避免出现水平横纹若启用无 VC 单通道模式提前调试 Dummy Line 与行计数切分逻辑。10.2 2To1_FRAME仅测试场景不推荐量产驱动配置 Context 切换 Group Hold软件模拟长帧 → 短帧交替时序配置 FS 帧标记让 VI 能够识别当前帧是长帧还是短帧VI 开启双帧乒乓缓存满足帧间融合的数据缓存需求ISP 选择OT_WDR_MODE_2To1_FRAME开启帧间配准与融合提前评估运动鬼影风险必须做运动检测与鬼影抑制AE 依然分开控制长短帧两套曝光与增益。10.3 BUILT_IN 模式OS08A20 直接跳过无需调试本条直接备注OS08A20 硬件不支持片内合成压缩禁止配置该模式无需调试 Expander 模块。11. 一句话总结BUILT_INSensor 片内融合 压缩输出ISP 仅做解压OS08A20 硬件不支持无法使用2To1_LINEStaggeredOS08A20 原生硬件方案长短曝光行交替输出依靠 VC0/VC1 拆分两路线性 RAWISP 行间融合运动鬼影最轻是量产首选2To1_FRAMESequential靠驱动时序模拟整帧交替输出必须双帧缓存运动重影严重仅适合静态场景测试所有 2To1 类 WDR 模式Sensor 输出都是两路独立线性 RAW片内无压缩长短帧曝光比完全由 ISP AE 自由控制。