(57)【特許請求の範囲】
【請求項１】
符号データに含まれる量子化インデクスを、この量子化インデクスを示すビット列の有効ビット数の種類に応じて、複数のグループに分類する分類手段と、
前記分類手段により分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの分布情報を生成する量子化インデクス分布情報生成手段と、
前記量子化インデクス分布情報生成手段により生成された分布情報に基づいて、量子化前の量子化インデクスである変換係数の分布情報を生成する変換係数分布情報生成手段と、
前記変換係数分布情報生成手段により生成された分布情報に基づいて、この分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正する逆量子化値補正手段と
を有する復号化装置。
【請求項２】
前記量子化インデクス分布情報生成手段は、前記分類手段により分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの頻度分布情報を生成し、
前記変換係数分布情報生成手段は、前記量子化インデクス分布情報生成手段により生成された頻度分布情報に基づいて、量子化前の量子化インデクスである変換係数の頻度分布情報を生成し、
前記逆量子化値補正手段は、前記変換係数分布情報生成手段により生成された頻度分布情報に基づいて、この頻度分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正する
請求項１に記載の復号化装置。
【請求項３】
前記量子化インデクス分布情報生成手段によりグループ毎に生成された複数の頻度分布情報に基づいて、１つの頻度分布情報を生成する分布情報合成手段
をさらに有し、
前記逆量子化値補正手段は、前記分布情報合成手段により生成された頻度分布情報に基づいて、量子化インデクスに対応する逆量子化値を補正する
請求項２に記載の復号化装置。
【請求項４】
前記分布情報合成手段は、それぞれのグループに属する量子化インデクスの量子化間隔に基づいて、グループ毎に生成された複数の頻度分布情報を統合して、１つの頻度分布情報を生成する
請求項３に記載の復号化装置。
【請求項５】
前記分布情報合成手段は、それぞれのグループに対応する量子化間隔のうち、最も細かい量子化間隔に合わせるよう頻度分布情報を統合する
請求項４に記載の復号化装置。
【請求項６】
入力される符号データはＪＰＥＧ２０００方式で符号化されたデータであり、
前記分類手段は、符号データに含まれる量子化インデクスを、コードブロック毎に分類し、
前記量子化インデクス分布情報生成手段は、コードブロック毎に、量子化インデクスの分布情報を生成する
請求項１に記載の復号化装置。
【請求項７】
前記量子化インデクス分布情報生成手段によりグループ毎に生成された頻度分布情報の中から、処理対象となる量子化インデクスが属するグループの頻度分布情報を選択する分布情報選択手段
をさらに有し、
前記逆量子化値補正手段は、前記分布情報選択手段により選択された頻度分布情報を用いて、前記処理対象の量子化インデクスに対応する逆量子化値を補正する
請求項２に記載の復号化装置。
【請求項８】
前記分類手段は、それぞれの量子化インデクスに対応する量子化間隔に基づいて、量子化インデクスを分類し、
前記量子化インデクス分布情報生成手段は、前記グループ毎に、量子化インデクスの分布情報を生成する
請求項１に記載の復号化装置。
【請求項９】
符号データに含まれる量子化インデクスを、この量子化インデクスを示すビット列の有効ビット数の種類に応じて、複数のグループに分類し、
分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの分布情報を生成し、
生成された量子化インデクスの分布情報に基づいて、量子化前の量子化インデクスである変換係数の分布情報を生成し、
生成された変換係数の分布情報に基づいて、この変換係数の分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正する
逆量子化方法。
【請求項１０】
符号データに含まれる量子化インデクスを、この量子化インデクスを示すビット列の有効ビット数の種類に応じて、複数のグループに分類するステップと、
分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの分布情報を生成するステップと、
生成された量子化インデクスの分布情報に基づいて、量子化前の量子化インデクスである変換係数の分布情報を生成するステップと、
生成された変換係数の分布情報に基づいて、この変換係数の分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化処理により生成された符号データを復号化する復号化装置に関する。特に、本発明は、データの量子化を伴う符号化処理により生成された符号データを、逆量子化を行うことにより復号化する復号化装置に関する。
【背景技術】
【０００２】
例えば、非特許文献１は、ＪＰＥＧ２０００標準を開示する。
【非特許文献１】ＩＴＵ−Ｔ勧告  Ｔ．８００
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、符号データをより適切に復号化する復号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［復号化装置］
上記目的を達成するために、本発明にかかる復号化装置は、符号データに含まれる量子化インデクスを、この量子化インデクスを示すビット列の有効ビット数の種類に応じて、複数のグループに分類する分類手段と、前記分類手段により分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの分布情報を生成する量子化インデクス分布情報生成手段と、前記量子化インデクス分布情報生成手段により生成された分布情報に基づいて、量子化前の量子化インデクスである変換係数の分布情報を生成する変換係数分布情報生成手段と、前記変換係数分布情報生成手段により生成された分布情報に基づいて、この分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正する逆量子化値補正手段とを有する。
【０００６】
好適には、前記量子化インデクス分布情報生成手段は、前記分類手段により分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの頻度分布情報を生成し、前記変換係数分布情報生成手段は、前記量子化インデクス分布情報生成手段により生成された頻度分布情報に基づいて、量子化前の量子化インデクスである変換係数の頻度分布情報を生成し、前記逆量子化値補正手段は、前記変換係数分布情報生成手段により生成された頻度分布情報に基づいて、この頻度分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正する。
【０００７】
好適には、前記量子化インデクス分布情報生成手段によりグループ毎に生成された複数の頻度分布情報に基づいて、１つの頻度分布情報を生成する分布情報合成手段をさらに有し、前記逆量子化値補正手段は、前記分布情報合成手段により生成された頻度分布情報に基づいて、量子化インデクスに対応する逆量子化値を補正する。
【０００８】
好適には、前記分布情報合成手段は、それぞれのグループに属する量子化インデクスの量子化間隔に基づいて、グループ毎に生成された複数の頻度分布情報を統合して、１つの頻度分布情報を生成する。
【０００９】
好適には、前記分布情報合成手段は、それぞれのグループに対応する量子化間隔のうち、最も細かい量子化間隔に合わせるよう頻度分布情報を統合する。
【００１０】
好適には、入力される符号データはＪＰＥＧ２０００方式で符号化されたデータであり、前記分類手段は、符号データに含まれる量子化インデクスを、コードブロック毎に分類し、前記量子化インデクス分布情報生成手段は、コードブロック毎に、量子化インデクスの分布情報を生成する。
【００１１】
好適には、前記量子化インデクス分布情報生成手段によりグループ毎に生成された頻度分布情報の中から、処理対象となる量子化インデクスが属するグループの頻度分布情報を選択する分布情報選択手段をさらに有し、前記逆量子化値補正手段は、前記分布情報選択手段により選択された頻度分布情報を用いて、前記処理対象の量子化インデクスに対応する逆量子化値を補正する。
【００１２】
好適には、前記分類手段は、それぞれの量子化インデクスに対応する量子化間隔に基づいて、量子化インデクスを分類し、前記量子化インデクス分布情報生成手段は、前記グループ毎に、量子化インデクスの分布情報を生成する。
【００１４】
[逆量子化方法]
また、本発明にかかる逆量子化方法は、符号データに含まれる量子化インデクスを、この量子化インデクスを示すビット列の有効ビット数の種類に応じて、複数のグループに分類し、分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの分布情報を生成し、生成された量子化インデクスの分布情報に基づいて、量子化前の量子化インデクスである変換係数の分布情報を生成し、生成された変換係数の分布情報に基づいて、この変換係数の分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正する。
【００１５】
[プログラム]
また、本発明にかかるプログラムは、符号データに含まれる量子化インデクスを、この量子化インデクスを示すビット列の有効ビット数の種類に応じて、複数のグループに分類するステップと、分類された複数のグループそれぞれに含まれる量子化インデクスに基づいて、複数のグループ毎の量子化インデクスの分布情報を生成するステップと、生成された量子化インデクスの分布情報に基づいて、量子化前の量子化インデクスである変換係数の分布情報を生成するステップと、生成された変換係数の分布情報に基づいて、この変換係数の分布情報を生成する基になった量子化インデクスそれぞれに対応する逆量子化値を補正するステップとをコンピュータに実行させる。
【発明の効果】
【００１６】
本発明の復号化装置によれば、符号データをより適切に復号化することができる。
【発明を実施するための最良の形態】
【００１７】
まず、本発明の理解を助けるために、その背景及び概略を説明する。
画像データ及び音声データなどは、データ量が膨大であるため、圧縮してデータ量を削減して保持、伝送等を行うことが一般的である。例えば、カラー原稿や写真を画像スキャナで電子化した場合に生成される多値画像データ、あるいは、ディジタルカメラで風景等の写真を撮った場合に生成される多値画像データは、ＪＰＥＧ２０００等の非可逆符号化方式で圧縮することにより、より小さなデータ量とすることができる。
【００１８】
これらの非可逆符号化を行った場合、符号化歪が発生することが問題となっている。
そこで、非可逆符号化の符号化歪がどのようなメカニズムで発生するかを説明する。
図１は、ＪＰＥＧ２０００方式などの変換符号化方式の概略を説明する図であり、図１（Ａ）は、符号化処理の概略を示し、図１（Ｂ）は、復号化処理の概略を示す。
図２は、変換符号化方式における量子化処理を説明する図である。なお、図２に示された変換係数Ｔ（ｃ，ｉ，ｊ）及び量子化インデクスＱ（ｃ，ｉ，ｊ）は、変数ｃ，ｉ，ｊの関数である。また、変数ｃは、変換係数の種類を示すインデクスであり、例えば、ウェーブレット変換であれば、1HH成分、1LH成分、1HL成分、2HH成分、2LH成分、2HL成分、・・・、NLL成分のいずれかを示す値である。また、変数ｉ，ｊは、各変換係数の位置を示す変数であり、例えば、ウェーブレット変換であれば、c番目の変換係数の、上からｉ番目、左からｊ番目のデータがＴ（ｃ，ｉ，ｊ）と表される。
【００１９】
図１（Ａ）に示すように、変換符号化方式の符号化処理では、入力画像Ｇに対してウェーブレット変換などの変換処理が施されて、入力画像Ｇの変換係数Ｔが生成され、この変換係数Ｔは、さらに量子化されて、量子化インデクスＱとなる。量子化インデクスＱは、エントロピ符号化(可逆符号化)されて、圧縮符号Ｆとなる。
ここで、量子化インデクスとは、量子化値を識別するための情報である。また、量子化値とは、一定の範囲（量子化区間）にある数値群が縮退する値であり、図２に例示するように、量子化区間「Ａ−２」〜「Ａ２」それぞれを代表する離散的な値（本例では、「−２．５×Ｄ（ｃ）」〜「２．５×Ｄ（ｃ）」）である。
【００２０】
このように生成された符号データ（圧縮符号Ｆ）は、図１（Ｂ）に示すように、エントロピ復号されて、量子化インデクスＱとなる。この量子化インデクスＱは、符号化時の量子化インデクスＱと同じものである。
さらに、量子化インデクスＱは、逆量子化され、変換係数(すなわち、逆量子化値)Ｒとなり、この変換係数Ｒが逆変換され、復号画像Ｈが生成される。
ここで、逆量子化値とは、量子化インデクス又は量子化値に基づいて生成され、復号データの復号化に用いられる値であり、例えば、ＪＰＥＧ２０００方式の変換係数（量子化インデクスに対応付けられた変換係数）である。
【００２１】
以上のプロセスにおいて、符号化歪が発生するのは、量子化を行う時である。元画像の変換係数Ｔと、量子化インデクスＱとの精度を比較すると、一般に変換係数Ｔの精度が量子化インデクスＱよりも高い。そのため、量子化インデクスＱを用いて再現した変換係数Ｒは、もともとの変換係数Ｔとは異なったものとなる。これが符号化歪の原因である。
【００２２】
次に、図２を参照して、量子化及び逆量子化をより詳細に説明する。
量子化は、各変換係数ｃ毎に用意された量子化ステップ幅Ｄ（ｃ）を用いて行う。量子化ステップ幅Ｄは、変換係数の種類ｃの関数である。例えば、ＪＰＥＧ２０００方式であれば、以下の式により、量子化インデクスＱ及び逆量子化値Ｒを算出する。
【００２３】
Q(c,i,j)=sign(T(c,i,j))×floor(|T(c,i,j)|/D(c))
Q(c,i,j)>0である場合に、R(c,i,j)=(Q(c,i,j)+r)×D(c)
Q(c,i,j)<0である場合に、R(c,i,j)=(Q(c,i,j)-r)×D(c)
Q(c,i,j)=0である場合に、R(c,i,j)=0
【００２４】
ここで、sign()は、正負の符号を出力する関数、floorは、小数点以下を０とする関数、｜｜は、絶対値を示す記号である。
また、ｒは、０から１までの範囲にある数値であり、図２では、典型的な値であるr=0.5を用いた場合を例示している。
なお、ＪＰＥＧ２０００方式では下位ビットを符号化しない場合があるが、図２では、最下位ビットまで全て符号化する場合を具体例として説明する。
【００２５】
図２（Ａ）に示すように、ＪＰＥＧ２０００方法の符号化処理において、入力画像Ｇに対して変換処理を施して生成された変換係数Ｔ（量子化前）は、数直線ｘ軸上に分布する。
変換係数Ｔが量子化区間Ａ０に存在している場合には、量子化処理により、量子化インデクスＱは、０となる。同様に、変換係数Ｔが量子化区間Ａｑに存在している場合には、量子化インデクスＱは、ｑとなる。
そして、これを逆量子化する場合には、量子化インデクスＱが０である場合には、逆量子化処理により、逆量子化値Ｒ＝０が生成され、量子化インデクスＱが１である場合には、逆量子化値Ｒ＝１．５×Ｄ（ｃ）が生成される。
このように、逆量子化処理がなされると、量子化インデクスＱに１対１で対応する逆量子化値が生成される。
【００２６】
ここで、問題を単純化するために、量子化インデクスＱがｑとなる量子化区間Ａｑ内のみに関して考察する。
変換係数Ｔは、量子化区間Ａｑ内に存在しているとする。
図２（Ｂ）に例示するように、量子化区間Ａｑは、d1〜d2の範囲であるとする。このとき、元の変換係数Ｔは、d1〜d2の範囲に含まれる。また、この変換係数Ｔの逆量子化値はＲであるとする。
この状況において、復号画像を生成するための変換係数は、逆量子化値Ｒである。しかしながら、原画像の変換係数Ｔは、d1〜d2の範囲のいずれかの値であり、逆量子化値Ｒであるとは限らない。このとき、元の変換係数Ｔと逆量子化値Ｒとの差分が生じる。この差分が符号化歪の原因である。
このように、非可逆符号化方式では、複数のデータ値（それぞれの量子化区間に存在する元データ値）を、１つの量子化値（それぞれの量子化区間に対応する量子化値）に縮退させることにより、非可逆なデータ圧縮を実現しているが、同時に、この量子化により符号化歪が生ずる。
【００２７】
このような符号化歪を小さくするためには、符号化時に圧縮効率を低くするようなパラメータを選択すればよい。
しかしながら、この場合には、符号化効率が低下し、データ量が多くなってしまうという問題点がある。
また、既に符号化されたデータを高画質化しようとする場合には、この圧縮効率を低下させるという方式を採用することはできない。
【００２８】
そこで、本実施形態における復号化装置２は、逆量子化値Ｒの頻度分布を、入力画像の変換係数Ｔの頻度分布にできるだけ近づけることによって、できるだけ入力画像に近い復号画像を生成する。
すなわち、ＪＰＥＧ２０００方式等の標準技術では、逆量子化値の頻度分布が値Rの一点にのみ分布させていることになる。しかしながら、逆量子化値の頻度分布を、原画像の変換係数の頻度分布にできるだけ近づけることにより、よりよい復号化が実現される。
なぜなら、頻度分布が一致している場合に、原画像と復号画像が一致するとは限らないが、原画像と頻度分布が異なる復号画像と、原画像と頻度分布が近い復号画像とでは、頻度分布が近い復号画像のほうが原画像により近いと考えられるからである。実際に、文献（D. Heeger and J. Bergen,  "Pyramid based texture analysis/synthesis," Computer Graphics, pp. 229-238, SIGGRAPH 95, 1995.）には、変換係数の頻度分布を合わせることによって、よく似たテクスチャを持つ画像を合成する手法が述べられている。
本実施形態における復号化装置２は、原画像と頻度分布が近い復号画像を生成することによって、より原画像に近いテクスチャを持つ復号画像を生成する。
【００２９】
例えば、以下に示す３通りの方法を用いて、元の変換係数の頻度分布に近い逆量子化値を生成する。
第１の方法では、復号化装置２は、量子化インデクス（又は、これに１対１で対応する逆量子化値）の頻度分布に基づいて変換係数の頻度分布を推定し、推定された頻度分布に基づいて、量子化インデクスに対応する逆量子化値を補正する。
量子化インデクス（又は、これに１対１で対応する逆量子化値）の頻度分布は、元の変換係数Ｔの頻度分布と近似していると考えられるため、量子化インデクス（又は、これに１対１で対応する逆量子化値）の頻度分布と、量子化インデクスの値に応じて生成された複数の逆量子化値の頻度分布とをできるだけ一致させることにより、より再現性の高い復号データが得られる。
【００３０】
第２の方法では、復号化装置２は、上記と同様に、量子化インデクス（又は、これに１対１で対応する逆量子化値）の頻度分布に基づいて変換係数の頻度分布を推定し、推定された頻度分布に対応する乱数を生成し、生成された乱数を用いて量子化インデクスに対応する逆量子化値を生成する。
この場合も、量子化インデクス（又は、これに１対１で対応する逆量子化値）の頻度分布と、量子化インデクスの値に応じて生成された複数の逆量子化値の頻度分布とをできるだけ一致させることができる。
【００３１】
第３の方法では、復号化装置２は、周囲にある量子化インデクス（又は、これに１対１で対応する逆量子化値）を参照して、処理対象である量子化インデクスに対応する逆量子化値を補正する。
互いに近接する量子化インデクス間では高い相関関係が見られるため、周囲の量子化インデクスを参照して注目量子化インデクスの逆量子化値を補正することにより、より再現性の高い復号データが得られる。
【００３２】
このように、上記３つの方法の少なくとも１つを適用することにより、より再現性の高い復号データを生成することが可能になる。
しかしながら、図２に示した例は、最下位ビットまで全て符号化する場合に相当するが、下位ビットを符号化しない場合もある。下位ビットが符号化されない場合、又は、下位ビットに相当する符号が切り捨てられた場合（以下、これらの場合を「打ち切り」と総称）、実質的な量子化間隔が異なってくる。
【００３３】
図３は、打切り位置が異なる場合の量子化間隔を例示する図であり、図３（Ａ）は、最下位ビットまで存在する場合の量子化間隔を例示し、図３（Ｂ）は、最下位ビットのみを除外した場合の量子化間隔を例示する。
図３に例示するように、ビットの打切り位置が異なると、実質的な量子化間隔が異なる。
このように、下位ビットが打ち切られる場合もあるため、変換係数の頻度分布を推定する場合（上記第１及び第２の方法など）、又は、周囲画素の量子化インデクスを参照する場合（上記第３の方向など）には、量子化インデクスに対応する量子化間隔が異なりうる点に留意する必要がある。
【００３４】
そこで、本実施形態における復号化装置２は、打切り位置に関する情報に基づいて、量子化インデクスを複数のグループに分類し、それぞれのグループ毎に量子化インデクスの頻度分布を生成し、生成された量子化インデクスの頻度分布に基づいて、変換係数の頻度分布を推定する。
【００３５】
［打切り位置に応じた処理］
次に、打切り位置に応じた処理をより具体的に説明する。
本実施形態では、コードブロック毎に処理を独立させる点（要素１）と、打切り位置が異なる頻度分布を合成する点（要素２）と、周囲画素の量子化インデクスを適切に評価して注目画素の予備的な逆量子化値を算出する点（要素３）とが含まれている。なお、これらの要素１〜３は、それぞれ単独で適用されてもよく、また、任意の組合せで適用されてもよい。
【００３６】
まず、要素１について説明する。
ＪＰＥＧ２０００方式の符号データにおいて、同一のコードブロックにおける同一種類の変換係数の量子化間隔が近似している。具体的には、打切り位置の差は、同一のコードブロック内であれば高々１ビットである。
そこで、本実施形態の復号化装置２は、コードブロック毎に処理を独立させる。具体的には、復号化装置２は、コードブロック毎に、量子化インデクスの頻度分布を生成する。また、量子化インデクスに対応する逆量子化値の算出も、コードブロック毎になされてもよい。
このように、コードブロック毎に処理を独立させると、打ち切られた下位ビット数Ｓの種類は、高々２となり、頻度分布の統合処理（後述）などが容易になる。
また、ＪＰＥＧ２０００方式の復号処理は、コードブロック毎に行われるため、メモリ効率、復号化処理速度、実装の容易さの観点で都合がよい。特に、頻度分布（ヒストグラム）をコードブロック毎に作成すればよいため、符号全体のヒストグラムを取る必要がない点がよい。
また、コードブロック毎に統計（頻度分布）を取るため、画像の局所的な性質の変化に追従できる。
【００３７】
なお、本実施形態では、コードブロック内に打切り位置の異なる量子化インデクスが混在する場合（具体的には２種類）には、要素２によって量子化インデクスの頻度分布を統合するが、これに限定されるものではなく、例えば、２種類ある量子化間隔のうち、より大きなほうを採用してもよい。より具体的には、打切りビット数Ｓ１及びＳ２（Ｓ１<Ｓ２）である場合に、量子化インデクス全てをＳ２ビットだけ右シフトして全ての量子化インデクスの量子化間隔を統一し頻度分布を生成する。
【００３８】
次に、要素２について説明する。
量子化インデクスの量子化間隔が異なると、単純に量子化インデクスの出現頻度をカウントして頻度分布を作成することができない。また、上記のように、擬似的に量子化間隔を統一すると、頻度分布の精度が低下する。
そこで、本実施形態における復号化装置２は、量子化インデクスの打切り位置（又は、量子化間隔）に基づいて、量子化インデクスを複数のグループに分類し、分類されたグループ毎に、量子化インデクスの頻度分布を作成し、作成された複数の頻度分布を統合する。
本例では、コードブロック毎に処理を独立させるため、打切りビット数は２種類（Ｓ１及びＳ２とする）となる。そこで、本復号化装置２は、打切りビット数の種類（すなわち、有効ビット数の種類）に基づいて、コードブロックに含まれる量子化インデクスを２つに分類し、打切りビット数Ｓ１に対応するヒストグラムｈ１と、打切りビット数Ｓ２に対応するヒストグラムｈ２とを作成する。次に、復号化装置２は、ヒストグラムｈ１とヒストグラムｈ２とを、より狭い量子化間隔を基準として統合して、統合ヒストグラムｈを生成する。具体的には、復号化装置２は、量子化間隔が大きい方のヒストグラムの各頻度値を、より量子化間隔の小さいヒストグラムの各量子化区間に振り分ける。頻度値の振分けは、振分け先の頻度値の比に応じてなされる。なお、振分け先の頻度値が０である場合には、振分け先の量子化区間の幅に応じた比で振分けがなされる。
【００３９】
次に、要素３について説明する。
上記第３の方法は、注目量子化インデクスに対応する逆量子化値と、この注目量子化インデクスの周囲にある量子化インデクスに対応する逆量子化値との差分を算出する必要がある。
しかしながら、図３に例示したように、打切り位置が異なると、同一の量子化インデクスに対応する逆量子化値が異なってくる。例えば、図３（Ａ）の量子化インデクス「２」に対応する標準的な逆量子化値Ｒは、２．５×Ｄ（Ｃ）である。一方、図３（Ｂ）の量子化インデクス「２」に対応する逆量子化値Ｒは、３．０×Ｄ（ｃ）である。
そこで、本実施形態における復号化装置２は、周囲にある量子化インデクスそのものを参照して、注目量子化インデクスに対応する逆量子化値を算出するのではなく、周囲量子化インデクスに対応する逆量子化値を参照して、注目量子化インデクスに対応する逆量子化値を算出する。
【００４０】
［実施形態］
以下、本発明の実施形態を説明する。
本実施形態では、ＪＰＥＧ２０００方式により符号化された符号データを復号化する場合を具体例として説明する。なお、本実施形態で説明する復号化処理は、概略において、ITU-T勧告T.800に記載されているものと同様であるが、本発明にかかる逆量子化処理を適用する点で異なる。
【００４１】
［ハードウェア構成］
まず、本実施形態における復号化装置２のハードウェア構成を説明する。
図４は、本発明にかかる逆量子化方法が適応される復号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
図４に例示するように、復号化装置２は、ＣＰＵ２０２及びメモリ２０４などを含む制御装置２０、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２６から構成される。
復号化装置２は、例えば、復号化プログラム５（後述）がインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して符号データを取得し、取得された符号データを復号化して出力する。
【００４２】
［復号化プログラム］
図５は、制御装置２０（図４）により実行され、本発明にかかる逆量子化方法を実現する復号化プログラム５の機能構成を例示する図である。
図５に例示するように、復号化プログラム５は、エントロピ復号部４０、逆量子化部５０及び逆変換部６０を有する。
また、逆量子化部５０は、逆量子化値推定部５００、分布推定部５２０、期待値推定部５４０、乱数発生部５６０、補正部５８０及び逆量子化値出力部５９０を含む。
【００４３】
復号化プログラム５において、エントロピ復号部４０は、入力された符号データを、エントロピ復号化して、逆量子化部５０に出力する。
本例のエントロピ復号部４０は、入力された符号データを復号化して、量子化インデクスＱを生成し、生成された量子化インデクスを逆量子化部５０に出力する。
【００４４】
逆量子化部５０は、エントロピ復号部４０から入力された量子化インデスクに基づいて、逆量子化値を生成し、生成された逆量子化値を逆変換部６０に出力する。
本例の逆量子化部５０は、ＪＰＥＧ２０００方式におけるコードブロック毎に、変換係数の分布を推定し、推定された分布に応じて、量子化インデクスに対応する逆量子化値を生成する。
【００４５】
逆変換部６０は、逆量子化部５０から入力された逆量子化値に基づいて、逆変換処理（離散ウェーブレット逆変換処理）を行い、復号画像を生成する。
【００４６】
逆量子化部５０において、逆量子化値推定部５００は、エントロピ復号部４０から入力された量子化インデクスに基づいて、逆量子化値を推定し、推定した逆量子化値を補正部５８０に出力する。すなわち、逆量子化値推定部５００は、１つの量子化インデクスに対して、常に単一の逆量子化値を生成するのではなく、１つの量子化インデクスに対して、互いに異なる複数の逆量子化値を生成しうる。換言すると、逆量子化値推定部５００は、それぞれの量子化インデクスに対して、１つの逆量子化値を生成するが、入力される量子化インデクスの値が同一であったとしても、必ずしも同一の逆量子化値を生成するわけではない。
本例の逆量子化値推定部５００は、注目ブロックの量子化インデクスと、注目ブロックの周囲にあるブロックの量子化インデクス（同じ変換係数種類ｃのものに限る）とに基づいて、注目ブロックの量子化インデクスに対応する逆量子化値Ｒの補正係数αを算出し、算出された補正係数αを補正部５８０に出力する。
なお、以下の説明において、各変換係数種類c及び各量子化インデクスqに対応する補正係数αを、αycqと記述する。また、変換係数種類c、かつ、各量子化インデクスがqとなる信号の数をKとし、それぞれの補正係数をαycq(k)として表す（ただし、k=1,2,...,K）。
【００４７】
分布推定部５２０は、エントロピ復号部４０から入力される複数の量子化インデクス（又は、これらに対応付けられた逆量子化値）に基づいて、変換係数（元データ）の分布を推定し、推定された変換係数の分布を示す分布データを期待値推定部５４０及び乱数発生部５６０に出力する。
本例の分布推定部５２０は、変換係数種類ｃ毎に、量子化インデクス値の頻度分布を算出し、算出された頻度分布に基づいて、変換係数種類ｃ毎の分布データを生成する。
【００４８】
期待値推定部５４０は、分布推定部５２０から入力された分布データに基づいて、逆量子化値の期待値を算出し、算出された期待値と分布データとを補正部５８０に出力する。
より具体的には、期待値推定部５４０は、変換係数種類ｃ毎に生成された分布データに基づいて、元データの確率密度関数の期待値を、量子化区間毎に算出する。
変換係数種類がcであり、かつ、量子化インデクスQ(c,i,j)=qである場合の期待値は、期待値をE(αTcq)とする。すなわち、期待値E(αTcq)は、量子化インデクスに１対１で対応付けられた逆量子化値Ｒと、この量子化インデクスに対応する元の変換係数Ｔとの差分の推定期待値である。
【００４９】
乱数発生部５６０は、分布推定部５２０から入力された分布データに応じて、乱数を生成し、生成された乱数を逆量子化値出力部５９０に出力する。
【００５０】
補正部５８０は、期待値推定部５４０から入力された分布データ又は期待値に応じて、逆量子化値推定部５００から入力された逆量子化値（本例では、逆量子化値の補正係数α）を補正する。
また、補正部５８０は、逆量子化値推定部５００から入力された逆量子化値（本例では、逆量子化値の補正係数α）を、既定の範囲（例えば、逆量子化値の場合に、量子化インデクスに対応する量子化区間）におさまるように補正し、補正された逆量子化値（補正係数α）を逆量子化値出力部５９０に出力する。
本例の補正部５８０は、期待値推定部５４０から入力された期待値に基づいて、分布推定部５２０により算出された量子化インデクスの頻度分布と、逆量子化値推定部５００により算出された逆量子化値の頻度分布とを、変換係数種類ｃ毎、及び、量子化区間毎に略一致するよう、逆量子化値推定部５００から入力された補正係数αを補正し、補正された補正係数αを、さらに、ＪＰＥＧ２０００方式において、Q(c,i,j)>0の時に、0≦r+α≦1を満たす範囲、Q(c,i,j)<0の時に、-1≦-r+α≦0を満たす範囲、Q(c,i,j)=0の時に、-1≦α≦1を満たす範囲に入るように線形補正する。
補正部５８０による線形補正は、例えば、同一の量子化インデクスに対応する補正係数αの中から、最大値αmax及び最小値αminを選択し、選択された最大値αmax及び最小値αminが既定の範囲におさまるように、これらの補正係数α全体を線形変換することにより実現される。
【００５１】
逆量子化値出力部５９０は、補正部５８０から入力された逆量子化値（本例では、逆量子化値の補正係数α）、又は、乱数発生部５６０から入力された乱数を用いて、適用すべき逆量子化値を決定し、決定された逆量子化値を逆変換部６０に出力する。
本例の逆量子化値出力部５９０は、補正部５８０又は乱数発生部５６０から入力された補正係数αと、量子化インデクス（又はこれに対応付けられた逆量子化値）とに基づいて、逆量子化値を算出する。より具体的には、以下の式により、逆量子化値出力部５９０は、適用すべき逆量子化値Ry(c,i,j)を算出する。
Ry(c,i,j)={Q(c,i,j)+α(c,i,j)}×D(c)
【００５２】
すなわち、本例の復号化プログラム５は、乱数発生部５６０により発生させた乱数を逆量子化値そのものとして適用するのではなく、乱数発生部５６０により発生させた乱数を逆量子化値の補正係数αとして適用する。
【００５３】
［逆量子化値推定部］
図６は、逆量子化値推定部５００（図５）をより詳細に説明する図である。
図６に例示するように、逆量子化値推定部５００は、周辺信号抽出部５０２、差分演算部５０４、非相関信号除去部５０６及びフィルタ処理部５０８を含む。
逆量子化値推定部５００において、周辺信号抽出部５０２は、処理対象である量子化インデクスQ(c,i,j)の周囲量子化インデクスQ(c,i+m,j+n)を抽出する（ただし、-M≦m≦M,-N≦n≦N)。なお、ここで抽出された周囲量子化インデクスは、(2M+1)×(2N+1)の行列となる。
【００５４】
差分演算部５０２は、周辺信号抽出部５０２により抽出されたそれぞれの周囲量子化インデクスQ(c,i+m,j+n)に対応する逆量子化値R(c,i+m,j+n)と、処理対象である量子化インデクスQ(c,i,j)に対応する逆量子化値R(c,i,j)との差分を算出する。量子化インデクスによって量子化間隔が異なる場合には、量子化インデクスの差分よりも逆量子化値の差分のほうが適切だからである。
本例の差分演算部５０２は、以下の演算を行って、差分値P(m,n)で構成された(2M+1)×(2N+1)の差分行列を作成する。
R(c,i,j)=(Q(c,i,j)+α×2S（c,i,j))×D(c,i,j)
P(m,n)={R(c,i+m,j+n)-R(c,i,j)}/D(c,i,j)
なお、S(c,i,j)は打切りビット数であり、D(c,i,j)は量子化間隔である。
【００５５】
非相関信号除去部５０４は、既定の閾値THを用いて、処理対象である量子化インデクスQ(c,i,j)との相関が少ない周囲量子化インデクスQ(c,i+m,j+n)を除去する。
より具体的には、非相関信号除去部５０４は、差分演算部５０２により周囲量子化インデクスQ(c,i+m,j+n)それぞれについて算出された差分が、閾値THよりも大きい場合には、相関が少ないものと判定して、この周囲量子化インデクスQ(c,i+m,j+n)を除去する。
本例の非相関信号除去部５０４は、差分演算部５０２により作成された差分行列において、差分値の絶対値|P(m,n)|が閾値THよりも大きい場合に、このP(m,n)=0とする。
閾値THは、例えば、１である。
【００５６】
フィルタ処理部５０８は、周辺信号抽出部５０２により抽出された周囲量子化インデクスQ(c,i+m,j+n)（ただし、非相関信号除去部５０４により除去された周囲量子化インデクスを除く）に基づいて、処理対象である量子化インデクスQ(c,i,j)の補正係数αを算出する。
より具体的には、フィルタ処理部５０８は、差分演算部５０４により算出された差分（非相関信号除去部５０４により除去されたものを除く）に基づいて、補正係数αを算出する。
本例のフィルタ処理部５０８は、(2M+1)×(2N+1)のフィルタカーネルK(m,n)を用意する。このフィルタカーネルKは、２次元の低域通過特性を持つフィルタであることが望ましい。
【００５７】
例えば、閾値TH=1、かつ、フィルタKの係数（中心を除く）が正の値である場合の演算結果を考察すると、正となる周囲量子化インデクスが多いときには、α値は、正の値を取る。また、正となる周囲量子化インデクスが多ければ多いほど、α値が大きな値を取る。負となる周囲量子化インデクスが多い場合も同様にα値が負となる。正負同数の場合には、α値の推定値は０となる。また、周囲量子化インデクスの値が注目量子化インデクスとかけ離れている場合には、α値の推定にその値を用いないことができる。
【００５８】
［分布推定部］
図７は、分布推定部５２０（図５）をより詳細に説明する図である。
図７に例示するように、分布推定部５２０は、ゼロ判定部５２２、非ゼロ変換係数分布推定部５２４及びゼロ変換係数分布推定部５２６を含む。また、非ゼロ変換係数分布推定部５２４は、分布判定部５３０を含む。
分布推定部５２０において、ゼロ判定部５２２は、エントロピ復号部４０から入力された量子化インデクスを、この量子化インデスクに対応する元データの属性（例えば、変換係数の種類）に応じて分類し、それぞれの属性に分類された量子化インデクス群のみで元データの頻度分布が推定可能であるか否か（換言すると、他の属性に分類された量子化インデクス群との相関を利用して頻度分布を推定する必要があるか否か）を判定する。
本例のゼロ判定部５２２は、エントロピ復号部４０から入力される量子化インデクスが、ゼロ変換係数に相当するか非ゼロ変換係数に相当するかを判定し、非ゼロ変換係数に相当すると判定された量子化インデクスを非ゼロ変換係数分布推定部５２４に出力し、ゼロ変換係数に相当すると判定された量子化インデクスについては、非ゼロ変換係数の分布を用いた分布推定処理を行うようゼロ変換係数分布推定部５２６に指示する。
ここで、非ゼロ変換係数とは、ある変換係数種類cの量子化インデクスのいずれかが０ではない変換係数である。また、ゼロ変換係数とは、ある変換係数種類cの全ての量子化インデクスが０である変換係数である。換言すると、ゼロ変換係数ではない変換係数が、非ゼロ変換係数である。
【００５９】
非ゼロ変換係数分布推定部５２４は、ゼロ判定部５２２から入力された量子化インデクスに基づいて、元データ（本例では、変換係数）の頻度分布を推定する。
より具体的には、非ゼロ変換係数分布推定部５２４は、同一の属性を有する量子化インデクス群（本例では、同一の変換係数ｃに対応する複数の量子化インデクス）の頻度分布を有効ビット長（打切り位置）毎に生成し、生成された量子化インデクスの頻度分布に基づいて、量子化インデクスの確率密度関数を作成する。この確率密度関数は、変換係数の確率密度関数と近似するものとして適用される。
【００６０】
本例では、分布判定部５３０が、ゼロ判定部５２２から入力された量子化インデクス（非ゼロ変換係数に対応する量子化インデクス）Q(c,i,j)のヒストグラムhc(q)を、コードブロック、変換係数種類c、及び打切り位置ごとに作成する。
例えば、分布判定部５３０は、量子化インデクスQ(c,i,j)の値がqである場合に、ht(c,q,i,j)=1、上記以外の場合に、ht(c,q,i,j)=0となる関数を定義して、以下の式によりヒストグラムhc(q)を作成する。
【００６１】
【数１】
0004784281.tif 000002
【００６２】
次に、本例の非ゼロ変換係数分布推定部５２４は、分布判定部５３０により作成されたヒストグラムhc(q)をラプラス分布で近似し、このラプラス関数を変換係数Ｔの分布関数とする。
ラプラス分布の式は以下で表すことができる。
【００６３】
【数２】
0004784281.tif 000003
【００６４】
非ゼロ変換係数分布推定部５２４は、上式のσを算出することにより、変換係数Ｔの分布関数を得ることができる。
まず、非ゼロ変換係数分布推定部５２４は、作成されたヒストグラムhc(q)を量子化区間の幅Ｄ（ｃ）及び量子化インデクスの総数で正規化して、確率密度関数fhc(x)に変換する。具体的には、以下の式により、非ゼロ変換係数分布推定部５２４は、ヒストグラムhc(q)を確率密度関数fhc(x)に変換する。
【００６５】
【数３】
0004784281.tif 000004
【００６６】
ただし、(q-0.5)×D(c)<;x≦(q+0.5)×D(c)
次に、非ゼロ変換係数分布推定部５２４は、ヒストグラムhc(q)を近似するラプラス関数を算出する。
なお、乱数発生部５６０は、量子化インデクスが０の場合に、この標準偏差σのラプラス分布の乱数を発生させて、逆量子化値とする。
【００６７】
ゼロ変換係数分布推定部５２６は、ゼロ判定部５２２からの指示に応じて、非ゼロ変換係数分布推定部５２４により推定された他の変換係数（非ゼロ変換係数）の頻度分布に基づいて、ゼロ変換係数の頻度分布を推定する。
すなわち、非ゼロ変換係数分布推定部５２４は、ヒストグラムが意味のある形状を持つ場合にのみ分布の推定が可能であるが、全ての頻度値が０となるヒストグラムが作成される場合には、分布の形状を推定することができない。
そこで、ゼロ変換係数分布推定部５２６は、既に求めた他の分布データ（本例では、σ値）を用いて、変換係数種類cの全ての量子化インデクスが０となる場合のラプラス分布の形状を推定する。
【００６８】
具体的には、ゼロ変換係数分布推定部５２６は、非ゼロ変換係数分布推定部５２４により算出された標準偏差σ(x,y)を、２次元の指数関数で近似する。すなわち、σ(x,y)=Cexp(-ax-by)とする。
ゼロ変換係数分布推定部５２６は、σ(x,y)=Cexp(-ax-by)におけるパラメータC,a,bを算出して、近似関数σ(x,y)を決定し、決定された近似関数σ(x,y)を用いて、ゼロ変換係数に相当するσ値を算出する。
【００６９】
図８は、分布判定部５３０（図７）をより詳細に説明する図である。
図８に例示するように、分布判定部５３０は、有効桁判定部５３２、頻度情報生成部５３４、及び頻度情報統合部５３６を含む。
分布判定部５３０において、有効桁判定部５３２は、量子化インデクスを示すビット列の有効ビット長を判定し、判定された有効ビット長に基づいて、入力される量子化インデクスを分類する。
本例では、コードブロック毎に量子化インデクスが入力されるため、有効桁判定部５３２は、２種類の有効ビット長（打切り位置）のうち、いずれの量子化インデクスであるかを判定し、判定結果に基づいて、コードブロックに含まれる量子化インデクスを、打切りビット数Ｓ１のグループと、打切りビット数Ｓ２のグループとに分類する。
【００７０】
頻度情報生成部５３４は、有効桁判定部５３２により分類された量子化インデクスに基づいて、分類毎に、量子化インデクス値の頻度分布情報を生成する。
本例の頻度情報生成部５３４は、打切りビット数Ｓ１のグループと、打切りビット数Ｓ２のグループとについて、それぞれヒストグラム（頻度分布情報）を作成する。
【００７１】
頻度情報統合部５３６は、頻度情報生成部５３４により生成された頻度分布情報を統合する。
本例の頻度情報統合部５３６は、打切りビット数Ｓ１のヒストグラムと、打切りビット数Ｓ２のヒストグラムとを、最も細かい量子化間隔に合わせるように統合する。なお、以下の説明において、Ｓ１がＳ２よりも小さい場合（すなわち、Ｓ１のグループの量子化間隔が、Ｓ２のグループよりも狭い場合）を具体例として説明する。
【００７２】
図９は、頻度情報統合部５３６によるヒストグラムの統合方法を例示する図である。
図９（Ａ）に例示するように、打切りビット数Ｓ１のヒストグラムｈ１が、打切りビット数Ｓ２のヒストグラムｈ２よりも狭い量子化間隔を有する場合には、頻度情報統合部５３６は、より広い量子化間隔を有するＳ２の頻度値ｈ２を分割して、最も量子化間隔が狭いＳ１のヒストグラムｈ１に分配する。以下、このように分配される頻度値を分配値とよぶ。
本例の頻度情報統合部５３６は、図９（Ｂ）に例示するように、分配先の頻度値（本例では、Ｓ１の各量子化区間の頻度値）に比例するように、Ｓ２の頻度値ｈ２を分割して、各分配値を決定する。
なお、分配先の頻度値が全て０である場合には、頻度情報統合部５３６は、分配先の量子化区間の幅（量子化間隔）に比例するように、分配元（Ｓ２）の頻度値ｈ２を分割して、分配値を算出する。
そして、頻度情報統合部５３６は、図９（Ｃ）に例示するように、各分配値を、分配先のヒストグラムｈ１に加算して、統合されたヒストグラムｈを作成する。
【００７３】
［補正部］
図１０は、補正部５８０（図５）をより詳細に説明する図である。
図１０に例示するように、補正部５８０は、分布情報特定部５８２、期待値シフト部５８４及び期待値補正部５８６を含む。
補正部５８０において、分布情報特定部５８２は、逆量子化値推定部５００から入力された逆量子化値（本例では、補正係数α）の平均値、最小値及び最大値を、変換係数種類毎及び量子化インデクス値毎に算出し、算出された平均値、最小値及び最大値を、入力された逆量子化値と共に期待値シフト部５８４に出力する。
以下、分布情報特定部５８２により算出された平均値、最小値、及び、最大値は、平均値αycqMean、最大値αycqMin、及び、最小値αycqMaxとして表す。これらの値は、変換係数種類ｃ及び量子化インデクス値ｑのそれぞれの組合せついて算出され、以下に説明する期待値シフト部５８４及び期待値補正部５８６の処理も、変換係数種類ｃ及び量子化インデクス値ｑの組合せそれぞれについてなされる。
【００７４】
期待値シフト部５８４は、分布情報特定部５８２から入力された補正係数αycq(k)及び補正係数の平均値αycqMeanと、期待値推定部５４０から入力された期待値E(αTcq)とを用いて、以下の演算を行って、シフト補正後の補正係数αxcq1(k)を算出する。
αxcq1(k)=αycq(k)+E(αTcq)-αycqMean
【００７５】
上記の処理は、k=1,2,...,Kに対して行われる。
また、期待値シフト部５８４は、同様に、最大値及び最小値もシフトする。
すなわち、期待値シフト部５８４は、以下の演算を行って、シフト補正後の最小値αycqMin1及び最大値αycqMax1を算出する。
αycqMin1=αxcqMin + E(αTcq) -αycqMean
αycqMax1=αxcqMax + E(αTcq) -αycqMean
【００７６】
期待値補正部５８６は、シフト補正後の補正係数αxcq1(k)が全て既定の範囲におさまるように範囲補正を行う。ここで、範囲補正とは、数値群を一定の範囲に収める補正をいう。
具体的には、期待値補正部５８６は、シフト補正後の補正係数αxcq1の平均値を変化させずに、これらの補正係数の範囲を一定の範囲（αmin〜αmax）とする。
【００７７】
以上の範囲補正により、期待値補正部５８６は、範囲補正後の補正係数αxcq2(k)を得る。
【００７８】
図１１は、期待値シフト部５８４及び期待値補正部５８６による補正を模式的に説明する図である。
図１１（Ａ）に示すように、期待値シフト部５８４は、変換係数Ｔの推定期待値（ａ１）と、逆量子化値の期待値（ａ２）とが一致するように、逆量子化値の分布をシフトする（ａ３）。
【００７９】
また、図１１（Ｂ）に示すように、逆量子化値（本例では、補正係数α）の分布が、量子化区間ｄ１〜ｄ２（本例では、αの範囲αmin〜αmax)から外れる場合（ｂ１）に、期待値補正部５８６は、逆量子化値（補正係数α）の期待値を動かさないように、分布を期待値に向かって小さくする（ｂ２）。
【００８０】
なお、本例では、期待値シフト部５８４及び期待値補正部５８６が別々に補正処理を行っているが、これらの補正処理を１つの補正処理に統合してもよい。
【００８１】
［全体動作］
次に、復号化装置２（復号化プログラム５）の全体動作を説明する。
図１２は、復号化プログラム５（図５）による復号化処理（Ｓ１０）のフローチャートである。なお、本例では、画像データの符号データ（ＪＰＥＧ２０００方式）が入力される場合を具体例として説明する。
図１２に示すように、ステップ１００（Ｓ１００）において、エントロピ復号部４０（図５）は、入力された符号データを復号化して、量子化インデクスを生成し、生成された各ブロックの量子化インデクスを逆量子化部５０に出力する。
【００８２】
ステップ１０５（Ｓ１０５）において、逆量子化部５０は、エントロピ復号部４０から入力された量子化インデクスをコードブロック毎に分割し、処理対象とすべき注目コードブロックを設定する。
逆量子化部５０は、設定された注目コードブロックについてＳ１１０〜Ｓ１５５の処理を行う。
【００８３】
ステップ１１０（Ｓ１１０）において、分布推定部５２０は、注目コードブロックに含まれる複数の量子化インデクスに基づいて、変換係数Ｔの分布を、変換係数種類及び打切りビット位置毎に推定する。
具体的には、有効桁判定部５３２は、注目コードブロックに含まれる量子化インデクスを、打切りビット数Ｓ１の量子化インデクスと、打切りビット数Ｓ２の量子化インデクスとに分類する。
頻度情報生成部５３４は、打切りビット数Ｓ１の量子化インデクスと、打切りビット数Ｓ２の量子化インデクスとについて、それぞれヒストグラムを作成する。
頻度情報統合部５３８は、作成された２つのヒストグラムを、図９に例示するように統合してヒストグラムｈを作成する。
非ゼロ変換係数分布推定部５２４は、分布推定部５２０により作成されたヒストグラムｈを近似するラプラス関数Ｌ（すなわち、σ値）を算出する。
また、ゼロ変換係数分布推定部５２６は、非ゼロ変換係数分布推定部５２４により算出された頻度分布を指数関数で近似し、この指数関数を用いて、ゼロ変換係数の頻度分布（すなわち、σ値）を推定する。
【００８４】
ステップ１１５（Ｓ１１５）において、逆量子化部５０（図５）は、注目コードブロックに含まれる量子化インデクスを順に、注目量子化インデクスに設定する。
逆量子化値推定部５００（図５）は、注目量子化インデクスQ(c,i,j)の周囲量子化インデクスQ(c,i+m,j+n)を抽出する（本例では、-1≦m≦1,-1≦n≦1）。なお、抽出される周囲量子化インデクスは、注目ブロックを中心とした３×３個のブロックにおける、同一の変換係数種類ｃに対応する量子化インデクス値であり、３×３の行列となる。
【００８５】
ステップ１２０（Ｓ１２０）において、逆量子化値推定部５００は、抽出された周囲量子化インデクスと、注目量子化インデクスとを用いて、差分行列Ｐを作成する。
【００８６】
次に、逆量子化値推定部５００は、差分行列Ｐに含まれる各差分値の絶対値|P(m,n)|と、閾値TH（例えば、１）とを比較して、閾値THよりも大きな差分値P(m,n)を０にする（閾値処理）。すなわち、逆量子化値推定部５００は、注目量子化インデクス値との差分が閾値よりも大きい周囲量子化インデクス値を非相関信号として除去する。
【００８７】
ステップ１２５（Ｓ１２５）において、逆量子化部５０（図５）は、注目量子化インデクスについて、逆量子化値の推定が可能であるか否かを判定する。
具体的には、逆量子化部５０は、注目量子化インデクスと、閾値処理が施された差分行列Ｐの全成分が０である場合（例えば、全ての差分値Ｐが非相関信号として除去された場合など）に、逆量子化値の推定が不可能であると判定し、これ以外の場合に、逆量子化値の推定が可能であると判定する。
【００８８】
逆量子化部５０は、逆量子化値の推定（本例では、補正係数αの推定）が可能であると判定された場合に、Ｓ１３０の処理に移行し、上記推定が不可能であると判定された場合に、Ｓ１３５の処理に移行する。
【００８９】
ステップ１３０（Ｓ１３０）において、逆量子化値推定部５００は、低域通過特性を有する３×３のフィルタカーネルK(m,n)を用いて、閾値処理がなされた差分行列Ｐに対してコンボリューション演算を行い、補正係数αycqを算出する。したがって、注目量子化インデクスの値が同一であっても、その周囲に存在する周囲量子化インデスクが異なれば、算出される補正係数αycqは、互いに異なった値をとる。
【００９０】
ステップ１３５（Ｓ１３５）において、乱数発生部５６０は、注目量子化インデクスについて、分布推定部５２０から入力された分布データに応じた乱数を生成し、生成された乱数を補正係数αとして逆量子化値出力部５９０に出力する。
具体的には、乱数発生部５６０は、非ゼロ変換係数分布推定部５２４及びゼロ変換係数分布推定部５２６により推定された分布のうち、注目量子化インデクスに対応する分布を選択し、選択された分布に合致した乱数を発生させて、この乱数を補正係数αとして逆量子化値出力部５９０に出力する。
【００９１】
ステップ１４０（Ｓ１４０）において、逆量子化部５０は、注目コードブロックに含まれる全ての量子化インデクスについて、補正係数αが生成されたか否かを判定し、全ての量子化インデクスについて補正係数αが生成された場合に、Ｓ１４５の処理に移行し、これ以外の場合に、Ｓ１１５の処理に戻って、次の量子化インデクスを注目量子化インデクスとして処理する。
【００９２】
ステップ１４５（Ｓ１４５）において、期待値推定部５４０は、分布推定部５２０から入力された分布データに基づいて、変換係数種類及び量子化インデクスの組合せ毎に、確率密度関数の期待値E(αTcq)を算出し、算出された期待値E(αTcq)を補正部５８０に出力する。
【００９３】
ステップ１５０（Ｓ１５０）において、補正部５８０は、逆量子化値推定部５００により算出された補正係数αを、変換係数種類毎及び量子化インデクス毎に分類し、分類された補正係数αの最小値、最大値及び平均値を算出する。
補正部５８０は、次に、期待値推定部５４０から入力された期待値E(αTcq)と、算出された平均値とを、変換係数種類と量子化インデクスとの組合せ毎に比較して、これらが一致するように、変換係数種類及び量子化インデクスの組合せで分類された補正係数αycq群をシフトする（シフト補正）。
さらに、補正部５８０は、シフト補正がなされた補正係数α群が既定の範囲におさまっているか否かを判定し、おさまっていない場合に、補正係数αycq群の平均値を変更せずに、補正係数αycq群の範囲を既定の範囲におさめる範囲補正を行う。
【００９４】
ステップ１５５（Ｓ１５５）において、逆量子化値出力部５９０（図５）は、注目量子化インデクスＱと、補正部５８０から入力された補正係数α又は乱数発生部５６０から入力された補正係数αとに基づいて、適用すべき逆量子化値Ｒｙを算出し、算出された逆量子化値Ｒｙを逆変換部６０に出力する。
具体的には、本例の逆量子化値出力部５９０は、以下の演算を行って逆量子化値Ｒｙを算出する。
Ry(c,i,j)={Q(c,i,j)+α(c,i,j)}×D(c)
【００９５】
ステップ１６０（Ｓ１６０）において、逆量子化部５０は、符号データに含まれる全てのコードブロックについて、逆量子化値が算出されたか否かを判定し、全てのコードブロックについて逆量子化値が算出された場合に、Ｓ１６５の処理に移行し、これ以外の場合に、Ｓ１０５の処理に戻って、次のコードブロックを注目コードブロックに設定する。
【００９６】
ステップ１６５（Ｓ１６５）において、逆変換部６０（図５）は、逆量子化部５０から入力された逆量子化値（近似的な変換係数）を用いて、逆変換処理（本例では逆ウェーブレット変換）を行って、復号画像Ｈを生成する。
【００９７】
以上説明したように、本実施形態における復号化装置２は、量子化インデクスに基づいて、変換係数の分布を推定し、推定された分布に合致した乱数を発生させて、この乱数に基づいて逆量子化値を生成する。
これにより、逆量子化値の頻度分布が、変換係数の頻度分布とより近くなるため、より再現性の高い復号画像が期待できる。
【００９８】
［変形例１］
上記実施形態では、量子化間隔が広い方の量子化区間の境界が他方の量子化区間の境界と一致する場合を具体例として説明したが、図１３（Ａ）に例示するように、一致しない場合もある。
そこで、第１の変形例では、量子化区間の境界が一致しない場合の頻度値の分配方法を説明する。
本変形例の頻度情報統合部５３６は、図１３（Ａ）に例示するように量子化区間の境界が一致しない場合に、量子化区間の重なり度合いに応じて、頻度値（ヒストグラムｈ２）を分配する。
具体的には、頻度情報統合部５３６は、量子化区間の重なり率ｒ（例えば、ｒ（ｍ）＝（量子化区間Ｄ１と量子化区間Ｄ２との重なり合う区間長）／（量子化区間Ｄ１の区間長）、ｒ（ｍ＋１）＝１）に応じて、図１３（Ｂ）に例示する式によって、重なりあった領域（本図ではＤ２）における統合後のヒストグラムを作成する。
【００９９】
［変形例２］
上記実施形態では、量子化インデクスの有効ビット長（打切り位置）毎にヒストグラムが作成され、これらのヒストグラムが統合されているが、これに限定されるものではなく、第２の変形例における頻度情報統合部５３６（分布情報選択手段）は、量子化インデクスの有効ビット長（打切り位置）毎に作成された複数のヒストグラム（頻度分布情報）のうち、処理対象となる量子化インデクスの有効ビット長に対応するヒストグラムを選択して適用する。
【０１００】
［変形例３］
上記実施形態では、逆量子化値が量子化間隔によって異なるため、逆量子化値推定部５００は、周囲の量子化インデクスに対応する逆量子化値を算出してから、算出された周囲の逆量子化値を用いて、注目量子化インデクスに対応する逆量子化値を算出している、そのため、演算負荷が大きくなる。
そこで、第３の変形例における逆量子化値推定部５００は、量子化間隔を最も広いものに揃えて、周囲の量子化インデクスそのものを用いて、注目量子化インデクスに対応する逆量子化値（又は、補正係数α）を算出する。
具体的には、逆量子化値推定部５００は、打ち切られたビット数のうち、最大のビット数だけ、コードブロックに含まれる全量子化インデクスを右にビットシフトして、コードブロックに含まれる量子化インデクスに対応する量子化間隔を統一する。
次に、逆量子化値推定部５００は、以下の演算を行って、差分値P(m,n)で構成された(2M+1)×(2N+1)の差分行列を作成する。
P(m,n)=Q(c,i+m,j+n)-Q(c,i,j)
そして、逆量子化値推定部５００は、非相関信号除去部５０４による非相関信号の除去等を行った後に、フィルタカーネルkを用いて、注目量子化インデクスQ(c,i,j)の補正係数αを算出する。
このように、第３の変形例では、周囲量子化インデクスに対応する逆量子化値を算出する必要がないため、高速な処理が可能になる。
【０１０１】
［その他の変形例］
また、上記実施形態では、コードブロック毎に逆量子化処理を独立させているため、量子化インデクスの有効ビット数は高々２種類であったが、３種類以上の有効ビット数が存在する場合にも同様にヒストグラムの統合などを行うことができる。この場合にも、上記実施形態と同様に、いずれかの量子化間隔を基準として、この基準となるヒストグラムに対して、他のヒストグラムの頻度値を分配することにより、ヒストグラムの統合を行う。  また、上記実施形態では、複数種類の有効ビット数が存在する場合には、最も量子化間隔の狭いヒストグラムを基準としているが、最も量子化間隔の広いヒストグラムを基準としてもよい。この場合には、最大の打切りビット数だけ、量子化インデクスを右ビットシフトすることにより、量子化間隔を統一することができるため、ヒストグラムの統合が容易になる。
【図面の簡単な説明】
【０１０２】
【図１】ＪＰＥＧ２０００方式などの変換符号化方式の概略を説明する図である。
【図２】変換符号化方式における量子化処理を説明する図である。
【図３】打切り位置が異なる場合の量子化間隔を例示する図であり、（Ａ）は、最下位ビットまで存在する場合の量子化間隔を例示し、（Ｂ）は、最下位ビットのみを除外した場合の量子化間隔を例示する。
【図４】本発明にかかる逆量子化方法が適応される復号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
【図５】制御装置２０（図４）により実行され、本発明にかかる逆量子化方法を実現する復号化プログラム５の機能構成を例示する図である。
【図６】逆量子化値推定部５００（図５）をより詳細に説明する図である。
【図７】分布推定部５２０（図５）をより詳細に説明する図である。
【図８】分布判定部５３０（図７）をより詳細に説明する図である。
【図９】頻度情報統合部５３６によるヒストグラムの統合方法を例示する図である。
【図１０】補正部５８０（図５）をより詳細に説明する図である。
【図１１】期待値シフト部５８４及び期待値補正部５８６による補正を模式的に説明する図である。
【図１２】復号化プログラム５（図５）による復号化処理（Ｓ１０）のフローチャートである。
【図１３】量子化区間の境界が一致しない場合の頻度値分配方法を説明する図である。
【符号の説明】
【０１０３】
２・・・復号化装置
５・・・復号化プログラム
４０・・・エントロピ復号部
５０・・・逆量子化部
５００・・・逆量子化値推定部
５２０・・・分布推定部
５２２・・・ゼロ判定部
５２４・・・非ゼロ変換係数分布推定部
５２６・・・ゼロ変換係数分布推定部
５３０・・・分布判定部
５３２・・・有効桁判定部
５３４・・・頻度情報生成部
５３６・・・頻度情報統合部
５４０・・・期待値推定部
５６０・・・乱数発生部
５８０・・・補正部
５９０・・・逆量子化値出力部
６０・・・逆変換部
【図１】
0004784281.tif 000005
【図２】
0004784281.tif 000006
【図３】
0004784281.tif 000007
【図４】
0004784281.tif 000008
【図５】
0004784281.tif 000009
【図６】
0004784281.tif 000010
【図７】
0004784281.tif 000011
【図８】
0004784281.tif 000012
【図９】
0004784281.tif 000013
【図１０】
0004784281.tif 000014
【図１１】
0004784281.tif 000015
【図１２】
0004784281.tif 000016
【図１３】
0004784281.tif 000017