主流 HDR 标准解析:HDR10、HDR10+、Dolby Vision、HLG 标准对比与选型
做 HDR 实时处理,第一个绕不开的问题就是:你到底该支持哪个标准?
说实话,我刚入行那会儿也被这几个名字搞晕过。HDR10、HDR10+、Dolby Vision、HLG……每个都号称自己是「下一代影像标准」,但背后的技术路线、授权方式、应用场景完全不同。选错了,轻则兼容性翻车,重则整个编码流水线要重写。
这一章,我把这四个主流标准掰开揉碎讲清楚。不扯玄学,只讲你在编码器里真正需要关心的东西。
1. 四个标准,一张表说清
先看个总览。我习惯把技术参数列成表,一眼就能看出差异在哪。
| 特性 | HDR10 | HDR10+ | Dolby Vision | HLG |
|---|---|---|---|---|
| 元数据 | 静态(SMPTE ST 2086) | 动态(每帧/场景) | 动态(每帧/场景) | 无(基于场景光) |
| 色深 | 10-bit | 10-bit | 12-bit(可降级10-bit) | 10-bit |
| 峰值亮度 | 最高 10,000 cd/m² | 最高 10,000 cd/m² | 最高 10,000 cd/m² | 最高 1,000 cd/m²(典型) |
| 色彩空间 | BT.2020 | BT.2020 | BT.2020(更广色域映射) | BT.2020 |
| 传输函数 | PQ(SMPTE ST 2084) | PQ | PQ | HLG(混合对数伽马) |
| 授权费用 | 免费 | 免费(需注册) | 收费(每台设备) | 免费 |
| 典型场景 | 流媒体、蓝光、入门HDR | 三星电视、部分流媒体 | 高端影院、Apple、Netflix | 广电直播、体育赛事 |
嗯,这里要注意:HLG 的传输函数和 PQ 完全不同。PQ 是亮度映射,HLG 是相对亮度映射。这个差异直接决定了你的编码器 Tone Mapping 策略。
2. 逐个拆解:每个标准到底在干什么?
2.1 HDR10 —— 最基础的「保底」标准
HDR10 是所有 HDR 标准的起点。说白了,它就是一份「最低配置要求」:10-bit 色深、BT.2020 色彩空间、PQ 曲线,再加上一组静态元数据。
静态元数据是什么意思?就是整部影片只用一组亮度参数(MaxFALL、MaxCLL)。你想想看,一部电影里既有暗夜场景又有烈日暴晒,用同一组参数去映射,肯定会有场景过曝或欠曝。
我个人习惯:如果项目预算有限,或者目标设备是入门级 HDR 电视,直接用 HDR10 就够了。兼容性最好,所有 HDR 设备都支持。
2.2 HDR10+ —— 三星的「动态元数据」反击
HDR10+ 本质上就是 HDR10 加上动态元数据。每帧或每个场景可以独立传递亮度映射参数。三星推这个标准,说白了就是为了绕开 Dolby Vision 的授权费。
动态元数据的好处很明显:暗场景可以保留更多细节,亮场景不会过曝。但代价是编码复杂度上升,而且需要编码器在实时处理时动态计算 Tone Mapping 曲线。
我在项目中遇到过:用 x265 编码 HDR10+ 时,动态元数据的注入需要额外处理 SEI NAL 单元。如果封装工具不支持,元数据会被直接丢弃,降级成普通 HDR10。
# HDR10+ 动态元数据注入示例(x265 参数)
--hdr10-opt --hdr10-plus /path/to/dynamic_metadata.json
# 注意:json 文件需要按场景提前生成,实时编码时需预分析
2.3 Dolby Vision —— 画质天花板,但门槛也最高
Dolby Vision 是目前画质上限最高的标准。12-bit 色深、动态元数据、更灵活的色域映射,再加上 Dolby 自家的 CM(Color Mapping)和 Trim Passes 机制。
但代价是什么?授权费。每台设备都要交钱。而且 Dolby Vision 的编码流程比 HDR10+ 复杂得多:你需要生成多个 Trim Passes(针对不同亮度显示设备的优化版本),编码器要同时输出 Dolby Vision 元数据和 HDR10 兼容层。
你想想看:一个实时编码流水线,既要处理 12-bit 源数据,又要同时生成 10-bit 兼容流,还要动态计算 Trim Passes……这复杂度不是开玩笑的。
2.4 HLG —— 广电系统的「原生」HDR
HLG 和其他三个标准完全不同。它不需要元数据,也不需要亮度映射。它的传输函数是混合的:下半段是伽马曲线(兼容 SDR),上半段是对数曲线(处理高光)。
这意味着什么?HLG 信号可以直接在 SDR 显示器上显示(虽然高光部分会裁切),不需要 Tone Mapping。这对广电直播来说是巨大的优势——你不需要在编码器里做复杂的亮度映射,直接编码发送就行。
我记得有一次帮一个电视台做 HDR 直播方案,他们要求同时兼容 SDR 和 HDR 接收端。HLG 几乎是唯一的选择。如果用 PQ 曲线,必须做实时 Tone Mapping,延迟会增加 2-3 帧。
3. 核心逻辑:一张图看懂选型
下面这张图是我自己总结的选型逻辑。每次做新项目,我都会先跑一遍这个流程。
4. 实时编码中的关键差异
在实时编码场景下,这几个标准对编码器的压力完全不同。我列几个你一定会遇到的坑:
- Tone Mapping 策略:HDR10 只需要做一次静态映射;HDR10+ 和 Dolby Vision 需要每帧或每场景重新计算映射曲线,CPU 开销翻倍。
- 元数据注入:HDR10 的元数据在编码器参数里设一次就行;HDR10+ 需要外部 JSON 文件或实时分析;Dolby Vision 需要专门的 SDK。
- 兼容层:Dolby Vision 必须同时输出 HDR10 兼容流(Profile 5 是单层兼容,Profile 8 是双层)。这意味着编码器要同时跑两条流水线。
- 延迟控制:HLG 不需要 Tone Mapping,延迟最低(1-2 帧)。Dolby Vision 的 Trim Passes 计算可能引入 5 帧以上延迟。
5. 选型总结:什么时候该用什么?
最后给个简单粗暴的结论:
- 广电直播、体育赛事、新闻 → HLG。别犹豫,这是唯一能同时兼容 SDR 和 HDR 接收端的方案。
- 流媒体点播、OTT 平台 → HDR10 保底 + Dolby Vision 高端。HDR10 保证所有设备能看,Dolby Vision 给旗舰设备提供最佳画质。
- 三星电视生态、部分流媒体 → HDR10+。如果你知道目标设备是三星电视,HDR10+ 是加分项。
- 蓝光、本地播放 → HDR10 是强制标准,Dolby Vision 是可选增强。