幾個顏色基本屬性的個人理解

在2018年下半年的時候,曾做過SDR2HDR的嘗試(從以前的低/標準動態範圍standard dynamic range到高動態範圍high dynamic range),瞭解到平常熟視無睹的顏色概念背後的博大精深,還處於顏色的迷宮中,只是藉助線性代數中向量空間的概念,稍微理清了一些概念,當時還和同學一起整理了個關於HDR基本概念的文檔。最近看了微信公共號“領略顏色之雅”關於色相、飽和度和明度的視頻資料,又碰巧看到了一些資料,在此記錄一下對顏色屬性的基本知識和個人理解,以免遺忘,。如有差錯,肯定來自我的理解,請邊懷疑邊閱讀。總的來說,我的理解是顏色向量空間是個三維空間,通過定義不同的基,於是有了不同的顏色座標系。

首先無法繞過的是如下所示的CIE1931xy色度圖,建立在W. David Wright(Wright 1928)和John Guild(Guild 1931)做的一系列實驗之上,具體細節可參看https://medium.com/hipster-color-science/a-beginners-guide-to-colorimetry-401f1830b65a 。 需要說明的是,這是色度圖,並不關注亮度信息。
CIE1931 xy色度圖

圖中所示區域即人眼能感知到的色域區域color gamut,這個形狀往往被稱爲馬蹄形或者舌形,其四周曲線上的點對應着可見光中每個波長的顏色,可見光波長範圍大致在380nm到700nm。區域內部的每個點,則是各種波長組合的光線進入人眼形成的色度。

人眼能夠感知到的色域區域是如此的寬廣,以至於顯示器受限於實際物理條件只能部分支持,圖中最裏面三角形所包含區域對應着 ITU-R Recommendation BT.709 (Broadcasting service Television),是高清電視支持的色域範圍;而最外面三角形所包含的區域對應BT.2020,是超高清電視支持的色域範圍,是代表最新技術的HDR顯示器支持的色域範圍,即WCG (寬色域Wide Color Gamut)。雖然三角形範圍越來越大,但是,離佈滿整個色域區域還是有不少距離。BT.709和BT.2020等規範都是由ITU-R(國際電信聯盟無線電通信部門International Telecommunication Union- Radiocommunication)制定。

如果說,色度表示的是進入人眼光線的各波長可見光的組合比例關係,在CIE1931xy圖中可以用座標值x和y來表示,那麼,亮度可以理解爲這束光線單位時間進入人眼的光子總能量,可以用座標值Y來表示,於是,我們有了顏色向量空間的第一組基(x,y,Y),在這個基下的每一個顏色向量,都有唯一對應的座標值。做個簡單推論,當亮度值不同的時候,即使色度座標值相同,我們感知到的顏色也是不同的。

現在看一下計算機中最常見的RGB顏色表示,每個分量的取值範圍在規格化後是0.0到1.0。比如,某個顏色用(0.1,0.2,0.3)來表示,實際上,這是在顏色向量空間的某個基確定後的某個顏色向量的座標值。這個基本質上就是紅綠藍三原色,具體數值如何確定的呢,以高清顯示器爲例,在xyY座標系下,三原色的色度座標就是CIE1931xy色度圖中最裏面三角形的三個頂點的座標,而亮度座標大概就是顯示器能支持的最高亮度值(以前顯示器的亮度值都差不多),這個沒有查到資料,我覺得只有這樣纔可能解釋得通。所以,在顏色向量空間中,某個顏色向量可以用xyY基下的座標值表示,也可以用RGB基下的座標值表示,在明確RGB基在xyY座標系下的座標值後,兩個座標系就可以相互轉換了(包括規格化)。做個簡單推論,基於RGB基的顏色表示,已經內在的包含了亮度信息。

再進一步,隨着顯示器技術的發展,其能表示的色域範圍和可以支持的最大亮度發生了變化,也就意味着不同顯示器使用的RGB基是不同的。所以,當我們簡單的說到RGB三分量的具體數值的時候,其實,我們背後隱含着這是基於BT.709還是BT.2020等規範規定的基。所以,視頻文件往往會指出其屬於BT709還是BT2020等信息。所以,我們拿到的RGB顏色值並不是直接適用於所有的顯示器。比如,HDR顯示器有更寬的色域和更高的亮度,適合HDR顯示器的RGB顏色值雖然規格化後取值範圍也是0.0到1.0之間,但是,如果要在普通顯示器上顯示的話,爲了人眼看不出現大的差別,必須將顏色值進行座標系變換(還包括超出範圍信息的取捨),因爲不同顯示器定義了不同的基。反過來,也是一樣的。這樣的變換,往往可以被稱爲tone mapping色調映射(tone mapping還有更多的應用)。

在視頻中常用的YUV表示,在BT.709和BT.2020等規範中已經有了明確的和RGB之間相互轉換的公式,不同規範定義的公式參數不同,本質上,也是一種座標系轉換。

顏色還可以用明度、色相和飽和度來表示。明度和色相大概都可以顧名思義的理解,之前一直不理解飽和度到底是個什麼東西。碰巧看到了在 https://zhuanlan.zhihu.com/p/31374619 的資料,才知道,原來色相+飽和度 和 色度xy值 是這樣一一對應的。

如下圖所示,C是白光點,A點的色度值由其xy座標確定,而A點的色相和飽和度,則由下面的方法確定。即,連接CA並延長交於馬蹄形周邊的B點,如前所述,B點對應着某個波長顏色,此即色相值;而A點到C點的距離代表飽和度,距離越遠,飽和度越高,顏色越純,因爲越接近B點色相,沒有其他光線摻雜進來。
file

繼續飽和度的通俗理解,估計是這樣的,多個波長組合而成的光線,構成了一個顏色。邏輯上,還可以將其構造成兩個顏色,首先將這些光線組合儘可能的湊成白色,然後剩餘部分構成另一個顏色。如果另一個顏色所佔的比例越大,白色所佔比例越小,那麼就是飽和度越高,也意味着,這“另一個顏色”更純,更接近色相值了。

再重複一下HDR顯示器的概念,主要是支持的色域三角形的取值範圍更大,支持的亮度範圍更高;而HDR電視則還要能夠播放HDR視頻,也就是要內置一個視頻解碼播放器。爲了能夠表達出更多的細節,每個顏色分量用更多的比特數來表示,比如10bit或者12bit等。另外,還有諸如更大分辨率、更快FPS等等支持。一個HDR視頻要在不同顯示器中播放,爲了有類似的觀影體驗,並不只是一個座標系轉換就夠了,比如環境光的影響,藝術加工等,人眼是個複雜系統,具體可以參看OOTF、OETF、EOTF等,那又是一片天地。

以上內容是本人業餘時間興趣之作,限於水平,差錯難免,僅代表個人觀點,和本人任職公司無關。

本文首發於微信公衆號:那遁去的一

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章