JP2610084B2 - データ伸長方法および装置ならびにデータ圧縮伸長方法および装置 - Google Patents

データ伸長方法および装置ならびにデータ圧縮伸長方法および装置

Info

Publication number
JP2610084B2
JP2610084B2 JP4334804A JP33480492A JP2610084B2 JP 2610084 B2 JP2610084 B2 JP 2610084B2 JP 4334804 A JP4334804 A JP 4334804A JP 33480492 A JP33480492 A JP 33480492A JP 2610084 B2 JP2610084 B2 JP 2610084B2
Authority
JP
Japan
Prior art keywords
string
data
character
code
data character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP4334804A
Other languages
English (en)
Other versions
JPH07249996A (ja
Inventor
テリィ・アーチャー・ウエルチ
Original Assignee
ユニシス コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24011192&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2610084(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ユニシス コーポレーション filed Critical ユニシス コーポレーション
Publication of JPH07249996A publication Critical patent/JPH07249996A/ja
Application granted granted Critical
Publication of JP2610084B2 publication Critical patent/JP2610084B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般的にいえば、データ
圧縮および圧縮データの伸長(decompressi
on)の分野に関するものである。さらに具体的にいえ
ば、ディジタル入力信号の流れにおいて新しく遭遇した
文字ストリングごとに接頭部ストリングと一つの拡張文
字からなる文字ストリングとして割り当てた符号信号を
用いて圧縮した符号信号の流れからディジタル入力信号
の流れを回復するデータ伸長方法とその方法を実現する
ためのデータ伸長装置ならびにデータ圧縮伸長方法およ
び装置に関する。
【0002】
【従来の技術】ディジタル・データ信号のストリームを
圧縮されたディジタル・データ信号に符号化して、圧縮
されたディジタル・データ信号を元のデータ信号に復元
するデータ圧縮装置が従来知られている。データ圧縮と
は、与えられたフォーマットのデータを元のものより少
ないビットをもつもう一つのフォーマットに変換するす
べての処理をいう。データ圧縮装置の目的はディジタル
情報の与えられた主要部を保持するに必要な記憶装置の
量またはその主要部を伝送するに必要な時間の量を節約
することである。圧縮比は、符号化されたデータの長さ
の元の入力データの長さに対する比として定義される。
圧縮比が小さければ小さいほど、記憶域または時間の節
約が大きくなる。データ記憶に必要な記憶装置またはデ
ータ伝送に必要な時間を減らすことによって、圧縮は金
銭上の節約をもたらす。磁気ディスクまたは磁気テープ
のような物理的装置がデータファイルの格納に用いられ
れば、圧縮されたデータを格納する装置に必要なスペー
スが小さくなって利用するディスクまたはテープが少な
くなる。電話線またはサテライト・リンクをディジタル
情報の伝送に用いる場合、伝送の前にデータを圧縮する
とコストが下がる。データ圧縮装置は、元のデータが高
い頻度で現れる記号または記号のストリングを持つよう
な冗長性を含む場合に特に有効である。データ圧縮装置
がデータの入力ブロックをより簡潔な形に変換し、その
あとでその簡潔な形を逆にそれの元のフォーマットの元
のデータに翻訳または伸長する。
【0003】例えば、日刊新聞の内容をサテライト・リ
ンクを経て遠隔の地に伝送して、そこで印刷することが
望まれることがある。適当なセンサが新聞の内容を直列
に発生する文字のデータ・ストリームに変換して、通信
リンクを介して伝送することができる。新聞の内容を含
む何百万の記号が伝送前に圧縮されて受信者のところで
再構成されるとすればかなりの量の伝送時間が節約され
るであろう。
【0004】別の例として、定期航空路予約データベー
スまたはバンキング・システム・データベースなどの広
範囲なデータベースが記録保管の目的で格納されると
き、データベースを構成する文字の全体が記憶に先立っ
て圧縮されて、あとで使用するには格納された圧縮ファ
イルから再び広げられるとすれば、かなりの量の記憶ス
ペースが節約されるであろう。
【0005】
【発明が解決しようとする課題】実際にそして一般に役
立つようにするためには、ディジタル・データ圧縮装置
がある基準を満足する必要がある。この装置はデータ圧
縮装置およびデータ伸長装置が仲介している機器によっ
て授受されるデータ速度に関して高い性能を与える必要
がある。データ圧縮できる速度は、圧縮装置に入る入力
データ処理速度によって決まり、普通数百万バイト毎秒
(メガバイト/秒)である。普通1メガバイト/秒を超
える速度を持つ今日のディスク、テープおよび通信装置
において達成されたデータ速度を保つには高性能が必要
である。従って、データ圧縮装置およびデータ伸長装置
は、最近の装置で達成される帯域幅に一致するデータ帯
域幅をもっていなければならない。従来のデータ圧縮装
置およびデータ伸長装置の性能は、普通、統計的データ
を記憶して圧縮処理および伸長処理を管理するのに用い
られるランダムアクセス記憶装置(RAM)などの速度
によって制限される。圧縮装置に対する高性能は、圧縮
装置に入る入力文字ごとに必要なramサイクル(読み
書き動作)の数によって特徴づけられる。記憶サイクル
の数が少なければ少ないほど性能は高い。高性能設計を
電話通信等の低速度の適用業務に対して経済的な低速R
AMを用いて利用でき、または磁気ディスク転送に対し
て超高速RAMを用いて利用できる。
【0006】データ圧縮装置およびデータ伸長装置の設
計におけるもう一つの重要な基準は、圧縮有効度であ
る。圧縮有効度は装置の圧縮比によって特徴づけられ
る。圧縮比は、圧縮された形のデータ記憶の大きさを圧
縮されていない形のデータ記憶の大きさで割った比であ
る。データが圧縮可能であるためには、そのデータは、
冗長度を含んでいなければならない。圧縮有効性は、圧
縮手順が入力データにおける冗長性のいろいろな形態に
いかに有効に調和するかによって決められる。代表的な
コンピュータに記憶されたデータ、例えば整数の配列、
テキストまたはプログラムなどにおいて、冗長は個々の
記号表記法、例えば数字、バイトの不統一な使用と共通
語などの記号列、空白記録欄などの頻繁な繰返しの両方
において起こる。有効なデータ圧縮装置は、両方の形式
の冗長性に応じる必要がある。
【0007】データ圧縮装置およびデータ伸長装置の設
計における別の重要な基準は、適応性の基準である。多
くの従来のデータ圧縮手段は、圧縮されようとするデー
タの以前の知識または統計を必要とする。従来の手順の
あるものは、データが受けられるときのデータの統計に
適用する。従来の処理における適応性は、法外な複雑度
を必要とした。普通には、汎用コンピュータ施設におけ
る必要条件である広範囲の情報形式にわたって適応圧縮
および伸長装置を用いることができる。圧縮装置は、デ
ータ統計の以前の知識がなくても良好な圧縮比を達成す
ることが望ましい。現在利用できるデータ圧縮手順およ
びデータ伸長手段は、一般には適応できないので、それ
を汎用用途には利用できない。
【0008】データ圧縮装置およびデータ伸長装置の設
計におけるもう一つの重要な基準は、可逆性の基準であ
る。データ圧縮装置が可逆性の性質をもつためには、そ
の装置は、圧縮されたデータを情報の変質または損失な
しにその元の形に再拡張または伸長することができなけ
ればならない。伸長されたデータと元のデータとは同一
であって互いに区別できないものでなければならない。
【0009】適応性のあるようにされているか、または
適応性のあるようにされる可能性のある汎用データ圧縮
手段が従来技術において知られており、二つの該当する
手順は、ハフマン(Huffman)法およびタンスタ
ル(Tunstall)法である。ハフマン法は広く知
られて用いられており、それに関してはハフマンの「最
小冗長性コードの構成のための方法」という論文[プロ
シーディングスIRE、第40巻、第10号、1098
〜1100頁(1952年9月)]に出ている。さらハ
フマンの方法については、R.ガラハ(Gallagh
er)の「ハフマンによる論文についての変形」という
論文[IEEE情報理論トランザクションズ,IT−2
4,No.6(1978年11月)]に見ることができ
る。適応ハフマン・コーディングは、固定長の記号列を
可変長さ2進語に写像する。適応ハフマン・コーディン
グは、その方法が解釈できる固定列長より長い入力記号
列内に冗長があるとき、それが有効でないという限界を
もっているという欠点がある。ハフマン法を実際に装置
として具体化するときは、入力列長は、RAMの価格の
ために12ビットを超えることは殆どないので、この方
法は、一般は良好な圧縮比を達成しない。なお、適応ハ
フマン法は複雑で、各入力記号に対して法外に多数の記
憶サイクルを必要とすることが多い。従って、適応ハフ
マン法は、望ましくないほどわずらわしく、高価でかつ
遅い傾向があるために、この方法を実際的な現在の設備
のほとんどに適さなくしている。
【0010】タンスタルの方法については、B.T.タ
ンスタルの「雑音のない圧縮コードの合成」という題名
の博士論文、[ジョージア・インスティチュート・オブ
・テクノロジ(1967年9月)]に見ることができ
る。タンスタルの方法は、可変長の入力記号列を固定長
の2進出力語に写像する。タンスタル法の適応形は、従
来技術に記載されていないが、一つの適応形を誘導でき
る可能性はあるものの、それは複雑で高性能の装置にす
るには不適切であろう。ハフマン法もタンスタル法も原
始記号の組合せの長さが段々長くなると符号化すること
ができなくなる。
【0011】従来技術の欠点の多くを克服するさらに別
の適応データ圧縮および伸長装置は、M.コーイン(C
ohen)、W.イーストマン(Eastman)、
A.レンペル(Lempel)およびJ.ジブ(Zi
v)の米国特許第4,464,650号(データの圧縮
と圧縮されたデータの伸長の装置と方法」(1981年
8月10日出願)に開示されたものである。前記米国特
許第4,464,650号の方法は入力データの記号の
ストリームを記号の適応増大する列に分解する。前記特
許第4,464,650号の方法は、入力文字ごとに多
数のRAMサイクルを必要として、圧縮および伸長を行
うために乗算および除算のような時間のかかる複雑な数
学的手順を用いるという欠点をもっている。これらの欠
点は、前記特許第4,464,650号の方法を多くの
経済的で高性能の装置として実現するのに不適当にする
傾向がある。前述のことから従来技術も前記米国特許第
4,464,650号の方法も高性能のアプリケーショ
ンに適する適応性があり、かつ効率的な圧縮装置および
伸長装置を提供しないことがわかる。既知の従来の設計
アプローチは、そのような装置には直接には適当ではな
い。
【0012】したがって、本発明の目的は、前述の新規
なデータ圧縮方式によって圧縮された圧縮符号を確実に
かつ経済的に元のデータに伸長する方法および装置を提
供することにある。
【0013】本発明の他の目的は、前述の新規なデータ
圧縮方式によってデータを圧縮し、かつその圧縮された
圧縮符号を確実にかつ経済的に元のデータに伸長するデ
ータ圧縮伸長方法および装置を提供することにある。
【0014】本発明は、上述の装置の欠点を、良好な圧
縮比を達成する経済的で高性能で適応性があり、可逆的
なデータ圧縮装置によって圧縮されたデータを伸長する
装置と方法を提供することによって克服する。本発明の
伸長装置に入力される圧縮データは圧縮装置によって入
力データ・ストリームからパース(構文解析して分解す
ること)されたデータ文字信号のストリングを格納(ス
トア)し、そのストリームとの最長一致を決めるため
に、そのストリームを格納されたストリングと比較して
データ文字信号のストリームを探索(サーチ)すること
によって、データ文字信号のストリームを符号信号の圧
縮されたストリームに圧縮する。この圧縮装置はまた、
データ文字信号のストリームからの最長一致を含み最長
一致に続く次の一つのデータ文字信号によって拡張され
た拡張ストリングを格納する。最長一致を拡張して格納
するとき、格納された拡張ストリングに対応する符号信
号がそれに割当てられる。符号信号の圧縮されたストリ
ームは、格納された最長一致に対応する符号信号で作ら
れる。データ文字の格納されたストリングが接頭部スト
リングと拡張文字で構成される。ストリングがその接頭
部ストリングに対応する符号信号によって格納される。
【0015】本発明によれば、符号信号の圧縮されたス
トリームは、接頭符号信号および拡張文字信号を含む文
字ストリングを構成して格納することによって伸張され
る。さらに詳しくいえば、本発明においては、符号信号
を逐次に受け、受けた符号信号が単一文字に対応するか
どうかを決定し、受けた符号信号が単一文字に対応する
場合は、該単一文字を出力し、受けた符号信号が単一文
字に対応しない場合は、ストリングテーブルの中に該符
号信号を少なくともデータ文字信号の接頭部ストリング
と一つの拡張文字信号として記憶し、次に、前記ストリ
ングテーブルを探索して、受けた符号信号の最終文字信
号を抽出し、前記受けた符号信号の接頭部ストリングに
ついて前記ストリングテーブルを探索して該接頭部スト
リングに対応するデータ文字ストリングの最終文字信号
を抽出し、この操作を次々の接頭部ストリングが単一文
字を表す符号信号になるまで繰返し、前記受けた符号信
号について抽出された文字ストリングの順序を逆にし、
抽出された順序を逆にされた文字ストリングを出力する
ことによって圧縮されたディジタルデータ信号を伸張す
る。
【0016】データ文字信号のストリングは、各探索繰
返しに対する限られた数のハッシュアドレスを与える限
定探索ハッシング技術によって記憶装置に入れられる。
【0017】本発明の第1の形態は、データ文字ストリ
ームにおける、データ文字ストリングに対応する圧縮さ
れた符号信号ストリームから、当該データ文字ストリー
ムを復元するデータ伸長方法において、前記圧縮された
符号信号ストリームを受信するステップと、その受信し
た符号信号から対応するデータ文字ストリングを取り出
すステップであって、受信した符号信号を用いて、前記
符号信号に対応するデータ文字ストリングをストアする
メモリから、対応するデータ文字ストリングを検索する
ステップを含むステップと、取り出されたデータ文字ス
トリングを用いて前記データ文字ストリームを復元する
ステップと、前記取り出すステップに応答して、拡張さ
れたストリングを前記メモリにストアすることによっ
て、前記符号信号に応答してデータ文字ストリングを前
記メモリに供給するステップとを具え、取り出されたデ
ータ文字ストリングを、次に取り出されたデータ文字ス
トリングの第1文字と連結させて、拡張されたストリン
グを形成し、および拡張されたストリングの各々を、対
応する符号信号を用いて、前記メモリから検索可能な形
態で、前記メモリにストアすることを特徴とする。
【0018】ここで、前記圧縮された符号信号ストリー
ムは、前記データ文字ストリーム中のデータ文字を探索
して、割り当てられた符号信号を持つデータ文字ストリ
ングとの最長一致を決定して生成されたものに対応し、
決定された最長一致に対応する符号信号を用いて前記圧
縮されたストリームを生成し、および各決定された最長
一致を、データ文字ストリームにおいて次に続く文字と
連結させて、最長一致を決定するために用いるデータ文
字ストリングを供給することを特徴とする。
【0019】ここで、前記対応するデータ文字ストリン
グを取り出すステップは、受信した符号信号が最初にス
トアされた文字に対応するか否かを決定し、対応する場
合は、当該文字を、取り出したデータ文字ストリングと
して用いるステップを含むことを特徴とする。
【0020】ここで、複数の予め定めたストリングを最
初にストアし、および前記圧縮されたストリームを伸長
する前に、対応する符号信号を前記複数の予め定めたス
トリングに割り当てるステップを含むことを特徴とす
る。
【0021】ここで、最初にストアされた予め定めたス
トリングは、前記データ文字ストリーム中の個別の文字
に対応するストリングを含むことを特徴とする。
【0022】ここで、受信した符号信号を用いて前記メ
モリをアドレス指定して対応するデータ文字ストリング
を検索することを特徴とする。
【0023】ここで、符号信号に応答して前記メモリか
ら逆の順序でデータ文字ストリングを検索し、および検
索されたデータ文字を反転させて、検索に用いた符号信
号に対応するデータ文字ストリングを生成するステップ
を含むことを特徴とする。
【0024】また本発明の第2の形態は、データ文字ス
トリームにおける、データ文字ストリングに対応する圧
縮された符号信号ストリームから、当該データ文字スト
リームを復元するデータ伸長装置において、前記圧縮さ
れた符号信号ストリームを受信する手段と、その受信し
た符号信号に応答して、対応するデータ文字ストリング
を取り出す手段であって、受信した符号信号に応答し
て、前記符号信号に対応するデータ文字ストリングをス
トアするメモリから、対応するデータ文字ストリングを
検索する手段を含む手段と、取り出されたデータ文字ス
トリングを用いて前記データ文字ストリームを復元する
手段と、取り出されたデータ文字ストリングに応答し
て、拡張されたストリングを、前記メモリにストアする
ことによって、前記符号信号に応答してデータ文字スト
リングを前記メモリに供給する手段とを具え、取り出さ
れたデータ文字ストリングを、次に取り出されたデータ
文字ストリングの第1文字と連結させて、拡張されたス
トリングを形成し、拡張されたストリングを、それぞ
れ、対応する符号信号を用いて、前記メモリから検索可
能な形態で前記メモリにストアすることを特徴とする。
【0025】ここで、前記圧縮された符号信号ストリー
ムは、前記データ文字ストリーム中の連続データ文字を
探索して、割り当てられた符号信号を持つデータ文字ス
トリングとの最長一致を決定して生成されたものに対応
し、決定された最長一致に対応する符号信号を用いて前
記圧縮されたストリームを生成し、および各決定された
最長一致を、データ文字ストリームにおいて次に続く文
字と連結させて、最長一致を決定するために用いるデー
タ文字ストリングを供給することを特徴とする。
【0026】ここで、前記対応するデータ文字ストリン
グを取り出す手段は、受信した符号信号が最初にストア
された文字に対応するかを決定し、対応する場合は、当
該文字を、取り出したデータ文字ストリングとして用い
ることを特徴とする。
【0027】ここで、複数の予め定めたストリングを最
初にストアし、および前記圧縮されたストリームを伸長
する前に、対応する符号信号を前記複数の予め定めたス
トリングに割り当てる手段を含むことを特徴とする。
【0028】ここで、最初にストアされた予め定めたス
トリングは、前記データ文字ストリームの個別の文字に
対応するストリングを含むことを特徴とする。
【0029】ここで、前記メモリは、受信した符号信号
に応答して対応するデータ文字を検索することを特徴と
する。
【0030】ここで、符号信号に応答して前記メモリか
ら逆の順序でデータ文字ストリングを検索し、および検
索されたデータ文字を反転させて、検索に用いた符号信
号に対応するデータ文字ストリングを生成する手段を含
むことを特徴とする。
【0031】また本発明の第3の形態は、入力されたデ
ータ文字ストリームを圧縮して圧縮された符号信号スト
リームにし、および前記符号信号を用いて、前記圧縮さ
れたストリームを伸長して前記データ文字ストリームを
復元する方法において、前記データ文字ストリームにお
けるデータ文字を探索し、データ文字ストリングに関連
する符号信号を有する第1メモリにストアされたデータ
文字ストリングとの最長一致を決定するステップと、最
長一致が決定されたデータ文字ストリングに対応する符
号信号を用いて、前記圧縮されたストリームを生成する
ステップと、拡張されたストリングを前記第1メモリに
ストアし、およびそれに関連した符号信号を割り当て
て、最長一致を決定するために用いるデータ文字ストリ
ングを供給するステップであって、最長一致を構成する
データ文字を、前記データ文字ストリーム中の次の文字
と連結して、拡張されたストリングを形成するステップ
とにより前記入力されたデータ文字ストリームを圧縮
し、および前記圧縮されたストリーム中の符号信号から
対応するデータ文字ストリングを取り出すステップであ
って、前記符号信号に対応するデータ文字ストリングを
ストアする第2メモリから、符号信号を用いて、データ
文字ストリングを検索するステップを含むステップと、
取り出されたデータ文字ストリングを用いて前記データ
文字ストリームを復元するステップと、前記取り出すス
テップに応答して、拡張されたストリングを第2メモリ
にストアすることによって、前記符号信号に対応して、
データ文字ストリングを前記第2メモリに供給するステ
ップとを具え、取り出されたデータ文字ストリングを、
次に取り出されたデータ文字ストリングの第1文字と連
結させて、拡張されたストリングを形成し、および拡張
されたストリングを当該拡張されたストリングに対応す
る受信された符号信号を用いて、前記第2メモリから検
索可能な形態で、前記第2メモリにストアすることを特
徴とする。
【0032】ここで、最初に、複数の同様の予め定めた
ストリングを前記第1および第2メモリの各々にストア
し、符号信号を割り当てるステップを含むことを特徴と
する。
【0033】ここで、最初にストアされた予め定めたス
トリングは、前記データ文字ストリーム中の個別の文字
に対応するストリングを含むことを特徴とする。
【0034】また本発明の第4の形態は、データ文字ス
トリームを圧縮して圧縮された符号信号ストリームに
し、および前記符号信号を用いて、前記圧縮されたスト
リームを伸長して前記データ文字ストリームを復元する
装置において、前記入力されたデータ文字ストリームを
圧縮する装置と、前記圧縮されたストリームを伸長する
装置とを具備し、前記圧縮する装置は、前記データ文字
ストリームにおけるデータ文字を探索し、データ文字ス
トリングに関連する符号信号を有するデータ文字ストリ
ングとの最長一致を決定する手段と、前記データ文字ス
トリングをストアする第1メモリと、最長一致が決定さ
れたデータ文字ストリングに対応する符号信号を用い
て、前記圧縮されたストリームを生成する手段と、拡張
されたストリングを前記第1メモリにストアし、および
それに関連した符号信号を割り当てて、最長一致を決定
するために用いるデータ文字ストリングを供給する手段
であって、最長一致を構成するデータ文字を、前記デー
タ文字ストリーム中の次の文字と連結して、拡張された
ストリングを形成する手段とを具え、前記伸長する装置
は、前記符号信号に対応するデータ文字ストリングをス
トアする第2メモリと、前記圧縮されたストリーム中の
符号信号から対応するデータ文字ストリングを取り出す
手段であって、前記第2メモリから、符号信号を用い
て、データ文字ストリングを検索する手段と、取り出さ
れたデータ文字ストリングを用いて前記データ文字スト
リームを復元する手段と、取り出されたストリングに応
答して、拡張されたストリングを前記第2メモリにスト
アすることによって、前記符号信号に対応して、デタ文
字ストリングを前記第2メモリに供給する手段とを具
え、取り出されたデータ文字ストリングを、次に取り出
されたデータ文字ストリングの第1文字と連結させて、
拡張されたストリングを形成し、および拡張されたスト
リングを、当該拡張されたストリングに対応する受信さ
れた符号信号を用いて、前記第2メモリから検索可能な
形態で、前記第2メモリにストアすることを特徴とす
る。
【0035】ここで、最初に、複数の同様の予め定めた
ストリングを前記第1および第2メモリの各々にストア
し、符号信号を割り当てる手段を含むことを特徴とす
る。
【0036】ここで、最初にストアされた予め定めたス
トリングは、前記データ文字ストリーム中の個別の文字
に対応するストリングを含むことを特徴とする。
【0037】
【実施例】本発明はデジタルデータ文字信号のストリー
ムまたは列を圧縮して、圧縮されたディジタル符号信号
の対応するストリームを与えるデータ圧縮装置を備えて
いる。例えば、圧縮される予定のデータは、英語の原文
資料、格納されたコンピュータ記録などを含んでいても
よい。今日のデータ処理装置および通信装置において
は、圧縮を行われるはずのアフファベットの文字は、処
理されてASCIIフォーマットのような都合のよいコ
ードで2進数字のバイトとして伝達されることがわかっ
ている。例えば、入力文字を8ビット・バイトの形式で
256文字の文字体系全体を受けることができる。圧縮
装置からの圧縮符号信号は、例えば、記録保管の目的の
ために電子記憶ファイルに格納されるか、または伸長を
行う遠隔の場所に伝送されてもよい。このほかに、ディ
スク記憶装置のような電子記憶ファイルが入力電子回路
に圧縮装置を備え、出力電子回路に伸長器を備えること
ができ、それによってファイルに入るすべてのデータを
記憶するために圧縮して、ファイルから検索されたすべ
てのデータを利用機器に伝送する前に伸長する。前述の
従来の圧縮装置および伸長装置は、圧縮および伸長のそ
のような用途に適合させる性能または適応性を与えな
い。本発明に従って実施された高性能適応装置をそのよ
うに用いることができる。
【0038】多数の設計オプションが被圧縮データおよ
び装置の所望の特性に従う種々の組合せで本発明の実施
例に用いることができる。発明の三つの実施例を以下に
説明する。一つの実施例は、最高性能を与えるオプショ
ンを組合せており、第2の実施例は、最高圧縮を与える
オプションを組合せており、第3の実施例は、最高性能
実施例のプログラムされたコンピュータの例を提供す
る。
【0039】本発明の伸長装置に入力される圧縮データ
信号を生成する圧縮装置は、データ文字の入力ストリー
ムをストリングまたはセグメントにパースして、各スト
リングを識別する符号信号を伝送する。圧縮装置が初め
て遭遇したデータ文字以外は、各パースされたストリン
グは、前に認識されたストリングに対する最長一致を含
んでいる。圧縮装置は、認識されたストリングに対応す
る符号信号を伝送する。1ストリングの文字が入力スト
リームからパースされると、パースされたストリング
は、入力ストリームにおいて次に発生する文字によって
拡張され、あとで符号化に利用されるために圧縮装置に
おいて符号化され、そこに記憶される拡張ストリングを
形成する。従って認識されている文字シーケンスは、1
ブロックのデータを圧縮する過程で統計的情報を集める
とき、平均長さがたえず大きくなっている。拡張文字
は、次のパーシング繰返しにおける最初の文字として用
いられる。パーシングは、データを1回通すだけで達成
され、初めの文字から出発して、1回の1文字を分離す
る。従って、単一文字のストリング以外は、各ストリン
グは、前に記憶されたストリングと一致する接頭部スト
リングと拡張文字として記憶される。そのストリング
は、そのような各ストリングを接頭部の符号信号表現と
拡張文字の実際の表現または暗示表現を一緒にして記録
するのが都合よい。パーシングは、データ・ストリーム
の各文字間に仮想コンマを挿入し、それによってパース
されたストリングまたはセグメントを区切るものとして
概念化できる。従って、本発明においては、一致を得る
ための未処理のデータストリームの探索は、先に観察さ
れたストリングとの最長一致を見出すために一つのコン
マから次に続くコンマを一文字越えたところまでを探索
することを含む。
【0040】図1を参照すると、データ文字のストリー
ムの一部分の略図が示されており、そこではXがアルフ
ァベットの任意の文字を表している。コンマは、パーシ
ングを表すためにのみデータストリーム中に示されてい
る。このデータストリームのストリング1が仮想コンマ
2および3によってパースされている。ストリング1は
前のストリング1´に一致し、ストリング1´はコンマ
2に続く入力データストリームに一致するコンマ2に先
行した最長拡張ストリングである。ストリング1´は、
前に符号化されたものであるから、その符号は、ストリ
ング1に遭遇したとき圧縮装置によって伝送される。次
いで圧縮装置は、接頭部ストリング1と拡張文字5を含
む拡張ストリング4を符号化して記憶する。拡張文字
は、それがどんな文字であるかに関係なく、接頭部1に
続くデータストリームの中の次の文字である。すなわ
ち、拡張文字5は、前に、データストリームの中で現れ
た文字であってもよいし、またはそれは初めて遭遇する
アルファベットの1文字であってもよい。
【0041】圧縮装置は、もう一度最長一致が達成され
るまで拡張文字5で始まる次のパーシングの繰返しを仮
想コンマ3のところで開始する。このようにして、前に
拡張されたストリング6´にマッチするストリング6が
パースされる。前の繰返しにおけると同じようにまた、
ストリング6´に対する符号信号は、伝送され、ストリ
ング6は後続の文字によって拡張され、拡張されたスト
リングは、符号化されて記憶される。続くパーシング繰
返しにおいては、符号化されて記憶されたストリング4
にマッチするストリング7がパースされる。このパーシ
ング繰返しで伝送された符号信号は、拡張ストリング4
に割当てられたものである。
【0042】上述のように、圧縮装置によって与えられ
た符号信号を受けた伸長装置は、符号化接頭部ストリン
グと拡張文字の形でデータを記憶する。従って、伸長装
置は、一つの受信符号信号と一つの拡張文字を含むエン
トリーを記憶装置内に構成する。例えば、続けて図1を
参照すると、伸長装置がストリング1に関連した符号信
号を受けると、その伸長装置が前にストリング1′を構
成して記憶しているので、そのストリングを構成する文
字が、以下に詳細に説明する方法で、再構成される。次
に続く繰返しにおいて、伸長装置がストリング6に関連
した符号信号を受けると、そのストリングを構成する文
字が検索される。この時点で、伸長装置は、ストリング
1からの符号信号を受け取って拡張文字5を検索してい
るので、以下に詳細に説明する方法でストリング4を構
成して記憶できる。
【0043】本発明において、入力バイトの各シーケン
スが実施例次第で固定長または可変長のものであっても
よい符号信号に圧縮される。上述のように、各入力バイ
ト列は、各符号識別子を割当てられ、一つの列が入力デ
ータ・ストリームの中で再び出てくるときはいつも、同
じ識別子が再び伝送される。各1バイト列が各符号を割
当てられ、一つの列が再び出てくるときはいつも、1バ
イトだけ拡張され、新しい符号が拡張されたシーケンス
に割当てられる。概念的には、圧縮装置は、各データブ
ロックを格納されたセット内のゼロストリングのみから
開始する。圧縮装置は、新しい文字が出てくるたびにそ
のセットに1文字のストリングを入れ、次にこれらの記
憶された1文字ストリングをさらに長いストリングを形
成するのに用いる。各ストリングがそのセットに加えら
れると、それは、一つの符号信号を割当てられる。入力
からの一つの文字ストリングがセット内で見出される度
に、次の入力文字がそのストリングに追加され、拡張さ
れたストリングがそのセットの中にあるかどうかを決め
るためにそのセットが探索される。拡張されたストリン
グが既に存在しなければ、そのストリングがセットに入
れられる。随意選択的に、そのストリングセットをすべ
ての単一文字ストリングを含むように初期設定できる。
これは、より高い性能の装置として実現できるようにに
することもあるが、ある程度の圧縮効率を失うことがあ
る。圧縮装置からの出力符号信号は、同一文字列が以前
に起こったことを示しているものとして考えることがで
きる。
【0044】前記米国特許第4,464,650号のデ
ータ圧縮および伸長装置において、拡張文字が各認識さ
れた列に追加されて拡張された列が符号化された。拡張
列の符号化表現は、それの圧縮符号として圧縮装置によ
って伝送された。その代りに、本発明の圧縮装置は、拡
張列を記憶して、認識された列に対する符号を伝送す
る。認識された列は、拡張列の接頭部である。記憶され
た拡張列は、次にあとで符号化するために用いられる。
前記米国特許第4,464,650号の方法をこのよう
に変更すると、前記米国特許第4,464,650号に
おいて用いた時間のかかる、やっかいな数学的操作およ
び乗算・除算装置のような付随のハードウェアをなくす
ことによってデータ圧縮および伸長装置を著しく簡単に
することができる。この変更は、装置の性能を著しく高
めると同様にまた、普通に遭遇するデータの場合の圧縮
効率を増加させる。これは、前記米国特許第4,46
4,650号の装置では、圧縮された符号信号の一部分
として伝送される拡張文字が等しく起こりそうな文字体
系のすべての記号に見合った多数のビットを含むからで
ある。本発明では、拡張文字は、次の圧縮ストリング符
号の一部分として伝送されるので、文字の各ストリング
について行われた圧縮に一致して必要とするビットの数
が少なくなる。
【0045】本発明は、限定探索長の計算されたアドレ
ス・ハッシング装置を用いて各ストリングをストリング
・テーブルに入れ、そのストリング・テーブル内で各ス
トリングを探索する。ハッシング関数は、前の符号信号
と拡張文字とからなるハッシュ・キーを用いてN個のハ
ッシュ・テーブル・アドレスの組を与える(ここでNは
普通1ないし4である)N個のRAM記憶場所は、逐次
に探索され、その項目がN個の記憶場所になければ、そ
れはそのテーブル内にないと考えられる。圧縮のとき
に、テーブルに挿入されるべき新しいキーをN個の割当
て場所に受入れできなければ、それはテーブルから除外
される。この限定探索ハッシング法は、圧縮効率をわず
かに下げるが、装置として実現するのを非常に簡単にす
る。N個のハッシュ・アドレスが反復したRAMの中で
並列に探索される別の実施例を用いてもよい。
【0046】本発明は、固定長または可変長の圧縮され
た符号信号を用いて装置として具体化することができ
る。固定長符号信号の実施例は、圧縮効率においてわず
かの損失を伴いながら装置として実現する場合の簡単化
をもたらす。固定長符号実施例は、RAMのスペース必
要度と可変符号長による装置としての実現に必要な符号
シフティング機構の複雑さを小さくする傾向がある。し
かし固定長符号による装置の実現は非常に高い性能の装
置の実現を行うときに望ましい。
【0047】一般には、本発明は、入力文字信号の可変
ストリングを出力符号記号信号に写像することによって
圧縮を行う。圧縮装置は、ストリング・テーブル(RA
M)の中に圧縮装置が認識するストリングのリストを記
憶し、各ストリングに対しては対応する出力符号信号を
記憶する。そのように記憶されたストリングの組は、ど
んな一連の入力文字も記憶されるストリングにパースで
き、従って、出力符号に写像できるように構成される。
パーシングは、どの繰返しにおいてもストリング・テー
ブルの中に最長ストリングに一致するすべての連続する
入力文字を使いきり、対応する出力符号を伝送すること
によって達成される。最長一致は、次の入力文字によっ
て拡張され、ストリング・テーブルに記憶され、そして
対応する符号を割当てられる。
【0048】従って、ストリング・テーブル内のストリ
ングの組を合成することは、現在のデータブロックの統
計に適応し、かつその統計の一つの表現法である。明確
にいえば、そのストリングの組に追加される各ストリン
グは、その組に既にある一つのストリングを1文字で拡
張したものである。一つのストリングがそのセットに加
えられるのは、それが実際に入力データにおいて観測さ
れたのちにおいてである。従って、一つの長いストリン
グがそのセット内に現れる可能性のあるのは、それが何
度も出てきたので頻繁に再び現れると期待できる場合だ
けである。このストリングセットは、できればランダム
アクセス記憶装置(RAM)にテーブルとして記憶され
るのがよい。各ストリングは、連結トリー構造と考えて
もよいものに記憶される。各ストリングは、少なくとも
暗黙的にすなわち間接的に、その符号記号、そのストリ
ングの最後の文字および最後の文字以外のすべてのスト
リング文字を含むストリング接頭部の符号記号で記憶さ
れる。各文字が個別に得られ、かつ各接頭部符号が逐次
に呼び出されるので、伸長装置は、一つのストリングを
複合するときに多重RAMアクセスを用いる。
【0049】各データ信号は、入力文字列に対する最長
一致を探すのを容易にするようなやり方でストリング・
テーブル内に記憶される。各入力文字が読まれると、そ
れが既に認識された一つのストリング(新しい列の始め
にゼロストリングで始まったもの)に付け加えられて、
その新しいストリングは、それがそのテーブルの中にあ
るかどうかを決めるために検査される。新しいストリン
グがそのテーブルの中にあれば、その符号が検索され
て、その処理が新しい文字と新しい符号とで繰返され
る。それらのストリングをそのように呼び出すために、
それらのストリングは、“接頭部符号、拡張文字”の組
(タブル)によって識別されるのが都合よい。限定探索
ハッシング装置がストリング・テーブルをくまなく探索
するのに用いられる。
【0050】本発明を実施する際に用いることのできる
ハッシング装置は、一つの符号、文字組合わせに対して
一連の記憶アドレスを発生する関数 ハッシュ(符号、文字)→アドレス1,アドレス2・・・ を含む。テーブルに一つのストリングを挿入すると、発
生したRAMアドレスが空サイトを発見するまで逐次に
呼出され、項目がその点に挿入される。一つの項目を検
索するとき、同じアドレス列がその項目が発見されるか
または空サイトが発見されるまで呼出され、空サイトが
発見された場合にその項目はテーブルの中に存在しない
と定義される。各占有されたサイトにおいては、そのス
トリングのための識別用符号、文字の組は、そのサイト
を占有するものが所望の項目であるかどうかを決めるた
めに比較されてもよい。あとで説明する理由によって、
識別用符号を比較することは、実際には、この実施例で
必要なだけである。
【0051】本発明で用いられたハッシュ関数において
は、取り出されて用いられたアドレスの数は、小さな一
定値N(Nは普通1ないし4である)に限定される。一
つの項目をN回の呼出しでストリング・テーブルに挿入
できなければ、その項目は用いられない。テーブルから
検索される予定の一つの項目がN回の呼出しの中で所在
をつきとめられなければ、それはテーブル内にないと定
義される。この限定探索の特徴は、圧縮効率の小さな損
失をもたらすが、性能を著しく増加させる。本発明はB
ビット・バイトの文字体系について圧縮を行うとして説
明する。本発明を実施する際に用いられるハッシュ関数
は、任意の一つの符号に関連したアドレスの組すなわち
B 拡張文字すべてに対するN個のアドレスすべてがど
のアドレスをも2回は含まない。従って、一つのアドレ
スが特定の符号、文字の組に対してアクセスされると、
その符号の比較はその記憶場所の占有物の識別を行うの
に十分である。その文字の値をRAMに記憶する必要は
ない。従って、RAMのスペースは、ハッシュ関数のこ
の特徴のために保存される。なお、ハッシュ関数は、符
号または文字の連続する値を異常なほど激しく使っても
どの特定のアドレスの組をも使い過ぎることにはならな
いように設計される。これは同じ最初のアドレス値をも
つ任意の二つの符号、文字の組が同じ第2のアドレス値
をもたないことを確実にすることが可能であれば、それ
によって達成される。ハッシュ関数によって作られた幾
つかのアドレスを、二つの全く同じRAMを同時に探索
して装置の性能をさらに高めることができるように並列
に与えてもよいことが分かるであろう。上記の基準を満
足する多くのハッシュ関数が本発明を実施するのに満足
に機能することになる。特定の適当なハッシュ関数を以
下に説明する。上記の基準を満足する他のハッシュ関数
を通常のやり方で導出できることがわかる。
【0052】以下に説明する本発明の実施例において、
圧縮装置からの出力符号信号は、Cビットの公称語長
(2C はストリング・テーブルの大きさ以下である)を
もつことになる。しかし、ストリング・テーブルが最初
に構成されようとしているとき、各ストリングを1回の
繰返しの間に利用できるものから選択するためには、C
より少ないビットを必要とする。最高の圧縮は、漸新的
に大きくなる出力符号をCビットの限界まで伝送する場
合に達成される。このアプローチは、可変符号を固定バ
イト配向に整列させるのに追加の出力ハードウェアを用
いる。出力語長はまた新しい入力文字の認識に従って変
わることがある。以下に説明する実施例の一つにおい
て、一つの入力文字がまず出てくると常に、その文字そ
のもののビットパターンがあとに続くゼロ・ストリング
符号が与えられる。従って、これらの出力は正規のスト
リング符号よりいくらか長い。あとで説明するようにし
て、出力長のこの変動は、入力データを処理する前にす
べての単一文字ストリングを含むようにストリング・テ
ーブルを初期設定することによって避けられる。このア
プローチは、それがそうでない場合に必要な任意のビッ
ト・シフト・ハードウェアをなくすが、圧縮を小さくす
ることがある点で装置としての具体化の複雑性を簡単に
する。圧縮の低減は、未使用の単一文字に割当てられた
符号が有益に用いられ得ないが、すべての割当てられた
符号を区別するのに必要なビットの数を大きくするので
起こる。この圧縮の低減は、可変長符号を利用する初期
ストリングの圧縮の間に起こるだけである。
【0053】以下に説明する発明の諸実施例において、
伸長プロセスで用いるストリングテーブルは、圧縮プロ
セスの場合と論理的に同じであるが、いくらか異なって
記憶される。各符号信号を伸長装置によって受けると
き、それが接頭部ストリング符号と拡張文字とに翻訳さ
れるストリング・テーブル内で直接に探される。次に接
頭部符号が探されて翻訳され、その処理が空ストリング
に出合うまで繰返される。しかしこの処理は、その文字
ストリングを圧縮装置によって受けた順次配列と逆の配
列になっているデータ文字を発生する。ストリング内文
字列を逆にする二つの技術を以下に説明する。LIFO
スタック(後入れ先出し)が各文字を一時保持するのに
用いられ、各文字が伸長装置によって発生されると、そ
れはスタックの上に押し上げられる。反復の終りには、
各文字が正しい順序でスタックから読出される。別のや
り方として、一つのストリング長さカウントがストリン
グテーブル内の各符号に対して維持されて一つの文字を
読み出すとき、それをランダム・アクセス出力バッファ
内の適当な位置に直接置くことができるようにしてい
る。
【0054】図2および図3は本発明の最高性能の実施
例を実現する圧縮装置および伸長装置をそれぞれ示して
いる。この実施例は、経済的で高速な圧縮処理を与え
る。Bビットの文字の大きさおよびCビットの圧縮符号
の大きさが用いられる。ストリング・テーブルは、2C
の記憶場所を含む。普通には、Bは、8ビットであり、
Cは、12ビットで、他の文字および符号の大きさをこ
の発明を実施するのに利用できるようにしている。この
実施例は、ハッシュされたストリング・テーブル内のス
トリング記述項のアドレスとして用いられるCビットの
固定長符号記号信号を用いる。最初の2B 記憶場所は、
各単一文字ストリングを含むように初期設定される。こ
の圧縮装置は、各記述項にCビットの接頭部ストリング
符号だけを含むストリング・テーブルを用いる。伸長テ
ーブルは、この同じ符号とそのほかに現在のストリング
を合成するのに接頭ストリングに追加されるBビットの
拡張文字を含む。
【0055】圧縮装置からの出力符号記号信号として用
いられるストリング・テーブルに入るアドレスは、図2
および図3の実施例の説明の次に詳細に説明するハッシ
ュ関数を用いて得られる。ハッシュ関数は、N個のCビ
ット・アドレスを順次に発生する。図2および図3の実
施例は、図4および図5の実施例とともに以下に説明す
る多数の機能を制御する制御装置を用いる。例えば、ハ
ッシュ関数装置は、N番目のアドレスが発生したときに
制御装置に知らせる。本発明のハードウェア実施例は、
順次状態機械(シーケンシャル・ステート・マシーン)
として実現され説明される。圧縮装置の制御装置は、そ
れらの種々のブロックから信号を受けて、機械の現存の
状態に従って圧縮装置の構成要素を制御するためにそれ
らへ信号を与える。説明した各シーケンスを制御するの
にどんな標準制御論理装置をも利用できる。例えば、1
状態ごとに1フリップ・フロップを付勢して、各状態の
間実行されるべき演算上の接続および機能を区別し、そ
の状態を制御するフリップ・フロップをその状態の間付
勢してもよい。
【0056】次に図2を参照すると本発明の伸長装置へ
の圧縮入力符号信号を発生する最高性能の実施例の圧縮
装置が示されている。この圧縮装置は、バス10に入力
文字信号を受けてバス11に圧縮出力符号信号を与え
る。入力文字は外部装置からバス10に与えられる。外
部装置は、また入力文字信号がその外部装置から利用で
き、バス10に加えられるときにつねに、データ利用可
能信号をライン12に与える。ライン12上のデータ利
用可能信号は、圧縮装置制御装置13に加えられる。圧
縮装置制御装置13は、図2の圧縮装置のブロックのす
べてにリード14を経て制御信号を与える。圧縮装置制
御装置13は、図2の圧縮装置を制御状態を介して以下
に詳細に説明するような方法で順序付けする。制御装置
13はまた、追加の入力文字を要求するためライン15
を通して外部装置に文字ストローブ信号を与える。出力
符号信号がバス11の上で利用できるとき、制御装置1
3は、符号ストローブ信号をリード16を通して外部装
置に与える。
【0057】バス10の上の入力文字は、Bビット文字
レジスタ17に入れられる。単一文字ストリング符号を
作るために、文字レジスタ17からのBビット文字バイ
トは、バス18を経てCビット符号番号レジスタ19の
B個の下位ビットに挿入される。符号番号レジスタ19
の高位桁のC−Bビットをリード20の上の制御信号を
用いてゼロにセットできる。
【0058】レジスタ19からの符号記号信号およびレ
ジスタ17からの文字信号は、それぞれバス21および
22を経てハッシュ関数回路23に加えられる。ハッシ
ュ関数回路23は、バス21の上のCビット符号信号を
バス22の上のBビット文字と結合してバス24の上に
N個のCビット・アドレスを逐次に与える。ハッシュ関
数回路23は、バス24を通して与えられたハッシュア
ドレスがそのシーケンスのN番目のアドレスであるかど
うかをリード25を経て制御装置13に知らせる。
【0059】ハッシュ関数回路23はまた、制御装置1
3から「新ハッシュ」指令および「次のハッシュ」指令
を受ける。制御装置13は、ハッシュ関数回路23に指
令して「新ハッシュ」指令に応答するN個のハッシュ・
アドレスの最初のものおよび「次のハッシュ」指令が相
次いで発生するのに応答して相次ぐハッシュ・アドレス
を与える。既に説明したように、ハッシュ関数23がN
番目のハッシュ・アドレスを与えたとき、一つの信号が
リード25を介して制御装置13に戻される。
【0060】バス24の上のハッシュ・アドレスは、2
B に等しい一定値信号をも受ける比較器26に加えられ
る。比較器26は、バス24の上のハッシュ・アドレス
を値2B と比較して、バス24の上のハッシュ・アドレ
スが2B より大きいかまたは2B 以下であるかどうかを
指示する信号をリード27を介して制御装置13に与え
る。
【0061】バス24の上のハッシュ・アドレスはま
た、CビットRAMアドレス・レジスタ28にも加えら
れる。RAMアドレス・レジスタ28にロードされたア
ドレスは、圧縮装置ストリング・テーブルを記憶するの
に用いられるRAM29を呼出す。RAM29は、2C
のCビット記憶場所を含んでいる。各ストリングは、そ
のストリングに割当てられた符号によってアドレス指定
された記憶場所にあるその接頭符号を記憶することによ
ってRAM29の中に記憶される。そのストリングに割
当てられた符号は、後述のようにして、ストリング拡張
文字と接頭部符号をハッシュすることにより得られる。
【0062】RAM29は、「読出し」指令および「書
込み」指令を制御装置13から受けてRAM29の「読
出し」、「書込み」機能を制御する。RAM29は、2
B に等しいCビットの値またはCビット符号番号信号を
レジスタ19からバス30を介して受取るように制御装
置13によって制御される。
【0063】「書込み」指令をRAM29に加えるのに
従って、一定値2B またはバス30の上の符号番号のい
ずれかが制御装置13からの制御信号に従ってレジスタ
28の中のRAMアドレスによって呼出された記憶場所
に書込まれる。RAM29はまた、「読出し」指令に応
答して呼出された記憶場所のCビット内容をバス31に
与える。バス31の上のRAM出力および符号レジスタ
19の出力は、比較器32へ入力として加えられる。比
較器32はまた、2B に等しい一定値信号を受ける。比
較器32は、RAM29の出力を符号番号レジスタ19
の出力および2B と比較する。比較の結果は、リード3
3を経て制御装置13に与えられる。リード33の上の
比較信号は、バス31の上のRAM出力レジスタ19か
らの符号番号に等しいか、または2B に等しいか、また
はどちらでもないかを制御装置13に指示する。あとで
説明する理由のために、制御装置13は、RAMアドレ
ス・レジスタ28を制御して、その内容をバス34を経
て符号番号レジスタ19に転送する。
【0064】図2の圧縮装置は、Cビット信号をバス3
6を経てRAMアドレス・レジスタ28に与える初期設
定計数器35を備えている。計数器35はそれに加わる
ゼロの値をもつ信号を介してゼロにセットできる。制御
装置13は、計数器35を計数指令を介して制御して、
計数指令を加えるごとに計数器の内容に1を加える。計
数器35は、それが計数値2C に達したときを制御装置
13にリード37の上のキャリアウトまたはオーバフロ
ー信号を経て知らせる。初期設定計数器35はRAM2
9を初期設定するのに用いられ、RAM29の記憶場所
のすべてを逐次に呼出して空状態を指示するように選択
された一定値2B を書込むことによって空にする。
【0065】図2の圧縮装置の基本動作を要約すると次
の通りである。
【0066】1.各データブロックごとに、RAMを空
に初期設定する。
【0067】2.各バイト・ストリングの最初の文字に
ついて: 最初の符号番号として、文字を符号番号レジスタに入れ
る。
【0068】3.相次ぐ文字について: ハッシュ(符号、文字)→一連のN個のRAMアドレ
ス;各記憶場所ごとにつぎつぎに、RAM出力=符号番
号であれば:RAMアドレス→符号番号レジスタ;もう
一つの文字でこのステップに再び入る。
【0069】RAM記憶場所が空であれば:符号番号レ
ジスタからRAMに書込み、符号値を出力として伝送す
る。次にステップ2へ行く。
【0070】そうでないときは、すべてのハッシュ・ア
ドレスの後、符号値を出力として伝送する;ステップ2
へ行く。
【0071】図2を続けて参照すると、以下のものが図
2の圧縮装置の状態機械語記述である。
【0072】状態0:各データブロックの始めにおける
待ち状態 初期設定計数器をゼロにセット。
【0073】データ使用可能信号を待つ:次いで状態1
へ行く。
【0074】状態1:RAMを初期設定する 初期設定計数器→RAMアドレス・レジスタ 2B →RAMデータ入力 RAMを書込む +1を初期設定計数器に加える 初期設定計数器<2C なら、状態1を繰返す、そうでな
ければ状態2へ行く。
【0075】状態2:符号を開始するブロックの最初の
文字を読出す。
【0076】文字を符号番号レジスタ(下位B個のビッ
ト)に入力する ゼロを符号レジスタ(上位C−B個のビット)に入力す
る 状態3へ行く。
【0077】状態3:このストリングの中の次の文字を
処理する 次の文字を読出す、使用できる新しい入力文字がなけれ
ば:符号番号レジスタの内容を出力に伝送する;状態0
へ行く。
【0078】ハッシュ(符号番号レジスタ、次の文字)
→RAM
【0079】
【外1】
【0080】RAMを読出す。
【0081】(RAM出力)=(符号番号レジスタ)な
らば: RAMアドレス→符号番号レジスタ;状態3へ行く。
【0082】(RAM記憶場所)=2B ならば:状態5
へ行く。
【0083】その他の場合:状態4へ行く。
【0084】状態4:探索を継続する 次のハッシュ(符号、文字)→RAMアドレス
【0085】
【外2】
【0086】その他の場合:状態4を繰返す。
【0087】RAMを読出す (RAM出力)=(符号レジスタ)であれば: であれば、RAMアドレス→符号番号レジスタ;状態3
へ行く。
【0088】(RAM出力)=2B ならば:状態5へ行
く。
【0089】その他の場合:最終ハッシュ繰返しであれ
ば: 状態6へ行き、そうでなければ状態4を繰返す。
【0090】状態5:新ストリングを作る (符号番号レジスタ)をRAMに書込む、状態6へ行
く。
【0091】状態6:ストリングの終り (符号番号レジスタ)→出力 文字レジスタ→符号番号レジスタに(下位Bビット) ゼロ=符号番号レジスタ(上位C−B個のビット)、状
態3へ行く。
【0092】上に与えられた状態機械語記述に関する図
2の圧縮装置の動作のさらに詳細な説明を次に行う;
〔0〕.待ち状態. 1ブロックの入力文字を待ってい
る間、図2の圧縮装置は、この状態にある。待ち状態の
間、制御装置13は、初期設定計数器35をゼロにリセ
ットする。入力データを供給する外部信号源からリード
12を通ってくるデータ使用可能信号は、入力データが
利用できるときを指示するために用いられる。データが
使用可能になったとき、リード12の上のデータ使用可
能信号は、制御装置13に初期設定状態に入るように合
図する。
【0093】〔1〕.初期設定状態. ランダム・アク
セス記憶装置(RAM)29の内容は、空であるように
初期設定される。空記号は、実現の便宜上2B として任
意に選ばれる。従って、「初期設定状態」では、値2B
が記憶装置29の各記憶場所から書込まれる。空記号
は、ストリング符号には決して割当てられてはならな
い。記憶場所ゼロないし2B は、それらは決して呼出さ
れないであろうけれども、実現の便宜上空に初期設定さ
れる。概念的には、記憶場所ゼロないし2B −1は、2
B 個の単一文字ストリングを含むように初期設定され、
それらのストリングは、それらが表す文字に等しい符号
値を予め割当てられている。従って、2B 個の単一文字
ストリングは、符号ゼロないし2B −1を予め割当てら
れている。この初期設定は、Cビットの初期設定計数器
35内の値をバス36を経てRAMアドレス・レジスタ
28にゲートすることによってメモリサイクルを繰返し
て達成される。RAM29への入力は、Cビットの一定
入力値2B から選択される。初期設定計数器35は、現
在の内容に1を加えることによって計数を上げるように
指令される。この一連の事象は、各記憶場所に対して1
回ずつ合計2C 回繰返される。2C のそのような計数の
のちに初期設定計数器35は、2C の計数値が起ったこ
とを知らせるオーバフローまたはキャリアウト信号を制
御装置13にリード37を経て与える。これによって図
2の圧縮装置は「最初の文字の状態」に進む。
【0094】〔2〕.最初の文字の状態. 初期設定の
のち、図2の圧縮装置はバス10の上にある第1入力文
字を読取って、それのB個のビットをBビット文字レジ
スタ17にゲートする。次に制御装置13によって信号
を文字ストローブ・ライン15に与えて、次の入力文字
信号を外部装置によって入力バス10の上に与えさせ
る。次に文字レジスタ17の中のB個の文字ビットをバ
ス18を経てCビット符号番号レジスタ19の下位(右
側)Bビットにゲートして、レジスタ19の上位C−B
ビットをゼロにセットする。この手順は、最初の入力文
字をその単一文字ストリングに対してあらかじめ割当て
られた符号値に変換する。図2の実施例において、2B
個のあらかじめ割当てられた符号値は、それらが表す文
字体系の文字にそれぞれ等しい。最初のストリングを開
始してしまうと、図2の圧縮装置の繰返しの主サイクル
である「次の文字状態」に入る。
【0095】〔3〕.次の文字状態. この状態に入る
と、一つの正しい文字ストリングが入力からパースされ
てしまっており、その符号値が符号番号レジスタ19に
入っている。次の文字は、こんどは、バス10から文字
レジスタ17に読出され、ライン15の上の文字ストロ
ーブ信号は、外部データ源に戻される。ライン12の上
のデータ使用可能信号が、そのような文字がバス10の
上で使用できなかったことを示す場合には、圧縮装置は
データブロックの終りに達していたことになる。その状
況では、符号番号レジスタ19にある最終データ・スト
リングに対する符号値は、出力符号としてバス11を通
して伝送されて、新しい圧縮された符号信号が与えられ
ていることを指示するライン16の上の符号ストローブ
信号が外部装置に送られる。次に制御装置13は、圧縮
装置を「待ち状態」に戻す。
【0096】しかし、そのデータブロックの終りに達し
ないで、新しい文字が利用できて、文字レジスタ17に
入れられたとすれば、このBビットの文字は、バス22
を経てハッシュ関数回路23の中へバス21を通して与
えられたレジスタ19の中のCビットの符号番号と結合
される。制御装置13からの「新ハッシュ」指令の制御
を受けて、ハッシュ関数回路23は、この符号と文字の
組合せに対する第1のRAMアドレスを与える。バス2
4の上のこのハッシュ・アドレスは、比較器26によっ
て値2B と比較される。バス24の上のハッシュ・アド
レスが2B 以下であれば、この記憶場所は、呼出し不能
で、次のハッシュ・アドレスが「次のハッシュ状態」へ
ゆくことによって選択される。2B 以下のアドレス値
は、2B より小さな値が単一文字のストリングに対する
符号値であるようにあらかじめ割当てられており、かつ
値2B は、空記憶場所(未使用の符号値)を識別するた
めにあらかじめ割当てられたので、新しい符号値として
認められない。
【0097】ハッシュ・アドレスが2B より大きければ
(通常の場合)、バス24の上のハッシュ・アドレスが
RAMアドレス・レジスタ28にゲートされ、RAM2
9がそのアドレスの内容を読取るように制御される。バ
ス31の上のCビットの結果は、比較器32においてレ
ジスタ19からの符号値と値2B との両方に比較され
る。バス31の上のRAM29の出力がレジスタ19か
らの符号番号に等しければ、拡張ストリングは、前に出
てきて既に一つの符号値を割当てられており、すなわち
丁度読出された記憶場所のRAMアドレス値である。新
符号番号はRAMアドレス・レジスタ28からバス34
を経て符号番号レジスタ19にゲートされ、新しい文字
についての手順を繰返すためにこの「次の文字状態」に
再び入る。
【0098】代りにバス31の上のRAM出力が2B
等しければ、この記憶場所は、空であり、拡張ストリン
グがテーブルにないので、入力データをパースするのに
利用できないことを意味する。これによって、現在のス
トリングの構成作業を終りにしてこんどは「新ストリン
グ状態」に入る。
【0099】しかし、バス31の上のRAM出力が2B
にもまたレジスタ19からの符号番号にも等しくない場
合、RAM29の中の他の記憶場所を探索しなければな
らず、それは「次のハッシュ状態」において実行され
る。
【0100】〔4〕.次のハッシュ状態. この状態に
おいては、さらに別のRAMアドレスがハッシュ関数回
路23によって現在の符号、文字組合せに対して制御装
置13からの「次の「ハッシュ」指令の制御を受けて発
生される。次に前の状態の各手順がその本質において繰
返される。新アドレスは比較器26によって2B に比較
され、そのアドレスが2B より大きくなければ、それは
用いられない。この場合に、もう一つのアドレスを得る
ために、この「次のハッシュ状態」に再び入る。N個の
ハッシュ・アドレスすべてを、ハッシュ関数回路23か
らのリード25の上の信号によって示されているよう
に、検査し終ると、現在のストリングは、そのストリン
グ・テーブルに存在しないと考えられて、それに入る空
間がない。次に「ストリング終了状態」に入る。
【0101】しかし、ハッシュ・アドレスが2B より大
きければ、バス24の上のアドレスはRAMアドレス・
レジスタ28にゲートされて、RAM29がその記憶場
所において内容を読出すように制御される。RAM出力
のバス31の上に与えられた結果は、比較器32におい
てレジスタ19の中の符号番号および2B の両方と比較
される。RAM出力が符号番号に等しければ、RAMア
ドレス・レジスタ28からの新しい符号番号がバス34
を経てレジスタ19にゲートされ、「次の文字状態」に
入る。この代りに、バス31の上のRAM出力が値2B
に等しければ、「新ストリング状態」に入る。バス31
の上のRAM出力が2B および符号値のいずれにも等し
くなければ、この処理は、この新アドレス値に対するこ
の「次のハッシュ状態」に再び入ることによってN回ま
で繰返す。ハッシュ関数回路23からのリード25の上
の信号によって示されているように、N個の記憶場所が
試みられたとき、このストリングは終りにされて「スト
リング終了状態」に入る。
【0102】〔5〕.新ストリング状態. ストリング
・テーブル内の空記憶場所に遭遇したことは、探索され
た拡張ストリングをテーブルの中に発見しなかったこと
およびそのストリングをテーブルの中に入れる必要のあ
ることを示す。これは、拡張ストリングの接頭部符号番
号をRAM29に書込むことにより達成されるので、割
当てられたアドレスを拡張ストリングのための符号値と
してとっておく。従って、RAMアドレス・レジスタ2
8の中のアドレスは、その前の値に維持され、RAM2
9は、符号番号レジスタ19の内容をバス30を経てア
ドレス指定された記憶場所に書込むように制御される。
次に「ストリング終了状態」に入る。
【0103】〔6〕.ストリング終了状態. この状態
に入るとき、拡張ストリングがストリング・テーブルに
ないので、現在あるストリング符号を出力として伝送
し、新しいストリングを開始すべきであると判定され
た。従って、符号番号レジスタ19からの出力符号信号
を出力バス11に伝送して、新圧縮符号信号がバス11
にあることを外部装置に知らせる「符号ストローブ信
号」をリード16を経て送る。このインターフェイスの
正確な形は、圧縮データ信号を受ける外部装置の特有の
要求事項に従って変わる。新ストリングは、文字レジス
タ17の中に既にある文字を用いて開始され、その文字
は、それをバス18を介して符号番号レジスタ19の下
位Bビットにゲートし、かつレジスタ19の高位C−B
ビット位置にあるビット位置にゼロをおくことによって
あらかじめ割当てられた単一文字のストリングに翻訳さ
れている。その新ストリングを構成するために「次の文
字状態」に再び入る。
【0104】次に図3を参照すると、図2の圧縮装置か
らの圧縮符号信号に対応するデータ文字列を回復する本
発明の伸長装置の実施例が示されている。図3の伸長装
置は、その出力を外部ランダム・アクセス・バッファに
直接におくことのできるように回路を構成され、その構
成は、出力文字ストリングの急速な反転をできるように
する。この伸長装置の実施例は、出力記憶場所のアドレ
スの明示管理を用いている。ストリング・テーブル内の
記述項には接頭部ストリング内の文字の数を示す「レベ
ル」値がある。このレベル値を用いて出力バッファ内の
各文字の適当な位置決めを達成する。伸長装置からの伸
長文字ストリングを受ける外部装置は、そのデータを格
納するのにランダム・アクセス記憶装置を用いると仮定
されている。外部ランダム・アクセス・バッファを用い
るとき伸長装置は、各出力データ文字にアドレスを与
え、そのアドレスが出力ストリング内のその文字の記憶
場所を限定する。最初の記憶場所は、ゼロのアドレスに
対応する。外部装置はその特定の記憶アドレス指定の要
求事項にマッチするように記憶場所のアドレスを操作で
きる。
【0105】図3の伸長装置は、出力文字をそれらが図
2の圧縮装置によって受けられるのと違う順序で与える
が、各文字に付随して記憶場所の値を与えることによっ
て、最後のアセンブルされたデータストリームは、正し
い順序になる。ランダム・アクセス記憶装置を外部装置
に用いない場合、図5に関して以下に説明するようなス
トリング反転へのスタック機構アプローチを用いること
ができる。
【0106】図3の伸長装置は、バス50の上の圧縮符
号信号を受けて、バス51の上に回復したデータ文字信
号の対応するストリングを与える。圧縮符号信号は、外
部装置からバス50の上に与えられる。この外部装置は
また、圧縮信号がその外部装置から入手できて、バス5
0に加えられるときは常に、ライン52にデータ使用可
能信号を与える。ライン52の上のデータ使用可能信号
は、伸長装置の制御装置53に加えられる。制御装置5
3は図3の伸長装置のすべてのブロックにリード54を
経て制御信号を与える。伸長装置の制御装置53は、図
3の伸長装置をその制御状態を介して、以下に詳細に説
明する方法で順序づける。制御装置53はまた、追加の
入力符号信号を要求する入力データ・ストローブ信号を
ライン55を通して外部装置に与える。一つの出力文字
がバス51の上で使用可能なとき、制御装置53はリー
ド56の上の外部装置に出力データ・ストローブ信号を
与える。
【0107】バス50の上の圧縮符号信号は、Cビット
符号レジスタ57に入れられる。単一文字のストリング
を表す符号と複数文字のストリングを表す符号との区別
をするために、符号レジスタ57の出力を比較器58で
B の一定値信号と比較する。従って、比較器58は、
レジスタ57の中の符号信号が2B より大きいか小さい
かを示す信号を制御装置53にリード59を経て送る。
レジスタ57の中の符号値が2B より小さく、従って単
一文字のストリングを表すとき、レジスタ57の低位ビ
ットがバス60を経てBビットの最終文字レジスタ61
に転送される。上述のように、単一文字のストリングに
対する符号値は、その文字と同じであるから、最終文字
レジスタ61へバス60を経て転送された単一文字のス
トリングは直接バス51に出力される。
【0108】レジスタ57の中の圧縮符号信号が比較器
58によって決められるように2Bより大きいとき、レ
ジスタ57の中の符号値は、RAMアドレス・レジスタ
62へバス63を介して転送される。圧縮符号信号の伸
長の間のある幾つかの時点で、レジスタ57の中の圧縮
符号は、その値を後の処理のために保存するためCビッ
ト符号レジスタ64へバス65を介して転送される。後
で説明するある幾つかの条件ではレジスタ64の中の符
号値をRAMアドレス・レジスタ62へバス66を介し
て転送できる。
【0109】適当なアドレスを伸長装置の中の文字スト
リングの記憶域に与えるために、最終文字レジスタ61
に格納された文字信号および符号レジスタ64に格納さ
れた符号信号がバス67および68をそれぞれ介してハ
ッシュ関数回路69へ加えられる。ハッシュ関数回路6
9は、図2に関して前に述べたハッシュ関数回路23と
同一である。ハッシュ関数回路69は、バス68の上の
Cビット符号信号をバス67の上のBビット文字信号と
結合してN個のCビットアドレスをバス70を経てRA
Mアドレス・レジスタ62へ順次に与える。ハッシュ関
数回路69は、制御装置53へリード71を介してバス
70の上に与えられたハッシュ・アドレスがその列の中
のN番目のアドレスであるかどうかを知らせる。
【0110】ハッシュ関数回路69はまた「新ハッシ
ュ」指令および「次のハッシュ」指令を制御装置53か
ら受ける。制御装置53は「新ハッシュ」指令に応じて
N個のハッシュ・アドレスの中の第1のものを与え、次
に「次のハッシュ」指令の相次いで起るのに応じて、相
次ぐハッシュ・アドレスを与えるようにハッシュ関数回
路69に指令する。前に述べたように、ハッシュ関数回
路69がN番目のハッシュ・アドレスを与えたとき、一
つの信号が制御回路53へリード71を介して戻され
る。
【0111】RAMアドレス・レジスタ62からのRA
Mアドレスは、バス73を介して比較器72および最終
文字レジスタ61の両方に加えられる。比較器72はま
た2B に等しい一定値信号を受ける。比較器72は、バ
ス73の上のRAMアドレスを値2B と比較して、バス
73の上のアドレスが2B より大きいか小さいかを示す
信号を制御装置53へリード74を介して与える。それ
が2B より小さいとき、RAMアドレス・レジスタ62
の中の値は、文字ストリングの中の最初の文字を後述の
ようにして回復するために最終文字レジスタ61に加え
られる。
【0112】RAMアドレス・レジスタ62の中にロー
ドされたアドレスが伸長装置ストリング・テーブルを記
憶するのに用いられるRAM75を呼出す。RAM75
には、各々がC+B+Lビットの幅である2C の記憶場
所がある。各ストリングは、それのCビット接頭部符
号、それのBビット拡張文字およびLビットレベル値を
記憶することによってRAMに記憶される。レベル欄の
値は、そのストリングの接頭部内のビットの数に等し
い。各ストリングは、そのストリングに割当てられた符
号によってアドレス指定された記憶場所においてRAM
75に記憶される。そのストリングに割当てられた符号
は、接頭部符号を後述のようにしてストリング拡張文字
でハッシュすることによって引出される。
【0113】RAM75は、RAM75の「読出し」、
「書込み」機能を制御するために「読出し」指令と「書
込み」指令を制御装置53から受ける。後で説明するよ
うにして初期設定するために、RAM75は、一定値信
号2B 、ゼロおよびゼロをそれぞれRAMアドレス・レ
ジスタ62によってアドレス指定されたRAM記憶場所
の接頭部符号、文字およびレベルの各欄に書込むために
受ける。これらの値は制御装置53の制御のもとで加え
られて、「書込み」指令の加わったときに入れられる。
RAM75はまた制御装置53によって制御されて、バ
ス76を経て符号レジスタ64からくる符号値、バス7
7を経て最終文字レジスタ61からくる文字値およびバ
ス79を経てレベル・レジスタ78からくるレベル値を
RAMアドレス・レジスタ62によってアドレス指定さ
れたRAM記憶場所の接頭部、文字およびレベルの各欄
にそれぞれ入れるために選択的に受ける。これらの値
は、制御装置53からの「書込み」指令に応じてそれぞ
れの欄に書き込まれる。
【0114】制御装置53はまた、「読出し」指令に応
じてRAM75を制御して、RAMアドレス・レジスタ
62によってアドレス指定されたRAM記憶場所の接頭
部符号欄に格納された接頭部符号値をバス80に与え
る。このバス80の上の符号値は、検出器81のほかに
RAMアドレス・レジスタ62にも加えられる。検出器
81は、RAM出力のバス80上の接頭部符号が2B
等しいかどうかを決定して、それ相応に信号をリード8
2を介して制御装置53に与える。
【0115】制御装置53はまた、文字値を文字欄から
バス83を経て最終文字レジスタ61へ選択的に与える
ようにRAM75を制御する。文字値は、「読出し」指
令に応じてRAMアドレス・レジスタ62によってアド
レス指定されたRAM記憶場所の文字欄からバス83の
上に与えられる。同様にして、制御装置53は、レベル
値をバス84を経てレベル・レジスタ85またはアドレ
ス加算器86のいずれかに与えるようにRAM75を制
御する。レベル値は、RAMアドレス・レジスタ62に
よって呼出されたRAM記憶場所のレベル欄からバス8
4へ加えられる。バス84上のレベル値のレベル・レジ
スタ85およびアドレス加算器86への経路指定は、伸
長装置の現存の状態に従って制御装置53によって制御
される。
【0116】図3の伸長装置は外部ランダム・アクセス
記憶装置内で適当に位置が合うようにするために出力文
字信号にアドレスを割当てる装置を含んでいる。従っ
て、アドレス加算器86はそのような記憶場所アドレス
を外部装置にバス87を通して与える。アドレス加算器
86は、アウトポインタ・レジスタ88からの入力、R
AM75からのバス84を通してのレベル値およびレベ
ル・レジスタ78からバス89を通してのレベル値を受
ける。アドレス加算器86はまた、バス90を通してゼ
ロ値信号を受ける。制御装置53は、アドレス加算器8
6を制御して、バス84の上のレベル値、バス89の上
のレベル値またはバス90の上のレベル値のいずれかを
伸長装置の現存の状態およびその状態の間に存在する論
理的諸条件に従うアウトポインタ・レジスタ88の中の
値を後で説明するようにして加える。加算の結果は、記
憶場所アドレスをバス87の上に与える。
【0117】アドレス加算器86の出力はまた、アウト
ポインタ・レジスタ88への入力としても加えられる。
制御装置53は、アウトポインタ・レジスタ88を制御
して、現存のアウトポインタの値を加算器86における
加算の結果で置き換えるか、または単にバス87の上に
記憶場所のアドレスを発生するためのベース・アドレス
を加算器86に与えるだけにする。制御装置53はま
た、レベル・レジスタ78および85を制御して、レベ
ル・レジスタ85からレベル・レジスタ78へレベル値
を転送して、その転送経路にある加算器91を介してそ
の値を1だけ大きくする。なお、制御装置53は、レベ
ル・レジスタ78および85を制御して、レベル・レジ
スタ78の内容をレベル・レジスタ85へバス92を介
して転送する。この装置はまた、レベル・レジスタ85
およびアウトポインタ・レジスタ88への入力を備え、
あとで説明する諸条件のもとでこれらのレジスタをゼロ
にする。
【0118】図3の伸長装置はまた、Cビット信号RA
Mアドレス・レジスタ62へのバス94を経て与える初
期設定計数器93を備えている。計数器93をそれに加
わるゼロの値にされた信号を介してゼロにセットでき
る。制御装置53は、「計数」指令を介して計数器93
を制御して、「計数」指令の加わるごとに計数器の内容
に1を加える。計数器93は、それが計数値2C に達し
たとき、制御装置53にリード95の上のキャリアウト
またはオーバフロー信号を介して合図する。初期設定計
数器93は、RAM75を初期設定するのに用いられ、
それの記憶場所のすべてを逐次に呼出して一定値2B
ゼロおよびゼロを接頭部符号、文字およびレベルの各欄
にそれぞれ書込むことによって空にする。
【0119】図3の伸長装置の基本動作は、次のように
要約される。
【0120】1.各データブロックごとに、RAMを空
に初期設定する。
【0121】2.各入力符号ごとに、符号を符号番号レ
ジスタに読出す。前の符号からのあるデータをストリン
グ・テーブル更新のために保存する。
【0122】3.符号レジスタ→RAMアドレス 接頭部符号、拡張文字、ストリング長さを作るRAMを
読出す。
【0123】接頭部符号→2B なら;文字をストリング
長さによって決まった記憶場所において出力; 接頭部符号→符号番号レジスタ;ステップ3を繰返す、 接頭部符号<2B なら;符号値を文字として出力;ステ
ップ4へ行く。
【0124】4.ストリング・テブルの終りにおいて文
字ストリングを更新: 前に受けた符号および最終出力文字をハッシュ(前の符
号、最終文字)によって作られた列から最初の空の記憶
場所に書込む;ステップ2へ行く。
【0125】図3を続けて参照すると、以下のものが図
3の伸長装置の状態機械記述語である。
【0126】状態0:各データブロックの始めにおける
「待ち状態」 初期設定計数器=ゼロ アウトポインタ=ゼロ データ使用可能信号を待つ;状態1へ行く。
【0127】状態1:「RAMを初期設定」 初期設定計数器→RAMアドレス2B 、ゼロ、ゼロ→R
AM入力 RAMを書込む 初期設定計数器へ+1を加える 初期設定計数器<2C ならば、状態1を繰返す; そうでなければ状態2へ行く。
【0128】状態2:「最初の入力符号を処理する」 入力符号記号→符号レジスタ1 入力データ・ストローブ 符号値(下位Bビット)→最終文字レジスタ 記憶場所アドレス=アウトポインタ;出力データ・スト
ローブ レベル・レジスタ1=ゼロ 状態3へ行く。
【0129】状態3:「次の入力符号」 符号レジスタ1→符号レジスタ2 (レベル・レジスタ1)+1→レベル・レジスタ2 (レベル・レジスタ2)+(アウトポインタ)→アウト
ポインタ 新しい入力が使用可能でなければ;状態0へ行く。
【0130】入力符号を読出す→符号レジスタ1 入力データ・ストローブ 符号レジスタ1≧2B なら: レベル・レジスタ1=0 符号レジスタ1→RAMアドレス 状態4へ行く。
【0131】符号レジスタ1<2B ならば: 符号値(符号レジスタ1の下位Bビット)→最終文字レ
ジスタ 記憶位置アドレス=アウトポインタ:出力データ・スト
ローブ 状態5へ行く。
【0132】状態4:「最初の文字サイクル」 RAMを読出す 符号(RAM)≠2B ならば[正常の場合]: レベル(RAM)→レベル・レジスタ1 符号(RAM)→RAMアドレス 文字(RAM)→最終文字レジスタ 記憶場所アドレス=アウトポインタ+レベル(RA
M); 出力データ・ストローブ 符号(RAM)=2B ならば[異常の場合]: レベル・レジスタ2→レベル・レジスタ1 符号レジスタ2→RAMアドレス 記憶場所アドレス=アウトポインタ+レベル・レジスタ
2;出力データ・ストローブ 状態5へ行く。
【0133】状態5:「後の文字サイクル」 RAMアドレス≧2B ならば:RAMを読出す 符号(RAM)→RAMアドレス 文字(RAM)→最終文字レジスタ 記憶場所アドレス=アウトポインタ+レベル(RA
M);出力データ・ストローブ 状態5へ行く。
【0134】RAMアドレス<2B ならば: RAMアドレス(下位Bビット)→最終文字レジスタ 記憶場所アドレス=アウトポインタ;出力データ・スト
ローブ 状態6へ行く。
【0135】状態6:「ストリング・テーブル更新」 ハッシュ(符号レジスタ2、最終文字レジスタ)→RA
Mアドレス RAMを読出す 符号(RAM)=2B およびRAMアドレス>2B なら
ば: 状態7へ行く。
【0136】その他の場合:新ハッシュ値で状態6を繰
返す。
【0137】これが最終ハッシュならば、状態3へ行
く。
【0138】状態7:「書込みサイクル」 RAMアドレスを変えないで 符号レジスタ2→符号(RAM) 最終文字レジスタ→文字(RAM) レベル・レジスタ2→レベル(RAM) RAMを書込む。
【0139】状態3へ行く。
【0140】上に与えられた状態機械記述語に関する図
3の伸長装置の動作のさらに詳細な説明を次に行う。
【0141】[0] 待ち状態. 1ブロックの圧縮入
力符号信号を待っている間、図3の伸長装置は、この状
態にある。「待ち状態」の間、制御装置53は、初期設
定計数器93をゼロにリセットする。制御装置53はま
た、出力文字信号の外部出力記憶装置への相次ぐ転送が
最低の使用可能なアドレスで始まるようにアウトポイン
タ・レジスタ88をゼロにリセットする。入力符号を供
給する外部信号源からのリード52の上のデータ使用可
能信号は、入力符号が利用できるときを指示するのに用
いられる。入力符号が使用可能になると、リード52の
上のデータ使用可能信号は、制御装置53に「初期設定
状態」に入るように合図する。
【0142】[1] 初期設定状態. ランダム・アク
セス記憶装置RAM75の内容は、空であるように初期
設定される。RAM75はその2C の記憶場所の各々に
三つの種類の異なったデータ欄を含み、すなわちCビッ
トの接頭部符号値、Bビットの拡張文字、およびLビッ
トのレベル値を含む。各記憶場所は、文字のストリング
に対応し、そこでは記憶場所のアドレスが、そのストリ
ングの符号値であって、損記憶場所の内容は、その接頭
部ストリングおよび拡張文字によってそのストリングの
組成を与える。レベル欄は、接頭部ストリング内の文字
の数を与え、出力列の中の適当な位置にある出力文字を
位置指定するときに用いられる。Lビットは、どのスト
リング長さも2L の文字を超えない(ここでLはC以下
である)という仮定のもとに、レベル値に与えられる。
RAM75のすべての記憶場所は、空記号2B をそれの
接頭部符号欄に入ることによって初期設定される。文字
値欄およびレベル値欄は、これらの欄が初期設定を必要
とせず、簡易化を望む場合、現存の値で残すことができ
るけれども、ゼロに初期設定される。最初の2B +1個
所の記憶場所は、これらの記憶場所が伸長装置の動作の
間別のやり方で呼出されることは決してないが、実現の
便宜上初期設定される。
【0143】初期設定は、Cビット初期設定計数器93
の中の値をバス94を経てRAMアドレス・レジスタ6
2へゲートすることによってメモリ・サイクルを繰返し
て達成される。RAMの入力は、一定値2B およびゼロ
であるように選ばれる。RAM75は、選択された入力
データをRAMアドレス・レジスタ62によって指定さ
れた記憶場所に書込むように制御される。初期設定計数
器93は、その現在の内容に1を加えることによって数
え上げるように指令される。この一連の事象は、各記憶
場所ごとに1回あて合計2C 回繰返される。2C のその
ような計数ののちに、初期設定計数器93は、2C の計
数が発生したことを合図するオーバフローまたはキャリ
アウト信号を制御装置53にリード95に介して与え
る。これによって図3の伸長装置が「最初の符号状態」
に進む。
【0144】[2] 最初の符号状態. 初期設定のの
ち、図3の伸長装置は、バス50の上にある最初の入力
符号信号を読取って、そのCビットをCビット符号レジ
スタ57に取入れる。次に入力データ・ストローブ55
の上に制御装置53によって一つの信号を与えて、次の
入力符号を外部装置によって入力バス50の上に与えさ
せる。図2の圧縮装置に関して上に論じた理由により、
レジスタ57に現在ある初期符号信号は、予め割当てら
れた単一文字のストリング符号の一つであるとわかって
いる。従って、この符号の下位Bビットは、データメッ
セジの最初の文字であるとわかり、この文字を伸長装置
からの最初の出力として伝送する。これは、符号レジス
タ57の下位Bビットをバス60を経て最終文字レジス
タ61に転送することによって達成され、その文字は、
出力文字バス51に直接与えられる。この最初の文字は
外部記憶装置の最初の出力記憶場所におかれることにな
っているので、ゼロの記憶場所アドレスがアウトポイン
タ・レジスタ88にある値をアドレス加算器86を通過
させて一定値ゼロを加えることによって発生される。従
って記憶場所アドレス・バス87の上のアドレスは、要
求通りゼロである。出力バス51およびアドレス・バス
87が正しい新情報を含むことを指示する出力データ・
ストローブ・ライン56の上の信号が外部装置に転送さ
れる。
【0145】続く伸長装置サイクルに備えて、レベル・
レジスタ85は、ゼロにセットされる。これは受取った
ストリング内の接頭部ストリングの長さであるとわかっ
ているかである。次に「次の入力状態」の主処理サイク
ルに入る。
【0146】[3] 次の入力状態. 各新入力符号
は、外部装置から読込まれて、それの処理が以下の論理
に従って開始される。符号レジスタ57からの現在の符
号値は、たったいま処理された符号であって、それをあ
との更新サイクルに備えて保存するためにバス65を経
て符号レジスタ64に転送される。同様に、レベル・レ
ジスタ85にある値は、その値を転送経路にある加算器
91を用いて、1だけ大きくして、レベル・レジスタ7
8に転送される。この増分が行われるのは、作られるべ
き新ストリングが処理されたばかりのストリングの接頭
部より1文字長い接頭部ストリングをもっているからで
ある。今度は、アウトポインタ・レジスタ88にあるア
ウトポインタ値が新ストリングからの文字を外部記憶装
置内に置く記憶場所アドレスを含むように更新される。
この記憶場所アドレスは、処理されたばかりのストリン
グの長さを前のベースアドレスに加えたものである。こ
れはレベル・レジスタ78の中の更新されたばかりのレ
ベル値をアウトポインタ・レジスタ88にあるアウトポ
インタ値へアドレス加算器86によって加え、その結果
を、アウトポインタ・レジスタ88に戻すことによって
達成される。
【0147】次に、新入力符号信号は、もしそれが使用
可能であれば読出されている。新入力符号が使用できな
いことをライン52の上のデータ使用可能信号が指示す
る場合、そのメッセージを完全に処理してしまってお
り、「待ち状態」に新しいメッセージを待つために再び
入る。正規の状態においては、新入力符号信号が使用可
能で、それは入力バス50から符号レジスタ57にゲー
トされる。ライン55の上の入力データ・ストローブ信
号は、外部装置に向けて発せられて、その装置に次の符
号信号を入力バス50に与えさせる。
【0148】レジスタ57にある新符号信号は、比較器
58を用いて2B と比較される。符号レジスタ57にあ
る新符号値が2B より大きければ、これは、RAM75
の中のストリング・テーブル索引によって翻訳される正
規の符号である。従って、レジスタ57にあるこの符号
値は、バス63を経てRAMアドレス・レジスタ62へ
転送され、制御装置53は、伸長装置を「最初の文字状
態」に入るように制御する。
【0149】図2および図3のデータ圧縮装置およびデ
ータ伸長装置が適正な動作をしているときは、符号レジ
スタ57が値2B を含むことができない理由は、その符
号が図2の圧縮装置によって正しく与えられないからで
ある。実際に、符号レジスタ57が値2B を含んでいれ
ば、任意の都合のよい誤り手順を実施できる。
【0150】符号レジスタ57の中の値が2B より小さ
ければ、この符号値は、単一文字のストリングを定める
ので、そのストリングを処理するのにRAM75にアク
セスする必要がない。この状況において、レベル・レジ
スタ85がゼロにセットされる理由は、単一文字によっ
て予め定められたストリングの接頭部ストリング内に文
字がないからである。符号レジスタ57の下位Bビット
である文字値は、バス60を経て最終文字レジスタ61
へ転送され、そこから外部装置へ出力バス51を通って
転送される。この状況において、アウトポインタ・レジ
スタ88が正しい外部アドレスを含み、それでアウトポ
インタ・レジスタ88の中の値がアドレス加算器86を
通過して、バス87の上に記憶場所アドレスを与えるの
で、その値にゼロが加えられる。次に、ライン56の上
の出力データ・ストローブ信号が外部装置に正しいデー
タが出力文字ラインおよびアドレス・ラインを通して使
用できることを指示するために発せられる。1文字のス
トリングの処理を完了したのちに「更新状態」に入る。
【0151】[4] 最初の文字状態. この状態で
は、一つのストリングからの最初の文字を引出すととも
に、一つのストリングの始めにだけ発生する他の特殊機
能を実行する。RAM75は、RAMアドレス・レジス
タ62の中の符号が前の状態でロードされたので、その
符号によって指示されるストリング記憶場所の内容を読
出すように制御される。RAM75は、選択されたスト
リングに対する三つの出力、すなわち、バス80の上の
接頭部ストリング符号、バス83の上の拡張文字、およ
び接頭部ストリングの長さであるバス84の上のレベル
値を与える。バス80の上の接頭部ストリングは、比較
器81によって値2B と比較される。
【0152】バス80の上の接頭部符号が2B に等しく
ない場合(これは正常な場合である)、それは、それ以
上の文字を得るためにさらに処理されるべき正当な接頭
部ストリング符号である。バス83の上の拡張文字は、
最終文字レジスタ61に転送される。バス84の上のレ
ベル値は、そのストリング内のこの文字の位置を示し、
この位置の値は、アドレス加算器86を経てアウトポイ
ンタ・レジスタ88の中の値に加えられて、その文字に
対する出力記憶場所アドレスをバス87に与える。次
に、ライン56の上の出力データ・ストローブ信号は、
正しいデータが使用できることを外部装置に指示するた
めに発せられる。なお、バス84の上のレベル値は、あ
との更新において用いるためにレベル・レジスタ85に
格納される。バス80の上の接頭部ストリング符号値が
B に等しければ、これは、アドレス指定されたRAM
記憶場所が空であり、受けたストリング符号がストリン
グ・テーブル内の一つの記述項に対応しないことを示
す。この状況は、次の保留中のテーブル更新がそのスト
リング記述項を作り出すような異常な場合に起る可能性
があるだけである。すなわち、受けたばかりの符号は、
処理されたばかりのストリング(符号レジスタ64の中
の符号とレベル・レジスタ78の中のレベル値)である
接頭部ストリングをもつストリングを表す。現在のスト
リングの最初の復号された文字は、前のストリングの拡
張文字であり、現在のストリングの中に見出されるべき
最終の復号された文字と同じ文字であって、それは、そ
れらの文字が同じ接頭部ストリングをもつので、前のス
トリングの最終の復号された文字と同じ値を有し、それ
は最終文字レジスタ61に現在ある文字である。従っ
て、この異常な場合を実現するために、符号レジスタ6
4の中の値をバス66を経てRAMアドレス・レジスタ
62へ接頭部ストリング符号として転送する。最終文字
レジスタ61の中の値は、出力文字バス51を駆動する
のに変更しないで用いられるが、一方、レベル・レジス
タ78の中の値は適当な出力記憶場所アドレスをバス8
7に作るためにアドレス加算器86を介してアウトポイ
ント・レジスタ88の中の値に加えられる。次に、制御
装置53は、正しい出力を外部装置に指示するために出
力データ・ストローブをライン56に発する。レベル・
レジスタ78の中の値は、あとでの更新のために長さ情
報を与えるのにバス92を経てレベル・レジスタ85に
転送される。
【0153】このストリングから1文字を出力してしま
うと、残りの文字は「後の文字状態」に入ることによっ
て発生される。
【0154】[5] 後の文字状態. 各接頭部ストリ
ングは、拡張文字と、より小さい接頭部ストリングに分
離され、これは予め定めた単一文字のストリングに達す
るまで繰返して実行される。RAMアドレス・レジスタ
62にある前の状態からの接頭部ストリング符号は、比
較器72において2B と比較される。この接頭部ストリ
ング符号が2B より大きければ、RAM75の内容が読
出されて以下の通りに用いられる。この接頭部符号は、
次の状態において用いるためにバス80を経てRAMア
ドレス・レジスタ62にゲートされる。バス83の上の
拡張文字は、出力文字バス51に出力するために最終文
字レジスタ61にゲートされる。バス84の上のレベル
値は、アドレス加算器86を経てアウトポインタ・レジ
スタ88の中の値に加えられ、適当な出力記憶場所アド
レスをバス87の上に作る。出力データ・ストローブ信
号は、ライン56の上に発せられて、この「後の文字状
態」に再び入ってその処理を繰返す。
【0155】比較器72がRAMアドレス・レジスタ6
2の中の符号値が2B より小さいことを示す場合、その
ストリングの終りがきたことになる。この予め定めた符
号値は、最終文字を含んでいるのでRAMアドレス・レ
ジスタ62の下位Bビットがバス73を経て最終文字レ
ジスタ61に転送される。ゼロがアウトポインタ・レジ
スタ88の中の値にアドレス加算器86を介して加えら
れ、バス87に適当な出力記憶場所アドレスを発生す
る。次に出力データ・ストローブ信号がライン56に与
えられる。現在ストリングについての処理が終ると、
「更新状態」に入ってストリング・テーブルに一つの記
述項を加える。
【0156】[6] 更新状態. 一つのストリングが
完全に処理されたのちに、ストリング・テーブルは、こ
のストリングの最終文字を前のストリングの符号および
レベルと一緒に用いて更新される。正しい新符号番号を
新ストリングに割当てるためには、図2の圧縮について
前に論じたのと同じハッシング関数回路が用いられる。
ハッシュ関数は、空テーブル記憶場所に遭遇するまで逐
次に探索される一連のN個のアドレスを発生する。従っ
て、符号レジスタ64に格納された前の符号値は、最終
文字レジスタ61からバス67を経てきた値と共にバス
68を経てハッシュ関数回路69へ伝送される。ハッシ
ュ関数回路69が発生したハッシュ値は、バス70を経
てRAMアドレス・レジスタ62にゲートされる。RA
Mアドレス・レジスタ62の中のアドレスが、比較器7
2によって指示されるように、2Bより大きければ、R
AM75は、その記憶場所の内容を読出すように制御さ
れる。比較器72がRAMアドレス・レジスタ62の中
のアドレスが2B より大きくないことを示す場合、その
アドレスは用いられず、ハッシュ関数回路39は、新し
い値を発生するように制御される。その新しい値は、バ
ス70を経てRAMアドレス・レジスタ62にゲートさ
れ、試験が繰返される。ハッシュ関数回路69が2B
り大きい正しいアドレスを与えるとき、RAM75は、
その記憶場所で読出される。その記憶場所から読出され
たバス80の上の接頭部符号は、比較器81において2
B と比較される。読出された値が2B に等しければ、そ
の記憶場所は、空であって「書込み状態」に入ってスト
リングを挿入する。バス80の上の接頭部符号2B に等
しくなければ、この記憶場所は、既に占有されており、
使用できない。次に、この「更新状態」は、これが新し
いストリングをストリング・テーブルに加えず、「次の
入力状態」に入って、次のストリングを処理し始める。
N番目のアクセスでなかったならば、新ハッシュ値を再
び入れられて再び試験を試みる。
【0157】[7] 書込み状態. 空RAM記憶場所
が新ストリングのために位置指定されたとき、その記憶
場所に対するアドレスは、新ストリングの符号として割
当てられ、ストリング情報が挿入される。制御装置53
は、符号レジスタ64の出力をバス76を介して入力と
してRAM75の接頭部符号欄にゲートする。最終文字
レジスタ61からバス77を経て出る出力は、RAM7
5の文字欄にゲートされ、レベル・レジスタ78の値
は、バス79を介してRAM75のレベル欄にゲートさ
れる。RAMアドレス・レジスタ62をその前の値に保
っておいて、RAM75は、このデータを呼出された記
憶場所に書込むように制御される。このようにしてこの
ストリングの処理を終ったとき、「次に入力状態」に入
る。
【0158】上述のハッシュ関数回路を以下のように装
置として実現できる。Bビット文字およびCビット符号
の場合、N個のハッシュ値は次のように発生される:最
初のハッシュ(符号、文字)=符号0文字′ここで文
字′は入力文字をビットを左右逆にし、位相反転され、
左C−Bビットを符号の左側の位置へ移したものであ
る。
【0159】すなわち、符号においてC(左に)から1
(最下位ビット)および文字においてBないし1と番号
をつけられたビット位置に対して、ハッシュ出力HはC
ないし1の番号をつけられる。
【0160】
【外3】
【0161】残りのハッシュは、一定値を各前の値に、
Cビット以上のキャリーを無視して加えることによって
作られる。
【0162】
【外4】
【0163】このハッシング関数は、任意のシステムの
論理ゲートで実現でき、本発明において使用できるハッ
シング関数の単なる一例であることがわかる。上に論じ
た基準を満足する他のハッシング関数を当業者が容易に
得ることができる。
【0164】図4および図5は、最高の圧縮を実施する
ための圧縮装置および伸長装置をそれぞれ示す。図4お
よび図5の実施例は、図2および図3の高性能実施例よ
りわずかに値段が高く、かつ動作がわずかに遅い。この
実施例は、高性能実施例とほぼ同じ適応圧縮手順を用い
るが、高性能実施例とは違って、圧縮装置は、可変長さ
の圧縮された出力符号信号を発生する。高性能実施例に
関して上述したものと同様にして、図4および図5の高
圧縮実施例は、Bビット・バイト入力文字信号および2
C の記憶場所のストリング・テーブルを用いる。圧縮符
号記号は、ストリング・テーブルがいっぱいになるにつ
れて、大きさを増してCビットの最大長さに達する。必
要に応じて、この符号信号は、新しい文字に出合ったと
きBビットだけ拡張される。
【0165】このテーブル内の各ストリングにCビット
識別子を割当てて、これらの識別子は1で始まる数の順
序で割当てられる。2D 以下の数の符号を割当てられた
とき、これらの符号の下位Dビットだけを圧縮データ信
号として伝送する。ストリング・テーブル内の各記憶場
所は、Cビットの接頭部ストリング識別子およびその記
憶場所にあるストリングに割当てられた新しいCビット
符号を含んでいる。従ってストリング・テーブルの2C
の記憶場所の各々は、2Cビットの幅である。この高圧
縮実施例の圧縮装置で用いられるハッシュ関数は、先に
説明した高性能実施例で用いられたものと同一である。
しかし、この高圧縮実施例においては、ハッシュ関数回
路は、圧縮装置に用いられるだけである。
【0166】この高圧縮実施例の本発明による伸長装置
においては、圧縮装置におけると論理的に同じストリン
グ・テーブルが記憶されているが、各記憶場所は、接頭
部に対して割当てられた識別子符号および拡張文字から
なっている。各ストリングは、そのストリングに割当て
られた圧縮符号識別子によってアドレス指定された記憶
場所に記憶されている。この高圧縮実施例においては、
ストリング間文字反転手順は、そのストリング内の文字
の順序を逆にする「後入れ先出し」スタックによって行
われる。従って、この高圧縮実施例の伸長器は各ストリ
ングの出力文字をそれらの正しい順序で与える。
【0167】次に図4を参照すると、本発明の最高圧縮
実施例の圧縮装置が示されている。この圧縮装置は、入
力文字信号をバス110を通して受けて、圧縮出力符号
記号信号をビット直列形式でライン111に与える。こ
の入力文字は、外部装置からバス110に与えられる。
この外部装置はまた、入力文字信号が外部装置から使用
できて、バス110に加えられるときは常に、データ使
用可能信号をライン112に与える。ライン112上の
データ使用可能信号は、圧縮装置制御装置113に加え
られる。圧縮装置制御装置113は、図4の圧縮装置の
ブロックのすべてに制御信号をリード114を介して与
える。圧縮装置制御装置113は、図4の圧縮装置をそ
れの制御状態を介して以下に詳細に説明する方法で順序
づけする。制御装置113はまた、追加の入力文字を要
求する文字ストローブ信号をライン115を通して外部
装置に与える。
【0168】バス110の上の入力文字はBビット文字
レジスタ116に入れられる。単一文字を出力線111
に転送することになっているとき、文字レジスタ116
は、その文字のBビットをバス117を介してシフト回
路網118にゲートするように制御装置113によって
制御される。シフト回路網118は、ビット直列出力を
ライン111に与え、バス117の上のBビットを受け
て、これらのビットをライン111に直列に与えるよう
に制御装置113によって制御される。
【0169】図4の圧縮装置は、さらに、圧縮ストリン
グ符号信号を保持して出力ストリング符号をシフト回路
網118にバス120を介して与えるビット符号番号レ
ジスタ119を備えている。符号番号レジスタ119を
それに加わるゼロの値にされた信号によってゼロに初期
設定できる。
【0170】図4の圧縮装置は、さらに、入力バス11
0に加えられる入力データ・ストリームのパースされた
ストリングにストリング符号記号信号を数の昇順に割当
てるCビット符号計数器121を備えている。制御装置
113の制御のもとに、符号計数器121をそれに加わ
るゼロの値にされた信号を介してゼロにリセットしても
よいし、「計数」指令信号を介して現存の計数を1だけ
大きくしてもよい。計数器121は、符号計数器121
の中の計数値が値2C −1に達したときに制御装置11
3にライン123を介して信号を出力する検出器122
に出力を与える。この値は、計数器がオール1の状態に
達するとき、Cビット計数器121によって達成され
る。符号計数器121の出力はまた、シフト回路網11
8によってシフトアウトされるべきビットの数を定める
信号をシフト回路網118にバス124を介して与える
符号大きさ回路123に加えられる。上述のように、D
ビットがシフトアウトされる(ここでDはC以下であ
る)。
【0171】符号大きさ回路123をSN74148優
先順位回路網のような標準Cビット優先順位符号器回路
によって実現できる。符号計数器121は優先順位符号
器に結合され、そして計数器121の昇順重みのビット
を優先順位符号器の昇順優先順位に並んだ優先順位入力
にそれぞれ結合される。次に優先順位符号器は、Dに対
する値である2進数信号を与える。数Dをシフト回路網
118の中で用いて、Dシフト・クロック・パルスのパ
ケットをゲートして、シフト回路網118がバス120
に与えられた出力符号信号のDビットをライン111に
直列に与えるようにしてもよい。優先順位符号器を符号
大きさ回路123に用いることに対する多くの代替のも
のが論理設計の当業者には容易に明らかであろう。
【0172】例えば、シフト回路網118は、出力符号
をバス120に受けて符号大きさ回路123によって制
御されたシフトクロックパルスに応答して出力符号のD
ビットをシフトアウトするシフト・レジスタを用いて実
現できる。符号大きさ回路123によって制御されるD
クロックパルスのパケットに応答して、シフト回路網1
18の中に入っているシフト・レジスタにはクロック信
号がD回与えられる。シフト・レジスタの構成は、この
技術分野では周知であり、その正確な詳細は、データを
受ける外部装置のインタフェースによって変る。上述の
ように、シフト回路網118はまた、B文字ビットをバ
ス117からライン111のシフト回路網118によっ
て伝送するのを制御する普通のクロック制御回路を備え
ている。
【0173】レジスタ119からの符号記号信号および
レジスタ116からの文字信号は、それぞれバス125
および126を経てハッシュ関数回路127へ加えられ
る。ハッシュ関数回路127は、上述の本発明の高性能
実施例に関して用いられたハッシュ関数回路と同一であ
る。ハッシュ関数回路127は、バス125の上のCビ
ット符号信号をバス126の上のBビット文字信号と組
合わせて、バス128の上に順次にN個のCビットアド
レスを与える。ハッシュ関数回路127は、リード12
9を介して制御装置113にバス128の上に与えられ
たハッシュアドレスがその列の中のN番目のアドレスで
あるかどうかを知らせる。
【0174】ハッシュ関数回路127はまた、制御装置
113から「新ハッシュ」指令および「次のハッシュ」
指令を受ける。制御装置113は「新ハッシュ」指令に
応じてN個のハッシュアドレスの最初のものを与え、ま
た「次のハッシュ」指令の相次ぐ発生に応じて相次ぐハ
ッシュドレスを与えるようにハッシュ関数回路127に
指令する。上述のように、ハッシュ関数回路127がN
番目のハッシュアドレスを与えたとき、一つの信号をリ
ード129を経て制御装置113に戻す。
【0175】バス128の上のハッシュ・アドレスは、
CビットRAMアドレス・レジスタ130に加えられ
る。RAMアドレス・レジスタ130にロードされたア
ドレスが圧縮装置ストリング・テーブルを記憶するのに
用いられるRAM131を呼出す。RAM131は各々
2Cビット幅の2C の記憶場所に編成される。一つの文
字ストリングが一つの記憶場所に符号計数器121によ
って割当てられたそのストリングに対する符号番号およ
びその接頭部符号、すなわち、そのストリングの最終文
字を除くすべての文字を含むストリングの符号番号を入
れることによって記憶される。RAM131は、すべて
の記憶場所が最初に空であることを示すオール・ゼロを
ストリング符号欄に含むように初期設定される。文字を
もたないストリンである符号ゼロのストリングは、RA
M131の中に記述項をもたない。
【0176】RAM131は、RAM131の「読出
し」および「書込み」機能を制御するために制御装置1
13から「読出し」指令および「書き込み」指令を受け
る。制御装置113がRAN131に「書込み」機能を
実行するように指令すると、RAMアドレス・レジスタ
130によって呼出された記憶場所のストリング符号欄
がバス132を経て符号計数器121のCビット出力を
受け、また呼出された記憶場所の接頭部符号欄が符号番
号レジスタ119からの入力をバス133を経て受け
る。制御装置113がRAM131にRAMアドレス・
レジスタ130によって呼出された記憶場所の内容を読
出すように指令すると、呼出された記憶場所の接頭部符
号がバス135を経て比較器134に加えられ、また呼
出された記憶場所のストリング符号がバス136を経て
符号番号レジスタ119へ加えられると共に、ゼロ検出
器137にも加えられる。比較器134はまた、バス1
38にゼロの値をもつ信号を受ける。図4の圧縮装置の
現存の状態次第で、制御装置113は、バス135の上
の接頭部符号とレジスタの中に記憶された符号とが等し
いか等しくないかを試験するか、またはレジスタ119
の中の符号信号がゼロに等しいか等しくないかを試験す
るように比較器134を制御する。これらの試験の結果
は、リード139を経て制御装置113に与えられる。
図4の圧縮装置の現存の状態に従えば、制御装置113
は、バス136の上のストリング符号がゼロに等しいか
等しくないかを決めるためのゼロ検出器137を始動さ
せる。決定の結果は、リード140を経て制御装置11
3に与えられる。
【0177】図4の圧縮装置はまた、Cビット信号をバ
ス142を経てRAMアドレスレジスタ130に与える
初期設定計数器141を備えている。制御装置113
は、計数指令を介して計数器141を制御してその計数
器の内容を計数指令を加えるごとに1だけ増やす。計数
器141は、それが計数値2C に達したときを制御装置
113にリード143の上のキャリアウトまたはオーバ
ーフロー信号を介して知らせる。初期設定計数器141
は、RAM131の記憶場所のすべてを順次に呼出して
ストリング符号欄にバス132から得た値ゼロを書込む
ことによってRAM131を空に初期設定するのに用い
られる。必ずしも必要ではないけれども、接頭部符号欄
を、実現の便宜上、バス133から得た値ゼロを書込む
ことによって、初期設定してもよい。
【0178】一般的にいえば、図4の圧縮装置に関して
は、ライン111に与えられる各出力符号記号信号は、
符号計数器121の中に現存する値によって定められた
Dビットの長さをもっている。符号計数器内のゼロでな
い最高のビットがD番目のビットであって、その結果、
圧縮装置の出力符号の大きさが符号計数器内の値の大き
さに等しい。圧縮装置によって伝送されるべき最初の符
号記号信号は、ゼロビットの幅であるが、それに付加さ
れたBビットの文字記号信号をもっている。二番目の符
号記号信号は、1ビットの長さで、次の二つの符号記号
信号は、二つのビットを各々含んでいる。次の四つの符
号記号信号は、3ビットを各々含んでいる、などであ
る。これらの符号記号の幾つかはまたそれらに追加され
たBビットの文字値をもっている。値Dは、Cビットで
最大に達する。
【0179】次に図5を参照すると、図4の圧縮装置か
らの圧縮符号信号に対応するデータ文字列を回復する本
発明伸長装置の実施例が示されている。図5の伸長装置
においては、その伸長装置によって回復されるバイト・
ストリングの順序を逆にするのにスタック機構が用いら
れる。このスタックは、各々Bビットの幅の1組のレジ
スタを含む通常の機構である。このスタックへのアクセ
スは、読出し及び書込み能力を与えられている唯一のレ
ジスタである先頭レジスタを通して行われる。このスタ
ックは、スタック内の各レジスタを次の下のレジスタに
複写する「プッシュ」能力をもっている。このスタック
はまた、スタック内に各レジスタを次の上のレジスタに
複写する「ポップ」能力をももっている。説明を簡明に
するために、図5の伸長装置の実施例は、スタック内の
正しい記述項の数を記録する独立のスタック計数器を用
いて示されている。スタックの標準の実現装置において
は、スタック計数器は、スタック機構に一体化されてい
ることが多い。
【0180】図5の伸長装置において、ストリング・テ
ーブルは、2C の記録場所を含み、各記憶場所は、C+
Bビットを含んでいる。各ストリング符号に対応する記
憶場所は、接頭部ストリングに対する符号とそのストリ
ングに対する拡張文字とを含んでいる。その記憶場所
は、そのストリングに割当てられたストリング符号によ
ってアドレス指定される。図5の伸長装置のストリング
・テーブルは、それの記憶場所がどれもそれが書込まれ
る前に呼び出されないので、初期設定されない。
【0181】図5の伸長装置は、リード150の上に図
4の圧縮装置によって発生されたビット直列圧縮符号信
号を受けて回復されたデータ文字信号の対応するストリ
ングをバス151の上に与える。ビット直列圧縮符号信
号は、外部装置からリード150の上に与えられる。こ
の外部装置はまた、圧縮符号信号をリード150に加え
るための外部装置から使用できるときは常に、リード1
52の上にデータ使用可能信号を与える。リード152
の上のデータ使用可能信号は、伸長装置制御装置153
に加えられる。制御装置153は、図6の伸長装置のす
べてのブロックに制御信号をリード154を介して与え
る。伸長装置制御装置153は、図5の伸長装置を以下
に詳細に説明するようにしてそれの制御状態を通して順
序づける。バス151の上で出力文字が使用できるとき
制御装置153は出力データ・ストローブ信号を外部装
置経リード155を通して与える。
【0182】図5の伸長装置は、ビット直列圧縮符号信
号をリード150を通して受けて、これらの信号をCビ
ット符号レジスタ157へバス158を経て与えるシフ
ト回路網156を備えている。シフト回路網156は、
符号大きさ回路159によって制御されてレジスタ15
7へバス158を経てDビットを与える(ここでDはC
以下である)。符号大きさ回路159によって制御され
る符号の大きさは、Cビット符号計数器160によって
決められる。シフト回路網156、符号大きさ回路15
9および符号計数器160は、図4の圧縮装置の匹敵す
る構成要素に類似の方法で構成され、図4の圧縮装置に
関して前述したものと同様の機能を行う。シフト回路網
156は、リード150の上に与えらえたDビット圧縮
符号信号をレジスタ157のD個の下位ビットに入れ
る。図5の伸長装置の中に存在する既存の状態と論理的
条件とに従って、制御装置153はまた、図4の圧縮装
置によって与えられた単一文字を処理するためにスタッ
ク161の先頭にバス162を経てBビットを与えるよ
うにシフト回路網156を制御する。シフト回路網15
6の単一文字を処理するための制御は、図4に関して上
述したものと同様の方法で行われてもよい。
【0183】圧縮符号信号を処理するのに先立って、符
号計数器160は、それに与えられるゼロの値をもつ信
号を介してゼロにセットされる。計数器160はまた、
制御装置153からの計数指令信号によって制御され
て、その中に現存する計数を1だけ増分するようにでき
る。符号計数器160はまた、符号計数器160の中の
計数値が値2C −1に達したときを制御装置153にラ
イン164を経て知らせる出力を検出器163に与え
る。この値は、Cビット計数器160がオール1の状態
になったとき、計数器160によって達成される。符号
計数器160は、図4の圧縮装置の符号計数器121に
関して説明したのと同様な方法で昇順にストリング符号
記号信号を割当てる。これらのストリング符号信号は、
RAMアドレス・レジスタ165にバス166を経て加
えられる。
【0184】符号レジスタ157は、図5の伸長装置の
現存する状態とその中に存在する論理諸条件とに従って
それに加わるゼロの値をもつ信号を介して制御装置15
3の制御を受けてゼロにリセットできる。符号計数器1
60の出力および符号レジスタ157の出力は、比較器
167への入力として加えられる。あとで説明する理由
により、比較器167は、符号計数器160の出力が符
号レジスタ157の出力より小さいときおよび符号計数
器出力が符号レジスタ出力以上であるときを制御装置1
53にリード168を介して知らせる。あとで説明する
諸条件のもとで、符号レジスタ157は、その内容をR
AMアドレス・レジスタ165へバス171を介して加
えるように制御できると共に、また、あとのストリング
・テーブル更新のための符号信号を保存するためにその
内容を第2の符号レジスタ172へバス173を介して
転送できるように制御できる。
【0185】図5の伸長装置は、さらにあとで説明する
諸条件のもとで、符号レジスタ172の内容がゼロであ
るときを制御装置153にリード175を経て知らせる
ゼロ検出器174を備えている。制御装置153はまた
その内容をRAMアドレスレジスタ165へバス176
を経て与えるように符号レジスタ172を制御する。
【0186】RAMアドレス・レジスタ165にロード
されたアドレスが伸長装置ストリング・テーブルを記憶
するのに用いられるRAM177を呼び出す。RAM1
77は2C の記憶場所を含み、各記憶場所はC+Bビッ
トの幅である。各ストリングは、そのストリングへ割当
てられた符号によってアドレス指定された記憶場所にお
いてそのCビット接頭部符号およびそのBビット拡張文
字を記憶することによってRAM177の中に記憶され
る。各符号値は、符号計数器160によって昇順に伸長
装置ストリング・テーブルに入れられた各ストリングに
割当てられるRAM177は、制御装置153から「読
出し」指令および「書込み」指令を受けてRAM177
の「読出し」および「書込み」機能を制御する。RAM
177は、符号レジスタ172からの符号値をバス17
8を経て受けスタック161の先頭から文字値をバス1
79を経て受けて、RAMアドレスレジスタ165によ
ってアドレス指定されたRAM記憶場所の接頭部欄およ
び文字欄にそれぞれエントリーする。これらの値は、制
御装置153からの「書込み」指令に応じてそれぞれの
欄に書込まれる。
【0187】制御装置はまた、RAMアドレスレジスタ
165によってアドレス指定されたRAM記憶場所の接
頭部符号欄に記憶された接頭部符号の値を「読出し」指
令に応じてバス180に与えるようにRAM177を制
御する。バス180の上のこの符号値は、RAMアドレ
ス・レジスタ165へ加えられると共に、ゼロ検出器1
81へも加えられる。検出器181は、RAM出力18
0にある接頭部符号がゼロに等しいか等しくないかを定
め、かつ制御装置153への一つの信号をリード182
を経て適宜に与える。
【0188】制御装置153はまた、文字欄からの文字
値をバス183を経てスタック161の先頭に与えてそ
の中にエントリーするようにRAM177を制御する。
文字の値は、RAMアドレス・レジスタ165によって
アドレス指定されたRAM記憶場所の文字欄から「読出
し」指令に応じてバス183の上に与えられる。RAM
出力180および183にある値は、図5の伸長装置の
現存の状態および論理的諸条件とに従って選択的に与え
られる。
【0189】スタック161は、制御装置153からの
「プッシュ」および「ポップ」信号の制御のもとにプッ
シュまたはポップすることができる。スタック161に
記憶された文字の数の計数を維持するためにスタック計
数器184が備えられている。制御装置153の制御を
受けて、スタック計数器184は、それに加わるゼロの
値になった信号を介してゼロにセットできる。計数器1
84の中の現存の計数を制御装置153の制御のもとに
それに加わるADD+1およびADD−1信号によって
それぞれ1だけ増分または減分できる。ゼロ検出器18
5がスタック計数器184の出力を受け、スタック計数
器184にある値がゼロに達するとき制御装置153へ
リード186を介して信号を与える。
【0190】図5の伸長装置の基本動作は、次のように
要約される。
【0191】1.最初の記号:圧縮データの最初のビッ
トを読出し、 出力へ送る;RAMの記憶場所1に最初のストリングの
エントリーをする 2.入力のDビットを読出す→符号レジスタ ゼロであれば、さらにB個の入力ビットを出力スタック
に読出す;ステップ4へ行く。
【0192】3.符号レジスタ→RAMアドレス;RA
Mを読出す 文字(RAM)→出力スタック 接頭部符号(RAM)→RAMアドレス 接頭部符号がゼロでなければ、ステップ3を繰返す; そうでなければステップ4へ行く 4.符号計数器→RAMアドレス; 前の符号、最終文字をRAMに書込む 出力スタックから文字を取って出力へ置く、LIFO: 符号計数器を増分する;ステップ2へ行く。
【0193】図5を続けて参照すると、以下のものが、
図5の伸長装置の状態機械記述語である。
【0194】状態0:「待ち状態」 データ使用可能信号を待つ;状態1へ行く。
【0195】状態1:「最初の符号」 符号計数器=ゼロ スタック計数器=ゼロ 符号レジスタ1=ゼロ 入力空のBビットをスタックの先頭に読出す;出力デー
タ・ストローブ状態2へ行く。
【0196】状態2:「ゼロ・ストリング状態」 符号レジスタ2=符号レジスタ1 符号計数器+1を加える 符号計数器→RAMアドレス・レジスタ RAM=符号レジスタ2、スタックの先頭を書込む。
【0197】状態3:「新符号」 符号レジスタ1→レジスタ2 どのデータも使用可能でなければ:状態0へ行く。
【0198】D入力ビットを符号レジスタ1(下位)D
ビットに読出す 符号レジスタ1=ゼロならば:入力からのBビットをス
タックの先頭に読出す;出力データ・ストローブ 符号計数器2C −1ならば:状態3へ行く 符号計数器<2C −1ならば:状態7に行く 符号レジスタ1>符号計数器〔異常な場合〕: スタック計数値に1を加える;スタックをプッシュ 〔複製文字がすでに存在する〕 符号レジスタ→RAMアドレス 状態4へ行く 符号レジスタ1=0および符号計数器なら〔正常な場
合〕: 符号レジスタ1→RAMアドレス 状態4へ行く 状態4:「次の文字」 RAMを読出す 文字(RAM)→出力スタック; 「プッシュ」、スタック計数器を増分する 接頭部符号(RAM)=非0ならば: 接頭部符号(RAM)→RAMアドレス;状態4を繰返
す 接頭部符号(RAM)=0ならば:状態5へ行く 状態5:「ストリング・テーブル更新」 符号レジスタ2=0ならば:状態6へ行く 符号計数器2C −1ならば:状態6へ行く その他の場合、符号計数器に+1を加える。
【0199】符号計数器→RAMアドレス (符号レジスタ2、スタックの先頭)をRAMに書込む 状態6へ行く 状態6:「出力を発生」 ポップ;出力データ・ストローブ スタック計数器=非0ならば:状態6を繰返す スタック計数器=0ならば:状態3へ行く 状態7:「単一文字更新」 符号レジスタ2=非0ならば: 符号計数器に1を加える 符号計数器→RAMアドレス (符号レジスタ2、スタックの先頭)をRAMに書込む 符号計数器=2C −1ならば、:状態3へ行く 状態2へ行く 上に与えられた状態機械記述語に関する図5の伸長装置
の動作のさらに詳細な説明を次に行う。
【0200】[0] 待ち状態. 1ブロックの圧縮入
力符号信号を待つ間、図5の伸長装置は、この状態にあ
る。圧縮入力符号を供給する外部信号源からのデータ使
用可能信号は、入力データが使用できるときを指示する
ために用いられる。入力符号が使用可能になると、リー
ド152の上のデータ使用可能信号は、「最初の符号状
態」に入るように制御装置153に合図する。
【0201】[1] 最初の符号状態. この状態に入
ると、図5の伸長装置は、メッセージの最初のストリン
グ符号を読取る。これは、最初の符号に対してはゼロビ
ットである入力データライン150からのビットを読取
るシフト回路網156によって行われる。符号計数器1
60は、ゼロにセットされて、符号回路159にゼロビ
ットの符号大きさDを確立する。図4の圧縮装置の動作
に従って、一つのデータブロックの最初の圧縮符号信号
はゼロであってあからさまに伝送されない。従って、符
号レジスタ157は、ゼロにセットされ、最初の符号を
受けたことを示す。
【0202】どのゼロ符号に関しても、この最初の符号
は、Bビット文字信号を伴っている。従って、制御装置
153は、スタック161の先頭に記憶するために経路
162を経て伝送される最初のBビットを読取るように
シフト回路網156を制御する。スタック161の先頭
にある文字は、出力文字バス150を通して使用可能で
ある。制御装置153は、ライン155を通して出力ス
トローブ信号を伝送することによってこの出力文字の使
用可能なことを知らせる。この初めの文字が伝送される
ので、それはあとの伝送に備えてスタック161の中に
保持されない。従って、スタック計数器184は、ゼロ
値を含むように初期設定される。初期符号を処理し終わ
ると、制御装置153は、この最初のストリングをスト
リング・テーブルに入れるために「ゼロストリング更新
状態」に入るように図5の伸長装置を制御する。
【0203】[2] ゼロストリング更新状態. ゼロ
のストリング符号を受取ると、そのゼロストリング符号
にすぐに続く1文字ストリングに対するエントリが割当
てられるべき次の符号番号でストリング・テーブル内に
置かれる。従って、符号計数器160は、1だけ増分さ
れて結果として生ずる結果は、RAMアドレス・レジス
タ165にバス166を介して伝送される。この状況に
おいて、常にゼロである符号レジスタ157の中の値
は、符号レジスタ172へバス173を介して移され
る。RAM177は、次に符号レジスタ172の内容を
バス178を介して新しいストリングの接頭部符号値と
して「書込む」ように制御される。この値は、RAMア
ドレス・レジスタ165によって指定されたアドレスに
ある接頭部符号欄に書込まれる。なお、スタック161
の先頭においてバス179を介して使用可能な出力文字
バス151に出力された最終文字は、このストリングの
拡張文字としてRAM177のアドレス指定された記憶
場所の文字欄に書込まれる。従って、この「ゼロストリ
ング更新状態」においては、ゼロの接頭部符号および受
けた最終のBビットの拡張文字が書込まれ、そのストリ
ングに対する符号によってアドレス指定されたRAMの
記憶場所に適当な単一文字ストリングを作る。次に、
「新符号状態」に入って次の入力符号信号を処理する。
【0204】[3] 新符号状態. パースされた文字
ストリングを回復するための処理の初めにおいて、Dビ
ットの新しい圧縮符号信号がライン150から読取られ
る。しかし、初めには、符号レジスタ157における前
の符号を符号レジスタ172へバス173を経て転送し
て、それを次のストリング・テーブル更新に備えて保存
する。ライン152の上のデータ使用可能信号は、新符
号信号が使用できるかどうかを決めるために試験され
る。データが使用可能でなければ、現在のデータブロッ
クの終りに達したことになり、伸長装置は、その現在の
仕事を完了した「待ち状態」に戻される。
【0205】データが使用可能な場合は、入力の次のD
ビットが入力ライン150から符号レジスタ157の下
位Dビットにシフト回路網156およびバス158を介
して読込まれる。Dの値は、符号計数器160の中の現
在の値に従って符号大きさ回路159によって決定され
る。
【0206】この新符号値は、それが追加された新しい
文字のついたゼロ符号ストリングであるかどうかを決め
るためにゼロに対して試験される。従って、ゼロ検出器
165が制御装置153にリード170を介して符号レ
ジスタ157の内容がゼロであるかどうかを知らせる。
ゼロが検出されれば、以下のアクションが行われる。入
力データの次のBビットは、シフト回路網156によっ
て入力ライン150から読出される。そのBビットは、
バス162を経てスタック161の先頭に伝送され、ラ
イン155の上の出力ストローブは、新しい正しい文字
が使用できることを外部装置に知らせるように起動され
る。次に、検出器163は、符号計数器160の中の現
存する計数値が計数器160のオール1の状態である2
C −1に等しいかどうかを決定する。符号計数器160
がオール1を含む場合、RAM177の中のストリング
・テーブルは、一杯であって、そこにはそれ以上の更新
データを加えない。現在の入力符号の処理は、そのとき
完了していて、伸長装置は、この「新符号状態」に再び
入って、次の圧縮符号信号を処理するように制御され
る。しかし、符号計数器160が2C −1より小さい値
を含む場合、受けたばかりの文字は、前に受けた符号信
号の拡張としてストリング・テーブルを更新すると共に
当然に新単一文字ストリングとしてそのストリング・テ
ーブルを更新するのに用いられる。図5の伸長装置は、
この更新を「単一文字更新状態」に入ることによって行
う。
【0207】符号レジスタ157がゼロ値を含まなかっ
た場合、その内容は、比較器167を介して符号計数器
160の中の既存の計数値と比較される。符号レジスタ
157が符号計数器160より大きな値を含む場合、比
較器167は、制御装置153にリード168を介して
受取ったばかりの符号がまだストリング・テーブルに入
れられていない前の符号の延長である異常な特殊の場合
が起こったことを知らせる。この状態において、新符号
ストリングの最終文字は、前のストリングの拡張文字に
等しく、前のストリングはまた、新符号ストリングの最
初の文字であり、新符号ストリングは、前のストリング
の始めの文字であり、前のストリングは、復号されたば
かりでスタック161の先頭にある文字である。従っ
て、「プッシュ」が新ストリングに対してこの文字を保
持するためにスタック161において実行され、スタッ
ク計数器184は、1だけ増分される。そのあとで、現
在のストリングに対する接頭部符号である符号レジスタ
172の中の符号信号は、バス176を経てRAMアド
レスレジスタ165に転送され、「次の文字状態」に入
ってこのストリングの残部の正常な処理を行う。
【0208】しかし、符号レジスタ157の中の値がゼ
ロでもなく、また符号計数器160の中の既存の計数値
より大きくもない場合、符号レジスタ157の中の値
は、正常なストリング符号である。この符号は、符号レ
ジスタ157からの符号値をバス171を経てRAMア
ドレス・レジスタ165に転送し、そのストリングの各
文字を処理し始めるために「次の文字状態」に入ること
によって処理される。
【0209】[4] 次の文字状態. この状態に入る
と、RAMアドレス・レジスタ165は、文字の対応す
るストリングに伸長されるべきストリング符号を含んで
いる。従って、ストリング・テーブルRAM177は、
レジスタ165の中の符号値によってアドレス指定され
た記憶場所の内容を読取るように制御されて、そのスト
リングのための接頭部ストリング符号および拡張文字を
それぞれバス180および183の上に作る。バス18
3の上の拡張文字は、スタック161の先頭に加えられ
て押下げられ、スタック計数器184は、1だけ増分さ
れる。
【0210】バス180の上の接頭部符号は、それがゼ
ロであるかどうかを決めるためにゼロ検出器181によ
って試験される。その接頭部符号がゼロであれば、スト
リング・テーブル内のアドレス指定された記憶場所は、
現在のストリング内の最終バイトを含み、「更新ストリ
ング・テーブル状態」に入ってスタック161の中に現
在あるストリング・データの処理を完了する。その接頭
部符号がゼロでなければ、接頭部ストリングは、その接
頭部符号をバス180を通してRAMアドレス・レジス
タ165に転送して、この「次の文字状態」に再び入る
ことによって処理される一つ以上の文字を含んでいる。
【0211】[5] ストリング・テーブル更新状態
ストリング符号をその文字の列に伸長したのちに、発
生した最終文字は、そのストリング・テーブルを前の符
号値で更新するための拡張文字として用いられる。しか
し、これは二つの状態のないときにのみ起こる。ゼロ検
出器174が符号レジスタ172の中の前の符号値がゼ
ロに等しいことを決定する場合、このストリングの更新
は、既に起こってしまっており、直ちに「出力作成状
態」に入る。検出器163が、符号計数器160の中の
値が2C −1に等しいと決定する場合、ストリング・テ
ーブルは、一杯であって、それ以上の更新はできない。
この場合にはまた、直ちに「出力作成状態」に入る。こ
れらの二つの状態のどちらも起こらなければ、更新は、
以下のように行われる。符号計数器160の内容は、1
だけ増分され、増分された値は、RAMアドレス・レジ
スタ165にバス160を経て転送される。 RAM1
77は、次に割当てられた符号値のサイトであるアドレ
ス指定された記憶場所に符号レジスタ172からバス1
78を経てくる接頭部符号値およびスタック161の先
頭からバス179を経てくる拡張文字を書込むように制
御される。そのあとで、「出力作成状態」に入る。
【0212】[6] 出力作成状態. 現在のストリン
グの各文字は、スタック161の中にいまはあって、適
当な出力文字列を与えるようにバス151を通して後入
れ先出しで伝送される。スタック161は、ポップ・ア
ップされ、それによって伝送されるべき次の文字は、ス
タック161の先頭に置かれて、その結果、外部装置へ
の出力バス151を通して使用できる。ライン155の
上の出力ストローブ信号は、正しい文字が使用できるこ
とを知らせるために制御装置153によって発せられ
る。スタック計数器184は、1だけ減分されて、スタ
ック計数値がゼロ検出器185によってゼロに対して試
験される。スタック計数器184の中の計数値がゼロで
なければ、もっと多くのデータがスタック内にあって、
この「出力作成状態」に入ってもう一つの文字を与え
る。しかし、スタック計数器184の中の計数値がゼロ
の場合、現在のストリングの文字の伝送は、完了してお
り、「新符号状態」に入って次のストリングを始める。
【0213】[7] 単一文字更新状態. 単一文字を
一つの符号ゼロ・ストリングの上の一つの明白な拡張と
して受取るとき、この文字は、前の符号値に基いたスト
リング・テーブル内で新しいストリングを作るための拡
張文字として使われる。このストリング・テーブル更新
は、前の符号値を含む符号レジスタ172の内容がゼロ
検出器174によって非ゼロであるとして検出される場
合だけ起る。ゼロ検出器174が、符号レジスタ172
の内容がゼロであると決定すれば、このストリングテー
ブル更新は、実行されない。符号レジスタ172が非ゼ
ロの値を含む場合、更新は、符号計数器160を1だけ
増分し、増分された値をRAMアドレスレジスタ165
へバス166を経て伝送することによって行われる。R
AM177は、符号レジスタ172からバス178を経
てくる接頭部ストリング符号およびスタック161の先
頭からバス179を経てくる拡張文字をRAMアドレス
レジスタ165の中の新符号によってアドレス指定され
た記憶場所の接頭部符号欄および文字欄のそれぞれに書
込むように制御される。
【0214】次に符号計数器160の内容は、計数器1
60が値2C −1に達したかどうかを決めるために検出
器163によって試験される。この値に達した場合、ス
トリング・テーブルは、一杯であって、それ以上の更新
は、行われない。次に「次の符号状態」に入って次のス
トリングの処理を始める。しかし、計数器160の内容
が2C −1より小さければ、「ゼロストリング更新状
態」に入ってストリング・テーブルを受けたばかりの単
一文字ストリングで更新する。
【0215】図2〜図5に示した本発明の上述の実施例
は、例えば、ディスクリートなディジタル論理部品を用
いてハードウェアで実現される。表1〜4は、本発明に
よるデータ信号の圧縮および伸長を行うプログラム記憶
式ディジタル計算機にロードするソフトウェアで実現さ
れた本発明の1実施例を示している。明確に言えば、本
発明のプログラム格納計算機の実施例は、図2および図
3に関して先に述べた本発明の最高性能実施例をソフト
ウェアで実現する。表1〜4のプログラム格納計算機の
実施例はFORTRANで実現されるので、互換性のあ
るFORTRANコンパイラを備えた計算機ならどれで
も実行できる。圧縮装置および伸長装置は、それぞれ入
力および出力データを管理する主プログラムの中で呼出
されるべきサブルーチンとして実現される。圧縮装置お
よび伸長装置のサブルーチンは、基礎になっている計算
機のワードの大きさに関係のない任意の長さで密につめ
られた記号の配列について取る動作と置く動作をそれぞ
れ行うIBITSGおよびIBITSPという名の文字
操作サブプログラムを用いる。IBITSGおよびIB
ITSPサブプログラムは、それぞれ等しい大きさの記
号の直線配列の指定された位置にある選択されたビット
長の一つの記号をそれぞれ取ったり、置いたりする。I
BITSGは、圧縮装置および伸長装置サブルーチンに
おいて用いるための機能サブプログラムとして実現さ
れ、IBITSPは、圧縮装置および伸長装置サブルー
チンの実行において呼び出されるべきサブルーチン・サ
ブプログラムとして実現される。表3および表4は、そ
れぞれIBITSGおよびIBITSPを示す。これら
のサブプログラムは、一例として与えられたものであっ
て、等価なサブプログラムが通常の熟練した計算機プロ
グラマによって容易に作られる。
【0216】
【表1】
【0217】
【表2】
【0218】
【表3】
【0219】
【表4】
【0220】表1および表2にそれぞれ示した圧縮装置
および伸長装置のサブルーチンは、それぞれCOMPお
よびDECOMPという名称である。COMPサブルー
チンは、9ビット文字信号のストリングを12ビット符
号記号信号に圧縮し、DECOMPサブルーチンは、1
2ビット符号記号信号を9ビット文字信号のストリング
に伸長する。例示したサブルーチンは、36ビットワー
ド長を有する計算機を用いる。これらのサブルーチン
は、32ビット計算機を用いて8ビット文字で動作する
ように容易に変換される。COMPおよびDECOMP
は、サブルーチンとして構成されるけれども、それらは
当然別々のプログラムとして等価に構成できる可能性の
あることがわかる。FORTRANがこれらのルーチン
を実施するために用いられるが、他の等価なプログラム
言語を同じ効果に用いることができるであろう。
【0221】さて、表1を参照すると、COMP(IB
UFA,NA,IBUFB,NB)サブルーチンが示さ
れている。COMPサブルーチンは、配列IBUFAに
含まれたNA個の9ビット文字のブロックについてデー
タ圧縮を行う。COMPは、配列IBUFBの中のNB
個の12ビット記号で構成された圧縮符号を作る。
【0222】表2を参照すると、バッファIBUFBの
中に受け入れられたNB個の12ビット圧縮符号記号信
号のブロックについて伸長を行い、結果として生じた回
復された9ビットの文字信号を出力バッファIBUFA
につめて、結果として生じた文字の数の計数NAを戻す
伸長サブルーチンDECOMP(IBUFB、NB、I
BUFA、NA)が示されている。
【0223】表2の伸長装置DECOMPは、それのス
トリング・テーブルを文10の中に合うように寸法を与
えられた4096ワード配列ITABLEの中に記憶す
る。文11は、表2の実施例に対して9にセットされた
データ定数NBITSAを用いて出力文字信号の中のビ
ットの数をパラメータ化する。文12は、読出されるべ
き次の入力記号信号を示す入力圧縮記号計数変数NCH
Bを確定する。文12はまた、NCHBを1に初期設定
する。文13は、出力バッファIBUFAの中に置かれ
ていた文字の数を示す出力文字計数変数NAを確定す
る。文13はまた、出力バッファの中に置かれるべき最
初の出力文字を加えるときに、NAを1に初期設定す
る。これは、文18においてあとで説明するような方法
で起る。ITABLEの中の各ストリング・テーブル記
憶場所は、三つの整数の値をもつ欄で編成される。各ス
トリング・テーブル記憶場所は、記憶場所の内容を経て
遭遇した文字のストリングをビット1〜12にある接頭
部ストリング符号、ビット13〜24にある接頭部スト
リングの長さおよびビット25〜36にあるストリング
拡張文字を介して記憶する。本実施例においては、この
アドレスは、表1に関して上に検討した理由のために符
号信号に1を加えたものである。
【0224】文14および15は、すべての記憶場所が
空であるということを示すようにストリング・テーブル
ITABLEを初期設定する。オールゼロは、プログラ
ムする便宜上、空状態を指示するように任意に選択され
る。オールゼロは、適合ストリングを記憶するときに決
して起り得ない不法構成である。適合ストリングがゼロ
の接頭部符号をもつとき、それは1の接頭部ストリング
長さをもつもので、オールゼロ構成は、この初期設定の
手順の間ストリング・テーブル内になされ得るだけであ
る。
【0225】初期処理が文16において最初の入力符号
記号を読取って、最も最近読取られた符号記号を含むた
めに用いられる変数NOCODEの中にこのノード符号
を記憶することによって始められる。文16は、最初の
入力符号記号の読取りを表3のIBITSG機能サブプ
ログラムを用いてIBUFBの中のNCHB番目の12
ビット項目を入力することによって行う。文17は、最
も最近発生された文字を含むために用いられる変数IC
HARを定める。文16において、NOCODEの中に
置かれたばかりの値が単一文字符号であるとわかってい
るので、それは、文17においてICHARを満たすた
めに直ちに用いられる。文18は、出力バッファIBU
FAの中のこの文字をNBITSAの大きさの項目のN
A番目のサイトに置く。文18は、表4のIBITSP
サブルーチンを呼び出すことによってこの文字出力動作
を行う。そのあとで、ストリング・テーブルのこのスト
リングの拡張によるあとでの更新に備えて、文19は変
数NODOLDの中にNOCODEの中のストリング符
号を保存し、文20はLEVOLDの中のストリングの
長さをこの最初のストリングに対する長さの既知の値と
一緒に保存する。伸長処理を初期設定にこのようにした
とき、文21において主繰返し入る。文21は、それへ
のあとでの転送を行うために100のラベルを備えてい
る。
【0226】主ループのはじめにおいて、文21は、記
号計数NCHBを1だけ増分し、次に、文22は、入力
記号計数NCHBが処理されるべき記号の番号NBを超
えるかどうかを決めるための試験を行う。現存の記号計
数NCHBが伸長されるべき使用可能な記号の番号より
大きければ、その過程は完了であって、DECOMPが
サブルーチン・リターン文57に転送することによって
終了になる。文57は、その転送を行うためにラベル5
10を備えている。しかし、伸長されるべきそれ以上の
入力データが使用可能なとき、文23は、IBUFBの
NCHB番目の12ビット位置から次の使用可能な記号
を読取る。文23は、表3のIBITSG機能サブプロ
グラムを用いてこの動作を行う。文23は、読取り符号
記号を処理されている現存の部分ストリングの符号を保
持するために用いられる変数であるNODENOの中に
置く。文24はまた、入力符号記号を最も最近の入力符
号を入れておくのに用いられるNOCODEに置く。文
25は、NODENOの中の符号値を試験して、それが
512を超えるかどうかを決め、512を超えれば、そ
のプログラムは、文28に移って、正常な伸長過程を始
める。値512は、図2、図3に関して前に検討した理
由によって2B に等しい。文28は、それへの転送を行
うためにラベル120を割当てられる。しかし、文25
の試験がNODENOの中の新しい記号が512より小
さい値をもっていると決定すれば、その符号は、直接に
解釈される予め割当てられた符号値の単一文字ストリン
グを表す。この単一文字ストリングは、接頭部ストリン
グの長さがゼロである。従って、文26は、処理されて
いるストリングの接頭部ストリング長さを保持するため
に作業用変数LEVELを確定する。この場合にLEV
ELは、ゼロにセットされる。そのあとで、文27は、
すべての単一文字ストリングの処理が達成される場所で
ある文40にプログラムを転送する。文40はそれへの
転送を行うためのラベル210を備えている。
【0227】文25がラベル120を介して文28への
転送を行うと、新しい符号値が多重文字ストリングを表
すとわかっているNODENOに常駐している。文28
は、現在のストリングがいままでのところストリング・
テーブルに入っていない直前のストリングの拡張である
異常な特殊な状況に対して試験する。この試験は、この
ストリング符号値を前に定めたことかどうかを決定する
ために新しい符号のストリング・テーブル記憶場所の内
容を調べることによって行われる。実際には、テーブル
は、上に検討したFORTRANの必要条件を満たすた
めにNODENO+1のところにアドレス指定される。
テーブル・エントリがゼロでなければ、そのストリング
は、前に定められたのであって、転送が文33に行われ
て正常の処理を続ける。ラベル130は、その転送を行
うために文33に割当てられる。しかし、文28の試験
がテーブル・エントリが空であることを決定すれば、現
在の符号は、直前のストリングの拡張であるとわかる。
従って、現在のストリングの接頭部ストリング長さは、
前のストリング長さに等しい。従って文29は、LEV
OLDの中の前のストリング長さを接頭部ストリング長
さ変数LEVELの中に置く。その特殊な場合には、与
えられるべき最初の文字は、この現在のストリングの親
文字である直前のストリングの拡張文字であるとわか
り、その親文字は、直前のストリングの親文字に等し
く、その親文字または変数ICHARに常駐する文字で
ある。従って、文30は、表4のIBITSPサブルー
チンを呼出してIOHARにある既存の値を新しいスト
リングの終りにある記憶場所において出力バッファIB
UFAの中に置く。この記憶場所は、伸長装置によって
与えられていたすべての前の文字のNA計数にLEVE
L+1の中の接頭部ストリングの長さの値を加えたもの
から決定される。新ストリングの最初の文字を出力した
のち、文31は、NODOLDにある前のストリング符
号を復号されるべき接頭部ストリングとしてNODEN
Oに転送し、文32は、ストリングを復号する場所であ
る主ループに入るために文34への転送を行う。ラベル
200は、文34への転送を行うために文34に割当て
られている。
【0228】文28によって行われた試験が現在の符号
がテーブル内に既にあるストリングを表すことを示すと
き、ラベル130を介して文33への正常の符号解釈経
路がたどられる。FORTRAN BITS関数を用い
る文33は、呼出されたストリングの接頭部の長さをN
ODENO+1の内容によってアドレス指定されたIT
ABLEの記憶場所のビット13において始まる12ビ
ットから読取る。この接頭部ストリング長さは、このス
トリングの拡張が入れられるストリング・テーブルのあ
とでの更新のためにLEVELに保存される。
【0229】文34は、NODENO内の符号によって
表された部分ストリングをその接頭部ストリングと拡張
文字に分解する主ループに入る入口である。文34は、
部分ストリングが接頭部ストリングをもっているかどう
かを決定するために部分ストリングの符号を512より
大きな値に対して調べる。部分ストリングの符号が51
2より小さければ、それは単一文字によって予約された
値であり、文40への転送が行われて、この単一文字ス
トリングを処理して終りにする。文40に割当てられた
ラベル210は、その転送を行うために用いられる。N
ODENOが適合多重符号信号を与える継続的な場合に
は、それのテーブル記憶位置の内容は、FORTRAN
のBITS関数を用いて呼出される。従って、文35
は、ビット13において始まる12ビットの接頭部スト
リング長さを一時変数INDEXの中に保存する。文3
6は、ビット25において開始するNBITSAビット
拡張文字をICHARに置く。文37は、次に、表4の
IBITSPサブルーチンを呼出して、この文字をすべ
ての前のストリングの合計NAにINDEXに記憶され
たこの文字に関連した接頭部ストリングの長さを加えた
ものを1位置越えたところでその文字の記憶場所にある
出力バッファIBUFAへ入れる。そのあとで文38
は、BITS関数を用いて、呼び出された記憶場所から
の12ビット接頭部ストリング符号をITABLEに置
いて、その符号のビット1で開始して、この符号値をそ
れ以降の処理を行うためにNODENOに入れる。この
ストリング分解手順は、次に文39を介してラベル20
0を用いて文34へ逆に送り返すことによって繰返され
る。
【0230】文40は、NODENO内の残りの部分ス
トリング符号が単一文字ストリングを表すとき、処理を
移す先のプログラム内の記憶場所を切分ける。文40へ
の転送は、各ストリングに対する処理の終りに行われ
る。単一文字ストリングに対する符号は、文字値である
ので、文40は、NODENOの内容をICHARに転
送する。次の文41は、表4のサブルーチンIBITS
Pを呼出すことによってその文字を出力し、その文字を
前のストリングの合計NAを過ぎた最初の文字位置にお
いて出力バッファIBUFAの中に入れる。そのあと
で、このプログラムのテーブル更新段階に文42で入っ
て、この最終文字によって拡張された直前のストリング
をストリング・テーブルに入れることができるかどうか
を決定する。このプログラムのテーブル更新段階は、文
42において1に初期設定された探索された計数変数N
を使って前述の多重探索ハッシング手順を用いる。文4
3は、ICHAR内の拡張文字値およびNODOLD内
の前の文字符号とからの更新を試みる場所である最初の
ハッシュアドレスを計算する。量1は、それを上述の理
由でFORTRAN適法テーブル記憶場所に変換するた
めに、ハッシュアドレスに加えられ、この記憶場所アド
レスはLOCの中に記憶される。
【0231】文44および45は、その探索サイトを調
べてそれが拡張文字を記憶するのに適当であるかどうか
を決定する。文44は、拡張ストリングの記憶に使用で
きないあらかじめ割当てられた記憶場所1ないし513
(符号ゼロないし512に対応する)の一つに当たるか
どうかを決定する。LOCの中のアドレスがあらかじめ
割当てられた記憶場所1ないし513の中の一つに対応
すれば、文46への転送が行われ、さらにハッシュアド
レスを発生する。その転送は、文46に割当てられたラ
ベル218によって行われる。しかし、そのアドレスが
513より大きければ、文45は、LOC記憶場所の内
容を試験してその記憶場所が空であるかどうかを決定す
る。その探索サイトが空であれば、文50への転送がラ
ベル220を介して行われ、そのストリング・テーブル
を更新する。しかし、その探索サイトが空でなければ、
そのプログラムは、文46に進んでもう一つの記憶場所
のためのハッシュアドレスを計算する。文46は、探索
計数Nを1だけ増分し、文47は、増分された探索計数
を探索長さ限界(この実施例の場合7にセットされてい
る)に対して試験して、それ以上の探索サイトを試みる
べきかどうかを決める。探索長さ限界を越えていなかっ
たならば、そのテーブルの中に受入れできるスペースが
拡張ストリングに対して残っておらず、文53への転送
がストリング処理を終らせるために行われる。ラベル2
25がその転送を行うために文53に割当てられる。し
かし、もう1回の探索が認められれば、文48は、LO
Cに対する新しいハッシュ・アドレス値をFORTRA
Nの必要条件を満たすために用いられたばかりの値(モ
ジュロ4096)に加えられたNODOLDについての
第2のハッシュ関数に1を足したものにより計算する。
次に文49は、文44への再入をラベル215を介して
行って、その探索を再開する。
【0232】文45を介して適法アドレスをもつ探索サ
イトが空であることがわかったとき、文50への転送が
行われた。突きとめられたサイトのアドレスは、この拡
張ストリングに対する表1の圧縮プログラムによって作
られたものであり、従って、このアドレスは、そのスト
リングの符号番号として用いられる。これは、そのスト
リングに対する記述データを呼出された記憶場所に書込
むことによって達成される。従って、文50は、NOD
OLDからの接頭部ストリング符号をその記憶場所の最
初の12ビットの中に書込むためにBITS FORT
RAN関数を用いる。BITS FORTRAN関数を
用いる文52は、LEVOLDからの接頭部ストリング
長さをその記憶場所の次の12ビットに書込み、文51
は、ICHARからの拡張文字をその記憶場所の残りの
ビットに書込む。そのあとで、文53〜55において、
ストリング記帳(bookkeeping)の終りが行
われる。文53は、NOCODEの内容をNODOLD
に転送し、それによってNOCODEの中の最も最近読
取られた符号記号を前の符号NODOLDに変換する。
文54は、この前の符号のLEVEL内の接頭部ストリ
ング長さを1だけ増分して、前のストリングが次のテー
ブル更新の際に接頭部ストリングとして入れられると
き、前のストリングのストリング長さを与える。この接
頭部ストリング長さの量は、LEVOLDに記憶され
る。文55は、出力文字の計数NAを処理されたばかり
の最終のストリングの長さであるLEVEL+1の大き
さだけ大きくする。ストリング記帳のこの終りが行われ
たのち、文56は、ラベル100を介して文21への再
入を行い、次の入力圧縮符号記号信号を処理する。
【0233】文57は、データ・ブロック処理の終りを
切分ける。表2のプログラムにおいて、クリーンアップ
処理は、必要ないので、制御が表2のサブルーチンDE
COMPを呼出した主プログラムに戻されて、入力バッ
ファIBUFBに記憶された圧縮符号記号信号のブロッ
クを伸長する。
【0234】表1ないし表4に関して説明した本発明の
実施例は、FORTRANプログラミング言語で与えら
れた圧縮および伸長サブルーチンとして例示されたが、
その圧縮および伸長サブルーチンは、当然に主プログラ
ムとしてフォーマットを作ることができた。これらのプ
ログラムは、例えばコンピュータまたはマイクロプロセ
ッサにおいて、ソフトウェアとして用いることができる
し、または、例えば、磁気ディスクまたはテープの制御
装置の入出力電子回路において用いるためのROMチッ
プの形でファームウェアとして構成してもよい。なお、
FORTRAN以外のプログラミング言語を用いること
もできるし、または同じ言語または他の言語における他
のプログラムコーディングを、ここで説明した機能を行
うのに用いて、本発明のデータ信号圧縮および伸長の諸
手順を実施することもできる。
【0235】マイクロプロセッサまたは他の形式のコン
ピュータのプログラム格納式のものが、ここで説明した
能力と技術の1実施例を、すなわち、基本的データ操作
の選択および状態順序づけ制御インプリメンテーション
の選択における以外は、ここで述べたデジタル論理式の
ものと区別できない実施例を与えることが分る。汎用コ
ンピュータにおける標準化されたデータ操作の動作を、
ワイヤおよび論理ゲートの形でなく再書込みできる記憶
装置に記憶されたものとしての容易に変更された形式の
制御ロジックと共に作ることの経済性はによって、実行
速度のある程度の相対的低下で特定の適用業務に対して
経済的に作ることができ、さ細な方法で経済的に製造で
き、かつ迅速に変更できる実施例を提案できる。
【0236】本発明のハードウェア実施例に関する上述
のハッシュ関数は、20ビットの項目(12の符号ビッ
トと8の文字ビット)を含む符号、文字タプルを12ビ
ット・アドレス・スペースにマップする。ソフトウェア
実施例に関して用いられたハッシュ関数は、21ビット
項目(12符号ビットと9文字ビット)を21ビット・
アドレス・スペースにマップする。20ビットの値およ
び21ビットの値のすべてが起こるわけではないので、
そのようなハッシュ関数を用いることができる。上述の
ハッシュ関数を前に述べた基準を満たすように設計し
た。なお、このハッシュ関数は、その諸仮定から生ずる
撞着を最小にするように設計され、第1には、幾つかの
個々の入力文字がほかのものよりより頻繁に用いられ、
低い番号の文字が頻繁に使われ易く、そして、第2に
は、幾つかの符号が他のものよりより頻繁に用いられ、
早期に生ずる符号が最も頻繁に用いられるであろう。上
述のものに代るハッシュ関数は、符号の左5ビットを回
転することによって最初のハッシュアドレスを発生し、
その文字ビットに排他的論理和演算を施して回転された
符号の高位ビットにすることにより実施できる。三つの
順次のアドレスが前の12ビット・ハッシュ・アドレス
にモジュロ4096を加えることによって発生され、新
しい12ビット番号が終端間で反転され、かつ結果とし
て生じた番号の最下位ビットを1に強制して左3ビット
を回転した符号番号を含んでいる。
【0237】図2ないし図5に関して説明した本発明の
実施例は、本発明の代りの実施例を与えるために上述の
ものと異なる組合わせで結合できる種々の随意選択的技
術を用いる。図2および図3の圧縮装置−伸長装置は、
単一文字ストリングのすべてでストリング・テーブルを
初期設定するが、一方、図4および図5の圧縮装置−伸
長装置は、ゼロストリングだけでストリング・テーブル
を初期設定する。図2および図3については、単一文字
ストリングの初期設定を単一文字そのものをこれらのス
トリングの符号番号として用い、2B より大きいアドレ
スに対してのみストリング・テーブルにアクセスするこ
とを可能にすることによって行われる。圧縮されるべき
文字のすべては、Bビット・バイトであるから、全ての
文字は、2B より小さな値をもっている。従って、2B
より小さい符号値をもつ単一文字ストリングが図2の圧
縮装置によってストリング・テーブルのアクセスなしで
伝送される。図3の伸長装置において単一文字ストリン
グとして認識され、それによって直接伝送されてもよ
い。図4および図5の圧縮装置−伸長装置は、ゼロスト
リングだけでテーブル初期設定を行うのであって、それ
のストリング・テーブルをゼロないし2C −1のすべて
のアドレスで呼出す。従って、図4の圧縮装置の実施例
においては、単一文字ストリングが、受けた文字を符号
番号ゼロでハッシュして、結果として生じたハッシュ・
アドレスにあるゼロのストリング接頭部符号を入れるこ
とによってストリング・テーブルに入れられる。図5の
伸長装置もまた接頭部符号ゼロを適当なストリング・テ
ーブルの記憶場所に入れることによって単一文字のスト
リングを記憶する。
【0238】このほかの変形例としては、図2および図
3の圧縮装置−伸長装置は、ストリングのハッシュ・テ
ーブル・アドレスをそれのストリング符号記号信号とし
て割当てるが、一方、図4および図5の圧縮装置−伸長
装置は、新ストリング・エントリーが作られるストリン
グ符号記号信号を各ストリングに逐次に割当てる。
【0239】なお別の変形例としては、図2および図3
の圧縮装置−伸長装置は、固定長符号値を各ストリング
に割当てるが、一方、図4および図5の圧縮装置−伸長
装置は、可変する長さの符号記号を各ストリングに割当
てる。図2および図3の実施例において、固定長はCビ
ットの全アドレス長であるが、一方図4および図5の実
施例においては圧縮符号記号の長さはCビットの長さが
得られるまでデータブロックの処理の間増える。
【0240】なお別の変形例としては、図3の伸長装置
は、伸長ストリング反転を行うためのストリング長さイ
ンデクシング機構を用いるが、一方、図5の伸長装置
は、この目的に後入れ先出しスタックを用いる。
【0241】前述のように、各変形例は、図2ないし図
5に開示された実施例において実施される。当業者がこ
れらの変形例を別途組合せて本発明の範囲内で追加の実
施例を作ることができる。上述の四つの変形例の各々
は、二つの可能性をもっているので、16の別々の実施
例を構成できる。例えば図4の圧縮装置に関して、逐次
割当てストリング符号をCビットの固定長出力として伝
送できる。その場合、符号大きさ回路123を除去でき
る。そのような実施例においては、図5の伸長装置は、
そのときやはり符号大きさ回路159を除くことになろ
う。そのような圧縮装置−伸長装置においてストリング
・テーブルをゼロストリングだけで初期設定する変形例
が組入れられると(図4および図5で説明したよう
に)、図4の圧縮装置のシフト回路網118を用いてオ
ールゼロの空白符号の伝送に続くBビット・バイトと同
様に固定長Cビット圧縮符号信号を伝送するのに用いる
ことができる。同様にして、図5の伸長装置は、オール
ゼロの空白符号を受取ったのに続いて、Bビットバイト
信号を受取るためと共に固定長Cビット符号信号を受け
入れるためにシフト回路網156を用いるであろう。し
かし、図4および図5の圧縮装置−伸長装置を上述のよ
うに固定長符号の変形例を含むように変更し、さらにす
べての単一符号のストリングを使うストリング・テーブ
ル初期設定を用いるように変更するとすれば、図4の圧
縮装置のシフト回路網118を符号番号レジスタ119
からバス120を通して与えられる出力と共に除去する
ことになろう。そのような実施例においては、図5の伸
長装置はそのときバス158を介して符号レジスタ15
7に直接に加えられる入力符号をもったシフト回路網1
56を除去するであろう。さらに、図4の符号計数器1
21をストリング・テーブル初期設定が行われたのち
に、2B にセットすることになり、図5の符号計数器1
60をゼロの代りに2B に初期設定することになろう。
なお、符号レジスタ116からの図4のバス117は、
Bビット文字をレジスタ119の最下位位置に挿入する
ために符号番号レジスタ119に加えることになろう。
レジスタ119のC−Bの最上上位位置をゼロにセット
することになろう。図4および図5の圧縮装置−伸長装
置に対する上述の変更は、圧縮効率を犠牲にして性能を
向上させることになろう。
【0242】上述のことから、変更された図4のレジス
タ116および119とそれらの動作との間の関係は、
図2のレジスタ17および19とその動作との間の関係
と同一であることが分る。なお、すべての単一文字スト
リングを使ったテーブル初期設定を用いる変更された実
施例においては、図4の比較器134へのゼロの値をも
った入力は、用いられない。初めて遭遇する文字の単一
符号ストリングを含む単一文字のストリングは、新しく
遭遇した文字に対して、新しい文字に先立つオールゼロ
の空白符号信号を伝送するのではなく、図2に関して述
べたものと同一の方法で伝送される。
【0243】なお、すべての単一文字ストリングと固定
長圧縮符号信号とでのテーブル初期設定を用いる図4お
よび図5の変形された圧縮装置−伸長装置の実施例にお
いては、図5の伸長装置は、多重文字ストリングまたは
単一文字ストリングを受取ったかどうかを決定するため
に符号レジスタ157の内容をゼロにではなく2B に比
較することによって変更される。バス162は、符号レ
ジスタ157から出されて、単一文字ストリングを直接
にスタック161に伝送する。バス180の上の符号
は、一つのストリングの中の最初の文字にRAM177
のストリング・テーブルを通る逆方向トレースにおいて
遭遇したときを決定するためにゼロにではなく2B に比
較される。RAMアドレスレジスタ165からスタック
161に先頭へのバスは、図3の伸長装置に関して前述
したのと同様のやり方でトレースされたストリングの最
終文字をスタック161へ転送するように接続される。
図5のゼロ検出器174は、この変更実施例においても
はや必要ではなくなる。レジスタに入るゼロの値をもっ
た入力も必要なくなる。
【0244】単一文字のストリングのすべてでストリン
グ・テーブルを初期設定し、新しいストリング・エント
リが作られるとき、ストリング符号記号を逐次に割当
て、そして変化する長さの圧縮符号信号を伝送する圧縮
装置−伸長装置の実施例を作りたい場合は、図4および
図5の装置をそれ相応に変更できる。図4の圧縮装置
は、ストリング・テーブルの初期設定が行われたのち
に、符号計数器121を2Bにセットして、図5の計数
器160をゼロの代りに2B に初期設定することによっ
て変更できる。なお、文字レジスタ116からの図4の
バス117は、上述のように符号番号レジスタ119へ
加えられる。同様に図5の伸長装置は、多重文字ストリ
ングまたは単一文字ストリングを受取ったかどうかを決
定するために符号レジスタ157の内容をゼロとではな
く2B と比較することによって変更される。なお、バス
180の上の符号は、一つのストリング内の最初の文字
にRAM177のストリング・テーブルを通る逆方向ト
レースで遭遇したときを決定するのにゼロとではなく2
B と比較される。この実施例においては、図5のゼロ検
出器174もレジスタ157に入るゼロの値をもった入
力も必要でなくなる。
【0245】空白ストリングだけでストリング・テーブ
ルを初期設定するように図2および図3の圧縮装置−伸
長装置の実施例を変更したい場合、比較器26は空白符
号および空符号に等しいハッシュ関数アドレスを放棄す
るように変更される。なお、比較器32は、文字レジス
タ17の中のBビット文字を空白符号の伝送のあとに伝
送すべきかどうかを決定するために符号番号レジスタ1
9の中の値をゼロと比較するように変更される。Bビッ
ト文字をゼロを満たされたCビット文字として伝送でき
るし、またはその代りにシフト回路網機構を前述のもの
と同様に用いることもできる。同様にして、図3の伸長
装置は、2B ではなくゼロを検出するためと符号レジス
タ57を制御するためとに比較器58を用いることによ
って空白符号に直接続く単一文字を伝送するように変更
できる。
【0246】上述のことから図2および図3の実施例
は、圧縮効率を犠牲にして最高性能を与えることがわか
るであろう。なお、図4および図5の実施例は、性能を
犠牲にして最高圧縮を与える。各変形例、すなわち、全
ての単一文字ストリングを用いてのテーブル初期設定;
新しいストリングを作るとき逐次に割当てられるストリ
ング符号記号;固定長符号値を伝送すること;および後
入れ先出しスタックを用いるストリング反転、を組合わ
せる上述の変更は応用業務(アプリケーション)に従っ
て好ましい実施例を与えることのできる最高性能と最高
圧縮との間の中間のものである。ストリング反転のため
の図5のスタック機械化は、図3のストリング長さイン
デクシング機構と容易に相互交換できる。ストリング長
さインデクシングを用いるとき、レベル欄は、RAM記
憶場所に追加され、図3のインデクシング機構の構成要
素61,78,85,86,88および91が用いられ
る。スタック機構が用いられるとき、RAMのレベル欄
は必要でなく、図5の構成要素161,184および1
85が用いられる。
【0247】上述のように、表1〜表4は図2および図
3の最高性能ハードウェア実施例の各変形例を用いる本
発明のプログラム格納式コンピュータの実施例を示す。
本発明の種々のソフトウェア実施例は、上述の各変形例
の種々の組合せを通常の熟練したコンピュータ・プログ
ラマによって普通に与えられるそのためのプログラムコ
ーディングと共に用いることによって提供することがで
きる。
【0248】まとめると、本発明は入力データの中で観
察された文字のストリングを、多分、圧縮されるべきデ
ータブロックの始めにおいてテーブルを初期設定できる
単一文字ストリングなどのストリングを除いて記憶する
ストリング・テーブルを用いる。それらのストリング
は、各ストリングの記憶されたセットが処理されている
データの統計に適応するようにストリングが入力データ
の文字ストリームの中に観測されるとき、テーブルに動
的に入れられる。X文字の各ストリングは、X−1文字
の接頭部ストリングと一つの拡張文字とを含み、その場
合に接頭部ストリングもまたテーブルの1構成要素であ
る。各ストリングは、一つの符号記号を割当てられ、記
憶されたストリングが入力データ文字ストリームの中で
遭遇されると、遭遇したストリングは、圧縮データの中
のその符号信号によって表される。各ストリングは、ス
トリングの符号記号、接頭部ストリングの符号記号、お
よびストリング拡張文字とによって判然とまたは暗黙裏
に(すなわち、直接にまたは間接的に)、のいずれかで
記憶される。データ文字信号のストリームは、各文字の
ストリングにそのストリームをパースすることによって
処理され、各ストリングは、ストリング・テーブルの中
に既に置かれている。このパーシングは、始めの文字か
ら出発して1度に1文字ずつ分離するデータ文字ストリ
ームの中への唯1回のパスにおいて達成される。各文字
は、拡張されたストリングがストリング・テーブル内に
あるものに一致する場合、前のストリングを拡張するの
に用いられる。そうでなければ、その文字は、新しいス
トリングを開始するのに用いられる。基本的には、圧縮
処理は、入力データストリームの中で各文字が出てきた
とき、以下のように各文字に次々に加えられる循環ステ
ップとして考えてもよい。
【0249】入力データストリームからのストリングS
がストリング・テーブル内に置かれていたとする。その
入力データ・ストリームの中で次に続く文字cに対し
て、そのテーブルは、拡張ストリングScがその中に存
在するかどうかを決定するために探索される。ストリン
グScがそのテーブルの中に存在すれば、次に続く文字
が試験されてその手続きが再び適用される。拡張ストリ
ングがそのテーブルに存在しなければ、ストリングSに
対する符号記号が圧縮出力として伝送され、ストリング
Scがそのテーブルに入れられる。次に文字cは、次の
ストリングの最初の文字として用いられて、その手続き
は、次に続く入力文字を用いて再び適用される。
【0250】ストリングScに対する探索は、一つのス
トリング・テーブルアドレスを与えるために文字cをス
トリングSに対する符号と組合せることによって行われ
る。拡張ストリングScは、既にそのアドレスの記憶場
所に記憶されていれば、そのストリングScは、そのテ
ーブルの中に存在していることになる。その記憶場所が
空であれば、そのストリングは、そのテーブルの中に存
在しない。その場合には、ストリングSに対する符号記
号が伝送され、ストリングScが空記憶場所に入れられ
る。できれば、文字cとストリングSに対する符号との
組合せが上述の限定探索ハッシュ手順によって行われる
のが好ましい。圧縮の間、圧縮手順の中の1点において
定められた可能なストリングの数がストリングの実際の
数およびある本質的なファクタによる経済的記憶装置の
大きさを超えることになるので、ハッシュ・テーブル機
械化は、あらかじめ割当てられていないストリングを記
憶するのに用いられる。一般的には、ハッシュ・テーブ
ルの各記憶場所が選択された数学的関数によって割当て
られた可能な項目の割当てられたセットを含むことので
きるものがハッシュ・テーブルである。前述の限定探索
ハッシュ・テーブル・プロセスにおいて、各可能なアド
レスが限られた数の記憶アドレスの小さなグループ内で
のみ現れる。この基準は、可能なエントリを探すためま
たはそれがテーブルの中にないことを定めるために必要
な探索の量を限定する。
【0251】圧縮の間ストリングが少なくともそれを識
別するためのその接頭部符号を用いて検索される。伸長
の間、ストリングがその符号記号によって直接に識別さ
れる。伸長装置のストリング・テーブルは、各ストリン
グ記憶場所に接頭部ストリング符号および拡張文字を記
憶し、そのストリング記憶場所は、そのストリングに対
する符号によってアドレス指定可能である。従って、入
力符号記号は、接頭部ストリングおよび拡張文字を与え
るテーブル内で探索される。次に接頭部ストリングは新
接頭部ストリングおよび新拡張文字を与えるテーブル内
で探索される。この過程は始めの単一文字ストリングに
出合うまで繰返される。
【0252】本発明の上述の各実施例において、ハッシ
ュアドレスまたは数が大きくなってゆく次々の値がスト
リングのための圧縮符号記号信号として用いられる。こ
れらの値の矛盾のない変更またはアイソモルフィズムも
またそれらのストリングに対する圧縮符号記号信号とし
て用いることができるとわかる。
【0253】本発明の上述の実施例の若干の変形を以下
のように容易にわかる設計変更を用いて行うことができ
る。
【0254】本発明では、圧縮装置がディスク装置また
はテープ装置のような同期チャネルに圧縮データを与え
ている場合、その出力速度がバッファリングを最小にす
るためにチャネルの入力速度に一致するように圧縮装置
の速度を増減するのが望ましいことがある。圧縮装置の
出力速度を達成された圧縮比によって制御し、その圧縮
比は遭遇したデータの形式に従って変わる。圧縮装置が
高すぎる速度で出力記号を作るように、その圧縮装置が
圧縮しにくいデータに遭遇した場合、圧縮装置を入力文
字の間で待機させることによって減速できる。圧縮装置
が非常に圧縮しやすいデータに遭遇するので、それが出
力記号をあまりゆっくり作る場合、その圧縮装置を圧縮
装置の効率を減らすことによってスピードアップでき
る。これは、出力符号記号を必要とするときは常に、文
字ストリング拡張を中止することによって行われてもよ
い。従って、圧縮装置が必要な出力速度を遅くするとき
は常に最長マッチより少ないストリングを選ぶことがで
きる。なお、圧縮有効度は、データブロックの初期部分
を処理するとき低くなり、そのブロックの処理が続くと
き増加する傾向があるので、圧縮符号ストリームの転送
を開始する前に圧縮を始めて圧縮速度の変化を相殺する
ことが望ましいことがある。この待ち時間損失は、圧縮
データを圧縮装置から外部装置に書込むときにのみ起こ
ることがわかる。圧縮データを外部装置から読出すとき
には、圧縮データが外部信号源から使用できるようにな
ったら直ちに伸長を開始できる。
【0255】さらに別の変更が選択された値より小さく
なるようにパースされたストリング長さを制御するため
に圧縮装置の一部分として計数器を用いることを含むこ
とがある。この特徴は、圧縮データの出力速度がさらに
予測しやすくなるように瞬時圧縮比の変動を小さくする
であろう。なお、そのような計数器は、最大ストリング
長さに敏感な伸長装置内の装置の価格を引下げるであろ
う。そのような装置には、図5の後入れ先出しスタック
161のほかに、レベル・レジスタ78および85、ア
ドレス加算器86、アウトポインタ・レジスタ88なら
びに図3のRAM75のレベル欄がある。
【0256】本発明のさらに別の変更は、同時にではな
いけれども圧縮および伸長の両方に対して同じハードウ
ェア装置のセットを用いることであることがある。圧縮
および伸長の必要条件の間には、特にRAMについて、
同時性を失ってもよいとき、かなりの価格の節約をこの
変更によって得ることができるという十分な類似性があ
る。なお、圧縮を実行する際に連想記憶装置をRAMの
代りに用いることもできよう。そのような変更は、ハッ
シングの必要をなくして制御の複雑さを減らす。
【0257】
【発明の効果】本発明は、非常に様々なデータの種類に
ついて適応性のある可逆データ圧縮および伸長をデータ
統計またはデータ冗長度の形式について前もって何ら知
ることなしに達成し、かつその圧縮符号の伸長を実現す
る方法および経済的な装置を提供する。従って、関連の
データ圧縮装置と共同して、良好な圧縮比を、最も速い
今日の磁気テープおよび磁気ディスクデータ記憶装置な
らびに最も速い今日の商用通信リンクと共に用いるのに
適する高性能動作で達成することができる。
【図面の簡単な説明】
【図1】データ文字信号のストリームのパースされた部
分の略図である。
【図2】最高性能を与えるように実施された本発明によ
るデータ圧縮装置の略ブロック図である。
【図3】最高性能を与えるように実施された、図2の圧
縮装置からの符号信号の圧縮ストリームを伸長するのに
適応された本発明によるデータ伸長装置の略ブロック図
である。
【図4】最高圧縮を与えるように実施された本発明によ
るデータ圧縮装置の略ブロック図である。
【図5】図4の圧縮装置からの符号信号の圧縮ストリー
ムを伸長するように実施された本発明によるデータ伸長
装置の略ブロック図である。
【符号の説明】
13 制御装置 17 文字レジスタ 19 符号番号レジスタ 23 ハッシュ関数回路 26,32 比較器 28 RAMアドレス・レジスタ 29 RAM 35 初期設定計数器 53 制御装置 57,64 符号レジスタ 58,72 比較器 61 最終文字レジスタ 62 RAMアドレス・レジスタ 69 ハッシュ関数回路 75 RAM 78,85 レベル・レジスタ 81 検出器 86 アドレス加算器 88 アウトポインタ・レジスタ 91 加算器 93 初期設定計数器 113 制御装置 116 文字レジスタ 118 シフト回路網 119 符号番号レジスタ 121 符号計数器 123 符号大きさ回路 127 ハッシュ関数回路 130 RAMアドレス・レジスタ 131 RAM 141 初期設定計数器 153 制御装置 156 シフト回路網 157,172 符号レジスタ 159 符号大きさ回路 160 符号計数器 161 スタック 163 検出器 165 RAMアドレス・レジスタ 167 比較器 169,174,181,185 ゼロ検出器 177 RAM 184 スタック計数器

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ文字ストリームにおける、データ
    文字ストリングに対応する圧縮された符号信号ストリー
    ムから、当該データ文字ストリームを復元するデータ伸
    長方法において、 前記圧縮された符号信号ストリームを受信するステップ
    と、 その受信した符号信号から対応するデータ文字ストリン
    グを取り出すステップであって、受信した符号信号を用
    いて、前記符号信号に対応するデータ文字ストリングを
    ストアするメモリから、対応するデータ文字ストリング
    を検索するステップを含むステップと、 取り出されたデータ文字ストリングを用いて前記データ
    文字ストリームを復元するステップと、 前記取り出すステップに応答して、拡張されたストリン
    グを前記メモリにストアすることによって、前記符号信
    号に応答してデータ文字ストリングを前記メモリに供給
    するステップとを具え、取り出されたデータ文字ストリ
    ングを、次に取り出されたデータ文字ストリングの第1
    文字と連結させて、拡張されたストリングを形成し、お
    よび拡張されたストリングの各々を、対応する符号信号
    を用いて、前記メモリから検索可能な形態で、前記メモ
    リにストアすることを特徴とするデータ伸長方法。
  2. 【請求項2】 前記圧縮された符号信号ストリームは、
    前記データ文字ストリーム中のデータ文字を探索して、
    割り当てられた符号信号を持つデータ文字ストリングと
    の最長一致を決定して生成されたものに対応し、 決定された最長一致に対応する符号信号を用いて前記圧
    縮されたストリームを生成し、および 各決定された最長一致を、データ文字ストリームにおい
    て次に続く文字と連結させて、最長一致を決定するため
    に用いるデータ文字ストリングを供給することを特徴と
    する特許請求の範囲第1項に記載の方法。
  3. 【請求項3】 前記対応するデータ文字ストリングを取
    り出すステップは、受信した符号信号が最初にストアさ
    れた文字に対応するか否かを決定し、対応する場合は、
    当該文字を、取り出したデータ文字ストリングとして用
    いるステップを含むことを特徴とする特許請求の範囲第
    1項に記載の方法。
  4. 【請求項4】 複数の予め定めたストリングを最初にス
    トアし、および前記圧縮されたストリームを伸長する前
    に、対応する符号信号を前記複数の予め定めたストリン
    グに割り当てるステップを含むことを特徴とする特許請
    求の範囲第1項に記載の方法。
  5. 【請求項5】 最初にストアされた予め定めたストリン
    グは、前記データ文字ストリーム中の個別の文字に対応
    するストリングを含むことを特徴とする特許請求の範囲
    第4項に記載の方法。
  6. 【請求項6】 受信した符号信号を用いて前記メモリを
    アドレス指定して対応するデータ文字ストリングを検索
    することを特徴とする特許請求の範囲第1項に記載の方
    法。
  7. 【請求項7】 符号信号に応答して前記メモリから逆の
    順序でデータ文字ストリングを検索し、および検索され
    たデータ文字を反転させて、検索に用いた符号信号に対
    応するデータ文字ストリングを生成するステップを含む
    ことを特徴とする特許請求の範囲第6項に記載の方法。
  8. 【請求項8】 データ文字ストリームにおける、データ
    文字ストリングに対応する圧縮された符号信号ストリー
    ムから、当該データ文字ストリームを復元するデータ伸
    長装置において、 前記圧縮された符号信号ストリームを受信する手段と、 その受信した符号信号に応答して、対応するデータ文字
    ストリングを取り出す手段であって、受信した符号信号
    に応答して、前記符号信号に対応するデータ文字ストリ
    ングをストアするメモリから、対応するデータ文字スト
    リングを検索する手段を含む手段と、 取り出されたデータ文字ストリングを用いて前記データ
    文字ストリームを復元する手段と、 取り出されたデータ文字ストリングに応答して、拡張さ
    れたストリングを、前記メモリにストアすることによっ
    て、前記符号信号に応答してデータ文字ストリングを前
    記メモリに供給する手段とを具え、取り出されたデータ
    文字ストリングを、次に取り出されたデータ文字ストリ
    ングの第1文字と連結させて、拡張されたストリングを
    形成し、拡張されたストリングを、それぞれ、対応する
    符号信号を用いて、前記メモリから検索可能な形態で前
    記メモリにストアすることを特徴とするデータ伸長装
    置。
  9. 【請求項9】 前記圧縮された符号信号ストリームは、
    前記データ文字ストリーム中の連続データ文字を探索し
    て、割り当てられた符号信号を持つデータ文字ストリン
    グとの最長一致を決定して生成されたものに対応し、 決定された最長一致に対応する符号信号を用いて前記圧
    縮されたストリームを生成し、および 各決定された最長一致を、データ文字ストリームにおい
    て次に続く文字と連結させて、最長一致を決定するため
    に用いるデータ文字ストリングを供給することを特徴と
    する特許請求の範囲第8項に記載の装置。
  10. 【請求項10】 前記対応するデータ文字ストリングを
    取り出す手段は、受信した符号信号が最初にストアされ
    た文字に対応するかを決定し、対応する場合は、当該文
    字を、取り出したデータ文字ストリングとして用いるこ
    とを特徴とする特許請求の範囲第8項に記載の装置。
  11. 【請求項11】 複数の予め定めたストリングを最初に
    ストアし、および前記圧縮されたストリームを伸長する
    前に、対応する符号信号を前記複数の予め定めたストリ
    ングに割り当てる手段を含むことを特徴とする特許請求
    の範囲第8項に記載の装置。
  12. 【請求項12】 最初にストアされた予め定めたストリ
    ングは、前記データ文字ストリームの個別の文字に対応
    するストリングを含むことを特徴とする特許請求の範囲
    第11項に記載の装置。
  13. 【請求項13】 前記メモリは、受信した符号信号に応
    答して対応するデータ文字を検索することを特徴とする
    特許請求の範囲第8項に記載の装置。
  14. 【請求項14】 符号信号に応答して前記メモリから逆
    の順序でデータ文字ストリングを検索し、および検索さ
    れたデータ文字を反転させて、検索に用いた符号信号に
    対応するデータ文字ストリングを生成する手段を含むこ
    とを特徴とする特許請求の範囲第13項に記載の装置。
  15. 【請求項15】 入力されたデータ文字ストリームを圧
    縮して圧縮された符号信号ストリームにし、および前記
    符号信号を用いて、前記圧縮されたストリームを伸長し
    て前記データ文字ストリームを復元する方法において、 前記データ文字ストリームにおけるデータ文字を探索
    し、データ文字ストリングに関連する符号信号を有する
    第1メモリにストアされたデータ文字ストリングとの最
    長一致を決定するステップと、 最長一致が決定されたデータ文字ストリングに対応する
    符号信号を用いて、前記圧縮されたストリームを生成す
    るステップと、 拡張されたストリングを前記第1メモリにストアし、お
    よびそれに関連した符号信号を割り当てて、最長一致を
    決定するために用いるデータ文字ストリングを供給する
    ステップであって、最長一致を構成するデータ文字を、
    前記データ文字ストリーム中の次の文字と連結して、拡
    張されたストリングを形成するステップと により前記入力されたデータ文字ストリームを圧縮し、
    および 前記圧縮されたストリーム中の符号信号から対応するデ
    ータ文字ストリングを取り出すステップであって、前記
    符号信号に対応するデータ文字ストリングをストアする
    第2メモリから、符号信号を用いて、データ文字ストリ
    ングを検索するステップを含むステップと、 取り出されたデータ文字ストリングを用いて前記データ
    文字ストリームを復元するステップと、 前記取り出すステップに応答して、拡張されたストリン
    グを第2メモリにストアすることによって、前記符号信
    号に対応して、データ文字ストリングを前記第2メモリ
    に供給するステップとを具え、取り出されたデータ文字
    ストリングを、次に取り出されたデータ文字ストリング
    の第1文字と連結させて、拡張されたストリングを形成
    し、および拡張されたストリングを当該拡張されたスト
    リングに対応する受信された符号信号を用いて、前記第
    2メモリから検索可能な形態で、前記第2メモリにスト
    アすることを特徴とするデータ圧縮伸長方法。
  16. 【請求項16】 最初に、複数の同様の予め定めたスト
    リングを前記第1および第2メモリの各々にストアし、
    符号信号を割り当てるステップを含むことを特徴とする
    特許請求の範囲第15項に記載の方法。
  17. 【請求項17】 最初にストアされた予め定めたストリ
    ングは、前記データ文字ストリーム中の個別の文字に対
    応するストリングを含むことを特徴とする特許請求の範
    囲第16項に記載の方法。
  18. 【請求項18】 データ文字ストリームを圧縮して圧縮
    された符号信号ストリームにし、および前記符号信号を
    用いて、前記圧縮されたストリームを伸長して前記デー
    タ文字ストリームを復元する装置において、 前記入力されたデータ文字ストリームを圧縮する装置
    と、 前記圧縮されたストリームを伸長する装置とを具備し、 前記圧縮する装置は、 前記データ文字ストリームにおけるデータ文字を探索
    し、データ文字ストリングに関連する符号信号を有する
    データ文字ストリングとの最長一致を決定する手段と、 前記データ文字ストリングをストアする第1メモリと、 最長一致が決定されたデータ文字ストリングに対応する
    符号信号を用いて、前記圧縮されたストリームを生成す
    る手段と、 拡張されたストリングを前記第1メモリにストアし、お
    よびそれに関連した符号信号を割り当てて、最長一致を
    決定するために用いるデータ文字ストリングを供給する
    手段であって、最長一致を構成するデータ文字を、前記
    データ文字ストリーム中の次の文字と連結して、拡張さ
    れたストリングを形成する手段とを具え、 前記伸長する装置は、 前記符号信号に対応するデータ文字ストリングをストア
    する第2メモリと、 前記圧縮されたストリーム中の符号信号から対応するデ
    ータ文字ストリングを取り出す手段であって、前記第2
    メモリから、符号信号を用いて、データ文字ストリング
    を検索する手段と、 取り出されたデータ文字ストリングを用いて前記データ
    文字ストリームを復元する手段と、 取り出されたストリングに応答して、拡張されたストリ
    ングを前記第2メモリにストアすることによって、前記
    符号信号に対応して、デタ文字ストリングを前記第2メ
    モリに供給する手段とを具え、取り出されたデータ文字
    ストリングを、次に取り出されたデータ文字ストリング
    の第1文字と連結させて、拡張されたストリングを形成
    し、および拡張されたストリングを、当該拡張されたス
    トリングに対応する受信された符号信号を用いて、前記
    第2メモリから検索可能な形態で、前記第2メモリにス
    トアすることを特徴とする圧縮伸長装置。
  19. 【請求項19】 最初に、複数の同様の予め定めたスト
    リングを前記第1および第2メモリの各々にストアし、
    符号信号を割り当てる手段を含むことを特徴とする特許
    請求の範囲第18項に記載の装置。
  20. 【請求項20】 最初にストアされた予め定めたストリ
    ングは、前記データ文字ストリーム中の個別の文字に対
    応するストリングを含むことを特徴とする特許請求の範
    囲第19項に記載の装置。
JP4334804A 1983-06-20 1992-12-16 データ伸長方法および装置ならびにデータ圧縮伸長方法および装置 Expired - Lifetime JP2610084B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/505,638 US4558302A (en) 1983-06-20 1983-06-20 High speed data compression and decompression apparatus and method
US505638 1990-04-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP7341868A Division JPH08237138A (ja) 1983-06-20 1995-12-27 圧縮装置および圧縮方法

Publications (2)

Publication Number Publication Date
JPH07249996A JPH07249996A (ja) 1995-09-26
JP2610084B2 true JP2610084B2 (ja) 1997-05-14

Family

ID=24011192

Family Applications (3)

Application Number Title Priority Date Filing Date
JP59125473A Granted JPS60116228A (ja) 1983-06-20 1984-06-20 ディジタル信号ストリーム圧縮方法及び圧縮装置
JP4334804A Expired - Lifetime JP2610084B2 (ja) 1983-06-20 1992-12-16 データ伸長方法および装置ならびにデータ圧縮伸長方法および装置
JP7341868A Pending JPH08237138A (ja) 1983-06-20 1995-12-27 圧縮装置および圧縮方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP59125473A Granted JPS60116228A (ja) 1983-06-20 1984-06-20 ディジタル信号ストリーム圧縮方法及び圧縮装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP7341868A Pending JPH08237138A (ja) 1983-06-20 1995-12-27 圧縮装置および圧縮方法

Country Status (5)

Country Link
US (1) US4558302A (ja)
EP (1) EP0129439B1 (ja)
JP (3) JPS60116228A (ja)
CA (1) CA1223965A (ja)
DE (1) DE3476617D1 (ja)

Families Citing this family (364)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59231683A (ja) * 1983-06-01 1984-12-26 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン データ圧縮方法
US4814746A (en) * 1983-06-01 1989-03-21 International Business Machines Corporation Data compression method
JPS61170442A (ja) * 1985-01-23 1986-08-01 松下電器産業株式会社 超音波ドツプラ血流装置
US4758955A (en) * 1985-07-19 1988-07-19 Carson Chen Hand-held spelling checker and method for reducing redundant information in the storage of textural material
US4899128A (en) * 1985-12-11 1990-02-06 Yeda Research And Development Co., Ltd. Method and apparatus for comparing strings using hash values
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
AU7915387A (en) * 1986-09-09 1988-04-07 Inventronic Data Systems A.B. Arrangement for data compression
US4891643A (en) * 1986-09-15 1990-01-02 International Business Machines Corporation Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US4905297A (en) * 1986-09-15 1990-02-27 International Business Machines Corporation Arithmetic coding encoder and decoder system
JPH0815263B2 (ja) * 1986-12-12 1996-02-14 株式会社日立製作所 データ圧縮復元方法
JPH0815262B2 (ja) * 1986-12-12 1996-02-14 株式会社日立製作所 データ圧縮復元処理装置
ATE180932T1 (de) * 1987-09-24 1999-06-15 Sand Technology Systems Int Bitfolgekompressor geeignet für boolesche operationen
US5036457A (en) * 1987-09-24 1991-07-30 Nucleus International Corporation Bit string compressor with boolean operation processing capability
US4881075A (en) * 1987-10-15 1989-11-14 Digital Equipment Corporation Method and apparatus for adaptive data compression
US4876541A (en) * 1987-10-15 1989-10-24 Data Compression Corporation Stem for dynamically compressing and decompressing electronic data
US4847619A (en) 1987-10-19 1989-07-11 Hewlett-Packard Company Performance-based reset of data compression dictionary
US4906991A (en) * 1988-04-29 1990-03-06 Xerox Corporation Textual substitution data compression with finite length search windows
US4899147A (en) * 1988-06-03 1990-02-06 Unisys Corporation Data compression/decompression apparatus with throttle, start-up and backward read controls
US5258910A (en) * 1988-07-29 1993-11-02 Sharp Kabushiki Kaisha Text editor with memory for eliminating duplicate sentences
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
US5126739A (en) * 1989-01-13 1992-06-30 Stac Electronics Data compression apparatus and method
US5003307A (en) * 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
US5146221A (en) * 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
AU624205B2 (en) * 1989-01-23 1992-06-04 General Electric Capital Corporation Variable length string matcher
US4929946A (en) * 1989-02-09 1990-05-29 Storage Technology Corporation Adaptive data compression apparatus including run length encoding for a tape drive system
DE3921646A1 (de) * 1989-06-30 1991-01-03 Siemens Ag Verfahren zu einer codierung einer elementfolge und einrichtung zur durchfuehrung des verfahrens
US5006849A (en) * 1989-07-26 1991-04-09 Astro, Inc. Apparatus and method for effecting data compression
US4971407A (en) * 1989-08-09 1990-11-20 Unisys Corp. Two stage run and string data compressor providing doubly compressed output
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
US5010344A (en) * 1989-12-28 1991-04-23 International Business Machines Corporation Method of decoding compressed data
US5010345A (en) * 1989-12-28 1991-04-23 International Business Machines Corporation Data compression method
US5001478A (en) * 1989-12-28 1991-03-19 International Business Machines Corporation Method of encoding compressed data
US5184126A (en) 1989-12-28 1993-02-02 International Business Machines Corporation Method of decompressing compressed data
US5254990A (en) * 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
EP0871295B1 (en) * 1990-02-26 2004-03-24 Fujitsu Limited Method and apparatus for compression and decompression of data
FR2660088B1 (fr) * 1990-03-26 1992-06-26 Arditti David Dispositif de condensation de donnees numeriques.
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
US6816872B1 (en) 1990-04-26 2004-11-09 Timespring Software Corporation Apparatus and method for reconstructing a file from a difference signature and an original file
US5410671A (en) * 1990-05-01 1995-04-25 Cyrix Corporation Data compression/decompression processor
WO1991019248A1 (en) * 1990-05-30 1991-12-12 Adaptive Solutions, Inc. Neural network using virtual-zero
US5497488A (en) * 1990-06-12 1996-03-05 Hitachi, Ltd. System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
US5023610A (en) * 1990-06-13 1991-06-11 Cordell Manufacturing, Inc. Data compression method using textual substitution
US5049881A (en) * 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
DE69128053T2 (de) * 1990-08-06 1998-02-26 Fujitsu Ltd., Kawasaki, Kanagawa Wörterbuch-Suchsystem
JP3012679B2 (ja) * 1990-10-19 2000-02-28 富士通株式会社 データ圧縮方法
EP0688104A2 (en) * 1990-08-13 1995-12-20 Fujitsu Limited Data compression method and apparatus
JP3012677B2 (ja) * 1990-10-19 2000-02-28 富士通株式会社 Zl符号化方法
JP3012678B2 (ja) * 1990-10-19 2000-02-28 富士通株式会社 データ圧縮方法
US5051745A (en) * 1990-08-21 1991-09-24 Pkware, Inc. String searcher, and compressor using same
US5087913A (en) * 1990-08-27 1992-02-11 Unisys Corporation Short-record data compression and decompression system
US5151697A (en) * 1990-10-15 1992-09-29 Board Of Regents Of The University Of Washington Data structure management tagging system
US5142282A (en) * 1990-11-07 1992-08-25 Hewlett-Packard Company Data compression dictionary access minimization
US5136291A (en) 1990-11-30 1992-08-04 Unisys Corporation Transmitting binary data files using electronic mail
US5150430A (en) * 1991-03-15 1992-09-22 The Board Of Trustees Of The Leland Stanford Junior University Lossless data compression circuit and method
CA2065578C (en) * 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
US5369773A (en) * 1991-04-26 1994-11-29 Adaptive Solutions, Inc. Neural network using virtual-zero
US5179378A (en) * 1991-07-30 1993-01-12 University Of South Florida Method and apparatus for the compression and decompression of data using Lempel-Ziv based techniques
US5159336A (en) * 1991-08-13 1992-10-27 Iomega Corporation Tape controller with data compression and error correction sharing a common buffer
US5140321A (en) * 1991-09-04 1992-08-18 Prime Computer, Inc. Data compression/decompression method and apparatus
US5455943A (en) * 1992-10-08 1995-10-03 Salient Software, Inc. Method and apparatus for finding longest and closest matching string in history buffer prior to current string
US5426779A (en) * 1991-09-13 1995-06-20 Salient Software, Inc. Method and apparatus for locating longest prior target string matching current string in buffer
US5175543A (en) * 1991-09-25 1992-12-29 Hewlett-Packard Company Dictionary reset performance enhancement for data compression applications
US5243341A (en) * 1992-06-01 1993-09-07 Hewlett Packard Company Lempel-Ziv compression scheme with enhanced adapation
US5355493A (en) * 1991-11-20 1994-10-11 International Business Machines Corporation System for encoding units of entity/relationship data to include prefixes with codes for length, action, and unit identifier
US5726824A (en) * 1991-12-10 1998-03-10 Exabyte Corporation Head positioning in a multi-track magnetic tape recorder/player
CA2077271C (en) * 1991-12-13 1998-07-28 David J. Craft Method and apparatus for compressing data
US5396228A (en) * 1992-01-16 1995-03-07 Mobile Telecommunications Technologies Methods and apparatus for compressing and decompressing paging data
US5229768A (en) * 1992-01-29 1993-07-20 Traveling Software, Inc. Adaptive data compression system
US5406278A (en) * 1992-02-28 1995-04-11 Intersecting Concepts, Inc. Method and apparatus for data compression having an improved matching algorithm which utilizes a parallel hashing technique
US5371499A (en) * 1992-02-28 1994-12-06 Intersecting Concepts, Inc. Data compression using hashing
US5379036A (en) * 1992-04-01 1995-01-03 Storer; James A. Method and apparatus for data compression
US5239298A (en) * 1992-04-17 1993-08-24 Bell Communications Research, Inc. Data compression
US5339076A (en) * 1992-04-27 1994-08-16 Integrated Information Technology Data compression using content addressable memory
US5353024A (en) * 1992-05-01 1994-10-04 Intersecting Concepts, Inc. Method for data compression having an improved encoding algorithm which utilizes a token stacking technique
US5408542A (en) * 1992-05-12 1995-04-18 Apple Computer, Inc. Method and apparatus for real-time lossless compression and decompression of image data
US5664029A (en) * 1992-05-13 1997-09-02 Apple Computer, Inc. Method of disregarding changes in data in a location of a data structure based upon changes in data in nearby locations
US5485526A (en) * 1992-06-02 1996-01-16 Hewlett-Packard Corporation Memory circuit for lossless data compression/decompression dictionary storage
US5818873A (en) * 1992-08-03 1998-10-06 Advanced Hardware Architectures, Inc. Single clock cycle data compressor/decompressor with a string reversal mechanism
US5469161A (en) * 1992-08-13 1995-11-21 International Business Machines Corporation Algorithm for the implementation of Ziv-Lempel data compression using content addressable memory
US5406279A (en) * 1992-09-02 1995-04-11 Cirrus Logic, Inc. General purpose, hash-based technique for single-pass lossless data compression
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5434776A (en) * 1992-11-13 1995-07-18 Microsoft Corporation Method and system for creating multi-lingual computer programs by dynamically loading messages
US5440753A (en) * 1992-11-13 1995-08-08 Motorola, Inc. Variable length string matcher
US5323155A (en) * 1992-12-04 1994-06-21 International Business Machines Corporation Semi-static data compression/expansion method
US5467087A (en) * 1992-12-18 1995-11-14 Apple Computer, Inc. High speed lossless data compression system
US5455576A (en) 1992-12-23 1995-10-03 Hewlett Packard Corporation Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory
US5389922A (en) * 1993-04-13 1995-02-14 Hewlett-Packard Company Compression using small dictionaries with applications to network packets
US5640551A (en) * 1993-04-14 1997-06-17 Apple Computer, Inc. Efficient high speed trie search process
US6357047B1 (en) 1997-06-30 2002-03-12 Avid Technology, Inc. Media pipeline with multichannel video processing and playback
US5351046A (en) * 1993-05-28 1994-09-27 Adcox Thomas A Method and system for compacting binary coded decimal data
JP3171510B2 (ja) 1993-06-01 2001-05-28 ヒューレット・パッカード・カンパニー 辞書ベースのメモリ内のデータを圧縮および圧縮解除する方法
US5463389A (en) * 1993-09-24 1995-10-31 Motorola, Inc. Data compression method and device utilizing children arrays
US5406281A (en) * 1993-10-12 1995-04-11 Codex Corporation Encoder/decoder and method for efficient string handling in data compression
US5384568A (en) * 1993-12-02 1995-01-24 Bell Communications Research, Inc. Data compression
US5563595A (en) * 1993-12-23 1996-10-08 International Business Machines Corporation Method and apparatus for compressing data
WO1995018996A2 (en) * 1993-12-30 1995-07-13 Connectix Corporation Lossless data compression system and method
JP3522331B2 (ja) * 1994-04-22 2004-04-26 株式会社セタ データ圧縮方法
US5659635A (en) * 1994-04-26 1997-08-19 Konica Corporation Image processing apparatus for compressing and decompressing image data
US5502439A (en) * 1994-05-16 1996-03-26 The United States Of America As Represented By The United States Department Of Energy Method for compression of binary data
US5635931A (en) * 1994-06-02 1997-06-03 International Business Machines Corporation System and method for compressing data information
AUPM607994A0 (en) * 1994-06-03 1994-06-30 Masters, John A data conversion technique
US5585793A (en) * 1994-06-10 1996-12-17 Digital Equipment Corporation Order preserving data translation
US5532693A (en) * 1994-06-13 1996-07-02 Advanced Hardware Architectures Adaptive data compression system with systolic string matching logic
US5627533A (en) * 1994-08-05 1997-05-06 Hayes Microcomputer Products, Inc. Adjusting encoding table size and memory allocation for data compression in response to input data
US5617517A (en) * 1994-09-20 1997-04-01 Seiko Epson Corporation Two-dimensional method and system for compressing bi-level images
US6460036B1 (en) 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
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
EP0718980A1 (en) 1994-12-20 1996-06-26 International Business Machines Corporation Data compression method of individual sequences of strings of a data stream based on a dictionary and device for performing the same
US5642112A (en) * 1994-12-29 1997-06-24 Unisys Corporation Method and apparatus for performing LZW data compression utilizing an associative memory
US5805911A (en) * 1995-02-01 1998-09-08 Microsoft Corporation Word prediction system
US5771010A (en) * 1995-03-22 1998-06-23 Ibm Corporation Apparatus for compressing data using a Lempel-Ziv-type algorithm
US5686912A (en) * 1995-05-08 1997-11-11 Hewlett-Packard Company Data compression method and apparatus with optimized transitions between compressed and uncompressed modes
US5526363A (en) * 1995-05-16 1996-06-11 Telco Systems, Inc. Multicontext compression system with shared data structures
DE69624755T2 (de) * 1995-05-22 2003-04-24 Matsushita Electric Industrial Co., Ltd. Informationssuchgerät für das Suchen von Text, um Zeichenfolgen wiederaufzufinden, die mit einem Schlüsselwort übereinstimmen
US5636369A (en) * 1995-05-26 1997-06-03 Datron/Transco, Inc. Fast pattern-detection machine and method
US5729737A (en) * 1995-07-13 1998-03-17 Armour; William M. Selective data compression system
US5825830A (en) * 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US5689255A (en) * 1995-08-22 1997-11-18 Hewlett-Packard Company Method and apparatus for compressing and decompressing image data
JP3273119B2 (ja) 1995-09-29 2002-04-08 京セラ株式会社 データ圧縮・伸長装置
US5778255A (en) * 1995-10-10 1998-07-07 International Business Machines Corporation Method and system in a data processing system for decompressing multiple compressed bytes in a single machine cycle
US5805086A (en) * 1995-10-10 1998-09-08 International Business Machines Corporation Method and system for compressing data that facilitates high-speed data decompression
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US5838963A (en) * 1995-10-25 1998-11-17 Microsoft Corporation Apparatus and method for compressing a data file based on a dictionary file which matches segment lengths
JP3566441B2 (ja) * 1996-01-30 2004-09-15 シャープ株式会社 テキスト圧縮用辞書作成装置
US5892506A (en) * 1996-03-18 1999-04-06 Discreet Logic, Inc. Multitrack architecture for computer-based editing of multimedia sequences
CA2173677C (en) * 1996-04-09 2001-02-20 Benoit Sevigny Processing image data
US5818542A (en) * 1996-04-10 1998-10-06 Discreet Logic, Inc. Processing image data
US5839100A (en) * 1996-04-22 1998-11-17 Wegener; Albert William Lossless and loss-limited compression of sampled data signals
US20030195848A1 (en) 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.Com Corporation Method of billing a purchase made over a computer network
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US5703581A (en) * 1996-06-14 1997-12-30 Lucent Technologies Inc. Method and apparatus for data compression and decompression
US5654703A (en) * 1996-06-17 1997-08-05 Hewlett-Packard Company Parallel data compression and decompression
US5831558A (en) * 1996-06-17 1998-11-03 Digital Equipment Corporation Method of compressing and decompressing data in a computer system by encoding data using a data dictionary
RU2190295C2 (ru) * 1996-07-24 2002-09-27 Юнисиз Корпорейшн Система уплотнения и разуплотнения данных с непосредственным обновлением каталога, которое чередуют с поиском строк
US5861827A (en) * 1996-07-24 1999-01-19 Unisys Corporation Data compression and decompression system with immediate dictionary updating interleaved with string search
US5883670A (en) * 1996-08-02 1999-03-16 Avid Technology, Inc. Motion video processing circuit for capture playback and manipulation of digital motion video information on a computer
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
US5760716A (en) * 1996-08-21 1998-06-02 Autodesk, Inc. Vector data compression
US6272235B1 (en) * 1997-03-03 2001-08-07 Bacus Research Laboratories, Inc. Method and apparatus for creating a virtual microscope slide
US6404906B2 (en) * 1997-03-03 2002-06-11 Bacus Research Laboratories,Inc. Method and apparatus for acquiring and reconstructing magnified specimen images from a computer-controlled microscope
US5764994A (en) * 1996-09-16 1998-06-09 International Business Machines Corporation Method and system for compressing compiled microcode to be executed within a data processing system
US6038665A (en) * 1996-12-03 2000-03-14 Fairbanks Systems Group System and method for backing up computer files over a wide area computer network
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
JP3540109B2 (ja) * 1996-12-24 2004-07-07 富士通株式会社 データ圧縮方法及び装置
US6009192A (en) * 1996-12-19 1999-12-28 Xerox Corporation Color correction of a compressed image
US6385341B1 (en) * 1997-04-17 2002-05-07 Microsoft Corporation Technique for decoding variable length data codes
US5818368A (en) * 1997-04-18 1998-10-06 Premier Research, Llc Method and apparatus for lossless digital data compression
US6105083A (en) * 1997-06-20 2000-08-15 Avid Technology, Inc. Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements
US6366988B1 (en) * 1997-07-18 2002-04-02 Storactive, Inc. Systems and methods for electronic data storage management
US6163625A (en) * 1997-10-21 2000-12-19 Canon Kabushiki Kaisha Hybrid image compressor
US6377965B1 (en) 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
US5896321A (en) * 1997-11-14 1999-04-20 Microsoft Corporation Text completion system for a miniature computer
US5955976A (en) * 1997-12-02 1999-09-21 Hughes Electronics Corporation Data compression for use with a communications channel
JP3730385B2 (ja) 1997-12-05 2006-01-05 株式会社東芝 デ−タ圧縮装置
JP3421700B2 (ja) 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6138254A (en) * 1998-01-22 2000-10-24 Micron Technology, Inc. Method and apparatus for redundant location addressing using data compression
US6075470A (en) * 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor
US6212301B1 (en) 1998-06-25 2001-04-03 Accusoft Corporation Systems and methods for digital image compression
US6301394B1 (en) * 1998-09-25 2001-10-09 Anzus, Inc. Method and apparatus for compressing data
US7058597B1 (en) 1998-12-04 2006-06-06 Digital River, Inc. Apparatus and method for adaptive fraud screening for electronic commerce transactions
US7617124B1 (en) * 1998-12-04 2009-11-10 Digital River, Inc. Apparatus and method for secure downloading of files
US20030195974A1 (en) 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6377930B1 (en) 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6404931B1 (en) 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6263363B1 (en) 1999-01-28 2001-07-17 Skydesk, Inc. System and method for creating an internet-accessible working replica of a home computer on a host server controllable by a user operating a remote access client computer
US7538694B2 (en) 1999-01-29 2009-05-26 Mossman Holdings Llc Network device with improved storage density and access speed using compression techniques
US6885319B2 (en) * 1999-01-29 2005-04-26 Quickshift, Inc. System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6603414B1 (en) * 1999-01-29 2003-08-05 Compaq Computer Corporation Method for digital compression of characters
US6819271B2 (en) 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US6289130B1 (en) 1999-02-02 2001-09-11 3Com Corporation Method for real-time lossless data compression of computer data
US6920250B1 (en) 1999-03-04 2005-07-19 Xerox Corporation Additive model for efficient representation of digital documents
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6611213B1 (en) 1999-03-22 2003-08-26 Lucent Technologies Inc. Method and apparatus for data compression using fingerprinting
US6966002B1 (en) 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US7360252B1 (en) 1999-04-30 2008-04-15 Macrovision Corporation Method and apparatus for secure distribution of software
US20060005021A1 (en) * 1999-06-09 2006-01-05 Andres Torrubia-Saez Methods and apparatus for secure distribution of software
US6169499B1 (en) * 1999-06-19 2001-01-02 Unisys Corporation LZW data compression/decompression apparatus and method with embedded run-length encoding/decoding
AU6017400A (en) * 1999-07-16 2001-02-05 Vertex Software Co., Amount-of-data reducing method and reduced amount-of-data generating system
US6320523B1 (en) * 1999-07-30 2001-11-20 Unisys Corporation Method and apparatus for reducing the time required for compressing data
US6188333B1 (en) * 1999-08-12 2001-02-13 Unisys Corporation LZW data compression apparatus and method using look-ahead mathematical run processing
US7630986B1 (en) 1999-10-27 2009-12-08 Pinpoint, Incorporated Secure data interchange
US6919967B1 (en) 1999-11-18 2005-07-19 Hewlett-Packard Development Company, L.P. Printing performance enhancements for variable data publishing
WO2001050612A1 (en) 2000-01-05 2001-07-12 Realnetworks, Inc. Systems and methods for multiple-file data compression
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US20070271191A1 (en) * 2000-03-09 2007-11-22 Andres Torrubia-Saez Method and apparatus for secure distribution of software
FR2806227B1 (fr) * 2000-03-09 2003-09-05 Auteuil Participation Et Conse Procede pour le codage d'images
US6236341B1 (en) 2000-03-16 2001-05-22 Lucent Technologies Inc. Method and apparatus for data compression of network packets employing per-packet hash tables
US6388584B1 (en) 2000-03-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for data compression of network packets
GB0007974D0 (en) * 2000-04-01 2000-05-17 Discreet Logic Inc Processing image data
US6522784B1 (en) 2000-04-11 2003-02-18 International Business Machines Corporation Enhanced compression of gray-level images
US6307488B1 (en) 2000-05-04 2001-10-23 Unisys Corporation LZW data compression and decompression apparatus and method using grouped data characters to reduce dictionary accesses
US6983074B1 (en) 2000-06-14 2006-01-03 Adobe Systems Incorporated Data compression system and technique
CN1446404A (zh) 2000-08-15 2003-10-01 西加特技术有限责任公司 操作码的双模数据压缩
US6348881B1 (en) * 2000-08-29 2002-02-19 Philips Electronics No. America Corp. Efficient hardware implementation of a compression algorithm
US9143546B2 (en) 2000-10-03 2015-09-22 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
US6359548B1 (en) 2000-10-16 2002-03-19 Unisys Corporation Data compression and decompression method and apparatus with embedded filtering of infrequently encountered strings
US6792423B1 (en) * 2000-11-28 2004-09-14 International Business Machines Corporation Hybrid longest prefix match and fixed match searches
US6829289B1 (en) * 2000-12-05 2004-12-07 Gossett And Gunter, Inc. Application of a pseudo-randomly shuffled hadamard function in a wireless CDMA system
US8385470B2 (en) * 2000-12-05 2013-02-26 Google Inc. Coding a signal with a shuffled-Hadamard function
US8374218B2 (en) 2000-12-05 2013-02-12 Google Inc. Combining signals with a shuffled-hadamard function
US6883087B1 (en) 2000-12-15 2005-04-19 Palm, Inc. Processing of binary data for compression
SE0004736D0 (sv) * 2000-12-20 2000-12-20 Ericsson Telefon Ab L M Mapping system and method
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US6606040B2 (en) * 2001-02-13 2003-08-12 Mosaid Technologies, Inc. Method and apparatus for adaptive data compression
US20020116672A1 (en) * 2001-02-19 2002-08-22 Ando Electric Co., Ltd. Pattern data transmission device and pattern data transmission method
US6392568B1 (en) * 2001-03-07 2002-05-21 Unisys Corporation Data compression and decompression method and apparatus with embedded filtering of dynamically variable infrequently encountered strings
JP3990115B2 (ja) * 2001-03-12 2007-10-10 株式会社東芝 サーバ側プロキシ装置及びプログラム
US6426711B1 (en) * 2001-05-14 2002-07-30 Unisys Corporation Character table implemented data compression method and apparatus
JP3913004B2 (ja) 2001-05-28 2007-05-09 キヤノン株式会社 データ圧縮方法及び装置及びコンピュータプログラム及び記憶媒体
US7164369B2 (en) 2001-06-19 2007-01-16 Sharp Laboratories Of America, Inc. System for improving storage efficiency of digital files
US6400286B1 (en) 2001-06-20 2002-06-04 Unisys Corporation Data compression method and apparatus implemented with limited length character tables
US7382878B2 (en) * 2001-06-22 2008-06-03 Uponus Technologies, Llc System and method for data encryption
US20030018647A1 (en) * 2001-06-29 2003-01-23 Jan Bialkowski System and method for data compression using a hybrid coding scheme
US6707400B2 (en) * 2001-08-02 2004-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for fast longest match search
US20030088537A1 (en) * 2001-08-08 2003-05-08 Nec Eluminant Technologies, Inc. High speed data compression and decompression apparatus and method
US7062088B1 (en) 2001-08-28 2006-06-13 Adobe Systems Incorporated Variable lossy compression
WO2003021970A1 (en) * 2001-09-04 2003-03-13 Faroudja Cognition Systems, Inc. Low bandwidth video compression
US6650261B2 (en) 2001-09-06 2003-11-18 Xerox Corporation Sliding window compression method utilizing defined match locations
US7185041B1 (en) 2001-10-05 2007-02-27 Unisys Corporation Circuit and method for high-speed execution of modulo division
US6466144B1 (en) * 2001-11-30 2002-10-15 Unisys Corporation Data decompressor for use with a data compressor implemented with limited length character tables and compact string codes
WO2003062749A2 (en) 2002-01-23 2003-07-31 M-Spatial Limited Schematic generation
US7085271B2 (en) * 2002-03-14 2006-08-01 Hewlett-Packard Development Company, L.P. Method and system for performing flow based hash transformation to generate hash pointers for a network device
US6628211B1 (en) 2002-03-19 2003-09-30 Unisys Corporation Prefix table implemented data compression method and apparatus
US7126948B2 (en) * 2002-03-21 2006-10-24 Hewlett-Packard Development Company, L.P. Method and system for performing a hash transformation to generate a hash pointer for an address input by using rotation
LV13012B (en) * 2002-03-22 2003-06-20 Datoru Drosibas Tehnologijas S Method and apparatus for lossless compression and decompression of data
US7039106B2 (en) * 2002-03-25 2006-05-02 Intel Corporation Processing digital data prior to compression
US6501395B1 (en) 2002-04-10 2002-12-31 Hewlett-Packard Company System, method and computer readable medium for compressing a data sequence
US6624762B1 (en) 2002-04-11 2003-09-23 Unisys Corporation Hardware-based, LZW data compression co-processor
US6650259B1 (en) * 2002-05-06 2003-11-18 Unisys Corporation Character table implemented data decompression method and apparatus
US7154848B2 (en) * 2002-05-29 2006-12-26 General Dynamics Corporation Methods and apparatus for generating a multiplexed communication signal
US7280496B2 (en) * 2002-08-02 2007-10-09 General Dynamics Corporation Methods and apparatus for coupling a satellite to an earth terminal
US7280497B2 (en) * 2002-08-02 2007-10-09 General Dynamics Corporation Methods and apparatus for coupling an earth terminal to a satellite
ATE543178T1 (de) 2002-09-04 2012-02-15 Microsoft Corp Entropische kodierung mittels anpassung des kodierungsmodus zwischen niveau- und lauflängenniveau-modus
US6714145B1 (en) 2002-09-26 2004-03-30 Richard Marques Method and apparatus for integer-based encoding and decoding of bits
US6670897B1 (en) 2002-10-03 2003-12-30 Motorola, Inc. Compression/decompression techniques based on tokens and Huffman coding
US6819272B2 (en) * 2002-11-06 2004-11-16 Hewlett-Packard Development Company, L.P. System, method and computer readable medium for compressing a data sequence for partial decompressing
US7609722B2 (en) * 2003-02-14 2009-10-27 Atheros Communications, Inc. Method and apparatus for transmitting and receiving compressed frame of data over a wireless channel
GB2400287A (en) * 2003-04-02 2004-10-06 Autodesk Canada Inc Three-Dimensional Image Compositing
GB2400289A (en) * 2003-04-04 2004-10-06 Autodesk Canada Inc Selecting functions in a Context-Sensitive Menu
US7433519B2 (en) * 2003-04-04 2008-10-07 Avid Technology, Inc. Bitstream format for compressed image data
US7403561B2 (en) * 2003-04-04 2008-07-22 Avid Technology, Inc. Fixed bit rate, intraframe compression and decompression of video
GB2400290A (en) * 2003-04-04 2004-10-06 Autodesk Canada Inc Multidimensional image data processing in a hierarchical dat structure
US8639760B2 (en) * 2003-06-10 2014-01-28 Hewlett-Packard Development Company, L.P. Hard imaging devices, hard imaging systems, articles of manufacture, hard imaging device electronic mail processing methods
US6879270B1 (en) 2003-08-20 2005-04-12 Hewlett-Packard Development Company, L.P. Data compression in multiprocessor computers
US7009533B1 (en) 2004-02-13 2006-03-07 Samplify Systems Llc Adaptive compression and decompression of bandlimited signals
US7394410B1 (en) 2004-02-13 2008-07-01 Samplify Systems, Inc. Enhanced data converters using compression and decompression
US7071852B1 (en) 2004-02-13 2006-07-04 Samplify Systems Llc Enhanced test and measurement instruments using compression and decompression
US7088276B1 (en) 2004-02-13 2006-08-08 Samplify Systems Llc Enhanced data converters using compression and decompression
US7079051B2 (en) * 2004-03-18 2006-07-18 James Andrew Storer In-place differential compression
US7565343B2 (en) * 2004-03-31 2009-07-21 Ipt Corporation Search apparatus and search management method for fixed-length data
US20050256722A1 (en) * 2004-05-14 2005-11-17 Clark Adam L System and method for lossless audio encoding and decoding
US7664173B2 (en) * 2004-06-07 2010-02-16 Nahava Inc. Method and apparatus for cached adaptive transforms for compressing data streams, computing similarity, and recognizing patterns
GB0416481D0 (en) 2004-07-23 2004-08-25 Hewlett Packard Development Co Method, apparatus and system for data block rearrangement for LZ data compression
US7256715B1 (en) * 2005-01-07 2007-08-14 Altera Corporation Data compression using dummy codes
US6970110B1 (en) 2005-01-08 2005-11-29 Collins Dennis G Probability centrifuge algorithm with minimum laterally adiabatically-reduced Fisher information calculation
US20060200481A1 (en) * 2005-03-04 2006-09-07 Khalid Goyan Method and system for data optimization and protection in DSP firmware
US7167115B1 (en) 2005-08-26 2007-01-23 American Megatrends, Inc. Method, apparatus, and computer-readable medium for data compression and decompression utilizing multiple dictionaries
US8489562B1 (en) 2007-11-30 2013-07-16 Silver Peak Systems, Inc. Deferred data storage
US8929402B1 (en) * 2005-09-29 2015-01-06 Silver Peak Systems, Inc. Systems and methods for compressing packet data by predicting subsequent data
US8811431B2 (en) 2008-11-20 2014-08-19 Silver Peak Systems, Inc. Systems and methods for compressing packet data
US7164370B1 (en) 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
US8674855B2 (en) * 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7365658B2 (en) * 2006-02-28 2008-04-29 The Board Of Trustees Of The University Of Arkansas Method and apparatus for lossless run-length data encoding
DE102006011022A1 (de) * 2006-03-09 2007-10-25 Netviewer Gmbh Zweidimensionales adaptives Bildkompressionsverfahren
KR101583268B1 (ko) 2006-03-27 2016-01-08 닐슨 미디어 리서치 인코퍼레이티드 무선통신장치에 표현되는 미디어 컨텐츠의 미터링 방법 및 시스템
US7586424B2 (en) * 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7770091B2 (en) * 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US20080017227A1 (en) * 2006-07-19 2008-01-24 Ward Barry D Walking aid apparatus
US8755381B2 (en) 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
DE102006047465A1 (de) * 2006-10-07 2008-04-10 Deutsche Telekom Ag Verfahren und Vorrichtung zur Kompression und Dekompression digitaler Daten auf elektronischem Wege unter Verwendung einer Kontextgrammatik
US8453241B2 (en) * 2006-12-18 2013-05-28 Illinois Institute Of Technology Method for securing streaming multimedia network transmissions
US20090070877A1 (en) * 2006-12-18 2009-03-12 Carol Davids Method for securing streaming multimedia network transmissions
US7834784B1 (en) 2007-01-18 2010-11-16 Cisco Technology, Inc. Data redundancy elimination mechanism including fast lookup of data patterns exhibiting spatial locality
US7814284B1 (en) 2007-01-18 2010-10-12 Cisco Technology, Inc. Redundancy elimination by aggregation of multiple chunks
US7439887B2 (en) * 2007-02-13 2008-10-21 Seiko Epson Corporation Method and apparatus for GIF decompression using fixed-size codeword table
US20080263433A1 (en) * 2007-04-14 2008-10-23 Aaron Eppolito Multiple version merge for media production
US8751022B2 (en) * 2007-04-14 2014-06-10 Apple Inc. Multi-take compositing of digital media assets
US20080256136A1 (en) * 2007-04-14 2008-10-16 Jerremy Holland Techniques and tools for managing attributes of media content
US20080256448A1 (en) * 2007-04-14 2008-10-16 Nikhil Mahesh Bhatt Multi-Frame Video Display Method and Apparatus
US20090055395A1 (en) * 2007-08-24 2009-02-26 Texas Instruments Incorporated Method and Apparatus for XML Data Processing
US8458460B2 (en) * 2007-09-27 2013-06-04 Intel Corporation Digest generation from instruction op-codes
KR100945247B1 (ko) * 2007-10-04 2010-03-03 한국전자통신연구원 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법및 장치
US8514927B2 (en) * 2007-11-20 2013-08-20 Texas Instruments Incorporated Compression code for transferring rate matched data between devices
US8307115B1 (en) 2007-11-30 2012-11-06 Silver Peak Systems, Inc. Network memory mirroring
CN100595596C (zh) * 2007-12-12 2010-03-24 北京四方继保自动化股份有限公司 电网广域测量系统(wams)中动态数据压缩存储方法
US20090198716A1 (en) * 2008-02-04 2009-08-06 Shawn Allen Howarth Method of building a compression dictionary during data populating operations processing
US8503991B2 (en) 2008-04-03 2013-08-06 The Nielsen Company (Us), Llc Methods and apparatus to monitor mobile devices
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US8743683B1 (en) 2008-07-03 2014-06-03 Silver Peak Systems, Inc. Quality of service using multiple flows
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US7864086B2 (en) 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
US7791513B2 (en) * 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786903B2 (en) 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786907B2 (en) 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7764202B2 (en) * 2008-11-26 2010-07-27 Red Hat, Inc. Lossless data compression with separated index values and literal values in output stream
US7750826B2 (en) * 2008-11-26 2010-07-06 Red Hat, Inc. Data structure management for lossless data compression
US7864085B2 (en) * 2009-02-05 2011-01-04 Lsi Corporation Data compression method and apparatus
WO2010097942A1 (ja) * 2009-02-27 2010-09-02 富士通株式会社 電子署名プログラム、電子署名装置、および電子署名方法
US8179291B2 (en) * 2009-05-04 2012-05-15 International Business Machines Corporation Method and system for compression of logical data objects for storage
US7944375B2 (en) * 2009-06-02 2011-05-17 International Business Machines Corporation Wear reduction methods by using compression/decompression techniques with fast random access
CN101572552B (zh) * 2009-06-11 2012-07-18 哈尔滨工业大学 基于内容可寻址存储器的高速无损数据压缩系统
US7982636B2 (en) * 2009-08-20 2011-07-19 International Business Machines Corporation Data compression using a nested hierachy of fixed phrase length static and dynamic dictionaries
DE102009028743B4 (de) 2009-08-20 2011-06-09 Robert Bosch Gmbh Verfahren und Steuergerät zur Entzerrung eines Kamerabildes
RU2473960C2 (ru) * 2010-05-26 2013-01-27 Учреждение Российской академии наук Институт проблем управления им. В.А. Трапезникова РАН Способ нахождения максимальных повторяющихся участков последовательности символов конечного алфавита и способ вычисления вспомогательного массива
WO2012090564A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データ要素列を処理する装置及び方法
US20120194564A1 (en) 2011-01-31 2012-08-02 White Christopher J Display with secure decompression of image signals
US9177500B2 (en) 2011-01-31 2015-11-03 Global Oled Technology Llc Display with secure decryption of image signals
EP2501133A3 (de) 2011-03-16 2013-07-31 Basler AG Verfahren und Vorrichtung zur Bandbreitenreduktion für Bilddaten
US8456331B2 (en) 2011-04-15 2013-06-04 Cavium, Inc. System and method of compression and decompression
US8350732B2 (en) * 2011-05-11 2013-01-08 Cavium, Inc. Compression with adjustable quality/bandwidth capability
US9130991B2 (en) 2011-10-14 2015-09-08 Silver Peak Systems, Inc. Processing data packets in performance enhancing proxy (PEP) environment
US9626224B2 (en) 2011-11-03 2017-04-18 Silver Peak Systems, Inc. Optimizing available computing resources within a virtual environment
JP5766588B2 (ja) 2011-11-16 2015-08-19 クラリオン株式会社 検索端末装置、検索サーバ装置、及びセンタ連携型検索システム
US8779950B2 (en) 2012-03-05 2014-07-15 Dcba, Llc Command encoded data compression
EP2850763B1 (en) 2012-05-18 2017-09-13 Telefonica S.A. A method and a system for csi reporting in lte networks according to the mobility of the user equipment
JP5826114B2 (ja) 2012-05-25 2015-12-02 クラリオン株式会社 データ解凍装置、データ圧縮装置、データの解凍プログラム、データの圧縮プログラム、及び、圧縮データ配信システム
CN104123309B (zh) * 2013-04-28 2017-08-25 国际商业机器公司 用于数据管理的方法和系统
US9176973B1 (en) 2013-06-14 2015-11-03 Timmes, Inc. Recursive-capable lossless compression mechanism
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
US9767265B2 (en) * 2014-05-06 2017-09-19 Anchor Id, Inc. Authentication with parental control functionality
US9640376B1 (en) 2014-06-16 2017-05-02 Protein Metrics Inc. Interactive analysis of mass spectrometry data
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
US9385751B2 (en) 2014-10-07 2016-07-05 Protein Metrics Inc. Enhanced data compression for sparse multidimensional ordered series data
US9543980B2 (en) 2014-10-10 2017-01-10 Massachusettes Institute Of Technology Systems and methods for model-free compression and model-based decompression
US10354421B2 (en) 2015-03-10 2019-07-16 Protein Metrics Inc. Apparatuses and methods for annotated peptide mapping
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10911065B2 (en) * 2015-10-20 2021-02-02 Sinan Karaca Computer system and method including selectively compressing data files and directories based on an operator indication and representing the amount of available free space
KR102379182B1 (ko) 2015-11-20 2022-03-24 삼성전자주식회사 연속 데이터 압축 장치 및 방법
EP3219356A1 (en) 2016-03-14 2017-09-20 Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. Apparatus for applying electric pulses to living myocardial tissue
JP6735469B2 (ja) 2016-03-22 2020-08-05 パナソニックIpマネジメント株式会社 ログ収集装置、監視カメラ、およびログ収集方法
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US9742434B1 (en) 2016-12-23 2017-08-22 Mediatek Inc. Data compression and de-compression method and data compressor and data de-compressor
US10319573B2 (en) 2017-01-26 2019-06-11 Protein Metrics Inc. Methods and apparatuses for determining the intact mass of large molecules from mass spectrographic data
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
CN107180018B (zh) * 2017-05-17 2018-11-20 上海兆芯集成电路有限公司 基于散列的加速压缩方法以及使用此方法的装置
US10097202B1 (en) * 2017-06-20 2018-10-09 Samsung Electronics Co., Ltd. SSD compression aware
US10340945B2 (en) 2017-07-24 2019-07-02 iDensify LLC Memory compression method and apparatus
US12400846B2 (en) 2017-08-01 2025-08-26 Protein Metrics, Llc Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US10546736B2 (en) 2017-08-01 2020-01-28 Protein Metrics Inc. Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US11626274B2 (en) 2017-08-01 2023-04-11 Protein Metrics, Llc Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
US10510521B2 (en) 2017-09-29 2019-12-17 Protein Metrics Inc. Interactive analysis of mass spectrometry data
US12224169B2 (en) 2017-09-29 2025-02-11 Protein Metrics, Llc Interactive analysis of mass spectrometry data
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
US11640901B2 (en) 2018-09-05 2023-05-02 Protein Metrics, Llc Methods and apparatuses for deconvolution of mass spectrometry data
WO2020148746A1 (en) 2019-01-20 2020-07-23 Arilou Information Security Technologies Ltd. System and method for data compression based on data position in frames structure
US11290708B2 (en) 2019-02-19 2022-03-29 Edgy Bees Ltd. Estimating real-time delay of a video data stream
US11346844B2 (en) 2019-04-26 2022-05-31 Protein Metrics Inc. Intact mass reconstruction from peptide level data and facilitated comparison with experimental intact observation
JP6614735B1 (ja) * 2019-05-07 2019-12-04 国立大学法人 筑波大学 データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム
US11276204B1 (en) 2020-08-31 2022-03-15 Protein Metrics Inc. Data compression for multidimensional time series data
US12512853B2 (en) 2023-07-13 2025-12-30 Maxlinear, Inc. Data compression in a data transform accelerator

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US4366551A (en) * 1977-06-24 1982-12-28 Holtz Klaus E Associative memory search system
JPS5719857A (en) * 1980-07-09 1982-02-02 Nec Corp Data compression storage device
JPS57101937A (en) * 1980-12-16 1982-06-24 Nec Corp Data storage device
DE3118676A1 (de) * 1981-05-12 1982-12-02 Heinz Karl Eckhart Dr Jur Verfahren zur kompression redundanter folgen serieller datenelemente
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
JPS59231683A (ja) * 1983-06-01 1984-12-26 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン データ圧縮方法

Also Published As

Publication number Publication date
EP0129439B1 (en) 1989-02-01
JPH07249996A (ja) 1995-09-26
JPH08237138A (ja) 1996-09-13
JPS60116228A (ja) 1985-06-22
CA1223965A (en) 1987-07-07
DE3476617D1 (en) 1989-03-09
US4558302A (en) 1985-12-10
JPH0568893B2 (ja) 1993-09-29
US4558302B1 (ja) 1994-01-04
EP0129439A1 (en) 1984-12-27

Similar Documents

Publication Publication Date Title
JP2610084B2 (ja) データ伸長方法および装置ならびにデータ圧縮伸長方法および装置
US5608396A (en) Efficient Ziv-Lempel LZI data compression system using variable code fields
US5414425A (en) Data compression apparatus and method
US5016009A (en) Data compression apparatus and method
US5126739A (en) Data compression apparatus and method
JP2713369B2 (ja) データ圧縮装置及び方法
US5410671A (en) Data compression/decompression processor
US6829695B1 (en) Enhanced boolean processor with parallel input
US5532694A (en) Data compression apparatus and method using matching string searching and Huffman encoding
US6334123B1 (en) Index relational processor
US5955976A (en) Data compression for use with a communications channel
AU637826B2 (en) Improved data compression apparatus
US7538695B2 (en) System and method for deflate processing within a compression engine
CA2077271C (en) Method and apparatus for compressing data
JP2863065B2 (ja) マッチングストリング探索およびハフマン符号化を用いたデータ圧縮装置および方法ならびにデータ伸長装置および方法
US20090058693A1 (en) System and method for huffman decoding within a compression engine
US6310563B1 (en) Method and apparatus for enhanced decompressor parsing
JPH0869370A (ja) データ圧縮方法およびシステム
WO2009005758A2 (en) System and method for compression processing within a compression engine
JPH0779262B2 (ja) 圧縮データの符号化方法
JPH08234959A (ja) データ圧縮システム及び方法
US5610603A (en) Sort order preservation method used with a static compression dictionary having consecutively numbered children of a parent
US6507877B1 (en) Asynchronous concurrent dual-stream FIFO
US6535150B1 (en) Method and apparatus for implementing run-length compression
EP0079442B1 (en) Data translation apparatus translating between raw and compression encoded data forms

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term