SDR/EDR/HDR: 从宣传到效果, 从参数到技术

HDR 这项技术本身离不开两方面技术革新:

  • LCD 面板通过分区背光, 实现让黑色背景亮度更低, 而高光部分能够在 LED 发光元件温度允许的情况下提升亮度. OLED 技术本身趋于成熟, 烧屏问题通过多种方式进行规避, 并且最大亮度也获得了提升. 特别是电视这种场景没有太多固定 UI 元素, 实际上对烧屏难以感知.
  • 传输接口/操作系统/视频编码格式/硬件编解码器都开始实现相关 HDR 标准, 典型的技术进步就是动态元数据和类似 HLG 这样的对数伽马记录高光的模式, 即在量化位数不变的情况下提升了记录的动态范围.

然而各家对 HDR 的具体实现方法不同, 导致最后的观感和用户体验大相径庭. 至少现阶段 HDR 在很多方面处于一种相对混乱的状态. 在进一步讲这个问题前, 先定义这个 HDR 是用于回放(播放)场景下的 HDR 动态范围支持, 和摄影里的 HDR 技术无直接关联.

什么叫「处理器支持 HDR」

首先要理解一个问题, 视频文件的扩展名对应的是视频的「封装格式」, 封装格式就是一个箱子, 常见的就是 mp4/mkv/flv/mov/webM 等, 不同的箱子在不同方面的表现都不一样:

  • 适合流式传输: 常见如 webM, 常见一个 webM 流只有一个编码对象(比如就纯视频或者音频), 这样带来的好处就是, 举个例子, 一个 100MB 的 100 秒的视频在特定封装格式里面有 100 个视频节点, 在不考虑关键帧的情况下你只需要下载第一个 MB 就能获得可播放的视频流, 而某个格式只有 10 个, 就意味着得下载 10MB 才能开始播放, 具体表现就是开始播放更快, 中间跳转到某个节点会更快. 这个方面表现最好的格式就是 webM 和 flv.
  • 支持各种内嵌字幕, 这个部分 mkv 支持的最好
  • 支持多音轨, 包括特殊格式的音轨, 同样还是 mkv 擅长
  • 动态元数据支持: HDR10/Dolby HDR 为了在有限的量化位数下实现更高的色彩空间, 使用的技术, 能够动态改变量化指值的对应亮度(或者说明度)

所以当我们说一个处理器支持 HDR, 有几个方面:

  1. 软件支持处理不同封装格式
  2. 支持对 10bit/12bit HEVC/VP9 等常见 HDR 数据流的解码
  3. 支持 HDR 的各种机内后期处理, 特别是对元数据的处理

所谓元数据, 就是独立于视频编码的动态范围信息保存功能.

HDR 元数据重新定义色彩空间下的亮度范围, 会根据场景
  • HLG 编码和 PQ 编码是典型的无元数据编码, HLG 依赖的是对高光部分的对数函数处理, PQ 依赖的是高量化位数下的线性高明度表现.
  • HDR10 支持静态元数据, 即整个视频文件的动态数据由一个静态元数据的设定.
  • Dolby Vision 和很多厂商的所谓 HDR10+, 支持的就是动态元数据, 允许随着视频内场景变化切换不同的元数据设定

带有 metadata 的视频编码流被硬件解码器解码, 其实就可以播放为视频, 只不过没有做任何处理, 放在 SDR 屏幕上很有可能就是典型的错误播放, 如:

  • HLG 数据理论上可以在 SDR 设备直接播放相对正确的明度, 但是如果不做 rec 2020-> rec 709 的转换, 颜色会变灰
  • PQ 没有元数据, 可能显示为色彩/亮度溢出

所以即便要播放 HDR 内容, 机内就必须视频编码输出的 raw 数据在亮度和色彩上做调整. 这里就要用到刚才所说的HLG/静态/动态元数据, 然后要结合显示屏的自身特性(可以认为是 icc profile)做调整, 输出到面板去控制液晶+背光/OLED 发光单元.

缺乏动态元数据的后果就是整个亮度/动态的设置依赖于播放器的调节, 而有的调节甚至做不到实时调节, 就意味着可能场景切换后0.x秒之内发生亮度变化, 对于播放亮度的一致性来说是致命的.

什么算是合格的 HDR 显示器/TV?

现在市面上流行了很多 HDR400 显示器, 这些显示器的确支持 HDR10 标准, DP1.2 下的 10bit 4K60 输入, 但是由于最大亮度仅为 400nit, 外加色彩一般也就是 sRGB/rec709. 实际表现和同等亮度 SDR 显示器配合 HDR->SDR 内容转换后其实差异不大.

HDR600, 以及 iMac/iPhone XR/iPhone 11/iPad Pro 这样的所谓 EDR LCD显示器, 前者还是 HDR 10 标准下的 600nit, 相比 HDR400 已经有一定效果. Apple 的 LCD EDR 可以支持有限的亮度提升, 约从 600nit 恒定到 700nit 峰值.

此时要特别注意, HDR400/600 这样的规格, 在桌面系统仅仅被 Windows 支持, 看上去 macOS/Linux 桌面系统不支持是不是一个遗憾? 其实 Windows 现阶段对 HDR 的支持, 因为半吊子的色彩管理, 变成了一个开启之后就会导致 SDR 内容色彩亮度都乱掉的开关. 如果要享受稳定的 HDR 内容, 建议购买游戏机或者 Apple TV/Android TV, 以及 BD 播放器, 这些设备有正确的全局色彩管理.

至于如何在 Windows 上不开启系统 HDR 而使得色彩正确, 可以考虑使用 MadVR 这样直接使用 DX 输出的软件, 包括 macOS 也可以使用专业上屏卡.

而后面一个阶段, HDR800-HDR1000, 或者说是分区背光 TV 主流的 HDR亮度区间的设备, 峰值在 1000nit 的设备, 才是严格意义上的合格HDR设备. 比如 SONY 的 9500G 系列电视:

首先这些电视通过分区背光, 实现了 1100 nit 的峰值亮度; 内置的 Android TV 能够正确处理 HDR 和广色域内容, 从 HLG 到 HDR10/Dolby Vision; 支持 MEMC 运动补偿, 让画面更流畅.

另外的典型就是 iPhone 11 Pro, 典型亮度 900nit, 20% 最大 1300nit, 全屏峰值 1100nit. 机内支持 HDR10 和 Dolby Vision & Dolby Atomos.

而很多 HDR 监看设备追求的则是完全无视操作系统管理, 以 SDI/HDMI 作为输入接口, 来自相机输出/电脑+上屏卡输出的 raw 数据就可以在上面不会受到任何色彩管理问题的显示.

至于 Pro Display XDR, 则是用于满足桌面系统的广色域 HDR 内容显示和编辑. 在 macOS 系统上, 能够在不影响 SDR 内容的前提下, 以 1000nit 全局, 1600nit 峰值亮度显示 HDR 内容.

应该购买 HDR 显示器还是电视?

电视更方便. HDR 显示器在目前常见主流操作系统的色彩管理都不够好, 即便个别游戏已经开始支持 HDR 输出, 但是这仍然不足以构成一个完整体验, 除非你选购的是 2K144Hz 这样的专门为游戏而生的显示器, 不然在传统 4K60Hz 显示器上的桌面体验不会更好. 但是优势在于支持带宽高/功能多/成本低的 DP 接口, 而且一般延迟都保障.

而电视的 HDR 配置更简单, 游戏机/BD/外接盒子, 到电视内置服务都对 HDR 有着良好支持. 主流 HDR 电视也能做到三种主流 HDR 格式的通吃. 但是个别电视的延迟可能有问题, 如果要接游戏机的化必须要做足功课调查延迟问题. 而且目前主流的 HDMI 2.0b 其实比较废物, 2020 普及的 HDMI 2.1 将会带来大量改进.

分区背光/OLED 在效果上有什么区别?

分区背光是 LCD 显示器的实现亮部更高亮度-暗部更暗的方式, 通常有两种, 一种是网格/蜂窝, 另外一种是条形. 前者的粒度更高, 但是成本更加昂贵; 而后者就有着很多情况下不可忽视的副作用:

网格的蜂窝则是亮暗边界对比度较低:

Pro Display XDR 比起其他高端 reference monitor 还要差很多

而 OLED HDR 电视不存在背光问题. 唯一的缺陷就是烧屏问题, 不过这个问题经过经过多年努力已经有了很大改善, 基本认为正常使用三年之内不会出现可见问题.

LUT 是什么? 软件和硬件处理 LUT 有什么区别? LUT 对于 HDR 有什么意义?

LUT 的字面意思就是「查找表」. 通常 LUT 做这么几件事情:

  • 比如说某款相机传感器有 14bit 的采样精度, 但是输出的画面只能有 10bit 4:2:2 或者更低, 那么在有限的输出精度下, 传递尽可能多的动态/色彩信息就很重要. 所以就有了 Log, 如 Canon 的 C-Log, SONY 的 S-Log, HDR 标准中的 HLG. 而 Log 的作用就是把原始的量化值通过一定非线性算法转换为记录的数值, 如果我们直接去把 Log 后的记录数值进行播放, 通常见到的就是灰色的图像, 这个时候就需要通过 LUT, 把 Log 后的信息转换为原来的线性原始数据.
  • 视频线上传输的数值, 这个数值和监视器实际的光线亮度并不是线性关系, 所以当我们要把他真正的放到屏幕播放时, 也需要进行一次 LUT 转换.

而这里就有所谓的 1D 转换和 3D 转换. 这里可以认为就是代数矩阵运算, 你有 RGB 三个量化数, 你需要用这三个值完成到亮度-色彩空间的映射, 这里有涉及到了复杂的矩阵运算... 软件运算/低端硬件 icc 能达到的准确度有限. 而高端的通常就会用专门 ASIC/FPGA 完成这种运算, 比如高端的 SDI/HDMI 彩监显示器, 或者特别的上屏卡都会支持这样的运算.

所以说了那么多, HDR 到底看起来怎么样

HDR 对于传统 SDR 内容的改进在以下几个方面:

  • 暗光场景的更好高光表现, 意味着高光场景的细节更丰富, 比如夜景的霓虹灯/灯箱招牌, 能以现实般的亮度冲击你的视觉. 而 SDR 摄影下灯箱就通常是一片散白, 如果仅仅是把 HDR 片源转换到 SDR 下, 虽然灯箱的细节能够得以保留, 但是对比场景其他的物体就没有那么强的冲击感
  • 强光场景下的暗部细节. 传统记录方式下, 强光场景通常会带来暗部欠曝光, 而 HDR 摄影就能够很好的记录高光的细节和明度差异, 暗部的细节也能得以保留. 在 HDR 播放环境下, 极强的光线就能通过峰值亮度体现出来.
手机的「HDR摄影」, 即便如此部分灯箱的内容仍然过曝, 而这些灯箱对比其他细节有着更高的亮度, 在 SDR 记录方式中就难以表现
手机 HDR 摄影下, 高光细节得到了很好保留, 但是弱光部分就非常模糊. 肉眼所见的阳光亮度其实非常夸张.

如何实现简易的 HDR 拍摄流程?

iOS 的 EDR 摄影本质还是类似拍照那套的动态增强, 拍摄的本质是含有更多动态范围的 SDR 照片/影片. 由于算法不公开, 所以不存在一个可靠的 LUT 算法回到 HDR 范围, 但是相比传统非 HDR 摄影来说效果会更好.

Android 手机阵营中(索尼那堆微单不算), SONY 自家 Z 系列最新机器我记得有 HLG 摄影模式. 这是目前最便捷的拍摄模式. Pixel 阵营不支持 HDR 摄影, 但是有 Computational Raw, 可以认为是包含了更多动态信息的 raw.

SONY 的主流微单/无反都支持 AVC 4K30fps 100Mbps 8bit YUV 4:2:0 HLG 摄影, 这是目前最为主流入门拍摄模式, 优点很简单, 拍摄的时候不需要太多预设, 色彩和亮度空间广, 后期进入 HDR/SDR 流程均可. 缺点是 8bit 4:2:0 在进行复杂调色的时候比较容易出现色彩断层, 并且 30fps 偏低.

至于后期流程, FCPX 对于 HDR 广色域的支持已经到了基本能用的程度.

参考:

Luv Letter:HDR、动态范围、色彩空间, 这些名词代表什么?zhuanlan.zhihu.com图标

编辑于 2020-01-19

文章被以下专栏收录