JP2001285075A - パケットごとのハッシュテーブルを使用してネットワークパケットのデータを圧縮するための方法および装置 - Google Patents
パケットごとのハッシュテーブルを使用してネットワークパケットのデータを圧縮するための方法および装置Info
- Publication number
- JP2001285075A JP2001285075A JP2001075336A JP2001075336A JP2001285075A JP 2001285075 A JP2001285075 A JP 2001285075A JP 2001075336 A JP2001075336 A JP 2001075336A JP 2001075336 A JP2001075336 A JP 2001075336A JP 2001285075 A JP2001285075 A JP 2001285075A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- packets
- hash table
- function
- compression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
より優れた強固さと向上した圧縮比を達成することを可
能にする。 【解決手段】 入力データストリームが受信され、正常
に受信されたパケットが確認され(210)、正常に受
信されたパケットの確認は、パケット履歴状態の識別を
識別ベクトルの関数として与える(220)。個別のパ
ケットはそこに関連づけられたそれぞれのパケット履歴
状態の関数として符号化される(230)。LZ77圧
縮方式または「デフレート」圧縮方式が適用されている
パケットストリームの圧縮を向上させ、選択された圧縮
方式を符号化されたパケットに適用すると(240)、
圧縮されたパケットは送信の準備ができる(250)。
Description
関し、特に、パケットネットワーク内でデータの圧縮を
向上させることに関する。
は、デジタルデータのストリームを圧縮された符号スト
リームに符号化し、圧縮された符号ストリームを対応す
る元のデータストリームに復号化して戻す。ストリーム
は典型的には元のデータストリームに含まれる記号より
少ない数の符号から成るので、符号ストリームは「圧縮
された」と呼ばれる。このような少ない符号はそれに対
応して、元のデータより少ない量のメモリ内に有利に格
納することができる。さらに、圧縮された符号ストリー
ムはそれに対応して圧縮されない元のデータよりも短い
時間で、たとえば、ワイヤード通信システム、ワイヤレ
ス通信システム、または光ファイバ通信システムなどの
通信システム内で送信できる。今日の通信ネットワーク
におけるデータ送信および格納容量に対する需要は増大
の一途をたどっている。したがって、データ圧縮はほと
んどの現代の送信プロトコルおよび通信ネットワークで
必要不可欠な役割を果たしている。
有用な2種類の圧縮技法は、いわゆる特殊目的圧縮およ
び一般目的圧縮である。特殊目的圧縮技法は特別なタイ
プのデータを圧縮するために設計されたもので、比較的
安価に実装できる場合が多い。たとえば、よく知られた
特殊目的圧縮技法は、ランレングス符号化、ゼロ抑止符
号化、ヌル圧縮符号化、およびパターン置換である。こ
れらの技法は典型的には共通の特性および冗長度を有す
るデータを圧縮するという事実のために、これらの技法
は一般的に、比較的小さい圧縮比を有する。圧縮比は、
元のデータの長さと比較して圧縮された符号の長さの測
定値であることが理解されるであろう。しかし、特殊目
的圧縮技法は、より一般的な性質のデータ、すなわち、
高い程度の共通の特性などを有さないデータの圧縮にお
いては効果的でない傾向がある。
タイプのデータを圧縮するために設計されたものではな
く、実際の圧縮プロセスの間に異なるタイプのデータに
適合されている場合が多い。もっともよく知られており
有用な一般目的圧縮技法のいくつかは、J.Zivおよ
びA.Lempelによって開発され、当技術分野では
「Lempel−Ziv符号化」と一般に呼ばれるアル
ゴリズムのグループから発している。特に、1977年
5月のZivらによる「A Universal Algorithm for Se
quential Data Compression」、IEEE Transactions
on Information Theory,IT−23(3)の337〜
343ページ(一般的に「LZ1」と名付けられたアル
ゴリズムを説明している)、および、1978年9月の
Zivらによる「Compression of Individual Sequence
s Via Variable-Rate Coding」、IEEE Transactio
ns on Information Technology、IT−24(5)の5
30〜536ページ(一般的に「LZ2」と名付けられ
たアルゴリズムを説明する)は、あらゆる目的のために
参照により本明細書に組み込まれている。LZ1データ
圧縮方式およびLZ2データ圧縮方式は当技術分野では
よく知られており、ここで詳細に論ずる必要はない。
「LZ77」と呼ばれ、知られることもある)データ圧
縮プロセスは、文字の反復したシーケンスはそのシーケ
ンスのより早い発生、すなわちマッチするシーケンスへ
の参照によって置き換えられるという原理に基づいてい
る。たとえばポインタなどの参照は、典型的にはより早
い発生の位置を示すことを含み、たとえば、反復された
シーケンスの開始からのバイトオフセット、および、繰
り返される文字の数すなわちマッチレングスとして表現
される。典型的には、従来のLZ1符号化によれば、参
照は「<オフセット、長さ>」の対として表現される。
対照的に、LZ2(本技術分野では「LZ78」と呼ば
れ、知られることもある)圧縮は、入力データの文字の
ストリームを分析し、圧縮の間に生成され、適応的に成
長するルックアップ表または辞書に基づいて、符号化さ
れた値にする。すなわち、LZ2ではLZ1符号化のよ
うに任意のバイトの境界と任意の長さの間にマッチを見
い出さず、その代わりに、辞書のワードがソースのスト
リングにマッチしている時、新しいワードはマッチした
ワードおよびそれに続くソースストリングバイトから成
る辞書に追加される。LZ2符号化によれば、マッチは
辞書内のワードへのポインタまたは索引として符号化さ
れる。
ゴリズムおよびLZ2アルゴリズムによって具体化され
た基本的な原理の上に引きだされた圧縮方式が十分にあ
る。たとえば、Terry A.Welch(1984
年6月のIEEE Computer、8〜19ページにある、
T.A.Welch「A Technique for High Performan
ce Data Compression」および、1985年12月10
日にWelchに対して発行された米国特許第4,55
8,302号を参照のこと。各々はあらゆる目的のため
に参照により組み込まれている)は、後にLZ2符号化
プロセスをよく知られた「Lempel−Ziv−We
lch」(「LZW」)圧縮プロセスに改良した。LZ
2圧縮技法およびLZW圧縮技法はどちらも、入力文字
のストリングを固定長の符号にマッピングするいわゆる
ストリング表を生成し使用することに基づいている。具
体的には、これらの圧縮技法は、文字ストリームを連続
的に検索し、遭遇した記号のシーケンスが、表、すなわ
ち辞書の中に前もって格納されている、対応するもっと
も長いストリングにマッチすることに基づいて符号を生
成することによって、データ文字のストリームを符号の
圧縮されたストリームに圧縮する。各マッチが作成され
符号記号が生成されると、プロセスはまた、データスト
リーム内でマッチしたシーケンスとそのデータストリー
ムで遭遇した次の文字記号を含む、新しいストリングエ
ントリを辞書に格納する。
Ziv符号化の本質は、元のデータストリーム、たとえ
ば送信されるべき文書の中で反復されたストリングおよ
びサブストリングを発見することであることが理解され
よう。圧縮された文書内では反復したフレーズはポイン
タによって置き換えられ、これらが元のデータストリー
ム、たとえば文書内で以前に発生した場所を示す。この
ように、この方法で圧縮されたデータ、たとえばテキス
トの復号化では、ポインタを、それが指し示すすでに復
号化されたテキストで置き換えることだけを必要とす
る。よく知られているように、Lempel−Ziv符
号化を使用する時の主な設計上の考慮点の1つは、ポイ
ンタがどれくらい遠くまで戻ることができるかについて
制限を設定するかどうか、その制限はどのようなものに
するかを決定することである。Lempel−Ziv符
号化のさらなる設計上の考慮点は、所望の限界内のどの
サブストリングがポインタのターゲットになる可能性が
あるかを含む。つまり、より早いテキストへのポインタ
の到達は制限されない、すなわちいわゆる成長ウィンド
ウである場合もあり、または前の「N」文字の固定され
た大きさのウィンドウに制限される場合もあり、ここで
Nは典型的には数千文字の範囲、たとえば3キロバイト
である。この符号化によれば、ストリングの反復が発見
され圧縮されるのは、これらが両方ともそのウィンドウ
内に現れた場合のみである。このようなLempel−
Ziv符号化設計の選択に関して行われる考慮は、速
度、メモリ要件、および圧縮比の間で妥協を意味するこ
とが理解されるであろう。
要な考慮点である。たとえば、使用可能な計算のための
リソース、すなわちデータ送信要件が使用可能なネット
ワーク帯域幅に比べて大きい場合、ネットワーク上で送
信する前にデータパケットを圧縮するのがもっとも有利
である。もちろん、実際の圧縮方式は速度および全体的
な圧縮という点で慎重に選択しなければならない。すな
わち、遅すぎる圧縮方式はネットワークの性能を下げ、
不十分な圧縮方式は任意の潜在的な送信ゲインを制限す
ることになる。
のは、多くのパケットネットワークはもともと信頼でき
ないという事実である。すなわち、現在のよく知られた
パケットネットワーク、たとえばインターネットは、ネ
ットワークを介して送信されているパケットを日常的に
落とすかまたは順序を入れ換えており、これによってデ
ータ送信エラーを引き起こしている。たとえば、圧縮方
式がパケット間に所定の依存性を導入し、ネットワーク
がその後そのようなパケットを落としたり順序を入れ換
えたりした場合、パケット間の相互依存性のために前の
パケットが失われた場合、受信者が特定のパケットを解
凍できなくなる場合がある。そこで、所定のよく知られ
た手法が使用されてこのような問題を緩和している。
(1)ネットワークの信頼性を改良し、これによってイ
ンターネットの場合、より信頼できるエンドツーエンド
移送レイヤサービス、たとえばよく知られた伝送制御プ
ロトコル(「TCP」)が適用でき、移送レベルでパケ
ットを圧縮する。(2)ステートレス圧縮を使用し、各
パケットが独立して圧縮されこれによって各パケットが
受信側で解凍できるようにする。および(3)ストリー
ミング圧縮は信頼できる送達を仮定し、この仮定が破ら
れた時にリセット機構を使用する。具体的にはパケット
が失われた時、受信側は圧縮がリセットされるまで後に
続く各パケットを放棄する。リセットの後、その後のパ
ケットは前のパケットに依存せず、圧縮は通常通りに再
開できる。2種類のよく知られたストリーミングタイプ
の圧縮技法はポイントツーポイントプロトコル(「PP
P」)の圧縮制御プロトコル、およびユーザデータグラ
ムプロトコル(「UDP」)パケットのために使用され
ているIPヘッダ圧縮プロトコルである。
依存性から生じる問題を緩和するために有用だが、この
ような方式はある別の複雑さを提供する。たとえば、移
送レベルでパケットを圧縮することはエンドツーエンド
の使用を必要とし、典型的には送信の間アプリケーショ
ンによる所定のレベルの協力を必要とする。同様に、ス
テートレス圧縮は一定の強固さを提供するが、ステート
レス圧縮のパケット独立属性は、このような圧縮は単一
のパケット内でデータを検証するという事実のため、実
現される圧縮比を下げる。したがってたとえばこの圧縮
技法は、隣接するパケットのネットワークヘッダ内に典
型的に見いだされる大量の冗長度を除去することはでき
ない。さらに、ストリーミング圧縮はより大きな圧縮比
を提供するが、これらの圧縮方式は、1つのパケットが
ネットワーク内で失われると、それによって受信器がい
くつかの他のパケットを失うという点で、パケットの損
失という効果を増幅する。信頼性の低いネットワーク、
たとえばインターネットについては、このパケット効果
の増幅はストリーミング圧縮を使用する効用を減らす。
縮方式の有害な効果なしに、より大きな強固さおよび増
大された圧縮比を提供する圧縮技法に対するニーズが存
在する。
ット間の圧縮を可能にし、これによってたとえばパケッ
ト損失を増幅する効果など先行の圧縮方式の有害な効果
なしに、より大きな強固さと増大した圧縮比を達成す
る、パケットを圧縮するための方法および装置に関す
る。具体的には、本発明の一態様では、可変長符号化が
各パケットについて別のハッシュテーブルを維持するこ
とと同時に使用される。本発明の好ましい実施形態によ
れば、可変長符号化はマッチレングス、オフセットおよ
びリテラルを使用する。このように、すべてのフレーズ
は、長さがゼロのマッチで符号化されているリテラルを
有する(訳注:つまり符号化されたリテラルを有さな
い)マッチレングスで始まり、ついでリテラルの符号化
が続く。好ましい実施形態によれば、長さがゼロではな
い最小のマッチは例としては3バイトであり、最大マッ
チは特定のパケットサイズによって限定される。
ットごとのハッシュテーブルはそのパケット内の特定の
バイトストリングを示すが、任意の他のパケット内(単
数または複数)のデータは示さない。すなわち、本発明
は各パケットに関してそれぞれ個別のハッシュテーブル
を生成および維持し、ここでこのようなハッシュテーブ
ルは任意の他のパケットからは独立して構築される。例
として、本発明の一実施形態によれば、パケットに関す
るそれぞれのハッシュテーブルは、その特定のパケット
が圧縮される時に構築される。本発明のさらなる実施形
態によれば、パケットに関するそれぞれのハッシュテー
ブルは圧縮の前または後に構築される。このように、そ
れぞれのハッシュテーブルは特定のパケットで符号化さ
れる。本発明の一態様によれば、パケットに関するそれ
ぞれのハッシュテーブルは全パケットの中のデータを個
別のサブストリングの関数として示す。例として、本発
明の好ましい一実施形態によれば、このようなサブスト
リングは長さが3バイトである。したがって、特定のパ
ケットのバイトサイズは、そのパケットに関してそれぞ
れのハッシュテーブルの中で示されるバイトストリング
の数を決定することになる。このように、パケットごと
のハッシュテーブルを使用することは、パケット全体の
効率的で強固な圧縮を提供する。
はその特定のパケット内のデータにのみ依存しているの
で、パケットの恣意的な組に関する有効なインデックス
は対応するハッシュテーブルを使用して作成できる。し
たがって、好ましい実施形態によれば、ストリングの検
索は現在のパケットに関するハッシュテーブルのクエリ
によって実行され、その後にもっとも最近送信されたパ
ケットから始まる可変履歴状態内のパケットの各々に関
するハッシュテーブルが続く。好ましい実施形態のパケ
ットごとのハッシュテーブルはまた、無効な入力によっ
て終了した単独にリンクされたオフセットチェーンを維
持し、ハッシュテーブルに関する有効なオフセット範囲
を変更することによって(表全体を消去することによっ
てではなく)ハッシュテーブルをリサイクルすることが
理解されよう。さらに、圧縮レベルパラメータ、たとえ
ば8ストリングを使用して、マッチを検索している間に
チェックされる最大数を決定することが理解されよう。
れた強固さとより大きな圧縮比は種々の圧縮方法で達成
できる。
に譲渡され,同じ日付に提出された出願番号___、代
理人整理番号S.M.Dorward9−2(またはこ
こでは利便のため、「承認された圧縮に関する出願」と
呼ばれる)で詳細に示されたように、発明者らは、選択
履歴状態をパケットの関数として使用してネットワーク
上で送信することによって、エレガントな圧縮ツールの
提供が達成され、これによって、強化されたデータ圧縮
が実現できることに気づいた。本発明の一態様によれ
ば、いわゆる確認ベクトルの関数として決定される選択
履歴状態が使用される。さらに、本発明の一態様によれ
ば、確認ベクトルは通信チャネル上の以前の送信で正常
に受信されたパケットの識別に関して、情報を含む。す
なわち、本発明の一態様によれば、パケット履歴状態は
それぞれのパケットに関連づけられた選択履歴状態であ
る。このように、通信チャネルの第1のサイド、たとえ
ば送信器サイドまたは送信者サイドは、どのパケットが
通信チャネルの第2のサイド、たとえば受信器サイドま
たは受信者サイドによって正常に受信されたかに関する
所定の情報を提供され、それを認識する。また解凍装置
も選択履歴を提供され、それを認識し、送信者から送信
された、圧縮されたパケットの効率的な解凍を可能にす
る。すなわち解凍は、パケット圧縮の間、履歴、すなわ
ち選択履歴状態として使用されたパケットの関数として
発生する。このように、本発明の選択履歴状態および認
識態様を通じて圧縮装置および解凍装置(通信チャネル
のいずれかのサイド)は協力して機能し、通信チャネル
上で改良された圧縮を達成する。
の種々の態様の圧縮を使用することによって達成された
圧縮結果、たとえば帯域幅比は、特により高い帯域幅で
はより小さいパケットについてはいくぶん減少される。
これは部分的には使用されている実際の圧縮方式のため
である。たとえば、よく知られたデフレート圧縮方式は
より小さいパケットサイズについては比較的非効率的な
フォーマットを使用している。具体的には、デフレート
圧縮方式によれば、各パケットはよく知られた静的なホ
フマン符号化または動的なホフマン符号化のいずれかで
圧縮される。このようなホフマン符号化は大きなファイ
ルのオフライン圧縮には役に立つが、各データパケット
内の必須のホフマン辞書を計算し送信することに関連す
る処理オーバーヘッドは、より小さなパケット、たとえ
ばインターネット上で送信される典型的なデータパケッ
トのリアルタイムな圧縮には高価すぎる。さらに、デフ
レートは1つのパケットを終了するために約8バイトの追
加の処理オーバーヘッドを必要とし、これはさらにイン
ターネットのような通信用途内の有用性に影響をあたえ
る。このようなホフマン符号および/または辞書を使用
する他の圧縮方式、たとえばLZ77も同じように影響
を受けることが理解されよう。
じられるように、承認された圧縮に関する出願における
本発明の態様およびその完全な利点は、従来の圧縮方式
に伴う所定の処理オーバーヘッド問題を緩和する新規の
圧縮フォーマット内でさらに実現されることに気づい
た。具体的には、本発明の一態様によれば、可変長符号
化が各パケットについて別のハッシュテーブルを維持す
ることと同時に使用される。本発明の好ましい実施形態
によれば、可変長符号化はマッチレングス、オフセット
およびリテラルを使用する。本発明の種々の態様をより
詳細に論じその完全な理解を促進する前に、上記の同時
係属の、本譲受人に譲渡された承認された圧縮に関する
出願の所定の態様が次に示される。
にし、それによってたとえばパケット増幅の効果など先
行の圧縮方式の有害な効果なしにより優れた強固さと増
大した圧縮比を達成する、パケットを圧縮するための方
法および装置を提供する。具体的には、いわゆる認識方
式が特定の圧縮アルゴリズムと共に使用され、送信器、
すなわち、送信者は圧縮アルゴリズムによって使用され
る履歴を正しく受信されたパケットに限定できる。好ま
しい実施形態では、履歴として使用されるパケットを識
別するベクトルが圧縮パケット内に含まれ、これによっ
て受信器は、パケットを解凍するために必要なパケット
履歴状態を再構築できる。
例示的なシステム100の構成図である。システム10
0はとりわけ、たとえばいくつか名前を上げるとワイ
ヤ、ワイヤレス、または光ファイバなどの送信媒体上で
情報を送信および受信するために有用である。さらに、
システム100は別法としては、コンピュータのディス
クドライブなどの磁気媒体またはCD−ROMなどの光
可読媒体に情報を記録したり、そこから情報を読み出す
ために有用である。本発明によって圧縮されたデータを
たとえば磁気ディスクドライブなどの磁気媒体および、
たとえばCD−ROMなどの光可読媒体を含む記録可能
な媒体上に記録することが可能である。図1では、たと
えばテキストなどの入力データストリーム105は、入
力データ符号器110に供給される。以下にさらに詳細
に論じられるように、本発明の一態様によれば入力デー
タ符号器110は可変履歴状態パケット間圧縮を適用す
ることによって、入力データストリームを前処理し符号
化する。この符号化プロセスに関する本発明の種々の態
様は、特に図2に示された例示的な動作を参照しなが
ら、以下にさらに詳細に説明される。
き、本発明の一態様によって生成された符号化された入
力データストリーム115は圧縮装置120に渡され
る。圧縮装置120は本発明の好ましい実施形態によれ
ば、たとえばLempel−Ziv圧縮などの圧縮方法
を適用して、符号化された入力データストリーム115
を圧縮されたデータ125に圧縮する。上記のように、
本発明にしたがってここに説明された本発明の有利な態
様を実現するために、符号化された入力データストリー
ム115を圧縮する際には任意のLempel−Ziv
タイプの圧縮が効果的に使用できることに注意された
い。圧縮されたデータ125はついで、チャネル符号器
130によって符号化され、チャネル符号化された情報
135を生成する。チャネル符号化は圧縮された情報に
情報を追加し、データ読み出しプロセスの中でエラーの
検出および/または訂正を可能にすることが理解されよ
う。従来のチャネル符号化技法はよく知られたReed
Solomon符号化を含み、Reed Solom
on符号化は一連の記号を符号化し、各記号は1つまた
は複数のデータビットによって表される。これらの記号
はついで、変調符号器140によって変調符号化され、
変調符号器140は変調されたデータストリーム145
を生成し、変調されたデータストリーム145は通信チ
ャネルを介して送信されるかまたは媒体150上に記録
されるチャネルシーケンスを定義する。
に、チャネル/媒体150の中にノイズと干渉がしばし
ば導入される。変調復号器155およびチャネル復号器
160は変調されたデータストリーム145をノイズと
共に受信し、よく知られた方法でチャネル符号器130
の符号化プロセスおよび変調符号器140の符号化プロ
セスをそれぞれ反対にする。チャネル復号器160から
のデータストリームは、圧縮装置120によって生成さ
れた圧縮されたデータ125に対応する。本発明によれ
ばこのデータストリームはついで、解凍装置165によ
って解凍され、データ復号器170によって復号化さ
れ、出力データストリーム175を生成し、これは図4
に関して以下に詳細に説明される。
明の種々の態様は、改良された圧縮の強固さと圧縮比を
実現することに関する。図2は、上記のように本発明の
一態様による、図1の例示的なシステム内で有用な、デ
ータを圧縮するための例示的な動作200のフローチャ
ートを示す。具体的には、入力データストリームが受信
され、正常に受信されたパケットが確認される(図2の
ブロック210を参照のこと)。正常に受信されたパケ
ットの確認は、本発明のこの態様によれば、パケット履
歴状態の識別を認識ベクトルの関数として与える(図2
のブロック220を参照のこと)。本発明の好ましい実
施形態によれば、パケット履歴状態はパケットの以前の
組であり、その上に現在のパケットの圧縮が決定され
る。たとえば、Lempel−Ziv77圧縮に関して
は、履歴状態はこのようなLempel−Ziv圧縮で
使用されているいわゆる辞書に直接相関する。面白いこ
とに、上記のステートレス圧縮とネットワークパケット
のストリーミング圧縮の間の主な違いは、各方式が使用
する特定の履歴状態である。すなわち、ステートレス圧
縮は履歴状態を使用しないが、ストリーミング圧縮は任
意の前のパケットを履歴として許可する。このような違
いは、本発明の原理に関して依然として有効である。
よれば、パケット履歴状態は、たとえば受信器サイドま
たは受信者によって通信チャネル上で正常に受信された
特定のパケットに関して選択履歴状態である。受信者は
選択履歴を提供され認識しているので、送信された圧縮
されたパケットの効率的な解凍が可能になる。有利に
は、本発明のこの態様によれば、選択パケット間履歴状
態の使用は、固有のパケット損失を被る、以前のストリ
ーミング圧縮方式に比べて圧縮の強固さおよび圧縮比を
向上させる。
を識別した後に、このような履歴状態が使用されて、送
信者からの送信を待つパケットへ所定の情報を符号化す
る。具体的には、本発明の好ましい実施形態によれば、
個別のパケットはそこに関連づけられたそれぞれのパケ
ット履歴状態の関数として符号化される(図2のブロッ
ク230を参照のこと)。本発明の一実施形態によれば
各パケットには、例として、そのパケットに関連づけら
れたそれぞれのパケット履歴を識別する履歴ベクトルを
含むヘッダが、接頭辞として付けられている。注意を簡
単に図3に向けると、例示的なパケットストリーム30
0は図2の、例示的な動作によって圧縮されているよう
に示されている。図3の実施形態によれば、パケットヘ
ッダはシーケンス番号および認識ベクトルなどの追加の
項目を含む。すなわち、本発明のさらなる実施形態によ
れば、前記の認識ベクトルはパケットヘッダの一部とし
て送信される場合がある。当業者であれば理解されるよ
うに、認識ベクトルが符号化されたパケットとは別に送
信されるか(上に論じられたように)、またはパケット
ヘッダの一部として送信されるかの決定は、設計上の選
択の問題であり、どちらのコンテキストにも本発明の原
理は等しく適用される。たとえば、認識ベクトルはいわ
ゆる「便乗」技法を使用して送信者に送信することがで
き、ここでは受信者から送信者へ逆の方向のデータスト
リームが存在する。
一連のパケットを含む(たとえば、図3にそれぞれパケ
ット305〜315として示されたようなパケット1か
らパケットn)。さらに、各パケットはヘッダを含む
(たとえば、図3にそれぞれヘッダ320〜330とし
て示されたH1からHn)。さらに、例として、ヘッダ3
20は符号化されたシーケンス番号335、履歴ベクト
ル340および認識ベクトル345を含んでより詳細に
示されている。
ケンス番号335などのシーケンス番号は送信者および
受信者の双方によって使用されて、本発明の原理によっ
て圧縮されたパケットを識別する。シーケンス番号を符
号化するために使用されるビットの数は十分に多く、全
ネットワークを通り抜けるために必要な最大の時間の
間、いわゆる「折り返し」のよく知られた有害な結果を
避ける必要がある。例として、シーケンス番号335は
長さが24ビットとして示されている。
えば履歴ベクトル340などの履歴ベクトルは圧縮のた
めに使用された以前の一組のパケット、すなわち選択履
歴状態を記述する。履歴決定のために認識パケットを使
用する本発明の好ましい実施形態に関しては、パケット
が送信される時間とそのパケットが履歴として使用され
る時間の間に、ネットワークの往復時間に関して時間遅
延が発生する場合がある。このように、本発明の好まし
い一実施形態によれば、オフセットがパケットのシーケ
ンス番号から除算されてもっとも最近の履歴パケットの
シーケンス番号を確立するように、履歴ベクトルがオフ
セットおよびビットマスクを使用して符号化される。ビ
ットマスクはこのもっとも最近の履歴パケットのすぐ前
の、追加の履歴パケットを識別する。例としては、ヘッ
ダ320に関して、履歴ベクトル340は8ビットのオ
フセットおよび8ビットのマスクを含み、これによって
最後の263内で、最大でも9つの連続パケットに履歴
状態を限定する。
ヘッダはまた、たとえば認識ベクトル345などの認識
ベクトルを含み、一組の最近受信されたパケットを記述
する。認識ベクトルは少なくとも、もっとも最近受信さ
れたパケットのシーケンス番号および、そのすぐ前のパ
ケットの状態を記述するビットマスクを含む。例として
は、認識ベクトル345は長さが32ビットで、シーケ
ンス番号のために24ビットをカバーし、関連づけられ
たマスクのために8ビットをカバーする。
によってパケットをそれぞれのパケット履歴状態の関数
として符号化すると(図2のブロック230を参照のこ
と)、これらのパケットはさらなる圧縮の準備ができ
る。上記に詳細に説明したように、本発明の利点は、こ
れが幅広い既存の圧縮技法と共に適用できることであ
る。たとえば、以下に詳細に説明するように、本発明の
原理は、よく知られたLZ77圧縮方式またはよく知ら
れた「デフレート」圧縮方式が適用されているパケット
ストリームの圧縮を向上させる。したがって、選択され
た圧縮方式を符号化されたパケットに適用すると(図2
のブロック240を参照のこと)、圧縮されたパケット
は送信の準備ができる(図2のブロック250を参照の
こと)。
択履歴状態をパケットの関数として使用してネットワー
ク上を送信することによって、エレガントな圧縮ツール
の提供が達成され、これによって強化されたデータ圧縮
が実現されることに気づいた。すなわち、本発明の一態
様によれば、それぞれのパケットに関連づけられたパケ
ット履歴状態は、送信サイド、すなわち送信者が、受信
器サイドすなわち受信者によって正常に受信されたパケ
ットに関する所定の情報を提供され認識しているという
点で、選択履歴状態である。同様に、受信器サイドはま
たこのようなパケットに関連づけられた選択履歴状態を
提供され認識しており、送信者からの圧縮されたパケッ
トの効率的な解凍を可能にする。このように、本発明の
選択履歴状態および認識態様を通じて、送信者および受
信者は協力して機能して、通信チャネル上で向上した圧
縮を達成する。
識ベクトルは特定のアルゴリズムと共に使用され、送信
器、すなわち送信者は圧縮アルゴリズムによって使用さ
れる履歴を正しく受信されたパケットに限定できる。し
たがって、本発明の一実施形態によれば、履歴として使
用されるパケットを識別するベクトルは圧縮されたパケ
ット内に含まれ、それによって、パケットを解凍するた
めに必要なパケット履歴状態を受信者が再構築すること
が可能になる。本発明のさらなる実施形態によれば、認
識ベクトルは圧縮されたパケットとは別に送信される。
さらに、この例示的な実施形態は明瞭に説明するために
単一の通信チャネル配置を論じているが、本発明の原理
は多数の通信チャネル配置および構成にも同様に適用可
能であることが理解されるであろう。有利には、本発明
のこの態様によれば、選択履歴状態の使用は、パケット
損失という固有の妥協を被る以前のストリーミング圧縮
方式に比べて、圧縮の強固さおよび圧縮比を改良する。
のさらなる態様による、データを解凍するための例示的
な動作400のフローチャートを示す。具体的には、受
信されたパケットの圧縮されたストリームから(図4の
ブロック410を参照のこと)履歴ベクトルがパケット
ごとに抽出される(図4のブロック420を参照のこ
と)。このように、パケットに関連づけられたそれぞれ
のパケット履歴状態は、履歴ベクトルの関数として決定
される。例として、次の疑似コードは、本発明の一実施
形態によるこれらの項目の抽出を記述している。
ドを使用して種々のプログラム、たとえば、よく知られ
たCプログラミング言語のコンピュータプログラムを開
発して、本発明を実装するためのプロセッサ内で実行で
きることが理解されよう。履歴ベクトルの抽出から、解
凍されているパケットのそれぞれのパケット履歴状態が
識別される(図4のブロック430を参照のこと)。本
発明のさらなる実施形態によれば、抽出はまた、認識ベ
クトルおよびシーケンス番号をパケットヘッダから抽出
することを含む場合がある。本発明の好ましい実施形態
によれば、現在のパケットの解凍はそれぞれの履歴状態
の関数として行うことができる(図4のブロック440
を参照のこと)。こうして、現在圧縮されていないパケ
ットは、それぞれの解凍装置、たとえば特定の通信チャ
ネルの受信サイドの解凍装置の、現在受信されたパケッ
ト状態に追加され(図4のブロック450を参照のこ
と)、これによって受信されたパケットの組を更新す
る。最後に、現在のパケットを解凍した後、認識ベクト
ルが構築され、送信者に送信されて戻される(図4のブ
ロック460を参照のこと)。先に説明したように、本
発明の一態様によれば、認識ベクトルは一組の最近受信
されたパケットを記述し、送信者によって使用されて選
択履歴状態と共に今後のパケットを圧縮する。
縮に関する出願における本発明の態様およびその利点
は、新しい符号化技法および圧縮フォーマットでさらに
実現されることに気づいた。このような発明的な圧縮フ
ォーマットおよび関連づけられた符号化が本発明の主題
である。
重要な実装の特性はマッチを検出することである。典型
的には、マッチは圧縮された現在のパケットの一部の中
か、履歴状態を作る任意のパケットの中に見い出され
る。たとえば、デフレートのZlib実装(上記に論じ
た)は、単一のハッシュテーブルを使用してマッチを検
索し、これはたとえばストリーミング圧縮と共に使用さ
れると許容できる結果を提供する。対照的に、また有利
に、本発明は各パケットについて別のハッシュテーブル
を生成し維持する。具体的には、図5は本発明の一態様
によってデータを圧縮するための例示的な動作500の
フローチャートを示す。一組の入力データから(図5の
ブロック510を参照のこと)、各パケットについて別
のハッシュテーブルが生成され維持される(図5のブロ
ック520を参照のこと)。すなわち、本発明は各パケ
ットについてそれぞれ別のハッシュテーブルを生成し維
持して、このようなハッシュテーブルは別のパケットの
内容から独立して構築される。本発明の好ましい一実施
形態によれば、特定のハッシュテーブルはパケットが圧
縮される時にそのそれぞれのパケットで構築される。先
に説明したように、本発明のさらなる実施形態によれ
ば、パケットに関するそれぞれのハッシュテーブルは圧
縮の前または圧縮の後に構築される。
よれば、個別のパケットは、パケットの履歴状態の中で
そのパケットに関するそれぞれのハッシュテーブルに関
して符号化される(図5のブロック530を参照のこ
と)。すなわち、特定のパケット「P」の符号化は、パ
ケット履歴状態を定義する関連づけられたパケットの組
「S」を使用する。本発明の一態様によれば、Sの中の
各パケットはそこに関連づけられたそれぞれのハッシュ
テーブルを有する。したがって本発明の一態様によれ
ば、特定のパケットPの符号化は、Sの中のそのパケッ
トに関するそれぞれのハッシュテーブルに関して実行さ
れる。本発明の一態様によれば、パケットに関するそれ
ぞれのハッシュテーブルは、全パケット内のデータを個
別のサブストリングの関数として示す。このように、P
の符号化はS内のパケットに関連づけられたハッシュテ
ーブルの中のPから一連のサブストリングを探し出すこ
とを含む。例としては、本発明の好ましい実施形態によ
れば、このようなサブストリングは長さが3バイトであ
る。したがって、特定のパケットの全体のバイトサイズ
は、そのパケットに関するそれぞれのハッシュテーブル
の中で示されるバイトストリングの数を決定する。この
ように、パケットごとのハッシュテーブルと、可変履歴
状態パケット間圧縮を共に使用することは、パケット全
体の効率的で強固な圧縮を提供する。
変長符号化と、各パケットに関する別のハッシュテーブ
ルを維持することが共に使用される。本発明の好ましい
実施形態によれば、可変長符号化は、マッチレングス、
オフセットおよびリテラルに関して使用される。マッチ
レングスは、すべてのフレーズはマッチレングスで始ま
り、リテラルはゼロ長さのマッチで符号化されており、
ついでリテラルの符号化が続くように、符号化される
(図5のブロック540を参照のこと)。好ましい実施
形態では、もっとも小さい非ゼロのマッチレングスは、
例としては3バイトであり、最大のマッチは特定のパケ
ットサイズによって限定される。例として、下の表1は
好ましい実施形態による特定のマッチレングスの符号化
を示す。
ば、リテラルは予想方式を使用して符号化される(図5
のブロック550を参照のこと)。(a)デフォルトの
8ビットリテラル符号化が適用される。これは、(2)
1つの行の中の4つのリテラルが32から127の範囲
内にあり(32および127を含む)、可変長符号化が
範囲の外側にあるリテラルが符号化されるまで使用され
る場合を除く。桁が一番小さい7つのビットが、指定さ
れた範囲内の値について発せられ、(3)他のリテラル
は番号、モジュロ256に64ビットを加えることによ
って符号化される。その結果の数字が96未満の場合は
9ビットで符号化され、96以上の場合は10ビットで
符号化される。
チオフセットはマッチするフレーズともっとも最近符号
化された入力バイトの間の距離として定義され符号化さ
れる(図5のブロック560を参照のこと)。オフセッ
トは例としては14ビットであり、2つの断片、すなわ
ち(1)範囲、および(2)その範囲内の位置に符号化
される。ビット数を決定する範囲は位置を符号化するた
めに使用され、より少ないビットはより近いオフセット
を符号化するために使用される。例としては、下の表2
は好ましい実施形態によるマッチオフセットの符号化を
示す。
ットごとのハッシュテーブルはそのパケット内のバイト
ストリングを示すが、任意の他のパケット(単数または
複数)の中のデータは示さない。したがって、各パケッ
トのハッシュテーブルはその特定のパケット内のデータ
のみに依存するので、任意のパケットの組に関する有効
なインデックスは対応するハッシュテーブルを使用して
作成できる。すなわち、好ましい実施形態によれば、ス
トリングの検索は現在のパケットに関するハッシュテー
ブルのクエリで実行でき、最初はもっとも最近送信され
たパケットである、可変履歴状態内のパケットの各々に
関するハッシュテーブルが続く。好ましい実施形態のパ
ケットごとのハッシュテーブルはまた、無効なエントリ
によって終了した単一のリンクされたオフセットチェー
ンを維持し、そのハッシュテーブルに関して有効なオフ
セット範囲を変更することによってハッシュテーブルを
リサイクルする(テーブル全体を消去することによって
ではない)ことが理解されよう。さらに、たとえば8ス
トリングの圧縮レベルパラメータを使用して、マッチを
検索している間にチェックされるストリングの最大数を
決定することが理解されよう。圧縮レベルパラメータは
圧縮の間に使用される全体の計算レベルを決定するため
のインジケータであり、レベルがより高ければデータを
圧縮する再に実行される計算がより多いことが理解され
よう。
すために、本発明の原理が先に論じられたよく知られた
zlibデフレート圧縮との比較のコンテキストで適用
された。具体的には、図6は1600バイトおよび12
5バイトのパケットサイズについての、それぞれの帯域
幅比シミュレーションの結果600および610を示
す。帯域幅比シミュレーションの結果600および61
0は、2つの異なる圧縮レベル設定に関する結果を含
む。すなわち、結果620および640は、圧縮レベル
パラメータ6における2つの圧縮方式を比較し、結果6
30および650は、圧縮設定が1における2つの圧縮
方式を比較する。帯域幅比シミュレーションの結果60
0および610の検討から理解されるように、本発明の
原理によって達成される圧縮は全体として(すなわち、
「thwack−6」、結果640を参照のこと、およ
び「thwack−1」、結果650を参照のこと)デ
フレートの圧縮(すなわち、「zlib−6」、結果6
20を参照のこと、および「zlib−1」、結果63
0を参照のこと)より優れており、より小さいパケット
サイズの圧縮という点では明らかに優れている。
行するための方法および装置の形で具体化できる。本発
明はまた、フロッピディスケット、CD−ROM、ハー
ドドライブまたは任意のマシン可読記憶媒体などの有形
メディア内で具体化されるプログラムコードの形で具体
化でき、ここでプログラムコードがコンピュータなどの
マシン内にロードされそのマシンによって実行される
と、そのマシンは本発明を実行するための装置となる。
本発明はまたたとえば、マシンにロードされるおよび/
またはマシンによって実行されるか、または光ファイバ
または電磁放射線を介して電気ワイヤリングまたはケー
ブリング上などなんらかの送信媒体上を送信される記憶
媒体内のプログラムコードの形で具体化することもで
き、この場合、プログラムコードがコンピュータなどの
マシン内にロードされそのマシンによって実行される
と、そのマシンは本発明を実行するための装置となる。
汎用プロセッサ上で実装される時、プログラムコードセ
グメントはプロセッサと結びついて特定の論理回路と類
似の動作を行う独自のデバイスを提供する。
したがって、当業者であればここに明示的に説明される
かまたは示されてはいないが、本発明の原理を具体化し
その精神および範囲内に含まれる種々の構成を工夫でき
ることが理解されよう。さらに、ここに引用されたすべ
ての例および条件付きの言葉は主に、教育上の目的のた
めに特別に意図されたもので、読者が出願者によって与
えられた本発明の原理および概念の理解して技法を促進
することを助けるためのものであり、このような具体的
に列挙された例および条件に限定されるものではないと
理解されるべきである。さらに、本発明の原理、態様、
実施形態、およびその具体的な例を列挙するすべての文
章は、その構造的等価物および機能的等価物の両方を含
むことが意図されている。さらに、このような等価物が
現在知られている等価物および将来開発される等価物、
すなわち、構造にかかわらず同じ機能を実行するために
開発される任意の要素も含むことが意図されている。
細書の構成図は本発明の原理を具体化する例示的な回路
を概念的に表していることが理解されるであろう。同様
に、任意のフローチャート、フロー図、状態遷移図、疑
似コード、プログラムコードなどは、コンピュータ可読
媒体内で実質的に表される種々のプロセスを示し、コン
ピュータ、マシン、またはプロセッサが明示的に示され
ていなくても、コンピュータ、マシン、プロセッサによ
って実行される。
図の中の同様な要素、ブロック、構成要素、または部分
は、同じ参照指示によって示されている。
ステムの構成図である。
的なシステムで有用な、データを圧縮するための例示的
な動作を示すフローチャートである。
的なパケットストリームを示す図である。
ステムで有用な、データを解凍するための例示的な動作
を示すフローチャートである。
例示的な動作を示すフローチャートである。
を圧縮した結果の比較を示す図である。
ロック 500 動作 510、520、530、540、550、560 ブ
ロック 600、610 帯域幅比シミュレーションの結果 620、630、640、650 結果
Claims (25)
- 【請求項1】 データ通信の方法であって、 データの入力ストリームを複数のパケットに分割するス
テップと、 該パケットのうち特定のパケットに関してそれぞれのパ
ケット履歴状態を少なくとも1つの確認ベクトルの関数
として識別するステップと、 前記パケットのうち前記各特定のパケットに関してそれ
ぞれのハッシュテーブルを生成するステップと、 前記複数のパケットのうち前記特定のパケットを、それ
に関連づけられた前記それぞれのパケット履歴の関数と
して符号化するステップとを含み、各符号化されたパケ
ットはそれに関連づけられた前記それぞれのハッシュテ
ーブルで符号化されている方法。 - 【請求項2】 前記パケットに関連づけられた前記それ
ぞれのハッシュテーブルは、該パケット内の少なくとも
一部のデータの関数として識別される請求項1に記載の
方法。 - 【請求項3】 前記パケットに関連づけられた前記それ
ぞれのハッシュテーブルは一連のバイトサブストリング
を含み、該一連のバイトサブストリングは前記パケット
内の一部のデータの関数として決定される請求項2に記
載の方法。 - 【請求項4】 前記複数のパケットを符号化するステッ
プはさらに、 複数のマッチレングス、複数のリテラル、複数のマッチ
オフセットを、前記パケット内の一部のデータの関数と
して符号化するステップを含む請求項2に記載の方法。 - 【請求項5】 前記パケットを符号化するステップはさ
らに、 該パケットに関連づけられた前記それぞれのハッシュテ
ーブルを検索することによって、データの入力ストリー
ムの特定のストリングを識別するステップを含む請求項
3に記載の方法。 - 【請求項6】 前記検索するステップは、前記パケット
の前記それぞれのパケット履歴状態の関数として実行さ
れる請求項5に記載の方法。 - 【請求項7】 前記それぞれのハッシュテーブルを検索
する間に行われる検索の数は、圧縮レベルパラメータを
使用して決定される請求項6に記載の方法。 - 【請求項8】 通信チャネル上で送信側の場所と受信側
の場所との間で通信ストリームを送信する方法であっ
て、該方法は、 該通信ストリームを一連のパケットに分割するステップ
と、 該パケットの各々に関してそれぞれのパケット履歴状態
を確認ベクトルの関数として識別するステップと、 該パケットをそこに関連づけられた該それぞれのパケッ
ト履歴状態の関数として符号化し、各パケットはそれぞ
れのハッシュテーブルと共に符号化されるステップと、 前記通信チャネル上で、前記送信側の場所から前記受信
側の場所へ前記符号化されたデータストリームを送信す
るステップとを含む方法。 - 【請求項9】 前記符号化されたパケットに関連づけら
れた前記それぞれのハッシュテーブルは、該パケット内
の少なくとも一部のデータの関数として識別される請求
項8に記載の方法。 - 【請求項10】 前記パケットに関連づけられた前記そ
れぞれのハッシュテーブルは一連のバイトサブストリン
グを含み、前記一連のバイトサブストリングは該パケッ
ト内の一部のデータの関数として決定される請求項9に
記載の方法。 - 【請求項11】 前記パケットの各それぞれのハッシュ
テーブルを検索することによってバイトサブストリング
のうち特定の1つを識別し、該検索は前記パケットの前
記それぞれのパケット履歴状態の関数として実行される
ことを更に含む請求項10に記載の方法。 - 【請求項12】 前記それぞれのハッシュテーブルを検
索する間に行われる検索の最大数は、圧縮レベルパラメ
ータを使用して決定される請求項11に記載の方法。 - 【請求項13】 前記圧縮レベルパラメータは、少なく
とも8つのストリングで定義される請求項12に記載の
方法。 - 【請求項14】 前記検索動作はさらに、 索引を前記それぞれのハッシュテーブルの関数として構
築し、前記検索の間に該索引を使用して特定の1バイト
サブストリングを識別するステップをさらに含む請求項
11に記載の方法。 - 【請求項15】 入力データストリームを符号化する方
法であって、該入力データストリームは複数のビットを
含み、該方法は、 該複数のビットを複数のパケットに構成し、各パケット
は該複数のビットのうち特定の一連のビットを含むステ
ップと、 複数のハッシュテーブルを生成し、該ハッシュテーブル
の各々は前記複数のパケットのうち特定の1つのパケッ
トに関連づけられているステップと、 前記複数のパケットの各パケットを出力データストリー
ム内に符号化し、該出力データストリームの各パケット
はそれに関連づけられた前記それぞれの1つのハッシュ
テーブルと共に符号化されるステップとを含む方法。 - 【請求項16】 前記パケットに関連づけられた前記ハ
ッシュテーブルは、該パケット内の少なくとも一部のビ
ットの関数として識別される請求項15に記載の方法。 - 【請求項17】 前記パケットに関連づけられた前記ハ
ッシュテーブルは一連のバイトサブストリングを含み、
該一連のバイトサブストリングは前記パケット内の一部
のビットの関数として決定される請求項16に記載の方
法。 - 【請求項18】 デジタル信号を処理するための装置で
あって、該デジタル信号は、デジタルデータの入力スト
リームを複数のパケットに分割し、該パケットのうち特
定のパケットに関してそれぞれのパケット履歴状態を少
なくとも1つの確認ベクトルの関数として識別し、前記
パケットの各々に関してそれぞれ1つのハッシュテーブ
ルを生成し、各パケットをそれに関連づけられた前記そ
れぞれのパケット履歴の関数として符号化して符号化さ
れたデジタル信号を生成し、前記符号化されたパケット
の各々は前記パケットのそれぞれのハッシュテーブルと
共に符号化され、前記符号化されたデジタル信号を通信
チャネルに適用することによって生成され、該装置は、 前記通信チャネルから前記符号化されたデジタル信号を
受信するための受信器と、 該受信された符号化されたデジタル信号を復号化し、該
復号化されたデジタル信号から前記デジタルデータの入
力ストリームを回復するための復号器とを備える装置。 - 【請求項19】 前記パケットに関連づけられた前記そ
れぞれのハッシュテーブルは、該パケット内に含まれる
少なくとも一部の前記デジタルデータの関数として識別
される請求項18に記載の装置。 - 【請求項20】 前記パケットに関連づけられた前記そ
れぞれのハッシュテーブルは一連のバイトサブストリン
グを含み、該バイトサブストリングのうち特定のサブス
トリングが前記パケットの前記それぞれのハッシュテー
ブルを検索することによって識別され、該検索は前記パ
ケットに関連づけられた前記それぞれのパケット履歴状
態の関数として実行される請求項19に記載の装置。 - 【請求項21】 前記検索の間に実行される検索の最大
数は、圧縮レベルパラメータを使用して確立される請求
項20に記載の装置。 - 【請求項22】 前記通信チャネルはインターネットプ
ロトコルネットワークの一部である請求項21に記載の
装置。 - 【請求項23】 複数の命令が格納されているマシン可
読媒体であって、該複数の命令は、マシンによって実行
された時に複数の信号のビットを複数のパケットに構成
することによって信号符号化方法をマシンに実行させる
命令を含み、各パケットは前記複数のビットのうち特定
の一連のビットを含み、複数のハッシュテーブルを生成
し、該ハッシュテーブルの各々は前記複数のパケットの
うち特定の1つのパケットと関連づけられ、前記複数の
パケットのうち各パケットを出力データストリームに符
号化し、該出力データストリームの各パケットはそれに
関連づけられたそれぞれ1つのハッシュテーブルと共に
符号化されるマシン可読媒体。 - 【請求項24】 前記マシンによって実行されるとマシ
ンに前記方法を実行させる命令を含むマシン可読媒体で
あって、前記方法はさらに、 前記出力データストリームを通信チャネル上で送信する
動作を含む請求項23に記載のマシン可読媒体。 - 【請求項25】 前記パケットに関連づけられた前記そ
れぞれのハッシュテーブルは前記パケット内の少なくと
も一部の前記ビットの関数として識別され、前記パケッ
トと関連づけられた前記それぞれのハッシュテーブルは
一連のバイトサブストリングを含み、該一連のバイトサ
ブストリングは前記パケット内の前記ビットの一部の関
数として決定される請求項23に記載のマシン可読媒
体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/526844 | 2000-03-16 | ||
US09/526,844 US6236341B1 (en) | 2000-03-16 | 2000-03-16 | Method and apparatus for data compression of network packets employing per-packet hash tables |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001285075A true JP2001285075A (ja) | 2001-10-12 |
JP3665271B2 JP3665271B2 (ja) | 2005-06-29 |
Family
ID=24099031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001075336A Expired - Lifetime JP3665271B2 (ja) | 2000-03-16 | 2001-03-16 | パケットごとのハッシュテーブルを使用してネットワークパケットのデータを圧縮するための方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6236341B1 (ja) |
EP (2) | EP1258998B1 (ja) |
JP (1) | JP3665271B2 (ja) |
CA (1) | CA2334497C (ja) |
DE (2) | DE60033184T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005221657A (ja) * | 2004-02-04 | 2005-08-18 | Yamaha Corp | 通信端末 |
JP2005531024A (ja) * | 2002-06-24 | 2005-10-13 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 圧縮されたマルチメディアコンテンツからのハッシュを生成する方法 |
JP2007080223A (ja) * | 2005-09-16 | 2007-03-29 | Ricoh Co Ltd | 符号変換装置、符号変換方法、プログラム及び記録媒体 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
JP4193262B2 (ja) * | 1999-01-19 | 2008-12-10 | ソニー株式会社 | 復号装置およびデータ再生装置、並びに復号方法 |
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 |
US6711164B1 (en) * | 1999-11-05 | 2004-03-23 | Nokia Corporation | Method and apparatus for performing IP-ID regeneration to improve header compression efficiency |
US7844579B2 (en) * | 2000-03-09 | 2010-11-30 | 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 |
US20060143180A1 (en) * | 2000-03-09 | 2006-06-29 | 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 |
US20060143199A1 (en) * | 2000-03-09 | 2006-06-29 | 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 |
US20050015608A1 (en) | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US20060173847A1 (en) * | 2000-03-09 | 2006-08-03 | 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 |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143253A1 (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 |
US6388584B1 (en) * | 2000-03-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for data compression of network packets |
US6516035B1 (en) * | 2000-04-07 | 2003-02-04 | Actisys Corporation | Intelligent encoding method for wireless data communication and control |
US6501397B1 (en) * | 2000-05-25 | 2002-12-31 | Koninklijke Philips Electronics N.V. | Bit-plane dependent signal compression |
US6373409B1 (en) * | 2000-06-19 | 2002-04-16 | International Business Machines Corporation | Method and computer program product for implementing text conversion table compression |
US9143546B2 (en) | 2000-10-03 | 2015-09-22 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US8692695B2 (en) | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US7386046B2 (en) | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
ITTO20020325A1 (it) * | 2002-04-12 | 2003-10-13 | Telecom Italia Lab Spa | ,,procedimento per organizzare la comunicazione fra oggetti gestori ed oggetti gestiti in una rete telematica.relativa architettura e prodot |
US7580429B1 (en) * | 2002-09-05 | 2009-08-25 | U.S. Robotics | System and methods for improving data compression |
US20050086383A1 (en) * | 2003-10-17 | 2005-04-21 | Nokia Corporation | Optimizing the compression efficiency in a packet data communication |
US7019674B2 (en) * | 2004-02-05 | 2006-03-28 | Nec Laboratories America, Inc. | Content-based information retrieval architecture |
JP2006033275A (ja) * | 2004-07-14 | 2006-02-02 | Fujitsu Ltd | ループフレーム検知装置およびループフレーム検知方法 |
US7592935B2 (en) * | 2005-03-10 | 2009-09-22 | Nec Laboratories America, Inc. | Information retrieval architecture for packet classification |
DE102006011022A1 (de) * | 2006-03-09 | 2007-10-25 | Netviewer Gmbh | Zweidimensionales adaptives Bildkompressionsverfahren |
US8391148B1 (en) * | 2007-07-30 | 2013-03-05 | Rockstar Consortion USLP | Method and apparatus for Ethernet data compression |
US7623047B2 (en) * | 2007-10-30 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | Data sequence compression |
US9160611B2 (en) | 2009-04-22 | 2015-10-13 | Webroot Inc. | System and method for performing longest common prefix strings searches |
US8750370B2 (en) * | 2009-09-04 | 2014-06-10 | Brocade Communications Systems, Inc. | Congestion-adaptive compression |
US9332042B2 (en) * | 2011-10-03 | 2016-05-03 | Facebook, Inc. | Providing user metrics for an unknown dimension to an external system |
US8775776B2 (en) | 2012-01-18 | 2014-07-08 | International Business Machines Corporation | Hash table using hash table banks |
US9246511B2 (en) * | 2012-03-20 | 2016-01-26 | Sandisk Technologies Inc. | Method and apparatus to process data based upon estimated compressibility of the data |
US10019457B1 (en) | 2013-01-22 | 2018-07-10 | Amazon Technologies, Inc. | Multi-level compression for storing data in a data store |
US9384204B2 (en) | 2013-05-22 | 2016-07-05 | Amazon Technologies, Inc. | Efficient data compression and analysis as a service |
US10454498B1 (en) * | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
Family Cites Families (25)
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 |
US4558302A (en) | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
US4730348A (en) * | 1986-09-19 | 1988-03-08 | Adaptive Computer Technologies | Adaptive data compression system |
US5146221A (en) | 1989-01-13 | 1992-09-08 | Stac, Inc. | Data compression apparatus and method |
US5442350A (en) | 1992-10-29 | 1995-08-15 | International Business Machines Corporation | Method and means providing static dictionary structures for compressing character data and expanding compressed data |
US5550540A (en) | 1992-11-12 | 1996-08-27 | Internatioal Business Machines Corporation | Distributed coding and prediction by use of contexts |
US5369605A (en) | 1993-07-07 | 1994-11-29 | Dell Usa, L.P. | Incremental search content addressable memory for increased data compression efficiency |
US5521597A (en) * | 1993-08-02 | 1996-05-28 | Mircosoft Corporation | Data compression for network transport |
WO1995019662A1 (en) * | 1994-01-13 | 1995-07-20 | Telco Systems, Inc. | Data compression apparatus and method |
JP3397431B2 (ja) | 1994-03-16 | 2003-04-14 | 富士通株式会社 | データ圧縮方法および装置ならびにデータ復元方法および装置 |
US5701125A (en) | 1994-06-15 | 1997-12-23 | The United States Of America As Represented By The United States Department Of Energy | Method for compression of data using single pass LZSS and run-length encoding |
US5572206A (en) | 1994-07-06 | 1996-11-05 | Microsoft Corporation | Data compression method and system |
US5572209A (en) | 1994-08-16 | 1996-11-05 | International Business Machines Corporation | Method and apparatus for compressing and decompressing data |
EP0718980A1 (en) | 1994-12-20 | 1996-06-26 | International Business Machines Corporation | Data compression method of individual sequences of strings of a data stream based on a dictionary and device for performing the same |
US5608396A (en) | 1995-02-28 | 1997-03-04 | International Business Machines Corporation | Efficient Ziv-Lempel LZI data compression system using variable code fields |
US5663721A (en) | 1995-03-20 | 1997-09-02 | Compaq Computer Corporation | Method and apparatus using code values and length fields for compressing computer data |
US5659737A (en) * | 1995-08-01 | 1997-08-19 | Oracle Corporation | Methods and apparatus for data compression that preserves order by using failure greater than and failure less than tokens |
US5710719A (en) * | 1995-10-19 | 1998-01-20 | America Online, Inc. | Apparatus and method for 2-dimensional data compression |
US5933104A (en) * | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
US5703581A (en) | 1996-06-14 | 1997-12-30 | Lucent Technologies Inc. | Method and apparatus for data compression and decompression |
US5831558A (en) * | 1996-06-17 | 1998-11-03 | Digital Equipment Corporation | Method of compressing and decompressing data in a computer system by encoding data using a data dictionary |
US6021198A (en) * | 1996-12-23 | 2000-02-01 | Schlumberger Technology Corporation | Apparatus, system and method for secure, recoverable, adaptably compressed file transfer |
JP3372455B2 (ja) * | 1997-07-03 | 2003-02-04 | 富士通株式会社 | パケット中継制御方法,パケット中継装置およびプログラム記憶媒体 |
US6055538A (en) * | 1997-12-22 | 2000-04-25 | Hewlett Packard Company | Methods and system for using web browser to search large collections of documents |
US6075470A (en) * | 1998-02-26 | 2000-06-13 | Research In Motion Limited | Block-wise adaptive statistical data compressor |
-
2000
- 2000-03-16 US US09/526,844 patent/US6236341B1/en not_active Expired - Lifetime
- 2000-10-23 EP EP02015108A patent/EP1258998B1/en not_active Expired - Lifetime
- 2000-10-23 EP EP00309338A patent/EP1134901B1/en not_active Expired - Lifetime
- 2000-10-23 DE DE60033184T patent/DE60033184T2/de not_active Expired - Lifetime
- 2000-10-23 DE DE60000912T patent/DE60000912T2/de not_active Expired - Lifetime
-
2001
- 2001-02-07 CA CA002334497A patent/CA2334497C/en not_active Expired - Fee Related
- 2001-03-16 JP JP2001075336A patent/JP3665271B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005531024A (ja) * | 2002-06-24 | 2005-10-13 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 圧縮されたマルチメディアコンテンツからのハッシュを生成する方法 |
JP2005221657A (ja) * | 2004-02-04 | 2005-08-18 | Yamaha Corp | 通信端末 |
JP2007080223A (ja) * | 2005-09-16 | 2007-03-29 | Ricoh Co Ltd | 符号変換装置、符号変換方法、プログラム及び記録媒体 |
JP4587312B2 (ja) * | 2005-09-16 | 2010-11-24 | 株式会社リコー | 符号変換装置及び符号変換方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2334497C (en) | 2005-06-07 |
DE60033184T2 (de) | 2007-11-15 |
EP1134901B1 (en) | 2002-12-04 |
EP1258998A2 (en) | 2002-11-20 |
CA2334497A1 (en) | 2001-09-16 |
DE60000912D1 (de) | 2003-01-16 |
EP1134901A1 (en) | 2001-09-19 |
US6236341B1 (en) | 2001-05-22 |
DE60033184D1 (de) | 2007-03-15 |
EP1258998B1 (en) | 2007-01-24 |
EP1258998A3 (en) | 2005-03-09 |
DE60000912T2 (de) | 2003-09-04 |
JP3665271B2 (ja) | 2005-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3665271B2 (ja) | パケットごとのハッシュテーブルを使用してネットワークパケットのデータを圧縮するための方法および装置 | |
EP1134900B1 (en) | Method and apparatus for data compression of network packets | |
CN108880556B (zh) | 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器 | |
US5608396A (en) | Efficient Ziv-Lempel LZI data compression system using variable code fields | |
CA2299902C (en) | Method and apparatus for data compression using fingerprinting | |
US5389922A (en) | Compression using small dictionaries with applications to network packets | |
US5293379A (en) | Packet-based data compression method | |
US7737870B1 (en) | Bit-stream huffman coding for data compression | |
CA2191403C (en) | Method and apparatus for performing data compression | |
US5877711A (en) | Method and apparatus for performing adaptive data compression | |
US8090027B2 (en) | Data compression using an arbitrary-sized dictionary | |
US5703581A (en) | Method and apparatus for data compression and decompression | |
US5874908A (en) | Method and apparatus for encoding Lempel-Ziv 1 variants | |
US20140266816A1 (en) | Method and apparatus for compressing data-carrying signals | |
US5424732A (en) | Transmission compatibility using custom compression method and hardware | |
US6778109B1 (en) | Method for efficient data encoding and decoding | |
US5010344A (en) | Method of decoding compressed data | |
EP0435802B1 (en) | Method of decompressing compressed data | |
US6819272B2 (en) | System, method and computer readable medium for compressing a data sequence for partial decompressing | |
Leis | Lossless Source Coding Lecture Notes & Examples |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050309 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050331 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100408 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110408 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120408 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120408 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130408 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |