省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

デジタルカメラで撮影から RGB データを得るまで (Aurélien Pierre 氏 ビデオ要約)

 かつて darktable のエンジニアでフィルミックrgb 等の開発者であった Aurélien Pierre 氏が光とカメラのダイナミックレンジに関して理解するための基本について解説したビデオがあります。

youtu.be これはカメラや画像処理の原理に関して理解するのに非常に有益ですが、英語で解説しているのでハードルが高いかもしれません。そこで以下、このビデオの要点を、私による補足も交えながら、かいつまんで紹介します。

 まず、私たちがものを見る光のダイナミックレンジですが、彼によれば 20EV 程度のダイナミックレンジを持っているといいます。それに対しデジタルカメラのセンサーは現代では、10 - 14EV、パソコン等のディスプレイは 8 - 10EV 程度、プリントアウトでは、5 - 7 EV 程度と狭くなっていきます。したがって、広いダイナミックレンジのシーンをどうより狭いデバイスに割り付ける (リマップする) かが問題になります。

 

バイスごとのダイナミックレンジの違い
(左端がブラックポイント、右端がホワイトポイント)

 例えばカメラの場合、絞りを広げたり絞ることで、人間の視覚の 20EV の一部分を切り取ってカメラのセンサーに割り付けます。露出を絞れば明るい部分だけを割り付け、露出を開ければ暗い部分のみ割り付けることになります。

カメラの絞りと、人の目に写った光景のカメラセンサーへのリマップの関係

 なお、この EV という単位ですが、次のようなことになります。まず、明るさと、人間の視覚の関係ですが、光源 (例えば蝋燭) の数を 1本から2本に、2本から4本に増やせば、物理的に光の量 (エネルギー量) も2倍、4倍と増えていきます。

 

光源と明るさの関係

 しかし、視覚の方は光のエネルギー量に比例しません。増えれば増えるほど光への感度が下がります。つまり、知覚的には、上の図のように光量に対して log2 のグラフ状に明るさを感じていきます。この log2 の光量の変化1段階分が 1EV となります。つまり光量が 1EV 上がると、物理的には 2乗分光量が増加するということです。

 

 以上までは明るさのみの説明であり、カラーについての説明が含まれていません。カラーとは光のスペクトラムに対し、人間がどのように感じるかの反応曲線に応じて感じられるものです。物理的に存在するものは光の波長のみで、光の3原色、R, G, B に相当するものは物理的に存在しません。あくまで人間がどう波長を知覚するかという問題になります。

 この光の三原色に対する人間の反応曲線を CIE の XYZ 色空間に対応するようにグラフ化すると下記のような図になります。

 

人間の光のスペクトラムに対する反応
(CIE XYZ色空間に合うよう標準化)
出典: Wikipedia "CIE 1931 Color Space"

 最も波長の短い光は青と、最も波長の長い光は赤と感じられ、その中間は緑と感じられます。但し、赤には、波長の長い部分だけではなく、短い部分にも感度があります。おそらくこの部分がマゼンタ (紫) と感じられる部分と思われます。

 ところでデジタルカメラのセンサーも R, G, B毎にデータを取得していますが、そのカーブは人間の反応曲線とは大幅に異なり、青に対する感度が大幅に低く、緑は高く、赤はさらに感度が高い曲線になっているようです。

 この画像センサーと人間の視覚のずれを埋めるため、センサーから得られた r, g,b 値に3 x 3 のマトリックスを掛けて、人間の反応曲線の結果に近づけるのが、カメラマトリックスです。

 darktable では、一般的なデジタルカメラに適合するマトリックスを適用するようですが、おそらくカメラのセンサーによって微妙な違いが違いがあるのではないかと思いますが..

 さらにベイヤーセンサーの場合、次のようなセンサー構造になっています。

 

ベイヤーセンサー
出典: Wikipedia ベイヤーセンサー

 1ピクセル当たり3原色が揃っているのではなく、1つの原色しかデータを取得しません。そして緑のセンサー2に対し、青と赤のセンサーが1ずつの割合で配置されています。このため、オリジナルの Raw データは緑色になってしまいます。これは Fuji の X-trans センサーでも同じです。ただ、青赤緑の配置の仕方がベイヤーとは異なります。

オリジナルの Rawセンサーデータ画像

 この緑のデータを、各ピクセル毎にrgbデータが揃った形で補間する作業をデモザイクと言います。上のようにベイヤーセンサーは赤青緑のモザイクがあるように見えますが、各ピクセル毎に rgb データを揃えるとモザイクが消えたように見えます。ですのでこの補間過程をデモザイクと言うのです。

-----

※日本では「Raw現像ソフト」と言いますが (英語では raw processing software)、この緑の画像から正常な色の画像を取得するデモザイク過程を現像に例えてこのような名前を付けています。

 なおかつて存在した CCD センサーカメラや販売終了になってしまった Sigma の foveon センサーのカメラは、最初から1ピクセル当たり rgb 揃ったデータを取得しますので、デモザイク過程がありません。Sigma の foeveon センサーのカメラが画質で高く評価される理由には、デモザイク過程がなく、センサーに写ったそのままの画像が得られることにあります。その一方で 1ピクセル当たり rgb の3つのデータを取得するためセンサーの発熱量が多く、現在でも ASP-C どまりでフルサイズのセンサーの開発に成功していません。

----

撮影から画像データが得られるまで

 それはともかく、カメラで撮影してセンサーでデータを得るまでの過程がハードウェア的なら、そのあと、Rawデータを得た後の過程はソフトウェア的過程になります。ただ、ハードウェア的過程で画像を劣化させる要素があります。センサーのノイズ、レンズの歪みやボケ、そして実風景での霧や霞の存在です。それらをなるべくその逆順にソフトウェア過程で補正していきます。

 デモザイク、マトリックス計算が終了すると、リニアな rgb データが得られます。

 ともあれ、リニアなRGB空間で必要な編集作業を行った後、非リニアなデータに変換しそこで必要な編集作業を行います。

 なお、一般的には次のようなトーンカーブを掛けます。

トーンカーブ

 これは何に対応しているかというと、上の、「光源と明るさの関係」の図にある人の知覚反応曲線に対応しています。人の知覚あるいは、フィルムではハイライトと、シャドウ域での諧調の圧縮が起こっているので、それを模しています。ともあれこのような変換はダイナミックレンジの狭いディスプレイを前提としており (SDR)、よりダイナミックレンジの広い出力が可能な HDR では使えません。

 

---

 なお、Aurélien Pierre 氏のビデオを改めてみて一点気になることがありました。TRC とカメラのベースカーブを一緒くたにして説明しているように思われるところがあります。

 TRC は本来はディスプレイの再生カーブの歪みに対応して、ディスプレイ上でリニアな画像を得られるべく、データに補正を掛けるカーブです。同時に、低ビット深度画像においても、人間の目に敏感なシャドウ~ミッド域の諧調数を多めに確保するという意味でも使われます。

 それに対して、カメラのベースカーブはリニアなディスプレイ上の画像においても、ハイライト域やブラックポイント近接域において諧調を圧縮して、ダイナミックレンジの低いディスプレイにおいて、人間の目に自然に見せるためのカーブであると思います。つまり、最終的には TRC + ベースカーブがかかるはずですが、それを一緒くたにしているようです。おそらく darktable 3.x 上では、トーンマッピングを行う際に TRC の適用とトーンカーブの適用を同時に行っているのでそうなっているものと思われますが、この2つは概念的に異なるものと理解しておくべきかと思います。これもネットの情報をざっと見ているだけでは非常にわかりにくいので要注意です。

 なお、TRC の説明に関しては、以下の記事をご覧ください。

yasuo-ssi.hatenablog.com