Friday, September 25, 2015

简明屏幕校色及色彩管理

这个教程是给对屏幕校色完全不懂的“普通人”写的,内容力求傻瓜化,不讨论技术细节,简单直接达到目的,免得折腾和纠结。

校色仪买哪款

1. 首选 x-rite i1 Display Pro,精确性与速度俱佳(x-rite 的官方网店也提供出租服务);

2. 嫌上面那个贵的话,可以考虑 x-rite ColorMunki Display,速度比上面那个略慢;

3. 想尽可能便宜的话,可以买 Datacolor Spyder5EXPRESS,速度更慢,精确性也略差,但非专业用途也完全可胜任。

校色软件选哪个

请无视校色仪厂家自带的软件,直接上 DisplayCAL:https://displaycal.net/

校色步骤

0. 先是一点准备工作,恢复你的显示器设置为出厂默认,并且保证在下面步骤 6 开始前亮屏时间超过 30 分钟;

1. 点上面 DisplayCAL 官网链接,打开后点击“Get DisplayCAL”,然后在“Get DisplayCAL standalone”标题下,根据你的操作系统选择“For Mac OS X”或者“For Windows”下载相应文件并安装(Mac 下直接运行加载镜像即可);

2. 运行 DisplayCAL,软件会提示你安装 Argyll CMS,按提示下载并安装即可;

3. 如果你用的是 Spyder 系列校色仪并且使用的是 Windows,点击 Tools 菜单下的“Install Argyll CMS instrument drivers...”,并按照提示操作(过程需要重启)来禁用系统的驱动程序证书验证;

4. 把你的校色仪通过 USB 接口连接到你的电脑上,在 DisplayCAL 中选择你要校准的显示设备,然后点击右边的蓝色小按钮,随后按钮右侧会显示你连接的校色仪名称,并会弹出提示让你加载校色仪的修正文件,按照提示安装相应的修正文件,然后在显示的校色仪右边的“Mode”(如果你用的是 Spyder 系列)中,或是在下方的“Correction”(如果你用的是 x-rite 产品)中根据你使用屏幕的类型选择对应的项目,例如现在最常见的屏幕是白色 LED 背光的 LCD;

5. 在界面顶部的“Settings”中选择“Office & Web (D65, Gamma 2.2)”,然后点最下面的“Calibrate & profile”按钮;

6. 参考校色仪附带的说明书,把校色仪挂在屏幕上,测量部位大约对准新弹出的窗口中心,然后点击“Start measurement”,如果你校正的是台式显示器并且提供了分别调节红绿蓝三色的功能的话,按照实时返回的测量结果把三色调节平衡,否则只需要把屏幕亮度调节到你觉得合适的水平即可(一般以 100-150 cd/m2 为宜);

7. 调整完成后点击“Stop measurement”按钮,然后点击右边的“Continue on to calibration”按钮,接下来的过程会持续 30- 150 分钟不等,期间请保持周围环境光强度没有大的变化;

8. 校色过程完成后会弹出窗口提示结果,点击“Install profile”,取下校色仪,收工。

浏览器设置

1. Chrome 从 62.0 开始支持并默认启用色彩管理,本身不需要额外设置,然而还存在一些问题。
    - 对 icc profile 的支持存在和 macOS 上有非常相似的 bug,即不能正确处理除 single curve+matrix 以外形式的 profile,这个 bug 目前(83.0)仍然存在。所以如果你是在 Windows 下使用 Chrome 浏览器,请在上面校色步骤 5 中切换到“Profiling”一栏,把“Amount of patches”滑块移动到最左端(macOS 下不需要,因为 DisplayCAL 默认设置就是这样)。
    - Windows 下的 Chrome 只支持对图片及 CSS 元素进行色彩管理,无法处理视频(曾经也是支持的,现在却又不行了)。
    - macOS 下的 Chrome 也支持对图片及 CSS 元素的色彩管理,但视频的颜色是错误的,具体原因不明。

2. 基于 Chromium 的新版 Edge 和 Chrome 一样,不需要额外设置,存在的问题也相同。

3. Firefox 一直以来支持并默认启用色彩管理,但默认的设置存在问题,需要额外设置,并且还存在一些问题。
    - Firefox 默认只对有标记的图片和 CSS 元素进行色彩管理,无标记的则会忽略,需要手动更改设置:打开 about:config,搜索“color_management”,将“gfx.color_management.enablev4 ”改为“true”,将“gfx.color_management.mode”改为“1”,然后重启即可。
    - Firefox 从 78.0 开始也无法正确处理除 single curve+matrix 以外形式的 profile,和 Chrome 表现相同。解决方法同上。
    - Firefox 一直都不支持对视频进行色彩管理。
    - Firefox 在播放视频时貌似永远使用 BT.601 的色彩矩阵来进行 YUV-RGB 转换,而目前绝大部分视频都是基于 BT.709 色彩空间的,因此即使你的显示器通过硬件校准到 sRGB,视频的颜色也都是错误的。

4. Safari(macOS)支持并默认启用完整的色彩管理,不需要额外设置。

看图应用设置

看图软件太多啦,我没有一一测试过。这里只把 XnView MP 作为例子来说一下:打开 XnView MP 的 Settings - General - ICC,勾选 “Use ICC profile for monitor (slower)”,选择“System”,然后下方的“Default profile of picture”选择“sRGB”。

Photoshop 自带完整的色彩管理系统,一般情况下不需要进行额外设置。

顺便说,Windows 10 自带的“Photos”应用,可以识别图片中的 profile,但只会将其转换到 sRGB,而不会理会我们通过校色得到的 profile ;macOS 下的 Preview 应用支持色彩管理,但图片暗部细节和其他应用(Photoshop、Safari 以及正确配置后的 XnView MP)有轻微差异,原因不明,怀疑是 bug。

mpv/IINA

1. mpv 只需要在配置文件(mpv.conf)中增加一行“icc-profile-auto”即可;

2. IINA 需要打开 Preferences - Advanced,在“Additional MPV options”中添加一行,Name 为 “icc-profile”,value 为你的 icc profile 所在位置,不出意外的话应该是类似“~/Library/ColorSync/Profiles/xxx.icc”的形式。

madVR

1. 在 DisplayCAL 界面顶部的“Settings”中选择之前校色得到的 icc 文件名,然后在 Options 菜单中勾选“Enable 3D LUT tab”和“Show advanced options”;

2. 下面切换到 3D LUT 一栏,取消勾选“Apply calibration (vcgt)”,“3D LUT file format”选择“madVR (.3dlut)”,其他选项不需要更改;

3. 点击最下方的“Create 3D LUT...”按钮,开始生成 3dlut 文件,完成后点击“Install 3D LUT”按钮,完成;

4. 如果因为某些原因导致 3D LUT 没有正常自动安装,手动安装的方法是进入 madVR 设置,在 devices - 你的屏幕设备名 - calibration 中,选择“calibrate this display by using external 3DLUT files”,确保“disable GPU gamma ramps”未勾选,然后点击下方“BT.709”那一行右侧的黄色文件夹图标,指定为刚才得到的 3dlut 文件的位置。

Q&A

Q:我不想折腾,直接把别人在同型号显示器上的校色文件拿来用可以么?

A:可以试试,但不要指望准确,得到更差的结果也完全不奇怪。

Q:为什么不使用光度计?

A:x-rite i1 Display Pro 足以满足普通人的需要,包括目前各种常见的广色域屏幕。

Q:为什么不推荐其他更高级的蜘蛛(Spyder)型号?

A:所有同代 Spyder 的型号 sensor 都是一样的,更高级的型号只是在配套软件上有区别;我们这里已经直接放弃了配套软件,使用功能全面且免费的 DisplayCAL 了,所以更高级的 Spyder 没有意义。

Q:我不喜欢 DisplayCAL 的 profile loader 随 Windows 开机启动并一直运行,能不用它么?

A:可以,但是不推荐。如果不是因为 Windows 自带的色彩管理程序垃圾到了匪夷所思的地步,估计 DisplayCAL 的作者也不至于非要蛋疼单独写个 profile loader 出来。Windows 自带色彩管理程序的问题主要在于当屏幕数量大于一个时,只有在扩展桌面模式下能把不同的 profile 正确应用在对应的屏幕上,其他模式下的颜色都是错误的,而且在模式间切换时几乎总是会导致颜色错误;此外在加载校正曲线时的算法也有错误。如果你只有单个屏幕且不在乎精度损失,可以在安装 DisplayCAL 时选择“Let the operating system handle calibration loading”,如已经安装则打开 Windows Color Management - Advanced,点击最下方的“Change system defaults”,新窗口中的 Advanced - Display Calibration 下勾选“Use Windows display calibration”,并在 Windows Task Scheduler 中禁用 DisplayCAL Loader Launcher。

Q:为何在创建 3D LUT 时要取消勾选默认的“Apply calibration (vcgt)”?

A: 原因详见下面 20170915 更新说明。DisplayCAL 默认选择将此选项勾上的原因是为了利用 madVR 更高精度的内部运算和抖动处理,避免显卡 gamma table 校正造成的精度损失。如果你不在意我说的几点使用体验上的不足,一定要追求尽可能高的画质,请按照 DisplayCAL 默认那样勾选“Apply calibration (vcgt)”,甚至不嫌麻烦的话,从上面校色步骤的第 5 步开始,选择“Video 3D LUT for madVR (D65, Rec. 709 / Rec. 1886)”重新挂上校色仪测量一遍,获得一个精度更高的 profile。

===========================================================================

20200702 更新:Firefox 在更新到 78.0 之后修复了色彩管理失效的 bug,但是同时也“修复”了曾经能正确处理非 single curve+matrix 形式 profile 的“bug”……这样一来,所有常见浏览器都已经无法正确处理非 single curve+matrix 的 profile 了:macOS(Safari)自从 10.11 开始不行了,Chrome 从来没有行过,现在 Firefox 也不行了。因此,要保证浏览器内颜色正确,必须使用 single curve+matrix 的 profile,但是这种形式精度较低,对于大部分显示器(颜色响应线性度较好)来说不是什么问题,对于很多电视来说就没有办法了。

20200620 更新:最近发现 Firefox 出现了严重的色彩管理 bug,顺便测试了一波各个浏览器的色彩管理情况,结果非常让人失望。Firefox 在 77.0 引入的这个 bug 在 beta 阶段就已经有人报告,却一直没有修复;Firefox 至今也一直在用错误的色彩矩阵来处理视频,且从来没有支持过视频的色彩管理。Chrome 曾经支持了视频的色彩管理,却不知何时又取消了支持。结果现在在 Windows 下大概已经没有任何浏览器能在播放视频时显示正确的颜色了。本以为 Chrome 在 macOS 下会可以,结果却发现颜色也是错误的(和 Safari 以及 mpv 不一致)。结论:目前就色彩管理来说,Safari 是唯一靠谱的浏览器。

20180516 更新:为了避免 macOS 上的 bug,DisplayCAL 3.5 开始在 macOS 上默认设置即为 single curve+matrix,所以这里去掉了这个步骤。

20171114 更新:更新了关于 Chrome 的色彩管理部分,本想说可喜可贺 Chrome 终于支持色彩管理了,结果发现和 macOS 一样的 bug,这到底是 bug 还是 feature……此外添加了 Photoshop 和 Windows、macOS 自带默认图片查看应用的情况。

20171024 更新:修改了部分在 macOS 上的校色步骤。macOS 系统的色彩管理(ColorSync)在处理非 single curve + matrix profile 时存在严重的 bug,会导致很多地方(尤其是 macOS 自带的 Preview)暗部颜色被挤压(crushed)。这个 bug 应该是自从 10.11(El Capitan)开始出现,目前在 10.13(High Sierra)上仍然存在。如果你已经按照以前的方法创建了 icc profile 不想重新跑一遍,可以按照新增的校色步骤 5.2 中进行调整之后,在 File 菜单中选择“Create profile from measurement data...”,然后选择你目前的 icc 文件,保存为一个不同的文件名,然后安装新的 icc profile 即可。此外,增加了一条关于 3D LUT 的 Q&A。

20171022 更新:修改了浏览器和看图软件部分中和 macOS 相关的内容。macOS 系统的色彩管理颇有点微妙,我会另外撰文细说。

20170915 更新:重写了关于 madVR 的 3D LUT 设置方法,改为直接由前面得到的 icc profile 生成,且 3D LUT 中不包含 vcgt 信息;增加了一条 Q&A 。前思后想之后,我还是觉得默认的用 madVR 的 pattern generator 重跑一遍的方式太冗长了,所以改成了直接由 icc 文件生成。至于为什么要打开高级选项,取消掉 DisplayCAL 默认勾选的包含 vcgt,原因如下:1. 3D LUT 中包含 vcgt 的话,madVR 启动时就必须将已加载的曲线重置,这会导致在 madVR 启动打开视频的瞬间屏幕颜色突变(特别是如果屏幕本身在加载校正曲线前后差别较大时),同样,在播放视频结束后两秒左右,DisplayCAL profile loader 会再次加载校正曲线,屏幕颜色再次突变,使用体验不好;2. 并不是所有人、所有时候都使用全屏幕观看视频,因此当 3D LUT 中包含 vcgt 时,校正状态被重置,此时视频的颜色是正确的,但其他部分的颜色就都是错误的了。3D LUT 中不包含 vcgt 信息的话,校正曲线始终保持(也必须保持)加载状态,开始和结束播放视频时不会有颜色突变,而且能保证视频和其他桌面部分的颜色都是正确的。

20170914 更新:增加了关于浏览器、看图应用和 mpv/IINA 的设置,增加了 Q&A 部分。

20161022 更新:修订了关于加载校色仪修正文件的部分(我之前的理解有误);增加了为 madVR 制作 3D LUT 的步骤。

20160821 更新:更新了 displaycalGUI 的名称(改名为 DisplayCAL)和官网地址,以及安装过程按照最新版做了一点点简化。

No comments:

Post a Comment