sRGB(標準赤緑青)は、HPとMicrosoftが1996年に共同で作成したモニタ、プリンタ、インターネット上のRGBカラースペースです。 その後、IECによってIEC 61966-2-1:1999として標準化された。 特に、画像のピクセルがカラーチャネルごとに8ビットの整数で格納されている場合は、色空間情報を含まない画像の「デフォルト」の色空間になることがよくあります。
sRGBは、スタジオモニターやHDTVと同じITU-R BT.709プライマリ、CRTに特有の伝達関数(ガンマカーブ)、典型的な家庭やオフィスの視聴条件に合わせて設計された視聴環境を使用します。 この仕様では、sRGBを時間の一般的なCRTモニターに直接表示することができ、これはその受け入れを大いに助けました。
sRGBガモット
色度 | 赤 | 緑 | 青 | ホワイトポイント |
---|---|---|---|---|
バツ | 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で表現できる色度の範囲は、これらの原色によって定義された色の三角形です。 RGB色空間と同様に、R、G、Bの非負の値については、この三角形の外側の色を表現することはできません。これは、人間に見える色の範囲内にあります。
CMYK印刷で再現できるすべての色を含めるには、色域が特に青緑色で十分ではないため、sRGBはハイエンドの印刷出版専門家によって回避されることがあります。
sRGB伝達関数(「ガンマ」)
各ポイントで有効なガンマ。 0.04045の圧縮値または0.00313の線形強度の下では、曲線は線形であるため、ガンマは1です。赤い曲線の後ろには、正確なガンマ= 2.2の法則を示す破線の黒い曲線があります。
sRGBはまた、これらのプライマリの強度と格納された実際の数との間の非線形変換を定義する。 曲線は、CRTディスプレイのガンマ応答に似ています。 この非線形変換は、sRGBが人間が識別可能な光レベルを表示するために整数ベースの画像ファイルの値を合理的に効率的に使用することを意味します。
他のほとんどのRGB色空間とは異なり、sRGBガンマは単一の数値として表現することはできません。 ガンマ全体は約2.2であり、黒色に近い線形(ガンマ1.0)セクションと、2.4指数とガンマ(対数出力対対数入力の傾き)を含む他の場所の非線形セクションが1.0から約2.3に変化する。 線形セクションの目的は、曲線がゼロで無限の勾配を持たないので、数値的問題を引き起こす可能性があります。
変換の仕様
順方向変換(CIE XYZからsRGBへ)
CIE XYZ値は、D65( “白”)のYが1.0(X、Y、Z = 0.9505,1.0000,1.0890)になるようにスケーリングしなければなりません。 これは通常は当てはまりますが、一部の色空間では100以上の値を使用します(Lab記事など)。
CIE XYZからのsRGBの計算の第1ステップは線形変換であり、これは行列乗算によって行うことができる。 (下の数値は、sRGBの作成者による元の刊行物の小さな丸め誤差を修正し、CIE XYZの2°標準測色オブザーバを仮定した公式のsRGB仕様の数値と一致しています)
これらの線形RGB値は、まだガンマ補正のために調整されていないため、最終結果ではないことに注意することが重要です。 次の式は、線形値をsRGBに変換します。
ここで、{\ displaystyle a = 0.055} a = 0.055、{\ displaystyle C} Cは{\ displaystyle R} R、{\ displaystyle G} G、{\ displaystyle B} B.
これらのガンマ補正された値は、0〜1の範囲内にあります.0〜255の範囲の値が必要な場合、たとえばビデオ表示や8ビットグラフィックスの場合、通常の手法は255を掛けて整数に丸めます。
値は通常0〜1の範囲にクリッピングされます。 このクリッピングは、ガンマ計算の前後に行うことも、8ビットに変換することの一部として行うこともできます。
逆変換
再びsRGBコンポーネントの値
ここで、{\ displaystyle a = 0.055} a = 0.055、{\ displaystyle C} Cは{\ displaystyle R} R、{\ displaystyle G} G、{\ displaystyle B} B.
XYZを得るために線形値の行列乗算が続く:
変容の理論
しばしば、sRGBデータの復号ガンマは2.2ですが、上記の変換は2.4の指数を示します。 これは、区分的分解の正味の効果が、範囲内の各点で必然的に瞬間的なガンマの変化であることにあります。つまり、ガンマ= 1から2.4のガンマになり、中央値が2.2に近くなります。 この変換は、約2.2のガンマに近似するように設計されていたが、 K = 0で無限の勾配を有することを避けるためにゼロ付近の線形部分を有し、数値的問題を引き起こす可能性がある。 曲線の連続性条件
解く
今度は2つの方程式があります。 2つの未知数を{\ displaystyle K_ {0}} K_ {0}と{\ displaystyle \ phi} \ phiにすると、
代用
閲覧環境
パラメータ | 値 |
---|---|
画面の輝度レベル | 80cd / m 2 |
光源白色点 | x = 0.3127、 y = 0.3290(D65) |
イメージサラウンド反射率 | 20%(〜ミディアムグレー) |
エンコード周囲照度レベル | 64ルクス |
周囲の白色点を符号化する | x = 0.3457、 y = 0.3585(D50) |
エンコーディング表示フレア | 1.0% |
典型的な周囲照度レベル | 200ルクス |
典型的な周囲白色点 | x = 0.3457、 y = 0.3585(D50) |
典型的な表示フレア | 5.0% |
sRGB仕様では、環境相関色温度(CCT)が5000Kの薄暗いエンコーディング(作成)環境が想定されています。これは、光源(D65)のCCTとは異なります。両方にD50を使用すると、ほとんどの印画紙の白色点が青色になりすぎてしまいます。 輝度レベルなどの他のパラメータは、典型的なCRTモニタを代表するものである。
最適な結果を得るために、ICCは、より厳格ではない典型的な視聴環境ではなく、符号化視聴環境(すなわち、薄暗い照明)を使用することを推奨する。
使用法
インターネット、コンピュータ、プリンタでsRGBが標準化されているため、多くの低中程度のコンシューマデジタルカメラやスキャナでは、sRGBがデフォルト(または唯一の利用可能)の作業色空間として使用されています。 sRGBガモットがローエンドのインクジェットプリンタの色域に適合するか、それを超えると、sRGBイメージは家庭での使用に十分なものと見なされることがよくあります。 しかし、コンシューマレベルのCCDは一般的に較正されていないため、画像がsRGBとラベル付けされていても、画像が色精度sRGBであるとは判断できません。
画像の色空間が不明で、8〜16ビットの画像形式の場合、sRGB色空間にあると仮定すると安全です。 これにより、プログラムはすべての画像の色空間を識別することができます。これは、「未知」の色空間を追跡するよりはるかに簡単で信頼性が高くなります。 ICCプロファイルを使用することができます。 ICCは3つのプロファイルを配布します.2つのプロファイルはICC仕様のバージョン4に準拠しており、推奨されています。また、バージョン2に準拠する1つのプロファイルが一般的に使用されています。
プリプレス出力など、完全にカラー管理されたワークフローによるプロフェッショナル印刷を目的とした画像は、より広い色域に対応するAdobe RGB(1998)などの別の色空間を使用することがあります。 インターネット上で使用されるこのような画像は、これらの他の色空間で動作するソフトウェアに通常含まれる色管理ツールを使用して、sRGBに変換することができます。
3Dグラフィックスの2つの支配的なプログラミングインタフェースであるOpenGLとDirect3Dは、両方ともsRGBガンマカーブをサポートしています。 OpenGLは、sRGBガンマでエンコードされたカラーコンポーネント(最初はEXT_texture_sRGB拡張で導入され、OpenGL 2.1ではコアに追加されています)とsRGBガンマでエンコードされたフレームバッファ(EXT_framebuffer_sRGB拡張で最初に導入され、OpenGL 3.0のコアに追加されました) Direct3DはsRGBガンマテクスチャをサポートし、DirectX 9以降のsRGBガンマサーフェスにレンダリングします。sRGBガンマテクスチャのミップマッピングと補間を修正すると、最新のGPUのテクスチャユニットで直接ハードウェアサポートが提供されます(たとえば、nVidia GeForce 8は8ビットテクスチャからリニアこれらの値を補間する前の値)、パフォーマンス上のペナルティはありません。