(57)【特許請求の範囲】
【請求項１】
ビットプレーンに分割した各サブバンドのウェーブレット係数を算術符号化して得られる各サブバンドのコーディングパスを単位とするマルチレイヤを採用し、レイヤ毎に、レイヤを構成している各サブバンドのコーディングパスを用いたパケットデータを出力する画像処理装置であって、
符号メモリ（４）と、マルチレイヤ生成部（Ｂ)と、符号形成部（８）と、を含んでおり、
上記符号メモリが、算術符号化した各サブバンドの全てのコーディングパスのデータを記憶しているものであり、
上記マルチレイヤ生成部が、第１レジスタ群（６）と、第２レジスタ群（７）と、レートコントロール部（５）と、を含んでおり、
上記第１レジスタ群が、各レイヤNo.に一対一に対応している目標符号量であって、レイヤNo.の増加に伴って増加するように定めてあるデータ削除後の目標符号量（Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６、Ｍ７、Ｍ８)を記憶しているものであり、
上記レートコントロール部が、記憶部（１２、５０３）を含んでおり、
上記記憶部が、各サブバンドの全てのコーディングパスのデータを処理対象とし、再生画像への影響の大きなサブバンドのコーディングパスよりも再生画像への影響の小さなサブバンドのコーディングパスのデータを多く削除するように設定されているトランケーションテーブルであって、テーブルNo.の増加に伴って、順に多く又は少なくデータ削除を行う複数のトランケーションテーブルを記憶しているものであり、
上記レートコントロール部が、レイヤNo.毎に、データ削除後の符号量をレイヤNo.に対応して上記第１レジスタ群に記憶されている目標符号量以下であって該目標符号量に最も近い符号量にするトランケーションテーブルを、上記記憶部に記憶してあるテーブルから検出し、検出したテーブルのNo.を上記第２レジスタ群に記憶させるものであり、
上記符号形成部が、符号メモリから各サブバンドのコーディングパスのデータを読み出し、(i)レイヤ１のパケットデータとして、上記第２レジスタ群に記憶しているレイヤ１のテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスのデータを用いたパケットデータを出力し（ステップＳ１０５）、(ii)上記第２レジスタ群に記憶しているレイヤ２以後の各レイヤのテーブルNo.に基づいて、レイヤ毎に、該レイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、１つ前のレイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、の差分のコーディングパスのデータを用いたパケットデータを出力する（ステップＳ１０６）ものである、
ことを特徴とする画像処理装置。
【請求項２】
上記レートコントロール部（５）が、更に、データ処理部（１０）と、メモリ（１１）と、レートコントロール回路（２２０）と、を含んでおり、
上記データ処理部が、各サブバンドを構成している複数枚分のコーディングパスのデータを最下位のデータから順に１枚分ずつ削除した場合の残りの符号量を求め、上記メモリに書き込む処理を行うものであり、
上記レートコントロール回路が、符号量演算回路（２４０）と、テーブルNo.・レジスタ切換回路と、アドレス生成回路（２３０）と、を含んでおり、
上記テーブルNo.・レジスタ切換回路が、符号量演算回路から出力される比較結果信号の値に基づいて、(i)メモリから読み出される符号量が、目標符号量以下であって該目標符号量に最も近い符号量では無いと判断する場合、設定されている目標符号量に関して前に出力したものと異なるテーブルＮｏ．を上記記憶部（１２）に出力することによって、上記記憶部に、対応するテーブルNo.のトランケーションテーブルのデータを、上記アドレス生成回路へと出力させるものであり、(ii)メモリから読み出される符号量が、目標符号量以下であって該目標符号量に最も近い符号量であると判断する場合、テーブルNo.を上記第２レジスタ群に記憶させると共に、第１レジスタ群から上記符号量演算回路に出力する目標符号量を次のレイヤNo.に対応する値に切り換えるものであり、
上記アドレス生成回路が、入力されたトランケーションテーブルのデータに基づいてデータ削除を行った場合に、残るコーディングパスの符号量を上記メモリから読み出すアドレスを生成し、上記メモリに出力するものであり、
上記符号量演算回路が、第１レジスタ群から入力される目標符号量と、上記メモリから読み出される各サブバンドのコーディングパスの符号量の合計値と、を比較し、比較結果信号を上記テーブルNo.切換回路に出力するものである、
請求項１に記載の画像処理装置。
【請求項３】
上記レートコントロール部が、コンピュータ読み取り可能なプログラムを実行する中央演算処理装置（５００）と、ＲＯＭ（５０１）と、ＲＡＭ（５０２）と、を含んでおり、
上記中央演算処理装置がＲＯＭに記録してあるプログラムをＲＡＭに展開し、実行することによって、レイヤNo.毎に、データ削除後の符号量をレイヤNo.に対応する目標符号量以下であって該目標符号量に最も近い符号量にするトランケーションテーブルを、上記記憶部（５０３）に記憶してあるテーブルから検出する検出手段（ステップＳ２０１乃至Ｓ２１０）と、
検出手段が検出したトランケーションテーブルのテーブルNo.を、上記第２レジスタ群（７）に記憶させる記憶手段（ステップＳ５３）と、
として機能するものである、請求項１に記載の画像処理装置。
【請求項４】
上記画像処理装置が、ＪＰＥＧ２０００に従って、画像データに対して周波数解析として２次元離散ウェーブレット変換を行い、該変換によって得られる各サブバンドのウェーブレット係数を複数のビットプレーンに分割し、各ビットプレーンのデータを算術符号化することによって得られるコーディングパスのデータを処理対象とする、
請求項１乃至３の何れか１つに記載の画像処理装置。
【請求項５】
ビットプレーンに分割した各サブバンドのウェーブレット係数を算術符号化して得られる各サブバンドのコーディングパスを単位とするマルチレイヤを採用し、レイヤ毎に、レイヤを構成している各サブバンドのコーディングパスを用いたパケットデータを出力する画像処理装置であって、算術符号化した各サブバンドの全てのコーディングパスのデータを記憶している符号メモリ（４）と、各レイヤNo.に一対一に対応している目標符号量であって、レイヤNo.の増加に伴って増加するように定めてあるデータ削除後の目標符号量（Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６、Ｍ７、Ｍ８)を記憶している第１レジスタ群（６）と、第２レジスタ群（７）と、各サブバンドの全てのコーディングパスのデータを処理対象とし、再生画像への影響の大きなサブバンドのコーディングパスよりも再生画像への影響の小さなサブバンドのコーディングパスのデータを多く削除するように設定されているトランケーションテーブルであって、テーブルNo.の増加に伴って、順に多く又は少なくデータ削除を行う複数のトランケーションテーブルを記憶している記憶部（１２、５０３）と、を含んでいる画像処理装置において実行する画像処理方法であって、
レイヤNo.毎に、データ削除後の符号量をレイヤNo.に対応して上記第１レジスタ群に記憶されている目標符号量以下であって該目標符号量に最も近い符号量にするトランケーションテーブルを、上記記憶部に記憶してあるテーブルから検出し、検出したテーブルのNo.を上記第２レジスタ群に記憶させるレートコントロール工程と、
上記レートコントロール工程の実行後、符号メモリから各サブバンドのコーディングパスのデータを読み出し、(i)レイヤ１のパケットデータとして、上記第２レジスタ群に記憶しているレイヤ１のテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスのデータを用いたパケットデータを出力し（ステップＳ１０５）、(ii)上記第２レジスタ群に記憶しているレイヤ２以後の各レイヤのテーブルNo.に基づいて、レイヤ毎に、該レイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、１つ前のレイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、の差分のコーディングパスのデータを用いたパケットデータを出力する（ステップＳ１０６）符号形成工程と、
を含んでいることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に関するデータとして、画像データや当該画像データを例えば周波数変換して得られる係数データの圧縮符号化を行う画像処理装置、特にＪＰＥＧ２０００に準拠して圧縮符号化を行う画像処理装置に関する。
【背景技術】
【０００２】
近年、高精細画像を取り扱うのに適した圧縮符号化方法として、ＪＰＥＧ２０００が知られている。ＪＰＥＧ２０００の符号化処理では、画像データをＹ，Ｃｂ，Ｃｒの各色成分のデータに変換した後、それぞれのデータに対して周波数解析として２次元離散ウェーブレット変換を行う。
【０００３】
ウェーブレット変換により得られたウェーブレット係数のデータ（例えば１６ビットデータ）を、サブバンド（たとえば、レベル３のウェーブレット変換の場合、３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，ｌＨＬ，１ＬＨ，１ＨＨ）を処理単位としてビットプレーンに分割し、サブバンド毎に各ビットプレーンのデータを上位から順に３通りの方法によりスキャンして算術符号化処理を行う。上記３通りの方法は、“significant propagation pass”、“magnitude refinement pass”、“cleanup pass”と呼ばれている。
【０００４】
例えば、１６ビットのデータの場合、上記算術符号化処理により、１５×３＋１＝４６枚のコーディングパスが形成される。以下、説明の便宜上、上位のビットプレーンに対応するコーディングパスからＣＰ１〜ＣＰ４６と表す。上記算術符号化処理により得られるＭＱ符号に、必要なヘッダー情報類を付加して最終的な符号データが形成される。
【０００５】
ＪＰＥＧ２０００には、マルチレイヤの概念が導入されている。マルチレイヤでは、例えば、図１２に示すように、レイヤ１として、レベル３の３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨの各サブバンドの上位２枚分のコーディングパスＣＰ１，ＣＰ２から得られたＭＱ符号と、レベル１の１ＨＨのサブバンドの上位１枚分のコーディングパスＣＰ１から得られたＭＱ符号を含み、これらのデータをパケットデータ１として取り扱い、レイヤ２として、レベル２の２ＨＬ，２ＬＨ，２ＨＨの各サブバンドの上位３枚分のコーディングパスＣＰ１，ＣＰ２，ＣＰ３から得られたＭＱ符号と、レベル１の１ＨＬ，１ＬＨの各サブバンドの上位１枚分のコーディングパスＣＰ１から得られたＭＱ符号を含み、これらのデータをパケットデータ２として取り扱う。以降、同様にして、各サブバンドの残りのコーディングパスのデータを複数のレイヤに分け、各レイヤのデータを１つのパケットデータとして取り扱う。
【０００６】
ＪＰＥＧ２０００では、サブバンド毎の各コードブロックをそれぞれのレイヤにどのように分ける（どのような基準でグループ分けする）のかは、自由に定義できることになっている。
【０００７】
上記マルチレイヤを利用して、レイヤ１に含まれるコーディングパスのデータから順に、レイヤ２、レイヤ３…に含まれるコーディングパスのデータの復号を行えば、徐々に画像が再現されるいわゆるプログレッシブ再生処理を行うことができる。なお、ＪＰＥＧ２０００のマルチレイヤを利用してプログレッシブ再生処理を実行する画像処理装置は、既に存在する。
【０００８】
なお、ＪＰＥＧ２０００を用いたマルチレイヤのプログレッシブ表示については、以下の非特許文献１に詳しく説明されている。
【非特許文献１】国際標準  ＩＳＯ／ＩＥＣ  １５４４４，ＪＰＥＧ２０００
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述するように、ＪＰＥＧ２０００のマルチレイヤを利用すれば、プログレッシブ再生を実現することができるが、算術符号化処理により得られる各コーディングパスのＭＱ符号の量は、一定でない。このため、各レイヤに取り込むコーディングパス数を一定にしても各レイヤの符号量が不安定になり、データの転送時やメモリへの格納時に不便であった。
【００１０】
そこで、本発明は、各レイヤのＭＱ符号量を規定範囲内に収め、データ転送時の便を向上した、マルチレイヤで成る符号データであって、高画質のプログレッシブ再生処理にも適用し得る符号データを形成可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
請求項１に記載の画像処理装置は、ビットプレーンに分割した各サブバンドのウェーブレット係数を算術符号化して得られる各サブバンドのコーディングパスを単位とするマルチレイヤを採用し、レイヤ毎に、レイヤを構成している各サブバンドのコーディングパスを用いたパケットデータを出力する画像処理装置であって、符号メモリ（４）と、マルチレイヤ生成部（Ｂ)と、符号形成部（８）と、を含んでおり、上記符号メモリが、算術符号化した各サブバンドの全てのコーディングパスのデータを記憶しているものであり、上記マルチレイヤ生成部が、第１レジスタ群（６）と、第２レジスタ群（７）と、レートコントロール部（５）と、を含んでおり、上記第１レジスタ群が、各レイヤNo.に一対一に対応している目標符号量であって、レイヤNo.の増加に伴って増加するように定めてあるデータ削除後の目標符号量（Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６、Ｍ７、Ｍ８)を記憶しているものであり、上記レートコントロール部が、記憶部（１２、５０３）を含んでおり、上記記憶部が、各サブバンドの全てのコーディングパスのデータを処理対象とし、再生画像への影響の大きなサブバンドのコーディングパスよりも再生画像への影響の小さなサブバンドのコーディングパスのデータを多く削除するように設定されているトランケーションテーブルであって、テーブルNo.の増加に伴って、順に多く又は少なくデータ削除を行う複数のトランケーションテーブルを記憶しているものであり、上記レートコントロール部が、レイヤNo.毎に、データ削除後の符号量をレイヤNo.に対応して上記第１レジスタ群に記憶されている目標符号量以下であって該目標符号量に最も近い符号量にするトランケーションテーブルを、上記記憶部に記憶してあるテーブルから検出し、検出したテーブルのNo.を上記第２レジスタ群に記憶させるものであり、上記符号形成部が、符号メモリから各サブバンドのコーディングパスのデータを読み出し、(i)レイヤ１のパケットデータとして、上記第２レジスタ群に記憶しているレイヤ１のテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスのデータを用いたパケットデータを出力し（ステップＳ１０５）、(ii)上記第２レジスタ群に記憶しているレイヤ２以後の各レイヤのテーブルNo.に基づいて、レイヤ毎に、該レイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、１つ前のレイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、の差分のコーディングパスのデータを用いたパケットデータを出力する（ステップＳ１０６）ものである、ことを特徴とする。
【００１２】
請求項２に記載の画像処理装置は、請求項１に記載の画像処理装置であって、上記レートコントロール部（５）が、更に、データ処理部（１０）と、メモリ（１１）と、レートコントロール回路（２２０）と、を含んでおり、上記データ処理部が、各サブバンドを構成している複数枚分のコーディングパスのデータを最下位のデータから順に１枚分ずつ削除した場合の残りの符号量を求め、上記メモリに書き込む処理を行うものであり、上記レートコントロール回路が、符号量演算回路（２４０）と、テーブルNo.・レジスタ切換回路と、アドレス生成回路（２３０）と、を含んでおり、上記テーブルNo.・レジスタ切換回路が、符号量演算回路から出力される比較結果信号の値に基づいて、(i)メモリから読み出される符号量が、目標符号量以下であって該目標符号量に最も近い符号量では無いと判断する場合、設定されている目標符号量に関して前に出力したものと異なるテーブルＮｏ．を上記記憶部（１２）に出力することによって、上記記憶部に、対応するテーブルNo.のトランケーションテーブルのデータを、上記アドレス生成回路へと出力させるものであり、(ii)メモリから読み出される符号量が、目標符号量以下であって該目標符号量に最も近い符号量であると判断する場合、テーブルNo.を上記第２レジスタ群に記憶させると共に、第１レジスタ群から上記符号量演算回路に出力する目標符号量を次のレイヤNo.に対応する値に切り換えるものであり、上記アドレス生成回路が、入力されたトランケーションテーブルのデータに基づいてデータ削除を行った場合に、残るコーディングパスの符号量を上記メモリから読み出すアドレスを生成し、上記メモリに出力するものであり、上記符号量演算回路が、第１レジスタ群から入力される目標符号量と、上記メモリから読み出される各サブバンドのコーディングパスの符号量の合計値と、を比較し、比較結果信号を上記テーブルNo.切換回路に出力するものである、ことを特徴とする。
【００１３】
請求項３に記載の画像処理装置は、請求項１に記載の画像処理装置であって、上記レートコントロール部が、コンピュータ読み取り可能なプログラムを実行する中央演算処理装置（５００）と、ＲＯＭ（５０１）と、ＲＡＭ（５０２）と、を含んでおり、上記中央演算処理装置がＲＯＭに記録してあるプログラムをＲＡＭに展開し、実行することによって、レイヤNo.毎に、データ削除後の符号量をレイヤNo.に対応する目標符号量以下であって該目標符号量に最も近い符号量にするトランケーションテーブルを、上記記憶部（５０３）に記憶してあるテーブルから検出する検出手段（ステップＳ２０１乃至Ｓ２１０）と、検出手段が検出したトランケーションテーブルのテーブルNo.を、上記第２レジスタ群（７）に記憶させる記憶手段（ステップＳ５３）と、
として機能するものである、ことを特徴とする。
【００１４】
請求項４に記載の画像処理装置は、請求項１乃至請求項３の何れか１つに記載の画像処理装置であって、上記画像処理装置が、ＪＰＥＧ２０００に従って、画像データに対して周波数解析として２次元離散ウェーブレット変換を行い、該変換によって得られる各サブバンドのウェーブレット係数を複数のビットプレーンに分割し、各ビットプレーンのデータを算術符号化することによって得られるコーディングパスのデータを処理対象とする、ことを特徴とする。
【００１５】
請求項５に記載の画像処理方法は、ビットプレーンに分割した各サブバンドのウェーブレット係数を算術符号化して得られる各サブバンドのコーディングパスを単位とするマルチレイヤを採用し、レイヤ毎に、レイヤを構成している各サブバンドのコーディングパスを用いたパケットデータを出力する画像処理装置であって、算術符号化した各サブバンドの全てのコーディングパスのデータを記憶している符号メモリ（４）と、各レイヤNo.に一対一に対応している目標符号量であって、レイヤNo.の増加に伴って増加するように定めてあるデータ削除後の目標符号量（Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、Ｍ６、Ｍ７、Ｍ８)を記憶している第１レジスタ群（６）と、第２レジスタ群（７）と、各サブバンドの全てのコーディングパスのデータを処理対象とし、再生画像への影響の大きなサブバンドのコーディングパスよりも再生画像への影響の小さなサブバンドのコーディングパスのデータを多く削除するように設定されているトランケーションテーブルであって、テーブルNo.の増加に伴って、順に多く又は少なくデータ削除を行う複数のトランケーションテーブルを記憶している記憶部（１２、５０３）と、を含んでいる画像処理装置において実行する画像処理方法であって、レイヤNo.毎に、データ削除後の符号量をレイヤNo.に対応して上記第１レジスタ群に記憶されている目標符号量以下であって該目標符号量に最も近い符号量にするトランケーションテーブルを、上記記憶部に記憶してあるテーブルから検出し、検出したテーブルのNo.を上記第２レジスタ群に記憶させるレートコントロール工程と、上記レートコントロール工程の実行後、符号メモリから各サブバンドのコーディングパスのデータを読み出し、(i)レイヤ１のパケットデータとして、上記第２レジスタ群に記憶しているレイヤ１のテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスのデータを用いたパケットデータを出力し（ステップＳ１０５）、(ii)上記第２レジスタ群に記憶しているレイヤ２以後の各レイヤのテーブルNo.に基づいて、レイヤ毎に、該レイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、１つ前のレイヤのテーブルNo.のトランケーションテーブルを用いてデータ削除を行った後に残るコーディングパスと、の差分のコーディングパスのデータを用いたパケットデータを出力する（ステップＳ１０６）符号形成工程と、を含んでいることを特徴とする。
【発明の効果】
【００３２】
請求項１、２に記載の画像処理装置によって、又は、請求項５に記載の画像処理方法を実行することによって、各レイヤの符号量を予め定めた目標符号量以下であって該目標符号量に最も近い符号量とすることができ、データ転送時の便を向上し、高画質のプログレッシブ再生処理を実行できるパケットデータを出力することができる。
【００３３】
請求項３に記載の画像処理装置は、請求項１に記載の画像処理装置において、レートコントロール部をソフトウェア処理によって実現することで、装置の構成を簡単にすることができる。
【００３４】
請求項４に記載の画像処理装置は、請求項１乃至請求項３の何れかに記載の画像処理装置において、ＪＰＥＧ２０００に従う符号化処理を行う構成を採用することによって、マルチレイヤ生成部以外の処理部を、ソフトウェア処理によって実現する既存の画像処理装置を利用して実施することができる。
【発明を実施するための最良の形態】
【００３９】
（１）実施の形態１
(1-1)マルチレイヤを利用した符号化処理の概要説明
図１は、実施の形態１にかかる画像処理装置Ａの実行する画像処理の内容を概略説明するための図である。まず、１２８画素×１２８画素の画像データを、Ｙ，Ｃｂ，Ｃｒの色変換処理を行った後、各色成分のデータに対して、レベル３の２次元離散ウェーブレット変換を実行する（矢印ａ）。
【００４０】
２次元離散ウェーブレット変換により得られる各サブバンド（３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨ）の１６ビットのウェーブレット係数を、１６枚のビットプレーンに分割し、サブバンド毎に各ビットプレーンのデータを上位から順に３通りの方法によりスキャンして算術符号化処理を行う（矢印ｂ）。上記３通りの方法は、“significant propagation pass”、“magnitude refinement pass”、“cleanup pass”と呼ばれている。例えば、１６ビットのデータの場合、上記算術符号化処理により、１５×３＋１＝４６枚のコーディングパスが形成される。以下、説明の便宜上、上位のビットプレーンに対応するコーディングパスから順にＣＰ１〜ＣＰ４６と表す。
【００４１】
実施の形１にかかる画像処理装置Ａは、上記算術符号化により得られた各サブバンド毎のコーディングパスを複数のレイヤに分ける、いわゆるマルチレイヤを採用する。各レイヤへのコーディングパスの分け方は、再生画像の画質が最も良くなるように、かつ、レイヤ１には、算術符号化処理により生成されるＭＱ符号が所定量Ｍ１となるだけのコーディングパスを集め、レイヤ２については、ＭＱ符号量をＭ２（Ｍ１＜Ｍ２）とするため、上記レイヤ１に追加すべきコーディングパスを集め、レイヤ３については、ＭＱ符号量をＭ３（Ｍ２＜Ｍ３）とするため、上記レイヤ１及びレイヤ２に追加すべきコーディングパスを集める。以下同様に、順に圧縮率が低くなるように（ＭＱ符号量Ｍ４〜Ｍ８は、順に多くなるように）、レイヤ４〜レイヤ８に各サブバンドのコーディングパスを分ける。
【００４２】
各レイヤのＭＱ符号量を各予定値Ｍ１〜Ｍ８（正確には、各予定値Ｍ１〜Ｍ８を超えない最大値）とすることで、データ転送時の取り扱いが容易になる。
【００４３】
更には、レイヤ２以降のレイヤに関し、上記Ｍ２からＭ８にかけてのＭＱ符号の増加量を一定にして各レイヤの符号量を揃えることにより、データ転送処理の迅速化を図ることができる。
【００４４】
なお、Ｍ１とＭ２の差を、他のもの（例えば、Ｍ２とＭ３との差）と同じ値に設定しても良い。
【００４５】
また、レジスタ群７と同じ構成の複数組のレジスタ群、及び、これらの内の１つを選択するセレクタを用意し、Ｍ１〜Ｍ８の値を、符号化処理を行う原稿のサイズ（画素数）や、画像処理装置Ａより出力される符号データを処理する装置の性能等に応じて適宜変更可能としても良い。
【００４６】
マルチレイヤを利用して生成された符号データを、レイヤ１、レイヤ２、…の順に復号すれば、プログレッシブ画像再生が実現される。符号データを形成する際、再生画像への影響の大きなサブバンドのコーディングパスよりも、再生画像への影響の小さなサブバンドのコーディングパスのデータを多めに破棄することで、圧縮率を高めつつも再生画像の画質を維持することができる。
【００４７】
画像処理装置Ａでは、レイヤ１〜レイヤ８についてＭＱ符号量がＭ１〜Ｍ８となるコーディングパスの組み合わせを特定する際に、次の「表１」に示すトランケーションテーブルを利用する。
【表１】
0004090975.tif 000002
【００４８】
「表１」に示すトランケーションテーブルには、サブバンド毎にデータ破棄を行うコーディングパスの数が特定されている。ここで、データ破棄とは、該当するデータの値を０に置きかえることを言う。表より確認できるように、サブバンド毎に特定されるデータ破棄を行うコーディングパスの枚数は、テーブルＮｏ．Ｔの値が大きくなる程多くなる。
【００４９】
また、再生画像への影響の大きなサブバンドのコーディングパスよりも、再生画像への影響の小さなサブバンドのコーディングパスのデータを優先して破棄するように設定してあるため、各サブバンドのコーディングパスのデータを均一に破棄する場合に比べて、同じ圧縮率の符号データであっても、再生される画像の質を高くすることができる。
【００５０】
(1-2)画像処理装置の詳細な説明
以下、図２乃至図８の図面を参照しつつ、実施の形態にかかる画像処理装置Ａの構成について、詳細に説明する。なお、上記「マルチレイヤを利用した符号化処理の概要説明」の欄で説明した一般的なＪＰＥＧ２０００の符号化処理の内容については、簡単に説明するに留める。
【００５１】
図２は、画像処理装置Ａのブロック構成図である。画像処理装置Ａは、色変換部１、２次元離散ウェーブレット変換部２、算術符号化部３、符号メモリ４、レートコントロール部５、指定符号量の格納レジスタ群６、テーブルＮｏ．Ｔのレジスタ群７、及び、符号形成部８で構成される。
【００５２】
画像処理装置Ａに入力された画像データは、まず、色変換部１において、Ｙ，Ｃｂ，Ｃｒの３つの色成分に変換される。各色成分のデータは、下流側に位置する各機能ブロック部に並列に出力される。
【００５３】
上記色変換部１から出力されるＹ，Ｃｂ，Ｃｒの３つの色成分は、２次元離散ウェーブレット変換部２において、１６ビットのウェーブレット係数に変換される。
【００５４】
１６ビットのウェーブレット係数は、算術符号化部３において４６枚のコーディングパスＣＰ１〜ＣＰ４６で構成されるＭＱ符号に変換される。これらのＭＱ符号のデータは、符号メモリ４内に記録される。
【００５５】
図３は、符号メモリ４内のマップである。図示するように、アドレスの先頭から、３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨのサブバンドの順に、かつ、各サブバンド内においてはコーディングパスＣＰ１〜ＣＰ４６の順に格納される。
【００５６】
再び図２を参照する。点線で囲んで示すレートコントロール部５、レジスタ群６、及び、レジスタ群７は、上記算術符号化部３により生成されるＭＱ符号を、上位のビットプレーンに対応するものから順に、各レイヤの符号量が予定値以下となるように、複数のレイヤに分割するマルチレイヤ生成部Ｂとして機能する。
【００５７】
指定符号量の格納レジスタ群６は、全部で８個のレジスタＲＡ１〜ＲＡ８で構成されており、レジスタＲＡ１には、所定の符号量Ｍ１が格納されており、残りのレジスタＲＡ２〜ＲＡ８には、Ｍ１に対して、順に一定量づつ大きな値となる符号量Ｍ２〜Ｍ８が格納されている。また、テーブルＮｏ．Ｔのレジスタ群７は、全部で８個のレジスタＲＢ１〜ＲＢ８で構成される。各レジスタＲＢ１〜ＲＢ８には、後に説明するレートコントロール部５の働きにより、上記指定符号量の格納レジスタ群６のレジスタＲＡ１〜ＲＡ８に格納されている各符号量Ｍ１〜Ｍ８を実現する各トランケーションテーブルＮｏ．Ｔの値が格納される。
【００５８】
レートコントロール部５では、まず、指定符号量の格納レジスタ群６のレジスタＲＡ１より符号量Ｍ１の値を読み出し、ＭＱ符号の量が上記符号量Ｍ１近傍であって、Ｍ１以下の値となるトランケーションテーブルＮｏ．Ｔを特定し、上述したように、特定したＴの値をレジスタ群７の対応するレジスタＲＢ１に格納する。当該処理をレジスタ群６の残りのレジスタＲＡ２〜ＲＡ８に格納している符号量Ｍ２〜Ｍ８全てに対して行い、それぞれ特定したトランケーションテーブルＮｏ．Ｔの値をレジスタ群７のレジスタＲＢ２〜ＲＢ８に格納する。
【００５９】
符号形成部８では、レートコントロール部５において計８個の符号量Ｍ１〜Ｍ８となるトランケーションテーブルＮｏ．Ｔの算出処理が完了した後、レジスタ群７のレジスタＲＢ１に格納されているトランケーションテーブルのＮｏ．Ｔのトランケーションデータに従いコーディングパスのデータ破棄を行い、レイヤ１を構成するサブバンド毎のコーディングパスを特定し、これに基づいてパケットヘッダを生成し、符号データを形成する。
【００６０】
符号形成部８では、引き続き、レジスタ群７のレジスタＲＢ２に格納されているトランケーションテーブルＮｏ．Ｔのトランケーションデータに従いコーディングパスのデータ破棄を行い、レイヤ２として上記レイヤ１を構成するコーディングパスに追加することになるコーディングパスを特定し、これに基づいてパケットヘッダを生成し、符号データを形成する。
【００６１】
以降、符号形成部８では、「表２」に示すように、レジスタ群７のレジスタＲＢ３，ＲＢ４，…、ＲＢ８に格納しているトランケーションテーブルＮｏ．Ｔの各々について、順に、レイヤ１から直前のレイヤまでに含まれるコーディングパスに、更に追加することになるコーディングパスを特定し、これを新たなレイヤとしてパケットヘッダを生成し、符号データを形成する処理を繰り返す。
【表２】
0004090975.tif 000003
【００６２】
上記符号形成部において形成された符号データのレイヤ１〜レイヤ８は、例えば、以下に示す「表３」のようになる。
【表３】
0004090975.tif 000004
【００６３】
(1-3)レートコントロール部の具体的な構成
図４は、レートコントロール部５の具体的な構成を示す図である。レートコントロール部５は、データ処理部１０、メモリ１１、レートコントロール回路２２０、トランケーションテーブル１２で構成されている。
【００６４】
(1-3-1)データ処理部
(1-3-1-1)概要
データ処理部１０は、算術符号化部３より出力されるＭＱ符号のデータに基づいて、サブバンド別に、コーディングパスのデータをＣＰ４６から順に１枚分づつ破棄した場合の残りの符号量を求め、これをメモリ１１に等間隔に、即ち均等なアドレス間隔（ＡＤＤｏｆｆ）で順に書き込む。
【００６５】
(1-3-1-2)詳細説明
図５は、データ処理部１０において実行する状態遷移図である。当該状態遷移図を、米国Synopsys社の論理合成ツールに入力することで具体的な回路が自動的に設計される。
【００６６】
まず、サブバンド特定パラメータＳＢの値に対応するサブバンドを定義しておく。即ち、ＳＢ＝１は３ＬＬに対応し、ＳＢ＝２は３ＨＬに対応し、ＳＢ＝３は３ＬＨに対応し、ＳＢ＝４は３ＨＨに対応する。ＳＢ＝５は２ＨＬに対応し、ＳＢ＝６は２ＬＨに対応し、ＳＢ＝７は２ＨＨに対応する。ＳＢ＝８は１ＨＬに対応し、ＳＢ＝９は１ＬＨに対応し、ＳＢ＝１０は１ＨＨに対応する。
【００６７】
パラメータＳＢの値を１に設定する（ステップＳ１）。上記パラメータＳＢにより特定されるサブバンドのＭＱ符号量を、データ破棄後の符号量を表す変数ＤＳＢに入力する（ステップＳ２）。初期設定として、データの破棄を行うコーディングパスの枚数を特定するパラメータｎの値を０に設定すると共に、処理の必要上、実在しない４７枚目のコーディングパスＣＰ４７の符号量ＳＣＰ４７を０に設定する（ステップＳ３）。
【００６８】
上記初期設定の後、ＭＱ符号データ中のサブバンド特定パラメータＳＢにより特定されるサブバンドの（４７−ｎ）枚目のコーディングパスＣＰｎのＭＱ符号量ＳＣＰ４７−ｎを特定する（ステップＳ４）。
【００６９】
変数ＤＳＢの値を、当該変数ＤＳＢより（４７−ｎ）枚目のコーディングパスＣＰ４７−ｎのＭＱ符号量ＳＣＰ４７−ｎを差し引いた値に更新する（ステップＳ５）。
【００７０】
更に、上記更新後の変数ＤＳＢの値を、下位ビットプレーンに対応するコーディングパスのデータをｎ枚分だけ破棄した後の符号量Ｓｎとする（ステップＳ６）。
【００７１】
アドレスＡＤＤ“ＳＢ”＋オフセットアドレスＡＤＤＯＦＦ×ｎの計算式で特定されるアドレスに、データ破棄後の符号量Ｓｎを書き込む（ステップＳ７）。但し、アドレスＡＤＤ“ＳＢ”は、パラメータＳＢの値で特定されるサブバンドの符号量Ｓｎの書き込み先頭アドレスであり、オフセットアドレスＡＤＤＯＦＦは、上述したように均等なアドレス間隔を表す値である（図６を参照）。
【００７２】
パラメータｎの値に１を加算する（ステップＳ８）。ｎの値が４６以下の場合（ステップＳ９でＮＯ）、上記ステップＳ４に戻る。ｎの値が４６を超えるまでの間、ステップＳ４〜Ｓ８の処理を繰り返すことで、パラメータＳＢの値により特定されるサブバンドについて、コーディングパスのデータの破棄を全く行わない状態の符号量から、コーディングパスのデータを１枚ずつＣＰ４６、ＣＰ４５、ＣＰ４４、…、ＣＰ１の順に合計ｎ枚分づつ破棄した場合の各残りの符号量Ｓｎが、オフセットアドレスＡＤＤＯＦＦの間隔でメモリ１１に書き込まれる。
【００７３】
ｎの値が４６を超えた場合（ステップＳ９でＹＥＳ）、サブバンドを特定するパラメータＳＢの値を１だけ増加し（ステップＳ１０）、当該増加したパラメータＳＢの値が１０を超えるまでの間（ステップＳ１１でＮＯ）、上記ステップＳ３に戻る。パラメータＳＢの値が１０を超えた場合（ステップＳ１１でＹＥＳ）、処理を終了する。これにより、各サブバンドについてコーディングパスのデータを１枚分ずつ徐々に破棄した場合の残りの符号量のデータをメモリ１１に書き込むことができる。
【００７４】
なお、上記データ処理は、上記状態遷移図を米国Synopsys社の論理合成ツールに入力して形成されるハードウェア回路以外に、ソフトウェア処理により実行することも考えられる。この場合、当業者には容易に想到し得るものであるが、データ処理部１０を、ＭＱ符号の入力線、及び、メモリ１１へのデータ出力線に、バスを介して接続されている中央演算処理装置（ＣＰＵ）、ＲＯＭ、及び、ＲＡＭで構成する。上記ＲＯＭには、上記状態遷移図と同じ処理フローチャートを実行するプログラムを格納する。上記中央演算処理装置は、上記プログラムを上記ＲＡＭに展開し、上記データ処理を実行する。上記データ処理の実行時、上記中央演算処理装置は、上記ＲＡＭに入力されるＭＱ符号データを一時的に記憶させて、サブバンド毎のＭＱ符号量やコーディングパス毎のＭＱ符号量を求めるための作業用のメモリとして利用する。
【００７５】
(1-3-2)メモリ
図６は、メモリ１１内のメモリマップを示す。アドレスＡＤＤ ３ＬＬには、サブバンド３ＬＬの４６枚のコーディングパスの内、最下位のビットプレーンに対応するコーディングパスＣＰ４６のデータからＣＰ４５、ＣＰ４４、…、ＣＰ１のデータを順に破棄した場合のＭＱ符号の残量Ｓｎが書き込まれる。アドレスＡＤＤ ３ＨＬ、アドレスＡＤＤ ３ＬＨ、アドレスＡＤＤ ３ＨＨ、アドレスＡＤＤ ２ＨＬ、アドレスＡＤＤ ２ＬＨ、アドレスＡＤＤ ２ＨＨ、アドレスＡＤＤ １ＨＬ、アドレスＡＤＤ １ＬＨ及びアドレスＡＤＤ １ＨＨについても同様である。
【００７６】
図６は、アドレスＡＤＤ １ＬＨ〜ＡＤＤ １ＨＨの空間に書き込まれた上記ＭＱ符号の残量Ｓ０〜Ｓ４６を示す。本図では、サブバンド１ＬＨのＭＱ符号量（コーディングパスＣＰ１〜ＣＰ４６のＭＱ符号の合計）をＤ１ＬＨ（図５のフローチャートでは、ステップＳ３で設定するＤＳＢ＝９の初期値に相当する）と表し、コーディングパスＣＰ１〜ＣＰ４６のＭＱ符号量をＳＣＰ１〜ＳＣＰ４６（図５のフローチャートと同じ表記）と表している。
【００７７】
上記ＭＱ符号の残量Ｓn（但し、ｎは、図５に示した変数ｎであり０〜４６の値を取る）は、ある一定のビット数（例えば２０ビット）のデータで表現される。上記データ処理（図５）によって、ＭＱ符号の残量Ｓnを示すデータは、アドレスＡＤＤ １ＬＨに、上記２０ビット分のデータ書き込み領域を確保するオフセットアドレスＡＤＤＯＦＦを、データの破棄を行うコーディングパスの枚数分だけ加算したアドレス（ＡＤＤ １ＬＨ、ＡＤＤ １ＬＨ＋ＡＤＤＯＦＦ、ＡＤＤ １ＬＨ＋２×ＡＤＤＯＦＦ、ＡＤＤ １ＬＨ＋３×ＡＤＤＯＦＦ、…、ＡＤＤ １ＬＨ＋４６×ＡＤＤＯＦＦ）に順に書き込まれる。
【００７８】
(1-3-3)トランケーションテーブル
再び図４を参照する。トランケーションテーブル１２には、上記「表１」に一部を示したように、全部で、例えば、数百のトランケーションテーブルＮｏ．１〜Ｎｏ．×××のデータが格納されている。トランケーションデータは、Ｙ，Ｃｂ，Ｃｒの３つの成分について、データ破棄を行う各サブバンド３ＨＨ，３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨのコーディングパスの枚数を特定するものである。
【００７９】
トランケーションテーブル１２は、例えば、多数のレジスタで構成されており、レートコントロール回路２２０より出力されるテーブルＮｏ．Ｔのトランケーションデータの読み出し要求信号に応じて、該当するレジスタに記録されているトランケーションデータを上記レートコントロール回路２２０に出力する。
【００８０】
(1-3-4)レートコントロール回路
レートコントロール回路２２０は、大きく分けて、アドレス生成回路２３０、符号量演算回路２４０、テーブルＮｏ．切換回路２５０、及び、レジスタ・シフト信号生成器２６０で構成される。以下、各部について概要及び詳細な説明を行う。
【００８１】
(1-3-4-1)アドレス生成回路
(1-3-4-1-1)概要
アドレス生成回路２３０は、テーブルＮｏ．切換回路２５０から出力されるテーブルＮｏ．Ｔのトランケーションデータを、トランケーションテーブル１２から読み出し、各サブバンド毎に、トランケーションデータに基づいてコーディングパスのデータ破棄を行った後の符号量を格納しているメモリ１１内のアドレスを形成し、出力する。
【００８２】
(1-3-4-1-2)詳細な説明
説明の簡単のため、トランケーションテーブル１２より入力されるトランケーションデータの内、Ｃｂ成分についてのみ説明する。他の成分に対しても同じ構成の回路が適用され、個別に処理されることになる。
【００８３】
入力されたトランケーションデータは、各々が６ビットのデータを格納する全部で１０個のレジスタ群２３１に入力される。トランケーションデータは、最大値４６を表現できる６ビットデータを１０個、即ち、サブバンド３ＨＨ，３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨに対応する各６ビットデータを、サブバンド１ＨＨを先頭に、１ＬＨ，１ＨＬ，２ＨＨ，２ＬＨ，２ＨＬ，３ＨＨ，３ＬＨ，３ＨＬ，３ＨＨの順に連続して並べて成るデータである。レジスタ群２３１は、各サブバンド用レジスタに対応する６ビットデータを格納し、セレクタ２３２に出力する。
【００８４】
セレクタ２３２は、サブバンド選択回路２３３より出力される選択信号に応じて、サブバンド３ＬＬ、３ＨＬ、３ＬＨ、３ＨＨ、２ＨＬ、２ＬＨ、２ＨＨ、１ＨＬ、１ＬＨ、１ＨＨの順にトランケーションデータを乗算器２３５の一方の信号入力端子に出力する。乗算器２３５の残りの信号入力端子にはオフセットアドレスＡＤＤＯＦＦの値が入力されている。乗算器２３５は、選択信号により選択されたサブバンドのトランケーションデータにより指定されるデータ破棄を行うコーディングパスの枚数分のオフセットアドレスを加算器２３６の一方の信号入力端子に出力する。
【００８５】
上記サブバンド選択回路２３３は、選択信号の要求信号として入力されるクロック信号ＣＬＫに同期して選択信号を次のサブバンドを選択する値に更新し、出力する。サブバンド選択回路２３３の出力する選択信号は、セレクタ２３４にも入力される。セレクタ２３４は、選択信号により特定されるサブバンドの先頭アドレスＡＤＤ、即ち、ＡＤＤ ３ＬＬ、ＡＤ ３ＨＬ、ＡＤＤ ３ＬＨ、ＡＤＤ ３ＨＨ、ＡＤＤ ２ＨＬ、ＡＤＤ ２ＬＨ、ＡＤＤ ２ＨＨ、ＡＤＤ １ＨＬ、ＡＤＤ １ＬＨ、又は、ＡＤＤ １ＨＨを、加算器２３６の残りの信号入力端子に出力する。
【００８６】
上記構成を採用することにより、加算器２３６は、選択信号により選択されたサブバンドのトランケーションデータにより指定される枚数にマスク量を加算した枚数のコーディングパスの符号データを最下位ビットプレーン側からデータ破棄を行った場合に残る符号量のデータの格納アドレスを生成し、メモリ１１に出力する。
【００８７】
(1-3-4-2)符号量演算回路
(1-3-4-2-1)概要
符号量演算回路２４０は、アドレス生成回路２３０から出力されるアドレスより読み出される各サブバンドのデータ破棄後のＭＱ符号量Ｓｎの全サブバンドについての合計値を求め、求めた値と、指定符号量レジスタ群６の該当するレジスタより出力される目標とする符号量（Ｍ１〜Ｍ８）との比較を行い、当該比較結果を表す信号を、テーブルＮｏ．切換回路２５０に出力する。
【００８８】
(1-3-4-2-2)詳細な説明
メモリ１１より符号量演算回路２４０に読み出されるデータ破棄後のＭＱ符号量Ｓｎのデータは、加算器２４１の一方の信号入力端子に入力される。加算器２４１の残りの信号入力端子には、当該加算器２４１の出力を格納するレジスタ２４２の値が入力される。当該構成を採用することで、レジスタ２４２にリセット信号が入力されるまでの間、メモリ１１より読み出される各サブバンドの符号量の合計値がレジスタ２４２に格納される。
【００８９】
２入力ＡＮＤゲート２４４の一方の信号入力端子にはアドレス生成回路２３０のサブバンド選択回路２３３より出力される選択信号が入力される。ＡＮＤゲート２４４の残りの信号入力端子には、レジスタ２４３が接続されている。レジスタ２４３には、サブバンド選択回路２３３がサブバンド１ＨＨを選択する選択信号を出力した後、即ち、全てのサブバンドの選択信号を出力した後、次に再び最初のサブバンド３ＬＬを選択する前の間に出力される選択信号の値が格納されている。
【００９０】
上記構成を採用することにより、ＡＮＤゲート２４４は、全てのサブバンドの選択信号を出力した後、次に再び最初のサブバンド３ＬＬを選択する前のタイミングで比較器２４５のイネーブル端子にＨｉｇｈレベルのイネーブル信号を出力し、当該回路をイネーブルに切り換える。
【００９１】
比較器２４５は、レジスタ２４２から出力される符号データ破棄後の符号量と目標符号量との比較を行い、比較結果信号を次段のデータＮｏ．切換回路２５０に出力する。
【００９２】
(1-3-4-3)テーブルＮｏ．切換回路
(1-3-4-3-1)概要
テーブルＮｏ．切換回路２５０は、上記符号量演算回路２４０より出力される比較結果信号の値に基づいて、トランケーションテーブルの変更が必要であると判断した場合には、テーブルＮｏ．を切換、再度、トランケーションテーブル１２に出力する。また、上記比較結果信号の値より、選択したトランケーションテーブルが適切であると判断される場合には、最終テーブルＮｏ．として、レジスタ群７の対応するレジスタ（ＲＢ１〜ＲＢ８）に出力する。
【００９３】
(1-3-4-3-2)詳細な説明
【００９４】
図７は、データＮｏ．切換回路２５０の状態遷移図である。当該状態遷移図を、米国Synopsys社の論理合成ツールに入力することで具体的な回路が自動的に設計される。以下、状態遷移図の説明を行う。
【００９５】
まず、処理内容指数ｎの値を１に設定し（ステップＳ２０）、トランケーションテーブルＮｏ．Ｔを１２８に設定する（ステップＳ２１）。設定したテーブルＮｏ．Ｔをトランケーションテーブル１２に出力する（ステップＳ２２）。符号量演算回路２４０の比較器２４５から、テーブルＮｏ．Ｔのトランケーションデータに基づいて算出された全サブバンドのＭＱ符号の残量と目標符号量との比較結果信号が入力されるのを待つ（ステップＳ２３でＮＯ）。上記比較結果信号を受け取った場合であって（ステップＳ２３でＹＥＳ）、その時の処理内容指数ｎの値に応じ、更には、上記比較結果信号がＭＱ符号の残量が目標符号量よりも多いことを表している場合（Ｈｉｇｈレベルである場合）、又は、少ないことを表している場合（Ｌｏｗレベルである場合）に応じて以下の処理を実行する（ステップＳ２４）。
【００９６】
具体的には、処理内容指数ｎの値が１の場合であって、ＭＱ符号の削減量、即ち、ＭＱ符号の破棄を行うコーディングパスの枚数が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ２５でＹＥＳ）、現在のテーブルＮｏ．Ｔ（＝１２８）の値に１２８を加算し（ステップＳ２６）、上記ステップＳ２２に戻る。従って、ステップＳ２５においてＭＱ号の削減量が少ない場合には、処理内容指数ｎの値は１に保持される。
【００９７】
他方、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ２５でＮＯ）、現在のテーブルＮｏ．Ｔ（＝１２８）の値から６４を減算し（ステップＳ２７）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【００９８】
上記ステップＳ２４において、処理内容指数ｎの値が２の場合であって、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ２８でＹＥＳ）、データＮｏ．Ｔの値に３２を加算し（ステップＳ２９）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【００９９】
他方、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ２８でＮＯ）、データＮｏ．Ｔの値から３２を減算し（ステップＳ３０）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１００】
上記ステップＳ２４において、処理内容指数ｎの値が３の場合であって、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ３１でＹＥＳ）、データＮｏ．Ｔの値に１６を加算し（ステップＳ３２）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０１】
他方、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ３１でＮＯ）、データＮｏ．Ｔの値から１６を減算し（ステップＳ３３）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０２】
上記ステップＳ２４において、処理内容指数ｎの値が４の場合であって、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ３４でＹＥＳ）、データＮｏ．Ｔの値に８を加算し（ステップＳ３５）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０３】
他方、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ３４でＮＯ）、データＮｏ．Ｔの値から８を減算し（ステップＳ３６）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０４】
上記ステップＳ２４において、処理内容指数ｎの値が５の場合であって、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ３７でＹＥＳ）、データＮｏ．Ｔの値に４を加算し（ステップＳ３８）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０５】
他方、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ３７でＮＯ）、データＮｏ．Ｔの値から４を減算し（ステップＳ３９）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０６】
上記ステップＳ２４において、処理内容指数ｎの値が６の場合であって、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ４０でＹＥＳ）、データＮｏ．Ｔの値に２を加算し（ステップＳ４１）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０７】
他方、ＭＱ符号の削減量が目標削減量に比べて多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ４０でＮＯ）、データＮｏ．Ｔの値から２を減算し（ステップＳ４２）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０８】
上記ステップＳ２４において、処理内容指数ｎの値が７の場合であって、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ４３でＹＥＳ）、データＮｏ．Ｔの値に１を加算し（ステップＳ４４）、フラグＦの値を０にセット（ステップＳ４５）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１０９】
他方、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ４３でＮＯ）、データＮｏ．Ｔの値に１を減算し（ステップＳ４６）、フラグＦの値を１にセットし（ステップＳ４７）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１１０】
上記ステップＳ２４において、処理内容指数ｎの値が８以上場合、フラグＦの値に応じて以下の処理を行う。即ち、フラグＦの値が０の場合であって（ステップＳ４８でＹＥＳ）、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ４９でＹＥＳ）、データＮｏ．Ｔの値に１を加算し（ステップＳ５０）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１１１】
また、フラグＦの値が１の場合であって（ステップＳ４８でＮＯ）、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ５１でＮＯ）、データＮｏ．Ｔから１を減算し（ステップＳ５２）、処理内容指数ｎの値に１を加算した後（ステップＳ５４）、上記ステップＳ２２に戻る。
【０１１２】
他方、フラグＦの値が０の場合であって（ステップＳ４８でＹＥＳ）、ＭＱ符号の削減量が多い場合（上記比較結果信号がＬｏｗレベル、即ち、ステップＳ４９でＮＯ）、又は、フラグＦの値が０であって（ステップＳ４８でＮＯ）、ＭＱ符号の削減量が不足している場合（上記比較結果信号がＨｉｇｈレベル、即ち、ステップＳ５１でＹＥＳ）には、トランケーションデータの番号を１増減するだけで目標削減量に比べてＭＱ符号の削減量が少ない状態から多い状態に代わり、又は多い状態から少ない状態に変わることを意味し、換言すれば、ＭＱ符号の削減量が目標削減量に達したとみなすことができる。そこで、この時のテーブルＮｏ．Ｔに記録されているトランケーションデータを最終的に使用するデータであるとして、当該テーブルＮｏ．Ｔを表す信号をレジスタ群７の対応するレジスタに出力し（ステップＳ５３）、処理を終了する。
【０１１３】
なお、上記データ処理は、上記状態遷移図を米国Synopsys社の論理合成ツールに入力して形成されるハードウェア回路以外に、ソフトウェア処理により実行することも考えられる。この場合、当業者には容易に想到し得るものであるが、テーブルＮｏ．切換回路２５０を、比較結果信号の入力線と、トランケーションテーブル１２及びレジスタ群７へのデータ出力線とに、バスを介して接続された中央演算処理装置（ＣＰＵ）、ＲＯＭ、及び、ＲＡＭで構成する。上記ＲＯＭには、図７に示した状態遷移図と同じ処理フローチャートを実行するプログラムを格納しておく。上記中央演算処理装置は、上記プログラムを上記ＲＡＭに展開し、上記データ処理を実行する。データ処理の実行時、上記中央演算処理装置は、上記ＲＡＭを作業用のメモリとして利用する。
【０１１４】
(1-3-4-4)レジスタシフト信号生成回路
(1-3-4-4-1)概要
【０１１５】
レジスタシフト信号生成器２６０は、データＮｏ．切換回路２５０から最終テーブルＮｏ．Ｔのデータが出力される毎に、各８個のレジスタで成るレジスタ群６，７の内、次のレジスタをイネーブルにする。
【０１１６】
(1-3-4-4-2)詳細な説明
レジスタシフト信号生成回路２６０は、１ビットのデータだけが“１”にセットされている８ビットのシフトレジスタで成り、上記テーブルＮｏ．切換回路２５０からの最終テーブルＮｏ．Ｔのデータ出力に応じてシフトし、シフト後の８ビットデータを各１ビットのデータにパラレル変換し、各々をレジスタ群６のレジスタ（ＲＡ１〜ＲＡ８）、及び、レジスタ群７のレジスタ（ＲＢ１〜ＲＢ８）のイネーブル端子に出力する構成を採用する。を順に切り換えるレジスタシフト信号を出力する。
【０１１７】
(1-4)符号形成部
図８は、上詳細に説明したレートコントロール部５によってレジスタ群７を構成する８個のレジスタＲＢ１〜ＲＢ８に書きこまれた最終テーブルＮｏ．Ｔのデータに基づいて、符号形成部８が実行する符号形成処理の状態遷移図である。当該状態遷移図を、米国Synopsys社の論理合成ツールに入力することで具体的な回路が自動的に設計される。
【０１１８】
まず、図示しない制御部から、又は、後述するように当該処理をソフトウェア処理により実現する場合には、中央演算処理装置に接続されているキーボードなどの入力手段から符号量Ｍ１〜Ｍ８の内の１つの指定があるか否かを判断する（ステップＳ１００）。ここで、符号量の指定がされている場合には（ステップＳ１００でＹＥＳ）、指定された符号量を表す係数を使用するレイヤの数を表す定数Ｍ（符号量Ｍ１の場合は１、符号量Ｍ２の場合は２、…、符号量Ｍ８の場合には８）に設定する（ステップＳ１０１）。符号量の指定が行われていない場合には（ステップＳ１００でＮＯ）、使用するレイヤの数は８個として上記定数Ｍの値を８に設定する（ステップＳ１０２）。
【０１１９】
レイヤを特定するパラメータＬの値を１に設定する（ステップＳ１０３）。レジスタ群７のレジスタＲＢＬ（但し、Ｌは、上記パラメータＬを表す）に格納されているテーブルＮｏ．Ｔを読み出す（ステップＳ１０４）。レートコントロール部５に内蔵するトランケーションテーブル１２よりテーブルＮｏ．Ｔのトランケーションデータを読み出す（ステップＳ１０５）。読み出したトランケーションデータより指定される枚数のコーディングパスの破棄を行った後に残る各サブバンドのコーディングパスを特定する（ステップＳ１０６）。パラメータＬの値が１の場合（ステップＳ１０７でＹＥＳ）、レイヤ１の内容を上記ステップＳ１０６において特定した各サブバンドのコーディングパスの内容にする（ステップＳ１０５）。
【０１２０】
他方、パラメータＬの値が１以外の場合（ステップＳ１０７でＮＯ）、レイヤ（Ｌ−１）よりも前に特定してあるコーディングパスの内容に追加することになるコーディングパスを特定し、レイヤＬとする（ステップＳ１０９）。
【０１２１】
上記ステップＳ１０８又はステップＳ１０９におけるレイヤＬの内容に基づいてパケットヘッダを生成し（ステップＳ１１０）、符号を形成する（ステップＳ１１１）。パラメータＬの値に１を加算し（ステップＳ１１２）、加算後のパラメータＬの値が８以下の場合（ステップＳ１１３でＮＯ）、上記ステップＳ１０４に戻る。他方、加算後のパラメータＬの値が８を超える場合には（ステップＳ１１３でＹＥＳ）、処理を終了する。
【０１２２】
なお、上記符号形成処理は、上記状態遷移図を米国Synopsys社の論理合成ツールに入力して形成されるハードウェア回路以外に、ソフトウェア処理により実行することも考えられる。この場合、当業者には容易に想到し得るものであるが、符号メモリ４のデータ出力線、レジスタ群７のデータ出力線、及び、トランケーションテーブル１２のトランケーションデータの出力線にバスを介して接続された中央演算処理装置（ＣＰＵ）、ＲＯＭ、及び、ＲＡＭで構成する。なお、上記ＲＯＭには、図８に示した状態遷移図と同じ処理フローチャートを実行するプログラムを格納しておく。上記中央演算処理装置は、上記プログラムをＲＡＭに展開し、上記データ処理を実行する。データ処理の実行時、上記中央演算処理装置は、上記ＲＡＭを作業用のメモリとして利用する。
【０１２３】
（２）実施の形態２
実施の形態２にかかる画像処理装置は、基本的には、上記画像処理装置Ａと同じ構成であり（全体構成図は省略する）、図２に示したレートコントロール部５をソフトウェア処理により実現することを特徴とする。以下の説明では、上記画像処理装置Ａと同じ構成物には同じ参照番号を付し、重複した説明を省く。
【０１２４】
(2-1)レートコントロール部の構成
図９は、実施の形態２にかかる画像処理装置のレートコントロール部５’の構成を示す図である。レートコントロール部５’は、中央演算処理装置（以下、ＣＰＵという）５００を中心に、ＲＯＭ５０１、ＲＡＭ５０２、及び、ハードディスク５０３（図中、ＨＤと記す）で構成されている。
【０１２５】
ＲＯＭ５０１は、以下に説明するレートコントロール処理のプログラムを格納している。ＲＡＭ５０２は、上記画像処理装置Ａのレートコントロール部５が備えていたメモリ１１（図４を参照）に対応する領域を確保しており、かつ、上記プログラム実行時の作業領域として利用される。ハードディスク５０３は、上記画像処理装置Ａのレートコントロール部５が備えていたトランケーションテーブル１２のデータを全て格納している。
【０１２６】
(2-2)レートコントロール処理の内容
図１０は、ＲＯＭ５０１に格納されており、動作時にＲＡＭ５０２に書き込まれた後に実行されるレートコントロール処理のプログラムのフローチャートである。以下、当該フローチャートの流れに従い、ＣＰＵ５００の実行する処理内容について説明する。
【０１２７】
まず、ＣＰＵ５００は、データ処理を実行する（ステップＳ２００）。当該データ処理は、上記画像処理装置Ａのレートコントロール部５のデータ処理部１０において実行される処理と同じ内容である。当該処理により、ＲＡＭ５０２内に、図６に示したのと同じメモリマップ（データ、アドレス）のメモリ１１に対応する領域が形成される。具体的な処理手順は、図５に示す状態遷移図のものと同じであるため、ここでの詳細な説明は省略する。
【０１２８】
次に、８個のレジスタＲＡ１〜ＲＡ８で成るレジスタ群６の内、使用するレジスタを特定するパラメータＲＡの値を１に設定する（ステップＳ２０１）。初期設定としてテーブルＮｏ．Ｔの値を１２８に設定し、処理内容指数ｎの値を１に設定する（ステップＳ２０１）。ハードディスク５０３に格納しているトランケーションテーブル１２から、テーブルＮｏ．Ｔのトランケーションデータを読み出し、各サブバンド毎に、ＭＱ符号の破棄を行うコーディングパスの枚数を特定する（ステップＳ２０３）。
【０１２９】
サブバンド特定パラメータＳＢの値を１に設定する（ステップＳ２０４）。なお、当該サブバンド特定パラメータＳＢは、既に上記ステップＳ２００のデータ処理において使用しているものであり、ＳＢ＝１は３ＬＬに対応し、ＳＢ＝２は３ＨＬに対応し、ＳＢ＝３は３ＬＨに対応し、ＳＢ＝４は３ＨＨに対応する。ＳＢ＝５は２ＨＬに対応し、ＳＢ＝６は２ＬＨに対応し、ＳＢ＝７は２ＨＨに対応する。ＳＢ＝８は１ＨＬに対応し、ＳＢ＝９は１ＬＨに対応し、ＳＢ＝１０は１ＨＨに対応する。
【０１３０】
上記ステップＳ２０３において特定されたサブバンドＳＢのデータ破棄を行うコーディングパスの枚数がＰ枚の場合、ＲＡＭ５０２内のメモリ１１からＰ枚のコーディングパスの符号データを破棄した場合のＭＱ符号の残量Ｓｐを読み出す（ステップＳ２０４）。全サブバンドのＭＱ符号の合計残量Ｇの値に上記残量Ｓｐの値を加算する（ステップＳ２０５）。サブバンド特定パラメータＳＢの値に１を加算する（ステップＳ２０７）。パラメータＳＢの値が１０を超えていない場合には（ステップＳ２０８でＮＯ）、上記ステップＳ２０５に戻る。パラメータＳＢの値が１０を超えた場合には（ステップＳ２０８でＹＥＳ）、レジスタ群６のＲＡｎ（但し、ｎは上記ステップＳ２０１で設定したパラメータＲＡの値）より目標符号量Ｍの値を読み出し、上記合計残量Ｇの値と比べ、残りの符号量Ｇの方が目標符号量Ｍ以上の場合にはＨｉｇｈレベルの比較結果信号を、残りの符号量Ｇの方が目標符号量Ｍより少ない場合にはＬｏｗレベルの比較結果信号を生成する（ステップＳ２０９）。
【０１３１】
データＮｏ．切換処理を実行する（ステップＳ２１０）。当該処理の内容は、後に詳しく説明する。レジスタ群６のレジスタを特定するパラメータＲＡの値に１を加算する（ステップＳ２１１）。パラメータＲＡの値が８を超えていない場合には（ステップＳ２１２でＮＯ）、上記ステップＳ２０２に戻る。他方、パラメータＲＡの値が８を超えた場合には（ステップＳ２１２でＹＥＳ）、処理を終了する。
【０１３２】
図１１は、図１０のステップＳ２１０において実行するデータＮｏ．切換処理のフローチャートである。データＮｏ．切換処理は、基本的には、上記実施形態１の画像処理装置Ａのレートコントロール部５を構成するレートコントロール回路２２０内に設けられているテーブルＮｏ．切換回路２５０が実行するのと同じ内容の処理を行う。当該フローチャート中、図７に示した上記テーブルＮｏ．切換回路２５０の状態遷移図と同じ処理を実行する箇所は、同じステップ番号を付して表す。
【０１３３】
データＮｏ．切換処理は、上記図１０に示したステップＳ２０９において生成される比較結果信号を受け取るところから始まる（ステップＳ２３）。ステップＳ２３以降の処理（ステップＳ２４〜Ｓ５４）は、ステップＳ２６及びステップＳ５４の処理後に、図１０のステップＳ２０３に戻ることを除いて、図７に示した上記テーブルＮｏ．切換回路２５０の状態遷移図と同じ処理であり、ここでの重複した説明は省く。
【０１３４】
(2-3)変形例
以上に説明するように、実施の形態２にかかる画像処理装置では、少なくとも図２に示したレートコントロール部５をソフトウェア処理により実現することを特徴とするが、当該レートコントロール部５を含む全ての処理部（色変換部１、２次元離散ウェーブレット変換部２、算術符号化部３、符号メモリ４、符号生成部８）を、中央演算処理装置、処理プログラムを格納したＲＯＭ、メモリ４，１１やレジスタ群６，７として用いる他、作業用のメモリとして使用するＲＡＭ、トランケーションテーブルのデータなど必要なデータを格納しているハードディスク等で構成されるコンピュータによるソフトウェア処理により実現することも可能である。
【０１３５】
なお、図２に示したマルチレイヤ処理部Ｂ（レートコントロール部５’及びレジスタ群６，７）以外のＪＰＥＧ２０００に準拠する符号化処理部をコンピュータのソフトウェア処理により実現するものについては既に存在する。当業者は、ＪＰＥＧ２０００に符号化処理を準拠する実行するコンピュータに、上記レートコントロール部５’を実現するプログラムを追加適用することで、上記コンピュータを容易に上記画像処理装置Ａとして機能させることができる。
【図面の簡単な説明】
【０１３６】
【図１】実施の形態１にかかる画像処理装置の実行する符号化処理の概略説明図である。
【図２】実施の形態１にかかる画像処理装置の構成図である。
【図３】符号メモリのメモリマップである。
【図４】レートコントロール部の構成を示す図である。
【図５】データ処理部の状態遷移図である。
【図６】レートコントロール部内のメモリのメモリマップである。
【図７】テーブルＮｏ．切換回路の状態遷移図である。
【図８】符号形成部の状態遷移図である。
【図９】実施の形態２にかかる画像処理装置のレートコントロール部の構成を示す図である。
【図１０】レートコントロール部の中央演算処理装置の実行するプログラムのフローチャートである。
【図１１】テーブルＮｏ．切換処理のフローチャートである。
【図１２】従来のＪＰＥＧ２０００に準拠した画像処理装置で形成されるマルチレイヤの構成図である。
【符号の説明】
【０１３７】
１  色変換部、２  ２次元離散ウェーブレット変換部、３  算術符号下部、４  符号メモリ、５  レートコントロール部、６，７  レジスタ群、８  符号形成部、１２  トランケーションテーブル。
【図１】
0004090975.tif 000005
【図２】
0004090975.tif 000006
【図３】
0004090975.tif 000007
【図４】
0004090975.tif 000008
【図５】
0004090975.tif 000009
【図６】
0004090975.tif 000010
【図７】
0004090975.tif 000011
【図８】
0004090975.tif 000012
【図９】
0004090975.tif 000013
【図１０】
0004090975.tif 000014
【図１１】
0004090975.tif 000015
【図１２】
0004090975.tif 000016