颜色的前世今生13·RGB显色系统详解(中)

6年前发布

原创文章 / 平面 / 教程
endlessring 原创,如需商业用途或转载请与endlessring联系,谢谢配合。

前方高能预警!专治疑难杂症:1. PS的通道到底如何理解?2. Alpha通道的来龙去脉。

继续上次的问题:24位色从人眼的颜色识别极限来说,已经够用。那么又专门倒腾出一个32位色是干嘛滴?

要讲明白这个问题,首先要理解“通道”这个概念。

(马上要开讲烧脑内容了,楼主心都在打颤~)


5. 前方高能预警——PS里的RGB通道到底该如何理解?


通道,一直是PS学习过程中的传统疑难杂症。其实楼主也不敢说完全理解了通道,现在抛出自己的理解,跟大家一起探讨。

上一章我们介绍了,RGB显色系统里,一个像素实际上是由3个(RGB)子像素构成的。这是RGB系统能实现不同颜色的基础。

因此,一个像素的数据,实际上包含了RGB三个颜色的数据。

一幅分辨率为N×M的图像,在计算机里是一个N×3(行)×M(列)的矩形数据列表。


举个例子。

一幅分辨率为7×7的图像,在PS里面(RGB模式下)是这样被存储的:

看明白了吗?在计算机里面,一幅图像是以数据表的形式保存下来的!

来,跟楼主一起默念,一幅画有三个表。。。

第一个表存储所有像素的红色信息(R通道),第二个表存储绿色的信息(G通道),最后一个表存储蓝色的信息(B通道)。

所以,通道,就是数据表


这个表的横轴和纵轴,以像素为单位,其单元格和画布上的每一个像素一一对应。

R通道,表里的每一个单元格,存储了所对应的像素里的R的信号的大小。

G通道和B通道同理。


这个信号大小并不像Excel一样,显示成数据,而是更加直观的显示成了灰阶图像:

——0代表无,黑色;

——255代表信号满格,白色;

——0~255之间,灰色。

因此也可以说,通道就是一副灰阶图像。


举个例子。一幅简单的图像,白底+A的花体字,文字的颜色是紫红色。我们来看一下它在PS里不同通道界面下的图像:

其中,单色通道(比如R通道)图像的意义是,黑色代表没有(0),白色代表信号满格(255),灰色的数据则介于两者之间。


而从计算机来看,每一个灰阶图像,就是一个0到255之间的数据的阵列。

这个阵列的每一个数据的大小,代表了一幅图像的每一个像素的某一个特性的大小。

一幅图像可以有很多种特性,比如颜色特性,比如明度特性。所以,这个特征值可以是RGB,也可以是CMYK,也可以是明度,也可以只有ON/OFF两种状态代表是否被选中(选区),还可以是进行图像处理的权重值(Alpha通道)。


因此,一幅图像的数据,可以按照RGB来提取特征值拆分数据,也可以按照其他方式来拆分。如果切换成CMYK模式,那么一幅画就存储为CMYK四个表。

打开C通道,同样可以看到:由每个像素的C信号的大小,按像素顺序排列组成的数据阵列。


这就意味着,计算机可以非常方便的根据图像的某一个特征(比如RGB,比如明度),提取每一个像素的、该特征的信号强度,然后生成一个和该图像的像素排列一一对应的数据表。

改变这个数据表里的数据,就可以随心所欲的改变图像上某一个像素的某一个特征!这简直太强大了有木有?!PS里神乎其技的修图功能,就建立在这个基础上。


举个例子。

现在我想把这个花体的A字改成纯度最高的红色。原色是紫红色(R 204,G 0,B 204),除了R还有B分量,怪不得不是很红。那么需要把B的分量去掉?简单,把B通道里面的数据都变成0不就行了?

。。。这是什么鬼?为什么背景变成了黄色?——噢,原来背景是白色的(R 255,G 255,B 255),背景处的B分量还需要保留嘛!把B通道的数据全部都变成0,背景部分就变成了(R 255,G 255,B 0),于是整片都变成了黄色。。。


所以,参照G通道,对B通道需要做的应该是,保留白色,把灰色的部分变成黑色。这样的情况可以用曲线工具来调整,修改B通道的曲线,使得原来的灰色部分(分布数量最多的那部分)输出为0。

看,这是不是简单粗暴有效?

当然,修图是门很深的学问,需要不断的学习和总结。但从起点上,搞明白了通道的概念,才不会每次都胡乱碰运气,将大大帮助你迈向高手之路。


6. 32位色——为特效而生的Alpha通道


回到我们的问题,既然24位色对显示颜色的精度已经够用,我们为什么还需要32位色?


24位色,是RGB的信号变化精细度为2^8=256级,也就是RGB通道分别有8位数据深度。

32位色,新增加的8位数据,如果分给RGB三个通道,是不是没法平分?

这也从侧面说明,新增加的这个8位的数据,其实并不是分给RGB通道的,而是分配给了一个新的通道——Alpha通道。


简单的说,Alpha通道保存的不是颜色信息,而是透明度信息。

(一般而言,了解到这一步就够了,可以直接前往下一小节。。。对Alpha通道来龙去脉感兴趣的同学请继续往下看。。。)


之前楼主也提到,Alpha通道是由匠白光大叔等人发明的,并且他们还因此被授予了1996年的奥斯卡奖(依然是科学与技术奖)。

从左至右,匠白光大叔,Tom Duff (不认识),Ed Catmull(皮克斯动画另一位创始人,这次八卦的主人公),Tom Porter(1998年和大叔一起再次获奥斯卡奖)。


看来这个Alpha通道还是很拉风的。那它到底是干嘛用、怎么用的呢?

一句话,Alpha通道,天生为特效而生!


要知道,任何一项新技术,往往都是为了解决旧技术的某一个难题而诞生的。

当时Ed大神正在开发一种计算机算法,具体的说,是数字图像合成的算法,通常用在电影特效上。比如这样的:要让乔丹跑进动画片里,和兔巴哥待在一起。。。

这涉及到两幅图像的合成,前景图A(乔丹)+背景图B(兔巴哥)。按照电影业的传统方法,两幅图的合成,需要直接修改图A和图B,从而生成新的图像C。


Ed大神的算法(sub-pixel hidden surface algorithm),是隐藏图A某些像素(设置透明度),从而实现图像的合成。

为了给这个算法写论文,Ed需要用统一的前景图A和各种不同的背景图B合成来做实验。匠白光大叔呢,因为对Ed操作的计算机系统很熟悉,就在旁边给他帮忙。


按照传统的做法,每换一次图B,计算机就需要对图A和图B做合成渲染,并且这个计算是一整帧的计算。

也就是说,如果是一个320×420像素的图,合成计算一次要完成的是整个320×420的数据范围。想一想四十年前的计算机,那个内存条件,那个CPU速度。。。所以这个合成办法是很慢很慢的。。。


Ed大神作为一个顶尖高手,很快意识到:这么干也太傻了!


因为图A是不变的,那么图A哪些部分是透明的,哪些部分不是,也就是固定的。

所以完全可以把每个像素的透明度值(α,希腊字母,念Alpha),和这个像素的RGB信息并排放在一起,形成一个新的文件。

这样,合成渲染的计算,就可以以像素为单位来完成。计算机每读出一个图A的像素,就可以找到图B的对应像素,按照αA + (1-α) B的合成公式,生成新的图C的值。

这样,新算法将使得合成渲染速度大大加快,基本可以和读取像素的速度同步。


匠白光大叔是计算机专业出身的,听了Ed的想法,他立刻认识到,这个和RGB信息并列的透明度信息,其实就是一个新的通道!

这样,新算法只需要把原来的24位色,拓展为32位色,就可以在软件上非常容易的实现。于是大叔立马响应了Ed的号召,花了一晚上就写出了新程序!新算法实现了!新概念也诞生了!

——这个增加的新通道,以αA + (1-α) B公式中的系数α命名,这就是Alpha通道的来历。RGB+Alpha,也被称为RGBA,这四个通道每一个都分配8位数据深度,就被称为32位色

用过Win7的同志们想必已经注意到,Win7新界面添加了很多半透明+阴影的渲染效果。

如果没有32位色的帮助,这么复杂的渲染,哪怕在今天的硬件条件下,速度也会慢到你完全无法忍受!

不管是电脑上的windows/Mac OS系统,还是手机上的iOS /Android系统,现在的UI界面都越来越华丽丽了。因此,方便计算机做渲染效果处理的Alpha通道已经成为各个系统必备(32位色是windows系统采用的标准,其他系统不明)。


大家也不妨这么理解,32位色,只有前面3个通道(RGB),才是图像的“实物”。Alpha通道保存的数据,则完全是方便计算机做数据运算用的。

也因此,改变Alpha通道里的数据,对图像本身并没有损害。所以对Alpha通道的编辑,可以比直接编辑图像本身随心所欲得多。利用这一点,可以很方便的实现很多魔术般的PS效果。


7. PS中的Alpha通道


在相机的胶片时代,有的摄影师偏爱用滤镜。它可以实现一些特殊的效果,比如通过加中灰渐变滤镜,让蓝天颜色更加浓郁。

但是在数码时代,用PS修图可以轻易实现这样的效果(再不需要额外花钱买滤镜啦~~~)


上面的例子可以视为渐变灰色的前景图A和背景图B的合成(图A的白色代表透明)。

如果利用Alpha通道的办法来实现,则图A原图是全灰的图像,Alpha通道是一个透明度从上到下、从1到0渐变的数据表(示意图已大大简化,不然眼睛都要花了)。计算机再根据每一个像素的值,用αA + (1-α)B计算出新的合成图像。

这样的办法是不是太绕远了?对于如此简单的应用,的确如此。


但是,如果我们可以在Alpha通道里随意涂抹编辑呢?Alpha通道本身,也可以视为一个灰阶图像,可以应用羽化、高斯模糊,也可以用画笔橡皮擦编辑。反过来,也可以由一幅灰阶图像生成Alpha通道。

这就相当于在PS里模拟出了可以叠加任意颜色、任意图形的滤镜。于是,PS里的特效,不再局限于单调的渐变,很多过去想都不能想的特效都能相对容易的得以实现。


进一步,如果Alpha通道不再是唯一的,而是可以像图层一样无限次增加,并且可以像图层一样相互之间进行数据的相加、相减、合成,那么我们就可以在不同的效果之间反复比较、修改、切换、叠加。

此外,还可以把Alpha通道作为一个存储区域,也就是作为选区/蒙板来使用。


当当当当当当,从此以后,限制特效应用的就不再是技术,而是人类的想象力!

欢迎来到Alpha通道开拓的自由新世界!


为了让大家有深刻的印象,来个PS大神的例子。


成品图

过程图

(博主米田的天空的原文链接http://www.zcool.com.cn/article/ZMTQ0OTAw.html


P图的内容不是楼主的重点,这个暂时就不展开讲了。感兴趣的同学可以看一下关文涛老师的《选择的艺术/Photoshop图层通道深度剖析》,不容错过的神作,双手推荐~

(也可以先看看站酷上一个简单的例子http://www.zcool.com.cn/work/ZNjU1NDU2MA==.html 重点看前面的第4步。)


简单的说,要把两幅画自然地融合到一起,对边界清楚的对象,可以使用抠图的技巧。

而对于边界不清楚的物体,比如天空、沙漠、丛林、水,熟练掌握编辑通道的技巧会让你如虎添翼。


可以说,Alpha通道这个简单又深刻的概念的出现,对静态的图像处理非常重要,对动态的视频特效就更加重要!Alpha通道极大的推动了电影特效技术的发展。随后一系列可以作为电影特效里程碑的电影(动画片《狮子王》、科幻片《终结者2》、《侏罗纪公园》等等)里,都有它的功劳。楼主依然还记得当年看《侏罗纪公园》时候的瞠目结舌。。。我们今天看到的新的电脑特效,也依然离不开它。

So,大叔和Ed大神的1996年的奥斯卡奖就是这么得来的~(Tom Duff 和Tom Porter随后优化了Alpha通道的算法,一起获奖)


最后总结一下,将Alpha通道和RGB通道平列放在同一个文件里,每个通道有8位数据深度,就是32位色(适合前景图固定的UI特效处理)。

在PS里,又不再局限于单个Alpha通道。多个Alpha通道以单独的文件(不再和RGB通道并列)存储在PS里,可以单独查看、编辑,从而实现各种神乎其技的复杂特效。


呼~这次都是烧脑内容,写得好累~

字数也大大超标了。。。希望大家都看懂了。。。


下面!是高能思考题!32位色和下面的32位/通道设置,是不是有点傻傻分不清?区别在哪里?

休息一下,下次详细破解PS里的8位/通道、16位/通道、32位/通道设置~

再见~


267
- 位站酷推荐设计师推荐 -

声明:站酷(ZCOOL)内网友所发表的所有内容及言论仅代表其本人,并不反映任何站酷(ZCOOL)之意见及观点。

    没有新消息