JPH08204579A - データ圧縮方法及び装置 - Google Patents
データ圧縮方法及び装置Info
- Publication number
- JPH08204579A JPH08204579A JP7201047A JP20104795A JPH08204579A JP H08204579 A JPH08204579 A JP H08204579A JP 7201047 A JP7201047 A JP 7201047A JP 20104795 A JP20104795 A JP 20104795A JP H08204579 A JPH08204579 A JP H08204579A
- Authority
- JP
- Japan
- Prior art keywords
- data
- character
- characters
- encoding table
- stream
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 データ圧縮を改善するためのリアルタイム方
法を提供する。 【解決手段】 モデム(10)に提供されるデータ文字
間の相関関係が判断される。データ文字間の相関関係を
判断するために、符号化テーブル(16)内のツリー
(6)の形および圧縮率(96)という2つの基準が利
用される。データ文字間の相関関係が2つの基準を利用
して判断されると、符号化テーブル(16)のサイズを
変更できる。データ文字に相関関係がない場合、すなわ
ち、データがランダムまたは擬似乱数であることを意味
する場合、符号化テーブルのサイズは減らされる。デー
タ文字が強い相関関係にある場合、符号化テーブルのサ
イズを変更すると、圧縮できないデータを圧縮しようと
して費やされる時間が削減され、圧縮可能なデータのデ
ータ圧縮が増加する。
法を提供する。 【解決手段】 モデム(10)に提供されるデータ文字
間の相関関係が判断される。データ文字間の相関関係を
判断するために、符号化テーブル(16)内のツリー
(6)の形および圧縮率(96)という2つの基準が利
用される。データ文字間の相関関係が2つの基準を利用
して判断されると、符号化テーブル(16)のサイズを
変更できる。データ文字に相関関係がない場合、すなわ
ち、データがランダムまたは擬似乱数であることを意味
する場合、符号化テーブルのサイズは減らされる。デー
タ文字が強い相関関係にある場合、符号化テーブルのサ
イズを変更すると、圧縮できないデータを圧縮しようと
して費やされる時間が削減され、圧縮可能なデータのデ
ータ圧縮が増加する。
Description
【0001】
【発明の属する技術分野】本発明は、データ圧縮に係
り、更に詳しくは、データ圧縮に当てられる処理時間と
達成されるデータ圧縮の関係を最適化するために、リア
ルタイムでデータ圧縮のための符号化テーブルのサイズ
を監視、調整するリアルタイム適応型データ圧縮方法及
び装置に関する。
り、更に詳しくは、データ圧縮に当てられる処理時間と
達成されるデータ圧縮の関係を最適化するために、リア
ルタイムでデータ圧縮のための符号化テーブルのサイズ
を監視、調整するリアルタイム適応型データ圧縮方法及
び装置に関する。
【0002】
【従来の技術】ストリングをベースにしたデータ圧縮ア
ルゴリズムは、データ・ストリーム内で繰り返し現れる
文字のストリングを識別し、ストリングを短いコードワ
ードで置換することにより動作する。多くのデータ圧縮
用のスキームおよび装置が従来、知られている。もっと
も一般的なデータ圧縮アルゴリズムは、短いコードワー
ドで置換するデータ・ストリーム内の文字の数を最大限
にしようとする。広義には、文字のストリングは「符号
化」テーブル又はライブラリ内に格納される。符号化テ
ーブル内の各ストリングは、コードワードに対応づけら
れている。データ文字のストリームが、符号化テーブル
内のストリングと比較される。データ文字ストリーム内
のデータ文字の一部が符号化テーブルの文字ストリング
と一致すると、コードワードがデータ・ストリーム内の
そのデータ文字のかわりに使われる。符号化テーブル内
の文字ストリングに一致するデータ・ストリームからの
文字数が多いほど、データ圧縮率も高くなる。従って、
符号化テーブル内の文字ストリングが入力されるデータ
に、より一致すればするほど、データ圧縮量も大きくな
る。
ルゴリズムは、データ・ストリーム内で繰り返し現れる
文字のストリングを識別し、ストリングを短いコードワ
ードで置換することにより動作する。多くのデータ圧縮
用のスキームおよび装置が従来、知られている。もっと
も一般的なデータ圧縮アルゴリズムは、短いコードワー
ドで置換するデータ・ストリーム内の文字の数を最大限
にしようとする。広義には、文字のストリングは「符号
化」テーブル又はライブラリ内に格納される。符号化テ
ーブル内の各ストリングは、コードワードに対応づけら
れている。データ文字のストリームが、符号化テーブル
内のストリングと比較される。データ文字ストリーム内
のデータ文字の一部が符号化テーブルの文字ストリング
と一致すると、コードワードがデータ・ストリーム内の
そのデータ文字のかわりに使われる。符号化テーブル内
の文字ストリングに一致するデータ・ストリームからの
文字数が多いほど、データ圧縮率も高くなる。従って、
符号化テーブル内の文字ストリングが入力されるデータ
に、より一致すればするほど、データ圧縮量も大きくな
る。
【0003】おそらく、符号化テーブルをデータ・スト
リームにもっとも一致させるもっとも容易な方法は、伝
送されるデータを符号化テーブル中で事前にスキャンす
ることである。理論的には、これは最適なデータ圧縮ア
ルゴリズムになる。理論的には、伝送対象のデータを事
前にスキャンし、最適スキャニング・アルゴリズムを定
式化することができる。
リームにもっとも一致させるもっとも容易な方法は、伝
送されるデータを符号化テーブル中で事前にスキャンす
ることである。理論的には、これは最適なデータ圧縮ア
ルゴリズムになる。理論的には、伝送対象のデータを事
前にスキャンし、最適スキャニング・アルゴリズムを定
式化することができる。
【0004】しかしながら、変調/復調装置(モデム)
を含んだデータ通信などのリアルタイムの応用では、デ
ータを事前にスキャンし、もっとも効率的なデータ符号
化スキームを設定することは必ずしも可能若しくは望ま
しくない。このようなアプリケーションにおいては、デ
ータの性質が変化し、固定された圧縮スキームでは、非
効率的になったり、有害になったりさえする。したがっ
て、リアルタイムでデータの性質に適応する圧縮スキー
ムが望ましい。
を含んだデータ通信などのリアルタイムの応用では、デ
ータを事前にスキャンし、もっとも効率的なデータ符号
化スキームを設定することは必ずしも可能若しくは望ま
しくない。このようなアプリケーションにおいては、デ
ータの性質が変化し、固定された圧縮スキームでは、非
効率的になったり、有害になったりさえする。したがっ
て、リアルタイムでデータの性質に適応する圧縮スキー
ムが望ましい。
【0005】従来の適応型リアルタイム・データ圧縮方
法の大部分は、符号化装置および復号化装置の両方で動
的に作成されるテーブルに依存している。ベーコン(B
acon)他に付与された、米国特許番号4,612,
532では、データ・ストリーム内の一連の文字が、符
号化装置の動的に作成されるテーブルに従って符号化さ
れ、復号化装置は、符号化されたデータを復号化するた
めの対応するテーブルを作成するように構成され、符号
化されたデータ構造に依存して、復号化テーブルを動的
に作成する。おもに、符号化装置は、データ・ストリー
ム内の所定の文字に続く文字は、所定の確率で、次に続
く文字の候補集合の内の1つであるという仮定に依存し
ている。したがって、符号化装置は、所定の文字に対し
て、だいたいの発生頻度の順で、データ・ストリーム内
で発生する次に続く文字の候補リストが提示されるテー
ブルを作成する。所定の文字がデータ・ストリーム内で
発生し、その後にテーブル内の文字が続くと、符号化装
置は、テーブル内での文字の順序を示す位置に基づいて
テーブル内の文字を表すため、バイナリ・コードを送信
する。このコードは、もっとも頻繁に発生する候補の場
合に最短となり、余り頻繁に発生しない候補の場合は長
くなる。このテーブルは、所定の文字の後に続く文字の
局所的な発生頻度に基づいて作成および更新され、それ
によりテーブルをローカル・データの性質の変化に従っ
て、動的に変更できるようにする。
法の大部分は、符号化装置および復号化装置の両方で動
的に作成されるテーブルに依存している。ベーコン(B
acon)他に付与された、米国特許番号4,612,
532では、データ・ストリーム内の一連の文字が、符
号化装置の動的に作成されるテーブルに従って符号化さ
れ、復号化装置は、符号化されたデータを復号化するた
めの対応するテーブルを作成するように構成され、符号
化されたデータ構造に依存して、復号化テーブルを動的
に作成する。おもに、符号化装置は、データ・ストリー
ム内の所定の文字に続く文字は、所定の確率で、次に続
く文字の候補集合の内の1つであるという仮定に依存し
ている。したがって、符号化装置は、所定の文字に対し
て、だいたいの発生頻度の順で、データ・ストリーム内
で発生する次に続く文字の候補リストが提示されるテー
ブルを作成する。所定の文字がデータ・ストリーム内で
発生し、その後にテーブル内の文字が続くと、符号化装
置は、テーブル内での文字の順序を示す位置に基づいて
テーブル内の文字を表すため、バイナリ・コードを送信
する。このコードは、もっとも頻繁に発生する候補の場
合に最短となり、余り頻繁に発生しない候補の場合は長
くなる。このテーブルは、所定の文字の後に続く文字の
局所的な発生頻度に基づいて作成および更新され、それ
によりテーブルをローカル・データの性質の変化に従っ
て、動的に変更できるようにする。
【0006】別の符号化スキームは、国際電信電話諮問
委員会(「CCITT」)によりV.42bis規格と
して勧告されており、本明細書中に参照により取り入れ
られている。V.42bis規格は、単独のコードワー
ドを使用して複数の文字が符号化されるという点を除
き、前記と同様に動作する。V.42bis規格は、ア
ルファベットの各文字に「ルート文字」というラベルを
つける。ルート文字の後に発生するか、ルート文字に続
く文字が、ストリングまたはブランチと呼ばれる。例え
ば、図1に示す従来技術による符号化スキーム、および
ルート文字4の「A」、「B」、「C」および「D」の
それぞれを参照されたい。ルート文字「B」ぶら下がる
文字は、「A」および「I」である。さらに、文字
「A」および「I」にぶら下がる文字がある。このよう
にして、ワード「BAG」および「BIN」がルート文
字「B」の下のストリングにスペルアウトされている。
「DE」、「DO」、および「DOG」のようなルート
文字にぶら下がる文字グループのそれぞれは、ストリン
グ5と呼ばれる。
委員会(「CCITT」)によりV.42bis規格と
して勧告されており、本明細書中に参照により取り入れ
られている。V.42bis規格は、単独のコードワー
ドを使用して複数の文字が符号化されるという点を除
き、前記と同様に動作する。V.42bis規格は、ア
ルファベットの各文字に「ルート文字」というラベルを
つける。ルート文字の後に発生するか、ルート文字に続
く文字が、ストリングまたはブランチと呼ばれる。例え
ば、図1に示す従来技術による符号化スキーム、および
ルート文字4の「A」、「B」、「C」および「D」の
それぞれを参照されたい。ルート文字「B」ぶら下がる
文字は、「A」および「I」である。さらに、文字
「A」および「I」にぶら下がる文字がある。このよう
にして、ワード「BAG」および「BIN」がルート文
字「B」の下のストリングにスペルアウトされている。
「DE」、「DO」、および「DOG」のようなルート
文字にぶら下がる文字グループのそれぞれは、ストリン
グ5と呼ばれる。
【0007】符号化テーブル内のストリングのそれぞれ
がコードワードに対応づけられている。「BAG」とい
うデータ文字のシーケンスが、符号化テーブル内の「B
AG」ストリングと照合されるデータ・ストリーム内で
検出されると、ワード「BAG」を表すバイナリ・コー
ドワードが、ワード「BAG」の代わりに伝送される。
1つのルート文字にぶらさがるすべてのブランチは、あ
わせて、ツリー6と呼ばれる。ツリーは、短い、広い、
長い、狭いなどのさまざまな形になり得る。
がコードワードに対応づけられている。「BAG」とい
うデータ文字のシーケンスが、符号化テーブル内の「B
AG」ストリングと照合されるデータ・ストリーム内で
検出されると、ワード「BAG」を表すバイナリ・コー
ドワードが、ワード「BAG」の代わりに伝送される。
1つのルート文字にぶらさがるすべてのブランチは、あ
わせて、ツリー6と呼ばれる。ツリーは、短い、広い、
長い、狭いなどのさまざまな形になり得る。
【0008】V.42bis規格では、各ツリー内のス
トリング5の性質は、データ・ストリーム内のデータに
応じて動的に変更される。このようにして、より最近に
使用されたワードに対する符号化テーブル内の文字は、
データ・ストリーム内のデータに基づいて保存され、増
大する。一方、ツリーのあまり最近使われていないリー
フ文字は枝刈りされ得る。例えば、図1中のワード「B
AT」を有するストリングが拡張されて、ワード「BA
TTLE」を符号化するかもしれない。したがって、も
っとも最近使用したワードのディクショナリが作成さ
れ、符号化テーブルおよび複合化テーブル内にリアルタ
イムで格納される。
トリング5の性質は、データ・ストリーム内のデータに
応じて動的に変更される。このようにして、より最近に
使用されたワードに対する符号化テーブル内の文字は、
データ・ストリーム内のデータに基づいて保存され、増
大する。一方、ツリーのあまり最近使われていないリー
フ文字は枝刈りされ得る。例えば、図1中のワード「B
AT」を有するストリングが拡張されて、ワード「BA
TTLE」を符号化するかもしれない。したがって、も
っとも最近使用したワードのディクショナリが作成さ
れ、符号化テーブルおよび複合化テーブル内にリアルタ
イムで格納される。
【0009】当業者になじみのある、もう一つのデータ
圧縮スキームは、マイクロコム・ネットワーキング・プ
ロトコル−7(MNP−7)である。このプロトコル
は、文字のいくつかのペアを1つのコードワードに対応
させる。理論的には、ペアを対応させ、時間が経過する
と、考えられるすべての組み合わせを含むライブラリを
構築することができる。256個の考えられる文字のそ
れぞれが可能性のあるすべてのペアへなるよう組み合わ
される場合、その組み合わせを記憶するためにだいたい
2分の1メガバイトのメモリを要することになる。した
がって、もっとも一般的なペアが、通常、大きさが10
24バイトのメモリ内に保存される。新しいペアがメモ
リに加えられるにと、ペアは循環され、メモリから追い
出される。メモリ・サイズに対する実用上の制限のた
め、MNP−7は限られたサイズに保たれ、そのテーブ
ルのエントリは、最近使用されたペアが繰り返されると
いう理論に基づいて選択される。
圧縮スキームは、マイクロコム・ネットワーキング・プ
ロトコル−7(MNP−7)である。このプロトコル
は、文字のいくつかのペアを1つのコードワードに対応
させる。理論的には、ペアを対応させ、時間が経過する
と、考えられるすべての組み合わせを含むライブラリを
構築することができる。256個の考えられる文字のそ
れぞれが可能性のあるすべてのペアへなるよう組み合わ
される場合、その組み合わせを記憶するためにだいたい
2分の1メガバイトのメモリを要することになる。した
がって、もっとも一般的なペアが、通常、大きさが10
24バイトのメモリ内に保存される。新しいペアがメモ
リに加えられるにと、ペアは循環され、メモリから追い
出される。メモリ・サイズに対する実用上の制限のた
め、MNP−7は限られたサイズに保たれ、そのテーブ
ルのエントリは、最近使用されたペアが繰り返されると
いう理論に基づいて選択される。
【0010】また、データ圧縮に対する「スライディン
グ・ウィンドウ」アプローチも、当業者になじみがあ
る。もっとも最近に受け取られたデータのブロックが記
憶される(ウィンドウ)。文字が受け取られると、ウィ
ンドウ内の「もっとも古い」文字が落とされていく。こ
のようにして、ウィンドウは連続的に新しいデータで更
新される。各文字が受け取られた後、カレント・ウィン
ドウが一致するストリングがないかどうかレビューされ
る。ストリングがウィンドウ内に発見された場合は、ウ
ィンドウ内のそのストリングへのポインタが復号化テー
ブルに送られる。復号化テーブルはポインタを利用し
て、専用の複製ウィンドウにアクセスし、文字を復号化
する。
グ・ウィンドウ」アプローチも、当業者になじみがあ
る。もっとも最近に受け取られたデータのブロックが記
憶される(ウィンドウ)。文字が受け取られると、ウィ
ンドウ内の「もっとも古い」文字が落とされていく。こ
のようにして、ウィンドウは連続的に新しいデータで更
新される。各文字が受け取られた後、カレント・ウィン
ドウが一致するストリングがないかどうかレビューされ
る。ストリングがウィンドウ内に発見された場合は、ウ
ィンドウ内のそのストリングへのポインタが復号化テー
ブルに送られる。復号化テーブルはポインタを利用し
て、専用の複製ウィンドウにアクセスし、文字を復号化
する。
【0011】
【発明が解決しようとする課題】当業者にはわかるであ
ろうが、前記のデータ圧縮システムは、データ文字がラ
ンダムではないという仮定のもと動作する。このスキー
ムは、あるワードが一度発生すると、それは、再度発生
するであろうと仮定する。さらに、V.42bisは、
文法規則により定義されるもののような、人間の言語に
おける文字間の固有の相関関係に依存している。
ろうが、前記のデータ圧縮システムは、データ文字がラ
ンダムではないという仮定のもと動作する。このスキー
ムは、あるワードが一度発生すると、それは、再度発生
するであろうと仮定する。さらに、V.42bisは、
文法規則により定義されるもののような、人間の言語に
おける文字間の固有の相関関係に依存している。
【0012】前記のデータ圧縮スキームのすべてにおい
て、符号化テーブルが大きいほど、記憶されるストリン
グの数が増えるか、記憶されるストリングが長くなる
か、あるいはその両方となり、符号化テーブルに記憶さ
れるストリングの数と長さが大きくなればなるほど、デ
ータ文字ストリームが復号化テーブル内のストリングと
一致する可能性が高くなる。したがって、符号化テーブ
ルが大きいほど、データ圧縮が大きくなるというのは、
正しいことが多い。
て、符号化テーブルが大きいほど、記憶されるストリン
グの数が増えるか、記憶されるストリングが長くなる
か、あるいはその両方となり、符号化テーブルに記憶さ
れるストリングの数と長さが大きくなればなるほど、デ
ータ文字ストリームが復号化テーブル内のストリングと
一致する可能性が高くなる。したがって、符号化テーブ
ルが大きいほど、データ圧縮が大きくなるというのは、
正しいことが多い。
【0013】任意のスキーム内の総ツリー・ブランチの
幅および長さは、符号化テーブルに割り当てられる総メ
モリ・スペースにより制限される。V.42bis規格
を使用するモデムでは、通常、符号化テーブルに割り当
てられるメモリ・スペースは、32,768バイトのメ
モリで、2048個のエントリ又はストリングを保持す
るように最初は設定される。
幅および長さは、符号化テーブルに割り当てられる総メ
モリ・スペースにより制限される。V.42bis規格
を使用するモデムでは、通常、符号化テーブルに割り当
てられるメモリ・スペースは、32,768バイトのメ
モリで、2048個のエントリ又はストリングを保持す
るように最初は設定される。
【0014】符号化テーブルの記憶に消費されるメモリ
・スペースを制限する必要性以外に、符号化テーブルの
サイズは、2つのトレードオフによっても制限される。
まず第一に、モデムはルート文字の下の各ストリングを
レビューし、データ・ストリーム内の文字と一致するス
トリングを発見しなければならない。この文字ストリー
ム内の各文字をレビューし、ストリーム内の文字を符号
化テーブル内のストリングと一致させようとする処理
は、膨大な処理時間を要する。したがって、符号化テー
ブルのサイズの制限には、大きな符号化テーブルを使う
ことにより、より多くのストリングをデータ・ストリー
ムに一致させ、より大きなデータ圧縮を達成させること
と、より大きな符号化テーブルを利用することにより生
じる実行時間、ひいてはデータ・スループット時間の低
速化との間の固有のトレードオフがある。
・スペースを制限する必要性以外に、符号化テーブルの
サイズは、2つのトレードオフによっても制限される。
まず第一に、モデムはルート文字の下の各ストリングを
レビューし、データ・ストリーム内の文字と一致するス
トリングを発見しなければならない。この文字ストリー
ム内の各文字をレビューし、ストリーム内の文字を符号
化テーブル内のストリングと一致させようとする処理
は、膨大な処理時間を要する。したがって、符号化テー
ブルのサイズの制限には、大きな符号化テーブルを使う
ことにより、より多くのストリングをデータ・ストリー
ムに一致させ、より大きなデータ圧縮を達成させること
と、より大きな符号化テーブルを利用することにより生
じる実行時間、ひいてはデータ・スループット時間の低
速化との間の固有のトレードオフがある。
【0015】第2のトレードオフは、符号化テーブルの
サイズを大きくすると、コードワードのサイズを大きく
する必要があるという点である。例えば、8ビットのコ
ードワードは、最大で256(28 )ストリングを表
す。したがって、符号化テーブルのサイズを256個以
上のストリングを格納するために大きくすると、より大
きなコードワードを使用しなければならない。従って、
符号化テーブルのストリングがより多く及び長くなる
と、さらに多くのストリングを一致させることにより圧
縮を増加させ得るが、必要となるコードワードの数が増
加し、コードワード・サイズが大きくなるため、スルー
プットおよび圧縮率が低下する。他方、符号化テーブル
が小さいと、ストリング数は少なくなるが、コードワー
ドの長さは短くなる。
サイズを大きくすると、コードワードのサイズを大きく
する必要があるという点である。例えば、8ビットのコ
ードワードは、最大で256(28 )ストリングを表
す。したがって、符号化テーブルのサイズを256個以
上のストリングを格納するために大きくすると、より大
きなコードワードを使用しなければならない。従って、
符号化テーブルのストリングがより多く及び長くなる
と、さらに多くのストリングを一致させることにより圧
縮を増加させ得るが、必要となるコードワードの数が増
加し、コードワード・サイズが大きくなるため、スルー
プットおよび圧縮率が低下する。他方、符号化テーブル
が小さいと、ストリング数は少なくなるが、コードワー
ドの長さは短くなる。
【0016】当業者にはよく知られているように、前記
データ圧縮/符号化スキームは、データが強い相関関係
を有する、すなわち伝送中のファイルがテキストまたは
数(ただし、その両方ではない)であると事前に決定さ
れ、データはランダムではない応用形態を前提とし、そ
のような応用形態に最も適している。しかしながら、リ
アルタイム通信システムのようなデータのタイプが予測
不可能で、時間を経ると変化する応用形態では、前記方
法は最適ではないコードを用いることになる。前記圧縮
スキームは、固定サイズの符号化テーブル内でコードワ
ードをリアルタイムで再割当てすることによってデータ
間の相関関係の変化に適応するのみである。
データ圧縮/符号化スキームは、データが強い相関関係
を有する、すなわち伝送中のファイルがテキストまたは
数(ただし、その両方ではない)であると事前に決定さ
れ、データはランダムではない応用形態を前提とし、そ
のような応用形態に最も適している。しかしながら、リ
アルタイム通信システムのようなデータのタイプが予測
不可能で、時間を経ると変化する応用形態では、前記方
法は最適ではないコードを用いることになる。前記圧縮
スキームは、固定サイズの符号化テーブル内でコードワ
ードをリアルタイムで再割当てすることによってデータ
間の相関関係の変化に適応するのみである。
【0017】したがって、あらゆるタイプのデータまた
はデータのタイプの分布に関して、より大きな動的適応
性を達成する適応型データ圧縮方法を提供する必要があ
る。
はデータのタイプの分布に関して、より大きな動的適応
性を達成する適応型データ圧縮方法を提供する必要があ
る。
【0018】さらに、ランダム・データまたは擬似ラン
ダム・データの圧縮の試行に費やされる処理時間を制限
する必要性を調和させ、非ランダム(相関関係のある)
データの高率でのデータ圧縮を達成するリアルタイム・
データ符号化スキームが必要とされている。
ダム・データの圧縮の試行に費やされる処理時間を制限
する必要性を調和させ、非ランダム(相関関係のある)
データの高率でのデータ圧縮を達成するリアルタイム・
データ符号化スキームが必要とされている。
【0019】さらに、同一文字から成る長いストリング
を符号化テーブルに渡すことを排除する符号化スキーム
が必要とされている。具体的には、同一文字から成る1
つのストリングがモデムで受け取られると、モデムは、
符号化テーブルを変更し、伝送前に圧縮される同一文字
の非常に長いストリングを格納するようにする。この長
い文字ストリングは、符号化テーブルおよび復号化テー
ブルに対する歪みとなり、しばしば、V.42bis規
格のユーザに非効率を生じさせる。具体的には、符号化
テーブル内の貴重なスペースが、同一文字のストリング
を格納するために使われ、このストリングは、通常、デ
ータ伝送の間役に立たない。
を符号化テーブルに渡すことを排除する符号化スキーム
が必要とされている。具体的には、同一文字から成る1
つのストリングがモデムで受け取られると、モデムは、
符号化テーブルを変更し、伝送前に圧縮される同一文字
の非常に長いストリングを格納するようにする。この長
い文字ストリングは、符号化テーブルおよび復号化テー
ブルに対する歪みとなり、しばしば、V.42bis規
格のユーザに非効率を生じさせる。具体的には、符号化
テーブル内の貴重なスペースが、同一文字のストリング
を格納するために使われ、このストリングは、通常、デ
ータ伝送の間役に立たない。
【0020】本発明の目的は、最小処理時間にて最大デ
ータ圧縮を提供するために、符号化テーブルおよび復号
化テーブルのサイズを最適化するデータ圧縮スキームを
提供することである。
ータ圧縮を提供するために、符号化テーブルおよび復号
化テーブルのサイズを最適化するデータ圧縮スキームを
提供することである。
【0021】本発明の第2の目的は、データのストリー
ム内のデータ文字間の検出された相関関係に応えて符号
化テーブルのサイズを調整し、それにより、よりランダ
ムなデータの場合には、符号化テーブルのサイズが減ら
され、相関関係がより強いデータの場合には符号化テー
ブルのサイズが増やされる、データ通信で利用されるデ
ータ圧縮スキームを提供することである。
ム内のデータ文字間の検出された相関関係に応えて符号
化テーブルのサイズを調整し、それにより、よりランダ
ムなデータの場合には、符号化テーブルのサイズが減ら
され、相関関係がより強いデータの場合には符号化テー
ブルのサイズが増やされる、データ通信で利用されるデ
ータ圧縮スキームを提供することである。
【0022】本発明の第3の目的とは、データが符号化
テーブルに渡される前に、同一データ文字の連続発生が
ラン・レングス・エンコーダで符号化され、それにより
モデムの符号化テーブルの悪化を防止する、データ通信
ネットワークでモデムとともに使用するためのデータ圧
縮スキームを提供することである。
テーブルに渡される前に、同一データ文字の連続発生が
ラン・レングス・エンコーダで符号化され、それにより
モデムの符号化テーブルの悪化を防止する、データ通信
ネットワークでモデムとともに使用するためのデータ圧
縮スキームを提供することである。
【0023】
【課題を解決するための手段】本発明は、データのラン
ダム対非ランダムの性質が判断され、この情報が、符号
化テーブルのサイズを調整するために使われ、データ圧
縮およびデータ圧縮速度を最適化するリアルタイム・デ
ータ圧縮用スキームを提供する。具体的には、相関関係
が強いデータの場合、より大きなデータ圧縮を達成する
ために符号化テーブルのサイズを大きくする。相関関係
が弱いデータの場合には、よい性能をだすために符号化
テーブルの大きさを小さくする。ランダム・データまた
は擬似ランダム・データの場合は、符号化テーブルのサ
イズは、データを圧縮しようとして費やされる時間を削
減し、短いコードワードを使うために、縮小される。
ダム対非ランダムの性質が判断され、この情報が、符号
化テーブルのサイズを調整するために使われ、データ圧
縮およびデータ圧縮速度を最適化するリアルタイム・デ
ータ圧縮用スキームを提供する。具体的には、相関関係
が強いデータの場合、より大きなデータ圧縮を達成する
ために符号化テーブルのサイズを大きくする。相関関係
が弱いデータの場合には、よい性能をだすために符号化
テーブルの大きさを小さくする。ランダム・データまた
は擬似ランダム・データの場合は、符号化テーブルのサ
イズは、データを圧縮しようとして費やされる時間を削
減し、短いコードワードを使うために、縮小される。
【0024】本発明は、データ文字のストリームを圧縮
するためのコンピュータ・システムで動作する。コンピ
ュータ・システムは、文字から成る複数のストリングを
有する符号化テーブルを具備し、符号化テーブル内の文
字ストリングは、文字のストリームの一部が符号化テー
ブル内の文字ストリングの1つと一致した際、データ文
字のストリームの部分と置換されるコードワードに関連
づけられており、これにより、文字のストリームの部分
は、対応するコードワードで置き換えられる。本発明
は、データ圧縮の効率およびデータ圧縮率を改善するた
めに符号化テーブルのサイズを制御する装置および方法
である。この方法は、入力されるデータ文字間の相関関
係を判断するステップと、入力データ文字間の判断され
た相関関係に基づいて、符号化テーブルに割り当てられ
るメモリ・スペースを調整するステップを有する。テー
ブルに割り当てられるメモリ・スペースを調整する際に
講じられるステップは、データ文字間の判断された相関
関係に応えて性能指標を調整し、性能指標が事前に決定
した第1の値を上回ると、符号化テーブルに割り当てら
れるメモリ・スペースを縮小し、性能指標が事前に決定
した第2の値を下回ると、符号化テーブルに割り当てら
れるメモリ・スペースを拡大する。
するためのコンピュータ・システムで動作する。コンピ
ュータ・システムは、文字から成る複数のストリングを
有する符号化テーブルを具備し、符号化テーブル内の文
字ストリングは、文字のストリームの一部が符号化テー
ブル内の文字ストリングの1つと一致した際、データ文
字のストリームの部分と置換されるコードワードに関連
づけられており、これにより、文字のストリームの部分
は、対応するコードワードで置き換えられる。本発明
は、データ圧縮の効率およびデータ圧縮率を改善するた
めに符号化テーブルのサイズを制御する装置および方法
である。この方法は、入力されるデータ文字間の相関関
係を判断するステップと、入力データ文字間の判断され
た相関関係に基づいて、符号化テーブルに割り当てられ
るメモリ・スペースを調整するステップを有する。テー
ブルに割り当てられるメモリ・スペースを調整する際に
講じられるステップは、データ文字間の判断された相関
関係に応えて性能指標を調整し、性能指標が事前に決定
した第1の値を上回ると、符号化テーブルに割り当てら
れるメモリ・スペースを縮小し、性能指標が事前に決定
した第2の値を下回ると、符号化テーブルに割り当てら
れるメモリ・スペースを拡大する。
【0025】本発明の典型的動作では、データ圧縮の効
率および圧縮率を改善するために符号化テーブルを制御
する方法は、以下のステップを含む。まず、コンピュー
タ・システムに入力されるデータ文字のストリームの圧
縮率を決定するステップで、圧縮率は、コンピュータ・
システムに入力される文字数を、コンピュータ・システ
ムから出力されるデータ文字ストリーム内のデータ文字
数で割ったものに等しい。また、使用カウントを決定す
るステップを含み、使用カウントは、符号化テーブルの
ツリーの平均幅に比例する。また、圧縮率および使用カ
ウントを利用して性能指標を計算するステップ、および
性能指標の値に基づいて符号化テーブルに割り当てられ
るメモリ・スペースを増減するステップを含む。性能指
標は、コンピュータ・システムに入力されるデータ文字
のストリーム中のデータ文字間の相関関係を示す。
率および圧縮率を改善するために符号化テーブルを制御
する方法は、以下のステップを含む。まず、コンピュー
タ・システムに入力されるデータ文字のストリームの圧
縮率を決定するステップで、圧縮率は、コンピュータ・
システムに入力される文字数を、コンピュータ・システ
ムから出力されるデータ文字ストリーム内のデータ文字
数で割ったものに等しい。また、使用カウントを決定す
るステップを含み、使用カウントは、符号化テーブルの
ツリーの平均幅に比例する。また、圧縮率および使用カ
ウントを利用して性能指標を計算するステップ、および
性能指標の値に基づいて符号化テーブルに割り当てられ
るメモリ・スペースを増減するステップを含む。性能指
標は、コンピュータ・システムに入力されるデータ文字
のストリーム中のデータ文字間の相関関係を示す。
【0026】このようにして、本発明は、入力されるデ
ータ文字間の相関関係を検出するために、(1)実際に
達成されるデータ圧縮率、(2)符号化テーブル中の1
つ以上のツリーの幅という2つの基準を利用する。当業
者により符号化ディクショナリと呼ばれることもある、
符号化テーブルに割り当てられるメモリ・スペースは、
現在達成されているデータ圧縮率および符号化テーブル
のツリーの見積もられた特徴に応じて拡大または縮小さ
れる。したがって、符号化テーブルのサイズは、入力デ
ータのランダムまたは非ランダム性質に従って調整さ
れ、それによりデータを圧縮しようとして費やされる時
間を制限しつつ、圧縮を最適化する。
ータ文字間の相関関係を検出するために、(1)実際に
達成されるデータ圧縮率、(2)符号化テーブル中の1
つ以上のツリーの幅という2つの基準を利用する。当業
者により符号化ディクショナリと呼ばれることもある、
符号化テーブルに割り当てられるメモリ・スペースは、
現在達成されているデータ圧縮率および符号化テーブル
のツリーの見積もられた特徴に応じて拡大または縮小さ
れる。したがって、符号化テーブルのサイズは、入力デ
ータのランダムまたは非ランダム性質に従って調整さ
れ、それによりデータを圧縮しようとして費やされる時
間を制限しつつ、圧縮を最適化する。
【0027】データ文字間の圧縮率を決定する本発明の
典型的な方法にさらに詳細に述べると、当業者は、今日
販売されているモデムは、モデムにより達成される圧縮
率を監視し、更新するということが分かるであろう。例
えば、本発明の譲受人であるヘイズ・マイクロコンピュ
ータ製品社(Hayes Microcomputer
Products Inc.)が販売するモデムで
は、モデムが、伝送するためにコンピュータから受け取
られる、固定数の文字の後に、例えば、5000文字の
後に圧縮率を計算する。そして、圧縮率が低いと、弱い
相関関係、ランダム、または擬似乱数となりがちであ
る。なぜなら、そのようなデータは比較的圧縮不可能な
ためである。また、圧縮率が高くなると、データ文字間
の相関関係も強くなる。
典型的な方法にさらに詳細に述べると、当業者は、今日
販売されているモデムは、モデムにより達成される圧縮
率を監視し、更新するということが分かるであろう。例
えば、本発明の譲受人であるヘイズ・マイクロコンピュ
ータ製品社(Hayes Microcomputer
Products Inc.)が販売するモデムで
は、モデムが、伝送するためにコンピュータから受け取
られる、固定数の文字の後に、例えば、5000文字の
後に圧縮率を計算する。そして、圧縮率が低いと、弱い
相関関係、ランダム、または擬似乱数となりがちであ
る。なぜなら、そのようなデータは比較的圧縮不可能な
ためである。また、圧縮率が高くなると、データ文字間
の相関関係も強くなる。
【0028】本発明で、処理中のデータ中の文字の相関
関係を判断するために利用される第2の基準は、符号化
テーブル内のツリーの形である。例えば、モデムがラン
ダム・データを圧縮しようとしている場合、ツリーの幅
は、通常、比較的に高くなる。なぜなら、任意の文字が
別の文字の後に続きそうになるからである。実際には、
256個の文字が、各ルート文字に直接ぶらさがるかも
しれない。したがって、ランダム・データの場合、符号
化テーブル内のツリーの幅は広くなる傾向がある。反対
に、相関関係が強いデータを受け取る符号化テーブル
は、長く狭いツリーを持つと仮定される。本発明は、ツ
リーが長くて狭いか、あるいは短くて広いということを
検出する。
関係を判断するために利用される第2の基準は、符号化
テーブル内のツリーの形である。例えば、モデムがラン
ダム・データを圧縮しようとしている場合、ツリーの幅
は、通常、比較的に高くなる。なぜなら、任意の文字が
別の文字の後に続きそうになるからである。実際には、
256個の文字が、各ルート文字に直接ぶらさがるかも
しれない。したがって、ランダム・データの場合、符号
化テーブル内のツリーの幅は広くなる傾向がある。反対
に、相関関係が強いデータを受け取る符号化テーブル
は、長く狭いツリーを持つと仮定される。本発明は、ツ
リーが長くて狭いか、あるいは短くて広いということを
検出する。
【0029】データ文字間の相関関係を判断するために
利用される第2の基準は、「使用カウント」と呼ばれて
いる。使用カウントをさらに詳細に述べると、使用カウ
ントは、ストリング一致プログラム、符号化テーブル・
エントリ削除ループ・プログラムの中に挿入されるか、
あるいは別個のプログラムとなるプログラム・モジュー
ルを使用して決定される。使用カウントは、後述される
ように、比較的に低い処理速度を使うため、エントリ削
除プログラムに挿入されるのが望ましい。
利用される第2の基準は、「使用カウント」と呼ばれて
いる。使用カウントをさらに詳細に述べると、使用カウ
ントは、ストリング一致プログラム、符号化テーブル・
エントリ削除ループ・プログラムの中に挿入されるか、
あるいは別個のプログラムとなるプログラム・モジュー
ルを使用して決定される。使用カウントは、後述される
ように、比較的に低い処理速度を使うため、エントリ削
除プログラムに挿入されるのが望ましい。
【0030】当業者にはよく知られているように、エン
トリ削除プログラムは、定期的に呼び出され、削除対象
となるリーフ文字を発見するために、メモリ内のエント
リを順次に探索する。エントリ削除プログラムは、削除
するリーフ文字を探してすべてのエントリの中を進み、
使用カウントは、リーフ文字を見つける前にレビューさ
れる文字の数に基づいたツリーの幅である。使用カウン
トは、エントリ削除プログラムの複数の呼び出しにわた
って保存される。そして、正規化された使用カウント
は、以下の公式を使用して計算される。
トリ削除プログラムは、定期的に呼び出され、削除対象
となるリーフ文字を発見するために、メモリ内のエント
リを順次に探索する。エントリ削除プログラムは、削除
するリーフ文字を探してすべてのエントリの中を進み、
使用カウントは、リーフ文字を見つける前にレビューさ
れる文字の数に基づいたツリーの幅である。使用カウン
トは、エントリ削除プログラムの複数の呼び出しにわた
って保存される。そして、正規化された使用カウント
は、以下の公式を使用して計算される。
【0031】
【数1】正規化使用カウント=(総使用カウント)/
(エントリ削除プログラム呼出回数) 使用カウントは、削除されるリーフが発見される前に調
べられる文字の数であり、使用カウントは、エントリ削
除プログラムの多数の呼出にわたって平均化され、ツリ
ーの幅の概算に妥当かつ安定した基盤を提供する。この
ようにして、正規化使用カウントは、符号化テーブル内
のツリーの形を見積もるために利用される。必要であれ
ば、符号化テーブル内のツリーの平均幅は、以下の公式
を使って計算することができる。
(エントリ削除プログラム呼出回数) 使用カウントは、削除されるリーフが発見される前に調
べられる文字の数であり、使用カウントは、エントリ削
除プログラムの多数の呼出にわたって平均化され、ツリ
ーの幅の概算に妥当かつ安定した基盤を提供する。この
ようにして、正規化使用カウントは、符号化テーブル内
のツリーの形を見積もるために利用される。必要であれ
ば、符号化テーブル内のツリーの平均幅は、以下の公式
を使って計算することができる。
【0032】平均幅=1+2*(正規化使用カウント) このようにして、ツリーの幅は、エントリ削除プロセス
内の使用カウントによりカウントされる文字の総数に基
づく正規化使用カウントの値を使用して概算される。正
規化使用カウント値が低い場合、ツリーは狭いと見積も
られ、データの強い相関関係を示す。低い正規化使用カ
ウントは、ルート文字とリーフ文字の間に文字が多くあ
るために生じる。この場合、性能指標は、所定の値によ
り増分(インクリメント)される。他方、正規化使用カ
ウントが高い場合、データはよりランダムである。この
場合、性能指標は減分(デクリメント)される。
内の使用カウントによりカウントされる文字の総数に基
づく正規化使用カウントの値を使用して概算される。正
規化使用カウント値が低い場合、ツリーは狭いと見積も
られ、データの強い相関関係を示す。低い正規化使用カ
ウントは、ルート文字とリーフ文字の間に文字が多くあ
るために生じる。この場合、性能指標は、所定の値によ
り増分(インクリメント)される。他方、正規化使用カ
ウントが高い場合、データはよりランダムである。この
場合、性能指標は減分(デクリメント)される。
【0033】入力データのランダム対非ランダムの性質
を判断し、それに応えて符号化テーブルのサイズを調整
するための方法はいろいろなものが有り得る。典型的に
は、本発明では、プロセッサは、データ文字のストリー
ム内の文字間の相関関係に対応する「性能指標」を作成
する。性能指標は、初期値(50)が与えられ、その値
は、圧縮率と正規化使用カウントにより定義されるよう
に、受け取られるデータのストリーム内のデータ文字間
の相関関係に基づいて増分または減分される。性能指標
が事前に決めた最大値または最小値(それぞれ100ま
たは0)に達すると、符号化テーブルのサイズは縮小ま
たは拡大される。符号化テーブルのサイズを拡大または
縮小した後、性能指標は中間値(50)に再設定され、
上記プロセスを反復する。
を判断し、それに応えて符号化テーブルのサイズを調整
するための方法はいろいろなものが有り得る。典型的に
は、本発明では、プロセッサは、データ文字のストリー
ム内の文字間の相関関係に対応する「性能指標」を作成
する。性能指標は、初期値(50)が与えられ、その値
は、圧縮率と正規化使用カウントにより定義されるよう
に、受け取られるデータのストリーム内のデータ文字間
の相関関係に基づいて増分または減分される。性能指標
が事前に決めた最大値または最小値(それぞれ100ま
たは0)に達すると、符号化テーブルのサイズは縮小ま
たは拡大される。符号化テーブルのサイズを拡大または
縮小した後、性能指標は中間値(50)に再設定され、
上記プロセスを反復する。
【0034】本発明の典型的な例では、2つの基準(圧
縮率および符号化テーブルの特徴)が、ともに、性能指
標が増分されるのか、あるいは減分されるのかを判断す
る。データ圧縮率が1未満の場合、コンピュータからモ
デムに入力されるデータは、実際には、変調されデータ
通信回線上に出力される前に拡張されている。本発明の
このケースでは、性能指標は大きな値で減分される。圧
縮率が1をわずかに上回る場合、性能指標はより小さな
値で減分される。圧縮率が1をはるかに越える場合、性
能指標はより大きな値で増分される。符号化テーブル内
のツリーが狭いと判断されると、性能指標は増分される
が、ツリーが広いと判断されると、性能指標は減分され
る。ツリーの幅は、計算された正規化使用カウントで評
価される。
縮率および符号化テーブルの特徴)が、ともに、性能指
標が増分されるのか、あるいは減分されるのかを判断す
る。データ圧縮率が1未満の場合、コンピュータからモ
デムに入力されるデータは、実際には、変調されデータ
通信回線上に出力される前に拡張されている。本発明の
このケースでは、性能指標は大きな値で減分される。圧
縮率が1をわずかに上回る場合、性能指標はより小さな
値で減分される。圧縮率が1をはるかに越える場合、性
能指標はより大きな値で増分される。符号化テーブル内
のツリーが狭いと判断されると、性能指標は増分される
が、ツリーが広いと判断されると、性能指標は減分され
る。ツリーの幅は、計算された正規化使用カウントで評
価される。
【0035】入力データ・ストリーム内の文字間の相関
関係は、このようにして、計算された数、つまり性能指
標により特徴付けられる。性能指標は、圧縮率および利
用カウンタに基づいて調整される。性能指標がゼロ
(0)以下の値になると、データが、弱い相関関係を有
する、ランダム、または擬ランダムであるため、符号化
テーブルのサイズは縮小させられる。符号化テーブルの
サイズを縮小すると、符号化テーブル内の文字ストリン
グとデータ・ストリーム内の文字の間の一致を探すのに
費やされる処理時間が減少する。さらに、符号化テーブ
ルのサイズを縮小すると、コードワードのサイズも小さ
くなる。
関係は、このようにして、計算された数、つまり性能指
標により特徴付けられる。性能指標は、圧縮率および利
用カウンタに基づいて調整される。性能指標がゼロ
(0)以下の値になると、データが、弱い相関関係を有
する、ランダム、または擬ランダムであるため、符号化
テーブルのサイズは縮小させられる。符号化テーブルの
サイズを縮小すると、符号化テーブル内の文字ストリン
グとデータ・ストリーム内の文字の間の一致を探すのに
費やされる処理時間が減少する。さらに、符号化テーブ
ルのサイズを縮小すると、コードワードのサイズも小さ
くなる。
【0036】同様に、性能指標が100以上の値になる
と、入力データ・ストリームは相関関係が強い文字を含
み、よって、プロセッサは符号化テーブルに割り当てる
メモリ・スペースを拡大する。これにより、符号化テー
ブルに記憶できるようになるストリングがさらに多くな
るか、さらに長くなるか、あるいはその両方となるた
め、データ圧縮を増大できる。
と、入力データ・ストリームは相関関係が強い文字を含
み、よって、プロセッサは符号化テーブルに割り当てる
メモリ・スペースを拡大する。これにより、符号化テー
ブルに記憶できるようになるストリングがさらに多くな
るか、さらに長くなるか、あるいはその両方となるた
め、データ圧縮を増大できる。
【0037】計算された性能指標が第1しきい値と第2
しきい値(0と100)の間である場合、符号化テーブ
ルに割り当てられた現在のメモリ・スペースは、許容で
きるプロセッサ時間を使ったデータ圧縮の最適レベルを
生成すると仮定される。したがって、符号化テーブルの
サイズは変更されない。
しきい値(0と100)の間である場合、符号化テーブ
ルに割り当てられた現在のメモリ・スペースは、許容で
きるプロセッサ時間を使ったデータ圧縮の最適レベルを
生成すると仮定される。したがって、符号化テーブルの
サイズは変更されない。
【0038】前述した2つの基準は結合されて、性能指
標をもたらす。例えば、圧縮率が低く、正規化使用カウ
ントが低い場合(ランダム・データ)、性能指標は大き
く減らされ、性能指標がゼロ未満であると、符号化テー
ブルに割り当てられるメモリ・スペースは少なくなる。
他方、圧縮率が高く、正規化使用カウントが高いと(相
関関係が強いデータ)、性能指標は増やされ、符号化テ
ーブルに割り当てられるメモリ・スペースが増やされ
る。
標をもたらす。例えば、圧縮率が低く、正規化使用カウ
ントが低い場合(ランダム・データ)、性能指標は大き
く減らされ、性能指標がゼロ未満であると、符号化テー
ブルに割り当てられるメモリ・スペースは少なくなる。
他方、圧縮率が高く、正規化使用カウントが高いと(相
関関係が強いデータ)、性能指標は増やされ、符号化テ
ーブルに割り当てられるメモリ・スペースが増やされ
る。
【0039】性能指標の増分量または減分量は、本明細
書中、「デルタ」値と呼ばれ、デルタ値は、基準が平均
値からどれほど偏向するかに従って、前述の基準のそれ
ぞれの中で上げ下げすることができる。したがって、シ
ステムは、データの相関関係(または非相関関係)の度
合いに対する調整可能な感度を備える。
書中、「デルタ」値と呼ばれ、デルタ値は、基準が平均
値からどれほど偏向するかに従って、前述の基準のそれ
ぞれの中で上げ下げすることができる。したがって、シ
ステムは、データの相関関係(または非相関関係)の度
合いに対する調整可能な感度を備える。
【0040】符号化テーブルでは、データが最初にモデ
ムで受け取られるときは、符号化テーブルに割り当てら
れるメモリ・スペースは最大2048個のエントリまで
許容される。したがって、この符号化テーブルは204
8エントリ・テーブルであると呼ばれる。符号化テーブ
ルに割り当てられる典型的な総メモリ・スペースは、5
12個、1024個、2048個、4096個、819
2個、または16384個のエントリを許容する。符号
化テーブルは、性能指標の値により指示され、以上のサ
イズのなかで上がり下がりする。符号化テーブルのサイ
ズが変更されると、コードワードのサイズが変更され
る。したがって、符号化テーブルが512個、1024
個、2048個、4096個、8192個または163
84個エントリを保持する場合、コードワードは、それ
ぞれ9ビット、10ビット、11ビット、12ビット、
13ビットまたは14ビットとなる。
ムで受け取られるときは、符号化テーブルに割り当てら
れるメモリ・スペースは最大2048個のエントリまで
許容される。したがって、この符号化テーブルは204
8エントリ・テーブルであると呼ばれる。符号化テーブ
ルに割り当てられる典型的な総メモリ・スペースは、5
12個、1024個、2048個、4096個、819
2個、または16384個のエントリを許容する。符号
化テーブルは、性能指標の値により指示され、以上のサ
イズのなかで上がり下がりする。符号化テーブルのサイ
ズが変更されると、コードワードのサイズが変更され
る。したがって、符号化テーブルが512個、1024
個、2048個、4096個、8192個または163
84個エントリを保持する場合、コードワードは、それ
ぞれ9ビット、10ビット、11ビット、12ビット、
13ビットまたは14ビットとなる。
【0041】前述の動作の結果は、データの相関関係が
弱いか、相関関係がない場合、符号化テーブルのサイズ
は減らされるが、データの相関関係が強い場合は、符号
化テーブルのサイズは増やされるということである。符
号化テーブルのサイズを減らすと、データ圧縮に当てら
れるマイクロプロセッサ時間量とコードワードのサイズ
が減少する。これは、データがランダムであるために圧
縮できない場合に適切であり、データの相関関係が弱い
場合に、性能を改善することができる。他方、符号化テ
ーブルのサイズを増やすと、データ圧縮に当てられるマ
イクロプロセッサ時間量が増える。
弱いか、相関関係がない場合、符号化テーブルのサイズ
は減らされるが、データの相関関係が強い場合は、符号
化テーブルのサイズは増やされるということである。符
号化テーブルのサイズを減らすと、データ圧縮に当てら
れるマイクロプロセッサ時間量とコードワードのサイズ
が減少する。これは、データがランダムであるために圧
縮できない場合に適切であり、データの相関関係が弱い
場合に、性能を改善することができる。他方、符号化テ
ーブルのサイズを増やすと、データ圧縮に当てられるマ
イクロプロセッサ時間量が増える。
【0042】本発明は、多くのストリング符号化および
圧縮スキームで使用できる。これらの圧縮スキームは、
文字のバッファ(履歴)を保持し、データ内のストリン
グを、同じデータ・ストリングの以前の発生にあわされ
たコードワードで置き換えることにより動作する。バッ
ファ・サイズ対コードワード・サイズおよび処理時間と
いう点での同様のトレードオフは、これらのストリング
・ベースの圧縮スキームのすべてに当てはまり、本発明
は、計算された性能指標に応えてバッファ・サイズを動
的に変更することにより、性能の同様な最適化を達成す
るために利用できる。したがって、本発明は、V.42
bis、MNP−7符号化アルゴリズム、およびそれ以
外の多くのデータ圧縮または符号化スキームで有効であ
る。
圧縮スキームで使用できる。これらの圧縮スキームは、
文字のバッファ(履歴)を保持し、データ内のストリン
グを、同じデータ・ストリングの以前の発生にあわされ
たコードワードで置き換えることにより動作する。バッ
ファ・サイズ対コードワード・サイズおよび処理時間と
いう点での同様のトレードオフは、これらのストリング
・ベースの圧縮スキームのすべてに当てはまり、本発明
は、計算された性能指標に応えてバッファ・サイズを動
的に変更することにより、性能の同様な最適化を達成す
るために利用できる。したがって、本発明は、V.42
bis、MNP−7符号化アルゴリズム、およびそれ以
外の多くのデータ圧縮または符号化スキームで有効であ
る。
【0043】また、本発明は、符号化テーブルの歪みを
防止するのに役立つ前処理機能も備える。本発明の通常
の環境では、ラン・レングス・エンコーダは、モデム内
でデータ圧縮回路(符号化テーブル)の前に位置してい
る。ラン・レングス・エンコーダは、コンピュータから
モデムに送信されているデータ内の同一文字から成るス
トリングを認識し、それによりコードに置換する。それ
から、コードは符号化テーブルで符号化され、モデムか
ら伝送される。コードは、復号化テーブルで受け取られ
てから復号化される。
防止するのに役立つ前処理機能も備える。本発明の通常
の環境では、ラン・レングス・エンコーダは、モデム内
でデータ圧縮回路(符号化テーブル)の前に位置してい
る。ラン・レングス・エンコーダは、コンピュータから
モデムに送信されているデータ内の同一文字から成るス
トリングを認識し、それによりコードに置換する。それ
から、コードは符号化テーブルで符号化され、モデムか
ら伝送される。コードは、復号化テーブルで受け取られ
てから復号化される。
【0044】本発明の前処理機能は、データがモデムを
介して端末から通信回線へ通信され、モデムが符号化テ
ーブルを使用してデータを圧縮するシステムで利用され
る。本発明は、モデムが前記に参照される、符号化テー
ブルを備える符号化方法を使用してデータを符号化する
前に、データ内の同一文字から成るストリングを事前に
符号化する方法であり、モデムから伝送される一連の連
続した同一文字を検出するステップと、圧縮のために前
記の符号化テーブルに渡されるデータ内の一連の連続し
た同一文字の代わりにコードで置換するステップを含
む。このコードは事前に決定した信号であり、3回繰り
返された検出済みの同一文字、および同一文字が繰り返
された総回数に等しい数を含む。モデムは、データが符
号化テーブルに渡され、V.42bisプロトコルに従
って圧縮される前に、データを圧縮する。
介して端末から通信回線へ通信され、モデムが符号化テ
ーブルを使用してデータを圧縮するシステムで利用され
る。本発明は、モデムが前記に参照される、符号化テー
ブルを備える符号化方法を使用してデータを符号化する
前に、データ内の同一文字から成るストリングを事前に
符号化する方法であり、モデムから伝送される一連の連
続した同一文字を検出するステップと、圧縮のために前
記の符号化テーブルに渡されるデータ内の一連の連続し
た同一文字の代わりにコードで置換するステップを含
む。このコードは事前に決定した信号であり、3回繰り
返された検出済みの同一文字、および同一文字が繰り返
された総回数に等しい数を含む。モデムは、データが符
号化テーブルに渡され、V.42bisプロトコルに従
って圧縮される前に、データを圧縮する。
【0045】
【発明の実施の形態】次に、類似した数字が類似した部
分を示している図1〜図9を参照しながら、本発明の実
施の形態を示す。図2は、本発明の望ましいデータ圧縮
法および装置を利用するデータ通信アプリケーションを
示す概要図である。本発明のデータ圧縮スキームは、本
発明の実施の形態において、電話回線12上のモデム1
0および15の間でデータを通信するために実現され
る。開示される実施の形態は、モデムで使用するための
ものであるが、本発明は、大容量データ記憶装置、デー
タベース圧縮、遠隔測定法、ビデオ/画像圧縮、音声圧
縮、地震データ圧縮等のあらゆるタイプのデータ圧縮ア
プリケーションでの利用に適している。
分を示している図1〜図9を参照しながら、本発明の実
施の形態を示す。図2は、本発明の望ましいデータ圧縮
法および装置を利用するデータ通信アプリケーションを
示す概要図である。本発明のデータ圧縮スキームは、本
発明の実施の形態において、電話回線12上のモデム1
0および15の間でデータを通信するために実現され
る。開示される実施の形態は、モデムで使用するための
ものであるが、本発明は、大容量データ記憶装置、デー
タベース圧縮、遠隔測定法、ビデオ/画像圧縮、音声圧
縮、地震データ圧縮等のあらゆるタイプのデータ圧縮ア
プリケーションでの利用に適している。
【0046】本発明の実施の形態は、データを圧縮する
ための符号化装置、および圧縮したデータを復号化する
ための別個ではあるが平行した復号化装置の使用に依存
している。それに従って、実施の形態に従って構築され
たモデム10は、符号化テーブル16と関連付けられ、
第2のモデム15は、後述の方法で構築され保守される
復号化テーブル18を備える。
ための符号化装置、および圧縮したデータを復号化する
ための別個ではあるが平行した復号化装置の使用に依存
している。それに従って、実施の形態に従って構築され
たモデム10は、符号化テーブル16と関連付けられ、
第2のモデム15は、後述の方法で構築され保守される
復号化テーブル18を備える。
【0047】本実施の形態の符号化テーブル16および
復号化テーブル18は、ともに、図3に示されるような
マイクロコンピュータまたはマイクロプロセッサ30と
結び付いたメモリ内に含まれるデータ・アレイとして実
現される。図3は、モデム10でデータ圧縮の望ましい
方法を実現するためのマイクロプロセッサ30をベース
にした回路のブロック概要図である。通常、モデム10
は、本明細書で開示されるデータ圧縮法を実現するため
の手段を搭載し、データ圧縮回路20を具備する。デー
タ圧縮回路20は、モデム・コンピュータ・インタフェ
ース回路22に接続される。モデム・コンピュータ・イ
ンタフェース回路部22は、従来のモデム回路で、コン
ピュータ9のような入力ソースからライン23上、デー
タの文字を受信し、データのその項目を伝送のために準
備するための回路部を具備する。一般的には、データの
文字は8ビット・バイトとして受け取られるが、より大
きなバイトのデータも利用され得る。この8ビット・バ
イトは、データ圧縮回路20に接続されるデータ・バス
25に提供される。
復号化テーブル18は、ともに、図3に示されるような
マイクロコンピュータまたはマイクロプロセッサ30と
結び付いたメモリ内に含まれるデータ・アレイとして実
現される。図3は、モデム10でデータ圧縮の望ましい
方法を実現するためのマイクロプロセッサ30をベース
にした回路のブロック概要図である。通常、モデム10
は、本明細書で開示されるデータ圧縮法を実現するため
の手段を搭載し、データ圧縮回路20を具備する。デー
タ圧縮回路20は、モデム・コンピュータ・インタフェ
ース回路22に接続される。モデム・コンピュータ・イ
ンタフェース回路部22は、従来のモデム回路で、コン
ピュータ9のような入力ソースからライン23上、デー
タの文字を受信し、データのその項目を伝送のために準
備するための回路部を具備する。一般的には、データの
文字は8ビット・バイトとして受け取られるが、より大
きなバイトのデータも利用され得る。この8ビット・バ
イトは、データ圧縮回路20に接続されるデータ・バス
25に提供される。
【0048】データ圧縮の結果は、データ・バス25に
提供され、モデム電話インタフェース回路24へ送られ
る。該回路24は、圧縮回路20からデータを受信し、
電話会社の回線のような通信リンク上でのシリアル伝送
のためにデータを調整する。本実施の形態では、圧縮回
路20からモデム電話インタフェース回路24へ提供さ
れるデータは、後述する方法で符号化され、モデム・コ
ンピュータ・インタフェース回路22により圧縮回路に
提供された文字を表すようになる。
提供され、モデム電話インタフェース回路24へ送られ
る。該回路24は、圧縮回路20からデータを受信し、
電話会社の回線のような通信リンク上でのシリアル伝送
のためにデータを調整する。本実施の形態では、圧縮回
路20からモデム電話インタフェース回路24へ提供さ
れるデータは、後述する方法で符号化され、モデム・コ
ンピュータ・インタフェース回路22により圧縮回路に
提供された文字を表すようになる。
【0049】図3を続けて参照すると、データ圧縮回路
20の本実施の形態は、マイクロプロセッサ30を具備
し、該プロセッサ30は、モデム・コンピュータ・イン
タフェース回路22から1バイトのデータを受信し、そ
れを圧縮し、その後で符号化した結果を、シリアル伝送
のためモデム電話インタフェース回路24に向けてデー
タ・バス上に戻すために反応する。マイクロプロセッサ
30は、ザイログ社(Zilog Corporati
on)のZ80マイクロコンピュータやインテル社の8
0486マイクロプロセッサなどの数多くのマイクロコ
ンピュータやマイクロプロセッサのいずれでもよい。こ
れらのマイクロプロセッサのプログラミングおよび動作
は、当業者には周知であり、装置に付属する文献に説明
されている。
20の本実施の形態は、マイクロプロセッサ30を具備
し、該プロセッサ30は、モデム・コンピュータ・イン
タフェース回路22から1バイトのデータを受信し、そ
れを圧縮し、その後で符号化した結果を、シリアル伝送
のためモデム電話インタフェース回路24に向けてデー
タ・バス上に戻すために反応する。マイクロプロセッサ
30は、ザイログ社(Zilog Corporati
on)のZ80マイクロコンピュータやインテル社の8
0486マイクロプロセッサなどの数多くのマイクロコ
ンピュータやマイクロプロセッサのいずれでもよい。こ
れらのマイクロプロセッサのプログラミングおよび動作
は、当業者には周知であり、装置に付属する文献に説明
されている。
【0050】マイクロプロセッサ30に接続されるメモ
リ・デバイス31には、マイクロプロセッサ30の動作
のためのプログラムが格納されている。メモリ・デバイ
ス31は、本実施の形態ではプログラマブル読出し専用
メモリ(PROM)であるが、当業者に周知のそれ以外
の種類のメモリ、例えば、読出し専用メモリ、ランダム
・アクセス・メモリまたは電気的に消去・書込み可能な
読出し専用メモリ等を使用することもできる。メモリ・
デバイス31は、プログラム命令がプログラム制御を受
けてマイクロプロセッサ30に送られるように、データ
・バス25に接続されている。ラインA0−A15から
構成されるマイクロプロセッサ30のアドレス・バス3
2は、マイクロプロセッサ30からのアドレス信号が既
知のやり方でプログラム・メモリをアドレス指定できる
ように、メモリ・デバイス31とマイクロプロセッサ3
0の間で接続されている。当業者は、データ圧縮回路2
0に他の構成も利用できることが分かるであろう。例え
ば、データ・バス25は16ビット、アドレス・バス3
2は32ビットにしたり、マイクロプロセッサ30をハ
ードウェア・ロジック・ステートマシーンで置き換える
ことができる。
リ・デバイス31には、マイクロプロセッサ30の動作
のためのプログラムが格納されている。メモリ・デバイ
ス31は、本実施の形態ではプログラマブル読出し専用
メモリ(PROM)であるが、当業者に周知のそれ以外
の種類のメモリ、例えば、読出し専用メモリ、ランダム
・アクセス・メモリまたは電気的に消去・書込み可能な
読出し専用メモリ等を使用することもできる。メモリ・
デバイス31は、プログラム命令がプログラム制御を受
けてマイクロプロセッサ30に送られるように、データ
・バス25に接続されている。ラインA0−A15から
構成されるマイクロプロセッサ30のアドレス・バス3
2は、マイクロプロセッサ30からのアドレス信号が既
知のやり方でプログラム・メモリをアドレス指定できる
ように、メモリ・デバイス31とマイクロプロセッサ3
0の間で接続されている。当業者は、データ圧縮回路2
0に他の構成も利用できることが分かるであろう。例え
ば、データ・バス25は16ビット、アドレス・バス3
2は32ビットにしたり、マイクロプロセッサ30をハ
ードウェア・ロジック・ステートマシーンで置き換える
ことができる。
【0051】符号化テーブル16(圧縮解除が実行され
る場合には、復号化テーブル18)は、ランダム・アク
セス・メモリ(RAM)35内に格納されており、該メ
モリ35は、アドレス・バス32上のアドレス信号を受
信し、データ・バス25でデータ信号を受信し、送信す
るよう接続される。本実施の形態では、RAM35は、
後述するテーブルおよびレジスタとともに、符号化テー
ブル16のために16384のエントリまで記憶するこ
とができる。各エントリには、7バイトの記憶領域が必
要なため、16384エントリでは少なくとも114,
688バイトのメモリが必要になる。少なくとも12
8,000バイト、またはシステム・デザイナーによっ
て選択される他の十分なサイズのRAM35が使用され
るのが望ましい。
る場合には、復号化テーブル18)は、ランダム・アク
セス・メモリ(RAM)35内に格納されており、該メ
モリ35は、アドレス・バス32上のアドレス信号を受
信し、データ・バス25でデータ信号を受信し、送信す
るよう接続される。本実施の形態では、RAM35は、
後述するテーブルおよびレジスタとともに、符号化テー
ブル16のために16384のエントリまで記憶するこ
とができる。各エントリには、7バイトの記憶領域が必
要なため、16384エントリでは少なくとも114,
688バイトのメモリが必要になる。少なくとも12
8,000バイト、またはシステム・デザイナーによっ
て選択される他の十分なサイズのRAM35が使用され
るのが望ましい。
【0052】マイクロプロセッサ30に関連する制御信
号は、このような要素が当業者にとって周知であるた
め、図3には示されていない。当業者は、ライン36上
の割込み信号(INT)が、データ文字がコンピュータ
・インタフェース回路22によりデータ圧縮回路20に
提供される旨を伝えることが分かるであろう。類似した
やり方で、電話インタフェース回路24は、システムが
復号化モードで利用される場合に、INT信号を提供す
る。割込み信号は、マイクロプロセッサ30に、データ
符号化またはデータ復号化のためのデータがデータ・バ
ス25上に存在することを知らせる。代わりに、そして
より高速な通信の場合、ダイレクト・メモリ・アクセス
が、コンピュータ・インタフェース回路22から文字を
受け入れるために利用される。
号は、このような要素が当業者にとって周知であるた
め、図3には示されていない。当業者は、ライン36上
の割込み信号(INT)が、データ文字がコンピュータ
・インタフェース回路22によりデータ圧縮回路20に
提供される旨を伝えることが分かるであろう。類似した
やり方で、電話インタフェース回路24は、システムが
復号化モードで利用される場合に、INT信号を提供す
る。割込み信号は、マイクロプロセッサ30に、データ
符号化またはデータ復号化のためのデータがデータ・バ
ス25上に存在することを知らせる。代わりに、そして
より高速な通信の場合、ダイレクト・メモリ・アクセス
が、コンピュータ・インタフェース回路22から文字を
受け入れるために利用される。
【0053】また、モデム・インタフェース回路22お
よび24に具備されているのは、それぞれ制御レジスタ
27および28である。該レジスタ27、28は、モデ
ム・インタフェース回路とデータ圧縮回路20の間のイ
ンタフェースを補助するために利用される。制御レジス
タ27および28は、マイクロプロセッサ30とのイン
タフェースのために必要となるさまざまな制御信号を提
供する。例えば、マイクロプロセッサ30が符号化状態
となるように設定される場合、マイクロプロセッサ30
は、符号化のための回路22からの各文字の受信を肯定
応答(acknowledge)しなければならない。
したがって、マイクロプロセッサ30は、割込みを肯定
応答し、マイクロプロセッサ30がビジーである旨を伝
えるために、制御レジスタ27の1ビットをセットする
ことにより、モデム・コンピュータ・インタフェース回
路22からの割込みに対してハンドシェイク法での応答
をする。マイクロプロセッサ30が符号化のために別の
文字を受け入れることができる場合は、このビジー信号
はクリアされて、そして、モデム・コンピュータ・イン
タフェース回路22が圧縮および最終的な伝送のために
別の文字を提供するようされる。
よび24に具備されているのは、それぞれ制御レジスタ
27および28である。該レジスタ27、28は、モデ
ム・インタフェース回路とデータ圧縮回路20の間のイ
ンタフェースを補助するために利用される。制御レジス
タ27および28は、マイクロプロセッサ30とのイン
タフェースのために必要となるさまざまな制御信号を提
供する。例えば、マイクロプロセッサ30が符号化状態
となるように設定される場合、マイクロプロセッサ30
は、符号化のための回路22からの各文字の受信を肯定
応答(acknowledge)しなければならない。
したがって、マイクロプロセッサ30は、割込みを肯定
応答し、マイクロプロセッサ30がビジーである旨を伝
えるために、制御レジスタ27の1ビットをセットする
ことにより、モデム・コンピュータ・インタフェース回
路22からの割込みに対してハンドシェイク法での応答
をする。マイクロプロセッサ30が符号化のために別の
文字を受け入れることができる場合は、このビジー信号
はクリアされて、そして、モデム・コンピュータ・イン
タフェース回路22が圧縮および最終的な伝送のために
別の文字を提供するようされる。
【0054】同様に、制御レジスタ28は、マイクロプ
ロセッサ30と電話インタフェース回路24の間のイン
タフェースを容易にする。ある文字のコード化された圧
縮表現が伝送できる状態にある場合、マイクロプロセッ
サ30は、モデム電話インタフェース回路24の制御レ
ジスタ24の1ビットをセットし、この回路に、コード
が伝送できる状態にあり、回路24内の適切な格納レジ
スタ(不図示)への取り込みのためにデータ・バス上に
配置された旨を知らせる。
ロセッサ30と電話インタフェース回路24の間のイン
タフェースを容易にする。ある文字のコード化された圧
縮表現が伝送できる状態にある場合、マイクロプロセッ
サ30は、モデム電話インタフェース回路24の制御レ
ジスタ24の1ビットをセットし、この回路に、コード
が伝送できる状態にあり、回路24内の適切な格納レジ
スタ(不図示)への取り込みのためにデータ・バス上に
配置された旨を知らせる。
【0055】システムが復号化モードに設定されている
場合、データ・パスは、前述した構成の逆になる。デー
タは電話回線12(図2)から受信され、モデム電話イ
ンタフェース回路24を経由して、圧縮解除のためにマ
イクロプロセッサ30に提供されてから、ライン23上
をコンピュータへ提供するためにモデム・コンピュータ
・インタフェース回路22に提供される。ライン36上
の割込み信号は、文字が電話インタフェース回路24か
ら圧縮解除回路20に渡すことのできる状態にある旨を
知らせる。モデム回路22、24からの割込みは、いず
れもが割込みを生成できるように、ワイヤードORされ
ている。
場合、データ・パスは、前述した構成の逆になる。デー
タは電話回線12(図2)から受信され、モデム電話イ
ンタフェース回路24を経由して、圧縮解除のためにマ
イクロプロセッサ30に提供されてから、ライン23上
をコンピュータへ提供するためにモデム・コンピュータ
・インタフェース回路22に提供される。ライン36上
の割込み信号は、文字が電話インタフェース回路24か
ら圧縮解除回路20に渡すことのできる状態にある旨を
知らせる。モデム回路22、24からの割込みは、いず
れもが割込みを生成できるように、ワイヤードORされ
ている。
【0056】実施の形態の説明に入る前に、一般には
「V.42bis」と呼ばれているデータ圧縮技法につ
いて見直すと役立つであろう。本実施の形態は、V.4
2bisデータ圧縮システムに関連して利用されてい
る。符号化テーブル16は、複数のルート文字4を有
し、各エントリのサイズが典型的には約7バイトであ
る、512個から16,384個のエントリが割り当て
られたことが望ましいRAM35内で、始めにセットア
ップされる。当業者が熟知しているように、符号化テー
ブル16は、V.42bis規格によれば65,536
個のエントリ、又はRAM35が保持できる十分に多く
のエントリを含むことが可能である。図1及び図4を参
照すると、符号化テーブル16の内容は、ルート文字4
から発展した文字から成るストリング5である。文字
「B」などのルート文字4は、それにぶら下がる文字を
有し、ツリー6を形成する。他の文字がぶらさがらず、
かつルート文字4ではない符号化テーブル16内の文字
は、リーフ文字7である。符号化テーブル16(および
対応する復号化テーブル18)内に文字を格納するやり
方は、CCITT勧告のV.42bis規格により定義
されている。
「V.42bis」と呼ばれているデータ圧縮技法につ
いて見直すと役立つであろう。本実施の形態は、V.4
2bisデータ圧縮システムに関連して利用されてい
る。符号化テーブル16は、複数のルート文字4を有
し、各エントリのサイズが典型的には約7バイトであ
る、512個から16,384個のエントリが割り当て
られたことが望ましいRAM35内で、始めにセットア
ップされる。当業者が熟知しているように、符号化テー
ブル16は、V.42bis規格によれば65,536
個のエントリ、又はRAM35が保持できる十分に多く
のエントリを含むことが可能である。図1及び図4を参
照すると、符号化テーブル16の内容は、ルート文字4
から発展した文字から成るストリング5である。文字
「B」などのルート文字4は、それにぶら下がる文字を
有し、ツリー6を形成する。他の文字がぶらさがらず、
かつルート文字4ではない符号化テーブル16内の文字
は、リーフ文字7である。符号化テーブル16(および
対応する復号化テーブル18)内に文字を格納するやり
方は、CCITT勧告のV.42bis規格により定義
されている。
【0057】本発明の実施の形態では、符号化テーブル
1は、最初は長さ1のストリング5(ルート文字4)を
含み、符号化テーブル16は、データがCCITT
V.42bis規格に基づいてモデム10で受信される
に従って満たされる。本発明の望ましい環境は、複数の
文字ストリングを含む符号化テーブル16を備え、スト
リングのそれぞれは、多くのルート文字の内の1つにぶ
ら下がる。符号化テーブル16は、文字のストリームの
部分と置換されることがあるストリングに関連付けられ
たコードワードを含む。V.42bisシステムにおい
てのように、モデム10のマイクロプロセッサ30は、
データ文字の入力ストリーム中の文字を符号化テーブル
中の文字ストリングと比較し、データ文字のストリーム
中の文字が符号化テーブル16中のストリング5の1つ
に一致すると、マイクロプロセッサ30はデータ文字の
ストリーム中の文字をコードワードの対応するもので置
き換える。ただし、符号化テーブルに、一般的に利用さ
れるワードや記号を事前にロードすることもできる。
1は、最初は長さ1のストリング5(ルート文字4)を
含み、符号化テーブル16は、データがCCITT
V.42bis規格に基づいてモデム10で受信される
に従って満たされる。本発明の望ましい環境は、複数の
文字ストリングを含む符号化テーブル16を備え、スト
リングのそれぞれは、多くのルート文字の内の1つにぶ
ら下がる。符号化テーブル16は、文字のストリームの
部分と置換されることがあるストリングに関連付けられ
たコードワードを含む。V.42bisシステムにおい
てのように、モデム10のマイクロプロセッサ30は、
データ文字の入力ストリーム中の文字を符号化テーブル
中の文字ストリングと比較し、データ文字のストリーム
中の文字が符号化テーブル16中のストリング5の1つ
に一致すると、マイクロプロセッサ30はデータ文字の
ストリーム中の文字をコードワードの対応するもので置
き換える。ただし、符号化テーブルに、一般的に利用さ
れるワードや記号を事前にロードすることもできる。
【0058】本発明の実施の形態は、ストリングに関係
付けられたコードワードがどのようにデータのストリー
ム中の文字と置換されるのかに依存していない。言い替
えると、データ圧縮スキームには、V.42bis、M
NP−7、またはそれ以外のストリング・ベースの圧縮
スキームを使用できる。本実施の形態は、データ圧縮に
おいて達成された過去の成功に焦点を当て、以上のスト
リング・ベースの圧縮スキームのいずれにおいても、よ
り効率的なデータ圧縮を行うために符号化テーブル16
のサイズを調整する。しかしながら、本発明の実施の形
態についてさらによく理解できるようにするために、モ
デム10に入力されるデータ・ストリーム内のデータ・
ストリングを圧縮する方法を簡略に説明する。
付けられたコードワードがどのようにデータのストリー
ム中の文字と置換されるのかに依存していない。言い替
えると、データ圧縮スキームには、V.42bis、M
NP−7、またはそれ以外のストリング・ベースの圧縮
スキームを使用できる。本実施の形態は、データ圧縮に
おいて達成された過去の成功に焦点を当て、以上のスト
リング・ベースの圧縮スキームのいずれにおいても、よ
り効率的なデータ圧縮を行うために符号化テーブル16
のサイズを調整する。しかしながら、本発明の実施の形
態についてさらによく理解できるようにするために、モ
デム10に入力されるデータ・ストリーム内のデータ・
ストリングを圧縮する方法を簡略に説明する。
【0059】データは、以下のように、V.42bis
規格に従って本実施の形態の使用とともに圧縮されるの
が望ましい。図1および図3を参照し、コンピュータ9
からモデム10で受け取られた文字ストリングが「BA
Y」であると考える。ストリング「B」を探して、符号
化テーブルが探索される。この文字がルート・ノード4
として発見されると、次の文字が読み取られ、付加され
て、「BA」を形成する。符号化テーブル16は、新し
いストリングがないかどうか探索され、それが発見され
てから、次の文字「Y」が読み取られ、ストリングに付
加され、ストリング「BAY」を形成する。「BAY」
がないかどうか符号化テーブル16が探索され、「BA
Y」は存在していないので、「Y」は削除され、ストリ
ング一致プロシージャは、「BA」を一致ストリングと
し、「Y」を不一致文字として終了する。「BA」のコ
ードワードが符号化され、伝送される。新しいストリン
グ「BAY」が、符号化テーブル16中で「BA」に
「Y」を付加することにより作成され、コードワードが
「BAY」に割り当てられる。文字「Y」は、次のスト
リング一致動作を開始するために使用される。当業者
は、符号化テーブル16および復号化テーブル18が、
データが誤って解釈されないように、同一となるように
発展することが分かるであろう。
規格に従って本実施の形態の使用とともに圧縮されるの
が望ましい。図1および図3を参照し、コンピュータ9
からモデム10で受け取られた文字ストリングが「BA
Y」であると考える。ストリング「B」を探して、符号
化テーブルが探索される。この文字がルート・ノード4
として発見されると、次の文字が読み取られ、付加され
て、「BA」を形成する。符号化テーブル16は、新し
いストリングがないかどうか探索され、それが発見され
てから、次の文字「Y」が読み取られ、ストリングに付
加され、ストリング「BAY」を形成する。「BAY」
がないかどうか符号化テーブル16が探索され、「BA
Y」は存在していないので、「Y」は削除され、ストリ
ング一致プロシージャは、「BA」を一致ストリングと
し、「Y」を不一致文字として終了する。「BA」のコ
ードワードが符号化され、伝送される。新しいストリン
グ「BAY」が、符号化テーブル16中で「BA」に
「Y」を付加することにより作成され、コードワードが
「BAY」に割り当てられる。文字「Y」は、次のスト
リング一致動作を開始するために使用される。当業者
は、符号化テーブル16および復号化テーブル18が、
データが誤って解釈されないように、同一となるように
発展することが分かるであろう。
【0060】一般的に、望ましいデータ圧縮法は、マイ
クロプロセッサ30用のプログラムとして実現される一
連のステップから構成される。図4は、入力データの特
徴を判断し、それに応えて符号化テーブル16(および
復号化テーブル18)を調整し、必要な処理時間に対し
てデータ圧縮を最適化する際に講じられるステップのフ
ローチャートである。
クロプロセッサ30用のプログラムとして実現される一
連のステップから構成される。図4は、入力データの特
徴を判断し、それに応えて符号化テーブル16(および
復号化テーブル18)を調整し、必要な処理時間に対し
てデータ圧縮を最適化する際に講じられるステップのフ
ローチャートである。
【0061】図3および図4を参照すると、データ圧縮
回路20に入る第1文字はステップ50で検出され、ス
テップ52でルート文字4と照合される。第1文字がス
テップ52でルート文字4と照合されてから、データ圧
縮回路20(図3)はステップ54で第2のデータ文字
を待つ。ステップ54でデータ文字がデータ圧縮回路2
0に入力されない場合、マイクロプロセッサ30は、
「NO」ブランチに従ってステップ55へ進み、タイム
アウトが発生したかどうかを判断する。タイムアウトは
ソフトウェア・タイマ(不図示)で、マイクロプロセッ
サ30(図3)により実行されるメモリ31内で実行可
能なコードから構成される。当業者は、ハードウェア・
タイマやカウンタ等が、ソフトウェア・タイマの代わり
に使用できることが分かるであろう。
回路20に入る第1文字はステップ50で検出され、ス
テップ52でルート文字4と照合される。第1文字がス
テップ52でルート文字4と照合されてから、データ圧
縮回路20(図3)はステップ54で第2のデータ文字
を待つ。ステップ54でデータ文字がデータ圧縮回路2
0に入力されない場合、マイクロプロセッサ30は、
「NO」ブランチに従ってステップ55へ進み、タイム
アウトが発生したかどうかを判断する。タイムアウトは
ソフトウェア・タイマ(不図示)で、マイクロプロセッ
サ30(図3)により実行されるメモリ31内で実行可
能なコードから構成される。当業者は、ハードウェア・
タイマやカウンタ等が、ソフトウェア・タイマの代わり
に使用できることが分かるであろう。
【0062】ステップ55でのタイムアウトは、データ
圧縮回路20が、さらにデータ文字を受け取るためにそ
れ以上待たないことを示す。したがって、タイムアウト
がステップ55で発生したら、「YES」ブランチに従
ってステップ56に進む。本実施の形態においては、ス
テップ56でデータが圧縮され、電話回線12上を伝送
される。ステップ56でのデータの伝送の後に、データ
圧縮回路20は、再度、ステップ50で文字入力を待
つ。当業者は、大容量データ記憶装置のような別のシス
テムにおいては、データは、ステップ55でのタイムア
ウト後に単に圧縮され、格納されるだけであることが分
かるであろう。
圧縮回路20が、さらにデータ文字を受け取るためにそ
れ以上待たないことを示す。したがって、タイムアウト
がステップ55で発生したら、「YES」ブランチに従
ってステップ56に進む。本実施の形態においては、ス
テップ56でデータが圧縮され、電話回線12上を伝送
される。ステップ56でのデータの伝送の後に、データ
圧縮回路20は、再度、ステップ50で文字入力を待
つ。当業者は、大容量データ記憶装置のような別のシス
テムにおいては、データは、ステップ55でのタイムア
ウト後に単に圧縮され、格納されるだけであることが分
かるであろう。
【0063】他方、タイムアウトがステップ55で発生
しないこともある。この場合、ステップ55からの「N
O」ブランチに従って、データ圧縮回路20(図3)
は、データ文字がステップ54で受け取られたかどうか
を判断する。ステップ50で検出された文字に続いて受
け取られた第2のデータ文字は、ステップ54で検出さ
れる。「YES」ブランチに続き、ステップ54での文
字の受け取りに応えて、ステップ58が実行される。
しないこともある。この場合、ステップ55からの「N
O」ブランチに従って、データ圧縮回路20(図3)
は、データ文字がステップ54で受け取られたかどうか
を判断する。ステップ50で検出された文字に続いて受
け取られた第2のデータ文字は、ステップ54で検出さ
れる。「YES」ブランチに続き、ステップ54での文
字の受け取りに応えて、ステップ58が実行される。
【0064】可能である場合は、モデム10に到達する
第2のデータ文字が、ステップ58で符号化テーブル1
6中のストリング5(図1)内の文字と一致させられ
る。それ以降の入力データ文字もステップ54で検出さ
れ、ステップ58でストリングに一致させられる。この
ようにして、ステップ54および58で、入力文字
(群)が検出され、符号化テーブル16中のストリング
5と一致させられる。
第2のデータ文字が、ステップ58で符号化テーブル1
6中のストリング5(図1)内の文字と一致させられ
る。それ以降の入力データ文字もステップ54で検出さ
れ、ステップ58でストリングに一致させられる。この
ようにして、ステップ54および58で、入力文字
(群)が検出され、符号化テーブル16中のストリング
5と一致させられる。
【0065】ステップ58で、データストリーム内の入
力文字を符号化テーブル中のストリング5と一致させら
れなかった場合には、その後、一致したストリングの置
換コードワードがステップ59で見つけられる。一致し
ない文字は格納され、ステップ52でルート文字4に一
致され、前述のように、符号化テーブル16中のストリ
ングと入力文字の照合を開始するのに使用される。一致
したストリングに対応するコードワードは、最終的に、
ステップ56で受け取り側モデム15(図2)に伝送さ
れる。一致しない文字は、ステップ56で圧縮されずに
伝送され、復号化テーブル18(図2)に次のルート文
字4を知らせ、一致しない文字はルート文字4と照合さ
れ、図4のステップ52でシード文字として使用され
る。当業者には、CCITT勧告のV.42bis規格
に記述されるような、コードワードによる文字ストリン
グの置換、および符号化テーブルと復号化テーブルのマ
ーキングの構築ならびに保守は周知である。
力文字を符号化テーブル中のストリング5と一致させら
れなかった場合には、その後、一致したストリングの置
換コードワードがステップ59で見つけられる。一致し
ない文字は格納され、ステップ52でルート文字4に一
致され、前述のように、符号化テーブル16中のストリ
ングと入力文字の照合を開始するのに使用される。一致
したストリングに対応するコードワードは、最終的に、
ステップ56で受け取り側モデム15(図2)に伝送さ
れる。一致しない文字は、ステップ56で圧縮されずに
伝送され、復号化テーブル18(図2)に次のルート文
字4を知らせ、一致しない文字はルート文字4と照合さ
れ、図4のステップ52でシード文字として使用され
る。当業者には、CCITT勧告のV.42bis規格
に記述されるような、コードワードによる文字ストリン
グの置換、および符号化テーブルと復号化テーブルのマ
ーキングの構築ならびに保守は周知である。
【0066】コンピュータ9(図3)により生成され、
データ圧縮回路20に入るデータ文字の入力ストリーム
がステップ59で圧縮されるかどうかには関係なく、ス
テップ60で、符号化テーブル16は「枝刈り」され
る。例えば、図1、図2、および図4を参照すると、符
号化テーブル16に到達するデータ・ストリーム内のワ
ードは、「BATS」かもしれない。図1に示される符
号化テーブルエントリのストリング内にあるのは、ワー
ド「BAT」だけである。一致しない文字「S」は、符
号化テーブル16でワード「BATS」を形成するため
に、文字「T」にぶら下がるように加えられ、そして、
コードワードは、当業者によく知られたやり方、例え
ば、ストリングおよびコードワードのメモリ・ロケーシ
ョンをマッピングまたは直接リンクするなどして、RA
M35内で「BATS」と関連付けられる。しかし、符
号化テーブル16のサイズは固定である。したがって、
文字「S」を符号化テーブル16に加えるには、別の文
字の削除が必要になる。
データ圧縮回路20に入るデータ文字の入力ストリーム
がステップ59で圧縮されるかどうかには関係なく、ス
テップ60で、符号化テーブル16は「枝刈り」され
る。例えば、図1、図2、および図4を参照すると、符
号化テーブル16に到達するデータ・ストリーム内のワ
ードは、「BATS」かもしれない。図1に示される符
号化テーブルエントリのストリング内にあるのは、ワー
ド「BAT」だけである。一致しない文字「S」は、符
号化テーブル16でワード「BATS」を形成するため
に、文字「T」にぶら下がるように加えられ、そして、
コードワードは、当業者によく知られたやり方、例え
ば、ストリングおよびコードワードのメモリ・ロケーシ
ョンをマッピングまたは直接リンクするなどして、RA
M35内で「BATS」と関連付けられる。しかし、符
号化テーブル16のサイズは固定である。したがって、
文字「S」を符号化テーブル16に加えるには、別の文
字の削除が必要になる。
【0067】プログラム・メモリ31に格納されるエン
トリ削除ルーチン61(図3)は、ステップ60でマイ
クロプロセッサ30により実行される。エントリ削除ル
ーチン61は、入力文字に対して一致するものが符号化
テーブル16で見つからない場合に、リーフ文字7をツ
リー6(図1)から枝刈りするのに使われる。したがっ
て、エントリ削除ルーチン61は、通常、文字がデータ
圧縮回路20で受け取られ、その文字がステップ58で
符号化テーブル16中の文字と一致しなかった後に呼び
出される。当業者には、エントリ削除ルーチン61が、
どのようにしてツリー6内のリーフ文字7を見つけ出
し、符号化テーブル16から削除するのかはよく知られ
ている。本発明の実施の形態は、ステップ60で、V.
42bis勧告に記述される枝刈り技法を取り入れる。
トリ削除ルーチン61(図3)は、ステップ60でマイ
クロプロセッサ30により実行される。エントリ削除ル
ーチン61は、入力文字に対して一致するものが符号化
テーブル16で見つからない場合に、リーフ文字7をツ
リー6(図1)から枝刈りするのに使われる。したがっ
て、エントリ削除ルーチン61は、通常、文字がデータ
圧縮回路20で受け取られ、その文字がステップ58で
符号化テーブル16中の文字と一致しなかった後に呼び
出される。当業者には、エントリ削除ルーチン61が、
どのようにしてツリー6内のリーフ文字7を見つけ出
し、符号化テーブル16から削除するのかはよく知られ
ている。本発明の実施の形態は、ステップ60で、V.
42bis勧告に記述される枝刈り技法を取り入れる。
【0068】図4、図5、および図6を参照すると、符
号化テーブル16がステップ60で修正されてから、符
号化テーブル制御プログラム62が実行される。プログ
ラム62では、データ文字間の相関関係が分析され、符
号化テーブル16のサイズが変更されることがある(図
5)。
号化テーブル16がステップ60で修正されてから、符
号化テーブル制御プログラム62が実行される。プログ
ラム62では、データ文字間の相関関係が分析され、符
号化テーブル16のサイズが変更されることがある(図
5)。
【0069】図4を参照すると、プログラム62は、ス
テップ64およびステップ66を包含するように、点線
で示されている。コンピュータ9(図3)からデータ圧
縮回路20に到達するデータのストリーム内の文字間の
相関関係は、ステップ64で判断される。本実施の形態
では、データのストリーム内の文字間の相関関係は、
(1)前に受け取られたデータの圧縮率、および(2)
符号化テーブル16の特徴を分析することにより判断さ
れる。ステップ64でデータ文字間の相関関係を判断し
てから、符号化テーブル16のサイズがステップ66で
調整される。
テップ64およびステップ66を包含するように、点線
で示されている。コンピュータ9(図3)からデータ圧
縮回路20に到達するデータのストリーム内の文字間の
相関関係は、ステップ64で判断される。本実施の形態
では、データのストリーム内の文字間の相関関係は、
(1)前に受け取られたデータの圧縮率、および(2)
符号化テーブル16の特徴を分析することにより判断さ
れる。ステップ64でデータ文字間の相関関係を判断し
てから、符号化テーブル16のサイズがステップ66で
調整される。
【0070】図5は、望ましい符号化テーブル制御プロ
グラム62の詳細なフローチャートであり、データ・ス
トリーム内の文字間の相関関係を判断し、符号化テーブ
ル16のサイズを調整することにより、データ圧縮を最
適化し、データを圧縮しようとして費やされるプロセッ
サ時間を最小限に抑えるために講じられるステップを示
す。図5のフローチャートの説明するのに、まず、デー
タ圧縮回路20に到達するデータのストリーム内の文字
間の相関関係を判断するのに使用される望ましい技法に
ついて概説する。符号化テーブル16が狭いツリーまた
は広いツリー6を持つのかどうかを判断するために、ス
テップ65で符号化テーブル16の特徴が分析される。
この特徴は、「正規化使用カウント」と呼ばれ、後に詳
細に述べる。次に、データ・ストリームの圧縮率がステ
ップ68で決定される。ステップ65および68で判断
されるこれらの2つの基準は、ステップ72であわされ
て性能指標を算出する。性能指標は、ステップ66での
符号化テーブル16のサイズの調整を制御するために利
用される。
グラム62の詳細なフローチャートであり、データ・ス
トリーム内の文字間の相関関係を判断し、符号化テーブ
ル16のサイズを調整することにより、データ圧縮を最
適化し、データを圧縮しようとして費やされるプロセッ
サ時間を最小限に抑えるために講じられるステップを示
す。図5のフローチャートの説明するのに、まず、デー
タ圧縮回路20に到達するデータのストリーム内の文字
間の相関関係を判断するのに使用される望ましい技法に
ついて概説する。符号化テーブル16が狭いツリーまた
は広いツリー6を持つのかどうかを判断するために、ス
テップ65で符号化テーブル16の特徴が分析される。
この特徴は、「正規化使用カウント」と呼ばれ、後に詳
細に述べる。次に、データ・ストリームの圧縮率がステ
ップ68で決定される。ステップ65および68で判断
されるこれらの2つの基準は、ステップ72であわされ
て性能指標を算出する。性能指標は、ステップ66での
符号化テーブル16のサイズの調整を制御するために利
用される。
【0071】図5のプログラム62についての詳説に進
む前に、図6を簡単に参照する。図6は、本発明の実施
の形態でコンピュータ9からモデム10に到達するデー
タ・ストリーム内のデータ文字間の相関関係を計算する
ために、マイクロプロセッサ・ベースの回路(図3)に
より使用されるレジスタおよびテーブルのブロック図で
ある。具体的には、レジスタ90は正規化使用カウント
89を保持し、レジスタ95は圧縮率96を保持し、レ
ジスタ109は性能指標110を保持する。さらに、テ
ーブル93は使用カウント・デルタ92を格納し、第2
テーブル97は圧縮率デルタ98を格納する。これらは
以下に詳細に説明する。レジスタ90、95、および1
09、ならびにテーブル93および97は、実施の形態
のRAM35(図3)内のメモリ位置である。ただし、
テーブルおよびレジスタは、当業者にとっては明かなよ
うに、あらゆるデータ格納のための装置または手段で
の、固定されたメモリ位置または可変メモリ位置とする
ことができる。
む前に、図6を簡単に参照する。図6は、本発明の実施
の形態でコンピュータ9からモデム10に到達するデー
タ・ストリーム内のデータ文字間の相関関係を計算する
ために、マイクロプロセッサ・ベースの回路(図3)に
より使用されるレジスタおよびテーブルのブロック図で
ある。具体的には、レジスタ90は正規化使用カウント
89を保持し、レジスタ95は圧縮率96を保持し、レ
ジスタ109は性能指標110を保持する。さらに、テ
ーブル93は使用カウント・デルタ92を格納し、第2
テーブル97は圧縮率デルタ98を格納する。これらは
以下に詳細に説明する。レジスタ90、95、および1
09、ならびにテーブル93および97は、実施の形態
のRAM35(図3)内のメモリ位置である。ただし、
テーブルおよびレジスタは、当業者にとっては明かなよ
うに、あらゆるデータ格納のための装置または手段で
の、固定されたメモリ位置または可変メモリ位置とする
ことができる。
【0072】本発明の実施の形態では、データの性質
は、まず、符号化テーブル16のツリーの形に基づいて
ステップ65(図5)で分析される。図5および図6を
参照すると、符号化テーブル16のツリーの形は、レジ
スタ90の正規化使用カウント89を使用して評価され
る。正規化使用カウント89は、使用カウントの平均値
である。使用カウントは、プログラム・メモリ31内の
エントリ削除ルーチン61(図3)が実行されるたびに
計算されることが望ましい。したがって、本実施の形態
では、使用カウントは、データ文字のストリングがコー
ドワードと照合されるたびに計算される。正規化使用カ
ウント89は、モデム10でコンピュータ9から500
番目の文字が受け取られるたびに、計算されるのが望ま
しい。500番目の文字が受け取られた後、次の正規化
使用カウント89の計算を開始するために、使用カウン
トおよび正規化使用カウント89はゼロにリセットされ
る。
は、まず、符号化テーブル16のツリーの形に基づいて
ステップ65(図5)で分析される。図5および図6を
参照すると、符号化テーブル16のツリーの形は、レジ
スタ90の正規化使用カウント89を使用して評価され
る。正規化使用カウント89は、使用カウントの平均値
である。使用カウントは、プログラム・メモリ31内の
エントリ削除ルーチン61(図3)が実行されるたびに
計算されることが望ましい。したがって、本実施の形態
では、使用カウントは、データ文字のストリングがコー
ドワードと照合されるたびに計算される。正規化使用カ
ウント89は、モデム10でコンピュータ9から500
番目の文字が受け取られるたびに、計算されるのが望ま
しい。500番目の文字が受け取られた後、次の正規化
使用カウント89の計算を開始するために、使用カウン
トおよび正規化使用カウント89はゼロにリセットされ
る。
【0073】当業者にはよく知られているように、プロ
グラム・メモリ31内のエントリ削除ルーチン61(図
3)は、ツリー6のリーフ文字7を見つけて削除するた
めに擬似乱数法を利用する。具体的には、エントリ削除
ルーチンのために、カウンタは符号化テーブルのエント
リにわたって増分でカウントする。エントリ削除ルーチ
ン61が起動されると、カウンタは次のエントリに移動
し、エントリにヌル・ポインタが設定されている(リー
フ文字7である。図1参照)かどうかを判断する。エン
トリにヌル・ポインタが設定されている場合、それはリ
ーフ文字であり、削除される。エントリにヌル・ポイン
タが設定されていない場合、それはリーフ文字ではない
ので、カウンタは増分され、削除するリーフ文字を見つ
けるために、次のエントリが調べられる。当業者には、
エントリ削除ルーチン61のようなプログラムはよく知
られている。使用カウントは、単に、削除対象のリーフ
・エントリを見つけるために探索が行われたエントリの
総数である。
グラム・メモリ31内のエントリ削除ルーチン61(図
3)は、ツリー6のリーフ文字7を見つけて削除するた
めに擬似乱数法を利用する。具体的には、エントリ削除
ルーチンのために、カウンタは符号化テーブルのエント
リにわたって増分でカウントする。エントリ削除ルーチ
ン61が起動されると、カウンタは次のエントリに移動
し、エントリにヌル・ポインタが設定されている(リー
フ文字7である。図1参照)かどうかを判断する。エン
トリにヌル・ポインタが設定されている場合、それはリ
ーフ文字であり、削除される。エントリにヌル・ポイン
タが設定されていない場合、それはリーフ文字ではない
ので、カウンタは増分され、削除するリーフ文字を見つ
けるために、次のエントリが調べられる。当業者には、
エントリ削除ルーチン61のようなプログラムはよく知
られている。使用カウントは、単に、削除対象のリーフ
・エントリを見つけるために探索が行われたエントリの
総数である。
【0074】正規化使用カウント89は、以下に示すよ
うに計算される。
うに計算される。
【0075】
【数2】正規化使用カウント=(使用カウント)/(エ
ントリ削除プログラムの呼出回数) 正規化使用カウント89は、ステップ65でレジスタ9
0の中にロードされ、符号化テーブル16のツリー幅の
概算値として利用される。符号化テーブル16のツリー
の平均幅は、正規化使用カウント89に基づいて計算す
ることができ、以下の公式に基づいている。
ントリ削除プログラムの呼出回数) 正規化使用カウント89は、ステップ65でレジスタ9
0の中にロードされ、符号化テーブル16のツリー幅の
概算値として利用される。符号化テーブル16のツリー
の平均幅は、正規化使用カウント89に基づいて計算す
ることができ、以下の公式に基づいている。
【0076】平均幅=1+2*正規化使用カウント 使用カウントは、調べられた文字またはエントリの総数
である。正規化使用カウント89は、使用カウントの平
均値である。正規化使用カウント89は、本明細書中、
符号化テーブル16のツリーの平均幅を示すものとして
使用される。当業者は、計算された平均幅が、データ文
字間の相関関係を評価するために利用可能であり、符号
化テーブル16のツリーの特徴を評価する他の基準を計
算することも可能であることが分かるであろう。当業者
は、使用カウント、正規化使用カウント、平均幅、また
はそれ以外の、符号化テーブル16のツリーの形を示す
値を計算するための複数の異なった方法がわかるであろ
う。
である。正規化使用カウント89は、使用カウントの平
均値である。正規化使用カウント89は、本明細書中、
符号化テーブル16のツリーの平均幅を示すものとして
使用される。当業者は、計算された平均幅が、データ文
字間の相関関係を評価するために利用可能であり、符号
化テーブル16のツリーの特徴を評価する他の基準を計
算することも可能であることが分かるであろう。当業者
は、使用カウント、正規化使用カウント、平均幅、また
はそれ以外の、符号化テーブル16のツリーの形を示す
値を計算するための複数の異なった方法がわかるであろ
う。
【0077】図5のステップ65を続行すると、正規化
使用カウント89を使って概算される、符号化テーブル
16のツリーの幅は、テーブル93(図6(a))と比
較される。テーブル93内では、使用カウント値94a
−eおよび使用カウント・デルタ92a−eが関係付け
られている。正規化使用カウント89は、使用カウント
94a−eの事前に決定したしきい値と比較される。使
用カウント値94a−eは、正規化使用カウント89を
相対値使用カウント・デルタ92a−eに変換する。正
規化使用カウント値94a−eは、それぞれ、64、3
2、16、8および4であるのが望ましい。ただし、こ
れらの値はデータ圧縮回路20の感度を調整するために
変更できる。事前に決定した各使用カウント値94a−
eは、使用カウント・デルタ92a−eに関連付けられ
ている。使用カウント89は使用カウント値94a−e
および対応する使用カウント・デルタ92a−eと照合
される。例えば、正規化使用カウント89が値40とし
て計算されると、それにもっとも近い使用カウント値9
4a−eは、32に等しい使用カウント値94bであ
る。「−5」の使用カウント・デルタ92bが、使用カ
ウント値94bに割り当てられており、値「−5」は、
後述するように、性能指標110に加算される。
使用カウント89を使って概算される、符号化テーブル
16のツリーの幅は、テーブル93(図6(a))と比
較される。テーブル93内では、使用カウント値94a
−eおよび使用カウント・デルタ92a−eが関係付け
られている。正規化使用カウント89は、使用カウント
94a−eの事前に決定したしきい値と比較される。使
用カウント値94a−eは、正規化使用カウント89を
相対値使用カウント・デルタ92a−eに変換する。正
規化使用カウント値94a−eは、それぞれ、64、3
2、16、8および4であるのが望ましい。ただし、こ
れらの値はデータ圧縮回路20の感度を調整するために
変更できる。事前に決定した各使用カウント値94a−
eは、使用カウント・デルタ92a−eに関連付けられ
ている。使用カウント89は使用カウント値94a−e
および対応する使用カウント・デルタ92a−eと照合
される。例えば、正規化使用カウント89が値40とし
て計算されると、それにもっとも近い使用カウント値9
4a−eは、32に等しい使用カウント値94bであ
る。「−5」の使用カウント・デルタ92bが、使用カ
ウント値94bに割り当てられており、値「−5」は、
後述するように、性能指標110に加算される。
【0078】図5および図6(b)を参照すると、デー
タの性質は、次に、レジスタ95に格納されたデータ圧
縮率96を使って、ステップ68で分析される。圧縮率
96は、コンピュータ9からモデム10に入力されたビ
ット数を、モデム10からモデム15(図2)へ出力さ
れたビット数で割ったものである。モデム10等の、今
日、販売されている「インテリジェント」モデムでは、
圧縮率は500文字がコンピュータ9からモデム10に
入った後に計算される。計算された圧縮率96は、計算
されるたびに計算された圧縮率でロードされるモデム1
0内のメモリ位置からレジスタ95の中にロードされる
のが望ましい。代わりに、プログラム・メモリ31内の
プログラム62は、事前に決定した文字数後毎に1度、
モデムにより達成されている圧縮率を計算することもで
きる。当業者は、圧縮率96が計算される頻度を、希望
どおりに調整可能であることが分かるであろう。
タの性質は、次に、レジスタ95に格納されたデータ圧
縮率96を使って、ステップ68で分析される。圧縮率
96は、コンピュータ9からモデム10に入力されたビ
ット数を、モデム10からモデム15(図2)へ出力さ
れたビット数で割ったものである。モデム10等の、今
日、販売されている「インテリジェント」モデムでは、
圧縮率は500文字がコンピュータ9からモデム10に
入った後に計算される。計算された圧縮率96は、計算
されるたびに計算された圧縮率でロードされるモデム1
0内のメモリ位置からレジスタ95の中にロードされる
のが望ましい。代わりに、プログラム・メモリ31内の
プログラム62は、事前に決定した文字数後毎に1度、
モデムにより達成されている圧縮率を計算することもで
きる。当業者は、圧縮率96が計算される頻度を、希望
どおりに調整可能であることが分かるであろう。
【0079】レジスタ95内の圧縮率96は、圧縮率デ
ルタ99a−e(図6(b))を計算するために、圧縮
率値98a−eのテーブル97と比較される。例えば、
圧縮率96が1.1である場合、圧縮率は、事前に決定
した圧縮率値98a−eに比較され、「1.0」にもっ
とも近い。したがって、この例では、「−10」に等し
い圧縮率デルタ99aが、「1.1」という圧縮率と関
係付けられる。圧縮率レジスタ96が圧縮率デルタ99
a−eと照合された後、デルタは性能指標110に加算
される。
ルタ99a−e(図6(b))を計算するために、圧縮
率値98a−eのテーブル97と比較される。例えば、
圧縮率96が1.1である場合、圧縮率は、事前に決定
した圧縮率値98a−eに比較され、「1.0」にもっ
とも近い。したがって、この例では、「−10」に等し
い圧縮率デルタ99aが、「1.1」という圧縮率と関
係付けられる。圧縮率レジスタ96が圧縮率デルタ99
a−eと照合された後、デルタは性能指標110に加算
される。
【0080】図5および図6(c)を参照すると、ステ
ップ65で決定された使用カウント・デルタ92a−e
およびステップ68で決定された圧縮率デルタ99a−
eは、ステップ72で性能指標110を計算するのに使
用される。この例では、使用カウント・デルタ92eお
よび圧縮率デルタ99aが、性能指標110に加えられ
る。それ以降、ステップ74および76で、性能指標1
10は、それぞれ事前に決定した第1および第2しきい
値120および122と比較される。本実施の形態で
は、高しきい値120が100と等しく、低しきい値1
22が0に等しい。しきい値120、122は、メモリ
31(図3)に格納されている。低しきい値と高しきい
値を、システムの感度を制御するために調整することに
より、符号化テーブル16のサイズの変更頻度を増減で
きることは、当業者にとって明かであろう。さらに、ス
テップ74および76の実行の順序は、固定されていな
い。
ップ65で決定された使用カウント・デルタ92a−e
およびステップ68で決定された圧縮率デルタ99a−
eは、ステップ72で性能指標110を計算するのに使
用される。この例では、使用カウント・デルタ92eお
よび圧縮率デルタ99aが、性能指標110に加えられ
る。それ以降、ステップ74および76で、性能指標1
10は、それぞれ事前に決定した第1および第2しきい
値120および122と比較される。本実施の形態で
は、高しきい値120が100と等しく、低しきい値1
22が0に等しい。しきい値120、122は、メモリ
31(図3)に格納されている。低しきい値と高しきい
値を、システムの感度を制御するために調整することに
より、符号化テーブル16のサイズの変更頻度を増減で
きることは、当業者にとって明かであろう。さらに、ス
テップ74および76の実行の順序は、固定されていな
い。
【0081】性能指標110が、ステップ74で、高し
きい値120より大きいと判断されると、「YES」ブ
ランチに従ってステップ75に進み、符号化テーブル1
6のサイズが増やされる。他方、ステップ76で性能指
標110が低しきい値122より低いと、符号化テーブ
ル16のサイズはステップ77で小さくされる。
きい値120より大きいと判断されると、「YES」ブ
ランチに従ってステップ75に進み、符号化テーブル1
6のサイズが増やされる。他方、ステップ76で性能指
標110が低しきい値122より低いと、符号化テーブ
ル16のサイズはステップ77で小さくされる。
【0082】性能指標110がしきい値120と122
の間の値である場合、ステップ74および76で「N
O」ブランチに従い、符号化テーブル16が入力データ
を符号化するために正しいサイズであることが示され
る。このようにして、符号化テーブル16のサイズは、
該サイズが、モデム10に到達するデータ文字ストリー
ムの間の相関関係に比較して適切ではない場合にのみ、
調整される。
の間の値である場合、ステップ74および76で「N
O」ブランチに従い、符号化テーブル16が入力データ
を符号化するために正しいサイズであることが示され
る。このようにして、符号化テーブル16のサイズは、
該サイズが、モデム10に到達するデータ文字ストリー
ムの間の相関関係に比較して適切ではない場合にのみ、
調整される。
【0083】ステップ66を要約すると、性能指標11
0がステップ74で高しきい値120より大きい場合、
正規化使用カウント89および圧縮率96の値が性能指
標110を調整するために結合され、入力データが強く
相関関係付けられていることを示す。このようにして、
符号化テーブル16に割り当てられるメモリ・スペース
は、ステップ75で増やされる。他方、性能指標110
が、ステップ76で低しきい値122より低い場合、正
規化使用カウント89および圧縮率96は、性能指数1
10が、入力データが、よくても弱い相関関係にあるこ
とを示すようしたことになる。したがって、符号化テー
ブル16に割り当てられるメモリ・スペースは、ステッ
プ77で減らされる。
0がステップ74で高しきい値120より大きい場合、
正規化使用カウント89および圧縮率96の値が性能指
標110を調整するために結合され、入力データが強く
相関関係付けられていることを示す。このようにして、
符号化テーブル16に割り当てられるメモリ・スペース
は、ステップ75で増やされる。他方、性能指標110
が、ステップ76で低しきい値122より低い場合、正
規化使用カウント89および圧縮率96は、性能指数1
10が、入力データが、よくても弱い相関関係にあるこ
とを示すようしたことになる。したがって、符号化テー
ブル16に割り当てられるメモリ・スペースは、ステッ
プ77で減らされる。
【0084】当業者は、性能指標110、使用カウント
・デルタ92a−e、圧縮率デルタ99a−e、および
しきい値120と122が相対的なものであり、希望の
通りに変更できることが分かるであろう。本明細書中に
記述されている使用カウント値94a−eおよび圧縮率
値98a−eは例示的なもので、ユーザはそれ以外の値
を選択することができ、設計の仕様に従って、これらの
値より多くまたは少なく設定することができる。さら
に、符号化テーブル16のサイズは、本発明の範囲内の
さまざまなレベルで増減させることができる。使用カウ
ント・デルタ92a−e、圧縮率デルタ99a−e、お
よび性能増分(後述する)の値が適切に変更されるなら
ば、性能指標110が事前に決定したしきい以上の(ま
たは、等しい)場合、符号化テーブル16のサイズが大
きくされ、性能指標110が事前に決定したしきい以下
の(または、等しい)場合、符号化テーブル16のサイ
ズが減らされることは明かであろう。
・デルタ92a−e、圧縮率デルタ99a−e、および
しきい値120と122が相対的なものであり、希望の
通りに変更できることが分かるであろう。本明細書中に
記述されている使用カウント値94a−eおよび圧縮率
値98a−eは例示的なもので、ユーザはそれ以外の値
を選択することができ、設計の仕様に従って、これらの
値より多くまたは少なく設定することができる。さら
に、符号化テーブル16のサイズは、本発明の範囲内の
さまざまなレベルで増減させることができる。使用カウ
ント・デルタ92a−e、圧縮率デルタ99a−e、お
よび性能増分(後述する)の値が適切に変更されるなら
ば、性能指標110が事前に決定したしきい以上の(ま
たは、等しい)場合、符号化テーブル16のサイズが大
きくされ、性能指標110が事前に決定したしきい以下
の(または、等しい)場合、符号化テーブル16のサイ
ズが減らされることは明かであろう。
【0085】符号化テーブル16のサイズは、次に示す
ように、RAM35内で増減される。符号化テーブル1
6に割り当てられるメモリ・スペースがステップ77で
増やされる場合、符号化テーブルのストリングの長さ、
最大コードワード・サイズ、およびコードワードの総数
等の、符号化テーブル16のサイズを制限するパラメー
タが増やされる。パラメータを増加させると、符号化テ
ーブル16内のストリング、および符号化テーブル自体
がより大きなサイズになるようになる。符号化テーブル
16に割り当てられる新しいメモリ・スペースには、デ
ータ文字がモデム10で受け取られるに従って、ストリ
ングがロードされる。
ように、RAM35内で増減される。符号化テーブル1
6に割り当てられるメモリ・スペースがステップ77で
増やされる場合、符号化テーブルのストリングの長さ、
最大コードワード・サイズ、およびコードワードの総数
等の、符号化テーブル16のサイズを制限するパラメー
タが増やされる。パラメータを増加させると、符号化テ
ーブル16内のストリング、および符号化テーブル自体
がより大きなサイズになるようになる。符号化テーブル
16に割り当てられる新しいメモリ・スペースには、デ
ータ文字がモデム10で受け取られるに従って、ストリ
ングがロードされる。
【0086】符号化テーブル16に割り当てられるメモ
リ・スペースがステップ75で減らされる場合は、符号
化テーブル16から既存のエントリを削除しなければな
らない。本実施の形態では、符号化テーブル16は、符
号化テーブル16のサイズが減らされるときは、完全に
再初期化される。具体的には、ルート文字4を除くすべ
ての文字が削除され、符号化テーブル16のサイズを制
限するパラメータである、符号化テーブルのストリング
の長さ、最大コードワード・サイズ、およびコードワー
ドの総数が減らされる。それから、ストリング5は、モ
デム10ではデータが受け取られていなかったかのよう
に、符号化テーブル16の中のルート文字4から発展す
る。当業者には明かであるように、符号化テーブル16
を再初期化すると、ストリング5が形成され、現在の小
さくなった符号化テーブル16に割り当てられたRAM
35を満たす間、ある程度の遅延が生じる。しかし、符
号化テーブル16のサイズが減らされた時は、データの
ストリームの文字の相関関係は弱く、符号化テーブル1
6は、再初期化される前、データをうまく圧縮していな
かった。したがって、符号化テーブル16を再初期化す
ることは有効である。当業者は、テーブル16から選択
して文字を削除することにより、テーブル16のサイズ
を減らすことも可能であることが分かるであろう。ただ
し、この場合、テーブルのサイズの調整に費やされるマ
イクロプロセッサ30の時間は増加する。
リ・スペースがステップ75で減らされる場合は、符号
化テーブル16から既存のエントリを削除しなければな
らない。本実施の形態では、符号化テーブル16は、符
号化テーブル16のサイズが減らされるときは、完全に
再初期化される。具体的には、ルート文字4を除くすべ
ての文字が削除され、符号化テーブル16のサイズを制
限するパラメータである、符号化テーブルのストリング
の長さ、最大コードワード・サイズ、およびコードワー
ドの総数が減らされる。それから、ストリング5は、モ
デム10ではデータが受け取られていなかったかのよう
に、符号化テーブル16の中のルート文字4から発展す
る。当業者には明かであるように、符号化テーブル16
を再初期化すると、ストリング5が形成され、現在の小
さくなった符号化テーブル16に割り当てられたRAM
35を満たす間、ある程度の遅延が生じる。しかし、符
号化テーブル16のサイズが減らされた時は、データの
ストリームの文字の相関関係は弱く、符号化テーブル1
6は、再初期化される前、データをうまく圧縮していな
かった。したがって、符号化テーブル16を再初期化す
ることは有効である。当業者は、テーブル16から選択
して文字を削除することにより、テーブル16のサイズ
を減らすことも可能であることが分かるであろう。ただ
し、この場合、テーブルのサイズの調整に費やされるマ
イクロプロセッサ30の時間は増加する。
【0087】符号化テーブル16のサイズが、ステップ
77で減らされるか、ステップ75で増やされた後、性
能指標110はステップ78で中間値にセットし直され
る。性能指標110は値「50」(「100」という高
しきい値129と「0」という低しきい値の間)にセッ
トし直されるのが望ましい。このようにして、データ文
字間の相関関係を検出し、それに応えて性能指標110
を調整し、符号化テーブル16のサイズを調整するプロ
セスが繰り返される。必要であれば、この時点でしきい
値、または前記のそれ以外の値を変更し、データ文字間
の相関関係に対する感度を増減させることができる。
77で減らされるか、ステップ75で増やされた後、性
能指標110はステップ78で中間値にセットし直され
る。性能指標110は値「50」(「100」という高
しきい値129と「0」という低しきい値の間)にセッ
トし直されるのが望ましい。このようにして、データ文
字間の相関関係を検出し、それに応えて性能指標110
を調整し、符号化テーブル16のサイズを調整するプロ
セスが繰り返される。必要であれば、この時点でしきい
値、または前記のそれ以外の値を変更し、データ文字間
の相関関係に対する感度を増減させることができる。
【0088】符号化テーブル116のサイズが変更され
るかどうかに関係なく、図5のステップ80に入る。ス
テップ80は、性能指標110に対して、事前に決定し
た性能増分を加算または減算することを要求する。具体
的には、本実施の形態では、事前に決定した値は、
「5」という値を持つ性能増分である。図7は、性能指
標に性能増分を加えるために講じられるステップのフロ
ーチャートである。簡単に図7を参照すると、性能指標
110がステップ82で「55」より大きい場合、
「5」という性能増分がステップ84で性能指標110
から差し引かれる。性能指標がステップ86で「45」
未満であると、性能増分「5」がステップ88で性能指
標110に加えられる。ステップ80の後、プログラム
は図4のステップ50に戻る。
るかどうかに関係なく、図5のステップ80に入る。ス
テップ80は、性能指標110に対して、事前に決定し
た性能増分を加算または減算することを要求する。具体
的には、本実施の形態では、事前に決定した値は、
「5」という値を持つ性能増分である。図7は、性能指
標に性能増分を加えるために講じられるステップのフロ
ーチャートである。簡単に図7を参照すると、性能指標
110がステップ82で「55」より大きい場合、
「5」という性能増分がステップ84で性能指標110
から差し引かれる。性能指標がステップ86で「45」
未満であると、性能増分「5」がステップ88で性能指
標110に加えられる。ステップ80の後、プログラム
は図4のステップ50に戻る。
【0089】図7に示されたステップの効果は、性能指
標110を中間値にわずかに近づけることである。使用
カウント・デルタ92a−eおよび圧縮率デルタ99a
−eの小さい値が、ゆっくりと性能指標110に加えら
れ、最終的に符号化テーブル16のサイズの変更を生じ
させることは望ましくない。性能増分は、データ圧縮回
路20(図3)に到達するデータ・ストリーム内の文字
間の相関関係の実質的な変化に対応してのみ発生するよ
うに、符号化テーブル16のサイズに対する変更を制限
する。性能指標の値が、システム感度を増減させるため
に選択可能であることは当業者にとって明かであろう。
標110を中間値にわずかに近づけることである。使用
カウント・デルタ92a−eおよび圧縮率デルタ99a
−eの小さい値が、ゆっくりと性能指標110に加えら
れ、最終的に符号化テーブル16のサイズの変更を生じ
させることは望ましくない。性能増分は、データ圧縮回
路20(図3)に到達するデータ・ストリーム内の文字
間の相関関係の実質的な変化に対応してのみ発生するよ
うに、符号化テーブル16のサイズに対する変更を制限
する。性能指標の値が、システム感度を増減させるため
に選択可能であることは当業者にとって明かであろう。
【0090】実施の形態では、符号化テーブルのサイズ
は増分で調整される。例えば、望ましい実施の形態で
は、符号化テーブル16のサイズは最初は2048エン
トリである。符号化テーブル16に割り当てられるメモ
リ・スペースがステップ75(図5)で増やされると、
符号化テーブル16は4096エントリに増やされる。
符号化テーブル16の次の増分ステップは、8192エ
ントリである。これが本実施の形態の符号化テーブル1
6の最大サイズである。ただし、当業者にとっては明ら
かなように、符号化テーブル16をさらに小さくしたり
または大きくしたりできるし、増分ステップをさらに広
くしたり細かくしたりすることができる。同様に、望ま
しい符号化テーブル16は、サイズが8192エント
リ、4096エントリ、2048エントリから1024
エントリへ、段階的に減らされる。
は増分で調整される。例えば、望ましい実施の形態で
は、符号化テーブル16のサイズは最初は2048エン
トリである。符号化テーブル16に割り当てられるメモ
リ・スペースがステップ75(図5)で増やされると、
符号化テーブル16は4096エントリに増やされる。
符号化テーブル16の次の増分ステップは、8192エ
ントリである。これが本実施の形態の符号化テーブル1
6の最大サイズである。ただし、当業者にとっては明ら
かなように、符号化テーブル16をさらに小さくしたり
または大きくしたりできるし、増分ステップをさらに広
くしたり細かくしたりすることができる。同様に、望ま
しい符号化テーブル16は、サイズが8192エント
リ、4096エントリ、2048エントリから1024
エントリへ、段階的に減らされる。
【0091】符号化テーブル16のサイズが調整される
に従って、コードワードのサイズも同様に調整される。
例えば、コードワードは、符号化テーブル16のサイズ
が1024エントリ、2048エントリ、4096エン
トリと増分されるのに従って、10ビット、11ビッ
ト、12ビットと増やされる。これにより、伝送される
データのタイプに対応するように、コードワードのサイ
ズが調整される。
に従って、コードワードのサイズも同様に調整される。
例えば、コードワードは、符号化テーブル16のサイズ
が1024エントリ、2048エントリ、4096エン
トリと増分されるのに従って、10ビット、11ビッ
ト、12ビットと増やされる。これにより、伝送される
データのタイプに対応するように、コードワードのサイ
ズが調整される。
【0092】符号化テーブル16の特徴に基づいてデー
タ文字間の相関関係を判断する方法は複数ある。具体的
には、例えば、ツリー幅を決定するために、符号化テー
ブル16全体でのリーフ文字7の総数をカウントしても
よい。正規化使用カウント89が、エントリ削除ルーチ
ン61の間以外にも計算され得ることは、当業者にとっ
て明かであろう。例えば、正規化使用カウント89は、
各データ文字がモデム10で受け取られた後、あるいは
事前に決定した文字数がモデム10で受け取られて後
(例えば、100文字ごとに)、決定するようにするこ
とができる。当業者は、符号化テーブル16の特徴を、
モデム10で受け取られる各文字を符号化テーブル内の
文字と照合しようとするプログラムの探索ループ部分
(図4のステップ54および58)の間、またはシステ
ム・デザイナーにより選択されるそれ以外の時点で分析
されるようにすることができることが分かるであろう。
しかしながら、符号化テーブルの特徴の計算するための
処理負担は、最小限に抑えられるべきである。
タ文字間の相関関係を判断する方法は複数ある。具体的
には、例えば、ツリー幅を決定するために、符号化テー
ブル16全体でのリーフ文字7の総数をカウントしても
よい。正規化使用カウント89が、エントリ削除ルーチ
ン61の間以外にも計算され得ることは、当業者にとっ
て明かであろう。例えば、正規化使用カウント89は、
各データ文字がモデム10で受け取られた後、あるいは
事前に決定した文字数がモデム10で受け取られて後
(例えば、100文字ごとに)、決定するようにするこ
とができる。当業者は、符号化テーブル16の特徴を、
モデム10で受け取られる各文字を符号化テーブル内の
文字と照合しようとするプログラムの探索ループ部分
(図4のステップ54および58)の間、またはシステ
ム・デザイナーにより選択されるそれ以外の時点で分析
されるようにすることができることが分かるであろう。
しかしながら、符号化テーブルの特徴の計算するための
処理負担は、最小限に抑えられるべきである。
【0093】要約すると、データ圧縮回路20の実施の
形態は、符号化テーブル16のサイズを調整する方法を
実行し、データ圧縮を最適化し、費やされるマイクロプ
ロセッサ30の時間を最小限に抑えるために、図5に示
されるように以下のステップ(a)〜(e)を行う。
形態は、符号化テーブル16のサイズを調整する方法を
実行し、データ圧縮を最適化し、費やされるマイクロプ
ロセッサ30の時間を最小限に抑えるために、図5に示
されるように以下のステップ(a)〜(e)を行う。
【0094】(a)ステップ65で正規化使用カウント
89および使用カウント・デルタ92a−eを決定す
る。
89および使用カウント・デルタ92a−eを決定す
る。
【0095】(b)ステップ68でデータの圧縮率96
および圧縮率デルタ99a−eを決定する。
および圧縮率デルタ99a−eを決定する。
【0096】(c)ステップ72で性能指標110に、
使用カウント・デルタ92a−eおよび圧縮率デルタ9
9a−eを追加する。
使用カウント・デルタ92a−eおよび圧縮率デルタ9
9a−eを追加する。
【0097】(d)性能指標110と、第1低しきい値
及び第2高しきい値を、それぞれステップ74および7
6で比較する。
及び第2高しきい値を、それぞれステップ74および7
6で比較する。
【0098】(i)性能指標110がステップ74で高
しきい値120より大きい場合、符号化テーブル16に
割り当てられるRAM35内のメモリ・スペースを増や
す。
しきい値120より大きい場合、符号化テーブル16に
割り当てられるRAM35内のメモリ・スペースを増や
す。
【0099】(ii)性能指標110がステップ76で
低しきい値122未満の場合、符号化テーブル16に割
り当てられるRAM35内のメモリ・スペースを減ら
す。 (iii)符号化テーブル内の平均ツリー幅が高しきい
値120と低しきい値122の間の場合、符号化テーブ
ルのサイズを調整しない。
低しきい値122未満の場合、符号化テーブル16に割
り当てられるRAM35内のメモリ・スペースを減ら
す。 (iii)符号化テーブル内の平均ツリー幅が高しきい
値120と低しきい値122の間の場合、符号化テーブ
ルのサイズを調整しない。
【0100】(e)ステップ80で性能増分に制動係数
を加える。
を加える。
【0101】符号化テーブル16を修正するために図4
および図5で講じられるステップは、モデム15(図
2)の復号化テーブル18で同様に行われる。当業者
は、同一の符号化テーブル16と復号化テーブル18を
それぞれ同時に維持する方法をよく知っている。例え
ば、図5において、符号化テーブル16のサイズがステ
ップ75で増やされると、あるいはステップ77で減ら
されると、それに従って、復号化テーブル18のサイズ
も、モデム15で実行される図4−7と同様の動作によ
り調整される。
および図5で講じられるステップは、モデム15(図
2)の復号化テーブル18で同様に行われる。当業者
は、同一の符号化テーブル16と復号化テーブル18を
それぞれ同時に維持する方法をよく知っている。例え
ば、図5において、符号化テーブル16のサイズがステ
ップ75で増やされると、あるいはステップ77で減ら
されると、それに従って、復号化テーブル18のサイズ
も、モデム15で実行される図4−7と同様の動作によ
り調整される。
【0102】当業者は、性能指標が、データのランダム
または非ランダム(相関関連を有する)性質を測定する
ために使われる相対値であることが分かるであろう。他
の尺度または基準を利用して、データ文字間の相関関係
を反映し、追跡することもできる。さらに、使用カウン
トまたは圧縮率のどちらかを個別に性能指標に加えるこ
とも可能であるし、性能指標を計算するために、他の基
準を、個別にあるいは一緒に利用することもできる。
または非ランダム(相関関連を有する)性質を測定する
ために使われる相対値であることが分かるであろう。他
の尺度または基準を利用して、データ文字間の相関関係
を反映し、追跡することもできる。さらに、使用カウン
トまたは圧縮率のどちらかを個別に性能指標に加えるこ
とも可能であるし、性能指標を計算するために、他の基
準を、個別にあるいは一緒に利用することもできる。
【0103】また、符号化テーブルを調整するサイズ
は、設計者および本発明のユーザの好みの問題である。
本発明は、圧縮されるデータ間の相関関係を評価し、そ
れに基づいてデータ圧縮に使われる符号化テーブルのサ
イズを調整するのに符号化テーブルの特徴が利用される
あらゆるシステムを実現する。
は、設計者および本発明のユーザの好みの問題である。
本発明は、圧縮されるデータ間の相関関係を評価し、そ
れに基づいてデータ圧縮に使われる符号化テーブルのサ
イズを調整するのに符号化テーブルの特徴が利用される
あらゆるシステムを実現する。
【0104】当業者にとって、前記の実施の形態がデー
タ通信環境外で利用するために変更できることも明かで
あろう。データの相関関係の性質に応えて符号化テーブ
ルのサイズをリアルタイムで調整する技法は、データベ
ースにデータを格納するコンピュータ内等のさまざまな
環境でのデータ圧縮に利用できる。本発明の範囲は、こ
のようなシステムを含むことを意図している。さらに、
本発明は、V.42bis以外の符号化スキームととも
に利用してもよい。
タ通信環境外で利用するために変更できることも明かで
あろう。データの相関関係の性質に応えて符号化テーブ
ルのサイズをリアルタイムで調整する技法は、データベ
ースにデータを格納するコンピュータ内等のさまざまな
環境でのデータ圧縮に利用できる。本発明の範囲は、こ
のようなシステムを含むことを意図している。さらに、
本発明は、V.42bis以外の符号化スキームととも
に利用してもよい。
【0105】当業者には明かになるように、本発明は、
ファジー論理やニューラル・ネットワークのような技法
を利用した実現に非常に適している。図8(a)および
(b)は、それぞれ使用カウント値94a−eおよび圧
縮率値98a−eに関連付けられたファジー集合を示
す。従来の論理または集合論では、アイテムはある集合
または別の集合に属すると見なされている。したがっ
て、図8(a)および(b)は、大まかに、使用カウン
ト値94a−eと圧縮率値99a−eを非常に高いから
非常に低いまでの集合に関連付けている。
ファジー論理やニューラル・ネットワークのような技法
を利用した実現に非常に適している。図8(a)および
(b)は、それぞれ使用カウント値94a−eおよび圧
縮率値98a−eに関連付けられたファジー集合を示
す。従来の論理または集合論では、アイテムはある集合
または別の集合に属すると見なされている。したがっ
て、図8(a)および(b)は、大まかに、使用カウン
ト値94a−eと圧縮率値99a−eを非常に高いから
非常に低いまでの集合に関連付けている。
【0106】しかしながら、ファジー集合論では、値
は、集合への所属度を持つと見なされ、複数の集合に属
し得る。メンバシップ関数は、値と集合の関係を定義す
る。図9(a)は、計算された正規化使用カウント89
の実例となるメンバシップ関数、および「非常に高い」
120a、「高い」120b、「中間」120c、「低
い」120d、および「非常に低い」120eという集
合を示す。図9(b)は、圧縮率96(図6(b))の
実例となるメンバシップ関数および「非常に高い]12
2a、「高い」122b、「中間」122c、「低い」
122d、および「非常に低い」122eという集合を
示す。したがって、図9(a)および(b)の集合のそ
れぞれの所属は、「非常に高い」、「高い」、「中
間」、「低い」および「非常に低い」である。
は、集合への所属度を持つと見なされ、複数の集合に属
し得る。メンバシップ関数は、値と集合の関係を定義す
る。図9(a)は、計算された正規化使用カウント89
の実例となるメンバシップ関数、および「非常に高い」
120a、「高い」120b、「中間」120c、「低
い」120d、および「非常に低い」120eという集
合を示す。図9(b)は、圧縮率96(図6(b))の
実例となるメンバシップ関数および「非常に高い]12
2a、「高い」122b、「中間」122c、「低い」
122d、および「非常に低い」122eという集合を
示す。したがって、図9(a)および(b)の集合のそ
れぞれの所属は、「非常に高い」、「高い」、「中
間」、「低い」および「非常に低い」である。
【0107】例えば、図9(a)に示すように、正規化
利用カウント89が25であると、これは集合「中間」
120cに対して所属度が0.4で、集合「高い」12
0bに対して所属度が0.6であることになり、使用カ
ウント・デルタ92は、以下に示すように、各集合に対
応する値の重み付けされた和として計算される。
利用カウント89が25であると、これは集合「中間」
120cに対して所属度が0.4で、集合「高い」12
0bに対して所属度が0.6であることになり、使用カ
ウント・デルタ92は、以下に示すように、各集合に対
応する値の重み付けされた和として計算される。
【0108】
【数3】使用カウント・デルタ=0.4*0+0.6*
(−5)=−3 同様に、図9(b)に示すように、圧縮率95が1.8
である場合、集合「低い」122bに対する所属度は
0.2で、集合「中間」122cに対する所属度は0.
8になる。圧縮率デルタ99は、各集合に対応する値の
重み付けされた和として計算される。
(−5)=−3 同様に、図9(b)に示すように、圧縮率95が1.8
である場合、集合「低い」122bに対する所属度は
0.2で、集合「中間」122cに対する所属度は0.
8になる。圧縮率デルタ99は、各集合に対応する値の
重み付けされた和として計算される。
【0109】
【数4】圧縮率デルタ=0.2*(−5)+0.8*0
=−1 それから、性能指標110は、前記の計算済みのデルタ
値を使って、以下に示すように計算される。
=−1 それから、性能指標110は、前記の計算済みのデルタ
値を使って、以下に示すように計算される。
【0110】
【数5】性能指標=前の性能指標+使用カウント・デル
タ+圧縮率デルタ したがって、上記の例では、「−3」という使用カウン
ト・デルタと「−1」という圧縮率デルタの加算に基づ
いて、「−4」という値が性能指標110に加えられ
る。
タ+圧縮率デルタ したがって、上記の例では、「−3」という使用カウン
ト・デルタと「−1」という圧縮率デルタの加算に基づ
いて、「−4」という値が性能指標110に加えられ
る。
【0111】図10および図3に従って、本発明により
提供される別の機能が示される。具体的には、データ
は、モデム10でデータ圧縮回路20により圧縮される
前にラン・レングス符号化(RLE)プログラム130
により前処理される。RLE130は、プログラム・メ
モリ31に記憶されるのが望ましいが、それ以外の、モ
デム10あるいはコンピュータ9内のメモリ・ロケーシ
ョンに格納することもできる。
提供される別の機能が示される。具体的には、データ
は、モデム10でデータ圧縮回路20により圧縮される
前にラン・レングス符号化(RLE)プログラム130
により前処理される。RLE130は、プログラム・メ
モリ31に記憶されるのが望ましいが、それ以外の、モ
デム10あるいはコンピュータ9内のメモリ・ロケーシ
ョンに格納することもできる。
【0112】本実施の形態では、出ていくデータがデー
タ圧縮回路20に渡される前に、データはRLE130
により分析される。RLE130は、(1)一連の連続
する同一文字を検出し、(2)その一連の同一文字をコ
ードワードで置換するという2つの一般的なステップを
実行する。RLE130は、文字が符号化テ−ブル16
及び復号化テ−ブル18(図3)を歪める前に、同一連
続文字の連なりを取り除く。
タ圧縮回路20に渡される前に、データはRLE130
により分析される。RLE130は、(1)一連の連続
する同一文字を検出し、(2)その一連の同一文字をコ
ードワードで置換するという2つの一般的なステップを
実行する。RLE130は、文字が符号化テ−ブル16
及び復号化テ−ブル18(図3)を歪める前に、同一連
続文字の連なりを取り除く。
【0113】図10を参照すると、ラン・レングス符号
化プログラム130の詳細な動作が示されている。望ま
しいRLE130は、ステップ132でデータ・バス2
5(図3)上の第1文字を検出するように書かれたソフ
トウェアである。ステップ134で、第1文字は格納さ
れ、カウンタは増分され、第1文字は、符号化テーブル
16を使って第1文字を符号化するために、図4に示さ
れるプログラムの実行を開始するマイクロプロセッサ3
0により調べられる。
化プログラム130の詳細な動作が示されている。望ま
しいRLE130は、ステップ132でデータ・バス2
5(図3)上の第1文字を検出するように書かれたソフ
トウェアである。ステップ134で、第1文字は格納さ
れ、カウンタは増分され、第1文字は、符号化テーブル
16を使って第1文字を符号化するために、図4に示さ
れるプログラムの実行を開始するマイクロプロセッサ3
0により調べられる。
【0114】ステップ136で、第2文字が検出され
る。第1文字および第2文字は、ステップ138で比較
される。ステップ138で文字が同一ではないと決定さ
れる場合、ラン・レングス符号化プログラム130は、
「NO」ブランチに従い、ステップ132へ進み、再度
開始される。
る。第1文字および第2文字は、ステップ138で比較
される。ステップ138で文字が同一ではないと決定さ
れる場合、ラン・レングス符号化プログラム130は、
「NO」ブランチに従い、ステップ132へ進み、再度
開始される。
【0115】他方、第1文字と第2文字がステップ13
8で同一であると決定される場合は、「YES」ブラン
チに従って、ステップ140に進む。ステップ140で
は、カウンタが増分され、別の同一文字が検出されたこ
とを示す。さらに、第2文字は、前述のように、符号化
テーブル16を利用して第2文字を符号化するために、
図4に示されるプログラムの実行を開始するマイクロプ
ロセッサにより調べられる。
8で同一であると決定される場合は、「YES」ブラン
チに従って、ステップ140に進む。ステップ140で
は、カウンタが増分され、別の同一文字が検出されたこ
とを示す。さらに、第2文字は、前述のように、符号化
テーブル16を利用して第2文字を符号化するために、
図4に示されるプログラムの実行を開始するマイクロプ
ロセッサにより調べられる。
【0116】ステップ142で、カウンタ・トータルが
分析される。カウンタ・トータルがステップ142で3
未満の場合、「NO」ブランチに従いステップ136に
進み、次の文字を待つ。したがって、カウンタ・トータ
ルが、3つの連続した同一文字が検出されたことを意味
する3に等しくなるまで、データ文字は単に観察される
のみで、図4に示されるような符号化テーブル16を使
った符号化のために渡される。
分析される。カウンタ・トータルがステップ142で3
未満の場合、「NO」ブランチに従いステップ136に
進み、次の文字を待つ。したがって、カウンタ・トータ
ルが、3つの連続した同一文字が検出されたことを意味
する3に等しくなるまで、データ文字は単に観察される
のみで、図4に示されるような符号化テーブル16を使
った符号化のために渡される。
【0117】3つの同一文字が連続して受け取られる
と、カウンタ・トータルはステップ142で3に等しく
なる。この場合、「YES」ブランチに従い、ステップ
144が実行される。ステップ144では、3つの同一
文字に続く文字が検出される。ステップ146で後に受
け取られた各文字が3つの同一文字と同一であると確認
されると、カウンタがステップ148で増分される。さ
らに文字は保持され、文字が符号化テーブル16を使っ
て符号化されていないため、モデム10から送出されな
いことを意味する。ステップ148の後で、モデム10
はステップ144で別の文字を待つ。
と、カウンタ・トータルはステップ142で3に等しく
なる。この場合、「YES」ブランチに従い、ステップ
144が実行される。ステップ144では、3つの同一
文字に続く文字が検出される。ステップ146で後に受
け取られた各文字が3つの同一文字と同一であると確認
されると、カウンタがステップ148で増分される。さ
らに文字は保持され、文字が符号化テーブル16を使っ
て符号化されていないため、モデム10から送出されな
いことを意味する。ステップ148の後で、モデム10
はステップ144で別の文字を待つ。
【0118】結局は、ステップ146で、最初の3つの
同一文字に同一ではない文字が検出される。同一ではな
い文字がステップ146で検出されると、「NO」ブラ
ンチに従ってステップ15に進み、そこで前述の符号化
テーブル16を使った符号化のために、カウント・トー
タルが図4のプログラムに渡される。さらに、カウンタ
はゼロにリセットされる。それから、RLEプログラム
130はステップ134に進み、同一ではなかった文字
は、同一文字を見つけるために使用される新しい文字と
して格納される。カウンタはステップ134で1に増分
され、ステップ144で検出され、ステップ146で同
一ではないと判断された文字は、符号化テーブル16
(図2)による符号化のために渡される。
同一文字に同一ではない文字が検出される。同一ではな
い文字がステップ146で検出されると、「NO」ブラ
ンチに従ってステップ15に進み、そこで前述の符号化
テーブル16を使った符号化のために、カウント・トー
タルが図4のプログラムに渡される。さらに、カウンタ
はゼロにリセットされる。それから、RLEプログラム
130はステップ134に進み、同一ではなかった文字
は、同一文字を見つけるために使用される新しい文字と
して格納される。カウンタはステップ134で1に増分
され、ステップ144で検出され、ステップ146で同
一ではないと判断された文字は、符号化テーブル16
(図2)による符号化のために渡される。
【0119】3つの同一文字から成る連続グループのそ
れぞれは、符号化テーブル16により符号化するために
渡される。しかしながら、最初の3つの同一文字の後、
続く同一文字は、符号化テーブル16を使って分析され
ない。カウンタは、それぞれの同一文字が検出される毎
にカウントアップする。このようにして、連続同一文字
の総数がカウントされる。一連の連続同一文字と同一で
はない文字が受け取られると、受け取られた同一文字の
総数が、符号化テーブル16を使った符号化のためにマ
イクロプロセッサ35に伝送される。このようにして、
1つのコードが、同一文字の長い連なりに対して形成さ
れる。具体的には、3つの同一文字の後には、常に、同
一文字の総数を表す数が続く。したがって、コードは、
同一文字が繰り返された回数を表す数が後に続く3つの
同一文字である。
れぞれは、符号化テーブル16により符号化するために
渡される。しかしながら、最初の3つの同一文字の後、
続く同一文字は、符号化テーブル16を使って分析され
ない。カウンタは、それぞれの同一文字が検出される毎
にカウントアップする。このようにして、連続同一文字
の総数がカウントされる。一連の連続同一文字と同一で
はない文字が受け取られると、受け取られた同一文字の
総数が、符号化テーブル16を使った符号化のためにマ
イクロプロセッサ35に伝送される。このようにして、
1つのコードが、同一文字の長い連なりに対して形成さ
れる。具体的には、3つの同一文字の後には、常に、同
一文字の総数を表す数が続く。したがって、コードは、
同一文字が繰り返された回数を表す数が後に続く3つの
同一文字である。
【0120】復号化テーブル18(図2)に続くデコー
ダ(不図示)は、3つの同一文字を受け取ると、次に受
け取られる文字がストリング内の同一文字の総数を表す
数であることを認識している。同一文字の他の数を利用
して、同一文字のストリングに対するコードを特定する
こともできる。例えば、4つの同一文字が同一文字数の
カウントの前に来るようにすることもできる。設計者
は、コードが置換される前に検出されなければならない
連続同一文字の最小数を設定することができる。これに
より、おそらくデータ拡張という結果になるたった2つ
の同一の連続する文字をコードで置換することをなくせ
る。モデム10、15は、ラン・レングス符号化が使用
される機能であるかどうかを、当業者によく知られた方
法で最初のハンドシェイク中に設定する。
ダ(不図示)は、3つの同一文字を受け取ると、次に受
け取られる文字がストリング内の同一文字の総数を表す
数であることを認識している。同一文字の他の数を利用
して、同一文字のストリングに対するコードを特定する
こともできる。例えば、4つの同一文字が同一文字数の
カウントの前に来るようにすることもできる。設計者
は、コードが置換される前に検出されなければならない
連続同一文字の最小数を設定することができる。これに
より、おそらくデータ拡張という結果になるたった2つ
の同一の連続する文字をコードで置換することをなくせ
る。モデム10、15は、ラン・レングス符号化が使用
される機能であるかどうかを、当業者によく知られた方
法で最初のハンドシェイク中に設定する。
【0121】当業者は、実施の形態の前述される発明の
構成要素の多くを、ソフトウェアまたはハードウェアの
いずれにもすることができることが分かるであろう。例
えば、カウンタおよび加算器は、当業者には容易に、ソ
フトウェアまたはハードウェアで実現できる。
構成要素の多くを、ソフトウェアまたはハードウェアの
いずれにもすることができることが分かるであろう。例
えば、カウンタおよび加算器は、当業者には容易に、ソ
フトウェアまたはハードウェアで実現できる。
【図1】ストリング・ベースのデータ符号化テーブルの
ツリーの図である。
ツリーの図である。
【図2】本発明の望ましいデータ圧縮方法および装置を
利用するデータ通信アプリケーションを示す概要図であ
る。
利用するデータ通信アプリケーションを示す概要図であ
る。
【図3】モデムにおいてデータ圧縮の望ましい方法を実
現するためのマイクロプロセッサ・ベースの回路のブロ
ック概要図である。
現するためのマイクロプロセッサ・ベースの回路のブロ
ック概要図である。
【図4】符号化テーブルを利用してデータを符号化し、
データ中の文字間の相関関係を判断し、それに応えて符
号化テーブルを調整するために講じられるステップのフ
ローチャートである。
データ中の文字間の相関関係を判断し、それに応えて符
号化テーブルを調整するために講じられるステップのフ
ローチャートである。
【図5】データ・ストリーム内のデータ間の相関関係を
判断し、符号化テーブルのサイズを調整するために講じ
られるステップの詳細なフローチャートである。
判断し、符号化テーブルのサイズを調整するために講じ
られるステップの詳細なフローチャートである。
【図6】データ・ストリーム内の文字間の相関関係を計
算するために、図3のマイクロプロセッサ・ベースの回
路により使用されるレジスタおよびテーブルのブロック
図である。
算するために、図3のマイクロプロセッサ・ベースの回
路により使用されるレジスタおよびテーブルのブロック
図である。
【図7】符号化テーブルのサイズの変更の頻度を制限す
るために講じられるステップのフローチャートである。
るために講じられるステップのフローチャートである。
【図8】本発明のデータ圧縮の望ましい方法を実行する
ためのファジー論理技法の利用を示す図である。
ためのファジー論理技法の利用を示す図である。
【図9】本発明のデータ圧縮の望ましい方法を実行する
ためのファジー論理技法のメンバシップ関数を示す図で
ある。
ためのファジー論理技法のメンバシップ関数を示す図で
ある。
【図10】符号化テーブルに渡す前にデータ・ストリー
ムが前処理されるラン・レングス符号化プログラムの動
作のフローチャートである。
ムが前処理されるラン・レングス符号化プログラムの動
作のフローチャートである。
4 ルート文字 5 ストリング 6 ツリー 7 リーフ文字 9 コンピュータ 10,15 モデム 12 電話回線 16 符号化テーブル 18 復号化テーブル 22 コンピュータインタフェースモデム回路部 24 電話インタフェースモデム回路部 27,28 制御レジスタ 31 プログラムメモリ 30 マイクロコンピュータ 35 RAM
Claims (24)
- 【請求項1】 複数の文字ストリングを含む符号化テー
ブルを具備し、該符号化テーブル内の文字ストリング
が、文字ストリームの一部が前記符号化テーブル内の文
字ストリングの1つに一致するときに、データ文字スト
リームの部分と置換され得るコードワードに関連付けら
れているデータ文字ストリームを圧縮する装置におけ
る、データ圧縮効率およびデータ圧縮率を改善するため
に符号化テーブルを制御するデータ圧縮方法において、 データ文字・ストリーム内のデータ文字の相関関係を評
価するステップと、 データ文字間の前記評価された相関関係に応えて性能指
標を調整するステップと、 前記性能指標に応えて前記符号化テーブルに割り当てら
れるメモリ・スペースを変更するステップと、から構成
されることを特徴とするデータ圧縮方法。 - 【請求項2】 入力データ文字間の相関関係を判断する
ステップが、 装置に入力されるデータ文字ストリームの圧縮率を、装
置に入力される文字数を装置から出力されるデータ・バ
イト数で割ったものに等しくなるよう決定するステップ
と、 前記符号化テーブル内のツリーの内の少なくとも1つの
平均長さおよび幅の特徴の1つを評価するために使用さ
れる使用カウントを決定するステップと、から構成され
ることを特徴とする請求項1に記載のデータ圧縮方法。 - 【請求項3】 前記決定されたデータ文字間の相関関係
に応えて前記性能指標を調整するステップが、 前記圧縮率および前記使用カウントの決定された値に基
づいて前記性能指標を調整することを特徴とする請求項
2に記載のデータ圧縮方法。 - 【請求項4】 前記性能指標を調整するステップが、 前記圧縮率が事前に決定した第1の値より下で、前記使
用カウントが事前に決定した第2の値より大きい場合
に、事前に決定した第1の量で、前記性能指標を増加さ
せるステップと、 前記圧縮率が事前に決定した第3の値より大きく、前記
使用カウントが事前に決定した第4の値未満の場合に、
事前に決定した第2の量で、前記性能指標を減少させる
ステップと、から構成されることを特徴とする請求項3
に記載のデータ圧縮方法。 - 【請求項5】 前記使用カウントが、エントリ削除ルー
チン実行時に事前に決定した回数にわたって正規化され
た値として計算され、前記エントリ削除ルーチンがリー
フ文字を決定し、前記符号化テーブルから削除すること
を特徴とする請求項2に記載のデータ圧縮方法。 - 【請求項6】 前記使用カウントが、ツリー内の文字数
の平均を経時的に取ることにより計算されることを特徴
とする請求項5に記載のデータ圧縮方法。 - 【請求項7】 前記使用カウントが、データ文字ストリ
ーム内の文字と符号化テーブル内の文字の間で一致が見
つけ出される前に探索されるストリング中の文字数をカ
ウントし、経時的に平均をとり、文字数を2で乗算する
ことにより決定されることを特徴とする請求項2に記載
のデータ圧縮方法。 - 【請求項8】 使用カウントが、符号化テーブル内のリ
ーフ文字の総数をカウントすることにより決定されるこ
とを特徴とする請求項2に記載のデータ圧縮方法。 - 【請求項9】 前記メモリ・テーブルに割り当てられる
メモリ・スペースを変更するステップが、 前記性能指標が事前に決定した第1の値を上回ったとき
に前記符号化テーブルに割り当てられるメモリ・スペー
スを減らすステップと、 前記性能指数が事前に決定した第2の値を下回ったとき
に前記符号化テーブルに割り当てられるメモリ・スペー
スを増やすステップと、を含むことを特徴とする請求項
4に記載のデータ圧縮方法。 - 【請求項10】 複数の文字ストリングを含む符号化テ
ーブルを具備し、該符号化テーブル内の文字ストリング
が、文字ストリームの一部が前記符号化テーブル内の文
字ストリングの1つに一致するときに、データ文字スト
リームの部分と置換され得るコードワードに関連付けら
れているデータ文字ストリームを圧縮する装置におけ
る、データ圧縮効率およびデータ圧縮率を改善するため
に符号化テーブルを制御するデータ圧縮方法において、 データ文字ストリーム内のデータ文字間の相関関係を判
断するステップと、 前記判断されたデータ文字間の相関関係に応えて性能指
標を調整するステップと、 前記性能指数が事前に決定した第1の値を上回ると、前
記符号化テーブルに割り当てられるメモリ・スペースを
縮小させるステップと、 前記性能指標が事前に決定した第2の値を下回ると、前
記符号化テーブルに割り当てられるメモリ・スペースを
拡大するステップと、から構成されることを特徴とする
データ圧縮方法。 - 【請求項11】 複数の文字ストリングを含む符号化テ
ーブルを具備し、該符号化テーブル内の文字ストリング
が、文字ストリームの一部が前記符号化テーブル内の文
字ストリングの1つに一致するときに、データ文字スト
リームの部分と置換され得るコードワードに関連付けら
れているデータ文字ストリームを圧縮する装置におけ
る、データ圧縮効率およびデータ圧縮率を改善するため
に符号化テーブルを制御するデータ圧縮方法において、 データ文字ストリーム内のデータ文字間の相関関係を判
断するステップと、 前記判断されたデータ文字間の相関関係に応えて調整さ
れる性能指標を作成するステップと、 前記性能指標が事前に決定した第1の値を下回ると、前
記符号化テーブルに割り当てられるメモリ・スペースを
減らすステップと、 前記性能指標が事前に決定した第2の値を上回ると、前
記符号化テーブルに割り当てられるメモリ・スペースを
増やすステップと、から構成されることを特徴とするデ
ータ圧縮方法。 - 【請求項12】 複数の文字ストリングを含む符号化テ
ーブルを具備し、該符号化テーブル内の文字ストリング
が、文字ストリームの一部が前記符号化テーブル内の文
字ストリングの1つに一致するときに、データ文字スト
リームの部分と置換され得るコードワードに関連付けら
れている、入力されるデータ文字ストリームを圧縮する
装置における、データ圧縮効率およびデータ圧縮率を改
善するために符号化テーブルを制御するデータ圧縮方法
において、 装置に入力されるデータ文字ストリームの圧縮率を、装
置に入力される文字の数を装置から出力されるデータ・
バイト数で割ったものに等しくなるよう決定するステッ
プと、 前記ストリングの平均的な長さおよび前記符号化テーブ
ル内のツリーの幅の1つを表す使用カウントを決定する
ステップと、 前記圧縮率および前記使用カウントを利用して性能指標
を計算するステップと、 前記性能指数が事前に決定した第1の値未満の時、前記
符号化テーブルに割り当てられたメモリ・スペースを減
らすステップと、 前記性能指標が事前に決定した第2の値より大きい時、
前記符号化テーブルに割り当てられるメモリ・スペース
を増やすステップと、から構成されることを特徴とする
データ圧縮方法。 - 【請求項13】 前記使用カウントが、前記符号化テー
ブル内の各ルートに直接ぶら下がるストリングの数をカ
ウントすることにより概算されることを特徴とする請求
項12に記載のデータ圧縮方法。 - 【請求項14】 前記使用カウントが、データストリー
ム内のデータ文字と符号化テーブル内の文字の間で一致
が見つけ出される前に探索されるストリング内の文字の
数をカウントし、該カウントされた値を2で乗算するこ
とにより概算されることを特徴とする請求項12に記載
のデータ圧縮方法。 - 【請求項15】 前記使用カウントが、符号化テーブル
からエントリを削除するプロセスの間に、ルート・ノー
ドと削除対象のエントリの間のブランチ内の文字の数を
カウントし、該カウントされた値を2で乗算することに
より決定されることを特徴とする請求項12に記載のデ
ータ圧縮方法。 - 【請求項16】 使用カウントが、前記符号化テーブル
内のリーフ文字の総数の一部をカウントすることにより
計算されることを特徴とする請求項12に記載のデータ
圧縮方法。 - 【請求項17】 文字ストリングの1つがデータ文字ス
トリームの一部と一致するかどうかを判断するために、
符号化テーブル内の文字ストリングをデータ文字ストリ
ームと比較するステップと、 前記文字ストリングに関連付けられ、前記文字ストリン
グの1つが前記データ文字ストリームの一部と一致する
ときに、その1つが前記文字のストリームの一部と置換
され得るコードワードを提供するステップと、 データ文字ストリーム内のデータ文字間の相関関係を決
定するステップと、 データ文字ストリーム内のデータ文字間の前記相関関係
に基づいて、前記符号化テーブルに割り当てられるメモ
リ・スペースを調整するステップと、から構成されるこ
とを特徴とするデータ文字ストリームの圧縮方法。 - 【請求項18】 複数の文字ストリングを含む符号化テ
ーブルを具備し、該符号化テーブル内の文字ストリング
が、文字ストリームの一部が前記符号化テーブル内の文
字ストリングの1つに一致するときに、データ文字スト
リームの部分と置換され得るコードワードに関連付けら
れている、入力されるデータ文字ストリームを圧縮する
装置において、 データストリーム内のデータ文字間の相関関係を判断す
るための手段と、 データ文字ストリーム内のデータ文字間の判断された相
関関係に応えて符号化テーブルのサイズを調整するため
の手段と、から構成されることを特徴とする装置。 - 【請求項19】 装置に入力されるデータストリームの
圧縮率を計算する手段と、 符号化テーブルのツリーの幅および長さの1つを計算す
る手段と、 データ文字間の相関関係を表す性能指標を作成するため
に、前記圧縮率および前記ツリーの幅および長さの1つ
を結合する手段と、を更に具備することを特徴とする請
求項18に記載の装置。 - 【請求項20】 コンピュータ装置内で受け取られるデ
ータ文字ストリームを圧縮するための方法であって、 データ文字ストリーム内の第1文字を検出するステップ
と、 該検出された文字を符号化テーブル内のルート文字に一
致させるステップと、 前記第1文字に続くデータ文字ストリーム内の文字を検
出するステップと、 前記第1文字に続くデータ文字ストリーム内の前記文字
を、前記ルート文字にぶら下がるストリングと照合する
ステップと、 データ文字ストリーム内の前記文字と一致する前記スト
リングをコードワードで置換するステップと、 データ文字ストリーム内のデータ文字間の相関関係を判
断するステップと、 データ文字間の前記判断された相関関係に応えて調整さ
れる性能指標を作成するステップと、 前記性能指標が事前に決定した第1の値と等しいとき
に、前記符号化テーブルに割り当てられるメモリ・スペ
ースを減らすステップと、 前記性能指標が事前に決定した第2の値と等しいとき
に、前記符号化テーブルに割り当てられるメモリ・スペ
ースを増やすステップと、から構成されることを特徴と
する方法。 - 【請求項21】 データがモデムを通して端末から通信
回線に通信され、前記モデムが前記データを符号化テー
ブルを利用して圧縮するシステムにおける、前記モデム
が符号化テーブルを利用して前記データを符号化する前
に、前記データを事前に符号化する方法において、 前記モデムから伝送されようとする一連の連続する同一
文字を検出するステップと、 圧縮のために符号化テーブルに渡される前記データ内の
前記一連の連続する同一文字の少なくとも一部の代わり
にコードを代用するステップと、から構成されることを
特徴とする方法。 - 【請求項22】 一連の連続する同一文字を検出するス
テップが、 3つの同一文字を識別するステップと、 該3つの同一文字の後に受け取られる、該3つの同一文
字に同一な文字の数をカウントするステップと、から構
成されることを特徴とする請求項21に記載の方法。 - 【請求項23】 コードが前記3つの同一文字、および
前記3つの同一文字を含む前記同一文字の総カウント数
に等しい数から構成されることを特徴とする請求項22
に記載の方法。 - 【請求項24】 前記モデムがV.42bisプロトコ
ルに従って符号化テーブルを利用してデータを圧縮する
ことを特徴とする請求項21に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/286,705 US5627533A (en) | 1994-08-05 | 1994-08-05 | Adjusting encoding table size and memory allocation for data compression in response to input data |
| US08/286,705 | 1994-08-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08204579A true JPH08204579A (ja) | 1996-08-09 |
Family
ID=23099813
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7201047A Pending JPH08204579A (ja) | 1994-08-05 | 1995-08-07 | データ圧縮方法及び装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5627533A (ja) |
| EP (1) | EP0702459B1 (ja) |
| JP (1) | JPH08204579A (ja) |
| CA (1) | CA2154978A1 (ja) |
| DE (1) | DE69528691T2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008299718A (ja) * | 2007-06-01 | 2008-12-11 | Hitachi Ltd | 記憶システム、記憶制御装置及びデータ圧縮方法 |
| JP2011199782A (ja) * | 2010-03-23 | 2011-10-06 | Fujitsu Toshiba Mobile Communications Ltd | 通信装置 |
| JP2020184672A (ja) * | 2019-05-07 | 2020-11-12 | 国立大学法人 筑波大学 | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム |
Families Citing this family (71)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6075665A (en) * | 1994-09-28 | 2000-06-13 | International Business Machines Corporation | Optimization of multimedia magnetic disk storage devices |
| US5878416A (en) * | 1996-06-14 | 1999-03-02 | Electronic Data Systems Corporation | Automated system and method for matching an item of business property to a recipient |
| US6125392A (en) * | 1996-10-11 | 2000-09-26 | Intel Corporation | Method and apparatus for high speed event log data compression within a non-volatile storage area |
| US6345121B1 (en) * | 1996-11-07 | 2002-02-05 | Matsushita Electric Industrial Co., Ltd. | Image encoding apparatus and an image decoding apparatus |
| US5892980A (en) * | 1997-02-28 | 1999-04-06 | Comsys Communication And Signal Processing Ltd. | System for dynamically changing the length of transmit and receive sample buffers utilizing previous responding to an interrupt in a communications system |
| US5835036A (en) * | 1997-05-12 | 1998-11-10 | Cisco Systems Co. | Method of encoding data for transmission |
| US7898442B1 (en) * | 1997-05-30 | 2011-03-01 | International Business Machines Corporation | On-line data compression analysis and regulation |
| US6415061B1 (en) * | 1997-06-13 | 2002-07-02 | Cisco Technology, Inc. | Method of updating dictionaries in a data transmission system using data compression |
| US7240087B1 (en) * | 1997-06-27 | 2007-07-03 | International Business Machines Corporation | Communication network having adjustable response timeouts and method therefore |
| US6704866B1 (en) | 1997-07-11 | 2004-03-09 | Cisco Technology, Inc. | Compression and encryption protocol for controlling data flow in a network |
| US6401188B1 (en) | 1998-02-27 | 2002-06-04 | Cisco Technology, Inc. | Method for selection on a pattern sequence |
| US6289130B1 (en) | 1999-02-02 | 2001-09-11 | 3Com Corporation | Method for real-time lossless data compression of computer data |
| US6341346B1 (en) | 1999-02-05 | 2002-01-22 | Cisco Technology, Inc. | Method for comparison between a pattern sequence and a variable length key |
| JP3990115B2 (ja) * | 2001-03-12 | 2007-10-10 | 株式会社東芝 | サーバ側プロキシ装置及びプログラム |
| DE10140993A1 (de) * | 2001-08-21 | 2003-03-20 | Deutsche Telekom Ag | Verfahren zur Kompression von Daten |
| US6961011B2 (en) * | 2001-08-27 | 2005-11-01 | Freescale Semiconductor, Inc. | Data compression system |
| GB0123410D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
| US7533214B2 (en) | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
| US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
| US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
| US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| US6985853B2 (en) * | 2002-02-28 | 2006-01-10 | Broadcom Corporation | Compressed audio stream data decoder memory sharing techniques |
| US7580429B1 (en) * | 2002-09-05 | 2009-08-25 | U.S. Robotics | System and methods for improving data compression |
| US7778996B2 (en) * | 2002-09-25 | 2010-08-17 | Teradata Us, Inc. | Sampling statistics in a database system |
| US7093101B2 (en) | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| KR20060048060A (ko) * | 2004-05-28 | 2006-05-18 | 톰슨 라이센싱 | 텍스트 압축을 사용한 사용자 인터페이스 |
| US7079054B2 (en) * | 2004-06-04 | 2006-07-18 | Broadcom Corporation | V.42bis standalone hardware accelerator and architecture of construction |
| US11416903B2 (en) * | 2005-05-16 | 2022-08-16 | Price Setter Llc | Transaction arbiter system and method |
| JP4556766B2 (ja) * | 2005-05-23 | 2010-10-06 | ソニー株式会社 | 文字列検索回路及び文字列検索方法 |
| US8392684B2 (en) | 2005-08-12 | 2013-03-05 | Silver Peak Systems, Inc. | Data encryption in a network memory architecture for providing data based on local accessibility |
| US8171238B1 (en) | 2007-07-05 | 2012-05-01 | Silver Peak Systems, Inc. | Identification of data stored in memory |
| US8095774B1 (en) | 2007-07-05 | 2012-01-10 | Silver Peak Systems, Inc. | Pre-fetching data into a memory |
| US8929402B1 (en) | 2005-09-29 | 2015-01-06 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data by predicting subsequent data |
| US8489562B1 (en) | 2007-11-30 | 2013-07-16 | Silver Peak Systems, Inc. | Deferred data storage |
| US8811431B2 (en) | 2008-11-20 | 2014-08-19 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data |
| US8483492B2 (en) * | 2005-10-25 | 2013-07-09 | William Marsh Rice University | Method and apparatus for signal detection, classification and estimation from compressive measurements |
| US8885632B2 (en) | 2006-08-02 | 2014-11-11 | Silver Peak Systems, Inc. | Communications scheduler |
| US8755381B2 (en) | 2006-08-02 | 2014-06-17 | Silver Peak Systems, Inc. | Data matching using flow based packet data storage |
| US8307115B1 (en) | 2007-11-30 | 2012-11-06 | Silver Peak Systems, Inc. | Network memory mirroring |
| US8321386B1 (en) * | 2008-04-14 | 2012-11-27 | Netapp, Inc. | System and method for estimating a compressibility of data in a storage device |
| 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 |
| US9717021B2 (en) | 2008-07-03 | 2017-07-25 | Silver Peak Systems, Inc. | Virtual network overlay |
| US8140488B2 (en) * | 2009-02-26 | 2012-03-20 | Red Hat, Inc. | Reducing memory required for prediction by partial matching models |
| IL197882A (en) * | 2009-03-24 | 2015-03-31 | Oleg Litvak | A method and device for compression of communication signals |
| CN101931414B (zh) | 2009-06-19 | 2013-04-24 | 华为技术有限公司 | 脉冲编码方法及装置、脉冲解码方法及装置 |
| EP2378766A1 (en) * | 2010-04-16 | 2011-10-19 | Liberty Global Europe Holding B.V. | Electronic Program Guide compression method and system |
| US10162553B2 (en) | 2010-11-24 | 2018-12-25 | Western Digital Technologies, Inc. | Methods and systems for object level de-duplication for solid state devices |
| 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 |
| CN103853855A (zh) * | 2012-11-29 | 2014-06-11 | 北京华大九天软件有限公司 | 一种电路仿真模拟同步波形压缩格式 |
| US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
| US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
| US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
| US20150121111A1 (en) * | 2013-10-24 | 2015-04-30 | Qualcomm Incorporated | System and method for providing multi-user power saving codebook optmization |
| US9864536B2 (en) | 2013-10-24 | 2018-01-09 | Qualcomm Incorporated | System and method for conserving power consumption in a memory system |
| 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 |
| KR20170045928A (ko) * | 2015-10-20 | 2017-04-28 | 삼성에스디에스 주식회사 | 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치 |
| US10594491B2 (en) * | 2015-12-24 | 2020-03-17 | Intel Corporation | Cryptographic system memory management |
| 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 |
| US10257082B2 (en) | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
| 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 |
| US10892978B2 (en) | 2017-02-06 | 2021-01-12 | Silver Peak Systems, Inc. | Multi-level learning for 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 |
| US11212210B2 (en) | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
| US10419022B2 (en) | 2017-11-30 | 2019-09-17 | International Business Machines Corporation | Run-length base-delta encoding for high-speed compression |
| EP3624019A4 (en) * | 2017-12-30 | 2021-03-24 | Cambricon Technologies Corporation Limited | CHIP DEVICE WITH INTEGRATED CIRCUIT AND ASSOCIATED PRODUCT |
| US10637721B2 (en) | 2018-03-12 | 2020-04-28 | Silver Peak Systems, Inc. | Detecting path break conditions while minimizing network overhead |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4366551A (en) * | 1977-06-24 | 1982-12-28 | Holtz Klaus E | Associative memory search system |
| US4464650A (en) * | 1981-08-10 | 1984-08-07 | Sperry Corporation | Apparatus and method for compressing data signals and restoring the compressed data signals |
| US4814746A (en) * | 1983-06-01 | 1989-03-21 | International Business Machines Corporation | Data compression method |
| US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
| US4612532A (en) * | 1984-06-19 | 1986-09-16 | Telebyte Corportion | Data compression apparatus and method |
| US5434568A (en) * | 1985-01-10 | 1995-07-18 | Moll; Edward W. | Data compression by removing repetition and unnecessary information |
| US4626829A (en) * | 1985-08-19 | 1986-12-02 | Intelligent Storage Inc. | Data compression using run length encoding and statistical encoding |
| US4841299A (en) * | 1987-08-31 | 1989-06-20 | Digital Recording Research Limited Partnership | Method and apparatus for digital encoding and decoding |
| US4881075A (en) * | 1987-10-15 | 1989-11-14 | Digital Equipment Corporation | Method and apparatus for adaptive data compression |
| US4847619A (en) * | 1987-10-19 | 1989-07-11 | Hewlett-Packard Company | Performance-based reset of data compression dictionary |
| US4870415A (en) * | 1987-10-19 | 1989-09-26 | Hewlett-Packard Company | Data compression system with expansion protection |
| US4929946A (en) * | 1989-02-09 | 1990-05-29 | Storage Technology Corporation | Adaptive data compression apparatus including run length encoding for a tape drive system |
| 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 |
-
1994
- 1994-08-05 US US08/286,705 patent/US5627533A/en not_active Expired - Lifetime
-
1995
- 1995-07-28 CA CA002154978A patent/CA2154978A1/en not_active Abandoned
- 1995-08-01 EP EP95112096A patent/EP0702459B1/en not_active Expired - Lifetime
- 1995-08-01 DE DE69528691T patent/DE69528691T2/de not_active Expired - Lifetime
- 1995-08-07 JP JP7201047A patent/JPH08204579A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008299718A (ja) * | 2007-06-01 | 2008-12-11 | Hitachi Ltd | 記憶システム、記憶制御装置及びデータ圧縮方法 |
| US9342521B2 (en) | 2007-06-01 | 2016-05-17 | Hitachi, Ltd. | Storage system, storage controller and data compression method |
| JP2011199782A (ja) * | 2010-03-23 | 2011-10-06 | Fujitsu Toshiba Mobile Communications Ltd | 通信装置 |
| JP2020184672A (ja) * | 2019-05-07 | 2020-11-12 | 国立大学法人 筑波大学 | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0702459A2 (en) | 1996-03-20 |
| EP0702459B1 (en) | 2002-10-30 |
| CA2154978A1 (en) | 1996-02-06 |
| DE69528691D1 (de) | 2002-12-05 |
| EP0702459A3 (en) | 1999-04-07 |
| US5627533A (en) | 1997-05-06 |
| DE69528691T2 (de) | 2003-07-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH08204579A (ja) | データ圧縮方法及び装置 | |
| US5374916A (en) | Automatic electronic data type identification process | |
| US5467087A (en) | High speed lossless data compression system | |
| JP3017380B2 (ja) | データ圧縮方法及び装置並びにデータ伸長方法及び装置 | |
| US5003307A (en) | Data compression apparatus with shift register search means | |
| US11044495B1 (en) | Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation | |
| US5949355A (en) | Method and apparatus for adaptive data compression | |
| US5463390A (en) | Data compression apparatus and method | |
| US5414650A (en) | Parsing information onto packets using context-insensitive parsing rules based on packet characteristics | |
| US5521597A (en) | Data compression for network transport | |
| EP0283735A2 (en) | Adaptive data compression method and apparatus | |
| US20030030575A1 (en) | Lossless data compression | |
| EP0375221A1 (en) | Data compression | |
| JP2979106B2 (ja) | データ圧縮 | |
| US5650783A (en) | Data coding/decoding device and method | |
| US5594435A (en) | Permutation-based data compression | |
| US6515598B2 (en) | System and method for compressing and decompressing data in real time | |
| CN108023597B (zh) | 一种数控系统可靠性数据压缩方法 | |
| WO2001063772A1 (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
| EP0885429A1 (en) | System and method for the fractal encoding of datastreams | |
| JPH10271013A (ja) | データの圧縮方法および画像データの圧縮方法と圧縮装置 | |
| US6415061B1 (en) | Method of updating dictionaries in a data transmission system using data compression | |
| US20050193022A1 (en) | Method and apparatus for lossless compression and decompression of data | |
| EP0721699A1 (en) | Method and apparatus for a unique and efficient use of a data structure for compressing data | |
| US5838691A (en) | Codebook-based lossy data compression encoding system |