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 与 VC
- OS08A20 对应关系(核心修正项)
- 常见误区(逐条修正)
- 工程检查清单
- 一句话总结
1. 三种 WDR 模式总览
海思平台 MPP 定义的 3 种 WDR 模式:
| 模式 | 合成位置 | Sensor 输出 | 平台角色 |
|---|---|---|---|
OT_WDR_MODE_BUILT_IN | Sensor 内部完成 WDR 融合 + 非线性压缩 | 单路压缩后的合成 RAW(非线性格式) | ISP 仅做 Expander 解压,不参与长短帧合成 |
OT_WDR_MODE_2To1_LINE | 海思 ISP 行间合成 | 行交替长曝光行/短曝光行,分两路 RAW(VC0/VC1) | VI 拆分两路行数据,ISP 做行间 2To1 融合 |
OT_WDR_MODE_2To1_FRAME | 海思 ISP 帧间合成 | 完整长帧 RAW、完整短帧 RAW 先后串行输出 | VI 缓存两帧图像,ISP 做帧间 2To1 融合,占用双帧 Buffer |
一句话精简:
- BUILT_IN:Sensor 合成 + 压缩,ISP 只负责解压,无多帧融合动作。
- 2To1_LINE:长短曝光行交错输出,ISP 行间融合,运动鬼影最轻。
- 2To1_FRAME:长短整帧先后输出,ISP 帧间融合,必须双帧缓存。
2. 基本概念
2.1 WDR 宽动态
通过两组独立曝光采集:
- 长曝光 Long:拉高暗部信噪比,高光易饱和;
- 短曝光 Short:保住亮部不溢出,暗部噪声大;
后端将两路线性 RAW 合并为一帧宽动态画面。
2.2 两大采集架构
- Sensor 端融合(BUILT_IN):片内完成长短帧合并 + PWL 非线性压缩,输出单路压缩 RAW;
- ISP 端融合(2To1_LINE / 2To1_FRAME):Sensor 只输出两路独立线性 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 HDR,OS08A20 原生首选)
4.1 工作时序
Sensor 逐行交替曝光:奇数行 = 长曝光,偶数行 = 短曝光;
一行 Long、一行 Short 循环读出,输出两路独立 RAW 数据流。
4.2 两种输出方案(修正原文误区)
- 双 VC 模式(主流方案)
长行数据走 VC0,短行数据走 VC1;MIPI 一进两路逻辑流,VI 直接拆分 VC0/VC1 得到两路行数据,无需软件逐行解析。 - 单 VC 无虚拟通道模式
长短行共用同一个 VC,依靠 Dummy Line + 行计数区分长行/短行,由 VI 软件逐行切割两路数据;兼容性弱,只在 VC 资源不足时使用。
4.3 模式特点
- 长短曝光时间差只有一行读出时间,运动物体鬼影、重影最轻;
- 仅需要少量行缓存,DDR 开销远小于 2To1_FRAME;
- 两路 RAW 都是线性未压缩数据,ISP 可以自由调节曝光比 Ratio;
- AE 必须分别配置 Long Exp/Gain、Short Exp/Gain 两组参数;
- 短板:行交替会带来行间噪声差异,容易出现水平横纹,需要 ISP 做行均衡降噪。
5. 2To1_FRAME 模式(Sequential HDR,帧交替双曝光)
5.1 工作时序
- 输出一整帧完整长曝光 RAW(Long Frame);
- 紧接着输出一整帧完整短曝光 RAW(Short Frame);
- 循环往复:长帧 → 短帧 → 长帧 → 短帧。
两帧先后串行输出,共用一路 MIPI,可以用 FS/帧序号区分长短帧。
5.2 模式特点
- 长短帧是两张完整图像,像素一一对应,帧配准简单;无行间横纹问题;
- 必须开启双帧帧缓存,DDR 占用显著升高;
- 两帧采集存在一帧的时间差,运动场景一定会出现 Ghost 重影;
- 有效输出帧率直接减半:Sensor 输出 30fps,WDR 合成后只有 15fps;
- 同样输出两路线性 RAW,无片内压缩,AE 独立控制长短帧曝光比。
补充:OS08A20 本身没有原生 Sequential 帧交替模式;2To1_FRAME 是靠驱动配置 Context 切换 + 组保持(Group Hold)时序,软件模拟实现的,并非硬件原生时序。
6. 三种模式对比
| 项目 | BUILT_IN | 2To1_LINE(Staggered) | 2To1_FRAME(Sequential) |
|---|---|---|---|
| 融合位置 | Sensor 片内 | ISP 行间融合 | ISP 帧间融合 |
| RAW 数据 | 非线性压缩 RAW | 两路线性 RAW | 两路线性 RAW |
| MIPI 输出 | 单路数据流 | 双 VC(VC0/VC1)为主 | 单路、帧序号区分 |
| 时间差 | 无(片内同时采集) | 仅一行时间 | 整整一帧时间 |
| 运动鬼影 | 几乎无 | 轻微 | 严重 |
| 缓存开销 | 极小,无需双路缓存 | 仅行缓存 | 双帧缓存,DDR 开销大 |
| OS08A20 支持 | ❌ 硬件不支持 | ✅ 原生硬件支持 | ⚠️ 软件时序模拟 |
| AE 参数 | 仅一组曝光增益 | 长短帧两套独立参数 | 长短帧两套独立参数 |
7. MIPI Lane 与 VC
- VC(Virtual 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 片内合成 | 单路压缩合成 RAW | OT_WDR_MODE_BUILT_IN | ❌硬件不支持,无法启用 |
重要结论:OS08A20 工程上只能跑 2To1_LINE,2To1_FRAME 为软件模拟方案,BUILT_IN 模式直接不可用。
9. 常见误区(逐条修正)
误区 1:VC 是物理 Lane
❌ 错误。VC 是 MIPI 协议的逻辑通道标签,Lane 是物理差分线;一路物理 MIPI 可以承载多个 VC 数据流。
误区 2:Staggered HDR 只输出一帧交织图像
❌ 不准确。Sensor 输出交织行,但 MIPI 通过 VC0/VC1 拆分成两路独立 RAW 流;VI 接收后先拆成长行、短行两路数据,再送入 ISP 做行间融合,不是单帧数据。
误区 3:无 VC 模式就不带 VC 字段
❌ 错误。无 VC 模式只是长短两路共用同一个 VC 编号,MIPI 包依然携带 VC 字段;只是不再依靠 VC 区分长短曝光,改用行号、Dummy Line 软件切分。
误区 4:BUILT_IN 模式下 ISP 不用配置曝光寄存器
✅ 正确。ISP 依然负责 AE 闭环,依然要下发曝光与增益,只是只下发一组参数,不需要区分长短帧;同时必须配置 Expander 解压曲线。
误区 5:2To1_FRAME 和 2To1_LINE 只是名字区别
❌ 错误:
- 2To1_LINE:行间采集,时间差极小,行缓存,鬼影轻微;OS08A20 原生硬件;
- 2To1_FRAME:帧间采集,时间差一整帧,双帧缓存,运动重影严重;OS08A20 只能软件模拟时序。
误区 6:OS08A20 可以直接开启 BUILT_IN 模式
❌ 错误。OS08A20 没有片内 WDR 融合 + PWL 压缩电路,硬件原生不支持 BUILT_IN 模式,无法配置该模式运行,不要在 SDK 里尝试开启。
误区 7:2To1 模式下 Sensor 输出是非线性 HDR RAW
❌ 错误。2To1_LINE / 2To1_FRAME 都属于 HDR 采集模式,但长短帧每一组曝光都是线性 12bit RAW,Sensor 不做任何压缩,所有融合与非线性映射都交给 ISP 处理。
10. 工程检查清单
10.1 2To1_LINE(Staggered HDR,正式项目首选)
- Sensor 寄存器配置为 Staggered 2-exposure HDR,关闭帧交替时序;
- 开启 MIPI 双 VC 输出:长行 → VC0,短行 → VC1;
- VI 配置双路 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_IN:Sensor 片内融合 + 压缩输出,ISP 仅做解压,OS08A20 硬件不支持,无法使用;
- 2To1_LINE(Staggered):OS08A20 原生硬件方案,长短曝光行交替输出,依靠 VC0/VC1 拆分两路线性 RAW,ISP 行间融合,运动鬼影最轻,是量产首选;
- 2To1_FRAME(Sequential):靠驱动时序模拟整帧交替输出,必须双帧缓存,运动重影严重,仅适合静态场景测试;
- 所有 2To1 类 WDR 模式,Sensor 输出都是两路独立线性 RAW,片内无压缩,长短帧曝光比完全由 ISP AE 自由控制。