视频的色彩管理流程和照片不一样,情况更加复杂,所幸作为普通用户接触到的只是观看并不涉及制作,让我可以省去大半笔墨。本文主角MPC-HC和madVR都是Windows限定,所以Linux和OS X用户可参考的部分只有生成3D LUT的设置。
两种方法都能实现视频的色彩管理,选一种即可。
Simple is the best: MPC-HC
不用任何插件就能实现色彩管理的视频播放器,同时对性能要求很低。
MPC-HC是一款开源媒体播放器,轻量、全能、易用、高效,用过之后甚至会失去尝试其它播放器的欲望……咳,就不多安利了,今天主要说的是色彩管理,MPC-HC从2010年的v1.4.2499.0版就开始完整支持ICC profile的色彩管理了,设置方法也十分简单。
开启色彩管理
打开MPC-HC,选项→输出→选EVR(CP),确定,右键菜单→渲染器设置→色彩管理→开启,就可以读取显示器的profile并正确显示颜色了。
不过EVR的色彩管理还是有缺点的,一是开启后暗部对比较强,黑位有一点crush;二是不识别Rec. 601(EBU/SMPTE C)和Rec. 709以外的色彩空间,比如以后会越来越多的Rec. 2020(UHD色彩空间)和DCI-P3。
如果想要更准确的暗部表现或者为4K内容提前准备,madVR就是你所需要的。
Can’t get enough of quality: madVR
一款以高质量闻名的视频渲染器,不计性能追求最高画质。madVR提供了各种自定义功能以及图像算法,色彩管理也是直接支持3D LUT(不支持显示器的profile),下面介绍的就是利用DisplayCAL生成madVR可用的3D LUT,让视频的色彩也够准确。
需要madVR、一款支持madVR的播放器(比如MPC-HC)、DisplayCAL(包括ArgyllCMS)。
安装madVR
官网左上角找最新版的zip下载,解压到想要安装的位置,双击install.bat
安装。
用DisplayCAL生成3D LUT
打开DisplayCAL(我假设你的显示器已经做过profile并且已经有DisplayCAL了)
下拉菜单选要使用的profile(或点读取其它profile)。
工具栏Options,Show advanced options和Enable 3D LUT tab打勾,再切到3D LUT标签页
Create 3D LUT after profiling: 校色完自动生成3D LUT,打算顺便校个色的话可以勾。
Source colorspace: 任选。这些都是视频的色彩空间,个人建议选大于等于显示器色域的,比如显示器接近sRGB的选BT.709,接近Adobe RGB/DCI-P3的选DCI-P3,大于Adobe RGB/DCI-P3的选BT.2020。直接选ACES我也没意见😃,应该没什么影响。
Tone curve: 我的设定和校色的一致,实际并不需要一致,这里的设定仅用于3D LUT,不会影响校色结果。Gamma的设定还是根据观看环境来(可参考之前的校色设定),之后madVR里调节很方便,不必纠结。两个SMPTE 2048的预设是给HDR内容准备的,然而我没有支持HDR显示设备,就不深入了。
Apply calibration (vcgt): 不勾。打勾的话播放视频时会重置显卡gamma table使校准失效,影响其它程序的颜色。
Gamut mapping mode: 不知道为什么是单选,反正Inverse device to PCS精度更高。
Rendering intent: 指定不同色彩空间之间的转换方式,除了常见的Perceptual, Saturation, Relative colorimetric, Absolute colorimetric外还有好几个选项,有兴趣的可以去官网或谷歌了解,一一介绍要疯。
3D LUT file format: 选madVR的专用格式。
Input encoding: TV RGB 16-235 (clip WTW)的选项我懒得试了,不确定有神马效果。
设定完成,Create 3D LUT…
完成后点Install 3D LUT。
设置播放器和解码器
※用MPC-HC和内部LAV滤镜演示,其它播放器可能有所不同
打开MPC-HC,选项→输出→选madVR
然后设置LAV的视频解码器,还是在选项→内部滤镜→视频解码器,Output Formats下面的色彩编码都打勾,直接给madVR渲染。其余设置供参考,不多解释了。
设置madVR
播放任意视频(或者进安装目录打开madHcCtrl.exe),右下角会出现图标,双击打开madVR设置
指定显示设备的类型。
根据显示器面板来设置色深(不包括抖动)。8bit以上的输出需要Direct3D 11的全屏独占模式,默认是Direct3D 9,要在rendering→general settings里启用use Direct3D 11 for presentation。
madVR支持三种色彩管理方式:
this display is already calibrated: 如果你的显示器已经是目标色域(比如Rec. 709或DCI-P3)就可以选这个。也就是说,支持硬件校色的显示器要先通过内置的3D LUT或外接LUT box校准、不支持硬件校色的显示器通过LUT box校准至目标色域后,不需要系统的色彩管理就能正确转换颜色。
calibrate this display by using yCMS: yCMS也是一套色彩管理系统,不懂。
calibrate this display by using external 3DLUT files: 这是我们需要的,通过3D LUT在渲染阶段转换颜色,对硬件没有特殊要求,笔记本屏幕也可以,唯一的开销是播放视频会额外占用一点GPU效能和100+MB显存。有正确安装3D LUT的话能自动识别路径。
disable GPU gamma ramps: 重置显卡gamma table,会影响整个显示器的校准,不勾。
这里的gamma设置是一个额外的gamma补偿,用于平衡环境光或者根据个人喜好调整。enable gamma processing启用后默认值pure power curve 2.20和禁用的效果是一样,改变数值可以调节明暗分布,另外BT.709/601 curve的低对比感觉也不错。
和色彩管理有关的设置大致是这些,madVR能做的还有很多。比如各种放大采样算法,玩下来Jinc给我的感觉最好,不过遇到一些片源质量比较差的还是会换回双线性;比如各种画质增强、降噪算法,有些效果还不错;还有刚说到的gamma控制非常有用;传说中对性能的影响也可以控制。总之效果很好,可玩性高,仅对3D LUT的支持就值得大力推荐了。
截图对比
黑位
EVR(CP) CM off | EVR(CP) CM on |
madVR no calibration | madVR 3D LUT |
EVR(CP) CM on | madVR 3D LUT |
白点
EVR(CP) CM off | EVR(CP) CM on |
madVR no calibration | madVR 3D LUT |
EVR(CP) CM on | madVR 3D LUT |
其它
EVR(CP) CM off | EVR(CP) CM on |
madVR no calibration | madVR 3D LUT |
EVR(CP) CM on | madVR 3D LUT |
EVR(CP) CM off | EVR(CP) CM on |
madVR no calibration | madVR 3D LUT |
EVR(CP) CM on | madVR 3D LUT |
补充说明
这些对比图本来应该带显示器profile的,结果发现体积大了不少而且Chrome不能识别gamma补偿(Firefox可以),只好指定sRGB了,虽然和我看到的视频播放效果(gamma是2.4)有所区别,不过用来横向比较是没问题的。由于PA238本身是非广色域屏,经过三年多的使用现在sRGB覆盖只有88%,启用色彩管理的效果不是非常明显(虽然我觉得也挺明显了),如果你用的是广色域屏幕效果应该很明显,大部分视频的颜色会变淡,回到应有的Rec. 709/601色域。
因为网页背景过亮尤其是黑位的对比不容易看清,附上打包好的原图(OneDrive),可下载后用看图软件比较。
Leave a Reply