从宝丽来到数字电影——图像与视频色彩的科学-阿里云开发者社区

开发者社区> 阿里云视频云> 正文
登录阅读全文

从宝丽来到数字电影——图像与视频色彩的科学

简介: 本文来自Netflix技术博客,讲述了相机和电影行业如何通过技术手段还原图像与视频的原始色彩的。在现代电影制作过程中,这些技术被数字化了。感谢快手视频和图像算法团队的翻译与技术审校。

文 / Kylee Peña, Chris Clark, and Mike Whipple


译 / 章佳杰


技术审校 / 张元尊


原文


https://medium.com/netflix-techblog/protecting-a-storys-future-with-history-and-science-e21a9fb54988


我叫 Kylee, 我手头有两张我父母的婚礼照片,只有这两张。 今年我父母已经结婚 40 周年了, 所以这两张当时的照片是用胶片拍摄的, 上面记录了年轻时婚礼上的尴尬和欢乐。 这两张照片都是如此的生动活泼, 是对另一个时代的最直接的记录。


其中一张照片是用宝丽来一次性成像相机拍的, 是唯一的记录。 这张照片只有三四寸大, 而且颜色已经开始褪去。


另一张是用 35mm 相机拍的, 我的父母并排站着, 旁边是伴郎和伴娘。 但是照片曝光太暗, 细节都丢失了, 而且底片也在很久以前就丢了。


这两张照片有历史意义, 对我非常重要。 但是我可能永远没办法把他们弄得更好了。 其中一张是一种过时的格式 (译注: 指宝丽来一次性成像相片), 所有的色彩和对比度都嵌入在这个原始相片中。 另一张倒是可以通过现代技术手段让画面变更干净, 并且显著提升亮度, 前提是原始底片还在。


每个人都有对他们来说很珍贵的图像: 你的狗做各种神奇的动作的视频, 你的祖父母他们最后的周年纪念日合影, 你积蓄很久费尽心思筹划的自己的婚礼。 想象一下, 如果视频不能播放了, 或者你祖父母的合影变的模糊, 或者你的皮肤和婚纱上有绿色色调。


对于电影和电视节目来说, 导演和摄影师每时每刻都在面对这样的事情。 他们竭尽全力到达那个正确的地点, 并且正确的拍下了图像, 结果播出时图像看起来不太对, 很糟糕, (更糟糕的是) 每秒播放 24 次。


我们一直致力于为 Netflix 解决这样的问题。 我们不止于在电影和电视艺术领域探索, 而且研究了历史和科学。 我们行业的技术创新加速非常快, 对未来我们总是充满未知。 但是, 我们可以使用过去的经验和知识, 包括百年电影制作历史中积累的经验, 以及对人类感知系统的研究。 我们使用这些经验和知识, 最大限度的保存内容, 以便在新技术出现时可以用上, 使得我们可以有更好的观看体验。 我们的目标是保留这些重要图像的同时保留创作意图。


只要我们在构建和测试色彩管理工作流程上仔细一点, 花费一点注意力, 就可以让一个电视节目从头到尾的每一点看起来都很完美。 素材做好存档, 可以让节目的生命力更持久, 而不需重制。 我们在 Netflix 上需要的素材, 比如 NAM, GAM 和 VDM, 也许是一些数码文件, 通过我们的内容中心 (Content Hub) 进入云端存储, 但这些概念植根于历史和科学。


NAM, GAM 和 VDM 中有什么?


交付 (素材) 给 Netflix 的人, 或者有兴趣交付的人, 都对这些术语很熟悉: 未分级档案主文件 (non-graded archival master, NAM), 分级档案主文件 (graded archival master, GAM) 和视频显示主文件 (video display master, VDM)。 在我们 Netflix 这么叫, 其他工作室或者机构可能有别的名称。 一般来说, 每次交付 Netflix 都要包含这些档案素材。


未分级档案主文件 (NAM) 是未进行色彩分级的副本, 但是与最终剪辑锁定版本是完全统一的, 包括后期特效 (VFX)。 未分级档案主文件在原始工作色彩空间 (如学院影像编码系统 ACES, 详见后文, 或原始相机 Log 空间) 中渲染, 没有叠加输出变换或显示变换。


分级档案主文件 (GAM) 将最终的颜色分级策略添加到与最终剪辑锁定画面一致的副本中, 并且也在原始工作色彩空间 (如 ACES 或原始相机 Log 空间) 中渲染。 同样的, 也没有叠加输出变换或显示变换。


未分级档案主文件和分级档案主文件看起来都不好看, 因为这些图像是在对数 (也就是 Log) 或者线性色彩空间中的。 这样的图像不是为了显示的, 而且这些图像比显示屏能记录更多潜在的信息量。 为了方便对比视觉效果, 我们需要视频显示主文件 (VDM)。


视频显示主文件 (VDM) 也是与最终剪辑锁定画面相一致的一个副本, 包括后期特效, 只不过这次加上输出或显示变换一起渲染, 这意味着它在主显示器的颜色空间中进行编码。

image.png

NAM-GAM-VDM 样例: Log 空间工作流 (ARRI LogC)

image.png

NAM-GAM-VDM 样例: 线性空间工作流 (ACES)


SMPTE IMF (Interoperable Master Format, 可交互主格式) 是用于制作所有流媒体素材的主控格式, 为了交付可交互主格式, 上面提到的这素材都是必须的, 每一种素材都要以未压缩或无损压缩格式交付, 例如 16 位 DPX, EXR 或 TIFF 序列。


这些素材在未来为我们提供了巨大的灵活性, 因为我们使用原始色彩空间保存该影像的副本。 一方面我们保留了最初拍摄的所有原始信息和动态范围, 另一方面我们可以在保留原始的创作意图的同时来重制节目 (并且更轻松), 确保它们在未来几年内继续保持最佳状态。


要了解这些术语和流程的来源, 我们必须回到电影课。


电影史入门


更深入地思考 Netflix 以及那些创意技术工作的演变, 这些技术演变在背后推动着电视和电影发展, 我们最终想到的可能是物理胶片。 事实上, 我们的 NAM, GAM 和 VDM 档案素材源于超过一百年的电影史。


在今天拍摄制作 (节目) 大部分都转用数字化采集, 使用相机卡和硬盘存储。 一个世纪以前, 那个时候影像拍摄的唯一介质就是赛璐珞 (译注: 老式电影胶片)。 而对它的物理处理手段, 在随后的几年里得到了发展和完善。

image.png

一段电影胶片 (来源: Wikimedia Commons)


在对胶片的物理处理工作流程中, 批量拍摄完后, 所有曝光的胶片底片被送到暗房进行洗印。 好几个胶卷串在一起形成暗房卷, 然后使用一组简单的光线值冲印样片, 制作出方便人看的正片 (译注: 原始胶卷上留有的图像颜色与正常颜色相反, 被称作负片, 而冲印出的照片颜色是正常的, 称作正片)。


剪辑师会将胶卷剪切在一起, 并将负片剪辑表单 (类似于 EDL, 但不是文件名和时间码, 而是剪辑表单和键码) 发送给负片剪切员, 以确保剪辑锁定画面与原始负片符合。


负片剪切员把胶片粘起来形成最终版本, 这个版本就相当于我们今天的未分级档案主文件 (NAM)。


在这之后,摄影导演会和配光员一起对所有负片进行单光冲印, 然后对每个场景进行创意调整。 配光员将通过模拟曝光, 逐个镜头对晒印机灯光进行调整, 这个过程类似于现在创建颜色策略清单 (CDL)。 当颜色确定后, 用定好时的晒印灯来晒印负片。 这个第二负片, 也就是负片的负片, 被称为中间正片 (interpositive, IP)。


这个中间正片, 或者说负片的负片, 包括最终的调色策略, 就相当于现在我们的分级档案主文件 (GAM)。由于这个胶片版本基于原始的负片, 它可以与原始负片保持相同的信息量和动态范围。


中间负片 (Internegatives) 是从中间正片 (IP) 创建的, 用于批量洗印, 并且用于制作方便给人看的印片用正片。 这种印片用正片与负片不一样, 通过胶片投影仪投射出来, 就是方便人看的正常色彩的图像。 这种印片用胶片就相当于我们今天的视频显示主文件 (VDM)。

image.png

35mm 印片用胶片。 来源: 维基百科


胶片处理流程不断向数字工作流程转变, 而动态影像专家们不断改进和提高这一过程,逐渐形成了现代的工作流程。 电影行业数十年来的努力, 加上近年来产量激增的更快, 价格更便宜的存储系统, 以及体积更小, 性能更好的相机传感器, 使得我们能够创建一个稳健的存档系统, 随时准备好对节目进行重制, 不会有任何场景丢失。


接下来, 科学课堂: 色彩科学


要在当今的数字化工作流程中创建这些档案素材 (并且维持一个开心而富有创意的团队, 在查看他们的节目时, 过程中的每一点, 都保持了他们的拍摄意图), 关键在于从一开始就要做好色彩管理。 对色彩科学有所了解是有益的, 有助于理解色彩 / 感知 / 以及显示技术是什么, 以及为什么这些概念是重要的。


如今大多数图片都是彩色图片。 颜色由不同的波长的光组成, 不同波长的颜色, 我们称之为红色, 绿色, 蓝色, 或者许多其他名称。

image.png

来源: Colour Science for Python


颜色形成有两个阶段:


  1. 光线进入眼睛, 视网膜上小小的细胞 (锥细胞) 对此产生反应。


  1. 神经信号向后传导到我们的大脑 (视觉皮层), 形成了一种颜色感知。

image.png

来源: Wikimedia Commons


这其中, 视网膜部分 (1) 是相对研究得比较透彻的, CIE 对此进行了标准化, 形成了可测量的三刺激值, 称为 XYZ 。 三刺激值的测量基于我们人眼的三种锥细胞, 分别对应可见光波长中的长波 (L), 中波 (M) 和短波 (S)。


XYZ 通常被称为色度或颜色的度量, 如果给出 XYZ1 和 XYZ2 一样的话, 那么对于一般观察者来说, 这两个颜色就是一样的。 举个例子, 我们用打印机打印一个苹果的图像, 用的是打印机的颜料, 而如果打印结果的 XYZ 和真实苹果的 XYZ 是一样的, 即使颜料的光谱特性和苹果的不一样, (但是看起来打印结果和苹果就是一样的)。 这就是大多数色彩系统的工作原理。


而认知部分 (2) 就复杂多了, 这涉及你的观察环境, 适应状态, 期望和记忆。 这被称为颜色表观, 并且也经过充分研究和建模。 我们将在以后的博客里讨论。


出于这个原因, XYZ 提供了一种经过验证的方法, 可以精确校准显示器进行匹配。 除非有人想出如何直接向大脑传信号, 否则显示器 (译注: 此处指代一切显示设备) 是我们查看内容的唯一方式, 因此我们需要了解它们的特性并确保它们按预期工作, 这非常重要。


但是在我们讨论显示器之前, 我们需要创建用来显示的图像。


一般来说, 我们行业中的相机在对光的响应方面, 尽可能尝试模拟接近人类视觉系统, 通过使用滤镜来模拟人眼的三种锥细胞的响应。 一台完美的相机将能够记录所有可见颜色, 并将它们存储为 XYZ, 从而完美存储场景中的所有颜色! 不幸的是, 让相机的电子系统实现这一点很困难, 因此大多数相机都不是完美匹配真实颜色的。 尽管如此,“模拟人眼” 的设计标准仍然是对的, 而且大多数相机都做得相当不错。


既然相机不完美, 那么在简单情况下, 相机做两件事:


  1. 采用一个输入变换, 将原始传感器的 RGB 信号变为 XYZ 色度, 对这个变换进行优化, 以使得对真实世界中的大部分重要的颜色表现良好。


  1. 采用一个输出变换, 将 XYZ 色度转变为用于显示的 RGB。


  • XYZ, 在本篇博客中, 指的是 CIE 1931 2 度观察者的色匹配函数 (color matching functions, CMFs)。 这与 DCI X’Y’Z’ 不同, 它是一种基于 XYZ 的色彩编码方式, 针对数码影像。


  • 比如说人的肤色, 天空的蓝色, 树叶, 以及其他常见的颜色。

image.png

有时候这两个步骤合在一起完成。 比如当你用相机或者智能手机拍了一张 JPEG 照片, 这两个步骤都被执行了, 然后你得到了一张所谓的 “显示器相关” 的图像。 换句话说, RGB 值对应于从显示器发出的 (光线的) 颜色。


值得注意的是, 广播摄像机通常以相同的方式操作。 它们执行步骤 1 和步骤 2, 输出 “显示器相关” 的图像, 这些图像可以直接发送到显示器。


而拍摄 RAW 是不同的。 专业相机可以不用执行步骤 1 和步骤 2。 这意味着你将获得原始传感器 RGB 值。 在处理或 “冲印” 该图像之前, 不会使用任何颜色变换。

image.png

现在, 比如说, 你执行了上面的步骤 1, 但是没有执行步骤 2, 然后你输出了一个 XYZ 的图像, 这就是所谓的 “场景相关” 的图像。 换句话说, 这个图像的像素值大致(这里用大致, 是因为相机不是完美色度匹配的。)对应于场景中的颜色, 不管是直接的 XYZ 还是 XYZ 所定义的 RGB 值。


一般来说, 场景相关的图像包含的信息了比显示器能显示的更多, 就像胶片负片一样。 对动态范围和色彩来说都是如此。 我们可以用很多种方式来存储, 业界的相机厂商通常会定义他们自己的 “场景相关” 的色彩空间。


以下是一些例子:


  1. ARRI: Alexa LogC Wide Gamut


  1. Sony: S-Log3 S-Gamut3。cine


  1. Panasonic: V-Log V-Gamut


  1. RED: RED Wide Gamut Log3G10


这些色彩空间是专门优化的, 包含了相机可记录的光线和色彩, 并且以整型数字编码存储 (通常为 10 位或者 12 位编码)。 这就是输入变换了 (译注: 即前述两个步骤中的步骤 1)。


将 “场景相关” 的色彩空间中的颜色直接显示到屏幕上, 看起来这样操作没什么问题。 但是考虑到场景和屏幕之间亮度的变化, 以及观看环境的不同, 我们还是需要做输出变换 (译注: 前述两件事中的步骤 2)。 比如说, 一张晴天的照片, 不会和真实的太阳亮度一样, 所以在色彩和对比度方面就必须考虑这样的不同。 这种 “图片渲染” 有很多办法可以做到, 不过本篇博客不会详细讨论这些方法。 但是这个概念又对图片系统整体的 “观感” 非常重要, 我们还是值得在此进行一些简单介绍。


出于上述的原因, 相机厂商通常会提供一个默认的输出变换 (用色彩查找表的形式, 或者说 LUT), 让你可以拍一张 Log 空间的图像, 并且 (直接) 在某个色彩空间 (比如 BT。 1886) 进行观看。

image.png

来源: 柯达公司


练就色彩管理的黄金眼


这些概念汇集在一起, 就形成了色彩管理的工作流程。 由于色彩管理可以确保图像的保真度, 观看效果的可预测性, 并且方便处理不同的片源, 所以这是对电影和电视剧的现在 和 未来进行保护的最佳手段。 色彩管理工作流程需要一个定义好的工作色彩空间, 和一个统一的输出变换或者 LUT。 这些必须明确记录存档, 并且提供给工作流中的所有参与者。


一旦工作色彩空间确定了, 所有的色彩校正步骤都在那个色彩空间中进行。 但是, 我们知道这个色彩空间是 “场景相关” 的, 不方便直接观看, 所以我们必须加上输出变换, 来预览我们的图片在显示器上显示的效果。

image.png

在这个例子中, 工作色彩空间是 Log, 显示色彩空间是 BT。 1886。 输出变换将两者划分开。 只有对 BT。 1886 的流媒体主文件才加入输出变换, 归档主文件 (未分级主文件和分级主文件) 还是在 Log 色彩空间中。


如果把所有图像都转变到 BT。 1886 这样的显示色彩空间中, 看起来 好像 会让流程简单一点, 但是这会导致后期特效处理过程和最终结果档丢失了所有的动态范围和额外信息。 当过几年新的显示技术出现的时候, 你的图像就会像 Kylee 父母的婚礼照片一样留下遗憾。


使用输出变换或者说显示 LUT, 不管这个 LUT 是由色彩学家还是数字传媒公司设计的创意 LUT, 甚至相机的默认 LUT, 比如 ARRI 的 709 LUT, 这不止是提供了一个基本的 “观感”, 而且也保护和保留了工作色彩空间。 工作色彩空间可以提供完整的动态范围, 为后续的色彩调整和后期特效, 以及最终的 NAM 和 GAM 归档素材提供便利。


此外, 在有第二相机的拍摄制作过程中, 可以用输入变换来把图像转换到这个更大的工作色彩空间中。 大多数专业相机都公布他们的色彩空间定义, 而大多数专业的色彩分级软件 (译注: 调色软件) 在工具集中都实现了这些色彩空间。 这可以将图像转换到一个统一的色彩空间中, 减少了对不同相机进行颜色配准所花费的时间。


学院色彩编码系统 (Academy Color Encoding Standard, ACES) 是一个色彩管理体系, 尝试将这些 “场景相关” 的色彩空间统一成一个更大的、标准的色彩空间。 它涵盖了所有的可见颜色, 使用 16 位的半精度浮点来编码 (32 档的线性动态范围, 译注: 这是错误的, 16 位半精度浮点无法记录完整的 32 档线性动态范围), 使用 OpenEXR 容器格式进行存储。 ACES 远超过目前所有相机的能力。 相机厂商也发布了输入变换, 以便将相机原生的传感器 RGB 图像转变到 ACES RGB 图像。

image.png

来源: 学院派电影艺术与科学


学院色彩编码系统 (ACES) 同样也定义了一个标准的输出变换, 以便在一个校准过的显示器上观看图像, 而不用管是用什么相机拍摄的。 由于主流的色彩分级和后期特效软件都内置了这些 ACES 输出变换, 因而这成为关键的一步, 为工作图像提供一个一致的观感。


需要指出, 以前由于设备性能不足, 这些输出变换不得不以不可变 LUT 的形式输出。 不过, 随着现代 GPU 的迅速发展, 系统不再需要 LUT, 而可以直接用纯数学的方式来计算这些颜色变换。


把这些放一起怎么样?


与相机色彩空间类似, 屏幕色彩空间也是在 XYZ 空间中定义的。 但是, 由于受到绝对亮度和色域的限制, 目前没有一款显示器可以显示 “场景相关” 的图像中的所有信息。 同时, 显示器技术的发展, 使得你在屏幕上看到的效果每年都会提升。


显示器接受一个信号, 发出对应的光。 显示器标准, 以及标定过程, 允许我们发送一个信号, 得到一个确定的输出光线和颜色。


当今大多数显示器都采用红绿蓝 (RGB) 三原色的光线, 使用加色三原色系统, 当三原色混合起来, 或者说加在一起, 就显示出白色。 “白点” 就是等量的三原色信号发送给显示器所显示的颜色。

image.png

来源: Wikimedia Commons


显示器标准存在的意义, 就是可以让你从 1 号显示器上拿一个图像放到 2 号显示器上显示, 并且得到同样的色彩。 换句话说, (显示器标准) 决定了 (显示器) 使用怎样的红绿蓝三原色和白点。


这对于广播电视以及互联网来说是非常重要的。 在这些场合下, 图像被同时发送给成千上万的显示器去显示。 常见的显示器标准包括 sRGB (互联网, 移动设备), BT。 1886 (高清广播电视), Rec。 2020 (超高清以及高动态范围广播电视) 以及 P3 (数码相机和高动态范围图像)。


这些标准定义了三个主要的部分:


  1. 三原色, 通常用 XYZ 坐标表示;


  1. 白点, 通常用 XYZ 坐标表示;


  1. 电-光传递函数 / 信号-亮度 (Y)

image.png

ITU-R BT。709 标准 (也就是 Rec。 709) 定义的三原色和白点

image.png

ITU-R BT。1886 标准定义的电光传递函数


为了调试显示器以便尽可能地符合标准, 需要测量一些测试图样。 通常测试图样包括红绿蓝白的色块, 以及用于测量电光传递函数的灰阶。


只有标定了显示器, (对图像的) 创意加工才是有意义的, 色彩变换也才是有用的。 一个有色彩管理的工作流必须包括这一步, 才能真正影响图像保真度和一致性。


自从我们第一次开始在公共场所和家庭中能显示动态影像以来, 显示技术已经走过了漫长的道路。 从影院中的投影系统到无线广播, 再到自发光屏幕, 比如 OLED 甚至是 iPhone 的屏幕, 我们对图像的显示技术也在不断发展。 色彩管理和正确的归档素材可保证电影满足未来的高质量显示需求。


总结


回到一开始的我父母的故事, 以及他们留下的婚礼照片, 很明显, 与你周围发生的事情相比, 及时处理那一刻的所有挑战是多么微不足道: 预算、时间、人员、技术。 但随着时间的推移, 那段经历的遗留记录只会变得更加珍贵, 你会完全错失令它保持良好状态的机会。


与电影和电视一样, 妥善保护这些精彩时刻的照片, 并保持当时的创作意图, 是非常重要的。 它们可以在之后多年的回味和享受中保持良好的状态。 有一些电视节目成为文化经典, 有一些是个人收藏, 多年来提供休闲娱乐。 无论什么情况, 对许多电影制作人来说, 这些节目是他们个人生涯的高潮, 值得我们心怀敬意, 提供高质量的观看体验, 并使用高保真存档。


在 Netflix, 我们不断完善我们的流程和方法, 同时继续依赖这么多年的电影历史和科学研究的广泛集体智慧。 在创新技术与基础设施团队中, 我们始终在寻找新的创新方法, 以增加素材的实用性, 同时为创意人员和技术人员提供更多灵活性。 历史和科学可以为我们提供许多资源, 而我们与生产社区建立的关系可能会给予最好的指导。


有一些电影随着时间消失了, 有些重制的电影也遇到整段场景缺失的情况。 而且我也不是唯一一个倒霉蛋, 家庭相册的照片正在褪色, 这些照片的质量也被当时的技术所限制了。 而详细周到的规划和技术, 可以让人们的经历和故事, 在未来几十年内得以妥善保存。

————————————————

版权声明:本文为CSDN博主「LiveVideoStack_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/88266160


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

阿里云视频云@凡科快图.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

分享视频云行业和技术趋势,打造“新内容”、“新交互”。

官方博客
官网链接