デザイン

sRGBが色空間の中でもひときわ異質な理由とは?


色の見え方には観測者同士による差異が存在するため、デジタルの世界では色を定量化するために、赤(R)・緑(G)・青(B)をそれぞれ0から255の値で表す「色空間」という形式が採用されています。そんな色空間の中でも「sRGB」だけが他と異なるという理由について、高品質な画像のサイズ変更アプリケーションを提供するPhotoSauceが解説しています。

What Makes sRGB a Special Color Space? - PhotoSauce Blog
https://photosauce.net/blog/post/what-makes-srgb-a-special-color-space

sRGBの仕様書のセクション3.1には、「CIE 1931 色空間で用いられる3種のパラメーターの値を示す三刺激値とRGBで用いられる3種のパラメーターの値を示す8ビットの色度座標の間のエンコーディング変換は、リファレンスとなる観測者が基準となるリファレンス用の表示条件で見たときに、最適な色調を表現するための一義的な方法を提供する」と記されているとのこと。この一文について、PhotoSauceは以下の三点が重要だと指摘しています。

・sRGBは抽象的な意味での色空間ではなく、RGBの色度座標によって決まる。
・仕様書に記載されるエンコーディング方法は曖昧さの余地がなく、解釈は一義的である。
・sRGBの各色度座標は8ビット(0~255)で表記される。

このsRGBの色度座標とCIE 1931 色空間の三刺激値をエンコーディング変換する際にPhotoSauceが長らくぶち当たっていた問題が「小数点4桁以下の値をエンコーディング変換しようとするとズレが出る」というもの。そしてこの点について調べていたところ、sRGBを人の目に見える色以外の範囲まで拡張した色空間「scRGB」の仕様書のセクション4.1には、以下の一文が記載されていることがわかりました。

・エンコーディング変換は、CIE 1931 色空間の三刺激値とscRGBの16ビット値の色度座標を変換する一義的な方法を提供する。


先ほどのsRGBにおいて採用されていたのは0~255までの数値で構成される「8ビット」でしたが、scRGBで採用されているのは0~65535で構成される「16ビット」という差異が存在します。しかし、PhotoSauceによると、実際にscRGBの3種のパラメーターをCIE 1931 色空間の3種のパラメーターに変換すると、sRGBからCIE 1931 色空間へ変換するのと同様に、小数点以下4桁でズレが生じることがわかったため、「通常の色空間におけるエンコーディング変換では色度座標の値は小数点以下がいくらあっても大丈夫だが、sRGBからのエンコーディング変換の場合はやはり小数点4桁以下を丸めないと正しい値を得られないということがわかった」と解説しました。

PhotoSauceによると、この小数点以下の桁数制限によって、sRGBはリファレンス用表示においてRec. 709の原色を参照するよう提示しているものの、実際に記載されている値は不正確という問題や、CIE 1931などに用いられる標準光源であるD65光源では三刺激値が丸められているという問題が副次的に発生しているとのこと。PhotoSauceは「カラートライアングルで規定されるリファレンス用の表示環境と仕様書のエンコーディングによって定義される実際の原色は区別されるべきだが、Wikipediaの要約などでは混同されることが多い」と記しています。

この記事のタイトルとURLをコピーする

・関連記事
ブラウザによって色が異なる「色空間」の不思議な世界 - GIGAZINE

デザインで「人間が感覚的に見分けやすい色」を選ぶ方法をデータ可視化のプロが解説 - GIGAZINE

色空間を表す「RGB(赤・緑・青)」と「HSL(色相・彩度・輝度)」の値の関係が視覚的に分かる「RGB & HSL」 - GIGAZINE

in デザイン, Posted by log1k_iy

You can read the machine translated English article here.