主流 HDR 标准解析:HDR10、HDR10+、Dolby Vision、HLG 标准对比与选型

做 HDR 实时处理,第一个绕不开的问题就是:你到底该支持哪个标准?

说实话,我刚入行那会儿也被这几个名字搞晕过。HDR10、HDR10+、Dolby Vision、HLG……每个都号称自己是「下一代影像标准」,但背后的技术路线、授权方式、应用场景完全不同。选错了,轻则兼容性翻车,重则整个编码流水线要重写。

这一章,我把这四个主流标准掰开揉碎讲清楚。不扯玄学,只讲你在编码器里真正需要关心的东西。

核心观点:没有「最好」的标准,只有「最合适」的场景。HDR10 是保底选项,Dolby Vision 是画质天花板,HLG 是广电亲儿子,HDR10+ 是三星的「中间路线」。

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 设备都支持。

避坑指南:我曾经在一个流媒体项目里,为了省带宽把 HDR10 的 MaxFALL 设得太低,结果暗场景细节全丢了。后来学乖了:静态元数据宁高勿低,至少保证最亮场景不裁切。

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……这复杂度不是开玩笑的。

注意:Dolby Vision 的 Profile 5(单层)和 Profile 8(双层)在编码器实现上完全不同。Profile 5 是 IP 流常用,Profile 8 是蓝光常用。选错了 Profile,解码端直接黑屏。

2.4 HLG —— 广电系统的「原生」HDR

HLG 和其他三个标准完全不同。它不需要元数据,也不需要亮度映射。它的传输函数是混合的:下半段是伽马曲线(兼容 SDR),上半段是对数曲线(处理高光)。

这意味着什么?HLG 信号可以直接在 SDR 显示器上显示(虽然高光部分会裁切),不需要 Tone Mapping。这对广电直播来说是巨大的优势——你不需要在编码器里做复杂的亮度映射,直接编码发送就行。

我记得有一次帮一个电视台做 HDR 直播方案,他们要求同时兼容 SDR 和 HDR 接收端。HLG 几乎是唯一的选择。如果用 PQ 曲线,必须做实时 Tone Mapping,延迟会增加 2-3 帧。

3. 核心逻辑:一张图看懂选型

下面这张图是我自己总结的选型逻辑。每次做新项目,我都会先跑一遍这个流程。

HDR 标准选型决策流程 输入:源内容与目标场景 广电直播 / 体育赛事? 流媒体 / 点播 / 蓝光? 选 HLG 无需元数据,兼容SDR 编码延迟最低 预算充足?追求画质? 是 → Dolby Vision 12-bit,动态元数据 需授权费,编码复杂 否 → HDR10 或 HDR10+ HDR10:免费,兼容最广 HDR10+:动态元数据,免费 选型建议 • 广电/直播:HLG 是唯一合理选择,兼容性最好,延迟最低 • 流媒体/点播:HDR10 保底,预算够上 Dolby Vision • 三星电视生态:HDR10+ 是加分项,但不要作为唯一标准

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 帧以上延迟。
我的经验:如果你做的是实时直播编码器,优先支持 HLG 和 HDR10。动态元数据标准(HDR10+、Dolby Vision)更适合点播场景,因为你可以用预分析来生成元数据,不用实时计算。

5. 选型总结:什么时候该用什么?

最后给个简单粗暴的结论:

  • 广电直播、体育赛事、新闻 → HLG。别犹豫,这是唯一能同时兼容 SDR 和 HDR 接收端的方案。
  • 流媒体点播、OTT 平台 → HDR10 保底 + Dolby Vision 高端。HDR10 保证所有设备能看,Dolby Vision 给旗舰设备提供最佳画质。
  • 三星电视生态、部分流媒体 → HDR10+。如果你知道目标设备是三星电视,HDR10+ 是加分项。
  • 蓝光、本地播放 → HDR10 是强制标准,Dolby Vision 是可选增强。