色域到工作色彩空间的映射
注:本文最初发表于 2006 年。产品和概况已发生变化,但基本面没有改变。
Gamutvision可以显示看似代表输入设备(扫描仪和相机)色域的图表,但这些图表必须谨慎解读,因为 Gamutvision(以及其他色域查看器)使用的 RGB 输入模式包含的 RGB 值几乎肯定无法被大多数相机或扫描仪在真实物理光线下产生。因此,实际色域通常小于显示的色域——甚至可以说,输入设备的色域根本无法定义。柯达公司公布的用于徕卡 M8的 Kodak KAF-10500-CX 图像传感器的光谱响应曲线说明了这一点。
颜色之间存在相当大的重叠。这意味着未经处理的传感器输出(线性缩放除外)永远不可能包含纯粹的 R (255,0,0)、G (0,255,0) 或 B (0,0,255) 信号。当然,由于 KAF-10500 传感器的输出是模拟电压,因此很可能需要进行一些信号处理:转换为数字信号的过程在传感器芯片外部进行,并且很可能包含制造商的专有处理——即使是 RAW 文件也是如此。
从图中还可以看出,R:G:B 电压比对于可见光谱(约 380-720 纳米)内的任何单色(单波长)信号都是唯一的,因此,理论上,传感器可以区分任何可见波长:其色域涵盖了人眼视觉的全部范围。相机的实际色域取决于配置文件的质量:即它处理高饱和度色彩的能力。这无法仅从配置文件中确定,因为它不包含所有可能的照明色度值与相机 RAW R、G、B 值之间关系的信息。配置文件由色块数量有限的图表构建而成,这些色块无法接近纯单色值。它们不包含哪些 R、G、B 三元组值不对应于物理光的信息。
相机配置文件通常会与RAW格式转换软件一起安装。同样,扫描仪配置文件也会与扫描仪控制软件一起安装。我们以两个厂商提供的配置文件为例。当然,这些配置文件并非质量最优(该页面写于2006年)。许多用户使用配置文件制作软件创建自己的配置文件,并且大多都能获得令人满意的结果。
电影色域,苹果和橘子
你们当中有些人可能见过胶片色域的图片——通常以 CIE xy 图的形式呈现——(这种图并不常见)。这些图表中显示的胶片色域相当大:比 Adobe RGB (1998) 大,但不及 WGRGB 或 ProPhoto RGB 等超大色域色彩空间。
需要注意的是,胶片色域并非胶片对色彩的响应范围,而是胶片染料能够再现的色彩范围,也就是胶片的输出色域。它与胶片的色彩响应无关。因此,将胶片色域与数码相机的色域(或者至少是色域查看器程序显示的“色域”)进行比较毫无意义:这就像苹果和橘子一样,根本无法相提并论。
相机配置文件:EOS 20D.icc
EOS 20D.icc 文件显然是与佳能的 DPP(Digital Photo Professional)RAW 转换软件一起安装的,但我没有在 DPP 中找到选择相机配置文件的明显方法。它肯定来自佳能——带有他们的版权。而且毫无疑问,它是为哪款相机设计的。第一张图是 3D L*a*b* 图,显示了 EOS 20D 的完整色域(实线;输入配置文件 1)以及 Adobe RGB (1998) 色彩空间的完整色域(线框;输出配置文件 2)。本页所有图片均已进行一定程度的缩减。
为了突出不同配置文件之间的差异,显示画面已旋转。请注意,此图中未进行色域映射:渲染意图已设置为“无” 。此外,正常的 3D 显示顺序也已反转:已选择3D L*a*b* 参考(线框输出) (即,实体输入)。当输出色域小于输入色域时,正常的 3D 显示(线框输入,实体输出)才有意义,大多数打印机输出配置文件都是如此。但在此示例中,EOS 20D 的色域略小于 Adobe RGB (1998)。
当然,当图像从相机色彩空间转换到工作色彩空间时,会进行色域映射。映射变换后的 3D L*a*b* 图像如右图所示:这很简单。由于 Adobe RGB (1998) 的色域略大于 EOS-20D,因此最终色域与 20D 相同。对于此映射,感知、色度和饱和度渲染意图都会产生相同的结果。绝对渲染意图不适用于此配置文件。
这些结果表明,Adobe RGB (1998) 是 EOS-20D 的理想工作色彩空间,因为该相机的有效色域不会大于所选配置文件(本例中为 EOS 20D.icc)。更大的色域空间会造成浪费;使用 sRGB(一种小色域色彩空间)时,某些颜色会被裁剪掉。
EOS 20D.icc 是一个较大的配置文件,大小为 213 kB。它包含三个AToB n查找表(设备到配置文件的连接空间; n = 0 表示感知;1 表示色度;2 表示饱和度)。从配置文件的行为来看,这三个 AToB n查找表的内容完全相同。
3D L*a*b* 图只是Gamutvision 显示方式的几种类型之一。2D a*b* 饱和度图对于显示色域也很有用。该图的输入是一个包含HSL 颜色表示中所有色调和饱和度的图表,其中 L(HSL) = 0.5,这是颜色饱和度达到最大值的中间亮度值。纯红色 (255,0,0)、绿色 (0,255,0) 和蓝色 (0,0,255) 的 L 值均为 0.5。(HSL 颜色表示中的 L 与 L*a*b* 空间中的 L* 不同。)2D s*b* 饱和度图显示饱和度 S = {0, 0.2, 0.4, 0.6, 0.8, 1} 的 a*b* 值。
下图展示了两种映射的结果:1→2:EOS 20D.icc→AdobeRGB1998.icc,以及 3→4:EOS 20D.icc→*sRGB。结果可以有多种显示方式;下图利用了 Gamutvision 的Display A/Display B功能,该功能允许在同一张图上比较任意两个结果,并可快速切换。
虚线代表 Adobe RGB (1998) 输出,使用 EOS 20D.icc 中的色彩渲染意图进行映射;这是 1→2 映射的结果(与此配置文件的感知和饱和度意图结果相同)。实线代表 sRGB 输出;这是 3→4 映射的结果。显然,Adobe RGB 在绿色到青色范围内拥有更大的色域。二维 a*b* 饱和度图非常适合比较色域,但请记住,它仅显示中间色调,即颜色最鲜艳的部分。它无法显示高光或阴影部分的色域差异。
扫描仪配置文件:Epson Perfection 4870 Photo
Epson平板扫描仪配备用于扫描胶片的透明胶片单元,并提供两种配置文件:一种用于反射式扫描,另一种用于透射式扫描(即胶片扫描)。对于4870型号,这两种配置文件分别名为Per487_r.icm和Per487_t.icm。 它们可能仍然可用。
快速观察可知,4870 在反射模式和透射模式下的色域相似,且色域非常广:a* 和 b* 值轻松达到 LittleCMS 的 ±128 极限。但 Adobe RGB (1998) 在饱和高光颜色方面拥有更大的色域。这一点在任何二维图中均未体现。 | |
当采用色度渲染意图时,输出色域会落在输入色域之内。明亮、饱和的颜色看起来会略微变暗。 | |
右侧显示的是二维 xy 色度图。该图在感知均匀性上不如 a*b* 图,但它有两个优点。
爱普生色域(虚线所示)远远超出可见光范围,这种情况显然不可能发生。这是因为该色域是使用一组像素值计算得出的,其中包括红色和蓝色原色,而这些像素值在实际应用中是不可能存在的,因为它们与物理现实不符。这种情况在相机或扫描仪中比较常见,因为测试图表中高饱和度的颜色会产生相对不饱和的RGB值。 爱普生 4870 的色域不可能像其参数所示那么大。参数所示的色域边界仅代表该设备拍摄的文件可能达到的最大色域,而非设备的实际色域。相比之下,佳能 EOS-20D 的色域边界似乎更加合理。 将厂商提供的配置文件(佳能 EOS-20D 和爱普生 4870)与自定义配置文件进行比较,应该会很有意思。 |
| 输入配置文件代表相机和扫描仪等设备。它们包含将 RGB 输入值转换为 XYZ 配置文件连接空间的表格。但是,在所有配置文件类别中,只有输入配置文件包含大量在实际应用中永远不会出现的 RGB 值。而且,配置文件中没有任何信息指示这些值是什么。因此,输入配置文件不足以表征设备的色域。 使用 IT8.7 或 Colorchecker SG 等大色域测试卡进行测量,可以提供有关设备色彩响应的大量信息。Imatest Multicharts模块支持这些测试卡。 |
对 Luminous-Landscape 的徕卡 M8 评测的回应
在迈克尔·雷希曼的《徕卡M8——实战评测》(Leica M8 - A Hands-on Field Review )一书的“色域” (Gamut )章节(大约在页面中间偏下的位置),迈克尔讨论了各种数码相机的色域,并用从Phase One提供的ICC配置文件中提取的xy色度图进行了说明。在本节的结尾,他指出:
这次讨论的重点是,徕卡M8的色域似乎是我所知的所有相机中最广的,而且优势非常明显。但这是否意味着图像质量上的优势呢?据我的朋友Dr. Know (他是一位RAW格式软件开发者,在这个领域非常精通)所说,答案很可能是否定的。相机配置文件的色域图意义不大,与传感器或相机的实际性能并不相关。但是,我仍然认为我们在这里看到了一些东西在起作用,即使它仅仅表明了相机内部正在进行的电子滤波。如果有人真正理解我们所看到的现象的意义,我很想听听你们的看法。不过,请不要说你的猜测或想象,而是说说你真正知道的起作用是什么。
这是我的回复。迈克尔觉得大多数读者可能难以理解。(注:“ Dr. Know ”显然指的是Photoshop的原创作者托马斯·诺尔。)
我编写了Gamutvision和Imatest,这样我(和其他人)就可以回答诸如此类的问题。
简而言之,“Dr. Know”的说法是正确的。你无法从相机的ICC配置文件中推导出其色域。我原本希望能够做到这一点——这并非没有道理,因为你可以从配置文件中获得准确的显示器、色彩空间和打印机色域。
原因在于,色域查看器程序首先使用一组代表 RGB 色域极限(即饱和度最高的 RGB 颜色)的 RGB 像素值,然后利用配置文件将这些颜色转换为与设备无关的色彩空间(例如 CIE XYZ 或 CIELAB),该色彩空间可以用类似 CIE xy 的常用图表表示。类似地,相机输出(由去马赛克后的 RGB 值组成)也通过配置文件转换为 CIE XYZ 色彩空间,以便进一步转换为输出色彩空间(例如 sRGB、Adobe RGB、ProPhoto 等)。
色域查看器无法估算相机的色域,因为大多数接近色域极限的 RGB 值相机根本无法输出——而且该配置文件并未指示相机能够生成哪些 RGB 值。该配置文件所做的只是将 RGB 值映射到相应的与设备无关的 CIE XYZ 值,而不管相机是否能够生成这些值——即使它们与物理现实不符。与用于创建该配置文件的测试图表中的颜色接近的颜色应该能够正确映射,但对于不对应于有效物理颜色的 RGB 值,则可能会出现各种情况:色域表示中经常会出现奇怪的尖峰和不规则现象。这些不规则现象毫无意义:它们是计算伪影,并不表明该配置文件如何处理真实颜色。
我在 Gerard Kingma 关于Gamutvision 和 PrintFIX PRO的文章中评论过这一点。“ Gamutvision 使用的测试图案具有尽可能饱和的 RGB 值,但扫描仪在实际应用中可能永远不会输出这些值。因此,扫描仪的实际色域可能小于 Gamutvision 显示的色域。这个问题没有简单的解决办法…… ”
CIE xy“马蹄形”色域图的边界代表单色光——图外的任何颜色都不是物理存在的。封闭的马蹄形代表人类视觉的极限。色域查看器显示的超出马蹄形边界的颜色对应于相机在真实物理刺激下永远无法产生的RGB值。它们的存在清楚地表明,色域查看器无法为相机或扫描仪配置文件生成有效的结果。
相机色域主要取决于传感器的光谱响应或量子效率,这些信息可以在制造商的数据手册中找到。柯达公布了许多传感器的光谱响应曲线,包括徕卡M8使用的KAF-10500传感器和Phase One P45后背使用的KAF-39000传感器。您可以通过访问www.kodak.com/go/imagers找到这些信息。计算(甚至定义)相机总色域并不容易,但我们可以做出一个重要的观察:数码相机可以检测到所有可见颜色(大约380-720纳米米),并且由于每种单色(纯光谱)颜色似乎都有其独特的(R:G:B)比例,因此所有可见颜色都可以被区分,并且可能都在相机的色域范围内。但是,实际的相机色域取决于实现细节,而这些细节无法从ICC配置文件中提取。
KAF-10500 和 KAF-39000 的光谱响应(量子效率)曲线形状非常相似(表明它们的色域也相近),但有一个有趣的差异:KAF-39000 的红色效率远高于蓝色和绿色。这意味着 KAF-39000 输出的 R 值更大,导致纯红色 (255,0,0) 的 CIE XYZ 值更弱:这两个传感器都不太可能输出这样的值。这一点在您的照片中清晰可见,P45 的红色响应似乎比 M8 弱得多。但这只是色域查看器造成的假象,与相机的真实色域无关。
相机色域还受另外两个因素影响:镜头光晕和曝光。镜头光晕往往会模糊最鲜艳的色彩,因此在实际拍摄中会降低相机色域。徕卡镜头以其低光晕而闻名。曝光对测得的色域的影响相当复杂——尤其是一些相机的曝光策略是为了匹配 RAW 转换算法而设计的。例如,许多相机可能会相对于 ISO 标准进行欠曝,然后在 RAW 转换时使用“肩部”补偿来降低高光过曝的可能性——这通常是一个很好的策略,但却使色域测量变得困难。过度曝光总是会降低测得的色域。
测量相机色彩响应的最佳方法是拍摄并分析包含相对饱和色彩的色卡。24色色块的ColorChecker色卡不足以满足此需求;ColorChecker SG和(价格相对低廉的)IT8.7色卡则要好得多。Imatest Color/Tone软件同时支持这两种色卡,并能提供大量关于相机色彩响应的信息。






