(57)【特許請求の範囲】
【請求項１】
可逆ウェーブレット変換処理，コンテキストモデル処理、及びＦＳＭ符号化復号化処理によって画像データ等の２次元データの符号化復号化を行い、コンテキストモデル処理においてビットシグニフィカンス埋め込みを行い、コンテキストモデル処理のビットプレーン内の処理が２×８のデータブロックを単位とした順序処理となり、現在のデータブロックに対して全てのデータが０であるか否かの第１の判断を行い、第１の判断の結果が偽のときに、現在のデータブロック内のデータをチャイルドベース順に順次ターゲットとし、現在のターゲットに対してヘッドビットであるか否かの第２の判断を行い、前記第２の判断の結果が真のときに、第１グループのコンテキストを出力した後に、現在のターゲットがサインビットであるか否かの第３の判断を行い，前記第３の判断の結果が真のときに、第２グループのコンテキストを出力した後に、現在のデータブロックの全データの処理が終了したか否かの第４の判断を行い、前記第３の判断の結果が偽のときにはただちに前記第４の判断を行い，前記第２の判断の結果が偽のときには第３グループのコンテキストを出力した後に前記第４の判断を行い、前記第４の判断の結果が偽ときには現在のターゲットの次のデータを改めて現在のターゲットとして前記第２の判断に戻り、前記第４の判断の結果が真のときには、現在のビットプレーン内の全データの処理が終了したか否かの第５の判断を行い、前記第５の判断の結果が偽のときには現在のビットプレーン内の次の２×８のデータブロックを改めて現在のデータブロックとして前記第１の判断に戻り、前記第５の判断の結果が真のときに次のビットプレーンの処理に移る構成の符号化復号化装置において、
現在のデータブロックの全てのデータに対する前記第１、第２及び第３の判断並びに前記第１、第２及び第３グループのコンテキストの決定のために必要な全てのデータを一時的に蓄えるためのバッファレジスタと、前記第４の判断の結果が偽であることをカウントアップ条件として動作するターゲットカウンタと、前記ターゲットカウンタのカウント値に従って、前記バッファレジスタに蓄積されているデータより前記第１、第２及び第３グループのコンテキストの決定並びに前記第１、第２及び第３の判断に必要なデータを抽出するためのデータ抽出装置とを備え、前記第４の判断及び前記第５の判断は前記ターゲットカウンタのカウント値をもとに行われることを特徴とする符号化復号化装置。
【請求項２】
可逆ウェーブレット変換処理，コンテキストモデル処理、及びＦＳＭ符号化復号化処理によって画像データ等の２次元データの符号化復号化を行い、コンテキストモデル処理においてビットシグニフィカンス埋め込みを行い、コンテキストモデル処理のビットプレーン内の処理が２×８のデータブロックを単位とした順序処理となり、現在のデータブロックに対して全てのデータが０であるか否かの第１の判断を行い、第１の判断の結果が偽のときに、現在のデータブロック内のデータをチャイルドベース順に順次ターゲットとし、現在のターゲットに対してヘッドビットであるか否かの第２の判断を行い、前記第２の判断の結果が真のときに、第１グループのコンテキストを出力した後に、現在のターゲットがサインビットであるか否かの第３の判断を行い，前記第３の判断の結果が真のときに、第２グループのコンテキストを出力した後に、現在のデータブロックの全データの処理が終了したか否かの第４の判断を行い、前記第３の判断の結果が偽のときにはただちに前記第４の判断を行い，前記第２の判断の結果が偽のときには第３グループのコンテキストを出力した後に前記第４の判断を行い、前記第４の判断の結果が偽ときには現在のターゲットの次のデータを改めて現在のターゲットとして前記第２の判断に戻り、前記第４の判断の結果が真のときには、現在のビットプレーン内の全データの処理が終了したか否かの第５の判断を行い、前記第５の判断の結果が偽のときには現在のビットプレーン内の次の２×８のデータブロックを改めて現在のデータブロックとして前記第１の判断に戻り、前記第５の判断の結果が真のときに次のビットプレーンの処理に移る構成の符号化復号化装置において、
現在のデータブロックの全てのデータに対する前記第１、第２及び第３の判断並びに前記第１、第２及び第３グループのコンテキストの決定のために必要な全てのデータを一時的に蓄えるためのバッファレジスタと、前記第４の判断の結果が偽であることをカウントアップ条件として動作するターゲットカウンタと、前記ターゲットカウンタのカウント値に従って、前記バッファレジスタに蓄積されているデータより前記第１及び第３グループのコンテキストの決定並びに前記第１及び第３の判断に必要なデータを抽出するためのデータ抽出装置と、前記第２の判断の直後であることをカウントアップ条件として動作する第２判断カウンタと、前記第２判断カウンタのカウント値に従って、前記バッファレジスタに蓄積されているデータより前記第２の判断に必要なデータを抽出するための第２判断データ抽出装置とを備え、前記第４の判断及び前記第５の判断は前記ターゲットカウンタのカウント値をもとに行われることを特徴とする符号化復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データなどの２次元データの符号化復号化装置に係り、特に、可逆ウェーブレット変換を利用する符号化復号化装置に関する。
【０００２】
【従来の技術】
可逆ウェーブレット変換を利用する符号化復号化装置として、図１に示すように、可逆ウェーブレット変換部１による可逆ウェーブレット変換処理、コンテキストモデル部３によるコンテキストモデル処理、及び、ＦＳＭコーダ４によるＦＳＭ符号化復号化処理によって、画像データ等の符号化復号化を行い、また、コンテキストモデル処理において、ビットシグニフィカンス埋め込みを行い、かつ、コンテキストモデル処理のビットプレーン内の処理が、２×８のデータのブロックを単位とした、図２に示すような内容の順序処理となる方式の符号化復号化装置が知られている。ＦＳＭコーダ４は、有限ステートマシン（ＦＳＭ）を利用したエントロピー符号化復号化器である。可逆ウェーブレット変換部１と、コンテキストモデル部３及びＦＳＭコーダ４とは独立して動作するため、一般に、可逆ウェーブレット変換部１とコンテキストモデル部３との間にメモリ２を介在させ、このメモリ２を介してデータを交換する構成とされる。
【０００３】
図２は、コンテキストモデル処理におけるビットプレーン内処理のステートマシンを示す。図３は、ビットプレーン内の２×８のデータブロックの処理順を説明するための図であり、図中の２０１，２０２，２０３，２０５，２０５，．．．はそれぞれ２×８のデータブロックであって、その番号の若い順に処理される。各データブロック内の各データはチャイルドベース順と呼ぶ順番で順次ターゲットとなる。図４は、このチャイルドベース順を表しており，図中の１，２，３，４，．．．の番号がターゲットとなる順番を示している。図５は、図２中の第１グループのコンテキスト処理（Ｐ１）で参照されるターゲットの周辺データの位置関係を示す図であり、図中、Ｔがターゲットのデータである。以下、図３乃至図５を必要に応じて参照しながら、図２に沿ってコンテキストモデル処理のビットプレーン内処理について説明する。
【０００４】
あるビットプレーンの処理が開始すると、最初に図３に示したデータブロック２０１が処理の対象となる。まず、現在のデータブロック内の全てのデータが０である可能性があるか否かの第１の判断が行われる（Ｄ１）。この第１の判断には現在のデータブロックの周辺のデータ等が用いられる。第１の判断の結果が真の場合（全て０の可能性がある場合）はルックアヘッド（look ahead）処理が行われ、データブロック２０１のデータが必要となる。第１の判断の結果が偽の場合には、現在のデータブロック内の各データがチャイルドベース順に順次ターゲットとなる。すなわち、図４の番号１の位置のデータが最初のターゲットとなる。そして、現在のターゲットに対し、そのデータがヘッドビットであるか否かの第２の判断が行われる（Ｄ２）。第２の判断の結果が真の場合（ヘッドビットである場合）には、第１グループのコンテキスト処理が行われて第１グループのコンテキストが出力される（Ｐ１）。この第１グループのコンテキスト処理において、ターゲットのコンテキストを決定するために周辺データが参照される。例えば、図５に示すＮＷ，Ｎ，Ｗ，Ｅ，Ｓの位置の周辺データが必要とされる。第１グループのコンテキスト処理が終わると、現在のターゲットがサインビットであるか否かの第３の判断が行われる（Ｄ３）。この第３の判断ではターゲットのデータが用いられる。第３の判断の結果が真の場合（サインビットである場合）には、ターゲットのデータを用いて第２グループのコンテキスト処理が行われて、第２グループのコンテキストが出力される（Ｐ２）。第２の判断（Ｄ２）の結果が偽の場合には、ターゲットのデータを用いて第３グループのコンテキスト処理が行われて第３グループのコンテキストが出力される（Ｐ３）。第２グループのコンテキスト処理（Ｐ２）の後、第３グループのコンテキスト処理（Ｐ３）の後、又は、第３の判断（Ｄ３）の結果が偽となった時に、現在のデータブロック内の全てのデータの処理が終了したか否かの第４の判断が行われる（Ｄ４）。この第４の判断の結果が偽の場合（終了前の場合）には、チャイルドベース順に従いターゲットが一つ移動して第２の判断（Ｄ２）から処理が繰り返される。例えば、図４の番号２の位置のデータがターゲットとなり、同様の処理が行われる。最終的に図４の番号１６の位置までターゲットが順次移動し、そのターゲットに対する処理が終わった段階で第４の判断（Ｄ４）の結果が真になる。第４の判断の結果が真の場合、現在のビットプレーン内の全てのデータの処理が終了したか否かの第５の判断が行われる（Ｄ５）。この第５の判断の結果が偽の場合（終了前の場合）には、現在のビットプレーン内の次のデータブロックが処理対象となり、第１の判断（Ｄ１）から処理が繰り返される。例えば、図３のデータブロック２０１の処理が終わった段階では第５の判断の結果は偽となるので、次のデータブロック２０２を対象として処理が繰り返される。現在のビットプレーン内の最後のデータブロックまで処理が終わると，第５の判断の結果が真となり、現在のビットプレーンの処理を終了し、次のビットプレーンの処理に移行する。
【０００５】
以上のような処理を行う構成の符号化復号化装置に関する公知文献としては、特開平８−１１６２６５号公報、特開平９−１２１１６８号公報などがある。
【０００６】
【発明が解決しようとする課題】
上に述べたような処理を行う符号化復号化装置は演算装置（ＣＰＵ、ＤＳＰ等）を利用して実現されているが、それぞれの判断やコンテキスト処理で利用するデータが異なるため、処理に数クロックの時間を必要としていた。また、図４に示すようにターゲットが順に切り替わっていく過程で、例えば番号１の位置がターゲットの時の周辺データＥと、番号４の位置がターゲットの時の周辺データＮと、番号５の位置がターゲットの時の周辺データＷのように、同一座標のデータであっても、図２に示したような複数の処理ステップが介在するため、演算装置では、そのデータを繰り返し取りこむ必要があり、メモリアクセスの無駄が多い。その結果、画像全体に対するコンテキストの生成に非常に時間がかかるという問題があった。
【０００７】
本発明の目的は、上に述べたようなコンテキスト生成にかかわる問題点を改善し、より高速処理の可能な符号化復号化装置を提供することにある。
【０００８】
【課題を解決するための手段】
請求項１の発明は、前述したような構成の符号化復号化装置において、現在のデータブロックの全てのデータに対する前記第１、第２及び第３の判断並びに前記第１、第２及び第３グループのコンテキストの決定のために必要な全てのデータを一時的に蓄えるためのバッファレジスタと、前記第４の判断の結果が偽であることをカウントアップ条件として動作するターゲットカウンタと、前記ターゲットカウンタのカウント値に従って、前記バッファレジスタに蓄積されているデータより前記第１、第２及び第３グループのコンテキストの決定並びに前記第１、第２及び第３の判断に必要なデータを抽出するためのデータ抽出装置とを設け、また、前記第４の判断及び前記第５の判断を前記ターゲットカウンタのカウント値をもとに行うことを特徴とするものである。
【０００９】
請求項２の発明は、前述したような構成の符号化復号化装置において、現在のデータブロックの全てのデータに対する前記第１、第２及び第３の判断並びに前記第１、第２及び第３グループのコンテキストの決定のために必要な全てのデータを一時的に蓄えるためのバッファレジスタと、前記第４の判断の結果が偽であることをカウントアップ条件として動作するターゲットカウンタと、前記ターゲットカウンタのカウント値に従って、前記バッファレジスタに蓄積されているデータより前記第１及び第３グループのコンテキストの決定並びに前記第１及び第３の判断に必要なデータを抽出するためのデータ抽出装置と、前記第２の判断の直後であることをカウントアップ条件として動作する第２判断カウンタと、前記第２判断カウンタのカウント値に従って、前記バッファレジスタに蓄積されているデータより前記第２の判断に必要なデータを抽出するための第２判断データ抽出装置とを設け、また，前記第４の判断及び前記第５の判断を前記ターゲットカウンタのカウント値をもとに行うことを特徴とするものである。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態を図２乃至図１１を参照して説明する。
【００１１】
《第１の実施例》
本発明の第１の実施例によれば、図６に示すように、コンテキストモデル処理の高速化のためのハードウェアとして、バッファレジスタ６００、ターゲットカウンタ６０１及びデータ抽出装置６０２がコンテキストモデル部３に設けられる。また図６において、Ｐ１，Ｐ２，Ｐ３は図２中の各コンテキスト処理、Ｄ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５は図２中の各判断にそれぞれ対応し，これらの処理及び判断はコンテキストモデル部３を構成している演算装置（又は専用のハードウェア）によって扱われるものである。
【００１２】
本実施例では、ビットプレーンのサイズが６４×６４であり、第１グループのコンテキスト処理（Ｐ１）で必要となるデータが図４に示すようなデータであり、第２グループのコンテキスト処理（Ｐ２）、第３グループのコンテキスト処理（ｐ３）、第２の判断（Ｄ２）、第３の判断（Ｄ３）で必要となるデータがターゲットのデータであり、また、第１の判断（Ｄ１）では、図７に網掛けして示す２×８のデータブロックを処理対象とした時に、図中の番号５０２〜５０９で示す位置のデータも使用されることを想定している。図７に示す全データは、一括してメモリ（図１のメモリ２）よりバッファレジスタ６００に取りこまれる。
【００１３】
バッファレジスタ６０１は、現在のデータブロックに対する第１、第２、第３グループのコンテキスト処理（Ｐ１，Ｐ２，Ｐ３）、第１，第２、第３の判断（Ｄ１，Ｄ２，Ｄ３）に必要な全てのデータ、すなわち図７に示した全てのデータを蓄積し、その全データを並列出力できるものであり、例えばシフトレジスタ等によって構成される。ターゲットカウンタ６０１は、第４の判断（Ｄ４）の結果が偽であることを条件としてクロックの立ち上がりエッジでカウントアップするカウンタである。このターゲットカウンタ６０１のカウント値の上位８ビットは第５の判断（Ｄ５）に利用され、下位４ビットはデータ抽出装置６０２に入力されるとともに第４の判断（Ｄ４）に利用される。
【００１４】
データ抽出装置６０２は、バッファレジスタ６００より図７に示した全データが入力され、ターゲットカウンタ６０１のカウント値の下位４ビット値に応じて，各コンテキスト処理、第１、第２及び第３の判断に必要なデータを入力データより抽出して出力する装置である。ターゲットカウンタ６０１のカウント値の下位４ビット値と抽出されるデータとの関係を図８に表として示す。例えば、カウント値の下位４ビット値が０の場合、第２グループのコンテキスト処理（Ｐ２）、第３グループのコンテキスト処理（Ｐ３）、第１の判断（Ｄ１）、第２の判断（Ｄ２）、第３の判断（Ｄ３）に対するターゲットとして図７中の番号１の位置のデータが出力され、また、図７中の番号５０１，５０２，５１０，２，３の位置の各データが第１グループのコンテキスト処理（Ｐ１）に対するＮＷ，Ｎ，Ｗ，Ｅ，Ｓの各データとして出力される。第１の判断（Ｄ１）に対するデータとしては、図７中の番号１〜１６、５０２〜５０９の位置のデータが、ターゲットカウンタ６０１のカウント値に関係なく出力される。
【００１５】
図２における第２の判断（Ｄ２）から第４の判断（Ｄ４）までの処理ループで、ターゲットが図７中の番号１の位置から番号４の位置まで移動する期間の動作タイミング例を図９に示す。図９に見られるように、ターゲットカウンタ６０１のカウント値は、クロックの立ち上がりエッジで、第４の判断（Ｄ４）の結果が偽となったことを条件にカウントアップする。カウント値が０の時、すなわちターゲットが図７中の番号１の位置の時に、第２の判断（Ｄ２）が実行され、その結果、関連したロジック等の遅延の後にコンテキストが確定する。次のクロックの立ち上がりで、第２の判断（Ｄ２）で使われた同一のターゲットに対して第３の判断（Ｄ３）及び第４の判断（Ｄ４）が実行される。ここで第４の判断（Ｄ４）の結果が偽であり次のターゲットを処理するために、ターゲットカウンタ６０１のカウント値が１に増加し、ターゲットが図７中の番号２の位置へ移動する。このターゲットの移動を受けて、この新たなターゲットに対し第２の判断（Ｄ２）が実行される。このような動作が繰り返され、図２に示した第２の判断（Ｄ２）から第４の判断（Ｄ４）までの処理ループが実行される。
【００１６】
図２中の第１の判断（Ｄ１）は、図７に示した番号５０２〜５０９、１〜１６の位置のデータがバッファレジスタ６００から供給されていて、ビットプレーンの処理開始又は第５の判断（Ｄ５）の結果が偽であることを条件に、次のデータブロックに処理対象が変化するたびに確定し実行される。６４×６４のビットプレーンは、２×８のデータブロックが２５６個集まったものであるから、第５の判断（Ｄ５）は、ターゲットカウンタ６０１のカウント値の上位６ビット値に基づいて行われる。
【００１７】
このように、チャイルドベース順の処理で使用される可能性のあるデータを一括してバッファレジスタ６００に取りこみ、必要なデータをバッファレジスタ６０１より抽出することにより、全ての判断とコンテキスト処理を並列的に実行可能となり、かつ、データ取りこみのための無駄なメモリアクセスを排除できるため、画像全体のコンテキストの生成に要する時間を大幅に短縮し、符号化復号化を高速化することができる。
【００１８】
《第２の実施例》
本発明の第２の実施例によれば、図１０に示すように、コンテキストモデル処理の高速化のためのハードウェアとして、前記第１の実施例と同様なバッファレジスタ６００、ターゲットカウンタ６０１、データ抽出装置６０２に加えて，第２の判断に専用の第２判断カウンタ７０１と第２判断データ抽出装置７０２がコンテキストモデル部３に設けられる。第２判断カウンタ７０１は、第２の判断の直後であることをカウントアップ条件として動作するものであり、そのカウント値は第２判断データ抽出装置７０２に与えられる。第２判断データ抽出装置７０２は、バッファレジスタ６００より図７に示す番号１〜１６のデータを入力され、第２判断カウンタ６０１のカウント値に従って入力データより第２の判断（Ｄ２）のためのターゲットデータを抽出して出力する。第２判断カウンタ７０１のカウント値と、第２判断データ抽出装置７０２により出力されるターゲットデータとの関係は、図８に示した「カウント値」と「ターゲット」との関係と同様である。これ以外の構成は、前記第１の実施例と同様である。
【００１９】
図２における第２の判断（Ｄ２）から第４の判断（Ｄ４）までの処理ループで、ターゲットが図７中の番号１の位置から番号６の位置まで移動する期間の動作タイミングを図１１に示す。第２判断カウンタ７０１は第２の判断の直後であることをカウントアップ条件として動作するのに対し、ターゲットカウンタ６０１のカウントアップ条件は第４の判断の結果が偽であることであるため、第２判断カウンタ７０１はターゲットカウンタ６０１よりも早いエッジで動作しはじめる。したがって、例えば図７に示す番号１の位置のデータがデータ抽出装置６０２よりターゲットとして出力されて第３の判断（Ｄ３）と第４の判断（Ｄ４）が実行される時に、次のターゲットすなわち番号２の位置のデータが第２判断データ抽出装置７０２より出力されて第２の判断（Ｄ２）が実行される。つまり、現在のターゲットに対する第３の判断及び第４の判断と、次に来るターゲットに対する第２の判断とを同時に実行できるため、毎クロックのエッジでコンテキストの出力が可能となる。このように、２つのターゲットに対する判断を並列に行うことにより、前記第１の実施例以上に高速な処理が可能になる。
【００２０】
【発明の効果】
詳細に説明したように、請求項１及び２の発明によれば、各判断及び各コンテキスト処理の並列化と無駄なメモリアクセスの排除によりコンテキスト生成に要する時間を減らし、符号化復号化装置の処理速度を高速化することができる。請求項２の発明によれば、さらに複数のターゲットに対する判断を並列化し、コンテキスト生成に要する時間をより一層削減し、符号化復号化装置のさらなる高速化が可能になる等の効果を得られる。
【図面の簡単な説明】
【図１】本発明に係る符号化復号化装置の一般的な全体構成を示すブロック図である。
【図２】コンテキストモデル処理におけるビットプレーン内処理のステートマシンを示す図である。
【図３】ビットプレーン内の各データブロックとその処理順を示す図である。
【図４】データブロック内のデータの処理順（チャイルドベース順）を示す図である。
【図５】ターゲットデータとその周辺データの位置関係を示す図である。
【図６】本発明の第１の実施例の構成を示すブロック図である。
【図７】バッファレジスタに一括して取りこまれるデータを示す図である。
【図８】データ抽出装置により抽出されるデータとターゲットカウンタのカウント値との対応関係を示す図である。
【図９】動作説明のためのタイミング図である。
【図１０】本発明の第２の実施例の構成を示すブロック図である。
【図１１】動作説明のためのタイミング図である。
【符号の説明】
１  可逆ウェーブレット変換部
２  メモリ
３  コンテキストモデル部
４  ＦＳＭコーダ
６００  バッファレジスタ
６０１  ターゲットカウンタ
６０２  データ抽出装置
７０１  第２判断カウンタ
７０２  第２判断データ抽出装置
【図１】
0003650920.tif 000002
【図２】
0003650920.tif 000003
【図３】
0003650920.tif 000004
【図４】
0003650920.tif 000005
【図５】
0003650920.tif 000006
【図６】
0003650920.tif 000007
【図７】
0003650920.tif 000008
【図８】
0003650920.tif 000009
【図９】
0003650920.tif 000010
【図１０】
0003650920.tif 000011
【図１１】
0003650920.tif 000012