本ページにはアフィリエイト広告(プロモーション)が含まれる場合があります。
色空間(sRGB / Adobe RGB / ProPhoto RGB)
- 色の基礎
- Colour Spaces
- 別名: sRGB
- 別名: Adobe RGB
- 別名: ProPhoto RGB
- 別名: カラースペース
- 別名: 色域
色空間は「原色3つと白色点の色度」+「伝達関数(ガンマ)」で定義される。この定義自体は規格の一次資料に数値まで書かれており、このページの数値はすべてそこから取っている。sRGB の原色はテレビ規格 ITU-R BT.709 から借りたものだが、伝達関数は BT.709 とは別の式である。Adobe RGB (1998) は線形区間を持たない単純なべき乗、ProPhoto RGB(規格名 ROMM RGB)は実在しないデバイスの色として定義される。そして Web は「プロファイルの付いていない画像・色は sRGB として扱う」と規定しているため、「Adobe RGB で書き出せばきれい」は書き出し先が Web の場合には成り立たない。曖昧さが残るのは「広色域だと何がどれだけ損なわれるか」の部分で、これは単一の研究の測定値しか見つかっていない。
図で見る
この操作が画像に何をするか
色空間を選ぶという操作は、同じ数値(たとえば R=255, G=0, B=0)がどの色を意味するかの取り決めを選ぶことである。取り決めは「原色3つと白色点がCIE色度図のどこにあるか」と「符号値と光量をどう対応させるか(伝達関数)」の二つからなる。原色が外側にあるほど表せる色の範囲は広くなるが、同じビット数で表す以上は色と色のあいだの間隔が粗くなる。またプロファイルが画像に埋め込まれていなければ、受け取る側はその取り決めを知りようがない。Web の仕様は「プロファイルの無い画像は sRGB として扱わなければならない」と定めているので、Adobe RGB のデータからプロファイルが落ちると、ブラウザはその数値を sRGB の数値として読み、色域の広い側の色ほど本来より薄く表示される。なお「広色域だと8ビットでは粗くなる」という定量的な裏づけは、本調査の範囲では2002年の学会論文1件しか見つかっておらず、原色や伝達関数の定義ほど固い根拠はない。
効く場面
- 書き出し先が Web や SNS のとき(sRGB に変換し、プロファイルを埋め込む)
- 印刷所に入稿するとき(先方が指定する作業色空間・プロファイルに合わせる)
- 編集の途中で大きく色を動かす予定があり、途中の色を丸めたくないとき(広い作業色空間+高ビット深度)
- 同じ画像を複数の出力先に出すとき、作業色空間と出力色空間を分けて管理したいとき
つまずきやすい点
- Adobe RGB で書き出した JPEG をプロファイルなしで Web に上げ、色が薄いと悩む
- 8ビットのまま ProPhoto RGB で作業し、階調の段差(トーンジャンプ)を招く
- 「色域が広い=きれい」と考えて、出力先の色域を超えた色を作り込んでしまう
- 「P3」と一口に言い、劇場用(DCI 白色点)とディスプレイ向け(D65)を取り違える
どこまで裏が取れているか
この項目についてよく言われることを、出典に当たって確かめた結果です。出典が見つからなかったものは、見つからなかったと書いています。
- 原典で確認できる sRGB の原色と白色点はテレビ規格 ITU-R BT.709 のものと同一だが、伝達関数(ガンマ)は BT.709 とは別物である。 BT.709-6 は ITU が無償公開している勧告本体(一次資料)で、原色 R(0.640, 0.330) / G(0.300, 0.600) / B(0.150, 0.060)、白色点 D65 (0.3127, 0.3290) を規定している。ICC の解説資料(https://www.color.org/chardata/rgb/sRGB.pdf )は sRGB について同じ座標を挙げたうえで「これらは ITU-R BT.709 で定義されたものである」と明記している。一方、伝達関数は BT.709 が V=1.099·L^0.45−0.099(線形部の傾き 4.5、切替点 0.018)、sRGB が C'=1.055·C^(1/2.4)−0.055(線形部の傾き 12.92、切替点 0.0031308)で、指数・傾き・切替点・オフセットのいずれも異なる。sRGB の定義規格 IEC 61966-2-1 本体は有償のため未確認で、sRGB 側の式は ICC の2つの資料が一致することで確認した。 出典: Recommendation ITU-R BT.709-6 (06/2015) p.3, 項目 1.2〜1.4
- 原典で確認できる Adobe RGB (1998) の伝達関数は指数 2.19921875 の単純なべき乗であり、sRGB と違って暗部の線形区間を持たない。 Adobe 自身が発行した仕様書で、この色空間については一次資料。「simple power-law function using a gamma value of 2.19921875」「NOTE The transfer function does not include a linear segment.」がいずれも規定文(shall)として書かれている。2.19921875 という半端な値は仕様書自身が「2 51/256、16進で 02.33」と説明しており、ICC プロファイルの固定小数点表現に由来する。/なお同じ仕様書は付録で、Adobe 自社の変換エンジン ACE が実装上 1/32 の傾き制限を掛けていること、それは「実装の都合であって Adobe RGB (1998) 色空間の属性ではない」ことも述べている。つまり仕様に線形区間が無くても、実装は暗部で別の扱いをしうる。 出典: Adobe RGB (1998) Color Image Encoding, Version 2005-05, §4.3.1.1〜4.3.1.2 (p.10)
- 原典で確認できる ProPhoto RGB(規格名 ROMM RGB)は実在するデバイスの原色ではなく、「仮想的な加法混色デバイス」の色値として定義されている。 この色空間の定義文書そのもの(原典)が「以下の特性をもつ仮想的な加法混色デバイス(a hypothetical additive color device)に対応する色値によって定義される」と述べている。/出典URLは Kodak 自身が公開していた PDF の Internet Archive スナップショット。kodak.com の元URL(http://www.kodak.com/global/plugins/acrobat/en/professional/products/software/colorFlow/romm_rgb.pdf )は現在 404 で、Adobe や ICC と違い一次配布元が消滅しているため。数値の裏づけとしては、ICC の3成分色符号化レジストリが公開している ROMM RGB 仕様書(https://registry.color.org/rgb-registry/files/ROMMRGB.pdf )が同じ原色 R(0.7347, 0.2653) / G(0.1596, 0.8404) / B(0.0366, 0.0001) と白色点 D50 (0.3457, 0.3585) を挙げており、そちらが現行の公式資料である。現行の規格定義は ISO 22028-2:2013(有償・未確認)。 出典: Eastman Kodak「Reference Output Medium Metric RGB Color Space (ROMM RGB) White Paper」Version 2.1 (1999) §II
- 二次資料でしか確認できていない ProPhoto RGB の原色は、人が見える色の範囲の外側にある「虚の原色」だと説明される。 「imaginary primaries(虚の原色)」という記述は、この色空間の定義文書(Kodak の白書)にも ICC のレジストリ仕様書にも書かれていない。根拠は同じ Kodak の研究者による査読付き会議論文の一文(「ROMM RGB の色符号化は、より広い色域を実現するために色域を拡張した虚の原色の組を用いる」)だけである。定義文書に無い以上、権威ある著者による記述であっても二次資料どまりとして扱う。/原色の座標そのもの(B の y = 0.0001 など)は規格資料で確認できるので、それが可視域の外かどうかは、スペクトル軌跡の座標表を一次資料で入手できれば自分で判定できる。本調査ではその座標表を入手できなかったため判定していない。 出典: Braun & Spaulding「Method for Evaluating the Color Gamut and Quantization Characteristics of Output-Referred Extended-Gamut Color Encodings」IS&T CIC 10 (2002)
- 実証はあるが条件が限定的 色域を広げると、同じビット深度なら量子化誤差が大きくなる。8ビットでの最大量子化誤差は、sRGB 色域内に制約した条件で sRGB が ΔE*94 = 0.92、ROMM RGB が 2.18 と報告されている。 単一の研究(Kodak 所属の著者2名、IS&T Color Imaging Conference 2002)の測定結果であって、規格や複数研究による裏づけではないため limited。条件は「sRGB 色域内に制約した場合」、評価指標は CIELAB ΔE*94(kL=kC=kH=1)。同論文は結論部で「色符号化の色域体積と量子化効率にはトレードオフがある。ただしビット深度が8ビットを超えると量子化誤差は急速に許容水準を下回る」とも述べている。「だから ProPhoto は16ビットで使え」という実務上の助言そのものを、この論文が述べているわけではない。 出典: Braun & Spaulding「Method for Evaluating the Color Gamut and Quantization Characteristics of Output-Referred Extended-Gamut Color Encodings」IS&T CIC 10 (2002), Table 5
- 原典で確認できる Web は、色プロファイルの付いていない色指定・画像を sRGB として扱わなければならない、と規定されている。 W3C 仕様が「HTML で指定された色とタグの付いていない画像は、別途指定がない限り sRGB 色空間にあるものとして扱わなければならない(must)」と規定文で述べている。直前の §3.4 は逆に、プロファイル等が有効なタグ付き画像は指定された色空間として扱わなければならない、とも規定しており、「タグがあればその色空間、無ければ sRGB」という二分法になっている。ただしこれはブラウザがどう解釈すべきかを定めたものであり、SNS やアプリが実際にどう処理しているかは別問題で、本調査では確認していない。 出典: W3C CSS Color Module Level 4 §3.5「Color Spaces of Untagged Colors」
他の項目の主張とあわせて確かめたい場合は根拠の強さで見るもご覧ください。
関連する現像の項目
- ホワイトバランスと色温度 — 「色温度」はもともと黒体(プランク放射体)の温度を指す測色量で、CIE の定義では光源の色度が黒体と一致する場合にしか成立しない。蛍光灯・LED・昼光はいずれも黒体軌跡に乗らないため、実際に使われているのは近似量である相関色温度(CCT)のほうである。ここまでは CIE の規格定義で確認できる。一方、現像ソフトのスライダーが実際に何をしているかは、ソフトごとに公開の度合いが違う。RawTherapee と darktable は公式文書とソースコードで挙動を確定でき、値を上げると画像が暖色に転ぶこと、WB の実体が RGB チャンネルごとの乗算係数であることが読み取れる。ただしそれが「どの現像ソフトでもそうである」という一般則までは裏づけられていないため、このページの実装まわりの記述はいずれも「この2つのソフトでは」という限定つきである。
- ビット深度と階調 — 「14bit だから階調が滑らか」という説明は非常によく見かけますが、実測にもとづく検証はこれを支持していません。理由はノイズで、センサーのノイズが量子化のステップより大きいと、段差はノイズにかき消されて見えなくなります。ビット深度は単独では評価できず、S/N 比とセットでしか意味を持ちません。
- トーンカーブとガンマ — ガンマとは、光の強さと符号値のあいだの非線形な対応づけである。sRGB の伝達関数は「ガンマ 2.2」と言われるが、実際には暗部に線形区間を持つ区分関数で、式に現れる指数は 1/2.4 である。この非線形性のため、符号値の 50% は光量の 50% ではない。さらにトーンカーブを RGB の各チャンネルに独立に掛けると RGB の比率が変わるため、明るさだけでなく色相まで動く。このページの内容は規格と測定に支えられているが、色相がどれだけずれるかの定量的な一般化までは出典が無い。「S字カーブを掛けるとコントラストが上がる」という広く言われる説明そのものも、実測ではなく曲線の傾きから導かれる幾何的な帰結として扱っている。
- 現像の順番 — 現像ソフトの処理は、利用者が操作した順ではなく、ソフトが決めた固定の順序(パイプライン)で実行される。そしてこれらの処理は数学的に可換ではないので、順序を入れ替えれば結果は変わる。一方で、雑誌や解説記事でよく見る「正しい現像手順」については、実験的な根拠を示した出典を見つけられなかった。