JP3224813B2 - 圧縮データ・アクセス - Google Patents
圧縮データ・アクセスInfo
- Publication number
- JP3224813B2 JP3224813B2 JP50345391A JP50345391A JP3224813B2 JP 3224813 B2 JP3224813 B2 JP 3224813B2 JP 50345391 A JP50345391 A JP 50345391A JP 50345391 A JP50345391 A JP 50345391A JP 3224813 B2 JP3224813 B2 JP 3224813B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- user data
- dictionary
- record
- group
- 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.)
- Expired - Lifetime
Links
- 238000007906 compression Methods 0.000 claims description 83
- 230000006835 compression Effects 0.000 claims description 80
- 238000000034 method Methods 0.000 claims description 63
- 238000013144 data compression Methods 0.000 claims description 35
- 239000000872 buffer Substances 0.000 description 96
- 238000000926 separation method Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 31
- 230000006837 decompression Effects 0.000 description 30
- 238000012546 transfer Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 230000008901 benefit Effects 0.000 description 14
- 238000013459 approach Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 9
- 230000008520 organization Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000002441 reversible effect Effects 0.000 description 7
- 238000012856 packing Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000002955 isolation Methods 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical group [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100354855 Homo sapiens PYDC1 gene Proteins 0.000 description 1
- 102100039892 Pyrin domain-containing protein 1 Human genes 0.000 description 1
- 101100208571 Xenopus laevis ube2c gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005204 segregation Methods 0.000 description 1
- 230000002311 subsequent effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; 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)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
で、テープへの記憶のため、ユーザ・データを圧縮する
方法に関する。
き込む前に圧縮してテープ記憶容量を増大させるため
に、データ圧縮能力を有するテープ・ドライブ(DCドラ
イブ)を備えることが知られている。DCドライブは、テ
ープから圧縮データを読み取り、ホストに送る前にデー
タを復元する(decompress)こともできる。ホストは、
また、ユーザ・データのソフトウェア圧縮および/また
は復元をすることもできる。
レコード、ファイルなどの分離マークをデータストリー
ムから除去して、該マークの位置に関する情報をインデ
ックスに記憶することにより、ユーザ・データを効率的
に圧縮する。別の全く異なるアプローチでは、データの
冗長性を除去することにより、例えば、ユーザ・データ
・ワードを、元のデータを回復することのできるコード
・ワードまたは記号と置き換えることにより、ユーザ・
データを圧縮する。用語“データ圧縮”または略号DCを
用いるとき、本書で言及されるのは後者のタイプであ
る。
が知られている。あるアプローチでは、データを圧縮す
るときに動的に作成される辞書(dictionary)を用い
て、ユーザ・データをコード・ワードに変換する。辞書
は、復元中に、再び動的に、再生成される。このアプロ
ーチを用いるアルゴリズムは、LEMPEL ZIV WELCHアル
ゴリズムまたはLZWアルゴリズムである。
ドライブは、新しい辞書がいつスタートされるか(RESE
Tコード・ワード)、およびデータがいつフラッシュさ
れるか、すなわち、バッファに保持された、圧縮を待つ
小量のデータが、それ以上の入力データが該バッファに
送られる前にいつ送られるか(FLUSHコード・ワード)
を示すコード・ワードをデータストリームに挿入する。
一部の復元を達成するため、関連辞書を再生成すること
ができるようにするのにRESETコード・ワードから復元
を開始することが必要である。一般に、新しい辞書を、
データの便宜的なポイント、例えばレコードのはじめに
おいてスタートすることができるように、新しい辞書を
始める前にFLUSH操作が行われる。
新非圧縮データストリーム(‘ヒストリ・バッファ’ま
たは‘スライディング・ウインドウ’または‘スライデ
ィング辞書’と呼ばれる)を参照し、ヒストリ・バッフ
ァに現れる入力データストリームの項目を、ヒストリ・
バッファの中のどこに位置するかを示すコード・ワード
/トークンと置き換える。このアプローチは、第一Lemp
el ZivアルゴリズムまたはLZ1として知られている。復
元中に、ヒストリ・バッファも参照され、コード・ワー
ド/トークンに遭通すると、ヒストリ・バッファからの
関連ストリングが置き換えられて、元のデータストリー
ムが再構成される。
ッファをクリアする作用があり、FLUSHコマンドにはル
ックアヘッド・バッファをクリアする作用がある。
な生データを通したり、またはデータストリームの便宜
的なポイントにおいてデータ圧縮を再開する前に、圧縮
を待っているデータにおいて圧縮操作を完了させるもの
と考えることができる。これは、ソフトウェアまたはハ
ードウェアにより圧縮が行われる場合でも適用される。
データをテープ上に記憶するための圧縮方法が提供され
る:すなわち、 複数のレコードに構成されたユーザ・データ・ワード
のストリームを受信するためのステップと; 該データから得られる辞書を用いて、ユーザ・データ
の少なくとも一部をコード・ワードに変換することを含
む圧縮アルゴリズムに従って前記ユーザ・データを圧縮
するステップと; を備え、開始連続辞書間で複数のフラッシュ動作を実行
することにより特徴づけられる。
ズムとともに広く用いられる。一般に、この用語は、い
ずれかの記号またはトークン、またはデータ圧縮中にユ
ーザ・データの一部を置き換えるために用いる他の表記
を扱うために意図されている。用語‘辞書’は、バイト
・ストリングの集まりおよび圧縮データを非圧縮データ
に変換する際に用いるための対応するコード・ワードを
扱うように意図されている。すでに述べたデータ圧縮ア
ルゴリズムのいずれにおいても、辞書は、データ圧縮中
に生成され、圧縮データ自体に含まれている。
ないデータのセグメントを、その圧縮された形式のテー
プから選択的に回復することができることである。言い
換えれば、辞書内のFLUSHコード・ワードは、コンパイ
ルするために用いたり、または該辞書を用いるところ
の、データのセグメント間に“クリーン・ブレーク(cl
ean break)”をもたらすことである。たとえば、FLUS
Hコード・ワードは、各レコードの終わりにおいてデー
タストリームに挿入することができる。
うな方法で、フラッシュ動作が起きた位置の表示を、テ
ータ上に記憶することを含むことが望ましい。
る圧縮バイト・カウント(CBC)、または1対のFLUSH動
作間で定義される他のデータ・セグメントを記憶するこ
とである。
うな方法で、新しい辞書の始めの位置の表示を、テープ
に記憶することを含むことが望ましい。
めに用いられる特定圧縮アルゴリズムについての情報を
テープに記憶することである。
のレコード構造とは無関係に、圧縮ユーザ・データを複
数のグループとしてテープに書き込み、各グループの始
めまたはその近くで新しい辞書を始めることを含む。該
方法は、各グループの最初の新しいレコードの始めにお
いて新しい辞書を始めることを含むことが望ましい。
らすことによりデバイス・コントローラで要求されるバ
ッファ・スペースの量を減少させる一助になること、す
なわち2つ以上のデータ・グループをバッファに記憶す
るために必要とする可能性を少なくするという点であ
る。さらに、該グループのデータ・セグメントを復元す
るために、特定グループの外側を見る必要のないことも
利点である。
レコードを、1つのエンティティが1つ以上のレコード
を含む複数のエンティティに組織し、各エンティティの
終わりでフラッシュ動作を実行することを備えている。
択的に復元することができる。
ループの最初の新しいエンティティの始めにおいて新し
い辞書を始めることを含むことができる。
作する、ユーザ・データを圧縮したり、圧縮ユーザ・デ
ータをテープに記憶するための記憶装置を提供する。
例としてここに記述する。
関する図である。
ァの図式的表現図である。
うに圧縮されるかを示す図表である。
複部分図であって、 (a)はユーザ(ホスト)によってデータ記憶装置に
送られる論理的分離マーク及びデータ・レコードのシー
ケンスを表す図である。
ープ上に記憶する2つの異なる構成を示す図である。
ーブル図である。
ブル図である。
さらなる構成図である。
関する可能な有効エントリ(entry)を示す図である。
る構成のさらなる図である。
データ記憶装置の部分を形成するテープ・デッキの主な
物理的コンポーネントを示す図である。
2つのデータ・トラックの図式的表現図である。
・トラックの主なデータ領域のフォーマットの図式的表
現図である。
データ・トラックのサブ・データ領域のフォーマットの
図式的表現図である。
におけるデータ・フレームの構成及び各グループのフレ
ームに記録されたインデックスの詳細の両方を示す図で
ある。
ンポーネントのブロック図である。
ロック図である。
より詳細な機能ブロック図である。
関する探索において、ドライブ装置により実施されるア
ルゴリズムの流れ図である。
るさらなる情報がまず与えられる。
去することにある。圧縮効率の測度の1つは、“圧縮
比”と呼ばれ、 復元される入力の長さ/圧縮される入力の長さ として定義される。
比が大きくなれば、圧縮効率もそれだけ高くなる。
ターンを認識して、コード化する、すなわち、置換方法
が用いられる。
入力文字が見つかると、それらは辞書に入力され、数値
が割り当てられる。辞書は、データの圧縮時に、動的に
形成され、復元時に、データから再生される。一旦、辞
書エントリが存在すると、データ・ストリーム内にその
後に発生する該エントリは、数値またはコード・ワード
に置き換えることができる。留意すべきは、このアルゴ
リズムは、ASCIIテキスト・データの圧縮に制限される
ものではないという点である。その原理は、2進ファイ
ル・データ・ベース、イメージング・データ等にも等し
く当てはまる。
ルゴリズムがデータ内で見つけた独特なストリングをな
すデータ・バイトと、(2)このバイトの組合せを表わ
したコード・ワードから構成される。辞書には、4096ま
でのエントリを納めることができる。第1の8つのエン
トリは、特定の条件のフラグを立て、その制御を行なう
ために用いられる予約コード・ワードである。次の256
のエントリには、0〜255のバイト値が含まれている。
従って、これら256の項目のいくつかは、ASCIIテキスト
文字に関するコード・ワードである。残りの位置は、他
の辞書位置を指示し、結局は、バイト値0〜255の1つ
を指示することによって終了する連係リスト・エントリ
である。この連係リスト・データを用いることによっ
て、可能性のあるバイトの組合せは、2バイト〜128バ
イトの長さの範囲内になるので、その記憶に過剰に広い
メモリ・アレイを用いなくてもすむようにすることがで
きる。
辞書は、構築してから、23ビット幅のランダム・アクセ
ス・メモリ(RAM)のバンクに記憶される。各メモリ・
アドレスには、下位8ビットによるバイト値、次の12ビ
ットによるエントリを表わすコード・ワードまたはポイ
ンタ、及び、上位3ビットによる3つの条件フラグを含
むことができる。コード・ワードを表わすのに用いられ
る出力バイト・ストリームにおけるビット数は、9ビッ
ト〜12ビットの範囲であり、0〜4095の範囲の辞書エン
トリに対応する。辞書構築段階において、辞書に512の
エントリが作成されるまで、各コード・ワード毎に、9
ビットが用いられ、512番目のエントリの後は、コード
・ワードに10ビットが用いられ、1024番目のエントリの
後は、コード・ワードに11ビットが用いられ、最後の20
48エントリについては、コード・ワードに12ビットが用
いられる。辞書が満杯になると、それ以上のエントリ
は、作成されず、後続の全てのコード・ワードは、長さ
が12ビットになる。任意の辞書エントリに関するメモリ
・アドレスは、エントリ値に対して複雑な操作を施すこ
とによって決定される。辞書には、4096のエントリを納
めることができるので、辞書全体の支援には、4Kバイト
のRAMしか必要ないように思われる。これは、実際、復
元時にあてはまることである。しかし、圧縮時には、辞
書の構築段階において生じる辞書の“衝突”のため、4K
バイトを超えるRAMが必要になる。これは、2つの異な
るストリング/文字の組合せが、辞書RAM内における同
じ場所にマッピングが施される場合があり、辞書RAMに
おける資源は有限であることと、圧縮時における辞書構
築のプロセスが複雑であるためである。辞書の衝突が生
じると、2つの衝突値が、2つの新しい位置について再
計算され、もとの位置に衝突位置のフラグが立てられ
る。
ある。これら2つの動作は、圧縮及び復元プロセス時
と、バイト・ストリームに対するコード・ワードのパッ
キング及びアンパッキング時の両方において結びつけら
れる。圧縮アルゴリズムの特性により、圧縮プロセスと
復元プロセスを同期させることが必要になる。別の言い
方をすると、復元は、圧縮データの任意のポイントから
開始させることはできない。復元は、辞書が空またはリ
セットされていることが分っているポイントから開始す
る。この結合によって、アルゴリズムの基本的な利点の
1つが得られる。すなわち、辞書は、コード・ワードに
組み込まれているので、圧縮データと共に転送する必要
はない。同様に、パッキングとアンパッキングのプロセ
スも同期させなければならない。復元ハードウェアに対
して圧縮データを適正な順序で提示しなければならない
点に留意のこと。
ィック図である。この例には、次の文字から成る入力デ
ータ・ストリームが示されている:RINTINTIN。圧縮プロ
セスの流れをたどるには、第A図を上から下へ検分し、
左から始めて右へ進めるのが望ましい。辞書は、リセッ
トされ、8つの予約コード・ワード、及び、全てのASCI
I文字に関するコード・ワードを含む0〜255の第1の25
6エントリを納めるように初期設定されているものと仮
定する。
ト毎に下記のプロセスを実行する: 1.入力バイトを取る。
一致すれば、別の入力バイトを取り、現在のシーケンス
に加え、一致した最大のシーケンスを記憶しておく。
す。
する。
力する。
初のRを受け取った後、開始する。入力文字Rは、その
初期設定時に納められた文字Rに一致する。一致したの
で、DCエンジンは、別のバイトを受け取るが、これは文
字Iである。次に、シーケンスRIを求めて辞書の探索を
行なうが、一致するものは見あたらない。従って、新し
い辞書エントリはRIが作成され、最大の一致シーケンス
に関するコード・ワード(すなわち、文字Rに関するコ
ード・ワード)が、出力される。次に、DCエンジンは、
Iを求めて辞書を探索し、Rの場合とちょうど同じよう
に、一致を見つけ出す。もう1つの文字が入力され
(N)、シーケンスINに関して探索を開始する。INは、
どのエントリとも一致しないので、新しいエントリが作
成され、最大の一致シーケンスに関するコード・ワード
(すなわち、文字Iに関するコード・ワード)が、出力
される。このプロセスは、続行され、文字Nの探索が行
なわれる。Nが見つかると、次の文字が入力され、NTを
求めて辞書の探索が行なわれる。これは見つからないの
で、NTに関する辞書エントリが作成され、Nに関するコ
ード・ワードが出力される。同じシーケンスが、文字T
及びIについても生じる。Tに関するコード・ワードが
出力され、TIに関する辞書エントリが作成される。
は行なわれなかった。実際、4つの8ビット文字が4つ
の9ビット・コード・ワードに置き換えられたというこ
とであって、出力ストリームは、わずかに拡張されただ
けである。(これは、32ビット対36ビットの拡張、すな
わち、1.125:1の圧縮比を表わしている。)しかし、次
の文字が入力されると、データ圧縮が開始する。この時
点で、DCエンジンは、INシーケンスの探索を行なう。一
致を見つけると、DCエンジンは、別の文字を受け取り、
INあの探索を開始する。一致が見つからなれければ、IN
Tに関する辞書エントリを作成し、シーケンスINに関し
てあらかじめ生成されたコード・ワードを出力する。こ
の場合、2つの8ビット文字が1つの9ビット・コード
・ワードに置き換えられ、圧縮比は16/9すなわち1.778:
1になっている。
のコード・ワードに置き換えられる。DCエンジンは、前
のシーケンスからのTで開始され、続いて、次の文字I
を受け取る。DCエンジンは、TIシーケンスを探索し、一
致するので、別のバイトが、入力される。次に、該チッ
プは、TINシーケンスの探索を行なう。一致するものが
ないので、TINエントリが作成され、TIに関するコード
・ワードが出力される。このシーケンスも、INシーケン
スが示した1.778:1の圧縮比を示す。この9バイトから
なるストリングに関する正味の圧縮比は、1.143:1であ
る。この例は、極めて少数のバイトからなるため、これ
は、特に大きい圧縮比ではない。データのサンプルが増
えると、記憶されるデータのシーケンスも増し、単一の
コード・ワードによって置き換えられるバイトのシーケ
ンスも増す。1:1〜110:1の範囲の圧縮比を得ることが可
能になる。
の例では、入力として前の圧縮例の出力が用いられる。
復元プロセスは、圧縮プロセスに極めてよく似ている
が、所定の辞書エントリの存在を探索する必要がないの
で、復元に関するアルゴリズムは、圧縮に関するアルゴ
リズムほど複雑ではない。2つのプロセスを結合するこ
とによって、復元時における適合する辞書エントリの存
在が保証される。該アルゴリズムは、入力コード・ワー
ドを利用して、辞書内のバイト・シーケンスを参照し、
次に、圧縮アルゴリズムと同じ規則を利用して、新しい
エントリを作成するだけである。このようにして、復元
アルゴリズムでは、データ・パケットとともに特別辞書
を送ることなく、圧縮データを回復することができる。
5の最初の256エントリを納めるように初期設定されてい
るものと仮定する。復元エンジンは、Rに関するコード
・ワードを受け取ることから開始する。復元エンジン
は、このコード・ワードを利用して、バイト値Rを参照
する。この値は、後入れ先出し(LIFO)スタックに納め
られ、チップから出力されるのを待つ。Rは、根コード
・ワード(最初の256エントリの1つ)であるため、こ
のコード・ワードについて、リストの終端に達したこと
になる。次に、チップから出力スタックがダンプされ
る。復元エンジンは、さらに、Iに関するコード・ワー
ドを入力し、それを利用して、バイト値Iを参照する。
やはり、この値は、根コード・ワードであるため、この
コード・ワードに関する出力シーケンスが、完了し、I
に関するバイト値が、出力スタックからポップされる。
この時点で、出力スタック(I)にプッシュされた最後
のバイト値と、前のコード・ワード(Rに関するコード
・ワード)を利用して、新しい辞書エントリが作成され
る。各エントリは、こうして作成され、1つのバイト値
と、シーケンスをなす次のバイト(前のコード・ワー
ド)に対するポインタを含んでいる。こうして、各辞書
エントリ毎に、連係リストが生成される。
・ワード)、該プロセスが反復される。今度は、Nが出
力され、バイト値Nと、Iに関するコード・ワードを含
む新しい辞書エントリが、作成される。Tに関するコー
ド・ワードが入力されると、Tが出力され、別の辞書エ
ントリが作成される。入力される次のコード・ワード
は、バイト・シーケンスINを表わす。復元エンジンは、
このコード・ワードを利用して、本例において前に生成
された第2の辞書エントリを参照する。このエントリに
は、出力スタックに納められたバイト値Nと、現在のコ
ード・ワードになるIに関するコード・ワードに対する
ポインタが含まれている。この新しいコード・ワード
は、出力スタックに納められる次のバイト(I)を見つ
けるために用いられる。これは、根コード・ワードであ
るので、参照プロセスは、完了し、出力スタックが、逆
の順序でダンプされる。すなわち、まずIが出力され、
これにNが続くことになる。次の2つのコード・ワード
に関して、同じプロセスが反復され、もとのバイト・シ
ーケンスRINTINTINが回復することになる。
した予約コード・ワードのうちの2つは、RESETおよびF
LUSH条件に関するコード・ワードである。RESETコード
・ワードは、新辞書の開始を意味する。FLUSHコード・
ワードは、DCチップがそのバッファをフラッシュ・アウ
トしたこと、すなわち連続データでバッファを再び一杯
にする前に、バッファに現在保持されているデータ(現
在の最長の一致を表す)に関するコード・ワードを出力
することを意味する。DCチップは、RESETおよびFLUSHコ
ード・ワードを、アルゴリズム従属方式でデータストリ
ームに書き込む。しかし、圧縮データへのアクセスを改
善するために、RESETおよびFLUSHコード・ワードのうち
のある1つを利用することができるように、テープ・フ
ォーマットは、特定RESETおよびFLUSHコード・ワードを
用いなければならないときに関する制約を課し、特定情
報の書込みも確実にする。
出力は、各々8または16ビット以外にすることができる
ので、“パッカー”は普通、システムに含まれ、コード
・ワードを受け入れ、パックされたコード・ワードのバ
イトを出力する。このパッキング・プロセスは、その出
力からの部分的バイトを必然的に制止して、圧縮アルゴ
リズムにより次のコード・ワードが生成されるのを待
つ。この部分的コードワードは、圧縮システムに取り込
まれているが、その出力にまだ反映されていない追加デ
ータを表す。
で、圧縮装置に入るすべてのバイトをその出力で表すこ
とが要求される。これは、見つけたなかで現在の一致が
最長のものであること、したがってその現在の突合せコ
ード・ワードを出力すべきことを圧縮装置に知らせなけ
ればならないということを意味する。これは、いずれか
の部分的コード・ワードが圧縮システムからの出力であ
ることも意味している。これは、受信したすべてのバイ
トがその出力で表されるときに、圧縮装置が“フラッシ
ュ”されるFLUSH動作である。これは、その出力からの
データは制止しない。
復元は、コード・ワードRESETからしか開始されること
ができない。一方、復元の停止は、それが、特定の辞書
の終端でなかったとしても、後続の任意のFLUSHコード
・ワードで行なうことができる。これが、各レコードの
終りにコード・ワードFLUSHを配置し、辞書の構築に用
いられるものより小さいデータ・セグメントの選択的復
元を可能にすることが有利な理由である。
アンパッキング・セクションを含む。復元装置には最長
一致を見つけるタスクがなく、したがって固有のバッフ
ァリングを伴わないが、アンパッカーは一度に1バイト
のデータを外界から取り込むことができるので、一般に
復元装置からの部分的コード・ワードを制止する。
ドが復元装置に与えられたならば、アンパッカーは残さ
れたビットを放棄しなければならない。これらのビット
は、次のコード・ワードの一部ではなく、むしろ圧縮中
にフラッシュ動作により導入されるパディングである。
したがって、アンパッカーは、圧縮中にどこでフラッシ
ュが起こったかを知らなければならない。
ので、辞書の開始時に、データの大部分は、圧縮せずに
排出される。この段階では、圧縮比は比較的小さい。従
って、圧縮効率を低下させるほど頻繁に辞書の再開を繰
り返すのは望ましくない。
合には、辞書をその静的状態に保つことができる。すな
わち、圧縮比が下がり、新辞書を開始することがより効
率的になるまで、エントリを1つも追加することはでき
ない。
トの共通ストリングを特別記号と置き換えることであ
る。この記号は、ストリングがより早くに伝送または記
憶されたこと、および復元装置が特別記号の代りに前の
発生を用いることのみ必要であることを知らせる。さら
にはっきり述べると、圧縮装置の出力は、サイテーショ
ン(citation)と呼ばれるストリングの前の出現の参照
と、イノベーションと呼ばれる非圧縮文字の参照とを交
互にすることにより得られる。イノベーションは、圧縮
出力では明らかに変化しない文字であり、復元装置で、
新しい、前に見えなかった文字の使用を認識することが
できるようにするため、備えられている。
られている)を必要とし、2つの部分に分けられる。大
部分のバッファには入力の過去のヒストリが含まれ、こ
れはすでに圧縮されている文字である。ウインドウの終
わりの小さな部分は、ルックアヘッド・バッファと呼ば
れ、圧縮すべき今後の文字を含む。この構造を用いると
きには、ルックアヘッド・バッファは残りのウインドウ
と比較される。
ッファWおよびルックアヘッド・バッファLに分けて示
してある。圧縮すべき入力データは、幾つかの文字、例
えば20文字の容量を有するルックアヘッド・バッファL
に記憶される。ウインドウ・バッファWには、最も新し
い過去のデータのヒストリが含まれ、数千文字、例えば
4096文字の容量がある。生データは、ルックアヘッド・
バッファLからウインドウ・バッファWに入り、ウイン
ドウ・バッファWの最も古いデータが捨てられる(ウイ
ンドウ・バッファWが一杯になったとき)。こうした理
由により、ウインドウ・バッファWは時々‘スライディ
ング・ウインドウ’と呼ばれる。
ックアヘッド・バッファLに入れられると、各文字はウ
インドウ・バッファWの内容と比較あれる。ある文字で
一致が見つからなければ、その文字は、その生の状態、
すなわちイノベーションとして出力される。該文字は、
次にウインドウ・バッファWにも入れられる。
かったならば、より長い一致を見つけることができるか
どうかを確認するために、次の文字も、一致文字と組み
合わせて考えられる。このプロセスは、別の文字を追加
することが、ウインドウ・バッファWにもはや一致がな
いということを、意味するまで、繰り返される。コード
・ワード/記号は一致の長さを示し、ウインドウ・バッ
ファWのその位置は出力され、関連ストリングがウイン
ドウ・バッファWに追加される。
ァよりも前にある限り、ルックアヘッド・バッファに達
するストリングを参照することが許容される。一致がル
ックアヘッド・バッファに達すると、LZ1圧縮装置は一
種のラン・レングス(run−length)エンコーディング
を行っている。一致がバッファよりも前の文字で始まる
場合には、圧縮装置“aaaaaa..."などの一続き(run)
を圧縮している。同様に、一致の最初の文字がバッファ
の前の幾つかの文字を始める場合には、圧縮装置は“ab
abab..."または“abcabcabc..."などの一続きを圧縮し
ている。
に従って圧縮され、これが圧縮すべき最初のデータであ
ること、すなわち最初にウインドウ・バッファBが空で
あることを想定している。最初の4文字はイノベーショ
ンとしての出力である。5番目の文字Iはウインドウ・
バッファWにあるので、次の文字^Nは、INがすでにウイ
ンドウ・バッファWにあるかどうかをチェックするため
のものあると考えられる。ストリングINTも考えられる
が、それもまたウインドウ・バッファにある。しかし、
次の文字Iを追加することにより、ウインドウ・バッフ
ァWにないストリングINTIを生成する。したがって、コ
ード・ワードは、ウインドウ・バッファWのINTの位置
を示す出力であり、長さ3である。位置は‘オフセッ
ト’により示され、すなわち、ウインドウ・バッファW
において、現在の文字からどれくらい離れたところで一
致がスタートするかを示す。
し、最終ストリングINは、ウインドウ・バッファの3文
字戻った該ストリングの場合と一致するので、出力コー
ド・ワードは<3,2>である。
き入力データにコード・ワードが見つかると、復元は、
そのオフセットおよび長さにしたがってウインドウ・バ
ッファの適切なストリングを捜すこと、およびストリン
グを出力することが伴う。したがって、RINTINTIN例で
は、最初のコード・ワード<3,3>に遭遇すると、3文
字戻って始まる長さ3のストリング、すなわちINTが出
力される。次のコードワード<3,2>に遭遇すると、3
文字戻って始まる長さ2のストリング、すなわちINが出
力される。
インドウ・バッファをクリアする作用がある。FLUSHコ
マンドには、ルックアヘッド・バッファをクリアする作
用がある。したがって、LZ1アプローチの‘辞書’は、
2つの連続するRESETコマンドの間でウインドウ・バッ
ファを‘スライド’するデータ量により表される。LZW
アルゴリズムに関しては、復元は最後のRESETから始め
なければならない。
各レコードの終わりでウインドウ・バッファをリセット
することのないときに、比較的短い一連のレコードに対
して圧縮比を改善することができるという利点がある。
アヘッド・バッファのすべての内容を一致させることで
あり、それ以上のデータよりも前の出力をルックアヘッ
ド・バッファに入れることが許容される。連続RESETコ
マンド間でこのようにしてルックアヘッド・バッファを
フラッシュする際の利点は、辞書を作るために用いるよ
りも小さなデータ・セグメントを、選択的に復元するこ
とができる点である。これは、データ・レコードを、テ
ープに記憶された圧縮データに付加することが望まれる
場合に特に有益である。各データ・レコードの後でルッ
クアヘッド・バッファをフラッシュする場合には、現行
レコードの終わりよりも後で、それ以上のレコードを明
らかに付加することができるように、テープ上のいずれ
かの圧縮レコードの終わりを見つけることができる。
かる。ウインドウ・バッファは、過去のデータのセグメ
ントを定義する2つのポインタの形で実行するか、実際
に、他の適切な構成を用いることができる。
するデータ記憶の方法について説明する。
へのデータ供給には、記憶装置に送られる離散的パッケ
ージ(レコード)にするためのデータの物理的分離であ
るか、あるいは、特定の信号によってホストが表現する
高レベルな記録の概念的編成であるかはともかく、デー
タのユーザ分離を伴うのが普通である。このデータのユ
ーザ分離は、ホストにとって特に意味がある(この意味
は、テープ記憶装置には分らないのが普通であるが)。
従って、その存在が、入力データの物理的分離によって
記憶装置に伝えられたとしても、ユーザ分離を論理的セ
グメンテーションとみなすことが適切である。
憶装置に対して供給できるユーザ・データと特殊な分離
信号のシーケンスが示されている。この例では、データ
は、可変長レコードR1〜R9として供給されるが、この物
理的分離の論理的意味は、ホストには分るが、記憶装置
には分らない。物理的分離以外に、ユーザ分離情報は、
特殊な“ファイル・マーク”信号FMの形で供給される。
ファイル・マークFMは、データ・レコードの間に挿入し
て、記憶装置に与えられるが、やはり、この分離の意味
は、記憶装置には分らない。レコードに対する物理的分
離によって、第1レベルの分離が得られ、一方、ファイ
ル・マークによって、第1レベルの分離と階層をなす第
2レベルの分離が得られる。
ユーザ・データ及びユーザ分離情報を記憶するための可
能性のある物理的編成の1つが示されているが、この編
成は、既知のデータ記憶方法に基づくものである。第1
図(a)と第1図(b)との間におけるマッピングは、
簡単なものである−ファイル・マークFMは、一定周期の
バースト1として記録されるが、さもなければ、データ
・レコードとして扱われ、レコードR1〜R9とファイル・
マークFMは、信号の記録されていないブロック間ギャッ
プ2によって互いに隔てられる。ブロック間ギャップ2
は、記憶データを分離して、ユーザに分る論理単位のレ
コードにすることを可能ならしめ、ファイル・マークFM
(一定周期のバースト1)は、レコードをレコードの論
理的集合に分割する第2レベルの分離マークを形成す
る。
・データ及びユーザ分離情報を記憶するための、可能性
のある周知の第2の編成が示されている。この場合、ユ
ーザ・データは、それぞれ、グループの内容に関する情
報を含むインデックス4を備えた固定サイズのグループ
3に編成される。2つのグループ3間における境界は、
一定周期のバースト5によって表示することができる。
データをグループに分割するのは、純粋に、関係する記
憶装置の都合に合わせたものであり、ホストには明らか
なはずである。グループ内のユーザ・データは、いかな
る点においても物理的に分離しておらず、各レコード
は、先行レコードの終端からとぎれることなく続いてい
るだけであり、グループ内のデータを分離して、レコー
ドにし、さらに、ファイル・マークで区切られたレコー
ドの集合にすることに関した全ての情報が、グループの
インデックスに含まれている。本例の場合、レコードR1
〜R8とR9の第1の部分が、例示のグループ3に保持され
ている。
マークの数及びレコードの数によって変動するのが一般
であるが、グループの終端に対するインデックス内の所
定位置にインデックス長を記録することによって、イン
デックスと最後のバイトとの境界を識別することができ
る。例えば、パディングといった未定義内容を有するス
ペースが、データ領域の終端とインデックスの第1のバ
イトの間に存在する可能性がある。
が、見ての通り、インデックスは、2つの主データ構
造、すなわち、グループ情報テーブル6及びブロック・
アクセス・テーブル7から構成される。ブロック・アク
セス・テーブル7のエントリ数は、グループ情報テーブ
ル6におけるブロック・アクセス・テーブル・エントリ
(BAT ENTRY)カウント・フィールドに記憶されてい
る。グループ情報テーブル6には、ファイル・マーク・
カウントFMC(記録の終端(BOR)マークには、現在のグ
ループに納められた任意のものが含まれるので、ファイ
ル・マークの数)、及び、レコード・カウントRC(定義
される)といった、各種カウントが含まれている。
・エントリとして、グループの内容、及び、とりわけ、
グループに保持されたユーザ・データの論理的セグメン
テーションを示している(すなわち、グループ内におけ
る各レコード境界及び分離マークを表わしたエントリを
保持している)。アクセス・エントリは、グループ内容
の順番に並んでいる。
内のエントリは、それぞれ、エントリのタイプを示すFL
AGエントリと、その値を示すCOUNTエントリから構成さ
れる。FLAGフィールドは、8ビットであり、COUNTフィ
ールドは、24ビットである。FLAGフィールド内のビット
は、下記の意味を有している: SKP−セットされると、“スキップ・エントリ”を示
すSKIPビット。スキップ・エントリは、ユーザ・データ
によって取り上げられないグループ内のバイト数、すな
わち、(グループのサイズ)−(ユーザ・データ領域の
サイズ)を示す。
タの書込みを表わすDATA TRANSFERビット。
タ・レコードの書込みの終了を示すEND OF DATA TRA
NSFERビット。
したものであることを示すCOMPRESSIONビット。
ない。
ドではなく、分離マークに関係していることを示すSEPA
RATOR MARKビット。
を示すBEGINNING OF RECORDビット。
コードの終端位置を示すEND OF RECORDビット。
可能なエントリの7つのタイプが示されている。SEPARA
TOR MARKエントリは、ドライブによってレコードとし
て扱われるので、BOR及びEORビットがセットされる。次
の4つのエントリは、データ転送に関する情報を表わし
ているので、それぞれ、XFRビットがセットされる。STA
RT PART OF RECORDエントリは、レコードの始端だけ
が、グループに入っており、レコードの次の部分が、後
続のグループにはみ出している場合に関するものであ
る。そのグループにはレコードの始端または終端がない
ので、MIDDLE PART OF RECORDエントリにセットされ
る唯一のビットは、データ転送ビットである。END PAR
T OF RECORDエントリは、FLAGにEORビットがされてお
らず−代りに、EORビットは、総レコード・バイト・カ
ウントを示すTOTAL COUNTエントリにセットされる。グ
ループに関するブロック・アクセス・テーブルの最後の
エントリは、常に、ユーザ・データによって取り上げら
れないグループ内のスペース量を示すSKIPエントリであ
る、すなわち、SKIPエントリに関するCountフィールド
内のエントリは、グループ・サイズ(例えば、126632バ
イト)からデータ領域サイズを引いたものである。
ロック・アクセス・テーブルの一例が、第4図に示され
ている。レコードR1〜8に関するカウント・エントリ
は、該レコードに関する総バイト・カウントであるが、
レコードR9に関するカウント・エントリは、R9のグルー
プ3内にある部分のバイト・カウントである。ファイル
・マークFMに関するカウント・エントリは、フォーマッ
トに従って0または1になる。SKIPエントリに関するカ
ウント・エントリは、126632からテーブルに既に現われ
たバイト・カウントの和を引いたものである(TOTAL C
OUNTエントリは含まない)。
タを圧縮するために用いるアルゴリズムを示している、
ブロック・アクセス・テーブルにさらに可能なエントリ
がある。COUNTフィールドに入力されるアルゴリズム番
号は、DCアルゴリズム番号の基準に準拠する望ましい番
号である。グループとしての圧縮レコードのためのデー
タ転送およびトータル・カウントFLAGエントリには、CM
Pビット・セットがある。したがって、グループの中の
圧縮および非圧縮レコードは、CMPビットに基づいてド
ライブにより区別することができる。例えば、第1図
(c)において、偶数番号のレコードを圧縮レコードお
よび奇数番号のレコードを非圧縮レコードと仮定する
と、ブロック・アクセス・テーブルのエントリは第4A図
に示す通りである。第4A図では、UBCXはレコードXの非
圧縮バイトを示し、CBCXはレコードXの圧縮バイトを示
す。
記憶するための別の可能な構成を示す。再び、ユーザ・
データは、グループに、グループの内容についての情報
を含めるためのブロック・アクセス・テーブルを構成す
る圧縮データを含む場合でも、各グループに非圧縮され
たインデックスを含んだ、固定サイズのグループに構成
される。グループ間の境界は、一定周期のバーストによ
り示すことができる。
に情報を記憶することよりも、この実施例では、1つの
エンティティが1つ以上のレコードから成る“エンティ
ティ”によって、グループの内容についての情報を記憶
することが必要である。この実施例では、エンティティ
に、各々が同じ非圧縮長を有するn個の圧縮レコードを
含めることができる(nは1以上の数)。
完全なレコードCR1〜CR4と、8バイトのヘッダー部分H
から成る単一のエンティティENTITY1(またはE1)によ
って構成される。レコードCR1〜CR4は、同じ非圧縮長を
有しているが、データ圧縮後は、当然異なる長さにな
る。
ッダー部分Hには、下記の情報が含まれている: HL −ヘッダー長(4ビット)。(次の12ビット
は、予約されている)。
を表わした記憶数1バイト)。
イト・カウント(3バイト)。
の終端には、各レコードの圧縮バイト・カウントを納め
る後書き(trailer)部分を含むことが可能である。例
えば、後書き部分は、“レコードの終端”(EOR)のコ
ード・ワードのすぐ後に配置されることになる。この特
徴が存在する場合、ヘッダー部分において、ヘッダー長
HLの後に予約された12ビット中に、後書き部分の長さ、
例えば、3ビットを示すこともできる。
を有する実施例の一例を第5A図に示す。後書き部分は、
各圧縮レコードの終わりにおいて、非圧縮データストリ
ームに書き込まれる。したがって、第5A図のエンティテ
ィには。ヘッダー部Hおよび、各々に非圧縮後書き部T
を有し、非圧縮されたときに同じ長さの4つの圧縮レコ
ードCR1〜CR4を含む。
ト・カウント(CBC)および巡回冗長検査(CRC)を含ん
でいる。後書き部分は、この例では各レコードの終わり
の6ビットを占める。後書き部分の長さ(TL)は、ヘッ
ダー部Hに含まれ、ヘッダー部Hの最初のバイトの最後
の4ビットを占める。
トリはそれに応じて小さくなるが、ブロック・アクセス
・テーブルTのエントリの特性を変えることはない。
は、DCドライブまたは適するように構成された非DCドラ
イブで、リンク・リストにおけるポインタとして用い
て、各圧縮レコードが始まったり終わる位置を推定する
ことができる。
部分)の長さを含む利点は、それによって、この長さを
変えることが可能になり、同時に、所望の場合には、ド
ライブにヘッダーをスキップさせることができるという
ことである。
インデックスには、レコードの形ではなく、エンティテ
ィの形で、ただし、別様の場合には、第2図〜第4図に
関連して前述のように、情報が記録される。第5図に
は、エンティティE1に関するブロック・アクセス・テー
ブルのエントリも示されいる。
トリのタイプは、第2図〜第4図に関連して解説のもの
と同様である。その相違は、この場合、FLAGフィールド
にCMPビットをセットすることによって、エントリがレ
コードではなく、エンティティに関するバイト・カウン
トに関連したものであることが示されるという点であ
る。
けしか含めることができなくなるが、これは、望まし
い。従って、これは、FLAGフィールドにCMPビットをセ
ットすると、やはり、COUNTエントリが圧縮バイト・カ
ウントであることを表わすことになる。一方、もう1つ
の可能性として、エンティティに圧縮データと非圧縮デ
ータのいずれかを含み、例えば、エンティティ内のデー
タが非圧縮データであることを表わす、全てゼロといっ
た特定のアルゴリズム数を予約することが可能になる。
アクセス・テーブルTに情報を記憶することによって、
テープにレコードを書き込み、テープからレコードを読
み取ることに関連した記憶管理のオーバヘッドが減少す
る。第2図〜第4図に示す案を用いる場合には、グルー
プGに関して、ブロック・アクセス・テーブル中に5つ
のエントリが必要になるが、この場合には、2つのエン
トリしか必要ない。
込み時に必要なプロセッサの介入度が低下するので、同
じ非圧縮サイズの複数レコードを転送するのが容易にな
る。エンティティに含まれるレコードのシーケンスの書
込みに必要なプロセッサの介入は、ヘッダー部分の形成
と、ブロック・アクセス・テーブル内における適合する
エントリの作成だけということになる。対照的に、第1
図〜第4図に関連して説明した既知の案を用いると、各
レコード毎にプロセッサの介入が必要になる。圧縮され
たバイト・カウントは、圧縮プロセスの終了後まで未知
のため、これは、データ圧縮に関してとりわけ重要であ
る。従って、あるグループをデータで満たそうとする場
合、適合するレコード(及び対応するブロック・アクセ
ス・テーブルのエンティティ)数が、分らない。あるエ
ントリにブロック・アクセス・テーブルの要件を固定す
ることによって、どれだけのデータのレコードがグルー
プに納まるかに関係なく、グループ全体を1回のプロセ
ッサ介入で満たすことができるる。データの読取り時に
も、同様の利点が得られる。
のグループにまたがる場合もある、例えば、単一の比較
的長いレコードCR1を含むエンティティE1が、グループG
1を充填して、グループG2にまで入り込む。第6図に
は、グループG1,G2のブロック・アクセス・テーブル内
のエントリも示されている。グループ間の連係度を弱め
るため、新しいエンティティは、グループ内において、
できるだけ早く開始する、すなわち、前のレコードが圧
縮されていなければ、グループの開始部において、また
は、グループ内における最初の圧縮レコードの始端にお
いて、あるいは、前のレコードが圧縮されており、前の
グループからはみ出してきたものである場合には、最初
の新しい圧縮レコードの始端において開始する。従っ
て、圧縮レコードCR1の終端において、次のエンティテ
ィE2が開始する。エンティティE2には、非圧縮長の等し
い、4つの圧縮レコードCR2〜CR5が含まれている。
圧縮データを含む“裸のレコード”とを混合したものを
納めることができるように企図されている。この構成の
一例が、ブロック・アクセス・テーブル内の対応するエ
ントリも示す第7図に示されている。
ードCR1,CR2、及び、CR3から成るエンティティが含まれ
ている。グループGは、また、非圧縮レコードR4(ヘッ
ダー部分を備えていない)も含んでいる。グループGの
ブロック・アクセス・テーブルTには、4つのエントリ
が含まれている: 第1のエントリは、グループ内のエンティティの全バ
イト・カウント、 第2のエントリは、ファイル・マーク・エントリ(レ
コードR4の開始前に入力データ内におけるファイル・マ
ークの存在を示す)、 第3のエントリは、非圧縮レコードR4の全バイト・カ
ウント、 最後のエントリは、SKIPエントリ。
ルドの第4のビット)は、エンティティ・バイト・カウ
ント・エントリに対してセットされているが、裸のレコ
ード・バイト・カウント・エントリに対してはセットさ
れていないという点である。適切に構成された非DCドラ
イブは、CMPビットが関連するブロック・アクセス・テ
ーブル・エントリにセットされているか否かをチェック
することによって、圧縮データと非圧縮データが混在し
たテープ上において、前記データの識別を行なうことが
できる。
ない。例えば、ホストが、シーケンスをなす長さの等し
いレコードを送信中で、そのシーケンス内にファイル・
マークまたは他の分離マークが存在する場合、分離マー
クの前の第1組のレコードが、1つのエンティティに納
められ、分離マークが、テープに書き込まれ、ファイル
・マークに続くシーケンス内の1組のレコードが、第2
のエンティティに納められる。もちろん、2つのエンテ
ィティに関した対応するエントリと分離マークが、関連
グループのブロック・アクセス・テーブル内に作成され
る(この例には、1つのグループしか含まれていないも
のと仮定する)。
ルにおいて可能性のある有効なエントリのシーケンスが
示されている。第8図では、状態及びアクションが矩形
で指定され、ブロック・アクセス・テーブルのエントリ
が楕円で示されている。“スパン”レコード/エンティ
ティは、1つのグループから別のグループへ延びるもの
である。
許容される複数圧縮レコードの存在を考慮に入れて、各
グループのインデックスにおけるグループ情報テーブル
のいくつかのフィールドは、次のように定義される。
現在のグループまで書き込まれた全てのグループに関す
るグループ情報テーブルの現在グループ・エントリ(下
記参照)におけるレコード数の値の合計を指定する4バ
イト・フィールドである。
記の合計を指定する2バイトのフィールドである: i)現在グループのブロック・アクセス・テーブルにお
ける分離マーク・エントリの数。
ける非圧縮レコード・エントリの総カウント数。
における非圧縮レコード・エントリの全カウント数。
けるエンティティ・エントリの総カウントまたはエンテ
ィティ・エントリの全カウントが存在する、全てのエン
ティティ内における圧縮レコード数の合計。
ブロック・アクセス・テーブルにエンティティ・エント
リの開始部分が存在する、エンティティ内の圧縮レコー
ド数−1。
けるエンティティ・エントリの総カウント数。
ーク、アクセス・ポイント・または、非圧縮レコードの
始端が生じた最高番号の前グループの実行番号を指定す
る2バイト・フィールドである。それには、こうした前
グループが存在しない場合、全てのゼロ・ビットが含ま
れることになる。
プにおけるレコードの編成に関連し、一般に、グループ
は、復元目的のため、互いに独立した状態に保つことが
望ましい。すなわち、一般に、RESETコード・ワード
は、各グループの始端またはその近くに配置することが
望ましい。これに関する2つの主たる理由のうち1つ
は、グループ間の連係を弱めることによって、コントロ
ーラにおいて必要とされるバッファ・スペース量の減少
に役立つ、すなわち、任意の時点においてバッファ内に
2つ以上のグループを納めなければならない可能性を低
下させることになるためである。グループの始めにおけ
る辞書RESETに対する別の理由は、グループの中央でレ
コードを選択的に復元することが所望されるときに、グ
ループの外側に出て関連辞書を開始させる必要のないこ
とである。
ドの後にFLUSH条件を付けることには利点がある(FLUSH
コード・ワードは“レコードの終わり(EOR)”コード
・ワードとも呼ばれる)。この特徴により、レコードの
前にあるRESETポイントから復元する必要性に応じて、
レコードを個々に復元することができる。各レコードの
終わりにFLUSH条件を付けることは、次のレコードから
のデータに入れることなく、各レコードのデータを復元
することができることを意味している。この特徴は、新
しいレコードを現行レコードの中心のポイントに付加す
ることを所望する場合にも有益である。
ェクト”と呼ばれる。圧縮オブジェクトは、第9図に示
すように、2グループ以上のデータにまたがる可能性が
ある。レコードが1つのグループからもう1つのグルー
プにオーバラップする場合、RESETコード・ワードは、
すぐ隣の圧縮レコードの始端において、データ・ストリ
ーム内に配置される。
コードCR1,CR2,CR3,及び、第4の圧縮レコードCR4の最
初の部分から構成される。レコードCR4の最後の部分
は、次のグループG2に入り込んでいる。この例の場合、
レコードは、エンティティをなすようには編成されな
い。
セットされる(第9図のRで表示)。FLUSHコード・ワ
ード(Fで表示)が、各レコードの終端に位置するよう
にデータ・ストリームに挿入される。現在の辞書は、レ
コードCR4が終了するまで継続し、その時点で、辞書が
リセットされる。従って、現在の圧縮オブジェクトは、
レコードCR1〜CR4から構成される。したがって、増大し
た効率のデータ圧縮により、辞書を、2つ以上の等しく
ない非圧縮長のレコードにわたり拡張して用いることが
できるという利点がある。
が所望の場合、これは、レコードCR1の開始部、すなわ
ち、レコードCR3を含む圧縮オブジェクトの開始部で復
元を開始し、レコードCR3の終端まで、データの復元を
行なうことによって可能となる。レコードCR3の終端に
おいて“明確な中断”が得られるようにする、すなわ
ち、レコードCR3の終端において、FLUSHコード・ワード
のために、レコードCR4の始端に入り込まないようにす
ることが可能になる。
フォーマットによりアクセス可能なFLUSHコード・ワー
ド(フォーマットによりアクセス可能なRESETコード・
ワード)を与えることにより、データ圧縮中に辞書を作
成するために用いるデータ量よりも小さなデータ・セグ
メントの選択的復元をすることができる。各レコードの
圧縮バイト・カウントはブロック・アクセス・テーブル
に記憶されるので、レコードの終わりにあるFLUSHコー
ド・ワードにアクセス可能である。
する圧縮対象の始点、すなわちドライブで復元動作を開
始することのできるポイントは、幾つかの方法のうちの
1つにより示すことができる。アクセス・ポイントは、
各グループのブロック・アクセス・テーブルにおいて明
示的に記すことができる。この他に、アクセス・ポイン
トの存在は、ブロック・アクセス・テーブルの別のエン
トリにより示唆することができ、例えば、アルゴリズム
番号エントリの存在でさえ、該グループの最初の新レコ
ードのはじめにアクセス・ポイントを含むことがある。
また、アルゴリズム番号のビットは、新しい辞書が、該
グループの最初の新レコードのはじめにおいて開始する
ことを示すために確保しておくこともある。
ンティティが第5図〜第7図に関連して解説のグループ
をなすように編成される場合、比較的少量のデータを納
めたエンティティを共用する辞書の利点が得られるよう
にするため、圧縮オブジェクトが、第10図に示すよう
に、2つ以上のエンティティにまたがるようにすること
も可能である。
ループG1,G2,G3が示されている。グループG1には、完全
なレコードCR1と、次のレコードCR2の最初の部分が含ま
れている。レコードCR1は、エンティティE1における唯
一のレコードである。グループG2には、レコードCR2の
中間部分が含まれている。グループG3には、レコードCR
2の終端部分が含まれ、さらに、レコードCR3等も含まれ
ている。エンティティE2には、単一の比較的長いレコー
ドCR2が含まれている。
が(Rで表示)、レコードCR1は比較的短いので、圧縮
オブジェクトは、レコードCR1及びエンティティを超え
て延び、レコードCR2及びエンティティE2を含んでい
る。圧縮オブジェクトは、レコードCR2の終端で終了
し、新しい圧縮オブジェクトが、レコードCR3の始端で
開始する。
ィティ・ヘッダーの非ゼロ・アルゴリズム番号の存在、
およびその他に、予め定められた値、例えばゼロなどを
用いるためのアルゴリズム番号ヘッダー・エントリがあ
る。
バイト・カウントを書き込むことによりアクセス可能
な、各エンティティの終わりにあるFLUSHコード・ワー
ドの存在によって、1エンティティ毎に、レコードの選
択的復元をすることができる。例えば、第10図を参照す
るが、エンティティE2(この例ではたまたま1つのレコ
ードCR2)の内容は、レコードCR3のはじめからデータを
得ることなく復元することができる。しかし、テープ・
フォーマットでアクセス可能な最も近い前の辞書の始点
であるエンティティE1のはじめにあるRESETコード・ワ
ードから復元を開始しなければならない。第20A図およ
び第20B図に関して記述するエンティティ・ヘッダーの
情報を利用して1つのレコード毎にデータを復元するこ
ともできる。
・カウントを含む後書き部分(第5A図に関してすでに述
べた通り)を含み、各レコードの終わりにFLUSHコード
・ワードがある場合、この特徴は、1つのレコード毎に
復元を達成するときに用いることができる。
うに、テープ全体を書き込むことができる。これは、選
択的復元のためのレコードへのアクセスを改善するが、
8バイト・ヘッダー/レコードおよび4バイト・インデ
ックス・エントリ/レコードのオーバヘッドを伴う。ま
た、各エンティティのヘッダーを(少なくとも)スキッ
プするためにプロセッサの介在が要求されるので、多重
レコード転送も遅くなる。
アルゴリズムに従って、データ・ストリームにRESETコ
ード・ワードを挿入する。以上の説明は、テープ・フォ
ーマットによって強制され、認識され、利用されるRESE
Tコード・ワードに関するものである。
ティティおよび圧縮対象に、関連グループのインデック
スを含まない。
・フォーマットについて解説する。
ard(1988年3月、日本の東京にあるElectronic Indus
tries Association of Japanで決定)に基づくPCMオ
ーディオ・データの記憶に用いられるのと同様にフォー
マットでデータを記憶するヘリカル走査技法を利用す
る。ただし、本方法及び装置は、デジタル化オーディオ
情報よりもコンピュータ・データの記憶に適したもので
ある。
が、巻き角が90゜になるように、回転ヘッド・ドラム12
を所定の角度で通過するヘリカル走査テープ・デッキ11
の基本レイアウトが示されている。動作時、テープ10
は、ピンチ・ローラ16がテープを押しつけるキャプスタ
ン15の回転によって、矢印Tが示す方向に、繰出しリー
ル13から巻取りリール14に移動し、同時に、ヘッド・ド
ラムは、矢印Rで示す方向に回転する。ヘッド・ドラム
12には、角度的に180゜間隔をあけて配置された2つの
読取り/書込みヘッドHA、HBが収容される。既知の方法
では、これらのヘッドHA、HBは、第12図に示すように、
オーバラップする斜めトラック20、21を、それぞれ、テ
ープ10に書き込むように構成されている。ヘッドHAが書
き込むトラックは、正のアジマスを有しており、一方、
HBが書き込むトラックは、負のアジマスを有している。
各対をなす正と負のアジマス・トラック20、21が、フレ
ームを構成する。第12図には、本発明の装置によって書
き込まれるようになっている各トラックの基本フォーマ
ットが示されている。各トラックは、2つのマージン区
域22、2つのサブ区域23、2つのATF(自動トラック追
従)区域24、及び、主区域25から構成される。ATF区域2
4は、ヘッドHA、HBが、既知の方法で正確にトラックを
追従できるようにする信号を供給する。主区域25には、
いくつかの補助的な情報も記憶されるが、主として、該
装置に供給されるデータ(ユーザ・データ)の記憶に用
いられる。主区域及びサブ区域に記憶される補助的情報
の項目は、サブ・コードとして知られており、例えば、
ユーザ・データ、テープに対するそのマッピング、いく
つかの記録パラメータ(フォーマットのアイデンティテ
ィ、テープ・パラメータ他)、及び、テープの使用記録
の論理的編成に関するものである。
ブロック・サイズに関する詳細を含む、主区域25及びサ
ブ区域23、のより詳細な説明を行なうものとする。
ォーマットが示されている。主区域は、それぞれ、長さ
が36バイトの130のブロックから構成されている。最初
の2つのブロック26は、再生時におけるタイミングの同
期を容易にするタイミング・データ・パターンを納めた
プリアンブルである。残りの128のブロック27が、“主
データ区域”を構成する。主データ区域の各ブロック27
は、4バイトの“主ID"領域28と、32バイトの“主デー
タ”領域29から構成され、その構成は、第13図の下部に
示されている。
トW1、W2、及びパリティ・バイトから構成される。バイ
トW2は、全体としてブロックに関連した情報(タイプ及
びアドレス)の記憶に用いられ、一方、バイトW1は、サ
ブ・コードの記憶に用いられる。
データとユーザ・データ・パリティの両方または一方に
よって構成される32のバイトから構成される。ただし、
所望の場合には、主データ領域にサブ・コードを記憶す
ることも可能である。
・フォーマットが示されている。サブ領域は、それぞ
れ、長さが36バイトの11のブロックから構成される。最
初の2ブロック30は、プリアンブルであり、一方、最後
のブロック31は、ポストアンブルである。残りの8ブロ
ック32は、“サブ・データ区域”を構成する。各ブロッ
ク32は、4バイトの“サブID"領域33と、32バイトの
“サブ・データ”領域34から構成され、その構成は、第
14図の下部に示されている。
イトSW1、SW2、及び、パリティ・バイトから構成され
る。バイトSW2は、全体としてブロックに関する情報
(タイプ及びアドレス)及びサブ・データ領域34の構成
を記憶するのに用いられる。バイトSW1は、サブ・コー
ドの記憶に用いられる。
トの“パック"35にまとめられた32バイトから構成され
る。これらのパック35は、サブ・コードの記憶に用いら
れ、記憶されるサブ・コードのタイプは、各パックの最
初の半バイトを占めるパック・タイプ・ラベルによって
表示される。全偶数ブロックの第4のパック35は、ゼロ
にセットすることもできるし、さもなければ、第3のパ
ックと同じにする場合もあり、一方、全奇数ブロックの
第4のパックについては、そのブロック及び先行ブロッ
クの両方に関する最初の3つのパックについて、パリテ
ィ・チェック・データを記憶するために用いられる。
領域ブロック27の主データ領域29に記憶され、一方、サ
ブ・コードは、サブ・データ領域ブロック32のサブID及
びサブ・データ領域33、34と、主データ区域ブロック27
の主データ領域28、29の両方に記憶することができる。
ックが属しているテープ区域の識別に用いられる区域ID
サブ・コードと、レコード及び分離マークのカウントの
記憶に用いられるいくつかのサブ・コードである。区域
IDサブ・コードは、3つの位置に記憶される4ビット・
コードである。まず、該サブ・コードは、トラックのサ
ブ・データ区域における全ブロックのサブ・データ領域
34の第3と第4のパックに記憶される。次に、それは、
最初のブロックから始まる、トラックの全偶数サブ・デ
ータ区域ブロック32におけるサブID領域33のバイトSW1
に記憶される。このサブ・コードで識別されるテープ区
域については、第15図に関連して後述する。
用いられるサブ・コードが、テープのデータ区域内にお
ける各トラックのサブ・データ区域における全ブロック
のサブ・データ領域34の最初の2つのパック35に記憶さ
れる(第15図に関して後で参照のこと)。これらのカウ
ントは、前述のグループ情報テーブルにおけるカウント
と同じ累積カウントである。これらのカウントは、テー
プの高速探索に用いられ、このプロセスを容易にするた
め、グループを構成する1組のフレームにわたって一定
しており、グループをなすフレームのトラックに記憶さ
れるカウントは、グループの終端に適用可能なカウント
である。
沿ったフレームの一般的な編成について考察する。例え
ば、第15図を参照すると、テープは、3つの主たる区
域、すなわち、リード・イン区域36、データ区域37、及
び、データの終り(EOD)区域38に編成されることが分
る。テープの両端は、BOM(媒体の始端)及びEOM(媒体
の終端)と呼ばれる。ユーザ・データは、データ区域37
のフレームに記録される。リード・イン区域36には、記
録の始端BORマークと、システム情報が記憶されている
データ区域37の間の区域が含まれている。区域IDサブ・
コードは、システム区域、データ区域37、及び、EOD区
域38を互いに区別できるようにする。
ーム(例えば、22)からなるグループ39にまとめられ、
任意選択により、これらのグループ39は、所定の内容を
備えた1つ以上のアングル・フレームによって互いに分
離される。ユーザ・データ・レコードの編成に関連し
て、これらのグループは、第1図(c)に関連して解説
のグループ3に対応する。従って、こうしたグループ39
にユーザ・データを組み入れても、ユーザ・データの論
理セグメンテーションとは無関係であり、このセグメン
テーションに関する情報(レコード・マーク、分離マー
ク)は、グループ内のユーザ・データの端に位置するイ
ンデックス40に納められる(インデックスは、実際に
は、グループ内におけるユーザ・データ空間を占有す
る)。第15図には、グループの最後のフレームの最終部
分を占めるインデックスが示されているが、これが正し
いのは、データがテープに記録される前に通常実施され
るバイトのインターリーブ動作に先立つデータ構成に関
してのみであるが、本目的のため、インターリーブ動作
を監視することができる。
るトラックの主データ区域内で物理的に分散している。
前述のように、インデックスは、2つの主データ構造、
すなわち、グループ情報テーブル及びブロック・アクセ
ス・テーブルから構成される。グループ情報テーブル
は、グループの終端における定位置に記憶され、グルー
プの内容と関係なく同じサイズである。対照的に、ブロ
ック・アクセス・テーブルは、グループの内容に従って
サイズが変動し、グループ情報テーブルから逆方向に延
びて、グループのフレームにおけるユーザ・データ区域
の残りの部分内に入り込む。ブロック・アクセス・テー
ブル内において、エントリはグループ情報テーブルから
実際のユーザ・データすなわち‘パッド’との境界へと
逆方向に作成される。
データ区域ブロック32の内容も示されている。前述のよ
うに、最初の2つのパックには、分離マーク・カウント
が含まれ、第2のパック35には、レコード・カウントRC
(定義済み)も含まれ、第3のパック35には、区域ID及
び絶対フレーム・カウントAFCが含まれている。グルー
プ内の全てのトラックに関して、カウントFMC、及び、
サブ、データ区域ブロックに保持されたRCは、グループ
・インデックス40のグループ情報テーブル41に保持され
たものと同じである。
ザ・データを圧縮し、記録するための記憶装置のブロッ
ク図である。該装置には、第11図に関連して部分的に既
述したテープ・デッキ11が含まれている。テープ・デッ
キ以外に、該装置には、バス55を介して該装置とホスト
・コンピュータ(不図示)のインターフェイスを行なう
インターフェイス・ユニット50、主データ区域及びサブ
・データ区域ブロック27及び32に納められ、そこから取
り出されるユーザ・レコード・データ及び分離データに
処理を施すデータ圧縮プロセッサ(DCP)及びフレーム
・データ・プロセッサ52から構成されるグループ・プロ
セッサ51、トラックの書込み/読取りを行ない、2つの
ヘッドHA,HBを適宜スイッチするための信号を合成/分
解する信号編成器53、及び、インターフェイス・ユニッ
ト50を介してコンピュータから受信する指令に応答し、
該装置の動作を制御するためのシステム・コントローラ
が含まれている。該装置の主コンポーネント・ユニット
のそれぞれについて、以下でさらに説明を行なうものと
する。
縮エンジンの構造及び動作について述べることにする。
ゴリズムにしたがって、与えられたデータに圧縮および
復元を行うことのできるVLSIデータ圧縮チップ(DCチッ
プ)である。しかし、一度に、2つのプロセス(圧縮ま
たは復元)のうちの1つだけしかすることができない。
チップを流れるデータの速度を平滑にするために、DCチ
ップの入力および主力に、2つの先入れ先出し(FIFO)
メモリがある。一部のデータ・パターンでは、処理する
のに、他のパターンよりも多くのクロック・サイクル/
バイトを要するので、チップを流れるデータ速度は一定
ではない。瞬間データ速度は、現在の圧縮比および辞書
エントリの衝突回数により決まるが、そのいずれも、現
在のデータおよび最後の辞書RESET以来のデータの全シ
ーケンスにより異なる。サブシステムの第三セクション
は、現在の辞書エントリの局所記憶のために使用する外
部辞書メモリ(EDM)を形成するスタティックRAM列であ
る。該エントリには、文字、コード・ワード・ポイン
タ、および制御フラグを含む。
る。DCチップは、3つのブロック、すなわち、入力/出
力変換器(IOC)、圧縮及び復元変換器(CDC)、及び、
マイクロプロセッサ・インターフェイス(MPI)に分割
される。
の機能を提供する。該セクションには、6つの制御レジ
スタ、8つの状態レジスタ、2つの20ビット入力及び出
力バイト・カウンタ、及び、プログラマブル自動辞書リ
セット回路が含まれている。制御及び状態レジスタに対
するアクセスは、汎用8ビット・マイクロプロセッサ・
インターフェイス・バスを介して行なわれる。制御レジ
スタは、各種チップ機能を使用可能及び使用禁止にし、
該チップをさまざまな動作モード(圧縮、復元、排出、
または、モニタ)にする。状態レジスタは、チップ内の
20ビット・カウンタ及び各種状況フラグにアクセスす
る。
比の改善が可能であることが分った。これは、特に、圧
縮されるデータ・ストリームに同様のバイト・ストリン
グがごくわずかしか含まれていない場合にあてはまる。
頻繁な辞書のリセットには、2つの重要な利点がある。
第1に、辞書をリセットすると、コード・ワード長が9
ビットに戻る。第2に、このデータ・ストリームを反映
した新しい辞書エントリを作成することができる(一種
の適応)。DCチップのインターフェイス・セクションに
は、圧縮比を動的にモニタし、適合すると、辞書を自動
的にリセットする回路要素が含まれている。データに冗
長性がほとんどないか、あるいは、全くなければ、ほと
んどのデータ圧縮アルゴリズムは、その出力を拡張す
る。
ド・ワード(9ビット〜12ビットの範囲)のストリーム
との間における変換プロセスを管理する。8つの予約コ
ード・ワードのうちの2つが、IOCによって排他的に用
いられる。これらのコード・ワードの1つは、IOCに対
し、コード・ワードの長さを1つだけインクリメントし
なければならないことを命じるために用いられる。例え
ば、コード・ワード・サイズのプロセスは、CDCセクシ
ョンから切り離される−IOCは、独立したパイプ・ライ
ン・プロセスに従って処理を行なうので、CDCは、IOCに
よって減速することなく、圧縮または復元を行なうこと
が可能になる。
・ワードである第二予約コード・ワードは、次のコード
・ワードがデータの現在のパケットに関連する最後のコ
ード・ワードであること、すなわちFLUSHコード・ワー
ドが実際には圧縮レコードの最後から2番目であること
をIOCに警告する。この情報から、IOCは、そのパッキン
グ・ルーチンを終了し、バイト境界で終わることを知
る。この特徴により、このパケットをその構成パケット
に復元する機能を維持しながら、多数の入力パケットを
1つの隣接出力パケットに圧縮することができる。IOC
は、警告することなく、データを入力から出力に直接送
ったり、データの可能な圧縮比をモニタしながらデータ
を送ることもできる。これらの特徴は、別のレベルの拡
張保護として用いることができる。
換、及び、この逆を実施するエンジンである。このセク
ションは、最大データ・スループットに合わせて調整さ
れた制御、データ経路、及び、メモリ素子から構成され
る。CDCは、2つの12ビット・バスを介してIOCとインタ
ーフェイスする。圧縮時、IOCは、入力バイトをCDCセク
ションへ排出し、そこでコード・ワードに変換する。こ
れらのコード・ワードは、IOCに送られ、バイトをなす
ようにパックされて、チップから送り出される。逆に、
復元時に、IOCは、入力バイト・ストリームをコード・
ワードのストリームに変換し、これらのコード・ワード
をCDCセクションに送って、これらがバイト・ストリー
ムに変換され、IOCに送られるようにする。CDCセクショ
ンは、また、辞書エントリの記憶に用いられる外部RAM
に対して直接インターフェイスする。
の予約コード・ワードは、辞書がリセットされた場合に
はいつでも用いられる。このコード・ワードの発生によ
って、2つのアクションが生じる。すなわち、IOCは、
9ビットのコード・ワードをパックまたはアンパックす
る状態に戻り、CDCは、現在の辞書をリセットし、新し
い辞書の構築を開始する。辞書のリセットは、マイロプ
ロセッサの制御を介してMPIによって、あるいは、自動
リセット回路要素によって要求される。第2の予約コー
ド・ワードは、CDCが新しい辞書エントリを構築しよう
としていて、利用可能な外部RAMを使い果たすと、いつ
でも圧縮時に生成されることになる。この事象は、外部
RAMが十分であれば、めったに生じることはない。ただ
し、メモリの量が減少すると、CDCが遭遇する辞書衝突
が多くなりすぎて、新しい辞書エントリの構築ができな
くなる可能性が高くなる。外部メモリが小さくなり、不
可避的に辞書の衝突が増すと、データ・スループット及
び圧縮性能は、わずかに劣化する。CDCによる復元時に
は、復元プロセスが、圧縮プロセスと同じポイント辞書
エントリの構築を停止することを保証するため、この
“全辞書”コードも用いられる。
ータからの指令に応答して、テープをロード/アンロー
ドし、データ・レコードまたは分離マークを記憶し、デ
ータ圧縮を可能にし、選択された分離マークまたはレコ
ードを探索し、次のレコードを読み返すように構成され
ている。
指令を受けて、装置をコンピュータの間におけるデータ
・レコード及び分離マークの転送を管理するようになっ
ている。コンピュータから指令を受信すると、インター
フェイス・ユニット50は、システム・コントローラ54に
送り、該コントローラは、そのうち、インターフェイス
・ユニット50を介して、もとの指令に従うか否かを表わ
す返答をコンピュータに送り返す。該装置が、システム
・コントローラ54によって、コンピュータからの指令に
応答し、データの記憶または読取りを行なうようにセッ
ト・アップされると、インターフェイス・ユニット50
は、コンピュータとグループ・プロセッサ51の間におけ
るレコード及び分離マークの移送も制御する。
れば、ユーザ・データを圧縮し、データ・レコードの形
でそれに与えられるユーザ・データを、それぞれ、デー
タ・グループに対応するデータ・パッケージに編成する
ように構成されている。プロセッサ51は、また、各グル
ープ毎に、インデックスと、対応するサブ・コードを構
成するようになっている。読取り時には、グループ・プ
ロセッサは、復元前に、テープから読み取られたグルー
プからデータ・レコード及び分離マークを回復できるよ
うにする逆プロセスを実施する。
いる。グループ・プロセッサ51の中心をなすのは、2つ
以上(例えば2つ)のグループをなすデータ量を保持す
るようになっているバッファ56である。入力データ及び
出力データに対するバッファ空間の割当ては、バッファ
空間マネージャ57によって制御される。プロセッサ51
は、第1のインターフェイス・マネージャ58を介してイ
ンターフェイス50と、第2のインターフェイス・マネー
ジャ59を介してフレーム・データ・プロセッサ52と通信
する。グループ化プロセスの全体的な制御は、記録時に
グループ・インデックス及び関連コードを生成し(機能
ブロック61)、読取り時にサブ・コードを生成する(機
能ブロック62)グループ化マネージャ60によって実施さ
れる。グループ化マネージャ60は、システム・コントロ
ーラ54と協調信号を交換するようになっている。
を圧縮したり、あるいは、ホストによる読取りのために
データを復元したりする働きをする。制御信号の交換の
ため、DCプロセッサDCPと、インターフェイス・マネー
ジャ58、バッファ56、バッファ空間マネージャ57、及
び、グループ化マネージャ60との間で、相互接続が行な
われている。
ティティに編集して、エンティティに関するヘッダー部
分を生成するエンティティ・マネージャ(EM)から構成
される。グループ化マネージャ60及びバッファ空間マネ
ージャ57は、制御コンポーネントであり、テープに書き
込むデータは、それらを介して送られるのではなく、バ
ッファ56からインターフェイス・マネージャ59へ直接送
られる。
際、インターフェイス・ユニット50は、バッファ空間マ
ネージャ57に対し(インターフェイス・マネージャ58を
介して)、プロセッサ51がレコードを受け取る準備が整
ったか否かを問い合わせる。バッファ空間マネージャ57
は、最初、‘待機’応答を送るが、そのうち、ホストか
らバファ56へのデータ・レコードの転送を可能にする。
からの制御信号に従って)、DCプロセッサは、前述のよ
うに、データ圧縮アルゴリズムに基づき、レコード内の
データの一部の代りにコード・ワードを用いる。
なRESETおよびFLUSHコード・ワードの書込みは、簡単な
方法、例えば各レコード後のリセット、などにより指定
することができるならば、DCプロセッサDCPにプログラ
ムすることができる。この他に、あるいは同様に、フォ
ーマットにしたがうRESETおよびFLUSHコード・ワードの
書込みは、システム・コントローラ54により制御するこ
とができ、例えば、各レコードの終わりに自動的に書き
込まれるFLUSHコード・ワード、およびシステム・コン
トローラ54からの信号にしたがって書込まれるRESETコ
ード・ワードがある。
り、ここではDCプロセッサDCPがインタフェース・マネ
ージャ58とバッファ56の間に置かれている。圧縮中に、
データは、インタフェース・マネージャ58からDCプロセ
ッサを通りバッファ56に流れる。復元中に、データは、
バッファ56からDCプロセッサを通りインタフェース・マ
ネージャ56に流れる。インタフェース・マネージャ56と
DCプロセッサDCPとの間に著しいバッファリングはな
い。
合よく得られる。Xバイトが入力し、Yバイトが出力す
る。
る。Yバイトが入力し、Xバイトが出力する。これらの
起こることができたり起こらなければならない境界は、
圧縮中のそれと同じである。圧縮中に特別FLUSHコード
・ワードを出力し、復元中の検出されたときにいつでも
フラッシュすることにより、圧縮/復元システムが幾つ
かの利点が得られる。
タフェース・マネージャからバッファへのNバイトの転
送をセットアップおよび完了することが伴う。DCシステ
ムを用いると、これは2回の転送になり、DCプロセッサ
へのNバイトの転送、およびそこからバッファへのMバ
イトの転送がある。転送が完了したならば、転送に対応
するすべてのデータをバッファの中に入れることが望ま
しい。したがって、DCシステムをフラッシュしなければ
ならない。
ェイス・マネージャへのNバイトの転送をセットアップ
することが必要である。DCシステムを用いるときには、
バッファ56からDCプロセッサへのMバイトの転送、およ
びそこからインターフェース・マネージャ58への転送に
なる。転送が完了したならば、再び、DCプロセッサをフ
ラッシュすることが望ましい。
ければ道理にかなうが、ホストは、1度に1つずつレコ
ードを転送する。
る。これまでの記述では辞書のリセットについて何も示
唆していないことを書き留めておく。FLUSH機能は、RES
ET機能と全く分離されている。これらを分離することに
より、辞書に影響を及ぼしたり、圧縮比および処理量に
及ぼされるそれ以後の影響もなく、転送間の境界をデー
タに導入することができる。DCシステムは辞書を完全に
作成する前にフラッシュすることができるので、短レコ
ード・システムでさえ完全な辞書を用いることができ
る。非常に優れた圧縮比をもたらす“優れた”辞書が作
成されたならば、それ以上のレコード中に再び作成する
必要はない。RESETとFLUSHとを結合すると、これらの利
点は失われる。
57に接続されており、バッファ空間マネージャ57に対し
て、グループのインデックス区域内に入り込む前に、グ
ループがどれだけのデータを受け入れることができるか
を知らせる。バッファ空間マネージャ57は、最大数のバ
イトを現在グループに転送したか、あるいは、ホストか
ら最後のバイトを受け取った場合には、必ず、グループ
化マネージャに通告する。
ができない場合、グループの境界に“またがる”と言
う。転送の最初の部分は、1つのグループに納められ、
残りの部分は、後続のグループに納められる。バッファ
空間マネージャ57は、ホストが構築される現在グループ
に納まる量を超えるデータを供給しようとする場合、グ
ループ化マネージャ60に知らせる。またがらなければ、
グループ・インデックスが更新され、グループ化マネー
ジャ60は、別の書込み指令を待つ。またがることになれ
ば、現在グループのインデックスが更新され、そのグル
ープは、テープに対する書込みに利用できる。次のグル
ープが開始され、ホストからのデータは、その新しいグ
ループの始端に直接入り込む。
内における、レコード・データの最終的な位置決めに対
応するバッファ位置へ転送される。レコード・サイズの
情報は、グループ化マネージャ60に送られる。ホストが
分離表示を送ると、これも、グループ化マネージャ60に
対して経路指定される。グループ化マネージャは、分離
マーク及びBORからのレコード・カウントを記憶してお
き、グループのインデックス及び分離カウンタ及びレコ
ード・カウントのサブ・コードの構成時にこの情報を利
用する。インデックスは、グループの終端におけるその
位置に適合するバッファ内の位置に構成される。
ード・データを含む、現在エンティティに関するエンテ
ィティ・ヘッダー部分を生成する。ヘッダー部分は、圧
縮されない。エンティティ・マネージャEMは、エンティ
ティ情報を管理する規則を確実に遵守する責任がある。
該規則は、次の通りである。
変化すると、 iii)圧縮アルゴリズムが、変化すると、 新しいエンティティを開始する。
必要から、新しいエンティティの開始が必要になり、適
合する信号が、グループ化マネージャ60からデータ圧縮
プロセッサDCPに送られる。) b): i)非圧縮レコードの記憶が必要な場合、 ii)分離マークの記憶が必要な場合、 エンティティを終了する。
される。
るまで、データ圧縮及びエンティティ構築のプロセスが
停止する。
のまま、DCプロセッサDCPを通過し、エンティティ・マ
ネージャEMは、非活動状態になる。復元レコードは、エ
ンティティの一部を形成することなく、直接グループを
なすように編成され、レコードに関する情報は、グルー
プ・インデックスに納められる。
む)がアセンブルされると、フレーム・データ・プロセ
ッサ52に転送されて、22の順次フレームの主データ区域
及びサブ・データ区域を構成するブロックに編成され
る。フレームIDに関する情報は、データ・ストリーム内
にある。3フレーム分のデータ量の記憶が可能なフレー
ム・データ・プロセッサ52において、グループ・プロセ
ッサと小形バッファの間には、連続したデータ・ストリ
ームがある。
プ間に、1つ以上のアンブル・フレームを挿入するのが
望ましい場合ある。これは、フレーム・データ・プロセ
ッサ52が、グループ・プロセッサ51からの命令によっ
て、あるいは、プロセッサ52がグループ構造を承知して
いる場合には、自動的に、グループの終端にこうしたア
ンブル・フレームを生成するように構成することによっ
て、可能になる。
ることができるようなサイズにすることにより、プロセ
ッサ51の全体の動作では、1つのグループを読み込み、
1つのグループを処理および出力して、できる限り容易
に保つことができる。書込み中には、ホストからのデー
タを用いて1つのグループを作成し、別のグループはテ
ープに書き込まれる。
ロセッサ51は、フレーム・データ・プロセッサ52からフ
レーム毎にユーザ・データとサブ・コードを受け取るよ
うになっており、該データは、バッファ56に書き込まれ
て、グループを形成する。次に、グループ・プロセッサ
51はグループ・インデックスにアクセスして、グループ
内におけるユーザ・データの論理的編成(レコード/エ
ンティティ構造、分離マーク)に関する情報、及び、デ
ータが圧縮されているか否かの表示を回復することがで
きる。
れているが、圧縮形式でホストに読み返されて、ソフト
ウェア復元が施されると、グループ・プロセッサ51は、
インターフェイス50を介してホストに要求されたレコー
ドまたは分離マークを送ることが可能になるが、この場
合、データは、不変のままDCプロセッサDCPを通過す
る。圧縮データのエンティティ・ヘッダー部分は、非DC
ドライブによってホストに送り返され、ホストによって
利用される。
べたようにしてDCプロセッサDCPにより復元してから、
ホストに送られる。
されるが、DCプロセッサDCPに送られない。ヘッダ部の
アルゴリズム番号は、DCプロセッサDCPで用いるアルゴ
リズムと一致しているかどうかがチェックされる。さら
に、エンティティの圧縮レコード数はヘッダ部から得ら
れ、エンティティ・データをDCプロセッサDCPに送ると
きに行われるレコードのカウントダウンをすることがで
きる。
データに戻すのを容易化するため、フレームがテープに
書き込まれる時、各フレーム毎に、グループ内シーケン
ス番号のタグを付けることができる。このグループ内番
号は、例えば、フレームの各トラックの主データ区域に
おける第1ブロックの主データ領域のヘッダーに含まれ
るサブ・コードとして示すことができる。このサブ・コ
ードは、読取りの際、グループ・プロセッサ51に送られ
ると、関連フレームがバッファ56内のどの位置に納めら
れるか判定するために用いられる。
ータ区域(MDA)プロセッサ65、サブ・データ区域(SD
A)プロセッサ66、及び、サブ・コード・ユニット67か
ら構成される(実際、これらの機能素子は、適合するプ
ロセスを実行する単一のマイクロプロセッサで構成する
ことができる)。
応じてプロセッサ65及び66にサブ・コードを与え、読取
り時には、プロセッサ65、66からサブ・コードを受け取
って、分配するようになっている。情報の内容に応じ
て、サブ・コードは、グループ・プロセッサ51またはシ
ステム・コントローラ54が生成/要求することができ、
分離マーク・カウント・サブ・コードは、例えば、グル
ープ・プロセッサ51によって判定/利用され、一方、区
域IDサブ・コードは、コントローラ54によって判定/利
用される。いくつかの書込みパラメータのような非変動
サブ・コードの場合、ユニット67にサブ・コードを永久
記憶することもできる。さらに、サブ・コード・ユニッ
ト67自体によって、便宜上、フレーム従属サブ・コード
を生成することも可能である。
1フレーム分のユーザ・データを1度に処理するように
なっている。例えば、プロセッサ65は、記録時、ユニッ
ト67からのサブ・コードと共にグループ・プロセッサ51
から1フレーム分のユーザ・データを受け取る。ユーザ
・データを受け取ると、プロセッサ65は、データをイン
ターリーブし、結果得られるデータ及びサブ・コードを
アセンブルして、フレームを構成する2つのトラックに
関する主データ区域ブロックを出力する前に、エラー補
正コードの計算を行なう。実際、ユーザ・データとサブ
・コードのアセンブル前に、データのスクランブリング
(ランダム化)を実施することで、トラック信号のデー
タ内容に関係なく、一貫したRFエンベロープを確保する
ことができる。
2組の主データ区域ブロックに対して逆のプロセスを実
施する。スクランブリングを施していない、エラー補正
を加えた、デインターリーブされたユーザ・データが、
グループ・プロセッサ51に送られ、サブ・コードが、ユ
ニット67によって切り離され、必要に応じて、プロセッ
サ51とシステム・コントローラ54のいずれかに分配され
る。
区域に関連したサブ・コードに従って動作し、これらの
サブ・コードをサブ・データ区域ブロックに合成した
り、サブ・データ区域ブロックを分解して、サブ・コー
ドにしたりするという点を除けば、プロセッサ65と同様
である。
路80からのATF信号と共に、フレーム・データ・プロセ
ッサ52によって与えられる主データ区域ブロック及びサ
ブ・データ・区域ブロックをアセンブルし、各順次トラ
ックに記録される信号を形成するようになっているフォ
ーマッタ/セパレータ・ユニット70から構成される。ユ
ニット70が必要とする場合には、トラック信号に、必要
なプリアセンブル及びポストアンブル・パターンも挿入
される。ヘッド・ドラムの回転に応答してパルス発生器
81の出力が供給されるタイミング発生器71によって、ユ
ニット70の動作とヘッドHA、HBの回転を協調させるタイ
ミング信号が加えられる。ユニットから回線72に出力さ
れるトラック信号は、ヘッド・スイッチ73、それぞれの
ヘッド駆動増幅器74、及び、記録位置にセットされた記
録/再生スイッチ75を介して、ヘッドHA及びヘッドHBに
対し交互に送られる。ヘッド・スイッチ73は、適正に調
時されたタイミング発生器71からの信号によって動作す
る。
互に発生するトラック信号は、記録/再生スイッチ75
(この場合、再生位置にセットされている)、それぞれ
の読取り増幅器76、第2のヘッド・スイッチ77、及び、
クロック回復回路78を介して、フォーマッタ/セパレー
タ・ユニット70に送られる。ヘッド・スイッチ77の動作
は、ヘッド・スイッチ73と同じやり方で制御される。こ
の場合、ユニット70は、ATF信号を切り離して、回路80
に送り、主データ区域ブロック及びサブ・データ区域ブ
ロックをフレーム・データ・プロセッサ52に送る働きを
する。プロセッサ52には、クロック回復回路78からクロ
ック信号も送られる。
ける。
プスタン15の回転を制御するためのキャプスタン・サー
ボ82、それぞれ、リール14、15の回転を制御する第1と
第2のリール・サーボ83、84、及び、ヘッド・ドラム12
の回転を制御するドラム・サーボ85から構成される。各
サーボには、両方とも、サーボによって制御される素子
に結合された、モータM及び回転検出器Dが含まれてい
る。リール・サーボ83、84には、媒体の始端(BOM)及
び媒体の終端(EOM)の検知手段86が連係しているが、
これらの手段86は、例えば、どちらであれ、テープの巻
取りのために駆動されているリール(テープの移動方向
によって決まる)のモータ電流は、BOM/EOMにおけるモ
ータの停動時には大幅に増加するので、モータ電流の検
知に基づくことが可能である。
ープに対する記録のためのATF信号を発生する自動トラ
ック追従回路80が設けられている。読取り時、ATF回路8
0は、テープから読み取られたATFトラック信号に応答し
て、キャプスタン・サーボ82に調整信号を加え、ヘッド
HA、HBとテープに記録されたトラックとの適正なアライ
メントがとれるようにする。テープ・デッキ11には、ヘ
ッドHA、HBの回転に同期したタイミング・パルスを発生
するパルス発生器81も含まれている。
M検知手段86に接続されたデッキ・コントローラ87の制
御を受ける。コントローラ87は、サーボに必要な距離だ
けテープを進めさせる働きをする(公称速度または高速
度で)。この制御は、設定されたテープ速度に適した時
間間隔だけサーボに付勢するか、あるいは、サーボに連
係した回転検出器Dのうち1つ以上の検出器からテープ
変位情報をフィードバックすることによって行なわれ
る。
ントローラ54が送り出す制御信号によって管理される。
デッキ・コントローラ87は、BOM及びEOMに達したことを
表わす信号をコントローラ54に対して出力するようにな
っている。
置の間における高レベルの対話を管理し、コンピュータ
が要求するロード/書込み/圧縮/復元/探索/読取り
/アンロードといった基本操作の実施時に、記憶装置の
他のユニットの機能に調整を施すという両方の働きをす
る。この後者に関して、コントローラ54は、デッキ11の
動作と記憶装置のデータ処理部分との調整を行なう働き
をする。
ローラは、デッキ・コントローラ87に対し、通常読取り
/書込み速度(Normal)でテープを移動させる要求、あ
るいは、高速度でテープを順方向または逆方向に移動さ
せる要求、すなわち高速送り(F.FWD)または高速巻戻
し(F.RWD)の要求を行なうことができる。デッキ・コ
ントローラ87は、BOMまたはEOMに到達すると、システム
・コントローラ54に報告するようになっている。
について、第20A図及び第20B図に関連して解説する。
ントローラ54は、復元すべきレコードのレコード・カウ
ントに等しい値を備えた探索キーを生成する。現在のレ
コード・カウントは、グループ・プロセッサ51のグルー
プ化マネージャ60に保持されている。次に、テープが高
速度で(通常の何倍も速い)進められ(あるいは、適切
であれば、巻き戻され)、一方、ヘッド・ドラムは、テ
ープに対してヘッドHA、HBの相対速度を一定値に維持す
る速度で回転するが、このモードの場合、300毎に約1
つのトラックのサブ区域を読み取ることが可能である
(ステップ91a及び91b)。トラックのサブ区域の高速読
取りは、既知の技法であり、従って、詳細な説明は行な
わない。
は、高速逆方向探索が示されている。
る各サブ区域毎に、各サブ・データ区域ブロックの第2
のパックに保持されたレコード・カウントと探索キー
が、コントローラ54によって比較される(ステップ92
a)。レコード・カウントが、探索キー未満の場合、探
索は続行されるが、レコード・カウントが、探索キー以
上の場合、高速順方向探索が終了し、テープは、高速順
方向読取り間の距離にほぼ等しい距離だけ後退する(ス
テップ93)。この結果、現在、ヘッド・ドラムと向かい
合ったトラックのサブ区域に保持されたレコード・カウ
ントが、必ず探索キー未満になる。
る各サブ区域毎に、各サブ・データ・ブロックの第2の
パックに保持されたレコード・カウントと探索キーが、
コントローラ54によって比較される(ステップ92b)。
レコード・カウントが探索キーを越える場合、探索は続
行されるが、レコード・カウントが探索キー以下の場
合、高速巻戻しが停止される。
はその通常の読取り速度で前進され(ステップ94)、各
連続するグループは次にテープから読み取られ、グルー
プ・プロセッサ51のバッファ56に一時的に記憶される。
各グループのインデックスに保持されるレコード・カウ
ントは、カウントが最初にサーチ・キーと等しくなるか
超えるまで、サーチ・キー(ステップ95)と比較され
る。この時、レコード・カウントをちょうど試験したば
かりのバッファ56のグループに、探索していたレコード
が存在するときに、読み取りが停止する。1つのレコー
ド毎にブロック・アクセス・テーブルにエントリをする
場合には、このグループのインデックスのブロック・ア
クセス・テーブルが検査されて、重要なレコードを識別
し(ステップ96)、最初のデータ・レコード・バイトの
バッファの中のアドレスが計算される(ステップ97)。
その後で、グループ・プロセッサ51は、検索していたレ
コードを見つけたこと、および次のデータ・レコードを
復元および読み込むことができることを、システム・コ
ントローラ54に通知する。すなわち、これはコントロー
ラからさらにホストに通知される(ステップ98)。探索
動作はこれで終了する。
は、明らかである。
と、その検出を行なうため、サブ区域の読取り時には、
必ず、システム・コントローラ54によって区域IDサブ・
コードのチェックが行なわれる。このサブ・コードによ
って、テープのデータ区域を越えて探索が行なわれたこ
とが示されると、テープ方向が逆転し、一般に、低速度
で探索が再開される。分りやすくするため、第20A図及
び第20B図からこの区域IDチェックは省略されている。
プは、レコード内におけるデータ圧縮にどのアルゴリズ
ムが用いられたかを示す、アルゴリズム番号をチェック
することである。これは、アルゴリズム番号が関連グル
ープのブロック・アクセス・テーブルに記憶されている
場合、該テーブルを調べることによって行なわれる。
(または、2つ以上のDCチップがある場合には、その一
方)が用いるアルゴリズムに対応する場合、次のステッ
プは、関係するレコードを含む圧縮オブジェクトの始端
を突きとめることである。これは、特定の記録フォーマ
ットに従って、さまざまな方法で実施することができ
る。
つかると、復元が開始され、そのレコードの終端にある
FLUSH(または、EOR)コード・ワードに達するまで、続
行される。次に、復元レコードをホストに送ることが可
能になる。レコードの終端におけるFLUSHコード・ワー
ドの存在は、次のレコードの始端からデータの求めなく
ても、レコードの復元が確実に行なえることを表わして
いる。
と、関係するグループは、第20A図及び第20B図に関連し
て既述のように位置が突きとめられる。
中の#RECSエントリを用いることによって、関連するエ
ンティティの位置を突きとめることができる。復元は、
関連エンティティ内のアルゴリズムIDエントリをチェッ
クすることにはよって見つけることが可能なすぐ前のア
クセス・ポイントから開始され、そのエンティティ内の
圧縮データが、既に開始された辞書から続いていること
が示されると、アクセス・ポイントが見つかるまで、ス
キップして、前のエンティティ・ヘッダー等に戻る。関
連するレコードから得られる復元データだけしか保持さ
れない。従って、エンティティ・ヘッダーにデータが存
在することには、関連レコード及びアクセス・ポイント
が容易に見つかり、データ管理のプロセスを復元プロセ
スから切り離すことが可能になるという利点がある。レ
コードの圧縮バイト・カウントを含むエンティティにお
いて、各圧縮レコードの後に後書きがあれば、これらの
CBCは、復元時におけるFLUSHコード・ワードのカウント
ではなく(あるいは、だけではなく)、復元データの保
持の開始時点を確認するのに有効に役立てることができ
る。
在は、選択されたレコード・すぐ前のアクセス・ポイン
トを見つけ、復元データを保持すべきポイントを確認す
るのに有効に利用することができる。
めに、新しいレコードを付加するためにポイントを見つ
けるときに同様に用いることができる。
とが理解される。説明した圧縮アルゴリズムは例として
述べたものであり、本発明は、ユーザ・データから得ら
れる辞書を伴う異なるアルゴリズムにしたがって圧縮さ
れるデータの記憶にも適用することができる。
Claims (10)
- 【請求項1】以下の(a)から(d)のステップを設け
たユーザ・データ圧縮方法: (a)複数のレコード(CRn)に組織されたユーザ・デ
ータのストリームを受信する; (b)受け取ったユーザ・データからコンパイルされる
辞書を含む第1の記憶手段(W)およびユーザ・データ
を受け取り記憶する第2の記憶手段を使用し、前記第2
の記憶手段に蓄積されたユーザ・データが前記辞書の何
れのエントリとも一致しなくなるまで、選択されたユー
ザ・データをコード・ワードに変換することをともなう
圧縮アルゴリズムにしたがってユーザ・データを圧縮す
る:このように圧縮されたユーザ・データは圧縮データ
を形成し、前記アルゴリズムは、第1の記憶手段をクリ
アして残りのユーザ・データから新たな辞書の生成を開
始するリセット・ステップ(R)を含む; (c)前記蓄積されたユーザ・データが前記辞書の何れ
かのエントリに一致するか否かに関わりなく、前記第2
の記憶手段に記憶された蓄積ユーザ・データに一致する
1つまたは複数のコード・ワードを出力して第2の記憶
手段をクリアするフラッシュ動作(F)を行う; (d)前記辞書の生成の継起する2つの開始時点の間に
前記フラッシュ動作(F)を複数回実行する。 - 【請求項2】各レコード(CRn)の最後に前記フラッシ
ュ動作(F)を実行することを特徴とする請求項1記載
の方法。 - 【請求項3】前記フラッシュ動作(F)の発生する位置
を示す情報を出力し、それによって前記圧縮データ中で
のこれらの位置を識別できるようにすることを特徴とす
る請求項1または2記載の方法。 - 【請求項4】前記新たな辞書(R)の生成の開始位置を
示す情報を出力し、それによって前記圧縮データ中での
これらの位置を識別できるようにすることを特徴とする
請求項1から3のの何れかに記載の方法。 - 【請求項5】以下のステップ(e)及び(f)を設けた
ことを特徴とする請求項1から4の何れかに記載の方
法: (e)前記ユーザ・データのレコード構造に無関係に前
記圧縮データをグループ(Gn)単位で出力する; (f)前記グループ(Gn)の各々の先頭あるいはその近
傍で前記新たな辞書(R)の生成を開始する。 - 【請求項6】前記グループ(Gn)の各々の内の第1の新
たなレコード(CRn)の先頭で前記新たな辞書(R)の
生成を開始することを特徴とする請求項5記載の方法。 - 【請求項7】以下のステップ(g)及び(h)を設けた
ことを特徴とする請求項5記載の方法: (g)ユーザ・データレコードをそれぞれが1つまたは
複数のレコード(CRn)を含むエンティティ(En)に組
織する; (h) 各エンティティ(En)の最後に前記フラッシュ
動作(F)を実行する。 - 【請求項8】以下のステップ(i)及び(j)を設けた
ことを特徴とする請求項5記載の方法: (i)ユーザ・データ・レコードを夫々が1つまたは複
数のレコード(CRn)を含むエンティティ(En)に組織
する; (j)各グループ(Gn)の第1の新たなエンティティ
(En)の先頭で前記新たな辞書(R)の生成を開始す
る。 - 【請求項9】以下の(a)から(d)を設けたことを特
徴とするユーザ・データ圧縮装置: (a)複数のレコード(CRn)に組織されたユーザ・デ
ータのストリームを受信するインターフェース手段; (b)選択されたユーザ・データをコード・ワードに変
換することをともなう圧縮アルゴリズムに従ってユーザ
・データを圧縮する圧縮手段:前記圧縮手段は、受け取
ったユーザ・データからコンパイルされる辞書を含む第
1の記憶手段(W)、そこに蓄積されたユーザ・データ
が前記辞書の何れのエントリとも一致しなくなるまでユ
ーザ・データを受け取り記憶する第2の記憶手段
(L)、及び前記第1の記憶手段をクリアし、残りのユ
ーザ・データから新たな辞書の生成を開始する手段
(R)を含む; (c)前記圧縮手段は、前記蓄積されたユーザ・データ
が前記辞書の何れかのエントリに一致するか否かにかか
わりなく、第2の記憶手段に記憶された蓄積ユーザ・デ
ータに一致する1つまたは複数のコード・ワードを出力
し、第2の記憶手段をクリアするフラッシュ動作(F)
を実行するフラッシュ手段を含む; (d)前記フラッシュ手段は連続する辞書の開始(R)
の間で前記フラッシュ動作(F)を複数回実行するよう
に構成されている。 - 【請求項10】前記フラッシュ手段は、各レコード(CR
n)の最後に前記フラッシュ動作(F)を実行すること
を特徴とする請求項9記載の装置。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB9001315.2 | 1990-01-19 | ||
| GB909001315A GB9001315D0 (en) | 1990-01-19 | 1990-01-19 | Compressed data access |
| GB909002882A GB9002882D0 (en) | 1990-01-19 | 1990-02-08 | Compressed data access |
| GB9002882.0 | 1990-02-08 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04505979A JPH04505979A (ja) | 1992-10-15 |
| JP3224813B2 true JP3224813B2 (ja) | 2001-11-05 |
Family
ID=26296532
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP50345391A Expired - Lifetime JP3224813B2 (ja) | 1990-01-19 | 1991-01-18 | 圧縮データ・アクセス |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5298895A (ja) |
| EP (1) | EP0464191B1 (ja) |
| JP (1) | JP3224813B2 (ja) |
| DE (1) | DE69118250T2 (ja) |
| WO (1) | WO1991010999A1 (ja) |
Families Citing this family (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0459041B1 (en) * | 1990-05-29 | 1997-07-09 | Hewlett-Packard Limited | Tape storage |
| 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 |
| US5590317A (en) * | 1992-05-27 | 1996-12-31 | Hitachi, Ltd. | Document information compression and retrieval system and document information registration and retrieval method |
| US5530645A (en) * | 1993-06-30 | 1996-06-25 | Apple Computer, Inc. | Composite dictionary compression system |
| US6076084A (en) * | 1994-01-03 | 2000-06-13 | Norton-Lambert Corp. | File transfer method and apparatus utilizing delimiters |
| US5488365A (en) * | 1994-03-01 | 1996-01-30 | Hewlett-Packard Company | Method and apparatus for compressing and decompressing short blocks of data |
| US5502439A (en) * | 1994-05-16 | 1996-03-26 | The United States Of America As Represented By The United States Department Of Energy | Method for compression of binary data |
| US5592512A (en) * | 1994-06-24 | 1997-01-07 | Norand Corporation | Adaptive display refresh and data compression in a radio frequency environment |
| US5915129A (en) | 1994-06-27 | 1999-06-22 | Microsoft Corporation | Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system |
| US5561421A (en) * | 1994-07-28 | 1996-10-01 | International Business Machines Corporation | Access method data compression with system-built generic dictionaries |
| WO1998039723A2 (en) * | 1994-12-20 | 1998-09-11 | Rodney John Smith | Improvements relating to data compression |
| 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 |
| US5619199A (en) * | 1995-05-04 | 1997-04-08 | International Business Machines Corporation | Order preserving run length encoding with compression codeword extraction for comparisons |
| GB2310055A (en) * | 1996-02-08 | 1997-08-13 | Ibm | Compression of structured data |
| US6094453A (en) * | 1996-10-11 | 2000-07-25 | Digital Accelerator Corporation | Digital data compression with quad-tree coding of header file |
| US6996096B2 (en) * | 1997-02-14 | 2006-02-07 | Canon Kabushiki Kaisha | Communication apparatus and a method of controlling a communication apparatus |
| US6414610B1 (en) | 1997-02-24 | 2002-07-02 | Rodney J Smith | Data compression |
| US7898442B1 (en) * | 1997-05-30 | 2011-03-01 | International Business Machines Corporation | On-line data compression analysis and regulation |
| US6067381A (en) * | 1997-06-13 | 2000-05-23 | International Business Machines Corporation | Method of reinitializing dictionaries in a data transmission system using data compression |
| EP0913823B1 (en) * | 1997-10-31 | 2013-05-22 | Hewlett-Packard Development Company, L.P. | Data encoding method and apparatus |
| EP0913761A1 (en) * | 1997-10-31 | 1999-05-06 | Hewlett-Packard Company | Data encoding scheme |
| EP0913824B1 (en) | 1997-10-31 | 2013-08-14 | Hewlett-Packard Development Company, L.P. | Generating appendable points in encoded data |
| US6757659B1 (en) * | 1998-11-16 | 2004-06-29 | Victor Company Of Japan, Ltd. | Audio signal processing apparatus |
| US6522268B2 (en) * | 2000-01-05 | 2003-02-18 | Realnetworks, Inc. | Systems and methods for multiple-file data compression |
| US6606040B2 (en) * | 2001-02-13 | 2003-08-12 | Mosaid Technologies, Inc. | Method and apparatus for adaptive data compression |
| JP3913004B2 (ja) * | 2001-05-28 | 2007-05-09 | キヤノン株式会社 | データ圧縮方法及び装置及びコンピュータプログラム及び記憶媒体 |
| JP4785320B2 (ja) * | 2002-01-31 | 2011-10-05 | キヤノン株式会社 | 記憶装置 |
| US6657565B2 (en) | 2002-03-21 | 2003-12-02 | International Business Machines Corporation | Method and system for improving lossless compression efficiency |
| US7269548B2 (en) * | 2002-07-03 | 2007-09-11 | Research In Motion Ltd | System and method of creating and using compact linguistic data |
| US20070174362A1 (en) * | 2006-01-18 | 2007-07-26 | Duc Pham | System and methods for secure digital data archiving and access auditing |
| US8391148B1 (en) * | 2007-07-30 | 2013-03-05 | Rockstar Consortion USLP | Method and apparatus for Ethernet data compression |
| US7444596B1 (en) | 2007-11-29 | 2008-10-28 | International Business Machines Corporation | Use of template messages to optimize a software messaging system |
| US8554745B2 (en) * | 2009-04-27 | 2013-10-08 | Netapp, Inc. | Nearstore compression of data in a storage system |
| WO2013076523A1 (en) * | 2011-11-24 | 2013-05-30 | Freescale Semiconductor, Inc. | Memory access controller, data processing system, and method for managing data flow between a memory unit and a processing unit |
| US20140149605A1 (en) * | 2012-11-26 | 2014-05-29 | Saravana Annamalaisami | Systems and methods for dictionary based compression |
| US9928128B2 (en) | 2016-04-01 | 2018-03-27 | International Business Machines Corporation | In-pipe error scrubbing within a processor core |
| US10790044B2 (en) * | 2016-05-19 | 2020-09-29 | Seven Bridges Genomics Inc. | Systems and methods for sequence encoding, storage, and compression |
| US11677416B2 (en) * | 2021-05-17 | 2023-06-13 | Radu Mircea Secareanu | Hardware implementable data compression/decompression algorithm |
| US12386754B1 (en) | 2024-05-09 | 2025-08-12 | Dell Products L.P. | Synergistic data compression |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4847619A (en) * | 1987-10-19 | 1989-07-11 | Hewlett-Packard Company | Performance-based reset of data compression dictionary |
| 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 |
| US5151697A (en) * | 1990-10-15 | 1992-09-29 | Board Of Regents Of The University Of Washington | Data structure management tagging system |
-
1991
- 1991-01-18 DE DE69118250T patent/DE69118250T2/de not_active Expired - Fee Related
- 1991-01-18 EP EP91903657A patent/EP0464191B1/en not_active Expired - Lifetime
- 1991-01-18 JP JP50345391A patent/JP3224813B2/ja not_active Expired - Lifetime
- 1991-01-18 WO PCT/GB1991/000084 patent/WO1991010999A1/en not_active Ceased
- 1991-11-19 US US07/761,783 patent/US5298895A/en not_active Expired - Lifetime
Non-Patent Citations (1)
| Title |
|---|
| Hewlett−Packard Journal,Vol.40,No.3,June 1989,(Palo Alto,CA,US)M.J.Bianchi et al.:"Data compressin in half−inch reel−to−reel tape drive",pages 26−31 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69118250D1 (de) | 1996-05-02 |
| EP0464191B1 (en) | 1996-03-27 |
| US5298895A (en) | 1994-03-29 |
| DE69118250T2 (de) | 1996-10-17 |
| EP0464191A1 (en) | 1992-01-08 |
| WO1991010999A1 (en) | 1991-07-25 |
| JPH04505979A (ja) | 1992-10-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3224813B2 (ja) | 圧縮データ・アクセス | |
| US5280600A (en) | Storage of compressed data with algorithm | |
| US5598388A (en) | Storing plural data records on tape in an entity with an index entry common to those records | |
| JP3319751B2 (ja) | テープ記憶装置 | |
| JPH10289537A (ja) | デジタルデータ記録方法およびデジタルデータ記録媒体 | |
| US6378007B1 (en) | Data encoding scheme | |
| EP0323890A2 (en) | Data storage method | |
| JPH01204251A (ja) | 記録媒体検索方法及び記録媒体検索装置 | |
| EP0509642A2 (en) | Data recording and/or reproducing apparatus | |
| EP0464181A1 (en) | Data storage | |
| US6295177B1 (en) | Method of and apparatus for arranging data received in a data transfer from a data source | |
| EP0913825B1 (en) | Data encoding scheme | |
| JPH04359315A (ja) | データ圧縮制御装置及びデータ復元制御装置 | |
| EP0913823B1 (en) | Data encoding method and apparatus | |
| US6268973B1 (en) | Generating appendable points in encoded data | |
| WO1991011000A1 (en) | Data dictionary sharing | |
| EP0915413A1 (en) | Data encoding scheme with switchable compression | |
| WO1997008696A1 (en) | Digital data recording apparatus and reproduction apparatus | |
| JPH04286755A (ja) | 磁気記録再生装置 | |
| EP0649138A1 (en) | Magnetic recording/reproduction apparatus | |
| EP0913824A2 (en) | Generating appendable points in encoded data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080824 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090824 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100824 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110824 Year of fee payment: 10 |