(57)【要約】      （修正有）【課題】ウェーブレット・データのゼロツリー符号化のための方法及び装置を提供する。【解決手段】プロセッサ１１２は、各ウェーブレット係数を順序付けられたビットの集合として表わし、さらに、プロセッサ１１２は、前記順列に関連するゼロツリー・ルートを示す各順列のビットを符号化する。【選択図】図２
2006191557.tif 000002
【特許請求の範囲】
【請求項１】
各ビット順列が各ウェーブレット係数のビットの１つに関連付けられるように、各ウェーブレット係数のビットが別のビット順列と関連付けられている、画像を示すウェーブレット係数を提供すること、
前記各ビット順列のために、関連するビットを符号化して、前記ビット順列に関連付けされたゼロツリー・ルートを示すこと、
を含むことを特徴とする方法。
【請求項２】
前記ビットを符号化する動作が、
どのビットがゼロを示すかを決定すること、
各ゼロを、分離したゼロ又はゼロツリー・ルートのどちらかに分類すること、を含むことを特徴とする請求項１に記載の方法。
【請求項３】
いくつかのウェーブレット係数がいくつかの他のウェーブレット係数の子孫であり、前記どのビットがゼロを示すかを決定する動作が、
子孫ツリーを、前記いくつかのウェーブレット係数の１つに関連付けされたビットから、前記他のウェーブレット係数に関連付けされたビットに移動して、ゼロツリー・ルートを配置すること、
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記ウェーブレット係数を提供する動作が、
各レベルが画像の異なる解像度に関連付けされている、異なるレベルのコードを生成すること、
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
低解像度に関連付けされたレベルが、上位順位に関連付けされていることを特徴とする請求項４に記載の方法。
【請求項６】
前記ウェーブレット係数を提供する動作が、
画像のピクセル輝度を示す輝度レベル係数を提供すること、
輝度レベル係数をウェーブレット・サブバンドに変換すること、
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
プロセッサ・ベースのシステムにより読出し可能な記憶媒体を備える装置であって、
命令が格納されている記憶媒体により、プロセッサが、
各ビット順列が各ウェーブレット係数のビットの１つに関連付けられるように、各ウェーブレット係数のビットが別のビット順列と関連付けられている、画像を示すウェーブレット係数を提供し、
前記各ビット順列のために、関連するビットを符号化して、前記ビット順列に関連付けされたゼロツリー・ルートを示すこと、
を特徴とする装置。
【請求項８】
命令を含んでいる記憶媒体により、前記プロセッサが、
どのビットがゼロを示すかを決定し、かつ
各ゼロを、分離したゼロ又はゼロツリー・ルートのどちらかに分類すること、を特徴とする請求項７に記載の装置。
【請求項９】
いくつかのウェーブレット係数がいくつかの他のウェーブレット係数の子孫であり、命令を含んでいる記憶媒体により、前記プロセッサが、
子孫ツリーを、前記いくつかのウェーブレット係数の１つに関連付けされたビットから、前記他のウェーブレット係数に関連付けされたビットに移動して、ゼロツリー・ルートを配置すること、
を特徴とする請求項８に記載の装置。
【請求項１０】
命令を含んでいる記憶媒体により、前記プロセッサが、
各レベルが画像の異なる解像度に関連付けされている、異なるレベルのコードを生成することを特徴とする請求項７に記載の装置。
【請求項１１】
低解像度に関連付けされたレベルが、上位順位に関連付けされることを特徴とする請求項１０に記載の装置。
【請求項１２】
プロセッサと、
プログラムを格納するメモリと、
を備え、
前記プログラムによりプロセッサが、
各ビット順列が各ウェーブレット係数のビットの１つに関連付けられるように、各ウェーブレット係数のビットが別のビット順列と関連付けられている、画像を示すウェーブレット係数を提供し、
前記各ビット順列のために、関連するビットを符号化して、前記ビット順列に関連付けされたゼロツリー・ルートを示すこと、
を特徴とするコンピュータ・システム。
【請求項１３】
前記プログラムにより、前記プロセッサが、
どのビットがゼロを示すかを決定し、さらに各ゼロを、分離したゼロ又はゼロツリー・ルートのどちらかに分類することによりビットを符号化すること、
を特徴とする請求項１２に記載のコンピュータ・システム。
【請求項１４】
いくつかのウェーブレット係数がいくつかの他のウェーブレット係数の子孫であって、前記プロセッサが、子孫ツリーを、前記いくつかのウェーブレット係数の１つに関連付けされたビットから、前記他のウェーブレット係数に関連付けされたビットに移動して、ゼロツリー・ルートを配置することにより、どのビットがゼロであるかを決定することを特徴とする請求項１３に記載のコンピュータ・システム。
【請求項１５】
前記プログラムにより、前記プロセッサが、各レベルが画像の異なる解像度に関連付けされている異なるレベルのコードを生成することによってウェーブレット係数を提供することを特徴とする請求項１２に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ウェーブレット係数のゼロツリー符号化（zerotree encoding）のようなウェーブレット・データのゼロツリー符号化のための方法及び装置に関する。
【背景技術】
【０００２】
データ圧縮は、一般に、データ・セットから冗長情報を除去して、より小さいサイズの別のデータ・セットを生成する。この小型サイズは、例えば、バス又はネットワークを介してデータを送信する目的としては有益である。
【０００３】
例えば、画像のピクセル輝度は係数のセットにより示すことができ、これらの係数はディジタル画像データにより表わすことができる。画像データを圧縮する目的のために、データが変換されて冗長情報が明らかにされ得る。すなわち、冗長情報がデータ圧縮により除去され得る。例えば、画像データは、ウェーブレット変換によって変換できる。このウェーブレット変換は、画像を、周波数サブバンドと呼ばれる空間的にフィルタをかけられた画像に効果的に分割する変換である。このようにして、サブバンドは圧縮技術により除去できる冗長情報の有意な量を明らかにできる。
【０００４】
図１を参照すると、例えば、画像１２のピクセル輝度を示す画像データにウェーブレット変換を実行することにより、画像１２をサブバンドに分割する。この変換の特性により、サブバンドは異なる分割レベル（例えば、レベル１４，１６，１８）内に現われる。この方法で、オリジナル画像１２を第１分割レベル１４のサブバンド１４ａ，１４ｂ，１４ｃ，及び１４ｄに分割するには、１次元離散ウェーブレット変換（ＤＷＴ）を行方向及び列方向に適用する。１つの１次元ＤＷＴでは、最初に信号（例えば、行方向）をローパス・フィルタにかけ、そのフィルタをかけられた代替出力を投入することによりサブサンプル化して、オリジナル信号の半分のサイズである低周波数サブバンド（Ｌ）を生成する。次に、同一信号をハイパス・フィルタにかけ、同様にサブサンプル化してオリジナル信号の半分のサイズである高周波数サブバンド（Ｈ）を生成する。１つの同一の１次元操作をＬサブバンドの列方向に適用すると、２つのサブバンドＬＬとＬＨとが生成される。同様に、同一の１つの１次元操作をＨサブバンドの列方向に適用すると、２つのサブバンドＨＬとＨＨサブバンドとが生成される。２次元離散ウェーブレット変換後の結果として、オリジナル画像１２は、４つのサブバンド、すなわちＬＬサブバンド１４ａ，ＬＨサブバンド１４ｂ，ＨＬサブバンド１４ｃ，及びＨＨサブバンド１４ｄに分割される。これらのサブバンドの各々の行及び列のサイズは、サブサンプル化操作によりオリジナル画像の行及び列のサイズの半分である。これらのサブバンドの値は、ウェーブレット係数と呼ばれるものであり、かくしてサブバンドをウェーブレット係数の組合わせマトリックスにより表わすことができる。
【０００５】
ＬＬサブバンド１４ａは、画像１２の水平及び垂直方向の低周波数情報を示しており、そのバンドは、オリジナル画像１２のサブサンプル・バージョンに過ぎないため、一般に画像１２に現われる情報の有意の量を表している。ＬＨサブバンド１４ｂは水平方向の低周波数情報及び垂直方向の高周波数情報、すなわち水平辺の情報を示している。ＨＬサブバンド１４ｃは水平方向の高周波数情報及び垂直方向の低周波数情報、すなわち垂直辺の情報を示している。ＨＨサブバンド１４ｄは水平方向の高周波数情報及び垂直方向の高周波数情報、すなわち対角辺の情報を示している。
【０００６】
ＬＬサブバンド１４ａは、オリジナル画像のサブサンプル・バージョンに他ならないため、オリジナル画像の空間特性を維持している。結果として、さらに同一ＤＷＴ分割を適用し、垂直及び水平方向の両方にＬＬサブバンド１４ａの半分の解像度を有する４つのサブバンド、すなわちＬＬサブバンド１６ａ，Ｈサブバンド１６ｂ，ＨＬサブバンド１６ｃ，及びＨＨサブバンド１６ｄを生成できる。従って、ＬＬサブバンド１６ａもＬＬサブバンド１４ａのサブサンプル・バージョンである。従って、ＬＬサブバンド１６ａは、さらに、垂直及び水平の両方向にＬＬサブバンド１６ａの半分の解像度である４つのサブバンド、すなわちＬＬサブバンド１８ａ，ＬＨサブバンド１８ｂ，ＨＬサブバンド１８ｃ，及びＨＨサブバンド１８ｄに分割できる。
【０００７】
下位の分割レベルのサブバンドは、上位の分割レベルの対応するサブバンドに比べて、より詳細にオリジナル画像１２の情報を示す（すなわち、サブバンドは、画像１２の高解像度バージョンである）。例えば、ＨＨサブバンド１８ｄ（ＨＨサブバンド１６ｄの親）は、ＨＨサブバンド１６ｄ（ＨＨサブバンド１８ｄの子）に比べてより粗いデテールでオリジナル画像１２の情報を示し、ＨＨサブバンド画像１４ｄ（ＨＨサブバンド１８ｄの別の子孫）は、ＨＨ１６ｄ及び１８ｄサブバンドに比べてより詳細なデテールでオリジナル画像１２の情報を示す。このように、ＨＨサブバンド画像１８ｄのピクセル位置２４は、ＨＨサブバンド１６ｄの４個のピクセル位置２２及びＨＨサブバンド１４ｄの１６個のピクセル位置２０に対応している。
【０００８】
親サブバンドとその子孫との間のピクセル位置の関係により、ゼロツリー符号化と呼ばれる方法を利用して、ゼロツリー・ルートと呼ばれるウェーブレット係数を識別することができる。一般に、ゼロツリー・ルートは、２つの特性、すなわち、係数は有意でない値である、係数の子孫の全ては一定のしきい値に対して有意でない値である、という特性を満たすウェーブレット係数である。従ってこの関係より、一連の有意でない係数を、単一コードにて、オリジナル画像を示すデータのサイズを圧縮する技術により表わすことができる。例として、位置２４に対するウェーブレット係数がゼロツリー・ルートの場合、位置２０，２２，及び２４に対するウェーブレット係数は有意でない値であり、単一コードにより表わすことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
各分割レベルの符号化は、一般に、２つのパス、すなわち、有意な値であると評価されていないウェーブレット係数の主要リストを決定する主要なパスと、有意な値であると決定されたウェーブレット係数の従属リストを決定する従属パスとを含んでいる。従属パスの間に、しきい値を各サブバンドに対して計算し、そのしきい値を使用してサブバンドの係数が有意でないか、又は有意であるかを評価できる。しかし残念ながら、計算が複雑なため、前記の圧縮技術は、例えば対話形ビデオ圧縮アプリケーションのような特定の用途には遅過ぎる。
【００１０】
このように、前述した問題の１つ又は複数に対するアレンジメントの必要性が依然とし存在している。
【００１１】
概要
１つの実施形態における方法は、画像を示すウェーブレット係数を提供し、さらに順序付けされたビットの集合として各ウェーブレット係数を表すことを含んでいる。各々の順列のビットは、符号化され、その順列に関連しているゼロツリー・ルートを示す。
【００１２】
本発明の利点とその他の特長は以下の説明，図面，及び特許請求の範囲から明らかになるであろう。
【発明を実施するための最良の形態】
【００１３】
詳細な説明
図２を参照すると、本発明の実施形態に係る圧縮プログラム１１９により、プロセッサ１１２はビット毎方式でウェーブレット係数を符号化できる。このように、ウェーブレット係数を分類する（例えば、ゼロツリー・ルート又は分離されたゼロとして）代わりに、プロセッサ１１２はコードを生成してウェーブレット係数のビットを分類する。例えば、特定の実施形態では、プロセッサ１１２は、特定のビットをゼロツリー・ルート，分離されたゼロ，ポジティブ・ノード，又はネガティブ・ノードの何れかに分類する。従来のゼロツリー・コード化方式とは異なり、有意でない値を識別するためにしきい値が計算されることがなく、「０」ビットは有意でない値として取り扱われ、「−１」及び「１」ビットは有意な値として取り扱われる。
【００１４】
このように、プロセッサ１１２は特定のビットを分類するために、以下のコードの１つを生成する。ビットが「１」を示す場合にはポジティブ・ノードを表わす「Ｐ」コード、ビットが「−１」を示す場合にはネガティブ・ノードを表わす「Ｎ」コード、「０」ビットがゼロツリー・ルートであることを表わす「Ｒ」コード、「０」ビットが分離されたゼロであることを表わす「ＩＺ」コードである。いくつかの実施形態では、特定のビットは、そのビットが最上位ビットであり、かつ、そのビットが「−１」を示す場合だけ、ネガティブ・ノードとして分類される。例えば、３ビット「−０１１」により表される「−３」の係数に対して、プロセッサ１１２はＮコードを生成し、中間位ビットを表わす。しかし、この例では、プロセッサ１１２はＰコードを生成して最下位ビットを表す。
【００１５】
ウェーブレット係数を提供するために、プロセッサ１１２は、ウェーブレット変換を通して、オリジナル画像のピクセル輝度を表わす係数を分割する。これらのウェーブレット係数は複数の分割レベルに配置されるサブバンドを順に形成する。いくつかの実施形態では、ビットを分類するために、プロセッサ１１２は、プログラム１１９を実行して関連しているビット位置又は順列（オーダー；order）を基にしてビットを処理する。このように、それぞれのビット順列のビットは、階層ツリーを形成し、このツリーではプロセッサ１１２が移動して、ゼロツリー・ルート，分離されたゼロ，ネガティブ・ノード，又はポジティブ・ノードの何れかに、ツリーの各ビットを分類できる。従って、例として、ウェーブレット係数の最上位ビット（このビットはゼロの場合もある）は、１つの階層ツリー（及び１つのビットの順列）に関連付けされ、最上位から２番目のビットは別の階層ツリー（及び別のビット順列）に関連付けされる。
【００１６】
例えば、絶対最大ウェーブレット係数が３ビットで表される（例のような）場合、全てのウェーブレット係数を３ビットで表わすことができる。その結果、この例では、３つの階層ツリーが形成される。このように、プロセッサ１１２はその示された値（すなわち、「−１」，「０」，又は「１」）と、可能な場合には（ビットが「０」を示す場合）関連する階層ツリーの位置とを基準にして各ビットに対するコードを生成する。
【００１７】
いくつかの実施形態では、プロセッサ１１２は、時間の経過と共に連続してオリジナル画像の精細化（すなわち高解像度）バージョンを表わすビット・ストリームによって、Ｐ，Ｎ，ＩＺ，及びＲコードを表わす。例えば、プロセッサ１１２は、ビット「００」を使用して「Ｐ」コードを表わし、ビット「０１」を使用して「Ｎ」コードを表わし、ビット「１０」を使用して「Ｒ」コードを表わし、さらにビット「１１」を使用して「ＩＺ」コードを表わすことができる。なお、他のコード化方式も可能である。ビット・ストリームの進行特性は、プロセッサ１１２がビット順列を処理する順番に帰せられるものである。例えば、いくつかの実施形態では、プロセッサ１１２は、最も重要な第１方式でビット順列を処理する。従って、プロセッサ１１２は、初めに最上位のビット順位を有するビットの全てに対しコードを生成し、その後に最上位から２番目のビット順位であるビットの全てにコードを生成し、以下同様に動作する。この連続する符号化のため、結果として生じたビット・ストリームは、最初にオリジナル画像の粗いバージョンを示す。しかし、プロセッサ１１２が下位のビット順位を有するビットに対しコードを生成すると共に、時間の経過につれて、ビット・ストリームによりさらに精細な画像が表れる。従って、特定の実施形態では、ビット・ストリームにより表わされる画像の解像度は時間と共に向上する。これは、帯域幅の限定されたシステムには望ましい特徴である。結果として、再構築された画像の解像度の低下は、通信帯域幅の減少と関係している。
【００１８】
図３を参照すると、いくつかの実施形態では、プロセッサ１１２は、所定のシーケンスで各順列のビットを処理する。例えば、特定のビットの順列に対して、プロセッサ１１２は最上位の分割レベルから開始し、最上位分割レベルのビットに対するコードを生成し、その後に最上位から２番目の分割レベルのビットに対するコードを生成する。プロセッサ１１２は、ＬＬサブバンドのビットに対するコードを生成し、次に各分割レベルに対し、ＬＨサブバンドのビットに対するコードを生成し、続いてＨＬサブバンドのビットに対するコードを生成し、最後にＨＨサブバンドのビットに対するコードを生成する。
【００１９】
例として、２つのレベル分割により生成されるウェーブレット係数は、図４に示すマトリックス４０に配列できる。この方法では、マトリックス４０は、３０ａ，３０ｂ，３０ｃ，及び３０ｄの４つの象限に細分して表示できる。右上の象限３０ｂ，左下の象限３０ｃ，及び右下の象限３０ｄは、それぞれ、第１の分割レベルであるＬＨ，ＨＬ，及びＨＨサブバンド画像に対する係数を含んでいる。第２の分割レベルのＬＬ，ＬＨ，ＨＬ，及びＨＨサブバンド画像に対する係数は、左上の象限３０ａ内の左上の象限３２ａ，右上の象限３２ｂ，左下の象限３２ｃ，右下の象限３２ｄ内に置かれる。別の分割により生成された係数は、同様の方法で配置される。例えば、第３の分割レベルでは、左上の象限３２ａは、第３分割レベルのＬＬ，ＬＨ，ＨＬ，及びＨＨサブバンドのウェーブレット係数を含んでいる。
【００２０】
オリジナル画像に対するピクセル輝度を示す係数マトリックスが４×４マトリックスである場合には、マトリックス４０は、図５に示されているフォームになる。このように、第２分割レベルのＬＬ，ＬＨ，ＨＬ，及びＨＨサブバンド画像の各々は、１つの係数を有し、その係数は、（ＬＬサブバンド画像に対して）Ａ，（ＬＨサブバンド画像に対して）Ｂ，（ＨＬサブバンド画像に対して）Ｃ，及び（ＨＨサブバンド画像に対して）Ｄで表される。図５に示すように、第１分割レベルに対し，ＬＨ，ＨＬ，及びＨＨサブバンド画像の係数が、以下のそれぞれのマトリックスにより表わされる。
【００２１】
【数１】
2006191557.tif 000003
【００２２】
このマトリックスは、第２分割レベルの各係数（Ａを除く）が第１分割レベルの少なくとも４つの係数に関連付けされている。すなわち、第１分割レベルの各係数は第２分割レベルの少なくとも４つの子孫係数を有することを示している。従って、第１分割レベルの各ビットには第２分割レベルの少なくとも４つの子孫係数がある。
【００２３】
各ビットの順列に対して、プロセッサ１１２は、前述したスキャニング・シーケンスのビットを処理する。特定のビットが「１」又は「−１」を示す場合には、プロセッサ１１２は、Ｐ又はＮコードを生成し、スキャニング・シーケンスの次のビットの処理に進行する。しかし、特定のビットが「０」を示す場合には、プロセッサ１１２は、子孫を通してビットを追跡し、そのビットが分離されたゼロか又はゼロツリー・ルートであるかどうかを決定する。ＬＬサブバンドの係数は、単にエントロピー符号化されている。
【００２４】
例えば、（第２分割レベルのＨＨサブバンドに配置された）Ｄ係数の最下位ビット（Ｄ（１）と呼ばれる）に対するコードを生成するために、プロセッサ１１２は、Ｄ（１）ビットが「０」を示しているかどうかを確認する。「０」の場合には、プロセッサ１１２は、図６に示されているように、「１」又は「−１」をサーチして第１分割レベルのサブバンドＨＨの子孫ビットＧ1（１），Ｇ2（１），Ｇ3（１），及びＧ4（１）を評価する。これらのビットの１つが「１」又は「−１」を示す場合には、Ｄ（１）ビットは分離されたゼロである。そうでない場合は、Ｄ（１）ビットはゼロツリー・ルートである。
【００２５】
数字の例として、画像のピクセル輝度を示す４×４係数マトリックスは、２つのレベルに分割されて、次のようなマトリックスを形成する。
【００２６】
【数２】
2006191557.tif 000004
【００２７】
この場合、最大絶対値が「４」であるため、次のマトリックスに示されているように、３ビットを使用して係数を表わす。
【００２８】
【数３】
2006191557.tif 000005
【００２９】
従って、プロセッサ１１２は、係数の第３順位のビット（すなわち最上位ビット、ただしゼロの場合もある）に対するコードを生成することにより、符号化を開始する。より具体的には、第３順位のビットに対するコードを生成するためには、プロセッサ１１２はパス２８（図５参照）に従い、このパス２８に沿って各係数の第３ビットに対する適正なコードを生成する。特定ビットが「０」を示す場合には、プロセッサ１１２は、ビットの子孫を評価して、分離されたゼロ及びゼロルートを見出す。プロセッサ１１２による第３順位のビットの符号化により、以下のコード（生成順に示す）Ｐ，Ｒ，Ｒ，Ｒを生成する。次に、プロセッサ１１２は、第２順位のビットに対するコード（生成順に示す）ＩＺ，ＩＺ，Ｎ，Ｒ，ＩＺ，Ｐ，ＩＺ，ＩＺ，ＩＺ，Ｐ，ＩＺ，ＩＺを生成する。最後に、プロセッサ１１２は、第１順位のビットに対するコード（生成順に示す）ＩＺ，Ｐ，ＩＺ，Ｒ，Ｐ，ＩＺ，ＩＺ，Ｐ，ＩＺ，Ｐ，ＩＺ，Ｐを生成する。前述のように、プロセッサ１１２は、２ビット符号化方式によりコードを表わし、ビット・ストリームにより生成されたのと同様に転送できる。
【００３０】
例として、別のプロセッサ２００（図２参照）がビット・ストリームを使用して、次の方法により、オリジナル画像のピクセル輝度を表わす係数マトリックスを再構成できる。復号化を開始する前に、プロセッサ２００は、最初に、３つのレベルの符号化（すなわち、各ビット順列に対し１つのレベル）を使用したプロセッサ１１２からの指示を受け取る。この情報を取得後、プロセッサ２００は、コードが生成された順番にコードを使用して、オリジナルの係数マトリックスを再構成できる。より具体的には、プロセッサ２００は、第３ビット順位のビットの符号化（すなわち、第１レベルの符号化）により生成されたコードを使用して、次のマトリックスを生成できる。
【００３１】
【数４】
2006191557.tif 000006
【００３２】
プロセッサ２００は、このマトリックスを使用して、オリジナル画像の粗いバージョン（すなわち、低解像度バージョン）を最構成できる。しかし、さらに高精細バージョンを望む場合には、プロセッサ２００は、第２順位のビット符号化（すなわち、第２レベルの符号化）により生成されたコードを使用して、次のマトリックスを生成できる。
【００３３】
【数５】
2006191557.tif 000007
【００３４】
最後に、プロセッサ２００が第１順位のビットの符号化（すなわち、第３レベルの符号化）により生成されたコードを使用する場合には、プロセッサ２００は、分割されたウェーブレット係数のオリジナル・マトリックスを生成する。
【００３５】
図７を参照して、要約すると、プロセッサ１１２により圧縮プログラム１１９を実行すると、プロセッサ１１２は、以下の手順を実行して前述の符号化を行うことができる。最初に、プロセッサ１１２は、分割された係数のマトリックスを符号付きバイナリ表示で表わす（ブロック７２参照）。次に、プロセッサ１１２は、最大ウェーブレット係数の絶対値を表示するのに必要な桁数を決定する（ブロック７４参照）。このプロセッサ１１２は、プロセッサ１１２により処理される現在のビット順列を示す変数（ｎとする）を使用する。この方法では、プロセッサ１１２は、ソフトウェア・ループを使用して各ビットを一度に１ビットずつ処理する。これを完了後、プロセッサ１１２は、前述の方法を使用して、現在のビット順列の各ビットに対するコードを生成する（ブロック７６参照）。次に、プロセッサ１１２は、ビットの転送速度が所定のビット・レートを超えているかどうかを確認する（ダイヤモンド７８参照）。超える場合には、プロセッサ１１２は、現在の画像に対する符号化を終了して、所定のビット・レートに従う。超えていない場合には、プロセッサ１１２は、全てのビットが処理され終わったかどうかを確認する（ダイヤモンド８０参照）。すなわち、ｎが「１」に等しいかどうかを確認する。ｎが「１」に等しくない場合には、プロセッサ１１２は、変数ｎで表わされているビット順列を１だけ減少し（ブロック７５参照）、ブロック７６に進んでループの別時間に移動し、別のビット順列のビットに対するコードを生成する。ｎが「１」に等しい場合には、符号化は終了する。
【００３６】
図２に戻って参照すると、いくつかの実施形態では、プロセッサ１１２は、コンピュータ・システム１００の一部であってもよい。コンピュータ・システム１００は、ブリッジ又はメモリ・ハブ１１６を含んでおり、プロセッサ１１２及びメモリ・ハブ１１６はホスト・バス１１４に接続される。メモリ・ハブ１１６は、インタフェースを備えており、それによりホスト・バス１１４，メモリ・バス１２９，及びＡＧＰ（Accelerated Graphics Port）バス１１１に接続される。ＡＧＰについては、カリフォルニア州、サンタクララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ  により１９９６年７月３１日に発行されたＡｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ  Ｉｎｔｅｒｆａｃｅ  ＳｐｅｃｉｆｉｃａｔｉｏｎのＲｅｖ．１．０に詳細に記載されている。システム・メモリ１１８は、メモリ・バス１２９に接続されており、圧縮プログラム１１９を格納（記憶）できるようになっている。前述のように、プロセッサ１１２により圧縮プログラム１１９を実行することにより、プロセッサ１１２は、画像を表わすウェーブレット係数を提供し、各ウェーブレット係数を順序付けされたビットの集合として表わすことができる。プロセッサ１１２は各順列のビットを符号化して、そのビット順列に関連するゼロツリー・ルートを表わすことができる。
【００３７】
コンピュータ・システム１００の他の形態では、ディスプレイ・コントローラ１１３（ディスプレイ１１４を制御する）がＡＧＰバス１１１に接続される。ハブ通信リンク１１５は、メモリ・ハブ１１６を別のブリッジ回路又はＩ／Ｏ（入力／出力）ハブ１２０に接続する。いくつかの実施形態では、Ｉ／Ｏハブ１２０は、Ｉ／Ｏ拡張バス１２５とＰＣＩ（Peripheral Component Interconnect）バス１２１とを含んでいる。ＰＣＩ仕様は、オレゴン州、ポートランド  ９７２１４の、ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐから入手可能である。
【００３８】
モデム１４０は、ＰＣＩバス１２１を電話線１４２に接続している。かくして、モデム１４０は、プロセッサ１１２により生成されたビット・ストリ−ムをプロセッサ２００に通信できるインタフェースを提供できる。Ｉ／Ｏハブ１２０もまた、例に示すように、ハード・ディスク・ドライブ１３２及びＣＤ−ＲＯＭドライブ１３３のインタフェースを備えることができる。Ｉ／Ｏコントローラ１１７をＩ／Ｏ拡張バス１２５に接続して、例に示すように、キーボード１２４及びマウス１２６からの入力データを受け取ることができる。また、Ｉ／Ｏコントローラ１１７は、フロッピー（登録商標）・ディスク・ドライブ１２２の動作も制御できる。プログラム１１９のコピーは、例としては数例ではあるが、ハード・ディスク・ドライブ１３２，ディスケット，又はＣＤ−ＲＯＭに格納できる。
【００３９】
本明細書の説明では、用語「コンピュータ・システム」は、一般に、プロセッサ・ベースのシステムを指し、また数例としては、グラフィックス・システム，デスクトップ・コンピュータ，又はモバイル・コンピュータ（例えば、ラップトップ・コンピュータ）を含む（ただし、これに限定されない）。用語「プロセッサ」は、例えば、少なくとも１つのマイクロコントローラ，Ｘ８６マイクロプロセッサ，ＡＲＭ（Advanced RISC Machine）マイクロプロセッサ、又はペンティアム（登録商標）（Pentium（登録商標））・ベースのマイクロプロセッサを指す。前記の例は制限することを意図したものではなく、本発明の実施形態においては、他のタイプのコンピュータ・システム及び他のタイプのプロセッサを含むことができる。
【００４０】
本明細書の特許請求の範囲には他の実施形態を含む。例えば、前述の分割係数のマトリックスは、最上位分割レベルの各サブバンド内に１つの係数を有する。しかし、この構成は符号化の説明を簡単化する目的のためである。従って、最上位分割レベルの各サブバンドは複数の係数を有することができ、さらに前述の方法を適用して、これらの係数に関連するビットを符号化できる。特定の実施形態では、プロセッサ１１２は並列の各順列のビットの全てを符号化できる。このように、各ビット順列のビットの符号化は、プロセッサの個々のスレッドの実行により実行できる。その他の構成も可能である。
【００４１】
本発明を、本開示の利点を有する限定した数の実施形態に関して開示してきたが、当業者には、多数のそれらの修正形態及び変更形態が可能であることは理解されるであろう。従って、添付の特許請求の範囲は、本発明の真の精神とその範囲内に含まれるそれらの修正形態及び変更形態の全てを包含するものとする。
【図面の簡単な説明】
【００４２】
【図１】ウェーブレット変換により生成されるサブバンドの階層配列の図である。
【図２】本発明の実施形態によるコンピュータ・システムの概略図である。
【図３】本発明の実施形態によるゼロツリー・ルートを決定するスキャニング・パスの図である。
【図４】本発明の実施形態によるウェーブレット係数マトリックスの構成図である。
【図５】ウェーブレット係数マトリックスのスキャニング・パスの図である。
【図６】ゼロツリー・ルートを配置するために移動するパスの図である。
【図７】本発明の実施形態によりウェーブレット係数を符号化するプログラムの実行を示すフローチャートである。
【符号の説明】
【００４３】
１００  コンピュータ・システム
１１２  プロセッサ
１１８  システム・メモリ
１１９  プログラム
【図１】
2006191557.tif 000008
【図２】
2006191557.tif 000009
【図３】
2006191557.tif 000010
【図４】
2006191557.tif 000011
【図５】
2006191557.tif 000012
【図６】
2006191557.tif 000013
【図７】
2006191557.tif 000014