JPH07336237A - データ情報を圧縮するためのシステムおよび方法 - Google Patents

データ情報を圧縮するためのシステムおよび方法

Info

Publication number
JPH07336237A
JPH07336237A JP7135193A JP13519395A JPH07336237A JP H07336237 A JPH07336237 A JP H07336237A JP 7135193 A JP7135193 A JP 7135193A JP 13519395 A JP13519395 A JP 13519395A JP H07336237 A JPH07336237 A JP H07336237A
Authority
JP
Japan
Prior art keywords
data
phrase
dictionary
tree
context
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7135193A
Other languages
English (en)
Other versions
JP3083730B2 (ja
Inventor
Peter A Franaszek
ピーター・エイ・フラナシェク
Joy A Thomas
ジョイ・アロイシウス・トマス
Pantelis G Tsoucas
パンテリス・ジー・ツォウカス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07336237A publication Critical patent/JPH07336237A/ja
Application granted granted Critical
Publication of JP3083730B2 publication Critical patent/JP3083730B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【目的】 情報ストリーム内の次の句の符号化または予
測のための辞書の選択にコンテキスト情報を使用するこ
とを特徴とする、入力ストリーム内で受け取られるデー
タ情報を圧縮または予測するためのシステムおよび方
法。 【構成】 本発明は、辞書ベース・レンペル−ジブ圧縮
処理と共にコンテキスト情報を利用する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全般的にはデータ処理
システムに関し、具体的には、データを圧縮するための
システムおよび方法に関する。
【0002】
【従来の技術】現代は情報時代であり、コンピュータ
は、この情報を収集し、記憶し、操作するという作業負
荷をますます吸収しつつある。さまざまな形態の情報が
かなり大量のデータ記憶域を必要とするが、記憶域は、
高価であったり不足していることがしばしばある資源な
ので、問題が生じる。さらに、大量の情報またはデータ
の伝送には、現在のデータ処理システムで使用可能な高
いデータ転送速度をもってしても、かなりの時間が必要
となることがしばしばである。
【0003】その結果、データ圧縮が、メモリを節約
し、データ転送処理を加速するための貴重なツールにな
った。しかし、データ圧縮技法は、グラフィック画像や
ディジタル化音声に関する応用分野を除いて、無損失
(lossless、誤りやデータの消失が発生しないこと)で
あることが必要である。無損失圧縮は、圧縮伸長サイク
ルの後に入力データ・ストリームの正確な複製を生成す
ることが保証された技法からなる。これは、データ・ベ
ースのレコードやスプレッドシート、ワード・プロセッ
サのファイルを記憶する時にしばしば使用されるタイプ
の圧縮である。これらの応用分野では、1ビットがなく
なるだけでも重大問題になる。
【0004】一般に、データ圧縮は、記号のストリーム
をとるステップと、これらを符号に変換するステップか
らなる。圧縮が効率的である場合、結果のコードのスト
リームは、元の記号ストリームより短くなる。特定の記
号または記号の集合に対してどのコードを出力するかの
決定は、モデルに基づいて行われる。モデルとは、入力
記号を処理し、どのコードを出力するかを決定するのに
使用されるデータおよび規則の集まりである。プログラ
ムは、各記号の確率に基づいて適切なコードを作るため
に、モデルを使用して記号の確率を正確に定義する。
【0005】データ圧縮は、冗長性に関するものなの
で、情報理論(情報理論とは、メッセージを記憶したり
通信するためのさまざまな方法を含む、情報に関するさ
まざまな問題に関係する、数学の1分野である)の分野
に属する。メッセージ内の冗長な情報は、符号化に余分
なビットを必要とし、この余分な情報を取り除くことが
できれば、メッセージのサイズを減らすことができる。
【0006】情報理論では、メッセージ内の符号化され
た情報の量の尺度として、用語「エントロピ」を使用す
る。メッセージのエントロピが高ければ高いほど、より
多くの情報が含まれる。ある記号のエントロピは、その
確率の対数のマイナスの平均値として定義される。ビッ
ト単位のメッセージの情報内容を判定するために、エン
トロピは、2を底とする対数を使用して、次のように表
現される。
【数1】ビット数=−Log2(確率)
【0007】メッセージ全体のエントロピは、個々の記
号のすべてのエントロピの和である。
【0008】エントロピは、メッセージ内に実際に存在
する情報のビット数を判定する点で、データ圧縮に合っ
ている。たとえば、ある文書に文字"e"が現れる確率が
1/16であり、1文字の情報内容が4ビットの場合、
文字列"eeeee"は、合計20ビットの内容を有する。標
準的な8ビットASCII文字を使用してこのメッセー
ジを符号化する場合、実際には40ビットが使用され
る。エントロピの20ビットとメッセージの符号化に使
用される40ビットの間の差に、データ圧縮の可能性が
ある。
【0009】データ圧縮を自動車にたとえるならば、コ
ード化は車輪になるが、モデル化はエンジンになる。よ
い確率を供給するモデルがなければ、コーダーの効率と
は無関係に、データが圧縮されなくなる。
【0010】無損失データ圧縮は、通常、2つの異なる
タイプのモデル化すなわち、統計的モデル化または辞書
ベース・モデル化のいずれかを使用して実施される。統
計的モデル化では、1時に1つの記号を読み取り、その
文字の出現の確率を使用して符号化を行う。統計的モデ
ル化では、元の記号より少ないビット数を使用するビッ
ト列に記号を符号化することによって圧縮を達成する。
圧縮の質は、プログラムが展開するモデルの良否に応じ
て変化する。このモデルは、記号の確率を正しく予測で
きるものでなければならない。この確率が均一な分布か
ら離れていればいるほど、より多くの圧縮を達成でき
る。
【0011】辞書ベース・モデル化では、単一のコード
を使用して記号の列を置換する。辞書ベース・モデル化
では、コード化問題の重要性が下がり、モデルが最も重
要になる。辞書ベース圧縮処理では、データの圧縮に完
全に異なる方法が使用される。この系列の処理では、単
一の記号を可変長ビット列として符号化することはせ
ず、記号の可変長の列を単一のポインタとして符号化す
る。このポインタは、句辞書へのインデックスを形成す
る。ポインタが、それによって置換される句よりも短い
場合、圧縮が発生する。多くの面で、辞書ベース圧縮の
方が、人間には理解しやすい。日常生活の中で、人は、
電話番号、デューイ10進分類番号および郵便番号を使
用して、より長いテキスト列を符号化している。これ
は、基本的に辞書ベース符号化で行われることである。
【0012】一般に、辞書ベース圧縮では、句がポイン
タに置換される。ポインタのビット数が句のビット数よ
り少ない場合、圧縮が発生する。しかし、辞書を作成
し、維持する方法はさまざまである。
【0013】静的辞書は、圧縮が発生する前に作成さ
れ、データを圧縮している間には変化しない。たとえ
ば、ある州のすべての自動車登録を含むデータ・ベース
の場合、"Ford"、"Jones"および"1994"などの単語に重
点を置いた数千項目だけの静的辞書を使用することがで
きる。この辞書は、一旦コンパイルした後に、必要に応
じてエンコーダとデコーダのどちらからでも使用され
る。
【0014】静的辞書には、長所と短所がある。それで
も、静的辞書を使用する辞書ベース圧縮方式は、ほとん
どは特定の場合に限定され、実施態様依存であり、汎用
ではない。
【0015】周知の辞書ベース処理のほとんどは、適応
式である。適応方式では、圧縮を開始する時に完全に定
義された辞書を有するのではなく、辞書がない状態また
は省略時基礎辞書がある状態のいずれかからスタートす
る。圧縮が進むにつれて、新しい句が追加され、これが
後程符号化されたトークンとして使用される。
【0016】データ圧縮全般のこれ以上の議論について
は、参照によって本明細書に組み込まれる、マーク・ネ
ルソン(Mark Nelson)著、"The Data Compression Boo
k",(c) 1992 by M&T Publishing, Inc.を参照された
い。
【0017】上で述べたように、シーケンスの過去の記
号のヒストリは、そのシーケンスの将来の挙動に関する
貴重な情報を提供することがしばしばである。データ圧
縮またはデータ予測にこの情報を使用するために、さま
ざまな汎用技法が考案されてきた。たとえば、参照によ
って本明細書に組み込まれる、ジブ(J. Ziv)およびレ
ンペル(A. Lempel)著、"Compression of Individual
Sequences by Variable Rate Coding", IEEE Trans. In
form. Theory, IT-24: 530-536, 1978に記載のレンペル
−ジブ(「LZ」)圧縮処理では、過去の記号を使用し
て、句の辞書を作成し、この辞書を使用して列を圧縮す
る。レンペルおよびジブが示したように、この処理は、
圧縮率が、すべての静的エルゴード(すべてのシーケン
スまたはかなり大きいサンプルが全体を等しく表す処理
のまたはそれに関する)・シーケンスに関するエントロ
ピに収束するという点で、例外なく最適である。したが
って、任意の長さのシーケンスに対して、このような圧
縮は、シーケンスの分布が事前にわかっている場合と同
様に良好に動作する。
【0018】レンペル−ジブ圧縮法は、単純であり実施
が簡単なので、非常に流行した(実際、「レンペル−ジ
ブ」は、辞書ベースの汎用コード化方式のすべてを表す
のに使用されることがしばしばであり、その結果、本明
細書に記載の標準的な方法は、この大きな分類の1つに
すぎない)。この方法では、データ圧縮に関するエント
ロピ限界が漸近的に達成される。しかし、収束の速度が
遅くなる可能性があり、短いシーケンスについては改善
の余地がある。具体的に言うと、各句の終りで、処理が
句木の根に戻り、その結果、コンテキスト情報が失われ
る。この問題に対するアプローチの1つが、プロトニッ
ク(Plotnik)、ワインバーガー(Weinberger)および
ジブ(Ziv)によって、有限状態供給源に関して提案さ
れた。これは、参照によって本明細書に組み込まれる、
プロトニック(E. Plotnik)、ワインバーガー(M.J. W
einberger)およびジブ(J. Ziv)著、"Upper Bounds o
n the Probability of Sequences Emitted by Finite-S
tate Sources and on the Redundancy of the Lempel-Z
iv Algorithm", IEEE Trans. Inform. Theory, IT-38
(1): 66-72, Jan. 1992に記載されている。彼らの着想
は、供給源の有限状態モデルの供給源状態(または見積
状態)のそれぞれについて、別々のLZ様木を維持する
というものである。プロトニック、ワインバーガーおよ
びジブは、この手順が漸近的に最適であることを示し
た。
【0019】しかし、プロトニック、ワインバーガーお
よびジブは、圧縮のために使用する木の組を見つけるた
めの手順を提示しなかった。彼らは、供給源の状態機械
記述が、エンコーダとデコーダの両方から使用可能であ
り、その機械の状態がこのどちらからもわかると仮定し
た。しかし、一般に、供給源の状態機械記述は未知であ
る。さらに、供給源の状態記述がわかったとしても、状
態のそれぞれに別々の辞書を使用すると、状態の数が非
常に多い場合には一般的な辞書圧縮法式より性能が低下
する可能性がある。
【0020】したがって、当技術分野では、収束速度の
早い、データ処理システム内で実施される改良されたデ
ータ圧縮技法が必要である。さらに、当技術分野では、
短いシーケンスに対してより効率的なデータ圧縮技法が
必要である。また、当技術分野では、データの圧縮を達
成する際にコンテキスト情報を使用する改良されたデー
タ圧縮技法が必要である。
【0021】
【発明が解決しようとする課題】したがって、本発明の
目的は、コンテキスト情報を考慮に入れた、情報を圧縮
するための改良されたシステムおよび方法を提供するこ
とである。
【0022】
【課題を解決するための手段】上の目標を達成する際
に、コンテキスト情報が、データ処理システム内の辞書
ベース圧縮処理と共に実施される。データの入力列内の
次の句を符号化する前に、本発明は、動的プログラミン
グを介して、次の句の符号化に利用するための、統計的
に最良の辞書の組を導出する。この辞書の組の選択は、
その処理内での各辞書の過去の利用に応じて変化する。
したがって、辞書の選択は、圧縮に対する辞書の性能の
それぞれに直接に関係し、エンコーダとデコーダの両方
から使用可能な供給源の状態機械記述を使用する圧縮技
法で必要なシーケンスの何らかの推定されたモデルには
関連しない。
【0023】この選択された辞書の組は、データ処理シ
ステムによって、データの次の句を符号化するために実
施される。句のコンテキストを使用して、符号化処理の
ために選択された組に含まれる特定の辞書を選択し、こ
の符号化処理で、次の句に対応する辞書内の句を指すポ
インタを計算する。
【0024】本発明のデコーダ部分は、データ処理シス
テム内で実施することも可能であるが、エンコーダが展
開した辞書と同一の辞書を作成し、維持する。これによ
って、デコーダが、元の句を再生するために、ポインタ
を使用してそれ自体の辞書に含まれる適切な対応する句
を指すことができるようになる。
【0025】さらに、各句の符号化の後に、符号化され
た句を利用して、本発明のシステムおよび処理による後
続の使用のために辞書を拡張(作成)する。
【0026】代替実施例では、本発明の変形によってコ
ンテキスト情報を利用して、情報の入力ストリーム内の
次の記号を予測する。
【0027】本明細書に記載の方法、技法およびデータ
構造は、プログラム記憶装置(たとえばコンピュータ・
テープ、磁気ディスクまたは光ディスク記憶装置もしく
は他の記憶手段)から本明細書の記載に従って構成され
た1台または複数のディジタル・コンピュータのメモリ
にプログラム文の1つまたは複数のシーケンスをロード
して、適宜コンピュータにプログラム・シーケンスを実
行させることによって実施できる。特定のプログラム・
シーケンスの設計および開発は、本開示の利益を得る通
常の技術(当然、実施のために選択されたコンピュー
タ、オペレーティング・システムなどの熟知を含む)を
有する者にとって、日常業務の問題である。
【0028】ここまでで、以下の本発明の詳細な説明を
よりよく理解できるようにするために、本発明の特徴お
よび技術的長所の概観をおおまかに示した。本発明の追
加の特徴および長所を、以下で説明するが、これは本発
明の請求の対象を形成する。当業者であれば、開示され
た概念および具体的な実施例が、本発明と同一の目的を
実行するための他の構造の修正または設計の基礎として
容易に利用できることを理解できるはずである。また、
当業者であれば、そのような同等の構造が、請求の範囲
に記載された本発明の趣旨および範囲から逸脱しないこ
とを諒解できるはずである。
【0029】
【実施例】
一般原理 データ処理システム内で実施されたデータ圧縮のための
本発明では、木の選択と維持の問題に重点を置いて、複
数の木または辞書に基づく手法を検討する。使用する辞
書に、別々の木または、単一の木の部分木(こちらの方
が有利な場合がある)を含めることができる。木または
部分木には、可能なdヒストリ(d≦D)が関連し、こ
こで、ある句のdコンテキストまたはdヒストリhと
は、その直前のdビット(または、一般的にはd個の記
号)の集合であり、Dは、検討される最大のコンテキス
トである。所与の時刻に使用される木または部分木は、
上で述べた割振り関数によって判定され、この割振り関
数は、回帰木の最適枝刈りに関連する技法の動的プログ
ラミングを介して最適化される(参照によって本明細書
に組み込まれる、ブライマン(L. Breiman)、フリード
マン(J.H. Friedman)、オルセン(R.A. Olshen)およ
びストーン(C.J. Stone)著、"Classification and Re
gression Trees", Wadsworth, Belmont, California, 1
984を参照されたい)。
【0030】この手法を誘導するために、可能なdコン
テキストのそれぞれについて1つの、2D+1句の木の使
用を検討する(この議論の残りは、2進シーケンスに関
するものであるが、当業者であれば、他の記号のシーケ
ンスに合わせて必要な修正を行えるはずである)。列の
長さによっては、別々の辞書のそれぞれが、よい圧縮を
提供するには小さくなりすぎる可能性がある。この場
合、別のコンテキストからの句が十分に類似している場
合には、組み合わされたコンテキストに対応するより大
きな辞書を使用することができる。使用される組み合わ
されたコンテキストの集合(コンテキスト空間の1区
画)は、下でさらに説明する上述の割振り関数によって
決定され、これは、期待される圧縮の見積りを介して最
適化される。
【0031】本発明のもう1つの応用分野は、予測の分
野であり、この場合、コンテキスト割振り関数を最適化
して、たとえば、予測機能の実際の性能に関連する尺度
を最小化することができる。
【0032】複数の木とコンテキスト依存性 標準的なレンペル−ジブ圧縮処理とその一般化の説明を
始める前に、いくつかの表記を定義する必要がある。2
進シーケンスx1、x2、…を仮定する。これは、単純化
のための仮定である。結果は、有限アルファベットであ
ればどれにでも簡単に一般化できる。
【0033】句またはシーケンスの部分列は、xp、x
i+1、…、xjという形式のシーケンスとして定義でき、
これを
【数2】
【0034】と表記する。長さnのシーケンスの解析
は、コンマによって区切られた、重なり合わない句への
シーケンス
【数3】
【0035】の分割として定義される。シーケンスの個
別の解析は、すべての句が個別であるような解析であ
る。
【0036】また、以下では、
【数4】
【0037】をXバー
【数5】
【0038】をXハットと表記する(Xは、添え字を含
む任意の英字である)。
【0039】標準レンペル−ジブ圧縮処理は、シーケン
スを別個の句に解析することに基づくものである。列が
特定の点まで解析されたと仮定すると、この処理では、
そのシーケンスに沿って、これまでに出会ったことのな
い最短の句を探す。この句は、接頭部として、前に出会
った句のうちの1つを有する必要がある。次に、この句
を符号化するために、前の句とこの句の最後のビットを
指すポインタを用意する。前の句と最後のビットとを使
用して、データ処理システム内で実施されたデコーダ
が、新しい句を再構成することができ、したがって、新
しい句の末尾までのシーケンスを復号することができ
る。
【0040】符号化を開始するために、最初の句は空白
句であると仮定する。たとえば、列011001110
0000は、0、1、10、01、11、00、000
として解析される。この場合、符号化されたシーケンス
は((ポインタ、最終ビット)として表現する)、
(0、0)、(0、1)、(2、0)、(1、1)、
(2、1)、(1、0)、(6、0)によって与えられ
る。ここでは、表現を単純にするために、前の句を指す
ポインタとして10進数を使用した。短い列の場合、こ
の処理は、列を圧縮しないようにみえるが、驚くべきこ
とに、この処理は、どのような静的エルゴード・シーケ
ンスであっても、漸近的にそのエントロピー率まで圧縮
する。
【0041】LZ圧縮処理は、木によって簡単に説明で
きる。Stが、シーケンス内の点tまでに出会った句の
集合であるものとする。集合St内にある句が存在する
ということは、その接頭部のすべてがやはりその集合に
存在することを意味するので、この集合を2進木の節に
よって記述することができる。図1は、従来技術の2進
シーケンスStを木として図示したものである。
【0042】Ttが、通常の方法で定義された時刻tで
の句の集合を記述した2進木を表す、すなわち、各句
が、この木の1節に対応し、木の根からの経路が、その
句の記号のシーケンスになっているものとする。その場
合、レンペル−ジブ処理は、木への句の追加によって説
明することができる。
【0043】シーケンス
【数6】
【0044】に関する木と間連句のレンペル−ジブ(L
Z)拡張は、次のように定義される。η0=φであり、
i=0、…、k−1のそれぞれについて、ηi+1がxt+i
に対応するηiの子である木の節η0、…、ηkの最大経
路をたどる。最大性によって、ηkはTの外部節であ
る。この木は、xt+kに対応するηkの子である節ηk+1
を追加することによって拡張される。この拡張に関連す
る句は、
【数7】
【0045】である。このTの変換を、次式によって表
す。
【数8】
【0046】したがって、レンペル−ジブ木は、空の木
から始まり、シーケンス
【数9】
【0047】を使用する一連のレンペル−ジブ拡張によ
って構築される。
【0048】時刻nまでに出会った句の数は、時刻nで
の木の節の数に等しい。cnが、時刻nまでに出会った
句の数であるものとする。これらの句のうちの1つを記
述するためには、その接頭部を指すポインタ(多くとも
【数10】
【0049】ビット)と、新しい記号(1ビット)が必
要である。したがって、時刻nまでの列の総記述長は、
多くとも
【数11】
【0050】の長さを有する。レンペル−ジブ圧縮処理
の漸近的最適性は、下の定理から暗示される。
【0051】X1、X2が静的エルゴード処理から引き出
される場合、
【数12】
【0052】である。ただし、Hはこの処理のエントロ
ピ率である。
【0053】レンペル−ジブ処理は、それが構成する処
理句木の節の確率分布に関する供給源の有効なモデルを
展開する手段とみなすことができる。しかし、すべての
句の末尾に、この処理は木の根に戻り、それまでにたど
ってきた経路の記憶をすべて失う。
【0054】原理的には、たとえば長さDのコンテキス
トのそれぞれについて1つなどの、複数の木を維持する
ことによって、経路記憶の一部を保存することも可能で
ある。この場合、Dが十分に大きく、シーケンスが十分
に長ければ、これら複数の木をコンテキスト依存で使用
することによって、句の終りに根に戻ることから失われ
る情報のかなりの部分が取り込まれるものと期待され
る。
【0055】しかし、下で述べるように、固定長Dのコ
ンテキストは、最適でない可能性がある。したがって、
以下では、使用するコンテキスト(および対応する木)
が最適化手順を介して決定される方法を検討する。
【0056】Hは、Dコンテキストの集合であるものと
する。図2に、深さD=3のヒストリ木Hを示す。ヒス
トリ木Hは、深さD=3までのすべてのコンテキストを
表現したものである。深さD=3以下の可能なヒストリ
の集合は、φが空列を表すものとして、{φ、0、1、
00、10、01、11、000、100、010、1
10、001、101、011、111}からなる。木
Hは、(a)THの各句のヒストリhがh∈Hであり、
(b)THの各句が、THに対するLZ拡張によって形成
されたならば、コンテキストH内で出会った句から形成
される。
【0057】H'が、THの根からTH'の根に達するビッ
ト・ベクトルhによるHの連結である時には、木TH
部分木のそれぞれ自体が、あるコンテキストH'で出会
った句の木であることに留意されたい。
【0058】{i}fは、伝送される句の最初の記号で
ある点xiのインデックスであるものとする。これらの
点を、以下では句点と呼称する。
【0059】所与の句点は、たとえばHとH'など、複
数のコンテキストに適合する可能性があることに留意さ
れたい。ここで、THとTH'に追加される句は、異なる
木のLZ拡張に対応するので、同一ではない可能性があ
る。
【0060】このようなコンテキスト依存の複数の木ま
たは部分木を使用して圧縮を達成するためには、送出側
(エンコーダ)と受取側(デコーダ)が、使用する木に
関して合意する必要がある。したがって、下記の2つが
必要である。 1.どの句の末尾でも、その時刻tに、割振り関数Rt
が必要である。この割振り関数Rtは、原因としては木
の現在の状態とシーケンスからの過去のサンプルとに基
づいて、この木の集合から特定の木を選択する。この関
数は、エンコーダとデコーダの両方に知られており、デ
コーダは時刻tまでのシーケンスをデコード済みになっ
ているので、デコーダは、Rtの値を計算することもで
き、したがって、エンコーダとデコーダの両方に、次の
句の符号化にどの木が使用されるかがわかる。 2.時間の関数として木を更新する手順が必要である。
この更新に課せられる唯一の特性は、符号化のために木
を使用するたびに、その木によって符号化される句をそ
の木に追加することである。したがって、同一の木を使
用して、同一の句を2回符号化することはできない。
【0061】圧縮処理によって、コンテキストHで見つ
かった句のために別々のLZ句木THが維持されると仮
定する。その場合、特定の句は、1つの木について2回
以上繰り返されることはない。
【0062】K個の木または部分木(Kは定数)を用
い、伝送される句のそれぞれが1つの木について多くと
も1回繰り返されるLZ処理について、cnが、時刻n
までに伝送される句の総数を表すものとする。この場
合、次式が成り立つ。
【数13】
【0063】コンテキスト割振り 標準的なLZ圧縮処理は、前に出会った最長の一致する
句を選択する貪欲な手順である。本発明の目的は、さら
に、最適と見積もられる圧縮をもたらす木または部分木
を貪欲に選択することである。しかし、達成される実際
の圧縮は、後続のシーケンスに依存し、後続のシーケン
スは、受取側と送出側が共用するデータだけに基づいて
見積もらなければならない。
【0064】Bが、すべてのDコンテキストの集合の1
区画であり、{Hi}がBの要素であるものとする。す
なわち、Dコンテキストのそれぞれは、Bの1つの要素
だけに含まれる。Bを「スパニング基礎集合」と称し、
Bは、ヒストリ木の1つの完全な部分木に対応する。図
3に、3コンテキストすなわち{0、01、011、1
11}のスパニング基礎集合を示す。THが、コンテキ
ストHで得られた句の木であり、rhが、伝送された句
に関するhの経験的頻度であるものとする。M(TH
は、h∈Hが現在のDコンテキストであるものとして、
次の句に対して期待される圧縮の見積りであるものとす
る。すると、
【数14】
【0065】である。Vは、rhがコンテキストhの実
際の確率であり、M(TH(h))が所与のHに対する実際
の圧縮率であるならば、次の句に対して得られる圧縮の
期待値になることに留意されたい。
【0066】式3は、次のように書き直すことができ
る。
【数15】
【0067】ただし、nHは、コンテキストHに関して
観察されたカウントであり、nは、句の総数である。量
H/nは、コンテキストH∈Bの経験的頻度である。
見積りM(TH)は、下で説明する。
【0068】V(B)は、区画または基礎集合Bの関数
である。目的は、この関数を最適化することである。上
で述べたように、各コンテキストで出会った句の集合が
十分に類似している場合には、異なるコンテキストに関
連する辞書を併合する価値がある場合がある。
【0069】一般に、本発明では、コンテキスト空間の
すべての区画を検討し、V(B)を最少にする区画を選
択することができる。しかし、現在の応用例では、すべ
ての可能な区画を検討するのに必要な記憶域と計算のオ
ーバーヘッドが、非現実的に大きくなる可能性がある。
したがって、この説明では、そのような区画の部分集合
に話を限定する。ただし、十分なオーバーヘッドを認め
るならば、可能なすべての区画を検討することもでき
る。具体的に言うと、d≦Dである何らかの値dについ
て、現在のdコンテキストhが、Hについて適切な形態
であると仮定する。ここで、Hのそれぞれは、長さd≦
Dの接頭部を共用するDコンテキストからなる。これ
は、完全接尾部木と称するものの葉に対応する(参照に
よって本明細書に組み込まれる、リサネン(J. Risanne
n)著、"Complexity of Strings in the Class of Mark
ov Sources", IEEE Trans. Inform. Theory, IT-32:526
-532,July 1986を参照されたい)。より一般的な基礎集
合、たとえば、完全接尾部木(非2進シーケンスに関す
る)より一般的な木構造を有する集合も、関心の対象と
なる可能性がある。しかし、現在の応用例では、完全接
尾部木の葉に間連する基礎集合のもう1つの特性すなわ
ち、下でさらに説明するように、Bの要素のそれぞれ
を、木構造辞書の部分集合に対応させることができるこ
とを利用する。
【0070】下の式10の構造は、分類木または回帰木
と称するもの、すなわち、統計学および医学の論文で広
範囲の注目を集め、応用されてきたタイプの構造に一般
的に対応する。その動機づけとなるのは、通常は、トレ
ーニング集合のサンプルに適用された時に最適の分類を
もたらすはずの標本空間の区画を提供することである。
このような分類木または回帰木は、モデルの過剰指定す
なわち細かすぎる区画を回避するために、さまざまな手
段によって刈り込まれる。本明細書は、最適化がトレー
ニング集合に直接に適用されるのではなく、コンテキス
トの相対頻度の見積りとコンテキスト依存木の集合から
得られる性能の見積りおよび構築の両方に、観察された
シーケンスを使用する点が多少異なる。
【0071】{B}が、検討されるスパニング基礎集合
の集合であるものとする。B*が、式10を最少にする
スパニング基礎すなわち、
【数16】
【0072】であるものとする。この目的関数は、動的
プログラミングによって最適化問題を解決できるもので
ある。本発明は、計算の各段階で、Bの木構造を利用
し、基礎での特定のヒストリ(ヒストリ木の節)を保存
することの利点は、基礎にこのヒストリの2つの可能な
接頭部(対応する節の2つの子)を追加することの利点
に匹敵する。C(h)が、ヒストリhを根とするヒスト
リ木の部分木のすべてのヒストリに関して最適の重み付
き圧縮率を表すならば、C(h)は、(hが任意のヒス
トリであり、Bh={0h、1h}がそのヒストリに対
する可能な2つの接頭部である)として、次式によって
再帰的に計算される。
【数17】
【0073】この場合、C(0)=V*であり、最適基
礎集合は、再帰の間に子より良いものとして選択された
節からなる。
【0074】上記は、任意の時刻に基礎を最適化する手
順であり、したがって、任意の時刻に特定のコンテキス
トを選択する割振り規則Rtである。一般原則として、
tは、各句の先頭で再計算することができる。しか
し、句木はゆっくりと変化するだけであり、その結果、
この計算から得られる利益の大半を、周期的に再計算す
るだけで得ることができるはずである。
【0075】ここで、量M(Th)すなわち、コンテキ
ストhに関する次の句の、木Thを使用した見積圧縮を
検討する。この圧縮を見積もるための手法の1つが、こ
の木を使用して最後の数句について達成された圧縮を記
録し、これらのサンプルの平均をM(Th)の見積りと
して採用するというものである。レンペル−ジブ・アル
ゴリズムは、漸近的に最適であるから、木の外部節のす
べてが、漸近的にほぼ同等に拡張される可能性があるこ
とを示すことができるという事実から、代替手法が提案
される。したがって、木の外部節の平均深さ+1は、木
のレンペル−ジブ拡張によって形成される句の平均長の
よい見積である。
【0076】Thが、次の句の符号化に使用される木で
あるものとする。その句の表現の長さは、外部節(拡張
できる節)を指すポインタの長さ+拡張の1ビットであ
る。ポインタは、
【数18】
【0077】の長さを有する。ここで、ε(Th)は、木
hの外部節の集合であり、
【数19】
【0078】は、x以上の最小の整数である。したがっ
て、この圧縮に関する結果の見積は、
【数20】
【0079】になる。ここで、l(e)は、木Thの根
から外部節eまでの経路の長さである。
【0080】圧縮にコンテキスト割振りを適用すること
によって得られる改善の見積りは、簡単には得られな
い。というのは、それ自体が発見的な見積りにすぎない
かなり複雑な式の評価または束縛が必要になるからであ
る。しかし、ある程度の洞察を提供するために、単純化
のための仮定の下で、簡単な例を検討する。
【0081】h1とh2が2つのコンテキストであり、h
がこの2つの和集合であるものとする。p1、p2および
pは、それぞれ経験的頻度を表すものとし、p1=p2
あるものとする。木
【数21】
【0082】および
【数22】
【0083】が、D1バー=D2バーを有し、この2つの
木が互いに素である場合に起こり得るように、D1バー
≒Dバーであるものとする。さらに、
【数23】
【0084】であるものとする。すると、
【数24】
【0085】であり、コンテキストの1ビットの追加の
(この人工的な例での)利益は、1句ごとに伝送される
ビットが1ビット減少することである。この例を再帰的
に適用すると、メッセージ長がたとえば10ビットの場
合に、このどちらかといえば非現実的な例のコンテキス
トの3ビットによって、メッセージ長の30%の縮小を
もたらすことができることが示される。
【0086】上で述べたように、圧縮と予測の間に密な
関係があることは十分に諒解される。上の方法論は、た
とえば2進シーケンスx1、…、xtに対して、次の記号
t+1の予測に適用することができる。コンテキストh
を使用すると仮定する。その場合、Nh(i)が、コン
テキストhにiが現れた回数であるものとして、次の記
号の最大尤度評価式は、次のようになる。
【数25】
【0087】上のコンテキスト割振り方法論を使用する
と、コンテキストhは、
【数26】
【0088】を最小化する基礎Bの互換構成要素として
選択することができる。ただし、Mt(h)は、収集し
たデータの量と、コンテキスト間でのデータの類似性の
間のあるトレードオフを表す。分類木および回帰木の通
常の適用では、モデルの過剰指定を避けるために、尺度
M(・)にペナルティ(対数であることが多い)を組み
込むことが一般的である。すなわち、類似の性能を有す
る粗い区画が、微細な区画より優先される。
【0089】圧縮の場合と同様に、Mtを構成して、累
積的な統計だけでなく、その発生のしかたの関数でもあ
るようにすることができる。たとえば、Mt(h)は、
時刻tまでコンテキストhを使用した場合に行われるは
ずの正しい予測の数と誤った予測の数の関数にすること
ができる。その代わりに、基礎Bを使用して達成される
見積り圧縮に、共通の構造を用いた適切な形式のクラス
タ化コンテキストを与え、過剰指定に関するペナルティ
も組み込むことができることに留意されたい。
【0090】以下では、データ処理システム内での時系
列の予測に対するコンテキスト割振り処理の適用に関し
て、さらに詳細を提供する。
【0091】t以下のiのそれぞれについてx(i)が
既知の時系列x(i)、i=1、2、3、…を検討す
る。eが予測誤差であるとして、あるコスト関数C
(e)の最小化の対象となるx(t+T)の見積りを得
ることを所望すると仮定する。これは、多くの応用例で
発生する問題である。その例には、将来の待ち行列長
や、あるサービスに対する需要の見積りが含まれる。こ
のような予測問題に対して、さまざまな手法が存在す
る。この予測処理は、圧縮処理に関連する。
【0092】hが、シーケンスのヒストリ、すなわち、
現在時刻の直前までのシーケンス値の集合を表すものと
する。これらの値は、単純にx(t−i)、i=1、
…、dの値とすることができ、また、平均変化量などの
導出された量とすることもできる。kを超えないdにつ
いて、深さdにある節が長さdの近似ヒストリの集合に
対応するヒストリ木を構成する。すなわち、長さdのヒ
ストリhを表す節は、その木の中での先行節として、h
の接尾部である長さd−1のヒストリh'を表す節を有
する。
【0093】この木の各節に対応して、現在のヒストリ
hがその節に対応するものとして、x(t+T)の値を
予測するためにデータを維持する。このヒストリ対応が
発生するたびに、予測値を(たとえばこのヒストリに対
して時間Tにわたる平均変化を単純に使用することなど
によって)取得し、時刻Tの後に、その予測の誤差eを
計算し、これからコストC(e)を計算する。AC
(h)が、ヒストリhに関連するこれらのコストの平均
であるものとし、n(h)が、hが発生する回数(すな
わち、ヒストリhに関してC(e)が計算される回数)
であるものとする。
【0094】上で説明した動的プログラミング方法を使
用して、予測のための最適基礎集合を見つける。これ
は、ヒストリ空間を区分するヒストリの集合であり、ヒ
ストリ木の完全な部分木の葉に対応する。最小化される
量は、pb(h)×CA(h)の和であり、ここで、p
b(h)は、ヒストリhの経験的頻度、CA(h)は、
このヒストリに関連する平均コストである。この最小化
される量は、基礎集合に関連するヒストリ依存予測の集
合を使用した、予想コストの見積である。
【0095】圧縮処理 コンテキスト依存句の木または部分木の更新と維持の問
題をこれから説明する。上で述べた定理の形式は、句を
集めて、コンテキストの関数として使用される別々の木
または部分木を有する1つの木のいずれかにすることが
できるというものである。
【0096】標準的なLZ圧縮処理(本明細書では処理
1と称する)では、句がオーバーラップせず、すべての
句が、単一の木から選択される。したがって、どの時点
でも、木に対して行われる更新は多くとも1つである。
複数の木の場合、ある木Thから選択された伝送される
句が、Thからの対応する句(たとえば互換コンテキス
トを有する大きな木からの)の前に完了する可能性があ
る。その結果、複数の未完了の句が単一の木の中に存在
する可能性がある。
【0097】どの時点でも、句のうちの多くとも1つ
が、実際に圧縮に使用され、その句を指すポインタが、
デコーダに送られる。他の句は、木に追加され、その結
果、その木に、その特定のコンテキストを有するすべて
の句が含まれるようになる。したがって、木に対してこ
れらの他の句は、デコーダが同じことを同じ順序で行え
る形で追加される。これは、本明細書でトークンと称す
る構造によって達成される。
【0098】ある木のトークンは、まだ完了していない
句の現在の末尾を表す。データ処理システムによってそ
のシーケンスの後続ビットが符号化または復号されるに
つれて、トークンは、外部節に達する点まで、木の中へ
さらに移動する。この時点で、トークンが木の葉に昇格
し、トークンのリストから削除される。デコーダも、エ
ンコーダと同じ形でトークンのリストを維持し、同じ点
でトークンを昇格させる。エンコーダとデコーダの両方
が、同じ順序(トークンが木に追加された順序)でトー
クンを扱うので、エンコーダとデコーダは、各句の末尾
で必ず同じ状態の木を有する。
【0099】トークンを使用することによって、本発明
は、シーケンスの符号化の際に句として使用されない句
を、記憶された木に追加することができる。下で説明す
る処理のうちの2つでは、符号化の句のそれぞれについ
てD+1個のトークンが、さまざまな木または部分木に
追加される。したがって、より多くの節が木に追加さ
れ、この木は、標準LZの下の場合よりも速く成長す
る。
【0100】その代わりに、辞書として単一の木の部分
木を使用する処理の場合、トークンによってマークされ
た経路は、その部分木の根からの経路である。共通の知
識が増加するにつれて、トークンを前進させる(すなわ
ち、木のより深い部分へ進める)ことができる。トーク
ンが外部節を越えて進む時に、そのトークンが昇格し
て、ThのLZ拡張を形成する。複数のトークンがある
場合、それらは、インデックス順すなわち古いトークン
から前進する。
【0101】下で述べる処理2では、d≦Dのdコンテ
キストhのそれぞれについて、別々の木を維持する。下
の処理3では、複合句木と称するものをもたらす形式で
維持される単一の木を使用する。これらの処理のどちら
もが、上の定理に従っており、実験結果から、標準LZ
を上回る良い性能をもたらすことが示された。しかし、
このどちらもが、標準LZよりも多くの記憶域を必要と
する。
【0102】標準LZに類似の記憶要件を有する処理を
検討するために、下で処理4も説明する。この処理で
は、基本的に処理1の木と同一の木を使用するが、辞書
として部分木を使用する。
【0103】処理2:複数の木 処理2は、本発明の代替実施例であるが、説明を明瞭に
するために、本発明の好ましい実施例である処理3の前
に説明する。
【0104】d≦Dのdコンテキストhのそれぞれにつ
いて、別々の木Thを維持する。これは、参照によって
本明細書に組み込まれるプロトニック(E. Plotnik)、
ワインバーガー(M.J. Weinberger)およびジブ(J. Zi
v)著、"Upper Bounds on the Probability of A Seque
nce Emitted by Finite-State Sources and on the Red
undancy of the Lempel-Ziv Algorithm", IEEE Trans.
Inform. Theory, IT-38(1):66-72, January 1992で提案
された手法と対照的である。同書の手法では、シーケン
スの仮定または見積りの有限状態モデルの「状態」のそ
れぞれについて別々の木が維持される。以下で述べる手
法では、有限状態モデルの知識があるという前提はない
ので、これらの木は、D未満のすべての可能な「状態」
またはオーダーについて維持される。
【0105】t=0と、その後のt=t(n)での各句
の末尾
【数27】
【0106】に、上で述べた割振り方法を介してdコン
テキストhが選択される。Thからの最長の互換句の識
別と、拡張を伝送する。t(n)でのDコンテキストと
互換の(すなわち、その接尾部である)ヒストリqのそ
れぞれについて、Tqの根にトークンを追加することに
よって、Tqによって句を開始する。
【0107】句は、コンテキストh内で伝送される場合
に、Thに追加されることに留意されたい。したがっ
て、この処理は上の定理に従い、漸近的に最適である。
空のコンテキストに関連する木
【数28】
【0108】は、割振り関数が必ず空のコンテキストに
決定する場合に、この処理と処理1が同一の性能を生じ
るという点で、処理1のそれに対応する。処理2では、
新しい句のそれぞれが(トークンが昇格した後に)、D
+1木のそれぞれに1つのノードの追加をもたらし、そ
の結果、記憶要件が処理1の要件より大きくなる。
【0109】次に、図4を参照すると、処理2の実施例
の流れ図が示されている。処理2は、ステップ40から
始まり、ここで、ヒストリ木を深さDに初期設定し、す
べてのLZ木を空に初期設定する。その後、ステップ4
1で、前に述べたように、可能な統計的に最適の圧縮を
達成するために、最適基礎集合(最低の圧縮率を有す
る)を選択する。圧縮を、まず列に関して実施しようと
する場合、最初の圧縮のために空の基礎集合を選択する
ことができる。その代わりに、すべての基礎集合の圧縮
率が等しい時には、最小の基礎集合を選択することがで
きる。
【0110】次に、ステップ42で、圧縮される次のデ
ータ列の現コンテキストに対応する、選択された基礎集
合内の要素を選択する。その後、ステップ43で、圧縮
または符号化される句を使用して、現コンテキストに対
応するLZ木を拡張する。次に、ステップ44で、選択
されたLZ木の拡張に対応するポインタを計算する。ま
た、下でさらに説明するように、このポインタと拡張
を、受取側またはデコーダに送る。
【0111】次に、ステップ45で、現コンテキストと
互換性のあるヒストリに対応するLZ木のそれぞれの根
節にトークンを追加する。その後、ステップ46で、圧
縮される現句のビットを使用して、すべての木のすべて
のトークンを移動する。その後、ステップ47で、後に
ステップ41で使用するために、すべてのLZ木の平均
深さを更新する。その後、ステップ48で、圧縮すべき
ビットまたは句がまだある場合には、処理2はステップ
41に戻り、そうでない場合には、処理2は終了する。
【0112】1例として、次のビットからなるサンプル
の入力列を検討する。 0101100101000100010001001000111101010101101000101110 この例では、D=1である。したがって、3つの木すな
わち、空集合、"0"のコンテキストを含む木および"1"の
コンテキストを含む木がある。
【0113】入力のうち、前に出会っていない最初の列
は、ビット"0"である。したがって、ビット"0"を最初に
圧縮しなければならない。上で述べたように、圧縮用の
基礎集合の選択は、この時点で空基礎集合の省略時選択
となるように選択するか、その代わりに、やはり空基礎
集合である最小の基礎集合をこの時点で選択することが
できる。図9は、図4のステップ43に示された、3つ
の木または辞書の構造を示す図である。ステップ44に
示されるように、空コンテキスト木を指すポインタを、
図9に示された拡張と共に計算して、デコーダに伝送す
る。この第1ビット"0"は、コンテキストを有しないの
で、この時点で他の木を拡張する必要はない。それに対
応して、この時点ではトークンを使用する必要がない。
【0114】上のステップ47に示されるように、この
時点で各木の平均深さを計算することに留意されたい。
空集合の平均深さは0.500であり、空基礎集合内の
図示の拡張を符号化するのに必要なポインタ長は、長さ
1である。その後、圧縮率を計算する。
【0115】圧縮率は、その木の中で次に符号化される
ビットを指すのに必要なポインタ長を、次のビットがこ
の木に置かれた後のこの木の平均深さで割った値として
計算できる。たとえば、図9の空木の圧縮率は、ポイン
タ長+1ビットを平均深さ+1ビットで割った値として
計算でき、これは(1+1)/(0.500+1)=
1.333に対応する。
【0116】図9の他の2つの木に関して、ポインタ長
と平均深さは、どちらも0である。したがって、これら
の木の両方について計算される圧縮率は、1に等しい
(すなわち、(0+1)/(0+1))。その後、次の
ビット列を符号化するため次の基礎集合を選択するため
の比較の前に、圧縮率に重みを付ける(基礎集合内の2
つのコンテキストについて別々の木があるので)。空集
合は、1つの木だけからなるので、重み付けは必要な
い。しかし、基礎集合{0、1}は、2つの木からな
り、その計算された圧縮率の重み付けが必要である。こ
の重み付けは、木のそれぞれ(すなわち、"0"コンテキ
スト木と"1"コンテキスト木)について計算された圧縮
率に、その特定の木の節の数をかけ、基礎集合内の節の
総数で割った値に等しい。たとえば、"0"コンテキスト
木が10節に成長し、"1"コンテキスト木が20節に成
長した(したがって、基礎集合内には合計30節があ
る)場合、"0"コンテキスト木について計算された圧縮
率は、10/30をかけられ、"1"コンテキスト木につ
いて計算された圧縮率は、20/30をかけられる。そ
の後、これら2つの値を加算して、基礎集合{0、1}
の重み付き圧縮率を得る。
【0117】図9に関して示された上の例では、基礎集
合{0、1}の重み付き圧縮率が、(0)1.000+
(0)1.000=0に等しい。この場合、0は1.3
33未満であるが、この処理は、実際の圧縮率を有する
木を選択するように構成されている。この場合、次の圧
縮のために、空基礎集合が選択される。
【0118】その結果、空基礎集合すなわち、空コンテ
キスト木が、次の圧縮に使用される。したがって、上の
入力列は、圧縮に空基礎集合が使用されることを考慮に
入れて、次のビット列についてもう一度評価される。こ
の列の次のビットは、"1"であり、これは、空コンテキ
スト集合に関して前に出会っていないビットである。し
たがって、この"1"ビットは、空基礎集合を使用して圧
縮される。次に図10を参照すると、ステップ43に示
されるように、空木が図示のように成長していることが
わかる。その後、"1"ビットへの拡張と共に空木を指す
ポインタが計算され、"1"ビットを符号化したものとし
て伝送される。
【0119】その後、符号化された"1"ビットと互換性
のあるコンテキストを有する木のすべてを、拡張する。
その結果、"0"コンテキスト木が、図10のように成長
する。これは、最近に符号化された"1"ビットが、"0"ビ
ットのコンテキスト(D=1)を有したからである。"
1"コンテキスト木は、期待される通りに影響を受けない
ことに留意されたい。この時点でトークンは必要ないの
で、図4のステップ45およびステップ46は不要であ
る。
【0120】その後、3つの木の平均深さを計算する。
空木の場合、平均深さは、その木の中で拡張できる節の
総数をとることによって計算され、これは、木の中で拡
張できる節のポインタ長の和をとり、その数を、次のサ
イクルで拡張できる節の総数で割ることによって計算さ
れ、これは、空木の場合には、2/2になり、1.00
0の平均深さに等しい。ポインタ長は、その木に含まれ
る節を区別するのに必要なビット数に等しいことに留意
されたい。その結果、圧縮率は、2/2.000=1.
000に等しい。
【0121】同様の計算によって、図10に示された"
0"コンテキスト木の、1.333に等しい圧縮率がもた
らされ、"1"コンテキスト木の圧縮率は、1.000に
等しい。基礎集合{1、0}の重み付き圧縮率は、(1
/1)1.333+(0/1)1.000=1.333
である。その後、2つの基礎集合すなわち、1.000
の圧縮率を有する空基礎集合と、1.333の重み付き
圧縮率を有する基礎集合{1、0}の間の圧縮率の比較
によって、次のビット列の符号化に空基礎集合が選択さ
れる。
【0122】次に、入力列を再び観察する。この例で
は、空コンテキスト木が、前に"0"と"1"の両方を符号化
しているので、入力列の"01"列が、前に出会っていない
次のデータ列になる。その後、この入力列は、空木を使
用して符号化され、その結果、図11に示されるように
空木が成長する(ステップ43)。この空木からもたら
されるポインタと拡張を、ステップ44で使用して、
列"01"を符号化する。その後、列"01"と互換性のあるコ
ンテキストを有する他の木も拡張される。したがっ
て、"1"コンテキスト木は、図11に示されるように拡
張される。これは、列"01"の第1ビットが"0"であり、
これが"1"のコンテキストを有するからである。"0"コン
テキスト木は拡張されない。というのは、このコンテキ
ストが、符号化される列と互換性がないからである。
【0123】その後、上のステップ47に示されるよう
に、木の平均深さを更新する。空木の場合、平均深さ
は、木内の拡張可能節のポインタ長を拡張可能節の個数
で割った値として計算され、これは4/3=1.333
に等しい(空木のポインタ長は、この木の拡張可能な節
を区別するのに2ビットが必要であるから、2に等し
い)。これに対応して、"0"コンテキスト木と"1"コンテ
キスト木は、それぞれ0.500の平均深さと1に等し
いポインタ長を有する。
【0124】空木の圧縮率は、ポインタ長に木の拡張に
必要な"1"ビットを加えた値を、平均深さに木の拡張に
必要な"1"ビットを加えた値で割った値すなわち、(2
+1)/(1.333+1)=1.286に等しい。
【0125】基礎集合{0、1}の重み付き圧縮率は、
(1/2)1.333+(1/2)1.333=1.3
33に等しい。その結果、空基礎集合の圧縮率1.28
6が、基礎集合{0、1}の重み付き圧縮率1.333
より小さいので、次のビット列の圧縮に、やはり空基礎
集合が選択される。
【0126】その結果、次の圧縮のために、入力列が再
び観察される。入力に含まれる、空木に関して前に出会
っていない次の列は、列"10"である。したがって、この
列が、空基礎集合によって次に符号化される。ステップ
43で、符号化された列"10"を使用して、空木が図12
に示されるように拡張される。やはり、ステップ44に
示されるように、ポインタと拡張を計算して、この列を
符号化する。その後、この木は図12に示されるように
拡張される。列"10"は"1"のコンテキストを有するの
で、"1"コンテキスト木が拡張されていることに留意さ
れたい。
【0127】やはり、平均深さ(ステップ47)を計算
する。空木の場合、平均深さは6/4すなわち1.50
0に等しい。拡張可能な節同士を区別するのに必要な最
大ポインタ長は、2に等しい。したがって、この空木の
圧縮率は、(2+1)/(1.500+1)=1.20
0に等しい。
【0128】"0"コンテキスト木は、平均深さが0.5
00でポインタ長が1であり、"1"コンテキスト木は、
平均深さが1.000でポインタ長が1である。基礎集
合{0、1}の重み付き圧縮率は、(1/3)1.33
3+(2/3)1.000=1.111に等しい。その
結果、基礎集合{0、1}が選択される。
【0129】したがって、基礎集合{0、1}が、次の
データ列の符号化に使用される。したがって、入力デー
タ列は、基礎集合{0、1}に関して前に出会っていな
い次のビット列について観察される。その結果、次の
列"0"が符号化される。基礎集合{0、1}を使用した
結果として、また、次のデータ列"0"が"0"のコンテキス
ト(D=1)を有するので、"0"木が、図13に示され
るように拡張される。その後、互換性のある木のすべて
が、やはり拡張される。"1"コンテキスト木は、互換性
のあるコンテキストを有しないので、拡張されない。し
かし、空木は拡張される可能性がある。図4のステップ
45で注記したように、トークンがLZ木のそれぞれの
根節に追加され、この場合、現コンテキストと互換性の
あるコンテキストに対応する空木の根節に追加される。
その後、ステップ46に示されるように、すべての木の
すべてのトークンが、現在符号化されている句のビッ
ト、この場合には"0"を使用して移動される。その結
果、空木内のトークンが、図13の円で囲んだ節によっ
て示されるように移動される。
【0130】その後、平均深さとポインタ長と、重み付
き圧縮率を含む圧縮率とを、上で述べたように計算す
る。その結果は、この場合については繰り返さないが、
次の句の符号化にやはり基礎集合{0、1}が選択され
る(ステップ41)。選択された基礎集合に関して前に
出会っていない、入力列内の次に符号化される句は、
句"10"である。句"10"は、"0"のコンテキストを有する
ので、やはり"0"コンテキスト木を使用してこの句を符
号化する。ここで図14を参照されたい。この図には3
つの木が示されている。"0"コンテキスト木が、句"10"
の符号化に使用された結果として拡張されていることに
留意されたい。
【0131】ステップ45に示されるように、句"10"の
現コンテキストと互換性のあるコンテキストに対応する
LZ木のそれぞれの根節にトークンを追加する。その結
果、空木の根にトークンが追加される。"1"コンテキス
ト木は、互換性のあるコンテキストを含まないので、や
はり拡張されないことに留意されたい。ステップ46に
示されるように、すべての木のすべてのトークンが、現
在の符号化される句を使用して移動される。空木には現
在2つのトークンが含まれる(図13参照)ので、各ト
ークンを移動しなければならない。トークンは、作成さ
れた時刻に対応する順序で移動される。したがって、図
13に示されたトークンは、まず現在符号化されている
句"10"を使用して移動される。その結果、空木は、図1
4に示されるように拡張される。最初に作成された、図
13に示されたトークンを移動して、空木内の新しい葉
を作成したので、このトークンは除去される。
【0132】次に、空節から始まるトークンが、句"10"
を使用して移動され、図14に示されるように、空木内
に残されたトークンがもたらされる。このトークンは、
空木内に新しい葉を作成するように移動されてはいない
ので、除去されないことに留意されたい。
【0133】その後、3つの木の平均深さを計算する。
空木の平均深さは、9/5=1.800に等しいと計算
され、ポインタ長は3である。したがって、空木の圧縮
率は、(3+1)/(1.8+1)=1.429に等し
い。基礎集合{0、1}の重み付き圧縮率は、(3/
5)1.286+(2/5)1.000=1.172に
等しい("0"コンテキスト木と"1"コンテキスト木の計算
された平均深さは、それぞれ1.333と1.000で
あり、ポインタ長はそれぞれ2と1であり、その結果、
重み付けの前の圧縮率は、それぞれ1.286と1.0
00であることに留意されたい)。その結果、基礎集合
{0、1}の重み付き圧縮率が、空基礎集合の圧縮率よ
り小さいので、次の句の符号化には、やはり基礎集合
{0、1}が選択される。符号化処理の残りは、本明細
書では説明しないが、上で述べたものと同一の手順に従
う。
【0134】処理3:複合句木 前の処理2では、D未満の長さの可能な状態またはコン
テキストのそれぞれについて、別々の木を維持した。し
かし、この異なる木の情報にはかなりのオーバーラップ
がある。したがって、好ましい実施例は、この情報を組
み合わせて単一の木にすることである。以下で説明する
処理3の基礎は、情報のすべてを単一の木に組み合わせ
ることである。したがって、処理3では、処理2の複数
の木の代わりに、単一の木の部分木を使用する。
【0135】処理3は、以下の観察によって動機を与え
られたものである。まず、標準LZ木を検討し、"0"と
マークされた深さ1の節を根とする部分木を検討する。
この部分木の節はすべて、"0"から始まる符号化の句に
対応する。したがって、先頭ビットの"0"を取り除いて
これらの句を検討するならば、これらの句は、"0"のコ
ンテキストを有するシーケンスの部分木である。したが
って、"0"から始まるLZ木の部分木は、"0"のコンテキ
ストを有するシーケンスの部分列の集合に対応する。し
たがって、単一の木の部分木を使用して、同一のコンテ
キストを有する部分列を表現することができる。
【0136】処理3では、単一の木Tを維持する。dコ
ンテキストhのそれぞれに関連する辞書は、Tの根から
hを介して達する部分木Thである。hがコンテキスト
として選択される場合、(a)Th内の適切な葉の識別
を伝送し、この部分木に対してLZ拡張を実行し、
(b)互換性のあるdコンテキスト(d≦D)のそれぞ
れについて句を開始する。この新しい句に関連するトー
クンは、コンテキスト長の昇順(すなわち、空コンテキ
ストが先頭)である。
【0137】次に、図5を参照すると、本発明による処
理3の実施例の流れ図が示されている。処理3は、ステ
ップ50から始まり、ここで、ヒストリ木とLZ木を深
さDに初期設定する。その後、ステップ51で、圧縮に
使用される基礎集合を、上で説明した形で選択する。次
に、ステップ52で、現コンテキストに対応する基礎集
合内の要素を、圧縮のために選択する。次に、ステップ
53で、現コンテキストに対応するLZ部分木を、圧縮
または符号化中の現句を使用して拡張する。
【0138】次に、ステップ54で、選択されたLZ部
分木の拡張に対応するポインタと、その拡張とを計算す
る。また、このポインタとその拡張を、受取側に送る
(すなわち、現句を、ポインタと拡張を用いて符号化す
る)。次に、ステップ55で、符号化された句に対応す
る現コンテキストと互換性のあるヒストリに対応するL
Z部分木のそれぞれの根節に、トークンを追加する。
【0139】次に、ステップ56で、この木のすべての
トークンを、圧縮中の現句の情報を使用して移動する。
その後、ステップ57で、すべてのLZ部分木の平均深
さを更新し、最後に、ステップ58で、圧縮すべき情報
がまだある場合には、ステップ51に戻り、そうでない
場合には処理3を終了する。
【0140】処理3のいくつかの特性は、特筆に値す
る。木Tは、処理1より速く成長する。しかし、この場
合の成長は、新しいビットごとに1節ではなく、句のそ
れぞれについてD+1節が最終的に(トークン昇格時
に)追加されるという点で、多少異なる形で達成され
る。最終的に句が成長してDよりはるかに長くなる時に
は、Tの成長の速度が減少する。
【0141】第2に、処理3は、上に記載の定理に従
い、したがって漸近的に最適である。句ごとにD+1節
を記憶するという特性は、処理2の特性と類似してい
る。しかし、追加される節のそれぞれは、D+1コンテ
キスト部分木に現れ、その結果、その影響は、別々の木
について(D+1)2節を追加するのと同等である。こ
れは、実験によって示されるとおり、この変形が短いフ
ァイルの場合により良い性能を示すことを暗示する。
【0142】次に図15を参照すると、深さD=2に初
期設定されたヒストリ木(ステップ50)が示されてい
る。処理3の働きを示すために、処理2の例で使用した
ものと同一のサンプル入力列を検討する。この場合、D
=2の事例を検討する。処理3では、1つの木だけがあ
り、この木は、深さDの完全な木になるように初期設定
される(図5のステップ50)。したがって、処理は、
図15に示される深さ2の完全な木から始まる。基礎集
合も、省略時値すなわち、空基礎集合に初期設定される
(ステップ51)。したがって、現コンテキストに対応
する基礎集合の要素は、空コンテキストである。
【0143】空コンテキストに対応する部分木は、LZ
木の根から始まる部分木すなわち、完全なLZ木であ
る。したがって、この処理では、LZ木の根にトークン
を追加し、入力ビットを使用して、トークンを木の下方
向に押し出す。最初の2ビットは01であり、これによっ
てトークンが木の葉に移され、次のビットは0であり、
これは前に出会ったことのない句に対応する。したがっ
て、このビットに対応する節が、木に追加され、図16
の木がもたらされる。この句の前に先行するビットは存
在しないので、他に互換性のあるコンテキストは存在せ
ず、したがって、この木に他のトークンは追加されな
い。
【0144】この時点で、この木のすべての部分木の平
均深さを計算する。根から始まる部分木すなわち完全な
木の場合、拡張できる可能性のある節が深さ2に4つ、
深さ3に1つあり、平均深さ2.2が得られる。これら
の節のうちの1つを区別するためのポインタの長さは、
3ビットであり、したがって、この部分木の圧縮率は、
(3+1)/(2.2+1)=1.25である。
【0145】次に、"0"を根とする部分木を検討する。
この部分木には、拡張可能な節が、深さ1に2つ、深さ
2に1つある。したがって、この部分木の拡張可能な節
の平均深さは、4/3=1.333である。この部分木
に必要な(これら3つの節を区別するのに)ポインタの
長さは、2ビットである。したがって、この部分木の圧
縮率は、(2+1)(1.3333+1)=1.286
である。
【0146】同様に、"1"を根とする部分木の平均深さ
は、1であり、ポインタ長は、1ビットであり、この部
分木の圧縮率は、(1+1)/(1+1)=1.000
である。
【0147】"00"を根とする部分木の圧縮率は、1.0
00として計算され、"01"の場合には1.333、"10"
の場合には1.000、"11"の場合には1.000であ
る。これらは、ヒストリ木の対応する節の圧縮率であ
る。ヒストリ節"01"は、ヒストリ節"0"ではなくヒスト
リ節"1"の子であることに留意されたい。
【0148】ここで、この処理では、動的プログラミン
グを実行して、圧縮率を最小にする基礎集合を見つけ
る。動的プログラミング手順の各段階で、ヒストリ木の
節の圧縮率と、この節の子の圧縮率の平均との比較を行
う。子の圧縮率は、それぞれの部分木の節の数によっ
て、処理2の重み付けと同様の形で重みが付けられる。
【0149】この動的プログラミング・アルゴリズム
は、ヒストリ内の最大深さの節から開始される。この場
合、D=2であり、最大深さの節は、深さ2にある。し
たがって、このアルゴリズムでは、ヒストリ節"0"の圧
縮と、その子(節"00"および"10")の圧縮を比較する。
この場合、子節のそれぞれは、その部分木に1つの節だ
けを有し、圧縮率は1.000である。したがって、子
の平均圧縮率は、1.000である。節"0"の圧縮率
は、上で計算したように1.286である。節"0"の圧
縮率がその子の平均圧縮率より小さいので、このアルゴ
リズムでは、子が基礎集合の要素となることが選択され
る。
【0150】その後、このアルゴリズムでは、節"1"の
圧縮率を、その子(節"10"および"11")の平均圧縮率と
比較する。子に対応する部分木は、それぞれ2個および
1個の節を有し、したがって、子の平均圧縮率は、(2
/3)1.333+(1/3)1.000=1.222
である。これは、ヒストリ節"1"の圧縮率より大きいの
で、このアルゴリズムでは、節"01"および"11"ではな
く、節"1"が基礎集合の要素として選択される。
【0151】最後に、このアルゴリズムでは、これまで
に選択された基礎集合用の最適の圧縮率と、空ヒストリ
の圧縮率とを比較する。ヒストリ"00"、"10"および"1"
に対応する根を有する部分木には、それぞれ1個、1個
および3個の節がある。この基礎集合の平均圧縮率は、
(1/5)1.000+(1/5)1.000+(3/
5)1.000=1.000である。この圧縮率は、空
コンテキストの圧縮率(上の計算では1.250)より
良いので、このアルゴリズムでは、基礎集合として集
合"00、10、1"が選択される。
【0152】次に、このアルゴリズムでは、先行ビット
を調べ、現コンテキストに対応する基礎の要素を探す。
先行ビットは010であったから、現基礎集合の互換要
素は10である。したがって、10に対応する部分木
が、次の句の圧縮に使用される部分木である。
【0153】ステップ54で、"10"を根とする部分木か
ら処理を開始する。次の入力ビットは1であり、この1
に対応する節は、この木には存在しない。したがって、
この節が追加され、図17に示される新しい木が作られ
る。その後、圧縮ルーチンによって、この部分木の親節
を指すポインタと、拡張記号が送られる(ステップ5
5)。
【0154】ステップ56で、現コンテキストと互換性
のあるヒストリに対応するすべての部分木の根に、トー
クンを追加する。この場合、互換性のあるヒストリは、
空ヒストリとヒストリ"0"である。したがって、トーク
ンは、LZ木の根と、ヒストリ"0"に対応する節すなわ
ち節0に追加される。ステップ57で、これらのトーク
ンを、現句のビットを使用して移動する。現句は1だけ
であるから、これによって、根から始まるトークンが
節"1"に移動され、"0"から始まるトークンが節"01"に移
動される。ステップ57の後の木とトークンの状態を、
図17に示す。
【0155】次のステップ(ステップ58)で、ヒスト
リ木内のすべての節について、平均深さと圧縮率をもう
一度計算する。この場合、圧縮率は、空コンテキストで
は1.200、"0"および"1"のコンテキストでは1.2
86、"00"および"11"のコンテキストでは1.00
0、"01"および"10"のコンテキストでは1.333であ
る。
【0156】まだ入力ビットが残っているので、処理は
図5のステップ51に戻る。前と同様に動的プログラミ
ング・アルゴリズムを実行することによって、最終的
に、次の句の圧縮に最適の基礎集合として、空基礎が選
択される。その後、このアルゴリズムでは、LZ木の根
から開始し、次の数ビットを使用して木を下る。次の3
ビットは100であり、これは新しい節につながる。この
節を木に追加し、この節を指すポインタと拡張を、受取
側に送る。
【0157】この場合の互換コンテキストは、コンテキ
スト"1"および"01"である。これらのコンテキストに対
応する節に、トークンを追加する。その後、現句のビッ
トを使用して、古いトークンからの順ですべてのトーク
ンを移動する。したがって、最初に移動されるトークン
は、図17で0とマークされたトークンである。このト
ークンを10を使用して移動し、新しい節を形成する(L
Z木の110節)。次に移動されるトークンは、図17で
1とマークされたトークンである。このトークンを、現
句の第1ビット(すなわち1)を使用して移動し、新し
い節(LZ木の011節)を形成する。その後、この句の
中で追加された新しいトークンを移動する。次に移動さ
れるトークンは、コンテキスト"1"に対応する節に追加
されたトークンである。このトークンは、1100に移動
し、新しい節を形成する。このトークンは、前のトーク
ンの昇格によって作成されたばかりの新しい節を越えて
移動することに留意されたい。一貫性を保証するため
に、トークンの移動に関して固定された順序を設けるこ
とが重要である。最後に、節"01"に追加されたトークン
を移動し、0110に新しい節を形成する。したがって、こ
の句の終りには、現トークンおよび以前のトークンのす
べてが、句に昇格し、木は、図18のようになる。
【0158】この処理を必要に応じて繰り返して、シー
ケンスの残りのビットを符号化する。次の句の末尾での
木を、図19に示す。この処理は、詳細には説明しない
が、入力シーケンスの末尾まで同一の手順に従うもので
ある。
【0159】処理4:コンテキスト割振りを用いる単一
木 本発明のもう1つの代替実施例である処理4は、本質的
にはコンテキスト依存性を利用する標準LZ木である。
時刻tのそれぞれに、送出側と受取側が、シーケンスX
1、X2、…、Xn(t)について共通の知識を有する。送出
側と受取側のそれぞれが、時刻tにトークンによって表
現される未完了のLZ句が存在し得るという点を除い
て、処理1と同様のLZ木を構成する。各句の先頭で、
割振り関数Rtによって、伝送に使用する部分木を選択
し、この部分木の葉を指すポインタと拡張を用意する。
しかし、この新しい句は、木には追加されない。そうで
はなくて、シーケンスの共通の知識を、ある点まで進め
るだけである。
【0160】次に図6を参照すると、本発明による処理
4の実施例の流れ図が示されている。まず、ステップ6
0で、圧縮処理で使用されるヒストリ木とLZ木の両方
を、深さDに初期設定する。その後、ステップ61で、
圧縮に使用する基礎集合を、上で説明したように選択す
る。
【0161】次に、ステップ62で、符号化される現句
に関連する、現コンテキストに対応する選択された基礎
集合内の要素を選択する。次に、ステップ63で、現コ
ンテキストに対応する部分木の仮想拡張を決定する。し
かし、対応する節または新しい句は、部分木に追加され
ない。
【0162】その後、ステップ64で、この部分木内の
節を指すポインタとその拡張を計算し、デコーダに送
る。次に、ステップ65で、LZ木にトークンがあるな
らば、現句の情報を使用してこのトークンを移動する。
そのトークンが新しい節に昇格する場合、完全な木の根
に新しいトークンを追加する。その後、ステップ66
で、後の使用のために、LZ木のすべての部分木の平均
深さを更新する。最後に、ステップ67で、圧縮すべき
情報が残っていないならば処理4を終了し、残っている
ならばステップ61に戻る。
【0163】処理4の特性をいくつか述べる。定理2
は、処理4にはあてはまらない。というのは、句が拡張
されず、木または部分木に直接追加され、その結果、同
一の句が、元の部分木と共に複数回使用される可能性が
生じるからである。各句の先頭では、基礎集合から生じ
る見積り圧縮が、木全体を使用することから得られる見
積り圧縮と比較され(割振り関数Rtを計算する手順
で)、部分木は、利益が認められる場合に限って使用さ
れる。すなわち、常に標準LZに戻るという選択肢が存
在する。これによって、修正の可能性が暗示される。す
なわち、送出側と受取側の両方が、標準LZの方が良い
と判断した場合に、合意の上で標準LZへ切り換えるこ
とができる。
【0164】しかし、実験結果から、処理4は、標準L
Zを凌ぎ、処理2の性能に類似の性能を有することが示
された。これは、新しいLZ句のそれぞれによって、あ
る節にD+1コンテキスト部分木が追加されることに起
因すると推測される。
【0165】データ処理システム内での実施態様 次に図7を参照すると、データ処理システムの一部とし
て本発明を実施するためのハードウェア・システム70
0が示されている。システム700には、CPU70
1、主記憶702、ビデオ・メモリ703、通常のマウ
ス(またはライト・ペン、電子ペン、データ・タブレッ
トなど)705によって補われるユーザ入力用のキーボ
ード704、および、1つまたは複数の磁気、光または
光磁気記憶技術もしくは他の使用可能な大容量記憶技術
を使用する固定媒体と取外し可能媒体の両方を含むこと
のできる大容量記憶装置706が含まれる。
【0166】これらの構成要素は、通常の両方向のシス
テム・バス707を介して相互接続される。システム・
バス707には、主記憶702とビデオ・メモリ703
の任意の部分をアドレッシングするためのアドレス線が
含まれる。システム・バス707には、CPU701、
主記憶702、ビデオ・メモリ703、大容量記憶装置
706および入出力ポート711の間でデータを転送す
るためのデータ・バスも含まれる。
【0167】システム700の好ましい実施例では、C
PU701を、適当なマイクロプロセッサまたはマイク
ロコンピュータとすることができる。入出力ポート71
1を用いると、システム700が、「外の世界」(たと
えば、外部システムや外部の処理)へのアクセスを得る
ことができるようになる。
【0168】システム700の主記憶702は、適当な
サイズの通常のダイナミック・ランダム・アクセス・メ
モリである。ビデオ・メモリ703は、通常の二重ポー
ト式ビデオ・ランダム・アクセス・メモリであり、単一
の画面イメージの内容を保持することができるフレーム
・バッファを含めることができる。ビデオ・メモリ70
3は、表示装置708に表示するためのビデオ・データ
を供給し、表示装置708は、本発明の好ましい実施例
では陰極線管(CRT)ラスタ表示モニタである。しか
し、表示装置708は、液晶、冷陰極または他の画素ベ
ース表示装置とすることができる。
【0169】本発明のさまざまな処理は、CPU701
による後続の使用のために、大容量記憶装置706また
は主記憶702内に記憶するか、入出力ポート711を
介して組み込むことができる。圧縮されるデータも、本
発明の使用を介するCPU701による操作のために、
大容量記憶装置706に記憶するか、入出力ポート71
1を介して得ることができる。たとえば、大容量記憶装
置706内に記憶されるデータまたは入出力ポート71
1を介して外のシステムへ転送されるデータを、CPU
701内で実施される本発明によって圧縮することがで
きる。その代わりに、入出力ポート711を介しシステ
ム700によって、圧縮されたデータを受け取って、C
PU701内で本発明を利用して圧縮解除することがで
きる。
【0170】次に図8を参照すると、本発明による処理
を表す線図が示されている。本質的に、圧縮されるデー
タ・シーケンス
【数29】
【0171】は、エンコーダ800によって受け取られ
る。エンコーダ800は、上で述べた圧縮技法のいずれ
か1つを使用して、図7に関して説明したように
【数30】
【0172】を記憶または転送のために圧縮する。デコ
ーダ801は、符号化されたシーケンスの圧縮解除の処
理を実行する。上で述べたように、デコーダ801は、
エンコーダ800が展開したものと同一の木または辞書
を取り込み、展開し、その結果、デコーダ801は、デ
ータの損失なしに符号化されたシーケンスを正しく圧縮
解除することができる。エンコーダ800またはデコー
ダ801もしくはその両方は、CPU701内で実施さ
れる。
【0173】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0174】(1)データ処理システムにおいて、デー
タ・ストリームの符号化中に句の辞書を展開し、記憶す
るステップと、次のデータ列に先行する前記データ・ス
トリームのコンテキストの関数としての前記データ・ス
トリーム内の前記次のデータ列の符号化のために前記辞
書内の前記句のうちの1つを選択するステップと、前記
選択された句を用いて前記次のデータ列を符号化するス
テップとを含む、データを圧縮するための方法。 (2)前記句の辞書が、符号化された句の複数の木を含
み、前記複数の木のそれぞれが、特定のコンテキストに
対応し、前記選択するステップがさらに、前記複数の木
のそれぞれについて潜在的な圧縮率を判定するステップ
と、前記次のデータ列を符号化するために、前記複数の
木の中の、最も低い前記判定された圧縮率を有する木を
使用するステップとを含むことを特徴とする、上記
(1)に記載の方法。 (3)前記次のデータ列を用いて、前記次のデータ列に
先行する前記データ列の前記コンテキストに対応する前
記複数の木のそれぞれを拡張するステップをさらに含
む、上記(2)に記載の方法。 (4)前記使用するステップがさらに、前記選択された
句を指すポインタを作るステップを含むことを特徴とす
る、上記(2)に記載の方法。 (5)データ処理システムにおいて、符号化される句の
それぞれに関連するヒストリの関数として、前記符号化
される句の辞書を展開し、記憶するステップと、統計的
に最も高い潜在圧縮を提供すると判定される前記辞書の
部分集合を選択するステップと、次の句を符号化するた
め、前記部分集合内の、前記次の句のヒストリに対応す
る特定のヒストリを使用するステップとを含む、データ
を圧縮するための方法。 (6)前記選択するステップがさらに、前に符号化され
た句に関して前記辞書の部分集合の圧縮効率を比較する
ステップを含むことを特徴とする、上記(5)に記載の
方法。 (7)前記選択するステップがさらに、(a)前記辞書
のそれぞれの平均深さを計算するステップと、(b)前
記辞書のそれぞれの中で可能な句ポインタの最長の長さ
を計算するステップと、(c)前記辞書のそれぞれの潜
在的な圧縮率を導出するために、(a)に対する(b)
の比を計算するステップとを含むことを特徴とする、上
記(5)に記載の方法。 (8)前記次の句を圧縮するために、前記選択された部
分集合内の句を選択するステップと、前記選択された句
に対応するポインタを計算するステップと、前記特定の
ヒストリを含む木のそれぞれの根にトークンを追加する
ステップと、前記次の句に含まれる記号の関数として、
すべての木のトークンを移動するステップとをさらに含
む、上記(5)に記載の方法。 (9)コンテキスト依存辞書のそれぞれが前に符号化さ
れたデータのヒストリに関連する、複数の前記コンテキ
スト依存辞書を展開し、記憶するための手段と、次のデ
ータ列に関連する特定のヒストリの関数として前記次の
データ列を符号化するための手段とを含み、前記符号化
手段がさらに、選択された部分集合のそれぞれが、前記
次のデータ列に関連する前記特定のヒストリに対応する
辞書を含む、前記辞書の前記選択された部分集合につい
て潜在的圧縮率を計算するための手段と、最も低い潜在
的圧縮率を有する前記選択された部分集合内の部分集合
を選択するための手段と、前記次のデータ列を圧縮する
ために、前記特定のヒストリに対応する前記選択された
部分集合内の辞書を利用するための手段とを含むことを
特徴とするデータを圧縮するためのシステム。 (10)前記複数の辞書が、符号化された句の全体辞書
を形成するように相互に関連していることを特徴とす
る、上記(9)に記載のシステム。 (11)データ処理システムにおいて、辞書ベース・デ
ータ圧縮処理によって前に圧縮されたデータを圧縮解除
するための方法であって、前記前に圧縮されたデータ
が、前記圧縮処理中に形成された複数のコンテキスト依
存辞書内に含まれる句を参照するポインタ・データから
なり、前記辞書のそれぞれが、前記前に圧縮されたデー
タのヒストリに関連することを特徴とし、前記複数のコ
ンテキスト依存辞書内の対応句を参照するために前記ポ
インタ・データを利用することによって前記圧縮された
データを復号するステップと、前記データを形成するた
めに前記参照された句を組み合わせるステップとを含む
方法。 (12)辞書ベース・データ圧縮処理によって前に圧縮
されたデータを圧縮解除するためのシステムであって、
前記前に圧縮されたデータが、前記圧縮処理中に形成さ
れた複数のコンテキスト依存辞書内に含まれる句を参照
するポインタ・データからなり、前記辞書のそれぞれ
が、前記前に圧縮されたデータのヒストリに関連するこ
とを特徴とし、前記複数のコンテキスト依存辞書内の対
応句を参照するために前記ポインタ・データを使用する
ことによって前記圧縮されたデータを復号するための手
段と、前記データを形成するため前記参照された句を組
み合わせるための手段とを含むシステム。 (13)メモリと、前記メモリに結合された入出力イン
ターフェースと、データ句の圧縮を潜在的に達成するた
めに、受け取った前記データ句を符号化するための、前
記メモりおよび前記インターフェースに結合されたプロ
セッサとを含み、前記プロセッサが、符号化された句の
それぞれに関連するヒストリの関数として前記符号化さ
れた句の辞書を展開し、前記辞書を前記メモリ内に記憶
し、前記辞書の部分集合のうちのどれが、統計的に次の
句の最も高い圧縮を提供するかを判定し、前記次の句を
符号化するために前記部分集合内の辞書を選択するた
め、圧縮される前記次の句に関連する特定のヒストリを
使用するように動作可能であることを特徴とする、デー
タ処理システム。 (14)前記符号化された句が、前記メモリに記憶され
ることを特徴とする、上記(13)に記載のデータ処理
システム。 (15)前記符号化された句が、前記データ処理システ
ムに結合された記憶媒体に記憶されることを特徴とす
る、上記(13)に記載のデータ処理システム。 (16)データ処理システムにおいて、ある期間にわた
って観察される記号のストリーム内の未知の記号の次の
シーケンスを予測する方法であって、辞書のうちの複数
がコンテキスト依存である、前に観察された記号の前記
辞書を展開するステップと、前記辞書の複数の部分集合
のうちのどれが、統計的に前記記号の次のシーケンスの
最も正確な予測を提供するかを判定するステップと、前
記記号の次のシーケンスを予測するために、前記判定さ
れた部分集合内の辞書を選択するステップとを含む方
法。 (17)ある期間にわたって観察される記号のストリー
ム内の未知の記号の次のシーケンスを予測するためのシ
ステムであって、辞書のうちの複数がコンテキスト依存
である、前に観察された記号の前記辞書を展開する手段
と、前記辞書の複数の部分集合のうちのどれが、統計的
に前記記号の次のシーケンスの最も正確な予測を提供す
るかを判定する手段と、前記記号の次のシーケンスを予
測するために、前記判定された部分集合内の辞書を選択
する手段とを含むシステム。 (18)辞書のそれぞれが前に「圧縮」されたデータ句
を含み、複数の前記辞書のうちの少なくとも1つがコン
テキスト依存である、前記複数の辞書を展開するための
第1命令セットと、次のデータ列の統計的に最適と見積
もられる「圧縮」を提供する、前記複数の辞書の基礎集
合を選択するための第2命令セットと、前記複数の辞書
のうちの選択された1つが、前記次のデータ列のコンテ
キストに対応する、前記次のデータ列を「圧縮」するた
めの前記基礎集合内の前記複数の辞書化のうちの前記1
つを選択するための第3命令セットと、前記複数の辞書
のうちの前記選択された1つに含まれる前記前に「圧
縮」されたデータ句のうちの1つを指すポインタを使用
することによって、前記次のデータ列を「圧縮」するた
めの第4命令セットとを含む、コンピュータ記憶媒体に
記憶された、データを「圧縮」するためのコンピュータ
・プログラム。 (19)前記コンピュータ記憶媒体が、磁気記憶媒体で
あることを特徴とする、上記(18)に記載のコンピュ
ータ・プログラム。 (20)前記コンピュータ記憶媒体が、光記憶媒体であ
ることを特徴とする、上記(18)に記載のコンピュー
タ・プログラム。
【0175】
【発明の効果】本発明によれば収束速度が早く、短いシ
ーケンスに対してより効率的なデータ圧縮技法を提供す
ることができる。
【図面の簡単な説明】
【図1】特定のデータ列に対する従来技術の辞書木を示
す図である。
【図2】D=3の深さを有するヒストリ木を示す図であ
る。
【図3】基礎集合を示す図である。
【図4】本発明の代替実施例の流れ図である。
【図5】本発明の好ましい実施例の流れ図である。
【図6】本発明の代替実施例の流れ図である。
【図7】本発明を実施するためのデータ処理システムを
示す図である。
【図8】本発明の実施例のブロック図である。
【図9】処理2の実施中のさまざまなコンテキスト依存
辞書の成長を示す図である。
【図10】処理2の実施中のさまざまなコンテキスト依
存辞書の成長を示す図である。
【図11】処理2の実施中のさまざまなコンテキスト依
存辞書の成長を示す図である。
【図12】処理2の実施中のさまざまなコンテキスト依
存辞書の成長を示す図である。
【図13】処理2の実施中のさまざまなコンテキスト依
存辞書の成長を示す図である。
【図14】処理2の実施中のさまざまなコンテキスト依
存辞書の成長を示す図である。
【図15】本発明の処理3によるコンテキスト依存辞書
の成長を示す図である。
【図16】本発明の処理3によるコンテキスト依存辞書
の成長を示す図である。
【図17】本発明の処理3によるコンテキスト依存辞書
の成長を示す図である。
【図18】本発明の処理3によるコンテキスト依存辞書
の成長を示す図である。
【図19】本発明の処理3によるコンテキスト依存辞書
の成長を示す図である。
【符号の説明】
700 ハードウェア・システム 701 CPU 702 主記憶 703 ビデオ・メモリ 704 キーボード 705 マウス(またはライト・ペン、電子ペン、デー
タ・タブレットなど) 706 大容量記憶装置 707 システム・バス 708 表示装置 711 入出力ポート 800 エンコーダ 801 デコーダ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョイ・アロイシウス・トマス アメリカ合衆国10607 ニューヨーク州ホ ワイト・プレーンズ ビルトム・ロード 21 (72)発明者 パンテリス・ジー・ツォウカス アメリカ合衆国10549 ニューヨーク州マ ウント・キスコ フォックス・デン・ロー ド 56

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいて、 データ・ストリームの符号化中に句の辞書を展開し、記
    憶するステップと、 次のデータ列に先行する前記データ・ストリームのコン
    テキストの関数としての前記データ・ストリーム内の前
    記次のデータ列の符号化のために前記辞書内の前記句の
    うちの1つを選択するステップと、 前記選択された句を用いて前記次のデータ列を符号化す
    るステップとを含む、データを圧縮するための方法。
  2. 【請求項2】前記句の辞書が、符号化された句の複数の
    木を含み、前記複数の木のそれぞれが、特定のコンテキ
    ストに対応し、前記選択するステップがさらに、 前記複数の木のそれぞれについて潜在的な圧縮率を判定
    するステップと、 前記次のデータ列を符号化するために、前記複数の木の
    中の、最も低い前記判定された圧縮率を有する木を使用
    するステップとを含むことを特徴とする、請求項1に記
    載の方法。
  3. 【請求項3】前記次のデータ列を用いて、前記次のデー
    タ列に先行する前記データ列の前記コンテキストに対応
    する前記複数の木のそれぞれを拡張するステップをさら
    に含む、請求項2に記載の方法。
  4. 【請求項4】前記使用するステップがさらに、前記選択
    された句を指すポインタを作るステップを含むことを特
    徴とする、請求項2に記載の方法。
  5. 【請求項5】データ処理システムにおいて、 符号化される句のそれぞれに関連するヒストリの関数と
    して、前記符号化される句の辞書を展開し、記憶するス
    テップと、 統計的に最も高い潜在圧縮を提供すると判定される前記
    辞書の部分集合を選択するステップと、 次の句を符号化するため、前記部分集合内の、前記次の
    句のヒストリに対応する特定のヒストリを使用するステ
    ップとを含む、データを圧縮するための方法。
  6. 【請求項6】前記選択するステップがさらに、前に符号
    化された句に関して前記辞書の部分集合の圧縮効率を比
    較するステップを含むことを特徴とする、請求項5に記
    載の方法。
  7. 【請求項7】前記選択するステップがさらに、 (a)前記辞書のそれぞれの平均深さを計算するステッ
    プと、 (b)前記辞書のそれぞれの中で可能な句ポインタの最
    長の長さを計算するステップと、 (c)前記辞書のそれぞれの潜在的な圧縮率を導出する
    ために、(a)に対する(b)の比を計算するステップ
    と を含むことを特徴とする、請求項5に記載の方法。
  8. 【請求項8】前記次の句を圧縮するために、前記選択さ
    れた部分集合内の句を選択するステップと、 前記選択された句に対応するポインタを計算するステッ
    プと、 前記特定のヒストリを含む木のそれぞれの根にトークン
    を追加するステップと、 前記次の句に含まれる記号の関数として、すべての木の
    トークンを移動するステップとをさらに含む、請求項5
    に記載の方法。
  9. 【請求項9】コンテキスト依存辞書のそれぞれが前に符
    号化されたデータのヒストリに関連する、複数の前記コ
    ンテキスト依存辞書を展開し、記憶するための手段と、 次のデータ列に関連する特定のヒストリの関数として前
    記次のデータ列を符号化するための手段とを含み、 前記符号化手段がさらに、 選択された部分集合のそれぞれが、前記次のデータ列に
    関連する前記特定のヒストリに対応する辞書を含む、前
    記辞書の前記選択された部分集合について潜在的圧縮率
    を計算するための手段と、 最も低い潜在的圧縮率を有する前記選択された部分集合
    内の部分集合を選択するための手段と、 前記次のデータ列を圧縮するために、前記特定のヒスト
    リに対応する前記選択された部分集合内の辞書を利用す
    るための手段とを含むことを特徴とするデータを圧縮す
    るためのシステム。
  10. 【請求項10】前記複数の辞書が、符号化された句の全
    体辞書を形成するように相互に関連していることを特徴
    とする、請求項9に記載のシステム。
  11. 【請求項11】データ処理システムにおいて、辞書ベー
    ス・データ圧縮処理によって前に圧縮されたデータを圧
    縮解除するための方法であって、前記前に圧縮されたデ
    ータが、前記圧縮処理中に形成された複数のコンテキス
    ト依存辞書内に含まれる句を参照するポインタ・データ
    からなり、前記辞書のそれぞれが、前記前に圧縮された
    データのヒストリに関連することを特徴とし、 前記複数のコンテキスト依存辞書内の対応句を参照する
    ために前記ポインタ・データを利用することによって前
    記圧縮されたデータを復号するステップと、 前記データを形成するために前記参照された句を組み合
    わせるステップとを含む方法。
  12. 【請求項12】辞書ベース・データ圧縮処理によって前
    に圧縮されたデータを圧縮解除するためのシステムであ
    って、前記前に圧縮されたデータが、前記圧縮処理中に
    形成された複数のコンテキスト依存辞書内に含まれる句
    を参照するポインタ・データからなり、前記辞書のそれ
    ぞれが、前記前に圧縮されたデータのヒストリに関連す
    ることを特徴とし、 前記複数のコンテキスト依存辞書内の対応句を参照する
    ために前記ポインタ・データを使用することによって前
    記圧縮されたデータを復号するための手段と、 前記データを形成するため前記参照された句を組み合わ
    せるための手段とを含むシステム。
  13. 【請求項13】メモリと、 前記メモリに結合された入出力インターフェースと、 データ句の圧縮を潜在的に達成するために、受け取った
    前記データ句を符号化するための、前記メモりおよび前
    記インターフェースに結合されたプロセッサとを含み、 前記プロセッサが、 符号化された句のそれぞれに関連するヒストリの関数と
    して前記符号化された句の辞書を展開し、 前記辞書を前記メモリ内に記憶し、 前記辞書の部分集合のうちのどれが、統計的に次の句の
    最も高い圧縮を提供するかを判定し、 前記次の句を符号化するために前記部分集合内の辞書を
    選択するため、圧縮される前記次の句に関連する特定の
    ヒストリを使用するように動作可能であることを特徴と
    する、データ処理システム。
  14. 【請求項14】前記符号化された句が、前記メモリに記
    憶されることを特徴とする、請求項13に記載のデータ
    処理システム。
  15. 【請求項15】前記符号化された句が、前記データ処理
    システムに結合された記憶媒体に記憶されることを特徴
    とする、請求項13に記載のデータ処理システム。
  16. 【請求項16】データ処理システムにおいて、ある期間
    にわたって観察される記号のストリーム内の未知の記号
    の次のシーケンスを予測する方法であって、 辞書のうちの複数がコンテキスト依存である、前に観察
    された記号の前記辞書を展開するステップと、 前記辞書の複数の部分集合のうちのどれが、統計的に前
    記記号の次のシーケンスの最も正確な予測を提供するか
    を判定するステップと、 前記記号の次のシーケンスを予測するために、前記判定
    された部分集合内の辞書を選択するステップとを含む方
    法。
  17. 【請求項17】ある期間にわたって観察される記号のス
    トリーム内の未知の記号の次のシーケンスを予測するた
    めのシステムであって、 辞書のうちの複数がコンテキスト依存である、前に観察
    された記号の前記辞書を展開する手段と、 前記辞書の複数の部分集合のうちのどれが、統計的に前
    記記号の次のシーケンスの最も正確な予測を提供するか
    を判定する手段と、 前記記号の次のシーケンスを予測するために、前記判定
    された部分集合内の辞書を選択する手段とを含むシステ
    ム。
  18. 【請求項18】辞書のそれぞれが前に「圧縮」されたデ
    ータ句を含み、複数の前記辞書のうちの少なくとも1つ
    がコンテキスト依存である、前記複数の辞書を展開する
    ための第1命令セットと、 次のデータ列の統計的に最適と見積もられる「圧縮」を
    提供する、前記複数の辞書の基礎集合を選択するための
    第2命令セットと、 前記複数の辞書のうちの選択された1つが、前記次のデ
    ータ列のコンテキストに対応する、前記次のデータ列を
    「圧縮」するための前記基礎集合内の前記複数の辞書化
    のうちの前記1つを選択するための第3命令セットと、 前記複数の辞書のうちの前記選択された1つに含まれる
    前記前に「圧縮」されたデータ句のうちの1つを指すポ
    インタを使用することによって、前記次のデータ列を
    「圧縮」するための第4命令セットとを含む、コンピュ
    ータ記憶媒体に記憶された、データを「圧縮」するため
    のコンピュータ・プログラム。
  19. 【請求項19】前記コンピュータ記憶媒体が、磁気記憶
    媒体であることを特徴とする、請求項18に記載のコン
    ピュータ・プログラム。
  20. 【請求項20】前記コンピュータ記憶媒体が、光記憶媒
    体であることを特徴とする、請求項18に記載のコンピ
    ュータ・プログラム。
JP07135193A 1994-06-02 1995-06-01 データ情報を圧縮するためのシステムおよび方法 Expired - Lifetime JP3083730B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US253047 1994-06-02
US08/253,047 US5635931A (en) 1994-06-02 1994-06-02 System and method for compressing data information

Publications (2)

Publication Number Publication Date
JPH07336237A true JPH07336237A (ja) 1995-12-22
JP3083730B2 JP3083730B2 (ja) 2000-09-04

Family

ID=22958621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07135193A Expired - Lifetime JP3083730B2 (ja) 1994-06-02 1995-06-01 データ情報を圧縮するためのシステムおよび方法

Country Status (4)

Country Link
US (1) US5635931A (ja)
EP (1) EP0685822B1 (ja)
JP (1) JP3083730B2 (ja)
DE (1) DE69522497T2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815096A (en) * 1995-09-13 1998-09-29 Bmc Software, Inc. Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
US5838963A (en) * 1995-10-25 1998-11-17 Microsoft Corporation Apparatus and method for compressing a data file based on a dictionary file which matches segment lengths
US6088699A (en) * 1998-04-22 2000-07-11 International Business Machines Corporation System for exchanging compressed data according to predetermined dictionary codes
US6125351A (en) * 1998-05-15 2000-09-26 Bios Group, Inc. System and method for the synthesis of an economic web and the identification of new market niches
US6100825A (en) * 1998-12-31 2000-08-08 Microsoft Corporation Cluster-based data compression system and method
AU2001241321A1 (en) * 2000-03-03 2001-09-12 Vill Ab Infinite level meta-learning through compression
WO2003043202A1 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Method of decoding a variable-length codeword sequence
US7313817B2 (en) * 2003-06-17 2007-12-25 Lockheed Martin Corporation Data transmission system utilizing efficient complexity estimation of the kolmogorov complexity for data transmission
US6917315B2 (en) * 2003-10-09 2005-07-12 Nokia Corporation Model based code compression
US7039394B2 (en) * 2003-11-25 2006-05-02 Good Technology, Inc. Communication system and method for compressing information sent by a communication device to a target portable communication device
US7426457B2 (en) * 2004-01-29 2008-09-16 Hewlett-Packard Development Company, L.P. FSM closure of generalized tree models
US20050246362A1 (en) * 2004-05-03 2005-11-03 Borland Devin P System and method for dynamci log compression in a file system
US20060106870A1 (en) * 2004-11-16 2006-05-18 International Business Machines Corporation Data compression using a nested hierarchy of fixed phrase length dictionaries
FR2888350A1 (fr) * 2005-07-05 2007-01-12 St Microelectronics Sa Generation de nombres de facon non deterministe
US8046162B2 (en) * 2005-11-04 2011-10-25 Honda Motor Co., Ltd. Data broadcast method for traffic information
US7444596B1 (en) 2007-11-29 2008-10-28 International Business Machines Corporation Use of template messages to optimize a software messaging system
FR2926378B1 (fr) * 2008-01-14 2013-07-05 Canon Kk Procede et dispositif de traitement pour l'encodage d'un document de donnees hierarchisees
FR2929778B1 (fr) * 2008-04-07 2012-05-04 Canon Kk Procedes et dispositifs de codage et de decodage binaire iteratif pour documents de type xml.
FR2930861B1 (fr) * 2008-05-05 2012-10-19 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de decodage d'un signal mettant en oeuvre une construction progressive d'un arbre de decodage, produit programme d'ordinateur et signal correspondants
US9020262B2 (en) 2012-07-31 2015-04-28 Hewlett-Packard Development Company, L.P. Symbol compression using conditional entropy estimation
WO2018226221A1 (en) 2017-06-07 2018-12-13 Google Llc Context-dependent shared dictionaries
US11227520B1 (en) * 2020-08-20 2022-01-18 Microsoft Technology Licensing, Llc Derivative-based encoding for scanning mirror timing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US4814746A (en) * 1983-06-01 1989-03-21 International Business Machines Corporation Data compression method
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4843389A (en) * 1986-12-04 1989-06-27 International Business Machines Corp. Text compression and expansion method and apparatus
US4876541A (en) * 1987-10-15 1989-10-24 Data Compression Corporation Stem for dynamically compressing and decompressing electronic data
US5254990A (en) * 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
US5373290A (en) * 1991-09-25 1994-12-13 Hewlett-Packard Corporation Apparatus and method for managing multiple dictionaries in content addressable memory based data compression
US5384568A (en) * 1993-12-02 1995-01-24 Bell Communications Research, Inc. Data compression

Also Published As

Publication number Publication date
JP3083730B2 (ja) 2000-09-04
EP0685822A3 (en) 1996-10-02
DE69522497D1 (de) 2001-10-11
EP0685822B1 (en) 2001-09-05
EP0685822A2 (en) 1995-12-06
US5635931A (en) 1997-06-03
DE69522497T2 (de) 2002-05-16

Similar Documents

Publication Publication Date Title
JP3083730B2 (ja) データ情報を圧縮するためのシステムおよび方法
Nelson et al. The data compression book 2nd edition
US6597812B1 (en) System and method for lossless data compression and decompression
US5532694A (en) Data compression apparatus and method using matching string searching and Huffman encoding
EP0673122B1 (en) Coding apparatus
JP2544895B2 (ja) 分散デ―タ処理システム
USRE41152E1 (en) Lempel-Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
US10177783B1 (en) Lossless compression of a content item using a neural network trained on content item cohorts
WO1998006028A9 (en) A lempel-ziv data compression technique utilizing a dicionary pre-filled with fequent letter combinations, words and/or phrases
US6801141B2 (en) Method for lossless data compression using greedy sequential context-dependent grammar transform
Valmeekam et al. Llmzip: Lossless text compression using large language models
JPS6356726B2 (ja)
Volf Weighting techniques in data compression: Theory and algorithms
JP2000269822A (ja) データ圧縮装置、及びデータ復元装置
Hassan et al. Arithmetic N-gram: an efficient data compression technique
Fruchtman et al. Bidirectional Adaptive Compression.
Al-Bahadili et al. A bit-level text compression scheme based on the ACW algorithm
Hoang et al. Dictionary selection using partial matching
US6262675B1 (en) Method of compressing data with an alphabet
Fruchtman et al. Bidirectional adaptive compression
De Agostino Parallelism and dictionary based data compression
CN112506876A (zh) 一种支持sql查询的无损压缩查询方法
JP2590287B2 (ja) データ圧縮方法およびデータ圧縮装置
Mahmoudi et al. Comparison of Compression Algorithms in text data for Data Mining
Shamir Sequential universal lossless techniques for compression of patterns and their description length

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080630

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080630

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130630

Year of fee payment: 13

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

EXPY Cancellation because of completion of term