(57)【要約】【課題】入力データのダイナミックレンジの端部における量子化誤差を軽減すること。【解決手段】画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換手段を有することを特徴とする。【選択図】図１
2010220126.tif 000002
【特許請求の範囲】
【請求項１】
画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換手段と、
前記入力画像データ、及び、前記置換画像データのうちの、何れか一を周波数変換して変換係数を出力する周波数変換手段と、
前記変換係数、及び、前記置換変換係数のうちの、何れか一以上に対し、切り捨てによる量子化を行い、量子化変換係数を出力する量子化手段と、
前記第１の所定の範囲に係る情報、及び、前記量子化変換係数を符号化して符号データを出力する符号化手段と、
を有することを特徴とする画像符号化装置。
【請求項２】
前記符号化手段は、さらに、前記画素値置換により増加する画素値のダイナミックレンジの増分に係る情報を符号化することを特徴とする請求項１記載の画像符号化装置。
【請求項３】
前記符号化手段は、さらに、前記変換係数置換により増加する変換係数のダイナミックレンジの増分に係る情報を符号化することを特徴とする請求項１記載の画像符号化装置。
【請求項４】
前記増分に係る情報は、ＪＰＥＧ２０００におけるガードビットの値に含ませることを特徴とする請求項２又は３記載の画像符号化装置。
【請求項５】
前記符号化手段は、前記周波数変換手段がＪＰＥＧ２０００における９×７ウェーブレット変換を行う場合に、前記増分に係る情報を前記ガードビットの値に含ませることを特徴とする請求項４記載の画像符号化装置。
【請求項６】
請求項１ないし５何れか一項に記載の画像符号化装置により生成された符号データを復号する画像復号装置であって、
前記符号データを復号して、前記量子化変換係数と前記入力画像データのダイナミックレンジに係る情報とを出力する復号手段と、
前記量子化変換係数に対して逆量子化を行い、変換係数を出力する逆量子化手段と、
前記変換係数に対して逆周波数変換を行い、画素値を出力する逆周波数変換手段と、
前記画素値が、前記第１の所定の範囲より大きな値の場合に、該画素値を、前記第１の所定の範囲の値のうちの一の値に置換する置換手段と、
を有することを特徴とする画像復号装置。
【請求項７】
画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換ステップと、
前記入力画像データ、及び、前記置換画像データのうちの、何れか一を周波数変換して変換係数を出力する周波数変換ステップと、
前記変換係数、及び、前記置換変換係数のうちの、何れか一以上に対し、切り捨てによる量子化を行い、量子化変換係数を出力する量子化ステップと、
前記第１の所定の範囲に係る情報、及び、前記量子化変換係数を符号化して符号データを出力する符号化ステップと、
を有することを特徴とする画像符号化方法。
【請求項８】
画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換ステップと、
前記入力画像データ、及び、前記置換画像データのうちの、何れか一を周波数変換して変換係数を出力する周波数変換ステップと、
前記変換係数、及び、前記置換変換係数のうちの、何れか一以上に対し、切り捨てによる量子化を行い、量子化変換係数を出力する量子化ステップと、
前記第１の所定の範囲に係る情報、及び、前記量子化変換係数を符号化して符号データを出力する符号化ステップと、
を有する画像符号化方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項９】
請求項８記載のコンピュータプログラムを記録したコンピュータ読取可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法、画像復号装置、コンピュータプログラム、及び、情報記録媒体に関する。
【背景技術】
【０００２】
従来から、量子化処理を含む符号化において、量子化による誤差を軽減する技術がある。例えば、特開２００４−２４２０５６号公報（特許文献１）には、画像を符号化する際に、変換係数の高周波成分の有効桁以下の値を、所定の閾値に基づいて、切り上げ及び切り捨てを行う符号化装置等の発明が開示されている。
【０００３】
また、例えば、特開２００３−３７５０５号公報（特許文献２）には、量子化の演算方法が異なる複数の量子化手段の中から、量子化手段を切り替える量子化装置等の発明が開示されている。
【０００４】
また、例えば、特許第３８７９２５０号公報（特許文献３）には、オーディオ信号の符号化において、時間と周波数に関する２次元ブロック毎の情報圧縮パラメータを得て、有効とする２次元ブロックの個数情報を数ビットで予め規定した値より選択する際に、２次元ブロックのうちの数ビットを用いた番号による正規化情報に対し、全ての２次元ブロックについて同一の値を加算、又は、減算することにより、ディジタル信号のレベル調整を行うエンコード方法等の発明が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献に記載の技術では、入力データにおいて、ダイナミックレンジにより定められる範囲の端に近い値を量子化する際に生じる量子化誤差については、考慮されていない。
【０００６】
例えば、画像データでは、ダイナミックレンジにより定められる輝度値の最大値は、白色に対応する。そこで、輝度値の最大値に近い値において、量子化による誤差が生じると、例えば、白色の地色に薄いグレー色が混じる、所謂「地汚れ」が発生する。
【０００７】
ディスプレイ等の表示装置に表示される画像では、この「地汚れ」は、比較的目立たない傾向があるが、プリンタ等により印刷される画像に「地汚れ」が発生すると、目立つことがある。
【０００８】
これは、ディスプレイは、一つ一つの画素が表現できる階調が高いため、僅かな輝度値の違いを画素毎に表示することができるのに対し、プリンタによる印刷では、複数の画素毎に階調を表現するため、階調を表現する面積より狭い面積を対象に観察すると、本来の輝度値の差よりも大きな輝度値の差が表れることがあるためである。
【０００９】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、入力データのダイナミックレンジの端部における量子化誤差を軽減する画像符号化装置、画像符号化方法、画像復号装置、コンピュータプログラム、及び、情報記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の画像符号化装置は次の如き構成を採用した。
本発明の画像符号化装置は、画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換手段と、前記入力画像データ、及び、前記置換画像データのうちの、何れか一を周波数変換して変換係数を出力する周波数変換手段と、前記変換係数、及び、前記置換変換係数のうちの、何れか一以上に対し、切り捨てによる量子化を行い、量子化変換係数を出力する量子化手段と、前記第１の所定の範囲に係る情報、及び、前記量子化変換係数を符号化して符号データを出力する符号化手段と、を有する構成とすることができる。
【００１１】
本発明の画像復号装置は、本発明の何れか一の画像符号化装置により生成された符号データを復号する画像復号装置であって、前記符号データを復号して、前記量子化変換係数と前記入力画像データのダイナミックレンジに係る情報とを出力する復号手段と、前記量子化変換係数に対して逆量子化を行い、変換係数を出力する逆量子化手段と、前記変換係数に対して逆周波数変換を行い、画素値を出力する逆周波数変換手段と、前記画素値が、前記第１の所定の範囲より大きな値の場合に、該画素値を、前記第１の所定の範囲の値のうちの一の値に置換する置換手段と、を有する構成とすることができる。
【００１２】
本発明の画像符号化方法は、画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換ステップと、前記入力画像データ、及び、前記置換画像データのうちの、何れか一を周波数変換して変換係数を出力する周波数変換ステップと、前記変換係数、及び、前記置換変換係数のうちの、何れか一以上に対し、切り捨てによる量子化を行い、量子化変換係数を出力する量子化ステップと、前記第１の所定の範囲に係る情報、及び、前記量子化変換係数を符号化して符号データを出力する符号化ステップと、を有する構成とすることができる。
【００１３】
本発明のコンピュータプログラムは、画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換ステップと、前記入力画像データ、及び、前記置換画像データのうちの、何れか一を周波数変換して変換係数を出力する周波数変換ステップと、前記変換係数、及び、前記置換変換係数のうちの、何れか一以上に対し、切り捨てによる量子化を行い、量子化変換係数を出力する量子化ステップと、前記第１の所定の範囲に係る情報、及び、前記量子化変換係数を符号化して符号データを出力する符号化ステップと、を有する画像符号化方法をコンピュータに実行させる構成とすることができる。
【００１４】
本発明の情報記録媒体は、画素値が第１の所定の範囲に含まれる画素を有する入力画像データの画素値のうち、所定値以上の画素値を、前記第１の所定の範囲より大きな値に置換して置換画像データを得る画素値置換、及び、前記入力画像データを周波数変換して得られる変換係数が所定値以上の場合に該変換係数を前記変換係数の値が含まれる第２の所定の範囲より大きな値に置換して置換変換係数を得る変換係数置換、のうちの何れか一以上の置換を行う置換ステップと、前記入力画像データ、及び、前記置換画像データのうちの、何れか一を周波数変換して変換係数を出力する周波数変換ステップと、前記変換係数、及び、前記置換変換係数のうちの、何れか一以上に対し、切り捨てによる量子化を行い、量子化変換係数を出力する量子化ステップと、前記第１の所定の範囲に係る情報、及び、前記量子化変換係数を符号化して符号データを出力する符号化ステップと、を有する画像符号化方法をコンピュータに実行させるためのコンピュータプログラムを記録した構成とすることができる。
【００１５】
これにより、入力データのダイナミックレンジの端部における量子化誤差を軽減する画像符号化装置、画像符号化方法、画像復号装置、コンピュータプログラム、及び、情報記録媒体を提供することができる。
【発明の効果】
【００１６】
本発明の画像符号化装置、画像符号化方法、画像復号装置、コンピュータプログラム、及び、情報記録媒体によれば、入力データのダイナミックレンジの端部における量子化誤差を軽減する画像符号化装置、画像符号化方法、画像復号装置、コンピュータプログラム、及び、情報記録媒体を提供することが可能になる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本実施の形態に係る画像符号化装置の機能構成の例を示す図である。
【図２】図２は、本実施の形態に係る画像復号装置の機能構成の例を示す図である。
【図３】図３は、本実施形態にかかる装置構成の例を示す図である。
【図４】図４は、ＪＰＥＧ２０００規格による符号化処理を示すフロー図である。
【図５】図５は、ＪＰＥＧ２０００規格による復号処理を示すフロー図である。
【図６】図６は、ＤＣレベルシフト後の輝度値とｘｙ座標とを示す図である。
【図７】図７は、垂直方向のウェーブレット変換を行った例を示す図である。
【図８】図８は、垂直方向のウェーブレット変換を行った例に対し、水平方向にウェーブレット変換を行った例を示す図である。
【図９】図９は、サブバンド毎に係数を集めた例を示す図である。
【図１０】図１０は、デコンポジションレベル＝２において、サブバンド毎に係数を集めた例を示す図である。
【図１１】図１１は、解像度レベルの定義を示す図である。
【図１２】図１２は、サブバンド毎の、タイル、プリシンクト、コードブロックを示す図である。
【図１３】図１３は、５×３ウェーブレット変換により増加するビット数を示す図である。
【図１４】図１４は、９×７ウェーブレット変換により増加するビット数を示す図である。
【図１５】図１５は、本実施の形態に係る画像符号化方法の処理（画素値を置換する処理）の例を示すフロー図である。
【図１６】図１６は、ＳＩＺマーカセグメントの構成を示す図である。
【図１７】図１７は、ＳＩＺマーカセグメントの内容を示す図である。
【図１８】図１８は、ＱＣＤマーカセグメントの構成を示す図である。
【図１９】図１９は、ＱＣＤマーカセグメントの内容を示す図である。
【図２０】図２０は、ＱＣＤマーカセグメントのうちのＳｑｃｄパラメータとＳＰｑｃｄパラメータの内容を示す図である。
【図２１】図２１は、ステップＳ３１０でトランケーションするビットプレーンの数を示す図である。
【図２２】図２２は、本実施の形態に係る画像符号化方法の処理（変換係数を置換する処理）の例を示すフロー図である。
【図２３】図２３は、ステップＳ４１０でトランケーションするビットプレーンの数を示す図である。
【図２４】図２４は、本実施の形態に係る画像符号化方法の処理（９×７ウェーブレット変換を用いる処理）の例を示すフロー図である。
【図２５】図２５は、９×７ウェーブレット変換におけるデコンポジションレベル毎のトランケーションする下位ビットプレーンの数を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面に基づき説明する。
【００１９】
〔本発明の実施の形態〕
文書画像は、白い背景に文字や絵柄を有する場合が多い。このような文書画像を複写又はスキャン処理する場合に、得られる画像データにおいても、白い背景が白く再現されることにより、主観的により高画質な画像データを得ることができる。なお、ここでは主に白色について説明するが、本実施の形態は、輝度値を表現するダイナミックレンジの端の値を主観的に高画質に再現することに適用することができる。
【００２０】
ところで、ある条件下、例えば、スキャンにより得られる画像データに対し、高圧縮率な圧縮を行う場合には、白い背景がグレーとなり汚れてしまうことがある。これを、所謂「地汚れ」という。
【００２１】
地汚れが発生する原因の一つは、量子化を含む符号化により、復号画像において輝度の最大値が最大値よりも小さな値となる量子化誤差が発生することである。この量子化誤差の発生について、より詳細に、以下説明する。
【００２２】
まず、圧縮前の輝度値を２５５とする。これを量子化ステップ数１６で除算すると、
２５５／１６＝１５．９３７５  ・・・・・・・・・・・・（１）
となり、小数点以下の値が生じる。圧縮は、データ量を減らすことが目的であるため、この除算結果を整数化することがある。整数化には、例えば、切り上げ、切り捨て、四捨五入の３通りがある。本実施の形態では、切り捨てを行う圧縮方式について説明する。
【００２３】
切り捨てによる整数化を行うと、上記式（１）は、式（２）となる。
２５５／１６≒１５  ・・・・・・・・・・・・・・・・・（２）
【００２４】
これにより、値１５が符号化データに含まれる。この値１５を復号すると、式（３）となる。
１５（商）×１６（量子化ステップ数）＝２４０  ・・・・（３）
【００２５】
ここで、
１６×１６（量子化ステップ数）＝２５６  ・・・・・・・（４）
であるので、量子化前の２４０≦Ｙ＜２５６の値が、値１５の符号化データに対応する。そこで、符号化データの値１５に対応するＹの値を、推定する際に、例えば、次式（５）により、２４０と２５５の中間値とする。
（２４０＋２５５）／２≒２４７  ・・・・・・・・・・・（５）
【００２６】
これにより、原画像の輝度値Ｙが２５５（白色）が、復号画像では、２４７（薄いグレー）として再現され、地汚れとなる。
【００２７】
地汚れは、整数化方式を切り上げや四捨五入にすることにより、低減することができる。しかし、整数化方式の変更のみでは、輝度の暗い部分が明るめになる等の地汚れとは異なる画質の低下が生じる。
【００２８】
また、圧縮方式が、切り捨てによる整数化のみを規定するものもある。このような場合には、復号時のγ変換等により地汚れを緩和することもできるが、圧縮方式が、γ変換等による画質改善の規定を含まないものもある。そこで、復号側ではなく、符号化側で地汚れの発生を低減することにより、圧縮方式の規定に関わらず、地汚れを低減することができる。
【００２９】
例えば、地汚れの軽減とは異なるが、符号化側でγ変換と同種の処理を行うことがある。例えば、１から７の輝度値を全て０に置換してから符号化することにより、圧縮効率の向上を図ることができる。このようなγ変換と同種のものは、原データの値を、最終的に「原データのとりうる値の範囲内の値」に置換し、その置換後の値を符号化するが、「原データのとりうる値の範囲内の値」ではない値に置換することはない。これは、「原データのとりうる値の範囲内の値」ではない値を符号化することは、そもそも想定していないために、正しく処理できないことがあるからである。
【００３０】
本実施の形態では、以下の３つの前提条件を満たすことにより、正しく符号化及び復号が行われる。
【００３１】
第１の前提は、符号化側が、原データが当初にとりうる値の範囲の外の値を、符号化することができることである。例えば、輝度値２５５に対し、１加算した値２５６を扱うとする。次式（６）により、値１６が符号化される。
２５６／１６＝１６  ・・・・・・・・・・・・・・・・・（６）
【００３２】
符号化データに含まれる値１６を復号する際には、次式（７）及び式（８）により、２５６≦Ｙ＜２７２となる。
１６（商）×１６（量子化ステップ数）＝２５６  ・・・・（７）
２５６≦Ｙ＜２７２  ・・・・・・・・・・・・・・・・・（８）
【００３３】
そこで、例えば、次式（９）により、２５６と２７２の中間値とする。
（２５６＋２７１）／２≒２６３  ・・・・・・・・・・・（９）
【００３４】
なお、圧縮の際には、量子化誤差により復号後の画素値が、ダイナミックレンジにより表現される原画素が本来とりうる値の範囲を超えることがある。そこで、復号側では、本来の画素が８ビットであっても、復号処理の途中では、８ビットを超えるビット深度で扱うことがある。復号側が、原画素の本来とりうる値の範囲を超えるビット深度に対応することにより、上記の２７２、２６３等の値は、正しく扱われる。
【００３５】
第２の前提は、輝度値が本来とりうる値の範囲が８ビットである旨の情報を、復号側が取得することである。このため、符号化の際に、本来とりうる値の範囲、すなわち、ビット深度を符号化データに含ませるとよい。
【００３６】
第３の前提は、復号側で、例えば、上記の２６３等、本来とりうる値の範囲の外の値を復号した際に、２５５という範囲の内の値に修正することである。これにより、符号化の際に、値２５５が、本来とりうる値の範囲を超える値に置換された場合に、復号の際には、値２５５として出力され、地汚れを防ぐことができる。
【００３７】
なお、値２５５の他に、２５５に近い値を、あわせて、本来とりうる値の範囲の外に置換することにより、復号画像では、白にごく近い色の情報が欠落する、所謂「ハイライトがとび気味になること」が発生するものの、地汚れを防ぐことはできる。
【００３８】
例えば、ＪＰＥＧ２０００規格、ＪＰＥＧ規格、ＭＰＥＧ規格、その他の規格においては、以下（１）から（３）において説明するように、上記３つの前提条件がなりたつ。
【００３９】
（１）画像のビット数が、符号化処理及び復号処理の際に増えることがある場合には、符号化処理系及び復号処理系では、原画像のビット数よりも大きなビット数を扱える。例えば、正規直交系でない周波数変換を用いる場合には、周波数変換係数は、原画素のビット数より増える。これにより、第１の前提は成立する。
【００４０】
（２）符号化処理においては、後述するクリッピング処理のために、符号のヘッダ中に原画素のビット深度を入れる。これにより、第２の前提が成立する。
【００４１】
（３）復号処理においては、量子化誤差により、復号後のデータの値が、圧縮前の画素のとりうる値の範囲を超えることがある。そこで、復号の際に、範囲を超えた画素の値を、範囲の内の画素値に変更するクリッピング処理を行う。クリッピング処理では、例えば、下限を下回った値は下限値に、上限を上回った値は上限値に置換する。これにより、第３の前提は成立する。
【００４２】
以上、（１）から（３）により、原画像の画素値、又は、輝度値等に対し、地汚れを軽減する実施形態を提供することができる。
【００４３】
なお、量子化の際の「切り捨て」処理とは、下位ビットのトランケーションを含む。下位ビットのトランケーションとは、例えば、変換係数を２値表示のビット毎に符号化するビットプレーン符号化において、符号化した下位ビットプレーンの符号を破棄する処理、又は、下位ビットプレーンの符号化処理を省略する処理をいう。これにより、量子化後の係数における有効桁以下の数値を切り捨てることと、同様な効果を生じる。
【００４４】
また、入力画像データの画素値を、本来とりうる値の範囲の外の値に置換することにより、その画素値の変換係数は、変換係数が本来とりうる値の範囲の外の値となる。そこで、画素値を置換することに代えて、変換係数を変換係数が本来とりうる値の範囲の外の値に置換してもよい。地汚れは、変換係数の低周波成分に量子化誤差が生じる場合に発生する。そこで、低周波成分における量子化誤差の影響を抑えるとよい。すなわち、低周波側の所定の個数の変換係数に対し、その変換係数の値を範囲の外の値とするとよい。
【００４５】
置換された後の値について、以下説明する。
例えば、ビットプレーン符号化において、トランケーションする前の係数のビット数をＭｂとすると、Ｍｂは、次式（１０）により定められる。
Ｍｂ＝（原画像の最大ビット数）＋（周波数変換により増加する最大ビット数）−（量子化により減少するビット数）  ・・・・・・・・・・・・・（１０）
そこで、変換係数毎に、Ｍｂビット目から参照してビットプレーン符号化を行う。
【００４６】
式（１０）において、（周波数変換により増加する最大ビット数）は、周波数変換処理によって異なる。そこで、複数の周波数変換処理から一の周波数変換処理を選択する符号化方式の場合には、（周波数変換により増加する最大ビット数）に係る情報を符号化の際に符号化データに含ませるとよい。例えば、ＪＰＥＧ２０００規格では、ガードビットとして含ませる。
【００４７】
（周波数変換により増加する最大ビット数）は、周波数変換により増加する変換係数のビット数の最大値を包含し、かつ、切り上げにより整数化された値である。例えば、最大で１．５ビット増える場合に、Ｍｂは、値２とする。したがって、入力される画素値を、画素値が本来とりうる値の範囲の外の値に置換した場合に、その値を含んで周波数変換して得られる変換係数のビット数の増分が、（周波数変換により増加する最大ビット数）以下となるとよい。
【００４８】
なお、ＪＰＥＧ２０００規格においては、５×３ウェーブレット変換よりも９×７ウェーブレット変換の際に、ガードビットの値をより大きくする。これは、周波数変換後の変換係数の値の範囲が、５×３ウェーブレット変換よりも９×７ウェーブレット変換においてより顕著に大きくなるからである。そこで、本実施の形態では、ガードビットに含ませる値を、９×７ウェーブレット変換を用いる場合に、５×３ウェーブレット変換を用いる場合よりも等しいか大きな値とする。
【００４９】
図１は、本実施の形態に係る画像符号化装置の機能構成の例を示す図である。図１の構成は、前処理手段１０、置換手段１１、周波数変換手段１２、量子化手段１３、及び、符号化手段１４を有する。
【００５０】
前処理手段１０は、入力画像データに対し、色空間変換、及び、ＤＣレベルシフト等の前処理を行う。置換手段１１は、画像データのうち、画素値が所定値以上の画素の画素値を、画素のダイナミックレンジにより表される値の外の値に置換する画素値置換を行う。置換手段１１は、また、周波数変換手段１２により生成される変換係数のうち、所定の値以上の変換係数を、変換係数のダイナミックレンジにより表される値の外の値に置換する変換係数置換を行う。なお、置換手段１１が置換する変換係数は、低周波数側から所定の個数の変換係数でもよく、最も低周波数の変換係数でもよい。最も低周波数側の変換係数を、直流成分（以下、「ＤＣ値」ともいう）。
【００５１】
置換手段１１は、画素値置換及び変換係数置換のうち、何れか一方の置換のみを行う構成でもよい。
【００５２】
周波数変換手段１２は、画像データに対し、色成分毎に周波数変換処理を行う。周波数変換手段１２は、前処理手段１０から出力される画像データ、又は、置換手段１１により置換された画素を含む画像データに対し、周波数変換を行う。これにより、変換係数を生成する。
【００５３】
量子化手段１３は、変換係数に対する量子化を行う。量子化手段１３が量子化する変換係数は、周波数変換手段１２から出力される変換係数、又は、置換手段１１により変換係数が置換された変換係数を含む変換係数である。
【００５４】
符号化手段１４は、量子化手段１３により量子化された変換係数に対し、エントロピー符号化を行う。なお、符号化手段１４は、変換係数の下位のビットプレーンに対するトランケーションを行ってよい。
【００５５】
符号化手段１４は、さらに、変換係数に対応する情報を符号化し、符号化データを生成する。
【００５６】
図２は、本実施の形態に係る画像復号装置の機能構成の例を示す図である。図２の構成は、例えば、図１の構成により出力される符号化データを復号する。図２の構成は、復号手段２４、逆量子化手段２３、逆周波数変換手段２２、置換手段２１、及び、後処理手段２０を有する。
【００５７】
復号手段２４は、符号化データに含まれる量子化された変換係数の符号を復号する。復号手段２４は、また変換係数に係る様々な情報を、符号化データから復号する。
【００５８】
逆量子化手段２３は、復号された量子化変換係数に対し逆量子化を行い変換係数を得る。逆周波数変換手段２２は、変換係数に対し逆周波数変換を行い、画素値を出力する。置換手段２１は、出力された画素値のうち、本来とりうる値の範囲を超える画素値に対し、クリッピング処理を行う。
【００５９】
後処理手段２０は、画素値に対し、ＤＣレベルシフト、及び、色空間変換等の処理を行う。
【００６０】
図３は、本実施形態にかかる装置構成の例を示したものである。データバス１０４を介して、ＨＤＤ１０３、ＲＡＭ１０２（ＰＣ内）、ＣＰＵ１０１（ＰＣ内）が接続されており、以下の（１）から（４）の順に、原画像が符号化される。
【００６１】
（１）  ＨＤＤ１０３上に記録されたオリジナル画像が、ＣＰＵ１０１からの命令によってＲＡＭ１０２上に読み込まれる。
（２）  ＣＰＵ１０１はＲＡＭ１０２上の画像を読み込み、本実施形態の手法を用いて符号化を行う。
（３）  ＣＰＵ１０１は、符号化後のデータをＲＡＭ１０２上の別の領域に書き込む。
（４）  ＣＰＵ１０１からの命令によって、符号化後のデータがＨＤＤ１０３上に記録される。
【００６２】
次に、ＪＰＥＧ２０００符号化方式の概要について、説明する。
【００６３】
図４は、ＪＰＥＧ２０００規格による符号化処理を示すフロー図である。また、図５は、ＪＰＥＧ２０００規格による復号化処理を示すフロー図である。
【００６４】
図４のステップＳ１００では、画像は矩形のタイルに分割される。分割数は、１以上の数である。ステップＳ１００では、さらに、タイル毎に、例えばＲＧＢの３コンポ−ネントで構成されるカラー画像が、ＤＣレベルシフト後、輝度・色差コンポーネントへのコンポーネント変換される。
【００６５】
ステップＳ１２０では、コンポーネント変換された画像に対し、ウェーブレット変換がなされる。ステップＳ１３０では、サブバンド毎に量子化が行われる。なお、ステップＳ１３０は、省略されてもよい。
【００６６】
ステップＳ１４１では、ビットプレーンを単位としたエントロピー符号化がなされる。ここでは、サブバンド毎に、上位ビットプレーンから、必要な下位ビットプレーンまでを、ビットプレーン符号化し、ＭＱ符号を生成する。
【００６７】
ステップＳ１４２では、不要なＭＱ符号を破棄し、必要な符号をまとめて、パケットを生成する。なお、ステップＳ１４１で生成したＭＱ符号を全て符号化データに含ませてもよい。ステップＳ１５０では、ステップＳ１５０で生成されたパケットを並べて、符号データを生成する。
【００６８】
伸張時には、図４と逆の手順で処理が実行される。図５のステップＳ２５０では、符号データからパケットが取得される。ステップＳ２４０では、ビットプレーン単位でのエントロピー復号がなされる変換係数が得られる。ステップＳ２３０では、変換係数に対し、逆量子化が得られる。これにより、コンポーネント毎のウェーブレット係数が得られる。
【００６９】
ステップＳ２２０では、ウェーブレット係数に対し、逆ウェーブレット変換が施される。ステップＳ２００では、逆色変換等がなされてＲＧＢの画素値に戻る。
【００７０】
ＪＰＥＧ２０００の処理について、以下、より詳細に説明する。
まず、入力画像データに対し、ＤＣレベルシフト及び色変換処理が行われる。
ＤＣレベルシフトの変換式（１１）と逆変換式（１２）を、以下に示す。
Ｉ（ｘ，ｙ）  ←  Ｉ（ｘ，ｙ）−２＾Ｓｓｉｚ（ｉ）    順変換  ・・・（１１）
Ｉ（ｘ，ｙ）  ←  Ｉ（ｘ，ｙ）＋２＾Ｓｓｉｚ（ｉ）    逆変換  ・・・（１２）
ただし、Ｓｓｉｚ（ｉ）は原画像の各コンポーネントｉ（ＲＧＢ画像ならｉ＝０、１、２）のビット深さから１を減じたものである。また、２＾Ｓｓｉｚ（ｉ）は２のＳｓｉｚ（ｉ）乗を意味し、Ｉ（ｘ、ｙ）は座標（ｘ、ｙ）における原信号値（画素値）である。
【００７１】
ＤＣレベルシフトは、順変換では、ＲＧＢ信号値のような正の数に対し、各信号値から信号のダイナミックレンジの半分を減算するレベルシフトを行う。また、逆変換では各信号値に信号のダイナミックレンジの半分を加算するレベルシフトを行う。ただし、このレベルシフトはＹＣｂＣｒ信号のＣｂ、Ｃｒ信号のような符号付き整数には適用されない。
【００７２】
また、ＪＰＥＧ２０００では、コンポ−ネント変換（色空間変換）として可逆変換（ＲＣＴ）と非可逆変換（ＩＣＴ）が定義されている。
【００７３】
ＲＣＴの順変換は、次式（１３）から（１５）で表される。
Ｙ０（ｘ、ｙ）＝ｆｌｏｏｒ（（Ｉ０（ｘ、ｙ）＋２＊（Ｉ１（ｘ、ｙ）＋Ｉ２（ｘ、ｙ））／４）  ・・・・・・・・・・・・・・・・・・・・・（１３）
Ｙ１（ｘ、ｙ）＝Ｉ２（ｘ、ｙ）−Ｉ１（ｘ、ｙ）  ・・・（１４）
Ｙ２（ｘ、ｙ）＝Ｉ０（ｘ、ｙ）−Ｉ１（ｘ、ｙ）  ・・・（１５）
【００７４】
ＲＣＴの順変換は、次式（１６）から（１８）で表される。
Ｉ１（ｘ、ｙ）＝Ｙ０（ｘ、ｙ）−ｆｌｏｏｒ（（Ｙ２（ｘ、ｙ）＋Ｙ１（ｘ、ｙ））／４）  ・・・・・・・・・・・・・・・・・・・・・・・・（１６）
Ｉ０（ｘ、ｙ）＝Ｙ２（ｘ、ｙ）＋Ｉ１（ｘ、ｙ）  ・・・（１７）
Ｉ２（ｘ、ｙ）＝Ｙ１（ｘ、ｙ）＋Ｉ１（ｘ、ｙ）  ・・・（１８）
【００７５】
なお、式（１３）から（１８）中のＩは原信号、Ｙは変換後の信号を示し、ＩやＹに続く０〜２は色コンポーネントを表すサフィックスである。ＲＧＢ信号ならばＩ信号においてＩ０＝Ｒ、Ｉ１＝Ｇ、Ｉ２＝Ｂ、Ｙ信号においてＹ０＝Ｙ、Ｙ１＝Ｃｂ、Ｙ２＝Ｃｒと表される。またｆｌｏｏｒ（Ｘ）は実数Ｘを、Ｘを越えず、かつ、Ｘに最も近い整数に置換する関数である。
【００７６】
また、ＩＣＴの順変換は、次式（１９）から（２１）で表される。
Ｙ０（ｘ、ｙ）＝０。２９９＊Ｉ０（ｘ、ｙ）＋０。５８７＊Ｉ１（ｘ、ｙ）＋０。１４４＊Ｉ２（ｘ、ｙ）  ・・・・・・・・・・・・・・・・・（１９）
Ｙ１（ｘ、ｙ）＝−０。１６８７５＊Ｉ０（ｘ、ｙ）−０。３３１２６＊Ｉ１（ｘ、ｙ）＋０。５＊Ｉ２（ｘ、ｙ）  ・・・・・・・・・・・・・・（２０）
Ｙ２（ｘ、ｙ）＝０。５＊Ｉ０（ｘ、ｙ）−０。４１８６９＊Ｉ１（ｘ、ｙ）−０。０８１３１＊Ｉ２（ｘ、ｙ）  ・・・・・・・・・・・・・・・（２１）
【００７７】
また、ＩＣＴの逆変換は、次式（２２）から（２４）で表される。
Ｉ０（ｘ、ｙ）＝Ｙ０（ｘ、ｙ）＋１。４０２＊Ｙ２（ｘ、ｙ）  ・・（２２）
Ｉ１（ｘ、ｙ）＝Ｙ０（ｘ、ｙ）−０。３４４１３＊Ｙ１（ｘ、ｙ）−０。７１４１４＊Ｙ２（ｘ、ｙ）  ・・・・・・・・・・・・・・・・・・・・・・・・（２３）
Ｉ２（ｘ、ｙ）＝Ｙ０（ｘ、ｙ）＋１。７７２＊Ｙ１（ｘ、ｙ）  ・・（２４）
【００７８】
なお、式（１９）から（２４）中のＩは原信号、Ｙは変換後の信号を示し、ＩやＹに続く０〜２は色コンポーネントを表すサフィックスである。ＲＧＢ信号ならばＩ信号においてＩ０＝Ｒ、Ｉ１＝Ｇ、Ｉ２＝Ｂ、Ｙ信号においてＹ０＝Ｙ、Ｙ１＝Ｃｂ、Ｙ２＝Ｃｒと表される。
【００７９】
変換後のコンポ−ネント（タイルコンポ−ネントと呼ばれる）に対し、ウェーブレット変換がなされ、ＬＬ、ＨＬ、ＬＨ、ＨＨと略称される４つのサブバンドに分割される。そしてＬＬサブバンドに対して再帰的にウェーブレット変換（デコンポジション）を繰返すと、最終的に１つのＬＬサブバンドと複数のＨＬ、ＬＨ、ＨＨサブバンドが生成される。
【００８０】
ここで、ＪＰＥＧ２０００で使用される５×３ウェーブレット変換および９×７ウェーブレット変換について説明する。ＪＰＥＧ２０００規格では、５×３ウェーブレット変換および９×７ウェーブレット変換のうち、いずれか一方を選択して使用する。
【００８１】
５×３ウェーブレット変換とは、５画素を用いて１つのローパスフィルタの出力（ローパス係数）が得られ、３画素を用いて１つのハイパスフィルタの出力（ハイパス係数）が得られる変換である。９×７ウェーブレット変換とは、９画素を用いて１つのローパスフィルタの出力（ローパス係数）が得られ、７画素を用いて１つのハイパスフィルタの出力（ハイパス係数）が得られる変換である。主な違いはフィルタの範囲の違いであり、偶数位置中心にローパスフィルタ、奇数位置中心にハイパスフィルタが施されるのは同様である。
【００８２】
５×３ウェーブレット変換の変換式は次の通りである。
（順変換）
［ｓｔｅｐ１］  Ｃ（２ｉ＋１）＝Ｐ（２ｉ＋１）−ｆｌｏｏｒ（（Ｐ（２ｉ）＋Ｐ（２ｉ＋２））／２）  ・・・・・・・・・・・・・・・・・・・・・・・（２５）
［ｓｔｅｐ２］  Ｃ（２ｉ）＝Ｐ（２ｉ）＋ｆｌｏｏｒ（（（Ｃ（２ｉ−１）＋Ｃ（２ｉ＋１）＋２）／４）  ・・・・・・・・・・・・・・・・・・・・・・（２６）
【００８３】
（逆変換）
［ｓｔｅｐ１］  Ｐ（２ｉ）＝Ｃ（２ｉ）−ｆｌｏｏｒ（（Ｃ（２ｉ−１）＋Ｃ（２ｉ＋１）＋２）／４）  ・・・・・・・・・・・・・・・・・・・・・・・（２７）
［ｓｔｅｐ２］  Ｐ（２ｉ＋１）＝Ｃ（２ｉ＋１）＋ｆｌｏｏｒ（（Ｐ（２ｉ）＋Ｐ（２ｉ＋２））／２）  ・・・・・・・・・・・・・・・・・・・・・・・（２８）
【００８４】
９×７ウェーブレット変換の変換式は次のとおりである。
（順変換）
［ｓｔｅｐ１］  Ｃ（２ｎ＋１）＝Ｐ（２ｎ＋１）＋α＊（Ｐ（２ｎ）＋Ｐ（２ｎ＋２））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（２９）
［ｓｔｅｐ２］  Ｃ（２ｎ）＝Ｐ（２ｎ）＋β＊（Ｃ（２ｎ−１）＋Ｃ（２ｎ＋１））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（３０）
［ｓｔｅｐ３］  Ｃ（２ｎ＋１）＝Ｃ（２ｎ＋１）＋γ＊（Ｃ（２ｎ）＋Ｃ（２ｎ＋２））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（３１）
［ｓｔｅｐ４］  Ｃ（２ｎ）＝Ｃ（２ｎ）＋δ＊（Ｃ（２ｎ−１）＋Ｃ（２ｎ＋１））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（３２）
［ｓｔｅｐ５］  Ｃ（２ｎ＋１）＝Ｋ＊Ｃ（２ｎ＋１）  ・・・・・・（３３）
［ｓｔｅｐ６］  Ｃ（２ｎ）＝（１／Ｋ）＊Ｃ（２ｎ）  ・・・・・・（３４）
【００８５】
（逆変換）
［ｓｔｅｐ１］  Ｐ（２ｎ）＝Ｋ＊Ｃ（２ｎ）  ・・・・・・・・・・（３５）
［ｓｔｅｐ２］  Ｐ（２ｎ＋１）＝（１／Ｋ）＊Ｃ（２ｎ＋１）  ・・（３６）
［ｓｔｅｐ３］  Ｐ（２ｎ）＝Ｘ（２ｎ）−δ＊（Ｐ（２ｎ−１）＋Ｐ（２ｎ＋１））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（３７）
［ｓｔｅｐ４］  Ｐ（２ｎ＋１）＝Ｐ（２ｎ＋１）−γ＊（Ｐ（２ｎ）＋Ｐ（２ｎ＋２））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（３８）
［ｓｔｅｐ５］  Ｐ（２ｎ）＝Ｐ（２ｎ）−β＊（Ｐ（２ｎ−１）＋Ｐ（２ｎ＋２））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（３９）
［ｓｔｅｐ６］  Ｐ（２ｎ）＝Ｐ（２ｎ＋１）−α＊（Ｐ（２ｎ）＋Ｐ（２ｎ＋２））  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（４０）
【００８６】
ただし、  α＝−１．５８６１３４３４２０５９９２４
β＝−０．０５２９８０１１８５７２９６１
γ＝０．８８２９１１０７５５３０９３４
δ＝０．４４３５０６８５２０４３９７１
Ｋ＝１．２３０１７４１０４９１４００１
【００８７】
次に、ウェーブレット変換の手順およびデコンポジションレベル、解像度レベル、サブバンドの定義について説明する。
【００８８】
図６から図１０は、１６×１６の画像（の輝度コンポ−ネント）に対して、５×３変換と呼ばれるウェーブレット変換を２次元（垂直方向および水平方向）で施す過程の画素値の例を示した図である。
【００８９】
図６に、ＤＣレベルシフト後の輝度値とｘｙ座標とを示す。あるｘについて、ｙ座標がｙである画素の画素値をＰ（ｙ）（０≦ｙ≦１５）と表す。ＪＰＥＧ２０００規格では、まず垂直方向（Ｙ座標方向）に、ｙ座標が奇数（ｙ＝２ｉ＋１）の画素を中心にハイパスフィルタを施して係数Ｃ（２ｉ＋１）を得、次にｙ座標が偶数（ｙ＝２ｉ）の画素を中心にローパスフィルタを施して係数Ｃ（２ｉ）を得る（これを全てのｘについて行う）。
【００９０】
ここで、ハイパスフィルタ、ローパスフィルタは、順に式（２５）及び式（２６）で表される。なお、画像の端部にフィルタを施す場合には、中心となる画素に対して隣接画素が十分に存在しないことがあり、この場合はミラーリングと呼ばれる方法によって適宜画素値を補うことになる。ミラーリングとは、画像端部の外側に仮想的な画素を想定し、画像端部の画素を対称軸として、端部の内側の画素値を、端部の外側の画素に対して線対称にコピーする。図６では、右端のミラーリングのみを図示するが、ミラーリングは画像の上下左右の４端全てで行われる。
【００９１】
図７では、図６の画像を垂直方向の変換を行った例である。図７では、ハイパスフィルタにより係数をＨ、ローパスフィルタにより得られる係数をＬと表記する。図７では、変換係数の配列として示される。
【００９２】
図８は、図７の係数配列に対し、水平方向に、ｘ座標が奇数（ｙ＝２ｉ＋１）の変換係数を中心にハイパスフィルタを施し、次にｘ座標が偶数（ｘ＝２ｉ）の係数を中心にローパスフィルタを施した例を示す図である。図８では、全てのｙについてこの処理が行われている。なお、この処理は、式（２５）及び式（２６）におけるＰ（２ｉ）等が、係数値を表すものとして行う。
【００９３】
図８に示す、ＬＬ、ＨＬ、ＬＨ、ＨＨは、それぞれ以下の通りである。
Ｌ係数を中心にローパスフィルタを施して得られる係数をＬＬ、
Ｌ係数を中心にハイパスフィルタを施して得られる係数をＨＬ、
Ｈ係数を中心にローパスフィルタを施して得られる係数をＬＨ、
Ｈ係数を中心にハイパスフィルタを施して得られる係数をＨＨ、
【００９４】
ここで同一の記号を付した係数群はサブバンドと呼ばれ、図８は、４つのサブバンドで構成される。
【００９５】
以上で、垂直・水平の各方向に対して各１回のウェーブレット変換（１回のデコンポジション（分解））が終了する。
【００９６】
図９は、サブバンド毎に係数を集めたものである。図９において、ＬＬサブバンドだけ取り出すと、原画像の１／２の解像度の“画像”が得られる。このように、サブバンド毎に分類することをデインターリーブと呼び、図８のような状態に配置することを、インターリーブするという。
【００９７】
２回目のウェーブレット変換は、ＬＬサブバンドを原画像と見なして、上記と同様の変換を行えばよい。この場合、並べ替えを行うと、模式的な図１０が得られる。尚、図９、及び、図１０の係数の接頭の１や２は、水平・垂直に関し各何回のウェーブレット変換で該係数が得られたかを示しており、デコンポジションレベルと呼ばれる。
【００９８】
図１１は、解像度レベルの定義を示す図である。解像度レベルは、デコンポジションレベルとほぼ逆の関係にある。
【００９９】
なお、以上の議論において、１次元のみのウェーブレット変換をしたい場合には、いずれかの方向だけの処理を行えばよく、いずれかの方向に関してウェーブレット変換を行った回数がデコンポジションレベルとなる。
【０１００】
ウェーブレット逆変換は、図８の様なインターリーブされた係数の配列に対して、まず水平方向に、ｘ座標が偶数（ｘ＝２ｉ）の係数を中心に逆ローパスフィルタを施し、次にｘ座標が奇数（ｘ＝２ｉ＋１）の係数を中心に逆ハイパスフィルタを施す（これを全てのｙについて行う）。
【０１０１】
ここで逆ローパスフィルタ、逆ハイパスフィルタは、式（２７）及び式（２８）で表される。先と同様、画像の端部においては、中心となる係数に対して隣接係数が存在しないことがあり、この場合はも前記ミラーリングによって適宜係数値を補うことになる。
【０１０２】
これにより、図８の係数配列は図７のような係数配列に変換（逆変換）される。続いて同様に、垂直方向に、ｙ座標が偶数（ｙ＝２ｉ）の係数を中心に逆ローパスフィルタを施し、次にｙ座標が奇数（ｙ＝２ｉ＋１）の係数を中心に逆ハイパスフィルタを施せば（これを全てのｘについて行う）、１回のウェーブレット逆変換が終了し、図６の画像に戻る（再構成される）ことになる。尚ウェーブレット変換が複数回施されている場合は、やはり図６をＬＬサブバンドとみなし、ＨＬ等の他の係数を利用して同様の逆変換を繰り返せばよい。
【０１０３】
符号化処理の流れに戻り、サブバンド毎にプリシンクトとよばれる矩形に分割される。プリシンクトとは、サブバンドを矩形に分割したものを、ＨＬ、ＬＨ、ＨＨの３つのサブバンドについて集めたものである。プリシンクトは、ＨＬ、ＬＨ、ＨＨの３つで１まとまりである。ただし、ＬＬサブバンドを分割したプリシンクトは１つで１まとまりである。プリシンクトは、大まかには画像中の場所（Ｐｏｓｉｔｉｏｎ）を表すものである。プリシンクトはサブバンドと同じサイズにでき、プリシンクトをさらに矩形に分割したものがコードブロックである。よって、物理的な大きさの序列は、画像≧タイル＞サブバンド≧プリシンクト≧コードブロックとなる。
【０１０４】
図１２に、サブバンド毎の、タイル、プリシンクト、コードブロックを示す。
【０１０５】
以上の分割の後、係数のエントロピー符号化が、サブバンド単位で、コードブロック毎かつビットプレーン順に成される。ここでは、ビットプレーン単位でのＭＱ符号化が行われる。本実施形態においては、最上位ビットプレーンから、テーブルで予め規定された下位ビットプレーンまでをＭＱ符号化する（図４のステップＳ１４１）。これが、「下位ビットのトランケーション効果を施す」ことである。全てのビットプレーンを符号化した後に、不要な下位ビットプレーンの符号を破棄する操作でも良い。
【０１０６】
本実施例においては、「最上位ビットプレーンから、テーブルで予め規定された下位ビットプレーンまで」を必要な符号と見なすため、図４のステップＳ１４２に記す「不要な符号」は存在しない。これら「最上位ビットプレーンから、テーブルで予め規定された下位ビットプレーンまで」の符号に対して、ヘッダをつけたものをパケットと呼ぶ。パケットヘッダには、当該パケットに含まれる符号に関する情報が含まれ、各パケットは独立に扱うことができる。いわばパケットは符号の単位である。
【０１０７】
そして全てのプリシンクト（＝全てのコードブロック＝全てのサブバンド）に関して、（必要なパケットのみを選択し、）パケットを並べて符号を形成する。
【０１０８】
ここで、最上位ビットプレーンについて説明する。
【０１０９】
例えば、８ｂｉｔの原画像に対して５×３変換によるＪＰＥＧ２０００符号化を適用する場合、ウェーブレット係数のビット深さは以下のようになる。
【０１１０】
ウェーブレット係数のビット深さ＝
原画像のビット深さ（８）
＋色変換によるビット数増加  （輝度成分の場合０、色差成分の場合１）
＋ウェーブレット変換によるビット数増加Ａ（サブバンド間で共通に増加する分。いわゆるガードビット。５×３変換の場合、通常２）
＋ウェーブレット変換によるビット数増加Ｂ（サブバンド間の増加量の差。ＬＬを基準とした値。ＬＬは０、ＨＬとＬＨは１、ＨＨは２と既定されている）
【０１１１】
通常、上記ガードビットは２とするため、輝度成分の場合以下のようになる。
ＬＬサブバンドのウェーブレット係数のビット深さ  ８＋０＋２＋０＝１０ビット
ＨＬサブバンドのウェーブレット係数のビット深さ  ８＋０＋２＋１＝１１ビット
ＨＨサブバンドのウェーブレット係数のビット深さ  ８＋０＋２＋２＝１２ビット
【０１１２】
輝度の場合は、色変換の前に、さらにＤＣレベルシフトが加わるため、係数の絶対値の「最上位ビットプレーン」の位置は１ビット下位にシフトし、
ＬＬサブバンドのウェーブレット係数の最上位ビットプレーン  ＬＳＢから９ビット目
ＨＬサブバンドのウェーブレット係数のビット深さ          ＬＳＢから１０ビット目
ＨＨサブバンドのウェーブレット係数のビット深さ          ＬＳＢから１１ビット目
となる。
【０１１３】
ここで重要なのは、ウェーブレット変換によるビット数増加Ｂは符号化仕様で規定されており、同増加Ａは、ユーザが指定できるということである。ＪＰＥＧ２０００においては、複数のウェーブレット変換が選択可能なため、変換毎に異なる増加量を、前記増加Ａでカバーする。そして本実施形態においても、取り得る範囲外の値への入力値の置換によるビット数の増加を、この増加Ａでカバーする。
【０１１４】
以下、本実施例が対象とする５×３ウェーブレット変換、９×７ウェーブレット変換について、必要とされるガードビット数に関し、説明する。
【０１１５】
図１３及び図１４は、ウェーブレット変換により増加するビット数を示す図である（非特許文献１参照）。
【０１１６】
図１３は、５×３ウェーブレット変換により増加するビット数を示す図である。図１３の横軸は、デコンポジションレベル、縦軸は、増加するビット数である。
【０１１７】
図１４は、９×７ウェーブレット変換により増加するビット数を示す図である。図１４の横軸は、デコンポジションレベル、縦軸は、増加するビット数である。
【０１１８】
５×３ウェーブレット変換、及び、９×７ウェーブレット変換により、原画像のビット数が周波数係数になった場合に最大どれだけ増えるか見積もると、以下のようになる。
（５×３ウェーブレット変換）
ＬＬ                １．５５ビット
ＨＬおよびＬＨ      ２．３ビット
ＨＨ                ３．０５ビット
（９×７ウェーブレット変換）
ＬＬ                ０．９２ビット
ＨＬおよびＬＨ      １．８４ビット
ＨＨ                ２．７８ビット
【０１１９】
これから規定の増加量Ｂを除くと、以下のようになる。
（５×３ウェーブレット変換）
ＬＬ                １．５５ビット
ＨＬおよびＬＨ      １．３ビット
ＨＨ                １．０５ビット
（９×７ウェーブレット変換）
ＬＬ                ０．９２ビット
ＨＬおよびＬＨ      ０．８４ビット
ＨＨ                ０．７８ビット
【０１２０】
このため、ガードビットは通常、以下の値となる。
５×３ウェーブレット変換    ２ビット
９×７ウェーブレット変換    １ビット
【０１２１】
ここで、ＤＣレベルシフト後の輝度値１２７を１４０に置換した場合、原データがｌｏｇ２（１４０／１２７）＝０．１４ビット増加したことになるので、５×３ウェーブレット変換の場合、ガードビットはやはり２で足りることになる。しかし、輝度値１２７を例えば極端な例として１７４に置換した場合は、原データが０．４５４ビット増加したことになるので、１．５５＋０．４５４＞２  となり、ＬＬにとってはガードビット２では不足する。
【０１２２】
同様に９×７ウェーブレット変換の場合、ＤＣレベルシフト後の輝度値１２７を１３４に置換した場合、原データがｌｏｇ２（１４０／１２７）＝０．０７７ビット増加したことになるので、９×７ウェーブレット変換の場合、ガードビットはやはり１で足りることになる。しかし、輝度値１２７を例えば妥当な値として１３５に置換した場合は、原データが０．０８８ビット増加したことになるので、０．９２＋０．０８８＞１となり、ＬＬにとってはガードビット１では不足する事態となる。つまり、９×７ウェーブレットの場合は、置換が極端でない場合でも、ガードビットが不足する場合がある。
【０１２３】
したがって、置換の程度によっては、通常のガードビットの値よりも大きな値を採用することが必要となる。
【０１２４】
なお、上記の通りガードビットは、ビットプレーン数の最大値の算出に使われるが、この最大値は、ウェーブレット係数を保持するバッファに必要なビット深さでもある。ガードビットの値が不足した結果、バッファのビット深さが足りなくなる場合には、ウェーブレット係数がバッファからあふれ、ウェーブレット変換が正常に行われない。
【０１２５】
図１５は、本実施の形態に係る画像符号化方法の処理の例を示すフロー図である。図１５のステップＳ３０１では、１画素２４ビットのＲＧＢ画像が入力される。ステップＳ３０２では、５×３変換を選択する。また、入力画像データに対する極端な置換は行わないとし、ガードビットを、置換を行わない場合と同じ２に設定する。
【０１２６】
ステップＳ３０３では、メインヘッダのＳＩＺマーカセグメント中に、Ｒ、Ｇ、Ｂの各コンポーネントにつき８ｂｉｔであることを記載する。
【０１２７】
図１６及び図１７に、ＳＩＺマーカセグメントの構成およびその内容を示す。図１６及び図１７中の、Ｓｓｉｚ（０）にＲコンポーネントのビット数である８、Ｓｓｉｚ（１）にＧコンポーネントのビット数である８、Ｓｓｉｚ（２）にＢコンポーネントのビット数である８を記載する。
【０１２８】
ステップＳ３０４では、インヘッダのＱＣＤマーカセグメント中のＳＰｑｃｄに、ガードビットの値２を記載する。図１８から図２０は、ＱＣＤマーカセグメントの構成およびその内容を示す図である。ガードビットの値は、図１８ないし図２０中に示すＳＰｑｃｄの上位３ビットに格納される。
【０１２９】
ステップＳ３０５では、通常のＤＣレベルシフトを行う。ステップＳ３０６では、ＲＣＴで色変換を行う。
【０１３０】
ステップＳ３０６に続くステップＳ３０７及びステップＳ３０８は、画素毎に、入力画像データに含まれる全ての画素について実行される。ステップＳ３０７では、輝度値Ｙが１２２以上か否かの判断を行う。１２２以上の場合は、ステップＳ３０８に進み、そうではない場合は、次の画素についてステップＳ３０７の処理を繰り返す。ステップＳ３０８では、輝度値を１３２に置換する。ここでは、色差Ｃｂ、Ｃｒは置換を行わない。
【０１３１】
なお、ステップＳ３０８において、輝度値Ｙを（２Ｙ−１２２）としてもよい。この場合、−１２８≦Ｙ＜１２８であり、Ｙ＝１２５のときに置換後の輝度値は１２８になるため、Ｙ≧１２４という所定値以上の入力について、Ｙが取り得る範囲の外に置換していることになる。
【０１３２】
ステップＳ３０７及びステップＳ３０８が全ての画素について行われた後、ステップＳ３０９に進む。ステップＳ３０９では、輝度値Ｙおよび色差Ｃｂ、Ｃｒに対し、５×３フィルタで、デコンポジションレベル＝２としてウェーブレット変換を行う。
ステップＳ３１０では、サブバンド毎に、下位ビットプレーンの符号化を省略して、ＭＱ符号化を実施する。図２１は、ステップＳ３１０でトランケーションするビットプレーンの数を示す図である。
【０１３３】
図２１には、輝度値Ｙ、色差Ｃｂ、Ｃｒ毎に、デコンポジションレベル毎のトランケーションする下位ビットプレーンの数を示す。図１５の処理では、デコンポジションレベルが２であるので、ステップＳ３１０では、図２１中のデコンポジションレベル２の欄に記載される数のビットプレーンの符号化を省略する。
【０１３４】
図１５に戻り、ステップＳ３１１では、生成したＭＱ符号のパケットをまとめて符号化データを生成する。
【０１３５】
図２２は、輝度値の変換係数を置換する処理を説明する図である。図２２のステップＳ４０１からステップＳ４０６の処理は、図１５のステップＳ３０１からステップＳ３０６の処理と同一であり、図２２のステップＳ４１１の処理は、図１５のステップＳ３１１の処理と同一である。そこで、ここでは、これらのステップに係る説明は省略し、ステップＳ４０７からステップＳ４１０について、説明する。
【０１３６】
ステップＳ４０７では、輝度Ｙおよび色差Ｃｂ、Ｃｒに対し、５×３フィルタで、デコンポジションレベル＝３としてウェーブレット変換を行う。
【０１３７】
ステップＳ４０７に続くステップＳ４０８及びステップＳ４０９の処理は、３ＬＬ成分の変換係数の数だけ繰り返す。ステップＳ４０８では、画素の輝度Ｙの３ＬＬ成分の値が、３４６以上か否かを判断する。なお、５×３フィルタで、デコンポジションレベル＝３の場合、輝度Ｙの３ＬＬの最大値は３６１を越えない。そこで、本実施の形態では、３ＬＬのみに関して、輝度Ｙが３４６以上か否かを判断する。輝度の３ＬＬ成分の値が、３４６以上の場合は、ステップＳ４０９に進み、そうではない場合には、次の変換係数に進み、ステップＳ４０８の処理を繰り返す。
【０１３８】
ステップＳ４０９では、輝度の３ＬＬ成分の値を、（２Ｙ−３４６）に置換する。３ＬＬに関しては、Ｙ＜３６１であり、Ｙ＝３５４のときに置換後の輝度値は３６２になるため、Ｙ≧３５４という所定値以上の係数について、Ｙが取り得る範囲の外に置換していることになる。
【０１３９】
全ての輝度値の３ＬＬ成分の変換係数について、ステップＳ４０８及びステップＳ４０９の処理が終了した後、ステップＳ４１０に進む。ステップＳ４１０では、サブバンド毎に、下位ビットプレーンの符号化を省略して、ＭＱ符号化を実施する。
【０１４０】
図２３は、ステップＳ４１０でトランケーションするビットプレーンの数を示す図である。図２２は、デコンポジションレベル＝３の場合の例であるので、図２３中、デコンポジションレベルが３の欄に記載されたビットプレーン数が、コンポーネント毎、サブバンド毎にトランケーションされる。
【０１４１】
図２４は、９×７ウェーブレット変換を用いる処理の例を示すフロー図である。図２４において、図１５と処理が異なるステップは、ステップＳ５０２、ステップＳ５０４、ステップＳ５０６、ステップＳ５０９からステップＳ５１１である。図２４のその他のステップにおける処理は、図１５に示すステップの処理と同一であるので、ここでは説明を省略する。
【０１４２】
図２４のステップＳ５０２では、９×７ウェーブレット変換を選択し、ガードビットは、置換を行わない場合よりも１増やした２に設定する。これは、９×７ウェーブレット変換による変換係数のとりうる値の範囲が、５×３ウェーブレット変換による変換係数のとりうる値の範囲と同じかより大きいからである。
【０１４３】
ステップＳ５０４では、メインヘッダのＱＣＤマーカセグメントに、ステップＳ５０２で定めたガードビットを記載する。
ステップＳ５０６では、ＩＣＴで非可逆色変換を行う。
【０１４４】
ステップＳ５０９では、輝度Ｙおよび色差Ｃｂ、Ｃｒに対し、９×７フィルタで、デコンポジションレベル＝３としてウェーブレット変換を行う。
【０１４５】
ステップＳ５１０では、サブバンド毎に、係数について、所定の量子化ステップ数で除算し、小数点以下を切り捨てて整数化を行う。図２５は、コンポーネント毎、サブバンド毎に、デコンポジションレベル毎の量子化ステップ数を示す図である。図２５に示す量子化ステップ数で除算した商を、整数化する。
【０１４６】
ステップＳ５１１では、整数化した係数をビットプレーン化し、全てのビットプレーンに対してＭＱ符号化を実施する。
【０１４７】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【産業上の利用可能性】
【０１４８】
以上のように、本発明にかかる画像符号化装置は、地汚れの除去に有用であり、特に、スキャナや複写機における画像処理に適している。
【符号の説明】
【０１４９】
１０    前処理手段
１１    置換手段
１２    周波数変換手段
１３    量子化手段
１４    符号化手段
２０    後処理手段
２１    置換手段
２２    逆周波数変換手段
２３    逆量子化手段
２４    復号手段
【先行技術文献】
【特許文献】
【０１５０】
【特許文献１】特開２００４−２４２０５６号公報
【特許文献２】特開２００３−３７５０５号公報
【特許文献３】特許第３８７９２５０号公報
【非特許文献】
【０１５１】
【非特許文献１】Ｊｕｎｉｃｈｉ  Ｈａｒａ：  “Ｇｕａｒｄ  Ｂｉｔ  Ｒｅｑｕｉｒｅｍｅｎｔ  ｆｏｒ  ＪＰＥＧ２０００  Ｐａｒｔ  １  Ｆｉｌｔｅｒｓ，”  ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１，  ｗｇ１ｎ２１３３，  Ｍａｙ  ２００１
【図１】
2010220126.tif 000003
【図２】
2010220126.tif 000004
【図３】
2010220126.tif 000005
【図４】
2010220126.tif 000006
【図５】
2010220126.tif 000007
【図６】
2010220126.tif 000008
【図７】
2010220126.tif 000009
【図８】
2010220126.tif 000010
【図９】
2010220126.tif 000011
【図１０】
2010220126.tif 000012
【図１１】
2010220126.tif 000013
【図１２】
2010220126.tif 000014
【図１３】
2010220126.tif 000015
【図１４】
2010220126.tif 000016
【図１５】
2010220126.tif 000017
【図１６】
2010220126.tif 000018
【図１７】
2010220126.tif 000019
【図１８】
2010220126.tif 000020
【図１９】
2010220126.tif 000021
【図２０】
2010220126.tif 000022
【図２１】
2010220126.tif 000023
【図２２】
2010220126.tif 000024
【図２３】
2010220126.tif 000025
【図２４】
2010220126.tif 000026
【図２５】
2010220126.tif 000027