2020年6月3日 星期三

【色彩】RGB to XYZ

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

 

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


線性的 \(RGB\) 透過 Gamma 轉換,先轉換到非線性的 \( \overline{RGB} \),在透過色彩轉換矩陣轉換至非線性的三次激值 \( XYZ \)。轉換關係可用下述數學轉換式表示:
\[\style{text-align:left;}{ \begin{align*} \begin{bmatrix} X\\ Y\\ Z\\ \end{bmatrix} =M_t \left ( \gamma \left ( \begin{bmatrix} R\\ G\\ B\\ \end{bmatrix} \right ) \right ) \label{01}\tag{01}\end{align*}}\]
上述的 \( M_{t} \) 為色彩轉換矩陣(Color Transformed Matrix), \( \gamma \left ( \right ) \) 為 Gamma 轉換函式(Gamma Transformed Function)。

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

指數函式即為指數轉換的方法,以式(\(\ref{02}\))的方式呈現。
\[\style{text-align:left;}{ \begin{align*} \bar{C} = C^{\gamma}, where \space \bar{C} \in \left\{ \bar{R}, \bar{G}, \bar{B} \right\}, \space C \in \left\{ R, G, B \right\} \label{02}\tag{02} \end{align*}}\]

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

色彩轉換矩陣

透過 Gamma 轉換,得到非線性的 \( \overline{RGB} \), \( \overline{RGB} \) 可藉由三組特定的三元一次方程式,分別求得 \(X\)、\(Y\)、\(Z\) 值,可用下列式子表示:
\[ \style{text-align:left;} { \begin{align*} X=a\overline{R}+b\overline{G}+c\overline{B} \label{03}\tag{03} \end{align*} } \]
\[ \style{text-align:left;} { \begin{align*} Y=d\overline{R}+e\overline{G}+f\overline{B} \label{04}\tag{04} \end{align*} } \]
\[ \style{text-align:left;} { \begin{align*} Z=g\overline{R}+h\overline{G}+i\overline{B} \label{05}\tag{05} \end{align*} } \]
可表示成:
\[ \style{text-align:left;} { \begin{align*} \begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix} \begin{bmatrix} \overline{R} \\ \overline{G} \\ \overline{B} \end{bmatrix} \label{06} \tag{06} \end{align*} } \]
根據式(\(\ref{06}\)),令色彩轉換矩陣
\[ \style{text-align:left;} { \begin{align*} M_t = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix} \label{07} \tag{07} \end{align*} } \]
\(M_t\) 即為從 \(\overline{RGB}\) 轉換到三次激值 \(XYZ\) 的色彩轉換矩陣。發光式的三色顯示器其 \(M_t\) 的計算方式主要參考 IEC-61966-4 內所建議,以紅綠藍三色正規化後的三次激值,作為矩陣主要的列,並乘上一個修正對角矩陣,使得水平方向的和為正規化後的白色三次激值。



色彩科學

沒有留言:

張貼留言

熱門文章