谈谈ACES中的LMT(3)
分析型LMT
分析型LMT或称解析型LMT本身是使用数学来定义的,即对颜色值的一系列数学运算,这种运算可以简单,也可以相当复杂。
简单的,可以对图像的整体进行偏移运算,比如对比度、饱和度和曝光值,进一步可以运算色相、色温、亮度值及其组合。解析型LMT也与LUT和CDL一样,都是对图像的整体进行调整,即它无法像遮罩一样作用于图像的局部(空域) ,也不能作为关键帧随时间变化(时域)来调整图像。
因此,最简单的分析型LMT可能正是由CDL转换而来的,用于对图像的一级调色,稍复杂的则可能根据图像的亮度来改变饱和度、根据色相来改变亮度等等,这有点像DaVinci Resolve上的曲线工具做的事,只是所处环节不同。另外,由于LMT的结构设计,其对图像的操作顺序和数量是没有限制的,在渲染链上的LMT也没有个数限制,而且由于其输入与输出都是ACES数值,所以在单个复杂的LMT文件中对多个简单LMT进行排序和重新排序操作也是被允许的。
分析型LMT-示例1(降低对比度和饱和度)
这是一个简单的分析型LMT,用来调整图像的对比度和饱和度,主要用来降低ACES项目中原始素材的对比度和饱和度。

从原理上来说,所有进入该LMT的数据,被先由ACES 2065-1转换为ACEScct,然后经过CDL进行调整,最后再由ACEScct转换回ACES 2065-1输出。
这看上去很像经验型LMT将3D LUT封装到内部的情形,分析型LMT也是将ASC CDL封装到了自己内部,然而最大的区别还是CDL并不与任何终端关联并且拥有更大的数据范围,而且与LUT不同的是,CDL并不需要列出一个针对所有输入值的矩阵,而只要列出数学运算方法即可,这样它就能更加灵活的调整自己的运算精度和运算范围。
要注意,虽然ASC CDL只适合在ACEScc或ACEScct下运作,但LMT的创建规则并没有对其色彩空间进行限制,即意味着在更大的ACES线性空间下,LMT也能起作用,并获得与对数空间下相同的调整。
为了更加可视化LMT参数变化时对图像的影响效果,我们这里使用一个中性渐变曲线来举例。这个渐变包括了曝光值在ACES=0.18为中心的附近中灰色范围,我们比较LMT作用前后的输出代码值形成的曲线来观察这一变化。(你可能需要更了解CDL才能理解)

在上图中,如果曲线在横轴(场景曝光)的0处交叉,即表示两张图像具有相同的中间灰度(这样就既降低了对比度和饱和度又保持了感观上的图像『亮度』)。这样,为了让LMT中已经作用于ACEScct的ASC CDL曲线1a有相同位置的交叉点,就要调整CDL中的偏移和力度参数,然后调整坡度值来降低这根曲线的对比度(看上去会更直一点)。1b曲线相比来说比1a的对比度更低,而且通过偏移和力度参数的调整与原图像有相同的中间灰度。自此,图像的饱和度已经由于对比度的调整而自然连带下降了,但我们仍可以通过CDL中的饱和度参数来进一步调整。
曲线1c与1a和1b都不同,它使用另一种方法来调整线性ACES空间中的伽玛值,它的伽玛值为0.6,与1b的对比度很接近,但在左端向0降低,不会像ACEScct的趾端那样高。
下面是实际图像和矢量示波器上不同LMT的结果表现:
默认ACES to Rec.709
LMT 1a+默认ACES to Rec.709
const float SLOPE[3] = {0.85, 0.85, 0.85};
const float OFFSET[3] = {0.024, 0.024, 0.024};
const float POWER[3] = {0.9, 0.9, 0.9};
const float SAT = 0.94;
LMT 1b+默认ACES to Rec.709
const float SLOPE[3] = {0.6, 0.6, 0.6};
const float OFFSET[3] = {0.1, 0.1, 0.1};
const float POWER[3] = {0.83, 0.83, 0.83};
const float SAT = 0.92;
LMT 1c+默认ACES to Rec.709
// Adjust contrast
const float GAMMA = 0.6;
aces = gamma_adjust_linear( aces, GAMMA);
// Adjust saturation
const float SAT_FACTOR = 0.85;
aces = sat_adjust( aces, SAT_FACTOR);
分析型LMT –示例2
示例1挺简单的,对于一些一开始接触ACES调色,甚至那些觉得其色彩风格太像电视节目的人来说,这种LMT可能就够用了。但是,当你要完全匹配某种中性色调时怎么办呢?
假如某个调色师真的很喜欢某个“LUT X”的外观,非常习惯于那种对比度以及高光和阴影的回滚度,因此他们希望在基于ACES的项目中看到完全相同的中性色调。使用前面谈到的过程,你可以创建一个经验型LMT来完全匹配“LUT X”外观(别忘了它的局限性),但是如果调色师只希望附加这种色调曲线到对比度上,而不改变色彩,怎么办?这就是分析型LMT的应用机会了。
创建方法
匹配“LUT X”的色调曲线所需的调整实际上与创建经验型LMT的过程非常相似,只不过不是构造3D-LUT,而是仅通过1D-LUT来定义,这样当通过ACES系统发送ACES2065-1数据时,最终结果就能与LUT X匹配。
这一过程如下表所示:首先使用逆向IDT,将中性ACES值转换为Camera X编码的数据,然后通过LUT X处理以获得Rec.709代码值。最后,这些代码值再通过Rec.709逆向ODT处理(反向ODT和反向RRT组合),产生ACES值。我们将这些值封装为一个映射关系,即可用于ACES ODT与LUT X外观相匹配。输入与输出之间的这种关系(虚线框)被导出并填充1D-LUT,然后就可以作为LMT插入ACES工作流程中以重现LUT X的外观。

按照上图中的过程,使用ACES值的对数区间在-6.5和+6.5之间以中间灰度为中心形成13档范围,从而产生下图所示的1D-LUT关系——从横轴到纵轴。
原始ACES值与所得ACES值的关系图。
但是,你很容易就发现,此1D-LUT与经验型LMT有相同的问题,即它仅限于用于生成它的转换范围。在这个例子中,任何大于16.292的ACES值将被限制为9.378,任何小于0.00198的ACES值将被限制为0.00743,这样,通过此LMT可能产生的档数范围就由13变成了10。
为了扩展这个1D-LUT的可用范围,我们需要将这个对数空间扩展——简单粗暴——直接在这个对数空间中使用线性扩展(下图红色虚线),该LUT就可以支持更大的范围了。
直接在原对数曲线末端的方向上进行延长扩展(线性外推)
结果
下图你可以看到直接使用1D-LUT匹配色调的结果,这无需进行任何专门调色操作。
ACES ODT(左)与分析型LMT+ACES ODT(右)
LMT+ACES ODT(左)与LUT X(右)
仔细看的话,除了红色,两者的差别已经非常小。如果需要的话,你还当然可以为LMT增加更复杂度,以调整饱和度或特定的色调。任何其他调整都留给读者练习。
下一篇文章将探讨复杂的特定于色调的处理。
