螢幕色彩描述檔 深入探討

iMac、MacBook的用戶會發現,用X-Rite的i1 Pro2、i1 Display Pro等器材配合原廠i1Profiler軟體進行螢幕校正後,作業系統的資料夾Finder預覽、圖片瀏覽器等程式內的圖片檔顯示的效果,竟然會和Photoshop略有差異。

細心比較,影像的差異來自於暗部階調不同;以蘋果系統內建程式觀看,會發生暗部少了幾個階掉的現象。那究竟是什麼原因造成這個問題的,又該如何避免呢?

這篇文章透過上面這個不同程式觀看造成影像差異的例子,實際測試、分析色彩描述檔,並歸納整理出不同的色彩描述檔的差異,最後回頭驗證各種校正軟體之間的相同與相異之處。

本篇文章寫於2021.12.04,使用測試的系統軟體版本如下:Windows 10 (21H1),macOS Monterey (12.0.1),i1Profiler V3.3.0,DisplayCAL 3.8.9.3/ArgyllCMS 2.1.2,Adobe Photoshop 23.0.2

本篇文章討論色彩描述檔案ICC Profile的組成結構,如果只是想知道蘋果電腦上Photoshop與Finder預覽看起來不同的解決辦法,敬請等待下一篇專文,將大致整理市面上的顯示器校正軟體,統整出不同軟體、不同設定間的相同與相異之處,以及實際應用上建議。


  1. 校正軟體中描述檔的種類
  2. 色彩描述檔的差異
    1. LUT查找表類
    2. matrix矩陣類
    3. 校正曲線Curves
      1. curveType
      2. parametricCurveType
    4. 顯示卡校正曲線VCGT
  3. 如何判斷描述檔種類
  4. 結論

校正軟體中描述檔的種類

使用螢幕校正軟體,執行軟體校正後會產生色彩描述檔ICC Profile檔案。這些檔案表面上看起來相同,但深究其組成內容,實際卻大相徑庭 。下面兩張截圖,有用過X-rite i1Profiler與DisplayCAL軟體製作螢幕校正的朋友應該不陌生。

下圖是i1Profiler中文版軟體中,ICC配置檔案設置選擇類型的設定頁面。軟體提供「基於圖表Table-based」「基於矩陣Matrix-based」兩種。
選擇基於圖表,實際上是製作L*a*b* LUT的描述檔,如果選擇基於矩陣,則是製作matrix + curve/gamma形式的描述檔。

更多資訊請參考X-rite網站:https://www.xrite.com/service-support/advanced_profile_settings

X-Rite i1 Profiler

DisplayCAL可選的類型更多,包含XYZ LUT + matrix、XYZ LUT、L*a*b* LUT、curves + matrix、Single curve + matrix、Gamma + matrix、Single gamma + matrix,共七種。

實際上有些是結合兩種型態的描述檔,例如XYZ LUT + matrix,實際上檔案包含LUT、Gamma、Matrix等數個校正單元,目的是為了更好的相容性。更多資訊請參考網站:https://displaycal.net/#settings_profiling

DisplayCAL

既然描述檔有不同的種類,那一定會對應不同的功能或使用方式,我們繼續看下去。


色彩描述檔的差異

根據色彩描述檔內部組成份,擁有不同的校正單元,我們可以大致區分成兩大類,分別是基於LUT 查找表,與基於Matrix矩陣(又細分為Curve校正曲線與Gamma參數型)。下面是基礎的特性表格給大家參考。

描述檔種類檔案大小校正精度支援度附註
XYZ LUT 查找表Windows無法安裝為顯示器用
L*a*b* LUT 查找表中低
matrix 矩陣 + Curve 校正曲線中~低OSX系統只支援single curve格式
matrix 矩陣 + Gamma 伽馬函式最小
不同種類的ICC Profile差異

「校正精度」指的是理論上校正能處理的色差大小,「支援度」則指應用軟體、作業系統,實際能使用支援的狀況,例如Adobe Photoshop、illustrator、Lightroom,Capture One等專業軟體,都能支援上述各種類型的描述檔沒問題,但使用蘋果色彩管理模組Apple CMM (Color Management Model)作業系統內建的看圖程式等,則只支援Single Curve、Gamma這些形式。Windows就更特別,首先只有少數微軟原生程式如相片瀏覽器,與少數第三方程式使用Microsoft Windows color System WCS的CMM,才有色彩管理的能力。這部分後面會繼續討論。

上表沒有討論到的是LUT形式雖然更準確精度更高,但多數狀況下可能平滑度(色彩過度、漸層表現)會比curve、gamma形式來的差,不過這點視軟體Profiling方式、程式演算法設計、螢幕品質等等因素而有所影響。

上表中幾點需要留意,第一是蘋果電腦作業系統OSX上有著全系統通用的基本款色彩管理能力,所有正確編寫的應用程式都能使用Apple CMM提供的色彩管理,這一點Windows系統是完全比不上的。因此上表附註中的「支援度」比較,僅是各自作業系統的相對,而非跨平台的討論。
另外無論是curve或gamma類型,都能製作RGB三通道各自擁有不同 或 相同校正參數的格式。如附註所標示,OSX作業系統就不支援多曲線curves的格式。又標準設定下,通常沒有校正軟體會生成R、G、B通道攜帶不同Gamma的Profile,雖然理論上可以但意義不大,本篇後續不另做各種使用或相容性測試。

了解不同軟體、不同設定下可能會產生不同格式的ICC Profile後,更詳細一點說明這些格式是在做什麼用的。

實際上ICC Profile有點像瑞士刀,有不同的工具,各自負責不同的功能;有時結構簡單,有時很複雜。以下我們拆解出每一種不同的組成,依序介紹它們扮演的腳色。


第一類:LUT查找表

第一種類型叫做Looking Up Table,LUT查找表。查找表本身是數學、科學上,時常拿來進行數值轉換的一種資料結構。

當我們要做不同色彩空間之間的色彩數值R、G、B轉換時,理論上可以透過數學算式來計算。但計算耗費計算機電腦的能源,也需要時間,計算結果也容易隨不同的設定條件而有所變動(例如計算精度差異)。

假若我們有一筆數值資料要從資料A集合轉換至B集合上,一筆一筆照A to B的公式算雖然可行,但既然已經確定來源與目的地,而且這兩者是固定的關係的話,那就可以透過預先計算得出數據,然後列表將輸入/輸出每一筆數值規律記錄下。爾後只要查詢輸入A數值的索引號,就能快速得到應該要輸出的B數值,這就是找查表的基本概念。

螢幕上顯示一個靜止的數位影像,本身就擁有上百上千萬的像素。當圖片要顯示在螢幕上,每一個像素的色彩數值就需要做上千萬次的轉換。這種重複性很高的工作,交給查找表LUT處理自然是適合的。

一維找查表範例
R、G、B三色的輸入與輸出數值各自擁有一套對照表,最後再合成RGB三個數值成為像素的RGB色彩值。
改變任一的輸入數值,與另外兩數值輸出結果並不相干。

https://dicomp.arri.de/

三維找查表範例
R、G、B輸入與輸出數值共用一套對照表;三個通道輸出、入密不可分,唯有綜合R+G+B的輸入數值,才能得出一組輸出R’G’B’輸出數值。

https://dicomp.arri.de/

而1D、3D LUT圖示,更常被繪製成下圖的樣子做比較:

回到螢幕校正用的ICC Profile中。

當你選擇製作XYZ或L*a*b* LUT形式的ICC Profile時,目的就是希望製作一個電腦計算色彩的虛擬色彩空間Profile Connection Space,PCS空間(關於PCS的資料可以參考本站文章),到顯示器的三維查找表3D LUT。透過這個3D LUT讓PCS的色彩數值轉換成螢幕正確對應色彩的(R、G、B)數值。

在Profile資料層面,這類LUT成為檔案中標示BToA (PCS to device transforms)的校正資料數據集。以B2A0 這個標籤為例,代表的是當數值從PCS空間中,映射到螢幕裝置的色彩空間時,選擇用感應式渲染意圖轉換perceptual rendering intent transform所需要的LUT查找表資料及(通常螢幕描述檔使用perceptual)。其他LUR像是B2A1,則是relative colorimetric intent transform相對色度轉換,B2A2則是saturation intent transform飽和度轉換。如果有需要反向計算螢幕裝置到PCS的轉換,則是使用A2B的資料集,常用在影視監視器校正上,用來反向計算出軟體層校正LUT使用。

使用ICC Profile Inspector軟體檢視ICC Profile檔案內部B2A0儲存資料。這邊demo的是一個第二版V2的ICC Profile,LUT資訊
(cLUT=Color Looking Up Table)
ICC Profile Inspector軟體檢視B2A0的cLUT資料,內含RGB三通道的LUT資料。

如果再向下深究,實際上LUT形式的螢幕校正ICC Profile又會依照版本不同而有所差異。所謂基於LUT 查找表的描述檔,本身並非只使用LUT作為校正單元,為了調整、線性化資料,依然可能使用矩陣matrix與曲線curve等校正單元。

本圖為第四版本使用LUT作為校正的ICC Profile完整結構。
https://www.color.org/specification/ICC1v43_2010-12.pdf

ICC Profile 第2版為例,整體具有(matrix) ⇒ (1d input tables) ⇒ (multi-dimensional lookup table, CLUT) ⇒ (1d output tables)的結構,第4版本則為為 (“B” curves) ⇒ (matrix)⇒ (“M” curves) ⇒(multi-dimensional lookup table, CLUT)⇒ (“A” curves)組成。

實際上,各個組成單元matirx、curve、LUT單元,並不一定要存在(或數值為零/線性),但這部分不是本篇的目的,就不繼續深究。


第二類:matrix矩陣

除了使用LUT查找表以外,另一大類就是基於矩陣matrix的描述檔。

矩陣的作用,在於處理不同色域間的線性映射;透過3×3矩陣單元,能夠將螢幕R、G、B三基色建構成的色域,連結色彩管理系統中Profile connection space, PCS的CIE XYZ做轉換。

這是一個CIE XYZ轉換到標準sRGB(線性)的矩陣式
https://www.color.org/specification/ICC1v43_2010-12.pdf

相對於找查表LUT,matrix矩陣可以說是更基礎的形式,基本上所有支援色彩管理系統、軟體都支援矩陣類的描述檔。

但如前面所述矩陣只能做單純的整體色域映射線性縮放,無法更進一步做非線性的校正階調與色彩偏差,此時就需要搭配接下來介紹的curve曲線處理。


校正曲線Curves

「曲線」結構在色彩描述檔內,可能代表多種不同的單元,但這邊特別指「Tone Response Curve,TRC」這個項目。TRC又可分兩種,一種是curveType,一種是parametricCurveType。


curveType

第一種curveType,真實紀錄了顯示器對於輸入/輸出的階調反映變化數據集合,本身就是對於顯示器階調呈現的離散曲線的一維找查表;TRC資料建立的目的,不是要直接校正輸出色彩數值,而是先記錄下螢幕階調變化,實際使用時再透夠過反向補償,達到正向的校正顯示效果。

下圖就是一個具備matrix矩陣/TRC曲線的描述檔基本結構,常用在螢幕校正描述檔中。
左側是電腦中色管系統計算使用的PCS空間(關於PCS的資料可以參考本站文章),數據先經過矩陣處理,將XYZ色彩空間做線性變換到螢幕RGB色彩空間上,接著帶入TRC的反函數TRC-1做補償,最後輸出給螢幕端,完成一個系統到螢幕的色彩輸出。

https://www.color.org/specification/ICC1v43_2010-12.pdf

實際上curveType資料,可以是如上圖R、G、B各自擁有不同的Curve資料,或是擁有相同Curve資料的方式。蘋果電腦OSX的Apple CMM只支援一條curve的Profile類型,如果製作成三條,會導致校正後顯示不正常通常比較明顯的狀況是是中性灰色偏。實際上描述檔裡,這些資料標示為rTRC、gTRC、bTRC。

使用ICC Profile Inspector軟體檢視ICC Profile檔案內部Tone Response Curve,TRC參數
這個範例中,檔案記錄了256筆資料,圖形曲線是軟體根據資料集,實際描點出來的。

parametricCurveType

第二種則是parametricCurveType參數型,直接標記特定的參數例如常見的Power function冪函數,gamma 2.2。參數型的描述檔,之所以能成立的原因,在於多數顯示器基本上廠商製作時就是以特定冪函數作為設定值,最常見的數值有1.8、2.2、2.4。在理想狀況下,如果顯示器階調特性偏離這些數值不多,那的確色彩描述檔只需要記下這個特性的一個數值,即能作為代表。實際上parametricCurveType參數型除了冪函數外,還有定義例如sRGB等特定的函數。理論上公式也是能夠擴充的。

ICC標準文件中,各種參數預設的格式與對應的公式、標準
https://www.color.org/specification/ICC1v43_2010-12.pdf

但顯而易見的是,如果顯示器偏離預定的階調方程式,偏離越多,校正的效果就越差,色差越大。因此這一類的色彩描述檔,是較上一個curveType更基礎的類型,好處是能夠更進一步縮小描述檔檔案體積。

parametricCurveType形式的描述檔,在TRC資料中,只會單純紀錄參數值。
這個範例中,實際檔案只記錄gamma 2.4的標示,圖形曲線是軟體繪製,並非實際描點出來的。

Video Card Gamma Table

理論上除了上述LUT、TRC等校正單元外,還有一個也是螢幕校正軟體可以使用,拿來直接對顯示卡輸出訊號做校正的單元,叫做顯示卡伽瑪表Video Card Gamma Table,VCGT。它與TRC有點類似,也是一個一維的找查表LUT,通常紀錄RGB三通道的校正曲線。

與TRC相同,這個一維的LUT(也稱為顯示卡校正曲線)只能處理RGB灰階平衡與改變階調變化,無法做色域大小的映射/縮放。

不過VCGT還是和TRC有兩大不同之處;首先,它不像TRC,全名Tone Response Curve階調反映曲線,理論上比較像是「被動」的儲存/標示顯示器的階調變化。VCGT直接作用在輸出端,直接改變輸出訊號,直接R、G、B數值做更改。

第二,是它實際被應用的地方,不是在軟體中的色彩管理模組CMM上;當描述檔內部有VCGT資料時,它會透過程序載入到顯示卡GPU的一個特殊區域。據悉一般來說能儲存RGB各通道16~10bit精度的LUT資料表。(不過常見的顯示輸出通常只有8bit精度)

因此這個VCGT可以說是一個很特別的存在,首先它位於主機系統上的顯示鍊結最末端,它又是最能直接影響輸出訊號的變化(往後就是透過HDMI、DisplayPort等線材,連接顯示器了)。有一些校正軟體並不會利用VCGT來做螢幕校正,可能保持線性資料。

這個VCGT資料集如果存在,會被以標籤"vcgt"儲存在描述檔內。


如何判斷描述檔種類

有了以上的種類概念,那要怎麼判斷既有的描述檔,是哪一個種類的呢?

最簡單的方式,是可以先由檔案大小來判斷;多數10kb以下的ICC Profile,都是matrix矩陣 + parametricCurveType曲線參數的類別。1MB以上的,多半是LUT、LUT+matrix混合形式的描述檔。介於10~1MB中間,就比較難說,有些檔案雖然形式相同,但儲存資料的取樣數目差異很大。

真正要判別種類的方式,Windows系統可以下載ICC Profile Inspector這個程式,在ICC官網上就有提供下載:https://www.color.org/profileinspector.xalter

程式使用很簡單,點開左上角「Browse…」後選擇你要檢視的ICC Profile檔案,軟體就會讀取資訊呈現如上圖。左側是一些描述檔基本資料,大小、種類、製作日期等等,右側就是比較詳細的各個內存資訊。Signature顯示的是特定的資料標籤,每一種標籤在描述檔中都有特殊的定義與作用,Offset則是資料結構中的位置,Size則是該筆資料大小。

回到Signature這個欄位。

  • 如果是LUT形式的顯示器描述檔,你會看到有「B2A0」這個項目,表示一筆由PCS到設備(顯示器)的轉換資料。
  • 如果是matrix形式的描述檔,你會看到「rXYZ」「gXYZ」「bXYZ」這三筆資料,分別儲存XYZ到RGB轉換矩陣的第一、第二與第三列。
  • 如果是TRC curve資料,則你會看到「rTRC」「gTRC」「bTRC」三筆資料,儲存測量到的階調曲線資料,或是單純紀錄曲線參數類型。

如果想檢視各項資料,只要滑鼠連點兩下該資料項目,就會另外跳出詳細的內容(如同本篇文章之前的貼圖)。

而如上圖所示,這一個描述檔同時擁有「B2A0」、「rXYZ」、「gXYZ」、「bXYZ」、「rTRC」、「gTRC」、「bTRC」這些數據,表示它既是LUT也是matrix形式的顯示器描述檔。不只DisplayCAL軟體可以製作出這類混合的描述檔,具查某些顯示器廠牌的校正程式,選擇LUT形式的設定下,實際上也製作出包含矩陣的檔案,猜想可能是為了提高應用程式的相容性。

但實際上色彩管理系統運作時,只會在LUT或matrix/curve擇一使用。至於會選用哪一部分來處理色彩轉換很難說,如果想確認可以參考本網站之前分享的文章「判斷程式是否支援LUT ICC Profile」,透過特殊交換RGB的matrix構造,來確認CMM實際使用LUT或是matrix執行色彩管理。

不支援LUT的程式,會使用matrix/curve處理色管,進而顯示出錯誤的影像。

結論

本篇討論顯示器色彩描述檔的種類,初略的介紹各種描述檔校正單元如LUT查找表、矩陣matrix、曲線curves與VCGT顯示卡校正曲線的作用與結構,目的是先建立起對於描述檔的構造差異的基本知識背景。

接下來一篇專文,會實際測試不同的螢幕校正軟體,在不同的設定條件之下,究竟會生成怎樣種類、結構的色彩描述檔,而這些不同的差異,又如何反應在軟體顯示影像上。

如同本文一開頭所示,iMac、MacBook的用戶會發現,用X-Rite的i1 Pro2、i1 Display Pro等器材配合原廠i1Profiler軟體進行螢幕校正後,作業系統的資料夾Finder預覽、圖片瀏覽器等程式內的圖片檔顯示的效果,竟然會和Photoshop略有差異。細心比較,影像的差異來自於暗部階調不同;以蘋果系統內建程式觀看,會發生暗部少了幾個階掉的現象。

造成這個問題的原因,是因為當i1 Profiler製作出matrix+parametricCurve形式的描述檔時,Apple CMM會受到顯示器與描述檔黑位不相等/絕對黑位的問題干擾,造成極暗部crush喪失階調。但只要稍加修正,正確選擇軟體內製作時的gamma參數,就能讓i1 Profiler製作出matrix+curve,實際帶一維曲線資料的描述檔。說也奇怪,這個curve似乎依然可以保持從0點開始紀錄的絕對黑位特性,但Apple CMM的解讀行為卻有所不同,不會讓暗部喪失階調。

更詳細、明確的測試與紀錄,將會在下一篇文章中跟大家分享,感謝耐心閱讀至此。

透過儀器測量,才能知道螢幕是否準確,如有偏差,也需要透過儀器校正、製作專屬的描述檔、3D LUT,才會得最正確的顯示效果。歡迎聯絡色管宅來處理您影片製作與觀看上的問題。

由色管宅替您目前工作的螢幕影像作業環境進行色彩管理確認,依據您的需求行業標準提出色彩準確性報告與建議。

由色管宅替您的螢幕進行校正系統色彩管理確認;包含環境燈光、螢幕選購與設定、應用程式設定,作業系統設定等完整的色彩管理顯示鏈結建議

發表者:Miles 林

色彩管理顧問 之前任職影像後期/DIT 剪輯 調光 美國 ISF影像標準協會 認證校正員 通過 經濟部IPAS色彩計畫/色彩工程鑑定 印刷色管顧問 T-Lab 東煦色研所 合作夥伴

螢幕色彩描述檔 深入探討 有 “ 2 則迴響 ”

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

%d 位部落客按了讚: