色を科学する その③ 数学的に生み出されたCIE XYZ
CIE RGB表色系ができて、めでたく「色を数値(実数)で表す」ことができたのですが、課題もありました。
それは、以下の2点です。
①等色関数にマイナス(負)が存在する
②明るさ(輝度)がすぐわからない
①マイナスの等色関数
等色関数=(単色光の)三刺激値ですから、マイナス(負)とはどういうことなのか?といっても、これは有名な話なのでちょっと視点を変えてお話しします。
440~540nmのシアン~緑の単色光が非常に鮮やかで、原刺激であるR、G、Bの光をどう調整してもマッチングできず、そこで、Rの光をシアン~緑の単色光の方に入れ(混ぜ)、彩度を落として、GとBでマッチングした、というやつです。
これよくよく考えるとスゴイことなんです。この行為を等色(方程)式で考えると、、、
任意の色C + ○R ≡ △G + □B
この式の両辺に「- ○R」を足すと(移項ともいえる)
任意の色C ≡ -○R + △G + □B
となり、(-○,△,□)がその色の数値となります。つまり、「Rがマイナス」です。やっていることが完全に数学ですよね。
そして、こんな、「移項」ができるのも、グラスマンの法則(等価性)
④A≡BかつC≡D ならば (A+C)≡(B+D) である(加法則)
があるからです。
ちなみに、マイナスの部分は、BとGにもあります。0.001程度なので、小さくてグラフでは見えませんが。
そして、本題です。なぜこれが問題か? マイナスの数値があると、少なくとも1900年代前半では、計算が大変だったのです。当時、Excelはおろか電卓もないですから、マイナスがあると計算を間違いやすい。
大学生の時、実験で、三刺激値の計算をしたことがあります。電卓で。モノクロメーターで単色光を出し、フォトダイオードの出力値をメモる。これを10nmごとにやって、等色関数を掛けて全波長足す、という作業は大変ですね。この時はXYZでやったのでマイナスはなかったのですが、マイナスがあったら電卓でやっていても発狂しそう。
②明るさ(輝度)がすぐわからない
これはシンプルなのですが、RGB表色系では、
R + 4.5907G + 0.00601B
という計算をしないと明るさ(輝度)がわからないので、三刺激値同士をパッと見たときに、どっちが明るいのか?がわかりません。地味に面倒です。
数学的に生み出されたXYZ
上記2つの問題を解決するため、CIE XYZ表色系が作られました。方法は、下記2つの条件を満たすように、RGBに数学的な操作をし、新たな原刺激XYZを生み出す(あたかも、XYZで等色実験をやったようにする)、というものです。数学的にいうと「基底を変換した」ですね。
・等色関数がすべて正(プラス)である
・Yにすべての明るさ情報を持たせる(Y=輝度である)
そして、その式が↓です。
Yに注目すると、
Y = R + 4.5907G + 0.00601B
となっており、RGB表色系での明るさ(輝度)の算出式と一致してます(Yが輝度(cd/m^2)になるかどうかは、色光のエネルギーの単位による)。なので、y(λ)は、ヒトの明るさ感度関数である分光視感効率V(λ)と完全に一致してます。
めでたく、マイナスの部分がなくなりました。
しかし、強引な条件で変換したので、副作用もあります。
・XYZはこの世に存在しない(ヒトが見ることができない)色=虚色
・しかも、XとYは、色みはあるが、明るさが0の色!
・x(λ)にはピークが2つある(あまり問題ではないか、、、)
「架空の等色実験」に使われた原刺激XYZは、見ることもできず、数学的に、概念的に存在しているだけなのです。
「虚色」の話は、「2つの3原色-RGBとCMY」の有料部分でもう少し言及してます。
等色関数同士は線形変換できる
RGBからXYZに変換する式(行列)は線形変換になっています。すべての等色関数はお互いに線形変換できる、という性質があります。逆に言うと、カメラや色彩計の感度が既存の等色関数から線形変換できない(誤差がある)と、色が正確に得られません。これは、ルータの条件( Luther condition)と呼ばれています。
RGBやXYZの等色関数は、ヒトの目の感度(L,M,S錐体の分光感度)の線形変換になっています。本当は、「LMS表色系」を作るべきなのですが、1900年代前半にはL,M,S錐体の分光感度がまだわからなかったので、仕方なく、RGBでまどろっこしい等色実験をして、ヒトの目の感度を間接的に表す等色関数により色を数値化したというわけです。
1900年代後半から、2色型色覚(いわゆる色覚異常)の人による等色実験のデータを基に、LMS各錐体の分光感度がわかってきて、CIEも2006年に「錐体基本関数(Cone Fundamentals)」として正式に発表しました。そして、この関数を用いた表色系「CIE XFYFZF表色系」も2015年に発表されています(Fは下付き文字、Cone FundamentalsのF)。
↑CIE webサイトより