sRGB

sRGB
IEC 61966-2-1 デフォルト RGB カラースペース - sRGB
CIE 1931色度図内にプロットされたsRGB色域。輝度は次のように設定されています。はい{\displaystyle Y}R+G+B1{\displaystyle R+G+B=1}
略語sRGB
状態出版
年が始まった1996
初版1999年10月18日[ 1 ] (1999年10月18日
組織IEC [ 1 ]
委員会TC / SC : TC 100/TA 2 [ 1 ]
基本基準IEC 61966 マルチメディアシステムおよび機器における色の測定と管理
ドメイン色空間色モデル
Webサイトウェブストア.iec .ch /出版物/6169

sRGB(標準RGB)は、モニター、プリンター、そしてワールドワイドウェブで使用される色空間です。 1996年にHPMicrosoftによって最初に提案され[ 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 ]γ{\displaystyle \gamma}

CIE 1931 XYZ色空間におけるsRGB色域
より知覚的に均一なCIELChuv色空間におけるsRGB色域

sRGBは数年後にヒューレット・パッカードとマイクロソフトによって策定されました。これは当時Windowsオペレーティングシステムで使用されていたほとんどのCRTコンピュータモニターのデコード機能を記述することを目的としていましたが、これはBT.709で想定されていたものとは異なっていました。 [ 7 ]この規格の最初の草案[ 2 ]は1996年に公開されました。まだ未完成の第4草案はオンラインで入手できます。[ 8 ] BT.709と同様に、sRGB OETFはゼロ付近で線形区間として定義され、そこからシフトしたべき乗則に移行します。[ 9 ] [ 10 ]この規格ではEOTFをベールグレア項を含む2.2純粋ガンマとして規定していますが、グレアはディスプレイの特性であり、デジタル信号に手動で追加すべきではありません。

1990 年代後半にコンピュータ グラフィックス ソフトウェアが線形光レベルの計算を開始し、一般的な 8 ビット画像標準との間で変換するために sRGB を使用する必要が生じたため、実際に sRGB 標準を使用することが重要になりました。

sRGBディスプレイでは、各実線バーは周囲の縞模様のディザと同じ明るさで表示されます。(注:元の100%サイズで表示する必要があります)

ここに示すような画像は、CRT モニターを調整して sRGB を正しく表示するためによく使用されるようになりました。

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

意味

伝達関数(「ガンマ」)

sRGBの強度(赤)と、この関数の対数対数空間における傾き(青)のプロット。これは瞬間ガンマです。圧縮値が0.04045、または線形強度が0.00313未満の場合は、曲線は線形となり、ガンマは1になります。赤い曲線の後ろには、ガンマ=2.2のべき乗則を正確に示す黒い破線があります。

sRGB画像ファイルには、各ピクセルのR′G′B′値が含まれています。0.0は「黒」、1.0は「白」に必要な原色の強度です。これらの浮動小数点値はファイルデータから算出されます。典型的な8ビット/チャンネル画像の場合、バイト数は255.0で割られます。

これらの値から輝度へのマッピングは非線形伝達関数であり、低輝度値における線形関数と、それ以外の範囲における変位べき乗則の組み合わせである。線形輝度RGBは、以下の式を用いて導出される(全チャンネルで同じ)。[ 11 ]

R{R/12.92R0.04045R+0.0551.0552.4R>0.04045{\displaystyle R={\begin{cases}R'/12.92,&R'\leq 0.04045\\[5mu]\left({\frac {\displaystyle R'+0.055}{\displaystyle 1.055}}\right)^{2.4},&R'>0.04045\end{cases}}}

この関数はにかなり近い。しかし、0.04045付近の低い値では違いが認識できる。線形部分がなければ、8ビット深度では最も暗い約20レベルはすべて線形光の非常に小さな変化にマッピングされ、ディスプレイは四捨五入後には区別できない違いになる。[ 4 ] [ 12 ]線形セクションはまた、小さな信号を純粋な0.45乗関数よりも暗くすることで、EOTFの視認性グレア項を補正する。[ 13 ]R2.2{\displaystyle R'^{2.2}}

IEC規格で定義されている逆OETFはEOTFには使用されない。[ 11 ]

R{12.92RR0.00313081.055R1/2.40.055R>0.0031308{\displaystyle R'={\begin{cases}12.92R,&R\leq 0.0031308\\[5mu](1.055)R^{1/2.4}-0.055,&R>0.0031308\end{cases}}}

ファイル形式で必要な場合は、1.0より大きい値を使用できます(結果も1.0より大きくなります)。また、0.0未満の値は-f(-x 変換できます。[ 11 ]

これらの関数は BT.709 のものと似ていますが、値が著しく異なります。[ 4 ]パラメータの丸めのため、線形部分と非線形部分の間の遷移部分に 10 −8程度の小さな不連続性があり、互いに正確に逆ではありません。これらの誤差は小さすぎて実用上は問題になりません。[ 14 ] 実際には多くのソフトウェアが、異なる近い値(下記参照)を使用したり、線形部分を無視したり、単純なガンマ 2.2 関数を使用したりしています。画像の変化はほとんど知覚できませんが、異なる変換を行った画像を重ね合わせると継ぎ目が目立ち、不一致な変換が前後に発生すると色の変化が蓄積されます。[ 15 ]多くのオペレーティングシステムやプログラムは、8 ビット sRGB 画像を直接ビデオメモリに送信し、これが正しいレベルを生成すると想定しています。[ 12 ]

伝達関数の導出

(1,1)を通るシフトされたべき乗曲線は です。 y×+C1+Cγ{\displaystyle y=\left({\frac {x+C}{1+C}}\right)^{\gamma }}

(0,0)を通る直線はである。線形区間からべき乗則区間への移行は連続的(急激な段差がなく)かつ滑らか(急激な傾きの変化がない)でなければならない。[ 7 ] x = Xのときに連続的にするためには、 y×/{\displaystyle y=x/A}

XX+C1+Cγ{\displaystyle {\frac {X}{A}}=\left({\frac {X+C}{1+C}}\right)^{\gamma }}

2つの線分が交わる部分で急激な傾きの変化を避けるため、導関数もXで等しくなければなりません。

1γX+C1+Cγ111+C{\displaystyle {\frac {1}{A}}=\gamma \left({\frac {X+C}{1+C}}\right)^{\gamma -1}\left({\frac {1}{1+C}}\right)}

XAの2つの方程式を解くと、

XCγ11+Cγγ1γ1Cγ1γγ{\displaystyle X={\frac {C}{\gamma -1}}\;\;\;\;\;A={\frac {(1+C)^{\gamma }(\gamma -1)^{\gamma -1}}{(C^{\gamma -1})(\gamma ^{\gamma })}}}

sRGB規格の最初の草案では、 を選択し、における値が に近くなるように計算しました[ 2 ]。これにより、および が生成されます。これらの値は、図に示すように5桁に丸められていますが、一部の出版物では依然として誤って記載されています[ 16 ] 。γ2.4{\displaystyle \gamma =2.4}C=0.055{\displaystyle C=0.055}x=0.4{\displaystyle x=0.4}x2.2{\displaystyle x^{2.2}}X0.03928{\displaystyle X\approx 0.03928}A12.92321{\displaystyle A\approx 12.92321}

しかし、sRGB草案標準では に丸められ、[ 2 ]曲線に小さな不連続が生じました。 A{\displaystyle A}12.92{\displaystyle 12.92}

この規格の最初の公式版は、1999年にIECによって定義・発行されました。この版では、 の丸められた値は維持されましたが、曲線がほぼ連続になるように、ブレークポイントがに再定義されました。これらの値では、交点のすぐ下からすぐ上にかけて、傾きに不連続性が残っています。最終版規格では、草案に存在したいくつかの小さな丸め誤差も修正されました。[ 2 ]A=12.92{\displaystyle A=12.92}X{\displaystyle X}0.04045{\displaystyle 0.04045}1/12.92{\displaystyle 1/12.92}1/12.70{\displaystyle 1/12.70}

予備選挙

sRGB原色のCIE値
ホワイトポイント
×0.6400 0.3000 0.1500 0.3127
y0.3300 0.6000 0.0600 0.3290
はい0.2126 0.7152 0.0722 1.0000

sRGB規格は、赤、緑、青の3原色( 3つのチャンネルのうち1つが非ゼロで、他の2つがゼロ)の色度定義します。sRGBで表現できる色度の範囲は、これらの原色によって定義される色三角形であり、三角形内の色の範囲が、通常の3色型色覚を持つ人間の視認範囲に十分収まるように設定されています。他のRGB色空間と同様に、 RGBの値が負でない場合には、この三角形の外側の色を表現することはできません。

原色はHDTV(Rec. 709 )に由来しており、これは旧来のカラーテレビシステム( Rec. 601 )の原色とは若干異なります。これらの値は、当時の民生用CRT蛍光体の色に近づけるために選択されました。[ 1 ]

sRGB規格では、線形値を2°標準色彩観測者によるCIE XYZ知覚色座標[ 17 ]に変換する行列を提供することで色を指定します。[ 2 ] [ 18 ]この行列はBT.709規格[ 11 ]で指定されているものと同じであり、これらの4桁の係数は正確であると考えられます。[ 1 ]

[XYZ]=[0.41240.35760.18050.21260.71520.07220.01930.11920.9505][RGB]{\displaystyle {\begin{bmatrix}X\\Y\\Z\end{bmatrix}}={\begin{bmatrix}0.4124&0.3576&0.1805\\0.2126&0.7152&0.0722\\0.0193&0.1192&0.9505\end{bmatrix}}{\begin{bmatrix}R\\G\\B\end{bmatrix}}}

CIE XYZから(線形) RGBへの逆変換は、上記の行列を適切な数値精度で反転させることで得られます。1999年の規格では、小数点4桁(8ビットサンプルに十分な数値)の精度を持つ行列が提供されています。

[RGB]=[+3.24061.53720.49860.9689+1.8758+0.0415+0.05570.2040+1.0570][XYZ]{\displaystyle {\begin{bmatrix}R\\G\\B\end{bmatrix}}={\begin{bmatrix}+3.2406&-1.5372&-0.4986\\-0.9689&+1.8758&+0.0415\\+0.0557&-0.2040&+1.0570\end{bmatrix}}{\begin{bmatrix}X\\Y\\Z\end{bmatrix}}}

1999年のIEC規格は2003年に改正され[ 11 ]、サンプル行列が7桁の小数点を持つように更新され、16ビットのサンプルに十分なものとなった。

[RGB]=[+3.24062551.53720800.49862860.9689307+1.8757561+0.0415175+0.05571010.2040211+1.0569959][XYZ]{\displaystyle {\begin{bmatrix}R\\G\\B\end{bmatrix}}={\begin{bmatrix}+3.2406255&-1.5372080&-0.4986286\\-0.9689307&+1.8757561&+0.0415175\\+0.0557101&-0.2040211&+1.0569959\end{bmatrix}}{\begin{bmatrix}X\\Y\\Z\end{bmatrix}}}

これらの式では、XYZの値は、 D65 (「白」)のYが 1.0(X = 0.9505、Y = 1.0000、Z = 1.0890)になるように調整する必要があります。これは通常は当てはまりますが、一部の色空間では100などの値が使用される場合もあります(例えば、 CIELABで特定の白色点を使用する場合など)。

視聴環境

CIE 1931 xy色度図は、sRGB色空間(三角形)の色域を示しています。外側の曲線境界はスペクトル(または単色)軌跡で、波長はナノメートル単位で示されています(青色で表示)。この画像はsRGBで描画されているため、三角形の外側の色は正確に色付けできず、補間されています。中央にはD65白色点が示され、プランク軌跡はケルビン単位で色温度が表示されています。D65は大気を透過した日光に基づいているため、理想的な6504ケルビンの黒体ではありません。

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 = 384W = 894が指定され、ビット 数Nが大きい場合は以下のようになります。

K=3×2N3W=K+255×2N9{\displaystyle K=3\times 2^{N-3}\quad \quad W=K+255\times 2^{N-9}}

12 ビットのscRGB形式でも同様の動作が行われ、K = 1024W = 2304になります。

1.0より大きい数値を許可すると高ダイナミックレンジ画像が許可され、負の数値では色域三角形の外側の色が許可されます。[ 11 ]

使用法

CIE 1931 xy色度図上のRGBとCMYKの色域の比較

インターネット、コンピュータ、プリンターにおけるsRGBの標準化により、多くの低~中価格帯の消費者向けデジタルカメラスキャナーは、sRGBをデフォルトの(または唯一利用可能な)作業用色空間として使用しています。 [ 22 ]画像の色空間が不明で、各チャンネルが8ビットでエンコードされている場合は、sRGBエンコードであると想定できます。プログラマーが「ガンマ」の意味を誤解しているため、ガンマ1.0を含むと主張する画像ファイルもsRGBであると想定する必要があります。

sRGBの色域は、ローエンドのインクジェットプリンターの色域をほぼ満たすか上回っているため、家庭での印刷にはsRGB画像で十分であると考えられることがよくあります。しかし、sRGB色域は、特に青緑色においてCMYK印刷で再現できるすべての色を網羅するには色域が狭すぎるため、ハイエンドの印刷出版のプロフェッショナルからは敬遠されることがあります。完全に色管理されたワークフロー(例えば、プリプレス出力)によるプロフェッショナル印刷を目的とした画像では、Adobe RGB(1998)などの別の色域が使用されることがあります。Adobe RGBは、より広い色域とFogra39のようなCMYK色域に対応しています。

プログラミングインターフェースのサポート

3Dグラフィックスの2大プログラミングインターフェースであるOpenGLDirect3Dは、どちらも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 ]

ICCプロファイル

ルックアップテーブルは、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 ]

参考文献

  1. ^ a b c d e f「IEC 61966-2-1:1999」 . IECウェブストア. 国際電気標準会議. 2017年3月3日閲覧sRGBの最初の公式仕様。
  2. ^ a b c d e f Michael Stokes; Matthew Anderson; Srinivasan Chandrasekar; Ricardo Motta (1996年11月5日). 「インターネットの標準デフォルトカラースペース - sRGB、バージョン1.10」 . 2023年7月3日時点のオリジナルよりアーカイブ
  3. ^ Charles A. Poynton (2003).デジタルビデオとHDTV:アルゴリズムとインターフェース. Morgan Kaufmann. ISBN 1-55860-792-7
  4. ^ a b c Image Engineering GmbH (2012): 「カラースペース - REC.709 vs. sRGB」 www.image-engineering.de のオンライン文書。2つの伝達関数を比較したグラフが含まれています。2024年12月17日にアクセス。
  5. ^ 「BT.709:制作および国際番組交換のためのHDTV規格のパラメータ値」 www.itu.net nd 2021年4月19日閲覧
  6. ^ Poynton, Charles (2010-06-16). 「画像レンダリング、画像状態、そしてBT.709」(PDF) . 2025年10月17日閲覧。BT.709エンコーディングの実効指数は0.5である。
  7. ^ a b sRGB.com sRGB の設計と使用に関するメモ(アーカイブ) HPによる。
  8. ^ IEC 61966-2-1 2CDの第4次ワーキングドラフト(4WD)(アーカイブ)。まだ完全な規格ではありません。
  9. ^ Roberts, A. BBC RD 1991/6 ディスプレイ伝達特性の測定および計算方法(PDF) (レポート). BBC. p. 1.
  10. ^ NumFocus Colour Science (2015): 「用語の重要性とsRGBの不確実性」。www.colour-science.org のオンライン文書、2015年12月5日。2024年12月17日にアクセス(アーカイブ)。
  11. ^ a b c d e f「IEC 61966-2-1:1999 マルチメディアシステム及び機器 – 色の測定及び管理 – パート2-1:色の管理 – デフォルトのRGB色空間 – sRGB:修正1」国際電気標準会議. 2003年バージョン IEC 61966-2-1:1999 を置き換え、YCbCrカラー スペースの sYCC エンコーディング、拡張色域RGB エンコーディング bg-sRGB、およびCIELAB変換を導入します。
  12. ^ a b Daniele Siragusano (2020): 「Colour Online: sRGB… We Need To Talk」。sRGBと実際のモニターの伝達関数の不一致について議論したYouTubeトーク(2020年7月17日、57分)。@FilmLightチャンネルに投稿。2024年12月17日にアクセス。
  13. ^ 「測色法」色彩画像科学入門、ケンブリッジ大学出版局、p. 129、2005年2月24日、ISBN 978-0-521-84388-1、 2025年10月17日閲覧{{citation}}: CS1 maint: work parameter with ISBN (link)
  14. ^ Jason Summers (2012): 「 sRGBの公式を詳しく見る」 entropymine.comのオンライン文書。2014年12月17日にアクセス(アーカイブ
  15. ^ Jon Y. Hardeberg (2001). 『カラー画像の取得と再現:色彩測定と多スペクトルアプローチ』Universal-Publishers.com. ISBN 1-58112-135-0
  16. ^ Phil Green & Lindsay W. MacDonald (2002). 『カラーエンジニアリング:デバイスに依存しないカラーの実現』 John Wiley and Sons. ISBN 0-471-48688-4
  17. ^ RGBとXYZの変換行列(ブルース・ジャスティン・リンドブルーム著)
  18. ^ a b国際色彩コンソーシアム (2015): 「ICCプロファイルにおけるsRGB色空間(IEC 61966-2-1で規定)の解釈方法」。www.color.orgのオンライン文書。2024年12月17日アクセス(アーカイブ
  19. ^ロドニー、アンドリュー (2005).写真家のためのカラーマネジメント. フォーカルプレス. p. 121. ISBN 978-0-240-80649-5
  20. ^ 「ライトブースがD50なのにモニターをD65にキャリブレーションする理由」 X -Rite . 2022年9月11日閲覧
  21. ^ a b国際色彩コンソーシアム(日付なし):「sRGB」概要ページ(color.org)。2014年12月17日にアクセス(アーカイブ失敗)。
  22. ^たとえキャリブレーションされていなくても、他の一般的な色空間よりもsRGBに近い色空間である可能性が高い。
  23. ^ "EXT_texture_sRGB" . 2007年1月24日. 2020年5月12日閲覧
  24. ^ "EXT_framebuffer_sRGB" . 2010年9月17日. 2020年5月12日閲覧
  25. ^ 「GPU Gems 3: 第24章 線形であることの重要性、セクション24.4.1」。NVIDIA Corporation 。 2017年3月3日閲覧
  26. ^ a b国際色彩コンソーシアム(日付なし):「sRGBプロファイル」。color.orgの概要ページ。2014年12月17日にアクセス(アーカイブ失敗)。
  27. ^ 「あなたのシステムはICCバージョン4に対応していますか?」 www.color.org . 2024年12月21日閲覧
  28. ^真のsRGBプロファイルは立ち上がる?エル・ストーン著。sRGB ICCプロファイル間の不一致を分析
  29. ^ 「Androidのロック画面のバグとICCプロファイル」color.org . 2024年12月25日閲覧
  30. ^ Developers, Colour (2019年10月25日). 「sRGB EOTF: 純粋なガンマ2.2関数か区分関数か?」 . Colour Science . 2024年12月25日閲覧