搜索
热搜: 活动 交友 discuz
Hi~登录注册

什么是LUT?(转载)

[复制链接]
tiange 发表于 2014-9-5 10:55 | 显示全部楼层 |阅读模式
什么是LUT?
我们业内在LUT的应用方面有着许多混乱的认识,很多人会把LUT看成是一种“黑魔法”,然而实际上它们是再正常不过的东西。
因此为了帮助大家了解LUT的定义和工作原理,本文将会尽可能详细地为大家讲述LUT以及它的应用,包括用于校准的技术的LUT和创意Look LUT之间的不同。
LUT定义

LUT基本上就是一些转换模型,或者说是不同的组合,它的两种主要分支是1D LUT和3D LUT。
1D LUT
举个例子,一个1D LUT的开端可能是这样子的:
注意:严格来说这是3个1D LUT,因为每种颜色(RGB)都是一个1D LUT。
R, G, B
3, 0, 0
5, 2, 1
7, 5, 3
9, 9, 9
上面的意思是:
在R、G、B的输入值是0时,输出值是R=3,G=0,B=0
在R、G、B的输入值是1时,输出值是R=5,G=2,B=1
在R、G、B的输入值是2时,输出值是R=7,G=5,B=3
在R、G、B的输入值是3时,输出值是R=9,G=9,B=9
这是一个特别的LUT,不过你可以看到一个特定的R、G或B输入值都有特定的输出值。
所以如果某个像素的RGB输入值是3, 1, 0,它的输出值将为9, 2, 0。
如果R的输入值变成了2,但是G和B保持不变,那么只有R的输出值会改变,这时候像素的输出值为7, 2, 0。
理解了吗?
以上的内容可以用如下图像来表示:
剪辑.jpg
我们很容易可以看出,变动某个颜色输入值只会影响到该颜色的输出值,RBG的数据之间是互相独立的。
这就意味着1D LUTs只能控制gamma值、RGB平衡(灰阶)和白场(white point)。
1D LUTs加上3×3的模型
为了克服1D LUT的限制,我们可以对其应用一个3×3的矩阵来控制颜色饱和度和亮度,在完整的色彩空间中进行线性缩放。
R x x x R
G = x x x = G
B x x x B
虽然这种方法能够做出“可接受”的校准结果,但是显示效果中的所有非线性属性仍然不能得到改正。
3D LUTs
因为1D LUT和模型组合的色彩控制功能还是会有一些局限,因此在精确的色彩控制当中我们通常会偏向使用3D LUT,因为它们能够实现全立体色彩空间的控制。
最好还是用图像的方式来向大家展示:
剪辑2.jpg
先来看看三个色彩平面的相交点(代表某个输入值的LUT输出值),我们可以看到某个输入颜色的改变都会对三个颜色值造成影响,也就是说任何一个颜色的改变都会对其他颜色做出改变。
大家应该可以从图中看到,当颜色“平面”按照它们对应坐标轴的方向远离原点(0, 0, 0)时,它们的相应颜色也会增加。
由于3D LUT可以在立体色彩空间中描述所有颜色点的准确行为,所以它们可以处理任何显示的非线性属性,也可以准确地处理颜色突然的大幅变动等问题,这是令现在许多的显示器头疼的问题。
这样就让3D LUT非常适合用于精确的颜色校准工作,因为它们能够处理所有的显示校准的问题,从简单的gamma值、颜色范围和追踪错误,到修正高级的非线性属性、颜色串扰(去耦)、色相、饱和度、亮度等。基本上是所有可能出现的显示校准的问题。
由于3D LUT的高级颜色控制性能,它们经常也会被用于创意的Look Management和调色等工作。
然而,对于一些更简单的颜色转换来说,比如说不同色彩空间之间的转换(Rec709、P3、sRGB等),模型是更加常用的工具,不过得出的数据经常都会转换成3D LUT的形式,因为创作系统通常都不会直接使用模型。
那么3D LUT是不是远远优于1D LUT呢?

你在本页的底部看到1D和3D之间的对比之后应该就会认同这种想法了。
但这实际上取决于LUT的需求和应用情况……
1D LUT更倾向于为每一个输入和输出值提供对应的数值,所以这些取值在1D转换的范围内是非常准确的。
如果3D LUT要做到为每个输入和输出值提供对应的数值组合的话,那么这个LUT将会变得非常庞大,以至于不能使用。一个能够为10位图像工作流提供所有输入和输出值的3D LUT将会是一个1024点的LUT,它会含有1,073,741,824(1024^3)个点。
所以大部分的3D LUT使用的立体都在17^3到64^3的范围之内,其中17^3的LUT指的是每个轴都有17个从输入到输出的点,而在这些点之间的数值需要被插入。不同的系统会以不同程度的准确度来实现这点,因此即使两个不同的系统使用了同一个3D LUT,它们都有可能生成不同的结果。
我们很难在两个系统中使用同个3D LUT做出完全一样的结果,除非这个LUT的体积很大,这样就可以限制使用插值的数量。
3D LUT的编写方式也可能是非常令人困惑的。
3D LUT通常也会有三栏的RGB数值,不过一般蓝色的改变是最快的,绿色次之,最慢的是红色。
下面是一个“默认旁路”的17^3 3D LUT的前几行(输出与输入相等):
R, G, B
0, 0, 0
0, 0, 64
0, 0, 128
0, 0, 192
0, 0, 256
0, 0, 320
0, 0, 384
0, 0, 448
0, 0, 512
0, 0, 576
0, 0, 640
0, 0, 704
0, 0, 768
0, 0, 832
0, 0, 896
0, 0, 960
0, 0, 1023
0, 64, 0
0, 64, 64
0, 64, 128
0, 64, 192
0, 64, 256
0, 64, 320
0, 64, 384
0, 64, 448
0, 64, 512
0, 64, 576
0, 64, 640
0, 64, 704
0, 64, 768
0, 64, 832
0, 64, 896
0, 64, 960
0, 64, 1023
0, 128, 0
0, 128, 64
0, 128, 128
0, 128, 192
0, 128, 256
0, 128, 320
0, 128, 384
…, …, ..,
我们可以看到的是蓝色会快速地经过17点的循环,绿色会在每个蓝色17点循环之后变动一次,红色则会在经过整个LUT的长度之后更新一次,也就是在绿色经过17次循环之后。
这42行会在总共4913行当中继续重复……
很简单嘛!
好吧,其实没有那么简单……我们应该这样想:
在上面的立体图像中,红色平面从它的17个点的第1个点开始。
绿色平面和蓝色平面也是从它们的第一个点开始。
这个位置的输出值会被记录成LUT的第一行(0, 0, 0)。
红色平面和绿色平面会保持不动,蓝色平面开始一项它的第二个位置。
这个位置的输出值会被记录成LUT对的第二行(0, 0, 64).
然后蓝色会继续移动17个点(位置)。
然后绿色平面开始移向它的第二个点,蓝色继续重复它的17个点。
在绿色经过了它的17个点之后,红色开始移向它的第二个点,这个循环开始继续重复……
现在明白了吗?
所以对于非旁路的LUT来说,每个“平面”的位置会在17个点当中的每一个点之间发生变化,生成所需的输出值。
因此,一个真正的校准用3D LUT”的前几行应该是这样子的:
R, G, B
0, 0, 0
0, 0, 36
0, 0, 112
0, 0, 188
0, 0, 261
0, 0, 341
0, 0, 425
0, 0, 509
0, 0, 594
0, 0, 682
0, 0, 771
0, 0, 859
0, 0, 955
0, 0, 1023
0, 0, 1023
0, 0, 1023
0, 0, 1023
0, 32, 0
0, 28, 28
0, 28, 96
0, 24, 172
0, 24, 252
0, 20, 333
0, 20, 417
0, 12, 501
0, 12, 586
0, 8, 674
0, 4, 762
0, 4, 851
0, 0, 943
0, 0, 1023
0, 0, 1023
0, 0, 1023
0, 0, 1023
0, 92, 0
0, 88, 20
0, 88, 88
0, 88, 164
0, 84, 244
0, 84, 321
0, 80, 405
…, …, …,
LUT的作用是什么

所以从本质上来说,LUT的作用就是将每一组RGB的输入值转化成输出值。
通常来说(完全忽略上文提到3D LUT和1D LUT之间的准确度对比的话),1D LUT也有相应的应用需要,不过3D LUT在现实生活的应用当中会准确得多。
下面的Marcy照片展示了1D LUT和3D LUT之间的区别。
第一张图片是用一个1D LUT做出的,第二张图片是一个3D LUT的结果,两个LUT都是基于完全一致的数据的。
694032140.jpg 694032906.jpg
我们可以看到这两者之间的区别主要在于饱和度,因为1D LUT不能在不改变亮度的前提下改变饱和度。

LUT大小
人们对于LUT大小也存在着很多的误解,也不清楚怎样的大小才是合适的。
LUT的大小主要可以分成这三个部分……
1、首先是特定LUT的实际大小,这是由某个可用的DI系统或者LUT Box的大小决定的。一般的大小范围是5^3到64^3。
任何特定系统的LUT大小都是针对实时应用的,因此从经验来看,高端系统都能够使用大型的LUT。所以事实上LUT的大小是一个问题这种说法是不对的——这取决于DI系统(或者LUT box)能够使用的大小。
2、LUT大小的第二部分,也可能是更重要的一部分是,根据使用LUT来校准显示器的配置数据所建立的LUT。
生成LUT配置数据是非常耗费时间的,因为任何显示器的准确配置都需要生成准确的结果,为胶片的lab生成配置数据时也是一样的道理,其中的胶片负片和冲印底片需要使用密度测量来准确配置。
技术LUT(不是校准LUT)的生成是比较简单的,因为它不需要对显示器进行配置。所以它的任何大小都是很容易生成的,这只是一个用于生成结果模型或LUT的公式。
这点也同样适用于“创意LUT”,因为这种方法会先进行分级,然后从分级结果中根据所需的大小提取出LUT。
当制作校准LUT的时候,你需要配置尽可能多的点(尽管某些校准系统正在尝试避免这种操作,它们是根据配置分析来进行估计,从而使用更少的点)。所以它的问题在于进行配置所需的时间。
3、如何从较小的配置中生成较大的LUT……你需要在LUT生成过程中使用一些非常优秀的内部颜色引擎处理来实现这点,这是LightSpace CMS非常擅长的工作——它的准确度要比其他的校准系统高得多。
一些DI系统和LUT box也会在内部使用优秀的LUT插值,所以它们可以使用17点的LUT生成非常好的结果。不过有很多都是做不到这点的!这些糟糕的插值系统需要更大的LUT,因为它们本身不能做出插值。
校准、技术和创意LUT之间的对比
LUT可以有多种应用方式,其中最常用的三种应用是校准、技术和创意……
校准LUT

校准LUT是用来“修正”显示器不准确的地方,它能够确保经过校准的显示器可以显示尽可能准确的图像——在显示器的能力限制范围之内。这是最重要的一种LUT,因为它们的生成过程需要非常高的准确度,不然所有在“已校准”的显示器上显示的图像都是不准确的,使得整个工作的准确度都大打折扣。
这就是LightSpace CMS能够成为其他校准系统的实际标准的重要原因——它是所有系统当中最准确的。
技术LUT
技术LUT用于转换不同的“标准”,比如说从一个颜色空间转换到另一个,所以这些LUT是比较容易准确生成的。
令人意外的是,很多的技术LUT都不是准确的,而且它们尝试在不同标准之间转换图像时可能会造成严重的问题。所有使用LightSpace CMS生成的技术LUT都是准确的!
创意LUT
创意LUT通常会被称为“Look LUT”,因为它们通常都被摄制总监用于电影现场拍摄的外观设置,也会被用于向图像应用特定的外观模拟,例如某种传统的胶卷效果。
LightSpace CMS拥有生成任何Look LUT所需的所有工具,包括从DI系统中提取创意分级、使用Photoshop建立风格、使用LightSpace CMS内置的创意工具(例如胶卷模拟)等。

回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表