众所周知,当我们谈到色彩管理时,就会想到两个特性文件之间的转换关系,而这两个特性文件就是源设备的特性文件与目的设备的特性文件。源设备的特性文件包含的是文件中究竟是什么样的色彩信息,而设备的特性文件包含的则是在目标设备上能够复制出什么样的色彩信息。而设备空间还原出来的色彩信息是不是源文件中想要的色彩信息,就需要一个重量级的色彩模块来进行控制,它就是CMM(color management module),也叫做色彩引擎。
CMM是色彩管理系统中最基本也是最重要的组成部分,它为色彩管理系统提供了从源设备色彩空间到PCS,再从PCS到任何目标设备空间的色彩转换方法,而这种转换的方法,其实就是通过修改送往目的设备空间RGB或是CMYK值的色彩信息来得到实现的。而至于是如何修改,通过什么修改的,修改的量值又是如何定义的,这只有制作CMM的各个厂商心理更明白,这也就是为什么市面上有那么多家CMM的厂商(adobe、agfa、apple、heidelberg、koda、x-rite等),采用不同厂商的CMM所转换出来的色彩产生偏差的原因了。而影响它的主要因素有两个:插值算法、白点适应,下面对这两个方面分别进行一些探讨。
1、插值算法。插值算法就是利用函数在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数的近似值;CMM的插值算法也是基于这种算法原理进行的,简单的说,它就是根据一套特定的算法,选取RGB或CMYK节点上有代表性的颜色匹配数值的点来进行定义,从而达到模拟整个色彩空间的目的。
举例:正常情况下, RGB设备的三个通道中,每一个都包含了256个离散的值,这样算下来,RGB色彩空间中共包含了1670万种RGB颜色数值的PCS定义,如果每个PCS定义采用三个数值,每个数值按一个字节计算,那么这样一个RGB的特性文件的信息量将是巨大的,再把这个巨大的信息量嵌入到RGB图片中,或者是多个这样图片的一个大版文件中,文件的占用空间又将是不可忍受的。如果真是这样,那么,谁还会用这样一个看不到摸不着的东西呢。基于这种数据量和传输速度上的考虑,在“性价比”足够高的情况下,CMM的差值算法应运而生。
理想情况下,我们应该在CIE LAB色彩空间中做插值计算,使用LAB作为PCS,此时,对于CMM来说,它唯一要做的事就是在输入特性文件中获取相应的LAB值,在输出的设备特性文件中找到最接近的PCS值,并且查找到相对应的输出数值。如果按这种理念来推理,则CMM就并没有多大的用处,而实际情况也确实如此,如果按照这种做法来进行,在实际应用中并不能得到一个理想的结果,因为按照这种算法出来的结果,LAB并不像我们想像中的一样均匀,并且会出现一种让人意想不到的结果,比如实际的数值与想要的数值出现无法真正对应。正是基于这种考虑,不同的厂商才会采用不同的差值算法。不同厂家的差值算法主要体现在对节点的选择上以及计算时的优化上,一般可分为三大类:
A、 第一类厂商用一些数学公式,采用巧妙的算法,来弥补LAB色彩空间的不足,来修正它的不准确性。它采用了特殊的方法,来达到LAB色空间的均匀及平滑,来“欺骗”色彩使用者的眼睛,但是实际的效果却不如它看起来的那么完美。
B、 第二类厂商则不使用LAB色彩空间,而是将色彩转换到其它的色彩空间进行插值,从而使特性文件看起来更加完美和完善。
C、 第三类厂商则是在建立特性文件时,除了采用LAB或者XYZ中的任何一个之外,还采用一些特殊的自有的色空间,从而保证色彩空间的均匀平滑。这种做法首先是违反了特性文件具有开放性、可交换的原则,而且最重要的是它的实际效果并不如它看起来那么完美,尽管它确实可以弥补一些特性文件通过插值产生的不平滑现实。
不同厂商的插值算法不尽相同,这也导致了用不同厂商的CMM时,产生的结果会有很大不同的原因,比如在对于一些高饱和色的处理上,不同的CMM出来的结果就会千差万别,更有甚者,会把蓝色的天空转换过来后,变成紫色系的。
2、白点适应。眼睛适应白场颜色改变的能力,而白场则是设备可以再现的最亮的白颜色和它的光强度。相对于我们更关注黑点的密度而不是颜色而言,对于白点来说,我们更关注的是它的颜色,这也就是为什么我们在做显示器校正时,为了白场的颜色而可能压缩一些它的亮度的原因。人眼在进行白色“处理”时,总是会自动的去适应它,然后再根据这个白色去判断和适应其它的颜色感觉,正是因为此,我们在做颜色转换时,首先要做的就是把源设备色空间的白点转换成目标色空间的白点上。但是有时我们在进行这种转换时,却发现源设备的白点到目标设备上时,却不是我们想要的白色,而可能是在不同的色彩通道上都出现了相关的颜色信息,而换了另外一种色彩管理软件时,发现又没有这种情况出现,这就是不同厂商的CMM处理白点时的方法不同,所产生的不同结果(这和四种映射方法无关)。对白点的处理方法的不同,直接导致的是特性文件的白点不在同一主轴上,从而导致整个中性灰色偏向于某种色调,而经过它所产生的所有色彩都会有偏差。
如下图,我们用Print open软件自带的210个色靶生成的ICC---G7HD-2-340K95。icm
同样的210个色靶,我们用profilemaker生成的ICC----ProfileMakerCGATS-edit。icm
从上图中很清楚看到,不同厂家在进行CMM时,白点的算法不同,而生成的特性文件的差值算法也不一样,才导致两个ICC的差别这么大。
在我们进行色彩转换的过程中,CMM无处不在,PC及苹果系统,与色彩有关的所有的应用软件。那么如何去使用,如何去选择却又是我们感觉无从下手的地方。尽管我们会有很多色彩管理软件的选择,尽管与色彩有关的应用软件上都有相关的CMM模块,尽管现在ADOBE已经免费开放了其所拥有的CMM模块,但是在实际使用中,我们要尽可能的只用一家的CMM转换模块,这样做的目的是:
1、 避免用不同厂商的CMM进行多次转换后,会产生意想不到的结果,而且可能会产生因不同厂商的转换方法的不一致而出现色彩错乱的情况;
2、 就算是出了问题,我们可以有足够多的方式去找到问题的原因,而不是因为采用了多家的CMM而显得无从下手;
3、 就算是在不同的操作系统或者应用软件中,采用同一家的CMM,都会尽可能少的产生色彩转换后的偏差问题;
4、 更重要的是,只用一家的CMM后,我们可以有足够的经验和实际的数据来判断这种CMM的优点及不足。
在五彩缤纷的色彩世界里,CMM注定是一个默默无闻却又不辞劳苦的“地下工作者”,它所带给我们的是保证色彩在不同系统及不同设备间转换时的精确度,而同时,它又是让色彩产生错综复杂的“罪魁祸首”。我们无法左右它的命运(只有厂商可以把握它的生杀大权),但是我们却可以有权选择使用,去掌握它的内在规律,从而让它真正担当起色彩转换的“正面角色”。