第三章 ACES预备课——Linear不是色彩空间

Andy Guo原创
  • Color
  • 十分钟系列
  • Color
  • Color Science
  • 色彩空间
  • 色彩科学
  • ACES
  • Linear
  • Gamma
大约 8 分钟

第三章 ACES预备课——Linear不是色彩空间

3.1 误解

“Linear 色彩空间”

“线性工作流程”……

这是很多VFX 遵循的制作圣经,如果你跟他说这可能有问题,他估计要跟你吵翻天哦~

但是不幸的是,这个还真有点问题。

不过问题不是出在Linear 上,是出在我们的理解上。

第一个重大的错误就是“Linear 色彩空间”。

3.2 色彩空间三指标

当定义一个色彩空间的时候,至少需要三个重要的指标:

  1. 色域(三个基色的坐标,形成的三角形)
  2. gamma(如何对色域三角形内进行切分)
  3. 白点(相当于色域三角形的中心)

我们可以先把色彩空间理解为一个三角形(其实色彩空间是三维的,这里暂时忽略因为亮度所产生的立体维度,简化的讨论一下。有机会再来纠正一些错误哦^_^)

色域(也叫做基色)

也就是图中最外面的白色粗线形成的三角形。

可以试想一下,如果三角形的三个顶点的位置发生了变化,必然会导致整个三角形所覆盖的颜色发生变化。

Screen Shot 2017-09-03 at 1.09.59 PM Screen Shot 2017-09-03 at 1.10.07 PM

白点位置

就是图中三角形中心的那个小圆点。

再来想象一下,如果三角形的位置不变,但是中心白点移动了位置,你需要从顶点走到小白点,那么途中经过的色彩肯定也是不同了。

Screen Shot 2017-09-03 at 1.09.11 PM Screen Shot 2017-09-03 at 1.09.20 PM

gamma

为什么把 gamma 放到最后?

因为这里就需要明确一个概念了,gamma 可不是色彩空间哦!gamma 只是如何采样的概念。

比方说,下面两个图,他们的色域一样,白点也一样。

还是动用一下想象力,如果我把这个三角形“均匀” 的向内切割,会得到什么样子的结果? 或者换个方式,刚开始的时候切割的少一点,然后越切越大,会是什么结果?

Screen Shot 2017-09-03 at 12.59.27 PM Screen Shot 2017-09-03 at 12.59.01 PM

如果对比一下每次切割的顶点,就会发现不同的切割方式会对应不同的颜色。

大家通常理解的 linear 只不过是 gamma = 1 的情况,可以理解为“均匀” 的切分。

这样的好处就是保证计算的方便,而且每次前进的距离总是相同的。

而右边那种 “非均匀” 切割的情况就是 gamma ≠ 1

还是举个例子来总结一下,假设我们有个常见的色彩空间 sRGB。现在大家可以想象一下,sRGB 到底是如何构成的呢?

  • 色域:首先是sRGB 规定了RGB 三个色度坐标。也就是由此确定了三个顶点。三个顶点一旦确定,那么形成的三角形也就确定下来了。
  • 白点:sRGB 也规定了白点。也就是说规定了三角形的中心。
  • gamma:sRGB 的gamma ≈ 2.2。也就是说切分这个三角形,开始切分的很细,后来越来越粗。

但是大家都是知道linear 的好处:便于计算、算法简便、计算机效率高…… 因此我们可以认为有个sRGB - linear 色彩空间:

  • 色域:肯定还是sRGB,因为三角形没变。
  • 白点:没变
  • gamma:我们改变切分的方式,每次都是均匀的切割。

于是乎,我们就得到了sRGB - linear 色彩空间

这个就是大部分VFX 人员认为的“Linear 色彩空间”。

3.3 举一反三

有了这个经验,我们马上可以想到,是不是任何gamma ≠ 1 的色彩空间,我们都可以转换为一个gamma = 1 的色彩空间呢?

没错!比方说:P3-DCIgamma = 2.6

那么只要保证色域、白点不变,只将 gamma = 1 我们就得到了一个 P3-DCI - linear 色彩空间

我们列出一张表格,里面是一些常见的参数:

色域白点gamma
sRGBD50linear
P3D602.2
WideGamutDCI2.6
SGamutD65cineon
RedColor3logC
RedLogFilm
Slog3

我们只要任意组合这三列,就可以得到一个色彩空间了。

所以会存在

  • sRGB - D65 - linear
  • WideGamut - D50 - linear ……

可以说任何色彩空间都可以是linear 的,但是linear 不是一个色彩空间!

大部分人在nuke 里面读取一个Alexa 拍摄的素材时,nuke 做的转换仅仅是对 gamma 进行了转换,从 logC 变成了 linear 然后再变成sRGB。

没有对色域、白点进行相应的变换,这就是有时候DI、VFX 之间看到不同色彩而发生扯皮的重要原因!

在这里呼吁大家,尽可能的将色彩空间的名字说完整,不然就会造成更多的误解。

有时候可以省略白点(因为白点往往是官方和色域一起规定的),所以至少要这样说:

  • 摄影机的色彩空间是 WideGamut - LogCRedColor3 - RedLogFilm
  • VFX 需要转换到 sRGB - Linear

当然还有一些色彩空间不需要说那么多,因为这些色彩空间在定义的当初就完全规定了色域白点gamma。因此只要说出他的名字就可以了。

例如:ACESXYZL*a*b*…… 这里也看出了ACES 的一些优势,只要说出他的名字,大家都会立刻产生相同的认识,从而避免了混淆。

温馨提示

现在有 Andy 十分钟色彩科学合集售卖open in new window

十分钟色彩科学面包多二维码

购买后加微信muyanru345,拉入Andy 铁粉儿群,可在群里对学习工作中的色彩疑问进行讨论。

上次编辑于:
贡献者: muyanru,Yanru Mu