颜色知识,RGB显色系统详解(下)

之前写的几篇:

颜色知识,RGB显色系统详解(上)

颜色知识,RGB显色系统详解(中)

今天继续高冷的烧脑内容:

——为什么PS要有16位/通道和32位/通道的颜色深度设置?

 

为了防止看到最后有人看晕,先来一个简单粗暴的比喻:

我们小时候参加数学考试都要带草稿纸的对不对?

对改卷子的老师来说,只看你的最后交上去的考卷就行了。但是作为答题的我们来说,如果单靠心算,要么只能给一个估算的大概值,要么就算着算着算错了(答题从来不用打草稿的学霸请走开)。。。

 

其实,16位/通道和32位/通道这些额外增加的数据深度,以及前面介绍的Alpha通道,就是给计算机发的草稿纸!是给计算机打草稿用的!

它们对24位色的显示器本身(相当于考卷)是没有意义的,但是对于承担数据处理工作的计算机却很有意义,Over。

 

简单说,16位颜色深度和32位颜色深度,都是为了PS做后期图片处理用的。

如果你只是用PS画原稿,8位深度完全够用。修照片,要用16位深度。处理HDR图片,用32位深度。

 

好奇心还没有被满足的同学请继续看。

 

具体什么是16位/通道数据深度?

 

24位色,是目前RGB显示器(注意是显示器,不是电脑)的标配,意思是RGB信号分别分配了8位的数据深度,可以各分为256份。

这就是最常用的8位/通道配置(8bit-per-channel,为了方便,以下都用8-bpc缩写表示)。

 

如果是16位/通道,就是R/G/B分别有16位数据深度。

——其实PS里只分配了15位,所以每种颜色可以分为2的15次方=32768份。这就应该是15×3=45位色了。(不要问我为啥叫16-bpc实际上只有15-bpc。。。楼主也不知道。。。)

 

至于32位/通道,每个通道可以分得更加精细,2的32次方=4294967296份。。。

 

所以,回答上一章留下的问题:32位色和32位/通道,它们不是!一回事儿!!

一个是指每个像素数据有4个通道(RGB+Alpha),每个通道有8位。

另一个,则是指每个通道有32位数据,单个通道的数据量是32位色的4倍。

 

至于为什么它们叫了这么容易混淆的名字。。。学理工的人起名字就是这个德行,你懂的。。。

好了,基本情况介绍完毕。

 

至于大家最关心的问题“什么时候需要用16位/通道的设置”,所有网上能搜到的中文答案都是这么说的:平时就用8位/通道,就行了!

 

嗯,这么说是没错的。但是楼主这样钻牛角尖的人怎么会满足于这种小白答案?!咱继续。

 

——16位/通道是干嘛用的?

 

简单说,为了避免对24位色图像的后期处理出现“色带”问题。

 

目前,除了一些非主流的显示器(比如RGBW像素、四色显示器之类),24位色就是显示器的标准配置。也就是说,计算机传送给显示器的数据一定是24位的。超出24位的数据,显示器都不知道该拿它们怎么办。。。

 

但这是仅仅是对显示系统而言的。电脑不仅要存储、显示图像,还要对图像做各种修改、编辑,也就是对图像数据进行计算处理。这样24位的数据深度就不再够用了。

 

楼主举个跟钱有关的例子。

你的信用卡平时怎么记帐?是精确到分吧?比如,-¥119.34元。

而为了方便,我们往往还钱都会还整钱,比如上面的¥119.34元就会干脆还120块。既然我们只关心到整数的精度,可不可以记账的时候就直接四舍五入、化零为整了?——试问哪家银行敢这么干?一次两次就算了,一个月下来,这误差不知道有多大!记少了银行不干,记多了你干不干?

也就是说,记账的时候,我们需要的是整数,但计算的时候会保留两位小数,避免误差在计算中的累积,导致最后对不上帐。

——怎么样,有点直观感觉了吗?

 

记账只是加减法。一旦涉及到乘除、求导、指数等高阶计算,误差的累积速度更是惊人。

大家试着算一下:1÷3×3=?当然大家都知道结果是1。

但是如果是计算器算呢?

 

如果你们手上有安卓系统的手机,请打开手机里的计算器来算一下,得到的答案是0.99999999。。。

因为手机计算器计算过程中,会保留8位小数,所以1÷3=0.33333333。再乘以3,就是0.9999999。。。不过,好歹误差还是远低于千分之一的,一般应用里足够了。

 

这是不是有点颠覆你的感觉?计算机其实很笨,对一些简单问题的处理甚至还比不上人心算。为了用正确的算法得到靠谱的数值结果,软件背后的程序员们必须十分小心,要付出很多很多艰苦的努力。

(PS:如果用苹果手机或者电脑上的计算器算,就还是等于1。我觉得这两家的工程师应该是专门优化了这个算法。谷歌的工程师们加油啊。。。)

 

如果再极端一点,看看整个计算的中间过程,如果只能保留整数位会发生什么。
1除以3等于0.33333333,四舍五入一下,就是0了。。。0再乘以3,等于0。。。

——那么结果就是,1÷3×3=0!这是什么鬼?!

——这就是中间值没有使用小数带来的误差悲剧。

 

所以,当参与计算的数据是N+1位时,能得到的精确值最多只能到N位。这就是被一门叫做《数值计算方法》的学科里提出的“有效数字”的概念。

——说人话!!

——好。一个24位色的图像,是标准的8-bpc数据深度。如果要对图像数据进行复杂的运算,计算机内部计算用的数据深度,必须大于显示用的8-bpc。

 

回到PS这里,如果你的工作主要是做后期、做特效,特别是照片要修色,修改色阶输出什么的,就最好一开始就选择为16位精度!否则,在软件进行内部计算的时候,如果参与计算的数据位数不够,就有可能造成下面的“色带”现象:

出现这个现象的原因,在于第一步开始压缩色阶输出范围的时候,过渡色的细节信息被“压缩”了,变成了一片色差很小的灰色。由于在计算机里由于没有分配空间存储这些被“压缩”的信息,这些细节只好被扔掉。恢复色阶后,这些信息也没地方找回来,所以只能恢复一个大概。这样,大量的过渡色被“吃掉”,最终形成“色带”。

那么,如果做这个计算的时候,有“草稿纸”能暂时记一下中间数据,不就能把丢失的细节找回来了?大家可以自己在PS动手验证一下,如果采用16-bpc的设置,则可以几乎完好无损的恢复原图。这就是因为16-bpc的数据存储空间比8-bpc大了整整一倍的缘故,被“压缩”的细节信息有地儿暂存,恢复色阶的时候就可以原地满血复活。

 

如果你之前曾遇到“色带”问题,是不是百思不得其解?吼吼,现在明白了吗?

 

但是!如果不管三七二十一,任何工作都设置为16-bpc,也会有别的问题。

16-bpc的设置下,数据存储空间翻倍,文件的大小也翻倍了。也因此计算机数据处理的工作量也大大增加了,如果文件数据本身就很大,处理数据的速度会明显变慢。32-bpc文件大小更是翻了两番。

并且,PS里有很多滤镜效果都不能支持16-bpc,绝大部分不支持32-bpc。

楼主对此的推测是,其实没什么别的原因,就是计算量太大了,搞不过来。并且,为了在16-bpc里尽可能多的使用滤镜,把16-bpc的实际数据量降到了15-bpc,只是保留了原来16-bpc的名字。以上只是推测,有没有高人有Adobe的内部消息的,跟楼主悄悄说一下:D

 

而且我知道有些画手,在PS里图层的数量动不动以百位计,经常把电脑搞死机。如果动不动就发大招,采用16位数据深度,电脑工作的负担翻了好几倍,有些老机器不是要卡成狗?

 

实际上,你完全可以在使用PS的过程中在8bit/channel和16bit/channel的之间来回切换(图像->模式)。只有在你感觉可能需要使用较深的数据深度的情况下,再用16-bpc的设置。

 

那么问题来了,

----什么是“可能需要使用较深的数据深度的情况”?

 

1.有渐变颜色的地方,特别容易出现“色带”。

比如照片里面的蓝天、水面,UI里面用过渡颜色填充的背景,等等。因为渐变的颜色,从原理上说,每一个色块之间的色差应该很微小,才能形成自然流畅的渐变色,一旦色差跨度反常的变大,就会出现“色带”。

所以,照片是出现“色带”的重灾区。对摄影师们来说,对照片修片还是尽量用16-bpc设置为好。此外,JPEG格式只支持8-bpc数据深度,而RAW格式支持16-bpc。为了在后期有更大的调整空间,拍照还是应该保存为RAW格式。

(图上的右边例子里,原图已经出现了轻微的“色带”)

 

2.带文字的画面。

我们看到的文字颜色也许是黑色的,但其实文字的细节之处(特别是有斜线的位置),有很多不同的灰阶(过渡色)。所以文字的斜线部分也容易出现看起来像锯齿一样的“色带”。

 

如果你处理的图像是动画、插画风格的,色彩变化剧烈、渐变颜色填充用得少,这个问题就不会很明显。

如果是尺寸比较小、大面积纯色用得多的类型,比如logo之类,也完全不用担心这个问题,选择用8位数据精度一点事儿也没有。

比如驼灰灰这样的:

 

对楼主这样的懒人来说,平时一概用默认的8位/通道设置。

只有修图走到某一步发现:哎呀,出现“色带”了!退回去嘛,配置成16位/通道再来一遍就是了,哈哈哈哈~

 

明白了吗?楼主为什么要强调图像、通道这些CG的概念和数据有关?

CG=ComputerGraphic。

这个“计算机”的名头可不是白给的。

和传统的图像相比,数字图像的确有很多特性和它的数据本质息息相关。

你甚至会发现数字图像处理的问题发展到一定阶段,其实本质是数学问题。在Adobe之类的公司,还会专门有叫“算法工程师”的职位,基本不用写代码,一心研究算法。

 

大家不用一听到数学就腿软,反正我们只负责用,难题都交给那些学数学的好了,嗯哼。

不过楼主一想到,某种意义上,设计界的未来竟然掌握在一群数学家手里,就觉得很。。。反差萌。。。望天。。。

 

接下来,

——什么时候需要用32位/通道?

 

如果你都问出这个问题了,其实就说明你不需要用它了。。。

因为32位/通道,是为了应对更极端的应用场合:处理高动态范围(HDR)的照片。

要用的人自然就用了,不用的人完全可以不管它。。。

 

——楼主你是不是想偷懒?你是不是自己都搞不明白就想糊弄过去了!?

呃,被你看穿了。。。

楼主平时的工作完全用不到HDR,所以以下内容完全是查资料后的理解。。。有错误的地方还请高人指正。。。

 

--什么是HDR?

 

HDR简单的说,就是要解决逆光拍照的技术。

 

逆光拍照~困扰了摄影师们多少年的难题~~~

夕阳西下,美女回过头来嫣然一笑,美啊!但是拍出来一看,夕阳是有了,但是美女变成了黑脸包公。。。

 

Why?

 

要讲清楚这个问题,首先大家要知道,人的眼睛对亮度的适应性是非常非常厉害的。

自然界的照度(可以简单理解为平时我们说的亮度,要掰扯这个概念太花时间),变化范围比你能感觉到的要大的多。从月光下的1个lx以下,到夏天大太阳下的20Klx以上,最大值和最小值能相差几十万倍!

 

人眼对此表示,自动适配毫无压力!这个就叫做动态范围大。

 

目前,地球上的所有相机,不管是胶片的还是数码的,不管是CCD还是CMOS,也不过多么高级,跟人眼比动态范围,那都只有抱大腿的份!

所以,照相的时候,如果取景器里同时有高亮的物体(夕阳),又有低亮度的物体(逆光的人),相机就只能将就其中一个。顾得上夕阳,就顾不上人。人像的曝光值合适了,夕阳又会过曝。

也不一定非要是逆光,只要照片的高亮部分和低亮部分亮度差异太大,相机的曝光设置就会出现熊掌和鱼翅不能兼得的问题。

 

怎么办?传统方案有:加闪光灯、反光罩(增加前景物体的亮度),镜头前加滤镜(减低背景天空的亮度)。胶片时代还有暗房的局部加减光技术可以弥补一下。PS里也有和暗房技术类似的Dodge和Burn两个工具。但是这些手段都各有各的问题,局限性也比较大。

 

随着这些年数码相机技术的飞速发展,原来的许多摄影技术难题都解决得七七八八了。高像素、变焦、防水,都不再新鲜。2003年佳能的EOS300D面世,更把数码单反也拉下了神坛。做相机的厂商,那个愁啊~还有什么能当卖点的?对了,逆光拍照还是个难题,弄这个!

 

于是,从2004年开始,各大品牌的相机都推出了自己的新技术,雄心壮志要搞定这个难题。这些新技术,就被业界统一视为高动态范围(High-DynamicRange,简称HDR)相关技术。HDR这个名词正式开始进入消费者视野。

 

现在一晃十年过去了,就连手机用的摄像头,也有很多号称采用了HDR技术。效果嘛,应该说有明显进步,但依然是远远不够滴。当然这也不能怪他们。同志们,硬件的每一次进步,都是在哗哗的烧钱啊!所以基本只能是爬行动物的速度,一步一步往前蹭。。。

 

但是软件就不一样了!

Photopshop说,我们2005年的CS2就用软件办法搞定了HDR问题好不啦!效果冈冈滴!还不用多花钱!

 

其实软件的HDR原理很简单。

举个例子。夕阳下的街道,因为街道被高楼挡住了阳光,所以正常曝光的照片(图①),为了兼顾天空和街道,天空有点太亮了,街道又太黑。

于是,我们可以把曝光量调高一档,专门拍街道,获得阴影部分的细节(图②)。再把曝光量调低一档,得到天空的正确曝光图片(图③)。得到这三张照片后,用PS合并一下,把最佳状态的天空和街道拼合到一张照片上,Bingo!

那么它和32-bpc又有什么关系呢?

 

我们来观察一下图②的天空部分。由于过曝,画面已经一片白了。这个白,用PS的拾色器查看一下,是8-bpc下的纯白色(R255,G255,B255),就是说信号已经满格了。但如果用眼睛看,天空事实上是很漂亮的渐变颜色。也就是说,天空有很多细节信息超出了图②能显示的范围。

 

软件解决HDR的办法,就是把所有细节信息收集起来,比如街道的细节、天空的细节,放到同一个筐里,然后挑选出我们需要的部分,拼成一幅完美的图像。

这个筐,就得足够大,容量至少得大于图①+图②+图③。它不但要保存从0到255之间的、能显示出来的信息,还要保存超出显示范围的高亮信息,以供后期处理。

 

--32-bpc就是为此而生。

它采用了浮点型的数据类型,RGB的0到255的变化被0到1取代,并且最高可以到20。也就是说,32-bpc图像的亮度可以是8-bpc图像的20倍,虽然在显示器上看可能都是一片白,但其实它在白色的背后还保存了很多细节。

 

可以看到,图①、图②和图③在PS里拼合后,形成了新的32-bpc的HDR图像。但这只是把图①到图③(其实还可以更多幅)扔到了筐里而已,至于怎么挑,还需要手动调整。32-bpc下保存的丰富细节,就为这种调整提供了充裕的余地。

下一步,把32-bpc图像转换成8-bpc的图像的过程,就是一个挑选的过程。这时,PS会保留你需要的细节,同时扔掉那些不再需要的。下面的界面就是在问你:大哥,怎么扔?

 

经过如此这般调整后的HDR图像,直观上的对比度可以做得很高,锐度也高,细节可以非常丰富,由此实现一种普通图像无法实现的效果。甚至有人还专门追求这种HDR风格,把本来不是HDR的照片也P成这样。。。

 

是不是还有点晕?

再打个比方。

如果你有女朋友就明白了,女生买回家的衣服一定比穿上身的多。。。

你看到的只是一身漂亮衣服,其实背后是整整一个大衣柜!还不算各种包包鞋子围巾腰带。。。

不要说浪费,这样才能随便挑啊,才能每天都漂漂亮亮出门啊啊啊~(写到这里楼主好想去逛街。。。话说我到底是为了啥下了班还孤零零的一个人在这儿敲字。。。

 

相比之下,32-bpc比8-bpc、16-bpc多占用的那点存储空间算什么呢?好歹低碳环保零污染,而且还是免费的~

 

吐槽结束。

最后再简单总结一下,16-bpc和32-bpc,都是为了做后期。

如果用PS画插画,用8位深度。修照片,用16位深度。处理HDR图片,用32位深度。

 

。。。写了这么一大篇,居然就得出了和百度没啥两样的结论,楼主突然感觉好心塞。。。

 

好了,基本RGB的疑难杂症都扫光了。

下一章开讲PS里的RGB拾色器~ 跟这一章比起来明显轻松愉快多了~

 

下次再见~

 

全教程完,学完记得交作业。如果本教程对您有所帮助,请推荐给你的朋友。

【原创教程 投稿邮箱: ps@16xx8.com】

长按二维码关注我们

关注我们微博:@photoshop教程论坛

推荐教程