PTT推薦

Re: [問題] Nikon sRGB 跟一般 sRGB 差別?

看板DSLR標題Re: [問題] Nikon sRGB 跟一般 sRGB 差別?作者
momokoshi
(廉價藝術工)
時間推噓13 推:13 噓:0 →:9

簡單分析一下 Nikon 版和 Adobe 版的 sRGB 有什麼差異

為了怕被 End,先說結論:不同的 sRGB 幾乎沒差,直接用不需擔心

原文發在這裡,歡迎加入社團一起討論:
https://www.facebook.com/groups/goodprintsharing/posts/742850950280618

各家軟體隨附的 sRGB profile 有什麼差別,其實國外有大神分析過

總共拿了 15 個不同來源的 sRGB ICC 做比較,有興趣的板友可以移駕過去看看
https://ninedegreesbelow.com/photography/srgb-profile-comparison.html

這同時也代表一件很有趣的事:

即便都叫做 sRGB,但實際上不同描述檔之間有些微差異

但這些差異通常是很輕微的,直接指定不同 profile 可能也沒有可察覺的色彩差異
 
把 Nikon 修圖軟體內使用的 Nikon sRGB 4.0.0.3002

和 Adobe 版本的 sRGB IEC61966-2.1 拿來比較

為了方便稱呼,以下使用 Nikon sRGB 和 Adobe sRGB
 
‧額外的標籤資料

兩者最明顯的差別是 Adobe sRGB 用了更多的標籤紀錄額外資料

例如黑點、標準環境照明等等,但這些標籤內容並不是 ICC 規範一定要使用的

實際應用上通常也會被捨棄,所以 Nikon sRGB 缺少這些資料實際上沒有影響
 
‧D65 白點

sRGB 使用 D65 的白點,依據 ICC 規範應使用的 XYZ 值為 0.9505 1.0000 1.0890

兩個 sRGB profile 內部使用的 XYZ 值和規範比較如下:

  規範   Nikon  Adobe
X 0.9505 0.9505 0.95045
Y 1.0000 1.0000 1.00000
Z 1.0890 1.0891 1.08905

可以看出兩者的白點有些微的差異,且都和 ICC 規範不同

但這麼小的差異實際上並不會造成使用上的影響,比較可能產生的是心理上的疙瘩
 
‧RGB 色度

sRGB 規範 RGB 的 xy 色度座標為 R (0.64,0.33)、G (0.30,0.60)、B (0.15,0.06)

以下整理規範計算上的 RGB 理論 XYZ 數值,以及另兩個描述檔中實際的 XYZ 值

數值都已經過 D65-D50 色度轉換,使用 ICC 建議的線性 Bradford

Red  規範  Nikon  Adobe
X 0.43604 0.43607 0.43607
Y 0.22248 0.22250 0.22249
Z 0.01392 0.01392 0.01392

Green 規範  Nikon  Adobe
X 0.38511 0.38507 0.38515
Y 0.71691 0.71687 0.71687
Z 0.09707 0.09706 0.09708

Blue  規範  Nikon  Adobe
X 0.14305 0.14305 0.14307
Y 0.06061 0.06061 0.06061
Z 0.71391 0.71399 0.71410

將三種不同的 RGB 點繪製在 xy 色度圖上,三者幾乎是重合的

https://imgur.com/vYKHi5W

不同描述檔實作之間的差異可以忽略

‧真正的差異

從以上白點和 RGB 色度的比較上可以發現,雖然數值有些微的差異

但實際使用上應該沒有人可以發覺其中不同之處

不過 Nikon sRGB 的檔案容量明顯要比 Adobe sRGB 要大上許多

差異在於 Adobe 使用常見的 10 bit 精度紀錄 sRGB 曲線

Nikon 則使用了較高的 12 bit

眾所皆知,sRGB 曲線在暗部有一小段直線區域,接著使用 gamma 2.4 曲線

整體整合起來才接近於常見的 gamma 2.2

ICC profile 內部採用類似 1D LUT 的 TRC 標籤來記錄

理論上 Nikon 使用 12 bit 共 4096 點來表達 sRGB 曲線

會比 Adobe 的 10 bit 共 1024 點精度要好

但從圖上比較也很難看出彼此之間的差異

https://imgur.com/4w3HNNV

故進一步把兩個 profile 每一節點的數值和 sRGB 規範的理論值做比較

Nikon sRGB 的誤差反而比 Adobe sRGB 更大

平均誤差分別是 0.00000758 對上 0.00000379

若是以 16 bit 共 65536 階輸入數值,仿一般色管軟體線性內插 LUT 計算

Nikon sRGB 曲線均方差為 0.12037985,Adobe sRGB 則是 0.12058937

靠著更高精度的 12 bit LUT,Nikon sRGB 總算把優勢取回

題外話,這兩個 ICC 都是 V2 格式,ICC V4 支援「類sRGB」曲線的儲存方式
可以直接利用直線段和曲線段的分界點,以及直線段斜率、曲線段 gamma 值
以更少的資料欄位達到更高的準確度,不必再使用 LUT 的方式儲存、內插實際數值

‧結語

說了這麼一大篇,最終結論就如同文章開頭所說

各家製作的 sRGB profile 雖然存在數值上的差異,但在實際應用中幾乎無法被察覺

只要不是被惡搞的 profile,各種 sRGB ICC 可以說是實用上等校的

不需要在彼此之間做多餘的轉換,以免轉換造成更多的斷階和階調損失

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.173.149 (臺灣)
PTT 網址

CGary08/08 20:51推 寫得很詳細

user112008/08 21:01

jack858708/08 22:17

firenick08/08 22:19推專業詳細,結論就是:幾乎沒差,不要沒事轉來轉去自擾

ocean92070408/09 01:05好意外12bit居然沒有差很多

ferrinatice08/09 02:45

qo6m308/09 07:59專業用心推

hisct08/09 10:10請問精度10、12bit存成jpg會壓成8bit嗎?

TRC 的精度並不是指色彩深度,可能太容易混淆所以以下補充說明 TRC 內部記錄類似 1D LUT,也就是輸入一個數值,從表中尋找對應的輸出數值 在本篇文中的輸出數值就是 sRGB 的曲線,那個看起來像但不是 gamma 2.2 的東西 若輸入數值沒有剛好對應的欄位,就用上下兩個欄位的數值內插 所以越多的欄位就可以有越高的 sRGB 曲線匹配度 但不可能為了追求精度無止境提高欄位數量,所以一般 ICC 使用 1024 個欄位 這個數量是 2^10,所以稱為 10 bit,這是指 LUT 的格子數量 相同地,12 bit 是指這個 TRC 有 4096 個欄位,並不是指數值的色彩深度 在 ICC 的 TRC 標籤裡,數值的色彩深度通常都使用 16 bit 本文中的兩個 sRGB ICC 都是如此

hisct08/09 10:15色域轉換是軟體必須動作 那相對色度比較好嗎?

不知道你用哪一套軟體,但支援色管的軟體理論上不應該有強制轉換的流程才對 感應式和相對色度的差異主要在接近色域邊緣的色彩處理 沒有所謂誰比較好,只有適不適合的問題,不確定的話都試試看就好了 這個問題太大哉問,網路上應該有很多完整的說明可以看,就不詳述了 推

souvlaki: 專業…推

08/09 10:34

※ 編輯: momokoshi (60.248.162.95 臺灣), 08/09/2022 12:08:58

CGary08/09 16:34有個疑問 不同軟體對於相同profile的解讀是否都是一樣的呢?

CGary08/09 16:35如果不是 將不同sRGB profile做了轉換會不會在不同軟體上反

CGary08/09 16:35而呈現意想不到的結果呢?

firenick08/09 23:46一樣,硬體端的表現才會呈現意想不到的結果

firenick08/09 23:47所以硬體要用描述檔做硬體校正

momokoshi08/10 08:24對 profile 的"解讀"是一樣的,只要是 ICC 規範的欄位

momokoshi08/10 08:26解讀之後應用可能會有差異,比如黑點對應或是內插法

momokoshi08/10 08:27或者是資料欄位的支援性,比如有些色管核心不支援LUT

momokoshi08/10 08:29在都正確支援的情形下,不同軟體間差異是微乎其微

rgbff08/10 12:50專業推

akito08/10 14:41專業推

a433237708/11 09:40推!

WMQ09/20 20:08