Chapter 3 顏色空間(1)——RGB
來自專欄 Video Demystified
- RGB
- sRGB
- scRGB
- 伽馬校準
- 色度圖
RGB
顏色空間是顏色集合的數學表示。在計算機中最常用的顏色系統是RGB,RGB三種顏色取不同幅度可以得到不同的顏色。如圖所示,立方體代表的是RGB顏色空間,對角線表示不同的灰度。
RGB顏色空間簡單易理解,在計算機顯示器上顯示也方便,但是它在視頻方面並不高效。比如,要在RGB立方體中生成任意一種顏色,RGB分量都需要明確幅值,因此它們需要相同的帶寬(所佔帶寬高)。此外,如果要修改某個點的亮度,要先讀取這個點的RGB值,計算亮度,反過來求RGB,寫入視頻,操作及其繁瑣,不如以亮度和顏色存儲的圖像直觀(不宜處理)。
數字RGB採用二進位來表示,如8位二進位、24位二進位等,通常用8位,即0-255。表示RGB的二進位位數叫做圖像的像素深度。
sRGB
sRGB色彩空間是惠普與微軟於1996年一起開發的用於顯示器、印表機以及網際網路的一種標準RGB色彩空間。
下圖是色度圖(詳見第五部分),圖中顯示的顏色是人眼能看到的所有顏色,但是,sRGB並不能表示所有可見的顏色,而是在色度圖中選取了三個點作為標準的RGB顏色,紅色位於[0.6400, 0.3300]、綠色位於[0.3000, 0.6000]、藍色位於[0.1500, 0.0600]、白色是位於[0.3127,0.3290]的D65。sRGB能顯示的顏色全部在這個顏色三角形中。
sRGB和色度圖坐標(x,y)的互換詳見維基百科sRGB詞條。
一般來說,生成的sRGB的範圍是0-1(歸一化),如果用8位二進位表示,那麼將數值乘以255取整即可。
sRGB還定義了原色強度與實際保存的數值之間的非線性變換。這個曲線類似於CRT顯示器的gamma響應。重現這條曲線要比sRGB圖像在顯示器上正確顯示更加重要。這個非線性變換意味著sRGB非常高效地使圖像文件中的整數值表示了人眼可以分辨的顏色。
sRGB由於它的色域不夠大,尤其是藍-綠顏色色域無法表示CMYK印刷中的所有顏色,所以通常印刷行業的專業人員不用這種模型。而Adobe RGB是印刷行業經常使用的色彩空間。
scRGB
scRGB is a wide color gamut RGB (Red Green Blue) color space created by Microsoft and HP that uses the same color primaries and white/black points as the sRGB color space but allows coordinates below zero and greater than one. The full range is -0.5 through just less than +7.5.
與sRGB類似,scRGB也是定義在色度圖上的顏色空間,選取的三個坐標如下圖所示。可以看到,三角形的區域要遠遠大於人眼所能看到的區域(但並沒有包含所有人眼能看到的區域)。
16位scRGB(16)編碼是通過將-0.5到7.4999的模擬RGB顏色進行轉換,轉換公式為8192x + 4096。-0.5時為0;7.5時為65536,但是由於只能表示到65535,因此最大為7.4999。
The components in Windows 7 that support 48-bit scRGB are Direct3D, the Windows Imaging Component, and the Windows Color System and they support it in both full screen exclusive mode and in video overlays.
scRGB用在Windows系統中,但是我們在視頻中接觸不多,了解即可。
伽馬校準
現實世界中幾乎所有的CRT顯示設備、攝影膠片和許多電子照相機的光電轉換特性都是非線性的。這些非線性部件的輸出與輸入之間的關係(例如,電子攝像機的輸出電壓與場景中光強度的關係,CRT發射的光的強度與輸入電壓的關係)可以用一個冪函數來表示。對於RGB顏色空間來說,就是如下公式:
R = R ^ gamma; // R是校準前的值,R是校準後的值G = G ^ gamma; // G是校準前的值,G是校準後的值B = B ^ gamma; // B是校準前的值,B是校準後的值
將上述公式逆變換得到校準後的值的過程,就是伽馬校準。
伽馬校準是為了使數據變得線性。
早年的NTSC使用gamma值為2.2,PAL和SECAM使用gamma值為2.8。
現在的gamma校準採用的是分段校準,gamma值採用[1/0.45]。
具體如下:
如果有超出0-1範圍的,變換如下:
反變換公式相應如下:
超出0-1範圍:
現在採用這樣的gamma校準較多。
色度圖
色度圖是給出了人類正常的視覺色域。(色度圖為CIE顏色系統)
這個圖的構成如下:CIE系統中,紅、綠、藍的亮度被轉換成三色值的量,分別用X、Y、Z表示,圖中的坐標值由三色值推導而來。
x = X / (X + Y + Z)y = Y / (X + Y + Z)z = Z / (X + Y + Z)
x,y,z稱為色度坐標。由於三者之和為1,因此只需要x和y的值,圖也可以是二維的。
通常來說,信號源或者顯示器會選擇色度圖中的三個點,將其圍成的三角形作為其顏色空間,所以,一般的顏色空間不能表示所有的顏色。
NTSC,PAL,SECAM,sRGB,scRGB所選取的都不相同(具體不列出了)。
這裡有三篇文章,大家可以看看,以前也有知友推薦過。
UI 設計知識庫 [01] 色彩 · 理論
UI 設計知識庫 [02] 色彩 · 理論 - 常見問題
UI 設計知識庫 [03] 色彩 · 配色
中英文對照表
推薦閱讀: