Wednesday, June 3, 2020

【色彩】RGB to XYZ

RGB 為紅綠藍所代表的數位訊號等級,在三原色系統用來描述色彩等級或比例的單位,為線性系統。XYZ 為三次激值(tristimulus),為人類感知色彩強度的心因性物理量量化數值,屬於非線性系統。兩者間的轉換是複雜且不直接的,RGB 需進行 Gamma 轉換後,並進行轉換矩陣的混和,才能計算對應的 XYZ。

 

轉換流程
RGB to XYZ 的轉換流程,第一個步驟須將 RGBXYZ 正規化到區間 [0,1] 之間,以 8 位元系統為例, 127 被正規化成 0.4980。整個轉換過程,可透過下面的流程圖進行說明:

Created with Raphaël 2.3.0RGBNormalizeGamma Transform(Rbar, Gbar, Bbar)Transformed MatrixXYZ

線性的 RGB 透過 Gamma 轉換,先轉換到非線性的 RGB,在透過色彩轉換矩陣轉換至非線性的三次激值 XYZ。轉換關係可用下述數學轉換式表示:
(01)[XYZ]=Mt(γ([RGB]))
上述的 Mt 為色彩轉換矩陣(Color Transformed Matrix), γ() 為 Gamma 轉換函式(Gamma Transformed Function)。

Gamma 轉換
由於人眼對色彩與亮度的感知強度為非線性表現,通常為指數型態的相對關係,因此數位訊號 RGB 所對應的色彩強度,或是亮度強度,為因應這種現象,常被設計成一種非線性遞增的表現系統。Gamma 即轉換旨在將線性的 RGB 系統,轉換成非線性系統 RGB 的轉換過程。Gamma 轉換的方法可分成三類,分別是指數函數、查表,以及轉換方程式。

指數函式即為指數轉換的方法,以式(02)的方式呈現。
(02)C¯=Cγ,where C¯{R¯,G¯,B¯}, C{R,G,B}

查表即給一組對應表,透過內差的方式將對應的 Gamma 數值換算出來;轉換方程式即透過非指數函數的特定方程式,將 Gamma 值計算出來,以 Rec. (B.T.)規範為大宗。

色彩轉換矩陣

透過 Gamma 轉換,得到非線性的 RGBRGB 可藉由三組特定的三元一次方程式,分別求得 XYZ 值,可用下列式子表示:
(03)X=aR+bG+cB
(04)Y=dR+eG+fB
(05)Z=gR+hG+iB
可表示成:
(06)[XYZ]=[abcdefghi][RGB]
根據式(06),令色彩轉換矩陣
(07)Mt=[abcdefghi]
Mt 即為從 RGB 轉換到三次激值 XYZ 的色彩轉換矩陣。發光式的三色顯示器其 Mt 的計算方式主要參考 IEC-61966-4 內所建議,以紅綠藍三色正規化後的三次激值,作為矩陣主要的列,並乘上一個修正對角矩陣,使得水平方向的和為正規化後的白色三次激值。



色彩科學

No comments:

Post a Comment

熱門文章