JPH05233212A - データを圧縮するための装置及び方法並びにデータ処理システム - Google Patents

データを圧縮するための装置及び方法並びにデータ処理システム

Info

Publication number
JPH05233212A
JPH05233212A JP4305106A JP30510692A JPH05233212A JP H05233212 A JPH05233212 A JP H05233212A JP 4305106 A JP4305106 A JP 4305106A JP 30510692 A JP30510692 A JP 30510692A JP H05233212 A JPH05233212 A JP H05233212A
Authority
JP
Japan
Prior art keywords
data
data element
stored
address
cell
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
JP4305106A
Other languages
English (en)
Other versions
JP3225638B2 (ja
Inventor
David J Craft
ダビッド・ジョン・クラフト
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 JPH05233212A publication Critical patent/JPH05233212A/ja
Application granted granted Critical
Publication of JP3225638B2 publication Critical patent/JP3225638B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77

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)【要約】 【目的】 データ圧縮・復元に要する比較動作を、従来
に比してより高速かつ効率的に行う。 【構成】 本発明は、データ・エレメントの受信回路3
20と、前に受け取つたデータ・エレメントを、順次ア
ドレスされた固定位置に順次ストアするためのストレー
ジ回路330と、上記受け取つたデータ・エレメント
が、ストアされたデータ・エレメントの少なくとも1つ
にマツチしたか否かを決定するために、上記ストアされ
たデータ・エレメントと上記受け取つたデータ・エレメ
ントとを比較する回路540と、上記マツチし、ストア
されたデータ・エレメントのアドレスを発生する回路3
70とを含んでいる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データを圧縮し、復元
(decompress)する装置及び方法、より具体的に言え
ば、逐次にデータを圧縮し、圧縮されたデータを復元す
る装置及び方法に関する。
【0002】
【従来の技術】従来から、多数のタイプのデータ圧縮シ
ステムがある。通常使用されている技術は、1977年
9月の情報理論に関するIEEEトランザクシヨンにお
いてレンペル(Lempel)及びジブ(Ziv)によつて発表
された「Compression of Individual Sequence via var
iable Rate Coding」と題する文献の530頁乃至53
6頁に記載されたレンペル−ジブのアルゴリズムであ
る。図1乃至図3はレンペル−ジブのアルゴリズムの代
表的な実行例を示す。図1において、N+1バイト長の
シフト・レジスタ10は、前段階で処理されたデータを
臨時にストアするために使用される。若し、処理される
べき新しいデータが、前に処理されたデータ・バイトの
ストリングを含んでいるならば、シフト・レジスタ中の
前に処理されたデータ・ストリングの長さ及び相対アド
レスを含むトークンが発生される。このことを一般的に
言うと、データ・ストリングそれ自身よりも少ない情報
ビツトを用いてデータ・ストリングを表わすことができ
るということ、従つて、データ・ストリングは効果的に
圧縮されたと言うことができる。若し、処理されるべき
データがシフト・レジスタ中の、前に処理したデータ・
ストリングの一部を形成していなければ、そのデータを
そのままに表わした1つのトークン、または複数のトー
クンが発生される。一般に、このようなトークンは、デ
ータそれ自身よりも僅かに多い情報ビツトを用いて表示
されるので、実質的な拡張がある。全体として、圧縮さ
れたデータ・ストリングからの利得は、通常、圧縮され
ないデータ・ストリングから受ける損失を越えるので、
結果的に、全体としてのデータ圧縮が達成される。若
し、データ・ストリーム中のデータの繰り返しストリン
グがなければ、データ・ストリームは、この技術によつ
て圧縮することはできない。
【0003】図2は、前に処理されたデータを参照する
トークンの発生を説明するための図である。図で与えら
れた例において、値、A、B、C及び Dは前に処理さ
れた値であり、現在、アドレス37、36、35及び3
4のシフトレジスタ中にストアされている。処理される
べき新しい値はA、B、C及びEである。新しいデータ
は、相対アドレス37に前にストアされたストリングA
BCとマツチ(一致)し、3の長さを持つストリングA
BCを含む。ストリングを記述するトークンが発生され
た後に、値、A、B及びCはシフト・レジスタの中にロ
ードされ、そして、値、A、B、C及びDはシフト・レ
ジスタの中で新しいアドレスに移動されるから、アドレ
スは相対的なものである。シフト・レジスタ中のデータ
のアドレスは、後で処理されるデータ値の個数に関係が
ある。
【0004】図3は、前にストアされたデータを参照す
る第2のトークンの発生を説明するための図である。図
示の例において、値、A、B、C及びZは処理されるデ
ータ値である。新しいデータは、相対アドレス3又は4
1に前にストアされたストリングABCとマツチし、3
の長さを持つストリングABCを含む。この例において
発生されたトークンは、通常、低位の相対アドレス3で
ある。トークンは、カウントと、前に処理されたストリ
ングの相対アドレスとを含み、(カウント、相対アドレ
ス)として表示される。図2及び図3に示されたよう
に、値、A、B、C、E、A、B、C及びZの圧縮の結
果として、発生された処理出力は(3、37)、E、
(3、3)、Zを含んでいる。
【0005】米国特許第4021782号は、データを
圧縮し、転送し、そして、圧縮されたデータを復元する
ために、転送ラインの両端において使用される圧縮装置
を開示している。入力されるであろう文字は、予めセツ
トされたコーデイング・テーブルにおいて予測された使
用頻度に従つて分類される。文字のカテゴリはその文字
のエンコード動作に影響する(使用頻度の高い文字はよ
り短く発生されたコードを持つている)。
【0006】米国特許第4464650号は、ノード及
び分岐路を有するサーチ・トリーを使用することによつ
て入力データ・ストリームをセグメントに解析する技術
を開示している。
【0007】米国特許第4558302号は、通常、レ
ンペル−ジブ−ウエリヒ(Lempel-Ziv-Welch)のデータ
圧縮技術と呼ばれている技術を開示している。この米国
特許は、共通に使用されるデータ・ストリングをストア
するための辞書を使用し、ハツシング(hashing)技術
を用いて辞書をサーチすることを開示している。
【0008】米国特許第4612532号は、頻度に近
い順に候補のデータの表を順序付けること、もしくは候
補のデータの位置を交換することを開示している。
【0009】米国特許第4622585号は、イメージ
・データの圧縮を記載している。この米国特許は現在の
ピクチヤ・ライン中にある第1のデータ・ビツト列と、
前のピクチヤ・ライン中にある第2のデータ・ビツト列
とが圧縮翻訳装置の中で共にシフトされることを開示し
ている。
【0010】米国特許第4814746号は、共通に使
用されるデータ・ストリングをストアするための辞書を
記載しており、共通に使用されないデータ・ストリング
をその辞書から削除することを開示している。
【0011】米国特許第4853696号は、別々の文
字に対応する複数個のロジツク通路を形成するために、
バイナリの逆トリー形式において、共に接続された複数
個のロジツク回路素子、またはノードを開示している。
【0012】米国特許第4876541号は、新規なマ
ツチ・アルゴリズムを使用することによつて、上述のレ
ンペル−ジブ−ウエリヒのデータ圧縮技術を改良するこ
とを目的としている。
【0013】米国特許第48491784号は、自動ブ
ロツキングのためのパケツト組立て/分解(disassembl
y)手段を用いた磁気テープ環境における自動ブロツキ
ング動作に向けられている。
【0014】米国特許第4899147号は、データの
アンダーランを阻止し、始動制御を最適化するためのス
ロツトル制御を有するデータ圧縮技術を開示している。
この米国特許は、データが書き込まれた方向とは逆方向
にデータの読み取りを復元(decompress)する能力を持
つ技術が開示されている。この米国特許は、データ・ス
トリングを使用した度数を計るカウンタによつて、頻度
の高いデータ・ストリングをストアするためのストリン
グ・テーブルが記載されている。
【0015】米国特許第4906991号は、トリーの
データ構造を使用してコード・ワードのエンコードをコ
ピーすることを目的とする。
【0016】米国特許第4988998号は、単一の文
字及び繰り返しの数によつて、順序付けて繰り返された
文字を置き換えることによつて繰り返し文字のストリン
グを事前処理することを目的とする。
【0017】
【発明が解決しようとする課題】レンペル−ジブのアル
ゴリズムを実施する際の主要な問題は、前にマツチした
データ・ストリングのサーチ動作を効果的な処理速度で
遂行しようとした場合に生じる問題である。上述の米国
特許に記載された技術は、レンペル−ジブの技術を改良
するものであつて、サーチ動作の速度を上げることによ
るか、または、より効率的なトークンのデコード方法を
用いて、遂行される圧縮の量を改良することによつて動
作速度を上げる技術である。
【0018】
【課題を解決するための手段】本発明は、データ・エレ
メントの受け取り回路と、前に受け取つたデータ・エレ
メントを、順次アドレスされた固定位置に順次ストアす
るためのストレージ回路と、上記受け取つたデータ・エ
レメントが、ストアされたデータ・エレメントの少なく
とも1つにマツチしたか否かを決定するために、上記ス
トアされたデータ・エレメントと上記受け取つたデータ
・エレメントとを比較するための回路と、上記マツチし
たストアされたデータ・エレメントのアドレスを発生す
る回路とを含んでいる。
【0019】更に、本発明は、データ・エレメントを受
け取るステツプと、前に受け取つたデータ・エレメント
を、順次アドレスされた固定位置に順次ストアするステ
ツプと、上記受け取つたデータ・エレメントが上記スト
アされたデータ・エレメントの少なくとも1つにマツチ
したか否かを決定するために、上記受け取つたデータ・
エレメントと上記ストアされたデータ・エレメントとを
比較するステツプと、上記マツチしたストアされたデー
タ・エレメントのアドレスを発生するステツプとを含む
データの圧縮方法を与える。
【0020】
【実施例】上述したレンペル−ジブの技術をハードウエ
アのデコーダで実施する場合の主たる問題は、相対アド
レス方式を使用することで生じる。相対アドレス方式
は、各データ・エレメントの中の1データ・ワードであ
つて、前に処理された複数のデータ・ワードを保持する
ための1つのシフト・レジスタを使用することが必要で
ある。各入力データ・ワードはシフト・レジスタの第1
の位置にシフトされ、他方、前に処理されたデータ・ワ
ードのすべては、隣の位置にシフトされる。加えて、シ
フト・レジスタの各エレメントに対して、ランダム・ア
クセスの能力が必要である。この能力は、実施に際し
て、単純なランダム・アクセス・メモリよりも多くの回
路と、大きな半導体領域と、大きな電力とを必要とす
る。
【0021】本発明は、前に処理され、ストアされたデ
ータを、メモリ中の一定の位置に残留させる固定アドレ
ス方式を用いる。本発明は、単純なランダム・アクセス
・メモリと2つのアドレス・カウンタを用いることによ
つて、非常に単純で、高速度のハードウエアであるデコ
ーダ装置を可能にする。本発明のエンコーダは、デコー
ダ装置と対応したような単純な構造であつて、ランダム
・アクセス・メモリ、即ちRAMではなく、前に処理さ
れたデータを記憶するための内容アドレス可能メモリ
(content addressable memory−CAM)を用いてい
る。これは、ストリングの徹底的なマツチ処理を行なう
けれども、各ワードの処理のためのサーチの必要性を全
体として減少する。これは、圧縮比率を改良し、しか
も、非常に速いエンコーダ・スループツトを可能にす
る。付加的な利点としては、エンコーダ及びデコーダの
大部分は、共通に使用できる構造を持つているので、本
発明のエンコーダ及びデコーダ自身はVLSI半導体回
路に好適である。
【0022】図4及び図5は、本発明の良好な実施例の
回路を使用したシステム構成を示すブロツク図である。
図4に示したように、コンピユータ・システム100は
システム・メモリ110と通信する中央処理ユニツト
(CPU)105を含んでいる。また、CPUは、バス
112を介して、入/出力チヤネル、またはアダプタ1
15及び120と通信する。入/出力チヤネルを介し
て、CPUは、他のコンピユータ・システム125、テ
ープ駆動装置130、デイスク駆動装置135、また
は、光デイスク装置のような他の入/出力装置138と
通信することができる。良好な実施例において、コンピ
ユータ100は、バス112上の圧縮/復元エンジン
(compression/decompression engine)140を含むこ
とができる。圧縮/復元エンジンは圧縮エンジン141
と復元エンジン142を含んでいる。これらのエンジン
は、入/出力チヤネルを通して転送されるデータを圧縮
し、または、受け取られるデータを復元するためにCP
U中で動作するオペレーテイング・システムのフアイル
・ハンドラによつて呼び出すことができる。これらのエ
ンジンは、データの所望の圧縮、または復元を遂行する
ために、システム・メモリ110、または付加的なメモ
リ145を用いることができる。若し、付加的なメモリ
145が使用されるならば、圧縮され、復元されたデー
タは、付加的なバス147を介してI/Oチヤネルへ、
またはI/Oチヤネルから、直接に転送することができ
る。
【0023】図5は、CPU155及びシステム・メモ
リ160を含むコンピユータ150を示すブロツク図で
ある。このCPUはバス162を介して入/出力チヤネ
ル、またはアダプタ165及び170と通信する。入/
出力チヤネルを介して、CPUは、他のコンピユータ・
システム175、テープ駆動装置180、デイスク駆動
装置185、または他の入/出力装置188と通信する
ことができる。入/出力チヤネルには圧縮/復元エンジ
ン190及び194が接続されており、圧縮/復元エン
ジン190及び194は入/出力チヤネルを通る幾つか
のデータか、またはすべてのデータを圧縮し、復元す
る。圧縮/復元エンジンは圧縮エンジン191、195
と、復元エンジン192、196とを含んでいる。ま
た、これらのエンジンは、データが圧縮され、または復
元される時にバツフアとして動作し、そして、ストレー
ジ空間管理タスクを操作するための付加的メモリ198
及び199を持つている。
【0024】本発明の良好な実施例を用いた他のシステ
ム構成はこの外に多数あるけれども、これらのシステム
構成は当業者には自明である。例えば、サーバのような
コンピユータ・システムは、このシステムに送られたす
べてのデータを圧縮するためのデータ圧縮エンジンを含
み、他方、残りのコンピユータ・システムは、夫々のシ
ステムがサーバから受け取つたすべてのデータを復元す
るための復元エンジンを含むことができる。
【0025】図6は良好なデータ圧縮エンジン300を
示すブロツク図である。データ圧縮エンジンの種々のエ
レメントの動作は、以下に説明される各エレメントに接
続されている制御回路305によつて制御される。この
制御回路305は、後述する状態マシンとして動作する
ロジツク回路である。データは、入力データ・バス31
0を介して、データ圧縮エンジン300の入力データ・
バツフア・レジスタ(IDBR)320の中に入力さ
れ、その後、バツクアツプ・入力データ・バツフアの中
にストアされる。次に、入力データ・バツフア中にスト
アされたデータは、内容アドレス可能メモリ(CAM)
中の現在のすべてのエントリと比較される。CAMアレ
イは、多数のセクシヨン(N+1個のセクシヨンが図示
されている)を含んでおり、各セクシヨンはレジスタ及
び比較器(図7を参照して後述する)を含んでいる。各
CAMアレイ・レジスタは、データ・ワードをストアし
ており、そして、有効なデータ・ワード、即ち現在のデ
ータ・ワードがCAMアレイ・レジスタ中にストアされ
ているか否かを表示するために、エンプテイ・セル33
5と呼ばれる1つのストレージ・エレメントを含んでい
る。各比較器は、対応するCAMアレイ・レジスタ中に
ストアされているデータ・ワードが入力データ・バツフ
ア中にストアされているデータ・ワード(加えて、以下
に説明される幾つかの他の基準)とマツチした時、マツ
チ信号、即ち付勢信号を発生する。CAMアレイの各セ
クシヨン毎に1つの書き込み選択セルを有する書き込み
選択シフト・レジスタ(WS)340がCAMアレイに
接続されている。本発明の良好な実施例において、1つ
の書き込み選択セルは1、即ち、活動状態(付勢)にセ
ツトされているが、残りの書き込み選択セルは0、即ち
非活動状態(滅勢)にセツトされている。付勢された書
き込み選択セルは、入力データ・バツフアの中に現在保
持されているデータ・ワードをストアするためにCAM
アレイのどの選択が用いられるかを選択する。次に、書
き込み選択シフト・レジスタ(WS)340は、入力デ
ータ・バツフア中の次のデータ・ワードをどのCAMア
レイ・セルがストアするかを決めるために、1セルだけ
シフトされる。書き込み選択シフト・レジスタ340の
使用は、上述した従来のレンペル−ジブのシフト・レジ
スタが持つ大部分の能力を与え、他方、固定アドレスの
使用を可能とする。
【0026】CAMアレイ中の現在のエントリは、エン
プテイ・セル(EC)が1にセツトされ、対応する書き
込み選択(WS)セルが0にセツトされているCAMア
レイ・セクシヨンに指定される。若し、現在のCAMエ
ントリの中のいずれかのデータが入力データ・バツフア
中のデータ・ワードにマツチしたならば、そのCAMア
レイ・セクシヨンの比較器は、マツチ・ライン342の
対応する1つのライン上にマツチ信号を発生する。その
結果、マツチ・ラインの各々に接続されているマツチO
Rゲート344はマツチ信号を発生する。
【0027】一次セレクタ・シフト・レジスタ(PS)
350は、それまでにマツチ動作が成功したCAMアレ
イの対応するセクシヨンを表示するのに用いられる。つ
まり、1(付勢)にセツトされたPSセルは、どのCA
Mアレイ・セクシヨンがデータ・ワードのマツチ・スト
リングもしくはシーケンスの最後のデータ・ワードを含
んでいるかを表示する。データ・ワードのストリングの
入力が既に生じているCAMアレイの位置は幾つかある
はずであるから、PSの列中の複数のセルは付勢されて
いるはずである。若し、データ・ワードのストリームの
入力が前に生じていなければ、データ・ワードのストリ
ームと、前に処理されたデータとがマツチしたことを見
出されるまで、データ・ワードのストリームを含んでい
る生(raw)データ・トークン(生データを用いたトー
クン)が発生される。
【0028】他の新しいデータ・ワードが入力データ・
バツフアの中にロードされる前に、入力データ・バツフ
ア中の前のエントリは、バツクアツプ入力データ・バツ
フア・レジスタ(B_IDER)321の中に保存され
る。加えて、PSセルの列の内容は、対応する二次セレ
クタ(SS)レジスタ355の中に保存される。更に、
長さカウンタ390は、マツチしたストリングの長さを
維持するために、1だけ増分される。最後に、一次セレ
クタ(PS)及び書き込みセレクタ・セルが1位置だけ
移動されるので、M番目のPSセルのエントリは、(M
+1)番目のPSセル中にストアされ、そして、M番目
の書き込み選択(WS)セルのエントリは(M+1)番
目のWSセル中にストアされる。このシフト動作は2つ
のことを行なう。第1に、このシフト動作は、活動中の
1つの書き込み選択セルのエントリを1セル移動するの
で、次の入力データ・ワードはCAMアレイの次の順次
セクシヨンの中に書き込まれる。第2に、このシフト動
作は、一次セレクタ(PS)の列中の活動セルをシフト
するので、それらの活動セルは、前にマツチしたCAM
アレイ・セクシヨンのすぐ後にあるCAMアレイ・セク
シヨンに対応することになる。
【0029】新しい入力データ・ワードが入力データ・
バツフアの中にロードされた後、そのデータ・ワード
は、既に述べたようにCAMアレイ中の現在のすべての
エントリと比較される。新しいデータ・ワードとマツチ
したすべてのCAMアレイのデータ・セル・エントリに
対応するマツチ・ラインは付勢される。若し、いずれか
のマツチ・ラインが付勢されているならば、マツチOR
ゲートが付勢される。対応するマツチ・ラインが付勢さ
れていないすべての活動中のPSセルはリセツトされ
る。若し、入力データ・バツフア中の現在のデータ・ワ
ードがデータ・ワードの前のマツチ・ストリングである
ことを表示して、いずれかのPSセルのエントリが活動
化しているならば、そのPSセルの各々に接続されてい
るPS ORゲート365は付勢される。従つて、CA
Mアレイ中にストアされたデータ・ワードのストリング
のマツチ動作を続けるか否かを決定するために、次のデ
ータ・ワードを処理することができる。このマツチ処理
は、PS ORゲートの出力が0であり、マツチ状態が
ないことを示すまで続行する。PS ORゲートの0出
力の状態が生じる時、この最後のデータ・ワードの前に
存在するすべてのマツチ・ストリングの最終点をマーク
する値は、SSセルの中に依然としてストアされてい
る。次に、アドレス発生器370はマツチ・ストリング
のうちの1つの位置を決定し、バス380上にそのアド
レスを発生する。アドレス発生器370は、二次セレク
タ(SS)355の1つ以上のセルから信号を与えら
れ、アドレスを発生するために用いられるロジツク回路
である。このようなロジツク回路は、当業者には容易に
設計できるものである。マツチ・ストリングの長さは、
長さカウンタ390によつて追跡される。
【0030】アドレス発生器370は、マツチ・ストリ
ングの終点を含むCAMアレイ・セクシヨンの固定アド
レス(絶対アドレスとも言われる)を発生し、そして、
長さカウンタ390は、マツチ・ストリングの長さを与
える。従つて、マツチ・ストリングの開始アドレス及び
長さは計算し、エンコードし、そしてトークンとして発
生することができる。この処理の細部については後述す
る。
【0031】データ・ワードをストアするために固定ア
ドレスを使用する利益は、通常、付加的な回路を必要と
する、データ・ワードのレジスタ間シフトを必要としな
いことである。本発明は、どの固定アドレスCAMアレ
イ・セルに情報を書き込むかを決めるために、シフトす
る循環書き込み選択セルを使用し、そして、データの前
のストリングとマツチするデータ・ストリングを見付け
るために必要とされる多数の比較動作を行なうために、
内容アドレス可能メモリ(CAM)の特徴を利用してい
る。その結果、本発明は、より高速で、より効率的な比
較動作を行なうことができる。
【0032】また、本発明は、マツチしたデータのサー
チが徹底的なので、レンペル−ジブのアルゴリズムを利
用した従来の他の多くの技術よりも、より効率的な比較
を与える。つまり、CAMアレイは、可能性のあるすべ
てのマツチ・ストリングに対する徹底的な(最後まで続
行する)サーチを可能にする。多くの従来の技術は、サ
ーチ時間を減少するために、ハツシングのような妥協的
な技術を使用しており、これではメモリ中の最も長いマ
ツチ・ストリングを見い出すことが困難である。
【0033】図7は圧縮エンジンの1つのセクシヨンを
示すブロツク図である。圧縮エンジン500は、書き込
み選択セル510、CAMアレイ・セクシヨン525、
一次セレクタ(PS)セル550及び二次セレクタ(S
S)セル560を含んでいる。CAMアレイ・セクシヨ
ン525は、比較器540と、エンプテイ・セル520
を含むCAMレジスタ530を含んでいる。これらのエ
レメントの各々は、上述した制御回路305(図6)に
接続されている。
【0034】制御回路によつて制御されるリセツト信号
ライン600は、リセツト信号ラインが活性化された時
に書き込み選択セル510及びエンプテイ・セル520
を0にリセツトする。シフト信号ライン610は、書き
込み選択セル510及び一次セレクタ・セル550中の
値を次のアレイ・セクシヨンにシフトし、かつ、前のC
AMアレイ・セクシヨン中にストアされている値を受け
取るために用いられる。若し、M番目のセルがCAMア
レイの中の最後のセルであれば、セルの中の値はCAM
アレイ中の最初のセルに循環される。書き込み選択セル
(WS)510の入力及び出力ライン611及び612
と、一次セレクタ・セル(PS)の入力及び出力ライン
613及び614は、WS及びPSセル中の値を、後続
のWS及びPSセルへ転送し、または、前のWS及びP
Sセルから転送する。ロード信号620は、一次セレク
タから二次セレクタへの値をロードするのに用いられ
る。書き込み信号ライン630は、CAMアレイ・レジ
スタへのデータの書き込みを開始し、そして、値1をエ
ンプテイ・セルに戻す。入力データ・バツフア・ライン
640は、書き込みの間、入力データ・バツフアからC
AMアレイ・レジスタ530へデータを転送し、あるい
は、比較が行なわれる時には、入力データ・バツフアか
ら比較器540にデータを転送するのに使用される。
【0035】若し、書き込み選択セル510が既に付勢
(1の値にセツト)されていれば、書き込み選択セルへ
の書き込み信号は、書き込み選択セルにより、エンプテ
イ・セル520及びCAMアレイ・レジスタ530への
信号を発生させる。次に、エンプテイ・セル520は1
にセツトされ、そして、CAMアレイ・レジスタ530
は、入力データ・バツフア・バス640上のデータを自
身に書き込ませる。入力データ・バツフア・バス640
上の値及びハード・コード化された1及び0は、比較器
540によつて、CAMアレイ・レジスタ530中の
値、エンプテイ・セル520中の値及び書き込み選択セ
ル510の値と比較される。若し、書き込み選択セル5
10が0にセツトされ、そしてエンプテイ・セルが1に
セツトされ、そして、入力データ・バツフア中の値がC
AMアレイ・レジスタ530中の値と等しければ、比較
器540は、一次セレクタ550にマツチ信号を発生す
る。そうでなければ、比較器は一次セレクタに非マツチ
信号を発生する。
【0036】良好な実施例において、CAMアレイ中に
は2048個のセクシヨンがあるので、CAMアレイの
中のストリングのアドレスを指定するために少なくとも
11ビツトを使用する必要がある。良好な実施例におい
ては、CAMアレイは、並列に接続された2048個の
セクシヨン、つまり、並列に接続された512個のセク
シヨンの4つの組で構成される。他の実施例において、
CAMアレイは、少なくとも10ビツトのアドレス記述
を必要とする1012個のセクシヨンの深さ、または少
なくとも9ビツトのアドレスを必要とする512個のセ
クシヨンの深さとすることができる。他の実施例とし
て、異なつたサイズのCAMアレイを使用することがで
きる。
【0037】図8乃至図10は、圧縮エンジンを動作す
るのに用いられる処理を説明するための流れ図である。
良好な実施例において、流れ図の処理は計21の状態で
行なわれる。流れ図は21の状態を参照して以下に説明
される。
【0038】第1の状態00及びステツプ800におい
て、圧縮エンジンは、長さカウンタを0にリセツトし、
すべての一次セレクタをリセツトし、CAMアレイ中の
すべてのエンプテイ・セルを0にリセツトし、すべての
書き込み選択セルを0にリセツトし、そして、最後の書
き込み選択セル(N)を1にセツトする。エンプテイ・
セルはすべて0にリセツトされるので、CAMアレイ・
レジスタ中のエントリはリセツトする必要はなく、従つ
て、時間を節約し、消費電力を少なくすることができ
る。処理は状態01に進む。
【0039】状態01及びステツプ810において、若
し、入力データ・バツフア中にロードするための入力ワ
ードが入力データ・バス上になければ、処理は状態15
に進み、そうでなければ、処理は状態02に進む。この
状態15は、もはや圧縮されるべき入力データ・ワード
がなくなつたフアイルの終了状態を処理するステツプで
ある。
【0040】状態02及びステツプ810乃至860に
おいて、入力データ・バツフア中のデータ・ワードはバ
ツクアツプ入力データ・バツフアに移動され、そして、
入力データ・バス上の次のデータ・ワードが入力データ
・バツフアの中に読み取られる。加えて、今までに発生
した前のすべてのストリングのマツチ動作の結果をスト
アするために、一次セレクタ中のデータは二次セレクタ
の中にロードされる。更に、一次セレクタ及び書き込み
セレクタは1位置シフトされる。書き込みセレクタは、
書き込まれるべき次のCAMアレイ・セルを指定するた
めに、1位置シフトされる(1つの書き込みセルだけが
値1を持つている)。一次セレクタは次の比較の準備と
して1位置シフトされる。これは、前に成功したストリ
ングのマツチに続いて、次の入力データ・ワードが、C
AMアレイ中のいずれかのデータ・ワードとマツチする
か否かをチエツクするためである。最後に、サーチ/書
き込み動作がCAMアレイに実行される。この動作は、
入力データ・バツフア中のデータ・ワードと、1にセツ
トされた対応するエンプテイ・セル(CAMアレイ・セ
ルがデータを含んでいることを指定している)及び0に
セツトされた書き込み選択セル(セルは書き込まれる次
の1ではないことを指定している)を有するCAMアレ
イの各セクシヨン中にストアされた各データ・ワードと
を先ず比較する。若し、マツチがあれば、対応するマツ
チ・ラインは1にセツトされ、そして、若し、一次セレ
クタ・ラインが既に1にセツトされているならば、対応
する一次セレクタ・セルは1のままとなる。最初の入力
データ・ワードの場合には、すべての一次セレクタ・セ
ルは0にセツトされているので、前段でマツチしたスト
リングはない。若し、いずれかのマツチラインか、また
は一次セレクタ・セルが1にセツトされていれば、一次
セレクタORゲートは、値1を発生する。次に、入力デ
ータ・バツフア中のデータ・ワードは、1の値を持ち、
対応する書き込み選択セルを持つCAMアレイ・レジス
タに書き込まれる。その後、処理は状態03に進む。
【0041】状態03及びステツプ870において、若
し一次セレクタORゲートが0であれば、状態08に進
み、そうでなければ、状態04に進む。このステツプは
前にマツチしたストリングがCAMアレイ中のエントリ
とのマツチを続けるか否かを決定するステツプである。
【0042】状態04及びステツプ880において、若
し、長さカウンタがカウンタの最大値よりも小さけれ
ば、処理は状態07に進み、そうでなければ、処理は状
態05に進む。良好な実施例において、後で詳しく説明
されるように、ストリングを記述するトークンを発生す
るのに使用されるコーデイングのために、長さカウンタ
の最大長さは271である。他の実施例において、この
最大長さは、長さカウンタがストアできる最大値に基づ
いて決めることができる。
【0043】状態05及びステツプ890において、圧
縮されたワード・トークンが発生される。このワード・
トークンは、長さカウンタの値から2を差し引いた値に
等しい長さ値を持つている。また、トークンは、最下位
セツトの二次セレクタのアドレス(最後のマツチ・ワー
ドを持つセルを入力データ・ストリングに表示する)か
ら、長さカウンタ値に1を加算した値を差し引いた値に
等しい変位(displacement value)を持つている。その
後、処理は状態06に進む。
【0044】状態06及びステツプ900及び910に
おいて、一次セレクタは対応するマツチ・ラインの値に
設定される。これは、前のPS値をリセツトし、次の可
能なマツチ・ストリングを開始する。加えて、長さカウ
ンタは0にリセツトされる。その後、処理は状態07に
進む。
【0045】状態07及びステツプ920において、長
さカウンタは1を加算され、そして処理は、次のデータ
・ワードに関する処理を開始するために状態01に戻
る。
【0046】若し、入力データ・バツフア中の現在のデ
ータ・ワードが、CAMアレイ中のデータ・ワードのス
トリングと続いてマツチしなければ、状態08が実行さ
れる。状態08及びステツプ930において、若し、長
さカウンタの値が2よりも小さければ、処理は状態10
に進む。若し、長さカウンタの値が2か、またはそれ以
上の値であれば、入力データ・バツフア中のデータ・ワ
ードは、マツチしたデータ・ワードの前のストリングを
終了する。
【0047】状態09及びステツプ940において、圧
縮されたワード・トークンが発生される。状態05にお
いて説明したように、圧縮されたワード・トークンは、
長さカウンタ値から2を差し引いた値に等しい長さ値
と、最下位セツトの二次セレクタのアドレスから、長さ
カウンタ値に1を加えた値を差し引いた値に等しい変位
とを持つている。その後、処理は状態10に進む。代案
として、処理は直接に状態14に進むことができる。
【0048】状態10及びステツプ950において、若
し、長さカウンタ値が1でなければ、状態12に進み、
若し、1であれば、処理は状態11に進む。
【0049】状態11及びステツプ960において、生
ワード・トークンはバツクアツプ・データ・バツフア中
のデータ値を用いて発生される。次に、処理は状態12
に進む。代案として、実行は、状態14に直接に進むこ
とができる。
【0050】状態12及びステツプ970において、若
し、マツチが1に等しければ、処理は状態14に進み、
そうでなければ、処理は状態13に進む。
【0051】状態13及びステツプ980及び990に
おいて、生ワード・トークンは、バツクアツプ・データ
・バツフア中のデータ値を用いて発生される。次に、長
さカウンタは0にリセツトされる。その後、処理は状態
01に戻る。
【0052】状態14及びステツプ994及び996に
おいて、一次セレクタはマツチ・ラインの値と同じ値に
セツトされる。これは、ワードの新しいストリングのマ
ツチ動作を開始することである。加えて、長さカウンタ
は0にリセツトされる。その後、処理は状態01に進
む。
【0053】若し、データ・バツフアの中にデータ・ワ
ードがなければ、状態15乃至状態20が実行される
(状態01を参照)。状態15及びステツプ1000に
おいて、若し長さカウンタの値が2よりも小さければ、
処理は状態18に進む。そうでなければ、処理は状態1
6に進む。
【0054】状態16及びステツプ1010において、
一次セレクタ中の値が二次セレクタの中にロードされ
る。次に処理は状態17に進む。
【0055】状態17及びステツプ1020において、
状態05及び状態09において既に示したように、圧縮
されたワード・トークンが発生される。圧縮されたワー
ド・トークンは、長さカウンタの値から2を差し引いた
値に等しい長さ値と、最下位セツトの二次セレクタのア
ドレスから、長さカウンタ値に1を加算した値を差し引
いた値に等しい変位とを持つている。その後、処理は状
態18に進む。代案として、処理は状態20に直接進む
ことができる。
【0056】状態18及びステツプ1030において、
若し、長さカウンタが0000に等しければ、処理は状
態20に進み、そうでなければ、処理は状態19に進
む。
【0057】状態19及びステツプ1040において、
バツクアツプ入力データ・バツフア中のデータ値を使用
して、生ワード・トークンが発生される。その後、処理
は状態20に進む。
【0058】状態20及びステツプ1050において、
終了マーカのトークンが発生される。
【0059】図11は、良好な実施例の圧縮エンジンに
よつて発生されたデータを復元(decompress)するため
の良好な実施例の復元エンジン1500を示すブロツク
図である。制御回路1510は、生トークン(0に続く
データ・ワード)、圧縮されたデータ・トークン(スト
リングの長さ及び開始アドレス)及び終了マーカ(例え
ば、行中の13個の1)を含む圧縮されたデータ・スト
リームを受け取る。
【0060】若し、生トークンが受け取られたならば、
封緘された(enclosed)データ・ワードはレジスタ15
20の中にストアされる。次に、レジスタの内容は、ア
ドレス・マルチプレクサ1550を介して、書き込みカ
ウンタ1540(最初0にセツトされる)中のアドレス
(データを圧縮するのに使用したCAMアレイと同じセ
クシヨン番号)で、履歴バツフア(history buffer)1
530に書き込まれる。加えて、このレジスタの内容は
出力データ・ワードとしても発生される。次に、書き込
みカウンタに1が加えられる。若し、書き込みカウンタ
が既にNであれば、0にリセツトされる。この動作の結
果、各データ・ワードは、履歴バツフア1530中の次
に続くセクシヨンに書き込まれるので、データ圧縮の間
に用いられたCAMアレイをミラー化(mirroring:内
容を反映すること)する。このデータ・ワードは出力と
しても発生される。
【0061】若し、圧縮されたデータ・トークンが受け
取られたならば、そのアドレスは読み取りカウンタ15
60中にロードされ、そして、その長さはトークン長さ
カウンタ1570の中にロードされる。マルチプレクサ
1550を通つて読み取りカウンタ1560によつてア
ドレスされたバツフア・アレイ中のデータはレジスタ1
520の中に読み込まれる。そのデータ・ワードは、デ
ータを圧縮するのに用いられたCAMアレイのミラー化
を続行するために、書き込みカウンタ中のアドレスで履
歴バツフア1530に書き込まれる。また、このレジス
タ中のデータ・ワードは出力データ・ワードとして発生
される。次に、書き込みカウンタ1540は、上述した
ように1つだけ増分される。若し、トークン長さカウン
タ1570の値が1よりも大きければ、トークン長さカ
ウンタは1だけ減少され、読み取りカウンタ1530は
1だけ増分され、そして、この処理は次のデータ・ワー
ドに対して反復して繰り返される。この処理は、圧縮さ
れたデータ・ストリングによつて参照されたデータ・ス
トリング全体が履歴バツフア1530から順次読み取ら
れ、履歴バツフアの中に書き戻され、出力として発生さ
れるまで繰り返される。
【0062】図1乃至図3に示された相対アドレスを使
用してレンペル−ジブ技術で圧縮されたデータを、本発
明のこの復元エンジンで復元するために、減算回路15
80を付加的に設けることができる。この減算回路は、
相対アドレスから書き込みカウンタ1540中の値を差
し引くことによつて、相対アドレスを固定アドレスに変
換することができる。また、この減算回路を含ませた場
合、この減算回路は、本発明の良好な実施例によつて圧
縮されたデータを復元する時には無視し、そして、相対
アドレスを使用して圧縮されたレンペル−ジブのデータ
を復元する時には付勢する。
【0063】良好な実施例において、生ワード・トーク
ンは、生ワードを後に従えた0として発生される。圧縮
されたワード・トークンは、マツチ・ストリングの長さ
と、CAMアレイ中のマツチ・ストリングの開始位置
(変位(displacement)と呼ばれる)とを後に従えた1
として転送される。また、8個の1で開始する制御トー
クンが発生され、そして、このトークンは制御インスト
ラクシヨンを指定する4個のビツトに続く。最後に、終
了トークンは、圧縮されたデータ・ストリームの終了を
指定するために転送される。終了トークンは1つの行中
で13個の1である。
【0064】表1において、圧縮されたデータ・ワード
・ストリングの長さを指定するために、良好な実施例に
おいて使用されるコードが示されている。このタイプの
コードは、修正対数的コード(modified logarithmic c
oding)であり、短いストリングは短いコードを使用
し、長いストリングは長いコードを使用する。これは、
短いストリングの頻度が、長いストリングの頻度よりも
遥かに大きい時に有益な技術である。この変位は、良好
な実施例において11ビツト値で特定される。短い変位
は、少数のセクシヨンを持つCAMアレイに使用するこ
とができる。
【0065】 表1 圧縮されたワード長を指定するのに使用されるコード コード・フイールド 圧縮されたワード長 00 2ワード 01 3ワード 10 00 4ワード 10 01 5ワード 10 10 6ワード 10 11 7ワード 110 000 8ワード ... ... ... ... ... ... ... ... 110 111 15ワード 1110 0000 16ワード .... .... ... ... .... .... ... ... 1110 1111 31ワード 1111 0000 0000 32ワード .... .... .... ... ... .... .... .... ... ... 1111 1110 1111 271ワード
【0066】本発明の利用範囲を拡大するために、圧縮
されたデータ・ストリーム中に制御インストラクシヨン
が通過される。これらの制御インストラクシヨンは、履
歴バツフアをリセツトすること、優先(prefered)デー
タ・セツトを履歴バツフアに事前にロードすることなど
のインストラクシヨンを含むことができる。良好な実施
例において、長い制御インストラクシヨンと、短い制御
インストラクシヨンとの2つのタイプの制御インストラ
クシヨンがある。表2は長い制御インストラクシヨンを
示しており、表中で、12ビツト制御フイールドは、1
1ビツト制御サブフイールドが後続するものが与えられ
ている。この構成は、4つの制御フイールドの各々に対
して2048サブフイールドを与え、合計6208個の
長いインストラクシヨンを与える。
【0067】 表2 長いインストラクシヨンの制御フイールド及びサブフイールド 長い制御フイールド 制御サブフイールド 1111 1111 0000 0000 0000 000 - 1111 1111 111 1111 1111 0001 0000 0000 000 - 1111 1111 111 1111 1111 0010 0000 0000 000 - 1111 1111 111 1111 1111 0011 0000 0000 000 - 1111 1111 111
【0068】表3は短い制御インストラクシヨンを示し
ている。短い制御インストラクシヨンは、たつた12ビ
ツト長しかなく、従つて、長い制御インストラクシヨン
の合計数よりも数が少ない。然しながら、短い制御イン
ストラクシヨンは転送時間が短い。上述したように、1
つの短い制御フイールドは終了マーカとして既に定義さ
れている。終了マーカは、1つの1(後続のビツトが圧
縮データ・トークンであるか、または制御インストラク
シヨンであるかを定義する)に続く12ビツトの終了マ
ーカ制御インストラクシヨン(12個の1)である。
【0069】 表3 短いインストラクシヨンの制御フイールド 制御フイールド 現在の機能 1111 1111 0100 定義されていない 1111 1111 0101 定義されていない 1111 1111 0110 定義されていない .... .... .... ... ....... .... .... .... ... ....... 1111 1111 1110 定義されていない 1111 1111 1111 終了マーカ
【0070】以上、本発明は特定の実施例について説明
してきたが、当業者であれば、これらの実施例の種々の
変形、修正が容易に推考可能である。例えば、複数デー
タ・バイト、あるいは並列データ・バイトを含むデータ
・ワードは、本発明を適用して順次に圧縮することがで
きるのは、当業者によつて容易に推考し得ることであ
る。
【0071】
【発明の効果】本発明は、データを圧縮し、復元する場
合の比較動作を、従来の技術に比べて、より高速度で、
より効率的に行なうことができ、しかも、使用される半
導体回路の領域が少なく、消費電力も小さい回路を与え
る。
【図面の簡単な説明】
【図1】データ圧縮の従来技術を説明するための図であ
る。
【図2】データ圧縮の従来技術を説明するための図であ
る。
【図3】データ圧縮の従来技術を説明するための図であ
る。
【図4】本発明の良好な実施例を適用したシステム構成
を示す図である。
【図5】本発明の良好な実施例を適用したシステム構成
を示す図である。
【図6】データ圧縮エンジンの良好な実施例を示す図で
ある。
【図7】圧縮エンジンを動作するのに用いる処理方法の
実施例の図である。
【図8】圧縮エンジンを動作するのに用いる処理方法の
実施例の図である。
【図9】圧縮エンジンを動作するのに用いる処理方法の
実施例の図である。
【図10】圧縮エンジンを動作するのに用いる処理方法
の実施例の図である。
【図11】復元エンジンの良好な実施例を示す図であ
る。
【符号の説明】
100 コンピユータ・システム 105 中央処理ユニツト 110 システム・メモリ 115、120 I/Oチヤネル 125 他のコンピユータ・システム 130 テープ駆動装置 135 デイスク駆動装置 140 圧縮/復元エンジン 141、300、500 圧縮エンジン 142、1500 復元エンジン 145 付加的なメモリ 305、1510 制御回路 320 入力データ・バツフア・レジスタ 321 バツクアツプ入力データ・バツフア 330 内容アドレス可能メモリ(CAM) 335、520 エンプテイ・セル 340 書き込み選択シフト・レジスタ 344 マツチORゲート 350 一次セレクタ・レジスタ(PS) 355 二次セレクタ・レジスタ(SS) 365 PSオア・ゲート 370 アドレス発生器 390 長さカウンタ 510 書き込み選択セル 530 CAMアレイ・レジスタ 540 比較器 550 一次セレクタ・セル 560 二次セレクタ・セル 1530 履歴バツフア 1540 書き込みカウンタ 1550 マルチプレクサ 1560 読み取りカウンタ 1570 トークン長さカウンタ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 (a) データ・エレメントを受け取る手
    段と、(b) 前に受け取つたデータ・エレメントを、順
    次アドレスされた固定位置に順次ストアするためのスト
    レージ手段と、(c) 上記受け取つたデータ・エレメン
    トが上記ストアされたデータ・エレメントの少なくとも
    1つのエレメントとマツチしたか否かを決定するため
    に、上記受け取つたデータ・エレメントと上記ストアさ
    れたデータ・エレメントとを比較する手段と、(d) 上
    記マツチしたデータ・エレメントのアドレスを発生する
    手段とからなるデータ圧縮装置。
  2. 【請求項2】 上記ストアされたデータ・エレメントと
    マツチしなかつたデータ・エレメントは転送し、かつ、
    マツチしたデータについては、ストアされたデータ・エ
    レメントの前記発生されたアドレスを転送する手段を含
    む、請求項1に記載のデータ圧縮装置。
  3. 【請求項3】 上記ストレージ手段は内容アドレス可能
    メモリ(CAM)を含む、請求項2に記載のデータ圧縮
    装置。
  4. 【請求項4】 上記受け取つたデータ・ワードの各々
    と、上記ストアされたデータ・ワードとを順次比較する
    手段を含む、請求項2に記載のデータ圧縮装置。
  5. 【請求項5】 上記マツチしたストアされたデータ・エ
    レメントの長さを発生する手段を含む、請求項4に記載
    のデータ圧縮装置。
  6. 【請求項6】 (a) データ・エレメントを受け取るス
    テツプと、(b) 前に受け取つたデータ・エレメント
    を、順次アドレスされた固定位置に順次ストアするステ
    ツプと、(c) 上記受け取つたデータ・エレメントが上
    記ストアされたデータ・エレメントの少なくとも1つの
    エレメントとマツチするか否かを決定するために、上記
    受け取つたデータ・エレメントと、上記ストアされたデ
    ータ・エレメントとを比較するステツプと、(d) マツ
    チした上記ストアされたデータ・エレメントのアドレス
    を発生するステツプとを含むデータ圧縮方法。
  7. 【請求項7】 (a) 処理手段と、(b) メモリ手段と、
    (c) 入力手段と、(d) 出力手段と、(e) データ・エ
    レメントを受け取る手段と、 前に受け取つたデータ・エレメントを、順次アドレスさ
    れた固定位置に順次ストアするストレージ手段と、 上記受け取つたデータ・エレメントが上記ストアされた
    データ・エレメントの少なくとも1つのエレメントとマ
    ツチしたか否かを決定するために、上記受け取つたデー
    タ・エレメントと上記ストアされたデータ・エレメント
    とを比較する手段と、 マツチした上記ストアされたデータ・エレメントのアド
    レスを発生する手段とを含むデータ圧縮装置と、 を有するホスト・コンピユータを備えたデータ処理シス
    テム。
JP30510692A 1991-12-13 1992-11-16 データを圧縮するための装置及び方法並びにデータ処理システム Expired - Fee Related JP3225638B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US80700791A 1991-12-13 1991-12-13
US807007 1991-12-13

Publications (2)

Publication Number Publication Date
JPH05233212A true JPH05233212A (ja) 1993-09-10
JP3225638B2 JP3225638B2 (ja) 2001-11-05

Family

ID=25195360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30510692A Expired - Fee Related JP3225638B2 (ja) 1991-12-13 1992-11-16 データを圧縮するための装置及び方法並びにデータ処理システム

Country Status (5)

Country Link
US (1) US5652878A (ja)
EP (1) EP0546863A3 (ja)
JP (1) JP3225638B2 (ja)
BR (1) BR9204635A (ja)
CA (1) CA2077271C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015029224A1 (ja) * 2013-08-30 2015-03-05 富士通株式会社 データ圧縮装置、方法およびプログラム

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384567A (en) * 1993-07-08 1995-01-24 International Business Machines Corporation Combination parallel/serial execution of sequential algorithm for data compression/decompression
JPH07114577A (ja) * 1993-07-16 1995-05-02 Internatl Business Mach Corp <Ibm> データ検索装置、データ圧縮装置及び方法
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
US7190284B1 (en) 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US5771010A (en) * 1995-03-22 1998-06-23 Ibm Corporation Apparatus for compressing data using a Lempel-Ziv-type algorithm
US5627534A (en) * 1995-03-23 1997-05-06 International Business Machines Corporation Dual stage compression of bit mapped image data using refined run length and LZ compression
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
US5771011A (en) * 1996-07-15 1998-06-23 International Business Machines Corporation Match detect logic for multi-byte per cycle hardware data compression
US6115787A (en) * 1996-11-05 2000-09-05 Hitachi, Ltd. Disc storage system having cache memory which stores compressed data
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US5874907A (en) * 1997-09-19 1999-02-23 International Business Machines Corporation Method and apparatus for providing improved data compression efficiency for an adaptive data compressor
US5877711A (en) * 1997-09-19 1999-03-02 International Business Machines Corporation Method and apparatus for performing adaptive data compression
US5874908A (en) * 1997-09-19 1999-02-23 International Business Machines Corporation Method and apparatus for encoding Lempel-Ziv 1 variants
US6279016B1 (en) 1997-09-21 2001-08-21 Microsoft Corporation Standardized filtering control techniques
US6008743A (en) * 1997-11-19 1999-12-28 International Business Machines Corporation Method and apparatus for switching between data compression modes
US6216175B1 (en) 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US6218970B1 (en) * 1998-09-11 2001-04-17 International Business Machines Corporation Literal handling in LZ compression employing MRU/LRU encoding
DE19859389C1 (de) * 1998-12-22 2000-07-06 Systemonic Ag Verfahren zur Ansteuerung von Funktionseinheiten in einem Prozessor und Prozessoranordnung zur Durchführung des Verfahrens
US6208273B1 (en) * 1999-01-29 2001-03-27 Interactive Silicon, Inc. System and method for performing scalable embedded parallel data compression
US7129860B2 (en) * 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6822589B1 (en) 1999-01-29 2004-11-23 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US20010054131A1 (en) * 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US6466999B1 (en) 1999-03-31 2002-10-15 Microsoft Corporation Preprocessing a reference data stream for patch generation and compression
JP2001084707A (ja) * 1999-09-10 2001-03-30 Toshiba Corp 可変長符号の復号方法、復号装置及び可変長符号の復号プログラムを記録したコンピュータ読み取り可能な記録媒体
US6615310B1 (en) 2000-05-18 2003-09-02 International Business Machines Corporation Lossless data compressor with all CAM words available
US6404356B1 (en) * 2000-05-22 2002-06-11 Cennoid Technologies, Inc. Wave demodulation processor
US20030217025A1 (en) * 2000-09-11 2003-11-20 David Costantino Textual data storage system and method
US6771193B2 (en) 2002-08-22 2004-08-03 International Business Machines Corporation System and methods for embedding additional data in compressed data streams
US7373454B1 (en) * 2003-10-28 2008-05-13 Altera Corporation Pattern detect and byte align circuit using CAM
JP2006295853A (ja) * 2005-04-14 2006-10-26 Sony Corp 符号化装置、復号装置、および、符号化方法ならびに復号方法
US7180433B1 (en) * 2005-09-22 2007-02-20 Tandberg Storage Asa Fast data compression and decompression system and method
JP4940824B2 (ja) * 2006-08-18 2012-05-30 富士通セミコンダクター株式会社 不揮発性半導体メモリ
NZ549548A (en) * 2006-08-31 2009-04-30 Arc Innovations Ltd Managing supply of a utility to a customer premises
US8179291B2 (en) * 2009-05-04 2012-05-15 International Business Machines Corporation Method and system for compression of logical data objects for storage
US8013762B2 (en) * 2009-11-03 2011-09-06 Seagate Technology Llc Evaluating alternative encoding solutions during data compression
US20120033239A1 (en) * 2010-08-05 2012-02-09 John Thomas Varga Mechanism for Inserting Information Into a Bitmap

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222732A (ja) * 1988-07-11 1990-01-25 Fujitsu Ltd データ圧縮装置
JPH02233025A (ja) * 1989-01-23 1990-09-14 Codex Corp 可変長ストリング符合装置
JPH0378322A (ja) * 1989-08-22 1991-04-03 Fujitsu Ltd データ圧縮方式

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3914586A (en) * 1973-10-25 1975-10-21 Gen Motors Corp Data compression method and apparatus
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US4054951A (en) * 1976-06-30 1977-10-18 International Business Machines Corporation Data expansion apparatus
US4087788A (en) * 1977-01-14 1978-05-02 Ncr Canada Ltd - Ncr Canada Ltee Data compression system
US4463342A (en) * 1979-06-14 1984-07-31 International Business Machines Corporation Method and means for carry-over control in the high order to low order pairwise combining of digits of a decodable set of relatively shifted finite number strings
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4295125A (en) * 1980-04-28 1981-10-13 International Business Machines Corporation Method and means for pipeline decoding of the high to low order pairwise combined digits of a decodable set of relatively shifted finite number of strings
US4467317A (en) * 1981-03-30 1984-08-21 International Business Machines Corporation High-speed arithmetic compression coding using concurrent value updating
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US4560976A (en) * 1981-10-15 1985-12-24 Codex Corporation Data compression
US4622545A (en) * 1982-09-30 1986-11-11 Apple Computer, Inc. Method and apparatus for image compression and manipulation
NL8301264A (nl) * 1983-04-11 1984-11-01 Philips Nv Inrichting voor het regelsgewijs comprimeren van binaire data van een beeldveld- en aftastinrichting voor een document voorzien voor zulk comprimeren.
US4677649A (en) * 1983-04-26 1987-06-30 Canon Kabushiki Kaisha Data receiving apparatus
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
JPH0828053B2 (ja) * 1983-08-08 1996-03-21 株式会社日立製作所 データ記録方法
US4633490A (en) * 1984-03-15 1986-12-30 International Business Machines Corporation Symmetrical optimized adaptive data compression/transfer/decompression system
US4612532A (en) * 1984-06-19 1986-09-16 Telebyte Corportion Data compression apparatus and method
GB2172127B (en) * 1985-03-06 1988-10-12 Ferranti Plc Data compression system
US4682150A (en) * 1985-12-09 1987-07-21 Ncr Corporation Data compression method and apparatus
US4652856A (en) * 1986-02-04 1987-03-24 International Business Machines Corporation Multiplication-free multi-alphabet arithmetic code
US4905297A (en) * 1986-09-15 1990-02-27 International Business Machines Corporation Arithmetic coding encoder and decoder system
US4935882A (en) * 1986-09-15 1990-06-19 International Business Machines Corporation Probability adaptation for arithmetic coders
US4891643A (en) * 1986-09-15 1990-01-02 International Business Machines Corporation Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US4730348A (en) * 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
JPH0815263B2 (ja) * 1986-12-12 1996-02-14 株式会社日立製作所 データ圧縮復元方法
US4853696A (en) * 1987-04-13 1989-08-01 University Of Central Florida Code converter for data compression/decompression
US4943869A (en) * 1987-05-06 1990-07-24 Fuji Photo Film Co., Ltd. Compression method for dot image data
US4876541A (en) * 1987-10-15 1989-10-24 Data Compression Corporation Stem for dynamically compressing and decompressing electronic data
US4891784A (en) * 1988-01-08 1990-01-02 Hewlett-Packard Company High capacity tape drive transparently writes and reads large packets of blocked data between interblock gaps
US4906991A (en) * 1988-04-29 1990-03-06 Xerox Corporation Textual substitution data compression with finite length search windows
US4899147A (en) * 1988-06-03 1990-02-06 Unisys Corporation Data compression/decompression apparatus with throttle, start-up and backward read controls
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
US5003307A (en) * 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
US5025258A (en) * 1989-06-01 1991-06-18 At&T Bell Laboratories Adaptive probability estimator for entropy encoding/decoding
US5023611A (en) * 1989-07-28 1991-06-11 At&T Bell Laboratories Entropy encoder/decoder including a context extractor
US4988998A (en) * 1989-09-05 1991-01-29 Storage Technology Corporation Data compression system for successively applying at least two data compression methods to an input data stream
US5109433A (en) * 1989-10-13 1992-04-28 Microsoft Corporation Compressing and decompressing text files
US4955066A (en) * 1989-10-13 1990-09-04 Microsoft Corporation Compressing and decompressing text files
US5001478A (en) * 1989-12-28 1991-03-19 International Business Machines Corporation Method of encoding compressed data
US5130993A (en) * 1989-12-29 1992-07-14 Codex Corporation Transmitting encoded data on unreliable networks
US4973961A (en) * 1990-02-12 1990-11-27 At&T Bell Laboratories Method and apparatus for carry-over control in arithmetic entropy coding
JPH0834434B2 (ja) * 1990-02-26 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
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
US5051745A (en) * 1990-08-21 1991-09-24 Pkware, Inc. String searcher, and compressor using same
CA2065578C (en) * 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
US5245614A (en) * 1991-04-29 1993-09-14 Codex Corporation Vocabulary memory allocation for adaptive data compression of frame-multiplexed traffic
US5140321A (en) * 1991-09-04 1992-08-18 Prime Computer, Inc. Data compression/decompression method and apparatus
US5155484A (en) * 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222732A (ja) * 1988-07-11 1990-01-25 Fujitsu Ltd データ圧縮装置
JPH02233025A (ja) * 1989-01-23 1990-09-14 Codex Corp 可変長ストリング符合装置
JPH0378322A (ja) * 1989-08-22 1991-04-03 Fujitsu Ltd データ圧縮方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015029224A1 (ja) * 2013-08-30 2015-03-05 富士通株式会社 データ圧縮装置、方法およびプログラム
US9438271B2 (en) 2013-08-30 2016-09-06 Fujitsu Limited Data compression apparatus and method
JPWO2015029224A1 (ja) * 2013-08-30 2017-03-02 富士通株式会社 データ圧縮装置、方法およびプログラム

Also Published As

Publication number Publication date
BR9204635A (pt) 1993-06-15
EP0546863A2 (en) 1993-06-16
CA2077271C (en) 1998-07-28
JP3225638B2 (ja) 2001-11-05
US5652878A (en) 1997-07-29
EP0546863A3 (en) 1994-05-25
CA2077271A1 (en) 1993-06-14

Similar Documents

Publication Publication Date Title
JP3225638B2 (ja) データを圧縮するための装置及び方法並びにデータ処理システム
US5563595A (en) Method and apparatus for compressing data
EP0129439B1 (en) High speed data compression and decompression apparatus and method
US5659737A (en) Methods and apparatus for data compression that preserves order by using failure greater than and failure less than tokens
JP3309028B2 (ja) 連想記憶メモリ内の複数辞書管理を改良したlempel−zivデータ圧縮のための装置、及び方法
US5150430A (en) Lossless data compression circuit and method
US6532121B1 (en) Compression algorithm with embedded meta-data for partial record operation augmented with expansion joints
US5612693A (en) Sliding window data compression using a toroidal bit shift register
US5469161A (en) Algorithm for the implementation of Ziv-Lempel data compression using content addressable memory
EP0702457A2 (en) Method and apparatus for compressing and decompressing data
US20050192994A1 (en) Data compression method and apparatus
Yamaguchi et al. An efficient method for compressing test data
US6385617B1 (en) Method and apparatus for creating and manipulating a compressed binary decision diagram in a data processing system
US7554464B1 (en) Method and system for processing data having a pattern of repeating bits
JPH05276052A (ja) ハフマンコードワードをデコードする方法及び装置
US7650040B2 (en) Method, apparatus and system for data block rearrangement for LZ data compression
US7167115B1 (en) Method, apparatus, and computer-readable medium for data compression and decompression utilizing multiple dictionaries
EP2690565B1 (en) Method and system for compressing data records and for processing compressed data records
JP2021149389A (ja) メモリシステム
JPH0628149A (ja) 複数種類データのデータ圧縮方法
Henriques et al. A parallel architecture for data compression
US5745603A (en) Two dimensional context model obtained without a line buffer for arithmetic coding
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JPH05152971A (ja) データ圧縮・復元方法
JP3171510B2 (ja) 辞書ベースのメモリ内のデータを圧縮および圧縮解除する方法

Legal Events

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