デザイン

色空間について知っておくべきXYZ・RGB・ICC・xyY・TRCの概要まとめ


画像編集ソフトなどでは色を「R:255、G:0、B:0」のようなRGB値で指定できます。しかし、同じRGB値でもsRGBやProPhotoRGBなど使っている色空間が違えば実際に表される色は変わります。デジタル写真家のエル・ストーン氏は自らが運営するサイトで画像処理や色管理を理解する上で必要になるXYZ・RGB・ICC・xyY・TRCについて解説しています。

Completely Painless Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs
https://ninedegreesbelow.com/photography/xyz-rgb.html


◆1:XYZ色空間:人間が見える色を数値で扱うための土台
ストーン氏はまず、「光」と「色」を分けて考える必要があると説明しています。「光」は太陽や電球などの光源から出る物理的なものですが、「色」は光が目に入り網膜や脳で処理されて生じる知覚です。脳は光の波長の違いを色の違いとして、光の強さの違いを明るさの違いとして解釈します。1920年代後半、イギリスの色覚・光学研究者であるウィリアム・デイヴィッド・ライト氏とジョン・ギルド氏は、人間がどのような色を見分けられるのかを調べる色合わせ実験を行い、この実験結果をもとに1931年に「CIE 1931 XYZ色空間(XYZ色空間)」が作られました。

XYZ色空間をイメージするには、1つの色をX・Y・Zという3つの数値で示す3次元の座標空間を考えると分かりやすくなります。RGB色空間が赤・緑・青の量で色を表すのに対し、XYZ色空間のX・Y・Zは実在する原色そのものではなく、人間の目がさまざまな波長の光にどう反応するかを数値化するための成分です。このうちYは相対輝度、つまり明るさに対応しますが、Yだけが明るさ、XとZだけが色味を表すと単純に分けられるわけではありません。


XYZ色空間には人間に見える色だけでなく人間には見えない数値上の色も含まれており、ストーン氏は前者を「実在色(real colors)」、後者を「仮想色(imaginary colors)」と呼んでいます。XYZ色空間は画像編集で直接指定することは少ないものの、色管理に対応した画像編集アプリでは、異なる色空間の間で色を変換する際の基準として使われるとのことです。

以下はXYZ色空間の中の実在色を3次元的に示したものです。XYZ色空間では1つの色をX・Y・Zという3つの数値で表すため、RGB色空間やxy色度図よりも立体的な座標空間として考えることができます。


by Michael Horvath (SharkD), Christoph Lipka

◆2:RGB色空間:XYZ色空間の中に赤・緑・青を置く仕組み
デジタル画像でよく使われるRGB色空間は、XYZ色空間に含まれる色のうち扱いやすい一部を切り出したものです。通常の画像編集で使われるRGB色空間では白色点と赤・緑・青の原色を定め、RGB値がXYZ座標上のどの色に対応するかを決めます。黒は通常、RGB値がすべて0のときの基準として扱われます。

白のXYZ座標は「白色点」、黒のXYZ座標は「黒点」と呼ばれ、赤・緑・青のXYZ座標はそのRGB色空間で使う原色を表します。この3つの原色が決まると、赤と青を混ぜた「マゼンタ」、赤と緑を混ぜた「イエロー」、青と緑を混ぜた「シアン」などそのRGB色空間で表せる色の範囲も決まります。

ストーン氏はRGB値が色空間に対して相対的であることを示す例として、「LargeRGB」と「SmallRGB」という2つのRGB色空間を挙げています。LargeRGBでもSmallRGBでも最も赤い赤のRGB値は「RGB=(1,0,0)」ですが、赤の原色のXYZ座標が違うため実際に表される赤は同じではありません。RGB値だけではその色がどんな色なのかは決まらず、どのRGB色空間の値なのかが分かって初めて、RGB値がXYZ上のどの色に対応するのかが分かるというわけです。

以下のグラフでは、広く使われる標準的なRGB色空間である「sRGB」と、sRGBより広い色域を持つ「WideGamutRGB」の赤・緑・青の原色がxy色度図上に示されており、黒い点と線がsRGB、青い点と線がWideGamutRGBです。sRGBの赤はWideGamutRGBよりオレンジ寄りで彩度が低く、sRGBの緑はWideGamutRGBより黄色寄りで彩度がかなり低くなっています。また、WideGamutRGBの青はsRGBよりも紫寄りで彩度が高くなっており、「赤」「緑」「青」が色空間によって変わるのが分かります。


◆3:ICCプロファイル:RGB色空間をD50基準で扱う仕組み
XYZ色空間は1931年に作られましたが、ICCプロファイルの規格を策定するインターナショナル・カラー・コンソーシアム(ICC)が設立されたのは1993年です。RGB色空間はICCプロファイルが登場する前から使われていましたが、ICCプロファイルではRGB色空間をXYZ色空間と結びつけて扱う際に「D50」という基準白が使われます。基準白とは何を「白」と見なすかの基準で、ストーン氏はD50を「晴れた日の早朝の直射日光に近い色」、D65を「わずかに曇った昼の散乱光に近い色」だと表現しています。

D50を基準白にするとD65は青く見え、D65を基準白にするとD50は黄色く見えるため、基準白を変える場合は他の色もそれに合わせて変える必要があります。ストーン氏は例として、「ろうそくの明かりの下で相手の顔が暖かい色に見えるのは自然でも、冷たく青みがかった雨の日の屋外で同じ暖かい色味の顔に見えたら、まるでその人だけが常にろうそくで照らされているように見えてしまう」と説明しています。

ICCがD50を採用したのは、紙に印刷した写真などを評価する場面ではD50が基準として使われるためです。ICCプロファイルは画面上の色だけでなく印刷物の色も扱うため、印刷物を見る環境に合わせたD50を共通の基準にしています。一方で、sRGB色空間そのものの白色点は「D65」なので、sRGB色空間の白色点とICCプロファイルで使われる基準白は分けて考える必要があります。

◆4:xyY:色度図で「どの色を扱えるか」を見る
xyYはXYZ色空間の情報を別の形に変換したものです。XYZ色空間では明るさと色味の情報を3次元の座標として扱いますが、xyYではxとyが色味、Yが明るさを表します。そのため、明るさの情報を分けた上で色味だけを2次元の図に置くことができます。

このとき使われるのが馬のひづめのような形をした「xy色度図」です。xy色度図は人間が見ることができる色の範囲を2次元の地図のように示したもので、曲線で囲まれた内側が人間に見える実在色、外側が人間には見えない仮想色を表します。

以下の図はsRGB・CIE-RGB・ProPhotoRGB・AllColors-RGB・Identity-RGBをxy色度図上に重ねたもの。それぞれのRGB色空間では、赤・緑・青の原色を結んだ三角形の内側が「その色空間で表現できる色」の範囲になり、逆に三角形の外側にある色はそのRGB色空間では表現できない「色域外」の色です。


画像編集においては作業中の画像をどのRGB色空間で扱うかを選ぶことがあり、広いRGB色空間を使えば鮮やかな色も扱いやすくなりますが、RGB色空間を広げればすべての実在色を扱えるというわけではありません。

ストーン氏によると、実在色だけを原色に使うRGB色空間としてはWideGamutRGBが最大ですが、それでも緑やシアンの一部、紫がかった青やマゼンタの一部は三角形の外に残るとのこと。すべての実在色を含むRGB色空間を作るには赤・緑・青の原色の一部を仮想色の位置に置く必要があり、例えばAllColors-RGBやIdentity-RGBであればすべての実在色が含まれる一方で、人間には見えない仮想色も含まれます。

◆5:TRC:RGB値と見た目の明るさを対応させる曲線
色空間を理解するには、RGB値と見た目の明るさを対応させる「Tone Response Curve(TRC)」も重要です。TRCは、RGB値が0から1へ変化するときに、色が黒から白へどのように変化するかを決める曲線です。

人間の明るさの感じ方は、光の量と単純に比例するわけではありません。完全に暗い部屋で1個目の電球を点灯させると大きな変化として感じられますが、すでに多くの電球が点灯している状態で1個追加しても、違いはほとんど分かりません。TRCはこうした人間の見え方に合わせて、暗い部分や明るい部分にどれくらい細かく階調を割り当てるかを変えるために使われます。

よく使われるTRCには「線形ガンマ」「gamma=1.8」「gamma=2.2」「sRGBで使われるTRC」「L-star」などがあります。線形ガンマは光の量をそのまま扱うため数学的には単純ですが、人間の見た目に対して均一な階調変化になるわけではありません。これに対して、L-starのTRCは見た目の明るさの変化が知覚的に均一になるように作られており、sRGBで使われるTRCも「gamma=2.2」に近い形で知覚的におおむね均一とのことです。

以下の画像は上からそれぞれ「線形ガンマのTRC」「sRGBで使われるTRC」「L-starのTRC」で黒から白へのグラデーションを作成したもの。


線形ガンマでは数値の段階が明るい側に多く割り当てられるため、8ビット画像では暗部や中間調の階調が粗くなりやすく、なめらかに表現しにくくなります。そのため、1990年代の8ビット画像編集では暗部に帯状の段差が出る「ポスタリゼーション」を避けるため、知覚的に均一に近いTRCを使う必要があったとストーン氏は説明しています。一方で16ビット整数画像や32ビット浮動小数点処理では扱える階調が大きく増えるため、線形ガンマのTRCを使っても階調の破綻は起きにくくなるとのこと。

ストーン氏は記事全体を通じて、デジタル画像の色はRGB値だけで決まるものではなく、XYZ色空間・RGB色空間・ICCプロファイル・xy色度図・TRCといった仕組みを分けて理解する必要があると説明しています。これらを区別することで、同じRGB値でも色空間やプロファイルによって見え方が変わる理由を理解しやすくなります。

・関連記事
ブラウザによって色が異なる「色空間」の不思議な世界 - GIGAZINE

sRGBが色空間の中でもひときわ異質な理由とは? - GIGAZINE

Appleが策定したスマホやPCの画面をもっと豊かな色合いで表現できる色空間「Display P3」とは? - GIGAZINE

なぜAppleは広色域の色空間としてAdobe RGBではなくDCI-P3を採用したのか? - GIGAZINE

in ソフトウェア,   サイエンス,   デザイン, Posted by log1b_ok

You can read the machine translated English article A summary of the essential color spaces ….