ACES 的色彩科学基础
ACES 色彩科学被频频提起,似乎是一种非常高端的处理流程。从色彩科学的角度看来,ACES 的处理主要体现在输出变换(ODT)上,ACES 提供了一个统一、可逆的输出变换,用于将场景参考的线性光渲染到指定的显示器上。这个输出变换决定了画面能够有理想的基础风格和调色起点,确保了各种亮度与色域的显示器上尽可能一致的效果。如果切换不同的 ACES 版本,效果差异也主要来自输出变换。
ACES 2.0 中,输出变换是基于一个内部变量名为 JMh 的颜色空间的,显然,它与 CIECAM 系列色貌模型与颜色空间有着很深的联系。在 ACES 的文档中,该空间的描述是:一个简化的 Hellwig 2022 色貌模型。而 Hellwig 2022 色貌模型是对 CAM 系列模型的修改,声称提供了更好的色貌预测,经过 Hellwig 与 ACES 的修改之后,ACES 2.0 使用的 JMh 空间其实已经与原本的 CIECAM 相去甚远了。
为何说这个 JMh 空间是 ACES 的色彩科学基础?即使输出变换的算法相当复杂,但仍与其它的色彩管理中的映射类似,将颜色转入一个均匀颜色空间后,在保持色调的情况下修改明度与彩度,改变图像风格或映射进显示色域。
JMh 本身的色调线性、均匀性和明度预测能力将决定整个 ACES 的色调线性和图像风格,这些效果还不容易被其他调色工具所影响。
JMh 的结构
作为一个新的均匀颜色空间,我希望对其有更深入的理解,比如:
- 能否拿出来单独使用
- 相比 Hellwig 2022 和 CIECAM16 有哪些改动
- 作为一个均匀颜色空间的性能如何
- 是否有针对 ACES 的特别处理
接下来将深入分解该颜色空间,试图回答以上问题。
LMS 与色适应
与大多数颜色空间类似,虽然输入是 XYZ,但一开始就会将其转至代表锥体响应(Cone Response)的空间,下称 LMS。在锥体响应空间中操作一般能获得更好的色调线性和亮度预测。这一步由一个 3x3 矩阵完成。
Hellwig 2022 与 CIECAM16 使用的是同一个锥体空间,矩阵名称为 Matrix16。如果把这个矩阵看作是一种 XYZ 转 RGB 的矩阵,那么可以把锥体响应看作是某种三基色空间,并画到 CIE1931 或者 1976 u’v’ 图上。
ACES 使用了一个巨大的中间空间:ACES 2065-1 或称 AP0。这个空间在色度图上看,某些区域比 Matrix16 导出的 RGB 空间还要更大。在数学上,这会导致 AP0 转入 LMS 后出现一部分负数,这对于后续处理是很不友好的,虽然这些全是物理上不存在的颜色,理论上不该出现,但它们经过输出变换后会变为物理能显示的颜色,这部分负数会出现颜色不连续甚至错误。

为此,ACES 移动了 S-cone 对应的色坐标,使其尽量能覆盖 AP0,这个变动大概发生在 2023 年,感兴趣可以去 ACES 开发记录和 会议记录 中考古一下,这个改动也许还能改善一些色调线性,以及使蓝色区域在输出变换之后相比原版的 Matrix16 稍亮一些。

嵌入了 ST2086 元数据后在大部分设备上看还是很怪,似乎只有 Macbook Pro 和 XDR 效果比较好。使用至少具有 10x Headroom 的广色域 HDR 显示屏以获得最佳效果。
这是一个用彩色 RGB 打亮的白色石膏摆件,经过 S-Gamut3.Cine-SLog3 拍摄后,用 ACES 2.0 输出变换到 BT.2020 1000nits 的显示器上。两个图的区别仅有输出变换 JMh 用到 LMS 空间的蓝基色坐标。
实际上刚才提到的 AP0 超色域问题可能目前根本不会遇到,当前版本的输出变换第一步就是从 AP0 裁切到 AP1,而 AP1 是一个小得多的色域,区别可能仅在于蓝色的亮度上。
转到 LMS 后,使用了色适应与等能白对齐,这一步直接在 LMS 除以 ACES 白点与等能白之比,相当于是完全适应。
去除偏移量
均匀颜色空间通常会在适应后的 LMS 上施加一个非线性函数,模拟视觉系统的非线性后适应。这几个空间用的都是 CIECAM 的 Sigmoid 形式,ACES 去除了后面的 0.1 偏移项。
后适应之后,由三个锥体响应按一定比例组合成无彩色响应,Hellwig 与 CIECAM16 包含一个常数项,ACES 则没有。
更换了 LMS 空间和去除偏移项也许对色调线性有一些好处,比如说在 Hung & Berns 数据上,ACES JMh 的表现会比 CAM16-UCS 好一些,但蓝色区域仍不及 Jzazbz 这类空间。
简化的视彩度
CIECAM16 中的彩度和视彩度计算非常复杂,包含很多的中间量,Hellwig 2022 与 ACES JMh 则简化为了传统的拮抗结构,由后适应后的锥响应组合出两个色度轴(红绿-黄蓝),然后变换为极坐标系就得到了彩度与色相。
这个矩阵是要左乘到后适应之后的锥响应列向量上的,第一行代表线性组合出无彩色响应,后两行则是组合出两个色度轴。对极坐标系中的彩度乘上一个固定的缩放系数即可得到 ACES 的视彩度 M。
Hellwig 2022 的视彩度还要多一个偏心量 ,这是一个与色相相关,用来随色相缩放彩度的量,用于提高不同色相下彩度的均匀性,ACES 的输出变换中这部分功能转移到了输出变换内部,不由 JMh 的均匀性承担。
JMh 最终形式
经过上述的简化和改进,与其说这是一个色貌模型或者 CIECAM 类似物,其实它和 Jzazbz,sUCS 或 IPT 更像。
都包含以下步骤:
- XYZ 转至锥体响应空间(第一个 3x3 矩阵)
- 锥体响应非线性映射(非线性函数)
- 后适应的锥响应拮抗(第二个 3x3 矩阵)
ACES 多一个明度的后处理,类似 Jzazbz。
这一步在输出变换里也是不怎么必要的,输出变换的亮度映射仍然需要转回线性光,映射后再逐步回到明度 J。
色貌模型?
ACES 说这是一个色貌模型(Colour Appearance Model),但实际上这个 JMh 完全没有对观察条件的考虑。
虽然过程中用到了 surround,, 这些代表观察条件的量,但都是硬编码的,正逆变换都是同一套,也不能由外部指定(除非完全重新手写),并没有真的起到代表观察条件的作用。
从这个角度来看,它更像是一个均匀颜色空间,并且包含了一些对 ACES 的优化,而 ACES 的输出变换又有一些硬编码的,与之匹配的量,比如随色相改变的彩度系数。所以单独拿出来用,或者给 ACES 简单的换上别的空间,效果都不敢保证。
-
Hellwig 2022: L. Hellwig and M. D. Fairchild, “Brightness, lightness, colorfulness, and chroma in CIECAM02 and CAM16,” Color Res. Appl., vol. 47, no. 5, pp. 1083–1095, Oct. 2022, doi: 10.1002/col.22792.
-
CIECAM16: C. Li et al., “Comprehensive color solutions: CAM16, CAT16, and CAM16‐UCS,” Color Res. Appl., vol. 42, no. 6, pp. 703–718, Dec. 2017, doi: 10.1002/col.22131.
关于 ACES JMh 的完整形式,在原始的 CTL 里被改造成了很 C 风格的代码,不能与上面讲的“色彩科学风格”的步骤一一对应了,还需要读者自己拆解和改写一下。