ご支援ありがとうございます!
今回は、HDR解説の2回目、基礎編として、色空間(カラースペース)をはじめとした色の科学についてのお勉強です。
まずは色空間(カラースペース)を理解するための初歩…といってもいきなり聞き慣れない用語、XYZ色空間のお話です。この内容を詳しく解説しているのが以下のWikipediaの記事ですが、行列や積分といった数学が出てきます。
専門的で、私もすべてを理解しているわけではないですが、初学者でもわかる範囲の解説を試みます。
三値刺激とLMS色空間
人間の視神経は、3種類の錐体細胞と、桿体細胞という合計4種の神経から構成されています。この中で、3つの錐体細胞がそれぞれ異なる光吸収の周波数特性を持っています。L(Long),M(Medium),S(Short)の各錐体の刺激値が三値刺激であり、その三値刺激をそのまま三次元行列として数学的なモデルに使ったのが、LMS色空間です。人間の脳は三値刺激を脳で処理し、三次元情報として色を知覚しています。
XYZ色空間
LMSの情報だけだと直感的に処理するのが大変ですし、錐体や桿体の詳しい仕組みが判明したのは1950年代と、比較的近代のことです。
これに対し、「色度」というパラメーターを使って処理できるように考案されたのが、XYZ色空間です。CIE1931の名前が示すように、1931年にCIE(国際照明委員会)によって制定されました。ヒトが被験者となった複数のアナログな実験が元になっています。
まずは私達にも馴染み深いRGBが三原色として採用され、CIE RGB色空間(現在は色空間の定義としてはほとんど用いられない)が定義されたのですが、RGB色空間では等色関数においてRに負の値(マイナスの光?)が必要となるため、(計算尺などを使っても簡易的に計算できる)正の値だけで表現でき、Y成分が輝度となるように意図的に「正規化」された仮想の三値刺激XYZによって定義された色空間がXYZ色空間です。XYZとRGB、LMSは行列変換によって相互に線形変換できます。
…と言ったところで難解であることにかわりはないのですが、とにかくXYZにすることで、「色度」を用いた色域を表すのに便利な色空間になります。
Wikimedia commons CIE 1931 xy chromaticity diagram
XYZの混色比x,y,zのうち
を用いて色度をあらわしたのが、よく見かける上記の「CIE1931 xy色度図」です。さらに原刺激のY(輝度に対応)を軸に加えると3次元空間のグラフになります。x,yが(0,0)(1.0)(0,1)で内包される三角形内の着色された部分に、人間が知覚できる全ての色(光の波長)が内包されます。
それぞれの頂点付近の色度は、人間が知覚できる色(色取図で表現できる色)の範囲を超えているため、丸められています。図を囲む460~620の青い数字は波長(ナノメートル)です。この図が色空間の定義上頻繁に出てくるので、XYZがどういったものか、ざっと説明させていただいた次第です。
補足:桿体細胞
桿体細胞は、非常に弱い光を機敏に検知する役割があり、暗闇での視覚に寄与しますが、三値刺激には含まれず、色には関係しません。
桿体細胞単体では色を知覚することができないので、データとしてはモノクロの明暗情報です。暗い影や暗闇のシーンにおいて、彩度の低い色や明部の補色としてイラストで表現されるのは、桿体細胞の仕組みを考慮することによって、知覚的に意味を持たせることができます。
補足:波長と周波数
本稿では波長と同時に周波数というキーワードも出てきます。波長と周波数は反比例の関係にあり、光(電磁波)においては、波長が決まれば周波数が決まります。「波長特性」とは言いませんが、「周波数特性」と互換性のある言い方になります。
電磁波の波長λ(m)と周波数f(Hz)の関係は次式のようになります。cは光速度(299,792,458 m/s)を指し、定数です。
光速度はめちゃくちゃ大きな数字ですが、周波数がテラ(10^12)ヘルツスケールと極大な数値なため、波長はナノ(10^-9)メートルクラスの極小の値になります。
私達がデジタルコンテンツ製作で使っているRGB、すなわちRed,Green,Blueって何?という疑問ですが、先程の三値刺激でも解説したように、人間は3つの異なる周波数特性を持つ視神経、錐体(S,M,L)をもち、それらの刺激値を脳で演算することで色を知覚しています。RGBは、この三値刺激を構成するための光の三原色です。
Wikimedia commons human cone response curves
[注:上図のR(点線)は、桿体細胞のレスポンスを示しています。]
つまり、連続的に光の周波数を変化させることができる(全ての色を表現できる単一の)光源が無くても、それぞれの錐体に対応する3つの周波数特性を持つ光源を三原色として加色混合すれば、原理的には人間が知覚できるほとんどの色を作り出せるのです。
加色混合による光の三原色は、以下のように定義されます。
R 赤(625 - 740 nm) CIE 1931 : 700 nm
G 緑(500 - 560 nm) CIE 1931 : 546.1 nm
B 青(445 - 485 nm) CIE 1931 : 435.8 nm
CIE1931のRGBは色度図上で最大限のトライアングルを作れるように定義された数値ですが、CIE 1931のR,Bの波長で作る発光体は発光効率が非常に悪く、特にBについてはほとんど紫の領域です。そのため、実際の機器では色度図上で少し中心寄りになるような波長で作られています。
実は、実際の機器におけるRGBの波長ってけっこう曖昧なんです。そのため、機器ごとの大きな性能差が生まれます。
色に対するヒトの反応は、以下のようなCIE測色標準観察者等色関数 としてプロットされます。
Wikimedia Commons CIE 1931 XYZ color matching functions
Green~Yellow~Redの周波数が非常に近いのは興味深いですね。550~600nmというわずかな周波数の違いがこれだけ明確に色の違いとして現れています。MとLの周波数特性が非常に近いことは、しばしば色覚異常を引き起こす要因ともなっているようです。私も軽度の2型色覚異常(赤、緑の判別機能が低い)です。
また、CIE等色関数において、x̄の周波数特性が低い領域で持ち上がっているのも注目すべき点です。これは青よりも短い波長、すなわち紫が赤と青の合成で作られているということにつながります。
これにより、青~赤の直線的なスペクトルだけでなく、ライティング、配色において重要な要素となる非対称な色相環(カラーサークル)が成立します。
補足:人間が知覚できない色って何?
CIE色度図の色の付いている範囲外や、等色関数において上限、下限の外の波長の色、というのは何でしょうか。
光とは、電磁波の一部です。可視光よりも波長の短い電磁波は紫外線、さらに短い波長域ではX線などがあります。長波長域では、赤外線やマイクロ波、電波などになります。
自然界には様々な波長の電磁波が飛び交っているのですが、我々人間は380nmから760nmの電磁波のみを可視光として見ることができます。
一方、赤外線や紫外線を知覚できる視神経や器官をもつ動物(爬虫類や昆虫など)もいます。逆に、人間のように色を三原色でとらえることができず、モノクロ~2色で見ている動物(イヌやネコ)もいます。(2色型では、色度が平面ではなく線になる)
2021年12月に打ち上げられたジェイムズ・ウェッブ宇宙望遠鏡は赤外線を観測する宇宙望遠鏡として打ち上げられました。赤方偏移によって赤外線領域にシフトした電磁波を観測することで、宇宙創生初期に形作られた遠方の天体を観測、分析することができます。
「人間の知覚できる色度」をもった可視光はXYZ色空間や、それを行列変換したRGB色空間で全てカバーできるのですが、RGB発光デバイスが、自然の可視光そのままを全て再現できるわけではありません。
これは、自然光(太陽光など)が連続したスペクトルを持っているのに対して、RGB発光デバイスは発光源の3種の波長のスペクトルに分離されてしまう、もしくはさまざまな周波数特性を持つ白色光源からの減色(フィルタリング)による混合のため、連続したスペクトルを持っていないためです。液晶やLED、ブラウン管によってもそのスペクトルは異なります。
また、自然界では単一波長によるイエローやシアンの色が成立しますが、RGBにおいては合成波として作られます。
あくまでも、人間の知覚が三値刺激の処理結果として同じ色としてみなしているだけで、RGBで作られる色は現実と同じ光の波形では無いのです。
sRGBやAdobeRGB、Rec.2020などのSDR/HDRの色空間についても解説する予定ですが、基礎的な色空間の解説だけで予想外のボリュームとなってしまったので、続きはまた後ほど…
(執筆予定メモ)
sRGBとAdobeRGB
HDR規格あれこれ
PQ, HLG, HDR1000, HDR10, Dolby Vision, Rec.2020
H264, H265など動画コーデック
OpenEXRなどの静止画コーデック
HDRコンテンツ製作に必要な機材とソフト
HDRコンテンツ視聴に必要なクライアント
モニタのキャリブレーション
イラストレーションにおけるHDR
erudo_of_sappy
2023-02-26 11:35:43 +0000 UTCガブ太郎
2023-02-17 03:18:08 +0000 UTCガブ太郎
2023-02-11 03:49:52 +0000 UTC