sRGB(エスアールジービー、: sRGB)は、モニター、プリンター、およびWorld Wide Webで使用されることを目的としてヒューレット・パッカードマイクロソフト1996年に共同で作成した標準のRGB色空間である。その後、国際電気標準会議 (IEC) によってIEC 61966-2-1:1999として標準化された国際標準規格となった。sRGBは現在ウェブ用に定義されている標準の色空間であり、カラープロファイルが埋め込まれていないような画像では、sRGBが想定される色空間である。

sRGBは、基本的に当時使用されていたコンピューターモニターディスプレイ仕様を体系化したものであり、これがsRGB の普及に大きく貢献した。sRGBは、HDTVITU-R BT.709標準と同じ原色白色点を採用し、当時のCRTディスプレイと互換性のある伝達関数 (ガンマ) と、一般的な家庭やオフィスの視聴環境を想定して設計されている。

sRGB 仕様

編集

色域

編集
色度 R G B 白色点
x 0.6400 0.3000 0.1500 0.3127
y 0.3300 0.6000 0.0600 0.3290
Y 0.2126 0.7152 0.0722 1.0000

sRGBは、赤、緑、青の原色の色度を定義する。これらの色度は、3つのチャネルのうち1つがゼロ以外で、他の2つがゼロである色である。sRGBで表現できる色度の色域は、これらの原色によって定義される色三角形で、三角形内の色の範囲が通常の3色型視覚を持つ人間の目に見える色の範囲に十分収まるように設定される。他のRGB色空間と同様に、R、G、Bの値が負でない場合、この三角形の外側の色を表現することはできない。

原色はHDTV(ITU-R BT.709)から来ており、古いカラーテレビシステム(ITU-R BT.601)の原色とは異なる。これらの値は、設計当時の消費者向けCRTの蛍光体のおおよその色を反映するように選択された。当時の液晶ディスプレイは一般的にCRTの特性を模倣するように設計されていたため、これらの値は他のディスプレイデバイスの一般的な慣行も反映していた。

変換

編集

sRGBからCIE XYZへ

編集

sRGBの値、 ,  ,  は0~1の範囲である。8ビットの数値としてデジタルで表現すると、これらの色成分値の範囲は0~255 となり、0~1の範囲に変換するには(浮動小数点表現で)255で割る必要がある。

 

ここで  または  または  である。

しばしば「リニア値」や「リニアライト値」と呼ばれるこれらガンマが除去された値は、行列を掛けることでCIE XYZが取得される (行列の精度は無限であり、値の変更やゼロ以外の値の追加は許容されない)。

 

これは実際のところsRGBだけでなくBT.709の原色の行列でもあり、2行目はBT.709-2輝度係数に対応する (BT.709-1ではこれらの係数にタイプミスがあった)。

CIE XYZからsRGBへ

編集

CIE XYZ値は、D65 (「白」) のYが1.0 (X = 0.9505, Y = 1.0000, Z = 1.0890) になるようにスケーリングする必要がある。ただし一部の色空間では100またはその他の値が使用される (指定された白色点を使用する場合のCIELABなど)。

CIE XYZからsRGBを計算する最初のステップは線形変換であり、行列の積によって実行する。(以下の数値は公式のsRGB仕様の数値と一致しており、sRGBの作成者による元の出版物の小さな丸め誤差を修正し、CIE XYZの2°標準色彩観測者を想定している。) この行列はビット深度に依存する。

 

これらの線形のRGB値は最終結果ではない。ガンマを適用する必要がある。次の式で線形値をsRGBに変換する。

 

ここで  または  または  である。

これらガンマが適用された値 (しばしば「非線形値」と呼ばれる) は、通常、0~1の範囲にクリップされる。このクリップは、ガンマ計算の前または後に実行することも、8bitへの変換の一部として実行することもできる。ビデオ表示や8bit画像など、0~255の範囲の値が必要な場合は、通常255を掛けて整数に丸める。