(57)【特許請求の範囲】
【請求項１】
既定の画像領域単位で変換符号化された符号データを復号化する復号化装置であって、
処理対象の画像領域である注目領域から第１の量子化インデクス値を抽出し、この注目領域に対して既定の相対位置にある他の画像領域から、前記第１の量子化インデクスと同じ周波数成分の第２の量子化インデクス値を抽出する近傍抽出手段と、
前記近傍抽出手段により抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分布状態に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定する係数設定手段と、
前記係数設定手段により設定された補正係数を用いて、前記第１の量子化インデクス値及び前記第２の量子化インデクス値に対して畳込み演算を行うことにより、前記第１の量子化インデクス値を補正するインデクス補正手段と、
前記インデクス補正手段により補正された第１の量子化インデクス値と、量子化間隔とを用いて、前記注目領域の量子化インデクス値に対応する逆量子化値を生成する逆量子化値生成手段と
を有する復号化装置。
【請求項２】
前記近傍抽出手段によって抽出された第１の量子化インデクス値と量子化間隔とを用いて、第１の逆量子化値を算出し、前記近傍抽出手段によって抽出された第２の量子化インデクス値と量子化間隔とを用いて第２の逆量子化値を算出する逆量子化値算出手段
をさらに有し、
前記係数設定手段は、前記逆量子化値算出手段により算出された第１の逆量子化値及び第２の逆量子化値の分布状態に基づいて、前記第１の逆量子化値を補正するための補正係数を設定し、
前記係数設定手段により設定された補正係数を用いて、前記第１の逆量子化値及び前記第２の逆量子化値に対して畳込み演算を行うことにより、前記第１の逆量子化値を補正する逆量子化値補正手段
をさらに有する
請求項１に記載の復号化装置。
【請求項３】
前記係数設定手段は、前記逆量子化値補正手段により補正された後の逆量子化値が、前記近傍抽出手段によって抽出された第１の量子化インデクス値に対応する量子化区間におさまるように前記補正係数を設定する
請求項２に記載の復号化装置。
【請求項４】
前記係数設定手段は、前記近傍抽出手段により抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分散に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定する
請求項１に記載の復号化装置。
【請求項５】
前記係数設定手段は、前記逆量子化値算出手段により算出された第１の逆量子化値及び第２の逆量子化値の分散に基づいて、前記第１の逆量子化値を補正するための補正係数を設定する
請求項２に記載の復号化装置。
【請求項６】
前記係数設定手段は、前記注目領域を中心とした既定サイズの画像領域群に含まれる同一周波数成分の量子化インデクス値の分散Ｎと、以下の式とを用いて、第１のフィルタ係数（Ｗ＋α）及び第２のフィルタ係数αを算出し、
Ｗ＝｛Ｎ−１／１２｝／Ｎ｝
α＝（１−Ｗ）／（２Ｌ＋１）２
前記インデクス補正手段は、前記注目領域を中心とした（２Ｌ＋１）×（２Ｌ＋１）サイズの画像領域群の量子化インデクスに対して、中心の係数が前記第１のフィルタ係数（Ｗ＋α）であり、かつ、他の係数が第２のフィルタ係数αである（２Ｌ＋１）×（２Ｌ＋１）の２次元フィルタを掛けて、前記第１の量子化インデクス値を補正する
請求項１に記載の復号化装置。
【請求項７】
既定の画像領域単位で変換された量子化インデクスを逆量子化する逆量子化方法であって、
処理対象の画像領域である注目領域から第１の量子化インデクス値を抽出し、この注目領域に対して既定の相対位置にある他の画像領域から、前記第１の量子化インデクスと同じ周波数成分の第２の量子化インデクス値を抽出し、
抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分布状態に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定し、
設定された補正係数を用いて、前記第１の量子化インデクス値及び前記第２の量子化インデクス値に対して畳込み演算を行うことにより、前記第１の量子化インデクス値を補正し、
補正された第１の量子化インデクス値と、量子化間隔とを用いて、前記注目領域の量子化インデクス値に対応する逆量子化値を生成する
逆量子化方法。
【請求項８】
既定の画像領域単位で変換符号化された符号データを復号化する復号化装置において、
処理対象の画像領域である注目領域から第１の量子化インデクス値を抽出し、この注目領域に対して既定の相対位置にある他の画像領域から、前記第１の量子化インデクスと同じ周波数成分の第２の量子化インデクス値を抽出するステップと、
抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分布状態に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定するステップと、
設定された補正係数を用いて、前記第１の量子化インデクス値及び前記第２の量子化インデクス値に対して畳込み演算を行うことにより、前記第１の量子化インデクス値を補正ステップと、
補正された第１の量子化インデクス値と、量子化間隔とを用いて、前記注目領域の量子化インデクス値に対応する逆量子化値を生成するステップと
を前記復号化装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化処理により生成された符号データを復号化する復号化装置に関する。特に、本発明は、データの量子化を伴う符号化処理により生成された符号データを、逆量子化を行うことにより復号化する復号化装置に関する。
【背景技術】
【０００２】
例えば、特許文献１には、受信した符号データから画像を復元し、復元画像のブロック毎にフィルタ閾値を適応的に選択して、画像をスムージングフィルタで反復的にフィルタ処理し、新しい変換係数の各ブロックを、受信した変換係数の対応するブロック及び選択した量子化テーブルと比較して原稿画像からフィルタ処理した復元画像が導出可能かを決定し、決定に従ってフィルタ処理した復元画像を出力バッファへ転送する技術が開示されている。
また、特許文献２には、復元画像中に複数のブロックを設け、離散的コサイン変換値から最初の量子化区間を決定し、低域フィルタ処理によってそれぞれのブロックを平滑化し、それぞれのブロック内の画素上で離散的コサイン変換を行い、離散的コサイン変換により生成された離散的コサイン変換係数が量子化区間内にあるよう、離散的コサイン変換によって生成された変換係数を射影し、逆離散的コサイン変換を行って復元画像を生成する技術が開示されている。
また、非特許文献１には、復号された画像データにローパスフィルタを掛けてブロック歪みを抑制し、このローパスフィルタによる画質劣化を抑制するために、再度ＤＣＴを掛けて、ＤＣＴ係数値が元の量子化区間におさまっているかを確認する技術が開示されている。
また、非特許文献２には、復号画像でブロックをシフトさせてＤＣＴ係数を算出し、算出された複数のＤＣＴ係数に基づいて逆量子化値を推定する技術が開示されている。
【特許文献１】特開平７−１５４６０４号公報
【特許文献２】特開平７−１７０５１８号公報
【非特許文献１】A.Zakhor, Iterative procedures for reduction of blocking effects in transform image coding, IEEE Trans Circuits & Syst Video Technol., vol2, no.1, pp.91-95, March1992
【非特許文献２】Reduction of Block-Transform Image Coding Artifacts by Using Local Statistics of Transform Coefficients
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、比較的軽い処理負荷で、量子化による劣化を抑制する復号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［復号化装置］
上記目的を達成するために、本発明にかかる復号化装置は、既定の画像領域単位で変換符号化された符号データを復号化する復号化装置であって、処理対象の画像領域である注目領域から第１の量子化インデクス値を抽出し、この注目領域に対して既定の相対位置にある他の画像領域から、前記第１の量子化インデクスと同じ周波数成分の第２の量子化インデクス値を抽出する近傍抽出手段と、前記近傍抽出手段により抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分布状態に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定する係数設定手段と、前記係数設定手段により設定された補正係数を用いて、前記第１の量子化インデクス値及び前記第２の量子化インデクス値に対して畳込み演算を行うことにより、前記第１の量子化インデクス値を補正するインデクス補正手段と、前記インデクス補正手段により補正された第１の量子化インデクス値と、量子化間隔とを用いて、前記注目領域の量子化インデクス値に対応する逆量子化値を生成する逆量子化値生成手段とを有する。
【０００６】
好適には、前記近傍抽出手段によって抽出された第１の量子化インデクス値と量子化間隔とを用いて、第１の逆量子化値を算出し、前記近傍抽出手段によって抽出された第２の量子化インデクス値と量子化間隔とを用いて第２の逆量子化値を算出する逆量子化値算出手段をさらに有し、前記係数設定手段は、前記逆量子化値算出手段により算出された第１の逆量子化値及び第２の逆量子化値の分布状態に基づいて、前記第１の逆量子化値を補正するための補正係数を設定し、前記係数設定手段により設定された補正係数を用いて、前記第１の逆量子化値及び前記第２の逆量子化値に対して畳込み演算を行うことにより、前記第１の逆量子化値を補正する逆量子化値補正手段をさらに有する。
【０００９】
好適には、前記係数設定手段は、前記逆量子化値補正手段により補正された後の逆量子化値が、前記近傍抽出手段によって抽出された第１の量子化インデクス値に対応する量子化区間におさまるように前記補正係数を設定する。
【００１０】
好適には、前記係数設定手段は、前記逆量子化値補正手段により補正された後の逆量子化値が、前記近傍抽出手段によって抽出された第１の量子化インデクス値に対応する量子化区間におさまるように前記補正係数を設定する。
また、好適には、前記係数設定手段は、前記近傍抽出手段により抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分散に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定する。
【００１１】
好適には、前記係数設定手段は、前記注目領域を中心とした既定サイズの画像領域群に含まれる同一周波数成分の量子化インデクス値の分散Ｎと、以下の式とを用いて、第１のフィルタ係数（Ｗ＋α）及び第２のフィルタ係数αを算出し、
Ｗ＝｛Ｎ−１／１２｝／Ｎ｝
α＝（１−Ｗ）／（２Ｌ＋１）２
前記インデクス補正手段は、前記注目領域を中心とした（２Ｌ＋１）×（２Ｌ＋１）サイズの画像領域群の量子化インデクスに対して、中心の係数が前記第１のフィルタ係数（Ｗ＋α）であり、かつ、他の係数が第２のフィルタ係数αである（２Ｌ＋１）×（２Ｌ＋１）の２次元フィルタを掛けて、前記第１の量子化インデクス値を補正する。
【００１２】
［逆量子化方法］
また、本発明にかかる逆量子化方法は、既定の画像領域単位で変換された量子化インデクスを逆量子化する逆量子化方法であって、処理対象の画像領域である注目領域から第１の量子化インデクス値を抽出し、この注目領域に対して既定の相対位置にある他の画像領域から、前記第１の量子化インデクスと同じ周波数成分の第２の量子化インデクス値を抽出し、抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分布状態に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定し、設定された補正係数を用いて、前記第１の量子化インデクス値及び前記第２の量子化インデクス値に対して畳込み演算を行うことにより、前記第１の量子化インデクス値を補正し、補正された第１の量子化インデクス値と、量子化間隔とを用いて、前記注目領域の量子化インデクス値に対応する逆量子化値を生成する。
【００１３】
［プログラム］
また、本発明にかかるプログラムは、既定の画像領域単位で変換符号化された符号データを復号化する復号化装置において、処理対象の画像領域である注目領域から第１の量子化インデクス値を抽出し、この注目領域に対して既定の相対位置にある他の画像領域から、前記第１の量子化インデクスと同じ周波数成分の第２の量子化インデクス値を抽出するステップと、抽出された第１の量子化インデクス値及び第２の量子化インデクス値の分布状態に基づいて、前記第１の量子化インデクス値を補正するための補正係数を設定するステップと、設定された補正係数を用いて、前記第１の量子化インデクス値及び前記第２の量子化インデクス値に対して畳込み演算を行うことにより、前記第１の量子化インデクス値を補正ステップと、補正された第１の量子化インデクス値と、量子化間隔とを用いて、前記注目領域の量子化インデクス値に対応する逆量子化値を生成するステップとを前記復号化装置に実行させる。                                                                                
【発明の効果】
【００１４】
本発明の復号化装置によれば、符号データをより適切に復号化することができる。
【発明を実施するための最良の形態】
【００１５】
まず、本発明の理解を助けるために、その背景及び概略を説明する。
画像データなどは、データ量が膨大であるため、圧縮してデータ量を削減して保持、伝送等を行うことが一般的である。例えば、カラー原稿や写真を画像スキャナで電子化した場合に生成される多値画像データ、あるいは、ディジタルカメラで風景等の写真を撮った場合に生成される多値画像データは、ＪＰＥＧ、あるいは、ＪＰＥＧ２０００等の非可逆符号化方式で圧縮することにより、より小さなデータ量とすることができる。
【００１６】
これらの非可逆符号化を行った場合、符号化歪が発生することが問題となっている。特に、ＪＰＥＧ方式を適用する場合には、復号化された画像（復号画像）のＤＣＴ画像領域境界に発生するブロック歪（符号化歪）が問題となっている。
【００１７】
まず、非可逆符号化の符号化歪が発生するメカニズムを、図１及び図２を参照して説明する。
図１は、ＪＰＥＧ方式及びＪＰＥＧ２０００方式などの変換符号化方式の概略を説明する図であり、図１（Ａ）は、符号化処理の概略を示し、図１（Ｂ）は、復号化処理の概略を示す。
図２は、変換符号化方式における量子化処理を説明する図である。なお、図２に示された変換係数Ｔ（ｃ，ｉ，ｊ）及び量子化インデクスＱ（ｃ，ｉ，ｊ）は、変数ｃ，ｉ，ｊの関数である。変数ｃは、変換係数の種類を示すインデクスであり、例えば、８×８ブロック（画像領域）を用いたＤＣＴ変換であれば、６４種類（８×８）存在する変換係数のいずれかを示す値（１〜６４の整数など）であり、ウェーブレット変換であれば、1HH成分、1LH成分、1HL成分、2HH成分、2LH成分、2HL成分、・・・、NLLL成分のいずれかを示す値である。また、変数ｉ，ｊは、各変換係数の位置を示す変数であり、例えば、ＤＣＴ変換であれば、上からｉ番目、左からｊ番目のブロックのc番目の変換係数がＴ（ｃ，ｉ，ｊ）と表され、ウェーブレット変換であれば、c番目の変換係数の、上からｉ番目、左からｊ番目のデータがＴ（ｃ，ｉ，ｊ）と表される。
【００１８】
図１（Ａ）に示すように、変換符号化方式の符号化処理では、入力画像Ｇに対して離散コサイン変換又はウェーブレット変換などの変換処理が施されて、入力画像Ｇの変換係数Ｔが生成され、この変換係数Ｔは、さらに量子化されて、量子化インデクスＱとなる。量子化インデクスＱは、エントロピ符号化(可逆符号化)されて、圧縮符号Ｆとなる。
ここで、量子化インデクスとは、量子化値を識別するための情報である。また、量子化値とは、一定の範囲（量子化区間）にある数値群が縮退する値であり、図２に例示するように、量子化区間「Ａ−２」〜「Ａ２」それぞれを代表する離散的な値（本例では、「−２×Ｄ（ｃ）」〜「２×Ｄ（ｃ）」）である。
【００１９】
このように生成された符号データ（圧縮符号Ｆ）は、図１（Ｂ）に示すように、エントロピ復号されて、量子化インデクスＱとなる。この量子化インデクスＱは、符号化時の量子化インデクスＱと同じものである。
さらに、量子化インデクスＱは、逆量子化されて変換係数(すなわち、逆量子化値)Ｓとなり、この変換係数Ｓが逆変換され、復号画像Ｈが生成される。
【００２０】
ここで、逆量子化値とは、量子化インデクス又は量子化値に基づいて生成され、復号データの復号化に用いられる値であり、例えば、ＪＰＥＧ方式又はＪＰＥＧ２０００方式の変換係数（量子化インデクスに対応付けられた変換係数）である。
【００２１】
以上のプロセスにおいて、符号化歪が発生するのは、量子化を行う時である。元画像の変換係数Ｔと、量子化インデクスＱとの精度を比較すると、一般に変換係数Ｔの精度が量子化インデクスＱよりも高い。そのため、量子化インデクスＱを用いて再現した変換係数Ｓは、もともとの変換係数Ｔとは異なったものとなる。これが符号化歪の原因である。
【００２２】
次に、図２を参照して、量子化及び逆量子化をより詳細に説明する。
量子化は、各変換係数ｃ毎に用意された量子化ステップ幅（量子化間隔）Ｄ（ｃ）を用いて行う。量子化ステップ幅Ｄは、変換係数の種類ｃの関数である。例えば、ＪＰＥＧ方式であれば、量子化時に、以下の式で量子化インデクスＱを算出する。
【００２３】
Q(c,i,j)=round(T(c,i,j)/D(c))
【００２４】
ここでround()は、入力値に最も近い整数を出力する関数である。
また、逆量子化時には、以下の式で逆量子化値Ｓを算出する。
【００２５】
S(c,i,j)=Q(c,i,j)×D(c)
【００２６】
あるいは、ＪＰＥＧ２０００方式であれば、以下の式（数１）により、量子化インデクスＱ及び逆量子化値Ｓを算出する。
【００２７】
Q(c,i,j)=sign(T(c,i,j))×floor(|T(c,i,j)|/D(c))
Q(c,i,j)>0である場合に、S(c,i,j)=(Q(c,i,j)+r)×D(c)
Q(c,i,j)<0である場合に、S(c,i,j)=(Q(c,i,j)-r)×D(c)
Q(c,i,j)=0である場合に、S(c,i,j)=0
・・・（数１）
【００２８】
ここで、sign()は、正負の符号を出力する関数、floorは、小数点以下を０とする関数、｜｜は、絶対値を示す記号である。
また、ｒは、０から１までの範囲にある数値であり、典型的にはr=0.5を用いる。ただし、ＪＰＥＧ２０００方式では、下位ビットを符号化しない場合があるが、ここでは、最下位ビットまで全て符号化する場合を具体例として説明する。
【００２９】
ＪＰＥＧ２０００方式では、式（数１）で示した補正値rを適切に設定すれば、より歪の小さな復号画像を得ることができる。このように、ＪＰＥＧ２０００方式では、逆量子化値を量子化範囲の中心以外の値とすることで復号画質を向上させることができる。
【００３０】
また、ＪＰＥＧ方式でも、同様の補正値ｒを導入することにより、復号画像の画質を向上させることができる。具体的には、以下の式（数２）を用いて、逆量子化値を算出する。
【００３１】
Q(c,i,j)>0である場合に、S(c,i,j)=(Q(c,i,j)+r-0.5)×D(c)
Q(c,i,j)<0である場合に、S(c,i,j)=(Q(c,i,j)-r+0.5)×D(c)
Q(c,i,j)=0である場合に、S(c,i,j)=0
・・・（数２）
【００３２】
このように、適切な補正値ｒを用いて、逆量子化値を補正することにより、より再現性の高い復号化処理が可能となる。
【００３３】
次に、適切な補正値ｒの算出方法、すなわち、具体的な補正方法が問題となる。
例えば、図３に例示する復号化プログラム９のように、復号画像においてブロック位置をシフトさせて、それぞれのブロック位置（参照ブロック）で変換係数を算出し、算出された複数の変換係数（それぞれの参照ブロックで算出された変換係数）を用いて、逆量子化値を算出することが考えられる。
すなわち、復号化プログラム９の逆量子化値算出部９００が、量子化インデクス値Ｑ及び量子化間隔Ｄに基づいて逆量子化値を算出し、逆ＤＣＴ部９１０が、算出された逆量子化値に逆離散コサイン変換を行って、復号画像を生成し、ブロックシフト部９２０が、図４に例示するように、８×８サイズの注目ブロック（符号化時のブロック）を中心として、ブロック位置をシフトさせて複数の参照ブロックを設定する。
ＤＣＴ部９３０は、ブロックシフト部９２０により設定された参照ブロックに対して離散コサイン変換を行って、変換係数（参照ブロック）を算出し、逆量子化値推定部９４０は、注目ブロックの変換係数（すなわち、逆量子化値）と、参照ブロックの変換係数とに基づいて、注目ブロックの適切な逆量子化値（すなわち、補正された逆量子化値）を推定する。逆ＤＣＴ部９５０は、推定された逆量子化値に対して逆離散コサイン変換を行うことにより、量子化による画質劣化の少ない復号画像を生成することができる。
【００３４】
しかしながら、図３に例示する復号化プログラム９は、最終的な復号画像を得るために、少なくとも２回の逆離散コサイン変換（すなわち、逆ＤＣＴ部９１０のＩＤＣＴ、及び、逆ＤＣＴ部９５０のＩＤＣＴ）を行う必要がある。
また、復号化プログラム９は、図４に例示する複数の参照ブロックについて、離散コサイン変換（すなわち、ＤＣＴ部９３０のＤＣＴ）を行う必要がある。
このように、図３に例示する構成では、全体の処理負荷が大きくなってしまう。
【００３５】
そこで、本実施形態における復号化装置２は、注目ブロックの逆量子化値を補正する場合に、他のブロックの逆量子化値を参照する。
より具体的には、本復号化装置２は、注目ブロックの逆量子化値と、この注目ブロックに隣接するブロック（参照ブロック）の逆量子化値とに基づいて、補正係数を設定し、設定された補正係数と、参照ブロックの逆量子化値とを用いて、注目ブロックの逆量子化値を補正する。
周囲のブロックの逆量子化値は、注目ブロックの逆量子化値と十分な相関を有するものと考えられる。また、周囲のブロックの逆量子化値を用いることにより、図３の逆ＤＣＴ部９１０及びＤＣＴ部９３０を設ける必要がなく、処理負荷を小さくすることができる。
【００３６】
［ハードウェア構成］
次に、本実施形態における復号化装置２のハードウェア構成を説明する。
図５は、本発明にかかる逆量子化方法が適応される復号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
図５に例示するように、復号化装置２は、ＣＰＵ２０２及びメモリ２０４などを含む制御装置２０、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２６から構成される。
復号化装置２は、例えば、復号化プログラム５（後述）がインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して符号データを取得し、取得された符号データを復号化してプリンタ装置１０に転送する。
【００３７】
［復号化プログラム］
図６は、制御装置２０（図５）により実行され、本発明にかかる逆量子化方法を実現する復号化プログラム５の機能構成を例示する図である。
図６に例示するように、復号化プログラム５は、エントロピ復号部４０、逆量子化部５０及び逆変換部６０を有する。
エントロピ復号部４０は、入力された符号データを、エントロピ復号化して、逆量子化部５０に出力する。
本例のエントロピ復号部４０は、入力された符号データを復号化して、量子化インデクス値Ｑを生成し、生成された量子化インデクス値を逆量子化部５０に出力する。
【００３８】
逆量子化部５０は、エントロピ復号部４０から入力された量子化インデスク値に基づいて、逆量子化値を生成し、生成された逆量子化値を逆変換部６０に出力する。
【００３９】
逆変換部６０は、逆量子化部５０から入力された逆量子化値に基づいて、逆変換処理を行い、復号画像を生成する。
本例の逆変換部６０は、逆離散コサイン変換を行って、逆量子化値を復号画像に変換する。
【００４０】
図７は、図６に示された逆量子化部５０をより詳細に説明する図である。
図７に例示するように、逆量子化部５０は、逆量子化値算出部５００、近傍抽出部５１０、平均値算出部５２０、分散算出部５３０、係数設定部５４０、及び逆量子化値補正部５５０を有する。
【００４１】
逆量子化部５０において、逆量子化値算出部５００は、エントロピ復号部４０から入力された量子化インデクス値に基づいて、逆量子化値を算出し、算出された逆量子化値を近傍抽出部５１０に出力する。
本例の逆量子化値算出部５００は、入力された量子化インデクス値Ｑと、量子化ステップ幅Ｄとを用いて、一時的逆量子化値Ｓ（以下、単に逆量子化値Ｓという。）を算出する。
【００４２】
近傍抽出部５１０は、注目領域の逆量子化値を処理対象とする場合に、この注目領域の近傍にある他の画像領域の逆量子化値を抽出し、抽出された画像領域（注目領域及び他の画像領域）の逆量子化値とを平均値算出部５２０、分散算出部５３０、係数設定部５４０、及び逆量子化値補正部５５０に出力する。
例えば、近傍抽出部５１０は、注目領域を中心して（２Ｌ＋１）×（２Ｌ＋１）サイズの画像領域群の逆量子化値のうち、同一成分の逆量子化値を抽出する。ここで、（２Ｌ＋１）×（２Ｌ＋１）サイズの画像領域群とは、画像の水平方向及び垂直方向にそれぞれ（２Ｌ＋１）個の画像領域が存在する矩形領域を意味する。
本例の近傍抽出部５１０は、注目ブロックに含まれる注目成分の逆量子化値を処理対象とする場合に、この注目ブロックを中心とした（２Ｌ＋１）×（２Ｌ＋１）サイズのブロック群から、注目成分と同じ成分（同一種類）の逆量子化値を抽出する。
【００４３】
平均値算出部５２０は、近傍抽出部５１０から入力された複数の逆量子化値（注目ブロック及び参照ブロックの逆量子化値）の平均値Ｍを算出し、算出された平均値Ｍを分散算出部５３０及び係数設定部５４０に出力する。
分散算出部５３０は、近傍抽出部５１０から入力された複数の逆量子化値（注目ブロック及び参照ブロックの逆量子化値）と、平均値算出部５２０から入力された平均値Ｍとに基づいて、逆量子化値の分散Ｎを算出し、算出された分散Ｎを係数設定部５４０に出力する。
【００４４】
係数設定部５４０は、近傍抽出部５１０により抽出された逆量子化値の分布状態に基づいて、逆量子化値を補正するための補正係数を設定する。
本例の係数設定部５４０は、平均値算出部５２０により算出された平均値Ｍと、分散算出部５３０により算出された分散Ｎとに基づいて、２次元ＦＩＲフィルタのフィルタ係数を算出する。
【００４５】
逆量子化値補正部５５０は、係数設定部５４０により設定された補正係数と、近傍抽出部５１０により抽出された参照ブロックの逆量子化値とに基づいて、注目ブロックの逆量子化値を補正する。
本例の逆量子化値補正部５５０は、係数設定部５４０により算出されたフィルタ係数からなる（２Ｌ＋１）×（２Ｌ＋１）サイズの２次元ＦＩＲフィルタを用いて、注目ブロック及び参照ブロックの逆量子化値に対して畳込み演算を行い、補正された逆量子化値（注目ブロックの逆量子化値）を算出する。
【００４６】
図８は、復号化プログラム５（図６）による復号化処理（Ｓ１０）を説明するフローチャートである。
図８に例示するように、ステップ１００（Ｓ１００）において、エントロピ復号部４０（図６）は、入力された符号データをハフマン符号化方式で復号化し、復号化された量子化インデクス値Ｑを逆量子化部５０に出力する。
【００４７】
ステップ１１０（Ｓ１１０）において、逆量子化部５０の逆量子化値算出部５００（図７）は、各ブロックの量子化インデクス値Ｑを逆量子化し、各ブロックに含まれる逆量子化値Ｓ（補正前）を算出する。
【００４８】
ステップ１２０（Ｓ１２０）において、近傍抽出部５１０（図７）は、逆量子化値算出部５００により算出された逆量子化値の中から、処理対象となる注目ブロックの逆量子化値S(c,i,j)を選択する。
さらに、近傍抽出部５１０は、選択された処理対象の逆量子化値S(c,i,j)に関し、注目ブロックを含む複数のブロック（注目ブロック及び参照ブロック）から、同じ種類（周波数成分）の逆量子化値S(c,i+s,j+t)を抽出する。
なお、本例では、ｓ及びｔはそれぞれ−１から１の整数である。すなわち、図９（Ａ）に例示する９つのブロック（注目ブロック及び参照ブロック）から、逆量子化値が抽出される。
近傍抽出部５１０は、抽出された逆量子化値S(c,i+s,j+t)を平均値算出部５２０、分散算出部５３０、係数設定部５４０及び逆量子化値補正部５５０に出力する。
【００４９】
ステップ１３０（Ｓ１３０）において、平均値算出部５２０は、近傍抽出部５１０から入力された逆量子化値S(c,i+s,j+t)の平均値Ｍを算出し、算出された平均値Ｍを分散算出部５３０及び係数設定部５４０に出力する。
【００５０】
ステップ１４０（Ｓ１４０）において、分散算出部５３０は、近傍抽出部５１０から入力された逆量子化値S(c,i+s,j+t)と、平均値算出部５２０から入力された平均値Ｍとに基づいて、抽出された逆量子化値S(c,i+s,j+t)の分散Ｎを算出し、算出された分散Ｎを係数設定部５４０に出力する。
分散Ｎは、各逆量子化値S(c,i+s,j+t)と平均値Ｍとの差分を２乗し、これらの総和を逆量子化値の個数（本例では９）で割った値である。
【００５１】
ステップ１５０（Ｓ１５０）において、係数設定部５４０は、平均値算出部５２０から入力された平均値Ｍと、分散算出部５３０から入力された分散Ｎと、エントロピ復号部４０から入力された量子化ステップ幅D(c)とを用いて、図９（Ｂ）に例示するフィルタ係数（α、及び、Ｗ＋α）を算出し、算出されたフィルタ係数を逆量子化値補正部５５０に出力する。
具体的には、係数設定部５４０は、以下の演算式Ａ及び演算式Ｂの演算結果のいずれかが０以上である場合には、演算結果のうち大きい方を係数Ｗとして選択し、演算結果がいずれも０未満である場合には、係数Ｗとして０を選択する。
（演算式Ａ）＝｛（分散Ｎ）−D(c)×D(c)／１２｝／（分散Ｎ）
（演算式Ｂ）＝１−D(c)／２｜S(c,i+s,j+t)−（平均値Ｍ）｜
なお、演算式Ｂは、補正後の逆量子化値S’(c,i,j)が元の量子化インデクスQ(c,i,j)に対応する量子化区間におさまるようにするための条件式である。
次に、係数設定部５４０は、算出された係数Ｗを用いて、以下の式により、係数αを算出する。
（係数α）＝（１−Ｗ）／（２Ｌ＋１）2
ただし、Ｌは注目ブロックを中心とした参照ブロックまでの距離であり、本例では、図９（Ａ）に例示するように、注目ブロックから１ブロックの範囲を参照ブロックとしているため、Ｌ＝１となる。すなわち、（２Ｌ＋１）2は、近傍抽出部５１０により抽出された逆量子化値の個数（ブロックの個数）となる。
このように算出された係数Ｗ及び係数αが、図９（Ｂ）に例示する２次元ＦＩＲフィルタの要素となる。
【００５２】
ステップ１６０（Ｓ１６０）において、逆量子化値補正部５５０は、近傍抽出部５１０から入力された９つの逆量子化値S(c,i+s,j+t)に対して、係数設定部５４０から入力されたフィルタ係数が適用された２次元ＦＩＲフィルタ（図９（Ｂ））をかけて、補正後の逆量子化値S’(c,i,j)を算出する。
算出された逆量子化値S’(c,i,j)は、逆変換部６０（図６）に出力される。
【００５３】
ステップ１７０（Ｓ１７０）において、復号化プログラム５は、全ての逆量子化値を補正したか否かを判断し、全ての逆量子化値が補正された場合には、Ｓ１８０の処理に移行し、未処理の逆量子化値が存在する場合には、Ｓ１２０の処理に戻る。
【００５４】
ステップ１８０（Ｓ１８０）において、逆変換部６０は、逆量子化部５０から入力された逆量子化値（逆量子化部５０により補正されたもの）に対して、逆離散コサイン変換を施して、復号画像を生成する。
【００５５】
以上説明したように、本実施形態における復号化装置２は、他のブロックの逆量子化値を参照して、注目ブロックの逆量子化値を補正するため、比較的軽い処理負荷で、量子化による画質劣化を抑制することができる。
すなわち、本復号化装置２は、ＤＣＴ領域でフィルタリングを行って量子化前のＤＣＴ係数を推定することができる。量子化前のＤＣＴ係数の推定がＤＣＴ領域で行われるため、量子化範囲保証が非常に容易で、演算負荷が小さい。
また、本復号化装置２は、逆量子化値Sに２次元ＦＩＲフィルタを掛けるだけで、良好なＤＣＴ係数値（逆量子化値）を推定できる。
【００５６】
［変形例１］
次に、上記実施形態の変形例を説明する。
上記実施形態では、逆量子化値を補正する形態を説明したが、これに限定されるものではなく、例えば、量子化インデクス値を補正してもよい。
この場合に、量子化インデクス値Qと逆量子化値Sとを比較すると、量子化インデクス値Qのほうがダイナミックレンジが小さいため、データのビット幅を抑えて演算負荷を小さくできる可能性がある。また、上記係数Ｗの演算では、量子化ステップ幅D(c)が不要になるため、処理がより簡易になる。
以下、変形例１について説明する。
【００５７】
図１０は、変形例１における逆量子化部５２を説明する図である。
図１０に例示するように、第２の逆量子化部５２は、第２の逆量子化値算出部５０２、第２の近傍抽出部５１２、第２の平均値算出部５２２、第２の分散算出部５３２、第２の係数設定部５４２、及びインデクス補正部５５２を有する。
【００５８】
逆量子化部５２において、近傍抽出部５１２は、注目ブロックの量子化インデクス値を処理対象とする場合に、参照ブロックの量子化インデクス値を抽出し、抽出された参照ブロックの量子化インデクス値と、注目ブロックの量子化インデクス値とを平均値算出部５２２、分散算出部５３２、係数設定部５４２、及びインデクス補正部５５２に出力する。
本例の近傍抽出部５１２は、注目ブロックに含まれる注目成分の量子化インデクス値Q(c,i,j)を処理対象とする場合に、この注目ブロックの周囲にある参照ブロックから、注目成分と同じ成分（同一種類）の量子化インデクス値Q(c,i+s,j+t)を抽出する。
【００５９】
平均値算出部５２２は、近傍抽出部５１２から入力された複数の量子化インデクス値（注目ブロック及び参照ブロックの量子化インデクス値）の平均値Ｍを算出し、算出された平均値Ｍを分散算出部５３２及び係数設定部５４２に出力する。
分散算出部５３２は、近傍抽出部５１２から入力された複数の量子化インデクス値（注目ブロック及び参照ブロックの量子化インデクス値）と、平均値算出部５２２から入力された平均値Ｍ（量子化インデクス値の平均）とに基づいて、量子化インデクス値の分散Ｎを算出し、算出された分散Ｎを係数設定部５４２に出力する。
【００６０】
係数設定部５４２は、近傍抽出部５１０により抽出された量子化インデクス値の分布状態に基づいて、量子化インデクス値を補正するための補正係数を設定する。
本例の係数設定部５４２は、平均値算出部５２２により算出された平均値Ｍ（量子化インデクス値の平均）と、分散算出部５３２により算出された分散Ｎ（量子化インデクス値の分散）とに基づいて、２次元ＦＩＲフィルタのフィルタ係数を算出する。
【００６１】
インデクス補正部５５２は、係数設定部５４２により設定された補正係数と、近傍抽出部５１２により抽出された参照ブロックの量子化インデクス値とに基づいて、注目ブロックの量子化インデクス値を補正する。
本例の逆量子化値補正部５５２は、係数設定部５４２により算出されたフィルタ係数からなる２次元ＦＩＲフィルタ（図９（Ｂ））を用いて、注目ブロック及び参照ブロックの量子化インデクス値に対して畳込み演算を行い、補正された量子化インデクス値Ｑ’を算出する。
【００６２】
逆量子化値算出部５０２は、インデクス補正部５５２により補正された量子化インデクス値に基づいて、逆量子化値を算出し、算出された逆量子化値を逆変換部６０（図６）に出力する。
本例の逆量子化値算出部５０２は、補正された量子化インデクス値Ｑ’と、量子化ステップ幅Ｄとを用いて、逆量子化値を算出する。
【００６３】
図１１は、変形例１における復号化処理（Ｓ２０）を説明するフローチャートである。
図１１に例示するように、ステップ２００（Ｓ２００）において、エントロピ復号部４０（図６）は、入力された符号データを復号化し、復号化された量子化インデクス値Ｑを逆量子化部５２に出力する。
【００６４】
ステップ２１０（Ｓ２１０）において、近傍抽出部５１２（図１０）は、エントロピ復号部４０から入力された量子化インデクス値の中から、処理対象となる注目ブロックの量子化インデクス値Q(c,i,j)を選択する。
さらに、近傍抽出部５１２は、選択された処理対象の量子化インデクス値Q(c,i,j)に関し、注目ブロックを含む複数のブロック（図９（Ａ））から、同じ種類（周波数成分）の量子化インデクス値Q(c,i+s,j+t)を抽出する。
すなわち、図９（Ａ）に例示する９つのブロック（注目ブロック及び参照ブロック）から、同一種類ｃの量子化インデクス値が抽出される。
近傍抽出部５１２は、抽出された量子化インデクス値Q(c,i+s,j+t)を平均値算出部５２２、分散算出部５３２、係数設定部５４２及びインデクス補正部５５２に出力する。
【００６５】
ステップ２２０（Ｓ２２０）において、平均値算出部５２２は、近傍抽出部５１２から入力された量子化インデクス値Q(c,i+s,j+t)の平均値Ｍを算出し、算出された平均値Ｍを分散算出部５３２及び係数設定部５４２に出力する。
【００６６】
ステップ２３０（Ｓ２３０）において、分散算出部５３２は、近傍抽出部５１２から入力された量子化インデクス値Q(c,i+s,j+t)と、平均値算出部５２２から入力された平均値Ｍとに基づいて、抽出された量子化インデクス値Q(c,i+s,j+t)の分散Ｎを算出し、算出された分散Ｎを係数設定部５４２に出力する。
分散Ｎは、各量子化インデクス値Q(c,i+s,j+t)と平均値Ｍとの差分を２乗し、これらの総和を量子化インデクス値の個数（本例では９）で割った値である。
【００６７】
ステップ２４０（Ｓ２４０）において、係数設定部５４２は、平均値算出部５２２から入力された平均値Ｍ（量子化インデクス値の平均）と、分散算出部５３２から入力された分散Ｎ（量子化インデクス値の分散）とを用いて、図９（Ｂ）に例示するフィルタ係数（α、及び、Ｗ＋α）を算出し、算出されたフィルタ係数をインデクス補正部５５２に出力する。
具体的には、係数設定部５４２は、以下の演算式Ｃ及び演算式Ｄの演算結果のいずれかが０以上である場合には、演算結果のうち大きい方を係数Ｗとして選択し、演算結果がいずれも０未満である場合には、係数Ｗとして０を選択する。
（演算式Ｃ）＝｛（量子化インデクス値の分散Ｎ）−１／１２｝／（量子化インデクス値の分散Ｎ）
（演算式Ｄ）＝１−１／２｜Q(c,i+s,j+t)−（量子化インデクス値の平均値Ｍ）｜
なお、演算式Ｄは、補正された量子化インデクス値の量子化範囲を保証するための条件式である。
次に、係数設定部５４２は、算出された係数Ｗを用いて、以下の式により、係数αを算出する。
（係数α）＝（１−Ｗ）／（２Ｌ＋１）2
【００６８】
ステップ２５０（Ｓ２５０）において、インデクス補正部５５２は、近傍抽出部５１２から入力された９つの量子化インデクス値Q(c,i+s,j+t)に対して、係数設定部５４２から入力されたフィルタ係数が適用された２次元ＦＩＲフィルタ（図９（Ｂ））をかけて、補正後の量子化インデクス値Q’(c,i,j)を算出し、算出された量子化インデクス値Q’(c,i,j)を逆量子化値算出部５０２に出力する。
【００６９】
ステップ２６０（Ｓ２６０）において、逆量子化値算出部５０２は、インデクス補正部５５２から入力された量子化インデクス値Q’(c,i,j)と、エントロピ復号部４０から入力された量子化ステップ幅D(c)とを乗算して、逆量子化値を算出する。
【００７０】
ステップ２７０（Ｓ２７０）において、復号化プログラム５２は、全ての量子化インデクス値を処理したか否かを判断し、全ての量子化インデクス値が処理された場合には、Ｓ２８０の処理に移行し、未処理の量子化インデクス値が存在する場合には、Ｓ２１０の処理に戻る。
【００７１】
ステップ２８０（Ｓ２８０）において、逆変換部６０（図６）は、逆量子化部５２（図１０）から入力された逆量子化値に対して、逆離散コサイン変換を施して、復号画像を生成する。
【００７２】
このように、本変形例では、逆量子化値を補正対象とする代わりに、量子化インデクス値を補正対象とする。量子化インデクス値は、量子化ステップ幅が乗じられる前の値であるため、ダイナミックレンジが小さく、処理負荷の低減が期待できる。
また、本変形例のフィルタ係数算出処理（Ｓ２４０）は、上記実施形態のフィルタ係数算出処理（Ｓ１５０）とは異なり、周波数成分ｃに依存する量子化ステップ幅Ｄ（ｃ）を要しないため、演算負荷が小さくなる。
【００７３】
［変形例２］
上記実施形態では、分散Ｎを、各逆量子化値S(c,i+s,j+t)と平均値Ｍとの差分を２乗し、これらの総和を逆量子化値の個数で割った値として算出したが、各逆量子化値S(c,i+s,j+t)の２乗平均と平均値Ｍの２乗との差分としてもよい。
また、量子化インデクス値の分散Ｎを算出する場合には、各量子化インデクス値Q(c,i+s,j+t)の２乗平均と、量子化インデクス値の平均値Ｍの２乗との差分を分散Ｎとしてもよい。
【００７４】
［変形例３］
また、上記実施形態では、量子化範囲を保証するために、以下の演算式Ｂを用いた。
（演算式Ｂ）＝１−D(c)／２｜S(c,i+s,j+t)−（平均値Ｍ）｜
しかしながら、量子化範囲の保証は必須ではないため、この演算式Ｂを省略してもよい。
また、量子化インデクスの補正する形態（変形例１）では、同様の理由から、上記演算式Ｄを省略してもよい。
この場合には、係数設定部５４０（又は係数設定部５４２）は、平均値Ｍを用いずに、フィルタ係数を設定できる。
【００７５】
［変形例４］
また、上記実施形態及び変形例１では、図９（Ｂ）に例示する２次元ＦＩＲフィルタを用いる形態を具体例として説明したが、フィルタ係数はこれに限定されるものではない。
例えば、フィルタ係数としては、逆量子化値（又は量子化インデクス値）の分布状態（分散、平均値など）や量子化ステップ幅を変数とする関数値、あるいは、上記フィルタ係数（α、及び、Ｗ＋α）に所定の重み付けを行ったもの（例えば、中心成分、垂直水平成分、これら以外の成分で異なる重み付け係数を掛けたもの）などでもよい。
【００７６】
［その他の変形例］
上記実施形態及び変形例１では、ブロック変換符号化方式を適用した形態を具体例として説明したが、ＪＰＥＧ２０００方式などのウェーブレット変換符号化方式に適用してもよい。
この場合にも、空間領域で隣接する同一種類の変換係数が抽出できればよいのであるから、例えば、ウェーブレット変換符号化方式では、入力画像を複数の周波数帯域に分割し、周波数分割された画像信号を、入力画像のように２次元の広がりをもったビットマップ画像とみなし、このビットマップ画像に対して、図９（Ｂ）のフィルタを掛ければよい。
【００７７】
［実験結果］
図１２は、実験結果のグラフである。
図１２では、８ビット/ピクセルのモノクロ画像をＪＰＥＧ方式で圧縮し、ＪＰＥＧ標準方式、スムージングフィルタ方式（非特許文献１の方式）、上記実施形態の方式で復号した結果が示されている。なお、本図の横軸は、ＪＰＥＧ方式で圧縮するときのビットレート[bit/pixel]を示している。また、本図の縦軸は、ＪＰＥＧ標準方式で復号した場合よりもどれだけPSNR[dB]が向上したかを示している。
図１２に示されるように、上記実施形態の方式は、全てのビットレートで正の値を示している。つまり、ＪＰＥＧ標準方式よりも性能がよい。
また、上記実施形態の方式は、スムージングフィルタ方式に比べて、ほとんどのビットレートで良好かつ安定した性能を有している。つまり、スムージングフィルタ方式は、ビットレートが大きくなると、ＪＰＥＧ標準方式よりも画質が劣化してしまうため、不安定な方式であるということができるが、上記実施形態の方式では、いずれのビットレートでも安定して画質劣化を改善効果を発揮している。
【図面の簡単な説明】
【００７８】
【図１】ＪＰＥＧ方式及びＪＰＥＧ２０００方式などの変換符号化方式の概略を説明する図であり、（Ａ）は、符号化処理の概略を示し、（Ｂ）は、復号化処理の概略を示す。
【図２】変換符号化方式における量子化処理を説明する図である。
【図３】復号化プログラム９の機能構成を例示する図である。
【図４】ブロックのシフト位置を説明する図である。
【図５】本発明にかかる逆量子化方法が適応される復号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
【図６】制御装置２０（図４）により実行され、本発明にかかる逆量子化方法を実現する復号化プログラム５の機能構成を例示する図である。
【図７】図６に示された逆量子化部５０をより詳細に説明する図である。
【図８】復号化プログラム５（図６）による復号化処理（Ｓ１０）を説明するフローチャートである。
【図９】（Ａ）は、参照ブロックを例示し、（Ｂ）は、フィルタを例示する図である。
【図１０】変形例１における逆量子化部５２を説明する図である。
【図１１】変形例１における復号化処理（Ｓ２０）を説明するフローチャートである。
【図１２】実験結果のグラフである。
【符号の説明】
【００７９】
２・・・復号化装置
５・・・復号化プログラム
４０・・・エントロピ復号部
５０，５２・・・逆量子化部
５００，５０２・・・逆量子化値算出部
５１０，５１２・・・近傍抽出部
５２０，５２２・・・平均値算出部
５３０，５３２・・・分散算出部
５４０，５４２・・・係数設定部
５５０・・・逆量子化値補正部
５５２・・・インデクス補正部
６０・・・逆変換部
【図１】
0004784386.tif 000002
【図２】
0004784386.tif 000003
【図３】
0004784386.tif 000004
【図４】
0004784386.tif 000005
【図５】
0004784386.tif 000006
【図６】
0004784386.tif 000007
【図７】
0004784386.tif 000008
【図８】
0004784386.tif 000009
【図９】
0004784386.tif 000010
【図１０】
0004784386.tif 000011
【図１１】
0004784386.tif 000012
【図１２】
0004784386.tif 000013