最近几年随着以手机为代表的个人电子产品的高速发展, HDR, P3, sRGB 等与屏幕相关的名词开始更多的出目前这些产品的介绍上.
到底这些词代表了什么? 拥有这些技术的或者支持这些标准能给人眼带来如何样的视觉体验? 很显然如果你手头的设备不支持这种标准, 即便通过所谓的对比图片和视频, 是很难在低规格的设备上表现出差异的.
这个对比强化了 SDR 和 HDR 在动态范围的差别, 但是却远不能表现 HDR 真正的魅力
首先, 我们从色彩空间讲起:
光是一种电磁波, 我们通常说人眼能辨识的光叫「可见光」. 而人眼能见到的颜色就来自于这个可见光范围. 由于早年设备录制、保存、处理到回放的条件限制, 不能展示很多的颜色, 所以相关电视机机协会指定了一系列标准, 规定了色彩的范围标准, 也被叫做是「色域」.
常见的色域有
sRGB: 在互联网上最常用的色域, 以 Rec. 709 格式的色彩空间作为标准, 是显示器最基础的标准. 作为消费者, 只要记住这个色域只要能覆盖到 95% 以上, 那就意味着互联网上 95% 以上的内容的颜色都能被覆盖到.
DCI-P3: 是影片行业的色彩规范. 它在目前电子产品/显示器里有个近似标准, Display P3. 这就是 Apple 带领的新标准. 所有 Apple 产品(除了低端的 MacBook AIr/iPad), 最近几年带 Pro 的产品和 iPhone 均兼容此标准.
Rec. 2020: 类似 Rec. 709, 这仍然是一台电视机机行业所提倡的色彩空间的标准. 整体能够覆盖 P3, 所以在制作内容时会选择以这个标准进行记录, 然后导出为 P3 色彩.
Adobe RGB: 一台面向出版物的色彩空间. 基本完全覆盖 sRGB, 但是和 P3 色域不同, 两者在 sRGB 外覆盖的地方有所差异. 主要是因为出版物通常采用四基色系统(青色, 洋红, 黄色, 黑)进行印刷, 呈现的色彩空间也叫 CMYK 色彩空间. 为了在显示器上呈现接近出版物的颜色, 制定了这个标准.
当然还有一台很多笔记本厂商所说的 NTSC 的标准. 本质是当初全球电视机机标准 PAL/NTSC 标准之一. 相比 PAL 覆盖了过多的色彩空间, 然而当时的 CRT 电视机无法呈现, 非编剪辑系统也达不到这个要求, 得到了花名「Never The Same Color」 「Never Twice the Same Color」 「No True Skin Colors」即「无法显示相同的颜色」.
所以当你看到厂商用 NTSC 标准用于介绍的时候, 就要高度警惕, 这是一台非常古老且不实用的色彩空间.
那么接下来的重点就关于记录、采样和编码.
我们目前的用的做多的系统也叫非编系统, 全称「非线性编辑系统」, 是现代数码编辑的基本模式. 而早期使用胶片记录的时代就属于「线性编辑」. 最大的区别就是后者, 记录依赖于胶片母带, 当我们进行编辑的时候需要将它剪开(破坏), 所以就有大量的麻烦. 但是很显然, 胶片和我们目前数码的采样过程不一样, 更多的是拍摄和冲洗的工艺. 这也是胶片所特有的技术. 但是胶片其实也有着相比普通传感器更大的宽容度, 所以不少导演仍旧中意胶片.
而目前的相机通常是基于 CCD/CMOS 传感器进行记录, 通常就会提到所谓像素、色彩深度和采样频率的概念. 一台像素包含了三种基础颜色, 也就是 RGB, 红绿蓝. 传感器就会提供像素的矩阵, 也就是我们见到的画面.
而一台像素里面的每种基础颜色用到的数据量, 也叫做色彩深度(color depth), 最常见的量化数量是 8bit, 较高的就是 10bit. 通常来说, 在 8bit 0, 0, 0 代表最黑, 而 255, 255, 255 代表最白. 而凡是以 x, x, x 这样形式出来的颜色做成一台排序, 就是从最黑到最白的那么一台序列. 三种原色之间的比例只要不发生变化, 整体高低的变化就不会影响到颜色, 只有影响到亮度. 而很显然, 如果使用了 10bit, 最大的量化空间就能表示到 1023, 1023, 1023.
更高的量化深度就能够在色域更广的时候让颜色之间拥有更多的区别
说完了色彩, 接下来说动态范围.
刚才提到颜色之间形如 x, x, x 的模式里, 只要比值不变, 颜色就不会发生改变. 所以就有了最暗和最亮. 通常我们的 SDR 标准就是认为, 最暗是 0nit(单位面积下光通量的单位), 最高是 500nit. 而人眼对于亮度/响度量的敏感程度是呈对数曲线的, 一台可判别的差异就俗称为「一档动态」. 而具体量化数值到亮度并不是线性的, 以伽马函数形式进行定义:
记录/播放互为伽马矫正的反过程
如果以亮度10为底的 log 对数进行计算, 那么人眼的亮度范围就是:
最低 10^{-6} 的黑色到最高接近太阳光的 10^{8} 的尼特的亮度, 差不多 15 档, 但是很显然人眼并不能一次性看到这么大的亮度动态, 一般来说在特定瞳孔大小(光圈), 视网膜感光程度(ISO)下, 一般也就 5-6 个档左右.
那么最理想的情况就是「所见即所得」的现实. 但是实际情况中由于拍摄, 到后期制作流程, 到编码, 分发传输, 最后经过电视机的处理器解码后让 LCD 显示, 中间任何一台环节如果不支持光色域/高动态范围, 那么最后就无法呈现原来的色彩和亮度.
现如今的 SDR 系统的亮度差不多也就是从个位数尼特到500尼特. 这是因为传统液晶显示器都是 LCD 显示器, 其显示的原理基础是让一台灯管(通常是 LED 条, 经过导光板反射成一台亮面, 光线被偏光板调制 ,然后上面的液晶通过自旋去放行一定比例的光线到发色部分, 从而让每个像素的三原色呈现不同亮度, 从而还原颜色和亮度.
但是这样做就有几个基本的问题,
第一, 灯管的亮度是有限的, 而且本身只是一条, 因为散热等原因不能做到更高亮度.
第二, 液晶面板虽然能够阻止光线通过, 但是并不能完全阻止. 这就导致背光越亮, 纯黑色的背景也会变亮.
第三, 屏幕的颜色很大取决于灯管的发光属性(也就是色彩空间)和反射材料的色彩空间.
所以为了解决前两种问题, 又有一种叫做 OLED 技术出现了:
OLED 和 LCD 最大的不同就是 OLED 是每个像素自个发光. 这就意味黑色像素就可以作到完全不发光, 同时也有省电的功效. OLED 还有着更好的柔性等特点.
但是 OLED 也有几个致命缺陷: 亮度损耗很大. 而这个就会导致当屏幕显示特定内容的时候, 相关像素的峰值亮度下降会更快, 从而在显示均匀颜色的时候这些衰老的像素会显示出一台图案. 另外一台问题就是, OLED 本身发光能力有线, 强行太亮就会加剧衰老问题.
于是就出现了第三种对 LCD 的改良方式, 分区背光, 也有叫做 mini LED. 这里的做法是选择使用发光亮度更高的蓝光 LED(LED 家用投影仪的灯泡真是用的这种), 照射到荧光材料使其发出白色荧光. 而灯管不再是线性, 而是在屏幕的空间上均匀的安装 LED, 从而形成一台个发光区, 经过一层液晶的处理后即可显示纯粹黑白的亮度图案, 然后交给上层的传统液晶层去显示. 这样带来的好处是黑色部分可以完全保持纯黑, 而发光部分的亮度可以达到很高. 最新的 Apple Pro Display XDR 正是运用了这种技术从而达到了 1000nit 的稳定亮度和 1600nit 的峰值亮度. 当然, 发热量或是不小的, 所以需要借助背面大量的金属材料和散热风扇降温.
另外为了改善颜色, 三星选择从发光材料入手, 采用了所谓「量子点」技术, 通过不同直径的含有金属物的纳米颗粒, 通过量子激发效应产生不同颜色的色光, 从而改善屏幕发色, 提升色彩空间.
然而还别忘了, 就算你有了 HDR 播放设备, 你还需要相应的片源. 现如今 HDR 记录格式有三大标准, 分别是:
HLG, 由 BBC/NHK 电视机台主导, 采样深度通常为 8/10bit, 特点是是通过特别的伽马函数, 在大于 0.6 的部分采用对数函数, 从而增加最大亮度动态, 好处就是这样的素材在 SDR 设备上回放仍然能够保持和普通记录方式接近的色彩和动态.
HDR10, 由开放联盟 VESA 主导. 特点是免授权费用, 方法简单粗暴, 直接上 10bit 量化位数从而提升动态范围.
HDR10+ 和 HDR10 其实比较近似, 本质是因为个别厂商为了提升竞争力而对 HDR10 标准作出 12bit/14bit 量化深度的扩展.
Dolby Vision, 译名杜比视界. 采用 12bit/14bit 量化. 特点是效果贼好, 通常会打包 Dolby Atmos. 但是授权价格也贼贵.
有了 HDR 方案, 就需要选择对应编码器. 传统的 H.264 编码器其实也可以用, 但是在 4K10bit 的情况下对于存储和带宽的压力不小. 通常采用的最多的是需要一定授权费用的 HEVC H.265 方案. 而以 Google 自家 Youtube 为代表采用的就是 VP9 的编码器, 特点是免授权费用, 但是压制速率和压缩比都不如 HEVC, 且 iOS/macOS 平台不兼容原生硬件 VP9 解码.
而讲到编解码, 这就和硬件有了关系. 说到前面第一张图:
这张图之所以你在 SDR 显示器上看右边的所谓 HDR 效果包含了正确的动态范围, 是因为他本身就是 HDR->SDR 转换的结果. 通常拍照(不是摄影)里所说的 HDR 效果, 比如像 iPhone 的 Smart HDR 功能, 通常是使用多张曝光度不同的照片互相结合不同部分的细节从而拼凑的一张包含了更多动态范围的照片. 但是实际上这个照片本身的动态范围仍然属于 HDR 之内, 属于对动态范围的压缩.
而左边这张图, 则是对量化深度错误的映射, 比如把 10bit 内容等比例缩到 8bit, 就会导致白色变暗发灰, 色彩也会因为伽马的原因变得暗淡; 另外一种错误做法是直接把 10bit 内容等值放到 8bit 内容上, 这样就会导致过高的部分色彩溢出.
新建了一台 PQ 项目. 左边的 RGB 色盘显示了这个 HLG 素材自动映射到 PQ 空间的亮度, 当然右边的预览是经过 FCPX 的矫正的, 可以看到峰值在 400 左右. 这里是正确的情况.
新建了一台 SDR 项目, 如果把刚才的片段加入这个项目, 就会报错, 可以看到高亮度部分明显溢出在 110 左右.
套用了 HDR 工具, 溢出的情况有所缓解, 但是仍然需要通过调色和调整曝光从而使得素材可用
HLG HDR 项目中添加 HLG 片段, 可以看到量化值并没有提升. 所以这个项目就很适合于与 HDR10/HLG/SDR 素材混用, 并且也能比较好的输出 HDR/HLG/SDR 内容.
而具体到硬件, 由于 HDR 通常伴随着 10bit 和 HEVC 技术, 所以这就需要硬件解码器的支持. Intel Media 部分在 Skylake Gen9 开始 HEVC 解码, 随后在 Kaby Lake 获得了提升, 支持了更高帧率和采样深度的 HEVC 解码, 在 Gen 9.5 中 10bit HEVC 视频的编码获得了提升.
而 Apple T2 芯片本身支持 8 bit HEVC 编解码, 所以就能辅助 CPU 和 GPU 的 Media 部分进行编解码. 这也依赖 Metal 2 改进的对于系统全局编解码器的管理, Compressor 支持同时运用多个硬件编解码器和 CPU 多核心进行编码工作, 提升效率. Mac Pro 引入了基于 FPGA 可编程芯片的 Afterburner Card 处理 ProRes 素材(Apple 自家的视频 raw 格式, 用于高保真录制, 创建代理剪辑和作为剪辑的中间编码).Final Cut Pro X 也带来了相关改进以利用这些新的硬件:
而 Windows 方面有基于 D3D 框架下的 DXVA 2 框架, 相比 macOS 的来说虽然专业性的优化略少, 但是很幸运的是支持 VP9 编码.
就系统整体色彩管理而言, macOS 支持对每个窗口采取不同的色彩和亮度空间的策略, 也就是 Final Cut Pro X 的预览窗口是 HDR 内容, 但是边上按钮都是 SDR 内容. 也支持像对 Chrome 浏览器这样的网页单独配置 sRGB 色彩. 而 Windows 则无法做到这种程度的调控, 并且选择了独占全屏的应用无法套用系统的色彩描述文件, 即 .icc. 这个时候就需要应用自个去做适配.
但是也很可惜的是, 因为 macOS 做到了单个窗口管理的色彩空间, Chrome 无法使用 HDR 播放. 而自家 Safari 因为不支持 VP9, 外加没有和 Youtube 的 H264 HDR 内容兼容,也无缘 HDR VP9 内容的回放. iPhone 因为 Youtube 只提供 1080P 的 H.264 内容, 所以也无缘 4K HDR 回放.
目前对 HDR 相关支持最好的平台是 Apple TV+:
另外内容: |