About Noise Reduction/jp
序文
ローカル編集のノイズ除去と共に、RawTherapeeの他のタブ(ディテールタブ及び高度な機能タブ(ウェーブレット))に属するノイズ除去機能の概要をまとめておけば参照する際に便利です。更に使っているアルゴリズムについても追加的な説明をします。この項はRawPediaの中のノイズ低減・除去に関する他の説明を補完することが目的です。
RawTherapeeにはノイズを減らすためのツールが幾つかあります:2012年にEmil Martinecが初めに設計した機能は、"Ftblockdn.cc"に収められています。
- RGBモードのウェーブレット
- フーリエ変換(DCT:離散コサイン変換)
その他の機能
- ガイド付きフィルタ
- メディアンフィルタ
- 平滑化フィルタ
- ガウスのぼかし
- ダークフレーム
- ホット/デッドピクセル、など
最初の2つの機能(ウェーブレット変換とフーリエ変換)について説明します。
2008年から2012年にかけてE.Martinecが設計したオリジナルモジュール
〈ウェーブレットのレベル〉や〈ローカル編集〉のモジュールは、プログラムの他の機能でも呼び出すことのある基本的関数(ウェーブレット変換、DCT:離散コサイン変換)で構成されています。これらの関数は、当初より以下の目的のために使われていました:
- ウェーブレット変換による処理:
- 画像全体に対する作用、例えば、分解されたレベル全て、及び輝度や色度の値の全てに対して、同一の働きをする。
- 分解された各レベルで、MAD(平均絶対偏差)を使った全体的なノイズの査定
- 1つ、或いは2つのモードの備え(“控え目”と“積極的”)
- 輝度ノイズに関するフーリエ変換処理は、DCT(離散コサイン変換)を使って残差ノイズ(元画像のノイズとウェーブレット変換で分解したレベルのノイズの差)を処理。
これら2つの機能はメインのモジュール(ディテールタブのノイズ低減)に組み入れられました:
- 輝度ノイズと色ノイズの処理をそれぞれのスライダーで行う。
- ウェーブレットとDCTの処理は、メモリー消費を抑えるため、自動で画像を小片に分けて行う。
留意点:当初、“ノイズ低減”のモジュールは全処理工程の最後にありました(E.MartinesとM.Lorensと共同で開発したPerfectRAWも同じでした)。
2012年から2020年にかけて行われたモジュールの改良
この期間にIngo WeyrichとJacques Desmisが幾つか改良を加えました:
- 分解したレベルごとにノイズ除去を行う。
- 輝度と色を考慮してピクセルレベルでノイズ除去を行う。
- DCTフーリエ変換処理を色の処理に拡張。
- エッジ効果を考慮するためにDCTしきい値を追加(元々のアルゴリズムはARTによる)。
全体的なノイズ低減(ディテールタブ)の改良
- ノイズ圧縮設定の自動計算。
- 輝度ノイズと色ノイズをより細かく処理するためのカーブを2つ追加;Y軸=振幅、X軸=輝度或いは色の強度値。
- RGBモードでのノイズ低減に加え、L*a*b*モードでのノイズ低減処理。
- メディアンフィルタの追加
パッチをベースにしたノイズ除去とも呼ばれる"ノンローカルミーン"(ローカル編集タブ) でノイズ除去機能を向上 2021年2月
- このアルゴリズム(オリジナルは2014年のIpol [1])はAlberto GriggioによってARTに移植され、その後Ingo Weyrichが改良を加え、Jacques DesmisがRawTherapeeに採用しました。
- パッチベースのノイズ除去とは?通常のノイズフィルタは、目標とするピクセルの周辺ピクセルの値の平均をベースにノイズを減らします。一方、ノンローカルミーンフィルタによるノイズの除去は、画像の全ピクセル値の平均を使い、目標とするピクセルとの類似性を考慮してノイズ除去処理の重みを変えます。こちらのフィルタの方が周辺ピクセルの平均値を使うフィルタに比べ詳細の損失が少ないと言う利点があります。
幾つかの所見
ノイズ除去はよく取り上げられるテーマで、多くの場合、論議を呼びます。ノイズ除去の方法や機能に関しては、多くが独断的であったり、押し問答になったりします。当方の立場はあくまで実践的です。重要なのは結果が良いか悪いかです。
ノイズ除去を処理工程の中のどこに置くか
ノイズ除去のモジュールは処理工程の先頭に置くのが良いか、それとも最後か?それぞれに、長所と短所があります。
- 先頭に置く:この場合、ノイズ除去が線形モードで実行されますが、その後の画像処理(シャープニング、露光補正、色度調整。。。)でノイズが増えたり、画質が変化したりするかもしれない、と言うことは考慮出来ません。結果的に、ノイズに関する処理が行き過ぎになる傾向があります。
- 最後に置く:先頭に置くのと異なり、画像処理(シャープニング、露光補正、色度調整。。。)で増幅された、或いは編集初期から存在したノイズやアーティファクトも処理出来ますが、非線形的な処理しか出来ません。
- 理想的なのは上記2つを組み合わせることです。先頭に置いたノイズ除去で必要最小限の処理を行い、最後に置いたノイズ除去で編集の途中で発生したノイズを処理することです。
作業色空間はRGBが良いか、それともL*a*b*
この点でも、それぞれ、長所と短所があるので実践的な判断をします。
- 理論的には、線形処理ができるRGBの方が好ましいモードです。主な理由はMAD(平均絶対偏差)のノイズ査定が優れているからです。しかし、ノイズの映りに対する私たちの目や脳の反応は、CAM(色の見えモデル)と似ていることを覚えておいて下さい。例えば、同じ程度のノイズであっても背景色がブラック、グレー、ホワイト、或いはその色や彩度によって認識が変わるのです。
- 一方、L*a*b*モードでのノイズ除去は、コントラストと輝度の管理機能(ガンマ補正、コントラストカーブ、スライダーなど)の追加が必要になりますが、多くの場合はこちらのモードの方が良い結果を生みます。加えて、L*a*b*の方が、色ノイズの判別がいいようです。
ウェーブレットの詳細レベル数は幾つが適切か
- ノイズ除去に関しては、初めの4つの詳細レベルだけへの処理で十分であると、よく言われます。これは、“色の見えモデル”を考慮するのであれば、輝度ノイズの処理としては正しいでしょう。
- しかし、ノイズ低減機能を詳細レベル4より上のレベルに適用すると、間違いなく違いが見られます。
- 色ノイズに関しては、色のピクセルが広く分布したノイズであれば初めの4つの詳細レベルで処理するのが適当でしょう。しかし、ブロッチノイズに関しては、詳細レベル7までの処理が必要です。
RawTherapeeの各ノイズ低減機能の主な特徴
ノイズ低減(場所:ディテールタブ)
- 詳細レベルごとに作用の違いはありません。
- 輝度に関してはピクセルごとに作用の違いがあります。
- 輝度に関しては5つの分解レベル、色ノイズに関しては6つの詳細レベルを使います。
- DCT(離散コサイン変換)は輝度ノイズの処理だけに使います。
- DCTのしきい値スライダーはありません。
- ウェーブレット変換で自動的に画像を小片に分割します。
- 自動調整オプションが付いています。
ノイズ除去&リファイン(場所:高度な機能タブのウェーブレット)
- 輝度及び色に関しては詳細レベル(最も小さいディテールのレベル~最も大きなディテールのレベル)ごとに作用に違いを付けられます。
- 輝度に関してはピクセルごとに作用の違いがあり、色相を考慮することも出来ます。
- 輝度に関しては6つの分解レベル、色ノイズに関しても6つの詳細レベルを使います。
- 詳細レベルに応じて、ローカルコントラストに違いを付けられます。
- DCT(離散コサイン変換)は使いません。
- 画像を小片に分割するオプションがあります。
ぼかし/質感&ノイズ除去(場所:ローカル編集タブ)
- 輝度及び色に関しては詳細レベル(最も小さいディテールのレベル~最も大きなディテールのレベル)ごとに作用に違いを付けられます。
- 輝度に関してはピクセルごとに作用の違いがあり、色相を考慮することも出来ます。
- 輝度に関しては7つの分解レベル、色ノイズに関しても7つの詳細レベルを使います。
- 輝度ノイズと色ノイズの処理にDCT(離散コサイン変換)を使います。
- 輝度ノイズと色ノイズに関するDCTのしきい値スライダーがあります。
- マスクを使ってノイズ除去を行う前の画像の全体、或いは部分的な詳細の復元が出来ます。
- ノイズ除去を行う部分を選択出来ます(RT-スポット)。
- ΔEとマスクで処理を適用する部分をより的確に選択することが出来ます(RT-スポット)。
- 除外モードのRT-スポットを使ってノイズ処理を行った部分を元に戻すことが出来ます。
- 画像を小片に分割する機能はありません。従って画像全体を対象にした処理ではメモリー消費量が非常に大きくなります。画像の大きさが30Mb以上の場合、プログラムをクラッシュさせずに使うには8Gb以上のRAM容量が必要でしょう。
どのモジュールを使うべきか
画像の一部でノイズ除去を行う場合は、明らかにローカル編集の“ぼかし/質感&ノイズ除去”を使うことになりますが、画像全体を対象にする場合は、難しい選択です。それでも:
- センサーが小さい古いタイプのカメラで撮影したノイズの多い画像であれば、基本的にはディテールタブの“ノイズ低減”機能を使うのがよく、また使い易いと思います。
- 最近のカメラを使って撮影したノイズが少ないrawファイルであれば、編集操作は多少複雑になりますが、“ぼかし/質感&ノイズ除去”を使う方が遥かに総合的な処理が出来ます。
- ウェーブレットのレベルの“ノイズ除去とリファイン”は、ウェーブレット変換を使う他の機能と部分的には同じインターフェースなので、ウェーブレット機能の他の変数と併せて調節できるという利便性があります。
- これら3つ全てのノイズ除去機能を全て使うことがベストではありません。ノイズの多い画像に関しては、ノイズ低減とその他2つのどちらかを組み合わせて使うことを奨めます。
“ローカル編集”のノイズ除去
処理のステップ
(メニューに表示されている順で説明します)
ローカル編集のノイズ除去機能は以下の特徴があります:
- 詳細レベルごとのノイズ除去機能
- 画像の構造に応じて(均質、或いは詳細のある)、ノイズ除去作用に差を付ける
ウェーブレットでの処理を使う積極的・控え目モード
必ずしも“積極的”なモードの設定は“控え目”モードに比べて、画像の詳細が失われるということはありません。輝度ノイズと色ノイズの除去の強さの設定次第です。また、場合によっては、2つとも強さを低く設定することで結果が良くなることがあります。但し、その場合は、処理時間が明らかに増加します。
ウェーブレットでの処理を使うレベルごとの輝度ノイズ除去
X軸は詳細レベル(左から右へ0~6)を表し、Y軸は各詳細レベルに適用されるノイズ除去の強さです。
輝度の詳細の復元(DCT-フーリエ変換とウェーブレットによる処理)
ノイズ除去で失われた輝度の詳細を復元するスライダーです。ウェーブレットを使ってノイズ除去を行った画像と元画像のL*a*b*の構成要素L*の差を考慮するためにフーリエ変換を使います。スライダーの値を0に設定することは避けます。その場合、フーリエ変換がノイズに対し極端に強い影響を及ぼし、3つのイコライザによる効果が無くなってしまうからです。スライダーを右に動かすほど、DCT(離散コサイン変換)の作用が弱まり、より多くの輝度の詳細が復元されます。
白黒イコライザ(ウェーブレットによる処理の前のデータを使う)
“ノイズ低減”機能の輝度カーブを単純化したスライダーです。画像の暗い部分か、明るい部分に重点を置いてノイズ除去を行います。“詳細レベルの輝度ノイズ除去”カーブがスライダーの値に応じて調整されます。
色相イコライザによるノイズ除去(ウェーブレットによる処理の前のデータを使う)
このスライダーで画像の色(色相)に応じて、 “詳細レベルの輝度ノイズ除去”のカーブの作用が増減します。
輝度マスクをベースにしたノイズ除去(ウェーブレットによる処理の前のデータを使う)
- “マスクと調節(ぼかし&ノイズ除去)”のマスクを有効にします(✔を入れる)。
- L(L)カーブ、LC(H)カーブの何れか、或いは両方を有効にします。
- “暗い部分の輝度のしきい値”は、暗い部分でノイズ除去を行う輝度領域を決めるスライダーです。しきい値以下の領域では、“詳細レベルによる輝度ノイズ除去”の作用が強まります。
- “明るい部分の輝度のしきい値”は、明るい部分でノイズ除去を行う輝度領域を決めるスライダーです。しきい値以上の領域では、“詳細レベルによる輝度ノイズ除去”の作用が強まります。
- 両方のしきい値の間の領域に関しては、カーブの設定に応じてノイズ除去が作用します。
- 明るい部分と暗い部分でのノイズ除去を強化する機能です。
画像の中に均質な暗い部分と明るい部分のどちらかが、或いはその両方がある、などに応じてプレビューの表示が変わります。もしも画像がほぼ完璧に均質な暗い部分を持っている場合、該当するマスクの背景は完全なブラック(L*=0)になります。暗い部分が完全に均質ではない場合は、L*の値は0以外になります。スライダーの値が1以上の場合、暗い部分・明るい部分・均質性のある部分で、ノイズ除去カーブの作用は漸進的に増加し、1より小さい場合は作用が減少します。
”エッジ検出‐DCT”及び輝度と色の詳細のしきい値(DCT-フーリエ変換とウェーブレットによる処理)
このスライダーは、均質な部分と詳細がある部分の間で作用に違いを持たせるため、元画像のエッジ効果を考慮します。2つのアルゴリズム(両方ともARTからのもの)が使えます。
- "輝度と色の詳細のしきい値(DCT)" – デモザイク処理で違いをつける機能に似ています。
- "ラプラス変換"オプション
- 初めのスライダーは右に動かすほど作用が漸進的になります。2つ目のオプションを使うと作用がより選択的になります、特に初めのスライダー値が最大に近い場合。
ノンローカルミーン – パッチをベースにしたノイズ除去
単独で使うことも、ウェーブレットやDCT(離散コサイン変換)のノイズ除去と併用することも出来ます。画像の均質な部分と質感のある部分で、ノイズ除去の作用に差を付けるのが特徴です。
低い番手レベルの色ノイズ除去(ウェーブレットを使う)
このスライダーは分解された最初の4つのレベルに作用します。通常、画像のドットや色ノイズの低減に使います。
高い番手レベルの色ノイズ除去(ウェーブレットを使う)
このスライダーは分解された最後の3つのレベルに作用します。通常、色のブロッチノイズやパケットノイズの低減に使います。
ブルー/イエロー、レッド/グリーンのイコライザ(ウェーブレットを使う)
色ノイズ処理の重点配分を変えます。
色の詳細の復元(DCT-フーリエ変換とウェーブレットによる処理)
ノイズ除去で失われた色の詳細を復元するスライダーです。ウェーブレットを使ってノイズ除去を行った画像と元画像のL*a*b*の構成要素a*とb*の差を考慮するためにフーリエ変換を使います。スライダーの値を0に設定することは避けます。その場合、フーリエ変換がノイズに対し極端に強い影響を及ぼし、エッジ検出の作用を悪くします。スライダーを右に動かすほど、DCT(離散コサイン変換)の作用が弱まり、より多くの色の詳細が復元されます。
輝度マスクをベースにした詳細の復元(ノイズ除去処理の前後のデータを使う)
このモジュールは、ノイズの多い元画像と前述の機能を使ってノイズを除去した画像の違いに対して作用します。マスクの中の完全に黒い部分では、ノイズ除去の効果が保たれますが、完全に白い部分では、ノイズ除去処理前の状態が保たれます。
- この機能を使うためには、“マスクと調節(ぼかし&ノイズ除去)”のマスクを有効にし、L(L)カーブとLC(H)カーブのどちらか、或いは両方を有効にする必要があります。
- “暗い部分の輝度のしきい値”スライダーで、輝度領域を特定します。しきい値以下の部分でノイズ除去が漸進的に適用されます。
- “明るい部分の輝度のしきい値”スライダーで、輝度領域を特定します。しきい値以上の部分でノイズ除去が漸進的に適用されます。
- 2つのしきい値の間の部分では、“グレー領域のノイズ除去”スライダーの値を0より大きくしない限り、ノイズ除去処理前の画像が保たれます。見苦しい色ノイズだけを除去するのに便利です。
- “復元のしきい値”スライダーで、上記2つのしきい値で選択された領域のノイズ除去の程度を調節します。
- “減衰”スライダーで、漸進的に適用されるノイズ除去の減衰率を調節します。
マスクに関する留意点
- マスクの異なる部分で設定されたノイズ除去の作用を減衰、或いは保持する範囲を確認するために、ロック式カラーピッカーを使うことが出来ます。ロック式カラーピッカーの表示値とスライダーの値を一致させるためには、メインの設定の“マスクと融合に関する設定”パネルにある“輝度と色のマスクの背景色”の値を0に設定しておく必要があります。
- グレー領域を調整し、それらを明るく、或いは暗くすることで、適用するノイズ除去の程度を調整する際に、ロック式カラーピッカーに関係するマスクツールを使うことが出来ます。
マスクのツールには:〈構造のマスク〉、〈スムーズな半径〉、〈ガンマ〉、〈スロープ〉、〈シャドウ〉、〈輝度のローカルコントラスト〉、〈ウェーブレットによるローカルコントラスト〉のカーブがあります。
結論
〈ローカル編集〉のモジュールを使って以下のことが可能です:
- ノイズに関するローカル編集と輝度と色に応じて作用に差を付けること。
- 画像全体の処理とローカル編集モジュールの特殊な機能を使う:
- ΔE
- 除外スポット
- 境界の階調調整
- マスク
ガイド付きフィルタ
“ぼかし&ノイズ除去”のコンボボックスの中の選択肢に“ガイド付きフィルタ”があります。そのパラメータの一つである“ディテール”のスライダー値がマイナスの場合、このツールは、ノイズ除去効果を与えるために、輝度ノイズと色ノイズを隠すためのぼかしを生成します。
- “輝度マスクをベースに復元”は“ノイズ除去”と似たような働きをします。