原文發(fā)表于:https://huweicai.com/how-color-present/
現(xiàn)實(shí)的世界是豐富多彩的办素,然而我們又是怎么將這種色彩呈現(xiàn)到我們的顯示器上的呢战秋?
人眼如何感知色彩
眾所周知,光是一種電磁波蛇耀,可見(jiàn)光是人眼所能處理的一個(gè)電磁波頻率區(qū)間子集结闸,人眼看到事物是通過(guò)光來(lái)感知的,顏色的本質(zhì)就是電磁波的頻率酒朵,不同頻率的光即我們語(yǔ)言中所定義的不同種類(lèi)的顏色桦锄。本質(zhì)上我們的眼睛和雷達(dá)并沒(méi)有任何區(qū)別,只是大腦的解碼渲染能力強(qiáng)一點(diǎn)罷了蔫耽。
人的眼睛中有視錐細(xì)胞和視桿細(xì)胞结耀,視桿細(xì)胞負(fù)責(zé)感受光的強(qiáng)度,而視錐細(xì)胞則負(fù)責(zé)感受光的色彩匙铡。
視錐細(xì)胞
人類(lèi)眼睛中有三種對(duì)不同電磁波頻率敏感的視錐細(xì)胞图甜,分別是 Small Mediam Long,所有的顏色就是對(duì)這三種細(xì)胞不同強(qiáng)度刺激的組合結(jié)果鳖眼,比如:
- 黃色就是同時(shí)刺激 M 細(xì)胞和 L 細(xì)胞的結(jié)果
- 同時(shí)刺激三種細(xì)胞時(shí)黑毅,我們就會(huì)得到白色
- 如果都沒(méi)有刺激,那就是黑色
這三種基本的光就是我們通常意義上所說(shuō)的三原色钦讳,通過(guò)這三種原色矿瘦,基于同時(shí)用540nm 和 570 nm 波長(zhǎng)的光刺激錐狀細(xì)胞在人類(lèi)大腦看來(lái)大約等價(jià)于用 560nm光刺激的原理我們可以模擬出任意顏色的效果。不過(guò)這種等價(jià)只基于人類(lèi)成立愿卒,雞只有兩種視錐細(xì)胞缚去,而皮皮蝦則有足足十六對(duì),人類(lèi)眼中相同的顏色在其他生物眼中可能差異非常大琼开,不過(guò)這并不重要易结,只要能騙過(guò)我們的大腦就行,這種原理就是我們現(xiàn)代彩色顯示器的理論基礎(chǔ)柜候。
M 細(xì)胞和 L 細(xì)胞依賴(lài)的光敏色素蛋白基因編碼于 X 染色體上搞动,這會(huì)導(dǎo)致這兩種細(xì)胞無(wú)法正常運(yùn)轉(zhuǎn),即我們通常意義上說(shuō)的紅綠色盲癥改橘,另外它還是一種隱性遺傳病滋尉,所以患這種病的男性會(huì)比較多。
還有一種全色色盲癥飞主,即三種視錐細(xì)胞全無(wú)法正常工作狮惜,此時(shí)依靠視桿細(xì)胞維持視覺(jué)運(yùn)行高诺,只能看到黑白的世界。
色彩表示方式
RGB
利用按一定強(qiáng)度刺激人眼三種錐細(xì)胞即可等效模擬出顏色效果的原理碾篡,當(dāng)前幾乎所有的彩色顯示器全部是使用的 RGB 顏色模型來(lái)渲染色彩虱而。
具體傳輸時(shí)我們一般是用三個(gè)數(shù)字表示一個(gè)彩色像素點(diǎn),對(duì)應(yīng)其:Red Green Blue 的比例开泽,例如:
- 0 0 0 代表黑色牡拇,沒(méi)有光
- 1 1 1 代表白色,三種光混合
- 0 0 255 純藍(lán)色
- 255 255 0 黃色
RGBW
考慮到白光是一種非常常見(jiàn)的顏色穆律,而在 RGB 模型下顯示白光時(shí)需要三種光全力運(yùn)作惠呼,少數(shù)顯示器出于省電考慮加入了 White:白色燈,在需要顯示白色時(shí)只需亮起白燈一個(gè)即可峦耘,達(dá)到省電的效果剔蹋。所以這也是說(shuō)為什么黑色的背景可以省電的原理,黑色時(shí)一個(gè)燈都不需要亮辅髓,不過(guò)只有 OLED (Organic Light Emitting Display)這種每個(gè)像素點(diǎn)單獨(dú)發(fā)光的顯示技術(shù)才可以泣崩,對(duì)于像 LCD (Liquid Crystal Display)這種使用一塊背光板通過(guò)遮罩來(lái)調(diào)整光大小的技術(shù)來(lái)說(shuō)什么顏色耗電量都是一樣的。
YUV
YUV色彩模型使用 Y 亮度洛口,U 色度矫付,V 濃度來(lái)表示顏色。
同樣的 UV 分量第焰,Y 不同時(shí)效果如下:
這種格式不同于 RGB 的地方在于买优,在缺失了 UV 只有 Y 值時(shí),也能進(jìn)行顯示樟遣,不過(guò)看到的圖像就是黑白圖像而叼,所以這種格式剛開(kāi)始被提出用于黑白電視到彩色電視的過(guò)渡。
另外人類(lèi)眼中的視桿細(xì)胞比視錐細(xì)胞多很多豹悬,所以相對(duì)于色彩的變化葵陵,人眼要對(duì)亮度的變化更加敏感,利用這種特性瞻佛,可以讓多個(gè) UV 分量共用一個(gè) Y 分量脱篙,在基本保持色彩還原度的前提下盡可能的壓縮空間,根據(jù)不同的采樣率伤柄,常見(jiàn)的 YUV 格式有這幾種:
- 4:4:4 完全采樣绊困,Y:UV = 1:1
- 4:2:2 2:1的水平取樣,垂直完全采樣适刀,Y:UV = 2:1
- 4:2:0 垂直與水平均為 2:1 采樣秤朗,Y:UV =4:1
在 RGB 格式下,四個(gè)像素點(diǎn)存儲(chǔ)需要的空間為:4 * 3 = 12B笔喉,而使用 YUV420P 格式則只需要 4 * 1 + 1 + 1 = 8B取视,可以節(jié)約三分之一的空間硝皂,這是一個(gè)非常可觀(guān)的數(shù)字作谭,所以 YUV 格式基本也是網(wǎng)絡(luò)傳輸?shù)氖走x顏色編碼格式稽物。
不過(guò)基于現(xiàn)代顯示器的工作原理,YUV 格式很明顯是無(wú)法直接被顯示器渲染的折欠,需要轉(zhuǎn)化成 RGB 格式才可以贝或,以 YUV444 格式為例,可以通過(guò) NTSC 給出的如下公式在這兩種格式之間進(jìn)行換算:
Y = ( ( 66 * R + 129 * G + 25 * B + 128) >> 8) + 16
U = ( ( -38 * R - 74 * G + 112 * B + 128) >> 8) + 128
V = ( ( 112 * R - 94 * G - 18 * B + 128) >> 8) + 128
公式看的頭大也不要緊锐秦,只需要知道咪奖,RGB 和 YUV 以及下方的 CMYK 都是可以互相換算的就可以。
CMYK
不同于 RGB 這一套基于光源自身發(fā)光的顏色編碼體系酱床,我們現(xiàn)實(shí)世界中看到的很多東西其實(shí)是并不能發(fā)光的赡艰,然而我們又有自由組合色彩的需求,比如:彩印斤葱。利用色料的三原色混色原理,加上黑色油墨揖闸,共計(jì)四種顏色混合疊加揍堕,形成所謂“全彩印刷”,這種顏色編碼方式就是 CMYK:
- C:Cyan = 青色
- M:Magenta = 洋紅
- Y:Yellow = 黃色
- K:blacK = 黑色
CMYK 和 RGB 之間也是可以互相轉(zhuǎn)換的汤纸,在我們打印 RGB 圖片的時(shí)候就會(huì)發(fā)生這個(gè)轉(zhuǎn)換過(guò)程:
HSL(HSV)
RGB 編碼方式雖然可以很好的完成自然顏色到顯示器展示的映射衩茸,然而這種模式是基于光源的角度出發(fā)的,對(duì)于人類(lèi)來(lái)說(shuō)并不友好贮泞。HSL 模型在1978年由埃爾維·雷·史密斯提出楞慈,它是一種 RGB 的非線(xiàn)性映射:
- H: Hue,色調(diào)
- S: Saturation, 飽和度
-
L: Lightness啃擦,亮度
這個(gè)模型以人類(lèi)更加熟悉的方式封裝了顏色的特性:什么顏色囊蓝?深淺如何?明暗如何令蛉?
所以這也是在顏色調(diào)整的人機(jī)交互界面上所使用的最為廣泛的模型聚霜,例如:Photoshop,顯示器色彩調(diào)整珠叔,Windows顏色選擇器等蝎宇。
參考鏈接:
https://www.ixueshu.com/document/6f6ebb7bc153a6a89a4103ed4acdcdd2318947a18e7f9386.html
https://zh.wikipedia.org/wiki/%E5%BD%A9%E8%89%B2%E8%A7%86%E8%A7%89
https://zh.wikipedia.org/zh-sg/%E8%A7%86%E6%9D%86%E7%BB%86%E8%83%9E
https://www.fourcc.org/yuv.php
https://www.lg.com/us/experience-tvs/oled-tv/oled-vs-lcd