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
具体的过程就不再说明了。相应的反函数、逆矩阵都已经在上面给出了。