(57)【要約】【課題】画像のノイズを除去するシステム及び方法を提供する。【解決手段】一態様では、入力画像（６２）の空間シフトされたフォワード変換が計算される。各フォワード変換は、関連した転置行列Ｚ'を有するディノイザ変換Ｚに基づいて計算され、ＺとＺ'との間の行列乗算は、対角行列Λを生成し、Ｚ＝Ｆ（Ｄ）であり、Ｆは、Ｄの係数からＺの係数へのマッピングを特定し、Ｄは、実質的に周波数領域の変換に対応する。フォワード変換は、入力画像（６２）にリンクされた量子化値から導出される非線形マッピングに基づいてノイズを除去される。ノイズを除去されたフォワード変換の空間シフトされた逆変換が計算される。各逆変換は、Ｚ及びＺ'に基づいて計算される。出力画像（４０）が、空間シフトされた逆変換の組み合わせに基づいて計算される。【選択図】図３
2007511941.tif 000002
【特許請求の範囲】
【請求項１】
入力画像（６２）を処理する方法であって、
前記入力画像（６２）の空間シフトされたフォワード変換（Ｃ1、Ｃ2、…、ＣK）を計算することであって、各フォワード変換（Ｃ1、Ｃ2、…、ＣK）は、関連した転置行列Ｚ'を有するディノイザ変換Ｚに基づいて計算され、ＺとＺ'との間の行列乗算は、対角行列Λを生成し、Ｚ＝Ｆ（Ｄ）であり、Ｆは、Ｄの係数からＺの係数へのマッピングを特定し、Ｄは、実質的に周波数領域の変換に対応する、フォワード変換（Ｃ1、Ｃ2、…、ＣK）を計算することと、
前記入力画像（６２）にリンクされた量子化値から導出される非線形マッピングに基づいて、前記フォワード変換（Ｃ1、Ｃ2、…、ＣK）のノイズを除去することと、
前記ノイズを除去されたフォワード変換の空間シフトされた逆変換（Ｃ'1、Ｃ'2、…、Ｃ'K）を計算することであって、各逆変換（Ｃ'1、Ｃ'2、…、Ｃ'K）は、Ｚ及びＺ'に基づいて計算される、逆変換（Ｃ'1、Ｃ'2、…、Ｃ'K）を計算することと、
空間シフトされた逆変換（Ｃ'1、Ｃ'2、…、Ｃ'K）の組み合わせに基づいて、出力画像（４０）を計算することと
を含む方法。
【請求項２】
Ｄは、ブロックベースの線形変換であり、
前記空間シフトされたフォワード変換（Ｃ1、Ｃ2、…、ＣK）は、異なる各ブロッキンググリッド（blocking grid）に基づいて計算され、前記空間シフトされた逆変換（Ｃ'1、Ｃ'2、…、Ｃ'K）は、対応する空間シフトされたフォワード変換（Ｃ1、Ｃ2、…、ＣK）を計算するのに使用されるブロッキンググリッドに基づいて計算される
請求項１に記載の方法。
【請求項３】
Ｄは、１次元離散コサイン変換であり、
Ｆは、算術演算子である
請求項１に記載の方法。
【請求項４】
Ｆは、丸め算術演算子である
請求項３に記載の方法。
【請求項５】
Ｆは、Ｄの係数から、０及び±２Nから選択された値を有するＺの対応する係数へのマッピングであり、ここで、Ｎは整数値を有する
請求項１に記載の方法。
【請求項６】
Ｆは、Ｄの加重係数からＺの対応する係数へのマッピングであり、Ｄの前記係数は、共通の倍率によって重み付けされる
請求項１に記載の方法。
【請求項７】
Ｆは、Ｄの加重係数からＺの対応する係数へのマッピングであり、
前記フォワード変換（Ｃ1、Ｃ2、…、ＣK）は、前記入力画像（６２）にリンクされた量子化値から導出される非線形マッピングに基づいてノイズを除去され、各倍率によって重み付けされる
請求項１に記載の入力画像を処理する方法。
【請求項８】
前記入力画像（６２）は、所与の量子化プロセスに基づいて圧縮された入力画像（１２）を伸張したものに対応し、
前記フォワード変換（Ｃ1、Ｃ2、…、ＣK）は、前記所与の量子化プロセスに基づいてノイズを除去される
請求項１に記載の方法。
【請求項９】
前記フォワード変換（Ｃ1、Ｃ2、…、ＣK）は、前記入力画像（６２）にリンクされた各量子化値から導出される各しきい値よりも小さな絶対値を有する各フォワード変換係数を０に設定することにより、且つ、前記入力画像（６２）にリンクされた各量子化値から導出される少なくとも各しきい値に等しい絶対値を有する各フォワード変換係数を変更しないことにより、ノイズを除去される
請求項１に記載の方法。
【請求項１０】
入力画像（６２）を処理するためのシステムであって、
前記入力画像（６２）の空間シフトされたフォワード変換（Ｃ1、Ｃ2、…、ＣK）を計算するように構成されるフォワード変換モジュール（６６）であって、各フォワード変換（Ｃ1、Ｃ2、…、ＣK）は、関連した転置行列Ｚ'を有するディノイザ変換Ｚに基づいて計算され、ＺとＺ'との間の行列乗算は、対角行列Λを生成し、Ｚ＝Ｆ（Ｄ）であり、Ｆは、Ｄの係数からＺの係数へのマッピングを特定し、Ｄは、実質的に周波数領域の変換に対応する、フォワード変換モジュール（６６）と、
前記入力画像にリンクされた量子化値から導出される非線形マッピングに基づいて、前記フォワード変換（Ｃ1、Ｃ2、…、ＣK）のノイズを除去するように構成される非線形ディノイザモジュール（６８）と、
Ｚ及びＺ'に基づいて、前記ノイズを除去されたフォワード変換の空間シフトされた逆変換（Ｃ'1、Ｃ'2、…、Ｃ'K）を計算するように構成される逆変換モジュール（７０）と、
空間シフトされた逆変換（Ｃ'1、Ｃ'2、…、Ｃ'K）の組み合わせに基づいて、出力画像（４０）を計算するように構成される出力画像ジェネレータモジュール（７２）と
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像のノイズを除去するための変換に関する。
【背景技術】
【０００２】
［背景］
デジタル画像及びビデオフレームは、データストレージ及び伝送に必要なものを低減するために圧縮される。ほとんどの画像圧縮方法では、画像を表すのに必要なデータ量を低減すると同時に画像の外観の大幅な劣化を回避するように、一定の画像データが選択的に廃棄される。
【０００３】
変換符号化は、一組の変換係数によって画像を表すことを含む一般的な画像圧縮方法である。変換係数は、個別に量子化されて、画像を表すのに必要なデータ量が低減される。原画像の表現は、変換係数に逆変換を適用することによって生成される。ブロック変換符号化は、一般的なタイプの変換符号化方法である。一般的なブロック変換符号化プロセスでは、画像は、小さな長方形領域（すなわち「ブロック」）に分割される。これらの長方形領域は、フォワード変換オペレーション、量子化オペレーション、及び符号化オペレーションを受ける。ブロックを符号化するのに、多くの異なる種類のブロック変換を使用することができる。一般的なタイプのブロック変換の中には、コサイン変換（最も一般的である）、フーリエ変換、アダマール変換、及びハールウェーブレット変換がある。これらの変換は、Ｍ×Ｎ画像データブロックからＭ×Ｎ変換係数配列を生成する。ここで、Ｍ及びＮは、少なくとも１の整数値を有する。
【０００４】
画質は、ブロック変換符号化プロセスによって劣化されることが多い。たとえば、不連続点が、復元された画像のブロック境界に取り込まれることが多く、リンギングアーティファクト（ringing artifact）が、画像境界の近くに取り込まれることが多い。
【０００５】
ブロック変換符号化プロセスによって取り込まれたアーティファクトの出現を低減することにより圧縮画像を強調するための種々の手法が提案されてきた。最も一般的な画像強調手法の中には、ブロック境界に沿ってフィルタリングする手法、凸集合に投影することによって最適化する手法、及び、ウェーブレット変換しきい値処理を実行する手法がある。圧縮画像を強調するための別の手法は、シフトＪＥＰＧ（shifted JEPG）変換をＪＰＥＧ画像に適用しなおすことを含む。詳細には、この手法は、すでに圧縮された画像のシフトされたバージョンにＪＰＥＧ圧縮演算子を適用しなおし、その結果生成された画像のすべてを平均して、強調された出力画像を生成する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、画像のノイズを除去するための方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明は、画像のノイズを除去するシステム及び方法を特徴とする。
【０００８】
この発明は、入力画像の空間シフトされたフォワード変換が計算されるシステム及び方法を特徴とする。各フォワード変換は、関連した転置行列Ｚ'を有するディノイザ変換Ｚに基づいて計算され、ＺとＺ'との間の行列乗算は、対角行列Λを生成し、Ｚ＝Ｆ（Ｄ）であり、Ｆは、Ｄの係数からＺの係数へのマッピングを特定し、Ｄは、実質的に周波数領域の変換に対応する。フォワード変換は、入力画像にリンクされた量子化値から導出される非線形マッピングに基づいてノイズを除去される。ノイズを除去されたフォワード変換の空間シフトされた逆変換が計算される。各逆変換は、Ｚ及びＺ'に基づいて計算される。出力画像が、空間シフトされた逆変換の組み合わせに基づいて計算される。
【０００９】
この発明の他の特徴及び利点は、図面及び特許請求の範囲を含む以下の説明から明らかになる。
【発明を実施するための最良の形態】
【００１０】
以下の説明では、同じ参照番号は、同じ要素を識別するのに使用される。さらに、図面は、例示の実施の形態の主な特徴を図的な方法で示すことを目的としている。図面は、実際の実施の形態のあらゆる特徴を示すことを目的とするものでもなければ、図示された要素の相対的な寸法を示すことを目的とするものでもなく、一律の縮尺で描かれていない。
【００１１】
Ｉ．原画像の圧縮
図１は、原画像１０を処理して圧縮画像１２を生成する従来技術の方法を示している。図示した方法によれば、フォワード変換１４が原画像１０に適用されて、一組のフォワード変換係数１６が生成される。フォワード変換１４は、原画像１０を、選択された領域の一組の係数に変換するように動作可能な変換であれば、どのタイプの変換でもよい。量子化器１８が、フォワード変換係数１６に個別に適用されて、一組の量子化されたフォワード係数２０が生成される。量子化器１８は、フォワード変換係数情報の一部を廃棄して、原画像１０の圧縮を可能にする。符号化器２２は、任意のタイプの可逆符号化技法を使用して、量子化されたフォワード変換係数を符号化し、圧縮画像１２を生成する。
【００１２】
原画像１０は、２値画像（たとえば、黒及び白のドットパターン）であってもよいし、多値単色画像（たとえば、グレーレベル画像）であってもよいし、多値多色画像であってもよい。一般に、図１の画像圧縮プロセスは、原画像１０の各色平面に個別に適用される。
【００１３】
図２は、原画像１０を圧縮する、従来技術のブロック変換ベースの画像方法を示している。この方法によれば、原画像１０が、事前に選択された色空間でまだ指定されていない場合、原画像１０は、最初に、事前に選択されたルミナンスに基づく色空間（たとえば、ＹＣｒＣｂ色空間）に変換される（ブロック２４）。事前に選択された色空間における画像の各色平面は、次のように個別に処理される各画像（すなわち、ピクセル値の配列）に対応する。色成分（たとえば、Ｃｒ色成分及びＣｂ色成分）は、ダウンサンプリングされる（ブロック２６）。各色平面は、ピクセルブロック（たとえば、８×８ピクセルブロック）に分割される（ブロック２８）。各ピクセルブロックには、ブロック変換が個別に適用される（ブロック３０）。これらのブロックには、任意の種類のブロック変換を適用することができる。例示のタイプのブロック変換には、コサイン変換、フーリエ変換、アダマール変換、及びハールウェーブレット変換が含まれる。その結果生成された変換係数は量子化される（ブロック３２）。量子化された変換係数は、可逆符号化技法を使用して符号化され、圧縮画像１２が生成される（ブロック３４）。
【００１４】
ＩＩ．圧縮画像のアーティファクトの低減
以下に説明する実施の形態は、圧縮画像を作成するのに使用されるプロセスによって本来的に取り込まれるアーティファクトを低減するように構成される。多くの場合、これらの実施の形態は、画像の特徴をぼかすこと等により画質を劣化させることなく、画像圧縮アーティファクトを低減する。以下で詳細に説明するように、これらの実施の形態のいくつかの実施態様は、ブロック離散コサイン変換（ＤＣＴ）画像圧縮技法等のブロック変換ベースの画像圧縮技法によって取り込まれるリンギング圧縮アーティファクト及びブロッキング（blocking）圧縮アーティファクトを大幅に低減するのに特によく適している。
【００１５】
図３は、図２のブロック変換ベースの画像圧縮方法によって生成された圧縮画像１２を処理して、圧縮アーティファクトが低減された出力画像４０を生成する方法の一実施の形態を示している。この方法では、圧縮画像１２の各平面が個別に処理される。最初に、圧縮画像データが伸張される（ブロック４２）。空間シフトフォワード変換（spatially-shifted forward transform）が、伸張画像データ６２から計算される（ブロック４４）。このプロセスでは、フォワード変換オペレーションが、伸張画像データ６２のシフトされた複数のバージョンのそれぞれに適用されて、複数の各組のフォワード変換係数４６が生成される。たとえば、画像１２がＭ×Ｎ個のピクセルのブロックに基づいて圧縮される一実施態様では、フォワード変換オペレーションは、Ｍ×Ｎ変換において可能なＭ×Ｎ個の独立したシフトからのＫ個のシフトを含むサブセットにおける伸張画像データ６２に適用されて、Ｋ組のフォワード変換係数が生成される。ここで、Ｋ、Ｍ、及びＮは、少なくとも１の整数値を有する。一例示の実施態様では、Ｍ及びＮは、共に８の値を有する。
【００１６】
各組のフォワード変換係数４６は、非線形変換される（ブロック４８）。逆変換オペレーション（ブロック５０）が、非線形変換されたフォワード変換係数４６の組に適用されて、各中間画像が生成される。以下で詳細に説明するように、これらの中間画像は結合されて、各色平面６４の圧縮アーティファクトが低減される（ブロック５２）。色成分画像平面（たとえば、Ｃｒ及びＣｂ）は、元の解像度にアップサンプリングされて、その結果生成された画像平面は、原画像１０の色空間（たとえば、赤・緑・青の色空間）に変換されて戻される（ブロック５４）。画像平面は結合されて、出力画像４０が生成される。
【００１７】
図４は、図３の方法によって生成された伸張画像データ６２を処理して、圧縮アーティファクトが低減された出力画像４０を生成するためのシステム６０の一実施の形態を示している。処理システム６０は、フォワード変換モジュール６６、非線形ディノイザ（denoiser）モジュール６８、逆変換モジュール７０、及び出力画像ジェネレータモジュール７２を含む。一般に、システム６０のモジュール６６〜７２は、どの特定のハードウェア構成にもどの特定のソフトウェア構成にも限定されず、デジタル電子回路機構又はコンピュータハードウェア、ファームウェア、デバイスドライバ、若しくはソフトウェアを含めて、任意の計算環境又は処理環境で実施することができる。たとえば、いくつかの実施態様では、これらのモジュール６６〜７２は、デジタルカメラ、プリンタ、及びポータブル電子デバイス（たとえば、移動電話及び携帯情報端末）を含めて、多種多様な電子デバイスのいずれか１つのハードウェアに組み込むことができる。これに加えて、図示した実施の形態では、全（又は完全な）入力画像が処理されるが、他の実施の形態は、入力画像の一連の部分画像部分（たとえば、スワス(swaths)）を順次処理するように構成することができる。
【００１８】
Ａ．フォワード変換モジュール
フォワード変換モジュール６６は、復号された画像データ６２からＫ組のシフトされたフォワード変換（Ｃ1、Ｃ2、…、ＣK）を計算する。これらＫ組のシフトされた変換は、圧縮画像１２を基準にしたブロッキンググリッドのＫ個の一意の位置に対応する。以下で詳細に説明するように、実質的に乗算器を含まないハードウェアの実施態様で伸張画像６２のアーティファクトを大幅に低減することを可能にする部類のフォワード変換が使用される。
【００１９】
一般に、フォワード変換の各ブロックは、関連した転置行列Ｚ'を有するディノイザ変換Ｚに基づいて計算される。ここで、ＺとＺ'との間の行列乗算によって対角行列Λが生成され、Ｚ＝Ｆ（Ｄ）であり、Ｆは、Ｄの係数からＺの係数へのマッピングを特定し、Ｄは、実質的に周波数領域の変換に対応する。空間シフトされたフォワード変換Ｃl（ｌ＝１，２，…，Ｋ）の各ブロックは、次のような２次元におけるディノイザ変換Ｚの可分適用（separable application）に基づいて計算することができる。
Ｂ＝ＺＸＺ'                                            （１）
ここで、Ｘは、伸張画像データ６２のブロックに対応し、Ｂは、画像ブロックＸの変換係数に対応する。いくつかの実施態様では、マッピング関数Ｆは、Ｄの係数から、０及び±２Nから選択された値を有するＺの係数へのマッピングを特定する。ここで、Ｎは整数値を有する。これによって、ソフトウェアの簡単なバイナリシフトにより自明に又は容易に、方程式（１）で特定された行列乗算を計算することが可能になり、或いは、乗算器を必要とすることなくハードウェアで実施することができる。
【００２０】
マッピング関数Ｆは、Ｄの加重係数からＺの対応する係数へのマッピングを特定することができる。これらの実施態様では、Ｄの係数は、各倍率によって重み付けされている。各倍率は、同じである場合もあるし、異なる場合もある。一例示の実施の形態では、マッピング関数Ｆは、Ｄの加重係数に適用される丸め演算子（rounding operator）に対応する。すなわち、
Ｚij＝ｒｏｕｎｄ｛αij・Ｄij｝                        （２）
である。ここで、ｒｏｕｎｄ｛｝は、丸め演算子であり、Ｚijは、行ｉ及び列ｊにおけるＺの係数であり、Ｄijは、行ｉ及び列ｊにおけるＤの係数であり、αijは、Ｄijの各倍率である。一実施態様では、Ｄの係数は、共通の（すなわち、同じ）倍率（すなわち、すべてのｉ、ｊについてαij＝α）によって重み付けられる。この場合、
Ｚij＝ｒｏｕｎｄ｛α・Ｄij｝                          （３）
である。
【００２１】
他の例示のマッピング関数には、フロア演算子（floor operator）、シーリング演算子（ceiling operator）、トランケート演算子(truncate operator)等の算術演算子が含まれる。フロア演算子は、引数以下の最大の整数を返す。シーリング演算子は、引数以上の最小の整数を返す。トランケート演算子は、正の引数値についてはフロア演算子と同様に機能し、負の引数値についてはシーリング演算子と同様に機能する。Ｄの係数に対して整数の近似値を生成するさらに他のマッピング関数を使用して、ディノイザ変換Ｚの係数を生成することができる。
【００２２】
いくつかの実施態様では、Ｄは、離散コサイン変換（ＤＣＴ）等のブロックベースの線形変換である。１次元では、ＤＣＴ変換は、以下の８×８行列による４桁の小数桁に与えられる。
【００２３】
0.3536   0.3536   0.3536   0.3536   0.3536   0.3536   0.3536   0.3536
0.4904   0.4157   0.2778   0.0975  -0.0975  -0.2778  -0.4157  -0.4904
0.4619   0.1913  -0.1913  -0.4619  -0.4619  -0.1913   0.1913   0.4619
D= 0.4157  -0.0975  -0.4904  -0.2778   0.2778   0.4904   0.0975  -0.4157
0.3536  -0.3536  -0.3536   0.3536   0.3536  -0.3536  -0.3536   0.3536 
0.2778  -0.4904   0.0975   0.4157  -0.4157  -0.0975   0.4904  -0.2778
0.1913  -0.4619   0.4619  -0.1913  -0.1913   0.4619  -0.4619   0.1913
0.0975  -0.2778   0.4157  -0.4904   0.4904  -0.4157   0.2778  -0.0975
(4)
【００２４】
α＝３．５を有する方程式（３）を方程式（４）の１次元ＤＣＴ変換に適用することによって、以下のディノイザ変換が得られる。
【００２５】
1     1     1     1     1     1     1     1
2     1     1     0     0    -1    -1    -2
2     1    -1    -2    -2    -1     1     2
Z=  1     0    -2    -1     1     2     0    -1    (5)
1    -1    -1     1     1    -1    -1     1
1    -2     0     1    -1     0     2    -1
1    -2     2    -1    -1     2    -2     1
0    -1     1    -2     2    -1     1     0
【００２６】
この実施態様では、ＴＴ'＝Λという条件を満たす対角行列Λは、方程式（５）によって与えられる。
【００２７】
8     0     0    0     0    0     0     0
0    12     0    0     0    0     0     0
0     0    20    0     0    0     0     0
Λ= 0     0     0   12     0    0     0     0    (6)
0     0     0    0     8    0     0     0
0     0     0    0     0   12     0     0
0     0     0    0     0    0    20     0
0     0     0    0     0    0     0     12
【００２８】
方程式（３）の倍率αの他の例示の値には、３．０及び２．５が含まれる。
【００２９】
いくつかの実施態様では、空間シフトされたフォワード変換（Ｃ1、Ｃ2、…、ＣK）のブロックは、ディノイザ変換Ｚの因数分解に基づいて計算される。たとえば、方程式（５）のディノイザ変換は、高速因数分解Ｚ＝ＰＲ３Ｒ2Ｒ1によって実施することができる。ここで、Ｐは順列行列であり、Ｒ1、Ｒ2、及びＲ３は、以下によって与えられるスパース因数行列（sparse factor matrix）である。
【００３０】
1     0     0     0     0     0     0     0
0     0     0     0     0     1     0     0
0     0     1     0     0     0     0     0
P=    0     0     0     0     0     0     0     1    (7)
0     1     0     0     0     0     0     0
0     0     0     0     1     0     0     0
0     0     0     1     0     0     0     0
0     0     0     0     0     0     1     0
1     1     0     0     0     0     0     0
1    -1     0     0     0     0     0     0
0     0     1     2     0     0     0     0
R3=    0     0    -2     1     0     0     0     0    (8)
0     0     0     0     1     0    -2     1
0     0     0     0     0     1     1     2
0     0     0     0    -2     1    -1     0
0     0     0     0    -1    -2     0     1
1     0     0     1     0     0     0     0
0     1     1     0     0     0     0     0
0     1    -1     0     0     0     0     0
R2=    1     0     0    -1     0     0     0     0    (9)
0     0     0     0     1     0     0     0
0     0     0     0     0     1     0     0
0     0     0     0     0     0     1     0
0     0     0     0     0     0     0     1
1     0     0     0     0     0     0     1
0     1     0     0     0     0     1     0
0     0     1     0     0     1     0     0
R1=    0     0     0     1     1     0     0     0    (10)
0     0     0     1    -1     0     0     0
0     0     1     0     0    -1     0     0
0     1     0     0     0     0    -1     0
1     0     0     0     0     0     0    -1
【００３１】
方程式（５）のフォワードディノイザ変換用の方程式（７）〜（１０）に示す高速因数分解、及び、対応する逆ディノイザ変換（Ｚ-1）用の対応する因数分解の一実施態様のコンピュータコードは、添付の付録に含まれている。
【００３２】
他のいくつかの実施態様では、Ｄは、ウェーブレットベースの分解変換である。これらの実施態様の１つにおいて、たとえば、Ｄは、１次元（１Ｄ）シーケンス（たとえば、画像のライン）を２つのシーケンス（サブバンドと呼ばれる）に分解するフォワード離散ウェーブレット変換（ＤＷＴ）とすることができる。この２つのシーケンスのそれぞれは、半分の個数のサンプルを有する。この実施態様では、１Ｄシーケンスは、次の手順に従って分解することができる。すなわち、１Ｄシーケンスは、解析フィルタバンクによって別々にローパスフィルタリング及びハイパスフィルタリングされる；これらのフィルタリングされた信号は、２分の１にダウンサンプリングされて、ローパスサブバンド及びハイパスサブバンドが形成される。
【００３３】
Ｂ．非線形ディノイザモジュール
非線形ディノイザモジュール６８は、フォワード変換モジュール６６によって計算された複数の組のシフトされたフォワード変換（Ｃ1、Ｃ2、…、ＣK）から計算される出力変換係数を非線形変換する。
【００３４】
図５を参照して、いくつかの実施態様では、複数の組のフォワード変換係数は、各非線形しきい値変換（Ｔ1、Ｔ2、…、ＴK）に従って変換される。詳細には、各しきい値（ｔij、ここで、ｉ、ｊは量子化要素のインデックスを指し、ｉは０からＭ−１の範囲の値を有し、ｊは０からＮ−１の範囲の値を有する）よりも小さな絶対値を有する各係数を０に設定することにより、且つ、各しきい値（ｔij）以上の絶対値を有する各係数を変更しないことにより、フォワード変換係数は非線形変換される。量子化行列７６（すなわち、「Ｑ行列」）は、非線形しきい値変換（Ｔ1、Ｔ2、…、ＴK）のパラメータｔijを設定するのに使用される。いくつかの実施態様では、量子化行列は、画像１２を圧縮するのに最初に使用されたのと同じ量子化パラメータｑijを含む。これらの量子化パラメータは、標準的な画像圧縮方式（たとえば、ＪＰＥＧ）に従って圧縮画像１２に記憶することができる。
【００３５】
いくつかの実施態様では、しきい値パラメータｔijは、ブロック７７において、Ｑ行列の量子化パラメータｑijを対応するしきい値パラメータｔijにマッピングする関数Ｍによって設定される。これらの実施態様のいくつかでは、関数Ｍは、方程式（１１）に従って量子化パラメータｑijをｔijにマッピングするアフィン関数である。
ｔij＝βij・ｑij＋γij                            （１１）
ここで、βij及びγijはそれぞれ定数である。βijは、同じである場合もあるし、異なる場合もある。同様に、γijも、同じである場合もあるし、異なる場合もある。方程式（３）で特定されたフォワードディノイザ変換の実施態様に従って実施されるいくつかの実施の形態では、すべてのｉ、ｊについて、γij＝０であり、βij＝αijである（すなわち、Ｄの係数からＺの係数を計算するのに使用される倍率は、しきい値ｔijを計算するのに使用される倍率と同じである）。
【００３６】
方程式（１）及び対角行列条件ＺＺ'＝Λに基づいて、単位行列条件Ｚ'Λ-1Ｚ＝Ｉを導出することができる。伸張画像データ６２のブロックＸは、次のように復元することができる。
Ｘ＝Ｚ'［Λ-1ＢΛ-1］Ｚ                            （１２）
ここで、方程式（１２）の括弧内の量は、左側のＺ'の乗算及び右側のＺの乗算を行う前に適用する必要がある係数Ｂの変倍を求める。括弧内の量は、右側の対角行列及び左側の対角行列を乗算することを伴うので、Ｂのｉ、ｊ要素の倍率は、ｓij＝λi-1λj-1によって与えられる構成要素を有する行列Ｓを、構成要素に関して乗算することによって与えられる。ここで、λi-1は、行列Λのｉ番目の対角要素の逆数である。方程式（５）及び（６）の実施態様では、Ｓは、以下による４桁の小数桁に与えられる。
【００３７】
0.0156   0.0104   0.0063   0.0104   0.0156   0.0104   0.0063   0.0104
0.0104   0.0069   0.0042   0.0069   0.0104   0.0069   0.0042   0.0069
0.0063   0.0042   0.0025   0.0042   0.0063   0.0042   0.0025   0.0042
S= 0.01047  0.0069   0.0042   0.0069   0.0104   0.0069   0.0042   0.0069
0.0156   0.0104   0.0063   0.0104   0.0156   0.0104   0.0063   0.0104
0.0104   0.0069   0.0042   0.0069   0.0104   0.0069   0.0042   0.0069
0.0063   0.0042   0.0025   0.0042   0.0063   0.0042   0.0025   0.0042
0.0104   0.0069   0.0042   0.0069   0.0104   0.0069   0.0042   0.0069
(13)
【００３８】
いくつかの実施態様では、方程式（１２）及び（１３）で特定された非自明な乗算は、モジュール６８によって実行される非線形ノイズ除去計算に吸収される。これらの実施態様のいくつかでは、非線形ディノイザモジュール６８は、図５の非線形変換を組み込んだ方程式（１４）に従ってフォワード変換係数Ｃijを変更する。すなわち、
Γij＝ｓij・Ｃij    ｓij・Ｃij≧ｔijの場合              （１４）
＝０    それ以外の場合
ここで、Γijは、非線形ディノイザモジュール６８から出力された、ノイズ除去された係数である。
【００３９】
いくつかの実施の形態では、非線形ディノイザモジュール６８は、非線形度（nonlinearity）Ｔiを変更することによってシャープネス強調も組み込む。詳細には、非線形ディノイザモジュール６８は、非線形変換パラメータ値ｑijに利得係数ｇijを乗算する。利得係数を設定する方法には多くの方法がある。一実施態様では、利得係数は方程式（１５）によって与えられる。
ｇij＝１．０＋φ＊（ｉ＋ｊ）／１４                  （１５）
ここで、ｉ及びｊは、各量子化器係数を選択するインデックスである。８×８ブロッキンググリッド用に設計された実施態様では、ｉ及びｊの値は、範囲［０〜７］にあり、０は最も低い空間周波数を表し、７は最も高い空間周波数を表す。シャープネス係数ｓの値は、シャープ化の量を決定する。φ＝０の場合、シャープ化は適用されない。０．５と１．５との間のφの値は、出力画像ジェネレータ方法によって引き起こされるおそれのあるわずかなぼかしを補償する十分なシャープネス範囲を提供する。φ＝０．５の方程式（１）から計算された例示の利得係数を含む行列を以下の表１に提供する。
【００４０】
【表１】
2007511941.tif 000003
【００４１】
Ｃ．逆変換モジュール
逆変換モジュール７０は、複数の組の非線形変換されたフォワード変換係数から複数の組の逆変換（Ｃ-11、Ｃ-12、…、Ｃ-1K）を計算する。逆変換モジュール７０は、フォワード変換モジュール６６によって適用されるフォワード変換オペレーションの逆のものを適用する。逆変換モジュール７０の出力は、空間領域の画像データを表す中間画像（Ｉ1、Ｉ2、…、ＩK）である。逆変換（Ｃ-11、Ｃ-12、…、Ｃ-1K）という用語と中間画像（Ｉ1、Ｉ2、…、ＩK）という用語は、本明細書では同意語として使用される。空間シフトされた逆変換（Ｃ-11、Ｃ-12、…、Ｃ-1K）のブロックは、方程式（１２）のＢをディノイザモジュール６８の出力で置き換えることによって計算することができる。
【００４２】
Ｄ．出力画像ジェネレータモジュール
出力画像ジェネレータモジュール７２は、中間画像（Ｉ1、Ｉ2、…、ＩK）を結合して、最終出力画像４０の画像平面６４を形成する。一般に、出力画像ジェネレータモジュール７２は、中間画像（Ｉ1、Ｉ2、…、ＩK）を結合したものに基づいて出力画像４０を計算する。たとえば、いくつかの実施態様では、出力画像４０は、中間画像（Ｉ1、Ｉ2、…、ＩK）の加重結合から計算される。これらの実施態様の１つでは、出力画像４０は、中間画像（Ｉ1、Ｉ2、…、ＩK）の平均値に対応する。
【００４３】
図６は、ベース画像ジェネレータ８０及びリンギング補正画像ジェネレータ８２を含む出力画像ジェネレータモジュール７２の一実施の形態を示している。
【００４４】
ベース画像ジェネレータ８０は、中間画像（Ｉ1、Ｉ2、…、ＩK）を結合したものから、元の未圧縮画像の見積もりに対応するベース画像８４を計算する。図示した実施の形態では、ベース画像ジェネレータ８０は、中間画像（Ｉ1、Ｉ2、…、ＩK）の対応するピクセルの平均値に対応するピクセル値を有するベース画像（ＩAVE）を計算する。
【００４５】
リンギング補正画像ジェネレータ８２は、中間画像（Ｉ1、Ｉ2、…、ＩK）に基づいてリンギング補正画像（ＩRC）を計算する。いくつかの実施態様では、リンギング補正画像ジェネレータ８２は、中間画像（Ｉ1、Ｉ2、…、ＩK）のピクセルについて計算されたローカルな空間強度可変性（spatial intensity variability）の度合いに少なくとも部分的に基づいて、リンギング補正画像８６（ＩRC）を計算する。たとえば、最小分散デリンギング（minimum variance de-ringing）の実施態様では、リンギング補正画像８６の所与のピクセルの値は、リンギング補正画像８６のピクセルに対応するすべての中間画像ピクセルの空間強度可変性の計算された最小の度合いを有する、対応する中間画像ピクセルの値に設定される。加重分散デリンギング（weighted variance de-ringing）手法では、リンギング補正画像８６の各ピクセル値には、リンギング補正画像８６の所与のピクセルに対応するすべての中間画像ピクセルのローカルな空間可変性の度合いの最小の百分率（たとえば、３０％の百分率）における複数の対応する中間画像ピクセルの平均値に対応する値が割り当てられる。加重分散デリンギング手法は、リンギング圧縮アーティファクトを低減すると同時に、最小分散デリンギング手法によって取り込まれることがあるノイズを回避することが確認されている。
【００４６】
図７を参照して、いくつかの実施の形態では、空間強度可変性は、空間分散（σ12、σ22、…、σK2）によって測定される。この空間分散は、リンギング補正画像８６の所与のピクセルＩRC（ｘ，ｙ）に対応する中間画像（Ｉ1（ｘ，ｙ）、Ｉ2（ｘ，ｙ）、…、ＩK（ｘ，ｙ））のピクセルについて計算される。空間分散の度合いは、各ウィンドウ９０、９２、９４、９６によって画定された各中間画像領域に基づいて計算される。図示した実施の形態では、ウィンドウ９０〜９６は、幅が３ピクセルで高さが３ピクセルの寸法を有する。一例示の実施態様では、所与の中間画像ピクセルＩj（ｘ，ｙ）の空間分散（σ0）は、方程式（１７）によって与えられる。
【００４７】
【数１】
2007511941.tif 000004
【００４８】
ここで、＜Ｖ＞は、所与のピクセルの近傍の平均ピクセル値（すなわち、
【００４９】
【数２】
2007511941.tif 000005
【００５０】
）であり、Ｋは、リンギング補正画像８６の所与のピクセルの近傍のピクセルの個数（たとえば、９個）である。図示した実施の形態では、計算された最小の分散（σMIN2）を有する中間画像ピクセル（たとえば、ＩMIN（ｘ，ｙ））の値は、リンギング補正画像８６の対応するピクセル（ＩRC（ｘ，ｙ））に割り当てられる。
【００５１】
別の例示の実施態様では、値Ｖ0を有する所与の中間画像ピクセルＩj（ｘ，ｙ）の空間可変性（Δ0）が、方程式（１８）によって与えられる。
【００５２】
【数３】
2007511941.tif 000006
【００５３】
ベース画像８４は、ブロッキングアーティファクト等の圧縮アーティファクトの出現を大幅に低減することを特徴とするが、場合によっては、ベース画像８４は、依然として、未解決のリンギングアーティファクトを含むことが確認されている。また、リンギング補正画像８６（ＩRC）は、ベース画像８４に比べてリンギング圧縮アーティファクトを大幅に低減することを特徴とするが、通常なら、一般に、ベース画像８４よりもぼやけることも確認されている。これらの確認事項に基づいて、出力画像ジェネレータモジュール７２は、結果の出力画像４０の圧縮アーティファクトの出現を大幅に低減する方法で、ベース画像８４及びリンギング補正画像８６を結合するように構成される。
【００５４】
図６の実施の形態では、出力画像ジェネレータモジュール７２は、加重和ジェネレータ９８を含む。この加重和ジェネレータ９８は、方程式（１９）に従って、ベース画像８４（ＩAVE（ｘ，ｙ））及びリンギング補正画像８６（ＩRC（ｘ，ｙ））の対応するピクセルの加重和を計算し、出力画像４０のピクセルの値を生成する。
ＩOUT（ｘ，ｙ）＝α（ｘ，ｙ）・ＩRC（ｘ，ｙ）＋（１−α（ｘ，ｙ））・ＩAVE（ｘ，ｙ）                                    （１８）
ここで、αは、範囲［０，１］の値を有する。
【００５５】
重みジェネレータモジュール１００は、出力画像４０の各ピクセルのα（ｘ，ｙ）の値を計算する。一般に、シャープな遷移から十分に離れたピクセルについては、予想されたリンギングが最小である場合に、重みジェネレータモジュール１００はα（ｘ，ｙ）≒０を設定する。シャープな遷移上のピクセルについては、重みジェネレータモジュール１００は、遷移をぼかさないために、この場合もα（ｘ，ｙ）≒０を設定する。シャープな遷移上ではないが、十分に近い（たとえば、隣接した）ピクセルについては、重みジェネレータモジュール１００は、α（ｘ，ｙ）≒１を設定して、潜在的なリンギングを低減する。
【００５６】
いくつかの実施の形態では、重みジェネレータモジュール１００は、所与のピクセルを包含する空間ウィンドウのローカル領域と、そのローカル領域を取り囲む空間ウィンドウのより大きな領域との間の相対的なコントラストの度合いに基づいて、その所与のピクセルのα（ｘ，ｙ）を計算する。いくつかの実施態様では、画像のコントラストは、空間ウィンドウにおいて、最大のピクセル値と最小のピクセル値との差であるピクセルレンジから計算される。図８に示すように、これらの実施態様では、ピクセルレンジは、２つの異なるサイズのウィンドウ１０２、１０４について計算される。第１のウィンドウ１０２のサイズは、エッジの近くのローカルなコントラストを正確に見積もるために小さくなっている（たとえば、３ピクセル×３ピクセル）。いくつかの実施態様では、第２のウィンドウ１０４のサイズ（たとえば、１５ピクセル×１５ピクセル）は、所与のピクセルにおけるシフトブロック変換（shifted block transform）のすべてをカバーする。ピクセルレンジの計算の結果、ローカルなコントラストの度合いｌｃ及びブロックのコントラストの度合いｂｃが得られる。
【００５７】
重みジェネレータモジュール１００は、ローカルなコントラストの度合いとブロックのコントラストの度合いとの差分（Δ）（すなわち、Δ（ｘ，ｙ）＝ｂｃ（ｘ，ｙ）−ｌｃ（ｘ，ｙ））を関数α（Δ）に入力する。関数α（Δ）は、参照表として記憶することができ、範囲［０，１］におけるα（Δ）の値を生成する。３つの異なる重み関数１０６、１０８、１１０を図９に示す。これらの関数は、方程式（２０）によって与えられる一般的な関数に対応する。
α（Δ）＝１／｛１＋ｅ-(Δ-T)/a｝                  （１９）
ここで、ａ及びＴは、可変パラメータである。主観的評価及び客観的ＰＳＮＲ（ピーク信号対雑音比）値を使用してテスト画像でトレーニングされた、α（Δ）の最終参照表を以下の表２に提供する。この表は、「読み出し順序」（すなわち、左から右へ、上から下へ）で提示されている。
【００５８】
【表２】
2007511941.tif 000007
【００５９】
他の実施の形態は、特許請求の範囲の範囲内にある。
【００６０】
たとえば、上記圧縮アーティファクト低減の実施の形態は、ブロック変換ベースの画像圧縮方法によって圧縮された画像１２に関して説明されているが、これらの実施の形態は、ブロック変換ベースでない他の画像圧縮技法によって圧縮された画像のアーティファクトを低減するのに容易に使用することができる。
【００６１】
［付録］
以下のコンピュータコードは、方程式（４）のフォワードディノイザ変換用の方程式（６）〜（９）に示す高速因数分解、及び、対応する逆ディノイザ変換Ｚ-1用の対応する因数分解の一実施態様に対応する。この実施態様の入力は、６４個の要素の整数配列である。
【００６２】
void int_Forward_Denosier_Transform(int f[])
{
int c;
int * r, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
int tmp10, tmp11, tmp12, tmp13;
for (r = f, c = 0; c < 8; c++, r++) {               // 列を処理する
tmp0 = r[ 0] + r[56];  tmp7 = r[ 0] - r[56];
tmp1 = r[ 8] + r[48];  tmp6 = r[ 8] - r[48];
tmp2 = r[16] + r[40];  tmp5 = r[16] - r[40];
tmp3 = r[24] + r[32];  tmp4 = r[24] - r[32];
tmp10 = tmp0 + tmp3;   tmp13 = tmp0 - tmp3;
tmp11 = tmp1 + tmp2;   tmp12 = tmp1 - tmp2;
r[0] = tmp10 + tmp11;  r[32] = tmp10 - tmp11;
r[16] = tmp12 + (tmp13 << 1);  r[48] = tmp13 - (tmp12 << 1); 
/* 行列の下半分 */
tmp10 = tmp4 + tmp7;   tmp13 = tmp7 - tmp4;
tmp11 = tmp5 + tmp6;   tmp12 = tmp5 - tmp6;
r[40] = tmp10 - (tmp6 << 1); 
r[8]  = tmp11 + (tmp7 << 1); 
r[56] = tmp12 - (tmp4 << 1); 
r[24] = tmp13 - (tmp5 << 1); 
}
for (r = f, c = 0; c < 8; c++, r += 8) {        // 行を処理する
tmp0 = r[0] + r[7];    tmp7 = r[0] - r[7];
tmp1 = r[1] + r[6];    tmp6 = r[1] - r[6];
tmp2 = r[2] + r[5];    tmp5 = r[2] - r[5];
tmp3 = r[3] + r[4];    tmp4 = r[3] - r[4];
tmp10 = tmp0 + tmp3;   tmp13 = tmp0 - tmp3;
tmp11 = tmp1 + tmp2;   tmp12 = tmp1 - tmp2;
r[0] = tmp10 + tmp11;  r[4] = tmp10 - tmp11;
r[2] = tmp12 + (tmp13 << 1);  r[6] = tmp13 - (tmp12 << 1); 
/* 行列の下半分 */
tmp10 = tmp4 + tmp7;   tmp13 = tmp7 - tmp4;
tmp11 = tmp5 + tmp6;   tmp12 = tmp5 - tmp6;
r[5] = tmp10 - (tmp6 << 1); 
r[1] = tmp11 + (tmp7 << 1); 
r[7] = tmp12 - (tmp4 << 1); 
r[3] = tmp13 - (tmp5 << 1); 
}
}
void int_Inverse_Denosier_Transform(int f[])
{
int c;
int * r, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
int tmp10, tmp11, tmp12, tmp13, z10,z11,z12,z13;
for (r = f, c = 0; c < 8; c++, r += 8) {               // 行を処理する
tmp10 = r[0] + r[4];           tmp11 = r[0] - r[4];
tmp12 = r[2] - (r[6] << 1);    tmp13 = (r[2] << 1) + r[6];
tmp0 = tmp10 + tmp13;    tmp3 = tmp10 - tmp13;
tmp1 = tmp11 + tmp12;    tmp2 = tmp11 - tmp12;
z10  =  r[5] - r[3];   z13 = r[5] + r[3];
z11  =  r[1] + r[7];   z12 = r[1] - r[7];
tmp4 = z10 - (r[7] << 1); 
tmp5 = z11 - (r[3] << 1); 
tmp6 = z12 - (r[5] << 1); 
tmp7 = z13 + (r[1] << 1); 
r[0] = tmp0 + tmp7;    r[7] = tmp0 - tmp7;
r[1] = tmp1 + tmp6;    r[6] = tmp1 - tmp6;
r[2] = tmp2 + tmp5;    r[5] = tmp2 - tmp5;
r[3] = tmp3 + tmp4;    r[4] = tmp3 - tmp4; 
}
for (r = f, c = 0; c < 8; c++, r++) {               // 列を処理する
tmp10 = r[0] + r[32];           tmp11 = r[0] - r[32];
tmp12 = r[16] - (r[48] << 1) ;    tmp13 = (r[16] << 1) + r[48];
tmp0 = tmp10 + tmp13;    tmp3 = tmp10 - tmp13;
tmp1 = tmp11 + tmp12;    tmp2 = tmp11 - tmp12;
z10  =  r[40] - r[24];   z13 = r[40] + r[24];
z11  =  r[8] + r[56];   z12 = r[8] - r[56];
tmp4 = z10 - (r[56] << 1);
tmp5 = z11 - (r[24] << 1);
tmp6 = z12 - (r[40] << 1);
tmp7 = z13 + (r[8] << 1);
r[0] = tmp0 + tmp7;    r[56] = tmp0 - tmp7;
r[8] = tmp1 + tmp6;    r[48] = tmp1 - tmp6;
r[16] = tmp2 + tmp5;    r[40] = tmp2 - tmp5;
r[24] = tmp3 + tmp4;    r[32] = tmp3 - tmp4; 
}
}
【図面の簡単な説明】
【００６３】
【図１】原画像を圧縮するためのシステムのブロック図である。
【図２】原画像を圧縮するブロック変換ベースの方法のフロー図である。
【図３】圧縮画像を処理して、低減された圧縮アーティファクトを特徴とする出力画像を生成する方法の一実施の形態のフロー図である。
【図４】図３の方法の出力画像ジェネレータステップを実施するための画像処理システムの一実施の形態のブロック図である。
【図５】入力された変換係数値の関数としてプロットされた図４の非線形ディノイザモジュールの一実施態様のしきい値出力のグラフである。
【図６】図４の出力画像ジェネレータモジュールの一実施態様のブロック図である。
【図７】一組の中間画像及びその一組の中間画像から生成されたリンギング補正画像の描画図である。
【図８】ブロックのコントラストの度合い及びローカルなコントラストの度合いをベース画像のピクセル値から計算するのに使用される一対の同心ウィンドウのブロック図である。
【図９】ベース画像のピクセルについて計算された、ブロックのコントラストの度合いとローカルなコントラストの度合いとのコントラストの差分の関数としてプロットされた重み値のグラフである。
【符号の説明】
【００６４】
１０・・・原画像
１２・・・圧縮画像
１４・・・フォワード変換
１６・・・フォワード変換係数
１８・・・量子化器
２０・・・フォワード係数
２２・・・可逆符号化器
４０・・・出力画像
６２・・・伸張画像データ
６４・・・出力画像平面
６６・・・フォワード変換モジュール
６８・・・非線形ディノイザモジュール
７０・・・逆変換モジュール
７２・・・出力画像ジェネレータモジュール
８０・・・ベース画像ジェネレータ
８２・・・リンギング補正画像ジェネレータ
８４・・・ベース画像
８６・・・リンギング補正画像
９８・・・加重和ジェネレータ
１００・・・重みジェネレータ
【図１】
2007511941.tif 000008
【図２】
2007511941.tif 000009
【図３】
2007511941.tif 000010
【図４】
2007511941.tif 000011
【図５】
2007511941.tif 000012
【図６】
2007511941.tif 000013
【図７】
2007511941.tif 000014
【図８】
2007511941.tif 000015
【図９】
2007511941.tif 000016
【国際調査報告】
2007511941.tif 000017
2007511941.tif 000018
2007511941.tif 000019