JP2952067B2 - Data compression method - Google Patents

Data compression method

Info

Publication number
JP2952067B2
JP2952067B2 JP3056704A JP5670491A JP2952067B2 JP 2952067 B2 JP2952067 B2 JP 2952067B2 JP 3056704 A JP3056704 A JP 3056704A JP 5670491 A JP5670491 A JP 5670491A JP 2952067 B2 JP2952067 B2 JP 2952067B2
Authority
JP
Japan
Prior art keywords
character
dictionary
character string
memory
address
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.)
Expired - Fee Related
Application number
JP3056704A
Other languages
Japanese (ja)
Other versions
JPH0683573A (en
Inventor
広隆 千葉
佳之 岡田
茂 吉田
泰彦 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP3056704A priority Critical patent/JP2952067B2/en
Publication of JPH0683573A publication Critical patent/JPH0683573A/en
Application granted granted Critical
Publication of JP2952067B2 publication Critical patent/JP2952067B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、ユバーサル符号化の一
種である増分分解型の改良としてのLZW符号化による
デ−タ圧縮方式に関する。近年、文字コ−ド、ベクトル
情報、画像など様々な種類のデ−タがコンピュ−タで扱
われるようになっており、扱われるデ−タ量も急速に増
加してきている。大量のデ−タを扱うときは、デ−タの
中の冗長な部分を省いてデ−タ量を圧縮することで、記
憶容量を減らしたり、速く伝送したりできるようにな
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data compression system based on LZW coding as an improvement of an incremental decomposition type, which is a kind of universal coding. In recent years, various types of data such as character codes, vector information, and images have been handled by computers, and the amount of data handled has rapidly increased. When dealing with a large amount of data, by compressing the data amount by omitting redundant portions in the data, the storage capacity can be reduced or the data can be transmitted faster.

【0002】このような様々なデ−タを1つの方式でデ
−タ圧縮できる方法としてユニバ−サル符号化が提案さ
れている。ここで、本発明の分野は、文字コ−ドの圧縮
に限らず、様々なデ−タに適用できるが、以下では、情
報理論で用いられている呼称を踏襲し、デ−タの1ワー
ド単位を文字と呼び、デ−タが複数ワードツながったも
のを文字列と呼ぶことにする。
[0002] Universal encoding has been proposed as a method capable of compressing such various data in one system. Here, the field of the present invention is not limited to character code compression, and can be applied to various data. In the following, one word of data will be used, following the name used in information theory. The unit is called a character, and the data obtained by combining a plurality of words is called a character string.

【0003】ユニバ−サル符号の代表的な方法として、
ジブーレンペル(Ziv-Lempel)符号がある(詳しくは、
例えば、宗像「Ziv-Lempelのデ−タ圧縮法」、情報処
理、Vol.26,No.1,1985年を参照のこと)。ジフーレンペ
ル符号では、 ユニバ−サル型 増分分解型(Incremental parsing ) の2つのアルゴリズムが提案されている。
[0003] As a typical method of the universal code,
There is a Ziv-Lempel code (for more information,
For example, see Munakata "Ziv-Lempel Data Compression Method", Information Processing, Vol. 26, No. 1, 1985). Two algorithms of a universal type and an incremental parsing type have been proposed for dihurempel codes.

【0004】更に、ユニバ−サル型アルゴリズムの改良
として、LZSS符号がある(T.C.Bell, “Better OPM
/L Text Compression ”,IEEE Trans. on Commun.,Vol.
COM-34,No.12,DEC.1986 参照)。また、増分分解型アル
ゴリズムの改良としては、LZW(Lempel-Ziv-Welch)
符号がある(T.A.Welch,“A Technique for High-Perfo
rmance Data Compression ”,Computer,June 1984 参
照)。
Further, as an improvement of the universal type algorithm, there is an LZSS code (TCBell, “Better OPM”).
/ L Text Compression ”, IEEE Trans. On Commun., Vol.
COM-34, No. 12, DEC.1986). Further, as an improvement of the incremental decomposition type algorithm, LZW (Lempel-Ziv-Welch)
(TAWelch, “A Technique for High-Perfo
rmance Data Compression ”, Computer, June 1984).

【0005】これらの符号の内、高速処理ができること
と、アルゴリズムの簡単さからLZW符号が記憶装置の
ファイル圧縮などで使われるようになっている。
[0005] Among these codes, the LZW code has come to be used for file compression of a storage device or the like because of its high speed processing and the simplicity of the algorithm.

【0006】[0006]

【従来の技術】従来のLZW符号による符号化処理フロ
ーを図9に示し、復号化処理フローを図10に示す。ま
ずLZW符号化処理は、書き替え可能な辞書を持ち、入
力文字列の中を相異なる文字列(部分列)に分け、この
文字列を出現した順に参照番号を付けて辞書に登録する
と共に、現在入力している文字列を、辞書に登録してあ
る最長一致文字列の参照番号で表して符号化するもので
ある。
2. Description of the Related Art FIG. 9 shows a flow of a conventional LZW code, and FIG. 10 shows a flow of a decoding process. First, the LZW encoding process has a rewritable dictionary, divides an input character string into different character strings (substrings), assigns reference numbers to the character strings in the order in which they appear, and registers them in the dictionary. The character string currently input is represented and encoded by the reference number of the longest matching character string registered in the dictionary.

【0007】図11にLZW符号化の説明図を示すと共
に図13にLZW復号化の説明図を示し、更に図12に
符号化及び復号化時に作成される辞書構成例を示す。
尚、図11,12,13にあっては説明を簡単にするた
め、abcの3文字の組合せからなるデ―タを圧縮、復
元する場合の例を取り上げている。図9のLZW符号化
処理では、まずステップS1で予め辞書に全文字につき
一文字からなる文字列を初期値として登録してから符号
化を始める。
FIG. 11 is an explanatory diagram of LZW encoding, FIG. 13 is an explanatory diagram of LZW decoding, and FIG. 12 shows an example of a dictionary configuration created at the time of encoding and decoding.
In FIGS. 11, 12, and 13, for the sake of simplicity, an example is described in which data consisting of a combination of three characters of abc is compressed and decompressed. In the LZW encoding process shown in FIG. 9, first, in step S1, a character string consisting of one character for all characters is registered in the dictionary as an initial value, and then encoding is started.

【0008】ステップS1の符号化は入力した最初の文
字Kにより辞書を検索して参照番号ωを求め、これを語
頭文字列とする。次にステップS2で入力データの次の
文字Kを読込み、ステップS3で文字入力が終了したか
否かチェックした後、ステップS4に進んでステップS
1で求めた語頭文字列ωにステップS2で読込んだ文字
Kを加えた拡張文字列(ωK)が辞書にあるか否か探
す。
In the encoding in step S1, a dictionary is searched by the first character K inputted to obtain a reference number ω, which is used as the initial character string. Next, in step S2, the next character K of the input data is read. In step S3, it is checked whether or not the character input has been completed.
A search is performed to determine whether an extended character string (ωK) in which the character K read in step S2 is added to the initial character string ω obtained in step 1 is in the dictionary.

【0009】ステップS4で文字列(ωK)が辞書にな
ければ、ステップS6に進んでステップS1で求めた文
字Kの参照番号ωを符号語code(ω)として出力し、ま
た文字列(ωK)に新たな参照番号を付加して辞書に登
録し、更にステップS2の入力文字Kを参照番号ωに置
き換えると共に辞書アドレスnをインクリメントしてス
テップS2に戻って次の文字Kを読み込む。
If the character string (.omega.K) is not found in the dictionary in step S4, the flow advances to step S6 to output the reference number .omega. Of the character K obtained in step S1 as a code word code (.omega.). Is added to the dictionary and registered in the dictionary, the input character K in step S2 is replaced with the reference number ω, the dictionary address n is incremented, and the process returns to step S2 to read the next character K.

【0010】一方、ステップS4で文字列(ωK)が辞
書にあればステップS5で文字列(ωK)を参照番号ω
に置き換え、再びステップS2に戻ってステップS4で
文字列(ωK)が辞書から探せなくなるまで最大一致長
の検索を続ける。
On the other hand, if the character string (ωK) is found in the dictionary in step S4, the character string (ωK) is referred to in step S5 by the reference number ω
And returns to step S2 again to continue searching for the maximum matching length until the character string (ωK) cannot be searched from the dictionary in step S4.

【0011】図11,12を参照してLZW符号化を具
体的に説明すると次のようになる。まず図11の入力デ
ータinput は左から右へと読む。最初の文字aを入力し
た時、辞書には文字aの他に一致する文字列がないの
で、OUTPUT CODE 1(参照番号ω)を符号語して出力す
る。そして文字aを語頭文字列ωとする。
The LZW encoding will be described below in detail with reference to FIGS. First, the input data input of FIG. 11 is read from left to right. When the first character a is input, there is no matching character string other than the character a in the dictionary, so that OUTPUT CODE 1 (reference number ω) is codeworded and output. Then, the character a is set to the initial character string ω.

【0012】次に2番目の文字bを入力したとすると、
この入力文字を語頭文字列ωに加えた拡張文字列ωK=
abは辞書にないことから、文字bのOUTPUT CODE 2を
符号語として出力する。そして、拡張文字列ωK=ab
に参照番号4を付けて辞書に登録する。実際の辞書登録
は図12の右側に示すように文字列1bとして登録され
る。そして文字bが語頭文字列ωとなる。
Next, assuming that the second character b is input,
This input character is added to the initial character string ω.
Since ab is not in the dictionary, OUTPUT CODE 2 of character b is output as a codeword. Then, the extended character string ωK = ab
With reference number 4 and registered in the dictionary. The actual dictionary registration is registered as a character string 1b as shown on the right side of FIG. Then, the character b becomes the initial character string ω.

【0013】続いて3番目の文字aを入力したとする
と、文字bに語頭文字列ωを加えた拡張文字列ωK=b
a=2aは辞書にないことから、文字aのOUTPUT CODE
1 を符号語として出力した後、拡張文字列ωK=baを
2aで表わし、参照番号5を付けて辞書に登録する。そ
して文字aが新たな語頭文字列ωとなる。4番目の入力
文字bについては拡張文字列ωK=abは1bの符号語
4として既に辞書に登録されているので、文字列ωKを
新たな語頭文字列ωとし、5番目の文字cを入力して拡
張文字列ωK=4c=abcを作る。この拡張文字列ω
K=abcは辞書に登録されていないことから、文字列
ab=1bのOUTPUT CODE4 を符号語として出力し、拡
張文字列ωK=abcを辞書に4cの形で符号語6とし
て登録する。以下同様に、この処理を続ける。
Subsequently, if a third character a is input, an extended character string ωK = b obtained by adding the initial character string ω to the character b
Since a = 2a is not in the dictionary, the OUTPUT CODE of character a
After outputting 1 as a code word, the extended character string ωK = ba is represented by 2a, and is registered in the dictionary with the reference number 5 attached. Then, the character a becomes a new initial character string ω. Regarding the fourth input character b, the extended character string ωK = ab is already registered in the dictionary as the code word 4 of 1b, so the character string ωK is set as a new initial character string ω, and the fifth character c is input. To create an extended character string ωK = 4c = abc. This extended string ω
Since K = abc is not registered in the dictionary, OUTPUT CODE4 of the character string ab = 1b is output as a code word, and the extended character string ωK = abc is registered in the dictionary as code word 6 in the form of 4c. Hereinafter, similarly, this processing is continued.

【0014】図10の復号化処理は図9の符号化の逆の
操作を行う。図10のLZW復号化では、符号化時と同
様に予め辞書に全文字につき一文字からなる文字列を初
期値として登録してから復号化を始める。まずステップ
S1で最初の符号(参照番号)を読込み、現在のCODEを
OLDcodeとし、最初の符号は既に辞書に登録された一文
字の参照番号いずれかに該当することから、入力符号CO
DEに一致する文字code(K) を探し出し、文字Kを出力す
る。
The decoding process of FIG. 10 performs the reverse operation of the encoding of FIG. In the LZW decoding of FIG. 10, as in the case of encoding, decoding is started after a character string consisting of one character for every character is previously registered in a dictionary as an initial value. First, in step S1, the first code (reference number) is read, and the current CODE is set.
OLDcode, and the first code corresponds to one of the one-character reference numbers already registered in the dictionary.
Search for character code (K) that matches DE and output character K.

【0015】尚、出力した文字Kは後の例外処理のため
FINchar にセットしておく。次にステップS2に進んで
次の符号を読込んでCODEにINcodeとしてセットする。ス
テップS3で新たな符号があるか否か、即ち符号入力の
終了の有無をチェックしてステップS4に進み、ステッ
プS3で入力された符号CODEが辞書に定義(登録)され
ているか否かチェックする。通常、入力した符号語は前
回までの処理で辞書に登録されているため、ステップS
5に進んで符号CODEに対応する文字列code(ωK)を辞
書から読出し、ステップS6で文字Kを一時的にスタッ
クし、参照番号CODE(ω)を新な符号CODEとして再度ス
テップS5に戻り、このステップS5,ステップS6の
手順を再帰的に参照番号ωが一文字Kに至るまで繰り返
し、最後にステップS7に進んでステップS6でスタッ
クした文字をLIFO(Last In Fast Out) 形式でポッ
プアップして出力する。同時にステップS7において、
前回使った符号ωと今回復元した文字列の最初の1文字
Kを組(ωK)と表した文字列に、新たな参照番号を付
加して辞書に登録する。
The output character K is used for later exception processing.
Set to FINchar. Next, the process proceeds to step S2, where the next code is read and set as INcode in CODE. In step S3, it is checked whether there is a new code, that is, whether or not the code input has been completed, and the process proceeds to step S4. In step S3, it is checked whether the input code CODE is defined (registered) in the dictionary. . Normally, since the input code word is registered in the dictionary in the processing up to the previous time, step S
The process proceeds to step S5, where a character string code (ωK) corresponding to the code CODE is read from the dictionary, the character K is temporarily stacked in step S6, and the reference number CODE (ω) is set as a new code CODE, and the process returns to step S5 again. The steps S5 and S6 are recursively repeated until the reference number ω reaches one character K. Finally, the process proceeds to step S7, where the characters stacked in step S6 are popped up and output in LIFO (Last In Fast Out) format. I do. At the same time, in step S7,
A new reference number is added to a character string representing a combination (ωK) of the code ω used last time and the first character K of the character string restored this time and registered in the dictionary.

【0016】図13を参照してLZW復号化処理を具体
的に説明すると次のようになる。まず図13で最初の入
力符号語(INPUT CODE)は1であり、一文字a,b,cに
ついては既に参照番号1,2,3として図12に示すよ
うに辞書に登録されているため、辞書の参照により符号
語1に一致する参照番号の文字列aに置き換えて出力す
る。
The LZW decoding process will be specifically described with reference to FIG. First, in FIG. 13, the first input code word (INPUT CODE) is 1, and the characters a, b, and c are already registered in the dictionary as reference numbers 1, 2, and 3 as shown in FIG. Is replaced with the character string a of the reference number that matches the code word 1 and output.

【0017】次の符号語2についても同様にして文字b
に置き換えて出力する。このとき前回処理した符号語1
と今回復号した文字列の1番目の文字bとを組合わせた
文字列ωK=1bに新たな参照番号4を付加して辞書に
登録する。3番目の符号語4は辞書の検索により求めた
文字列1bから文字列abと置き換えて文字列abを出
力する。同時に前回処理した符号語2と今回復号した文
字列の1番目の文字aとの組合せた文字列ωK=2a
(=ba)に新たな参照番号5を付加して辞書に登録す
る。
Similarly, for the next code word 2, the character b
And output. At this time, code word 1 processed last time
A new reference number 4 is added to the character string ωK = 1b, which is a combination of the first character b of the character string decoded this time and the first character b, and registered in the dictionary. For the third code word 4, the character string ab is output by replacing the character string 1b obtained by the dictionary search with the character string ab. At the same time, a character string ωK = 2a, which is a combination of the code word 2 processed last time and the first character a of the character string decoded this time.
A new reference number 5 is added to (= ba) and registered in the dictionary.

【0018】以下同様に、この処理を繰り返す。This process is repeated in the same manner.

【0019】図13のLZW復号化では次の例外処理が
ある。この例外処理は、第6番目の入力符号語8の復号
で生ずる。符号語8は復号時に辞書に定義されておら
ず、復号できない。この場合には、前回処理した符号語
5に前回復号した文字列baの最初の一文字bを加えた
文字列5bを求め、更に 5b=2ab=bab と置き換えて出力する例外処理を行う。そして、文字列
の出力後に前回の符号語5に今回復号した文字列の1番
目の文字bを加えた文字列5bに参照番号8を付加して
辞書に登録する。
In the LZW decoding of FIG. 13, there is the following exception processing. This exception handling occurs in the decoding of the sixth input codeword 8. Codeword 8 is not defined in the dictionary at the time of decoding and cannot be decoded. In this case, an exception process is performed in which a character string 5b is obtained by adding the first character b of the previously decoded character string ba to the previously processed codeword 5 and further replaced with 5b = 2ab = bab. Then, after the output of the character string, the reference number 8 is added to the character string 5b obtained by adding the first character b of the character string decoded this time to the previous code word 5 and registered in the dictionary.

【0020】この例外処理は、図10の復号化処理フロ
ーのステップS4,ステップS8の処理を通じて行わ
れ、最終的にステップS7で文字列の出力と新たな文字
列に参照番号を付加した辞書への登録がステップS7で
行われる。尚、図10,13のLZW復号化は、復号側
で符号を解読しながら辞書をリアルタイムで作り出す場
合を説明したが、符号化の際に作られた辞書をそのまま
復号化側にコピーとして使用することで符号化しても良
い。この場合に復号化側での例外処理は不要になる。
This exception processing is performed through the processing of steps S4 and S8 of the decoding processing flow of FIG. 10. Finally, in step S7, the character string is output to the dictionary in which the reference number is added to the new character string. Is registered in step S7. In the LZW decoding of FIGS. 10 and 13, a case has been described where a dictionary is created in real time while decoding the code on the decoding side, but the dictionary created at the time of encoding is used as a copy on the decoding side as it is. May be encoded. In this case, the exception processing on the decoding side becomes unnecessary.

【0021】しかし、図9のフローチャートに示す手順
でLZW符号化を行うと、1つの文字列を辞書検索する
たびに、最悪、辞書全体をサ−チしなければならなら
ず、辞書検索に時間がかかる問題があった。そこで従来
の辞書検索方式にあっては、外部ハッシュ法(open has
hing 又はchaining)を用いて処理速度を上げている。
However, if LZW encoding is performed according to the procedure shown in the flowchart of FIG. 9, every time a dictionary is searched for one character string, the entire dictionary must be searched at the worst. There was a problem. Therefore, in the conventional dictionary search method, the external hash method (open has
hing or chaining) to increase the processing speed.

【0022】まず一般的なハッシュ法による辞書検索に
あっては、複数の文字列からなる集合Sを考えたとき、
集合Sの文字列xの格納位置を、文字列xそのものから
格納位置を示すアドレスを直接計算できる仕組みになっ
ており、高速の辞書検索ができる。文字列の記憶場所、
即ちハッシュ表に0からm-1 までのアドレスが付されて
いるとすると、ハッシュ法では、関数 h:S→〔0,1,・・・,m-1 〕 を一つ定めて、集合Sの文字列xのアドレスをh(x)
として求める。この関数hをハッシュ関数、値h(x)
を文字列xのハッシュアドレスという。
First, in a general dictionary search by the hash method, when a set S composed of a plurality of character strings is considered,
The storage position of the character string x of the set S can be directly calculated from the character string x itself, and the address indicating the storage position can be directly calculated, so that a high-speed dictionary search can be performed. String storage location,
That is, assuming that addresses from 0 to m-1 are assigned to the hash table, in the hash method, one function h: S → [0, 1,..., M-1] is determined, and the set S The address of the character string x of h (x)
Asking. This function h is a hash function, and the value h (x)
Is referred to as a hash address of the character string x.

【0023】ハッシュ法は、通常、集合Sの大きさがア
ドレス数mに比べてはるかに大きい場合に用いられる。
しかしながら、ハッシュ関数hをどのように選んだとし
ても、集合Sの相異なる文字列x1,x2に対して h(x1)=h(x2) ハッシュアドレスが一致してしまう場合が起こり得る。
これを衝突と呼び、衝突に対する対策の一つとして外部
ハッシュ法(open hashing, またはchaining)が用いら
れる。
The hash method is usually used when the size of the set S is much larger than the number m of addresses.
However, no matter how the hash function h is selected, h (x1) = h (x2) hash addresses may coincide with different character strings x1 and x2 of the set S.
This is called collision, and an external hashing method (open hashing, or chaining) is used as one of the measures against collision.

【0024】外部ハッシュ法は図14に示すように、索
引(ディレクトリ)で示されるハッシュアドレスi毎に
連結リストを用意し、衝突を起こしたハッシュアドレス
h(x)=iの文字列xは、連結リストの先頭から順番
に格納する。同じハッシュアドレスh(x)をもつそれ
ぞれの連結リストはバケット(bucket) と呼ばれる。
In the external hash method, as shown in FIG. 14, a linked list is prepared for each hash address i indicated by an index (directory), and the character string x of the hash address h (x) = i that has caused a collision is Store in order from the top of the linked list. Each linked list with the same hash address h (x) is called a bucket.

【0025】辞書検索に外部ハッシュ法のリスト構造を
利用したLZW符号化の処理フローを図15に示す。ま
た図16に従来の辞書の構成例を示し、この辞書構成に
対応して辞書メモリ上の配置を図17に示す。まず図1
7において、辞書メモリは、ファーストメモリ(fir
st)100、ネクストメモリ(next)200及び
拡張メモリ(extention;extと省略)30
0で構成される。ここでファーストメモリ100が図1
4に示した外部ハッシュ法の索引(ディレクトリ)に対
応し、ネクストメモリ200が図14の連結リストの
「next」に対応し、更に拡張メモリ300が図14の
「name」に対応する。
FIG. 15 shows a processing flow of LZW encoding using a list structure of the external hash method for dictionary search. FIG. 16 shows a configuration example of a conventional dictionary, and FIG. 17 shows an arrangement on a dictionary memory corresponding to the dictionary configuration. First, Figure 1
7, the dictionary memory is the first memory (first
st) 100, next memory (next) 200, and extension memory (extension; abbreviated as "ext") 30
0. Here, the first memory 100 is shown in FIG.
14 corresponds to the index (directory) of the external hash method, the next memory 200 corresponds to “next” in the linked list in FIG. 14, and the extended memory 300 corresponds to “name” in FIG.

【0026】また図16の辞書構成にあっては、右下に
取出して示すように、1つのノードに次の情報を示して
いる。 (1)ノード内 ; 拡張メモリの登録シンボル (2)ノード左上; アドレス (3)ノード左下; 次のファーストメモリのアドレス (4)ノード右下; ネクストメモリのアドレス 尚、数値Oはメモリ内容が空であることを示す。
In the dictionary configuration shown in FIG. 16, as shown at the lower right, one node indicates the following information. (1) Inside the node; Registered symbol of the extended memory (2) Upper left of the node; Address (3) Lower left of the node; Address of the next first memory (4) Lower right of the node; Address of the next memory It is shown that.

【0027】図15のLZW符号化処理を、説明を簡単
にするため文字A、B、Cの3文字を対象とした場合を
例にとって説明すると次のようになる。まずステップS
1で次の初期化処理を行う。 (1)第1番目の文字を含むように辞書を初期化する。
ここでアルファベットA、B、Cの3文字を対象として
いることから、A、B、Cの文字コードをそのままハッ
シュアドレスとして図16の辞書メモリのアドレス1,
2,3に登録する。
The LZW encoding process shown in FIG. 15 will be described below by taking as an example a case where three characters A, B, and C are targeted for the sake of simplicity. First, step S
In step 1, the following initialization processing is performed. (1) Initialize the dictionary to include the first character.
Here, since three characters of alphabets A, B, and C are targeted, the character codes of A, B, and C are directly used as hash addresses as addresses 1 and 2 in the dictionary memory of FIG.
Register in 2 and 3.

【0028】(2)辞書への現在文字登録数nを前記
(2)で登録した文字数にセットする。アルファベット
3文字の場合には、n=3となる。 (3)入力した最初の文字Kを語頭文字列iとする。こ
の場合、最初の入力文字は「A」であることから語頭文
字列i=1とする。 (4)辞書検索用配列を0に初期化する。即ち、ファー
スト、ネクスト及び拡張のメモリの検索用配列はfirst
[1,Nmax],next[1,Nmax]、EXT [1,Nmax]で表わされ
るので、これを0に初期化する。
(2) The current character registration number n in the dictionary is set to the number of characters registered in (2). In the case of three alphabets, n = 3. (3) The first character K that is input is defined as a first character string i. In this case, since the first input character is “A”, the initial character string i = 1. (4) The dictionary search array is initialized to 0. That is, the first, next, and extended memory search arrays are first
Since they are represented by [1, Nmax], next [1, Nmax] and EXT [1, Nmax], they are initialized to zero.

【0029】以上のステップS1の初期化処理が済んだ
ならば、ステップS2移行の処理に進み、その結果、現
在図16及び図17に示す辞書が作成された段階にある
ものとする。この状態でいま文字列「AAAA」を入力
して符号化する場合の処理を説明する。
After the initialization process in step S1 is completed, the process proceeds to step S2, and as a result, it is assumed that the dictionary shown in FIGS. 16 and 17 has been created. In this state, a description will be given of a case where the character string “AAAAA” is input and encoded.

【0030】ステップS1の初期化は済んでいるので、
最初の入力文字「A」を語頭文字列ω=1とし、ステッ
プS1で最初の入力文字「A」を語頭文字列ω=1と
し、ステップS2で2番目の入力文字「A」を読む。続
いてステップS3で未処理文字があることが判別されて
ステップS5〜ステップS9に示す辞書検索ステップに
進む。
Since the initialization in step S1 has been completed,
The first input character “A” is set to the initial character string ω = 1, the first input character “A” is set to the initial character string ω = 1 in step S1, and the second input character “A” is read in step S2. . Subsequently, it is determined in step S3 that there is an unprocessed character, and the process proceeds to the dictionary search step shown in steps S5 to S9.

【0031】辞書検索ステップでは、まずステップS5
で語頭文字列ω=1をカウンタiにi=1としてセット
し、且つjカウンタをj=0にセットする。ここでカウ
ンタiはファーストメモリの格納値で指定される辞書メ
モリのアドレス値であり、またカンウタjはネクストメ
モリの格納値で指定される辞書メモリのアドレス値であ
る。
In the dictionary search step, first, in step S5
Sets the initial character string ω = 1 to the counter i as i = 1, and sets the j counter to j = 0. Here, the counter i is the address value of the dictionary memory specified by the value stored in the first memory, and the counter j is the address value of the dictionary memory specified by the value stored in the next memory.

【0032】次にステップS6でiカウンタで指定され
た図17の辞書メモリのアドレス1の内容を読み、拡張
メモリ300からシンボル(smbol)として「A」
を読出し、またファーストメモリ100から次のファー
ストアドレス「4」を読出してiカウンタをi=4にセ
ットする。続いてステップS7に進み、辞書登録ステッ
プに移行するか否か判断するためにi=0か否かチェッ
クし、このときi=4であることからステップS8に進
み、ステップS6のアドレス1の拡張メモリ300を参
照して得たシンボル「A」と、1番目の入力文字「A」
との一致を判別する。この場合、両者は一致しているこ
とからステップS2に戻り、3番目の入力文字「A」を
読込む。
Next, in step S6, the contents of address 1 in the dictionary memory of FIG. 17 designated by the i counter are read, and "A" is read from the extension memory 300 as a symbol (smbol).
And reads the next first address “4” from the first memory 100 and sets the i counter to i = 4. Subsequently, the process proceeds to step S7, where it is checked whether or not i = 0 to determine whether or not to proceed to the dictionary registration step. Since i = 4 at this time, the process proceeds to step S8, and the extension of the address 1 in step S6 is performed. The symbol “A” obtained by referring to the memory 300 and the first input character “A”
Is determined. In this case, since they match, the process returns to step S2 to read the third input character "A".

【0033】続いてステップS3を介してステップS5
に進み、辞書メモリのアドレスωにそのときのカウンタ
iの値i=4をセットし、辞書メモリのアドレス4を参
照する。次にステップS6で辞書メモリのアドレス4の
内容を読み、拡張メモリ300に格納したシンボル(s
mbol)として「B」を読出し、またファーストメモ
リ100から次のファーストアドレス「6」を読出して
iカウンタをi=6にセットする。
Subsequently, step S5 is performed via step S3.
Then, the value i = 4 of the counter i at that time is set to the address ω of the dictionary memory, and the address 4 of the dictionary memory is referred to. Next, in step S6, the contents of address 4 of the dictionary memory are read, and the symbol (s
mbol), and reads the next first address “6” from the first memory 100 and sets the i counter to i = 6.

【0034】続いてステップS7に進み、i=0か否か
チェックし、このときi=6であることからステップS
8に進み、ステップS6のアドレス4の拡張メモリ30
0から得たシンボル「B」と、ステップS2で得ている
入力文字「A」との一致を判別する。この場合、両者は
不一致あることからステップS9に進む。ステップS9
では、まずiカウンタに辞書メモリのアドレス4の参照
でネクストメモリ200から得たj=10の値をセット
してi=10とする。このiカウンタとjカウンタの置
き換えは、ステップS7の判断をiカウンタについての
み行っていることから、これをjカウンタについてもで
きるようにするためである。
Subsequently, the flow advances to step S7 to check whether i = 0 or not. At this time, since i = 6, step S7 is executed.
8, the extended memory 30 at the address 4 in step S6
It is determined whether the symbol “B” obtained from 0 matches the input character “A” obtained in step S2. In this case, the process proceeds to step S9 because they do not match. Step S9
First, the value of j = 10 obtained from the next memory 200 by referring to the address 4 of the dictionary memory is set in the i counter to make i = 10. The replacement of the i counter and the j counter is performed so that the determination in step S7 is performed only for the i counter, so that the determination can also be performed for the j counter.

【0035】続いて置き換えが済んだiカウンタで指定
される辞書メモリのアドレス10を参照し、アドレス1
0の拡張メモリ300に格納したシンボル「A」を読出
し、更に、アドレス10のファーストメモリ100に格
納している次のファーストメモリのアドレス値11をi
カウンタにセットする。次にステップS7に戻り、この
ときi=11であることからステップS9で得られたア
ドレス10のシンボル「A」と入力文字「A」とを比較
し、一致していることからステップS2に進み、3番目
の文字の処理に進む。
Then, referring to address 10 of the dictionary memory designated by the replaced i counter, address 1
The symbol “A” stored in the extended memory 300 of “0” is read, and the address value 11 of the next first memory stored in the first memory 100 of the address 10 is set to i.
Set to counter. Next, returning to step S7, since i = 11 at this time, the symbol "A" at address 10 obtained in step S9 is compared with the input character "A", and if they match, the flow proceeds to step S2. Go to the processing of the third character.

【0036】3番目及び4番目の入力文字「A」につい
ては1番目の入力文字と同様の処理が行われ、辞書メモ
リのアドレス10から11、更にアドレス11から12
に進み、アドレス12の処理が済むとステップS3で処
理対象となる文字がなくなることからステップS16に
進んで最終アドレスω=12を符号語code(ω)と
して出力して一連の処理を終える。
With respect to the third and fourth input characters "A", the same processing as that for the first input character is performed.
When the processing of the address 12 is completed, there are no more characters to be processed in step S3, so that the processing proceeds to step S16, where the final address ω = 12 is output as a codeword code (ω), and a series of processing is completed.

【0037】次にステップS11〜ステップS15の辞
書登録ステップの処理を説明する。辞書登録は辞書検索
ステップのファーストメモリ100又はネクストメモリ
200の検索でi=0となった時に行われる。即ち、ス
テップS7でi=0が判別されると、もはや辞書検索は
できないのでステップS10でそのときの辞書アドレス
ωを符号語code(ω)として出力して辞書登録ステ
ップに入る。
Next, the processing of the dictionary registration step of steps S11 to S15 will be described. Dictionary registration is performed when i = 0 in the search of the first memory 100 or the next memory 200 in the dictionary search step. That is, if i = 0 is determined in step S7, dictionary search can no longer be performed, so the dictionary address ω at that time is output as a code word code (ω) in step S10, and the dictionary registration step is entered.

【0038】辞書登録ステップでは、まずステップS1
1でその時点での辞書メモリの現在登録文字数nをiカ
ウンタにセットし、更にnを1つインクリメントする。
続いてステップS12でj=0か否かチェックし、j=
0でなければi=0であるのでステップS13に進んで
ファーストメモリ100の登録処理を行う。j=0であ
ればステップS14に進んでネクストメモリの登録処理
を行う。
In the dictionary registration step, first, in step S1
In step 1, the number n of characters currently registered in the dictionary memory at that time is set in the i counter, and n is incremented by one.
Subsequently, in step S12, it is checked whether or not j = 0, and j =
If it is not 0, i = 0, and the process proceeds to step S13 to perform the registration processing of the first memory 100. If j = 0, the process proceeds to step S14 to perform registration processing of the next memory.

【0039】ステップS13のファーストメモリ100
の登録処理は、 (1)iカウンタで指定されるメモリアドレスnのファ
ーストメモリ100に中に、次の登録先を示す(n+
1)の値を格納し、 (2)次のメモリアドレス(n+1)の拡張メモリ10
0に入力文字Kをシンボルとして登録する。具体的に図
16、図17でアドレス11に続いて入力文字「A」を
登録する場合を例にとると、iカウンタで指定されるメ
モリアドレス11のファーストメモリ100に中に、次
の登録先を示すアドレス値12を格納し、次のメモリア
ドレス12の拡張メモリ100に入力文字「A」をシン
ボルとして登録する。
The first memory 100 in step S13
(1) In the first memory 100 of the memory address n specified by the i counter, the next registration destination is indicated in the first memory 100 (n +
(2) The extended memory 10 of the next memory address (n + 1) is stored.
Register the input character K as a symbol at 0. Specifically, in the case where the input character “A” is registered following the address 11 in FIGS. 16 and 17, the next registration destination is stored in the first memory 100 of the memory address 11 specified by the i counter. Is stored, and the input character “A” is registered as a symbol in the extended memory 100 at the next memory address 12.

【0040】一方、ステップS14のネクストメモリ2
00の登録処理は、 (1)iカウンタで指定されるメモリアドレスのネクス
トメモリ200に中に、次の登録先を示す(n+1)の
値を格納し、 (2)次のメモリアドレス(n+1)の拡張メモリ10
0に入力文字Kをシンボルとして登録する。
On the other hand, the next memory 2 in step S14
In the registration process of 00, (1) the value of (n + 1) indicating the next registration destination is stored in the next memory 200 of the memory address specified by the i counter, and (2) the next memory address (n + 1) Extended memory 10
Register the input character K as a symbol at 0.

【0041】具体的に図16、図17でアドレス11に
続いて入力文字「A」を登録する場合を例にとると、i
カウンタで指定されるメモリアドレス11のネクストメ
モリ200の中に、次の登録先を示すアドレス値10を
格納し、次のメモリアドレス10の拡張メモリ100に
入力文字「A」をシンボルとして登録する。以上の登録
処理が済むと、登録が済んだ文字Kをiカウンタにセッ
トしてステップS2からの辞書検索ステップに戻る。
Specifically, in the case where the input character "A" is registered after the address 11 in FIGS.
The address value 10 indicating the next registration destination is stored in the next memory 200 at the memory address 11 specified by the counter, and the input character “A” is registered as a symbol in the extended memory 100 at the next memory address 10. When the above-described registration processing is completed, the registered character K is set in the i counter, and the process returns to the dictionary search step from step S2.

【0042】[0042]

【発明が解決しようとする課題】このような従来のLZ
W符号は、ソフトウェアで符号化すると辞書検索処理に
多くの時間を要することから、辞書検索に外部ハッシュ
法を用いて高速化している。しかし、外部ハッシュ法に
よる書検索では、入力文字と候補文字との照合をシーケ
ルシャルに行うため、辞書検索時間が全体時間の約80
%を占め、高速化が難しいという欠点があった。
SUMMARY OF THE INVENTION Such a conventional LZ
Since the W code requires a lot of time for dictionary search processing when encoded by software, the dictionary search is speeded up using an external hash method. However, in the book search by the external hash method, since the collation between the input character and the candidate character is performed sequentially, the dictionary search time is about 80% of the entire time.
% And it is difficult to increase the speed.

【0043】一方、本願発明者等にあっては、辞書検索
をするとき既に符号化済みの入力文字の情報を用いて連
結リストを複数個に分割して探索することで高速化を可
能とした符号化方式を提案している。しかし、実際の符
号化にあっては、使用出来るメモリ容量は予め決まって
おり、入力データの大きさによっては辞書メモリを全て
使用しないで符号化が終わる場合がある。また、用途に
よっては圧縮率よりも処理時間を優先させて符号化を行
いたい場合もある。
On the other hand, the inventor of the present invention has made it possible to speed up the search by dividing the linked list into a plurality of parts using the information of input characters which have already been encoded when performing a dictionary search. An encoding scheme is proposed. However, in actual encoding, a usable memory capacity is predetermined, and depending on the size of input data, encoding may be completed without using the entire dictionary memory. Further, depending on the application, there may be a case where it is desired to perform encoding by giving priority to the processing time over the compression rate.

【0044】しかしながら、従来の符号化方式では高速
化の要求と高圧縮の要求をうまく融合させて符号化する
ことが難しいという問題があった。本発明は、このよう
な従来の問題点に鑑みてなされたもので、高速化と高圧
縮の要求に適切に対応した符号化ができるデータ圧縮方
式を提供することを目的とする。
However, the conventional coding method has a problem that it is difficult to perform coding by properly combining a request for high speed and a request for high compression. The present invention has been made in view of such a conventional problem, and an object of the present invention is to provide a data compression method capable of performing encoding appropriately corresponding to a demand for high speed and high compression.

【0045】[0045]

【課題を解決するための手段】図1は本発明の原理説明
図である。まず本発明は、符号化済み文字列を相異なる
部分列に分けて各部分列毎に異なる参照番号を付加して
辞書1に登録しておき、入力文字列を辞書1の中の部分
列の内、最大長一致するものの参照番号で指定した符号
化によりデータ圧縮する符号化手段2と、部分列の検索
に外部ハッシュ法を使用し、辞書1に登録した部分列の
参照番号iに入力文字Kの要素から抽出した情報Kmを
加えたハッシュ・アドレスを生成することにより、付加
情報Kmのビット数に応じた分割数の連結リストを生成
して辞書1を検索する辞書検索手段3とを備えたデータ
圧縮方式を対象とする。
FIG. 1 is a diagram illustrating the principle of the present invention. First, the present invention divides an encoded character string into different substrings, adds a different reference number to each substring, registers it in the dictionary 1, and stores the input character string in the substring in the dictionary 1. Encoding means 2 for compressing data by encoding specified by the reference number of the one that matches the maximum length, and input character as the reference number i of the subsequence registered in the dictionary 1 using the external hash method for searching the subsequence Dictionary search means 3 for generating a hash address to which information Km extracted from the element of K is added to generate a linked list of the number of divisions according to the number of bits of the additional information Km and searching the dictionary 1 Target data compression method.

【0046】このようなデータ圧縮方式につき本発明に
あっては、部分列の参照番号iに加える入力文字Kの要
素から抽出される情報Kmのビット数を、適宜に変えて
連結リストの分割数を指定する分割数指定手段4を設け
たことを特徴とする。ここで分割数指定手段4は、部分
列の参照番号iに加える入力文字Kの要素から抽出され
る情報Kmのビット数を、高速処理に適合したビット数
(図3(b)参照)或いは高圧縮処理に適合したビット
数(図3(a)参照)に指定する。
According to the present invention for such a data compression method, the number of bits of the information Km extracted from the element of the input character K added to the reference number i of the subsequence is appropriately changed, and the number of divisions of the linked list is changed. Is provided. Here, the number-of-division designating means 4 determines the number of bits of the information Km extracted from the element of the input character K added to the reference number i of the subsequence by the number of bits suitable for high-speed processing (see FIG. The number of bits (see FIG. 3A) suitable for the compression process is specified.

【0047】具体的には、検索分割数判定手段5により
入力文字列データの先頭に付加された情報から判定され
た分割数に基づいてビット数を指定する。更に分割数指
定手段4は、入力文字Kの要素から抽出される情報Km
のビット数を、予め指定した分割滓に対応するビット数
を指定するようにしていもよい。
More specifically, the number of bits is specified based on the number of divisions determined by the information added to the head of the input character string data by the search division number determination means 5. Further, the division number designation means 4 outputs information Km extracted from the element of the input character K.
May be specified as the number of bits corresponding to the pre-specified slag.

【0048】[0048]

【作用】このような構成を備えた本発明のデータ圧縮方
式によれば、次の作用が得られる。データ圧縮の処理条
件としては、時間はかかっても高圧縮率が求められる場
合と、圧縮率よりも処理時間を優先させて高速に処理し
たい場合もある。
According to the data compression system of the present invention having such a configuration, the following operations can be obtained. As processing conditions for data compression, there are a case where a high compression ratio is required even though it takes time, and a case where it is desired to perform processing at a high speed by giving priority to the processing time over the compression ratio.

【0049】このような高圧縮率と高速化は相反する処
理条件であるが、本発明にあっては外部ハッシャ法に使
用するハッシュ・アドレスとして、部分列の参照番号、
即ちアドレスiに入力文字Kの要素の情報Km、即ち入
力文字コードのあるビット数Kmを加えたハッシュ・ア
ドレスとすることで、付加情報のビット数Kmに応じて
分割し、この連結リストの分割数を決める付加情報とし
て使用する文字コードの有効ビット数Kmを任意に指定
することで、高圧縮率或いは高速処理の各々に適合した
ダイナミックなデータ圧縮処理を適切に行うことができ
る。
Although such high compression ratio and high speed are conflicting processing conditions, in the present invention, the reference number of the subsequence,
That is, the hash value is obtained by adding the information Km of the element of the input character K to the address i, that is, the number of bits Km of the input character code, so that the hash value is divided according to the number of bits Km of the additional information. By arbitrarily specifying the effective bit number Km of the character code used as the additional information for determining the number, dynamic data compression processing suitable for each of the high compression rate and high-speed processing can be appropriately performed.

【0050】[0050]

【実施例】図2は本発明の辞書検索機能を備えたデータ
圧縮方式の一実施例を示した実施例構成図である。図2
において、処理対象となる原デ−タ(文字データ或いは
符号語データ)10はDMA(Direct Memory Access)
制御回路12を介して入力される。制御手段としてのM
PU14は入力された原デ−タ10を、1文字Kと、今
までの文字列の参照番号iに1文字Kの文字コードの要
素ビットKmを付加したハッシュ・アドレスを辞書検索
回路16の複数文字読込み回路18にセットした後、辞
書検索回路16を起動する。この1文字Kの文字コード
の要素ビットは、外部ハッシュ法における連結リストの
検索分割数を決めるもので、文字コードを8ビットとす
ると、要素ビットKmの有効ビット数を例えば上位から
選ぶことで、次の9種類の連結リストの検索分割数が得
られる。 このような連結リストの分割数において、処理対象とな
る256種の全文字種に一致する分割数256のときが
完全ハッシュとなり、辞書の検索は1回で済む。
FIG. 2 is a block diagram showing an embodiment of a data compression system having a dictionary search function according to the present invention. FIG.
In FIG. 1, original data (character data or codeword data) 10 to be processed is a DMA (Direct Memory Access).
It is input via the control circuit 12. M as control means
The PU 14 inputs the input original data 10 to one character K and a hash address obtained by adding the element bit Km of the character code of the one character K to the reference number i of the character string so far in the dictionary search circuit 16. After setting in the character reading circuit 18, the dictionary search circuit 16 is activated. The element bits of the character code of one character K determine the number of search divisions of the linked list in the external hash method. If the character code is 8 bits, the effective bit number of the element bit Km is selected from, for example, the upper bit. The following nine types of linked list search division numbers are obtained. In the number of divisions of such a linked list, when the number of divisions 256 matches all 256 character types to be processed, a complete hash is obtained, and only one dictionary search is required.

【0051】本発明にあっては、この9通りの中の分割
数の中から指定された処理条件に適合する分割数を指定
して符号化を行う。具体的な分割数の指定は、既に符号
化した直前の文字列の参照番号(辞書アドレス)iに加
える次の1文字Kの要素ビットKmのビット数をいくつ
にするかで指定できる。このための図1の原理説明図に
示した分割数指定手段4としての機能はMPU14のプ
ログラム制御により実現される。図3は入力データのサ
イズ(大きさ)に対する連結リストの検索分割数を示し
たもので、図3(a)に高圧縮の処理条件に適合した特
性を示し、図3(b)に高速の処理条件に適合した特性
を示す。
In the present invention, the encoding is performed by designating the number of divisions that meets the designated processing condition from among the nine division numbers. The specific number of divisions can be specified by setting the number of element bits Km of the next one character K to be added to the reference number (dictionary address) i of the character string immediately before being encoded. The function as the division number designating means 4 shown in the principle explanatory diagram of FIG. 1 for this purpose is realized by program control of the MPU 14. FIG. 3 shows the number of search divisions of the linked list with respect to the size (size) of the input data. FIG. 3 (a) shows characteristics suitable for high compression processing conditions, and FIG. Shows characteristics suitable for processing conditions.

【0052】即ち、時間はかかっても高圧縮率を得たい
場合には、図3(a)の入力データサイズに反比例する
分割数の指定を行う。この場合には、入力データサイズ
が大きい程、連結リストの分割数が少なくなり、辞書中
の一致する部分列の最大長を長くできるので、高圧縮率
が得られる。しかし、一致する部分列が長くなること
で、辞書の検索回数が増え、処理時間は長くなる。また
メモリ容量が一定の場合には、使用されないメモリを有
効に利用することができる。
In other words, when it is desired to obtain a high compression ratio even though it takes time, the number of divisions which is inversely proportional to the input data size shown in FIG. In this case, the larger the input data size, the smaller the number of divisions of the linked list, and the longer the maximum length of the matching subsequence in the dictionary, so that a high compression rate can be obtained. However, as the length of the matching subsequence increases, the number of dictionary searches increases, and the processing time increases. In addition, when the memory capacity is constant, unused memory can be effectively used.

【0053】一方、圧縮率は得られなくとも処理時間を
短縮したい場合には、図3(b)に示す入力データサイ
ズに比例した分割数を指定する。この場合には、入力デ
ータサイズに応じて分割数が増加し、最大分割数256
では完全ハッシュとなるため、1回の辞書検索で符号化
できる。またメモリ容量が一定の場合には、入力データ
サイズにかかわらず、圧縮率を犠牲にして全て一定時間
に処理できることを意味する。
On the other hand, when it is desired to reduce the processing time even if the compression ratio cannot be obtained, the number of divisions is specified in proportion to the input data size shown in FIG. In this case, the number of divisions increases according to the input data size, and the maximum number of divisions is 256.
Since it is a complete hash, it can be encoded by one dictionary search. Further, when the memory capacity is constant, it means that regardless of the input data size, all processing can be performed in a fixed time at the expense of the compression ratio.

【0054】図3(a)(b)に示すいずれかの条件に
適合した入力データサイズに基づく分割数の指定は、オ
ペレータが処理対象とするデータサイズを知ってMPU
14に対し分割数を直接指定してもよい。また入力デー
タの先頭にあるデータの大きさを示す値を予め設定して
おき、このデータの大きさをMPU14で読取って図3
(a)又は図3(b)に示す分割特性に従って自動的に
入力データの大きさに対する分最適な分割数に変換する
こともできる。このMPU14による入力データの大き
さを判別する機能が、図1の原理説明図に示した検索分
割数判定手段5としての機能である。
The designation of the number of divisions based on the input data size meeting any of the conditions shown in FIGS. 3A and 3B is performed by the operator knowing the data size to be processed and the MPU.
The number of divisions may be directly specified for 14. A value indicating the size of the data at the head of the input data is set in advance, and the size of the data is read by the MPU 14 to
According to the division characteristics shown in FIG. 3A or FIG. 3B, the number of divisions can be automatically converted to the optimal division number for the size of the input data. The function of the MPU 14 for determining the size of the input data is a function as the search division number determining means 5 shown in the principle explanatory diagram of FIG.

【0055】このための入力データ形式は図4(a)に
示すように、先頭に入力データの大きさを示す値があ
り、そのあとに本来のデータ系列が続く。更に符号化済
みのデータは図4(b)に示すように、先頭に符号化に
使用した辞書の大きさ、即ち使用辞書サイズ(分割数及
び各分割辞書の使用サイズ)があり、その後に符号化済
データが続く。
As shown in FIG. 4 (a), the input data format for this has a value indicating the size of the input data at the head, followed by the original data sequence. Further, as shown in FIG. 4B, the encoded data has, at the beginning, the size of the dictionary used for encoding, that is, the used dictionary size (the number of divisions and the used size of each divided dictionary). The converted data follows.

【0056】従って復元時には、先頭の辞書使用の大き
さから、復元に使用する最大の大きさの辞書を決めて復
元を行うことができる。再び図2を参照するに、辞書検
索路16は以後、辞書メモリ20より1文字伸ばした文
字列の候補文字を読込み、一致検査回路22で入力文字
と候補文字との一致検査(照合)を行ない、連結検出回
路24で候補文字の有無の検出を行なう。
Therefore, at the time of restoration, it is possible to determine the largest dictionary to be used for restoration based on the size of use of the leading dictionary, and perform restoration. Referring again to FIG. 2, the dictionary search path 16 reads the candidate character of the character string extended by one character from the dictionary memory 20, and the match check circuit 22 checks (matches) the match between the input character and the candidate character. The connection detection circuit 24 detects the presence or absence of a candidate character.

【0057】パイプライン制御回路26は、一致検査回
路22による入力文字と候補文字の照合と連結検出回路
24による候補文字の有無の検出とに並行して辞書メモ
リ20に次の候補文字の読出しをかける。このようにパ
イプライン制御回路26でパイプライン処理を行なうこ
とで、候補文字の複数個ごとの探索と照合処理が辞書メ
モリ20のサイクル・タイムで実行することができる。
The pipeline control circuit 26 reads out the next candidate character from the dictionary memory 20 in parallel with the matching between the input character and the candidate character by the match checking circuit 22 and the detection of the presence or absence of the candidate character by the connection detection circuit 24. Multiply. By performing the pipeline processing in the pipeline control circuit 26 in this manner, the search and collation processing for each of a plurality of candidate characters can be executed in the cycle time of the dictionary memory 20.

【0058】更に辞書検索回路16には連続アドレス回
路28が設けられ、連続アドレス回路28は連続アドレ
スを発生し、複数文字読込み回路18に辞書メモリ20
の連続アドレスに登録されているハッシュアドレス及び
候補文字を読出すようにする。LZW符号の符号化で
は、辞書メモリ20中の最大長一致する文字列を求め
る。従って、入力文字を付加して文字列を逐次一文字ず
つ伸ばしていき、候補文字がなくなったところで最大一
致長の文字列であることが分かる。このとき、最大一致
長文字列まではアドレスωを使用した参照番号で表わさ
れており、その参照番号ωを入出力ポ−ト30から外部
に圧縮された符号語code(ω)として出力する。図5は
図2の辞書探索回路16の詳細を示した実施例構成図で
ある。
Further, the dictionary search circuit 16 is provided with a continuous address circuit 28. The continuous address circuit 28 generates a continuous address.
The hash address and the candidate character registered at the consecutive addresses are read out. In encoding the LZW code, a character string that matches the maximum length in the dictionary memory 20 is obtained. Therefore, the input character is added and the character string is sequentially extended one character at a time. When the candidate character disappears, it is understood that the character string has the maximum matching length. At this time, the character string up to the maximum matching length character string is represented by a reference number using the address ω, and the reference number ω is output from the input / output port 30 as an externally compressed codeword code (ω). . FIG. 5 is a block diagram of an embodiment showing details of the dictionary search circuit 16 of FIG.

【0059】図5において、MPU1は最初に文字列の
1番目の文字参照番号i及び2番目の文字Kの8ビット
文字コードの例えば最上位ビットKm の組(Km,i)
をアドレス・レジスタ18−1にセットすると共に、入
力した2番目の文字Kをレジスタ22−1にセットす
る。次にパイプライン制御回路26に辞書検索回路16
の起動を指令する。
In FIG. 5, the MPU 1 firstly sets, for example, the most significant bit Km of the 8-bit character code of the first character reference number i and the second character K of the character string (Km, i).
Is set in the address register 18-1 and the input second character K is set in the register 22-1. Next, the dictionary search circuit 16 is added to the pipeline control circuit 26.
Command to start.

【0060】パイプライン制御回路26は、まずFF2
8−1をKm=0にリセットしてから辞書メモリ20に
読出をかける。FF24−2は辞書メモリ20のアドレ
スの最上位ビット (MSB)であり、アドレス・レジスタ1
8−1の内容が下位アドレスとなって辞書メモリ20の
配列 Firstに対応する領域を読み出す。ここで、辞書メ
モリ20の構成の一例を図6に示し、また図6に対応し
た辞書メモリ20の配列を図7に示す。尚、図6、図7
は説明を簡単にするためa,b,cの3文字の符号化を
例にとっている。
First, the pipeline control circuit 26
After resetting 8-1 to Km = 0, the dictionary memory 20 is read. The FF 24-2 is the most significant bit (MSB) of the address of the dictionary memory 20, and the address register 1
The area corresponding to the array First of the dictionary memory 20 is read with the contents of 8-1 as the lower address. Here, FIG. 6 shows an example of the configuration of the dictionary memory 20, and FIG. 7 shows an arrangement of the dictionary memory 20 corresponding to FIG. 6 and 7
Exemplifies the encoding of three characters a, b, and c for the sake of simplicity.

【0061】このメモリ配列において、first0,
1は本来のハッシュアドレスiに加えた次の1文字の最
上位ビットKmで決まり、 Km=0でfirst1 Km=1でfirst1 が指定される。
In this memory array, first0,
1 is determined by the most significant bit Km of the next one character added to the original hash address i, and Km = 0 designates first1 and Km = 1 designates first1.

【0062】従って、図5において第1番目の文字のア
ドレス(参照番号)iと2番目の文字の最上位ビットK
m をアドレスとして辞書メモリ20をアクセスすると、
このときFF28−1のリセットによりKm=0である
ことから、図7の辞書メモリの中の配列first0
(第1ファーストメモリ)及びextention(拡
張メモリ)に対応する領域を読み出す。辞書メモリ20
より読出した1ワードの内容の内、連結リスト・アドレ
スに対応する部分(first0)はアドレスレジスタ
18−1にセットし、候補文字K´に対応する部分(e
xtention)はレジスタ18−2にセットする。
Therefore, in FIG. 5, the address (reference number) i of the first character and the most significant bit K of the second character
When the dictionary memory 20 is accessed using m as an address,
At this time, since Km = 0 due to the reset of the FF 28-1, the array first0 in the dictionary memory of FIG.
An area corresponding to (first memory) and extension (extended memory) is read. Dictionary memory 20
A portion (first0) corresponding to the linked list address in the contents of one word read from the above is set in the address register 18-1, and a portion (e) corresponding to the candidate character K 'is set.
xtention) is set in register 18-2.

【0063】これと同時に、アドレスレジスタ18−1
に既に格納されていた内容のうち文字Kの最上位ビット
Kmを除く部分iをレジスタ18−3に移す。また、F
F28−1の内容KmをFF24−2に移す。この辞書
メモリ20の読出と平行して、レジスタ22−1中の入
力文字とレジスタ18−2中の候補文字が一致比較回路
22−2で比較照合される。
At the same time, the address register 18-1
Of the character K excluding the most significant bit Km of the character K is transferred to the register 18-3. Also, F
The content Km of F28-1 is moved to FF24-2. In parallel with the reading of the dictionary memory 20, the input characters in the register 22-1 and the candidate characters in the register 18-2 are compared and matched by the coincidence comparison circuit 22-2.

【0064】比較照合により入力文字Kと候補文字K´
が一致すると、パイプライン制御回路26は、次の入力
文字をレジスタ22−1にセットし、このときFF28
−1はリセットによりのままであることから、Km=0
となってアドレスレジスタ18−1で指定されるアドレ
スの辞書メモリ20の配列first0及びexten
tionに対応する領域を読出し、辞書メモリ20より
読出した1ワードの内容の内、連結リスト・アドレスに
対応する部分(first0)はアドレスレジスタ18
−1にセットし、候補文字K´に対応する部分(ext
ention)はレジスタ18−2にセットし、比較照
合を行い、以下同様に繰り返す。
The input character K and the candidate character K 'are obtained by comparison and collation.
Match, the pipeline control circuit 26 sets the next input character in the register 22-1, and at this time the FF 28
Since −1 remains after reset, Km = 0
The array first0 and extend in the dictionary memory 20 at the address specified by the address register 18-1
The area (first 0) corresponding to the linked list address is read from the address register 18 in the content of one word read from the dictionary memory 20.
-1 and the part (ext
ention) is set in the register 18-2, comparison and collation are performed, and so on.

【0065】このような比較照合の際に、比較照合と同
時にNOR回路24−1で辞書メモリ20から読出して
格納したアドレスレジスタ18−1の内容がオール0で
あるか否か判別されており、もし、オール0の場合、候
補文字がなくなったことが検出される。候補文字がなく
なったときのNOR回路24−1の出力はがMPU14
及びパイプライン制御回路26に与えられ、MPU14
は最後に比較照合が一致したメモリアドレスの値を符号
語として出力し、次の入力文字の探索に移る。次の文字
の探索についても同様に、レジスタ18−3の内容(既
に符号化済みの直前の参照番号)i及び入力文字Kの最
上位ビットKm の組をアドレス・レジスタ18−1にセ
ットすると共に、入力文字をレジスタ22−1にセット
して2文字目以降の探索処理を行う。
At the time of such comparison and collation, it is determined whether or not the contents of the address register 18-1 read from the dictionary memory 20 and stored at the same time as the comparison and collation are all 0s. If all 0s are found, it is detected that there are no more candidate characters. The output of the NOR circuit 24-1 when there are no more candidate characters is MPU14.
And MPU 14
Outputs the value of the memory address at the end of the comparison and collation as a codeword, and proceeds to search for the next input character. Similarly, in the search for the next character, a set of the contents i of the register 18-3 (the immediately preceding reference number already encoded) and the most significant bit Km of the input character K is set in the address register 18-1. , The input character is set in the register 22-1, and the search processing for the second and subsequent characters is performed.

【0066】一方、比較照合の結果が不一致であった場
合には、同じアドレスの配列nextの領域を読出して
アドレスレジスタ18−1にセットし、次の辞書メモリ
20の読出しを行い、一致する候補文字が得られるまで
配列nextの読出しを繰り返す。このような本発明の
辞書検索を図6、図7につき具体的に説明すると次のよ
うになる。
On the other hand, if the result of the comparison and collation does not match, the area of the array next having the same address is read and set in the address register 18-1, the next dictionary memory 20 is read, and the matching candidate is read. The reading of the array next is repeated until a character is obtained. Such a dictionary search of the present invention will be specifically described with reference to FIGS. 6 and 7 as follows.

【0067】いま図6、図7に辞書が構成された状態で
文字列「aaaa」を符号化するものとする。ここで文
字「a,c」の最上位ビットをKm=0、文字「b」の
最上位ビットをKm=1とする。まず1番目の文字
「a」の参照番号はi=1であり、また2番目の文字
「a」の文字コードの最上位ビットMSBがKm=0で
あるから、図7の辞書メモリ1のアドレス1の中のKm
=0で指定されるfirst0の内容10と、exte
ntionの候補文字「a」が読出される。この場合、
入力文字「a」と候補文字「a」とは一致することか
ら、次にfirst0から得られたアドレス10により
次辞書メモリをアクセスして候補文字「a」を読出し、
更に3番目の文字「a」の最上位ビットKm=0で指定
される配列first0の内容11を読出す。この3番
目の文字「a」についても候補文字「a」との一致が得
られ、同様に4番目及び5番目の文字を処理し、最後の
5番目の文字「a」の配列first0の内容は0にな
っていることから、候補文字が無くなったことを判別
し、最終アドレス12を入力文字列「aaaa」の符号
語として出力する。
Now, it is assumed that the character string "aaaa" is encoded in a state where the dictionaries are constructed as shown in FIGS. Here, it is assumed that the most significant bit of the character “a, c” is Km = 0, and the most significant bit of the character “b” is Km = 1. First, the reference number of the first character “a” is i = 1, and since the most significant bit MSB of the character code of the second character “a” is Km = 0, the address of the dictionary memory 1 in FIG. Km in 1
= 0 and the contents 10 of first0 specified by exte
The candidate character “a” of the ntion is read. in this case,
Since the input character "a" matches the candidate character "a", the next dictionary memory is accessed by the address 10 obtained from first0 to read out the candidate character "a",
Further, the content 11 of the array first0 specified by the most significant bit Km = 0 of the third character "a" is read. For the third character "a", a match with the candidate character "a" is obtained. Similarly, the fourth and fifth characters are processed, and the contents of the last fifth character "a" array first0 are Since it is 0, it is determined that there are no more candidate characters, and the final address 12 is output as the code word of the input character string "aaaa".

【0068】一方、文字列「abc」については、2番
目の文字の最上位ビットはKm=1であることから、ア
ドレス1の配列first1の内容4が読出され、候補
文字との一致を条件にアドレス5の候補文字を読出し、
最終的にアドレス6の候補文字との一致が得られ、入力
文字「abc」の符号語6を出力する。尚、候補文字と
の一致が得られなかった時のnextの検索は従来と同
じである。
On the other hand, as for the character string "abc", since the most significant bit of the second character is Km = 1, the contents 4 of the array "first1" of the address 1 are read out, and on condition that they match the candidate character. Read the candidate character at address 5,
Finally, a match with the candidate character at the address 6 is obtained, and the code word 6 of the input character "abc" is output. Note that the search for next when no match with the candidate character is obtained is the same as in the related art.

【0069】図8は本発明による符号化アルゴリズムの
フローチャートを示したもので、基本的には図15の従
来方式と同じである。相違点は、(1)ステップS5で
メモリアドレスとして直前に符号化された文字列の参照
番号iと次の1文字Kの要素ビット、例えば最上位ビッ
トKmとの組でメモリアドレスlを作成している点、
(2)ステップS6でl=(Km,i)の組で決まる辞
書メモリfist[l]の読出しで次のメモリアドレス
iの中の分割されたfirstを求めている点、(3)
更にステップS13のアドレスiへの候補文字の登録時
に、1つ前のアドレスi−1のfirst0,1のどち
らにアドレスiを登録するかを候補文字の最上位ビット
Kmに応じて区別している点、である。
FIG. 8 shows a flowchart of the encoding algorithm according to the present invention, which is basically the same as the conventional method shown in FIG. The difference is that (1) a memory address 1 is created by a combination of a reference number i of a character string coded immediately before as a memory address in step S5 and an element bit of the next character K, for example, the most significant bit Km. Point,
(2) In step S6, the dictionary memory first [l] determined by the set of l = (Km, i) is read to obtain the divided first in the next memory address i. (3)
Further, at the time of registering the candidate character to the address i in step S13, which of first0 and 1 of the previous address i-1 is registered with the address i is distinguished according to the most significant bit Km of the candidate character. ,.

【0070】尚、上記の実施例では候補文字をそのまま
辞書メモリに格納し、比較する方法を述べたが、メモリ
容量を減らすため、候補文字はハッシュ・アドレスに付
加したビットKmを除いたビットだけをもたせても良
い。また、本発明の他の実施例としてハッシュ・アドレ
スに入力文字の特定のビットKmを付加するのでなく、
入力文字を加工して作り出した情報のビットを付加して
も同様に実現できることは明らかである。
In the above embodiment, the method of storing the candidate characters as they are in the dictionary memory and comparing them is described. However, in order to reduce the memory capacity, the candidate characters consist of only the bits excluding the bit Km added to the hash address. May be provided. In another embodiment of the present invention, instead of adding a specific bit Km of an input character to a hash address,
It is obvious that the same can be realized by adding bits of information created by processing input characters.

【0071】[0071]

【発明の効果】以上説明したように本発明によれば、辞
書メモリの例えば入力データサイズに対する分割数の特
性を、高速化か高圧縮化かの処理条件に応じて選び、入
力データの大きさに応じて自動的に若しくは人為的に指
定することにより、符号化毎にダイナミックに決定して
符号化を行うようにすることで、高速化の要素と高圧縮
の要素をうまく融合させた符号化によるデータ圧縮を実
現できる。
As described above, according to the present invention, the characteristics of the number of divisions in the dictionary memory, for example, with respect to the input data size are selected according to the processing conditions of high speed or high compression, and the size of the input data is determined. By automatically or artificially specifying according to the encoding, by dynamically determining the encoding for each encoding and performing encoding, high-speed and high-compression elements are successfully fused Can realize data compression.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の圧縮方式の原理説明図FIG. 1 is a diagram illustrating the principle of a compression method according to the present invention.

【図2】本発明の実施例構成図FIG. 2 is a configuration diagram of an embodiment of the present invention.

【図3】本発明の入力データサイズに対する分割数を処
理条件に分けて示した特性図
FIG. 3 is a characteristic diagram showing the number of divisions with respect to the input data size according to the present invention divided into processing conditions.

【図4】本発明の入力データ形式及び符号化済みデータ
形式を示した説明図
FIG. 4 is an explanatory diagram showing an input data format and an encoded data format according to the present invention;

【図5】図2の辞書検索回路の詳細を示した実施例構成
FIG. 5 is a configuration diagram of an embodiment showing details of the dictionary search circuit of FIG. 2;

【図6】図2の符号化に使用する辞書メモリの構成を示
した説明図
FIG. 6 is an explanatory diagram showing a configuration of a dictionary memory used for encoding in FIG. 2;

【図7】図6に対応した辞書メモリの配置説明図FIG. 7 is an explanatory diagram of a layout of a dictionary memory corresponding to FIG. 6;

【図8】本発明の符号化アルゴリズムを示したフローチ
ャート
FIG. 8 is a flowchart showing an encoding algorithm of the present invention.

【図9】従来のLZW符号化アルゴリズムのフローチャ
ート
FIG. 9 is a flowchart of a conventional LZW encoding algorithm.

【図10】従来のLZW復号化アルゴリズムのフローチ
ャート
FIG. 10 is a flowchart of a conventional LZW decoding algorithm.

【図11】従来のLZW符号化の具体例説明図FIG. 11 is a diagram illustrating a specific example of conventional LZW encoding.

【図12】辞書構成例の説明図FIG. 12 is an explanatory diagram of a dictionary configuration example.

【図13】従来のLZW復号化の具体例説明図FIG. 13 is a diagram illustrating a specific example of conventional LZW decoding.

【図14】外部ハッシュ法のリスト構造説明図FIG. 14 is an explanatory diagram of a list structure of the external hash method

【図15】外部ハッシュ法を用いた従来のLZW符号の
符号化アルゴリズムを示したフローチャート
FIG. 15 is a flowchart showing a conventional LZW code encoding algorithm using an external hash method;

【図16】図15の符号化に使用する辞書メモリの構成
を示した説明図
16 is an explanatory diagram showing a configuration of a dictionary memory used for encoding in FIG.

【図17】図16に対応した辞書メモリの配置説明図FIG. 17 is an explanatory diagram of a layout of a dictionary memory corresponding to FIG. 16;

【符号の説明】[Explanation of symbols]

1:辞書 2:辞書検索手段 3:データ付加手段 4:判定手段 10:原データ 12:DMA制御回路 14:MPU 16:辞書検索手段(辞書検索回路) 18:複数文字読込み回路 18−1:アドレスレジスタ 18−2,18−3:レジスタ 20:辞書メモリ 22:一致検査回路 22−1:レジススタ 22−2:比較器 24:連結検出回路 24−1:NOR回路 24−2:FF 26:パイプライン制御回路 28−1:FF 1: Dictionary 2: Dictionary search means 3: Data addition means 4: Judgment means 10: Original data 12: DMA control circuit 14: MPU 16: Dictionary search means (dictionary search circuit) 18: Multiple character reading circuit 18-1: Address Register 18-2, 18-3: Register 20: Dictionary memory 22: Match check circuit 22-1: Resistor 22-2: Comparator 24: Connection detection circuit 24-1: NOR circuit 24-2: FF 26: Pipeline Control circuit 28-1: FF

フロントページの続き (72)発明者 中野 泰彦 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 平6−83575(JP,A) 特開 平4−219818(JP,A) 特開 平4−156110(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 5/00 G06F 17/30 G06T 9/00 H03M 7/40 H04N 1/41 Continuation of the front page (72) Inventor Yasuhiko Nakano 1015 Uedanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture Inside Fujitsu Limited (56) References JP-A-6-83575 (JP, A) JP-A-4-219818 (JP, A) JP-A-4-156110 (JP, A) (58) Fields investigated (Int. Cl. 6 , DB name) G06F 5/00 G06F 17/30 G06T 9/00 H03M 7/40 H04N 1/41

Claims (5)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】符号化済み文字列を相異なる部分列に分け
て各部分列毎に異なる参照番号を付加して辞書(1)に
登録しておき、入力文字列を前記辞書(1)の中の部分
列の内、最大長一致するものの参照番号で指定して符号
化することによりデータ圧縮する符号化手段(2)と、 前記部分列の検索に外部ハッシュ法を使用し、前記辞書
(1)に登録した部分列の参照番号(i)に入力文字
(K)の要素から抽出した情報(Km)を加えたハッシ
ュ・アドレスを生成することにより、前記付加情報(K
m)のビット数に応じた分割数の連結リストを生成して
検索する辞書検索手段(3)とを備えたデータ圧縮方式
に於いて、 前記部分列の参照番号(i)に加える入力文字(K)の
要素から抽出される情報(Km)のビット数を、適宜に
変えて連結リストの分割数を指定する分割数指定手段
(4)を設けたことを特徴とするデータ圧縮方式。
An encoded character string is divided into different sub-sequences, a different reference number is added to each sub-sequence and registered in a dictionary (1), and an input character string is stored in the dictionary (1). Encoding means (2) for compressing data by designating and encoding the subsequences having the maximum length among the subsequences by the reference number, and using the external hash method to search for the subsequences, By generating a hash address in which information (Km) extracted from the element of the input character (K) is added to the reference number (i) of the substring registered in 1), the additional information (K
m) a dictionary search means (3) for generating and searching a linked list of the number of divisions according to the number of bits of the input character string to be added to the reference number (i) of the subsequence. A data compression method comprising a division number designating means (4) for designating the number of divisions of a linked list by appropriately changing the number of bits of information (Km) extracted from elements of K).
【請求項2】請求項1記載のデータ圧縮方式に於いて、 前記分割数指定手段(4)は、前記部分列の参照番号
(i)に加える入力文字(K)の要素から抽出される情
報(Km)のビット数を、高速処理に適合したビット数
或いは高圧縮処理に適合したビット数に指定することを
特徴とするデータ圧縮方式。
2. The data compression method according to claim 1, wherein said division number designating means (4) extracts information extracted from an element of an input character (K) added to a reference number (i) of said partial sequence. A data compression method, wherein the number of bits of (Km) is designated as a number of bits suitable for high-speed processing or a number of bits suitable for high-compression processing.
【請求項3】請求項1記載のデータ圧縮方式に於いて、 前記分割数指定手段(4)は、前記部分列の参照番号
(i)に加える入力文字(K)の要素から抽出される情
報(Km)のビット数を、符号化対象とする文字列デー
タの大きさを示す情報に基づいて指定することを特徴と
するデータ圧縮方式。
3. A data compression method according to claim 1, wherein said division number designating means (4) extracts information extracted from an element of an input character (K) added to a reference number (i) of said partial sequence. A data compression method wherein the number of bits of (Km) is specified based on information indicating the size of character string data to be encoded.
【請求項4】請求項1記載のデータ圧縮方式に於いて、 文字列の先頭に付加された情報から分割数を判定する検
索分割数判定手段(5)を設けたことを特徴とするデー
タ圧縮方式。
4. A data compression method according to claim 1, further comprising a search division number determining means (5) for determining a division number from information added to a head of a character string. method.
【請求項5】請求項1記載のデータ圧縮方式に於いて、 前記分割数指定手段(4)は、前記部分列の参照番号
(i)に加える入力文字(K)の要素から抽出される情
報(Km)のビット数を、予め指定した分割数に対応し
たビット数とすることを特徴とするデータ圧縮方式。
5. A data compression method according to claim 1, wherein said division number designation means (4) extracts information extracted from an element of an input character (K) added to a reference number (i) of said partial sequence. A data compression method, wherein the number of bits of (Km) is a number of bits corresponding to a predetermined number of divisions.
JP3056704A 1991-03-20 1991-03-20 Data compression method Expired - Fee Related JP2952067B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3056704A JP2952067B2 (en) 1991-03-20 1991-03-20 Data compression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3056704A JP2952067B2 (en) 1991-03-20 1991-03-20 Data compression method

Publications (2)

Publication Number Publication Date
JPH0683573A JPH0683573A (en) 1994-03-25
JP2952067B2 true JP2952067B2 (en) 1999-09-20

Family

ID=13034861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3056704A Expired - Fee Related JP2952067B2 (en) 1991-03-20 1991-03-20 Data compression method

Country Status (1)

Country Link
JP (1) JP2952067B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022094108A (en) * 2020-12-14 2022-06-24 キオクシア株式会社 Compression device and control method
CN116151740B (en) * 2023-04-21 2023-08-01 北京明苑风华文化传媒有限公司 Inventory transaction data process safety management system and cloud platform

Also Published As

Publication number Publication date
JPH0683573A (en) 1994-03-25

Similar Documents

Publication Publication Date Title
JP3231105B2 (en) Data encoding method and data restoration method
JP2952067B2 (en) Data compression method
JP3038223B2 (en) Data compression method
JP3038233B2 (en) Data compression and decompression device
JP3038234B2 (en) Dictionary search method for data compression equipment
JP3350118B2 (en) Data encoding method and data restoration method
JP2952068B2 (en) Data compression and decompression method
JP3088740B2 (en) Data compression and decompression method
JP2825960B2 (en) Data compression method and decompression method
JP3115066B2 (en) Dictionary search method
JPH06161705A (en) Data encoding system and data decoding system
JP2999587B2 (en) Data compression and decompression method
JP3132774B2 (en) Data compression / decompression device
JP3388768B2 (en) Data compression and decompression method
JPH05252049A (en) Data compression processing system and data decoding processing system
JPH05152971A (en) Data compressing/restoring method
JP3053656B2 (en) Dictionary registration method in data compression
JP2772124B2 (en) Dictionary search method
JP3058931B2 (en) Dictionary registration method for data compression / decompression
JP3056268B2 (en) Dictionary registration method for data compression / decompression
JP3103172B2 (en) Dictionary search method
JP2999561B2 (en) Data compression and decompression device
JP2772125B2 (en) Dictionary search method
JP3012679B2 (en) Data compression method
JP2957801B2 (en) Data compression method and its restoration method

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990615

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees