(58)【調査した分野】(Int.Cl.,DB名)
オリジナルのテクスチャーを含まない前記画像シーケンス内でブロックを位置付けるために、前記ノイズスペクトル推定器がグラデーション分析を使用する、請求項1によるツール。
前記ノイズスペクトル推定器が、フラットな領域およびノイズを持つ前記画像シーケンス内のブロックの位置決めをするよう構成されたガウスぼかしフィルターを含む、請求項1によるツール。
前記ノイズ抑制器が、入力フレーム中にある前記シーケンス内の画素ブロック、および動き補償済みフレームの前記シーケンス内の画素ブロックに適合する線形平面を推定し、入力フレーム中にある前記シーケンス内の前記画素ブロックから二次元平面を除去し、前記除去された二次元平面を入力フレーム中にある前記シーケンス内の前記画素ブロックに戻す、請求項1によるツール。
前記画素ブロックのノイズ推定が、その明るさが飽和状態と露光不足の間である、前記オリジナルの現フレーム内のブロックのグリッドの選択を含む、請求項11による方法。
前記画素ブロックのノイズ推定が、その明るさが前記画像シーケンスについて最大明るさの強度5%〜95%の間である、前記オリジナルの現フレーム内のブロックのグリッドの選択を含む、請求項11による方法。
前記画素ブロックのノイズ推定が、それら自体と前記動き補償済みの前フレーム内のブロック間のその変位フレーム差が2つの閾値の間であるブロックの選択を含む、請求項11による方法。
前記妥当性確認済みの推定ノイズパワースペクトルを使用した前記画像シーケンス内のノイズ低減が、前記オリジナルの現フレームの前記画素ブロックからの二次元平面の除去を含む、請求項11による方法。
前記妥当性確認済みの推定ノイズパワースペクトルを使用した前記画像シーケンス内のノイズ低減が、前記オリジナルの現フレームからの前記画素ブロックへのウィナーフィルターの適用を含む、請求項11による方法。
前記妥当性確認済みの推定ノイズパワースペクトルを使用した前記画像シーケンス内のノイズ低減が、前記オリジナルの現フレームからの前記画素ブロックに前記二次元平面を戻すことを含む、請求項19による方法。
実行したときに、一つ以上のプロセッサが画像シーケンス内のノイズパワースペクトルを推定する方法を実行させるプロセッサ実行可能命令を格納する、一つ以上のコンピュータ可読媒体であって、前記方法が、
画像シーケンスからの、オリジナルの現フレーム、オリジナルの前フレーム、およびオリジナルの次フレームの取得と、
動き補償済み現フレーム、動き補償済みの前フレーム、および動き補償済みの次フレームの取得と、
前記画像シーケンス内のショットの変化の取得と、
前記オリジナルの現フレーム、前記オリジナルの前フレーム、前記オリジナルの次フレーム、前記動き補償済みの現フレーム、前記動き補償済み前フレーム、および前記動き補償済みの次フレームを使用しての、前記オリジナルの現フレーム内のノイズ推定であって、前記ショットの変化をトリガーとして使用する前記ノイズ推定と、を含むコンピュータ可読媒体。
前記オリジナルの現フレーム内の前記ノイズ推定が、前記オリジナルの現フレーム、オリジナルの前フレーム、オリジナルの次フレームへのガウスぼかしフィルターの適用を含む、請求項22による一つ以上のコンピュータ可読媒体。
前記オリジナルの現フレーム内の前記ノイズ推定が、前記オリジナルの現フレーム、オリジナルの前フレーム、オリジナルの次フレームへの三次元高速フーリエ変換の適用を含む、請求項22による一つ以上のコンピュータ可読媒体。
前記オリジナルの現フレーム内の前記ノイズ推定が、その明るさが飽和状態と露光不足の間である、前記オリジナルの現フレーム内のブロックのグリッドの選択を含む、請求項22による一つ以上のコンピュータ可読媒体。
前記オリジナルの現フレーム内の前記ノイズ推定が、その明るさが前記画像シーケンスについて最大明るさの強度5%〜95%の間である前記オリジナルの現フレーム内のブロックのグリッドの選択を含む、請求項22による一つ以上のコンピュータ可読媒体。
前記オリジナルの現フレーム内の前記ノイズ推定が、その明るさが前記画像シーケンスについて最大明るさの強度10%〜90%の間である前記オリジナルの現フレーム内のブロックのグリッドの選択を含む、請求項22による一つ以上のコンピュータ可読媒体。
前記オリジナルの現フレーム内の前記ノイズ推定が、それら自体と前記動き補償済みの前フレーム内のブロック間のその変位フレーム差が2つの閾値の間であるブロックの選択を含む、請求項22による一つ以上のコンピュータ可読媒体。
前記オリジナルの現フレーム内の前記ノイズ推定が、それら自体と前記動き補償済みの次フレーム内のブロック間のその変位フレーム差が2つの閾値の間であるブロックの選択を含む、請求項22による一つ以上のコンピュータ可読媒体。
【発明を実施するための形態】
【0005】
詳細な説明では添付した図を参照する。図中、参照番号の最も左の桁は、その参照番号が最初に登場する図を特定する。同様の特徴やコンポーネントを参照するのに、図面全体で同じ番号が使用される。
【0006】
本開示は、特にアップロード済みコンテンツについての、ビデオ中のノイズを低減する技術について記載したものである。下記の
図1は、一つ以上の実施例における、ショット検出器、ノイズスペクトル推定器、ノイズスペクトルバリデータ、およびノイズ抑制器を含むノイズリダクションツールを図示したものである。オリジナルの画像シーケンス(すなわち、ビデオ)の3つのフレームは、ノイズリダクションツールへの入力である。これらの3つのフレームは、対象の現フレーム、前フレーム、および次フレームである。
【0007】
動き推定器は、フレーム内の動きを推定する。画像中のフレーム内の動きを推定する一つの目的は、シーンコンテンツはフレーム間でそれほど変化しない可能性があるという事実、およびシーン内のオブジェクトが移動する場合、オブジェクトとノイズの間の区別に役立つという知識を利用することである。移動しているオブジェクトはノイズではなく、画像内に残るべきである。動き推定が実行される例で、動き推定器は、写真の撮影に使用されたカメラの動きを推定して、シーンの優勢な動きを探す(グローバル推定)か、および/または画像内の各ブロックの動きを推定する(ブロックベースの推定)ために、少なくとも3つのオリジナルのフレーム(たとえば、対象の現フレーム、前フレーム、および次フレーム)を使用しうる。動き推定器の出力は、その動きが現フレームと、前フレームまたは次フレームのいずれかとの間の相対的な動きがないように補償済みの3つのフレームである。
【0008】
ショット検出器はまた、オリジナルの画像シーケンスの少なくとも3つのフレームを受け取る。ショット検出器は、画像内のどこでショットの変化が発生したかを判断する。ショットは、カメラが撮影を開始した時間から、カメラが撮影を停止した時間まで存在する。一般に、カメラは複数回にわたり撮影を停止し開始するため、画像シーケンスには複数のショットがある。いくつかの実施例で、ショット検出器は、オリジナルの現フレームおよびオリジナルの前フレームのグレースケールヒストグラムを互いに引算することで、ショットの変化を判断する。2つのヒストグラム間の大きな差異は、画像シーケンス内のショットの変化を示しうる。
【0009】
ノイズスペクトル推定器は、オリジナルの画像シーケンス、動き推定器からの3つの動き補償済みフレーム、およびショット検出器からの出力の、少なくとも3つのフレームを受け取る。ノイズスペクトル推定器は、ノイズスペクトル推定プロセスの開始を誘発するために、ショット検出器からの出力を使用しうる。ノイズスペクトル推定器は、オリジナルのフレームのどの部分がノイズであり、どの部分がテクスチャーであり、どの部分がエッジであるかなどを判断するために、オリジナルの現フレーム、および動き補償済み前フレームおよび次フレームを使用しうる。次に、ノイズスペクトル推定器は、2段階プロセスを使用して、画像内のノイズを推定する。第一の段階では、ガウスぼかしフィルターを使用して、ノイズスペクトル推定器は、フラットな領域(テクスチャーまたはエッジなし)およびノイズのみを持つオリジナルの画像内のブロックを見つける。第二の段階では、第一の段階の処理を通過した三次元高速フーリエ変換(3-D FFT)ブロックを使用して、それらのブロックについてのノイズパワースペクトルを推定する。ノイズスペクトル推定器の出力は、推定済み/計算済みのノイズパワースペクトル密度(ePSD)およびePSDが計算されたブロックの近接数である。
【0010】
ノイズスペクトルバリデータは、推定ノイズパワースペクトル密度を受け取ることも、ePSDが信頼できるノイズ統計を表しているかどうかを判断することもできる。すなわち、それぞれの時間フーリエ平面でのパワーは、ほぼ同じであるべきで、かつePSDは対称であるべきである。妥当性確認済みの推定ノイズパワースペクトル密度は、ノイズ抑制器への出力としうる。
【0011】
ノイズ抑制器は、オリジナルの現フレーム、動き補償済みの前フレーム、および動き補償済みの次フレームを受け取りうる。ノイズ抑制器は、オリジナルの現フレームからのブロック、動き補償済み前フレームからのブロック、および動き補償済みの次フレームからのブロックを用いて、オリジナルの現フレームからのブロックに適合する線形平面を推定する。二次元平面が、オリジナルの現フレームのブロック、動き補償済み前フレームからのブロック、および動き補償済みの次フレームからのブロックから除去され、および周波数領域ウィナーフィルター動作がオリジナルの現フレームのブロックに対して実行され、ブロック内のノイズが低減される。除去された二次元平面は次に、オリジナルの現フレームからのブロックに戻されうる。このプロセスは、ノイズが低減された現フレームを生成する。
【0012】
ノイズリダクションツールの例
図1は、本書に記載された一つ以上の実施例によるノイズリダクションツール100の一例を図示したものである。図示したツール100は、ショット検出器102、動き推定器104、ノイズスペクトル推定器106、ノイズスペクトルバリデータ108、およびノイズ抑制器110を含む。図示されたノイズリダクションツール100はオリジナルの画像シーケンス112を取得し、それらをショット検出器102、動き推定器104、およびノイズスペクトル推定器106に供給する。動き推定器104は、ブロックベースの動き推定器116およびグローバル推定器118を含む。ショット検出器102は、ヒストグラムモジュール120を含む。ノイズスペクトル推定器106は、ガウスフィルター124およびePSDモジュール126を含む。ノイズスペクトルバリデータ108は、対称性モジュール128を含む。ノイズ抑制器110は、ウィナーフィルター130を含む。
【0013】
一つ以上の実施例で、ノイズリダクションツール100は、画像処理エディタ用のプラグインとしうる。別の方法として、ノイズリダクションツール100は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、クライアントマシン、サーバー、カメラ付き携帯電話、スマートフォン、ラップトップ電話、および/または同種のものに実装されうる。
【0014】
ノイズリダクションツール100は、オリジナルの画像シーケンス112から3つのフレームを取得する。3つのフレームは、オリジナルの現フレーム、オリジナルの前フレーム、およびオリジナルの次フレームである。一般に、編集済みのムービーまたはその他の画像シーケンスを処理するとき、多数のショットがある。異なるショットは、異なるノイズ特性をもつことができる。ショット検出器102は、3つのフレームを獲得し、どこでショットの変化が発生したかを判断して、それをノイズリダクションプロセス中に考慮できるようにする。
【0015】
一つ以上の実施例で、ショット検出器102は、ヒストグラムモジュール120を使用して、オリジナルの画像シーケンス112内のどこでショットの変化が発生したかを判断する。例えば、ヒストグラムモジュール120は、オリジナルの現フレームのグレースケールヒストグラムとオリジナルの前フレームのグレースケールヒストグラムとの間で差異を判断する。2つのヒストグラム間の大きな差異は、オリジナルの画像シーケンス112内のショットの変化を示しうる。2つのヒストグラム間の小さな差異は、オリジナルの画像シーケンス112内にショットの変化がないこと示しうる。
【0016】
一つ以上の実施例で、ショット検出器102は、オリジナルの現フレームとオリジナルの前フレームの強度値間の差異を判断する。2つの強度値間の大きな差異は、オリジナルの画像シーケンス112内のショットの変化を示す。2つの強度値間の小さな差異は、オリジナルの画像シーケンス112内のショットの変化がないことを示す。
【0017】
一つ以上の実施例で、ショット検出器102は、オリジナルの現フレームとオリジナルの前フレームとの間のグローバルな動きを計算することも、またオリジナルの現フレームとオリジナルの前フレームの変位フレーム差(DFD)を計算することもできる。大きなDFDは、画像シーケンス112内のショットの変化を示しうる。小さなDFDは、画像シーケンス112内のショットの変化がないことを示しうる。
【0018】
動き推定器104はまた、オリジナルの画像シーケンス112から3つのフレームを取得する。一つ以上の実施例で、動き推定器104は、オリジナルの画像シーケンス112に対しては動き推定を実行せず、オリジナルの画像シーケンス112に対してグローバルな動き推定を実行し、オリジナルの画像シーケンス112内の各ブロックについて動きベクトルを推定(ここでブロックサイズは、画像サイズと共に変化する)、および/またはオリジナルの画像シーケンス112内の各画素について動きベクトルを推定する。
【0019】
例えば、オリジナルの画像シーケンス112についての画像サイズが480pに満たない場合、動き推定器104は、オリジナルの画像シーケンス112について動き推定を実行しないことがある。
【0020】
動き推定器104がブロックベースの推定器116を使用して、オリジナルの画像シーケンス112に対するブロックベースの動き推定を実行しうる実施例では、ブロックベースの推定器116は、画素ブロックを使用し、オリジナルの画像シーケンス112内の現フレームのブロックの動きに対応して、ベクトルを生成する。オリジナルの画像シーケンス112の画像解像度が、480pよりも大きい場合、ブロックベースの動き推定器116は、32×32画素のブロックに対して動き推定プロセスを実行しうる。オリジナルの画像シーケンス112の画像解像度が、480pに満たないが、360pよりも大きい場合、ブロックベースの動き推定器116は、16×16画素のブロックに対して動き推定プロセスを実行しうる。オリジナルの画像シーケンス112の画像解像度が、360pに満たない場合、ブロックベースの動き推定器116は、8×8画素のブロックに対して動き推定プロセスを実行しうる。
【0021】
例えば、一つ以上の実施例で、ブロックベースの推定器116は、総当たり探索(exhaustive search)技術を使用して、オリジナルの現フレームのブロックとオリジナルの前フレームのブロックとの間の変位(または速度)を最小限に抑えうる。ブロックベースの推定器116は、超大規模集積回路(VLSI)技術を使用して実施しうる。ブロックベースの推定器116は、任意のブロックベースの動き推定法を使用して実施しうる。
【0022】
一つ以上の実施例で、動き推定器104は、グローバル推定器116を使用して、シーンの優勢な動きを探しながら、オリジナルの画像シーケンス112を取り出した写真を撮影するために使用されたカメラの動きを推定しうる。次に、グローバル推定器116は、この推定に基づきシーンのグローバルな動きを描写する単一の動きベクトルを生成する。
【0023】
一つ以上の実施例で、動き推定器104は、既知のペル・リカーシブ動き推定技術を使用して、シーン中の各画素に対応した1組のベクトルを取得しうる。動き推定器104の出力は、それらの間での相対的な動きが補償され、低減あるいは、さらには除去されるようにその動きが補償された3つのフレーム、すなわち、動き補償済みフレーム119である。すなわち、動き補償済みの現フレームと、動き補償済み前フレームと、動き補償済みの次フレームとの間の相対的な動きは、わずかであるかまたは全くない。
【0024】
ノイズスペクトル推定器106は、動き推定器104から動き補償済みの現フレーム、動き補償済み前フレーム、および動き補償済みの次フレームを取得しうる。ノイズスペクトル推定器106はまた、画像シーケンス112からオリジナルの現フレーム、オリジナルの前フレーム、およびオリジナルの次フレームを取得しうる。ノイズスペクトル推定器106は、ノイズスペクトル推定プロセスを開始するトリガー122として、ショット検出器出力を使用しうる。
【0025】
一つ以上の実施例で、ノイズスペクトル推定器106は、オリジナルのフレームのどの部分がノイズであり、どの部分がテクスチャーであり、どの部分がエッジであるかなどを判断するために、オリジナルの現フレーム、および動き補償済み前フレームおよび次フレームを使用しうる。ノイズスペクトル推定器106は、2段階プロセスを使用して、画像シーケンス112中のノイズを推定する。
【0026】
第一の段階では、ノイズスペクトル推定器106は、フラットな領域(テクスチャーまたはエッジなし)およびノイズのみを持つ画像シーケンス112 内のブロックを見つけうる。ブロックサイズは以下のとおり設定しうる。画像シーケンス112の解像度が480pよりも大きい場合には、ブロックサイズは32×32画素に設定しうる。画像シーケンス112の解像度が480pよりも小さく360pよりも大きい場合には、ブロックサイズは16×16画素に設定しうる。画像シーケンス112の解像度が360pよりも小さい場合には、ブロックサイズは8×8画素に設定しうる。
【0027】
ノイズスペクトル推定器106は、画像シーケンス112内のブロックのグリッドを巡る。一つ以上の実施例で、グリッド内のブロックは、2の倍数で両方向に重ね合わせうる。その他の実施例については、グリッド内のブロックは、1倍、3倍、4倍、5倍などの他の倍数で両方向に重ね合わせうる。
【0028】
ノイズスペクトル推定器106は、画像シーケンス112に対して強度チェックを実行する。一つ以上の実施例で、ノイズスペクトル推定器106は、それらのブロックをノイズ推定プロセスから除外できるように、その明るさが飽和状態と露光不足の間であるグリッド内のブロックを判断しうる。例えば、画像シーケンス112が8ビット画像である場合、 ブロック内の明るさの平均値は0.05x255および0.95x255の範囲内としうる。一つ以上の実施例で、ブロック内の明るさの平均値は、0.1x255および0.90x255の範囲内としうる。さらに別の方法として、一つ以上の実施例で、ブロック内の明るさの平均値は0.15x255および0.85x255の範囲内としうる。
【0029】
ノイズスペクトル推定器106は、強度チェックを通過したブロックに対して動き補償チェックを実行する。一つ以上の実施例で、ノイズスペクトル推定器106は、オリジナルの現フレームからのブロック、オリジナルの現フレームから抽出したブロックに対応する動き補償済み前フレームからのブロック、およびオリジナルの現フレームから抽出したブロックに対応する動き補償済みの次フレームからのブロックを抽出しうる。ノイズスペクトル推定器106は、前方変位フレーム差(fDFD)および後方変位フレーム差(bDFD)を判断して、オリジナルの現フレームから抽出したブロック間での平均絶対誤差(MAE)を生成しうる。
【0030】
次に、ノイズスペクトル推定器106は、そのfDFDおよびbDFDが大きな閾値よりも小さい、オリジナルの現フレームからのブロックを選択しうる。これは、これらの選択したブロックが動きについて十分に補償されていることを確保するためである。
【0031】
fDFDおよびbDFDの単位は、グレースケールレベルとしうる。画像が8ビット画像である一つ以上の実施例で、グレースケールレベル範囲は0〜255である。これらの実施例で、閾値数は0〜255の間である。いくつかの実施例で、大きな閾値は10としうる。
【0032】
ノイズスペクトル推定器106はまた、強度チェックを通過したブロックに対して最小ノイズチェックを実行する。一つ以上の実施例で、ノイズスペクトル推定器106は、そのfDFDおよびbDFDが低閾値よりも大きい、オリジナルの現フレームからのブロックを選択しうる。これは、これらの選択したブロックが少なくともいくらかのノイズを持つよう確保するためである。一つ以上の実施例で、低閾値は0.1としうる。
【0033】
ノイズスペクトル推定器106は、強度チェック、動き補償チェック、および最小ノイズチェックを通過したブロックに対して、ノイズのみチェックを実施しうる。ノイズのみチェックでは、ノイズスペクトル推定器106は、強度チェック、動き補償チェック、および最小ノイズチェックを通過したブロックのテクスチャーコンテンツを評価する。一つ以上の実施例で、ノイズスペクトル推定器106は、ブロックの最小および最大のグラデーションの他にも、最小および最大グラデーションの方向も計算しうる。
【0034】
計算は、任意の既知の2×2グラデーション相関行列(G
TG)のEigen分析により達成しうる。例えば、ブロックは、(1)G
TG行列の条件数が規定値(T
C)よりも小さい、(2)G
TG行列の行列式が、規定値(T
DET)よりも小さい、および(3)G
TG行列のトレース(跡)の平方根が規定値(T
G)よりも小さいといった条件が真である場合、ノイズのみを持つものとみなしうる。一つ以上の実施例で、T
C = 50、T
DET = 0.04、および(3)GGDETのトレースの平方根)は、0.09よりも小さい。
【0035】
ノイズスペクトル推定器106は、画像シーケンス112の低域通過フィルター適用バージョンを使用して、テクスチャー評価を実行する。一つ以上の実施例で、ガウスフィルター124(例えば、0.5の分散を持ちうる)は、画像シーケンス112に低域通過フィルターを適用するために使用しうる。強度チェック、動き補償チェック、および最小ノイズチェックを通過したブロック、およびノイズチェックは、ノイズのみを含むものとみなすことも、ノイズスペクトル推定器106処理の第二の段階に渡すこともできる。
【0036】
第二の段階で、ノイズスペクトル推定器106は、処理の第一の段階で判断されたとおり、ノイズのみを含むものとみなされるブロックについてノイズパワースペクトルを推定しうる。一つ以上の実施例で、ノイズスペクトル推定器106は、ノイズのみを含むブロックが最小数であることを確保しうる。次に、ブロックは、ノイズパワースペクトルを推定するために処理される。例えば、ノイズのみを含むと判断された少なくとも5つのブロックがある場合、ノイズスペクトル推定器106は、これらのブロックを使用してノイズパワースペクトルを推定しうる。
【0037】
一つ以上の実施例で、 ePSDモジュール126は、ノイズスペクトル推定器106第二の段階の部分を実行する。
図2は、より詳細にePSDモジュール126を図示する。図示されたePSDモジュール126は、強度面モジュール202、ヒストグラムモジュール204、ウィンドウイングモジュール206、変換モジュール208、および平均化モジュール210を含む。
【0038】
ノイズスペクトル推定器106は、ノイズのみを含むと判断され、かつ強度面モジュール202が対象のブロックの強度面に適合するブロックから対象のブロックを選択する。すなわち、強度面モジュール202は、対象のブロックに適合する線形平面を推定しうる。強度面は、次式の形態を持つ。
【0039】
I’ = a + bh + ck + dhk
式中、a、b、c、およびdは強度面の係数であり、およびh、kは、画素の行座標、列座標である。
【0040】
強度面モジュール202は、対象のブロックに適合する線形平面を推定し、および二次元平面を対象のブロックから除去する。強度面モジュール202は、対象のブロックの強度とノイズの多いオリジナルの現フレーム内の画素の強度との間の差異を見つけて、エラーe
cを生成する。
【0041】
e
c = I
c - I’
式中、I
c は画素の強度である。対象のブロックの強度と対応するノイズの多いオリジナルの現フレーム内の画素の強度との間の差異を見つけるこのプロセスは、エラーe
cを生成させるために使用される。エラー信号の分散e
cは、ノイズの多い画像シーケンス112内のノイズの分散にほぼ相関する。
【0042】
一つ以上の実施例で、ノイズスペクトル推定器106は、エラー信号の分散値e
cの一致するブロックの部分集合について、ブロック間での一致を判断しうる。ヒストグラムモジュール204は、ノイズ分散のヒストグラムを作成しうる。ノイズスペクトル推定器106は、ノイズスペクトルの計算にふさわしいノイズブロックを表すヒストグラムのモードでブロックを選択する。例えば、そのモードでブロックが5つよりも少ない場合、ノイズスペクトル推定器106は、そのモードのどちら側かにヒストグラムビンを含みうる。ブロックがなおも5つよりも少ない場合には、このノイズの多いオリジナルの現フレームは、ノイズ推定について処理されないことがあり、および別のノイズの多いオリジナルの現フレームが処理用に選択されることがある。
【0043】
最終的に選択されたブロックの集合について、強度面モジュール202は、前のブロックおよび次のブロックの推定済みの平面間の差異を判断して、前フレームおよび次フレームからのブロックに対応したさらに2つのエラーブロックe
Pおよびe
Nを生成しうる。
【0044】
ウィンドウイングモジュール206は、エラーブロックeをウィンドウ表示する。一つ以上の実施例で、ウィンドウイングモジュール206は、二次元のハミング窓を含みうる。他の実施例で、ウィンドウイングモジュール206は、例えば、三角窓および方形窓など、その他の適切な窓を使用しうる。
【0045】
変換モジュール208は、エラーブロックe
c、e
P、およびe
N内の信号についてパワースペクトルの推定を計算する。このパワーは、「パワースペクトル密度」(PSD)と呼ばれる。本書で使用するとき、「パワー」は、エラーブロックe
c、e
P、およびe
N内の信号の変換におけるスペクトル要素の振幅を二乗したものを意味する。
【0046】
強度面の適合が基礎をなす画像シーケンス112情報をモデル化したと想定すると、エラー信号は画像シーケンス112中のノイズを表現するものであり、ノイズのパワースペクトルが計算済みで、またそれぞれのエラーブロックe
c、e
P、およびe
Nが、そのパワースペクトルの例を生成する。一つ以上の実施例で、変換モジュール208は、三次元高速フーリエ変換、離散コサイン変換、またはその他の適切な変換を使用して、エラーブロックe
c、e
P、およびe
N内の信号について、パワースペクトルの推定を計算しうる。
【0047】
一つ以上の実施例で、平均化モジュール210は、それぞれのエラーブロックe
c、e
P、およびe
Nのパワースペクトルを平均化して、最終的なノイズパワースペクトルの推定を生成する。ノイズスペクトル推定器106の一つの出力132は、ノイズパワースペクトルである。別の出力142は、推定ノイズパワースペクトルの計算元となったブロック接近数である。別の方法として、ノイズスペクトル推定器106がノイズパワースペクトルを全く計算しなかった場合、ノイズスペクトル推定器106は、処理する別のフレームを待ち、ノイズパワースペクトルの推定をしうる。
【0048】
一つ以上の実施例で、ノイズスペクトル推定器106は、推定ノイズパワースペクトルを事前計算しうる。これは、ユーザーに、例えば、テクスチャーのない壁、またはグレーのカードなど、平坦な画像の写真を撮影してもらうことで、達成される。ユーザーは平坦な画像統計をePSDモジュール126に供給し、これが事前計算済みの推定ノイズパワースペクトルを出力する。
【0049】
画像シーケンス112内に多くのテクスチャーがあり、かつそのテクスチャーがノイズのように見える場合、ノイズスペクトル推定器106によって実行されたノイズスペクトル推定は、なおもエラーがある可能性がある。ノイズスペクトル推定器106により実行されたノイズスペクトル推定はまた、追跡が困難な動きがあるとき、エラーがある可能性がある。再び
図1を参照するが、ノイズスペクトルバリデータ108は、推定ノイズパワースペクトル密度を取得し、パワースペクトルが信頼できるノイズ統計を表現しているかどうかを判断する。
【0050】
三次元高速フーリエ変換がエラーブロックe
c、e
P、およびe
N内の信号についてパワースペクトルの推定が有効であるかを計算する実施例で、ノイズパワースペクトルは、それぞれの3つの時間フーリエ平面について凡そ同じであるべきである。それぞれの3つの時間フーリエ平面内での平均エネルギーの比が閾値よりも大きい場合には、最小のエネルギーを持つ時間フーリエ平面は、パワーの不一致を最小限に抑えている最大のパワーを有する平面にコピーされうる。一つ以上の実施例で、閾値は3.0であり、これは平面内でのエネルギーの不一致が3未満であることを確保する。また、閾値3.0によって、最大×3のレベルまでという、異常なパワースペクトルに備えていくらかの許容性が提供されている。
【0051】
さらに、有効であるには、推定済みのパワースペクトルは対称であるべきである。一つ以上の実施例で、対称性モジュール128は、そのブロックについての推定済みのノイズパワースペクトルにおける対称性を検出しうる。例えば、三次元高速フーリエ変換がエラーブロックe
c、e
P、およびe
N内の信号についてのパワースペクトルの推定を計算する実施例で、対称性モジュール128は、それぞれの時間フーリエ平面の水平軸および垂直軸に沿ったエネルギー間の比率を使用しうる。推定ノイズパワースペクトルが非対称である場合、対称性モジュール128は、ノイズパワースペクトルは無効であると判断する。無効なノイズパワースペクトルの代わりに、対称性モジュール128は、平坦なノイズパワースペクトルを供給する。すなわち、対称性モジュール128は、それぞれの高速フーリエ変換ビン内に同じエネルギーを持つノイズパワースペクトルを供給する。
【0052】
ノイズスペクトルバリデータ108はまた、推定ノイズパワースペクトルの使用についてノイズリダクションプロセスで目に見える効果がない可能性を考慮して、推定ノイズパワースペクトルを拡大しうる。ノイズスペクトルバリデータ108は、輝度チャンネルを3.5倍に、およびカラーチャンネルを7.0倍に拡大しうる。ただし、一つ以上の実施例で、ノイズスペクトルバリデータ108は、推定ノイズパワースペクトルを1よりも大きな倍数で拡大しうる。
【0053】
ノイズスペクトルバリデータ108はまた、画像シーケンス112のエッジを向上させうる。これは、画像シーケンス112内で高周波コンテンツを低周波コンテンツに比例してブーストすることで達成される。三次元高速フーリエ変換がエラーブロックe
c、e
P、およびe
N内の信号についてのパワースペクトルの推定を計算する一つ以上の実施例で、画像シーケンス112のエッジは、1から離れて増える関数により、高周波係数を乗算することにより向上される。
【0054】
ノイズスペクトルバリデータ108の出力152は、妥当性確認済みの推定ノイズパワースペクトルか、または推定ノイズパワースペクトルが無効であるとの表示のいずれかである。
【0055】
ノイズ抑制器110は、画像シーケンス112に対して、推定ノイズパワースペクトルを使用してノイズリダクションを実行しうる。一つ以上の実施例で、ノイズ抑制器110は、画像シーケンス112からのオリジナルの現フレーム、動き推定器104からの動き補償済みの前フレーム、および動き推定器104からの動き補償済みの次フレームを取得する。ノイズ抑制器110は、オリジナルの現フレームからのブロック、動き補償済み前フレームからのブロック、および動き補償済みの次フレームからのブロックを用いて、オリジナルの現フレームからのブロックに適合する線形平面を推定する。二次元平面が、オリジナルの現フレームのブロックから除去され、ウィナーフィルター130が、オリジナルの現フレームのブロックに対して周波数領域ウィナーフィルター動作を実行し、ノイズスペクトル推定器106により計算された推定ノイズパワースペクトルを使用して、ブロックのノイズを低減する。除去された二次元平面は次に、オリジナルの現フレームからのブロックに戻される。ノイズ抑制器110の出力162は、画像シーケンス112内にあるオリジナルの現フレームのノイズが低減されたバージョンである。
【0056】
ノイズリダクションの実行にあたり、処理された各ブロックについて、ノイズ抑制器110は以下の判断をする。オリジナルの現フレーム、動き補償済み前フレーム、および動き補償済みの次フレームの間の前方変位フレーム差(fDFD)および後方変位フレーム差(bDFD)が、閾値よりも高い場合には、ノイズ抑制器110は、動き補償が首尾よくなされていないと判断しうる。ノイズ抑制器110は、不一致のブロックの方向に、現在のブロックを反復しうる。一つ以上の実施例で、閾値は、輝度チャンネルについて10、およびクロミナンスチャンネルについて5としうる。
【0057】
オリジナルの現フレーム、動き補償済み前フレーム、および動き補償済みの次フレームの間のfDFDおよびbDFDが低すぎる場合には、ノイズ抑制器110は、オリジナルの現フレームに対してノイズリダクションを実施しない。一つ以上の実施例で、オリジナルの現フレーム、動き補償済み前フレーム、および動き補償済みの次フレームの間のfDFDおよびbDFDが0.1グレースケールレベルより小さい場合には、ノイズ抑制器110は、オリジナルの現フレームに対してノイズリダクションを実行しない。
【0058】
現在のブロックの信号の空間的分散が低すぎる場合には、ノイズ抑制器110は、オリジナルの現フレームに対してノイズリダクションを実行しない。一つ以上の実施例で、現在のブロックの信号の空間的分散がゼロである場合には、ノイズ抑制器110は、オリジナルの現フレームに対してノイズリダクションを実行しない。
【0059】
推定ノイズパワースペクトルのエネルギーが低すぎる場合には、ノイズ抑制器110は、オリジナルの現フレームにノイズがないと判断する。よって、ノイズ抑制器110は、オリジナルの現フレームに対してノイズリダクションを実行しない。一つ以上の実施例で、推定ノイズパワースペクトルのエネルギーが40dBより小さい場合、ノイズ抑制器110は、オリジナルの現フレームに対してノイズリダクションを実行しない。一つ以上のその他の実施例で、推定ノイズパワースペクトルのエネルギーが30dBより小さい場合、ノイズ抑制器110は、オリジナルの現フレームに対してノイズリダクションを実行しない。
【0060】
ノイズを低減する方法の例
図3は、本書に記載された技術による、
図1に図示されたノイズリダクションツール100などのノイズリダクションツールによって実施される方法300のフローチャートである。例えば、ノイズリダクションツールは、画像シーケンス112を取得する。ショット検出器102は、画像シーケンス112内のショットの変化を見つける。動き推定器104は、画像シーケンス112内のブロックの動きを推定する。ノイズスペクトル推定器106は、画像シーケンス112中のノイズを推定し、推定ノイズパワースペクトルを生成する。ノイズスペクトルバリデータ108は、推定ノイズパワースペクトルの妥当性を確認する。ノイズ抑制器は、妥当性確認済みの推定ノイズパワースペクトルを使用して、画像シーケンス112中のノイズを低減する。
【0061】
ブロック302で、ノイズリダクションツール100は、画像シーケンス112からオリジナルのフレームを取得する。一つ以上の実施例で、ショット検出器102、ノイズ推定器104、およびノイズスペクトル推定器106は、画像シーケンス112からオリジナルのフレームを取得する。オリジナルのフレームは、オリジナルの現フレーム、オリジナルの前フレーム、およびオリジナルの次フレームを含む。
【0062】
ノイズリダクションツール100は、適切な任意の機構を使用して、画像シーケンス112からオリジナルのフレームを取得する。例えば、一つ以上の実施例で、ノイズリダクションツール100は、カメラ、Motion Pictures Experts Group-2(MPEG-2)圧縮ビデオファイル、h264ビデオファイル、または同種のものから、画像シーケンス112を取得する。
【0063】
ブロック304で、ノイズリダクションツール100は、画像シーケンス112内のショットの変化を見つける。一つ以上の実施例で、ショット検出器102は、オリジナルの現フレームのグレースケールヒストグラムとオリジナルの前フレームのグレースケールヒストグラムとの差異を見つけることにより、画像シーケンス112内のショットの変化を検出する。2つのヒストグラム間の大きな差異は、ショットの変化を示す一方、2つのヒストグラム間の小さな差異は、ショットの変化がないことを示す。
【0064】
ブロック306で、ノイズリダクションツール100は、画像シーケンス112内の動きを推定する。一つ以上の実施例で、動き推定器104は、グローバルな動き推定技術および/またはブロックベースの動き推定技術を使用して、オリジナルの現フレームに対するオリジナルの前フレームおよびオリジナルの次フレームの動きを推定する。
【0065】
ブロック308で、ノイズリダクションツール100は、画像シーケンス112のノイズパワースペクトルを測定する。一つ以上の実施例で、ノイズスペクトル推定器106は、フラットな領域のみを含む画像シーケンス112内のブロックを見つけて、平坦なブロックについてのパワースペクトルの推定を計算することで、画像シーケンス内のノイズパワースペクトルを測定する。
【0066】
ブロック310で、ノイズリダクションツール100は、それぞれのブロックについて推定済みのノイズパワースペクトルの妥当性を確認する。一つ以上の実施形態で、ノイズスペクトルバリデータ108は、推定済みのノイズパワースペクトルの対称性についてチェックする。また、一つ以上の実施形態で、ノイズスペクトルバリデータ108は、推定ノイズパワースペクトルを1よりも大きな倍数で拡大する。
【0067】
ブロック312で、ノイズリダクションツール100は、画像シーケンス112中のノイズを低減する。一つ以上の実施例で、ノイズ抑制器110は、オリジナルの現フレームからのブロックに適合する線形平面を推定し、二次元平面をブロックから除去し、およびウィナーフィルター130をブロックに適用して、オリジナルの現フレーム内のノイズを低減する。次に、ノイズ抑制器110は、二次元平面をオリジナルの現フレームからのブロックに置き換える。
【0068】
ノイズを推定する方法の例
図4は、本書に記載された技術による、
図1に図示されたノイズスペクトル推定器106などの、ノイズスペクトル推定器によって実施される方法400のフローチャートである。一つ以上の実施例で、ノイズスペクトル推定器106は、画像シーケンス112からオリジナルのフレーム、動き推定器104から動き補償済みフレーム119、およびショット検出器102からトリガー122を取得する。画像シーケンス112内のオリジナルのフレームは、オリジナルの現フレーム、オリジナルの前フレーム、およびオリジナルの次フレームを含む。
【0069】
ブロック402で、ノイズスペクトル推定器106は、画像シーケンス112からブロックのグリッドを選択する。一つ以上の実施例で、画像シーケンス112の解像度が、480pよりも大きい場合には、ノイズ推定器106は、ブロックサイズを32×32画素に設定する。画像シーケンス112の解像度が480pよりも小さく360pよりも大きい場合には、ノイズ推定器106は、ブロックサイズを16×16画素に設定する。画像シーケンス112の解像度が360pよりも小さい場合には、ノイズ推定器106は、ブロックサイズを8×8画素に設定する。一つ以上の実施例で、ノイズスペクトル推定器106は、重ね合わせが水平および垂直の両方の方向に2倍となるように、ブロックのグリッドを選択する。
【0070】
ブロック404で、ノイズスペクトル推定器106は、その明るさが露光不足よりも大きく、かつ飽和状態よりも小さいブロックを選択し、それらのブロックをノイズ推定プロセスから除外できるようにする。例えば、画像シーケンス112が8ビット画像である場合、 ブロック内の明るさの平均値は0.05x255および0.95x255の範囲内である。一つ以上の実施例で、ブロック内の明るさの平均値は、0.7x255および0.81x255の範囲内としうる。さらに別の方法として、一つ以上の実施例で、ブロック内の明るさの平均値は0.13x255および0.76x255の範囲内である。
【0071】
ブロック406で、ノイズスペクトル推定器106は、そのfDFDおよびbDFDが最小閾値と最大閾値の間のブロックを選択する。一つ以上の実施例で、高閾値は10であり、低閾値は0.1である。
【0072】
ブロック408で、ノイズスペクトル推定器106は、選択されたブロックのテクスチャーコンテンツを評価する。一つ以上の実施例で、ガウスフィルター124は、テクスチャー評価用に選択されたブロックをフィルター処理する。ノイズスペクトル推定器106は、フィルター済みブロックの最小および最大のグラデーションと、選択されたブロックの最小および最大のグラデーションの方向を計算し、それらのテクスチャーコンテンツを評価する。
【0073】
ブロック410で、ノイズスペクトル推定器106は、対象のブロックを選択し、対象のブロックに強度面を適合させる。一つ以上の実施例で、強度面モジュール202は、対象のブロックに適合する線形平面を推定する。
【0074】
ブロック412で、ノイズスペクトル推定器106は、オリジナルの現在のブロック、オリジナルの前のブロック、およびオリジナルの次のブロックについてエラー値を見つける。一つ以上の実施例で、強度面モジュール202は、対象のブロックに適合する強度面とノイズの多いオリジナルの現フレーム内の画素の強度との間の差異を見つけて、エラーe
cを生成する。強度面モジュール202はまた、前のブロックおよび次のブロックの推定済みの平面間の差異を見つけ、前フレームおよび次フレームからのブロックに対応したさらに2つのエラーブロックe
Pおよびe
Nを生成しうる。
【0075】
ブロック414で、ノイズスペクトル推定器106は、現在のブロック、前のブロック、および次のブロックをウィンドウ表示する。一つ以上の実施例で、ウィンドウイングモジュール206は、エラーブロックe
c、e
P、およびe
Nを、二次元のハミング窓を使用してウィンドウ表示する。
【0076】
ブロック416で、ノイズスペクトル推定器106は、対象のブロック、前のブロック、および次のブロックの三次元高速フーリエ変換を計算する。一つ以上の実施例で、変換モジュール208は、エラーブロックe
c、e
P、およびe
N内の信号についてのパワースペクトルの推定を計算して、それぞれ現在のブロック、前のブロック、および次のブロックについて推定ノイズパワースペクトルを生成する。
【0077】
ブロック418で、ノイズスペクトル推定器106は、エラーブロックe
c、e
P、およびe
N内の信号について推定済みのノイズパワースペクトルを平均化する。一つ以上の実施例で、平均化モジュール210は、それぞれのエラーブロックe
c、e
P、およびe
Nのパワースペクトルを平均化して、最終的なノイズパワースペクトルの推定を生成する。
【0078】
方法300および400は、ロジカルフローグラフ内のブロックの集合として図示されているが、これは、機構のみに、またはハードウェア、ソフトウェア、および/またはファームウェアと組み合わせて実装可能な演算のシーケンスを表すものである。ソフトウェア/ファームウェアに関連しては、ブロックは、一つ以上のコンピュータ可読記憶媒体に格納され、一つ以上のプロセッサによって実行されたときに、記述されている演算を実行する命令を表す。プロセスが記載されている順序は、制限として解釈される意図はなく、また記載した任意の番号のプロセスブロックは、任意の順序で組合せて、ができ、プロセスまたは代替的なプロセスを実施できることが注記される。さらに、個別のブロックは、本書に記載した主題の精神および範囲を逸脱することなく、プロセスから削除しうる。
【0079】
コンピューティング環境の例
図5は、
図1のノイズリダクションツール100の実施に適したコンピュータシステム500の一例を図示したハイレベルブロック図である。ある一定の態様で、コンピュータシステム500は、ハードウェアまたはソフトウェアとハードウェアの組み合わせを使用して実施しうる。
【0080】
図示されたコンピュータシステム500は、バス508または情報通信のためのその他の通信機構に結合された、プロセッサ502、メモリ504、およびデータストレージ506を含む。入出力(I/O)モジュール510も、バス508に結合されている。通信モジュール512、デバイス514、およびデバイス516は、I/Oモジュール510に結合されている。
【0081】
プロセッサ502は、汎用マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックデバイス(PLD)、コントローラ、ステートマシン、ゲートロジック、ディスクリートハードウェアコンポーネント、または計算またはその他の情報操作を実行できるその他何らかの適切な実体としうる。プロセッサ502は、情報の処理に使用されうる。プロセッサ502は、特殊用途論理回路による補足、またはその内部への組み込みができる。
【0082】
メモリ504は、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み取り専用メモリ(ROM)、プログラマブル読取専用メモリ(PROM)、消去可能PROM(EPROM)、レジスター、ハードディスク、リムーバブルディスク、CD-ROM、DVD、または情報、コンピュータプログラム、および/またはプロセッサ502により実行される命令の格納に使用されるその他何らかの適切な記憶装置としうる。メモリ504は、本書に記載された技術を実施するために使用される一つ以上のコンピュータプログラムのための実行環境を創出するコードを格納しうる。
【0083】
本書で考察したとおり、コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。コンピュータプログラムは、その他のプログラムまたはデータ(たとえば、マークアップ言語文書内に格納された一つ以上のスクリプト)を保持するファイルの一部内に、問題のプログラム専用の単一のファイル内に、または連携された複数のファイル(たとえば、一つ以上のモジュール、サブプログラム、またはコードの一部を含むファイル)内に格納することができる。コンピュータプログラムは、1台のコンピュータで、あるいは単一のサイトに位置する、または複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータで実行されるよう展開することができる。
【0084】
文脈によって別途示されていない限り、モジュールは、ハードウェア、ファームウェア、および/またはソフトウェア(たとえば、コンピュータプログラム)とのその組合せであるコンポーネントを意味する。本書で考察したとおり、コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。コンピュータプログラムは、その他のプログラムまたはデータ(たとえば、マークアップ言語文書内に格納された一つ以上のスクリプト)を保持するファイルの一部内に、問題のプログラム専用の単一のファイル内に、または連携された複数のファイル(たとえば、一つ以上のモジュール、サブプログラム、またはコードの一部を含むファイル)内に格納することができる。コンピュータプログラムは、1台のコンピュータで、あるいは単一のサイトに位置する、または複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータで実行されるよう展開することができる。
【0085】
命令は、一つ以上のコンピュータプログラム製品、すなわち、コンピュータシステム500による実行のために、またはその動作を管理するために、一つ以上のコンピュータ可読媒体上で符号化されたコンピュータプログラム命令の一つ以上のモジュール内に、また当業者に周知の何らかの方法に従って実装しうる。「コンピュータ可読媒体」という用語は、コンピュータ記憶媒体を含む。例えば、コンピュータ記憶媒体は、磁気記憶装置(たとえば、ハードディスク、フロッピー(登録商標)ディスク、および磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)およびデジタル多目的ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、サムドライブ、スティック、キードライブ、およびSDカード)、ならびに揮発性および不揮発性メモリ(たとえば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM))を含みうるが、これらに限定されない。
【0086】
データストレージ506は、例えば、磁気ディスクまたは光ディスクとしうる。データストレージ506は、プロセッサ502およびコンピュータシステム500内のその他のコンポーネントによって使用される情報および命令を格納するよう機能しうる。
【0087】
バス508は、バス508に結合されたコンポーネント間での情報交換が許容される適切な任意の機構としうる。例えば、バス508は、同軸ケーブル、銅線、および光ファイバー、光信号、およびこれに類似したものなどの伝送メディアとしうる。
【0088】
I/Oモジュール510は、任意の入出力モジュールとすることができる。入出力モジュール510の例は、ユニバーサルシリアルバス(USB)ポートなどのデータポートを含む。
【0089】
通信モジュール512は、イーサネット(登録商標)カードおよびモデムなどのネットワークインターフェースカードを含みうる。
【0090】
デバイス514は、入力装置としうる。デバイス514の例は、それによってユーザーがコンピュータシステム500への入力を提供できる、キーボード、ポインティングデバイス、マウス、またはトラックボールを含む。
【0091】
デバイス516は、出力装置としうる。デバイス516の例は、例えば、ウェブページなどの情報をユーザーに表示する、陰極線管(CRT)または液晶ディスプレイ(LCD)モニターなどのディスプレイを含む。
【0092】
一つ以上の実施例が、特定用途のための図を参照にして本書に記載されている。当然のことながら、実施例は制限することを意図するものではない。本書で提供した教示が入手可能な当業者であれば、その範囲内での追加的な改造、用途および実施ならびに重要な有用性のある技術の追加的な分野が認識できる。上述の実施例では、請求の範囲として実施例をより適切に説明するために、説明の目的で、特定の数、材料、構成、およびその他の詳細が記載されている。ただし、当業者にとって、請求の範囲が、本書に記載した例とは異なる詳細を使用して実施されうることは明らかである。他の例では、実施例の記載を明確にするために、周知の特徴が省略または簡略化されている。
【0093】
本明細書で使用されるとき、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味することが意図される。すなわち、別途指定のない限り、または文脈から明らかでない限り、「Xは、AまたはBを採用する」は、自然で包括的な組み合わせのどれかを意味することが意図される。すなわち、XはAを採用する、XはBを採用する、またはXはAとBの両方を採用する場合には、「XはAまたはBを採用する」が上述のどれをも満足する。さらに、冠詞「a」および「an」は本明細書および添付した請求の範囲で使用するとき、別途指定のない限り、または単数形を示していることが文脈から明らかでない限り、一般に「一つ以上」を意味するものと解釈されるべきである。
【0094】
本書に添付した請求の範囲で、「means for」(〜のための手段)または「steps for」(〜のための手順)という語が請求の範囲で使用されている時のみに米国特許法第112条第6段落(35 U.S.C. § 112、paragraph 6)を適用する。ある請求項でこうした語が使用されていない場合には、発明者は、その請求項は、米国特許法第112条第6段落(35 U.S.C. § 112, paragraph 6)に従い、本書に記載した該当する構造、材料、または行為(およびその同等物)は対象とするものと解釈されるとは意図しない。