(58)【調査した分野】(Int.Cl.,DB名)
前記目標入力画素の前記非局所平均を計算する段階は、前記空間近傍内の複数の候補パッチの数を決定する段階を更に有し、そこから、より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めるべく、前記非局所平均が前記テクスチャスコアに基づいて計算される、
請求項1に記載の方法。
前記空間近傍内の1つ又は複数の候補パッチのパッチ加重値を、各候補パッチと前記目標画素を含んだ前記空間近傍内の複数の画素の目標パッチとの比較を実行することで計算する段階と、
前記パッチ加重値と前記テクスチャスコアとに基づいてブレンド係数を計算する段階と、
前記ブレンド係数に基づいて前記非局所平均と前記目標入力画素との間を補間することで、前記非局所平均を前記目標入力画素の値とブレンドする段階と
を更に備える
請求項1又は2に記載の方法。
前記テクスチャスコアに基づいてパッチ加重値の前記セットを選択する段階は、前記テクスチャスコアと候補パッチの合計数との単調減少する閉形式関数を評価することで、複数の候補パッチの前記数を前記セットで表すよう決定する段階を更に有する、
請求項5に記載の方法。
複数の候補パッチのそれぞれと前記目標画素を含んだ複数の画素の目標パッチとの比較を実行することで、前記空間近傍内の1つ又は複数の候補パッチのパッチ加重値を計算する段階と、
前記テクスチャスコアと候補パッチの合計数との単調減少する閉形式関数を評価することで、前記複数の候補パッチの整数の数を表す最大パッチ加重値のセットを選択する段階と、
前記選択された最大パッチ加重値のセットの中心傾向を示すパッチ加重値統計から初期ブレンド係数を計算する段階と、
前記初期ブレンド係数のマッピングを通じて最終ブレンド係数を計算する段階であって、前記マッピングは前記テクスチャスコアの関数である、段階と
より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めるべく、前記テクスチャスコアに基づいて前記空間近傍内の候補パッチのサブセットを選択する段階と、
対応するパッチ加重値によって重み付けされた候補パッチの前記サブセットを平均することで決定された平均パッチから前記非局所平均を計算する段階と
を更に備え、
前記目標入力画素の値に対する前記非局所平均の重み付けを調整する段階は、
前記非局所平均と前記目標入力画素との間を前記最終ブレンド係数に基づいて線形的に補間することで、前記非局所平均を前記目標入力画素の値とブレンドする段階と、
前記フィルタ処理した目標画素の値として前記ブレンドをメモリに格納する段階と
を更に有する、
請求項1から10の何れか一項に記載の方法。
前記NLMモジュールは、複数の候補パッチの数と前記目標画素を含んだ前記空間近傍内の複数の画素の目標パッチとの比較を実行することで、前記空間近傍内の複数の候補パッチのパッチ加重値を計算する論理回路を更に有し、
前記ブレンドモジュールは、前記パッチ加重値と前記テクスチャスコアとに基づいてブレンド係数を計算し、前記非局所平均と前記目標入力画素との間を前記ブレンド係数に基づいて補間することで、前記非局所平均を前記目標入力画素の値とブレンドする論理回路を更に有する、
請求項13に記載の画像処理システム。
【発明を実施するための形態】
【0014】
同封の図を参照して、1つ又は複数の実施形態が説明される。具体的な構成及び配置が詳細に示されて論じられるが、これは例示的な目的のためだけに行われるものと理解されるべきである。本明細書の趣旨および範囲から逸脱することなく、他の構成及び配置が可能であることを、当業者は認識するであろう。本明細書に説明される技術及び/又は配置は、本明細書に詳細に説明されていること以外にも、様々な他のシステム及び応用に利用されてよいことが、当業者には明らかとなるであろう。
【0015】
以下の詳細な説明では、本明細書の一部を形成し、複数の例示的な実施形態を示す添付図面を参照する。更に、特許請求される主題の範囲から逸脱することなく、他の複数の実施形態が利用されてよく、構造的変更及び/又は論理的変更が行われてよいことが理解されるべきである。従って、以下の詳細な説明は限定する意味に取られるべきではなく、特許請求される主題の範囲は、添付の特許請求の範囲及びその等価物によってのみ規定される。
【0016】
以下の説明では、多数の詳細が明記される。しかし、複数の実施形態はこれらの具体的な詳細がなくても実施され得ることが、当業者には明らかとなるであろう。よく知られた方法及びデバイスは、詳細に示されるのではなくブロック図の形に示されているが、これは、より重要な態様を曖昧にするのを避けるためである。本明細書を通じて「一実施形態」又は「1つの実施形態」への言及は、その実施形態に関して説明される特定の特徴、構造、機能、又は特性が、少なくとも1つの実施形態に含まれていることを意味する。従って、本明細書を通じて様々な箇所に「一実施形態において」又は「1つの実施形態において」という表現が出現しても、必ずしも同じ実施形態を意味しているとは限らない。更に、一実施形態の文脈で説明される特定の特徴、構造、機能、又は特性は、1つ又は複数の実施形態に任意の適切な態様で組み合わされてよい。例えば、第1の実施形態が第2の実施形態と組み合わされよく、2つの実施形態に関連する特定の特徴、構造、機能、又は特性がどこでも互いに排他的ではない。
【0017】
複数の例示的な実施形態及び添付の特許請求の範囲の説明に用いられるとき、単数形の「1つの」(「a」、「an」)及び「その」(the)は、複数形も含むことが意図されているが、これは文脈上明らかに異なったことを示していない場合に限る。本明細書に用いられるとき、「及び/又は」という用語は、関連する列挙された項目の1つ又は複数のありとあらゆる可能な組み合わせを意味し、これらを包含することも理解されるであろう。
【0018】
本明細書を通じて、また特許請求の範囲において用いられるとき、「少なくとも1つ」あるいは「1つ又は複数」という用語によって結び付けられた項目のリストは、列挙された項目の任意の組み合わせを意味し得る。例えば、「A、B、又はCのうち少なくとも1つ」という表現は、A、B、C、AとB、AとC、BとC、又はAとBとCを意味し得る。
【0019】
「結合」及び「接続」という用語は、それらの派生語とともに、複数のコンポーネント間の機能的関係又は構造的関係を説明するのに本明細書に用いられてよい。これらの用語は、互いにとって同義語として意図されるものではないことが理解されるべきである。むしろ、複数の特定の実施形態において「接続」は、 2つ又はそれよりより多くの要素が互いに直接的に物理的接触、光学的接触、又は電気的接触の状態にあることを示すのに用いられてよい。「結合」は、2つ又はそれよりより多くの要素が直接的に又は(それらの要素の間に介在する複数の他の要素を伴って)間接的に、互いに物理的接触、光学的接触、又は電気的接触の状態にあること、及び/又は、2つ又はそれよりより多くの要素が(例えば、因果関係にみられるように)互いに協同又は情報を交換することを示すのに用いられてよい。
【0020】
本明細書に提供される詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビット上で動作するアルゴリズム及び記号表現の観点で提示される。異なったことが具体的に明記されない限り、以下の考察から明らかなように、本明細書を通じて「計算」、「コンピューティング」、「決定」、「推定」、「格納」、「収集」、「表示」、「受信」、「統合」、「生成」、「更新」などの用語を利用する考察は、コンピュータシステム又は類似の電子コンピューティングデバイスの動作及び処理を意味し、コンピュータシステム又は類似の電子コンピューティングデバイスは、レジスタ及びメモリを含んだコンピュータシステムの回路内で物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリ又はレジスタ又は他の情報ストレージ、送信デバイス又はディスプレイデバイス内で物理量として同様に表される他のデータに変換することが理解される。
【0021】
以下の説明は複数の実施形態を明記するが、それは、例えばシステムオンチップ(SoC)アーキテクチャのようなアーキテクチャで表され得る。本明細書に説明される技術及び/又は配置の実装は、特定のアーキテクチャ及び/又はコンピューティングシステムに制限されるものではなく、類似の目的のいかなるアーキテクチャ及び/又はコンピューティングシステムによっても実装されてよい。例えば、複数の集積回路(IC)チップ及び/又はパッケージを利用する様々なアーキテクチャ、及び/又は、セットトップボックス、スマートフォンなどの様々なコンピューティングデバイス及び/又は家電(CE)デバイスが、本明細書に説明される技術及び/又は配置を実装してよい。更に、以下の説明は、論理実装、複数のシステムコンポーネントのタイプ及び相互関係、論理分割/統合の選択など、多数の具体的な詳細を明記し得るが、特許請求される主題は、そのような具体的な詳細を用いずに実施されてよい。更に、例えば、制御構造及び完全なソフトウェア命令シーケンスなどのいくつかの構成要素は、本明細書に開示される構成要素を曖昧にしないために、詳細に示されなくてもよい。
【0022】
本明細書に開示される構成要素の特定の部分は、例えば、グラフィックスプロセッサの論理回路としてハードウェアに実装される。特定の他の部分は、ハードウェア、ファームウェア、ソフトウェア、又はそれらの任意の組み合わせに実装されてよい。本明細書に開示される少なくともいくつかの構成要素は、機械可読媒体に格納される命令として実装されてもよく、この命令は、1つ又は複数のプロセッサ(グラフィックスプロセッサ及び/又は中央処理装置)によって読み出されて実行され得る。機械可読媒体は、機械(例えば、コンピューティングデバイス)によって可読な形で情報を格納又は送信する任意の媒体及び/又はメカニズムを含んでよい。例えば、機械可読媒体は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気/光/音又は他の同様な非一時的な有形の媒体を含んでよい。
【0023】
1つ又は複数のシステム、装置、方法、及びコンピュータ可読媒体が、画像内のテクスチャの独立した評価を少なくとも部分的に強化した画像ノイズ除去について後述される。従来のNLMフィルタは、少なくとも候補パッチの定義及び/又はパッチ相似性評価を通じてテクスチャをパッシブに構成するだけだという理由で詳細部の損失を被っており、それと比べて、本明細書に説明されるテクスチャ強化型フィルタの実施形態は、テクスチャに敏感なブレンドオペレーションとして入力画像テクスチャをアクティブに構成する。複数の実施形態において、色を基にしたフィルタ操作により決定される平均画素値が、「ノイズのある」入力画素の値とブレンドされる。複数の実施形態において、ブレンドは、テクスチャを示す1つ又は複数のブレンド加重値又は係数によって推進され、これにより、強化型ノイズ低減フィルタにより保持される詳細部のレベルはテクスチャの量でスケーリングされる。本明細書の複数の実施形態は、それによって、著しくテクスチャを欠いた(すなわち、滑らかな)画像の領域を、より粗いテクスチャ領域より積極的にノイズ除去し得る。複数の更なる実施形態において、ブレンド係数は、候補パッチの相似性スコアに基づいて更に決定され、検討されるこれらのスコアの数はテクスチャスコアに基づいている。複数の実施形態による強化型フィルタは、そのようなテクスチャに敏感なブレンドの提供を欠くNLMフィルタに特有のぶれの影響を有利に低減することが分かっている。
【0024】
図1は、複数の実施形態による画像ノイズ低減方法101を示すフロー図である。方法101は、別々の画像又はフレームの全ての画素に対して実行され、各繰り返しが1つのノイズのある目標画素p
inに対して実行され、フィルタ処理した出力画素p
outにフィルタ処理される。
図1に示される繰り返しは、並列処理アーキテクチャの複数のスレッド又は実行ユニットにわたり、連続的に又は並列に実行されてよい。方法101の各繰り返し/スレッドは、動作105において、入力画素の値p
iを受信するところから始まる。入力として受信した値は、フィルタ処理される入力目標画素の値p
inと、目標画素の空間近傍内の複数の画素の値とを含む。例示的な一実施形態において、空間近傍は、p
inを含む画像フレームの空間近傍よりもいくらか小さく寸法決めされる。この近傍の外側にある画素は、フィルタ処理した画素の値p
outを決定する際に、何も加重値を与えられない。空間近傍は任意の予め定められたサイズ(例えば、N×N画素の画像フレームより小さい固定のK×Kのウィンドウ)であり得、それに対応して、方法101で実行されるフィルタ処理した画素の値p
outを決定するための計算の数を低減させる。1つの実施形態において、近傍のサイズ、従って動作105で受信される入力画素の値のサンプルサイズは、更に後述されるように、特定の非局所平均アルゴリズムを収容するよう予め定められる。N×N画像より小さい近傍の定義は、計算のオーバヘッドに関して実用上の利点があるが、本明細書の複数の実施形態は、N×N画像内の全ての画素に対して計算された加重値を用いて目標画素をフィルタ処理する技術に等しく適用可能であることに留意されたい。
【0025】
第1の実施形態において、入力画素の値p
iはRGB空間における生のデータである。この生のデータは生のベイヤーデータなど、カメラセンサによる出力であってよいが、有利な複数の実施形態において、画素の値p
iはある程度前処理されており、例えば、線形化(黒レベル補正を含む)され、カラーシェーディング補正をされている。生の画像データはまた、既知の不良画素を補正していたかもしれない、またレンズシェーディング補正が、ノイズ除去方法101の前段で実行されていたかもしれない。第2の実施形態において、動作105において受信される入力画素の値p
iはYUV空間にあり、方法101は具体的に輝度(Y)チャネル上で動作する。
【0026】
動作115において、近傍内のテクスチャのレベルを示すテクスチャスコアηが入力画素の値に基づいて決定される。テクスチャスコアηは、ノイズ除去方法101に追加の自由度を提供する独立したテクスチャの尺度である。1つの実施形態において、動作105において受信される全ての入力画素p
iがテクスチャスコアηを計算するのに利用される。例えば、全ての入力画素p
iが非局所平均アルゴリズムに利用される近傍ウィンドウに関連している場合、テクスチャスコアηはこの同じ入力画素p
iの集団から導出される。代替的に、テクスチャスコアηは、入力画素p
iのサブセットだけに基づいて決定される。換言すれば、テクスチャスコアηが決定されるウィンドウは、全ての入力画素p
iが属する近傍より小さくてよいが、その中に含まれ得る。動作105で受信される全ての入力画素p
iが目標画素p
inの単一の近傍に対応する1つの例示的な実施形態において、テクスチャスコアηは、近傍全体にわたる画素の値変動の定量的評価に基づいて決定される。そのような定量的評価は多くの形を取り得るが、例示的な実施形態が、
図2及び
図3の文脈で以下により詳細に説明される。
【0027】
なおも
図1を参照すると、動作105で受信した目標画素の空間近傍内の複数の画素に関連した1つ又は複数の値に基づいて、動作130で目標画素の非局所平均が計算される。目標画素p
inの平均目標画素の値<q>を得るために、任意の知られた非局所平均アルゴリズムが動作130で実行されてよい。1つの例示的な実施形態において、
図1の動作115と動作130との間に破線で示されるように、また以下により詳細に説明されるように、非局所平均計算は、動作115で決定されるテクスチャスコアに依存する。しかし代替的な実施形態において、動作130での非局所平均計算は動作115で行われるテクスチャ評価から独立しており、動作115で決定されるテクスチャスコアはブレンド動作145でのみ利用される。ここでは、動作130からの非局所平均と、ノイズのある目標入力画素の値p
inとが、テクスチャスコアに基づいてブレンドされ、フィルタ処理した出力画素の値p
outを得る。次にフィルタ処理した出力画素の値p
outは、動作195で、限定されないが、例えばレジスタ、揮発性メモリセル、不揮発性メモリセルなどの電子メモリに格納される。入力画素p
inが、複数の順次繰り返し又は並列スレッドにわたり、画像又はフレームの全ての画素がフィルタ処理されるまで、動作199でインクリメントされる。
【0028】
図2は、複数の実施形態による、画素の値と画像フィルタパラメータとの依存関係図の例示である。
図3は、複数の実施形態による画像ノイズ低減方法301を示すフロー図である。
図2に概略図の形で示されるフィルタ処理は、例えば、方法301の一部として実行されてよく、方法301は、
図1の文脈で上記に略述された方法101の特定の一実施形態である。
【0029】
図2に示されるように、画像又はフレーム201は、空間的に相関したN×Nの大きさの2Dの画素配列205を含む。示された実施形態において、画素配列205の値はRGB空間にある。画素配列205内には、目標画素210を取り囲むK×Kの大きさの局所近傍215がある。画素配列205からの画素の値は、例えば、動作105(
図3)で入力画素p
inとして受信されてよい。
【0030】
図3に更に示されるように、動作320で、目標画素p
inを含む目標画素パッチPが、1つ又は複数の候補画素パッチQ
iのそれぞれと比較される。1つ又は複数の候補画素パッチQ
iはまた、局所近傍Nbr
K(p
in)の全ての画素のセット内に含まれる。
図2に示される例において、目標画素210を含む目標画素パッチ220が局所近傍215の中に含まれている。1つ又は複数の候補画素パッチ221は、例えば、予め定められたサイズであり、近傍215内に規定される複数の他の候補パッチとオーバーラップしてよい。与えられた近傍内の候補パッチ221の数は、例えば、画像/フレーム内(例えば、エッジに沿って)及び/又は近傍215内の目標画素210の位置の関数であってよい。
【0031】
各候補パッチが目標画素パッチにどれほど類似しているかに対応する候補パッチの加重値W
iが計算され、これは本明細書では「自己相似性」と呼ばれる。候補パッチの加重値W
iは、例えば、目標パッチに対してより大きい相似性を有する第1の候補パッチでは、目標パッチにあまり似ていない第2の候補パッチの場合よりも大きくなり得る。各候補パッチの加重値W
iは、画素iとp
inとの間の相似性を評価する任意のパッチ相似性スコアリング関数として決定されてよく、例えば、0<W(i、p
in)<1である。1つの実施形態において、相似性尺度は絶対差の和として計算される。そのような一実施形態は、固定関数又は半プログラマブル論理回路(例えば、画像信号プロセッサ)で有利に実装され得る。代替的な一実施形態においてガウスノイズモデルがカーネル関数として利用され、差の平方和が相似性尺度として計算される。この代替の実施形態は、完全なプログラマブル論理回路(例えば、アプリケーションプロセッサ)上で実行するソフトウェアに有利に実装され得る。
【0032】
図3に戻ると、動作115で近傍215にわたる画素の値変動の分析が実行され、(局所)テクスチャスコアηを計算する。
図2と
図3の両方に例示されるように、テクスチャスコアηを決定することは、パッチ重み付け計算とは独立している。次にパッチ重み付け及びテクスチャスコアηの両方が、程度の差はあれNLMノイズ除去が画像フレーム内のどこで実行されるかを決定するために、方法301で利用される。
【0033】
上記に紹介されたように、テクスチャスコアηは、近傍Nbr
K(p
in)内の全ての画素の値、又はそれらのサブセットにわたるバラツキ推定量である。有利には、この推定量は、推定が行われる近傍の信号強度によって正規化される。例えば推定量は、画素の値の標準偏差又は分散に基づいてよい。多くのテクスチャスコアリングアルゴリズムが用いられ得るが、1つの実施形態において、テクスチャスコアηは、平均信号強度によって正規化された分散として計算される。
【数1】
【0034】
次に目標画素p
inのNLMが動作130で計算される。例示的な実施形態において、パッチ平均<Q>が、動作320で決定された候補パッチ加重値W
iに基づいて計算される。1つの例として、平均パッチ<Q>は、対応するパッチ加重値で重み付けされた複数の候補パッチを平均することで計算される。しかし、任意の知られたNLM技術が平均パッチ<Q>を得るのに利用されてよく、本明細書の複数の実施形態はこの点において更に限定されることはない。平均パッチ<Q>から、平均化された目標画素の値<q>が、例えば目標パッチP内のその位置に基づいて決定される。
【0035】
入力画素の値に基づいて決定された目標入力画素の非局所平均を用いて、非局所平均が目標入力画素の値p
inに対して、局所テクスチャの考えと反対に重み付けされる。
図2及び
図3に例示される例示的な実施形態において、フィルタ処理した画素の値p
outは、テクスチャスコアηに基づいて非局所平均画素の値<q>と目標入力画素p
inとをブレンドすることで、独立して導出された局所テクスチャの考えの関数にされる。ブレンド関数は、動作325で決定されるブレンド係数によって重み付けされ得る。例示的な実施形態において、非局所平均画素の値<q>と目標入力画素pとの間の補間が、ブレンド係数αに基づいて動作350で実行される。1つの特定の例において、補間はブレンド係数αの線形関数である。
p
out=αp
in+(1−α)<q> (式2)
【0036】
ブレンド係数αは、少なくともテクスチャスコアηに基づいており、有利には、より大きい局所テクスチャの存在の検出に対応して、非局所平均<q>のブレンドパワーを制限する(及び/又は目標入力画素p
inのブレンドパワーを強化する)態様において、テクスチャスコアηと動作320で決定されたパッチ加重値W
iの両方に基づいている。逆の場合も同じである。例えば、局所テクスチャ尺度がテクスチャの高い可能性を示す場合、αが低い(すなわち、局所自己相似性が、例えば反復的なテクスチャの存在において高い)ときだけしっかりとノイズ除去すべきである。
図3に例示される例示的な実施形態において、ブレンド関数が非局所平均<q>と目標入力画素p
inとの間の線形補間である場合、ブレンド係数αは最大パッチ加重値W
iのセットを示す。ブレンド係数αは有利には、テクスチャスコアηの関数として最大パッチ加重値の数Sを選択することによるパッチ加重値W
iのパターンによって通知される。次にブレンド係数αは、S個のパッチ加重値の選択に関連するパッチ加重値統計に基づいて動作325で計算される。1つの例として、ブレンド係数αは、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計に基づいている。
【数2】
ここで、W
iは加重値のセットであり、降順にソートされている。Sは、平均される最大パッチ加重値の数であり、局所テクスチャスコアηの関数である。式3の形はブレンド係数α(例えば式2)の形に依存するので、非局所平均<q>及び目標入力画素p
inがパッチ加重値統計(例えば、
【数3】
)によって相補的に重み付けされるように変化してよい。このアーキテクチャを用いると、ブレンド関数は、相似性評価を介して決定された候補パッチ加重値のサブセットを選択することで誘導される自己相似性である。選択された加重値のセットのサイズが独立したテクスチャ尺度に更に依存する状態で、フィルタ関数は近傍のコンテンツに対してより敏感になる。
【0037】
一実施形態において、ブレンド係数αを計算するのに利用されるパッチ加重値の数Sは、局所近傍テクスチャに反比例する。テクスチャの考えがより低い場合、ブレンド係数αはより多くのパッチ加重値を示す。テクスチャの考えがより高い場合、ブレンド係数αはより少ないパッチ加重値を示す。従って、低テクスチャが検出される平坦な領域(例えば、テクスチャスコアηが小さい)では、多くの加重値が加重値統計計算に含まれてよい。しかし、各候補パッチの自己相似性が低い場合、含まれる多くの加重値は、低い平均加重値と低ブレンドパワーを有するノイズのある入力画素p
inとをいまだにもたらし得る。テクスチャ尺度が高い場合、複数のパッチ間にわずかな対応関係を見出すことを想定し得るので、少数のパッチに基づいて強力なフィルタ処理を可能にするために、パッチ加重値の数は低減されてもよい。例えば、エッジの存在において、テクスチャスコアは増加が予期され得、これに対応して、ブレンド係数αに組み込まれる加重値の数は、最大相似性を有する少数だけに低減される。
【0038】
加重値のセットに表す候補パッチの整数の数Sは、上記の原則を実装する様々な方法で決定されてよい。1つの実施形態において、最大パッチ加重値の数Sは、閉形式関数を評価することで計算される。代替の一実施形態において、最大パッチ加重値の数S(η)は、ルックアップテーブル(LUT)にアクセスすることで決定される。第1の実施形態において、関数はテクスチャスコアの任意の単調減少する閉形式関数であってよく、この関数は利用可能な候補パッチの合計数(すなわち、全ての候補パッチ)とゼロ以外のパッチの最小閾値数との間の範囲にある。更なる一実施形態において、関数は指数関数的に減少するテクスチャスコアηの関数である。1つの例示的な実施形態において、関数は次の形であってよい。
S(η)=N
min+(N
cand−N
min)e
−η/C (式4)
ここで、N
candは候補パッチの合計数であり、N
minは候補パッチの最小閾値数であり、Cは指数関数の累乗を決定するシェーピング係数である。この連続表現から、端数切り捨てなどによって整数値が容易に導出され得る。代替の一実施形態において、異なる数の候補パッチを異なるテクスチャスコアに関連付けるLUTが、インデックス値又はキー値としてテクスチャスコアηを用いてアクセスされる。可能なテクスチャスコアの範囲は、予め定められた数のウィンドウ又はスロットに分割されてよい。各ウィンドウ又はスロットは、最大パッチ加重値の数S(η)に関連付けられる。いくつかの実施形態において、LUTはユーザ構成可能であってよく、S(η)はユーザ定義された構成設定である。
【0039】
更なる一実施形態において、
図2に破線矢印で示されるように、テクスチャスコアηは、独立した局所テクスチャ尺度の関数としてNLM計算を更に調整するのに利用される。
図4は、そのような一実施形態による画像ノイズ低減方法401を示すフロー図である。方法401は、ブレンド係数αがまた、式3に従って決定される初期係数の非線形マッピングを通じて、どのように導出され得るかを更に例示する。
【0040】
図4に示されるように、方法401は操作105で入力画素の値を受信するところから始まり、上述されたように操作115及び320でテクスチャスコアη及びパッチ加重値W
iを計算する。操作435で、平均パッチ<Q>が、近傍内の候補パッチのサブセット用に計算される。候補パッチのサブセットは、テクスチャスコアηに基づいて決定される。したがって、テクスチャスコアηは、ブレンド係数αを通じたフィルタ処理、またノイズのある画素とブレンドされるNLM画素の値を通じたフィルタ処理の両方に影響を与える。不適当なパッチ又は異なるパッチをNLM平均化処理に用いる可能性を低減する目的で、操作435で計算される非局所平均は、より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めることになる。1つの実施形態において、NLM計算に含める複数の候補パッチの数は、閉形式関数を評価することで決定される。代替の一実施形態において、複数の候補パッチの数は、候補パッチ数を特定のテクスチャスコア又はスコアの範囲に関連付けるLUTにアクセスすることで決定される。特定の一実施形態において、NLMは、ブレンド係数αの計算に利用される同じ候補パッチから計算される。操作440で、次に平均目標画素の値<q>が、候補パッチのサブセットから計算されたパッチ平均<Q>から決定される。
【0041】
方法401は操作429に進み、ここで、S個の最大パッチ加重値に関連付けられるパッチの数が、例えば式4に従って計算される。操作431で、ブレンド係数αが、S(η)個の最大加重値に基づいて、例えば、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計から(例えば式3に従って)計算される。操作433で、最終ブレンド係数α´がブレンド係数αの非線形マッピングを実行することで計算される。マッピング関数そのものは、局所テクスチャスコアηによってパラメータ化され、所望のレベルの優先度を目標画素の入力値に提供する。1つの実施形態において、最終ブレンド係数α´は、異なるテクスチャスコアを初期ブレンド係数と最終ブレンド係数との間の異なるマッピングに関連付けるルックアップテーブル(LUT)にアクセスすることで決定される。そのようなマッピングはまた、ユーザ定義可能であってよい。代替の一実施形態において、最終ブレンド係数α´は、テクスチャスコアηの閉形式関数を、1つの例を提供する式5を用いて評価することで計算される。
【数4】
ここで、b(n)=α
1η
2+α
2η+α
3であり、α
0=5、α
1=1.75、α
2=−1.95、α
3=0.7である。
【0042】
次に方法401は操作455に進み、ここで、操作440で決定されたNLM目標画素の値<q>が、最終ブレンド係数α´に基づいて入力目標画素の値p
inとブレンドされる。1つの例示的な実施形態において、ブレンド操作は、入力画素の値及びNLM画素の値を相補的に重み付けするのに最終ブレンド係数α´を用いる(例えば、αを置き換えるα´を用いて式2を適用する)線形補間を伴う。次に方法401は、フィルタ処理した画素の値p
outを電子メモリに格納することで終了する。複数の更なる実施形態において、フィルタ処理した画素の値p
outは、ディスプレイパイプライン、及び/又はエンコードパイプライン、及び/又は無線送信パイプラインに更に出力される。
【0043】
図5Aは、1つ又は複数の実施形態によるシステム501の機能ブロック図であり、独立したテクスチャ検出ステージを含んだ画像ノイズ除去モジュール540を含む。画像処理システム501は、目標画素及び目標画素の空間近傍内の複数の画素に関する入力画素の値を受信する入力ポートを含む。複数の実施形態において、本明細書に説明されるテクスチャ強化型NLMノイズ低減技術と、処理を実行する関連回路とは、画像パイプライン内に配置され、生のデータ515に含まれる入力画素の値を有するRGB空間で動作する。
【0044】
例示的な実施形態において、生のデータ515は、カメラセンサ510を含んだカメラハードウェアモジュール(CM)505から生じ、その両方ともシステム501の一部として含まれてよく、又は破線のブロックで示されるように含まれなくてもよい。センサ510は、例えば、QXGA、WQXGA、又はQSXGAフォーマットのデジタル画像デバイスであってよい。カメラセンサ110は、画素当たり10ビット又はそれより大きい色解像度を提供してよく、連続的なビデオフレームを徐々にキャプチャするよう更に動作可能であってよい。センサ510は、170MHz又はそれより高い画素周波数を有し得る。カメラセンサ510は、RGBベイヤー色フィルタ、アナログ増幅器、A/Dコンバータ、入射光を生の画像データに対応するデジタル信号に変換する他のコンポーネントを含んでよい。センサ510は、ローリングシャッタ又は電子フォーカルプレーンシャッタプロセスを動作させるよう制御され得、画素がフレームに対して線順次方式で徐々に読み出される。生のデータはISP530に入力される。ISP530は、CM505に関連する水平ブランキング期間及び/又は垂直ブランキング期間の間に、生のビデオデータのフレームを受信して分析する。生の画像データを処理する間に、ISP530は画像ノイズ除去モジュール540を用いてノイズ低減を実行する。例示的な実施形態において、ISP530は、画素線形化、及びカメラセンサ505によって出力される生のベイヤーデータなどが線形化され(黒レベル補正も含む)カラーシェーディングが補正されるシェーディング補償のうち1つ又は複数を実行するプリプロセッサ520を更に含む。生の画像データの色度(白バランス)が更に計算され得る。補正される不良画素が分かると、レンズシェーディング補正もまた、ノイズ除去モジュール540の前段で実行され得る。代替の一実施形態において、プリプロセッサ520により実行される前処理の量は最小限であり、例えば、ノイズ除去モジュール540の前段にダークノイズ除去だけを含む。
【0045】
図5Aに示される例示的な実施形態において、画像ノイズ除去モジュール540が、画像信号プロセッサ(ISP)530の論理回路によって実装される。代替的な実施形態において、画像ノイズ除去モジュール540が、例えばアプリケーション処理ユニット(APU)又は中央処理装置(CPU)などのプログラマブルプロセッサ上で実行する論理回路にインスタンス化された1つ又は複数のソフトウェアスレッドとして実装される。ノイズ除去モジュール540がシステム501の入力ポート、例えばプリプロセッサ520の後段に結合される。ノイズ除去モジュール540は、近傍内で検出された又は近傍内に存在すると考えられるテクスチャのレベルを示すテクスチャスコアを入力画素の値に基づいて計算するテクスチャ処理モジュール545を更に含む。ノイズ除去モジュール540は、目標入力画素の非局所平均を入力画素の値に基づいて計算するNLMモジュール550を更に含む。ノイズ除去モジュール540は、非局所平均と目標入力画素の値とのブレンドであるフィルタ処理した目標画素の値をテクスチャスコアに基づいて計算することで、目標入力画素の値に対する非局所平均の重み付けをテクスチャのレベルに反比例して調整するブレンドモジュール555を更に含む。テクスチャ処理モジュール545、NLMモジュール550、及びブレンダ555は一緒に交換可能に結合される。テクスチャ処理モジュール545、NLMモジュール550、及びブレンダ555のうち何れか又は全てが、固定関数論理回路、又はプログラマブル論理回路を用いて実装されてよい。
【0046】
テクスチャ処理モジュール545は独立した画像ノイズ除去ステージとみなされてよく、NLMモジュール550及びブレンドモジュール555と情報を交換し、それらの動作を通知する。NLMモジュール550及びブレンドモジュール555のそれぞれは画像ノイズ除去の別個のステージとして機能を果たす。複数の実施形態において、NLMモジュール550は、複数の候補パッチの数と目標画素を含んだ近傍内の画素の目標パッチとの比較を実行することで、近傍内の候補パッチのパッチ加重値を計算する論理回路を更に含む。次にブレンドモジュール555は、パッチ加重値及びテクスチャスコアに基づいてブレンド係数を計算する論理回路を更に含む。ブレンドモジュール555はまた、ブレンド係数に基づく非局所平均と目標入力画素との間の補間によって、非局所平均を目標入力画素の値とブレンドする論理回路を更に含む。
【0047】
いくつかの実施形態において、テクスチャ処理モジュール550は、近傍における最大パッチ加重値のセットをテクスチャスコアに基づいて選択する論理回路を更に含む。複数の更なる実施形態において、テクスチャ処理モジュール550は、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計に基づいてブレンド係数を計算する論理回路を更に含む。次にブレンドモジュール555は、非局所平均及び目標入力画素パッチと、パッチ加重値統計により相補的に重み付けされた非局所平均及び目標入力画素との加重和を取る論理回路を更に有する。
【0048】
いくつかの実施形態において、テクスチャ処理モジュール545は、複数の候補パッチの数とゼロ以外の最小値との間の範囲のテクスチャスコアの単調減少する閉形式関数を評価する論理回路、又はインデックス値としてテクスチャスコアを用いてルックアップテーブル(LUT)にアクセスする論理回路であって、LUTは異なる数の候補パッチを異なるテクスチャスコアに関連付ける、論理回路のうち少なくとも1つを用いて、候補パッチの整数の数を加重値のセットで表すよう決定する論理回路を更に有する。
【0049】
いくつかの実施形態において、ブレンドモジュール555は、パッチ加重値及びテクスチャスコアに基づいてブレンド係数を計算する論理回路を更に有し、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計から初期ブレンド係数を計算する論理回路と、初期ブレンド係数のマッピングを通じてブレンド係数を計算する論理回路とを更に含み、マッピングはテクスチャスコアの関数である。
【0050】
いくつかの実施形態において、NLMモジュール550は、より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めるべく、テクスチャスコアに基づいて近傍内の候補パッチのサブセットを選択する論理回路を更に含む。次にNLMモジュール550は、対応するパッチ加重値により重み付けされる候補パッチのサブセットの平均によって決定される平均パッチから、目標入力画素の非局所平均を計算する。
【0051】
また
図5Aに示されるように、画像処理システム501は、少なくとも電子メモリ563、ディスプレイ562、又はエンコーダ561に結合された出力ポートを更に含む。メモリ563は、生の画像データ511のフィルタ処理した表現として、フィルタ処理した画像画素を格納する。エンコーダ561は、生の画像データ511のフィルタ処理した表現として、フィルタ処理した画像画素をエンコードする。ディスプレイ562は、画像データ511のフィルタ処理した表現として、フィルタ処理した画像画素を提供する。複数の更なる実施形態において、ISP530及び画像ノイズ除去モジュール540のうち1つ又は複数が、ユーザ空間及びカーネル空間を有するAPU(CPU)590に結合される。
【0052】
ユーザ空間上で実行されるアプリケーションは、ノイズ除去モジュール540を制御してよい(例えば、LUTにおけるS−η関係、又はシェーピング係数Cの値などを定義する)。
【0053】
図5Bは、1つ又は複数の代替の実施形態によるシステム502の機能ブロック図であり、独立したテクスチャ検出ステージを含んだ画像ノイズ除去モジュール540を含む。この例示的な実施形態において、NLMノイズ低減技術及び関連回路は画像パイプライン内に配置され、色補正され変換されたYUVデータ空間において動作する。
図5Bは1つの例示的なシステムアーキテクチャを示し、その中で、画像ノイズ除去モジュール540が、ビデオ処理パイプライン用のダウンサンプリングフィルタとして動作する。例えば、システム502は、任意の知られた構成を有するストリーミングビデオパイプラインの出力に結合された画素値入力ポートを有する。ビデオパイプラインはまた、MIPI又は他のプロトコルなどの任意の知られたストリーミングプロトコルに準拠して、複数の連続的に露光されるフレームに関連付けられた生のビデオデータを出力するよう動作するセンサ510(
図5A)を含んでよい。例示的な実施形態において、システム502により受信されたxvYCC入力画素データ506は、デコード回路560によりYUV(Cb、Cr)フォーマットに変換される。
【0054】
クロマサブサンプラ570が、例えば、4:4:4のYUVデータから4:4:0のデータにダウンサンプリングされる。次にノイズ除去モジュール540が、
図5Aの文脈で実質的に上述されたモジュールを用いて、クロマサブサンプルデータセットにサブサンプリングされたY´チャネルデータ上で動作する。
【0055】
図6は、1つ又は複数の実施形態による画像ノイズ除去モジュール540を利用する例示的な超低電力システム600の図である。システム600はモバイルデバイスであってよいが、システム600はこの文脈に限定されるものではない。例えば、システム600は、ウェアラブルコンピューティングデバイス、ウルトララップトップコンピュータ、タブレット、タッチパッド、ハンドヘルドコンピュータ、パームトップコンピュータ、セルラー電話、スマートデバイス(例えば、スマートフォン、スマートタブレット、又はモバイルテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイスなどに組み込まれてよい。システム600はまた、インフラストラクチャデバイスであってよい。例えば、システム600は、ラージフォーマットテレビ、セットトップボックス、デスクトップコンピュータ、又は他の家庭用又は商用ネットワークデバイスに組み込まれてよい。
【0056】
システム600は、様々なテクスチャ強化型NLM画像ノイズ除去方法の全て又はサブセットと、
図1〜
図5Bの文脈で上述されたテクスチャ強化型NLM画像ノイズ除去システムのいずれかを実装し得るデバイスプラットフォーム602を含む。様々な例示的な実施形態において、プロセッサ615はテクスチャ強化型NLM画像ノイズ除去アルゴリズムを実行する。プロセッサ615は、例えば、テクスチャ強化型NLM画像ノイズ除去アルゴリズムを実装する論理回路をISP530に含み、これは本明細書の他の箇所に説明されるもののいずれかなどである。いくつかの実施形態において、1つ又は複数のコンピュータ可読媒体が複数の命令を格納してよく、複数の命令は、CPU610及び/又はプロセッサ615により実行されると、上記に詳細に説明されたもののいずれかなど、1つ又は複数のテクスチャ強化型NLM画像ノイズ除去アルゴリズムをプロセッサに実行させる。画像ノイズ除去モジュール540によりフィルタ処理された1つ又は複数の画像データフレームは次に、フィルタ処理した画像データとして電子メモリ612に格納されてよい。
【0057】
複数の実施形態において、デバイスプラットフォーム602は、ヒューマンインタフェースデバイス(HID)620に結合される。プラットフォーム602は、フィルタ処理されてHID620に出力される生の画像データを、CM505を用いて収集し得る。1つ又は複数のナビゲーション機能を含んだナビゲーションコントローラ650が、例えば、デバイスプラットフォーム602及び/又はHID620と情報を交換するのに用いられてよい。複数の実施形態において、HID620は、無線618及び/又はネットワーク660を介してプラットフォーム602に結合される任意のテレビ型モニタ又はディスプレイを含んでよい。HID620は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビのようなデバイス、及び/又はテレビを含んでよい。
【0058】
1つ又は複数のソフトウェアアプリケーション616の制御下において、デバイスプラットフォーム602はユーザインタフェース622をHID620上に表示してよい。コントローラ650のナビゲーション機能の動きがポインタ、カーソル、フォーカスリング、又はディスプレイ上に表示される他の視覚インジケータの動きによって、ディスプレイ(例えば、HID620)上に再現され得る。例えば、ソフトウェアアプリケーション616の制御下において、ナビゲーションコントローラ650上に位置するナビゲーション機能は、ユーザインタフェース622上に表示される仮想ナビゲーション機能にマッピングされ得る。
【0059】
複数の実施形態において、デバイスプラットフォーム602は、CM505、チップセット605、プロセッサ610、615、メモリ/ストレージ612、アプリケーション616、及び/又は無線618のうち任意の組み合わせを含んでよい。
【0060】
チップセット605は、プロセッサ610、615、メモリ612、ビデオプロセッサ615、アプリケーション616、又は無線618の間に相互通信を提供し得る。
【0061】
プロセッサ610、615のうち1つ又は複数は、1つ又は複数の複合命令セットコンピュータ(CISC)又は縮小命令セットコンピュータ(RISC)プロセッサ、x86命令セット互換プロセッサ、マルチコア、あるいは他のマイクロプロセッサ又は中央処理装置(CPU)として実装されてよい。
【0062】
メモリ612は、限定されないが、ランダムアクセスメモリ(RAM)ダイナミックランダムアクセスメモリ(DRAM)、又はスタティックRAM(SRAM)などの揮発性メモリデバイスとして実装されてよい。メモリ612はまた、限定されないが、フラッシュメモリ、バッテリバックアップSDRAM(シンクロナスDRAM)、磁気メモリ、相変化メモリなどの不揮発性記憶デバイスとして実装されてよい。
【0063】
無線618は、様々な適切な無線通信技術を用いて信号を送信及び受信することが可能な1つ又は複数の無線を含んでよい。そのような技術は、1つ又は複数の無線ネットワークにわたる通信を含み得る。例示的な無線ネットワークは(限定されないが)、無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線メトロポリタンエリアネットワーク(WMAN)、セルラーネットワーク、及び衛星ネットワークを含む。そのようなネットワークにわたる通信において、無線618は、任意のバージョンの1つ又は複数の適用可能な規格に従って動作し得る。
【0064】
複数の実施形態において、システム600は、無線システム、有線システム、又は両方の組み合わせとして実装され得る。無線システムとして実装される場合、システム600は、無線共有媒体を介して通信するのに適切な複数のコンポーネント及びインタフェースを含んでよく、それらは、1つ又は複数のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、制御論理などである。無線共有媒体の一例には、RFスペクトルなどの無線スペクトルの一部が含まれてよい。有線システムとして実装される場合、システム600は、有線通信媒体を介して通信するのに適切な複数のコンポーネント及びインタフェースを含んでよく、それらは、入出力(I/O)アダプタ、I/Oアダプタを対応する有線通信媒体に接続する物理コネクタ、ネットワークインタフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどである。有線通信媒体の例には、ワイヤ、ケーブル、金属リード線、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体構成要素、ツイストペアワイヤ、同軸ケーブル、光ファイバなどが含まれ得る。
【0065】
本明細書に説明されるテクスチャ強化型NLM画像ノイズ除去アーキテクチャ及び関連アルゴリズムは、様々なハードウェアキテクチャ、セル設計、又は「IPコア」に実装され得る。
【0066】
上述されたように、システム600は、様々な物理的形態又はフォームファクタで具現化され得る。
図7は、モバイルハンドセットデバイス700の実施形態を更に例示し、ここでシステム600が具現化され得る。複数の実施形態において、例えば、デバイス700は無線機能を有するモバイルコンピューティングデバイスとして実装され得る。モバイルコンピューティングデバイスとは、例えば、処理システムと、1つ又は複数のバッテリなどのモバイル電源又は電力供給部とを有する任意のデバイスを意味し得る。モバイルコンピューティングデバイスの例には、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、セルラー電話、セルラー電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、タブレット、又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイスなどが含まれ得る。モバイルコンピューティングデバイスの例には、人が着用するよう構成されたコンピュータ及び/又はメディアキャプチャ/送信デバイスもまた含まれてよく、それらは、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、アイグラスコンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、シューズコンピュータ、衣類コンピュータ、及び他のウェアラブルコンピュータなどである。様々な実施形態において、例えば、モバイルコンピューティングデバイスは、コンピュータアプリケーション、並びに音声通信及び/又はデータ通信を実行することが可能なスマートフォンとして実装され得る。例としていくつかの実施形態が、スマートフォンとして実装されるモバイルコンピューティングデバイスを用いて説明され得るが、他の実施形態が他の無線モバイルコンピューティングデバイスを用いてもまた実装され得ることが理解されてもよい。複数の実施形態はこの文脈に限定されるものではない。
【0067】
図7に示されるように、モバイルハンドセットデバイス700は、正面701及び背面702を有するハウジングを含み得る。デバイス700は、ディスプレイ704、入出力(I/O)デバイス706、及び集積アンテナ708を含む。デバイス700はまた、ナビゲーション機能712を含み得る。ディスプレイ704は、モバイルコンピューティングデバイスに適切な情報を表示するための任意の適切なディスプレイユニットを含んでよい。I/Oデバイス706は、モバイルコンピューティングデバイスに情報を入力するための任意の適切なI/Oデバイスを含んでよい。I/Oデバイス706の例には、英数字キーボード、テンキーパッド、タッチパッド、入力キー、ボタン、スイッチ、マイク、スピーカ、音声認識デバイス、及びソフトウェアなどが含まれ得る。情報はまた、マイク(不図示)を介してデバイス700に入力されてよく、又は音声認識デバイスによってデジタル化されてもよい。複数の実施形態はこの文脈に限定されるものではない。少なくとも背面702に集積されるのはカメラ705(例えば、レンズ、アパーチャ、イメージセンサを含む)及びフラッシュ710であり、両方ともCMのコンポーネントで有り得、CMを通じて画像フレームが露光され、本明細書の他の箇所で説明されるもののいずれかなどのテクスチャ強化型NLM画像ノイズ除去システムに出力される。
【0068】
本明細書に説明される複数の実施形態は、ハードウェア要素、ソフトウェア要素、又は両方の組み合わせを用いて実装され得る。ハードウェア要素又はモジュールの例には、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどが含まれる。ソフトウェア要素又はモジュールの例には、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ルーチン、サブルーチン、関数、方法、手順、ソフトウェアインタフェース、アプリケーションプログラミングインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、データ語、値、記号、又はこれらの任意の組み合わせが含まれる。
【0069】
一実施形態がハードウェア要素及び/又はソフトウェア要素を用いて実装されるかどうかの決定は、設計の選択に検討される任意の数の要素に従って変化し得る。それらの要素は、限定されないが、所望の計算速度、電力レベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計制約又は性能制約などである。
【0070】
少なくとも1つの実施形態の1つ又は複数の態様が、機械可読記憶媒体に格納される代表的な命令によって実装され得る。そのような命令は、当該命令を格納し、機械可読記憶媒体も構成する機械、メインメモリ、及びプロセッサの一部によって実行されている間、メインメモリ内及び/又はプロセッサ内に、完全に又は少なくとも部分的に存在し得る。プログラマブル論理回路は、コンピュータ可読媒体を実装するプロセッサにより構成されるレジスタ、ステートマシンなどを有し得る。そのような論理回路は、プログラミングされると、本明細書に説明される複数の実施形態の範囲に含まれるシステムに物理的に変換されると理解されてよい。プロセッサ内で様々な論理を表す命令はまた、機械によって読み出されると、本明細書に説明されるアーキテクチャに準拠する論理を機械に作らせ得る、及び/又は本明細書に説明される技術を機械に実行させ得る。セル設計又はIPコアとして知られるそのような表現は、有形の機械可読媒体に格納され、様々な顧客又は製造施設に供給されて、論理又はプロセッサを実際に作成する製造機械にロードされ得る。
【0071】
本明細書に明記される複数の特定の特徴が複数の実施形態を参照して説明されてきたが、この説明は限定する意味で解釈されることを意図するものではない。従って、本明細書に説明される実装の様々な変更及び他の実装は、本開示に関連する当業者には明らかではあるが、本開示の趣旨および範囲内にあるとみなされる。
【0072】
以下の段落では、いくつか例示的な実施形態を簡潔に説明する。
【0073】
1つ又は複数の第1の実施形態において、コンピュータにより実装される画像ノイズ低減方法は、目標画素及び目標画素の空間近傍内の複数の画素に関する入力画素の値を受信する段階を含む。本方法は、入力画素の値に基づいて、近傍内のテクスチャのレベルを示すテクスチャスコアを計算する段階を含む。本方法は、入力画素の値に基づいて、目標入力画素の非局所平均を計算する段階を含む。本方法は、非局所平均と目標入力画素の値とのブレンドであるフィルタ処理した目標画素の値をテクスチャスコアに基づいて計算することで、目標入力画素の値に対する非局所平均の重み付けをテクスチャのレベルに反比例して調整する段階を含み、さらに本方法は、フィルタ処理した目標画素の値を電子メモリに格納する段階を含む。
【0074】
第1の実施形態を促進するために、目標入力画素の非局所平均を計算する段階は、近傍内の複数の候補パッチの数を決定する段階を更に有し、そこから、より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めるべく、非局所平均がテクスチャスコアに基づいて計算される。
【0075】
第1の実施形態を促進するために、本方法は、各候補パッチと目標画素を含んだ近傍内の画素の目標パッチとの比較を実行することで、近傍内の1つ又は複数の候補パッチのパッチ加重値を計算する段階を更に含む。本方法は、パッチ加重値及びテクスチャスコアに基づいてブレンド係数を計算する段階を更に含む。本方法は、ブレンド係数に基づいて、非局所平均と目標入力画素との間を補間することで、非局所平均を目標入力画素の値とブレンドする段階を更に含む。
【0076】
直前の実施形態を促進するために、本方法は、テクスチャスコアに基づいて最大パッチ加重値のセットを選択する段階を更に含む。パッチ加重値及びテクスチャスコアに基づいてブレンド係数を計算する段階は、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計に基づいてブレンド係数を計算する段階を更に有する。ブレンド係数に基づいて非局所平均と目標入力画素との間を補間する段階は、非局所平均と目標入力画素との加重和を取る段階を更に有し、非局所平均及び目標入力画素は、パッチ加重値統計によって相補的に重み付けされる。
【0077】
直前の実施形態を促進するために、テクスチャスコアに基づいてパッチ加重値のセットを選択する段階は、複数の候補パッチの数とゼロ以外の最小値との間の範囲のテクスチャスコアの単調減少する閉形式関数を評価する段階、又はテクスチャスコアをインデックス値として用いてルックアップテーブル(LUT)にアクセスする段階であって、LUTは異なる数の候補パッチを異なるテクスチャスコアに関連付ける、段階のうち少なくとも1つによって、候補パッチの整数の数を加重値のセットで表すよう決定する段階を更に有する。
【0078】
直前の実施形態を促進するために、テクスチャスコアに基づいてパッチ加重値のセットを選択する段階は、テクスチャスコア及び候補パッチの合計数の単調減少する閉形式関数を評価することで、複数の候補パッチの数をセットで表すよう決定する段階を更に有する。
【0079】
第1の実施形態を促進するために、本方法は、テクスチャスコアに基づいて最大パッチ加重値のセットを選択する段階を更に含む。パッチ加重値及びテクスチャスコアに基づいてブレンド係数を計算する段階は、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計から初期ブレンド係数を計算する段階と、初期ブレンド係数のマッピングを通じてブレンド係数を計算する段階とを更含み、マッピングはテクスチャスコアの関数である。
【0080】
直前の実施形態を促進するために、最終ブレンド係数を計算する段階は、テクスチャスコアの単調減少する閉形式関数を評価する段階、又はインデックス値としてテクスチャスコアを用いてルックアップテーブル(LUT)にアクセスする段階であって、LUTは異なるテクスチャスコアを初期ブレンド係数と最終ブレンド係数との間の異なるマッピングに関連付ける、段階のうち少なくとも1つを更に有する。
【0081】
第1の実施形態を促進するために、テクスチャスコアを計算する段階は、近傍内の全ての画素の値又はそのサブセットにわたるバラツキ推定量を計算する段階と、信号強度によってバラツキ推定量を正規化する段階とを更に含む。
【0082】
第1の実施形態を促進するために、目標入力画素の非局所平均を計算する段階は、複数の候補パッチの数と目標画素を含んだ近傍内の画素の目標パッチとの比較を実行することで近傍内の候補パッチごとにパッチ加重値を計算する段階と、対応するパッチ加重値によって重み付けされた複数の候補パッチを平均することで平均パッチを計算する段階とを更に含む。
【0083】
1つ又は複数の第2の実施形態において、コンピュータにより実装される画像ノイズ低減方法は、目標画素及び目標画素の空間近傍内の複数の画素に関する入力画素の値を受信する段階を含む。本方法は、近傍内のテクスチャのレベルを示すテクスチャスコアを計算する段階を含む。本方法は、各候補パッチと目標画素を含んだ画素の目標パッチとの比較を実行することで、近傍内の1つ又は複数の候補パッチのパッチ加重値を計算する段階を含む。本方法は、テクスチャスコア及び候補パッチの合計数の単調減少する閉形式関数を評価することで、候補パッチの整数の数を表す最大パッチ加重値のセットを選択する段階を含む。本方法は、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計から初期ブレンド係数を計算する段階を含む。本方法は、初期ブレンド係数のマッピングを通じて最終ブレンド係数を計算する段階を含み、マッピングはテクスチャスコアの関数である。本方法は、より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めるべく、テクスチャスコアに基づいて近傍内の候補パッチのサブセットを選択する段階を含む。本方法は対応するパッチ加重値により重み付けされる候補パッチのサブセットを平均することで決定される平均パッチから、目標入力画素の非局所平均を計算する段階を含む。本方法は、最終ブレンド係数に基づいて非局所平均と目標入力画素との間を線形的に補間することで、非局所平均を目標入力画素の値とブレンドする段階を含む。本方法は、フィルタ処理した目標画素の値としてブレンドをメモリに格納する段階を含む。
【0084】
第2の実施形態を促進するために、テクスチャスコアを計算する段階は、近傍内の全ての画素の値又はそのサブセットにわたるバラツキ推定量を計算する段階と、信号強度によってバラツキ推定量を正規化する段階とを更に含む。
【0085】
1つ又は複数の第3の実施形態において、画像処理システムは、目標画素及び目標画素の空間近傍内の複数の画素に関する入力画素の値を受信する入力ポートを含む。システムは、入力ポートに結合されたノイズ除去モジュールを含む。ノイズ除去モジュールは、近傍内で検出されたテクスチャのレベルを示すテクスチャスコアを入力画素の値に基づいて計算するテクスチャ処理モジュールを更に含む。ノイズ除去モジュールは、目標入力画素の非局所平均を入力画素の値に基づいて計算するNLMモジュールを更に含む。ノイズ除去モジュールは、非局所平均と目標入力画素の値とのブレンドであるフィルタ処理した目標画素の値をテクスチャスコアに基づいて計算することで、目標入力画素の値に対する非局所平均の重み付けをテクスチャのレベルに反比例して調整するブレンドモジュールを更に含む。システムは、ノイズ除去モジュールに結合された出力ポートを更に含み、フィルタ処理した目標画素の値を電子メモリに送信する。
【0086】
第3の実施形態を促進するために、NLMモジュールは、複数の候補パッチの数と目標画素を含んだ近傍内の画素の目標パッチとの比較を実行することで、近傍内の候補パッチのパッチ加重値を計算する論理回路を更に含む。ブレンドモジュールは、パッチ加重値及びテクスチャスコアに基づいてブレンド係数を計算する論理回路と、ブレンド係数に基づいて非局所平均と目標入力画素との間を補間することで非局所平均を目標入力画素の値とブレンドする論理回路とを更に有する。
【0087】
直前の実施形態を促進するために、テクスチャ処理モジュールは、テクスチャスコアに基づいて最大パッチ加重値のセットを選択する論理回路と、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計に基づいてブレンド係数を計算する論理回路とを更に有する。ブレンドモジュールは、非局所平均と目標入力画素との加重和を取る論理回路を更に有し、非局所平均及び目標入力画素はパッチ加重値統計によって相補的に重み付けされる。
【0088】
直前の実施形態を促進するために、テクスチャ処理モジュールは、複数の候補パッチの数とゼロ以外の最小値との間の範囲のテクスチャスコアの単調減少する閉形式関数を評価する論理回路、又はインデックス値としてテクスチャスコアを用いてルックアップテーブル(LUT)にアクセスする論理回路であって、LUTは異なる数の候補パッチを異なるテクスチャスコアに関連付ける、論理回路のうち少なくとも1つを用いて、候補パッチの整数の数を加重値のセットで表すよう決定する論理回路を更に有する。
【0089】
第3の実施形態を促進するために、テクスチャ処理モジュールは、テクスチャスコアに基づいて最大パッチ加重値のセットを選択する論理回路を更に含む。ブレンドモジュールは、パッチ加重値及びテクスチャスコアに基づいてブレンド係数を計算する論理回路を更に有する。ブレンドモジュールは、選択されたパッチ加重値のセットの中心傾向を示すパッチ加重値統計から初期ブレンド係数を計算する論理回路を更に含む。ブレンドモジュールは、初期ブレンド係数のマッピングを通じてブレンド係数を計算する論理回路を更に含み、マッピングはテクスチャスコアの関数である。
【0090】
第3の実施形態を促進するために、ブレンドモジュールはテクスチャスコアの単調減少する閉形式関数を評価する論理回路、又はインデックス値としてテクスチャスコアを用いてルックアップテーブル(LUT)にアクセスする論理回路であって、LUTは異なるテクスチャスコアを初期ブレンド係数と最終ブレンド係数との間の異なるマッピングに関連付ける、論理回路のうち少なくとも1つを用いて最終ブレンド係数を計算する論理回路を更に含む。
【0091】
第3の実施形態を促進するために、NLMモジュールは、より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めるべく、テクスチャスコアに基づいて近傍内の候補パッチのサブセットを選択する論理回路を更に含む。NLMモジュールは、対応するパッチ加重値により重み付けされる候補パッチのサブセットを平均することで決定される平均パッチから、目標入力画素の非局所平均を計算する論理回路を更に含む。
【0092】
1つ又は複数の第4の実施形態において、モバイルコンピューティングプラットフォームは、第3の実施形態の画像処理システムと、入力に結合され、RGB空間において入力画素の値を含んだ生の画像データを生成するカメラハードウェアモジュール(CM)とを含む。プラットフォームは、電子メモリ、出力に結合されたエンコーダ又はディスプレイ、フィルタ処理した画像画素を画像データのフィルタ処理した表現として格納するメモリ、フィルタ処理した画像画素を画像データのフィルタ処理した表現としてエンコードするエンコーダ、及びフィルタ処理した画像画素を画像データのフィルタ処理した表現として提供するディスプレイのうち少なくとも1つを更に含む。
【0093】
1つ又は複数の第5の実施形態において、画像処理システムは、目標画素及び目標画素の空間近傍内の複数の画素に関する入力画素の値を受信する入力手段を含む。システムは、入力画素の値に基づいて近傍内で検出されたテクスチャのレベルを示すテクスチャスコアを計算する入力手段に結合されたテクスチャ処理手段を更に含んだノイズ除去手段を更に含む。ノイズ除去手段は、入力画素の値に基づいて目標入力画素の非局所平均を計算する入力手段に結合された非局所平均(NLM)計算手段を更に含む。ノイズ除去手段は、テクスチャ処理手段とNLM計算手段と入力手段とに結合されたブレンド手段を更に含み、ブレンド手段は、非局所平均と目標入力画素の値とのブレンドであるフィルタ処理した目標画素の値をテクスチャスコアに基づいて計算することで、目標入力画素の値に対する非局所平均の重み付けをテクスチャのレベルに反比例して調整する。画像処理システム手段は、ブレンド手段に結合された出力手段を更に含み、フィルタ処理した目標画素の値を電子メモリに書き込む。
【0094】
1つ又は複数の第6の実施形態において、1つ又は複数のコンピュータ可読記憶媒体は、そこに格納された複数の命令を有し、複数の命令はプロセッサにより実行されると、プロセッサに上記の複数の第1の実施形態のうちいずれか1つを実行させる。
【0095】
1つ又は複数の第7の実施形態において、1つ又は複数のコンピュータ可読記憶媒体はそこに格納された複数の命令を含み、複数の命令はプロセッサにより実行されると、プロセッサに、目標画素及び目標画素の空間近傍内の複数の画素に関する入力画素の値を受信する段階を含んだ方法を実行させる。本方法は、入力画素の値に基づいて近傍内のテクスチャのレベルを示すテクスチャスコアを計算する段階を含む。本方法は、入力画素の値に基づいて目標入力画素の非局所平均を計算する段階を含む。本方法は、非局所平均と目標入力画素の値とのブレンドであるフィルタ処理した目標画素の値をテクスチャスコアに基づいて計算することで、目標入力画素の値に対する非局所平均の重み付けをテクスチャのレベルに反比例して調整する段階を含む。本方法は、フィルタ処理した目標画素の値を電子メモリに格納する段階を含む。
【0096】
第7の実施形態を促進するために、媒体はそこに格納された複数の命令を含み、複数の命令はプロセッサにより実行されると、プロセッサに、近傍内の複数の候補パッチの数を決定する段階を更に含む方法を更に実行させ、そこから、より大きいレベルのテクスチャを検出することに対応してより少数の候補パッチを含めるべく、非局所平均がテクスチャスコアに基づいて計算される。
【0097】
第7の実施形態を促進するために、媒体はそこに格納された複数の命令を含み、複数の命令はプロセッサにより実行されると、プロセッサに、複数の候補パッチの数と目標画素を含んだ近傍内の画素の目標パッチとの比較を実行することで近傍内の候補パッチの相似性スコアを計算する段階と、相似性スコア及びテクスチャスコアに基づいてブレンド係数を計算する段階と、ブレンド係数に基づいて非局所平均と目標入力画素との間を補間することで、非局所平均を目標入力画素の値とブレンドする段階とを更に含む方法を更に実行させる。
【0098】
複数の実施形態は、説明された複数の例示的な実施形態に限定されず、添付の特許請求の範囲から逸脱することなく、変更及び修正を伴って実施され得ることが認識されるであろう。例えば、上記の複数の実施形態は、複数の特徴の特定の組み合わせを含んでよい。しかし、上記の複数の実施形態はこの点で限定されるものではなく、複数の実施形態において、上記の複数の実施形態はそのような特徴のサブセットだけを引き受けること、そのような特徴の異なる順序を引き受けること、そのような特徴の異なる組み合わせを引き受けること、及び/又は、明示的に列挙されたこれらの特徴以外に追加の特徴を引き受けることを含んでよい。従って、範囲はそのような特許請求の範囲が権利を与えられる等価物の全範囲とともに、添付の特許請求の範囲を参照して決定されるべきである。