(57)【要約】    【課題】  圧縮処理に要する時間を増加させることなく、圧縮効率を向上させる。    【解決手段】  データ圧縮装置１３は、ストリームデータから、所定の複数のデータタイプのいずれかに該当するデータブロックを、順次切り出す切り出し処理部３１と、データ圧縮処理を行う、複数のデータ圧縮処理部３３ａ〜３３ｃと、切り出し処理部３１により切り出されたデータブロックを、当該データブロックのデータタイプに応じて、複数のデータ圧縮処理部３３ａ〜３３ｃのうちのいずれか一つに、順次振り分ける分配処理部３２と、を備える。    【選択図】  図２
2006100973.tif 000002
【特許請求の範囲】
【請求項１】
ストリームデータから、所定の複数のデータタイプのいずれかに該当するデータブロックを、順次切り出す切り出し手段と、
データ圧縮処理を行い、それぞれが、前記複数のデータタイプのうちのいずれかに対応する複数のデータ圧縮手段と、
前記切り出し手段により切り出されたデータブロックを、当該データブロックのデータタイプに応じて、それぞれのデータタイプに対応するデータ圧縮手段に振り分ける分配手段と、を備えるデータ圧縮装置。
【請求項２】
前記切り出し手段により切り出された、それぞれのデータブロック内のデータは、それぞれのデータタイプに応じた所定の類似性を有するデータであり、
前記複数のデータ圧縮手段は、それぞれのデータブロック内の前記類似性を利用してデータ圧縮をすることを特徴とする請求項１記載のデータ圧縮装置。
【請求項３】
前記複数の圧縮手段は、それぞれ、
前記分配手段から前記データブロックを受信するごとに、当該データブロックの圧縮処理を実行するか、または、前記分配手段から受信した複数のデータブロックをまとめて圧縮を実行することを特徴とする請求項１記載のデータ圧縮装置。
【請求項４】
前記複数のデータ圧縮手段が圧縮した、複数の圧縮データブロックを多重化して送信する通信手段を、さらに備えることを特徴とする請求項１記載のデータ圧縮装置。
【請求項５】
前記ストリームデータには、所定の区切りが設けられていて、
前記切り出し手段は、前記区切りに従って前記ストリームデータから前記データブロックを切り出すことを特徴とする請求項１記載のデータ圧縮装置。
【請求項６】
前記切り出し手段により切り出されたデータブロックは、ＨＴＴＰヘッダ部またはＨＴＴＰデータ部であり、
前記分配手段は、少なくとも、前記ＨＴＴＰヘッダ部であるヘッダデータと、テキストデータが格納された前記ＨＴＴＰデータ部であるテキストデータと、画像データが格納された前記ＨＴＴＰデータ部である画像データとを、それぞれ異なるデータ圧縮手段に振り分けることを特徴とする請求項５記載のデータ圧縮装置。
【請求項７】
ストリームデータから切り出されたデータブロックであって、所定の複数のデータタイプのいずれかに該当するデータブロックが、前記データタイプ別に圧縮されたデータを受け付ける手段と、
それぞれが、前記複数のデータタイプのうちの、それぞれ異なる所定の一のデータタイプについて、前記圧縮されたデータの伸長処理を行って前記データブロックを再生する、複数のデータ伸長手段と、
前記複数のデータ伸長手段により再生されたデータブロックに基づいて、前記ストリームデータを再構築するデータ組み立て手段と、を備えるデータ伸長装置。
【請求項８】
ストリームデータから、所定の複数のデータタイプのいずれかに該当するデータブロックを、順次切り出すステップと、
前記切り出されたデータブロックを、当該データブロックのデータタイプに応じて、振り分けるステップと、
前記振り分けられたデータブロックを、前記データタイプ別に並列的に圧縮処理を行うステップと、を有するデータ圧縮方法。
【請求項９】
ストリームデータから切り出されたデータブロックであって、所定の複数のデータタイプのいずれかに該当するデータブロックが、前記データタイプ別に圧縮されたデータを受け付けるステップと、
前記データタイプ別に圧縮されたデータを、前記データタイプ別に、並列的に伸長して前記データブロックを再生するステップと、
前記再生されたデータブロックに基づいて、前記ストリームデータを再構築するステップと、を有するデータ伸長方法。
【請求項１０】
コンピュータに実行されると、
ストリームデータから、所定の複数のデータタイプのいずれかに該当するデータブロックを、順次切り出す処理と、
前記切り出されたデータブロックを、当該データブロックのデータタイプに応じて、振り分ける処理と、
前記振り分けられたデータブロックを、データタイプ別に並列的に圧縮処理を行う処理とが、実現される、データ圧縮のためのコンピュータプログラム。
【請求項１１】
コンピュータに実行されると、
ストリームデータから切り出されたデータブロックであって、所定の複数のデータタイプのいずれかに該当するデータブロックが、前記データタイプ別に圧縮されたデータを受け付ける処理と、
前記データタイプ別に圧縮されたデータを、前記データタイプ別に、並列的に伸長して前記データブロックを再生する処理と、
前記再生されたデータブロックに基づいて、前記ストリームデータを再構築する処理と、が実現される、データ伸長のためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを圧縮・伸長するための技術に関し、特に、ストリームデータから所定のデータブロックを切り出して圧縮し、これを伸長して復元する技術に関する。
【背景技術】
【０００２】
データを圧縮するための手法が数多く知られている。そして、それらの手法の多くは、繰り返し出現する同一のパターン（冗長部)を検出し、これを何らかの方法で短縮することによりデータ量を削減している。従って、圧縮をするための対象となる範囲を大きくすると、多くの冗長部を一度に短縮できるため圧縮効率が高くなるが、一方で冗長部を検出するための処理などに要する時間が長くなり、圧縮処理全体の処理時間が長くなる。
【０００３】
特許文献１では、データの圧縮率を高めるために、データをフィールドごとに分離し、分離されたデータの差分を取るなどの前処理を行った後、データ圧縮を行うことが記載されている。
【０００４】
【特許文献１】特開平１１−２８４５１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
例えば、データを転送する場面においては、圧縮を用いてデータ転送時間の短縮を図るときは、圧縮しないでデータ転送をするのに要する時間と、データを圧縮し、圧縮したデータを転送し、転送後に圧縮データを伸長するまでのトータルの時間とを比較して検討する必要がある。従って、トータルの転送時間を短縮するためには、圧縮率のみならず、圧縮及び伸長に要する時間の短縮も重要である。
【０００６】
特許文献１では、データの特徴を基に適切に選定された前処理を行うことによって圧縮効率を向上させている。しかし、特許文献１では、前処理を行う分圧縮・伸長に要する時間も長くなる。
【０００７】
そこで、本発明の目的は、圧縮処理に要する時間を増加させることなく、圧縮効率を向上させることである。
【課題を解決するための手段】
【０００８】
本発明の一つの実施態様に従うデータ圧縮装置は、ストリームデータから、所定の複数のデータタイプのいずれかに該当するデータブロックを、順次切り出す切り出し手段と、データ圧縮処理を行い、それぞれが、前記複数のデータタイプのうちのいずれかに対応する複数のデータ圧縮手段と、前記切り出し手段により切り出されたデータブロックを、当該データブロックのデータタイプに応じて、それぞれのデータタイプに対応するデータ圧縮手段に振り分ける分配手段と、を備える。
【０００９】
好適な実施形態では、前記切り出し手段により切り出された、それぞれのデータブロック内のデータは、それぞれのデータタイプに応じた所定の類似性を有するデータである。そして、前記複数のデータ圧縮手段は、それぞれのデータブロック内の前記類似性を利用してデータ圧縮をするようにしてもよい。
【００１０】
好適な実施形態では、前記複数の圧縮手段は、それぞれ、前記分配手段から前記データブロックを受信するごとに、当該データブロックの圧縮処理を実行するか、または、前記分配手段から受信した複数のデータブロックをまとめて圧縮を実行するようにしてもよい。
【００１１】
好適な実施形態では、前記複数のデータ圧縮手段が圧縮した、複数の圧縮データブロックを多重化して送信する通信手段を、さらに備えるようにしてもよい。
【００１２】
好適な実施形態では、前記ストリームデータには、所定の区切りが設けられている。そして、前記切り出し手段は、前記区切りに従って前記ストリームデータから前記データブロックを切り出すようにしてもよい。
【００１３】
好適な実施形態では、前記切り出し手段により切り出されたデータブロックは、ＨＴＴＰヘッダ部またはＨＴＴＰデータ部である。この場合、前記分配手段は、少なくとも、前記ＨＴＴＰヘッダ部であるヘッダデータと、テキストデータが格納された前記ＨＴＴＰデータ部であるテキストデータと、画像データが格納された前記ＨＴＴＰデータ部である画像データとを、それぞれ異なるデータ圧縮手段に振り分けるようにしてもよい。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態に係る通信システムについて、図面を用いて説明する。
【００１５】
図1は、本実施形態に係る通信システム１の全体構成を示す図である。本システム１は、サーバ１０とクライアント２０とがネットワーク９を介して接続されていて、互いに通信を行う。クライアント２０は、複数台であってもよい。本実施形態では、クライアント２０からのリクエストに対してサーバ１０がレスポンスを返す際に、レスポンスとして返送するデータを送信側のサーバ１０で圧縮し、受信側のクライアント２０で伸張する。以下、特にこのデータの圧縮及び伸長について説明する。
【００１６】
ここで、サーバ１０およびクライアント２０は、いずれも、例えばプロセッサ及びメモリを備えた汎用的なコンピュータシステムにより構成され、以下に説明するサーバ１０及びクライアント２０内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１７】
サーバ１０は、WWW（World Wide Web）サーバ１１と、データ圧縮装置１３と、ネットワークインタフェース部１５と、データ記憶装置１７とを備える。
【００１８】
ネットワークインタフェース部１５は、ネットワーク９を介して、クライアント２０との間のデータ通信を行う。
【００１９】
WWWサーバ１１は、ネットワークインタフェース部１５を介してクライアント２０からのリクエストを受け付けると、データ記憶部１７からこのリクエストに対応するデータを取得する。そして、WWWサーバ１１は、このデータをストリームデータとしてネットワークインタフェース部１５を介して返送する。ここで、ＷＷＷサーバ１１がこのストリームデータをデータ圧縮装置１３に入力する。データ圧縮装置１３は、このストリームデータを圧縮して、クライアント２０に圧縮されたデータをレスポンスとして返す。
【００２０】
データ圧縮装置１３はデータの圧縮を行う。データ圧縮装置１３の構成については、後述する。
【００２１】
クライアント２０は、ブラウザ２１と、データ伸長装置２３と、ネットワークインタフェース部２５とを備える。
【００２２】
ブラウザ２１は、ユーザからの入力に基づいてサーバ１０に対するリクエストを生成し、ネットワークインタフェース部２５を介してサーバ１０へ送信する。また、サーバ１０からのレスポンスを受信する。
【００２３】
ネットワークインタフェース部２５は、ネットワーク９を介して、サーバ１０あるいは他のクライアント２０との間のデータ通信を行う。
【００２４】
データ伸張装置２３は、受信したデータが圧縮されていたときに、その圧縮データの伸長を行う。データ伸長装置２３の構成については、後述する。
【００２５】
図2にデータ圧縮装置１３およびデータ圧縮装置１３に入力されるストリームデータの詳細な構成を示す。
【００２６】
データ圧縮装置１３には、ストリームデータ４０が入力される。ストリームデータ４０は、WWWサーバ１１がデータ記憶部１７から取得した複数のコンテンツデータ５０（５０Ａ〜Ｄ）が連続するように構成されている。各コンテンツデータ５０は、ヘッダ部５１（５１Ａ〜Ｄ）と、データ部５２（５２Ａ〜Ｄ）とで構成されている。つまり、ストリームデータ４０には、予め所定の区切りが設けられている。
【００２７】
ここで、コンテンツデータ５０は、例えば、HTTP（Hyper Text Transfer Protocol）形式のデータであり、ヘッダ部５１がＨＴＴＰヘッダ部、データ部５２がＨＴＴＰデータ部であってもよい。
【００２８】
ヘッダ部５１には、データ部５２に関する情報、例えばデータ部５２に格納されているデータのタイプに関する情報などがテキスト形式で格納されている。データ部５２に格納されているデータのタイプは、例えば、テキストデータ、画像データなどがある。また、ここではヘッダ部５１内のデータの類似性に着目し、ヘッダ部５１を一つのデータタイプとして扱う。従って、以下の説明では、データタイプとして、ヘッダタイプ、テキストタイプ、および画像タイプがある。
【００２９】
なお、データタイプとしては、上記以外にも種々のものが考えられる。例えば、音声データ、音楽データ、地図データなど、同一パターンを多く含むような、所定の類似性を有するデータ群をそれぞれ一つのデータタイプとしてもよい。
【００３０】
データ圧縮装置１３は、入力されたストリームデータ４０から、所定のブロックを切り出すデータ切り出し処理部３１と、データ切り出し処理部３１で切り出されたデータをいずれかの圧縮処理部３３に振り分ける分配処理部３２と、データの圧縮処理を行う複数の圧縮処理部３３（３３ａ、３３ｂ、３３ｃ）と、複数の圧縮処理部３３でそれぞれ圧縮されたデータを多重化する多重化処理部３４とを備える。
【００３１】
各圧縮処理部３３は、それぞれ、バッファ３３１（３３１ａ）と、圧縮処理を行うときに用いられる圧縮辞書３３２（３３２ａ）と、実際の圧縮処理を実行する圧縮実行部３３３（３３３ａ）とを備える。なお、図２では、圧縮処理部３３内の構成は、1つの圧縮処理部３３ａについてだけ表示し、他の2つの圧縮処理部３３ｂ、３３ｃについては表示を省略している。
【００３２】
ここで、各圧縮処理部３３ａ〜ｃは、それぞれ、処理対象となるデータタイプが予め決められている。以下の説明では、圧縮処理部３３ａがヘッダタイプ、圧縮処理部３３ｂがテキストタイプ、そして、圧縮処理部３３ｃが画像タイプのデータをそれぞれ圧縮処理するように予め定められている。
【００３３】
データ切り出し処理部３１がストリームデータ４０の入力を受け付けると、ストリームデータ４０内で予め設けられている所定の区切りを示す情報に従ってデータブロックの切り出しを行う。例えば、本実施形態では、コンテンツデータ５０の区切り及びコンテンツデータ５０内のヘッダ部５１とデータ部５２との区切りに従って、データブロックを切り出す。つまり、ヘッダ部５１及びデータ部５２の単位でデータブロックが切り出される。切り出されたデータブロックは、順次、分配処理部３２へ送られる。従って、分配処理部３２には、ストリームデータ４０として入力された順序に従ってデータが送られる。
【００３４】
なお、ストリームデータ４０に予め区切りが設けられていない場合、あるいは、予め区切りが設けられていてもその区切りを示す情報を利用できないときは、データ切り出し処理部３１がストリームデータ４０を所定の類似性を有する単位に分割して切り出すようにしてもよい。
【００３５】
分配処理部３２は、切り出し処理部３１が切り出したデータブロックを受信すると、受信するごとに、データブロック内のデータタイプに応じて、いずれかの圧縮処理部３３に振り分ける。つまり、切り出されたデータブロックがヘッダタイプであれば圧縮処理部３３ａへ送り、テキストタイプであれば圧縮処理部３３ｂへ送り、画像タイプであれば圧縮処理部３３ｃへ送る。図２の例では、ヘッダタイプのデータブロックはヘッダ部５１Ａ〜Ｄ、テキストタイプのデータブロックはデータ部５２Ａ、５２Ｃ、画像タイプのデータブロックは、データ部５２Ｂ，５２Ｄであり、それぞれ、圧縮処理部３３ａ〜ｃへ割り振られている。なお、分配処理部３２は、ヘッダ部５１Ａ〜Ｄとデータ部５２Ａ〜Ｄとを分割するときに、それぞれ対応するヘッダ部とデータ部とを対応付けるタグ（対応タグ）を付加してもよい。このタグは、後述するストリームデータの組み立て時に使用してもよい。
【００３６】
ここで、分配処理部３２におけるデータタイプの判別は、例えば、以下のようにして行う。すなわち、ヘッダ部５１は、所定のヘッダ情報が含まれているのでこれを検出することにより行う。また、ヘッダ部５１の後には必ずデータ部５２（ここでは画像タイプまたはテキストタイプ）がくる。そして、ヘッダ部５１内のヘッダ情報には、次にくるデータ部５２内のデータタイプが画像タイプであるか、あるいはテキストタイプであるかを示す、データタイプの判別情報が格納されている。そこで、分配処理部３２は、このデータタイプの判別情報を読み取って、判別する。
【００３７】
圧縮処理部３３ａ〜ｃが行う圧縮処理は、対象となるデータタイプが異なる点以外はいずれも共通するので、代表して圧縮処理部３３ａについて説明する。分配処理部３２から送られてきたデータブロックは、バッファ３３１ａに格納される。そして、バッファ３３１aが一杯になったとき、あるいは、ひとつのデータブロックがバッファ３３１ａに書き込まれるたびに、圧縮実行部３３３ｃがバッファ３３１ａからデータを取得し、圧縮辞書３３２ａを用いて圧縮処理を実行する。そして、圧縮されたデータは、圧縮処理が行われた圧縮処理部３３ａ〜ｃを識別するためのタグ（処理部識別タグ）が付されて、多重化処理部３４へ出力される。なお、圧縮処理は、例えば、スライド辞書圧縮方式や、ツリー辞書圧縮方式などの可逆圧縮方式を採用することができる。
【００３８】
例えば、スライド辞書圧縮方式では、バッファ３３１ａに格納されているデータのパターンと同一のデータパターンが圧縮辞書３３２ａに存在する場合には、データ圧縮を行う。そして、バッファ３３１ａ内のデータを圧縮辞書３３２ａにＦＩＦＯの手順で格納し、圧縮辞書３３２ａを順次更新する。
【００３９】
多重化処理部３４は、ネットワークインタフェース部１５がデータ通信を行うために、各圧縮処理部３３ａ〜ｃによって圧縮されたデータの多重化を行う。そして、圧縮されたデータを多重化したデータが、ネットワークインタフェース部１５によりクライアント２０へ送信される。ここで、圧縮処理部３３ａ〜ｃがデータブロック単位に圧縮処理を行う場合は、ストリームデータ４０としてデータ圧縮装置１３に入力された順序に従って圧縮される。例えば、図２の例では、データブロック５１Ａ，５１Ｂ，５２Ａ，５２Ｂ・・・の順で圧縮されて、この順序に従って多重化処理部３４へ出力される。従って、多重化処理部３４で多重化されたデータも、この入力順序が反映されている。
【００４０】
次に、データ伸張装置２３の構成について、図３を用いて説明する。
【００４１】
データ伸張装置２３は、復号化処理部４１と、圧縮されたデータを伸張する伸張処理部４２（４２ａ，４２ｂ，４２ｃ）と、伸張されたデータを再び組み立ててストリームデータとして構成する組み立て処理部４３とを備える。
【００４２】
復号化処理部４１は、サーバ１０から多重化して送信されてきたデータを、ネットワークインタフェース部２１を介して受信する。そして、受信データの多重化された状態を解除し、各圧縮データを取り出す。ここで、各圧縮データは、データ圧縮装置１３に入力された順序に従って取り出され、この順序に従って下記の要領で各伸長処理部４２ａ〜ｃへ振り分けられる。
【００４３】
伸張処理部４２は、圧縮処理と逆の処理を行って圧縮データを伸張し、圧縮前のデータに戻す。伸張処理部４２は、圧縮処理部３３と同様に、伸張処理部４２ａがヘッダタイプ、伸張処理部４２ｂがテキストタイプ、そして、伸張処理部４２ｃが画像タイプと、それぞれ伸張処理を行う対象とするデータタイプが予め定められている。ここで各圧縮データには、上述の通り、それぞれが生成された圧縮処理部３３ａ〜ｃを識別するための処理部識別タグが付されている。従って、復号化処理部４１は、そのタグに基づいて、各圧縮データをそれぞれ対応する伸長処理部４２ａ〜ｃのいずれかに振り分ける。
【００４４】
各伸張処理部４２は、それぞれ、バッファ４２１（４２１ａ）と、データ伸張時に用いられる圧縮辞書４２２（４２２ａ）と、圧縮されたデータを伸張する伸張実行部４２３（４２３ａ）とを備える。なお、図３でも、伸張処理部４２内の構成は、1つの伸張処理部４２ａについてだけ表示し、他の2つについては省略している。
【００４５】
伸張処理部４２ａ〜ｃが行う伸張処理も、対象とするデータタイプが異なる点を除き共通するので、代表して伸張処理部４２ａについて説明する。伸張処理部４２ａが復号化処理部４１から受け取ったデータは、まず、バッファ４２１ａに格納される。そして、伸張実行部４２３ａが、バッファ４２１ａに格納されているデータと圧縮辞書４２２ａと対比しながら、圧縮処理と反対の処理を行ってデータを伸張する。そして、これと同時に、圧縮辞書４２２ａを順次更新する。そして、伸張されたデータは、組み立て処理部４３に出力される。
【００４６】
図２の例では、伸長処理部４２ａから復元されたヘッダ部５１Ａ〜５１Ｄが出力され、伸長処理部４２ｂから復元されたデータ部５２Ａ，５２Ｃが出力され、伸長処理部４２ｃから復元された５２Ｂ，５２Ｄが出力され、組み立て処理部４３に入力される。
【００４７】
組み立て処理部４３は、各伸長処理部４２ａ〜ｃから受け取ったそれぞれのデータを組み立てて、ストリームデータ４０を再生する。このとき、圧縮処理部３３ａ〜ｃでデータブロック単位に圧縮処理が行われている場合には、各伸長処理部４２ａ〜ｃでのデータの伸長も入力順序に従うので、組み立て処理部４３が受け取った順序に組み立てることでストリームデータ４０の再生が可能である。また、圧縮処理部３３ａ〜ｃで複数のデータブロックがまとめて圧縮されている場合は、各データブロックに付加されたヘッダ部とデータ部とを対応付けるタグに基づいて、ヘッダ部とデータ部とを対応させてコンテンツデータ５０を再生し、ストリームデータ４０を再生する。
【００４８】
次に、データ圧縮装置１３でスライド辞書圧縮方式を用いて圧縮処理を行ったときの一例を、図４〜図８を用いて具体的に説明する。
【００４９】
スライド辞書圧縮方式とは、同じパターンのデータ並びを検出し、後に出現した同じパターンのデータ並びを先に出現したパターンまでの距離(オフセット)とデータ長に置き換えて、全体のサイズを小さくする圧縮方式である。また、同じパターンのデータ並びを検出するための比較を行うときに、先行するデータを格納しておく記憶装置をスライド辞書といい、スライド辞書に格納するデータ量をスライド辞書サイズという。例えば、「012345670123」というデータについて、スライド辞書サイズ「１０」の辞書を用いて圧縮すると、「01234567、８文字前から４文字連続」という圧縮結果を得る。また、スライド辞書サイズ「５」のスライド辞書を用いると、まったく圧縮されない（後方の0が比較対象となったときには、スライド辞書は「34567」が格納されていて、先行する0はない）。なお、本実施形態では、圧縮処理部３３の圧縮辞書３３２が、スライド辞書に対応する。
【００５０】
図２において説明したように、ストリームデータ４０がヘッダ部５１とデータ部５２に分割され、それぞれのデータブロックが圧縮処理部３３ａ〜ｃのいずれかにそれぞれ割り振られる。ここでは、ストリームデータ４０として、図４に示すデータが入力された場合について考える。ここでは、説明の便宜上、ヘッダタイプのデータをアルファベット、テキストタイプのデータをひらがな、画像タイプのデータを数字で、それぞれ表示している。このとき、各圧縮処理部３３ａ〜ｃの圧縮辞書３３２は、いずれも初期化された状態である。また、各圧縮辞書３３２のスライド辞書サイズを「５」とする。
【００５１】
まず、圧縮処理部３３ａに、ヘッダ部５１Ａ、５１Ｂ，５１Ｃ，５１Ｄがこの順序で入力されると、この順序で圧縮処理が行われる。その圧縮結果を図５に示す。すなわち、データブロック５１Ａについては、圧縮が行われていない。これは、圧縮辞書３３２が初期化されているからである。データブロック５１Ｂは、「ＢＣＤ」の部分が、圧縮辞書３３１ａに格納されているデータブロック５１Ａと同一パターンであるから、「＠１」で示す部分に「３文字前から３文字連続」を示す情報が格納される。データブロック５１Ｃも「ＢＣＤ」が圧縮辞書３３１ａに格納されているデータブロック５１Ｂと同一パターンであり、「＠２」で示す部分に「５文字前から３文字連続」を示す情報が格納される。そして、データブロック５１Ｄも「ＢＣＤ」が圧縮辞書３３１ａに格納されているデータブロック５１Ｃと同一パターンであり、「＠３」で示す部分に「３文字前から３文字連続」を示す情報が格納される。
【００５２】
同様にして、圧縮処理部３３ｂにデータ部５２Ａ，５２Ｃがこの順序で入力されると、この順序で圧縮処理が実行される。その圧縮結果を図６に示す。すなわち、データブロック５２Ａについては、圧縮が行われていない。これは、圧縮辞書３３２が初期化されているからである。データブロック５２Ｃは、「あいう」の部分が、圧縮辞書に格納されているデータブロック５２Ａと同一パターンであるから、「＠４」で示す部分に「４文字前から３文字連続」を示す情報が格納される。
【００５３】
さらに同様にして、圧縮処理部３３ｃにデータ部５２Ｂ，５２Ｄがこの順序で入力されると、この順序で圧縮処理が実行される。その圧縮結果を図７に示す。すなわち、データブロック５２Ｂについては、圧縮が行われていない。これは、圧縮辞書３３２が初期化されているからである。データブロック５２Ｄは、「２５９」の部分が、圧縮辞書に格納されているデータブロック５２Ｂと同一パターンであるから、「＠５」で示す部分に「４文字前から３文字連続」を示す情報が格納される。
【００５４】
上記の処理により、３２データに対して１５データが圧縮されたことになり、圧縮率（圧縮対象データ比率）は４６．８７５％である。
【００５５】
上述の例からわかるように、各データタイプは、それぞれに固有のデータのパターンが多く出現するという特徴を有する。つまり、同一のデータタイプに属するデータについては、データの内容にある程度の類似性がある。従って、本実施形態のように各圧縮処理部３３が圧縮処理をするデータタイプを固定することにより、各データタイプに固有のパターンを利用した圧縮を行うことにより、圧縮効率が向上する。
【００５６】
つぎに、比較のためにデータタイプ別に圧縮処理部を区別しないで、一つの圧縮処理部３３が全データの圧縮処理を行う場合について説明する。すなわち、上記と同一のストリームデータを同一の圧縮処理部で圧縮した場合の圧縮結果を図８に示す。図８（ａ）がスライド辞書サイズ「５」の場合であり、（ｂ）がスライド辞書サイズ「１５」の場合の結果である。これからわかるように、（ａ）ではまったく圧縮が行われない。これは、ストリームデータ４０全体では、５以内の距離で同一パターンが出現しないためである。一方、（ｂ）は、「＠８」「＠９」で示した２箇所だけ圧縮されている。
【００５７】
この結果、スライド辞書サイズ「１５」の場合、３２データに対してわずかに６データのみ圧縮されたことになり、圧縮率（圧縮対象データ比率）は１８．７５％である。従って、本実施形態のようにデータタイプ別に圧縮処理装置を備えることにより、従来よりも圧縮効率が向上することがわかる。これは、各データタイプは、それぞれに固有のデータのパターンが多く出現するので、これを利用して高い圧縮効果をあげることができるからである。
【００５８】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【００５９】
例えば、上記実施形態では、サーバ１０にデータ圧縮装置１３が搭載され、クライアント２０にデータ伸長装置２３が搭載され、圧縮データの転送方向はサーバからクライアントへの一方向であるが、図９に示すように、サーバ及びクライアントの双方に、データ圧縮装置及びデータ伸長装置の両方を備え、双方向で圧縮通信を行うようにしてもよい。
【００６０】
また、上記実施形態では通信システムについて示しているが、圧縮装置及び伸長装置の用途はこれに限定されない。さらに、圧縮装置と伸長装置が同一のコンピュータマシン上で実現されていてもよい。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施形態に係る通信システムの全体構成を示す図である。
【図２】本実施形態に係る圧縮装置の構成を示す図である。
【図３】本実施形態に係る伸長装置の構成を示す図である。
【図４】ストリームデータの一例を示す図である。
【図５】ヘッダタイプの圧縮例を示す図である。
【図６】テキストタイプの圧縮例を示す図である。
【図７】画像タイプの圧縮例を示す図である。
【図８】従来の方式による圧縮例を示す図である。
【図９】本発明の他の実施形態に係る通信システムの全体構成を示す図である。
【符号の説明】
【００６２】
１…通信システム、１０…サーバ、２０…クライアント、１３…データ圧縮装置、２３…データ伸長装置、４０…ストリームデータ、５０…コンテンツデータ、５１…ヘッダ部、５２…データ部。
【図１】
2006100973.tif 000003
【図２】
2006100973.tif 000004
【図３】
2006100973.tif 000005
【図４】
2006100973.tif 000006
【図５】
2006100973.tif 000007
【図６】
2006100973.tif 000008
【図７】
2006100973.tif 000009
【図８】
2006100973.tif 000010
【図９】
2006100973.tif 000011