(57)【特許請求の範囲】
【請求項１】
イメージを表現する複数のデータ要素からなるデジタルデータを処理する符号化装置において、
前記データ要素に対応して、前記データ要素のサブバンド分解を表す係数を生成する手段であって、前記サブバンド分解は、前記データ要素を低周波サブバンド成分および高周波サブバンド成分に分解することにより生成され、前記低周波サブバンド成分はさらに順次サブバンド分解されて、解像度の異なる複数の分解レベルの係数を持つとともに、各々の前記係数は、前記分解レベルに従って、配置マップ内の所定の位置に配置されていることと、
前記係数が有意な係数であるかまたは非有意な係数であるかを決定するために、より大きい粗い値からより小さい精細な値まで、連続的に精細化していくしきい値によって前記係数を評価する手段であって、前記係数の振幅が所定のしきい値を越えたときに、有意な係数であると判断することと、
前記評価する手段によって評価された前記係数に対応して、先のより大きい粗いしきい値によって判断された前記係数の前記配置マップ内における位置に関する情報を表す手段であって、前記表す手段は、（ａ）前記先のより大きい粗いしきい値で未だ有意であるとは識別されていない前記係数の位置に対応する座標を含むエントリーが配列されたドミナント・リストと、（ｂ）前記先のより大きい粗いしきい値で有意であると識別された前記係数の位置に対応する座標を含むエントリーが配列された従属リストとを有しており、前記係数が有意と判断された場合に、前記ドミナント・リスト上の前記エントリーは、前記ドミナント・リストから削除されて前記従属リストの最後に順次追加され、前記連続的に精細化していくしきい値によって、前記従属リストの前記エントリーに含まれた座標に対応する係数がさらに精細化されて量子化されることと、
前記評価された前記係数に対応して、粗い情報に対応する分解レベルにおける前記係数から相対的により詳細な情報に対応する分解レベルにおいて生成された子孫の係数までのパスを有するツリー構造を生成する手段であって、前記粗い情報は所定の空間領域に対する低い周塗数のイメージ情報を表し、前記より詳細な情報は相対的により小さい空間領域に対する高い周波数のイメージ情報を表し、前記子孫の係数の各々は前記ツリー構造のルートによって表された領域の一部分に対応する領域を表していることと、
前記ドミナント・リスト上の前記エントリーに含まれる座標に対応する前記係数を評価して前記配置マップ中の有意な係数の位置を表すシンボルを生成する手段であって、前記ンンボルには、
（ａ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する前記係数が、現しきい値に対して有意であり正の値であることを示す正のシンボルと、
（ｂ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する前記係数が、現しきい値に対して有意であり負の値であることを示す負のシンボルと、
（ｃ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する前記係数が、現しきい値に対して非有意であるが、関連付けられた前記ツリー構造内における少なくとも１つの子孫の係数が前記現しきい値に対して有意であって、最も詳細な情報の分解レベルに対応し、前記ツリー構造内の終端のリーフにある子孫の係数が、全ての前記先のより大きい粗いしきい値に対して非有意であることを示す隔離されたゼロのシンボルと、
（ｄ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する前記係数が、現しきい値に対して非有意であり、前記先のより大きい粗いしきい値に対して有意であったものを除いて、前記関連付けられたツリー構造内における全ての子孫の係数が前記現しきい値に対して非有意であることを示すゼロ・ツリールートのシンボルと、
が含まれていることと、
出力ビット・ストリームを生成するために、前記正のシンボルと、前記負のシンボルと、前記隔離されたゼロのシンボルと、前記ゼロ・ツリーのシンボルとを符号化する符号化手段と
を備えたことを特徴とする符号化装置。
【請求項２】
請求項１に記載の装置において、
前記符号化手段は、入力シンボルに応じて出力ビット・ストリームを生成するエントロピー・コーダであることを特徴とする符号化装置。
【請求項３】
請求項１に記載の装置において、前記しきい値は、連続的に１／２に精細化されることを特徴とする符号化装置。
【請求項４】
請求項１に記載の装置において、
前記従属リストの前記エントリーに含まれた座標に対応する前記係数の振幅を量子化するために、有意非ゼロデータの振幅値を表すシンボルであって、前記連続的に精細化していくしきい値に基づいて逐次再構築される量子化推定値と前記係数の振幅値との誤差に従って、（ａ）前記振幅値が、前記量子化推定値に対して上側の次の量子化範囲内にあることを表す第１のシンボルと、（ｂ）前記振幅値が、前記量子化推定値に対して下側の次の量子化範囲内にあることを表す第２のシンボルとを生成し、前記第１のシンボルおよび前記第２のシンボルを符号化し、合わせて前記出力ビット・ストリームを生成することを特徴とする符号化装置。
【請求項５】
請求項３に記載の装置において、各々の前記係数は、関連付けられた画素の振幅を表していることを特徴とする装置。
【請求項６】
イメージを表現する複数のデータ要素から成るデジタル・データが、低周波サブバンド成分および高周波サブバンド成分を含む複数の分解レベルを持つ係数に変換され、前記係数は、前記分解レベルに従って前記係数の配置マップ内の所定の位置に配置されているとともに、前記係数は、粗い情報に対応する分解レベルにおける前記係数から相対的により詳細な情報に対応する分解レベルにおいて生成された子孫の係数までのパスを有するツリー構造を有しており、前記粗い情報は所定の空間領域に対する低い周波数のイメージ情報を表し、前記より詳細な情報は相対的により小さい空間領域に対する高い周波数のイメージ情報を表し、前記子孫の係数の各々は前記ツリー構造のルートによって表された領域の一部分に対応した領域を表しており、前記係数の値をより大きな粗いしきい値からより小さい詳細な値まで、連続的に精細化していくしきい値によって評価することにより生成された、前記配置マップ中の有意な係数の位置を表すシンボルの連続が符号化された出力ビット・ストリームを処理する復号装置において、
前記出力ビット・ストリームから前記シンボルを復号する手段と、
前記復号されたシンボルに応答して、大きく粗い値から小さく精細な値に至るまで連続的に精細化していくしきい値に基づいて、前記復号されたシンボルから前記係数の前記配置マップ内の位置に関する情報を生成する手段であって、前記復号されたシンボルには、
（ａ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する係数が、現しきい値に対して有意であり正の値であることを示す正のシンボルと、
（ｂ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する係数が、現しきい値に対して有意であり負の値であることを示す負のシンボルと、
（ｃ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する係数が、現しきい値に対して非有意であるが、関連付けられた前記ツリー構造内における少なくとも１つの子孫の係数が前記現しきい値に対して有意であって、最も詳細な情報の分解レベルに対応し、前記ツリー構造内の終端のリーフにある子孫の係数が、全ての前記先のより大きいしきい値に対して非有意であることを示す隔離されたゼロのシンボルと、
（ｄ）  前記ドミナント・リスト上のエントリーに含まれる座標に対応する係数が、現しきい値に対して非有意であり、前記先のより大きいしきい値に対して有意であったものを除いて、前記関連付けられたツリー構造内における全ての子孫の係数が前記現しきい値に対して非有意であることを示すゼロ・ツリールートのシンボルと、が含まれていることと、
前記係数の前記配置マップ内の位置に関する情報を表す手段であって、前記表す手段は、（ａ）前記出力ビット・ストリームから前記シンボルを復合した結果、未だ有意であるとは識別されていない前記係数の位置に対応する座標を含むエントリーが配列されたドミナント・リストと、（ｂ）前記出力ビット・ストリームから前記シンボルを復号した結果、有意であると識別された前記係数の位置に対応する座標を含むエントリーが配列された従属リストとを有しており、前記正のシンボルまたは前記負のシンボルが復号されたときは、前記ドミナント・リスト上の前記エントリーは、前記ドミナント・リストから削除されて前記従属リストに順次追加されることと、
前記従属リスト上の前記エントリーに含まれる前記座標に対応し、有意と判断された係数に対して、前記大きく粗い値から小さく精細な値に至るまで連続的に精細化していくしきい値に基づいて、さらに精細化しながら前記係数の推定値を求める手段と、
前記係数の推定値ならびに前記復号されたシンボルから生成された前記係数の前記配置マップ内の位置に関する前記情報に基づいて、前記係数を求め、さらに前記係数を逆変換して前記デジタル・データを再生する手段と、
を備えたことを特徴とする復号装置。
【請求項７】
請求項６に記載の装置において、
復号しようとする前記係数が有意であるかまたは非有意であるかを示すエントリーを含むマークマップを生成する手段をさらに備え、前記マークマップの前記エントリーは前記配置マップ内の各々の前記係数に対応しており、前記マークマップの前記エントリーが有意であることを示しているとき、前記出力ビット・ストリームから前記シンボルを復号するとともに、前記ゼロ・ツリー・ルートのシンボルが復号されたときは、対応する全ての子孫の係数に対応する前記マークマップの前記エントリーを非有意に設定することを特徴とする復号装置。
【請求項８】
請求項６に記載の装置において、
前記係数の推定値を求める手段は、前記出力ビット・ストリーム中に含まれ、有意非ゼロデータの振幅値を表し、前記従属リスト上の前記エントリーに含まれる前記座標に対応する前記係数の振幅値と前記推定値との誤差の絶対値が前記現しきい値より大きいかどうかを示すシンボルの復号結果に従って、前記現しきい値に対して、前記推定値をさらに精細に再構築することを特徴とする復号装置。
【請求項９】
請求項６に記載の装置において、
前記デジタル・データは、複数の画素からなるイメージを表現しており、
前記係数は前記複数の画素の振幅を表わしていることを特徴とする復号装置。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、デジタル信号伝送チャネルを経由して伝達される情報を圧縮符号化するためのシステムに関する。具体的には、本発明はデータ重要度マップ（data significance map）を符号化するためのデジタル信号処理システムに関する。
【０００２】
デジタル・データ圧縮システムの主要な目的の１つは、冗長情報を除去し、残余の情報を最小数のビットを用いて正確に表現してから、データを伝送チャネルまたは記憶媒体を経由して伝達することである。圧縮の対象となるデータは、例えば、オーディオ情報やビデオ情報といったように、様々なタイプの情報を表している場合がある。
【０００３】
データを圧縮のために符号化するには、多くの場合、２つの要因を特に考慮する必要がある。つまり、有意データ（significant data）のロケーションと有意非ゼロ・データ（significant non-zero data）の値である。データ・ロケーションの圧縮符号化は、有意非ゼロ・データの符号化を強化するという利点がある。データ・ロケーションは、重要度マップ（significance map）と呼ばれるもののエントリ（項目）で表わすことができる。
【０００４】
特に、イメージ信号処理分野における最近の開発で絶えず注目の中心になっているのは、効率的で、正確なデータ圧縮符号化方式の必要性である。この点に関して、「ピラミッド形」信号処理（"pyramid" signal processing）と呼ばれる種々の方式が、特にイメージ情報処理に関連して提案されている。イメージ・データの多重解像度「ピラミッド形」処理は、例えば、Burt他著「コンパクト・イメージ・コードとしてのラプラシアン・ピラミッド」（"Laplacian Pyramid as a Compact Image Code"）（IEEE Transactions on Communication, Vol. Com-31, No. 4, April 1983）に記載されている。「ウェーブレット」（wavelet）ピラミッド形と呼ばれるものは、多重解像度ピラミッド形の特殊タイプであり、これは直角位相ミラー・フィルタ（quadrature mirror filter - QMF）を使用して、オリジナル・イメージ表現ビデオ信号をサブバンド（subband）に分解したものを発生するものである。このタイプの信号プロセッサは、Pentland他著「フラクタル・ベースのイメージ圧縮の実用的アプローチ」（"Practical Approach to Fractal-Based Image Compression"）（Proceedings of the DCC'91 Data Compression Conference, April 8-11, 1991, IEEE Computer Society Press, Los Alamitos, California）に記載されている。Pentland等の圧縮システムでは、低周波数粗スケール情報を使用して、高周波数精細スケールの有意情報を予測することを試みている。QMFサブバンド・ピラミッド形処理は、J.W.Woods編の文献「サブバンド・イメージ・符号化」（"Subband Image Coding"）（Kluwer Academic Publishers, 1991）にも記載されている。
【０００５】
イメージ・データをピラミッド形処理する別のシステムは、Lewis他著「二次元ウェーブレット変換を用いた64 Kb/sビデオ・コーデック」（"A 64 Kb/s Video Codec Using the 2-D Wavelet Transform"（上掲のProceedings of the DCC '91 Data Compression Conference）に記載されている。Lewis等は、人間の視覚的認識モデル（model of human visual perception）をベースにした符号化システムを説明している。分解された高通過帯域は、２×２のサブツリー・ブロックからなるノードをもつ空間的ローカル・ツリーを構築することによって処理される。あるツリーのエネルギ（統計的測定量）は、人間の視覚系の加重しきい値（weighted threshold）と比較されて、ツリーが重要であるかどうかが判断される。重要でなければ、コーダは、そのツリーの残余がゼロであると想定し、「ゼロ・フラッグ」が送出される。
【０００６】
係属中の米国特許出願第790,860号（J.M.Shapiro）に開示されているデータ圧縮システムでは、有意の低周波数粗スケール情報が存在しないことを利用して高周波数精細スケールの有意情報が存在しないことを予測している。これは、Pent land等のシステムが逆に有意情報の予測を試みているのと対照的である。さらに、Shapiroシステムの利点は、Lewis等におけるように、複数の係数からなるブロックに関連する統計的測定量（エネルギなど）に頼らないことであり、統計的測定量に頼ると、有意な係数がその周囲の非有意な係数によって不明瞭になるからである。また、Lewis等と異なり、Shapiroシステムは、あるしきい値が与えられているとき、ツリー構造のルート（root）エレメントも、ルート・エレメントのどの子孫（descendant）も、そのしきい値より大きい大きさをもたないことを保証している。
【０００７】
【発明が解決しようとする課題】
本明細書から明らかなように、Shapiroシステムを本明細書に開示しているように変形すると、メモリと計算量が増加するという犠牲を伴うが、符号化パフォーマンスが向上する。前述したShapiroシステムのゼロツリー（zerotree）構造では、大きな有意係数値がツリー構造内の中間（リーフ（leaf））ノードに現れると、そのノードの祖先は、例えば、連続近似量子化装置（successive approximation quantizer）に関連して、漸次小さくなっていくしきい値で将来の評価を行うとき、ゼロツリー・ルートになることが禁止されることになる。
【０００８】
【課題を解決するための手段】
本明細書に開示したシステムでは、連続近似量子化装置を使用しているので、ある係数が有意であると分かると、漸次小さくなっていくしきい値でその係数を重要度マップに組み入れる必要がなくなっている。従って、本発明の原理によれば、有意係数が中間（例えば、リーフ）ノードに現れても、先祖（より粗いレベルに置かれた）は、漸次小さくなっていくしきい値で将来の評価を行うとき、ゼロツリー・ルートになることが禁止されない。
【０００９】
本発明の原理によれば、デジタル・データ処理システムはデータ表現係数のツリー構造を生成する手段を含み、そのツリー構造は、例えば、粗い情報のレベルで生成された係数から相対的に精細な情報のレベルで生成された係数に至るまで複数の経路をもっている。これらの係数は、有意係数であるか、非有意係数であるかを区別するように評価される。本システムには、ツリー構造のルート係数からツリー構造の終端係数の集合に至るまでの、ツリー構造内の相互に関係づけられた非有意係数の連関を表す専用シンボル（dedicated symbol）を生成するための手段も含まれている。このシンボルは、ある特定の基準レベルにあるとき、大きくなっていく基準レベルで非有意であると判断された係数とその子孫のすべてがその特定基準レベルより小さい大きさをもっていれば、その係数はツリー構造のルートであることを表している。
【００１０】
本発明によるシステムの図示した好適実施例では、エンコーダは、画素（picture elements）で構成されたオリジナル・イメージ情報を、複数の分解レベルの各々における複数のイメージ表現サブバンドに分解する。サブバンドは、低周波数サブバンド成分と高周波数サブバンド成分を含んでいる。各分解レベルにおける低周波数サブバンドは、最後のレベルを除き、それより下位の分解レベルのサブバンド成分に分解される。この分解プロセスにより、イメージ分解の各サンプルごとに、振幅を表す係数が得られる。ある与えられたレベルにある係数は、より精細な詳細レベルにある係数の集合、例えば、ある次元のイメージ解像度の２倍に相当する係数の集合と関係づけることが可能である。相対的に粗いレベルにある係数は「親（parent）」と呼ばれ、より精細な次の詳細レベルで同じ空間的または時間的ロケーションに置かれた係数は「子（children）」と呼ばれる。ある親係数が与えられているとき、同じロケーションでより精細なすべての詳細レベルにある係数はすべて「子孫（descendants）」と呼ばれる。同様に、ある子係数が与えられているとき、同じロケーションでより粗いすべての情報レベルにある係数はすべて「祖先（ancestors）」と呼ばれる。係数は、順次に定められる複数のしきい値の各々に対して、大きさが有意であるか、非有意であるかが判断される。ある係数が非有意で、「ゼロツリーのルート」であると判断されると、すべての子孫は、ある特定のしきい値に対して、より大きなしきい値で非有意であると判断された係数とその子孫のすべてがその特定しきい値より小さい大きさをもっていれば、非有意であると予測される。ゼロツリー・ルートであると判断された係数は、専用シンボルを使用して符号化され、このシンボルは最終的にエントロピー・コーダ（entropy coder）などの手段によって処理される。非有意係数の符号化は、特に、中周波数と高周波数の有意サブバンド係数を含む信号、例えば、イメージのテクスチュア（texture）を表している信号の場合に、大幅に改善することが可能である。
【００１１】
第１図に示すように、オリジナル・イメージは３つのピラミッド・レベル（pyramid level）に分解される。オリジナル・イメージ・マップは、その幅（W）×高さ（H）で定義されたアスペクト比を示しており、普通「ペル（pel）」または「ピクセル（pixel）」と呼ばれ、連続する輝度（intensity）特性を表している複数のデジタル画素（picture elements）から構成されている。この例では、オリジナル・イメージは512×512ペル・イメージになっており、イメージの右下隅に単一ペルが示されている。オリジナル・イメージの平均値（meanまたはaverage value）は、オリジナル・イメージがサブバンド分解を受ける前に取り除かれ、別々に符号化される。
【００１２】
512×512オリジナル・イメージは、最も精細な詳細、つまり、解像度を示している。第１分解レベルでは、ゼロ平均値（zero-mean）のオリジナル・イメージは、第２図を参照して後述する装置によって４つのサブバンドに分解される。各サブバンドは空間周波数のバンド（帯域）を表している。第１レベル・サブバンド・イメージは、あとで説明するように、LL1,LH1,HL1およびHH1で示されている。オリジナル・イメージを分解するプロセスでは、水平方向と垂直方向の両次元において２倍でサブサンプリング（subsampling）され、第１レベルの４サブバンド・イメージの各々は、各次元がオリジナル・イメージの半分のサイズで、アスペクト比がw/2×H/2（縮尺に応じて図示していない）の、256×256ペル・イメージになる。このレベルの各係数は、オリジナル・イメージ内の同じ空間ロケーションにある４個のペル（２×２の領域）に対応している。
【００１３】
サブバンドLL1は、低周波数水平情報と低周波数垂直情報を同時に含んでいる。通常、イメージ・エネルギの大部分は、このサブバンドに集中している。サブバンドLH1は、低周波数水平情報と高周波数垂直情報（つまり、垂直エッジ情報）を含んでいる。サブバンドHL1は、高周波数水平情報と低周波数垂直情報（つまり、水平エッジ情報）を含んでいる。サブバンドHH1は、高周波数水平情報と高周波数垂直情報（つまり、テクスチュア（texture）または対角エッジ情報）を含んでいる。
【００１４】
後に続く第２および第３下位分解レベルの各々は、先行レベルの低周波数LLサブバンドを分解することによって得られる。従って、第１レベルのサブバンドLL1が分解されると、中詳細（moderate detail）の第２レベルのサブバンドLL2,LH2,HL2およびHH2が得られる。同様に、サブバンドLL2が分解されると、第３レベルの粗い詳細サブバンドLL3,LH3,HL3およびHH3が得られる。２倍でサブサンプリングされるので、各第２レベル・サブバンド・イメージは、オリジナル・イメージの1/4のサイズである128×128ペル・イメージになる。このレベルでの各サンプル（ペル）が中詳細を表しているのは、各々が同じロケーションにおけるオリジナル・イメージでは16ペル（４×４の領域）で定義された情報に対応しているからである。同様に、各第３レベル・サブバンド・イメージは、オリジナル・イメージの1/8のサイズである64×64ペル・イメージになる。このレベルでの各ペルが相対的に粗い詳細（coarse detail）に対応しているのは、各々が同じロケーションにおけるオリジナル・イメージでは64ペル（８×８の領域）で定義された情報を表しているからである。分解されたイメージはサブサンプリングにより、オリジナル・イメージより物理的に小さくなっているので、オリジナル・イメージをストアするのに使用したのと同じ512×512メモリを、分解されたサブバンド・イメージのすべてをストアするために使用できる。言い換えれば、オリジナル・イメージおよび分解されたサブバンドLL1とLL2は破棄されるので、ストアされてない。粗い詳細を表すサブバンド成分と、次の上位詳細レベルにある対応するサブバンド成分との間には、親子の関係が存在する。サブバンド分解レベルは３つだけが示されているが、特定のシステムの要求条件に応じて追加のレベルを展開することが可能である。また、DCTや線形空間サブバンド（linearly spaced subband）などのように、他の方法で変換を行えば、第５図〜第８図を参照して説明するように、いくつかの異なる親子関係を定義することも可能である。
【００１５】
サブバンド分解プロセスは、第２図に示す装置で行うことが可能である。Ｗ×Ｈの寸法をもつイメージを表す入力信号は、ユニット20と21によって水平方向に低域通過と高域通過のフィルタがかけられてから、ユニット24と25によって２倍で水平方向にサブサンプリングされる。ユニット24からのサブサンプリングされた出力信号は、ユニット26と27によって垂直方向に低域通過と高域通過のフィルタがかけられてから、それぞれユニット28と29によって２倍で垂直方向にサブサンプリングされる。サブバンド成分LLとLHはユニット28と29のそれぞれの出力端に現れる。同様に、ユニット25からの出力信号は、ユニット30と31によって垂直方向に低域通過と高域通過のフィルタがかけられてから、それぞれユニット32と33によって垂直方向にサブサンプリングされる。サブバンド成分HLとHHはユニット32と33のそれぞれの出力端に現れる。サブバンド・デコンポーザ（subband decomposer）に関連するフィルタ・ユニットは、水平方向と垂直方向の周波数バンドを低周波数バンドと高周波数バンドに分割するために、デジタル直角位相ミラー・フィルタ（QMF）にすることが望ましい。後続の下位分解レベルに置かれたQMFユニットは、先行レベルに置かれたフィルタ・ユニットと同様のものである。
【００１６】
３つの分解レベルでの複数サブバンドの関係を別の見方で示したのが第３図である。異なる分解レベルにある対応するサブバンド間の親子関係は実線の矢印で示されており、この矢印は、相対的に粗いデータ・レベルにある親エレメントからより精細なデータ・レベルにある子エレメントへ向いている。第３図は、ウェーブレットピラミッドの場合のツリー従属関係を示し、すべての親はサブバンドLL3を除き、１つのサブバンドに子をもっている。最後の分解レベルにあるサブバンドLL3は分解されない唯一のLLサブバンドであり、サブバンドHL3,LH3およびHH3の「親」になっている。点線は、各レベルにおける最低周波数サブバンドから最高周波数サブバンドへ向かって、最も粗いデータ・レベルから始まって、複数の分解レベルを処理するときの１つの可能な順序を示している。第３図を他の側面から見たものは、第12図を参照して後述する。
【００１７】
第４図〜第８図は、代替的なサブバンド分解形式を示している。第４図のサブバンド形式は、各子エレメント（例えば、係数）が複数の親エレメントを持つことができる点を除けば、第３図のそれと類似している。第５図と第６図は、それぞれ単一および複数の親エレメントをもつ子エレメントの場合の分割可能ウェーブレット分解のツリー従属関係を示している。分割可能分解では、水平方向のフィルタリングとサブサンプリング操作を完了してから垂直方向のフィルタリングとサブサンプリング操作を行うことも、その逆を行うことも可能である。第７図と第８図は、それぞれ単一および複数の親エレメントをもつ子エレメントについて、離散的余弦変換（Discrete Cosine Transform - DCT）などのような、線形空間サブバンド方式の分割可能ブロック変換を行う場合のツリー従属関係を示している。
【００１８】
以下に説明する符号化システムは、ある特定のしきい値が与えられれているとき、ある与えられたサブバンド分解に関連する重要度マップのデータ圧縮を達成するものである。重要度マップの符号化システムでは、重要度順に配列されたビットをもつビットストリーム（bitstream）を作り出す能力もつ、開示した連続近似量子化装置とエントロピー・コーダなどを使用することによって、有意係数の実際の非ゼロ値の圧縮を強化している。
【００１９】
開示したシステムでは、特に、ある係数（この例では、二次元（2-D）離散的ウェーブレット変換の係数）が、ゼロまたは非ゼロの量子化値をもつかどうかを示す重要度マップを符号化するという問題を取り扱っている。これは高圧縮の重要な側面である、低ビット・レート・イメージ・符号化である。非常に低いビット・レートを達成するには、すなわち、量子化後ペル当たり１ビットを達成するには、ゼロを表すシンボルが現れる確率は非常に高くなる。ビット予算（bit budget）は、その多くが重要度マップを符号化するのに消費されるのが通常であるので、重要度マップの符号化を大幅に改善すると、低ビット・レート圧縮が大幅に改善されることになる。
【００２０】
重要度マップを符号化する費用は、開示されたゼロツリー構造を使用すると低減化される。変換符号化（transform coding）を採用する従来の手法では、JPEGイメージ処理標準案と同じように、ある種のランレングス・符号化（run length coding）によって重要度マップを符号化しているのが普通である。この種の符号化では、ゼロに量子化された係数の非独立性の一部を利用できる反面、ランの長さを符号化するので、一次（first order）エントロピーは改善されないのが一般的である。ブロックの終わり（end-of-block - EOB）コードは、例えば、JPEGシステムでは、ブロック内の残余係数がすべてゼロであることを示すために使用されている。開示したゼロツリー構造がEOBコードより優れている主要利点は、ゼロツリー・ルートが現れるサブバンドがその粗さを増加していくと（周波数が減少していくと）、予測される係数の数が指数的に増加することである。これに対して、EOBシンボルが現れる周波数がその周波数を減少していくと、予測される係数の数は線形的に増加するだけである。従って、ゼロツリー構造によると、特に、ルートが粗いスケールで現れるのが普通である平滑区域において、予測できる係数がさらに多くなる。
【００２１】
ある特定のしきい値のとき、ある与えられたサブバンド分解に関連する重要度マップは、事実上、サブバンド分解（第３図）をコピーしたものであり、そのコピーでは、各係数はバイナリ・デシジョン（binary decision）を表すエントリ値によって置き換えられている。例えば、値"0"は、関連の係数の値の大きさが非有意（しきい値より小さいか等しい大きさをもつ）であることを示すために使用でき、"1"の値は、関連の係数の大きさが有意（しきい値より大きい大きさをもつ）であることを示すために使用できる。重要度マップの定義は、三値マップ（ternary map）を含めるように拡張することも可能である。この三値マップでは、有意なエントリは、"1"と"-1"の値を用いてエントリの有意性と符号を示すために、正と負のエントリに分割されているが、非有意を表すために"0"も用いられている。重要度マップの各エントリに関連づけられたサブバンド係数は有意であるか、非有意であるかのどちらかであるので、重要度マップは、事実上、サブバンド分解の有意係数のロケーションを示している。重要度マップを係数の値から切り離して符号化すると、低ビット・レート（高圧縮）を達成するためには、有意係数の数を非常に少なくする必要があるので、特に低ビット・レート（例えば、サンプル当たり１ビット以下）のデータ圧縮の場合に好都合である。重要度マップを符号化するには、二値・デシジョン（有意か非有意か）または三値デシジョン（符号も重要度マップに示されているとき、正の有意か、負の有意か、非有意か）が必要になるので、適応算術符号化（adaptive arithmetic coding）やランレングス・符号化といったように、小さなアルファベットから多数のサンプルを符号化するのに適した符号化手法が重要度マップを符号化するために使用できる。非ゼロ値の大きさを符号化するには、大きなアルファベットからサンプルを符号化するように最適化された、いくつかの手法（例えば、ベースラインJPEGシステムで使用されているような、あらかじめ決めたテーブルをもつハフマン・符号化（Huffman coding）など）が使用できる。
【００２２】
ゼロツリー・符号化によると、ある特定のしきい値に対する、ある与えられたサブバンド分解に関連する重要度マップが効率よく符号化される。関連のサブバンドの中で隔離された単一の係数が有意か、非有意かを示すシンボルを使用するほかに、可能な場合は、非有意係数（与えられたしきい値より小さいか、等しい大きさをもつ係数）のエントリは、図示のシステムでは、多重解像度データ表現のゼロツリー構造を構築することによってグループにまとめられて一緒に符号化される。そしてゼロツリーのルートは、重要度マップ・エンコーダのアルファベット内の単一専用シンボルを使用して符号化される。この目的のために、各係数は個別に評価される。重要度マップ内のエントリは、その関連サブバンド係数とその子孫のすべてが特定のしきい値より小さいか、等しい大きさをもつとき、ゼロツリー・ルートとして符号化される。しかし、有意な子孫が存在すると、非有意な係数のエントリは、「隔離されたゼロ（isolated zero）」を表すシンボルを用いて符号化される。従って、重要度マップは、二値重要度マップの場合には、３つの記号（有意、隔離されたゼロ、ゼロツリー・ルート）を用いて符号化され、符号付きデータの三値マップの場合には、４つのシンボル（正の有意、負の有意、隔離されたゼロ、ゼロツリー・ルート）を用いて符号化される。
【００２３】
ゼロツリー・符号化は、重要度マップ内のあるエントリがゼロツリーのルートであると判断されると、非常に多数の子孫係数の非有意が予測されるのが普通であるので、特に低ビット・レート圧縮システムで使用すると有用である。重要度マップ内で子孫の係数と関連づけられたエントリはルートから予測できるので、その非有意を符号化するのに追加のシンボルは不要である。従って、ツリー全体の非有意は、非常に安いコストで符号化される。
【００２４】
従来の手段を使用して有意非ゼロ係数の実際値を符号化することも可能であるが、ゼロツリー構造に関連するしきい値設定（thresholding）オペレーションによって、連続近似量子化装置でゼロツリー構造を使用できるので、漸次に精細になるしきい値でデータが精密化（refine）されるという利点がある。この目的のために、マルチステージ量子化装置は、漸次に精細になるしきい値でゼロツリー・符号化を使用して、前の大きなしきい値で非有意と判断されていた係数に関連する重要度マップを効率よく符号化する。
【００２５】
連続近似量子化装置では、各分解レベルのサブバンド・イメージはマルチステージ・符号化システムを使用して符号化される。このシステムでは、各ステージは漸次に精細になるしきい値を使用して、有意かどうかを判断する。この符号化システムは、２つの係数座標リスト（list of coefficient coordinates）をメモリに維持している。さらに、符号化システムは、サブバンド分解の２コピーをメモリに維持している。最初のコピーはオリジナル・コピー（original copy）と呼ばれるもので、符号化システムは未変更のままにしておく。もう１つのコピーはドミナント・コピー（dominant copy）と呼ばれるもので、これは、ある係数が有意であると判断されると、ドミナント・コピー上のその値がゼロにセットされるような形で変更される。ステージの開始時には、ドミナント・リストは、まだ有意であると判断されていない係数の座標を収めている。従属リスト（subordinate list）は、前の大きなしきい値に対して以前に有意であると判断されたオリジナル・コピーの係数の座標を収めている。各リストは係数が符号化処理される順に座標を収めている。第１ステージの開始時には、すべての係数座標はオリジナル・ドミナント・リストに入っており、従属リストは、どの係数もまだ有意であると設定されていないので、空になっている。係数が有意または非有意であると判断されると、そのエントリはそれぞれ、オリジナル・ドミナント・リストから従属リストへ移されるか、あるいは新たに生成されたドミナント・リストへ移される。オリジナル・ドミナント・リストは、そのエントリのすべてに関連する係数が評価されると消去され、新しいドミナント・リストと従属リストは、そのあと、漸次に精細になるしきい値で精密化される。しきい値が精細になるごとに、有意係数の座標の新しいエントリは、従属リストの最後に付加されるので、あるしきい値で見つかった有意係数の座標は、常に、より精細なしきい値で見つかった有意係数の座標の前に置かれる。その結果、ビットストリームのうち、従属リスト上の係数の精密化（refinement）に対応する部分は、重要度順に配列されたビットを含んでおり、そこでは、係数の精密化は従属リストで判断された順序で行われている。従って、第１ステージで有意であると、つまり、大きな大きさをもつと判断された係数は、そのあとのステージで有意であると最初に判断された係数、つまり、より小さな大きさをもつ係数の前に、常に精密化される。
【００２６】
サブバンド分解の符号化プロシージャの概要は、第９図に示すフローチャートに示されている。この符号化プロシージャは、第10図と第11図により詳しく示されている。符号化は、第３図に示すサブバンド処理順序（走査順序）に従って行われる。従って、符号化プロセスの開始時には、符号化される係数は主に低周波数（粗）情報を表している。第９図において、ユニット910は、すべての分解レベルにあるすべてのサブバンド・イメージの中からのすべての係数の最大単一絶対値Ｍの1/2に等しい初期しきいレベルＴを設定する。ユニット910Aでは、オリジナル・サブバンド分解のコピーが作られ、ドミナント・コピーと名づけられる。ユニット911では、２つのコンパニオン・マップ（companion map）、つまり、ルートマップ（rootmap）とリーフマップ（leafmap）（その用途については後述する）は、サブバンド分解のドミナント・コピーから計算される。これらのマップは、ゼロツリーを高速に識別するためにエンコーダによって使用される。ユニット912では、オリジナル・ドミナント・リストに関連する係数は、各係数の座標がリストに入っている順で、このしきい値で処理される。リストは、各係数の座標だけを収めており、サブバンド分解プロセスで作られた係数の値を収めていない。係数の値は、別のメモリにストアされており、符号化プロセス時に係数の値が必要になったとき、このメモリから取り出される。
【００２７】
コンパレータ914では、ユニット912によって作られた符号化ビットの数は、所定のビット予算から使用できる総ビット数と比較される。ビット予算は、与えられた任意の時間に符号化のために使用できるビット数を判断するカウンタで実現することができ、この場合、カウンタは、ユニット912に関連する算術エントロピー・コーダ（arithmetic entropy coder）からの出力ビット数だけデクリメントされる。ビット予算は、所望のビット・レート（例えば、0.25ビット／ペル）と符号化される係数の数（この例では、512×512イメージのとき262,144個のサブバンド係数）の積や符号化ビットストリームが送信されるモデムの容量、符号化ビットストリームをストアするために使用されるディスクまたはテープの容量といった、各種要因の関数である。ビット予算がその時点で空であれば、ユニット922に示されているように符号化は終了する。空でなければ、符号化はユニット916を通して継続され、ユニット916は以前のしきい値の1/2に等しい新しいしきい値を生成し、従属リストからの係数がユニット918で現在の新しきい値により精密化される。符号化ビットの数は再び、コンパレータ920でビット予算と比較され、ビット予算が空であれば、符号化は終了する。空でなければ、ルートマップとリーフマップはサブバンド分解のドミナント・コピーから再計算されるが、このコピーはその時点で、サブバンド分解のオリジナル・コピーから変更されている場合がある。そのあと、ドミナント・リストの係数は、ユニット912で最新のしきい値で処理され、符号化はビット予算が空になるまで、上述したように続けられる。現（精密化された）しきい値で符号化パスが行われるつど、以前の（粗）しきい値で有意であると以前に判断された係数は、より重要であるとみなされるので、以前のしきい値で非有意であると以前に判断された係数の前に、現しきい値で評価される。符号化は、ビット予算の状況以外の要因によって、例えば、あらかじめ決めたしきい値の繰返し数、許容し得る歪み量に関する品質指標、実効値基準、あるいは1/4ビット／ペルといった所望のビット・レートの達成によって制限することができる。
【００２８】
符号化は、ドミナント・リストと従属リストが先行レベルに対して漸次に小さくなっていくしきい値で評価されていくと、漸次に高くなっていく精度に精密化される。この例では、しきい値は、２倍で漸次に減少していくが、特定システムの要求条件に応じて他の係数を選択することも可能である。主な符号化パスでは、３つの係数の可能性（正の有意、負の有意、非有意）が、４つのシンボルのアルファベットを用いて符号化される。４つのシンボルとは、非有意な隔離されたゼロ係数を表す"0"、非有意なゼロツリー・ルートを表す"1"、正の有意係数を表す"2"、負の有意係数を表す"3"である。"1"ゼロツリー・ルート・シンボルは、唯一の「グループ化」シンボルであり、子孫をもつ係数の場合にだけ現れることができる。符号化の可能性は５つ存在するが、上に挙げた４つの符号化シンボルだけが使用される。符号化されない５つ目のシンボルはゼロツリー・ルートから下る非有意係数であり、これは、"1"ゼロツリー・ルート・シンボルが先祖で符号化されているとき暗黙に符号化される。
【００２９】
第10図は、サブバンド・イメージを符号化して、ビットストリームのうちドミナント・リストに対応する部分を作るためのシステムを示すフローチャートである。
【００３０】
符号化は、ユニット1002に示されているように、最初の係数の指標と関連ｘ，ｙ座標をオリジナル・ドミナント・リストから取り出すことから開始される。このリストは、サブバンド係数指標を、関連の係数が処理される順に配列している。リスト（ドミナントおよび従属）上の各指標（index - インデックス）は、特定のエントリのリスト内の位置を指定している。各エントリは、係数が生成されて、メモリ内の所定アドレスにストアされたときの、サブバンド分解の２バージョンの各々の関連エレメントの座標を指定している。処理順序は、第３図に示すサブバンド処理順序によって決まる。もっと具体的に説明すれば、この例では、低周波数垂直情報を含んでいるHLサブバンド内の係数に関連する座標は、その係数の垂直走査を引き起こすように配列され、低周波数水平情報を含んでいるLHサブバンド内の係数に関連する指標は、その係数の水平走査を引き起こすように配列されている。LLサブバンドとHHサブバンド内の係数に関連する指標は、Peano-Hilbert平面埋込み曲線（plane filling curve）と呼ばれるものに従って、走査を引き起こすように配列されている。これについては、Lempel他著「二次元データの圧縮」（Compression of Two Dimensional Data）（IEEE Transactions on Information Theory, Vol. IT-32, No. 1, January 1986）に説明されている。
【００３１】
オリジナル・ドミナント・リストでは、サブバンドは、親係数が常にその子係数の前に現れるように一度に１つずつ走査される。ゼロツリーは、ある与えられた分解レベルにおける係数から始まり、第１分解レベルで終わることができるが、中間分解レベルで終わることはできない。従って、ゼロツリーが可能である場合は、走査は最低周波数サブバンドLL3内の係数から始まり、最高周波数サブバンドHH1内の係数で終了する。
【００３２】
ユニット1004では、現指標エントリにおける係数の振幅は、その振幅値がサブバンド分解のドミナント・コピーにストアされていたメモリから取り出される。コンパレータ1006は、係数振幅（X）の絶対値を現しきい値と比較する。この現しきい値は、その時点では、第９図を参照して説明するように、初期しきい値Ｔ＝M/2になっている。
【００３３】
Ｘの絶対値が現しきい値より大きければ、現係数は有意と判断され、次にコンパレータ1008によって評価されてその極性が判別される。係数が負であれば、符号化はブロック1010へ進み、そこで再構築値-3/2 Tが符号化プロセスで使用されている出力マップの対応する係数ロケーションに入れられる。出力マップは、符号化されるサブバンド分解の係数座標に対応する係数座標をもつ512×512イメージ・マップであり、第３図に示す形式になっている。出力マップは、デコーダがこれまでにビット・ストリームに作られた情報から再構築することができる、サブバンド分解のエンコーダ・バージョンを収めている。エンコーダで作られた出力マップは、デコーダで作られた同一の出力マップに対応しているので、それから出力イメージを再作成することができる。復号化プロセスが符号化プロセスを追跡するために、係数の相対的重要度に関するエンコード・デシジョン、つまり、エントリをドミナント・リストと従属リスト間で、あるいはそのどちらかのリスト内で移動するかどうかのデシジョンは、出力マップに入っている情報、つまり、以前に符号化されていた情報だけに基づいて行わなければならない。出力マップはすべての係数についてゼロで初期化され、符号化の進行に伴って、各有意係数の現符号付き値の最良復号化可能予測値で更新される。符号化の進行に伴って出力マップの係数を精密化するプロセスは、基本的に、精密化されていく係数値で出力マップを漸次に再構築することである。
【００３４】
出力マップには、係数の真値の最良予測値が常に入っている。ドミナント・リストに入っている係数を処理している途中で、係数Xが有意であると分かると、出力マップに入っているその再構築の大きさは、現しきい値と現しきい値を２倍したものの中間に置かれ、正しい符号が付けられる。この結果、再構築された係数値は、隣接するデシジョン・レベル間の中間の量子化ビン（範囲）の中央に置かれて、復号化値の誤差を最小にする。従って、Xが正のときは、現しきい値の1/2（1/2 T）に等しい正の再構築オフセットがユニット1016によって現しきい値に加えられ、3/2 Tの再構築値が出力マップに作られる。Xの値が負のときは、同じようなプロセスによって、ユニット1010は-3/2 Tの再構築値を出力マップに作る。この再構築オフセット手法によると、復号化プロセスが容易化するので、例えば、デコーダがデータ容量まで達したときのように、いつでも復号化プロセスを中止することができる。復号化プロセスが中止されると、出力マップは、復号化情報で達成できる、サブバンド分解の最良再構築値を収めている。
【００３５】
コンパレータ1008が負の有意係数を示したときは、シンボル"3"がユニット1012によって生成され、算術エントロピー・コーダに入力される。ユニット1014は算術エントロピー・コーダに関連するヒストグラム（histogram）をインクリメントして、負の有意シンボル"3"が生成されたことを示す。そのあと、ユニット1025は現符号化係数の座標をオリジナル・ドミナント・リストから取り除き、その座標を有意係数の座標の従属リストに付け加える。ユニット1026はドミナント・コピーのメモリに入っている係数をゼロにセットし、将来のドミナント・パスで、この係数が非有意とみなされるようにする。このオペレーションの意味については、下述する。
【００３６】
有意な値がツリーの中間またはリーフ・ノードで見つかったとき、それが有意であるかどうかがエンコーダによって判別され、デコーダによって推論される。最大の圧縮を達成するには、この有意な値は、その祖先が、より小さなしきい値で以後の評価を行うとき、ゼロツリーの一部になることを妨げてはならない。この結果には、追加メモリと計算が必要である。サブバンド分解のコピーは２つ作る必要がある。オリジナル・コピーは未変更のまま維持されるが、ドミナント・コピーは、以前のより大きなしきい値で有意であると判断されたすべての値がゼロにセットされている。従って、ドミナント・コピーは、新たな有意係数、つまり、以前の評価からまだ有意であると分かっていない係数の重要度マップを符号化するために使用される。ある係数が有意であると判断されると、その係数は、その値を、上述したようにゼロにセットすることにより、以後のより小さいしきい値で考慮の対象から除かれる。これにより、その係数は、他の場合にはゼロツリーとなるツリーを無効にすることが禁止される。サブバンド分解の追加コピーが必要になるほかに、ルートマップとリーフマップは、各新しいしきい値で処理を行う前に再計算しなければならない。
【００３７】
Ｘが正の値をもつと分かったときは、コンパレータ1008からの左のブランチ経路でも同じようなオペレーションが行われる。そのような場合には、ユニット1016は正の再構築値3/2 Tを出力マップに挿入し、ユニット1018は正の有意係数であることを示すシンボル"2"を生成し、このシンボルをエントロピー・コーダへ渡す。ユニット1020は"2"シンボルのエントロピー・コーダ・ヒストグラムをインクリメントし、ユニット1025と1026は上述したように動作する。データ圧縮のための算術エントロピー・コーダのオペレーションはWitten他著「データ圧縮の算術符号化」（"Arithmetic Coding for Data Compression"）（Communications of the ACM, Volime 30, No. 6, June 1987）およびLaydon, Jr. 他著「算術符号化の紹介」（"Introduction to Arithmetic Coding"）（IBM,J. Res. Develop., Vol. 28, No. 2, March 1984）に説明されている。算術エンコーダのヒストグラムは、モデリング・ユニット（modelling unit）と呼ばれるものからなっている。ヒストグラム内のカウントは、実際のシンボル・カウントと一致している必要がなく、確率分布の現在の推測値を作るために算術コードによって使用されるだけである。このモデリング手法も、上記のWitten他著「データ圧縮の算術符号化」に説明されている。
【００３８】
サブバンド分解のドミナント・コピーの係数値は、第３図に示す形式で512×512メモリ・アレイにストアされる。あるしきい値が与えられているときの重要度マップの符号化は、その座標がドミナント・リストに置かれている係数の場合には、第10図に示すプロセスによって行われる。これは、実際に符号化される重要度マップであるが、重要度マップ全体が一度に作られることはない。重要度マップに入っている現エントリの三値（ternary value）は、コンパレータ1006と1008の出力の組合せによって定義される。これらのコンパレータは、３つの出力状態をもつ３レベル量子化装置を構成している。２つの状態は、コンパレータ1006の出力が"YES"で、現しきい値で有意係数であることを示しているとき、それに応答するコンパレータ1006の正と負の出力と関連づけられている。第３の状態は、コンパレータ1006の出力が"NO"で、現しきい値でのサブバンド分解のドミナント・コピーに入っている係数が非有意であることを示していることに関連づけられている。非有意データに対応する重要度マップのエントリは、下述するように、ある与えられた係数が現しきい値より小か、等しいことをコンパレータ1006が示したとき作られたゼロツリー構造を使用して、圧縮手法によって符号化される。
【００３９】
ある与えられたしきい値の重要度マップが符号化されたあと、従属リストは、現しきい値で、あるいは以前のいずれかのしきい値で有意であると判断されたすべての係数の座標を収めている。この時点で、しきい値は小さくされ、サブバンド分解のオリジナル・コピーに入っている値と出力マップ値との差である誤差は、新しいしきい値で再評価される。さらに、再評価時に係数を処理する順序、つまり、更新された新しい従属リストは、前の従属リストに置き換わる。新しい順序は、出力マップ（これはデコーダによっても作成される）に入っている情報だけに基づいて行われ、デコーダがその大きさが大きいと判断した係数を、デコーダが小さいと判断した係数の前に置く。このプロセスは第11図に示されているが、これについては下述する。
【００４０】
ビットストリーム中の情報は、最も重要なものから最も重要でないものへ、重要度順に漸次に符号化され、復号化されることを目的とし、開示したシステムを漸次伝送システムで使用することによって、最も重要な情報が最初に符号化または復号化される。重要度の正確な定義をここで説明する。重要度の順序は、初期状態では、オリジナル・ドミナント・リストの走査順序によって決まる。振幅情報は、周波数情報よりも重要であると扱われ、等しい振幅の間では、低周波数情報が優先し、その他の場合は、大きい振幅が優先する。オリジナル・ドミナント・リスト（その形式は、第３図に示すような規則によって設定される）はエンコーダとデコーダに知らされており、重要度の予め定められた順序はこのリストから判断される。順序のデシジョンは、デコーダで再生可能な情報だけに基づいて行わなければならない。重要度の順序を判断するために係数の相対的大きさを議論するとき、その大きさは、その情報がデコーダで使用できるので、出力マップに入っている大きさであるものとみなされる。重要度マップ・エントリや有意係数の精密化を含めて、大きいしきい値で識別された情報は必ず小さいしきい値で識別された情報の前に、ビットストリームの中で符号化される。コンパレータ1006と1008による評価の前に、ドミナント・リスト上の係数に対応する出力マップ・エントリは、値がゼロになっているので、すべての係数は、大きさが等しくゼロであるものとみなされる。大きさが等しい係数の場合は、その重要度の相対的順序は、オリジナル・ドミナント・リストから判断されるので、低周波数の粗解像度係数の座標は、高周波数の精細解像度係数の前に置かれる。ある係数が有意であると判断され、重要度マップ値（正か負）が符号化されるとき、その係数の座標は従属リストの最後に移されるので、将来の精密化を行うとき、現しきい値で有意であると、あとで判断される係数を含めて、まだ有意であると判断されていない係数よりも重要であるとみなされる。この移動は符号化のあとで行われるので、デコーダで使用できる情報だけに基づいて行われる。従属リスト上の係数が精密化されるとき、有意係数の相対的大きさのデシジョンは出力マップ値に基づいて行うことができる。従って、同じしきい値で有意であると最初に判断された２つの係数は、オリジナル・ドミナント・リストに最初から入っていて、あとで見つかった係数がオリジナル・ドミナント・リストに最初から入っていて、先に見つかった係数よりも大きな出力マップ値をもっていれば、その相対順序が変更される可能性がある。
【００４１】
上記のように振幅と周波数で情報の優先順序を決定するので、デコーダのビット・レートは、エンコーダのビット・レートから独立させることができ、デコーダはビットストリーム内の任意の個所で入力ストリームの復号化を中止して、復号化の中止時に存在していたビットストリーム打切り量に見合った品質の信号を再構築することができる。ビットストリームの復号化を早く中止すると、ビットストリーム情報の復号化が少なくなり、データ・エラーが増加し、再構築されたデータが「粗く」なるが、データ検討と利用プロセスの性質によっては、それでも許容し得る場合もあれば、望ましい場合もある。逆に、ビットストリームの符号化を遅く中止すると、復号化データが増加し、エラーが少なくなり、再構築されたデータが「精細化」される。この目的のために、より重要であると判断された係数の座標は、従属リストのはじまり側に置かれ、より重要でないと判断された係数の座標は、従属リストの終わり側に置かれる。具体例で説明すると、最初の符号化パスのあと作られた従属リスト・エントリは、最初の（最大の）しきい値を越えている係数を指定している。これらの係数は最も重要な係数である。より小さいしきい値で、次の符号化パスのあとで作られた従属リスト・エントリは重要度が低く、前の符号化パスから入力された最後のエントリに続いて、リストの終わりから始まって追加される。ビットストリーム全体における唯一のオーバヘッドは、ビットストリームの短いヘッダ部分にある。
【００４２】
ビットストリーム情報を上述したように重要度順に配列することは、種々のアプリケーションで役立つ。情報を重要度順に送信すると、段階的に増加する解像度と精度を表示するイメージ表現が得られるので、イメージ情報の漸次的送信が容易化する。本システムは「ブラウズ（走査検索）」アプリケーションで使用でき、そこでは、ストアされたファイルからのソース情報が粗レベルで十分に認識可能になったとき、いつでも復号化を中止することができる。非常に低いビット・レート圧縮が容易化され、正確なデコーダ・ビット・レート制御も容易化されるので、所望のビット・レートと歪みとの間のトレードオフを適応的に達成することができる。ビットストリーム・ビットを重要度順に配列すると、当然に、階層化保護方式の実現を目的とした優先順位付けも可能になる。
【００４３】
第10図のコンパレータ1006に戻り、サブバンド分解のドミナント・コピーの現係数の絶対値が現しきい値よりも小か、等しければ、別の符号化経路をたどっていく。その結果は、非有意係数が「隔離されたゼロ」であるか、「ゼロツリー・ルート」であるか、予測可能な非有意ゼロであるかを示している。前述したように、ゼロツリー・ルートであるためには、係数は値が非有意である必要があり、その子孫のすべては非有意でなければならず、係数はそれ自身がゼロツリー・ルートの子孫であってはならない。現係数は、それが非有意であると判断されたが、その子孫の１つが値が有意であると判断されると、「隔離されたゼロ」と特徴づけられる。その他の場合は、係数の非有意は予測可能である。この判断は、リーフマップとルートマップを使用すると容易化される。このマップは、現係数がゼロツリー構造のルートであるか、リーフであるかを高速に判断するためにコーダによって使用されるコンパニオン・イメージ・マップの特殊タイプである。ゼロツリー構造は、単一の専用シンボルでコンパクトに表現された連続する個々の非有意係数で、相互に関係があるものをグループにしたものである。ループマップとリーフマップがどのように生成されるかを示したのが第12図であり、これについては後述する。
【００４４】
ドミナント・リストを通る各パスの開始時に、ルートマップとリーフマップはサブバンド分解のドミナント・コピーから同時に再計算され、メモリにストアされる。ルートマップとリーフマップには、各係数に対するエントリが作られている。ある与えられた係数に対するルートマップ値は最小しきい値であり、それに対するその係数とその子孫のすべては非有意である。ある与えられた係数に対するリーフマップ値は最小しきい値であり、それに対するその係数はゼロツリー内のリーフ、つまり、ゼロツリー・ルートの子孫である。
【００４５】
コンパレータ1006の右側（"No"）出力（現しきい値に対して非有意値が存在することを示す）から符号化経路を続けて、ユニット1030は現係数のリーフマップ値Ｌを取得する。このリーフマップ値は、係数が予測可能に非有意であるとされる最小しきい値を表している。コンパレータ1032はリーフマップ値を現しきい値と比較する。負（"No"）の結果は、つまり、リーフマップ値が現しきい値よりも小か、等しいときは、現係数の先祖がゼロツリー・ルートであることを示している。この場合は、シンボルは生成されず、ビット予算は未変更のままであるが、これは、係数の非有意が以前に符号化されたゼロツリー・ルート・シンボルから完全に予測可能であるためである。あるゼロツリー・ルートが符号化されると、その子孫のすべては暗黙に符号化されるので、追加コストは発生しない。連続近似量子化装置では、ゼロツリー・ルートというときは、オリジナル・サブバンド分解でルートから下って行くすべての係数が非有意であるか、あるいはすでに有意であると分かっていること、つまり、より大きいしきい値で以前の評価パスのとき有意であると判断されたことを意味する。
【００４６】
コンパレータ1032からの正（"Yes"）の結果は、リーフマップ値が現しきい値より大きいことを示し、その場合は、対応するルートマップ値がユニット1034によって取得される。コンパレータ1036は、関連ルートマップ値Ｒを現しきい値と比較することにより、現係数がゼロツリー・ルートであるかどうかを判断する。ルートマップ値が現しきい値より小か、等しければ、ゼロツリー・ルートであると判断され、その場合は、ユニット1038は、算術エントロピー・コーダによって符号化される"1"ゼロツリー・ルート・シンボルを生成し、算術コーダ・ヒストグラムがゼロツリー・ルート・シンボルについてユニット1040によってインクリメントされる。ルートマップ値Ｒが現しきい値より大であると判断されると、係数が隔離されたゼロを表す"0"シンボルで符号化されることを除けば、同じようなオペレーションがユニット1042と1044によって実行される。
【００４７】
符号化が進んで、すべてのサブバンドのオリジナル・リストを通して1/4を過ぎると、残りの係数は第１レベルの高周波数サブバンド（LH1,HL1およびHH1）にあり、そこでは、子孫が存在しないのでゼロツリーは現れない。この時点で、関連算術コーダのモデリング・ユニットは、シンボル０，２および３（ゼロツリー・シンボル"1"は削除されている）だけを含む新しいアルファベットで再初期化され、符号化が続けられる。
【００４８】
ある係数が隔離されたゼロ・シンボルまたはゼロツリー・ルート・シンボルで符号化されると、関連の座標は、ユニット1045によって旧（オリジナル）ドミナント・リストから取り除かれ、新ドミナント・リストに追加される。ある係数が上述した経路の１つを経由して有意または非有意として符号化されると、ビット予算は、そのシンボル入力に応答して算術コーダからのビット出力数だけ現ビット予算をデクリメントすることにより、ユニット1046によって更新される。ユニット1048はドミナント・リストの指標をインクリメントし、そのあとで、コンパレータ1050はインクリメントされた指標を調べて、リストの終わりまで来たかどうかを判断する。そうでなく、ビット予算がコンパレータ1052が示したようにまだ越えていなければ、符号化プロセスは、ユニット1002,1004その他によって次の係数について繰り返される。符号化プロセス全体は、ビット予算を越えたことをコンパレータ1052が示したとき終了する。
【００４９】
ユニット1050は、「終端（terminal）」サブバンド、つまり、その係数に子がいないので、ゼロツリー・ルートになることができないサブバンドを認識する手段を備えている。そのような場合は、エントロピー・コーダ・ヒストグラムは、ゼロツリー・ルートになる確率がゼロであること、つまり、"1"シンボルを符号化できないことを示す新しいアルファベットにリセットされる。また、リーフマップ値Ｌが現しきい値Ｔを越えたことをコンパレータ1032が示すと（"YES"出力）、符号化は直接にユニット1042へ進み、ユニット1034,1036,1038,1040はこの場合には関係がないので、バイパスされる。
【００５０】
ドミナント・リスト上の最後の指標に関連する係数が符号化されたことをコンパレータ1050が示したときは、前のしきい値の1/2に等しい新しいしきい値がユニット1054によって生成される。このユニットは第９図ではユニット916になっている。ユニット1056は、新しい、より精細化されたしきい値で従属リストを処理し、有意係数をさらに精密化する。これについては、第11図を参照して後述する。
【００５１】
符号化プロセスのこの時点で、すべての係数が最初の符号化プロセスで個別に評価され、符号化されたあと、オリジナル・ドミナント・リストはすでに消去されており、２つの新リスト、つまり、従属リストと新ドミナント・リストが上述したように作られている。従属リストは、前のより粗いしきい値に対して有意な値をもつと判断された、サブバンド分解のオリジナル・コピーの係数の座標を収めており、ドミナント・リストは、同じく前のより粗いしきい値に対して非有意な値をもつと判断された、サブバンド分解のオリジナル・コピーの係数の座標を収めている。
【００５２】
最初の符号化パスで有意であると判断された従属リストの係数は、第11図のフローチャートに示すように符号化システムによってさらに精密化される。符号化は、ユニット1101からスタートする。このユニット1101は、第11a図を参照して詳しく説明する。簡単に説明すると、ユニット1101は、従属リスト上の現係数の座標と、サブバンド分解のオリジナル・コピーからその係数の振幅（X）と、そして出力マップから対応する係数（Y）とを取り出す。前述したように、出力マップは、最初の符号化パスですべての有意係数について初期ゼロ値を3/2 Tまたは-3/2 Tの値で置き換えることにより、第10図の符号化システムのステップ1010と1016で生成されたものである。第11図において、現しきい値は第10図のしきい値の1/2になっている。ユニット1101はユニット1121,1121a,1127および1127aで実行されるソート機能と関連して従属リスト復元機能も実行するが、これについても、第11図を参照して下述する。
【００５３】
コンパレータ1106は、出力マップ値Ｙがゼロより大であるか、小であるか、つまり、正であるか負であるかを判別する。Ｙが正であれば、ユニット1108は小さい現しきい値を減算することによって、以前に導入された正の再構築オフセットを除去する。同様に、Ｙが負であれば、ユニット1110は小さい現しきい値ＴをＹに加算することによって、以前に導入された負の再構築オフセットを除去して、出力マップ値Ｙ′を得る。旧再構築オフセットが除去されるのは、小さい現しきい値に基づく、新しい小さなオフセットがあとで加えられるかである。ユニット1112は、係数値Ｘとユニット1110からの、つまり、再構築オフセットが除去された対応する出力マップ係数Y′との差の絶対値を計算することにより、残余誤差"e"の絶対値を判断する。ユニット1114は、係数1/2 T、つまり、現しきい値の1/2を出力マップ係数Ｙから差し引くことによって新しい再構築オフセットを出力し、精密化された新しい出力マップ係数Y″が得られる。
【００５４】
コンパレータ1116は、誤差値ｅを現しきい値と比較することにより、別の精度レベルを判断する。誤差ｅの値が現しきい値より小であれば、ユニット1118は、算術エントロピー・コーダによって従属リスト・ビットストリームに符号化される"0"シンボルを生成する。ユニット1120は、このシンボルのヒストグラムを更新し、ユニット1121は現指標のエントリをBOTTOM LISTへ移すことによってソート機能を実行する。ユニット1121aは、ユニット1108の下で正の出力マップ値を処理する場合も、同じように動作する。ユニット1118から得られる"0"シンボルとすぐ下で説明する"1"シンボルは、ドミナント・リスト・ビットストリームを符号化するために第10図で使用されている"0"および"1"シンボルとは異なっている。言い換えれば、ドミナント・リストの場合と従属リストの場合のコーダは、異なるアルファベットを異なるヒストグラムと共に使用している。第11図において、"0"シンボルは、量子化範囲（ビン）の下半分、つまり、ゼロに近い方が使用されることを示し、"1"シンボルは、量子化範囲の上半分が使用されることを示している。量子化範囲は、前のしきい値の上限と下限によって決まる。誤差値ｅが現しきい値より大か、等しいことをコンパレータ1116が示していれば、ユニット1122は現しきい値をY″から差し引いて、出力マップ係数Y″′を得る。"1"シンボルはユニット1124によって生成され、算術エントロピー・コーダによって符号化され、このシンボルのヒストグラムはユニット1126によって更新され、ユニット1127は現エントリを、ポインタTOPINDEXで指示された従属リスト内の位置へ移すことによってソート機能を実行する。そのあと、ユニット1127はTOPINDEXポインタをインクリメントする。ユニット1127aはユニット1127aの下の経路で同じ機能を実行する。
【００５５】
Ｙが正の値を示しているときは、ユニット1108の下の符号化経路で同じようなプロシージャに従って行われる。
【００５６】
ユニット1130は、入力シンボルに応答して算術コーダから出力された出力ビット数を減算することによってビット予算をデクリメントし、ユニット1132は従属リスト上の次の指標を選択する。コンパレータ1134は従属リストがその時点までに完全に走査されていたかどうかを判断する。走査されていないで、コンパレータ1136がビット予算を越えたと判断すれば、符号化は終了する。ビット予算残余が残っていれば、従属リスト上の次の指標と関連する係数について、符号化がユニット1101,1106その他を通して続けられる。そうでなければ、符号化は終了する。
【００５７】
コンパレータ1134が従属リストの終わりまで来たことを示しているときは、上で説明したように従属リストを符号化するとき使用されたものと同じ現しきい値を用いて、ブロック1138に示すように、また第10図を参照して説明したように、新しいドミナント・リストが符号化される。従って、この時点では、オリジナル・ドミナント・リストは粗い最初のしきい値で符号化されたあと消去されているので、新しいドミナント・リストと従属リストが作成されている。これらの２リストは、より精細な第２のしきい値を用いて符号化されたものであり、ビット予算が空になるまで漸次に精細化するしきい値レベルで符号化の対象となり、符号化は終了する。
【００５８】
従属リストの関連する係数が最初の従属リストが作られたあと、漸次に精細化するしきい値で精密化されたとき、出力マップ係数値に関連するリスト・エントリが、リストの先頭の最も重要なものからリストの最後の最も重要でないものまでの、所望の重要度（例えば、大きさ）順に置かれていない場合がある。所望の順序は、第11図のユニット1121,1121a,1127,1127aがソート機能を実行し、ユニット1101が第11a図に示すフローチャートに従って従属リスト復元機能を実行することにより得られる。第11図と第11a図のユニットは従属リストの係数を符号化し、符号化された係数を送信し、従属リストを重要度順にソートしてから、次のしきい値での精密化がその順序で行われる。より具体的には、これらのユニットは従属リストを、大きさ順に配列された優先順サブリストに分割する。各サブリストは、その出力マップ値が精密化前に等しい大きさをもつ、連続するエントリの集まりである。デコーダでも、同じ従属リストソートと復元機能が実行される。
【００５９】
第11a図のフローチャートに示すように、処理は、ポインタTOPINDEXが従属リスト上の最初の指標を指すように初期化することから開始される。前述したように、従属リスト上の各指標は、特定エントリのリスト内の位置を指定している。各エントリは、係数が生成されて、メモリ内の所定のアドレスにストアされたときの、サブバンド分解の関連エレメントの座標を示している。従って、ある座標が与えられているとき、関連オリジナル・イメージ係数と出力マップ係数の両方のアドレスを定めることができる。ユニット1142はBOTTOM LISTメモリ・アレイを備えており、これは、下述するように、エントリをいつでも受け入れるようにクリアされている。ユニット1144は、係数ＺがYfの絶対値と等しくなるように初期化する。Yfは、従属リスト上の最初の指標におけるエントリに関連する出力マップ係数値の大きさを表している。係数Ｚには、以下で説明するように、ある種の他の出力マップ値の、精密化の前の、その大きさを表す値が結果的に割り当てられる。ユニット1146は現係数の指標を取得し、ユニット1148は最初の指標に関連するエントリ・データを使用して対応する出力マップ係数値（Y）の値を取得する。
【００６０】
コンパレータ1150は出力マップの大きさＹの値が変更されると、Ｙの絶対値をＺと比較することによってその変更を検出する。これらの大きさが等しければ、変更は示されず、サブバンド分解のオリジナル・コピーの現係数の振幅（X）をユニット1160で入手し、第11図のユニット1106へ移ることによって処理が続行される。ユニット1121または1121aは、"0"シンボルが検出され、真の入力値が量子化範囲の下半分に置かれていることを示していると、現エントリをBOTTOM LISTメモリへ移す。ユニット1127または1127aは、"1"シンボルが検出され、現入力値が量子化範囲の上半分に置かれていることを示していると、現エントリを、TOPINDEXポインタが指している従属リスト内の位置へ移し、ポインタがインクリメントされる。変更がコンパレータ1150によって示されていないときは、TOPINDEXポインタは、"1"シンボルが検出されるとエントリが移される先の従属リスト内の位置を指している。
【００６１】
出力マップの大きさの変更、従って次のサブリストの先頭は、ＹとＺの値が等しくないとコンパレータ1150が判断したとき示される。そのようなときは、TOPINDEXポインタは、BOTTOM LISTエントリが従属リストにコピーされる先の、従属リスト内の位置を指しており、これはユニット1152に行われることにより、そのサブリストのソート・オペレーションが完了する。ユニット1154は、TOPINDEXポインタが次のサブリストの先頭にある指標を指すように、つまり、最後のBOTTOM LISTエントリに関連する指標のすぐあとに置かれた指標を指すように、ポインタをインクリメントする。ユニット1156はBOTTOM LISTメモリをクリアし、ユニット1158は係数Ｚを、次のサブリストの先頭に置かれた指標に関連する出力マップ値の絶対値に等しくなるようにセットする。現係数の振幅はユニット1160によって取得され、処理はユニット1106および第11図から続行される。
【００６２】
第12図は、第10図の符号化システムで使用されるルートマップとリーフマップを生成するプロセスを示している。初期状態において、ユニット1202は２つのイメージ、つまり、どちらも、符号化されるサブバンド分解イメージと同じ形式になったルートマップとリーフマップ用にメモリを割り振る。ユニット1204は各ルートマップ・エントリを、サブバンド分解のドミナント・コピーに入っている対応するエントリの絶対値で初期化する。ユニット1206は各リーフマップ・エントリを、すべての分解レベルにあるサブバンド・イメージ係数のすべて（LL1とLL2を除く）の中で可能な限り最大の振幅値である、値Ｍで同時に初期化する。これが必要になるのは、特に、子係数が複数の親をもつ場合である（ここで述べている例では、そのようなことはない）。イメージ信号のように多次元信号の場合には、多重解像度表現では、通常各次元における解像度を独立して変更できる。従って、子係数が複数の親係数を異なる次元でもつように変形することが可能である。ユニット1206が行うリーフマップ初期設定は、単一の親係数の場合には不要である。ルートマップ値とリーフマップ値は、同じサブバンド・イメージ係数の比較を含んでいるので、同時に計算することが可能である。
【００６３】
ルートマップ値とリーフマップ値の計算を効率化するために、処理は、ゼロツリーが現れることができる最高周波数から開始される。すなわち、処理は、その係数が最高周波数サブバンドにある係数の親となるサブバンドから開始される。３つの最高周波数サブバンド（LH1,HL1およびHH1）内の係数は子孫をもたず、従って、ゼロツリー・ルートになることができないので、処理は、ユニット1208が示すように、リストを通して1/4に位置する、最高ドミナント・リスト指標から開始される。この指標位置は、サブバンドHH2内の最高索引であり、これは、ユニット1208の左側の小さなサブバンド分解図に示すように、ゼロツリー・ルートが現れることができる最高周波数サブバンドであり、子係数をもつことができる最高指標（親）係数である。符号化は、この指標から低周波数係数へ向かって逆方向に行われる。
【００６４】
先頭の親係数の指標がユニット1210によって取得されたあと、関連の子係数の指標がユニット1212によって取得される。具体的には、高周波数係数から低周波数係数へ向かう、ドミナント・リストの逆方向の走査において座標（x,y）にある各親係数ごとに、４つの子係数は座標（2x,2y）、（2x+1,2y+1）、（2x,2y+1）および（2x+1,2y）に置かれる。この関係は第３図に示されている（親子関係は第１図に示されている）。この例では、サブバンドHH2の座標（255,255）に位置する親係数は、サブバンドHH1における座標（510,510）、（511,511）、（510,510）および（511,510）に位置する子係数と関連づけられている。
【００６５】
ユニット1214は、親座標R（x,y）に置かれたルートマップ値を、現親値およびすべての対応する子のルートマップ値の最大値に等しくなるように更新する。子係数が図示の例のように単一の親をもつ場合は、ユニット1216は、４つの子座標に置かれたリーフマップ値を、ユニット1214で定められているように親ルートマップ値に等しくなるように更新する。つまり、すべての子係数のリーフマップ・エントリは、親係数のR（x,y）ルートマップ・エントリに等しくなるようにされる。しかし、子係数が複数の親をもつときは、そのような子のリーフマップ・エントリＬ（子）は、その子の現リーフマップ・エントリとその親のルートマップ・エントリR（x,y）の最小値に等しくなるようにされる。
【００６６】
この例では、ルートマップの作成は、第２レベル・サブバンドHH2,HL2およびLH2を親として処理することから開始され、そのあと第３レベル・サブバンドHH3,HL3およびLH3を親として処理し、そのあとサブバンドLL3をLH3,HL3およびHH3に対する親として処理する。リーフマップの作成は、第１レベル・サブバンドHL1,LH1およびHH1をレベル２の対応するサブバンドに対する子孫として処理することから開始され、そのあとレベル２サブバンドHL2,LH2およびHH2をレベル３の対応するサブバンドに対する子孫として処理し、そのあとレベル３サブバンドHL3,LH3およびHH3を最低周波数バンドLL3の子孫として処理する。
【００６７】
親サブバンドになることができない、図示の最高周波数サブバンドと、子サブバンドになることができない最低周波数サブバンドを除き、上述したプロシージャは、親サブバンドとしては一回、子サブバンドとしては少なくとも一回、各サブバンドに適用されるが、これは、多次元サブバンドの場合には、子係数が２つ以上の親係数をもつことができるためである。係数は親として評価されてから、子として評価され、ルートマップとリーフマップは、最低周波数サブバンドが親サブバンドとして評価されたあと完成する。
【００６８】
サブバンド分解内のある所定の親座標に対して、リーフマップ値とルートマップ値が定められると、ユニット1218はドミナント・リストの指標を１だけデクリメントし、その結果の新しい指標がコンパレータ1220によって検査される。新しい指標がゼロより大であるか、等しければ、ループマップとリーフマップを生成するプロシージャが新しい親指標について繰り返される。そうでなければ、デクリメントされた指標がゼロより小であると判断されると、リーフマップ／ルートマップ生成プロセスは中止する。具体的には、最低周波数サブバンドが親サブバンドとして完全に評価されると、処理は中止する。
【００６９】
これまでに説明してきた係数評価および符号化システムは、以下に示す関係式で表すことができる。ただし、Ｔは現しきい値、Ｘはサブバンド分解のドミナント・コピーの現係数の絶対値、Ｒは現係数のルートマップ値、Ｌは現係数のリーフマップ値である。サブバンド分解のドミナント・コピーの現係数は次のとおりである。
【００７０】
a)  Ｌ≦Ｔならば、予測可能に非有意である
b)  Ｒ≦Ｔ＜Ｌならば、ゼロツリーのルートである
c)  Ｘ＞Ｔならば、有意である、または
d)  Ｘ≦Ｔ＜Ｒならば、非有意であるが、有意の子孫をもっている、つまり、係数は隔離されたゼロである。
【００７１】
リーフマップの生成が特に利点があるのは、リーフマップがルートマップの生成と同時に簡単に生成でき、メモリ・アクセス回数が少なくなるためにオペレーションを高速化できることである。必要なメモリ・ストレーッジが少なくて済むが、メモリ・アクセス・タイムが増加する、比較的低速のリーフマップの別の使い方を示したのが、第13図のフローチャートである。このフローチャートは第10図のそれと似ているが、第13図では、第10図のユニット1030と1032が削除され、その代わりにユニット1330と1332が使用されている点が異なる。また、第13図では、ユニット1301と1341が追加されている。関係する第12図は、リーフマップ生成ユニット1206と1216が削除されていることを除けば、未変更のままである。
【００７２】
ユニット1330,1332および1341は、「マークマップ（markmap）」という手法で、子係数の予測可能性を示すためのコンパニオン・マップ（companion map）を作るためのものである。マークマップとは、ゼロツリー・ルートの子孫であるすべての係数をマップしたもので、各マップ・エントリには、その係数がゼロツリー・ルートの子孫であるかどうかを示す「マーク」が以前の符号化プロセスで付けられている。ユニット1330は、マークマップがユニット1301によってFALSEに初期化されたあと、処理される係数の「マークマップ」エントリ（MM）を取得する。コンパレータ1332はマークマップ・エントリMMを評価して、それが予測可能に非有意な（"TRUE"）係数であるかどうかを判別する。係数が予測可能に非有意であると判断されると、ユニット1341は、関連の各子係数のマークマップ・エントリをTRUEにセットし、これらの子係数も予測可能に非有意であることを示す。隣接するゼロツリー・ルート・符号化経路がゼロツリー・ルート・シンボルを符号化していれば、同じようなエントリが作られる。言い換えれば、ユニット1341は、ユニット1330が親係数が予測可能に非有意またはゼロツリー・ルートのどちらかであると判断すると、追加の符号化をすることなく、子係数を予測可能に非有意であると指定する。その他の場合は、第13図のシステムのオペレーションは、第10図のシステムの場合と同じである。
【００７３】
第14図は、ゼロツリー圧縮構造を連続近似量子化装置およびエントロピー・コーダと共に含む、上述したデータ圧縮システムを実現するために使用できる装置を示すブロック図である。
【００７４】
ユーザ・インタフェース1402は、システム・オペレータが判断した複数の入力値を受け取る。インタフェース1402は、レジスタのように、それぞれが入力値をストアするための専用メモリ・デバイスを備えている。入力「イメージ・ファイル」はＭ×Ｎイメージ・マップであり、ヘッダがイメージの高さと幅を示している。「レベル数」パラメータは、ピラミッド分解レベルの数を指定するもので、この例では、３になっている。「ターゲット・ビット・レート」パラメータは所望のビット／ペルを指定するもので、例えば、モデム・レート、メモリ・サイズまたは許容歪みの量の関数にすることができる。"maxfreq"パラメータは、ユニット1418における算術エントロピー・コーダのモデリング・ユニットに関連するヒストグラムがダウンデート（downdate）される頻度を定義するものである。Witten他では、これは、すべての可能性をインクリメントし、２で除算し、小数点以下を切り捨てることによって行っている。
【００７５】
インタフェース1402からのユーザ定義パラメータは初期パラメータ・ジェネレータに読み込まれ、ジェネレータはイメージとパラメータ用にメモリを割り振り、コーダ・ユニット1418へ送られるビットストリームのヘッダ内にパラメータを符号化する。ユニット1404は、インタフェース1402から受け取ったデータに基づいて、各パラメータのビットストリーム値を初期化する。入力イメージ・マップはインタフェース1402から平均値エクストラクタ（mean extractor）に渡され、そこで、イメージの平均値が計算され、平均値がイメージから減算され、イメージ平均値が符号化されて別々にコーダ1418へ送られる。平均値は、ビットストリーム・ヘッダにおいて初期パラメータ値に続いているようにしてもよい。ユニット1406からのゼロ平均値信号は、第２図を参照して前述したように、イメージ・サブバンド成分LL、LH、HLおよびLHを作るためにサブバンド・デコンポーザ（subband decomposer）1408に入力される。サブバンド成分は、第10図を参照して説明したように、コーダ1418に渡される。すべてのサブバンド・イメージの中で最大の係数振幅（"M"）は、ユニット1410によって計算され、符号化のためにユニット1418に伝達される。ユニット1418は、第９図，第10図および第11図のフローチャート機能を実装するために、連続近似量子化装置と算術エントロピー・コーダ装置を含む、マイクロプロセッサ・ベースのデバイスにすることが可能である。算術コーダと関連のモデリング・ユニットは結合されて適応エントロピー・コーダを構成し、入力シンボルに応答して圧縮されたビットストリームを作成する。モデリング・ユニットは、確率を表すシンボル出現回数のヒストグラムを含んでおり、これは算術コーダによって使用される。モデリング・ユニットとヒストグラムは、追加のシンボルでビットストリームの終わりを示すこともできるが、このシンボルはイメージ情報の符号化には使用されていない。コーダ1418からの出力ビットストリームは、例えば、モデムまたはテープ／ディスク記憶媒体などの、出力デバイスへ渡される。
【００７６】
第15図は、復号化プロセスの概要を示すフローチャートであり、その詳細は第16図と第17図に示されている。エントロピー・符号化ビットストリームはデコーダ入力ユニット1502によって受信されて、ビットストリーム・ヘッダ・データが復号化される。このヘッダ・データは、変換（ピラミット）レベルの数、イメージの幅と高さ、イメージ平均値、エントロピー・デコーダに関連するヒストグラムの更新頻度、初期しきい値、走査順序、および第14図に関連して説明した他のデータとパラメータを含んでいる。算術符号化イメージ分解ビットストリームはヘッダのあとに続く。
【００７７】
ユニット1504はヘッダに入っているイメージ・サイズ・データに従って、262,144（512×512）サブバンド係数のすべての座標を含んでいるオリジナル・ドミナント・リストを生成する。これらの座標は第３図に示す走査順序で決まる順序（サブバンド処理順序）に、および10個のサブバンドのそれぞれの水平、垂直または「スペース埋込み（space filling）」走査パターンに従って配列され、走査順序とパターンがエンコーダで使用されたものと同じになるようにしている。ユニット1506はヘッダ・データに応答して初期しきいレベルを生成し、ローカルに生成された出力マップのエントリはゼロに初期化される。出力マップは第３図に示す形式になっている。
【００７８】
デコーダ1508は、262,144指標の各々のエントロピー・符号化ビットストリーム・データを初期しきい値で評価する。このオペレーションにより、有意係数座標の従属リストと非有意係数座標の新しいドミナント・リストが作られる。これらのリストについては、それぞれ第17図と第16図を参照して詳しく説明する。出力マップは、初期しきい値で有意であると判断された係数の現推定値で更新される。
【００７９】
コンパレータ1510はビットストリームの終わりまで来たかどうかを、独自のビットストリーム終了シンボルを検出することによって判別する。この例では、ビットストリーム終了シンボルで示されるように、ビットストリーム全体が復号されたあとに、始めてイメージがユニット1518によって逆変換され、ディスプレイ・デバイス1520によって表示されることを想定している。逆変換されるイメージは出力マップから得られる。別の方法として、ビットストリーム・データを漸次に逆変換して表示すれば、イメージ表示を漸次に精細化する解像度で得ることが可能である。これは、復号されたドミナント・リストと従属リストの各シーケンスのあとで、例えば、デコーダでのプログラミングに応答して、逆変換と表示オペレーションで表示イメージを漸次に得ることにより行うことができる。逆変換ユニット1518は、第２図のサブバンド・デコンポーザによって行われる変換の逆のことを行う。
【００８０】
ドミナント・リストがデコーダ1508によって処理されたあと、ビットストリームの終わりまでまだ達していないと、ユニット1512は前のしきい値の1/2に等しい新しいしきい値を作る。これは、（オリジナルまたは現）ドミナント・リスト上の最後の座標が計算されたことをユニット1512が検出すると、行われる。ユニット1514は従属リストで指標が付けられた係数を現（新）しきい値で評価し、復号して、出力マップを評価の結果で更新する。出力マップからのイメージ・データは、コンパレータ1516がビットストリームの終わりを検出すると、逆変換されて表示される。その他の場合は、ユニット1508は、新ドミナント・リスト上の座標に関連する係数を現しきい値で評価する。復号は、ビットストリームの終わりが検出されるまで、漸次に小さくなるしきい値で以上のように続けられる。
【００８１】
第16図のフローチャートは、ドミナント・リストの復号・プロセスの詳細を示している。復号は、ユニット1602がマークマップのすべてのエントリをFALSE値で初期化して、初期状態では、どの係数も予測可能に非有意でないことを示すことから開始される。マークマップは、この例では、262,144個の可能な限りの係数ごとに１つのエントリをもっている。ユニット1604はオリジナル・ドミナント・リスト上の最初の係数の座標を取得し、ユニット1606はその座標のマークマップ・エントリMM（初期値はFALSE）を取得する。コンパレータ1608はマークマップ・エントリMMを評価して、それがTRUEであるため予測可能に非有意であるか、FALSEであるためシンボルを復号する必要があるかを判断する。初期状態では、最初の復号化パスのとき、MMはFALSEであるので、デコーダ1610は、復号・システムに含まれる算術エントロピー・デコーダからの最初のシンボルを復号する。この時点で、エントロピー・デコーダは、ビットストリームで受け取った入力バイナリ・ビットに応答して出力シンボルを作成する。算術エントロピー・デコーダは、エンコーダで生成されたシンボルに応答してビットストリームを作った算術エントロピー・コーダと同じモデルとヒストグラムを含んでいる。コンパレータ1612は、ビットストリームの終わりが検出されていれば、復号・プロセスを終了させる出力信号を発生する。そうでなければ、コンパレータ1614と1615はシンボルが正であるか、負であるかを判定する。シンボルが正ならば、ユニット1616は、1/2 Tオフセットを現しきい値に加えて、3/2 Tの値を出力マップの対応する係数ロケーションに入れ、そのロケーションから、再構築イメージが表示のために作られる。シンボルが負ならば、ユニット1617は-3/2 Tの値を出力マップの対応する係数ロケーションに入れる。ユニット1618と1619は、シンボルが正または負であるときの該当する方のエントロピー・デコーダ・ヒストグラムをインクリメントし、ユニット1622は（オリジナルまたは現）ドミナント・リストから現座標を除去し、それを有意係数の座標の従属リストに追加する。その方法は、第10図のエンコーダ・ユニット1025の場合と同じである。
【００８２】
現シンボルが正でも、負でもないとコンパレータ1614と1615による評価が示していれば、コンパレータ1624はそのシンボルがゼロツリーのルートを表しているかどうかを判定する。表していれば、ユニット1626はセロツリー・ルート・シンボルのデコーダ・ヒストグラムをインクリメントする。表していなければ、そのシンボルは隔離されたゼロを示していなければならないので、ユニット1628はそれに応じてヒストグラムをインクリメントする。
【００８３】
ゼロツリー・ルートがある与えられた係数に対して復号化されると、その子係数のすべては非有意のマークが付けられる。これは、ユニット1630が現係数の子の対応するマークマップ・エントリをTRUEにセットし、予測可能に非有意な係数であること示すことにより行われる。そのときの現係数のロケーションにあるマークマップ値がTRUEであること、つまり、現係数が予測可能に非有意であることをユニット1608が示しているときも、同じような結果が得られる。
【００８４】
ユニット1632は、旧ドミナント・リストから現エントリを除去し、それを非有意係数の座標の新ドミナント・リストに加える。ユニット1634は（オリジナル）ドミナント・リスト上の指標をインクリメントし、最後のエントリがまだ処理されていないことをコンパレータ1604が示していれば、ユニット1604は次の係数の座標を取得し、復号が上述したように続けられる。ユニット1638は、ドミナント・リスト上の最後のエントリが処理されたことをコンパレータ1636が示していると、前のしきい値の半分に等しい新しいしきい値を生成する。復号は、ユニット1640が示すように従属リストに対して続けられる。これについては第17図を参照して説明する。
【００８５】
第17図において、有意係数の従属リストの復号化はユニット1701から開始される。このユニットは、最初の座標および対応する出力マップ係数（Y）を取得するための手段を備えている。ユニット1701は第11a図のフローチャートに示す装置に似ているが、ユニット1701には、第11a図のユニット1160に対応するユニットがない点が異なる。ユニット1701は、第11図のユニット1127a,1121a,1127および1121と同じ働きをする、ユニット1719,1721,1733および1735によって実行される分類機能に関連して、従属リスト復元機能を実行する。ユニット1701,1719,1721,1733および1735を通して、デコーダはエンコーダで実行されるものと同じ従属リストソートおよび復元オペレーションを実行する。コンパレータ1706は現係数が正であるか、負であるかを判定する。正ならば、ユニット1708と1710は、それぞれ旧再構築オフセットを除去し、新しい再構築オフセットを追加して新しい出力マップ値Y"を得る。ユニット1712は算術エントロピー・デコーダからの関連シンボルを復号し、コンパレータ1714はそのシンボル（正の有意係数を表す）が"1"であるか"0"であるかを判定する。シンボルが"1"ならば、現しきい値Ｔがユニット1716によって出力マップ値Y″に加えられて、新しい出力マップ値Y″′が得られ、ユニット1718はそのシンボルのヒストグラムを更新する。ユニット1719はそのエントリを、TOPINDEXポインタが指している従属リスト内の位置へ移動し、ポインタがインクリメントされる。シンボルが"0"の場合は、そのシンボルのヒストグラムがユニット1720によって更新され、出力マップ値はY″のままになっている。ユニット1721はそのエントリをBOTTOM LISTへ移す。ユニット1722-1735は、出力マップ係数が有意であるが、負であるとコンパレータ1706が示していると動作する。これらのユニットは、ユニット1722,1724および1730が使用するしきい値の符号が異なる点を除けば、機能的に同等のユニット1708-1721がそれぞれ実行する機能と類似した機能を実行する。
【００８６】
出力マップ係数の値Ｙは、前のしきい値の下限と上限によって定義された量子化範囲（つまり、「ビン」）の下限と上限の中間に位置している。出力マップ係数の値Y′はこの範囲の下限に位置している（ゼロに近くなっている）。精密化された現しきい値Ｔは前のしきい値の1/2になっている。現しきい値Ｔは現在の下限と上限の範囲を定義しており、各々は上限と下限の間でＴ幅になっており、Ｙはこれらの範囲の中間の接合点に位置している。精密化された出力マップ係数Y″は現下限範囲の中間点に位置し、精密化された出力マップ係数Y″′は現上限範囲の中間点に位置している。以上により、再構築値Y″とY″′は、それぞれ現在の下限範囲と上限範囲の中間に置かれる。これらの値は、上限と下限からオフセット1/2 Tだけオフセットしており、前のしきい値範囲の中間（ここにＹが置かれている）からオフセット1/2 Tだけオフセットしている。
【００８７】
ユニット1736は従属リスト指標をインクリメントし、コンパレータ1738はそのリスト上の最後のエントリが処理されたかどうかを判断する。処理されていないで、ビットストリームの終わりまで来ていないことをコンパレータ1740が示していれば、インクリメントされた新しい指標にある係数の復号化がユニット1702,1704他によって行われる。従属リストの処理が完了したことをコンパレータ1738が示していれば、新しいドミナント・リストがブロック1745に示すように取得され、現しきい値で復号化される（第16図）。復号化オペレーションは、ビットストリームの終わりまで到達したことをコンパレータ1740が示すまで従属リストとドミナント・リストの間で続けられ、終わりに到達した時点で、復号化は終了する。
【００８８】
第18図は、第15図〜第17図を参照して説明した復号化／圧縮解除（decompression）システムを実現するために使用できるブロック図である。
【００８９】
ユーザ・インタフェースは、システム・オペレータからのターゲット・ビット・レートを表す制御信号とコーダ装置によって作成された圧縮ビットストリームを受け取る。ターゲット・ビット・レート（ビット／ペル）は、ビットストリーム全体が復号化されて最高解像度イメージが得られるように、あるいは解像度の劣るイメージが必要ならば、ビットストリーム全体より少なく復号化されるように選択することができる。ビットストリーム・ヘッダ情報はユニット1804によって復号化されて、分解（ピラミッド）レベルの数、イメージの幅と高さ、算術デコーダのヒストグラムの更新頻度（MAXFREQ）、初期しきいレベル、およびイメージ平均値のパラメータを表す出力信号が得られる。
【００９０】
ヘッダに続くビットストリーム成分は連続近似デコーダ・ユニット1810へ伝達される。このユニットは、データ処理ヒストグラムを含む関連モデリング・ユニット1814からの出力信号と共に作動する算術エントロピー・デコーダ1812を含んでいる。モデリング・ユニット1814はデコーダ・コントローラ1816からの出力信号に応答する。このデコーダ・コントローラは、第15図〜第17図のフローチャートに従って動作するマイクロプロセッサ・ベースのデバイスにすることが可能である。コントローラ1816は、ユニット1822によって作られたドミナント指標のマークマップおよび初期リストに応答して、また、ユニット1820からの信号に応答して、ビットストリーム・復号化の開始時にヒストグラムと算術デコーダ・オペレーションを初期化するように動作する。また、コントローラ1816は（改訂）ドミナント・リスト、従属リスト、マークマップおよび種々のしきい値を、フローチャートを参照して説明したように生成し、これらと共に作動する。
【００９１】
算術デコーダ1812からの出力シンボルとコントローラ1816からの情報はユニット1828によって受け取られて、出力マップが作成され、表示されるイメージは、第17図を参照して説明したように、その出力マップから作成される。ユニット1828によって生成された出力マップの係数はユニット1830によって逆変換される。ユニット1830からの変換された信号は、加算器（adder）1834でイメージ平均値情報と結合されて、再構築イメージ信号が得られる。この信号は、必要に応じてユニット1836により追加処理されてから、デバイス1838によって表示される。プロセッサ1836とデバイス1838は、例えば、テレビジョン受像機と関連づけることが可能である。別の方法として、再構築イメージは処理してから保管または記録することも可能である。逆変換ユニット1830は、エンコーダでサブバンド・デコンポーザ（第２図）が行う変換の逆のことを行う。モデリング・ユニット1814は、エンコーダの対応するモデリング・ユニットと同じ特性を備えており、算術エントロピー・デコーダは、エンコーダで算術エントロピー・コーダが行うオペレーションの逆のことを行う。
【図面の簡単な説明】
【図１】本発明の原理による圧縮システムのオペレーションに関連するマルチレベル・イメージ・サブバンド分解の様子を示す図である。
【図２】イメージ表現信号を複数のサブバンド成分に分解する装置を示す図である。
【図３】種々形態のマルチレベル・サブバンド分解を示す図である。
【図４】種々形態のマルチレベル・サブバンド分解を示す図である。
【図５】種々形態のマルチレベル・サブバンド分解を示す図である。
【図６】種々形態のマルチレベル・サブバンド分解を示す図である。
【図７】種々形態のマルチレベル・サブバンド分解を示す図である。
【図８】種々形態のマルチレベル・サブバンド分解を示す図である。
【図９】本発明による符号化システムのオペレーションを種々の側面から見たフローチャートである。
【図１０】本発明による符号化システムのオペレーションを種々の側面から見たフローチャートである。
【図１１】本発明による符号化システムのオペレーションを種々の側面から見たフローチャートである。
【図１２】本発明による符号化システムのオペレーションを種々の側面から見たフローチャートである。
【図１３】第１０図に示すフローチャートの変形を示す図である。
【図１４】本発明によるシステムを実現するエンコーダを示すブロック図である。
【図１５】本発明による復号システムを種々の側面から見たフローチャートである。
【図１６】本発明による復号システムを種々の側面から見たフローチャートである。
【図１７】本発明による復号システムを種々の側面から見たフローチャートである。
【図１８】本発明によるシステムを実現するデコーダを示すブロック図である。
【図１】
0003993632.tif 000002
【図２】
0003993632.tif 000003
【図３】
0003993632.tif 000004
【図４】
0003993632.tif 000005
【図５】
0003993632.tif 000006
【図６】
0003993632.tif 000007
【図７】
0003993632.tif 000008
【図８】
0003993632.tif 000009
【図９】
0003993632.tif 000010
【図１０】
0003993632.tif 000011
【図１１】
0003993632.tif 000012
【図１１ａ】
0003993632.tif 000013
【図１２】
0003993632.tif 000014
【図１３】
0003993632.tif 000015
【図１４】
0003993632.tif 000016
【図１５】
0003993632.tif 000017
【図１６】
0003993632.tif 000018
【図１７】
0003993632.tif 000019
【図１８】
0003993632.tif 000020