まとめ
- 人間の色覚特性を考慮したもの:Luminance(輝度), Luma(日本語訳なし)
- 人間の色覚特性を考慮しないもの:Value(明度), Brightness(明度),Lightness(輝度), Intensity(輝度)
- 一般的には色覚特性を考慮したものを輝度、考慮していないものを明度と呼ぶことが多い
- 銀塩白黒フィルムは殆ど人間の色覚特性を考慮していない明るさが記録される
- イメージセンサ自体は殆ど人間の色覚特性を考慮していない明るさが記録される
- グリザイユ画法の明るさと色って何を指しているのかな?
はじめに
殆どの人間の知覚する色は、いい感じに波長の離れた3色、例えばRed, Green, Blueによって表現することができます。
自然に存在する色はもっと豊富ですが、殆どの人間は分光特性の異なる3つの網膜細胞(L錐体、M錐体、S錐体)しか持っていない(明るい光の場合)3色色覚なので、この3つの色の割合で色を騙すことができます。
そのため人間向けディスプレイは通常、RGB3つの組み合わせの色しか出せないので、そういうディスプレイの表示する光の分布と実際の自然光の分布は異なります。
蟹とかカラスがテレビを見るようになれば、色の再現性に文句を言うようになるでしょう。
よって人類は実用に使うあらゆる種類の光をR,G,B1の強さで示すことにしました。いーちこぱーちこ。
とはならない。
明るさ
人間には明るい、暗いという光の強さを知覚する能力があります。ここではこれを「明るさ」と呼びます。
以降、明るさという言葉は、特定の指標ではなく、日常的な感覚を示す言葉として使用します。
そして、この明るさをRGBから算出する方法がたくさんあります。多すぎて対応する日本語がありません。また、それぞれの定義も媒体によって様々です。
少しずつ見ていきますが、指標はGIMPの公式ドキュメントを元にしており、wikipedia等の記述とは異なる場合があります。それだけ混乱しています。
比較用に画像を用意しています。元画像のサイト
人間の色覚特性を考慮しないもの
Intensity
Y = (R + G + B)/3
平均です。
日本語では強度と言ったり、輝度といったり明度と言ったりします。
これを輝度と呼ぶ日本語版wikipediaのHSIのページは混乱を呼ぶと思います。
HSI色空間のIはこれで算出されるのか?
Value/Brightness
値の最大値です。
日本語では明度と呼びます。
HSV/HSB色空間のV/Bです。
Lightness
Y = (max(R,G,B) + min(R,G,B))/2
最大値と最小値の平均。
日本語では輝度と呼んだりしていますが、これも混乱のもとだと思います。
HSLのLです。
HSIのIだともwikipediaには書いてありました。どっちだよ。
人間の色覚特性を考慮したもの
殆どの人間の錐体細胞の分布は、M錐体>L錐体>S錐体になっています。よって同じ明るさの光であっても、緑色の光は強く、赤い光はそこそこ、青い光は暗く知覚されます。
これを考慮した指標が以下です。
Luma
Y = 0.22*R + 0.72*G + 0.06B
各色の重み付け平均です。
重みは規格によって異なります。例はGIMPのもの。
日本語では相対輝度と呼ばれます。
アナログテレビや、JPEGで使用されています。
Luminance
R',G',B' = 逆ガンマ補正(R,G,B)
Y' = 0.22*R' + 0.72*G' + 0.06B'
Y = ガンマ補正(Y')
ガンマ補正の影響を取り除いたLumaです。
20世紀の初頭にテレビを作った人たちは、ブラウン管には暗いところがより暗く見える特性があることに気づきました。テレビ側で補正するのが面倒なため、放送局の画像データの方を明るく補正することで解決しました。これをガンマ補正と呼びます。
それ以降、世のディスプレイと名のつく機器は全て暗っぽく映し、映像データは全て明るく補正されることになりました。しかしながら、この補正は線形ではないため、画像データを元に明るさを求めても、それがディスプレイ上での明るさと同一にならないことになります。
そこで、明るさの算出をする前後で一旦ガンマ補正を解除した上で計算するようにしたものがLuminanceです。
重みは規格によって異なります。例はGIMPのもの。
日本語では輝度と呼ばれます。
一般的に最も気の利いた明るさの指標だと呼ばれています。
モノクロ銀塩写真の明るさ
昨今では、ディジタル画像をモノクロ化して、フィルム写真風にすることがありますが、その際行う処理は、人間の色覚特性を考慮するべきなのでしょうか?
モノクロ銀塩写真、つまりモノクロフィルムの写真は、明るさの情報を記録します。
具体的に、何を記録してるのでしょうか?
写真フィルムは、臭化銀が光によって還元され、銀になることで像を生みます。臭化銀の分光感度特性を調べて見ましょう。
ハロゲン化銀/有機色素界面の電子状態より引用
一番上のAgBrを見てみると、500nm以下の波長の光にしか感光しません。
これは、臭化銀をそのまま使っていた最初期のフィルムを表しています。
その後、感光材料に色素を加えることで、若干、長い波長にも感光特性が広がったものがA,B。19世紀後半から20世紀前半までのフィルム(オルソクロマチックorthochromatic)が該当します。
古いフィルムについては、Bの成分の重みが大きいものだと考えていいでしょう。
より現代的なフィルム(パンクロマチックpanchdomatic)ではどうでしょうか
可視光全体に感光領域が広がっています。
しかしながら、波長の長いものから短いものへと感度が下がっています。
直感的にはエネルギーの高い短波長の色のほうが感度が高そうですが、何か量子力学的な仕組みがあるのでしょうか。
感度特性的にはR>G>Bとなり、人間の色覚特性とは異なることがわかります。
もしかしたら、それほど反応には差が無く、殆どフラットなのかもしれません。
どちらにせよ、モノクロフィルム風画像を作る際は、人間の色覚特性を考慮した変換(Luminance的)な変換は使わないほうが良いということでしょう。
ハロゲン化銀写真材の最高感度について(ハロゲン化銀の分光感度特性)より引用
イメージセンサの明るさ
CCDイメージセンサやCMOSイメージセンサも受光素子はフォトダイオードと呼ばれるものです。
一般的なカメラでは、カラーフィルタを用いてカラー写真を作りますが、産業用カメラや、一部のマニアックなカメラでは、明るさのみを記録するものがあります。
この分光感度特性はどうでしょうか。
浜松フォトニクス Siフォトダイオードより引用
可視光の部分では波長に対してリニアです。
Sony IMX183 特徴より引用
産業用カメラですが、まあ、似たりよったりの特性です。
まとめると、センサー単体ではR>G>Bの特性を持っています。
しかしながら、この分光感度特性は、色のついたフィルターを貼るだけで変化します。
次の写真は、ゲームボーイのPocket Cameraというソフトで撮影したものです。
Pocket Cameraには三菱電機の人工網膜センサー(M64283FP)という名前負けのCMOSイメージセンサと画像処理エンジンが1chipになったLSIが載っています。
1998年発売でCMOSを使っているところがチャーミングですね。
これを見ると、Y>C=M>G=R>Bとなっていることから、分光特性は
G=R>B
であることがわかります。多分黄色のフィルターが貼ってあるのでしょう。
次の例は、Leica M Monochrom (Type 246)というレンズ別売で100万円以上するグレースケールオンリーのカメラの分光特性です。
Leica Monochrom Sensor Spectral Responseより引用
こちらはだいぶ補正されて、人間の色覚特性に近いG>R>Bが実現できています。
どちらかというとリニアな特性を持つフィルム的写真を目指すならこのLuminance的特性はどうなのかと思いますが・・・
グリザイユ画法
grisaille,本来は陰影のみをつけた絵画を指す言葉ですが、日本語では専らディジタルイラストの技法として「明るさだけを書いたレイヤーに、色のレイヤーを乗っけていく描き方」を指す言葉になっています。
ざっっくりまとめると「イラストの着色において、色と明るさの工程を分離すること」ですね
また明るさです。しかも今回は色もついてきます。
私は趣味でイラストを描きますが、グリザイユ画法がしっくり来たことが一度もありません。ここで一つ、向き合ってみましょう。
明るさじゃないし、色じゃない
グリザイユ画法では明るさのレイヤーと色のレイヤーを、乗算、オーバレイ、ハードライトで合成することが一般的らしいです。
GIMPのドキュメントによると(Eは出力、Mはマスク画像、Iは入力画像、それぞれRGBの値。四則演算はそれぞれの値に対して行う)
乗算 Multiply
E = M*I/255
オーバーレイ Overlay
E = (I/255)*(I + 2*M/255 * (255 - I))
ハードライト Hardlight
E = 255 - (255-2*(M-128))*(255-I)/256 if M > 128
E = 2*M*I/256 if M <= 128
詳細はともかく、上記の合成では、明るさのレイヤーの色や、色のレイヤーの明るさが混ざってしまう。
これのどこが色と明るさの分離だろうか。
この方法では合成後の色を想像するのが難しいため、適切な明るさ・色の塗り方を考えることが困難である。
理解できるグリザイユの手法
レイヤー合成には、HS[VIL]やLuminanceで合成するモードがある。これを使えば、正しく明るさと色の分離が可能だ。やってみよう。
- 元画像
- 明るさを塗ったレイヤー(ここではLuminance変換)
- 色をぬったレイヤー (影をつけない、固有色と呼ばれる色。影に見える真っ黒の部分も色相は同じ)
4.明るさのレイヤーをLuminanceモードで合成
くすんだように見える。つまり彩度が低い。
人間の肌みたいなものは、影になった部分のほうが彩度が高いことが多い(理由?)
そのため影になる部分の彩度を調整しなくてはならないが、色のレイヤーで一緒くたにしてしまったのが原因である。
だが、色のレイヤーで影になる部分の彩度を色を変えて塗り直すのならば、はじめから明るさも込みで影を塗ればよいではないか。全くの二度手間である。
luminanceの小さい部分の彩度が高いという経験則があるのならば、luminanceの情報を彩度にコピーすればよいではないか。
GIMPにはチャンネル合成(compose)という機能があり、RGBやHSVなどをそれぞれグレースケールの画像にバラバラにしたり、まとめて元の色に戻すような機能がある。
luminanceを彩度にコピーして、色のレイヤーから色相を合成
改善しなかった。いくら明るさと彩度に関連があるといっても代替できるようなものではないらしい。
本来必要な色のレイヤー、つまり色相と彩度を含めたものは以下
どことなく水性ペンで書いたみたいな雰囲気である。
でも影の部分を二度書くことになるし、この色を狙って描くのは難しいでしょう。
結局、この方法でも合成後の画像をイメージするのが難しいという点は改善されなかったし、影を二度描く必要も生じています
おわりに
明度や輝度といった明るさを表す言葉は、画像処理、写真、イラストで日常的に使われていますが、それの指すものについては混乱が見られます。
そのためモノクロ写真の階調やイラストのグリザイユ画法といった分野別の話題でも共通理解が上手く行っていないところがあります。
特にグリザイユ画法については、RGBやHSVまで立ち返っての原理の説明が必要とされていると思います。
-
具体的な波長は調べていませんが、恣意的に決定して、人類間で統一すればいい。 ↩