RGBワークフローへの道(10)~(darktable3.0第110回)

ダイナミックレンジの課題

アンセルアダムスのゾーンシステムやdarktableのRGBワークフローはダイナミックのレンジの保持を大きな目的としています。今まで、撮影したダイナミックレンジを計測するのは、容易ではなかったのですが、darktable3.0のトーンイコライザーをつかうことで、精度はともかくも、容易にダイナミックレンジの計測が可能になりました。

サンプル1は、前回使ったスマホ河津桜の写真です。ここでは、トーンイコライザーで、一番暗いところを探した結果-1.4EVでした。同様にして一番明るいところを探すと+0.5EVでしてので、ダイナミックレンジは1.9EVになります。

この画像で、極端に明るい部分も、極端に暗い部分もありません。

 

 

f:id:computer_philosopher:20200303080302j:plain

サンプル1

モノクロ写真のダイナミックレンジ

アンセル・アダムスは写真表現においてダイナミックレンジの重要性を指摘し、その解決策としてゾーンシステムを提案しました。アンセル・アダムスは、この課題をモノクロ写真で扱いました。

モノクロ写真でゾーンシステムを扱った理由は次になります。

モノクロ写真では、ポジに比べて、ネガのダイナミックレンジが広かったので、ネガを焼き付けるときに、露光の調整の余地がありました。しかも、モノクロ写真はカメラマンが自分で現像と焼き付けができたので、工夫の余地がありました。一方、フィルム時代のカラー写真は、ネガもポジもダイナミックレンジが狭かったうえに、現像と焼き付けには高価な専用の機材が必要でカメラマンが自分で現像と焼き付けは出来ませんでした。アンセル・アダムスは晩年には、カラー写真のゾーンシステムを考案していたとも言われていますが、今となってはその構想はわまりません。

フイルム時代のカラー写真は、ネガとポジのダイナミックレンジが狭かったため、露出は、単に、標準グレーの位置をシフトする機能として使われました。

一方、デジタルカラー写真の露光調整は、カラーフィルム時代の標準グレーをシフトする機能を引き継いでいます。これは、デジタルカメラのセンサーのダイナミックレンジが、ポジと同じ7~8EV以下であった時代には、合理的だったかもしれませんが、現在の最新のセンサーのダイナミックレンジが14EVであることを考えれば、破綻しています。これをdarktableの開発者の一人であるAurélien PIERREさんはレガシーのワークフローと呼んで批判しています。PIERREさんがこのレガシーのワークフローを打開するために作ったワークフローがRGBワークフローであり、「フィルミックRGB」と「トーンイコライザー」のモジュールです。

デジタルカメラになって、普及品のカメラでは専用のモノクロ写真は、なくなり、モノクロ写真は、RGBセンサーの信号を合成して作成するようになりました。ですから、フィルム時代のようにモノクロ写真のダイナミックレンジがカラー写真のダイナミックレンジより広い訳ではありません。

ここでは、アンセル・アダムスの視点に戻って、まず、モノクロから、ダイナミックレンジが、写真に与える影響を検討してみます。

事例研究

サンプル2は、ダイナミックレンジの変化が画像に与える影響をサンプル1をモノクロに変換した画像を使って示したものです。カラーからモノクロへの変換は、darktableのモノクロームモジュールを使いました。

左上が元の画像です。これを加工したものを右上(1BPP)、左2列目(2BPP)、右2

列目(4BPP)、左3列目(6BPP)、右3列目(8BPP)の順に占めしています。BPPはbits per pixelの略です。これは、基本的にEVと同じになります。変換には、irfanViewを使いました。1BPPでは、元の画像が白黒の2色に変換されています。2BPPでは、4色、4BPPでは16色、6BPPでは64色、8BPPでは256色が使われています。この画像はモノクロなので、ここで色というのは、グレーの濃淡の違いをさします。元の画像と加工した画像を比べると、BPPの大きな画像が元の画像に近く、BPPが小さくなるにつれて画像のトーンの情報が失われていくことがわかります。Jpegでは、画像データはRGBの各チャンネル8ビットなので、1つのチャンネルについては、8BPPまでのデータを表現できます。ですので、8BPPの画像は、元の画像と同じ情報量を持つことができますが、6BPPになると、一部トーンが失われてしまいます。アダムスは良い写真とはトーンが保存されている写真であり、ダイナミックレンジが広く取られている写真であると考えました。

 

f:id:computer_philosopher:20200303080330j:plain

サンプル2

 Jpegのように、8BPPを使えば、明るい白から、暗い黒まで、256段階の濃淡を表すことができます。実際のフレーム中の光に、明るい白から、暗い黒までが含まれていれば、ピクセルの値は0から255をとることになります。しかし、実際には、フレームの中の光が、暗すぎたり、明るすぎたりする場合があります。カメラは、露光を調整して、センサーに入る光の量が大きすぎたり、小さすぎたりしないように調整します。元のフレームのダイナミックレンジが8EV以下であれば、すべてのピクセルに0から255の値を実際のフレームの光量の大小の順番が保持されるように割り当てることが可能です。しかし、元のフレームのダイナミックレンジが8EVを超えている場合は、白飛びまたは、黒飛が起きます。または、光量の異なるピクセルに同じ値が割り当てられます。たとえば、一番極端な右上の1BPPの画像では、全てのピクセルの値は、白か黒の2種類に集約され、中間トーンは失われています。

以下であれば、カメラは、ピクセルの信号の平均値が18%のグレーになるように、現像します。こうすると明るいフレームは実際より暗く、暗いフレーム実際より明るく写ります。この場合に、露光を調整して、ピクセルの値を実際に近づけることは出来ますが、白飛び、黒飛びが起こるか、中間のトーンが失われます。

結局、実際のフレームの光のダイナミックレンジが、8EVを超える場合には、どのような変換関数を作って、8EVに落とし込むかが問題になります。より正確に言えば、0から255までの8EVを全部使うことは、Jpegの中に、極端に明るいピクセルと極点に暗いピクセルが含まれることになります。しかし、実際のフレームの中の光が、この条件を満たしていない場合、例えば、全体が明るかったり、暗かったりする場合には、極端に明るいピクセルまたは、極端に暗いピクセルを欠いているように変換しないと実際と雰囲気が全く合わなくなります。かといって、8EVの大部分を使わずにスマホのように例えば2EV以下に変換してしまうと、中間トーンが失われることになります。もちろん、サンプル2はモノクロで1チャンネルしかないので、3チャンネルあるカラーでは、中間トーンの劣化は目立ちにくくなりますが、起こっている現象は同じです。

サンプル1の画像では、桜と筑波山がテーマなので、ほんといは筑波山の周辺のトーンがきれいに再現できるとより良い写真になるはずです。

f:id:computer_philosopher:20200303080351j:plain

サンプル3

 

サンプル3は、筑波山のトーンの再現を試みてみました。左が、サンプル1と同じ画像で、右がフィルミックRGBをかけた画像です。この画像は、スマホの画像なので、RAWでなくJpegしかデータはありませんので、フィルミックRGBの想定外の利用法になります。ただ、トーン再現の感じはつかめると思います。加工により、逆に手前の薄茶色の草地はトーンが失われていますが、ここは主題ではないので、無視しています。