(57)【特許請求の範囲】
【請求項１】
画像処理装置において実行され、画像のノイズを低減するとともにコントラストを維持するための方法であって、
前記画像は画素を有し、
前記方法は、
（ａ）第１の画素の値を、１組の他の画素の値と比較するステップを備え、
前記第１の画素および前記１組の他の画素の各々は第１の色であり、
ステップ（ａ）は、
第１の画素および前記第１の画素に隣接する少なくとも２つの画素を含む第１の環境を規定するステップを含み、
前記方法は、
（ｂ）前記１組の他の画素における各画素について、前記第１の画素に隣接する少なくとも２つの画素の値を、前記他の画素に隣接する少なくとも２つのさらなる画素の値と比較するステップをさらに備え、
前記第１の画素に隣接する少なくとも２つの画素の１つは、第２の色、および他の第３の色からなり、前記他の画素に隣接する少なくとも２つのさらなる画素の１つは、前記第２の色、および前記他の第３の色のうちの１つであり、
ステップ（ｂ）は、
前記１組の他の画素における各画素について、他の画素および前記他の画素に隣接する少なくとも２つの画素を含む環境を規定するステップと、
前記他の画素について規定される環境が前記第１の画素について規定される環境といかに類似するかを数値的に示す差の値を決定するステップとを含み、
前記方法は、
（ｃ）前記１組の他の画素における各画素について、ステップ（ａ）および（ｂ）の結果に基づいて重みを決定するステップをさらに備え、
ステップ（ｃ）は、
少なくとも１つのしきい値を決定するステップと、
前記少なくとも１つのしきい値を、ステップ（ｂ）で決定される差の値の各々と比較するステップと、
前記１組の他の画素における各画素について、前記少なくとも１つのしきい値と、前記他の画素について決定される差の値との比較に基づいて、前記他の画素に対する重みを決定するステップとを含み、
前記方法は、
（ｄ）前記１組の他の画素における各画素の前記重みに基づいて、ノイズ除去された画素値を計算するステップと、
（ｅ）前記第１の画素の値を前記ノイズ除去された画素値に置換するステップとをさらに備える、方法。
【請求項２】
ステップ（ｄ）は、
前記１組の他の画素における各画素の前記重みの合計をとるステップと、
前記重みの合計よりも大きい、最小の２のべき乗を計算するステップと、
前記最小の２のべき乗および前記重みの合計の関数として、前記ノイズ除去された画素値を計算するステップとを含む、請求項１に記載の方法。
【請求項３】
前記最小の２のべき乗は、前記最小の２のべき乗と前記重みの合計との間の差が予め定められた値よりも小さい場合は、前記ノイズ除去された画素値を計算する前に調整される、請求項２に記載の方法。
【請求項４】
前記最小の２のべき乗は、前記最小の２のべき乗が予め定められた値よりも小さい場合は、前記ノイズ除去された画素値を計算する前に調整される、請求項２に記載の方法。
【請求項５】
前記ノイズ除去された画素値を計算するステップは、
前記１組の他の画素における各画素の重みと前記第１の画素の重みとの、加重平均を計算するステップを含み、
前記第１の画素の重みは、前記最小の２のべき乗および前記重みの合計に基づき、
前記ノイズ除去された画素値を計算するステップは、
前記ノイズ除去された画素値を前記加重平均と等しく設定するステップをさらに含む、請求項２に記載の方法。
【請求項６】
前記加重平均は、レジスタ内のビットをシフトすることによって計算される、請求項５に記載の方法。
【請求項７】
ステップ（ａ）は、
前記１組の他の画素における各画素について、前記第１の画素の値と前記他の画素の値との間の差を計算するステップを含む、請求項１に記載の方法。
【請求項８】
ステップ（ｂ）は、
前記１組の他の画素における各画素について、および、前記第１の画素に隣接する少なくとも２つの画素の各画素について、前記第１の画素に隣接する画素の値と前記他の画素に隣接する少なくとも２つのさらなる画素の対応する画素の値との間の差を計算するステップを含み、
前記第１の画素に対する前記第１の画素に隣接する画素の位置、および、前記他の画素に対する対応する画素の位置は、前記少なくとも２つのさらなる画素のどの画素が前記第１の画素に隣接する画素に対応するかを決定する、請求項７に記載の方法。
【請求項９】
ステップ（ａ）および（ｂ）の計算された差は、空間重み行列に基づく、請求項８に記載の方法。
【請求項１０】
ステップ（ｃ）は、
しきい値を調整するステップを含み、
前記調整は信号レベルに基づき、
前記信号レベルは、前記第１の画素の値および前記１組の他の画素の値のうちの少なくとも１つに依存し、
ステップ（ｃ）は、
前記調整されたしきい値と前記ステップ（ａ）および（ｂ）の計算された差とを比較するステップと、
前記比較に基づいて、前記１組の他の画素における各画素の前記重みを決定するステップとをさらに含む、請求項８に記載の方法。
【請求項１１】
（ｇ）前記画像処理装置によるさらなる処理のために前記画像を出力するステップをさらに備える、請求項１に記載の方法。
【請求項１２】
前記少なくとも１つのしきい値を決定するステップは、
前記少なくとも１つのしきい値を生成するための信号レベル倍率に基づいて初期しきい値を調整するステップを含む、請求項１に記載の方法。
【請求項１３】
画像のノイズを低減するとともにコントラストを維持するためのシステムであって、
前記画像は画素を有し、
前記システムは、請求項１〜１２のいずれか１項に記載の方法を行なうように適用され、
前記システムは、ステップ（ａ）および（ｂ）を行なうように適用される距離計算機を備え、
前記システムは、
ステップ（ｃ）を行なうように適用される重み計算機と、
ステップ（ｄ）を行なうように適用される、ノイズ除去された画素計算機とをさらに備える、システム。
【請求項１４】
コンピュータのプロセッサに、請求項１〜１２のいずれか１項に記載の方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、デジタル信号処理に関する。
【背景技術】
【０００２】
背景
ノイズは、デジタル画像における一般的な問題であり、デジタル信号処理（digital signal processing：ＤＳＰ）アルゴリズムは、デジタル画像におけるノイズを低減するために用いられ得る。たとえば、ノイズは、画像を不鮮明に見せる、画素値のランダムで不所望な変動であり得る。デジタル画像ノイズを低減することを目的とする様々なノイズ除去アルゴリズムが現在利用可能であるが、これらのアルゴリズムは、ノイズとデータとの分離に課題を有する傾向にある。これは、デジタル画像が低コントラスト領域において、細かな詳細を有するときに、特に問題となる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
多くのノイズ除去アルゴリズムは、デジタル画像における均一領域については、うまく機能する傾向にあるが、デジタル画像を不鮮明にすることなく、デジタル画像の端部および輪郭上、ならびにデジタル画像の細部まで詳細な領域（detail-rich area）におけるノイズを排除することには、実質的な課題を典型的に有する。ここで、細部まで詳細な領域は、異なるコントラストレベルを表わす近接配置された画素を含み得る。ノイズを排除することの課題は、情報の損失をもたらし得る。
【０００４】
必要とされることは、画像の他の特性に悪影響を及ぼすことなく、上述の問題を解決する技術である。
【課題を解決するための手段】
【０００５】
簡単な要約
本発明は、デジタル信号処理に関する。本発明の実施形態に従うシステムは、画素を含む画像におけるノイズを低減する。システムは、距離計算機と、重み計算機と、ノイズ除去された画素計算機とを含む。距離計算機は、第１の画素の値を１組の他の画素の値と比較し、ここで第１の画素および１組の他の画素の各々は第１の色であり、さらにシステムは、第１の画素に隣接する画素の値を１組の他の画素に隣接するさらなる画素の値と比較し、ここで第１の画素に隣接する画素および１組の他の画素に隣接するさらなる画素は、第１の色、第２の色、および第３の色のうちの１つである。重み計算機は、１組の他の画素における各画素について、距離計算機の結果に基づいて重みを決定する。そして、最終的に、ノイズ除去された画素計算機は、１組の他の画素における各画素の重みに基づいてノイズ除去された画素値を計算するとともに、第１の画素の値をノイズ除去された画素値に置換する。
【０００６】
本発明の実施形態に従う方法は、画素を含む画像におけるノイズを低減する。方法は、第１の画素の値を１組の他の画素の値と比較することを含み、ここで第１の画素および１組の他の画素の各々は第１の色である。さらに方法は、第１の画素に隣接する画素の値を１組の他の画素に隣接するさらなる画素の値と比較することを含み、ここで第１の画素に隣接する画素および１組の他の画素に隣接するさらなる画素は、第１の色、第２の色、および第３の色のうちの１つである。方法は、さらに、１組の他の画素における各画素について重みを決定すること、１組の他の画素における各画素の重みに基づいてノイズ除去された画素値を計算すること、および、第１の画素の値をノイズ除去された画素値に置換することを含む。
【発明の効果】
【０００７】
本発明のシステムおよび方法によれば、画像の均一領域の画素、画像の端部および輪郭に沿った画素、ならびに、細部まで詳細な領域にある画素におけるノイズが、コントラストを維持しながら低減される。
【０００８】
本発明のさらなる実施形態、特徴、および利点は、本発明の様々な実施形態の構造および動作とともに、添付の図面を参照して以下にその詳細が説明される。
【０００９】
図面／図の簡単な説明
本発明の実施形態は、添付の図面を参照して説明される。図面においては、同様の参照番号は、同一または機能的に類似の要素を示し得る。要素が最初に現れる図面は、一般的に、対応する参照番号において最も左の桁（left-most digit）によって示される。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態を実行するために適したシステム例を示す図である。
【図２】本発明の実施形態に従う、システム例のモジュールの図である。
【図３】本発明の実施形態に従う、システム例のモジュールのより詳細な図である。
【図４】本発明の実施形態に従う、システム例のモジュールの要素の詳細図である。
【図５Ａ】本発明の実施形態に従う、画像ウィンドウの例である。
【図５Ｂ】本発明の実施形態に従う、画像ウィンドウの例である。
【図６】本発明の実施形態に従う、距離計算機の例の図である。
【図７Ａ】本発明の実施形態に従う、パラメータセレクタの例の図である。
【図７Ｂ】本発明の実施形態に従う、パラメータセレクタの例の図である。
【図８】本発明の実施形態に従う、重み計算機の例の図である。
【図９】本発明の実施形態に従う、重み加算器の例の図である。
【図１０】本発明の実施形態に従う、最大重み識別器の例の図である。
【図１１】本発明の実施形態に従う、最小の２のべき乗計算機の例の図である。
【図１２Ａ】本発明の実施形態に従う、中間重み計算機の例の図である。
【図１２Ｂ】本発明の実施形態に従う、中間重み計算機の例の図である。
【図１３】本発明の実施形態に従う、加重平均計算機の例の図である。
【図１４】本発明の実施形態に従う、モバイル装置の例の図である。
【図１５】本発明の実施形態に従う、コンピュータシステムの例の図である。
【図１６】本発明の実施形態に従う、画像におけるノイズを低減するための方法のフローチャートである。
【発明を実施するための形態】
【００１１】
発明の詳細な説明
以下の説明においては、説明の目的のために、多くの具体的な詳細が本発明の完全な理解を提供するために記載される。しかしながら、本発明は、これらの具体的な詳細を用いなくとも実現され得ることが明らかであろう。他の例においては、周知の構成および装置が、本発明の不必要な曖昧さを避けるために、ブロック図形式内に示される。
【００１２】
信号データを処理するための技術が、本明細書で開示される。信号データは、多くの異なった信号行列によって表わされ得、各行列は信号の異なる部分を表わす。たとえば、各信号行列は、画像センサにおける１組の画素に対応するエントリを含むように構成される。信号データは、たとえば、オーディオデータ、あるいは、画像データ以外の他の信号データを含み得る。
【００１３】
図１は、本発明の実施形態を実行するために適したシステム１００を示す図である。例として、限定されないが、システム１００は、画像信号処理（image signal processing：ＩＳＰ）チェーンであり得る。実施形態においては、ＩＳＰチェーンは、ＲＡＷ画像を処理するためのアルゴリズムを実行するモジュールを含み、不揮発性メモリに保存される最終画像（たとえば、ＪＰＥＧ画像、ＴＩＦＦ画像など）を出力する。図１に示されるように、システム１００は、アナログゲインモジュール１０２と、黒レベル補正モジュール１０４と、不良画素補正モジュール１０６と、緑−赤／緑−青（green-red/green-blue：ＧＲＧＢ）補償モジュール１０８と、ホワイトバランスおよびデジタルゲインモジュール１１０と、レンズフード補正モジュール１１２と、固定パターンノイズ（fixed-pattern noise：ＦＰＮ）およびランダムノイズ除去モジュール１１４と、ノイズ除去モジュール１１６と、デジタルオートフォーカスモジュール１１８と、モザイク除去モジュール１２０と、鮮明化モジュール１２２と、色補正行列モジュール１２４と、ガンマ補正モジュール１２６と、ＪＰＥＧ圧縮モジュール１２８とを含む。これらのＩＳＰモジュールは、この用途において提示されるノイズ除去アルゴリズムを実行するためには必要とされないことに注意すべきである。
【００１４】
実施形態においては、アナログゲインモジュール１０２は、画像１８０を検出する図示されない画像センサからの画像１８０を受信する。他の実施形態においては、アナログゲインモジュール１０２は、画像１８０を検出する画像センサに結合されたメモリから、画像１８０を受信する。メモリは、フラッシュメモリ、磁気ディスク、光ディスク、または他の記憶媒体であり得る。画像センサは、光学画像を、画像１８０を生成するための電気信号に変換する。画像センサは、たとえば、ベイヤー（BAYER）センサ、フォビオン（Foveon）Ｘ３センサ、３ＣＣＤセンサなどのような、様々な異なる種類のカラー画像センサのうちの１つであり得る。たとえば、ベイヤーセンサは、赤、緑、および青の光を画素に透過し、３つの色に敏感なインターレースグリッドを形成する。ベイヤーセンサは、画素を覆うための赤、緑、および青の色フィルタの特別な配列であるベイヤーフィルタを利用し得る。ベイヤーフィルタは、図５を参照して、以下により詳細が説明される。明確化の目的のために、限定されないが、システム１００は、画像センサがベイヤーセンサであるかのように、ここでは説明される。
【００１５】
アナログゲインモジュール１０２は、ゲインを画像１８０に適合し、低露出時間を用いる際に生じる画像１８０の暗部を補償し得る。アナログゲインモジュール１０２は、アナログ−デジタル（Ａ／Ｄ）変換を生じる前にゲインに適合する。アナログゲインモジュール１０２は、画像１８０の修正されたバージョンを、黒レベル補正モジュール１０４へ送る。
【００１６】
実施形態においては、黒レベル補正モジュール１０４は、画像１８０からのフロア値（floor value）を除去する。例として、黒レベル補正モジュール１０４は、画像１８０から、画像センサから出力された「暗電流」を除去する。黒レベル補正モジュール１０４は、画像１８０のさらに修正されたバージョンを、不良画素補正モジュール１０６へ送る。
【００１７】
不良画素補正モジュール１０６は、非常に低いまたは非常に高い誤り値を生成する、画像１８０内の「焼失（burned）」画素を探索する。実施形態においては、不良画素補正モジュール１０６は、その後、これらの「焼失」画素を、画像１８０の環境の「高性能（smart）」平均と置き換える。不良画素補正モジュール１０６は、画像１８０のさらなる修正されたバージョンを、ＧＲＧＢ補償も１０８へ送る。
【００１８】
実施形態においては、ＧＲＧＢ補償モジュール１０８は、緑および赤の両方の画素を含む画素線（pixel line）における緑の画素と、緑および青の両方の画素を含む画素線における緑の画素との間に生じ得る差を補償する。例として、画素値は１２ビットであり、選択色の強さを表す。ＧＲＧＢ補償モジュール１０８は、画像１８０のさらなる修正されたバージョンを、ホワイトバランスおよびデジタルゲインモジュール１１０へ送る。
【００１９】
ホワイトバランスおよびデジタルゲインモジュール１１０は、緑、赤および青の画素値の各々にゲインを適合し、各画素のダイナミックレンジを維持しながら、色のバランスをとるとともに、光の状態および光のレベルを補償する。実施形態においては、ホワイトバランスおよびデジタルゲインモジュール１１０は、画像１８０のさらなる修正されたバージョンを、レンズフード補正モジュール１１２へ送る。
【００２０】
実施形態においては、レンズフード補正モジュール１１２は、中間画素から遠く離れたところに位置される画素の輝度を増加することによって、レンズフードプロファイルを補償する。レンズフード補正モジュール１１２は、画像１８０のさらなる修正されたバージョンを、固定パターンノイズ（ＦＰＮ）およびランダムノイズ除去も１１４へ送る。
【００２１】
ＦＰＮおよびランダムノイズ除去モジュール１１４は、画像１８０からランダムノイズおよび固定パターンノイズを除去する。実施形態においては、ＦＰＮおよびランダムノイズ除去モジュール１１４は、画像１８０のさらなる修正されたバージョンを、ノイズ除去モジュール１１６へ送る。
【００２２】
実施形態においては、ノイズ除去モジュール１１６は、コントラストについてできるだけ最小限の影響で、端部および輪郭上およびその近傍、ならびに細部まで詳細な領域における画素値を維持しながら、画像１８０の少なくとも一部からノイズを効果的に除去する。ここで用いられるように、端部および輪郭は、画素の空間的な位置にかかわらず、画像１８０において画素値における急激な変化が生じる領域を称する。さらに、ここで用いられるように、細部まで詳細な領域は、極めて近接し、異なるコントラストレベルを示す画像１８０の画素を称する。ノイズ除去モジュール１１６は、処理されている画像１８０の部分の中心または中間画素を、その近傍の他の画素の平均と置換する。これら近接する画素は、値において中間の画素と類似するとともに、類似の環境を有する。ノイズ除去モジュール１１６は、図２から図１３を参照して、以下に、より詳細に説明される。ノイズ除去モジュール１１６は、画像１８０のさらなる修正されたバージョンを、デジタルオートフォーカスモジュール１１８へ送る。
【００２３】
デジタルオートフォーカスモジュール１１８は、画像１８０のコントラストを増加する。デジタルオートフォーカスモジュール１１８は、２００８年１月７日に出願された、「信号への所望の効果を達成するために、信号へのカーネルの適用の効果を調整するための技術（Techniques for Adjusting the Effect of Applying Kernels to Signals to Achieve Desired Effect on Signal）」と題された、共有する米国特許出願第１１／９７０，４２７において、より詳細に説明されており、その全体が参照により引用される。実施形態においては、デジタルオートフォーカスモジュール１１８は、画像１８０のさらなる修正されたバージョンを、モザイク除去モジュール１２０へ送る。
【００２４】
代替的な実施形態においては、図示されないが、ノイズ除去モジュール１１６は、デジタルオートフォーカスモジュール１１８内に含まれる。この場合、ＦＰＮおよびランダムノイズ除去１１４は、さらに修正された画像１８０をデジタルオートフォーカス１１８へ送る。
【００２５】
モザイク除去モジュール１２０は、画像１８０が、すべての画素が３つの色チャンネル値を有する完全なＲＧＢ画像となるように、補間を実行する。実施形態においては、モザイク除去モジュール１２０は、画像１８０のさらなる修正されたバージョンを、鮮明化モジュール１２２へ送る。
【００２６】
鮮明化モジュール１２２は、画像１８０における画素のコントラストを強調する。実施形態においては、デジタルオートフォーカスモジュール１１８は、デジタルオートフォーカスモジュール１１８が点拡がり関数（point spread function）を補償するという点で、鮮明化モジュール１２２とは異なる。鮮明化モジュール１２２は、画像１８０のさらなる修正されたバージョンを、色補正行列モジュール１２４へ送る。
【００２７】
色補正行列モジュール１２４は、画像１８０の色精度（color accuracy）および彩度を制御する。実施形態においては、色補正行列モジュール１２４は、画像１８０のさらなる修正されたバージョンを、ガンマ補正モジュール１２６へ送る。
【００２８】
ガンマ補正モジュール１２６は、画像１８０にガンマ曲線を適用する。実施形態においては、ガンマ補正モジュール１２６は、画像１８０のさらなる修正されたバージョンを、ＪＰＥＧ圧縮モジュール１２８へ送る。
【００２９】
ＪＰＥＧ圧縮モジュール１２８は、画像１８０をフルＢＭＰ画像から、たとえばフラッシュメモリのような不揮発性メモリへその後保存され得るＪＰＥＧ画像へ圧縮する。ＧＩＦのようなＪＰＥＧ以外の他の圧縮もまた、画像１８０を圧縮するために用いられ得る。
【００３０】
アナログゲインモジュール１０２、黒レベル補正モジュール１０４、不良画素補正モジュール１０６、ＧＲＧＢ補償モジュール１０８、ホワイトバランスおよびデジタルゲインモジュール１１０、レンズフード補正モジュール１１２、ＦＰＮおよびランダムノイズ除去モジュール１１４、ノイズ除去モジュール１１６、デジタルオートフォーカスモジュール１１８、モザイク除去モジュール１２０、鮮明化モジュール１２２、色補正行列モジュール１２４、ガンマ補正モジュール１２６、およびＪＰＥＧ圧縮モジュール１２８の各々は、ハードウェア、ソフトウェア、またはそれらのどのような組み合わせによって実行され得る。
【００３１】
図２は、本発明の実施形態に従うノイズ除去モジュール１１６の図を示す。図２に示されるように、ノイズ除去モジュール１１６は、距離計算機２１０と、重み計算機２２０と、ノイズ除去された画像計算機２３０とを含む。実施形態においては、ノイズ除去モジュール１１６は、一度に、画像ウィンドウ２０２として認識される画像１８０の一部を評価する。たとえば、画像ウィンドウ２０２は、７×７の画素の行列であり得る。ノイズ除去モジュール１１６がスタンドアロン型のモジュールとして実行される場合は、７つのラインバッファが、画像ウィンドウ２０２からの画素の７つのラインを記憶するために用いられ、パイプライン実装（pipelined implementation）を可能にする。ノイズ除去モジュール１１６がデジタルオートフォーカスモジュール１１８の追加として実行される場合は、デジタルオートフォーカスモジュール１１８も画像１８０の画素を記憶するためのラインバッファを用いるので、追加のラインバッファは必要とされない。例として、デジタルオートフォーカスモジュール１１８は、９つの再使用可能なラインバッファを有し得る。画像ウィンドウ２０２のより詳細な説明が、図５Ａおよび図５Ｂを参照して、以下に与えられる。
【００３２】
実施形態においては、距離計算機２１０は、画像ウィンドウ２０２の中央または中間における画素と、その中間の画素に隣接する画素との間の値の差を計算する。これらの画素のより詳細な説明は、図５Ａおよび図５Ｂを参照して以下に与えられる。差の計算のより詳細な説明は、図６を参照して以下に与えられる。
【００３３】
実施形態においては、重み計算機２２０は、中間の画素に隣接する各画素についての重みを計算する。その重みは、距離計算機２１０において計算された差に依存する。重み計算は、図８を参照して以下により詳細に説明される。
【００３４】
実施形態においては、ノイズ除去された画素計算機２３０は、重み計算機２２０によって生成された重みを用い、中間の画素のノイズを除去する。ノイズ除去された画素計算機２３０は、新しい画素値を出力し、元の中間の画素値を置換する。ノイズ除去された画素計算機２３０は、図４および図９から図１３を参照して、以下により詳細に説明される。
【００３５】
ノイズ除去モジュール１１６は数回処理し、各回ごとに異なる画像ウィンドウ２０２を受信することに注意すべきである。実施形態においては、ノイズ除去モジュール１１６は、画像１８０内の各画素が、画像ウィンドウ２０２内の中間の画素として現れ、ノイズ除去された値に置換されるまで処理を行う。一旦、画像１８０内のすべての画素がノイズ除去され、かつそれらの値が置換されると、画像１８０は、ＩＳＰチェーンの残余のモジュールによって処理される。他の実施形態においては、ノイズ除去モジュール１１６は、画像１８０内の設定された数の画素がノイズ除去されるまで処理を行う。
【００３６】
ノイズ除去モジュール１１６がデジタルオートフォーカスモジュール１１８に包含される場合は、ノイズ除去モジュール１１６は、他の画像ウィンドウ２０２が処理される前に画像１８０のさらなる処理を行うために、デジタルオートフォーカスモジュール１１８の残りへ、ノイズ除去された中間の画素値を送ることに注意すべきである。
【００３７】
図３は、本発明の実施形態に従うノイズ除去モジュール１１６のより詳細な図である。具体的には、図３は、各中間の画素についてのノイズ除去された画素を生成するように相互作用するノイズ除去モジュール１１６の要素を示す。図３に示されるように、距離計算機２１０、重み計算機２２０およびノイズ除去された画素計算機２３０に加えて、ノイズ除去モジュール１１６は、さらに、パラメータセレクタ３４０およびしきい値調整器３５０を含む。実施形態においては、ノイズ除去モジュール１１６は、画像ウィンドウ２０２入力およびノイズ除去有効信号３０８を受信する。ノイズ除去有効信号３０８は、ノイズ除去モジュール１１６が、有効とされるかまたは無効とされるかを制御する。ノイズ除去有効信号３０８は、システム１００内のほかのモジュールから、または、ＩＳＰチェーン外部のソースから受信される。ＩＳＰチェーン外部の要素を含むシステム例は、図１４および図１５を参照して、以下に説明される。
【００３８】
画像１８０および画像ウィンドウ２０２から、たとえば、画像ノイズレベル３０４および中間画素値３０６を含む、いくつかの信号が導き出される。画像ノイズレベル３０４は、画像１８０におけるノイズのレベルと相関のある基準である。実施形態においては、この基準はシステム１００の前のモジュールにおいて計算され、ノイズ除去モジュール１１６へ入力される。他の実施形態においては、画像ノイズレベル３０４は、プレビューモードの間に計算され、ここでプレビューモードは、画像１８０が不揮発性メモリへ保存されることを生じない。代替的には、画像ノイズレベル３０４は、画像１８０に適用される、デジタルおよび／またはアナログゲインならびに露出時間の情報を用いて推定される。実施形態においては、中間画素値３０６は、画像ウィンドウ２０２における中間および画素の値である。
【００３９】
パラメータセレクタ３４０は、様々なノイズ除去パラメータプロファイルを記憶する。実施形態においては、パラメータセレクタ３４０は、画像ノイズレベル３０４を用いて、どのパラメータプロファイルを画像ウィンドウ２０２に適用するかを決定する。例として、限定はされないが、５つのパラメータプロファイルが定義され、ここで、第１のパラメータプロファイルは非常に低ノイズレベルのために選択され、第２のパラメータプロファイルは低ノイズレベルのために選択され、第３のパラメータプロファイルは中間のノイズレベルのために選択され、第４のパラメータプロファイルは高ノイズレベルのために選択され、そして第５のパラメータプロファイルは非常に高レベルのために選択される。
【００４０】
各パラメータプロファイルは、しきい値の数と、距離計算機２１０、重み計算機２２０、およびノイズ除去された画素計算機２３０によって用いられる定数とを定義する。実施形態においては、パラメータセレクタ３４０は、９つの定数である、空間ｗ値３６０ａ〜ｉを距離計算機２１０へ送り、しきい値３６２ａ〜ｄ、信号しきい値３７８ａ〜ｄ、および信号結果値３８０ａ〜ｅをしきい値調整器３５０へ送り、結果値３６４ａ〜ｅを重み計算機２２０へ送り、合計しきい値３６６および低重みしきい値３６８をノイズ除去された画素計算機２３０へ送る。これらのしきい値および定数は、図６から図８および図１２Ａ，図１２Ｂを参照して、以下により詳細に説明される。
【００４１】
実施形態においては、しきい値調整器３５０は、信号しきい値３７８ａ〜ｄ、信号結果値３８０ａ〜ｅ、および中間画素値３０６を用いて、しきい値３６２ａ〜ｄを調整し、調整されたしきい値３７６ａ〜ｄを出力する。代替的な実施形態においては、中間画素値３０６は、中間画素の隣接画素の値とともに、調整計算において用いられる。しきい値調整器３５０のより詳細な説明が、図７Ａおよび図７Ｂを参照して、以下に与えられる。しきい値調整器３５０は、調整されたしきい値３７６ａ〜ｄを、重み計算機２２０へ送る。
【００４２】
実施形態においては、距離計算機２１０は、画像ウィンドウ２０２および空間ｗ値３６０ａ〜ｉを用いて、環境距離３７０ａ〜ｈを計算する。距離計算機２１０は、環境距離３７０ａ〜ｈを重み計算機２２０へ送る。
【００４３】
重み計算機２２０は、結果値３６４ａ〜ｅ、環境距離３７０ａ〜ｈ、および調整されたしきい値３７６ａ〜ｄを用いて、環境重み３７２ａ〜ｈを決定する。実施形態においては、重み計算機２２０は、環境重み３７２ａ〜ｈをノイズ除去された画素計算機２３０へ送る。
【００４４】
実施形態においては、ノイズ除去された画素計算機２３０は、合計しきい値３６６、低重みしきい値３６８、環境重み３７２ａ〜ｈ、および画像ウィンドウ２０２を用いて、画像ウィンドウ２０２の中間画素についての、ノイズ除去された画素値３７４を決定する。ノイズ除去された画素計算機２３０は、ノイズ除去された画素値３７４を、ノイズ除去有効信号３０８によって制御されるマルチプレクサ３８２へ送る。ノイズ除去モジュール１１６がスタンドアロン型のモジュールであり有効とされる場合は、マルチプレクサ３８２は、ノイズ除去された画素値３７４を送る。そうでなく、ノイズ除去モジュール１１６がスタンドアロン型のモジュールであり無効とされる場合は、もとの画素値である中間画素値３０６が送られる。ノイズ除去モジュール１１６がスタンドアロン型のモジュールである場合は、マルチプレクサ３８２は、ノイズ除去された全画素画像、または画像１８０を単一の画素の代わりに送る。
【００４５】
図４は、本発明の実施形態に従う、ノイズ除去された画素計算機２３０の詳細図である。図４に示されるように、ノイズ除去された画素計算機２３０は、重み加算器４０２と、最大重み識別器４０４と、最小の２のべき乗計算機４０６と、中間重み計算機４０８と、加重平均計算機４１０とを含む。実施形態においては、重み加算器４０２は、環境重み３７２ａ〜ｈを利用して、それらの合計を見出す。重み加算器４０２は、この合計を、環境重み合計４１２の形式で、最小の２のべき乗計算機４０６および中間重み計算機４０８へ送る。重み加算器４０２は、図９を参照して、以下により詳細が説明される。
【００４６】
最大重み識別器４０４は、環境重み３７２ａ〜ｈを受信し、最大環境重みを識別する。実施形態においては、最大重み識別器４０４は、その結果を、中間重み計算機４０８へ送る。最大重み識別器４０４は、図１０を参照して、以下に、より詳細が説明される。
【００４７】
実施形態においては、最小の２のべき乗計算機４０６は、環境重み合計４１２より大きい、最小の２のべき乗を計算する。結果である最小の２のべき乗４１４は、中間重み計算機４０８へ進められる。最小の２のべき乗計算機４０６は、図１１を参照して、以下に、より詳細に説明される。
【００４８】
中間重み計算機４０８は、中間画素の重みが小さすぎないことを保障するためのいくつかの条件により、最小の２のべき乗を調整する。中間重み計算機４０８は、中間画素の重みも計算する。実施形態においては、両方の計算は、合計しきい値３６６、低重みしきい値３６８、環境重み合計４１２、最小の２のべき乗４１４、および最大環境重み４１６に依存する。中間重み４１８および更新された最小の２のべき乗４２０は、加重平均計算機４１０へ送られる。中間重み計算機４０８のより詳細な説明は、図１２Ａおよび図１２Ｂを参照して、以下に与えられる。
【００４９】
実施形態においては、加重平均計算機４１０は、環境重み３７２ａ〜ｈ、画像ウィンドウ２０２、中間重み４１８、および更新された最小の２のべき乗４２０を用いて、ノイズ除去された画素値３７４を計算し、もとの中間画素値を置換する。加重平均計算機４１０は、図１３を参照して、以下に、より詳細に説明される。
【００５０】
図５Ａおよび図５Ｂは、本発明の実施形態に従う画像ウィンドウ２０２の例を表示する。図５Ａにおいて示されるように、画像ウィンドウ２０２は７つのラインである、ライン５０２，５０４，５０６，５１０，５１２，５１４から構成され、トータルで４９個の画素で構成される。実施形態においては、画像ウィンドウ２０２についての最大サイズは、７×７の行列である。Ｘ9によって認識された画素は、画像ウィンドウ２０２の中間または中央の画素としても知られる。画素Ｘ1，Ｘ2，Ｘ3，Ｘ4，Ｘ5，Ｘ6，Ｘ7，Ｘ8は、中間画素に隣接する画素であり、最終的なノイズ除去された中間画素値の決定において用いられる。
【００５１】
実施形態においては、ノイズ除去された画素値を決定するために用いられ、かつ中間画素の周囲に定められる各画素の周囲の環境が定められる。各環境は、画素の３×３の行列である。たとえば、Ｘ1の環境は、Ｅ1_11，Ｅ1_21，Ｅ1_31，Ｅ1_12，Ｅ1_13，Ｅ1_23，Ｅ1_33，およびＸ1を含む。画素ウィンドウ２０２は、９つの環境を含み得る。環境は、２つまたはより多くの環境と共通であるいくつかの画素があるように重複することに注意すべきである。例として、ライン５０６における第３の画素は、左から右へ、Ｘ1，Ｘ2，Ｘ4，Ｘ9の環境と共通である。
【００５２】
図５Ｂに示されるように、画像ウィンドウ２０２内の各画素は、単一の色を表わす。この場合、各画素は、赤（Ｒ）、緑（Ｇ）、または青（Ｂ）のいずれかである。ベイヤーパターンによれば、各ラインは、赤の画素と緑の画素との交代、または青の画素と緑の画素との交代を含む。Ｘ1からＸ9は、全て同じ色であり、この場合は青である。この性質は、どの色であっても、Ｘ1からＸ9によって表わされることについても当てはまる。また、１つの環境における所与の位置においての色は、他の環境における同じ相対的な位置においての同じ色に対応する。たとえば、ライン５０６における左から右に向かって３番目の画素は赤であり、Ｘ1の環境の右下角に対応する。同様に、ライン５１０における左から右に向かって５番目の画素もまた赤であり、この場合にはＸ9の環境である、環境の右下角に対応する。以下に説明されるように、この性質は、距離計算器２１０の差の計算のために重要である。
【００５３】
図６から図１３は、ノイズ除去モジュール１１６のハードウェア図、および図５Ａ，図５Ｂに示された画像ウィンドウ２０２のそれらの画素の参照を示す。実施形態においては、以下のハードウェア実行例は、必要とされるゲートカウントを最小化する方法で設計される。しかしながら、他のハードウェア実行例が本発明を実行するために用いられ得るので、これは限定を意味するものではない。
【００５４】
図６は、本発明の実施形態に従う距離計算器２１０の詳細図である。図６に示されるように、距離計算器２１０は、少なくとも、減算ブロック６０２ａ〜ｉ、絶対値ブロック６０４ａ〜ｉ、バレルシフタ６０６ａ〜ｉ、および加算ブロック６０８ａ〜ｄ，６１０ａ〜ｂ，６１２，６１４を含む。実施形態においては、図６に示される要素は、環境距離３７０ａ〜ｈの１つを計算するために用いられる。追加的な７つの同じブロックが、環境距離３７０ａ〜ｈを並行して計算するために、距離計算器２１０に設けられる。代替的な実施形態においては、図示しないが、図６に示される要素が１度に１回、各環境距離３７０ａ〜ｈを計算するように、各環境距離３７０ａ〜ｈが連続的に計算される。本明細書で説明されるように、図６に示される要素が環境距離３７０ａを計算するように想定される。
【００５５】
環境距離３７０ａ〜ｈは、中間画素に隣接する画素の環境１つの画素値から中間画素の環境の画素値を減算することによって計算される。実施形態においては、図６に示される要素は、環境距離３７０ａ〜ｈを決定するために用いられる以下の式を物理的に表わす。
【００５６】
【数１】
0005653913.tif 000002
【００５７】
ここで、Ｄkは８つの環境距離３７０ａ〜ｈのうちの１つを示し、Spatial_W[i,j]は９つ
の空間ｗ値３６０ａ〜ｉを示し、ＥkはＸkの環境における画素値を示し、ｋは１から８まで実行し、ｉおよびｊは３×３の画素行列内の位置を決定する。差の絶対値が、どの環境距離３７０ａ〜ｈも負でないことを保証するために使用されることに注意すべきである。
【００５８】
実施形態においては、空間ｗ値３６０ａ〜ｉは、環境内のそれらの位置に基づいて、異なる重要度を画素に適用するために用いられる重みとして機能する。空間ｗ値３６０ａ〜ｉは、３×３の画素行列として編成される。実施形態においては、各空間ｗ値３６０ａ〜ｉは２のべき乗であり、空間ｗ値３６０ａ〜ｉの２を底とする対数が、各個別のバレルシフタ６０６ａ〜ｉに結合されるレジスタ（図示せず）に記憶される。これによって、バレルシフタ６０６ａ〜ｉを、乗算器またはドライバとして機能させることができ、Ｅ9_xyとＥ1_xyとの間の差の絶対値は、対応する空間ｗ値３６０ａ〜ｉが１より小さい場合は右にシフトされたビットであり、対応する空間ｗ値３６０ａ〜ｉが１より大きい場合は左にシフトされたビットである。
【００５９】
空間ｗ値３６０ａ〜ｉの合計は、環境距離３７０ａ〜ｈのダイナミックレンジに対応する。たとえば、空間ｗ値３６０ａ〜ｉの合計が１の場合、環境距離３７０ａ〜ｈは１のダイナミックレンジを有し、環境距離３７０ａ〜ｈが、画像ウィンドウ２０２の画素値と同じビット解像度であることを意味している。空間ｗ値３６０ａ〜ｉの合計が１６の場合、環境距離３７０ａ〜ｈは、合計が１のときより１６倍大きいダイナミックレンジを有する。より小さいダイナミックレンジが望ましいが、より少ないビットで環境距離３７０ａ〜ｈを表わすことが必要とされ、かつゲートカウントが減少するので、合計およびダイナミックレンジには制限はない。空間ｗ値３６０ａ〜ｉを１／２，１／４などと掛け合わせることによって、２のべき乗である重みを維持しながら、ダイナミックレンジを低減することが可能であることに注意すべきである。以下の表１は、可能性のある空間ｗ値３６０ａ〜ｉの４つの例を与える。
【００６０】
【表１】
0005653913.tif 000003
【００６１】
代替的な実施形態においては、表１の最も右の例に示されるように、空間ｗ値３６０ａ〜ｉは２のべき乗ではない。これは、より複雑な方法で、式（１）に示されるような、絶対値による重みの乗算を実行することが要求され得る。たとえば、乗算器および／または加算器が、その乗算を実行するために、バレルシフタ６０６ａ〜ｉとともに用いられ得る。全体として、空間ｗ値３６０ａ〜ｉは、必要に応じて、所望のノイズ除去レベルを達成するように調整される。
【００６２】
式（１）は画素値における差を見出すことを説明するが、環境距離３７０ａ〜ｈは、それらが、Ｘ1からＸ9の中間画素に隣接する画素の各環境がどれくらい中間画素に近接しているかを表わしているので、「距離」と呼ばれることに注意すべきである。たとえば、Ｘ3およびＸ9の環境が、画素値の点でほぼ同一である場合は、環境距離３７０ｃまたはＤ3は、非常に低い値を受ける。しかしながら、その反対が正である場合は、環境距離３７０ｃは非常に高い値を受ける。
【００６３】
例として、限定はされないが、画素値Ｅk_xyは１２ビットまで拡大し、バレルシフタ６０６ａ〜ｉに到達する多くとも１２ビットの値をもたらす。バレルシフタ６０６ａ〜ｉに結合されたレジスタ内に記憶されたそれらの値は、最大３ビットであり、絶対値が右または左に最大７ビットシフトされたことを意味する。シフト値６２４ａ〜ｉのビット解像度は、バレルシフタ６０６ａ〜ｉによって受信された絶対値のビット解像度に依存し、この場合は１２ビットである。加算器に続く各合計値である第１の合計６２６ａ〜ｄ、第２の合計６２８ａ〜ｄ、第３の合計６３０、および環境距離３７０ａは、一緒に加算される２つの値の最大ビット解像度よりも１ビット高い最大ビット解像度を有する。したがって、この場合には、第１の合計６２６ａ〜ｄの最大ビット解像度は１３ビットであり、第２の合計６２８ａ〜ｄの最大ビット解像度は１４ビットであり、第３の合計６３０の最大ビット解像度は１５ビットであり、環境距離３７０ａの最大ビット解像度は１６ビットである。
【００６４】
一旦、環境距離３７０ａ〜ｈが計算されると、環境重み３７２ａ〜ｈが重み計算機２２０によって計算される。実施形態においては、環境重み３７２ａ〜ｈは、環境距離３７０ａ〜ｈをしきい値と比較することによって演算される。しかしながら、これらの比較に先立って、しきい値が調整され得る。
【００６５】
図７Ａおよび図７Ｂは、本発明の実施形態に従う、しきい値調整器３５０のより詳細な図を示す。図７Ａおよび図７Ｂに示されるように、しきい値調整器３５０は、比較器７０２ａ〜ｄと、マルチプレクサ論理７０４と、右バレルシフタ７５０ａ〜ｄとを含む。図７Ａに示されるように、画像ウィンドウ２０２の信号レベルは、適切な調整を決定するために用いられる。この信号レベルは、比較器７０２ａ〜ｄの入力ａである。第１の実施形態においては、この信号レベルは、中間画素値３０６である。第２の実施形態においては、図示されないが、この信号レベルはＸ1からＸ9の加重平均である。例として、以下の式が、この実施形態における信号レベルを計算するために用いられる。
【００６６】
【数２】
0005653913.tif 000004
【００６７】
ここで、Ｗｉは２のべき乗である。Ｗｉの合計は、もしそれがもともと２のべき乗でない場合は、除算を避けるために最も近い２のべき乗に正規化される。第３の実施形態においては、図示されないが、この信号レベルは、以下の式に従って見出される。
【００６８】
【数３】
0005653913.tif 000005
【００６９】
第４の実施形態においては、図示されないが、この信号レベルは、以下の式に従って見出される。
【００７０】
【数４】
0005653913.tif 000006
【００７１】
一旦信号レベルが決定されると、各信号しきい値３７８ａ〜ｄと比較される。また、上述のように、これらの信号しきい値３７８ａ〜ｄは、画像ノイズレベル３０４に基づいて生じる。例として、信号しきい値３７８ａ〜ｄは、１０ビットの画素値について、それぞれ１５０、３００、５００および８００である。比較器７０２ａ〜ｄは、信号レベルがそれぞれの信号しきい値３７８ａ〜ｄより大きいか否かを判断し、それぞれの比較器結果７０８ａ〜ｄをマルチプレクサ論理７０４へ送出する。実施形態においては、比較器結果７０８ａ〜ｄは１ビットの値であり、信号レベル倍率７１０を決定するために用いられるアドレスとして機能する。たとえば、信号レベルが信号しきい値３７８ａ〜ｂより大きいが、信号しきい値３７８ｃ〜ｄより大きくない場合は、アドレスは１１００である。この場合においては、信号結果値３８０ｃは、信号レベル倍率７１０として用いられる。したがって、信号結果値３８０ａ〜ｅのうちの１つが信号レベル倍率７１０となることになる。例として、信号結果値３８０ａ〜ｅは、１０ビットの画素値について、それぞれ１６、８、４、２、および１である。信号結果値３８０ａ〜ｅは、信号レベルの反比例することに注意すべきである。実施形態においては、信号結果値３８０ａ〜ｅは、８の最大ビット解像度を有する。以下の式が、信号レベル倍率７１０を計算するために用いられる。
【００７２】
【数５】
0005653913.tif 000007
【００７３】
ここで、ＳＲＶa-eはそれぞれ信号結果値３８０ａ〜ｅであり、ＳＴＶa-dは信号しきい値３７８ａ〜ｄであり、ＭＡＸは信号レベルの最大ビット解像度によって決定された値より小さい１（one）である。
【００７４】
図７Bに示されるように。信号レベル倍率７１０は、しきい値３６２ａ〜ｄをスケーリングするために用いられる。実施形態においては、しきい値３６２ａ〜ｄおよび信号レベル倍率７１０が２のべき乗である場合は、右バレルシフタ７５０ａ〜ｄは、しきい値３６２ａ〜ｄを信号レベル倍率７１０で適切に除算するのに十分である。この場合には、しきい値３６２ａ〜ｄは、信号レベル倍率７１０の２を底とする対数によって右方向にシフトされたビットであり、調整されたしきい値３７６ａ〜ｄを生成する。代替的な実施形態のいては、しきい値３６２ａ〜ｄおよび／または信号レベル倍率７１０が２のべき乗でない場合は、除算を実行するために、たとえば、加算器や乗算器のような、追加的なハードウェアが必要となる。以下の式は、図７Ｂの要素によって表わされる。
【００７５】
【数６】
0005653913.tif 000008
【００７６】
計算後、調整されたしきい値３７６ａ〜ｄは、重み計算機２２０へ送られる。
図８は、本発明の実施形態に従う重み計算機２２０のより詳細な図である。図８に示されるように、重み計算機２２０は、比較器８０２ａ〜ｄと、マルチプレクサ論理８０４とを含む。実施形態においては、図８における要素は、環境重み３７２ａ〜ｈのうちの１つを計算するために用いられる。さらなる７つの同一のブロックが、すべての環境重み３７２ａ〜ｈを並行して計算するために、重み計算機２２０内に設けられる。代替的な実施形態においては、図示しないが、各環境重み３７２ａ〜ｈは、図８に示される要素が各環境重み３７２ａ〜ｈを１度に１回計算するように、順番に計算される。本明細書で説明されるように、図８に示される要素は、環境重み３７２ａを計算するものとされる。
【００７７】
実施形態においては、比較器８０２ａ〜ｄは、調整されたしきい値３７６ａ〜ｄが環境距離３７０ａより大きいか否かを判断し、それらの比較結果８０８ａ〜ｄをマルチプレクサ論理８０４へ送出する。環境距離３７０ａは環境重み３７２ａに対応し、環境距離３７０ｂは環境重み３７２ｂに対応する、などとなることに注意すべきである。比較結果８０８ａ〜ｄは１ビット値であり、環境距離３７２ａを決定するために用いられるアドレスとして機能する。たとえば、環境距離３７０ａが調整されたしきい値３７６ａより大きいけれども、調整されたしきい値３７６ｂ〜ｄよりも大きくない場合は、アドレスは１０００である。この場合、結果値３６４ｂは、環境重み３７２ａとして用いられる。これは、結果値３６４ａ〜ｅのうちの１つが環境重み３７２ａになることになる。例として、結果値３６４ａ〜ｅは、それぞれ３２、１６、８、２および１である。２のべき乗の結果値３６４ａ〜ｅを有することは、さらなる乗算について余分なハードウェアを必要としないので、ゲートカウントを低減することに注意すべきである。また、小さい環境距離３７０ａ〜ｈが距離メトリックの意味でより近接した環境を表わすので、結果値３６４ａ〜ｅは降順であることにも注意すべきである。これは、中間画素値の環境から、距離メトリックの意味で離れた環境が、ノイズ除去された画素値３７４についてより小さい効果を有するように、環境重み３７２ａ〜ｈが環境距離３７０ａ〜ｈに反比例することになる。実施形態においては、結果値３６４ａ〜ｅは、８の最大ビット解像度を有し、レジスタ内に記憶される。以下の式が、環境重み３７２ａを計算するために用いられる。
【００７８】
【数７】
0005653913.tif 000009
【００７９】
ここで、ＲＶa-eはそれぞれ結果値３６４ａ〜ｅであり、ＡＴＶa-dは調整されたしきい値３７６ａ〜ｄであり、ＭＡＸは環境距離３７０ａ〜ｈの最大ビット解像度によって決定された値より小さい１（one）である。例として、合計して１になる空間ｗ値３６０ａ〜ｉおよび１２ビットの画素値ビット解像度について、ＭＡＸは４０９５である。式（７）はいかなる環境重み３７２ａ〜ｈについての計算にも適用されることに注意すべきである。
【００８０】
図８に示された構造が、図７Ａに示された構造と類似していることに注意すべきである。実施形態においては、図示されないが、重み計算機２２０およびしきい値調整器３５０は、それらの個別のタスクを達成するために、同じ構造を共有する。
【００８１】
代替的な実施形態においては、図示されないが、環境重み３７２ａ〜ｈは、より複雑な式を用いて計算される。例として、以下の５つの式が、環境距離３７０ａ〜ｈと環境重み３７２ａ〜ｈとの間の反比例関係を生成するために用いられ得る。
【００８２】
【数８】
0005653913.tif 000010
【００８３】
ここで、σおよびａはいくつかの定数であり、各環境重み３７２ａ〜ｈおよび環境距離３７０ａ〜ｈの対をカバーするために、ｋは１から８までの値をとる。式（８）〜（１２）は、実行例における図８の設計よりも多くのゲートカウントを必要とすることに注意すべきである。
【００８４】
一旦、環境重み３２７ａ〜ｈが決定されると、ノイズ除去された画素値３７４を見出すためのプロセスが起動される。図９〜図１３は、ノイズ除去された画素計算機２３０のより詳細な図を提供し、ノイズ除去された画素値３７４の探索がどのように達成されるかを示す。しかしながら、中間画素値３０６の重みである中間重み４１８が、ノイズ除去された画素値３７４の探索に先立って必要とされる。第１の実施形態においては、中間重み４１８は、環境重み３７２ａ〜ｈの合計である環境重み合計４１２に基づく値である。この実施形態においては、環境重み合計４１２は、重み加算器４０２によって計算される。
【００８５】
図９は、本発明の実施形態に従う重み加算器４０２のより詳細な図である。図９に示されるように、重み加算器４０２は、加算器９０２ａ〜ｄ、９０４ａ〜ｂおよび９０６を含む。加算器９０２ａ〜ｄは、環境重み３７２ａ〜ｈを受け、１度に２つの環境重み３７２ａ〜ｈを合計して第１の合計９１０ａ〜ｄを生成する。例として、環境重み３７２ａ〜ｈは、８ビットの最大ビット解像度を有し、これは第１の合計９１０ａ〜ｄが９ビットの最大ビット解像度を有することを意味する。加算器９０４ａ〜ｂは、１度に２回、第１の合計９１０ａ〜ｄを合計し、第２の合計９１２ａ〜ｂを生成する。実施形態においては、第２の合計９１２ａ〜ｂは、１０ビットの最大ビット解像度を有する。最終的に、加算器９０６は、第２の合計９１２ａ〜ｂを合計して環境重み合計４１２を生成し、それは１１ビットの最大ビット解像度を有する。実施形態においては、環境重み合計４１２は、最小の２のべき乗計算機４０６および中間重み計算機４０８の両方へ送られる。環境重み合計４１２を見出すために用いられる計算は、以下の式によって表わされる。
【００８６】
【数９】
0005653913.tif 000011
【００８７】
ここで、Ｗkは環境重み３７２ａ〜ｈのうちの１つを表わす。
同時にあるいは異なるときに、最大重み識別器４０４が、最大環境重み４１６を計算する。図１０は、本発明の実施形態に従う最大重み識別器４０４のより詳細な図である。図１０に示されるように、最大重み識別器４０４は、比較器１００２ａ〜ｄ，１００４ａ〜ｂ、１００６を含む。比較器１００２ａ〜ｄの各々は、一対の環境重み３７２ａ〜ｈを受け、その対においてどちらの環境重み３７２ａ〜ｄがより大きいかを判断する。比較器１００２ａ〜ｄは、より大きい環境重み３７２ａ〜ｈを、第１の最大値１０１０ａ〜ｄとして、比較器１００４ａ〜ｂへ通過させる。比較器１００４ａ〜ｂの各々は、その後、第１の最大値１０１０ａ〜ｄのうちのどちらがより大きいかを判断し、それらの結果を第２の最大値１０１２ａ〜ｂとして比較器１００６へ通過させる。そして、比較器１００６は、第２の最大値１０１２ａ〜ｂのうちのどちらがより大きいかを判断し、最大環境重み４１６を結果としてもたらす。第１の最大値１０１０ａ〜ｄ、第２の最大値１０１２ａ〜ｂおよび最大環境重み４１６は、環境重み３７２ａ〜ｈと同じ最大ビット解像度を有することに注意すべきである。実施形態においては、最大環境重み４１６は中間重み計算機４０８へ送られる。最大環境重み４１６を見出すために用いられる計算は、以下の式によって表わされる。
【００８８】
【数１０】
0005653913.tif 000012
【００８９】
ここで、Ｗkは環境重み３７２ａ〜ｈのうちの１つを表わす。
ゲートカウントを最小化するために、中間重み４１８が決定される前に、最小の２のべき乗４１４が、最小の２のべき乗計算機４０６によって計算される。図１１は、本発明の実施形態に従う最小の２のべき乗計算機４０６のより詳細な図である。図１１に示されるように、最小の２のべき乗計算機４０６は、右バレルシフタ１１０２ａ〜ｋと、比較器１１０４ａ〜ｋと、反転器１１０６ａ〜ｋと、加算器１１０８とを含む。実施形態においては、環境重み合計４１２が、各右バレルシフタ１１０２ａ〜ｋによって受信され、示された数だけ右にビットシフトされてシフト値１１１０ａ〜ｋを生成する。たとえば、シフト値１１１０ｃは、２ビット右にビットシフトされた環境重み合計４１２と等価である。環境重み合計４１２の最大ビット解像度が１１ビットの場合は、シフト値１１１０ａの最大ビット解像度は１１ビットであり、シフト値１１１０ｂの最大ビット解像度は１０ビットであり、シフト値１１１０ｃの最大ビット解像度は１１ビットである、といったようになる。
【００９０】
各シフト値１１０ａ〜ｋが、ゼロと等しいかどうかを判断するために、比較器１１０４ａ〜ｋによってチェックされ、１ビットの結果１１１２ａ〜ｋをもたらす。実施形態においては、結果１１１２ａ〜ｋは、それぞれのシフト値１１１０ａ〜ｋがゼロに等しい場合はｈｉｇｈであり、そうでない場合はｌｏｗである。これらの結果１１１２ａ〜ｋは、反転器１１０６ａ〜ｋによって反転され、ともに統合されて結果１１１４を形成する。例として、反転された結果１１１４は１１ビットであり、反転された結果１１１２ａは最下位ビットとして機能し、反転された結果１１１２ｋは最上位ビットとして機能する。
【００９１】
最終的に、加算器１１０８は、反転された結果１１１４に１を加算し、１１ビットの最小の２のべき乗４１４をもたらす。最小の２のべき乗４１４を見出すために、いかなる実行可能な概略設計が用いられるので、図１１は、限定されることを意味されたものではないことに注意すべきである。例として、より複雑な設計は、最小の２のべき乗４１４を決定するために、環境重み合計４１２の２を底とする対数を用いる。この場合においては、最小の２のべき乗４１４の計算は、以下の式によって表わされる。
【００９２】
ＭＰ２＝２ceil(log2(weight sum))                                （１６）
ここで、ｃｅｉｌは、２を底とする対数の結果を丸めて、最も近い整数にしたものである。実施形態においては、最小の２のべき乗４１４は、中間重み計算機４０８に送られる。最小の２のべき乗４１４を用いて、中間重み計算機４０８は中間重み４１８を演算する。
【００９３】
図１２Ａ〜図１２Ｂは、本発明の実施形態に従う中間重み計算機４０８のより詳細な図である。図１２Ａ〜図１２Ｂに示されるように、中間重み計算機４０８は、比較器１２０２および１２１４と、マルチプレクサ論理１２０４および１２１８と、左バレルシフタ１２１０と、減算器１２１２および１２２０と、左バレルシフタ１２２２とを含む。中間重み４１８および可能性のある更新された最小の２のべき乗４１４を出力する前に、中間重み計算機４０８は、ノイズ除去された画素値３７４が、最終的に正しく計算されることを保証するために、いくつかの最終状況（end case）をチェックする。
【００９４】
図１２Ａは、最終状況をチェックするために用いられる第１の条件を示す。比較器１２０２は、最小の２のべき乗を合計しきい値３６６と比較して、どちらがより大きいかを判断し、比較器結果１２０６をマルチプレクサ論理１２０４へ出力する。実施形態においては、比較器結果１２０６は、どのデータ入力が中間の最小２のべき乗１２０８になるかを判定するために用いられるアドレスとして機能する、１ビットの値である。この場合においては、最小２のべき乗４１４および合計しきい値３６６は、マルチプレクサ論理１２０４へのデータ入力としても機能する。例として、最小２のべき乗４１４が合計しきい値３６６より大きい場合は、比較器結果１２０６はｌｏｗであり、結果として最小２のべき乗４１４が中間の最小２のべき乗１２０８になる。基本的に、中間の最小２のべき乗１２０８はマルチプレクサ論理１２０４のデータ入力のうちのより大きいほうになる。実施形態においては、最小２のべき乗４１４および合計しきい値３６６の両方は、１１ビットの最大ビット解像度を有し、これは、中間の最小２のべき乗１２０８もまた１１ビットの最大ビット解像度を有することを意味する。
【００９５】
第１の条件の目的は、各環境重み３７２ａ〜ｈが、たとえば１または２のような非常に低い値を受け、結果として低い環境重み合計４１２をもたらす最終状況を取り扱うことである。低い環境重み合計４１２は、以下に説明するように、環境重み３７２ａ〜ｈと中間重み４１８との加重平均に対する環境重み３７２ａ〜ｈの相対的なパーセンテージが高いような、最終的に低い中間重み４１８をもたらす。実施形態においては、環境重み３７２ａ〜ｈと中間重み４１８との加重平均に対する環境重み３７２ａ〜ｈの相対的なパーセンテージが、実際に望まれる。たとえば、環境重み３７２ａ〜ｈが０，０，０，０，０，１，１，１の値をそれぞれ受け、環境重み合計４１２は３であり、最小の２のべき乗４１４は４であり場合は、以下の式（１８）によれば中間重み４１８は１であり、したがって、全体の加重平均のたった１／４になる。一方、たとえ、低い環境重み３７２ａ〜ｈが、それらの環境が中間画素の環境に近くないことを示すことを考慮して、そのような重みをこれらの画素に与えることが望ましくなくとも、その他の画素Ｘ1〜Ｘ9は３／４の割合を受ける。例として、合計しきい値３６６は１６である。以下に示されるように、これは、中間重み４１８が、全体の加重平均の１３／１６になるという結果をもたらす。
【００９６】
図１２Ｂは、最終状況をチェックするために用いられる第２の条件を示す。減算器１２１２は、中間の最小の２のべき乗１２０８から環境重み合計４１２を差し引き、その結果を比較器１２１４の入力ａへ送出する。左バレルシフタ１２１０は、最大環境重み４１６を、低い重みしきい値３６８だけ左にビットシフトする。実施形態においては、低い重みしきい値３６８は、３ビットの最大ビット解像度を有し、レジスタ内に記憶される。そして、最大環境重み４１６は、７ビットと同じだけ左にビットシフトされる。ビットシフトされた最大環境重み４１６は、比較器１２１４の入力ｂへ送出される。
【００９７】
実施形態においては、比較器１２１４は、どちらの入力がより大きいかを判断し、比較器結果１２１６をマルチプレクサ論理１２１８へ送る。比較器結果１２１６は、１ビットの値であり、マルチプレクサ論理１２１８へのデータ入力を識別するアドレスとして機能する。入力１は１ビットだけ左にビットシフトされた中間の最小の２のべき乗１２０８であり、入力０は中間の最小の２のべき乗である。実施形態においては、入力０は、中間および最小の２のべき乗に一致する１１ビットの最大ビット解像度を有するが、入力１は左へのビットシフトによる１２ビットの最大ビット解像度を有する。比較器結果１２１６によって選ばれた入力は、更新された最小の２のべき乗４２０になり、ここで、更新された最小の２のべき乗４２０は、１２ビットの最大ビット解像度を有する。基本的に、中間の最小の２のべき乗１２０８および環境重み合計４１２との間の差が、最大環境重み４１６が掛け合わされた低いしきい値３６８よりも大きい場合は、更新された最小の２のべき乗４２０は中間の最小の２のべき乗と同じままである。そうでなければ、更新された最小の２のべき乗４２０は、中間の最小の２のべき乗１２０８の２倍になる。
【００９８】
この条件の目的は、中間および２のべき乗１２０８と環境重み合計４１２との間の差が正の低い値であるような最終状況を取り扱うことである。式（１８）を参照して以下に説明されるように、正の低い値は、中間重み４１１８が小さすぎる値になることを結果的にもたらす。たとえば、環境重み合計４１２は３０であり、中間の２のべき乗１２０８は３２である場合、中間重み４１８は２である。これは、第１の条件に関して上述したものと同様の問題を引き起こす。中間重み４１８がより高い値を受けることを保障するために、中間の２のべき乗１２０８はベースライン値と比較され、この場合においては、低い重みしきい値３６８が最大環境重み４１６と掛け合わされ、それが低くなりすぎる場合には調整される。以下の式は、図１２Ａ〜図１２Ｂにおいて実行される演算を数値的に表す。
【００９９】
【数１１】
0005653913.tif 000013
【０１００】
ここで、第１の条件におけるＭＰ２は最小の２のべき乗４１４であり、第２の条件におけるＭＰ２は中間の最小の２のべき乗１２０８であり、ＳＴＶは合計しきい値３６６であり、ＬＷＴＶは低い重みしきい値３６８である。
【０１０１】
一旦、更新された最小の２のべき乗４２０が見出されると、中間重み４１８が計算され得る。実施形態においては、減算器１２２０は、更新された最小の２のべき乗４２０から環境重み合計４１２を減算し、中間重み４１８を結果としてもたらす。以下の式は、中間重み４１８の計算を表すために用いられる。
【０１０２】
Ｗ9＝ＭＰ２−Ｗｅｉｇｈｔ  Ｓｕｍ                            （１８）
ここで、ＭＰ２は更新された最小の２のべき乗４２０である。更新された最小の２のべき乗４２０が１２ビットの最大ビット解像度を有し、かつ環境重み合計４１２が１１ビットの最大ビット解像度を有するので、中間重み４１８は１１ビットの最大ビット解像度を有する。実施形態においては、中間重み４１８および更新された最小の２のべき乗４２０の両方は、加重平均計算機４１０へ送られる。
【０１０３】
第２の実施形態においては、図示されないが、中間重み４１８は、最大環境重み４１６の倍数の値に設定される。たとえば、以下の式は、中間重み４１８を見出すためのアルゴリズムを示す。
【０１０４】
【数１２】
0005653913.tif 000014
【０１０５】
ここで、ｂは、パラメータセレクタ３４０によってレジスタ内に記憶された、１，２，３，４などの整数である。実施形態においては、ｂは、ゲートカウントを低減するために、２のべき乗であることが好ましい。
【０１０６】
式（１９）は、中間重み４１８が、少なくともｂ回、その周囲の画素Ｘ1からＸ8の最高の重みを受けることを保障する。ｂの値は、ノイズ除去の所望のレベルに従って調整される。しかしながら、最終的な重みの合計は、たとえば、加重平均計算機４１０によって実行されるべき除算を必要とする２のべき乗である必要はない。
【０１０７】
環境重み合計４１２がゼロの場合、中間重み４１８は１の値を受けることに注意すべきである。たとえば、これは、結果値３６４ａ〜ｅの少なくとも１つが０の場合に生じる。以下に説明されるように、除算演算を実行する必要なく、最終加重平均を正規化することがより容易になるので、更新された最小の２のべき乗４２０は２のべき乗であることに注意すべきである。
【０１０８】
図１３は、本発明の実施形態に従う加重平均計算機４１０のより詳細な図である。図１３に示されるように、加重平均計算機４１０は、乗算器１３０４と、左バレルシフタ１３０６ａ〜ｈと、加算器１３０８ａ〜ｄ，１３１０ａ〜ｂ，１３１２および１３１４と、右バレルシフタ１３１６とを含む。図１３における要素は、Ｘ1からＸ9の画素値の加重平均を計算するために用いられる設計を示す。
【０１０９】
各左バレルシフタ１３０６ａ〜ｈは、入力として、中間画素近傍のうちの１つの画素値を利用し、画素のそれぞれの環境重み３７２ａ〜ｈの２を底とする対数だけ、各々を左にビットシフトし、結果として左シフト値１３２４ａ〜ｈをもたらす。たとえば、Ｘ1の画素値は、環境重み３７２ａの２を底とする対数だけ左にビットシフトされ、左シフト値１３２４ａを生成する。１２ビットの画素値と仮定すると、２を底とする対数は、最大３ビットであり、各画素値が７ビットまで左にビットシフトされることを意味する。左シフト値１３２４ａ〜ｈは、その後、１９ビットの最大ビット解像度を有する。
【０１１０】
中間重み４１８は、２のべき乗である必要はないので、乗算器１３０４は左バレルシフタ１３０６ａ〜ｈと同じ機能を実行することが必要とされる。実施形態においては、乗算器１３０４は、中間画素値３０６であるＸ9を中間重み４１８と掛け合わせ、結果として乗算値１３２２をもたらす。中間画素値３０６は１２ビットであり、かつ中間重み４１８は１１ビットの最大ビット解像度を有するので、乗算値１３２２は、２３ビットの最大ビット解像度を有する。
【０１１１】
加算器１３０８ａ〜ｄは、第１の合計１３２６ａ〜ｄを見出すために、左シフト値１３２４ａ〜ｈの対を加算し、それは２０ビットの最大ビット解像度を有する。加算器１３１０ａ〜ｂは、第１の合計１３２６ａ〜ｄを受け、２１ビットの最大ビット解像度を有する第２の合計１３２８ａ〜ｂを結果としてもたらす。加算器１３１２は、第２の合計１３２８ａ〜ｂを合計して、２２ビットの最大ビット解像度を有する第３の合計１３３０を計算する、その後、加算器１３１４は、第３の合計１３３０を乗算値１３２２へ加算し、その合計を右バレルシフタ１３１６に送出し、その合計は２３ビットの最大ビット解像度を有する。この場合には、重みの合計が２０４８よりも大きくなるはずがないので、その合計は２３ビットの最大ビット解像度を有することに注意すべきである。
【０１１２】
最後に、右バレルシフタ１３１６は、その合計を、更新された最小の２のべき乗４２０の、２を底とする対数だけ右にビットシフトする。実施形態においては、２を底とする対数は４ビットの最大ビット解像度を有し、これは、その合計が１６ビットと同じだけ右にビットシフトされることを意味する。右バレルシフタ１３１６の出力は、ノイズ除去された画素値３７４である。ビットシフト後、ノイズ除去された画素値３７４のビット解像度が、この場合は１２ビットである他のすべての画素値のビット解像度よりも大きい場合は、ノイズ除去された画素値３７４は、他の画素値によって共有されるビット解像度に縮小される。加重平均計算は、以下の式によって表される。
【０１１３】
【数１３】
0005653913.tif 000015
【０１１４】
ここで、環境重み３７２ａ〜ｈおよび中間重み４１８は合計されて２のべき乗とされ、複雑な除算計算を回避する。
【０１１５】
上述のように、パラメータセレクタ３４０によって決定される定数およびしきい値を設定することによって、ノイズ除去のレベルを制御することが可能である。例として、１２ビットの画素解像度を仮定すると、以下のパラメータが、第１、第２、および第３のパラメータプロファイルのために用いられる。
【０１１６】
【表２】
0005653913.tif 000016
【０１１７】
図１４は、本発明の実施形態が実行され得るモバイル装置例１４００についてのブロック図である。モバイル装置１４００は、カメラアセンブリ１４０２と、カメラ・グラフィックスインターフェース１４８０と、通信回路１４９０とを備える。カメラアセンブリ１４０２は、カメラレンズ１４３６と、画像センサ１４７２と、画像プロセッサ１４７４とを含む。カメラレンズ１４３６は、単一のレンズまたは複数のレンズ群を備え、画像センサ１４７２上に光を集めるともに焦点を合わせる。画像センサ１４７２は、カメラレンズ１４３６によって集められかつ合焦された光によって形成された画像を捕らえる。画像センサ１４７２は、電荷結合素子（charge-coupled device：ＣＣＤ）または相補型金属酸化半導体（complementary metal oxide semiconductor：ＣＭＯＳ）画像センサのような、従来型の画像センサ１４７２であり得る。画像プロセッサ１４７４は、メモリ１４９６内への後続の記憶のため、ディスプレイ１４２６への出力のため、および／または、通信回路１４９０による伝送のために、画像センサによって捕捉された生の（raw）画像データを処理する。画像プロセッサ１４７４は、当技術分野において周知の、画像データを処理するようにプログラムされた従来型のデジタル信号プロセッサであり得る。
【０１１８】
画像プロセッサ１４７４は、カメラ・グラフィックスインターフェース１４８０を介して、通信回路１４９０とインターフェースする。通信回路１４９０は、アンテナ１４１２と、送受信器１４９３と、メモリ１４９６と、マイクロプロセッサ１４９２と、入力／出力回路１４９４と、音声処理回路１４０６と、ユーザインターフェース１４９７とを備える。送受信器１４９３は、信号を受信および送信するために、アンテナ１４１２と結合される。送受信器１４９３は、完全に機能的なセルラー無線送受信器であり、それは、グローバルシステム・フォー・モバイルコミュニケーション（Global System for Mobile Communications：ＧＳＭ）、ＴＩＡ／ＥＩＡ−１３６、ｃｄｍａＯｎｅ、ｃｄｍａ２０００、ＵＭＴＳ、および広帯域ＣＤＭＡ（Wideband CDMA）として、一般的に知られた標準を含む、いかなる公知の標準に従って動作し得る。
【０１１９】
画像プロセッサ１４７４は、センサ１４７２によって取得された画像を、本明細書で説明した１つまたはより多くの実施形態を用いて処理し得る。画像プロセッサ１４７４は、ハードウェア、ソフトウェア、または、ソフトウェアおよびハードウェアのいくつかの組み合わせによって実現され得る。たとえば、画像プロセッサ１４７４は、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）の一部として実現され得る。他の例として、画像プロセッサ１４７４は、本発明の１つまたはより多くの実施形態を実行するために、コンピュータ読取可能媒体上に記憶される指令にアクセスすることができるとともに、それらの指令をプロセッサ上で実行することができる。
【０１２０】
マイクロプロセッサ１４９２は、メモリ１４９６内に記憶されたプログラムに従って、送受信器１４９３を含む、モバイル装置１４００の動作を制御する。マイクロプロセッサ１４９２は、本明細書で開示された画像処理実施例の部分または全体を、さらに実行し得る。処理機能は、単一のマイクロプロセッサ、または複数のマイクロプロセッサで実行され得る。適当なマイクロプロセッサは、たとえば、汎用および専用の両方のマイクロプロセッサならびにデジタル信号プロセッサを含み得る。メモリ１４９６は、モバイル通信装置内のメモリの全体の階層を表し、ランダムアクセスメモリ（ＲＡＭ）および読取専用メモリ（read-only memory：ＲＯＭ）の両方を含み得る。動作のために必要とされるコンピュータプログラム指令およびデータは、ＥＰＲＯＭ、ＥＥＰＲＯＭ、および／またはフラッシュメモリのような不揮発性メモリ内に記憶され、それらは、個別の装置、積層装置として実現され、またはマイクロプロセッサ１４９２とともに統合され得る。
【０１２１】
入力／出力回路１４９４は、カメラ・グラフィックスインターフェース１４８０を介して、マイクロプロセッサ１４９２と、カメラアセンブリ１４０２の画像プロセッサ１４７４とのインターフェースをとる。カメラ・グラフィックスインターフェース１４８０は、さらに、本技術分野で公知の方法にしたがって、画像プロセッサ１４７４とユーザインターフェース１４９７とのインターフェースをとる。さらに、入力／出力回路１４９４は、通信回路１４９０の、マイクロプロセッサ１４９２、送受信器１４９３、音声処理回路１４０６、およびユーザインターフェース１４９７をインターフェースする。ユーザインターフェース１４９７は、ディスプレイ１４２６と、スピーカ１４２８と、マイクロフォン１４３８と、キーパッド１４４０とを含む。ディスプレイ１４２６は、表示部分の後面に配置され、操作者が、ダイアルされた数字、画像、呼び出された状態、メニューオプション、および他のサービス情報を見ることができるようにする。キーパッド１４４０は英数字キーパッドを含み、本技術分野において周知であるジョイスティック制御（図示せず）のようなナビゲーション制御を任意的に含み得る。さらに、キーパッド１４４０は、パームトップコンピュータまたはスマートフォンとともに用いられるような、完全クワーティ（QWERTY）配列キーボードを備え得る。キーパッド１４４０は、操作者が、数字のダイアル、指令の入力、およびオプションの選択ができるようにする。
【０１２２】
マイクロフォン１４３８は、ユーザの話す言葉を、電気音声信号に変換する。音声処理回路１４０６は、マイクロフォン１４３８から、アナログ音声入力を受け入れ、これらの信号を処理し、入力／出力回路１４９４を介して送受信器１４９３へ処理された信号を提供する。送受信器１４９３によって受信された音声信号は、音声処理回路１４０６によって処理される。音声処理回路１４０６によって処理されることによって生成された基本アナログ出力信号は、スピーカ１４２８へ提供される。そして、スピーカ１４２８は、そのアナログ音声信号を、ユーザによって聞き取られ得る可聴信号に変換する。
【０１２３】
当業者は、図１４に示された１つまたはより多くの要素が組合わされ得ることを理解するであろう。たとえば、カメラ・グラフィックスインターフェース１４８０は図１４においては分離された要素として示されるが、カメラ・グラフィックスインターフェース１４８０は、入力／出力回路１４９４と併合され得ることが理解されるであろう。さらに、マイクロプロセッサ１４９２、入力／出力回路１４９４、音声処理回路１４０６、画像プロセッサ１４７４、および／またはメモリ１４９６は、特別に設計された、特定用途向け集積回路（ＡＳＩＣ）１４９１に含まれ得る。
【０１２４】
図１５は、本発明の１つまたはより多くの実施形態が実行され得るコンピュータシステム１５００を図示したブロック図である。コンピュータシステム１５００は、バス１５０２または情報を通信する他の通信機構、およびバス１５０２に結合された情報を処理するためのプロセッサ１５０４を含む。コンピュータシステム１５００は、バス１５０２に結合され、プロセッサ１５０４によって実行されるべき情報および指令を記憶するための、ランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置のような、メインメモリ１５０６をさらに含む。メインメモリ１５０６は、プロセッサ１５０４によって実行されるべき指令の、実行中の一時的な変数や他の中間情報を記憶するためにも用いられ得る。コンピュータシステム１５００は、バス１５０２に結合され、プロセッサ１５０４のための静的な情報および指令を記憶するための、読取専用メモリ（ＲＯＭ）１５０８または他の静的記憶装置をさらに含む。磁気ディスクまたは光学ディスクのような記憶装置１５１０が、情報および指令を記憶するために設けられ、かつバス１５０２に結合される。
【０１２５】
コンピュータシステム１５００は、ブラウン管（ＣＲＴ）のような、コンピュータユーザに対して情報を表示するためのディスプレイ１５１２に、バス１５０２を介して結合され得る。英数字および他のキーを含む入力装置１５１４は、プロセッサ１５０４への情報および命令選択を通信するために、バス１５０２へ結合される。他のタイプのユーザ入力装置は、マウス、トラックボール、またはカーソル方向キーのような、プロセッサ１５０４への情報および命令選択の決定を通信するとともにディスプレイ１５１２上のカーソルの動きを制御するための、カーソル制御１５１６である。この入力装置は、典型的に、第１の軸（たとえば、ｘ軸）および第２の軸（たとえば、ｙ軸）の２つの軸における２つの自由度を有し、その装置が平面状の位置を特定できるようにする。コンピュータシステム１５００は、マイクロフォンまたはカメラのような、上述の実施形態を用いて処理され得る可聴音、静止画、または動画を提供するための音声／ビデオ入力装置１５１５をさらに含み得る。
【０１２６】
本明細書に開示された様々な処理技術は、コンピュータシステム１５００上のデータを処理するために実行され得る。本発明の一実施形態によれば、それらの技術は、メインメモリ１５０６内に含まれる１つまたはより多くの指令の、１つまたはより多くのシーケンスを実行するプロセッサ１５０４に応答して、コンピュータシステム１５００によって実行される。このような指令は、記憶装置１５１０のような他の機械読取可能媒体からメインメモリ１５０６内に読み込まれ得る。メインメモリ１５０６内に含まれる指令のシーケンスの実行によって、プロセッサ１５０４は、本明細書に記載されたプロセスステップを実行する。代替的な実施形態においては、本発明を実行するためのソフトウェア指令に代えて、あるいはそれと組合わされて、ハードワイヤ回路が用いられ得る。このように、本発明の実施形態は、ハードウェア回路およびソフトウェアの特定の組み合わせに限定されない。
【０１２７】
本明細書で使用される「機械読取可能媒体」の語句は、機械を特定の態様で動作させるデータを提供することに関与するいかなる媒体を称する。コンピュータシステム１５００を用いて実行される実施形態においては、さまざまな機械読取可能媒体は、たとえば、プロセッサ１５０４に対して実行のための指令を提供することに関与する。このような媒体は、多くの形態を利用し、限定されないが、記憶媒体や伝送媒体を含む。記憶媒体は、不揮発性媒体および揮発性媒体の両方を含む。不揮発性媒体は、たとえば、記憶装置１５１０のような光学または磁気ディスクを含む。揮発性媒体は、メインメモリ１５０６のようなダイナミックメモリを含む。伝送媒体は、同軸ケーブル、銅線および光ファイバを含み、バス１５０２を備えるワイヤを含む。伝送媒体は、無線および赤外線データ通信の間に生成されるもののような、音波または光波の形態も利用し得る。すべてのこのような媒体は、媒体によって搬送される指令が、機械内にその指令を読み込む物理的な機構によって検出されることを可能にするための具体的なものでなくてはならない。
【０１２８】
機械読取可能媒体の一般的な形態は、たとえば、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープ、またはその他の磁気媒体、ＣＤ−ＲＯＭ、その他の光学媒体、パンチカード、紙テープ、穴のパターンを有するその他の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、その他のメモリチップまたはカートリッジ、以降に説明されるような搬送波、あるいは、コンピュータが読み込みできるその他の媒体を含む。
【０１２９】
機械読取可能媒体の様々な形態は、プロセッサ１５０４への実行のための１つまたはより多くの指令の１つまたはより多くのシーケンスを搬送することに関与され得る。たとえば、指令は、最初に、リモートコンピュータの磁気ディスク上に搬送され得る。リモートコンピュータは、その指令をダイナミックメモリ内に読込み、モデムを用いて電話回線を通してその指令を送信し得る。コンピュータシステム１５００の場所のモデムは、電話回線上のデータを受信し、赤外線送信器を用いてそのデータを赤外線信号に変換し得る。赤外線検出器が赤外線信号で搬送されたデータを受信し、適当な回路がそのデータをバス１５０２上に配置し得る。バス１５０２はそのデータをメインメモリ１５０６に搬送し、そこからプロセッサ１５０４は指令を取り出して実行する。メインメモリ１５０６によって受信された指令は、プロセッサ１５０４による実行の前あるいは後のいずれかに、任意的に、記憶装置１５１０に記憶され得る。
【０１３０】
コンピュータシステム１５００は、バス１５０２に結合された通信インターフェース１５１８をさらに含む。通信インターフェース１５１８は、ローカルネットワーク１５２２に接続されるネットワークリンク１５２０に結合する双方向データ通信を提供する。たとえば、通信インターフェース１５１８は、デジタル総合サービスネットワーク（integrated services digital network：ＩＳＤＮ）、または電話回線の対応する型式へのデータ通信接続を提供するモデムであり得る。他の例としては、通信インターフェース１５１８は、互換ＬＡＮ（compatible LAN）へのデータ通信接続を提供するローカルエリアネットワーク（ＬＡＮ）カードであり得る。無線リンクもまた実行され得る。このような実行例において、通信インターフェース１５１８は、様々なタイプの情報を表わすデジタルデータストリームを搬送する、電気信号、電磁信号または光学信号を送受信する。
【０１３１】
ネットワークリンク１５２０は、典型的に、１つまたはより多くのネットワークを通して、他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンク１５２０は、ローカルネットワーック１５２２を通して、ホストコンピュータ１５２４またはインターネットサービスプロバイダ（Internet Service Provider：ＩＳＰ）１５２６によって動作されるデータ機器への接続を提供し得る。ＩＳＰ１５２６は、次に、現在、一般に「インターネット」１５２８と称される、ワールドワイドパケットデータ通信ネットワークを通して、データ通信サービスを提供する。ローカルネットワーク１５２２およびインターネット１５２８の両方は、デジタルデータストリームを搬送する、電気信号、電磁信号、または光学信号を用いる。デジタルデータを、コンピュータシステム１５００へ、およびコンピュータシステム１５００から搬送する、さまざまなネットワークを通じた信号、ならびに、ネットワークリンク１５２０上および通信インターフェース１５１８を通じた信号は、その情報を搬送する搬送波の例示的な形態である。
【０１３２】
コンピュータシステム１５００は、ネットワーク、ネットワークリンク１５２０、および通信インターフェース１５１８を通して、メッセージを送りかつプログラムコードを含むデータを受信する。インターネットの例においては、サーバ１５３０が、インターネット１５２８、ＩＳＰ１５２６、ローカルネットワーク１５２２、および通信インターフェース１５１８を通して、アプリケーションプログラム用の要求されたコードを伝送し得る。
【０１３３】
受信されたコードは、受信されると、プロセッサ１５０４によって実行され、および／または、後の実行のために、記憶装置１５１０または他の不揮発性記憶装置に記憶され得る。このようにして、コンピュータシステム１５００は、搬送波の形式でアプリケーションコードを取得し得る。
【０１３４】
本明細書に記載されるようなプログラムコードの実施形態によって処理されたデータは、限定されないが、Ａ／Ｖ入力装置１５１５、記憶装置１５１０、および通信インターフェース１５１８を含むさまざまなソースから得られ得る。
【０１３５】
図１６は、本発明の実施形態に従う、画像ウィンドウの中間画素のためのノイズ除去された画素値を計算するための方法１６００のフローチャートである。方法１６００は本発明の実施形態に関して説明されるが、方法１６００は、本発明に限定されることが意味されるものではなく、他の用途においても用いられ得る。一例においては、方法１６００は、図３のノイズ除去された画素値３７４を計算するために用いられる。しかしながら、方法１６００は、ノイズ除去された画素値３７４に限定されることが意味されるものではない。図１６に示されるように、方法１６００は、画像ウィンドウが受信されるステージ１６０２において開始する。実施形態においては、画像ウィンドウはＩＳＰチェーンによって処理され、かつ、ノイズ除去モジュールによって受信される画像の少なくとも一部である。画像ウィンドウは、行および列に配列される画素値で構成される。ステージ１６０２が完了すると、方法１６００はステージ１６０４へ進む。
【０１３６】
ステージ１６０４において、中間画素および中間画素に隣接する画素が認識される。隣接画素は、中間画素の１画素の範囲内にある画素である。実施形態においては、中間画素は８つの隣接画素を有する。中間画素と隣接画素との間の画素値の差が計算される。実施形態においては、これらの差は、所与の隣接画素の環境が、中間画素の環境に対して、どれだけ近いかまたは遠いかを数値的に説明し、環境距離を称される。ステージ１６０４が完了すると、方法１６００はステージ１６０６へと続く。
【０１３７】
ステージ１６０６において、環境重みを決定するために後に用いられるしきい値が調整され得る。実施形態においては、しきい値は、画像ウィンドウの信号レベルに基づいて調整される。ステージ１６０６が完了すると、方法１６００はステージ１６０８へと続く。
【０１３８】
第１の代替的な実施形態においては、図示されないが、ステージ１６０６は、ステージ１６０４の前に生じる。第２の代替的な実施形態においては、図示されないが、ステージ１６０４およびステージ１６０６は同時に生じ得る。
【０１３９】
ステージ１６０８において、ステージ１６０４において計算された環境距離、およびステージ１６０６において調整されたしきい値が、各隣接画素についての環境重みを計算するために用いられる。実施形態においては、より小さい環境距離がより望ましいので、環境重みは、環境距離に反比例する。ステージ１６０８が完了すると、方法１６００はステージ１６１０へと進む。
【０１４０】
ステージ１６１０において、中間画素についての重みが決定される。実施形態においては、この重みは、隣接する画素の重みに依存する。たとえば、中間画素重みは、隣接画素重みの合計、最大隣接画素重み、および、隣接画素重みの合計より大きい最小の２のべき乗に依存する。ステージ１６１０が完了すると、方法１６００はステージ１６１２へと続く。
【０１４１】
ステージ１６１２において、ノイズ除去された画素値が計算される。実施形態においては、ノイズ除去された画素値は、すべての重みの加重平均に基づいている。たとえば、隣接画素および中間画素の各重みは、それらのそれぞれの画素値と掛け合わされ、かつ合計される。そして、その合計は、重みの全合計によって除される。実施形態においては、この計算されたノイズ除去された画素値は、画像ウィンドウにおける中間画素のもとの画素値を置き換える。ステージ１６１２が完了すると、方法１６００はステージ１６１４へと進む。
【０１４２】
ステージ１６１４において、画像ウィンドウの源となる画像内のさらなる画素が、ノイズ除去される必要があるか否かを判断するために、状態が検査される。より多くの画素がノイズ除去される必要がある場合は、方法１６００は、ステージ１６０２へ戻り、新しい画像ウィンドウが受信される。ノイズ除去されるべき画像がもはやない場合は、方法１６００は終了する。
【０１４３】
上述の明細書において、本発明の実施形態が、実行例から実行例へと変化し得る、多くの特定の詳細に関して説明された。このように、何が発明であるか、および、何が出願人によって発明であると意図されるかの、唯一のそして独占的な指標は、この出願から生じる一群の特許請求の範囲である。したがって、特許請求の範囲に明示的には記載されていない、限定、要素、特性、特徴、利点、または特質は、そのような方法においても、このような特許請求の範囲を限定すべきものではない。明細書および図面は、したがって、限定的意味というよりは、例示的な意味であると考えられるべきである。
【図１】
0005653913.tif 000017
【図２】
0005653913.tif 000018
【図３】
0005653913.tif 000019
【図４】
0005653913.tif 000020
【図５Ａ】
0005653913.tif 000021
【図５Ｂ】
0005653913.tif 000022
【図６】
0005653913.tif 000023
【図８】
0005653913.tif 000024
【図９】
0005653913.tif 000025
【図１０】
0005653913.tif 000026
【図１１】
0005653913.tif 000027
【図１２Ａ】
0005653913.tif 000028
【図１２Ｂ】
0005653913.tif 000029
【図１３】
0005653913.tif 000030
【図１４】
0005653913.tif 000031
【図１５】
0005653913.tif 000032
【図１６】
0005653913.tif 000033
【図７Ａ】
0005653913.tif 000034
【図７Ｂ】
0005653913.tif 000035