JP2007129683A - Compressed data transmission method - Google Patents
Compressed data transmission method Download PDFInfo
- Publication number
- JP2007129683A JP2007129683A JP2006066951A JP2006066951A JP2007129683A JP 2007129683 A JP2007129683 A JP 2007129683A JP 2006066951 A JP2006066951 A JP 2006066951A JP 2006066951 A JP2006066951 A JP 2006066951A JP 2007129683 A JP2007129683 A JP 2007129683A
- Authority
- JP
- Japan
- Prior art keywords
- data
- initial value
- dictionary
- server
- character string
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
本発明は、スライド辞書を利用したデータ圧縮方法に係り、特にテキスト文書やプログラムなどの圧縮に好適なデータ圧縮方法及び圧縮データ送信方法に関する。 The present invention relates to a data compression method using a slide dictionary, and more particularly to a data compression method and a compressed data transmission method suitable for compression of a text document, a program, and the like.
データ圧縮方式には、ロスレスとロッシーがある。ロスレスは圧縮したデータを完全に復元可能な可逆圧縮方式であり、主にテキスト文書やプログラムなどの圧縮に利用されている。ロッシーは圧縮したデータを完全に復元できない非可逆圧縮方式であり、画像、音声、動画等の圧縮に利用されている。データ圧縮は、データ通信において送信するデータ量を削減する目的で使用される。 There are lossless and lossy data compression methods. Lossless is a lossless compression method that can completely restore compressed data, and is mainly used for compression of text documents and programs. Lossy is an irreversible compression method that cannot completely restore compressed data, and is used for compression of images, sounds, moving pictures, and the like. Data compression is used for the purpose of reducing the amount of data transmitted in data communication.
ロスレス圧縮手法の一つとして、スライド辞書を用いたデータ圧縮方法が知られている。このデータ圧縮手法は、過去に出現したデータ系列の中から一致する最大長の部分列を検索して、その部分列の位置と一致長を符号として出力するものであり、過去に出現したデータ系列は辞書に格納されている。この辞書の検出範囲は、圧縮中に遷移(スライド)するため、一般にスライド辞書と呼ばれている。 As one of the lossless compression methods, a data compression method using a slide dictionary is known. This data compression method searches for a maximum matching partial sequence from data sequences that have appeared in the past, and outputs the partial sequence position and matching length as a code. Is stored in the dictionary. Since the detection range of this dictionary changes (slides) during compression, it is generally called a slide dictionary.
近年、モバイル端末の普及は目覚しい。モバイル端末のサービスでは、容量が小さいデータの通信が頻繁になされる。例えば、モバイル端末からサーバへのHTTPリクエスト(上りデータ)のデータ量は僅か1KB(キロバイト)程度である。また、モバイル端末とサーバとの間でやりとりされるデータや、RFIDタグなどによる無線通信においては、例えばヘッダ情報など、同じような内容のデータが一連のデータ送受信の間に何度もやり取りされる傾向が強い。
従来のスライド辞書を利用したデータ圧縮方法では、過去に出現した部分列を辞書に登録(学習)する。一般的に、辞書が完成するには8KB程度のデータ読み込みが必要とされている。そのため、データ量が小さいと圧縮するのに十分な登録(学習)ができないため、十分な圧縮率が得られない。
In recent years, the spread of mobile terminals has been remarkable. In mobile terminal services, data with a small capacity is frequently communicated. For example, the data amount of the HTTP request (uplink data) from the mobile terminal to the server is only about 1 KB (kilobytes). In addition, in data exchanged between a mobile terminal and a server, or in wireless communication using an RFID tag, data with similar contents such as header information is exchanged many times during a series of data transmission / reception. The tendency is strong.
In a conventional data compression method using a slide dictionary, a partial sequence that appeared in the past is registered (learned) in the dictionary. Generally, about 8 KB of data is required to complete a dictionary. Therefore, if the amount of data is small, registration (learning) sufficient for compression cannot be performed, so that a sufficient compression rate cannot be obtained.
この問題を解決するために、本出願人は、以前、圧縮前に頻出文字を初期値として事前に辞書に登録しておき、辞書内の初期値と圧縮対象のデータの一致を取ることで圧縮効率を向上させるデータ圧縮方式を提案した(特開平5−24177号公報)。このデータ圧縮方式では、辞書に初期値として登録されている文字列については、初出でも圧縮できるので、圧縮効率が良くなる。 In order to solve this problem, the applicant previously registered a frequent character as an initial value in advance in the dictionary before compression, and performed compression by matching the initial value in the dictionary with the data to be compressed. A data compression method for improving the efficiency has been proposed (Japanese Patent Laid-Open No. 5-24177). In this data compression method, since the character string registered as an initial value in the dictionary can be compressed even when it is first appeared, the compression efficiency is improved.
図22は、上記特開平5−24177号公報に開示されている辞書への初期値登録方法を説明する図である。
図22(a)は、初期値作成用のサンプルデータに存在する文字列の種類を木構造(tree structure)で示したものである。同図(a)に示す木構造の各ノードの文字“a”、“b”、“c”、“d”はサンプルデータ内の文字を示し、その下の矩形内の数字はそれらの文字の各文字列内での出現頻度を示す。
FIG. 22 is a diagram for explaining an initial value registration method in a dictionary disclosed in the above-mentioned Japanese Patent Laid-Open No. 5-24177.
FIG. 22A shows the type of character string existing in the sample data for initial value creation in a tree structure. The characters “a”, “b”, “c”, “d” of each node of the tree structure shown in FIG. 5A indicate characters in the sample data, and the numbers in the rectangle below the characters indicate the characters of those characters. Indicates the frequency of occurrence within each character string.
同図(a)の木構造を参照して、出現頻度が所定の閾値2以上の文字列を抽出すると同図(b)に示す“aaa”、“abc”、“ac”、“bb”、“cc”、“d”の5個となる。そして、これら5個の文字列を初期値として、辞書1001に登録する(同図(c)参照)。
Referring to the tree structure of FIG. 8A, when a character string having an appearance frequency of a
このように、サンプルデータを基に出現頻度の高い文字列を事前に辞書に登録することによってデータの圧縮効率を向上させることが可能となる。
また、本出願人は、図21に示すようなSLC(Super Lossless Data Compression)方式のデータ圧縮方式を提案している(日本特許第3541930号、米国特許6,320,522 B1)。
As described above, it is possible to improve the data compression efficiency by registering a character string having a high appearance frequency in the dictionary in advance based on the sample data.
Further, the present applicant has proposed a data compression method of SLC (Super Lossless Data Compression) as shown in FIG. 21 (Japanese Patent No. 3541930, US Pat. No. 6,320,522 B1).
SLC方式では、辞書2001としてハッシュ表を使用しており、被圧縮データ2000における既出文字列の先頭の任意数の文字(この例では3文字)をハッシュ関数2002によりハッシュ値に変換し、そのハッシュ値と既出文字列の長さ(文字列長)を辞書2001に登録する。被圧縮データ2000の文字列には先頭から1で始まるシリアル番号が出現位置として割り振られる。スライディングウィンドウ2005をスライディングして繰り返し出現する文字列を調べ、既出文字列と一致する文字列については、(出現位置、長さ)という符号に符号化する。ここで、出現位置は、辞書2001に登録されている既出文字列の出現位置であり、ハッシュ値をキーとして辞書2001から読み出す。
In the SLC method, a hash table is used as the
図21では、被圧縮データ2000が“compression&decompression…”となっており、この文字列中で2回目に出現する“compression”という文字列が(1、11)という符号に符号化される例が示されている。“compression”の先頭3文字“com”のハッシュ値はiであり、辞書2001からハッシュ値iに対応する出現位置(=1)が読み出される。
図22に示す従来技術は、データを圧縮する前に辞書に頻出する文字列を初期値として登録してデータ圧縮効率の向上を図っているが、単純に、出現頻度が所定の閾値以上の出現文字列(短文)を辞書に登録するため、初期値のサイズが大きくなってしまうという問題があった。 The prior art shown in FIG. 22 attempts to improve the data compression efficiency by registering a character string frequently appearing in the dictionary as an initial value before compressing the data. However, the appearance frequency is simply higher than a predetermined threshold value. Since the character string (short text) is registered in the dictionary, there is a problem that the size of the initial value becomes large.
図21に示す従来技術は、辞書に登録された既出文字列を高速に検出するために、その先頭の任意数の文字をハッシュ値に変換し、そのハッシュ値を既出文字列の出現位置と共に辞書に登録するようにしている。しかしながら、辞書(ハッシュ表)は、同一ハッシュ値については1つの出現位置情報しか登録できない構成となっている。初期値文字列の中には、異なる文字列であるにもかかわらず偶然に同じハッシュ値を取るものも存在しうる。このため、このようなハッシュ値の衝突が発生すると、辞書に登録されていた初期値は後から出現した同じハッシュ値を有する初期値によって上書きされてしまい、先に登録した初期値が生かされないという問題があった。 The prior art shown in FIG. 21 converts an arbitrary number of leading characters into a hash value in order to detect an already-existing character string registered in the dictionary at a high speed, and the hash value together with the appearance position of the already-existing character string. I am trying to register. However, the dictionary (hash table) has a configuration in which only one appearance position information can be registered for the same hash value. Some initial value character strings may accidentally take the same hash value even though they are different character strings. Therefore, when such a hash value collision occurs, the initial value registered in the dictionary is overwritten by the initial value having the same hash value that appears later, and the initial value registered earlier is not utilized. There was a problem.
本発明の目的は、圧縮効率の高いスライド型辞書登録用の初期値を生成することである。本発明の他の目的は、スライド型辞書として使用するハッシュ表に初期値を登録する際に、ハッシュ値の衝突が生じない初期値を抽出できるようにすることである。 An object of the present invention is to generate an initial value for slide type dictionary registration with high compression efficiency. Another object of the present invention is to make it possible to extract initial values that do not cause hash value collision when registering initial values in a hash table used as a slide dictionary.
また本発明の他の目的は、上記により生成した辞書を用いた圧縮データの送信方法を提供することである。 Another object of the present invention is to provide a compressed data transmission method using the dictionary generated as described above.
本発明の圧縮データ送信方法は、サンプルデータから生成した初期値が予め登録された辞書を用いてデータを符号化し、該符号化したデータをサーバとクライアント間で送信するための、コンピュータで実行される方法を前提とする。 The compressed data transmission method of the present invention is executed by a computer for encoding data using a dictionary in which initial values generated from sample data are registered in advance, and transmitting the encoded data between a server and a client. This method is assumed.
本発明の圧縮データ送信方法は、前記サンプルデータ内の文字列を、先頭n文字または先頭n文字のハッシュ値が同じである文字列同士のグループに分類し、前記各グループから最頻出文字列を検出し、該最頻出文字列を前記初期値として登録した辞書を前記サーバが保有し、前記サーバは前記クライアントに前記辞書情報を送信し、前記サーバと前記クライアント間でデータの送受信を行う際には、該データを前記辞書情報により圧縮してから送受信することを特徴とする。 In the compressed data transmission method of the present invention, the character string in the sample data is classified into a group of character strings in which the first n characters or the hash value of the first n characters are the same, and the most frequent character string is extracted from each group. When the server stores a dictionary that detects and registers the most frequently used character string as the initial value, the server transmits the dictionary information to the client, and transmits and receives data between the server and the client. Is transmitted and received after the data is compressed with the dictionary information.
前記辞書情報は、例えば、辞書に登録する初期値、または該初期値と該初期値の辞書内での位置情報を格納する手段(例えば、ハッシュ表)である。
上記本発明の圧縮データ送信方法において、例えば、前記サーバは、提供するサービスの種別毎に辞書情報を保有し、クライアントにサービスを提供する際には、そのサービスに対応した辞書を用いて、クライアントに送信するデータを圧縮するようにしてもよい。
また、上記本発明の圧縮データ送信方法において、例えば、前記サーバは、前記辞書情報を複数保有し、前記クライアントにデータを送信する際には、該データの圧縮効率が最も良い辞書情報を用いて前記データを圧縮するようにしてもよい。
The dictionary information is, for example, a means (for example, a hash table) that stores an initial value to be registered in the dictionary, or position information of the initial value and the initial value in the dictionary.
In the compressed data transmission method of the present invention, for example, the server holds dictionary information for each type of service to be provided, and when providing a service to a client, the server uses a dictionary corresponding to the service to The data to be transmitted may be compressed.
In the compressed data transmission method of the present invention, for example, when the server holds a plurality of dictionary information and transmits data to the client, the dictionary information having the best compression efficiency of the data is used. The data may be compressed.
本発明の圧縮データ送信方法によれば、サーバとクライアント間で、比較的小容量のデータを効率良く圧縮して送受信できる。 According to the compressed data transmission method of the present invention, a relatively small amount of data can be efficiently compressed and transmitted / received between the server and the client.
本発明によれば、サンプルデータ中に出現する文字列を先頭のn文字が等しい文字列のグループに分類した後、各グループから最頻出文字列を検出し、該検出した最頻出文字列を辞書に登録する初期値として選択するので、限られた初期値サイズの中で、圧縮効率のよい初期値を登録することができる。また、圧縮率を高める一致長が長い文字列を、より多く辞書に初期値として登録できるようになる。 According to the present invention, after character strings appearing in sample data are classified into groups of character strings having the same first n characters, the most frequent character strings are detected from each group, and the detected most frequent character strings are dictionaryd. Therefore, an initial value with good compression efficiency can be registered within a limited initial value size. In addition, a larger number of character strings having a long matching length that increase the compression rate can be registered in the dictionary as initial values.
また、サンプルデータ中に出現する文字列を先頭n文字のハッシュ値が等しい文字列のグループに分類した後、各グループから最頻出文字列を検出し、該検出した最頻出文字列を辞書(ハッシュ表)に登録する初期値とするので、辞書に登録した初期値が別の初期値によって上書きされること防止できる。また、辞書の限られたサイズの領域に、より多くの初期値を効率良く登録できるようになる。 In addition, after character strings appearing in the sample data are classified into groups of character strings having the same hash value of the first n characters, the most frequent character strings are detected from each group, and the detected most frequent character strings are stored in a dictionary (hash Therefore, the initial value registered in the dictionary can be prevented from being overwritten by another initial value. Also, more initial values can be efficiently registered in a limited size area of the dictionary.
ひいては、上記により予め初期値を登録した辞書を利用することで、比較的小さな圧縮対象データであっても、効率よく圧縮することが可能になる。
また、上記により生成した複数の辞書のうち適切な辞書を用いて送信データを圧縮することができるようになる。
As a result, by using a dictionary in which initial values are registered in advance as described above, even relatively small data to be compressed can be efficiently compressed.
In addition, transmission data can be compressed using an appropriate dictionary among the plurality of dictionaries generated as described above.
以下、図面を参照しながら本発明の実施の形態について説明する。
[本発明の原理(その1)]
図1は、本発明の被圧縮データの符号化方法を説明する図である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[Principle of the present invention (1)]
FIG. 1 is a diagram for explaining a method of encoding compressed data according to the present invention.
本発明においては、サンプルデータ中に頻出する長い文字列を初期値として事前に用意しておく。そして、該初期値が仮想的に圧縮対象文字列(被圧縮データ)の前に出現するものとみなして、該初期値を参照して被圧縮データの圧縮、復元を行う。 In the present invention, a long character string frequently appearing in sample data is prepared in advance as an initial value. Then, assuming that the initial value virtually appears before the character string to be compressed (compressed data), the compressed data is compressed and decompressed with reference to the initial value.
ところで、本明細書では、簡略化のために、スライド辞書を単に辞書と記載する場合もある。
図1に示す例では“compression”という文字列(初期値)が、圧縮対象の文字列“compression&decomptession…”の前に仮想的に出現したものとみなしている。被圧縮データの先頭位置は「1」に設定されている。また、図1では、学習済みのハッシュ表14を示している。
By the way, in this specification, the slide dictionary may be simply referred to as a dictionary for simplification.
In the example shown in FIG. 1, it is assumed that the character string (initial value) “compression” appears virtually before the character string “compression & decomptession ...” to be compressed. The leading position of the compressed data is set to “1”. FIG. 1 shows a learned hash table 14.
ハッシュ表14には、前述したSLC方式と同様に、初期値の先頭n文字(図1の例では、先頭3文字)の出現位置を登録する。図中ハッシュ表14には説明の都合上、ハッシュ値がデータと対応付けて記されているが、ハッシュ値はハッシュ表においてアクセスすべき行目を示すデータであるので、実際のハッシュ表にはハッシュ値を登録する必要はない。 In the hash table 14, the appearance position of the initial n characters of the initial value (the first 3 characters in the example of FIG. 1) is registered, as in the SLC method described above. In the figure, for convenience of explanation, a hash value is described in association with data in the hash table 14, but the hash value is data indicating the line to be accessed in the hash table. There is no need to register a hash value.
図1に示す例では、最初の初期値が“compression”となっている。“compression”の先頭3文字“com”のハッシュ値は「i」であるので、“compression”の開始位置は、ハッシュ表14の「i+1」行目に登録される。この登録において、ハッシュ表14の「i+1」行目には、 “compression”の出現位置(先頭文字の位置)である「−32」が登録される。 In the example shown in FIG. 1, the initial initial value is “compression”. Since the hash value of the first three characters “com” of “compression” is “i”, the start position of “compression” is registered in the “i + 1” line of the hash table 14. In this registration, “−32” which is the appearance position (position of the first character) of “compression” is registered in the “i + 1” line of the hash table 14.
図1に示す例では、圧縮対象文字列“compression&decomptession…”の先頭11文字が初期値“compression”と同じ文字列となっている。このため、圧縮対象文字列は、最初の11文字“compression”が、直ちに、(−32,11)の符号に符号化される。 In the example shown in FIG. 1, the first 11 characters of the compression target character string “compression & decomptession...” Are the same character string as the initial value “compression”. Therefore, in the compression target character string, the first 11 characters “compression” are immediately encoded into a code of (−32, 11).
このように、スライド辞書を用いた圧縮は、長い繰り返しを1つの符号で符号化できるため、出現頻度の高い文字列(頻出文字列)を初期値としてスライド辞書に事前に登録しておくことで、被圧縮データを高圧縮率で符号化する可能性は高くなる。 As described above, since compression using a slide dictionary can encode a long repetition with a single code, a character string having a high appearance frequency (frequent character string) is registered in advance in the slide dictionary as an initial value. The possibility of encoding the data to be compressed at a high compression rate is increased.
ハッシュ表を用いたスライド辞書は、初期値及び被圧縮データを符号化する際に出現する新たな文字列を登録するメモリ(以後、便宜上、辞書バッファと記載)と、該メモリに登録された文字列の開始位置を保持するハッシュ表とで構成される。ハッシュ表を用いたスライド辞書の学習は、辞書バッファへの文字列の登録とハッシュ表への辞書バッファに登録された文字列の開始位置の登録という2つの処理によってなされる。 A slide dictionary using a hash table includes a memory (hereinafter referred to as a dictionary buffer for convenience) for registering a new character string that appears when an initial value and data to be compressed are encoded, and a character registered in the memory. It consists of a hash table that holds the start position of the column. Learning of the slide dictionary using the hash table is performed by two processes: registration of a character string in the dictionary buffer and registration of a start position of the character string registered in the dictionary buffer in the hash table.
スライド辞書に初期値を登録する際には、図2に模式的に示すように、複数のサンプルデータ21−1〜21−nの中から圧縮効率の良い文字列(長い頻出文字列)を初期値として生成し、それらの文字列を出現頻度順に辞書24に登録する必要がある。
When the initial value is registered in the slide dictionary, as schematically shown in FIG. 2, a character string (long frequent character string) with good compression efficiency is initialized from among a plurality of sample data 21-1 to 21-n. It is necessary to generate them as values and register these character strings in the
スライド辞書では、通常、ハッシュ表に先頭文字列の出現位置のみを保持している。これは、メモリ使用量を節約するためである。本発明においても、スライド辞書のハッシュ表には初期値の先頭のn文字(nは正の整数)の出現位置のみを保持するようにする。 In the slide dictionary, normally, only the appearance position of the first character string is held in the hash table. This is to save memory usage. Also in the present invention, only the appearance position of the first n characters (n is a positive integer) of the initial value is held in the hash table of the slide dictionary.
次に、本発明における初期値の生成・登録方法の手順を説明する。
1.複数のサンプルデータを用意し、それらのサンプルデータに出現する文字列を、先頭n文字が等しい文字列同士のグループに分類する。
2.手順1で分類した各グループから最頻出文字列(最も出現頻度が高い文字列)を検出する。
3.手順2で求めた各グループの最頻出文字列を、頻度の高い順にスライド辞書にその初期値として登録する。
Next, the procedure of the initial value generation / registration method in the present invention will be described.
1. A plurality of sample data is prepared, and character strings appearing in the sample data are classified into groups of character strings having the same first n characters.
2. The most frequently occurring character string (character string having the highest appearance frequency) is detected from each group classified in the
3. The most frequently appearing character strings of each group obtained in the
以上の手順1〜3により、スライド辞書には先頭n文字が同じ文字列中の最頻出文字列が、各グループ毎にひとつずつ、頻度順に一列に並べられた初期値文字列が登録される。上記手順1〜3において、スライド辞書の初期値サイズに制限が設けられている場合には、そのサイズの上限に達するまで、スライド辞書に最頻出文字列を登録し続ける。
According to the
ところで、本明細書においては、スライド辞書を使用して被圧縮データの圧縮を開始する前に、スライド辞書に予め登録される1または複数の最頻出文字列の連なりを、便宜上、「初期値文字列」ではなく「初期値」と記載する場合もある。したがって、初期値が初期値文字列を指す場合もある。 By the way, in this specification, before starting compression of data to be compressed using a slide dictionary, a series of one or more most frequently appearing character strings registered in advance in the slide dictionary is referred to as “initial value characters” for convenience. In some cases, “initial value” is described instead of “column”. Therefore, the initial value may refer to an initial value character string.
図3は、本発明の初期値生成方法を先頭3文字が同じ文字列同士に適用した例である。
同図では、手順1によって作成される、先頭3文字が“ABC”である文字列の分類を木構造で示している。この例では、先頭3文字が“ABC”である文字列として、“ABC”に続く後続文字列が“BBBC”、“BCDC”、・・・、“CDEF”である文字列が示されている。木構造において、その各ノードに配置された文字の下の数字はその文字の出現頻度である。この例では、“ABC”の後続文字列が“BCDC”となっている文字列、すなわち、“ABCBCDC”という文字列が8回出現し、最も出現頻度が高くなっている。したがって、先頭3文字が“ABC”である文字列群の中から、“ABCBCDC”という文字列が最頻出文字列のうち最長文字列として検出される。同様にして、先頭3文字が“ABC”以外の文字列についても、最頻出文字列のうち最長の文字列を検出することができる。
FIG. 3 shows an example in which the initial value generation method of the present invention is applied to character strings having the same first three characters.
In the figure, the classification of character strings created by the
このように、本発明では、同じ先頭文字列(文字数n)で始まる文字列の中から最頻出文字列のうち最長の文字列を抽出し、それら抽出した最頻出文字列を出現頻度順に辞書に初期値として事前登録する。
[本発明の原理(その2)]
辞書としてハッシュ表を使用する際、図4に示すように、ハッシュ値の位置情報を順次学習して行く過程で、既に、位置情報がハッシュ表に登録された文字列が後続する文字列中に存在すると、即ち、偶然に同じハッシュ値をとる異なる文字列が存在すると、新たに出現した文字列の位置情報により既存の位置情報が上書きされてしまう。図4の例では、“compression”の位置情報が「1」から「k」に上書きされている。
As described above, in the present invention, the longest character string is extracted from the character strings that start with the same first character string (number of characters n), and the extracted most frequent character strings are stored in the dictionary in the order of appearance frequency. Pre-register as initial value.
[Principle of the present invention (2)]
When using a hash table as a dictionary, as shown in FIG. 4, in the process of sequentially learning the position information of the hash value, the character string in which the position information is already registered in the hash table is already included in the character string. If it exists, that is, if there is a different character string having the same hash value by chance, the existing position information is overwritten by the position information of the newly appearing character string. In the example of FIG. 4, the position information of “compression” is overwritten from “1” to “k”.
このため、本発明では、ハッシュ表に初期値を登録する段階で、あるハッシュ値に該当する文字列を登録したら、そのハッシュ値に該当する文字列を二度とハッシュ表に登録しないようにする。 Therefore, in the present invention, when a character string corresponding to a certain hash value is registered in the stage of registering the initial value in the hash table, the character string corresponding to the hash value is never registered in the hash table.
また、本発明で利用するハッシュ表ではハッシュ値をハッシュ表内での行を示す値として利用しているので、即ち、ハッシュ表では1つのハッシュ値に対して1つの位置情報を登録するように構成されているため、各ハッシュ値について最頻出文字列を検出する必要がある。 In the hash table used in the present invention, the hash value is used as a value indicating a row in the hash table. That is, in the hash table, one piece of position information is registered for one hash value. Since it is configured, it is necessary to detect the most frequent character string for each hash value.
ハッシュ値は、初期値として登録する先頭n文字を基に算出される。このため、本発明では、先頭n文字が同じ文字列の中から最頻出文字列を検出し、その最頻出文字列を初期値とする。 The hash value is calculated based on the first n characters registered as the initial value. For this reason, in the present invention, the most frequent character string is detected from character strings having the same first n characters, and the most frequent character string is set as an initial value.
図5は、上記方法により先頭3文字が同じ文字列の中から初期値(最頻出文字列)を生成する方法を示す図である。
同図に示す木構造においては、先頭3文字が“ABC”と“XYZ”のハッシュ値が同じ値(=100)となっている。このため、先頭3文字が“ABC”または“XYZ”となっている文字列の中から最頻出文字列を検出し、それを初期値としてハッシュ表に登録する。図5に示す例では、“XYZCDEF”が8回出現しており最頻出文字列かつ最長文字列となっている。
FIG. 5 is a diagram showing a method of generating an initial value (most frequently appearing character string) from character strings having the same first three characters by the above method.
In the tree structure shown in the figure, the hash values of the first three characters “ABC” and “XYZ” have the same value (= 100). For this reason, the most frequently occurring character string is detected from the character strings having the first three characters “ABC” or “XYZ”, and registered as an initial value in the hash table. In the example shown in FIG. 5, “XYZCDEF” appears eight times, which is the most frequent character string and the longest character string.
同様にして、ハッシュ値が100以外となる先頭3文字を有する文字列についても、最頻出文字列かつ最長文字列を検出し、それを初期値としてハッシュ値に登録する。
以上のようにしてハッシュ表に初期値を順次登録していくことにより、ハッシュ表に登録された初期値の位置情報の上書きが防止される。ハッシュ表には一つのハッシュ値に対して1つの位置情報のみしか登録されないからである。
Similarly, for the character string having the first three characters whose hash value is other than 100, the most frequent character string and the longest character string are detected and registered as an initial value in the hash value.
By sequentially registering the initial values in the hash table as described above, overwriting of the position information of the initial values registered in the hash table is prevented. This is because only one piece of position information is registered for one hash value in the hash table.
同様な方法を用いて、初期値の先頭n文字をハッシュ表に登録する場合についても、初期値の位置情報の上書きを防止できる。
[第1の実施例]
本発明の第1実施例は、初期値作成用の情報処理装置、データ圧縮側の情報処理装置及びデータ復元側の情報処理装置を備えたシステムである。
When the same method is used to register the first n characters of the initial value in the hash table, it is possible to prevent overwriting of the initial position information.
[First embodiment]
The first embodiment of the present invention is a system including an information processing device for creating an initial value, an information processing device on the data compression side, and an information processing device on the data restoration side.
図6は、本発明のデータ圧縮方法により初期値を作成する情報処理装置のシステム構成を示すブロック図である。
初期値作成用の情報処理装置100は、圧縮プログラム110、サンプルデータ120及び初期値作成プログラム130を備えている。これらは、情報処理装置100が備えるメモリや外部記憶装置(ストレージ)に格納される。
FIG. 6 is a block diagram showing a system configuration of an information processing apparatus that creates an initial value by the data compression method of the present invention.
The
圧縮プログラム110は、データを圧縮・復元するプログラムであり、内部にハッシュ表111、初期値(初期値文字列)112及びハッシュ関数113を備えている。ハッシュ表111は初期値として登録される文字列の先頭n文字のハッシュ値で表される表内の位置にその位置情報を格納する辞書である。ハッシュ表111のデータ構造は図1のハッシュ表14と同様である。初期値112はデータの圧縮、復元に使用される文字列であり、初期値作成プログラム130によって作成されたものである。ハッシュ関数113は初期値112の先頭3文字に対応するハッシュ値を算出する。
The
圧縮プログラム110は、初期値作成プログラム130から初期値112を入力・保持する。そして、その初期値112の先頭n文字のハッシュ値をハッシュ関数113により算出し、ハッシュ表111において,そのハッシュ値と同じ行に初期値112の位置情報を登録する。また、ハッシュ表111に登録されたハッシュ値を有する初期値112の位置情報を、該ハッシュ値が格納されている行に登録する。
The
サンプルデータ120は、No.1〜No.4の4つのサンプルデータから構成されている。No.1のサンプルデータ(以後、便宜上、サンプルデータ1と記載)は文字列“COMPRESS_”である。No.2のサンプルデータ(以後、便宜上、サンプルデータ2と記載)は文字列“DECOMPRESS_”である。No.3のサンプルデータ(以後、便宜上、サンプルデータ3と記載)は文字列“COMPRESSION_”である。No.4のサンプルデータ(以後、便宜上、サンプルデータ4と記載)は文字列“COMPARE”である。
初期値作成プログラム130は、頻度カウンタ131、後続最頻出文字保持部132及び登録チェック部133を備えている。
頻度カウンタ131は、サンプルデータ1〜4に出現する全ての文字列を、その先頭3文字が同じ文字列同士に分類し、先頭3文字が同じ文字列の中から最頻出文字列を検出するために使用される。頻度カウンタ131は、先頭3文字と頻度を格納する領域を備えており、この領域に先頭3文字が同じ文字列がポインタで連結されるような構成となっている。上記構成は、個々の先頭3文字毎に設けられる。上記リストの要素は、サンプルデータNo、文字列の開始位置及び終了位置から構成される。
The initial
The
後続最頻出文字保持部132は、初期値作成プログラム130が初期値112を作成する処理の過程で先頭3文字に続く後続文字を保持する。後続最頻出文字保持部132は、最終的には最頻出文字列の終了文字を格納する。
The succeeding most frequent
登録チェック部133は、頻度カウンタ131のリストに保持されている最頻出文字列がハッシュ表に初期値として登録されたか否かを示すステイタス情報を保持する。該ステイタス情報は、初期値として登録された場合には“TRUE”、登録されなかった場合には“FALSE”となる。ステイタス情報は、初期値作成処理の開始前には“FALSE”に初期設定される。
The
図7は、データ圧縮側の情報処理装置のシステム構成を示すブロック図である。
データ圧縮側の情報処理装置140は、圧縮プログラム150をメモリまたは外部記憶装置等に保持している。圧縮プログラム150は、データを圧縮、復元するプログラムであり、内部に、ハッシュ表151、初期値(初期値文字列)152及びハッシュ関数153を保持している。辞書151、初期値152、及びハッシュ関数153は、図6の情報処理装置130の圧縮プログラム110が保有するハッシュ表111、初期値112及びハッシュ関数113と同様な構成・機能を有するので、それらの詳しい説明は省略する。
FIG. 7 is a block diagram showing the system configuration of the information processing apparatus on the data compression side.
The
図8は、データ復元側の情報処理装置のシステム構成を示すブロック図である。
データ復元側の情報処理装置160は、圧縮プログラム170をメモリまたは外部記憶装置等に保持している。圧縮プログラム170は、データを圧縮、復元するプログラムであり、内部に、辞書(ハッシュ表)171、初期値(初期値文字列)172及びハッシュ関数173を保持している。辞書171、初期値172、及びハッシュ関数173は、図6の情報処理装置130の圧縮プログラム110が保有するハッシュ表111、初期値112及びハッシュ関数113と同様な構成・機能を有するので、それらの詳しい説明は省略する。
FIG. 8 is a block diagram showing the system configuration of the information processing apparatus on the data restoration side.
The
上記3つの情報処理装置100、140、160はネットワークを介して接続されており、互いにデータの送受信が可能となっている。
図9を参照しながら、第1実施例の処理の概要を説明する。{事前処理}
データの圧縮、復元をする前に、事前処理として、初期値の生成と辞書(ハッシュ表)の学習を行う。辞書の学習とは、辞書に初期値とその位置情報を登録する処理のことである。
The three
The outline of the processing of the first embodiment will be described with reference to FIG. {Pre-processing}
Before compression and decompression of data, generation of initial values and learning of a dictionary (hash table) are performed as pre-processing. Dictionary learning is a process of registering an initial value and its position information in the dictionary.
この後、初期値と辞書を、圧縮側の情報処理装置140と復元側の情報処理装置160にネットワークを介して配布する。情報処理装置140と情報処理装置160は、情報処理装置100から配布された初期値と辞書を外部記憶装置に格納する。
Thereafter, the initial value and the dictionary are distributed to the
図9(a)を参照しながら、情報処理装置100により行われる上記事前処理の手順を説明する。
(1)サンプルデータから初期値を生成する(ステップS1)。
(2)生成された初期値の位置情報を辞書に学習させ、辞書を完成させる(ステップS2)。
{圧縮処理}
図9(b)を参照しながら、データ圧縮処理の手順を説明する。このデータ圧縮処理は、情報処理装置140が圧縮プログラム150を実行することによって行われる。
(1)外部記憶装置に格納されている初期値と辞書をメモリ上にロードする(ステップS3)。
(2)初期値と辞書を基に被圧縮データを圧縮して圧縮データを生成する(ステップS4)。
With reference to FIG. 9A, the procedure of the pre-processing performed by the
(1) An initial value is generated from sample data (step S1).
(2) The dictionary is made to learn the position information of the generated initial value, and the dictionary is completed (step S2).
{Compression processing}
The procedure of the data compression process will be described with reference to FIG. This data compression process is performed by the
(1) The initial value and dictionary stored in the external storage device are loaded onto the memory (step S3).
(2) The compressed data is generated by compressing the data to be compressed based on the initial value and the dictionary (step S4).
情報処理装置140は、圧縮データを情報処理装置160に送信する。
{復元処理}
図9(b)を参照しながら、圧縮データの復元処理を説明する。このデータ復元処理は、情報処理装置160が圧縮プログラム170を実行することによって行われる。
(1)外部記憶装置に格納されている初期値と辞書をメモリ上にロードする(ステップS5)。
(2)初期値と辞書を基に圧縮データから被圧縮データを復元する(ステップS6)。
{初期値生成処理と辞書の生成処理の詳細}
図10は、情報処理装置100が初期値作成プログラム130を実行することによって行う初期値生成処理と辞書の生成処理(辞書に学習処理)の詳細を説明するフローチャートである。図11〜図14は、図10のフローチャートに示す処理の理解を容易にするための図である。
The
{Restore processing}
With reference to FIG. 9B, the decompression process of the compressed data will be described. This data restoration process is performed by the
(1) The initial value and dictionary stored in the external storage device are loaded onto the memory (step S5).
(2) The compressed data is restored from the compressed data based on the initial value and the dictionary (step S6).
{Details of initial value generation processing and dictionary generation processing}
FIG. 10 is a flowchart for explaining the details of the initial value generation processing and dictionary generation processing (dictionary learning processing) performed by the
図10〜図14を参照しながら、情報処理装置100によって行われる初期値生成処理の詳細を説明する。なおこの例は、先頭3文字が同じ文字列をグルーピングして処理を行う例となっている。
Details of the initial value generation process performed by the
情報処理装置100は、サンプルデータ120(サンプルデータ1〜4)に存在する3文字の文字列を全て抽出する(ステップS11)。
この結果、図11に示すように“COM”、“OMP”、“MPR”、・・・、“ARE”の文字列が抽出される。
The
As a result, as shown in FIG. 11, character strings of “COM”, “OMP”, “MPR”,..., “ARE” are extracted.
次に、頻度カウンタ131に、ステップS11で抽出した文字列(以後、便宜上、抽出文字列と記載する)を、全て、「文字列」、「頻度」、「開始位置」、「終了位置」を格納する(ステップS12)。
Next, the character string extracted in step S11 (hereinafter referred to as “extracted character string” for the sake of convenience) is all stored in the
この結果、頻度カウンタ131の内容は図12に示すようになり、「頻度」に連結されたリストの各要素に、「サンプルデータのNo.」、「開始位置」、「終了位置」が格納される。“COM”は「頻度」が4となっており、サンプルデータ1〜4の全てに“COM”という文字列が出現している。
As a result, the contents of the
続いて、抽出文字列を1つづつ順次選択しながら、全ての抽出文字列についてステップS13〜S18の処理を実行する。
最初に、“COM”が選択される。
ステップS13においては、後続文字(終了位置の次の文字)の中で最頻出する文字を検出し、その最頻出文字を後続最頻出文字保持部132に格納する。
Subsequently, the processing of steps S13 to S18 is executed for all the extracted character strings while sequentially selecting the extracted character strings one by one.
First, “COM” is selected.
In step S <b> 13, the most frequently appearing character is detected from the following characters (the character next to the end position), and the most frequently occurring character is stored in the succeeding most frequently occurring
この結果、“COM”の場合には“P”が最頻出文字として後続最頻出文字保持部132に格納される(図13(a)参照)。
次に、ステップS13で検出した最頻出文字の出現数(サンプルデータ1〜4での出現数)を頻度カウンタ131の「頻度」に加算する(ステップS14)。
As a result, in the case of “COM”, “P” is stored in the succeeding most frequent
Next, the number of appearances of the most frequently detected character detected in step S13 (the number of appearances in the
この結果、“COM”の場合には、“P”がサンプルデータ1〜4の全てで後続文字となっているので、「頻度」に4が加算され、「頻度」は8となる(図13(b)参照)。
次に、頻度カウンタ131に格納されている「終了位置」の次の位置の文字(後続文字)が最頻出文字であるか判別する(ステップS15)。そして、最頻出文字である場合にはステップS16に進み、そうでない場合にはステップS17に進む。
As a result, in the case of “COM”, since “P” is a subsequent character in all the
Next, it is determined whether or not the character (following character) at the position next to the “end position” stored in the
ステップS16では、ステップS15で最頻出文字と判別された文字の出現位置を新たな終了位置として頻度カウンタ131に保存(設定)する。
この結果、“COM”の場合には、頻度カウンタ131に保持された4つの文字列の「終了位置」が1文字分後方に移動する(図13(c)参照)。
In step S16, the appearance position of the character determined as the most frequently appearing character in step S15 is stored (set) in the
As a result, in the case of “COM”, the “end position” of the four character strings held in the
ステップS17では、頻度カウンタ131のリストから後続文字が最頻出文字となっていない要素を削除する。この処理は最頻出文字列の候補外となった文字列を頻度カウンタ131から削除する処理である。
In step S17, elements whose subsequent characters are not the most frequent characters are deleted from the list of the
頻度カウンタ131に先頭3文字が同じ文字列が複数保持されている場合には、個々の文字列について、ステップS15での判別結果に応じて、ステップS16またはステップS17の処理のいずれかが行われる。
When a plurality of character strings having the same first three characters are stored in the
ステップS16またはステップS17の処理に続いて、頻度カウンタ131に保持されている文字列の後続文字が全て異なるか判別する(ステップS18)。
この判別において、後続文字が全て異なると判別された場合にはステップS19に進み、そうでない場合には更に後続の最頻出文字を探索するためにステップS13に戻る。
Subsequent to the processing in step S16 or step S17, it is determined whether all subsequent characters of the character string held in the
In this determination, if it is determined that all the following characters are different, the process proceeds to step S19, and if not, the process returns to step S13 to search for the subsequent most frequent character.
このように、ステップS13〜S18の処理は、ステップS18で先頭3文字が同じ文字列の後続文字が全て異なると判別されるまで繰り返し行われる。
“COM”の場合、2回目のステップS15の判別処理で、サンプルデータ4の後続文字のみが“A”であり、サンプルデータ1〜3の後続文字は全て“R”(最頻出文字)であると判別される。この結果、ステップS17で、頻度カウンタ131からサンプルデータ4の文字列“COMPA” に該当するポインタが削除されると共に、ステップS16で頻度カウンタ131の後続最頻出文字保持部132に“R”が格納される(図13(d)参照)。
As described above, the processes in steps S13 to S18 are repeated until it is determined in step S18 that all subsequent characters in the character string having the same first three characters are different.
In the case of “COM”, only the subsequent character of the
以上のようにして、“COM”に関しては、ステップS13〜S18の処理が6回繰り返され、ステップS19で後続文字が無いと判別され、ステップS19に進む。
ステップS19に進む直前において、“COM”に関する頻度カウンタ131と後続最頻出文字保持部132の内容は図13(e)に示すようになっている。すなわち、後続最頻出文字保持部132には“_”が格納され、頻度カウンタ131には、サンプルデータ1とサンプルデータ2内の文字列“COMPPRESS_”に関する開始位置と終了位置が格納され、頻度には22が格納されている。
As described above, with regard to “COM”, the processes of steps S13 to S18 are repeated six times, and it is determined in step S19 that there is no subsequent character, and the process proceeds to step S19.
Immediately before proceeding to step S19, the contents of the
以上のようにして、“COM”に関するステップS13〜S19の処理が終了すると、
頻度カウンタ131に保持されている次の先頭3文字“OMP”について、“COM”と同様にステップS13〜S19の処理が行われる。
As described above, when the processing of steps S13 to S19 related to “COM” is completed,
The next three characters “OMP” held in the
このようにして、頻度カウンタ131に保持された最終の先頭3文字“ARE”の処理が終了するまで、ステップS13〜S19の処理が繰り返し行われる。
“ARE”に関してステップS13〜S19の処理が終了し、ステップS11で抽出した全ての先頭3文字についてステップS13〜S19の処理が完了すると、ステップS20に進む。
In this way, the processes of steps S13 to S19 are repeated until the process of the last three characters “ARE” held in the
When the processing of steps S13 to S19 is completed for “ARE” and the processing of steps S13 to S19 is completed for all the first three characters extracted in step S11, the process proceeds to step S20.
図14は、ステップS13〜S19の処理が、ステップS11で抽出された先頭3文字が異なる全種類の文字列について、ステップS13〜S19の処理が完了した時点での頻度カウンタ131と後続最頻出文字保持部132の内容を示す図である。
FIG. 14 shows the
同図に示すように、頻度カウンタ131には、“COM”、“OMP”、“MPR”、・・・、“APR”の各先頭3文字を有する文字列のサンプルデータ120における最頻出文字列の「開始位置」と「終了位置」が格納されている。また、頻度カウンタ131の「頻度」には、サンプルデータ120中の先頭3文字に続く各後続位置での最頻出文字の出現数(頻度)の総和が格納されている。
As shown in the figure, the
頻度カウンタ131に保持されている(「サンプルデータNo.」、「開始位置」及び「終了位置」)の組を参照することにより、“COM”を先頭3文字とする最頻出文字列として、サンプルデータ1とサンプルデータ2に存在する“COMPRESS ”を取得することができる。また、“OMP”を先頭3文字とする最頻出文字列として、サンプルデータ1とサンプルデータ2に存在する“OMPRESS ”を取得することができる。同様に、“MPR”、・・・、“ARE”を先頭3文字とする文字列についても最頻出文字列を取得することができる。
By referring to the set (“sample data No.”, “start position” and “end position”) held in the
ステップS20においては、ステップS19で取得した各先頭3文字の最頻出文字列について、頻度順に初期値として登録する。すなわち、頻度カウンタ131に保持されている各先頭3文字の「頻度」を参照し、その値が高い最頻出文字列から順に初期値として登録する。初期値として登録された最頻出文字列の各3文字に対応する登録チェック部133は“TRUE”に設定する。
In step S20, the most frequent character strings of the first three characters acquired in step S19 are registered as initial values in order of frequency. That is, the “frequency” of each of the first three characters held in the
この結果、初期値作成プログラム130の頻度カウンタ131、後続最頻出文字保持部132及び登録チェック部133の内容は図15に示すようになる。図15に示すように、第1実施例の場合には、サンプルデータ120に出現する全種類の先頭3文字について、その最頻出文字列が初期値として登録される。
As a result, the contents of the
以上のようにして登録された初期値は圧縮プログラム150に出力される。圧縮プログラム150は、初期値作成プログラム130から受け取る初期値を初期値112として保持すると共に、初期値112を基にハッシュ表111を作成する。
{初期値作成プログラムの変形例}
図16は、初期値作成プログラムの変形例の構成を示すブロック図である。
The initial value registered as described above is output to the
{Modification of initial value creation program}
FIG. 16 is a block diagram showing a configuration of a modification of the initial value creation program.
同図に示す初期値作成プログラム130は、図5に示す原理に基づいて、先頭3文字のハッシュ値が同じ文字列同士のグループに分類して、各グループの中の最頻出文字列を初期値として取得・登録する。
Based on the principle shown in FIG. 5, the initial
初期値作成プログラム140は、頻度カウンタ141、後続最頻出ハッシュ値保持部142及び登録チェック部143を備えている。
頻度カウンタ141は、「ハッシュ値」、「頻度」、及び{「サンプルデータNo.」、「開始位置」、「終了位置」}の組で構成される要素のリストを備えている。このリストは、初期値作成プログラム130のリストと同様な構成である。
The initial
The frequency counter 141 includes a list of elements including a set of “hash value”, “frequency”, and {“sample data No.”, “start position”, “end position”}. This list has the same configuration as the list of the initial
後続最頻出ハッシュ値保持部142は、初期値作成プログラム130の後続最頻出文字保持部132と同様な機能を有するもので、先頭3文字に続く後続文字のハッシュ値を格納する。この後続最頻出ハッシュ値保持部142には、最終的には、各ハッシュ値のグループにおける最頻出文字列の終了文字のハッシュ値が格納される。
The subsequent most frequent hash value holding unit 142 has the same function as the subsequent most frequent
登録チェック部143は、初期値作成プログラム130の登録チェック部133と同等の構成・機能を有する。
初期値作成プログラム140が初期値を登録する処理は、図10のフローチャートと略同様のアルゴリズムによって実現できる。すなわち、「文字」の代わりに「ハッシュ値」を処理対象とするように図10のフローチャートを変更することにより、初期値作成プログラム140の初期値登録処理のアルゴリズムを実現できる。
[第2の実施例]
図17は、本発明のデータ圧縮方法を適用した第2の実施例のシステム構成図である。
The registration check unit 143 has the same configuration and function as the
The process of registering the initial value by the initial
[Second Embodiment]
FIG. 17 is a system configuration diagram of the second embodiment to which the data compression method of the present invention is applied.
同図に示すコンピュータシステムは、APサーバ200(APサーバ1)、APサーバ210(APサーバ2)、フロントエンドサーバ300、クライアント330を備えており、フロントエンドサーバ300とクラインアト330は、ネットワーク321により接続されている。尚、図17には示されていないが、本システムは、例えばWEBサービスやメールサービスなどのようなアプリケーションサービスを提供するサーバマシンであるAPサーバをn台備えている。以後の説明では、APサーバを説明する際に、APサーバ200、210を中心にして説明する。
The computer system shown in the figure includes an AP server 200 (AP server 1), an AP server 210 (AP server 2), a front-
APサーバ200、APサーバ210及びフロントエンドサーバ300は、LAN(Local Area Network)等の通信回線によって接続されており、例えば、サービス提供業者のデータセンター等を構成している。APサーバ200及びAPサーバ210は提供するサービスに関する処理を行うサーバマシンであり、フロントエンドサーバ300は、それらAPサーバとクライアント330との通信を仲介するサーバマシンである。
The
APサーバ200には「1.1.1.1.」というアドレスが割り当てられており、APサーバ210には「1.2.3.4」というアドレスが割り当てられている。これらのアドレスは、APサーバ200、210のサーバID(サーバ識別子)として、フロントエンドサーバ300及びクライアント330に利用される。サーバIDとしては、例えば、IP(Internet Protocol)アドレス、URL(Uniform Resource Locator)、ドメイン名などが使用される。
The address “1.1.1.1” is assigned to the
APサーバ200は、XML(Extensible Markup Language)形式のデータ251をフロントエンドサーバ300経由でクライアント330に送信するアプリケーション・サーバである。APサーバ210は、HTML(Hyper Text Markup Language)形式のデータ252をフロントエンドサーバ300経由でクライアント330に送信するアプリケーション・サーバである。
The
APサーバ200は、クライアント330にXMLデータ251を送信する前のいずれかのタイミングに初期値作成プログラム220を実行し、サンプルデータであるXML用サンプルデータ201を基にハッシュ表231と初期値(初期値文字列)232を作成する。そして、ハッシュ表231と初期値232をフロントエンドサーバ300経由でクライアント330に送信する。
The
APサーバ210は、クライアント330にHTMLデータ252を送信する前のいずれかのタイミングに初期値作成プログラム220を実行してサンプルデータであるHTMLデータ211を基にハッシュ表241と初期値(初期値文字列)242を作成する。そして、ハッシュ表241と初期値242をフロントエンドサーバ300経由でクライアント330に送信する。
The
初期値作成プログラム220は、第1実施例の初期値作成プログラム130と略同様のプログラムであり、不図示のストレージ等に格納され、APサーバ200とAPサーバ210に共有されている。
The initial
フロントエンドサーバ300は、クライアント330とAPサーバ200、210間の通信を仲介するサーバであり、APサーバ200、210から受信するXMLデータまたはHTMLデータを圧縮してクライアント330に送信する。フロントエンドサーバ300は、例えば、Webサーバであり、HTTP(Hyper Text Transfer Protocol)等のプロトコルによりクライアント330と通信する。
The front-
フロントエンドサーバ300は圧縮プログラム310を保有しており、この圧縮プログラム310を実行して、APサーバ200、210から受信するXMLデータ251、HTMLデータ252を圧縮する。
The front-
圧縮プログラム310は、ハッシュ表311、初期値(初期値文字列)312及び管理テーブル313を備えている。ハッシュ表311と初期値312は、APサーバ200から受信するハッシュ表231と初期値232またはAPサーバ210から受信するハッシュ表241と初期値242である。フロントエンドサーバ300は、APサーバ200、210からハッシュ表と初期値を受信するたびに、ハッシュ表311と初期値312をその受信したハッシュ表と初期値に書き換える。
The
登録テーブル313は、フロントエンドサーバ300がAPサーバから受信するハッシュ表と初期値の管理情報を登録しているテーブルである。登録テーブル313はn行で構成されるテーブルであり、各行には「サーバID」、「ハッシュ表名」及び「初期値名」の3項目が格納される。サーバIDは、APサーバのアドレスである。ハッシュ表名は、各ハッシュ表の名称である。初期値名は、初期値の名称である。登録テーブル313はこのような構成により、各APサーバから受け取るXMLデータまたはHTMLデータを圧縮するために使用されるハッシュ表と初期値を管理している。
The registration table 313 is a table in which a hash table and initial value management information received by the front-
クライアント330は、ネットワーク321を介してフロントエンドサーバ300と通信可能に接続されているコンピュータであれば、携帯型端末、携帯電話、パーソナルコンピュータ、RFIDタグ、車載端末など、どのようなコンピュータであっても構わない。クライアント330は圧縮プログラム340を保有しており、この圧縮プログラム340を実行して、フロントエンドサーバから受信する圧縮されたXMLデータ251、HTMLデータ252を復元する。
The
圧縮プログラム340は、上述したフロントエンドサーバ300が保有する圧縮プログラム310と同様な構成をしており、ハッシュ表341、初期値342及び登録テーブル343を備えている。
The
登録テーブル343は、の構成はフロントエンドサーバ300が保有する登録テーブル313と同様なので、その詳しい説明は省略する。
クライアント330は、フロントエンドサーバ300からXMLデータ251またはHTMLデータ252を受信する際、初期値識別情報320をフロントエンドサーバ300から受信する。
Since the configuration of the registration table 343 is the same as the registration table 313 held by the front-
When the
この初期値識別情報320は、フロントエンドサーバ300から受信するデータ(XMLデータ251またはHTMLデータ252)を復元する際に使用する初期値とハッシュ表を、登録テーブル343を参照して取得する際に必要となる情報である。初期値識別情報320は、例えば、サーバID、初期値名もしくはハッシュ表名、またはそれらの組み合わせで構成される。
The initial
次に、上記構成の第2実施例の動作を説明する。
図18は、APサーバ(APサーバ200、210)が初期値とハッシュ表を生成する処理を説明するフローチャートである。
Next, the operation of the second embodiment having the above configuration will be described.
FIG. 18 is a flowchart for explaining processing in which the AP server (
APサーバは、初期値作成プログラム220を実行し、XML用サンプルデータ201またはHTML用サンプルデータ211を基に初期値(初期値232または初期値242)を生成する(ステップS101)。続いて、該生成した初期値のハッシュ値と出現位置をハッシュ表に登録して、ハッシュ値を生成する(ステップS102)。
The AP server executes the initial
図19は、フロントエンドサーバ300の登録テーブルに関する処理を説明するフローチャートである。
フロントエンドサーバ300は、登録テーブル313に、受信したハッシュ表の名称(ハッシュ表名)と初期値の名前(初期値名)を登録する(ステップS201)。
FIG. 19 is a flowchart for describing processing related to the registration table of the front-
The front-
次に、クライアント330にネットワーク321経由で上記ハッシュ表と上記初期値を送信する(ステップS202)。
続いて、上記ハッシュ表と上記初期値に関する情報(サーバID、ハッシュ表名、初期値名)を登録テーブル313に登録する(ステップS203)。
Next, the hash table and the initial value are transmitted to the
Subsequently, the hash table and information on the initial value (server ID, hash table name, initial value name) are registered in the registration table 313 (step S203).
以上の処理により、APサーバから受信したハッシュ表と初期値がクライアント330に送信されると共に、該受信したハッシュ表と初期値に関する情報が登録テーブル313に登録される。
Through the above processing, the hash table and initial value received from the AP server are transmitted to the
図20は、フロントエンドサーバ300とクライアント330間で行われるデータの圧縮・復元処理を説明するフローチャートである。
同図のフローチャートにおいて、ステップS301〜303がフロントエンドサーバ300の処理であり、ステップS304、395がクライアント330の処理である。
FIG. 20 is a flowchart for explaining data compression / decompression processing performed between the front-
In the flowchart of FIG. 5, steps S301 to S303 are processing of the front-
フロントエンドサーバ300は、データ(XMLデータまたはHTMLデータ)の送信元のAPサーバに従って、該データを圧縮するために使用する初期値とハッシュ表を、登録テーブル313のサーバIDを基に選択する(ステップS301)。
The front-
次に、上記選択した初期値とハッシュ表を基に、APサーバから受信した上記データを圧縮する(ステップS302)。
そして、上記圧縮されたデータと上記データ圧縮で使用された初期値に対応する初期値識別情報320を、ネットワーク321を介してクライアント330に送信する(ステップS303)。
Next, the data received from the AP server is compressed based on the selected initial value and hash table (step S302).
Then, the initial
クライアント330は、フロントエンドサーバ300から受信した初期値識別情報320を基に登録テーブル343を検索して、フロントエンドサーバ300から受信した圧縮データを復元するために必要な初期値とハッシュ表を選択する(ステップS304)。
The
そして、上記選択された初期値とハッシュ表を基に、上記圧縮データを復元する(ステップS305)。
このように、第2の実施例では、APサーバ側で、提供するアプリケーション(サービス)でクライアント330に送信するデータを圧縮・復元するための初期値と辞書(ハッシュ表)を作成し、それらをフロントエンドサーバ300に送信する。フロントエンドサーバ300は、APサーバから受信した初期値と辞書を登録テーブル313により管理すると共に、それらを初期値識別情報320と共にネットワーク321を介してクライアント330に送信する。
Then, the compressed data is restored based on the selected initial value and the hash table (step S305).
As described above, in the second embodiment, on the AP server side, an initial value and a dictionary (hash table) for compressing / decompressing data to be transmitted to the
クライアント330は、フロントエンドサーバ300から受信する初期値と辞書を登録テーブル343により管理する。そして、フロントエンドサーバ300から圧縮データと初期値識別情報320を受信すると、初期値識別情報320を基に登録テーブル343を参照して、圧縮データを復元するために必要となる初期値とハッシュ表を取得し、それらを用いて圧縮データを復元する。
The
ところで、圧縮データの復元は初期値のみからでも可能である。初期値を基に辞書(ハッシュ表)を生成できるからである。したがって、フロントエンドサーバ300及びクライアント330がAPサーバから初期値のみを受信するようなシステムであっても、本発明のデータ圧縮方法を用いて、データの圧縮・復元が可能である。
By the way, it is possible to restore the compressed data only from the initial value. This is because a dictionary (hash table) can be generated based on the initial values. Therefore, even in a system in which the front-
本発明においては、サーバまたはクライアントが複数の辞書(初期値または初期値並びにハッシュ表)を、例えばサービス毎に予め生成して保持しておき、該サービスに関しサーバとクライアントとの間で送受信される一連のデータ群については、クライアントから処理依頼を受けたサービス(アプリケーション)またはサーバが提供しようとしているサービスに応じていずれの辞書を利用するか、該サービスに関し、一番最初にデータを送信する側であるコンピュータ(サーバまたはクライアント)が決定するような構成にしてもよい。また、クライアントからサービス提供依頼を受けたサーバが、該サービス提供の一連のデータ送受信に対して適用する辞書を決定し、クライアントへの返信時にサービスに関するデータと辞書を特定するための情報または辞書情報を送信し、該サービスにおけるデータの送受信では、該決定された辞書を用いてデータ圧縮及び復元を行うような構成にしても良い。 In the present invention, a server or client generates and holds a plurality of dictionaries (initial values or initial values and hash tables) in advance for each service, for example, and is transmitted and received between the server and the client regarding the service. For a series of data groups, which dictionary is to be used according to the service (application) requested by the client or the service that the server intends to provide, or the side that transmits data first for the service The computer (server or client) may be determined. Information or dictionary information for the server receiving the service provision request from the client to determine a dictionary to be applied to a series of data transmission / reception of the service provision, and to identify the data and dictionary related to the service when replying to the client In the transmission / reception of data in the service, data compression and decompression may be performed using the determined dictionary.
また、サーバまたはクライアントが保持する複数の辞書は、クライアントの端末種別に応じて生成されるものでもよい。
この場合、例えば、実際に送受信されるデータである被圧縮データを、サーバまたはクライアントのいずれかが上記複数の辞書で実際に圧縮してみて、最も圧縮効率の良い辞書を圧縮用の辞書として採用し、該採用した辞書に関する情報を通信相手へ通知する構成にしてもよい。
The plurality of dictionaries held by the server or the client may be generated according to the terminal type of the client.
In this case, for example, either the server or the client actually compresses the compressed data that is actually transmitted / received data with the above-mentioned plurality of dictionaries, and the dictionary with the highest compression efficiency is adopted as the compression dictionary. The information about the adopted dictionary may be notified to the communication partner.
また、クライアントがサーバにデータを送信する際に、該データを保有している辞書を用いて圧縮してからサーバに送信するような構成にしてもよい。
上記実施例の説明においては、被圧縮データとしてテキストデータを圧縮する例について説明したが、本発明は、これに限定されることなく、例えば、ソースプログラムや実行形式のプログラム(バイナリデータ)の圧縮などにも適用可能である。
(付記1)
サンプルデータから初期値を生成し、該初期値を予め辞書に登録してから該辞書を用いてデータを符号化するデータ圧縮方法において、
サンプルデータ内の文字列を、先頭n文字が同じである文字列同士のグループに分類し、
該各グループから最頻出文字列を検出し、該最頻出文字列を該辞書に該初期値として登録する、
ことを特徴とするデータ圧縮方法。
(付記2)
サンプルデータから初期値を生成し、該初期値を予め辞書に登録してから該辞書を用いてデータを符号化するデータ圧縮方法において、
サンプルデータ内の文字列を、先頭n文字のハッシュ値が同じ文字列同士のグループに分類し、
該各グループから最頻出文字列を検出し、該最頻出文字列を該辞書に登録する、
ことを特徴とするデータ圧縮方法。
(付記3)
付記1または2記載のデータ圧縮方法であって、
前記最頻出文字列を検出する際、前記先頭n文字に後続する各文字の出現頻度を求め、
それらの出現頻度に基づいて最頻出文字列として決定することを特徴とするデータ圧縮方法。
(付記4)
付記3記載のデータ圧縮方法であって、
前記先頭n文字に後続する各文字の出現頻度の総和が最も大きい文字列を最頻出文字列として決定することを特徴とするデータ圧縮方法。
(付記5)
サンプルデータから生成した初期値が予め登録された辞書を用いてデータを符号化し、該符号化したデータをサーバとクライアント間で送信するための、コンピュータで実行される方法において、
前記サンプルデータ内の文字列を、先頭n文字または先頭n文字のハッシュ値が同じである文字列同士のグループに分類し、
前記各グループから最頻出文字列を検出し、該最頻出文字列を前記初期値として登録した辞書を前記サーバが保有し、
該サーバはクライアントに前記辞書情報を送信し、
前記サーバと前記クライアント間でデータの送受信を行う際には、該データを前記辞書情報により圧縮してから送受信する、
ことを特徴とする圧縮データ送信方法。(1)
(付記6)
付記5記載の圧縮データ送信方法であって、
前記サーバは、提供するサービス毎に前記辞書情報を保有することを特徴とすることを特徴とする圧縮データ送信方法。(2)
(付記7)
付記5記載の圧縮データ送信方法であって、
前記サーバは、前記クライアントとデータの送受信を行う前に、前記辞書情報を前記クライアントに配信する。(3)
(付記8)
付記5記載の圧縮データ送信方法であって、
前記サーバは、提供するサービスの種別毎に前記辞書情報を保有し、クライアントにサービスを提供する際には、そのサービスに対応した前記辞書情報を用いて、クライアントに送信するデータを圧縮することを特徴とする圧縮データ送信方法。
(付記9)
付記5記載の圧縮データ送信方法であって、
前記クライアントは、サーバから提供されるサービスの種別毎に前記辞書情報を保有し、サーバにデータを送信する際には、そのサービスに対応した前記辞書情報を用いて前記データを圧縮することを特徴とする圧縮データ送信方法。
(付記10)
付記5記載の圧縮データ送信方法であって、
前記サーバは、付記1または2記載のデータ圧縮方法によって生成された前記辞書情報を複数保有し、前記クライアントにデータを送信する際には、該データの圧縮効率が最も良い前記辞書情報を用いて前記データを圧縮することを特徴とする圧縮データ送信方法。
(付記11)
付記5記載の圧縮データ送信方法であって、
前記クライアントは、付記1または2記載のデータ圧縮方法によって生成された前記辞書情報を複数保有し、前記サーバにデータを送信する際には、該データの圧縮効率が最も良い辞書を用いて前記データを圧縮することを特徴とする圧縮データ送信方法。
Further, when the client transmits data to the server, the data may be compressed using a dictionary holding the data and then transmitted to the server.
In the description of the above embodiment, an example in which text data is compressed as data to be compressed has been described. However, the present invention is not limited to this. For example, compression of a source program or an executable program (binary data) is performed. It is also applicable to.
(Appendix 1)
In a data compression method for generating an initial value from sample data, pre-registering the initial value in a dictionary, and then encoding the data using the dictionary,
Classify the strings in the sample data into groups of strings with the same first n characters,
Detecting the most frequently occurring character string from each group, and registering the most frequently occurring character string in the dictionary as the initial value;
A data compression method.
(Appendix 2)
In a data compression method for generating an initial value from sample data, pre-registering the initial value in a dictionary, and then encoding the data using the dictionary,
Classify the strings in the sample data into groups of strings with the same hash value for the first n characters,
Detecting the most frequently occurring character string from each group, and registering the most frequently occurring character string in the dictionary;
A data compression method.
(Appendix 3)
A data compression method according to
When detecting the most frequently occurring character string, obtain the appearance frequency of each character following the first n characters,
A data compression method characterized by determining a most frequently appearing character string on the basis of their appearance frequency.
(Appendix 4)
A data compression method according to
A data compression method, wherein a character string having the largest sum of appearance frequencies of characters following the first n characters is determined as a most frequently appearing character string.
(Appendix 5)
In a computer-implemented method for encoding data using a dictionary in which initial values generated from sample data are registered in advance, and transmitting the encoded data between a server and a client,
Classifying the character strings in the sample data into groups of character strings in which the first n characters or the hash values of the first n characters are the same;
The server detects a most frequently occurring character string from each group, and the server holds a dictionary in which the most frequently occurring character string is registered as the initial value.
The server sends the dictionary information to the client;
When sending and receiving data between the server and the client, the data is sent and received after being compressed with the dictionary information.
And a compressed data transmission method. (1)
(Appendix 6)
A compressed data transmission method according to
The compressed data transmission method, wherein the server holds the dictionary information for each service to be provided. (2)
(Appendix 7)
A compressed data transmission method according to
The server distributes the dictionary information to the client before exchanging data with the client. (3)
(Appendix 8)
A compressed data transmission method according to
The server holds the dictionary information for each type of service to be provided, and when providing a service to a client, the server uses the dictionary information corresponding to the service to compress data to be transmitted to the client. A compressed data transmission method characterized by the above.
(Appendix 9)
A compressed data transmission method according to
The client holds the dictionary information for each type of service provided from the server, and compresses the data using the dictionary information corresponding to the service when transmitting data to the server. Compressed data transmission method.
(Appendix 10)
A compressed data transmission method according to
The server holds a plurality of the dictionary information generated by the data compression method according to
(Appendix 11)
A compressed data transmission method according to
The client holds a plurality of the dictionary information generated by the data compression method according to
(付記12)
サンプルデータから初期値を生成し、該初期値を予め辞書に登録してから該辞書を用いてデータを符号化するデータ圧縮処理をコンピュータに実行させるプログラムであって、
サンプルデータ内の文字列を、先頭n文字が同じである文字列同士のグループに分類するステップと、
該各グループから最頻出文字列を検出し、該最頻出文字列を該辞書に該初期値として登録するステップと、
を備える処理をコンピュータに実行させるプログラム。
(付記13)
サンプルデータから初期値を生成し、該初期値を予め辞書に登録してから該辞書を用いてデータを符号化するデータ圧縮処理をコンピュータに実行させるプログラムであって、
サンプルデータ内の文字列を、先頭n文字のハッシュ値が同じ文字列同士のグループに分類するステップと、
該各グループから最頻出文字列を検出し、該最頻出文字列を該辞書に登録するステップと、
を備える処理をコンピュータに実行させることを特徴とするプログラム。
(付記14)
付記12または13項記載のプログラムであって、
前記最頻出文字列を検出する際、前記先頭n文字に後続する各文字の出現頻度を求め、
それらの出現頻度に基づいて最頻出文字列として決定するステップを備える処理をコンピュータに実行させることを特徴とするプログラム。
(付記15)
サンプルデータから初期値を生成し、該初期値を予め辞書に登録してから該辞書を用いてデータを符号化するデータ圧縮装置において、
サンプルデータ内の文字列を、先頭n文字が同じである文字列同士のグループに分類する手段と、
該各グループから最頻出文字列を検出し、該最頻出文字列を該辞書に該初期値として登録する手段と、
を備えることを特徴とするデータ圧縮装置。
(付記16)
サンプルデータから初期値を生成し、該初期値を予め辞書に登録してから該辞書を用いてデータを符号化するデータ圧縮装置において、
サンプルデータ内の文字列を、先頭n文字のハッシュ値が同じ文字列同士のグループに分類する手段と、
該各グループから最頻出文字列を検出し、該最頻出文字列を該辞書に登録する手段と、
を備えることを特徴とするデータ圧縮装置。
(付記17)
付記15または16記載のデータ圧縮装置であって、
前記登録手段は、前記最頻出文字列を検出する際、前記先頭n文字に後続する各文字の出現頻度を求め、それらの出現頻度に基づいて最頻出文字列として決定する手段を備えることを特徴とするデータ圧縮装置。
(付記18)
付記17記載のデータ圧縮方法であって、
前記登録手段は、前記先頭n文字に後続する各文字の出現頻度の総和が最も大きい文字列を最頻出文字列として決定する手段を備えることを特徴とするデータ圧縮装置。
(Appendix 12)
A program that generates an initial value from sample data, registers the initial value in a dictionary in advance, and then causes a computer to execute a data compression process that encodes the data using the dictionary,
Classifying the character strings in the sample data into groups of character strings having the same first n characters;
Detecting the most frequently occurring character string from each of the groups, and registering the most frequently occurring character string in the dictionary as the initial value;
A program for causing a computer to execute a process comprising:
(Appendix 13)
A program that generates an initial value from sample data, registers the initial value in a dictionary in advance, and then causes a computer to execute a data compression process that encodes the data using the dictionary,
Classifying the character strings in the sample data into groups of character strings having the same hash value of the first n characters;
Detecting the most frequently occurring character string from each group, and registering the most frequently occurring character string in the dictionary;
A program for causing a computer to execute a process comprising:
(Appendix 14)
The program according to
When detecting the most frequently occurring character string, obtain the appearance frequency of each character following the first n characters,
A program that causes a computer to execute a process including a step of determining a most frequently appearing character string based on their appearance frequency.
(Appendix 15)
In a data compression device that generates an initial value from sample data, registers the initial value in a dictionary in advance, and encodes the data using the dictionary.
Means for classifying the character strings in the sample data into groups of character strings having the same first n characters;
Means for detecting a most frequently occurring character string from each group and registering the most frequently occurring character string in the dictionary as the initial value;
A data compression apparatus comprising:
(Appendix 16)
In a data compression device that generates an initial value from sample data, registers the initial value in a dictionary in advance, and encodes the data using the dictionary.
Means for classifying the character strings in the sample data into groups of character strings having the same hash value of the first n characters;
Means for detecting the most frequently occurring character string from each of the groups and registering the most frequently occurring character string in the dictionary;
A data compression apparatus comprising:
(Appendix 17)
The data compression device according to
The registration means includes means for obtaining an appearance frequency of each character subsequent to the first n characters when detecting the most frequent character string, and determining the appearance frequency as a most frequent character string based on the appearance frequency. A data compression device.
(Appendix 18)
The data compression method according to appendix 17, wherein
The data compression apparatus according to
本発明は、モバイル端末の通信、RFID(Radio Frequency Identification)の通信、ITS(Intelligent Transportation Systems)における車間での通信等のように、比較的小容量なデータを通信するシステムにおいて送受信されるデータの圧縮に好適である。 The present invention relates to data transmitted / received in a system that communicates a relatively small amount of data, such as communication of a mobile terminal, communication of RFID (Radio Frequency Identification), communication between vehicles in ITS (Intelligent Transportation Systems), etc. Suitable for compression.
14 ハッシュ表(学習済み)
21−1〜21−4 サンプルデータ
24 初期値
100 初期値作成用の情報処理装置
110 圧縮プログラム
111 ハッシュ表
112 初期値(初期値文字列)
113 ハッシュ関数
120 サンプルデータ
130 初期値作成プログラム
131 頻度カウンタ
132 後続最頻出ハッシュ値保持部
133 登録チェック部
140 圧縮側の情報処理装置
150 圧縮プログラム
151 ハッシュ表
152 初期値(初期値文字列)
153 ハッシュ関数
160 復元側のプログラム
170 圧縮プログラム
171 ハッシュ表
172 初期値(初期値文字列)
173 ハッシュ関数
200 APサーバ1
201 XML用サンプルデータ
210 APサーバ2
211 HTML用サンプルデータ
220 初期値作成プログラム
231、241 ハッシュ表
251 XMLデータ
252 HTMLデータ
300 フロントエンドサーバ
310 圧縮プログラム
311 ハッシュ表
312 初期値(初期値文字列)
313 登録テーブル
321 ネットワーク
330 クライアント
340 圧縮プログラム
341 ハッシュ表
342 初期値(初期値文字列)
343 登録テーブル
14 Hash table (learned)
21-1 to 21-4
113
153
173
201 Sample data for
313 Registration table 321
343 Registration Table
Claims (3)
前記サンプルデータ内の文字列を、先頭n文字または先頭n文字のハッシュ値が同じである文字列同士のグループに分類し、
前記各グループから最頻出文字列を検出し、該最頻出文字列を前記初期値として登録した辞書を前記サーバが保有し、
前記サーバは前記クライアントに前記辞書に関する情報である辞書情報を送信し、
前記サーバと前記クライアント間でデータの送受信を行う際には、該データを前記辞書情報により圧縮してから送受信する、
ことを特徴とする圧縮データ送信方法。 In a computer-implemented method for encoding data using a dictionary in which initial values generated from sample data are registered in advance, and transmitting the encoded data between a server and a client,
Classifying the character strings in the sample data into groups of character strings in which the first n characters or the hash values of the first n characters are the same;
The server detects a most frequently occurring character string from each group, and the server holds a dictionary in which the most frequently occurring character string is registered as the initial value.
The server sends dictionary information that is information about the dictionary to the client,
When sending and receiving data between the server and the client, the data is sent and received after being compressed with the dictionary information.
And a compressed data transmission method.
前記サーバは、提供するサービスの種別毎に前記辞書情報を保有し、クライアントにサービスを提供する際には、そのサービスに対応した前記辞書情報を用いて、クライアントに送信するデータを圧縮することを特徴とする圧縮データ送信方法。 The compressed data transmission method according to claim 1,
The server holds the dictionary information for each type of service to be provided, and when providing a service to a client, the server uses the dictionary information corresponding to the service to compress data to be transmitted to the client. A compressed data transmission method characterized by the above.
前記サーバは、前記辞書情報を複数保有し、前記クライアントにデータを送信する際には、該データの圧縮効率が最も良い前記辞書情報を用いて前記データを圧縮することを特徴とする圧縮データ送信方法。 The compressed data transmission method according to claim 1,
The server has a plurality of the dictionary information, and when the data is transmitted to the client, the server compresses the data using the dictionary information having the best compression efficiency of the data. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006066951A JP4456574B2 (en) | 2006-03-13 | 2006-03-13 | Compressed data transmission method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006066951A JP4456574B2 (en) | 2006-03-13 | 2006-03-13 | Compressed data transmission method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005317343A Division JP4456554B2 (en) | 2005-10-31 | 2005-10-31 | Data compression method and compressed data transmission method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007129683A true JP2007129683A (en) | 2007-05-24 |
JP4456574B2 JP4456574B2 (en) | 2010-04-28 |
Family
ID=38151940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006066951A Expired - Fee Related JP4456574B2 (en) | 2006-03-13 | 2006-03-13 | Compressed data transmission method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4456574B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010086525A (en) * | 2008-09-04 | 2010-04-15 | Ns Solutions Corp | Information processing apparatus, common character string output method and program |
CN115801902A (en) * | 2023-02-09 | 2023-03-14 | 北京特立信电子技术股份有限公司 | Compression method of network access request data |
CN118660085A (en) * | 2024-08-19 | 2024-09-17 | 杭州浩联智能科技有限公司 | Communication parameter transmission method, device, equipment and storage medium |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03247167A (en) * | 1990-02-26 | 1991-11-05 | Fujitsu Ltd | Data compression system |
JPH03270417A (en) * | 1990-03-20 | 1991-12-02 | Fujitsu Ltd | Data compressing and decoding system |
JPH05241775A (en) * | 1992-02-28 | 1993-09-21 | Fujitsu Ltd | Data compression system |
JPH05241778A (en) * | 1992-03-03 | 1993-09-21 | Fujitsu Ltd | Data compression and restoration system |
JPH05241777A (en) * | 1992-02-28 | 1993-09-21 | Fujitsu Ltd | Data compression system |
JPH10261969A (en) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | Data compression method and its device |
JPH11168390A (en) * | 1997-12-03 | 1999-06-22 | Fujitsu Ltd | Data compression device, data restoration device, data compression method, data restoration method, preparation device for dictionary for data compression/ restoration and computer readable medium recording data compression program or data restoration program |
JP2000269822A (en) * | 1999-03-12 | 2000-09-29 | Fujitsu Ltd | Data compressor and data restoring device |
-
2006
- 2006-03-13 JP JP2006066951A patent/JP4456574B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03247167A (en) * | 1990-02-26 | 1991-11-05 | Fujitsu Ltd | Data compression system |
JPH03270417A (en) * | 1990-03-20 | 1991-12-02 | Fujitsu Ltd | Data compressing and decoding system |
JPH05241775A (en) * | 1992-02-28 | 1993-09-21 | Fujitsu Ltd | Data compression system |
JPH05241777A (en) * | 1992-02-28 | 1993-09-21 | Fujitsu Ltd | Data compression system |
JPH05241778A (en) * | 1992-03-03 | 1993-09-21 | Fujitsu Ltd | Data compression and restoration system |
JPH10261969A (en) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | Data compression method and its device |
JPH11168390A (en) * | 1997-12-03 | 1999-06-22 | Fujitsu Ltd | Data compression device, data restoration device, data compression method, data restoration method, preparation device for dictionary for data compression/ restoration and computer readable medium recording data compression program or data restoration program |
JP2000269822A (en) * | 1999-03-12 | 2000-09-29 | Fujitsu Ltd | Data compressor and data restoring device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010086525A (en) * | 2008-09-04 | 2010-04-15 | Ns Solutions Corp | Information processing apparatus, common character string output method and program |
CN115801902A (en) * | 2023-02-09 | 2023-03-14 | 北京特立信电子技术股份有限公司 | Compression method of network access request data |
CN115801902B (en) * | 2023-02-09 | 2023-04-11 | 北京特立信电子技术股份有限公司 | Compression method of network access request data |
CN118660085A (en) * | 2024-08-19 | 2024-09-17 | 杭州浩联智能科技有限公司 | Communication parameter transmission method, device, equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP4456574B2 (en) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4456554B2 (en) | Data compression method and compressed data transmission method | |
US20170295263A1 (en) | System and method for applying an efficient data compression scheme to url parameters | |
CN103970793B (en) | Information query method, client and server | |
CN106407201B (en) | Data processing method and device and computer readable storage medium | |
JP5989781B2 (en) | Method and apparatus for progressive pattern matching in a mobile environment | |
CN114731162A (en) | Partial download of compressed data | |
CN102594809B (en) | Method and system for rapidly scanning files | |
CN115208414B (en) | Data compression method, data compression device, computer device and storage medium | |
CN103731493A (en) | Page transmission method, device and system | |
CN102340424A (en) | Bad message detection method and bad message detection device | |
JP4456574B2 (en) | Compressed data transmission method | |
JP4548184B2 (en) | Compression rule generation method, compression communication apparatus, and program | |
CN108563795B (en) | Pairs method for accelerating matching of regular expressions of compressed flow | |
CN113449829B (en) | Data transmission method and related device based on optical character recognition technology | |
CN108573069B (en) | Twins method for accelerating matching of regular expressions of compressed flow | |
CN108287859A (en) | A kind of multimedia information retrieval method and device | |
CN114039801B (en) | Short link generation method, short link analysis system, short link analysis equipment and storage medium | |
CN113204683B (en) | Information reconstruction method and device, storage medium and electronic equipment | |
CN109766347B (en) | Data updating method, device, system, computer equipment and storage medium | |
CN115865457A (en) | Network attack behavior identification method, server and medium | |
CN115276889B (en) | Decoding processing method, decoding processing device, computer equipment and storage medium | |
CN107688978B (en) | Method and device for detecting repeated order information | |
CN113473171A (en) | Resource processing method and device | |
US20170048303A1 (en) | On the fly statistical delta differencing engine | |
US20060259971A1 (en) | Method for detecting viruses in macros of a data stream |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100112 |
|
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: 20100202 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100205 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130212 Year of fee payment: 3 |
|
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: 20140212 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |