(57)【要約】【課題】切り捨てポイントとなるビットプレーンを正確に判断して正確にｒの加算を行うためにフラグ用に空きビットを有効利用し、画質劣化を抑制すること、高速な処理を行うことができる符号・復号化装置を提供する。【解決手段】ＪＰＥＧ２０００により画像データを処理して符号・復号化する装置において、画像データを演算処理するための固定小数演算処理を行う固定小数演算手段と、画像データのウェーブレット変換を行うための演算処理に用いる９×７フィルタ手段と、画像データを量子化するためのスカラ量子化処理を行うスカラ量子化手段と、画像データを符号・復号化するためのエントロピ符号化処理を行うエントロピ符号化手段と、画像データの演算処理したデータを格納するためのデータバッファ手段と、を有し、データバッファ手段は演算処理したデータの格納には固定のビット数を用い、データバッファの空ビットを復号化処理に利用する。【選択図】図１１
2010219798.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化するための符号化方式であるＪＰＥＧ２０００により前記画像データを処理して符号・復号化する装置において、
前記画像データを演算処理するための固定小数演算処理を行う固定小数演算手段と、
前記画像データのウェーブレット変換を行うための演算処理に用いる９×７フィルタ手段と、
前記画像データを量子化するための演算処理であるスカラ量子化処理を行うスカラ量子化手段と、
前記画像データを符号・復号化するための演算処理であるエントロピ符号化処理を行うエントロピ符号化手段と、
前記画像データの演算処理を行うために演算処理したデータを格納するためのデータバッファ手段と、
を有し、
前記データバッファ手段は、前記演算処理したデータの格納には固定のビット数を用い、データバッファの空ビットを復号化処理に利用することを特徴とする符号・復号化装置。
【請求項２】
前記エントロピ符号化手段は、エントロピ復号処理過程の符号化パスの処理において、
前記符号化パスの処理後のリコンストラクション値加算処理を行うか否かを判定し、前記加算処理を行う場合には判定されたデータの空いたビットにフラグをたてることを特徴とする請求項１に記載の復号化装置。
【請求項３】
前記リコンストラクション値加算処理を行うか否かの判定は、残サブビットプレーン数に基づいて判定することを特徴とする請求項１または２に記載の復号化装置。
【請求項４】
前記エントロピ符号化手段のマグニチュードリファイメントパスとクリーンアップパスは３に設定し、シグニフィカントプロパゲーションパスは４に設定することを特徴とする請求項１から３のいずれか１項に記載の復号化装置。
【請求項５】
前記エントロピ符号化手段は、符号化パスを処理した後に空いたビットにおけるフラグの有無を判定し、空きビットにフラグが有る場合には予め定められた加算値を予め定められた０以外の値を持った復号データに加算することを特徴とする請求項１から４のいずれか１項に記載の復号化装置。
【請求項６】
請求項１から５のいずれか１項に記載の符号・復号化装置を備えることを特徴とする画像処理装置。
【請求項７】
画像データを符号化するための符号化方式であるＪＰＥＧ２０００により前記画像データを処理して符号・復号化する方法において、
前記画像データを演算処理するための固定小数演算処理を行う固定小数演算工程と、
前記画像データのウェーブレット変換を行うための演算処理に用いる９×７フィルタ工程と、
前記画像データを量子化するための演算処理であるスカラ量子化処理を行うスカラ量子化工程と、
前記画像データを符号・復号化するための演算処理であるエントロピ符号化処理を行うエントロピ符号化工程と、
前記画像データの演算処理を行うために演算処理したデータの格納には固定のビット数を用い、データバッファの空ビットを復号化処理に利用するためのデータバッファ工程と、
を有することを特徴とする符号・復号化方法。
【請求項８】
前記エントロピ符号化工程は、エントロピ復号処理過程の符号化パスの処理において、
前記符号化パスの処理後のリコンストラクション値加算処理を行うか否かを判定し、前記加算処理を行う場合には判定されたデータの空いたビットにフラグをたてることを特徴とする請求項７に記載の復号化方法。
【請求項９】
前記リコンストラクション値加算処理を行うか否かの判定は、残サブビットプレーン数に基づいて判定することを特徴とする請求項７または８に記載の復号化方法。
【請求項１０】
前記エントロピ符号化工程のマグニチュードリファイメントパスとクリーンアップパスは３に設定し、シグニフィカントプロパゲーションパスは４に設定することを特徴とする請求項７から９のいずれか１項に記載の復号化方法。
【請求項１１】
前記エントロピ符号化工程は、符号化パスを処理した後に空いたビットにおけるフラグの有無を判定し、空きビットにフラグが有る場合には予め定められた加算値を予め定められた０以外の値を持った復号データに加算することを特徴とする請求項７から１０のいずれか１項に記載の復号化方法。
【請求項１２】
画像データを符号化するための符号化方式であるＪＰＥＧ２０００により前記画像データを処理して符号・復号化するプログラムにおいて、
前記画像データを演算処理するための固定小数演算処理を行う固定小数演算処理と、
前記画像データのウェーブレット変換を行うための演算処理に用いる９×７フィルタ処理と、
前記画像データを量子化するための演算処理であるスカラ量子化処理を行うスカラ量子化処理と、
前記画像データを符号・復号化するための演算処理であるエントロピ符号化処理を行うエントロピ符号化処理と、
前記画像データの演算処理を行うために演算処理したデータの格納には固定のビット数を用い、データバッファの空ビットを復号化処理に利用するためのデータバッファ処理と、
をコンピュータに実行させるためのプログラム。
【請求項１３】
前記エントロピ符号化処理は、エントロピ復号処理過程の符号化パスの処理において、
前記符号化パスの処理後のリコンストラクション値加算処理を行うか否かを判定し、前記加算処理を行う場合には判定されたデータの空いたビットにフラグをたてることを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記リコンストラクション値加算処理を行うか否かの判定は、残サブビットプレーン数に基づいて判定することを特徴とする請求項１２または１３に記載のプログラム。
【請求項１５】
前記エントロピ符号化処理のマグニチュードリファイメントパスとクリーンアップパスは３に設定し、シグニフィカントプロパゲーションパスは４に設定することを特徴とする請求項１２から１４のいずれか１項に記載のプログラム。
【請求項１６】
前記エントロピ符号化処理は、符号化パスを処理した後に空いたビットにおけるフラグの有無を判定し、空きビットにフラグが有る場合には予め定められた加算値を予め定められた０以外の値を持った復号データに加算することを特徴とする請求項１２から１５のいずれか１項に記載のプログラム。
【請求項１７】
請求項７から１１のいずれか１項に記載の方法を実行させるプログラムを記録したことを特徴とする、コンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号・復号化装置、画像符号・復号化方法、プログラム、記録媒体及び画像処理装置に関する。
【背景技術】
【０００２】
画像データの次世代の高能率符号化方式として、ＩＳＯ（国際標準化機構）やＩＴＵ−Ｔ（国際電気通信連合電気通信標準化部門）によって、ＪＰＥＧ２０００（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２０００）方式が策定されている。ＪＰＥＧ２０００方式は、現在主流のＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式と比べて優れた機能を有するものであり、直交変換としてＤＷＴ（離散ウェーブレット変換；Ｄｉｓｃｒｅｔｅ  Ｗａｖｅｌｅｔ  Ｔｒａｎｓｆｏｒｍ）を採用し、エントロピ符号化に、ビットプレーン符号化を行うＥＢＣＯＴ（Ｅｍｂｅｄｄｅｄ  Ｂｌｏｃｋ  Ｃｏｄｉｎｇ  ｗｉｔｈ  Ｏｐｔｉｍｉｚｅｄ  Ｔｒｕｎｃａｔｉｏｎ）と称する方法を採用する点に特徴がある。
【０００３】
ＪＰＥＧ２０００  Ｐａｒｔ  Ｉ（ＩＳＯ／ＩＥＣ１５４４４−１）では、復号処理中において、量子化された各ウェーブレット係数について、その値が「０」でなければ、最下位に任意のｒ（０≦ｒ＜１）を加えると規定されている。これは、符号化手順中の量子化において、ウェーブレット係数の絶対値が小さくなるように丸められた影響を緩和するためのものである。
【０００４】
例えば図２は、ビットプレーン化された「１６，６４，８８，３２，０，０，０，１１２」の各ウェーブレット係数を示しており、「ビット数が９」、「０ビットプレーン数が２」、「処理パス数が３」、の場合を示している。この３つのパスは、Ｓｉｇｎｉｆｉｃａｎｔ  Ｐｒｏｐａｇａｔｉｏｎ  Ｐａｓｓ、Ｍａｇｎｉｔｕｄｅ  Ｒｅｆｉｎｅｍｅｎｔ  Ｐａｓｓ、Ｃｌｅａｎｕｐ  Ｐａｓｓと呼ばれる３つのパスであり、各パスの境界が切り捨てポイントとなる。ビットプレーンを３つのパスで分割されたものがサブビットプレーンと呼ばれる。そして、切り捨てポイントより下位の全てのビットデータの値は「０」となっており、実質的に切り捨てられたのと同じ扱いの処理となっている。ＪＰＥＧ２０００では、このような切り捨て処理により極力効率的な圧縮符号化を行うことが企図されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来では、逆量子化後の最下位にｒを加算させることにより、復号処理を行っている。
【０００６】
例えば、特許文献１では、量子化された注目係数の属するサブバンドと、その注目係数の近傍の係数とに基づいて、注目係数に対応するパラメータｒの値を決定し、その決定したパラメータを量子化された各ウェーブレット係数に加えるという点が開示されている。これは、ビットプレーン単位での切り捨てポイントを判断し、加算処理を行っている。しかし、各パス単位での切り捨てポイントであった場合、切り捨てポイントのビットプレーンを正確に判断することができず、多少の画質劣化となる問題がある。
【０００７】
一方、従来では、高速化するための処理方法が提案されている。例えば、特許文献２に記載されているように、パスの処理を少なくすることで高速化を図るものもある。
【０００８】
また、他の方法としては、サブビットプレーン単位でのｒの加算方法であり、具体的には、復号対象となるサブビットプレーンについて復号し、ｒを加算する。そして、復号対象となるサブビットプレーンが次に移ったときには、前記で加算したｒを減算し、復号し、その対象となるサブビットプレーンに対してのｒを加算することにより、復号処理を行うことなどが考えられる。これは、全てのサブビットプレーンに対し、ｒの加算と、減算処理が必要となるため、処理速度の低下となる問題があった。
【０００９】
そこで、切り捨てポイントとなるビットプレーンを正確に判断し、そのビットプレーンを用いた切り捨てポイントよりも下位ビットデータへの任意ｒの加算値により、復号処理の画質劣化の抑制となる。また、任意ｒの加算処理を最小限にすることにより、高速な処理を行う方法とすることができる。
【００１０】
ただし、上記方法の場合、例えば、切り捨てポイントがビットプレーン０の場合、ｒの加算処理が行われていない。ｒ値が１／２の場合、切り捨てポイントがビットプレーン０では、１／２の加算処理であり、小数点以下の加算も行うことが画質劣化の抑制となる。しかし、加算処理を行う処理部分の係数バッファには、小数点以下を確保していなため、加算処理が行われないという問題がある。
【００１１】
従って、この小数点以下の加算処理を行うために、係数バッファに空きビットを作り、小数点以下の加算処理が必要である場合、その空きビットにフラグをたて、後処理において、小数点以下の加算処理を行うようにする。
【００１２】
そこで本発明は、上記問題点に鑑みてなされたもので、切り捨てポイントとなるビットプレーンを正確に判断したｒの加算を行うとともに、ｒが小数数点以下となる場合にも正確に加算を行うためにフラグ用に空きビットを有効利用することで、画質劣化を抑制すること、高速な処理を行うことができること、及びメモリの有効活用をすることを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明に係る符号・復号化装置は、画像データを符号化するための符号化方式であるＪＰＥＧ２０００により画像データを処理して符号・復号化する装置において、画像データを演算処理するための固定小数演算処理を行う固定小数演算手段と、画像データのウェーブレット変換を行うための演算処理に用いる９×７フィルタ手段と、画像データを量子化するための演算処理であるスカラ量子化処理を行うスカラ量子化手段と、画像データを符号・復号化するための演算処理であるエントロピ符号化処理を行うエントロピ符号化手段と、画像データの演算処理を行うために演算処理したデータを格納するためのデータバッファ手段と、を有し、データバッファ手段は、演算処理したデータの格納には固定のビット数を用い、データバッファの空ビットを復号化処理に利用することを特徴とする。
【００１４】
また本発明に係る符号・復号化方法は、画像データを符号化するための符号化方式であるＪＰＥＧ２０００により画像データを処理して符号・復号化する方法において、画像データを演算処理するための固定小数演算処理を行う固定小数演算工程と、画像データのウェーブレット変換を行うための演算処理に用いる９×７フィルタ工程と、画像データを量子化するための演算処理であるスカラ量子化処理を行うスカラ量子化工程と、画像データを符号・復号化するための演算処理であるエントロピ符号化処理を行うエントロピ符号化工程と、画像データの演算処理を行うために演算処理したデータの格納には固定のビット数を用い、データバッファの空ビットを復号化処理に利用するためのデータバッファ工程と、を有することを特徴とする。
【００１５】
また本発明に係るプログラムは、画像データを符号化するための符号化方式であるＪＰＥＧ２０００により画像データを処理して符号・復号化するプログラムにおいて、画像データを演算処理するための固定小数演算処理を行う固定小数演算処理と、画像データのウェーブレット変換を行うための演算処理に用いる９×７フィルタ処理と、画像データを量子化するための演算処理であるスカラ量子化処理を行うスカラ量子化処理と、画像データを符号・復号化するための演算処理であるエントロピ符号化処理を行うエントロピ符号化処理と、画像データの演算処理を行うために演算処理したデータの格納には固定のビット数を用い、データバッファの空ビットを復号化処理に利用するためのデータバッファ処理と、をコンピュータに実行させることを特徴とする。
【００１６】
また本発明に係るコンピュータに読み取り可能な記録媒体は、上記記載の符号・復号化方法を実行させるプログラムを記録したことを特徴とする。
【発明の効果】
【００１７】
本発明により、画質の劣化を抑制した高速な画像符号・復号化処理を行うことが可能となる。
【図面の簡単な説明】
【００１８】
【図１】ＪＰＥＧ２０００を用いた従来の画像復号化装置の構成を示すブロック図である。
【図２】ポスト量子化について説明する図である。
【図３】コードブロックをビット毎にスライスして形成されたビットプレーンを説明する図である。
【図４】ビットプレーン上の係数を復号する際の走査順序を説明する図である。
【図５】ビットプレーン上の復号対象の係数Ｘの周囲に隣接する８個の近傍係数を説明する図である。
【図６】Ｓパスにおけるコンテクストの分類テーブルを説明する図である。
【図７】極性ビットのコンテクスト決定のための垂直指標および水平指標テーブルを説明する図である。
【図８】水平指標ｈと垂直指標ｖの組み合わせと、５種類の極性ビットに対するコンテクストラベルＣＸとを対応づけたテーブルを示す図である。
【図９】Ｒパスにおけるコンテクストの分類テーブルを示す図である。
【図１０】Ｃパスにおけるコンテクストの分類テーブルを示す図である。
【図１１】エントロピ復号化手段についての流れを示す図である。
【図１２】エントロピ復号化手段についての流れを示す図である。
【図１３】符号データがサブビットプレーン分割された状態を示す図である。
【図１４】符号データがサブビットプレーン分割された状態を示す図である。
【図１５】符号データがサブビットプレーン分割された状態を示す図である。
【図１６】符号データがサブビットプレーン分割された状態を示す図である。
【図１７】空ビットへのフラグ挿入についての流れを示す図である。
【図１８】空ビットのフラグを使用したｒ値の加算処理についての流れを示す図である。
【図１９】本発明の実施形態に係る装置構成の例を示したものである。
【発明を実施するための形態】
【００１９】
最初に、実施形態の詳細を説明する前に、ここで、空きビットについて説明を加える。９×７ウェーブレットは実数演算であり、本来ウェーブレット係数は浮動小数点で扱うが、ここでは、演算を高速化するため、整数（固定小数）で扱うことにする。９×７ウェーブレット係数のｂｉｔ構成は、エンコード時、入力される原画像８ｂｉｔであり、９×７ウェーブレット係数は実数であるため、整数部分と小数部分の両方を係数バッファに格納する必要がある。ウェーブレット変換で増加するビット数はＬＬ１ｂｉｔ、ＨＬ２ｂｉｔ、ＬＨ２ｂｉｔ、ＨＨ３ｂｉｔである。よって、ウェーブレット変換後の最大ｂｉｔ数はＬＬ９ｂｉｔ、ＨＬ１０ｂｉｔ、ＬＨ１０ｂｉｔ、ＨＨ１１ｂｉｔである。計算機でのデータバッファには、通常８，１６，３２，６４ｂｉｔが用いられ、整数部は１１ｂｉｔ必要なので、データバッファには１６ｂｉｔを使用する。小数部については、ＰＳＮＲを良くするために、浮動小数点に近くする必要があり、小数部の桁数をなるべく大きくしたいため、残りの５ｂｉｔを使用する。そのため、ここでの空いているビットは存在しない。
【００２０】
その後、１６ｂｉｔの係数に対し、線形量子化と整数化を行う。ＪＰＥＧ２０００における線形量子化は、実は正規化であり、大抵のコーデックの場合、同じ量子化ステップ数で除算がなされるという特殊事情がある。
【００２１】
次に、所定圧縮率下でＰＳＮＲを最大にする量子化ステップ数の算出法に関して説明する。モノクロ画像の場合にＰＳＮＲを最大にする量子化ステップ数について述べる。非直交変換における線形量子化ステップ数に関する導出は、非特許文献１及び非特許文献２に記載されている。
【００２２】
非特許文献１及び２は、ラグランジェの未定乗数法（ある偏微分値を未定乗数の値と一致させて、所望の最適解を得る方法）によって最適なＰＳＮＲを与える条件を導出しており、後に発行された他者の文献は皆この方法を踏襲している。この方法では、各サブバンド毎にラグランジェの未定乗数λに相当するディストーションスロープ（Δ量子化誤差／Δ符号量）を同じ値にすることにより、量子化誤差を最小にできる。
【００２３】
あるサブバンドｓｂにおける逆ウェーブレット変換のエネルギーゲイン（以下サブバンドゲインと呼ぶ）をＧｓｂとし、当該サブバンドに適用する量子化ステップ数をΔｓｂとする。量子化誤差に関するいくつかの近似を経ると、ディストーションスロープは最終的に「Ｇｓｂ・Δｓｂ＾２」の定数倍として与えられ、この値が各サブバンドで同一の場合に所定符号量下で量子化誤差が最小になる（非特許文献１〜４）。
【００２４】
よって、ＰＳＮＲを最大にするために、当該サブバンドに対して適用すべき量子化ステップ数は、式（１）で与えられる。ここでｒは、所望符号量で決まる定数であり、代表値は１である。そして本実施形態でもこの代表値１が採用されていることを想定している。
【００２５】
【数１】
2010219798.tif 000003
【００２６】
次に、サブバンドゲイン算出法のサブバンドゲインについて説明する。正規直交変換でない周波数変換の逆変換においては、周波数帯域すなわちサブバンドごとに「変換係数値が信号値に逆変換された場合の倍率」が異なり、この倍率の二乗をサブバンドゲインという。量子化によって変換係数に生じた誤差△ｅは、信号への逆変換によってサブバンドゲインの平方根倍され、式（２）となる。
【００２７】
【数２】
2010219798.tif 000004
【００２８】
以下、簡単のため５×３ウェーブレットを例にとって説明する。ｘを座標値とした場合、ＪＰＥＧ２０００のウェーブレット逆変換は、インターリーブされた係数Ｃ（ｘ）の配列に対して、まず水平方向にｘが偶数（ｘ＝２ｉ）の係数を中心に逆ローパスフィルタを施し、次にｘが奇数（ｘ＝２ｉ＋１）の係数を中心に逆ハイパスフィルタを施す。ここで逆ローパスフィルタ、逆ハイパスフィルタは、順に次式（３）、（４）で表される。
【００２９】
【数３】
2010219798.tif 000005
【００３０】
【数４】
2010219798.tif 000006
【００３１】
式（５）、（６）のフロア関数をとると、次の近似式を得る。
【００３２】
【数５】
2010219798.tif 000007
【００３３】
【数６】
2010219798.tif 000008
【００３４】
また、式（５）、（６）から下の５つの式を得る。
【００３５】
【数７】
2010219798.tif 000009
【００３６】
【数８】
2010219798.tif 000010
【００３７】
【数９】
2010219798.tif 000011
【００３８】
【数１０】
2010219798.tif 000012
【００３９】
【数１１】
2010219798.tif 000013
【００４０】
今、奇数位置のハイパス係数Ｃ（２ｉ＋１）に量子化誤差１が生じた場合、上記の式（７）〜（１１）の５つの式は、該誤差がＰ（２ｉ−１）からＰ（２ｉ＋３）の５画素に影響を及ぼすことを示す。
【００４１】
これら５つの誤差が独立であると仮定すると、該５画素に生じる誤差の二乗和の平方根は、以下の式（１２）である。
【００４２】
【数１２】
2010219798.tif 000014
【００４３】
つまり、ハイパス係数の誤差１が、画素値のエラー０．８５に変換されるのである。ここで、−１／８、−１／４、３／４、−１／４、−１／８は正変換時のローパスフィルタの定数であり、一般にこれらの二乗和が逆ハイパスフィルタ１回分のサブバンドゲインＧＨを与える。
【００４４】
同様に、偶数位置のローパス係数Ｃ（２ｉ）に量子化誤差１が生じた場合、上記の式（７）〜（１１）の５つの式は、該誤差がＰ（２ｉ−１）からＰ（２ｉ＋１）の３画素に影響を及ぼすことを示す。よって該３画素に生じる誤差の二乗和の平方根は、式（１３）であり、一般に正変換時のハイパスフィルタの定数の二乗和が、逆ローパスフィルタ１回分のサブバンドゲインＧＬを与える。
【００４５】
【数１３】
2010219798.tif 000015
【００４６】
また、水平方向に逆変換Ａを施した後、さらに水平方向に逆変換Ｂを施した場合のサブバンドゲインは、逆変換ａ、Ｂのサブバンドゲインの積となる。つまりＨＬ係数のサブバンドゲインはＧＨ・ＧＬである。
【００４７】
同様に、デコンポジションレベルｎからｎ−１に逆変換を行う場合、例えば（ｎ−１）ＨＬ係数のサブバンドゲインは、ｎＬＬ係数のサブバンドゲインにＨＬ係数のサブバンドゲインを乗じたものになる。
【００４８】
よって、一般にサブバンドゲインは、以下で与えられる。
【００４９】
ｎＬＬ係数は、（ＧＬ＾２）＾ｎで、
ｎＨＬ係数、ｎＬＨ係数は、（ＧＬ・ＧＨ）・（ＧＬ＾（ｎ−１））で、
ｎＨＨ係数は、（ＧＨ＾２）・（ＧＬ＾（ｎ−１））となる。
【００５０】
以下に、５×３、９×７のデコンポジションレベル５までのサブバンドゲインの平方根を表１および表２に示す。表１は５×３逆ウェーブレット変換のサブバンドゲインの平方根を表す。表２は９×７逆ウェーブレット変換のサブバンドゲインの平方根を表す。
【００５１】
【表１】
2010219798.tif 000016
【００５２】
【表２】
2010219798.tif 000017
【００５３】
また、サブバンドごとの量子化ステップ数を、式（１４）にするということは、線形量子化後のトランケーションによって生じる誤差の信号値への倍率を、サブバンド毎に等しくすることを意味する。よって、ＪＰＥＧ２０００における線形量子化は、実は正規化である。
【００５４】
【数１４】
2010219798.tif 000018
【００５５】
以上のように、ウェーブレット変換を決めれば、サブバンドゲインは一意の定数として算出され、その定数をもとに量子化ステップ数が決定される。前記ｒの代表値が１である実情を考慮すれば、ＪＰＥＧ２０００における量子化ステップ数は、ほぼ定数として扱えることがわかる。
【００５６】
カラー画像の場合のＰＳＮＲを最大にする量子化ステップ数について説明する。カラーの場合は、サブバンドゲインＧｓｂに逆コンポ−ネント変換のゲインＧｃｔを加味する必要があり、ＰＳＮＲを最大にする量子化ステップ数は、式（１５）で与えられる。ここでＧｃｔはサブバンドによらず一定であり、ｓは（１．１）類似の定数であるが、輝度ＹのゲインをＧｃｔＹとしたときに、式（１６）とするのが通常である。同様に、色差ＣｂのゲインをＧｃｔＣｂ、色差ＣｒのゲインをＧｃｔＣｒとする。つまり、カラー画像の場合でも、輝度に対する量子化ステップ数はモノクロ画像の場合と同じ値を用いるようにし、Ｃｂ、Ｃｒに関しては、式（１７）に対する式（１８）、式（１９）の比で換算するのである。
【００５７】
【数１５】
2010219798.tif 000019
【００５８】
【数１６】
2010219798.tif 000020
【００５９】
【数１７】
2010219798.tif 000021
【００６０】
【数１８】
2010219798.tif 000022
【００６１】
【数１９】
2010219798.tif 000023
【００６２】
非可逆色変換（Ｉｒｒｅｖｅｒｓｉｂｌｅ  Ｃｏｍｐｏｎｅｎｔ  Ｔｒａｎｓｆｏｒｍ、ＩＣＴ）の逆変換のゲインについて説明する。まず、逆ＩＣＴは以下の式で与えられ、非可逆９×７ウェーブレットの逆変換と同時に用いられる。一方、逆ＲＣＴは可逆５×３ウェーブレットの逆変換と同時に用いられる。
【００６３】
【表３】
2010219798.tif 000024
【００６４】
表３は逆ＩＣＴの定義を表す。上記の表３の式から、例えば色差Ｃｂに単位量子化誤差が生じた場合、逆ＩＣＴによってＲＧＢ値に生じる量子化誤差の二乗和の平方根は、以下の式２０で与えられる。
【００６５】
【数２０】
2010219798.tif 000025
【００６６】
よって、下の表４が得られる。表４は逆ＩＣＴのゲインの平方根を表す。
【００６７】
【表４】
2010219798.tif 000026
【００６８】
上記を基に、各サブバンドのビット深さを考えると、線形量子化により、ビット数は増えるが、ビットプレーン化のため係数が整数化されるので、小数部分を係数バッファに格納する必要はなくなる。量子化で増加するビット数はＬＬ５ｂｉｔ、ＨＬ４ｂｉｔ、ＬＨ４ｂｉｔ、ＨＨ３ｂｉｔであり、量子化後の最大ビット数はＬＬ１４ｂｉｔ、ＨＬ１４ｂｉｔ、ＬＨ１４ｂｉｔ、ＨＨ１４ｂｉｔである。
【００６９】
すなわち、デコード時、復号化前の入力されてくる係数バッファの最大ビット数は、ＬＬ１４ｂｉｔ、ＨＬ１４ｂｉｔ、ＬＨ１４ｂｉｔ、ＨＨ１４ｂｉｔとなる。結果的に全てのサブバンドについて、原画像が８ｂｉｔの場合、係数バッファを１６ｂｉｔ確保するため、上位２ビットが空く。これは、固定小数演算と正規化目的の量子化という特殊事情による結果である。
【００７０】
量子化後のこれらの上位ビットが、通常空いたままである理由としては、通常のデータ型（８，１６，３２，６４ｂｉｔ）以外で扱う場合は、１つの係数にアクセスする度にビット単位での操作を伴うため、高速化に反し、バッファを小さくすることはできないためである。ここで、リコンストラクションを考えると、フラグが必要であるが、フラグ用にメモリを保持するのは不経済である。
【００７１】
次に本実施形態について図を用いて詳細に説明する。
【００７２】
＜第１の実施形態の構成＞
図１は、ＪＰＥＧ２０００を用いた従来の画像復号化装置の構成を示すブロック図である。この装置は、符号データ入力手段１、ヘッダ解析手段２、エントロピ復号化手段３、スカラ逆量子化手段４、逆ウェーブレット変換手段５、カラー変換手段６、ＤＣレベルシフト手段７、及び画像データ出力手段８を備えている。なお、これらのうち、スカラ逆量子化手段４、カラー変換手段６、及びＤＣレベルシフト手段７はＪＰＥＧ２０００においてはオプションとして備えられたものである。ＪＰＥＧ２０００では、その他にもオプションとして備えられたものがあるが、本実施形態とは直接的な関連性がないか、あっても重要度が低いため説明は省略している。
【００７３】
次に、図１の動作について説明する。まず、ＪＰＥＧ２０００の規格にしたがって圧縮符号化された画像データは、ファイルシステムやネットワーク手段を用いて符号データ入力手段１によって入力される。この画像データには、メインヘッダ、及びタイルヘッダが付されており、ヘッダ解析手段２はこれらのヘッダを読み込み、解析する。ここで、メインヘッダには、画像の大きさ、タイルの大きさ、画像位置のオフセット、タイル位置のオフセット、１画素あたりのサンプルビット数、ＲＧＢなどのコンポーネント数等についての情報が格納されている。また、タイルヘッダには、タイル番号、タイルの大きさ等が格納され、符号化スタイルや量子化スタイルなどを指定することができる。
【００７４】
エントロピ復号化手段３は、ヘッダ解析手段２の解析結果を用いて、圧縮符号化された画像データのエントロピ復号化を行い、出力されるビット列からスカラ量子化した係数列を作成する。
【００７５】
スカラ逆量子化手段４は、ヘッダ解析手段２で解析されたメインヘッダ及びタイルヘッダにより指定された量子化スタイルに基づき、エントロピ復号化手段３で作成された係数列をＪＰＥＧ２０００の規格にある所定の計算式で逆量子化し、ウェーブレット係数を生成する。なお、符号化時にはウェーブレット変換により生成されたウェーブレット係数は必ずしも量子化されるとは限らず、その場合にはスカラ逆量子化手段４による逆量子化は行われないことになる。
【００７６】
逆ウェーブレット変換手段５は、スカラ逆量子化手段４で得られたウェーブレット係数をメインヘッダ又はタイルヘッダで指定された符号化スタイルの分解数に基づき逆ウェーブレット変換を行い、ＹＵＶカラー空間の画像データを作成する。
【００７７】
カラー変換手段６は、逆ウェーブレット変換手段５で得られた画像データをヘッダ解析手段２の解析結果にしたがってＹＵＶ成分からＲＧＢ成分へカラー変換する。但し、モノクロ画像の符号データや、符号化時にカラー変換を行わなかった場合、カラー変換手段６は動作しない。
【００７８】
ＤＣレベルシフト手段７は、カラー変換手段６で得られたＲＧＢ成分の各値のＤＣレベルをシフトする。ＤＣレベルシフトとは、符号化時にダイナミックレンジが値０を中心とするようにシフトすることであり、復号化時にはそれを元に戻すことである。例えば、或る入力画像データが８ビットで表されているとすると、このデータは０〜２５５のうちのいずれかの値となるが、ＤＣレベルシフトすることにより、このデータの値を、０を中心として−１２８〜１２７の値にすることができる。このように、ＤＣレベルシフトを行う理由は、周波数変換後の係数は正負の符号と絶対値とに分けられて符号化されるため、ゼロ値を基準としてデータ配置されている方が、符号化効率が高くなるからである。画像データ出力手段８は、ＤＣレベルシフト手段７で得られた画像を出力する手段である。
【００７９】
なお、ＪＰＥＧ２０００ではウェーブレット変換され、係数ビットモデリングされた後の画像データに対して「ポスト量子化」（「トランケーション」と呼ばれることもある）と呼ばれるデータ切り捨て処理が行われる。しかし、常に行われるわけではない。
【００８０】
図２は、このポスト量子化についての説明図である。この図に示されているのは、ある１つのコードブロックに含まれている一部のビットプレーン化されたウェーブレット係数である。そして、ＪＰＥＧ２０００の規格に基づくパケットヘッダ情報と呼ばれるヘッダ情報には、このウェーブレット係数のビット数、ゼロビットプレーン数、処理パス数等のデータが格納されている。
【００８１】
ＪＰＥＧ２０００では、ポスト量子化により符号量が削減され効率的な画像圧縮が行われるようになっている。しかし、ポスト量子化が行われると、切り捨てポイントより下位ビットデータは全て一律に０値となってしまうため、これをそのまま復号して再生すると再生画像には違和感や不明瞭のある部分が含まれ、画質劣化となることがある。そこで、切り捨てポイントよりも下位ビットデータへの任意ｒの加算を行うことにより、復号処理の画質劣化の抑制となる。従来、任意ｒの加算が行われるポイントとしては、ビットプレーン単位での切り捨てポイントによって行われている。しかし、切り捨てポイントが各パス単位であった場合、切り捨てポイントとなるビットプレーンの判断ができない。
【００８２】
そこで、本発明は、切り捨てポイントとなるビットプレーンを正確に判断し、そのビットプレーンを用いた切り捨てポイントよりも下位ビットデータへの任意ｒの加算値により、復号処理の画質劣化の抑制となり、また、任意ｒの加算処理を最小限にすることにより、高速な処理方法となる。
【００８３】
図１の動作の詳細な流れを説明する。ヘッダ解析手段２は、ＣＯＤマーカの解読により、パケットデータの先頭アドレスを特定する。特定されたパケットデータの先頭アドレスをもとに、最初の符号化パスの符号化データＣＤを取り出し、Ｓパス、Ｒパス、Ｃパスの各符号化ストリームを順次、エントロピ復号化手段３に出力する。エントロピ復号化手段３は、符号化データＣＤとコンテクストラベルＣＸを入力として受け取り、入力されてくるパスの順に各パスを順次復号処理する。エントロピ復号化手段３から出力されるデシジョンＤをスカラ逆量子化手段４に出力する。
【００８４】
コンテクストラベルＣＸは、ＪＰＥＧ２０００における復号時の係数ビットモデリング処理を行うことにより決定するものである。復号時の係数ビットモデリング処理は、エントロピ復号化手段３による復号結果を利用して周辺情報を更新しながら、算術復号の際に必要となるコンテクストを決定する処理である。以下、図３〜図１０を参照して、復号時の係数ビットモデリング処理を説明する。
【００８５】
ヘッダ解析手段２により符号化ストリームから抽出されたサブバンド画像はコードブロックと呼ばれる小領域に分割され、コードブロックが復号処理単位となる。サブバンド画像は、原画像のｘ、ｙの両方向において低周波成分を有するＬＬサブバンド、ｘ、ｙのいずれかひとつの方向において低周波成分を有し、かつもう一方の方向において高周波成分を有するＨＬおよびＬＨサブバンド、ｘ、ｙの両方向において高周波成分を有するＨＨサブバンドのいずれかである。
【００８６】
コードブロックのサイズは、高さと幅が２２〜２１０の範囲にある２のべき乗の整数値であり、高さと幅の指数の和は１２以下であることが規格において定められている。
【００８７】
図３は、コードブロックをビット毎にスライスして形成されたビットプレーンを説明する図である。コードブロックのビットプレーンは、ウェーブレット変換係数の量子化値の正負の符号を格納したＳｉｇｎプレーンと、ウェーブレット変換係数の量子化値の絶対値を与えるＭＳＢからＬＳＢまでの複数のプレーンとから構成される。エントロピ復号化手段３は、上位ビットから順にビットプレーンを選択し、ビットプレーン単位でビットプレーン上で各係数の復号処理を行う。
【００８８】
図４は、ビットプレーン上の係数を復号する際の走査順序を説明する図である。ビットプレーンは、縦４ピクセルのストライプに分割され、ストライプ単位で走査されて復号される。各ストライプの横幅はコードブロックの横幅であり、本例では３２ピクセルである。ストライプの本数は、合計で８本となる。
【００８９】
各ストライプにおいて、矢印で示すように最初の列の縦４ピクセルを上から順に走査して１ピクセルずつ復号処理を進め、次に２番目の列の縦４ピクセルを同じ向きに走査し、これを最後の列まで繰り返す。ストライプの終端まで復号処理が終わると、次のストライプの先頭の係数から同じように走査して復号処理を進め、コードブロックの最後の行まで繰り返す。なお、係数の正負の符号を格納したＳｉｇｎプレーンの復号は、係数の絶対値部分に相当するプレーンを復号する際に適宜行われる。
【００９０】
コードブロック内の各係数は、有意であるか、有意でないかの２つの状態で識別される。有意である場合は１、有意でない場合は０を割り当て、各係数の有意性状態を２値で識別する。復号開始時は、コードブロック内のすべての係数は有意でない。
【００９１】
ここで、係数が有意であるとは、着目しているウェーブレット変換係数の量子化値が、これまでの復号処理の結果から'０'ではないとわかっている状態をいう。言い換えれば、上位ビットプレーンから順次ストライプ単位で走査しながら復号していく中で、'１'であるビットが発見されているウェーブレット変換係数の状態をいう。また、係数が有意でないとは、着目しているウェーブレット変換係数の量子化値が'０'であるか、あるいは'０'である可能性が残っている状態をいう。言い換えれば、上位ビットプレーンから順次復号していく中で、'１'であるビットが未だ発見されていないウェーブレット変換係数の状態をいう。
【００９２】
係数ビットモデリング処理では、ビットプレーン上の係数の周囲にある係数の有意性状態にもとづいて各係数ビット毎にコンテクストが決定される。
【００９３】
図５は、ビットプレーン上の復号対象の係数Ｘ（以下、現係数Ｘという）の周囲に隣接する８個の近傍係数を説明する図である。８個の近傍係数は、現係数Ｘに対して水平方向に隣接する２つの係数ｈ０、ｈ１と、垂直方向に隣接する２つの係数ｖ０、ｖ１と、斜め方向に隣接する４つの係数ｄ０〜ｄ３とからなる。
【００９４】
図５の８個の近傍係数はそれぞれ有意であるか、有意でないかの２つの状態をとりうるため、現係数Ｘに対して、組み合わせとしては２５６個のコンテクストがありうるが、ＪＰＥＧ２０００では、対称性などを利用して、１９種類のコンテクストに集約されており、これらのコンテクストは０〜１８のラベルをつけて識別される。なお、いずれかの近傍係数が処理中のコードブロックの外部に位置する場合は、その近傍係数は有意でないとみなして処理する。
【００９５】
ビットプレーン内の各係数ビットは、Ｓパス（ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓ）、Ｒパス（ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ  ｐａｓｓ）、Ｃパス（ｃｌｅａｎｕｐ  ｐａｓｓ）の３種類の処理パスのうちのいずれかにもとづいて復号される。１つのビットプレーンは３種類の処理パスとして３つのサブビットプレーンに分割されている。Ｓパスでは、有意である係数が周囲に存在する有意でない係数の復号が行われ、Ｒパスでは、有意である係数の復号が行われ、Ｃパスでは、残りの係数の復号が行われる。
【００９６】
Ｓパス、Ｒパス、Ｃパスの各処理パスはこの順に画像の画質への寄与度が大きい。各処理パスはこの順に実行され、各係数のコンテクストが近傍係数の情報を考慮して決定される。以下、各処理パスにおける具体的な処理手順を説明する。最初にＳパス処理を説明する。
【００９７】
ビットプレーンの各ストライプにおける走査において、現係数Ｘが有意でない状態であり、かつその現係数Ｘに隣接する８個の近傍係数の内、少なくとも１つの近傍係数が有意である場合、現係数ＸはＳパスの処理対象として選ばれる。それ以外の場合は、Ｓパスの処理対象とはならない。Ｓパスで復号対象となる係数は、そのビットプレーンにおいて最も有意になる可能性が高い係数である。
【００９８】
係数ビットモデリング処理では、現係数Ｘに対して、水平方向の２つの近傍係数ｈ０，ｈ１の内、有意である係数の数を与えるΣｈｉ（＝ｈ０＋ｈ１）と、垂直方向の２つの近傍係数ｖ０，ｖ１の内、有意である係数の数を与えるΣｖｉ（＝ｖ１＋ｖ２）と、斜め方向の４つの近傍係数ｄ０，ｄ１，ｄ２，ｄ３の内、有意である係数の数を与えるΣｄｉ（＝ｄ１＋ｄ２＋ｄ３＋ｄ４）とを求める。
【００９９】
図６は、Ｓパスにおけるコンテクストの分類テーブルを説明する図である。このコンテクストテーブルは、処理中のコードブロックが、ＬＨ／ＬＬサブバンド、ＨＬサブバンド、ＨＨサブバンドのいずれに属しているかによって、水平、垂直、斜め方向の有意である近傍係数の数Σｈｉ，Σｖｉ，Σｄｉの組み合わせと、０〜８のラベルで識別される９種類のコンテクストラベルＣＸとを対応づけたものである。コンテクスト推定部２２は、このコンテクストの分類テーブルを参照し、サブバンドの周波数成分の方向性と有意である近傍係数の数Σｈｉ，Σｖｉ，Σｄｉの組み合わせにしたがって、Ｓパスで処理する係数を９種類のコンテクストのいずれかに分類し、該当するコンテクストラベルＣＸを出力する。
【０１００】
また、Ｓパスでは、現係数Ｘのビットの値が'１'であった場合、現係数Ｘの有意性状態を「有意でない」から「有意である」に変更する。現係数Ｘが有意になった場合、引き続き、その現係数Ｘの正負を示す極性ビットを復号する。
【０１０１】
極性ビットに対するコンテクストは、垂直方向の２つの近傍係数ｖ０，ｖ１および水平方向の２つの近傍係数ｈ０，ｈ１の有意性状態および正負の極性値にもとづいて次の２段階で決定される。
【０１０２】
図７は、極性ビットのコンテクスト決定のための垂直指標および水平指標テーブルを説明する図である。コンテクスト推定部２２は、まず、２つの垂直方向の近傍係数ｖ０、ｖ１のそれぞれが正の有意である係数であるか、負の有意である係数であるか、有意でない係数であるかを判定し、図７のテーブルを参照して、垂直指標ｖに'０'、'１'、'−１'のいずれかの値を割り当てる。同様にして、水平方向の近傍係数ｈ０、ｈ１に対しても図７のテーブルを参照して、水平指標ｈに'０'、'１'、'−１'のいずれかの値を割り当てる。
【０１０３】
図８は、水平指標ｈと垂直指標ｖの組み合わせと、９〜１３のラベルで識別される５種類の極性ビットに対するコンテクストラベルＣＸとを対応づけたテーブルである。係数ビットモデリング処理では、図８のテーブルを参照して、求めた水平指標ｈと垂直指標ｖの値の組み合わせによって極性ビットを５種類のコンテクストのいずれかに分類し、該当するコンテクストラベルＣＸを出力する。
【０１０４】
次にＲパス処理を説明する。現係数Ｘがすでに有意であると判定されている場合、現係数Ｘは処理中のビットプレーンにおいてＲパスの処理対象となる。ただし、そのビットプレーンにおいて、直前のＳパスで有意である状態に変化した係数は処理対象としない。Ｒパスの復号処理は、Ｓパスで復号された係数の精度を上げる役割をもつ。
【０１０５】
図９は、Ｒパスにおけるコンテクストの分類テーブルを示す図である。Ｒパスでは、係数ビットモデリング処理では、現係数Ｘに対する８つの近傍係数により、有意である係数の数を示すΣｈｉ＋Σｖｉ＋Σｄｉの値を求め、さらに、現係数Ｘが１つ上のビットプレーンで有意になったかどうか、言い換えれば、当該Ｒパスは、現係数Ｘが有意でない状態から有意である状態に変化した後の最初のパスであるかどうかを判定し、これらの結果にもとづいて、同図に示すように、１４〜１６のラベルで識別される３種類のコンテクストに分類し、該当するコンテクストラベルＣＸを出力する。
【０１０６】
最後にＣパス処理を説明する。Ｃパスは、現係数ＸがＳパス、Ｒパスのいずれの処理対象にも該当しない場合に用いられる。Ｃパスでは、ランレングス復号か、Ｓパスのように８つの近傍係数の値を参照した復号処理を行う。Ｃパスでは、ランレングス復号を行うかどうかを判断しながら処理を進める。
【０１０７】
図１０は、Ｃパスにおけるコンテクストの分類テーブルを示す図である。Ｃパスでは、垂直方向に連続する４つの係数が全て有意でない、すなわちストライプ内の縦１列がすべてＣパスに属しており、かつ、その４つのすべての係数に対する８個の近傍係数にも有意である係数が存在しないという条件の正否を判断する。この条件に該当する場合、ランレングスモードで復号処理を行い、コンテクストラベルＣＸは１７である。この条件に該当しない場合、垂直方向に連続する４つの係数値の中に少なくとも１つの有意である係数が存在するため、最初に有意になる係数の位置はＵＮＩＦＯＲＭコンテクストを用い、このときのコンテクストラベルＣＸは１８である。残りのすべての係数に対してはＳパスと同様の処理を行う。
【０１０８】
以上述べたように、係数ビットモデリング処理において、３つのいずれかの処理パスを用いて、ビットプレーン上の各係数のコンテクストラベルＣＸが決定される。そして、コンテクストラベルＣＸをエントロピ復号化手段３へ与える。
【０１０９】
図１９は、本実施形態に係る装置構成の例を示した図である。データバスを介して、ＨＤＤ、ＲＡＭ(ＰＣ内)、ＣＰＵ(ＰＣ内)が接続されており、以下の流れで、原符号が伸張・色変換される。もしくは、伸張後のデータが色変換される。
ＳＰ１：ＨＤＤ上に記録されたオリジナルの符号データもしくは伸張後のデータが、ＣＰＵからの命令によってＲＡＭ上に読み込まれる。
ＳＰ２：ＣＰＵはＲＡＭ上の符号を読み込み、伸張・色変換を行う。もしくは、ＣＰＵはＲＡＭ上の伸張後のデータを読み込み、色変換を行う。
ＳＰ３：ＣＰＵは、伸張・色変換後のデータや色変換後のデータをＲＡＭ上の別の領域に書き込む。
ＳＰ４：ＣＰＵからの命令によって、伸張・色変換後のデータや色変換後のデータがＨＤＤ上に記録される。
【０１１０】
ここで、処理による格納する係数バッファのｂｉｔ数について上記にも記述してあるが、簡単に記述する。エンコード時、入力される原画像８ｂｉｔであり、９×７ウェーブレット係数のｂｉｔ構成について考える。９×７ウェーブレット係数は実数であるため、整数部分と小数部分の両方を係数バッファに格納する必要がある。ウェーブレット変換で増加するｂｉｔ数はＬＬ１ｂｉｔ、ＨＬ２ｂｉｔ、ＬＨ２ｂｉｔ、ＨＨ３ｂｉｔである。よって、ウェーブレット変換後の最大ｂｉｔ数はＬＬ９ｂｉｔ、ＨＬ１０ｂｉｔ、ＬＨ１０ｂｉｔ、ＨＨ１１ｂｉｔである。
【０１１１】
次に、同じ係数バッファに、線形量子化後の係数を格納することを考える。線形量子化でbit数は増えるが、ビットプレーン化のため係数が整数化されるので、小数部分を係数バッファに格納する必要はなくなる。量子化で増加するｂｉｔ数はＬＬ５ｂｉｔ、ＨＬ４ｂｉｔ、ＬＨ４ｂｉｔ、ＨＨ３ｂｉｔである。よって、量子化後の最大ｂｉｔ数はＬＬ１４ｂｉｔ、ＨＬ１４ｂｉｔ、ＬＨ１４ｂｉｔ、ＨＨ１４ｂｉｔである。
【０１１２】
すなわち、デコード時、復号化前の入力されてくる係数バッファの最大ｂｉｔ数は、ＬＬ１４ｂｉｔ、ＨＬ１４ｂｉｔ、ＬＨ１４ｂｉｔ、ＨＨ１４ｂｉｔとなる。原画像が８ｂｉｔの場合、係数バッファを１６ｂｉｔ確保するため、バッファに２ｂｉｔの空ビットを作成することができる。その空ビットを使用することにより、小数点以下のｒを加算することができる。詳細な処理方法については、フローチャートを用い、後述する。
【０１１３】
その空ビットを使用することにより、小数点以下のrを加算することができる。詳細な処理方法については、フローチャートを用い、後述する。
【０１１４】
ここで、入力されてくるパスの順に各パスを順次復号処理するエントロピ復号化手段３についての流れを図１１のフローチャートにそって説明する。
【０１１５】
図１５は、符号データがサブビットプレーン分割された状態を示している。これは、０３→１５→２４・・・、の符号データが順次並んでいる場合について、サブビットプレーン数を９捨て、残りのサブビットプレーン数が４のときを示している。ここで、残サブビットプレーン数とは、符号化パスによって復号処理対象となる残りのサブビットプレーン数のことである。０３→１５→２４・・・、のように順次符号データにおける符号化パスが入力され、各々下記の流れで処理される。例えば、０３はＣパス、Ｃパス、１５はＣパス、Ｓパス、２４はＣパス、Ｒパスのような順に符号化パスが入っていて、順次に符号化パスが入力されてくる。
【０１１６】
ここでは、残サブビットプレーン数が４つのときについてである。入力された符号データ（ここでは、０３）の残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１０１）。残サブビットプレーン数≦３である場合（ステップＳ１１０１、ＹＥＳ）、Ｃパスの復号処理し、ｒ値を加算する（ステップＳ１１０２）。残サブビットプレーン数≦３でない場合（ステップＳ１１０１、ＮＯ）、Ｃパスの復号処理をする（ステップＳ１１０３）。ここでは、残サブビットプレーン数≦３（残サブビットプレーン数＝４）でないため、Ｃパスの復号処理をする。Ｃパスの復号処理を行ったため、残サブビットプレーン数は３となった。
【０１１７】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０４）。残サブビットプレーン数＞０である場合（ステップＳ１１０４、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。残サブビットプレーン数＞０でない場合（ステップＳ１１０４、ＮＯ）、終了する。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝３）であるため、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。Ｓパスである場合、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１０６）。残サブビットプレーン数≦３である場合（ステップＳ１１０５、ＹＥＳ）、Ｓパスの復号処理し、ｒ値を加算する（ステップＳ１１０７）。残サブビットプレーン数≦３でない場合、Ｓパスの復号処理をする（ステップＳ１１０８）。Ｓパスでない場合（ステップＳ１１０５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１０９）。ここでは、Ｓパスでないため、残サブビットプレーン数＞０であるかの判定に移る。ここで、残サブビットプレーン数は２となった。
【０１１８】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０９）。残サブビットプレーン数＞０であるとき（ステップＳ１１０９、ＹＥＳ）、次の符号データがＲパスであるかの判定をする（ステップＳ１１１０）。残サブビットプレーン数＞０でないとき（ステップＳ１１０９、ＮＯ）、終了する（ステップＳ１１１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝２）であるため、次の符号データがＲパスであるかの判定をする（ステップＳ１１１０）。Ｒパスである場合（ステップＳ１１１０、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１１１）。残サブビットプレーン数≦３である場合（ステップＳ１１１１、ＹＥＳ）、Ｒパスの復号処理し、ｒ値を加算する（ステップＳ１１１２）。残サブビットプレーン数≦３でない場合（ステップＳ１１１１、ＮＯ）、Ｒパスの復号処理をする（ステップＳ１１１３）。
【０１１９】
Ｒパスでない場合（ステップＳ１１１０、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１１４）。ここでは、Ｒパスでないため、残サブビットプレーン数＞０であるかの判定に移る。ここで、残サブビットプレーン数は１となった。次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１１４）。残サブビットプレーン数＞０であるとき（ステップＳ１１１４、ＹＥＳ）、次の符号データがＣパスであるかの判定をする（ステップＳ１１１５）。残サブビットプレーン数＞０でないとき、終了する（Ｓ１１１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝１）であるため、次の符号データがＣパスであるかの判定をする（ステップＳ１１１５）。
【０１２０】
Ｃパスである場合（ステップＳ１１１５、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１１６）。残サブビットプレーン数≦３である場合（ステップＳ１１１６、ＹＥＳ）、Ｃパスの復号処理し、ｒ値を加算する（ステップＳ１１１７）。残サブビットプレーン数≦３でない場合（ステップＳ１１１６、ＮＯ）、Ｃパスの復号処理をする（ステップＳ１１１８）。Ｃパスでない場合（ステップＳ１１１５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１０４）。ここでは、Ｃパスであるため、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１１６）。残サブビットプレーン数≦３（残サブビットプレーン数＝１）であるため（ステップＳ１１１６、ＹＥＳ）、Ｃパスの復号処理をし、ｒ値を加算する（ステップＳ１１１７）。Ｃパスの復号処理を行ったため、残サブビットプレーン数は０となった。
【０１２１】
ここで、ｒ値の加算方法について説明する。加算値ｒは、任意０＜ｒ＜１である。ｒを１／２とした場合、処理対象である最下位ビットプレーンにｒ・２＾（ビットプレーン数−復号化されたビットプレーン数）を加算する。実際は下記の値を加算することになる。
加算値＝ｒ・２＾（ビットプレーン数−復号化されたビットプレーン数）
＝１／２・２＾（５−２）
＝４
【０１２２】
なお、復号値が０のときは、加算しないものとする。ここでは、復号値が０なので加算しない。
【０１２３】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０４）。残サブビットプレーン数＞０であるとき（ステップＳ１１０４、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。残サブビットプレーン数＞０でないとき（ステップＳ１１０４、ＮＯ）、終了する（ステップＳ１１１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝０）でないため、終了する。
【０１２４】
最初の符号化データ（ここでは０３）が終了したら、次の符号化データ（ここでは１５）の処理を上記同様に行う。上記同様、初めの残サブビットプレーン数は４である。入力された符号データ（ここでは、１５）の残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１０１）。ここでは、残サブビットプレーン数≦３（残サブビットプレーン数＝４）でないため（ステップＳ１１０１、ＮＯ）、Ｃパスの復号処理をする（ステップＳ１１０３）。Ｃパスの復号処理を行ったため、残サブビットプレーン数は３となった。
【０１２５】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０４）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝３）であるため（ステップＳ１１０４、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。Ｓパスである場合（ステップＳ１１０５、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１０６）。ここでは、残サブビットプレーン数≦３であるため（ステップＳ１１０６、ＹＥＳ）、Ｓパスの復号処理し、ｒ値を加算する（ステップＳ１１０７）。Ｓパスの復号処理を行ったため、残サブビットプレーン数は２となった。
【０１２６】
ここで、ｒ値の加算方法について説明する。加算値ｒは、任意０＜ｒ＜１である。ｒを１／２とした場合、処理対象である最下位ビットプレーンにｒ・２＾（ビットプレーン数−復号化されたビットプレーン数）を加算する。実際は下記の値を加算することになる。
加算値＝ｒ・２＾（ビットプレーン数−復号化されたビットプレーン数）
＝１／２・２＾（５−２）
＝４
なお、復号値が０のときは、加算しないものとする。
【０１２７】
ここで、加算する前に、最下位ビットプレーンより下のビットプレーンにビットが存在するかの判定をし、存在しているときには、そのビットを減算した後に上記加算値を加算する。ここでは、０１０００であり、最下位ビットプレーンより下のビットプレーンにビットが存在しない（０００である）ので、減算をせず、そのまま加算することになる。よって、加算前は０１０００となっていて、加算後は０１１００となる。
【０１２８】
次に、残サブビットプレーン数＞０であるかを判定する（Ｓ１１０９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝２）であるため（ステップＳ１１０９、ＹＥＳ）、次の符号データがＲパスであるかの判定をする（ステップＳ１１１０）。ここでは、Ｒパスでないため、残サブビットプレーン数＞０であるかの判定に移る。ここで、残サブビットプレーン数は１となった。
【０１２９】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１１４）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝１）であるため（ステップＳ１１１４、ＹＥＳ）、次の符号データがＣパスであるかの判定をする（ステップＳ１１１５）。ここでは、Ｃパスでないため、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１０４）。ここで、残サブビットプレーン数は０となった。次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０４）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝０）であるため、終了する（ステップＳ１１１９）。
【０１３０】
２番目の符号化データ（ここでは１５）が終了したら、次の符号化データ（ここでは２４）の処理を上記同様に行う。入力対象となる全符号化データが終了するまで処理を行う。
【０１３１】
ここで、図１３のような符号データがサブビットプレーン分割された状態のときについて記述する。これは、０１→０７→１２・・・、の符号データが順次並んでいる場合について、サブビットプレーン数を２捨て、残りのサブビットプレーン数が８のときを示している。ここで、残サブビットプレーン数とは、符号化パスによって復号処理対象となる残りのサブビットプレーン数のことである。０１→０７→１２・・・、のように順次符号データにおける符号化パスが入力され、各々下記の流れで処理される。例えば、０１はＣパス、Ｃパス、Ｓパス、Ｓパス、０７はＣパス、Ｓパス、Ｒパス、１２はＣパス、Ｒパス、Ｒパス、のような順に符号化パスが入っていて、順次に符号化パスが入力されてくる。
【０１３２】
ここでは、残サブビットプレーン数が８つのときについてである。
入力された符号データ（ここでは、０３）の残サブビットプレーン数≦３であるかの判定をする（Ｓ１１０１）。残サブビットプレーン数≦３である場合（ステップＳ１１０１、ＹＥＳ）、Ｃパスの復号処理し、ｒ値を加算する（ステップＳ１１０２）。残サブビットプレーン数≦３でない場合（ステップＳ１１０１、ＮＯ）、Ｃパスの復号処理をする（ステップＳ１１０３）。ここでは、残サブビットプレーン数≦３（残サブビットプレーン数＝８）でないため、Ｃパスの復号処理をする。Ｃパスの復号処理を行ったため、残サブビットプレーン数は７となった。
【０１３３】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０４）。残サブビットプレーン数＞０である場合（ステップＳ１１０５、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。残サブビットプレーン数＞０でない場合、終了する（ステップＳ１１１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝７）であるため、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。Ｓパスである場合（ステップＳ１１０５、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１０６）。
【０１３４】
残サブビットプレーン数≦３である場合（ステップＳ１１０６、ＹＥＳ）、Ｓパスの復号処理し、ｒ値を加算する（ステップＳ１１０７）。残サブビットプレーン数≦３でない場合（ステップＳ１１０６、ＮＯ）、Ｓパスの復号処理する（ステップＳ１１０８）。Ｓパスでない場合（ステップＳ１１０５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１０９）。ここでは、Ｓパスでないため、残サブビットプレーン数＞０であるかの判定に移る。ここで、残サブビットプレーン数は６となった。
【０１３５】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０９）。残サブビットプレーン数＞０であるとき（ステップＳ１１０９、ＹＥＳ）、次の符号データがＲパスであるかの判定をする（ステップＳ１１１０）。残サブビットプレーン数＞０でないとき、終了する（ステップＳ１１１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝６）であるため（ステップＳ１１０９、ＹＥＳ）、次の符号データがＲパスであるかの判定をする（ステップＳ１１１０）。Ｒパスである場合（ステップＳ１１１０、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１１１）。
【０１３６】
残サブビットプレーン数≦３である場合（ステップＳ１１１１、ＹＥＳ）、Ｒパスの復号処理し、ｒ値を加算する（ステップＳ１１１２）。残サブビットプレーン数≦３でない場合（ステップＳ１１１１、ＮＯ）、Ｒパスの復号処理をする（ステップＳ１１１３）。Ｒパスでない場合（ステップＳ１１１０、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１１４）。ここでは、Ｒパスでないため、残サブビットプレーン数＞０であるかの判定に移る。ここで、残サブビットプレーン数は５となった。
【０１３７】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１１４）。残サブビットプレーン数＞０であるとき（ステップＳ１１１４、ＹＥＳ）、次の符号データがＣパスであるかの判定をする（ステップＳ１１１５）。残サブビットプレーン数＞０でないとき（ステップＳ１１１４、ＮＯ）、終了する（ステップＳ１１１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝５）であるため（ステップＳ１１１４、ＹＥＳ）、次の符号データがＣパスであるかの判定をする（ステップＳ１１１５）。
Ｃパスである場合（ステップＳ１１１５、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１１６）。
【０１３８】
残サブビットプレーン数≦３である場合（ステップＳ１１１６、ＹＥＳ）、Ｃパスの復号処理し、ｒ値を加算する（ステップＳ１１１７）。残サブビットプレーン数≦３でない場合（ステップＳ１１１６、ＮＯ）、Ｃパスの復号処理をする（ステップＳ１１１８）。Ｃパスでない場合（ステップＳ１１１５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１０４）。
【０１３９】
ここでは、Ｃパスであるため、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１１６）。残サブビットプレーン数≦３（残サブビットプレーン数＝５）であるため（ステップＳ１１１６、ＹＥＳ）、Ｃパスの復号処理をする（ステップＳ１１１７）。Ｃパスの復号処理を行ったため、残サブビットプレーン数は４となった。
【０１４０】
上記処理を残サブビットプレーン数が０となるまで、繰り返す。Ｓ，Ｒ，Ｃパスと繰り返し行い、残サブビットプレーン数が１となった場合について記述する。
【０１４１】
残サブビットプレーン数＞０であるかを判定する（ステップＳ１１０４）。残サブビットプレーン数＞０である場合（ステップＳ１１０４、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。残サブビットプレーン数＞０でない場合、終了する（ステップＳ１１１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝１）であるため（ステップＳ１１０４、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１１０５）。Ｓパスである場合（ステップＳ１１０５、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１０６）。
【０１４２】
残サブビットプレーン数≦３である場合（ステップＳ１１０６、ＹＥＳ）、Ｓパスの復号処理し、ｒ値を加算する（ステップＳ１１０７）。残サブビットプレーン数≦３でない場合、Ｓパスの復号処理する（ステップＳ１１０８）。Ｓパスでない場合（ステップＳ１１０５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１１０９）。ここでは、Ｓパスであるため（ステップＳ１１０５、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１１０６）。残サブビットプレーン数≦３（残サブビットプレーン数＝１）であるため、Ｓパスの復号処理を行い、ｒ値加算を行う（ステップＳ１１０７）。Ｓパスの復号処理を行ったため、残サブビットプレーン数は０となった。
【０１４３】
ここで、ｒ値を加算した場合についての方法を説明する。加算値ｒは、任意０＜ｒ＜１である。ｒを１／２とした場合、処理対象である最下位ビットプレーンに
ｒ・２＾（ビットプレーン数−復号化されたビットプレーン数）
を加算する。実際は下記の値を加算することになる。
加算値＝ｒ・２＾（ビットプレーン数−復号化されたビットプレーン数)
＝１／２・２＾（４−４)
＝０
なお、復号値が０のときは、加算しないものとする。
【０１４４】
ここで、空ビットへのフラグ挿入についての流れを図１７のフローチャートにそって説明する。ステップＳ１７０１の加算処理が必要かどうかの条件は、ビットプレーン＝０、および加算値＝０の場合である。図１７のフローチャートは、上記記述中では省略していたが、図１１のステップＳ１１０２、ステップＳ１１０７、ステップＳ１１１２、ステップＳ１１１７の各々パスでｒ値加算処理を行う処理中で行うことになる。
【０１４５】
ビットプレーン＝０、加算値＝０であるため（ステップＳ１７０１、ＹＥＳ）、加算処理のために、空ビットへフラグ挿入（ステップＳ１７０２）の処理へと進む。そのため、符号データの空ビットにフラグをたてる。例えば、符号データの上位２ｂｉｔ目に１を入れる。次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１１１４）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝０）であるため、終了する（ステップＳ１１１９）。最初の符号化データ（ここでは０１）が終了したら、次の符号化データ（ここでは０７）の処理を上記同様に行う。
【０１４６】
空ビットのフラグを使用したｒ値の加算処理についての流れを図１８のフローチャートにそって説明する。上記処理よりも後方の処理で、フラグの有無を判定（ステップＳ１８０１）し、フラグがあれば（ステップＳ１８０１、ＹＥＳ）、ビットプレーンが０以下、すなわち、小数点のｒ値を加算（ステップＳ１８０２）することができる。ここでは、ｒ値が１／２であるため、１／２を加算すればよいことになる。
【０１４７】
ここで、残サブビットプレーン数≦３としている理由について説明する。各々の符号化データは各々ＳＲＣパスのいずれかに存在する。そのため、最下位サブビットプレーンから上３つのサブビットプレーンに対して、加算処理することにより、最小限の加算処理となる。
【０１４８】
よって、切り捨てポイントとなるビットプレーンを正確に判断し、そのビットプレーンを用いた切り捨てポイントよりも下位ビットデータへの任意ｒの加算値により、復号処理の画質劣化の抑制となり、また、残サブビットプレーン数により、加算する可能性にあるビットプレーンを推定し、加算処理を最低限必要なときのみ行うことができ、高速な処理方法となる。
【０１４９】
＜第２の実施形態の構成＞
ここで、入力されてくるパスの順に各パスを順次復号処理するエントロピ復号化手段３についての流れを図１２のフローチャートにそって説明する。
【０１５０】
図１４は、符号データがサブビットプレーン分割された状態を示している。これは、０１→０７→１２・・・、の符号データが順次並んでいる場合について、サブビットプレーン数を２捨て、残りのサブビットプレーン数が８のときを示している。ここで、残サブビットプレーン数とは、符号化パスによって復号処理対象となる残りのサブビットプレーン数のことである。０１→０７→１２・・・、のように順次符号データにおける符号化パスが入力され、各々下記の流れで処理される。例えば、０１はＣパス、Ｃパス、Ｓパス、Ｓパス、０７はＣパス、Ｓパス、Ｒパス、Ｒパス、１２はＣパス、Ｒパス、Ｒパス、Ｒパス、のような順に符号化パスが入っていて、順次に符号化パスが入力されてくる。
【０１５１】
ここでは、残サブビットプレーン数が９のときについてである。入力された符号データ（ここでは、０３）の残サブビットプレーン数≦３であるかの判定をする（ステップＳ１２０１）。残サブビットプレーン数≦３である場合（ステップＳ１２０１、ＹＥＳ）、Ｃパスの復号処理し、ｒ値を加算する（ステップＳ１２０２）。残サブビットプレーン数≦３でない場合（ステップＳ１２０１、ＮＯ）、Ｃパスの復号処理をする（ステップＳ１２０３）。ここでは、残サブビットプレーン数≦３（残サブビットプレーン数＝９）でないため（ステップＳ１２０１、ＮＯ）、Ｃパスの復号処理をする。Ｃパスの復号処理を行ったため、残サブビットプレーン数は８となった。
【０１５２】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１２０４）。残サブビットプレーン数＞０である場合（ステップＳ１２０４、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１２０５）。残サブビットプレーン数＞０でない場合（ステップＳ１２０４、ＮＯ）、終了する（Ｓ１２１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝８）であるため、次の符号データがＳパスであるかの判定をする（ステップＳ１２０５）。Ｓパスである場合（ステップＳ１２０５、ＹＥＳ）、残サブビットプレーン数≦４であるかの判定をする（ステップＳ１２０６）。
【０１５３】
残サブビットプレーン数≦４である場合（ステップＳ１２０６、ＹＥＳ）、Ｓパスの復号処理し、ｒ値を加算する（ステップＳ１２０７）。残サブビットプレーン数≦４でない場合（ステップＳ１２０６、ＮＯ）、Ｓパスの復号処理する（ステップＳ１２０８）。Ｓパスでない場合（ステップＳ１２０５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１２０９）。ここでは、Ｓパスでないため、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１２０９）。ここで、残サブビットプレーン数は７となった。
【０１５４】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１２０９）。残サブビットプレーン数＞０であるとき（ステップＳ１２０９、ＹＥＳ）、次の符号データがＲパスであるかの判定をする（ステップＳ１２１０）。残サブビットプレーン数＞０でないとき（ステップＳ１２０９、ＮＯ）、終了する（ステップＳ１２１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝７）であるため、次の符号データがＲパスであるかの判定をする（ステップＳ１２１０）。Ｒパスである場合（ステップＳ１２１０、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１２１１）。
【０１５５】
残サブビットプレーン数≦３である場合（ステップＳ１２１１、ＹＥＳ）、Ｒパスの復号処理し、ｒ値を加算する（ステップＳ１２１２）。残サブビットプレーン数≦３でない場合（ステップＳ１２１１、ＮＯ）、Ｒパスの復号処理をする（ステップＳ１２１３）。Ｒパスでない場合（ステップＳ１２１０、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１２１４）。ここでは、Ｒパスでないため、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１２１４）。ここで、残サブビットプレーン数は６となった。
【０１５６】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１２１４）。残サブビットプレーン数＞０であるとき（ステップＳ１２１４、ＹＥＳ）、次の符号データがＣパスであるかの判定をする（ステップＳ１２１５）。残サブビットプレーン数＞０でないとき（ステップＳ１２１４、ＮＯ）、終了する（ステップＳ１２１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝６）であるため、次の符号データがＣパスであるかの判定をする（ステップＳ１２１５）。Ｃパスである場合（ステップＳ１２１５、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１２１６）。
【０１５７】
残サブビットプレーン数≦３である場合（ステップＳ１２１６、ＹＥＳ）、Ｃパスの復号処理し、ｒ値を加算する（ステップＳ１２１７）。残サブビットプレーン数≦３でない場合（ステップＳ１２１６、ＮＯ）、Ｃパスの復号処理をする（ステップＳ１２１８）。Ｃパスでない場合（ステップＳ１２１５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１２０４）。ここでは、Ｃパスであるため、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１２１６）。残サブビットプレーン数≦３（残サブビットプレーン数＝６）であるため（ステップＳ１２１６、ＮＯ）、Ｃパスの復号処理をする。Ｃパスの復号処理を行ったため、残サブビットプレーン数は５となった。
【０１５８】
上記処理を残サブビットプレーン数が０となるまで、繰り返す。Ｓ，Ｒ，Ｃパスと繰り返し行い、残サブビットプレーン数が２となった場合について記述する。
【０１５９】
残サブビットプレーン数＞０であるかを判定する（ステップＳ１２０４）。残サブビットプレーン数＞０である場合（ステップＳ１２０４、ＹＥＳ）、次の符号データがＳパスであるかの判定をする（ステップＳ１２０５）。残サブビットプレーン数＞０でない場合（ステップＳ１２０４、ＮＯ）、終了する（ステップＳ１２１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝２）であるため、次の符号データがＳパスであるかの判定をする（ステップＳ１２０５）。Ｓパスである場合（ステップＳ１２０５、ＹＥＳ）、残サブビットプレーン数≦４であるかの判定をする（ステップＳ１２０６）。
【０１６０】
残サブビットプレーン数≦４である場合（ステップＳ１２０６、ＹＥＳ）、Ｓパスの復号処理し、ｒ値を加算する（ステップＳ１２０７）。残サブビットプレーン数≦４でない場合（ステップＳ１２０６、ＮＯ）、Ｓパスの復号処理する（ステップＳ１２０８）。Ｓパスでない場合（ステップＳ１２０５、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１２０９）。ここでは、Ｓパスであるため、残サブビットプレーン数≦４であるかの判定をする（ステップＳ１２０６）。残サブビットプレーン数≦４（残サブビットプレーン数＝２）であるため、Ｓパスの復号処理を行い、ｒ値加算を行う（ステップＳ１２０７）。Ｓパスの復号処理を行ったため、残サブビットプレーン数は１となった。
【０１６１】
ここで、ｒ値を加算した場合についての方法を説明する。加算値ｒは、任意０＜ｒ＜１である。ｒを１／２とした場合、処理対象である最下位ビットプレーンにｒ・２＾（ビットプレーン数−復号化されたビットプレーン数）を加算する。実際は下記の値を加算することになる。
加算値＝ｒ・２＾（ビットプレーン数−復号化されたビットプレーン数）
＝１／２・２＾（４−４）
＝０
なお、復号値が０のときは、加算しないものとする。
【０１６２】
ここで、空ビットへのフラグ挿入についての流れを図１７のフローチャートにそって説明する。ここでは、ステップＳ１７０１の加算処理が必要かどうかの条件は、ビットプレーン＝０、および加算値＝０である。図１７のフローチャートは、上記記述中では省略していたが、図１１のステップＳ１１０２、ステップＳ１１０７、ステップＳ１１１２、ステップＳ１１１７の各々パスでｒ値加算処理を行う処理中で行うことになる。
【０１６３】
ビットプレーン＝０、加算値＝０であるため、加算処理（ステップＳ１７０１）のために空ビットへフラグ挿入（ステップＳ１７０２）の処理へと進む。そのため、符号データの空ビットにフラグをたてる。例えば、符号データの上位２ｂｉｔ目に１を入れる。
【０１６４】
次に、残サブビットプレーン数＞０であるかを判定する（ステップＳ１２０９）。残サブビットプレーン数＞０である場合（ステップＳ１２０９、ＹＥＳ）、次の符号データがＲパスであるかの判定をする（ステップＳ１２１０）。残サブビットプレーン数＞０でない場合（ステップＳ１２０９、ＮＯ）、終了する（ステップＳ１２１９）。ここでは、残サブビットプレーン数＞０（残サブビットプレーン数＝１）であるため、次の符号データがＲパスであるかの判定をする（ステップＳ１２１０）。
【０１６５】
Ｒパスである場合（ステップＳ１２１０、ＹＥＳ）、残サブビットプレーン数≦３であるかの判定をする（ステップＳ１２０６）。残サブビットプレーン数≦３である場合（ステップＳ１２１０、ＹＥＳ）、Ｒパスの復号処理し、ｒ値を加算する（ステップＳ１２１２）。残サブビットプレーン数≦３でない場合（ステップＳ１２１１、ＮＯ）、Ｒパスの復号処理する（ステップＳ１２１３）。Ｒパスでない場合（ステップＳ１２１０、ＮＯ）、残サブビットプレーン数＞０であるかの判定に移る（ステップＳ１２１４）。ここでは、Ｒパスでないため、残サブビットプレーン数＞０であるかの判定に移る。ここで、残サブビットプレーン数は０となった。
【０１６６】
次に、残サブビットプレーン数＞０（残サブビットプレーン数＝０）であるため（ステップＳ１２１４、ＮＯ）、終了する（ステップＳ１２１９）。最初の符号化データ（ここでは０１）が終了したら、次の符号化データ（ここでは０７）の処理を上記同様に行う。
【０１６７】
空ビットのフラグを使用したｒ値の加算処理についての流れを図１８のフローチャートにそって説明する。上記処理よりも後方の処理で、空ビットのフラグの有無を判定（Ｓ１８０１）し、フラグがあれば（ステップＳ１８０１、ＹＥＳ）、ビットプレーンが０以下、すなわち、小数点のr値を加算（ステップＳ１８０２）することができる。ここでは、ｒ値が１／２であるため、１／２を加算すればよいことになる。
【０１６８】
ここで、ステップＳ１２０６の残サブビットプレーン数≦４としている理由について説明する。各々の符号化データは各々ＳＲＣパスのいずれかに存在する。そのため、最下位サブビットプレーンから上３つのサブビットプレーンに対して、加算処理することにより、最小限の加算処理となる。しかし、サブビットプレーンの切り捨てポイントによって、各々の符号化データが各々ＳＲＣパスのいずれかに存在しない場合がある。図１６のようにＳパスで切り捨てられている場合である。符号化データ１５の場合、最下位サブビットプレーンから上３つ（ＲＣＳの順）のいずれのパスにもパスが存在しない。これは、Ｓパスの場合、次に出てくるパスはＳパスかＲパスであるため、最下位サブビットプレーンから上４つめのＳパスのように、次に出てくるパスがＲパスであった場合、加算処理がされないことになる。そこで、最下位サブビットプレーンから上４つ（ＳＲＣＳの順）のサブビットプレーンに対して、加算処理をすることにより、最小限の加算処理とすることができる。
【０１６９】
切り捨てポイントとなるビットプレーンを正確に判断し、そのビットプレーンを用いた切り捨てポイントよりも下位ビットデータへの任意ｒの加算値により、復号処理の画質劣化の抑制となり、また、残サブビットプレーン数により、加算する可能性にあるビットプレーンを推定し、加算処理を最低限必要なときのみ行うことができ、高速な処理方法となる。
【０１７０】
また上記の実施形態によれば、切り捨てポイントとなるビットプレーンを正確に判断したｒの加算を行うとともに、ｒが小数数点以下となる場合にも正確に加算を行うために、フラグが必要であり、フラグ用に空きビットを有効利用することにより、画質劣化の抑制と、高速な処理と、メモリの有効活用とが可能となる。
【０１７１】
また本発明のエントロピ符号化手段は、エントロピ復号処理過程の符号化パスの処理において、符号化パスの処理後のリコンストラクション値加算処理を行うか否かを判定し、加算処理を行う場合には判定されたデータの空いたビットにフラグをたてるようにしても良い。
【０１７２】
また本発明は、リコンストラクション値加算処理を行うか否かの判定は、残サブビットプレーン数に基づいて判定するようにしても良い。
【０１７３】
また本発明は、エントロピ符号化手段のマグニチュードリファイメントパスとクリーンアップパスは３に設定し、シグニフィカントプロパゲーションパスは４に設定するようにしても良い。
【０１７４】
また本発明のエントロピ符号化手段は、符号化パスを処理した後に空いたビットにおけるフラグの有無を判定し、空きビットにフラグが有る場合には予め定められた加算値を予め定められた０以外の値を持った復号データに加算するようにしても良い。
【０１７５】
また本発明のエントロピ符号化工程は、エントロピ復号処理過程の符号化パスの処理において、
符号化パスの処理後のリコンストラクション値加算処理を行うか否かを判定し、加算処理を行う場合には判定されたデータの空いたビットにフラグをたてるようにしても良い。
【０１７６】
また本発明は、リコンストラクション値加算処理を行うか否かの判定は、残サブビットプレーン数に基づいて判定するようにしても良い。
【０１７７】
また本発明は、エントロピ符号化工程のマグニチュードリファイメントパスとクリーンアップパスは３に設定し、シグニフィカントプロパゲーションパスは４に設定するようにしても良い。
【０１７８】
また本発明は、エントロピ符号化工程は、符号化パスを処理した後に空いたビットにおけるフラグの有無を判定し、空きビットにフラグが有る場合には予め定められた加算値を予め定められた０以外の値を持った復号データに加算するようにしても良い。
【０１７９】
また本発明のエントロピ符号化処理は、エントロピ復号処理過程の符号化パスの処理において、
符号化パスの処理後のリコンストラクション値加算処理を行うか否かを判定し、加算処理を行う場合には判定されたデータの空いたビットにフラグをたてるようにしても良い。
【０１８０】
また本発明は、リコンストラクション値加算処理を行うか否かの判定は、残サブビットプレーン数に基づいて判定するようにしても良い。
【０１８１】
また本発明はエントロピ符号化処理のマグニチュードリファイメントパスとクリーンアップパスは３に設定し、シグニフィカントプロパゲーションパスは４に設定するようにしても良い。
【０１８２】
また本発明のエントロピ符号化処理は、符号化パスを処理した後に空いたビットにおけるフラグの有無を判定し、空きビットにフラグが有る場合には予め定められた加算値を予め定められた０以外の値を持った復号データに加算するようにしても良い。
【産業上の利用可能性】
【０１８３】
本発明によれば、画像符号・復号化装置、画像処理装置及び画像形成装置などの用途に適用できる。
【符号の説明】
【０１８４】
１    符号データ入力手段
２    ヘッダ入力手段
３    エントロピ復号化手段
４    スカラ逆量子化手段
５    逆ウェーブレット変換手段
６    カラー変換手段
７    ＤＣレベルシフト手段
８    画像データ出力手段
【先行技術文献】
【特許文献】
【０１８５】
【特許文献１】特開２００３−１８９１０７号公報
【特許文献２】特開２００６−３３１７９号公報
【非特許文献】
【０１８６】
【非特許文献１】甲藤二郎，安田靖彦，サブバンド符号化の特性評価とそのフィルタ係数の最適化について，電子情報通信学会技術報告，Ｍａｙ．１９９１．
【非特許文献２】Ｊ．  Ｋａｔｔｏ  ａｎｄ  Ｙ．Ｙａｓｕｄａ，Ｐｅｒｆｏｒｍａｎｃｅ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｓｕｂｂａｎｄ  Ｃｏｄｉｎｇ  ａｎｄ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｏｆ  Ｉｔｓ  Ｆｉｌｔｅｒ  Ｃｏｅｆｆｉｃｉｅｎｔｓ，ＳＰＩＥ  ＶＣＩＰ‘９１，Ｎｏｖ．１９９１．
【非特許文献３】小松邦紀，瀬崎薫，整数ロスレス変換係数に対する最適量子化ステップサイズ，電子情報通信学会論文誌Ａ，ｖｏｌ．Ｊ８５−Ａ，ｎｏ．１１，ｐｐ．１１８２−１１８９，２００２．１１
【非特許文献４】Ｄａｖｉ  Ｔａｕｂｍａｎ，  Ｍｉｃｈａｅｌ  Ｍａｒｃｅｌｌｉｎ，ＪＰＥＧ２０００  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ｆｕｎｄａｍｅｎｔａｌｓ，Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｐｒａｃｔｉｃｅ，Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ．
【図１】
2010219798.tif 000027
【図２】
2010219798.tif 000028
【図３】
2010219798.tif 000029
【図４】
2010219798.tif 000030
【図５】
2010219798.tif 000031
【図６】
2010219798.tif 000032
【図７】
2010219798.tif 000033
【図８】
2010219798.tif 000034
【図９】
2010219798.tif 000035
【図１０】
2010219798.tif 000036
【図１１】
2010219798.tif 000037
【図１２】
2010219798.tif 000038
【図１３】
2010219798.tif 000039
【図１４】
2010219798.tif 000040
【図１５】
2010219798.tif 000041
【図１６】
2010219798.tif 000042
【図１７】
2010219798.tif 000043
【図１８】
2010219798.tif 000044
【図１９】
2010219798.tif 000045