谈谈色彩空间那些事
对于色彩,或许就是从你呱呱坠地到睁开眼看到这个世界的第一眼开始的。而近代医学表明,人类获取信息的70% -80%都是来自视觉观感。简单地说,色彩就是人的大脑对于光的感受。当然,这是人类通过肉眼对于色彩的一种感官。对于计算机来说又是怎样的呢?计算机的图像处理和视频效应都是基于人眼视觉原理实现的模拟方法。因此要将离散化的数字信息中的色彩信息精确还原为连续的视觉感受就必须了解色彩技术的来龙去脉。而这,也是本文要探索的。
色彩的演变
色彩理论的源头,目前公认的是古希腊时亚里士多德的《矣于色彩》。亚里士多德认为:原色是黑和白,是黑暗与光明的无穷无尽的产物一一非常近似我们中国的“阴阳”之说。后来他又认为除了黑白之外还有另外两个原色:来自阳光的黄色和天空的蓝色。同时亚里士多德还认为这些就是构成世界的四大物理元素,那些看到这里暗暗发笑的二二欠元爱好者是不是发现这就是“气水火土”的世界元素设置?
色彩还曾经被认为是被观察物体的属性。我们现在当然知道色彩是由于光和人眼的解析才产生的。
大约有1200年左右的时间,几乎所有科学家、艺术家和思想家都坚信亚里士多德的色彩理论。直到17世纪,伟大的科学家艾萨克,牛顿才证明光线和色彩来自太阳。那个著名的三棱镜分色实验,相信很多在校生都还记得吧一一一束阳光被三棱镜分解为不同色彩的特等色彩序列。
由此就产生了一种特殊的“色彩表述”工具一一将色彩条首尾相连后获得的环形色轮可以为我们解释不同色彩间的关系。色环的核心作用还是用来展示基本色彩之间的关系。比如,自然界常见的各种颜色光,都是由红(Red)、绿(Green)、蓝(Blue)三种颜色光按不同比例相配而成,同样绝大多数颜色也可以分解成坌工、绿蓝三种色光·这就是色度学中最基本的原理—三原色原理。
油墨或颜料的三基色是青(Cyan)、品红(Magenta)和黄(Yellow),简称为CMY。青色对应蓝绿色;品红对应紫红色。理论上说,任何一种由颜料表现的色彩都可以用这三种基色按不同的比例混合而成-这种色彩表示方法称CMY色彩空间表示法。彩色打印机和彩色印刷系统都采用CMY色彩空间。青色、品红、黄色分别是红、绿、蓝三色的补色。
了解了色彩的基本构成和基本原理之后,接下来就要弄清楚色彩的精确性,什么样的颜色才是准确的?这对于每个人分辨色彩都是非常重要的-那么到底色彩要做到多精确?
精准标定颜色的重要性
我想很多人都会遇到一个情况,那就是无法准确地描述每个颜色。举个例子.《Mr. BlandingsBuilds His Dream House》这部电影里有个奇葩的夫人,在跟室内装潢设计师沟通时,描述了—下她想象中的卧室的油漆色彩:“应该是浅绿色,不像知更鸟的蛋那么蓝-也不像水仙花的芽那么黄。样品这个颜色是我能拿到的比较接近,但有点偏黄-所以也别让调色的人别弄得太蓝。它应该是那种偏灰一点点的苹果绿。”……相信很多设计师大概看到这里都会崩溃。
为了避免出现这种情况,这就需要我们要引入计算机的数值来精确表述颜色。
计算机在使用发光体作为光源时,还是使用RGB作为色彩模型来制作发色设备。同时,计算机彩色显示器的输入需要RGB三个彩色分量,通过三个分量的不同比例,在显示屏幕上合成所需要的任意颜色。当使用2的8次方来表色时,我们就能获得28x28x28=16.7M种颜色。这就是为什么我们把好的液晶屏称为8bit屏,同时要获得更精确的色彩时,还可能要用上10bit甚至12bit的算法,而这个bit数就是色彩位深。电脑的屏幕和电视机、投影仪、数码相机都是这样生成色彩。
大部分的数码图像编辑软件,例如Photoshop也是使用RGB表色模式来进行数码色彩的分析和运算。例如现在常见的通用图像JPG格式-就明确规定使用8bit色深来表色,这时候数码相机的RAW格式中保持下来的12-14bit色彩信息就必然会损失掉一部分了。
HSL和HSV色彩模型(二级标题)
彩色印刷或彩色打印的纸张是不能发射光线的-因而印刷机或彩色打印机就只能使用一些能够吸收特定的光波而反射其它光波的油墨或颜料,CMYK颜色模型就是这么来的。相对于RGB的加色混色模型,CMY是减色混色模型,颜色混在一起,亮度会降低。之所以加入黑色是因为打印时由品红、黄、青构成的黑色无法实现真正的灰阶和纯黑。
除了常见的RGB和CMYK色彩模型之外,还有HSL、HSV(HSB)、YUV、YCvCr等颜色模型,这些都是用于不同领域的色彩模型。先看看静态图像领域的RGB和CMYK以及延伸的HSL/HSV。
首先要确定的是HSL和HSV是类似的色彩模型,在大部分图像编辑软件中,对于色彩的描述相对RGB这类比较抽象的表色方法,HSL这样的表色方法更为直观和简便。
什么是色相?
无论是HSL或HSV中-H都表示色相(Hue)o色相可以理解为色彩相貌,也就是对颜色的概况描述一一通常该值取值范围是[0度-360度],对应红一橙一黄一绿一青一蓝一紫一红这样顺序的颜色,也就是我们前面提到的色相环。色相是描述任何物体任何色彩都能使用的参数,哪怕这样的颜色很难用语言来表述。
S在HSL和HSV中表示饱和度(Saturation)(有时也称为色浓度、色彩度)即色彩的纯净程度,用作描述某种特定颜色的纯粹程度的参数。比如画家可能在涂抹天空的蓝色时加入一些淡褐色,从而获得蓝色天空的渐变效果。而摄影师修饰照片时可以通过调准饱和度获得某种特别鲜艳的颜色或有意把某种颜色变得黯淡无光。
HSL和HSV的不同
这两种颜色模型不同的就是最后一个参数oL表示亮度(Lightness/Luminance/lntensity),V表示明度(Value/Brightness)。亮度通常指一种色彩的明亮或黯淡程度-在大部分图像编辑软件中,都可以认为亮度就是黑白的变化。比如摄影师修图时改变亮度(调准曝光值)就是色亮度的典型应用。但是如果简单粗暴调準曝光,色相细节也会发生一定程度的改变,这就是亮度和明度的区别了。纯色的明度是白点变化,而纯色的亮度是中灰色点变化。
动态影像YUV模型
再说说动态影像中常见的YUV模型。YUV颜色模型中,Y是亮度信号参数,UV都是色差的参数。Y的信息和U.V获得的信息是独立的。这种表色方式可以保证三个信息量之间互不干扰,因此在电视广播信号中采用YUV方式进行编码。例如用Y亮度信号表示图像亮度,UV表示颜色信息就可以进行图像的大面积着色。我们能看到的很多视频拍摄器材中都会提到8:2:2视频编码-这说明该器材使用Y:U:V=8:2:2的方式进行色彩编码,Y亮度信号使用8bit色渲染1个像素点获得256级亮度,而UV色度信号对每4个像素点进行8bit色渲染获得同样的256级亮度,画面的颗粒感会较重,但是可以节省出更多的存储器空间。这样的编码方式会带来画质上的损失,但并不是所有人都能迅速观察到动态变化的视频中这种不明显的画质损失,因此视频图像压缩技术中经常使用这样的方案。典型的生活案例就是有些在线电影是1080p清晰度,但实际上文件大小只有不到2GB,而有些720p的网络视频都有4-5GB的大小,就是因为使用了不同的压缩采样。
RGB、CMYK-HSL和YUV之间只是同一物理量之间的不同表述方案,所以互相之间完全可以通过数学计算的方法进行彼此间的换算。比如在RGB和CMY的换算中,RGB为原色而CMY为补色-两个空间刚好互补。
在摄影摄像的调色过程中,“红色+青色=绿色+品红=蓝色+黄色=白色” 这一口诀很多人都会用,但其中的原理就是基于加色和减色空间的互补原理。
传统显示屏的色彩标准
RGB色彩模式中的标准色彩空间,摄影师们用到最多的就是sRGB和AdobeRGB。sRGB是微软和惠普联合提出的标准预定义色彩空间,s就是standard的缩写,也就是系统中经常看到的sRGB(IEC 61966-2-1)。建立这个标准的初衷是由于当时的互联网带宽还不够-需要尽量缩减图像文件的大小,以便在网上快速传递图像的同时实现准确的色彩映射。不同的文件格式都能使用或添加sRGB的标记用来指定使用这样的色彩空间。
sRGB色彩空间
正是由于微软的操作系统普及的原因,sRGB在所有windows操作系统中都被当作默认的色彩空间。在windows系统中,控制面板中有个“颜色管理”的图标,双击打开后看到的选项卡就能看到各类设备所匹配的色彩空间。
不过sRGB在实际使用中还是有一定的局限性。最大的问题就是各种打印输出设备所能呈现的颜色空间和sRGB对比起来区别很大。比如常用的某种喷墨印刷机和sRGB的色彩空间对比差异非常大。
sRGB虽然能覆盖大部分未来要印刷出来的颜色,但有时候某些特定的印刷颜色在sRGB中也无法呈现。这就是为什么很多人都发现网上下载的照片打印出来跟屏幕上还是不一样的根本原因。
AdobeRGB色彩空间
Adobe公司作为业界大佬,责任感很强,为了解决这个问题自告奋勇推出了AdobeRGB标准。相比sRGB.AdobeRGB显然能覆盖更多的色彩范围。不过这样一来对制造显示器屏幕面板的厂商也就提高了入行要求-毕竟sRGB设备更容易造,但能符合AdobeRGB标准的显示器显然要贵上一大截。
PhotoshopRGB色彩空间
当年作为Photoshop的开发人员,托马斯·诺尔(Thomas Knoll)决定根据他在SMPTE 240M标准文件中找到的规格来建立AdobeRGB标准。随着Photoshop 5.0的发布-该配置文件包含在此后所有的Adobe软件中。虽然广大用户喜欢更广泛的色彩,但是实际上这些狂热的Photoshop用户并不喜欢这种“看起来很美”的工作环境。更糟糕的是,很多工业图 像处理软件在复制红色主色度坐标时出错,导致SMPTE色准更加不准确。Adobe曾经尝试了许多策略来修正配置文件,例如纠正红色偏差导致的色饱和问题,改变白点使其与CIE标准光源D50相匹配,但所有的调整都使得CMYK转换比以前更糟糕。所以对于没有打印输出的用户来说,sRGB是比较靠谱的选择。
听起来sRGB已经挺美好了-但事实不是这样……因为色彩标准不等于设备色域。
工厂里制造的显示器实际是不能够完美达到或符合sRGB标准的-那么显示器的色彩偏差多少就只能靠校色设备和软件来匹配色彩标准,以此达到最近似色彩标准的状态。那么就要用到校色仪给设备做校色,才能保证显示器的色彩接近理想的色彩空间标准。
为印刷而生的CMYK
CMYK应用于印刷、打印行业更多一些,它相对来说也更为复杂。因为不同厂商制造的设备,采用的打印介质(纸、布料皮革)和墨水都区别很大,所以严格意义上说,是没法让不同的打印机达到输出效果一致的。比如photoshop软件里·日本用的Japan Color 2001 Coated标准就跟欧洲用的Coated FOGRA39(IS0 12647-2:2004)标准差别很大。如果再加入北美常用的US web Coated(SWOP)v2标准来对比,情况就会更复杂。所以并不是打印前在photoshop里把图像转换成CMYK模式就算预览了印刷效果。
视频的色彩标准
视频领域的相关色彩标准要求更为严格。因为视频行业的专业要求更高,这类最终产品往往是用来上广电播放的,一旦最终效果跟预制标准差异太大必定不能通过审核。举例来说,目前最常见的REC-709色彩标准是目前绝大多数视频格式都要遵循的标准。但REC-709在显示器、监视器以及投影仪上出现的时候,其实是执行了sRGB的色彩空间而白点色温并不是sRGB中规定的6500k(开尔文温标),但REC-709标准除了色彩空间之外,还包括很多别的技术指标,比如白点色温、gamma光度值、色深、帧速率以及线材无线电信号等一系列规范。
DCI-P3和Display P3
近几年随着新技术的出现,苹果公司在自己的设备上开始使用比sRGB色域更广的液晶面板。iPhone7和7P的系统就采用了苹果自己的DisplayP3标准。
但Display P3并不是大部分专业视频领域人士所熟知的DCI-P3标准。Display P3的白点色温是6500k,DCI-P3是5500k,Display P3的gamma是2.2-而DCI-P3的gamma是2.6——这样一来导致的结果就是Display P3设备上看到的白色更冷,色彩反差稍低,而DCI-P3的图像风格稍微偏黄反差较大。
如果iPhone7(包括现在的8和X)拍摄的视频和照片在没有经过色彩管理的sRGB设备和软件呈现处理的时候-很可能颜色都会感觉更黯淡,有种发灰的感觉。
在视频中,DCI-P3色彩标准显然比REC-709呈现的色彩更丰富。这个标准主要用于播放设备如高清数字电影和HDTV等领域,现在也被电影行业广泛采用。实际上-电影行业已经开始推广和普及更加科幻化的BT.2020色彩标准了。
BT.2020
很多Hi-Fi影音发烧友都会用各种通过杜比认证的设备观看高清或蓝光电影,而雄心勃勃的杜比视觉已经发布了新一代的认证标准。比如杜比视觉要求显示设备峰值亮度达到10000尼特(nit),事实上现在最高端的电视面板也只有4000尼特亮度。同时杜比视觉要求视频信号源使用BT.2020色彩空间,目前来说有这个能力做到比较理想的设备在行业中都是比较超前的旗舰级别产品。
写在最后:
对于当今的艺术家和科学家们来说,计算机技术和设备制造技术的飞速发展,已经揭示了非常多的科技和艺术间的微妙联系。诚然在任何学校的教育课程中,色彩学都不是必修课。色彩技术仍然是用来表达自身对于视觉世界的主观感受的工具。作为普通用户,通过一两篇文章来了解和学习数码影像中的色彩知识显然也过于简慢了。希望这篇文章能啟发您对色彩认知的热情一更进一步去尝试了解我们人类到底是如何通过一条窄窄的电磁波光谱进行沟通。正如保罗·塞尚所说:“色彩是我们的大脑和宇宙相遇的地方。”