深入解析 HDR
本文将讨论 SDR 与 HDR 之间的区别,介绍几种主流 HDR 标准,并探讨它们如何识别和验证 H.264/AVC、H.265/HEVC、VP9 和 AV1。本文对于想要实现或识别 HDR 内容的 QA 工程师、应用开发人员、OEM 制造商和 SOC 设计人员将会有所帮助。
尽管 SDR(标准动态范围)格式存在诸多弊端且技术流程过时,但这种格式的视频内容在当今媒体市场上仍然占据着主导地位。HDR(高动态范围)格式才刚刚开始扩展其应用范围。
本文将讨论 SDR 与 HDR 之间的区别,介绍几种主流 HDR 标准,并探讨它们如何识别和验证 H.264/AVC、H.265/HEVC、VP9 和 AV1。本文对于想要实现或识别 HDR 内容的 QA 工程师、应用开发人员、OEM 制造商和 SOC 设计人员将会有所帮助。
HDR 与 SDR 之间的区别
色度参数
SDR 格式基于 ITU-R BT.709 建议书中所述的色度参数。它们只能覆盖 CEI 1931 系统中 35.9% 的人眼可见光谱(图 1)。相比之下,HDR 使用 ITU-R BT.2020 建议书中的色度参数,可覆盖 75.8% 的人眼可见光谱。
图 1. CEI 1931 系统的色彩空间。
色彩深度
SDR 的色彩深度为 8 位。虽然 SDR 并不禁止使用 10 位,但在实践中,绝大多数视频内容都以 8 位色彩深度进行压缩。这意味着每种原色(即红、绿、蓝)有 28(等于 256)个可能的值,即总数为 256x256x256 = 16,777,216 种颜色。这是一个很大的数字,但人眼能够察觉到的颜色更多,因此在实际情况中,人眼可以区分 SDR 视频中的混叠过渡(图 2)。这种现象在天空等渐变背景场景中尤为明显。 图 2. 8 位和 10 位的色彩深度。
图 2. 8 位和 10 位的色彩深度。
HDR 中的最小色彩深度为 10 位:每种原色有 1024 个可能的值,总共有 1,073,741,824 种颜色,是 SDR 的 64 倍。此类图像更接近现实,然而在某些情况下,人眼仍然能够察觉到颜色过渡中的混叠现象。
亮度
人眼的构造不仅可以区分颜色分量,还可以区分亮度分量,并且对后者的感知更为强烈。SDR 的亮度限制为 100 cd/m2 ,而 HDR 标准理论上可达到 10,000 cd/m2.
在实际情况中,中等价位的支持 HDR 的显示器通常声称亮度为 1,000 cd/m2,而更高价位的此类显示器则可提供高达 4,000 cd/m2, 的亮度,但只适用于某些场景和短暂的时间。
HDR 标准
值得一提的是,术语 HDR 是一个总称,因为市场上有几种来自不同供应商的 HDR 实现标准。其中四种 HDR 标准使用最为广泛:HDR10、HLG、HDR10+ 和 Dolby Vision。图 3.1 和 3.2 显示了支持 HDR 的电视制造商的品牌,图 4 显示了目前支持 HDR 的流媒体服务。
图 3.1. 美国的 HDR 电视品牌。
图 3.2. 欧洲的 HDR 电视品牌
图 4. 支持 HDR 的流媒体服务
要想播放 HDR 内容,我们不仅需要有根据相关标准正确制作的内容,还要有支持 HDR 的解码器和显示器。
借助 StreamEye 您可以在基本视频流级别上检查参数,而使用 Stream Analyzer 码流分析工具,则可以同时在基本视频流和媒体容器级别上验证文件的参数。即将发布的 Boro 将帮助识别 HDR 格式并为实时视频流呈现其元数据。
HDR10
HDR10 标准于 2014 年问世,并凭借易用性和免许可费获得了广泛认可。该标准描述的视频内容符合 UHDTV ITU-R BT.2020 建议书中的建议:
分辨率 | 高达 7680 × 4320 (8K) 像素 |
宽高比 | 16:9 |
像素比 | 1:1 |
扫描方式 | 逐行扫描 |
帧率 (fps) | 高达 120 |
色彩深度 | 10–12 位 |
色度参数 | BT. 2020 |
亮度 | 在明亮场景中高达10 000 cd/m2 在黑暗场景中高达0.0001 cd/m2 |
HDR10 基于 PQ EOTF 转换函数,这也是此类视频内容与 SDR 显示器不兼容的原因。 此外,HDR10 只有一层视频内容。
该标准采用静态元数据,并将其应用于整个视频序列。 一方面,静态实现简化了实现过程。但另一方面,它没有考虑到静态和动态、明亮和黑暗场景对不同色调的需求,因此需要应用全局补偿方法。 由此可见,HDR10 无法完全传达作者的想法和构想。
HDR10 元数据包括母版显示色彩量和内容亮度水平信息。
母版显示色彩量是用于创建视频内容的各种显示参数,它们被视为参考参数。 在播放视频内容时,显示器将根据参考参数进行重新调整。
M母版显示色彩量描述了:
- Display_primaries — 三个主要色度分量的 X 和 Y 坐标;
- White_point — 白点的 X 和 Y 坐标;
- Max_display_mastering_luminance — 母版显示的标称最大亮度,单位为 0.0001 cd/m2;
- Min_display_mastering_luminance — 母版显示的标称最小亮度,单位为 0.0001 cd/m2.
内容亮度水平信息 — 图像的标称目标亮度水平上限值。 它包括:
- 内容亮度水平信息 (MaxCLL) — 表示最大像素亮度水平的上限,单位为 cd/m2;
- MMax_pic_average_light_level (MaxFALL) — 指定整帧最大平均亮度水平的上限,单位为 cd/m2.
在 H.264/AVC 和 H.265/HEVC 视频格式中,HDR10 元数据可以在两个级别上指定。
- 在基本视频流级别:IDR 访问块的相应 SEI 标头中。 图 5 显示了 HEVC 视频序列的 SEI 母版显示色彩量和内容亮度水平信息的示例:最大标称亮度为 1,000 cd/m2, 最小标称亮度为 0.05 cd/m2, MaxCLL 为 1,000 cd/m2, MaxFALL 为 400 cd/m2, 以及色度分量和白点的坐标。
- 在 MP4 媒体容器级别的 mdcv(母版显示色彩量)和 clli(内容亮度水平)数据盒中;
- 在 MKV/WebM 媒体容器级别:
图 5. SEI 信息:内容亮度水平和母版显示色彩量。
VP9 在媒体容器级别承载数据:
- MKV/WebM: SmDm(母版显示元数据)和 CoLL(内容亮度水平)(图 6);
- MP4:mdcv 和 clli 数据盒。
图 6. VP9 视频序列的母版元数据。
AV1 在以下级别承载元数据:
- 在基本视频流级别,并使用 OBU 语法 (metadata_hdr_mdcv and metadata_hdr_cll) 发送信号;
- 在 MP4 媒体容器级别:mdcv 和 clli 数据盒;
- 在 MKV/WebM 媒体容器级别:SmDm 和 CoLL 数据盒。
HLG
HLG 标准于 2015 年问世,也已获得广泛采用。 该标准描述的视频内容符合 BT.2020。
分辨率 | 高达 7680 × 4320 (8K) 像素 |
宽高比 | 16:9 |
像素比 | 1:1 |
扫描方式 | 逐行扫描 |
帧率 (fps) | 高达 120 |
色彩深度 | 10–12 位 |
色度参数 | BT.2020, BT.2021, BT.709 |
亮度 | 在明亮场景中高达1000 cd/m2 在黑暗场景中高达0.0001 cd/m2 |
与 HDR10 一样,HLG 也只有一层视频内容。 但与 HDR10 不同的是,HLG 没有元数据,因为它使用 HLG EOTF 混合对数函数,其曲线部分与 SDR 函数重合,部分与 HDR 重合(图 7)。 此类实现理论上允许在色度参数符合 BT.2020 的 PQ EOTF(HDR10、HDR10+、Dolby Vision)和 SDR 显示器上播放 HLG 格式的视频。就逼真程度而言,HLG 和 HDR10 一样,也无法完全传达作者的想法和构想。 由于 HLG EOTF 函数的特殊性,如果图像中含有饱和色的明亮区域,则 SDR 显示器上的色调变化可能会很明显。 通常,在具有镜面光斑的场景中可能观察到失真。
图 7.相对于 SDR 和 PQ HDR 的 HLG 曲线
HLG 视频流可以通过 transfer_characteristics 参数(值为 14 或 18)来识别。
对于 H.264/AVC 和 H.265/HEVC,该参数可以在以下位置指定:
- 在 MP4 媒体容器级别:avcc、hvcc 或 colr 数据盒中(图 8);
- 在 MKV/WebM 媒体容器级别:相应的 TrackEntry 视频和颜色数据盒中;
- 在基本视频流级别 SPS 标头 → VUI → video_signal_type_present_flag →colour_description_present_flag → Transfer_characteristics (图 8);
- 在基本视频流级别:IDR 访问块中的替代性转换特性 SEI 信息。 该信息包含参数 referred_transfer_characteristics = 18(图 9)。 如果 SEI、VUI 或媒体容器中的值存在差异,则优先考虑 SEI 值。
对于 VP9,该参数可以在媒体容器级别指定:
- MP4:vpcc 和 colr 数据盒中;
- MKV/WebM: 颜色数据盒。
对于 AV1,该参数可以在以下位置指定:
- 在基本视频流级别: OBU 序列标头 → color_config → if (color_description_present_flag) → Transfer_characteristics;
- 在 MP4 媒体容器级别的 av1c 和 colr 数据盒中;
- 在 MKV/WebM 媒体容器级别:相应的 TrackEntry 视频和颜色数据盒中。
图 8. MP4 媒体容器 AvcC 和 colr 数据盒中的部分 SPS VUI 参数。
图 9. 替代性转换特性 SEI 信息。
HDR10+
该标准描述的视频内容还符合 UHDTV BT.2020。
分辨率 | 高达 7680 × 4320 (8K) 像素 |
宽高比 | 16:9 |
像素比 | 1:1 |
扫描方式 | 逐行扫描 |
帧率 (fps) | 高达 120 |
色彩深度 | 10–16 位 |
色度参数 | BT. 2020 |
亮度 | 在明亮场景中高达 10,000 cd/m2 在黑暗场景中高达 0.0001 cd/m2 |
HDR10+ 使用 PQ EOTF 因此与 SDR 显示器不兼容。
与 HDR10 不同的是,HDR10+ 使用动态元数据,允许在母版制作过程中更高效地编辑每个场景,从而完整地传达作者的想法。 播放内容时,会按照与作者创建内容时相同的方式重新排列从场景到场景的显示内容。
HDR10+ 提供对 HDR10 的向后兼容性。 如果显示器不支持 HDR10+ 动态元数据,但支持 HDR10 静态元数据,并且此类数据存在于视频流或媒体容器中,则显示器可以播放 HDR10 视频序列。
对于 H.264/AVC 和 H.265/HEVC,动态元数据位于基本视频流级别的 SEI user_data_registered_itu_t_t35 中(图 10)。 在 VP9 中,元数据在 WebM 容器的 BlockAddID(ITU-T T.35 元数据)中指定。 在 AV1 中,元数据在 metadata_itut_t35 () OBU 语法中指定。
图 10. 动态元数据 HDR10+,SEI 信息。
Dolby Vision
这是由杜比公司开发和授权的最复杂的专有 HDR 标准。 该 HDR 标准规定在一个视频文件中可以同时使用两个视频层:基本层 (BL) 和增强层 (EL)。 事实上,由于同时存在两个视频层的视频文件体积庞大,并且很难制作和播放,因此这种应用极为少见。
Dolby Vision 有 5 个预定义的配置文件: 4、5、7、8(8.1 和 8.4)和 9。
支持的编解码器 | 最大分辨率 | 最大帧率 (fps) | 色彩深度 | 是否存在两层 | 色度参数 | 与其他 SDR/HDR 标准的兼容性 | 描述 | 是否存在 VUI 数据 | |
---|---|---|---|---|---|---|---|---|---|
配置文件 41 | H.265/Hevc Main 10 配置文件 | 3840х2160 | 60 | 10 位 | BL 和 EL | BT. 2020、BT.709 | BL 兼容 SDR (2) | 可选 (2,2,2) | |
配置文件 5 | H.265/Hevc Main 10 配置文件 | 7680х4320 | 120 | 10 位 | 否,仅 | BT. 2020 | 否 (0) | HLS 和 MPEG-DASH 平台 | 可选 (2,2,2) |
配置文件 7 | H.265/Hevc Main 10 配置文件 3840x2160 | 7680х4320 | 60 | 10 位 | BL 和 EL | BT. 2020 | (6) | 蓝光光盘 | 对于 EL 是必需的 (9,16,9) |
配置文件 8.1 | H.265/Hevc Main 10 配置文件 | 7680x4320 | 120 | 10 位 | 否,仅 | BT. 2020 | HDR10 (1) | HLS 和 MPEG-DASH 平台 | 必需 (9,16,9) |
配置文件 8.42 | H.265/Hevc Main 10 配置文件 | 否,仅 BL | BT.2020、BT.2100、BT.709 | HLG、 SDR (2、4) | HLS 和 MPEG-DASH 平台 | 可选 (9,18,9 或 9,14,9) | |||
配置文件 9 | H.264/AVC High 配置文件 | 1920x1080 | 60 | 8 位 | 否,仅 | BT. 709 | SDR (2) | MPEG-DASH p平台 | 可选 |
1 新的应用和服务提供商通常不支持配置文件 4。
2 配置文件 8.4 还处于标准化阶段。 最大亮度水平为 1000 cd/m2.。
配置文件 5、8、9 的 BL 和配置文件 4、7 的 EL 使用 PQ EOTF,因此它们与 SDR 显示器不兼容。 这些配置文件使用类似于 HDR10+ 元数据的动态元数据。 这允许在母版制作过程中对每个场景进行高效编辑,并准确传达作者的想法。 播放内容时会根据动态元数据重新调整从场景到场景的显示内容。
在 H.264/AVC 和 H.265/HEVC 视频格式中,Dolby Vision 动态元数据位于基本视频流级别:
- SEI user_data_registered_itu_t_t35 ST2094-10_data () 中;
- 在基本视频流级别的 NAL unit 62 中。
杜比公司标准化了 Dolby Vision 对 MPEG-2 传输流和 MP4 媒体容器的识别机制。 在 MPEG-2 TS 中,可根据 PMT 表中 DOVI 视频流描述符的内容来确定配置文件、级别、层数和兼容性。
与 SDR 或 HDR 兼容的 BL 层 | 与 SDR 或 HDR 不兼容的 BL 层 | 二级 Dolby Vision PID |
---|---|---|
PMT 表中的 stream_type 应为: | PMT 表中的 stream_type 必须等于 0x06 | PMT 表中的 stream_type 必须等于 0x06 |
bl_present_flag = 1 | bl_present_flag = 1 | bl_present_flag = 0 |
el_present_flag = 配置文件 | el_present_flag = 0 | el_present_flag 设置为 1 |
dv_bl_signal_compatibility_id 对应于 BL 信号兼容性 ID | dv_bl_signal_compatibility_id = 0x0 | dv_bl_signal_compatibility_id 对应于 BL 信号兼容性 ID |
为此,MP4 容器使用配置数据盒:dvcc(适用于低于或等于 7 的配置文件)、dvvc(适用于高于 7 但低于 10 的配置文件)、dvwc(适用于等于或高于 10 的配置文件 — 保留以供将来使用)。
此外,还使用以下数据盒之一:
- dvav, dvav、dva1、dvhe、dvh1、avc1、avc3、avc2、avc4、avc1、avc3、hev1 和 hvc1 用于解码器初始化;
- avcc 和 hvcc — 提供有关编码器配置的信息;
-
avce 和 hvce — 描述 EL,前提是存在第二视频层(配置文件 4 和 7)。
图 11. MP4 媒体容器的 Dolby Vision 配置数据盒。
HDR 标准概述
HDR 10 | HGL | HDR 10+ | Dolby Vision | |
---|---|---|---|---|
视频编解码器 | H.264/AVC、H.265/HEVC、VP9、AV1 | H.264/AVC、H.265/HEVC、VP9、AV1 | H.264/AVC、H.265/HEVC、VP9、AV1 | H.264/AVC、H.265/HEVC |
HDR 元数据类型 | 静态 | 不存在 | 动态 | 动态3 |
对 SDR/HDR 的向后兼容性 | 不存在 | SDR | HDR 10 | HDR10、HLG、SDR |
EOTF | PQ | HLG | PQ | PQ、HLG |
色度参数 | BT.2020 | BT.2020, BT. 2100、BT. 709 | BT.2020. | BT.2020. 2100、BT. 709 |
最大亮度水平 | 10,000 cd/m2 | 1,000 cd/m2 | 10,000 cd/m2 | 10,000 cd/m2 |
可能的媒体容器 | MP4、MKV/Webm、TS | MP4、MKV/Webm、TS | MP4、MKV/Webm、TS | MP4、TS |
3 动态:配置文件 4 (EL)、5、7、8.1、9。中不存在。
HDR 内容播放按如下步骤执行(图 12):
- 应用从 MP4、MKV/WebM、TS 等媒体容器中提取基本视频和 HDR 元数据(如果存在),然后将数据传输到解码器;
- 解码器解码视频序列并提取静态或动态 HDR 元数据,或从媒体容器中获取有关框架的静态 HDR 元数据;
- 解码器将解码后的帧和 HDR 元数据传输到显示器;
- 显示器输出图像。
HLG 没有元数据。 如果存在 2 个视频层(BL/EL — Dolby Vision 中的配置文件 4 或 7),提取器会提取它们,但应用可以决定选择哪一层和相应的解码器,具体取决于平台的功能。
图 12. HDR 内容播放的一般流程。HDR 视频流的验证通常可以分为几个阶段。
检查视频序列是否符合色度参数
- BT.2020/2100 和 EOTF 视频信号转换函数。 对于所有 4 种视频编解码器(H.264/AVC、H.265/HEVC、VP9、AV1),都采用标准化的相同参数集:
- colour_primaries — 表示根据 CIE 1931 指定的源原色的色度坐标
- transfer_characteristics — 表示源图片的参考光电转换特性函数
- matrix_coeffs — 描述了用于从绿、蓝、红或 Y、Z 和 X 原色推导出亮度和色度信号的矩阵系数
这些参数的位置如下:
对于 H.264/AVC 和 H.265/HEVC:
- 在基本视频流级别的 VUI 标头中: 序列参数集 → VUI → video_signal_type_present_flag → colour_description_present_flag(图 8);
- 在 MP4 媒体容器级别的 avcc、hvcc 或 colr 数据盒中(图 8);
- 在 MKV/WebM 媒体容器级别:相应的 TrackEntry 视频和颜色数据盒中。
对于 VP9:
- MP4:vpcc 和 colr 数据盒中;
- MKV/WebM:颜色数据盒。
对于 AV1:
- 在基本视频流级别的 OBU 序列标头 → color_config → if (color_description_present_flag) 中;
- 在 MP4 媒体容器级别的 av1c 和 colr 数据盒中;
- 在 MKV/WebM 媒体容器级别:相应的 TrackEntry 视频和颜色数据盒中。 box.
- 检查分辨率、宽高比、帧率、色彩深度、视频编解码器的合规性。
- HDR 元数据检查。
在本文中,我们汇总了与每种 HDR 格式最相关的信息。 文中描述的内容应有助于您快速深入了解 HDR 主题领域,识别、整合 HDR 内容并解决可能存在的问题。
借助 StreamEye 您可以在基本视频流级别上检查参数,而使用 Stream Analyzer 码流分析工具,则可以同时在基本视频流和媒体容器级别上验证文件的参数。
参考资料
- HDR Ecosystem Tracker fall 2020 年秋季更新,参见 HDR Ecosystem Tracker fall 2020 update - FlatpanelsHD
- Recommendation ITU-R BT.2020-2 (10/2015) Parameter values for ultra-high definition television systems for production and international programme exchange
- SMPTE ST 2084:2014 High Dynamic Range ElectroOptical Transfer Function of Mastering Reference Displays
- SMPTE ST 2086:2014 Mastering Display Color Volume Metadata Supporting High Luminance and Wide Color Gamut Images
- CTA-861.3-A, HDR Static Metadata Extensions
- ITU-T H.264, Infrastructure of audiovisual services – Coding of moving video
- ITU-T H.265, Infrastructure of audiovisual services – Coding of moving video
- ISO/IEC 14496-12, Information technology — Coding of audio-visual objects — Part 12 : ISO base media file format
- WebM Container Guidelines, available from https://www.webmproject.org/docs/container/
- Matroska Media Container, available from https://www.matroska.org/technical/elements.html
- AV1 Bitstream & Decoding Process Specification, available from https://aomediacodec.github.io/av1-spec/av1-spec.pdf
- ARIB STD-B67, Essential Parameter Values For The Extended Image Dynamic Range Television (Eidrtv) System For Programme Production
- Recommendation ITU-R BT.2100-2 Image parameter values for high dynamic range television for use in production and international programme exchange
- HDR10+ System Whitepaper, available from https://hdr10plus.org/wp-content/uploads/2019/08/HDR10_WhitePaper.pdf
- SMPTE ST 2094-40:2016 Dynamic Metadata for Color Volume Transform — Application #4
- User_data_registered_itu_t_t35 SEI message for ST 2094-40
- Dolby Vision Profiles and Levels Version 1.3.3 Specification
- Dolby Vision Streams Within the ISO Base Media File Format Version 2.2
- Dolby Vision Streams Within the MPEG-2 Transport Stream Format
- Dolby Vision Streams within the HTTP Live Streaming format
- Dolby Vision Streams within the MPEG-DASH format
- SMPTE ST 2094-10:2016, Dynamic Metadata for Color Volume Transform – Application #1
- INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT), International Application Number PCT/US20 16/059862
- ETSI TS 103 572, HDR Signalling and Carriage of Dynamic Metadata for Colour Volume Transform; Application #1 for DVB compliant systems
作者
Alexander Kruglov
Alexander Kruglov 是 Elecard 的首席工程师,自 2018 年以来一直从事视频分析工作。 Alexander 负责为 Elecard 的主要客户(例如 Netflix、Cisco、Walt Disney Studios 等)提供支持。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)