(57)【要約】【課題】ポスト量子化に起因して再生画像に生じる違和感や不明瞭感を極力抑制すること。【解決手段】ウェーブレット係数丸め処理手段１１はウェーブレット変換手段３により変換されたウェーブレット係数に対して丸め処理を行う。この丸め処理は、ウェーブレット変換手段３により変換されたウェーブレット係数に用いられるビット数よりも小さな数に予め設定されている有効ビット数でこのウェーブレット係数を表し、しかも、この有効ビットの先頭桁位置を、最上位ビットから数えて最初に「１」値が現れる桁位置とする処理である。【選択図】  図１
2004289737.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データに対してウェーブレット変換を行うことにより、任意に設定される分解レベルに応じて周波数成分の種類毎に分割された複数のサブバンドを有するウェーブレット係数を得るウェーブレット変換手段と、
前記ウェーブレット係数に対して丸め処理を行うウェーブレット係数丸め処理手段と、
前記丸め処理が行われたウェーブレット係数に対して係数ビットモデリングによるビットプレーン化を行う係数ビットモデリング手段と、
前記ビットプレーン化されたウェーブレット係数に対してエントロピー符号化を行うエントロピー符号化手段と、
前記エントロピー符号化により得られた符号データにおいて、所定のビットプレーンよりも下位側のビットデータ部分に対する切り捨て処理であるポスト量子化を行う画質制御手段と、
前記ポスト量子化が行われた符号データに対してヘッダ情報を生成して付加するヘッダ生成手段と、
前記ヘッダが付加された符号データである非可逆圧縮符号データを出力する符号データ出力手段と、
を備えた画像符号化装置であって、
前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段により得られた各サブバンドのウェーブレット係数に用いられるビット数よりも小さなビット数に予め設定されている有効ビット数で該ウェーブレット係数を表し、かつ、この有効ビットの先頭桁位置を、該ウェーブレット係数における有意数を有する最上位ビットの桁位置とする、丸め処理を行う手段である、
ことを特徴とする画像符号化装置。
【請求項２】
前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段で得られたウェーブレット係数から前記有効ビット数による表示により切り捨てられるビットデータ部分の数値が所定の閾値よりも大きな場合は、前記ウェーブレット係数を表している前記有効ビットの桁を繰り上げる繰り上げ処理を行うものである、
ことを特徴とする請求項１記載の画像符号化装置。
【請求項３】
コンピュータを、
入力画像データに対してウェーブレット変換を行うことにより、任意に設定される分解レベルに応じて周波数成分の種類毎に分割された複数のサブバンドを有するウェーブレット係数を得るウェーブレット変換手段と、
前記ウェーブレット係数に対して丸め処理を行うウェーブレット係数丸め処理手段と、
前記丸め処理が行われたウェーブレット係数に対して係数ビットモデリングによるビットプレーン化を行う係数ビットモデリング手段と、
前記ビットプレーン化されたウェーブレット係数に対してエントロピー符号化を行うエントロピー符号化手段と、
前記エントロピー符号化により得られた符号データにおいて、所定のビットプレーンよりも下位側のビットデータ部分に対する切り捨て処理であるポスト量子化を行う画質制御手段と、
前記ポスト量子化が行われた符号データに対してヘッダ情報を生成して付加するヘッダ生成手段と、
前記ヘッダが付加された符号データである非可逆圧縮符号データを出力する符号データ出力手段、
として機能させるための画像符号化プログラムであって、
前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段により得られた各サブバンドのウェーブレット係数に用いられるビット数よりも小さなビット数に予め設定されている有効ビット数で該ウェーブレット係数を表し、かつ、この有効ビットの先頭桁位置を、該ウェーブレット係数における有意数を有する最上位ビットの桁位置とする、丸め処理を行う手段である、
ことを特徴とする画像符号化プログラム。
【請求項４】
前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段で得られたウェーブレット係数から前記有効ビット数による表示により切り捨てられるビットデータ部分の数値が所定の閾値よりも大きな場合は、前記ウェーブレット係数を表している前記有効ビットの桁を繰り上げる繰り上げ処理を行うものである、
ことを特徴とする請求項３記載の画像符号化プログラム。
【請求項５】
前記ヘッダ生成手段は、前記有効ビット数を示す情報と、前記ウェーブレット係数丸め処理手段が前記繰り上げ処理を行ったか否かを示す繰り上げ処理実行フラグとを前記ヘッダ情報に含めるものである、
ことを特徴とする請求項４記載の画像符号化プログラム。
【請求項６】
コンピュータを、
ウェーブレット変換を用いた非可逆圧縮符号化により画像データを符号化して得られた符号データをエントロピー復号化してウェーブレット係数を出力するエントロピー復号化手段と、
前記エントロピー復号化手段からのウェーブレット係数に対して補正処理を行うウェーブレット係数補正処理手段と、
前記ウェーブレット係数補正処理手段から出力されるウェーブレット係数に対して逆ウェーブレット変換を施し画像データを得る逆ウェーブレット変換手段、
として機能させるための画像復号化プログラムであって、
前記非可逆圧縮符号化された前記符号データは、符号化時のウェーブレット変換により、任意に設定される分解レベルに応じ周波数成分の種類毎に分割された複数のサブバンドを有するものであり、また、前記ウェーブレット変換により変換されたウェーブレット係数に用いられるビット数よりも小さなビット数に予め設定されている有効ビット数で該ウェーブレット係数が表されるものであり、更に、この有効ビットの先頭桁位置を該ウェーブレット係数における有意数を有する最上位ビットの桁位置とする丸め処理が行われるものであり、また、前記ウェーブレット変換手段で得られたウェーブレット係数が前記有効ビット数による表示により切り捨てられるビットデータ部分の数値が所定の閾値よりも大きな場合は、前記ウェーブレット係数を表している前記有効ビットの桁を繰り上げる繰り上げ処理が行われるものであり、更に、各サブバンドのウェーブレット係数がポスト量子化により切り捨てられたビットデータ部分を持つものであり、
前記符号データには、前記有効ビット数と、前記繰り上げ処理が行われたか否かを示す繰り上げ処理実行フラグとがヘッダ情報として付加されており、
前記ウェーブレット係数補正処理手段が行う補正処理は、前記エントロピー復号化手段から出力されるウェーブレット係数において前記ポスト量子化に基づき切り捨てられたビットデータ部分のビット数を求め、更に、この切り捨てられたビット数で表現できる乱数を生成し、この生成した乱数を前記ウェーブレット係数に加算して新たなウェーブレット係数とする処理であり、
しかも、前記ウェーブレット係数補正処理手段は、前記有効ビット数と前記繰り上げ処理が行われたことを示す繰り上げ処理実行フラグとがヘッダ情報として前記符号データに付加されている場合は前記補正処理を行わないものである、
ことを特徴とする画像復号化プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化規格ＪＰＥＧ２０００を用いて画像データについて符号化を行う画像符号化装置、及び画像符号化プログラム、並びにこの符号化により得られる符号データについて復号化を行うための画像復号化プログラムに関するものである。
【０００２】
【従来の技術】
画像圧縮方式としては、最も一般的なＪＰＥＧをはじめとして従来から種々の方式が用いられてきているが、最近、国際標準化され注目されている画像圧縮方式としてＪＰＥＧ２０００がある。このＪＰＥＧ２０００は、従来のＪＰＥＧが離散コサイン変換（ＤＣＴ）を用いた方式であるのに対し、ウェーブレット変換（ＤＷＴ）を用いた方式であるため、より高画質及び高階調の画像が得られ、また、同程度の画質に比べ圧縮率を高くすることができるなど多くのメリットを有している。このようなＪＰＥＧ２０００の規格を用いた従来の画像復号化装置は、例えば、特許文献１に開示されている。
【０００３】
図１１は、ＪＰＥＧ２０００を用いた従来の画像符号化装置の構成を示すブロック図である。この装置は、ＤＣレベルシフト手段１、カラー変換手段２、ウェーブレット変換手段３、係数ビットモデリング手段５、エントロピー符号化手段６、ポスト量子化手段８を有する画質制御手段７、ヘッダ生成手段９、及び符号データ出力手段１０を備えている。
【０００４】
なお、上記の構成要素のうち、ＤＣレベルシフト手段１、カラー変換手段２、及びスカラ量子化手段４はＪＰＥＧ２０００においてはオプションとして備えられたものである。ＪＰＥＧ２０００では、その他にもオプションとして備えられたものがあるが、本発明の技術とは直接的な関連性がないか、あっても重要度が低いため説明を省略している。また、ＪＰＥＧ２０００では、画像を複数のタイル領域に分割し、各タイル領域間の相関関係をなくすことによって高速の並列処理を可能にしているが、本明細書での符号化処理は、１つのタイル領域における処理であることを前提としている。したがって、図１１においては、タイリング手段等の構成要素については図示を省略している。
【０００５】
次に、この図１１に係る装置の動作について説明すると、まず、入力画像データはＤＣレベルシフト手段１に入力され、ＤＣレベルがシフトされる。ＤＣレベルのシフトとは、符号化効率を高めるために、ＤＣ（直流）成分すなわちゼロ成分を基準として入力画像データのレベルをシフトすることである。
【０００６】
ＤＣレベルシフト手段１からの入力画像データはカラー変換手段２に入力され、ここでＲＧＢカラー空間における値からＹＵＶカラー空間における値への変換が行われる。この変換も符号化効率を高めるために行われるものである。
【０００７】
カラー変換手段２でカラー変換された画像データはウェーブレット変換演算手段３に入力されウェーブレット変換が行われる。ウェーブレット変換は、複雑な振動波形の解析等を行う場合に用いられる変換であり、フーリェ解析の特徴を生かしつつ、時間的又は空間的な変動を同時にとらえることができる波形データ解析手法である。
【０００８】
スカラ量子化手段４は、ウェーブレット変換演算手段３からの変換データをある値で割算することにより、この変換データをスカラ値に量子化する。但し、この量子化は必ずしも常に必要なわけではない。
【０００９】
係数ビットモデリング手段５は、スカラ量子化手段４により量子化が行われたウェーブレット係数をビットプレーン化し、更に、各ビットプレーンに対し３つの所定のパス（Ｓｉｇｎｉｆｉｃａｎｔ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ，Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ，Ｃｌｅａｎｕｐ  Ｐａｓｓと呼ばれる３つのパス）による処理を行う。
【００１０】
係数ビットモデリング手段５により処理されたビットプレーンデータはエントロピー符号化手段６に入力され、ここで符号化が行われる。符号化により得られた符号データは画質制御手段７に入力され、ここでポスト量子化手段８によりポスト量子化（「トランケーション」と呼ばれることもある）と呼ばれる切り捨て処理が行われる。
【００１１】
ポスト量子化が行われたウェーブレット係数はヘッダ生成手段９に入力される。そして、このヘッダ生成手段９により生成された必要なヘッダ情報（例えば、ウェーブレット係数のビット数、ゼロビットプレーン数、処理パス数等）がエントロピー符号化手段６からの符号データに付加される。符号データ出力手段１０は、このヘッダ情報が付加された符号データの出力を行う。
【００１２】
ここで、ウェーブレット変換手段３によるウェーブレット変換につき更に詳しく説明する。ウェーブレット変換手段３により変換されたデータは任意の分解レベル（ｄｅｃｏｍｐｏｓｉｔｉｏｎ  ｌｅｖｅｌ）を有し、周波数成分の種類毎に分割された複数のサブバンドを有している。図１２は、各分解レベルと各サブバンドとの関係を示す説明図であり、（ａ），（ｂ），（ｃ）はそれぞれ分解レベルが１，２，３の場合を示している。
【００１３】
すなわち、ある１つのタイルの画像データに対してウェーブレット変換を行うと、この画像データは、図１２（ａ）に示すように、１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨの４つのサブバンドに分割される。画像データが、これら４つのサブバンド１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨにより分割されている状態を、ＪＰＥＧ２０００では分解レベルが１の状態と呼んでいる。ここで、１ＬＬは水平方向及び垂直方向が共に低周波成分であることを示し、１ＨＬは水平方向が高周波成分で垂直方向が低周波成分であることを示し、１ＬＨは水平方向が低周波成分で垂直方向が高周波成分であることを示し、１ＨＨは水平方向及び垂直方向が共に高周波成分であることを示している。そして、各サブバンドは所定の大きさのコードブロックによって形成されている（このコードブロックの大きさはヘッダ生成手段９により符号データに付加される。）。
【００１４】
次いで、４つのサブバンド１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨのうち１ＬＬに対してのみウェーブレット変換を行うと、図１２（ｂ）に示すように、このサブバンド１ＬＬは４つのサブバンド２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨに分割されるが、この状態は分解レベルが２の状態と呼ばれる。更に、４つのサブバンド２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨのうち２ＬＬに対してのみウェーブレット変換を行うと、図１２（ｃ）に示すように、このサブバンド２ＬＬは４つのサブバンド３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨに分割されるが、この状態は分解レベルが３の状態と呼ばれる。このようにＬＬ成分のサブバンドに対してのみウェーブレット変換を再帰的に繰り返す手法はオクターブ分解と呼ばれる。
【００１５】
次に、画質制御手段７のポスト量子化手段８が行うポスト量子化につき図１３を参照しつつ説明する。図１３（ａ）はポスト量子化手段８が係数ビットモデリング手段５から入力するビットプレーン化されたウェーブレット係数の内容を示す説明図である。この図に示すように、ウェーブレット係数は９ビットで表されており、各係数の値は「５２，２４２，１４，５，４８８，７９」である。また、ＭＳＢ（９ビット目）側からＬＳＢ（１ビット目）に向かう矢印は、前述の３つのパスによる処理方向を示している。ポスト量子化手段８は、このビットプレーン化されたウェーブレット係数に対し、３つのパスのうちのＣｌｅａｎｕｐ  Ｐａｓｓで終わったビットプレーンと次のビットプレーンとの境目を切り捨てポイントとし、図１３（ｂ）の斜線部で示すように、この切り捨てポイントよりも下位側のビットデータを全て「０」とする切り捨て処理を行う。ＪＰＥＧ２０００では、このような切り捨て処理すなわちポスト量子化により極力効率的な圧縮符号化を行うことが企図されている。
【００１６】
【特許文献１】
特開２００２−３６９２０２号公報
【００１７】
【発明が解決しようとする課題】
ＪＰＥＧ２０００では、上述したポスト量子化により符号化量が削減され効率的な画像圧縮が行われるようになっている。しかし、このポスト量子化が行われると、切り捨てポイントより下位のビットデータは、有意な値（つまり「１」値）であると否とにかかわらず全て一律に「０」値となってしまうため、これをそのまま復号化して再生すると再生画像には違和感や不明瞭感のある部分が含まれることがある。
【００１８】
すなわち、図１３（ａ）に示したウェーブレット係数の値「５２，２４２，１４，５，４８８，７９」は、図１３（ｂ）に示したウェーブレット係数の値「３２，２２４，０，０，４８０，６４」に変化している。この場合、図１３（ａ）の「５２，２４２，４８８，７９」については、ポスト量子化により「３２，２２４，４８０，６４」に低下していてもデータ自体としては依然として存在していることに変わりはないため、その違和感や不明瞭感はそれほど大きなものとはならない。
【００１９】
ところが、図１３（ａ）の「１４，５」はポスト量子化によって「０，０」となってしまっている。これは値は小さくても何らかの形で存在していた原画像データが全く存在しなくなってしまったことを意味している。したがって、値が低下することについては同じであってもその違和感や不明瞭感は「５２，２４２，４８８，７９」が「３２，２２４，４８０，６４」に低下した場合に比べてかなり大きなものとなる。
【００２０】
本発明は上記事情に鑑みてなされたものであり、ポスト量子化に起因して再生画像に生じる違和感や不明瞭感を極力抑制することが可能な画像符号化装置及び画像符号化プログラムを提供し、更に、これらにより生成された符号データを復号化するのに好適な画像復号化プログラムを提供することを目的としている。
【００２１】
【課題を解決するための手段】
上記課題を解決するための手段として、請求項１記載の発明は、入力画像データに対してウェーブレット変換を行うことにより、任意に設定される分解レベルに応じて周波数成分の種類毎に分割された複数のサブバンドを有するウェーブレット係数を得るウェーブレット変換手段と、前記ウェーブレット係数に対して丸め処理を行うウェーブレット係数丸め処理手段と、前記丸め処理が行われたウェーブレット係数に対して係数ビットモデリングによるビットプレーン化を行う係数ビットモデリング手段と、前記ビットプレーン化されたウェーブレット係数に対してエントロピー符号化を行うエントロピー符号化手段と、前記エントロピー符号化により得られた符号データにおいて、所定のビットプレーンよりも下位側のビットデータ部分に対する切り捨て処理であるポスト量子化を行う画質制御手段と、前記ポスト量子化が行われた符号データに対してヘッダ情報を生成して付加するヘッダ生成手段と、前記ヘッダが付加された符号データである非可逆圧縮符号データを出力する符号データ出力手段と、を備えた画像符号化装置であって、前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段により得られた各サブバンドのウェーブレット係数に用いられるビット数よりも小さなビット数に予め設定されている有効ビット数で該ウェーブレット係数を表し、かつ、この有効ビットの先頭桁位置を、該ウェーブレット係数における有意数を有する最上位ビットの桁位置とする、丸め処理を行う手段である、ことを特徴とする。
【００２２】
請求項２記載の発明は、請求項１記載の発明において、前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段で得られたウェーブレット係数から前記有効ビット数による表示により切り捨てられるビットデータ部分の数値が所定の閾値よりも大きな場合は、前記ウェーブレット係数を表している前記有効ビットの桁を繰り上げる繰り上げ処理を行うものである、ことを特徴とする。
【００２３】
請求項３記載の発明は、コンピュータを、入力画像データに対してウェーブレット変換を行うことにより、任意に設定される分解レベルに応じて周波数成分の種類毎に分割された複数のサブバンドを有するウェーブレット係数を得るウェーブレット変換手段と、前記ウェーブレット係数に対して丸め処理を行うウェーブレット係数丸め処理手段と、前記丸め処理が行われたウェーブレット係数に対して係数ビットモデリングによるビットプレーン化を行う係数ビットモデリング手段と、前記ビットプレーン化されたウェーブレット係数に対してエントロピー符号化を行うエントロピー符号化手段と、前記エントロピー符号化により得られた符号データにおいて、所定のビットプレーンよりも下位側のビットデータ部分に対する切り捨て処理であるポスト量子化を行う画質制御手段と、前記ポスト量子化が行われた符号データに対してヘッダ情報を生成して付加するヘッダ生成手段と、前記ヘッダが付加された符号データである非可逆圧縮符号データを出力する符号データ出力手段、として機能させるための画像符号化プログラムであって、前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段により得られた各サブバンドのウェーブレット係数に用いられるビット数よりも小さなビット数に予め設定されている有効ビット数で該ウェーブレット係数を表し、かつ、この有効ビットの先頭桁位置を、該ウェーブレット係数における有意数を有する最上位ビットの桁位置とする、丸め処理を行う手段である、ことを特徴とする。
【００２４】
請求項４記載の発明は、請求項３記載の発明において、前記ウェーブレット係数丸め処理手段は、前記ウェーブレット変換手段で得られたウェーブレット係数から前記有効ビット数による表示により切り捨てられるビットデータ部分の数値が所定の閾値よりも大きな場合は、前記ウェーブレット係数を表している前記有効ビットの桁を繰り上げる繰り上げ処理を行うものである、ことを特徴とする。
【００２５】
請求項５記載の発明は、請求項４記載の発明において、前記ヘッダ生成手段は、前記有効ビット数を示す情報と、前記ウェーブレット係数丸め処理手段が前記繰り上げ処理を行ったか否かを示す繰り上げ処理実行フラグとを前記ヘッダ情報に含めるものである、ことを特徴とする。
【００２６】
請求項６記載の発明は、コンピュータを、ウェーブレット変換を用いた非可逆圧縮符号化により画像データを符号化して得られた符号データをエントロピー復号化してウェーブレット係数を出力するエントロピー復号化手段と、前記エントロピー復号化手段からのウェーブレット係数に対して補正処理を行うウェーブレット係数補正処理手段と、前記ウェーブレット係数補正処理手段から出力されるウェーブレット係数に対して逆ウェーブレット変換を施し画像データを得る逆ウェーブレット変換手段、として機能させるための画像復号化プログラムであって、前記非可逆圧縮符号化された前記符号データは、符号化時のウェーブレット変換により、任意に設定される分解レベルに応じ周波数成分の種類毎に分割された複数のサブバンドを有するものであり、また、前記ウェーブレット変換により変換されたウェーブレット係数に用いられるビット数よりも小さなビット数に予め設定されている有効ビット数で該ウェーブレット係数が表されるものであり、更に、この有効ビットの先頭桁位置を該ウェーブレット係数における有意数を有する最上位ビットの桁位置とする丸め処理が行われるものであり、また、前記ウェーブレット変換手段で得られたウェーブレット係数が前記有効ビット数による表示により切り捨てられるビットデータ部分の数値が所定の閾値よりも大きな場合は、前記ウェーブレット係数を表している前記有効ビットの桁を繰り上げる繰り上げ処理が行われるものであり、更に、各サブバンドのウェーブレット係数がポスト量子化により切り捨てられたビットデータ部分を持つものであり、前記符号データには、前記有効ビット数と、前記繰り上げ処理が行われたか否かを示す繰り上げ処理実行フラグとがヘッダ情報として付加されており、前記ウェーブレット係数補正処理手段が行う補正処理は、前記エントロピー復号化手段から出力されるウェーブレット係数において前記ポスト量子化に基づき切り捨てられたビットデータ部分のビット数を求め、更に、この切り捨てられたビット数で表現できる乱数を生成し、この生成した乱数を前記ウェーブレット係数に加算して新たなウェーブレット係数とする処理であり、しかも、前記ウェーブレット係数補正処理手段は、前記有効ビット数と前記繰り上げ処理が行われたことを示す繰り上げ処理実行フラグとがヘッダ情報として前記符号データに付加されている場合は前記補正処理を行わないものである、ことを特徴とする。
【００２７】
【発明の実施の形態】
図１は、本発明の実施形態に係る画像符号化装置の構成を示すブロック図である。図１が図１１と異なる点は、スカラ量子化手段４と係数ビットモデリング手段５との間にウェーブレット係数丸め処理手段１１が設けられている点である。
【００２８】
図２は、このウェーブレット係数丸め処理手段１１の動作を説明するためのフローチャートである。ウェーブレット係数丸め処理手段１１は、まず、ウェーブレット係数をコードブロック毎に入力し（ステップ１）、そのコードブロックが属するサブバンドがＬＬ以外のサブバンドであるか否かにつき判別する（ステップ２）。ＬＬのサブバンドであれば丸め処理を行わずに、ステップ１に戻って次のコードブロックを入力する。一方、ＬＬ以外のサブバンドすなわちＬＨ、ＨＬ、ＨＨ等のサブバンドであれば有効ビット数を決定する（ステップ３）。
【００２９】
この有効ビット数の決定は、ユーザが手動設定するようにすることもできるが、コードブロック内の最大値や予想される切り捨てポイント位置などに基づき自動設定させることができる。例えば、コードブロック内の最大値が「４８８」である場合を考えて見る。このウェーブレット係数「４８８」の２進数表現は「１，１，１，１，０，１，０，０，０」であるが、ポスト量子化手段８の予想される切り捨てポイントの位置がＬＳＢ側から数えて５ビット目と６ビット目の間であるとすると、このウェーブレット係数について実際に符号化されるのは上位４ビットのみであり、その２進数表現は「１，１，１，１，」となる。したがって、この４ビットの半分の２ビットを有効ビット数として設定することが考えられる。
【００３０】
次いで、ウェーブレット係数丸め処理手段１１は、このようにして決定した有効ビット数に基づき各ウェーブレット係数に対して丸め処理を実行する（ステップ４）。そして、丸め処理を全てのコードブロックについて終了したか否か判別し（ステップ５）、全てのコードブロックについて終了していなければステップ１に戻って次のコードブロックを入力する。一方、全てのコードブロックについて終了していれば、全てのサブバンドについて終了したか否かを判別し（ステップ６）、全てのサブバンドについて終了していなければステップ１に戻って次のサブバンドに属するコードブロックを入力する。一方、全てのサブバンドについて終了していれば、そこでウェーブレット係数丸め処理手段１１の動作が終了する。
【００３１】
次に、ステップ４の丸め処理の詳細な内容を図３のフローチャートに基づき具体的に説明する。但し、以下の具体例では、有効ビット数を２とし、この有効ビット数に基づき図４（ａ）のウェーブレット係数を図４（ｂ）に示すように丸め処理する場合につき説明する。なお、理解を容易にするため、図４（ａ）のウェーブレット係数の値は、従来技術における図１３（ａ）のウェーブレット係数と同一の値にしてある。
【００３２】
ウェーブレット係数丸め処理手段１１は、まずウェーブレット係数「５２」を入力し、このウェーブレット係数「５２」の中に有意な数値である「１」値があるか否かを判別する（ステップ４１）。もし、「１」値がなければ、ウェーブレット係数丸め処理手段１１はこのウェーブレット係数を「０」値として処理するが（ステップ４２）、図４（ａ）に示されるように、ウェーブレット係数の２進数表現の中には「１」値が含まれているので、この場合のステップ４１の判別は「ＹＥＳ」となる。
【００３３】
次いで、ウェーブレット係数丸め処理手段１１は、最初の「１」の位置を先頭桁位置にした有効ビット数分のデータのみを有効とする演算を行う（ステップ４３）。ここで、最初の「１」の位置とは、最上位ビットであるＭＳＢのビット（９ビット目）から数えて最初に現れる「１」の位置である。ウェーブレット係数「５２」の２進数表現は、図４（ａ）に示されるように、「０，０，０，１，１，０，１，０，０」であり、最上位ビットであるＭＳＢ側から数えて４番目のビット（ＬＳＢ側からだと６ビット目）が最初に現れる「１」値となっている。したがって、ウェーブレット係数丸め処理手段１１は、図４（ｂ）に示されるように、この４番目のビットの「１」の位置を先頭桁位置とし、これから有効ビット数の２ビット分のデータである４番目及び５番目の「１，１」のみを有効ビットデータとする。
【００３４】
次いで、ウェーブレット係数丸め処理手段１１は、切り捨て分が発生するか否かを判別する（ステップ４４）。切り捨て分が発生する場合とは、有効ビットデータ以外のデータに「１」値が含まれている場合である。いまの場合、ウェーブレット係数「５２」の２進数表現において、有効ビットデータ「１，１」より下位側のデータは「０，１，０，０」（１０進数表現の「４」）であり、「１」が含まれているのでステップ４４の判別結果は「ＹＥＳ」となる。
【００３５】
ステップ４４の判別結果が「ＹＥＳ」の場合、ウェーブレット係数丸め処理手段１１は、切り捨て分が閾値より大きいか否かを判別する（ステップ４５）。この例では、切り捨て分の上位２桁のビットのデータを「１」でマスクした値を閾値としている。いまの場合、切り捨て分のデータ「０，１，０，０」（１０進数表現の「４」）の上位２桁のビットのデータを「１」でマスクした値は「１，１」（１０進数表現の「１２」）であり、切り捨て分は閾値より小さいものとなっている。したがって、ステップ４５の判別結果は「ＮＯ」となる。
【００３６】
そして、ウェーブレット係数丸め処理手段１１は、有効ビットデータ以外の６番目〜９番目（ＬＳＢ側からの４ビット目〜１ビット目）のデータ「０，１，０，０」をすべてゼロとして「０，０，０，０」とする。結局、図４（ａ）に示したウェーブレット係数の値「５２」は、有効ビット数を２とした丸め処理により、図４（ｂ）に示したように、「４８」となる。
【００３７】
ウェーブレット係数丸め処理手段１１は、次にウェーブレット係数「２４２」を入力し、ステップ４１で「ＹＥＳ」の判別を行った後、ステップ４３の演算を行う。すなわち、ウェーブレット係数「２４２」の２進数表現は「０，１，１，１，１，０，０，１，０」であり、最初の「１」の位置を先頭桁位置にした有効ビット数（２）分のデータとは「１，１」（１０進数表現の「１９２」）である。この有効ビット数分のデータをそのまま最終データとして採用したのでは、ウェーブレット係数の当初の値「２４２」が「１９２」と大きく低下することになり好ましくない。ステップ４４，４５，４７，４８はこのような場合を想定して設けたものである。
【００３８】
つまり、ウェーブレット係数丸め処理手段１１は、ステップ４４について「ＹＥＳ」と判別した後、ウェーブレット係数「２４２」の有効ビット数分のデータ「１，１」（１０進数表現の「１９２」）以外の切り捨て分データ「１，１，０，０，１，０」（１０進数表現の「５０」）が、上位２桁のビットのデータを「１」でマスクして得られる閾値「１，１」（１０進数表現の「４８」）よりも大きいと判別し、ステップ４５の判別結果を「ＹＥＳ」とする。
【００３９】
そして、現在の有効ビット数分のデータ「１，１」（１０進数表現の「１９２」）を１つ繰り上げて「１，０」（１０進数表現の「２５６」）とする（ステップ４７）。この１０進数表現のウェーブレット係数「２５６」は、上記の「１９２」よりもはるかに元のウェーブレット係数「２４２」に近く好ましいものになっている。このとき、ウェーブレット係数丸め処理手段１１は、更に、繰り上げ処理が実行されたことを示すフラグを立てるようにする（ステップ４８）。後にヘッダ生成手段９は、ウェーブレット係数丸め処理手段１１がステップ３にて決定した有効ビット数と、この繰り上げ処理実行フラグとをヘッダ情報に含めるようにし、符号データ出力手段１０はこのようなヘッダ情報が付加された符号データを出力することになる。
【００４０】
この後、ウェーブレット係数丸め処理手段１１は、有効ビットデータ以外の３番目〜９番目（ＬＳＢ側から７ビット目〜１ビット目）のデータをすべてゼロとする（ステップ４６）。結局、図４（ａ）に示したウェーブレット係数の値「２４２」は、有効ビット数を２とした丸め処理、及び繰り上げ処理により、図４（ｂ）に示したように、「２５６」となる。
【００４１】
ウェーブレット係数丸め処理手段１１は、次にウェーブレット係数「１４」を入力する。この場合の処理は、上述したウェーブレット係数「５２」を入力した場合と同様であるため詳しい説明は省略する。結局、図４（ａ）に示したウェーブレット係数の値「１４」は、有効ビット数を２とした丸め処理により、図４（ｂ）に示したように、「１２」となる。
【００４２】
同様にして、ウェーブレット係数丸め処理手段１１はウェーブレット係数「５」を入力し、結局、図４（ａ）に示したウェーブレット係数の値「５」は、有効ビット数を２とした丸め処理により、図４（ｂ）に示したように、「４」となる。
【００４３】
次に、ウェーブレット係数丸め処理手段１１はウェーブレット係数「４８８」を入力する。このウェーブレット係数「４８８」の２進数表現は「１，１，１，１，０，１，０，０，０」であり、有効ビットデータはＭＳＢ側から上位２桁のデータの「１，１」（１０進数表現の「３８４」）である。そして、切り捨て分は「１，１，０，１，０，０，０」（１０進数表現の「１０４」）であり、これはこの切り捨て分の上位２桁のビットデータを「１」でマスクして得られる閾値「１，１」（１０進数表現の「９６」）よりも大きいものであるため、ステップ４５の判別結果は「ＹＥＳ」となる。したがって、本来であればステップ４７の繰り上げ処理を行うべきであるが、それでは使用ビット数が９ビットを超えて１０ビットになってしまう。それ故、この場合には直ちにステップ４６の処理を行うことにする。
【００４４】
このように、ステップ４５の判別結果が「ＹＥＳ」であるにもかかわらずステップ４７，４８の処理を行わずに直ちにステップ４６の処理を行うフローを、本来であれば図示するべきであるが、図面が煩雑になるため図３においては省略している。結局、図４（ａ）に示したウェーブレット係数の値「４８８」は、有効ビット数を２とした丸め処理により、図４（ｂ）に示したように、「３８４」となる。
【００４５】
ウェーブレット係数丸め処理手段１１は、最後にウェーブレット係数「７９」を入力する。この場合の処理も、上述したウェーブレット係数「５２」を入力した場合と同様であるため詳しい説明は省略する。結局、図４（ａ）に示したウェーブレット係数の値「７９」は、有効ビット数を２とした丸め処理により、図４（ｂ）に示したように、「６４」となる。
【００４６】
ウェーブレット係数は、ウェーブレット係数丸め処理手段１１により上記のような丸め処理が行われた後、係数ビットモデリング手段５による処理が行われ、更に画質制御手段７のポスト量子化手段８により切り捨て処理であるポスト量子化が行われる。このときの切り捨てポイントは、図４（ｂ）の太線ラインで示されている。
【００４７】
ポスト量子化が行われたウェーブレット係数はエントロピー符号化手段６による符号化が行われ、その符号データにヘッダ生成手段９が生成したヘッダ情報が付加される。このヘッダ情報には、上記の有効ビット数が含まれ、また、繰り上げ処理が実行されている場合には繰り上げ処理実行フラグについての情報が含まれる。そして、ヘッダ情報が付加された符号データは符号データ出力手段１０から出力される。
【００４８】
図４（ｂ）のウェーブレット係数を図１３（ｂ）と対比してみれば明らかなように、図１３（ｂ）では値が小さなウェーブレット係数はポスト量子化によって切り捨てられた結果全くゼロとなっていたが、図４（ｂ）では値が小さなウェーブレット係数でも全くゼロとはならないで存在している。これは、ウェーブレット係数丸め処理手段１１がＭＳＢ側から数えて最初に「１」が現れるビットの位置を有効ビットの先頭桁位置とする丸め処理を行ったことにより、その後にポスト量子化手段８によって行われる切り捨て処理の切り捨てポイントが全体として下がったからである。このように、図１の構成に係る画像符号化装置によれば、従来技術ではゼロとなってしまっていた小さな値のウェーブレット係数についても存続させることができるので、画像再生時には画像に生じる違和感や不明瞭感を極力抑制することが可能になる。
【００４９】
次に、上述した図１の構成に係る画像符号化装置により符号化された符号データについて復号化を行う画像復号化装置につき説明する。図５は、この画像復号化装置の構成を示すブロック図である。この装置は、符号データ入力手段５１、ヘッダ解析手段５２、エントロピー復号化手段５３、ウェーブレット係数補正処理手段５４、スカラ逆量子化手段５５、逆ウェーブレット変換手段５６、カラー変換手段５７、ＤＣレベルシフト手段５８、及び画像データ出力手段５９を備えている。これらのうち、スカラ逆量子化手段５５、カラー変換手段５７、ＤＣレベルシフト手段５８はＪＰＥＧ２０００においてはオプションとして備えられたものである。ＪＰＥＧ２０００では、その他にもオプションとして備えられたものがあるが、本発明の技術とは直接的な関連性がないか、あっても重要度が低いため説明を省略している。
【００５０】
次に、図５の動作につき説明する。まず、図１の画像符号化装置によりＪＰＥＧ２０００の規格にしたがって圧縮符号化された画像データは、ファイルシステムやネットワーク手段を用いて符号データ入力手段５１によって入力される。この画像データには、メインヘッダ、及びタイルヘッダが付されており、ヘッダ解析手段５２はこれらのヘッダを読み込み、解析する。ここで、メインヘッダには、画像の大きさ、タイルの大きさ、画像位置のオフセット、タイル位置のオフセット、１画素あたりのサンプルビット数、ＲＧＢなどのコンポーネント数等についての情報が格納されている。そして、既述したように、図１のウェーブレット係数丸め処理手段１１が丸め処理を行った際の有効ビット数や繰り上げ処理実行フラグについての情報も格納されている。また、タイルヘッダには、タイル番号、タイルの大きさ等が格納され、符号化スタイルや量子化スタイルなどを指定することができる。
【００５１】
エントロピ復号化手段５３は、ヘッダ解析手段５２の解析結果を用いて、圧縮符号化された画像データのエントロピ復号化を行い、出力されるビット列からスカラ量子化した係数列を作成する。
【００５２】
エントロピ復号化手段５３によりエントロピ復号化され係数ビットモデリングされたビットプレーンデータの値はウェーブレット係数補正処理手段５４により補正処理される。ウェーブレット係数補正処理手段５４は、この補正した値をスカラ逆量子化手段５５へ（スカラ逆量子化されない場合は逆ウェーブレット変換手段５６へ）出力する。一般的に、画像復号化装置において行われる処理は符号化されたデータの範囲内で復号化するだけであるため、符号化画像データ以上に良好な画質を有する復号化画像データを得られないのが通常である。しかし、本発明では、符号化時にはポスト量子化により切り捨てられていた可能性の大きい有意のデータを付加する補正処理を行うことにより、符号化画像データ以上に良好な画質を有する復号化画像データを得ることを可能にしている。
【００５３】
スカラ逆量子化手段５５は、ヘッダ解析手段５２で解析されたメインヘッダ及びタイルヘッダにより指定された量子化スタイルに基づき、エントロピ復号化手段５３で作成された係数列をＪＰＥＧ２０００の規格にある所定の計算式で逆量子化し、ウェーブレット係数を生成する。なお、符号化時にはウェーブレット変換により生成されたウェーブレット係数は必ずしも量子化されるとは限らず、その場合にはスカラ逆量子化手段５５による逆量子化は行われないことになる。
【００５４】
逆ウェーブレット変換手段５６は、スカラ逆量子化手段５５で得られたウェーブレット係数をメインヘッダ又はタイルヘッダで指定された符号化スタイルの分解数に基づき逆ウェーブレット変換を行い、ＹＵＶカラー空間の画像データを作成する。
【００５５】
カラー変換手段５７は、逆ウェーブレット変換手段５６で得られた画像データをヘッダ解析手段５２の解析結果にしたがってＹＵＶ成分からＲＧＢ成分へカラー変換する。但し、モノクロ画像の符号データや、符号化時にカラー変換を行わなかった場合、カラー変換手段５７は動作しない。
【００５６】
ＤＣレベルシフト手段５８は、カラー変換手段５７で得られたＲＧＢ成分の各値のＤＣレベルをシフトする。ＤＣレベルシフトとは、符号化時にダイナミックレンジが値０を中心とするようにシフトすることであり、復号化時にはそれを元に戻すことである。ＤＣレベルシフトを行う理由は、周波数変換後の係数は正負の符号と絶対値とに分けられて符号化されるため、ゼロ値を基準としてデータ配置されている方が符号化効率が高くなるからである。画像データ出力手段５９は、ＤＣレベルシフト手段５８で得られた画像を出力する手段である。
【００５７】
次に、上記のウェーブレット係数補正処理手段５４が行う補正係数処理の内容を図６のフローチャートに基づき説明する。なお、ウェーブレット係数補正処理手段５４の処理対象となる符号データは非可逆符号データであるが、本発明に係る画像復号化装置は可逆符号データ及び非可逆符号データのいずれをも扱うことができる（ウェーブレット係数補正処理手段５４は可逆符号データに対しては補正係数処理を行わない。）。
【００５８】
ウェーブレット係数補正処理手段５４は、まず、分解レベルの大きなサブバンドの順に、ＬＬ以外の各サブバンドに属する各コードブロック毎にウェーブレット係数を注目していく（ステップ６１）。例えば、図１２（ｃ）に示すように、分解レベルが「３」であるとすると、ウェーブレット係数補正処理手段５４は、３ＬＬのサブバンドを除外し、３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨのサブバンドの順で、コードブロック毎にウェーブレット係数を注目していく。そして、いまウェーブレット係数補正処理手段５４が注目しているのが図７に示したウェーブレット係数のデータであるとし、このウェーブレット係数はサブバンド１ＨＬに属するコードブロックの一部であるとする。また、ウェーブレット係数補正処理手段５４には、このコードブロックの有効ビット数が２であり、繰り上げ処理が実行されている旨のヘッダ情報がヘッダ解析手段５２から入力されているものとする。
【００５９】
ウェーブレット係数補正処理手段５４は、このウェーブレット係数が符号化時にポスト量子化が行われたものであるか否かについて判別し（ステップ６２）、ポスト量子化が行われていればその切り捨てポイントを求めるようにする。ここで、ポスト量子化が行われているか否かについては、エントロピ復号化手段５３が対象となるウェーブレット係数について全て復号化できたか否かにより判別することができ、切り捨てポイントについては、最後に復号化できたビットプレーンにおいて、復号化できた係数とできなかった係数との境界を求めることにより行うことができる。
【００６０】
次いで、ウェーブレット係数補正処理手段５４は、各ウェーブレット係数毎に、その補正しようとするウェーブレット係数がゼロであるか否かを判別し（ステップ６３）、ゼロでなければ、このウェーブレット係数は符号化時に繰り上げ処理が行われたものであるか否かにつき判別する（ステップ６４）。なお、繰り上げ処理については、図３のステップ４７において既述している。
【００６１】
そして、繰り上げ処理が行われていないウェーブレット係数に対しては、切り捨てられたビットの数に基づき乱数を生成し、この乱数を現在のウェーブレット係数に加算して、これを新たなウェーブレット係数とする処理を行う（ステップ６５）。一方、繰り上げ処理が行われているウェーブレット係数に対しては、このような生成した乱数を加算するような処理は行わないようにする。何故なら、繰り上げ処理が行われているということは、繰り上げ処理後のウェーブレット係数の値が元のウェーブレット係数の値と大きくずれてしまう場合があり（もちろん、繰り上げ処理を行った場合の方が行わない場合よりもズレが小さくなることもある）、このような乱数の加算を行うとそのズレを一層大きくしてしまう結果となる虞があるからである。
【００６２】
ここで、図７に示されたウェーブレット係数は、左から順に「１６，６４，２４，３２，０，０，０，４８」であるが、そのうちゼロではないウェーブレット係数は「１６，６４，２４，３２，４８」である。そして、図１の画像符号化装置において前述したように、最上位ビットから数えて最初の「１」の位置を先頭桁位置とする有効ビット数が２のウェーブレット係数であって繰り上げ処理が行われたものは、そのデータ配列が「１，０」となっている。このようなデータ配列を有するウェーブレット係数は、「６４」及び「３２」である。したがって、ウェーブレット係数補正処理手段５４は、この「６４」及び「３２」を除いた「１６，２４，４８」に対して、乱数発生器を用いて加算すべき乱数「５，４，１」を発生させる。
【００６３】
但し、これらの係数についてポスト量子化により切り捨てられているデータのビット数は、それぞれ４ビット、３ビット、４ビットであり、これらのビット数で表すことのできる乱数の最大値は「１５，７，１５」である。図８（ａ）は、切り捨てポイントの下側データ部分に、このようにして発生させた乱数を記入した状態を示したものである。また、図８（ｂ）は、図７における切り捨てポイントの下側データ部分を図８（ａ）に示したデータで置き換えた状態を示している。
【００６４】
一方、ステップ６３で、補正しようとするウェーブレット係数がゼロであると判別した場合、ウェーブレット係数補正処理手段５４は、注目しているコードブロックが属するサブバンドの分解レベルが最大であるか否かを判別する（ステップ６６）。現在注目しているサブバンドは上述したように１ＨＬであり、これは分解レベルが１であって最大のものではないから、この判別結果は「ＮＯ」となる。
【００６５】
次いで、ウェーブレット係数補正処理手段５４は、サブバンド１ＨＬよりも分解レベルが１段階上のサブバンド２ＨＬに属するウェーブレット係数を参照して乱数を生成し、これを現在のウェーブレット係数（ゼロである）に加算する（ステップ６７）。
【００６６】
ここで、サブバンド１ＨＬとサブバンド２ＨＬとは、それぞれ画面の大きさが異なるため、このままの状態ではサブバンド１ＨＬ上の現在の注目位置が２ＨＬ上のどの位置に対応するのか知ることができない。そこで、この場合は、図９に示すように、サブバンド２ＨＬの画面を１ＨＬと同じ大きさになるまで拡大し、その上で両者を比較する。そして、サブバンド１ＨＬ上の現在の注目位置に対応するサブバンド２ＨＬ上の位置のウェーブレット係数を参照し、注目位置について生成した乱数の値がこの参照したウェーブレット係数の値からかけ離れた値とならないように制限を加えるようにする。
【００６７】
図１０（ａ）は、切り捨てポイントの下側データ部分に、このようにして発生させた乱数を記入した状態を示したものである。また、図１０（ｂ）は、図７における切り捨てポイントの下側データ部分を図１０（ａ）に示したデータで置き換えた状態を示している。つまり、サブバンド１ＨＬ上で現在注目しているウェーブレット係数がゼロとなっている位置（３個所）に対応する２ＨＬ上の位置のウェーブレット係数が「５，５，３０」であるとすると、ウェーブレット係数補正処理手段５４はこれらの係数に所定値αを乗じた値「５α，５α，３０α」を得る。ここで、α＝１とすると、やはり「５，５，３０」となる。
【００６８】
また、現在注目されており値がゼロとなっている３つのウェーブレット係数において、ポスト量子化で切り捨てられているビット数はそれぞれ３ビット、４ビット、４ビットであり、これらのビット数で決まる乱数最大値は「７，１５，１５」である。したがって、現在ゼロとなっているウェーブレット係数に加算できる乱数の値は、「５，５，３０」及び「７，１５，１５」のそれぞれ小さな方の値を選択した「５，５，１５」となる。そして、乱数発生器により発生させた乱数「２，３，１」は、いずれもこの加算可能な乱数最大値「５，５，１５」以下であるので問題はない。したがって、符号化時のポスト量子化により値が「０，０，０」となっていた３つのウェーブレット係数は、ウェーブレット係数補正処理手段５４の補正処理によって、「２，３，１」となる。
【００６９】
ウェーブレット係数補正処理手段５４は、上記のように、値がゼロではないウェーブレット係数と、値がゼロであったウェーブレット係数との双方に対して、ポスト量子化によって切り捨てられた可能性の高いデータを加算する補正処理を、現在注目しているコードブロックに対して終了すると、全てのコードブロックについて終了したか否かを判別し（ステップ６８）、終了していなければステップ６１に戻って同様の処理を繰り返す。なお、ウェーブレット係数補正処理手段５４は、ステップ６２において、注目しているコードブロックについて符号化時にポスト量子化が行われていないと判別した場合は、補正処理を行うことなく直ちにステップ６８の判別を行う。また、ステップ６６において、注目しているコードブロックの属するサブバンドが最大の分解レベルである場合（つまり３ＨＬのサブバンドである場合）も、同様に、補正処理を行うことなく直ちにステップ７の判別を行う。
【００７０】
上述したウェーブレット係数補正処理手段５４の補正処理により、従来、符号化時に行われたポスト量子化に起因して再生画像に生じていた違和感や不明瞭感を抑制することができ、画質を向上させることが可能になっている。すなわち、ステップ６５では、値がゼロではないウェーブレット係数に対して乱数を付加する補正を行っている。ポスト量子化は、もともとそれほど激しい画像劣化を伴うことのないＬＳＢ側に近いビットデータの切り捨てであるが、切り捨てられたデータに対応する原画像データの部分には多くの場合、何らかの有意のデータが存在していたはずである。この有意のデータを従来装置では、全く無視して存在しないかのような取り扱いをしていたが、本発明では乱数を発生させて何らかの有意データを付加するようにしている。したがって、本発明によれば、切り捨てられたデータが原画像ではどのようなものであったかまでは知ることができないが、少なくとも従来の復号化よりも画質の向上した再生画像を得ることが可能になる。
【００７１】
また、再生しようとする画像に係る符号データに図１の画像符号化装置のウェーブレット係数丸め処理手段１１によって繰り上げ処理の行われたものが含まれている場合、そのまま乱数を付加する補正を行ったのでは却って画像を劣化させる虞がある。しかし、ステップ６４において繰り上げ処理の有無を判別し、繰り上げ処理が行われているウェーブレット係数に対しては補正処理を行わないようにしているので画像を劣化させてしまうことを防止している。
【００７２】
更に、ステップ６７では、値がゼロであったウェーブレット係数に対して乱数を付加する補正を行っている。この場合の補正は、符号化時には全く存在していなかったデータを付加する補正であり、画質に与える影響が大きくなる補正である。そのため、上記の実施形態では、分解レベルが最大でない限りは１段階上のサブバンドの同じ位置でのウェーブレット係数を参照するようにし、この参照したウェーブレット係数からあまりかけ離れた値とならないようにしている。
【００７３】
上記のような補正処理は、符号化時には存在していなかったデータを付加した上で復号化を行おうとするものであり、一般的な復号化処理の枠を超えるものであるということもできる。それ故、従来の復号化装置では、元の符号化画像データよりも画質が劣化することがあっても、それよりも画質の優れた再生画像を得ることができないのが通常であったが、本発明によれば、入力する元の符号化画像データよりも画質の優れた再生画像を得ることができるようになる。
【００７４】
なお、本発明は、上述した画像符号化装置及び画像復号化装置の機能をコンピュータに実現させるためのプログラムを含むものである。これらのプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。
【００７５】
【発明の効果】
以上のように、本発明によれば、ポスト量子化に起因して再生画像に生じる違和感や不明瞭感を極力抑制することが可能な画像符号化装置及び画像符号化プログラムを提供し、更に、これらにより生成された符号データを復号化するのに好適な画像復号化プログラムを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る画像符号化装置の構成を示すブロック図。
【図２】図１におけるウェーブレット係数丸め処理手段１１が行う丸め処理の内容を説明するためのフローチャート。
【図３】図２におけるステップ４の丸め処理の詳細な内容を説明するためのフローチャート。
【図４】図１におけるウェーブレット係数丸め処理手段１１の処理を説明するためのウェーブレット係数についての説明図。
【図５】本発明の実施形態に係る画像復号化装置の構成を示すブロック図。
【図６】図５におけるウェーブレット係数補正処理手段５４が行う補正処理の内容を説明するためのフローチャート。
【図７】図５におけるウェーブレット係数補正処理手段５４が行う補正処理の内容を説明するためのウェーブレット係数についての説明図。。
【図８】図５におけるウェーブレット係数補正処理手段５４が補正しようとするウェーブレット係数がゼロでない場合の補正処理の内容についての説明図であり、（ａ）は、切り捨てポイントの下側データ部分に、発生させた乱数を記入した状態を示したものであり、（ｂ）は、図７における切り捨てポイントの下側データ部分を（ａ）に示したデータで置き換えた状態を示したものである。
【図９】図５におけるウェーブレット係数補正処理手段５４が補正しようとするウェーブレット係数がゼロである場合の補正処理についての説明図。
【図１０】図５におけるウェーブレット係数補正処理手段５４が補正しようとするウェーブレット係数がゼロである場合の補正処理の内容についての説明図であり、（ａ）は、切り捨てポイントの下側データ部分に、発生させた乱数を記入した状態を示したものであり、（ｂ）は、図７における切り捨てポイントの下側データ部分を（ａ）に示したデータで置き換えた状態を示したものである。
【図１１】従来の画像符号化装置の構成を示すブロック図。
【図１２】各分解レベルと各サブバンドとの関係を示す説明図であり、（ａ），（ｂ），（ｃ）はそれぞれ分解レベルが１，２，３の場合を示している。
【図１３】符号化時に行われるポスト量子化を説明するためのウェーブレット係数についての説明図。
【符号の説明】
１  ＤＣレベルシフト手段
２  カラー変換手段
３  ウェーブレット変換手段
４  スカラ量子化手段
５  係数ビットモデリング手段
６  エントロピー符号化手段
７  画質制御手段
８  ポスト量子化手段
９  ヘッダ生成手段
１０  符号データ出力手段
１１  ウェーブレット係数丸め処理手段
５１  符号データ入力手段
５２  ヘッダ解析手段
５３  エントロピー復号化手段
５４  ウェーブレット係数補正処理手段
５５  スカラ逆量子化手段
５６  逆ウェーブレット変換手段
５７  カラー変換手段
５８  ＤＣレベルシフト手段
５９  画像データ出力手段
ＭＳＢ  最上位ビット
ＬＳＢ  最下位ビット
【図１】
2004289737.tif 000003
【図２】
2004289737.tif 000004
【図３】
2004289737.tif 000005
【図４】
2004289737.tif 000006
【図５】
2004289737.tif 000007
【図６】
2004289737.tif 000008
【図７】
2004289737.tif 000009
【図８】
2004289737.tif 000010
【図９】
2004289737.tif 000011
【図１０】
2004289737.tif 000012
【図１１】
2004289737.tif 000013
【図１２】
2004289737.tif 000014
【図１３】
2004289737.tif 000015