你有想過,市面上常見的風格檔是如何使顏色產生變化的?
這篇來跟大家聊聊,究竟風格檔背後的原理是什麼。
LUT 是什麼?
LUT(Look-Up-Table)是一種用來將輸入數值轉換為新的對應數值的對照表。可以將螢幕的色彩校正到特定某一個色彩空間下,或是預先設定想拍攝的風格;例如帶有科技感的冷色調或是有夕陽灑落感的暖色調等,其中又分為 1D LUT 及 3D LUT。
- 1D LUT
1D LUT 顧名思義是只能對單一維度的數值去做轉換,例如一張 RGB 彩色影像來說,只能對紅色通道、綠色通道或是藍色通道的數值去做轉換,而只能對單一數值做轉換也意味只能調整影像的對比度、亮度等資訊,無法精準的控制色彩。
另一方面,如果我們調整了一張 RGB 彩色影像的單一通道的話,顯示出來的顏色也會和其他兩個通道的數值產生交互影響,使得顏色不見得是我們所想要的。
- 3D LUT
3D LUT 相對於前面提到的 1D LUT,能夠透過索引值將一組數值轉換為另一組新的數值,因為 3D LUT 能同時對三個通道的數值去做替換,因此能夠控制我們想要顯示的顏色。
1D LUT & 3D LUT 哪個比較好?
從上面介紹的內容來看 3D LUT 能做到的事情遠比 1D LUT 多,但是我們在做 LUT 轉換時希望是即時的,3D LUT 所儲存的資料數量也遠比 1D LUT 多很多,需要較長的時間查表,進而延遲了轉換的時間。
相較之下,1D LUT 除了有儲存資料較少、處理速度較快的優勢之外;由於 1D LUT 是單一數值之間的轉換,可以切分較為細緻。
由此可見,兩者各有其優勢,取決於使用 LUT 的需求與應用層面。
- 將 1D LUT 與 3D LUT 結 合
既然 1D LUT 及 3D LUT 有各自的優勢,我們可以將它們做結合,例如可以先用 1D LUT 來做 Gamma 校正或是灰階平衡等,再將由 1D LUT 轉換後的數值輸入 3D LUT ,進而達到管理色彩的效果。
生成校正型 LUT
- 量 測 數 量 與 LUT 大 小
3D LUT 可以將一組數值轉換成另外一組新的數值,那其中轉換的精準度又該如何決定呢?一般來說,如果有更多資訊的話,我們就能推算出更精確的輸出結果。
因此,LUT 尺寸量測點的數量越多就能得到越準確的結果。
而要生成校正 LUT 則需要透過量測色塊,量測點越多能更精準推算新的輸入數值對應到怎樣的輸出數值,但是量測所需的時間也會拉長,量測數量到一定程度之後,對準確度的影響也會逐漸變小。
- 特 性 化(Characterisation)
透過量測色塊建立輸入訊號跟輸出訊號之間的關係,依設定要量測的色塊數量得到一組經 RGB 數值轉為 XYZ 數值的結果。
- 生 成 LUT
在特性化的過程只用較少的色塊做量測,但要產生 LUT 的時候,我們希望它的準確度比較高,因此會利用演算法去內插補齊沒有量測到的色塊數值。
特性化會得到原生色域的結果,後續就能進一步將色域轉換為標準的色彩空間(如 Rec.709, DCI-P3, Rec.2020 等)。
如何產生沒有實際量測到的數值?
特性化的過程我們使用較少的色塊去量測以建立 LUT,那該如何產生沒有實際量測到的數值呢?以下提供兩種 3D LUT 的內插方法:
- 三 線 性 內 插 法 (Trilinear Interpolation)
三線性內插法是線性內插的擴展,通常用於三維空間進行內插補值。
對應到量測上的案例,可以把這些灰色節點當成是我們所量測到的數值,而紅色點則是利用已知的數值去做內插而得的。
符號說明
- 大寫字母: 表示在網格上的點 (表已知)
- 小寫字母: 表示不在網格上的點 (表未知)
- V(r, g, b): 表示座標點(r, g, b)的數值大小
計算流程:
欲求座標點跟節點之間的距離當作權重比例,這邊用簡單的比例關係表示,在同一軸向上未知點跟最鄰近前後兩節點間的關係
計算欲求座標點紅色軸向的數值(每個結果是獨立的,和順序無關),利用前面算得的距離權重比例去求得鄰近的紅色數值
已知欲求座標點在紅色軸向上的數值之後,再求綠色軸向的數值
最後,再利用前面得到的紅色軸向以及綠色軸向的數值去求得座標點(r, g, b)的數值
上述過程是一連串的線性內插,我們可以將其整理成一般式(general expression)去看
而這個一般式看的出來是線性關係,所以能夠將它的型式改為矩陣型式
將C矩陣展開,所以C = AV,其中A為係數矩陣
最後方程式可整理成
- 四 面 體 內 插 法 (Tetrahedrons Interpolation)
四面體內插法的概念是取已知的四個節點去構成一個四面體,接著去判斷我們想要求的座標點屬於哪一個四面體當中,再用距離權重判斷該使用哪個係數矩陣,進而求得內插數值。
計算流程:
計算距離權重
依照欲求座標點離各個軸向的距離權重決定使用哪個係數矩陣
最後就能利用係數矩陣求得目標座標點的數值
- 三 線 性 內 插 法 和 四 面 體 內 插 法 有 什 麼 差 別?
如果我們輸入的是有平滑梯度的影像,或是可以想像成漸層的影像,如下圖
三線性內插法因為沒有足夠的精度去滿足每一個 step,導致漸層產生一條一條白色的條帶
四面體內插法使用更精確的計算方法,使漸變更平滑好看
歐諾專業色彩服務