(57)【特許請求の範囲】
【請求項１】
ウェーブレット係数を生成するウェーブレット変換手段と、埋め込み符号化データ（以下、符号化データ）を生成する処理の一部として、前記ウェーブレット変換手段からのウェーブレット係数をモデル化するモデル化手段と、前記符号化データを有限なバンド幅の通信路に送信するレートを制御する通信マネージャ手段とを具備する通信管理システムであって、
前記通信マネージャ手段は、前記符号化データを有意度に基づいて異なった有意度レベルに分類し、前記符号化データのデータ量が前記通信路のバンド幅を超えない場合には、前記符号化データの全てを前記通信路へ送信し、前記符号化データのデータ量が前記通信路のバンド幅を超える場合には、前記符号化データのうち有意度の低いデータを棄てて、
有意度の高いデータのみを前記通信路へ送信することを特徴とする通信管理システム。
【請求項２】
請求項１記載の通信管理システムにおいて、前記通信路は、当該通信路のバンド幅を前記通信マネージャ手段に指示することを特徴とする通信管理システム。
【請求項３】
請求項１記載の通信管理システムにおいて、前記通信マネージャ手段は、所定単位のパケットのデータを前記通信路を通じて送信するのに要した時間の長さに基づいて、当該通信路のバンド幅を動的に決定することを特徴とする通信管理システム。
【請求項４】
請求項１記載の通信管理システムにおいて、前記符号化データの中のタイルが有意度に基づいて分類されることを特徴とする通信管理システム。
【請求項５】
ウェーブレット変換手段を使用してウェーブレット係数を生成するステップ、埋め込み符号化データ（以下、符号化データ）を生成する処理の一部として、前記ウェーブレット変換手段からのウェーブレット係数をモデル化するステップ、該符号化データを有限なバンド幅の通信路に送信するレートを制御するステップを含む通信管理方法であって、
前記符号化データを有限なバンド幅の通信路に送信するレートを制御するステップは、前記符号化データを有意度に基づいて異なった有意度レベルに分類し、前記符号化データのデータ量が前記通信路のバンド幅を超えない場合には、前記符号化データの全てを前記通信路へ送信し、前記符号化データのデータ量が前記通信路のバンド幅を超える場合には、前記符号化データのうち有意度の低いデータを棄てて、有意度の高いデータのみを前記通信路へ送信することを特徴とする通信管理方法。
【請求項６】
請求項５記載の通信管理方法において、前記通信路から当該通信路のバンド幅が指示されるステップを更に含むことを特徴とする通信管理方法。
【請求項７】
請求項５記載の通信管理方法において、所定単位のパケットのデータを前記通信路を通じて送信するのに要した時間の長さに基づいて、当該通信路のバンド幅を動的に決定するステップを更に含むことを特徴とする通信管理方法。
【請求項８】
請求項５記載の通信管理方法において、符号化データの中のタイルが有意度に基づいて分類されることを特徴とする通信管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する分野】
本発明は、データ圧縮及び伸長システムの分野に係り、特に、通信路利用の際の符号化データの通信管理に関する。
【０００２】
【従来の技術】
データ圧縮は、大量のデータの蓄積及び伝送のために非常に有用なツールである。例えば、文書のファクシミリ伝送のような画像伝送に要する時間は、圧縮を利用して画像再生に必要とされるビット数を減らすと飛躍的に短縮される。
【０００３】
従来より、多くの様々なデータ圧縮手法が存在している。圧縮手法は、おおまかに分類すると２つのカテゴリー、つまり損失性符号化と非損失性符号化とに分けることができる。損失性符号化とは、情報の損失を生じ、したがってオリジナルデータの完全な再現が保証されない符号化のことである。損失性符号化の目標とするところは、オリジナルデータから変化しても、その変化が不快であったり目だったりしないようにすることである。非損失性圧縮では、全ての情報が保存され、データは完全な復元が可能な方法で圧縮される。
【０００４】
非損失性圧縮では、入力シンボルもしくは輝度データが出力符号語に変換される。入力としては、画像データ、音声データ、１次元データ（例えば空間的または時間的に変化するデータ）、２次元データ（例えば２つの空間軸方向に変化する（または１つの空間次元と１つの時間次元で変化する）データ）、あるいは多次元／マルチスペクトルのデータがあろう。圧縮がうまくいけば、その符号語は、符号化前の入力シンボル（または輝度データ）のために必要とされるビット数より少ないビット数で表現される。非損失性符号化法には、辞書符号化方式（例えば、Ｌempel-Ziv方式）、ランレングス符号化方式、計数符号化方式、エントロピー符号化方式がある。非損失性の画像圧縮では、圧縮は予測またはコンテキストと符号化に基づいている。ファクシミリ圧縮用ＪＢＩＧ規格と、連続階調画像用のＤＰＣＭ（差分パルス符号変調−ＪＰＥＧ規格のオプション）は画像用の非損失性圧縮の例である。損失性圧縮では、入力シンボルまたは輝度データは、量子化されてから出力符号語へ変換される。量子化は、データの重要な特徴量を保存する一方、重要でない特徴量を除去することを目的としている。損失性圧縮システムは、量子化に先立ち、エネルギー集中をするための変換を利用することが多い。ＪＰＥＧは画像データ用の損失性符号化法の一例である。
【０００５】
画像信号処理における最近の開発は、効率的かつ高精度のデータ圧縮符号化方式を追求することに関心を集中し続けている。変換またはピラミッド信号処理の様々な方式が提案されており、その中にマルチ解像度ピラミッド処理方式とウエーブレット（wavelet）ピラミッド処理方式とがある。これら２方式は、サブバンド処理方式及び階層処理方式とも呼ばれる。画像データのウエーブレット・ピラミッド処理方式は、直交ミラーフィルタ（ＱＭＦ）を用いてオリジナル画像のサブバンド分割をする特殊なマルチ解像度ピラミッド処理方式である。なお、他の非ＱＭＦウエーブレット方式もある。ウエーブレット処理方式に関し、これ以上の情報を得るには、Ａntonini, Ｍ.，et al., " Image Ｃoding Ｕsing
Ｗavelet Ｔransform "， IEEE Ｔransactions on Image Ｐrocessing, Vol.1，No.2, Ａpril 1992、及び、Ｓhapiro，Ｊ.， " Ａn Ｅmbedded Ｈierarchical Image Ｃoder Ｕsing Ｚerotrees of Ｗavelet Ｃoefficients"，Ｐroc. IEEE  Ｄata  Ｃompression Ｃonference, pgs．214-223，1993 を参照されたい。
【０００６】
【発明が解決しようとする課題】
【０００７】
ウエーブレットまたはサブバンド変換装置の多くは、特定の正規型のフィルタを必要とする。例えば、低域通過フィルタと高域通過フィルタは同一長でなければならず、その係数の２乗和は１でなければならず、高域通過フィルタは時間・周波数特性が低域通過フィルタと正反対でなければならない、等々である。（１９９１年５月にＬawton等に発行された米国特許第５，０１４，１３４号を参照）。より広範な種類のフィルタを許容することが望ましい。すなわち、低域通過フィルタと高域通過フィルタが同一長でなく、その係数の２乗和は１である必要がなく、高域通過フィルタが低域通過フィルタと正反対の時間・周波数特性である必要がない等々、そのような低域通過フィルタと高域通過フィルタを使用するウエーブレットまたはサブバンド変換装置を提供することが望ましい。同時に、通信路を利用して符号化データを伝送する場合、通信路のバンド幅は有限であるため、効果的な通信管理が望ましい。
【０００８】
本発明は、上述の諸点に鑑みてなされたもので、その主たる目的は、非損失性／損失性の圧縮／伸長システムのための可逆ウエーブレットフィルタを利用した効率的な符号化／復号に関連して、有限なバンド幅の通信路を利用して符号化データを伝送する場合の効果的な通信管理システム及び方法を提供することにある。これ以外の本発明の目的は、以下の説明から明らかになろう。
【０００９】
本発明は、ウェーブレット係数を生成するウェーブレット変換手段と、埋め込み符号化データ（以下、符号化データ）を生成する処理の一部として、前記ウェーブレット変換手段からのウェーブレット係数をモデル化するモデル化手段と、前記符号化データを有限なバンド幅の通信路に送信するレートを制御する通信マネージャ手段とを具備する通信管理システムであって、前記通信マネージャ手段は、前記符号化データを有意度に基づいて異なった有意度レベルに分類し、前記符号化データのデータ量が前記通信路のバンド幅を超えない場合には、前記符号化データの全てを前記通信路へ送信し、前記符号化データのデータ量が前記通信路のバンド幅を超える場合には、前記符号化データのうち有意度の低いデータを棄てて、有意度の高いデータのみを前記通信路へ送信することを特徴とする。
【００１０】
また、本発明は、ウェーブレット変換手段を使用してウェーブレット係数を生成するステップ、埋め込み符号化データ（以下、符号化データ）を生成する処理の一部として、前記ウェーブレット変換手段からのウェーブレット係数をモデル化するステップ、該符号化データを有限なバンド幅の通信路に送信するレートを制御するステップを含む通信管理方法であって、前記符号化データを有限なバンド幅の通信路に送信するレートを制御するステップは、前記符号化データを有意度に基づいて異なった有意度レベルに分類し、前記符号化データのデータ量が前記通信路のバンド幅を超えない場合には、前記符号化データの全てを前記通信路へ送信し、前記符号化データのデータ量が前記通信路のバンド幅を超える場合には、前記符号化データのうち有意度の低いデータを棄てて、有意度の高いデータのみを前記通信路へ送信することを特徴とする。
【００１１】
上記及びその他の本発明の態様並びに特徴については、以下の実施例に関連した本発明の詳細な説明により明白になろう。
【００１２】
【発明の実施の形態】
以下に、圧縮及び伸長システムについて述べる。圧縮システムにおいて、符号化装置が入力データを圧縮データストリームに符号化する。一実施例では、この符号化装置は、可逆ウエーブレットフィルタ、順序付け／モデリング機構、エントロピー符号化器からなる。可逆ウエーブレットフィルタは、入力データを複数の係数に変換する。順序付け／モデリング機構は、それら係数を受け取り、埋め込み符号ストリームを生成する。エントロピー符号化器は、その埋め込み符号ストリームをエントロピー符号化して圧縮データストリームを生成する。
【００１３】
以下の本発明に関する詳細な説明において、本発明を完全に理解してもらうために、符号化器の種類、ビット数、信号名等々、様々な具体例が示される。しかし、当業者には、そのような具体例によらずに本発明を実施し得ることは明白になろう。他方、本発明をいたずらに難解にしないため、周知の構造及びデバイスはブロック図として示し、詳しくは示さない。
【００１４】
以下の詳細説明のかなりの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズム及び記号表現によって与えられる。このようなアルゴリズム記述及び表現は、データ処理技術分野の当業者によって、その研究の内容を他の当業者に対し最も効率的に伝えるために用いられる手段である。あるアルゴリズムがあり、それが概して、希望する結果に至る自己矛盾のないステップ系列だと考えられるとしよう。これらのステップは、物理量の物理的処理を必要とするものである。必ずという訳ではないが、通常、これらの物理量は記憶、転送、結合、比較、その他処理が可能な電気的または磁気的信号の形をとる。これらの信号をビット、値、要素、記号、文字、用語、数字等で表わすのが、主に慣用上の理由から、時に都合がよいことが分かっている。
【００１５】
しかしながら、このような用語は、適切な物理量と関係付けられるべきであって、これら物理量につけた便宜上のラベルに過ぎないということに留意すべきである。以下の説明から明らかなように、特に断わらない限り、”処理””演算””計算””判定””表示”等々の用語を用いて論じることは、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）な量として表現されたデータを処理して、コンピュータシステムのメモリまたはレジスタ、同様の情報記憶装置、情報伝送装置あるいは表示装置の内部の同様に物理量として表現された他のデータへ変換する、コンピュータシステムあるいは同様の電子演算装置の作用及びプロセスを指すものである。
【００１６】
本発明はまた、本明細書に述べる操作を実行するための装置にも関係する。この装置は、必要な目的のために専用に作られてもよいし、あるいは、汎用コンピュータを内蔵プログラムにより選択的に駆動または再構成したものでもよい。本明細書に提示されるアルゴリズム及び表示は、本質的に、いかなる特定のコンピュータやその他装置とも関係がない。様々な汎用マシンを本明細書に述べたところに従ったプログラムで利用してもよいし、あるいは、必要な方法のステップの実行のためにより特化した装置を作るほうが好都合であるかもしれない。これら多様なマシンに要求される構造は以下の説明より明らかになろう。さらに、本発明を説明するにあたり、どのような格別のプログラミング言語とも関連付けない。本明細書において述べるように、本発明の教えるところを実現するために多様なプログラミング言語を使用してよいことが理解されよう。
【００１７】
下記用語が以下の説明に用いられる。それら各種用語には、すでに語義がある。しかし、規定された語義は、それら用語が当該分野において知られている範囲に限定して考えられるべきでない。これら語義は、本発明の理解を助けるために規定されたものである。
【００１８】
ビット有意度（bit-significance)：
符号（sign）／絶対値表現に似た数表現で、ヘッド(head)ビットの後に符号(sign)ビットが続き、さらに、テール(tail)ビットがあれば、その後に続く。埋め込み(embedding)は、この数表現に関しビットプレーン順に符号化する。
【００１９】
符号化単位：
一括して符号化される係数の単位で、任意の順序にすることができる。一実施例では、符号化単位は矩形に配列された１つ以上のツリーからなる。符号化単位は一つの画像全体、複数の画像の集合、あるいは他のデータ集合から構成されるかもしれない。符号化単位は、変換を実行するために必要なバッファサイズに大きな影響を与える。また、一実施例では、現在符号化単位以外の係数からは全く内容を引き出すことができない。しかし、エントロピー符号は、一つの符号化単位内で、あるいは多数の符号化単位の後で、リセットされても構わない。符号化単位は必ずしもランダムアクセス可能ではない。
【００２０】
コンテキストモデル：
符号化しようとする現在ビットに関して得られる情報で、現在ビットに関し過去に学習した情報を提供する。これによりエントロピー符号化のための条件付確率予測が可能になる。
【００２１】
ツリー：
最高レベルのウエーブレット分割のＬＬ内の単一の係数と関連した複数の係数及び画素。係数の個数はレベル数と同じである。
【００２２】
バンド：
２次元データに対する最高レベルのウエーブレット分割のＬＬ内の１行もしくは１ラインの係数に関連した係数及び画素。他次元のデータに対しても、バンドは同様に定義される。
【００２３】
分割レベル：
ウエーブレット分割ピラミッドにおける位置。
【００２４】
埋め込み量子化：
符号ストリームに必然的に含まれる量子化。例えば、有意度レベルが、最高有意度レベルから最低有意度レベルへ順に並べられているときには、符号ストリームの単なる切り捨てによって量子化が行われる。タグ、マーカー、ポインタ等によって同じ作用を得ることができる。
【００２５】
エントロピー符号化器：
現在ビットを、そのコンテキストに基づいて符号化する装置。コンテキストは、現在ビット（１ビットまたは複数ビット）の最適表現のための確率予測を与える。
【００２６】
固定レート：
ある一定の画素レートを維持し、バンド幅の限られた通信路を持つアプリケーション又はシステム。これは、全体的に平均して圧縮するというよりも、局所的に平均して圧縮することを必要とする。例：ＭＰＥＧ固定サイズ：限られたサイズのバッファを持つアプリケーション又はシステム。このような場合、全体的に平均した圧縮が達成される、例えば、プリントバッファ（アプリケーションは、固定レートでかつ固定サイズのことも、そのどちらかのこともある）。
【００２７】
固定長：
特定のデータブロックを特定の圧縮データブロックへ変換するシステム（例えばＢＴＣ）。固定長符号は固定レート・固定サイズのアプリケーションに適するが、レート−歪み性能は可変レートシステムに比べると劣ることが多い。
【００２８】
水平コンテキストモデル：
エントロピー符号化器用のコンテキストモデルであり（一実施例）、本明細書中で本発明の一部として定義される。
【００２９】
ヘッド：
ビット有意度表現において、ヘッドビットとは最上位ビッから最初の非ゼロのビットまでの絶対値ビットである。
【００３０】
オーバーラップ変換：
単一のソース標本点が同一周波数の複数の係数に寄与する変換。その例に、多くのウエーブレットとオーバーラップ直交変換がある。
【００３１】
プログレッシブ：
データの一部から矛盾のない結果を得られ、かつデータを増やすことで精度を上げることができるように順序付けられた符号ストリーム。実施例によっては、データのビットプレーンの浅いほうから深いほうへ順序付けられた符号ストリーム、この場合は普通、ウエーブレット係数データをさす。
【００３２】
ピラミッド：
解像度が下がる毎に大きさが２分の１（面積では４分の１）になる一連の解像度成分。
【００３３】
可逆変換：
精密な再現性を有する、整数演算により実行される効率的な変換。
【００３４】
Ｓ変換：
１つの２タップ低域通過フィルタと１つの２タップ高域通過フィルタによる特殊な可逆ウエーブレットフィルタ対。
【００３５】
テール：
ビット有意度表現で、テール(tail)ビットとは最上位の非ゼロのビットより有意度が低い絶対値ビットである。
【００３６】
テール情報：
一実施例では、ビット有意度表現で表された係数のためにとり得る４つの状態。係数及び現在ビットプレーンの関数であり、水平コンテキストモデルのために利用される。
【００３７】
テール・オン(tail-on)：
一実施例では、テール情報状態がゼロか非ゼロであるかに依存する２つの状態。水平コンテキストモデルのために利用される。
【００３８】
ＴＳ変換：
Ｔｗｏ−Ｓｉｘ変換。１つの２タップ低域通過フィルタと１つの６タップ高域通過フィルタによる特殊なウエーブレットフィルタ対。
【００３９】
統合型非損失性／損失性：
同じ圧縮システムが、非損失性又は損失性の復元が可能な符号化データストリームを提供する。後述の本発明のケースでは、このような符号ストリームは、符号化器に対し設定したり命令したりすることなく、非損失性復元と損失性復元の両方が可能である。
【００４０】
視覚的有意度レベル：
特定のシステムを定義することにより、入力データ（画素データ、係数、誤差信号等）は視覚的効果が同じ複数のグループに論理的に分類される。例えば、最上位の一つまたは複数のビットプレーンは、恐らく下位のビットプレーンより視覚的に重要であろう。また、低い周波数の情報は一般に高い周波数の情報より重要である。”視覚的有意度”の実用的な定義の殆どは、後述のように本発明も含め、何らかの誤差距離に関する。しかし、それよりも良好な視覚的尺度が、視覚的有意度のシステム定義に組み入れられるかもしれない。データの種類が異なれば視覚的有意度レベルも違う。例えば、音声データは音声の有意度レベルを持つ。
【００４１】
ウエーブレットフィルタ：
ウエーブレット変換に使われる高域通過と低域通過の合成フィルタ及び分析フィルタ。
【００４２】
ウエーブレット変換：
”周波数”及び”時間（空間）”領域の両方の拘束条件を用いる変換。
【００４３】
説明する一実施例では、１つの高域通過フィルタと１つの低域通過フィルタからなる変換である。結果として得られる係数は２：１の間引きを施され（臨界フィルタ処理され）、そして、それらフィルタが低域通過係数に適用される。
【００４４】
＜概要＞
本発明は、符号化部及び復号部を持つ圧縮／伸長システムを提供する。符号化部は入力データを符号化して圧縮データを生成する役割を持ち、他方、復号部は既に符号化されたデータを復号してオリジナル入力データの復元データを生成する役割を持つ。入力データには、画像（静止画像あるいはビデオ画像）、音声等々の様々な種類のデータが含まれる。一実施例ではデータはデジタル信号データであるが、ディジタイズしたアナログデータ、テキストデータ形式、その他の形式も可能である。そのデータのソースは、例えば符号化部及び／または復号部のためのメモリまたは通信路である。
【００４５】
本発明において、符号化部及び／または復号部の構成要素は、ハードウエア又はコンピュータシステム上で利用されるソフトウエアによって実現し得る。本発明は、非損失性の圧縮／伸長システムを提供する。本発明はまた、損失性の圧縮／伸長を実行するようにも構成し得る。
【００４６】
＜本発明システムの概要＞
図１は、システムの符号化部の一実施例のブロック図である。なお、システムの復号部は逆の順序で動作し、データフローも同様である。図１において、入力画像データ１０１がウエーブレット変換ブロック１０２に受け取られる。ウエーブレット変換ブロック１０２の出力は係数データ順序付け／モデリングブロック１０３に接続される。順序付け/モデリングブロック１０３は、ウエーブレット変換ブロック１０２の出力に応じて少なくとも１つのビットストリームを出力し、このビットストリームはエントロピー符号化器１０４に受け取られる。エントロピー符号化器１０４は、順序付け／モデリングブロック１０３からの入力に応じて符号ストリーム１０７を出力する。
【００４７】
一実施例において、順序付け／モデリングブロック１０３は、図２に示されるように、符号（sign）／絶対値フォーマッティングユニット２０１と、統合空間／周波数（joint space/frequency；ＪＳＦ）コンテキストモデル２０２からなる。一実施例では、統合空間／周波数コンテキストモデル２０２は後述の水平
（horizon）コンテキストモデルである。符号／絶対値フォーマッティングユニット２０１の入力は、ウエーブレット変換符号化ブロック１０２の出力と接続される。符号／絶対値フォーマッティングユニット２０２の出力は、統合空間／周波数モデリングブロック２０２に接続される。ＪＳＦコンテキストモデル２０２の出力はエントロピー符号化器１０４の入力に接続され、エントロピー符号化器１０４は出力符号ストリーム１０７を発生する。
【００４８】
図１に戻る。本発明においては、後に定義するように、画像データ１０１はウエーブレット変換ブロック１０２において受け取られ、可逆ウエーブレットを使って変換符号化され、その画像のマルチ解像度分割を表わす一連の係数が生成される。本発明の可逆ウエーブレット変換は、計算が複雑でなく、ソフトウエア又はハードウエアにより、全く系統誤差を生じさせないで実行できる。さらに、本発明のウエーブレットはエネルギー集中及び圧縮性能に優れている。これらの係数は順序付け／モデリングブロック１０３に受け取られる。
【００４９】
順序付け／モデリングブロック１０３は係数の順序付けとモデリングをする。この係数順序付けにより埋め込み(embedded)データストリームが得られる。この埋め込みデータストリームは、符号化時、伝送時又は復号時に、結果の符号ストリームが量子化されることを許す。一実施例において、順序付け／モデリングブロック１０３は、それらの係数を、その有意度（後述）に基づき順序付けして符号／絶対値形式へ変換し、このフォーマットされた係数は、埋め込み（embedded）モデリング法を適用される。一実施例では、フォーマットされた係数は統合空間／周波数モデリングを適用される。
【００５０】
順序付け及びモデリングの結果が、エントロピー符号化器により符号化すべきデシジョン(decisions)（又はシンボル）である。一実施例では、全てのデシジョンが一つの符号化器へ送られる。他の実施例では、デシジョンは有意度によってラベル付けされ、デシジョンは有意度レベル毎に別々の（物理的または仮想的な）複数の符号化器によって処理される。
【００５１】
図２に戻って、ＪＳＦコンテキストモデルブロック２０１から出力されるビットストリームは、エントロピー符号化器１０４により有意度順に符号化される。一実施例では、エントロピー符号化器１０４は１つ又は複数の２元エントロピー符号化器からなる。
【００５２】
＜ウエーブレット分割＞
本発明は、最初に、可逆ウエーブレットにより、画像（画像データとしての）または他のデータ信号の分割を行なう。本発明において、可逆ウエーブレット変換は、整数係数を持つ信号の非損失性復元が可能な精密復元システムを整数演算で実現する。本発明は、可逆ウエーブレットを利用することにより、有限精度の演算で非損失性圧縮をすることができる。画像データに可逆ウエーブレット変換を適用することにより生成される結果は、一連の係数である。
【００５３】
本発明の可逆ウエーブレット変換は、フィルタの集合を用いて実現し得る。一実施例では、そのフィルタは１つの２タップ低域通過フィルタと１つの６タップ高域通過フィルタである。一実施例では、これらフィルタは加減算（とハードワイヤのビットシフト）だけで実現される。また、本発明の一実施例では、その高域通過フィルタは低域通過フィルタの結果を使って出力を生成する。結果として得られる高域通過係数は画素深度(depth)より数ビットだけ大きく、低域通過係数は画素深度と同一である。ピラミッド分割では低域通過係数だけが繰り返しフィルタされるため、マルチレベル分割で係数解像度は増加しない。
【００５４】
他の実施例では、高域通過フィルタの出力係数でなく、低域通過フィルタの出力係数のサイズが増加するかもしれない。
【００５５】
ウエーブレット変換システムは１対のＦＩＲ分析フィルタｈ0(n)，ｈ1(n)と１対のＦＩＲ合成フィルタｇ0(n)，ｇ1(n)によって定義される。本発明において、ｈ0とｇ0は低域通過フィルタであり、ｈ1とｇ1は高域通過フィルタである。このウエーブレット変換システムのブロック図が図３に示されている。
【００５６】
図３において、入力信号ｘ(n)に対してブロック２１１，２１２で分析フィルタｈ0，ｈ1がかけられ、その出力がブロック２１３，２１４で２：１の間引き（臨界的サブサンプリング）を施されることにより、変換信号ｙ0(n)，ｙ1(n)が生成される。この変換信号ｙ0(n)，ｙ1(n)はそれぞれ、本明細書においては低域通過（平滑）係数、高域通過（細密）係数と呼ばれる。これらの分析フィルタのブロック２１１，２１２と、それに対応した間引きもしくはサブサンプリングのブロック２１３，２１４は、ウエーブレット変換システムの分析部を構成する。符号化器／復号器２１５，２１６は、変換ドメインにおいて実行される全ての処理ロジック及びルーチン（例えば、予測、量子化、符号化等々）を含む。
【００５７】
図３に示したウエーブレット変換システムは合成部も持ち、この合成部において変換信号はブロック２１７，２１８で１：２のアップサンプリングを施され（各項の後にゼロが挿入される）、ついでブロック２１９，２２０で合成フィルタｇ0(n)，ｇ1(n)に通される。低域通過（平滑）係数ｙ0(n)は低域通過合成フィルタｇ0に通され、高域通過（細密）係数ｙ1(n)は高域通過合成フィルタｇ1に通される。フィルタｇ0(n)，ｇ1(n)の出力が合成され
【００５８】
【外１】
0003693988.tif 000002
【００５９】
が作られる。
【００６０】
ある実施例ではダウンサンプリングとアップサンプリングが行なわれるが、他の実施例では、ダウンサンプリング及びアップサンプリングにより不要となる計算が行なわれないようなフィルタが使用される。
【００６１】
ウエーブレット変換システムはＺ変換によって記述してもよい。ここで、
【００６２】
【外２】
0003693988.tif 000003
【００６３】
はそれぞれ入力信号と出力信号であり、Ｙ0（Ｚ），Ｙ1（Ｚ）は低域通過の変換信号と高域通過の変換信号であり、Ｈ0（Ｚ），Ｈ1（Ｚ）は低域通過分析フィルタと高域通過分析フィルタであり、Ｇ0（Ｚ），Ｇ1（Ｚ）は低域通過合成フィルタと高域通過合成フィルタである。変換ドメインに修正も量子化もなければ、図３の出力
【００６４】
【外３】
0003693988.tif 000004
【００６５】
は次式により与えられる。
【００６６】
【数１】
0003693988.tif 000005
【００６７】
本発明において、
【００６８】
【外４】
0003693988.tif 000006
【００６９】
の第２項は”エイリアシング”（折り返し）項と呼ばれるが、これはキャンセルされる。というのは、合成フィルタが分析フィルタの直交ミラーフィルタとされているからである。すなわち、
【００７０】
【数２】
0003693988.tif 000007
【００７１】
フィルタ係数によれば、
【００７２】
【数３】
0003693988.tif 000008
【００７３】
したがって、直交ミラーフィルタのペアについて、代入すると出力は次のようになる。
【００７４】
【数４】
0003693988.tif 000009
【００７５】
よって、本発明の直交ミラーシステムにおいて、出力は分析フィルタの項だけで決定される。ウエーブレット変換は、フィルタにより生成された出力がフィルタの入力として直接的または間接的に用いられるという点で、変換信号に対し再帰的に適用される。ここに述べる実施例においては、低域通過変換成分ｙ0(n)だけが再帰的に変換されるため、当該システムはピラミッド型である。そのようなピラミッドシステムの一例が図１０に示されている。
【００７６】
Ｚ変換はハードウエア及び／またはソフトウエアのデータ操作の説明に便利な表現方法である。Ｚ-mによる乗算は、ハードウエアによるｍクロックサイクルの遅延、及び、ソフトウエアによるｍ個前の要素への配列アクセスのモデルである。そのようなハードウエア手段は、メモリ、パイプステージ、シフタ、レジスタ等を含む。
【００７７】
本発明において、信号ｘ(n)と信号
【００７８】
【外５】
0003693988.tif 000010
【００７９】
は、ある乗定数及びある遅延期間までは一致する。すなわち、Ｚ変換では
【００８０】
【数５】
0003693988.tif 000011
【００８１】
これは精密復元システムと呼ばれる。しかして、本発明の一実施例において、入力データに最初に適用されたウエーブレット変換は精密復元可能である。
【００８２】
ハダマード変換（Ｈadamard Ｔransform）を使う本発明の一実施例は精密復元システムであり、その正規化形はＺ領域で次のように記述される。
【００８３】
【数６】
0003693988.tif 000012
【００８４】
代入すると、出力は次のとおりである。
【００８５】
【数７】
0003693988.tif 000013
【００８６】
これが精密復元であることは明らかである。ハダマード変換のこれ以上の情報を得るには、Ａnil Ｋ．Ｊain，Ｆundamentals of Image Ｐrocessing, pg.155を見られたい。
【００８７】
ハダマード変換の可逆バージョンは本明細書においてＳ変換と呼ばれる。
【００８８】
Ｓ変換に関しこれ以上の情報を得るには、Ｓaid，Ａ．and Ｐearlman，Ｗ.，"Ｒeversible Image Ｃompression via Ｍultiresolution Ｒepresentation andＰredictive Ｃoding "，Ｄept．of Ｅlectrical, Ｃomputer and Ｓystems Ｅngineering，Ｒenssealaer Ｐolytechnic Institute，Ｔroy, ＮＹ 1993 を参照されたい。ハダマード変換は精密復元変換であるから、下に示す非正規化バージョン（定数因子がハダマード変換と異なる）も精密復元変換である。
【００８９】
【数８】
0003693988.tif 000014
【００９０】
入力信号のサンプルをｘ0，ｘ1とすると、Ｓ変換は当該システムの可逆システムである。すなわち、
【００９１】
【数９】
0003693988.tif 000015
【００９２】
Ｓ変換は、生成インデックスｎを用いて出力を次のように定義することができる。
【００９３】
【数１０】
0003693988.tif 000016
【００９４】
なお、変換係数アドレッシングの因数２は、暗黙の２：１サブサンプリングの結果である。この変換は可逆であり、その逆変換は次の通りである。
【００９５】
【数１１】
0003693988.tif 000017
【００９６】
記号
【００９７】
【外６】
0003693988.tif 000018
【００９８】
は、切り捨てることを意味し、時に床関数と呼ばれる。同様に、天井関数
【００９９】
【外７】
0003693988.tif 000019
【０１００】
は最も近い整数へ切り上げることを意味する。
【０１０１】
このシステムが可逆であることは、近似により失われる情報がｘ(0)＋ｘ(1)の最下位ビットだけであるという事実から証明される。しかしながら、ｘ(0)＋ｘ(1)とｘ(0)−ｘ(1)の最下位ビットは同一であるので、これは高域通過出力ｙ1(0)から再生することができる。つまり、
【０１０２】
【数１２】
0003693988.tif 000020
【０１０３】
Ｓ変換は、最小長（minimal length）の可逆フィルタを用いる非オーバーラップ（non-overlapping）変換である。最小長フィルタは、１対の２タップ・フィルタからなる。最小長変換は良好なエネルギー集中を得られない。最小長フィルタは、その長さがフィルタ数に等しいので、非オーバーラップ変換を実現する。オーバーラップ変換は、フィルタ数より長さが大きいフィルタを少なくとも１つ用いる。長い（非最小長の）フィルタを使うオーバーラップ変換は、より良好なエネルギー集中を与えることができる。本発明は、オーバーラップ変換を可能にする非最小長の可逆フィルタを提供する。
【０１０４】
精密復元システムのもう一つの例は、次のＺ領域定義を持つＴwo／Ｓix（ＴＳ）変換からなる。
【０１０５】
【数１３】
0003693988.tif 000021
【０１０６】
代入すると、出力は
【０１０７】
【数１４】
0003693988.tif 000022
【０１０８】
であり、これは精密復元変換である。このＴＳ変換の有理非正規化バージョンは次のとおりである。
【０１０９】
【数１５】
0003693988.tif 000023
【０１１０】
ｘ(0)，ｘ(1),...,ｘ(5)が信号の６サンプルであるとき、初めの３つの低域通過係数ｙ0(0)，ｙ0(1)，ｙ0(2)と最初の高域通過係数ｙ1(0)は、次式で与えられる。
【０１１１】
【数１６】
0003693988.tif 000024
【０１１２】
しかし、このＴＳ変換の有理非正規化バージョンをそのまま具体化したのでは可逆でない。次に述べる例で、そのような構成が局所的に非可逆であることが明らかになる。グローバルケースのための例としては、もっと長い系列を作ることができる。ｙ0(0)とｙ0(2)を計算するために丸めを行なうため、
−（ｘ(0)＋ｘ(1)）＋（ｘ(4)＋ｘ(5)）≠−ｙ0(0)＋ｙ0(2)
であるから、ローカル情報を使うとき当該変換は可逆でない。
【０１１３】
例えば、ｘ(0)＝１，ｘ(1)＝１，ｘ(2)＝３，ｘ(3)＝１，ｘ(4)＝１，ｘ(5)＝１であるときには、
【０１１４】
【数１７】
0003693988.tif 000025
【０１１５】
また、ｘ(0)＝１，ｘ(1)＝２，ｘ(2)＝４，ｘ(3)＝１，ｘ(4)＝１，ｘ(5)＝１であるときには、
【０１１６】
【数１８】
0003693988.tif 000026
【０１１７】
ｙ0(0)，ｙ0(1)，ｙ1(0)は異なった２組の入力ｘ(0)...ｘ(5)に対して同一であるから、この変換は可逆でない。ｙ0(0),...,ｙ1(0)を与えられたとき、このローカル情報から、その２つの組のいずれが入力されたのか判断できないからである。（ただし、全係数から得られるグローバル情報を用いるときに、当該変換が可逆でないとは証明できない。）
さて、異なった高域通過フィルタ作用を与える可逆ＴＳ変換を考えよう。この変換を、ここではＲＴＳ変換と呼ぶ。
【０１１８】
ｘ(0)，ｘ(1)，ｘ(2)，ｘ(3)，ｘ(4)，ｘ(5)が信号の６サンプルであるとき、初めの３つの低域通過係数ｙ0(0)，ｙ0(1)，ｙ0(2)と最初の高域通過係数ｙ1(0)は次式で与えられる。
【０１１９】
【数１９】
0003693988.tif 000027
【０１２０】
【数２０】
0003693988.tif 000028
【０１２１】
であるので、ｘ(2)−ｘ(3)は完全に既知となった。前記（数１７）のｙ0(1)と、ｘ(2)−ｘ(3)とｘ(2)−ｘ(3)が上のように決まれば、ｘ(0)＋ｘ(1)とｘ(0)−ｘ(1)の最下位ビットは同一であるから、ｘ(2)とｘ(3)を復元できる。つまり、次ののよう仮定する。
【０１２２】
【数２１】
0003693988.tif 000029
【０１２３】
ＲＴＳ変換の一実施例並びにＳ変換の一実施例においては、８による除算は、精度を上げるため、２で割ってから４で割ることによって行われる。なお、数学的には次の２式
【０１２４】
【数２２】
0003693988.tif 000030
【０１２５】
【数２３】
0003693988.tif 000031
【０１２６】
は、無限精度演算による時には同一である。（数２３）の式が可逆フィルタを表わしている理由は、整数演算で実際に行ってみれば明白である。低域通過フィルタと高域通過フィルタをハードウエアにより実現した典型例は、図２１及び図２２に関連して説明する。
【０１２７】
なお、Ｓ変換及びＲＴＳ変換の両方において、低域通過フィルタは入力信号ｘ(n)のレンジが出力信号ｙ0(n)のレンジと同一になるように構成される。例えば、信号が８ビットの画像であるときには、低域通過フィルタの出力も８ビットである。このことは、低域通過フィルタが連続的に適用されるピラミッドシステムにとっては重要な特性である。というのは、従来システムでは、出力信号のレンジが入力信号のレンジより大きく、そのことがフィルタの連続的適用を難しくしていたからである。さらに、低域通過フィルタは２つのタップしか持たないため、フィルタが非オーバーラップフィルタになる。この性質は、後述のように、フィルタをハードウエアで実現する上で重要である。
【０１２８】
より一般的な形で表すならば、可逆ＴＳ変換は、低域通過フィルタと高域通過フィルタの２出力の式により定義される。すなわち
【０１２９】
【数２４】
0003693988.tif 000032
【０１３０】
このｄ（ｎ）の式はｓ（ｎ）を使って単純化することができる（さらに、４による整数除算は分子に２を加算することにより丸めることができる）。これにより次式が得られる。
【０１３１】
【数２５】
0003693988.tif 000033
【０１３２】
このＴＳ変換は可逆であり、また、その逆変換は次式である。
【０１３３】
【数２６】
0003693988.tif 000034
【０１３４】
ここで、ｐ（ｎ）は次式により最初に計算されなければならない。
【０１３５】
【数２７】
0003693988.tif 000035
【０１３６】
低域通過フィルタにより得られる結果を高域通過フィルタにおいて２度（第１項と第２項で）利用できる。したがって、高域通過フィルタの結果を得るには、ほかに２つの加算を行うだけでよい。
【０１３７】
ＴＳ変換は、可逆であるほかに、効率的でもある。よって、ＴＳ変換は非損失性圧縮に非常に適している。ＴＳ変換は（Ｓ変換と同様に）、平滑出力の増大が全くない、すなわち、入力信号がｂビットの深さのとき、平滑出力もｂビットの深さである。このことは、平滑出力がさらに分割される後述のピラミッドシステムの場合に有益である。変換を整数演算で行う際の丸めによる系統誤差はないので、損失性システムの全ての誤差を量子化により制御可能である。
【０１３８】
ウエーブレット変換に関わる４つのフィルタの中で、低域通過合成フィルタが最も重要である。なぜなら、それは量子化された係数を結合し、さらに、その結果を平滑化するからである。このことから、本発明にあっては、比較的長い（６タップ）特に性能のよいフィルタを低域通過合成フィルタとして選択するに至った。なお、ＱＭＦシステムでは、独立したフィルタは２個しかない。
【０１３９】
多くのオーバーラップ、非最小長の可逆フィルタを本発明に用いることができる。非オーバーラップ最小長可逆フィルタを使ってフィルタリングを行なう変換システムのフォワード変換とインバース変換の説明を図４に示す。例えば、次に示す種類のフィルタを本発明で使ってもよい。ただし、整数Ｌ≧ｚとする。
【０１４０】
【数２８】
0003693988.tif 000036
【０１４１】
【数２９】
0003693988.tif 000037
【０１４２】
【数３０】
0003693988.tif 000038
【０１４３】
この高域通過フィルタの長さは２Ｌである。Ｌが奇数ならば、このフィルタはより対称フィルタに近いものになろう。ａi，ｂ，ｃi，ｋが整数で、ｋ≦ｂのときは、このフィルタは可逆である。ａi，ｂ，ｃi，ｋが２のべき乗（あるいは、２のべき乗の負値もしくは補数）であれば、フィルタの構成を簡略化できる。
【０１４４】
（ａi，ｃiの値と関係なく）ｋ＝ｂならば、高域通過フィルタ出力ｙ1のレンジは最小になる。各ａiについて、ａi＝−ｃiとなるｃiが丁度１つ存在するときには、高域通過フィルタは一定した入力に対し全く応答しない。ｊ−(L-1)＝ｉの時にａi＝−ｃiならば、フィルタは、対称フィルタにより近いものになる。
【０１４５】
もう一つの有用な性質は次のとおりである。
【０１４６】
【数３１】
0003693988.tif 000039
【０１４７】
この性質によって、高域通過フィルタは、ｍ＝１の時に線形変化する入力に対し応答しなくなり、ｍ＝２の時に二次曲線的に変化する入力信号に対し応答しなくなる、等々となる。ここでｍはモーメント条件である。この性質が、ＲＴＳ変換がＳ変換よりエネルギー集中がよいということの主な根拠である。
【０１４８】
フィルタは可逆性のための最低条件を充足しなければならないけれども、用途によって、他の特性のどれも満たさないフィルタ、いくつかを満たすフィルタ、あるいは全部を満たすフィルタを用いることができる。いくつかの実施例においては、次に例示する高域通過フィルタの１つが用いられる。本発明を難解にしないため、これらのフィルタは、フィルタの有理バージョンの整数係数が単に表形式で示されている。
【０１４９】
0003693988.tif 000040
最後のフィルタは（Ｔwo／Ｔen）ＴＴ−フィルタであり、３次増加関数に対して応答しないという性質を有する。なお、22=16+2x3、3=2+1であるので、このフィルタは合計７つの加減算によって実現できることに注意されたい。
【０１５０】
一実施例においては、複数のフィルタが結合されて１つのブロックに適用されることにより、水平パスと垂直パスの両方が１操作で実行される。図５は、そのような結合動作を行うフィルタを示している。構成（ａ）は、１−Ｄフィルタと１−Ｄ丸め操作からなる１−Ｄ可逆フィルタを各パス毎に１個ずつ、計２個使用することを表している。構成（ｂ）は１−Ｄフィルタ４０１の後に別の１−Ｄフィルタ４０２が続き、２−Ｄ丸め操作４０３で終わることを表している。この構成は、より良好な丸めが可能であるという点でより精密な結果を生じる。
【０１５１】
フィルタの厳密な可逆性要件は、次のことに留意することにより緩和できる。高域通過係数は、ある順序で符号化され、そして復号される。既に復号された高域通過係数に対応する画素値は正確に分かっているから、それを現在の高域通過フィルタリングに利用できる。例えば、ラスター順が用いられる時、下記のフィルタを使用できる。
【０１５２】
【数３２】
0003693988.tif 000041
【０１５３】
単一の固定高域通過フィルタを使わねばならないというわけではない。適応フィルタを使ってもよいし、あるいは複数のフィルタを使うこともできる。複数のフィルタの適応化ないし選択のために利用するデータは、特定のインバースフィルタリング動作に先立って復号器内で入手可能なデータに限定されなければならない。
【０１５４】
複数のフィルタを使用する一方法は、高域通過係数をプログレッシブに処理することである。１つおきの高域通過フィルタ演算（ｙ1(0)，ｙ1(2)，ｙ1(4),...）は、ＲＴＳ高域通過フィルタのような可逆フィルタを用いて最初に処理してよい。残りのフィルタ操作（ｙ1(1)，ｙ1(3)，ｙ1(5),...）には、最高６タップの非可逆フィルタを使用できる。というのは、フィルタのオーバーラップ部分への入力の正確な値が分かっているからである。例えば、次に示すフィルタのどれを使用してもよい。
【０１５５】
0003693988.tif 000042
なお、実施例によっては、ＱＭＦフィルタは使われない。
【０１５６】
実施例によっては、高域通過フィルタは予測／補間（内挿）操作に置き換えられるかもしれない。予測器／補間器は、特定の予測／補間操作の前に、復号器で入手可能なデータを利用し、１対の入力間の差分を予測する。予測した差分が入力の実際の差分から減算され、その結果が出力される。一実施例では、ＤＰＣＭ、プログレッシブ符号化あるいは空間領域符号化に使われている従来の予測方法が用いられる。
【０１５７】
一実施例では、形態学的(morphological)フィルタ（例えばメジアンフィルタ）のような非線形フィルタが用いられるかもしれない。一実施例では、１，１フィルタが、高域通過用の別のフィルタと共に用いられる。そのようなフィルタ系は２画素間の差を伝達できなければならない。復号器の有する任意のデータに基づき、その差がどうなるか予測することができる。この予測をするために、非線形形態学的フィルタを利用できる。本発明は、そのためにウインドウの原因側
(casual side)の実画素を利用し、それをフィルタに入力することにより画素周りのメジアンを計算する。フィルタの非原因側では、低域通過係数が画素値の代わりに利用される。
【０１５８】
＜２次元ウエーブレット分割＞
本発明の低域通過フィルタ及び高域通過フィルタを用いて、マルチ解像度分割が行なわれる。分割レベル数は可変であり任意数でよいが、現在のところ分割レベル数は２乃至５レベルである。
【０１５９】
画像のような２次元データに対する変換を実行する最も普通のやり方は、１次元フィルタを別々に適用する方法、つまり、行に沿って適用したのち列に沿って適用するという方法である。第１レベルの分割により４つの異なった係数バンド（ここではＬＬ，ＨＬ，ＬＨ，ＨＨと呼ぶ）が得られる。それら文字は、前に定義した平滑フィルタと細密フィルタの適用を意味する低（Ｌ）と高（Ｈ）をそれぞれ表す。したがって、ＬＬバンドは平滑フィルタから得られる行方向及び列方向の係数からなっている。ウエーブレット係数を図６乃至図９のような形に配置するのが一般的なやりかたである。
【０１６０】
ウエーブレット分割の各サブブロックをさらに分割することができる。最も普通のやりかたはＬＬサブブロックだけをさらに分割する方法であり、これは若干数繰り返して行うことができる。そのような多重分割はピラミッド分割と呼ばれる（図６乃至図９）。記号ＬＬ，ＬＨ，ＨＬ，ＨＨと分割レベル番号によって各分割を示す。なお、本発明のＳフィルタ、ＴＳフィルタのいずれの場合も、ピラミッド分割は係数サイズを増加させない。
【０１６１】
例えば、可逆ウエーブレット変換が再帰的に１つの画像に適用されるときには、第１レベルの分割は最も細かいディテールもしくは解像度に対し作用する。第１分割レベルでは、画像は４つのサブ画像（すなわちサブバンド）に分割される。各サブバンドは、１つの空間周波数帯域を表わしている。第１レベルのサブバンドはＬＬ0，ＬＨ0，ＨＬ0，ＨＨ0と表される。原画像を分割するプロセスは、水平，垂直の両次元の２：１のサブサンプリングを含むので、図６に示されるように、第１レベルのサブバンドＬＬ0，ＬＨ0，ＨＬ0，ＨＨ0はそれぞれ、入力が持っている画像の画素（または係数）の個数の４分の１の個数の係数を持っている。
【０１６２】
サブバンドＬＬ0は、水平方向の低い周波数情報と垂直方向の低い周波数情報を同時に含んでいる。一般に、画像エネルギーの大部分は当該サブバンドに集められる。サブバンドＬＨ0は、水平方向の低い周波数情報と垂直方向の高い周波数情報（例えば水平方向エッジ情報）を含んでいる。サブバンドＨＬ0は、水平方向の高い周波数情報と垂直方向の低い周波数情報（例えば垂直方向エッジ情報）を含んでいる。サブバンドＨＨ0は、水平方向の高い周波数情報と垂直方向の高い周波数情報（例えばテクスチャもしくは斜めエッジ情報）を含んでいる。
【０１６３】
この後に続く第２、第３、第４の下位分割レベルはそれぞれ、前レベルの低周波数ＬＬサブバンドを分割することによって作られる。第１レベルの当該サブバンドＬＬ0が分割されることによって、やや精細な第２レベルのサブバンドＬＬ1，ＬＨ1，ＨＬ1，ＨＨ1が作られる（図７）。同様に、サブバンドＬＬ1が分割されることによって、精細度の粗い第３レベルのサブバンドＬＬ2，ＬＨ2，ＨＬ2，ＨＨ2が生成される（図８）。また、図９に示されるように、サブバンドＬＬ2が分割されることにより、精細度がより粗い第４レベルのサブバンドＬＬ3，ＬＨ3，ＨＬ3，ＨＨ3が作られる。２：１のサブサンプリングにより、第２レベルの各サブバンドは、原画像の１６分の１の大きさである。このレベルの各サンプル（つまり画素）は、原画像中の同一位置のやや細いディテールに相当する。同様に、第３レベルの各サブバンドは、原画像の６４分の１の大きさである。第３レベルでの各画素は、原画像中の同一位置のかなり粗いディテールに相当する。また、第４レベルの各サブバンドは、原画像の２５６分の１の大きさである。
【０１６４】
分割された画像はサブサンプリングのため原画像より物理的に小さいので、原画像の格納のために使用されるメモリを利用して、分割サブバンド全部を格納できる。つまり、３レベル分割の場合、原画像と分割サブバンドＬＬ0，ＬＬ1は捨てられ、保存されない。
【０１６５】
４つのサブバンド分割レベルだけを示したが、個々のシステムの条件に応じて、それ以上のレベルを生成することも可能である。また、ＤＣＴのような他の変換又は一次元配置のサブバンドによって様々な親子関係が定義されてもよい。
【０１６６】
ピラミッド分割のウエーブレット係数には自然で有益なツリー構造がある。なお、最終分割レベルに対応するＬＬサブブロックはただ一つである。これに対し、レベル数と同数のＬＨ，ＨＬ，ＨＨブロックがある。このツリー構造により、ある周波数帯域内の係数の親は、それより低解像度の同じ周波数帯域内の係数であり、かつ同じ空間位置関係にあることが明らかになる。図１０は連続した２レベル間の親子関係を表している。
【０１６７】
図１０において、Ａの係数は、Ｂ，Ｃ，Ｄに対する直接の親であるが、またさらに、Ｂ，Ｃ，Ｄを親とする係数に対する親でもある。つまり、Ｂは、Ｅ付近の４係数に対する親である、またＨ付近の１６係数に対する親である、等々である。
【０１６８】
マルチ解像度分割のプロセスは、図１１に示すようなフィルタ系列を使って行なうことができる。長さＬの一次元信号を表わす入力信号は、フィルタユニット７０１，７０２により低域通過フィルタ処理及び高域通過フィルタ処理を施され後、ユニット７０３，７０４により２：１のサブサンプリングを施される。ユニット７０３によりサブサンプリングされた出力信号は、ユニット７０５，７０６により低域通過フィルタ処理及び高域通過フィルタ処理を施された後、ユニット７０７，７０８により２：１のサブサンプリングを施される。サブバンド成分Ｌ，Ｈがユニット７０７，７０８の各出力に得られる。同様に、ユニット７０５の出力信号は、ユニット７０９，７１０により低域通過フィルタ処理及び高域通過フィルタ処理を施された後、ユニット７１１，７１２によりそれぞれサブサンプリングされる。サブバンド成分Ｌ，Ｈがユニット７１１，７１２の各出力に得られる。上に述べたように、本発明の一実施例においてサブバンド分割に用いられるフィルタは、水平周波数帯域及び垂直周波数帯域を低周波数帯域及び高周波数帯域へ分割するためのデジタル直交ミラーフィルタである。
【０１６９】
図１２は、２次元２レベル変換を示している。図１３も、図２１及び図２２に示したような１次元フィルタを使って実現した２次元２レベル変換を示している。それら１次元フィルタ７６１〜７６６は、サブサンプリングにより不要になる演算を避けるため１画素位置おきに適用される。一実施例では、１次元フィルタは低域通過フィルタ演算と高域通過フィルタ演算との間で演算を共有する。
【０１７０】
したがって、本発明は、非最小長のオーバーラップ可逆フィルタが使用された圧縮・伸長システムを提供する。図１４は、そのようなシステムの一実施例のブロック図である。図１４において、最初に分割ブロック１００１で階層的分割が行なわれる。この階層的分割の結果は圧縮器１００２へ送られて圧縮される。ここで実行される圧縮には、ベクトル量子化、スカラー量子化、ゼロ・ランレングス符号化、ハフマン符号化、Tunstall等々が含まれよう。圧縮器１００２の出力は、オリジナル入力データを圧縮したものを表わすデータである。伸長器１００３は、そのデータを、いつか受け取って伸長することになろう。その時に、本発明は、逆分割ブロック１００４において非最小長オーバーラップ可逆フィルタを用い逆分割を行なって、オリジナルデータの復元データを生成する。なお、この非最小長オーバーラップ可逆フィルタは非Ｓ変換フィルタである。
【０１７１】
本発明の可逆ウエーブレットフィルタは、図１５に示すような典型的な分析及び強調システムにも使用し得る。図１５において、非最小長オーバーラップ可逆ウエーブレットフィルタ１１０１を使って、入力データに対し階層的分割が行なわれる。分析ユニット１１０２は、フィルタにより生成された係数を受け取り、それら係数をデシジョンに分類する。すなわち、係数を完全に符号化するのではなく、当面関係のある情報だけが抽出される。例えば、文書アーカイブシステムにおいて、空白のページは最も粗い低域通過サブバンドだけを利用して認識できるであろう。もう一つ例を挙げれば、ある特定のサブバンドの高域通過情報だけを利用して、テキスト画像と自然シーン画像とを区別する。階層的分割は、最初に粗いサブバンドによって粗いレジストレーション（registration）が行なわれるような、複数画像のレジストレーションにも利用できる。他の実施例においては、係数はユニット１１０６で強調処理またはフィルタ処理を施されてからユニット１１０７で逆分割が行なわれる。階層分割を利用して鮮明化、エッジ強調、ノイズ抑制等々を行なうこともできる。このように、本発明は、統合時間／空間領域及び周波数領域の分析システム並びにフィルタ処理／強調処理システム用のウエーブレット変換を提供する。
【０１７２】
＜係数及びビットプレーンの順序付け及びモデリング＞
本発明では、ウエーブレット分割の結果として生成される係数はエントロピー符号化される。本発明においては、係数は最初に埋め込み符号化（embeddedcoding）を施されるが、この符号化では、視覚的に重要な順に係数が順序付けられ、また、より一般的には何等かの誤差規準（例えば、歪み規準）を考慮して係数が順序付けられる。誤差または歪みの規準には、ピーク誤差と平均２乗誤差
（ＭＳＥ）が含まれる。なお、ビット有意度空間配置（bit-significancespatial location）より、データベース照会のための妥当性を優先させるように、また方向別に（垂直、水平、斜め等）、順序付けをすることができる。
【０１７３】
データの順序付けが行われることにより、符号ストリームの埋め込み量子化したものを生成する。本発明においては、２つの順序付け方法が利用される。その一つは係数を順序付けするためのものであり、もう一つは係数中の２進値を順序付けするためのものである。本発明の順序付けはビットストリームを生成し、このビットストリームはその後に２元エントロピー符号化器により符号化される。
【０１７４】
一実施例では、係数の符号化及びモデリングはＭ元符号化を構成する。別の実施例では、ビット単位でなく、バンド単位でのみ埋め込まれる。また、非損失性符号化又はシングルクオリティ(single quality)損失性符号化（例えば符号化器で規定される量子化）のために、非埋め込み符号化が係数の順序付け及びモデリングと一緒に利用されてもよい。
【０１７５】
＜符号化単位＞
本発明において、符号化単位はツリーの矩形集合であり、これは画像の残りの部分と独立に符号化される。符号化単位は符号化データの最小単位を表す（符号化単位の部分的な符号化を許す量子化オプションもあるが）。１符号化単位内のデータを全部、符号化器は一度に入手でき、例えばメモりにバッファされる。
【０１７６】
符号化単位の選び方は構成次第である。符号化単位は、画像全体（もしくは他のデータ集合）又は本発明の１つのツリー、あるいはその中間の矩形と定義されるかもしれない。一実施例では、符号化単位の選択は圧縮効率とメモリ使用量との間の兼ね合いで決まることになろう。
【０１７７】
一実施例においては、符号化単位内の全ての係数がランダムアクセスメモリ内にある。符号化単位内の全係数がランダムアクセスメモリ内にあるから、符号化単位内の係数間の埋め込み順序を任意の順序にできる。この順序は符号化器と復号器の両方が知っている。しかしエントロピー符号化器はこの順序付けに関して原因側であるから、その順序は圧縮に重大な影響を及ぼすので慎重に選ばれる。順序付けの一実施例を後に述べる。
【０１７８】
＜モデリング＞
本発明においては、統合空間／周波数モデリングが、本発明のウエーブレット変換により生成された係数の符号化に利用される埋め込み符号化システムを構成する。統合空間／周波数モデリングは、既知の周波数帯域と近傍画素（またはデータ）を両方利用する。統合空間／周波数モデリングの一実施例は、本明細書において水平（horizon）モデリングと呼ばれる。
【０１７９】
データはまず符号／絶対値形式にフォーマットされ、次に該データは有意度に基づいて並べ替えられる。別の実施例では、作業領域メモリをさらに減らすため、係数は符号／絶対値形式でなく絶対値／化数形式で格納してもよい。
【０１８０】
データは、所与の有意度規準に関連して並べ替えられた後、符号化される。
【０１８１】
ある信号ｘ（ｎ）を想定し、各ｘ(n)がＲビットの精度で表現されているとした場合、本発明の埋め込み符号化は、その信号の各ｘ(n)の最上位の１ビット（または複数ビット）を符号化し、次にその下位の１ビット（または複数ビット）を符号化し、さらに下位のビットというように符号化する。例えば、視覚的に定義される順序付けの場合、中央部分でコーナー沿いまたは縁近傍より高い品質を要求する画像（例えば、ある種の医用画像）は、中央部分の画素の下位ビットが周辺部画素の上位ビットより先に符号化されるような符号化を施されよう。
【０１８２】
＜ビット有意度(Bit-Significance)表現＞
一実施例では、係数内の２進値に対し用いられる埋め込み順序はビットプレーン順である。係数はビット有意度表現で表される。ビット有意度は、最上位ビット（ＭＳＢ）ではなくて、符号ビットが最初の非ゼロ絶対値ビットと共に符号化される符号／絶対値表現である。
【０１８３】
ビット有意度形式で表現される数には３種類のビット、すなわちヘッド(head)ビット、テール(tail)ビット及び符号(sign)ビットがある。ヘッドビットとは、ＭＳＢから最初の非ゼロ絶対値ビットまでの全てのゼロビットに、その最初の非ゼロ絶対値ビットを含めたものである。その最初の非ゼロ絶対値ビットが存在するビットプレーンで、係数の有意度が定まる。最初の非ゼロ絶対値ビットの後からＬＳＢまでのビットがテールビットである。符号ビットは符号(sign)を表示するにすぎない。ＭＳＢが非ゼロビットの数は、ヘッドビットが１ビットだけである。ゼロの係数は、テールビットも符号ビットも持たない。
【０１８４】
画素の輝度に関連して起こるような、値が非負の整数の場合、採用し得る順序はビットプレーン順（例えば、最上位ビットプレーンから最下位ビットプレーンへの順）である。２の補数による負整数も許容される実施例では、符号ビットの埋め込み順序は、整数の絶対値の最初の非ゼロビットと同じである。したがって、１つの非ゼロビットが符号化されるまで、符号ビットは考慮されない。例えば、符号／絶対値表記法によれば、−７の１６ビット数は
１００００００００００００１１１
である。ビットプレーン・ベースで、初めの１２デシジョン(decision)は”非有意”(insignificant)すなわちゼロとなる。最初の１−ビットは１３番目のデシジョンに存在する。次に、符号ビット（”負”）が符号化される。符号ビットが符号化された後、テールビットが処理される。１４番目と１５番目のデシジョンは共に”１”である。
【０１８５】
＜係数アラインメント(alignment)＞
ＦＦＴやＤＣＴと同様、異なったサブブロック内の係数は異なった周波数を表す。ビットプレーン符号化の前に、係数を相互に整列させることにより量子化が行われる。量子化の重さが少ない係数ほど早いビットプレーン側へ整列される（例えば左へシフトされる）。よって、ストリームが切り捨てられる場合、これらの係数はそれを定義するビットが、それより重く量子化された係数に比べ多くなる。
【０１８６】
一実施例では、係数はＳＮＲ又はＭＳＥの見地から最高のレート−歪み性能が得られるように整列される。あるいは、アラインメントは係数データの物理視覚的（physchovisual)量子化を許容する。アラインメントは画像品質の向上に相当な影響を及ぼすが、非損失性圧縮の最終的な圧縮率には殆ど影響しない。
【０１８７】
ｂビット／画素の入力画像からの２レベルＴＳ変換分割における幾つかの係数のビット深度(depth)が図１６及び図１７に示されている。係数を整列させるために、１−ＨＨ係数サイズが基準として用いられ、このサイズに対し様々にシフトさせる。表１は、このようなアラインメントプロセスの一例を示している。
【０１８８】
【表１】
0003693988.tif 000043
【０１８９】
なお、符号(sign)ビットはＭＳＢではなく、また最初のテールビットと一緒に符号化される。アラインメントはビットがエントロピー符号化器へ送られる順序を制御するにすぎない、ということに注意することが大切である。余分なゼロビットを実際に埋め込んだり、シフトしたり、格納したり、あるいは符号化したりはしない。
【０１９０】
＜コンテキストモデル＞
本発明に利用される水平コンテキストモデルの一実施例を以下に述べる。このモデルは、係数の空間及びスペクトル従属性に基づいて符号化単位内のビットを利用する。隣接した係数及び親係数の利用可能な２進値を使って、コンテキストを生成できる。しかし、コンテキストはデコーダビリティと因果関係があり、また、多少は効率的適応と因果関係がある。
【０１９１】
＜エントロピー符号化＞
一実施例では、本発明により実行されるエントロピー符号化は、２元エントロピー符号化器によって行われる。一実施例では、エントロピー符号化器１０４はＱコーダー、ＱＭコーダー、有限状態マシン、高速並列コーダー等である。単一の符号化器を用いて単一の出力符号ストリームを生成してもよい。または、複数の（物理又は仮想）符号化器を用いて複数の（物理又は仮想）データストリームを生成してもよい。
【０１９２】
一実施例では、本発明の２元エントロピー符号化器はＱコーダーである。Ｑコーダーのこれ以上の情報を得るには、Ｐennebaker，Ｗ．Ｂ.，et al.，"Ａn Ｏverview of the Ｂasic Ｐrinciples of the Ｑ-coder Ａdaptive Ｂinary Ａrithmetic，"IBM Ｊournal of Ｒesearch and Ｄevelopment, Vol．32, pg．717-26，1988 を読まれたい。別の実施例では、２元エントロピー符号化器は、周知の効率的な２元エントロピー符号化器であるＱＭコーダーを用いる。ＱＭコーダーは、確率スキューが非常に高いビットに対して特に効率的である。ＱＭコーダーはＪＰＥＧ規格とＪＢＩＧ規格の両方に採用されている。
【０１９３】
２元エントロピー符号化器は、有限状態マシン（ＦＳＭ）コーダーでもよい。このような符号化器は、確率及び事象(outcome)から圧縮ビットストリームへの単純な変換を提供する。一実施例では、有限状態マシンコーダーは、テーブルルックアップを利用し符号化器及び復号器として実現される。多様な確率予測法を、このような有限状態マシンコーダーに利用できる。確率が０．５に近い場合に圧縮率が非常によい。確率が大きくスキューした場合の圧縮率は、用いられるルックアップテーブルのサイズに依存する。ＱＭコーダーと同様、有限状態マシンコーダーは、デシジョンが発生順に符号化されるので、埋め込みビットストリームに対して有効である。出力はルックアップテーブルにより決められるので、”キャリーオーバー”(carry over)の問題が起こる心配は全くない。実際には、ＱコーダーやＱＭコーダーと違って、符号化と圧縮出力ビットの生成までの間に最大遅延時間が存在する。一実施例では、本発明の有限状態マシンコーダーは、１９９３年１２月２１日発行の米国特許第５，２７２，４７８号 ”Ｍethod andＡpparatus for Ｅntropy Ｃoding ”に述べられているＢコーダーである。
【０１９４】
一実施例では、本発明の２元エントロピー符号化装置は高速並列コーダーからなる。ＱＭコーダーもＦＳＭコーダーも、１度に１ビットが符号化又は復号されなければならない。高速並列コーダーは、数ビットを並列に処理する。一実施例では、高速並列コーダーは、圧縮性能を犠牲にすることなく、ＶＬＳＩハードウエア又はマルチプロセッサ・コンピュータで実現される。本発明において利用し得る高速並列コーダーの一実施例は、１９９５年１月１０日発行の米国特許第５，３８１，１４５号 ”Ｍethod and Ａpparatus for Ｐarallel Ｄecoding andＥncoding of Ｄata”に述べられている。
【０１９５】
殆どの効率的なエントロピー符号化器は、基本フィードバックループによって速度が制限される。考えられる一解決法は、入力データストリームを複数のストリームに分割して複数の並列符号化器に与えることである。それら符号化器の出力は、可変長符号化データの複数ストリームである。この種方法の課題の一つは、データを単一のチャンネルでどのようにして伝送するかである。米国特許第５，３８１，１４５号に述べられている高速並列コーダーは、この課題を、それら符号化データストリームをインターリーブする方法によって解決する。
【０１９６】
本発明に用いられるコンテキストの多くは固定確率であり、このことがＢコーダーのような有限状態マシンコーダーを特に有効なものにする。なお、システムが０．５に近い確率を利用する場合、上記特許に開示された高速並列コーダー及び有限状態マシンコーダーは共にＱコーダーより効率よく動作する。よって、それら両方のコーダーは本発明のコンテキストモデルの場合に圧縮上の強みを潜在的に持っている。
【０１９７】
＜本発明の符号化及び復号のプロセス＞
次に述べる図１８乃至図２０のフローチャートは、本発明の符号化プロセス及び復号プロセスを表している。これらのプロセスは、ソフトウエアで実行されてもハードウエアで実行されてもよい。いずれの場合にも、それを実施する処理ロジックに言及した。
【０１９８】
図１８は本発明の符号化プロセスの一実施例を示す。図１８において、符号化プロセスはまず処理ロジックに入力データを１符号化単位分だけ取得させる（処理ブロック１３０１）。つぎに、処理ロジックは、その符号化単位の入力データに可逆フィルタをかける（処理ブロック１３０２）。
【０１９９】
つぎに、別の分割レベルが必要か判定する（処理ブロック１３０３）。必要ならば、処理ロジックは全てのＬＬ係数に可逆フィルタをかけ（処理ブロック１３０４）、そしてプロセスはループバックして処理ブロック１３０３から処理を継続する。別の分割レベルが必要でなければ、処理ブロック１３０５から処理を続け、処理ロジックは係数を符号(sign)／絶対値形式に変換する。
【０２００】
係数を符号／絶対値形式に変換した後、ビットプレーン変数Ｓが最上位ビットプレーンに設定される（処理ブロック１３０６）。そして、処理ロジックは随意、エントロピー符号化器を初期化する（処理ブロック１３０７）。
【０２０１】
エントロピー符号化器が初期化されたならば、処理ロジックは各係数の各ビットをコンテキストモデルでモデリングし、そのビットをエントロピー符号化する（処理ブロック１３０８）。そのビットをエントロピー符号化した後、データは伝送されるか記憶される（処理ブロック１３０９）。
【０２０２】
その後、画像中にほかに符号化単位があるか判定する（処理ブロック１３１０）。ほかに符号化単位があるならば、処理は処理ブロック１３０１へ続く。一方、ほかに処理単位がなければ、処理は終了する。
【０２０３】
図１９は本発明の復号プロセスの一実施例を示す。図１９において、プロセスはまず処理ブロックに符号化データを１符号化単位分だけ取り出させる（処理ブロック１４０１）。次に、変数Ｓが最上位ビットプレーンに設定される（処理ブロック１４０２）。ビットプレーン変数Ｓを最上位ビットプレーンに設定した後、処理ロジックは随意にエントロピー符号化器を初期化する（処理ブロック１４０３）。
【０２０４】
エントロピー符号化器が初期化された後、処理ロジックは各係数の初期値をゼロにする（処理ブロック１４０４）。次に、処理ロジックは各係数の各ビットをコンテキストモデルでモデリングして復号し（処理ブロック１４０５）、そして係数をフィルタ処理に適した形式に変換する（処理ブロック１４０６）。この変換は、例えばビット有意度形式から２の補数形式への変換である。続いて、処理ロジックはまず最高の分割レベルからの係数にインバースフィルタをかける（処理ブロック１４０７）。
【０２０５】
次に、全てのレベルがインバースフィルタ処理されたか判定する（処理ブロック１４０８）。まだ全レベルはインバースフィルタ処理されていなければ、処理ロジックは、次の最も高い分割レベルの係数にインバースフィルタをかけ（処理ブロック１４０９）、処理ブロック１４０８に戻る。全レベルがインバースフィルタ処理されたならば、処理ブロック１４１０に進み復元データが格納されるか伝送される。復元データを格納又は伝送した後、まだほかに符号化単位があるか判定する（処理ブロック１４１１）。まだほかに符号化単位があるときには、処理は処理ブロック１４０１にループバックし、プロセスが繰り返される。もうほかに符号化単位がなければ、プロセスは終了する。
【０２０６】
図２０は本発明によるビットモデリングプロセスの一実施例を示す。図２０において、ビットモデリングプロセスは初めに係数変数Ｃを最初の係数に設定する（処理ブロック１５０１）。つぎに、｜ｃ｜＞２S の判定が行われる（処理ブロック１５０２）。この判定条件が成立するときには、処理ブロック１５０３に処理が進み、処理ロジックはテールビット用モデルを用いて係数ＣのビットＳを符号化し、処理ブロック１５０８に処理が進む。このテールビット用モデルは静的（非適応的）モデルでかまわない。｜ｃ｜が２S より大きくないときには、処理は処理ブロック１５０４に進み、処理ブロックはテンプレートをヘッドビット（頭の０のビットと最初の”１”ビット）に適用する。テンプレートを適用した後、処理ロジックは係数ＣのビットＳを符号化する（処理ブロック１５０５）。可能なテンプレートを図３３（Ａ）〜（Ｃ）に示す。テンプレートは、図２４及び図２５に示すようにＬＵＴを用いて実現してよい。
【０２０７】
次に、係数ＣのビットＳがオンであるか判定する（処理ブロック１５０６）。係数ＣのビットＳがオンでなければ、処理ブロック１５０８へ進む。一方、係数ＣのビットＳがオンならば、処理ブロック１５０７に進み、処理ロジックは符号(sign)ビットを符号化する。それから処理ブロック１５０８へ進む。
【０２０８】
処理ブロック１５０８で、係数Ｃが最後の係数であるか判定する。係数Ｃが最後の係数でなければ、処理ブロック１５０９に進んで係数変数Ｃが次の係数に設定され、処理ブロック１５０２から処理を続ける。一方、係数Ｃが最後の係数ならば、処理ブロック１５１０に進んでＳが最後のビットプレーンであるか判定される。Ｓが最後のビットプレーンでなければ、ビットプレーン変数Ｓが１だけデクリメントされ（処理ブロック１５１１）、処理ブロック１５０１から処理が継続する。Ｓが最後のビットプレーンとときは、処理は終了する。
【０２０９】
＜他の実施例＞
本発明は、ハードウエア及び／又はソフトウエアで実現できる。ハードウエアにより本発明を実施するには、ウエーブレットフィルタ、同フィルタにデータを供給するためのメモリ／データフロー管理、本発明の埋め込み符号化を制御するためのコンテキストモデル、同コンテキストモデルにデータを提供するためのメモリ／データフロー管理、及び２元エントロピー符号化器を実現する必要がある。
【０２１０】
＜ウエーブレットフィルタ＞
本発明のフォワード・ウエーブレットフィルタの一実施例が図２１に示されている。図２１に示したウエーブレットフィルタは、ｘ(2)〜ｘ(5)として示した１６ビットの２の補数の入力画素を４個取り込む。
【０２１１】
図２１において、２タップ”１１”低域通過フィルタは１６ビット加算器１６０１を用いる。その出力はそれぞれＳとＤと呼ばれる。この加算器の出力（Ｓ）は、１ビットシフトブロック１６０３により１６ビットに丸められる。この１ビットシフトブロック１６０３は、１７ビット入力を１ビット右シフトすることにより２による割り算を実行する。
【０２１２】
６タップ”-1 -1 8 -8 1 1 ”高域通過フィルタは、−Ｓ0＋４Ｄ1＋Ｓ2 の計算を必要とする。Ｓ2−Ｓ0  は、１ビットシフトブロック１６０３の出力及びＹ0(0)を受け取る１６ビット減算器１６０５により計算される。４Ｄ1 項は、減算器１６０２、２ビットシフトブロック１６０４及び加算器１６０８によって計算される。１６ビット減算器１６０２の出力は、２ビットシフトブロック１６０４で２ビット左シフトされることにより４倍される。２ビットシフトブロック１６０４の出力は、加算器１６０８により２と加算される。なお、２ビットシフトがあるため、加算器１６０８は布線に置き換えられてもよい。加算器１６０８の４Ｄ1 出力と減算器１６０５の出力の加算が２０ビット加算器１６０６により行なわれる。この加算器１６０６の出力は、２ビットシフトブロック１６０７によって１８ビットに丸められる。この２ビットシフトブロック１６０７は、その２０ビット入力を２ビット右シフトすることにより４で割る働きをする。
【０２１３】
このように、必要とされる演算ハードウエア全体（中間結果を格納するためのレジスタは数にいれない）は、
・１６ビット加算器  １個
・１６ビット減算器  ２個
・１９ビット加算器  １個
である。なお、シフト操作（及び加算器１６０８）は布線によって行なわれるのでロジックは全く必要とされない。
【０２１４】
他の実施例では、Ｎビットサイズの入力の場合、１個のＮビット加算器、２個のＮビット減算器及び１個の（Ｎ＋３）ビット加算器が使われることになろう。
【０２１５】
これらの加算器／減算器はハードウエアコストが非常に低いので、希望するならばフィルタの並列構成も利用できる。
【０２１６】
あるいは、ｘ(3)とｘ(2)の減算の代わりに、ｘ(4)−ｘ(5)を計算し、これを次のシフトまたはフィルタ処理のためのｘ(2)−ｘ(3)として必要になるまでセーブしてもよい。このフォワードフィルタ及び下に述べるインバースフィルタのいずれも、スループットを上げるためパイプライン化してもよい。
【０２１７】
インバース・ウエーブレットフィルタが図２２に示されている。入力Ｙ0(0)，Ｙ0(2)は減算器１７０１により減算される。減算器１７０１の出力に、加算器１７０９により２が加算される。この加算の結果は２ビットシフトブロック１７０２で右に２ビットシフトされる。これは実質的には、減算器出力を４で割り算することである。２ビットシフトブロック１７０２の出力と入力Ｙ1(0)との減算が減算器１７０４で行なわれる。入力Ｙ0(1)は、１ビットシフトブロック１７０３により左に１ビットシフトされることにより、２倍される。Ｙ0(1)が１ビットシフトされた（２倍された）のち、そのシフト後の値のＬＳＢは減算器１７０４の出力から差し引かれるＬＳＢであり、１ビットシフトブロック１７０３の１６ビット出力と結合されて加算器１７０５と減算器１７０６の入力となる。加算器１７０５及び減算器１７０６のもう一方の入力は、減算器１７０４の出力である。加算器１７０５及び減算器１７０６の出力はその後、クリップユニット１７０７，１７０８によりクリッピッングを施される。
【０２１８】
２つのクリップ操作は様々なものを用いてよい。いずれの場合も、２０ビットの値が１ビットシフトされ（２で割り算され）、１９ビット値とされる。非損失性圧縮だけをするシステムの場合、下位１６ビットを出力してよい（残り３ビットは無視してよい）。損失性システム（または損失性／非損失性システム）では、１９ビット値は、負ならば０に設定され、２16−１を超えるときには２16−１に設定され、それ以外ならば下位１６ビットを出力してよい。
【０２１９】
Ｎビットサイズの入力の場合、１個のＮビット減算器、１個の（Ｎ＋１）ビット加算器、１個の（Ｎ＋２）ビット減算器、１個の（Ｎ＋３）ビット加算器及び１個の（Ｎ＋３）ビット減算器が使われることになろう。そして、クリップユニットはＮビットを出力する。
【０２２０】
ウエーブレット変換の一実施例では、変換計算にモンテカルロ除法が利用され、擬似乱数発生器を用い、その出力に基づき変換演算の結果が切り上げ又は切り下げられる。丸めが行われたことを復号器が知っている限り（すなわち、復号器が同一点から始まる同一の乱数発生器を用いる限り）、そのような構成が利用できる。
【０２２１】
＜ウエーブレットフィルタのデータフロー管理のためのメモリ使用量＞
本発明のウエーブレットフィルタのためのメモリ及びデータフロー管理に関してであるが、１枚のフルフレームがメモリにぴったり入る画像の場合、メモリ／データフロー管理は難しい問題ではない。１０２４×１０２４、１６ビットの医用画像（すなわち２Ｍバイトサイズ）の場合でもそうであるが、１つのフルフレームバッファを用意すれば多くの用途に間に合う。さらに大きな画像（例えば、Ａ４，４００ＤＰＩ，４色の画像は約５０Ｍバイトの大きさである）については、限られた量のラインバッファメモリを利用してウエーブレット変換を行なうのが望ましい。
【０２２２】
なお、本発明が１パスシステムを実現するのにフルフレームバッファは必要でない。このため、必要とされるメモリは約１００分の１になる（大きな画像のためのフルフレームバッファを用いる場合に比べ）。本発明の１パスシステムは後述する。
【０２２３】
フィルタメモリに格納されるデータは、埋め込み符号化及び２元エントロピー符号化がなされる係数の系列である。埋め込み符号化は、コンテキストを用いて水平符号化の利用を調整し、かつデータを適当な順序で供給する。コンテキストモデルを用いる。このコンテキストモデルは、メモリ管理スキームと関連して働く。フルフレームメモリを持つシステムの場合、データを適当な順序で供給することは難しくない。
【０２２４】
システムの作業領域メモリの大きさが限られている場合、一実施例では、記憶に必要なメモリの作業領域ライン数を減らすため色々な高さ（height)の変換が使われる。このように、幅の大きな画像がきても、その画像を割り当てられた作業領域メモリの範囲内に効率よく圧縮することができる。例えば、ライン数を減らすためＳ変換は垂直に用いられる。
【０２２５】
ラスターデータをバッファしウエーブレット変換を実行できるようにするために、メモリが必要である。このメモリを最小にすることが、アプリケーションによってはコスト削減のため重要である。それを実現する方法を下に述べる。
【０２２６】
ここに述べるウエーブレット２−Ｄ変換の一実施例は、１−パス(pass)構成でメモリ使用が限定される場合を想定している。一実施例では、ピラミッド分割を実行するために適用されるウエーブレット変換は、ＴＳ変換とＳ変換だけである。この実施例では、４レベルの分離可能なピラミッド分割がある。一実施例では、４レベル分割がＳ変換及びＴＳ変換によって実行される。一実施例においては、水平（行方向）分割にはＴＳ変換だけが使われる、すなわち水平分割はＴＳ−ＴＳ−ＴＳ−ＴＳの形になる。垂直（列方向）分割には、Ｓ変換とＴＳ変換の両方が、ＴＳ−ＴＳ−Ｓ−Ｓの形で使われる。その２つのＴＳ変換がＳ変換で置き換えられると、圧縮率の犠牲は小さいがメモリ使用に大きな影響がある。水平変換と垂直変換は、例のごとく交互に適用される（図２６）。
【０２２７】
Ｓ変換とＴＳ変換をどのように組み合わて水平変換及び垂直変換を実施してもよい。また、変換の順序が色々に変わっても構わないが、復号器が、その順序を認識し逆の順序で逆の動作をしないと完全には可逆とならない。
【０２２８】
＜係数ツリー＞
ピラミッドシステムでは、ツリー構造を用いて係数を複数組にグループ分けできる。各ツリーのルートは純粋に１つの低域通過係数である。図１０は、変換画像の１つの純粋に低域通過の係数に関するツリー構造を示している。画像のような２次元信号の場合、ツリーのルートは３個の”子”を持ち、その他のノードはそれぞれ４個の子を持つ。ツリー階層構造は２次元信号に限定されない。例えば、１次元信号の場合、ルートは１個の子を持ち、ルート以外のノードはそれぞれ２個の子を持つ。１次元及び２次元のケースから、より多次元のケースを理解できる。
【０２２９】
ツリー構造は、図１１乃至図１３に示したフィルタの動作からも明らかである。フィルタ・ペア群の作用とサブサンプリングにより、前述の係数が関連付けられる。
【０２３０】
一実施例では、係数はビット有意度又はビットプレーン埋め込み方式で符号化される。係数は最上位のビットプレーンから最下位のビットプレーンへと符号化されるので、データのビットプレーン数を確定しなければならない。本発明では、係数値の絶対値の上限を、データから計算するか、画像の深度（depth）及びフィルタ係数より得ることによって、ビットプレーン数の確定がなされる。一例を挙げれば、上限が１４９のときは、８ビットの有意度つまり８つのビットプレーンがある。ソフトウエアの速度のために、ビットプレーン符号化を利用できないかもしれない。別の実施例では、係数が２進数として意味があるときにだけ、ビットプレーンが符号化される。
【０２３１】
一実施例では、本発明の水平コンテキストモデルは、ウエーブレット係数をビット有意度埋め込み符号化して２元エントロピー符号化器に送る。
【０２３２】
＜コンテキストモデルの代案＞
分割が終わりデータ係数が順序付けされたならば、本発明のコンテキストモデルが係数を符号化するために用いられる。様々なコンテキストモデルを用いることができる。デシジョンは、空間的位置、レベル、及び／又はビット位置により条件付けすることができる。デシジョンはまた、現在データと空間的位置、レベル及び／またはビット位置が接近した、既に符号化されたデータにより条件付けするこどできる。
【０２３３】
いくつか例を挙げれば次のとおりである。最上位のテールビット（したがって最も容易に予測される）は、その他のビットとは異なったコンテキストを用いることができる。ヘッドビットは、同一変換レベルの空間的に接近した前の係数の同一ビットにより条件付けすることができる。同様に、有意な係数の符号ビットは、同一レベルの空間的に接近した前の係数の符号ビット、あるいは親の係数の符号ビットにより条件付けすることができる。
【０２３４】
コンテキストモデルの改良は、空間的構造またはマルチ解像度構造を有する画像を圧縮する場合に特に重要である。線図形またはテキストのグレースケール画像は、その両方の構造タイプを持つ画像の一例である。コンテキストモデルの改良は、すでに圧縮されてから伸長されたファイルを、指定したピーク誤差で圧縮する場合にも重要である。
【０２３５】
本発明をソフトウエアで実施する場合、コンテキストのためのビットを得るために長い時間が費やされるが、それは、そのビットが条件付けに欠かせないからである（例えば、すべてのヘッドビット）。本発明の一実施例によれば、ルックアップテーブル（ＬＵＴ）を使うことによりソフトウエアによる実行をスピードアップし得る。これは、コンテキストとして利用される北（Ｎ）画素、北西（ＮＷ）画素、西（Ｗ）画素及び南西（ＳＷ）画素に対し別々にビット抽出操作をしないようにする。
【０２３６】
図２４及び図２５は本発明におけるヘッドビットの条件付けのための状態マシンを示している。図２４において、新しい親のためのＬＵＴ１９０１が符号化／復号ブロック１９０２に接続されている。ＬＵＴ１９０１は、親を表すビットと、上の（ＮＥ）係数、現在の（Ｅ）係数及び下の（Ｓ）係数を表すビットを受け取るように接続される。一実施例では、親入力と現在入力はそれぞれ２ビットからなる。ＬＵＴ１９０１の他の入力に、ＬＵＴ１９０１より出力されるコンテキストと符号化／復号ブロック１９０２の出力の全部又は一部がフィードバックとして入る。一実施例では、ＬＵＴ１９０１によるコンテキストとしての１０ビット出力の８ビットがＬＵＴ１９０１の入力にフィードバックされる。
【０２３７】
ＮＥ，Ｅ，Ｓ係数が用いられるのは、それら係数が、前ビットプレーンに関連した係数情報からなるテンプレート情報の前エッジを表すからである。なお、南（Ｓ）係数に代え、南東（ＳＥ）係数を用いてもよい。
【０２３８】
一実施例では、テンプレートが符号化単位の外側にあるときには、その外側の条件付けビットを、現在画素のビットで置き換えてよい。
【０２３９】
図２５は、同じ親に対しＬＵＴを用いて条件付けする状態マシンを示している。その場合、コンテキスト全体がＬＵＴ１９０３の入力へフィードバックされる。１９０４は符号化／復号ブロックである。
【０２４０】
データがラスター順に処理される場合、ＬＵＴを利用するとメモリアクセス数が減るが、それは最後のコンテキストを生成するため使われた同じメモリを再格納しなくてよいからである。
【０２４１】
また、ＬＵＴメモリのサイズを減らすため、親の条件付けを、他の条件付けだけを扱うＬＵＴの出力と論理和することにより独立に行ってもよい。
【０２４２】
少し大きなＬＵＴテーブルにより、次のビットプレーンに対する条件付けの大部分も可能になる。別の小さなＬＵＴで、現在コンテキストＬＵＴから状態情報を取得し、それを次のビットプレーンから新たに入手できるデータと結合することも可能である。これは、１つのツリーを一度に符号化する場合に特に効果的である。
【０２４３】
本発明に関し以上に述べたように、”効率的”とは、変換の行列式の値が１であることを意味すると定義してよい。かかる場合、低い確率の事象のためのスペースを、その低確率がゼロの時に省くことにより、符号空間は無駄に使われない。しかし、同じく８ビットの係数が入力し、１つの８ビット係数と１つの９ビット係数を発生するので、依然として効率は向上するであろう。あらたな非能率な点は、可能な係数の空間が回転することによる。
【０２４４】
変換操作の一定の結果から、計算に使われた数が一意に明らかになることに注意すべきである。そのようになるのは、それら結果が可能な結果のレンジの境界に近い時である。これを図２３に例示する。図２３において、ｕは低域通過値を表し、ｖは高域通過値である。ｕとｖの値は独立でないので、これらの値は統合情報を考慮するとエントロピー符号化が容易になろう。その理由は、図２３に示されるように、殆どの低域通過値について、高域通過値用符号空間のかなりが使われないからである。多くの用途では、これら可能なペアに割り当てられる確率が低いからといって利益は殆どない。しかし、用途によっては、それなりの利益があるかもしれない。操作を高速化するために、ＬＬ係数のもっと多くのビットをＬＨ係数，ＨＬ係数及びＨＨ係数より前に送ってもよい。こうすると境界設定が容易になる。
【０２４５】
実施例によっては、各符号化単位の符号化が済むと、すべてがリセットされ、次の単位を符号化する時に全ての統計量と確率がリセットされる。一実施例では、統計量の一部又は全部がセーブされる。これらの統計量は、その後の符号化単位が始まる時に初期統計量として働く。一実施例では、最初の又は前の符号化単位の符号化中の所定時点に統計量がセーブされる。例えば、第３のビットプレーンを符号化した後、現在符号化単位の符号化に使われた統計量がセーブされ、次の符号化単位又はそれより後の符号化単位の符号化の開始時に統計量として用いられる。別の実施例では、全ての画像の種類が評価され、ハードにより符号化された統計量の集合が決定される。そして、これらハード符号化統計量をデフォルトとして用いて符号化が実行される。もう一つの実施例では、統計量がビットプレーン毎にセーブされ、その統計量が他のタイル(tile)の類似したビットプレーンの符号化時に利用される。
【０２４６】
一実施例では、最初の１ビットまでは全く符号化がない。係数の最初の１のビットが現れるた時に、符号(sign)が符号化される。ヘッドビットは画像／領域に依存するが、テールビットは様々な画像及び領域にわたって、それより一定している。テールビットが（ヘッドビット中の）初めの１のビットから、どのくらい離れているかに基づいて、ある確率クラスがテールのビットを符号化するために用いられる。一実施例では、係数の最初のテールビットは０．７を含む確率クラスで符号化される。２番目及び３番目のテールビットは０．６を含む確率クラスで符号化される。最後に、４番目以降のテールビットは０．５を含む確率クラスで符号化される。
【０２４７】
＜Ａ．ウエーブレット変換の実行＞
１−パスのシステムでは、実行されるウエーブレット変換は圧縮性能とメモリ使用量との兼ね合いで決まる。符号化単位のサイズは、ラインバッファが最小でメモリ使用量が最小となるように選ばれる（画像がラスター順に与えられるとして）。ウエーブレット変換の中間係数は、同じメモリに適当な時に入力と置き換わって格納される。
【０２４８】
＜ウエーブレット変換フィルタの選択＞
ここに述べるウエーブレット２−Ｄ変換は、１−パスで実行されかつメモリ使用量が制約されることを予定している。４レベルの分離可能なピラミッド分割がある。水平分割には、ＴＳ変換だけが用いられる、すなわち、水平分割はＴＳ−ＴＳ−ＴＳ−ＴＳの形となる。垂直分割には、Ｓ変換とＴＳ変換が両方用いられ、そして垂直分割はＴＳ−ＴＳ−Ｓ−Ｓの形となる。水平変換と垂直変換は、例の通り交互に適用される。図２６は水平分割と垂直分割を表している。
【０２４９】
そのＴＳ変換の２つがＳ変換で置き換えられると、圧縮率の犠牲は小さいがメモリ使用量に大きな影響がある。最後の２つの垂直パスにＳ変換を使うことを選んだのは、単に使用メモリを減らすためである。Ｓ変換を使うと、係数バッファの約３２ラインが節約される（例えば、４８ラインから１６ラインに減る）。なお、全ての分割にＴＳ変換を使えば、より優れた圧縮性能を得られる。
【０２５０】
＜符号化単位の定義＞
一実施例では、符号化単位は１列のツリー（１列のＬＬ係数とそれらの子孫全部）により定義される。４レベルの分割の場合、それは空間領域において符号化単位は１６ライン×画像幅であるということを暗に意味する。図２７は１つの符号化単位を示している。なお、図２７は縮小率が一定ではない。レベル１のブロックは１回の２−Ｄ分割の後の画像である。何度も繰り返すのでＬＬ（low-low)，ＬＨ(low-high)，ＨＬ(high-low)，ＨＨ(high-high)という名称が、サブブロックを呼ぶのに用いられ、またレベル１〜レベル４のブロック全部に適用される。レベル２のブロックはレベル１のブロックのサブブロックＬＬを２−Ｄ分割した結果である。同様に、ブロック３とブロック４はそれぞれ、レベル２のブロックとレベル３のブロックのサブブロックＬＬを２−Ｄ分割したものである。
【０２５１】
符号化単位は、レベル１のＨＨ，ＨＬ，ＬＨの係数については８ラインの高さであり、レベル２の同係数については４ラインの高さであり、レベル３の同係数については２ラインの高さであり、レベル４の同係数及びサブブロックＬＬの係数については１ラインの高さである。なお、ステップ毎に解像度が下がるにつれて、長さ並びに行数が半分になる。レベル４のブロックのＬＬ内の各係数は、１つのツリーの一番上の親である。
【０２５２】
＜バッファリング及び係数計算＞
図２７で述べた１つの符号化単位を生成するためには、２・ｗ・ｍの大きさの作業領域バッファが用いられる。ここで、ｗは画像の幅、ｍは最大係数サイズ
（ビット数）である。垂直変換（つまり列方向）のパスのために選ばれるウエーブレットフィルタの性質から、必要な作業領域メモリは約１８〜２０ラインである。各水平変換（つまり行方向）パスは、すべてＴＳ変換であるが、１ライン
（行）ずつ計算され、新たな係数が古い係数もしくは画素に取って代わる。
【０２５３】
初めの２つの垂直変換パスはＴＳ変換フィルタを使う。６タップの高域通過フィルタであるから、垂直パスの各高域通過係数は６ラインの画素又は係数データによって決まる。生成された高域通過ＴＳ係数は、オーバーラップのため最も上の２ラインと下の４ラインに関係する。これが図２８に示されている。図２８には、１つの符号化単位の１つの垂直画像セグメントが示されている。この垂直画像セグメントは、オリジナル画像をＴＳ変換の１回の水平パスにより変換した結果である。符号化単位の垂直レベル１セグメントが示されているが、これは画像の第１レベルの２−Ｄ変換である。この垂直レベル１セグメントは、ＴＳ変換で水平パスを実行することにより得られる。符号化単位の垂直レベル２セグメントも示さているが、これはレベル１ブロックのＬＬサブブロックに対しＴＳ変換を両次元につき適用して得られたものである。
【０２５４】
ＴＳ変換は４画素（又は４係数）だけオーバーラップさせられるので、ある符号化単位の終わりで４ライン分のデータが、次の符号化単位の係数計算に利用すべくセーブされることに気づかれたい。つまり、レベル１の係数を生成するために、最上部と最下部の両方で割り増しの２ライン分の画素が必要とされ、あるいは、最下部で割り増しの４ライン分の画素が必要とされる。レベル２の係数を生成するためには、割り増しの２ライン分のレベル１係数が最上部と最下部の両方で必要とされ、あるいは割り増しの４ライン分のレベル１係数が必要とされる。これら割り増しのレベル１係数を生成するために、別の２ライン分の画素が最上部と最下部の両方で必要とされ、または別の４ライン分の画素が最下部で必要とされる。したがって、各符号化単位は２８垂直ラインにわたる。
【０２５５】
しかし、重要なことは、これらの”割り増し”のレベル１係数を生成するために余分な計算が必要とされないことである。というのは、それら割り増しのレベル１係数は、現在の符号化単位の上又は下の符号化単位で利用されることになるからである。また、レベル２係数だけが格納されるので、２０ライン分のメモリしか必要とされないことにも気づかれたい。
【０２５６】
最後の２つの垂直パスはＳ変換であり、これは低域通過のオーバーラップがないので割り増しラインを必要としない。
【０２５７】
＜変換計算用メモリ＞
画素値又は計数値のサイズをｂビット（−２b-1 ...,０,...２b-1−１のレンジ）とすると、Ｓ変換とＴＳ変換の平滑出力Ｓ（．）もｂビットである。つまり、それらの平滑出力は入力と同じレンジを持つ。しかし、Ｓ変換とＴＳ変換の１次元細密出力ｄ（．）は表現にｂ＋１ビットとｂ＋２ビットをそれぞれ必要とする。
【０２５８】
図２９は符号化単位とともに必要なラインバッファリングの一部を示す。影を付けた領域と矢線は、現在符号化単位の一部であって現在の符号化のためにメモリにセーブされる必要のある係数である。点線の矢線は、符号化単位の係数を計算するのに必要な一時的な係数である。これらの一時的係数は、新しい係数により上書きされる。実線の矢線は、現在符号化単位の計算の副産物たる係数であり、次の符号化単位の一部となるべくセーブされる。
【０２５９】
最終レベル（レベル４）の係数は、４つのサブブロック（ＬＬ，ＬＨ，ＨＬ，ＨＨ）全てでたったの１ラインである。垂直変換だけであるが、レベル３からレベル４を計算するためにＳ変換が用いられので、全てのサブブロックはレベル３の係数を２ライン分しか必要としない。同様に、レベル２からレベル３を計算するには、４ライン分のレベル２係数を必要とする。これらの係数は全て現在符号化単位の一部である。
【０２６０】
レベル２とレベル１の垂直パスの計算にＴＳ変換が用いられる。６タップ高域通過オーバーラップフィルタのオーバーラップ特性のため、これらレベルは次の符号化単位からのデータを必要とする。このデータは、現在符号化単位の係数の計算に用いられ、そして次の符号化単位で利用するためセーブされる。
【０２６１】
レベル１からレベル２の高域通過サブブロック（ＬＨ，ＨＨ）を計算するためには、１２ラインが必要である（ダウンサンプリングにより４ラインになる８ラインとオーバーラップのための割り増しの４ライン）。これらのラインは、図２９のレベル１の低域通過サブブロック（ＬＬ，ＨＬ）に、現在符号化単位の一部である８ライン、及び、次の符号化単位の一部である４ラインとして示されている。
【０２６２】
レベル１の低域通過サブブロック（ＬＬ，ＨＬ）の１２ラインを計算するためには、０レベルからの２４ラインが必要とされる。これらのレベル０の２４ラインは、レベル１の高域通過サブブロックの１０ラインを生成することができる（ダウンサンプリングにより８ラインになる１６ラインとオーバーラップのための割り増しの４ライン）。これらラインの１０ライン全部を、現在符号化単位にとっては８ラインしか必要でないが、レベル１で計算し格納するのが最も効率的である。よって、オーバーラップ用の割り増し４ラインだけをレベル０でセーブする必要がある。
【０２６３】
画素深度(depth)がｂの画像から始めるとして、分離可能な２−Ｄ変換で、行変換及び列変換がともにＴＳ変換の場合、ＬＬ，ＨＬ，ＬＨ，ＨＨサブブロックの係数のレンジ（値域）はそれぞれｂ，ｂ＋２，ｂ＋４である（図１６）。この分離可能な２−Ｄ変換が水平ＴＳ変換と垂直Ｓ変換からなる場合、ＬＬ，ＨＬ，ＬＨ，ＨＨの係数のレンジはそれぞれｂ，ｂ＋１，ｂ＋２，ｂ＋３である。表２，表３，表４及び表５は各ブロックに必要とされるメモリの計算を示している。なお、各ブロック毎に幅ｗの画像が１個として、ビット単位でサイズを計算したものである。
【０２６４】
【表２】
0003693988.tif 000044
【０２６５】
【表３】
0003693988.tif 000045
【０２６６】
【表４】
0003693988.tif 000046
【０２６７】
【表５】
0003693988.tif 000047
【０２６８】
【表６】
0003693988.tif 000048
【０２６９】
上記数を全部足すと（２６ｂ＋５５ 7/8）・ｗビットとなり、丸めれば（２６ｂ＋５６）・ｗビットである。最大サイズｂ＋４ビットの２ラインの計算バッファの分である。２・（ｂ＋４）を加えると、合計メモリコストは（２８ｂ＋６４）・ｗビットになる。例えば、８ビット、５１２画素幅の画像の場合、１４７，４５６ビットつまり約１８Ｋバイトのメモリが必要となる。
【０２７０】
一実施例では、変換のサイズは、画像の幅と利用可能なメモリの固定サイズに基づいて選ばれる。つまり、あるサイズの画像が本発明のシステムに入力されると、利用できる変換メモリの大きさが限られているために、分割レベル数が決まってしまう。より大きなメモリを利用できれば、分割レベル数が増加する。なお、このことは、画像がシステムに受け取られている間に動的に起こるかもしれない。十分なメモリを利用可能ならば、追加レベルの分割を行うためにＬＬ係数がウエーブレットフィルタを通じて送り込まれる。なお、レベル数を増減させることによる影響の一つは、達成される圧縮量を増減させることである。
【０２７１】
＜Ｂ．本発明の埋め込み順序＞
＜符号化ストリームの順序付け＞
図３０は、符号化ストリームの順序付けと符号化単位内における順序付けを示している。図３０において、ヘッダー(header)２４０１の後に、符号化単位２４０２が上から下へ順に続く。１つの符号化単位内において、ＬＬ係数２４０３は符号化されておらずラスター（ライン）順である。ＬＬ係数の後に、１ビットプレーンずつエントロピー符号化したデータが、最上位のビットプレーンから最下位のビットプレーンへの順に続く。この時、すべての係数からの第１ビットプレーンが符号化され、次に第２ビットプレーンが符号化され、以下同様である。
【０２７２】
＜係数のアラインメント(alignment)＞
本発明の一実施例では、コンテキストモデルは正規化されていない１＋Ｚ-1低域通過フィルタを用いる。しかし、このコンテキストモデルを正規化フィルタ、例えば（数３３）のフィルタと一緒に用いてもよい。
【０２７３】
【数３３】
0003693988.tif 000049
【０２７４】
正規化フィルタを用いるために、フォワードフィルタ１６００とコンテキストモデル１０５の間のアラインメント(alignment)ユニットを用いて、非正規化フィルタより獲得した（あるいは失った）エネルギーを補償してもよく、これは圧縮を向上させる。アラインメントは損失正動作のための非一様量子化を許容するので、アラインメントは損失性復元画像の視覚的品質を向上させることができる。１次元の場合、ツリーの各レベルからの係数は様々なアラインメントを持つことになろう（除数＝√２，２，２√２，４、乗数＝２√２，２，√２，１）。２次元の場合、除数は２，４，８，１６、乗数は８，４，２，１となろう。
【０２７５】
アラインメントは単に同様の２元デシジョンを符号化するためにグルーピングしようとするものであるので、厳密な正規化値を用いることは重要でない。復号期間にはアラインメントを逆にしなければならないので、乗算と除算の両方が必要になる。２のべき乗の因数／除数を用いると、ハードウエアによる効率的なシフト操作が可能になろう。係数に２のべき乗が掛け合わされた時には、有意度の小さい、追加された０ビットは符号化する必要がない。
【０２７６】
チューニング及び精密で非一様な量子化のために係数アラインメントを利用することができる。画像（２次元信号）の場合、ＲＴＳ変換の一実施例は、図１７に示した数を周波数帯域に乗じることにより係数を整列させる。これらの数を乗じることによって、ＲＴＳ変換は、ＴＳ変換の正確な復元ウエーブレットの極めて近い近似値となる。
【０２７７】
この１−パスの実施例は、様々なフィルタ組合せに対しＭＳＥの点で最適な１つのアラインメントだけを用いる。表７はアラインメント数を示す。係数はビット有意度別に符号化される。ここで、第１のビットプレーンは全ての係数の最も左側の絶対値ビットである。各係数の符号(sign)ビットは、当該係数が非ゼロの絶対値ビットを持つ最も上位のビットプレーンまでは符号化されない。つまり、符号ビットは、最初の”オン”ビットが符号化された直後に符号化される。こうすることの利点は、ゼロ絶対値を持つ係数の符号ビットを符号化しないこと、そして、符号ビットを、埋め込み符号ストリーム中の当該符号ビットが関係する点まで符号化しないことである。画素深度がｂの画像の場合、可能な係数値の最大値は２b+3−１である、すなわちｂ＋３ビット数である。したがって、係数はすべて、ｂ＋３ビットの２元デシジョンに、必要なら符号用の１ビットを加えたものに符号化される。
【０２７８】
【表７】
0003693988.tif 000050
【０２７９】
様々なサイズの係数に関するアラインメントは、符号化器と復号器の両方に知らされるので、エントロピー符号化器の効率には影響を与えない。
【０２８０】
また、符号化単位の全てのブロックの全てのサブブロックは、それ固有の最大の絶対値レンジを持ち、そのレンジを符号化器及び複合化器が知っていることに注意されたい。殆どのサブブロックに、いくつかの確定的な２進ゼロ値があり、それらは効率を上げるためエントロピー符号化器でスキップされる。
【０２８１】
各ビットプレーン期間に係数が処理される順序は、低解像度から高解像度へ、かつ低周波数から高周波数への順である。各ビットプレーン内の係数の順序は、高レベル（低解像度、低周波数）から低レベル（高分解能、高周波数）への順、つまり
4-LL,4-HL,4-LH,4-HH,3-HL,3-LH,3-HH,2-HL,2-LH,2-HH,1-HL,1-LH,1-HH
の順序である。各サブブロック内においては、符号化はラスタースキャン順である。
【０２８２】
なお、同じデータセットの符号化単位が様々なアラインメントを持ってもよい。一実施例では、アラインメントは、図３０のヘッダー２４０１のようなヘッダーで指定される。
【０２８３】
＜水平コンテキストモデル＞
図３２は、符号化単位の全ての係数の隣接係数を表す。図３２において、隣接係数は分かりやすい地理的表記法で表されている（例えば、Ｎ＝北、ＮＥ＝北東、等々）。
【０２８４】
ある係数、例えば図３２のＰと、ある現在ビットプレーンが与えられたとすると、コンテキストモデルは所与のビットプレーンより前の符号化単位全てから与えられるどのような情報も利用することができる。本コンテキストモデルの場合、注目係数の親係数も利用される。
【０２８５】
注目係数の注目ビットに対するコンテキストを決定するために隣接係数や親係数の値を利用するというよりむしろ、その情報は本明細書においてテール(tail)情報と呼ぶ２ビットにまとめられる。この情報はメモリに格納しても、あるいは親係数の隣接係数から動的に計算してもよい。テール情報は、最初の非ゼロの絶対値ビットがすでに見つかったか否か（例えば最初の”オン”ビットがすでに見つかったか否か）を示す、そして、すでに見つかっているならば、幾つ前のビットプレーンであったかを示す。表８はテール情報ビットを説明している。
【０２８６】
【表８】
0003693988.tif 000051
【０２８７】
２ビットのテール情報の”テール・オン”ビットの情報は、そのテール情報がゼロであるか否かを示す。一実施例では、テール情報とテール・オンビットは係数が符号化された直後に更新される。別の実施例では、その更新は、並列コンテキスト生成を可能にするため、もっと遅れて行われる。
【０２８８】
一例として、表９は、ある係数に対するテール・オンビットを、ビットプレーンの関数として示しているが、絶対値は
【０２８９】
【外８】
0003693988.tif 000052
【０２９０】
のように２進法で表現される（”＊”は１でも０でもよいことを意味する）。
【０２９１】
【表９】
0003693988.tif 000053
【０２９２】
３つ目のコンテキスト情報は符号(sign)ビットである。符号ビットは最初のオン・ビットのすぐ後に符号化されるので、テールは符号情報が既知か否かを示す。したがって、テールが非ゼロでなければ符号ビットは情報コンテキストを持たない（符号(sign)には３つの可能性がある、つまり正か、負か、あるいは未知かであることを思い出されたい）。
【０２９３】
システムのコンテキストモデルは、最高１１ビットを使ってコンテキストを記述する。この１１ビット数が全部指定されるわけではない。すなわち、実際的には、符号(sign)ビットコンテキストを含め１０３０個又は１０３１個のコンテキストしか利用されない。どのビット位置の意味も前の２進値に左右される。一実施例は次のルールに従う。
【０２９４】
注目係数のテール・オンビットが０ならば（ヘッドビットの場合）、親及びＷ係数のテール情報ビットとＮＷ，Ｎ，ＮＥ，Ｅ，ＳＷ，Ｓ係数のテール・オンビットからの１０２４コンテキスト。一実施例では、ヘッドビットに対し適応符号化が用いられる。実施例によっては、ただ１つのコンテキストを用いてヘッドビットの何らかの”ラン(run)符号化”を提供する。符号化すべき次の１６ビットは全てヘッドビットで、それらのＮ，Ｓ，Ｅ，Ｗ隣接係数及び親係数が全てテール情報０を持つならば、ただ１つのデシジョン(decision)が符号化される。このデシジョンは、その符号化すべき１６ビットのどれかが現在ビットプレーンに１のビットを持つか否かを示す。１のビットがなければ、その普通に符号化された１６デシジョンをスキップすることができる。次の１６係数のどれかが、その最初の有意なビットを含んでいるならば、１６デシジョンがビット毎に１個ずつ用いられる。この”ルックアヘッド”(look ahead)により２元エントロピー符号化器に対するコールが減り、結果として高速化するとともに圧縮率が向上する。
【０２９５】
注目係数のテール・オンビットが１のときには（テールビットの場合）、テール情報ビットからの３コンテキストが係数を与える。前述のように、固定確率符号化を用いてよい。
【０２９６】
注目係数の注目ビットが最初の非ゼロの絶対値ビットであれば、注目係数の符号(sing)ビットが直後に符号化される。符号ビットに対するコンテキストは、Ｎ_テール・オンビット及びＮ_符号ビットからの３コンテキストであり、Ｎ_テール・オンビットが０ならば、Ｎ_符号ビットは未知である。Ｎ_符号ビットが未知ならば、符号(sign)は確率０．５で符号化される。未知でなければ、符号は適応的に符号化される。
【０２９７】
要するに、同じ符号化単位における現在係数、隣接係数及び親係数から得られる情報に基づき、コンテキストを表す１１ビット数が生成される。
【０２９８】
図３３（Ａ）〜（Ｄ）は、係数Ｐの条件付けに利用される、原因(causal)係数及び非原因(non-causal)係数を示す。図示のテンプレートはそれぞれ、テール・オンビットとテール・オン情報を両方利用する。各係数のテール・オンビットは１ビットであるが、各係数のテール・オン情報は２ビットからなる。図３３（Ａ）において、テンプレートにより提供されるビット総数は８である。図３３（Ｂ）及び（Ｃ）において、テンプレートにより提供されるビット総数は１０である。
【０２９９】
係数Ｐのヘッドビットを条件付けするために、追加のビットを用いてもよい。一実施例では、２ビットの追加ビットでビット位置を次のように指定する。
００    最初のビット（ＭＳＢ）及び２番目のビット
０１    ３番目のビット及び４番目のビット
１０    ５番目のビット及び６番目のビット
１１    他のビット
【０３００】
なお、隣接係数及び親係数に基づいて他のテンプレートを作ることもできる。さらに、一実施例では、係数Ｐの条件付けに利用される係数は、位置、ビットプレーンが違っても、原因係数である。
【０３０１】
一実施例では、Ｓ変換の親が条件付けに用いられ、ＴＳ変換の親は用いられない。こうすると、低域通過ラインを次の低域通過ラインの符号化までセーブすることにより、条件付けのために必要なバッファリングが少なくなる。これは、エントロピー符号化の順序が重要で符号化器のメモリが重要でない場合には有利でない。
【０３０２】
なお、よりスキューの強いデータを生成するため、より多くのコンテキストを持つことと、コンテキスト内のデータを少なくすることによりもたらされる適応効率との間には、トレードオフの関係がある。
【０３０３】
一実施例では、条件付けの必要のないテールビットは（条件付けするために）バッファしなくてよい。それらは利用可能になると即座に符号化できる。そのような場合、通信路マネージャ(manager)は、ただちにそれらビットを通信路へ送出してよい。
【０３０４】
一実施例では、最も低い分割レベルの係数は、他の係数と同じ方法で符号化し、たり、全く符号化しないのではなく、ＤＰＣＭのような予測符号化により符号化されるであろう。
【０３０５】
テールビットの符号化には、固定確率又は適応的確率のどちらかが用いられるであろう。
【０３０６】
条件付けであるが、最後のビットは、部分的に、その一つ前のビットに基づき条件付けされるであろう。また、最初の”オン”ビットの後のビットは、それらが最初の”オン”ビットからどのくらい離れているかに応じて条件つけられるであろう。
【０３０７】
一実施例では、テールビットの中には適応的に符号化されるものもある。例えば、係数中のテールビットがＴビットより少ない時には（例えば、Ｔ＝２，Ｔ＝３）、適応符号化が使われる。これらビットのコンテキストは、ビット位置と現在係数中の既に符号化されたテールビットを含んでいる。これは、ＤＰＣＭデータのためのLangdonの教えるＭ元中心符号化と同様である。
【０３０８】
別の実施例では、一部または全部のデータが、２元エントロピー符号化器でなくＭ元エントロピー符号化器により符号化される。Ｍ元エントロピー符号化器としては、Ｔｕｎｓｔａｌｌ符号化器、固定ハフマン符号化器、適応ハフマン符号化器等がある。例えば、１つのハフマン符号をヘッドビットとして用いることができる。別の実施例では、ヘッドビットを１ビットずつ符号化するのではなく、プライオリティ・エンコーダーを用いて最初の”オン”ビットの位置を調べ、そして、その位置の２進表現のビットが２元エントロピー符号化器によって符号化される。
【０３０９】
＜水平コンテキストモデル＞
本発明のコンテキストモデルがブロック図として図３４に示されている。コンテキストモデル２７００は、符号(sign)／絶対値ユニット１０９（図２）と、係数中の別々のビットを処理するための３つのユニットを含む。符号化されるビットに基づき、３ユニット中の１ユニットが選択される。それらユニット間の切り替えをハードウエアで行いやすくするためのスイッチが含まれるかもしれない。これらユニットは、ヘッドビットブロック２７０１、符号(sign)ビットブロック２７０２、テールビットブロック２７０３である。ヘッドビットブロック２７０１、符号ビットブロック２７０２及びテールビットブロック２７０３はそれぞれ、前述のように、ヘッドビット、符号ビット及びテールビットのモデリングする。これら３ユニットの出力はエントロピー符号化器１０４（図１）へ送られる。
【０３１０】
符号化器は、状態をセーブし（オプション）、初期状態を与え、符号化器を
（例えば、１つの符号化単位の終わりで）リセットする、オプションの制御部を含むであろう。
【０３１１】
上に定義したコンテキストは、いくつか例外はあるが、適応２元エントロピー符号化器とともに用いられる。ヘッドビット（注目係数のテール・オンビット＝０）とＮ_テール・オン＝１の時の符号ビットに関するコンテキストを採用してよい。
【０３１２】
しかし、テール・オン＝１の後のビット及びＮ_テール・オン＝０の時の符号ビットは、定常ソースによってモデリングされる。これらのケースでは、エントロピー符号化器の適応化機能は、必要でないし、実際には圧縮効率を低下させる原因になる可能性がある。以下のコンテキストには、固定（非適応）状態（Ｑコーダーの状態に関する用語で述べる）が用いられる。
【０３１３】
＜統計的モデル＞
コンテキストは、Ｎ_テール・オン＝０（Ｎ_係数の符号が未知）の時の符号ビットの符号化は固定Ｑコーダーの状態０−約０．５の確率−で符号化されるというものである。
【０３１４】
コンテキストは、最初の非ゼロのビットの後の最初の２進値の符号化（テール情報＝１）は固定Ｑコーダーの状態４−約０．７の確率−で符号化されるというものである。
【０３１５】
コンテキストは、最初の非ゼロのビットの後の２番目と３番目の２進値の符号化（テール情報＝２）は固定Ｑコーダーの状態３−約０．６の確率−で符号化されるというものである。
【０３１６】
コンテキストは、最初の非ゼロのビットの後の４番目以降の２進値の符号化（テール情報＝３）は固定Ｑコーダーの状態０−約０．５の確率−で符号化されるというものである。
【０３１７】
実施例によっては、エントロピー符号化は各符号化単位の後でリセットされるので、適応可能なコンテキスト（例えば最初のオン・ビットの前の２進値の符号化に用いられるコンテキスト）のための適応化コストが重要である。このコストを最小に保つため、これらコンテキストのための初期状態の集合が、例えば、いくらかのトレーニングデータから計算されるかもしれない。
【０３１８】
以下の説明は、係数が１８ビットであり、入力データが４レベル分割されていると仮定している。
【０３１９】
符号／絶対値ユニット１０９の一実施例が図３５に示されており、これは入力した係数を符号／絶対値形式に変換する。符号／絶対値ユニット１０９は１８ビットの係数を受け取るように接続され、インバータ２８０１とマルチプレクサ（ＭＵＸ）２８０２を含んでいる。符号／絶対値ユニット１０９は、有意度表示（例えば５ビット値）、入力係数の仮数（例えば１７ビット）、入力係数の符号の１ビット、及びカウンタ２８０４からの指数（例えば７ビット）を出力する。
【０３２０】
ＭＵＸ２８０２は、符号／絶対値ユニット１０９に直接入力した１７ビットの係数と、その１７ビットを２の補数器（インバータ）２８０１により反転したものを受け取るように接続されている。ＭＵＸ２８０２の選択入力に与えられる符号ビット（係数のビット１７）に基づいて、その２入力中の正量が仮数として出力される。
【０３２１】
＜符号化の代案＞
２元エントロピー符号化器は、コンテキストと符号化すべきビットを与えられる。
【０３２２】
１ビットプレーンずつ符号化する場合、本発明は、ビットプレーン毎の符号化を高速に行うのに適したデータ形式で演算が行われるように、（汎用コンピュータ上で）桁上がり保存型の演算を使う。例えば、そのような構成において、３２ビットのプロセッサは、１つの係数全部を同時に計算するのではなく、同じビットプレーンにある３２個の係数それぞれの１ビットを同時に計算する。このような実施例によれば、１ビットプレーンずつ符号化する時の速度が上昇する。
【０３２３】
１つの符号化単位が一度に符号化され、符号化単位内の全ての係数がメモリ内にあるので、適応２元エントロピー符号化器が必要とするものを別にすれば、コンテキスト情報の記憶のためのメモリコストは全くない。例えば、Ｑコーダーは、全てのコンテキストのＬＰＳ（最下位シンボル）の２進値と、適応可能な各コンテキストのための現在状態を保存しておく必要がある。Ｑコーダーは３０個の状態を持つので、各コンテキストのために６ビット数（ＬＰＳ用に１ビット、状態用に５ビット）が必要である。したがって、メモリコストは１０２４×５＋１０３０＝６１５０ビットである。
【０３２４】
なお、上に述べた１−パスの実施例の場合には格別の合図情報は必要でない。もし分割レベル数が変数ならば、そのために少なくとも３ビットのヘッダー情報が必要になろう。この実施例に用いられるヘッダー（圧縮後のビットには参入されない）は次のとおりである。
・  幅、２バイト
・  高さ、２バイト
・  入力画像の１画素あたりのビット、  １バイト
【０３２５】
＜メモリ管理＞
データ全部をメモリに格納するシステム及びデータを通信路で伝送するシステムに関して、１パスシステムにおける符号化データのメモリ管理を提案する。１パスシステムでは、符号化データは”埋め込み因果関係法（embedded causalfashion）”でアクセスでき、かつ、有意度の高いデータを損なわずに有意度の低いデータを廃棄できるように格納されなければならない。符号化データは可変長であるので、動的メモリ割り当てを利用できる。
【０３２６】
本発明の一実施例では、埋め込み符号化スキームは１８個のビットプレーンを用いるので、１８レベルの優先度をデータに割り当てる。１−パスシステムの符号化器は、”埋め込み因果関係（embedded  casual）”のものでなければならない。すなわち、あるビットプレーンに対応するイベントの復号に、それにより下位のビットプレーンからの情報を必要としない。一実施例では、あるツリーのビット全部が符号化された後に次のツリーのビットが符号化されるから、有意度の異なるビットは分離されない。内部状態（internal  state）を用いないハフマン符号化器のような符号化器の場合には、このことは問題ではない。しかし、多くの圧縮率の優れた高度な圧縮器は内部状態を利用する。
【０３２７】
これら符号化器に関する当該問題を解決する一方法は、１８個の別々の符号化器、多分１８個の別々のＱ−コーダーチップを用いることである。９個のＱ−コーダーチップを使用可能であろう手法が、”Ｄata Ｃompression for Ｒecording on a Ｒecord Ｍediumなる発明の名称で１９９２年３月１７日発行された米国特許第５，０９７，２６１号（Ｌangdon，Ｊr）に述べられている。されら優れた方法は、単一の物理符号化器で様々な仮想符号化器を実現するためにパイプライン符号器、例えば、”Ｍethod and Ａppartus for Ｐarallel Ｄecoding and Ｅncoding of Ｄata”なる発明の名称で１９９５年１月１０日発行の米国特許第５，３８１，１４５号に述べられている符号化器を用いる。このような符号化器では、各確率毎に複数のビットジェネレータ状態がそれぞれデータの一部に割り当てられる。例えば、１８ビットデータの場合、１８個の状態のそれぞれをある１つのビットプレーンに割り当てられる。符号化器内部のシフタのレジスタもデータの各部分に割り当てられる。この符号化器においては、インターリーブは行なわれない、すなわち、データの各部分は単にビット詰めされるだけである。
【０３２８】
複数の物理符号化器または仮想符号化器を用いる実施例では、データの各部分にメモリが割り当てられる。圧縮が完了した時に、割り当てられたメモリとその内容を記述する連結リストが結果として得られる。
【０３２９】
メモリがオーバーフローすると、メモリ割り当てルーチンは重要度の高い情報を重要度の低いデータに上書きさせる。例えば、数値データの最下位ビットが初めに上書きされることになろう。符号化データに加え、メモリの割り当てられ方を記述する情報が格納されなければならない。
【０３３０】
図３６は、３つの有意度カテゴリーのための動的メモリ割り当てユニットの例を示す。本発明をいたずらに難解にしないため３カテゴリーしか述べないが、一般的には、８カテゴリー、１６カテゴリー、１８カテゴリーというように、もっと多数のカテゴリーが用いられるであろう。レジスタファイル（または他の記憶手段）２９０１が、各有意度カテゴリー毎のポインタ（現在ポインタ：current）に加え、次の空きメモリロケーションを示すもう一つのポインタ（フリーポインタ：free）を保持する。メモリ２９０２は固定サイズのページに分割される。
【０３３１】
最初、１つの有意度カテゴリーに割り当てられた各ポインタは、あるメモリページの先頭を指し、フリーポインタは次の利用できるメモリページを指す。ある有意度カテゴリーに関する符号化データは、対応したポインタによりアドレスされたメモリロケーションに格納される。そして、このポインタは、次のメモリロケーションを指すようにインクリメントされる。
【０３３２】
ポインタが現在ページの最大値に達した時に、フリーポインタに格納されている次の空きページの先頭のアドレスが、リンクとして現在ページと一緒に格納される。一実施例では、この目的のために、符号化データメモリのその部分または独立したメモリもしくはレジスタファイルが用いられるかもしれない。次に、現在ポインタは次のフリーページを指すように設定される。フリーポインタはインクリメントされる。これらのステップにより、新たなメモリページがある有意度カテゴリーに割り当てられ、かつ、ある共通の有意度のデータを含むメモリページのリンクを得られる結果、復号期間に割り当て順序を確認することができる。
【０３３３】
メモリの全ページが使用中であり、しかも、メモリ内の最低有意度データより有意度が大きいデータがさらに存在する時には、メモリの再割り当てが行なわれるであろう。そのような再割り当ての３つの手法について述べる。いずれの手法でも、最低有意度データに割り当てられているメモリが、それより有意度の高いデータへ再割り当てされ、もはや最低有意度のデータは保存されなくなる。
【０３３４】
第１の手法は、最低有意度のデータに現在使われているページが単純に、それより有意度の高いデータに割り当てられる。最も一般的なエントロピー符号化器は内部状態情報を利用するので、そのページに前に格納されていた最低有意度のデータは全部失われる。
【０３３５】
第２の手法は、最低有意度のデータに現在使われているページは、それより有意度の高いデータに割り当てられる。第１の手法と違い、ポインタは当該ページの末尾を指すように設定され、それより有意度の高いデータが当該ページに書き込まれるにしたがい対応ポインタはデクリメントされていく。この手法は、有意度の高いほうのデータがページ全体を必要としないときには、ページの先頭にある最低有意度のデータは保存されるという利点を有する。
【０３３６】
第３の手法は、最低有意度のデータの現在ページを再割り当てするのではなく、最低有意度データの任意のページを再割り当てできる。そのためには、符号化データは全てのページが独立に符号化される必要があり、このことは圧縮率の低下を招くかもしれない。また、全てのページの先頭に対応する非符号化データを識別する必要もある。最低有意度データの任意のページを捨てることができるので、より大きな量子化のフレキシビリティを得られる。
【０３３７】
上記第３の手法は、画像の複数領域にわたって一定の圧縮率を達成するシステムで特に魅力的であろう。ある指定した数のメモリページを画像の１つの領域に割り当てることができる。有意度の小さなデータが保存されるか否かを、ある領域において達成される圧縮率に応じて決めることができる。なお、ある領域に割り当てられたメモリは、非損失性圧縮が必要とするメモリがそのメモリ量より少ないならば、全部は使われない。画像のある領域に対し、ある一定の圧縮率を達成することにより、その画像領域へのランダムアクセスをサポートすることができる。
【０３３８】
圧縮が完了した時に、そのデータを必要ならば有意度の順に通信路または記憶装置へ送ってよい。そうすれば、様々なリンク（link）とポインタはもう必要ではなく、マルチパスの復号を行ない得る。あるいは、１−パス復号の場合には、各有意度毎にデータのポインタを保存できる。
【０３３９】
用途によっては、有意度カテゴリーの中には使われないカテゴリーがあるかもしれない。例えば、１６ビットの圧縮器が１２ビットの医用画像に対し使われると、ビットプレーン１５...１２に対応した有意度カテゴリーは使用されないであろう。ページが大きく、かつ、多くの利用されない有意度カテゴリーがある例では、（いくつかのカテゴリーが使われないことをシステムが予め知らない時には）それらの使わないカテゴリーにメモリを割り当てる必要はないのであるから、メモリが浪費されることになろう。このメモリ浪費に対するもう一つの解決策は、各有意度カテゴリー毎のカウントを保持するための小さなメモリ（もしくはレジスタ）を用いることであろう。このカウントは、他のデシジョンが発生する前に発生した”非有意な”デシジョンの数を記録することになろう。不使用の有意度カテゴリーに使われるメモリの代わりに、これらのカウンタを格納するためのメモリが必要になるという代償を払わなければならない。
【０３４０】
システムにおいて利用可能なメモリの全量をより上手に利用するため、各ページにその両端からデータを書き込む機能を利用することができる。全ページが割り当てられている時に、一端側に十分な空きスペースのあるページを、その端から利用するように割り当てることができる。ページの両端を利用する機能は、２種類のデータがぶつかるロケーションの管理コストと比較衡量されなければならない。もっとも、一方のデータ種類が重要でなく単純に上書きされてもよい場合は別である。
【０３４１】
＜改良＞
本発明は、一実施例において、小さなメモリバッファで非損失性圧縮をする。本発明は、様々な用途と装置環境に適用可能である。以下に、本発明のシステムを様々な用途及びターゲット装置に対しより柔軟に適応できるようにするためのいくつかの機能を実現する手法を述べる。なお、本発明は、解像度、画素深度、ランダムアクセス、量子化等々の選択を符号化時点でする必要はない。
【０３４２】
＜データの取り決め＞
データの取り決めに関して、画像及び係数データを本発明のシステムと取り決めるためのいくつかのオプションがある。以下に詳しく述べるように、これらのオプションには、符号化単位のタイリング、分割レベル数、ウエーブレット変換フィルタの選択、係数のアラインメントが含まれるが、それらに限定されるものではない。これらオプションのそれぞれを、ユーザー又はシステム設計者の制御するパラメータとしてもよい。
【０３４３】
上に述べたように、一つのパラメータは符号化単位のタイリングであろう。符号化単位の高さ及び幅は、本発明のツリーを考慮して定義される。ランダムアクセスのために、符号化単位毎に符号化データの先頭を、符号ストリーム中のポインタもしくはマーカー又はヘッダ中のポインタにより指定することができる。こうすると、画像のブロックをアクセス可能になろう。
【０３４４】
制御されるであろうもう一つのパラメータは分割レベル数である。分割レベル数が多いほど良い圧縮が得られるので、分割レベル数を変えると圧縮性能が変わる。なお、分割レベル数が増えると必要なラインバッファが増えるので、分割レベル数を変えるとメモリ条件に影響を与える。フル解像度より低い解像度をターゲットにして、それより多くのレベル数が必要なこともある。例えば、オリジナル画像が２０００ｄｐｉの場合、約３６ｄｐｉを得るには５レベル分割が必要となる。これにより、伸長してサブサンプリングすることなく、高解像度スキャンをほぼ実サイズでモニタに表示させることができる。
【０３４５】
水平及び垂直パス用のウエーブレットフィルタのタイプがレベル毎に異なってもよい。これは、色々なメモリ条件及び圧縮性能を可能にする。なお、レベル数が増えても係数のサイズは増加しない。また、ウエーブレット変換はＮ次変換であり、また、レベルが増加するほど変換すべきデータが少なくなるので、レベルの増加による演算コストの増加は殆どない。
【０３４６】
＜埋め込み符号ストリームのターゲット装置＞
圧縮符号ストリームには多くの応用目的がある。低解像度であるがフル画素深度のモニターや、フル解像度であるが低画素深度のプリンタ、有限通信路の固定レート・リアルタイム装置、固定サイズの有限メモリ装置へ送ることが可能な符号ストリームを得られると望ましい。同じ符号ストリームでこれらニーズ全てに応えることが要求されるかもしれない。図４１は、単一の用途に適用する場合の相対的装置特性の概要を示す。
【０３４７】
＜伝送又は復号・符号ストリームパーサ（parser）＞
符号化器及び復号器に十分な速度を持ちかつ十分なバンド幅を持つ本発明システムは、伸長画像から必要なデータを抽出することができる。さらに、符号化器は、上記装置のどれかのための符号ストリームを生成できる。符号化器において、画像を普通の方法で量子化又はダウンサンプリングすることができる。
【０３４８】
しかし、本発明の１つの長所は、前記装置のどれかのための伸長を行わないで、伝送又は復号の前に構文解析する(parse)ことが可能な符号ストリームを生成できることである。そのようなパーサを図４２（Ａ）及び（Ｂ）で説明する。図４２（Ａ）には、非損失性ビットストリームを受け取って損失性ビットストリームを生成するパーサ３５０１が表されている。図４２（Ｂ）には、損失性ビットストリームを受け取って別の損失性ビットストリームを生成するパーサ３５０２が表されている。しかし、図４２（Ｂ）における出力と入力の間の関係は、本発明がベキ等の性質を持つというものであり、これについて以下にさらに詳しく述べる。なお、パーサ３５０１，３５０２のいずれの場合も、入力として受け取られるデータのビットレートは出力されるビットレートより大きい。
【０３４９】
＜低解像度、高画素深度埋め込みターゲット＞
ターゲットが低解像度、高画素深度埋め込みターゲットであれば、当該応用を、そのターゲット装置は利用できる空間解像度より低い空間解像度を持つがフル画素深度が要求されると推定する。低解像度、高画素深度埋め込みターゲットの例は各種モニタである。図３０に示す符号ストリームを用いる場合、各ビットプレーンは必要なだけの数の高レベル係数について復号される。これには、パーサに各ビットプレーンの切り捨てをさせなければならない。パーサを支援するため、各符号化単位の各ビットプレーンに、切り捨てをしてよい位置を示すマーカ又はポインタを持たせることができる。このような実施例では、２つ以上のターゲット解像度が必要ならば、もっと多くのマーカ又はポインタが必要となる。エントロピー符号化器を次のビットプレーンのためリセットすることができるよう、ビットプレーンは独立に符号化される。
【０３５０】
もう１つの方法は、データを別のやり方で、例えば図３１に示すように埋め込むことである。図３１において、各符号化単位内のターゲット解像度の係数をまず符号化し、その後に残りの高解像度係数を続ける。この場合、符号化単位あたり必要な切り捨ては１回だけであり、エントロピー符号化器はリセットされる必要がない。マーカ又はポインタにより必要な切り捨て点を指定できる。
【０３５１】
＜高解像度、低画素深度埋め込みターゲット＞
ターゲットが高解像度、低画素深度埋め込みターゲットであれば、当該応用を、そのターゲット装置は利用可能なフル解像度以上の解像度を要求するがフル画素深度を利用できないと推定する。高解像度、低画素深度埋め込みターゲットの例に、ローエンドのプリンタや標準モニタがある（画像が８ビット／プレーン以上のとき）。図３０に示す符号ストリームは、このような順序で埋め込まれる。各符号化単位は、適当なビットプレーン数となる点で切り捨てられ、変換は量子化された係数に対しなされる。係数深度と画素深度との間には直接的な関係がある。マーカ又はポインタで所望の切り捨て点を指定できる。
【０３５２】
あるいは、符号ストリームが図３１に示すように埋め込まれる場合には、打ち切りを指定するために２つのマーカ又はポインタが、すなわち低解像度ビットプレーン用の１つと、高解像度ビットプレーン用の１つが用いられる。エントロピー符号化器をリセットできるようにするため、２組のビットプレーンが独立に符号化される。
【０３５３】
また、もう１つの方法は、低解像度、高画素深度埋め込みターゲットに関連して述べたように、低解像度の係数の一部又は全部、それに、できれば高解像度係数からのデータを符号化する方法である。そして、後述の補間ウエーブレット変換を行う。
【０３５４】
＜固定レート埋め込みターゲット＞
ターゲットが固定レート埋め込みターゲットであれば、当該応用を、束縛通信路を使い、しかもリアルタイムの一定画素出力を維持しなければならないと推定する。この場合、時間局所的に符号ストリームのデータレートが最大（圧縮率は最小）になる。この目標とするところを達成するため、ターゲット装置で利用できるバッファリング量に基づいて符号化単位が選ばれる。これにより、平均的圧縮率を達成できる場所が決まる。そして、各符号化データの許容量を超えるデータは切り捨てられる。
【０３５５】
なお、符号ストリームのデータレートが通信路の最大バンド幅を超えなければ、画像は非損失で復元される。このことは、他の固定レートシステムには当てはまらない。
【０３５６】
＜固定サイズ埋め込みターゲット＞
ターゲットが固定サイズ埋め込みターゲットであれば、当該応用を、固定サイズのフレームバッファが圧縮画像データに利用できると推定する。これは、固定レートの応用とは違い、局所的でなく画像全体にわたり平均した、ある最小の圧縮率を必要とする。ここで固定レートの方法を利用できることは勿論であるが、局所的にでなく画像全体にわたり平均をとるという考え方を用いることにより、ビット割り当てと画像品質を改善することができる。
【０３５７】
符号化単位が画像全体を包含するならば、バッファから溢れるデータを切り捨てることは当たり前であろう。符号化単位が画像全体より小さく、かつ、全ての符号化単位が同一ビット数に切りつめられるときには、その切り捨てにより一様に最低有意度レベルが除去される保証はない。簡単な解決法は、符号化時に（又はその後の構文解析時に）、各有意度レベルが符号ストリームに与えた符号化ビットの数を、符号化単位毎に、又は包括的に、あるいは、その両方で、記録することである。この記録は簡単なカウンタを使って行うことができる。これらの数は、ヘッダに記録され、伝送時又は格納時に各符号化単位の切り捨て方法を決めるために利用できる。ヘッダは有意度レベルと、それに対応したビット数を保持している。ヘッダは、この情報を、ストリームに含まれている符号化単位それぞれ毎に保持してもよい。切り捨てる場所を決定する際、影響を各符号化単位に対し同一にする。例えば、メモリが制約されるため、１．５有意度レベル分を切り捨てなければならないときには、各符号化単位から１．５有意度レベル分が切り捨てられる。こうすることで、切り捨ての影響を符号化単位に均一に分散させることができる。
【０３５８】
符号化時も同様に、固定サイズ圧縮画像を得ることができる。メモリは各有意度レベル用のセグメントに分割される。メモリが溢れそうになると、優先度ベルの低いセグメントはそれより優先度レベルの高いデータにより上書きされる。
【０３５９】
なお、圧縮データがメモリバッファから溢れなければ、その画像は非損失で復元される。このことは他の固定サイズシステムには当てはまらない。
【０３６０】
＜ウエーブレット変換による補間＞
ウエーブレットを用いて、画像をより高解像度になるよう補間することができる。その結果は視覚的に２重３次スプライン法に極めて近い。圧縮データが既にウエーブレット係数の形であれば、補間のための実質的な計算量の増加は２重３次スプラインより少ない。
【０３６１】
Ｎレベル分割の係数を全て利用できるとしよう。ゼロの埋め込み（padding)又は他の方法により新たな最低レベルの係数を生成し、そしてＮ＋１レベルのウエーブレット復元を実行することにより、新たに得られた画像はオリジナル画像を２：１に補間した画像である。
【０３６２】
この方法は、埋め込み符号ストリーム用ターゲット装置、特に高解像度、低画素深度用ターゲット装置の存在するシステムにも利用できる。符号化単位は、低解像度係数だけが存在するように（あるいは、低解像度係数と、高解像度係数の一部又は全部の数ビットだけが存在するように）切りつめられる。これら係数は、それより高い解像度に埋め込まれ、そして復元が実行される。
【０３６３】
＜通信路の利用＞
データがメモリに格納されるのではなく通信路で伝送され、かつ、固定サイズのメモリページが利用される（１有意度カテゴリーにつき１ページだけ必要とされる）システムにおいて、１つのメモリページが一杯になった時に、そのページは通信路で伝送され、そして、メモリロケーションを伝送されるとすぐに再び使用できる。用途によっては、メモリのページサイズは通信路で使われるデータパケットのサイズまたはパケットサイズの倍数とすることができる。
【０３６４】
通信方式によっては、例えばＡＴＭ（非同期転送モード）では、パケットにプライオリティを割り当てることができる。ＡＴＭは、２つのプライオリティレベル、つまりプライマリとセカンダリを有する。セカンダリパケットは十分なバンド幅を利用できるときにのみ伝送される。閾値を使って、どの有意度カテゴリーがプライマリであるか、どの有意度カテゴリーがセカンダリであるかを判断することができる。もう１つの方法は、符号化器で閾値を利用して、閾値より有意度の小さい有意度カテゴリーを伝送しないようにすることであろう。
【０３６５】
このように、本発明のメモリマネージャの一実施例は固定サイズのメモリへの圧縮データの格納を制御する。すなわち、このメモリマネージャは、圧縮データを異なった有意度レベルに分ける。メモリが一杯になった時に、有意度の低いデータは有意度の高いデータによって上書きされる。
【０３６６】
限られた量のバッファメモリを使って通信路を管理するために（例えば固定レート）、本発明の一実施例では、十分なバンド幅を利用できるときにはデータは全て伝送されるが、十分なバンド幅を利用できないときには、有意度の低いデータは捨てられ有意度の高いデータだけが伝送される。
【０３６７】
図３７は通信路マネージャを利用するシステムを表している。図３７において、ウエーブレット変換３００１は係数を生成する。これら係数はコンテキストモデル３００２により処理される。コンテキストモデル３００２は、バッファメモリを含む通信路マネージャ３００３と接続される。通信路マネージャ３００３は有限バンド幅の通信路３００４に接続される。
【０３６８】
通信路マネージャ３００３は通信路３００４へのデータの出力レートを制御する。通信路マネージャ３００３は、そのバッファメモリにデータが入力される時に、そのデータ量が通信路３００４のバンド幅を超えるか判定する。そのデータ量がバンド幅を超えないときには、通信路マネージャ３００３はそのデータを全て出力する。他方、バッファメモリに受け取ったデータ量が通信路のバンド幅を超えるときには、通信路マネージャ３００３はバッファメモリ内のデータを通信路３００４のバンド幅に整合するように捨てる。
【０３６９】
通信路３００４は、そのバンド幅を通信路マネージャ３００３に指示するかもしれない。もう１つの実施例では、通信路マネージャ３００３は、所定の１単位（例えば１パケット）のデータを通信路３００４を通じ送信するのに要した時間の長さに基づいて、通信路３００４のバンド幅を動的に決定するであろう。すなわち、通信路バンド幅を、望むならば動的なものとして扱うことができる。
【０３７０】
一実施例では、通信路マネージャ３００３はタイル（又はバンド）に分割された画像を処理する。これは”有意度よりタイルを優先する”スキームであり、これに対し固定サイズのメモリマネージャではタイリングと有意度は多少独立している。各タイルは別々に符号化され、有意度レベル別及び固定サイズページ別に分けられる。したがって、各タイル毎の符号化データは全て一緒にまとめられる。各タイル内の符号化データは有意度レベル別にタグ付けされる。
【０３７１】
一実施例では、通信路マネージャ３００３内のバッファメモリは少なくとも、通信路のパケットサイズの２倍（あるいは３倍）、タイルの予想圧縮データサイズの数倍（もしかすると４倍）のサイズである。
【０３７２】
バッファメモリの一定の最大量が１つのタイルに割り当てられる。この最大量は通信路のバンド幅と整合がとられる。バッファメモリは固定サイズのセグメントに分割され、必要な時に割り当てられる。メモリ使用量が許容最大値に達すると、固定サイズメモリシステムの管理の場合と同様、セグメントは再割り当てされる。
【０３７３】
図３８はバッファメモリの使用例を示す。図３８において、循環バッファメモリは複数の固定サイズのセグメント３１０１を持ち、それらは通信路入出力のための複数の固定サイズのパケット３１０２に分割される。図示のように、データの様々なタイルがメモリの同じパケットを使用する。一実施例では、異なったタイルは異なった有意度レベルを意味する。パケットサイズの大きさのバッファ空間が使用されると、通信路マネージャ３００３はデータを通信路３００４（図３７）へ出力するようコンテキストモデルに指示する。図示のように、タイルＮ-2と、タイルＮ-１の一部分が現在パケットとして出力されよう。このように、通信路のバンド幅と整合するよう、パケットサイズ量のメモリが割り当てられてデータが入れられる。
【０３７４】
バッファが満杯にならなければ、余ったメモリをその後のタイルに利用できる。一実施例では、次のブロックに比べ圧縮しにくい領域の始まりで重要なタイルが区切られないようにするため、余ったメモリの数分の１（１／２，１／３等々）しか次のタイルに用いらない。
【０３７５】
本発明の通信路マネージャは、データを一定時間内に伝送するしかない場合に利用し得る。そのような通信路マネージャを用いると、データ伝送は、その複雑さに関係なく、その時間内に発生する。というのは、データはその有意度に基づいて埋め込まれているからである。
【０３７６】
＜通信路マネージャの他の実施例＞
本発明の通信路マネージャの１つの目標は、メモリ消費を最小にすることである。一実施例において、通信路マネージャがバッファメモリを含まない場合、以下ものを採用してよい：
各符号化単位毎
各符号化単位毎の各ビットプレーン毎
各符号化単位毎の各ビットプレーン毎の各周波数毎
各符号化単位毎の各ビットプレーン毎の各周波数毎の各空間位置毎  。
【０３７７】
一実施例では、符号化器（ある既知の状態に設定されている）は各バンドの初めでリセットされる。一実施例では、４レベル分割の場合、バンドメモリを縮小したいならば、１つのバンドは１６ラインからなる。
【０３７８】
図３９は上記方法によるビットストリームを表している。図３９において、ビットストリームは固定サイズのセグメントに分割される。このセグメントは、通信路パケット、ディスクのセクタ、その他、通信路用の合理的なバッファ量なら何でもよい。なお、この分割は、符号化期間中の論理的な分割にすぎない、すなわち、望むならば符号化器はバッファリングせずに出力してもよい。各固定サイズセグメントは、同セグメント中の最高有意度のデータの表示を含んでいる。
【０３７９】
セグメントの構造が図４０に示されている。図４０において、１セグメントのビットストリームは符号化データ３３０１、オプションのポインタもしくはＩＤ３３０２、及び当該セグメント中の最高の有意度のデータのレベル３３０３からなる。一実施例では、ビットフィールド３３０３は２〜５ビットからなる。その最高有意度レベルが０（最高の有意度レベル）ならば、セグメントの末尾から前のＭビットは同セグメント内のレベル０のデータが始まる位置を示すポインタである。なお、最初のセグメントのデータが完全に符号化されたデータならば、オーバーヘッドは不要である。
【０３８０】
一実施例では、各バンドの開始点は、ＪＰＥＧ規格に用いられているものと同様の再スタート・マーカーを利用して識別される。しかし、使用されるマーカーは、符号化中に発生頻度が最小のシンボルを用いるべきである。
【０３８１】
再び図３９について検討する。一部の有意度レベルだけ（たぶん最高有意度レベルだけ）を伸長したいとする。伸長は、最初のセグメントから始まる。セグメント２について、”セグメント中で最も有意度の高いデータのレベル”がチェックされ、そして恐らく、セグメントに含まれている最も高い有意度が伸長されるレベルより低い場合にはセグメント全体をスキップできる。３番目のセグメントについては、ポインタを利用してバンド２の先頭が見つけられ、バンド２の伸長を開始できる。
【０３８２】
なお、セグメント内の最も有意度の高いデータ全部を必ず得られるようにするためには、セグメント全体を伸長する必要があろう、特に、そのセグメントに入っているものが１バンドより多い場合にはそうであろう。
【０３８３】
予め決めた数の有意バンドだけを選択的に伸長すれば、プレビュー画像が得られるであろう。これは、データが埋め込み形式であって非損失性データの損失性データが必要とされるときに好都合であろう。
【０３８４】
望ましいアクセス及び量子化の可能性、並びに、バンド全体を伸長するための時間が重要か否かによって、セグメントの最後のオプションのポインタ又はＩＤに次のものを入れることができる：
・固定サイズメモリ管理のための次セグメントポインタ。
・セグメントのＩＤ又は含まれているバンドのＩＤ。（通信路量子化をサポートする、例えばセグメント２が除かれたか否かを表示する）。
・セグメントに含まれている異なったバンドの数（又は、少なくとも、１つのバンドが２セグメント以上を含んでいることを表示するビット）。（所要データを伸長した後はセグメント全部は伸長しないことをサポートする）。
【０３８５】
５１２×１６画素の１バンドあたりのオーバーヘッドの例であるが、８ビット画像が２：１に非損失性圧縮され、セグメントのサイズが５１２バイトであるとする。なお、１バンドは典型的には８セグメントまで圧縮する。３２有意度レベルの場合、５ビットのタグが使われる。ポインタがバイト境界にあるとすれば、９ビットのポインタが用いられる。したがって、（３２圧縮ビット＋４９）あたり４９ビットのオーバーヘッドがあり、これは合計０．１５％に相当する。
【０３８６】
＜略非損失性＞
略非損失性の圧縮という概念は、復元画素値の絶対誤差をベースにしている。よって、絶対誤差が１の略非損失性圧縮画像の場合、その伸長画像中のどの画素値も元の画素値との違いが画素値の１単位を超えない。これは、画素深度や画像のダイナミックレンジに依存しない絶対的な定義である。このようなシステムにとって、明白かつ、いくつかの合理的な仮定の下で最適なことは、圧縮／伸長部を非損失性のままにしておき、略非損失性を達成するための前処理スキーム及び後処理スキームを用いることである。この方法は当該実施に採用された。
【０３８７】
絶対誤差がｅの略非損失性圧縮画像は、２ｅ＋１個の連続整数をすべて、それらの中央の整数に写像する量子化法によって得られる。例えば、誤差＝３の場合、画素値は、０〜６は３に写像される、７〜１３は１０に写像される、というように量子化される。この量子化画像それ自体は、変換ベースの圧縮システムには適さない。そこで、量子化画像は、それよりもダイナミックレンジ又は深度が低い画像（浅い画像と呼ぶ）へ１対１（非損失）写像される。この写像は、中央値（代表値）を、その順序を変えずに連続整数へ写像することによってなされる。数学的には、ある画素値ｘが与えられると、この画素値は次のように量子化される。
【０３８８】
【数３４】
0003693988.tif 000054
【０３８９】
代表値の浅い画像値への１対１写像は次のとおりである。
【０３９０】
【数３５】
0003693988.tif 000055
【０３９１】
浅い画像値を再び代表値へ写像する、１対１写像ｐの逆写像は次のとおりである。
【０３９２】
【数３６】
0003693988.tif 000056
【０３９３】
量子化（ｑ(x)）とその後の浅い画像値への写像（ｐ(x)）が、非損失性圧縮に先立つ前処理演算である。浅い画像値から代表値への写像が、非損失性伸長の後に続く後処理演算である。
【０３９４】
変換領域量子化も利用できる。多くの係数が、変換の多くのレベルへのピーク誤差伝搬に影響を及ぼす。子のない高域通過係数については、ピーク誤差への影響を調べることは容易である。
【０３９５】
１次元信号を最大ピーク誤差±Ｅで符号化することを考える。これは、最精細ディテールの高域通過係数を±２Ｅに量子化することにより達成される。２次元信号の場合、高域通過フィルタが２回かけられるので、最精細ディテールのＨＨ係数を±４Ｅに量子化する。
【０３９６】
入力画像の量子化を利用する方法に代わる方法は、エントロピー符号化器に対するデシジョンを制御することである。一例は以下のとおりである。各係数について、係数をゼロに設定しても、その係数に影響されるどの画素の誤差も最大誤差を超えなければ、その誤差はゼロに設定される。実施例によっては、特定の係数だけ、例えば子を持たないＡＣ係数だけが調べられる。係数は、１度に１つずつ調べる念入りな方法で調べてもよい。別の方法では、係数の小グループを考えて、グループの可能な限り大きな部分集合をゼロにすることに決めてもよい。
【０３９７】
上述のように、量子化は埋め込み作用によりなされ、そしてＲＭＳＥのような定量的基準に関し性能を最大にするように最適化される。一実施例では、ハフマン視覚系に関し改善された結果を得るよう、いくつかの係数の量子化が行われる。このような場合、埋め込みスキームは殆ど変更する必要がない。例えば、係数は、それら係数間の関係を２分の１だけ変更し、及び／又は、グレイコードのような別種の記数法により数を表現するためシフトされる。
【０３９８】
本発明の圧縮ウエーブレットシステムは、画像編集にも有効であろう。従来技術では、画像処理機能をフル解像度の印刷画像に適用すると、時間がかかり対話的処理が困難になる。
【０３９９】
一実施例では、画像編集システムは圧縮されたタイルを保存するならば、ユーザが評価するためのスケール画像（その低域通過）に対し極めて素早く操作を施すことができるであろう。素早くできるのは、表示されている画素だけが操作されるからである。それは最終結果の近似にすぎない、というのは、実際のフル解像度画素が出力に影響を及ぼすためである。したがって、ユーザーは画像の様々な部分をクローズアップするであろう。ユーザがそうした時に、画像編集システムは、画像の該当部分に操作を施す。これを容易にするため、圧縮された係数、並びに、どの処理操作が施されたか及び施される必要があるかについての情報を含むツリーが保存される。
【０４００】
一実施例では、定義されたウインドウ内では非損失性圧縮を、画像のその他の部分に対しては損失性圧縮を可能にするように、有意度レベルが再定義される。そのウインドウは固定されても、ユーザにより選択できるようにしてもよい。有意度の違う複数のウインドウがあってもよい。一実施例では、ウインドウは４８×４８ブロック程度の大きさである、ただし、ウインドウをずっと小さく、２画素程度まで小さくすることも可能ではある。
【０４０１】
その可能な応用は衛星イメージであり、衛星が非損失性ウインドウをデータに対し使うことにより、統計的研究がＪＰＥＧの人為構造(artifacts)によって撹乱されず、また損失性圧縮が非損失性圧縮より遥かに広い視野を可能にする。
【０４０２】
一実施例では、ユーザは画像上に任意の枠(box)を描き、その枠内のデータの相対的有意度を指定する。枠が描かれると、ソフトウエアがその枠のサイズを、所要の制約条件に合致しかつ当該ユーザ枠を包含する最小サイズまで増大させる。ファイル・ヘッダは使用された枠と有意度レベルに関する情報を保持することになろう。そして符号化器及び復号器は、符号化／復号の実行時に、その重要な枠内の係数に高い解像度を与えるであろう。衛星イメージの場合、重要なウインドウは恐らく前もって定義される。
【０４０３】
＜ベキ等動作＞
損失性圧縮装置の場合、一般に、ＤＣＤＣＩ＝ＤＣＩのようにベキ等動作である。ただしＩは画像、Ｃは圧縮操作、Ｄは伸長操作である。本発明において、データがＸビットに圧縮されてから伸長された時に、それをＸビットに再圧縮して元のＸビットを得ることができるはずである。埋め込みシステムについてはさらに強力なベキ等元のバーションがある。一実施例では、画像をＸビットに圧縮し、伸長し、そしてＹ（ただしＹ＜Ｘ）ビットに再圧縮したものは、元の画像をＹビットに圧縮したものと同じである。
【０４０４】
このことが重要なのは、圧縮及び処理が画像を元画像から大きく変化させるからである。圧縮装置がベキ等でれば、圧縮伸長サイクルを繰り返してもデータに悪影響を及ぼさない。本発明においては、データが何回、同じ圧縮率で圧縮伸長されるてもかまわない。また、パーサに対する損失性入力がさらに量子化されると、非損失性入力を用いる場合と同じ結果を得られる。このように、本発明は、ウエーブレット変換、コンテキストモデル及びエントロピー符号化器を含み、情報を取り除いても前の係数の記述が変わらないような順序で係数が記述され格納される、変換ベースのベキ等システムを構成する。
【０４０５】
＜用途＞
本発明は多くの用途に利用できる。そのような用途のいくつかを例として以下に述べる。つまり、解像度が高く画素深度が大きいハンエンドの用途及び人為構造(artifact)を許容しない用途に、本発明を利用できる。本発明によれば、ハイエンドの用途は高品質環境で最高品質を維持でき、同時に、バンド幅、データ記憶又は表示機能がさらに制限された用途でも同じ圧縮データを利用可能である。これはまさに、ウエブ・ブラウザ（web browser)のような現代の画像応用分野に一般に要求される装置独立な表現である。
【０４０６】
高画素深度（１０ビット〜１６ビット／画素）の画像に対する本発明の優れた非損失圧縮性能は、医用画像にとって理想的である。非損失性圧縮のみならず、本発明は、ブロックベース圧縮装置に知られている人為構造(artifacts)の多くがない真の損失性圧縮装置である。本発明を利用することにより引き出される損失性人為構造(artifacts)は、急峻なエッジに沿う傾向があり、ハフマン視覚系の視覚マスキング現象によって隠されることが多い。
【０４０７】
本発明は、画像が非常に高解像度で高画素深度であることの多いプリプレス
(pre-press)業に関連した用途に利用できる。本発明のピラミッド分割によれば、プリプレス・オペレータが（モニタ上の）画像の低解像度損失性バージョンに対し画像処理操作を行うのが容易である。操作が終わったならば、同じ操作を非損失性バージョンに対して実行できる。本発明は、圧縮しないと伝送に必要な時間が非常に長いファクシミリ文書の用途にも適用可能である。本発明は、様々な空間解像度及び画素解像度のファクス装置より、非常に高い画像を出力できる。この応用では伝送時間が割高なものであるので、本発明の補間機能は有益である。
【０４０８】
本発明は、圧縮を必要とする、特に記憶容量が増すほど圧縮を必要とする画像アーカイブシステムに利用することもできる。本発明の装置独立な出力は、バンド幅、メモリ及びディスプレイが異なる資源を持つシステムにより画像アーカイブシステムをアクセスでき有益である。本発明のプログレッシブ伝送機能は、ブラウジング(browsing)のためにも有益である。最後に、画像アーカイブシステムの出力装置用に望ましい非損失性圧縮が本発明により提供される。
【０４０９】
本発明の非損失性又は高品質損失性データストリームの階層プログレッシブ性により、本発明はワールド・ワイド・ウエブ(world wide web)用に、特に装置独立性、プログレッシブ伝送、高品質、及びオープン規格が必須な場合に理想的である。
【０４１０】
本発明は、衛星画像、特に高画素深度及び高解像度になる傾向のある衛星画像にも適用できる。さらに、衛星画像用途は通信路のバンド幅が制限される。本発明はフレキシビリティがあり、また、プログレッシブ伝送特性があるので、本発明を利用して人間による画像のブラウジング又はプレビューを可能にすることができる。
【０４１１】
データに対し非損失性ウインドウを使うことにより、統計的研究がＪＰＥＧ人為的構造(artifacts)により撹乱されない衛星もあるが、損失性圧縮によれば非損失性圧縮より遥かに広い視野が可能である。
【０４１２】
一実施例では、定義されたウインドウ内では非損失性圧縮を、画像のその他の部分に対しては損失性圧縮を可能にするように、有意度レベルを再定義できる。そのウインドウは固定されても、ユーザにより選択できるようにしてもよい。有意度の違う複数のウインドウがあってもよい。一実施例では、ウインドウの最小単位は恐らく４８×４８ブロックとされる、ただし、２画素程度まで精密にすることも可能ではある。こうすれば、非損失性領域に近い精密な画素を得られるであろうが、非損失性領域が目立たなくなるかもしれない。
【０４１３】
その一方法は、ユーザに画像上に任意の枠(box)を描かせて、その枠内のデータの相対的有意度を指定させることにより実現されるかもしれない。ソフトウエアは、その枠を、所要の制約条件に合致しかつ当該ユーザ枠を包含する最小サイズまで拡大させることになろう。ファイル・ヘッダは使用された枠と有意度レベルに関する情報を保持することになろう。そして符号化器及び復号器は、符号化／復号の実行時に、その重要な枠内の係数に高い解像度を与えるであろう。衛星イメージの場合、重要なウインドウは恐らく前もって定義される。なお、これは衛星画像以外の用途にも適用可能である。
【０４１４】
ＡＴＭネットワークのような”固定レート”でバンド幅が制限される用途は、データが利用可能なバンド幅をオーバーフローしたときにデータを減少させる手段を必要とする。しかしながら、十分なバンド幅があるときには（あるいは圧縮率が十分高いときには）、品質上の不利益があってはならない。同様に、コンピュータや他の画像装置におけるメモリが制限されたフレーム記憶装置のような”固定サイズ”の用途も、メモリが満杯になったときにデータを減少させる手段を必要とする。繰り返すが、適当なメモリ量に非損失圧縮することが可能な画像に対して不利益があってはならない。
【０４１５】
本発明の埋め込み符号ストリームは、これら両方の用途にかなう。埋め込みは、損失性画像の伝送又は記憶のため符号ストリームが切り捨てられることを暗黙的に許す。切り捨てが必要でなければ、画像は損失なしに届く。
【０４１６】
要するに、本発明は、単一連続階調画像圧縮システムを提供する。本発明のシステムは、同じ符号ストリームに対して非損失性かつ損失性であり、埋め込みの量子化（符号ストリームに必然的に含まれる）を利用する。本発明のシステムはまた、ピラミッド形であり、プログレッシブであり、補間手段を提供し、かつ、実施が容易である。したがって、本発明はフレキシブルな”装置独立な”圧縮システムを提供する。
【０４１７】
統合された損失性かつ非損失性圧縮システムは非常に有用である。同じシステムで最新の損失性及び非損失性圧縮を実行でき、その上、同じ符号ストリームである。この応用は、画像の非損失性符号を保存するか切りつめて損失性バージョンにするかを、符号化中、符号ストリームの格納又は伝送中あるいは復号中に、決定することができる。
【０４１８】
本発明により提供される損失性圧縮は、埋め込み量子化によって達成される。すなわち、符号ストリームは量子化を含んである。実際の量子化（又は視覚的有意度）レベルは、復号器又は通信路によって決まり、必ずしも符号化器によって決まるものではない。バンド幅、記憶及びディスプレイ資源が許すなら、画像は非損失で復元される。そうでなければ、画像は、最も制限された資源によって必要とされる量だけ量子化される。
【０４１９】
本発明に用いられるウエーブレットはピラミッド型であり、差分画像のない、画像の２分の１ずつの分割が実行される。これは階層分割より明確である。画像のブラウジング(browsing)のため又は低解像度装置による表示のために縮小画像(thumbnails)を必要とする用途に、本発明のピラミッド性は理想的である。
【０４２０】
本発明における埋め込みの使い方はプログレッシブである、つまりビットプレーン別であり、ＭＳＢの後に下位ビットが続く。具体的には本発明はウエーブレット領域においてプログレッシブであるが、空間領域及びウエーブレット領域の両方ともプログレッシブに分割可能である。プリンタのような、空間解像度はあるが画素解像度は低い用途にとって、本発明におけるビットのプログレッシブな順序づけ理想的である。これらの特徴を同一符号ストリームに対し利用できる。
【０４２１】
本発明の構造の一つの特長は、計算効率のよい補間の方法を提供することである。高い解像度が必要なときには、利用できるウエーブレット係数に基づき高域通過係数を補間することができ、そして本発明の逆ウエーブレットが実行される。この方法は、見かけは２重３次スプラインと競合するが、本発明の変換については計算の集中が遥かに少ない。
【０４２２】
本発明はベキ等である、つまり、画像を損失性の形に伸長し、そして同じ符号ストリームへ再圧縮することができる。この特長は、ブラウジング、フィルタ処理又は編集がある用途において、圧縮・伸長サイクルの繰り返しを可能にする。
【０４２３】
本発明は、ソフトウエアでもハードウエアでも比較的容易に実施できる。ウエーブレット変換は、高域通過係数と低域通過係数の各ペア毎の４つの加算／減算操作と、いくつかのシフトだけで計算することができる。埋め込みと符号化は、単純な”コンテキストモデル”と２元”エントロピー符号化器”によって遂行される。このエントロピー符号化器は、有限状態マシン又は並列符号化器によって実現できる。
【０４２４】
以上、本発明の実施例に関して説明したが、本発明はそのような実施例に限定されるものではなく、様々な変形及び修正が許されることは、以上の説明から当業者には明白であろう。
【０４２５】
【発明の効果】
本発明によれば、非損失性／損失性の圧縮／伸長システムのための可逆ウエーブレットフィルタを利用した効率的な符号化／復号に関連して、有限なバンド幅の通信路に対し、符号化データを効果的に送信することが可能になる。
【図面の簡単な説明】
【図１】本発明の符号化システムの符号化部の一実施例のブロック図である。
【図２】本発明の係数データの順序付け／モデリングの一実施例のブロック図である。
【図３】ウエーブレット分析／合成システムのブロック図である。
【図４】非オーバーラップの最小長可逆フィルタを用いてフィルタリングするための変換システムのフォワード変換とリバース変換を説明する。
【図５】２−Ｄ可逆フィルタの２実施例を示すブロック図である。
【図６】４レベル分割の第１レベル分割結果を示す図である。
【図７】４レベル分割の第２レベル分割結果を示す図である。
【図８】４レベル分割の第３レベル分割結果を示す図である。
【図９】４レベル分割の第４レベル分割結果を示す図である。
【図１０】前後２レベル間の親子関係を示す図である。
【図１１】３レベル・ピラミッド変換のブロック図である。
【図１２】２次元２レベル変換のブロック図である。
【図１３】マルチ解像度分割を行なう１次元フィルタを示すブロック図である。
【図１４】本発明の可逆ウエーブレットを利用するシステムのブロック図である。
【図１５】本発明の可逆ウエーブレットを利用する強調及び分析システムのブロック図である。
【図１６】本発明における係数サイズを示す図である。
【図１７】本発明における係数アラインメント用の周波数帯域に対する乗数の例を示す図である。
【図１８】本発明の符号化プロセスの一実施例を示すフローチャートである。
【図１９】本発明の復号プロセスの一実施例を示すフローチャートである。
【図２０】本発明のモデリングプロセスのフローチャートである。
【図２１】本発明のフォワード・ウエーブレットフィルタの一実施例を示すブロック図である。
【図２２】本発明のリバース・ウエーブレットフィルタの一実施例を示すブロック図である。
【図２３】いくつかの変換の係数レンジを示す図である。
【図２４】ルックアップテーブルを用いるコンテキストモデルの一実施例を示すブロック図である。
【図２５】ルックアップテーブルを用いるコンテキストモデルの一実施例を示すブロック図である。
【図２６】ウエーブレット分割段階の例を示す図である。
【図２７】符号化単位を示す図である。
【図２８】ＴＳ−変換の垂直パスを示す図である。
【図２９】バッファリング及び係数計算を示す図である。
【図３０】符号ストリーム構造の一例を示す図である。
【図３１】低解像度ターゲット用符号ストリーム構造の一例を示す図である。
【図３２】係数（画素）間の隣接関係を示す図である。
【図３３】コンテキストモデルの例を示す図である。
【図３４】本発明のコンテキストモデルの一実施例のブロック図である。
【図３５】本発明の符号／絶対値ユニットの一実施例のブロック図である。
【図３６】１パス動作のための符号化データメモリの動的割り当てを示す図である。
【図３７】通信路マネージャの一実施例を説明するためのブロック図図である。
【図３８】本発明におけるメモリ利用法を説明するための図である。
【図３９】本発明におけるビットストリームを説明するための図である。
【図４０】セグメントの構造を示す図である。
【図４１】パラメータ空間とターゲット装置を対比して示す図である。
【図４２】本発明のパーサー（parser）の実施例を説明するための図である。
【符号の説明】
１０１  入力画像データ
１０２  可逆ウエーブレット変換ブロック
１０３  係数データ順序付け／モデリングブロック
１０４  エントロピー符号化器
１０６  符号ストリーム
１０９  符号／絶対値ユニット
２０１  符号／絶対値フォーマッティングユニット
２０２  統合空間／周波数（ＪＳＦ）コンテキストモデルブロック
２１１，２１２  フィルタ
２１３，２１４  サブサンプリング・ブロック
２１７，２１８  アップサンプリング・ブロック
２１９，２２０  フィルタ
４０１，４０２  １−Ｄフィルタ
４０３  ２−Ｄ丸め操作
７０１，７０２  フィルタユニット
７０３，７０４  サブサンプリングユニット
７０５，７０６  フィルタユニット
７０７，７０８  サブサンプリングユニット
７０９，７１０  フィルタユニット
７１１，７１２  サブサンプリングユニット
７２１，７２２  フィルタユニット
７２３，７２４  サブサンプリングユニット
７２５，７２６，７４３  フィルタユニット
７２８，７２９，７３０，７４４  サブサンプリングユニット
７３１，７３２  フィルタユニット
７３３，７３４  サブサンプリングユニット
７３５〜７３８  フィルタユニット
７３９〜７４２  サブサンプリングユニット
７６１〜７６６  １−Ｄフィルタ
１００１  分割ユニット
１００２  圧縮器
１００３  伸長器
１００４  逆分割ユニット
１１０１  分割ユニット
１１０２  分析ユニット
１１０５  分割ユニット
１１０６  強調処理及びフィルタ処理ユニット
１１０７  逆分割ユニット
１６０１  加算器
１６０２  減算器
１６０３  １ビットシフトブロック
１６０４  ２ビットシフトブロック
１６０５  減算器
１６０６  加算器
１６０７  ２ビットシフトブロック
１６０８  加算器
１７０１  減算器
１７０２  ２ビットシフトブロック
１７０３  １ビットシフトブロック
１７０４  減算器
１７０５  加算器
１７０６  減算器
１７０７，１７０８  クリップユニット
１７０９  加算器
１９０１  ルックアップテーブル（ＬＵＴ）
１９０２  符号化／復号ブロック
１９０３  ルックアップテーブル（ＬＵＴ）
１９０４  符号化／復号ブロック
２７００  コンテキストモデル
２７０１  ヘッドビットブロック
２７０２  符号ビットブロック
２７０３  テールビットブロック
２８０１  インバータ
２８０２  マルチプレクサ（ＭＵＸ）
２８０４  カウンタ
２９０１  レジスタファイル
２９０２  メモリ
３００１  ウエーブレット変換
３００２  コンテキストモデル
３００３  通信路マネージャ
３００４  通信路
３５０１，３５０２  パーサ
【図１】
0003693988.tif 000057
【図２】
0003693988.tif 000058
【図３】
0003693988.tif 000059
【図４】
0003693988.tif 000060
【図５】
0003693988.tif 000061
【図６】
0003693988.tif 000062
【図７】
0003693988.tif 000063
【図８】
0003693988.tif 000064
【図９】
0003693988.tif 000065
【図１０】
0003693988.tif 000066
【図１１】
0003693988.tif 000067
【図１２】
0003693988.tif 000068
【図１３】
0003693988.tif 000069
【図１４】
0003693988.tif 000070
【図１５】
0003693988.tif 000071
【図１６】
0003693988.tif 000072
【図１７】
0003693988.tif 000073
【図１８】
0003693988.tif 000074
【図１９】
0003693988.tif 000075
【図２０】
0003693988.tif 000076
【図２１】
0003693988.tif 000077
【図２２】
0003693988.tif 000078
【図２３】
0003693988.tif 000079
【図２４】
0003693988.tif 000080
【図２５】
0003693988.tif 000081
【図２６】
0003693988.tif 000082
【図２７】
0003693988.tif 000083
【図２８】
0003693988.tif 000084
【図２９】
0003693988.tif 000085
【図３０】
0003693988.tif 000086
【図３１】
0003693988.tif 000087
【図３２】
0003693988.tif 000088
【図３３】
0003693988.tif 000089
【図３４】
0003693988.tif 000090
【図３５】
0003693988.tif 000091
【図３６】
0003693988.tif 000092
【図３７】
0003693988.tif 000093
【図３８】
0003693988.tif 000094
【図３９】
0003693988.tif 000095
【図４０】
0003693988.tif 000096
【図４１】
0003693988.tif 000097
【図４２】
0003693988.tif 000098