(57)【要約】【課題】撮像装置で撮影された画像に対するノイズ低減処理を効率化し、処理時間を短縮する。【解決手段】着目画素に対する近傍画素の値に基づくノイズ低減処理を撮影時のISOモードに応じて制御する。ISO800未満であればノイズ発生量が少ないとみなし、切り替え部101をONとして距離重み算出部102を可動とし、着目画素に対するノイズ低減用の重み算出時の処理単位を示す画素数LUT106の出力を1とする。これにより、1×1画素を処理単位としたバイラテラルフィルタによるノイズ低減処理が行われる。一方、ISO800以上であればノイズ発生量が多いとみなし、切り替え部101をOFFとして距離重み算出部102からの出力を1に固定し、画素数LUT106の出力を3とする。これにより、3×3画素ブロックを処理単位とした重み算出が行われ、ノンローカルミーンズ法によるノイズ低減処理が行われる。【選択図】図1
2013187645.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置による撮影により取得された画像データに対するノイズ低減処理を行うノイズ低減装置であって、
前記撮像装置による撮影の際の撮影条件を入力する入力手段と、
前記撮影条件に基づいて、前記画像データが示す画像における着目画素の画素値に対してノイズ低減処理を行う際の、前記着目画素の近傍にある参照画素を特定する特定手段と、
前記特定手段により特定された参照画素の画素値を用いて、前記着目画素の画素値のノイズ低減処理を行うノイズ低減手段と、
を有することを特徴とするノイズ低減装置。
【請求項２】
前記撮影条件が、第１の条件と、該第１の条件による撮影時よりも多くのノイズが前記画像データに発生する第２の条件のいずれに対応するか判定する判定手段を更に有することを特徴とする請求項１に記載のノイズ低減装置。
【請求項３】
前記特定手段は、前記第１の条件の場合の参照画素を特定するための画素ブロックは、前記第２の条件の場合の参照画素を特定するための画素ブロックよりも小さいことを特徴とする請求項２に記載のノイズ低減装置。
【請求項４】
前記ノイズ低減手段は、前記着目画素に対し、該着目画素を中心とした画素ブロック内における画素を前記参照画素として該参照画素ごとに重みを算出し、該着目画素に該重みを乗じた値を全参照画素について累積し、該累積値を前記重みの累積値で除算することで前記ノイズ低減処理を行うことを特徴とする請求項３に記載のノイズ低減装置。
【請求項５】
前記ノイズ低減手段は、
前記撮影条件が前記第１の条件に対応する場合には、前記着目画素と前記参照画素の画素値から前記重みを算出し、
前記撮影条件が前記第２の条件に対応する場合には、前記着目画素を含む着目画素ブロックと、該着目画素ブロックと同サイズである前記参照画素を含む参照画素ブロックから前記重みを算出することを特徴とする請求項４に記載のノイズ低減装置。
【請求項６】
前記ノイズ低減手段は、
前記撮影条件が前記第１の条件に対応する場合には、前記着目画素と前記参照画素との画素値の差分に基づいて前記重みを算出し、
前記撮影条件が前記第２の条件に対応する場合には、前記着目画素ブロックと前記参照画素ブロックとで空間的に対応する画素間における画素値の差分の二乗和に基づいて前記重みを算出することを特徴とする請求項５に記載のノイズ低減装置。
【請求項７】
前記ノイズ低減手段は、
前記着目画素と前記参照画素の距離に応じて距離重みを算出する距離重み算出手段と、
前記着目画素と前記参照画素の画素値の差分に応じて画素値重みを算出する画素値重み算出手段と、
前記距離重みと前記画素値重みを乗じて前記重みを算出する乗算手段と、を有し、
前記距離重み算出手段は、前記撮影条件が前記第２の条件に対応する場合には前記距離重みを1とし、
前記画素値重み算出手段は、前記撮影条件が前記第２の条件に対応する場合には前記着目画素ブロックと前記参照画素ブロックとで空間的に対応する画素間における画素値の差分の二乗和に応じて前記画素値重みを算出する
ことを特徴とする請求項５または６に記載のノイズ低減装置。
【請求項８】
さらに、前記判定手段による判定結果に応じて、前記着目画素ブロックのサイズを設定するサイズ設定手段を有することを特徴とする請求項５乃至７のいずれか１項に記載のノイズ低減装置。
【請求項９】
前記ノイズ低減手段は、前記撮影条件が前記第１の条件に対応する場合には、前記着目画素に対しバイラテラルフィルタによるノイズ低減処理を行うことを特徴とする請求項２乃至８のいずれか１項に記載のノイズ低減装置。
【請求項１０】
前記ノイズ低減手段は、前記撮影条件が前記第２の条件に対応する場合には、前記着目画素に対しノンローカルミーンズ法によるノイズ低減処理を行うことを特徴とする請求項２乃至９のいずれか１項に記載のノイズ低減装置。
【請求項１１】
前記撮影条件は、撮影時のISO値、露光時間、シャッタースピード、撮影モードのいずれかであることを特徴とする請求項２乃至１０のいずれか１項に記載のノイズ低減装置。
【請求項１２】
入力手段、特定手段、およびノイズ低減手段を有し、撮像装置による撮影により取得された画像データに対するノイズ低減処理を行うノイズ低減装置におけるノイズ低減方法であって、
前記入力手段が、前記撮像装置による撮影の際の撮影条件を入力し、
前記特定手段が、前記撮影条件に基づいて、前記画像データが示す画像における着目画素の画素値に対してノイズ低減処理を行う際の、前記着目画素の近傍にある参照画素を特定し、
前記ノイズ低減手段が、前記特定された参照画素の画素値を用いて、前記着目画素の画素値のノイズ低減処理を行うことを特徴とするノイズ低減方法。
【請求項１３】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項１乃至１１のいずれか１項に記載のノイズ低減装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置により撮影された画像内に発生したノイズを低減するノイズ低減装置およびノイズ低減方法に関するものである。
【背景技術】
【０００２】
従来より、撮像装置で撮影された画像においてノイズ低減処理を行う場合、着目画素の近傍から、該着目画素との画素値の差分が閾値以内である画素を参照画素として検出し、該参照画素の画素値を用いて、着目画素の補正後の画素値を算出している。このように、着目画素と近傍の1画素との差分を参照画素検出の判断基準とするノイズ低減法として、バイラテラルフィルタが知られている。
【０００３】
しかしながら、上記従来の1画素との差分に基づいて参照画素を検出するノイズ低減方法では、処理対象である撮影画像においてノイズ信号の強度や分散が大きいと、ノイズ低減用の参照画素を正しく検出できない場合がある。これは、ノイズによって着目画素とその近傍画素の値が大きく変化したことにより、着目画素値と近傍画素値との差分が、参照画素検出の判断基準として機能しないためである。
【０００４】
そこで、着目画素を含む小矩形とその近傍の小矩形について、空間的に対応する画素の差分の二乗和を、参照画素検出の判断基準とする技術が提案されている(特許文献1参照)。この技術によれば、参照画素検出の判断基準として、近傍1画素との差分ではなく、複数画素における差分を利用することで、参照画素の検出精度を統計的に向上させている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表2007-536662号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献1に記載された、ノイズ低減処理にかかる参照画素検出の判断基準として複数画素の差分を用いる技術においては、以下のような問題があった。すなわち、1つの参照画素を検出するために複数画素についての差分を算出する必要があるため、バイラテラルフィルタ等、1画素分のみの差分を算出する技術に比べて演算量が多くなる。したがって、撮影開始から画像をディスプレイへ表示するまでの処理時間が増大してしまう。
【０００７】
本発明は上記問題に鑑み、撮像装置で撮影された画像に対するノイズ低減処理を効率化し、処理時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための一手段として、本発明のノイズ低減装置は以下の構成を備える。
【０００９】
すなわち、撮像装置による撮影により取得された画像データに対するノイズ低減処理を行うノイズ低減装置であって、前記撮像装置による撮影の際の撮影条件を入力する入力手段と、前記撮影条件に基づいて、前記画像データが示す画像における着目画素の画素値に対してノイズ低減処理を行う際の、前記着目画素の近傍にある参照画素を特定する特定手段と、前記特定手段により特定された参照画素の画素値を用いて、前記着目画素の画素値のノイズ低減処理を行うノイズ低減手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、撮像装置で撮影された画像に対するノイズ低減処理を効率化し、処理時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態におけるノイズ低減装置の構成例を示す図、
【図２】入力画像に対する小矩形の概念を示す図、
【図３】参照画素の選択方法を示す図、
【図４】ISOモードごとの、撮影開始から画像表示までの処理時間の遷移図、
【図５】本実施形態におけるノイズ低減処理を示すフローチャート、
【図６】バイラテラルフィルタにおける着目画素と参照画素の関係を示す図、
【図７】NL-Means法による着目画素と参照画素の関係を示す図、である。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
本発明は、撮像装置による撮影により取得された画像データに対するノイズ低減処理を行う。まず、撮像装置による撮影の際の撮影条件を入力し、該撮影条件に基づいて、画像データが示す画像における着目画素の画素値に対してノイズ低減処理を行う際の、着目画素の近傍にある参照画素を特定する。そして、該特定された参照画素の画素値を用いて、着目画素の画素値のノイズ低減処理を行う。具体的には、撮影条件が、第１の条件と、該第１の条件による撮影時よりも多くのノイズが前記画像データに発生する第２の条件のいずれに対応し、該判定結果に応じて、着目画素に対するノイズ低減処理を行う。このノイズ低減処理いおいては、第１の条件の場合の参照画素を特定するための画素ブロックが、第２の条件の場合の参照画素を特定するための画素ブロックよりも小さくなるように制御する。そして、着目画素を中心とした画素ブロック内における参照画素ごとに重みを算出し、該着目画素に該重みを乗じた値を全参照画素について累積し、該累積値を前記重みの累積値で除算する。このとき、撮影条件が第１の条件に対応する場合には、着目画素と参照画素の画素値から重みを算出し、バイラテラル(Bilateral)フィルタによるノイズ低減処理を行う。また、撮影条件が第２の条件に対応する場合にはノンローカルミーンズ(NL-Means)法によるノイズ低減処理を行う。この場合すなわち、着目画素を含む着目画素ブロックと、該着目画素ブロックと同サイズである参照画素を含む参照画素ブロックを参照して重みを算出する。このように、撮影条件に応じてノイズ低減処理を行うことで、撮影画像に対するノイズ低減処理の効率化が実現する。
【００１４】
＜第１実施形態＞
本実施形態では、撮像装置で撮影した水平画素数100×垂直画素数100で構成されている10000画素の8ビットグレースケール画像に対するノイズ低減処理について説明する。また本実施形態では、着目している1画素のノイズ低減方法について説明する。よって、画像全体に対してノイズ低減を施す場合は、本実施形態で示した処理を全画素に対して施すことになる。
【００１５】
●装置構成
図1は、本実施形態におけるノイズ低減装置の概略構成を示すブロック図である。同図において、100は小矩形蓄積部であり、入力画像からノイズ低減を施す着目画素を含む小矩形Iを蓄積する。本実施形態では、入力画像を水平画素数×垂直画素数による座標(画像座標)で表わす。そして、水平座標20,垂直座標20に位置する画素値に対するノイズ低減処理を施す場合、座標(20,20)を中心とした小矩形を処理対象とする。すなわち小矩形蓄積部100は、処理対象である着目画素(20,20)に対し、水平垂直方向のそれぞれプラスマイナス20画素からなる小矩形I(41画素×41画素)を、不図示の入力画像バッファから読み込む。
【００１６】
ここで図2に、小矩形蓄積部100に蓄積される小矩形の概念を示す。同図において実線は入力画像バッファに蓄積されている画像データである。そして点線が、小矩形蓄積部100が読み込む小矩形Iであり、該小矩形Iの中央に黒で塗りつぶされた画素が、ノイズ低減処理対象となる着目画素である。本実施形態では、着目画素のノイズ低減処理を、小矩形Iの内部に存在する他の画素(以下、近傍画素)に基づいて行う。詳細は後述するが、本実施形態におけるノイズ低減処理においては、小矩形Iの中央に位置する着目画素に対し、小矩形I内の近傍画素ごとに重みを算出し、着目画素に乗じて後に正規化する。したがって、小矩形I内の全ての近傍画素のうち大きな重みが算出された画素が、ノイズ低減用に検出された参照画素に相当する。この近傍画素ごとの重みは、着目画素を中心とした所定サイズの画素ブロックと、該近傍画素を中心とした同サイズの画素ブロックを参照して算出される。本実施形態ではこの画素ブロックサイズとして、実質的に当該1画素を示す1×1画素ブロックと、3×3画素ブロックを用いる。
【００１７】
図1において、101は切り替え部であり、外部から入力されるISOモードに応じて、小矩形蓄積部100に蓄積された画像信号を、後述する距離重み算出部102に送信するか否かを切り替える。すなわち、切り替え部101がONとなれば、距離重み算出部102に画像信号が出力される。なおISOモードとは、入力画像が撮像された際に撮像装置に設定されたISO感度を示し、入力画像バッファに蓄積された画像データ内に記録されていても良いし、独立した形式で入力されても良い。
【００１８】
着目画素値検出部103は、小矩形蓄積部100が蓄積した小矩形Iからノイズ低減対象となる着目画素を検出し、その値Tを出力する。すなわち、小矩形Iの中央に位置する画素が着目画素として検出される。
【００１９】
カウンタ1は、小矩形I内における近傍画素の座標を生成する。ここで図3に、カウンタ1による近傍画素の選択方法を示す。同図において実線は小矩形Iを示し、中央の黒く塗りつぶされた矩形が着目画素を示す。カウンタ1により、小矩形I内の近傍画素が、点線で示す左上画素から右下画素まで順次選択される。この際に、カウンタ1は近傍画素の座標を小矩形I内の左上を(0,0)として、(0,1)、(0,2)、…と順次カウントアップしていき、右端まで到達したら近傍画素座標を左端に移動し、(1,0)、(1,1)、…とカウントアップする。カウンタ1はすなわち、小矩形Iの総画素数(本実施形態の例では(40,40))相当までカウントアップする。
【００２０】
102は距離重み算出部であり、カウンタ1によって示される小矩形I内の近傍画素座標と、第１の重み係数σ1、および切り替え部101からの画像信号が入力される。そして、切り替え部101からの入力信号がある場合に、着目画素から近傍画素までの距離と第１の重み係数σ1に応じて、着目画素に対する距離重みW1を算出し、出力する。一方、切り替え部101からの入力信号がない場合には、距離重みW1を"1"として出力する。
【００２１】
104は着目画素の画素ブロックを選択する着目画素群選択部である。小矩形蓄積部100に蓄積されている小矩形Iの中から、後述する画素数LUT106からの信号が"1"であれば着目画素を選択し、"3"であれば着目画素を中心とした3×3画素ブロックを選択する。
【００２２】
105は近傍画素の画素ブロックを選択する近傍画素群選択部である。画素数LUT106からの信号が"1"であれば、カウンタ1によって示される近傍画素を選択し、"3"であればカウンタ1によって示される近傍画素を中心とした3×3画素ブロックを選択する。すなわち、着目画素群選択部104と近傍画素群選択部105では、同じサイズの画素ブロックが選択される。
【００２３】
106は上記画素ブロックのサイズ設定を行うルックアップテーブル(画素数LUT)である。詳細には、入力されるISOモードの値に応じて、着目画素に対するノイズ低減用の重み算出時の処理単位となる画素ブロックのサイズを示す値を出力する。上述したように本実施形態では、画素ブロックサイズとして"1"または"3"を想定する。
【００２４】
107は画素差分検出部であり、着目画素群選択部104と近傍画素群選択部105からの出力信号(1×1の単画素または3×3の画素ブロック)の差分を算出する。なお画素差分検出部107では、演算対象が3×3の画素ブロックによるベクトルであれば、差分の二乗和を算出する。
【００２５】
108は画素値重み決定部であり、画素差分検出部107の出力値と、入力された第２の重み係数σ2に応じて、着目画素に対する画素値重みW2を算出する。
【００２６】
そして109は、距離重み算出部102から出力された距離重みW1と、画素値重み決定部108から出力された画素値重みW2を乗算して、着目画素に対する重み値W12を出力する第１乗算部である。この重み値W12がすなわち、着目画素に対し、現在選択されている近傍画素について算出された重みである。110は、第１乗算部109から出力された重み値W12を累積加算する第１累積加算部である。
【００２７】
また111は、着目画素値検出部103の出力値である着目画素値Tに、第１乗算部109からの重み値W12を乗算して重み付け後の画素値Aを出力する第２乗算部である。また112は、第２乗算部111から出力された画素値Aを累積加算する第２累積加算部である。
【００２８】
そして113は、第２累積加算部112からの出力値SUM_Aを第１累積加算部110からの出力値SUM_W12で除算することで正規化し、着目画素のノイズ低減後の画素値NewPを出力する除算部である。
【００２９】
●画素ブロックサイズの切り替え
本実施形態においては、着目画素に対するノイズ低減用の重みを算出する際の処理単位となる画素ブロックサイズを、ISOモードに応じて切り替えることを特徴とする。具体的には、入力画像についての撮影時の感度を示すISOの値が低い場合には簡易な重み算出が行えるように1×1の単画素からなるブロックサイズを用いる。一方、ISOの値が高い場合には複雑だが高精度のノイズ低減を実現するような重み算出が行えるように、3×3の複数画素からなるブロックサイズを用いる。このように処理単位となる画素ブロックサイズを切り替えることで、ISO値によって変化するノイズ量を効率良く低減することができる。また、ノイズ量低減にかかる処理時間を短縮することができるため、カメラの撮影ボタンを押してからディスプレイに表示するまでの時間も短くすることができる。
【００３０】
ここで図4を参照して、本発明においてISOモードに応じて画素ブロックサイズを切り替えるメリットについて、具体的に説明する。
【００３１】
図4(a)は、ISO80による撮影を例として、撮影開始から、該撮影した画像をディスプレイに表示するまでの処理時間を示す図である。同図によれば、時刻0から露光が開始されて時刻1.5で露光関連処理が終了し、残りの0.5秒でノイズ低減処理を施し、時刻2でディスプレイに画像を表示している。また図4(b)は、ISO1600による撮影時における、撮影開始から表示までの処理時間を示す図である。同図よれば、露光時間は図4(a)に示したISO80での撮影時に比べて短いため、ノイズ低減処理により多くの時間を割くことができる。通常、ISO値が高いほどノイズが多く発生する。したがって、ISO1600による撮影画像にはISO80による撮影画像よりも多くのノイズが発生し、このノイズ低減にはISO80の場合よりも時間がかかる。
【００３２】
ここで図4(c)に、ISO80による撮影画像に対し、ISO1600用の長いノイズ低減処理を施した場合の処理時間を示す。この場合、撮影開始からディスプレイに表示するまでに2秒以上の時間がかかり、ユーザが撮影したい次のシャッターチャンスを逃してしまう可能性がある。また、そもそもISO80による撮影時に発生するノイズは微量であるため、ISO1600での撮影時のような高度なノイズ低減処理は不要である。
【００３３】
以上のような理由により本実施形態においては、ISOモードに応じて、重み算出時の処理単位となる画素ブロックサイズを切り替える。
【００３４】
●本実施形態におけるノイズ低減処理
以下、上記構成を有するノイズ低減処理装置において実行されるノイズ低減処理について、図5のフローチャートを用いて詳細に説明する。該処理は、ノイズ低減処理装置における不図示の制御部によって、図1に示した各構成が制御されることで実現される。
【００３５】
本実施形態では、ノイズ低減処理として、バイラテラルフィルタを実現する画素ブロックサイズと、ノンローカルミーンズ法を実現する画素ブロックサイズのいずれを採用するかを、ISOモードに応じて切り替えることを特徴とする。
【００３６】
なお、バイラテラルフィルタによるノイズ低減処理においては、着目画素とその近傍の１画素について、その距離に応じた距離重みと、その画素値の差分に応じた画素値重みを用いて、着目画素を補正する。以下、バイラテラルフィルタを用いる方法を単にバイラテラル法と称する。
【００３７】
一方、ノンローカルミーンズ法によるノイズ低減処理においては、着目画素を含む画素ブロックと、その近傍の複数画素からなる近傍画素ブロックとの画素値の相関に応じた画素値重みを用いて、着目画素を補正する。ノンローカルミーンズ法は、着目している画素とその周辺画素で小さなブロックを生成し、そのブロックを画像内を走査する事でブロックマッチングを行う。そして、似ているブロックの中心画素には大きな重み係数を掛け合わせ、似ていないブロックの中心画素には小さな重み係数を掛け合わす。その後、重み係数を掛け合わせた画素値の総和を着目画素のノイズ低減後の画素値とする。以下、ノンローカルミーンズ法を単にNL-Means法と称する。
【００３８】
本実施形態では、図1に示す構成からなるノイズ低減装置において、ISO800を閾値として、ノイズ低減処理を切り替える。すなわち、ISOモードが閾値未満の値であれば、切り替え部101がONになり、画素数LUT106の出力が"1"となることで、該装置はバイラテラルフィルタとして挙動する。一方、ISOモードが閾値以上の値であれば、切り替え部101がOFFになり、画素数LUT106の出力が"3"となることで、該装置はNL-Means法によるノイズ低減装置として挙動する。
【００３９】
図5においてノイズ低減処理が開始されると、まずS100で各種初期化処理が行われる。まず、小矩形I内の画素ごとに着目画素に乗算される重み値W12を累積する重み累積バッファSUM_W12を0で初期化する。この重み累積バッファSUM_W12は、後述するバイラテラルフィルタの式(1)の右辺の分母における累積結果(ΣΣの計算結果)を保存するために利用される。また、着目画素への重み乗算結果Aを累積する画素値累積バッファSUM_Aを0で初期化する。この画素値累積バッファはSUM_Aは、後述するバイラテラルフィルタの式(1)の右辺の分子における累積結果(ΣΣの計算結果)を保存するために利用される。また、後述する距離重みW1と画素ブロックサイズSを、それぞれ1に初期化する。なお、距離重みW1は、後述するバイラテラルフィルタの式(1)におけるexp(-(m2-n2)/(2σ12))に対応する。また、画素ブロックサイズSは上述したように重み算出時の処理単位となる画素ブロックのサイズを示し、これが1に初期化されることにより、該初期値のままであれば、着目画素に対する近傍画素ごとの重みが、それぞれ1画素単位の演算によって算出される。そしてさらに、式(1)における重み係数σ1とσ2を2に初期化する。
【００４０】
次にS101で、入力画像に対応するISOモードを取得し、FlagISOにセットする。例えば撮影時にISO=400であれば、FlagISOに数値400を格納する。
【００４１】
そしてS102で、着目画素の画素値Tを取得する。例えば図6に示すように、入力画像の画像座標上における着目画素が(20,20)の位置にある黒矩形であれば、その画素値Tを取得する。次にS103で、着目画素を中心とした小矩形Iを入力画像バッファから読み込み、小矩形蓄積部100に格納する。図6において小矩形Iは、着目画素の座標(20,20)を中心として水平垂直方向のそれぞれにプラスマイナス20画素かならなる、実線で囲まれた領域(41画素×41画素)である。なお、S102,S103の処理順は不同であるが、実際には、小矩形蓄積部100に着目画素を中心とした小矩形Iが読み込まれ、着目画素値検出部103が該小矩形Iから着目画素値Tを取得すれば良い。
【００４２】
そしてS104で、S101で取得したFlagISOが閾値である800より小さいか否かを判定することで、本実施形態におけるノイズ低減処理を切り替える。すなわち、入力されたISOモードがISO800よりも小さい値を示す場合はバイラテラル法を実行するためにS105に進み、ISO800以上であればNL-Means法を実行するためにS106に進む。以下、これら各処理について詳細に説明する。
【００４３】
・バイラテラル法によるノイズ低減処理
バイラテラル法によるノイズ低減処理においては、まずS105で、画素ブロックサイズSは初期値である"1"のまま、距離重みW1を変更する。すなわち、距離重み算出部102において、着目画素と近傍画素の距離に応じて、該近傍画素による距離重みW1を算出する。ここで、バイラテラルフィルタを示す式(1)を参照して、距離重みW1について説明する。距離重みW1は、着目画素と近傍画素の空間的な距離に応じた重みであり、式(1)における、exp(-(m2-n2)/(2σ12))に対応している。なお式(1)では、着目画素(i,j)の画素値f(i,j)にノイズ低減を施して画素値g(i,j)に変換しており、(m,n)は、(i,j)を原点とした近傍画素の座標を示す。また、exp(-(f(i,j)-f(i+m,j+n))2/(2σ22))は、着目画素値f(i,j)と近傍画素値f(i+m,j+n)に応じた画素値重み(後述するW2に対応)を表している。
【００４４】
2013187645.tif 000003
【００４５】
以上のようにS105で距離重みW1が算出されると、次にS107に進んで画素値重みW2を算出する。すなわち、着目画素群選択部104が着目画素値f(i,j)を取得し、近傍画素群選択部105が近傍画素値f(i+m,j+n)を取得し、画素差分検出部107がこれら2つの画素値の差分を算出する。ここでは、S100で画素ブロックサイズSが"1"に初期化されているため、該差分は1画素単位で算出される。なお、画素ブロックサイズSが"1"でない場合の動作については、後述するNL-Means法による処理において説明する。そして該差分に応じて、画素値重み決定部108が画素値重みW2を算出する。すなわちS107では図6に示すように、まず着目画素(i,j)と近傍画素(i+m,j+n)の画素値の差f(i,j)-f(i+m,j+n)を算出する。そして、exp(-(f(i,j)-f(i+m,j+n))2/(2σ22))を画素値重みW2として算出する。
【００４６】
次にS108で第１乗算部109が、S105で算出された距離重みW1と、S107で算出された画素値重みW2とを掛け合わせることで、重み値W12を算出する。この算出式を下式(2)に示す。
【００４７】
2013187645.tif 000004
【００４８】
そしてS109で第１累積加算部110が、重み値W12を重み累積バッファSUM_W12に加算する。
【００４９】
そしてS110で第２乗算部111が、重み値W12を着目画素値Tに掛け合わせることで、重み付け後の画素値Aを算出する。この算出式を下式(3)に示す。
【００５０】
2013187645.tif 000005
【００５１】
次にS111で第２累積加算部112が、重み付け後の画素値Aを画素値累積バッファSUM_Aに加算する。
【００５２】
以上説明したS105〜S111の処理は、小矩形I内に存在する全ての近傍画素について実行される。そして全近傍画素についての処理が終了した後、S112で除算部113が、SUM_Aの値をSUM_W12の値で除算する。この除算結果SUM_A/SUM_W12をノイズ低減後画素値New_Pとして、バイラテラルフィルタによる着目画素のノイズ低減処理を完了する。
【００５３】
・NL-Means法による処理
以下、S104においてFlagISOが800以上である場合に実行される、NL-Means法によるノイズ低減処理について説明する。この場合まずS106で、距離重みW1は初期値である"1"のまま、画素ブロックサイズSを"3"に変更する。上述したようにこの変更は、ISOモードに応じて画素数LUT106に保持されている値に従う。この場合、距離重みW1=1であるから、上記バイラテラル法の式(1)において距離重みW1を示すexp(-(m2-n2)/(2σ12))=1となる。また、画素ブロックサイズS=3であるから、式(1)で画素値重みW2を示すexp(-(f(i,j)-f(i+m,j+n))2/(2σ22))のfが、スカラーから3×3画素のベクトルFに代わる。ここで図7に、NL-Means法における着目画素と参照画素の関係を示す。図7において、黒で塗りつぶされた小矩形と、点線の小矩形がそれぞれ、着目画素ブロックF(i,j)と近傍画素ブロックF(i+m,j+n)に対応している。この場合、上記バイラテラル法を示す式(1)は、以下の式(4)のように変形される。これが、NL-Means法によるノイズ低減を示す式となる。
【００５４】
2013187645.tif 000006
【００５５】
式(4)において、exp()の()内における分子((F(i,j)-F(i+m,j+n))(2,a)2)は、画素ブロック間において空間的に対応する画素間の差分に重みを掛けた二乗和を示す。なお、aは所定の重みを示す。
【００５６】
このようにS106で画素ブロックサイズSが変更された後は、S107〜S112の処理を実行するが、これは上述したバイラテラル法の場合と同様であるため、説明を省略する。
【００５７】
なお、図5のフローチャートに示したノイズ低減処理は、例えば座標(20,20)の着目画素に関する処理であり、実際には該一連の処理を入力画像の全画素に施すことで、入力画像全体についてのノイズ低減が完了する。
【００５８】
以上説明したように本実施形態によれば、撮影時のISOモードに応じて、切り替え部101のON/OFF、および画素数LUT106の出力を制御することで、ノイズ低減処理を切り替える。これにより、処理効率を上げ、画像中のノイズ低減に要する時間が短縮される。
【００５９】
＜他の実施形態＞
なお、本実施形態ではグレースケール画像に対するノイズ低減処理について説明を行ったが、本発明の処理対象はグレースケール画像に限らない。例えば、R(赤)、G(緑)、B(青)の3色からなる原色ベイヤー配列のカラーフィルタにより覆われた単板撮像素子からの信号に対して直接、本実施形態のノイズ低減処理を施しても構わない。また、単板撮像素子より発生した信号から生成した原色ベイヤー配列の信号をモザイク処理した後のRGB信号に対して、ノイズ低減処理を施しても構わない。
【００６０】
また、本実施形態では撮影時のISOモードに応じてノイズ低減処理を切り替える例を示したが、この切り替え基準はISOモードに限定されず、露光時間やシャッタースピード、
撮影モード等を利用しても良い。すなわち、発生するノイズ量に応じて参照画素の決定方法を切り替えれば良く、例えば、撮影モードが夜間モードであれば露光時間が長いため、その撮影画像からより高精度にノイズを低減させるために、計算量が多いノイズ低減処理を選択する。
【００６１】
さらに本実施形態では、重み算出時の処理単位となる画素ブロックを、1×1画素ブロックと3×3画素ブロックのいずれかに切り替える例を示したが、このブロックサイズをさらに細かく制御しても良い。例えば、ISO400までは1×1画素ブロック、ISO400〜1600の区間は3×3画素ブロック、ISO1600以上は5×5画素ブロックとすることが考えられる。
【００６２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のプロセッサやコンピュータ（またはCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
2013187645.tif 000007
【図２】
2013187645.tif 000008
【図３】
2013187645.tif 000009
【図４】
2013187645.tif 000010
【図５】
2013187645.tif 000011
【図６】
2013187645.tif 000012
【図７】
2013187645.tif 000013