| sRGB | |
|---|---|
| IEC 61966-2-1 デフォルト RGB カラースペース - sRGB | |
| 略語 | sRGB |
| 状態 | 出版 |
| 年が始まった | 1996 |
| 初版 | 1999年10月18日[ 1 ] (1999年10月18日) |
| 組織 | IEC [ 1 ] |
| 委員会 | TC / SC : TC 100/TA 2 [ 1 ] |
| 基本基準 | IEC 61966 マルチメディアシステムおよび機器における色の測定と管理 |
| ドメイン | 色空間、色モデル |
| Webサイト | ウェブストア |
sRGB(標準RGB)は、モニター、プリンター、そしてワールドワイドウェブで使用される色空間です。 1996年にHPとMicrosoftによって最初に提案され[ 2 ] 、国際電気標準会議(IEC)の公式規格IEC 61966-2-1:1999となりました[ 1 ] 。これは現在のウェブの標準色空間であり、埋め込まれたカラープロファイルを持たない画像では通常、sRGB色空間として想定されます。
sRGB規格は、 HDTV用のITU-R BT.709規格と同じ原色と白色点を使用していますが[ 3 ]、当時のCRTディスプレイと互換性のある異なる伝達関数(ガンマ)を採用しており[ 4 ]、家庭やオフィスの一般的な視聴環境に近い視聴環境を想定しています。PCビデオカードとCRTディスプレイの動作を一致させたことが、sRGBの普及に大きく貢献しました。
1970年代までに、ほとんどのコンピュータは8ビットのデジタルデータをビデオモニターに送る信号へとほぼ線形に変換していました。しかし、ビデオモニターやテレビは入力信号に対して線形ではなく、おおよそ2から3の指数を持つべき乗則に従って輝度を生成しました。この指数は一般的に文字で表され、そのためこの機能は「ガンマ補正」と呼ばれます。この設計は、デジタル値を黒付近では密に、白付近(明るさの変化が目立ちにくい)では疎にするため、視覚的なアーティファクトを大幅に低減した画像を表示できるという利点があります。このガンマはCRTメーカーによって異なりましたが、1993年にHDTVシステムでの使用のためにITU BT.709規格として標準化されました。[ 5 ] BT.709規格は、ゼロ付近で線形区間を持つOETFを規定し、指数1/0.45 ≈ 2.22のシフトべき乗則に移行します… [ 6 ]
sRGBは数年後にヒューレット・パッカードとマイクロソフトによって策定されました。これは当時Windowsオペレーティングシステムで使用されていたほとんどのCRTコンピュータモニターのデコード機能を記述することを目的としていましたが、これはBT.709で想定されていたものとは異なっていました。 [ 7 ]この規格の最初の草案[ 2 ]は1996年に公開されました。まだ未完成の第4草案はオンラインで入手できます。[ 8 ] BT.709と同様に、sRGB OETFはゼロ付近で線形区間として定義され、そこからシフトしたべき乗則に移行します。[ 9 ] [ 10 ]この規格ではEOTFをベールグレア項を含む2.2純粋ガンマとして規定していますが、グレアはディスプレイの特性であり、デジタル信号に手動で追加すべきではありません。
1990 年代後半にコンピュータ グラフィックス ソフトウェアが線形光レベルの計算を開始し、一般的な 8 ビット画像標準との間で変換するために sRGB を使用する必要が生じたため、実際に sRGB 標準を使用することが重要になりました。

ここに示すような画像は、CRT モニターを調整して sRGB を正しく表示するためによく使用されるようになりました。
2003年に承認されたIEC 61966-2-1:1999の修正1では、 sYCCと呼ばれるYCbCrエンコードと、 bg-sRGBと呼ばれる8ビットを超える変換も定義されています。scRGB規格もsRGBをより多くのビットに拡張しようとしています。

sRGB画像ファイルには、各ピクセルのR′G′B′値が含まれています。0.0は「黒」、1.0は「白」に必要な原色の強度です。これらの浮動小数点値はファイルデータから算出されます。典型的な8ビット/チャンネル画像の場合、バイト数は255.0で割られます。
これらの値から輝度へのマッピングは非線形伝達関数であり、低輝度値における線形関数と、それ以外の範囲における変位べき乗則の組み合わせである。線形輝度RGBは、以下の式を用いて導出される(全チャンネルで同じ)。[ 11 ]
この関数はにかなり近い。しかし、0.04045付近の低い値では違いが認識できる。線形部分がなければ、8ビット深度では最も暗い約20レベルはすべて線形光の非常に小さな変化にマッピングされ、ディスプレイは四捨五入後には区別できない違いになる。[ 4 ] [ 12 ]線形セクションはまた、小さな信号を純粋な0.45乗関数よりも暗くすることで、EOTFの視認性グレア項を補正する。[ 13 ]
IEC規格で定義されている逆OETFはEOTFには使用されない。[ 11 ]
ファイル形式で必要な場合は、1.0より大きい値を使用できます(結果も1.0より大きくなります)。また、0.0未満の値は-f(-x )に変換できます。[ 11 ]
これらの関数は BT.709 のものと似ていますが、値が著しく異なります。[ 4 ]パラメータの丸めのため、線形部分と非線形部分の間の遷移部分に 10 −8程度の小さな不連続性があり、互いに正確に逆ではありません。これらの誤差は小さすぎて実用上は問題になりません。[ 14 ] 実際には多くのソフトウェアが、異なる近い値(下記参照)を使用したり、線形部分を無視したり、単純なガンマ 2.2 関数を使用したりしています。画像の変化はほとんど知覚できませんが、異なる変換を行った画像を重ね合わせると継ぎ目が目立ち、不一致な変換が前後に発生すると色の変化が蓄積されます。[ 15 ]多くのオペレーティングシステムやプログラムは、8 ビット sRGB 画像を直接ビデオメモリに送信し、これが正しいレベルを生成すると想定しています。[ 12 ]
(1,1)を通るシフトされたべき乗曲線は です。
(0,0)を通る直線はである。線形区間からべき乗則区間への移行は連続的(急激な段差がなく)かつ滑らか(急激な傾きの変化がない)でなければならない。[ 7 ] x = Xのときに連続的にするためには、
2つの線分が交わる部分で急激な傾きの変化を避けるため、導関数もXで等しくなければなりません。
XとAの2つの方程式を解くと、
sRGB規格の最初の草案では、 を選択し、における値が に近くなるように計算しました[ 2 ]。これにより、および が生成されます。これらの値は、図に示すように5桁に丸められていますが、一部の出版物では依然として誤って記載されています[ 16 ] 。
しかし、sRGB草案標準では に丸められ、[ 2 ]曲線に小さな不連続が生じました。
この規格の最初の公式版は、1999年にIECによって定義・発行されました。この版では、 の丸められた値は維持されましたが、曲線がほぼ連続になるように、ブレークポイントがに再定義されました。これらの値では、交点のすぐ下からすぐ上にかけて、傾きに不連続性が残っています。最終版規格では、草案に存在したいくつかの小さな丸め誤差も修正されました。[ 2 ]
| 赤 | 緑 | 青 | ホワイトポイント | |
|---|---|---|---|---|
| × | 0.6400 | 0.3000 | 0.1500 | 0.3127 |
| y | 0.3300 | 0.6000 | 0.0600 | 0.3290 |
| はい | 0.2126 | 0.7152 | 0.0722 | 1.0000 |
sRGB規格は、赤、緑、青の3原色( 3つのチャンネルのうち1つが非ゼロで、他の2つがゼロ)の色度を定義します。sRGBで表現できる色度の範囲は、これらの原色によって定義される色三角形であり、三角形内の色の範囲が、通常の3色型色覚を持つ人間の視認範囲に十分収まるように設定されています。他のRGB色空間と同様に、 R、G、Bの値が負でない場合には、この三角形の外側の色を表現することはできません。
原色はHDTV(Rec. 709 )に由来しており、これは旧来のカラーテレビシステム( Rec. 601 )の原色とは若干異なります。これらの値は、当時の民生用CRT蛍光体の色に近づけるために選択されました。[ 1 ]
sRGB規格では、線形値を2°標準色彩観測者によるCIE XYZ知覚色座標[ 17 ]に変換する行列を提供することで色を指定します。[ 2 ] [ 18 ]この行列はBT.709規格[ 11 ]で指定されているものと同じであり、これらの4桁の係数は正確であると考えられます。[ 1 ]
CIE XYZから(線形) RGBへの逆変換は、上記の行列を適切な数値精度で反転させることで得られます。1999年の規格では、小数点4桁(8ビットサンプルに十分な数値)の精度を持つ行列が提供されています。
1999年のIEC規格は2003年に改正され[ 11 ]、サンプル行列が7桁の小数点を持つように更新され、16ビットのサンプルに十分なものとなった。
これらの式では、X、Y、Zの値は、 D65 (「白」)のYが 1.0(X = 0.9505、Y = 1.0000、Z = 1.0890)になるように調整する必要があります。これは通常は当てはまりますが、一部の色空間では100などの値が使用される場合もあります(例えば、 CIELABで特定の白色点を使用する場合など)。

sRGB 仕様では、周囲の相関色温度 (CCT) が 5003 K の薄暗いエンコード (作成) 環境を想定しています。
| パラメータ | 価値 |
|---|---|
| 画面の輝度レベル | 80 cd/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% |
想定される周囲光CCTは、BT.709標準光源(D65)のCCTとは異なりますが、画面の白色点にはD65が採用されています。両者にD50を使用すると、ほとんどの印画紙の白色点が過度に青く見えるでしょう。[ 19 ] [ 20 ]輝度レベルなどのその他のパラメータは、一般的なCRTモニターの代表的なものです。
最適な結果を得るために、ICCは、それほど厳しくない一般的な視聴環境ではなく、エンコード視聴環境(つまり、薄暗い拡散照明)を使用することを推奨しています。[ 21 ]
sRGB 値が HDMI などを介してディスプレイに送信される場合、グレア オフセットを追加したりソフトウェアで補正したりすることはなく、ディスプレイと表示環境によって自然にこの小さなフレアが生成されます。
sRGBを使用するファイル形式のほとんどは、8ビット整数で保存されます。通常、8ビット整数は255.0で割り算され、さらに255を掛けて切り捨てることで8ビットに変換されます。ただし、一部のソフトウェアでは、256を掛けて切り捨てることで8ビットに変換されます。高品質なソフトウェアでは、色ムラを隠す ために、書き込み時にディザリングが使用されることがよくあります。
sRGB規格の2003年改訂版の附属書Gでは、 bg-sRGBと呼ばれる色値の代替エンコード方式が規定されています。これは、チャネルあたりのビット数が10以上の場合に推奨されます。この場合、0.0は黒点Kに、1.0は白点Wにマッピングされ、その他の値は線形に解釈されます。10ビットの場合、K = 384、W = 894が指定され、ビット 数Nが大きい場合は以下のようになります。
12 ビットのscRGB形式でも同様の動作が行われ、K = 1024、W = 2304になります。
1.0より大きい数値を許可すると高ダイナミックレンジ画像が許可され、負の数値では色域三角形の外側の色が許可されます。[ 11 ]

インターネット、コンピュータ、プリンターにおけるsRGBの標準化により、多くの低~中価格帯の消費者向けデジタルカメラやスキャナーは、sRGBをデフォルトの(または唯一利用可能な)作業用色空間として使用しています。 [ 22 ]画像の色空間が不明で、各チャンネルが8ビットでエンコードされている場合は、sRGBエンコードであると想定できます。プログラマーが「ガンマ」の意味を誤解しているため、ガンマ1.0を含むと主張する画像ファイルもsRGBであると想定する必要があります。
sRGBの色域は、ローエンドのインクジェットプリンターの色域をほぼ満たすか上回っているため、家庭での印刷にはsRGB画像で十分であると考えられることがよくあります。しかし、sRGB色域は、特に青緑色においてCMYK印刷で再現できるすべての色を網羅するには色域が狭すぎるため、ハイエンドの印刷出版のプロフェッショナルからは敬遠されることがあります。完全に色管理されたワークフロー(例えば、プリプレス出力)によるプロフェッショナル印刷を目的とした画像では、Adobe RGB(1998)などの別の色域が使用されることがあります。Adobe RGBは、より広い色域とFogra39のようなCMYK色域に対応しています。
3Dグラフィックスの2大プログラミングインターフェースであるOpenGLとDirect3Dは、どちらもsRGBガンマ曲線をサポートしています。OpenGLは、sRGBガンマエンコードされた色成分を持つテクスチャ(最初にEXT_texture_sRGB拡張で導入され、 [ 23 ] OpenGL 2.1でコアに追加されました)と、sRGBガンマエンコードされたフレームバッファへのレンダリング(最初にEXT_framebuffer_sRGB拡張で導入され、[ 24 ] OpenGL 3.0でコアに追加されました)をサポートしています。sRGBガンマテクスチャの正しいミップマッピングと補間は、ほとんどの最新GPUのテクスチャリングユニットで直接ハードウェアサポートされており(たとえば、nVidia GeForce 8は、8ビットテクスチャから線形値への変換を行ってからそれらの値を補間します)、パフォーマンスの低下はありません。[ 25 ]
ルックアップテーブルは、sRGBを他の色空間に効率的に変換するために使用できます。国際色彩コンソーシアム(ICC)は、この目的のためにカラープロファイルを公開しており、広く利用されています。[ 21 ] [ 18 ]これにはいくつかのバリエーションがあり、[ 26 ] ICCmax、バージョン4、バージョン2など が含まれます。
一般的にはバージョン4が推奨されていますが、バージョン2は現在でも広く使用されており、ブラウザを含む他のソフトウェアとの互換性が最も高いです。[ 27 ]しかし、これらのICCプロファイルとIEC sRGB規格との間には矛盾が指摘されています。[ 28 ]特に、ICCプロファイル仕様のバージョン2は、IEC sRGB規格で指定されている区分パラメトリック曲線エンコーディング(「パラ」)を実装しておらず、[ 29 ] 1次元ルックアップテーブルを使用してsRGB伝達関数を実装する必要があります。[ 26 ]一部の実装では、伝達関数を線形部分のない2.2ガンマに近似しており、「簡易sRGB」と呼ばれています。[ 30 ]
エンコーディングの実効指数は0.5である。
{{citation}}: CS1 maint: work parameter with ISBN (link)