(57)【要約】【課題】画質へ影響を最小限に押さえつつ最終のコードストリームで使用されない符号を予測しＭＱ符号化を実施しないことで処理の高速化を図る画像符号化装置を提供する。【解決手段】ビットプレーン符号化後の符号に対して破棄するビットプレーン数の組み合わせを記述した複数個のテーブルを格納する格納手段と、上記複数個のテーブルより所定の符号量以下になるような一組のテーブルを選択することで符号量を制御する符号量制御手段を含む画像符号化装置において、更に、所定のサブバンドに含まれるコードブロックの符号化が終了した時点での符号量を利用して画像全体を符号化した際に選択される一組のテーブルを予測するテーブル選択結果予測手段と、その予測結果に基づいて残りのサブバンドに含まれるコードブロックで符号化するビットプレーンを決定するように符号化手段を制御する符号化ビットプレーン制御手段を備える。【選択図】図１
2010219914.tif 000002
【特許請求の範囲】
【請求項１】
画像データを周波数変換する周波数変換手段と、
上記周波数変換後の係数データをコードブロックと呼ばれる矩形領域に分割後ビットプレーン毎に符号化するビットプレーン符号化手段と、
上記ビットプレーン符号化後の符号に対して破棄するビットプレーン数の組み合わせを記述した複数個のテーブルを、格納する格納手段と、
上記複数個のテーブルより所定の符号量以下になるような一組のテーブルを選択することで符号量を制御する符号量制御手段を備える画像符号化装置において、
更に、所定のサブバンドに含まれるコードブロックの符号化が終了した時点での符号量を利用して画像全体を符号化した際に選択される一組のテーブルを予測するテーブル選択結果予測手段と、
その予測結果に基づいて残りのサブバンドに含まれるコードブロックで符号化するビットプレーンを決定するように符号化手段を制御する符号化ビットプレーン制御手段を備える画像符号化装置。
【請求項２】
請求項１に記載の画像符号化装置において、
符号量制御で用いる設定符号量と上記所定のサブバンドの大きさより該当するサブバンドに割り当てられる予測符号量を算出し、
上記サブバンドに含まれるコードブロックの符号化が終了した時点でのビットプレーン毎の符号量を使って、符号量制御で使用する破棄するビットプレーン数の組み合わせを記述した複数個のテーブルから、上記サブバンドの符号量の合計が上記予測符号量を下回らない範囲で最大の破棄ビットプレーン数となるテーブルを選択し、
残りのサブバンドに含まれるコードブロックに対しては上記選択されたテーブルに記述された該当するサブバンドでの破棄するビットプレーン数を使って符号化する画像符号化装置。
【請求項３】
請求項２に記載の画像符号化装置において、
サブバンド毎のウエーブレット係数データの平均値を使って上記符号化されたサブバンドに割り当てられる予測符号量を算出する画像符号化装置。
【請求項４】
請求項２に記載の画像符号化装置において、
先に符号化したサブバンドのみを対象にした破棄するビットプレーン数の組み合わせと、それらの各テーブルに対応する上記符号量制御で使用するテーブルを特定するデータを記述した複数個の第２のテーブルを使用してテーブル選択結果予測を行う画像符号化装置。
【請求項５】
請求項２に記載の画像符号化装置において、
予め定められた計算式を使って破棄するビットプレーン数を算出してテーブル選択結果予測を行う画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウエーブレット変換とエントロピー符号化により画像データを圧縮する画像符号化装置に関する。
【背景技術】
【０００２】
ＪＰＥＧ２０００は、画像データをウエーブレット変換して量子化し、量子化後のデータをビットプレーン単位でモデリング化した後、算術符号化の一種であるＭＱ符号化を行う画像符号化方式である。従来のＪＰＥＧの方式に比べて符号化効率がよく、またウエーブレット変換を採用しているためブロックノイズが発生しにくいという特徴がある。
【０００３】
さらに、ＭＱ符号化後、ビットプレーン（正確には、パスと呼ばれるサブビットプレーン）単位で符号を破棄するポスト量子化後に最終のコードストリームを生成できるため、符号量制御が比較的簡単に実現できるという利点もある。一般的に、符号量制御方法としては、指定された符号量内で最も良い画質となる画像、すなわち、入力画像との誤差が最も少ない画像が復号されるような符号が得られるように、レート・歪最適化の手法が採用されることが多い。
【０００４】
しかし、厳密にレート・歪の制御を実施すると、処理時間が長くなり、また、必要となるメモリ量も多い。これらの問題解決のために、特許文献１（特許第４０６４２７９号）において、サブバンド毎に破棄するビットプレーンを記述したテーブルを複数用意して、ＭＱ符号化後の符号量に基づいて最適なテーブルを選択する方式が提案されている。
【０００５】
図１７には、従来技術の、サブバンド毎に破棄するビットプレーンを記述したテーブルを複数用意して、ＭＱ符号化後の符号量に基づいて最適なテーブルを選択する符号量制御手段を備えた画像符号化装置の構成例が示されている。この構成例では、ウエーブレット係数データ、ＭＱ符号データなどの異なる種類のデータを同一のメモリ２に一時的に格納する。この場合、複数の機能ブロック間のメモリ２へのアクセスを調停するための調停回路がメモリ前段に設けられる。また、当然ウエーブレット係数データ、ＭＱ符号データなどデータごとに別のメモリを用意することも可能である。
【０００６】
入力された画像データは、２次元ウエーブレット変換によりサブバンド毎のウエーブレット係数データへと変換され、メモリ２に格納される。画像データがカラー画像のものである場合、ウエーブレット変換は輝度（Ｙ）データ、色差（Ｃｂ、Ｃｒ）データに対して独立に施され、結果は、図１８（１）に示すように、各色成分（以下、コンポーネントという。）におけるサブバンド毎にメモリ２に格納される。
【０００７】
各サブバンドの係数データはさらにコードブロックと呼ばれる矩形領域に分割され、このコードブロック単位で量子化された後、ビットプレーン分割されＭＱ符号化される。
【０００８】
図１８（２）では、画像データを２次元ウエーブレット変換により５段階のフィルタリング（分割レベル５）でサブバンド毎の係数データに変換し、さらに各サブバンドを３２×３２の大きさのコードブロックに分割した例を示す。５ＬＬ〜３ＨＨのようにサブバンド大きさが３２×３２より小さい場合、それらのサブバンドは分割されず一つのコードブロックとして処理される。
【０００９】
図１８（３）は、ビットプレーン分割の概念を示す図である。コードブロックに含まれる係数データは絶対値として表され、同じビット位置にある３２×３２個のビットをビットプレーンとし、そのビットプレーンには非０のデータがあるがそれより上位側は全てのビットが０であるようなビットプレーンから最下位のビットプレーンまで、順次ＭＱ符号化される。図１８（３）の例は、最上位からビットプレーン番号がＢｐ＋１のビットプレーンまでのデータが全て０であり（これらはゼロビットプレーンと呼ばれる）、ビットプレーン番号Ｂｐのビットプレーンに初めて非０のデータがある場合である。この時、ビットプレーンＢｐからビットプレーン１までのデータがＭＱ符号化される。
【００１０】
さらに、一つのビットプレーンのビットデータは、復号時に画質に与える影響によって３つのパスと呼ばれるサブビットプレーンに分けられ、影響が大きいと思われるパスに属するデータから優先して符号化が行われる。この様子を図１８（４）に示す。各ビットプレーンで、最初に符号化されるビットが「ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ」と呼ばれるパスに属するビット、２番目に符号化されるのが、「ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ」と呼ばれるパスに属するビット、最後に符号化されるビットは、上記のいずれにも属さない「ｃｌｅａｎｕｐ」と呼ばれるパスに属するビットである。符号化される最上位のビットプレーン（図１８（４）のビットプレーンＢｐ）に含まれるビットは全てｃｌｅａｎｕｐパスに含まれるため、一つのコードブロックにおいて符号化の対象となるパスの数は、
３×（Ｂｐ−１）＋１＝３×Ｂｐ−２
となる。
【００１１】
ＭＱ符号化の結果であるＭＱ符号は、図１９に示すように、各コンポーネント、各サブバンドに含まれるコードブロック毎に、メモリ２に格納される。同時に、符号化に必要な情報として、そのコードブロックのゼロビットプレーン数（＃ＺＢＰ）、符号化されたパス数（＃ＣＰ）、パス毎のＭＱ符号の符号量（ｌｅｎ）もメモリ上に格納される。
【００１２】
ＭＱ符号化と同時に、符号量制御用に全体符号量（Ｑ）とパス毎の符号削減量（Σｌｅｎ）のデータが生成される。全体符号量は、全てのコードブロックの符号化が完了した時点でのＭＱ符号の符号量であり、パス毎の符号削減量は、各コンポーネントの各サブバンドに含まれる全てのコードブロックに関して、同じパス番号のパスに関して符号量（ｌｅｎ）を合計したものである。
【００１３】
図２０（１）は、符号化制御／ビットプレーン分割部２４、ＭＱ符号化部２６、符号量算出部１６のより詳細なブロック図を示す。符号化制御／ビットプレーン分割部２４部は、ウエーブレット終了後、各コンポーネント、各サブバンドのコードブロック毎に量子化後の係数を読み込み、ビットプレーン分割してビットプレーンデータをＭＱ符号化部２６に入力し、同時に符号量算出部１６での符号量算出動作を制御する。図２０（２）は、符号化制御／ビットプレーン分割部２４の制御フローを示す。ここで、Ｃはコンポーネント番号（Ｙ、Ｃｂ、Ｃｒ）を、ＳＢはサブバンド番号（実際のサブバンド名と番号との対応は、図２０（３）に示すものである）を、ＣＢはコードブロック番号を示す。サブバンドに含まれるコードブロック数の最大値は、画像サイズとウエーブレットの分割レベルが決まれば、コンポーネント（Ｃ）、サブバンド（ＳＢ）毎に決定される。このことを、
Ｃｂｌａｓｔ（Ｃ、ＳＢ）
と表す。図２０（２）のフローでは、スタート後、Ｙ５ＬＬ→Ｙ５ＨＬ→Ｙ５ＬＨ→…→Ｃｒ１ＨＨの順に、それぞれのサブバンドで、コードブロックデータの読み込みとコードブロック単位でのＭＱ符号化を行う。コードブロックデータの読み込みでは、処理するコードブロックに含まれるウエーブレット係数データをメモリ２から読み込み、量子化後ビットレーン分割用メモリに書き込むと同時に、そのコードブロックに含まれる量子化後の係数データで最大のビットプレーン数、すなわち、そのコードブロックで符号化するビットプレーン数（Ｂｐ）を求める。図２１に、符号化ビットプレーン数算出回路３２を示す。量子化後の係数データ（Ｑ）のビットが、ｑｎ〜ｑ１に接続されＦ／Ｆ３４に入力される。Ｆ／Ｆ３４の出力と次の係数データとのビット毎のＯＲをＦ／Ｆ３４に入力することで全てのコードブロックを通して“１”となるビットがＦ／Ｆ３４に記憶され、それをプライオリティエンコーダーでエンコードすることで、最も上位側で“１”となっているビットを求めることができる。
【００１４】
図２２は、コードブロック単位でのＭＱ符号化の処理フローを示す。スタート後、符号化ビットプレーン数（Ｂｐ）より符号化パス数（ＣＰ）を算出する（Ｓ２２０２）。符号化するビットプレーンがあれば（Ｓ２２０４）、そのビットプレーンをビットレーン分割用メモリから読み出し、ＭＱ符号化部２６ではｃｌｅａｎｕｐパスとしてビットモデリング、ＭＱ符号化を行う（Ｓ２２０６）。このパスの符号化が終った時点で、パスの符号化を終了したことを示すｐｅｎｄを“１”にする（Ｓ２２０８）。この信号は、符号量算出部１６にてパス毎の符号量を算出する際に利用される。符号化したパスが最後の符号化パスであれば処理を終了し（Ｓ２２１０）、それ以外の場合は次のビットプレーンの符号化を行う。最上位以外のビットプレーンは、「ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ」、「ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ」、「ｃｌｅａｎｕｐ」の３つのパスでＭＱ符号化されるので、符号化制御部２４のフローは、ビットレーン分割用メモリからのビットプレーンの読み出し、ＭＱ符号化を３回実施する。ＭＱ符号化部２６はそれぞれのパスに対してビットモデリング、ＭＱ符号化を行う。さらに、一つのパスでの符号化が終了するたびに、ｐｅｎｄを“１”にする（Ｓ２２１６、Ｓ２２２２）。ｃｌｅａｎｕｐパスでの符号化が終了すると、全てのパスの符号化が終了したかを確認し（Ｓ２２１０）、まだ、終了していない場合は，次のビットプレーンの符号化を実施する。
【００１５】
図２３（１）は、符号量算出部１６の内部回路を示す。ｖａｌｉｄ信号はＭＱ符号化部２６で生成され、ＭＱ符号データが有効となるタイミングでアサートされる。符号量算出部１６では、このｖａｌｉｄ信号をカウントすることで全体符号量（Ｑ）とパス毎の符号削減量（Σｌｅｎ）を算出する。全体符号量（Ｑ）は画像全体にわたってｖａｌｉｄのアサート回数をカウントすることで算出される。パス毎の符号削減量（Σｌｅｎ）は、コードブロックの符号化でアサートされるｖａｌｉｄ信号をカウントし、一つのパスの符号化が終了する（ｐｅｎｄが“１”となる）時点で、メモリの該当するコンポーネント、サブバンド、パスをアドレスとする領域に格納するが、この時、それまでに符号化された同じアドレスに格納されている符号削減量をメモリから読み出し、それと前記のカウント値を加算した値を書き込む。これにより、符号削減量のデータは、図２３（２）に示すように、コンポーネント毎、サブバンド毎、パス毎にメモリに格納される。
【００１６】
ＭＱ符号化が終了すると、符号量制御を行った後、最終のコードストリームが生成される。ＪＰＥＧ２０００では、ＭＱ符号化後の符号データを全て使うのではなく、所定の符号量に合わせ込むためパス単位で符号を破棄するポスト量子化を行った後、残ったパスの符号で最終のコードストリームを生成する。ここでは、トランケーションテーブルを用いた符号量制御の方法について説明する。
【００１７】
図２４は、トランケーションテーブルの例を示す。トランケーションテーブルとは、ＭＱ符号化後の符号を使って最終のコードストリームを生成する際に破棄するパスの数をサブバンド毎に記述したテーブルである。図２４での数字は、該当するサブバンドに属するコードブロックの下位から何パス分の符号を破棄して最終のコードストリームを生成するか、を示している。例えば、テーブル番号Ｔ０のテーブルは、コンポーネントＣｂのサブバンド１ＨＨに含まれる全コードブロックで、最下位の１パス分の符号が破棄されることを示す。さらに、いずれか一つのサブバンドで破棄するパスの数が１だけ大きくなった複数のテーブルを用意し、テーブル番号の小さい方から順に並べる。図２４の例では、テーブル番号Ｔ２のテーブルは、Ｔ１のテーブルに比べてコンポーネントＣｂ、サブバンド１ＨＨで破棄するパスの数が１だけ大きくなっている。
【００１８】
図１７のレートコントロール回路部１８では、符号量算出部１６で生成された全体符号量（Ｑ）とパス毎の符号削減量（Σｌｅｎ）を使って、最終の符号量が設定符号量（Ｎ）を越えない範囲で最大となるようなテーブルを複数のトランケーションテーブル（Ｔ０、Ｔ１、・・・）から１つ選択する。図２５に、レートコントロール回路部１８の制御フローの例を示す。図２５における変数は、それぞれ以下の内容である。
【表１】
2010219914.tif 000003
【００１９】
スタート後、各変数を初期化し（Ｓ２５０２）、全体符号量（Ｑ）と設定符号量（Ｎ）を比較する（Ｓ２５０４）。全体符号量の方が大きい場合、トランケーションテーブルを選択するフローに入る。まず、それまで選択されていたコンポーネント、サブバンド毎の破棄するパス数をＴＰＢに移し（ＴＰＢ←ＴＰ）、新たにメモリ２からテーブル番号Ｔのデータを読み込みコンポーネント、サブバンド毎の破棄するパス数をＴＰに設定する（ＴＰ←ＴＢＬ（Ｔ））（Ｓ２５０６）。次に、ＴＰとＴＰＢで破棄するパス数が異なる（Ｓ２５０８）サブバンドを探索する。ＴＰとＴＰＢでは必ず値が１違っているサブバンドが存在し、それに該当するサブバンドのパス番号ＣＰの符号削減量を符号量算出部１６のメモリより読み出し（Ｓ２５１０）、全体の符号量（Ｑ）より引いて（Ｓ２５１２）設定符号量（Ｎ）と比較する（Ｓ２５１４）。もし、全体の符号量（Ｑ）の方が大きければ（Ｓ２５１４・ＹＥＳ）、Ｔの値をインクリメントして（Ｓ２５１８）同じ処理を繰り返す。設定符号量（Ｎ）が大きければ（Ｓ２５１４・ＮＯ）、最終のトランケーションパス数（ＴＰ）をパケット回路生成回路に出力して処理を終了する。
【００２０】
レートコントロール回路部１８で選択されたトランケーションテーブルに従い、パケット生成回路２０、符号形成部２２で最終的なコードストリームが生成される。
【００２１】
ここで、ＭＱ符号化は、ＪＰＥＧ２０００に関する処理の中で、最も負荷の掛かる工程である。にもかかわらず、ＭＱ符号化後の符号量は、実際に符号化を行ってみるまでは正確な値が分からないため、符号量制御を行うためには、上記に示したように画像全体に対するＭＱ符号化を行う必要がある。その結果、ＭＱ符号化までは行われたが、所定の符号量になるように制御された最終のコードストリームでは使用されなかった符号が存在することになる。
【００２２】
予めサブバンド毎に決められたビットプレーンのみＭＱ符号化を実施することで、符号化処理全体を高速化することも可能であるが、この場合、画像によっては本来必要となるべきビットプレーンが符号化されず、最終のコードストリームに含まれなくなり画質の低下を招く可能性がある。
【００２３】
また、特許文献２（特許第４０００３６２８号）の装置では、周波数変換後の係数データをビットプレーン単位に分割し、各ビットプレーンでの最初に非０となるデータの個数を算出して符号量を推定した後、符号化を予測されたビットプレーンのみ符号化することで処理の効率化を図っている。しかし、この方法で推定された符号量のみで符号化されるビットプレーンが決められ、符号量制御が行われたとしても、結果として最適な画質が得られない可能性がある。
【００２４】
なお、本出願の先行文献として、以下のようなものが挙げられる。
【００２５】
サブバンド毎に破棄するビットプレーンを記述したテーブルを複数用意して、ＭＱ符号化後の符号量に基づいて最適なテーブルを選択する方式を開示するものとして、特許文献１が挙げられる。
【００２６】
また、周波数変換後の係数データをコードブロックに分割し、そのビットプレーンにおける値が非０で、それより上位のビットプレーンにおける値が０であるような係数データの数をビットプレーン毎に計数し、その値に基づいて推定符号量を求め、その推定符号量を所定の目標符号量となるまで加算して符号化対象となるビットプレーンを予測し、その符号化対象となったビットプレーンを算術符号化し、生成された算術符号より符号化コードストリームを生成する画像符号化装置を開示するものとして、特許文献２が挙げられる。
【００２７】
また、連続画像、動画像の符号化で、時間的に直前の画像の同一位置にある符号ブロックで選択された符号化ビットプレーン数に基づいて、符号化するビットプレーンを計算する画像符号化装置を開示するものとして、特許文献３が挙げられる。
【発明の概要】
【発明が解決しようとする課題】
【００２８】
本発明は、画質に与える影響を最小限に押さえながら、最終のコードストリームで使用されない符号を予測してＭＱ符号化を実施しないことで処理の高速化を図る画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００２９】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項１に記載の画像符号化装置は、
画像データを周波数変換する周波数変換手段と、
上記周波数変換後の係数データをコードブロックと呼ばれる矩形領域に分割後ビットプレーン毎に符号化するビットプレーン符号化手段と、
上記ビットプレーン符号化後の符号に対して破棄するビットプレーン数の組み合わせを記述した複数個のテーブルを、格納する格納手段と、
上記複数個のテーブルより所定の符号量以下になるような一組のテーブルを選択することで符号量を制御する符号量制御手段を備える画像符号化装置において、
更に、所定のサブバンドに含まれるコードブロックの符号化が終了した時点での符号量を利用して画像全体を符号化した際に選択される一組のテーブルを予測するテーブル選択結果予測手段と、
その予測結果に基づいて残りのサブバンドに含まれるコードブロックで符号化するビットプレーンを決定するように符号化手段を制御する符号化ビットプレーン制御手段を備える。
【００３０】
本発明に係る請求項２に記載の画像符号化装置は、
請求項１に記載の画像符号化装置において、
符号量制御で用いる設定符号量と上記所定のサブバンドの大きさより該当するサブバンドに割り当てられる予測符号量を算出し、
上記サブバンドに含まれるコードブロックの符号化が終了した時点でのビットプレーン毎の符号量を使って、符号量制御で使用する破棄するビットプレーン数の組み合わせを記述した複数個のテーブルから、上記サブバンドの符号量の合計が上記予測符号量を下回らない範囲で最大の破棄ビットプレーン数となるテーブルを選択し、
残りのサブバンドに含まれるコードブロックに対しては上記選択されたテーブルに記述された該当するサブバンドでの破棄するビットプレーン数を使って符号化する。
【００３１】
本発明に係る請求項３に記載の画像符号化装置は、
請求項２に記載の画像符号化装置において、
サブバンド毎のウエーブレット係数データの平均値を使って上記符号化されたサブバンドに割り当てられる予測符号量を算出する。
【００３２】
本発明に係る請求項４に記載の画像符号化装置は、
請求項２に記載の画像符号化装置において、
先に符号化したサブバンドのみを対象にした破棄するビットプレーン数の組み合わせと、それらの各テーブルに対応する上記符号量制御で使用するテーブルを特定するデータを記述した複数個の第２のテーブルを使用してテーブル選択結果予測を行う。
【００３３】
本発明に係る請求項５に記載の画像符号化装置は、
請求項２に記載の画像符号化装置において、
予め定められた計算式を使って破棄するビットプレーン数を算出してテーブル選択結果予測を行う。
【発明の効果】
【００３４】
本発明の画像符号化装置は、途中のサブバンドまでの符号化が終了した時点での符号量の情報を使って最終的なコードストリームで破棄されると予想されるパスを予測し、その結果に基づいて残りのサブバンドを符号化するパス数を減らすので、画像に依存せず画質に影響しない範囲で符号化処理の高速化を図ることができる。
【００３５】
また、本発明の画像符号化装置は、選択結果予測手段として符号量制御で使用するテーブルを利用するので、この機能追加に伴う回路の増加量、制御手段の変更量を最小限に抑えることができる。
【００３６】
また、本発明の画像符号化装置は、画像全体のウエーブレット変換の結果を使って予め符号化されたサブバンドに割り当てられる符号量を算出するので、予測結果の精度が向上する。
【００３７】
また、本発明の画像符号化装置は、予め符号化されたサブバンドだけに対応する破棄するパス数が記載されたテーブルを使って選択結果予測を行うので、選択結果予測に要する時間を短くすることができる。
【００３８】
更に、本発明の画像符号化装置は、テーブルを使用する代わりに与えられた簡単な演算式よりサブバンドでの破棄するパス数を算出するので、回路規模を削減できる。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施形態に係るテーブル選択結果予測手段を備えた画像符号化装置のブロック図である。
【図２】本発明の第１の実施形態に係る画像符号化装置における符号化制御部の動作フローである。
【図３】Ｃ＝１、２、３、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）に記述されているパスを破棄しても符号量がある目標値より小さくならないテーブルであって、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）の値が最も大きく、ＳＢ＝１１（２ＨＬ）〜１６（１ＨＨ）の値が最も小さくなるテーブルを選択し、そのテーブルのＳＢ＝１１（２ＨＬ）〜１６（１ＨＨ）の値を予測値とすることの、関係を模式的に示した図である
【図４】選択結果予測の動作フローである。
【図５】各サブバンドの係数データの数とその平均値、さらに、各サブバンドにウエイトを設定してそれらをサブバンド毎に掛け合わせ、それらの５ＬＬ〜３ＨＨの合計と、２ＨＬ〜１ＨＨの合計の比でＰの値を決定している、テーブルの例である。
【図６】破棄される符号化パス数を考慮したＭＱ符号化処理のフローである。
【図７】本発明の第２の実施形態に係る画像符号化装置におけるメモリに格納されているトランケーションテーブル例の一部を抜き出したものである。
【図８】上記図７のトランケーションテーブルに次に選択結果予測で使用するテーブルまでのオフセット値（ΔＴ）が追加された、本発明の第２の実施形態に係る画像符号化装置における選択結果予測のトランケーションテーブル例である。
【図９】上記図７のトランケーションテーブルに次に選択結果予測で使用するテーブルまでのオフセット値（ΔＴ）が追加された、本発明の第２の実施形態に係る画像符号化装置における選択結果予測の動作フローである。
【図１０】選択結果予測用の別のテーブルを備える、本発明の第２の実施形態に係る画像符号化装置のブロック図である。
【図１１】選択結果予測用の別のテーブルを備える本発明の第２の実施形態に係る画像符号化装置における予測用テーブルの例である。
【図１２】選択結果予測用の別のテーブルを備える本発明の第２の実施形態に係る画像符号化装置における選択結果予測の動作フローである。
【図１３】選択結果予測用の別のテーブルを備える本発明の第２の実施形態に係る画像符号化装置における予測用テーブルの例である。
【図１４】選択結果予測でテーブルを使用する代わりに、予め与えられた計算式を使って、破棄されるパス数を近似的に計算して予測値を求める、本発明の第２の実施形態に係る画像符号化装置のブロック図である。
【図１５】図１４に示す画像符号化装置における選択結果予測の動作フローである。
【図１６】図１６（１）は、図１５に示す選択結果予測の動作フローで用いられる直線グラフの式である。図１６（２）は、図１５に示す選択結果予測の動作フローで用いられる整数化演算式である。
【図１７】従来技術の符号量制御手段を備えた画像符号化装置のブロック図である。
【図１８】図１８（１）は、画像データがカラー画像のものである場合に、輝度（Ｙ）データ、色差（Ｃｂ、Ｃｒ）データに対して独立に施されるウエーブレット変換の結果を、各色成分（コンポーネント）におけるサブバンド毎にメモリ２に格納する様子を示す図である。図１８（２）は、画像データを２次元ウエーブレット変換により５段階のフィルタリング（分割レベル５）でサブバンド毎の係数データに変換し、さらに各サブバンドを３２×３２の大きさのコードブロックに分割した例を示す図である。図１８（３）は、ビットプレーン分割の概念を示す図である。図１８（４）は、一つのビットプレーンのビットデータが、復号時に画質に与える影響によって３つのパスと呼ばれるサブビットプレーンに分けられ、影響が大きいと思われるパスに属するデータから優先して符号化が行われる様子を示す図である。
【図１９】ＭＱ符号化の結果であるＭＱ符号が、各コンポーネント、各サブバンドに含まれるコードブロック毎にメモリに格納される様子、及び、符号化に必要な情報としての、そのコードブロックのゼロビットプレーン数（＃ＺＢＰ）、符号化されたパス数（＃ＣＰ）、パス毎のＭＱ符号の符号量（ｌｅｎ）がメモリに格納される様子を、示す。
【図２０】図２０（１）は、符号化制御／ビットプレーン分割部、ＭＱ符号化部、符号量算出部のより詳細なブロック図である。図２０（２）は、符号化制御／ビットプレーン分割部の制御フローである。図２０（３）は、実際のサブバンド名と番号との対応である。
【図２１】符号化ビットプレーン数算出回路の概略の回路図である。
【図２２】コードブロック単位でのＭＱ符号化の処理フローである。
【図２３】図２３（１）は、符号量算出部の内部回路の図である。図２３（２）は、符号削減量のデータが、コンポーネント毎、サブバンド毎、パス毎にメモリに格納される様子を示す図である。
【図２４】トランケーションテーブルの例である。
【図２５】レートコントロール回路部の制御フローの例である。
【発明を実施するための形態】
【００４０】
以下、図面を参照しつつ、本発明に係る好適な実施形態を説明する。
【００４１】
《第１の実施形態》
図１は、本発明の第１の実施形態に係るテーブル選択結果予測手段を備えた画像符号化装置のブロック図である。本実施形態では、選択結果予測回路２８は、所定のサブバンドのＭＱ符号化が終った時点で、符号量算出部１６の結果と、メモリ２上に格納されているトランケーションテーブル８を使って最終的な符号ストリームでは破棄されると予想されるパスを予測し、符号化制御部２４はその予測結果に基づいて残りのサブバンドのＭＱ符号化を実施する。
【００４２】
図２は、このときの符号化制御部２４の動作フローを示す。このフローは、カラー画像を分割レベル５でウエーブレット変換し、Ｙ、Ｃｂ、Ｃｒ（Ｃ＝１、２、３）の各コンポーネントで５ＬＬから３ＨＨまでのサブバンド（ＳＢ＝１、２、・・・、１０）のＭＱ符号化が終了した時点で選択結果予測を行い、残りの２ＨＬから１ＨＨのサブバンドに関しては予測結果に基づいてＭＱ符号化を実施する。
【００４３】
図２内の“Ａ”で示されるフロー前半部は、Ｙ、Ｃｂ、Ｃｒの各コンポーネントで５ＬＬから３ＨＨのサブバンドまでをＭＱ符号化するフローである。その動作内容は、図２０（２）に示す従来技術のものと同じである。図２内の“Ｂ”で示されるフロー後半部は、選択結果を予想し、その結果に基づいて残りのサブバンドをＭＱ符号化するフローである。つまり、図２の動作フローと図２０（２）の動作フローとは
［１］Ｙ、Ｃｂ、Ｃｒの各コンポーネントで５ＬＬから３ＨＨのサブバンドまでのＭＱ符号化が終了した時点で、選択結果予測処理（Ｓ２１８）が入っていること、及び、
［２］残りの２ＨＬから１ＨＨのサブバンドの符号化においては予測の結果である破棄される符号化パス数を考慮した符号化処理を行っていること
の２点が異なっている。以下では、この２点に関して説明する。
【００４４】
まず、選択結果予測処理（Ｓ２１８）に関しての説明を行う。
ここでは、Ｃ＝１、２、３、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）に記述されているパスを破棄しても符号量がある目標値より小さくならないテーブルであって、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）の値が最も大きく、ＳＢ＝１１（２ＨＬ）〜１６（１ＨＨ）の値が最も小さくなるテーブルを選択し、そのテーブルのＳＢ＝１１（２ＨＬ）〜１６（１ＨＨ）の値を予測値とする。図３は、上記の関係を模式的に示したものである。ここで５ＬＬ〜３ＨＨまでのサブバンドに関してはＭＱ符号化を終了しており、斜線部の符号量の合計はある目標値を超えているものとする。テーブル番号ＴａからＴｂのテーブルでは５ＬＬ〜３ＨＨまでの内容が同じであり、Ｔｂ＋１のテーブルでは符号量が目標値より小さくなり、Ｔａ−１のテーブルでは５ＬＬ〜３ＨＨまでの内容が異なるとき、予測値としてＴａのテーブルが選択される。
【００４５】
図４は、選択結果予測の動作フローを示す。図４における変数は、それぞれ以下の内容である。
【表２】
2010219914.tif 000004
ＴＰ、ＴＰＢは、全てのコンポーネント、サブバンドで破棄するパスが０となるように初期化される（Ｓ４０２）。
【００４６】
図４のフローにおいて、スタートし、各変数の初期化（Ｓ４０２）が終った後、設定符号量（Ｎ）より選択結果予測に使用する予測符号量（Ｎｓｕｂ）を算出する（Ｓ４０４）。算出方法としては、画像全体のウエーブレット係数の個数とＭＱ符号化を終ったサブバンドのウエーブレット係数の個数の比を使用できる。本実施形態では、分割レベル５で３ＨＨまでのサブバンドの符号化が終った時点で選択結果予測を行うが、符号化の終ったサブバンドのウエーブレット係数の個数は全体の１／１６となり、予測符号量をＮ×Ｐ＝１／１６×Ｎとすること、若しくは、各サブバンドの係数データの数と平均値を使って予測符号量を算出することも可能である。図５のテーブルでは、各サブバンドの係数データの数とその平均値、さらに、各サブバンドにウエイトを設定してそれらをサブバンド毎に掛け合わせ、それらの５ＬＬ〜３ＨＨの合計と、２ＨＬ〜１ＨＨの合計の比でＰの値を決定している。
【００４７】
図４に戻って、まず、全体符号量（Ｑ）と予測符号量（Ｎｓｕｂ）を比較し（Ｓ４０６）、全体符号量（Ｑ）の方が小さければ、選択結果予測処理を終了する。このとき、ＴＰＢの値がＴｓｕｂに設定される（Ｓ４３２）ので、破棄されるパス数は０となり、以降のＭＱ符号化においては全てのパスが符号化される。
【００４８】
Ｓ４０６にて、全体符号量（Ｑ）が大きい場合は以下の処理が繰り返される。
［１］メモリ２からテーブル番号Ｔのトランケーションテーブルを読み込みＴＰに設定する（Ｓ４０８）。
［２］Ｃ＝１、２、３、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）の範囲で、ＴＰとＴＰＢの値に差がないかを確認する（Ｓ４１０）。
［３］ＴＰとＴＰＢで差がある場合、
［３−１］差のあるサブバンドの破棄するパス数をパス番号ＣＰとする（Ｓ４１２）。
［３−２］Ｑから該当するパスのパス毎の符号削減量（Σｌｅｎ（Ｃ、ＳＢ、ＣＰ））を引く（Ｓ４１４）。
［３−３］Ｑと予測符号量（Ｎｓｕｂ）を比較し（Ｓ４１６）、Ｑの方が小さければＴＰＢの値をＴｓｕｂに設定し（Ｓ４３２）処理を終了する。
［３−４］Ｑの方が大きければ、Ｔを１インクリメントし、ＴＰの値をＴＰＢに設定して（Ｓ４２０）、上記［１］に戻る。
［４］ＴＰとＴＰＢで差がない場合、Ｔを１インクリメントして（Ｓ４２６）、上記［１］に戻る。
【００４９】
次に、図６は、破棄される符号化パス数を考慮したＭＱ符号化処理のフローである。各変数、動作内容は以下の通りである。
【表３】
2010219914.tif 000005
【００５０】
図６のフローにおいて、スタート後、Ｂｐ、Ｔｓｕｂを使ってＢＮ、ＣＰの初期値とＣｐｌａｓｔと決定する（Ｓ６０２）。ＣＰの初期値よりＣＰｌａｓｔが大きい場合（Ｓ６０４・ＹＥＳ）、このコードブロックには符号化の対象となるパスが無いことになりフローを終了する。
ＣＰが大きい場合（Ｓ６０４・ＮＯ）、以下の手順を繰り返す。
［１］ビットプレーン分割メモリからビットプレーン番号ＢＮのビットプレーンデータを読み出して、ＭＱ符号化部２６でＭＱ符号化する（ｃｌｅａｎｕｐパス）（Ｓ６０６）。
［２］ｃｌｅａｎｕｐパスの符号化が終了した時点でｐｅｎｄをアサートする（Ｓ６０８）。
［３］処理したパス（ＣＰ）が最後のパス（Ｃｐｌａｓｔ）であった場合（Ｓ６１０・ＹＥＳ）、処理を終了する。
［４］ＣＰ、ＢＮをデクリメントする（Ｓ６１２）。
［５］ビットプレーン分割メモリからビットプレーン番号ＢＮのビットプレーンデータを読み出して、ＭＱ符号化部２６でＭＱ符号化する（ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎパス）（Ｓ６１４）。
［６］ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎパスの符号化が終了した時点でｐｅｎｄをアサートする（Ｓ６１８）。
［７］処理したパス（ＣＰ）が最後のパス（Ｃｐｌａｓｔ）であった場合（Ｓ６２０・ＹＥＳ）、処理を終了する。
［８］ＣＰをデクリメント（ＢＮは変更しない）する（Ｓ６２２）。
［９］ビットプレーン分割メモリからビットプレーン番号ＢＮのビットプレーンデータを読み出して、ＭＱ符号化部２６でＭＱ符号化する（ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパス）（Ｓ６２４）。
［１０］ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔパスの符号化が終了した時点でｐｅｎｄをアサートする（Ｓ６２６）。
［１１］処理したパス（ＣＰ）が最後のパス（Ｃｐｌａｓｔ）であった場合（Ｓ６２８・ＹＥＳ）、処理を終了する。
［１２］ＣＰをデクリメント（ＢＮは変更しない）し（Ｓ６３０）、上記［１］に戻る（Ｓ６０６）。
【００５１】
上記の処理により、図２のフロー後半部“Ｂ”のＭＱ符号化では、最終のコードストリームで破棄されると予想されるパスに関して予め符号化を行わないようにすることができる。
【００５２】
《第２の実施形態》
符号量制御で使用するトランケーションテーブル８には、全てのサブバンドに関しての破棄するパス数が記載されているが、前後する２つのテーブル間で、選択結果予測で使用するサブバンドでの破棄するパス数に差が無い場合がある。このことにより、図４の動作フローのように、Ｃ＝１、２、３、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）の範囲で、ＴＰとＴＰＢの値に差があることを確認し、もし差がない場合はそのテーブルは使用せず次のテーブルを読み込むという動作が必要となり、その分、選択結果予測に時間がかかることになる。
【００５３】
図７のテーブル例を用いて詳細に説明する。図７のテーブル例は、メモリ２に格納されているトランケーションテーブル例の一部を抜き出したものである。Ｔ１９６からＴ１９７では、Ｃｂ４ＬＨの破棄するパス数が１増え、その後、Ｔ１９７からＴ２０７まで、Ｃ＝１、２、３、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）のサブバンドは、同じ値を取る。Ｔ２０８はＴ２０７に比べ、Ｙ１ＬＨで破棄するパス数が１増え、Ｃ＝１、２、３、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）は同じ値となっている。このテーブルを用いて選択結果予測を行った場合、Ｔ１９８からＴ２０７までは、実際に使用されないにもかかわらずメモリからの読み込み動作、前のテーブルと設定されたパス数を比較する動作が必要となる。
【００５４】
図９に示す選択結果予測の動作フロー、及び、図８に示すテーブルは、上記図７のトランケーションテーブル８に対して、次に選択結果予測で使用するテーブルまでのオフセット値（ΔＴ）を追加することで、上記の問題を解決する方法における、本発明の第２の実施形態の選択結果予測の動作フロー及びトランケーションテーブル例である。
【００５５】
図８のテーブルでは、Ｔ１９７には、次にＣ＝１、２、３、ＳＢ＝１（５ＬＬ）〜１０（３ＨＨ）のサブバンドでのパス数に差のあるＴ２０９までのオフセット値（ΔＴ）＝１２が与えられている。また、図９のフローでは、テーブル番号を単純にインクリメントする（図４・Ｓ４２０参照）のではなくオフセット値（ΔＴ）を加算する（Ｓ９２０）。このことにより、次に読み込むテーブルには、現在のテーブルに比べ選択結果予測の対象となるサブバンドのパス数に１の差があることになるので、不必要なテーブルの読み込みが発生しない。
【００５６】
図１０は、選択結果予測用に別にテーブルを持つことで上記の問題を解決する、画像符号化装置のブロック図である。この例では、選択結果予測回路２８は、メモリ２のトランケーションテーブル８ではなく、メモリ３（予測用テーブル）３０に格納された予測用テーブルを使用する。図１１は、予測用テーブルの例を示し、図１２は、この例での選択結果予測の動作フローを示している。図１１に示されるように、予測用テーブルは、Ｃ＝１、２、３、ＳＢ＝５ＬＬ〜３ＨＨの各サブバンドでの破棄するパスが記述されており、前後する２つのテーブル間では、いずれかのサブバンドで、破棄するパス数の値が必ず１違う。また、メモリ２に格納されているトランケーションテーブルと、Ｃ＝１、２、３、ＳＢ＝５ＬＬ〜３ＨＨの破棄するパス数が同じで、且つ、番号が最も小さいテーブルの番号（ＴＡ）も記載されている。
【００５７】
図１２に示す選択結果予測の動作フローに対して、追加される変数は以下の通りである。
【表４】
2010219914.tif 000006
【００５８】
最終的に選択されたテーブルに記載されているＴＡの値を使って、メモリ２に格納されているトランケーションテーブル８を読み込み（ＴＰＢ←ＴＢＬ（ＴＡＢ））（Ｓ１２２６）、以降に符号化するサブバンドで破棄されるパス数としている（Ｔｓｕｂ（Ｃ，ＳＢ）←ＴＰＢ（Ｃ，ＳＢ））（Ｓ１２２８）。また、図１３のようにＴＡの値の記述が無い予測用テーブルも使用することができる。このとき、最終的に選択されたテーブルに記載されている各コンポーネントの３ＨＨの破棄されるパス数を、以降に符号化するサブバンドで破棄されるパス数とすればよい。
【００５９】
更に、選択結果予測でテーブルを使用する代わりに、予め与えられた計算式を使って、破棄されるパス数を近似的に計算して予測値を求めることも可能である。図１４は、この方法による選択結果予測を行う、画像符号化装置のブロック図である。また、図１５は、図１４に示す画像符号化装置における選択結果予測の動作フローを示す。この例では、図１６（１）に示す
ｙｔ＝Ｋ×（ｘ−１０）＋ｔ      （ｔ＝１、２、３・・・）
という直線式と、図１６（２）の整数化演算式を用いて選択結果予測を行う。図１６（１）において、“Ｋ”は直線の傾きを示し、所定の値が与えられるとする。また、図１６（２）における“ｆｌｏｏｒ［ｙｉ］”は、“ｙｉ”を超えない最大の整数を表す。ただし、ここでは説明を簡単にするために、コンポーネントをＹのみとしている。Ｙｔ（ＳＢ）は破棄されるパス数であり、ｔ＝１、２、・・・とインクリメントすることで、ＳＢが同じでも破棄されるパス数が大きくなる。
【００６０】
図１５に示す動作フローにおいて、初期化後の基本的なフローは以下のとおりである。
［１］計算式としてＹｔ（ＳＢ）を使用する。
［２］いずれかのサブバンドでＴＰ（ＳＢ）とＹｔ（ＳＢ）の値に差がないかを確認する（Ｓ１５１０）。
［３］ＴＰとＹｔで差がある場合（Ｓ１５１０・ＹＥＳ）、
［３−１］差のあるサブバンドのＹｔ（ＳＢ）をＴＰ（ＳＰ）、ＣＰとする（Ｓ１５１２）。
［３−２］Ｑから該当するパスのパス毎の符号削減量（Σｌｅｎ（ＳＢ、ＣＰ））を引く（Ｓ１５１４）。
［３−３］Ｑと予測符号量（Ｎｓｕｂ）を比較し（Ｓ１５１６）、Ｑの方が小さければ（Ｓ１５１６・ＮＯ）ＴＰＢの値をＴｓｕｂに設定し処理を終了する。
［３−４］Ｑの方が大きい場合（Ｓ１５１６・ＹＥＳ）、下記［４］に移る。
［４］ＴＰとＴＰＢで差がない場合（Ｓ１５１０・ＮＯ）、あるいは、（３−４）でＱの方が大きかった場合（Ｓ１５１６・ＹＥＳ）、
［４−１］ＳＢ≠１なら、ＳＢをデクリメントして（Ｓ１５２０）、上記［１］に戻る。
［４−２］ＳＢ＝１であり、すでにｔが最大値（Ｔｍａｘ）である場合（Ｓ１５２２・ＹＥＳ）は処理を終了し、それ以外の場合（Ｓ１５２２・ＮＯ）はｔをインクリメントして（Ｓ１５２４）上記［１］に戻る。
【００６１】
以降、予測値（符号化するサブバンドで破棄されるパス）は、Ｙｔ−１（ＳＢ）を計算式とし、ＳＢ＝１１（２ＨＬ）、１２（２ＬＨ）、・・・１６（１ＨＨ）を計算することで求められる。
【符号の説明】
【００６２】
２・・・メモリ、１２・・・ウエーブレット変換部、１６・・・符号量算出部、１８・・・レートコントロール回路部、２０・・・パケット生成回路、２２・・・符号形成部、２４・・・符号化制御部、２６・・・ＭＱ符号化部、２８・・・選択結果予測回路。
【先行技術文献】
【特許文献】
【００６３】
【特許文献１】特許第４０６４２７９号公報
【特許文献２】特許第４０００３６２８号公報
【特許文献３】特開２００５−１６７６１１号公報
【図１】
2010219914.tif 000007
【図２】
2010219914.tif 000008
【図３】
2010219914.tif 000009
【図４】
2010219914.tif 000010
【図５】
2010219914.tif 000011
【図６】
2010219914.tif 000012
【図７】
2010219914.tif 000013
【図８】
2010219914.tif 000014
【図９】
2010219914.tif 000015
【図１０】
2010219914.tif 000016
【図１１】
2010219914.tif 000017
【図１２】
2010219914.tif 000018
【図１３】
2010219914.tif 000019
【図１４】
2010219914.tif 000020
【図１５】
2010219914.tif 000021
【図１６】
2010219914.tif 000022
【図１７】
2010219914.tif 000023
【図１８】
2010219914.tif 000024
【図１９】
2010219914.tif 000025
【図２０】
2010219914.tif 000026
【図２１】
2010219914.tif 000027
【図２２】
2010219914.tif 000028
【図２３】
2010219914.tif 000029
【図２４】
2010219914.tif 000030
【図２５】
2010219914.tif 000031