JP2003510881A - データを展開するのに要する時間を短縮するための方法と装置 - Google Patents

データを展開するのに要する時間を短縮するための方法と装置

Info

Publication number
JP2003510881A
JP2003510881A JP2001525853A JP2001525853A JP2003510881A JP 2003510881 A JP2003510881 A JP 2003510881A JP 2001525853 A JP2001525853 A JP 2001525853A JP 2001525853 A JP2001525853 A JP 2001525853A JP 2003510881 A JP2003510881 A JP 2003510881A
Authority
JP
Japan
Prior art keywords
code
string
data
memory
character
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.)
Pending
Application number
JP2001525853A
Other languages
English (en)
Inventor
リンゼイ ヨーク ケネス
リンゼイ ヨーク セアー
Original Assignee
ユニシス コーポレーション
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 ユニシス コーポレーション filed Critical ユニシス コーポレーション
Publication of JP2003510881A publication Critical patent/JP2003510881A/ja
Pending 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

Landscapes

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

Abstract

(57)【要約】 入力コード値のデコードに使用されるコードを構築または複製するためのセルフコンパイル辞書を備えるタイプのデータ展開システムに、デコードされた文字列を表す複数の文字を格納するためのデコードされた文字列辞書またはメモリを備える。デコードされた文字列は、文字列コードを置き換える修正された辞書に格納するか、または別の可変長メモリに所定の長さを持ちファインダメモリを使用してアクセスされる文字のブロックとして格納することができる。デコードされた文字列が長すぎて固定長メモリに格納できない場合、従来のデコーダ辞書を使用して、復元されたデータストリームへの直接アクセスおよび読み出し用に格納される文字列のサイズを小さくできる。

Description

【発明の詳細な説明】
【0001】 (発明の背景) 1.関連出願 本発明は、1999年7月30日出願の米国同時係属出願第09/36442
7号「Method and Apparatus For Reducing
The Time Required For Compressing D
ata」に関係しており、前記出願は引用により本発明に組み込まれている。
【0002】 2.発明の分野 本発明は、データ圧縮システム(data compression sys
tems)に関する。より具体的には、本発明は損失を少なくしたデータ展開シ
ステムと、自己構築辞書(self−building dictionary
)を採用して文字列コードおよび文字コードを格納するシステムにおいてコード
化されたデータのストリームを展開する速度を高めるための方法と手段に関する
【0003】 3.従来技術の説明 従来、損失の少ないデータ圧縮アルゴリズムが知られているが、同様にデータ
コンプレッサ(data compressor)で生成された圧縮コードをデ
コードするアルゴリズムも知られていた。最もよく知られている損失の少ないデ
ータ圧縮アルゴリズムは適応型であり、コンプレッサ(compressor)
とデコンプレッサ(decompressor)で文字列辞書を使用している。
【0004】 圧縮システムは、文字列を生成し、辞書内で最長一致文字列を検索し、見つか
った最長一致文字列に対応する文字列コードを出力する。最長一致文字列は、不
一致を生じた拡張文字とともに圧縮システム辞書に格納される。コードカウンタ
により、辞書に格納されている文字列に次に高い文字列コードが割り当てられる
。圧縮システムはさらに、単一文字コードが最長一致文字列として出現したとき
にその単一文字コードを出力する。
【0005】 展開システムは、文字列および/または単一文字コードのコードのみを受け取
る。Lemple Ziv Welch (LZW)データ圧縮システムでは、
文字コードまたは最小一致文字列コードのみを、すべての単一文字コードで初期
化されるのが好ましい辞書を備える展開システムに出力し、複数文字列コードの
みを最初に検索し、コンプレッサシステムから文字コードを展開システムに送る
。LZWの説明については、「A Technique for High P
erformance Data Compression」(著者Terry
A.Welch、IEEE Computer Volume 17、Num
ber 6、1984年6月)を参照されたい。
【0006】 LZWコンプレッサは、新しいエントリを最後に一致した文字列コード+拡張
文字コードとして辞書に格納する。ただし、コンプレッサは最後に一致した文字
列コードをデコンプレッサに送り、拡張文字を送らない。デコンプレッサは、コ
ンプレッサよりも1ステップ後に配置する必要があり、また2つの順次入力コー
ド(sequential input codes)をバッファリングする必
要がある。受け取った前の文字列コードと次のまたは新規のコードの第1の文字
とのペアを作り、絵デコンプレッサ文字列辞書内にエントリを形成する。
【0007】 この操作のシーケンスの問題は、圧縮システムから受け取る文字列コードが長
くなり、多数の小さな部分文字列コードをデコードする必要があるという点であ
る。長い文字列コードが50個を超える文字(バイト)を表す。したがってほと
んどそれと同数の部分文字列コードとなることもまれではない。そのような長い
文字列コードで表される50個の文字をデコードするには、辞書を覗いて、すべ
ての部分文字列コードがデコードされ、尽きるまで各サブコードとその拡張文字
を取り出す必要がある。部分文字列コードを新規部分文字列とその拡張文字に展
開するごとに拡張文字1つのみが出力データストリームに出力され、展開システ
ムはときに応じてすでに見た長い文字列コードのデコードを何回も繰り返すこと
ができる。
【0008】 複数の文字列を複数回に展開するために展開システム内で無駄に費やされる時
間をなくすることが望ましい。別の言い方をすると、繰り返し部分文字列コード
を展開するのではなくすでに見た長い文字列コードを表す個々の文字の集合を取
り出すのが望ましいということである。
【0009】 (発明の概要) 従来可能であった以上に高速に圧縮データをデコードする方法と手段を提供す
ることが本発明の主要な目的である。
【0010】 また、展開システムで部分文字列コードを展開することにより長い文字列コー
ドの繰り返しデコードをなくすことも本発明の主要な目的である。
【0011】 長い文字列コード内のほとんどの部分文字列のデコードをなくすことが本発明
の目的である。
【0012】 データデコンプレッサで冗長なデコード/展開操作をなくすことも本発明の目
的である。
【0013】 既知のまたはすでに見た長い文字列コードを表すすべての文字が格納されてい
る高速アクセスメモリを備えることも本発明の目的である。
【0014】 展開システムにデータをダウンロードするのと同じ速さでWebサイト上に格
納されている圧縮データの完全なページをデコードすることができるデコードシ
ステムを備えることも本発明の他の目的である。
【0015】 圧縮データコードのブロックとしてブックまたはカタログのページをデコード
する方法と手段を提供することが本発明の他の目的である。
【0016】 バッファメモリを増設せずに展開のリアルタイムビデオイメージ速度が可能な
辞書タイプのデコンプレッサを備えることも本発明の他の目的である。
【0017】 本発明のこれらの目的およびその他の目的によれば、新規デコンプレッサは2
つの部分からなる辞書を備える。文字列辞書を使用して、文字列コードおよび拡
張文字の形式で圧縮データを構築または複製する。また、デコード文字列辞書ま
たはメモリを用意して、単一サイクルで文字のブロックとしてアクセスできる受
信文字列コードを表すまたは含まれる文字すべてを文字列コードで表されるアド
レスに格納する。
【0018】 入力データ文字列内の各圧縮された入力コードをポインタまたはアドレスに変
換し、これをデコード文字列辞書内のデータのアクセスおよび利用デバイスへの
文字のブロックの転送に使用する。情報のブロックがデコード文字列辞書内にな
い場合、ロジック手段により、デコードで最初に文字列をデコードし、異なる形
式のデコード文字列を同じコードポインタまたはアドレスにある文字列辞書およ
び/またはデコード文字列辞書の両方に格納する。
【0019】 (好ましい実施形態の詳細な説明) 図1と、圧縮する文字列11を示す圧縮テーブル10を参照する。文字と文字
の間のダッシュ「−」は、文字と文字の間のスペースを示す手段であって、ダッ
シュとして符号化される文字ではない。テーブル10は、一番左の列12がLe
mpel Ziv Welchのデータ圧縮アルゴリズムを使用して不一致が発
生する前に文字列11に出現する最長文字列の縦の列である4つの縦の列を持つ
ことを示している。たとえば、「−WED」が最初の4桁にある文字列11を観
察すると、「−W」はすべての単一文字列またはLempel Ziv Wel
ch圧縮アルゴリズムを使用して文字列で初期化されている辞書に見つからない
最初の文字列である。第2の行で、不一致の原因となったWがWEで示されてい
る次の文字列内の第1の文字として第3の行に移される。新しい文字列不一致が
出現するごとに、その文字列が文字列辞書内の新しいコードアドレスまたはコー
ド番号に格納される。たとえば、列13で−Wがコードアドレス256に格納さ
れ、WEがコードアドレス257に格納される。列14に示されている文字は、
文字列辞書内に、文字列+拡張文字として格納される。コード257にあるプレ
フィックス文字列Wは辞書内で見つかった最長一致文字列を表し、列15に示さ
れているようにデコンプレッサまたは利用デバイスに出力される。最後の行に示
されているように最後の文字の集合または文字が出現すると、これはTを含む。
Tは、文字列11の最後であり、辞書内に文字または文字のコードとして格納さ
れ、最後の文字Tとして出力される。
【0020】 コンプレッサのところで実行される簡素化された操作のシーケンスについて説
明したが、これ以降説明するデコンプレッサは、列15に示されているコードア
ドレスのみを受信したとしても文字列+拡張文字として格納されている列14の
文字を複製することに注意されたい。
【0021】 図2を参照すると、これは4つの縦の列を持つデコンプレッサテーブル16を
示している。一番左の縦の列17は、コンプレッサからデコンプレッサに届いた
列15内の個別のコードのシーケンスまたはシリーズを表す。縦の列18は、受
け取ったコードを辞書に書き込んでいるときにコードカウンタによって生成され
るコード番号を表す。縦の列19は、列19の左に示されている辞書内の番号が
振られたコードカウントとのところに書き込まれている拡張文字を表す。一番右
の列22は、列19に示されているは文字列Sをデコードするときに生成される
出力文字を表す。文字または文字列がそれぞれ列17のデコンプレッサに届いた
ときに、第1の文字が列19に示されているように拡張文字として辞書に挿入さ
れ、列18に示されているようにコードカウントが割り当てられる。列19内の
プレフィックス文字列Sはすでに受け取っており、列19に示されている文字ま
たは文字列を表す。コードカウント256から260を展開辞書に格納されてい
る情報と比較すると、図1に示されているようにコンプレッサ辞書の列14に格
納されている情報と同一であることが観察される。したがって、コードを列17
で受け取るといつでも、受け取ったコードカウントによりデコンプレッサ文字列
辞書内で検索し、列19に示されている情報を使用してデコードすることができ
る。たとえば、列17の5番目の行に示されているようにコード256を受け取
った場合、デコンプレッサ辞書のコードカウント256にあることが知られ、情
報または文字は、圧縮辞書と一致する−Wである。また、列17内に受け取った
コードまたは文字は、このコードカウントの拡張文字を含み、前のコードカウン
トの拡張文字とともに使用するプレフィックス文字列コードを形成する。したが
って、以下で説明する1つの例外があるが、展開システムは図1のコンプレッサ
の列14に示されている正確な文字列を複製することができる。デコンプレッサ
で文字列辞書を構築した後、列19内でプレフィックス文字列S部分をデコード
し、そのプレフィックス文字列Sを出力して、列21内の同一の入力文字列11
を出力として複製することが可能である。
【0022】 Terry Welchの出版物(上記)で使用されている従来技術のデコン
プレッサのブロック図を示す図3を参照して、デコーダ辞書を構築するプロセス
について説明し、さらに受け取った文字列コードの個々の文字の復元方法につい
て説明する。
【0023】 デコンプレッサ20はデコンプレッサへの入力コードを受け取る入力ライン2
2を持つことが示されている。また、次の文字列Snとしてレジスタ23に格納
されている入力コードが示されている。以前にSnだった文字列は文字列Spま
たは前の文字列を格納する最後のまたは前のコードレジスタ24内に置かれてい
ることが示されている。デコンプレッサ20の動作時に、ライン22の文字列S
nはRAMアドレスジェネレータ(RAM address generato
r)25に結合され、これにより、ライン26のポインタアドレスが文字列テー
ブル27に出力される。コードアドレスによってライン28で、拡張文字として
文字列テーブル27の一番右部分に格納される拡張文字を出力するために使用さ
れるデコードされた第1の文字コードが出力される。レジスタ24内の最後また
は前の文字列Spは、ライン29上の前の文字列コードを供給し、前記コードは
文字列テーブル27の一番左部分のコードカウンタ35で出力されるコードアド
レスのところにプレフィックスとして格納される。
【0024】 レジスタ24内のコードSpは、現在文字列テーブル27に格納されているが
、さらにデコードされてライン31上で逆順に出力文字列が出力され、出力スタ
ック32に置かれる。最後の文字がブロック34のライン33で検知または感知
されると、これは文字列Spのデコードシーケンスを終了する。次にスタック3
2内の文字列Spを列21に示されている適切な順序でスタック32から読み出
すことができる。
【0025】 図3を使用して操作の従来技術によるシーケンスを説明したが、文字列辞書2
7は、ライン22および26上の入力コードにより示されるアドレスで情報が与
えられるが、スタック32に逆順に置かれている文字は最後または前のコードS
pを表す。したがって、デコードプロセスは、辞書コードカウントの背後にある
1ステップまたはコードカウントである。前のコードSpが部分文字列と拡張文
字からなる文字列の場合、Spをデコードするステップはすべての部分文字列を
展開し、Spの最後の文字(たとえば先頭文字)がブロック34で検知されるま
で拡張文字をスタック32に積むステップを含む。
【0026】 図4を参照すると、これはデコーダ辞書を構築し、デコード文字列コードを格
納するプロセスを説明するために使用されている本発明による一般的なデコンプ
レッサの概略ブロック図を示している。改良されたデコーダ20Aは、次のコー
ドSnをバッファレジスタ37に送るコード値36の入力文字列を含むことが示
されている。文字列コードSnは使用された後、前の文字列レジスタ38に移動
される。レジスタ37内の文字列Snの先頭の文字はロジックブロック39で読
み込まれ、ブロック41に送られ、このブロックは次のコードアドレスカウンタ
35Aにより生成されたポインタアドレスの一番右の拡張文字として文字列テー
ブル27Aに格納する拡張文字を受け取る。文字列をフェッチし、バッファ37
内に置くのに要する時間は時間T1で表され、バッファ37および38を設定す
るのに要する時間は時間T2で表され、これらの時間は両方とも考察されている
システムについて修正される。文字列Spがロジックブロック42で示されてい
るようにデコードされるときに、この時間は変数としてT3で示されるが、それ
は特定のコードSpが長いコード列の場合があり、以下で説明するように拡張文
字を抽出し、新しい部分文字列を生成するために何回か文字列辞書27Aを参照
する必要があるサブコードを含むからである。ブロック42のデコードのプロセ
スは、従来技術では文字列コードSpまたは同一文字列コードをデコードするご
とに必要とされる変数である。本発明の実施形態では、文字列コードSpのデコ
ードはロジックブロック42に示されている。デコードされた文字列Spは出力
され、ブロック43で文字列として格納され、これをロジックブロック44でラ
イン45を介して補助メモリ内のアドレスポインタコードアドレスに追加できる
。図式的に、デコードされた文字列Spは個別の文字として文字列テーブル27
Aに戻され、以下で詳述するように文字列Spの代わりに格納される。本発明の
一形態では、ライン45を介してメモりに格納する複数の文字列をブロック46
に示されているように文字の開始バイトと長さとして検出する。この情報は、ロ
ジックブロック47に送られ、補助メモリを使用する場合に以下で説明するよう
にこれを使用して長さと開始アドレスをファインダメモリ内のカウンタ35Aで
生成されるポインタコードアドレスに書き込む。
【0027】 図5を参照すると、これは図4に示されているタイプのデコーダ辞書を使用し
て入力データコードからデコード文字のストリームを構築または生成するプロセ
スを説明するのに使用されている流れ図である。ライン22A上の次の入力デー
タコードSnはロジックコードバッファ48に入力されることが示されている。
ロジックコードバッファ48内の情報を使用して、ブロック25Aに示されてい
るように前のポインタアドレスSpを生成するが、これは図3のブロック25に
似ている。ポインタアドレスSpにより、辞書27の内容がブロック49に示さ
れているように文字列Spによって生成されたポインタアドレスから読み出され
る。ライン28A上の出力を論理的に調査して、ブロック51に示されているよ
うに複数文字列S+拡張文字を含むかどうかを判別する。Sが単一の文字列の場
合、情報はロジックブロック52に入力され、単一文字がライン31Bを介して
デコードされた文字列に出力され、スタック32Aに置かれる。これがブロック
53に示されているように文字列Sの最後の文字であれば、次の文字列のデコー
ドの準備ができている。ライン54上の情報により、新しいコードSnがポイン
タアドレスブロック25Aに新しいSpとしてロードされ、再びプロセスが繰り
返される。ただし、ブロック51がS+拡張文字を含む複数文字列を感知すると
、拡張文字がライン31Aを介してブロック55に示されているようにデコード
ストリームに追加され、スタック32Aに積まれる。文字列コードSを使用して
、ロジックブロック56に示されているように次の部分文字列Sコードを生成す
る。新しい部分文字列Sアドレスのところの辞書27の内容がブロック51に読
み込まれる。
【0028】 各拡張文字が、Sの最後の文字が読み込まれるまで逆スタック32Aにロード
され、その後、情報の送られる向きが逆転し、スタック32Aから読み出されて
、適切な順序で出力データストリーム57に書き込まれる。
【0029】 図5からわかるように、部分文字列をデコードする論理的方法の1つとして、
文字列辞書27から既知のそれぞれの拡張文字を取り出してスタックに積むとい
う方法がある。スタックに特定のコードSpからのすべての文字がロードされる
と、情報の送られる向きが逆転し、スタックから読み出されて、出力データ文字
列に書き込まれ、次のSpをデコードできる。
【0030】 図6を参照すると、これは、単一の復元サイクルで圧縮データコードをデコー
ド文字の文字列またはブロックに直接展開する展開システム内の好ましい実施形
態のデコーダの概略ブロック図を示している。ブロック25BのデータコードS
pは以下で詳述するファインダメモリ58内のアドレスロケーションを指すポイ
ンタアドレスを生成するために使用されることが示されている。このファインダ
メモリ内の情報により、ライン59上の読み込み開始アドレスとライン61上の
長さLの値が生成され、この値を使用してロジックにより終了アドレスを見つけ
ることができる。ライン61上の情報から、ファインダメモリ59にブロックの
長さに関する情報がロードされていることを示すデータが得られる。ブロック6
2内のロジックにより、長さが0に等しいかどうかが判別され、等しくなければ
、データは関連メモリ内にある。長さが0でなければ、ブロック63で移動コマ
ンドを生成し、ライン64で示されている、L66で示される、長さの開始アド
レスから始まり、ライン67で示されている終了アドレスで終わる1ブロック分
のメモリ文字を移動する。デコードされた文字列Spは可変長文字列メモリ65
から読み出される。このメモリは、長さLの数ブロック分のデータを転送または
移動できる形態であればどのようなものでもかまわない。デコードされた文字は
、ライン68上で直接、出力データ文字ストリーム69に送られることが示され
ている。情報のブロックは8ビット文字であり、8ビット単位で連続文字列に並
列転送するか、またはダンプ用に並列形式で直接出力できることは理解できるで
あろう。文字列メモリからデコード文字を直接読み込む好ましい実施形態の方法
について説明してきたが、図3を参照して説明した従来技術のデコーダに示され
ているようにすべての文字を得るのに1回の連続サイクルがあればよく、一度に
文字を1つずつ抽出しなくてよいことは理解されるであろう。可変長メモリ65
は図式的であり、情報を移動するために使用するコンピュータがブロック転送コ
マンドを持たないタイプのものである場合、アドレス64から開始し、長さ66
のアドレスの数が終了アドレス67で終わるまで個別順次アドレスを読み出し続
けることが可能であり、可変長移動コマンドよりも長くかかるとしても同じ転送
またはダンプが実行される。
【0031】 図7を参照すると、これは、残りの部分文字列の1つが文字のブロックまたは
ストリームとしてデコードされるまで従来の方法で非常に長い文字列コードを最
初に部分文字列+拡張文字にデコードする修正されたデコーダまたは展開システ
ムの概略ブロック図を示している。このタイプの修正を行うのは、非常に長い文
字列はときどきデータに固有のものである場合があり、巨大なデータファイルで
は1、2回しか出現しないことがあるからである。図6で説明したメモリに書き
込まれるこのタイプの文字列は収納できるが、メモリのタイプによっては収納さ
れないものもあり、文字列の長さを使用されるシステムで動作可能なサイズに切
り詰める必要がある。
【0032】 データコードSpはファインダメモリ58Cへのポインタアドレスを出力する
新しい文字列入力バッファ25Cに入力されることが示されている。長さデータ
がライン61C上でロジック62Cに出力される場合、完全な文字列はすでにメ
インメモリ内に記録されていると結論することができる。長さが0であれば、文
字列はメモリ内になく、この文字列を部分文字列に展開する必要がある。この展
開の開始は、ブロック71に示されており、そこで入力文字列は部分文字列S1
+拡張文字に展開される。部分文字列S1を使用して、ロジックブロック72で
S1ポインタ入力を生成する。新しいポインタまたは新しい文字列S1がライン
73でブロック25Cに入力され、Spの部分文字列に対応する新しいポインタ
を出力する。文字列がメモリ内になくブロック71′でS1を文字列S2+新し
い拡張文字に展開することから始まる場合に第2のパスをシステムで実行する。
ブロック72′で新しいポインタで生成され、ポインタアドレスジェネレータ2
5Cに入力される。ブロック72と72′の両方で拡張文字をバッファ32Cお
よび32C′にそれぞれ出力し、前記ブロックはブロック25Cに現在ロードさ
れている文字列を展開するのが必要なくなったことを示すイネーブル信号をライ
ン75で出力するまで保持される。ロジックブロック76は、ライン59C上の
開始アドレスに対応する情報のブロックとライン61C上の長さを図6または相
当する図に示され説明されているメモリから読み込む。メモリアドレスポインタ
のブロック76ではさらに、信号をロジックブロック77に出力し、部分文字列
の展開を中止し、メモリのブロックから読み込んだ文字をライン78上の出力に
追加する。ライン77Eのイネーブル信号は順次、第2のパスから拡張文字を追
加し、第1のパスで、ライン78の出力に追加し、出力データストリームを生成
する。
【0033】 要するに、図7に示されているデコーダシステムは、ブロックメモリからブロ
ック77へデコード文字列を出力するときまで逆の順序で長い文字列から拡張文
字を抽出することから始め、逆の順序で元の文字列コードの長さを短くするプロ
セスですでに抽出されている拡張文字を追加する。
【0034】 図8を参照すると、これは、入力された長い文字列をデコードし、かつ/また
は最初に見た文字列コードをデコードしてからデコード文字列を辞書に格納する
速度を高める他の好ましい実施形態のデコーダ/文字列辞書の概略ブロック図を
示している。この改良された実施形態では、新しい補助メモリまたは文字列辞書
27Dを採用して、文字のみを格納する。Sp+拡張文字をアドレスカウンタで
生成されたアドレスコードに格納する代わりに、Spを表す文字列全体をメモリ
27Dに格納する。
【0035】 圧縮コードがデータコードストリーム36からデコンプレッサ20Bに入り、
新しいコードレジスタ37Aにバッファリングされる。新しい文字列コードが前
のコードブロック38Aにロードされ、文字列コードSpの読み込みポインタア
ドレスの生成に使用される。以前に説明したように、辞書27Aには、Spをデ
コードし、Sp+拡張文字を辞書に書き込むのに十分な情報がある。Spがデー
タストリーム内のすでに見たコードであれば、すでにデコードされており、辞書
27Dに書き込まれている。これは、ポインタSpのデータが読み出されるとブ
ロック81で検出できる。ブロック82では、ライン83を介してデコードされ
た文字を出力データストリーム84に読み出す。
【0036】 メモリ27Dから読み出したデータがポインタSpのところになければ、Sp
はまだ辞書にはなく、最初にデコードする必要がある。ロジックブロック42D
は、最初にSpをデコードし、出力を記録して、適切な形式でバッファ43Dに
格納し、ライン84上で出力データストリーム85に出力できるようにする。
【0037】 辞書ではまだ、コード値のプレフィックスとして格納されているSpをデコー
ドしていない。ライン86で同じ情報が送られ、書き込みアドレスポインタコー
ドを使用する図4を参照して説明しているように辞書内の次のカウンタアドレス
に書き込まれる。Spがメモリ/辞書27Dに書き込まれるときに、これはデコ
ード文字(デコード文字列)の形式であり、その後に、ブロック37Aの文字列
コードSnからの拡張文字が続く。この目的のために、書き込みバッファ39D
を用意し、文字列Snの第1の文字を拡張し、格納イネーブル入力で示されてい
るようにライン86により有効にされているときにメモリ内に書き込むようにす
る。
【0038】 つまり、図8は図4の補完であり、辞書内のSpを文字列に置き換える方法に
ついて説明している。Sp読み込みポインタで順次、メモリ27Dの内容を読み
込むときに、拡張文字と出力Spだけを無視できる。
【0039】 Spを最初に読み込んでデコードし、それから新しいSpを文字として格納す
る代わりに、Sp+拡張文字で辞書を最初に構築し、それからSpをデコードし
、対応する文字に置き換えることが可能である。Spの値はすでにS+拡張文字
として辞書内にあるため、辞書を構築する前にSpの文字を出力することも可能
である。補助メモリまたは辞書を実装する複数の方法について説明してきたが、
この結果を得るステップの順序はさまざまである。
【0040】 大きなメモリ27Dを使用してデコードされた文字列を読み込みポインタアド
レスSpに格納する方法について説明してきたが、これらの文字列の一部のみが
デコードされた文字列として示されているメモリの行を占有し、デコードされた
文字列の右にある他の部分は未使用メモリを表すことは理解されるであろう。メ
モリが無駄になるが、メモリは安価であって時間は貴重であるため、補助メモリ
27Dを図4に示されているタイプのデコーダに置き換えると、デコーダの速度
が大幅に向上する。
【0041】 図9を参照すると、これは、上で説明したように、従来のプロセスおよび文字
列辞書ではデコードできない入力コードを自動的にデコードする好ましい実施形
態のデコーダシステムの一部の概略ブロック図を示している。前述の「IEEE
,Computer」のTerry A.Welchの記事では、文字列k S
k S kがデコンプレッサの入力のところに出現した場合に従来のデコード
プロセスの例外があり、文字列k Sはすでにコンプレッサ文字列辞書に格納さ
れていることが説明されている。3つの文字と2つの文字列のこのシーケンスの
出現に関する問題は、デコンプレッサ文字列辞書にまだ、最後の入力コードに対
応するコード値がないという点である。図9は、この条件を取り扱う簡素化した
方法を表しており、前の図には含まれていなかったが、すでに述べた本発明を実
施するためにコンピュータ(図には示されていない)にプログラムされたシステ
ムの一部である。
【0042】 展開入力データストリーム36Eは番号が振られたコード文字列SからS5で
構成されるシリーズを含むことが示されており、これらの特定の文字列はロジッ
クブロック87に入力され、ここで、ブロック87で受け取った新しい文字列コ
ードの値がコードカウンタ35Eの生成に従って辞書にすでに書き込まれている
最高のコード値よりも大きいかどうかを判別する。ブロック88のロジックで、
ロジック87に入力された新しいコードが辞書内にあると判断された場合、通常
どおりプロセスを進めて、図4から図6を参照して上で説明されているように新
しいコードをデコードする。新しいコードが旧いコードよりも大きい場合、ブロ
ック89内のロジックで、新しいコードSnがまだ展開辞書内にないと結論する
。しかし、前のコードSpは辞書内の最後のコードカウントのところにあり、デ
コードされると、最初の文字+文字列に等しくなる。ロジックブロック91では
、Spのデコードされた値を使用してSnの新しいコードを出力するが、ただし
Snは文字+Spの文字列値+末尾に付加されたSpを開始した最初の文字に等
しい。新しいコードSnの値はこれで判明したので、Snを辞書からのSpコー
ド値としてデコードし、ブロック92で示されているような出力のところに文字
列を出力する。さらに、Snの値がSpとしてデコードされた後、前述の辞書の
1つに辞書内の次のコード値のところのSp+拡張文字として格納できる。
【0043】 従来のデコーダで拡張文字を取り去って個々のコードをデコードする方法につ
いて説明したが、このようなコードは出力文字列に出現する順序とは逆の順序で
デコードされていることは理解されるであろう。したがって、文字をスタックに
積み、後入れ先出し(LIFO)の順序で取り出すことができる。そこで、文字
列の部分文字列取り出しが尽きるまで文字列内の文字ごとに複数のサイクルで、
非常に長い文字列がすでにデコードされている。本発明のデコーダではデコーダ
の前に文字列が見られているかどうかを1回単純に判別し、もし見られていれば
、デコードされた文字は、補助メモリまたはブロックタイプのメモリ内にあり、
単一のサイクルで直接デコードされる。文字列が本発明のデコーダの入力のとこ
ろに初めて出現し複数の部分文字列を含んでいるときに、その文字列を従来のま
たはほぼ従来の方法でデコードする必要があり、デコードされた情報をブロック
転送コンピュータタイプのメモリまたは高速アドレス指定可能メモリ内に置く必
要があることは理解されるであろう。デコードされた文字列は、2回目に出現し
たときにはメモリから読み出される。非常に長い文字列は、多数の部分文字列を
含み、通常、図8に示されている実施形態を使用するとメモリを大量に消費する
ことになる。しかし、第1と第2の部分文字列をデコードすることにより、基に
なっている部分文字列は通常、上で説明したように直接または補助メモリ27D
内にある。
【0044】 すべての通常文字列がひとたび入力データ文字列内に出現したらデコード文字
列として出現するように補助メモリを非常に大きく確保することが可能である。
しかし、図8に示されている修正されたシステムを使用すると、その文字列全体
がメモリ内にない場合に、従来のように、デコードして、アドレス指定可能なメ
モリ内に置くことができる。修正されたシステムは、異常文字列のサイズが割り
当てられたメモリの容量を超えてもハングアップしません。
【0045】 コンプレッサから高速に入力データを直接デコードする方法の利点の1つに、
情報をメモり内にバッファリングしてデコードする必要がないという点が挙げら
れるが、それは、情報がピクセルデータ形式のグラフィックス情報を表す場合で
も情報が入るとともにリアルタイムでデコードできるからである。本発明は、カ
タログおよびブックからリアルタイムでページをダウンロードするために使用で
きる。本発明を他の知られている圧縮画像形式とともに組み込むと、デコンプレ
ッサでビデオフレーム形式の速度を実現することが可能である。
【図面の簡単な説明】
【図1】 代表的な文字列を処理してコンプレッサで出力コードを出力する方法を示す圧
縮テーブルである。
【図2】 図1で出力された出力コードを処理してデコーダ辞書を構築し、圧縮システム
で圧縮された元の文字列を復元する方法を示す展開テーブルである。
【図3】 デコーダ辞書を構築し、復元された文字列とデコードされた元の文字列を含む
個々の文字の復元を説明するプロセスを説明するために使用されている従来技術
のデコンプレッサのブロック図である。
【図4】 デコーダ辞書を構築し、デコード文字列コードを格納するプロセスを説明する
ために使用されている本発明の一般的なデコンプレッサの概略ブロック図である
【図5】 図4に示されているデコーダ辞書を使用して入力データコードからデコード文
字列を構築または生成するプロセスを示す流れ図である。
【図6】 単一の復元サイクルで入力された圧縮データコードをデコード文字のブロック
または文字列に展開する好ましい実施形態のデコーダまたは展開システムの概略
ブロック図である。
【図7】 残りの部分文字列コードの1つが文字のブロックまたはストリームとしてデコ
ードされるまで、従来の方法で長い文字列コードを最初にデコードする修正され
たデコーダまたは展開システムの概略ブロック図である。
【図8】 入力された長い文字列をデコードし、最初に見た文字列コードをデコードして
からデコード文字をデコーダ文字列辞書に格納する他の好ましい実施形態のデコ
ーダ文字列辞書の概略ブロック図である。
【図9】 デコーダシステム内で従来のプロセスによりデコード可能でない入力コードを
自動的に認識しデコードする好ましい実施形態のデコーダシステムの一部の概略
ブロック図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年8月20日(2001.8.20)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】 この操作のシーケンスの問題は、圧縮システムから受け取る文字列コードが長
くなり、多数の小さな部分文字列コードをデコードする必要があるという点であ
る。長い文字列コードが50個を超える文字(バイト)を表す。したがってほと
んどそれと同数の部分文字列コードとなることもまれではない。そのような長い
文字列コードで表される50個の文字をデコードするには、辞書を覗いて、すべ
ての部分文字列コードがデコードされ、尽きるまで各サブコードとその拡張文字
を取り出す必要がある。部分文字列コードを新規部分文字列とその拡張文字に展
開するごとに拡張文字1つのみが出力データストリームに出力され、展開システ
ムはときに応じてすでに見た長い文字列コードのデコードを何回も繰り返すこと
ができる。 PCT WO9403983号公報(D−1)では適応性のあるデコーディン
グシステムや辞書タイプのデコーディングシステムにおいて文字列コードをデコ
ードするスピードが増大することを認識している。上記D−1文献では文字コー
ドの値をデコードするための基本的なアルゴリズムは変えないが、文字列データ
を元に戻す(リバースする)ために要する消費時間を除外している。上記文字列
データは従来のLempel,Ziv,Welch(LZW)デコーダで生成さ
れる。このデコーダはそのアルゴリズムの特徴によりオリジナルデータのデパー
ス順に文字のデコードを行う。上記文献には、複数のレジスタ、または複数のL
IFOスタックあるいは複数の巡回キューが1つまたは2つの従来のリバースス
タックのLOFOの代わりに使用されるということが開示されている。これによ
り、デコーダにより生成されるデコードされた拡張文字を受け取るための空のス
タックが常時利用可能となる。そのような機器は文字リバースメカニズムと命名
されている。複数のスタックは後に続く文字列を記憶し、一方、前に記憶された
文字列を記憶されたリバースの順に出力することができる。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年11月20日(2001.11.20)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】 この操作のシーケンスの問題は、圧縮システムから受け取る文字列コードが長
くなり、多数の小さな部分文字列コードをデコードする必要があるという点であ
る。長い文字列コードが50個を超える文字(バイト)を表す。したがってほと
んどそれと同数の部分文字列コードとなることもまれではない。そのような長い
文字列コードで表される50個の文字をデコードするには、辞書を覗いて、すべ
ての部分文字列コードがデコードされ、尽きるまで各サブコードとその拡張文字
を取り出す必要がある。部分文字列コードを新規部分文字列とその拡張文字に展
開するごとに拡張文字1つのみが出力データストリームに出力され、展開システ
ムはときに応じてすでに見た長い文字列コードのデコードを何回も繰り返すこと
ができる。 PCT WO9403983号公報(D−1)では適応性のあるデコーディン
グシステムや辞書タイプのデコーディングシステムにおいて文字列コードをデコ
ードするスピードが増大することを認識している。上記D−1文献では文字コー
ドの値をデコードするための基本的なアルゴリズムは変えないが、文字列データ
を元に戻す(リバースする)ために要する消費時間を除外している。上記文字列
データは従来のLempel,Ziv,Welch(LZW)デコーダで生成さ
れる。このデコーダはそのアルゴリズムの特徴によりオリジナルデータのデパー
ス順に文字のデコードを行う。上記文献には、複数のレジスタ、または複数のL
IFOスタックあるいは複数の巡回キューが1つまたは2つの従来のリバースス
タックのLOFOの代わりに使用されるということが開示されている。これによ
り、デコーダにより生成されるデコードされた拡張文字を受け取るための空のス
タックが常時利用可能となる。そのような機器は文字リバースメカニズムと命名
されている。複数のスタックは後に続く文字列を記憶し、一方、前に記憶された
文字列を記憶されたリバースの順に出力することができる。 上記文献D−1およびLZWでは共にデコードされた文字列がLIFOスタッ
クにロードされて、記憶順にリバース処理が行われる。上記文献D−1では各文
字列コードの値は前ではデコードされていないかのようにデコードされなければ
ならない。本発明では補助メモリを採用し、最初のデコードの時に文字列データ
としてデコードされた文字列が適切な順序で記憶される。後に続く文字列コード
の値は補助メモリに対するポインタとして使用される。前にデコードされた文字
列はメモリから読み出され、2度目のデコードの必要はない。このようにして連
続でリアルタイムのコードの値のデコード処理が可能となる。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 セアー リンゼイ ヨーク アメリカ合衆国 19006 ペンシルベニア 州 ハンティントン バレー カントリー クラブ ドライブ 2130 Fターム(参考) 5J064 AA03 BA11 BC01 BC02 BC04 BC05 BC29 BD01

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 個別データ文字のストリームを前記個別データ文字の文字列
    を表すコード化された信号のストリームから復元するデータ展開方法であって、 前記文字列を前の文字列Spと次の文字列Snとして表す前記コード化された
    信号を対で受け取るステップと、 次の文字列の第1の文字により拡張された前の文字列をデコーダ辞書に格納す
    るステップと、 格納する前記ステップが前記前の文字列コードとその次の文字または拡張文字
    を次の文字列に対応するコードアドレスに格納するステップを含むステップと、 文字列コードを部分文字列と拡張文字に展開し、拡張文字を出力することによ
    り前記受け取った前の文字列コードSpを個々の文字にデコードするステップと
    、 前記デコードされた個々の拡張文字を前記前の文字列コードでアクセス可能な
    メモリアドレスに格納するステップと、 その後、前記前の文字列コードを使用して前記メモリアドレスにアクセスし、
    再度前記前の文字列コードをデコードすることなく前記デコードされた個々のデ
    ータ文字を取得するステップと を含むことを特徴とする方法。
  2. 【請求項2】 前記デコードされた個々の文字を格納するステップが前記デ
    ータ文字を可変長メモリ内に数バイト分のデータ文字として格納するステップを
    含むことを特徴とする請求項1に記載のデータ圧縮方法。
  3. 【請求項3】 前記可変長メモリが開始アドレスと、メモリのブロックを定
    義する長さによりアクセス可能なメモリのブロックを備えることを特徴とする請
    求項2に記載のデータ圧縮方法。
  4. 【請求項4】 さらに前記開始アドレスと前記長さをファインダメモリに格
    納するステップを含むことを特徴とする請求項3に記載のデータ圧縮方法。
  5. 【請求項5】 前記デコードされている個々の文字を取得するために後で前
    記メモリアドレスにアクセスする前記ステップが開始アドレスから始まる長さL
    のメモリ1ブロック分を移動するステップを含むことを特徴とする請求項4に記
    載のデータ圧縮方法。
  6. 【請求項6】 さらにメモリ内の長さLの前記ブロックを読み込み、メモリ
    から読み込んだ長さデータから、前記デコードされた個々のデータ文字を長さL
    のブロックが置かれている前記開始アドレスでアクセス可能なメモリアドレスに
    格納するかどうかを判別するステップを含むことを特徴とする請求項5に記載の
    データ圧縮方法。
  7. 【請求項7】 前記デコードされた個々のデータ文字を前記前の文字列コー
    ドによりアクセス可能なメモリアドレスに格納する前記ステップが前記データ文
    字のすべてを前記前の文字列コードに対応する一コードアドレスに格納するステ
    ップを含むことを特徴とする請求項1に記載のデータ圧縮方法。
  8. 【請求項8】 前記前の文字列にアクセスするために使用される前記コード
    アドレスが前の文字列+拡張文字を含むコードアドレスで構成されることを特徴
    とする請求項7に記載のデータ圧縮方法。
  9. 【請求項9】 さらにデコードされた出力データストリームに前のコードを
    表す前記個々の文字を直接出力するステップを含むことを特徴とする請求項7に
    記載のデータ圧縮方法。
  10. 【請求項10】 前記前の文字列を個々のデータ文字にデコードする前記ス
    テップがさらに、前記デコードされた文字をバッファレジスタに蓄積し、前記デ
    コードされた個々のデータ文字をバッファから出力するステップを含むことを特
    徴とする請求項7に記載のデータ圧縮方法。
  11. 【請求項11】 入力圧縮文字列コードのストリームから文字列コードの前
    記ストリームで表される個々の文字を復元するデータ展開方法であって、 入力文字列コードの前記ストリームを生成するためにコンプレッサによって使
    用される文字列コード値の展開辞書を構築するステップと、 各圧縮された文字列コードをデコンプレッサで受け取ると同時にデコードする
    ステップと、 前記展開辞書を構築しながら前記文字列コードを含むアドレスポインタでアク
    セス可能なメモリ内に前記デコードされた文字列コード値を格納するステップと
    、 前記アドレスポインタを使用して前記文字列コードを表すすべての個々の文字
    を同時に取り出すステップと、 前記取り出した個々の文字を出力データストリームに追加するステップと を含むことを特徴とするデータ展開方法。
  12. 【請求項12】 さらに表示用メモリを備えるコンピュータに前記出力デー
    タストリームを記録するステップを含むことを特徴とする請求項11に記載のデ
    ータ圧縮方法。
  13. 【請求項13】 さらに前記データストリームを前記コンピュータの表示装
    置にリアルタイムで表示するステップを含むことを特徴とする請求項12に記載
    のデータ圧縮方法。
  14. 【請求項14】 さらに前記出力データストリームを高速メモリに格納し後
    で表示できるようにするステップを含むことを特徴とする請求項12に記載のデ
    ータ圧縮方法。
  15. 【請求項15】 入力圧縮文字列コードのストリームからデータ文字列に対
    応する信号の前記ストリームで表される個々の文字を復元するデータ展開方法で
    あって、 前記文字列コードの順次対を受け取って格納するための入力を備えるコンピュ
    ータと、 前の文字列コードSpとその後に続く新しい文字列コードSnを表す前記コー
    ド対と、 アドレスを生成するコードカウンタと、 Spと前記新しい文字列Snの先頭の文字である拡張文字を前記文字列Snの
    コードカウンタアドレスに格納する文字列辞書と、 前記文字列Spとその部分文字列から拡張文字を抽出することにより前記コー
    ド値Spをデコードする手段と、 前記デコードされた値Spを個々の文字のストリームとしてメモリに格納する手
    段と、 前記コンピュータへの入力のところで受け取った文字列コードへの応答として
    前記メモリから個々の文字の前記ストリームを取り出す手段を備えることを特徴
    とするデータ展開方法。
  16. 【請求項16】 コンピュータの入力のところで受け取った前記文字列コー
    ドがすでにデコードされている文字列Spに対応する部分文字列コードを含むこ
    とを特徴とする請求項15に記載のデータ展開システム。
  17. 【請求項17】 さらに文字列コードを受け取り、可変長メモリのブロック
    アドレスを生成するためのファインダメモリを備えることを特徴とする請求項1
    5に記載のデータ圧縮システム。
  18. 【請求項18】 さらに前記受け取った文字列コードがすでにデコードされ
    ているかどうかを判別する手段を備えることを特徴とする請求項17に記載のデ
    ータ圧縮システム。
  19. 【請求項19】 さらに前記コンピュータの入力のところで受け取るコード
    値に対しコードアドレスポインタを生成する手段を備え、 前記コード値Spをデコードする前記手段がさらに値Spの部分文字列を生成
    する手段を備え、 個々の文字の前記ストリームを取り出す前記手段がさらに前記部分文字列の1
    つに対応する文字のストリームを取り出す手段を備えることを特徴とする請求項
    15に記載のデータ圧縮システム。
  20. 【請求項20】 Spの前記デコードされた値を格納する前記メモリが前記
    文字列辞書の前記文字列メモリを備えることを特徴とする請求項15に記載のデ
    ータ圧縮システム。
JP2001525853A 1999-09-21 2000-09-14 データを展開するのに要する時間を短縮するための方法と装置 Pending JP2003510881A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/399,658 1999-09-21
US09/399,658 US6404362B1 (en) 1999-09-21 1999-09-21 Method and apparatus for reducing the time required for decompressing compressed data
PCT/US2000/025231 WO2001022597A1 (en) 1999-09-21 2000-09-14 Method and apparatus for reducing the time required for decompressing data

Publications (1)

Publication Number Publication Date
JP2003510881A true JP2003510881A (ja) 2003-03-18

Family

ID=23580438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001525853A Pending JP2003510881A (ja) 1999-09-21 2000-09-14 データを展開するのに要する時間を短縮するための方法と装置

Country Status (5)

Country Link
US (1) US6404362B1 (ja)
EP (1) EP1214792B1 (ja)
JP (1) JP2003510881A (ja)
DE (1) DE60011795T2 (ja)
WO (1) WO2001022597A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639849B2 (en) * 2001-12-17 2014-01-28 Sutech Data Solutions Co., Llc Integrated circuits for high speed adaptive compression and methods therefor
US7020160B1 (en) 2001-12-17 2006-03-28 Supergate Technology Usa, Inc. Interface circuits for modularized data optimization engines and methods therefor
US7071854B1 (en) * 2002-05-13 2006-07-04 Unisys Corporation Hardware-implemented LZW data decompression
US20050148231A1 (en) * 2002-07-23 2005-07-07 Siemens Aktiengesellschaft Plug guide
TWI228257B (en) * 2004-05-06 2005-02-21 Carry Computer Eng Co Ltd Silicon storage media, controller, and access method thereof
US7079054B2 (en) * 2004-06-04 2006-07-18 Broadcom Corporation V.42bis standalone hardware accelerator and architecture of construction
CN100423453C (zh) * 2005-03-10 2008-10-01 复旦大学 通过查表实现的算术编解码方法
US7164370B1 (en) 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
US7439887B2 (en) * 2007-02-13 2008-10-21 Seiko Epson Corporation Method and apparatus for GIF decompression using fixed-size codeword table
WO2014045320A1 (ja) * 2012-09-21 2014-03-27 富士通株式会社 制御プログラム、制御方法および制御装置
US9087070B2 (en) * 2013-01-31 2015-07-21 Yahoo! Inc. System and method for applying an efficient data compression scheme to URL parameters

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07509823A (ja) * 1992-08-03 1995-10-26 アドバンスト ハードウェア アーキテクチャーズ,インコーポレイテッド ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
WO1998004045A1 (en) * 1996-07-24 1998-01-29 Unisys Corporation Data compression and decompression system with immediate dictionary updating interleaved with string search
JPH10508170A (ja) * 1994-12-29 1998-08-04 ユニシス コーポレーション 連想メモリを使用するlzwデータ圧縮

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5049881A (en) * 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
EP0471518B1 (en) 1990-08-13 1996-12-18 Fujitsu Limited Data compression method and apparatus
US5151697A (en) * 1990-10-15 1992-09-29 Board Of Regents Of The University Of Washington Data structure management tagging system
US5455943A (en) * 1992-10-08 1995-10-03 Salient Software, Inc. Method and apparatus for finding longest and closest matching string in history buffer prior to current string
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
US5229768A (en) 1992-01-29 1993-07-20 Traveling Software, Inc. Adaptive data compression system
US5455576A (en) * 1992-12-23 1995-10-03 Hewlett Packard Corporation Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory
US5389922A (en) * 1993-04-13 1995-02-14 Hewlett-Packard Company Compression using small dictionaries with applications to network packets
US5525982A (en) * 1994-04-15 1996-06-11 International Business Machines Corporation Method and means for character string pattern matching for compression and the like using minimal cycles per character
US5805086A (en) * 1995-10-10 1998-09-08 International Business Machines Corporation Method and system for compressing data that facilitates high-speed data decompression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07509823A (ja) * 1992-08-03 1995-10-26 アドバンスト ハードウェア アーキテクチャーズ,インコーポレイテッド ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
JPH10508170A (ja) * 1994-12-29 1998-08-04 ユニシス コーポレーション 連想メモリを使用するlzwデータ圧縮
WO1998004045A1 (en) * 1996-07-24 1998-01-29 Unisys Corporation Data compression and decompression system with immediate dictionary updating interleaved with string search

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010044820, 植松友彦, 文書データ圧縮アルゴリズム入門, 19941015, p.186−192 *

Also Published As

Publication number Publication date
DE60011795T2 (de) 2005-08-04
WO2001022597A1 (en) 2001-03-29
EP1214792B1 (en) 2004-06-23
US6404362B1 (en) 2002-06-11
EP1214792A1 (en) 2002-06-19
DE60011795D1 (de) 2004-07-29

Similar Documents

Publication Publication Date Title
JP3342700B2 (ja) ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
US5485526A (en) Memory circuit for lossless data compression/decompression dictionary storage
JP3016868B2 (ja) 連想メモリを使用するlzwデータ圧縮
US4988998A (en) Data compression system for successively applying at least two data compression methods to an input data stream
EP0573208B1 (en) Apparatus and method for managing multiple dictionaries in content addressable based data compression
US5151697A (en) Data structure management tagging system
JP2534465B2 (ja) デ―タ圧縮装置および方法
JPH07249996A (ja) 圧縮符号復元方法及び装置
EP0666651A2 (en) Apparatus and method for lempel ziv data compression with management of multiple dictionaries in content addressable memory
JP2003510881A (ja) データを展開するのに要する時間を短縮するための方法と装置
JP2006092725A (ja) 圧縮システム及び方法
JPH05241777A (ja) データ圧縮方式
JP2003521140A (ja) データの圧縮に必要な時間を短縮するための方法および装置
JP4156381B2 (ja) 文字テーブルによって実施されるデータ圧縮の方法および装置
JP3038223B2 (ja) データ圧縮方式
JPH10261969A (ja) データ圧縮方法および装置
JP3127016B2 (ja) データ圧縮及び復元方法
JPH07135471A (ja) データ圧縮装置およびデータ伸張装置
JPH0546357A (ja) テキストデータの圧縮方法および復元方法
JP3171510B2 (ja) 辞書ベースのメモリ内のデータを圧縮および圧縮解除する方法
JP3087488B2 (ja) データ復元回路
JPH08328817A (ja) コンピュータシステム及びそれに用いるデータ伸張器
US6653949B1 (en) Data compression apparatus and method utilizing tandem coupled matrices
JP2535655B2 (ja) 辞書検索方式
CA2208049C (en) Method and apparatus for performing lzw data compression utilizing an associative memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070914

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100806

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110128