什么是颜色空间?

颜色空间允许用户和软件使用数字表示来明确表达颜色。

三个数一组的代码值(例如 [0.506, 0.266, 0.266])本身不足以指定颜色。必须针对特定的颜色空间对这些代码值进行解释。由这三个数表示的颜色在不同的颜色空间中也不相同。

有两种类别的颜色空间:

与设备无关的颜色空间

若要将三个数一组的代码值与特定颜色完全匹配,与设备无关的颜色空间必须定义以下特性:

  • 三个主颜色值在 CIE 色度方面的含义。
  • 一个或多个数据类型和编码。
  • 图像状态。
  • 关联的查看条件。

与设备无关的颜色空间示例包括 ACES 和 ICC 配置文件连接空间。

主颜色值

主颜色值可看作是用于定义颜色空间中颜色“点”的坐标轴。与设备无关的颜色空间通过引用 CIE 色度值定义其主颜色;从这方面来说,CIE 色度提供了一种通用参考帧或“世界”坐标系,以用于颜色空间之间的转化。对于一般的人类观察者来说,在给定的查看环境中,色度相同的两种颜色看起来相同。

以下是几种不同的主颜色系统示例:

  • 由红、绿和蓝三色构成的坐标,由 ITU-R BT.709(也称为“Rec. 709”)指定,适用于 HD 视频。这些主颜色也用于 sRGB(具有不同的 Gamma)。
  • 由 ITU-R BT.601 (Rec. 601) 指定的坐标,适用于 SD 视频。
  • 由 DCI 和 SMPTE 指定的 P3 主颜色,适用于数字电影投影仪。

数据类型和编码

若要解释数字代码值,需要了解数字的数据类型,例如,它们是 8 位、10 位、12 位还是 16 位,是整数值还是浮点值。此外,还需要了解值的编码,即代码值表示线性比例强度还是对数比例强度,以及是否应用了 Gamma。

图像状态

“图像状态”的概念是一个标准框架 (ISO 22028-1),用于对共享类似特性和需要类似处理的颜色空间进行分组。有三种主要的图像状态。

  • 场景相关图像是高动态范围图像。它们使用与场景中的亮度或辐照度成比例的代码值,不管是现场还是 3D 应用程序(如 Maya)中的虚拟场景。未执行任何色调贴图,并且允许大于 1.0 的代码值。如果代码值采用线性缩放编码,则称该图像为场景线性。大多数 OpenEXR 文件为场景线性。
  • 输出相关图像是正常动态范围图像。它们执行了色调贴图,例如,使用 S 形曲线来压缩超白,并增加对比度以补偿查看条件。最大代码值为 1.0(整数归一化之后),并且值与原始场景中的亮度不成比例。理论上,输出相关图像可以直接显示。但是,这不一定表示它们可在特定设备上显示,例如,它们可能已进行色调贴图,但还需要特定 Gamma 才能在特定显示器上显示。输出相关图像的示例包括 sRGB、HD 视频、数字电影 (DCI) 等。输出相关图像也称为“显示相关”。
  • 中间相关图像介于场景相关和输出相关之间。它们已执行某些颜色处理,因此代码值与场景亮度不成比例,但是它们仍未准备好进行显示。中间相关图像的示例包括对数编码,如 Cineon 类型胶片扫描、Academy Density Exchange (ADX)、某些数字电影摄影机输出等。

有关如何在 CG 渲染和合成的“线性工作流”环境中的图像状态之间转化,存在一些不太明确的地方。大部分的不明确来自单词“线性”,实际上存在不同种类的线性编码:场景相关和输出相关。了解场景线性图像和输出线性图像(也称为“线性化输出相关”)之间的差异非常重要。

在这两种情况下,编码与亮度成比例;换句话说,未应用任何 Gamma 编码。但是,在场景线性图像中,值与场景亮度成比例;而在输出线性图像中,值与显示亮度成比例。用于渲染计算机图形的数学采用线性颜色空间,这通常指的是场景线性颜色空间而非输出线性颜色空间。

若要准备场景线性图像进行显示,仅应用 Gamma 编码是远远不够的。由于场景线性图像具有较高的动态范围并且将在不同查看环境中具有有限动态范围的设备上进行查看,因此您需要在 Gamma 编码之前先应用色调贴图,这样才能使生成的图像看起来正确无误。

反过来,将视频图像转化为场景线性时,仅移除 Gamma 编码也是不够的。您还需要应用反向色调贴图以还原原始场景的亮度值。

存在一个明显的例外:如果输出相关图像用作控制漫反射或类似特性的纹理,则可能不适合应用反向色调贴图。请参见管理纹理和贴图的颜色

更加令人容易混淆的是,视频图像有时也称为“线性”(而不是“对数”)。视频图像实际上是带有 Gamma 的输出相关图像,因此必须将其 Gamma 编码移除才能使其成为输出线性图像,然后必须取消色调贴图才能成为场景线性图像。

查看条件

人类视觉是自适应的,因此颜色外观刺激取决于查看环境。例如,一张纸在明亮的日光下和较为暗淡的钨丝灯泡下都将显示为“白色”,尽管照明环境中光的量和色调不同。

查看环境中控制颜色外观的方面包括:
  • 图像或场景的绝对亮度级别。例如,白衬衫在户外的亮度可能达到每平方米 30,000 坎德拉,但其在电影院的亮度可能仅为每平方米 30 坎德拉,相对暗淡 1000 倍。
  • “周围”,即视野中图像四周的对象的颜色和亮度。例如,影院中电影周围较为黑暗,在家中看电视时周围较为暗淡(或者更确切地说,理想情况下,它应该暗淡),而对于真实世界的场景(而非图像)来说,光线就相对正常(或无)。
  • 自适应白点。这是观察者适应给定的查看环境后被视为“白色”的颜色。

典型的室外日光场景与电影或电视查看环境之间绝对亮度级别和周围的巨大差异是色调贴图必须包括场景线性颜色对比度增强才能在投影仪或显示器上正常显示的原因之一。

可通过以下几种方法之一指定自适应白点。一种方法是引用标准照明体的色度,如照明体 A 或全部都由 CIE 指定的 D 系列(D50、D55、D65 和 D75)。另一种方法是引用相关颜色温度 (CCT),以开氏度 (K) 表示。第三种方法是指定色度坐标,例如,数字影院的 DCI/SMPTE 校准白色是 CIE {x = 0.314, y = 0.351}。

若要补偿两个环境之间的自适应白点差异,需要使用色度调整变换来保留颜色外观。例如,将用于 D65 显示的颜色转化为用于 9300K 显示的等效颜色的色度调整必须增加红色饱和度。

与设备相关的颜色空间

与设备相关的颜色空间依赖于特定摄影机、显示器、投影仪、打印机或其他设备的特性。将相同的数字颜色代码值发送到数字电影投影仪和电影胶片记录器将产生不同的颜色。

但是,可将设备角色化。角色化包括精确测量其绝对色度响应。在此方法中,角色化提供了一种在与设备相关的颜色空间和与设备无关的颜色空间之间进行转化的方式。sRGB 和 AdobeRGB 本质上是与设备相关的虚拟空间,这些空间已充分角色化,使用时基本上可以视为与设备无关。

为了使角色化保持有效,必须对设备进行校准。校准包括调整设备以满足该角色化对应的“目标”(即,预期的主颜色、白点和 Gamma)。必须定期重复此过程,因为使用过程中设备的响应会随着时间的推移而发生变化。有关详细信息,请参见校准显示器