(57)【要約】  【課題】  より適切な復号化処理を行う復号化装置を提供する。  【解決手段】  復号化装置２は、逆量子化値Ｒの頻度分布を、元データの変換係数Ｔの頻度分布にできるだけ近づけることによって、できるだけ元データに近い復号データを生成する。例えば、ＪＰＥＧ方式あるいはＪＰＥＧ２０００方式等の標準技術では、逆量子化値の頻度分布が値Ｒの一点にのみ分布させていることになる。しかしながら、本復号化装置２は、量子化インデクス値の頻度分布に基づいて、元の変換係数の頻度分布を推定し、推定された頻度分布に応じた乱数を発生させ、発生させた乱数を用いて逆量子化値を算出する。【選択図】図６
2006270375.tif 000002
【特許請求の範囲】
【請求項１】
それぞれの量子化インデクスに対応する元データの分布に応じて、乱数を生成する乱数生成手段と、
前記乱数生成手段により生成される乱数に基づいて、復号データを生成させる復号化手段と
を有する復号化装置。
【請求項２】
符号データに含まれる量子化インデクスの頻度分布を示す分布情報を生成する分布生成手段
をさらに有し、
前記乱数生成手段は、前記分布生成手段により生成された分布情報を、前記元データの分布情報として適用する
請求項１に記載の復号化装置。
【請求項３】
前記復号化手段は、前記乱数生成手段により生成される乱数に基づいて、逆量子化値を生成し、生成された逆量子化値を用いて復号データを生成する
請求項１に記載の復号化装置。
【請求項４】
前記乱数発生手段は、既定の範囲内で、乱数を発生させる
請求項１に記載の復号化装置。
【請求項５】
乱数を用いずに、それぞれの量子化インデクスに対応する逆量子化値を生成する逆量子化値生成手段
をさらに有し、
前記復号化手段は、前記逆量子化値生成手段により生成される逆量子化値、又は、前記乱数生成手段により生成される乱数を適用して、復号データを生成する
請求項１に記載の復号化装置。
【請求項６】
前記復号化手段は、処理対象となる注目量子化インデクスの値が０である場合にのみ、前記乱数生成手段により生成される乱数を適用する
請求項５に記載の復号化装置。
【請求項７】
前記逆量子化値生成手段は、処理対象となる注目量子化インデクスの値と、この注目量子化インデクスと既定の関係にある他の量子化インデクスの値とを用いて、この注目量子化インデクスに対応する逆量子化値を生成する
請求項５又は６に記載の復号化装置。
【請求項８】
前記復号化手段は、前記注目量子化インデクスの値と、前記他の量子化インデクスの値との差分値がいずれも０である場合に、前記乱数生成手段により生成される乱数を適用し、前記差分値のいずれかが０以外の値である場合に、前記逆量子化値生成手段により生成される逆量子化値を適用する
請求項７に記載の復号化装置。
【請求項９】
前記分布生成手段は、前記量子化インデクスの分散又は標準偏差を、前記分布情報として生成し、
前記乱数生成手段は、前記分布生成手段により生成された分散又は標準偏差に対応するラプラス分布に応じて、乱数を発生させる
請求項２に記載の復号化装置。
【請求項１０】
前記分布生成手段は、量子化インデクス値に対応する各量子化区間に関する、量子化インデクス値のヒストグラムとの面積差の総和が最小となるようなラプラス分布の分散又は標準偏差を算出する
請求項９に記載の復号化装置。
【請求項１１】
前記乱数発生手段は、それぞれの量子化インデクスに対応する量子化区間の幅に応じた範囲内で、乱数を発生させる
請求項４に記載の復号化装置。
【請求項１２】
量子化インデクスに対応する変換係数の標準偏差を取得する標準偏差取得手段と、
前記標準偏差取得手段により取得された標準偏差に対して、既定値を乗じる乗算手段と、
乱数を発生させる上限値を取得する上限値取得手段と、
前記乗算手段により既定値が乗じられた標準偏差と、前記上限値取得手段により取得された上限値とのうち、小さい方の値を上限として、一様に乱数を発生させる乱数発生手段と
を有する復号化装置。
【請求項１３】
量子化インデクスの出現頻度を計測する頻度計測手段と、
前記頻度計測手段により計測された出現頻度に基づいて、正規化されたヒストグラムを生成するヒストグラム正規化手段と、
量子化インデクスの頻度分布を加算する加算範囲を決定する加算範囲決定手段と、
前記ヒストグラム正規化手段により生成されたヒストグラムと、前記加算範囲決定手段により決定された加算範囲とに基づいて、標準偏差又は分散を決定する分布決定手段と
を有する復号化装置。
【請求項１４】
量子化インデクスの標準偏差又は分散を算出する第１の算出手段と、
既定の範囲における量子化インデクスの頻度値の合算値と、この範囲に相当するラプラス分布関数の積分値とが一致する場合のラプラス分布の標準偏差又は分散を算出する第２の算出手段と、
前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散との少なくとも一方を用いて、量子化インデクスに対応する元データの分布を推定する分布推定手段と
を有する復号化装置。
【請求項１５】
前記分布推定手段は、前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散との幾何平均を算出し、算出された幾何平均値を用いて、元データの分布を推定する
請求項１４に記載の復号化装置。
【請求項１６】
前記分布推定手段は、量子化インデクスの最大値に基づいて、前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散とのうち、いずれか一方を選択して適用する
請求項１４に記載の復号化装置。
【請求項１７】
前記分布推定手段は、前記第２の算出手段により算出された標準偏差と、量子化区間の幅との比に基づいて、前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散とのうち、いずれか一方を選択して適用する
請求項１４に記載の復号化装置。
【請求項１８】
それぞれの量子化インデクスに対応する元データの分布に応じて、乱数を生成し、
生成された乱数に基づいて、逆量子化値を生成する
逆量子化方法。
【請求項１９】
それぞれの量子化インデクスの頻度値を加算し、
ラプラス分布の最大頻度位置を基準として右側の積分範囲と左側の積分範囲とが等しくなるように、ラプラス分布関数を積分した場合の積分値と、頻度値の加算値とが一致するように、ラプラス分布の分散又は標準偏差を算出する
分布決定方法。
【請求項２０】
量子化インデクスの頻度分布における最大頻度値を基準として右側の加算範囲と左側の加算範囲とが等しくなるように、それぞれの量子化インデクスの頻度値を加算する
請求項１９に記載の分布決定方法。
【請求項２１】
量子化インデクスの絶対値の最大値に基づいて、前記頻度値を加算する範囲を決定する
請求項１９に記載の分布決定方法。
【請求項２２】
量子化インデクスの絶対値の最大値を既定の一次関数に代入し、
この一次関数により求められた数値に対して丸め処理を施して、整数値を算出し、
算出された整数値を、前記頻度値を加算する範囲とする
請求項２１に記載の分布決定方法。
【請求項２３】
それぞれの量子化インデクスに対応する元データの分布に応じて、乱数を生成するステップと、
生成された乱数に基づいて、復号データを生成させるステップと
をコンピュータに実行させるプログラム。
【請求項２４】
それぞれの量子化インデクスの頻度値を加算するステップと、
ラプラス分布の最大頻度位置を基準として右側の積分範囲と左側の積分範囲とが等しくなるようにラプラス分布関数を積分した場合の積分値と、頻度値の加算値とが一致するように、ラプラス分布の分散又は標準偏差を算出するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化処理により生成された符号データを復号化する復号化装置に関する。特に、本発明は、データの量子化を伴う符号化処理により生成された符号データを、逆量子化を行うことにより復号化する復号化装置に関する。
【背景技術】
【０００２】
例えば、特許文献１は、ＤＣＴのブロック境界にのみ低域通過フィルタをかける方式を開示する。
また、特許文献２は、画像内のエッジの有無を判別し、判別結果に応じて、適用すべきフィルタを選択する方式を開示する。
また、特許文献３は、歪が目立ち易い領域であると判断した場合に、ＤＣＴ係数に雑音を付加する方式を開示する。
また、特許文献４は、量子化インデクスの頻度分布から原画像の変換係数の確率密度関数を推定することによって、圧縮符号化に夜画像品質の劣化を推定する方法を開示する。
また、非特許文献１は、ＪＰＥＧ標準を開示する。
また、非特許文献２は、ＪＰＥＧ２０００標準を開示する。
また、非特許文献３は、変換係数の頻度分布を合わせることによって、よく似たテクスチャを持つ画像を合成する手法を開示する。
また、非特許文献４は、確率密度関数に合致するような乱数を発生させる手法を開示する。
【特許文献１】特開平５−１４７３５号公報
【特許文献２】特開平５−３１６３６１号公報
【特許文献３】特開平７−３３６６８４号公報
【特許文献４】特開２００４−８０７４１号公報
【非特許文献１】ＩＴＵ−Ｔ勧告  Ｔ．８１
【非特許文献２】ＩＴＵ−Ｔ勧告  Ｔ．８００
【非特許文献３】D. Heeger and J. Bergen,  "Pyramid based texture analysis/synthesis," Computer Graphics, pp. 229-238, SIGGRAPH 95, 1995.
【非特許文献４】脇本和昌著，「乱数の知識」，森北出版株式会社，pp.61-64
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、符号データをより適切に復号化する復号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［復号化装置］
上記目的を達成するために、本発明にかかる復号化装置は、それぞれの量子化インデクスに対応する元データの分布に応じて、乱数を生成する乱数生成手段と、前記乱数生成手段により生成される乱数に基づいて、復号データを生成させる復号化手段とを有する。
【０００５】
好適には、符号データに含まれる量子化インデクスの頻度分布を示す分布情報を生成する分布生成手段をさらに有し、前記乱数生成手段は、前記分布生成手段により生成された分布情報を、前記元データの分布情報として適用する。
【０００６】
好適には、前記復号化手段は、前記乱数生成手段により生成される乱数に基づいて、逆量子化値を生成し、生成された逆量子化値を用いて復号データを生成する。
【０００７】
好適には、前記乱数発生手段は、既定の範囲内で、乱数を発生させる。
【０００８】
好適には、乱数を用いずに、それぞれの量子化インデクスに対応する逆量子化値を生成する逆量子化値生成手段をさらに有し、前記復号化手段は、前記逆量子化値生成手段により生成される逆量子化値、又は、前記乱数生成手段により生成される乱数を適用して、復号データを生成する。
【０００９】
好適には、前記復号化手段は、処理対象となる注目量子化インデクスの値が０である場合にのみ、前記乱数生成手段により生成される乱数を適用する。
【００１０】
好適には、前記逆量子化値生成手段は、処理対象となる注目量子化インデクスの値と、この注目量子化インデクスと既定の関係にある他の量子化インデクスの値とを用いて、この注目量子化インデクスに対応する逆量子化値を生成する。
【００１１】
好適には、前記復号化手段は、前記注目量子化インデクスの値と、前記他の量子化インデクスの値との差分値がいずれも０である場合に、前記乱数生成手段により生成される乱数を適用し、前記差分値のいずれかが０以外の値である場合に、前記逆量子化値生成手段により生成される逆量子化値を適用する。
【００１２】
好適には、前記分布生成手段は、前記量子化インデクスの分散又は標準偏差を、前記分布情報として生成し、前記乱数生成手段は、前記分布生成手段により生成された分散又は標準偏差に対応するラプラス分布に応じて、乱数を発生させる。
【００１３】
好適には、前記分布生成手段は、量子化インデクス値に対応する各量子化区間に関する、量子化インデクス値のヒストグラムとの面積差の総和が最小となるようなラプラス分布の分散又は標準偏差を算出する。
【００１４】
好適には、前記乱数発生手段は、それぞれの量子化インデクスに対応する量子化区間の幅に応じた範囲内で、乱数を発生させる。
【００１５】
また、本発明にかかる復号化装置は、量子化インデクスに対応する変換係数の標準偏差を取得する標準偏差取得手段と、前記標準偏差取得手段により取得された標準偏差に対して、既定値を乗じる乗算手段と、乱数を発生させる上限値を取得する上限値取得手段と、  前記乗算手段により既定値が乗じられた標準偏差と、前記上限値取得手段により取得された上限値とのうち、小さい方の値を上限として、一様に乱数を発生させる乱数発生手段と  を有する。
【００１６】
また、本発明にかかる復号化装置は、量子化インデクスの出現頻度を計測する頻度計測手段と、前記頻度計測手段により計測された出現頻度に基づいて、正規化されたヒストグラムを生成するヒストグラム正規化手段と、量子化インデクスの頻度分布を加算する加算範囲を決定する加算範囲決定手段と、前記ヒストグラム正規化手段により生成されたヒストグラムと、前記加算範囲決定手段により決定された加算範囲とに基づいて、標準偏差又は分散を決定する分布決定手段とを有する。
【００１７】
また、本発明にかかる復号化装置は、量子化インデクスの標準偏差又は分散を算出する第１の算出手段と、既定の範囲における量子化インデクスの頻度値の合算値と、この範囲に相当するラプラス分布関数の積分値とが一致する場合のラプラス分布の標準偏差又は分散を算出する第２の算出手段と、前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散との少なくとも一方を用いて、量子化インデクスに対応する元データの分布を推定する分布推定手段とを有する。
【００１８】
好適には、前記分布推定手段は、前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散との幾何平均を算出し、算出された幾何平均値を用いて、元データの分布を推定する。
【００１９】
好適には、前記分布推定手段は、量子化インデクスの最大値に基づいて、前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散とのうち、いずれか一方を選択して適用する。
【００２０】
好適には、前記分布推定手段は、前記第２の算出手段により算出された標準偏差と、量子化区間の幅との比に基づいて、前記第１の算出手段により算出された標準偏差又は分散と、前記第２の算出手段により算出された標準偏差又は分散とのうち、いずれか一方を選択して適用する。
【００２１】
［逆量子化方法］
また、本発明にかかる逆量子化方法は、それぞれの量子化インデクスに対応する元データの分布に応じて、乱数を生成し、生成された乱数に基づいて、逆量子化値を生成する。
【００２２】
また、本発明にかかる分布決定方法は、それぞれの量子化インデクスの頻度値を加算し、ラプラス分布の最大頻度位置を基準として右側の積分範囲と左側の積分範囲とが等しくなるように、ラプラス分布関数を積分した場合の積分値と、頻度値の加算値とが一致するように、ラプラス分布の分散又は標準偏差を算出する。
【００２３】
好適には、量子化インデクスの頻度分布における最大頻度値を基準として右側の加算範囲と左側の加算範囲とが等しくなるように、それぞれの量子化インデクスの頻度値を加算する。
【００２４】
好適には、量子化インデクスの絶対値の最大値に基づいて、前記頻度値を加算する範囲を決定する。
【００２５】
好適には、量子化インデクスの絶対値の最大値を既定の一次関数に代入し、この一次関数により求められた数値に対して丸め処理を施して、整数値を算出し、算出された整数値を、前記頻度値を加算する範囲とする。
【００２６】
［プログラム］
また、本発明にかかるプログラムは、それぞれの量子化インデクスに対応する元データの分布に応じて、乱数を生成するステップと、生成された乱数に基づいて、復号データを生成させるステップとをコンピュータに実行させる。
【００２７】
また、本発明にかかるプログラムは、それぞれの量子化インデクスの頻度値を加算するステップと、ラプラス分布の最大頻度位置を基準として右側の積分範囲と左側の積分範囲とが等しくなるようにラプラス分布関数を積分した場合の積分値と、頻度値の加算値とが一致するように、ラプラス分布の分散又は標準偏差を算出するステップとをコンピュータに実行させる。
【発明の効果】
【００２８】
本発明の復号化装置によれば、符号データをより適切に復号化することができる。
【発明を実施するための最良の形態】
【００２９】
まず、本発明の理解を助けるために、その背景及び概略を説明する。
画像データ及び音声データなどは、データ量が膨大であるため、圧縮してデータ量を削減して保持、伝送等を行うことが一般的である。例えば、カラー原稿や写真を画像スキャナで電子化した場合に生成される多値画像データ、あるいは、ディジタルカメラで風景等の写真を撮った場合に生成される多値画像データは、ＪＰＥＧ、あるいは、ＪＰＥＧ２０００等の非可逆符号化方式で圧縮することにより、より小さなデータ量とすることができる。
【００３０】
これらの非可逆符号化を行った場合、符号化歪が発生することが問題となっている。特に、ＪＰＥＧ方式を適用する場合には、復号化された画像（復号画像）のＤＣＴブロック境界に発生するブロック歪（符号化歪）が問題となっている。
【００３１】
まず、非可逆符号化の符号化歪がどのようなメカニズムで発生するかを説明する。
図１は、ＪＰＥＧ方式及びＪＰＥＧ２０００方式などの変換符号化方式の概略を説明する図であり、図１（Ａ）は、符号化処理の概略を示し、図１（Ｂ）は、復号化処理の概略を示す。
図２は、変換符号化方式における量子化処理を説明する図である。なお、図２に示された変換係数Ｔ（ｃ，ｉ，ｊ）及び量子化インデクスＱ（ｃ，ｉ，ｊ）は、変数ｃ，ｉ，ｊの関数である。また、変数ｃは、変換係数の種類を示すインデクスであり、例えば、８×８ブロックを用いたＤＣＴ変換であれば、６４種類（８×８）存在する変換係数のいずれかを示す値（１〜６４の整数など）であり、ウェーブレット変換であれば、1HH成分、1LH成分、1HL成分、2HH成分、2LH成分、2HL成分、・・・、NLLL成分のいずれかを示す値である。また、変数ｉ，ｊは、各変換係数の位置を示す変数であり、例えば、ＤＣＴ変換であれば、上からｉ番目、左からｊ番目のブロックのc番目の変換係数がＴ（ｃ，ｉ，ｊ）と表され、ウェーブレット変換であれば、c番目の変換係数の、上からｉ番目、左からｊ番目のデータがＴ（ｃ，ｉ，ｊ）と表される。
【００３２】
図１（Ａ）に示すように、変換符号化方式の符号化処理では、入力画像Ｇに対して離散コサイン変換又はウェーブレット変換などの変換処理が施されて、入力画像Ｇの変換係数Ｔが生成され、この変換係数Ｔは、さらに量子化されて、量子化インデクスＱとなる。量子化インデクスＱは、エントロピ符号化(可逆符号化)されて、圧縮符号Ｆとなる。
ここで、量子化インデクスとは、量子化値を識別するための情報である。また、量子化値とは、一定の範囲（量子化区間）にある数値群が縮退する値であり、図２に例示するように、量子化区間「Ａ−２」〜「Ａ２」それぞれを代表する離散的な値（本例では、「−２×Ｄ（ｃ）」〜「２×Ｄ（ｃ）」）である。
【００３３】
このように生成された符号データ（圧縮符号Ｆ）は、図１（Ｂ）に示すように、エントロピ復号されて、量子化インデクスＱとなる。この量子化インデクスＱは、符号化時の量子化インデクスＱと同じものである。
さらに、量子化インデクスＱは、逆量子化され、変換係数(すなわち、逆量子化値)Ｒとなり、この変換係数Ｒが逆変換され、復号画像Ｈが生成される。
ここで、逆量子化値とは、量子化インデクス又は量子化値に基づいて生成され、復号データの復号化に用いられる値であり、例えば、ＪＰＥＧ方式又はＪＰＥＧ２０００方式の変換係数（量子化インデクスに対応付けられた変換係数）である。
【００３４】
以上のプロセスにおいて、符号化歪が発生するのは、量子化を行う時である。元画像の変換係数Ｔと、量子化インデクスＱとの精度を比較すると、一般に変換係数Ｔの精度が量子化インデクスＱよりも高い。そのため、量子化インデクスＱを用いて再現した変換係数Ｒは、もともとの変換係数Ｔとは異なったものとなる。これが符号化歪の原因である。
【００３５】
次に、図２を参照して、量子化及び逆量子化をより詳細に説明する。
量子化は、各変換係数ｃ毎に用意された量子化ステップ幅Ｄ（ｃ）を用いて行う。量子化ステップ幅Ｄは、変換係数の種類ｃの関数である。例えば、ＪＰＥＧ方式であれば、量子化時に、以下の式で量子化インデクスＱを算出する。
【００３６】
Q(c,i,j)=round(T(c,i,j)/D(c))
【００３７】
ここでround()は、入力値に最も近い整数を出力する関数である。
また、逆量子化時には、以下の式で逆量子化値Ｒを算出する。
【００３８】
R(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である場合に、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.81に記載されているものと同様であるが、本発明にかかる逆量子化処理を適用する点で異なる。
【００５３】
［ハードウェア構成］
まず、本実施形態における復号化装置２のハードウェア構成を説明する。
図３は、本発明にかかる逆量子化方法が適応される復号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
図３に例示するように、復号化装置２は、ＣＰＵ２０２及びメモリ２０４などを含む制御装置２０、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２６から構成される。
復号化装置２は、例えば、復号化プログラム５（後述）がインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して符号データを取得し、取得された符号データを復号化して出力する。
【００５４】
［復号化プログラム］
図４は、制御装置２０（図３）により実行され、本発明にかかる逆量子化方法を実現する復号化プログラム５の機能構成を例示する図である。
図４に例示するように、復号化プログラム５は、エントロピ復号部４０、逆量子化部５０及び逆変換部６０を有する。
また、逆量子化部５０は、逆量子化値推定部５００、分布推定部５２０、期待値推定部５４０、乱数発生部５６０、補正部５８０及び逆量子化値出力部５９０を含む。
【００５５】
復号化プログラム５において、エントロピ復号部４０は、入力された符号データを、エントロピ復号化して、逆量子化部５０に出力する。
本例のエントロピ復号部４０は、入力された符号データを復号化して、量子化インデクスＱを生成し、生成された量子化インデクスを逆量子化部５０に出力する。
【００５６】
逆量子化部５０は、エントロピ復号部４０から入力された量子化インデスクに基づいて、逆量子化値を生成し、生成された逆量子化値を逆変換部６０に出力する。
【００５７】
逆変換部６０は、逆量子化部５０から入力された逆量子化値に基づいて、逆変換処理を行い、復号画像を生成する。
【００５８】
逆量子化部５０において、逆量子化値推定部５００は、エントロピ復号部４０から入力された量子化インデクスに基づいて、逆量子化値を推定し、推定した逆量子化値を補正部５８０に出力する。すなわち、逆量子化値推定部５００は、１つの量子化インデクス値に対して、常に単一の逆量子化値を生成するのではなく、１つの量子化インデクス値に対して、互いに異なる複数の逆量子化値を生成しうる。換言すると、逆量子化値推定部５００は、それぞれの量子化インデクスに対して、１つの逆量子化値を生成するが、入力される量子化インデクスの値が同一であったとしても、必ずしも同一の逆量子化値を生成するわけではない。
本例の逆量子化値推定部５００は、注目ブロックの量子化インデクスと、注目ブロックの周囲にあるブロックの量子化インデクス（同じ変換係数種類ｃのものに限る）とに基づいて、注目ブロックの量子化インデクスに対応する逆量子化値Ｒの補正係数αを算出し、算出された補正係数αを補正部５８０に出力する。
なお、以下の説明において、各変換係数種類c及び各量子化インデクスqに対応する補正係数αを、αycqと記述する。また、変換係数種類c、かつ、各量子化インデクスがqとなる信号の数をKとし、それぞれの補正係数をαycq(k)として表す（ただし、k=1,2,...,K）。
【００５９】
分布推定部５２０は、エントロピ復号部４０から入力される複数の量子化インデクス（又は、これらに対応付けられた逆量子化値）に基づいて、変換係数（元データ）の分布を推定し、推定された変換係数の分布を示す分布データを期待値推定部５４０及び乱数発生部５６０に出力する。
本例の分布推定部５２０は、変換係数種類ｃ毎に、量子化インデクス値の頻度分布を算出し、算出された頻度分布に基づいて、変換係数種類ｃ毎の分布データを生成する。
【００６０】
期待値推定部５４０は、分布推定部５２０から入力された分布データに基づいて、逆量子化値の期待値を算出し、算出された期待値と分布データとを補正部５８０に出力する。
より具体的には、期待値推定部５４０は、変換係数種類ｃ毎に生成された分布データに基づいて、元データの確率密度関数の期待値を、量子化区間毎に算出する。
変換係数種類がcであり、かつ、量子化インデクスQ(c,i,j)=qである場合の期待値は、期待値をE(αTcq)とする。すなわち、期待値E(αTcq)は、量子化インデクスに１対１で対応付けられた逆量子化値Ｒと、この量子化インデクスに対応する元の変換係数Ｔとの差分の推定期待値である。
【００６１】
乱数発生部５６０は、分布推定部５２０から入力された分布データに応じて、乱数を生成し、生成された乱数を逆量子化値出力部５９０に出力する。
【００６２】
補正部５８０は、期待値推定部５４０から入力された分布データ又は期待値に応じて、逆量子化値推定部５００から入力された逆量子化値（本例では、逆量子化値の補正係数α）を補正する。
また、補正部５８０は、逆量子化値推定部５００から入力された逆量子化値（本例では、逆量子化値の補正係数α）を、既定の範囲（例えば、逆量子化値の場合に、量子化インデクスに対応する量子化区間）におさまるように補正し、補正された逆量子化値（補正係数α）を逆量子化値出力部５９０に出力する。
本例の補正部５８０は、期待値推定部５４０から入力された期待値に基づいて、分布推定部５２０により算出された量子化インデクスの頻度分布と、逆量子化値推定部５００により算出された逆量子化値の頻度分布とを、変換係数種類ｃ毎、及び、量子化区間毎に略一致するよう、逆量子化値推定部５００から入力された補正係数αを補正し、補正された補正係数αを、さらに、ＪＰＥＧ方式において、補正係数αが−０．５から０．５の範囲に入るように線形補正する。
補正部５８０による線形補正は、例えば、同一の量子化インデクスに対応する補正係数αの中から、最大値αmax及び最小値αminを選択し、選択された最大値αmax及び最小値αminが既定の範囲（ＪＰＥＧでは、-0.5から0.5の範囲）におさまるように、これらの補正係数α全体を線形変換することにより実現される。
【００６３】
なお、補正部５８０は、補正係数αが−０．５から０．５の範囲を超える場合に、αをこの範囲の境界値としてもよい。また、補正部５８０は、補正係数αが−０．５から０．５の範囲を超える場合に、αを0としてもよい。
また、ＪＰＥＧ２０００方式では、補正係数αの範囲がＪＰＥＧ方式と異なるだけである。すなわち、ＪＰＥＧ２０００方式では、補正部５８０は、補正係数αの範囲は、Q(c,i,j)>0の時に、0≦r+α≦1を満たす範囲、Q(c,i,j)<0の時に、-1≦-r+α≦0を満たす範囲、Q(c,i,j)=0の時に、-1≦α≦1を満たす範囲を、それぞれ基準として補正係数αを補正する。
【００６４】
逆量子化値出力部５９０は、補正部５８０から入力された逆量子化値（本例では、逆量子化値の補正係数α）、又は、乱数発生部５６０から入力された乱数を用いて、適用すべき逆量子化値を決定し、決定された逆量子化値を逆変換部６０に出力する。
本例の逆量子化値出力部５９０は、補正部５８０又は乱数発生部５６０から入力された補正係数αと、量子化インデクス（又はこれに対応付けられた逆量子化値）とに基づいて、逆量子化値を算出する。より具体的には、以下の式により、逆量子化値出力部５９０は、適用すべき逆量子化値Ry(c,i,j)を算出する。
Ry(c,i,j)={Q(c,i,j)+α(c,i,j)}×D(c)
【００６５】
すなわち、本例の復号化プログラム５は、乱数発生部５６０により発生させた乱数を逆量子化値そのものとして適用するのではなく、乱数発生部５６０により発生させた乱数を逆量子化値の補正係数αとして適用する。
【００６６】
［分布推定部］
図５は、分布推定部５２０（図４）をより詳細に説明する図である。
図５に例示するように、分布推定部５２０は、ゼロ判定部５２２、非ゼロ変換係数分布推定部５２４及びゼロ変換係数分布推定部５２６を含む。
分布推定部５２０において、ゼロ判定部５２２は、エントロピ復号部４０から入力された量子化インデクスを、この量子化インデスクに対応する元データの属性（例えば、変換係数の種類）に応じて分類し、それぞれの属性に分類された量子化インデクス群のみで元データの頻度分布が推定可能であるか否か（換言すると、他の属性に分類された量子化インデクス群との相関を利用して頻度分布を推定する必要があるか否か）を判定する。
本例のゼロ判定部５２２は、エントロピ復号部４０から入力される量子化インデクスが、ゼロ変換係数に相当するか非ゼロ変換係数に相当するかを判定し、非ゼロ変換係数に相当すると判定された量子化インデクスを非ゼロ変換係数分布推定部５２４に出力し、ゼロ変換係数に相当すると判定された量子化インデクスについては、非ゼロ変換係数の分布を用いた分布推定処理を行うようゼロ変換係数分布推定部５２６に指示する。
ここで、非ゼロ変換係数とは、ある変換係数種類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)を作成する。
【００６９】
【数１】
2006270375.tif 000003
【００７０】
次に、本例の非ゼロ変換係数分布推定部５２４は、作成されたヒストグラムhc(q)をラプラス分布で近似し、このラプラス関数を変換係数Ｔの分布関数とする。
ラプラス分布の式は以下で表すことができる。
【００７１】
【数２】
2006270375.tif 000004
【００７２】
非ゼロ変換係数分布推定部５２４は、上式のσを算出することにより、変換係数Ｔの分布関数を得ることができる。
まず、非ゼロ変換係数分布推定部５２４は、作成されたヒストグラムhc(q)を量子化区間の幅Ｄ（ｃ）及び量子化インデクスの総数で正規化して、確率密度関数fhc(x)に変換する。具体的には、以下の式により、非ゼロ変換係数分布推定部５２４は、ヒストグラムhc(q)を確率密度関数fhc(x)に変換する。
【００７３】
【数３】
2006270375.tif 000005
【００７４】
ただし、(q-0.5)×D(c)<x≦(q+0.5)×D(c)
次に、非ゼロ変換係数分布推定部５２４は、ヒストグラムhc(q)を近似するラプラス関数を算出する。
図６は、ヒストグラムｈと分布関数Ｌ（ラプラス関数）とを例示する図である。
非ゼロ変換係数分布推定部５２４は、図６に例示されるように、ラプラス関数L(x)とヒストグラムfhc(x)の違い（本例では、面積差）ができるだけ小さくなるようなσを求めればよい。
上記の「違いができるだけ小さくなる」ことを評価する関数として、以下の誤差関数Err(σ)を定義する。
【００７５】
【数４】
2006270375.tif 000006
【００７６】
この誤差関数Errは、各量子化インデクスq毎に求めた確率密度関数の面積の差分の絶対値を加算したものである。Err(σ)の値が小さいほど、ヒストグラムfhc(x)とラプラス関数L(x)は似ているといえる。非ゼロ変換係数分布推定部５２４は、上記誤差関数Err(σ)を最小にするようなσを数値計算を行って求めればよい。
【００７７】
ゼロ変換係数分布推定部５２６は、ゼロ判定部５２２からの指示に応じて、非ゼロ変換係数分布推定部５２４により推定された他の変換係数（非ゼロ変換係数）の頻度分布に基づいて、ゼロ変換係数の頻度分布を推定する。
すなわち、非ゼロ変換係数分布推定部５２４は、ヒストグラムが意味のある形状を持つ場合にのみ分布の推定が可能であるが、全ての頻度値が０となるヒストグラムが作成される場合には、分布の形状を推定することができない。
そこで、ゼロ変換係数分布推定部５２６は、以下の手法を用いて、既に求めた他の分布データ（本例では、σ値）を用いて、変換係数種類cの全ての量子化インデクスが０となる場合のラプラス分布の形状を推定する。
【００７８】
なお、本例では、ＪＰＥＧ方式の復号処理を具体例として説明しているため、各変換係数種類は、８×８の２次元行列に配置される。
ここで、σ値が、図７（Ａ）に例示するように、ＤＣＴ係数の(1,1)成分から(8、8)成分に対応付けられて、２次元的に配置されるとする。すなわち、(x,y)成分の変換係数に対応するσ値を、σ(x,y)として表現する。
例えば、σ(1,1)は、DC成分のσ値であり、σ(8,8)は、最も高域のAC成分を示す変換係数のσ値である。ただし、本例の非ゼロ変換係数分布推定部５２４及びゼロ変換係数分布推定部５２６は、DC成分に対応するσ値をラプラス分布で近似できないため、σ値の推定に用いない。
【００７９】
本例では、σ(x,y)を、xy平面上の関数であると考える。ゼロ変換係数分布推定部５２６は、既に求めることのできたσ値（すなわち、非ゼロ変換係数分布推定部５２４により算出されたσ値）を用いて、この関数σ(x,y)を決定し、ゼロ変換係数に相当するσ値を推定する。
具体的には、ゼロ変換係数分布推定部５２６は、上記関数σ(x,y)を、２次元の指数関数で近似する。すなわち、σ(x,y)=Cexp(-ax-by)とする。
これは、ゼロ変換係数分布推定部５２６が、図７（Ｂ）に例示するように、指数関数でσ値を近似していることに相当する。
ゼロ変換係数分布推定部５２６は、σ(x,y)=Cexp(-ax-by)におけるパラメータC,a,bを算出して、近似関数σ(x,y)を決定し、決定された近似関数σ(x,y)を用いて、ゼロ変換係数に相当するσ値を算出する。
【００８０】
ここで、σ(x,y)のうち、既に求めることのできたものを、σ(x(u),y(u))とする。ただし、u=1,2,...,Uであり、(x(u),y(u))は、既に求めることのできたσの座標である。
また、全ての量子化インデクスが０であったため、求めることのできなかったσ値を、σ(x(v),y(v))とする。ただし、v=1,2,...,Vであり、U+V=63である。
【００８１】
まず、ゼロ変換係数分布推定部５２６は、σ(x(u),y(u))(u=1,2,...,U)を用いて、C,a,bを決定する。
準備として、σ(x,y)=Cexp(-ax-by)の両辺を対数とする。
logσ(x,y)=logC-ax-by
【００８２】
次に、この式に、σ(x(u),y(u))を代入する。すなわち、
logσ(x(u),y(u))=logC-ax(u)-by(u)
【００８３】
ここで、u=1,2,...,Uであるため、上記の式は実際には、次に示すような行列の演算である。
【００８４】
【数５】
2006270375.tif 000007
【００８５】
なお、上記の行列は、U=3であれば通常の連立方程式として解くことができる。また、U>3であれば、最小自乗法で解くことができる。
このように、ゼロ変換係数分布推定部５２６は、上記の行列を解くことにより、パラメータa,b,Cを求めることができる。
【００８６】
次に、ゼロ変換係数分布推定部５２６は、σ(x(v),y(v))=Cexp(-ax(v)-by(v))に、ゼロ変換係数に対応するx(v)及びｙ(v)を代入することにより、ゼロ変換係数に対応するσ値を算出する。
【００８７】
なお、ゼロ変換係数分布推定部５２６は、さらに尤もらしいσの推定値にするため、σ(x,y)をx,yに関して単調減少するように補正してもよい。すなわち、σ(x(v),y(v))=Cexp(-ax(v)-by(v))としてσ(x(v),y(v))を求めたとき、σ(x(v),y(v))が、(x,y)座標がより小さなσ(x,y)よりも小さいか等しくなるようにする。具体的には、ゼロ変換係数分布推定部５２６は、以下の式を用いて、補正を行う。
σ(x(v),y(v))=min{σ(x(v)-1,y(v)),σ(x(v),y(v)-1),σ(x(v)-1,y(v)-1)}
【００８８】
［乱数発生部の詳細］
次に、乱数発生部５６０（図４）をより詳細に説明する。
乱数発生部５６０は、分布推定部５２０から入力された分布関数fc(x)（すなわち、非ゼロ変換係数推定部５２４又はゼロ変換係数推定部５２６により算出されたσ値（分布データ）に対応する関数）に対して、処理対象となる量子化インデクスQ(c,i,j)に応じた変数変換を行う。
具体的には、量子化インデクスQ(c,i,j)=qとし、量子化インデクスQ(c,i,j)=qとなる変換係数T(c,i,j)の範囲をd1〜d2とすると、乱数発生部５６０は、以下に示す関数fcq(x)を生成する。
【００８９】
【数６】
2006270375.tif 000008
【００９０】
この関数fcq(x)は、変換種類c、量子化インデクスqの変換係数に対応する確率密度関数である。また、この確率密度関数は、d1〜d2の範囲をαmin〜αmaxに変換したものである。なお、αmin及びαmaxの決定方法は、様々な方法が考えられ、例えば、（１）αmin＝-αmaxとし、αmax、αminの値を予め定めておいた定数とする方法、（２）αmin＝-αmaxとし、（αmax-αmin）の値を予め定めておいた定数βを用いて、量子化ステップサイズ×β=αmax-αminとなるように設定する方法、（３）上記（２）に加えて、量子化ステップサイズ×βの値が予め定めておいた定数以上とならないように上限値Dmaxを設定し、αmax-αmin＝min{量子化ステップサイズ×β、Dmax}として決定する方法、（４）(αmin+αmax)/2の値をαの期待値（変形例において後述するE(αTcq)）となるように設定する方法、などが考えられる。
【００９１】
乱数発生部５６０は、上記確率密度関数fcq(x)に合致するような乱数αを発生させる。この乱数αは、逆量子化値出力部５９０（図４）により補正係数αとして逆量子化値の算出に用いられる。
なお、本例では、まず乱数αを発生させてから逆量子化値Rを求めたが、直接Rを乱数として発生させてもよい。すなわち、乱数発生部５６０は、以下の確率密度関数fcq(x)に合致するような乱数を発生させ、逆量子化値出力部５９０は、この乱数をそのまま逆量子化値として逆変換部６０に出力してもよい。
【００９２】
【数７】
2006270375.tif 000009
【００９３】
次に、確率密度関数fcq(x)に合致するような乱数αを発生させる方法を説明する。このような乱数発生方法としては、例えば、文献「脇本和昌著，乱数の知識，森北出版株式会社，61ページ〜64ページ」に示されている逆関数法を適用することができる。
以下その例を示す。
まず、以下の関数Fcq(x)を求める。
【００９４】
【数８】
2006270375.tif 000010
【００９５】
次に、Fcq(x)の逆関数F-1cq(x)を求める。
次に、一様乱数発生器から区間[0,1]上の乱数Xを発生させる。
最終的に、α＝F-1cq(X)とすれば、fcq(x)に合致した乱数αを発生させることができる。ただし、F-1cq(X)は、Fcq(X)の逆関数である。
【００９６】
また、fc(x)がラプラス分布の場合は、上記関数F-1cq(x)を簡易な形で予め定めておくことができる。ここで簡単のため、fcq(x)が既に正規化されているとする。また、αmin=-αmaxとする。すなわち、fcq(x)=Cexp(-s|x|)（ただし、αmin≦x≦αmax）とする。
q>0のときは、x≧0であるので、fcq(x)=Cexp(-sx)となる。
よって、
Fcq(x)=-(C/s){exp(-sx)-exp(-sαmin)}
F-1cq(x)=-(1/s)log{exp(-sαmin)-sx/C}
となる。
q<0のときは、x<0であるので、同様に、
F-1cq(x)=(1/s)log{exp(sαmin)+sx/C}
となる。
また、q＝0、かつ、x<0のときは、
F-1cq(x)=(1/s)log{exp(sαmin)+sx/C}
となり、
q＝0、かつ、x≧0のときは、
【００９７】
【数９】
2006270375.tif 000011
【００９８】
となるため、
F-1cq(x)=-(1/s)log{1-s(x-0.5)/C}
となる。
このように、乱数発生部５６０は、分布推定部５２０から入力された分布データに基づいて、変換係数の分布に適合した補正係数αを乱数により生成することができる。
【００９９】
［補正部］
図８は、補正部５８０による補正を模式的に説明する図である。
図８（Ａ）に示すように、補正部５８０は、変換係数Ｔの推定期待値（ａ１）と、逆量子化値の期待値（ａ２）とが一致するように、逆量子化値の分布をシフトする（ａ３）。
【０１００】
また、図８（Ｂ）に示すように、逆量子化値（本例では、補正係数α）の分布が、量子化区間ｄ１〜ｄ２（本例では、αの範囲αmin〜αmax)から外れる場合（ｂ１）に、補正部５８０は、逆量子化値（補正係数α）の期待値を動かさないように、分布を期待値に向かって小さくする（ｂ２）。
【０１０１】
なお、本例では、補正部５８０は、逆量子化値推定部５００から入力された補正係数αに対して、上記の補正を行う。
【０１０２】
［全体動作］
次に、復号化装置２（復号化プログラム５）の全体動作を説明する。
図９は、復号化プログラム５（図４）による復号化処理（Ｓ１０）のフローチャートである。なお、本例では、画像データの符号データ（ＪＰＥＧ方式）が入力される場合を具体例として説明する。
図９に示すように、ステップ１００（Ｓ１００）において、エントロピ復号部４０（図４）は、入力された符号データを復号化して、各ブロック（８×８ブロック）の量子化インデクスを生成し、生成された各ブロックの量子化インデクスを逆量子化部５０に出力する。
【０１０３】
ステップ１０５（Ｓ１０５）において、分布推定部５２０は、エントロピ復号部５００から入力された複数の量子化インデクスに基づいて、変換係数Ｔの分布を変換係数種類毎に推定する。
具体的には、分布推定部５２０に設けられたゼロ判定部５２２（図５）は、エントロピ復号部４０から１ページ分の画像に相当する量子化インデクスが入力されると、入力された量子化インデスクを変換係数の種類ｃで分類し、分類された量子化インデクス群がゼロ変換係数に相当するか非ゼロ変換係数に相当するかを判定する。
非ゼロ変換係数分布推定部５２４（図５）は、非ゼロ変換係数に相当する量子化インデクス群それぞれについて、量子化インデクス値のヒストグラムhc(q)（すなわち、各変換係数種類cごとのヒストグラム）を作成し、このヒストグラムhc(q)を近似するラプラス関数Ｌ（すなわち、σ値）を算出する。
また、ゼロ変換係数分布推定部５２６（図５）は、非ゼロ変換係数分布推定部５２４により算出された頻度分布を指数関数で近似し、この指数関数を用いて、ゼロ変換係数の頻度分布（すなわち、σ値）を推定する。
【０１０４】
ステップ１１０（Ｓ１１０）において、逆量子化部５０（図４）は、入力された量子化インデクスを順に、注目量子化インデクスに設定する。
逆量子化値推定部５００（図４）は、注目量子化インデクスQ(c,i,j)の周囲量子化インデクスQ(c,i+m,j+n)を抽出する（本例では、-1≦m≦1,-1≦n≦1）。なお、抽出される周囲量子化インデクスは、注目ブロックを中心とした３×３個のブロックにおける、同一の変換係数種類ｃに対応する量子化インデクス値であり、３×３の行列となる。
【０１０５】
ステップ１１５（Ｓ１１５）において、逆量子化値推定部５００は、抽出された周囲量子化インデクスと、注目量子化インデクスとを用いて、以下の演算を行い、差分行列Ｐを作成する。
P(m,n)=Q(c,i+m,j+n)-Q(c,i,j)
すなわち、逆量子化値推定部５００は、注目量子化インデクス値と、周囲量子化インデクス値との差分値を算出する。
【０１０６】
次に、逆量子化値推定部５００は、差分行列Ｐに含まれる各差分値の絶対値|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)
【０１１５】
ステップ１５５（Ｓ１５５）において、逆変換部６０（図４）は、逆量子化部５０から入力された逆量子化値（近似的な変換係数）を用いて、逆変換処理（本例では逆ＤＣＴ変換）を行って、復号画像Ｈを生成する。
【０１１６】
以上説明したように、本実施形態における復号化装置２は、量子化インデクスに基づいて、変換係数の分布を推定し、推定された分布に合致した乱数を発生させて、この乱数に基づいて逆量子化値を生成する。
これにより、逆量子化値の頻度分布が、変換係数の頻度分布とより近くなるため、より再現性の高い復号画像が期待できる。
【０１１７】
なお、上記実施形態では、周囲量子化インデクス値を用いて補正係数αを算出する逆量子化値推定部５００と、量子化インデクスの分布に合致した乱数を補正係数αとして生成する乱数発生部５６０とが設けられた形態を説明したが、逆量子化値推定部５００は必須ではない。すなわち、全ての量子化インデクスについて、上記乱数発生部５６０が補正係数αを生成してもよい。
【０１１８】
［変形例１］
次に、第１の変形例を説明する。
上記実施形態では、変換係数の分布をラプラス分布で推定したが、第１の実施例では、変換係数の分布を図１１に示されるような折れ線近似を行う。
例えば、非ゼロ変換係数分布推定部５２４（図５）は、αmid=(αmin+αmax)として、αmin、αmid、αmaxを結ぶ直線(折れ線)で確率密度関数を近似し、推定する。
ただし、非ゼロ変換係数分布推定部５２４は、AC成分かつ、量子化インデクス値qの値が０に近い場合には、直線近似し難いため、別の方式を採る。より具体的には、非ゼロ変換係数分布推定部５２４は、正の整数である閾値TH1を用いて、複数の近似方法を切り替える。すなわち、qを量子化インデクス値として、
｜q｜>TH1である場合に、第１の直線近似を適用し、
｜q｜＝TH1である場合に、第２の直線近似を適用し、
｜q｜<TH1である場合に、ラプラス分布による近似（上記実施形態で説明）を適用する。
なお、本変形例では、上記のように、量子化インデクス値qに応じて、直線近似とラプラス分布による近似とを切り替えているが、全てのq値について、第１の直線近似を適用してもよい。
【０１１９】
第１及び第２の直線近似は、図１１（Ａ）に例示するような折れ線近似となる。
まず、第１の直線近似を説明する。
非ゼロ変換係数分布推定部５２４は、図１１（Ｂ）に示されるように、fk(α)=hc(q)（ただし、αmin≦α≦αmax）となる関数fk(α)を考える。この一様関数を折れ線近似する。
非ゼロ変換係数分布推定部５２４は、周囲ヒストグラムhc(q-1)、hc(q+1)を用いて、図１１（Ａ）に例示するfk(αmin)及びfk(αmax)の値を推定する。
例えば、以下のように、fk(αmax)の値が推定される。
まず、非ゼロ変換推定部５２４は、図１１（Ｃ）に例示する点Ａの位置を決定する。fk(αmax)の値は、hc(q)と、hc(q+1)の間とするのが妥当である。例えば、fk(αmax)=(hc(q)+hc(q+1))/2とすればよい。
本例では、点Ａの位置として、hc(q)と、hc(q+1)の間を、hc(q):hc(q+1)に内分する点を採用する。
これは、図１１（Ｃ）に例示するように、注目量子化インデクスの頻度値hc(q)が、隣接する量子化インデクスの頻度値hc(q+1)に比べて小さいとき、あるいは、注目量子化インデクスの頻度値hc(q)が０に近いときには、点Ａの値を十分に小さい値にすることができて都合が良いからである。
この場合に、非ゼロ変換係数分布推定部５２４は、以下の式により、fk(αmax)を算出することができる。
fk(αmax)=2×hc(q)×hc(q+1)/(hc(q)+hc(q+1))
同様に、非ゼロ変換係数分布推定部５２４は、以下の式により、fk(αmin)を算出することができる。
fk(αmin)=2×hc(q)×hc(q-1)/(hc(q)+hc(q-1))
【０１２０】
次に、非ゼロ変換係数分布推定部５２４は、fk(αmid)の値を推定する。ここで、周囲ヒストグラムの形状を図１１（Ｄ）及び図１１（Ｅ）の２種類に分類する。
図１１（Ｄ）に例示するように、ヒストグラム（頻度値）が、量子化インデクス値qに関して単調増加あるいは単調減少する場合には、非ゼロ変換係数分布推定部５２４は、fk(αmid)=hc(q)とする。
また、図１１（Ｅ）に例示するように、ヒストグラム（頻度値）が、量子化インデクス値qに関して単調増加も単調減少もしない場合には、非ゼロ変換係数分布推定部５２４は、hc(q)が山になるときには、fk(αmid)>hc(q)となるfk(αmid)を算出し、hc(q)が谷になるときには、fk(αmid)<hc(q)となるfk(αmid)を算出する。
より具体的には、非ゼロ変換係数分布推定部５２４は、fk(αmin)と、fk(αmax)との差分の平均値を加算する。すなわち、以下の式により、fk(αmid)が算出される。
fk(αmid)=hc(q)+(hc(q)-fk(αmin)+hc(q)-fk(αmax))/2
【０１２１】
非ゼロ変換係数分布推定部５２４は、以上で求めた関数fk(x)を確率密度関数となるように変換すればよい。すなわち、確率密度関数fcq(x)は、以下のようになる。
【０１２２】
【数１０】
2006270375.tif 000012
【０１２３】
次に、第２の直線近似を説明する。第２の直線近似は、｜q｜=TH1である場合に適用される直線近似である。
q=TH1のときは、第１の直線近似のときと異なり、左側(q=TH1-1の場合)がラプラス分布で近似されているため、分布の連続性を満たすように、fk(αmin)の値を考慮したい。したがって、非ゼロ変換係数分布推定部５２４は、fk(αmin)を以下の式により算出する。
【０１２４】
【数１１】
2006270375.tif 000013
【０１２５】
なお、第２の直線近似によるfk(αmax)及びfk(αmid)は、第１の直線近似の場合と同様に計算される。そして、非ゼロ変換係数分布推定部５２４は、第１の直線近似の場合と同様に、以上の３つの数値fk(αmin)、fk(αmax)、fk(αmid)を用いて、fcq(x)を計算する。
【０１２６】
［変形例２］
上記実施形態では、全ての量子化インデクス値qに対して、乱数を発生させた。
第２の変形例は、一部の量子化インデクス値ｑに対してのみ乱数を発生させる例を示す。
例えば、逆量子化値推定部５００は、注目量子化インデクス値と周囲量子化インデクス値との差分が全て０である場合にのみ、逆量子化値を推定できない。量子化インデクス値は、図６のヒストグラムに示すように、０に多く分布するため、上記のように周囲量子化インデクス値との差分が全て０となる可能性は、注目量子化インデクス値が０である場合に高くなる。
逆に、注目量子化インデクス値が０以外である場合には、周囲量子化インデクス値が０となる可能性が高いため、周囲量子化インデクス値との差分が全て０となる確率は低い。
以上から、本変形例の復号化プログラム５は、注目量子化インデクス値qが０である場合に、乱数発生部５６０により発生させた乱数を補正係数α（又は逆量子化値）として適用し、注目量子化インデクス値qが０以外である場合に、逆量子化値推定部５００により生成される補正係数α（又は逆量子化値）を適用する。
【０１２７】
［変形例３］
上記実施形態の乱数発生部５６０は、関数fcq(x)に合致する乱数を発生させたが、第３の変形例では、関数fcq(x)とは異なる乱数を発生させる。
関数fcq(x)は、αmin〜αmaxの間を分布する関数である。そのため、量子化ステップサイズD(c)が大きな場合には、αの期待値から外れる乱数が発生したときの歪が大きくなってしまう可能性がある。
そこで、第４の本実施例では、以下のように乱数の範囲を制限する。
すなわち、乱数発生部５６０は、以下の確率密度関数fcq1(x)に合致する乱数を発生させる。
【０１２８】
【数１２】
2006270375.tif 000014
【０１２９】
ただし、E(αTcq)は、fcq(x)の期待値である。このように、期待値を演算してもよいし、簡易に演算する場合は、E(αTcq)=0としてもよい。また、αmin≦E(αTcq)-d、かつ、E(αTcq)+d≦αmaxとなるようにdの範囲は限定される。
上式は、fcq(x)の中心の形状(-d〜d)のみを利用して、周囲の発生確率を0としてしまう例である。このようにすることで、期待値から外れた値を出力しないため、自乗誤差を制限することが可能となる。
【０１３０】
［変形例４］
第４の変形例でも、fcq(x)とは異なる乱数を発生させる。
上記実施形態で示したような逆関数法等による乱数発生の処理負荷が大きな場合がある。
そこで、第４の変形例の乱数発生部５６０は、一様乱数を発生させる。なお、本変形例では、説明の便宜上、変換係数分布をラプラス分布で推定し、変換係数種類cをラプラス分布で推定した場合のラプラス分布の分散をσ(c)とする。
すなわち、本変形例の乱数発生部５６０は、以下の確率密度関数fcq2(x)に従って、乱数を発生させる。
【０１３１】
E(αTcq)-βσ≦ｘ≦E(αTcq)+βσである場合に、fcq2(x)=1/(2βσ)
上記以外の場合に、fcq2(x)=0
【０１３２】
ただし、E(αTcq)は、fcq(x)の期待値である。この期待値を演算してもよいし、簡易に演算する場合は、E(αTcq)=0としてもよい。
E(αTcq)=0の場合を考えると、この確率密度関数fcq2(x)は、[-βσ,βσ]の範囲の一様分布関数である。[E(αTcq)-βσ,E(αTcq)+βσ]の範囲が[αmin、αmax]を超えないように値βが設定される。
値βは、復号画像の乱雑さを制御するパラメータである。βを大きくすると乱雑な画像となる。βを小さくすると、乱雑さが小さい画像となる代わりに、ブロック歪等が目につきやすい画像となる。
【０１３３】
［変形例５］
上記実施形態及び上記変形例では、本発明をＪＰＥＧ方式に適用する場合を具体例として説明したが、これに限定されるものではない。そこで、第５の変形例では、ＪＰＥＧ２０００方式に適用した形態を説明する。以下、ＪＰＥＧ２０００方式に適用する場合と、ＪＰＥＧ方式に適用する場合（上記実施形態及び上記変形例）とで異なる部分を説明する。
ＪＰＥＧ２０００方式に適用するときには、上記αの範囲が以下のようになる。
Q(c,i,j)=0のとき、-1≦α≦1
Q(c,i,j)>0のとき、0≦r+α≦1
Q(c,i,j)<0のとき、-1≦-r+α≦0
【０１３４】
また、ＪＰＥＧ２０００方式の場合に、各変換係数は、図１２に例示されるように分解された周波数領域に存在する。ここで、σ(x,y)を次のように定義する。ただし、NLをウェーブレット変換の分解レベル数(the number of decomposition levels)とする。
σ(1,3)=NLHLの係数のσ
σ(3,1)=NLLHの係数のσ
σ(3,3)=NLHHの係数のσ
・・・
σ(2,6)=(NL-1)HLの係数のσ
σ(6,2)=(NL-1)LHの係数のσ
σ(6,6)=(NL-1)HHの係数のσ
・・・
【０１３５】
すなわち、以下のように、一般化される。
【０１３６】
【数１３】
2006270375.tif 000015
【０１３７】
上記したσ値は、単純な信号の標準偏差でもよいし、上記実施形態で示したようなラプラス分布の推定を行ったときの結果であってもよい。以上のσの配置は、図１２に示したように各変換係数の２次元周波数上での範囲の中心をxy平面上に相対的に配置したものである。
ゼロ変換係数分布推定部５２６は、上記σ値を指数関数で近似して、ゼロ変換係数に対応するσ値を算出する。
【０１３８】
［第２実施形態］
次に、第２の実施形態を説明する。
第２の実施形態では、上記第１の実施形態とは異なる分布決定方法を説明する。より具体的には、本実施形態では、変換係数種類cごとに、量子化インデクスQ(c,i,j)の標準偏差を計算することでσ値を求める。なお、本実施形態における復号化プログラム５は、図４に示された各構成を有する。
本実施形態における分布推定部５２０は、既出の関数F+(x,σ)、あるいは、F-(x,σ)を用いてσの推定を行う。F+(x,σ)、あるいは、F-(x,σ)は、ラプラス分布を積分した関数であり、以下の式で表される。
【０１３９】
【数１４】
2006270375.tif 000016
【０１４０】
この関数は、y=F+(x,σ)、あるいは、y=F-(x,σ)の形の方程式に対し、σをxとyの陽関数として表すことが可能である。すなわち、数値演算(反復演算)を行わなくても、標準偏差σを得ることができる。この点が、本実施形態が、上記第１の実施形態よりも優れている点である。
【０１４１】
ここで、量子化インデクスqの正規化ヒストグラムをH(q)とする。
本実施形態では、ある整数Nを与えたとき、qが-N〜Nまでの正規化ヒストグラムの和と、それに相当するラプラス分布の積分値が等しくなるような標準偏差σを求めるものである。
量子化ステップサイズがDの時、qが-N〜Nまでとなる係数の範囲は、ＪＰＥＧ方式の場合には、-(2N+1)D/2〜(2N+1)D/2となる。
qが-N〜Nまでの正規化ヒストグラムの和と、それに相当するラプラス分布の積分値が等しくなるようにするには、下記のようにすればよい。
【０１４２】
【数１５】
2006270375.tif 000017
【０１４３】
上式は、ラプラス分布の対称性より、
【０１４４】
【数１６】
2006270375.tif 000018
【０１４５】
と表すことができる。この式をσに関して解くと、
【０１４６】
【数１７】
2006270375.tif 000019
【０１４７】
を得る。分布推定部５２０は、この式を用いて、標準偏差σを求める。
【０１４８】
［変形例１］
以下、第２の実施形態の変形例を説明する。
第１の変形例として、上記第２の実施形態をＪＰＥＧ２０００方式に対応させた形態を説明する。ＪＰＥＧ２０００方式の場合には、qが-N〜Nまでとなる係数の範囲は、-(N+1)D〜(N+1)Dとなる。qが-N〜Nまでの正規化ヒストグラムの和と、それに相当するラプラス分布の積分値が等しくなるようにするには、下記のようにすればよい。
【０１４９】
【数１８】
2006270375.tif 000020
【０１５０】
［変形例２］
上記第２の実施形態では、整数Ｎの値は既定値（すなわち、与えられたもの）であったが、第２の変形例では、復号化プログラム５が適切な整数Nの値を設定する。
ここでは、量子化インデクスqの最大値の一次関数としてNの値を決定する方式を具体例として説明する。
まず、予め定数a,bを用意して、
(1)量子化インデクスqの絶対値の最大値をqMとする。すなわち、qM=max{|qmax|,|qmin|}とする。
(2)qMが0の時には、処理を行わない。
(3)Ｎ=min{qM-1,round(a×qM+b)}としてNを求める。
ただし、上式において、max{A,B}は、A,Bのうちで大きなものを出力する関数、min{A,B}は、A,Bのうちで小さいものを出力する関数を示す。また、qの最小値をqmin,最大値をqmaxとしている。round()は、四捨五入あるいは五捨六入等の丸め処理を示す。
上記(3)で、qM-1と、一次関数出力値round(a×qM+b)の最小値を取っているのは、N=qMとなった場合には、σ値を算出する式（１７）の分母が０となってしまい、σを求めることができないためである。つまり、Nの最大値をqM-1とする処理を行うためである。
【０１５１】
図１３は、第２の変形例における分布推定部５２０の構成をより詳細に説明する図である。
図１３に例示するように、分布推定部５２０は、頻度分布計測部５３２、ヒストグラム正規化部５３４、Ｎ値取得部５３６及び標準偏差推定部５３８を含む。
分布推定部５２０において、頻度分布計測部５３２は、入力された量子化インデクスQ(i)（ただし、i=1,2,...）に基づいて、頻度分布h(q)を計測する。頻度分布h(q)は、量子化インデクスQ(i)の値がqとなる個数を示す。
また、頻度分布計測部５３２は、量子化インデクス値qの絶対値の最大値qMを取得する。
ヒストグラム正規化部５３４は、頻度分布計測部５３２により計測された頻度分布h(q)を正規化して、正規化ヒストグラムH(q)を生成する。
Ｎ値取得部５３６は、頻度分布計測部５３２により取得されたqMに基づいて、Ｎ値を決定する。具体的には、Ｎ値取得部５３６は、上記（１）〜（３）の処理を行う。
標準偏差推定部５３８は、Ｎ値取得部５３６により取得されたＮ値と、ヒストグラム正規化部５３４により生成された正規化ヒストグラムH(q)、及び、外部から入力された量子化ステップサイズＤに基づいて、標準偏差σを算出する。
【０１５２】
上記のようにＮ値を設定した場合の実験結果を図１４に示す。
様々な画像をＤＣＴで変換し、量子化した後の量子化インデクスの最大値を求める。さらに、原画像の変換係数の標準偏差を求めておき、様々なＮの値でσを計算して、その変換係数の標準偏差を推定するのに最も適したＮの値を求めておく。図１４は、このように求めた量子化インデクスの最大値と最適なＮの値との関係を示したものである。図１４に示されるように、qMと最適なNの間には線形の関係がある。
したがって、本手法のようにqMの一次関数でNを求める効果は高い。
【０１５３】
また、b=0として、Ｎ=min{qM-1,round(a×qM)}としてＮ値を求めてもよい。
すなわち、図１４に示されるようにｑMと最適Nの関係は、ほぼ原点を通る直線であるため、b=0に限定してもよい。
【０１５４】
上記では、量子化インデクスqの絶対値の最大値をqMとして、qMの一次関数を用いてNを求めた。しかし、qMを量子化インデクスqの絶対値の最大値とする必然性は必ずしもない。qMとして、qmaxや、qminを用いてもよい。
これは、量子化インデクスの分布が大体対称であり、だいたいqmax=-qminが成り立っているためである。すなわち、必ずしも絶対値の最大値を用いなくてもよい
【０１５５】
また、上記では、一次関数の出力のround()関数による丸めを行ってＮ値を求めた。整数値Ｎを求めるためには、切り捨て、あるいは切り上げ等の処理を行ってもよい。
【０１５６】
また、上記では、頻度分布を加算する範囲を-N〜Nとしていたが、このような対称な範囲でなくともよい。例えば、範囲は、Nmin〜Nmaxであり、Nmin≦0、かつ、Nmax≦0であればよい。例えば、Nminをqminの関数として求め、Nmaxをqmaxの関数として求める等としてもよい。
【０１５７】
［変形例３］
第３の変形例では、H(q)の累積頻度がある値P(0<P<1)になるようなＮの値を用いて推定を行う。すなわち、第３の変形例におけるＮ値取得部５３６は、既定値Pを与えて、
【０１５８】
【数１９】
2006270375.tif 000021
【０１５９】
となるNを求める。
【０１６０】
より具体的には、図１３に例示した構成により、以下のように動作する。
なお、分布推定部５２０に入力されるデータは、量子化インデクスQ(i)（ただし、i=1,2,...）、および、量子化ステップサイズDである。
頻度分布計測部５３２は、入力された量子化インデクスQ(i)に基づいて、頻度分布h(q)を計測する。h(q)は、量子化インデクスQ(i)の値がqとなる個数を示す。
頻度分布計測部５３２は、同時に、量子化インデクス値qの絶対値の最大値qMを取得する。
次に、ヒストグラム正規化部５３４は、頻度分布計測部５３２により計測された頻度分布h(q)に基づいて、正規化ヒストグラムH(q)を生成する。
Ｎ値取得部５３６は、ヒストグラム正規化部５３４により生成された正規化ヒストグラムH(q)と、頻度分布計測部５３２により取得されたqMとに基づいて、Ｎ値を決定する。なお、値Pは予め定められた値である。
より具体的には、Ｎ値取得部５３６は、図１５に示すフローチャートにそって、Ｎ値を決定する。なお、図１５のフローチャートにおけるqmは、qの絶対値の最大値（上記qM）を示す。また、SUMは、頻度値H(q)の累積値（累積頻度）を示す。
まず、Ｎ値取得部５３６は、SUM=H(0)、i=0とする（Ｓ２００）。
次に、Ｎ値取得部５３６は、SUM≧P又はqm=1である場合（Ｓ２０５：Ｙｅｓ）、N=1として処理を終了し（Ｓ２１０）、これ以外の場合（Ｓ２０５：Ｎｏ）、i値を１つインクリメントし、NewSUM=SUM+H(i)+H(-i)とする（Ｓ２１５）。つまり、Ｎ値取得部５３６は、頻度値を累積する範囲を左右に１つ広げる。
Ｎ値取得部５３６は、NewSUM≧Pであり（Ｓ２２０：Ｙｅｓ）、かつ、|NewSUM-P|≦|SUM-P|である（Ｓ２２５：Ｙｅｓ）場合に、N=iとして処理を終了し（Ｓ２３０）、NewSUM≧Pであり（Ｓ２２０：Ｙｅｓ）、かつ、|NewSUM-P|>|SUM-P|である（Ｓ２２５：Ｎｏ）場合に、N=i-1として処理を終了する（Ｓ２３５）。
一方、Ｎ値取得部５３６は、NewSUM<Pであり（Ｓ２２０：Ｎｏ）、かつ、i=qm-1である（Ｓ２４０：Ｙｅｓ）場合に、N=qm-1として処理を終了し（Ｓ２４５）、NewSUM<Pであり（Ｓ２２０：Ｎｏ）、かつ、i=qm-1でない（Ｓ２４０：Ｎｏ）場合に、NewSUMの値をSUMに代入して（Ｓ２５０）、Ｓ２１５の処理に戻る。
以上の処理により、Ｎ値取得部５３６は、Ｎ値を決定する。
【０１６１】
さらに、Ｎ値取得部５３６は、上記フローチャートで示すように、ΣH(q)の値を算出済みであるため、正規化ヒストグラムの加算結果である
【０１６２】
【数２０】
2006270375.tif 000022
【０１６３】
を標準偏差推定部５３８に出力する。
標準偏差推定部５３８は、第２の実施形態で示した式を用いて、Ｎ値取得部５３６から入力されたＮ値及び正規化ヒストグラムH(q)の加算結果と、外部から入力された量子化ステップサイズＤとに基づいて、標準偏差σを算出する。
【０１６４】
以上のように、標準偏差を推定したときの結果例を以下に示す。
様々な画像、色成分、量子化ステップサイズで計測した元の変換係数の標準偏差と推定した標準偏差との自乗平均誤差の平方根(RMSE)を計算した。
第２の変形例で示した方法でＮ値を決定した場合に、RMSEは、4.176であった。
また、第３の変形例で示した方法でＮ値を決定した場合に、RMSEは、4.033であった、
このように、上記変形例で示された方法は、正確に標準偏差を推定できる。
しかも、本実施形態における手法は、従来例のように数値演算を必要としないため、局所解に陥ることがなく安定で、かつ、高速に演算を行うことができる。
【０１６５】
さらに、図１６には、様々な画像、色成分、量子化ステップサイズで計測した元の変換係数の標準偏差と推定した標準偏差との比を示している。縦軸は、推定標準偏差/真の標準偏差であるため、１に近いほうが性能が良いことを示している。
図１６から分かるように、Xの値が大きな場合には、従来例の値が非常に悪くなるのに対し、上記第２の変形発明では、Xが大きな場合でも性能が悪くならない非常に良い方式であるということが分かる。
【０１６６】
さらに、Xの値が小さい時には、従来例の方式が比較的良い。また、Xの値が大きな時には上記第２又は第３の変形例が良い。
【０１６７】
［変形例４］
そこで、第４の変形例では、X=D/σの値が小さな時は、特開２００４−８０７４１号公報に開示された方法（すなわち、上記従来例）を適用し、Xの値が大きな時には、上記第２又は第３の変形例を適用する。
この場合に、σの真値は分からないため、分布推定部５２０は、まず、上記第２又は第３の変形例と同様の手法により、σの推定を行い、推定したσを用いて、Xの値の評価を行い、Xが予め定めた閾値より小さい時には、従来例の方法を用いて推定したσを採用し、Xが予め定めた閾値より大きな時には、上記第２又は第３の変形例を用いて推定したσを採用する。
なお、分布推定部５２０は、量子化インデクスの最大値(あるいは、絶対値の最大値)が予め定めておいた閾値より小さい場合には、上記第２又は第３の変形例を用いて、σの推定を行い、量子化インデクスの最大値(あるいは、絶対値の最大値)が予め定めておいた閾値より大きな場合には、従来例の方法を用いてσの推定を行う。
【０１６８】
また、分布推定部５２０は、従来例の方法により算出されたσ値と、上記第２又は第３の変形例により算出されたσ値とに基づいて、これらの中間的なσ値を算出し、適用してもよい。
すなわち、図１６に示すように、従来例の方法では、実際の標準偏差よりも小さな値が出ることが多く、上記第２又は第３の変形例では、実際の標準偏差よりも大きな値が出ることが多いため、分布推定部５２０は、これらの算出結果を統合して、中間的なσ値とすることにより、より実際の標準偏差に近いσ値を求めることができる。
より具体的には、従来例の方法により算出された標準偏差をＡ、上記第２又は第３の変形例により算出された標準偏差をＢとすると、分布推定部５２０は、以下の式により、最終標準偏差σを算出する。なお、定数ｃは既定値である。
【０１６９】
【数２１】
2006270375.tif 000023
【０１７０】
例えば、c=1とする場合には、最終標準偏差σは、標準偏差Ａと標準偏差Ｂとの相乗平均となる。c=1の場合の結果を図１７に示す。縦軸の推定標準偏差相対値とは、推定標準偏差値/真の標準偏差値の値を示す。
図１７に示すように、第４の変形例では、さらに推定精度を高めることができた。
【０１７１】
この第４の変形例について、RMSE=SQRT(真の標準偏差と、推定標準偏差の差分の自乗の平均値)を算出した。ただし、SQRT()は、平方根を計算する関数である。
従来例のRMSE：2.26
第４の変形例のRMSE：1.22
以上の結果より、第４の変形例の効果(正確性)が高いことがわかる。
【図面の簡単な説明】
【０１７２】
【図１】ＪＰＥＧ方式及びＪＰＥＧ２０００方式などの変換符号化方式の概略を説明する図であり、（Ａ）は、符号化処理の概略を示し、（Ｂ）は、復号化処理の概略を示す。
【図２】変換符号化方式における量子化処理を説明する図である。
【図３】本発明にかかる逆量子化方法が適応される復号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
【図４】制御装置２０（図３）により実行され、本発明にかかる逆量子化方法を実現する復号化プログラム５の機能構成を例示する図である。
【図５】分布推定部５２０（図４）をより詳細に説明する図である。
【図６】ヒストグラムｈと分布関数Ｌ（ラプラス関数）とを例示する図である。
【図７】ゼロ変換係数推定部５２６による分布推定処理を説明する図である。
【図８】補正部５８０による補正を模式的に説明する図である。
【図９】復号化プログラム５（図４）による復号化処理（Ｓ１０）のフローチャートである。
【図１０】逆量子化値推定部５００により用いられるフィルタを例示する図である。
【図１１】折れ線近似を説明する図である。
【図１２】ＪＰＥＧ２０００方式の変換係数を説明する図である。
【図１３】第２の実施形態における分布推定部５２０をより詳細に説明する図である。
【図１４】量子化インデクスの最大値と、最適Ｎ値との関係を示すグラフである。
【図１５】Ｎ値決定処理のフローチャートである。
【図１６】元の変換係数の標準偏差と推定した標準偏差との比を示すグラフである。
【図１７】第４の変形例を適用した場合の、元の変換係数の標準偏差と推定した標準偏差との比を示すグラフである。
【符号の説明】
【０１７３】
２・・・復号化装置
５・・・復号化プログラム
４０・・・エントロピ復号部
５０・・・逆量子化部
５００・・・逆量子化値推定部
５２０・・・分布推定部
５２２・・・ゼロ判定部
５２４・・・非ゼロ変換係数分布推定部
５２６・・・ゼロ変換係数分布推定部
５３２・・・頻度分布計測部
５３４・・・ヒストグラム正規化部
５３６・・・Ｎ値取得部
５３８・・・標準偏差推定部
５４０・・・期待値推定部
５６０・・・乱数発生部
５８０・・・補正部
５８２・・・分布情報特定部
５９０・・・逆量子化値出力部
６０・・・逆変換部
【図１】
2006270375.tif 000024
【図２】
2006270375.tif 000025
【図３】
2006270375.tif 000026
【図４】
2006270375.tif 000027
【図５】
2006270375.tif 000028
【図６】
2006270375.tif 000029
【図７】
2006270375.tif 000030
【図８】
2006270375.tif 000031
【図９】
2006270375.tif 000032
【図１０】
2006270375.tif 000033
【図１１】
2006270375.tif 000034
【図１２】
2006270375.tif 000035
【図１３】
2006270375.tif 000036
【図１４】
2006270375.tif 000037
【図１５】
2006270375.tif 000038
【図１６】
2006270375.tif 000039
【図１７】
2006270375.tif 000040