JPS63151224A - データ圧縮方法 - Google Patents

データ圧縮方法

Info

Publication number
JPS63151224A
JPS63151224A JP62232741A JP23274187A JPS63151224A JP S63151224 A JPS63151224 A JP S63151224A JP 62232741 A JP62232741 A JP 62232741A JP 23274187 A JP23274187 A JP 23274187A JP S63151224 A JPS63151224 A JP S63151224A
Authority
JP
Japan
Prior art keywords
byte
dictionary
word
text
compression
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
JP62232741A
Other languages
English (en)
Other versions
JPH026252B2 (ja
Inventor
ロナルド・ジエイ・リール
イール・アーロン・モス
ジヨン・ホイツト・レイダー
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 JPS63151224A publication Critical patent/JPS63151224A/ja
Publication of JPH026252B2 publication Critical patent/JPH026252B2/ja
Granted legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
へ〇産業上の利用分野。
B、従来技術 C1発明が解決しようとする問題点 り0問題点を解決するための手段 E、実施例 F0発明の効果 A、産業上の利用分野 この発明は、テキスト圧縮及び伸張方法に関するもので
ある。
B、従来技術 この技術分野には、さまざまな広範囲の特許及び論文が
存在する。例えば、米国特許第4545032号は、基
本的な英語の語受のための数字コードを利用した辞書ま
たはテーブル変換の基本的技術のうちの1つを教示する
。しかし、これにおいては単語が接頭部と接尾部と語幹
に分解され、辞書エントリまたはテーブル・エントりの
重みづけランキングが考慮されあるいは適用された様子
かない。また、用途分野に基づき異なるテーブルまたは
辞書の間で切換できるようにするという概念をも全く考
慮された様子がない。
米国特許第4597057号は、標準的なASCIIコ
ード・テキストが、′単語”としてアルファベット、数
字及び句読点要素に分割することができ、″単語″が接
頭部と接尾部と語幹に分割されるような圧縮技術の典型
的な例を与える。これらの接頭部、接尾部及び語幹は上
述の米国特許第4−54.5032号に類似する方法で
数字エンコーディングを利用する。
米国特許第4295124号は、数字コードを英語テキ
スト・キャラクタに適用するための、辞書またはテーブ
ル索引タイプの変換のより初期の例である。これにおい
ては、ハツシングによって第2の代表コードを生成する
ために、入力ASCIIでエンコードされたテキスト単
語が使用される。このコードは、テキスト単語の予め配
列された辞書メモリに対する比較のためのメモリ・アド
レスとして使用することができる。そして、一致が見出
されると、ハツシング・アドレスが識別子として送られ
る。もし一致が見出されないなら補助的な辞書が構築さ
れるが、単語は、最初に遭遇した時点で圧縮されずに送
られる。次にその同一の単語に遭遇したとき、両方の辞
書がチェックされ、もしその単語が第2の構築された辞
書中に見出されたなら、そのハツシング・アドレスが送
られる。この記述は有効であり有効な技術であると思わ
れるけれども、これは、テキストの利用分野に対応して
注意深く選択され得る多くの辞書の柔軟性を採用せず、
エントリを辞書に割り当てるために点数の重みづけられ
た図式を採用しているようには見えない。
米国特許第4.386416号は、上述の米国特許第4
295124号に類似するが、メモリ・ライブラリ・ア
ドレスからのコードと、ライブラリ中に見出されない単
語の異なるエンコード表現のどちらが利用されているか
を表示するエスケープ・コードを利用している。しかし
、やはりこれにおいても、辞書エントリのための点数の
重みづけ図3一 式が採用されているようには見えず、また、辞書の特定
のサブセットを識別するためにプリアンプルまたはヘッ
ダを利用する技術が、テキストの所与の圧縮において採
用されていない。
C1発明が解決しようとする問題点 上述の記述から、テキスト圧縮のための方法、技術及び
システムに関して多くの仕事がなされているけれども、
研究者や開発者は今日まで複数の拡張辞書を使用するこ
とを避けていることが明らかである。このことはおそら
く、データ記憶条件を扱うことと、辞書間の切換えの際
の複雑さによるものと思われる。さらに、エントリを辞
書に割当てる発生の重みづけ頻度の初期の研究は、本願
発明の知見とは逆に、辞書エントリの重みづけ頻度の使
用が、純粋の発生頻度はどには有利でないことを見出し
ている。さて、上述の従来技術による最善の圧縮比率は
1:4ないし1:5の範囲であるが、本願発明者らは、
エントリを重みづけした使用頻度に基づき選択して複数
の辞書を使用することにより、1:6以上で1=8程度
の圧縮比率が定型的に達成可能であることを期待し得な
い知見として見出したのである。
上述の従来技術の欠点に鑑み、本発明の目的は、辞書自
体がそのエントリを、遭遇した単語の重みづけられた使
用頻度によって配列されてなる辞書索引タイプの改善さ
れたテキスト圧縮及び伸張技術を提供することにある。
本発明の別の目的は、圧縮されるテキストの特定の使用
分野に応じて複数の辞書が採用され、圧縮のためにどの
辞書の選択がなされたかを表示するために圧縮において
プリアンプルまたはヘッダが利用されるような改善され
たテキスト圧縮及び伸張技術を提供することにある。
D1問題点を解決するための手段 本発明においては、単語のエントリが、使用される領域
の統計的研究に基づく使用ランキングの重みづけられた
頻度でランクされてなる複数の言語用途特定辞書を与え
ることによって達成される。
例えば、”docket”や11versus”や”c
ase”などの単語は、通常の英語の用途よりも法律文
書により頻度にあられれる。同様の専門的な慣用語は、
工業や、商業や、会計、医療、農業、石油化学など、ど
の専門分野でも見出される。本発明においては、テキス
ト圧縮及び伸張システムのユーザーが、使用分野に個別
に適合化された複数の辞書を構築する。このことは、ユ
ーザー環境からのサンプル・テキストにつき、各個別の
単語のキャラクタ数と、その単語の発生回数をともに計
数することを含む走査および解析技術を利用することに
よって達成される。そのような複数の辞書は、個々のユ
ーザーに対して高い程度の圧縮を達成するように構成さ
れ最大の効果を与えるように適用することができる。ま
た、圧縮テキスト中には、所与のテキスト・ソース入力
に対して圧縮を実行する際に実際に採用された適当な辞
書のユーザーの選択を表示するために、プリアンプルま
たはヘッダが構成される。ヘッダは、受は手に、伸張ル
ーチンおいて使用のためにどの辞書及び制御テーブルが
ロードされるべきかを指令するために使用される。簡単
には、単語が、単一バイト制御テーブル自体以外で見出
される場合に、各個々の単語または単語の群の圧縮され
たテキストにおけるソースを表示するために、制御テー
ブル中の単一バイト・エントリを採用することができる
。制御コード及び辞書セグメント表示子のみならず何ら
かのリストをも含む単一バイト制御テーブルから80な
いし224個の頻繁に遭遇する単語までに亘る辞書の階
層が、圧縮または伸張の検索のための最高優先度の辞書
である。第1のバイトがメモリ中の特定辞書セグメント
を表示し、第2のバイトがセグメント内のオフセットま
たはメモリ・アドレス位置を表示するような2または3
バイトのエンコードされた辞書エントリもまた採用され
る。このシステムは、ディスクまたはカセットなどの大
容量記憶と、大容量記憶機構から読み取ることによって
使用のためさまざまな制御テーブル及び辞書をアセンブ
ルすることができる通常サイズの作業用読み取り/書き
込みメモリをもつ典型的なマイクロプロセッサ・コンピ
ュータ上で実施することができる。尚、圧縮及び伸張の
ための詳細なフローチャートは後で詳細に説明する。
E、実施例 本発明の圧縮技術は、所与の媒体上により多くのデータ
を記憶することを可能ならしめ、あるいは任意の位置の
間の伝送リンクを介して短い時間でより多くのデータを
送ることを可能ならしめる。
これによって達成される圧縮比は、6ないし8の高さで
あり、伝送ヘッダ及び辞書表示子を追加する効果を考慮
に入れても全体的な圧縮比はわずかじか低下しない。デ
ータ処理部門においては、ハード・コピー文書のための
遅延は著しくコストがかかる。そのような多くの部門で
は、別の遠隔部門との間で多量の情報を共有する必要性
により通信ネットワークに莫大な投資がなされている。
ネットワークの拡大と、採用される組織に対する多くの
費用が、効率的なテキスト圧縮及び伸張方法及びシステ
ムの開発を要請する要因である。さらに、画像ディスプ
レイとデスク・トップ・コンピュータが増加してきて、
処理される情報の主要な部分は、スクリーン上に存在す
るテキスト・データである。それゆえ、採用される記憶
スペースまたは伝送媒体の量を最小化する何らかの効率
的な圧縮技術は大きな恩恵となろう。前記従来技術のと
ころで述べたように多くの圧縮技術が開発されているけ
れども、これらの技術のうちのほとんどは、1.5:1
ないし2:l程度の圧縮比をもたらすものにすぎなかっ
た。
本発明のテキスト圧縮技術は、テキストを生成し利用す
る者の基本的言語におけるある単語の長さ及び反復的発
生の程度に関与するものである。
これには多くのオプションが与えられる。それらのオプ
ションは、採用される基本的な辞書のタイプを選択する
ことによって特定の環境及び特定の文書自体に適合され
る。このとき、予め定められた既存の辞書、またはテキ
スト圧縮のために特に生成された辞書、または個々のテ
キスト自体のためにオン・ラインで生成された辞書を、
単独または組合して使用することができる。二九らの辞
書は、処理を簡単化するために、アドレスのパイ1−幅
境界上に配列されている。単一パイi〜・アドレスをも
つそれらの辞書は、高い程度の圧縮を利用するが、所与
の8ビツト・バイトには256個の異なるエントリしか
存在し得ないので長さが限定される。2バイトの圧縮単
語辞書は、それよりもはるかに多くの単語を定義するこ
とを可能ならしめる。すなわち、65536個の単語ま
たは2バイト・エントリ・アドレスが可能である。3バ
イト・アドレスに拡張すると最大16777216個の
エントリが可能となるが、これは英語で遭遇するすべて
の単語の数をはるかに超えている。また、グラフィック
・ディスプレイ及びオーディオ再生のための辞書も可能
である。というのは、これらは、グラフィックまたはオ
ーディオ装置による出力のための特定の信号の単なるデ
ィジタル表示にすぎないからである。実質的には、本発
明の方法によって、キャラクタで綴られた任意の言語を
同様に処理することができる。しかし、ここでは説明の
便宜上英語のみが使用される。
好適なテキスト圧縮技術の基本的な技法は、所与の文書
中にあられれる実際の英語の単語を、1.2または3バ
イト・アドレス・パターンで置きかえることである。尚
ここで使用される″文書〃という用語は、人間のオペレ
ータによって作成されあるいは利用されるエンコードさ
れたテキスト・データ、グラフィック・データまたはオ
ーディオ・データを定義するために使用される。このと
き、キー・ストローク入力が、ディスク・テープなどに
記録され、あるいは典型的な英語のソース・テキストと
してメモリに記憶することができる。そのようなソース
・テキストは実際はASCIIコードのアルファベット
数字キャラクタと、スペース・キャラクタと、句読点と
、大文字化、大文字小文字の切換、行送りなどの制御キ
ャラクタの列である。辞書単語エントリの割り当ては、
使用頻度と長さに従う相対的な重みづけ点数に基づく。
この相対的な重みづけられた点数は、特定の文書または
、法律、技術、医学などの特定の環境内での単語の発生
頻度及び各単語の長さに基づく。圧縮されたビット・パ
ターンをコ1.2または3バイト(8,16または24
ビツト)に限定することにより、現在利用可能なバイト
指向コンピュータ上でこれらの技術を実施することがき
わめて実現しやすくなる。
この基本的な圧縮技術は少くとも1つ、通常は複数の辞
書を利用する。最も基本的でコンパクトな辞書は256
個のエントリの単一バイト圧縮テーブルである。このテ
ーブルは、所与の圧縮においてどの辞書が採用されてい
るかを知らせる表示子をデコードするために必要な制御
パターンと、問題にしている環境において最も頻繁にあ
られれる単語と、任意の必要なパターンまたは信号を含
むように生成される。単一バイト・アドレス圧縮は明ら
かに、256個の固有の2進パターンに限定される。こ
れらのパターンのうちのいくつかは制御シーケンス、及
び所与の圧縮において採用されている個々の辞書セグメ
ントの定義のために留保しなくてはならない。単一バイ
ト圧縮テーブルまたはメモリは、このように、最高の相
対的実績(merit)をもち、256個の可能なパタ
ーンから留保制御パターンの数を引いた数にあてはめら
れる単語に限定されることになる。この技法は。
小さい文書に対して十分な利点を以て使用することがで
きる。小さい文書とは例えばわずか2〜3ページから成
るものである。
もし2バイト圧縮辞書またはメモリが構成されるなら、
そ九は最大65536個のエントリを定義することが可
能である。しかし、1つのピッ1〜は、2バイト・パタ
ーンが使用されていることを示すために留保しなくては
ならず、従って実際には32768個の辞書エントリの
みが可能である。
見方を変えると、256個の単語からなる128個のセ
グメントが可能である。しかし、多くの場合、会計士ま
たは法律家などの専門家グループで日常的に使用される
語景は数千語程度あろう。もし2バイトまたは6553
6個の可能なエントリからなる最大の基本的な辞書サイ
ズが選択されるなら、最初のバイトの少なくとも1ピッ
1−は2バイト・エンコーディング・パターンが採用さ
れているという事実を識別するために使用する必要があ
るだろう。というのは、伸張ルーチンは、圧縮されたバ
イトを2バイトまたは3バイトのどちらかで単一にクル
ープ分けする方法を知らなくてはならないからである。
こうして、最初のバイ1−については256個の可能な
バイトではなく、128個のパターンしか残されず、実
際には全体で256個のパターンからなる128個の区
分をめいめい利用できるのみである。各々の例で2バイ
ト辞書のどの256個単語セグメントが使用されている
かを表示するために]28個の8ビツト・パターンが制
御テーブル中で留保されなくてはならない。こうして、
2バイト・アドレスの最初の“バイ1へ”は、制御テー
ブルから入手されなくてはならない。このことは、単一
バイ+−制御テーブル中のもとの256個の可能なパタ
ーンのうち、制御シーケンスや高い実績の単語などに使
用できる128個のパターンを残すことになろう。
もし基本的な辞書サイズが恣意的に32768からその
半分、すなわち16384に限定されるなら、単一バイ
ト・テーブルには、制御シーケンスや高実績単語のため
に利用可能な192個のビット・パターンが残される。
もしわずか8192個のパターンからなる基本的な2バ
イト辞書サイズが選択されるなら(これはおそらく有用
な選択であろう)、224ビツト・パターンが単一バイ
ト・テーブル中で制御シーケンス、エンコード・フォー
マット表示子及び高実績単語のために残されることにな
ろう。
一般的には、256個のもとの可能なビット・パターン
のうちで単一バイト制御テーブルに残されるビット・パ
ターンの数は、採用される2または3バイト辞書中の単
語を収めるために選択される基本的な辞書サイズを25
6で割った値で、256から引いた値である。すなわち
、本発明においてデータをエンコードする方法は、直接
的なテーブル・エン1−りによるが、どのテーブルを使
用しているかを表示するために圧縮されたテキスト中に
は表示子が配置されなくてはならない。256個の可能
なエントりからなる基本的な制御テーブルは、採用し得
る2バイト辞書中の256個のエンI−り毎に、また各
3バイト辞書中の65536個のエントリ毎に1つのパ
ターンを留保していなくてはならない。これらは“辞書
セグメント″と呼ばれ、各テキスト圧縮例で採用された
各辞書の各セグメント毎に固有の識別パターンが留保さ
れる。もちろん、制御テーブルを2バイト・テーブルに
拡張することも可能であるけれども、このことは全体的
な圧縮比に否定的な影響を及ぼすことになろう。たいて
いの場合、高い圧縮比は、基本単語サイズに少ない数の
エントリを選択することによって達成することができる
。多くの部門または組織は、bずか数千の実用語常を有
するのみであろう。それゆえ、圧縮比は8192個の単
語領域(2バイト・パターン辞書の可能なサイズの17
4)を選択することによって最適化することができる。
これには、単一バイト制御テーブルとして32個の留保
ビット・パターンしか必要としない。というのは32X
256=8192だからである。ここで示した例におい
ては、単一バイト制御テーブル中でもともと利用可能な
256個のうち224個の可能なエントリが残る。この
224個のエントリは、高使用頻度の単語と、制御キャ
ラクタと、所望ならアルファベット数字キャラクタに好
都合に割当てることができる。
本発明に本質的な柔軟性を手短かに説明することにより
、所与のテキスト圧縮のために選択された可能な辞書の
複合的な集合をどのようにして伸張または圧縮解除のユ
ーザーに伝達されるかが考慮される。このことは、本発
明においては、圧縮されたテキストに対してプリアンプ
ルまたはヘッダを利用することによって達成される。
第6A及び6B図は、本発明で採用されるヘッダ・エン
コーディング・フォーマットを図式的に示すものである
。これらの図において、ラインAは、バイトOとして識
別されるヘッダの開始をあられす。ビットAAは本発明
において、使用中の単一バイト圧縮テーブルのタイプを
定義するために利用される。このとき2つのタイプが可
能である。すなわち、単一バイト・テーブル中の256
個の可能なパターンに対する割当ての予備配列集合から
なる現存するデフオールド値単−バイト圧縮テーブルが
採用されるか、または別の現存する単一バイI〜圧縮テ
ーブルが使用される予定であって、それが予め定義され
た外部記憶媒体上で見出され得る。あるいは、圧縮され
たテキスト・バイト・ストリング内に実際に単一バイト
圧縮テーブルが与えられるか、または2または3バイト
・アドレス・サイズの辞書を伝送することができる。
これら4つの可能な場合は、ビットAAの値を次のよう
にセットすることによってエンコードされる。すなわち
、もしビットAAがゼロなら、新しいヘッダがあられれ
るまで、そのヘッダに続くテキスト圧縮ストリングの残
りの部分でデフオールド単一バイト圧縮テーブルが使用
される。もしAAの値が01なら、留保された割り当て
られていない代替のテーブルが使用される。このパター
ンは、使用すべき辞書が圧縮されたテキスト中に伝送さ
れる予定であることを表示するために使用され得る。A
Aの値の10は、ディスクまたはテープなどの予定の外
部記憶媒体上でユーザーによって見出されなくてはなら
ない既存単一バイト圧縮テーブルを使用すべきであるこ
とを定義する。例を挙げると、医学の分野で、癌の専門
家に最適化された単一バイト圧縮テーブルを、所与のテ
キスト圧縮のために採用すべき場合がある。ビットAA
が11である場合は、単一バイト圧縮テーブノkが実際
に生成され、後に続く圧縮ストリング内で供給されるこ
とになっていることを示す。ラインAの残りのビットB
〜Gは、他の単語辞書のうちどのタイプが、ヘッダに続
く圧縮されたテキス1−の所与のストリームのための圧
縮ルーチン中で採用されるかを定義するための表示子と
して使用される。
例えば、本発明では、ビットBが、拡張3バイト幅アド
レス辞書のための表示子であると定義される。もしビッ
トBの値がOなら、3バイト辞書は採用されず、もしそ
れが1なら、ある定義可能な3バイト辞書が採用される
。どの3バイト辞書(それが存在するとして)が採用さ
れるかという定義は、後でヘッダ・フォーマットにおい
て扱われるが、これについては後述する。
ビットC−Gはめいめいが、ビットBと同様に使用され
る個別のビット表示子であるが、これらは別の2バイト
幅アドレス辞書の使用を示すために使用される。図示の
例では、5個の異なる2バイト幅アドレス辞書を採用す
ることが可能である。
次に、ヘッダの残りのバイトと、それらをバイトOにお
ける表示子ビットと組み合わせて使用する方法について
説明する。
バイト1は圧縮されたテキストの開始であるかまたは、
デフオールド条件制御テーブル以外の個々の制御テーブ
ルが使用されるならバイト1は制御テーブル番号として
解釈されることになる。もしバイトO中のビットAAが
00または11ならバイト1はゼロとなる。もしビット
AAが10に等しいなら、外部記憶媒体から圧縮解除シ
ステムによってアクセスされるべき特定の制御テーブル
を識別するために、8ビット幅の制御テーブル数がバイ
ト1にあられれることになる。もし、ビットAAが11
に等しいなら、パイ1−1は実際に、圧縮されたテキス
ト・ストリーム中の供給された制御テーブルの開始地点
であり、バイト1〜nが、制御テーブル・プラス102
4のパイ1〜に割当てられるべきすべての供給された制
御テーブルの長さの和である供給された制御テーブルで
ある。]024は256X4に等しく、このとき256
個−の4バイト・パターンが書かれる。4バイトの各グ
ループのバイト1は可能な256バイト・シーケンスの
長さ表示子である。4バイトの各グループ中の次の3バ
イ1へは、供給された辞書ストリング中の単語のシーケ
ンス番号である。こうして、適当な時期に、パイ1−1
〜nによって供給された制御テーブルは、先ず、すべて
の供給された単語エントリと、次に1バイト制御テ一ブ
ル配列の256バイト・アレイ内のそれらの割り当てを
含むことになる。その各割り当ては4バイトを要し、そ
のとき4バイトのグループ中の最初のバイトがエントリ
の256バイトまでのバイト長をあられし、4バイトの
グループからの次の3バイl〜が、制御テーブル定義部
分に続く辞書ストリング内に単語が供給されたときにテ
ーブル・エンI〜りに関連づけらるべき実際の単語のシ
ーケンス番号を表示する。
第6B図において、ヘッダのための3バイト辞書テーブ
ル定義セグメントであるラインBが始まる。バイトn+
1で、バイト0のビットMが0であるか1であるかに応
じて3バイト辞書定義が生じることになる。例えば、も
しバイト0のビットBがゼロであったなら、第6B図に
おけるバイトn+1及びn+2中のフィールドBA、B
B及びBCがゼロであり、すなわち詳細に定義する必要
のある3バイト辞書が採用されないので、ビットは存在
しない。しかし、もしバイト0のビットBが1に等しか
ったなら、フィールドBAは1ビット幅であり、バイト
n+1中のフィールドBBは7ビツト幅である。バイト
BBは、採用される3バイト辞書の65536単語セグ
メントの数であると解釈される。バイトn+2であるフ
ィールドBCは、どの3バイト辞書が使用されたかを表
示する番号である。フィールドBAは、フィールドBB
及びフィールドBCが必要かどうかを定義する。もしフ
ィールドBAがゼロなら、BCはゼロまたはビットがな
い。というのは、特定の3バイト辞書を定義する必要が
なく、すなわちデフオールド条件または予備配列された
3バイト辞書が使用されるからである。しかしもし、フ
ィールドBAが1にセットされているなら、フィールド
BCが、利用すべき選択された3バイト辞書の識別番号
である。
ヘッダ・フォーマットを実現する規則について説明を続
けると、バイトn+3が、場合に応じて採用されること
もある最初の可能な2バイト補助辞書のための定義区域
である。バイト0のピッI・Cは、1つのタイプの2バ
イト辞書が採用されるかどうかを決定する。もしバイ+
−0のピッI−Gが0に等しいなら、それ以」二の定義
は不要であるのでバイトn+3及びn+4中のフィール
ドCA、CB及びCCがすべて0にセットされる。しか
しもし、バイトOのビットCが1なら、フィールドCA
はビット1でありフィールドCBは幅7ビツトとなる。
ビットCAは、デフオールド2バイト辞書、または特に
定義すべき2バイト辞書のどちらが採用されているかを
決定する表示子である。
もしCAが0にセットされているなら、デフオールド条
件または予備配列2バイト辞書が使用され、通常は所与
の2バイト辞書のための特定数であるバイl” n +
 4フイールドCCは、デフオールド条件が呼び出され
ているがゆえに全く与えられる必要がない。しかしもし
、フィールドCAが1に等しいなら、フィールドCDは
、定義されている最初の2バイト辞書のために利用され
た2B6単語長セグメン1−の数であり、フィールドC
Cは、その2バイト辞書のための識別番号である。
このフォーマットまたは規約は、今しがた説明した第6
A図ラインAのバイ!−0のビットD、E、F及びGの
状況に基づきラインB、(、&Dに示すバイトn+1〜
n+12に対しても同様に続けられる。もしバイトOに
おける2バイト辞書のための可能なすべての5個の表示
子が採用されるなら、実際の圧縮されたテキストの開始
はラインDのバイトn+13まで始まらず、それはライ
ンDのバイトn+nにおいてテキストの終端があられれ
るまで中間番号のバイトに対して続くことになる。
次に、所与のヘッダにおける最初のバイトであるバイト
Oのいくつかの例について説明する。
豊企よ この場合、ヘッダのバイト0がすべて0にセットされて
いると仮定しよう。すると、第6A図及びそれに関連す
る説明を参照すると、2及び3バイト表示子ビットB−
Gのどれもlにセットされていないので、単一バイト圧
縮技術が使用されるものとして定義されている。さらに
、ビットAAが0にセットされているので、デフオール
ド単一バイト圧縮テーブルが利用され、これはデフオー
ルド・テーブルであるので、規約によって既に、受は手
またはユーザーの側の伸張プログラムのためのアドレス
空間中に存在している。このことは、受は手と送り手が
通信を介して前取て、デフオールド・テーブル値を確立
しそれらを双方のシステムに入力するように取決めてい
ることを意味する。
これは1バイ1−幅テーブルであるから、256個の可
能なエントリがある。これらのエントリのうちのあるも
のは制御シーケンスに割振られ、あるものは特殊キャラ
クタに、あるものは文字に、そしであるものは数字に、
それぞれ割振られている。
しかし、特殊なユーザー設備語索で出会う高い頻度の単
語には膨大なエントリが留保される。
制御シーケンス、特殊キャラクタ、文字または数字の実
際の数、及び高頻度の単語は、ユーザーの好みと経験に
基づきユーザーによって選択される。これらのパターン
を割当てる方法は典型的にはユーザーが、ユーザーの環
境からさまざまな代表的なテキストを走査して、遭遇す
る相対的に高頻度の単語を作業用語素中に統計的に分離
することである。これを実行するための方法は後述する
しかし、256個のパターンのうちのいくつかは、遭遇
することになる通常あられれる制御のために割振る必要
があろう。例えば、スペース・キャラクタと、アルファ
ベットの大文字小文字のすべてと、数字キャラクタは通
常別々のエントリで定義される。行の終了及び文書の終
了の制御コードはどの場合にも留保する必要があり、多
重スペース・コードは有用な追加である。カンマとスペ
ースの組み合わせ、またはピリオドとスペースの組み合
わせもまた有用な定義であり、それは、コーディング技
術などの変化を表示するための任意に採用されたエスケ
ープ・キャラクタである。また、規約によって、この特
定のバイト・パターンの発生に続くテキスト中のバイト
が、現在使用中のテーブルの代わりに使用されるべきテ
ーブル番号を示すために使用することのできるテーブル
切換表示子バイト・パターンを留保しなくてはならない
バイトOがすべてOである」二連の例では、圧縮された
テキストが圧縮されたテキスト・バイト・ストリング中
のバイト1で開始することになり、ヘッダ自体は単一バ
イトである、バイ1−〇である。
第6A及び6B図に記述されたネーミング及びフォーマ
ツ1〜規約によれば、ヘッダの最初のバイ1へであるバ
イトOは、使用された辞書の特定のアレイ及びタイプを
定義する制御バイトであり、ヘッダの残りのフォーマッ
トが、エンコードされつ27一 つあるテキストの所与の圧縮で採用された補助的辞書の
個別の特定の長さ及び識別を定義する。
豊査又 この場合は、バイト0が1と7個のOにセットされてい
ると仮定しよう。これは、第6A及び6B図において確
立された規約によれば、単一バイト圧縮技術自体が採用
されているけれども、非デフオールドあるいは補助単一
バイト定義テーブルが、外部記憶媒体上に在駐するこの
テーブルにアクセスしなくてはならない圧縮解除アルゴ
リズムによって使用されることになることを示す。この
テーブルは通常、ユーザーによって、BASTABなど
の導入選択接頭部とそれに続く、例えばヘッダ・ストリ
ング中のバイト1に含まれる数値の接尾部からなる名称
を与えられている。外部記憶媒体上の単一バイト圧縮テ
ーブルのためのネーミング規約は、例えば、デフオール
ド・テーブル値である”BASTAB、O”または、圧
縮されたテキスト・バイト・ストリング内に供給された
テーブルである”BASTAB、1”などである。
“BASTAB、n”は、外部記憶媒体上に在駐する追
加的なテーブルであり、ここでnは2と255の間の任
意の値である。圧縮解除の間に、バイトOの読み取りに
続いて、圧縮解除プログラムが外部記憶媒体上の識別さ
れた単一バイト圧縮テーブルにアクセスし、それを、プ
ロセッサの読取/書込メモリ中の圧縮解除プログラム・
アドレス空間に読み込む。
上述のように、単一バイト圧縮テーブル内のビット・パ
ターンのうちの1つは通常、テーブル切換表示子バイト
のために留保されている。これは、1つの単一バイト圧
縮テーブルから別の単一バイト圧縮テーブルへの切換を
行うために使用される。
圧縮されたバイI・・ストリング中でテーブル切換パタ
ーンに遭遇したときは何時でも、規約により次のバイト
がエンコードされ、次に利用すべきテーブルの番号を含
むものとして解釈されることになる。この新しいテーブ
ルは、次に外部記憶媒体から読み出されて、もしそれが
圧縮解除プログラム・アドレス可能メモリ空間に在駐し
ていないなら、それはそのメモリ空間に配置される。
豐介y バイl−0が11000000にセットされていると仮
定する。第6A及び6B図の記述に基づくこの規約は、
単一バイト圧縮テーブルが採用され、テキストの圧縮解
除のために使用すべき初期テーブルが、相対的バイト位
置番号3で始まる圧縮されたテキス1〜・バイト・スト
リング内に実際に送られるテーブルであることを表示す
る。ヘッダに続くテキスト・ストリング中の相対的バイ
ト位置1及び2は、供給された単一バイト圧縮テーブル
の全体の長さの2進値を含む。そのテーブルは、圧縮さ
れたバイト・ストリング内に供給され、圧縮されたバイ
ト・ストリングから抽出されて圧縮解除プログラムのア
ドレス可能メモリ空間に配置されなくてはならない。圧
縮されたテキスト・テーブルが次にバイト3で始まり、
その後に実際の圧縮されたテキストが続くことになるテ
ーブルの長さによって決定されるカウントで終了する。
場イL先 バイト0が00100000にセラ1−されていると仮
定する。このパターンは、第6A及び6B図の規約によ
れば、デフオールド制御テーブルとして定義されるタイ
プの単一バイl−圧縮テーブルと、フィールドBA中に
定義されるタイプの3バイト辞書の組合せが使用されて
いることを定義する。この場合のバイt” n + 1
はバイト1である。
というのは、ここで指定したヘッダの構成では制御テー
ブル番号または供給された制御テーブルが必要とされな
いからである。バイト1の下位7ビツトは、採用された
3バイト辞書中で利用された65536単語長セグメン
1への数(引く1)としての長さである。もし特定の3
バイト辞書が使用されバイト3が圧縮されたテキス1−
の開始点であるなら、バイト2であるフィールドBCが
3バイト辞書のための識別番号を定義し、またはフィー
ルドBA(バイト1の最高位ピッl−)が、デフオール
ド3バイト・テーブル条件を記述する0であった場合、
バイト2が圧縮されたテキストの開始31一 点となる。
記述された3バイト辞書中の単語の数は、採用された6
5536単語群の数である。7ビツトがその長さを決定
し得ると仮定すると、1ないし128個のそのような群
を決定することができよう。
それゆえ、3バイト圧縮タイプの辞書の全体の長さにお
ける単語の数は少くとも65536語であるが8388
608語以上ではない。単一バイト圧縮制御テーブルに
おいては、採用される65536語の群の数に等しい制
御パターンの数が、任意の時点で3バイト辞書のどの区
域が使用されつつあるかを識別するために留保される必
要がある。
このように、3バイト辞書中で見出された単語の出現を
エンコードするために、その識別子の最初の部分は、そ
の単語を含むことが分かっている3バイト辞書のセグメ
ントを表示する制御テーブルからの1バイト識別子とな
る。次の2バイトは、エンコードされる実際の単語が見
出される辞書のセグメント内の相対的オフセットを表示
する。
こうして、もし65536語からなる単一の群が3バイ
ト圧縮テーブル中で使用されたなら、単一バイト圧縮制
御テーブル中の単一1バイト・ビット・パターンが、3
バイト圧縮解除辞書が必要であることを圧縮解除プログ
ラムに知らせるために使用される。圧縮解除ルーチンが
圧縮されたテキスト・バイト・ストリング中で特定の単
一バイト・パターンに遭遇するとき、その後の2バイト
は、65536語3バイト辞書内のどの単語かもとのテ
キストからあられされているかを指定するために、併せ
て読まれなくてはならない。
尚ついでながら、もしそのような655 a 6語の群
の数が比較的小さいなら、現在の小型システム中のラン
ダム・アクセス・メモリの利用可能性を考慮すると、3
バイト圧縮辞書全体を圧縮解除プログラムのアドレス空
間にロードすることが可能である。65536語の各群
は典型的には1メガバイト記憶の半分よりもやや少ない
領域を占有するので、約5文字の平均単語長を仮定する
と、数メガ・バイトのアドレス空間を圧縮解除プログラ
ムに対して有効に割り振ることが、大型プロセッサ」二
で実現可能である。小型プロセッサ上では、オペレーテ
ィング・プログラムのために十分なアドレス空間を留保
するために通常そのような群を数個収める余地しかない
3バイト辞書が圧縮解除プログラムのアドレス空間中に
配置することを要望し得るよりも大きい場合、辞書は、
必要に応じて65536語セグメント中で外部記憶媒体
からアクセスされる。実際の3バイト辞書を収めるため
に必要な外部記憶空間の量を減少させるために利用し得
る技術もある。
これらの技術の多くは、IBM及びその他の会社によっ
て利用されている仮想記憶アクセス方法として知られて
いる。この技術は、何らかの外部記憶が使用されている
ときに外部記憶の必要条件を最小限に抑えるためのもの
であるが、本発明には直接関係がないので詳細な説明は
省略する。
前述したように、単一バイト圧縮テーブル内の1ビツト
・パターンが、テーブル切換表示子のために留保されな
くてはならない。もし3バイト・テーブルが採用された
なら、3バイト・テーブル切換表示子が留保されなくて
はならない。こうして、圧縮解除アルゴリズムがこの特
定のパターンに出会うとき、その後のバイトは、外部記
憶媒体上でアクセスすべき特定の3バイト辞書の名前を
含むことができる。
場合5 コノ場合は、バイトOが0010000.000010
00、OOOOO]、 O01ooooo。
10または00000001のうちの任意の値をとると
仮定する。この例では、2バイト圧縮辞書の異なる5つ
のタイプのうちのどれかが採用されている。その5つの
タイプに対する制限は随意であり、第6A図のラインA
におけるバイトOのための8ビツト・バイト・フォーマ
ットの使用に基づく。
もし、5つ以上のタイプの2バイl−辞書が必要なら、
この説明で使用されているバイl−0を、16ビツト・
フィールドないしそれ以上に拡張することができる。い
かなる場合でも、利用しうる2バイト辞書の数は、以下
に示すタイプまたは他のタイプのうちの1つまたはそれ
以上である。すなわち、文書自体に固有の辞書、すなわ
ち実際にテキスト内に供給される固有の辞書の構築をも
たらす後述する走査および優先化ルーチンによって生成
されるの辞書である。あるいは、特定のユーザー環境の
分野が採用されている特殊なジャーボンまたは固有名詞
を含む補助的な辞書である。あるいは、特定の人間また
は人間集団の固有の語堂のための個人的辞書または、グ
ラフィック辞書あるいはオーディオ辞書である。尚、定
義および利用可能なそのような辞書の数は実質的には無
制限であり、それらを利用しているという事実は圧縮解
除ルーチンまたはユーザーに有効に通信されうろことを
理解されたい。
上述の3バイト辞書の例に関連して、2バイト辞書の各
々は利用中の辞書のタイプのための辞書版切り替え表示
子として利用される単一バイト圧縮制御テーブル内にビ
ット・パターンを持つことができる。もちろん、選択さ
れたすべての2バイト辞書で利用される256語のセグ
メントの数の値に等しい単一バイト圧縮制御テーブル中
のビット・パターンの数も同様に留保しておかなくては
ならない。圧縮解除アルゴリズムが圧縮されたテキスト
・バイト・ストリングにおいてこれらのうちの任意のパ
ターンに遭遇するとき、定義によって、アルゴリズムは
、それ以下のパイ1〜を、所与の識別された2バイト辞
書からの最初のバイトによって識別された特定の256
語の群内の単語の数を意味するものとみなす。各辞書か
らのそのような各256語セグメントは自己の制御パタ
ーンを割り当てられているので、あいまいさがなく、そ
の特定の辞書およびその辞書の特定の256語セグメン
トは制御パターン自体から知られ、従って、その群内の
単語の特定の数のみが移送されなくてはならない。結局
、2バイト辞書内にあられれる単語をエンコードするた
めには、2バイI−Lか必要でない。その最初のバイト
は、単一バイト圧縮制御テーブル内に記憶されている制
御パターンのうちの1つに一致しなくてはならない。第
2のバイトは、見出された2バイト辞書の特定の256
語セグメント内のその単語自体の番号またはシーケンス
番号である。
上述の定義と第6A及び6B図に関連する説明から明ら
かなように、ヘッダのバイトOにおけるビット・パター
ンの数多くの置換が採用され得る。
事実、バイトOにつき8ビツト・バイト・フォーマット
を仮定すると、256個の異なるパターンが存在する。
ヘッダにおいてバイト0に続くバイトは、第6A及び6
B図に関連して前述した、採用された辞書の好みの順序
によって決定されるシーケンス中で評価される。例えば
、もしバイトOが00100000としてエンコードさ
れたなら、その圧縮テーブルのためのデフオールド値を
使用する単一バイト圧縮テーブルと、デフオールド3バ
イト圧縮辞書が採用される。バイト1は、規約によって
、デフオールド3バイト圧縮辞書の長さを定義しなくて
はならず、すなわち、第6A及び6B図のバイトn+1
のフィールドBAがOにセットされ、フィールドBBが
、辞書に実際に採用された65536語セグメントの数
としての長さである。
上述の説明から明らかなように、複数の辞書を使用する
ことができ、一般的な場合、各辞書はj個までのセグメ
ントを含み得る。所与の辞書のための所与のセグメント
かこうしてD (i、j)によって定義され、それは制
御テーブル内にある特定のビット・パターンによって呼
び出すことができる。所与の圧縮例で使用されているす
べての辞書に採用されたセグメントの数の合計は、セグ
メントが圧縮されたテキスト・ストリング内であられれ
たときにセグメントを識別するために個々のビット・パ
ターン中に留保しなくてはならない。
すなわち、圧縮されたテキスト・ストリング中に採用さ
れる識別された各辞書の各セグメント毎に制御テーブル
に1つのビット・パターンが存在することになる。こう
して、圧縮されたデータ・セット中の単一バイトによっ
てあられされる単語または句の数が、単一バイト中の可
能な全体の数から、制御テーブル中で識別子を留保され
なくてはならないすべてのセグメントの全体の数と、特
殊−39= キャラクタ、文字、数字及び制御シーケンスまたは信号
のために制御テーブル内に確保される制御ビット・パタ
ーンの数とを引いた値である。ここで採用されている任
意の規約によると、辞書セグメントを識別するために使
用されるIII#テーブル内のビット・パターンの数に
、制御テーブルの頂部、すなわちすべて1のビット・パ
ターンから始まって順次的に、辞書セグメントの全数に
割当てが行なわれるように下位番号のビット・パターン
の方へ進行して割り当てが行なわれする。次に、制御ビ
ット・パターン、特殊キャラクタ、文字、数字などに残
りの制御テーブル空間が割り当てられ、残りのスペース
があればそれは最高頻度の単語群に渡すことができる。
上述の規約に含意されていることであるが、エンコーデ
ィング側での辞書の検索は圧縮技術を使用する者によっ
て定義された優先順位に従うことになる。検索のための
典型的なシーケンスは、先ず単一バイト圧縮単語パター
ンの制御テーブルを検索し、もし使用されるなら2バイ
ト辞書を検索−40= し、その後もし使用されるなら3バイト辞書を検索する
ものである。
前述のように、所与の例における2バイト辞書の数は、
バイトOのための8ビツト・バイト・フォーマットによ
り任意的に5個に限定されている。
しかし、採用された2バイト辞書の各々と制御テーブル
自体と3バイト辞書は、各自が、辞書のタイプのための
版切替ビットパターンを圧縮されたストリング中に挿入
し、その後、辞書のどの版が次にアクセスされるべきか
を識別するバイトによる規約に従って呼び出し得る25
6個までの版を有することができる。
制御テーブル割当ての例として、各々が65536語か
らなる16個のセグメント(全体で1048576語)
をもつ3バイト辞書が選択され辞書Aと呼ばれるような
例を考えてみよう。また、各々が256語からなる32
個のセグメントを有する2バイト辞書が選択され、辞書
Bと呼ばれると仮定する。さらにまた、各々が256個
の単語からなる8個のセグメント(全体で2048語)
を有する2バイト辞書が選択され、テキストを圧縮する
ための辞書Cと呼ばれると仮定する。すると、単一バイ
ト制御テーブル中に制御ビット・パターンを割振る際に
次のステップが実行されることになる。
先ず、3バイト辞書Aの16個のセグメントをあられす
ために、制御テーブル中に16個の8ビット・パターン
が割振られる。次に、2バイト辞書Bの32個のセグメ
ントをあられすために32個の8ビツト・パターンが割
振られ、続いて、2バイト辞書Cの8個のセグメントを
あられすために、8ビツト・パターンが割振られる。次
に、遭遇すべきさまざまな特殊キャラクタ、制御シーケ
ンス、文字、数字等に複数の8ビツト制御パターンが割
振られる。そして次に、単一バイト幅の制御テーブル中
の256個のもとの可能なパターンのうちの残りのビッ
ト・パターンが、この後説明する技術に従って選択され
た高い得点の単語に割振られる。最後に、これらの辞書
の選択を行ったエンコーディング・グループによって示
された特殊な辞書が、圧縮ルーチンを開始するためにメ
モリに読み込まれることになる。
さて、実際の圧縮ルーチンについて説明するために、シ
ステム及びその動作方法について詳しく説明する。
第1図を参照すると、本発明の好適な実施例に基づく典
型的なテキスト圧縮及び伸張動作のための全体的なシス
テム・ブロック図が示されている。
テキストの入力源は典型的な読取/書込ディスク、人間
のオペレータによって制御されるキーボード、カセット
、またはASCIIまたEBCDICによりエンコード
された入来テキストがある遠隔位置から受信される通信
ネットワーク・アダプタである。このテキスト入力装置
は、第11図では点線1で囲まれて、テキスト人力1と
総称される。マルチプレクサ2は、マイクロプロセッサ
4からのアドレス・バス上で受は取ったアドレスに従っ
て圧縮または伸張すべきテキストの入力源としての可能
な入力のうちの1.つを受は取り選択するためのもので
ある。尚、記憶媒体からの信号を適正な電圧に変換し、
マルチプレクサ2に与えるためにフォーマットすべく、
ディスク、キーボードまたはカセットのための個別のア
ダプタ、または通信ネットワーク・アダプタが設けられ
ることを理解さ九たい。マルチプレクサ2の他方の側に
は、直列から並列、または並列から直列へのフォーマッ
ト変換を行うためのアダプタ5及び6が接続されており
、これにより、システム中で、直列または並列のアドレ
ス及びデータ・バスの利用が可能となり、また、点線1
の囲み内の直列または並列入出力装置に適正な通信がは
かられる。たいていの場合読取専用である主要制御記憶
7が、制御用マイクロプロセッサ4のアドレスおよびデ
ータ・バスに接続さねている。また、ディスク記憶の形
態である大容量記憶が、大容量記憶8として示されてい
る。残りの囲み9.10及び11は、制御プロセッサに
より構成され、その作業用メモリ空間として使用される
読取/書込アドレス可能メモリの部分を示す。ブロック
9は、索引と、辞書セグメン1〜・マツプ及び制御テー
ブルを伴う主要辞書=44− を含み、それらすべては、ユーザーによる所与の選択に
従い、または前述のヘッダのバイト0の読取りに応答し
て大容量記憶8から読み込まれたものである。
ブロック10は、送信■/○バッファであり、ブロック
11は受信I10バッファである。これらのバッファは
、アドレス可能なメモリ空間中で、後述する圧縮または
伸張アルゴリズムの動作の間に、圧縮または伸張すべき
データが一時的にバッファされる領域として構成されて
いる。辞書に対する主要記憶9内の空間の割当てもまた
、後述する辞書セグメント索引と、辞書セグメント・マ
ツプを含む。
所与のユーザーにより示された個々の辞書がメモリ9に
読み込まれていると仮定すると、プロセッサ4は、辞書
検索時間を最小限に抑えるための索引を構築することに
なる。これらは、前取て構築して、辞書自体が大型記憶
8からロードされる時点で読み込むようにしてもよい。
索引セットは、メンバーの集合から成り、その各自メン
バーは、セグメントのために定義すべき制御テーブル中
に留保されるセグメント番号を含むことになる。この索
引番号は、単語の長さに対応するエントリと、使用され
る単語群の照合順序における辞書セグメン1〜の最下位
または最初のセグメントに対応する単語自体のためのエ
ントリの2つのエントリを有する。索引番号はまた、そ
のセグメント中の最後のまたは最高位照合順序単語エン
1−りに対する、その単語の長さ及びその単語自体の2
つのエントリをもつ。言いかえると、辞書セグメント索
引は、定義すべき各セグメント毎に、そのセグメント内
にアルファベット類にあられれる最下位照合順序エント
リの長さ及び実際の単語エントリと、そのセグメント内
にあられれる最高位照合順序エントリの長さ及び実際の
単語エントリを含む。この照合順序は通常アルファベラ
1〜順でよい。照合順の例が第2図に示されている。
第2図の例で仮定されている照合順は、IBMシステム
/370コンピュータ・アーキテクチャで使用されてい
るものである。これは、最初に、特殊キャラクタを、シ
ステムのユーザーに知られている定義された順序に並べ
、次にアルファベットの大文字小文字を並べ、最後にシ
ーケンスの最高位照合順序に数字を並べた、割振られた
階層ソーティング照合順序である。この照合順序は、ソ
ートすべき可能なエン1〜りには、全体的なアルファベ
ット類に等価に見えるかもしれない。各辞書の実際の辞
書エントリは、こうして先ず照合され照合順にソートさ
れる。また、各辞書セグメントは、所与の長さと、所与
のエントリ単語(場合によっては数字または文字)の、
ある低照合順エントリで始まり、セグメント索引は、使
用される辞書のそのセグメント内にあられれる最高位照
合順エントリで終わる。辞書セグメント索引は、後述す
る2分検索技術を用いて辞書検索時間を短縮するために
使用される。
上述の例では、第2図に示すように、辞書セグメント索
クロこは56個のセグメントが定義されている。内訳は
、3バイト辞書には32個のセグメント選択された2バ
イト辞書の各々に、16個及び8個のセグメントである
。単一バイト制御テーブルは、単一バイトに基づき迅速
に検索することができるのでセグメントは全く必要では
ないが、一貫性のため単一バイト・テーブルのためのセ
グメント索引が採用されている。
さらに、実際のセグメント番号とエントリ位置を開始メ
モリ・アドレス位置と相関させるための辞書セグメント
・メモリ・マツプが構成される。
これには、セグメント番号と、キャラクタの数における
最初のエントリの長さと、そのようなエントリがあられ
れる開始メモリ・アドレスが含まれる。そして、その後
には、すべてのセグメントと、すべてのキャラクタ長さ
と、すべての開始メモリ・アドレスが辞書セグメント・
メモリ・マツプにロードされてしまうまで、長さと開始
アドレスをもつセグメント内の次のエントリが続く。こ
れにより、後述のとおり2分検索技術が著しく容易にな
る。というのは、もし辞書エントリを検索するために2
分検索技術が使用されるなら、圧縮または伸張すべき所
与の単語について一致するエントリをきわめて高速で見
出すことが可能だからである。
辞書セグメント・メモリ・マツプはまた、制御テーブル
内の単語に対応するエントリをも含む。上述の例におい
ては、通常の特殊キャラクタ及び辞書セグメント表示子
の割当てが完了した後制御テーブルには168個のピッ
l−・パターンが残されていることになる。
もし圧縮ルーチンに従うなら、この圧縮のためになされ
た特定の辞書選択を記述するヘッダが圧縮されたデータ
・セットに書き込まれることになろう。例えばヘッダは
、上述の例では0011100に0001111が続き
、それに0011111が続き、それに0000011
1が続く。このことは、16個のセグメン1−からなる
3バイト辞書と、32個のセグメントからなる2バイト
辞書と、8個のセグメントからなる2バイト辞書が採用
されているという事実を決定する。さらに、次の3バイ
トの各々の最初のピッ1−がその例に示すように0にセ
ットされているので、最初のバイトOO111−000
が、すべての辞書及び制御テ−プルがそのデフオールド
値定義にセットされていることを記述する。
次に、所与のテキスト入力または文書が走査されて単語
が抽出される。このことは、通常、従来技術で知られて
いるように、キャラクタ・コードに続く句読点またはス
ペースに出会うまでテキスト・ストリングを検査するこ
とによって実行される。次に、そのキャラクタ・コード
とスペース・コードの集まりが、辞書エントリに対して
比較すべき″単語″と見なされる。大文字も同様に処理
され、大文字が検出された場合にそのことを表示するコ
ードが圧縮されたデータ・セットに書かれる。圧縮され
たデータ・セットのために適当な制御シーケンスが書か
れ、その最初のキャラクタが、辞書検索のために小文字
に変更されることになる。
″すべてが大文字である″状況も存在し、この状況のた
めに適当なシーケンスが圧縮されたデータ・セットに書
かれ、以て検索のためにすべてのキャラクタが小文字に
変更される。
次に、比較的に高い優先度あるいは高い得点の単語をあ
られす制御テーブル中のエントリに対して単語がチェッ
クされる。このことは、2分検索技術を利用し、第2図
の制御テーブル辞書セグメント・メモリ・マツプを用い
て行なわれれる。もし入力単語と、制御テーブル単語リ
ストの間で一致があられれたなら、この単語をあられす
単一バイト・パターンが圧縮されたデータ・セットに書
き込まれ、処理はこれの直前のステップから続くことに
なる。
もし単一バイト制御テーブル中で一致が見出されなれな
いなら、最初の2バイト辞書中でそれが見出されるはず
である場合に最初の2バイト辞書内のどのセグメントが
その単語を含んでいる可能性があるかを判断するために
索引セットが使用される。第2図の辞書セグメント索引
がこの目的のために利用される。このことは、索引セッ
トの最初のメンバーを選択して、その索引セットがあら
れすセグメント中の最低及び最高エントリに対してその
単語を比較することによって行なわれる。
もしその単語が所与のセグメントの所与の索引セット・
メンバーの最低及び最高エントリの照合シーケンス範囲
内に含まれているなら、圧縮すべきその単語が検索され
ている特定の辞書内に実際に含まれているかどうかを判
断するために、辞書セグメント・メモリ・マツプ中で、
その特定のセグメント内でのその単語の2分検索が実行
されることになる。この2分検索は、目的メモリ・アド
レスを見出すために辞書セグメント・メモリ・マツプを
使用する。そしてもし一致が見出されたなら、そのセグ
メント番号及びそのセグメント内の単一バイト単語番号
が書き込まれる。3バイト辞書の場合、単語番号のため
のオフセットには、セグメント番号に続く2バイトが必
要である。
定義された1つの2バイト辞書中で一致が見出されない
なら、定義されたすべての2バイト辞書が検査されてし
まうまで後の2バイト辞書が検索されることになる。
もしどの辞書にも一致が見出されないなら、2つの方法
のうちの1つを用いてその単語が書き出さ乳る。すなわ
ち、単語が圧縮されないでそのままキャラクタ毎にEB
CDICまたはASCI I表示として圧縮されたデー
タ・テキストに送られ、または書かれるか、あるいは、
圧縮されたデータ・テキストに特殊な制御シーケンスが
書かれ、続いて非圧縮キャラクタ表示が書かれ、さらに
続いて、非圧縮部分の終わりに到達したことを表示する
別の制御シーケンス・バイトが書かれる。どちらの技術
を選択するかは任意である。テキストの非圧縮部分の出
現を表示するためのエスケープ・シーケンスまたは制御
シーケンスの使用は、単一バイト制御テーブル中にきわ
めてわずかの制御シーケンスを記述する必要を生じさせ
る。しかし、もし個々のキャラクタ表示が制御テーブル
中に留保さ九でいるなら、圧縮されたテキスj・・スト
リーム中に制御シーケンスまたはエスケープ・シーケン
スを入力することによって非圧縮テキストが後に続くこ
とを表示することは不要である。このことは、非圧縮E
BCDICまたはA、5CIIキヤラクタが制御テーブ
ル中で一致エントりを見出すことになるがゆえにそれら
が正確に受信されデコードされるので正しい。
さて、次に、マイクロプロセッサとプログラム言語が与
えられたなら、熟練したプログラマをして動作プログラ
ムを書くことを可能ならしめるデータ圧縮アルゴリズム
・フロー・チャートの例を与える。
第4A−1,4A−2,4B、4C14D、4E、及び
4F図は、異なるタイプの辞書を用いたさまざまな圧縮
技術のフローチャートである。これらのフローチャート
は、−見して理解され、またマイクロプロセッサの命令
セットに容易に変換され得るものであるけれども、関与
する圧縮技術について説明を加えておくことにする。
最初のタスクは第4A−1図のブロック12で始まり、
そこで圧縮ルーチンが開始される。ブロック13で問わ
れる最初の質問は、ユーザーが圧縮のためのデフオール
ド条件において使用すべき単一バイト・テーブルのみを
選択したかどうかということである。もしその答えがイ
エスなら、ブロック14で示されているように、すべて
0のへラダが書き込まれ、文書の圧縮がブロック32(
第4B図)で開始される。このルーチンは、圧縮すべき
文書のEBCDICまたはASCIIコードを含む文書
ファイルから単にキャラクタをフェッチすることにある
。キャラクタが単語の終了である場合、すなわちスペー
スまたは句読点マークが見出されるかあるいは文書終了
キャラクタが見出される場合は何時でも、単語が分離さ
れたものとして決定される。この単語の全体は次に、前
述の2分検索技術を用いて単一バイト圧縮テーブルに比
較される。もし一致が見出されると、単一バイト・テー
ブル内のその単語のアドレス位置に対応するビット値が
その単語の圧縮されたバージョンとして書き込まれる。
これは、例えば、送出用圧縮テキストを構築するために
第1図中のバッファ10に配置してもよく、またはユー
ザーの選択に応じて主メモリ9に配置することもできる
ブロック38(第4B図)では、分離された最後の単語
にテキスト終了表示子が見出されたか否かが問われ、も
しそうなら、テキスト終了ビット・パターンが、圧縮さ
れたデータ・セットに書き込まれなくてはならず、そう
して圧縮プログラムが終了する。もしブロック32での
答えがノーなら、第1図のブロック11中の単語バッフ
ァがクリアされ、プログラム・ルーチンは、文書ファイ
ルから別のキャラクタをフェッチしそれをブロック33
中の単語バッファ11に配置することによって開始に戻
る。この処理は、文書中のすべての単語がエンコードさ
れ、あるいは使用されているどの辞書においても一致が
見出されないときに書き出すことによる別の方法で処理
されるまで続く。ルーチンのこの部分は、フローをブロ
ック43(第4C図)へ導くブロック36からの出口に
見出される。もし単一バイト・テーブルが1つのみ使用
されているなら、一致が見出されないという場合に、前
述したようにFBCDICまたはASCIIキャラクタ
を直接利用することによってその単語を書き出すか、ま
たはブロック44で示すように圧縮されたデータ・セッ
トにエスケープ・ビット・パターンを書くことによって
エンコードの際にこの変化を表示することのどちらかが
必要である。もしエスケープ・パターンが使用されるな
ら、これに続いて、単語バッファ]−1から各キャラク
タが圧縮されたデータ・セットに書き込まれ、非圧縮キ
ャラクタのストリングが別のエスケープ・ビット・パタ
ーンで完成される。前述のように。
単一バイト・バッファが、通常の文字及びキャラクタの
すべてのコードを含む場合、エスケープ・ビット・パタ
ーンは不要である。単語の比較と、単語のための単一バ
イト・バッファの内容の間に一致が見出されなかった場
合、バッファ中の単語をキャラクタ毎に圧縮されたデー
タ・セットに書き込むべきであると結論することだけが
必要となろう。そして、単一バイト・テーブルの内容に
対してキャラクタ毎に比較することによって単語の一致
が見出されないので、そのことが伸張プログラム中で認
識されることになる。しかし、キャラクタが前取て記憶
されているときは、″キャラクタ″の一致が見出される
。この技術はフローには示されていないけれども、この
説明から明らかである。
第4C図のブロック43はまた、このルーチンに含まれ
ている検索の階層をも示す。もし単一バイト・テーブル
が検索される唯一のテーブルでないなら、単語バッファ
の内容が、ブロック45に示されているように、ユーザ
ーによって選択された任意の2バイト辞書に対して比較
される。もしどの2バイト辞書でも一致が見出されない
なら、ブロック47で、3バイト辞書が使用されること
になっているかどうかが問われ、もしその答えがイエス
なら、一致が見出されるまで、使用中の3バイト辞書に
対して比較がなされるか、または、一致が見出されない
場合に、プログラムは、非圧縮形式で単語を書くために
ブロック44に戻る。
第4A−1図のブロック18に戻って、もし単一バイト
辞書またはテーブルが、圧縮すべき文書の内容に基づき
生成されるべきであるなら、すなわち、もし考察中の文
書のための特殊な辞書が生成されるべきであるなら、ブ
ロック19において文書を開くことにより、すなわち文
書の処理が単語毎に実行され得るメモリ中の領域を初期
化することによってプログラムが始まり、次にプログラ
ムはブロック20に進む。ここで文書が走査され、その
文書内で見出された個々の固有の単語のすべてについて
リストがメモリ中に構築される。この処理が完了すると
、各単語の出現回数にその単語のキャラクタの長さを掛
けることによって文書中の各単語に対する相対的な重み
づけ得点が計算される。こうして得られた得点表が大き
さによってソートされ、最大値(最高得点の単語)が、
(アルファベット、数字、特殊キャラクタ及び制御キャ
ラクタの割振り完了後に)単一パイ1〜・テーブル内に
残っているビット位置に割り振られる。ユーザーは、制
御キャラクタ等を妥当に選択することによって、単一バ
イト・テーブル中で何個のビット・パターンが利用可能
となるかを定義する必要があろう。これにより、256
個の利用可能なパターンのうちある個数が残される。次
に、圧縮されたデータ・ストリームを開始するために、
ブロック28(第4A−2図)で固有のヘッダが書=5
9− き込まれる。この後、ブロック29に示すように、ブロ
ック26からの、単一バイト・テーブル中にあられされ
たすべての単語の長さをあられす2バイト・パターンで
あるセグメント・メモリ位置マツプが続き、さらに辞書
で使用されるべき単語の実際のリストが続く。
もし3バイト辞書または2バイト辞書が必要であると定
義されるなら、ブロック52及び62が −事象のシー
ケンスを記述する。圧縮ルーチンを呼び出すユーザーに
よって行なわれた辞書の特定の選択が注目され、特に記
述されている以外の選択のセットの場合、それが辞書構
造として生成される。第4A−1図ないし第4F図のフ
ローチャートは、単一パイ1〜圧縮テーブル、単一バイ
ト補助圧縮テーブル、または任意のスタイルの2バイト
または3バイト辞書を書くための任意の可能性を処理す
る。どの辞書を使用するかの選択は、完全に、圧縮ルー
チンを呼び出す人間の裁量の余地の範囲にある。その結
果の辞書の選択は、既に詳細に説明したように圧縮され
たデータ・ストリーム=60− を開始する情報ヘッダの構成に反映される。ヘッダが構
成されると、圧縮ルーチンは、各単語を、利用すべき辞
書の選択されたリストに対して比較し、第4A−1図な
いし第4F図の命令に従って圧縮されたデータ・セット
を構成するために、ある解析パターンに従う。
一方、伸張は非常に簡単な動作であって、第3図を参照
して説明される。これにおいては、アドレス可能な主メ
モリ9中の区域として複数のテーブルA、B、C及びD
が定義される。テーブルD、C,B及びAにロードされ
る値は、圧縮されたデータ・セットに対応して受は取ら
れたヘッダに応じて書き込まれる。ヘッダの解析により
、マイクロプロセッサ中のプログラムが大容量記憶また
はメモリにアクセスし、第3図に示すようなテーブルD
、C,B及びAを初期化するために必要な値をフェッチ
することが可能となる。
第3図に示された記述は、テキストの伸張が、間接アド
レス指定スキームによって達成されつつあることを示す
。伸張プログラムに関連づけられた4つのメモリ・テー
ブルD、C,B及びAは次のようにして定義される。す
なわち、テーブルDは、圧縮されたストリームの第1の
ビット・パターンをテーブルC内のオフセットの列にマ
ツプするために使用される。言いかえると、テーブルC
は、ヘッダの第1のバイトに対応する可能なすべての順
列組み合わせを含み、テーブルDは、ヘッダCを解析し
テーブルC中でどのパターンが表示されるべきかを選択
するために使用される。テーブルCは、各単語、句、制
御シーケンス文字または数字の伸張を処理するために場
合に応じて伸張プログラム内のどのサブルーチンの選択
が呼び出されなくてはならないかを表示する転送ベクト
ル・テーブルである。言いかえると、テーブルDは、ヘ
ッダを解析しどの辞書が使用されるべきかを解析するた
めに、ヘッダに対する比較として使用される。テーブル
Cは、各タイプの伸張を処理するために必要なサブルー
チンに対する方向を含む。
ヘッダ中に記述された各辞書の各固有のバージョンはま
た、そのために定義された2個の追加的なテーブルA及
びBをもつ。テーブルBは、2バイト留保フイールドと
、2バイト単語長フィールドと、4バイト・アドレス・
フィールドを含む間接アドレス・テーブルである。この
ように、テーブルBは問題の辞書のためのセグメント・
メモリ位置である。第2のテーブルであるテーブルAは
、伸張された単語自体を含み、辞書単語リストである。
伸張ルーチンの場合ヘッダは、どの辞書構造が記述され
たかを判断するために解析される。ここで、主メモリ9
中で利用可能な汎用レジスタ空間の存在を仮定する詳細
な例を与える。
もし単一バイト・テーブルのみが使用されるべきなら、
ポインタは、主メモリ9内の汎用レジスタR3中で任意
に初期化される。ポインタは、圧縮されたテキスト自体
の第1のバイトが始まる地点である圧縮されたテキスト
中のバイト数を表示するために初期化される。また、別
の任意の汎用レジスタ・メモリR4中に別のポインタが
確立される。それは、伸張されたテキスト記憶領域が始
まるメモリ9の記憶空間中のアドレスを指定する。
汎用レジスタ空間R5で任意に初期化される別のポイン
タが、テーブルDの開始が位置づけられているメモリ中
でアドレスを指定する。別のポインタが、メモリ内のテ
ーブルCの開始を指定するために任意の汎用レジスタR
6中で初期化される。
さらに別のポインタが汎用レジスタR7中で任意に初期
化されてテーブルBの開始を指定し、別のレジスタR8
が初期化されて、テーブルAの開始へのポインタを含む
。これらのテーブルの値が次に、例えば記憶8からフェ
ッチされ、上述のレジスタ中のポインタにより識別され
た地点で始まる主メモリ中にロードされる。
次に伸張が始まる。すなわち、ポインタによって記述さ
れた位置で始まる圧縮されたテキストから1バイトがフ
ェッチされ、第1図に定義された受信バッファ11とし
ての汎用レジスタR9中に配置される。言いかえると、
R9には、レジスタR3の内容によって表示された位置
からそのバイトがロードされる。テーブルDの開始アド
レスは一図一 次に汎用レジスタR9の内容に加えることができる。す
なわち、R5の値がR9に加えられる。これにより、R
9によって示された位置のバイトに新しい値がもたらさ
れ、その値は汎用レジスタR10にロードされる。これ
は、圧縮されたテキストの第1のバイト中で見出された
パターンの結果として選択されたマツピング・バイトで
あり、そのバイトが、単語、制御キャラクタ、特殊シン
ボル、制御シーケンス、文字または数字などをあられす
かどうかを決定する。
このマツピング・バイトは、4を掛けられ、すなわちR
IOは左へ2位置シフトされ、転送ベクトル・テーブル
であるテーブルCのための開始アドレスがこの積に加え
られる。これにより、今やレジスタR10で示された位
置において転送ベクトル・テーブル中に位置が示されて
なるサブルーチンに対する動作の制御がもたらされる。
サブルーチンのその部分は次に、マツピング・バイト・
テーブルで識別された特殊シンボル、制御シーケンス、
文字または数字を処理するために初期化される。特殊シ
ンボル、制御シーケンス、文字、数字等の各々は固有の
サブルーチンをもつ。しかし、単一バイト圧縮テーブル
中の単語はすべて伸張のための共通のサブルーチンを共
有する。単語伸張のためのサブルーチンはメモリ中に存
在し、単一バイト圧縮テーブル中に見出される単語を処
理する。そのサブルーチンは、R9に、R3によって示
された位置からのバイトをロードすることによって、圧
縮されたテキスト・バイト・ストリングから圧縮された
バイトをフェッチする。R9中の圧縮されたバイトの値
には8が掛けられ、すなわち左へ3ビツト、シフトされ
、テーブルBの開始アドレスがその結果の積に加えられ
る。言いかえると、R7の内容がR9に加えられて、そ
のことにより、伸張された単語自体の長さ及び位置に対
するポインタがもたらされる。その単語の長さ及び位置
は、R9の値よりも2つ大きい値と、R9の値よりも4
つ大きい値によって、そ九ぞれ表示される。これらの値
はそれぞれ、汎用レジスタR10及びR11にロードさ
れる。その結果は、テーブルAの辞書単語メモリから主
メモリ9中の伸張テキスト作業領域へ移動されることに
なる伸張された単語自体である。上述の例では、RIO
の内容によって表示された長さをもつR11中に表示さ
れた位置からの単語がR4によって表示される位置へ移
動される。ポインタは次に、次の圧縮されたバイト、及
び次の伸張されたテキスト・エントリの位置に対応して
更新されることになる。
上述では、レジスタR3が1、たけ増分され、R10の
値がR4に加えられる。伸張プログラムは次に、圧縮さ
れたバイト・ストリングから次のバイトをフェッチする
ために戻り、上述の処理を反復する。
伸張ルーチンの制御は、ファイル終了制御キャラクタま
たはシーケンスを認識した時点で、ファイル終了サブル
ーチンに渡される。ファイル終了サブルーチンは次に、
ユーザーによって選択された方法で圧縮されたデータ・
ストリームを処分する。すなわち、圧縮されたデータ・
ストリームは、マルチプレクサ2を介して遠隔位置と通
信するために通信ネットワーク・アダプタに出力され、
または第1図のブロック1中のディスクまたはカセット
上に記憶することができる。あるいは、それはまた、後
の検索のために、ディスク大容量記憶8にロードするこ
ともできる。
別の単一バイト圧縮テーブルを用いた伸張ルーチンの場
合、あるいは圧縮されたテーブル・バイト・ストリング
内で見出された制御シーケンスにテーブル切替キャラク
タが表示されている場合、テーブルA、B、C及びDの
ための別のテーブル値が記憶からアクセスされ、現存す
るA、B、C及びDのためのテーブル値に重なる作業メ
モリ空間にロードされる。そして伸張ルーチンは上述の
ように進む。単一バイト・テーブルといくつかの追加の
辞書が記述されている場合、ヘッダが、どの単一バイト
圧縮テーブル及び他のどの辞書が記述されているか、及
び、使用すべき他の記述された辞書毎のセグメントの数
を表示する。A、B、C及びDのための適当なテーブル
値が次に所定の外部記憶媒体からロードされ、上述した
伸張プロダラムのアドレス空間に配置され、伸張処理は
上述のように進行する。各辞書の各セグメントは、圧縮
された単数または複数のバイトを、表示された辞書の表
示されたセグメント内の適正な単語にマツプするための
自身の対応するサブルーチンをもつ。例えば、2バイト
辞書の場合、特定の2バイトの特定のセグメントのため
のサブルーチンが、単語辞書であるテーブルA内で伸張
された辞書を見出すために、適正なテーブルBへのオフ
セットとしての単語の2バイト圧縮表現の第2のバイト
を使用することになる。3バイト辞書の場合、3バイト
辞書の特定のセグメントのサブルーチンが、選択したそ
の特定の辞書のためのテーブルAに配置されている辞書
内で伸張された単語または句を見出すために、その辞書
のための適正なテーブルBへのオフセットとしての単語
の3バイト圧縮表現の第2及び第3のバイトを使用する
第5図を参照すると、圧縮されたテキストのバイト・ス
トリングの図式的な表示が示されている。
このとき、ヘッダは第6A及び6B図で詳細に扱ねれる
ので、表示されていない。第5図のラインAにおいて、
エスケープ・ビット・パターンが図示された第2のバイ
トであり、前述したように、エスケープ・ビット・パタ
ーンの使用を回避することもできるけれども、それはこ
の例では使用されている。エスケープ・ビット・パター
ンの後には、通常のEBCDICまたはASCIIコー
ドであることを除いてはコード化されていない最初のキ
ャラクタが続く。というのは、それは、どの辞書にも見
出されなかった単語をあられすがらである。そして、何
個の介在キャラクタが出現し、どの辞書にも見出されな
かった単語の最後のキャラクタのエンコードのあと、第
2のエスケープ・ビット・パターンが続く。圧縮された
単語が再びラインBで始まり、これはラインAの続きで
ある。
ここでは単一バイトの圧縮された単語が先ずあられれ、
それに、2バイト辞書により圧縮された単語が続く。そ
れの2つのフィールドの情報は、所与の2バイト辞書の
セグメント数と、その辞書内の単語の相対的位置をあら
れす。これらの後には、この例では、さらに別の単一バ
イト圧縮単語が続き、さらに多重スペース検出ビット・
パターンが続き、ラインCで、検出された多重スペース
の数が続く。この後、3バイト辞書の圧縮された単語の
セグメント数と、3バイト辞書の識別されたセグメント
内のその単語の相対的位置を示す2バイトとが続く。
エスケープ・ビット・パターン以外にも、他の制御パタ
ーンも定義され単一バイト圧縮制御テーブル内にロード
されなくてはならない。バージョン切替制御パターンに
ついて前述したが、これは圧縮されたテキスト・ストリ
ーム中で出会うと、次のバイトが、使用されつつある辞
書の新しいバージョン番号を表示するように意図されて
いる。
それは、使用されつつある辞書が同一のタイプの辞書の
別のバージョンに重なるべきときに、圧縮ルーチン中で
エンコードされる。テキスト圧縮で空白スペースが連続
して複数あられれるときは、最良の圧縮のために、認識
されたときに多重スペース制御キャラクタを必要とする
別の事象である。
=71− その後には、あられれるべき空白スペースの数を表示す
る別のバイトが続く。1バイト制御キヤラクタを考える
と、次の第2のバイトにおいて制御の256個のバージ
ョンを表示できることが明らかである。こうして、辞書
バージョン切替制御キャラクタの場合、次のバイトが、
同一の辞書の256個のバージョンのうちの任意の1つ
を記述することができる。これは、単一バイト辞書を他
のバージョンで置き換えることによって、1つのバイト
中であられし得る単語の数を増加させることができる。
以上の記載から、採用される辞書の数及びタイプに多く
の変更がなし得る一方で、受信側に、圧縮を行う際にど
の辞書及びどのサイズの辞書が使用されたかを識別する
ために、同一の基本ヘッダ構成スキームが使用されるこ
とが見てとれる。同様に、辞書中にエントリを確立する
ための使用度合の重みづけられた頻度が、テキストを圧
縮するためのきわめて有効な手段であることが示された
尚、″テキスl〜”自体は、アルファベット・データで
も、音声データでもよく、または記憶あるいは伝送のた
め接縮すべき他の同様のディジタル・データ・キャラク
タ情報でよい。
F1発明の効果 以上のように、この発明によれば、用途に応じて複数の
辞書の使用を可能ならしめたことにより、テキスト文書
のきわめて効率的な圧縮が行なわれる。
【図面の簡単な説明】
第1図は、本発明に基づくテキスト圧縮及び伸張システ
ムの図式的ブロック図、 第2図は、辞書と索引を含むセグメントへのメモリ空間
の割り当てを示す図、 第3図は、第1図のプロセッサによる伸張動作を示す図
、 第4A図、第4A−1−図、第4A−2図、第4B図、
第4C図、第4D図、第4E図、第4F図は第1図のプ
ロセッサによる圧縮動作を示す図、第5図は、圧縮され
たテキストのフォーマットの典型的な例を示す図、 第6A図、第6B図は、圧縮されたデータ・レコード中
のヘッダまたはプリアンプル区域におけるビット位置の
割り当てを示す図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  山  本  仁  部(外1名) 手続補正書動式) 昭和63年1月7日 特許庁長官 小 川 邦 夫 殿 ]、事件の表示 昭和62年 特許願 第23274.1号2、発明の名
称 データ圧縮方法 3、補正をする者 事件との関係  特許出願人 昭和62年12月2z日 6、補正の対象 4、図面の簡単な説明 7、補正の内容 図面の簡単な説明の欄の記載を別紙のとおりに補正する
。 別紙 図面の簡単な説明 第1図は、本発明に基づくテキスト圧縮及び伸モリ空間
の割り当てを示す図、 第3図は、第1図のプロセッサにより伸張動作を示す図
、 第4図は、第4A−1図と第4A−2図の結合を示す図
、 第4A図、第4A−1図、第4八−2図、第4B図、第
4C図、第4D図、第4E図、第4F図は第1図のプロ
セッサによる圧縮動作を示す図、第5図は、圧縮された
テキストのフォーマットの典型的な例を示す図、 第6A図、第6B図は、圧縮されたデータ・レコード中
のヘッダまたはプリアンプル区域におけるピッ1ル位置
の割り当てを示す図である。 −1=

Claims (1)

  1. 【特許請求の範囲】 非圧縮のコード化されたデータ・ストリームを複数のユ
    ニットに分離し、 上記複数のユニットを、上記非圧縮のコード化されたユ
    ニットに関連して記憶された各ユニット毎に対応する圧
    縮されたコードをもつ複数の辞書のうちの少なくとも1
    つのユーザーが選択した辞書と比較し、 上記データの圧縮に使用される上記ユーザーが選択した
    辞書の各々の識別子を決定するための表示を含む圧縮さ
    れたデータ・ヘッダを出力し、上記比較段階で一致が見
    出された場合に入来ユニットに対応する圧縮されたコー
    ドを出力し、一致が見出されない場合に非圧縮のコード
    化されたキャラクタ・ストリームを出力する段階を有す
    る、データ圧縮方法。
JP62232741A 1986-12-04 1987-09-18 データ圧縮方法 Granted JPS63151224A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/937,799 US4843389A (en) 1986-12-04 1986-12-04 Text compression and expansion method and apparatus
US937799 1986-12-04

Publications (2)

Publication Number Publication Date
JPS63151224A true JPS63151224A (ja) 1988-06-23
JPH026252B2 JPH026252B2 (ja) 1990-02-08

Family

ID=25470423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62232741A Granted JPS63151224A (ja) 1986-12-04 1987-09-18 データ圧縮方法

Country Status (10)

Country Link
US (1) US4843389A (ja)
EP (1) EP0286719B1 (ja)
JP (1) JPS63151224A (ja)
AT (1) ATE125375T1 (ja)
AU (1) AU596713B2 (ja)
BR (1) BR8706325A (ja)
CA (1) CA1290061C (ja)
DE (1) DE3751421T2 (ja)
DK (1) DK636087A (ja)
NO (1) NO173576C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204235A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの復号方法
JPH03204233A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> データ圧縮方法
JPH03204234A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データ復元方法
JPH03204232A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの符号化方法
JPH0546357A (ja) * 1991-07-15 1993-02-26 Sharp Corp テキストデータの圧縮方法および復元方法
JPH09212395A (ja) * 1996-01-30 1997-08-15 Sharp Corp テキスト圧縮用辞書作成装置およびテキスト圧縮装置
US6529912B2 (en) 1997-12-03 2003-03-04 Fujitsu Limited Data compressing apparatus and a data decompressing apparatus, a data compressing method and a data decompressing method, and a data compressing or decompressing dictionary creating apparatus and a computer readable recording medium storing a data compressing program or a data decompressing program

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0287713B1 (en) * 1987-04-23 1994-06-22 Océ-Nederland B.V. A text processing system and methods for checking in a text processing system the correct and consistent use of units or chemical formulae
WO1988009586A1 (en) * 1987-05-25 1988-12-01 Megaword International Pty. Ltd. A method of processing a text in order to store the text in memory
US5551049A (en) * 1987-05-26 1996-08-27 Xerox Corporation Thesaurus with compactly stored word groups
US5553283A (en) * 1987-05-26 1996-09-03 Xerox Corporation Stored mapping data with information for skipping branches while keeping count of suffix endings
US5754847A (en) * 1987-05-26 1998-05-19 Xerox Corporation Word/number and number/word mapping
KR930003416B1 (ko) * 1988-03-29 1993-04-29 주식회사 금성사 폰트의 함축방법
US5258910A (en) * 1988-07-29 1993-11-02 Sharp Kabushiki Kaisha Text editor with memory for eliminating duplicate sentences
JPH0831100B2 (ja) * 1988-09-29 1996-03-27 富士ゼロックス株式会社 電子化辞書装置
CA2005070C (en) * 1988-12-23 1999-04-27 Henry C. Yuen Apparatus and method for using encoded video recorder/player timer preprogramming information
US5067152A (en) * 1989-01-30 1991-11-19 Information Technologies Research, Inc. Method and apparatus for vector quantization
US5006849A (en) * 1989-07-26 1991-04-09 Astro, Inc. Apparatus and method for effecting data compression
EP0427884B1 (de) * 1989-11-14 1994-04-13 Siemens Nixdorf Informationssysteme Aktiengesellschaft Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
GB9001312D0 (en) * 1990-01-19 1990-03-21 Hewlett Packard Ltd Storage of compressed data
US5410671A (en) * 1990-05-01 1995-04-25 Cyrix Corporation Data compression/decompression processor
DE4015420A1 (de) * 1990-05-14 1991-11-21 Bosch Gmbh Robert Verfahren zur datenkompression
GB2244354B (en) * 1990-05-25 1994-02-23 Silicon Systems Inc Multi-device emulation
GB2246494B (en) * 1990-05-25 1994-08-31 Silicon Systems Inc Method and apparatus for serial communications
EP0459041B1 (en) * 1990-05-29 1997-07-09 Hewlett-Packard Limited Tape storage
US5023610A (en) * 1990-06-13 1991-06-11 Cordell Manufacturing, Inc. Data compression method using textual substitution
EP0688104A2 (en) * 1990-08-13 1995-12-20 Fujitsu Limited Data compression method and apparatus
JPH0495878A (ja) * 1990-08-14 1992-03-27 Sony Corp ピーク値検出回路
JPH04114266A (ja) * 1990-09-04 1992-04-15 Brother Ind Ltd 文書処理装置
US5333313A (en) * 1990-10-22 1994-07-26 Franklin Electronic Publishers, Incorporated Method and apparatus for compressing a dictionary database by partitioning a master dictionary database into a plurality of functional parts and applying an optimum compression technique to each part
US5473326A (en) * 1990-12-14 1995-12-05 Ceram Incorporated High speed lossless data compression method and apparatus using side-by-side sliding window dictionary and byte-matching adaptive dictionary
US5175543A (en) * 1991-09-25 1992-12-29 Hewlett-Packard Company Dictionary reset performance enhancement for data compression applications
FR2681966A1 (fr) * 1991-09-27 1993-04-02 Euro Cp Sarl Procede de compression-decompression de donnees textuelles dans un reseau domotique.
US5488725A (en) * 1991-10-08 1996-01-30 West Publishing Company System of document representation retrieval by successive iterated probability sampling
EP0619053A1 (en) * 1991-12-23 1994-10-12 Intel Corporation Decoder and decoding method for prefixed Huffman codes using plural codebooks
US5590317A (en) * 1992-05-27 1996-12-31 Hitachi, Ltd. Document information compression and retrieval system and document information registration and retrieval method
GB2268666B (en) * 1992-06-24 1996-03-20 Sony Broadcast & Communication Serial data decoding
US5734892A (en) * 1992-06-29 1998-03-31 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5649151A (en) * 1992-06-29 1997-07-15 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
JPH0628108A (ja) * 1992-07-09 1994-02-04 Hitachi Ltd データ記憶システム
US5325091A (en) * 1992-08-13 1994-06-28 Xerox Corporation Text-compression technique using frequency-ordered array of word-number mappers
US5323155A (en) * 1992-12-04 1994-06-21 International Business Machines Corporation Semi-static data compression/expansion method
US5530645A (en) * 1993-06-30 1996-06-25 Apple Computer, Inc. Composite dictionary compression system
US5394143A (en) * 1993-06-30 1995-02-28 Digital Equipment Corporation Run-length compression of index keys
WO1995001677A1 (en) * 1993-06-30 1995-01-12 Codex, Inc. Method and apparatus for encoding and decoding compressed data in data communication
CA2125337A1 (en) * 1993-06-30 1994-12-31 Marlin Jay Eller Method and system for searching compressed data
JP3025827B2 (ja) * 1993-09-14 2000-03-27 松下電器産業株式会社 可変長コード化装置
JP3234075B2 (ja) * 1993-11-30 2001-12-04 ローム株式会社 立体映像再生装置
DE4342521C1 (de) * 1993-12-14 1995-07-13 Ibm Verfahren und Anordnung zur Expansion komprimierter Daten
US5798721A (en) * 1994-03-14 1998-08-25 Mita Industrial Co., Ltd. Method and apparatus for compressing text data
US5635931A (en) * 1994-06-02 1997-06-03 International Business Machines Corporation System and method for compressing data information
EP0687995B1 (en) * 1994-06-16 2004-03-17 Seiko Epson Corporation Data compressing method
US5561421A (en) * 1994-07-28 1996-10-01 International Business Machines Corporation Access method data compression with system-built generic dictionaries
DE4432436C2 (de) * 1994-09-12 1997-04-03 Tecomac Ag Datenkompressionsverfahren und Vorrichtung zum Komprimieren von Daten
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
US5684478A (en) * 1994-12-06 1997-11-04 Cennoid Technologies, Inc. Method and apparatus for adaptive data compression
US5499293A (en) * 1995-01-24 1996-03-12 University Of Maryland Privacy protected information medium using a data compression method
US5774714A (en) * 1995-03-27 1998-06-30 Hewlett-Packard Company Zone bit recording enhanced video data layout
GB2305746B (en) * 1995-09-27 2000-03-29 Canon Res Ct Europe Ltd Data compression apparatus
US5974180A (en) * 1996-01-02 1999-10-26 Motorola, Inc. Text compression transmitter and receiver
US5951623A (en) * 1996-08-06 1999-09-14 Reynar; Jeffrey C. Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
US6082776A (en) * 1997-05-07 2000-07-04 Feinberg; Lawrence E. Storing personal medical information
US6470362B1 (en) * 1997-05-16 2002-10-22 Compaq Computer Corporation Extracting ordered list of words from documents comprising text and code fragments, without interpreting the code fragments
JPH11143877A (ja) * 1997-10-22 1999-05-28 Internatl Business Mach Corp <Ibm> 圧縮方法、辞書の見出し語インデックス・データを圧縮するための方法、及び機械翻訳システム
JP3421700B2 (ja) * 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6327634B1 (en) * 1998-08-25 2001-12-04 Xilinx, Inc. System and method for compressing and decompressing configuration data for an FPGA
DE19854179A1 (de) * 1998-11-24 2000-05-25 Siemens Ag Verfahren und Anordnung zur Kompression bzw. Expansion von Zeichenketten durch eine DV-Einrichtung
JP4776050B2 (ja) 1999-07-13 2011-09-21 ソニー株式会社 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
AU3274301A (en) * 2000-01-05 2001-07-16 Realnetworks, Inc. Systems and methods for multiple-file data compression
US7026962B1 (en) * 2000-07-27 2006-04-11 Motorola, Inc Text compression method and apparatus
US20030217025A1 (en) * 2000-09-11 2003-11-20 David Costantino Textual data storage system and method
US6898605B2 (en) * 2000-09-11 2005-05-24 Snap-On Incorporated Textual data storage system and method
AU2001293595A1 (en) * 2000-09-29 2002-04-08 Gavagai Technology Incorporated A method and system for describing and identifying concepts in natural language text for information retrieval and processing
US20030157470A1 (en) * 2002-02-11 2003-08-21 Michael Altenhofen E-learning station and interface
US6657565B2 (en) 2002-03-21 2003-12-02 International Business Machines Corporation Method and system for improving lossless compression efficiency
US7574719B1 (en) 2002-06-27 2009-08-11 Microsoft Corporation Program guide data compression
CA2411227C (en) * 2002-07-03 2007-01-09 2012244 Ontario Inc. System and method of creating and using compact linguistic data
CN1732426A (zh) * 2002-12-27 2006-02-08 诺基亚公司 用于移动通信终端的预测性文本条目和数据压缩方法
US7941311B2 (en) * 2003-10-22 2011-05-10 Microsoft Corporation System and method for linguistic collation
US7764673B1 (en) * 2004-08-04 2010-07-27 Cisco Technology, Inc. System and method for implementing a variable size codebook for compression in a communications environment
US7899665B2 (en) * 2004-08-20 2011-03-01 International Business Machines Corporation Methods and systems for detecting the alphabetic order used by different languages
US8954400B2 (en) * 2004-09-13 2015-02-10 International Business Machines Corporation Method, system and program product for managing structured data
US7594171B2 (en) * 2004-10-01 2009-09-22 Adobe Systems Incorporated Rule-based text layout
US20060106870A1 (en) * 2004-11-16 2006-05-18 International Business Machines Corporation Data compression using a nested hierarchy of fixed phrase length dictionaries
US20060236319A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Version control system
US7102552B1 (en) * 2005-06-07 2006-09-05 Windspring, Inc. Data compression with edit-in-place capability for compressed data
US7148824B1 (en) * 2005-08-05 2006-12-12 Xerox Corporation Automatic detection of character encoding format using statistical analysis of the text strings
US8918318B2 (en) * 2007-01-16 2014-12-23 Nec Corporation Extended recognition dictionary learning device and speech recognition system
US8391148B1 (en) * 2007-07-30 2013-03-05 Rockstar Consortion USLP Method and apparatus for Ethernet data compression
US8149469B2 (en) * 2007-08-03 2012-04-03 Canon Kabushiki Kaisha Image reading apparatus and image reading method
US8078454B2 (en) * 2007-09-28 2011-12-13 Microsoft Corporation Two-pass hash extraction of text strings
US7444347B1 (en) * 2007-11-16 2008-10-28 International Business Machines Corporation Systems, methods and computer products for compression of hierarchical identifiers
US8326604B2 (en) * 2008-04-24 2012-12-04 International Business Machines Corporation Dictionary for textual data compression and decompression
US8326605B2 (en) * 2008-04-24 2012-12-04 International Business Machines Incorporation Dictionary for textual data compression and decompression
PT2297856T (pt) * 2008-07-11 2023-04-10 Fraunhofer Ges Forschung Método para codificar um símbolo, método para descodificar um símbolo, método para transmitir um símbolo de um transmissor para um recetor, codificador, descodificador e sistema para transmitir um símbolo de um transmissor para um recetor
US8359318B2 (en) * 2008-10-13 2013-01-22 Wolf Garbe System and method for distributed index searching of electronic content
CN105893337B (zh) * 2015-01-04 2020-07-10 伊姆西Ip控股有限责任公司 用于文本压缩和解压缩的方法和设备
US10956440B2 (en) * 2017-10-16 2021-03-23 International Business Machines Corporation Compressing a plurality of documents

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL302815A (ja) * 1963-02-06
US4295124A (en) * 1979-08-13 1981-10-13 National Semiconductor Corporation Communication method and system
US4386416A (en) * 1980-06-02 1983-05-31 Mostek Corporation Data compression, encryption, and in-line transmission system
US4597057A (en) * 1981-12-31 1986-06-24 System Development Corporation System for compressed storage of 8-bit ASCII bytes using coded strings of 4 bit nibbles
US4545032A (en) * 1982-03-08 1985-10-01 Iodata, Inc. Method and apparatus for character code compression and expansion
JPS59228457A (ja) * 1983-06-09 1984-12-21 Fuji Photo Film Co Ltd 放射線画像データ圧縮方法および装置
CA1226369A (en) * 1983-10-19 1987-09-01 Louie D. Tague Method and apparatus for data compression
US4646061A (en) * 1985-03-13 1987-02-24 Racal Data Communications Inc. Data communication with modified Huffman coding

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204235A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの復号方法
JPH03204233A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> データ圧縮方法
JPH03204234A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データ復元方法
JPH03204232A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの符号化方法
JPH0546357A (ja) * 1991-07-15 1993-02-26 Sharp Corp テキストデータの圧縮方法および復元方法
JPH09212395A (ja) * 1996-01-30 1997-08-15 Sharp Corp テキスト圧縮用辞書作成装置およびテキスト圧縮装置
US6529912B2 (en) 1997-12-03 2003-03-04 Fujitsu Limited Data compressing apparatus and a data decompressing apparatus, a data compressing method and a data decompressing method, and a data compressing or decompressing dictionary creating apparatus and a computer readable recording medium storing a data compressing program or a data decompressing program

Also Published As

Publication number Publication date
AU596713B2 (en) 1990-05-10
NO875048D0 (no) 1987-12-03
NO173576B (no) 1993-09-20
EP0286719A3 (en) 1992-01-22
DK636087D0 (da) 1987-12-03
DK636087A (da) 1988-06-05
EP0286719A2 (en) 1988-10-19
US4843389A (en) 1989-06-27
NO875048L (no) 1988-06-06
DE3751421D1 (de) 1995-08-24
JPH026252B2 (ja) 1990-02-08
ATE125375T1 (de) 1995-08-15
BR8706325A (pt) 1988-07-19
CA1290061C (en) 1991-10-01
DE3751421T2 (de) 1996-03-28
AU8163787A (en) 1988-06-09
EP0286719B1 (en) 1995-07-19
NO173576C (no) 1993-12-29

Similar Documents

Publication Publication Date Title
JPS63151224A (ja) データ圧縮方法
US5787386A (en) Compact encoding of multi-lingual translation dictionaries
US6877003B2 (en) Efficient collation element structure for handling large numbers of characters
US4775956A (en) Method and system for information storing and retrieval using word stems and derivative pattern codes representing familes of affixes
EP0293161B1 (en) Character processing system with spelling check function
US4955066A (en) Compressing and decompressing text files
US5546578A (en) Data base retrieval system utilizing stored vicinity feature values
US5383121A (en) Method of providing computer generated dictionary and for retrieving natural language phrases therefrom
JPH05174064A (ja) 文書検索方法及び装置
JPS61500345A (ja) デ−タ圧縮方法および装置
US5815096A (en) Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
US6834283B1 (en) Data compression/decompression apparatus using additional code and method thereof
JP2693914B2 (ja) 検索システム
US7076423B2 (en) Coding and storage of phonetical characteristics of strings
JPH05324427A (ja) 文書情報圧縮装置
US6829386B2 (en) Methods and apparatus for associating character codes with optimized character codes
JP2569857B2 (ja) 不定バイト長文字入力制御方式
JPH09114854A (ja) 文書検索システム
JP2001312517A (ja) インデクス生成装置及び文書検索装置
JP2629040B2 (ja) 日本語処理システム
WO1992009960A1 (en) Data retrieving device
JP2634926B2 (ja) かな漢字変換装置
JP3722231B2 (ja) コンパクトにエンコードされて記憶されたストリングの組を有する製品
JPH07319895A (ja) 文書検索装置及び文書検索方法
JPH0140371B2 (ja)