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

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

写真現像・レタッチソフトにおける、ウェーブレットとは何か?

 フリーウェアのRaw現像ソフトRawTherapeeの高度な機能にウェーブレット (wavelet) があります。ところがRawPediaの説明 をいくら読んでも、何を言っているのか、今ひとつ要領がつかめません。ノイズ処理に良さそうな機能らしい、ぐらいは分かるのですが... ところがdarktable Ver. 3.4のマニュアルを見たらわかりやすい説明が出ていました。この記述を元にウェーブレットは何かを説明してみます。

 darktableのマニュアルによりますと、画像のテクスチュア(模様)を数学的にコンヴォリューションと呼ばれるアルゴリズムで、以下の図のように大まかな模様のパターンから、細かい模様のパターンに数層に分けて分解していくのがウェーブレットの機能です。

f:id:yasuo_ssi:20210129150720j:plain

図1. パターンの分解

  このように、模様のパターンを分けたうえで、特定の細かさの層だけ模様をスムーズにしたり、あるいは模様を強調したりした上で、再び各層を合成して一枚の画像を再構成することにより、ローカルコントラストの強度を調整したり (→解像感を上げる)、あるいは画像の粒子や荒れを低減したりすることができます。

 例えば、荒れた肌の画像の荒れを消して滑らかに見せたい場合、単純に画像にぼかしを掛けてピクセルを平均化することで平滑化することもできますが、これだと肌の荒れが取れたとしても、のっぺりして、いかにもPhotoshopで修正した感がありありと出ます。しかし、ウェーブレットを使うと肌の荒れをとっても自然にきめ細かく見せることが可能です。

 模様のパターンは、具体的にどのように分解されるのでしょうか。以下darktableマニュアル pp. 38-40より引用した写真を掲示します。

f:id:yasuo_ssi:20210129150753j:plain

図2 ウェーブレットで分解された画像

 一番上がオリジナルの画像です。真ん中の左側が最も細かいパターンの層(スケール2層)、その右側が2番目に細かい層(スケール5層)、下側左が3番目の層(スケール6層)、右が4番目の層(スケール8層)です。実際にはもっと細分化されていますが、順番はあくまでサンプル写真のある層の、パターンの細かさの順番です。このようにいくつもの層に分けて模様のパターンを分解し、特定の層のパターンを平滑化したり、強調したりした上で、画像を再合成します。また、パターンに分解しきれない部分が残差画像になります。この残差画像には、例えば、色の情報などがかなり含まれます。

 で、この画像のスケール5層(サンプル中2番目に細かい層)をぼかして再合成すると次のように肌の荒れが改善されます(darktable 3.4マニュアル、pp. 41-2より引用)。

f:id:yasuo_ssi:20210129174536j:plain

図3. 左がオリジナル 右が補正後

 肌の荒れ、ぶつぶつやそばかすが大幅に改善されていますが、肌のテクスチュア自体は失われておらず、のっぺりしていません。いかにも修正したという感じがなくナチュラルです。

 もちろん、逆に特定の層のパターンを強調することで、ローカルコントラストを上げることも可能です。そうすると解像感が増すはずですが、一方上の写真の場合では肌荒れを強調することにもなります。

 ちなみに、darktableでは、ウェーブレットはノイズ低減やコントラスト・イコライザー等いくつかのモジュールに採用されていますが、RawTherapeeのようにウェーブレットのモジュールが独立していません。RawTherapeeでも、いくつかのモジュールのアルゴリズムにウェーブレットが採用されているようですが、それだけでなくマニアックにパラメータを動かしてみたい人用にウェーブレット・モジュールが、高度な機能タブの下に独立して設定されています。

 なおNik Collectionの粒状低減機能を担うDefineもウェーブレット・アルゴリズムを使っているようです。

 

 RawTherapeeのウェーブレット機能の場合、パターンのきめの層を4~10まで変化させることができ、最大以下のパターンで層を分解するようです。

1 (最も小さい) : 2x2ピクセル
2  : 4x4ピクセル
3  : 8x8ピクセル
4  : 16x16ピクセル
5  : 32x32ピクセル
6  : 64x64ピクセル
7  : 128x128ピクセル
8  : 256x256ピクセル
9 (最も大きい) : 512x512ピクセル
エキストラ  : 1024x1024ピクセル

 ここまで理解できると、ようやくRawPediaのウェーブレットの説明を読んで、その記述が何を意味するかが分かるようになるのではないかと思います。私もdarktableのマニュアルを読んで初めて納得がいきました。