JPH0855008A - システム生成辞書を用いたデータ圧縮のための方法及びシステム - Google Patents

システム生成辞書を用いたデータ圧縮のための方法及びシステム

Info

Publication number
JPH0855008A
JPH0855008A JP7167651A JP16765195A JPH0855008A JP H0855008 A JPH0855008 A JP H0855008A JP 7167651 A JP7167651 A JP 7167651A JP 16765195 A JP16765195 A JP 16765195A JP H0855008 A JPH0855008 A JP H0855008A
Authority
JP
Japan
Prior art keywords
dictionary
data
segment
statistics
record
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
JP7167651A
Other languages
English (en)
Other versions
JP3149337B2 (ja
Inventor
Brian J Smith
ブライアン・ジァイ・スミス
Mark A Sovik
マーク・エイ・ソビック
Pong-Sheng Wang
ポン−シェン・ワン
Nancy Y Young
ナンシー・イン−メイ・ヤング
Ahmad Zandi
アーマド・ザンディ
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 JPH0855008A publication Critical patent/JPH0855008A/ja
Application granted granted Critical
Publication of JP3149337B2 publication Critical patent/JP3149337B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

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

Abstract

(57)【要約】 【目的】 実際に圧縮されるデータに従い最大効率を得
るように所定の圧縮辞書を選択することによって、入力
データの受信時に、圧縮を迅速且つ効率的に実行する。 【構成】 初期サブストリング部分に問合わせることに
より、特定の特性をもつストリングを圧縮するために個
々に適応化された所定の辞書セグメントのライブラリか
ら、1つまたは複数の辞書セグメントを選択するために
用いる入力ストリング特性を決定し、文字ストリングを
圧縮する圧縮辞書を構成する。この初期サブストリング
部分は問合わせの間に動的に決定される。所定の自動選
択基準に合致する辞書セグメントの第1のセットが選択
され、第2レベル選択基準に合致する候補辞書セグメン
トの第2のセットが、サンプリング・フェーズのために
識別される。サンプリング・フェーズの間、初期サブス
トリング部分を圧縮し、圧縮性能統計を決定するために
候補辞書セグメントが交互に使用される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にデータの圧縮及び
伸長に関し、特に、コンピュータ・データ圧縮及び伸長
システムによる圧縮辞書の作成に関する。
【0002】
【従来の技術】データ圧縮はデータ文字を元の状態から
圧縮状態に変換することをさし、そこではデータは低減
された数の文字により表現される。更に、元のデータ内
の文字ストリングが、圧縮データ内の低減された数の圧
縮記号により置換される。元の文字ストリングは、例え
ば文字、数字、句読記号、スペースまたはブランク、及
び特殊文字を含む。圧縮データはデータを元の状態に戻
すために伸長され、これは圧縮記号を元のサブストリン
グにより置換することにより達成される。データ圧縮は
コンピュータ・システムにおいて、特定の有用性を有す
る。なぜなら、これは大規模データベースの必要記憶量
を多大に低減し、それによりデータ処理のコストを低減
するからである。例えば名前、ロケーション、ジョブ・
タイトルなどの大量のテキスト・データを有するデータ
ベース、または会計報告などの大量の数値データを有す
るデータベースが特に圧縮技術に好適である。
【0003】コンピュータにより実行されるデータ圧縮
は、一般にハードウェア圧縮またはソフトウェア圧縮の
いずれかを提供するように特徴化されるシステムにおい
て達成される。ハードウェア圧縮は、一般にハードウェ
ア記憶装置インタフェースにおいて、回路基板上に実装
される1個または複数の集積回路チップなどの専用のハ
ードウェア・プロセッサにより実行される圧縮及び伸長
をさす。そして通常、ハードウェア圧縮は、データが記
憶または検索されるときに圧縮及び伸長が実行されるよ
うに、通信チャネルの各終端部に配置されるプロセッサ
により実行される。例えばデータは磁気ディスク上への
記憶処理時に圧縮され、ディスクからの検索時に伸長さ
れる。ソフトウェア圧縮は一般に、記憶装置に既に記憶
されている完全なデータ・セットに対して発生するデー
タ圧縮をさす。即ち、ソフトウェア圧縮プロセスは制御
プロセスにより呼出され、圧縮されるべきデータ・ブロ
ックを受信し、データ圧縮を実行し、圧縮データを制御
プロセスに戻す。コンピュータ機構内のソフトウェア圧
縮は、一般にシステム導入の一部としてのソフトウェア
・プロセスにより実行される。
【0004】コンピュータ・データ圧縮システムの構成
は、圧縮データに対して要求される記憶空間の低減と、
データを圧縮及び伸長するために要求される計算負荷と
のトレードオフの結果となる。記憶空間の低減は、一般
に、圧縮記号の数及び長さ(出力サイズとも呼ばれる)
に対する、元の記号または文字の数(データ入力サイズ
とも呼ばれる)の比率に関連する圧縮率により測定され
る。
【0005】コンピュータ・データ圧縮システムは、圧
縮されるべき文字ストリングを圧縮記号ストリングを生
成するストリング・テーブル(圧縮辞書とも呼ばれる)
を用いて走査することにより達成される。より詳細に
は、入力ストリングを解析するために辞書が使用され、
入力文字のサブストリングがそれらが合致する辞書記号
で置換される。このようにして、長い文字または繰返し
発生する単語パターンが、低減された長さを有する記号
で置換され、それによりデータ圧縮が達成されるべきで
ある。データ伸長は、圧縮記号を対応する元の入力スト
リングに適合させる逆プロセスにより容易に実行され
る。非常に効率的な圧縮を提供する辞書がソフトウェア
圧縮技術により形成され、そこでは圧縮される入力デー
タが解析され、次に解析から得られる文字発生情報の結
果として、辞書が生成される。或いはデータ・チャネル
に受信されると予測されるデータにもとづき、以前に生
成された辞書を選択することにより、または圧縮プロセ
スにおいて所定の辞書を使用することにより、比較的高
速なハードウェア圧縮が達成される。
【0006】圧縮プロセスはデータ・ストリングを解析
するか、或いは辞書符号化のためにそれを句(phrase)
に分割する。例えば所定の圧縮辞書が次のように解析さ
れる英字M、即ち
【数1】M={a、b、ba、bb、abb} を含み、辞書英字が次の圧縮出力記号Cにマップされる
場合について考えてみよう。
【数2】C(a)=00、C(b)=010、C(ba)=011
0、C(bb)=0111、及びC(abb)=1
【0007】次にデータ・ストリング"babb"について考
える。データ・ストリングの各文字b、aなどが8ビッ
ト表現を要する場合、4文字を有する非圧縮データ・ス
トリングは、32ビットがメモリに記憶されることを要
求する。それに対して、圧縮辞書Mを使用すると、デー
タ・ストリングはC(ba).C(bb)=0110.0111とし
て、または理想的にはC(b).C(abb)=010.1とし
て符号化される。いずれの場合にも、データ・ストリン
グを記憶するために必要なビットの正味の低減が得られ
ることがわかる。
【0008】多くのデータ圧縮システムは、1977年
にJ.Ziv及びA.Lempelにより最初に説明される技術に
もとづく。例えばEastmanらによる米国特許番号第44
64650号"Apparatus and Method for Compressing
Data Signals and Restoringthe Compressed Data Sign
als"(1984年8月7日発行)を参照されたい。Ziv-
Lempelの技術(略してL−Z法とも呼ばれる)によれ
ば、圧縮される文字の入力ストリングは、文字の繰返し
シーケンスが入力ストリング内のそのシーケンスの以前
の発生をさすポインタにより置換されるように走査され
る。
【0009】例えば、ポインタの一形態は順序対(m、
n)であり、ここで、mは入力ストリング内において、
以前に出現した句と一致する最長の句を表し、nは入力
ストリング内の次の文字を表す。各入力句は以前に出現
した句(句接頭語(phase prefix))に対する指標と、
それに続く文字により符号化される。新たな句は、次に
辞書を構成する句のリストに追加され、これが将来参照
されることになる。符号化された句はそれにより、L−
Zプロセスの出力を表す。従って、データ・ストリン
グ"aaabbabaabaaabab"は次のような7つの句、即ち
{a、aa、b、ba、baa、baaa、bab}に解析される。各解
析句は、以前に出現した句及び続く文字を含んでいる。
句は、以前に出現した句を指し示すポインタとして符号
化され、次にそれに続く文字が含まれる。最初の句は
(0、a)として符号化され、これは以前に出現した句が
存在せず、文字"a"が続くことを意味する。"a"が従っ
て、参照される句に追加される。2番目の句"aa"は
(1、a)として符号化され、これは最初の句"a"の次に
文字"a"が続くことを意味する。3番目の句"b"は(0、
b)として符号化される。4番目の句"ba"は(3、a)と
して符号化され、これは3番目の句"b"の次に文字"a"が
続くことを意味する。5番目の句(baa)は、4番目の
句(ba)に続いて文字"a"が発生すると見なされるの
で、(4、a)と符号化される。6番目の句(baaa)は
(5、a)として符号化され、最後に、7番目の句(ba
b)は(4、b)として符号化される。符号化出力ストリ
ングは、従って(0、a)、(1、a)、(0、b)、(3、
a)、(4、a)、(5、a)、(4、b)として現れる。こ
こで、出力ストリングは元のデータ・ストリングを再生
するために、容易に復号化されうることが理解されよ
う。
【0010】当業者には理解されるように、上述の符号
化は、各解析句をツリー・データ構造(tree data stru
cture)と呼ばれるものに挿入することにより実行され
る。ツリー・データ構造では、各句がルート(接頭語)
から始まり、ノードで終わるパスを定義し、このパスが
その句に関連付けられる。ツリー構造の各ノードは、そ
れが表す句の番号を含む。例えば図1は、上述されたよ
うにストリングを解析する間に生成されるデータ構造を
示す。図示のように、最後に挿入される句は"bab"であ
り、これは4番目のノードを最長の以前の一致と識別
し、追加の文字"b"により7番目のノードを生成する。
ここでノード0からノード7へのパスを追跡すると、符
号化された句"bab"が生成されることがわかる。
【0011】L−Zプロセスにおける入力ストリング
は、所定の文字長の走査窓(scanningwindow)に従い走
査される。最初に遭遇したサブストリングが、辞書/圧
縮データ・テーブルに追加される。従って、L−Z辞書
は入力サブストリングを以前の発生に符号化する間に変
化し、以前に解析した入力ストリングのリストを含む。
このようにして、辞書は圧縮プロセスの実行と共に成長
し、圧縮される入力ストリングにある程度適応できるよ
うになる。L−Zプロセスでは辞書の成長に関し、特定
の限界が設定されなければならない。なぜなら、辞書は
大きくなるほど、大きな出力記号サイズを要求すること
になり、選択可能なより多くの辞書エントリを有するこ
とから、期待するよりも効率の悪い圧縮を招く結果にな
るからである。例えばBuntonによる米国特許番号第51
51697号"Data Structure Management Tagging Sys
tem"(1992年9月29日発行)は、辞書サイズ及び
成長を制御する方法について述べている。L−Zシステ
ムの性能は、サブストリングがそれ以前の発生と比較さ
れる走査窓のサイズにより、サブストリング・ポインタ
及び辞書作成基準に対して条件を設定する。
【0012】当業者には理解されるように、所定の辞書
によるデータ圧縮は、L−Z法と比較してかなり高速で
ある。これは主にL−Z法により解析ツリー構造を作成
し走査するために要する計算負荷に起因する。一般にL
−Z法は、データの符号化または圧縮時よりも、データ
の復号化または伸長時の方が、より迅速に動作する。更
に所定の辞書は、その記憶に必要なメモリのサイズが知
れている。上述のように、L−Z法は符号化の間の辞書
の生成及び成長の間に、過度な記憶量を要求する。しか
しながら、当業者には理解されるように、所定の圧縮辞
書は辞書エントリと入力サブストリングとの一致に依存
して、非常に異なる圧縮率を提供する。他方のL−Z法
は、圧縮される実際のデータに適応するプロセスを提供
する。
【0013】ソフトウェア・データ圧縮をサポートする
特定のコンピュータ・システムでは、圧縮プロセッサを
提供し、呼出しルーチンが入力ストリングに含まれるデ
ータの型のユーザ予測にもとづき、所定の圧縮辞書を指
定することを可能にする。これは最小の計算オーバヘッ
ドにより、比較的高速な符号化を可能にする。圧縮辞書
は多様なデータを圧縮するように適応化される総称辞書
の貯蔵庫またはライブラリから選択される。しかしなが
ら、受信される入力ストリングに特定的に適合されてい
ない所定の辞書の指定は、データ圧縮プロセスにマイナ
スの結果を生じ、データ・セットの圧縮が最小化するこ
ともありうる。
【0014】
【発明が解決しようとする課題】上述の説明から、所定
の辞書のセットから好適な圧縮辞書を効果的に選択する
ことにより、実際に圧縮されるデータに適応した符号化
プロセスを可能にし、それにより、圧縮辞書のための過
度な記憶空間を要求することなく、迅速且つ効率的にデ
ータ圧縮を可能にする方法及びコンピュータ・システム
が望まれることが明らかである。
【0015】
【課題を解決するための手段】本発明によれば、入力ス
トリング・データ特性を判断するために圧縮される文字
の入力ストリングが、初期サブストリング・ブロックに
渡って問合わされ、この特性が次に、個々に特定の特性
を有するストリングを圧縮するために適応化された辞書
セグメントのライブラリから、1つまたは複数の辞書セ
グメントを選択するために使用される。自動選択基準に
合致する辞書セグメントの第1のセットが選択され、サ
ンプリング基準に合致する候補辞書セグメントの第2の
セットがサンプリング・フェーズに指定される。サンプ
リング・フェーズの間、候補辞書セグメントを交互に使
用して、入力ストリングのサンプル・サブストリング・
ブロックを圧縮し圧縮統計を生成する。サンプリング・
フェーズからの候補辞書セグメントの性能統計により、
辞書総サイズ限界内において、第1の選択辞書セグメン
トに追加される候補辞書セグメントを決定する。第1の
選択辞書セグメント及びサンプリングにより選択される
候補セグメントが、システム生成圧縮辞書を構成し、こ
れが残りの入力ストリングをその受信時に圧縮するため
に使用される。このように、所定の辞書セグメントのセ
ットを含むシステム生成圧縮辞書が、実際に圧縮される
データにより最大圧縮効率で構成され、圧縮が入力スト
リングの受信または生成時に、迅速且つ効率的に実行さ
れる。
【0016】本発明の一態様では、初期サブストリング
に渡り収集される問合わせデータ特性統計が文字頻度デ
ータを含み、続くデータが圧縮に適するかどうかを判断
するために使用され、もし適すれば、高頻度文字ストリ
ングの圧縮に最適な辞書セグメントを選択する。問合わ
せ統計はまた、サンプリング・フェーズが必要か否か、
完成辞書のサイズがどうあるべきか、及び問合わせサブ
ストリングのサイズがどうあるべきかを判断するために
も使用される。必要に応じて問合わせ統計及びサンプリ
ング性能統計は、続くサブストリングとの後の比較のた
めに保管される。これは、異なる辞書セグメントが使用
されるべきか、或いはサンプリングが再開されるべきか
を判断することを目的とする。
【0017】本発明の別の態様によれば、各辞書セグメ
ントは辞書識別子により表され、その結果、システム生
成圧縮辞書は、1つまたは複数の辞書識別子のストリン
グを含む辞書トークンとして、圧縮データを参照するシ
ステム・データ・カタログ内に記憶される。このよう
に、システム生成辞書は、圧縮データが外部記憶装置に
記憶されるのと同時に"トークン化"される。圧縮データ
・ストリングがアクセスまたはオープンされ、伸長され
るとき、ストリングに関連付けられるトークン化辞書が
検索され、辞書トークンをシステム・メモリ内に記憶さ
れる辞書識別子及び対応する辞書セグメントに照合する
ことにより伸長または生成される。即ち、伸長がこの時
実行される。圧縮ストリングと一緒に辞書トークンを自
動的に記憶することにより、ストリング及びそれに関連
付けられる圧縮辞書のために必要な記憶空間の量が低減
し、辞書トークンをサポートする任意のコンピュータ機
構へのストリングの改善された移送性が提供され、シス
テム生成辞書を他の類似のストリングと容易に共用可能
になる。
【0018】
【実施例】図2を参照すると、本発明により構成される
コンピュータ・システム10は、アプリケーション14
を使用する1人または複数のシステム・ユーザ12をサ
ポートし、様々な外部記憶装置16に記憶される新たな
データを生成し、また旧データを検索する。アプリケー
ションは、中央処理ユニット(CPU)20を制御する
オペレーティング・システム19のファイル・システム
・インタフェース18を介して、記憶装置へのアクセス
を獲得する。インタフェース18は、新たな入力データ
の受信及びアプリケーションからの圧縮要求に応じて、
データ圧縮を開始するアクセス・メソッド・プロセッサ
22を含む。本発明によれば、インタフェース18は更
に圧縮管理プロセッサ24を含み、このプロセッサはデ
ータ問合わせ及び入力データのサブストリングに対する
サンプリングを実行して、圧縮辞書ライブラリ26から
1つまたは複数の辞書セグメントを選択し、データ圧縮
用に使用されるシステム生成辞書を構成する。インタフ
ェース18により受信される入力データのうち当該サブ
ストリング以外の残りの部分は、このシステム生成辞書
を用いて圧縮される。このシステム生成辞書は"トーク
ン化"され、システム管理データ・カタログ27に記録
され、圧縮されるデータ・セットに関連付けられる。
【0019】好適な実施例では、コンピュータ・システ
ム10は、CPU20に接続される複数のユーザ端末1
2から成る比較的大きなコンピュータ・ネットワークを
含む。CPU20は一般にメインフレームと呼ばれ、例
えばIBM社の"system 390"中央プロセッサなどがこれ
に相当する。或いはCPUは、圧縮を必要とするデータ
を含む大規模データベースを維持するために、通常、使
用される広範なプロセッサを含みうる。ユーザ12は、
例えばIBM社の"AS/400"端末または"PS/2"端末などの
コンピュータ端末を含みうる。しかしながら、本発明は
広範なシステム構成及び能力に適用されても、同等の有
用性を有する。
【0020】アプリケーション14は一般的に、CPU
20によりサポートされるオペレーティング・システム
19に従い実行されるアプリケーション・プログラムを
含む。アプリケーション・プログラムは、本発明の圧縮
機構と協働するにおいて、変更を要さずに利益を受ける
ことができる。図2に示されるような比較的大規模なメ
インフレーム環境において、オペレーティング・システ
ム19は、例えばIBM社による"MVS"システムを含
む。アクセス・メソッド・プロセッサ22は、"MVS"
オペレーティング・システムによりサポートされるIB
M社の"VSAM"、"IMS"または"DB2"アプリケー
ション・プロセスを含む。CPU20は、例えばIBM
社の"MVS"システムによりサポートされるハードウェ
ア圧縮機構(HCF)と呼ばれるプロセッサなどの、デ
ータ圧縮装置28を含む。或いはデータ圧縮装置は、C
PU20のソフトウェア圧縮プロセスであってもよく、
この場合には、CPUが圧縮されるデータのコンピュー
タ・データ記憶ロケーションを受信し、圧縮を実行し、
圧縮データを含むメモリ・ロケーションのブロックを戻
す。勿論、ハードウェア及びソフトウェアによる混合圧
縮プロセスも可能である。
【0021】アクセス・メソッド22は、アプリケーシ
ョン14と外部データ記憶装置16との間のデータのフ
ローを制御する。アクセス・メソッドはデータ圧縮要求
を受信すると、圧縮管理プロセッサ24に圧縮されるデ
ータ、圧縮辞書トークン及び圧縮データの出力アドレス
宛先を提供する。圧縮管理プロセッサは必要に応じて、
CPU20のメモリ29内に圧縮辞書を構成し、HCF
28を呼出し、HCFに圧縮されるデータのアドレス、
圧縮プロセスにおいて使用される圧縮辞書のアドレス、
及び圧縮データを含む領域の出力アドレスを渡す。HC
Fは次に圧縮辞書を用いてデータを圧縮し、圧縮データ
を指定出力領域に記憶する。圧縮辞書及び結果の圧縮デ
ータは、一時的にシステム・メモリ29に記憶される。
アクセス・メソッド22は次に圧縮データを外部記憶装
置16上に記憶し、圧縮データに関連する情報を外部記
憶装置のデータ・カタログ部分27に配置する。外部記
憶装置16は、例えば磁気ディスク・ドライブまたはテ
ープ・ドライブ・システムなどの様々な外部装置を含み
うる。アクセス・メソッドは圧縮要求無しにデータを受
信すると、単に受信時にデータを外部記憶装置に記憶す
る。
【0022】辞書ライブラリ26は、オペレーティング
・システム19またはHCF28の供給元により生成さ
れるシステム供給辞書セグメントを含む。辞書セグメン
トは、通常、当業者には既知のL−Zツリー構造として
構成されるか、こうしたツリー構造を構成するための基
礎として好適なデータの収集から成る。ライブラリは1
つまたは複数のユーザ定義辞書セグメントを含みうる。
これらのセグメントは、ユーザ定義辞書セグメントが供
給元ライブラリにより提供されるセグメントよりも良好
な圧縮性能を提供する環境下において、アプリケーショ
ン14により生成される特定のデータに対応して個別に
適合化される。当業者には、こうした個別に適合化され
た辞書セグメントが生成される方法が理解されよう。
【0023】図3は、アクセス・メソッドからデータ圧
縮要求を受信する"CM"圧縮モジュール32を含む、圧
縮管理プロセッサ24を示す。このプロセッサは更に、
辞書識別子のストリングを含む辞書トークンにもとづ
き、完全に伸長されたシステム生成辞書を生成する"B
D"辞書生成モジュール34、データ問合わせ及びデー
タ・サンプリングを開始する"SA"サンプリング・モジ
ュール36、SAモジュールに対応してデータ・サンプ
リングを実行する"IN"問合わせ(interrogation)モ
ジュール38、及び辞書生成/データ圧縮プロセスへの
アクセス制御を提供する"PC"制御モジュール40を含
む。PCモジュールは圧縮がユーザにより要求されると
き、CMにより呼出される。最後に、プロセッサは問合
わせ入力ストリング及びサンプリング・ストリングが一
時的に記憶されるデータ・バッファ・メモリ42を含
む。このバッファには更に、問合わせフェーズ及びサン
プリング・フェーズからそれぞれ生じる問合わせデータ
特性統計及びサンプリング性能統計が記憶される。バッ
ファにはシステム・メモリ29の一部を含めることがで
きる。
【0024】図4は、圧縮管理プロセッサ24及びその
構成モジュールにより実行される処理ステップを示す。
最初にステップ52で、アクセス・メソッド・プロセッ
サが、ユーザ・アプリケーションがデータ・ブロックの
圧縮を要求することを検出する。圧縮が要求されない場
合、ステップ52は否定結果となり、次にプロセッサは
ステップ54で示されるように、従来通りに圧縮をしな
いで動作する。圧縮が要求される場合、ステップ56で
示されるように、CMモジュール処理が開始する。圧縮
を実行するためにアクセス・メソッドは圧縮管理プロセ
ッサ24(図2)を呼出し、これに対して、このデータ
・セットを処理するために使用される辞書を表すトーク
ンを渡す。同様の圧縮特性のデータ・ファイルがアクセ
スされている場合、受信トークンにより表される圧縮辞
書が既に生成されているかもしれず、従って判断ステッ
プ58で、制御モジュールはデータ・ファイルに関連付
けられるシステム生成圧縮辞書が生成されているかどう
かを判断する。生成されるシステム生成辞書は、後述
の"トークン化"フォーマットではなく、完全に伸長され
た形式の辞書をさす。
【0025】システム生成辞書が生成されていると、次
にステップ60で、入力ストリング、辞書及び宛先アド
レスがハードウェア圧縮機構28(図2)に提供され
る。圧縮処理が次にステップ62で実行され、圧縮結果
がステップ52において、要求ユーザに戻される。シス
テム生成辞書がまだ生成されていないと、判断ステップ
58が否定応答となり、判断ステップ64で、圧縮管理
プロセッサが提供されるトークンが有効な圧縮トークン
かどうかを判断する。有効トークンが受信され、辞書が
まだ生成されていない場合、受信辞書トークンに従いシ
ステム生成辞書を生成するためにステップ66でBDモ
ジュールが呼出される。PCモジュールを通じて制御を
このように渡すことは、機密保護キー・スイッチ制御の
実行を可能にする。
【0026】有効なシステム生成辞書トークンがステッ
プ64で受信されると、次にステップ68で、後述のよ
うに圧縮管理プロセッサ24がINモジュール及びSA
モジュールへの呼出しを通じて、問合わせ及びサンプリ
ングを実行する。こうした動作(辞書セグメントの選択
を含む)の後、CM処理がステップ62で終了する。図
4に示される処理の様々な態様が以降でより詳細に述べ
られる。ステップ70では、アクセス・メソッド・プロ
セッサがトークンがCM処理ステップから受信されたか
どうかを判断する。トークンが受信されていない場合、
処理はステップ72で終了する。トークンが受信されて
いると、ステップ74でトークンがカタログに保管さ
れ、その後処理がステップ72で終了する。
【0027】上述のように、システム10は辞書セグメ
ント選択プロセスにより、システム生成圧縮辞書を構成
する要求に応答する。辞書選択プロセスは、受信データ
に最も類似する圧縮特性を有する辞書セグメントを選択
するステップを含む。本発明によれば、受信データの特
性はサブストリングを問合わせ、文字属性を決定し、そ
のサブストリングについての統計を計算することにより
決定される。好適な実施例では、問合わせモジュールに
より計算される統計はゼロ次(zero-order)統計と呼ば
れ、主にデータ・セットの文字数を含む。この統計には
更に後述のように、文字グループの頻度及びエントロピ
統計が含まれる。必要に応じて高次の統計も収集されう
る。好適な実施例では、問合わせ統計の収集において使
用される入力ストリングの一部が、統計の安定性にもと
づき動的に決定される。従って、圧縮される入力ストリ
ングの全体について、問合わせデータ特性統計を収集す
ることは不要である。このことは処理の高速化、及びデ
ータの受信または生成時における実時間による圧縮の発
生を可能にする。
【0028】辞書選択プロセスは、データ・セットの初
期書込み動作の間に呼出される。即ち、選択プロセスは
データ・セットがデータ記憶装置上への書込みのため
に、最初にアクセス・メソッドに提供されるときに開始
される。プロセスはデータ特性統計が安定化し、"所有
必須"(must-have)の辞書セグメントの最初のセットが
選択され、サンプリングが必要と指摘されないか、"所
有必須"の辞書セグメントが選択され、続くサンプリン
グ及び可能な追加に対して、サンプリング辞書セグメン
ト候補のセットが識別されているか、或いは所定量の入
力データが問合わされ、"所有必須"のセグメントが選択
され、(識別されていれば)サンプリング候補辞書セグ
メントが以前に選択された"所有必須"のセグメントに追
加されるか、またはデータ・セットが圧縮に不適と指摘
されるまで継続される。
【0029】図5の流れ図は、問合わせプロセスがIN
モジュールにより実行される処理ステップを表す。辞書
選択の基本となる入力ストリング部分を決定するため
に、ステップ80に示されるように、入力ストリングの
最初の固定長ブロックがデータ・バッファ42(図3)
に配置される。或いは最初の固定長ブロックが、それが
存在する開始アドレス及び終了アドレスなどの記憶ロケ
ーションに関して指定されてもよい。好適には、入力ス
トリングの開始部分は、データ・セットの早期部分に出
現すると予想される標準のヘッダ情報、制御文字または
他の非繰返し記号が、辞書セグメントの選択に影響しな
いように問合わせプロセスから除外される。このよう
に、問合わせブロックは圧縮されるデータの性質をより
正確に反映する。次のステップ82では、バッファ内に
記憶される入力問合わせストリングを走査し、それを構
成する文字数をカウントし、問合わせストリングに関連
する所望のデータ特性統計を計算する。ステップ84で
は、入力ストリング文字の次のブロック(サイズ的には
最初のブロックと同じ)がバッファに配置され、対応す
る問合わせ統計が計算される。
【0030】上述のように、問合わせデータ特性統計は
文字が属する文字グループのカウントと同様に、入力ス
トリングに含まれる可能な文字セットについての文字発
生(occurrence)の生のカウントを含む。問合わせフェ
ーズでは、文字発生カウント及び文字グループ・カウン
トは、好適には、既知のASCII文字表示コードまた
はIBM社256文字EBCDICコードなどの標準文
字セットに従い収集される。例えばEBCDICセット
は、英字大文字、英字小文字、数字、特殊印刷文字、低
位制御(low control)文字及び他の残りの制御文字を
含む文字グループに分割される。最初の3つのグループ
は説明を要さないであろう。特殊印刷グループは、@、
%、&、*などの文字を含む。低位制御文字は、X'00'
(規則上、こうした表記は全て0の16進バイト・スト
リングを示す)の表現を有するヌル(NULL)文字、及び
他の低位バイト・ストリングを含む。他の制御文字のセ
ットには、例えば高位16進バイト・ストリング'FA'乃
至'FF'により表現される16進数を含む他の全ての文字
が含まれる。
【0031】好適な実施例では、文字発生カウントが相
対頻度データに変換され、問合わせ合計統計がデータ圧
縮の適合性を示す既知のエントロピ関数を含む。エント
ロピ関数は、
【数3】E= -1/8 Σpi log pi により定義され、ここで、Eはエントロピ値、piはi
番目の文字の相対頻度、logは底2である。加算指標i
の範囲は文字セット内の文字数をカバーする。従って、
256文字IBM社EBCDICセットでは、指標iは
1乃至256の値を取る。エントロピ関数は上限1.0
を有し、小さなエントロピ値は圧縮の適合性が大きいこ
とを示す。
【0032】図5のステップ86では、統計の安定性を
チェックする。好適な実施例では、これはバッファ内の
最初のブロックに関して以前に計算された文字統計と、
最初のブロックと次の(同サイズの)ブロックの組合わ
せに関する文字統計との比較を含む。或いは最初のブロ
ックだけに関する統計が、次のブロックだけに関する統
計と比較されてもよい。いずれの場合にも、新たな統計
が以前の統計の分散しきい値以内であれば、安定化が達
成され、新たな統計に対応するブロックを選択問合わせ
ブロックとすることにより、問合わせプロセスが完了す
る。即ち、最初のブロックの統計が最初のブロックと次
のブロックの組合わせの統計と比較される場合、選択問
合わせブロックは、最初のブロックと次のブロックの組
合わせを含む。
【0033】統計の分散(varience)がしきい値より大
きいと、ステップ88で、比較のための新たな最初のブ
ロックが選択される。ステップ90で、後述される所定
の問合わせ限界がチェックされる。限界に達していると
判断ステップ92で、データが圧縮可能かどうか判断さ
れる。限界に達していないと、問合わせプロセスはステ
ップ94に進み、圧縮のための新たな次のブロックを獲
得する。文字問合わせ統計が再度収集され(ステップ8
4)、比較される(ステップ86)。
【0034】好適な実施例では、ステップ88での新た
な最初のブロックの選択、及びステップ94での比較の
ための次のブロックの選択において、統計の収集及び比
較のために徐々により大きなブロックを選択する。特に
問合わせ統計は、入力ストリングの最初の4Kバイトに
渡って最初に決定され、入力ストリングの最初及び2番
目の4Kバイトの組合わせについて比較される。文字カ
ウント情報が所定の差分しきい値内であると判断ステッ
プ86が肯定となり、安定化が指摘され、問合わせプロ
セスが、問合わせブロックとして選択される最初の8K
バイト(最初のブロック+次のブロック)で停止され
る。文字カウント情報が差分しきい値内にない場合、最
初の2つの4Kバイトからの入力ストリングのブロック
が、新たな最初のブロックを確立するために一緒に加え
られ(ステップ88)、入力データの最初の8Kと次の
8Kバイトとの組合わせに渡る文字カウント情報と比較
される(ステップ94、ステップ84及びステップ8
6)。
【0035】比較の結果、最初の8Kバイトに渡る統計
が、最初及び2番目の8Kバイトの組合わせに渡る差分
しきい値内にあると(ステップ86)、問合わせプロセ
スは最初の16Kバイトを問合わせブロックとして停止
される。それ以外では、最初の2つの8Kバイトのデー
タからの文字カウント情報は、新たな最初のブロックを
形成するために一緒に加えられ、入力データの最初の1
6Kバイトと次の16Kバイトの組合わせを含む次のブ
ロック文字カウント情報と比較される。プロセスはこの
ようにして、入力データの最初の32Kバイトが最初と
2番目の32Kバイトのデータの組合わせと比較される
まで繰返され、この時点で、差分しきい値が満足される
か、収集された統計が圧縮処理が辞書選択を継続すべき
ことを示すか、またはデータ・セットが圧縮に不適であ
ると指摘されるので、問合わせプロセスが停止される。
従って、問合わせブロックは64Kバイトを越えること
はない。但し、64Kの限界は任意に選択されたサイズ
限界であり、他のサイズの選択も可能である。例えば特
定の状況下では、オプションとして設けられるより大き
なデータ・サイズが好適であったりする。
【0036】上述のように、問合わせの間、問合わせブ
ロック・サイズの限界に達すると、判断ステップ90が
肯定応答となり、処理は判断ステップ92に移行し、こ
こでデータ・ブロックがデータが圧縮可能と示すかどう
かが判断される。このステップはエントロピ値の計算、
及びエントロピ値と所定の限界値との比較を含む。比較
の結果、計算されたエントロピ値が限界よりも大きいこ
とが示されると、次にステップ96で、システムはデー
タが圧縮可能でないことを出力装置へのメッセージの配
布などにより指摘する。問合わせプロセスは次にステッ
プ98で終了する。必要に応じてシステムは終了ステッ
プ後、図4に示されるように、圧縮することなく従来の
データ記憶ステップに移行する。エントロピ値の比較に
より、データが圧縮可能であることが示されると、安定
化が達成され、問合わせプロセスは終了する。処理は次
のシーケンスに移行する。
【0037】図5において、データ安定後の次のステッ
プ100では、後の再呼出しのために問合わせ統計を保
管する。次にステップ102で、問合わせ統計に従い、
辞書ライブラリから辞書セグメントが選択される。この
選択は統計にもとづく。なぜなら、辞書ライブラリは特
定の文字のストリングを圧縮するのに特に好適な総称辞
書セグメントを含むからである。好適な実施例では、ラ
イブラリ内の辞書セグメントは、上述の文字グループの
1つからのデータを圧縮するのに特に効果的なように構
成される。説明の都合上、辞書セグメントは4つの型の
セグメント、即ち、ラン・サプレッサ(run suppresso
r)、数字制御、英字制御及び順列制御(permutation c
ontroll)に分類されるものとする。
【0038】ラン・サプレッサ辞書セグメントは、同一
文字のストリングを圧縮記号により置換するように適応
化される。ラン・サプレッサ辞書セグメントは、例えば
最大20バイト長のEBCDIC文字ストリングのサプ
レッサを含む。即ち、ラン・サプレッサ辞書セグメント
は、最大20EBCDIC文字のストリングを単一の辞
書記号により置換する。ラン・サプレッサ・グループの
辞書セグメントには更に、長さが20を越える最も一般
に使用されるストリング文字、及び長さが20を越える
最も一般に使用される制御文字のためのサプレッサが含
まれる。これらは例えば、ブランク(空白)のストリン
グを圧縮するのに効果的である。数字辞書セグメントの
あるものは、00乃至99の全ての数字変化を圧縮する
ことを目的とし、あるものは000乃至999の全ての
数字変化を圧縮することを目的とする。様々な辞書セグ
メントの特定の機能が、以降で擬似コード・リストによ
り詳細に説明される。英字辞書セグメントは、英単語、
接頭語、接尾語、最も一般的な2文字列、及び最も一般
的な3文字列を圧縮することを目的とする。順列制御辞
書セグメントは、長さが6までの全ての可能な数字スト
リングの圧縮、及び長さ6までのヌルを有する最も一般
的な制御文字の圧縮を目的とする。
【0039】辞書セグメントの選択は、選択される辞書
セグメントの型に依存して、異なる選択基準を含む。例
えばラン・サプレッサ辞書セグメントは、問合わせスト
リング内の全ての文字の中で最も頻度の高い3文字と、
上記各定義グループ内の全ての文字の中で最も頻度の高
い2文字に従い選択される。グループ内の最も一般的な
文字(または文字ストリング)が、たとえこうした文字
が問合わせストリング全体に渡って一般的でないとして
も対応する辞書セグメントを保証する。なぜなら、グル
ープ内での高い一般性は、文字ストリングが上記セグメ
ントが圧縮に効果的に寄与するために十分な頻度で発生
することを示すからである。
【0040】同様に数字辞書セグメントは、問合わせス
トリング内の総データに対する、問合わせストリング内
の数字データの比率にもとづき選択される。問合わせス
トリング内における全ての桁に関する最も頻度の高い桁
の比率が、しきい値と比較され、その桁に対応する数字
辞書セグメントが使用されるべきかどうかを判断する。
選択方法は上述のラン・サプレッサの場合と同様であ
る。英字辞書セグメントは、可能な言語からの問合わせ
ストリングの偏差を決定する弁別関数(discriminate f
unction)にもとづき選択される。この言語は、好適な
実施例では英語であるがユーザは圧縮される入力データ
にもとづき、異なる言語を選択することができる。大文
字及び小文字に対して、問合わせデータが提案される言
語(英語)に対応するかどうか、及びその言語の使用が
対応する辞書セグメントの選択を保証するのに十分広範
に及ぶかどうかが判断されなければならない。
【0041】好適な実施例で使用される弁別関数は、い
わゆるクロス・エントロピ関数(Kullback-Liebner分散
とも呼ばれる)を含む。クロス・エントロピ関数は、圧
縮管理プロセッサにより計算される好適な問合わせ統計
の1つである。この関数は、ゼロ次文字統計からの問合
わせストリングの偏差を測定する。特にクロス・エント
ロピ関数Kは、
【数4】K(p、q)=Σpi(-log qi+log pi) により定義され、この関数はサイズNを有する文字セッ
トに渡って評価され、加算指標iは1乃至Nに及び、p
iはデータから計算されるi番目の文字の確率であり、
iはデータ・クラスに対して予想されるi番目の文字
の総称確率である。例えばセットqiは一般の英語テキ
スト内の英字の予想確率の既知のセットである。qi
率は、通常、考慮されるデータ・クラスの非常に大きな
サンプルから導出される。フランス語、ドイツ語、イタ
リア語及びスペイン語などの文字における他の予想確率
のセットも容易に獲得される。更にその他の確率セット
も、特定のデータ・セットに対して決定される。
【0042】制御辞書セグメントは、問合わせストリン
グ内の全ての制御文字の中で、最も頻繁な制御文字の確
率を見い出すことにもとづき選択される。確率が制御文
字しきい値を越えると、対応する制御辞書セグメントが
自動的に選択される。別の制御文字選択基準は、ヌル文
字が最も頻繁な制御文字であるかどうかである。そうで
ある場合、非ヌル低位制御文字とヌル文字との全ての対
に対応する任意の辞書セグメントが、排除されるべきか
どうかを判断するために、しきい値が使用される。最後
に、ヌル及びEBCDIC X'0C'が十分に一般的であ
れば、ヌル及びEBCDIC X'0C'の交互の発生に対
応する辞書セグメントが選択される。上記しきい値は、
特定の処理システムが遭遇すると予想されるデータに従
い変化し、通常は既知であるか、或いは当業者により容
易に獲得される。
【0043】本発明によれば、流れ図のステップ102
で示される辞書選択ステップの間に、圧縮に適する文字
と問合わせストリングの文字頻度との間で高い相関を有
する特定の辞書セグメントが、構成されるシステム生成
辞書における"所有必須"(must-have)のセグメントと
して選択される。次のステップ104では、問合わせス
トリング文字と強い相関を有さない他の辞書セグメント
が、サンプリング候補として指定され、サンプリング処
理の結果、システム生成辞書に含まれたり含まれなかっ
たりする。これについては以降で詳述される。上述の各
辞書セグメント選択基準に対して、しきい値基準の2つ
のセットが存在しうる。第1のしきい値は、辞書セグメ
ントがシステム生成辞書の一部として自動的に選択され
るかどうかを判断し、別のしきい値は、同一または類似
の辞書セグメントが、サンプリングのためのシステム生
成候補として指定されるかどうかを判断する。
【0044】"所有必須"の辞書セグメントのセットが自
動的に選択され、候補セグメントが識別されると、図5
の次のステップ106では、文字頻度により選択辞書セ
グメントを整理する。即ち、辞書セグメントが特定のセ
グメントに対する文字一致の降順に整理される。次のス
テップ108では、サンプリング候補セグメントが識別
されたかどうかを判断する。サンプリング候補辞書セグ
メントが識別されなかった場合、サンプリング要求フラ
グがステップ109で設定され、次に問合わせプロセス
がステップ98で終了する。サンプリング候補辞書セグ
メントが識別された場合には、次のステップ110でサ
ンプリングに移行する。
【0045】図5に示される問合わせ処理モジュール
は、次に示すINモジュールの擬似コードを参照するこ
とにより、より理解されよう。
【0046】 プロセス IN 入力: 入力文字ストリング; 問合わせ統計バッファ; 出力: 更新問合わせ統計バッファ; 選択辞書セグメントのリスト; サンプリング候補辞書セグメントのリスト; 問合わせ完了フラグ; サンプリング要求フラグ; 変数: BYTE_COUNT 入力ストリング・ポインタに対応する文字のバイト・カウント( 0に初期化); BYTE_COUNT_CHKPT 入力ストリングの終りをさすポインタ(4096に初期化 ); FREQ_COUNT 各入力ストリング文字の頻度カウント値(0に初期化); 関数: INTERROGATION_STABILIZED 走査文字ストリング・レコードが安定化したか否かの判断;TRUE(安定化)か FALSEに設定。 主論理 If(BYTE_COUNT+入力ストリング長)<BYTE_COUNT_CHKPT then: 1.入力ストリング内のあらゆる文字に対して、対応する文字FREQ_COUNTを増 分。 2.BYTE_COUNTを入力ストリング長さ分増分。 3.復帰。 Else 長さ(BYTE_COUNT_CHKPT−BYTE_COUNT)の開始サブストリングに対して、do: 1.サブストリング内のあらゆる文字に対して、対応する文字FREQ_COUNTを増 分。 2.BYTE_COUNTをサブストリング長さ分増分。 3.If(BYTE_COUNT=BYTE_COUNT_CHKPT) then 最初のチェック・ポイント(BYTE_COUNT_CHKPT=4096)にて: FREQ_COUNTから問合わせ統計を計算し、それをバッファに保管。 BYTE_COUNT_CHKPT値を2倍する。 最大問合わせサイズ(BYTE_COUNT_CHKPT=65536)にて: FREQ_COUNTから新たな問合わせ統計を計算し、それをバッファに保管。 END_INTERROGATIONを呼出す。 最初のチェック・ポイントと最大問合わせサイズとの間で: FREQ_COUNTから新たな問合わせ統計を計算。 新たな統計をバッファ内の統計と比較。 If INTERROGATION_STABILIZED=TRUE then 新たな問合わせ統計をバッファに保管。 END_INTERROGATIONを呼出す。 Else 新たな問合わせ統計をバッファに保管。 BYTE_COUNT_CHKPTを2倍する。 4.残りのサブストリングを処理するために、(1.)にループして戻る。
【0047】上記擬似コードでは、モジュール入力が入
力文字ストリング及び問合わせ統計ブロックとしてリス
トされ、これが図3に示されるメモリ・バッファ29内
に保持される。出力は更新問合わせ統計、システム生成
辞書として選択される辞書セグメントのリスト(辞書生
成ブロックとして"DBB"とリストされる)、サンプリ
ング・フェーズとして選択される候補辞書セグメントの
リスト、問合わせ完了フラグ(INTERROG_COMPLT)、及
びサンプリング要求フラグとしてリストされる。INモ
ジュールにより使用される変数には、既に問合わされた
文字バイトの数を追跡するBYTE_COUNT、固定問合わせサ
イズに等しく設定される入力ストリングの所定ブロック
を指定するBYTE_COUNT_CHKPT、及び各文字に対応して、
その文字のカウントを記憶するFREQ_COUNT変数が含まれ
る。問合わせ完了、バイト・カウント及び頻度カウント
の各変数は0に初期化される。BYTE_COUNT_CHKPTは4
K、即ち4096バイトに設定される。
【0048】擬似コードの最初の部分では、問合わせモ
ジュールは入力ストリングの所定部分だけが問合わされ
るか、走査されることを保証するためのチェックをす
る。モジュールはこれを、BYTE_COUNTポインタの現在値
(入力ストリングの走査部分を示す)と入力ストリング
長との合計が、BYTE_COUNT_CHKPT値より小さいか否かを
判断することにより実行する。合計の方が小さい場合、
モジュール入力ストリング内のあらゆる文字に対して、
対応する頻度カウントが増分され、BYTE_COUNTポインタ
値が入力ストリング長分増分され、処理が継続される。
合計の方が小さくない場合、これはBYTE_COUNT_CHKPTに
達したことを意味し、BYTE_COUNT_CHKPTからBYTE_COUNT
を差し引いた値に等しい入力ストリング・ロケーション
で始まる現サブストリングに対して、次のステップ1、
2、3及び4が実行される。
【0049】ステップ1は、サブストリング内の各文字
に対応する文字発生カウント値FREQ_COUNTを増分する。
ステップ2は、BYTE_COUNT値をサブストリング長分増分
する。これはサブストリング・ポインタをレコード・ブ
ロックに沿って移動する。ステップ3は、ポインタが初
期問合わせチェック・ポイント、最大問合わせサイズ・
チェック・ポイント、または中間チェック・ポイントに
あるかどうかをチェックする。初期チェック・ポイン
ト、即ち最初の4Kバイトが問合わされた後、問合わせ
統計がFREQ_COUNT値から計算され、データ・バッファ内
の問合わせ統計として保管される。問合わせ統計は、例
えばFREQ_COUNTによりカウントされる文字の相対頻度を
含む。BYTE_COUNT_CHKPT値は、次の比較に備えて2倍さ
れる。処理はステップ1に戻り、次のサブストリングの
処理を実行する。最大問合わせサイズに達すると、即ち
BYTE_COUNTが64Kに等しくなると、新たな問合わせ統
計が計算され、データ・バッファに保管される。問合わ
せプロセスはEND_INTERROGATEプロセスを呼出して終了
する。中間ポイントの1つに達したときには、新たな問
合わせ統計が計算され、この新たな統計がバッファ内に
記憶される以前の統計と比較され、安定化基準が満たさ
れると(関数INTERROGATION_STABILIZEDがTRUEに設定さ
れる)、新たな統計がバッファ内に保管され、END_INTE
RROGATEプロセスが呼出される。従って、辞書セグメン
ト選択として使用されるレコード・ブロックは、データ
・セットの開始からBYTE_COUNT_CHKPTの現在値に及ぶブ
ロックに相当する。安定化基準が満たされないと、新た
な問合わせ統計がバッファに保管され、BYTE_COUNT_CHK
PTの値が2倍され、処理はステップ1に戻る。
【0050】次に示す擬似コードは、INTERROGATION_ST
ABILIZED処理に関連する。
【0051】 INTERROGATION_STABILIZED If 新ENTROPY>.75 then FALSEを戻す。 Elseif(GROUP_FREQ_COUNT、新GROUP_FREQ_COUNT)偏差<しきい値且つ(TOP_CH AR_FREQ_COUNT、新TOP_CHAR_FREQ_COUNT)偏差<しきい値 then TRUEを戻す。 Else FALSEを戻す。
【0052】上記擬似コードにおいて、新入力ストリン
グ・ブロックに対する(上記定義による)問合わせ統計
からの入力ストリング・エントロピ値Eが、エントロピ
しきい値よりも大きいと、INTERROGATION_STABILIZEDフ
ラグがFALSEに設定され、データが圧縮に適すると示さ
れていないことを示す。エントロピしきい値は好適な実
施例では0.75に設定されるが、当業者には既知のよ
うに、他の値も必要に応じて設定される。統計からのエ
ントロピ値がエントロピしきい値以下であると、上述の
問合わせ統計からのグループ頻度カウントが新たなグル
ープ頻度カウントと比較され、両者の間の偏差が分散し
きい値より小さいかどうかが判断される。偏差は例え
ば、それぞれのグループ分布に渡る様々な文字グループ
に対する上述のクロス・エントロピ関数を含む。以前の
問合わせ統計のセットからの最大の文字頻度カウント
と、新たな統計からの最大文字頻度カウントとの間の偏
差も、分散偏差しきい値と比較される。最大文字頻度カ
ウントは、例えば8つの最大頻度文字の頻度カウントに
対応する。偏差は例えば、8つの最大頻度文字に対して
取得される上記クロス・エントロピ関数を含む。両方の
文字偏差統計が、それぞれのしきい値よりも小さいと、
問合わせフラグINTERROGATION_STABILIZEDがTRUEに設定
される。それ以外では、このフラグはFALSEに設定され
る。
【0053】次に示す擬似コードは、実際に辞書セグメ
ント選択を実行するEND_INTERROGATIONフェーズ処理を
示す(辞書セグメントがDBB、即ち辞書生成ブロック
として示される)。
【0054】 END_INTERROGATION If ENTROPY>.75(またはエントロピしきい値) then INTERROG_COMPLTフラグをオンに設定。 DBB無しに復帰(即ち圧縮拒否)。 (以降、確率P=FREQ_COUNT/BYTE_COUNT) 各X'00'及び''に対して、 If P>=run_20_threshold、then 辞書としてlength-20 run DBBを選択。 If P>=run_200_threshold_2、Then 辞書としてlength-200 run DBBを選択。 elseif P>=run_200_threshold、then サンプリングのためにlength-200 run DBBを選択。 elseif P>=run_40_threshold、then サンプリングのためにlength-40 run DBBを選択。 各"*"、"-"、"."に対して、 If P>=run_20_threshold、then 辞書としてlength-20 run DBBを選択。 If P>=run_40_threshold、then サンプリングのためにlength-40 run DBBを選択。 任意の文字(X'00'、X'40'、"*"、"-"、"."を除く)に対して、 If P>=run_20_threshold、then 辞書としてlength-20 run DBBを選択。 上で選択されない各文字に対して、 If probability_within_group>=run_20_threshold_2、then サンプリングのためにlength-20 run DBBを選択。 If numeric_group_probability>=2_digit_threshold、then サンプリングのために2-digit numeric DBBを選択。 If numeric_group_probability>=3_digit_threshold、then サンプリングのために3-digit numeric DBBを選択。 If(2つの最も高頻度の桁の組合わせ確率)>=6_digit_threshold_1、then 辞書として6-char-long-2-digit-permutation DBBを選択。 elseif 6-digit_threshold_1>(2つの最も高頻度の桁の組合わせ確率)>=6- digit_threshold_2、then サンプリングのために6-char-long-2-digit-permutation DBBを選択。 If(X'00'及びX'0C'の組合わせ確率)>=000C_threshold且つX'00'の確率> =000C_00_threshold且つX'0C'の確率>=000C_0C_threshold、then 辞書として24-char"000C"DBBを選択。 If X'00'のprobability_within_groupが最も高く、且つ (任意のX'01'乃至X'3F'のprobability_within_group)>=low_control_ threshold、then 辞書として6-character null-low-control-permutation DBBを選択。 If(Alpha_probability>=text_threshold_2)且つ (English_entropy<=English_threshold)、then サンプリングのために英語ベースDBB(即ちprefix_2_gram、suffix_2_gr am、3-gram Iの組合わせ)及び英語オプション1、2、3DBBを選択。 else If(Alpha_probability>=text_threshold_1) then 辞書として英語ベースDBB(即ちprefix_2_gram、suffix_2_gram、3-gr am Iの組合わせ)を選択。
【0055】上記擬似コードは、問合わせ統計からのエ
ントロピ値が0.75または特定の他のしきい値よりも
大きいと、INTERROG_COMPLTフラグをオンに設定する。
こうした比較的高いエントロピ値は、入力ストリングが
圧縮に適していないことを示す。INTERROGATION_STABIL
IZEDフラグがその値をFALSEに設定され、戻される。擬
似コードの残りの部分は、辞書セグメントの自動選択、
及びサンプリングのための候補セグメントの指定に関連
する。擬似コードにおいて、句"probability"は、FREQ_
COUNT文字頻度カウント値をBYTE_COUNT値で割った値を
さす。
【0056】END_INTERROGATION擬似コードの辞書選択
部分の第1のセクションは、ヌル文字に関連する。擬似
コードからヌル文字を含むのに特に適する3つの辞書セ
グメントが潜在的に選択される。辞書セグメントは、実
行識別子リストに追加されるセグメント、即ち選択セグ
メントを表す識別子を一時的にデータ・バッファに記憶
することにより選択される。サンプリング・リストも保
持される。入力ストリング内におけるヌル文字発生確率
は、run_20_threshold値に対してテストされる。発生確
率がこのしきい値よりも大きいと、対応する"length-2
0"辞書セグメントがシステム生成辞書として自動的に選
択される。擬似コードの次の部分は、ヌル文字発生確率
がrun_200_threshold値以上かどうかを示し、そうであ
る場合、対応する"length-200"辞書セグメントが自動的
に選択される。上記run-200_threshold値条件が合致せ
ず、ヌル文字発生確率が第2のrun_200_thresholdより
も小さいと、length-200辞書セグメントがサンプリング
のために指定される。この条件が合致しないと、ヌル文
字発生確率がrun_40_threshold値以上かどうかがチェッ
クされる。そうである場合、対応する"length-400"辞書
セグメントがサンプリングのために指定される。
【0057】擬似コードの次の部分は、アスタリスク、
ハイフン及びピリオド(それぞれ"*"、"-"、".")を含
む文字に関連する。これらの文字の発生がrun_20_thres
hold値以上の場合、対応する"length-20"辞書セグメン
トが、システム生成辞書として自動的に選択される。こ
れらの任意の文字の発生確率がrun_40_threshold値以上
の場合、対応する"length-40"辞書セグメントがサンプ
リングのために指定される。残りの文字については、擬
似コードの次の部分において、run_20_threshold値に対
してチェックされる。
【0058】問合わせ擬似コードの次のセクションで
は、上記コード・グループの1つ内で発生する文字の確
率がチェックされる。即ち、好適な実施例では、これら
のグループは英字大文字、英字小文字、数字、特殊印刷
文字、低位制御文字、及び他の制御文字を含むように定
義される。擬似コードは、異なる文字の組合わせ確率が
様々なしきい値に対して分析されることを示す。サンプ
リングのために選択され指定される辞書セグメントの性
質は、擬似コード内にリストされる辞書タイトルを参照
することにより、当業者には明らかであろう。当業者に
は更に、擬似コードから問合わせ統計が個々の文字の他
に、各文字グループに従い計算されることが理解されよ
う。従って、英字の発生確率が比較のために計算され、
英語辞書セグメントの選択における英語句のエントロピ
値となる。
【0059】辞書セグメントがサンプリングのために自
動的に選択されるか指定されると、下記のEND_INTERROG
ATION擬似コードの続きにより、辞書セグメントのリス
トが頻度カウントの降順でソーティングされる。ここで
辞書セグメントの頻度カウントは、入力ストリング内に
おける、その辞書セグメントに一致する文字の発生回数
に等しい。
【0060】 END_INTERROGATION(続き) DBBリストを頻度の降順に整理。 If(DBBリストが16DBBより多くを有する) then 最低頻度のDBBを廃棄し、16個だけを保持。 サンプリング・リスト上の全てのDBBを廃棄。 If(リスト内のDBBの総サイズが8Kエントリよりも大きい) then 総サイズが8Kエントリ以下になるまで、最低頻度のDBBを廃棄。 サンプリング・リスト上の全てのDBBを廃棄。 If(サンプリングのためのDBBが識別されない) then 辞書として選択されるDBBのサイズを増大。 選択DBBをグループ確率によりランク付け。 If(総DBBサイズが512エントリより小さい) then DBBリストに対して何も実行しない。 else If (総DBBサイズが辞書サイズの3/4よりも小さく、且つ最低ランク のDBBの除去の結果、次に小さな辞書サイズとなる) then リストから最低ランクのDBBを除去。 else DBBリストに対して何も実行しない。 If(サンプリングのためのDBBが識別される) then If(辞書としてのDBB+サンプリングのためのDBB)の最終辞書サイズ =辞書として選択されるDBBだけの最終辞書サイズ、且つ辞書として選択され るDBBとサンプリングのためのDBBとの総数が、16以下) then DBBをサンプリング・リストから辞書リストのDBBに移動。 else SAMPLING_NEEDEDフラグをオンに設定。 INTERROG_COMPLTフラグをオンに設定。 復帰。
【0061】ソーティング後のEND_INTERROGATION(続
き)処理の上記擬似コードは、16個の辞書セグメント
が自動選択処理から生成されることを示す。即ち、16
個の辞書セグメントよりも多くを有するシステム生成圧
縮辞書は存在しない。従って、自動的に選択された辞書
セグメントのリストが16よりも大きい場合、頻度の高
い順に16個の辞書セグメントが保持され、残りはリス
トから消去される。
【0062】上記擬似コードはまた、システム生成辞書
セグメントに最大総サイズ限界が存在することを示す。
特に、自動的に選択された辞書セグメントが8Kエント
リよりも大きな総サイズを有する場合、自動的に選択さ
れた辞書セグメントのエントリの総数が8K以下になる
まで、最低頻度の辞書セグメントが1つずつ廃棄され
る。いずれかの自動的に選択された辞書セグメントが消
去されなければならない場合、サンプリングのために識
別される全ての候補辞書セグメントも消去される。
【0063】次の擬似コード・ステップでは、サンプリ
ングのために候補辞書セグメント(DBB)が識別され
ないと、全ての自動的に選択された辞書セグメントが、
文字グループ確率によりランク付けされる。自動的に選
択された辞書セグメントの数は、所定のシステム生成固
定辞書サイズに従い、切り詰められる。特にシステム生
成辞書は512、1K、2K、4Kまたは最大8Kのエ
ントリを有することが許可される。これらのサイズ制限
は、辞書の成長を制御し、辞書の処理を容易にするため
に確立される。但し、各辞書セグメントは、任意の数の
辞書エントリを含んでよいことが理解されよう。例え
ば、特定の辞書セグメントでは20エントリ程度を含
み、また他の例では1000エントリ以上を含んだりす
る。
【0064】自動的に選択された辞書セグメントの総サ
イズが512エントリよりも小さい場合、辞書セグメン
トのリストに対して変更はされない。しかしながら、選
択された辞書セグメントの総サイズが、最小固定辞書サ
イズの3/4よりも小さく、且つ最低ランクの辞書セグ
メントを除去した結果が、次に小さな固定辞書サイズに
なる場合には、最低ランクの辞書セグメントがリストか
ら除去される。それ以外ではリストは変更されない。自
動選択された辞書セグメントが文字頻度に従い整理さ
れ、切り詰められるとサンプリング・フェーズが開始す
る。
【0065】擬似コードの次のセクションでは、任意の
候補辞書セグメント(DBB)がサンプリングのために
識別されると、全ての候補辞書セグメントがサイズ違反
無く追加されるかどうかを、最終辞書サイズをチェック
することにより判断する。即ち、自動選択辞書セグエン
トと全ての候補辞書セグメントとの組合わせの結果生成
される固定辞書サイズ(512、1K、2K、4Kまた
は8Kエントリ)が、自動選択辞書セグメントだけの辞
書サイズに等しく、且つ自動選択された辞書セグメント
及びサンプリングのために識別された辞書セグメントの
両方の総数が、16以下であるかどうかが判断され、肯
定の場合、サンプリングのために識別された全ての候補
辞書セグメントが、選択辞書セグメントのリストに追加
される。それ以外では、SAMPLING_NEEDEDフラグがオン
に設定される。INTERROG_COMPLT(問合わせ完了)フラ
グが次にオンに設定され、プロセスは復帰する。
【0066】問合わせプロセスが終了後、サンプリング
のための任意の候補辞書セグメントが識別されている
と、システムはサンプリング・フェーズを実行する。サ
ンプリング・フェーズにおいて実行されるステップ、即
ちSAモジュールの動作を表すステップが図6に示され
る。SAモジュールにより実行される最初のステップ1
14では、問合わせプロセスの完了後に、SAモジュー
ルが呼出されたかどうかを、INTERROG_COMPLTフラグを
チェックすることにより判断する。このフラグが問合わ
せの完了を示すと、処理は直接ステップ116でサンプ
リング・フェーズに移行する。サンプリング・フェーズ
は問合わせが終了し、サンプリングが必要な場合に限り
発生する。問合わせが完了していない場合には、SAモ
ジュールはステップ118で問合わせモジュールを呼出
し、復帰の際にPOST_INと呼ばれるルーチンを呼出すこ
とにより、問合わせ後処理を実行する。
【0067】問合わせ後処理の間に、問合わせが完了し
(判断ステップ120)、識別されたサンプリングDB
Bが存在せず(判断ステップ122)、且つ選択され
た"所有必須"の強要されるDBBが存在しないと(判断
ステップ124)、拒否トークンがステップ126で設
定される。このモジュールの処理は、次にステップ12
7で終了する。ステップ124に戻り、"所有必須"の選
択辞書セグメントが存在する場合、ステップ128で、
辞書識別子が"所有必須"選択辞書セグメント(DBB)
を用いて設定される。特に辞書セグメントがそれらの識
別子により整理され、識別子を連結することにより、シ
ステム生成辞書トークンが生成される。ステップ120
の問合わせ後処理チェックにおいて、問合わせがまだ完
了していないと判断されると、このモジュールの処理は
ステップ127で終了する。
【0068】サンプリングが発生すると、最初のステッ
プ116で、候補辞書セグメントを獲得する。辞書セグ
メントは初期には、問合わせプロセスの間に識別された
順序で整理される。次のステップ130では、圧縮のた
めにサンプリング入力ストリング部分(通常は問合わせ
ストリング)をデータ・バッファ内に配置する。
【0069】次のステップ132では、各候補辞書セグ
メントを用いて、サンプリング入力ストリングを圧縮す
る。ステップ134では、サンプリング・ストリングを
各候補辞書セグメントにより圧縮した結果に対して、サ
ンプリング統計が計算される。次にステップ136で、
サンプリング統計が分析され、候補辞書セグメントの安
定セットが識別されたかどうか、或いは最大量のデータ
がサンプリングされたかどうかが判断される。これら2
つのいずれかの状態の場合、サンプリング・プロセスを
終了し、ステップ138で辞書トークン決定プロセスに
移行する。
【0070】図7の流れ図は、システム生成辞書トーク
ンの決定プロセスを示す。図7の最初のステップ150
では、トークンを決定するために、SAプロセスは最初
に、自動的に選択及び識別された候補辞書セグメント
を、圧縮出力記号の昇順にソーティングする。次にステ
ップ152で、プロセスは選択辞書セグメントの辞書サ
イズが4Kバイトよりも大きい場合、全ての候補辞書セ
グメントを自動選択辞書セグメントのリストに追加す
る。なぜなら、こうした場合における最小(且つ最終)
辞書サイズは8Kでなければならず、辞書サイズ決定が
不要なことによる。次にステップ154で、プロセスは
圧縮統計を計算する。こうした統計には、組合わせ記号
削減(CSR)、組合わせ辞書エントリ数(CDE)、
組合わせ辞書サイズ(CDS)、出力記号の組合わせ数
(COS)、及び組合わせ圧縮率(CCR)が含まれ
る。各場合において、組合わせ統計の指示は全ての先行
候補辞書セグメントが、統計を生成するために圧縮辞書
に含まれると仮定した場合の累積計算を示す。
【0071】次にステップ156で、SAモジュールは
同一のCDS値を有する全ての辞書セグメントを判断
し、各等しいサイズのCDSグループ内の最後のセグメ
ントを識別する。ステップ158では、プロセスは、そ
れぞれの異なる辞書サイズ(512、1K、2K、4K
または8K)に適合する最後の辞書セグメント(整理さ
れたリスト内の先行辞書セグメントを含む)を見い出
し、その辞書における累積圧縮率(CCR)を決定す
る。システム生成辞書に追加される候補辞書を決定する
ために、プロセスはどのサイズの辞書が使用されるべき
かを決定する。この決定のために、プロセスはステップ
160で次の不等式、即ち
【数5】R1>R+K*1/R をテストする。ここで、R1は次に小さな辞書サイズの
圧縮率であり、これは圧縮率Rを提供するより大きな辞
書と比較され、Kは基準化定数である。初期R値は最も
低い圧縮率(整理リスト内の最大サイズ辞書に関連しう
る)に設定される。不等式が真の場合、圧縮率は追加の
辞書セグメントにより十分に増加され、より大きなサイ
ズが保証される。従って、より大きな辞書サイズが選択
される。初期R1値は、整理リスト内の2番目に低い圧
縮率に設定される。不等式は、特定の状況の下では、辞
書空間を節約するために特定の圧縮性能が犠牲にされる
ことを考慮する。定数Kはシステム設計者により判断さ
れ、より大きな辞書サイズが許容される以前に、圧縮が
改善されなければならない度合いを示す。好適な実施例
ではKは100に等しい。この公式を使用することによ
り、"最適"な辞書サイズが決定される。2つの有効な近
接する辞書サイズ間でこの不等式が成立しないと、Rは
R1になり、R1は次に小さな有効辞書サイズのCCR
に設定される。プロセスは、不等式が真になるか、最小
の有効辞書サイズのCCRがテストされるまで継続され
る。
【0072】ここでシステムは、最終システム生成辞書
サイズを決定するに当たり、出力圧縮記号の数と出力圧
縮サイズまたは長さの両方を考慮する。出力記号の数
は、圧縮プロセスの終了後における、元のデータ・セッ
トを表す圧縮記号の数をさす。出力長は出力圧縮記号を
含むバイト数をさす。これら2つの間の相関は、出力記
号の数が出力圧縮長と、圧縮の実行のために使用される
辞書サイズとから決定される。特に、システムは51
2、1K、2K、4K及び8Kバイトのシステム生成辞
書を許容する。これらは整数2のn乗に相当し、nはそ
れぞれ9、10、11、12及び13である。出力記号
の数は、出力長に8ビットを乗じ、nで割った値に等し
いしここでnは辞書サイズの指数である、特定の例を挙
げることにより、出力圧縮の数及び長さの両方について
考察することにする。
【0073】入力ストリングが100バイトの文字を含
み、圧縮出力が512の圧縮記号を有するシステム生成
辞書の使用により、108バイトの長さを有すると仮定
する。出力長だけを考慮すると、より大きなサイズの辞
書が必要とされるように思える。しかしながら、出力記
号の数は108*8/9=96に等しい。従って、入力
ストリングは100記号(文字)から96記号に圧縮さ
れたことになる。更に、各々が4つの記号削減(100
記号から96記号へ)を提供する5つの辞書セグメント
が存在するものと仮定する。システム生成辞書がこれら
の各々から構成される場合、各辞書は512エントリ辞
書となる。しかしながら、5つの辞書セグメントの各々
が、それ自身、40エントリ未満を有し(大いに有りう
る)、全ての5つが共に加えられると、512エントリ
辞書を形成できると仮定する。この場合、記号削減の組
合わせ総数は20(=5*4)となる。
【0074】出力長だけを考慮することは誤りに至り、
両方のパラメータを考慮することにより利益が得られる
ことが明らかである。即ち、次に大きなサイズの辞書
が、出力記号の数に関し、その大きなサイズを保証する
程に十分に大きな圧縮性能を必ずしも提供するわけでは
ない。従って、出力記号の数と出力長との比較は、最大
辞書サイズが最低の圧縮率を生成しえない事実を認識し
た上で実行される。
【0075】上述の説明から、図7のステップ162で
は、プロセスは今度は圧縮記号の数ではなく、圧縮され
た出力長にもとづき、ステップ160の不等式の判断処
理を繰返す。ステップ164では、統計の2つの結果の
セットが比較され、小さな組合わせ辞書サイズを有する
方が最終サイズとして選択される。次にステップ166
で、最終決定された自動選択辞書セグメント及びサンプ
リング選択辞書セグメントに対応するセグメント識別子
(擬似コード内でDBBと称される)が、それらの識別
子コードに従い整理される。例えば、ライブラリ内の全
ての辞書セグメントが2文字英数字コードにより識別さ
れる場合、ステップ166で、これらが英字−数字の順
に整理される。必要に応じて、選択辞書固定サイズに辞
書を充填するために、1つまたは複数の埋込み辞書セグ
メントが追加される。連結識別子(埋込み辞書セグメン
トに対する識別子も含む)は、システム生成辞書の記
憶、検索及び識別を支援する辞書トークンとして使用さ
れる。例えばシステムは2つのシステム生成辞書が同一
の場合、それらのトークンまたは連結識別子を単に比較
することにより、これらを識別することができる。最後
に、ステップ168で、最終システム生成辞書サイズが
最終辞書セグメントに従い設定され、プロセスはステッ
プ170で復帰する。
【0076】上述のように、サンプリング・プロセス
は、SAモジュールがCMモジュールによりPCモジュ
ールを介して呼ばれるとき開始される。次に示す擬似コ
ードは、図6及び図7の流れ図を実行するために、SA
モジュールにより実行されるステップを示す。
【0077】
【0078】サンプリング・モジュールに対応する上記
擬似コードでは、主モジュールが問合わせの完了のテス
トを含み、完了している場合、SAMPLING_PROCESSモジュ
ールを呼出す。即ち、問合わせ完了フラグがオンに設定
されていると、処理はサンプリングのセクションに遷移
する。それ以外では、制御は問合わせモジュールIN及
び問合わせ後モジュールPOST_INに遷移する。問合わせ
モジュール処理については既に上述した。問合わせ後モ
ジュール処理を次に示す。
【0079】 (POST_IN) If CMDS_INTERROG_COMPLT then If(必須のDBB及びサンプリングDBBが選択されない) then 拒否トークンを設定。 If CMSDS_SAMPLING_NEEDED=OFF then 必須のDBBを用いて辞書トークンを設定。 Else SAMPLING_PROCESSを呼出す。 (SAMPLING_PROCESS) If(サンプリング辞書がロードされない) then LOAD_SAMPDICTをオン。 ロードされるサンプリングDBBが無くなるまでループ。 記憶内にサンプリング辞書を生成するためにBDを呼出し、ポインタをDI CT_ADDRにパス。 If(INTERROGATIONバッファ内のデータがサンプリングされていない) then バッファ処理を開始。 Else 呼出し側からバッファを処理を開始。 サンプリング・バッファを獲得。 各サンプリング辞書に対して、 データ・バッファを圧縮。 出力記号の数及び出力長情報を制御ブロックの対応するカウンタに加算。 データ・バッファ長分SAMPLE_TOTALを増分。 サンプリング統計を分析するためにANALYZE_SAMPLEを呼出し、新たなSAMPLE _TOP_HALF値(L_TOP_HALF)を見い出す。 If((L_TOP_HALFがSAMPLE_TOP_HALFと同じ)且つ (SAMPLE_TOTAL>=GLBL_MAX_SAMPLING)) then SAMPLING_COMPLTをオンに設定。 Else SAMPLE_TOP_HALF値を新L_TOP_HALFにより置換。 If SAMPLING_COMPLT=ON then DETERMINE_TOKENを呼出す。 戻りコードを設定。
【0080】SAMPLING_PROCESS擬似コードでは、サンプ
リングのために識別された候補辞書が最初にメモリにロ
ードされる。次に、圧縮されるサンプリング入力ストリ
ングが獲得される。通常、サンプリング・プロセスにお
いて圧縮されるデータは、問合わせストリングとして使
用されるデータと同一であり、データ・バッファのサン
プリング・バッファに配置される。或いは後述のよう
に、続く処理が入力ストリングの選択ブロックをテスト
し、新たな辞書セグメント選択プロセスを保証するのに
十分な変化が発生したかどうかを判断してもよい。サン
プリング入力ストリングが獲得されると、各候補辞書セ
グメントに対して、問合わせバッファの内容が圧縮さ
れ、サンプリング・バッファに配置される。サンプリン
グ・バッファに記憶される出力の統計が次に収集され
る。こうした統計には、出力記号の数及び出力長が含ま
れる。次に、サンプル総変数が問合わせバッファ内のデ
ータの長さ分増分される。擬似コードの次の部分では、
ANALYZE_SAMPLEプロセスを呼出し、サンプリング統計を
分析し、最大の圧縮率を有する候補辞書セグメントのサ
ブセットを識別する。これについては後述される。次
に、最適辞書セグメントの新たなサブセットが、最適辞
書セグメントの以前のサブセットと比較される。辞書セ
グメントの新たな最適サブセットが、以前の前半(top
half)セグメントと同一か、またはサンプル総変数が大
域最大サンプリング値よりも大きいと、サンプリング完
了フラグがオンに設定される。サンプリング完了フラグ
がオンに設定されると、これはサンプリング辞書セグメ
ントを用いて、もはやデータが圧縮(サンプリング)さ
れないことを示す。それ以外では、以前の前半セグメン
トが、サンプリング・バッファ内において最適とランク
付けされ、識別されるセグメントにより置換される。次
にSAMPLING_PROCESSは復帰する。
【0081】擬似コードの次の部分はDETERMINE_TOKEN
処理に関連する("DBB"は辞書セグメントの1つをさ
し、辞書生成ブロックとも呼ばれる)。
【0082】DETERMINE_TOKEN A. 出力記号の数によりDBBを整理。 A1.If((DBB_POINTERに戻される全てのDBBに対
する辞書エントリの組合わせ数)>4096) then doneまで、整理済みDBBを通じてループ; If((辞書エントリ数)<(8K−辞書エントリの実行
数)) then 辞書エントリを辞書エントリの実行数に加算。 Else done=ON Exit B. ソーティングの順に各DBBの次のフィールドを
計算; a)記号削減の組合わせ数(CSR)=最初のDBB値
から現DBB値までの記号削減の合計; b)辞書エントリの組合わせ数(CDE)=最初のDB
B値から現DBB値までの辞書エントリ数の合計。整理
テーブル内の最初のDBBのCDEは、256+DBB_PO
INTERにより指し示されるDBBの辞書エントリの総数
の加算をする。 c)組合わせ辞書サイズ(CDS): CDE<=512のとき、512 512<CDE<=1024のとき、1024 1024<CDE<=2048のとき、2048 2048<CDE<=4096のとき、4096 4096<CDE<=8192のとき、8192 8192<CDEのとき、このDBB及び全ての続くD
BBは候補DBBと見なされず、ヌル値を有する。 d)出力記号の組合わせ数(COS)=入力長−CSR e)組合わせ圧縮率(CCR)=(COS*x/8)/
入力長、ここで、xは記号内ビット数であり、 CDS=512のとき、x=9 CDS=1024のとき、x=10 CDS=2048のとき、x=11 CDS=4096のとき、x=12 CDS=8192のとき、x=13。 C. 0.整理テーブルの先頭から開始。 1.同一のCDS値を有する全てのDBBに対して、こ
のグループ内の最終DBBエントリ(DBB_L)に関する
情報を用いて、次のステップを実行。特に、DBB_LのC
CR値(CCR_L)を参照。これらの値はL_CCR_TBL構造に
記憶される。 D. 比較 1.最低のCCR値を有するDBB_Lを見い出す。 2.CURRENT_CDSを、CCR_Lが全てのCCR_L値の間で最低
のCCR値を有するCDSに設定。PREV_CDSが次に低い
辞書サイズとなる。 3.LOWEST_CDSを、問合わせにより選択されたDBB
(DBB_POINTERにより指し示される)のCDSに設定。 4.CURRENT_CDSのDBB_Lから開始。 5.If CCR_L(PREV_CDS)>CCR_L(CURRENT_CDS)+K*
1/CCR_L(CURRENT_CDS) then 停止、FINAL_CDS=CURRENT_CDSに設定。 Else If PREV_CDS≠LOWEST_CDS then CURRENT_CDS=NEXT_CDS PREV_CDS=次に低いCDS; D.4に遷移。 Else FINAL_CDS=PREV_CDS E. 圧縮出力長により整理されるDBBに対して、A
乃至Dを繰返す。 F. D及びEの結果を比較し、D.3基準(FINAL_CD
S)により、好適な方を選択。 G. 選択セット内のDBB識別子(即ち最初のDBB
からDBB_L(FINAL_CDS)まで)をソーティングし、必要
に応じて埋込みを追加。 H. DICT_SIZEをFINAL_CDSに設定。
【0083】上記擬似コードは、辞書セグメントが出力
記号の数に従い、最初に整理されることを示す。次に、
全ての辞書セグメントにおける辞書エントリの組合わせ
数が4Kよりも大きいと、整理された辞書セグメントが
走査され、辞書エントリが実行辞書エントリに最大合計
値8Kバイトまで追加される。このように、プロセスは
最大合計サイズ8Kに達するまで候補辞書を追加する。
擬似コード内で"B"とラベル付けされる次のセクション
では、様々なサンプリング統計を計算する。当業者に
は、擬似コードにより示されるここでの処理が容易に理
解されるものと思われるので、詳細な説明は省略する。
【0084】擬似コード内で"C"及び"D"とラベル付け
される次のセクションは、候補辞書セグメントのサイズ
と、候補辞書セグメントの追加により得られる圧縮率の
改善とのトレードオフに関する。最初に、最後の候補辞
書セグメント(DBB_L)が識別され、その対応する組合
わせ圧縮率(CCR_L)がサンプリング・バッファ統計に
記憶される。次に比較が実行され、ここでは最低の組合
わせ圧縮率値を有するDBB_Lが識別され、現組合わせ辞
書サイズがそのCCR_L値が全てのCCR_L値の間で最低の圧
縮率を有する組合わせ辞書に設定される。従って、PREV
_CDSと呼ばれる以前のサイズ変数が、次に低い辞書サイ
ズとなる。
【0085】次に、最低の組合わせ辞書サイズ(LOWEST
_CDS)が、問合わせだけにより選択された辞書セグメン
トのサイズに設定される。比較ステップでは、以前の組
合わせ辞書サイズ(PREV_CDS)のCCR_L値が、現辞書サ
イズのCCR_L値と、基準化因子を現組合わせ辞書のCCR_L
値で割った結果との和よりも大きいと、サンプリングが
停止され、最後の組合わせ辞書サイズが現辞書サイズに
等しく設定される。それ以外では、以前の辞書サイズが
最低の組合わせ辞書サイズに等しくないと、現辞書サイ
ズが以前の辞書サイズ(PREV_CDS)に設定され、PREV_C
DS値が次に低い辞書サイズに等しく設定される。処理は
次にステップ4に戻る。それ以外では、最後の辞書サイ
ズが以前の辞書サイズに等しく設定される。
【0086】次に、以前のトークン決定ステップが、今
度は圧縮記号の数ではなく、組合わせ圧縮出力長により
整理された辞書セグメントに対して繰返される。圧縮記
号の数により整理したときと、圧縮出力長により整理し
たときの選択プロセスの比較結果が比較され、所定の選
択基準に従い、好適な方の構成が選択される。次に、"
G"とラベル付けされたステップで、辞書セグメント識
別子がソーティングされる。例えば識別子は英字順また
は表示コード順に配置される。必要に応じて最後の辞書
セグメントの終りから選択辞書の固定サイズまで、シス
テム生成辞書を充填するために埋込み辞書セグメントが
追加されてもよい。追加される埋込み辞書セグメントの
識別子は、最後の辞書トークンに追加される。最後に、
辞書サイズが最後のサイズ変数に等しく設定される。
【0087】擬似コードの次のセクションは、サンプル
辞書のロードに関する。
【0088】LOAD_SAMPDICT INからのSAMPLING_STAT_PTRにより区切られるサンプ
ル辞書のリストを通じてループする。辞書及び対応する
サンプリング統計をロードするために、辞書セグメント
制御ブロックを設定。数字辞書から開始し、テキスト辞
書へと続く。サンプリング辞書を生成するために、BD
を呼出す。
【0089】上記擬似コードから明らかなように、問合
わせプロセスからの候補辞書セグメントが、BDモジュ
ール34(図3)を繰返し呼出すことにより、1つずつ
データ構造に追加される。BDモジュールは単に識別子
に従いシステム・メモリから辞書セグメントを受信し、
受信した辞書トークンにもとづき、それらの1つまたは
複数を、HCFが利用する単一のシステム生成辞書に連
結する。
【0090】最後に、ANALYZE_SAMPLE擬似コードは、出
力圧縮長により辞書セグメントをソーティングし、次に
データ・セグメント識別子の前半部分の排他的論理和
(XOR)を取り、TOP_HALF値を形成する。
【0091】ANALYZE_SAMPLE 出力圧縮長によりDBBをソーティング。DBB識別子
の前半部分をXORし、L_TOP_HALF値を形成する。
【0092】上述のように、データ・ファイルはクロー
ズされる際に、圧縮形式で記憶されるか、外部記憶装置
に配置され、以後に検出され伸長される。例えば図2に
示されるシステムでは、アクセス・メソッドがアプリケ
ーションを通じて生成されたデータを記憶するユーザ要
求に対して、対応するデータがオープン状態か、即ちデ
ータ・ファイルが現在伸長され、更新のために使用可能
であるか、或いはオペレーティング・システムによる検
索を要求するクローズ状態かを判断することにより応答
する。図8は検索プロセスを示す流れ図である。
【0093】図8の最初のステップ202で、ユーザは
コンピュータ・システム・アクセス・メソッドを用い、
外部記憶装置に配置されるデータ・ファイルをオープン
する。次のステップ204で、アクセス・メソッドはオ
ペレーティング・システムにより保持されるあらゆるデ
ータ・ファイルに関連するデータ・カタログ・エントリ
を調査し、データ・ファイル・フォーマット及びデータ
・ファイル・ロケーションを判断する。データ・ファイ
ルがオープンされた後、ユーザがオープンされたデータ
・ファイルからデータ・ブロックを要求すると、次のス
テップ206が発生する。ステップ208でデータ・ブ
ロックが検索され、ステップ210でシステムはデータ
・ブロックが圧縮されているかどうかを判断する。シス
テムは、例えば圧縮フラグ・ビットをチェックすること
により、或いは辞書トークンがデータ・ファイルに関連
するデータ・カタログ内で指定されているかどうかを確
認することにより、これを判断する。後者の場合、トー
クンの欠如はデータ・ファイルが圧縮されていないこと
を示す。データ・ファイルが圧縮されていないと、次に
ステップ212で検索データが要求ユーザに戻される。
【0094】データが圧縮されていると、判断ステップ
214で、システムは対応する圧縮辞書が生成されてい
るかどうかを判断する。即ち、このブロックに対応する
システム生成辞書が、トークン化形式或いはその生成
(伸長)形式で存在するかが判断される。ステップ21
4の処理は、その生成が指摘されるシステム生成辞書の
トークンの比較を含む。辞書は容易に比較される。なぜ
なら、上記擬似コードで示されるように、辞書セグメン
トに関連付けられる辞書識別子がシステム生成辞書のト
ークン化の際に、所定の順序でソーティングされるから
である。従って、辞書を比較するためにアクセス・メソ
ッドはステップ214で、単にソーティングされたトー
クンを比較すればよい。ソーティングされた2つのトー
クンが同一の場合、2つの対応する辞書は同一である。
【0095】データ・ファイルが2つの同一の辞書に関
連付けられ、これらのファイルの一方に対応する辞書が
生成されると、ステップ216で、他のファイルがその
既に生成されたシステム生成辞書を使用し、圧縮データ
をその元のまたは伸長された形式に戻す。伸長されたデ
ータが次にステップ212で戻される。辞書が生成され
ておらず、まだトークン化されている場合には、ステッ
プ218で辞書が生成され、その後ステップ216で、
その辞書が圧縮データをその伸長形式に戻すために使用
される。ステップ218における辞書の生成では、シス
テム生成辞書トークンの各辞書識別子を調査し、各識別
子に対して使用可能な辞書セグメントのライブラリを構
成するセグメントの中から、対応する辞書セグメントの
コピーを検索し、これを他の同様に検索されるセグメン
トと連結する。ステップ216では、圧縮データ・ファ
イルがシステム生成辞書により伸長される。データは次
にステップ212でユーザに戻される。
【0096】このように、ユーザはデータを生成し記憶
するときに、データ圧縮または非圧縮を指定することが
でき、次にシステムがアクセス・メソッド・インタフェ
ースを用いてデータが圧縮形式かどうかを判断し、圧縮
形式の場合には、関連圧縮辞書を獲得し、データを伸長
することによりデータを検索できる。従って、システム
によりデータは、それが生成されて外部記憶装置に記憶
されるときに圧縮され、後にユーザによりアクセスされ
るとき伸長される。好適な実施例では、辞書は自動的に
トークン化され、データ・ファイルのデータ・カタログ
に記憶され、後にデータ・ファイルがオープンされると
き、検索される。圧縮辞書はデータ・カタログ内で指定
されるトークンを用いて、辞書ライブラリから容易に再
生される。
【0097】図2に示されるシステム10の動作の間、
ユーザ12またはアクセス・メソッド22は必要に応じ
て、システム生成辞書の最初の選択の後に、問合わせ及
び必要に応じてサンプリングを独立に要求できる。この
ことは、例えば圧縮のために使用されるシステム生成辞
書に変更が成されるべきかどうかを判断するために好都
合である。或いは新たなデータを追加するために、外部
データ記憶装置内のデータ・ファイルがアクセスされる
度に、アクセス・メソッドが問合わせを実行し、結果の
システム生成辞書トークンをデータ・ファイルに関連付
けられるデータ・カタログ・エントリにより指定される
辞書トークンと比較することができる。問合わせ/サン
プリングが既存のデータ・ファイルに対して実行される
度に、アクセス・メソッドが図4の流れ図に示されるス
テップをステップ52から実行する。問合わせ及びサン
プリングにおける他の全ての処理は、上述の通りであ
る。
【0098】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0099】(1)外部記憶装置に配置されるカタログ
・ベースのデータ・セットの管理において、文字バイト
・ストリングの圧縮に使用されるシステム生成辞書を形
成する方法であって、該カタログが各データ・セットの
形式及び該外部記憶装置におけるそのロケーションを識
別する情報を含み、各データ・セットがアクセス・コマ
ンドに従うまでクローズ状態を呈するとともに、該コマ
ンドに応答してオープン状態を呈するものにおいて、 a)複数の辞書セグメントを有する辞書セグメント・ラ
イブラリを提供するステップと、 b)上記外部記憶装置へのレコードの初期記憶の間に、
該レコードを走査し、該走査から文字属性及び統計(デ
ータ特性統計)を収集するステップと、 c)上記属性及び統計に従い、上記辞書セグメント・ラ
イブラリから辞書セグメントを選択するステップと、 d)上記辞書セグメントを組合わせ、システム生成辞書
を形成する組合わせステップと、を含む、方法。 (2)e)上記選択された辞書セグメントを識別するた
めの辞書トークンであって、上記システム生成辞書を表
す1つまたは複数の所定の記号を含む該トークンを選択
するステップと、 f)上記辞書トークンを上記システム・カタログ内に記
憶し、上記データ・セットがクローズされた後に上記シ
ステム生成辞書を廃棄するステップであって、該データ
・セットが再度オープンされると、該トークンが該シス
テム・カタログから検索され、該トークンが表す対応す
る選択辞書セグメントが上記辞書セグメント・ライブラ
リから検索される、ステップと、を含む、上記(1)記
載の方法。 (3)上記データ・セットが保存されるか上記外部記憶
装置から移送されるとき、上記辞書トークンが該データ
・セットの要素として含まれる、上記(2)記載の方
法。 (4)上記データ特性統計が、上記走査レコード内に見
い出される文字の発生頻度または該走査レコード内の各
文字の発生の生のカウント値を含み、該レコードを走査
し及び統計を収集する上記ステップが、走査のための第
1のレコード・ブロックを選択し、上記データ特性統計
の第1のセットを生成するステップと、上記第1のレコ
ード・ブロックとは異なる第2のレコード・ブロックを
走査のために選択し、上記データ特性統計の第2のセッ
トを生成するステップと、上記第1のセット及び上記第
2のセットの上記データ特性統計の類似の統計を比較
し、該類似の統計間の差が所定の安定化しきい値以下で
あれば、上記第2のブロックを問合わせバッファに記憶
し、そうでない場合、走査のための新たな第1のレコー
ド・ブロック及び新たな第2のレコード・ブロックを選
択し、新たなそれぞれの統計セットを生成する比較ステ
ップと、上記類似の統計間の差が上記所定の安定化しき
い値以下になるまで、或いは上記第1のレコード・ブロ
ックのサイズが所定の走査限界値に等しくなるまで、上
記選択生成及び比較ステップを繰返すステップと、を含
む、上記(1)記載の方法。 (5)上記データ特性統計が上記走査レコードのエント
ロピ関数を含み、上記比較ステップが、上記第2のブロ
ックの上記エントロピ関数を所定のエントロピしきい値
と比較するステップと、上記第2のブロックの上記エン
トロピが上記エントロピしきい値以下の場合、上記選択
生成及び比較ステップの繰返しを停止するステップと、
上記第2のレコード・ブロックを上記問合わせバッファ
に記憶するステップと、を含む、上記(4)記載の方
法。 (6)新たな上記第2のレコード・ブロックのサイズ
が、以前の上記第1のレコード・ブロックのサイズより
も大きい、上記(5)記載の方法。 (7)上記エントロピしきい値を満足することなく上記
走査限界値に達すると、上記データ・セットが圧縮に適
さないと判断する、上記(5)記載の方法。 (8)上記選択生成及び比較ステップの繰返しの間に選
択される各新たな上記第1のレコード・ブロックが、以
前に選択された上記第1及び第2のレコード・ブロック
の組合わせを含む、上記(5)記載の方法。 (9)上記辞書セグメント・ライブラリを提供する上記
ステップが、英字、数字、空白文字及び句読文字の任意
の組合わせを含む文字のテキスト圧縮に適する上記辞書
セグメントを提供するステップを含む、上記(1)記載
の方法。 (10)上記レコード走査ステップが、上記走査レコー
ド内での文字の発生を示す統計を保持するステップを含
み、上記システム生成辞書のための上記辞書セグメント
選択ステップが、上記走査レコード・ブロック内の該文
字の該統計に従い、1つまたは複数の文字の圧縮に適す
る該辞書セグメントを選択するステップを含む、上記
(9)記載の方法。 (11)上記辞書セグメント・ライブラリを提供する上
記ステップが、所定の複数文字グループからの、1つま
たは複数の文字の圧縮に適する該辞書セグメントを提供
するステップを含み、上記辞書セグメント選択ステップ
が、該辞書セグメントが特定の該文字グループからの1
つまたは複数の文字の圧縮に適し、上記特定文字グルー
プに属する上記走査レコード・ブロック内の文字の発生
が、所定選択文字しきい値を越える場合、該辞書セグメ
ントを上記システム生成辞書として選択するステップを
含む、上記(10)記載の方法。 (12)上記辞書セグメント選択ステップが、上記選択
辞書セグメントを、各辞書セグメントが適応する文字の
発生の降順にソーティングするステップと、上記選択辞
書セグメントの総サイズが所定限界サイズ以下になるま
で、文字発生が最低の辞書セグメントを廃棄するステッ
プと、を含む、上記(10)記載の方法。 (13)上記辞書セグメント選択ステップが、上記選択
辞書セグメントを、上記各辞書セグメントが適応する文
字の発生の降順にソーティングするステップと、上記選
択辞書セグメントの総数が所定限界数以下になるまで、
最低頻度の上記辞書セグメントを廃棄するステップと、
を含む、上記(10)記載の方法。 (14)上記辞書セグメント選択ステップが、1つまた
は複数の所定文字の圧縮に適する上記辞書セグメント
が、1つまたは複数の文字のテキスト圧縮に適応し、且
つ上記走査レコード・ブロック内の文字の発生が、所定
の候補しきい値を越える場合、該辞書セグメントを上記
システム生成辞書の選択候補として識別するステップ
と、上記候補辞書セグメントがデータ・セットのサンプ
リングに適用され、サンプリング統計が上記候補の圧縮
性能に関して収集されるサンプリング処理の間に、上記
候補辞書セグメントの有効性を評価するステップと、上
記サンプリング統計に従い上記候補辞書セグメントを選
択するステップと、を含む、上記(10)記載の方法。 (15)上記辞書セグメント選択ステップが、上記辞書
セグメントの総数が所定限界数に等しくなるまで、該辞
書セグメントを選択するステップを含む、上記(14)
記載の方法。 (16)上記辞書セグメント選択ステップが、上記選択
辞書セグメントの総サイズが所定サイズ限界に等しくな
るまで、該辞書セグメントを選択するステップを含む、
上記(14)記載の方法。 (17)上記所定サイズ限界数が所定の辞書固定サイズ
のセットの1つである、上記(16)記載の方法。 (18)データ・セットを、各データ・セットの形式及
びそのロケーションを識別する情報を含む対応するデー
タ・カタログと共に含むコンピュータ・システムにおい
て、圧縮辞書を形成する方法であって、該データ・セッ
トが該コンピュータ・システムにより該圧縮辞書を用い
て圧縮されるバイト・ストリングのレコードを含むもの
において、 a)上記コンピュータ・システムが上記データ・セット
を圧縮するために使用する辞書セグメントのライブラリ
を提供するステップと、 b)1つまたは複数の外部記憶装置へのデータ・セット
・レコードの初期記録の間に、1つまたは複数の該デー
タ・セット・レコードを走査し、該走査の結果として所
定のデータ特性統計を生成するステップと、 c)生成された上記データ特性統計に従い、上記辞書セ
グメント・ライブラリから上記辞書セグメントを選択す
るステップと、 d)上記選択辞書セグメントを組合わせることにより、
上記データ・セットが上記1つまたは複数の外部記憶装
置に記録されるとき、該データ・セットの残りの上記デ
ータ・レコードを圧縮するために上記コンピュータ・シ
ステムが使用するシステム生成辞書を形成する組合わせ
ステップと、を含む、方法。 (19)上記組合わせステップが、上記システム生成辞
書の上記選択辞書セグメントをトークンにより表し、上
記辞書トークンを、該システム生成辞書が形成された上
記データ・セットに対応するシステム・データ・カタロ
グ・エントリに記憶するステップを含む、上記(18)
記載の方法。 (20)上記システム生成辞書を表す上記辞書トークン
が、上記コンピュータ・システムにより上記データ・カ
タログに自動的に記憶される、上記(19)記載の方
法。 (21)上記生成されるデータ特性統計が、上記走査レ
コード内で見い出される文字の頻度分布、該走査レコー
ド内の各文字の発生カウント、及び該走査レコードのエ
ントロピ値を含み、該レコードを走査するステップが、
走査のための上記レコードの現第1ブロックを選択し、
上記データ特性統計の第1のセットを生成するステップ
と、上記レコードの上記第1のブロックとは異なる現第
2のブロックを走査のために選択し、上記データ特性統
計の第2のセットを生成するステップと、上記第1のセ
ット及び上記第2のセットの上記データ特性統計の類似
の統計を比較するステップと、上記比較ステップが上記
第1及び第2の統計セット間の統計的差が所定の安定化
しきい値以下であることを示すか、或いは上記第2のブ
ロックのサイズが所定の走査限界値に等しくなるまで、
走査のための新たな第1のレコード・ブロック及び新た
な第2のレコード・ブロックを選択し、新たなそれぞれ
のデータ特性統計セットを生成するステップと、を繰返
す安定化プロシージャを実行し、上記第2の統計セット
の上記エントロピ値が所定のエントロピしきい値以下で
あれば、上記第1のブロック及び第2のブロックの組合
わせを問合わせバッファに記憶する、上記(18)記載
の方法。 (22)上記生成されるデータ特性統計がデータ・レコ
ード・エントロピ関数を含み、上記所定の安定化しきい
値を満足せず、且つ所定のエントロピしきい値を満足せ
ずに上記走査限界値に達すると、上記データ・レコード
が圧縮に適さないことを指摘し、上記第1のブロックを
上記問合わせバッファに記憶しない、上記(21)記載
の方法。 (23)上記新たな第1ブロックが、上記現第1ブロッ
ク及び上記現第2ブロックの組合わせを含む、上記(2
1)記載の方法。 (24)上記各第2ブロックが、上記現第1ブロック及
び該現第1ブロックにサイズが等しい上記データ・セッ
トの次のブロックの組合わせを含む、上記(21)記載
の方法。 (25)上記辞書セグメント選択ステップが、上記デー
タ特性統計の文字頻度分布を含むデータに従い、上記辞
書セグメントを選択し、所定の限界サイズ以下にシステ
ム生成辞書を維持するステップを含む、上記(21)記
載の方法。 (26)上記辞書セグメント選択ステップが、上記デー
タ特性統計からの1つまたは複数の所定文字の発生カウ
ントに従い、上記辞書セグメントを選択するステップを
含む、上記(25)記載の方法。 (27)上記辞書セグメント選択ステップが、1つまた
は複数の文字グループ内の文字の発生の上記データ特性
統計カウントに従い、上記辞書セグメントを選択するス
テップを含む、上記(25)記載の方法。 (28)上記辞書セグメント選択ステップが、上記シス
テム生成辞書内において、所定限界数の選択辞書セグメ
ント以下を維持する、上記(25)記載の方法。 (29)上記辞書セグメント選択ステップが、上記選択
辞書セグメントを、上記データ特性統計からの文字発生
頻度の降順に整理するステップと、上記選択辞書セグメ
ントの総サイズが所定限界サイズ以下になるまで、最低
頻度の上記辞書セグメントを廃棄するステップと、を含
む、上記(25)記載の方法。 (30)上記所定限界サイズが所定のシステム生成辞書
固定サイズのセットから選択される、上記(29)記載
の方法。 (31)上記所定固定サイズのセットが、512、1
K、2K、4K及び8K辞書エントリを含む、上記(3
0)記載の方法。 (32)上記辞書セグメント選択ステップが、上記辞書
セグメントを上記走査レコード内の1つまたは複数の所
定文字の発生率に従い、サンプリング・プロシージャに
おける候補辞書セグメントとして識別するステップを含
む、上記(25)記載の方法。 (33)上記システム生成辞書が上記所定辞書固定サイ
ズのセットの1つを有するように指定され、上記辞書セ
グメント選択ステップが上記候補セグメントが識別され
ない場合に、上記選択辞書セグメントのサイズを加算す
るステップと、上記選択辞書セグメントを文字グループ
確率によりランク付けするステップと、最低ランクの上
記辞書セグメントを除去するステップと、を実行し、1
つまたは複数の上記候補セグメントが識別される場合、
上記所定のシステム生成辞書固定サイズが上記選択辞書
セグメントを含むのに十分であり、上記識別候補セグメ
ントが該選択辞書セグメントを含むのに十分な該所定の
システム生成辞書固定サイズに等しく、且つ該選択辞書
セグメント及び該識別候補セグメントの総数がサンプリ
ング限界数以下であれば、該識別候補辞書セグメントを
該選択辞書セグメントのセットに追加するステップを実
行する、上記(32)記載の方法。 (34)上記辞書セグメントの組合わせステップが、各
選択辞書セグメントを表す表示コード記号を含む辞書識
別子を選択するステップと、上記選択辞書セグメントを
表す上記辞書識別子を連結し、上記システム生成辞書ト
ークンを形成する連結ステップと、を含む、上記(1
8)記載の方法。 (35)上記選択辞書セグメントを表す上記辞書トーク
ンを上記システム・データ・カタログに記憶し、上記シ
ステム生成辞書を廃棄するステップを含む、上記(3
4)記載の方法。 (36)上記辞書識別子選択ステップが、上記辞書識別
子を上記辞書セグメントの上記表示コード順に順序付け
る、上記(35)記載の方法。 (37)上記選択ステップが、上記辞書識別子を圧縮出
力長及び圧縮結果の圧縮記号数に従い順序付けるステッ
プと、所望のシステム生成辞書固定サイズのセットを決
定するステップと、上記システム生成辞書内に、選択シ
ステム辞書固定サイズ以下のサイズを有するシステム生
成辞書を表す上記辞書識別子だけを含むように、特定の
該辞書識別子を廃棄するステップと、を含む、上記(3
6)記載の方法。 (38)上記識別子廃棄ステップが、上記辞書内の実際
のエントリ数が上記選択システム生成辞書固定サイズよ
り小さければ、結果のシステム生成辞書のサイズが該選
択固定サイズに等しくなるように、埋込み辞書セグメン
トを表す識別子を該システム生成辞書に追加するステッ
プを含む、上記(37)記載の方法。 (39)データ・セットをコンピュータ・システムに記
憶し検索する方法であって、該コンピュータ・システム
が各データ・セットの形式及び該コンピュータ・システ
ムにおける記憶ロケーションを識別する情報を含むデー
タ・カタログを保持し、該データ・セットがバイト・ス
トリングのレコードを含み、該データ・レコードが、ア
クセスされ得ないクローズ状態かレコード検索のための
アクセス・コマンドに従いオープン状態かを呈するもの
において、 a)上記コンピュータ・システムがデータ圧縮プロセス
において、データ圧縮用のツリー構造を生成するのに使
用する辞書セグメントのライブラリを提供するステップ
と、 b)上記レコードをそれらの記憶ロケーションへ初期記
録する間に、上記データ・セットの該レコードを走査
し、該走査レコードを表す所定のデータ特性統計を生成
するステップと、 c)生成された上記データ特性統計に従い、上記辞書セ
グメント・ライブラリから上記辞書セグメントを選択
し、上記走査レコードを該選択辞書セグメントによって
圧縮して、該走査レコード及びデータ圧縮結果に関する
圧縮統計を生成するステップと、 d)上記選択辞書セグメントを組合わせ、システム生成
辞書を形成する組合わせステップと、 e)上記データ・セットを上記システム生成辞書を用い
るデータ圧縮プロセスにより圧縮し、上記圧縮データ・
セットをそれらの記憶ロケーションに記憶するステップ
と、を含む、方法。 (40)f)上記圧縮ブロックが上記コンピュータ・シ
ステムに記憶されるとき、上記システム生成辞書により
圧縮される上記データ・セットの該ブロックの中からサ
ンプル・ブロックを選択するステップと、 g)上記選択サンプル・ブロック・データ及び上記デー
タ圧縮結果に関する圧縮統計を生成するステップと、 h)上記選択サンプル・ブロック及び上記走査レコード
からの類似の圧縮統計を比較するステップと、 i)上記比較ステップが、上記サンプル・ブロックと上
記走査レコードとの間の圧縮統計の差が所定のパラメー
タ値よりも大きいことを示すと、システム生成辞書の再
生プロセスが望ましいことを示すステップと、を含む、
上記(39)記載の方法。 (41)上記辞書セグメント・ライブラリを提供する上
記ステップが、所定の英数字列を圧縮するのに適するテ
キスト・ベースの上記辞書セグメントを提供するステッ
プを含む、上記(39)記載の方法。 (42)上記辞書セグメント・ライブラリを提供する上
記ステップが、相互に排他的な文字ストリングを圧縮す
るのに適する上記辞書セグメントを提供するステップを
含む、上記(41)記載の方法。 (43)記憶ロケーションに記録されるデータ・セット
のバイト・ストリングを圧縮するユーザ要求を受信し、
各データ・セットの形式及びその記憶ロケーションを識
別する情報を含むデータ・カタログを保持するコンピュ
ータ・システムであって、該データ・セットがデータ・
レコードを含み、該データ・セットがアクセスされ得な
いクローズ状態か、アクセス・コマンドに従いオープン
状態かを呈するものにおいて、 a)上記コンピュータ・システムがデータ圧縮プロセス
用のツリー構造を生成するために使用する辞書セグメン
トのライブラリと、 b)上記レコードの上記記憶ロケーションへの初期記録
の間に、複数の上記データ・セット・レコードの走査を
開始し、該走査レコードに関する所定のデータ特性統計
を生成する問合わせプロセッサであって、生成された該
データ特性統計に従い上記ライブラリから上記辞書セグ
メントを選択し、該選択辞書セグメントを組合わせるこ
とにより、システム生成辞書を形成する問合わせプロセ
ッサと、を含む、コンピュータ・システム。 (44)上記問合わせプロセッサがサンプリング・プロ
セスのために1つまたは複数の上記辞書セグメントを任
意選択的に指定し、 c)指定サンプル・データ・レコードを検索し、該サン
プル・レコードを上記問合わせプロセッサにより指定さ
れる上記辞書セグメントにより圧縮し、該サンプル・デ
ータ・レコード及び圧縮結果に関する圧縮統計を生成す
る、サンプリング・プロセッサを含む、上記(43)記
載のコンピュータ・システム。 (45)各新たなレコード・ブロックのサイズが現レコ
ード・ブロックのサイズよりも大きい、上記(43)記
載のコンピュータ・システム。 (46)上記問合わせプロセッサ及び上記サンプリング
・プロセッサが、上記選択辞書セグメントを該辞書セグ
メントを表す識別子で指定し、 d)上記システム生成辞書の上記辞書セグメントを表す
上記辞書識別子を受信し、該システム生成辞書を表す対
応する該辞書セグメントを、上記コンピュータ・システ
ムがデータ圧縮プロセスの逆プロセスを可能にするツリ
ー構造を生成するために使用する上記辞書セグメント・
ライブラリから検索する、辞書生成プロセッサと、 e)上記圧縮管理プロセッサから上記辞書識別子を受信
した際に、データ・セットがクローズできるように、該
辞書識別子を該データ・セットに関連する上記システム
・データ・カタログ・エントリに記憶し、該データ・セ
ットがオープンされる際に該識別子を検索するアクセス
・メソッド・プロセッサと、 f)上記問合わせプロセッサ、上記サンプリング・プロ
セッサ、上記アクセス・メソッド・プロセッサ、または
上記辞書生成プロセッサのいずれかの動作を開始するよ
うに制御するプロセス・ルータと、を含む、上記(4
4)記載のコンピュータ・システム。 (47)上記問合わせプロセッサにより生成される上記
データ特性統計が、上記走査レコード内で見い出される
文字の頻度分布、該頻度分布内の各文字の発生率及びエ
ントロピ値を含み、該問合わせプロセッサが、走査のた
めの現レコード・ブロックを選択して、上記データ特性
統計の現セットを生成し、上記現ブロックとは異なる新
たなレコード・ブロックを走査のために選択して、上記
データ特性統計の新たなセットを生成し、上記現統計セ
ットを上記新たな統計セットと比較し、上記新セットの
上記エントロピ値が所定のエントロピしきい値以下とな
り、上記走査レコード・ブロック数が所定の走査限界値
に等しくなるまで繰返す安定化プロシージャを実行する
手段を含み、安定化が達成されると、上記新ブロックを
問合わせバッファに記憶し、上記新たなデータ特性統計
セットを記憶する、上記(46)記載のコンピュータ・
システム。 (48)上記エントロピしきい値を満足することなく、
上記走査限界値に達した場合、上記問合わせプロセッサ
が上記データ・セットが圧縮に適さないことを示す、上
記(47)記載のコンピュータ・システム。 (49)上記各新たなレコード・ブロックのサイズが以
前の上記レコード・ブロックのサイズの2倍であり、該
以前のレコード・ブロックを含む、上記(48)記載の
コンピュータ・システム。 (50)上記問合わせプロセッサが、上記走査レコード
・ブロックの上記新たなデータ特性統計セットからの上
記文字頻度分布に従い、上記辞書セグメントを選択す
る、上記(47)記載のコンピュータ・システム。 (51)上記問合わせプロセッサが、上記走査レコード
・ブロック内の1つまたは複数の所定文字の発生率に従
い、上記辞書セグメントを選択する、上記(50)記載
のコンピュータ・システム。 (52)上記問合わせプロセッサが、上記走査レコード
・ブロック内の1つまたは複数の文字グループ内の文字
の発生率に従い、上記辞書セグメントを選択する、上記
(51)記載のコンピュータ・システム。 (53)上記問合わせプロセッサが、上記選択辞書セグ
メントの総数が所定限界数に等しくなるまで、上記辞書
セグメントを選択する手段を含む、上記(47)記載の
コンピュータ・システム。 (54)上記問合わせプロセッサが、上記選択辞書セグ
メントの総数が所定サイズ限界に等しくなるまで、上記
辞書セグメントを選択する手段を含む、上記(47)記
載のコンピュータ・システム。 (55)上記問合わせプロセッサが、上記選択辞書セグ
メントを、上記データ特性統計からの文字発生頻度の降
順に整理する手段と、上記選択辞書セグメントの総サイ
ズが所定サイズ限界以下になるまで、最低頻度の上記辞
書セグメントを廃棄する手段をを含む、上記(47)記
載のコンピュータ・システム。 (56)上記所定サイズ限界が所定の辞書固定サイズの
セットから選択される、上記(55)記載のコンピュー
タ・システム。 (57)上記所定の固定サイズのセットが512、1
K、2K、4K及び8Kの辞書エントリを含む、上記
(56)記載のコンピュータ・システム。 (58)上記廃棄手段が、上記辞書の実際のエントリ数
が上記選択固定サイズよりも小さいと、結果の上記シス
テム生成辞書のサイズが該選択固定サイズに等しくなる
ように、埋込み辞書セグメントを該システム生成辞書に
追加する、上記(56)記載のコンピュータ・システ
ム。 (59)上記問合わせプロセッサが、上記走査レコード
・ブロック内の1つまたは複数の所定文字の発生率に従
い、上記辞書セグメントをサンプリング・プロシージャ
における候補セグメントとして識別する手段を含む、上
記(47)記載のコンピュータ・システム。 (60)上記問合わせプロセッサが、上記候補セグメン
トが識別されない場合に、上記選択辞書セグメントのサ
イズを加算するステップと、上記選択辞書セグメントを
グループ確率によりランク付けするステップと、最低ラ
ンクの上記辞書セグメントを除去するステップと、を実
行する手段と、1つまたは複数の上記候補辞書が識別さ
れる場合に、上記所定辞書固定サイズのセットの1つが
上記選択辞書セグメントを含むのに十分であり、上記識
別候補セグメントが該選択辞書セグメントだけを含むの
に十分な該所定辞書固定サイズに等しく、且つ該選択辞
書セグメント及び該識別候補セグメントの総数が辞書セ
グメント限界数以下であれば、上記候補辞書セグメント
を該選択辞書セグメントのセットに追加するステップを
実行する手段と、を含む、上記(59)記載のコンピュ
ータ・システム。 (61)上記辞書セグメント限界数が16である、上記
(60)記載のコンピュータ・システム。 (62)上記辞書生成プロセッサが、表示コード順に順
序付けられる上記辞書セグメントの辞書識別子を含む辞
書トークンを生成する、上記(47)記載のコンピュー
タ・システム。 (63)所望の上記システム生成辞書サイズを決定する
手段と、上記辞書識別子を累積圧縮率に従い順序付ける
手段と、上記システム生成辞書内に、該システム生成辞
書サイズを上記所望のシステム生成辞書サイズ以下に維
持する上記辞書セグメントだけを含むように、該辞書セ
グメントを選択する手段と、を有するサンプリング・プ
ロセッサを含む、上記(62)記載のコンピュータ・シ
ステム。 (64)上記辞書サイズ決定手段が、上記サイズを所定
の辞書固定サイズのセットから選択する、上記(63)
記載のコンピュータ・システム。 (65)上記所定の固定サイズのセットが512、1
K、2K、4K及び8Kの辞書エントリを含む、上記
(63)記載のシステム。 (66)上記問合わせプロセッサが、 b)1)データ・セットが外部記憶装置に記録されると
きに、上記システム生成辞書により圧縮される該データ
・セットから、サンプル・ブロックを選択する手段と、 b)2)上記選択サンプル・ブロックを走査し、上記シ
ステム生成辞書を上記サンプル・ブロックに適用し、上
記サンプル・ブロック・データ及びデータ圧縮結果に関
するデータ特性統計を生成する手段と、 b)3)上記選択サンプルからの上記統計を、上記デー
タ・セットからの統計の1つと比較する手段と、を含
む、上記(47)記載のコンピュータ・システム。 (67)上記問合わせプロセッサが、 b)4)上記比較が、上記サンプルの圧縮率が上記デー
タ・セットの圧縮率よりも、再生パラメータ値を越えて
小さいことを示すと、システム生成辞書再生プロセスが
望まれることを示す手段を含む、上記(66)記載のコ
ンピュータ・システム。 (68)上記辞書セグメントが1つまたは複数のユーザ
定義辞書を含む、上記(47)記載のシステム。 (69)上記ユーザ定義辞書が英数字列を含むテキスト
・ベースの辞書を含む、上記(68)記載のシステム。 (70)データ圧縮機構及びファイル・アクセス・メソ
ッド・インタフェースを含む中央処理ユニットと、上記
中央処理ユニットと通信する1または複数のユーザ装置
と、上記ユーザにより制御され、データ・セットのバイ
ト・ストリングを生成する1または複数のアプリケーシ
ョンと、上記ファイル・アクセス・メソッド・インタフ
ェースからデータ・セットを受信する外部データ記憶装
置と、各データ・セットの形式及び上記外部装置におけ
る該データ・セットのロケーションを識別する情報を有
するデータ・カタログを含むメモリであって、該データ
・セットがバイト・ストリングのレコードを含み、該デ
ータ・セットが、アクセスされ得ないクローズ状態か、
アクセス・コマンドに応答するオープン状態かを呈す
る、メモリと、上記中央処理ユニットが上記データ圧縮
機構においてデータ圧縮用のツリー構造を生成するため
に使用する辞書セグメントのライブラリと、データ・セ
ットの上記外部記憶装置への初期記録の間に、上記レコ
ードの走査を開始し、上記辞書セグメントを選択するた
めの所定の問合わせデータ特性統計を生成し、上記選択
ブロックを組合わせてシステム生成辞書を形成するか、
サンプリング・プロセスのために該辞書セグメントを指
定する問合わせプロセッサと、指定レコード・サンプル
を検索し、上記問合わせプロセッサにより指定された上
記辞書セグメントにより上記サンプル・レコードを走査
し、所定のサンプリング統計を生成するサンプリング・
プロセッサと、を含む、コンピュータ・システム。 (71)上記問合わせプロセッサ及び上記サンプリング
・プロセッサが、上記各辞書セグメントを表す辞書識別
子により、上記選択辞書セグメントを指定し、上記シス
テム生成辞書の上記辞書セグメントを表す上記辞書識別
子を受信し、将来のアクセス・コマンドの間に使用され
る該システム生成辞書を生成するために上記データ・セ
ットがオープンされる時に、対応する該辞書セグメント
を上記ライブラリから検索する、辞書生成プロセッサ
と、上記データ・セットがクローズされる時、上記辞書
識別子を上記システム・データ・カタログに記憶し、該
データ・セットがオープンされる時、該識別子を検索す
る、アクセス・メソッド・プロセッサと、上記問合わせ
プロセッサ、上記サンプリング・プロセッサ、上記アク
セス・メソッド・プロセッサ、または上記辞書生成プロ
セッサのいずれかの動作を開始するように制御するプロ
セス・ルータと、を含む、上記(70)記載のコンピュ
ータ・システム。 (72)上記問合わせプロセッサにより生成される上記
問合わせデータ特性統計が、上記走査レコード内で見い
出される文字の頻度分布、該頻度分布内の各文字の発生
率、及び該走査レコードのエントロピ値を含み、該問合
わせプロセッサが、走査のための現レコード・ブロック
を選択して、上記問合わせ統計の現セットを生成し、上
記現ブロックとは異なる新たなレコード・ブロックを走
査のために選択して、上記問合わせ統計の新たなセット
を生成し、上記現統計セットと上記新たな統計セットの
類似の統計を比較し、上記類似の統計の差が所定の安定
化しきい値よりも小さくなるか、上記走査レコード・ブ
ロック数が所定の走査限界値に等しくなるまで繰返す安
定化プロシージャを実行する手段を含み、上記エントロ
ピ値が所定のエントロピしきい値よりも小さければ、上
記新ブロックを問合わせバッファに記憶し、上記新たな
問合わせ統計セットを上記メモリに記憶する、上記(7
1)記載のコンピュータ・システム。 (73)上記エントロピしきい値を満足することなく、
上記走査限界値に達した場合、上記問合わせプロセッサ
が上記データ・セットが圧縮に適さないことを示す、上
記(72)記載のコンピュータ・システム。 (74)上記各新たなレコード・ブロックのサイズが、
上記現レコード・ブロックのサイズよりも大きい、上記
(72)記載のコンピュータ・システム。 (75)上記各新たなレコード・ブロックが、上記現レ
コード・ブロックと、該現レコード・ブロックとサイズ
が等しい上記データ・セットの次のブロックとの組合わ
せを含む、上記(74)記載のコンピュータ・システ
ム。 (76)上記問合わせプロセッサが、上記走査レコード
・ブロックの上記新たな問合わせ統計セットからの文字
頻度分布に従い、上記辞書セグメントを選択する、上記
(72)記載のコンピュータ・システム。 (77)上記問合わせプロセッサが、上記走査レコード
・ブロック内の1つまたは複数の所定文字の発生率に従
い、上記辞書セグメントを選択する、上記(76)記載
のコンピュータ・システム。 (78)上記問合わせプロセッサが、上記走査レコード
・ブロック内の1つまたは複数の文字グループ内の文字
の発生率に従い、上記辞書セグメントを選択する、上記
(77)記載のコンピュータ・システム。 (79)上記システム生成辞書として選択される上記辞
書セグメントの総数が所定限界数に等しくなるまで、該
辞書セグメントを選択する手段を含む、上記(72)記
載のコンピュータ・システム。 (80)上記選択辞書セグメントを発生頻度の降順に整
理する手段と、上記選択辞書セグメントの総サイズが所
定サイズ限界以下になるまで、最低頻度の上記辞書セグ
メントを廃棄する手段をを含む、上記(72)記載のコ
ンピュータ・システム。 (81)上記廃棄手段により選択される上記所定サイズ
限界が所定の辞書固定サイズのセットの1つである、上
記(80)記載のコンピュータ・システム。 (82)上記所定の固定サイズのセットが512、1
K、2K、4K及び8Kの辞書エントリを含む、上記
(81)記載のコンピュータ・システム。 (83)上記廃棄手段が、上記辞書の実際のエントリ数
が上記選択固定サイズよりも小さいと、結果の上記シス
テム生成辞書のサイズが該選択固定サイズに等しくなる
ように、埋込み辞書セグメントを該システム生成辞書に
追加する、上記(82)記載のコンピュータ・システ
ム。 (84)上記問合わせプロセッサが、上記走査レコード
・ブロック内の1つまたは複数の所定文字の発生率に従
い、上記辞書セグメントをサンプリング・プロシージャ
における候補セグメントとして識別する手段を含む、上
記(72)記載のコンピュータ・システム。 (85)上記問合わせプロセッサが、上記候補セグメン
トが識別されない場合に、上記選択辞書セグメントのサ
イズを加算するステップと、上記選択辞書セグメントを
グループ確率によりランク付けするステップと、最低ラ
ンクの上記辞書セグメントを除去するステップと、を実
行する手段と、1つまたは複数の候補辞書が識別される
場合に、上記所定辞書固定サイズのセットの1つが、上
記選択辞書セグメントを含むのに十分であり、上記識別
候補セグメントが、該選択辞書セグメントだけを含むの
に十分な該所定辞書固定サイズに等しく、且つ該選択辞
書セグメント及び上記識別候補セグメントの総数が辞書
セグメント限界数以下であれば、上記候補辞書セグメン
トを該選択辞書セグメントのセットに追加するステップ
を実行する手段と、を含む、上記(83)記載のコンピ
ュータ・システム。 (86)上記辞書生成プロセッサが、表示コード順に順
序付けられる上記辞書セグメントの辞書識別子を含む辞
書トークンを生成する、上記(72)記載のコンピュー
タ・システム。 (87)上記辞書生成プロセッサが、所望の上記システ
ム生成辞書サイズを決定する手段と、上記辞書識別子を
累積圧縮率に従い順序付ける手段と、上記システム生成
辞書内に、該システム生成辞書サイズを上記所望のシス
テム生成辞書サイズ以下に維持する上記辞書セグメント
だけを含むように、該辞書セグメントを選択する手段
と、を含む、上記(86)記載のコンピュータ・システ
ム。 (88)上記辞書サイズ決定手段が、上記サイズを所定
の辞書固定サイズのセットから選択する、上記(87)
記載のコンピュータ・システム。 (89)上記所定の固定サイズのセットが512、1
K、2K、4K及び8Kの辞書エントリを含む、上記
(88)記載のコンピュータ・システム。
【0100】
【発明の効果】以上説明したように、上述のシステムに
よれば、データ圧縮のために指定されオープンされるデ
ータ・セットの一部が問合わされ、問合わされた部分の
文字発生データがデータ・セット圧縮用の辞書セグメン
トのライブラリから特殊辞書セグメントを選択するため
に使用される。選択された辞書セグメントのコピーが組
合わされて、データ・セットに関連付けられるデータ・
カタログ・エントリ内に、トークンとして記憶される1
つまたは複数の辞書識別子により表されるシステム生成
辞書が生成される。データ・セットは外部記憶装置に記
憶されるとき、このシステム生成辞書により圧縮され
る。システム生成辞書は、データ・セットがクローズさ
れるとき廃棄することもできる。その後、データ・セッ
トがオープンされるとき、辞書トークンがデータ・セッ
ト・カタログ・エントリから検索され、ライブラリから
トークン識別子により指定される辞書セグメントを獲得
し、それらを結合することによりシステム生成辞書が伸
長または再生される。結果のシステム生成辞書は、デー
タを伸長し、元のデータ・セットを提供するために使用
される。
【0101】このように、所定の圧縮辞書が実際に圧縮
されるデータに従い最大効率を得るように選択され、入
力データが受信されると、圧縮が迅速且つ効率的に実行
される。
【0102】本発明は好適な実施例に関連して述べられ
てきたが、ここでは詳細に述べられなかった本発明が適
用できるデータ圧縮システムの多くの構成が可能であ
る。
【図面の簡単な説明】
【図1】既知のZiv-Lempelデータ構造を示す図である。
【図2】本発明によるデータ圧縮及び伸長を提供するコ
ンピュータ機構のブロック図である。
【図3】図2に示される圧縮管理プロセッサのブロック
図である。
【図4】データ圧縮要求に応答して、図2のコンピュー
タ機構により実行される処理ステップの流れ図である。
【図5】図3のINモジュールにより実行される処理ス
テップの流れ図である。
【図6】図3のSAモジュールにより実行される処理ス
テップの流れ図である。
【図7】辞書トークンを決定するために、SAモジュー
ルにより実行される処理ステップの流れ図である。
【図8】図2のインタフェースにより実行される処理ス
テップの流れ図である。
【符号の説明】
10 コンピュータ・システム 12 システム・ユーザ 14 ユーザ・アプリケーション 16 外部記憶装置 18 ファイル・システム・インタフェース 19 オペレーティング・システム 20 中央処理ユニット(CPU) 22 アクセス・メソッド・プロセッサ 24 圧縮管理プロセッサ 26 圧縮辞書ライブラリ 27 システム管理データ・カタログ 28 データ圧縮装置(HCF) 29 システム・メモリ 32 "CM"圧縮モジュール 34 "BD"辞書生成モジュール 36 "SA"サンプリング・モジュール 38 "IN"問合わせモジュール 40 "PC"制御モジュール 42 データ・バッファ・メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク・エイ・ソビック アメリカ合衆国85715、アリゾナ州ツーソ ン、イースト・ビア・アマブル 6435 (72)発明者 ポン−シェン・ワン アメリカ合衆国95120、カリフォルニア州 サン・ホセ、ハンプスウッド・ウェイ 955 (72)発明者 ナンシー・イン−メイ・ヤング アメリカ合衆国95120、カリフォルニア州 サン・ホセ、カルカテラ・ドライブ 7094 (72)発明者 アーマド・ザンディ アメリカ合衆国95014、カリフォルニア州 キューパーチノ、ジョンソン・アベニュー 10791

Claims (32)

    【特許請求の範囲】
  1. 【請求項1】外部記憶装置に配置されるカタログ・ベー
    スのデータ・セットの管理において、文字バイト・スト
    リングの圧縮に使用されるシステム生成辞書を形成する
    方法であって、該カタログが各データ・セットの形式及
    び該外部記憶装置におけるそのロケーションを識別する
    情報を含み、各データ・セットがアクセス・コマンドに
    従うまでクローズ状態を呈するとともに、該コマンドに
    応答してオープン状態を呈するものにおいて、 a)複数の辞書セグメントを有する辞書セグメント・ラ
    イブラリを提供するステップと、 b)上記外部記憶装置へのレコードの初期記憶の間に、
    該レコードを走査し、該走査から文字属性及び統計(デ
    ータ特性統計)を収集するステップと、 c)上記属性及び統計に従い、上記辞書セグメント・ラ
    イブラリから辞書セグメントを選択するステップと、 d)上記辞書セグメントを組合わせ、システム生成辞書
    を形成する組合わせステップと、 を含む、方法。
  2. 【請求項2】e)上記選択された辞書セグメントを識別
    するための辞書トークンであって、上記システム生成辞
    書を表す1つまたは複数の所定の記号を含む該トークン
    を選択するステップと、 f)上記辞書トークンを上記システム・カタログ内に記
    憶し、上記データ・セットがクローズされた後に上記シ
    ステム生成辞書を廃棄するステップであって、該データ
    ・セットが再度オープンされると、該トークンが該シス
    テム・カタログから検索され、該トークンが表す対応す
    る選択辞書セグメントが上記辞書セグメント・ライブラ
    リから検索される、ステップと、 を含む、請求項1記載の方法。
  3. 【請求項3】上記データ・セットが保存されるか上記外
    部記憶装置から移送されるとき、上記辞書トークンが該
    データ・セットの要素として含まれる、請求項2記載の
    方法。
  4. 【請求項4】上記データ特性統計が、上記走査レコード
    内に見い出される文字の発生頻度または該走査レコード
    内の各文字の発生の生のカウント値を含み、該レコード
    を走査し及び統計を収集する上記ステップが、 走査のための第1のレコード・ブロックを選択し、上記
    データ特性統計の第1のセットを生成するステップと、 上記第1のレコード・ブロックとは異なる第2のレコー
    ド・ブロックを走査のために選択し、上記データ特性統
    計の第2のセットを生成するステップと、 上記第1のセット及び上記第2のセットの上記データ特
    性統計の類似の統計を比較し、該類似の統計間の差が所
    定の安定化しきい値以下であれば、上記第2のブロック
    を問合わせバッファに記憶し、そうでない場合、走査の
    ための新たな第1のレコード・ブロック及び新たな第2
    のレコード・ブロックを選択し、新たなそれぞれの統計
    セットを生成する比較ステップと、 上記類似の統計間の差が上記所定の安定化しきい値以下
    になるまで、或いは上記第1のレコード・ブロックのサ
    イズが所定の走査限界値に等しくなるまで、上記選択生
    成及び比較ステップを繰返すステップと、 を含む、請求項1記載の方法。
  5. 【請求項5】上記データ特性統計が上記走査レコードの
    エントロピ関数を含み、上記比較ステップが、 上記第2のブロックの上記エントロピ関数を所定のエン
    トロピしきい値と比較するステップと、 上記第2のブロックの上記エントロピが上記エントロピ
    しきい値以下の場合、上記選択生成及び比較ステップの
    繰返しを停止するステップと、 上記第2のレコード・ブロックを上記問合わせバッファ
    に記憶するステップと、 を含む、請求項4記載の方法。
  6. 【請求項6】新たな上記第2のレコード・ブロックのサ
    イズが、以前の上記第1のレコード・ブロックのサイズ
    よりも大きい、請求項5記載の方法。
  7. 【請求項7】上記エントロピしきい値を満足することな
    く上記走査限界値に達すると、上記データ・セットが圧
    縮に適さないと判断する、請求項5記載の方法。
  8. 【請求項8】上記選択生成及び比較ステップの繰返しの
    間に選択される各新たな上記第1のレコード・ブロック
    が、以前に選択された上記第1及び第2のレコード・ブ
    ロックの組合わせを含む、請求項5記載の方法。
  9. 【請求項9】上記辞書セグメント・ライブラリを提供す
    る上記ステップが、英字、数字、空白文字及び句読文字
    の任意の組合わせを含む文字のテキスト圧縮に適する上
    記辞書セグメントを提供するステップを含む、請求項1
    記載の方法。
  10. 【請求項10】上記レコード走査ステップが、上記走査
    レコード内での文字の発生を示す統計を保持するステッ
    プを含み、上記システム生成辞書のための上記辞書セグ
    メント選択ステップが、上記走査レコード・ブロック内
    の該文字の該統計に従い、1つまたは複数の文字の圧縮
    に適する該辞書セグメントを選択するステップを含む、
    請求項9記載の方法。
  11. 【請求項11】上記辞書セグメント・ライブラリを提供
    する上記ステップが、所定の複数文字グループからの、
    1つまたは複数の文字の圧縮に適する該辞書セグメント
    を提供するステップを含み、上記辞書セグメント選択ス
    テップが、該辞書セグメントが特定の該文字グループか
    らの1つまたは複数の文字の圧縮に適し、上記特定文字
    グループに属する上記走査レコード・ブロック内の文字
    の発生が、所定選択文字しきい値を越える場合、該辞書
    セグメントを上記システム生成辞書として選択するステ
    ップを含む、請求項10記載の方法。
  12. 【請求項12】上記辞書セグメント選択ステップが、 上記選択辞書セグメントを、各辞書セグメントが適応す
    る文字の発生の降順にソーティングするステップと、 上記選択辞書セグメントの総サイズが所定限界サイズ以
    下になるまで、文字発生が最低の辞書セグメントを廃棄
    するステップと、 を含む、請求項10記載の方法。
  13. 【請求項13】上記辞書セグメント選択ステップが、 上記選択辞書セグメントを、上記各辞書セグメントが適
    応する文字の発生の降順にソーティングするステップ
    と、 上記選択辞書セグメントの総数が所定限界数以下になる
    まで、最低頻度の上記辞書セグメントを廃棄するステッ
    プと、 を含む、請求項10記載の方法。
  14. 【請求項14】上記辞書セグメント選択ステップが、 1つまたは複数の所定文字の圧縮に適する上記辞書セグ
    メントが、1つまたは複数の文字のテキスト圧縮に適応
    し、且つ上記走査レコード・ブロック内の文字の発生
    が、所定の候補しきい値を越える場合、該辞書セグメン
    トを上記システム生成辞書の選択候補として識別するス
    テップと、 上記候補辞書セグメントがデータ・セットのサンプリン
    グに適用され、サンプリング統計が上記候補の圧縮性能
    に関して収集されるサンプリング処理の間に、上記候補
    辞書セグメントの有効性を評価するステップと、 上記サンプリング統計に従い上記候補辞書セグメントを
    選択するステップと、 を含む、請求項10記載の方法。
  15. 【請求項15】上記辞書セグメント選択ステップが、上
    記辞書セグメントの総数が所定限界数に等しくなるま
    で、該辞書セグメントを選択するステップを含む、請求
    項14記載の方法。
  16. 【請求項16】上記辞書セグメント選択ステップが、上
    記選択辞書セグメントの総サイズが所定サイズ限界に等
    しくなるまで、該辞書セグメントを選択するステップを
    含む、請求項14記載の方法。
  17. 【請求項17】上記所定サイズ限界数が所定の辞書固定
    サイズのセットの1つである、請求項16記載の方法。
  18. 【請求項18】データ・セットを、各データ・セットの
    形式及びそのロケーションを識別する情報を含む対応す
    るデータ・カタログと共に含むコンピュータ・システム
    において、圧縮辞書を形成する方法であって、該データ
    ・セットが該コンピュータ・システムにより該圧縮辞書
    を用いて圧縮されるバイト・ストリングのレコードを含
    むものにおいて、 a)上記コンピュータ・システムが上記データ・セット
    を圧縮するために使用する辞書セグメントのライブラリ
    を提供するステップと、 b)1つまたは複数の外部記憶装置へのデータ・セット
    ・レコードの初期記録の間に、1つまたは複数の該デー
    タ・セット・レコードを走査し、該走査の結果として所
    定のデータ特性統計を生成するステップと、 c)生成された上記データ特性統計に従い、上記辞書セ
    グメント・ライブラリから上記辞書セグメントを選択す
    るステップと、 d)上記選択辞書セグメントを組合わせることにより、
    上記データ・セットが上記1つまたは複数の外部記憶装
    置に記録されるとき、該データ・セットの残りの上記デ
    ータ・レコードを圧縮するために上記コンピュータ・シ
    ステムが使用するシステム生成辞書を形成する組合わせ
    ステップと、 を含む、方法。
  19. 【請求項19】上記組合わせステップが、上記システム
    生成辞書の上記選択辞書セグメントをトークンにより表
    し、上記辞書トークンを、該システム生成辞書が形成さ
    れた上記データ・セットに対応するシステム・データ・
    カタログ・エントリに記憶するステップを含む、請求項
    18記載の方法。
  20. 【請求項20】上記生成されるデータ特性統計が、上記
    走査レコード内で見い出される文字の頻度分布、該走査
    レコード内の各文字の発生カウント、及び該走査レコー
    ドのエントロピ値を含み、該レコードを走査するステッ
    プが、 走査のための上記レコードの現第1ブロックを選択し、
    上記データ特性統計の第1のセットを生成するステップ
    と、 上記レコードの上記第1のブロックとは異なる現第2の
    ブロックを走査のために選択し、上記データ特性統計の
    第2のセットを生成するステップと、 上記第1のセット及び上記第2のセットの上記データ特
    性統計の類似の統計を比較するステップと、 上記比較ステップが上記第1及び第2の統計セット間の
    統計的差が所定の安定化しきい値以下であることを示す
    か、或いは上記第2のブロックのサイズが所定の走査限
    界値に等しくなるまで、走査のための新たな第1のレコ
    ード・ブロック及び新たな第2のレコード・ブロックを
    選択し、新たなそれぞれのデータ特性統計セットを生成
    するステップと、 を繰返す安定化プロシージャを実行し、上記第2の統計
    セットの上記エントロピ値が所定のエントロピしきい値
    以下であれば、上記第1のブロック及び第2のブロック
    の組合わせを問合わせバッファに記憶する、請求項18
    記載の方法。
  21. 【請求項21】上記辞書セグメント選択ステップが、上
    記データ特性統計の文字頻度分布を含むデータに従い、
    上記辞書セグメントを選択し、所定の限界サイズ以下に
    システム生成辞書を維持するステップを含む、請求項2
    0記載の方法。
  22. 【請求項22】上記辞書セグメントの組合わせステップ
    が、 各選択辞書セグメントを表す表示コード記号を含む辞書
    識別子を選択するステップと、 上記選択辞書セグメントを表す上記辞書識別子を連結
    し、上記システム生成辞書トークンを形成する連結ステ
    ップと、 を含む、請求項18記載の方法。
  23. 【請求項23】データ・セットをコンピュータ・システ
    ムに記憶し検索する方法であって、該コンピュータ・シ
    ステムが各データ・セットの形式及び該コンピュータ・
    システムにおける記憶ロケーションを識別する情報を含
    むデータ・カタログを保持し、該データ・セットがバイ
    ト・ストリングのレコードを含み、該データ・レコード
    が、アクセスされ得ないクローズ状態かレコード検索の
    ためのアクセス・コマンドに従いオープン状態かを呈す
    るものにおいて、 a)上記コンピュータ・システムがデータ圧縮プロセス
    において、データ圧縮用のツリー構造を生成するのに使
    用する辞書セグメントのライブラリを提供するステップ
    と、 b)上記レコードをそれらの記憶ロケーションへ初期記
    録する間に、上記データ・セットの該レコードを走査
    し、該走査レコードを表す所定のデータ特性統計を生成
    するステップと、 c)生成された上記データ特性統計に従い、上記辞書セ
    グメント・ライブラリから上記辞書セグメントを選択
    し、上記走査レコードを該選択辞書セグメントによって
    圧縮して、該走査レコード及びデータ圧縮結果に関する
    圧縮統計を生成するステップと、 d)上記選択辞書セグメントを組合わせ、システム生成
    辞書を形成する組合わせステップと、 e)上記データ・セットを上記システム生成辞書を用い
    るデータ圧縮プロセスにより圧縮し、上記圧縮データ・
    セットをそれらの記憶ロケーションに記憶するステップ
    と、 を含む、方法。
  24. 【請求項24】f)上記圧縮ブロックが上記コンピュー
    タ・システムに記憶されるとき、上記システム生成辞書
    により圧縮される上記データ・セットの該ブロックの中
    からサンプル・ブロックを選択するステップと、 g)上記選択サンプル・ブロック・データ及び上記デー
    タ圧縮結果に関する圧縮統計を生成するステップと、 h)上記選択サンプル・ブロック及び上記走査レコード
    からの類似の圧縮統計を比較するステップと、 i)上記比較ステップが、上記サンプル・ブロックと上
    記走査レコードとの間の圧縮統計の差が所定のパラメー
    タ値よりも大きいことを示すと、システム生成辞書の再
    生プロセスが望ましいことを示すステップと、 を含む、請求項23記載の方法。
  25. 【請求項25】記憶ロケーションに記録されるデータ・
    セットのバイト・ストリングを圧縮するユーザ要求を受
    信し、各データ・セットの形式及びその記憶ロケーショ
    ンを識別する情報を含むデータ・カタログを保持するコ
    ンピュータ・システムであって、該データ・セットがデ
    ータ・レコードを含み、該データ・セットがアクセスさ
    れ得ないクローズ状態か、アクセス・コマンドに従いオ
    ープン状態かを呈するものにおいて、 a)上記コンピュータ・システムがデータ圧縮プロセス
    用のツリー構造を生成するために使用する辞書セグメン
    トのライブラリと、 b)上記レコードの上記記憶ロケーションへの初期記録
    の間に、複数の上記データ・セット・レコードの走査を
    開始し、該走査レコードに関する所定のデータ特性統計
    を生成する問合わせプロセッサであって、生成された該
    データ特性統計に従い上記ライブラリから上記辞書セグ
    メントを選択し、該選択辞書セグメントを組合わせるこ
    とにより、システム生成辞書を形成する問合わせプロセ
    ッサと、 を含む、コンピュータ・システム。
  26. 【請求項26】上記問合わせプロセッサがサンプリング
    ・プロセスのために1つまたは複数の上記辞書セグメン
    トを任意選択的に指定し、 c)指定サンプル・データ・レコードを検索し、該サン
    プル・レコードを上記問合わせプロセッサにより指定さ
    れる上記辞書セグメントにより圧縮し、該サンプル・デ
    ータ・レコード及び圧縮結果に関する圧縮統計を生成す
    る、サンプリング・プロセッサを含む、請求項25記載
    のコンピュータ・システム。
  27. 【請求項27】各新たなレコード・ブロックのサイズが
    現レコード・ブロックのサイズよりも大きい、請求項2
    5記載のコンピュータ・システム。
  28. 【請求項28】上記問合わせプロセッサ及び上記サンプ
    リング・プロセッサが、上記選択辞書セグメントを該辞
    書セグメントを表す識別子で指定し、 d)上記システム生成辞書の上記辞書セグメントを表す
    上記辞書識別子を受信し、該システム生成辞書を表す対
    応する該辞書セグメントを、上記コンピュータ・システ
    ムがデータ圧縮プロセスの逆プロセスを可能にするツリ
    ー構造を生成するために使用する上記辞書セグメント・
    ライブラリから検索する、辞書生成プロセッサと、 e)上記圧縮管理プロセッサから上記辞書識別子を受信
    した際に、データ・セットがクローズできるように、該
    辞書識別子を該データ・セットに関連する上記システム
    ・データ・カタログ・エントリに記憶し、該データ・セ
    ットがオープンされる際に該識別子を検索するアクセス
    ・メソッド・プロセッサと、 f)上記問合わせプロセッサ、上記サンプリング・プロ
    セッサ、上記アクセス・メソッド・プロセッサ、または
    上記辞書生成プロセッサのいずれかの動作を開始するよ
    うに制御するプロセス・ルータと、 を含む、請求項26記載のコンピュータ・システム。
  29. 【請求項29】上記問合わせプロセッサにより生成され
    る上記データ特性統計が、上記走査レコード内で見い出
    される文字の頻度分布、該頻度分布内の各文字の発生率
    及びエントロピ値を含み、該問合わせプロセッサが、 走査のための現レコード・ブロックを選択して、上記デ
    ータ特性統計の現セットを生成し、 上記現ブロックとは異なる新たなレコード・ブロックを
    走査のために選択して、上記データ特性統計の新たなセ
    ットを生成し、 上記現統計セットを上記新たな統計セットと比較し、 上記新セットの上記エントロピ値が所定のエントロピし
    きい値以下となり、上記走査レコード・ブロック数が所
    定の走査限界値に等しくなるまで繰返す安定化プロシー
    ジャを実行する手段を含み、安定化が達成されると、上
    記新ブロックを問合わせバッファに記憶し、上記新たな
    データ特性統計セットを記憶する、 請求項28記載のコンピュータ・システム。
  30. 【請求項30】データ圧縮機構及びファイル・アクセス
    ・メソッド・インタフェースを含む中央処理ユニット
    と、 上記中央処理ユニットと通信する1または複数のユーザ
    装置と、 上記ユーザにより制御され、データ・セットのバイト・
    ストリングを生成する1または複数のアプリケーション
    と、 上記ファイル・アクセス・メソッド・インタフェースか
    らデータ・セットを受信する外部データ記憶装置と、 各データ・セットの形式及び上記外部装置における該デ
    ータ・セットのロケーションを識別する情報を有するデ
    ータ・カタログを含むメモリであって、該データ・セッ
    トがバイト・ストリングのレコードを含み、該データ・
    セットが、アクセスされ得ないクローズ状態か、アクセ
    ス・コマンドに応答するオープン状態かを呈する、メモ
    リと、 上記中央処理ユニットが上記データ圧縮機構においてデ
    ータ圧縮用のツリー構造を生成するために使用する辞書
    セグメントのライブラリと、 データ・セットの上記外部記憶装置への初期記録の間
    に、上記レコードの走査を開始し、上記辞書セグメント
    を選択するための所定の問合わせデータ特性統計を生成
    し、上記選択ブロックを組合わせてシステム生成辞書を
    形成するか、サンプリング・プロセスのために該辞書セ
    グメントを指定する問合わせプロセッサと、 指定レコード・サンプルを検索し、上記問合わせプロセ
    ッサにより指定された上記辞書セグメントにより上記サ
    ンプル・レコードを走査し、所定のサンプリング統計を
    生成するサンプリング・プロセッサと、 を含む、コンピュータ・システム。
  31. 【請求項31】上記問合わせプロセッサ及び上記サンプ
    リング・プロセッサが、上記各辞書セグメントを表す辞
    書識別子により、上記選択辞書セグメントを指定し、 上記システム生成辞書の上記辞書セグメントを表す上記
    辞書識別子を受信し、将来のアクセス・コマンドの間に
    使用される該システム生成辞書を生成するために上記デ
    ータ・セットがオープンされる時に、対応する該辞書セ
    グメントを上記ライブラリから検索する、辞書生成プロ
    セッサと、 上記データ・セットがクローズされる時、上記辞書識別
    子を上記システム・データ・カタログに記憶し、該デー
    タ・セットがオープンされる時、該識別子を検索する、
    アクセス・メソッド・プロセッサと、 上記問合わせプロセッサ、上記サンプリング・プロセッ
    サ、上記アクセス・メソッド・プロセッサ、または上記
    辞書生成プロセッサのいずれかの動作を開始するように
    制御するプロセス・ルータと、 を含む、請求項30記載のコンピュータ・システム。
  32. 【請求項32】上記問合わせプロセッサにより生成され
    る上記問合わせデータ特性統計が、上記走査レコード内
    で見い出される文字の頻度分布、該頻度分布内の各文字
    の発生率、及び該走査レコードのエントロピ値を含み、
    該問合わせプロセッサが、 走査のための現レコード・ブロックを選択して、上記問
    合わせ統計の現セットを生成し、 上記現ブロックとは異なる新たなレコード・ブロックを
    走査のために選択して、上記問合わせ統計の新たなセッ
    トを生成し、 上記現統計セットと上記新たな統計セットの類似の統計
    を比較し、 上記類似の統計の差が所定の安定化しきい値よりも小さ
    くなるか、上記走査レコード・ブロック数が所定の走査
    限界値に等しくなるまで繰返す安定化プロシージャを実
    行する手段を含み、上記エントロピ値が所定のエントロ
    ピしきい値よりも小さければ、上記新ブロックを問合わ
    せバッファに記憶し、上記新たな問合わせ統計セットを
    上記メモリに記憶する、請求項31記載のコンピュータ
    ・システム。
JP16765195A 1994-07-28 1995-07-03 システム生成辞書を用いたデータ圧縮のための方法及びシステム Expired - Fee Related JP3149337B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US281717 1994-07-28
US08/281,717 US5561421A (en) 1994-07-28 1994-07-28 Access method data compression with system-built generic dictionaries

Publications (2)

Publication Number Publication Date
JPH0855008A true JPH0855008A (ja) 1996-02-27
JP3149337B2 JP3149337B2 (ja) 2001-03-26

Family

ID=23078490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16765195A Expired - Fee Related JP3149337B2 (ja) 1994-07-28 1995-07-03 システム生成辞書を用いたデータ圧縮のための方法及びシステム

Country Status (2)

Country Link
US (1) US5561421A (ja)
JP (1) JP3149337B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0970419A1 (en) * 1996-08-06 2000-01-12 Jeffrey C. Reynar A lempel-ziv data compression technique utilizing a dicionary pre-filled with fequent letter combinations, words and/or phrases
JP2006505217A (ja) * 2002-10-30 2006-02-09 リバーベッド テクノロジー インコーポレーティッド 階層セグメント表現を含む記憶および伝送時のデータ圧縮に関するコンテント・ベースのセグメント化方式
US9043307B2 (en) * 2004-01-15 2015-05-26 International Business Machines Corporation Generating statistics on text pattern matching predicates for access planning
CN114676102A (zh) * 2022-03-10 2022-06-28 中国船舶重工集团公司第七一一研究所 数据库控制方法及控制系统
CN118331515A (zh) * 2024-06-17 2024-07-12 北京国旺盛源智能终端科技有限公司 基于数字化营销的资产数据管理方法

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778371A (en) * 1994-09-13 1998-07-07 Kabushiki Kaisha Toshiba Code string processing system and method using intervals
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6460036B1 (en) 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
US5729228A (en) * 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
US5815096A (en) * 1995-09-13 1998-09-29 Bmc Software, Inc. Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
GB2305746B (en) * 1995-09-27 2000-03-29 Canon Res Ct Europe Ltd Data compression apparatus
GB2310055A (en) * 1996-02-08 1997-08-13 Ibm Compression of structured data
US5999949A (en) * 1997-03-14 1999-12-07 Crandall; Gary E. Text file compression system utilizing word terminators
US5983223A (en) * 1997-05-06 1999-11-09 Novell, Inc. Method and apparatus for determining a longest matching prefix from a dictionary of prefixes
US7898442B1 (en) 1997-05-30 2011-03-01 International Business Machines Corporation On-line data compression analysis and regulation
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6581052B1 (en) * 1998-05-14 2003-06-17 Microsoft Corporation Test generator for database management systems
BR9906586A (pt) * 1998-07-14 2000-09-26 Motorola Inc Sistema de envio de mensagens de texto cabeçalho reduzido
US6757647B1 (en) * 1998-07-30 2004-06-29 International Business Machines Corporation Method for encoding regular expressions in a lexigon
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6535886B1 (en) * 1999-10-18 2003-03-18 Sony Corporation Method to compress linguistic structures
US6262675B1 (en) 1999-12-21 2001-07-17 International Business Machines Corporation Method of compressing data with an alphabet
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US6898605B2 (en) * 2000-09-11 2005-05-24 Snap-On Incorporated Textual data storage system and method
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US6657564B2 (en) * 2001-12-13 2003-12-02 International Business Machines Corporation Method and apparatus for compressing data in which dictionary sizes are reduced
US7039394B2 (en) * 2003-11-25 2006-05-02 Good Technology, Inc. Communication system and method for compressing information sent by a communication device to a target portable communication device
US7188118B2 (en) * 2003-11-26 2007-03-06 Veritas Operating Corporation System and method for detecting file content similarity within a file system
US6816093B1 (en) 2003-12-03 2004-11-09 International Business Machines Corporation Apparatus method and system for increased digital media recording throughput
US7664763B1 (en) * 2003-12-17 2010-02-16 Symantec Operating Corporation System and method for determining whether performing a particular process on a file will be useful
US8954400B2 (en) * 2004-09-13 2015-02-10 International Business Machines Corporation Method, system and program product for managing structured data
US7584424B2 (en) * 2005-08-19 2009-09-01 Vista Print Technologies Limited Automated product layout
US7676744B2 (en) * 2005-08-19 2010-03-09 Vistaprint Technologies Limited Automated markup language layout
CN1953052B (zh) * 2005-10-20 2010-09-08 株式会社东芝 训练时长预测模型、时长预测和语音合成的方法及装置
ATE434311T1 (de) * 2005-10-27 2009-07-15 Alcatel Lucent Datensammeln von netzknoten in einem telekommunikationsnetz
US7552363B2 (en) * 2006-03-23 2009-06-23 Arm Limited Generation of trace elements within a data processing apparatus
US20070239897A1 (en) * 2006-03-29 2007-10-11 Rothman Michael A Compressing or decompressing packet communications from diverse sources
US7685459B1 (en) 2006-04-13 2010-03-23 Symantec Operating Corporation Parallel backup
US7478113B1 (en) * 2006-04-13 2009-01-13 Symantec Operating Corporation Boundaries
US8868930B2 (en) 2006-05-31 2014-10-21 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
WO2007138602A2 (en) 2006-05-31 2007-12-06 Storwize Ltd. Method and system for transformation of logical data objects for storage
US7827146B1 (en) 2007-03-30 2010-11-02 Symantec Operating Corporation Storage system
US8078454B2 (en) * 2007-09-28 2011-12-13 Microsoft Corporation Two-pass hash extraction of text strings
US20090198716A1 (en) * 2008-02-04 2009-08-06 Shawn Allen Howarth Method of building a compression dictionary during data populating operations processing
US7953881B1 (en) * 2008-06-12 2011-05-31 Juniper Networks, Inc. Network characteristic-based compression of network traffic
JP2010277440A (ja) * 2009-05-29 2010-12-09 Internatl Business Mach Corp <Ibm> プログラム実行時における文字列の処理を最適化する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム
FI20095708A (fi) * 2009-06-24 2010-12-25 Unto K Laine Hahmojen etsiminen datasekvenssistä
US9298722B2 (en) * 2009-07-16 2016-03-29 Novell, Inc. Optimal sequential (de)compression of digital data
US9438413B2 (en) * 2010-01-08 2016-09-06 Novell, Inc. Generating and merging keys for grouping and differentiating volumes of files
US8131688B2 (en) * 2009-08-26 2012-03-06 Lsi Corporation Storage system data compression enhancement
US8311964B1 (en) 2009-11-12 2012-11-13 Symantec Corporation Progressive sampling for deduplication indexing
US8473463B1 (en) 2010-03-02 2013-06-25 Symantec Corporation Method of avoiding duplicate backups in a computing system
US9292594B2 (en) * 2010-03-10 2016-03-22 Novell, Inc. Harvesting relevancy data, including dynamic relevancy agent based on underlying grouped and differentiated files
US8782734B2 (en) * 2010-03-10 2014-07-15 Novell, Inc. Semantic controls on data storage and access
US8832103B2 (en) 2010-04-13 2014-09-09 Novell, Inc. Relevancy filter for new data based on underlying files
US8370315B1 (en) 2010-05-28 2013-02-05 Symantec Corporation System and method for high performance deduplication indexing
US8983952B1 (en) 2010-07-29 2015-03-17 Symantec Corporation System and method for partitioning backup data streams in a deduplication based storage system
US8756197B1 (en) 2010-08-13 2014-06-17 Symantec Corporation Generating data set views for backup restoration
US8291170B1 (en) 2010-08-19 2012-10-16 Symantec Corporation System and method for event driven backup data storage
US8392376B2 (en) 2010-09-03 2013-03-05 Symantec Corporation System and method for scalable reference management in a deduplication based storage system
US8396841B1 (en) 2010-11-30 2013-03-12 Symantec Corporation Method and system of multi-level and multi-mode cloud-based deduplication
US8392384B1 (en) 2010-12-10 2013-03-05 Symantec Corporation Method and system of deduplication-based fingerprint index caching
US9798732B2 (en) 2011-01-06 2017-10-24 Micro Focus Software Inc. Semantic associations in data
US8732660B2 (en) 2011-02-02 2014-05-20 Novell, Inc. User input auto-completion
US8442986B2 (en) 2011-03-07 2013-05-14 Novell, Inc. Ranking importance of symbols in underlying grouped and differentiated files based on content
US9323769B2 (en) 2011-03-23 2016-04-26 Novell, Inc. Positional relationships between groups of files
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8838551B2 (en) 2011-10-21 2014-09-16 International Business Machines Corporation Multi-level database compression
US9087070B2 (en) * 2013-01-31 2015-07-21 Yahoo! Inc. System and method for applying an efficient data compression scheme to URL parameters
US10275397B2 (en) 2013-02-22 2019-04-30 Veritas Technologies Llc Deduplication storage system with efficient reference updating and space reclamation
US9575680B1 (en) 2014-08-22 2017-02-21 Veritas Technologies Llc Deduplication rehydration
US10423495B1 (en) 2014-09-08 2019-09-24 Veritas Technologies Llc Deduplication grouping
US9729168B1 (en) * 2016-07-17 2017-08-08 Infinidat Ltd. Decompression of a compressed data unit
CN107561564B (zh) * 2017-09-08 2019-08-06 广州祺智通信科技股份有限公司 一种北斗卫星信息传输的压缩实现方法
WO2019050418A1 (en) * 2017-09-11 2019-03-14 Nyriad Limited COMPRESSION OF DATA BASED ON A DICTIONARY
US10509676B1 (en) * 2018-10-29 2019-12-17 EMC IP Holding Company LLC Techniques for optimizing entropy computations
JP2022523564A (ja) 2019-03-04 2022-04-25 アイオーカレンツ, インコーポレイテッド 機械学習を使用するデータ圧縮および通信
EP3767832A1 (en) * 2019-07-15 2021-01-20 Use-256 B.V. Permutation-based coding for data storage and data transmission
US11455326B2 (en) * 2019-07-21 2022-09-27 Microsoft Technology Licensing, Llc Efficient storage and retrieval of textual data
CN114065704A (zh) * 2020-07-31 2022-02-18 伊姆西Ip控股有限责任公司 数据压缩方法、电子设备和计算机程序产品
CN116582263B (zh) * 2023-07-12 2023-10-13 深圳中天云联科技发展有限公司 一种用于企业数字化管理平台的安防系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4626829A (en) * 1985-08-19 1986-12-02 Intelligent Storage Inc. Data compression using run length encoding and statistical encoding
US4843389A (en) * 1986-12-04 1989-06-27 International Business Machines Corp. Text compression and expansion method and apparatus
US4881075A (en) * 1987-10-15 1989-11-14 Digital Equipment Corporation Method and apparatus for adaptive data compression
US4847619A (en) * 1987-10-19 1989-07-11 Hewlett-Packard Company Performance-based reset of data compression dictionary
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
EP0464191B1 (en) * 1990-01-19 1996-03-27 Hewlett-Packard Limited Compressed data access
US5087913A (en) * 1990-08-27 1992-02-11 Unisys Corporation Short-record data compression and decompression system
US5175543A (en) * 1991-09-25 1992-12-29 Hewlett-Packard Company Dictionary reset performance enhancement for data compression applications
US5467087A (en) * 1992-12-18 1995-11-14 Apple Computer, Inc. High speed lossless data compression system
US5408234A (en) * 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0970419A1 (en) * 1996-08-06 2000-01-12 Jeffrey C. Reynar A lempel-ziv data compression technique utilizing a dicionary pre-filled with fequent letter combinations, words and/or phrases
EP0970419A4 (en) * 1996-08-06 2000-05-10 Jeffrey C Reynar LEMPEL-ZIV DATA COMPRESSION TECHNIQUE USING A DICTIONARY ALREADY CONTAINING COMBINATIONS OF FREQUENT LETTERS, FREQUENT WORDS AND / OR FREQUENT LOCUTIONS
JP2006505217A (ja) * 2002-10-30 2006-02-09 リバーベッド テクノロジー インコーポレーティッド 階層セグメント表現を含む記憶および伝送時のデータ圧縮に関するコンテント・ベースのセグメント化方式
US9043307B2 (en) * 2004-01-15 2015-05-26 International Business Machines Corporation Generating statistics on text pattern matching predicates for access planning
CN114676102A (zh) * 2022-03-10 2022-06-28 中国船舶重工集团公司第七一一研究所 数据库控制方法及控制系统
CN114676102B (zh) * 2022-03-10 2024-05-03 中国船舶集团有限公司第七一一研究所 数据库控制方法及控制系统
CN118331515A (zh) * 2024-06-17 2024-07-12 北京国旺盛源智能终端科技有限公司 基于数字化营销的资产数据管理方法

Also Published As

Publication number Publication date
US5561421A (en) 1996-10-01
JP3149337B2 (ja) 2001-03-26

Similar Documents

Publication Publication Date Title
JP3149337B2 (ja) システム生成辞書を用いたデータ圧縮のための方法及びシステム
US5893102A (en) Textual database management, storage and retrieval system utilizing word-oriented, dictionary-based data compression/decompression
US8120516B2 (en) Data compression using a stream selector with edit-in-place capability for compressed data
KR101157693B1 (ko) 토큰스페이스 저장소와 함께 사용하기 위한 멀티-스테이지질의 처리 시스템 및 방법
Brisaboa et al. An efficient compression code for text databases
JP4261779B2 (ja) データ圧縮装置および方法
Zobel et al. Adding compression to a full‐text retrieval system
EP0293161B1 (en) Character processing system with spelling check function
US6959300B1 (en) Data compression method and apparatus
US8838551B2 (en) Multi-level database compression
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
US20020152219A1 (en) Data interexchange protocol
US20070220023A1 (en) Document compression system and method for use with tokenspace repository
US20090063465A1 (en) System and method for string processing and searching using a compressed permuterm index
WO1994022072A1 (en) Information processing using context-insensitive parsing
US6247015B1 (en) Method and system for compressing files utilizing a dictionary array
Zamora Automatic detection and correction of spelling errors in a large data base
US5815096A (en) Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
US20030121005A1 (en) Archiving and retrieving data objects
Sirén Compressed Full-Text Indexes for Highly Repetitive Collections.
Cannane et al. General‐purpose compression for efficient retrieval
WO2009001174A1 (en) System and method for data compression and storage allowing fast retrieval
JPH10261969A (ja) データ圧縮方法および装置
US6731229B2 (en) Method to reduce storage requirements when storing semi-redundant information in a database
Fenwick Symbol Ranking Text Compression with Shannon Recodings.

Legal Events

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