1. 背景
- 表示デバイスの広色域化(以後、WCG対応と呼ぶ ※1)が進んでいる
- WCG対応は表現可能な色が増えるため良いこと尽くめの技術に見える
- その一方で WCG対応には「原理的に色ズレが増加してしまう」という負の側面もある
- これは観測者メタメリズム(等色関数※2の個人差)が関係している
- WCG対応と観測者メタメリズムの問題は10年以上前から言及されてきた内容であり、もしかすると「今頃になってそれを話題にするのか?」と思われるかもしれない
- しかし、WCG対応した表示デバイスはここ数年で着実に増えている(TV、スマートフォン、LEDディスプレイなど)
- こうした状況を鑑みると、改めて WCG対応と観測者メタメリズムの関係を整理するのは意義のある行為だと筆者は考えた
- 以上の理由により、筆者は表示デバイスの WCG対応と観測者メタメリズムの組み合わせで生じる色ズレに関してシミュレーションを行うことにした
※1 WCG = Wide Color Gamut ※2 本記事では「等色関数」をグラフなどで CMFs や Color Matching Functions と表記する場合がある
2. 目的
- WCG対応と観測者メタメリズム(等色関数の個人差)の組み合わせが原因で色ズレが増加することを検証する (※3)
※3 偉大なる先人達が既に検証済みであり新規性が無い事は重々承知している ※4 以後、本記事では表示デバイスのことを「ディスプレイ」または「3原色ディスプレイ」と呼ぶ
3. 結論
WCG対応と観測者メタメリズムの組み合わせが原因で、同一の観測者内と複数の観測者間の双方で色ズレが増加することを確認した。
同一の観測者内の色ズレ増加の様子の例を図1に、複数の観測者間の色ズレの様子を図2に示す。 検証条件が複雑であるため、ここでは「色域が広がると色ズレが大きくなる」ことを認識して頂くだけで十分だと考えている。 詳細は後半の「6. WCG対応 と観測者メタメリズムの関係を調べるためのシミュレーション」を参照。
(a) 各観測者と表示位置の関係 | (b) BT.709 ディスプレイ | (c) DCI-P3 ディスプレイ | (d) BT.2020 ディスプレイ |
4. 観測者メタメリズムに関係する用語の整理
筆者が行った具体的な検証内容を説明する前に、観測者メタメリズムに関して簡単に説明する。 また補足説明として現実世界で観測者メタメリズムが問題となるシーンについても軽く触れておく。
なお、本記事では以下のような基礎的な内容は省略する。
4.1. メタメリズム (条件等色)
始めにメタメリズムについて説明する。日本語では条件等色と呼ぶ。
メタメリズムとは分光分布の異なる2つの色刺激が「特定の観測条件」で等しい色に見えることを意味する[2]。
最も身近な例は PCモニター、TV、スマートフォンなどの3原色ディスプレイだと考える。これらのデバイスはメタメリズムを利用して任意の色を再現している。
メタメリズムの具体例を出そう。以下の 図3 は D65光源下の Color Checker の分光分布を、図4 はそれを3原色ディスプレイで再現した際の分光分布を示している 。 図3 の分光分布と図4 の分光分布は形状が全く異なるが、メタメリズムが成立しているため人間は両方を同じ色として知覚する (※5)。
※5 厳密には後述する観測者メタメリズムや照明光メタメリズムが原因で色ズレを知覚するのだが、議論が循環してしまうので一旦無視する。
図3. D65光源下の ColorChecker の分光分布 | 図4. 3原色ディスプレイでメタメリズムが成立する際の分光分布 |
4.2. 観測者メタメリズム
さて、メタメリズムは素晴らしい特性に見えるが、残念ながら様々な要因で不成立となることが分かっている。 要因の一例を以下に挙げる。
- 観測者の等色関数
- 物体色の分光反射率
- 照明光の分光分布
こうした要因のうち、観測者の等色関数の個人差が要因となってメタメリズムが不成立となることを観測者メタメリズムと呼ぶ[2-4]。
具体的な例を挙げよう。図5 には分光分布が異なる 2台のディスプレイ (Display1, Display2) が並んでいる。各ディスプレイは白色のパッチを表示している(図中では分光分布の違いを表すためにパッチの上に分光分布を重ねて表示している)。
2台のディスプレイは観測者A が見た際に色が一致するように調整済みとする。即ち 2台のディスプレイは観測者A に対してメタメリズムが成立しているとする。
観測者B がこの 2台のディスプレイを見ると、多くの場合は色が一致しない。なぜならば等色関数の個人差によって観測者B が得る色刺激は観測者A とは異なるからである。別の言い方をすると観測者B に対してはメタメリズムが不成立となるからである。
(a) | (b) |
4.3.1. 観測者メタメリズムが問題となる場面の例
観測者メタメリズムは、メタメリズムを利用して色再現を行っている表示システム全般で発生する可能性がある。 筆者が最近読んだの論文[5][6] を参考に3点ほど例を挙げる。
- 分光分布の異なる2台のディスプレイに同じ絵を表示した際に、人によって「色が合っている」、「色が異なる」などと意見がばらつく
- ポストプロダクションにおいて、キャリブレーションしたマスターモニターを使ってカラーグレーディングを行ったが、スクリーンにプロジェクターで映像を表示すると色が異なって見える
- 液晶ディスプレイ上で色校正を行うソフトプルーフを行った際に、印刷物と液晶ディスプレイの表示で色が合わない
なお、色がどの程度のズレるかはケースバイケースである。ただし、今後に WCG対応が進むと観測者メタメリズムが原因の色ズレが増加するのは事実である。
用語についての説明が済んだので、ここから先はディスプレイのWCG対応と観測者メタメリズムによる色ズレの関係について調査を進めていく。
5. 3原色のディスプレイが任意の色を再現する仕組みと WCG について
5.1. はじめに
さて、これからディスプレイの WCG対応と観測者メタメリズムの組み合わせに関するシミュレーションを行うのだが、 筆者がシミュレーションで行った計算の内容を理解するためには、前提知識として以下の2点を理解しておく必要がある。
- ディスプレイが任意の色を再現する仕組み
- WCG対応とディスプレイの分光分布の関係
そのため、この2点について説明を行う。
筆者は当初、適当な文献を引用することでディスプレイの色再現に関する説明を省略しようと考えていた。 しかし、筆者が調べたところ 3原色ディスプレイの色再現の仕組みを解説している文献は少なかった(あるいは少々難解であった)。
そういった事情もあり、今回は筆者が自分で説明することにした。参考にした資料は文献[2][7][8] である。 基本的な色彩工学の知識があれば誰でも簡単に導出できる内容だと筆者は考えている。
それでは、以下で説明を行っていく。
5.2. 自宅の液晶ディスプレイを観察
どこから説明すべきか分からなかったので、まずは自宅の液晶ディスプレイを観察することにした。 自宅の液晶ディスプレイに対して様々な RGB 値 (Linear値) を入力し、それをマクロレンズで撮影した様子を図6 に示す。
図6 から以下のことが分かる。
- R, G, B の素子が独立して存在している
- R, G, B の素子は入力の RGB値に連動して明るさが変わる
もう少し詳しく見ていこう。次は分光分布を観察する。 秋月電子で購入した分光器 (※6) を使って分光分布を調べた結果を図7 に示す。
※6 カラーコンパス MFA (SS) 。浜松ホトニクス製の分光器モジュール C12880MA(M-12673) を使用
さて、図7 を注意深く観察すると、分光分布にピークが生じる波長[nm] は(成分が 0 でなければ)どのグラフでも同じであることが分かる(例えば Red のピークはどのグラフでも 600 nm 付近にある)。 更に注意深く観察すると、上段の R, G, B の分光分布を加算すると左下の白色の分光分布が表現できそうなこともわかる。
ここから推測を更に重ねると、中段と下段の分光分布は上段の R, G, B 単色の分光分布の線形結合で表現できそうに見える。 ということで実際に試してみる。
入力した RGB値に対する分光分布を 、R, G, B 単色の分光分布を とする。
および の線形和(係数は入力の RGB値)をプロットした様子を図8 に示す。
図8 を見ると 3原色ディスプレイの分光分布は R, G, B 単色の分光分布の線形結合で表現できることが分かる。
以上の観察により、液晶ディスプレイへの入力(RGB値)と分光分布の関係をおおまかに理解できた。最後に得られた知見をまとめておく。
- R, G, B の素子が独立して存在しており、個別に明るさを変えることができる
- ディスプレイの分光分布 は R, G, B 単色の分光分布を の線形結合で表現できる
- 数式で表現すると以下の (1)式となる
ここで はディスプレイの3刺激値(ディスプレイへの入力値)を意味する (※7)。
※7 今後はディスプレイ固有の RGB値であることを明確にするため、R, G, B ではなく と表記する。
5.3. メタメリズムを利用した任意の色の再現方法
さて、ここから先は数式を使ってディスプレイが任意の色を再現する仕組みを説明する。
5.3.1. 3原色ディスプレイの の計算
「ディスプレイが任意の色を再現する」というのは「観測者が任意の を得られるようディスプレイの分光分布 を変化させる」 と言い換えることができる。なぜならば、観測者が得る は以下の (2)式に示す通り と等色関数から計算されるからである。
ここで は CIE1931 の 2°視野の等色関数意味する。 なお、係数 は便宜的な理由で用いられる係数であるため[9] 以後の数式では省略する。
は (1)式で示した通り、ディスプレイの3刺激値 によって一意に定まる。 よって (2)式に (1)式を代入して以下の (3)式を得る。
従って「ディスプレイが任意の色を再現する」とは「観測者が任意の を得られるようにディスプレイに 3刺激値 を与える」 と言い換えることができる。
簡単に言うと、 を入力として を出力する計算式を立てて解けば良い。 そしてそれは (3)式から導くことが可能である。
5.3.2. 積分計算を別の値で置き換える
それでは式の変形を続けていく。まずは積分計算を別の記号で置き換える。
(3)式の の計算式の右辺第一項の に注目する。 この式はディスプレイの Red のみが光っている場合の の計算結果に等しい。
別の言い方をすると、ディスプレイに を入力した場合の の計算結果に等しい。
そこで Red のみが光っている場合の の計算結果を と置く。すると と書ける。
同様に Green のみが光っている場合の の計算結果を と置く。すると と書ける。
同様に Blue についても と書ける。
これを についても適用し 以下の (4)式を得る。
(4)式を (3)式に代入して以下の (5)式を得る。
行列の形で書き直して以下の (6)式を得る。
ここで (6)式の to 変換行列を とする。
さて、 はディスプレイの分光分布が既知であれば速やかに計算可能である (※8)。 その上で の逆行列 を計算すれば、任意の を再現する を求めることができる。
※8 あるいは分光分布が未知であっても を測定可能な計測器があれば容易に導ける
5.3.2. 一般的な変換式の導出
さて、ひとまず の求め方は分かったが実は他にも表記の仕方がある。 今回、筆者が参考にした資料でも別の表記で を求めている。 具体的には Red、Green、Blue の 色度と White の を使って を計算している[2][7][8] (※9)。
本記事でもその形式で を求めたいため 引き続き (6)式を変形していく。
※9 細かいことを言うと資料毎に式にバリエーションがある。今回は [7] と全く同じ形にする
まず の色度 について考える。 であるから
である。同様に
である。同様に別の変数についても計算をすると以下を得る。
唐突だが、ここで を以下のように定義する。
(10)式を (7)~(9)式に適用して (11)式を得る。
(11)式を (6)式の行列に代入して (12)式を得る。
更に変形して以下を得る。
ここから を求めていく。
まず と White の XYZ値 との関係を考える。
White とはディスプレイに対して を入力した場合の特性である。 従って (13)式に と を代入して以下の (14)式が得られる。
よって は以下の (15)式で計算できる。
5.3.3. ディスプレイが任意の色を再現する仕組みのまとめ
ということで、長々と数式の変換を行ってきた内容をまとめる。
- ディスプレイは 3刺激値 を制御することで任意の色 () を再現する
- (3) 式参照
- と の関係は (13)式で表すことができる
- (13)式の行列はまとめることで 3x3 の to 変換行列 として扱うことができる
- 従って、 を計算すれば任意の を表示するための が計算できる
- は(13)式と(15)式を使って計算可能であり、そのためには以下の情報があれば良い
- Red, Green, Blue 単色の 色度
- White の XYZ値
5.3.4. ディスプレイが任意の色を再現する具体例の提示
理論式が完成したので、実際に を計算してみよう。
まずは を計算する。自宅のディスプレイの 360~780 [nm] の分光分布のデータを使って 単色の と 各色の を計算した結果は以下の通り。なお、今回は筆者の計算の都合で となるよう正規化してある。
ここから を計算した結果は以下の通り。
それでは、お試しで Color Checker の No16 (Yellow) のパッチを再現してみよう。
No.16 のパッチに D65 光源を照らした際の XYZ値は である (※10、※11)。 これを出力する の計算結果は以下となる。
※10 BabelColor で公開されている分光反射データ[10] を使って筆者が計算した。計算の詳細は省略する ※11 分光反射率が 1.0 の場合に となるよう 値を正規化した
ちなみに、これは Linear値なので画面に表示する場合は sRGB の OETF を適用する必要がある。 sRGB の OETF を適用し 8 bit で正規化した場合の値は となる。
参考までに、上記の計算を行ったコードへのリンクを以下に貼っておく。
5.4. ディスプレイの WCG対応と分光分布の関係
本記事の目的は WCG対応と観測者メタメリズムの関係を調べることである。 そのため、WCG対応がディスプレイの特性(分光特性)に与える変化についても理解しておく必要がある。
ここでは、WCG対応によってディスプレイの分光分布がどのように変化するかを説明する。
5.4.1. ディスプレイの色域
まずは色域 (Gamut) の定義をおさらいする。 3原色ディスプレイにおける色域とは、xy色度図上において 3原色の色度を頂点とした三角形の領域を意味する[2][11]。
例として筆者の自宅のディスプレイの色域をプロットした様子を図9 に示す。図9 の青色の三角形が筆者のディスプレイの色域である。
それでは分光分布と色域の関係を調べていこう。
まずはディスプレイを増やして傾向を観察する。新たに iPhone 13 Pro (WCG対応) の分光分布を測定し、 自宅ディスプレイとの分光分布の違いを比較した。
双方の分光分布および色域をプロットした様子を図10 に示す。
(a) 分光分布 | (b) 色域の比較 |
図10 を見ると単色の分光分布の幅が狭くなると色域が広がるように見える。
この仮説を検証してみる。
5.4.2. 分光分布と色域の関係をシミュレーションで確認
図10 から得た仮説を確認するためには、任意の分光分布を設定可能な 3原色ディスプレイがあると都合が良い。 しかし、そのようなデバイスはこの世に存在しない。そのため筆者は任意の分光分布を設定可能な仮想ディスプレイを作った。
作成した仮想ディスプレイを使い、様々な分光分布で色域を確認した様子を以下の動画1に示す。
ここで、筆者が作成した仮想ディスプレイについて2点ほど補足しておく。
まず1点目、仮想ディスプレイの分光分布は正規分布で模倣した。正規分布の平均と標準偏差は、動画上では loc
, scale
のパラメータで変更可能とした。
続いて2点目、仮想ディスプレイの分光分布は白色点が D65 となるように白色点調整した。そのため 1色の loc
, scale
を変えると残り 2色もゲインが変わる。
白色点調整の詳細は「付録1. 白色点の調整」を参照。
さて、動画の内容を分析してみよう。注意深く観察すると以下のことが分かる。
- loc のパラメータを変えると頂点の色度は変わるが、色域それほど変わらない
- scale のパラメータを変えると色域が拡大・縮小する
- scale のパラメータを大きくして分光分布の幅を狭くすると色域が拡大する
よって、ディスプレイが WCG対応するためには各色の分光分布の幅を狭くすれば良いことが分かる。 参考データとして、筆者が仮想ディスプレイで BT.709、DCI-P3、BT.2020 の色域を持つディスプレイの分光分布を求めた結果を図11に示す。
(a) BT.709 色域の例 | (b) DCI-P3 色域の例 | (c) BT.2020 色域の例 |
図11 からも分光分布の幅が重要であることが分かる。
5.4.3. WCG対応とディスプレイの分光分布の関係のまとめ
仮想ディスプレイの分光分布を変化させ、色域の変化を観察することで以下のことが分かった
- ディスプレイが WCG対応を行うと各色の分光分布の幅が狭くなる
6. WCG対応 と観測者メタメリズムの関係を調べるためのシミュレーション
さて、ここまでの内容でシミュレーションを行う際に必要な知識の説明は済んだ。 ここからは実際にシミュレーションを行って、WCG対応が進んだ際に観測者メタメリズムが原因の色ズレがどう変化するかを確認していく。
6.1. 検証環境の概要と評価基準
ここでは検証環境の概要と評価基準について説明する。
まず検証環境の概要を説明する。筆者は文献[6] を参考に以下の2種類の色ズレについてついてシミュレーションを行うこととした。
- 同一の観測者内の色ズレ
- 複数の観測者間の色ズレ
前者は個人で複数のデバイスを使う際の影響を調べるためのもの、 後者は複数人で単一のデバイスを使用する際の影響を調べるためのものである。
それぞれ図を使って簡単に説明をする。合わせて各検証環境での色ズレの定義についても述べる。
6.1.1. 同一の観測者内の色ズレ
図12 は「同一の観測者内の色ズレ」について説明したものである。ここでは白色のパッチとディスプレイが並んでいる。白色のパッチは D65 の光源で照らされており、ディスプレイは CIE1931 の 2°視野の等色関数を使って D65 に調整されている。 別の言い方をすると、白色のパッチとディスプレイは CIE1931 測色標準観測者 (Standard Colorimetric Observer) に対してメタメリズムが成立している。 そしてそれらを観測者 が視認している。
図12 をベースに、本記事では「同一の観測者内の色ズレ」の定義を「CIE1931 測色標準観測者に対してメタメリズムが成立している 2種類の色刺激を ある観測者 が視認した際に知覚する色ズレ」とする。
図12 では観測者 が2つの色刺激の色度をそれぞれ 、 として知覚しており色ズレが発生している。 なお、 の添え字 は観測者の識別インデックスを意味する。
6.1.2. 複数の観測者間の色ズレ
図13 は「複数の観測者間の色ズレ」について説明したものである。ここでは 個の白色パッチと台のディスプレイが並んでいる。各ディスプレイは 人の観測者それぞれに対して白色パッチとメタメリズムが成立するよう調整されている。 そしてそれらを CIE1931 測色標準観測者 が見比べている。
図13 をベースに、本記事では「複数の観測者間の色ズレ」の定義を「複数の観測者に対してメタメリズムが成立している複数のディスプレイを CIE1931 測色標準観測者が視認した際に知覚する色ズレ」とする。
図13 では CIE1931 標準測色観測者が各ディスプレイを異なる色度で知覚しており、色ズレが発生している。
6.2. 準備
シミュレーションで評価する「色ズレ」の定義が終わったので、より具体的な準備に入る。 シミュレーションに必要な以下の4つを準備する。
- 仮想ディスプレイ
- 等色関数
- 分光反射率が既知のカラーパッチ
- 光源
6.2.1. 仮想ディスプレイ
今回のシミュレーションを行うにあたり、筆者は以下の3種類の仮想ディスプレイを用意することにした。
- BT.709 色域のディスプレイ (WCG非対応)
- DCI-P3 色域のディスプレイ (WCG対応済)
- BT.2020 色域のディスプレイ (WCG対応済)
WCG対応済みのディスプレイを2種類用意した理由は、DCI-P3色域と BT.2020色域とでは分光分布の形状が大きく異なるからである。
また、仮想ディスプレイを作るにあたり、筆者は現実に存在するディスプレイの分光分布を参考にした。 それぞれの色域に対して参考にした分光分布は以下の通り。
色域 | 参考にしたディスプレイ |
---|---|
BT.709 色域 | 自宅の液晶ディスプレイ |
DCI-P3 色域 | iPhone 13 Pro |
BT.2020 色域 | 三菱電機のレーザーバックライトディスプレイ [12] |
作成した仮想ディスプレイの分光分布を図14 に示す。
色域 | 分光分布と xy色度図 |
---|---|
BT.709 | |
DCI-P3 | |
BT.2020 |
1点補足しておく。図14 を見ると分かるように、作成した仮想ディスプレイの色域は、ターゲットの色域と完全には重なっていない。 理由は、仮想ディスプレイの分光分布が参考にしたディスプレイの分光分布になるべく近づくようパラメータ調整したからである。
6.2.2. 等色関数
観測者メタメリズムに関するシミュレーションを行うためには、個人差が反映された等色関数のデータセットが必要である。 今回は MCSL にて Categorical Observers として公開されている10種類の等色関数[1] を使用した (※13)。 これは Asano らによって開発された[15] 優れたデータセットであり、観測者メタメリズムに関する様々な検証で利用可能となっている。
※13 データセットには lms-CMFs と xyz-CMFs の双方が含まれているが、今回は XYZ を計算するのが目的なので xyz-CMFs のみを使用した
生データは [1] の PDF の "CMFs, ages, and physiological parameters" のリンクからダウンロードできる。
この等色関数は正式には「カテゴリカル観測者 の xyz等色関数 ( は 1~10 の整数) 」と呼ぶべきだが、 本記事では短く「観測者 の等色関数」と呼ぶ(ただし図では Cat.Obs と表記する場合がある)。
参考までに観測者1~観測者10 の等色関数をプロットした結果を図15 に示す。
なお、これらの等色関数のデータの波長は 390~780 nm となっている。そのため、シミュレーションで XYZ を計算する際に照明光やディスプレイの分光分布も 390~780 nm の範囲のデータのみを使うこととした (※14)。
※14 後述の Color Checker は 380~730 nm のデータであるため、最終的には 390~730 nm の範囲のデータのみを使用した
6.2.3. 分光反射率が既知のカラーパッチ
筆者はシミュレーションを行うにあたり、白色のパッチだけでなく様々な分光分布のデータを使いたいと考えた。 そこで BabelColor で公開している Color Checker の 24パッチの分光反射率のデータ[10] を使い検証を行った。
6.2.4. 光源
D65 の光源を用意した。
6.3. 同一の観測者内 (intra-observer) の色ズレに対するシミュレーション
WCG化が進んだ際に「同一の観測者内の色ズレ」どのように変化するか調査した内容の詳細を記す。
6.3.1. 検証環境
図12 をベースに、以下の拡張を加えたものを検証環境とした。
- 図12 左側の白色のパッチを、Color Checker の 24個のパッチの中から任意の1つを選ぶように拡張
- 図12 右側のディスプレイの特性を、作成した 3種類の仮想ディスプレイの中から任意の1つを選ぶように拡張
- 図12 下側の観測者を、観測者1~観測者10 の中から任意の1人を選ぶように拡張
観測者 が左側の D65光源下のパッチを見て得られる色度 を正しい色とし、 右側のディスプレイで再現した色度 との差 を 色ズレ指標とした。
ここで は観測者の番号を、 は Color Chekcer のパッチの番号を、 はディスプレイの番号を示す。 が BT.709色域のディスプレイを、 が DCI-P3、 が BT.2020 を意味する。
具体例を 図16 に示す。なお、図中では 色度は と表記しており、 の添え字は省略してある (図が見づらくなったため)。
以下に を算出するまでの手順を示す (添え字は省略してある)。
- D65光源下のパッチ の 値を CIE1931 2°視野の等色関数で計算
- (13)式を使い、計算した 値に対してメタメリズムが成立するように、仮想ディスプレイの 3刺激値 を計算 (※15)
- (1)式を使い、メタメリズムが成立する仮想ディスプレイの分光分布 を計算
- (3)式を使い観測者 に対する 値を計算 (※15)
- 得られた 値から 色度を計算
※15 等色関数は CIE1931 2°視野ではなく観測者 の等色関数を使用
6.3.2. 検証結果
10人の観測者に対して、3種類の仮想ディスプレイを使い ColorChecker の各パッチに対する色ズレ を調べた結果を 図17 に示す。ここでは観測者ごとに結果をまとめてある。各パッチに重ねて描画した棒グラフの高さが色ズレを意味する。
観測者の番号 | 各観測者に対する観測者内の色ズレ量 |
---|---|
観測者によって値の大小はあるものの、WCG対応が進むと色ズレが大きくなることが分かった。
参考までに、検証に使用したソースコードのリンクを貼っておく。
6.4. 複数の観測者間 (inter-observer) の色ズレに対するシミュレーション
6.4.1. 検証環境
図13をベースとして、以下の拡張を加えたものを検証環境とした。
- 図13 左側の白色のパッチを、Color Checker の 24個のパッチの中から任意の1つを選ぶように拡張
- 図13 右側のディスプレイの特性を、作成した 3種類の仮想ディスプレイの中から任意の1つを選ぶように拡張
CIE1931 標準測色観測者が D65光源で照らされたパッチを見て得られる色度を正しい色とし、各ディスプレイで再現された色との色差を色ズレの指標とした。
検証は以下の手順で行った。
- (3)式を使い D65 光源で照らしたパッチの各観測者 に対する 値を計算 (※16)
- (13)式を使い得られた 値に対してメタメリズムが成立するように、仮想ディスプレイの 3刺激値 を計算 (※16)
- (1)式を使い観測者 に対してメタメリズムが成立する仮想ディスプレイの分光分布 を計算
- (3)式を使い 観測者 に対してメタメリズムが成立する仮想ディスプレイを CIE1931標準測色観測者が見た際の 値を計算
- 得られた 値から色ズレを評価
※16 等色関数は CIE1931 2°視野ではなく観測者 の等色関数を使用
6.4.2. 検証結果
今回の色ズレは CIE1931 標準測色観測者の XYZ値で算出した。従って色ズレの量を sRGB空間で表現することも可能である。
11人 (うち1人は CIE1931 標準測色観測者) の色の見え方の違いを sRGB画像として可視化したものを図19、図20 に示す。 図19 は可視化の際の各観測者の結果の配置位置を示している。
仮想ディスプレイの色域 | 複数の観測者間の色ズレを可視化したもの |
---|---|
BT.709 | |
DCI-P3 | |
BT.2020 |
WCG対応が進むと(色域が広がると)色ズレが大きくなる様子が確認できる。
また、この色ズレは CIE1931 標準測色観測者に対するものであるため、 空間に変換することも可能である。 そこで 空間に変換し、 平面上でのユークリッド距離を色差量とした場合の比較を計算した。 結果を図21 に示す。
仮想ディスプレイの色域 | 複数の観測者間の色ズレを棒グラフで表示したもの |
---|---|
BT.709 | |
DCI-P3 | |
BT.2020 |
図21 からも、観測者によって値の大小はあるものの、WCG対応が進むことで色ズレが大きくなることが分かった。
参考までに、検証に使用したソースコードのリンクを貼っておく。
6.5. 考察
筆者は 図17、図20、図21 を見て以下を理解した。
- ディスプレイの WCG対応が進むと観測者メタメリズムが原因の色ズレは大きくなる
- これは「同一の観測者内」と「複数の観測者間」の双方で共通している
- 図20、図21 より色ズレの大きさには観測者ごとに大きく異なる
これらの原因について簡単に考察したい(人によっては自明に感じるかもしれないが)。
まず、WCG対応が進むと色ズレが大きくなる原因について考える。筆者は分光分布の幅が狭くなると「等色関数の個人差」が強調されるからだと考える。 具体例を図22 に示す。図22 は以下の3つをプロットしたものである。
もともと個人の等色関数にはバラツキが存在しているが、分光分布が狭いディスプレイと組み合わせた場合は、バラツキがピンポイントで強調されやすいことが分かる。 WCG対応が進めば進むほど分光分布の幅は狭くなるため、WCG対応が進むと色ズレが増加する結果が得られたのだと考える。
次に、観測者ごとにズレ量の大小が大きく異なる点についても考える。筆者は CIE1931 2°視野の等色関数とのズレが強調されやすかったか、そうでなかったかの違いだと考える。 各観測者の等色関数を注意深く観察すると、CIE1931 2°視野の等色関数とのズレが大きい波長、小さい波長が存在することが分かる。 この部分とディスプレイの分光分布が重なるか否かで、色ズレの大小が生まれていると考えている。
この考えが正しい場合、分光分布のピーク位置の波長がズレると、観測者メタメリズムが原因の色ズレ量が変化することを意味する。 従って 図17、図20、図21 の結果は、あくまでも筆者が分光分布を定めた仮想ディスプレイの結果であり、 現実世界の 3原色ディスプレイを使って検証した場合は、各観測者の色ズレ量が大きく変わる可能生があることには注意したい。
とはいえ変わる可能生があるのは色ズレの大小であり、「WCG対応が進むことで色ズレが増える」という傾向は変わらないと考える。
最後に「どうしたら観測者メタメリズムによる色ズレを抑制できるか」についても考察したいが、残念ながら良いアイデアが無いので特に言及しない。 今のところは、なるべく色域の狭いディスプレイを使うのが良いと個人的には考えている。
7. 感想
ようやく観測者メタメリズムのシミュレーションを実施することができた。個人的にとても勉強になったと考えている。
「観測者メタメリズム」という用語は以前から知っており、実際に現実世界でも苦しめられてきた存在ではあるが、 こうして真面目にシミュレーションを行うのは初めての経験だった。
筆者は、普段はスペクトルベースの計算を殆ど行わないので色々と戸惑うことが多かったが、 今回の経験を経てスペクトルベースで様々な色処理を行うことのモチベーションが上がった。大変有意義な調査だった。
今回の色処理の計算も Colour Science for Python のライブラリに大いに助けられた。 偉大なライブラリを開発・メンテナンスしている方々には大変感謝している。
特に、v0.4.0 以降で colour.sd_to_XYZ
が MultiSpectralDistributions
に対応したおかげで、計算が大幅にしやすくなった。
マジで神ライブラリなので興味のある方はぜひ使って欲しいと考えている。
付録1. 白色点の調整
筆者が最初に作った仮想ディスプレイは、R, G, B の Primary colors は所望の特性を有していたが、 R + G + B で表現される White は何も調整しておらず酷い特性であった。
この状態だと各種シミュレーションを行う際に弊害が出る可能生があった。 そこで 仮想ディスプレイの白色点を D65 に調整することにした。
白色点の調整(ホワイトバランス調整と呼ぶこともある)には幾つかの方法がある。 例えば Wikipedia では (3x3 の行列を使う手法として) 以下の4手法が紹介されている[16]。
- (a) Scaling monitor R, G, and B
- (b) Scaling X, Y, Z
- (c) Von Kries's method
- (d) Scaling camera RGB
今回は (a) の方式で調整を行う。理由は以下の3点である。
- (a) は RGB空間で各色にゲインを適用するだけであり、数式がシンプルで良い
- 本記事の検証は色順応の評価を目的としていないため (c) は使う必要性が無い
- 筆者が自宅で使っている2台のディスプレイの動作を確認したところ、2台とも白色点を変更すると R, G, B のゲインが変わる仕様となっていた(ディスプレイ1 の測定結果、ディスプレイ2 の測定結果)
それでは、筆者が仮想的に作成したディスプレイの白色点を D65 に調整するための係数 を算出しよう。
まずディスプレイの3刺激値 と の関係を復習する。2つの3刺激値は行列 を使って以下の通りに計算できる ( の求め方は (13), (15)式を参照)。
さて、ここで白色点が D65 になるということは3刺激値として を与えた際に が得られると言うことである。
そして、それが に対してゲイン をかけることで達成されるため、 以下の式が成立する。
さて、今必要なのは である。これらの値は の逆行列をかけて求めることができる。
これで に適用する白色点調整用のゲイン を求めることができた。 白色点調整前の 3刺激値を 、調整後の 3刺激値を とすると、以下の式で白色点調整できる。
参考資料
[1] Munsell Color Science Laboratory, "Observer Function Database", https://www.rit.edu/science/sites/rit.edu.science/files/2019-01/MCSL-Observer_Function_Database.pdf
[2] 太田 登, "色彩工学 第2版", 東京電機大学出版局, 2005.
[3] Mark D. Fairchild & David R. Wyble, "Mean Observer Metamerism and the Selection of Display Primaries", http://markfairchild.org/PDFs/PRES14.pdf
[4] Wikipedia (EN), "Metamerism (color)", https://en.wikipedia.org/wiki/Metamerism_(color)
[5] T. D. Canham, D. L. Long, M. D. Fairchild and M. Bertalmío, "Physiologically Personalized Color Management for Motion Picture Workflows," in SMPTE Motion Imaging Journal, vol. 131, no. 2, pp. 8-16, March 2022, doi: 10.5594/JMI.2022.3143608.
[6] Asano, Yuta & Fairchild, Mark & Blond´e, Laurent & Morvan, Patrick. (2014). "Observer Variability in Color Image Matching on a LCD monitor and a Laser Projector". Color and Imaging Conference. 2014.
[7] T. Fujiwara, "RGB → XYZ 変換行列の求め方", http://web.archive.org/web/20170810033453/http://w3.kcua.ac.jp/~fujiwara/infosci/colorspace/rgb_xyz.html
[8] Katoh, Naoya & Deguchi, Tatsuya & Berns, Roy. (2001). "An Accurate Characterization of CRT Monitor (I) Verifications of Past Studies and Clarifications of Gamma". Optical Review. 8. 305-314. 10.1007/s10043-001-0305-0.
[9] 日本色彩学会, "新編 色彩科学ハンドブック" 第3版", 東京大学出版会, 2011.
[10] BabelColor, "ColorChecker data", https://babelcolor.com/colorchecker-2.htm#xl_CCP2_data
[11] Wikipedia (EN), "Gamut", https://en.wikipedia.org/wiki/Gamut
[12] 新倉栄二, "RGBレーザーバックライト液晶ディスプレイ", ITUジャーナル, 2016, vol. 46, no. 2, p.32-235, https://www.ituaj.jp/wp-content/uploads/2016/01/2016_02-08-laserback.pdf
[13] ISO/CIE 11664-4:2019, Colorimetry - Part 4: CIE 1976 Lab* colour space
[14] Wikipedia (EN), "Color difference", https://en.wikipedia.org/wiki/Color_difference
[15] Asano, Y, Fairchild, MD. "Categorical observers for metamerism". Color Res Appl. 2020; 45: 576– 585. https://doi.org/10.1002/col.22493
[16] Wikipedia (EN), "Color balance", https://en.wikipedia.org/wiki/Color_balance