JPH07509823A - ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置 - Google Patents

ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置

Info

Publication number
JPH07509823A
JPH07509823A JP6505422A JP50542294A JPH07509823A JP H07509823 A JPH07509823 A JP H07509823A JP 6505422 A JP6505422 A JP 6505422A JP 50542294 A JP50542294 A JP 50542294A JP H07509823 A JPH07509823 A JP H07509823A
Authority
JP
Japan
Prior art keywords
string
data
stored
strings
address
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
JP6505422A
Other languages
English (en)
Other versions
JP3342700B2 (ja
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 JPH07509823A publication Critical patent/JPH07509823A/ja
Application granted granted Critical
Publication of JP3342700B2 publication Critical patent/JP3342700B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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

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

【発明の詳細な説明】 ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧 縮解除装置 光脚立公M この発明は、データの圧縮及び圧縮解除の分野に関する。より具体的には、この 発明は、ストリングテーブルを有する適応体系(adaptive schem e)を用いてデータを圧縮するデータ圧縮装置に関し、圧縮は、圧縮されるべき データの内容に依存する。
ル匪皇宜遣 データ圧縮は、冗長さを含んだデータブロックを格納するとき又は伝送するとき に用いられる技術である。このようなデータブロックを圧縮することにより、特 定のデータブロックによってキャリーされる情報量を減らすことなく、その有効 サイズを著しく小さくすることができる。データ圧縮により、データブロックを 格納するのに必要なメモリ量と、そのデータブロックを伝送するのに必要な伝送 時間は減少するから、格納又は通信されるべき情報の密度は増加する。データ圧 縮装置を評価するのに3つの重要な特性があり、それらは、圧縮装置はどのよう に効率的か、圧縮装置はどのように速いが、そしてエラーなしにデータブロック を完全に再生できるがである。
データ圧縮装置の効率は、圧縮比と呼ばれる量で測定され、圧縮比は未圧縮キャ ラクタ−の数を圧縮キャラクタ−の数で除算することにより計算される。圧縮比 が高くなるほど、圧縮データの密度は大きくなる。圧縮比2は、圧縮後のキャラ クタ数が圧縮前のキャラクタ数の半分であることを意味する。
データの圧縮装置(compressor)のもう1つの重要な特性は、圧縮解 除装置(decompressor)からの出力が、元の入力とどのように密接 に整合するかである。圧縮技術は、無損失(lossless)と損失(los sy)に細分化されることができる。無損失法は、圧縮データから元のデータを 正確に再構成することができる。無損失法は、テキスト圧縮アプリケーション又 はデータを元の状態に完全に復元することが重要なその他のアプリケーションに 最も適している。損失法は、圧縮及び圧縮解除中、何らかのエラー発生を許容す る。この種の方法は、例えばデジタル的にサンプリングされたアナログデータの ように、良好な近似で十分な場合に用いられる。
データ圧縮装置の速度も、非常に重要な特性として考慮される。コンピュータと 対話する装置は、システムの中でボトルネックを生ずることなく、コンピュータ を効率良く機能させることができるように十分高速でなければならない。システ ムにとって利益あるものとするためには、圧縮装置はその動作速度を低下させる ことなくコンピュータと対話できなければならない。
データを圧縮するのに用いられる技術は数多くある。
最も一般的な方法の1つに、ハフマン符号化方式がある。
これは、入力データの固定サイズピースを可変長シンボルに翻訳する。頻繁に使 用されるシンボルは短符号によって表わされ、使用頻度の少ないシンボルは長符 号によって表わされる。この技術を用いるために、データ中における各シンボル の出現(occurrence)頻度は、圧縮の前に知られていなければならな い。もしブロックの特性が予め知られていないとき、各シンボルの頻度をめるに は、圧縮される前にデータブロックを一度検査しなければならない。次に、各シ ンボルの頻度がめられた後、各シンボルの符号が生成され、データは圧縮され、 格納された各符号はその特定のシンボルを表わしている。
データ圧縮のもう1つの一般的な方法は、適応圧縮(adaptive com pression)であり、これは辞書ベース圧縮と称されることもある。適応 圧縮はシンボルストリングの空テーブルから開始し、データが圧縮されるときに テーブルを作成するから、ストリングテーブルの内容が特定のデータブロックの 特性を反映することになる。この方法を用いると、シンボルストリングを表わす のに必要なビット数が、繰返しシンボルストリングの平均長よりも少ないとき、 1以上の圧縮比を達成することができる。
この種の適応圧縮体系は、IEEE Transactions on Inf ormation Theory、 Vol、24. No、5.pp、530 −536(1978年9月)の「可変速度符号化を介する単一シーケンスの圧縮 」と題する文献の中で、ジャコブ・ジブ及びアブラハム・レンベルにより紹介さ れた。この方法は、圧縮装置に入力されるとき、データからシンボルストリング のテーブル又は辞書を作成する。そして、特定ストリングが出会う次の時、その 対応辞書インデックスは、シンボルストリングの代わりに伝送される。この圧縮 体系は、LZ78と称されるもので、圧縮を実行するために、そのデータに関し てワンパスだけ必要とする。
1984年、テリー・ウエルチは、IEEE Computer、 Vol、1 7、 No、6. pp8−19(1984年6月)の「高性能データ圧縮のた めの技術」と題する文献の中で、LZ78の手順を変えることを提案した。この データ圧縮の体系は、LZWアルゴリズムと称され、これもまた、データに関し てワンパスだけ必要とする。それはテーブルの周辺に編成され、キャラクタのス トリングから構成され、ここで各ストリングは固有のものである。各ストリング は、先の入力の中でこのように遠くで見られた最長マツチングストリングと、こ のストリングを先行ストリングと区別させる1バイトを表わす固定長符号によっ て参照される。各ストリングは、ストリングが入力される時に決定された次の使 用アドレス(next available address)のテーブルに格 納される。
圧縮装置の中にデータが入力されるとき、圧縮装置はシンボルをストリングにバ ーズする“。前述したように、各ストリングは、先の入力の中で遠く見られる最 長マツチングストリングと、このストリングを先のストリングと区別させる1シ ンボルとから構成される。これらのストリングは次に、テーブルに加えられ、ω にとしてコード化される。ここで、ωは先のストリングのインデックス、つまり プレフィックスであり、Kはこのストリングを先のストリングと区別させる1シ ンボルである。Kはプレフィックスストリングωの拡張キャラクタと呼ばれ、そ の正常2進表示により表わされる。テーブルの中に格納されるストリング毎に、 そのプレフィックスωもまたテーブルの中に格納される。プレフィックスωは、 テーブル内のそのアドレスの2進表示によって表わされる。
ωを表わすのに用いられるビットの数は、使用されるべきテーブルのサイズに依 存する。例えば、テーブルが4096のエントリまで保持できるようにする場合 、ωを表わすために12個のビットを必要とする。ストリングテーブルは、その 初期アドレスの中に単一シンボルのストリングを全て収容するために、初期化さ れる。この初期化はデータ圧縮をより速く行なえる。その理由は、ストリングテ ーブルは少なくとも2個のキャラクタ−長であるストリングを作り始めるので、 それらが入力されるとき、単一シンボルのストリングを格納しなくてもよいから である。
この技術を表わすアルゴリズムについて、ウエルチは次のように記載している。
工n1t−ialize table to conLain single− characjer strings。
Read first 1npuj characヒsr −−> prefi x string bStep: Read next 1nput char acter K工t no 5uch K(input axhaustad) :code(11−−>output; EX工T工f bK exist、s  in string jabla:kK−−>k: repeaヒ 5tep else bK noヒ in st、ring t+able:code(勘 )−−>ouヒput; bx−−> string table;x−−> ra; repeaヒ 5 tep。
単一キャラクタのストリングを収容するためにテーブルを初期化する。
最初の入力キャラクタを読む −〉プレフィックスストリングω ステップ二次の入力キャラクタKを読むもし、Kかない場合(入力を使い尽くし た):コード(ω)−〉出力;EXIT もし、ωKがストリングテーブルの中に存在する場合− ωに−〉ω;ステップを繰り返す 他にωKがストリングテーブルの中にない:コード(ω)−〉出力; ωに−〉ストリングテーブル; に−〉ω;ステップを繰り返す このアルゴリズムは、入力されたデータから、一度に1キヤラクタずつ、ストリ ングを作成する。もし、ストリングωKが既にストリングテーブルの中に存在す るとき、そのロケーションはωの中にブレイス(place)され、次のキャラ クタKが加えられて、新しいストリングωKを作成する。この新しいストリング ωKが、ストリングテーブルの中に既に存在する場合、そのロケーションはωの 中にブレイスされ、次のキャラクタには加算されて、新しいストリングωKを作 成する。このプロセスは、ストリングがストリングテーブルの中に見つからなく なるまで続けられる。ストリングがストリングテーブルの中に見つからない場合 、ωが出力され、ωにはストリングテーブル内の次の使用アドレスに格納され、 Kは次にωに格納される。その結果、次のストリングωには、格納された最後の ストリングの拡張(extension)キャラクタから開始する。
このアルゴリズムがどのように作業するかについて、”abcbcab”のデー タフローを圧縮する簡単な例を用いて説明する。この例はテーブル1に示されて おり、入力コード、出力コード及びストリングテーブルが示されている。図1は 、この例から構成されるストリングテーブルのトリー表示(trie repr esentation)である。この例で使用されるキャラクタは、3種類の異 なるキャラクタだけであり、”a”はロケーション”1”に、”b”はロケーシ ョン”2“に、”C”はロケーション”3”に夫々格納されるように、ストリン グテーブルは初期化されることができる。入力データの第1キヤラクタのロケー ション”a”が読まれ、ωの中に配置される。次のキャラクタ”b”が読まれ、 その2進表示がKにブレイスされ、”a”と”b”は−緒になってストリングω Kを表わし、これは”1b“に等しい。ここで、テーブルはストリング1b”に 対して検索される。このストリングはストリングテーブルの中にまだ存在しない ため、テーブル内の次の使用アドレス”4”に格納される。プレフィックスωは 圧縮装置から出力され、メモリ内の圧縮データの一部として格納されるか、或は 他のコンピュータに伝送される。
Kに格納されたキャラクタのアドレスは、このとき、”b”となっており、”b ”はωに格納される。このときのωは−2”に等しいことを意味する。次のキャ ラクタ”C”はKに格納され、ωには2c”に等しい。テーブルは、次に、また 存在しないこのストリング2c”に対して検索される。このストリングはまだ存 在しないため、次の使用アドレス”5”に格納される。プレフィックス”2”は 、次に出力され、圧縮データの一部として伝送又は格納されるようにする。この とき、Kに格納されたキャラクタのアドレスは”C”となっており、”C”はω に格納され、ωは”3”に等しい。次のキャラクタ−”b”が読み出されて、K に格納される。このどき、ωには”3b”に等しい。
このストリングはまだ存在しないから、それは次の使用アドレス”6′に格納さ れる。プレフィックス”3”が出力され、Kに格納されたキャラクタのアドレス はωに格納される。次のキャラクタ”C”はKに格納され、このときωには”2 c”に等しい。ストリングテーブルはこのストリングに対して検索され、それは ロケーション”5”で見つけられる。このロケーションは次にωに格納され、次 のキャラクタ”a”が読まれてKに格納される。これは、ωKが”5a“に等し いことを意味する。テーブルは次に、このストリングに対して検索される。それ はストリングテーブルにまだ存在しないから、次に使用可能なロケーション”7 ”に格納される。プレフィックス”5”は、次に出力され、Kに格納されたキャ ラクタのロケーションは、ωに格納され、次のキャラクタ”b“はKに格納され る。
このとき、ωには”1b“に等しい。テーブルは次に、このストリングに対して 検索され、それはロケーション4で見つけられる。このロケーションはωに格納 される。
データフローに次のキャラクタはないから、ωが出力され、圧縮は終了する。
人力シンボル abcbcab 出力コード 123 5 4 ストリングテーブル ロケーション 三二上豆テーブル1:圧縮例は、添付のス トリングテーブルを用いて5個の出力コードまで圧縮された7ビツトの入力スト リームを示している。
上記の例は、7個のキャラクタ“abcbcab“のデータフローをとったもの で、それを5個の出力キャラクタ”12354”に圧縮した。ストリングテーブ ルに伴って、5個の出力キャラクタは、7個の入力キャラクタを完全に表わして いる。この例に示されるように、データブロックが増すにつれて、圧縮比は改善 される。最初の3個のキャラクタの圧縮比は1であり、7個のキャラクタ全部に 対する圧縮比は715つまり1.4である。この比率は、データブロックがより 多くのキャラクタに拡張されるにつれて更に改善される。
圧縮解除は、出力コードのグループがそれらのストリングテーブルを伴う限り、 出力コードグループのLZWアルゴリズムを用いて達成することができる。圧縮 解除を行なう間、コードが圧縮装置から出力されたとき圧縮解除装置はコードを 採用し、各コードをそのプレフィックスと拡張キャラクタに翻訳する。拡張キャ ラクタが出力され、プレフィックスによって表わされたロケーションに格納され たストリングはそのプレフィックスと拡張キャラクタに分離される。このプロセ スは、プレフィックスが単一シンボルのストリングを含むまで続けられる。
これが起こるとき、シンボルは出力され、次のコードがメモリから読み出される 。それはそのプレフィックスと拡張キャラクタに分離される。拡張キャラクタは 次に出力され、プレフィックスによって表わされたロケーションに格納されたス トリングは、そのプレフィックスと拡張キャラクタに分離される。このプロセス は、圧縮解除されるべきコードがなくなるまで続けられる。
圧縮解除装置は、ストリングを探索するために、圧縮装置により作成されたスト リングテーブルと同じストリングテーブルを用いる。コードが翻訳されるとき、 圧縮解除装置は、圧縮装置のストリングテーブルと同一であって、装置固有のス トリングテーブルを作成する。各々の新しいコードが受信されると、ストリング テーブルは更新(update)される。ウエルチは、圧縮解除アルゴリズムを 次のように記載している。
Decompression: Read first 1npuヒ code  −−> C0DE −−>0LDcode;with C0DE=COde( K)、K−> 0ujpuL;Naxt Code: Read next 1 nput、 code −−> C0DE−−>1NCOde ;工f no  new code; EX工’L else:Next:、Symbol: 工 f C0DE=code(bK): K −−> outpuし;code(& ) −−> C0DE; Repli!am NaXt SymbolElse if C0DE=cod e(K): K −−> ouヒput;0LDcOde; K −−>st、 ring t、abla;工Ncode −−> 0LDcode+Repea t Next Code。
圧縮解除:最初の入力コードを読む−> C0DE−OLDcode ; C0 DE= code(K )で、に−>出力;次のコード二次の入力コードを読む −> C0DE−> INcode ; 新しいコードがない場合; EXIT。
他; 次(D ’/ ンボル: C0DE= code(ωK )のとき:に−>出力 ; code(ω)−> C0DE ; 次のシンボルを繰り返す 他に、C0DE = code (K )のとき二に−〉出力; 0LDcode ; K−−>ストリングテーブル; INcode−−> 0LDcode ;次のコードを繰り返す 上記のアルゴリズムには2つの問題がある。第1の問題は、各ストリング内の文 字が圧縮解除されるとき、圧縮装置に入力された順序(order)と逆の順序 で出力されることである。第2は、圧縮解除の際、エラーを生じさせる異常事態 である。このエラーが起こるかもしれないのは、第2のストリングが圧縮解除前 にストリングの1シンボルエクステンシヨンにすぎないときで、この1シンボル が第2ストリングの第1シンボルと同一のときである。この状態が起こるのは、 圧縮解除装置は圧縮装置のストリングテーブルと同じストリングテーブルを作成 するためであるが、それは圧縮装置の後の1ステツプであるから、圧縮解除装置 がこのコードを受信するとき、コードはストリングテーブルにまだ存在しない。
この圧縮解除装置のアルゴリズムがどのように動作するかの一例として、前述の 如く発生した出力コードは、圧縮解除されて元の形態に復活する例を示す。この 圧縮解除の例はテーブル2に示しており、これは、圧縮解除装置から出力される のと同じ順序のコード人力とデータ出力を示している。第1のコード”1”が読 まれ、その拡張(extension)キャラクタ”a”が出力される。次のコ −ド゛2”が読まれるが、それも1キヤラクタ”b”から構成されるだけである から、このキャラクタは出力される。
第3のコード”3”が読まれ、”C”が出力される。次のコード“5”が読まれ 、そのプレフィックス”2”とその拡張キャラクタ”C”に翻訳される。拡張キ ャラクタ”C”が出力され、プレフィックスにより表わされた値に位置するスト リングは、そのプレフィックスとその拡張キャラクタに翻訳される。このストリ ング2”は、単一のキャラクタ”b”だけからなり、それが出力される。最後の コード”4”が読まれ、そのプレフィックス”1”とその拡張キャラクタ”b” に翻訳される。拡張キャラクタ”b”か出力され、プレフィックスに表わされた 値に位置するストリングがそのプレフィックスと拡張キャラクタに翻訳される。
しかし、このコード”1”は単一のキャラクタ”a”から構成されるから、その キャラクタは出力される。
テーブル2に示されるように、コードの圧縮解除は、”abccbba”が出力 される結果となる。この出力は、圧縮装置に入力された元のデータと同じでない 。このデータがその入力フォーマットに正確に復元されなかった理由は、各々の 多重キャラクタストリング中で、データが圧縮解除されるときに逆になってしま ったからである。
キャラクタの各ストリングをその正しい順序に復元するには、各ストリングは圧 縮解除装置から出力された順序と逆の順序でなければならない。最初の3つのス トリングは、全て単一シンボルのストリングであるから、逆順序にする必要はな い。次のストリングは”cb”として出力された。逆の順序にすると、このスト リングは”be”となり、これは入力されたストリングの順序と同じである。最 後のストリングは”ba”として出力された。これを逆の順序にすると、このス トリングは”ab”となり、これは入力されたストリングの順序と一致する。最 後の2つのストリングを逆にした後、その出力は”abcbcab”となり、こ れは圧縮装置に入力されたデータフローと全く同じである。
圧縮解除装置へ のコード人カニ12354 出カニ abccb  a テーブル2:圧縮解除の例は、テーブル1で圧縮されたデータの圧縮解除を示し ている。
この方法とLZWアルゴリズムを実行する装置は、ウエルチに付与された米国特 許第4,558.302号に記載されている。この装置は、格納と限定されたハ ツシング検索手順にランダムアクセスメモリを用いており、ストリングテーブル を通じて検索し、拡張ストリングをランダムアクセスメモリに入力する。本発明 において、データの圧縮と圧縮解除を行なうために、上記特許に開示されたLZ Wアルゴリズムが用いられる。この装置は、後入れ先出し方式(LIFO)スタ ックを用いて、圧縮解除装置から出力されるストリング内のキャラクタの順序を 逆にするものである。このLIFOスタックは、ストリングを一度に1キヤラク タずつスタックにブツシュする。次にストリング全体が一旦プッシュされると、 キャラクタは次に、ブツシュされた順序とは逆の順序で一度に1つずつスタック からポツプオフ(pop off)される。圧縮解除装置は、次のストリングを スタックにブツシュする前に待機しなければならない。一方、現在のストリング はスタックからポツプオフされる。
必要なことは、データ圧縮装置が、ストリングテーブルのストリングを検索し、 同時にストリングをテーブルに書き込むことである。ストリングテーブルに対し て検索と書込みを同時に行なうことにより、圧縮に必要な時間を短縮することが でき、1キヤラクタはクロ・ンクサイクル毎に入力することができる。ストリン グのりバーサル機構もまた、余分なメモリスペースを必要とすることなく、他の ストリングがスタックからポツプオフされるとき、データ出力を圧縮解除装置か ら取り出し、1ストリングをスタックにブツシュできる能力を具備している必要 がある。
&脚立1遣 本発明の単一クロックサイクルデータの圧縮装置/圧縮解除装置はストリングリ バーサル機構を具えており、データを適応圧縮し、先に圧縮されたデータを解除 し、データを元のフォーマットに復元するために、圧縮解除されたデータのスト リング内のキャラクタをリバースすることができる。圧縮装置は、クロックサイ クルにつき、1キヤラクタの割合でデータを圧縮することができる。
内容参照可能メモリ(連想記憶装置)を用いて圧縮をより高速で行なうことがで きる。内容参照可能メモリ(content addressable mem ory)は、同じクロックサイクルの間、書込みと検索の機能を実行する能力を 有している。キャラクタのストリングは、符号化され、ストリングテーブルに格 納される。入力データは、次に、ストリングテーブル内に既に格納されたストリ ングに一致させる。ストリングテーブルは、データが入力されるときに作成され 、ストリングテーブルの内容は、圧縮されるべきデータに完全に依存している。
ストリングテーブル内に格納された各ストリングは、多数のキャラクタを表わし ており、先の入力に見られる最長マツチングストリングとこのストリングをスト リングテーブルに格納されたストリングの残り全部と区別させる1キヤラクタの ストリングテーブル内のロケーションとして格納される。
圧縮解除では、ストリングのコードは圧縮解除装置に出力され、各ストリングを 区別させる1キヤラクタが分離され、出力される。このように遠くに(far) 見られた最長マツチングストリングのアドレスに格納された拡張キャラクタは、 次に分離され、出力される。これは、ストリング内の全てのキャラクタが出力さ れるまで行なわれる。圧縮解除では、各ストリング内のキャラクタは、人力され た順序とは逆の順序で出力される。ストリングリバーサル機構は、ストリング内 のキャラクタの順序を逆にし、そのキャラクタをその正しい順序で出力するため に使用される。
ストリングリバーサル機構は、1のストリングを、圧縮解除装置から他のストリ ングを入力するのとは逆の順序で出力できる能力を有しているから、圧縮解除を 高速で行なえる。ストリングリバーサル機構には、2個のデュアルポートランダ ムアクセスメモリが用いられ、各メモリは同時に入力と出力を行なえる能力を有 している。
第1のデュアルポートランダムアクセスメモリは、逆にすべきストリングを一度 に1キヤラクタずつ格納するために使用される。第2のデュアルポートランダム アクセスメモリは、第1のデュアルポートランダムアクセスメモリに格納された 各ストリングの開始アドレス(beginning address)と終了ア ドレス(ending address)を格納するために使用される。
ストリングリバーサル機構を具えた単一クロックサイクルデータの圧縮装置/圧 縮解除装置は、データのブロック内に格納された情報量を減少させることなく、 格納又は伝送すべきデータのブロックのサイズを小さくすることができる。次に 、圧縮解除装置とストリングリバーサル機構は、格納又は伝送された圧縮データ を、元のフォーマットに変換することができる。
1画Δ1工立説墨 図1は、データ7o−”a b c b c a b”を用いたLZWストリン グテーブルのトリー表示である。
図2は、ストリングリバーサル機構を具えた単一クロックサイクルデータの圧縮 装置/圧縮解除装置のブロック図である。
図3は、ストリングリバーサル機構のブロック図である。
ましい の− な看日 ストリングリバーサル機構を具えた単一クロックサイクルデータの圧縮装置/圧 縮解除装置の望ましい実施例を図2に示している。この装置は、クロックサイク ル毎に、1の未圧縮シンボルの割合でデータを圧縮又は圧縮解除することができ る。本システムは、内容参照可能メモリ(4)を用いており、該メモリからデー タの読出し、該メモリへの書込み又は該メモリの検索を行なうことができる。使 用されるLZWアルゴリズムは、データの圧縮をより速くより効率良く行なうこ とができるように改善されている。ストリングリバーサル機構(6)は、圧縮解 除装置(2)から出力されたストリング内のキャラクタの順序を逆にするために 用いられる。このストリングリバーサル機構は、システムから出力する際、デー タを元のフォーマットに復元させることができる。本システムは、無損失データ 圧縮を実行し、データ格納、データ伝送等のあらゆる種類のアプリケーションに 利用することができる。なお、アプリケーションは、データの格納、データの伝 送に限定されるものではない。
図2に示される如く、圧縮装置モジュール(1)は、8ビツトの入力バス(21 )に接続され、圧縮されるべきデータを一度に1バイトのデータずつ入力できる ようにする。
圧縮装置モジュールは、データ圧縮の制御を行なうコントローラ(3)に、制御 ライン(22)を通じて結合される。
圧縮装置モジュール(1)は、双方向20ビツトストリングデータバス(25) と双方向12ビツトアドレスバスにより、内容参照可能メモリ(4)に結合され 、圧縮データのストリングの格納と検索が行なわれる。圧縮データを遠隔位置に 送信するために、圧縮装置モジュールの出力(33)は、伝送ライン(40)に より、メモリ、ディスク又は他のコンピュータに結合される。
メモリ、ディスク又は伝送ライン(40)もまた、圧縮解除を行なうために、デ ータを圧縮解除装置モジュール(2)に転送することができる。圧縮解除装置モ ジュールは、制御ライン(24)により、データの圧縮解除の制御を行なうコン トローラ(3)に結合される。圧縮解除装置モジュールは、データの圧縮ストリ ングの格納及び検索を行なうために、双方向20ビツトデータバス(27)と双 方向12ビツトアドレスバス(28)を通じて、内容参照可能メモリ(4)に結 合される。圧縮解除装置モジュール(2)はまた、8ビツトデータバス(29) を介してストリングリバーサル機構(6)に結合されており、圧縮解除されてい るが、逆順序にされるべきストリングの部分であるデータのバイトを転送する。
ストリングリバーサル機構(6)は、双方向8ビツトスタツクデータバス(30 )を介して、第1のデュアルポートランダムアクセスメモリ(7)に結合される 。
第1のデュアルポートランダムアクセスメモリは、逆順序にされるべきバイトの ストリングを格納するために、ストリングキュー(string queue) を含んでいる。第1のデュアルポートランダムアクセスメモリ(7)は、双方向 8ビツトポインタバス(31)により、第2のデュアルポートランダムアクセス メモリ(8)に結合される。第2のデュアルポートランダムアクセスメモリ(8 )はポインタキュー(10)を含んでおり、このポインタキューはストリングキ ュー(9)に含まれるストリングの開始アドレスと終了アドレスを保持する。ス トリングリバーサル機構(6)もまた、圧縮解除されて逆順序にされたバイトを 出力するために、8ビツト出力バス(32)に結合される。
内容参照可能メモリ(4)は、制御ライン(23)を通じてコントローラ(3) に結合され、圧縮と圧縮解除を行なう間、指示を送るようにする。内容参照可能 メモリは、圧縮装置モジュール(1)及び圧縮解除装置モジュール(2)の両装 置によって使用され、データの圧縮及び圧縮解除に必要なストリングテーブルを 格納する。ASCII文字セットの全部のキャラクタは、圧縮速度と圧縮効率の 向上のために、単一シンボルストリングとして内容参照可能メモリの中にハード ワイヤード(5)されることができる。望ましい実施例において、単一キャラク タストリングのコード化表現はASCI I文字セットに等しい。従って、メモ リのルックアップは圧縮解除に必要でない。
圧縮の場合、ステップはアルゴリズムにセーブされ、256のメモリロケーショ ンがセーブされる。
圧縮されるべきデータのバイトがコンピュータから、8ビツトの入力バス(21 )の圧縮装置モジュール(1)に入力される。圧縮装置は圧縮されるべきデータ のバイトをストリングにバーズする。各ストリングは、他のストリングのアドレ スと、このストリングを他のストリングと区別させる拡張キャラクタのアドレス から構成される。
ストリングは、内容参照可能メモリ(4)のストリングテーブルの中に格納され る。データのバイトがストリングに一旦圧縮されると、各ストリングの表現は次 に出力(33)されて、コンピュータの記憶装置又はディスクに記憶されるか、 又は他のコンピュータに転送される。
圧縮解除されるべきデータは、コンピュータの記憶装置、ディスク又は他のコン ピュータから圧縮解除装置モジュール(2)に送信することができる。データは 20ビツト表現のストリングとして送信され、8ビツトは拡張キャラクタを表わ し、12ビツトは残りのストリングのアドレスを表わす。圧縮解除装置(2)は 次にストリングからの各拡張キャラクタをバーズし、このキャラクタをストリン グリバーサル機構(6)に送信し、残りのストリングのアドレスに進んで次の拡 張キャラクタを検索し、それをストリングリバーサル機構に送る。ストリングの キャラクタ全部がストリングリバーサル機構(6)に送られると、この機構は次 に、キャラクタを元の順序でコントローラに出力する。
ストリングリバーサル機構を具えた単一クロックサイクルデータの圧縮装置/圧 縮解除装置の構造を図2に示している。圧縮されるべきデータは、8ビツトバス (21)を経由して圧縮装置モジュール(1)に入力される。圧縮装置は、双方 向制御バス(22)を経由してコントローラ(3)により指示され、共に、圧縮 アルゴリズムを実行する。
圧縮装置とコントローラは、両方とも内容参照可能メモリ(CAM)(4)と対 話し、ここでストリングテーブルは格納される。圧縮装置は20ビツトデータバ ス(25)と12ビツトアドレスバス(26)によりCAMに接続される。
個々のキャラクタのASCIIコードを表現するために、ストリングテーブルの 第1の256エントリが用いられる。これら256ASCI Iコード(5)を 表わす論理は、CAMにハードワイヤードされる。圧縮データは圧縮装置から他 のソース(source) (40)に出力(33)され、コンピュータの記憶 装置又はディスクに記憶するか、他のコンピュータに転送される。
圧縮解除されるべきデータは、ディスク又は他のコンピュータの如きソース(4 0)から、圧縮解除装置モジュール(2)に人力(34)される。圧縮解除装置 もまた、コントローラ(3)により指示され、共に、圧縮解除アルゴリズムを実 行する。圧縮解除装置は20ビツトデータバス(27)と12ビツトアドレスバ ス(28)により、CA M (4)に結合される。
圧縮解除装置(2)は、圧縮解除されたキャラクタを、8ビツトデータバス(2 9)により、ストリングリバーサル機構(6)に出力する。ストリングリバーサ ル機構は2つのデュアルポートランダムアクセスメモリ(7) (8)を用いる ことにより、キャラクタが8ビツト出力バス(32)から出力される前に、各ス トリング内のキャラクタの順序を逆にする。第1のデュアルポートランダムアク セスメモリ(7)は、8ビツトスタツクデータバス(30)を通じてストリング リバーサル機構からデータを受信し、圧縮解除装置から受信した順序とは逆の順 序で、一度につき1バイトをストリングを格納するために使用される。これらの ストリングは、ストリングキュー(9)の第1デユアルポートランダムアクセス メモリの中に格納される。第2のデュアルポートランダムアクセスメモリ(8) は、8ビツトポインタバス(31)により、第1のデュアルポートランダムアク セスメモリに接続され、第1のデュアルポートランダムアクセスメモリに現在格 納されている各ストリングの開始アドレスと終了アドレスを格納するために使用 される。これらのアドレスは、第2のデュアルポートランダムアクセスメモリ内 のポインタキュー(10)に格納される。
本発明は前述したように、LZWアルゴリズムに基づいたDCLZアルゴリズム を利用するものであるが、入力データブロックの圧縮効率と圧縮装置の取扱いを 改善するという追加の特徴を含んでいる。圧縮アルゴリズムの改良点として、可 変のコード長さ、制限されたストリングテーブル、制限されたストリングのサイ ズ及び圧縮比監視機能を挙げることができる。
本発明は、ストリングテーブルに格納できるエントリの数を4088に制限する 。ストリングテーブルが4088のエントリに制限されるため、必要とされる最 大コードワードは12ビツトである。望ましい実施例において、ストリングのプ レフィックスのコードワード長さは、特定のデータブロックのストリングテーブ ルのサイズに応じて、9ビツト乃至12ビツトの範囲で変動する。DCLZアル ゴリズムはストリングテーブルを4088に制限し、LZWアルゴリズムはスト リングテーブルを4096に制限することに留意すべきである。
DCLZアルゴリズムはストリングの長さを128バイト以下に制限する。12 8バイトのストリングが蓄積されると、そのプレフィックス又はω値が出力され 、次の人力バイトを用いてωを再び初期化し、新たなストリングを開始する。ス トリングサイズのこの制限は、圧縮解除装置及びストリングリバーサル機構の性 能を高めるのに寄与する。
本発明で使用する圧縮解除アルゴリズムもまた改善されている。上記したように 、LZW圧縮解除アルゴリズムは、書き込まれたときに2つの基本的な問題があ る。
1つは、入力された順序とは逆の順序でシンボルが出力されることである。もう 1つは、圧縮装置が、圧縮解除装置のストリングテーブルにまだ存在しないコー ドを出力するという特別な人力の場合である。
LZWアルゴリズムを使用するとき、異常入力状態が起こるのは、そのストリン グテーブルの作成において、圧縮解除装置が圧縮装置の後の1ステツプであるか らである。問題は、KωにωKLの形態のストリングが出会うときに起こる。な お、K、:!:Lは単−人力シンボルであり、ωはストリングであり、Kωはス トリングテーブル内に既に存在する。圧縮装置が第2のKに出会うとき、圧縮装 置は、Kωに対するコードを送信し、ストリングにωKをストリングテーブルに 追加し、ストリングにで開始する。次に、圧縮装置はLに達するまで入力をバー ズし、その時に、テーブルに加えられた最後のストリングであるにωにのコード を送信する。圧縮解除装置がこのコードを受信するとき、それはストリングテー ブルにまだ存在しない。
上記問題を引き起こす唯一のストリングは、前記した形態から構成され、ここで 第2のストリングは第1のストリングの丁度1シンボル拡張であり、その拡張シ ンボルはストリングの最初のシンボルと同一である。この問題を訂正するために 、書き込まれたアルゴリズムは、圧縮解除装置がストリングテーブル内にまだ存 在しないコードに出会うとき、最後のシンボルは先のストリングの最初のシンボ ルと同じであらねばならず、残りのストリングが先のストリングと同一であるこ とを知る。従って、作られた各ストリングの最初のシンボルが格納され、先のス トリングが01dcodeレジスターの中で使用可能であるとき、入力コードは この組合せと置き換えることができ、圧縮解除される。変更されたアルゴリズム は次の通りである: 工n1Lialize string t、able Lo conjain  all single−symbol sLringsoldcode <−− first 1nput codeKj工j]」bユ〜と21 <−−K <− −5jrin Table 01dCode 、La5jS olOujpuL  五 while more 1npuj data availableInCod e <−−Code <−−nexh 1npuL codeIf Co塁e  noj in spring tablePush Fir匹且ロ廊ルOn s ′C+ackCode <−−01dCode nd 1f OutpuL ム Code <−−5trin Table Code 、PrefixEnd  While Kユニjj」61世と≧1 <−−ム <−−!9jrin Table Co de 、La5jS olOutput、ム Add string 01dCoda + K to string tab le単一シンボルストリングを全部含ませるために、ストリングテーブルを初期 化する 01dCode<−−first 1nput dataFirstS mbo l< −−K < −−Strin Table 01dCode 、La桂鉦 畦剋 Kを出力 Wh i leもつと多くの人力データが使用可能InCode< −−Cod e< −−next 1nput codeIf Code not in s tring tableスタックに■章μ頭1吋をブツシュ Kを出力 Code<−−Strin Table Code 、PrefixWhile 終了 FirstS mbol< −−K < −一5trin Table Cod e 。
は■鉦畦1 Kを出力 ストリング01dCode+ Kをストリングテーブルに追加 01dCode< −−1ncode While終了 データの圧縮効率をより高め、圧縮速度をより速くするために、本発明では、内 容参照可能メモリ(CAM)(4)を用いて、圧縮を行なう間ストリングテーブ ルを格納する。内容参照可能メモリのセルは典型的なランダムアクセスメモリの 読出し動作と書込み動作を実行する。また、検索されるデータがセルの中に格納 されたデータと一致するかどうかを決定する追加の能力を有している。メモリの 中に格納された一致データがあるとき、コントローラに知らせるために、信号は マツチライン(match line)(23)にブレイスされる。内容参照可 能メモリは、製造プロセスが許すならば、静的なものでも、動的なものでもよい 。
本発明では、圧縮と圧縮解除の両方に、この内容参照可能メモリ(4)が用いら れる。圧縮を行なう間、CAMを用いて、ストリングテーブルを格納し、所定の ストリングが既にテーブルの中に存在するかどうかを判断するために、そのスト リングテーブルの検索を実行する。現在のシンボルストリングは、検索がシンボ ルテーブル内の同じストリングに対して行われるとき、常にシンボルテーブルに 書き込まれる。これは2つのメモリアクセスを1つに合成して、データ圧縮をス ピードアップする。
その理由は、データがメモリに書き込まれる前に、圧縮装置は、検索が完了する まで待機する代わりに、これらの動作を両方同時に実行できるからである。
データ圧縮を行なう間、内容参照可能メモリ(4)は20ビツトのデータバス( 25)と12ビツトのアドレスバス(26)を通じて、圧縮装置(1)から情報 を受信する。20ビツトのデータバスは、各ストリングに情報をキャリーし、最 初の12ビツトはストリングのプレフィックスωのために確保され、最後の8ビ ツトはストリングの拡張キャラクタにのために確保される。12ビツトのアドレ スバスは、ストリングコードを書き込むことのできるストリングテーブル内の次 の使用アドレスをキャリーする。
内容参照可能メモリ(4)は、同じストリングが12ビツトのアドレスバス(2 6)によって表示されたアドレスに書き込まれると同時に、20ビツトのデータ バス(25)にストリングが存在するかが検索される。ストリングがCAMの中 に見つけられると、Matchラインは、ストリングとの一致が見つけられたと いう信号を発し、ストリングが見つけられたCAMアドレスは、コントローラ( 3)に出力される。ストリングが見つけられ、ストリングテーブル内に既に存在 するから、ストリングテーブルの中に再びそれを格納する必要はない。従って、 コントローラ(3)は、12ビツトのアドレスバスにより表示されたアドレスを インクリメント(increment) Lないがら、丁度書き込まれたアドレ スロケーションは次のクロックサイクルの上に上書きされる。もし、ストリング がCAMの中に見つからない場合、Matchラインは、ストリングとの一致は 見つからなかったという信号を発する。この場合、このストリングをストリング テーブルの中に格納することが必要である。ストリングはCAMが検索されてい る間に既に書き込まれているので、ストリングテーブル内のストリングをセーブ するために必要なことは、12ビツトのアドレスバスによって表示されたアドレ スをインクリメントすることだけである。このため、次のクロックサイクルのと き、CAMは辞書に加えられたばかりのストリングに上書きしなくてもよい。
提案された圧縮装置の性能は、インクリメントアドレス機能を取り除き、Cod e出力とMatch出力をクロックサイクルによってパイプライン処理すること によってさらに高めることができ、それら出力は先のクロックサイクルで行なわ れた検索結果を常に表わす。この高性能バージョンでは、2つのアドレスバスは 、圧縮装置モジュール(1)、Address及びNextAddressから 出力される。ここで、NextAddressはAddressの値よりも常に 1大きい。この高性能バージョンでは、論理はCA M (4)に加えられ、有 効書込みアドレスは、パイプラインされたMatch信号によって表示された先 の検索結果に基づいたAddress又はNextAddressのどちらかか ら選択されるようにする。
ストリングがストリングテーブルの中で見つけられた場合、Matchラインの ポテンシャルはハイとなり、先の検索によりストリングテーブル内にストリング が見つかったことを表示し、ストリングは、内容参照可能メモリ内のAddre ssによって表わされるロケーションに書き込まれ、そのロケーションにおける 先の内容に上書きし、AddressとNextAddressはインクリメン トされない。ストリングがストリングテーブルの中に見つからない場合、Mat chラインのポテンシャルはローのままであり、先の検索でストリングテーブル 内にストリングが見つからなかったことを表示し、ストリングは次にNextA ddressに書き込まれる。Addressによって表示されたCAMロケー ションは先のクロックサイクルのときに書き込まれており、そのロケーションは 修正されずに、AddressとNextAddressの両方がインクリメン トされる。
本発明において、ストリングテーブルは4088の分離したロケーションに制限 され、その中の最初の256のロケーションは、各々が単一バイトのキャラクタ を表わす。なお、これらの制限を大きくすることができることは勿論である。こ れら256のキャラクタはASCII文字セットの中に含まれるキャラクタであ り、それらのアドレスはASCIIコードの値を表わす。これらキャラクタは初 期化される毎に内容参照可能メモリ(4)の夫々のアドレスの中に書き込まれる ことができるし、又は常に存在するようにCAMの中にハードワイヤードされる こともできる。さらにまた、最初の256アドレス位置(5)とコードはCAM の中にハードワイヤードされることもできる。ロケーションO乃至ロケーション 255の各ストリングは、そのアドレスと同じ値を有し、その後に空プレフィッ クスコード”0000”が続く単一ハイドからなる。”a”のASCIIコード は”01100001”であり、そのコードで表わされるアドレスに格納される ストリングは、空プレフィックスであり、その後の”a−のASCII:l−ド は”oooo 01100001”となる。これらの最初の256のテーブルエ ントリは、書き込まれることは決してなく、単に読まれて検索されるだけである 。このため、内容参照可能メモリさらにはリードオンリーメモリの言語を作成し てそれらを保有するというよりはむしろ、簡単な組合せ論理が加えられて、これ らロケーションに対してCAM動作をシミュレートする。
本発明にあっては、動的な内容参照可能メモリCDCAM)(4)を用いること ができる。このため、周期的にリフレッシュする必要がある。制御論理は正常な 動作を周期的に停止し、リフレッシュサイクルを生成する。このリフレッシュサ イクルでは、アドレス列(address of arow)を一度に12ビツ トのアドレスバス(26)にブレイスし、リフレッシュ信号を表明する;このサ イクル中、Read、 Write及び5earch信号は表明されるべきでな く、InputDataバスの値は無視される。DCAMはその列(row)の 全てのビットの内容を同時にリフレッシュする。リフレッシュサイクル中、セル の内容を再生成することに加えて、その列のワードがDCAMに書き込まれると きはいつでも、列全体をリフレッシュできる能力が付与される。
圧縮の間、ストリングを表わすコードが圧縮装置モジュール(1)から出力され るとき、前記コードは、格納されるべき場合はディスクの如き装置(40)に送 られ、転送されるべき場合は他のコンピュータに送られる。圧縮解除の間、コー ドは、ディスクの如き装置(40)又は他のコンピュータから、圧縮解除装置モ ジュール(2)に入力される。次に、圧縮解除装置は、各ストリングをその拡張 キャラクタとそのプレフィックスに分離することにより、一度に1バイトずつス トリングを復号化する。拡張キャラクタは、次に、ストリングリバーサル機構( 6)に出力され、プレフィックスによって表されるアドレスに格納されたストリ ングは、そのプレフィックスと拡張キャラクタに分離される。このプロセスは、 単一キャラクタストリングが、そのASCI I値を表わすコードが空プレフィ ックスに達するまで続けられる。空プレフィックスに達すると、ストリングの最 後のキャラクタは、ストリングリバーサル機構に出力され、新しいコードは圧縮 解除装置モジュールに入力される。キャラクタが圧縮解除装置からストリングリ バーサル機構に出力される順序は、キャラクタが圧縮装置に入力された順序とは 逆であり、各ストリングの最後のキャラクタの入力は、ストリングリバーサル機 構からの最初のキャラクタ出力である。
ストリングリバーサル機構(6)は、各ストリング内のキャラクタを取り出し、 それらを逆順序にする能力を有しているから、それらが出力されるとき、圧縮装 置に入力された順序で現われる。ウエルチによって行なわれたように、簡単なス タックを用いて出力ストリングを逆にすることができるが、ストリングが一旦ス タックにブツシュされた後は、圧縮解除装置(2)は、次のストリングのブツシ ュを開始できる前に、そのストリングがスタックから完全にポツプオフされるま で待機しなければならない。第2のストリングがスタックの他端からポツプオフ されるとき、スタックの一端にストリングをブツシュできるようにすることによ り、デュアルエンディラドスタックはこれを幾分助長する。もしそれが2つのス タックヘッドを維持し、同時にブツシュとポツプを実行できる能力を有する場合 、2つのストリングを同時に処理するために、最長ストリングを十分に保持でき るこの種スタックを用いることができる。このデュアルエンディラドスタックは 、それでも、その問題を効率的に完全に解決できるわけでない。もし、非常に長 いストリングが、そのあとに単一バイトストリングとなるスタックにブツシュさ れると、圧縮解除装置は、最初のストリングが継続前に完全にポツプオフされる のを待機しなければならない。
多重スタックを用いることもでき、もし使用可能なスタックが十分にある場合、 圧縮解除装置(2)は、ストリングをブツシュするスペースをめて待機しなくて もよい。本発明において、逆順序にされるべき出力ストリングは、128キヤラ クタ以下の長さに制限されている。
従って、必要なスタックの数は容易に決定されることができる。圧縮解除装置が 作ることのできる最も需要の多いのは、一連の単一バイトストリングがあとに続 く最長ストリングの場合である。最初のストリングは128バイトに制限されて おり、128番目の単一バイトストリングがブツシュされる時までに、最初のス トリングはスタックから完全にポツプオフされてしまい、そのスタックは次のス トリングに使用可能であろう。これは、圧縮解除装置が作ることのできる最も需 要の多い場合であるので、必要なスタックの最大数は129である。
他のスタックがブツシュオンされる前に、スタックがポツプオフされるのを待機 することなく、圧縮解除装置(2)を効率良く動作できるようにするためには、 最長129のスタックを使用せねばならないだろう。128バイトを保持し得る 129のスタックを実行するために、各スタックは16512バイトのメモリを 必要とし、その大部分はどんな時間にも使用されないであろう。この方法は、あ まりに多くの量のメモリを必要とするので好ましくない。望ましい方法は、他の ストリングがスタックにブツシュされていたときにストリングをポツプオフする ことができ、多重ストリングを保持することのできる循環スタック(circu lar 5tack)を実行することである。
スタックの数を64に減じることにより、性能を著しく損なうことなく集積回路 の領域を節約することができる。
リバーサルバッファが環状キュー (circular queue)として考 察される場合、即ち、スタックのセットよりむしろリングバッファの場合、必要 なメモリははるかに少なくてすむ。各スタックのトップでポインタを維持する代 わりに、いわゆるヘッドポインタ及びテイルポインタと呼ばれる一対のポインタ を保存しておき、キューの各ストリングの開始位置と終了位置を夫々求めること ができる。逆順序にされるべきストリングがストリングリバーサル機構(6)に 書き込まれるとき、次に使用可能な対のポインタは、ストリングキュー(9)の 次の使用ロケーションにセットされる。ストリングの最終が受信されると、ヘッ ドポインタ及びテイルボインタがセーブされ、新しい一対のポインタが、キュー の中の次のバイトに割り当てられる。ストリングを逆にするために、ヘッドポイ ンタにアドレスされたバイトが出力され、ヘッドポインタはテイルポインタに達 するまでデクリメント(decrement)され、ストリングの最後のバイト が出力される。このストリング全体が一旦出力された後、対のポインタは他のス トリングに対して使用可能である。
この循環スタックを実行するために必要な循環キューのサイズは、多重スタック 技術を実行するために必要なメモリ量よりも実質的に少ない。圧縮解除装置(2 )によって作られる最需要状態は最長のストリングであり、その後の数多くの単 一バイトストリングは最大ストリングの長さに等しい。ストリングの最大長さは 128バイトに制限されているから、ストリングキュー(9)は、ストリングが ポツプオフされる間、圧縮解除装置に待機を強いることなく、この最も需要の多 い事態を収容するために256バイトを保持できなければならない。
各ストリングのヘッドポインタとテイルポインタもまた、循環キュー、ポインタ キュー(10)の中で格納されることができる。ストリングキュー(9)は25 6バイト長さであるので、その中でロケーションを指定するために使用される各 ポインタは8ビツトの長さでなければならない。次に、ストリングキューは、ス トリングキューに格納されたストリングを表わす128対のポインタを格納する ために、256バイトの長さが必要である。2対の8ビツトレジスタは、挿入ポ インタ(13) (14)及び除去ポインタ(11) (12)に対しても必要 であり、2つの7ビツトレジスタは、ポインタキューのヘッドポインタ(16) とテイルポインタ(15)に使用されるために必要である。ストリングキューの ヘッドポインタとテイルポインタは、対のポインタが格納されるポインタキュー のアドレスのトラックを保存するために用いられる。
本発明は、2つのデュアルポートランダムアクセスメモリ(RA M )(7)  (8)を循環キューとして利用し、図2に示すストリングとポインタを格納す る。第1のデュアルポートRA M (7)が用いられて、逆にされるべきシン ボルのストリングを格納し、第2のデュアルポートRAM(8)が用いられて、 第1のキュー(9)内の各ストリングの最初と最後のシンボルのアドレスを格納 する。デュアルポートRAMを用いることにより、エントリを各キューに加える ことと、各キューから取り除くことを同時に行なうことができる。
ストリングが圧縮解除装置(2)から出力されるとき、各キャラクタはストリン グキュー(9)の中に格納され、その開始アドレスと終了アドレスは、ポインタ キュー(10)の中に格納される。ストリングの全てのキャラクタは、ストリン グキューにブツシュされたとき、次に逆の順序でポツプオフされ、ストリングリ バーサル機構(6)から出力される。ストリングキューは一度に多数のストリン グを保持する能力を有しており、−ストリングがストリングキューにブツシュさ れるとき、他のストリングはストリングキューからポツプオフされることができ る。入力と出力を同時に行なう能力は、2つのデュアルポートランダムアクセス メモリ(7)(8)により実行される。
第2の循環キューはポインタキュー(lO)と呼ばれるが、これはストリングキ ュー(9)に格納されている各ストリングの開始アドレスと終了アドレスを格納 するためである。キャラクタは圧縮解除装置(2)から出力されるとき、それら はストリングキューの中に書き込まれ、生成可能な最大長さの2つのストリング 、つまり合計256のキャラクタを保持するために十分なスペースを提供する。
ストリングの第1シンボルがストリングキューに書き込まれるとき、それが書き 込まれたアドレスは、ポインタキューのそのストリングのヘッドポインタとして 格納される。ストリングの最後のシンボルは、ストリングキューに書き込まれる とき、書き込まれたアドレスは、そのストリングのテイルボインタとして格納さ れる。この対のアドレスは次に、ストリングキューの中のストリング位置を決め るために用いられる。このアドレス対を用いると、ストリングキューの中でスト リング位置がめられ、ストリングキュー内で1組の[仮想スタック(virtu al 5tacks)J作り出されるので重要である。
ストリングリバーサル機構(6)は、シンボルのストリングキュー(9)への挿 入とストリングキューからの除去を制御するのに必要な論理を含んでいる。これ ら2つの制御要素は独立して動作し、他のストリングがストリングキューからポ ツプオフされるとき、ストリングをストリングキューに同時にブツシュされるこ とができる。挿入制御論理は、シンボルをストリングキューに書き込み、現在の ストリングに対してスタートポインタとエンドポインタを蓄積することができる ように応答可能である。
ストリングが完了すると、挿入制御論理は、スタートポインタとエンドポインタ をポインタキュー(10)に書き込み、そのキューに対する挿入ポインタを更新 し、新しいストリングを開始する。
除去制御論理は、シンボルをストリングキュー(9)から読み出し、各ストリン グのスタートポインタとエンドポインタを用いてそれらを出力する。データを逆 にするために、シンボルは、それらが挿入された順序とは逆方向に、エンドポイ ンタからスタートポインタまで取り除かれる。ストリングが完了すると、次のス トリングのスタートポインタとエンドポインタがロードされ、除去ポインタがそ のキューに更新される。
ポインタキュー(10)のサイズは、2つのポインタの代わりにストリングの間 に1個のポインタを格納することにより、半分に削減することができる。バッフ ァの中の一方のストリングの最後が次のストリングの最初に対応しているから、 ポインタキューの各ストリングに対するスタートポインタ及びエンドポインタの 両ポインタを格納する必要はない。単一ポインタはストリングの間で格納される ことができ、一方のストリングの最後及び次のストリングの最初として用いられ ることができる。1ポインタを1ストリングの最後及び次のストリングの最初と してのみ用いることにより、ポインタキューに必要なデュアルポートRAM8は 半分だけ少なくすることができる。しかし、これを実行するために、挿入及び除 去論理の複雑性が増すことになる。
ストリングリバーサル機構を具えたこの単一クロックサイクルデータの圧縮装置 /圧縮解除装置は、適応性を以てデータを圧縮し、先に圧縮されたデータを圧縮 解除し、そのデータを元のフォーマットに復元するために、圧縮解除されたデー タのストリングの中のキャラクタを逆順序にすることができる。圧縮装置は、ク ロックサイクル毎に1キヤラクタの割合でデータを圧縮することができる。内容 参照可能メモリは、圧縮をより速く行なうために用いられる。内容参照可能メモ リは、同じクロックサイクルの間、書込みと検索を実行するための能力を有して いる。キャラクタのストリングは符号化され、ストリングテーブルの中に格納さ れる。入力データは、次に、ストリングテーブルの中に既に格納されたストリン グにマツチされる。ストリングテーブルは、データが入力されるときに作成され 、ストリングテーブルの内容は圧縮されるべきデータに完全に依存している。ス トリングテーブルの中に格納された各ストリングは、多数のキャラクタを表現し 、先の入力と−のキャラクタに見られる最長マツチングストリング及びこのスト リングをストリングテーブルに格納されたストリングの残り全部と区別させる1 キヤラクタのストリングテーブル内のロケーションとして格納される。
圧縮解除の間、ストリングに対するコードは圧縮解除装置に出力され、各ストリ ングを区別させる1キヤラクタは分離され、出力される。このように遠くで見ら れる最長ストリングのアドレスに格納された拡張キャラクタは、ストリングのキ ャラクタ全部が出力されてしまうまで、分離されて出力される。圧縮解除の間、 各ストリング内のキャラクタは、入力された順序と逆の順序で出力される。スト リングリバーサル機構は、ストリング内のキャラクタの順序を逆にし、それらを 正しい順序で出力するために使用される。
ストリングリバーサル機構は、圧縮解除装置から他のストリングを入力するとき 、1ストリングを逆の順序で出力する能力を有しており、圧縮解除の速度を速く することができる。2つのデュアルポートランダムアクセスメモリは、ストリン グリバーサル機構の中で使用され、各々が同時に入力及び出力する能力を有して いる。第1のデュアルポートランダムアクセスメモリは、逆順序にされるべきス トリングを一度に1キヤラクタずつ格納するために使用される。第2のデュアル ポートランダムアクセスメモリは、第1のデュアルポートランダムアクセスメモ リに格納されている各ストリングの開始アドレス及び最終アドレスを格納するた めに使用される。
ストリングリバーサル機構を具えたこの単一クロックサイクルデュアルポートの 圧縮装置/圧縮解除装置は、データのブロックの中に格納された情報量を減じる ことなく、格納又は転送されるべきデータのブロックのサイズを小さくすること ができる。圧縮解除装置及びストリングリバーサル機構は、次に、格納又は転送 された圧縮データをその元のフォーマットに変換することができる。
FIG、 1

Claims (1)

  1. 【特許請求の範囲】 1.単一クロックサイクルデータ圧縮装置であって、a.入力ソースからデータ を受信する手段;及びb.同時に、受信したデータを、その元の形態又は圧縮さ れた形態のどちらかの形態で格納し、あとに受信したデータを、格納されたデー タと比較し、あとに受信したデータが格納データと一致するかどうかを決定する 手段、 を具えている。 2.請求項1に規定された単一クロックサイクルデータ圧縮装置であって、比較 手段と格納手段は、書込み、検索及び読出しを行なう手段を具えた内容参照可能 メモリによって実行される。 3.請求項2に規定された単一クロックサイクルデータ圧縮装置であって、内容 参照可能メモリは、周期的にリフレッシュを必要とするダイナミック形であり、 リフレッシュは: a.アドレス行(address of a row)を一度にアドレスバスに プレイスするステップ;及び b.リフレッシュ信号を表明するステップ、から構成される。 4.請求項2に規定された単一クロックサイクルデータ圧縮装置であって、格納 手段は、複数のストリングを格納するためのストリングテーブルを具えており、 各ストリングは、受信したデータの1データの圧縮された形態を表わし、ストリ ングテーブルは内容参照可能メモリに格納されている。 5.請求項4に規定された単一クロックサイクルデータ圧縮装置であって、各ス トリングは入力データの圧縮された形態を表わし、各ストリングは20ピットで あり、その12ピットは最長マッチングストリングのアドレスを表わし、その8 ピットはストリングの最後のシンボルを表わし、最後のシンボルは、このストリ ングを、ストリングテーブルに格納された他の各ストリングと区別させる。 6.請求項5に規定された単一クロックサイクルデータ圧縮装置であって、スト リングテーブルは4088エントリに制限され、最大ストリングの長さは128 シンボルある。 7.請求項6に規定された単一クロックサイクルデータ圧縮装置であって、スト リングテーブルに格納された最初の256のストリングは、各ストリングが各シ ンボルに対する圧縮形態を有する単一シンボルを表わし、あとに空白プレフィッ クスが続くそのシンボルに対するASCII表現である。 8.請求項7に規定された単一クロックサイグルデータ圧縮装置であって、スト リングテーブルに格納された最初の256のストリングは、内容参照可能メモリ にハードワイヤードされている。 9.請求項6に規定された単一クロックサイクルデータ圧縮装置であって、最初 の256のストリングは、格納されずに、あとに空白プレフィックスが続くその シンボルのASCII表現を利用する。 10.単一クロックサイクル適応性データ圧縮装置であって: a.入力ソースからデータを受信する手段;b.同時に、データを格納する手段 であって、入力ソースから受信したデータを、その元の形態又は圧縮された形態 のどちらかの形態で格納し、あとに受信したデータを、複数の格納データの各デ ータと比較し、あとに受信したデータが、格納されたデータの中の任意の1デー タと一致するかどうかを決定するよう構成された手段;及び C.受信データが格納データと一致するとき、信号を発生する手段、 を具えている。 11.請求項10に規定された単一クロックサイクル適応性データ圧縮装置であ って、比較手段と格納手段は、書込み、検索及び読出しを行なう手段を具えた内 容参照可能メモリによって実行される。 12.請求項11に規定された単一クロックサイクル適応性データ圧縮装置であ って、内容参照可能メモリは4088の圧縮された形態を格納する容量を有して おり、圧縮された各々の形態は20ピットを含んでおり、8ピットは受信データ の最後のバイトを表わし、12ピットはメモリ内のロケーションを表わし、受信 データの残部は格納される。 13.請求項12に規定された単一クロックサイクルデータ圧縮装置であって、 a.一度に1バイトずつ、入力ソースからデータを受信する手段を具え、各バイ トは8ピットの情報を表わしており、; b.バイトをストリングにバーズする手段を具え、各ストリングは、以前の各入 力に関する最長マッチングストリングと、最長ストリングを先行する各ストリン グと区別させてそれによって新しいストリングを形成する単一バイトからなり; C.新しいストリングをテーブルに加える手段を具え、新しいストリングは、最 長マッチングストリングとこのストリングを他のいかなるストリングと区別させ るストリングの最後のバイトのテーブルの中にアドレスを具える符号化された形 態に圧縮されておりd.各ストリング入力に対してコード化された形態を格納し 、同時に、あとの(subsequent)ストリングを、テーブルに格納され たストリングと比較し、あとのストリングが、格納されたストリングのどれかと 一致するかどうかの決定を行なう手段を具え;及びe.あとのストリングが、テ ーブルに格納されたストリングと一致するとき、信号を発生する手段、を具えて いる。 14.請求項13に規定された単一クロックサイクルデータ圧縮装置であって、 テーブルに格納された最初の256のストリングは、各ストリングが単一シンボ ルを表わし、各シンボルに対して符号化された形態を有しており、あとに空白プ レフィックスが続くシンボルに対するASCII表現である。 15.請求項14に規定された単一クロックサイクルデータ圧縮装置であって、 テーブルに格納された最初の256のストリングは、内容参照可能メモリにハー ドワイヤードされている。 16.請求項13に規定された単一クロックサイクルデータ圧縮装置であって、 最初の256のストリングは、格納されずに、あとに空白プレフィックスが続く そのシンボルに対するASCII表現を利用する。 17.単一クロックサイクルデータ圧縮装置であって:a.記憶装置は、各スト リングが複数バイトの情報を含む複数のストリングを形成するために、共にグル ープ化された複数の記憶セルからなり、各バイトは8ビットを含み、前記記憶装 置は4096のストリングを格納できる容量を有しており; b.制御論理モジュールは記憶装置を制御するために結合され; c.データバス、Stringdataは、各データラインが1ピットの情報を キャリーできる複数のデータラインからなり、Stringdataは記憶装置 と制御論理モジュールに結合され; d.アドレスバス、Addressは、各アドレスラインが1ピットの情報をキ ャリーできる複数のアドレスラインからなり、Addressは記憶装置と制御 論理モジュールに結合され; e.プリコンディショニング手段は、データバスの各ラインとアドレスバスの各 ラインを所定の論理状態電圧に予め条件設定し; f.格納手段は、Stringdataの値を、Addressの値によって表 わされたロケーションに格納し;g.比較手段は、Stringdataが、格 納されたストリングのどれかと一致するかどうかを決定するために、Strin gdataの値を格納された全てのストリングと比較し、格納手段と比較手段は 同じクロックサイクルの中で実行されることができ; h.マッチラインは、Stringdataが、格納されたストリングのどれか と一致した場合に信号を発するもので、Stringdataがストリングに一 致したときは第1の電圧レベルにあり、Stringdataが格納ストリング のどれとも一致しなかったときは第2の電圧レベルにあり; i.Addressをインクリメントする手段は、マッチラインが低ポテンシャ ルのときにAddressをインクリメントする。 18.請求項17に規定された単一クロックサイクルデータ圧縮装置であって、 記憶装置は内容参照可能メモリであり、該メモリは、格納手段及び比較手段を具 え、書込み、検索及び読出しを行なう手段をさらに具えている。 19.請求項18に規定された単一クロックサイクルデータ圧縮装置であって、 記憶装置の中に格納された最初の256のストリングは、根コードワードであっ て、各コードワードは単一シンボルを表わし、各々が、そのあとに空白プレフィ ックスが続くシンボルのASCII表現からなり、最初の256のストリングは 内容参照可能メモリの中に永久的にハードワイヤードされる。 20.ストリングリバーサル機構であり:a.キャラクタストリングの入力ソー スからデータを受信する手段; b.キャラクタストリングを格納する手段;及びC.以前に格納されたキャラク タのストリングを、格納された順序とは逆に出力しながら、あとのキャラクタス トリングを同時に格納する手段、を具えている。 21.請求項20に規定されたストリングリバーサル機構であって、格納された キャラクタのストリングを逆の順序にする手段と、受信データを同時に格納し逆 並べのデータを出力する手段は、各々が、デュアルポートランダムアクセスメモ リにより実行され、前記メモリは、キャラクタのストリングを格納して出力する 第1のデュアルポートランダムアクセスメモリと、第1のデュアルポートランダ ムアクセスメモリに格納された各ストリングの開始アドレス及び終了アドレスを 格納する第2のデュアルポートランダムアクセスメモリである。 22.請求項21に規定されたストリングリバーサル機構であって、各ストリン グの開始アドレスと終了アドレスは、単一アドレスを、第1ストリングの終了ア ドレスと第2ストリングの開始アドレスの両アドレスを表わす各ストリングの間 で格納することにより置き換えられることができる。 23.ストリングリバーサル機構であって:a.受信手段は、ストリングの入力 ソースからデータを受信し、各ストリングは複数のバイトからなり、各バイトは 8ピットの情報を含んでおり;b.格納手段は、各バイトをストリングの一部と して、入力ソースから受信した順序で格納し、C.出力手段は、ストリングの各 バイトを、バイトを受信した順序とは逆の順序で出力し、出力手段と格納手段は 同時に実施されることができる。 24.請求項23に規定されたストリングリバーサル機構であって、受信データ の格納と逆データの出力を同時に行なう手段は、各々がデュアルポートランダム アクセスメモリによって実行され、前記メモリは、キャラクタのストリングを格 納して出力する第1のデュアルポートランダムアクセスメモリと、第1のデュア ルポートランダムアクセスメモリに格納された各ストリングに対して開始アドレ ス及び終了アドレスを格納する第2のデュアルポートランダムアクセスメモリを 有している。 25.各ストリングの開始アドレスと終了アドレスは、単一アドレスを、第1ス トリングの終了アドレスと第2ストリングの開始アドレスの両アドレスを表わす 各ストリングの間に格納することによって置き換えることができる。 26.キャラクタのストリングをリバースする方法であって: a.キャラクタストリングの入力ソースからデータを受信するステップ; b.一度に1キャラクタずつキャラクタストリングを格納するステップ;及び c.次のキャラクタストリングを一度に1キャラクタずつ格納すると同時に、先 に格納されたキャラクタストリングを、格納された順序と逆順序で一度に1キャ ラクタずつ出力するステップ、 から構成される。 27.請求項26に規定されたデータをリバースする方法であって、格納と出力 を同時に行なうステップは、デュアルポートランダムアクセスメモリによって実 行され、第1のデュアルポートランダムアクセスメモリは、格納機能と出力機能 を実行し、第2のデュアルポートランダムアクセスメモリは、第1デュアルポー トランダムアクセスメモリに格納された各ストリングに対する開始アドレス及び 終了アドレスを格納する。 28.請求項27に規定されたデータをリバースする方法であって、各ストリン グの開始アドレスと終了アドレスは、単一アドレスをストリングの間で格納する ことにより置き換えられることができるもので、単一アドレスは、第1ストリン グの終了アドレスと第2ストリングの開始アドレスの両アドレスを表わしている 。 29.ストリングのリバーサル機構であって:a.データバス、Stackda taは、バイトのストリングー4 の入力ソースからデータを受信するために設けられ、一度に1バイトの情報をキ ャリーすることが可能で、各バイトは8ピットを含んでおり; b.第1のデュアルポートランダムアクセスメモリはデータバスに結合され、入 力ソースから受信される順序で、一度に1バイトずつストリングを格納するため のストリングキューを含んでおり、c.第2のデュアルポートランダムアクセス メモリは第1のデュアルポートランダムアクセスメモリに結合され、第1のデュ アルポートランダムアクセスメモリに格納された各ストリングに対してヘッドポ インタとテイルポインタを格納するためのポインタキューを含んでおり; d.出力データバス、OutputByteは、一度に1バイトの情報を出力す ることが可能であり、各バイトは8ピットを含んでおり、ストリングは、入力さ れた順序と逆の順序で一度に1バイト出力され、同時にストリングは第1のデュ アルポートランダムアクセスメモリに一度に1バイト入力され; e.テイル除去ポインタレジスターは、現在逆に並び換えられていてストリング リバーサル機構から出力される最後のストリングを格納し; f.ヘッド除去ポインタレジスターは、現在逆に並び換えられていてストリング リバーサル機構から出力される最初のストリングを格納し; g.テイル挿入ポインタレジスターは、現在、ストリングリバーサル機構に入力 されている最後のストリングを格納し; h.ヘッド挿入ポインタレジスターは、現在、ストリングリバーサル機構に入力 されている最初のストリングを格納し; i.ポインタキューテイルレジスターは、対のポインタが格納されているポイン タキューの中の最後のアドレスを格納し;及び j.ポインタキューヘッドレジスターは、対のポインタが格納されているポイン タキューの中の最初のアドレスを格納する。 30.請求項29に規定されたストリングリバーサル機構であって、各ストリン グに対するヘッドポインタとテイルポインタは、各対のストリング間に位置する 単一ポインタを格納することにより置き換えられることができ、単一ポインタは 、第1ストリングの終了アドレスと、第2ストリングの開始アドレスの両アドレ スを表わしている。 31.ストリングリバーサル機構を具えた単一クロックサイクルデータの圧縮装 置/圧縮解除装置であって:a.人力ソースからデータを受信する手段;b.同 時に、受信したデータを、元の形態又は圧縮された形態のどちらかの形態で格納 し、あとに受信したデータを格納データと比較し、あとに受信したデータが格納 データを一致するかどうかを決定する手段;及び C.その圧縮された形態の格納データを、引き続いて検索し、それを元の形態に 復元する手段、を具えている。 32.請求項31に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、比較手段と格納手段は、書 込み、検索及び読出し動作を実行する能力を有する内容参照可能メモリによって 実行される。 33.請求項32に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、内容参照可能メモリは、周 期的にリフレッシュを必要とするダイナミック形であり、リフレッシュは: a.アドレス列を一度にアドレスバスにプレイスするステップ;及び b.リフレッシュ信号を表明するステップ、から構成される。 34.請求項33に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、格納手段は、受信されたデ ータの圧縮形態を表わすストリングを格納するためのストリングテーブルを具え ており、前記ストリングテーブルは内容参照可能メモリに格納されている。 35.請求項34に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、入力データの圧縮された形 態を表わす各ストリングは、20ピットから構成され、12ピットは最長マッチ ングストリングのアドレスを表わし、8ピットは、このストリングを、ストリン グテーブルに格納された他のストリングと区別させるストリングの最後のキャラ クタを表わしている。 36.請求項35に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、ストリングテーブルは40 88のエントリに制限され、最大のストリング長さは128のシンボルに制限さ れる。 37.請求項36に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、最初の256のストリング は格納されず、そのあとに空白プレフィックスが続くそのシンボルに対するAS CII表現を利用する。 38.請求項37に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、格納されたデータを検索す る手段は、圧縮解除装置モジュールとストリングリバーサル機構を具えており、 圧縮解除装置はキャラクタのストリングを、ストリングリバーサル機構に出力す る。 39.請求項38に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、ストリングリバーサル機構 はa.キャラクタのストリングを圧縮解除モジュールから受信する手段; b.キャラクタのストリングを格納する手段;及びC.先に格納されたキャラク タストリングを、格納された順序とは逆の順序で出力しながら、あとのキャラク タストリングを同時に格納する手段、を具えている。 40.請求項39に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、 a.データ受信手段は、各々が8ピットの情報を表わすバイトを、一度に1バイ トずつ入力データから受信し; b.バーズ手段はバイトをストリングにバーズし、各ストリングは、以前の入力 の中に遠く見られる最長マッチングストリングとそのストリングを先行ストリン グと区別させる1バイトから構成され、C.追加手段はストリングをテーブルに 追加し、ストリングはコード化された形態に圧縮され、最長マッチングストリン グとこのストリングを他の任意のストリングと区別させる最後のバイトのロケー ションのテーブルの中でアドレスとして表わされ;及びd.格納手段は、各スト リングに対してコード化された形態を格納する。 41.請求項40に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、圧縮解除装置を有し:a. ストリングをプレフィックスと拡張キャラクタに分離する手段; b.拡張キャラクタをストリングリバーサル機構に出力する手段; C.プレフィックスにより表わされた記憶装置内のロケーションまで移動させ、 そのロケーションに格納されたストリングをプレフィックスと拡張キャラクタに 分離し、拡張キャラクタをストリングリバーサル機構に出力する手段;及び d.空白プレフィックスに達するまで、最後のストリングを繰り返す手段; を具えている。 42.ストリングリバーサル機構を具えた単一クロックサイクルデータ圧縮装置 /圧縮解除装置であって:a.各々が1ピットの情報をキャリーできる複数のデ ータラインからなるデータバス、Stringdata;b.各々が1ピットの 情報をキャリーできる複数のアドレスラインからなるアドレスバス、Addre ss;C.入力データバスの各ラインとアドレスバスの各ラインを、所定の論理 状態電圧に予め条件設定するプリコンディショニング手段; d.予め条件設定されたデータバスの各ラインと、予め条件設定されたアドレス バスの各ラインを、Addressの値によって表わされたロケーションで、格 納されたメモリ状態電圧を形成するメモリに結合する結合手段; e.結合手段と同じクロックサイクルの中で実行されるもので、予め条件設定さ れたStringdataライン電圧を、格納されたメモリ状態の全てと比較し 、Stringdataライン電圧が、格納されたメモリ状態のどれかと集合的 に一致するかどうかを決定する手段;f.Stringdataラインの電圧が 、格納されたメモリ状態のどれかと集合的に一致するときに信号を発生する信号 発生手段; g.データライン電圧が、格納されたメモリ状態のどれかと集合的に一致しない とき、アドレスバスによって表わされた値をインクリメントする手段;h.予め 条件設定されたデータライン電圧を、引き続いて検索し、それらをプレフィック スと拡張キャラクタに分離する手段; i.拡張キャラクタをストリングリバーサル機構に出力する手段; j.拡張キャラクタをストリングの一部として格納する手段; k.プレフィックスにより表わされたデータ値のロケーションを求め、それをプ レフィックスと拡張キャラクタに分離する手段; 1.拡張キャラクタをストリングリバーサル機構に出力し、それをストリングの 一部として格納し、空白プレフィックスに達するまで、各プレフィックスをその プレフィックス及び拡張キャラクタに分離し続ける手段; m.拡張キャラクタを格納する手段と同時に実行されるもので、ストリングリバ ーサル機構から、キャラクタを受信した順序とは逆の順序でストリングの各キャ ラクタを出力する手段; を具えている。 43.請求項42に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、記憶装置は、読出し、書込 み及び検索を行なう手段を有する内容参照可能メモリである。 44.請求項43に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、テーブルに格納された最初 の256のストリングは、各ストリングが、各シンボルに対してコード化された 形態を有する単一シンボルを表わし、あとに空白プレフィックスが続くシンボル に対するASCII表現である。 45.請求項44に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、テーブルに格納された最初 の256のストリングは内容参照可能メモリの中にハードワイヤードされる。 46.請求項43に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータの圧縮装置/圧縮解除装置であって、最初の256のストリング は格納されず、そのあとに空白プレフィックスが続くそのシンボルのASCII 表現を利用する。 47.ストリングリバーサル機構を具えた単一クロックサイクルデータ圧縮装置 /圧縮解除装置であって:a.複数のストリングを形成するために一緒にグルー プ化された複数のメモリセルから構成され、各ストリングは複数バイトの情報を 含み、各バイトは8ピットを含み、4096のストリングを格納できる能力を有 する第1の記憶装置; b.制御論理モジュール; c.各々が1ピットの情報をキャリーできる複数のデータラインから構成され、 第1の記憶装置と制御論理モジュールに結合されたデータバス;d.各々が1ピ ットの情報をキャリーできる複数のアドレスラインから構成され、第1の記憶装 置と制御論理モジュールに結合されたアドレスバス;e.入力データバスの各ラ インと入力アドレスバスの各ラインを所定の論理状態電圧に予め条件設定するプ リコンディショニング手段; f.アドレスラインの値によって表わされた位置で、データラインにより表わさ れた値を格納する格納手段; g.格納手段と同じクロックサイクルの中で実行され、データラインの値を、格 納された全てのストリングと比較する比較手段; h.データラインが、格納されたストリングのどれかと一致したとき、信号を発 生する手段;i.データラインが、格納されたストリングのどれとも一致しなか ったとき、アドレスバスによって表わされた値をインクリメントする手段; j.格納された値を引き続いて検索し、それをプレフィックスと拡張キャラクタ に分離する手段;k.ストリングリバーサル機構によりストリングの一部として 格納されるように、拡張キャラクタをストリングリバーサル機構に出力する手段 ;1.プレフィックスをそのプレフィックスとその拡張キャラクタに分離し、拡 張キャラクタをストリングリバーサル機構に格納する手段; m.次に続く各プレフィックスを、そのプレフィックスと拡張キャラクタに分離 し、ストリングの最後を表わす空白プレフィックスに達するまで各拡張キャラク タを出力する手段; n.次に格納された値を検索し、それをそのプレフィックスと拡張キャラクタに 分離し、拡張キャラクタを出力し、その後に続く各プレフィックスをそのプレフ ィックスと拡張キャラクタに分離し、空白プレフィックスに達するまで各拡張キ ャラクタを出力する手段; o.ストリングリバーサル機構は、数多くのストリングを格納する能力を有する 第2の記憶装置と、ストリングのキャラクタが逆の順序で出力される前にそのキ ャラクタを格納する第3の記憶装置を具えており、このストリングリバーサル機 構から、キャラクタを受信した順序とは逆の順序で、ストリングの各キャラクタ を出力する手段; を具えている。 48.請求項47に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータ圧縮装置/圧縮解除装置であって、第2の記憶装置は、格納して キャラクタのストリングを逆の順序で出力する手段を有するデュアルポートラン ダムアクセスメモリから構成される。 49.請求項48に規定されたストリングリバーサル機構を具えた単一クロック サイクルデータ圧縮装置/圧縮解除装置であって、第3の記憶装置は、第2の記 憶装置に格納された各ストリングに対する開始アドレスと終了アドレスを格納す る手段を有するデュアルポートランダムアクセスメモリから構成される。
JP50542294A 1992-08-03 1993-08-02 ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置 Expired - Fee Related JP3342700B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/924,293 US5818873A (en) 1992-08-03 1992-08-03 Single clock cycle data compressor/decompressor with a string reversal mechanism
US924,293 1992-08-03
PCT/US1993/007114 WO1994003983A1 (en) 1992-08-03 1993-08-02 Single clock cycle data compressor/decompressor with a string reversal mechanism

Publications (2)

Publication Number Publication Date
JPH07509823A true JPH07509823A (ja) 1995-10-26
JP3342700B2 JP3342700B2 (ja) 2002-11-11

Family

ID=25450030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50542294A Expired - Fee Related JP3342700B2 (ja) 1992-08-03 1993-08-02 ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置

Country Status (3)

Country Link
US (1) US5818873A (ja)
JP (1) JP3342700B2 (ja)
WO (1) WO1994003983A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510881A (ja) * 1999-09-21 2003-03-18 ユニシス コーポレーション データを展開するのに要する時間を短縮するための方法と装置
JP2020201948A (ja) * 2019-06-12 2020-12-17 三星電子株式会社Samsung Electronics Co.,Ltd. 圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199140B1 (en) * 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6240485B1 (en) 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6381673B1 (en) 1998-07-06 2002-04-30 Netlogic Microsystems, Inc. Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
US6539455B1 (en) 1999-02-23 2003-03-25 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a ternary content addressable memory device
US6499081B1 (en) 1999-02-23 2002-12-24 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6892272B1 (en) 1999-02-23 2005-05-10 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a content addressable memory device
US6574702B2 (en) 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
US6460112B1 (en) 1999-02-23 2002-10-01 Netlogic Microsystems, Llc Method and apparatus for determining a longest prefix match in a content addressable memory device
US6239727B1 (en) * 1999-06-10 2001-05-29 Universita' Degli Studi Di Palmero Data encoding/decoding process
US7110407B1 (en) 1999-09-23 2006-09-19 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system using enable signals
US7272027B2 (en) 1999-09-23 2007-09-18 Netlogic Microsystems, Inc. Priority circuit for content addressable memory
US6567340B1 (en) 1999-09-23 2003-05-20 Netlogic Microsystems, Inc. Memory storage cell based array of counters
US7143231B1 (en) 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US7487200B1 (en) 1999-09-23 2009-02-03 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system
US6789134B1 (en) * 2000-06-01 2004-09-07 Adaptec, Inc. Dequeuing from a host adapter two-dimensional queue
US6609161B1 (en) 2000-06-01 2003-08-19 Adaptec, Inc. Two-dimensional execution queue for host adapters
US6348881B1 (en) 2000-08-29 2002-02-19 Philips Electronics No. America Corp. Efficient hardware implementation of a compression algorithm
US6426711B1 (en) * 2001-05-14 2002-07-30 Unisys Corporation Character table implemented data compression method and apparatus
US20030088537A1 (en) * 2001-08-08 2003-05-08 Nec Eluminant Technologies, Inc. High speed data compression and decompression apparatus and method
US6760821B2 (en) 2001-08-10 2004-07-06 Gemicer, Inc. Memory engine for the inspection and manipulation of data
US7383421B2 (en) * 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US7069386B2 (en) * 2001-08-10 2006-06-27 Connex Technology, Inc. Associative memory device
US7107478B2 (en) 2002-12-05 2006-09-12 Connex Technology, Inc. Data processing system having a Cartesian Controller
US8516588B1 (en) * 2002-05-02 2013-08-20 Verizon Patent And Licensing Inc. String detection system and method of detecting a string
US7071854B1 (en) * 2002-05-13 2006-07-04 Unisys Corporation Hardware-implemented LZW data decompression
US7610440B2 (en) * 2002-10-23 2009-10-27 Husby Donald E Content addressable memory with automated learning
US7415596B2 (en) * 2003-01-24 2008-08-19 Gigafin Networks, Inc. Parser table/production rule table configuration using CAM and SRAM
US7451293B2 (en) * 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
US7577809B2 (en) * 2005-11-02 2009-08-18 Promethean Storage Llc Content control systems and methods
CN101371264A (zh) * 2006-01-10 2009-02-18 光明测量公司 用于在并行处理***中处理多媒体数据的子块的方法和装置
US7571368B1 (en) 2006-01-26 2009-08-04 Promethean Storage Llc Digital content protection systems and methods
US7996899B1 (en) 2006-02-24 2011-08-09 Hitachi Global Storage Technologies Netherlands B.V. Communication systems and methods for digital content modification and protection
US8243922B1 (en) * 2006-02-24 2012-08-14 Hitachi Global Storage Technologies Netherlands B.V. Digital content modification for content protection
US20080055307A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski Graphics rendering pipeline
US20080059762A1 (en) * 2006-09-01 2008-03-06 Bogdan Mitu Multi-sequence control for a data parallel system
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
US9563433B1 (en) 2006-09-01 2017-02-07 Allsearch Semi Llc System and method for class-based execution of an instruction broadcasted to an array of processing elements
US20080244238A1 (en) * 2006-09-01 2008-10-02 Bogdan Mitu Stream processing accelerator
US20080059764A1 (en) * 2006-09-01 2008-03-06 Gheorghe Stefan Integral parallel machine
US20080059467A1 (en) * 2006-09-05 2008-03-06 Lazar Bivolarski Near full motion search algorithm
US7439887B2 (en) 2007-02-13 2008-10-21 Seiko Epson Corporation Method and apparatus for GIF decompression using fixed-size codeword table
US7696906B2 (en) * 2008-08-13 2010-04-13 International Business Machines Corporation LZW data compression algorithm
US8793284B2 (en) 2011-05-26 2014-07-29 Laurie Dean Perrin Electronic device with reversing stack data container and related methods
US9729168B1 (en) * 2016-07-17 2017-08-08 Infinidat Ltd. Decompression of a compressed data unit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3714439A (en) * 1966-08-18 1973-01-30 Itt Image comparison device and method
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
JPH04113522A (ja) * 1990-09-03 1992-04-15 Matsushita Electric Ind Co Ltd 情報記録再生装置
US5485526A (en) * 1992-06-02 1996-01-16 Hewlett-Packard Corporation Memory circuit for lossless data compression/decompression dictionary storage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510881A (ja) * 1999-09-21 2003-03-18 ユニシス コーポレーション データを展開するのに要する時間を短縮するための方法と装置
JP2020201948A (ja) * 2019-06-12 2020-12-17 三星電子株式会社Samsung Electronics Co.,Ltd. 圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法

Also Published As

Publication number Publication date
US5818873A (en) 1998-10-06
WO1994003983A1 (en) 1994-02-17
JP3342700B2 (ja) 2002-11-11

Similar Documents

Publication Publication Date Title
JPH07509823A (ja) ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
EP0490964B1 (en) Improved data compression apparatus
US5229768A (en) Adaptive data compression system
JP2713369B2 (ja) データ圧縮装置及び方法
US6657565B2 (en) Method and system for improving lossless compression efficiency
US5243341A (en) Lempel-Ziv compression scheme with enhanced adapation
US5371499A (en) Data compression using hashing
KR100331351B1 (ko) 이진입력데이터스트림압축방법
US5951623A (en) Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
US5608396A (en) Efficient Ziv-Lempel LZI data compression system using variable code fields
JP3273119B2 (ja) データ圧縮・伸長装置
US6829695B1 (en) Enhanced boolean processor with parallel input
US5877711A (en) Method and apparatus for performing adaptive data compression
JP3141002B2 (ja) 符号化方法及びデータ圧縮器
JPH07104971A (ja) ネットワークパケットに適用される小型辞書を用いた圧縮方法
JPH07273667A (ja) 連想記憶メモリ内の複数辞書管理を改良したlempel−zivデータ圧縮のための装置、及び方法
US5424732A (en) Transmission compatibility using custom compression method and hardware
US5502439A (en) Method for compression of binary data
US6535150B1 (en) Method and apparatus for implementing run-length compression
EP0485081A2 (en) Data compression dictionary access minimization logic
JP2003510881A (ja) データを展開するのに要する時間を短縮するための方法と装置
JP3038223B2 (ja) データ圧縮方式
JP3130324B2 (ja) データ圧縮方式
Zia et al. Two-level dictionary-based text compression scheme
JP2999561B2 (ja) データ圧縮及び復元装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees