説明

画像のノイズを除去するための変換

【課題】画像のノイズを除去するシステム及び方法を提供する。
【解決手段】一態様では、入力画像(62)の空間シフトされたフォワード変換が計算される。各フォワード変換は、関連した転置行列Z'を有するディノイザ変換Zに基づいて計算され、ZとZ'との間の行列乗算は、対角行列Λを生成し、Z=F(D)であり、Fは、Dの係数からZの係数へのマッピングを特定し、Dは、実質的に周波数領域の変換に対応する。フォワード変換は、入力画像(62)にリンクされた量子化値から導出される非線形マッピングに基づいてノイズを除去される。ノイズを除去されたフォワード変換の空間シフトされた逆変換が計算される。各逆変換は、Z及びZ'に基づいて計算される。出力画像(40)が、空間シフトされた逆変換の組み合わせに基づいて計算される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像のノイズを除去するための変換に関する。
【背景技術】
【0002】
[背景]
デジタル画像及びビデオフレームは、データストレージ及び伝送に必要なものを低減するために圧縮される。ほとんどの画像圧縮方法では、画像を表すのに必要なデータ量を低減すると同時に画像の外観の大幅な劣化を回避するように、一定の画像データが選択的に廃棄される。
【0003】
変換符号化は、一組の変換係数によって画像を表すことを含む一般的な画像圧縮方法である。変換係数は、個別に量子化されて、画像を表すのに必要なデータ量が低減される。原画像の表現は、変換係数に逆変換を適用することによって生成される。ブロック変換符号化は、一般的なタイプの変換符号化方法である。一般的なブロック変換符号化プロセスでは、画像は、小さな長方形領域(すなわち「ブロック」)に分割される。これらの長方形領域は、フォワード変換オペレーション、量子化オペレーション、及び符号化オペレーションを受ける。ブロックを符号化するのに、多くの異なる種類のブロック変換を使用することができる。一般的なタイプのブロック変換の中には、コサイン変換(最も一般的である)、フーリエ変換、アダマール変換、及びハールウェーブレット変換がある。これらの変換は、M×N画像データブロックからM×N変換係数配列を生成する。ここで、M及びNは、少なくとも1の整数値を有する。
【0004】
画質は、ブロック変換符号化プロセスによって劣化されることが多い。たとえば、不連続点が、復元された画像のブロック境界に取り込まれることが多く、リンギングアーティファクト(ringing artifact)が、画像境界の近くに取り込まれることが多い。
【0005】
ブロック変換符号化プロセスによって取り込まれたアーティファクトの出現を低減することにより圧縮画像を強調するための種々の手法が提案されてきた。最も一般的な画像強調手法の中には、ブロック境界に沿ってフィルタリングする手法、凸集合に投影することによって最適化する手法、及び、ウェーブレット変換しきい値処理を実行する手法がある。圧縮画像を強調するための別の手法は、シフトJEPG(shifted JEPG)変換をJPEG画像に適用しなおすことを含む。詳細には、この手法は、すでに圧縮された画像のシフトされたバージョンにJPEG圧縮演算子を適用しなおし、その結果生成された画像のすべてを平均して、強調された出力画像を生成する。
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、画像のノイズを除去するための方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明は、画像のノイズを除去するシステム及び方法を特徴とする。
【0008】
この発明は、入力画像の空間シフトされたフォワード変換が計算されるシステム及び方法を特徴とする。各フォワード変換は、関連した転置行列Z'を有するディノイザ変換Zに基づいて計算され、ZとZ'との間の行列乗算は、対角行列Λを生成し、Z=F(D)であり、Fは、Dの係数からZの係数へのマッピングを特定し、Dは、実質的に周波数領域の変換に対応する。フォワード変換は、入力画像にリンクされた量子化値から導出される非線形マッピングに基づいてノイズを除去される。ノイズを除去されたフォワード変換の空間シフトされた逆変換が計算される。各逆変換は、Z及びZ'に基づいて計算される。出力画像が、空間シフトされた逆変換の組み合わせに基づいて計算される。
【0009】
この発明の他の特徴及び利点は、図面及び特許請求の範囲を含む以下の説明から明らかになる。
【発明を実施するための最良の形態】
【0010】
以下の説明では、同じ参照番号は、同じ要素を識別するのに使用される。さらに、図面は、例示の実施の形態の主な特徴を図的な方法で示すことを目的としている。図面は、実際の実施の形態のあらゆる特徴を示すことを目的とするものでもなければ、図示された要素の相対的な寸法を示すことを目的とするものでもなく、一律の縮尺で描かれていない。
【0011】
I.原画像の圧縮
図1は、原画像10を処理して圧縮画像12を生成する従来技術の方法を示している。図示した方法によれば、フォワード変換14が原画像10に適用されて、一組のフォワード変換係数16が生成される。フォワード変換14は、原画像10を、選択された領域の一組の係数に変換するように動作可能な変換であれば、どのタイプの変換でもよい。量子化器18が、フォワード変換係数16に個別に適用されて、一組の量子化されたフォワード係数20が生成される。量子化器18は、フォワード変換係数情報の一部を廃棄して、原画像10の圧縮を可能にする。符号化器22は、任意のタイプの可逆符号化技法を使用して、量子化されたフォワード変換係数を符号化し、圧縮画像12を生成する。
【0012】
原画像10は、2値画像(たとえば、黒及び白のドットパターン)であってもよいし、多値単色画像(たとえば、グレーレベル画像)であってもよいし、多値多色画像であってもよい。一般に、図1の画像圧縮プロセスは、原画像10の各色平面に個別に適用される。
【0013】
図2は、原画像10を圧縮する、従来技術のブロック変換ベースの画像方法を示している。この方法によれば、原画像10が、事前に選択された色空間でまだ指定されていない場合、原画像10は、最初に、事前に選択されたルミナンスに基づく色空間(たとえば、YCrCb色空間)に変換される(ブロック24)。事前に選択された色空間における画像の各色平面は、次のように個別に処理される各画像(すなわち、ピクセル値の配列)に対応する。色成分(たとえば、Cr色成分及びCb色成分)は、ダウンサンプリングされる(ブロック26)。各色平面は、ピクセルブロック(たとえば、8×8ピクセルブロック)に分割される(ブロック28)。各ピクセルブロックには、ブロック変換が個別に適用される(ブロック30)。これらのブロックには、任意の種類のブロック変換を適用することができる。例示のタイプのブロック変換には、コサイン変換、フーリエ変換、アダマール変換、及びハールウェーブレット変換が含まれる。その結果生成された変換係数は量子化される(ブロック32)。量子化された変換係数は、可逆符号化技法を使用して符号化され、圧縮画像12が生成される(ブロック34)。
【0014】
II.圧縮画像のアーティファクトの低減
以下に説明する実施の形態は、圧縮画像を作成するのに使用されるプロセスによって本来的に取り込まれるアーティファクトを低減するように構成される。多くの場合、これらの実施の形態は、画像の特徴をぼかすこと等により画質を劣化させることなく、画像圧縮アーティファクトを低減する。以下で詳細に説明するように、これらの実施の形態のいくつかの実施態様は、ブロック離散コサイン変換(DCT)画像圧縮技法等のブロック変換ベースの画像圧縮技法によって取り込まれるリンギング圧縮アーティファクト及びブロッキング(blocking)圧縮アーティファクトを大幅に低減するのに特によく適している。
【0015】
図3は、図2のブロック変換ベースの画像圧縮方法によって生成された圧縮画像12を処理して、圧縮アーティファクトが低減された出力画像40を生成する方法の一実施の形態を示している。この方法では、圧縮画像12の各平面が個別に処理される。最初に、圧縮画像データが伸張される(ブロック42)。空間シフトフォワード変換(spatially-shifted forward transform)が、伸張画像データ62から計算される(ブロック44)。このプロセスでは、フォワード変換オペレーションが、伸張画像データ62のシフトされた複数のバージョンのそれぞれに適用されて、複数の各組のフォワード変換係数46が生成される。たとえば、画像12がM×N個のピクセルのブロックに基づいて圧縮される一実施態様では、フォワード変換オペレーションは、M×N変換において可能なM×N個の独立したシフトからのK個のシフトを含むサブセットにおける伸張画像データ62に適用されて、K組のフォワード変換係数が生成される。ここで、K、M、及びNは、少なくとも1の整数値を有する。一例示の実施態様では、M及びNは、共に8の値を有する。
【0016】
各組のフォワード変換係数46は、非線形変換される(ブロック48)。逆変換オペレーション(ブロック50)が、非線形変換されたフォワード変換係数46の組に適用されて、各中間画像が生成される。以下で詳細に説明するように、これらの中間画像は結合されて、各色平面64の圧縮アーティファクトが低減される(ブロック52)。色成分画像平面(たとえば、Cr及びCb)は、元の解像度にアップサンプリングされて、その結果生成された画像平面は、原画像10の色空間(たとえば、赤・緑・青の色空間)に変換されて戻される(ブロック54)。画像平面は結合されて、出力画像40が生成される。
【0017】
図4は、図3の方法によって生成された伸張画像データ62を処理して、圧縮アーティファクトが低減された出力画像40を生成するためのシステム60の一実施の形態を示している。処理システム60は、フォワード変換モジュール66、非線形ディノイザ(denoiser)モジュール68、逆変換モジュール70、及び出力画像ジェネレータモジュール72を含む。一般に、システム60のモジュール66〜72は、どの特定のハードウェア構成にもどの特定のソフトウェア構成にも限定されず、デジタル電子回路機構又はコンピュータハードウェア、ファームウェア、デバイスドライバ、若しくはソフトウェアを含めて、任意の計算環境又は処理環境で実施することができる。たとえば、いくつかの実施態様では、これらのモジュール66〜72は、デジタルカメラ、プリンタ、及びポータブル電子デバイス(たとえば、移動電話及び携帯情報端末)を含めて、多種多様な電子デバイスのいずれか1つのハードウェアに組み込むことができる。これに加えて、図示した実施の形態では、全(又は完全な)入力画像が処理されるが、他の実施の形態は、入力画像の一連の部分画像部分(たとえば、スワス(swaths))を順次処理するように構成することができる。
【0018】
A.フォワード変換モジュール
フォワード変換モジュール66は、復号された画像データ62からK組のシフトされたフォワード変換(C1、C2、…、CK)を計算する。これらK組のシフトされた変換は、圧縮画像12を基準にしたブロッキンググリッドのK個の一意の位置に対応する。以下で詳細に説明するように、実質的に乗算器を含まないハードウェアの実施態様で伸張画像62のアーティファクトを大幅に低減することを可能にする部類のフォワード変換が使用される。
【0019】
一般に、フォワード変換の各ブロックは、関連した転置行列Z'を有するディノイザ変換Zに基づいて計算される。ここで、ZとZ'との間の行列乗算によって対角行列Λが生成され、Z=F(D)であり、Fは、Dの係数からZの係数へのマッピングを特定し、Dは、実質的に周波数領域の変換に対応する。空間シフトされたフォワード変換Cl(l=1,2,…,K)の各ブロックは、次のような2次元におけるディノイザ変換Zの可分適用(separable application)に基づいて計算することができる。
B=ZXZ' (1)
ここで、Xは、伸張画像データ62のブロックに対応し、Bは、画像ブロックXの変換係数に対応する。いくつかの実施態様では、マッピング関数Fは、Dの係数から、0及び±2Nから選択された値を有するZの係数へのマッピングを特定する。ここで、Nは整数値を有する。これによって、ソフトウェアの簡単なバイナリシフトにより自明に又は容易に、方程式(1)で特定された行列乗算を計算することが可能になり、或いは、乗算器を必要とすることなくハードウェアで実施することができる。
【0020】
マッピング関数Fは、Dの加重係数からZの対応する係数へのマッピングを特定することができる。これらの実施態様では、Dの係数は、各倍率によって重み付けされている。各倍率は、同じである場合もあるし、異なる場合もある。一例示の実施の形態では、マッピング関数Fは、Dの加重係数に適用される丸め演算子(rounding operator)に対応する。すなわち、
ij=round{αij・Dij} (2)
である。ここで、round{}は、丸め演算子であり、Zijは、行i及び列jにおけるZの係数であり、Dijは、行i及び列jにおけるDの係数であり、αijは、Dijの各倍率である。一実施態様では、Dの係数は、共通の(すなわち、同じ)倍率(すなわち、すべてのi、jについてαij=α)によって重み付けられる。この場合、
ij=round{α・Dij} (3)
である。
【0021】
他の例示のマッピング関数には、フロア演算子(floor operator)、シーリング演算子(ceiling operator)、トランケート演算子(truncate operator)等の算術演算子が含まれる。フロア演算子は、引数以下の最大の整数を返す。シーリング演算子は、引数以上の最小の整数を返す。トランケート演算子は、正の引数値についてはフロア演算子と同様に機能し、負の引数値についてはシーリング演算子と同様に機能する。Dの係数に対して整数の近似値を生成するさらに他のマッピング関数を使用して、ディノイザ変換Zの係数を生成することができる。
【0022】
いくつかの実施態様では、Dは、離散コサイン変換(DCT)等のブロックベースの線形変換である。1次元では、DCT変換は、以下の8×8行列による4桁の小数桁に与えられる。
【0023】
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)
【0024】
α=3.5を有する方程式(3)を方程式(4)の1次元DCT変換に適用することによって、以下のディノイザ変換が得られる。
【0025】
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
【0026】
この実施態様では、TT'=Λという条件を満たす対角行列Λは、方程式(5)によって与えられる。
【0027】
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
【0028】
方程式(3)の倍率αの他の例示の値には、3.0及び2.5が含まれる。
【0029】
いくつかの実施態様では、空間シフトされたフォワード変換(C1、C2、…、CK)のブロックは、ディノイザ変換Zの因数分解に基づいて計算される。たとえば、方程式(5)のディノイザ変換は、高速因数分解Z=PR21によって実施することができる。ここで、Pは順列行列であり、R1、R2、及びRは、以下によって与えられるスパース因数行列(sparse factor matrix)である。
【0030】
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
【0031】
方程式(5)のフォワードディノイザ変換用の方程式(7)〜(10)に示す高速因数分解、及び、対応する逆ディノイザ変換(Z-1)用の対応する因数分解の一実施態様のコンピュータコードは、添付の付録に含まれている。
【0032】
他のいくつかの実施態様では、Dは、ウェーブレットベースの分解変換である。これらの実施態様の1つにおいて、たとえば、Dは、1次元(1D)シーケンス(たとえば、画像のライン)を2つのシーケンス(サブバンドと呼ばれる)に分解するフォワード離散ウェーブレット変換(DWT)とすることができる。この2つのシーケンスのそれぞれは、半分の個数のサンプルを有する。この実施態様では、1Dシーケンスは、次の手順に従って分解することができる。すなわち、1Dシーケンスは、解析フィルタバンクによって別々にローパスフィルタリング及びハイパスフィルタリングされる;これらのフィルタリングされた信号は、2分の1にダウンサンプリングされて、ローパスサブバンド及びハイパスサブバンドが形成される。
【0033】
B.非線形ディノイザモジュール
非線形ディノイザモジュール68は、フォワード変換モジュール66によって計算された複数の組のシフトされたフォワード変換(C1、C2、…、CK)から計算される出力変換係数を非線形変換する。
【0034】
図5を参照して、いくつかの実施態様では、複数の組のフォワード変換係数は、各非線形しきい値変換(T1、T2、…、TK)に従って変換される。詳細には、各しきい値(tij、ここで、i、jは量子化要素のインデックスを指し、iは0からM−1の範囲の値を有し、jは0からN−1の範囲の値を有する)よりも小さな絶対値を有する各係数を0に設定することにより、且つ、各しきい値(tij)以上の絶対値を有する各係数を変更しないことにより、フォワード変換係数は非線形変換される。量子化行列76(すなわち、「Q行列」)は、非線形しきい値変換(T1、T2、…、TK)のパラメータtijを設定するのに使用される。いくつかの実施態様では、量子化行列は、画像12を圧縮するのに最初に使用されたのと同じ量子化パラメータqijを含む。これらの量子化パラメータは、標準的な画像圧縮方式(たとえば、JPEG)に従って圧縮画像12に記憶することができる。
【0035】
いくつかの実施態様では、しきい値パラメータtijは、ブロック77において、Q行列の量子化パラメータqijを対応するしきい値パラメータtijにマッピングする関数Mによって設定される。これらの実施態様のいくつかでは、関数Mは、方程式(11)に従って量子化パラメータqijをtijにマッピングするアフィン関数である。
ij=βij・qij+γij (11)
ここで、βij及びγijはそれぞれ定数である。βijは、同じである場合もあるし、異なる場合もある。同様に、γijも、同じである場合もあるし、異なる場合もある。方程式(3)で特定されたフォワードディノイザ変換の実施態様に従って実施されるいくつかの実施の形態では、すべてのi、jについて、γij=0であり、βij=αijである(すなわち、Dの係数からZの係数を計算するのに使用される倍率は、しきい値tijを計算するのに使用される倍率と同じである)。
【0036】
方程式(1)及び対角行列条件ZZ'=Λに基づいて、単位行列条件Z'Λ-1Z=Iを導出することができる。伸張画像データ62のブロックXは、次のように復元することができる。
X=Z'[Λ-1BΛ-1]Z (12)
ここで、方程式(12)の括弧内の量は、左側のZ'の乗算及び右側のZの乗算を行う前に適用する必要がある係数Bの変倍を求める。括弧内の量は、右側の対角行列及び左側の対角行列を乗算することを伴うので、Bのi、j要素の倍率は、sij=λi-1λj-1によって与えられる構成要素を有する行列Sを、構成要素に関して乗算することによって与えられる。ここで、λi-1は、行列Λのi番目の対角要素の逆数である。方程式(5)及び(6)の実施態様では、Sは、以下による4桁の小数桁に与えられる。
【0037】
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)
【0038】
いくつかの実施態様では、方程式(12)及び(13)で特定された非自明な乗算は、モジュール68によって実行される非線形ノイズ除去計算に吸収される。これらの実施態様のいくつかでは、非線形ディノイザモジュール68は、図5の非線形変換を組み込んだ方程式(14)に従ってフォワード変換係数Cijを変更する。すなわち、
Γij=sij・Cijij・Cij≧tijの場合 (14)
=0 それ以外の場合
ここで、Γijは、非線形ディノイザモジュール68から出力された、ノイズ除去された係数である。
【0039】
いくつかの実施の形態では、非線形ディノイザモジュール68は、非線形度(nonlinearity)Tiを変更することによってシャープネス強調も組み込む。詳細には、非線形ディノイザモジュール68は、非線形変換パラメータ値qijに利得係数gijを乗算する。利得係数を設定する方法には多くの方法がある。一実施態様では、利得係数は方程式(15)によって与えられる。
ij=1.0+φ*(i+j)/14 (15)
ここで、i及びjは、各量子化器係数を選択するインデックスである。8×8ブロッキンググリッド用に設計された実施態様では、i及びjの値は、範囲[0〜7]にあり、0は最も低い空間周波数を表し、7は最も高い空間周波数を表す。シャープネス係数sの値は、シャープ化の量を決定する。φ=0の場合、シャープ化は適用されない。0.5と1.5との間のφの値は、出力画像ジェネレータ方法によって引き起こされるおそれのあるわずかなぼかしを補償する十分なシャープネス範囲を提供する。φ=0.5の方程式(1)から計算された例示の利得係数を含む行列を以下の表1に提供する。
【0040】
【表1】

【0041】
C.逆変換モジュール
逆変換モジュール70は、複数の組の非線形変換されたフォワード変換係数から複数の組の逆変換(C-11、C-12、…、C-1K)を計算する。逆変換モジュール70は、フォワード変換モジュール66によって適用されるフォワード変換オペレーションの逆のものを適用する。逆変換モジュール70の出力は、空間領域の画像データを表す中間画像(I1、I2、…、IK)である。逆変換(C-11、C-12、…、C-1K)という用語と中間画像(I1、I2、…、IK)という用語は、本明細書では同意語として使用される。空間シフトされた逆変換(C-11、C-12、…、C-1K)のブロックは、方程式(12)のBをディノイザモジュール68の出力で置き換えることによって計算することができる。
【0042】
D.出力画像ジェネレータモジュール
出力画像ジェネレータモジュール72は、中間画像(I1、I2、…、IK)を結合して、最終出力画像40の画像平面64を形成する。一般に、出力画像ジェネレータモジュール72は、中間画像(I1、I2、…、IK)を結合したものに基づいて出力画像40を計算する。たとえば、いくつかの実施態様では、出力画像40は、中間画像(I1、I2、…、IK)の加重結合から計算される。これらの実施態様の1つでは、出力画像40は、中間画像(I1、I2、…、IK)の平均値に対応する。
【0043】
図6は、ベース画像ジェネレータ80及びリンギング補正画像ジェネレータ82を含む出力画像ジェネレータモジュール72の一実施の形態を示している。
【0044】
ベース画像ジェネレータ80は、中間画像(I1、I2、…、IK)を結合したものから、元の未圧縮画像の見積もりに対応するベース画像84を計算する。図示した実施の形態では、ベース画像ジェネレータ80は、中間画像(I1、I2、…、IK)の対応するピクセルの平均値に対応するピクセル値を有するベース画像(IAVE)を計算する。
【0045】
リンギング補正画像ジェネレータ82は、中間画像(I1、I2、…、IK)に基づいてリンギング補正画像(IRC)を計算する。いくつかの実施態様では、リンギング補正画像ジェネレータ82は、中間画像(I1、I2、…、IK)のピクセルについて計算されたローカルな空間強度可変性(spatial intensity variability)の度合いに少なくとも部分的に基づいて、リンギング補正画像86(IRC)を計算する。たとえば、最小分散デリンギング(minimum variance de-ringing)の実施態様では、リンギング補正画像86の所与のピクセルの値は、リンギング補正画像86のピクセルに対応するすべての中間画像ピクセルの空間強度可変性の計算された最小の度合いを有する、対応する中間画像ピクセルの値に設定される。加重分散デリンギング(weighted variance de-ringing)手法では、リンギング補正画像86の各ピクセル値には、リンギング補正画像86の所与のピクセルに対応するすべての中間画像ピクセルのローカルな空間可変性の度合いの最小の百分率(たとえば、30%の百分率)における複数の対応する中間画像ピクセルの平均値に対応する値が割り当てられる。加重分散デリンギング手法は、リンギング圧縮アーティファクトを低減すると同時に、最小分散デリンギング手法によって取り込まれることがあるノイズを回避することが確認されている。
【0046】
図7を参照して、いくつかの実施の形態では、空間強度可変性は、空間分散(σ12、σ22、…、σK2)によって測定される。この空間分散は、リンギング補正画像86の所与のピクセルIRC(x,y)に対応する中間画像(I1(x,y)、I2(x,y)、…、IK(x,y))のピクセルについて計算される。空間分散の度合いは、各ウィンドウ90、92、94、96によって画定された各中間画像領域に基づいて計算される。図示した実施の形態では、ウィンドウ90〜96は、幅が3ピクセルで高さが3ピクセルの寸法を有する。一例示の実施態様では、所与の中間画像ピクセルIj(x,y)の空間分散(σ0)は、方程式(17)によって与えられる。
【0047】
【数1】

【0048】
ここで、<V>は、所与のピクセルの近傍の平均ピクセル値(すなわち、
【0049】
【数2】

【0050】
)であり、Kは、リンギング補正画像86の所与のピクセルの近傍のピクセルの個数(たとえば、9個)である。図示した実施の形態では、計算された最小の分散(σMIN2)を有する中間画像ピクセル(たとえば、IMIN(x,y))の値は、リンギング補正画像86の対応するピクセル(IRC(x,y))に割り当てられる。
【0051】
別の例示の実施態様では、値V0を有する所与の中間画像ピクセルIj(x,y)の空間可変性(Δ0)が、方程式(18)によって与えられる。
【0052】
【数3】

【0053】
ベース画像84は、ブロッキングアーティファクト等の圧縮アーティファクトの出現を大幅に低減することを特徴とするが、場合によっては、ベース画像84は、依然として、未解決のリンギングアーティファクトを含むことが確認されている。また、リンギング補正画像86(IRC)は、ベース画像84に比べてリンギング圧縮アーティファクトを大幅に低減することを特徴とするが、通常なら、一般に、ベース画像84よりもぼやけることも確認されている。これらの確認事項に基づいて、出力画像ジェネレータモジュール72は、結果の出力画像40の圧縮アーティファクトの出現を大幅に低減する方法で、ベース画像84及びリンギング補正画像86を結合するように構成される。
【0054】
図6の実施の形態では、出力画像ジェネレータモジュール72は、加重和ジェネレータ98を含む。この加重和ジェネレータ98は、方程式(19)に従って、ベース画像84(IAVE(x,y))及びリンギング補正画像86(IRC(x,y))の対応するピクセルの加重和を計算し、出力画像40のピクセルの値を生成する。
OUT(x,y)=α(x,y)・IRC(x,y)+(1−α(x,y))・IAVE(x,y) (18)
ここで、αは、範囲[0,1]の値を有する。
【0055】
重みジェネレータモジュール100は、出力画像40の各ピクセルのα(x,y)の値を計算する。一般に、シャープな遷移から十分に離れたピクセルについては、予想されたリンギングが最小である場合に、重みジェネレータモジュール100はα(x,y)≒0を設定する。シャープな遷移上のピクセルについては、重みジェネレータモジュール100は、遷移をぼかさないために、この場合もα(x,y)≒0を設定する。シャープな遷移上ではないが、十分に近い(たとえば、隣接した)ピクセルについては、重みジェネレータモジュール100は、α(x,y)≒1を設定して、潜在的なリンギングを低減する。
【0056】
いくつかの実施の形態では、重みジェネレータモジュール100は、所与のピクセルを包含する空間ウィンドウのローカル領域と、そのローカル領域を取り囲む空間ウィンドウのより大きな領域との間の相対的なコントラストの度合いに基づいて、その所与のピクセルのα(x,y)を計算する。いくつかの実施態様では、画像のコントラストは、空間ウィンドウにおいて、最大のピクセル値と最小のピクセル値との差であるピクセルレンジから計算される。図8に示すように、これらの実施態様では、ピクセルレンジは、2つの異なるサイズのウィンドウ102、104について計算される。第1のウィンドウ102のサイズは、エッジの近くのローカルなコントラストを正確に見積もるために小さくなっている(たとえば、3ピクセル×3ピクセル)。いくつかの実施態様では、第2のウィンドウ104のサイズ(たとえば、15ピクセル×15ピクセル)は、所与のピクセルにおけるシフトブロック変換(shifted block transform)のすべてをカバーする。ピクセルレンジの計算の結果、ローカルなコントラストの度合いlc及びブロックのコントラストの度合いbcが得られる。
【0057】
重みジェネレータモジュール100は、ローカルなコントラストの度合いとブロックのコントラストの度合いとの差分(Δ)(すなわち、Δ(x,y)=bc(x,y)−lc(x,y))を関数α(Δ)に入力する。関数α(Δ)は、参照表として記憶することができ、範囲[0,1]におけるα(Δ)の値を生成する。3つの異なる重み関数106、108、110を図9に示す。これらの関数は、方程式(20)によって与えられる一般的な関数に対応する。
α(Δ)=1/{1+e-(Δ-T)/a} (19)
ここで、a及びTは、可変パラメータである。主観的評価及び客観的PSNR(ピーク信号対雑音比)値を使用してテスト画像でトレーニングされた、α(Δ)の最終参照表を以下の表2に提供する。この表は、「読み出し順序」(すなわち、左から右へ、上から下へ)で提示されている。
【0058】
【表2】

【0059】
他の実施の形態は、特許請求の範囲の範囲内にある。
【0060】
たとえば、上記圧縮アーティファクト低減の実施の形態は、ブロック変換ベースの画像圧縮方法によって圧縮された画像12に関して説明されているが、これらの実施の形態は、ブロック変換ベースでない他の画像圧縮技法によって圧縮された画像のアーティファクトを低減するのに容易に使用することができる。
【0061】
[付録]
以下のコンピュータコードは、方程式(4)のフォワードディノイザ変換用の方程式(6)〜(9)に示す高速因数分解、及び、対応する逆ディノイザ変換Z-1用の対応する因数分解の一実施態様に対応する。この実施態様の入力は、64個の要素の整数配列である。
【0062】
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;
}
}
【図面の簡単な説明】
【0063】
【図1】原画像を圧縮するためのシステムのブロック図である。
【図2】原画像を圧縮するブロック変換ベースの方法のフロー図である。
【図3】圧縮画像を処理して、低減された圧縮アーティファクトを特徴とする出力画像を生成する方法の一実施の形態のフロー図である。
【図4】図3の方法の出力画像ジェネレータステップを実施するための画像処理システムの一実施の形態のブロック図である。
【図5】入力された変換係数値の関数としてプロットされた図4の非線形ディノイザモジュールの一実施態様のしきい値出力のグラフである。
【図6】図4の出力画像ジェネレータモジュールの一実施態様のブロック図である。
【図7】一組の中間画像及びその一組の中間画像から生成されたリンギング補正画像の描画図である。
【図8】ブロックのコントラストの度合い及びローカルなコントラストの度合いをベース画像のピクセル値から計算するのに使用される一対の同心ウィンドウのブロック図である。
【図9】ベース画像のピクセルについて計算された、ブロックのコントラストの度合いとローカルなコントラストの度合いとのコントラストの差分の関数としてプロットされた重み値のグラフである。
【符号の説明】
【0064】
10・・・原画像
12・・・圧縮画像
14・・・フォワード変換
16・・・フォワード変換係数
18・・・量子化器
20・・・フォワード係数
22・・・可逆符号化器
40・・・出力画像
62・・・伸張画像データ
64・・・出力画像平面
66・・・フォワード変換モジュール
68・・・非線形ディノイザモジュール
70・・・逆変換モジュール
72・・・出力画像ジェネレータモジュール
80・・・ベース画像ジェネレータ
82・・・リンギング補正画像ジェネレータ
84・・・ベース画像
86・・・リンギング補正画像
98・・・加重和ジェネレータ
100・・・重みジェネレータ

【特許請求の範囲】
【請求項1】
入力画像(62)を処理する方法であって、
前記入力画像(62)の空間シフトされたフォワード変換(C1、C2、…、CK)を計算することであって、各フォワード変換(C1、C2、…、CK)は、関連した転置行列Z'を有するディノイザ変換Zに基づいて計算され、ZとZ'との間の行列乗算は、対角行列Λを生成し、Z=F(D)であり、Fは、Dの係数からZの係数へのマッピングを特定し、Dは、実質的に周波数領域の変換に対応する、フォワード変換(C1、C2、…、CK)を計算することと、
前記入力画像(62)にリンクされた量子化値から導出される非線形マッピングに基づいて、前記フォワード変換(C1、C2、…、CK)のノイズを除去することと、
前記ノイズを除去されたフォワード変換の空間シフトされた逆変換(C'1、C'2、…、C'K)を計算することであって、各逆変換(C'1、C'2、…、C'K)は、Z及びZ'に基づいて計算される、逆変換(C'1、C'2、…、C'K)を計算することと、
空間シフトされた逆変換(C'1、C'2、…、C'K)の組み合わせに基づいて、出力画像(40)を計算することと
を含む方法。
【請求項2】
Dは、ブロックベースの線形変換であり、
前記空間シフトされたフォワード変換(C1、C2、…、CK)は、異なる各ブロッキンググリッド(blocking grid)に基づいて計算され、前記空間シフトされた逆変換(C'1、C'2、…、C'K)は、対応する空間シフトされたフォワード変換(C1、C2、…、CK)を計算するのに使用されるブロッキンググリッドに基づいて計算される
請求項1に記載の方法。
【請求項3】
Dは、1次元離散コサイン変換であり、
Fは、算術演算子である
請求項1に記載の方法。
【請求項4】
Fは、丸め算術演算子である
請求項3に記載の方法。
【請求項5】
Fは、Dの係数から、0及び±2Nから選択された値を有するZの対応する係数へのマッピングであり、ここで、Nは整数値を有する
請求項1に記載の方法。
【請求項6】
Fは、Dの加重係数からZの対応する係数へのマッピングであり、Dの前記係数は、共通の倍率によって重み付けされる
請求項1に記載の方法。
【請求項7】
Fは、Dの加重係数からZの対応する係数へのマッピングであり、
前記フォワード変換(C1、C2、…、CK)は、前記入力画像(62)にリンクされた量子化値から導出される非線形マッピングに基づいてノイズを除去され、各倍率によって重み付けされる
請求項1に記載の入力画像を処理する方法。
【請求項8】
前記入力画像(62)は、所与の量子化プロセスに基づいて圧縮された入力画像(12)を伸張したものに対応し、
前記フォワード変換(C1、C2、…、CK)は、前記所与の量子化プロセスに基づいてノイズを除去される
請求項1に記載の方法。
【請求項9】
前記フォワード変換(C1、C2、…、CK)は、前記入力画像(62)にリンクされた各量子化値から導出される各しきい値よりも小さな絶対値を有する各フォワード変換係数を0に設定することにより、且つ、前記入力画像(62)にリンクされた各量子化値から導出される少なくとも各しきい値に等しい絶対値を有する各フォワード変換係数を変更しないことにより、ノイズを除去される
請求項1に記載の方法。
【請求項10】
入力画像(62)を処理するためのシステムであって、
前記入力画像(62)の空間シフトされたフォワード変換(C1、C2、…、CK)を計算するように構成されるフォワード変換モジュール(66)であって、各フォワード変換(C1、C2、…、CK)は、関連した転置行列Z'を有するディノイザ変換Zに基づいて計算され、ZとZ'との間の行列乗算は、対角行列Λを生成し、Z=F(D)であり、Fは、Dの係数からZの係数へのマッピングを特定し、Dは、実質的に周波数領域の変換に対応する、フォワード変換モジュール(66)と、
前記入力画像にリンクされた量子化値から導出される非線形マッピングに基づいて、前記フォワード変換(C1、C2、…、CK)のノイズを除去するように構成される非線形ディノイザモジュール(68)と、
Z及びZ'に基づいて、前記ノイズを除去されたフォワード変換の空間シフトされた逆変換(C'1、C'2、…、C'K)を計算するように構成される逆変換モジュール(70)と、
空間シフトされた逆変換(C'1、C'2、…、C'K)の組み合わせに基づいて、出力画像(40)を計算するように構成される出力画像ジェネレータモジュール(72)と
を備えるシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2007−511941(P2007−511941A)
【公表日】平成19年5月10日(2007.5.10)
【国際特許分類】
【出願番号】特願2006−538122(P2006−538122)
【出願日】平成16年10月21日(2004.10.21)
【国際出願番号】PCT/US2004/035031
【国際公開番号】WO2005/045760
【国際公開日】平成17年5月19日(2005.5.19)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】