第二章:HDR视频流水线总览

各位同学,今天我们来聊聊HDR视频流水线的全貌。说实话,这个主题我讲了不下二十次,但每次都有新感悟。从传感器到显示器,这条链路比你想象的要长得多。

2.1 从传感器到显示器的完整链路

先看一张整体架构图,我亲手画的,希望能帮你建立全局观。

HDR视频流水线:从传感器到显示器 图像传感器 RAW数据输出 12-14bit ISP处理 去马赛克 白平衡·降噪 线性RGB HDR合成 多帧融合 高动态范围 HDR RGB Tone Mapping 色调映射 动态范围压缩 SDR输出 ↓ 编码传输 ↓ 解码接收 Inverse TMO 逆色调映射 恢复HDR信息 HDR恢复 色域映射 BT.2020↔BT.709 色彩空间转换 色域匹配 显示器 HDR/SDR显示 亮度·对比度 最终呈现 上行:采集端流水线 | 下行:显示端流水线

这张图我画了好几个版本,最终选了这种上下分层的布局。上面是采集端,下面是显示端。中间是编码传输,但这不是我们今天的重点。

核心要点:HDR流水线不是单向的。采集端做一次Tone Mapping是为了编码传输,显示端再做一次Inverse TMO是为了还原。这两次映射必须匹配,否则画质会崩。

2.2 ISP与HDR的关系

ISP(图像信号处理器)是HDR流水线的起点。很多人以为HDR只是后期处理,其实不然。ISP的质量直接决定了HDR的天花板。

我在项目中遇到过一件事:某款芯片的ISP只有10bit精度,结果HDR合成后暗部全是噪点。后来换了12bit的ISP,效果立竿见影。嗯,这里要注意,ISP的位深是HDR的基础。

ISP在HDR流水线中承担的角色:

  • RAW域处理:去马赛克、黑电平校正、镜头阴影校正。这些必须在HDR合成之前完成。
  • 线性化:传感器输出是线性的,但人眼感知是非线性的。ISP要保证数据在线性域处理。
  • 多帧对齐:HDR合成需要多帧图像,ISP要提供亚像素级别的对齐精度。

我的经验:ISP的降噪强度要谨慎。降噪太狠会抹掉HDR的细节纹理,降噪不够又会让暗部噪点爆炸。我一般建议在ISP阶段只做轻度降噪,把重度降噪留给Tone Mapping之后。

2.3 HDR流水线关键模块

好,接下来我们深入三个核心模块。这三个模块我称之为「HDR三剑客」,缺一不可。

2.3.1 Tone Mapping(色调映射)

Tone Mapping说白了就是把高动态范围压缩到低动态范围。比如传感器能拍出0.0001到10000 nit的场景,但显示器只能显示0.1到1000 nit。怎么办?压缩。

常见的Tone Mapping算法:

算法 特点 适用场景
Reinhard 全局映射,简单高效 实时视频处理
Filmic 模拟胶片响应曲线 电影级画质
ACES 工业标准,色彩准确 专业影视制作
Local Tone Mapping 保留局部对比度 高对比度场景

我个人习惯用Filmic曲线。为什么?因为它对暗部和高光的处理比较自然。Reinhard虽然快,但高光容易过曝。ACES太复杂,芯片面积扛不住。

避坑指南:我曾经在某个项目中用了全局Tone Mapping,结果画面暗部一片死黑。后来改成局部映射,暗部细节全回来了。但局部映射的计算量是全局的5倍,芯片面积要提前规划。

2.3.2 Color Gamut Mapping(色域映射)

色域映射解决的是色彩空间不匹配的问题。传感器采集的是BT.2020色域,但很多显示器只支持BT.709。你想想看,如果不做映射,颜色会偏成什么样?

色域映射的两种策略:

  • 裁剪法:超出目标色域的颜色直接裁掉。简单粗暴,但会丢失色彩细节。
  • 压缩法:把整个色域按比例压缩到目标色域内。保留色彩关系,但饱和度会降低。

我建议用压缩法。裁剪法虽然省资源,但画面会出现色块断层。压缩法更平滑,视觉体验更好。

2.3.3 Inverse TMO(逆色调映射)

Inverse TMO是Tone Mapping的逆过程。显示端收到SDR信号后,要把它还原成HDR信号。这听起来简单,但实际很难。

为什么难?因为Tone Mapping是有损压缩。压缩的时候丢掉了信息,还原的时候只能靠猜。比如一个像素被压缩成了128灰阶,它原本是1000 nit还是500 nit?不知道。

常见的Inverse TMO方法:

  1. 线性扩展:直接乘以一个系数。简单,但效果差。
  2. 基于统计的恢复:利用图像统计信息估算原始亮度。效果中等。
  3. 基于学习的恢复:用神经网络预测丢失的信息。效果好,但芯片面积大。

关键点:Inverse TMO的质量取决于Tone Mapping时保留了多少元数据。如果编码时传了亮度分布直方图,恢复效果会好很多。这就是为什么HDR10+和Dolby Vision要带动态元数据。

好了,这一章的内容就到这里。HDR流水线是个系统工程,每个模块都环环相扣。下一章我们会深入Tone Mapping的数学原理,到时候我会带你们手撕代码。


公众号:蓝海资料掘金营,微信deep3321