特性化和校准¶
简单来说,色彩特性文件是在 XYZ 参考色彩空间中定义了一组颜色的文件。我们可以使用色彩特性文件来定义:
图像中的色彩
设备可以输出的色彩
要选择一个合适的工作空间特性文件,你首先要确定使用哪些颜色,这些颜色可以被细分成多少种,然后据此决定颜色通道的位深度。现在假设有一条线,它位于 XYZ 参考色彩空间的坐标系上,连接着从纯黑 (0,0,0) 到纯蓝 (0,0,1) 的一系列颜色。我们假设它的 gamma 为 1,意味着它是一条数值从 0 到 1 的直线。我们假设它的颜色通道深度为 8 位,意味着这条直线被等距分成了 255 段,可以容纳 256 个不同的颜色坐标。通过上述的定义,我们便得到了一个线性特性文件。线性空间尽管在数学上准确,却不能很好地反映人眼的感知特性,我们在“Gamma 和线性”一章已经介绍过这个问题。如果在线性空间下面使用每通道 8 位深度,那么在人类最敏感的暗部颜色区域的可用变化级数就会很少,空间大部分的颜色感觉很浅,却在很少几级明度距离中一口气由亮变暗,所以特别容易发生颜色条纹,造成色调分离现象。
针对线性特性文件明度级数利用效率不好的缺点,人们设计了 sRGB 特性文件。sRGB 特性文件把颜色响应直线修正为一条 gamma > 1 的曲线,从而在计算机常见的每通道 8 位条件下把可用的 256 种颜色尽可能多地安排给了人眼最敏感的暗部颜色,实现了人类感知上的平滑过渡。 (参见:https://en.wikipedia.org/wiki/SRGB) 而一些其他特性文件,如 AdobeRGB 等是为了在同样颜色数量下面容纳更多的可打印颜色而优化的,它们一般会在色彩空间的青-绿方位进行延伸。使用宽色域进行作业可以改善打印效果,但必须配合已校准并配有正确特性文件的高品质显示器使用,否则极易造成问题。绝大多数常见的 CMYK 工作空间特性文件可以在每通道 8 位下面容纳它们的全部颜色,但它们之间的差别很大,所以最好先用常规的 RGB 工作空间制作图像,然后在输出时才转换至所需的 CMYK 特性文件。
我们前面已经提到过 8 位深度的颜色通道只能容纳 256 种颜色,所以 8 位的非 sRGB 空间容易在屏幕上产生颜色条纹。而把通道深度提升至 16 位时每条颜色通道可以容纳 65536 种颜色,因此在 16 位或更高位深度下面我们可以使用色域更宽的工作空间特性文件,如 Wide-gamut RGB 或 Pro-photo RGB,甚至无限色域的空间,如 scRGB。
然而 sRGB 只是一个通用意义上的特性文件,许多显示器还有它们的特性文件的实际颜色响应曲线并不完全符合 sRGB 规范。但不必担心,在使用 sRGB 工作空间时,只要加载了正确的显示器特性文件,Krita 就会自动在标准 sRGB 特性文件和显示器特性文件之间转换颜色,让显示在画布上的颜色符合 sRGB 规范。
这也是任何软件打开图像时 应该 做的两件事:
第一步,读取图像嵌入的特性文件,判断哪些颜色可以显示。绝大多数当代软件会做这一步,即使它们不做,也往往会默认文件为 sRGB,这在当代使用情景下面是安全的。
第二步,把图像的颜色按照显示器的特性文件进行转换后显示。遗憾的是极少软件会做这一步,大多数软件会按 sRGB 原样输出,因此会造成显示效果的偏差。
Krita 会尽可能地使用特性文件,它也自带了大量的特性文件。
然而 Krita 却偏偏没有自带你的显示器的特性文件,因为每台显示器的显示效果都是不同的,你必须使用校色设备自行制作显示器的特性文件,这个过程就叫做显示器的 特性化 。显示器特性文件是色彩管理流程中最重要的特性文件,缺少了它,你将无法按照 Krita 的设计意图来发挥它的色彩管理功能。无论如何,这不影响你 Krita 里面任选一种它自带的特性文件作为工作空间。只是为了取得最准确的显示效果,你应该考虑为你的显示器进行校色和特性化。
校色设备¶
校色设备通常是一种叫做 色差计 的特殊小型数码相机,另外还有高级一点的 分光光度计 。我们以更常见的色差计为例。要进行校色和特性化,先把色差计通过 USB 连接到计算机,然后运行它配套的特性化软件。
备注
如果你的校色设备没有配套软件,或者你不满意自带软件的结果,我们推荐使用 ArgyllCMS。这是一个命令行软件,一般人可以配合它的图形化前端 DisplayCAL 使用。
色差计的感光元件会在一种预设白的基础上测量最纯的红、绿、蓝、白、黑等颜色在屏幕上的实际显示效果,它也会测量一些中间灰的实际效果。
测量所得的信息会被存入一个 ICC 特性文件,这便是你的 显示器特性文件 了。计算机加载该文件后即可修正显示的颜色。
我们不建议在进行特性化之后更改显示器的显示参数 (对比度、亮度等)。一旦更改,之前制作的特性文件就失去了意义,因为屏幕的显示效果已明显变化。
要让你的显示器更加精确地显示颜色,你可以有两种校色办法:仅进行特性化或者校准并进行特性化。
仅进行特性化:按照显示器的当前设置进行测量,测量得到的数值会被存入设备的色彩特性文件。具有色彩管理能力的应用软件会按照这个特性文件来调整图像源颜色数值在该屏幕上的最佳显示方式。校准并特性化:在进行特性化之前先把显示器调整得尽可能符合某种规范,比如符合 sRGB 规范。校准时首先调整显示器硬件的参数 (亮度、对比、 gamma 曲线等),然后用软件生成一个 vcgt (显卡 gamma 表,video card gamma table),加载到 GPU。
这两种方法我们应该如何选择呢?
仅进行特性化:
- 高品质显示器
你的显示器在特性化之后可以正确显示出 sRGB 空间内的绝大多数颜色,如果它的色域比 sRGB 宽广,它还会显示一些在 sRGB 空间之外的颜色。如果你需要更宽广的色域,可以在显示器的原生色域模式下进行特性化。如果你需要更好的 sRGB 兼容性,记得在特性化之前把显示器的颜色设为“sRGB 模式”。
- 低品质显示器
你的显示器在特性化之后虽然可以正确显示出 sRGB 空间内的一部分颜色,但大量的颜色细节可能会丢失,颜色的色相甚至也会发生变化。为了得到更接近标准 sRGB 空间的色彩,我们建议对低品质的显示器进行校准并特性化。
校准并进行特性化:
- 低品质显示器
如“仅进行特性化”中所述。
- 多显示器配置
在使用多个显示器时,尤其是在使用镜像模式在多个显示器上显示相同画面时,你无法把内容同时用两个不同的特性文件进行色彩管理。在这种情况下,可把两个显示器按照 sRGB 特性文件 (或者两个显示器同时支持的其他特性文件) 进行校准。
- 软打样
如需为软打样匹配一模一样的渲染环境,你可以在特性化前把显示器校准到尽可能接近软打样目标的效果。但在不同的显示器校准状态和特性文件之间来回切换时应极为谨慎,以避免在错误的校准状态下加载了不属于它的特性文件。