數(shù)值是如何工作的
我們暫且中斷一下我們的討論,轉(zhuǎn)而考察一下我們在計算機(jī)里如何以數(shù)字的形式來描述顏色,或更精確地說,是編碼的方法。我們將利用這個機(jī)會澄清一些經(jīng)常使人們犯糊涂的問題。這些問題是數(shù)字化顏色的基礎(chǔ),不弄清這些問題就有可能將這些糊涂觀念傳遞給色彩管理的使用,造成進(jìn)一步的混淆。即使你非常熟悉有關(guān)二進(jìn)制單位、字節(jié)、階調(diào)和顏色這一些基本概念,這一節(jié)也值得回顧一下。因為我們將要提出幾個關(guān)鍵性問題,是有關(guān)用數(shù)字表示的顏色與“真實(shí)世界”中的顏色,地者之間差別方面的體驗。
計算機(jī)用數(shù)字將顏色進(jìn)行編碼的體系實(shí)際上非常簡單:顏色值由幾個通道的數(shù)據(jù)組成,而每一個通道又被分割為不同的階調(diào)等級。就是這么簡單!我們從一個簡單的顏色感覺模型開始。事實(shí)上,所有顏色都是由紅、綠、藍(lán)色的光以不同強(qiáng)度混合而成的,我們按這樣一個顏色模型進(jìn)行編碼,使之可以有效地存儲、計算和傳輸顏色。在我們的編碼系統(tǒng)中,通道數(shù)一般為三個,基本與我們感知顏色時使用的三原色方式相對應(yīng)。編碼系統(tǒng)中的階調(diào)等級通常是256,對應(yīng)于能夠使我們產(chǎn)生連續(xù)調(diào)感覺所需要的最少階調(diào)數(shù)量,也就是為了避免產(chǎn)生諸如條杠或階調(diào)跳躍等贗像,不使觀察者從圖像中看出從一個階調(diào)到下一個階調(diào)之間出現(xiàn)明顯不連續(xù)過渡感覺所需要的階調(diào)等級數(shù)量。
為什么是256級
256這個數(shù)字在某些人看起來似乎是很武斷和不可理解的。但是,這個數(shù)字在計算機(jī)和顏色的討論中出現(xiàn)得太頻繁了,因此值得將它的意義搞清楚。它并非那么神秘。我們只是期望能夠表現(xiàn)出足夠的階調(diào)等級,保證觀察者不會看出兩個相鄰階調(diào)等級之間的階調(diào)差別。研究表明,對于多數(shù)人來說,能夠產(chǎn)租平滑漸變效果的階調(diào)等級數(shù)量大約需要200級左右。那么,為什么不就只編碼成200級呢?為什么是256級呢?這里有兩個原因。
留出余量。在實(shí)際應(yīng)用中,讓數(shù)據(jù)留有額外的階調(diào)等級余量是非常有用的,這是因為在復(fù)制過程的每一階段(掃描、顯示、編輯、轉(zhuǎn)換、計算、打?。疾豢杀苊獾貢l(fā)生階調(diào)損失,階調(diào)等級余量可以保證不會因為階調(diào)損失而出現(xiàn)條杠,這一點(diǎn)對色彩管理來說是非常關(guān)鍵的。
二進(jìn)制位。第二個原因就是我們使用數(shù)字位(比特)來表示這些階調(diào)等級的值。7位二進(jìn)制數(shù)字位僅能編碼出128個階調(diào)等級(27),肯定會使圖像中的天空出現(xiàn)條杠,在時裝模特的面頰上出現(xiàn)斑點(diǎn)。8位編碼能有256個階調(diào)等級(28),不僅可以滿足階調(diào)等級的需要,而且還有小小的余量。第三個采用8位的理由是,計算機(jī)是以字節(jié)能單位進(jìn)行存儲的,8個二進(jìn)制位正好是一個字節(jié)。由8位構(gòu)成的數(shù)量已經(jīng)有很多用途了。例如,它非常適合存儲一種字體的外形,可以容納256個不同的字符形狀,包括所有西文字母、數(shù)字和標(biāo)點(diǎn)符號。一個字節(jié)的存儲量對于編碼階調(diào)等級也是非常優(yōu)秀的,這個數(shù)量與人類視覺系統(tǒng)對階調(diào)的分辨等級正好吻合,這看起來似乎是一種不可思議的巧合,可工程師們太喜歡這種不可思議了。
數(shù)百萬種顏色
于是,用8位編碼,可以形成每個顏色通道256個階調(diào)等級,這睚好符使用們希望在每個通道內(nèi)存儲的最小階調(diào)等級數(shù)量。就RGB圖像而言,三個通道的每一個都用8位存儲,合起來就是24位(這正是為何許多人交替使用“8位顏色”和“24位顏色”兩種術(shù)語來表示這同一件事情的原因)。如果三個通道的每一個通道都是256個階調(diào)等級的話,則顏色編碼的總數(shù)就是256×256×256,或者(拿出你的計算器)大約是1680萬種顏色!我們用24位存儲量(或小小的三個字節(jié))就能編碼出這么多種不同的顏色??!
盡管這種基于3個通道、每通道8位的編碼方式是常用的方法,因為它是以人類感知顏色的方式為基礎(chǔ)的,但我們在需要的時候也可以很輕易地將它進(jìn)行擴(kuò)展。為能夠比人眼識別更多顏色的設(shè)備提供顏色編碼,這種擴(kuò)展可以通過增加通道數(shù)量或增加每一通道內(nèi)的存儲字節(jié)來實(shí)現(xiàn)。例如,當(dāng)我們?yōu)橐慌_CMYK打印機(jī)準(zhǔn)備一幅圖像時,我們將通道由三個增加為四個通道編碼,這并不是因為我們需要得到更多的可編碼顏色數(shù)(實(shí)際上,我們需要的會更少),而是因為要為四色油墨的每一色分配一個通道,這是很自然的事情。
類似地,當(dāng)要存儲由一臺顏色識別能力超過256級的RGB掃描儀所采集的圖像時,我們經(jīng)常將8位編碼擴(kuò)展,更高為16位編碼(即所謂的“10位”、“12位”和“14位”掃描儀。盡管如此,因為我們都用整數(shù)字節(jié)來存儲文件,所以實(shí)際上并不存在“10位”、“12位”和“14位”的文件格式,而只有8位和16位的文件格式)。
一人需要記住的關(guān)鍵問題是,我們這里談?wù)摰乃袃?nèi)容都是關(guān)于編碼的,也就是使用一系列可以利用的數(shù)值來對顏色進(jìn)行定義的方法。然而,計算機(jī)可編碼的顏色數(shù)量遠(yuǎn)遠(yuǎn)超出了實(shí)際可復(fù)制的顏色數(shù)量。實(shí)際上,它也遠(yuǎn)遠(yuǎn)遠(yuǎn)地超出了可感知顏色的數(shù)量。類似高端掃描儀這樣的設(shè)備,能夠比人類眼睛“感知”到更多的階調(diào)等級,我們通常就可以通過擴(kuò)展編碼位數(shù)來解決編碼問題。編碼要解決的所有問題在于,每一種顏色都必須具有惟一的編碼,因而可編碼的數(shù)量總要多于我們實(shí)際所需要的顏色數(shù)量,就像電話公司必須保證每部電話有惟一的號碼,于是就要準(zhǔn)備多于實(shí)際使用電話數(shù)量的號碼一樣。
我們之所以要討論這個問題,是因為它是理解用抽象的數(shù)字所表示的顏色,與用“真實(shí)世界”的復(fù)制設(shè)備,如打印機(jī)、顯示器、掃描儀等,將這些數(shù)值能再現(xiàn)的相應(yīng)顏色感覺之間的差別。要是你考察一下在實(shí)際中那些顏色數(shù)值是如何被設(shè)備翻譯成“真實(shí)世界”顏色感覺的話,你就會發(fā)現(xiàn),顏色值與所再現(xiàn)的顏色感覺二者的差別是非常大的。
正由于這些內(nèi)容有助于理解顏色數(shù)值是如何工作,解釋為什么我們到處都可見到像256或1680萬這樣的數(shù)字。但請不要忘記,直到它們被彩色設(shè)備翻譯成真正的顏色感覺以前,它們只不過是一些純粹的數(shù)字而已。
顏色定義與顏色
許多人都將定義顏色的數(shù)值與顏色的數(shù)值搞混淆。例如,我們說發(fā)送給CMYK打印機(jī)的顏色自然要編碼為四個通道的數(shù)據(jù),那么,8位編碼的CMYK顏色真能達(dá)到256×256×256或43億個不同顏色嗎?理論上是的。任意四個通道都能產(chǎn)生43億個編碼,但當(dāng)我們?yōu)檫@四個通道賦予C、M、Y和K數(shù)值的時候,我們并不能通過第四個通道(K)增加更多的實(shí)際顏色。事實(shí)上,許多CMYK編碼表示的是相同的顏色。例如,50C、50M、50Y、0K組成的顏色,在理論上與0C、0M、0Y、50K產(chǎn)生的是同樣的暗灰色。因此顏色編碼有許多是多余的。這樣一來,可能就會有人爭論,是否增加了額外的K值就真能夠比使用CMY三個顏色通道得到更多的階調(diào)層次。但是這樣會使我們現(xiàn)在要討論的問題更復(fù)雜化了,還是讓我們只簡單地說,8位CMYK編碼的實(shí)際顏色總數(shù)遠(yuǎn)遠(yuǎn)要少于43億吧。
另一個例子是,我們曾經(jīng)說到,有的掃描儀聲稱能夠識別出遠(yuǎn)遠(yuǎn)多于8位編碼的256個階調(diào)層次。他們聲稱能夠達(dá)到10位、12位,甚至14位的分辨能力。許多人都將這個顏色編碼與掃描儀的密度動態(tài)范圍弄混。密度動態(tài)范圍是指掃描儀從能夠可靠分辨層次的最亮白色,到能夠可靠分辨層次的最暗黑色所構(gòu)成的階調(diào)范圍。很多掃描儀制造廠家都聲稱這些“高比特”掃描儀能夠提供比8位更大的密度動態(tài)范圍,這種說法都是在混淆視聽。密度動態(tài)范圍是圖像采集設(shè)備能獲取模擬信號的界限范圍,無論如何與編碼位深度沒有任何關(guān)系。高比特僅僅將設(shè)備的密度動態(tài)范圍劃分為更多的不連續(xù)梯級,使我們在編輯圖像時具有更大的選擇余地。你可以將密度動態(tài)范圍理解為樓層的高度,而顏色位深則是樓梯所包含的臺階數(shù)量。顯然,如果我們想要梯級盡可能?。ㄟ@樣做是為了避免階調(diào)的跳變或條杠),密度動態(tài)范圍大的要比密度動態(tài)范圍小的需要更多的梯級,但密度動態(tài)范圍與梯級這兩者之間并沒有直接和必然的關(guān)系。