簡單分析一下 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 可以說是實用上等校的
不需要在彼此之間做多餘的轉換,以免轉換造成更多的斷階和階調損失