HDR多曝光融合RTL设计与硬件验证实战 - 第1节

一、HDR 到底是什么?

说实话,我第一次接触 HDR 这个概念时,也以为是什么玄学。后来做图像处理芯片做多了,才明白——HDR 说白了就是「让亮的地方更亮,暗的地方更暗,同时细节还不丢」。

我们平时看到的普通画面,叫 SDR(标准动态范围)。它就像一个老式窗户,窗外阳光刺眼,屋里暗处却啥也看不清。HDR 呢,相当于把这扇窗户换成了全景落地窗——阳光进来了,阴影里的纹理也看得清清楚楚。

1.1 HDR vs SDR:一张表说清楚

对比项 SDR(标准动态范围) HDR(高动态范围)
峰值亮度 约 100 cd/m²(nit) 1000~10000 nit
色深 8-bit(256 级) 10-bit 或 12-bit(1024~4096 级)
色彩空间 sRGB / Rec.709 Rec.2020 / DCI-P3
动态范围 约 6 档光圈 10~20 档光圈
典型应用 普通电视、网页、旧手机 4K 蓝光、高端显示器、手机 HDR 模式

关键点:HDR 不是「更亮」这么简单。它是亮度范围、色深、色彩空间三者的同步升级。缺一个,都不算真 HDR。

二、色彩空间:sRGB/Rec.709 vs Rec.2020

做 RTL 设计时,我经常要处理色彩空间转换。很多同学觉得这是软件的事,其实不然——硬件里做色彩矩阵乘法,延迟和精度都得抠得很细。

2.1 什么是色彩空间?

色彩空间就是「颜色的坐标系」。sRGB 和 Rec.709 基本是同一个东西,覆盖了人眼能看到的约 35% 的颜色。Rec.2020 则覆盖了约 76%。

你想想看,如果摄像头拍的是 Rec.2020 的广色域画面,但显示端只支持 sRGB,那颜色就会被「压缩」——原本鲜艳的红色会变得暗淡,蓝色会偏紫。这就是色彩空间不匹配的问题。

2.2 三个核心色彩空间对比

色彩空间 色域覆盖 典型用途 白点
sRGB 约 35% CIE 1931 网页、普通显示器 D65
Rec.709 与 sRGB 基本相同 HDTV、蓝光 D65
Rec.2020 约 76% CIE 1931 UHDTV、HDR 视频 D65

我的经验:在 RTL 里做色彩空间转换时,我习惯用定点数 + 查表法。矩阵系数用 16-bit 精度,查表用 256 项 LUT,这样面积和延迟都能控住。纯浮点乘法在 FPGA 上太贵了。

三、亮度范围与动态范围概念

这两个词经常被混用,但在我做 HDR 合成芯片时,它们是完全不同的两个指标。

3.1 亮度范围

亮度范围就是「最亮处」除以「最暗处」的比值。比如一个场景最亮 1000 nit,最暗 0.1 nit,那亮度范围就是 10000:1。

但注意——人眼对亮度的感知是非线性的。我们觉得「亮一倍」,实际物理亮度可能差了 10 倍。这就是为什么 HDR 要用 PQ(感知量化)曲线或 HLG 曲线来编码。

3.2 动态范围

动态范围通常用「档位(stops)」来表示。1 stop = 亮度翻倍或减半。SDR 大约 6 stops,HDR 可以到 20 stops。

举个例子:

  • 一个室内场景,窗外阳光明媚。SDR 拍出来,窗外一片死白,室内一片死黑。
  • HDR 拍出来,窗外云朵的纹理、室内桌面的木纹,全都能看清。

避坑指南:我曾经在一个项目中,把「亮度范围」和「动态范围」混为一谈,结果在 tone mapping 模块里用了错误的映射曲线。画面要么过曝,要么欠曝。后来花了整整两周才把参数调回来。记住:亮度范围是物理量,动态范围是感知量。

四、HDR 合成的核心流程

做 HDR 合成 RTL 设计,本质上就是做三件事:

  1. 多曝光图像输入——通常 3 张:欠曝、正常、过曝
  2. 对齐与融合——消除运动鬼影,合并成一张高动态图像
  3. Tone Mapping——把高动态范围压缩到显示设备能支持的范围内

下面这张图是我自己画的 HDR 合成流水线结构,你在做 RTL 架构时可以直接参考。

HDR 合成 RTL 流水线架构 HDR 合成 RTL 流水线架构 欠曝图像 正常图像 过曝图像 运动对齐 & 去鬼影 多曝光融合(加权) Tone Mapping 压缩 HDR 输出图像 注意: 对齐模块需要 运动估计 + 补偿

五、亮度编码:PQ vs HLG

HDR 图像不能直接用线性亮度存,因为人眼对暗部更敏感。所以需要一种「感知量化」的编码方式。

编码方式 全称 特点 适用场景
PQ Perceptual Quantizer 亮度映射,最大 10000 nit 流媒体、蓝光、HDR10
HLG Hybrid Log-Gamma 相对亮度,兼容 SDR 显示 广播电视、直播

我的建议:如果你做的是消费电子芯片(手机、电视),优先支持 PQ。如果是广播级设备,HLG 更实用。我当年做一款机顶盒芯片时,两个都做了,结果 HLG 的兼容性测试反而更麻烦。

六、本章小结

这一章我们聊了:

  • HDR 和 SDR 的本质区别——亮度、色深、色域三管齐下
  • 色彩空间 sRGB/Rec.709 与 Rec.2020 的差异——做转换时精度要够
  • 亮度范围 vs 动态范围——物理量和感知量,别搞混
  • HDR 合成流水线——对齐、融合、Tone Mapping 三步走
  • PQ 与 HLG 两种编码方式——看场景选