[PR]テレビ番組表
今夜の番組チェック

デジタルカメラの階調表現の改善(パート2)

皆さん、こんにちは。管理人のJunZです。

先日はデジタルカメラの階調表現の改善ということで、露出条件を変えた3枚の写真をレイヤー合成してダイナミックレンジを広げる実験を行いました。結果としてはそれなりの効果はありましたが、あの方法はあくまで簡易的なもので理論的な裏付けが薄かったです。そこで、今回はデータの裏付けもあわせてバージョンアップを試みました。

まずは手持ちのカメラの特性を調べる

データの裏付けをとる、ということで、まずは被写体の明るさ対データ化した際の数値の相関関係を調べてみました。調査対象はニコンCoolPix950です。方法の概略は、


1.適正露出と露出補正を加えたいくつかの条件で、被写体の明るさを段階的に変化させた写真を撮影する。
2.撮影した画像をPhotoShopで開いて、画面の何箇所かでサンプリングしたポイントにおけるR、G、Bのデータを測定する。
3.露出の条件と被写体の明るさからその時のEV値を、RGBのデータから二乗平均をとって明るさデータを求め、グラフ化する。


というステップになります。具体的には、

1) スライドコピーアダプタの拡散板を利用して、平均的に白い画面をわざとピントを外して撮影する。
2) 手元にあった何枚かのPLフィルタを集めて、撮影時に重ねる枚数を1枚、2枚、3枚、4枚と変化させる。

という手段をとりました。

今回苦労したのは、CoolPix950が当時のフラッグシップ機だった割にはプログラムAE、絞り優先AE、シャッター優先AEの3つだけでマニュアル露出モードが無いという点でした。ですので任意の条件で露出を固定することができません。でも不幸中の幸いでAEロック/AWBロックの機能はありましたので、今回は、PLフィルタ2枚がさねの条件のときに、AEロックさせてその条件のままでPLフィルタを増やしたり減らしたりして撮影する、という方法をとりました。

このようにして得られたのが次のグラフです。適正露出、+1補正、−1補正、−2補正の4つの条件でデータをとりましたが、ご覧のように比較的素直なリニアな関係になっています。

このグラフから判ることとしては、以下の項目が挙げられます。

・クールピクスが1枚の画面で表現できる明るさの幅は約6EV分である。
・データの最大値の半分の128が上記6EVの幅の中央というわけではなく、明るいほうにシフトしている。
−>これは通常のカメラはおよそ20%のグレーを基準にして露出を決定するという点から言っても合理的な結果だと思います。
・したがって、適正露出時は明るいほうで2EV、暗いほうで4EV分の明るさのレンジが表現できる。
・露出補正によってシフトされるデータ量は、40〜50程度である。

ちなみに、同様な実験で得られた、カシオ計算機:QV-8000SXのデータがこちらです。

クールピクスと比べて明るさに対する変化の様子がリニアになっていないことが判ります。多分これは画像生成の際の味付け(ノウハウ)だと思いますので良い/悪いの判断はできないでしょう。
あと、意外だったのは、クールピクスに比べて多少CCDの画素ピッチはこちらのほうが1割ほど大きいのですが、表現できる明るさの範囲としてはあまり差が無い(あえて言えばQVの方が少し広いか?という程度)という点です。

次に、画像の合成

さて、明るさ対数値のデータをとって何がしたかったかというと、要するに露出ブラケット撮影した複数枚の画像を統合する際に、データの値でいうとどの辺の部分で切り替えればよいか?ということを知りたかったのです。

つまり、マイナス補正の画像とプラス補正の画像をうまく組み合わせることで通常6EV程度のダイナミックレンジを約7EV相当に拡大するというのが狙いですが、マイナス補正の画像のどの値とプラス補正の画像のどの値が同じ明るさの被写体に相当するかを見極めるのが目的です。その見極めを誤ると、途中で階調が反転するおかしな画像になってしまいます。

前回の実験では、とりあえずいい加減に「真ん中の128」で切り替えていましたので、今回は、その辺をもう少し詰めよう、という訳。

今回用意したサンプル画像はこれです。とりあえず明暗差が激しい被写体、ということで明るく照らされたビルと日の当たらない高架下が一緒に写るように撮影してみました。写真自体の良し悪しはこの際横に置いておいてください。

露出補正無し

+1補正

−1補正

手始めにまず露出補正無しの画像をレタッチソフトで開きます。なるべく違和感なく合成するため、ヒストグラムの山がなるべく低いところで切り替えるのが得策だと思うので、これを調べるためです。ということで、ヒストグラムを見るだけで実際にレベル補正はここでは行ないません。このサンプル画像ではだいたい160のあたりが山が低そうですのでここで画像を切り替えることにしましょう。


適正露出時の160は上で調べたグラフによれば、−1補正の114、+1補正の204とそれぞれ同じ明るさに相当しますので、となると、−1補正の画像から114から255の範囲のデータと、+1補正の画像から0から204の範囲のデータを取り出すことになります。

次に、切り替えポイントの明るさデータをどこで落としこむかの決定です。

結局のところ、0から204までの205段階と114から255の141段階、合わせて346段階の階調を256階調にギュッと押し込めようという訳ですので、切り替えポイントは、

205/346*256=152

となります。まとめると、

+1補正の画像から0から204の範囲のデータを抜き出して、0から151まで

−1補正の画像から114から255範囲のデータを抜き出して、152から255まで

にそれぞれ割り当てて新しい画像を合成すれば良い、ということです。

まず、+1補正の画像から暗い部分を抜き出しましょう。といいますか、明るい部分を飛ばしてしまう、というのが正しいかも。

0から204とは言っても、理屈の上での話ですので、そうそううまく切り替わるとは思えませんので、多少はターンオーバーの部分を持たせる、という意味でこんな感じでトーンカーブを調整します。

トーンカーブ

調整後の画像

同様に、−1補正の画像から明るい部分を抜き出します。(暗い部分をつぶしてしまう。)

トーンカーブ

調整後の画像

で、次に両者をドッキングさせます。上で計算した152という数値は、256に対して約59%ですので、従って+1補正の画像の上に、−1補正の画像を不透明度41%にして重ねてみます。

レイヤー

合成後の画像

結果として得られた画像は如何にも「眠い(メリハリのはっきりしない)」画像ですが、それでも確かに白トビや黒ツブレは軽減されていることはわかります。

元画像のハイライト部分

合成画像のハイライト部分

元画像の暗い部分

合成画像の暗い部分

最後はちょっとお化粧

とは言っても、このままではあまりに眠すぎるので、ちょっとレベル調整やトーンカーブ調整などですこしメリハリを付ける必要がありそうですね。

あともうひとつの副作用として、明るさ情報を圧縮した結果、各色成分毎の明るさの差までも圧縮されてしまったようで、結果として彩度まで下がってしまった観があります。そこで、彩度についてもちょっと調整の必要がありそうです。そこでこんな感じで調整してみました。

最終的にはこんな感じになりました。

元画像

合成&調整後の画像

元画像のハイライト部分

合成画像のハイライト部分

元画像の暗い部分

合成画像の暗い部分

なんだかんだ言っておいて、結局最後はKKD(勘と経験と度胸)になってしまったのが悔しいのですが、それでもなんとか階調表現がそれなりに改善された様に思います。

感想

でも、こんな面倒くさいことを毎回やるくらいなら、ワイドレンジショット機能付きのDSC-MZ1を買うか、ハイビットのフィルムスキャナを利用するほうが良いな、というのが正直な感想です。デジタルカメラもX軸Y軸の画素数ばかり上げていないで、こういうZ軸の明るさ表現の改善もきちんと行なって欲しいものですね。

それでは、また次回をお楽しみに

J's Loftトップに戻る