







摘要:本文根據色彩的光學原理、生物學反應特性、在顯示設備上的顯示和紙介質上的打印輸出方式,引入色彩空間的概念,通俗地解釋了色彩在計算機顯示器上的應用、設備相關性、在操作系統中的處理方式,以及圖形圖像處理中基于色彩空間和顏色模式的原理。
關鍵詞:色彩空間;圖形圖像處理;顏色管理
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2024)21-0089-06
彩色顯示器的出現,從圖像顯示、圖形處理、界面設計、打印輸出等各個方面和領域,影響著計算類終端設備的使用體驗。因此,在操作系統中,顏色管理也成了一項必須具備的功能。
色彩的顯示在原理上基本遵循三原色的理論,但在顯示、調節、輸出等各個環節,可能會通過不同的控制參數和變量來進行,從而出現各種不同的色彩空間,以更精細地適應不同的場合。
下面,筆者從色彩感受的生物學原理開始,一起探索顯示終端上色彩的空間范圍和系統中對顏色的管理。
色彩的生物學原理
“三原色”的色彩顯示理論,是基于光學實驗中光的色散結果得出的科學結論,但是顯示的結果和人眼看到的結果未必一致。同一顏色,動物與人看到的結果也不一定相同,因為有些動物是色盲,或者感光細胞不同。人類在早期也是紅綠色盲,后來進化到可以分辨自然界中豐富的色彩。但是,人類眼睛視網膜所能感受到的色彩與顯示器中按照RGB三原色所呈現的效果是否能夠吻合呢?紅綠藍這三種原色的表達是否符合人眼的生物學特性?
根據現有的研究結果,大部分人視網膜上有三種感光細胞(視錐細胞),稱為L型、M型、S型細胞,分別對不同波長的光線敏感。三種視錐細胞最敏感的波長分別是橙紅色(長波)、綠色(中波)、藍色(短波),這三種視錐細胞的歸一化感光曲線如下頁圖1所示。
三種視錐細胞的敏感波長,正好分別位于紅綠藍三原色的波長范圍內,其中L型視錐細胞與M型視錐細胞的感光曲線差別很小,但已經有了明顯的區分度,從而使人類告別了紅綠色盲,看到更加多彩的世界。
人眼看到的顏色,是光線進入眼睛,刺激視網膜上的視錐細胞(分辨顏色)和視桿細胞(分辨明暗)產生信號,大腦在接收信號后形成的一種感覺。顯示器上的三原色,在經過混合之后,折射到視網膜,經過三種視錐細胞轉換成電信號,通過神經系統傳遞給大腦,大腦再根據這三種電信號的強弱,解讀成不同的顏色,這就是色彩經過人眼處理的生物學原理。
根據格拉斯曼定律(Grassmann's Law),色光的混合符合加法混色原理,并且是線性相加的。如果選RGB三種單色光作為基色,先用強度為(r1,g1,b1)的RGB混合成顏色C1,用強度為(r2,g2,b2)的RGB混合成顏色C2,再把C1和C2混合得到顏色C3,效果與(r1+r2,g1+gr2,b1+b2)的RGB直接混合出C3是一樣的,視錐細胞對這個混合顏色的反應也將是前兩個反應的線性疊加。通過實驗,RGB三原色混合出來的顏色和連續光譜上對應的顏色在人眼的感覺中是一樣的。
色匹配函數
在直覺上,顏色給人眼帶來的感受包括亮度(Luminance)和色度(Chromaticity),其中色度又可以進一步用色調(Hue)和飽和度(Saturation)來描述,那么,在計算機中最直觀的調色方式就是通過色調(H)、飽和度(S)和亮度(L)來表示,即HSL顏色模式,如MSOffice軟件HSL選色器和Cinema 4D的HSV選色器。以紅色色調為例,當HSL中飽和度(鮮艷程度)S最高時,亮度L從黑到紅再到白,HSV中V(Value)的范圍只有L的一半,從黑到紅。
在物理學上用光譜來描述光,建立光的“波長-強度”圖譜。光譜強度對應亮度,波長對應色調(短波為藍色,長波為紅色),形狀對應色度,最終光譜形狀由各種波長的單色光強度比例決定,顏色色度由各種色相的亮度比例決定(色度與亮度相對分離),如圖2所示。
這樣比較一下,人眼直覺的亮度和色度如果直接用于計算機,就無法滿足加法運算規則,如“色調為0的紅色+色調為90的綠色”,顯然不等于色調為90的綠色。這樣不如RGB三原色靈活地進行加法混色運算方便,但是每個波長的光需要用多少RGB的值來表示呢?
為解決這個問題,David Wright和John Guild在1928年和1931年各自獨立地進行了一些實驗,通過三種顏色的光源進行匹配,得到了人眼對不同顏色光的色匹配函數(Color Matching Function),其函數曲線如圖3所示。
但是在圖3中,出現了負值。例如,波長500nm的位置,紅色是負數,這實際上是不可能的,當紅色是正數時,紅綠藍怎么配合都擬合不出來這個波長的顏色。但是如果把這部分紅色的負值理解為反方向,也就是把相應量的紅色加到500nm波長的顏色上,那么混合的結果正好等于相應綠色和藍色混合的結果。負值的意義正在這里。
負值的出現,在使用和計算上都很不方便,為此需要對這個匹配函數進行線性變換,映入到一個所有分量都是非負值的空間中,如下頁圖4所示。這樣就完美實現了色彩空間變量的匹配。
色域與色彩空間
變換后的色彩空間就是CIE XYZ色彩空間。CIE是國際照明委員會(Commission Internationale de l'éclairage)的法語簡稱。
“色彩空間”(Color Space)又稱“色域”,是指色彩學中通過色彩模型以空間坐標來定義的色彩范圍。我們經常用到的色彩空間主要有RGB、CMYK、Lab等。
色彩是人的眼睛對不同頻率的光線的不同感受,是對客觀存在的主觀感知,因而有認識差異。人類對色彩的認識經歷了極為漫長的過程,直到近代才逐步完善起來,但對色彩的準確表述仍較為困難,造成許多概念不好理解。我們可以從線性空間的角度來理解色彩空間。
以CIE XYZ色彩空間為例,它是從CIE 1931 RGB色彩空間變換而來,變換的原因前面已經述及。由于RGB色匹配函數中有負數部分,色度圖的坐標相應也出現負數,這樣不僅是反直覺的,而且不方便計算,需要做進一步的數學變換,使得所有坐標均為非負。實現起來較簡單的方法就是替換原來的紅(700nm)、綠(546.1nm)、藍(435.8nm)三原色,用虛擬的三個顏色XYZ作為空間的基準,CIE經過測試和計算確定了兩個色彩空間之間的轉化矩陣,如圖5所示。
在把RGB色彩空間上的每一點都進行線性變換之后,所有負值都拉成了正值,色度圖也從扁平的馬蹄形拉成了常見的三角馬蹄形。
虛擬的XYZ三原色在色坐標中落在可見光范圍之外,但混合之后卻可以表達出人眼所有可見的顏色,并保證每個分量都是正值。而且用Y來控制亮度,可以在光度學與色度學之間建立關聯,這是一個很方便的線性空間,與具體設備無關,這個性質使CIE XYZ色彩空間成為各種色彩空間之間轉換的中繼站。目前,所有的色彩空間幾乎都是CIE XYZ的線性變換描述,常用的色彩空間有如下幾種。
1.RGB色彩空間
RGB是通過紅綠藍三原色來描述顏色的色彩空間,是圖像處理中最基本、最常用的面向硬件的色彩空間。RGB色彩空間的分量與亮度密切相關,只要亮度改變,3個分量都會隨之相應改變。所以,RGB色彩空間適合于顯示系統,卻并不適合于圖像處理。
RGB色彩空間都可以用三個坐標表示,但是不同的RGB色彩空間如sRGB、Apple RGB等空間里相同位置坐標代表的顏色是不同的,色域也不一樣(如圖6)。
sRGB(standard RGB)是由微軟和惠普于1997年聯合制訂的色彩空間標準,為了適應更多的設備,它的色域范圍非常小,是常用色彩空間中最小的,甚至不能完全覆蓋各種CMYK色彩空間的色域,不建議專業的印前用戶使用。目前,sRGB是網絡和多數顯示設備的標配,能夠應對大多數場景,色域雖然相對較窄,但在多數設備上都能提供一致的顏色表現。從網絡獲取的.png和.jpg圖片一般都是sRGB模式,在Photoshop和Illustrator中導出圖片時默認也是sRGB模式。消費級顯示屏(包括手機屏幕),大多也都只支持sRGB的色彩范圍,如果是做圖像處理的顯示器或者筆記本,會對顯示器的色域有更高的要求,但同時也要看顏色的準確度ΔE。
Adobe RGB是由Adobe于1998年開發的色彩空間標準,目的是盡可能在CMYK彩色印刷中利用計算機顯示器等設備的RGB顏色模式上囊括更多的顏色。Adobe RGB的色域比sRGB大很多,并且能完全覆蓋sRGB,也幾乎能完全覆蓋CMYK色彩空間。
ProPhoto RGB是柯達公司制訂的色彩空間標準,常用于高端相機,也是Adobe Lightroom的默認色彩空間。由于ProPhoto RGB的三原色定義是在人眼識別范圍外的顏色,所以它的色域非常大,覆蓋了90%的CIE Lab的色域,甚至部分超出了CIE Lab,這也為攝影和后期提供了相當大的處理空間。
RGB色彩空間有兩個關鍵參數,即白色和三個基底的顏色。確定好這兩個參數,從CIE XYZ空間到設備的RGB空間的轉換就確定了。例如,sRGB空間和Adobe RGB空間的區別就在于這兩個關鍵參數的定義不同。
RGB色彩空間是與設備相關的,為了讓不同設備的RGB給人眼的感覺一樣,就需要校準,進行設備無關的色彩空間(如CIE XYZ)到設備相關的色彩空間的轉換。因為這是個線性變換,所以用一個旋轉矩陣加上一個白色基準點就可以確定所有變量,最后再進行伽瑪修正。
2.CMYK色彩空間
CMYK色彩空間即印刷四分色色彩空間,是一種依靠反光的色彩模式,在彩色印刷時采用。印刷三原色為青(Cyan)、品紅(Magenta)、黃(Yellow),顏料混合是減色模式,混合后為深灰色,并不能產生黑色,所以還需要加上黑色(blacK),這就是CMYK顏色模式。CMYK的色域與sRGB很接近但并不重合,如果圖片用途是大規模印刷出版,那工作空間應該選擇CMYK模式。如果既要印刷又要在網絡呈現,那應該選擇使用兩者重疊的顏色,否則會在色彩轉化時丟失顏色,出現屏幕顯示不正常或者打印輸出不正常。
CMYK色彩空間也有很多種。例如,美國印刷業制訂的US web Coated(SWOP),是美國地區的Photoshop默認的CMYK色彩空間;日本印刷業協會制訂的Japan Color 2001 Coated,是亞太地區Photoshop默認的CMYK色彩空間。此外,還有Japan Color 2001 Uncoated、Japan Color 2002 Newspaper等色彩空間適用于不同的印刷紙張和工藝。
3.Lab色彩空間
Lab色彩空間一般是指CIE Lab模型,它由三個要素組成,分別是亮度(L),以及兩個顏色通道a和b。當亮度從低到高時,a的顏色是深綠色→灰色→亮粉紅色,b的顏色是亮藍色→灰色→黃色。因此,這種顏色混合后將產生具有明亮效果的色彩。
Lab模式所定義的色彩最多,并且與光線和設備無關,處理速度比CMYK模式快很多,與RGB模式同樣快,在轉換成CMYK模式時色彩沒有丟失或替換,可以放心大膽地在圖像編輯中使用。當然,最好是用Lab模式編輯圖像,再轉換為CMYK模式打印輸出。
4.HSL、HSV和HSB色彩空間
HSL和HSV都是將RGB色彩模型中的點在圓柱坐標系中標出的表示法。這兩種表示法比RGB基于直角坐標系的幾何結構更加直觀,在上文色匹配函數的內容中已經描述過。
HSB色彩模式是基于人眼的一種顏色模式,是普及型設計軟件中常見的色彩模式,其中H代表色相,S代表飽和度,B代表亮度。Photoshop中的拾色器和“色相飽和度”命令用的就是HSB模型。
當然,色彩空間還有很多種,這里不再一一贅述。在色彩表達范圍上,首推Lab模式,其次是RGB模式和CMYK模式。更大的色彩空間往往不是用于顯示色彩,而是用于圖片編輯,如AdobeRGB。數碼相機可以通過感光元件捕捉到圖片并以這個模式保存,較大的色彩空間可能允許做更多的圖像修改工作而不遇到顏色邊界,編輯完成的圖像需要再轉化為色彩范圍較小的sRGB模式發布到網絡上。更大色域的ProPhotoRGB包含的顏色甚至超出了人眼可見的范圍。
在網頁設計中,通常用六位十六進制代碼來表達顏色,每兩位一組,分別代表紅、綠、藍三個基色通道的強度。例如,當RGB全為最大值時是白色,表示為#FFFFFF,黃色表示為#FFFF00。HTML顏色代碼可表達的最大顏色數只有256×256×256=16,777,216種。
如果用CSS(層疊樣式表)在網頁中表示顏色,可以更加靈活,除了用147個顏色名稱值(如black、white)和“#顏色代碼”外,還支持函數方式,不僅支持RGB模型,也支持HSL模型。例如,“color:red”“rgb(255,0,0)”“hsl(0,100%,50%)”都表示紅色。
類函數rgba()和hsla()還加上了透明度參數a(alpha值)。rgb(255,0,0,0.5)中的4個參數分別為紅綠藍通道的十進制值和透明度的百分值,hsla(0,100%,50%,1)中的4個參數分別為色相H、飽和度S、亮度L和透明度A。
顏色管理
色彩空間在計算機上的應用有兩個方向:一是硬件上,顯示設備、打印和印刷設備等;二是軟件上,將色彩空間和配置方案寫在圖像文件里(ICC配置文件)。
在談到ICC配置文件之前,先看一下Windows系統中一個常見的圖片不能正常顯示的問題。在使用Windows照片查看器打開圖片時,有時會提示“Windows照片查看器無法顯示此圖片,因為計算機上的可用內存可能不足,請關閉一些目前沒有使用的程序或者釋放部分硬盤空間(如果硬盤幾乎已滿),然后重試”。這時如果按照系統提示清理內存和硬盤,是解決不了問題的,因為這一般并非內存或硬盤的問題,而是由圖像中內嵌了ICC配置文件信息,Windows照片查看器不能正確讀取造成的。
由于每個顯示設備采用的技術可能不同,所以色彩空間會有些差異。當圖像文件的色彩空間和顯示器一樣時,數據不需要經過空間轉化即可正確顯示顏色。如果二者不一致,則計算機需要讀取圖片所在的色彩空間和顯示器的色彩空間,把數據經過轉化后才能正常顯示。不同的RGB空間所能表示的顏色范圍是不一樣的,即使是同樣的RGB分量,在不同的RGB空間中所代表的顏色也是不一樣的。所以,在描述一個RGB顏色時,不僅需要描述它的RGB三個分量,還要說明是在哪個空間,這就是ICC文件的作用。
ICC(International Color Consortium)配置文件是國際色彩聯盟提出的,用來標識輸入輸出設備顏色特性的數據文件。ICC配置文件可以嵌入圖像中以指明數據的色域范圍,確保用戶在不同設備上都能看到相同顏色。
如果用Photoshop查看不正常圖片的色彩配置文件類型,就會發現可能不是Windows照片查看器直接支持的sRGB模式。例如,蘋果手機拍攝的照片,可能是Display P3模式的色彩空間。解決的辦法就是修改系統的顏色管理選項。在Windows設置中搜索“顏色管理”,打開后單擊“高級”選項卡,將設備配置文件改為“Agfa:Swop Standard”即可。也可以修改注冊表文件,或者直接將下頁圖7的文本內容保存為.reg文件,雙擊導入注冊表。這樣處理的結果,照片查看器可以正常看圖了,但是卻又造成無法打印這類圖片,而恢復注冊表相應內容為默認即可正常打印。
為什么打印和顯示不兼顧,看一下系統ICC配置文件的設置就會明白,顯示器和打印機使用了不同的ICC配置文件,如圖8所示。
用reg文件來回切換,還是不方便,可以使用“Microsoft照片”應用程序來替代照片查看器,或者使用功能更強大的第三方圖片查看軟件,如iSee、ACDSee等,徹底解決圖片顯示和打印問題。
Windows系統支持ICC等多種顏色配置文件格式,這些配置文件描述了特定設備(如顯示器、打印機、掃描儀等)的顏色特性。不同設備可能有不同的顏色表現能力,顏色配置文件可以幫助系統準確地轉換顏色,以確保在不同設備上顯示的顏色盡可能一致。但是各軟件在相互配合時,還是會出現不匹配的情形。例如,廣告設計部門,其作品是要印刷輸出的,必然會在CMYK色彩空間下工作,導出的效果圖片常常是CMYK模式的,在屏幕上查看時會與設計效果有顏色偏差。而且,當這樣的圖片插入圖文混排的文檔中后,編輯瀏覽狀態下顯示正常,當導出為PDF文檔用于流轉時,可能會出現圖片變為全黑的情況(取決于不同的軟件和PDF生成方式,如直接導出、轉換格式、虛擬打印等),甚至在預覽狀態下顯示正常,打印到紙張上卻是一片黑色,這時往往需要更新打印機驅動程序,也就是由設備廠商提供解決方案。
由于sRGB是目前屏幕顯示的“事實標準”,大多數屏幕所支持的色彩空間都在sRGB內,當圖片主要用于網絡交流時,建議統一轉換到sRGB進行保存。畢竟,相較于不能支持或嚴重失真,輕微的顏色偏差更能接受。
結語
最后需要說明的是,“色彩”是人類大腦對光線的一種主觀感覺,因為是主觀的,有時這種感覺會與實際情形有些出入,其不一樣的感覺可能是由于相鄰顏色的對比和心理影響造成的。