JPH0993138A - Data compressor and data decoder - Google Patents

Data compressor and data decoder

Info

Publication number
JPH0993138A
JPH0993138A JP24950095A JP24950095A JPH0993138A JP H0993138 A JPH0993138 A JP H0993138A JP 24950095 A JP24950095 A JP 24950095A JP 24950095 A JP24950095 A JP 24950095A JP H0993138 A JPH0993138 A JP H0993138A
Authority
JP
Japan
Prior art keywords
data
dictionary
buffer
stored
node
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.)
Withdrawn
Application number
JP24950095A
Other languages
Japanese (ja)
Inventor
Yoichi Sakamoto
陽一 坂本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP24950095A priority Critical patent/JPH0993138A/en
Publication of JPH0993138A publication Critical patent/JPH0993138A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PROBLEM TO BE SOLVED: To configure the high speed data compressor and decoder by packing data of processing object in the unit of a prescribed integer multiple in the case of conducting data compression and decoding processing based on a dictionary by a moving window so as to arrange the codes at bit boundary. SOLUTION: The compressor is made up of an input file 1, a dictionary retrieval means 3, a coding means 4, an output file 5, a dictionary management means 6, a dictionary management data 7, a window buffer 11, and an advance read buffer 12. In the data compression decoding processing of the dictionary base by a moving window, dictionary reference codes are configured. The bit number of index of the dictionary, the sum of bit number of a longest matching length, and the bit number of generating data are selected to be a multiple of 8, a flag representing the dictionary reference code and a flag denoting raw data are packed in the unit of multiple of 8, then all the codes are arranged to a bit boundary of a multiple of 8 and the boundary matching processing in the unit of bits is not required.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、移動窓による辞書
をもとにしたデータの圧縮・復元を行なうデータ圧縮装
置及びデータ復元装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data compressing device and a data decompressing device for compressing and decompressing data based on a moving window dictionary.

【0002】[0002]

【従来の技術】稼動窓による辞書ベースのデータ圧縮方
法は、例えば、"The Data Compression Book Featuring
fast,efficient data compression techniques in C"
(MarkNelson, M & T Publishing, 1992)、邦題「データ
圧縮ハンドブック Cプログラマのための圧縮技術紹
介」(トッパン)の第7章から第8章に記述されている
ように、圧縮するデータに基づいて辞書を構成し、圧縮
するデータが辞書にあれば、辞書にインデックスと一致
長を符号化することにより圧縮を行なうものである。
2. Description of the Related Art A dictionary-based data compression method using an operating window is disclosed, for example, in "The Data Compression Book Featuring".
fast, efficient data compression techniques in C "
(MarkNelson, M & T Publishing, 1992), based on the data to be compressed, as described in Chapters 7 to 8 of the Japanese title "Data Compression Handbook: Introduction of Compression Techniques for C Programmers" (Toppan). If the dictionary constitutes data and data to be compressed exists in the dictionary, compression is performed by encoding the index and the matching length in the dictionary.

【0003】また、復元時には、圧縮時と同様に復元し
たデータに基づいて辞書を構成し、その辞書を参照する
ことにより復元を行なう。
At the time of decompression, a dictionary is constructed on the basis of the decompressed data as in the case of compression, and the decompression is performed by referring to the dictionary.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、上記従
来のデータ圧縮方法では、圧縮率を高めるために8の整
数倍ではないビット数の符号を使用するため、中央演算
部(CPU)のデータ処理の最少単位である1バイト
(=8ビット)の境界をまたいで、1つの符号が構成さ
れる。このため、圧縮・復元時に境界合わせの処理が必
要になり、処理速度が低下するという問題がある。
However, in the above-mentioned conventional data compression method, since the code of the number of bits which is not an integral multiple of 8 is used to increase the compression rate, the data processing of the central processing unit (CPU) is One code is formed across the boundary of 1 byte (= 8 bits) which is the minimum unit. For this reason, there is a problem in that a boundary alignment process is required at the time of compression / decompression, which reduces the processing speed.

【0005】本発明は、上記の課題に鑑みてなされたも
ので、その目的は、圧縮率を低下させることなしに、処
理速度の速いデータ圧縮装置及びデータ復元装置を提供
することである。
The present invention has been made in view of the above problems, and an object of the present invention is to provide a data compression apparatus and a data decompression apparatus which have a high processing speed without reducing the compression rate.

【0006】[0006]

【課題を解決するための手段】上記目的を達成するため
に、本発明は、所定の参照データが格納された辞書を検
索して入力データの圧縮を行なうデータ圧縮装置におい
て、前記辞書を検索して、前記入力データと前記参照デ
ータの最長一致を検索する検索手段と、前記検索手段に
て前記最長一致の検索ができた場合、第1のデータの符
号化を行なう第1の符号化手段と、前記検索手段にて前
記最長一致が検索できない場合、第2のデータの符号化
を行なう第2の符号化手段と、前記符号化されたデータ
の格納と前記辞書の容量の管理を行なう手段とを備え、
前記第1のデータ及び前記第2のデータは、所定の整数
単位に詰めて符号化され、出力される。
In order to achieve the above object, the present invention provides a data compression apparatus which searches a dictionary in which predetermined reference data is stored and compresses input data. A search means for searching for the longest match between the input data and the reference data, and a first coding means for coding the first data if the search means finds the longest match. A second encoding means for encoding the second data when the longest match cannot be retrieved by the retrieval means, and means for storing the encoded data and managing the capacity of the dictionary. Equipped with
The first data and the second data are packed and encoded in a predetermined integer unit and output.

【0007】また、他の発明は、バッファに格納された
符号化データを復元するデータ復元装置において、前記
符号化データの種別を判定する判定手段と、前記判定手
段にて前記符号化データが第1のデータであると判定さ
れた場合、前記バッファを参照した第1の復号化を行な
う手段と、前記判定手段にて前記符号化データが第2の
データであると判定された場合、第2の復号化を行なう
手段とを備え、前記第1のデータ及び前記第2のデータ
は、所定の整数単位に詰められたデータである。
According to another aspect of the invention, in a data decompression device for decompressing encoded data stored in a buffer, a determining means for determining a type of the encoded data, and the determining means determines that the encoded data is If it is determined that the encoded data is the first data, the means for performing the first decoding with reference to the buffer; and if the determination means determines that the encoded data is the second data, the second And a means for performing the decoding of the first data and the second data are data packed in a predetermined integer unit.

【0008】[0008]

【発明の実施の形態】以下、添付図面を参照して、本発
明に係る実施の形態を詳細に説明する。
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.

【0009】まず、LZSS圧縮法の原理について説明
する。
First, the principle of the LZSS compression method will be described.

【0010】図2は、LZSS圧縮法の原理を説明する
ための図であり、ここでは、圧縮処理途中の状態を示し
ている。
FIG. 2 is a diagram for explaining the principle of the LZSS compression method, and here shows a state during the compression process.

【0011】図2の(a),(b)において、11は窓
バッファであり、既に圧縮符号が出力された生データの
内、最後の4079バイトを格納する。12は先読みバ
ッファであり、まだ圧縮符号が出力されていない生デー
タの内、先頭の17バイトを格納する。
In FIGS. 2A and 2B, reference numeral 11 is a window buffer, which stores the last 4079 bytes of the raw data for which the compression code has already been output. A read-ahead buffer 12 stores the first 17 bytes of the raw data for which the compression code has not been output yet.

【0012】辞書は、窓バッファ11と先読みバッファ
12により構成される。この辞書には、窓バッファ11
の位置1から位置4079まで、4079のデータが登
録されている。各データの長さは、先読みバッファ12
の大きさである“17”である。先読みバッファ12内
のデータは、辞書の先頭になることはないが、それ以降
のデータとなることがある。例えば、位置1のデータは
“FABCDEF…”であり、後の16バイトは先読み
バッファ12の中にある。
The dictionary is composed of a window buffer 11 and a look-ahead buffer 12. This dictionary has a window buffer 11
The data of 4079 are registered from the position 1 to the position 4079. The length of each data is the read-ahead buffer 12
The size is “17”. The data in the prefetch buffer 12 may not be the head of the dictionary, but may be the subsequent data. For example, the data at position 1 is "FABCDEF ..." And the remaining 16 bytes are in the prefetch buffer 12.

【0013】符号化は、以下のように行なわれる。The encoding is performed as follows.

【0014】図2の(a)において、窓バッファ11に
は“…ABCDFFFFF”が、先読みバッファ12に
は“ABCDEF…”がそれぞれ格納されている。ま
ず、窓バッファ11及び先読みバッファ12から構成さ
れる辞書を検索し、先読みバッファ12に格納されてい
るデータと最長一致するデータを求める。
In FIG. 2A, "... ABCDFFFFF" is stored in the window buffer 11, and "ABCDEF ..." Is stored in the prefetch buffer 12. First, the dictionary composed of the window buffer 11 and the look-ahead buffer 12 is searched to find the data that matches the data stored in the look-ahead buffer 12 at the longest.

【0015】この検索の結果、2以上の長さで最長一致
するデータが見つかった場合、辞書を参照することを示
すフラグ(=0)、最長一致したデータの窓バッファ1
1における位置、及び一致長をそれぞれ符号化する。一
致長の範囲は、2〜17であるため、符号化のときにこ
れから2を引いて、0〜15の範囲の符号に符号化す
る。図2の(a)においては、最長一致するデータは
“ABCD”であり、窓バッファ11における位置は
9、一致長は4となる。
As a result of this search, when the longest matching data having a length of 2 or more is found, a flag (= 0) indicating that the dictionary is referred to, window buffer 1 of the longest matching data.
The position at 1 and the match length are encoded respectively. The range of the matching length is 2 to 17, and therefore, 2 is subtracted from this at the time of encoding to encode a code in the range of 0 to 15. In FIG. 2A, the longest matching data is “ABCD”, the position in the window buffer 11 is 9, and the matching length is 4.

【0016】次に、窓バッファ11、及び先読みバッフ
ァ12に格納されたデータを符号化した生データのバイ
ト数、すなわち、一致長だけ左シフトする。先読みバッ
ファ12からあふれたデータ(図2の(a)においては
“ABCD”)は、窓バッファ11に右側から格納され
る。さらに、まだ先読みバッファ12に格納されていな
い生データを先頭から符号化した生データのバイト数だ
け、先読みバッファ12に右側から格納する(図2の
(b)参照)。なお、窓バッファ11の左側からあふれ
たデータは失われる。
Next, the data stored in the window buffer 11 and the look-ahead buffer 12 are left-shifted by the number of bytes of the encoded raw data, that is, the matching length. The data overflowing from the prefetch buffer 12 (“ABCD” in FIG. 2A) is stored in the window buffer 11 from the right side. Further, the raw data not yet stored in the prefetch buffer 12 is stored in the prefetch buffer 12 from the right side by the number of bytes of the raw data encoded from the beginning (see (b) of FIG. 2). Data overflowing from the left side of the window buffer 11 is lost.

【0017】上記の検索の結果、2以上の長さで最長一
致するデータが見つからなかった場合、生データである
ことを示すフラグ(=1)、及び1バイトの生データを
符号化する。図2の(b)において、先読みバッファ1
2の先頭データ“E”が窓バッファ11の中に存在せ
ず、最長一致が見つからないので、符号化される1バイ
トの生データは“E”となる。
As a result of the above search, if the longest matching data having a length of 2 or more is not found, a flag (= 1) indicating that it is raw data and 1 byte of raw data are encoded. In FIG. 2B, the prefetch buffer 1
Since the first data “E” of 2 does not exist in the window buffer 11 and the longest match is not found, the 1-byte raw data to be encoded is “E”.

【0018】そして、2以上の長さで最長一致するデー
タが見つかった場合と同様に、窓バッファ11及び先読
みバッファ12に格納されたデータを、符号化された生
データのバイト数、すなわち1だけ左シフトし、さら
に、まだ先読みバッファ12に格納されていない生デー
タの先頭の1バイトを先読みバッファ12に右側から格
納する。
Then, as in the case where the longest matching data having a length of 2 or more is found, the data stored in the window buffer 11 and the look-ahead buffer 12 is converted into the number of bytes of the encoded raw data, that is, only 1. The left shift is performed, and further, the first 1 byte of the raw data not yet stored in the prefetch buffer 12 is stored in the prefetch buffer 12 from the right side.

【0019】図3の(a),(b),(c)は、LZS
S圧縮法の符号の例を示す図である。図中、13は識別
ファイルであり、それが“1”である場合は、符号が生
データであることを示し、“0”の場合には辞書の参照
であることを示す。
FIGS. 3A, 3B and 3C show LZS.
It is a figure which shows the example of the code of the S compression method. In the figure, 13 is an identification file, and when it is "1", it indicates that the code is raw data, and when it is "0", it indicates that it is a dictionary reference.

【0020】14は、長さが12ビットの位置フィール
ドであり、最長一致したデータの窓バッファ11におけ
る位置を示す。15は、長さが4ビットの長さフィール
ドであり、最長一致したデータの一致量を示す。そし
て、16は、長さが8ビットの生データフィールドであ
り、生データを示す。
Reference numeral 14 is a position field having a length of 12 bits, which indicates the position of the longest matched data in the window buffer 11. Reference numeral 15 is a length field having a length of 4 bits and indicates the amount of matching of the longest matching data. 16 is a raw data field having a length of 8 bits and indicates raw data.

【0021】図2の(a)の場合には、図3の(a)に
示すように、識別フィールド13には辞書の参照である
ことを示す0がセットされる。また、位置フィールド1
4には、最長一致したデータの窓バッファにおける位置
である9(2進表記では“00000000100
1”)がセットされる。また、長さフィールド15に
は、最長一致したデータの一致長4から2を引いた値で
ある2(2進表記では“0010”)がセットされる。
In the case of FIG. 2 (a), as shown in FIG. 3 (a), 0 is set in the identification field 13 to indicate that it is a dictionary reference. Also, position field 1
4 is the position of the longest matching data in the window buffer 9 (in binary notation, “00000000100”).
1 ") is set. In the length field 15, 2 (" 0010 "in binary notation) which is a value obtained by subtracting 2 from the matching length 4 of the longest matching data is set.

【0022】また、図2の(b)の場合、図3の(b)
に示すように、識別フィールド13には、符号が生デー
タであることを示す1が、生データフィールド16に
は、生データ“E”(2進表記で01000101)が
セットされる。
In the case of FIG. 2 (b), FIG. 3 (b)
As shown in, the identification field 13 is set to 1 indicating that the code is raw data, and the raw data field 16 is set to raw data “E” (binary notation 01000101).

【0023】上記の方法によれば、長さ2以上の最長一
致が見つかった場合、生データよりも少ないビット数に
符号化されるため、データ圧縮される。上述の例では、
“ABCD”の4バイト(32ビット)が、1つの符号
(17ビット)に圧縮される。
According to the above method, when the longest match having a length of 2 or more is found, the data is compressed because it is encoded with a smaller number of bits than the raw data. In the example above,
4 bytes (32 bits) of "ABCD" are compressed into one code (17 bits).

【0024】さらに、図3の(c)に示すように、識別
フィールド13、位置フィールド14、長さフィールド
15ともに“0”にて表される符号は、データの終了を
示す特別な符号で、圧縮符号の最後に出力される。
Further, as shown in FIG. 3C, the code represented by "0" in the identification field 13, the position field 14, and the length field 15 is a special code indicating the end of the data. It is output at the end of the compression code.

【0025】次に、復元方法について説明する。Next, the restoration method will be described.

【0026】復元時には、圧縮時と同様に窓バッファ1
1を使用するが、先読みバッファ12は使用しない。窓
バッファ11には、既に復元された生データの内の最後
の17バイトを格納する。
At the time of restoration, the window buffer 1
1 is used but the look-ahead buffer 12 is not used. The window buffer 11 stores the last 17 bytes of the already restored raw data.

【0027】図2の(a)において、図3の(a)に示
す符号が入力されると、まず、識別フィールド13を調
べる。この識別フィールド13には、符号が辞書の参照
であることを示すがセットされているので、位置フィー
ルド14から、最長一致したデータの窓バッファ11に
おける位置を示す9を得、長さフィールド15から3を
取り出し、これに圧縮時に引いた値2を加えて、一致長
として4を得る。
In FIG. 2A, when the code shown in FIG. 3A is input, the identification field 13 is checked first. Since the identification field 13 is set to indicate that the code is a dictionary reference, the position field 14 is used to obtain 9 which indicates the position of the longest matching data in the window buffer 11, and the length field 15 is used. 3 is taken out and the value 2 subtracted at the time of compression is added to this to obtain 4 as the matching length.

【0028】ここで得た、最長一致したデータの窓バッ
ファ11における位置9と、一致長4とを用いて、窓バ
ッファ11を参照し、復元された生データとして“AB
CD”を得る。そして、窓バッファ11に格納されたデ
ータを、復元したバイト数、すなわち、一致長だけ左シ
フトする。さらに、復元したデータを窓バッファ11に
右側から格納する。(図2の(b)) 図2の(b)において、図3の(b)に示す符号が入力
されると、まず、識別フィールド13を調べる。この識
別フィールド13には、符号が生データであることを示
す1がセットされているので、生データフィールドから
生データ“E”(2進表記で“01000101”)を
取り出す。そして、窓バッファ11に格納されたデータ
を、復元したバイト数、すなわち、1だけ左シフトし、
さらに、復元したデータを窓バッファ11に右側から格
納する。
The position 9 of the longest matching data in the window buffer 11 and the matching length 4 obtained here are used to refer to the window buffer 11 to obtain "AB" as the restored raw data.
CD ″ is obtained, and the data stored in the window buffer 11 is left-shifted by the restored number of bytes, that is, the matching length. Further, the restored data is stored in the window buffer 11 from the right side (see FIG. 2). (B)) In Fig. 2 (b), when the code shown in Fig. 3 (b) is input, first, the identification field 13 is checked, and it is confirmed that the code is raw data. Since the value 1 is set, the raw data “E” (“01000101” in binary notation) is extracted from the raw data field, and the data stored in the window buffer 11 is restored by the number of bytes, that is, 1 Just shift left,
Further, the restored data is stored in the window buffer 11 from the right side.

【0029】図1は、本発明の実施の形態に係る圧縮装
置の機能構成を示すブロック図である。図中、1は入力
ファイルで、圧縮するデータが格納されている。12は
先読みバッファで、まだ圧縮されていないデータの内、
先頭のデータを格納する。また、11は窓バッファで、
既に圧縮されたデータの内、最後のデータを生データの
形式で格納する。なお、窓バッファ11は、先読みバッ
ファ12とともに辞書を構成する。
FIG. 1 is a block diagram showing a functional configuration of a compression device according to an embodiment of the present invention. In the figure, 1 is an input file in which data to be compressed is stored. 12 is a read-ahead buffer, of the data that has not been compressed yet,
Store the top data. 11 is a window buffer,
The last data of the already compressed data is stored in the raw data format. The window buffer 11 constitutes a dictionary together with the look-ahead buffer 12.

【0030】3は辞書検索手段であり、辞書管理データ
7を参照して、先読みバッファ11に格納されているデ
ータに最長一致する窓バッファ12の位置を検索し、最
長一致した窓バッファ12の位置と、一致長を出力す
る。また、4は符号化手段であり、辞書検索手段3によ
り最長一致が検索されたときは、辞書参照符号であるこ
とを示すフラグ、検索された辞書の位置を示すインデッ
クス、及び最長一致長を符号化する。また、この符号化
手段4は、辞書検索手段3により最長一致が検索されな
かったときには、生データ符号であることを示すフラ
グ、及び生データとして先読みバッファ11の先頭デー
タを符号化する。
Reference numeral 3 is a dictionary retrieval means, which refers to the dictionary management data 7 to retrieve the position of the window buffer 12 which is the longest match with the data stored in the prefetch buffer 11, and which is the longest match position of the window buffer 12. And the match length is output. Reference numeral 4 denotes an encoding unit which, when the dictionary search unit 3 searches for the longest match, encodes a flag indicating the dictionary reference code, an index indicating the position of the searched dictionary, and the longest match length. Turn into. When the longest match is not searched by the dictionary search means 3, the coding means 4 codes the flag indicating the raw data code and the head data of the prefetch buffer 11 as the raw data.

【0031】さらに、5は出力ファイルで、符号化手段
4が出力した符号を格納し、6は辞書管理手段で、窓バ
ッファ11に、既に圧縮されたデータを格納し、辞書検
索手段3が検索に必要とする辞書管理データ7を維持・
管理する。この辞書管理データ7としては、辞書検索手
段3が辞書の検索に必要とするデータが格納されてい
る。
Further, 5 is an output file, which stores the code output by the encoding means 4, 6 is dictionary management means, which stores the already compressed data in the window buffer 11, and the dictionary search means 3 searches. Maintain dictionary management data 7 required for
to manage. As the dictionary management data 7, data necessary for the dictionary search means 3 to search the dictionary is stored.

【0032】図4は、本実施の形態に係る圧縮装置の概
略構成を示すブロック図である。図中、21はCPUで
あり、ROM24に記憶された制御プログラムに従っ
て、本圧縮装置全体の制御を行なう。22は磁気ディス
クであり、図1に示す入力ファイル1、出力ファイル5
を含む。また、23はRAMであり、図1に示す先読み
バッファ12、窓バッファ11、辞書管理データ7を含
む。
FIG. 4 is a block diagram showing a schematic configuration of the compression apparatus according to this embodiment. In the figure, reference numeral 21 denotes a CPU, which controls the entire compression apparatus according to a control program stored in the ROM 24. Reference numeral 22 denotes a magnetic disk, which has an input file 1 and an output file 5 shown in FIG.
including. Reference numeral 23 denotes a RAM, which includes the look-ahead buffer 12, the window buffer 11, and the dictionary management data 7 shown in FIG.

【0033】なお、ROM24は、図1の辞書検索手段
3、符号化手段4、辞書管理手段6を構成するプログラ
ムを記憶する。
The ROM 24 stores the programs constituting the dictionary retrieval means 3, the encoding means 4 and the dictionary management means 6 shown in FIG.

【0034】図5は、本実施の形態に係る圧縮装置が処
理する符号の例を示す。ここでは、符号は、1ブロック
=17ワード(1ワード=2バイト)で構成され、1ブ
ロックに16の符号が含まれる。
FIG. 5 shows an example of codes processed by the compression apparatus according to this embodiment. Here, the code is composed of 1 block = 17 words (1 word = 2 bytes), and one block includes 16 codes.

【0035】図5の(a)に示す、各ブロックの先頭の
1ワードはフラグワード31であり、このブロックに含
まれる符号が辞書参照符号であるか(0のとき)、生デ
ータであるか(1のとき)を示す。また、残りの16ワ
ードは、各ワードに対応するフラグワード31のビット
が0のとき辞書参照符号、そのビットが1のとき生デー
タとなる。
One word at the head of each block shown in FIG. 5A is a flag word 31, and whether the code included in this block is a dictionary reference code (when 0) or raw data. (When 1) is shown. The remaining 16 words become the dictionary reference code when the bit of the flag word 31 corresponding to each word is 0, and the raw data when the bit is 1.

【0036】32は辞書参照符号で、図5の(b)に示
すように、長さが12ビットの位置フィールド14と、
長さが4ビットの長さフィールド15から成る。この位
置フィールド14は、図3の(a)と同様、最長一致し
た窓バッファの位置を示し、図5の(b)の例では、9
(2進表記で“000000001001”)となって
いる。また、長さフィールド15は、図3の(b)と同
様に、最長一致したデータの一致長から2を引いた値を
示し、図5の(b)の例では2(2進表記で“001
0”)となっている。
Reference numeral 32 is a dictionary reference code, and as shown in FIG. 5B, a position field 14 having a length of 12 bits,
It consists of a length field 15 of length 4 bits. This position field 14 indicates the position of the longest-matching window buffer, as in the case of FIG. 3A, and in the example of FIG.
(Binary notation "000000001001"). Further, the length field 15 indicates a value obtained by subtracting 2 from the matching length of the longest matching data, as in the case of FIG. 3B. In the example of FIG. 001
0 ").

【0037】また、33は生データ符号で、図5の
(c)に示すように、長さが16ビットの生データ符号
で、ここでは、生データ“EF”(2進表記で“010
0010101000110”)となっている。34は
終了符号で、図5の(d)に示すように、位置フィール
ド14、長さフィールド15がともに0の特別な辞書参
照符号であり、データの終了を示すために圧縮符号の最
後に出力される。
Reference numeral 33 is a raw data code, which is a raw data code having a length of 16 bits, as shown in FIG. 5C. Here, raw data "EF" (in binary notation "010") is used.
0010101000110 "). 34 is an end code, which is a special dictionary reference code in which both the position field 14 and the length field 15 are 0, as shown in FIG. Therefore, it is output at the end of the compression code.

【0038】図6は、窓バッファ11、先読みバッファ
12の構成を示す図である。同図に示すBUFは、41
13個のワードを格納する配列を有し、0から4112
のインデックスを持つ。このBUFは、4096個のワ
ードを格納するリングバッファとして扱われる。このた
め、BUF[4095]の次のデータはBUF[0]と
なる。
FIG. 6 is a diagram showing the configurations of the window buffer 11 and the look-ahead buffer 12. The BUF shown in FIG.
It has an array that stores 13 words, 0 to 4112
With an index of. This BUF is treated as a ring buffer that stores 4096 words. Therefore, the data next to BUF [4095] is BUF [0].

【0039】先読みバッファ12は、レジスタCPによ
り先頭位置が示され、レジスタSIZEによりワード数
が示される。そして、圧縮処理の進行にともなってレジ
スタCPの値が変化し、それに従って、BUF内の位置
が変化する。
In the prefetch buffer 12, the head position is indicated by the register CP and the number of words is indicated by the register SIZE. Then, the value of the register CP changes as the compression process progresses, and the position in the BUF changes accordingly.

【0040】図6の(a)に示す例では、CP=10
0、SIZE=17となっており、この場合、先読みバ
ッファ12は、BUF[100]〜BUF[116]に
より構成される。また、窓バッファ11は、先読みバッ
ファ12の直後の位置を先頭とし、先読みバッファ12
の直前の位置を最後とする。図6の(a)の例では、窓
バッファ11は、BUF[117]〜BUF[409
5]、BUF[0]〜BUF[99]により構成され
る。すなわち、図6の(a)の例では、論理的には、図
6の(b)に示すように構成される。
In the example shown in FIG. 6A, CP = 10
0, SIZE = 17, and in this case, the prefetch buffer 12 is composed of BUF [100] to BUF [116]. In addition, the window buffer 11 has a position immediately after the prefetch buffer 12 as a head, and the prefetch buffer 12
The position immediately before is the last. In the example of FIG. 6A, the window buffer 11 has BUF [117] to BUF [409].
5] and BUF [0] to BUF [99]. That is, the example of FIG. 6A is logically configured as shown in FIG.

【0041】BUF[4096]〜BUF[4112]
の17ワードは、ガードバッファ41であり、検索時の
データ比較の際にリングバッファの折り返しの処理を不
要にするため、常にBUFの先頭17ワードと同じデー
タが格納される。
BUF [4096] to BUF [4112]
The 17 words are the guard buffer 41, and the same data as the first 17 words of the BUF is always stored in order to eliminate the need for the return processing of the ring buffer at the time of data comparison at the time of search.

【0042】図7,図8は、図1の辞書管理データ7の
構成を示す図である。この辞書管理データ7は、図7に
示すように、PARENT,YOUNGER,ELDE
Rの3つの配列により構成される。
7 and 8 are diagrams showing the structure of the dictionary management data 7 of FIG. As shown in FIG. 7, the dictionary management data 7 includes PARENT, YOUNGER, and ELDE.
It is composed of three sequences of R.

【0043】上記の辞書検索手段3が辞書を検索すると
き、BUFの0〜4095のエントリは、各々その位置
で始まる17ワードのデータ列として扱われる。上記の
PARENT,YOUNGER,ELDERの3つの配
列は、BUFに格納されているデータ列の大小関係に応
じて「整列2分探索木」を構成する。
When the dictionary searching means 3 searches the dictionary, the entries 0 to 4095 of BUF are treated as a 17-word data string starting at that position. The above three arrays PARENT, YOUNGER, and ELDER form an "aligned binary search tree" according to the size relationship of the data strings stored in the BUF.

【0044】PARENTは、4097個のワードを格
納する配列を有し、整列2分探索木の各ノードの親ノー
ドの番号を格納する。未使用のノードでは、未使用であ
ることを示す特別な番号である4096を格納する。
PARENT has an array for storing 4097 words and stores the number of the parent node of each node of the sorted binary search tree. An unused node stores 4096, which is a special number indicating that it is unused.

【0045】YOUNGERは、4097個のワードを
格納する配列を有し、整列2分探索木の各ノードの小さ
い子ノードの番号を格納する。小さい子がない場合は、
その子がないことを示す特別な番号である4096を格
納する。また、ELDERは、4354個のワードを格
納する配列で、整列2分探索木の各ノードの大きい子ノ
ードの番号を格納する。大きい子がない場合は、その子
がないことを示す特別な番号である4096を格納す
る。
YOUNGER has an array for storing 4097 words and stores the number of a small child node of each node of the sorted binary search tree. If you don't have a small child,
It stores 4096 which is a special number indicating that the child does not exist. ELDER is an array that stores 4354 words, and stores the number of the large child node of each node of the sorted binary search tree. When there is no large child, 4096 which is a special number indicating that there is no large child is stored.

【0046】なお、PARENT[4096],YOU
NGAER[4096],ELDER[4096]は、
未使用、または子がない場合の処理を容易にするための
エントリであり、使用されない。また、ELDER[4
097]〜ELDER[4353]の257のエントリ
は、整列2分探索木の根のノードを示すためのエントリ
である。本実施の形態では、ハッシュ関数により分類さ
れた、257個の整列2分探索木を持つ。
It should be noted that PARENT [4096], YOU
NGAER [4096] and ELDER [4096] are
It is an entry that is used to facilitate processing when it is unused or has no children, and is not used. In addition, ELDER [4
The entries 257 of 097] to ELDER [4353] are entries for indicating the root node of the sorted binary search tree. In the present embodiment, there are 257 aligned binary search trees classified by the hash function.

【0047】図7の例では、レジスタCP=5の場合を
示し、BUF[0]〜BUF[4]で始まる5つのデー
タ列が、整列2分探索木を構成している。ここでは、説
明の都合上、これら5つのデータ列は同じハッシュ関数
を持つため、同じ整列2分探索木に含まれているものと
する。
The example of FIG. 7 shows a case where the register CP = 5, and five data strings starting with BUF [0] to BUF [4] form an aligned binary search tree. Here, for convenience of explanation, these five data strings have the same hash function, and are therefore assumed to be included in the same sorted binary search tree.

【0048】図8に示すように、ELDER[409
7]は、整列2分探索木の根ノードである0を指してい
る。このノードの持つ値は、図7に示すように、BUF
[0]から始まるデータ列である“DDEEBBAAC
C…”で、さらに、ELDER[0]は、ノード0の大
きい子ノードである1を指し、YOUNGER[0]
は、ノード0の小さい子ノードである2を指している。
これらのノードの値は、それぞれBUF[1]から始ま
る“EEBBAACC…”、及びBUF[2]から始ま
る“BBAACC…”である。
As shown in FIG. 8, ELDER [409
7] indicates 0 which is the root node of the sorted binary search tree. The value held by this node is BUF, as shown in FIG.
"DDEEBBAAC" which is a data string starting from [0]
In addition, ELDER [0] indicates C, which is a large child node of node 0, and YOUNGER [0].
Indicates 2 which is a small child node of node 0.
The values of these nodes are "EEBBAACC ..." Starting from BUF [1] and "BBAACC ..." Starting from BUF [2], respectively.

【0049】また、ノード1には子がなく、ELDER
[1]及びYOUNGER[1]には、子がないことを
示す特別な値である4096が格納されている。
Also, node 1 has no children and ELDER
[1] and YOUNGER [1] store 4096, which is a special value indicating that there are no children.

【0050】以下、本実施の形態に係る圧縮装置におけ
る処理手順について詳細に説明する。
The processing procedure in the compression apparatus according to this embodiment will be described in detail below.

【0051】図9〜図11は、本実施の形態に係る圧縮
装置における圧縮処理の手順(図4に示すROM24に
格納されているプログラム)を示すフローチャートであ
る。なお、なお、以下の説明では、バッファBUF、親
ノードPARENT、大きい子ノードELDER、小さ
い子ノードYOUNGER、カレントポインターCP、
ビットパターンレジスタBIT、フラグレジスタFLA
G、データバッファDATA、一致長レジスタLEN、
一致位置ポインタMP、データインデックスI、カウン
タCOUNT、ノードレジスタTがRAM23上に構成
されているものとする。
9 to 11 are flow charts showing the procedure of the compression process (the program stored in the ROM 24 shown in FIG. 4) in the compression device according to the present embodiment. In the following description, the buffer BUF, parent node PARENT, large child node ELDER, small child node YOUNGER, current pointer CP,
Bit pattern register BIT, flag register FLA
G, data buffer DATA, match length register LEN,
It is assumed that the coincidence position pointer MP, the data index I, the counter COUNT, and the node register T are configured on the RAM 23.

【0052】また、フラグレジスタFLAGは、符号が
辞書参照符号であるか、生データであるかを示す16ビ
ットのフラグである。データバッファDATAは、辞書
参照符号、または生DATAを格納する16ワードの配
列である。
The flag register FLAG is a 16-bit flag indicating whether the code is a dictionary reference code or raw data. The data buffer DATA is a 16-word array that stores a dictionary reference code or raw DATA.

【0053】図9,図10のフローチャートに示す圧縮
処理が起動されると、そのステップS1では、初期化処
理を行なう。具体的には、入力ファイル1及び出力ファ
イル5を開き、カレントポインタCP、一致長レジスタ
LEN、データインデックスI、及びフラグレジスタF
LAGに0を格納し、ビットパターンレジスタBITに
32768(2進表記で“1000000000000
000”)を格納する。また、親ノードPARENT、
大きい子ノードELDER、小さい子ノードYOUNG
ERの各エントリに未使用、あるいは子がないことを示
す特別な値である4096を格納する。
When the compression process shown in the flow charts of FIGS. 9 and 10 is started, the initialization process is performed in step S1. Specifically, the input file 1 and the output file 5 are opened, the current pointer CP, the match length register LEN, the data index I, and the flag register F.
0 is stored in LAG, and 32768 is stored in the bit pattern register BIT (in binary notation, “1000000000000000”).
000 "). Also, the parent node PARENT,
Large child node ELDER, small child node YOUNG
Each entry of ER stores 4096, which is a special value indicating that it is unused or has no children.

【0054】続くステップS2にて、入力ファイル1か
ら17ワードを読み取り、それをバッファBUF[0]
〜BUF[16]に格納する。同時に、同じデータをガ
ードバッファ41、すなわち、BUF[4096]〜B
UF[4112]に格納する。ステップS3では、先読
みバッファサイズSIZEに、ステップS2にて読み取
ったワード数を格納する。なお、このワード数は、通常
は17であるが、入力ファイル1のサイズが17ワード
より小さい場合は、それに応じて小さくなる。
In the following step S2, 17 words are read from the input file 1 and are read in the buffer BUF [0].
-Stored in BUF [16]. At the same time, the same data is sent to the guard buffer 41, that is, BUF [4096] to B.
Store in UF [4112]. In step S3, the number of words read in step S2 is stored in the prefetch buffer size SIZE. The number of words is normally 17, but when the size of the input file 1 is smaller than 17 words, it becomes smaller accordingly.

【0055】ステップS4にて、ノード0を整列2分探
索木に挿入する。続くステップS5(図10)では、先
読みバッファサイズと0を比較し、それが0でなけれ
ば、まだ圧縮が終了していないので、処理をステップS
6に進める。
In step S4, node 0 is inserted into the sorted binary search tree. In a succeeding step S5 (FIG. 10), the prefetch buffer size is compared with 0, and if it is not 0, the compression has not been completed yet, so the process is performed in the step S
Proceed to 6.

【0056】ステップS6では、一致長レジスタLEN
の値を調べ、それが2より小さい場合は、生データを出
力するので、ステップS7に進む。ステップS7では、
生データであることを示すフラグをセットするため、フ
ラグレジスタFLAGとビットパターンレジスタBIT
の論理和を、フラグレジスタFLAGに格納する。そし
て、ステップS8で、BUF[CP]、すなわち、先読
みバッファの先頭データを生データとして、DATA
[I]に格納する。
In step S6, the match length register LEN
Is checked, and if it is smaller than 2, raw data is output, and the process proceeds to step S7. In step S7,
The flag register FLAG and the bit pattern register BIT are set to set a flag indicating that the data is raw data.
Is stored in the flag register FLAG. Then, in step S8, BUF [CP], that is, the head data of the prefetch buffer is used as raw data, and DATA is set.
Store in [I].

【0057】次に、ステップS9において、カウンタC
OUNTに、処理したワード数である1を格納して、処
理をステップS12に進める。
Next, in step S9, the counter C
The number of processed words, 1 is stored in OUNT, and the process proceeds to step S12.

【0058】一方、上記のステップS6にて、一致長レ
ジスタLENの値が2以上のときは、辞書参照符号を出
力するので、ステップS10で、まず、カレントポイン
タCPから一致位置ポインタMPを引くことにより、カ
レントポインタCPからの相対インデックスに変換す
る。次いで、4095(2進表記で“00001111
11111111”)との論理積をとることにより、下
位12ビットを取り出し、さらに、16倍することによ
り4ビット左シフトする。そして、これに、一致長レジ
スタLENから2を引いた値を加えることにより、辞書
参照符号が符号化され、これをDATA[I]に格納す
る。
On the other hand, when the value of the match length register LEN is 2 or more in step S6, the dictionary reference code is output. Therefore, in step S10, the match position pointer MP is first subtracted from the current pointer CP. Is converted to a relative index from the current pointer CP. Then 4095 (in binary notation "00001111"
11111111 ″) and the lower 12 bits are taken out and further multiplied by 16 to shift left by 4 bits. Then, by adding a value obtained by subtracting 2 from the match length register LEN to this. , The dictionary reference code is encoded and stored in DATA [I].

【0059】次に、ステップS11にて、一致長レジス
タLENの値をカウンタCOUNTに格納して、ステッ
プS12に進む。このステップS12では、データイン
デックスIに1を加え、続くステップS13では、ステ
ップS14で読み取られるデータが格納される位置であ
る、ノード(CP+17)and4095を整列2分探
索木から削除する。そして、ステップS14で1ワード
読み取る。ここで読み取ったデータが有効であれば、ス
テップS15にて、ファイル終了でないと判定され、処
理をステップS16に進める。
Next, in step S11, the value of the match length register LEN is stored in the counter COUNT, and the process proceeds to step S12. In this step S12, 1 is added to the data index I, and in the following step S13, the node (CP + 17) and 4095, which is the position where the data read in step S14 is stored, is deleted from the aligned binary search tree. Then, in step S14, one word is read. If the data read here is valid, it is determined in step S15 that the file has not ended, and the process proceeds to step S16.

【0060】ステップS16では、ステップS14にて
読み取ったデータを、カレントポインタCPの17ワー
ド先である、BUF[(CP+17)and4095]
に格納する。ここで、4095との論理積をとることに
より、リングバッファの折返しが行なわれる。また、ガ
ードバッファ41にデータを格納するため、BUF[C
P+17]に同じデータを格納する。そして、処理をス
テップS18に進める。
In step S16, the data read in step S14 is BUF [(CP + 17) and 4095], which is 17 words ahead of the current pointer CP.
To be stored. Here, the ring buffer is folded back by taking the logical product with 4095. Further, since data is stored in the guard buffer 41, BUF [C
The same data is stored in [P + 17]. Then, the process proceeds to step S18.

【0061】ステップS14にて読み取ったデータが無
効である場合には、ステップS15にてファイル終了と
判定され、ステップS17で、新規のデータがないの
で、先読みバッファサイズを小さくするために先読みバ
ッファサイズSIZEから1を引き、ステップS18に
進む。
If the data read in step S14 is invalid, it is determined in step S15 that the file has ended, and in step S17 there is no new data, so the read-ahead buffer size is reduced in order to reduce the read-ahead buffer size. Subtract 1 from SIZE and proceed to step S18.

【0062】ステップS18では、カレントポインタC
Pに1を加え、4095との論理積をとることにより、
先読みバッファの先頭を1つ進める。続くステップS1
9では、先読みバッファサイズSIZEの値を判断し、
それが0ならば、ステップS21に進む。しかし、バッ
ファサイズが0でなければ、ノードCPの最長一致を検
索すると同時に挿入する。最長一致はLENに、一致し
たノード番号はMPに格納される(ステップS20)。
なお、このステップS20の処理の詳細については、後
述する。
At step S18, the current pointer C
By adding 1 to P and taking the logical product with 4095,
Advance the start of the prefetch buffer by one. Continuing step S1
In 9, the value of the prefetch buffer size SIZE is determined,
If it is 0, the process proceeds to step S21. However, if the buffer size is not 0, the longest match of the node CP is searched and inserted at the same time. The longest match is stored in LEN, and the matched node number is stored in MP (step S20).
The details of the processing in step S20 will be described later.

【0063】上記の処理ステップは、ステップS13か
らステップS22に至るループの中で複数回実行される
ことがあるが、そのたびにLEN,MPは上書きされる
ので、LEN,MPには最後の値が残る。
The above processing steps may be executed a plurality of times in the loop from step S13 to step S22, but since LEN and MP are overwritten each time, the last value of LEN and MP is set. Remains.

【0064】図9のステップS21では、カウンタCO
UNTから1を引き、ステップS22にて、このカウン
タCOUNTが0でないと判断されれば、処理をステッ
プS13に戻す。しかし、カウンタCOUNTが0であ
れば、符号化されたワード数だけ先読みバッファ12に
新しいデータが追加されているので、ステップS23の
処理に進む。
In step S21 of FIG. 9, the counter CO
Subtract 1 from UNT, and if it is determined in step S22 that the counter COUNT is not 0, the process returns to step S13. However, if the counter COUNT is 0, since new data has been added to the prefetch buffer 12 by the number of encoded words, the process proceeds to step S23.

【0065】ステップS23では、ビットパターンレジ
スタBITを2で割ることにより、右シフトする。続く
ステップS24では、ビットパターンレジスタBITの
値を調べ、それが0でない場合、処理をステップS5に
戻す。しかし、その値が0の場合には、16の符号を出
力したのでステップS25に進み、フラグレジスタFL
AG、及びデータバッファDATAを出力ファイル5に
書き込む。そして、ステップS26にて、データインデ
ックスI、フラグレジスタFLAGに0を格納し、ビッ
トパターンレジスタBITに32768を格納して、ス
テップS5に戻る。
In step S23, the bit pattern register BIT is right-shifted by dividing it by 2. In the following step S24, the value of the bit pattern register BIT is checked, and if it is not 0, the process is returned to step S5. However, when the value is 0, since the code of 16 is output, the process proceeds to step S25 and the flag register FL
The AG and the data buffer DATA are written in the output file 5. Then, in step S26, the data index I, 0 is stored in the flag register FLAG, 32768 is stored in the bit pattern register BIT, and the process returns to step S5.

【0066】上記のステップS5で、先読みバッファサ
イズSIZEが0であると判定されたときには、圧縮が
終了しているのでステップS27に進み、終了符号を出
力するために、DATA[I]に0を格納する。そし
て、ステップS28で、フラグレジスタFLAG、デー
タバッファDATAを出力ファイル5に書き込む。続く
ステップS29では、入力ファイル1、出力ファイル5
を閉じる等の終了処理を行ない、本圧縮処理を終了す
る。
When it is determined in the above step S5 that the prefetch buffer size SIZE is 0, the compression has been completed, so the flow advances to step S27, and DATA [I] is set to 0 in order to output the end code. Store. Then, in step S28, the flag register FLAG and the data buffer DATA are written in the output file 5. In the following step S29, the input file 1 and the output file 5
The end processing such as closing is performed, and the main compression processing is ended.

【0067】図11は、図10に示すステップS20の
検索挿入処理の詳細フローチャートである。
FIG. 11 is a detailed flowchart of the search / insert processing of step S20 shown in FIG.

【0068】図11において、まず、ステップS41に
て、一致長レジスタLENに0を格納する。次に、ステ
ップS42において、ノードCPのハッシュ値を計算
し、4097を加えた値を整列2分探索木の根ノードを
示すノード番号として、ノードレジスタTに格納する。
上記のハッシュ値を計算するためのハッシュ関数は、 (BUF[CP]*65536+BUF[CP+1])%257 …(1) とする。ここで、%は剰余演算を示し、%の左辺を25
7で割った剰余がハッシュ関数値となる。
In FIG. 11, first, in step S41, 0 is stored in the match length register LEN. Next, in step S42, the hash value of the node CP is calculated, and the value obtained by adding 4097 is stored in the node register T as the node number indicating the root node of the sorted binary search tree.
The hash function for calculating the above hash value is (BUF [CP] * 65536 + BUF [CP + 1])% 257 (1). Here,% indicates a remainder operation, and the left side of% is 25
The remainder divided by 7 becomes the hash function value.

【0069】次に、ステップS43にて、ELDER
[T]と4096を比較する。ELDER[T]が40
96であれば、整列2分探索木は空なので、ノードCP
を根とする整列2分探索木を構成するために、処理をス
テップS56に進める。しかし、ELDER[T]が4
096よりも小さければ、根ノードが存在するので、ス
テップS44にて、ELDER[T]、すなわち、根ノ
ードのノード番号をTに格納して、ステップS45に進
む。
Next, in step S43, ELDER
Compare [T] with 4096. ELDER [T] is 40
If it is 96, the aligned binary search tree is empty, so the node CP
In order to form an aligned binary search tree having as a root, the process proceeds to step S56. However, ELDER [T] is 4
If it is smaller than 096, there is a root node, so in step S44, ELDER [T], that is, the node number of the root node is stored in T, and the flow proceeds to step S45.

【0070】ステップS45では、ノードCPとノード
Tの一致長を求める。続くステップS46では、一致長
と、既に得られている最長一致長であるLENと比較す
る。ステップS45で得られた一致長がLENより大き
くない場合は、ステップS51に進む。
In step S45, the matching length between the node CP and the node T is obtained. In a succeeding step S46, the match length is compared with the already obtained longest match length LEN. If the match length obtained in step S45 is not greater than LEN, the process proceeds to step S51.

【0071】上記のステップS45で得られた一致長が
LENよりも大きい場合には、新しい最長一致長が得ら
れたとして、ステップS47に進み、ステップS45で
得られた一致長をLENに格納し、また、ノードレジス
タTの値をMPに格納する。続くステップS48では、
一致長レジスタLENと、先読みバッファサイズSIZ
Eとを比較する。ここでの判定で、LEN≧SIZEで
あれば、これ以上長い一致は得られないので、ステップ
S49に進み、先読みバッファサイズSIZEの値をL
ENに格納する。そして、ステップS50にて、ノード
CPとノードTは同じデータ列なので、ノードTをノー
ドCに置き換えたうえで、ノードTを削除し、本検索挿
入処理を終了する。
If the match length obtained in step S45 is larger than LEN, it is determined that a new longest match length is obtained, the process proceeds to step S47, and the match length obtained in step S45 is stored in LEN. , And stores the value of the node register T in MP. In the following step S48,
Match length register LEN and prefetch buffer size SIZ
Compare with E. If the determination here is that LEN ≧ SIZE, a longer match cannot be obtained, so the flow advances to step S49 to set the value of the prefetch buffer size SIZE to L.
Store in EN. Then, in step S50, since the node CP and the node T are the same data string, the node T is replaced with the node C, the node T is deleted, and this search insertion processing is ended.

【0072】一方、ステップS48にて、LEN<SI
ZEと判定されれば、より長い一致が見つかる可能性が
あるので、処理をステップS51に進める。このステッ
プS51では、ノードCPのデータ列とノードTのデー
タ列を比較する。
On the other hand, in step S48, LEN <SI
If it is determined to be ZE, a longer match may be found, so the process proceeds to step S51. In this step S51, the data string of the node CP and the data string of the node T are compared.

【0073】すなわち、ノードCPのデータ列>ノード
Tのデータ列であれば、大きい子ノードをたどるため
に、ステップS52に進み、ELDER[T]と409
6を比較する。そして、ELDER[T]=4096で
あれば、ノードTには大きい子がいないので、ノードC
PをノードTの大きい子とするために、ステップS56
に進む。しかし、ELDER[T]≦4095であれ
ば、ノードTに大きい子がいるので、ステップS53に
進み、大きい子のノード番号、すなわちELDER
[T]の値をTに格納して、処理をステップS54に戻
す。
That is, if the data sequence of the node CP> the data sequence of the node T, the process proceeds to step S52 to trace a large child node, and ELDER [T] and 409
Compare 6 Then, if ELDER [T] = 4096, then there is no large child in node T, so node C
To make P a large child of node T, step S56
Proceed to. However, if ELDER [T] ≦ 4095, the node T has a large child, so the process proceeds to step S53, and the node number of the large child, that is, ELDER
The value of [T] is stored in T, and the process returns to step S54.

【0074】また、ステップS51にて、ノードCPの
データ列<ノードTのデータ列であれば、小さい子ノー
ドをたどるために、ステップS54に進み、YOUNG
ER[T]と4096を比較する。YOUNGER
[T]=4096であれば、ノードTには小さい子がい
ないので、ノードCPをノードTの小さい子とするため
に、ステップS57にて、CPの値をYOUNGER
[T]に格納し、ステップS58に進む。
If the data sequence of the node CP <the data sequence of the node T in step S51, the process proceeds to step S54 to trace the small child node, and YOUNG
Compare ER [T] with 4096. YOUNGER
If [T] = 4096, the node T has no small child. Therefore, in order to make the node CP a small child of the node T, the value of CP is YOUNGER in step S57.
Store in [T] and proceed to step S58.

【0075】他方、ステップS54にて、YOUNGE
R[T]<4096と判定されれば、ノード[T]には
小さい子がいるので、ステップS55に進み、小さい子
のノード番号、すなわちYOUNGER[T]の値をT
に格納し、ステップS54に戻る。
On the other hand, in step S54, YOUNGE
If it is determined that R [T] <4096, the node [T] has a small child. Therefore, the process proceeds to step S55, and the node number of the small child, that is, the value of YOUNGER [T] is set to T.
And the process returns to step S54.

【0076】ステップS56では、ノードCPをノード
Tの大きい子とするために、CPの値をELDER
[T]に格納する。続くステップS58では、ノードC
Pの親ノードをノードTとするために、Tの値をPAR
ENT[CP]に格納する。また、ノードCPの子ノー
ドをともになし、とするために、子がないことを示す特
別な値である4096をELDER[CP],YOUN
GER[CP]に格納して、本検索挿入処理を終了す
る。
In step S56, the value of CP is set to ELDER in order to make node CP a large child of node T.
Store in [T]. In the following step S58, the node C
The value of T is PAR so that the parent node of P is the node T.
Store in ENT [CP]. Further, in order to have both child nodes of the node CP, ELDER [CP], YOUN is set to 4096, which is a special value indicating that there are no children.
After storing in GER [CP], this search insertion processing ends.

【0077】次に、本発明の実施の形態に係る復元装置
について説明する。。
Next, the restoration device according to the embodiment of the present invention will be described. .

【0078】図12は、本発明の実施の形態に係る復元
装置の機能構成を示すブロック図である。図中、51は
入力バッファであり、図5に示す圧縮符号を格納する。
52は復号化手段であり、入力バッファ51に格納され
た圧縮符号、及び出力バッファ53に格納された復元デ
ータを参照して、圧縮符号の復号化を行なう。なお、出
力バッファ53は、復号化手段52によって復元された
データを格納する。
FIG. 12 is a block diagram showing a functional configuration of the restoration device according to the embodiment of the present invention. In the figure, 51 is an input buffer, which stores the compression code shown in FIG.
Reference numeral 52 denotes a decoding means, which refers to the compressed code stored in the input buffer 51 and the restored data stored in the output buffer 53 to decode the compressed code. The output buffer 53 stores the data restored by the decoding means 52.

【0079】図13は、本実施の形態に係る復元装置の
具体的な構成を示すブロック図である。図中、54は入
力インターフェースであり、外部からの圧縮符号を受信
する。55はCPUであり、ROM57に記憶された制
御プログラムに従って本復元装置全体の制御を行なう。
56はRAMであり、図12に示す入力バッファ51、
出力バッファ53を含む。なお、ROM57は、復号化
手段52を構成するプログラムを記憶する。
FIG. 13 is a block diagram showing a specific structure of the restoration device according to the present embodiment. In the figure, 54 is an input interface for receiving a compression code from the outside. Reference numeral 55 denotes a CPU, which controls the entire restoration apparatus according to a control program stored in the ROM 57.
56 is a RAM, which is the input buffer 51 shown in FIG.
It includes an output buffer 53. The ROM 57 stores the program forming the decryption means 52.

【0080】図14は、図12の入力バッファ51の構
成を示す図である。図14の(a)に示すように、入力
バッファ51は配列IBUFにより構成されている。こ
のIBUFの各エントリは、図5に示す符号と同じ形式
の、図14の(b)に示す構造体、すなわち、1ワード
のFLAGと16ワードの配列DATAにより構成され
ている。
FIG. 14 is a diagram showing the structure of the input buffer 51 of FIG. As shown in FIG. 14A, the input buffer 51 is composed of an array IBUF. Each entry of this IBUF is composed of the structure shown in FIG. 14B, that is, the structure shown in FIG. 14B, that is, a 1-word FLAG and a 16-word array DATA.

【0081】図14の(a)に示すIBUFのJ番目の
エントリのFLAGは、IBUF[J].FLAGと記
述される。また、IBUFのJ番目のエントリのDAT
AのI番目のエントリは、IBUF[J].DATA
[I]ト記述される。ただし、後述する、図15に示す
フローチャートでは、それぞれFLAG、DATA
[I]と略記している。
The FLAG of the J-th entry of IBUF shown in FIG. 14A is IBUF [J]. It is described as FLAG. Also, the DAT of the J-th entry of IBUF
The I-th entry of A is IBUF [J]. DATA
[I] is described. However, in the flowchart shown in FIG. 15, which will be described later, FLAG and DATA are respectively set.
It is abbreviated as [I].

【0082】次に、本実施の形態に係る復元装置におけ
る処理手順について、図15に示すフローチャートを参
照して説明する。なお、以下の説明では、入力バッファ
IBUF、出力バッファBUF、カレントポインタC
P、ビットパターンレジスタBIT、一致長レジスタL
EN、一致位置ポインタMP、データインデックスI、
入力インデックスJが、図13のRAM56上に構成さ
れている。また、入力バッファIBUFには、入力イン
ターフェース54により受信した圧縮符号があらかじめ
格納されている。
Next, the processing procedure in the restoration apparatus according to this embodiment will be described with reference to the flowchart shown in FIG. In the following description, the input buffer IBUF, the output buffer BUF, the current pointer C
P, bit pattern register BIT, match length register L
EN, coincidence position pointer MP, data index I,
The input index J is configured on the RAM 56 of FIG. Further, the compression code received by the input interface 54 is stored in advance in the input buffer IBUF.

【0083】まず、図15のステップS101にて初期
化を行なう。具体的には、カレントポインタCP、入力
インデックスJに0を格納する。次のステップS102
にて、データインデックスIに0を格納し、ビットパタ
ーンレジスタBITに32768(2進表記で“100
0000000000000”)を格納する。
First, initialization is performed in step S101 of FIG. Specifically, 0 is stored in the current pointer CP and the input index J. Next step S102
, 0 is stored in the data index I, and 32768 (binary notation “100” is stored in the bit pattern register BIT).
0000000000 ") is stored.

【0084】ステップS103では、IBUF[J].
FLAGと、ビットパターンレジスタBITとの論理積
をとり、その結果が0であれば、辞書参照符号なので、
ステップS106に処理を進める。しかし、結果が0で
なければ、生データ符号なのでステップS104に進
み、IBUF[J].DATA[I]を生データとして
出力バッファBUF[CP]に格納する。そして、ステ
ップS105では、カレントポインタCPに1を加え、
続くステップS112に進む。
In step S103, IBUF [J].
The logical product of FLAG and the bit pattern register BIT is taken, and if the result is 0, it is a dictionary reference code,
The process proceeds to step S106. However, if the result is not 0, the code is a raw data code, and the process proceeds to step S104, and IBUF [J]. DATA [I] is stored in the output buffer BUF [CP] as raw data. Then, in step S105, 1 is added to the current pointer CP,
Then, the process proceeds to step S112.

【0085】ステップS103にて辞書参照符号である
と判断された場合には、ステップS106で、IBUF
[J].DATA[I]と0を比較する。このIBUF
[J].BUF[I]が0の場合は、終了符号なので、
ステップS115に進む。しかし、IBUF[J].B
UF[I]が0でない場合には、ステップS107に進
み、IBUF[J].DATA[I]と15(2進表記
で“0000000000001111”)との論理積
をとることにより、下位4ビットを取り出し、さらに、
2を加えることにより一致長を得、これを一致長レジス
タLENに格納する。
If it is determined in step S103 that it is the dictionary reference code, in step S106, IBUF
[J]. Compare DATA [I] with 0. This IBUF
[J]. When BUF [I] is 0, it is an end code, so
It proceeds to step S115. However, IBUF [J]. B
If UF [I] is not 0, the process proceeds to step S107, and IBUF [J]. By taking the logical product of DATA [I] and 15 (“00000000000011111” in binary notation), the lower 4 bits are extracted, and further,
The match length is obtained by adding 2 and is stored in the match length register LEN.

【0086】ステップS108では、IBUF[J].
DATA[I]を16で割ることにより4ビット右シフ
トし、上位12ビットを取り出す。この値をカレントポ
インタCPから引くことにより、一致位置を得、これを
一致位置ポインタMPに格納する。続くステップS10
9で、BUF[MP]の値をBUF[CP]に格納し、
次のステップS110にて、カレントポインタCP及び
一致位置ポインタMPに1を加え、一致長レジスタLE
Nから1を引く処理を行なう。そして、ステップS11
1にて、一致長レジスタLENと0を比較する。
At step S108, IBUF [J].
Divide DATA [I] by 16 to shift right by 4 bits and take out the upper 12 bits. The match position is obtained by subtracting this value from the current pointer CP, and this is stored in the match position pointer MP. Continuing step S10
At 9, the value of BUF [MP] is stored in BUF [CP],
In the next step S110, 1 is added to the current pointer CP and the match position pointer MP, and the match length register LE is added.
The process of subtracting 1 from N is performed. Then, step S11
At 1, the match length register LEN is compared with 0.

【0087】ステップS111で、LEN>0と判定さ
れれば、転送がまだ終了していないので、ステップS1
09に戻る。しかし、LEN=0であれば、ステップS
112に進む。このステップS112では、データイン
デックスIに1を加え、また、ビットパターンレジスタ
BITを2で割ることにより、1ビット右シフトする。
If it is determined in step S111 that LEN> 0, the transfer has not been completed.
Return to 09. However, if LEN = 0, step S
Proceed to 112. In this step S112, 1 is added to the data index I, and the bit pattern register BIT is divided by 2 to shift right by 1 bit.

【0088】ステップS113では、ビットパターンレ
ジスタBITと0を比較する。BIT≠0の場合には、
ステップS103に戻るが、BIT=0の場合には、1
6の符号を復元した場合なので、ステップS114に進
み、入力インデックスJに1を加えて、ステップS10
2の処理に戻る。
In step S113, 0 is compared with the bit pattern register BIT. If BIT ≠ 0,
Returning to step S103, if BIT = 0, 1
Since the code of 6 has been restored, the process proceeds to step S114, 1 is added to the input index J, and step S10 is performed.
It returns to the process of 2.

【0089】なお、ステップS106にて、IBUF
[J].DATA[I]=0の場合は、終了符号なの
で、ステップS115に進み、出力バッファBUFに復
元されたデータを出力インターフェース58に出力する
等の終了処理を行なって、本復元処理を終了する。
In step S106, IBUF
[J]. If DATA [I] = 0, the code is an end code, so the process advances to step S115 to perform end processing such as outputting the data restored in the output buffer BUF to the output interface 58, and the present restoration processing ends.

【0090】以上説明したように、本実施の形態によれ
ば、移動窓による辞書ベースのデータ圧縮・復元処理に
おいて、辞書参照符号を構成する、辞書のインデックス
のビット数、最長一致長のビット数の和、及び生データ
のビット数がともに8の倍数であるとともに、辞書参照
符号であることを示すフラグ、及び生データであること
を示すフラグを8の倍数単位に詰めることにより、全て
の符号を8の倍数のビット境界に整列でき、ビット単位
の境界合わせ処理が不要になるので、処理速度を高める
ことができる。
As described above, according to the present embodiment, in the dictionary-based data compression / decompression process using the moving window, the number of bits of the index of the dictionary and the number of bits of the longest matching length that constitute the dictionary reference code. And the number of bits of raw data are both multiples of 8, and by packing the flag indicating that it is a dictionary reference code and the flag indicating that it is raw data in units of multiples of 8, all codes Can be aligned with a bit boundary that is a multiple of 8, and the alignment processing in bit units is not required, so that the processing speed can be increased.

【0091】なお、上記の実施の形態においては、生デ
ータのビット数=16、辞書参照符号のインデックスフ
ィールドのビット数+長さフィールドのビット数=1
6、辞書参照符号が生データかを区別するフラグを詰め
る数=16としているが、これに限定されず、例えば、
これらを可変の8の倍数とし、生データのビット数=3
2等としてもよい。
In the above embodiment, the number of bits of raw data = 16, the number of bits of the index field of the dictionary reference code + the number of bits of the length field = 1
6, the number for packing the flag for distinguishing whether the dictionary reference code is raw data = 16, but is not limited to this, and for example,
These are variable multiples of 8 and the raw data bit number = 3
It may be 2 or the like.

【0092】また、上述の実施の形態では、辞書参照符
号か生データかを区別するフラグを詰める数を固定にし
ているが、例えば、これを可変の8の倍数とし、フラグ
の前にフラグの数、またはこれに相当するバイト数、ワ
ード数等を示すようにしてもよい。
Further, in the above-mentioned embodiment, the number for packing the flag for distinguishing between the dictionary reference code and the raw data is fixed. However, for example, this is set to a variable multiple of 8 and the flag is added before the flag. The number, or the number of bytes, the number of words or the like corresponding thereto may be indicated.

【0093】本発明は、複数の機器から構成されるシス
テムに適用しても、1つの機器からなる装置に適用して
も良い。また、本発明は、システムあるいは装置にプロ
グラムを供給することによって実施される場合にも適用
できることは言うまでもない。この場合、本発明に係る
プログラムを格納した記憶媒体が本発明を構成すること
になる。そして、該記憶媒体からそのプログラムをシス
テムあるいは装置に読み出すことによって、そのシステ
ムあるいは装置が、あらかじめ定められた仕方で動作す
る。
The present invention may be applied to a system composed of a plurality of devices or an apparatus composed of a single device. Further, it goes without saying that the present invention can be applied to the case where it is implemented by supplying a program to a system or an apparatus. In this case, the storage medium storing the program according to the present invention constitutes the present invention. Then, by reading the program from the storage medium into the system or device, the system or device operates in a predetermined manner.

【0094】[0094]

【発明の効果】以上説明したように、本発明によれば、
移動窓による辞書をもとにデータ圧縮・復元処理を行な
う際、処理の対象となるデータを所定の整数倍単位に詰
めることで、符号をバイト(またはワード)境界に整列
することができ、ビット単位の整列処理を行なう必要が
なくなるので、高速のデータ圧縮・復元装置を構成する
ことができる。
As described above, according to the present invention,
When performing data compression / decompression processing based on a moving window dictionary, by packing the data to be processed in units of a specified integer multiple, the code can be aligned on a byte (or word) boundary, Since it is not necessary to perform the unit alignment processing, a high speed data compression / decompression device can be configured.

【0095】[0095]

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

【図1】本発明の実施の形態に係る圧縮装置の機能構成
を示すブロック図である。
FIG. 1 is a block diagram showing a functional configuration of a compression device according to an embodiment of the present invention.

【図2】LZSS圧縮法の原理を説明するための図であ
る。
FIG. 2 is a diagram for explaining the principle of the LZSS compression method.

【図3】LZSS圧縮法の符号の例を示す図である。FIG. 3 is a diagram illustrating an example of codes of the LZSS compression method.

【図4】本実施の形態に係る圧縮装置の概略構成を示す
ブロック図である。
FIG. 4 is a block diagram showing a schematic configuration of a compression device according to the present embodiment.

【図5】実施の形態に係る圧縮装置が処理する符号の例
を示す図である。
FIG. 5 is a diagram showing an example of codes processed by the compression apparatus according to the embodiment.

【図6】窓バッファ、先読みバッファの構成を示す図で
ある。
FIG. 6 is a diagram showing configurations of a window buffer and a prefetch buffer.

【図7】辞書管理データの構成を示す図である。FIG. 7 is a diagram showing a structure of dictionary management data.

【図8】辞書管理データの構成を示す図である。FIG. 8 is a diagram showing a structure of dictionary management data.

【図9】実施の形態に係る圧縮装置における圧縮処理の
手順を示すフローチャートである。
FIG. 9 is a flowchart showing a procedure of a compression process in the compression device according to the embodiment.

【図10】実施の形態に係る圧縮装置における圧縮処理
の手順を示すフローチャートである。
FIG. 10 is a flowchart showing a procedure of compression processing in the compression device according to the embodiment.

【図11】検索挿入処理の詳細フローチャートである。FIG. 11 is a detailed flowchart of a search insertion process.

【図12】実施の形態に係る復元装置の機能構成を示す
ブロック図である。
FIG. 12 is a block diagram showing a functional configuration of a restoration device according to an embodiment.

【図13】実施の形態に係る復元装置の具体的な構成を
示すブロック図である。
FIG. 13 is a block diagram showing a specific configuration of the restoration device according to the embodiment.

【図14】図12の入力バッファの構成を示す図であ
る。
14 is a diagram showing a configuration of an input buffer of FIG.

【図15】実施の形態に係る復元装置における処理手順
を示すフローチャートである。
FIG. 15 is a flowchart showing a processing procedure in the restoration device according to the embodiment.

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

1 入力ファイル 3 辞書検索手段 4 符号化手段 5 出力ファイル 6 辞書管理手段 7 辞書管理データ 11 窓バッファ 12 先読みバッファ 13 識別フィールド 14 位置フィールド 15 長さフィールド 16 生データフィールド 21,55 CPU 22 磁気ディスク 23,56 RAM 24,57 ROM 31 フラグワード 32 辞書参照符号 33 生データ符号 34 終了符号 41 ガードバッファ 51 入力バッファ 52 復号化手段 53 出力バッファ 54 入力インターフェース 58 出力インターフェース 1 Input File 3 Dictionary Search Means 4 Encoding Means 5 Output File 6 Dictionary Management Means 7 Dictionary Management Data 11 Window Buffer 12 Lookahead Buffer 13 Identification Field 14 Position Field 15 Length Field 16 Raw Data Field 21,55 CPU 22 Magnetic Disk 23 , 56 RAM 24, 57 ROM 31 flag word 32 dictionary reference code 33 raw data code 34 end code 41 guard buffer 51 input buffer 52 decoding means 53 output buffer 54 input interface 58 output interface

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 所定の参照データが格納された辞書を検
索して入力データの圧縮を行なうデータ圧縮装置におい
て、 前記辞書を検索して、前記入力データと前記参照データ
の最長一致を検索する検索手段と、 前記検索手段にて前記最長一致の検索ができた場合、第
1のデータの符号化を行なう第1の符号化手段と、 前記検索手段にて前記最長一致が検索できない場合、第
2のデータの符号化を行なう第2の符号化手段と、 前記符号化されたデータの格納と前記辞書の容量の管理
を行なう手段とを備え、 前記第1のデータ及び前記第2のデータは、所定の整数
単位に詰めて符号化され、出力されることを特徴とする
データ圧縮装置。
1. A data compression apparatus that searches a dictionary in which predetermined reference data is stored to compress input data, and searches the dictionary to find the longest match between the input data and the reference data. A first encoding unit that encodes the first data when the longest match can be searched by the searching unit; and a second coding unit that can search the longest match by the searching unit. Second encoding means for encoding the data, and means for storing the encoded data and managing the capacity of the dictionary, wherein the first data and the second data are A data compression device characterized by being packed in a predetermined integer unit, coded, and output.
【請求項2】 前記第1のデータは、前記辞書の参照符
号であることを示すフラグ、検索された該辞書のデータ
を示すインデックス、及び前記最長一致の長さを示すデ
ータにて構成され、前記第2のデータは、非圧縮状態の
生データ、及び該生データであることを示すフラグにて
構成されることを特徴とする請求項1に記載のデータ圧
縮装置。
2. The first data is composed of a flag indicating the reference code of the dictionary, an index indicating the retrieved data of the dictionary, and data indicating the length of the longest match, The data compression apparatus according to claim 1, wherein the second data is composed of raw data in an uncompressed state and a flag indicating the raw data.
【請求項3】 前記所定の整数単位は、任意の8の倍数
であることを特徴とする請求項1に記載のデータ圧縮装
置。
3. The data compression apparatus according to claim 1, wherein the predetermined integer unit is an arbitrary multiple of 8.
【請求項4】 バッファに格納された符号化データを復
元するデータ復元装置において、 前記符号化データの種別を判定する判定手段と、 前記判定手段にて前記符号化データが第1のデータであ
ると判定された場合、前記バッファを参照した第1の復
号化を行なう手段と、 前記判定手段にて前記符号化データが第2のデータであ
ると判定された場合、第2の復号化を行なう手段とを備
え、 前記第1のデータ及び前記第2のデータは、所定の整数
単位に詰められたデータであることを特徴とするデータ
復元装置。
4. A data decompression device for decompressing encoded data stored in a buffer, wherein a determination unit determines a type of the encoded data, and the determination unit causes the encoded data to be first data. If it is determined that the first decoding is performed by referring to the buffer, and if the determination unit determines that the encoded data is the second data, the second decoding is performed. A data recovery device, wherein the first data and the second data are data packed in a predetermined integer unit.
【請求項5】 前記第1のデータは、所定の参照データ
が格納された辞書の参照符号であることを示すフラグ、
該参照する辞書のデータを示すインデックス、及び参照
する辞書のデータの長さを示すデータにより構成され、
前記第2のデータは、生データ及び該生データであるこ
とを示すフラグにより構成されることを特徴とする請求
項4に記載のデータ復元装置。
5. The flag indicating that the first data is a reference code of a dictionary in which predetermined reference data is stored,
An index indicating the data of the reference dictionary, and data indicating the length of the data of the reference dictionary,
The data restoration device according to claim 4, wherein the second data is composed of raw data and a flag indicating that the second data is the raw data.
【請求項6】 前記所定の整数単位は、任意の8の倍数
であることを特徴とする請求項4に記載のデータ復元装
置。
6. The data restoration apparatus according to claim 4, wherein the predetermined integer unit is an arbitrary multiple of 8.
JP24950095A 1995-09-27 1995-09-27 Data compressor and data decoder Withdrawn JPH0993138A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24950095A JPH0993138A (en) 1995-09-27 1995-09-27 Data compressor and data decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24950095A JPH0993138A (en) 1995-09-27 1995-09-27 Data compressor and data decoder

Publications (1)

Publication Number Publication Date
JPH0993138A true JPH0993138A (en) 1997-04-04

Family

ID=17193898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24950095A Withdrawn JPH0993138A (en) 1995-09-27 1995-09-27 Data compressor and data decoder

Country Status (1)

Country Link
JP (1) JPH0993138A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114525A (en) * 2009-11-26 2011-06-09 Dainippon Printing Co Ltd Method and device for encoding/decoding numerical data string
WO2020226105A1 (en) * 2019-05-07 2020-11-12 国立大学法人筑波大学 Data compression and decompression methods, data compression device, and data decompression device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114525A (en) * 2009-11-26 2011-06-09 Dainippon Printing Co Ltd Method and device for encoding/decoding numerical data string
WO2020226105A1 (en) * 2019-05-07 2020-11-12 国立大学法人筑波大学 Data compression and decompression methods, data compression device, and data decompression device
JP2020184672A (en) * 2019-05-07 2020-11-12 国立大学法人 筑波大学 Data compression and decompression method, data compression method, data compression device, data compression program, data decompression method, data decompression device, and data decompression program
US11876542B2 (en) 2019-05-07 2024-01-16 University Of Tsukuba Data compression and decompression methods, data compression device, and data decompression device

Similar Documents

Publication Publication Date Title
Adjeroh et al. The Burrows-Wheeler Transform:: Data Compression, Suffix Arrays, and Pattern Matching
US5838963A (en) Apparatus and method for compressing a data file based on a dictionary file which matches segment lengths
US5151697A (en) Data structure management tagging system
KR100602394B1 (en) Dual mode data compression for operating code
WO2019153700A1 (en) Encoding and decoding method, apparatus and encoding and decoding device
JP3974036B2 (en) How to perform Huffman decoding
US8106799B1 (en) Data compression and decompression using parallel processing
JPS60116228A (en) High speed data compressing and recovering device
JP2979106B2 (en) Data compression
JPH07283739A (en) Method and device to compress and extend data of short block
EP0127815B1 (en) Data compression method
US8947272B2 (en) Decoding encoded data
JP3241788B2 (en) Data compression method
JPH0993138A (en) Data compressor and data decoder
JPH10261969A (en) Data compression method and its device
JP3241787B2 (en) Data compression method
KR950013228B1 (en) Data compression and restoration method and device thereof
JP3105598B2 (en) Data compression method using universal code
US6731229B2 (en) Method to reduce storage requirements when storing semi-redundant information in a database
US6262675B1 (en) Method of compressing data with an alphabet
JPH0554077A (en) Word dictionary retriever
JP2590287B2 (en) Data compression method and data compression apparatus
Anisimov et al. Practical word-based text compression using the reverse multi-delimiter codes
JPH05152971A (en) Data compressing/restoring method
JP3565147B2 (en) Decryption device

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021203