JPH01125028A - 適応データ圧縮方法および装置 - Google Patents

適応データ圧縮方法および装置

Info

Publication number
JPH01125028A
JPH01125028A JP63038766A JP3876688A JPH01125028A JP H01125028 A JPH01125028 A JP H01125028A JP 63038766 A JP63038766 A JP 63038766A JP 3876688 A JP3876688 A JP 3876688A JP H01125028 A JPH01125028 A JP H01125028A
Authority
JP
Japan
Prior art keywords
character
characters
code
data
codes
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.)
Pending
Application number
JP63038766A
Other languages
English (en)
Inventor
Iii John A Copeland
ジョン エー・コペランド サード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hayes Microcomputer Products Inc
Original Assignee
Hayes Microcomputer Products Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hayes Microcomputer Products Inc filed Critical Hayes Microcomputer Products Inc
Publication of JPH01125028A publication Critical patent/JPH01125028A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は一般にデータ圧縮に関し、特に実時間で動作し
入力情報の流れにおけるキャラクタの出現統計の変化に
動的に適応できる適応データ圧縮方法および装置に関る
、。
(従来の技術) データ圧縮用の方法および装置は多数知られている。こ
れら既知の技術の多くは、データセット中の要素または
キャラクタの出現頻度に関係る、統計に依存している。
一般に、圧縮されるデータセットまたはデータファイル
は、あらかじめ走査または処理し、データセット中のキ
ャラクタの出現統計を累算る、ことにより、これらキャ
ラクタを表現る、コードを割り当てるための準備をる、
必要がある。次に、より短いコードをより頻繁に出現る
、キャラクタに割り当て、より長いコードを出現頻度の
低いキャラクタに割り当てる。
良く知られているシャノンーファノコードは、圧縮され
る入力ファイルを分析し、特定のキャラクタの出現確率
を降順に配置る、。次にキャラクタセットを等しいまた
はほぼ等しい合計確率のサブセットに分割し、一つのサ
ブセット中の第1コード数値としてOを割り当て、第2
のサブセット中の第1コード数値として1を割り当てる
。これらステップを繰り返し、各サブセットが単一のキ
ャラクタを有る、ようにる、。この方法によって作られ
るコードは即座に復号可能である。これはあるコードワ
ードは他のいかなるコードワードの接頭語とならないか
らである。
良く知られているハフマンコードもやはり即座の復号特
性を有しているが、符号化ツリーを使用る、。この方法
は、可能な最小平均ワード長を作るが、ソース家たは入
力データファイルをあらかじめ走査しなければならず、
キャラクタの確率は降順に配置される。aも低い二つの
確率は結合され、確率ツリーは高い確率の枝を上部に置
くことによって構成される。このツリーにおいて、各ペ
アの高い方に0が割り当てられ低い方に1が割り当てら
れる9次に、各確率項からの通路は統−点に至り、その
通路に沿って1および0が記録される。この結果得られ
るコードは1,0の並びである、いうまでもなく、コー
ドを割り当てる前に全データを分析る、必要がある。
これらデータ圧縮技術は、データを前もって走査る、た
めの十分な処理時間がある場合には適切であるが、変復
調器(モデム)を含むデータ通信など実時間分野におい
ては、データを前もって走査して最も効率のよいコード
を確立る、ことが常にできるとは限らず、常に望まれる
ものでもない。
このような場合、データの性質は変化し得るので、固定
圧縮機構は効率が悪い0例えばモデムは、テキストファ
イル、グラフィックファイル、テキストおよびグラフィ
ックの混合、ソフトウェアオブジェクトコード、スプレ
ッドシートファイル、他のシステムとの対話式通信、そ
の他データなどを送信る、ものである。圧縮を効率的に
行うには、前走査や独立した符号化機構が多異なるタイ
プのデータに必要となろう。これらのデータタイプは、
与えられた送信においてさえ予測不能に変化る、。
多くの場合、最適以下のコードでも、全体送信時間、デ
ータ記憶時間、および圧縮を減少させる上で許容可能で
ある。
1従って、モデムや他の実時間データ圧縮分野に対して
適切であるようなデータ圧縮技術が必要であり、この分
野においてはデータのタイプが頻繁に変化し、1回の送
信内においてさえ、それが変化る、。
従来の適応実時間データ通信方法の一つは、符号化装置
および復号化装置の両方において動的Cご生成されるテ
ーブルを使用る、。フランセスエルベーコン等による米
国特許第4,612,532号において、データ流れ中
の一連のキャラクタは、符号化装置内において動的に生
成されるテーブルに基づいて符号化される。そして復号
化装置は、対応る、テーブルを生成してその符号化され
たデータを復号る、ように構成される。ここで復号テー
ブルは、符号化されたデータの構造に基づいて動的Gこ
生成される。基本的に、この符号化装置では、データ流
れ中の与えらなキャラクタの後には、所定の確率を有し
たキャラクタの候補の一つが従うという仮定を立ててい
る。従って、この符号化装置の生成る、テーブルは、与
えられたキャラクタについて、そのデータ流れ中に出現
る、であろう次の連続る、キャラクタに対る、おおよそ
の出現頻度の順に並んだ候補のリストが提供される。
そのデータ流れ中に、テーブル中のキャラクタに従われ
た与えられたキャラクタが出現る、と、符号化装置はテ
ーブル中のそのキャラクタの通常の位置に基づいたその
文字キャラクタを表現る、2進コードを送る。このコー
ドは、最も頻繁に発生る、候補に対して最も短いもので
あり、出現頻度の低い候補については長い、このテーブ
ルは、与えられたキャラクタの後のキャラクタの局所的
な頻度に基づいて生成されるやこのため、このテーブル
は、局所的な出現頻度が変化る、と動的に変更され得る
(発明が解決しようとる、課題) このベーコンの特許において、圧縮されるデータはラン
ダムでなく、与えられたキャラクタは。
次のキャラクタについての複数の可能な候補の一つによ
って従われる可能性があると仮定している。
この仮定のため、この方法は英語テキストなどへの応用
に限定される。英語テキストにおいては、この技術は極
めて有効に使用される可能性がある。
しかしながら、テキストと数字データとの混合が含まれ
るような(スプレッドシートなど)場合、データタイプ
がテキストから数字に変化る、と圧縮効率は失われる。
これは数字ファイルがテキストファイルよりもさらに無
作意だからである。ところが、データタイプが数字に変
化る、と、数字。
の出現確率がテキストキャラクタの出現確率に比較して
極端に上昇る、ので、圧縮アルゴリズムをデータタイプ
の性質の変化に適応させ得るなら、効率を上げることが
可能である。
従って、前記ベーコンの方法の最も適している応用分野
は、データタイプが予測可能であること、つまり、送信
されるファイルがテキストまたは数値(ただし両方では
ない)としてあらかじめ決っているか、データが不規則
でない分野である9しかしながら、テキストと数値の混
合のようにデータタイプが予測不可能であり、データタ
イプが不明である場合、この方法は最適以下のコードを
使用る、ようになる。従って、あらゆるデータタイプま
たはデータタイプの分布に対して動的に適応可能である
適応データ圧縮方法を提供る、必要がある。
(課題を解決る、ための手段) 本発明は、適応データ圧縮方法および装置を提供る、も
のであり、これら方法および装置は、入力ファイルが前
走査されることを必要とせず、また非任意データという
仮定にも依存しない。本方法は、あらゆるデータの冗長
性に適応可能であり、与えられたキャラクタに続く他の
キャラクタの与えられた確率を有る、キャラクタで構成
されるデータに限定されない。また本方法は、モデムな
ど実時間でのデータ圧縮が求められる応用装置に使用る
、ことが適切である。また、生成されるコードは即座に
復号される特性を有る、。
簡単に説明すれば、本発明は、動的適応データ圧縮方法
を提供し、この方法はデータ統計の周期的な蓄積と圧縮
コードの特定のキャラクタへの再割当を出現確率の変化
の関数として行うものである。他の多くのデータ圧縮技
術と同様に、本発明はデータ統計の原理に基づいて動作
る、。しかしながら、これら統計は、本発明においては
処理中に蓄積されるものであって、データを前走査して
その特性を決定る、必要はない。より頻繁に出現る、デ
ータは、出現頻度が低いデータよりも少ないビットを持
つ。
また、ハフマンコード等の最適コード法において一般に
使用されるように任意長のビットパターンでデータを表
現る、のではなく、本発明は所定ビット長の圧縮コード
のセットを使用る、。好適実施例において、4,8.1
2の各ビット長が使用されるので、本方法は、オクテツ
トベースのパケットシステムや8ビットマイクロプロセ
ツサにおいて容易に実現可能である。f&適の圧縮およ
び動作は、本発明において、多数のデータキャラクタが
4ビット圧縮コードで表現される場合に実現される。
本発明の好適方法および装置は、データ特性やタイプの
変化に適応できる能力を有る、9周期的に、現在の圧縮
動作がその時の統計を利用して評価される。この評価に
応じて、圧縮レベル、すなわち異なる圧縮コードに対応
づけられているアルファベットキャラクタのキャラクタ
数が変更されて動作を最適にる、。
データ統計は、カウンタと呼ばれるレジスタまたはメモ
リ箇所の線形の配列に保持され、ここではデータセット
またはアルファベットにおける各データキャラクタにつ
いて一つの要素が保持される。これらカウンタは、所定
数のキャラクタの処理において出現る、各キャラクタの
出現回数を格納る、。この配列は、常に相対的にソート
されており、最も頻繁に出現る、キャラクタのカウント
数は、配列の開始端側に位置される。このカウント配列
内におけるキャラクタの順序は、圧縮コードを決定し、
さらに幾つの4ビットニブル(1゜2、または3)が入
力データ流れにおけるキャラクタを表現る、ために使用
されるかを決定る、。
アルファベットキャラクタの最初の所定数aは、1ニブ
ルで符号化される。f&後の16a個のキャラクタは、
3ニブルで符号化される。残りのキャラクタは、2ニブ
ル(8ビットバイト)で符号化される。ここでaを圧縮
レベルと呼ぶ、このaの値は、キャラクタカウント数と
して表現されるキャラクタの出現頻度の関数として周期
的に再計算される。
さらに詳細に説明すれば、好適データ圧縮方法は、モデ
ムに内蔵されるプログラム済みのマイクロコンピュータ
において実行され、次のような一連のステップからなる
(1)アルファベットキャラクタを符号化る、ための複
数のデジタル表現を有る、符号化テーブルをマイクロコ
ンピュータに付属したメモリに設ける。各キャラクタに
は、そのキャラクタの出現頻度に関る、カウント数が付
与される。この符号化テーブルは、アルファベットキャ
ラクタに対して、複数の圧縮コードの一つを演算る、た
めに使用される。これら圧縮コードの幾つかは、他より
も短い。最も短いコードは、アルファベットキャラクタ
の符号化前のデジタル表現よりも短い。
(2)アルファベットキャラクタの一つで表現されるデ
ータ項目が符号化用に提供されると、その特定のアルフ
ァベットキャラクタに対応る、圧縮コードが前記符号化
テーブルを使用して演算される。また、その特定のキャ
ラクタに関る、カウント数が増分され、その特定のキャ
ラクタがデータ流れにおいて出現したことを反映させる
。圧縮コードの演算は、前記符号化テーブル内における
提供された特定のキャラクタの位置の関数として行われ
る。
(3)次に、演算された圧縮コードは、圧検出力として
提供される。このコードは、モデムによって通信回線を
介して他のモデムに送信される。
(4)符号化テーブルにおける圧縮コードとアルファベ
ットキャラクタとの関係が周期的に調整される。この調
整は、符号化用に提供される所定数の複数のキャラクタ
における各アルファベットキャラクタのカウント数とし
て表現される出現頻度の関数としてなされる。この所定
の複数は限定数として更新速度の便宜を計るように選択
される。
従って、キャラクタの出現頻度が符号化用に提供される
複数のキャラクタについて変化る、と、より出現頻度の
高いキャラクタは、符号化テーブルにおいてより短い圧
縮コードに対応づけられるようになる。
前記したように、符号化テーブルは、キャラクタと圧縮
コードとの対応と、キャラクタとカウント数との対応を
格納る、。!&初に、アルファベットの各キャラクタと
それらに対応る、圧縮コードとは、初期順序配列に配置
され、4ビットコードが配列の開始端側に配置される。
圧縮コードとアルファベットキャラクタとの関係の周期
的な調整は、次のようなステップで実行される。
(1)符号化テーブルにおいて、別個のキャラクタカウ
ント数が各アルファベットキャラクタごと保持される。
(2)データ項目が符号化用に提供されると、符号化テ
ーブルを使用して圧縮コードが演算され、符号化用に提
供された該キャラクタに対応る、キャラクタカウント数
が増分され更新される。
(3)該キャラクタカウント数が増分されると、該更新
されたキャラクタカウント数は、配列中においてより短
いコードに対応付けされていると見なされる位置にある
所定のキャラクタのカウント数と比較される。すなわち
、特定のキャラクタのカウント数は、配列の開始端に近
いより短いコードのある位置の所定のキャラクタのカウ
ント数と比較される。
(4)前記特定のキャラクタのカウント数が配列の開始
端に近い所定のキャラクタのカウント数より大きければ
、符号化直後のキャラクタと所定キャラクタとの配列中
の相対位置が交換される。
これにより、より大きなカウント数を有る、キャラクタ
が、配列中においてより短いコードに対応していると見
なされる位置に関連付けられる。
(5)前記特定のキャラクタのカウント数が配列の開始
端に近い所定のキャラクタのカウント数より大きくなけ
れば、次にステップ(3)が繰り返され、更新直後のキ
ャラクタのカウント数と配列の開始端から1ステツプだ
け遠いキャラクタのカウント数とが比較される(すなわ
ち符号化用に提供されたキャラクタのキャラクタのカウ
ント数に近いもの)、この処理は符号化用に提供された
キャラクタに到達る、と停止される。
圧縮コードとアルファベットキャラクタとの対応関係の
周期的な調整は、符号化された各項目について行われる
ので、より頻繁に出現る、キャラクタが配列の開始端の
方向に移動してより短いコードに関連付けられるように
なる。開示実施例において、前記あらかじめ選択された
キャラクタは、配列内の開始端に向かって配列内におい
て所定数の位置に配置され、好適実施例においては16
@所に配置される。このため、比較および交換は部分的
なソートであり、マイクロコンピュータ上で容易に迅速
に実行可能である。これは必要な比較演算とデータ交換
とが極めて少ないからである。
圧縮データの復号は、符号化と同一の方法で維持される
並列復号化テーブルによって実現される。
符号化テーブルおよび復号化テーブルは、限定された栄
件で調整または更新されるので、極めて高速で圧縮また
は復元が可能であり、現在のデータマイクロコンピュー
タ回路の性能内で実現可能である。従って、本発明は、
モデムにおいて実施された場合、19,200ビット/
秒の同期データ通信が可能である。これはテーブルの更
新速度が早いからである。
さらに、本発明の好適方法は、より短い圧縮コードに対
応る、キャラクタ数を最大にる、段階を含む。まず、配
列は、4ビットコードに対応づけられる所定数のアルフ
ァベットキャラクタと、この16倍の数の1zビットコ
ードに対応づけられるアルファベットキャラクタと、8
ビットコードに対応づけられる残りのアルファベットキ
ャラクタとにリセットされる。符号化レベルは、所定数
a′c表され、これはデータ統計が蓄積されるに連れて
動的に変化し、出現確率の高いキャラクタが4ビットコ
ードを受け取るようになる。従って、4.8,1zビッ
トコードに各々対応づけられるキャラクタのセットのサ
イズを周期的に調整る、段階が実行される。これは、キ
ャラクタカウント数のグループをまとめて、出現頻度の
低いキャラクタについてグループカウント数を与え、こ
れらグループカウント数と、より出現頻度の高いキャラ
クタのキャラクタカウント数とを比較し、4ビットコー
ド(すなわち最短コード)のセットの項目数を順次に増
加させる。このように、最短デジタルコードに対応る、
キャラクタセットのサイズを拡大して、より高い出現確
率を有る、より多くのキャラクタを含めることにより、
短いキャラクタコードをより最適に使用る、。すなわち
、より多くの短いコードがより出現頻度の高いキャラク
タに対応づけられ、より多くの長いコードが出現頻度の
低いキャラクタに割り当てられる。
さらに、本発明は、繰り返しキャラクタの列を表現る、
ための新規で有効な方法を含む。当業者には良く知られ
ているように、モデムによって送信されるある種のデー
タファイル、例えばスプレッドシートファイルには繰り
返しキャラクタ列が含まれることが多い0本発明の方法
は、符号器および復号器の両方によって、所定数例えば
3個を越えるキャラクタの列が出現る、と繰り返し状態
に入らせる。この繰り返し状態は、自動的に、3個の繰
り返しキャラクタの送信または記録に続いて確立される
。この繰り返し状態に入った後、繰り返しキャラクタ(
所定数以後の)の追加の出現数を表す繰り返し記号が送
信または記録される。
この繰り返し記号は、第2の所定数例えば15までの追
加の出現数を表すことができる。または、その繰り返し
記号は、前記第2の所定数を表すとともに、繰り返し状
態が続行して別の繰り返し記号が予測されることを示す
こともできる。第1の所定数を越える繰り返しキャラク
タの列を含むことが頻繁であるデータは著しい圧縮が実
現される。
従って、本発明の目的は、データ統計の変化に実時間で
動的に適応可能なデータ圧縮方法および装置を提供る、
ことである。
本発明の他の目的は、最適コードを選択る、ためGこデ
ータの前走査を必要としない改良されたデータ圧縮方法
および装置を提供る、ことである。
本発明の他の目的は、情報を表現するために使用される
コードが即座に復号され得るようなデータ圧縮方法を提
供る、ことである。
本発明の他の目的は、モデム等のデータ通信装置への使
用が適切である改良データ圧縮方法および装置を提供る
、ことである。
本発明の他の目的は、データ特性の変化に動的に適応る
、改良データ圧縮装置および方法を提供る、ことである
本発明の他の目的は、テキストファイル、グラフィック
フ゛アイル、テキストおよびグラフィック混合ファイル
、ソフトウェアオブジェクトコード、スプレッドシート
ファイル、他のシステムとの会話式通信、または他のタ
イプのデータなど、データタイプが送信中においても急
速に変化し得るデータの圧縮に動的に適応できる改良デ
ータ圧縮方法および装置を提供る、ことである。
本発明の他の目的は、あらゆるタイプのデータまたはデ
ータタイプの分布は動的は適応可能な適応データ圧縮方
法を提供る、ことである。
本発明の他の目的は、ディスク駆動装置などのデータ記
録または記憶装置への使用も適切である改良データ圧縮
方法および装置を提供る、ことである。
本発明の他の目的は、8ビットマイクロプロセツサまた
はパケット用装置と共に有効に実施可能であり、19,
200ビット/秒の同期データ通信を処理可能な改良デ
ータ圧縮方法および装置を提供る、ことである。
本発明の他の目的は、データの送信または格納に大きな
遅れをもたらさずに、流れるデータを圧縮できる改良デ
ータ圧縮方法および装置を提供る、ことである。
本発明の他の目的は、圧縮性能が周期的に所定の時間間
隔またはキャラクタ数にわたって蓄積された統計を使用
して評価され、圧縮のレベルまたは程度がその評価に応
じて変更されて性能を最適にる、ような改良データ圧縮
方法および装置を提供る、ことである。
本発明の他の目的は、繰り返し連続キャラクタを圧縮表
現できる改良繰り返しキャラクタ状態を有る、改良デー
タ圧縮方法および装置を提供る、ことである。
本発明の他の目的は、代表的なASCIIテキストファ
イルの各キャラクタの送信データを平均約5ビットに減
少できるモデムにおいて使用されるデータ圧縮方法およ
び装置を提供る、ことである。
本発明の他の目的は、簡単であって8ビットマイクロコ
ンピユータ上に実施でき、双方向19゜200ビット/
秒同期チャネルを処理でき、X。
25プロトコル機能を処理できるようなデータ通信方法
を提供る、ことである。
本発明の前記およびその他目的、特徴、および利点を、
添付図面および添付前を多照して以下に詳細に説明る、
(実施例) 図面を参照しながら実施例を説明る、。これら図におい
て同一番号は同一部品を示す9好適方法におけるデータ
圧縮は、データ通信の応用分野において使用される変復
調器(モデム)に適している。このモデムは、例えばモ
デム10であり、通信回線または電話回線12を介して
第2のモデム15にデータを送信る、。ここに開示した
好適実施例はモデムに使用されているが、本発明はあら
ゆる種類のデータ圧縮分野に適している9例えば、大量
データ記憶、データバス圧縮、遠隔測定、映像/画像圧
縮、会話圧縮、地震データ圧縮などに適用できる。
本発明の好適実施例では、データ圧縮用の符号化器と、
それとは別個ではあるが並列の圧縮データ復号用復号器
とを使用る、。このため好適実施例に基づくモデム10
は、それに付属して符号化テーブルT1を有る、。この
テーブルの詳細は後述る、。モデム15には復号化テー
ブルT2が付属る、。このテーブルT2は、符号化テー
ブルT1と並列に保持されており、詳細については後述
る、。
次に幾つかの語の定義を行う3まず本明細書で使用る、
[アルファベットJとは、情報を表すなめに使用される
キャラクタのセットを意味る、9例えばASCIIデー
タセットは256個のキャラクタからなるが、これを「
アルファベット」とみなす。同様にEBCDIC規格も
「アルファベット」とみなす。
本明細書で使用る、「キャラクタ」の語は、文字、数字
、およびデジタルコードのみならず、2進コードに符号
化し得るあらゆる種類の情報要素を意味る、。はとんど
のキャラクタは所定の書式に基づいて符号化される。従
ってASCIIまたはEBCDIC規格において、カン
マ、スペース、数字、および文字は全て「キャラクタ」
とみなす9同様に数値もキャラクタであり、特定の書式
に属さない純粋なデータの2進符号化表記もキャラクタ
である。
好適実施例における符号化テーブルT1および復号化テ
ーブルT2は、共にデータ配列として実現され、第2図
に示すように、マイクロコンピュータに付属したメモリ
に格納される。代表的にモデム10は、本発明のデータ
圧縮を実行る、手峻を内蔵しており、データ圧Il!1
回路20を有る、。
このデータ圧縮回路20は、モデム/コンピュータイン
タフェース回路22に接続される。この回路22は従来
のモデム回路であり、回線23を介してコンピュータ等
の入力源からデータのキャラクタを受け取るための回路
要素を備え、前記データの項目の送信準備を行う、一般
にデータのキャラクタは8ビットバイトとして受信され
るやこの8ビットバイトは、データバス25を介してデ
ータ圧縮回路20に接続される。
データ圧縮した結果は、データバス25を介してモデム
/電話インタフェース回路24に提供される。このイン
タフェース回路24は、圧鼾回路20からデータを受け
取り、データf!−調整して電話回線12等の通信回線
へのデータの直列伝送の準備をる、。好適実施例におい
て、圧縮回路20からモデム/電話インタフェース回路
24に提供されるデータは、後述る、方法において符号
化され、モデム/コンピュータインタフェース回路22
から圧縮回路20に与えられたキャラクタを表す符号が
提供される。
データ圧縮回路20の好適実施例は、780マイクロコ
ンピユータ30を備える。マイクロコンピュータ30は
、モデム/コンピュータインタフェース回路22から1
バイトのデータを受け取り、それを圧縮し、その符号化
された結果をデータバス25に戻し、モデム/電話イン
タフェース回路24に送り、そこから圧縮データを直列
伝送る、。
280マイクロコンピユータは、ザイログ社の製品であ
り8ビットマイクロコンピユータであって当業者に良く
知られているものである。従ってこのマイクロコンピュ
ータの詳細説明は省略る、。
それらについては製造会社から供給される説明書が参照
できる。
好適実施例においてマイクロコンピュータ30と共に動
作る、他の構成要素は、プログラムメモリ31を含む。
このプログラムメモリ31は、マイクロコンピュータ3
0用のプログラムを格納し、好ましくはプログラマブル
リードオンリメモリ(PROM)であってデータバス2
5に接続され、プログラムの制御下でプログラム命令が
マイクロコンピュータ30に転送される。マイクロコン
ピュータ30のデータバス32は、ラインA0〜A15
からなり、10グラムメモリ31とマイクロコンピュー
タ30との間に接続されている。このため、マイクロコ
ンピュータ30からのアドレス信号は、公知の方法にお
いてプログラムメモリをアドレスできる。プログラマブ
ルタイマ・カウンタ回路33は、データバス25を介し
てマイクロコンピュータ30に接続され、タイミングル
ーチンを実行る、。好適実施例において、回路33はザ
イログ社製のz80−CTCであって、4個の独立した
タイマ回路を有しており、−意の割込ベクトルを発生さ
せ、割込駆動タイミングルーチンの便宜をはかる。
符号化テーブルTI(復元の場合は復号化テーブルT2
)は、ランダムアクセスメモリ(RAM)35内に格納
される。RAM35は、アドレスバス32からアドレス
信号を受け取ると共に、データバス25に対してデータ
信号を送受る、ように接続される。1実施例において、
RAM35は1024x8ビットメモリであり、512
x16に配列されている。この特定の構成は、256キ
ャラクタのアルファベットを容易に可能にる、。つまり
、アルファベットの各キャラクタに8ビットが割り当て
られ、アルファベットの各キャラクタのカウント用に8
ビットが割り当てられ、12ビット(3個の4ビットニ
ブル)が各キャラクタの圧縮コード用として演算される
。従ってこの構成は、提供される8192ビットのうち
256x28=7168ビットを使用る、。当然ながら
このメモリのサイズは、アルファベットのサイズ、アル
ファベットを符号化る、ために使用されるビット数、お
よびキャラクタカウント数を示すなめに使用されるビッ
ト数に応じて小さくも大きくもできる。
好適実施例において、12ビットの圧縮コードは、格納
されるのではなくマイクロコンピュータ30によって実
時間で演算される。この構成により、RAM35の容量
は256x16=4096でよく、これは256キャラ
クタのアルファベットの各キャラクタについての8ビッ
トと、アルファベットの各キャラクタのカウント用の8
ビットとを格納る、ためである。
マイクロコンピュータ30に関連る、制御信号は、当業
者に良く知られているので第2図に示していない9本発
明の好適実施例は、入力データ流れの各キャラクタを圧
縮するために動作る、ので、符号化される各キャラクタ
は、モデム/コンピュータインタフェース回路22によ
って圧縮用としてキャラクタ毎に提供されるものである
。圧縮されるキャラクタの存在は、ライン36上の割込
(INT)がモデム/コンピュータインタフェース回路
22から提供されることによって通知される。
同様に、本装置が復号モードで使用される場合、モデム
/電話インタフェース回路24がINT信号を提供る、
。モデム回路22,24からの各lNT信号は、ワイヤ
ードOR接続され、いずれもが割込を発生できる。この
割込信号は、マイクロコンピュータ30に符号化用式た
は復号用のデータの存在を、各々の場合に応じてデータ
バス25を介して通知る、。
モデムインタフェース回路22,24には、制御レジス
タ27.28が含まれる。これら制御レジスタは、モデ
ムインタフェース回路22.24とデータ圧縮回路20
とのインタフェースの補助として使用される。制御レジ
スタ27.28は、マイクロコンピュータ30とのイン
タフェースに必要な各種の制御信号を提供る、機能を有
る、。
例えば、マイクロコンピュータ30が符号化状態にある
場合、このマイクロコンピュータ30は、回路22から
の符号化用のキャラクタの受信に対し肯定応答る、必要
がある。従ってマイクロコンピユータ30は、ハンドシ
ェイク形式においてモデム/コンピュータインタフェー
ス回路22からの割込に対して応答し、制御レジスタ2
7にビットを設定る、ことによりその割込に肯定応答る
、と共に、マイクロコンピュータ30が「使用中」であ
ることを知らせる。マイクロコンピュータ30が他の符
号化用キャラクタを受付可能になると、この「使用中」
ビットはクリアされ、次にモデム/コンピュータインタ
フェース回路22が他の圧縮および最終送信用キャラク
タを提供る、状態となる。
同様に、制御レジスタ28は、マイクロコンピュータ3
0とモデム/電話インタフェース回路24との間のイン
タフェースの便宜をはかる0例えば、符号化され圧縮さ
れな1キャラクタが送信可能状態にある場合、マイクロ
コンピュータ30は、モデム/を話インタフェース回路
24の制御レジスタ28にビットを設定し、該回路24
に対して1コードが送信可能であることを通知し、その
コードがデータバス25に置かれていて回路24内の適
切な格納レジスタ(図示せず)にストローブされ得るこ
とを通知る、。
また本装置が復号モードに構成されている場合は、デー
タ経路は前記したものと逆になる。つまり、データは電
話回線12から受信され、モデム/電話インタフェース
回路24を介してマイクロコンピュータ30に送られ、
復元され、モデム/コンピュータインタフェース回路2
2に供給され、回線23を介してコンピュータに送られ
る。従って、電話回線12を介して受信されるデータは
、モデム回路24を介して提供され、8ビットバイトに
変換され、データバス25を介して「復号状態」まなは
「復元状態」となっている圧縮回路20に提供される。
制御レジスタ28は、制揶レジスタ27が行うものと同
様のハンドシェイク機能を提供し、モデム/′:4話イ
ンタフェース回路24と圧lft/復元回路20との間
のデータ通信の便宜をはかる。
次にデータ圧縮の好適方法および装置の理論および動作
を説明る、。一般に、好適なデータ圧縮方法は、マイク
ロコンピュータ30用のプログラムとして実行される一
連のステップからなる。これらステップは次のとおりで
ある。
(1)アルファベットのキャラクタに関る、複数の項目
が入力された符号化テーブルT1をRAM35内に与え
る。この符号化テーブルT1にはアルファベットの各キ
ャラクタに関る、カウント数も与えられる。好適実施例
におけるアルファベットはn=256キャラクタを有し
、ASCIIデータセットからなる。この符号化テーブ
ルT1は、圧縮または送信モデム10内に提供される。
またこのテーブルT1は、圧縮コードを演算る、ための
ものであり、その演算方法の詳細は後述る、。各圧縮コ
ードは所定の2ビットを有る、。しかしながら、好適実
施例においては、複数セットの圧縮コードが提供される
。このビット数2は、各圧縮コードのセット内では同一
であるが、各セット間では異なる。またこれら圧縮コー
ドの幾つかは、他よりも短い。最も短いコードは、アル
ファベットのキャラクタの符号化前の表現よりも短い。
本開示実施例において、3種類のセットの圧縮コードが
ある。つまり、4ビットコードと8ビットコードと1z
ビットコードとである。従ってビット数2は、4,8.
または12である。
(2)符号化用のデータの各項目は、順次のデータ流れ
で表現される。各項目は、一般に項目Xとして参照され
る。アルファベットキャラクタの一つによって表現され
るデータの項目Xが符号化用に提供されると、その提供
された特定のアルファベットキャラクタに対応る、圧縮
コードが、符号化テーブルにおける項目Xの順番と圧縮
レベルaとに基づいて演算される。
(3)このようにして選択された圧縮コードは、圧縮出
力として提供される。このコードは、モデム10によっ
て電話回線12を介して受信モデム15に送信される。
(4)符号化テーブルT1における圧縮コードとアルフ
ァベットキャラクタとの関係は、周期的に調整される。
この調整は、他のキャラクタと比較して比較的頻繁に出
現る、キャラクタについてのみ行われ、特定のキャラク
タに関る、圧縮コードを変更る、ことによって行われる
。まなこの調整は、アルファベットの特定のキャラクタ
の符号化用に提供される所定の複数のキャラクタについ
ての出現頻度に基づいて行われる。これらキャラクタの
数は、符号化テーブルTl内にキャラクタのカウント数
として示されるものである。この所定の複数のサイズは
kで表され、更新速度を上げるような限度数として選択
される。従って、符号化用に提供されるにキャラクタに
ついてキャラクタの出現頻度が変化すれば、より頻繁に
出現る、キャラクタが、符号化テーブルT1において、
より短い圧縮コードに対応t=tcすされるようになる
前記したように、符号化テーブルT1は、アルファベッ
トのキャラクタと、それらキャラクタに対応る、カウン
ト数とを格納る、と共に、圧縮コードが演算される場合
はそれらキャラクタに対応る、圧縮コードも格納できる
。最初に、アルファベットの各キャラクタとそれらに対
応る、圧縮コードとは、初期順序配列に配置される。す
なわち、a個の4ビットコードが配列の開始端側に配置
される。またb個の8ビットコードと0個の1zビット
コードもある。圧縮コードとアルファベットキャラクタ
との関係の周期的な調整は、次のようなステップで実行
される。
(1)符号化テーブルT1において、各カウント数CC
が各アルファベットキャラクタ毎に保持される。
(2)データ項目Xが符号化用に提供されると、符号化
テーブルT1を使用して圧縮コードが演算式なは選択さ
れ、符号化用に提供された該キャラクタに対応る、キャ
ラクタカウント数CCが増分される。
(3)そのキャラクタカウント数が増分されると、該更
新されたキャラクタカウント数は、配列中においてより
短いコードに対応付けされていると見なされる位置の所
定のキャラクタのカウント数と比較される。開示実施例
においてこの所定のキャラクタは、配列の開始端方向に
d個の位置に配置され、このdは好適実施例において1
6である。つ才り、更新直後の特定のキャラクタのカウ
ント数は、配列の開始端に近いより短いコードのある位
置の所定のキャラクタのカウント数と比較される。
(4)配列の開始端に近い所定のキャラクタのカウント
数が符号化直後のキャラクタのカウント数よりも少なけ
れば、符号化直後のキャラクタと所定キャラクタとの配
列中の相対位置が交換される。配列の開始端に近い所定
キャラクタのカウント数が符号化直後のキャラクタのカ
ウント数よりも少なくなければ、同様の比較が符号化直
後のキャラクタの位置に近付きながら各キャラクタカウ
ント数に対して行われる。より少ないキャラクタカウン
ト数が見つかれば、前記したような位置の交換が行われ
る9あるいは、d個のカウント数との全比較が行われる
。これにより、より大きなカウント数を有る、キャラク
タが、配列中においてより短いコードに対応しているで
あろう位置に関連付けられる。
配列中において、特定の圧縮コードは特定の位置に対応
しており、キャラクタの位置を交換る、と、キャラクタ
とそれに対応る、カウント数とは配列中の別の位置に移
動されるので、そのキャラクタは、それよりも低いカウ
ント数を有る、キャラクタにそれまで関連していた圧縮
コードに対応る、ようになる。
圧縮コードとアルファベットキャラクタとの対応関係の
周期的な調整は、符号化された各項目について行われる
ので、より頻繁に出現る、キャラクタが配列の開始端の
方向に移動してより短いコードに関連付けられるように
なる。この移動は比較的徐々に行われる。これは1キャ
ラクタが1回につきd=16位置以上は移動しないから
である。
このなめ、比較および交換は部分的なものであり、マイ
クロコンピュータ上で容易に迅速に実行可能である。こ
れはごく少数の比較演算とデータ交換とのみが必要とさ
れるからである。
本発明においては、より短いコードに関連付けられるキ
ャラクタの数を最大にる、なめ、さらに別のステップが
実行される。これは圧縮コードの各セットのサイズの調
整を含む。つまりa、b。
Cの値を調整る、ものである。開示実施例において、b
およびCの値は、aの関数である。まず好適実施例にお
ける配列は、所定数aのアルファベットキャラクタが4
ビットコードに関連付けられ、aの16倍の数のキャラ
クタが1zビットコードに対応づけられ、残りのアルフ
ァベットキャラクタが8ビットコードに対応づけられる
。4ビットコードに対応づけられるキャラクタの所定数
aによって示される「符号1ヒレベル」は、データの統
計が累積されるに連れて動的に変化し、出現の可能性が
高いキャラクタが4ビットコードを受け取ってより大幅
な圧縮を実現る、ようにる、。従って、4ビットコード
28ビットコード、および1zビットコードによって表
されるキャラクタの数の各セットのサイズを周期的に調
整る、ステップが実行される。これは次のようなステッ
プである。
(1)復号用に提供される複数に個の項目について(好
適実施例ではに=128)、所定の連続る、キャラクタ
のグループのキャラクタカウント数が合計されて複数の
[グループカウント数」が与えられる。好適方法におい
て、これらグループカウント数または合計数は、アルフ
ァベットの256個のキャラクタを16個ごとのグルー
プに分割し16のグループを提供る、ことによって求め
られる9つまり16個のグループカウント数がある。
(2)次に、配列の終端側のグループのグループカウン
ト数と、配列の開始端にある単一のキャラクタのキャラ
クタカウント数とを順次に比較る、。最初に、終端のキ
ャラクタグループのグループカウント数と、開始端の最
も出現頻度の高いキャラクタのキャラクタカウント数と
を比較る、。
(3)最も短いコードである4ビットコードのセットに
おける項目数aは、グループカウント数とキャラクタカ
ウント数とが一致る、まで増分される9この時、終端の
グループカウント数から配列の開始端に移動しながらそ
の処理が行われる9このように、最短のデジタルコード
に対応づけられるキャラクタセットのサイズは、出現頻
度の高いキャラクタをより多く含むように増加され、短
いキャラクタコードをより最適に使用る、ようにる、。
基本的に、これにより、より多くの短いコードがより出
現頻度の高いキャラクタに対応づけられるようになり、
より多くの長いコードが出現頻度の低いキャラクタに対
応づけられるようになる9好適方法において、3セット
のコードがあり、4ビ・ソトコードに対応づけられるa
個のキャラクタを有る、セットは、そのサイズが0〜1
5個の間で変化し、最長のデジタルコードに対応づけら
れるC@のキャラクタを有る、セットは、そのサイズが
0〜240個の間で変化る、。
前記したように、好適実施例におけるデータ比較方法は
、マイクロコンピュータ30用のプログラムによって実
現される。以下に詳細に説明る、データ比較用の好適方
法は、マイクロコンピュータ30用の一連のプログラム
命令によって実行される。以下の説明を読めば、当業者
はマイクロコンピュータ30をプログラムして本発明の
目的を遂行る、方法を理解る、であろう、以下の説明に
おいては第3図〜第16図も釡照る、。
(1)丈ず、アルファベットのn個のキャラクタが情報
の表現用として選択される。前記したようにこのアルフ
ァベットキャラクタは、n個のキャラクタを含むいずれ
かの所定のセ・ソトである9好適実施例においては、A
SCIIキャラクタセット分使用る、9これは、そのセ
ットを使用る、データ通信が本発明の主要な有効@域だ
がらである9好適実施例におけるアルファベットは、n
=256個の8ビットASCIIキャラクタを備える。
第3図はそれらアルファベットを示す9この図において
、キャラクタの前に付けられているカラット(力は、A
SCIIコントロールキャラクタを示し、キャラクタの
前に付けられている(v)はASCIIグラフィック記
号を示し、キャラクタの前に付けられているプラス(+
)はイタリック体ASCIIキャラクタを示す。
(2)これらキャラクタは、まずメモリ35内においで
ある所定の順序で初期順序配列に配置され、テーブルT
1を形成る、。第3図において、キャラクタはASCI
Iデータセットの16進表現の順序で配置されている。
ここに開示る、好適方法は、データ統計の変化に応じて
動的に適応る、ので、前記キャラクタを何等かの特定の
順序に配置る、必要はない、しかしながら、場合によっ
てはある種のデータが他よりも多く出現し得る。
例えば、ある環境においては、英語のテキストが多く発
生し得ることが分かる。このような場合は、出現確率の
高い順にキャラクタを並べ、最も出現頻度の高いことが
予測されるキャラクタを配列の開始端に配置し、出現頻
度の最も低いことが予測されるキャラクタを配列の終端
に並べる。このようにあらかじめ配置る、ことにより、
アルゴリズムを最もありえそうなデータ流れに迅速に適
応させることができる。
(3)次に、アルファベットキャラクタを符号化して圧
縮る、ために使用る、圧縮コードのセットを提供る、必
要がある。好適実施例においては、3セットのキャラク
タ符号化用の圧縮コードがある。すなわち、4ビットニ
ブル、8ビットバイト、または12ビットである。一般
には、少なくとも第1セットのpビット圧縮コードがア
ルファベットの幾つかのキャラクタの符号化用に提供さ
れ、少なくとも他のセットのrビット圧縮コードがアル
ファベットの他のキャラクタの符号化用に提供される。
好適実施例において、第1のpビット圧縮コードのセッ
トは、n個のキャラクタのうちの第1の所定数a個のキ
ャラクタを符号化するために使用され、第2のqビット
コードのセットはn個のキャラクタのうちの第2の所定
数す個のキャラクタを符号化る、ために使用され、第3
のrビットコードのセットはn個のキャラクタのうちの
第3の所定数0個のキャラクタを符号化る、ために使用
される。この特定の状態においてa+b+c=nである
。これは、すべてのキャラクタがこれら3種類の異なる
コードセットのいずれかで表現されなければならないか
らである。好適実施例において、2は三つの値(p=4
.q=8.r=12)のいずれかを取ることができる。
また、一般には、少なくとも2セットの長さの異なる圧
縮コードがある。ここで、第1のarmのキャラクタの
セットはpビットコードを有し、第2の0個のキャラク
タのセットはrビットコードを有る、。好適実施例にお
いては3セットの圧縮コードがあるが、より多くのセッ
トを使用る、ことも可能である。
1実施例において使用される圧縮コードは、添付第1表
〜第■表に示す通りであり、6段階の圧縮レベルを例示
している。これら表において、INで示される欄は、テ
ーブルTIの配列内におけるキャラクタの位置を表現し
、0〜FFまでの16進表現の位置識別子として示され
ている。配列内におけるこれら位置に対応る、圧縮コー
ドは。
OUTの桐に示されており、やはり16進表現である。
好適実施例において、添付衣に示した圧縮コードは、提
供されるキャラクタの符号化表における位置に基づいて
実時間で演算される。この実時間演算の方法の詳細は後
述る、。これらコードは、あらかじめ演算して添付表仁
示すような形式でメモリに格納してもよい。
またこれら圧縮コードは、コードの固定テーブルではな
い。これらコードは、圧縮レベルの関数として動的に変
更されるものである。これに関し、第1表においては、
a=1の圧縮レベルが示されている。すなわち、1個の
キャラクタのみが4ビット圧縮コードを与えられる。こ
のコードはOUTの第1カラムの16進数Oである。開
示方法に基づき、1zビットコードの数はc=16a=
16である。これら1zビットコードは、第1表の終端
の0tJTカラムに見られ、1631!数FF0〜FF
Fの範囲にある。残りのコードは8ビットコードであっ
てその数はb=n−a−c=239であり、カラム1の
16進数10から最終カラムの16進数FFの範囲にあ
る。
圧縮レベルa=0は、好適実施例における一極端を表す
、この場合、全データは8ビット圧縮コードで表現され
、圧縮(または復元)は行われない。これは純粋なラン
ダムデータには最適である。
他の極端は、a=15の圧縮レベルであり、15個のキ
ャラクタが4ビット圧縮コードに対応づけられる。これ
の状態は第■表に示すように、a=15のキャラクタが
0〜Eの範囲の4ビットコードに対応づけられる。この
結果c=16a=16(15)=240のキャラクタが
FI0〜FFFの範囲の1zビットコードに対応づけら
れ、1個のキャラクタのみがFOの8ビットコードに対
応づけられる。
より頻繁に起こり得る圧縮レベルは第7表に示すa=1
2のレベルである。この圧縮レベルは、ある程度のデー
タ統計を累積した後に発生る、可能性があり、データ流
れ中に再出現る、キャラクタのパターンを処理した後に
発生し得る。第7表においては、12のキャラクタが0
〜Bの範囲の4ビットコードに対応づけられている。従
ってC−16a=16 (12)=192のキャラクタ
がF40〜FFFの範囲の12ビット圧縮コードに対応
づけられている。残り256−12−192=52のキ
ャラクタは、C0〜F3の範囲の8ビットコードに対応
づけられる9 第1表〜第■表を見て分かるように、与えられた圧縮コ
ードの翻訳は、圧縮レベルaの関数となる。すなわち、
圧縮レベルと、圧縮コードを表現る、12ビットまでの
データとが与えられれば、テーブル中の位置(および対
応る、アルファベットキャラクタ)は一意的に同定され
る。つまり、すべての圧縮コードは即座に復号される。
これは、圧縮レベルaが4ビットコードを有る、キャラ
クタの数を決定し、aの値が8ビットコードおよび1z
ビットコードを有る、キャラクタの数すおよびCの値を
決定る、からである。このため、第7表のように圧縮レ
ベルが12であれば、第1のOUTカラム中の最初の1
2個の0〜Bの16進数は各別個のコードを表す。Cが
現れればそれは少なくとも別の1個の16進数を伴うこ
とになる。
これは4ビットコードの数がBまでであるからである。
同様に、次の52個の8ビットコードを有る、キャラク
タが第7表のF3で終了る、と、次からは必ず3個の1
6進数すなわちF2O等を必要とる、1zビットコード
が続く。
(4)これら初期パラメータを確立した後、次のステッ
プは、アルファベットキャラクタで表現される符号化用
の順次入力情報の流れに圧縮コードを与えることである
(5)符号化用に順次に提供されるこの入力情報の流れ
の各キャラクタは、項目x′c表されるが、この項目X
に対して次のようなステップが実行される。
(i)符号化テーブルT1を使用して、項目Xに対応る
、キャラクタの配列中の相対位置の関数として圧縮コー
ドが演算または選択される。基本的にこの処理は、テー
ブルT1においてインデキシング、ハツシング、または
順次検索を行い、テーブルTl中に項目Xを表現る、キ
ャラクタと同一のキャラクタを見つける。これにより圧
縮コードが一意的に同定される。例えば、第3図に例示
したデータの流れ’ The Hayes Cos+p
ression 、 、 、 Jは、キャラクタ「T」
で始まっている。このキャラクタは、テーブルT1の第
6カラムの上から第5番目のキャラクタであり、INカ
ラムの16進位置54に対応る、。従って、このキャラ
クタを符号化る、ため、16進位置54に対応る、圧縮
レベルに関る、圧縮コードが選択または演算されて圧縮
出力として提供される9 前記したように、好適実施例においてはこの圧縮コード
はマイクロコンピュータ30によって実時間で演算され
る。実時間での演算は好ましいものである。もし実時間
での演算をしないと、16の圧縮コードテーブルが必要
となり、それらの各々がROMまたはRAMに格納され
るので、16x256x8=4096バイトの記憶装置
が必要となる。あるいは単一の圧縮テーブルを設けるこ
ともできるが、そのテーブルはaの値が変化る、たびに
更新しなければならない。
好適実施例において圧縮コードの演算用に使用される方
法は次の通りである。供給されたデータ項目Xの位置を
テーブルTl中に見つける。これによりその圧縮レベル
が容易に同定される。Xの位置をp (x)とし、これ
がaよりも小さければ、圧縮コードはp(x)に等しい
4ビットニブルである。例えば、第■表において、キャ
ラクタが第lのINカラムの位置4を占めれば、圧縮コ
ード4が選択される。
p (x)が(255−16a)より大きければ、16
進数Fに8ビット数p (x)が続く3ニブルコードが
送られる9例えば、第■表においてはa=8であり、第
6のINカラムにおける位r[A。
を占めるキャラクタは、圧縮コードFAOを受け取る。
あるいは2ニブルコードp(x)+15aが送られる9
例えば、第■表の第5のINカラムの位置60を占める
キャラクタは、(60+15 (8))=D8の16進
圧縮コードを受け取る。これらの演算はすべてマイクロ
コンピュータ上での実行が迅速で容易である。これは1
6による乗算が4回の友シフト演算であり・、15によ
る乗算が4回の甜シフトおよび元のバイトの減算だがら
である。
第3図において、圧縮レベルは4であり、これは第1表
の圧縮コードに対応る、。第3図に明らかなように、キ
ャラクタ「T」によってqビットコードが選択され、そ
れが出力として提供される。
第3図に示すテーブルは、適切な第1表のコードを示し
ていない。第1表は圧縮レベル4用のコードテーブルで
あるが、この表において第3図の配列中のT(16進表
現で54)のキャラクタ位置に対応る、16進コードが
、演算式なは選択によって1・6進圧縮コード90とな
る。つまり、符号化る、項目の適切なキャラクタ位置が
第3図の例示テーブルTl中に見つかると、それに対応
る、圧縮コードが第1表から演算または選択される。
(ii)入力情報の流れの各項目に対る、次のステップ
は、その入力情報の流れの特定の項目を表現る、アルフ
ァベットキャラクタに関る、カウント数を増分る、こと
である。このキャラクタカウント数はCCで表されてお
り、そのキャラクタの出現頻度のデータ統計を維持る、
手段となる。
(fit)キャラクタカウント数CCが増分されると、
そのカウント数は、配列の開始端方向の所定の範囲にあ
る各キャラクタに付随る、キャラクタカウント数と比較
される。この比較は、配列中の所定数dの位置に対して
実行される。ここでdはあらかじめ設定される数であり
nよりも小さい。
好適実施例において、前記比較は配列中の16箇所まで
実施され、それ以上は行われない。これは、処理時間の
遅延を大きくさせないためである。マイクロコンピュー
タ30用のクロック周波数を2゜5MHzとし、CPI
R命令(f&大21クロックサイクルを必要とる、比較
、増分、および繰返し命令)を使用る、とすれば、最大
16メモリ箇所の検索および比較は、本発明に好適であ
る280マイクロコンピユータを使用した場合、約13
5μs以内に実行できる。処理される各キャラクタにつ
いては他の命令も実行される必要があるが、キャラクタ
カウントに関連した演算は、各キャラクタについての処
理時間の大部分を占める。従って、本発明が適用される
モデムの目標ビット速度19.200ビット/秒(19
20キャラクタ/秒に相当)は、処理される8ビットキ
ャラクタ当り約416μsの平均時間に相当し、大きな
影響を受けない。もちろん、さらに早いマイクロコンピ
ュータを使用すれば、その影響はさらに小さくなる。
従って、第3図において、キャラクタTについてのキャ
ラクタカウント数CCは、第6カラムのTの真上のキャ
ラクタから第5カラムのキャラクタDまでの各キャラク
タのカウント数と比較される。
(iv)キャラクタカウント数CCが、配列の同始端に
近い所定範囲内のd個のキャラクタのうちあるキャラク
タのカウント数より大きいか等しければ、交換が行われ
る0項目Xに対応る、キャラクタと、それよりも小さい
か等しいキャラクタカウント数を有る、配列中の開始端
に近い位置のキャラクタとの配列中における相対位置は
、単に交換され、第4図に示すような結果が得られる0
例示したデータ流れの第1のキャラクタの後、キャラク
タTのみがキャラクタカウント数を有しており、前記交
換の結果キャラクタTとDとの位置が対で交換される。
キャラクタの出現に応じてキャラクタカウント数を増分
させ、そのキャラクタカウント数と配列中の所定の低い
範囲内の各キャラクタのカウント数とを比較る、ことの
効果は、部分的にソートる、ことでめり、除々に特定の
キャラクタの出現の可能性を降順に並べることである。
この部分的ソートは、所定範囲内に限定されており完全
なソートではないが、各キャラクタに対して比較が行わ
れるので、テーブルは徐々にソートされる。さらに、あ
るキャラクタがより頻繁に出現すれば、そのキャラクタ
はテーブル内においてより頻繁に再配置されることにな
り、これらキャラクタに対る、有効ソート率はより大き
くなる。これは当然、4ビット圧縮コードを出現頻度の
高いキャラクタに迅速に割り当てる結果となる。
前記の処理は符号化用に提供される各キャラクタについ
て実行される。第4図において、図示の対の交換が行わ
れた後、キャラクタTは第5カラムの第5番目の位置に
対応づけられており、第■表の44のIN(fL置に対
応し、80のOUT圧縮コードを受け収る9このコード
が、次にキャラクタTが出現した場合に与えられる。ま
たキャラクタDは、第6カラムの第5番目の位置に対応
しており、これは第■表の位置54に対応し、圧縮コー
ドとして90を受け取る。
次に第5図および第6図を参照る、。これらの図は、例
示したデータ流れの第2キャラクタおよび第3キャラク
タの後のテーブルT1の状態を示す。例示データ流れの
第2キャラクタ「h」の後、このキャラクタhに関る、
キャラクタカウント数は増分される。キャラクタhの処
理後キャラクタカウント数を比較る、と、hのカウント
数はWのカウント数よりも大きいので、第5図に示すよ
うに位置の交換が行われる。同様に、例示したデータ流
れの第3キャラクタr eJの処理後、eのカウント数
は増分され、第5図におけるしのカウント数と比較され
る。eのカウント数はUのカウント数よりも多いので、
eとUどの位置は交換され、第6図に示すような配置と
なる。
次に第7図と第8図とを参照る、9これらは例示したデ
ータ流れの第1行目の終端前後のテーブルT1の状態を
示す9これらの図から分かるように、データ統計は有効
な方法で累算されており、キャラクタ位置の移動は有効
に行われている0例えば、例示したデータ流れの第1行
目の終端において、スペースキャラクタspは、最も出
現頻度の高いキャラクタであり、第1行目において9回
出現している。次に頻度の高いキャラクタは0であり、
6回出現している。また第7図および第8図から分かる
ように、第1行目の最後のキャラクタaは、そのキャラ
クタカウント数が増分されるのに応じて、前記した通り
の方法で配列中の開始端に向かって移動を続ける。
第2行目の終端においては、第9図および第10図に示
すように、テーブルT1は著しくソートされており、各
キャラクタは出現確率の高い順にはっきりと配置されて
いる。第9図および第10図の時点において、初期の符
号化レベル4は、最も出現頻度の高いキャラクタの四つ
のみを4ビットで符号化る、だけであるが、このレベル
はその丈ま残っている。このため、sp、s、e、およ
びtのキャラクタだけが4ビットで符号化されるだけで
ある。そしてこの例示したデータの流れにおいて出現る
、残りのキャラクタの実質的にすべてが、8ビットで符
号化される。
次に好適実施例において、符号化レベルを周期的に変更
る、ステップを詳細に説明る、。この「符号化レベル」
の語は、最も短いコードに対応づけられるキャラクタの
数aの値を意味しているに過ぎない。符号化レベルを変
更る、ことにより、最短コードに対応づけられるキャラ
クタの数を最大にる、ことができる。まず、配列は所定
数aの4ビットコードと、b=16aの1zビットコー
ドと、c=n−a−bの8ビットコードとでキャラクタ
があらかじめ設定される。この符号化レベルは、データ
統計が累積されるに従って動的に変更され、出現確率の
高いキャラクタが多いほど4ビットコードを受け収るキ
ャラクタが増えるようになる。
従って、4ビットコード、8ビットコード、および1z
ビットコードで表現されるキャラクタのセットのサイズ
を周期的に調整る、ステップが収られる。好適実施例に
おいて、この周期調整は、所定数にのキャラクタの後に
実施される。ここでkは、好適実施例において128で
ある。しかしながら、符号化レベルの調整は、必ずしも
所定数のキャラクタの後や所定時間後に実施る、必要は
なく、重要な概念は、データの実際の圧縮、伝送。
格納中において、圧縮されるデータに関る、統計が分析
されて、符号化機構をデータ統計の変化による確率に動
的に適応させることである。この周期的な調整は、時間
の関数、処理キャラクタの数の関数、または当業者に知
られている他の方法によって処理中に実施される。
好適方法において、この符号化レベルは、多数a、b、
cの相対値を調整る、ことによって変更される。ここで
多数すおよびCはaの関数である。
符号化レベルを調整る、好適ステップは次の通りである
(i)まず、キャラクタの連続る、グループのキャラク
タ数を求め、複数の「グループカウント数」を発生させ
る。好適方法において、各mキャラクタを有る、連続る
、グループを合計し、n/m==256/16=16グ
ループのグループカウント数を得る。第11図に示すよ
うに、好適方法においてこのグループカウント数は、配
列を直線的にではなく2次元的に見た場合、各16キャ
ラクタを有る、各カラムの合計に対応る、。
(ii)各グループのグループカウント数は、テーブル
T1における最も右側の位置から開始して、配列の開始
端から始まる連続の各キャラクタのキャラクタカウント
数と比較される。すなわち、第11図における最も右側
のグループのカウント数は、最も出現頻度の高いキャラ
クタspのカウント数と比較される。最も右側の次のグ
ループは、次に出現頻度の高いキャラクタeと比較され
、このようにして順次に比較が行われる。(第11図に
おいては、右から第10番目のカラムまで全てのグルー
プカウント数はゼロであるので、これらのグループのカ
ウント数は図示していない。)数字的に示せば、この方
法は、グループ(n / m )−i−1についてのグ
ループカウント数とキャラクタjについてのキャラクタ
カウント数と比較る、。ここでiはゼロで始まるグルー
プカウント数の整数指標であり、jは配列内の開始端か
らゼロで始まる整数指標である。0〜15のグループが
ある、 (iii)グループカウント数が比較されたキャラクタ
カウント数よりも小さければ、左方向に次のカラムまた
はグループのカウント数が次のキャラクタカウント数と
比較される。詳細に説明すれば、グループ(n/m)−
i−1のグループカウント数がキャラクタjのキャラク
タカウント数よりも小さければ、iおよびjは増分され
、前記比較ステップが繰り返される。これら比較ステッ
プと増分ステップとは、グループカウントとキャラクタ
カウントとが一致る、まで繰り返される。
(iv)グループカウントが特定のキャラクタのカウン
ト数と一致る、と比較は終了し、符号化レベルが、前記
一致が見つかるまでに行われた比較の数の関数として確
立される。PAえば、第11図に示すように、右から第
8番目のカラムのグループカウント数はゼロであって、
これはキャラクタ−Hのキャラクタカウント数に等しい
。この時点で、−Hに続くキャラクタの出現頻度は、比
較されたグループ内のどのキャラクタの出現頻度ともほ
ぼ同じであると見なされる。このため、好適方法におい
て、この時点で比較が終了し、符号化レベルは、グルー
プカウントとキャラクタカウントとの間に一致が見られ
た点の直前の位置に確立される。
すなわち、第12図において説明すれば、新しい符号化
レベルミニ8キャラクタが確立される。
これは、この時点から4ビット符号を受け取るキャラク
タセットの最後のキャラクタである一Mが、第11図に
示したグループカウントとキャラクタカウントとの一致
点よりも配列内において1キャラクタ分、低い位置にあ
るからである。第12図において、このレベル演算の後
、キャラクタ間の位置交換が続行され、ASCII表現
でラインフィ〒ドキャラクタを意味る、キャラクタ“J
がキャラクタ間Hと位置交換されている9 第12図に示すように、新しい符号化レベルa=8の確
立に応じてさらに別のステップが実行される。まず、a
の演算の結果、c=16a=128キャラクタが12ビ
ット圧縮コードに対応づけられ、b=256−a−c=
120キャラクタが8ビット圧縮コードに対応づけられ
る。
第12図に示すように、レベル演算の後、キャラクタカ
ウント数は1/2(切下げ)にされる。
新しいにキャラクタの開始時にテーブルT1を完全にリ
セットる、のではなく、また以前のにキャラクタの記録
をすべて保持る、のでもなく、好適方法においては以前
の記録の一部を保持る、のである。これは、各所しいに
キャラクタのセットの開始においてキャラクタカウント
数を半分にる、ことによって実施される。これにより、
以前のキャラクタの記録の一部を保持る、と共に、テー
ブルを大きく変更る、ことなく、変化る、データ統計へ
の迅速な適応が阻害されないという二重の機能を提供る
、。好適方法においてはキャラクタカウント数を半分に
したが、当業者には明らかなように、以前の記録の保持
量および変化る、データ特性への適応速度は、キャラク
タカウント数を減少させる量によって調整し得る。キャ
ラクタカウント数を半分に減らすことは、好適実施例に
おいて実行が都合がよい、これはカウント数を格納して
いる各メモリ箇所におけるシフト演算を行うだけで良い
からであり、この処理は好適なZ80マイクロコンピュ
ータで容易に実行できる。
第15図および第16図は、第2レベルの再演算を示す
。これは次のに=128キャラクタが収られた後に実行
される。すなわち、例示したデータ流れの第5行目の語
rinjの後に実行される。
第15図に示すように、テーブルT1の右側から開始し
て左方向へのグループカウントと、最も出現頻度の高い
キャラクタspから開始して配列の下方向へのキャラク
タカウント数とを比較る、場合、キャラクタl(キャラ
クタカウント数4)とグループ3(左から4番目のグル
ープであってグループカウント数4)との間でカウント
数に一致が見られる。この結果、新しい符号化レベルミ
ニ12キャラクタが確立され、第16図の第1カラム内
のMよりも低位の全てのキャラクタが、それ以f&4ビ
ット圧縮コードを受け収るようになり、第7表に基づい
てその選択が行われる。これに対応して、192のキャ
ラクタが12ビット圧縮コードな受け取り、残りの52
のキャラクタが8ビットで符号化される。
復元のために基本的に必要なことは、第1図に示したモ
デム15などの受信端末における並列復号化テーブルT
2を保守る、ことである。受信される符号化されたデー
タを復元る、ために、この復号化テーブルは、第3図に
示すように同一の初期テーブルで開始される9次に前記
した符号化テーブルT1の保守ステップと全く同一のス
テップが復号化テーブルT2についてデータ項目ごとに
行われる。ただし処理される項目は符号化されたキャラ
クタであり、その目的は復号化出力としてアルファベッ
トの適切なキャラクタを提供る、ことである。
本発明に基づいて圧縮されたデータを復元る、方法は、
通信回線の他端側において一部に実行される。符号化の
際の第1のアルファベットの複製であるnd個のキャラ
クタの第2のアルファベットが並列に提供される。ここ
でndは第1のアルファベットにおけるキャラクタ数n
と同一であり、添字dは演算が復号装置または復元装置
において行われることを意味る、。第2のアルファベッ
トのnd個のキャラクタは、第1のアルファベットの配
列と同一の初期順序配列において配置される。
圧縮コードに基づいて符号化された順次データの流れは
、通信回線を介して受信される。次に圧縮コードに対応
る、アルファベットキャラクタが参照される9提供され
る出力は、圧縮コードに対応る、アルファベットキャラ
クタである。i後に、第2のアルファベット用の配列の
順序は、前記した送信モデムまたは符号化モデムにおけ
るアルファベットに対る、ものと同様の方法で維持され
る。
従って、符号化される入力情報の流れにおけるキャラク
タの出現頻度が変化る、と、第2のアルファベット中の
より出現頻度の高い対応キャラクタは、符号化配列と平
行して復号化テーブルの開始端方向に移動る、ようにな
る。
好適実施例において、これには、圧縮コードを演算る、
ために使用したものと逆のアルゴリズムが使用される。
この逆アルゴリズムは、受信端におけるマイクロコンピ
ュータ用のプログラムとして実現されるが、これについ
て次に説明る、。4ビットニブルのデータは、最小パケ
ットサイズであり、N1は第1の受信ニブルを表し、N
2は第2の受信ニブルを表し、N3は第3の受信ニブル
を表す。また、NlN2という表現は、16*N1十N
2を簡潔に示すものである9復号用のステップは次の通
りである。
Nlが現在の圧縮レベルaよりも小さい場合、出力キャ
ラクタは、テーブル下2内の位置Nlにあるキャラクタ
である9そうでなければN1は記憶されて装置はN2の
到着を待つ。
NlN2が256−aよりも小さければ、出力キャラク
タは、テーブル下2内の位置(NlN2−15*a)の
キャラクタである。そうでなければN1およびN2は記
憶されて、装置はN3の到着を待つ。
第3のニブルが受信されると、N1は放棄されて(常に
Fである)、N2N3の位置にあるキャラクタが復元出
力として与えられる。
このように、データが復号用に提供されると。
この提供されたデータ項目が表す特定のデジタルコード
に対応る、キャラクタがテーブルT2から選択される。
復号化テーブルT2から選択されたキャラクタは、復号
出力として提供される。符号化テーブルと同様の方法で
、配列中のコードとアルファベットキャラクタとの位置
関係は、キャラクタが復元されてから、キャラクタの出
現頻度の間数として周期的に調整される。従って符号化
テーブルと同様の方法で、複数のキャラクタについての
復号されたキャラクタの出現頻度が変化る、と、より頻
繁に出現る、キャラクタは、符号化テーブルにおけるコ
ードと平行してより短いコードに対応づけられる。
復号器においては符号器と同一方法を実行しなければな
らず、しかもこれを同期して行い適切な動作を実現しな
ければならない9同期動作を確実にる、ため、次のよう
な動作手順が符号器と復号器とによって実行される。(
1)1キャラクタがテーブルTIに基づいて符号化され
て送信モデムによって送信され、(2)送信モデムはテ
ーブルT1を更新し、(3)受信モデムは受信キャラク
タをその時点のテーブルT2に基づいて復号し、(4)
受信モデムはテーブルT2を更新る、。
リセット用の追加手段を設けて、符号器と復号器による
動作が確実に同期して開始されるようにる、。好適実施
例において、余り使用されないASCIIキャラクタコ
ードを透過フラグまたはエスケープキャラクタとして使
用る、と共に、複数の制御コードを提供る、。これらコ
ードの一つがリセット用に使用される。準備期間中にお
いて、送信モデムは、そのテーブルを既知の初期状態に
リセットし、次にリセットキャラクタを送信る、。
これにより受信モデムは、そのテーブルT2をテーブル
T1と同一の初期状態にリセットる、。
リセットまたは他の理由により、データ圧縮回路から復
元回路に制卸情報を送信る、必要がある。
好適実施例において、制振情報はフラグバイトを使用し
て送信される。このフラグバイトは、開示実施例におい
て16進数のFAが使用される。このバイトは、制9f
機能が必要の場合に出力流れに挿入される。このフラグ
バイトには、常に副脚情報を有る、フラグコードバイト
が続く。次に説明る、一掃(フラッシュ)動作は、フラ
グバイトを挿入る、前に必ず実行る、必要がある。
好適実施例において、3個のフラグコードが提供される
が、それ以上または以下の数を使用してもよい。これら
3個は、無動作(no−op)コード、D−フラグコー
ド、およびリセットコードである。このno−opコー
ドは無動作を意味る、コードであって一掃動作に使用さ
れる。D−フラグは、データ流れ中にフラグバイトを保
持る、ためのコマンドである。代表的なデータ流れにお
ける各256バイトに約1個が、フラグバイトとして定
義されたバイトである可能性がある。デー夕が失われな
いようにる、なめ、圧縮回路はこれらバイトを認識して
、各バイトの後に1個のD−フラグを挿入る、ことによ
り復元回路に対してそのフラグバイトをデータ流れ中に
残すように知らせる必要がある。リセットコードは当然
、テーブルを初期状態にリセットするために使用される
もちろん本発明においてフラグバイトは任意のものであ
る。特別のフラグバイトを持つことは、送信されるデー
タ量を約0.4%増加させるが、それにより追加される
機能は都合の良いものである9 好適方法は、一連の繰り返しキャラクタが送信または格
納されるデータ中に出現した場合に追加の圧縮を行うス
テップを備える。当業者には明らかなように、一連の繰
り返しキャラクタ内には冗長データが出現る、ことが多
い。特にある種の情報ファイルの通信においてそれが出
現る、3例えば、ある種のスプレッドシートファイルは
、そのスプレッドシート内の空領域を表す一連の空キャ
ラクタまたはゼロキャラクタを含むことが多い。
連続る、繰り返しキャラクタを処理る、ために使用され
る従来の圧縮方法の一つは、フラグキャラクタを送信る
、ことからなる。このフラグキャラクタは、繰り返し状
態の入口を意味る、ものであり、それに続いて特定のキ
ャラクタの繰り返し数を示す数が送信される3 好適実施例では、繰り返し状態において新規な追加の圧
縮を実現る、。この方法では、同一キャラクタが3回連
続して出瑣した後に符号器よび復号器を自動的に繰り返
し状態に入らせる93個の同一のキャラクタの後には、
常に数または追加繰り返し状態を示す信号または記号を
発生させる。
次に、繰り返しキャラクタの連続の終端に来るまで、ま
たはさらに15個の繰り返しキャラクタが受信されるま
で、またはストリームモードにおいてタイミング信号が
保留データを終了させる才でデータは送信されない。
好適方法において、4ビットカウントニブルを使用して
繰り返しキャラクタの出現回数を表す記号を表現る、。
この4ビットニブルの16進表現は、0〜Fの範囲で変
化し得る。Fは15個の追加のキャラクタと繰り返し状
態の続行との両方を意味し、現在のカウントニブルの後
に追加のカウントニブルが続くことを意味る、。
例えば、第17A図において、例示した入力データの流
れは、一連の3個のeの繰り返しを含む。
これら3個の繰り返しキャラクタが出現る、と、繰り返
し状態が自動的に符号器および復号器において発生され
る。そしてカウントニブル記号がその次のキャラクタと
して期待される。従って、送信される圧縮されたデータ
流れは、3個のeの後に繰り返し記号が続いており、こ
の繰り返し記号は繰り返し数を表す、これは最初の3個
のキャラクタに続く0〜15の数を表す、この数が15
(16進数のF)であれば、その繰り返し状態はさらに
続行る、。さもなければ繰り返し状態は、受信側におい
て繰り返しキャラクタの指示数が再現された後、終了る
、。第17A図の場合、合計3個の繰り返しキャラクタ
があるので、繰り返し記号はOである9 別の例として第17B図を説明る、。繰り返し状態に入
った後、最初の3個のeの後に別の3個のeキャラクタ
がある。従って、送信される圧縮データの流れは、3個
のeと、それに続く繰り返し記号3とであり、この繰り
返し記号3は最初の3個のeの後に別の3個のeがある
ことを示している。
15個の追加キャラクタまで一つの繰り返し記号または
コードで表すことができる。これを越える数は、他の繰
り返しコードが求められる。好適方法において、16進
キャラクタFは、15個の繰り返しの発生と追加の繰り
返し記号が予測されることを示すものである。第17C
図において、最初の3個のeに対して繰り返し状態に入
ると、追加の15個のeキャラクタがある9従って、送
信される圧縮データの流れは、3個のeと、それに続く
繰り返し記号F(別の15個のeキャラクタが出現る、
ことを示す)と、それに続く第2の繰り返し記号0から
なる9この0は、もちろん、追加の15個のキャラクタ
の連続の後に追加の繰り返しキャラクタは出現しないこ
とを意味る、。
第17D図において、一連の18個の追加キャラクタが
最初の3個のキャラクタの後に続いている。これにより
、圧縮データの流れは、最初の3個のeと、それに続く
第1の繰り返し記号Fであって第1の15個のキャラク
タと第2の繰り返し記号が続くことを意味る、記号と、
それに続く第2の繰り返し記号3であってデータの流れ
における最終の3(lHのキャラクタを表す記号とから
なる。
最後に第17E図は、連続る、繰り返し記号によって、
所望数の連続キャラクタを表し得ることを示す。第17
E図の例において、追加の32個のキャラクタの連続が
最初の3個のキャラクタに続く。好適方法において、こ
のデータの流れは。
繰り返し状態を発生させる3個のeと、第1の15個の
キャラクタと追加の繰り返し記号が続くことを意味る、
第1の繰り返し記号Fと、次の15個のキャラクタとさ
らに別の繰り返し記号が続くことを意味る、第2の繰り
返し記号Fと、合計32個のキャラクタのjtf&の2
個を収り上げるための最終繰り返し記号2とからなる。
以上説明したように、m個の繰り返しキャラクタの連続
を有る、入力データの流れを圧縮る、好適方法は、繰り
返しキャラクタの所定数n回の出現を検出る、ことによ
って繰り返し状態に入り、所定数n回の繰り返しキャラ
クタを表すデータを送信し、その直後に前記n回の後に
続く繰り返しキャラクタの出現数0を表す符号化された
第1の記号を送信る、ことからなる。ここに開示した好
適方法において、nとOとの合計はmである。
繰り返しキャラクタ列を処理る、前記方法に基づいて圧
縮されたデータを復元る、方法は、圧縮と同様であって
それと逆のステップからなる。これらステップは、(1
)同一の所定数n回の繰り返しキャラクタの出現を検出
る、ことによって受信データ中に繰り返し状態を検出し
、(2)所定数n回の繰り返しキャラクタを表すn個の
復号されたキャラクタを提供し、(3)n個の繰り返し
キャラクタに続いて、該n回に続く0回の繰り返しキャ
ラクタの出現を表す符号化された記号を受信し、(4)
n個のキャラクタに続いて0個の復号されたキャラクタ
を提供る、ことからなる。もちろん、nとOとの合計は
復号器においても符号器においても同様に穎である。
本発明において、繰り返し記号は、0から所定の2個の
キャラクタまでを表し、開示実施例においてはこのpは
15である。連続キャラクタの中に最初の3個に加えて
15個以上のキャラクタがある場合、追加の符号化記号
が使用されて追加のキャラクタの存在を示す。例えば、
好適方法において、一つの符号化記号では十分でない場
合、複数の符号化記号が使用されて繰り返しキャラクタ
の合計数を表す、符号化記号が15を示せば1.それは
繰り返しキャラクタの追加数15を示すと共に、追加の
4ビットカウントニブルまたは記号がそれに続くことを
意味る、。この後続の数は、やはり0〜pの一つの数で
ある。第17E図に示した例のように、35個の繰り返
しキャラクタが連続している場合、復号器が受信る、の
は、繰り返し状態に入ることを示す最初の3個のキャラ
クタと、15個のキャラクタおよび追加の記号が続くこ
とを意味る、第1の繰り返し記号Fと、15個のキャラ
クタおよびさらに別の繰り返し記号が続くことを示す第
2の繰り返し記号Fと、繰り返し記号2とであり、合計
3個の繰り返し記号を受信る、。
前記した繰り返しキャラクタの好適圧縮方法は、好適実
施例において、第2図の280マイクロコンピユータ3
0用のプログラムとして提供される。
本発明の好適実施例は、改良されたストリームモード動
作の能力も有る、。データの各バイトは、奇数のニブル
に変換され得るので、一連のキャラクタのif&のキャ
ラクタが完全に伝送されないことがあり得る。これは、
最後のニブルが、完全なバイトが送信されるように第2
のニブルの追加を待つからである。このため好適実施例
においては、タイマ回路またはタイマ機能を設ける。こ
のタイマは、非活動期間を監視し、所定の非活動期間、
例えば15m5の経過後、未送信のデータを圧縮回路か
ら一掃(フラッシュ)る、。このタイマ機能は、第2図
の割込駆動専用タイマ・カウンタ回路33を使用して最
適に実現される。
この−掃方法は次の通りである。これらのステップは、
所定の非活動期間が発生したことの指示に応答して実行
される。装置が繰り返し状態にある場合、カウントニブ
ルが送信されて、繰り返し状態は終了る、。次に、奇数
ニブルのデータが未送信で残っていれば、それに16進
数Fのニブルが結合されて完全なバイトとして送信され
る。この時、Fは単一二プルの圧縮コードとしては存在
しない唯一のニブルである。この結合したFが、受信機
/復元器によって、新しいキャラクタに対る、新しい圧
縮コードの第1ニブルとして翻訳されるのを防止る、な
め、フラグバイトが即座に送信される。−掃(フラッシ
ュ)動作がタイマによって引き起こされると、そのフラ
グバイトに続いて無動作(no−op)コードが送られ
、受信機に動作を全くせずに最後のFニブルとフラグバ
イトとno−opバイトとを放棄る、ように指示る、。
−掃動作がリセット動作によるものであれば、フラグバ
イトの後にリセットコードが続く9この一掃動作は、デ
ータ流れに2.5バイトを付加る、のでデータスループ
ットを低下させるが、この動作はチャネルが15m5の
期間遊んでいる場合に実行されるだけである。さらに2
.5バイトのデータを9600ビット/秒(同期)で送
信る、には、2.8ms必要なだけである。
(発明の効果) 以上説明したように、本発明の開示実施例は、幾つかの
動的特性と利点とを有る、ので、データ圧縮分野に広く
応用可能である。この動的特性の一つは、圧縮コードの
複数のセットまたはアルファベットの使用による9すな
わち、好適実施例においては15の異なる圧縮レベルが
あり、そのうちの6レベルは第1表〜第■表に示す通り
であるが、これら各レベルは異なる圧縮符号化機構を表
す。データ統計を累算した後、周期的に、これら15セ
ットのどれが現在の処理データに最適であるかが決定さ
れる。圧縮レベル0は、ランダムデータ(圧縮なし)に
最適であり、圧縮レベル15は4ビットキャラクタが最
も多いが、極めて規則的なまたは繰り返しのデータに最
適である。レベル8,9は、英語テキストに最適である
と考えられる。
本発明の他の効果は、これら累算されたデータ統計が固
定でないことである。処理済みのデータの記録はその一
部だけが保持されてその統計が評価される。これにより
、変化しつつあるデータタイプや特性に迅速に適応でき
ると共に、圧縮の効果も維持できる。
本発明のさらに別の効果は、圧縮レベルの上昇に柔軟に
適応できることであり、出現頻度に応じて圧縮程度を適
応できることである。例えば、データ中において4個の
キャラクタが極めて頻繁に出現し、これらが4ビットコ
ードを受け収る場合を考えると、データの性質やタイプ
が変化してさらに別の2個のキャラクタが頻繁に出現し
出すと、圧縮レベルはこれら6個のキャラクタに4ビッ
ト圧縮コードを割り当てるように変化る、。
本発明のさらに別の効果は、適応性の速度である。コン
ピュータによって実行されるソート動作は比較的時間が
かかるので、本発明は部分バブルソートを使用し、テー
ブル用に使用されるメモリ配列内の与えられたキャラク
タから始まる所定数のキャラクタの範囲で、キャラクタ
位置の対の交換を行う。これにより、少しのコンピュー
タ命令で、モデムなどの実時間処理用に適した満足でき
る全体ソート速度を実現る、。これらテーブルは、ある
時点において降順の確率による完全なソートな実現る、
ものではないが、より頻繁に出現る、キャラクタは、よ
り頻繁に処理され部分ソートされて配列の開始端に極め
て迅速に移動る、。
本発明のさらに別の効果は、圧縮コード用に任意ビット
長ではなく1/2バイトを使用る、ことである。これは
、市販のマイクロコンピュータ回路で極めて容易に実現
され、可変ワード長を処理る、必要がないので動作が早
い。
本発明のさらに別の効果は、一連の繰り返しキャラクタ
の圧縮方法において実現され、繰り返しキャラクタとし
てエスケープキャラクタを送信しなり使用したりる、必
要がない。ところが従来の装置では、可能なキャラクタ
セットの一つを繰り返しキャラクタ専用にしなければな
らない、これにより、本発明はアルファベットキャラク
タとして追加の一つを解放る、。これは、異なるアルフ
ァベットキャラクタが多用される場合に重要である。
さらに、繰り返し状態は、所定数のキャラクタの後に自
動的に確立されるので、処理時間が節約できる。ある種
の従来構成では、列内に出現る、繰り返し数を決定る、
ために処理時間が浪費され、それが終了して始めて繰り
返しキャラクタと繰り返し数とが送信される3本発明に
おいては、所定数のキャラクタがまず送信され、次に繰
り返し状態に入るので、最初の所定数のキャラクタの後
の繰り返し数を決定る、ために必要な処理は少ない。
従ってデータの流れは、従来の方法に比べて阻害される
ことが少ない; 本発明のさらに別の効果は、実現される圧縮の程度であ
る。前記したデータ圧縮用の好適方法を使用る、ことに
より、テキストファイルからなる試験データでは0.5
46というデータ圧縮率が実現された。1,2.および
3ニブル圧縮コード法によれば30〜40%の圧縮が実
現されると考えられるが、これに繰り返しキャラクタ列
法を加えれば、さらに2〜10%のファイルサイズ圧縮
が実現される。
なお、本発明の好適実施例は例示的に説明したものであ
り、当業者には明らかなように、特許請求の範囲を逸脱
せずに他の変更形態も可能である。
また、上述した好適実施例において、各々データを表現
る、ために使用されるアルファベットのキャラクタの位
賀の16進表記と、符号化された圧縮データを表現る、
ために使用される16進圧縮コードとを示す第工表〜第
■表は、以下に添付しであるので、それを参照されたい
【図面の簡単な説明】
第1図は、本発明の好適データ圧縮方法および装置を使
用したデータ通信応用例を示す概略図、第2図は、好適
データ圧縮方法をモデムにおいて実現した場合のマイク
ロコンピュータを基本とした回路を示す概略プロツク図
、 第3図〜第16図は、各々本発明の方法に基づいて圧縮
したデータ流れの例と圧縮動作における各時点での符号
化テーブルとを示す図。 第17 (A)図〜第17(E)図は、本発明に基づ(
繰り返しキャラクタの圧縮方法を示す図である。 T1・・・符号テーブル T2・・・復合化テーブル 10.15・・・モデム 12・・・電話回線 20・・・データ圧縮回路 22・・・モデム/コンピュータインタフェース、回路 23・・・回線 24・・・モデム/電話インターフェース回路25・・
・データバス 27.28・・・制御レジスタ 30・・・マイクロコンピュータ 31・・・プログラムメモリ 32・・・アドレスバス 33・・・プログラマブルタイマ・カウンタ回路35・
・・RAM

Claims (1)

  1. 【特許請求の範囲】 1、(1)アルファベットの各キャラクタに対応づけら
    れており幾つかが他よりも短く設定されている複数のデ
    ジタルコードを有する符号化テーブルを提供し、 (2)前記アルファベットの1キャラクタで表されるデ
    ータ項目を符号化のために提供し、 (3)前記提供されたデータ項目に応じて、前記提供さ
    れたデータ項目が示す前記アルファベットの特定のキャ
    ラクタに対応するコードを前記符号化テーブルから選択
    し、 (4)前記選択されたコードを出力として提供し、(5
    )符号化用に提供される複数のアルファベットキャラク
    タにおける各キャラクタの出現頻度の関数として前記符
    号化テーブルにおけるアルファベットキャラクタとコー
    ドとの対応関係を周期的に調整する各段階を備え、 符号化用に提供される複数のキャラクタにおける各キャ
    ラクタの出現頻度の変化に応じて、より出現頻度の高い
    キャラクタを前記符号化テーブル中のより短いコードに
    対応させる、動的データ圧縮方法。 2、(1)前記符号化テーブルと同様の方法においてア
    ルファベットの各キャラクタに対応づけられており幾つ
    かが他よりも短く設定されている複数のデジタルコード
    を有する復号化テーブルを前記圧縮用の符号化テーブル
    と並列に提供し、 (2)前記デジタルコードの一つによって表される符号
    化されたデータの項目を復号用に提供し、(3)前記提
    供された符号化されたデータ項目に応じて、前記符号化
    されたデータ項目が示す特定のデジタルコードに対応す
    るキャラクタを前記復号化テーブルから選択し、 (4)前記選択されたキャラクタを復号化出力として提
    供し、 (5)復号化用に提供される複数のアルファベットキャ
    ラクタにおける各キャラクタの出現頻度の関数として前
    記復号化テーブルにおけるアルファベットキャラクタと
    コードとの対応関係を周期的に調整する各段階を備え、 復号化用に提供される複数のキャラクタにおける各キャ
    ラクタの出現頻度の変化に応じて、より出現頻度の高い
    キャラクタを前記符号化テーブルと並列の前記復号化テ
    ーブル中のより短いコードに対応させる、請求項1に記
    載の方法によって圧縮されたデータを復元するデータ復
    元方法。 3、前記アルファベットキャラクタと対応コードとが初
    期順序の配列に配置され、より短いコードが前記配列の
    開始端側に配置され、より長いコードが前記配列の終端
    側に配置され、符号化テーブルにおけるアルファベット
    キャラクタとコードとの対応関係を周期的に調整する前
    記段階が、(6)各アルファベットキャラクタのカウン
    ト数を維持し、 (7)符号化用に提供されたデータ項目の表す特定のキ
    ャラクタのコードを前記符号化テーブルから選択した後
    に該キャラクタのカウント数を増分させ、 (8)前記カウント数を増分した後に、当該特定のキャ
    ラクタのカウント数と、前記配列中においてより短いコ
    ードに対応する位置にあると見なされる所定のキャラク
    タのカウント数とを比較し、(9)前記特定のキャラク
    タのカウント数が、前記所定のキャラクタのカウント数
    よりも大きければ、前記配列中における符号化直後の前
    記特定のキャラクタと前記所定のキャラクタとの相対位
    置を交換し、より大きなカウント数を有するキャラクタ
    を前記配列中のより短いコードに対応する位置に対応づ
    ける、請求項1に記載の方法。 4、前記配列中において、前記所定のキャラクタが前記
    特定のキャラクタから前記配列の開始端方向の所定数の
    各位置に配置される、請求項3に記載の方法。 5、前記所定数の各位置が16箇所である、請求項4に
    記載の方法。 6、前記符号化テーブルが複数セットのデジタルコード
    を備え、前記デジタルコードの長さは各セット内におい
    て同一の所定長さであるが各セット間において長さが異
    なり、アルファベットキャラクタに対応する初期順序の
    配列においては、短いコードのセットが前記配列の開始
    端側に配置され、長いコードのセットが前記配列の終端
    側に配置される、請求項1に記載の方法。 7、前記各セットが当初は所定のサイズに設定され、前
    記各セットのサイズを周期的に調整する段階をさらに備
    えることにより、前記各セットのデジタルコードによっ
    て表されるキャラクタの数を、符号化用に提供されるデ
    ータ中のキャラクタの出現頻度の関数として変化させる
    、請求項6に記載の方法。 8、前記各セットのサイズを周期的に調整する段階が、 (1)連続するキャラクタからなる所定グループについ
    て、各グループの各キャラクタのカウント数を合計して
    複数のグループカウント数を提供し、(2)前記配列の
    終端側のグループのカウント数と、前記配列の開始端側
    のキャラクタのカウント数とを比較し、 (3)前記グループのカウント数と前記キャラクタのカ
    ウント数とが最も短いデジタルコードのセットの終端に
    おいて一致するまで、前記最も短いデジタルコードのセ
    ットのサイズを拡大し、 前記グループのカウント数に関係する各キャラクタの出
    現確率よりも高い出現確率を有するキャラクタのより多
    くが前記最も短いデジタルコードのセットに対応づけら
    れるように、該最も短いデジタルコードのセットのサイ
    ズを拡大する、請求項7に記載の方法。 9、少なくとも3セットのデジタルコードがあり、最も
    長いデジタルコードのセットのサイズが前記グループの
    サイズの増分に伴って増加し、最も短いコードのセット
    のサイズが単一のキャラクタの増分に伴って増加する、
    請求項8に記載の方法。 10、前記最も短いデジタルコードのセットのサイズが
    要素数0〜15の範囲で変化する、請求項9に記載の方
    法。 11、前記最も長いデジタルコードのセットのサイズが
    要素数0〜240の範囲で変化する、請求項9に記載の
    方法。 12、前記最も短いデジタルコードが4ビットであり前
    記最も長いデジタルコードが12ビットである、請求項
    9に記載の方法。 13、前記最も短いデジタルコードのセットの要素数が
    当初において4であり、前記最も長いデジタルコードの
    セットの要素数が当初において64である、請求項9に
    記載の方法。 14、前記各セットのサイズを周期的に調整する段階が
    、符号化用に提供される所定数のデータ項目の出現後に
    繰り返される、請求項8に記載の方法。 15、前記各セットのサイズを周期的に調整する段階に
    おける前記所定数が128である、請求項14に記載の
    方法。 16、前記連続キャラクタの所定グループの各グループ
    が16キャラクタからなる、請求項8に記載の方法。 17、前記各セットのサイズを周期的に調整する段階が
    、符号化用に提供されるデータの各に項目ごとに実行さ
    れる、請求項7に記載の方法。 18、前記にが128である、請求項17に記載の方法
    。 19、アルファベット中にn個のキャラクタが含まれ、
    前記最も短いデジタルコードのセットの要素数がaであ
    り、前記最も長いデジタルコードのセットの要素数がc
    であり、前記各セットのサイズを周期的に調整する段階
    が、 (i)各々がmキャラクタを含む連続するグループにお
    いて、各グループ内のキャラクタのカウント数を合計す
    ることによりn/m個の複数のグループカウント数を提
    供し、 (ii)グループ(n/m)−i−1のグループカウン
    ト数とキャラクタjのカウント数とを比較し(iはゼロ
    から始まるグループカウント数の整数の指標、jは前記
    配列の開始端においてゼロから始まる配列中の整数の指
    標)、 (iii)グループ(n/m )−i−1のグループカ
    ウント数がキャラクタjのカウント数よりも小さければ
    、iおよびjを増分して前記第(ii)段階に戻り、 (iv)グループ(n/m)−i−1のグループカウン
    ト数がキャラクタjのカウント数よりも大きいか等しけ
    れば、最も短いデジタルコードの数をj+1とし、最も
    長いデジタルコードの数をc=(n/m)x(i+1)
    とすることによって、a=j+1の符号化レベルを確立
    し、これによってaおよびcの相対数を変化させる、請
    求項7に記載の方法。 20、前記最も短いデジタルコードと前記最も長いデジ
    タルコードとの間のサイズを有するデジタルコードに対
    応づけられるキャラクタのセットであって、該セットの
    要素数がbであり、b=n−(j+1)−((n/m)
    x(i+1))であるような該キャラクタセットを含む
    、請求項19に記載の方法。 21、アルファベットの各キャラクタに対応づけられて
    おり幾つかが他よりも短く設定されている複数のデジタ
    ルコードを有する符号化テーブルを格納するメモリ手段
    と、 前記アルファベットの1キャラクタで表されるデータ項
    目を符号化のために受け取る手段と、前記提供されたデ
    ータ項目に応じて、前記提供されたデータ項目が示す前
    記アルファベットの特定のキャラクタに対応するコード
    を前記符号化テーブルから選択する手段と、 前記選択されたコードを出力として提供する出力手段と
    、 符号化用に提供される複数のアルファベットキャラクタ
    における各キャラクタの出現頻度の関数として前記符号
    化テーブルにおけるアルファベットキャラクタとコード
    との対応関係を周期的に調整するコード/キャラクタ対
    応関係調整手段とを備え、 符号化用に提供される複数のキャラクタにおける各キャ
    ラクタの出現頻度の変化に応じて、より出現頻度の高い
    キャラクタを前記符号化テーブル中のより短いコードに
    対応させる、動的データ圧縮装置。 22、前記符号化テーブルと同様の方法においてアルフ
    ァベットの各キャラクタに対応づけられており幾つかが
    他よりも短く設定されている複数のデジタルコードを有
    する復号化テーブルを前記圧縮用の符号化テーブルと並
    列に格納する第2のメモリ手段と、 前記デジタルコードの一つによって表される符号化され
    たデータの項目を復号用に受け取る手段と、 前記提供された符号化されたデータ項目に応じて、前記
    符号化されたデータ項目が示す特定のデジタルコードに
    対応するキャラクタを前記復号化テーブルから選択する
    手段と、 前記選択されたキャラクタを復号化出力として提供する
    手段と、 復号化用に提供される複数のアルファベットキャラクタ
    における各キャラクタの出現頻度の関数として前記復号
    化テーブルにおけるアルファベットキャラクタとコード
    との対応関係を周期的に調整する手段とを備え、 復号化用に提供される複数のキャラクタにおける各キャ
    ラクタの出現頻度の変化に応じて、より出現頻度の高い
    キャラクタを前記符号化テーブルと並列の前記復号化テ
    ーブル中のより短いコードに対応させる、請求項21に
    記載の装置によって圧縮されたデータを復元するデータ
    復元装置。 23、前記アルファベットキャラクタと対応コードとが
    初期順序の配列において前記メモリ手段内に配置され、
    より短いコードが前記配列の開始端側に配置され、より
    長いコードが前記配列の終端側に配置され、前記調整手
    段が前記メモリ手段に格納された符号化テーブルにおけ
    るアルファベットキャラクタとコードとの対応関係を周
    期的に調整し、さらに、 前記メモリ手段内の各アルファベットキャラクタのカウ
    ント数を維持する手段と、 符号化用に提供されたデータ項目の表す特定のキャラク
    タのコードを前記符号化テーブルから選択した後に該キ
    ャラクタのカウント数を増分させる手段と、 前記カウント数を増分した後に、当該特定のキャラクタ
    のカウント数と、前記配列中においてより短いコードに
    対応する位置にあると見なされる所定のキャラクタのカ
    ウント数とを比較する手段と、 前記特定のキャラクタのカウント数が、前記所定のキャ
    ラクタのカウント数よりも大きければ、前記配列中にお
    ける符号化直後の前記特定のキャラクタと前記所定のキ
    ャラクタとの相対位置を交換することにより、より大き
    なカウント数を有するキャラクタを前記配列中のより短
    いコードに対応する位置に対応づける手段とを備える、
    請求項21に記載の装置。 24、前記配列中において、前記所定のキャラクタが前
    記特定のキャラクタから前記配列の開始端方向の所定数
    の各位置に配置される、請求項23に記載の装置。 25、前記所定数の各位置が16箇所である、請求項2
    4に記載の装置。 26、前記符号化テーブルが複数セットのデジタルコー
    ドを備え、前記デジタルコードの長さは各セット内にお
    いて同一の所定長さであるが各セット間において長さが
    異なり、前記メモリ手段内でのアルファベットキャラク
    タに対応する初期順序の配列においては、短いコードの
    セットが前記配列の開始端側に配置され、長いコードの
    セットが前記配列の終端側に配置される、請求項21に
    記載の装置。 27、前記各セットが当初は所定のサイズに設定され、
    前記各セットのサイズを周期的に調整する手段をさらに
    備え、前記各セットのデジタルコードによって表される
    キャラクタの数を、符号化用に提供されるデータ中のキ
    ャラクタの出現頻度の関数として変化させる、請求項2
    6に記載の装置。 28、前記各セットのサイズを調整する手段が、連続す
    るキャラクタからなる所定グループについて、各グルー
    プの各キャラクタのカウント数を合計して複数のグルー
    プカウント数を提供する手段と、 前記配列の終端側のグループのカウント数と、前記配列
    の開始端側のキャラクタのカウント数とを比較する手段
    と、 前記グループのカウント数と前記キャラクタのカウント
    数とが最も短いデジタルコードのセットの終端において
    一致するまで、前記最も短いデジタルコードのセットの
    サイズを拡大する手段とを備え、 前記グループのカウント数に関係する各キャラクタの出
    現確率よりも高い出現確率を有するキャラクタのより多
    くが、前記最も短いデジタルコードのセットに対応づけ
    られるように、該最も短いデジタルコードのセットのサ
    イズを拡大する、請求項27に記載の装置。 29、少なくとも3セットのデジタルコードがあり、最
    も長いデジタルコードのセットのサイズが前記グループ
    のサイズの増分に伴って増加し、最も短いコードのセッ
    トのサイズが単一のキャラクタの増分に伴って増加する
    、請求項28に記載の装置。 30、前記最も短いデジタルコードのセットのサイズが
    要素数0〜15の範囲で変化する、請求項29に記載の
    装置。 31、前記最も長いデジタルコードのセットのサイズが
    要素数0〜240の範囲で変化する、請求項29に記載
    の装置。 32、前記最も短いデジタルコードが4ビットであり前
    記最も長いデジタルコードが12ビットである、請求項
    29に記載の装置。 33、前記最も短いデジタルコードのセットの要素数が
    当初において4であり、前記最も長いデジタルコードの
    セットの要素数が当初において64である、請求項29
    に記載の装置。 34、前記各セットのサイズを調整する手段が、符号化
    用に提供される所定数のデータ項目の出現後に動作する
    、請求項28に記載の装置。 35、前記各セットのサイズを調整する上での前記所定
    数が128である、請求項34に記載の装置。 36、前記連続キャラクタの所定グループの各グループ
    が16キャラクタからなる、請求項28に記載の装置。 37、前記各セットのサイズを調整する手段が、符号化
    用に提供されるデータの各に項目ごとに動作する、請求
    項27に記載の装置。 38、前記kが128である、請求項37に記載の装置
    。 39、アルファベット中にn個のキャラクタが含まれ、
    前記最も短いデジタルコードのセットの要素数がaであ
    り、前記最も長いデジタルコードのセットの要素数がc
    であり、前記各セットのサイズを調整する手段が、 各々がmキャラクタを含む連続するグループにおいて、
    各グループ内のキャラクタのカウント数を合計すること
    によりn/m個の複数のグループカウント数を提供する
    手段と、 グループ(n/m)−i−1のグループカウント数とキ
    ャラクタjのカウント数とを比較する手段と(iはゼロ
    から始まるグループカウント数の整数の指標、jは前記
    配列の開始端においてゼロから始まる配列中の整数の指
    標)、 グループ(n/m)−i−1のグループカウント数がキ
    ャラクタjのカウント数よりも小さければ、iおよびj
    を増分して前記比較手段に制御を戻す手段と、 グループ(n/m)−i−1のグループカウント数がキ
    ャラクタjのカウント数よりも大きいか等しければ、最
    も短いデジタルコードの数をj+1とし、最も長いデジ
    タルコードの数をc=(n/m)x(i+1)とする手
    段とを備えることによつてaおよびcの相対数を変化さ
    せる、請求項27に記載の装置。 40、前記最も短いデジタルコードと前記最も長いデジ
    タルコードとの間のサイズを有するデジタルコードに対
    応づけられるキャラクタのセットであって、該セットの
    要素数がbであり、b=n−(j+1)−((n/m)
    x(i+1))であるような該キャラクタセットを含む
    、請求項39に記載の装置。 41、前記装置がモデムに使用される、請求項21に記
    載の装置。 42、前記データを受け取る手段と、前記コードを選択
    する手段と、前記出力手段と、前記コード/キャラクタ
    対応関係調整手段とが、プログラムされたマイクロコン
    ピュータによつて構成される、請求項21に記載の装置
    。 43、(1)0〜nの範囲の情報を表現するために使用
    されるn個のキャラクタを含むアルファベットを提供し
    、 (2)前記n個のキャラクタを初期順序の配列に配置し
    、 (3)前記n個のキャラクタを符号化するために使用さ
    れるzビットコードのセットを提供し、前記コードの幾
    つかは他よりも長いビット長を有するようにし、短いコ
    ードは前記配列の開始端側の位置に対応づけ、長いコー
    ドは前記配列の終端側に対応づけ、 (4)前記アルファベットのキャラクタによって表現さ
    れる順次入力情報の流れを前記コードで符号化するため
    に提供し、 (5)前記順次入力情報の流れの各項目xに対して、(
    i)前記項目xに対応するキャラクタの前記配列中にお
    ける相対位置の関数として1個のzビットコードを前記
    コードセットから選択し、それを出力として提供し、 (ii)前記順次入力情報の流れの前記特定の項目xを
    表現する前記アルファベットのキャラクタのカウント数
    CCを増分し、 (iii)前記キャラクタのカウント数CCと、前記配
    列内の開始端側の所定範囲内の各キャラクタのカウント
    数とを比較し、 (iv)前記比較の結果、前記キャラクタのカウント数
    CCが前記所定範囲内の1キャラクタのカウント数より
    大きいか等しければ、前記項目xに対応する前記キャラ
    クタと前記所定範囲内において前記等しいか小さいカウ
    ント数を有するキャラクタとの前記配列内での相対位置
    を交換する各段階を備え、 前記入力情報の流れにおけるキャラクタの出現頻度が変
    化するのに伴い、より出現頻度の高いキャラクタを前記
    配列の開始端方向に移動させて前記短いコードに対応づ
    ける、モデム等の直列/順次データ送信装置に特に有用
    な動的可変データ圧縮方法。 44、前記アルファベット中における第1の所定数aの
    キャラクタに第1のコードを対応させ、第2の所定数b
    のキャラクタに第2のコードを対応させ、前記第1のコ
    ードは前記第2のコードよりも短く、さらに前記入力情
    報の流れにおける各キャラクタの出現頻度の関数として
    前記aおよびbの相対数を調整する段階を備える、請求
    項43に記載の方法。 45、前記zが少なくとも4である、請求項43に記載
    の方法。 46、前記zが4、8、12から選択される、請求項4
    3に記載の方法。 47、請求項43に記載の方法がモデムにおいて通信回
    線を介して圧縮データを送信するために実行され、請求
    項43に記載の方法によって圧縮されたデータを復元す
    るために前記通信回線の他端において実行される方法を
    さらに備え、該他端において実行される方法が、 (1)請求項43の複製であるnd個のキャラクタを含
    む第2のアルファベットを提供し、 (2)前記nd個のキャラクタを請求項43の配列と同
    一である初期順序の配列に配置し、 (3)前記コードで符号化された順次データの流れを受
    信し、 (4)前記第2のアルファベット中において前記コード
    に対応するキャラクタを参照し、 (5)前記コードに対応するキャラクタを出力として提
    供し、 (6)請求項43の第(5)(ii)〜(iv)段階と
    同様の方法において、前記第2のアルファベットの配列
    の順序を維持する各段階を備え、 前記符号化される入力情報の流れにおけるキャラクタの
    出現頻度が変化するのに伴い、前記符号化用の配列と並
    列に、前記第2のアルファベット中のより出現頻度の高
    い対応キャラクタを前記復号化用の配列の開始端方向に
    移動させる、請求項43に記載の方法。 48、(1)0〜nの範囲の情報を表現するために使用
    されるn個のキャラクタを含むアルファベットを提供し
    、 (2)前記n個のキャラクタを初期順序の配列に配置し
    、 (3)前記n個のキャラクタのうち第1の所定数aのキ
    ャラクタを符号化するために使用されるpビットコード
    の第1のコードセットを提供し、前記n個のキャラクタ
    のうち第2の所定数bのキャラクタを符号化するために
    使用されるqビットコードの第2のコードセットを提供
    し、前記n個のキャラクタのうち第3の所定数cのキャ
    ラクタを符号化するために使用されるrビットコードの
    第3のコードセットを提供し、a+b+c=nとし、(
    4)前記アルファベットのキャラクタによって表現され
    る順次入力情報の流れを前記p、q、およびrビットコ
    ードで符号化するために提供し、(5)前記順次入力情
    報の流れの各項目xに対して、(i)前記項目xに対応
    するキャラクタの前記配列中における相対位置の関数と
    して1個のzビットコード(2はp、q、またはrであ
    る)を前記コードセットから選択し、それを出力として
    提供し、(ii)前記順次入力情報の流れの前記特定の
    項目xを表現する前記アルファベットのキャラクタのカ
    ウント数CCを増分し、 (iii)前記キャラクタのカウント数CCと、前記配
    列内の開始端側のd箇所(dはnよりも小さい所定数)
    までの所定範囲内の各キャラクタのカウント数とを比較
    し、 (iv)前記比較の結果、前記キャラクタのカウント数
    CCが前記所定範囲内の1キャラクタのカウント数より
    大きいか等しければ、前記項目xに対応する前記キャラ
    クタと前記所定範囲内において前記等しいか小さいカウ
    ント数を有するキャラクタとの前記配列内での相対位置
    を交換し、 (6)前記順次入力情報の流れのkキャラクタごとに、 (i)各々がmキャラクタを含む連続するグループにお
    いて、各グループ内のキャラクタのカウント数を合計す
    ることによりn/m個の複数のグループカウント数を提
    供し、 (ii)グループ(n/m)−i−1のグループカウン
    ト数とキャラクタjのカウント数とを比較し(iはゼロ
    から始まるグループカウント数の整数の指標、jは前記
    配列の開始端においてゼロから始まる配列中の整数の指
    標)、 (iii)グループ(n/m)−i−1のグループカウ
    ント数がキャラクタjのカウント数よりも小さければ、
    iおよびjを増分して前記第6(ii)段階に戻り、 (iv)グループ(n/m)−i−1のグループカウン
    ト数がキャラクタjのカウント数よりも大きいか等しけ
    れば、pビットのデジタルコードの数をj+1とし、r
    ビットのデジタルコードの数をc=(n/m)x(i+
    1)とし、qビットのデジタルコードの数をb=n−(
    j+1)−((n/m)x(i+1))としてa=j+
    1の符号化レベルを確立することによりa、b、および
    cの相対数によって表される符号化レベルを変更する各
    段階を備える、モデム等の直列/順次データ送信装置に
    特に有用な動的可変データ圧縮方法。 49、前記アルファベットがASCIIキャラクタセッ
    トからなり前記nが256である、請求項48に記載の
    方法。 50、前記各数においてp<q<rである、請求項48
    に記載の方法。 51、前記pが4であり前記qが8であり前記rが12
    である、請求項50に記載の方法。 52、初期化時において前記aが4であり前記bが18
    8であり前記cが64である、請求項48に記載の方法
    。 53、前記dが16である、請求項48に記載の方法。 54、前記kが128である、請求項48に記載の方法
    。 55、前記mが16である、請求項48に記載の方法。 56、請求項48に記載の方法がモデムにおいて通信回
    線を介して圧縮データを送信するために実行され、請求
    項48に記載の方法によって圧縮されたデータを復元す
    るために前記通信回線の他端において実行される方法を
    さらに備え、該他端において実行される方法が、 (1)請求項48の複製であるnd個のキャラクタを含
    む第2のアルファベットを提供し、 (2)前記nd個のキャラクタを請求項48の配列と同
    一である初期順序の配列に配置し、 (3)前記nd個のキャラクタのうち第1の所定数ad
    のキャラクタを符号化するために使用されるpdビット
    コードの第1のコードセットを提供し、前記nd個のキ
    ャラクタのうち第2の所定数bdのキャラクタを符号化
    するために使用されるqdビットコードの第2のコード
    セットを提供し、前記nd個のキャラクタのうち第3の
    所定数cdのキャラクタを符号化するために使用される
    rdビットコードの第3のコードセットを提供し、pd
    <qd<rdとし、pd、qd、およびrdは符号化段
    階におけるp、q、およびrに対応させ、ad、bd、
    およびcdは符号化段階におけるa、b、およびcに対
    応させ、 (4)前記通信回線を介して前記p、q、およびrビッ
    トコードのzビットコードで符号化された順次データの
    流れを受信し、 (5)前記順次データの流れの各項目xに対して、(i
    )前記項目xを表すzビットコードと前記第2のアルフ
    ァベットのndキャラクタに対応する各コードとの間に
    一致を探し、 (ii)前記第2のアルファベットのndキャラクタの
    うち前記項目xを表すコードに対応する1個を復元出力
    として提供し、 (iii)前記順次入力情報の流れの前記特定の項目x
    を表現する前記第2のアルファベットのキャラクタのカ
    ウント数CCdを増分し、 (iv)前記キャラクタのカウント数CCdと、前記第
    2のアルファベットの配列内の開始端側のdd箇所(d
    dは前記符号化方法におけるdに対応)までの所定範囲
    内の各キャラクタのカウント数とを比較し、 (v)前記比較の結果、前記キャラクタのカウント数C
    Cdが前記第2のアルファベットの所定範囲内の1キャ
    ラクタのカウント数より大きいか等しければ、前記項目
    xに対応する前記キャラクタと前記所定範囲内において
    前記等しいか小さいカウント数を有するキャラクタとの
    前記配列内での相対位置を交換し、 (6)前記順次データの流れのkdキャラクタ(kdは
    前記符号化方法におけるkに対応)ごとに、(i)各々
    がmdキャラクタ(mdは前記符号化方法におけるmに
    対応)を含む連続するグループにおいて、各グループ内
    のキャラクタのカウント数を合計することによりnd/
    md個の複数のグループカウント数を提供し、 (ii)グループ(nd/md)−i−1のグループカ
    ウント数とキャラクタjのカウント数とを比較し(iは
    ゼロから始まるグループカウント数の整数の指標、jは
    前記配列の開始端においてゼロから始まる配列中の整数
    の指標)、 (iii)グループ(nd/md)−i−1のグループ
    カウント数がキャラクタjのカウント数よりも小さけれ
    ば、iおよびjを増分して前記第6(ii)段階に戻り
    、 (iv)グループ(nd/md)−i−1のグループカ
    ウント数がキャラクタjのカウント数よりも大きいか等
    しければ、pdビットのデジタルコードの数をj+1と
    し、rdビットのデジタルコードの数をcd=(nd/
    md)x(i+1)とし、qdビットのデジタルコード
    の数をbd=nd−(j+1)−((nd/md)x(
    i+1))としてad=j+1の符号化レベルを確立す
    ることによりad、bd、およびcdの相対数によって
    表される復号化レベルを変更する各段階を備える、請求
    項48に記載の方法。 57、(1)アルファベットの各キャラクタに対応づけ
    られており幾つかが他よりも短く設定されている複数の
    デジタルコードがコード長の短い順に配置された初期順
    序の配列を有する符号化テーブルを提供し、 (2)前記アルファベットの1キャラクタで表されるデ
    ータ項目を符号化のために提供し、 (3)前記提供されたデータ項目に応じて、前記提供さ
    れたデータ項目が示す前記アルファベットの特定のキャ
    ラクタに対応するコードを前記符号化テーブルから選択
    し、 (4)前記選択されたコードを出力として提供し、(5
    )前記提供されたデータ項目にさらに応じて、前記提供
    されたデータに対応するキャラクタの出現確率の統計記
    録を維持し、 (6)前記提供されたデータ項目にさらに応じて、前記
    提供されたデータ項目を表すキャラクタの配列内の位置
    と、それより低い出現確率を有する1キャラクタの配列
    内の位置とを交換し、より出現頻度の高いキャラクタを
    前記配列内のより短いコードに対応していると見なされ
    る位置に移動させる、動的調整データ圧縮方法。 58、前記デジタルコードが複数のコードセットとして
    配置され、出現確率の高いキャラクタに対応づけられる
    セットのコードは出現確率の低いキャラクタに対応づけ
    られるセットのコードより少ないビット数を有し、前記
    各セットに対応づけられる各キャラクタの出現確率の大
    きさの関数として前記各セットのサイズを周期的に調整
    する段階をさらに備え、出現確率の高いキャラクタを最
    も短いコードを有するコードセットに対応させる、請求
    項57に記載の方法。 59、(1)前記符号化テーブルと同様の方法において
    アルファベットの各キャラクタに対応づけられており幾
    つかが他よりも短く設定されている複数のデジタルコー
    ドがコード長の短い順に配置された初期順序の配列を有
    する復号化テーブルを前記圧縮用の符号化テーブルと並
    列に提供し、(2)前記デジタルコードの一つによって
    表される符号化されたデータの項目を復号用に提供し、
    (3)前記提供された符号化されたデータ項目に応じて
    、前記符号化されたデータ項目が示す特定のデジタルコ
    ードに対応するキャラクタを前記復号化テーブルから選
    択し、 (4)前記選択されたキャラクタを復号化出力として提
    供し、 (5)前記提供された符号化されたデータ項目にさらに
    応じて、前記復号されたキャラクタの出現確率の統計記
    録を維持し、 (6)前記提供された符号化されたデータ項目にさらに
    応じて、前記復号されたキャラクタの復号化配列内の位
    置と、それより低い出現確率を有する1キャラクタの復
    号化配列内の位置とを交換し、より出現頻度の高いキャ
    ラクタを前記配列内のより短いコードに対応していると
    見なされる位置に移動させる、請求項57の方法によっ
    て圧縮されたデータを復元するためのデータ復元方法。 60、m個の繰り返しキャラクタの列を有する入力デー
    タ列を圧縮するに当り、 (1)繰り返しキャラクタの所定数n回の出現を検出す
    ることによって繰り返し状態に入り、 (2)前記所定数nの繰り返しキャラクタを表すデータ
    を送信し、 (3)前記第(2)段階の直後に、前記繰り返しキャラ
    クタの前記n回に続く出現回数o(n+o=m)を表す
    符号化された第1の記号を送信する、モデムによって通
    信回線を介してデータを送信するために特に有用な圧縮
    方法。 61、前記所定数nが3である、請求項60に記載の方
    法。 62、(1)繰り返しキャラクタの所定数n回の出現を
    検出することによって受信データ内に繰り返し状態を検
    出し、 (2)前記所定数nの繰り返しキャラクタを表す復号さ
    れたn個のキャラクタを提供し、 (3)前記n個の繰り返しキャラクタに続いて、前記繰
    り返しキャラクタの前記n回に続く出現回数o(n+o
    =m)を表す前記符号化された記号を受信し、 (4)前記n個のキャラクタの後に復号されたo個のキ
    ャラクタを提供する、請求項60の方法によって圧縮さ
    れたデータを復元する方法。 63、前記第1の記号が0と所定数pとの間のキャラク
    タ数を表す、請求項60に記載の方法。 64、前記第1の記号がpである場合、前記p個に続く
    繰り返しキャラクタの追加の出現回数を表す第2の符号
    化された記号を提供する段階をさらに備える、請求項6
    3に記載の方法。 65、前記pが15である、請求項63に記載の方法。
JP63038766A 1987-02-24 1988-02-23 適応データ圧縮方法および装置 Pending JPH01125028A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/018,340 US4862167A (en) 1987-02-24 1987-02-24 Adaptive data compression method and apparatus
US018,340 1987-02-24

Publications (1)

Publication Number Publication Date
JPH01125028A true JPH01125028A (ja) 1989-05-17

Family

ID=21787423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63038766A Pending JPH01125028A (ja) 1987-02-24 1988-02-23 適応データ圧縮方法および装置

Country Status (6)

Country Link
US (1) US4862167A (ja)
EP (1) EP0283735A3 (ja)
JP (1) JPH01125028A (ja)
AU (1) AU8208287A (ja)
CA (1) CA1318035C (ja)
DE (1) DE283735T1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0317731A (ja) * 1989-06-15 1991-01-25 Nec Corp データ圧縮回路
JP2002533006A (ja) * 1998-12-14 2002-10-02 マイクロソフト コーポレイション 可変長対可変長エントロピー符号化
US9172965B2 (en) 2008-05-02 2015-10-27 Microsoft Technology Licensing, Llc Multi-level representation of reordered transform coefficients
US9390720B2 (en) 2002-09-04 2016-07-12 Microsoft Technology Licensing, Llc Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4933883A (en) * 1985-12-04 1990-06-12 International Business Machines Corporation Probability adaptation for arithmetic coders
US5146221A (en) * 1989-01-13 1992-09-08 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
US5188930A (en) * 1989-10-18 1993-02-23 Idemitsu Kosan Co., Ltd. Photographic film of syndiotactic styrene polymer
FR2660088B1 (fr) * 1990-03-26 1992-06-26 Arditti David Dispositif de condensation de donnees numeriques.
JPH0828756B2 (ja) * 1990-04-17 1996-03-21 ヤマハ株式会社 データ転送方法
JPH0479421A (ja) * 1990-07-18 1992-03-12 Toshiba Corp 可変長符号化装置および可変長復号化装置
US5146324A (en) * 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
GB2251097B (en) * 1990-12-08 1995-05-10 Dowty Information Systems An adaptive data compression system
US5838266A (en) * 1990-12-12 1998-11-17 Universal Video Communications Corp. Data processing apparatus and method using data compression
TW223690B (ja) * 1991-02-13 1994-05-11 Ampex
US5337044A (en) * 1991-10-08 1994-08-09 Nomadic Systems, Inc. System for remote computer control using message broadcasting system
US5434623A (en) * 1991-12-20 1995-07-18 Ampex Corporation Method and apparatus for image data compression using combined luminance/chrominance coding
US5264848A (en) * 1992-01-14 1993-11-23 Honeywell Inc. Data compression/decompression with aliasing error reduction
US5339108A (en) * 1992-04-09 1994-08-16 Ampex Corporation Ordering and formatting coded image data and reconstructing partial images from the data
US5325091A (en) * 1992-08-13 1994-06-28 Xerox Corporation Text-compression technique using frequency-ordered array of word-number mappers
JP3007235B2 (ja) * 1992-11-10 2000-02-07 富士写真フイルム株式会社 可変長符号の伸長装置および圧縮伸長装置
US5357250A (en) * 1992-11-20 1994-10-18 International Business Machines Corporation Adaptive computation of symbol probabilities in n-ary strings
US6213895B1 (en) * 1997-03-28 2001-04-10 Spalding Sports Worldwide, Inc. Dual cores for golf balls
JPH07205496A (ja) * 1994-01-14 1995-08-08 Oki Electric Ind Co Ltd ページプリンタ及びデータ圧縮方法
JP3274284B2 (ja) * 1994-08-08 2002-04-15 キヤノン株式会社 符号化装置およびその方法
US5663721A (en) * 1995-03-20 1997-09-02 Compaq Computer Corporation Method and apparatus using code values and length fields for compressing computer data
WO1996033558A1 (en) * 1995-04-18 1996-10-24 Advanced Micro Devices, Inc. Method and apparatus for hybrid vlc bitstream decoding
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
US5872866A (en) * 1995-04-18 1999-02-16 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics
US5864637A (en) * 1995-04-18 1999-01-26 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selective reduction of spatial resolution
US5745392A (en) * 1995-10-05 1998-04-28 Chevron U.S.A. Inc. Method for reducing data storage and transmission requirements for seismic data
JP3276860B2 (ja) * 1996-09-02 2002-04-22 富士通株式会社 データ圧縮/復元方法
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
US6199064B1 (en) * 1996-11-15 2001-03-06 Michael Schindler Method and apparatus for sorting data blocks
GB2321375B (en) * 1997-01-21 2002-02-27 Fujitsu Ltd Data encoding method and apparatus and data decoding method and apparatus
GB2367223B (en) * 1997-01-21 2002-05-15 Fujitsu Ltd Data encoding method and apparatus and data decoding method and apparatus
US5930399A (en) * 1997-04-03 1999-07-27 Microsoft Corporation Data encoding for a communication channel supporting a subset of the characters to be transmitted
US5831561A (en) * 1997-04-29 1998-11-03 Lucent Technologies Inc. System and method for dynamically optimizing a symbol table and modem employing the same
FR2766580B1 (fr) * 1997-07-24 2000-11-17 Inst Francais Du Petrole Methode et systeme de transmission de donnees sismiques a une station de collecte eloignee
US5955976A (en) * 1997-12-02 1999-09-21 Hughes Electronics Corporation Data compression for use with a communications channel
US6075470A (en) * 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor
EP1099124A2 (en) * 1998-07-22 2001-05-16 Geo Energy, Inc. Fast compression and transmission of seismic data
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6223162B1 (en) 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6404931B1 (en) * 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
WO2000038331A1 (en) * 1998-12-22 2000-06-29 Citrix Systems, Inc. An efficient, locally-adaptive data reduction method and apparatus
US6603414B1 (en) * 1999-01-29 2003-08-05 Compaq Computer Corporation Method for digital compression of characters
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143237A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US20050015608A1 (en) * 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173848A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173847A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143199A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US7127525B2 (en) 2000-05-26 2006-10-24 Citrix Systems, Inc. Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism
CN1262972C (zh) * 2000-09-28 2006-07-05 罗克马诺尔研究有限公司 改进的霍夫曼数据压缩方法
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7389527B2 (en) * 2000-10-11 2008-06-17 Broadcom Corporation Cable modem system and method for supporting extended protocols
US7319667B1 (en) 2000-11-15 2008-01-15 Cisco Technology, Inc. Communication system with priority data compression
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US6756922B2 (en) * 2001-05-21 2004-06-29 International Business Machines Corporation Method and system for compression of a set of mostly similar strings allowing fast retrieval
US20030115269A1 (en) * 2001-12-14 2003-06-19 Klug John R. Computer file editing system
US20030115217A1 (en) * 2001-12-14 2003-06-19 Klug John R. System and method for processing edits for a file
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US7376695B2 (en) 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
JP3900000B2 (ja) * 2002-05-07 2007-03-28 ソニー株式会社 符号化方法及び装置、復号方法及び装置、並びにプログラム
US7103608B1 (en) * 2002-05-10 2006-09-05 Oracle International Corporation Method and mechanism for storing and accessing data
US7058783B2 (en) * 2002-09-18 2006-06-06 Oracle International Corporation Method and mechanism for on-line data compression and in-place updates
EP1620951A4 (en) * 2003-05-08 2006-06-21 Sap Portals Israel Ltd APPARATUS AND METHOD FOR COMPRESSION MESSAGING WITH CONFIGURATION CONTROL
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US7941311B2 (en) * 2003-10-22 2011-05-10 Microsoft Corporation System and method for linguistic collation
US7684627B2 (en) * 2004-09-29 2010-03-23 Intel Corporation Techniques for image decompression
US8024483B1 (en) 2004-10-01 2011-09-20 F5 Networks, Inc. Selective compression for network connections
US7053803B1 (en) * 2005-01-31 2006-05-30 Hewlett Packard Development Company, L.P. Data compression
US8171169B2 (en) 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
CN100584025C (zh) * 2005-08-04 2010-01-20 华为技术有限公司 一种基于内容自适应的算术解码系统及装置
US7783781B1 (en) 2005-08-05 2010-08-24 F5 Networks, Inc. Adaptive compression
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
US8275909B1 (en) 2005-12-07 2012-09-25 F5 Networks, Inc. Adaptive compression
US7882084B1 (en) 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US8565088B1 (en) 2006-02-01 2013-10-22 F5 Networks, Inc. Selectively enabling packet concatenation based on a transaction boundary
US7873065B1 (en) 2006-02-01 2011-01-18 F5 Networks, Inc. Selectively enabling network packet concatenation based on metrics
US9356824B1 (en) 2006-09-29 2016-05-31 F5 Networks, Inc. Transparently cached network resources
WO2008047432A1 (en) * 2006-10-19 2008-04-24 Fujitsu Limited Information retrieval program, recording media having the program recorded therein, information retrieving method, and information retrieving device
US8417833B1 (en) 2006-11-29 2013-04-09 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
US7365659B1 (en) * 2006-12-06 2008-04-29 Silicon Image Gmbh Method of context adaptive binary arithmetic coding and coding apparatus using the same
US8077740B2 (en) * 2007-02-01 2011-12-13 INOVA, Ltd. Apparatus and method for reducing noise in seismic data
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
WO2008142800A1 (ja) * 2007-05-24 2008-11-27 Fujitsu Limited 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法
WO2008142799A1 (ja) * 2007-05-24 2008-11-27 Fujitsu Limited 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
US8031953B2 (en) * 2007-10-18 2011-10-04 Himax Technologies Limited Method and device for encoding image data with a predetermined compression rate in one pass
US7990292B2 (en) * 2008-03-11 2011-08-02 Vasco Data Security, Inc. Method for transmission of a digital message from a display to a handheld receiver
CN102460976B (zh) 2009-05-19 2016-02-10 诺基亚技术有限公司 用于可变长度编码的方法和设备
CN111726117B (zh) * 2019-03-20 2024-07-12 中国石油化工股份有限公司 数字岩心数据并行压缩编码方法及并行解压解码方法
US20230221956A1 (en) * 2022-01-11 2023-07-13 Macronix International Co., Ltd. Memory device and operating method thereof
CN116933734B (zh) * 2023-09-15 2023-12-19 山东济矿鲁能煤电股份有限公司阳城煤矿 盾构机刀具故障智能诊断方法
TWI913077B (zh) * 2024-12-30 2026-01-21 天鈺科技股份有限公司 資料壓縮方法、資料壓縮電路、資料解壓縮方法、資料解壓縮電路及資料處理系統

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS562766A (en) * 1979-06-22 1981-01-13 Hitachi Ltd Data transfer system
JPS61212920A (ja) * 1985-03-13 1986-09-20 ラーカル・データ・コミユニケーシヨンズ・インコーポレーテツド データ圧縮方法およびコード化された圧縮データの受信方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US4706264A (en) * 1983-06-22 1987-11-10 Chung Telecommunications Digital data compression method and means
JPH0828053B2 (ja) * 1983-08-08 1996-03-21 株式会社日立製作所 データ記録方法
US4612532A (en) * 1984-06-19 1986-09-16 Telebyte Corportion Data compression apparatus and method
CA1265250A (en) * 1985-03-04 1990-01-30 Alan Douglas Clark Data transmission
US4748638A (en) * 1985-10-30 1988-05-31 Microcom, Inc. Data telecommunications system and method for transmitting compressed data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS562766A (en) * 1979-06-22 1981-01-13 Hitachi Ltd Data transfer system
JPS61212920A (ja) * 1985-03-13 1986-09-20 ラーカル・データ・コミユニケーシヨンズ・インコーポレーテツド データ圧縮方法およびコード化された圧縮データの受信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0317731A (ja) * 1989-06-15 1991-01-25 Nec Corp データ圧縮回路
JP2002533006A (ja) * 1998-12-14 2002-10-02 マイクロソフト コーポレイション 可変長対可変長エントロピー符号化
US9390720B2 (en) 2002-09-04 2016-07-12 Microsoft Technology Licensing, Llc Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes
US9172965B2 (en) 2008-05-02 2015-10-27 Microsoft Technology Licensing, Llc Multi-level representation of reordered transform coefficients

Also Published As

Publication number Publication date
US4862167A (en) 1989-08-29
EP0283735A3 (en) 1989-09-13
DE283735T1 (de) 1989-04-20
AU8208287A (en) 1988-08-25
CA1318035C (en) 1993-05-18
EP0283735A2 (en) 1988-09-28

Similar Documents

Publication Publication Date Title
JPH01125028A (ja) 適応データ圧縮方法および装置
JP3025301B2 (ja) データ予備圧縮装置及びデータ予備圧縮システム及びデータ圧縮比改善方法
EP0457840B1 (en) Adaptive data compression apparatus for a tape drive system
US5532694A (en) Data compression apparatus and method using matching string searching and Huffman encoding
JP2610084B2 (ja) データ伸長方法および装置ならびにデータ圧縮伸長方法および装置
US5955976A (en) Data compression for use with a communications channel
US5016009A (en) Data compression apparatus and method
US5663721A (en) Method and apparatus using code values and length fields for compressing computer data
US5414425A (en) Data compression apparatus and method
US5396595A (en) Method and system for compression and decompression of data
US6903668B1 (en) Decompression accelerator for flash memory
JP4479530B2 (ja) データ圧縮装置、及びデータ復元装置
JP2863065B2 (ja) マッチングストリング探索およびハフマン符号化を用いたデータ圧縮装置および方法ならびにデータ伸長装置および方法
US5673042A (en) Method of and an apparatus for compressing/decompressing data
JPS61212920A (ja) データ圧縮方法およびコード化された圧縮データの受信方法
JP2010136417A (ja) データ圧縮装置、及びデータ復元装置
JPH0368219A (ja) データ圧縮装置及び方法
EP0903866B1 (en) Method and apparatus for data compression
KR20010006554A (ko) 무손실 데이터 압축을 위한 방법 및 그 장치
US6040790A (en) Method of building an adaptive huffman codeword tree
JPS6068729A (ja) デジタルデ−タ圧縮方法及び装置
EP1266455A1 (en) Method and apparatus for optimized lossless compression using a plurality of coders
US4870662A (en) System and method for compressing transmitted or stored data
US6748520B1 (en) System and method for compressing and decompressing a binary code image
EP0494038A2 (en) Run-length encoding in extensible character sets