ARRI Alexa LogC 色彩处理
- Color
- 厂商色彩处理系列
ARRI Alexa LogC 色彩处理
Arri 作为国际大厂,非常全面的公开了自己对于ARRIRAW文件的几乎所有处理方式。因此下面的文章是基于Arri开发者文档写出的。
色彩处理流程
以前我们都只是知道使用官方的LUT来将LogC-WG转换到Rec709。但是从来都是很清楚具体中间发生了什么。
如果是作为最终的监看,那么使用LUT是完全没有问题的。但是如果你想要得到一个LUT,可以把Rec709转换回到logC-WG,那么我可以肯定的说,想要得到一个3D LUT的逆向LUT,这几乎是不可能的……
因此如果想要得到一个从Rec709 --> LogC-WG 的逆向LUT,我们就需要知道正向LUT中间的计算过程,然后逆推过程,就可以得到了。
色彩处理步骤
从Arri 文档中可以知道整个色彩的处理步骤如下:

整个过程分为两个大的部分:
- 如果从传感器
Sensor上得到LogC-WG的RGB数值 - 从
LogC-WG转换到目标色彩空间
我们现在不管如何生成LogC-WG的色彩,仅仅关心 logC-->Rec709 的色彩转换步骤。
这个步骤可以理解为是一个LUT。
Tone-Mapping
大家都说:
Arri的图像感觉很柔和,看起来很舒服。
到底是什么让Arri 的图像看起来舒服?
Tone-Mapping 就是很重要的一个部分。(当然和LogC曲线本身也有关系)
LogC的图像看起来是”灰灰“的,为了图像看起来正常,就需要增加对比。
Tone-Mapping 曲线就起到了这个作用。

Tone-Mapping 曲线其实是一个1D LUT,官方的数据文档中提供的精度非常高!有65536 个点。
如果范围0~1,那么这个精度相当于16bit。
这里的函数为了计算速度和之后在Nuke中的稳定性,将精度下降到了1024 阶。
肉眼不可辨,数值误差大约在 10-4 ~ 10-5 这个级别上
为什么Arri不使用纯粹的数学曲线来进行Tone-mapping呢?
这个也许就是Arri柔和的原因了。这些数值应该都是Arri精心挑选的。
官方对于Tone-mapping 的参数一共有0~3四个级别,每个级别又按照中灰分为knee、shoulder上下两个部分。因此就有16种不同的Tone-Mapping 。
其中官方推荐和大部分DI 软件中使用的是K1S1。

| s0 | s1 | s2 | s3 | |
|---|---|---|---|---|
| k0 | k0s0 | k0s1 | k0s2 | k0s3 |
| k1 | k1s0 | k1s1 | k1s2 | k1s3 |
| k2 | k2s0 | k2s1 | k2s2 | k2s3 |
| k3 | k3s0 | k3s1 | k3s2 | k3s3 |
Color-Matrix
接下来就是色彩空间变换。官方给出了色彩空间变换矩阵(包括了白点变换)。
LogC to Rec 709
Rec 709 to LogC
这里直接计算得到了逆矩阵。
Gamma-Correction
大家知道Rec 709有自己的Gamma(可以近似理解为2.4)。前面已经对logC 曲线进行了Tone-Mapping,现在就需要将曲线逼近目标色彩空间的Gamma。
这一步就是Gamma 修正。

正向Gamma 修正

反向Gamma 修正
得到的图像如下:

结果验证
经过上面的三个步骤,得到的画面应该和通过官方LUT 得到的画面相同
原始 LogC-WG 图像
图片来源:Cinematography Mailing List - CML
tone-mapping(K1S1)
色彩空间变换
Gamma 修正(最终结果)
官方 LUT(EE_K1S1_Rec709)
最后两张图片就是比对的结果。肉眼不可辨,数值上的误差在 ~ 这个级别上。可以认为是相同的结果。这个级别的误差可以认为是LUT在中间差值上不同算法之间的区别。
逆向色彩处理
说完了正向的色彩处理过程(LogC–>Rec709)
接下来就是逆向色彩处理了(Rec709 –> LogC)
处理的过程正好相反:
- 反向
Gamma-correction - 反向 色彩空间变换
- 反向
Tone-mapping
具体的过程就不再说明了。相应的反函数、逆矩阵都已经在上面给出了。


