JPH05252049A - Data compression processing system and data decoding processing system - Google Patents
Data compression processing system and data decoding processing systemInfo
- Publication number
- JPH05252049A JPH05252049A JP4822392A JP4822392A JPH05252049A JP H05252049 A JPH05252049 A JP H05252049A JP 4822392 A JP4822392 A JP 4822392A JP 4822392 A JP4822392 A JP 4822392A JP H05252049 A JPH05252049 A JP H05252049A
- Authority
- JP
- Japan
- Prior art keywords
- dictionary
- character string
- reference number
- data
- registered
- 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
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、動的辞書型ジブ−レン
ペル符号によるデータ圧縮処理方式と、そのデータ復元
処理方式に関し、特に、外部ハッシュ法に従って辞書を
構成するときに、高信頼性を実現できるデータ圧縮処理
方式とデータ復元処理方式に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data compression processing method using a dynamic dictionary type Jib-Lempel code and a data decompression processing method thereof. In particular, high reliability is ensured when a dictionary is constructed according to an external hash method. The present invention relates to a data compression processing method and a data decompression processing method that can be realized.
【0002】近年、文字コードやベクトル情報や画像
等、様々な種類のデータがコンピュータで扱われるよう
になっており、扱われるデータ量も急激に増加しつつあ
る。このような大量なデータを扱うときには、記憶容量
の削減を図り、高速伝送を実現するためにも、データ中
の冗長な部分を省いてデータ量を圧縮していく必要があ
る。In recent years, various kinds of data such as character codes, vector information, and images have been handled by computers, and the amount of data handled has been increasing rapidly. When dealing with such a large amount of data, it is necessary to omit the redundant part of the data and compress the data amount in order to reduce the storage capacity and realize high-speed transmission.
【0003】データ圧縮の方法としては種々のものが提
案されているが、圧縮対象となるデータの統計的な性質
が分からなくてもデータ圧縮を実現できる方法として、
ユニバーサル符号が提案されている。このユニバーサル
符号の代表的な方法としてジブ−レンペル(Ziv-Lempe
l)符号があり、このジブ−レンペル符号では、大きく
分けてスライド辞書型と動的辞書型という2つのアルゴ
リズムが提案されている。そして、このスライド辞書型
のアルゴリズムの改良として、LZSS符号が提案され
ており、動的辞書型のアルゴリズムの改良として、LZ
W符号が提案されている。このようなユニバーサル符号
によるデータ圧縮・復元処理を実用的なものとしていく
ためには、エラーが発生する場合にも適切に対処できる
構成を構築していく必要がある。Various methods of data compression have been proposed, but as a method of realizing data compression without knowing the statistical properties of the data to be compressed,
Universal codes have been proposed. As a typical method of this universal code, Ziv-Lempe (Ziv-Lempe
There is a l) code, and in this Jib-Lempel code, two algorithms, a slide dictionary type and a dynamic dictionary type, are roughly proposed. As an improvement of this slide dictionary type algorithm, LZSS code is proposed, and as an improvement of the dynamic dictionary type algorithm, LZSS code is proposed.
The W code has been proposed. In order to make the data compression / decompression process using such a universal code practical, it is necessary to construct a configuration that can appropriately deal with an error.
【0004】[0004]
【従来の技術】本発明は、動的辞書型ジブ−レンペル符
号によるデータ圧縮処理方式の改良と、動的辞書型ジブ
−レンペル符号によるデータ復元処理方式の改良に関す
るものである。これから、ここでは、LZW符号につい
ての従来技術について説明する。なお、以下の説明で
は、情報理論で用いられている呼称を踏襲して、データ
の1ワードを文字と呼び、データが任意ワードつながっ
たものを文字列と呼ぶことにする。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an improvement in a data compression processing method using a dynamic dictionary type Jib-Lempel code and an improvement in a data decompression processing method using a dynamic dictionary type Jib-Lempel code. Now, here, a conventional technique for the LZW code will be described. In the following description, one word of data will be referred to as a character, and one obtained by connecting arbitrary words of data will be referred to as a character string, following the name used in information theory.
【0005】図6に、LZW符号によるデータ符号化処
理の処理フロー、図7に、LZW符号によるデータ復元
化処理の処理フローを図示する。最初に、図6に従っ
て、LZW符号によるデータ符号化処理について説明す
る。このLZW符号によるデータ符号化処理は、入力さ
れたデータを互いに異なる文字列に分解し、この文字列
を参照番号(辞書番号)とともに辞書に管理していく構
成を採って、入力中のデータを辞書登録の最長一致文字
列の参照番号列に置き換えていくことで、長い文字列を
短い参照番号で表すことで符号化を実行する構成を採る
ものである。FIG. 6 shows a processing flow of data encoding processing by the LZW code, and FIG. 7 shows a processing flow of data restoration processing by the LZW code. First, the data encoding process using the LZW code will be described with reference to FIG. In the data encoding process using the LZW code, the input data is decomposed into character strings different from each other, and the character strings are managed in a dictionary together with a reference number (dictionary number). By replacing the longest matching character string registered in the dictionary with the reference number string, a long character string is represented by a short reference number to perform encoding.
【0006】ここで、辞書への文字列の登録方法は、図
8に示すように、単一文字以外の新規登録の文字列につ
いては、それまでに登録されている参照番号とそれに続
く1文字との組み合わせで表現して登録していく構成が
採られている。Here, as for the method of registering a character string in the dictionary, as shown in FIG. 8, for a newly registered character string other than a single character, the reference number registered up to that point and the subsequent one character are used. The composition is expressed by the combination of and registered.
【0007】すなわち、LZW符号によるデータ符号化
処理を実行する場合には、図6の処理フローに示すよう
に、先ず最初に、ステップ1で、符号化対象となる文字
列に出現する可能性のある全ての単一文字を辞書に登録
し、参照番号の最大値Nにその単一文字種類数を設定す
る。次に、ステップ2で、符号化対象の入力データの最
初の文字Kを入力して、その文字Kの参照番号を語頭文
字列ωとして設定する。続いて、ステップ3で、符号化
対象の入力データから次の文字Kを読み込み、続くステ
ップ4で、参照番号を表す語頭文字列ωとこの読み込ん
だ文字Kとの組み合わせの文字列ωKが、辞書に登録さ
れているか否かを判断する。That is, when performing the data encoding process by the LZW code, as shown in the process flow of FIG. 6, first, in step 1, there is a possibility that it appears in the character string to be encoded. All certain single characters are registered in the dictionary, and the maximum number N of reference numbers is set to the number of single character types. Next, in step 2, the first character K of the input data to be encoded is input, and the reference number of the character K is set as the initial character string ω. Then, in step 3, the next character K is read from the input data to be encoded, and in step 4, the character string ωK that is a combination of the initial character string ω representing the reference number and the read character K is It is determined whether it is registered in the dictionary.
【0008】このステップ4で、文字列ωKが辞書に登
録されていると判断するときには、ステップ5に進ん
で、この文字列ωKの参照番号を新たな語頭文字列ωと
して設定し、続くステップ6で、符号化対象の入力デー
タの全文字についての処理が終了したか否かを判断し
て、終了していないことを判断するときには、ステップ
3に戻っていくことで最長一致文字列を検索し、終了し
たことを判断するときには、ステップ8に進んで、語頭
文字列ωの参照番号を出力して処理を終了する。When it is determined in step 4 that the character string ωK is registered in the dictionary, the process proceeds to step 5, where the reference number of this character string ωK is set as a new initial character string ω, and the subsequent step In step 6, it is determined whether or not the processing has been completed for all the characters of the input data to be encoded. If it is determined that the processing has not been completed, the process returns to step 3 to search for the longest matching character string. When it is determined that the process has ended, the process proceeds to step 8, the reference number of the initial character string ω is output, and the process ends.
【0009】一方、ステップ4で、文字列ωKが辞書に
登録されていないと判断するときには、語頭文字列ωの
示す文字列が最長一致文字列であることに対応して、ス
テップ7に進んで、語頭文字列ωの参照番号を出力する
とともに、この文字列ωKを参照番号を付加して辞書に
登録する。そして、それまでの語頭文字列ωに続く1文
字Kの参照番号を新たな語頭文字列ωとして設定すると
ともに、参照番号の最大値を1つインクリメントしてか
らステップ6に進んでいくことで、次の最長一致文字列
の検索に入っていく。On the other hand, when it is determined in step 4 that the character string ωK is not registered in the dictionary, the process proceeds to step 7 in response to the character string indicated by the initial character string ω being the longest matching character string. Then, the reference number of the initial character string ω is output, and this character string ωK is added to the reference number and registered in the dictionary. Then, the reference number of one character K following the initial character string ω up to that point is set as a new initial character string ω, and the maximum value of the reference number is incremented by 1 before proceeding to step 6. Then, the search for the next longest matching character string is started.
【0010】図9に従って、この処理フローによるLZ
W符号生成について具体的に説明すると、ステップ1の
処理に従って、文字aが参照番号1、文字bが参照番号
2、文字cが参照番号3とともに辞書に登録される。次
に、ステップ2の処理に従って、入力データの先頭文字
aが読み出されて、その参照番号1が語頭文字列ωとし
て設定される。続いて、ステップ3の処理に従って、入
力データの第2番目の文字bが読み出され、ステップ4
の処理に従って、文字列1b(=ab)が辞書に登録さ
れていないことが判断されて、ステップ7の処理に従っ
て、語頭文字列ωの参照番号1が出力されるとともに、
文字列1bが参照番号4とともに辞書に登録され、更
に、この文字bの参照番号2が新たな語頭文字列ωとし
て設定される。According to FIG. 9, LZ according to this processing flow
The W code generation will be specifically described. According to the process of step 1, the character a is registered in the dictionary with the reference number 1, the character b is the reference number 2, and the character c is registered with the reference number 3. Next, according to the process of step 2, the first character a of the input data is read and its reference number 1 is set as the initial character string ω. Then, the second character b of the input data is read according to the processing of step 3, and step 4
It is determined that the character string 1b (= ab) is not registered in the dictionary according to the processing of step 1, and the reference number 1 of the initial character string ω is output according to the processing of step 7, and
The character string 1b is registered in the dictionary together with the reference number 4, and the reference number 2 of this character b is set as a new initial character string ω.
【0011】続いて、ステップ3の処理に従って、入力
データの第3番目の文字aが読み出され、ステップ4の
処理に従って、文字列2a(=ba)が辞書に登録され
ていないことが判断されて、ステップ7の処理に従っ
て、語頭文字列ωの参照番号2が出力されるとともに、
文字列2aが参照番号5とともに辞書に登録され、更
に、この文字aの参照番号1が新たな語頭文字列ωとし
て設定される。Then, the third character a of the input data is read out according to the process of step 3, and it is determined according to the process of step 4 that the character string 2a (= ba) is not registered in the dictionary. Then, according to the process of step 7, the reference number 2 of the initial character string ω is output, and
The character string 2a is registered in the dictionary together with the reference number 5, and the reference number 1 of this character a is set as a new initial character string ω.
【0012】続いて、ステップ3の処理に従って、入力
データの第4番目の文字bが読み出され、ステップ4の
処理に従って、文字列1bが辞書に登録されていること
が判断されて、ステップ5の処理に従って、この文字列
1bの参照番号4が新たな語頭文字列ωとして設定され
る。続いて、ステップ3の処理に従って、入力データの
第5番目の文字cが読み出され、ステップ4の処理に従
って、文字列4c(=abc)が辞書に登録されていな
いことが判断されて、ステップ7の処理に従って、語頭
文字列ωの参照番号4が出力されるとともに、文字列4
cが参照番号6とともに辞書に登録され、更に、この文
字cの参照番号3が新たな語頭文字列ωとして設定され
る。以下同様の処理を繰り返していくことで、図9に示
すような符号化が実行されていく。Subsequently, the fourth character b of the input data is read according to the processing of step 3, and it is determined that the character string 1b is registered in the dictionary according to the processing of step 4, and step 5 is executed. In accordance with the process of, the reference number 4 of this character string 1b is set as a new initial character string ω. Then, the fifth character c of the input data is read according to the process of step 3, and it is determined that the character string 4c (= abc) is not registered in the dictionary according to the process of step 4, According to the process of 7, the reference number 4 of the initial character string ω is output and the character string 4
c is registered in the dictionary together with the reference number 6, and the reference number 3 of this character c is set as a new initial character string ω. By repeating the same processing thereafter, encoding as shown in FIG. 9 is executed.
【0013】次に、図7に従って、LZW符号によるデ
ータ復元化処理について説明する。このLZW符号によ
るデータ復元化処理は、図6で説明したデータ符号化の
逆変換処理を実行することで、データの復元を実行する
構成を採るものである。Next, referring to FIG. 7, a data restoration process using the LZW code will be described. The data restoration processing by the LZW code has a configuration of performing the data restoration by executing the inverse conversion processing of the data encoding described in FIG.
【0014】すなわち、LZW符号によるデータ復元化
処理を実行する場合には、図7の処理フローに示すよう
に、先ず最初に、ステップ1で、復元される文字列に出
現する可能性のある全ての単一文字を辞書に登録し、参
照番号の最大値Nにその単一文字種類数を設定する。次
に、ステップ2で、復元対象となる入力データ(参照番
号列である)の最初の符号(CODE)を読み込み、OLDcod
e として設定するとともに、辞書を検索して、このCODE
の指す文字Kを探し出して出力する。ここで、出力した
文字Kは、後の例外処理のためにcharにセットしてい
く。That is, when executing the data restoration processing by the LZW code, as shown in the processing flow of FIG. 7, first, in step 1, all the characters that may appear in the restored character string are displayed. Is registered in the dictionary, and the maximum number N of reference numbers is set to the number of single character types. Next, in step 2, the first code (CODE) of the input data (reference number string) to be restored is read, and OLDcod
Set it as e and search the dictionary for this CODE
The character K pointed to by is searched for and output. Here, the output character K is set to char for later exception processing.
【0015】続いて、ステップ3で、復元対象となる入
力データから次の符号(CODE)を読み込み、NEWcode と
して設定する。続いて、ステップ4で、ステップ3で読
み込んだCODEが辞書に登録されているか否かをチェック
する。このステップ4で、CODEが辞書に登録されている
ことを判断すると、ステップ5に進んで、このCODEの指
す文字列ωKを辞書から読み出し、続くステップ6で、
この文字列ωKの文字Kをスタックに格納するととも
に、この文字列ωKの参照番号ωを新たなCODEとして設
定してステップ5の処理に戻っていく。Then, in step 3, the next code (CODE) is read from the input data to be restored and set as NEWcode. Then, in step 4, it is checked whether the CODE read in step 3 is registered in the dictionary. When it is determined in step 4 that CODE is registered in the dictionary, the process proceeds to step 5, the character string ωK pointed to by this CODE is read from the dictionary, and in step 6 that follows,
The character K of this character string ωK is stored in the stack, the reference number ω of this character string ωK is set as a new CODE, and the process returns to step 5.
【0016】このステップ5及びステップ6の処理を再
帰的に実行していくことで、CODEが1文字を指す状態に
達することを判断すると、ステップ7に進んで、ステッ
プ6でスタックした文字列をLILO(Last In Fast O
ut)形式でポップアップして出力するとともに、OLDcod
e に設定される前回使用した参照番号ωと、今回復元し
た文字列の先頭の1文字との組み合わせからなる文字列
ωKを参照番号を付加して辞書に登録する。そして、復
元文字列の先頭の1文字を後の例外処理のためにcharに
セットし、NEWcode のCODEをOLDcode として設定すると
ともに、参照番号の最大値を1つインクリメントする。When it is determined that CODE reaches the state of indicating one character by recursively executing the processes of steps 5 and 6, the process proceeds to step 7, and the character string stacked in step 6 is deleted. LILO (Last In Fast O
ut) format and pops up and outputs, and OLDcod
A reference number is added to the character string ωK, which is a combination of the previously used reference number ω set in e and the first character of the character string restored this time, and is registered in the dictionary. Then, the first character of the restored character string is set to char for later exception processing, the CODE of NEWcode is set as OLDcode, and the maximum value of the reference number is incremented by one.
【0017】ステップ7の処理を終了すると、ステップ
8に進んで、復元対象となる入力データの全符号につい
ての処理が終了したか否かを判断して、終了していない
ことを判断するときには、ステップ3に戻っていくこと
で次の符号の復元処理を実行し、終了したことを判断す
るときには処理を終了する。When the process of step 7 is completed, the process proceeds to step 8 to judge whether the process has been completed for all codes of the input data to be restored, and when it is judged that the process is not completed, By returning to step 3, the next code restoration processing is executed, and when it is judged that the processing is completed, the processing is completed.
【0018】そして、ステップ4で、ステップ3で読み
込んだCODEが辞書に登録されていないことを判断すると
きには、ステップ9に進んで、以下の例外処理を実行す
る。ここで、このような状態は、符号化において直前の
参照番号を参照する場合に起こることになる。これか
ら、ステップ9では、charを出力し、OLDcode をCODEと
して設定するとともに、OLDcode とcharとの組み合わせ
をNEWcode として設定して、ステップ5に進んでいく処
理を実行することになる。When it is determined in step 4 that the CODE read in step 3 is not registered in the dictionary, the process proceeds to step 9 and the following exception processing is executed. Here, such a state occurs when the immediately preceding reference number is referred to in encoding. From this, in step 9, char is output, OLDcode is set as CODE, a combination of OLDcode and char is set as NEWcode, and the process proceeds to step 5.
【0019】図10に従って、この処理フローによるL
ZW符号の復号化処理について具体的に説明すると、ス
テップ1の処理に従って、文字aが参照番号1、文字b
が参照番号2、文字cが参照番号3とともに辞書に登録
される。次に、ステップ2の処理に従って、入力データ
の先頭符号1が読み出されて、その符号1の指す文字a
が出力される。続いて、ステップ3の処理に従って、入
力データの第2番目の符号2が読み出され、ステップ5
ないしステップ7の処理に従って、その符号2の指す文
字bが出力されるとともに、前回処理した符号1と今回
復元した文字列の先頭の1文字bとの組み合わせの文字
列1bが参照番号4とともに辞書に登録される。According to FIG. 10, L according to this processing flow
The decoding process of the ZW code will be specifically described. According to the process of step 1, the character a is the reference number 1 and the character b is
Is registered in the dictionary together with the reference number 2 and the character c together with the reference number 3. Next, according to the process of step 2, the leading code 1 of the input data is read and the character a pointed to by the code 1 is read.
Is output. Then, the second code 2 of the input data is read according to the processing of step 3, and step 5
Through the process of step 7, the character b pointed to by the code 2 is output, and the character string 1b, which is a combination of the previously processed code 1 and the first character b of the character string restored this time, is also stored in the dictionary together with the reference number 4. Be registered with.
【0020】続いて、ステップ3の処理に従って、入力
符号列の第3番目の符号4が読み出され、ステップ5な
いしステップ7の処理に従って、その符号4の指す文字
列abが出力されるとともに、前回処理した符号2と今
回復元した文字列の先頭の1文字aとの組み合わせの文
字列2aが参照番号5とともに辞書に登録される。以下
同様の処理を繰り返していくことで、図10に示すよう
な符号化が実行されていくことになるが、入力データの
第6番目の符号8が読み出されるときには、符号8はこ
の復元時には辞書に登録されていない。これから、ステ
ップ9の処理に従って例外処理が実行されて、前回処理
した符号5に前回復元した文字列baの先頭文字bを加
えた文字列5bが求められ、これを復元していくことで
符号8の指す文字列babが求められて出力されるとと
もに、前回処理した符号5に今回復元した文字列の先頭
文字bを加えた文字列5bが参照番号8とともに辞書に
登録されることになるのである。Then, the third code 4 of the input code string is read out according to the processing of step 3, and the character string ab pointed to by the code 4 is output according to the processing of steps 5 to 7, and A character string 2a, which is a combination of the code 2 processed last time and the first character a of the character string restored this time, is registered in the dictionary together with the reference number 5. By repeating the same processing thereafter, the encoding as shown in FIG. 10 is executed, but when the sixth code 8 of the input data is read, the code 8 is the dictionary at the time of this restoration. Not registered in. From this, the exception process is executed according to the process of step 9, and the character string 5b obtained by adding the leading character b of the previously restored character string ba to the previously processed code 5 is obtained, and the character string 5b is restored to obtain the code 8 The character string bab pointed to by is obtained and output, and the character string 5b obtained by adding the first character b of the character string restored this time to the code 5 processed last time is registered in the dictionary together with the reference number 8. ..
【0021】しかしながら、図6/図7の処理フローに
示す手順でLZW符号化/LZW復号化/を実行する
と、1つの文字列を辞書検索する度に、最悪、辞書全体
をサーチしなければならず、辞書検索に時間がかかると
いう問題がある。そこで、従来では、外部ハッシュ法を
用いて辞書検索を実行する構成を採っている。However, if LZW encoding / LZW decoding / is executed according to the procedure shown in the processing flow of FIG. 6 / FIG. 7, in the worst case, the entire dictionary must be searched every time one character string is searched. However, there is a problem that the dictionary search takes time. Therefore, conventionally, a configuration has been adopted in which a dictionary search is executed using the external hash method.
【0022】複数の文字列からなる集合Sを考えたと
き、集合Sの文字列xの格納位置を文字列xそのものか
ら直接計算できる仕組みになっていると高速の辞書検索
が実現できる。これを実現するのがハッシュ法である。
記憶場所(ハッシュ表)に0から(m-1) までのアドレス
が付されていると、ハッシュ法では、 関数 h:S → 〔0,1,2,・・・・,m-1
〕 を1つ定めて、集合Sの文字列xのアドレスをh(x) で
求める。関数hをハッシュ関数、値h(x) をxのハッシ
ュアドレスと言っている。ハッシュ法は、通常、Sの大
きさがmに比べてはるかに大きい場合に用いられる。そ
こで、hをどのように選んだとしても、Sの相異なる文
字列x1,x2に対して、h(x1)=h(x2)となる場合が
起こり得る。これを衝突と呼び、この衝突に対する対策
の1つとして外部ハッシュ法が用いられる。When considering a set S composed of a plurality of character strings, a high-speed dictionary search can be realized if the storage position of the character string x of the set S can be directly calculated from the character string x itself. The hash method realizes this.
If addresses from 0 to (m-1) are assigned to the memory location (hash table), the function h: S → [0, 1, 2, ...
], And the address of the character string x of the set S is obtained by h (x). The function h is called a hash function, and the value h (x) is called a hash address of x. The hash method is usually used when the size of S is much larger than m. Therefore, no matter how h is selected, there is a possibility that h (x1) = h (x2) for the character strings x1 and x2 having different S. This is called a collision, and the external hash method is used as one of the countermeasures against this collision.
【0023】この外部ハッシュ法は、図11に示すよう
に、索引で示されるハッシュアドレスi毎に連結リスト
を用意して、衝突を起こしたハッシュアドレスh(x) =
iの文字列xは、連結リストの先頭から順番に格納して
いく構成を採ることで対応するものである。同じハッシ
ュアドレスh(x) を持つそれぞれの連結リストはバケッ
トと呼ばれる。In this external hash method, as shown in FIG. 11, a linked list is prepared for each hash address i indicated by an index, and a hash address h (x) =
The character string x of i corresponds to the character string that is stored in order from the head of the linked list. Each linked list having the same hash address h (x) is called a bucket.
【0024】図12に、辞書検索に外部ハッシュ法のリ
スト構造を利用したLZW符号化の処理フローを図示
し、図13に、図8の辞書データを例にして、このとき
用いられる従来の辞書構成を図示し、図14に、図13
の辞書構成に対応する従来の辞書メモリを図示する。FIG. 12 shows a processing flow of LZW encoding using a list structure of the external hash method for dictionary retrieval, and FIG. 13 shows the dictionary data of FIG. 8 as an example and a conventional dictionary used at this time. The structure is shown in FIG.
The conventional dictionary memory corresponding to the dictionary structure of FIG.
【0025】図13に示すように、辞書を構成する各ノ
ードは、ノード左上に示すアドレス(辞書の登録位置)
と、ノード内に示す拡張メモリの登録シンボル(そのア
ドレスに登録されている文字)と、ノード左下に示す次
のファーストメモリのアドレス(木構造の深さ方向に続
く次の文字のアドレス)と、ノード右下に示すネクスト
メモリのアドレス(木構造の水平方向に続く次の文字の
アドレス)とを管理するものである。この辞書構成に従
って、図8の辞書データABは、アドレス1のA→アド
レス4のBの連結リストに従って参照番号4を持つもの
として管理され、また、図8の辞書データのAAは、ア
ドレス1のA→アドレス4のB→アドレス10のAの連
結リストに従って参照番号10を持つものとして管理さ
れることになる。As shown in FIG. 13, each node constituting the dictionary has an address (register position of the dictionary) shown at the upper left of the node.
And the registered symbol of the extended memory shown in the node (the character registered at that address), the address of the next first memory shown at the lower left of the node (the address of the next character following the depth of the tree structure), It manages the address of the next memory shown at the lower right of the node (the address of the next character in the horizontal direction of the tree structure). According to this dictionary structure, the dictionary data AB of FIG. 8 is managed as having a reference number 4 according to the linked list of A of address 1 → B of address 4, and AA of the dictionary data of FIG. It is managed as having the reference number 10 according to the linked list of A → B of address 4 → A of address 10.
【0026】図12に示す処理フローは、符号化対象の
文字列が与えられるときに、図14の辞書メモリの検索
処理と登録処理とを実行しつつ符号化処理を実行するも
のであって、各ステップの処理は以下の通りである。こ
こで、ステップ4ないしステップ8が、辞書検索処理を
規定しており、ステップ10ないしステップ14が、辞
書登録処理を規定している。The processing flow shown in FIG. 12 is such that, when a character string to be encoded is given, the encoding processing is executed while executing the dictionary memory search processing and registration processing of FIG. The processing of each step is as follows. Here, steps 4 to 8 define the dictionary search process, and steps 10 to 14 define the dictionary registration process.
【0027】〔ステップ1〕 単一文字をアドレスとともに辞書に登録する。 登録した文字数→辞書への現登録文字数n n→NMIN 入力した最初の文字K→語頭文字列ω 辞書検索用配列first[1,NMAX],next[1,NMAX],ext[1,N
MAX]を0に初期化。[Step 1] A single character is registered in a dictionary together with an address. Number of registered characters → number of characters currently registered in dictionary nn → NMIN Input first character K → Initial character string ω Dictionary search array first [1, NMAX], next [1, NMAX], ext [1, N
MAX] is initialized to 0.
【0028】〔ステップ2〕次の文字入力Kを読む。 〔ステップ3〕文字Kがあるか否かを判断する。[Step 2] The next character input K is read. [Step 3] It is determined whether or not there is a letter K.
【0029】〔ステップ4〕ステップ3の判断で文字K
があると判断されるときに下記の処理を行う。ここで、
iは、ファーストメモリの格納値で指定される辞書メモ
リのアドレス値、jは、ネクストメモリの格納値で指定
される辞書メモリのアドレス値である。 i→ω; 0→j; 〔ステップ5〕 ext[i]→symbol; first[i]→i; 〔ステップ6〕i=0であるか否かを判断する。[Step 4] The letter K is determined by the judgment in step 3.
When it is determined that there is, the following processing is performed. here,
i is the address value of the dictionary memory specified by the stored value of the first memory, and j is the address value of the dictionary memory specified by the stored value of the next memory. i → ω; 0 → j; [Step 5] ext [i] → symbol; first [i] → i; [Step 6] It is determined whether or not i = 0.
【0030】〔ステップ7〕ステップ6の判断でi=0
でないと判断されるときに下記の処理を行う。symbol=
Kであるか否かを判断する。[Step 7] i = 0 in the judgment of Step 6
When it is judged that it is not, the following processing is performed. symbol =
It is determined whether or not K.
【0031】〔ステップ8〕ステップ7の判断でsymbol
=Kでないと判断されるときに下記の処理を行う。 i→j; ext[i]→symbol; next[i] →i; 〔ステップ9〕ステップ6の判断でi=0であると判断
されるときに下記の処理を行う。code〔ω)を出力す
る。[Step 8] Symbol is judged by the judgment in Step 7.
When it is determined that not = K, the following processing is performed. ext [i] → symbol; next [i] → i; [Step 9] The following processing is performed when it is determined in step 6 that i = 0. Output code [ω).
【0032】〔ステップ10〕n→i; n+1→n; 〔ステップ11〕j=0であるか否かを判断する。[Step 10] n → i; n + 1 → n; [Step 11] It is determined whether or not j = 0.
【0033】〔ステップ12〕ステップ11の判断でj
=0であると判断されるときに下記の処理を行う。 i→first[ω] ; K→ext[ω] ; 〔ステップ13〕ステップ11の判断でj=0でないと
判断されるときに下記の処理を行う。 i→next[j] ; K→ext[j]; 〔ステップ14〕 K→i; 〔ステップ15〕ステップ3の判断で文字Kがないと判
断されるときに下記の処理を行う。code〔ω)を出力す
る。[Step 12] j is judged in step 11
When it is determined that = 0, the following processing is performed. i → first [ω]; K → ext [ω]; [Step 13] When it is determined in step 11 that j = 0 is not satisfied, the following processing is performed. i → next [j]; K → ext [j]; [Step 14] K → i; [Step 15] When it is determined in step 3 that there is no character K, the following processing is performed. Output code [ω).
【0034】図15に、辞書検索に外部ハッシュ法のリ
スト構造を利用したLZW復号化の処理フローを図示
し、図16に、図8の辞書データを例にして、このとき
用いられる従来の辞書構成を図示し、図17に、図16
の辞書構成に対応する従来の辞書メモリを図示する。FIG. 15 shows a processing flow of LZW decoding using a list structure of an external hash method for dictionary retrieval, and FIG. 16 shows the dictionary data of FIG. 8 as an example and a conventional dictionary used at this time. The structure is shown in FIG.
The conventional dictionary memory corresponding to the dictionary structure of FIG.
【0035】図16に示すように、辞書を構成する各ノ
ードは、ノード左上に示すアドレス(辞書の登録位置)
と、ノード内に示す拡張メモリの登録シンボル(そのア
ドレスに登録されている文字)と、ノード左下に示すビ
フォーメモリのアドレス(木構造の根方向に続く次の文
字のアドレス)とを管理するものである。この辞書構成
に従って、圧縮側から送られてくる参照番号6は、アド
レス6→アドレス4→アドレス1の連結リストに従って
文字列ABCであることが管理されることになる。As shown in FIG. 16, each node constituting the dictionary has an address (registered position in the dictionary) shown at the upper left of the node.
And managing the expanded memory registration symbol (the character registered at that address) inside the node and the before memory address (the address of the next character following the root of the tree structure) at the bottom left of the node Is. According to this dictionary structure, it is managed that the reference number 6 sent from the compression side is the character string ABC according to the linked list of address 6 → address 4 → address 1.
【0036】図15に示す処理フローは、復号化対象の
符号語列が与えられるときに、図14の辞書メモリの検
索処理と登録処理とを実行しつつ復元処理を実行するも
のであって、各ステップの処理は以下の通りである。The process flow shown in FIG. 15 is for executing the restoration process while performing the search process and the registration process of the dictionary memory of FIG. 14 when the code word string to be decoded is given. The processing of each step is as follows.
【0037】〔ステップ1〕 単一文字をアドレスとともに辞書に登録する。 登録した文字数→辞書への現登録文字数n n→NMIN 辞書検索用配列before[1,NMAX],ext[1,NMAX]を0に初
期化。[Step 1] A single character is registered in a dictionary together with an address. Number of registered characters → number of characters currently registered in dictionary nn → NMIN Initialize the dictionary search array before [1, NMAX], ext [1, NMAX] to 0.
【0038】〔ステップ2〕 最初の符号を読み込む。 CODE→OLDcode CODE→K 文字Kを出力する。 K→FINchar 〔ステップ3〕 次の符号入力codeを読む。 CODE→INcode 〔ステップ4〕新たな符号があるか否かを判断する。[Step 2] The first code is read. CODE → OLD code CODE → K Outputs character K. K → FIN char [Step 3] Read the next code input code. CODE → IN code [Step 4] It is determined whether or not there is a new code.
【0039】〔ステップ5〕ステップ4の判断で新たな
符号があると判断されるときに下記の処理を行う。CODE
が登録されているか否かを判断する。[Step 5] When it is determined in step 4 that there is a new code, the following processing is performed. CODE
It is determined whether or not is registered.
【0040】〔ステップ6〕ステップ5の判断でCODEが
登録されていないと判断されるときに下記の処理を行
う。 CODE≧NMIN; 〔ステップ7〕ステップ6の判断でCODE≧NMINと判断さ
れるときに下記の処理を行う。 ext[CODE] →Stack ; before[CODE]→CODE; 〔ステップ8〕ステップ6の判断でCODE≧NMINでないと
判断されるときに下記の処理を行う。 CODE→K 文字Kを出力する。 K→FINchar DO while (stack が空になるまで) [Stack topを出力; POP stack ; ] OLDcode →before[n] K→ext[n] n+1→n INcode→OLDcode 〔ステップ9〕 FINchar →Stack ; OLDcode →CODE;[Step 6] When it is determined in step 5 that the CODE is not registered, the following processing is performed. CODE ≧ NMIN; [Step 7] When CODE ≧ NMIN is determined in the determination in step 6, the following processing is performed. ext [CODE] → Stack; before [CODE] → CODE; [Step 8] When it is determined in step 6 that CODE ≧ NMIN is not satisfied, the following processing is performed. CODE → K Outputs character K. K → FINchar DO while (until stack is empty) [Stack top is output; POP stack;] OLDcode → before [n] K → ext [n] n + 1 → n INcode → OLDcode [Step 9] FINchar → Stack; OLDcode → CODE;
【0041】[0041]
【発明が解決しようとする課題】このように、従来のL
ZW符号では、記憶装置上に確保した領域上に辞書を作
成しながら、その辞書を使用して符号化処理/復号化処
理を行う。上述したように、辞書の内容は連結リストで
構成され、辞書検索時に連結リストを辿って符号語に符
号化し、また、文字に復元する。As described above, the conventional L
In the ZW code, while a dictionary is created in the area secured in the storage device, the encoding / decoding process is performed using the dictionary. As described above, the contents of the dictionary are composed of a linked list, and when the dictionary is searched, the linked list is followed to encode a code word and restore it to a character.
【0042】ところで、このような辞書検索処理は、記
憶装置上のデータが外部的な要因などで破壊されないと
いう前提条件のもとで成立する。しかし、圧縮復元装置
として構成した場合、記憶装置が破壊されたり、データ
が化けるといった障害も発生する。この場合、従来技術
では、誤ったデータが辞書から読み出されて符号化処理
や復元処理に使用されていても、それが正しいデータな
のか誤ったデータなのかを判断することができないとい
う問題点があった。By the way, such a dictionary search process is established under the precondition that the data on the storage device is not destroyed by an external factor or the like. However, when it is configured as a compression / decompression device, problems such as damage to the storage device and data corruption occur. In this case, in the conventional technique, even if erroneous data is read from the dictionary and used for the encoding process or the restoration process, it is not possible to determine whether the data is correct data or erroneous data. was there.
【0043】本発明はかかる事情に鑑みてなされたもの
であって、LZW符号によるデータ圧縮/復元処理を実
行する際に、外部ハッシュ法に従って辞書を構成すると
きにあって、高信頼性を実現できる新たなデータ圧縮処
理方式の提供と、高信頼性を実現できる新たなデータ復
元処理方式の提供を目的とするものである。The present invention has been made in view of the above circumstances, and realizes high reliability in constructing a dictionary according to an external hash method when executing data compression / decompression processing by the LZW code. It is an object of the present invention to provide a new data compression processing method that can be performed and a new data decompression processing method that can achieve high reliability.
【0044】[0044]
【課題を解決するための手段】図1に、本発明のデータ
圧縮処理を実装するデータ圧縮装置の原理構成、図2
に、本発明のデータ復元処理を実装するデータ復元装置
の原理構成を図示する。FIG. 1 shows the principle configuration of a data compression apparatus for implementing the data compression processing of the present invention, and FIG.
FIG. 1 illustrates the principle configuration of a data restoration device that implements the data restoration processing of the present invention.
【0045】図1において、10は本発明のデータ圧縮
処理を実装するデータ圧縮装置、11はデータ圧縮装置
10の備える辞書である。このデータ圧縮装置10は、
入力されたデータを互いに異なる文字列に分解し、この
文字列を参照番号とともに辞書11に管理していく構成
を採って、入力中のデータを辞書登録の最長一致文字列
の参照番号を用いて符号化する構成を採るものである。
辞書11は、文字列の参照番号をハッシュ・アドレスと
する外部ハッシュ法に従って、文字列と参照番号との対
応関係を管理する。In FIG. 1, 10 is a data compression device for implementing the data compression processing of the present invention, and 11 is a dictionary included in the data compression device 10. This data compression device 10
The input data is decomposed into different character strings, and this character string is managed in the dictionary 11 together with the reference number, and the data being input is used by using the reference number of the longest matching character string registered in the dictionary. It adopts a configuration for encoding.
The dictionary 11 manages the correspondence between the character string and the reference number according to the external hash method in which the reference number of the character string is used as the hash address.
【0046】すなわち、辞書11は、拡張メモリに従っ
て、現参照番号における文字情報を管理し、ファースト
メモリに従って、木構造の深さ方向に続く次の文字の参
照番号情報(アドレス情報)を管理し、ネクストメモリ
に従って、木構造の水平方向に続く次の文字の参照番号
情報を管理する構成を採るものである。例えば、図1に
示す辞書データを例にして説明するならば、文字列AB
は、アドレス1のA→アドレス4のBという木構造の深
さ方向に従って参照番号4を持つものとして管理され、
また、文字列AAは、アドレス1のA→アドレス4のB
→アドレス10のAという木構造の深さ/水平方向に従
って参照番号10を持つものとして管理されることにな
る。That is, the dictionary 11 manages character information at the current reference number according to the extended memory, and manages reference number information (address information) of the next character following the depth memory of the tree structure according to the first memory. According to the next memory, the reference number information of the next character continuing in the horizontal direction of the tree structure is managed. For example, if the dictionary data shown in FIG. 1 is taken as an example, the character string AB
Is managed as having a reference number 4 according to the depth direction of the tree structure of A of address 1 → B of address 4,
In addition, the character string AA is A at address 1 → B at address 4.
→ It is managed as having the reference number 10 according to the depth / horizontal direction of the tree structure of A at address 10.
【0047】12はデータ圧縮装置10の備える辞書検
索手段であって、入力データから分解する文字列が辞書
11に登録されているか否かを検索するもの、13はデ
ータ圧縮装置10の備える辞書登録手段であって、入力
データから分解する辞書登録の最長一致文字列とそれに
続く1文字との組み合わせの文字列を辞書11に登録す
るものである。Reference numeral 12 is a dictionary search means provided in the data compression apparatus 10 for searching whether or not a character string to be decomposed from input data is registered in the dictionary 11, and 13 is dictionary registration provided in the data compression apparatus 10. It is a means for registering in the dictionary 11 a character string of a combination of the longest matching character string registered in the dictionary, which is decomposed from the input data, and one character following it.
【0048】14は例えば辞書登録手段13に展開され
る付加手段であって、辞書登録手段13が文字列を辞書
11に登録するときに、その文字列が登録済であること
を表示する付加情報を参照番号に対応付けて付加するも
のである。この付加手段14は、登録済の付加情報に代
えて、例えばパリティ情報等のような辞書データの正誤
を特定可能とする付加情報を付加することがある。Reference numeral 14 denotes additional means developed in the dictionary registration means 13, for example, when the dictionary registration means 13 registers a character string in the dictionary 11, additional information indicating that the character string has been registered. Is added in association with the reference number. The adding means 14 may add additional information, such as parity information, which can specify whether the dictionary data is correct or incorrect, instead of the registered additional information.
【0049】15は例えば辞書検索手段12に展開され
る判定手段であって、辞書検索手段12が辞書11を検
索するときに、付加手段14により付加される付加情報
に従って辞書11から検索する文字列/参照番号の正誤
を判定するものである。Denoted by 15 is a determination means developed in the dictionary search means 12, for example, when the dictionary search means 12 searches the dictionary 11, a character string searched from the dictionary 11 according to the additional information added by the adding means 14. / Determines whether the reference number is correct.
【0050】図2において、20は本発明のデータ復元
処理を実装するデータ復元装置、21はデータ復元装置
20の備える辞書である。このデータ復元装置20は、
復元されたデータを互いに異なる文字列に分解し、この
文字列を参照番号とともに辞書に管理して、符号語の指
定する参照番号から辞書21中の対応する文字列を特定
していく構成を採って、入力中の符号語をこの特定する
文字列に置き換えていくことで復元化する構成を採るも
のである。辞書21は、文字列の参照番号をハッシュ・
アドレスとする外部ハッシュ法に従って、文字列と参照
番号との対応関係を管理する。In FIG. 2, reference numeral 20 is a data restoration device that implements the data restoration processing of the present invention, and reference numeral 21 is a dictionary included in the data restoration device 20. This data restoration device 20
The restored data is decomposed into different character strings, this character string is managed in a dictionary together with a reference number, and the corresponding character string in the dictionary 21 is specified from the reference number specified by the codeword. Then, the codeword being input is replaced with the specified character string to restore the codeword. The dictionary 21 hashes the reference numbers of the character strings.
The correspondence between the character string and the reference number is managed according to the external hash method that uses the address.
【0051】すなわち、辞書21は、拡張メモリに従っ
て、現参照番号における文字情報を管理し、ビフォーメ
モリに従って、木構造の根方向に続く次の文字の参照番
号情報を管理する構成を採るものである。例えば、図2
に示す辞書データを例にして説明するならば、圧縮側か
ら送られてくる参照番号6は、アドレス6→アドレス4
→アドレス1の連結リストに従って文字列ABCである
ことが管理されることになる。That is, the dictionary 21 manages the character information at the current reference number in accordance with the expanded memory, and manages the reference number information of the next character following the root of the tree structure in accordance with the before memory. .. For example, in FIG.
If the dictionary data shown in is taken as an example, the reference number 6 sent from the compression side is address 6 → address 4
→ The character string ABC is managed according to the linked list of address 1.
【0052】22はデータ復元装置20の備える辞書検
索手段であって、圧縮側から送られてくる符号語の指す
文字列を辞書21から検索するもの、23はデータ復元
装置20の備える辞書登録手段であって、復元データか
ら生成する辞書登録の最長一致文字列とそれに続く1文
字との組み合わせの文字列を辞書21に登録するもので
ある。Reference numeral 22 is a dictionary retrieval means provided in the data decompression device 20, which retrieves a character string pointed to by a code word sent from the compression side from the dictionary 21, and 23 is a dictionary registration means provided in the data decompression device 20. That is, the character string of the combination of the longest matching character string registered in the dictionary generated from the restored data and the following one character is registered in the dictionary 21.
【0053】24は例えば辞書登録手段23に展開され
る付加手段であって、辞書登録手段23が文字列を辞書
21に登録するときに、その文字列が登録済であること
を表示する付加情報を参照番号に対応付けて付加するも
のである。この付加手段24は、登録済の付加情報に代
えて、例えばパリティ情報等のような辞書データの正誤
を特定可能とする付加情報を付加することがある。Reference numeral 24 denotes additional means developed in the dictionary registration means 23. When the dictionary registration means 23 registers a character string in the dictionary 21, additional information indicating that the character string is already registered is displayed. Is added in association with the reference number. The adding unit 24 may add additional information, such as parity information, which can specify whether the dictionary data is correct or incorrect, instead of the registered additional information.
【0054】25は例えば辞書検索手段22に展開され
る判定手段であって、辞書検索手段22が辞書21を検
索するときに、付加手段24により付加される付加情報
に従って辞書21から検索する文字列/参照番号の正誤
を判定するものである。Reference numeral 25 is a judgment means which is developed in the dictionary search means 22, for example, and when the dictionary search means 22 searches the dictionary 21, a character string searched from the dictionary 21 according to the additional information added by the adding means 24. / Determines whether the reference number is correct.
【0055】[0055]
【作用】本発明のデータ圧縮装置10では、付加手段1
4は、辞書登録手段13が辞書11に登録されていない
文字列を参照番号を付して新たに辞書11に登録してい
くときに、その登録する文字列が登録済であることを表
示する付加情報(その登録辞書データの正誤を特定可能
とする付加情報のこともある)を参照番号に対応付けて
登録していく。In the data compression apparatus 10 of the present invention, the addition means 1
Reference numeral 4 indicates that, when the dictionary registration means 13 newly registers a character string not registered in the dictionary 11 with a reference number, the character string to be registered is already registered. The additional information (which may be the additional information that can specify whether the registered dictionary data is correct or incorrect) is registered in association with the reference number.
【0056】一方、判定手段15は、辞書検索手段12
が辞書11の辞書データを検索することで最長一致文字
列を検索していくときにあって、付加手段14により付
加される付加情報に従って、辞書検索手段12の検索す
る文字列/参照番号が確かに登録されていることを確認
(付加情報が登録辞書データの正誤を特定可能とするも
のである場合には、その検索辞書データに誤りがないこ
とを確認)して、登録済以外の文字列/参照番号の検索
(付加情報が登録辞書データの正誤を特定可能とするも
のである場合には、誤った検索辞書データの検索)に入
るときには、辞書検索手段12に対してエラーを通知し
ていく。On the other hand, the judging means 15 is the dictionary searching means 12
Is searching for the longest matching character string by searching the dictionary data of the dictionary 11, and the character string / reference number searched by the dictionary searching means 12 is sure according to the additional information added by the adding means 14. Confirm that the registered dictionary data has been registered (if the additional information can identify the correctness of the registered dictionary data, confirm that the search dictionary data is correct), / When entering a reference number search (wrong search search dictionary data search if additional information allows identification of correct / wrong registered dictionary data), the dictionary search means 12 is notified of the error. Go
【0057】このように、本発明のデータ圧縮装置10
では、入力されたデータを互いに異なる文字列に分解
し、この文字列を参照番号とともに辞書11に管理して
いく構成を採って、入力中のデータを辞書登録の最長一
致文字列の参照番号を用いて符号化する構成を採るとき
にあって、誤った辞書データによる誤った符号化処理の
実行を防止することができることから、高信頼性を実現
できるデータ圧縮処理を実行できるようになるのであ
る。As described above, the data compression apparatus 10 of the present invention
Then, the input data is decomposed into character strings different from each other, and this character string is managed in the dictionary 11 together with the reference number. The data being input is referred to as the reference number of the longest matching character string registered in the dictionary. Since it is possible to prevent erroneous encoding processing due to erroneous dictionary data at the time of adopting a configuration for encoding by using it, it becomes possible to perform data compression processing that can realize high reliability. ..
【0058】本発明のデータ復元装置20では、付加手
段24は、辞書登録手段23が辞書21に登録されてい
ない文字列を参照番号を付して新たに辞書21に登録し
ていくときに、その登録する文字列が登録済であること
を表示する付加情報(その登録辞書データの正誤を特定
可能とする付加情報のこともある)を参照番号に対応付
けて登録していく。In the data restoration device 20 of the present invention, when the dictionary registration means 23 newly adds a character string not registered in the dictionary 21 to the dictionary 21 by adding a reference number, the addition means 24 The additional information indicating that the character string to be registered is already registered (may be additional information that can specify the correctness of the registered dictionary data) is registered in association with the reference number.
【0059】一方、判定手段25は、辞書検索手段22
が辞書11の辞書データを検索することで文字列を復元
していくときにあって、付加手段24により付加される
付加情報に従って、辞書検索手段22の検索する文字列
/参照番号が確かに登録されていることを確認(付加情
報が登録辞書データの正誤を特定可能とするものである
場合には、その検索辞書データに誤りがないことを確
認)して、登録済以外の文字列/参照番号の検索(付加
情報が登録辞書データの正誤を特定可能とするものであ
る場合には、誤った検索辞書データの検索)に入るとき
には、辞書検索手段22に対してエラーを通知してい
く。On the other hand, the judging means 25 is the dictionary searching means 22.
When the character string is restored by searching the dictionary data of the dictionary 11, the character string / reference number searched by the dictionary searching means 22 is surely registered according to the additional information added by the adding means 24. Check that the additional information is correct (if the additional information can identify the correctness of the registered dictionary data, confirm that the search dictionary data is correct), and check the character string / reference other than registered When the search for a number (when the additional information makes it possible to specify whether the registered dictionary data is correct or incorrect) is searched, an error is notified to the dictionary search means 22.
【0060】このように、本発明のデータ復元装置20
では、復元されたデータを互いに異なる文字列に分解
し、この文字列を参照番号とともに辞書に管理して、符
号語の指定する参照番号から辞書21中の対応する文字
列を特定していく構成を採って、入力中の符号語をこの
特定する文字列に置き換えていくことで復元化する構成
を採るときにあって、誤った辞書データによる誤った復
元化処理の実行を防止することができることから、高信
頼性を実現できるデータ復元処理を実行できるようにな
るのである。Thus, the data restoration device 20 of the present invention
Then, the restored data is decomposed into different character strings, the character string is managed in a dictionary together with a reference number, and the corresponding character string in the dictionary 21 is specified from the reference number specified by the codeword. It is possible to prevent the execution of erroneous restoration processing due to erroneous dictionary data when the configuration is adopted in which the codeword being input is replaced with this specified character string. Therefore, it becomes possible to execute a data restoration process that can realize high reliability.
【0061】[0061]
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図3に、本発明のデータ圧縮復元装置の構成例を図
示する。EXAMPLES The present invention will be described in detail below with reference to examples. FIG. 3 illustrates a configuration example of the data compression / decompression device of the present invention.
【0062】図3において、処理対象となる原データ
(文字データあるいは符号語データ)は、DMA制御回
路100を介して入力される。制御手順としてのMPU
200は、入力された原データを、1文字と今までの文
字列の参照番号を辞書検索回路400の読込回路402
にセットした後、辞書検索回路400を起動する。In FIG. 3, original data (character data or codeword data) to be processed is input via the DMA control circuit 100. MPU as a control procedure
Reference numeral 200 is a reading circuit 402 of the dictionary search circuit 400 for inputting the input original data by using one character and the reference number of the character string up to now.
Then, the dictionary search circuit 400 is activated.
【0063】辞書検索回路400は、以後、辞書メモリ
300より1文字伸ばした文字列の候補文字を読み込
み、一致検査回路405で入力文字と候補文字との一致
検査を行い、連結検出回路404で候補文字の有無の検
出を行う。ここで、一致検索の対象のデータが既に登録
済のデータであるかを、辞書メモリ300中の使用中フ
ラグを参照して確認する。使用中であれば処理を続け、
未使用ならば無効な検索であるとして処理を中断する。Thereafter, the dictionary search circuit 400 reads the candidate character of the character string extended by one character from the dictionary memory 300, the match check circuit 405 checks the match between the input character and the candidate character, and the connection detection circuit 404 selects the candidate. The presence / absence of characters is detected. Here, it is confirmed by referring to the in-use flag in the dictionary memory 300 whether or not the data of the matching search target is already registered data. Continue processing if in use,
If it is not used, the processing is interrupted because the search is invalid.
【0064】パイプライン制御回路403は、一致検査
回路405による入力文字と候補文字の照合と、連結検
出回路404による入力文字と候補文字の有無とに並行
して、辞書メモリ300に次の候補文字の読み出しを指
示する。このように、パイプライン制御回路403でパ
イプライン処理を行うことで、候補文字の複数個ごとの
検索と照合処理が辞書メモリ300のサイクルタイムで
実行できる。The pipeline control circuit 403 executes the next candidate character in the dictionary memory 300 in parallel with the matching between the input character and the candidate character by the match checking circuit 405 and the presence or absence of the input character and the candidate character by the concatenation detection circuit 404. To read. In this way, by performing pipeline processing by the pipeline control circuit 403, it is possible to perform search and collation processing for each plurality of candidate characters within the cycle time of the dictionary memory 300.
【0065】更に、辞書検索回路400には、連続アド
レス回路401が設けられ、連続アドレスを発生して、
読込回路402に辞書メモリ300の連続アドレスに登
録されているハッシュアドレス及び候補文字を読み出す
ように処理する。Further, the dictionary search circuit 400 is provided with a continuous address circuit 401 for generating continuous addresses,
Processing is performed so that the reading circuit 402 reads out the hash address and the candidate character registered in the continuous address of the dictionary memory 300.
【0066】LZW符号の符号化では、辞書メモリ30
0中の最大長一致する文字列を求める。従って、入力文
字を付加して文字列を逐次1文字ずつ伸ばしていき、候
補文字がなくなったところで最大一致長の文字列である
ことが分かる。このとき、最長一致文字列までは、アド
レスωを使用した参照番号で表されており、MPU20
0は、その参照番号ωを入出力ポート500から外部に
圧縮した符号として出力する。また、参照番号ωと最終
入力文字の組みを辞書メモリ300に登録する。このと
き、辞書メモリ300に、その対象アドレスの使用を示
すフラグを1として書き込む。In encoding the LZW code, the dictionary memory 30 is used.
The character string with the maximum length in 0 is found. Therefore, it is understood that the input character is added and the character string is sequentially extended one character at a time, and when there are no candidate characters, the character string has the maximum matching length. At this time, up to the longest match character string is represented by reference numbers using the address ω, and the MPU 20
0 outputs the reference number ω as a code compressed from the input / output port 500 to the outside. Also, a set of the reference number ω and the last input character is registered in the dictionary memory 300. At this time, a flag indicating the use of the target address is written as 1 in the dictionary memory 300.
【0067】一方、LZW符号の復元は、入力コードで
辞書メモリ300をアクセスして、連結リストを前に辿
りながら1文字ずつ復元し、参照番号が0になったとき
に、既に復元した複数の文字列を文字列データとして出
力する。このとき、圧縮処理と同様に、復元対象の符号
語(参照番号)が既に辞書メモリ300に登録済である
か否かを確認していくことで、蓄積/伝送による符号語
の誤りを発見していくことになる。On the other hand, in order to restore the LZW code, the dictionary memory 300 is accessed by the input code to restore the characters one by one while tracing the linked list forward. Outputs a character string as character string data. At this time, similar to the compression process, by checking whether or not the code word (reference number) to be decompressed is already registered in the dictionary memory 300, an error in the code word due to storage / transmission is detected. I will go.
【0068】図4に、図1で説明したデータ圧縮装置1
0の実行する処理フローの一実施例を図示する。図中、
図12に示した従来の処理フローと同一の処理を実行す
るステップについては、同一のステップ番号で表してあ
る。FIG. 4 shows the data compression device 1 described with reference to FIG.
0 illustrates an example of a processing flow executed by 0. In the figure,
Steps that perform the same processing as the conventional processing flow shown in FIG. 12 are represented by the same step numbers.
【0069】図4の処理フローと図12の処理フローと
を比較すれば分かるように、本発明のデータ圧縮装置1
0は、ステップ1とステップ2との間で、ステップ1-1
として、FLG[1,NMAX] を0に初期化する処理を行い、ス
テップ6とステップ7との間で、ステップ6-1として、
FLG[i]=1であるか否かを判断して、FLG[i]=1である
と判断するときにはステップ7に進むとともに、FLG[i]
=1でないと判断するときにはエラーと判断して処理を
中断する処理を行い、ステップ12/13とステップ1
4との間で、ステップ12-1として、1→FLG[ω] の処
理を行うことになる。As can be seen by comparing the processing flow of FIG. 4 with the processing flow of FIG. 12, the data compression apparatus 1 of the present invention is
0 means that between step 1 and step 2, step 1-1
As a result, the process of initializing FLG [1, NMAX] to 0 is performed, and between step 6 and step 7, as step 6-1,
When it is determined whether FLG [i] = 1, and when it is determined that FLG [i] = 1, the process proceeds to step 7 and FLG [i]
When it is judged that = 1 is not satisfied, the processing is judged to be an error and the processing is interrupted.
In step 12-1, the process of 1 → FLG [ω] will be performed between the first and second steps.
【0070】すなわち、辞書データを登録するときに、
ステップ12-1で、その辞書データが登録済であること
を表示する使用フラグをONに設定して、辞書データを
検索するときに、ステップ6-1で、使用フラグがONで
あることを確認しつつ検索処理を実行していくように処
理するのである。That is, when registering dictionary data,
In step 12-1, the usage flag indicating that the dictionary data has been registered is set to ON, and when searching the dictionary data, in step 6-1 it is confirmed that the usage flag is ON. While performing the search process, the process is performed.
【0071】図5に、図2で説明したデータ復元装置2
0の実行する処理フローの一実施例を図示する。図中、
図15に示した従来の処理フローと同一の処理を実行す
るステップについては、同一のステップ番号で表してあ
る。FIG. 5 shows the data restoration device 2 described with reference to FIG.
0 illustrates an example of a processing flow executed by 0. In the figure,
Steps that execute the same processing as the conventional processing flow shown in FIG. 15 are represented by the same step numbers.
【0072】図5の処理フローと図15の処理フローと
を比較すれば分かるように、本発明のデータ復元装置2
0は、ステップ1とステップ2との間で、ステップ1-1
として、FLG[1,NMAX] を0に初期化する処理を行い、ス
テップ6とステップ7との間で、ステップ6-1として、
FLG[CODE] =1であるか否かを判断して、FLG[CODE]=
1であると判断するときにはステップ7に進むととも
に、FLG[CODE] =1でないと判断するときにはエラーと
判断して処理を中断する処理を行い、ステップ8とステ
ップ3との間で、ステップ8-1として、1→FLG[n]の処
理を行うことになる。As can be seen by comparing the processing flow of FIG. 5 with the processing flow of FIG. 15, the data restoration device 2 of the present invention can be used.
0 means that between step 1 and step 2, step 1-1
As a result, the process of initializing FLG [1, NMAX] to 0 is performed, and between step 6 and step 7, as step 6-1,
FLG [CODE] = Judge whether FLG [CODE] = 1
When it is determined that the value is 1, the process proceeds to step 7. When it is determined that FLG [CODE] = 1 is not satisfied, the process is determined to be an error and the process is interrupted. As 1, the processing of 1 → FLG [n] is performed.
【0073】すなわち、辞書データを登録するときに、
ステップ8-1で、その辞書データが登録済であることを
表示する使用フラグをONに設定して、辞書データを検
索するときに、ステップ6-1で、使用フラグがONであ
ることを確認しつつ検索処理を実行していくように処理
するのである。That is, when registering dictionary data,
In step 8-1, the usage flag indicating that the dictionary data has been registered is set to ON, and when searching the dictionary data, it is confirmed in step 6-1 that the usage flag is ON. While performing the search process, the process is performed.
【0074】図示実施例について説明したが、本発明は
これに限定されるものではない。例えば、実施例では、
文字列を辞書に登録するときに、その文字列が登録済で
あることを表示する使用フラグを付加することで本発明
を開示したが、この使用フラグに代えて、パリティ情報
等のように登録辞書データの正誤を可能とする付加情報
を付加するものであってもよい。また、実施例では、L
ZW符号に従って本発明を開示したが、動的辞書型ジブ
ーレンペル符号の符号化/復元処理に従うものに対して
もそのまま適用できるのである。Although the illustrated embodiment has been described, the present invention is not limited to this. For example, in the example,
The present invention has been disclosed by adding a use flag indicating that the character string is already registered when registering the character string in the dictionary. However, instead of the use flag, registration such as parity information is performed. It is also possible to add additional information that enables correctness of the dictionary data. Further, in the embodiment, L
Although the present invention has been disclosed according to the ZW code, it can be applied as it is to the one according to the encoding / restoring processing of the dynamic dictionary type Dibulenpel code.
【0075】[0075]
【発明の効果】以上説明したように、本発明によれば、
入力されたデータを互いに異なる文字列に分解し、この
文字列を参照番号とともに辞書に管理していく構成を採
って、入力中のデータを辞書登録の最長一致文字列の参
照番号を用いて符号化する構成を採るときにあって、誤
った辞書データによる誤った符号化処理の実行を防止す
ることができることから、高信頼性を実現できるデータ
圧縮処理を実行できるようになる。As described above, according to the present invention,
The input data is decomposed into different character strings, and this character string is managed in a dictionary together with a reference number.The data being input is encoded using the reference number of the longest matching character string registered in the dictionary. Since it is possible to prevent erroneous encoding processing due to erroneous dictionary data at the time of adopting a configuration for encoding, it is possible to perform data compression processing that can realize high reliability.
【0076】また、復元されたデータを互いに異なる文
字列に分解し、この文字列を参照番号とともに辞書に管
理して、符号語の指定する参照番号から辞書中の対応す
る文字列を特定していく構成を採って、入力中の符号語
をこの特定する文字列に置き換えていくことで復元化す
る構成を採るときにあって、誤った辞書データによる誤
った復元化処理の実行を防止することができることか
ら、高信頼性を実現できるデータ復元処理を実行できる
ようになる。Further, the restored data is decomposed into character strings different from each other, this character string is managed in the dictionary together with the reference number, and the corresponding character string in the dictionary is specified from the reference number designated by the code word. To prevent the execution of erroneous restoration processing due to erroneous dictionary data when there is a configuration in which the codeword being input is replaced with this specified character string for restoration. Therefore, it becomes possible to execute a data restoration process that can realize high reliability.
【図1】本発明の原理構成図である。FIG. 1 is a principle configuration diagram of the present invention.
【図2】本発明の原理構成図である。FIG. 2 is a principle configuration diagram of the present invention.
【図3】本発明の実施例構成図である。FIG. 3 is a configuration diagram of an embodiment of the present invention.
【図4】本発明のLZW符号によるデータ符号化処理の
説明図である。FIG. 4 is an explanatory diagram of a data encoding process using an LZW code according to the present invention.
【図5】本発明のLZW符号によるデータ復元化処理の
説明図である。FIG. 5 is an explanatory diagram of a data restoration process using an LZW code according to the present invention.
【図6】LZW符号によるデータ符号化処理の説明図で
ある。FIG. 6 is an explanatory diagram of a data encoding process using an LZW code.
【図7】LZW符号によるデータ復元化処理の説明図で
ある。FIG. 7 is an explanatory diagram of a data restoration process using an LZW code.
【図8】LZW符号における辞書登録構成の説明図であ
る。FIG. 8 is an explanatory diagram of a dictionary registration configuration in LZW code.
【図9】LZW符号によるデータ符号化処理の説明図で
ある。FIG. 9 is an explanatory diagram of a data encoding process using an LZW code.
【図10】LZW符号によるデータ復元化処理の説明図
である。FIG. 10 is an explanatory diagram of a data restoration process using an LZW code.
【図11】外部ハッシュ法のリスト構造の説明図であ
る。FIG. 11 is an explanatory diagram of a list structure of an external hash method.
【図12】外部ハッシュ法を用いた従来のLZW符号に
よるデータ符号化処理の説明図である。FIG. 12 is an explanatory diagram of data encoding processing by a conventional LZW code using the external hash method.
【図13】従来の辞書構成の説明図である。FIG. 13 is an explanatory diagram of a conventional dictionary configuration.
【図14】従来の辞書メモリの説明図である。FIG. 14 is an explanatory diagram of a conventional dictionary memory.
【図15】外部ハッシュ法を用いた従来のLZW符号に
よるデータ復元化処理の説明図である。FIG. 15 is an explanatory diagram of a data restoration process using a conventional LZW code using the external hash method.
【図16】従来の辞書構成の説明図である。FIG. 16 is an explanatory diagram of a conventional dictionary configuration.
【図17】従来の辞書メモリの説明図である。FIG. 17 is an explanatory diagram of a conventional dictionary memory.
10 データ圧縮装置 11 辞書 12 辞書検索手段 13 辞書登録手段 14 付加手段 15 判定手段 20 データ復元装置 21 辞書 22 辞書検索手段 23 辞書登録手段 24 付加手段 25 判定手段 10 data compression device 11 dictionary 12 dictionary search means 13 dictionary registration means 14 addition means 15 determination means 20 data decompression device 21 dictionary 22 dictionary search means 23 dictionary registration means 24 addition means 25 determination means
フロントページの続き (72)発明者 吉田 茂 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内Front page continued (72) Inventor Shigeru Yoshida 1015 Kamiodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Fujitsu Limited
Claims (4)
に分解し、該文字列を参照番号とともに辞書に管理して
いく構成を採って、入力中のデータを辞書登録の最長一
致文字列の参照番号を用いて符号化する構成を採るデー
タ圧縮処理方式において、 辞書が、文字列の参照番号をハッシュ・アドレスとする
外部ハッシュ法に従って、文字列と参照番号との対応関
係を管理する構成を採るとともに、 文字列が辞書に登録されるときに、該文字列が登録済で
あることを表示する付加情報を参照番号に対応付けて付
加する付加手段(14)と、 辞書検索時に、上記付加手段(14)により付加される付加
情報に従って辞書から検索する文字列/参照番号の正誤
を判定する判定手段(15)とを備えることを、 特徴とするデータ圧縮処理方式。1. A structure in which input data is decomposed into character strings different from each other and the character strings are managed in a dictionary together with a reference number, and the input data is referred to the longest matching character string registered in the dictionary. In the data compression processing method that employs a configuration of encoding using numbers, the dictionary employs a configuration that manages the correspondence relationship between the character string and the reference number according to the external hash method that uses the reference number of the character string as the hash address. At the same time, when the character string is registered in the dictionary, an adding means (14) for adding the additional information indicating that the character string has been registered in association with the reference number, and the adding means for searching the dictionary. A data compression processing method, comprising: a determination unit (15) for determining whether a character string / reference number to be searched from a dictionary according to the additional information added by (14).
いて、 付加手段(14)は、登録済の付加情報に代えて、辞書デー
タの正誤を特定可能とする付加情報を付加するととも
に、判定手段(15)は、この付加情報に従って辞書から検
索する文字列/参照番号の正誤を判定するよう処理する
ことを、 特徴とするデータ圧縮処理方式。2. The data compression processing method according to claim 1, wherein the adding means (14) adds additional information for identifying whether the dictionary data is correct or incorrect, instead of the registered additional information, and the determining means. (15) is a data compression processing method characterized by performing processing to determine whether the character string / reference number searched from the dictionary is correct or not according to the additional information.
に分解し、該文字列を参照番号とともに辞書に管理し
て、符号語の指定する参照番号から該辞書中の対応する
文字列を特定していく構成を採って、入力中の符号語を
この特定する文字列に置き換えていくことで復元化する
構成を採るデータ復元処理方式において、 辞書が、文字列の参照番号をハッシュ・アドレスとする
外部ハッシュ法に従って、文字列と参照番号との対応関
係を管理する構成を採るとともに、 文字列が辞書に登録されるときに、該文字列が登録済で
あることを表示する付加情報を参照番号に対応付けて付
加する付加手段(24)と、 辞書検索時に、上記付加手段(24)により付加される付加
情報に従って辞書から検索する文字列/参照番号の正誤
を判定する判定手段(25)とを備えることを、 特徴とするデータ復元処理方式。3. The restored data is decomposed into character strings different from each other, the character strings are managed in a dictionary together with a reference number, and a corresponding character string in the dictionary is specified from a reference number designated by a codeword. In the data restoration processing method, in which the codeword being input is replaced with this specified character string, the dictionary uses the reference number of the character string as the hash address. According to the external hash method, the correspondence between the character string and the reference number is managed, and when the character string is registered in the dictionary, the additional information indicating that the character string has been registered is added to the reference number. And an addition means (24) for associating with the above, and a determination means (25) for determining whether the character string / reference number to be searched from the dictionary is correct according to the additional information added by the addition means (24) at the time of dictionary search. Equipped with A data restoration processing method characterized by that.
いて、 付加手段(24)は、登録済の付加情報に代えて、辞書デー
タの正誤を特定可能とする付加情報を付加するととも
に、判定手段(25)は、この付加情報に従って辞書から検
索する文字列/参照番号の正誤を判定するよう処理する
ことを、 特徴とするデータ復元処理方式。4. The data restoration processing method according to claim 3, wherein the adding means (24) adds additional information for identifying whether the dictionary data is correct or incorrect, instead of the registered additional information, and the determining means. (25) is a data restoration processing method characterized by performing processing so as to determine whether the character string / reference number searched from the dictionary is correct according to the additional information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4822392A JPH05252049A (en) | 1992-03-05 | 1992-03-05 | Data compression processing system and data decoding processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4822392A JPH05252049A (en) | 1992-03-05 | 1992-03-05 | Data compression processing system and data decoding processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05252049A true JPH05252049A (en) | 1993-09-28 |
Family
ID=12797423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4822392A Withdrawn JPH05252049A (en) | 1992-03-05 | 1992-03-05 | Data compression processing system and data decoding processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05252049A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006062142A1 (en) * | 2004-12-07 | 2006-06-15 | Nippon Telegraph And Telephone Corporation | Information compression/encoding device, its decoding device, method thereof, program thereof, and recording medium containing the program |
JP2014082762A (en) * | 2012-10-15 | 2014-05-08 | Samsung Electronics Co Ltd | Data compression apparatus and method, and memory system including data compression apparatus |
US9628110B2 (en) | 2015-07-16 | 2017-04-18 | Fujitsu Limited | Computer-readable recording medium, encoding apparatus, encoding method, comparison apparatus, and comparison method |
-
1992
- 1992-03-05 JP JP4822392A patent/JPH05252049A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006062142A1 (en) * | 2004-12-07 | 2006-06-15 | Nippon Telegraph And Telephone Corporation | Information compression/encoding device, its decoding device, method thereof, program thereof, and recording medium containing the program |
US7667630B2 (en) | 2004-12-07 | 2010-02-23 | Nippon Telegraph And Telephone Corporation | Information compression-encoding device, its decoding device, method thereof, program thereof, and recording medium storing the program |
JP2014082762A (en) * | 2012-10-15 | 2014-05-08 | Samsung Electronics Co Ltd | Data compression apparatus and method, and memory system including data compression apparatus |
US9628110B2 (en) | 2015-07-16 | 2017-04-18 | Fujitsu Limited | Computer-readable recording medium, encoding apparatus, encoding method, comparison apparatus, and comparison method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9940191B2 (en) | Concurrent error detection in a ternary content-addressable memory (TCAM) device | |
WO2020001638A1 (en) | Method and apparatus for improving turbo decoding performance, and computer device | |
JPH05252049A (en) | Data compression processing system and data decoding processing system | |
JP3038223B2 (en) | Data compression method | |
US8463759B2 (en) | Method and system for compressing data | |
JP3038233B2 (en) | Data compression and decompression device | |
JP2952067B2 (en) | Data compression method | |
US6047396A (en) | Digital data storage system including phantom bit storage locations | |
JP2952068B2 (en) | Data compression and decompression method | |
WO2020088211A1 (en) | Data compression method and related apparatus, and data decompression method and related apparatus | |
JPH05241778A (en) | Data compression and restoration system | |
JP2693338B2 (en) | Error control processing method in data compression / decompression processing | |
JP3053656B2 (en) | Dictionary registration method in data compression | |
JP3038234B2 (en) | Dictionary search method for data compression equipment | |
JP3103172B2 (en) | Dictionary search method | |
JP3117760B2 (en) | Data restoration method | |
JP2957801B2 (en) | Data compression method and its restoration method | |
JP3115066B2 (en) | Dictionary search method | |
WO2023092723A1 (en) | Data error correction method and apparatus, and electronic device | |
JPH05298061A (en) | System and device for compressing and restoring data | |
JPH09232967A (en) | Data compressing device and restoring device | |
JP3058931B2 (en) | Dictionary registration method for data compression / decompression | |
JP4380052B2 (en) | Failure detection method and failure detection device for slide dictionary | |
JPH05250137A (en) | Data compressing/restoring system | |
JP3054183B2 (en) | Dictionary rewriting method of data compression 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: 19990518 |