JP3350118B2 - Data encoding method and data restoration method - Google Patents
Data encoding method and data restoration methodInfo
- Publication number
- JP3350118B2 JP3350118B2 JP31958092A JP31958092A JP3350118B2 JP 3350118 B2 JP3350118 B2 JP 3350118B2 JP 31958092 A JP31958092 A JP 31958092A JP 31958092 A JP31958092 A JP 31958092A JP 3350118 B2 JP3350118 B2 JP 3350118B2
- Authority
- JP
- Japan
- Prior art keywords
- dictionary
- data
- initial
- learning
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、データ符号化方式、及
びデータ復元方式に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data encoding system and a data restoration system.
【0002】[0002]
【従来の技術】近年、OA(オフィス・オートメーショ
ン)の発達に伴い、一文書中に文字、図形、画像など様
々のメディアを混在して取り込めるようになってきてい
る。そして、文字コードや白黒2値画像等の混在情報
が、それらのレイアウト情報とともに、文書データとし
てG4ファクシミリや光ディスクファイル・システムな
どで扱われるようになってきており、それらの情報のデ
ータ量も急速に増加してきている。これらのマルチメデ
ィアから成る文書情報をディジタルデータとして利用す
るとき、一般に、画像情報のデータ量は文字コードのデ
ータ量に比較して10倍〜数10倍と多くなる。このた
め、データ蓄積やデータ伝送等で、画像情報を扱うとき
は、それらの処理を効率良く行うために、データの中の
冗長な部分を省いてデータ量を圧縮することにより、記
憶容量の削減や伝送の効率化を図っている。2. Description of the Related Art In recent years, with the development of office automation (OA), various media such as characters, figures, images, and the like can be mixed in one document. Mixed information such as character codes and black-and-white binary images is now handled as document data in G4 facsimile and optical disk file systems, etc., along with their layout information. The amount of such information is also rapidly increasing. It is increasing. When document information composed of such multimedia is used as digital data, the data amount of image information is generally ten times to several tens times larger than the data amount of character codes. For this reason, when image information is handled in data storage or data transmission, etc., in order to perform such processing efficiently, the amount of data is compressed by omitting redundant portions in the data, thereby reducing the storage capacity. And transmission efficiency.
【0003】しかしながら、大容量のファイルシステム
や文書データベースでは、文書データ中の文字コード情
報も全体として大きなものとなるため、画像情報のみな
らず文字コード情報の圧縮も必要となってくる。However, in a large-capacity file system or a document database, the character code information in the document data becomes large as a whole, so that not only image information but also character code information must be compressed.
【0004】文字コードや画像データなどの様々のデー
タを一つの方式でデータ圧縮できる方法として、ユニバ
ーサル符号化方式が知られており、その代表的な方法と
して、例えば、ジブ・レンペル符号(宗像清治、「Ziv-
Lempelのデータ圧縮法」、情報処理、Vol.26,No.1,Jan.
1985年参照)がある。A universal encoding method is known as a method capable of compressing various data such as character codes and image data by one method. As a representative method , for example, a Jib Lempel code (Seiji Munakata) , "Ziv-
Lempel's Data Compression Method, '' Information Processing, Vol. 26, No. 1, Jan.
1985).
【0005】このジブ・レンペル符号には、 ユニバーサル型と 増分分解型(Incremental Paring) の2つのアルゴリズムがある。There are two algorithms for the Jib-Lempel code, a universal type and an incremental paring type.
【0006】さらに、ユバーサル型アルゴリズムの改良
として、LZSS符号がある(T.C.Bell,"Better OPM/L
Text Compression",IEEE Trans. on Commun., Vol.COM-
34,No.12,Dec.1986参照)。Further, as an improvement of the universal algorithm, there is an LZSS code (TCBell, "Better OPM / L
Text Compression ", IEEE Trans. On Commun., Vol.COM-
34, No. 12, Dec. 1986).
【0007】また、増分分解型アルゴリズムにも、その
改良型として、LZW(Lempel-Ziv-Welch )符号がある
(T.A. Welch,"A Technique for High-Performance Data
Compression",Computer,June 1984 参照)。[0007] An LZW (Lempel-Ziv-Welch) code is also an improved version of the incremental decomposition type algorithm.
(TA Welch, "A Technique for High-Performance Data
Compression ", Computer, June 1984).
【0008】これらの符号化方式の内、高速処理ができ
ることと、アルゴリズムが簡単であることから、最近
は、LZW符号が、記憶装置に格納するファイルの圧縮
などに使用されるようになってきている。[0008] Among these encoding methods, LZW codes have recently been used for compression of files stored in storage devices because of their high speed processing and simple algorithms. I have.
【0009】ここで、上記ユニバーサル符号化の代表的
な方法であるジブ・レンペル符号のユニバーサル型及び
増分分解型の2つのアルゴリズムについて説明する。 1.ユニバーサル型のアルゴリズム このアルゴリズムは、演算量が多いが、高い圧縮率が得
られるものであり、符号化するデータを、過去のデータ
系列の任意の位置から一致する最大長の系列(部分列)
に区切り、過去の系列の複製として符号化する方法であ
る。[0009] Here will be described the two algorithms universal type and incremental decomposition type of Ziv Lempel coding is a typical method of the universal coding. 1. Universal type algorithm This algorithm requires a large amount of computation, but can provide a high compression rate. The maximum length sequence (subsequence) that matches data to be encoded from an arbitrary position in the past data sequence
And encodes it as a copy of a past series.
【0010】このようなユニバーサル型ジブ・レンペル
符号の符号化の基本概念を図11(a) に示す。同図(a)
に示すPバッファには過去のデータ系列である既に符号
化済みの入力データ「・・・abc・・・」が格納され
ている。一方、Qバッファにはこれから符号化するデー
タ(文字列)「abcdef」が入力・格納されてい
る。FIG. 11A shows the basic concept of the encoding of such a universal jib Lempel code. Figure (a)
.. Abc... Stored in the P buffer shown in FIG. On the other hand, data (character string) “abcdef” to be encoded is input and stored in the Q buffer.
【0011】このような状態において、Qバッファ内の
データを符号化する際には、Qバッファのデータ系列を
キーとしてPバッファ内のデータ系列を走査し、Pバッ
ファ内でQバッファ内のデータ系列に一致する最大長の
部分列(同図(a) の例では「abc」)を求める。そし
て、Pバッファ中のこの最大長の部分列を指定するため
に、同図(b) に示す形式の情報の組を符号化する。この
情報の組は、「Pバッファ中における最大一致系列の開
始位置」(同図(a) の例では「a」のアドレス)、「一
致する長さ」(同図(a) の例では「3」)、及び「次の
シンボル」(同図(a) の例では「d」)の3個の情報か
らなる。In such a state, when encoding the data in the Q buffer, the data sequence in the P buffer is scanned using the data sequence in the Q buffer as a key, and the data sequence in the Q buffer is scanned in the P buffer. Is obtained ("abc" in the example of FIG. 3A). Then, in order to specify the substring having the maximum length in the P buffer, a set of information in the format shown in FIG. This set of information includes "the start position of the maximum matching sequence in the P buffer" (the address of "a" in the example of FIG. 3A), and "length of matching" (in the example of FIG. 3 "), and" next symbol "(" d "in the example of FIG. 3A).
【0012】続いて、このQバッファ内の符号化した系
列(この場合、「abc」)をPバッファ内に移動・格
納して新たな過去のデータ系列を得る。以下、Qバッフ
ァ内の残りのデータ系列「def」についても、同様の
操作を繰り返し、Qバッファ内の残りのデータ系列をP
バッファ内に既に格納されている部分列に分解し、上述
のようにして符号化すると共に、Pバッファ内のデータ
系列を更新する。Subsequently, the encoded sequence (in this case, "abc") in the Q buffer is moved and stored in the P buffer to obtain a new past data sequence. Hereinafter, the same operation is repeated for the remaining data series “def” in the Q buffer, and the remaining data series in the Q buffer is
The data sequence is decomposed into partial strings already stored in the buffer, encoded as described above, and the data series in the P buffer is updated.
【0013】2.増分分解型のアルゴリズム このアルゴリズムは、圧縮率はユニバーサル型より劣る
が、アルゴリズムが簡単であり、計算も容易であること
から高速処理ができる。2. Incremental decomposition type algorithm Although this algorithm is inferior in compression ratio to the universal type, the algorithm is simple and the calculation is easy, so that high-speed processing can be performed.
【0014】このアルゴリズムの代表的な方法であるL
ZW符号化の方法を、図12に示すフローチャート、図
13に示す辞書(学習辞書)、及び図14に示すデータ
変換の模式図を用いて説明する。L which is a typical method of this algorithm
The ZW encoding method will be described with reference to a flowchart shown in FIG. 12, a dictionary (learning dictionary) shown in FIG. 13, and a schematic diagram of data conversion shown in FIG.
【0015】LZW符号化は、書き替え可能な辞書(学
習用辞書)を1個持ち、入力文字列を相異なる文字列
(部分列)に分け、これらの文字列を出現した順に参照
番号を付けて上記辞書に登録すると共に、現在入力して
いる文字列を、上記辞書に既に登録されている最大長の
一致する文字列に割り当てられた参照番号で表わすこと
により符号化するものである。尚、以後の説明では、情
報理論で用いられる呼称を踏襲し、データの1ワード単
位を文字と呼び、データが任意ワードつながったものを
文字列と呼ぶ。The LZW encoding has one rewritable dictionary (learning dictionary), divides an input character string into different character strings (substrings), and assigns reference numbers in the order in which these character strings appear. And registering the character string currently input in the dictionary with a reference number assigned to a matching character string of the maximum length already registered in the dictionary. In the following description, one word unit of data is referred to as a character, and data connected with an arbitrary word is referred to as a character string, following the name used in information theory.
【0016】LZW符号化処理では、まず、ステップS
1で、予め辞書DC に、全文字につき一文字から成る文
字列を登録する初期化を行う。即ち、例えば、一文字を
8ビットコードで符号化する場合には、最大256種類
の全文字につき一文字からなる文字列を、辞書DC のア
ドレス0〜255番地に初期登録する。これにより、例
えば図13に示すように、辞書DC のアドレス0、1、
2、・・・、255に、アルファベット「a」、
「b」、「c」、・・・や、ひらがな、カタカナ、数字
等が登録される。尚、図13の左側に示す文字列テーブ
ルB1は説明を容易なものとするために、補助的に示し
たものである。In the LZW encoding process, first, at step S
In step 1, initialization is performed to register in advance a character string consisting of one character for every character in the dictionary DC. That is, for example, when one character is encoded by an 8-bit code, a character string consisting of one character for every 256 characters at maximum is initially registered at addresses 0 to 255 of the dictionary DC. Thus, for example, as shown in FIG. 13 , addresses 0, 1,.
, 255, the alphabet "a",
“B”, “c”,..., Hiragana, katakana, numerals, and the like are registered. It should be noted that the character string table B1 shown on the left side of FIG. 13 is supplementarily shown for ease of explanation.
【0017】以下の説明では、説明を分かり易くするた
めに、図14に示すような入力文字列が入力された場合
の例を取り上げて説明する。まず、ステップS1で、辞
書DC の書込用先頭アドレスnに、上記初期登録された
最後の文字列の格納アドレスの次のアドレスである「2
56」を、新たに登録する文字列の辞書DC への格納ア
ドレスとして設定する。In the following description, an example in which an input character string as shown in FIG. 14 is input will be described for easy understanding. First, at step S1, the leading address n for writing dictionary D C, which is the next address of the storage address of the last character string the initial registration "2
56 "is set as the storage address to the dictionary D C of the character string to be newly registered.
【0018】続いて、同じくステップS1で、入力され
た最初の文字Kをキーデータ(インデックス)として辞
書Dc を検索し、参照番号ω(辞書DC に登録されてい
る文字Kの参照番号)を求め、これを語頭文字列(prefi
x string) とする。これにより、入力文字列が、例え
ば、図14に示すような「ababcbababaaa
aaaa」であれば、最初の文字Kである「a」をイン
デックスとして辞書DCが検索され、「a」の参照番号
「0」が参照番号ωとして求められ、この参照番号
「0」が語頭文字列となる(図14の出力コードの欄を
参照)。[0018] Then, similarly in step S1, searches the dictionary D c the first character K which is input as the key data (index), reference numeral omega (reference number of a character K which is registered in the dictionary D C) And assign this to the initial string (prefi
x string). As a result, the input character string is changed to, for example, "ababcbababaaaa" as shown in FIG.
If aaaa ", dictionary D C is searched for, which is the first letter K" a "as an index," obtained as a reference number "0" of a "reference number ω, the reference number" 0 "is the word This is the initial character string (see the output code column in FIG. 14).
【0019】次に、ステップS2で、入力文字列の次の
文字Kを読む。これにより、上記最初の入力文字の
「a」の次の文字「b」が読み込まれる。続いて、ステ
ップS3で、文字Kがあるか否かを判別する。これは、
入力文字列がまだ終了していないか否かを判別する処理
である。Next, in step S2, the next character K of the input character string is read. Thus, the character “b” next to the first input character “a” is read. Subsequently, in a step S3, it is determined whether or not the character K is present. this is,
This is a process for determining whether or not the input character string has not been completed yet.
【0020】図14に示す入力文字列の場合は、上記ス
テップS2で、「a」の次の文字「b」が読み込まれる
ので文字列がまだ終了しておらず、したがって、ステッ
プS3ではYesと判断し、次にステップS4で、文字
列「ωK」が辞書DC に登録されてあるか否か検索す
る。In the case of the input character string shown in FIG. 14, the character string "b" next to "a" is read in step S2, and the character string has not been finished yet. determination, and then in step S4, a character string "ωK" searches whether are registered in the dictionary D C.
【0021】これにより、ステップS1で求められた語
頭文字列ω(ここでは参照番号「0」)に、ステップS
2で読み込んだ文字K(ここでは「b」)を加えた文字
列「0b」が、辞書DC 内に登録されているか否かが調
べられる。Thus, the initial character string ω (here, reference number “0”) obtained in step S1 is added to step S1.
(In this case "b") read in two characters K is the string "0b" plus, whether or not it is registered in the dictionary D C is examined.
【0022】そして、この検索で、Noであれば、ステ
ップS6に進み、ステップS1で得られている文字Kの
参照番号ωの符号「code(ω)」を出力し、また文字列
「ωK」に新たな参照番号nを付与して辞書DC のアド
レスnに登録する。If the result of this search is No, the process proceeds to step S6, where the code "code (ω)" of the reference number ω of the character K obtained in step S1 is output, and the character string "ωK" It is registered in the address n of the dictionary D C to impart a new reference number n in.
【0023】これにより、図14に示す入力文字列の場
合、まず、「a」の参照番号ωである「0」の符号が出
力され、さらに、検出されなかった文字列「0b」が参
照番号「256」が付与されて、辞書DC のアドレス2
56に登録される。Thus, in the case of the input character string shown in FIG. 14, first, the code of "0" which is the reference number ω of "a" is output, and the character string "0b" which is not detected is replaced with the reference number. been granted the "256", the address of the dictionary D C 2
56 is registered.
【0024】続いて、同じくステップS6で、上記ステ
ップS2で読み込んだ入力文字Kを参照番号ωに置き換
えると共に、辞書DC のアドレスnを「1」インクリメ
ントして、ステップS2に戻り次の文字Kを読み込む。[0024] Then, similarly in step S6, along with replacing the input character K read in step S2 to the reference numbers omega, the address n of the dictionary D C is incremented "1", the process returns to the step S2 next character K Read.
【0025】これにより、図14の入力文字列の例であ
れば、参照番号ωが「b」の参照番号である「1」に置
き換えられ、次回新たに登録される文字列の辞書DC 内
での登録アドレスnがインクリメントされて「257」
に変わる。[0025] Thus, in the example of the input string in FIG. 14, reference numeral ω is replaced by "b" is a reference number "1", the dictionary D in C of a character string next newly registered Registration address n is incremented by "257"
Changes to
【0026】一方、ステップS4で文字列「ωK」が辞
書DC に登録されていれば、この場合は、ステップS5
に進んで、その文字列「ωK」を参照番号ωに置き換
え、再びステップS2に戻ってステップS4で文字列
「ωK」が辞書DC から探せなくなるまでステップS2
〜S5を繰り返し、最大一致長の文字列の検索を続け
る。On the other hand, if the character string "ωK" is registered in the dictionary D C in step S4, in this case, step S5
The process proceeds to step S2 to the replace the string "ωK" at reference numeral omega, not find in step S4 string "ωK" from the dictionary D C returns to step S2 again
Steps S5 to S5 are repeated to continue searching for the character string having the maximum matching length.
【0027】このような方法で行われるLZW符号化の
処理を、図14に示す入力文字列「ababcbaba
baaaaaaa」を取り上げて具体的に説明すると、
まず、最初の文字「a」を入力したとき、辞書DC には
「a」の他に一致する文字列がないので、「a」に付与
された参照番号「0」の符号code(0)を出力する。そ
して、拡張した文字列「ab」に参照番号「256」を
付与して辞書DC に登録する。実際の辞書登録は図13
の右側に示すように文字列「0b」の形で登録される。The processing of LZW encoding performed by such a method is described by an input character string "ababcbaba" shown in FIG.
babaaaaaaa ",
First, when inputting the first letter "a", the dictionary D there is no character string that matches the other "a" and C, reference numeral code reference number "0" assigned to "a" (0) Is output. Then, registered in the dictionary D C by giving the reference number "256" to the extended character string "ab". Figure 13 shows the actual dictionary registration.
Is registered in the form of a character string “0b” as shown on the right side of “.
【0028】続いて、2番目の文字「b」が新たな検索
文字列の先頭になる。この場合、辞書DC には文字
「b」の他に一致する文字がないので文字「b」に付さ
れている「1」の参照番号の符号code(1)を出力し、
同時に拡張した文字列「ba」もまだ辞書DC に登録さ
れていないので、文字列「ba」を「1a」で表わし、
参照番号「257」を付与して辞書DC に登録する。そ
して、次は、3番目の文字「a」が次の検索文字列「ω
K」の先頭になる。以下同様に、このような処理を続け
ていくことにより、図14に示す入力文字列「abab
cbababaaaaaaa」が、同図の出力コード欄
に示す「0、1、256、2、257、260、0、2
62、263」の符号列に変換・出力され、この結果と
して、入力文字列が圧縮される。Subsequently, the second character "b" becomes the head of a new search character string. In this case, the dictionary D C outputs the sign of the reference numbers "1" since there is no character that matches the other characters "b" which are assigned to the letter "b" code (1),
Is not registered in the extended character string "ba" is also still Dictionary D C simultaneously represents a character string "ba" in "1a",
Given the reference number "257" is registered in the dictionary D C is. Then, next, the third character “a” is replaced with the next search character string “ω
K ”. Similarly, by continuing such processing, the input character string “abab” shown in FIG.
“cbababaaaaaaa” is “0, 1, 256, 2, 257, 260, 0, 2” shown in the output code column of FIG.
62, 263 ", and as a result, the input character string is compressed.
【0029】次に、上述の如くLZW符号化された符号
データを復元するアルゴリズムを、図15のフローチャ
ートを用いて説明する。また、この復元の具体例とし
て、図14に示すLZW符号化された出力符号列「0、
1、256、2、257、260、0、262、26
3」を、入力符号列として図16(a) に再掲して説明の
補助とする。Next, an algorithm for restoring LZW encoded code data as described above will be described with reference to the flowchart of FIG. Further, as a specific example of the restoration, the output code string “0,
1, 256, 2, 257, 260, 0, 262, 26
"3" as an input code string is shown again in FIG.
【0030】先ず、ステップS11では、この場合も上
記LZW符号化のときと同様に、辞書Dd に全文字につ
き一文字から成る文字列を初期登録する。これから説明
する上記具体例では、各一文字「a」,「b」,
「c」、・・・を、それぞれ参照番号「0」、「1」、
「2」、・・・を付与して辞書Dd に登録し、また、辞
書Dd の書込用先頭アドレスnに、上記初期登録された
最後の文字列の格納アドレスの次のアドレスである「2
56」を、新たに登録する文字列の辞書Dd への格納ア
ドレスnとして設定する。First, in step S11, as in the case of the LZW encoding, a character string consisting of one character for every character is initially registered in the dictionary Dd. In the specific example described below, each of the characters “a”, “b”,
"C",... Are represented by reference numbers "0", "1",
Are registered in the dictionary Dd by adding "2",..., And "2" which is the next address of the storage address of the last character string initially registered is added to the writing start address n of the dictionary Dd.
56 "is set as the storage address n of the newly registered character string in the dictionary Dd.
【0031】次に、同じくステップS11で、最初の符
号CODEを読み込み、この符号CODEに対応する参
照番号をOLDωにセットする。これにより、図16
(a) 示す入力符号列の例では最初の入力符号である参照
番号「0」の符号code(0)が読み込まれて、参照番号
「0」に変換された後、OLDωにセットされる。Next, in step S11, the first code CODE is read, and a reference number corresponding to the code CODE is set to OLDω. As a result, FIG.
(a) In the example of the input code string shown, the code code (0) of the reference number “0”, which is the first input code, is read, converted to the reference number “0”, and set to OLDω.
【0032】続いて、同じくステップS11で、参照番
号「OLDω」に対応する文字Kを復元する。この処理
では、最初の入力符号CODEは上述のようにして辞書
Ddに初期登録された一文字の参照番号のいずれかに該
当することから、その入力符号CODEに一致する符号
code(K)を辞書Dd から探し出し、該当文字「K」を
出力する。尚、この出力した文字「K」は後に必要に応
じて行われる例外処理に備えてFINcharにもセットし
ておく。Subsequently, in step S11, the character K corresponding to the reference number "OLDω" is restored. In this process, since the first input code CODE corresponds to one of the one-character reference numbers initially registered in the dictionary Dd as described above, the code that matches the input code CODE is used.
The code (K) is searched from the dictionary Dd, and the corresponding character "K" is output. Note that the output character "K" is also set in FINchar in preparation for an exception process performed as necessary later.
【0033】これにより、図16(a) に示す入力符号列
の例では、最初に参照番号「0」に対応する文字「a」
が、復元・出力されると共に、FINcharにもセットさ
れる。Thus, in the example of the input code string shown in FIG. 16A, first, the character "a" corresponding to the reference number "0"
Is restored and output, and is also set in FINchar.
【0034】続いて、ステップS12で、次の入力符号
CODEを読み込む。すなわち、図16(a) に示す入力
符号列の例では、「1」の符号code(1)が読み込まれ
る。そして、ステップS13で、新たに読み込まれた符
号CODEが有るか否か、すなわち符号入力の終了の有
無を判別する。図16(a) に示す入力符号列の例では、
ステップS12で参照番号「1」の符号code(1)が新
たな入力符号CODEとして読み込まれる。Subsequently, in step S12, the next input code CODE is read. That is, in the example of the input code string shown in FIG. 16A , the code code (1) of “1” is read. Then, in a step S13, it is determined whether or not there is a code CODE newly read, that is, whether or not the code input is completed. In the example of the input code string shown in FIG.
In step S12, the code code (1) having the reference number "1" is read as a new input code CODE.
【0035】このように、新たな入力符号CODEがあ
れば、ステップS14に進んで、この入力符号CODE
に対応する参照番号「ω」をINωにセットする。これ
により、図16(a) に示す入力符号の例では、参照番号
「1」がINωにセットされる。As described above, if there is a new input code CODE, the process proceeds to step S14, where the input code CODE is set.
Is set to INω. Thus, in the example of the input code shown in FIG. 16A, the reference number “1” is set to INω.
【0036】つぎに、ステップS15で、上記参照番号
「ω」が辞書Dd に既に登録されているか否か(ω≧
n)を判別する。この処理では、通常、読み込んだ符号
CODEは前回までの処理で、辞書Dd に既に登録され
ているから、ω<nであり、ステップS16に進んで、
辞書Dd を検索して、上記参照番号「ω」に対応する文
字列ω′Kを辞書Dd から読み出し、参照番号「ω」に
対応する文字列が二文字の文字列「ω′K」であるか否
か判別する。そして二文字の文字列「ω′K」であった
場合には、ステップS17で文字「K」を一時的にスタ
ックし、参照番号「ω′」を新たな参照番号ωとして再
度ステップS16に戻り、このステップS16、S17
の手順を再帰的に参照番号ωに対応する文字列が一文字
「K」に成るまで繰り返し、最後ステップS18に進ん
で、まず上記最後に復元した文字Kを出力した後、ステ
ップS17でスタックした全ての文字をLIFO(Last
In First Out) 形式でポップアップして出力する(上記
ステップS12で読み込んだ符号CODEの復元・出
力)。さらに、ステップS18において、上記復元文字
列の第一文字KをFINcharにセットした後、前回復元
処理した参照番号OLDωと今回復元した文字列の最初
の一文字Kとから組(OLDω、K)で表わされる文字
列を、新たな参照番号「n」を付与して辞書Dd のアド
レスnに登録する。続いて、アドレスnを「1」インク
リメントして、その「n+1」を次に辞書Dd に登録す
る文字列の登録アドレスnとして設定し、さらにINω
にセットされていた今回復元された符号CODEに対応
する参照番号「ω」をOLDωに代入して、ステップS
12に戻る。Next, in step S15, it is determined whether or not the reference number "ω" has already been registered in the dictionary Dd (ω ≧
n) is determined. In this process, normally, the read code CODE is already registered in the dictionary Dd in the previous process, so that ω <n, and the process proceeds to step S16.
The dictionary Dd is searched, and the character string ω′K corresponding to the reference number “ω” is read from the dictionary Dd, and the character string corresponding to the reference number “ω” is a two-character character string “ω′K”. Is determined. If it is a two-character string "ω'K", the character "K" is temporarily stacked in step S17, and the reference number "ω '" is set as a new reference number ω, and the process returns to step S16 again. This step S16, S17
Is repeated recursively until the character string corresponding to the reference number ω becomes one character "K", and the process proceeds to the last step S18, where the last restored character K is output, and then all of the characters stacked in the step S17 are output. LIFO (Last
(In First Out) pop-up and output (restoration and output of code CODE read in step S12). Further, in step S18, after setting the first character K of the restored character string to FINchar, the first character K of the restored character string is represented by a set (OLDω, K) from the reference number OLDω of the previously restored character string and the first character K of the character string restored this time. The character string is registered at the address n of the dictionary Dd with a new reference number "n". Subsequently, the address n is incremented by "1", and "n + 1" is set as a registration address n of a character string to be registered next in the dictionary Dd.
The reference number “ω” corresponding to the code CODE restored this time, which has been set to
Return to 12.
【0037】これにより、図16(a) に示す入力符号の
場合には、同(b) に示すように、2番目に読み込まれた
参照番号「1」の符号CODE(=code(1))から文
字「b」が復元・出力され、この文字「b」がFINch
arにセットされると共に、前回復元処理した符号COD
E(=code(0))に対応する参照番号「0」と今回復
元した一文字「b」との連なりから成る文字列「0b」
が新たな参照番号「256」が付与されて辞書Dd に登
録される。Thus, in the case of the input code shown in FIG. 16 (a), as shown in FIG. 16 (b), the code CODE (= code (1)) of the reference number "1" read second. The character "b" is restored and output from
ar and the code COD that was previously restored
A character string “0b” consisting of a series of a reference number “0” corresponding to E (= code (0)) and one character “b” restored this time
Is given a new reference number "256" and registered in the dictionary Dd.
【0038】そして、辞書Dd の登録アドレスnが「2
57」に更新された後、OLDωには今回、復元された
符号CODE(=code(1))に対応する参照番号
「1」がセットされ、ステップS12で3番目の符号co
de(256)が読み込まれる。The registered address n of the dictionary Dd is "2
After being updated to “57”, the reference number “1” corresponding to the code CODE (= code (1)) restored this time is set in OLDω, and the third code co is set in step S12.
de ( 256 ) is read.
【0039】そして、辞書Dd の検索により求められた
文字列「0b」から文字列「ab」への置き換えが行わ
れて、文字列「ab」が出力される。同時に、前回復元
処理した符号code(1)に対応する参照番号「1」と今
回復元した文字列の第一文字「a」とを組み合わせた文
字列「1a」(=「ba」)が、新たな参照番号「25
7」が付与されて辞書Dd のアドレス「257」に登録
される。Then, the character string "0b" obtained by searching the dictionary Dd is replaced with the character string "ab", and the character string "ab" is output. At the same time, a character string “1a” (= “ba”) obtained by combining the reference number “1” corresponding to the code code (1) restored last time and the first character “a” of the character string restored this time is new. Reference number "25
"7" is added and registered in the address "257" of the dictionary Dd.
【0040】一方、上記のステップS15の判別で、読
み込んだ符号code(ω)が前回までの処理で辞書Dd に
登録されていない場合(ω≧n)は、ステップS19に
進んで例外処理を行う。この例外処理では、まず、前回
復元した文字列の第一文字「FINchar」を出力した
後、前回復元処理した符号CODEに対応する参照番号
「OLDω」を参照番号ωとしてセットした後に、上記
前回復元した文字列の第一文字「FINchar」を加えた
文字列「OLDω、FINchar」を求め、この新たな文
字列に対応する参照番号をINωにセットしてからステ
ップS16に進む。On the other hand, if it is determined in step S15 that the read code (ω) is not registered in the dictionary Dd in the previous process (ω ≧ n), the process proceeds to step S19 to perform an exception process. . In this exception processing, first, after outputting the first character "FINchar" of the previously restored character string, the reference number "OLDω" corresponding to the code CODE restored last time is set as the reference number ω, and then the previously restored character string is restored. A character string “OLDω, FINchar” obtained by adding the first character “FINchar” of the character string is obtained, a reference number corresponding to the new character string is set to INω, and the process proceeds to step S16.
【0041】このことにより、例えば、図16(a) に示
す入力符号列の場合では、6番目に入力する「260」
の符号code(260)に対応する参照番号「260」
は、この時点では辞書Dd に定義されていない。この場
合は、まず、ステップS19で、前回復元された符号co
de(257)に対応する文字列「bab」の第一文字
(FINchar)が出力された後、上記前回復元処理した
符号code(257)に対応する参照番号「257」に前
回復元した文字列「ba」の最初の一文字「b」を加え
た文字列「257b」を求め、この文字列に対し参照番
号「260」を付与し、この参照番号をINωにセット
する。そして、次に、ステップS16→S17の処理を
繰り返すことにより、「a」、「b」の順に1文字づつ
スタックする。そしてステップS18で、ポップアップ
操作により文字列「ab」を出力して、最終的に符号co
de(260)を「bab」の文字列に復元・出力すると
共に、上記文字列「257b」を参照番号「260」を
付与して辞書Dd に登録する(同図(b) 〜(e) 参照)。Thus, for example, in the case of the input code string shown in FIG.
Reference number "260" corresponding to code (260) of
Are not defined in the dictionary Dd at this time. In this case, first, in step S19, the previously restored code co
After the first character (FINchar) of the character string “bab” corresponding to de (257) is output, the previously restored character string “ba” is added to the reference number “257” corresponding to the code code (257) previously restored. Is obtained by adding the first character "b" of ".", A reference number "260" is given to this character string, and this reference number is set to INω. Then, by repeating the processing of steps S16 → S17, the characters are stacked one by one in the order of “a” and “b”. In step S18, the character string "ab" is output by a pop-up operation, and finally the code
The de ( 260 ) is restored and output as a character string of "bab", and the character string "257b" is added to the reference number "260" and registered in the dictionary Dd (see FIGS. 3B to 3E). ).
【0042】以下、同様な処理を順次繰り返すことによ
り、図16(a) に示す入力符号列が同図(e) に示す文字
列に復元される。Thereafter, by repeating the same processing sequentially, the input code string shown in FIG. 16A is restored to the character string shown in FIG.
【0043】上述したLZW符号化によるデータ圧縮
は、他の方式に見られるような対象データの統計的な性
質や定常性を予め仮定して圧縮を行う方法でなく、符号
すると元の情報に完全に復元されるという情報保存型の
データ圧縮方法であることから、例えば文字コードや、
プログラムのソースコードもしくはオブジェクトコード
のように、完全な復元が要求されるデータの圧縮に適し
ている。The data compression by the LZW coding described above is not a method of performing compression by assuming the statistical property and continuity of target data in advance as in other methods, but completes the original information by coding. Because it is an information storage type data compression method that is restored to
It is suitable for compression of data that requires complete restoration, such as program source code or object code .
【0044】また、LZW符号は、任意の記号列に直接
適用できるので、画像データを、一定量のデータに分割
して、そのデータを文字コード同様に扱えば、画像デー
タもLZW符号化によって圧縮することができる。した
がって、例えば文字コードと画像データのように性質が
異なる複数種類のデータが混在する情報をLZW符号化
により圧縮することは可能である。Since the LZW code can be directly applied to an arbitrary symbol string, if image data is divided into a certain amount of data and the data is handled in the same manner as a character code, the image data is also compressed by LZW coding. can do. Therefore, it is possible to compress information in which a plurality of types of data having different properties, such as a character code and image data, are mixed by LZW encoding.
【0045】しかし、従来のジブ・レンペル(Ziv-Lemp
el)符号化は、1個の書き換え可能な辞書のみを用いて
行っており、この辞書を入力データにより更新してい
き、辞書の容量が一杯になると(空容量が無くなると)
直ちにクリアするか、または容量が一杯になった後、圧
縮率が悪化してきた場合クリアして、再び辞書の登録を
最初から始めるという方法でデータを符号化している。
このため、初期又はクリア後の辞書のデータ登録数が少
ない時点では、入力データの性質を十分に学習すること
ができず高い圧縮率を得ることが難しかった。However, the conventional Jib Lempel (Ziv-Lemp
el) Encoding is performed using only one rewritable dictionary, and this dictionary is updated with input data, and when the dictionary capacity is full (when the empty capacity is exhausted)
The data is coded by clearing immediately or clearing the compression ratio when the capacity is full and then clearing the compression rate and restarting the dictionary registration from the beginning.
For this reason, at the time when the number of registered data in the dictionary after initial or clearing is small, the properties of the input data cannot be sufficiently learned, and it has been difficult to obtain a high compression rate.
【0046】また、辞書データの登録数が増加しても、
入力データの性質の変化が大きいときは、辞書には平均
的な性質を反映する内容のみが登録されてるため、辞書
の効率的な利用ができない、すなわちデータの圧縮率が
低いという欠点があった。Even if the number of registered dictionary data increases,
When the change in the properties of the input data is large, only the contents that reflect the average properties are registered in the dictionary, so that the dictionary cannot be used efficiently, that is, the data compression rate is low. .
【0047】本発明は、かかる実情に鑑みてなされたも
のであって、入力データの性質が予め分かっている場合
は、その入力データの性質に合った初期辞書を学習用辞
書にロードして圧縮を行い、入力データの性質が変った
時点で学習用辞書で学習した内容を初期辞書に反映させ
る処理を行った後、性質の変った入力データに合った初
期辞書を学習用辞書にロードするようにして、常に新し
い性質を取り込んだ初期辞書を作成することにより、常
に高い効率の圧縮データが得られるデータ符号化方式及
びデータ復元方式を実現することを目的とする。The present invention has been made in view of the above circumstances, and when the properties of input data are known in advance, an initial dictionary suitable for the properties of the input data is loaded into the learning dictionary and compressed. After the property of the input data changes, the content learned in the learning dictionary is reflected in the initial dictionary, and then the initial dictionary that matches the input data with the changed property is loaded into the learning dictionary. Accordingly, an object of the present invention is to realize a data encoding method and a data decompression method that can always obtain highly efficient compressed data by creating an initial dictionary that always incorporates new characteristics.
【0048】[0048]
【課題を解決するための手段】本発明は、データ符号化
方式、及びその符号を復元するデータ復元方式に適用さ
れる。SUMMARY OF THE INVENTION The present invention relates to a data encoding system.
This method is applied to a method and a data restoration method for restoring the code.
【0049】請求項1記載の発明のデータ符号化方式は
(図1参照)、書き換え可能な学習用辞書1と、性質の
異なる入力データに対応する複数の初期辞書2−1、2
−2、・・・、2−nと、学習用辞書1に基づいて入力
データを一定区間毎に符号化してデータ圧縮を行う符号
化手段3と、上記入力データの一定区間毎に、初期辞書
2−1、2−2、・・・、2−nの中の上記入力データ
の性質に対応する初期辞書2−i(i=1,2,・・
・,n)を、学習用辞書1にロードして、符号化手段3
による一定区間のデータ圧縮が終了したとき、学習用辞
書1の内容を基に初期辞書2−iの内容を変更する辞書
変更手段4とで構成される。The data encoding method according to the first aspect of the present invention (see FIG. 1) comprises a rewritable learning dictionary 1 and a plurality of initial dictionaries 2-1 and 2 corresponding to input data having different properties.
,..., 2-n, and encoding means 3 for encoding the input data at fixed intervals based on the learning dictionary 1 to perform data compression, and an initial dictionary at fixed intervals of the input data. The initial dictionary 2-i (i = 1, 2,...) Corresponding to the properties of the input data in 2-1, 2-2,.
., N) are loaded into the learning dictionary 1 and the encoding means 3
When the data compression for a certain section is completed, the dictionary changing means 4 changes the contents of the initial dictionary 2-i based on the contents of the learning dictionary 1.
【0050】上記辞書変更手段4は、例えば請求項2記
載のように、初期辞書2−iからロードされた学習用辞
書1の辞書の文字列の上記一定区間内における参照回数
を計数し、この計数して得られた参照頻度に基づいて、
学習用辞書1の内容を削減し、この削減後の内容を新た
な初期辞書2−iとする。また、例えば請求項3記載の
ように、上記一定区間内において、学習用辞書1にロー
ドされた初期辞書2−iに登録されていた文字列の参照
回数と登録されていなかった文字列の参照回数とをそれ
ぞれ計数し、それらの計数値とそれらの計数値にそれぞ
れ対応する閾値とに基づいて、上記参照された登録され
ていた文字列からなる文字列群及び参照された登録され
ていなかった文字列からなる文字列群をそれぞれ削減し
た後、それら削減後の文字列群を併合して新たな初期辞
書2−iとする。The dictionary changing means 4 counts the number of times the character string of the dictionary of the learning dictionary 1 loaded from the initial dictionary 2-i is referred to within the certain section, for example. Based on the reference frequency obtained by counting,
The content of the learning dictionary 1 is reduced, and the content after the reduction is set as a new initial dictionary 2-i. Also, for example, in the above-mentioned certain section, the reference count of the character string registered in the initial dictionary 2-i loaded in the learning dictionary 1 and the reference of the character string not registered are set within the fixed section. The number of times was counted, respectively, and based on those count values and the threshold values respectively corresponding to those count values, the character string group consisting of the referenced registered character strings and the referenced unregistered character string were found. After each character string group composed of character strings is reduced, the reduced character string groups are merged to form a new initial dictionary 2-i.
【0051】請求項4記載の発明のデータ復元方式は
(図2参照)、書き換え可能な学習用辞書11と、性質
の異なる入力符号に対応する複数の初期辞書12−1、
12−2、・・・、12−nと、学習用辞書11に基づ
いて、入力される符号を一定区間毎に復元する復元手段
13と、上記入力符号の一定区間毎に、初期辞書12−
1、12−2、・・・、12−nの中の上記入力符号の
性質に対応する初期辞書12−iを、学習用辞書11に
ロードして、復元手段13による一定区間の入力符号の
復元が終了したとき、初期辞書12−iを学習用辞書1
1の内容に変更する辞書変更手段14とで構成される。The data restoration method according to the fourth aspect of the present invention (see FIG. 2) includes a rewritable learning dictionary 11 and a plurality of initial dictionaries 12-1 corresponding to input codes having different properties.
12-2,..., 12-n and a learning means 11 for restoring an input code for each fixed section, and an initial dictionary 12-
, 12-n, the initial dictionary 12-i corresponding to the properties of the input code is loaded into the learning dictionary 11, and the input code When the restoration is completed, the initial dictionary 12-i is replaced with the learning dictionary 1
1 and a dictionary changing means 14 for changing the contents to 1.
【0052】上記辞書変更手段14は、例えば請求項5
記載のように、初期辞書12−iからロードされた学習
用辞書11の辞書の文字列の上記一定区間内における参
照回数を計数し、この計数して得られた参照頻度に基づ
いて、学習用辞書11の内容を削減し、この削減後の内
容を新たな初期辞書12−iとする。また、例えば請求
項6記載のように、上記一定区間内において、学習用辞
書11にロードされた初期辞書12−iに登録されてい
た文字列の参照回数と登録されていなかった文字列の参
照回数とをそれぞれ計数し、それらの計数値とそれらの
計数値にそれぞれ対応する閾値とに基づいて、上記参照
された登録されていた文字列からなる文字列群及び参照
された登録されていなかった文字列からなる文字列群を
それぞれ削減した後、それら削減後の文字列群を併合し
て新たな初期辞書2−iとする。The dictionary changing means 14 may be, for example,
As described above, the number of times the character string of the dictionary of the learning dictionary 11 loaded from the initial dictionary 12-i is referred to in the above-described fixed section is counted, and the learning frequency is determined based on the reference frequency obtained by the counting. The content of the dictionary 11 is reduced, and the content after the reduction is set as a new initial dictionary 12-i. Further, for example, within the certain section, the reference count of the character string registered in the initial dictionary 12-i loaded in the learning dictionary 11 and the reference of the character string not registered are set in the fixed section. The number of times was counted, respectively, and based on those count values and the threshold values respectively corresponding to those count values, the character string group consisting of the referenced registered character strings and the referenced unregistered character string were found. After each character string group composed of character strings is reduced, the reduced character string groups are merged to form a new initial dictionary 2-i.
【0053】[0053]
【作用】先ず、データ符号化方式では、通常の書き換え
可能な学習用辞書の他に、性質の異なる入力データに対
応する複数の初期辞書が用いられる。そして、入力デー
タの一定区間毎に、その入力データの性質に対応する初
期辞書が選択されて学習用辞書にロードされ、そのロー
ドにより学習用辞書化された初期辞書により、上記一定
区間の入力データが符号化される。この後、元の初期辞
書は、上記符号化の過程で学習・更新された学習用辞書
の内容に書き換えられる。First, in the data encoding method, a plurality of initial dictionaries corresponding to input data having different properties are used in addition to a normal rewritable learning dictionary. Then, for each fixed section of the input data, an initial dictionary corresponding to the property of the input data is selected and loaded into the learning dictionary. Is encoded. Thereafter, the original initial dictionary is rewritten with the contents of the learning dictionary that has been learned and updated in the encoding process.
【0054】このとき、符号化の際の文字列の参照頻度
に基づいて学習・更新された学習用辞書の内容が削減さ
れて辞書サイズが縮小された後、上記元の初期辞書が書
き換えられる。At this time, after the contents of the learning dictionary updated / learned based on the reference frequency of the character string at the time of encoding are reduced and the dictionary size is reduced, the original initial dictionary is rewritten.
【0055】あるいは、学習用辞書化された初期辞書
に、登録されていた文字列及び登録されていなかった文
字列それぞれの参照頻度と、それぞれの参照頻度に対応
する閾値とに基づいて、それぞれ参照された文字列から
なる文字列群が削減された後、それら削減後の文字列群
が併合されて新たな辞書が作成されて、上記元の初期辞
書が書き換えられる。Alternatively, reference is made to each of the character strings registered and unregistered in the initial dictionary, which has been made into a learning dictionary, based on the reference frequency and the threshold value corresponding to each reference frequency. After the character string group composed of the extracted character strings is reduced, the reduced character string group is merged to create a new dictionary, and the original initial dictionary is rewritten.
【0056】これにより、それぞれ性質の異なるデータ
が混在する入力データに対しても高い圧縮率の符号化が
実現できる。次に、上記符号化されたデータに対するデ
ータ復元方式では、同様に通常の書き換え可能な学習用
辞書と性質の異なる入力符号に対応する複数の初期辞書
が用いられる。そして、入力符号の一定区間毎に、入力
符号の性質に対応する初期辞書が選択されて学習用辞書
にロードされ、その学習用辞書化された初期辞書により
入力符号か復元される。As a result, encoding with a high compression ratio can be realized even for input data in which data having different properties are mixed. Next, in the data restoration method for the encoded data, similarly, a plurality of initial dictionaries corresponding to input codes having different properties from those of a normal rewritable learning dictionary are used. Then, for each fixed section of the input code, an initial dictionary corresponding to the property of the input code is selected and loaded into the learning dictionary, and the input code is restored by using the initial dictionary converted into the learning dictionary.
【0057】このとき、復元の際の参照頻度に基づいて
学習・更新された学習用辞書の内容が削減されて辞書サ
イズが縮小された後、上記元の初期辞書が書き換えられ
る。あるいは、学習用辞書化された初期辞書に、登録さ
れていた文字列及び登録されていなかった文字列それぞ
れの参照頻度と、それぞれの参照頻度に対応する閾値と
に基づいて、それぞれ参照された文字列からなる文字列
群が削減された後、それら削減後の文字列群が併合され
て新たな辞書が作成されて、上記元の初期辞書が書き換
えられる。At this time, after the contents of the learning dictionary updated / learned based on the reference frequency at the time of restoration are reduced and the dictionary size is reduced, the original initial dictionary is rewritten. Alternatively, based on the reference frequency of each of the registered and unregistered character strings in the initial dictionary that has been converted into the learning dictionary, After the character string group composed of columns is reduced, the reduced character string group is merged to create a new dictionary, and the original initial dictionary is rewritten.
【0058】これにより、上記の符号化方式で符号化さ
れたデータが復元される。As a result, the data encoded by the above-mentioned encoding method is restored.
【0059】[0059]
【実施例】以下、図面を参照しながら本発明の実施例に
つき詳細に説明する。図3は、本実施例のデータ符号化
方式の基本概念を説明する図である。Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 3 is a diagram illustrating the basic concept of the data encoding method according to the present embodiment.
【0060】このデータ符号化方式では、LZW符号化
で用いる通常の書き換え可能な学習用辞書33−2の他
に、オブジェクトコードの符号化に用いるオブジェクト
コード用初期辞書32−1、ソースコードの符号化に用
いるソースコード用初期辞書32−2、及び画像データ
の符号化に用いる画像用初期辞書32−3の3種類の専
用の初期辞書を用意し、原データ30の性質が予め分か
っていれば、これら3種類の初期辞書を学習用辞書33
−2にロードしてから、原データ30のLZW符号化に
よるデータ圧縮を行う。尚、本実施例では符号化方式と
してLZW符号化方式を用いているが、これに限られる
ことはない。 In this data encoding method, in addition to the normal rewritable learning dictionary 33-2 used in the LZW encoding, an initial dictionary 32-1 for the object code used for encoding the object code, and the code of the source code If three types of dedicated initial dictionaries are prepared, an initial dictionary for source code 32-2 used for image conversion and an initial dictionary for image 32-3 used for encoding image data, and if the properties of the original data 30 are known in advance, , The learning dictionary 33
-2, the data compression by the LZW encoding of the original data 30 is performed. In this embodiment, the encoding method and
LZW coding method is used, but is not limited to this.
Never.
【0061】原データ30は、オブジェクトコード、ソ
ースコード、又は画像データ等のデータの種類を示すデ
ータ種類情報と、そのデータ種類情報により示されるデ
ータの長さ(サイズ)を示すサイズ情報から成る入力デ
ータ情報と共に制御部31に入力する。制御部31は、
符号化によるデータ圧縮を開始する前に、上記原データ
30と共に入力される入力データ情報のデータ種類情報
を参照し、オブジェクトコード、ソースコード、又は画
像データの内いずれであるか、その入力データの性質が
判明している場合は、その性質に合った初期辞書を上記
オブジェクトコード用初期辞書32−1、ソースコード
用初期辞書32−2、及び画像用初期辞書32−3の中
から選択して符号化部33の学習用辞書33−2にロー
ドする。The original data 30 includes data type information indicating the type of data such as an object code, a source code or image data, and size information indicating the length (size) of the data indicated by the data type information. The data is input to the control unit 31 together with the data information. The control unit 31
Before starting data compression by encoding, the data type information of the input data information input together with the original data 30 is referred to, and it is determined whether the input data is object code, source code, or image data. If the property is known, an initial dictionary suitable for the property is selected from the object code initial dictionary 32-1, the source code initial dictionary 32-2, and the image initial dictionary 32-3. The data is loaded into the learning dictionary 33-2 of the encoding unit 33.
【0062】また、入力データの種類(性質)が上記初
期辞書32−1、32−2又は32−3のいずれにも対
応していない場合、または、入力データの性質が不明な
場合は、学習用辞書33−2には、いずれの初期辞書も
ロードせず、学習用辞書33−2を通常の学習用辞書と
して使用する。If the type (property) of the input data does not correspond to any of the initial dictionaries 32-1, 32-2 or 32-3, or if the property of the input data is unknown, the learning is performed. No initial dictionary is loaded in the learning dictionary 33-2, and the learning dictionary 33-2 is used as a normal learning dictionary.
【0063】符号化部33は、学習用辞書33−2にロ
ードされた上記選択された初期辞書32−1(又は32
−2、32−3)に基づいて、LZW符号器33−1に
より、上記入力データ情報のサイズ情報によって示され
るデータ長を1ブロックとして入力データを符号化して
圧縮し、図4に示す構成の圧縮データ系列を出力する。The encoding unit 33 transmits the selected initial dictionary 32-1 (or 32) loaded into the learning dictionary 33-2.
-2, 32-3), the LZW encoder 33-1 encodes and compresses the input data with the data length indicated by the size information of the input data information as one block, and compresses the data with the configuration shown in FIG. Output compressed data sequence.
【0064】その後、上記符号化処理により学習・更新
された学習用辞書33−2の内容は、上記符号化処理前
に選択されて学習辞書33−2にロードされた初期辞書
32−1(又は32−2、32−3)にフィードバック
され、その初期辞書の内容が更新される。After that, the contents of the learning dictionary 33-2 learned / updated by the above-mentioned encoding process are stored in the initial dictionary 32-1 (or the initial dictionary 32-1 selected before the above-mentioned encoding process and loaded into the learning dictionary 33-2. 32-2, 32-3), and the contents of the initial dictionary are updated.
【0065】このように、入力データは、符号化の初期
の段階から、その入力データの種類(性質)に適した初
期辞書によって符号化されるため、通常の学習辞書の登
録個数が少ない圧縮初期の場合のように圧縮率が低下す
るということがなく、高率なデータ圧縮がなされる。さ
らに、その初期辞書自身も学習・更新された学習用辞書
の内容を基に更新されて、より入力データの性質に適し
た初期辞書が得られるため、全体として圧縮率を高める
ことが可能になる。As described above, the input data is encoded from the initial stage of the encoding by the initial dictionary suitable for the type (property) of the input data. Thus, the data compression is performed at a high rate without the compression ratio decreasing as in the case of (1). Furthermore, the initial dictionary itself is also updated based on the contents of the learning dictionary that has been learned and updated, and an initial dictionary that is more suitable for the characteristics of the input data can be obtained. As a result, the overall compression ratio can be increased. .
【0066】上記圧縮データ系列は、図4に示すよう
に、LZW符号化された圧縮データ42と、この圧縮デ
ータ42の先頭に付加され、この圧縮データ42がいず
れの辞書を用いてLZW符号化されたものであるかを示
す辞書フラグと、この圧縮データ42に符号化された元
のデータの長さ(符号化ブロックのサイズ)を示すサイ
ズ情報とからなる入力データ情報41とから成る複数の
組で構成されたデータ列となっている。上記入力データ
情報41は圧縮データ42を復元する際に、どの辞書を
用いればよいかということと、復元されるデータのサイ
ズがどのくらいであるかをデータ復元側に知らせるため
のものである。このように、圧縮データ系列は、符号化
ブロック単位に現れる[入力データ情報41(辞書フラ
グと元データサイズ情報)、圧縮データ42]の組の複
数の連なりから成る。As shown in FIG. 4, the compressed data sequence is added to the LZW encoded compressed data 42 and the head of the compressed data 42, and the compressed data 42 is subjected to LZW encoding using any dictionary. A plurality of input data information 41 including a dictionary flag indicating whether the compressed data has been encoded and size information indicating the length of the original data (the size of the encoded block) encoded in the compressed data. It is a data string composed of pairs. The input data information 41 is for informing the data decompressor of which dictionary should be used when decompressing the compressed data 42 and the size of the decompressed data. As described above, the compressed data sequence is composed of a plurality of consecutive sets of [input data information 41 (dictionary flag and original data size information) and compressed data 42] appearing in units of encoded blocks.
【0067】図5は、上記オブジェクトコード用初期辞
書の作成方法の一例を示したものである。同図に示すよ
うに、オブジェクトコード用初期辞書32−1の作成
は、まず、通常の学習用辞書52を用意し、あるオブジ
ェクトコード51をLZW符号化部53によってLZW
符号化して圧縮データ54を作成する過程において行わ
れる。すなわち、LZW符号化部53は、オブジェクト
コード51を逐次LZW符号化しながら、新規のLZW
符号とその対応するオブジェクトコード列を学習用辞書
52に登録していく。そして全てのオブジェクトコード
51について、LZW符号化が完了した時点で、学習用
辞書52はオブジェクトコード51の性質を反映した辞
書となっている。従って、この学習用辞書52をオブジ
ェクトコード用初期辞書32−1として使用する。FIG. 5 shows an example of a method for creating the object code initial dictionary. As shown in the figure, the initial dictionary for object code 32-1 is prepared by first preparing a normal learning dictionary 52, and converting an object code 51 into an LZW code by the LZW encoding unit 53.
This is performed in the process of creating the compressed data 54 by encoding. That is, the LZW encoding unit 53 sequentially encodes the object code 51 with the new LZW
The codes and the corresponding object code strings are registered in the learning dictionary 52. When the LZW encoding is completed for all the object codes 51, the learning dictionary 52 is a dictionary reflecting the properties of the object codes 51. Therefore, the learning dictionary 52 is used as the object code initial dictionary 32-1.
【0068】本実施例では、必要に応じて性質の異なる
他の入力データに対しても初期辞書を逐次作成する。図
6は、画像データのLZW符号化に使用する画像データ
用初期辞書32−3の作成方法を示したものである。画
像データ用初期辞書32−3の作成も、上記オブジェク
トコード用初期辞書32−1の作成と同様にして、LZ
W符号化部63が所定の画像データ61をLZW符号化
する過程で学習用辞書62の参照・登録を行い、全ての
画像データ61のLZW符号化が終了した時点で、画像
データ61の性質を反映した辞書となっている学習用辞
書62を、画像データ用初期辞書32−3として使用す
る。In this embodiment, initial dictionaries are sequentially created for other input data having different properties as needed. FIG. 6 shows a method of creating the image data initial dictionary 32-3 used for LZW encoding of image data. The creation of the initial dictionary for image data 32-3 is performed in the same manner as the creation of the initial dictionary for object code 32-1.
The W encoding unit 63 refers to and registers the learning dictionary 62 in the process of LZW-encoding the predetermined image data 61, and when the LZW encoding of all the image data 61 is completed, the properties of the image data 61 are changed. The learning dictionary 62 that is the reflected dictionary is used as the image data initial dictionary 32-3.
【0069】同様にして、ソースコードのLZW符号化
用のソースコード用初期辞書32−2を作成する。本実
施例では、このようにして作成した初期辞書を用いて、
図3に示すLZW符号化によるデータ圧縮を行う。その
場合、学習により更新された学習用辞書33−2の内容
を、元の初期辞書32−1、32−2又は32−3にロ
ードする場合、学習・更新によりサイズが増大した辞書
内容をそのままロードするのではなく、適度のサイズ、
例えば元の初期辞書のサイズに縮小してからロードす
る。Similarly, a source code initial dictionary 32-2 for LZW encoding of the source code is created. In the present embodiment, using the initial dictionary created in this way,
Data compression by LZW encoding shown in FIG. 3 is performed. In this case, when the content of the learning dictionary 33-2 updated by learning is loaded into the original initial dictionary 32-1, 32-2, or 32-3, the dictionary content whose size has been increased by learning / updating is directly used. Instead of loading, moderate size,
For example, the size is reduced to the size of the original initial dictionary and then loaded.
【0070】図7に、上記元の初期辞書のサイズに縮小
してからロードする方法の模式図を示す。学習用辞書3
3−2は、学習しながら新規のデータを登録していく必
要があるため、予め大きなサイズに設定する(同図(a)
)。この学習用辞書33−2に該当する初期辞書32
−1(または32−2、32−3)をロードして、学習
用辞書33−2を作成する(同図(b) )。入力データの
LZW符号化による圧縮が進むにしたがって、学習用辞
書33−2が逐次更新され、学習用辞書33−2の辞書
データが増加する(同図(c) )。LZW符号化が終了す
ると、辞書の各文字列毎に参照頻度を計数し、使用頻度
の大きい文字列のみからなる初期辞書32−i(i=
1、2、3)を同じサイズまで縮小した学習用辞書33
−2を作成する(同図(d) )。そして、この学習用辞書
33−2を今回使用した初期辞書32−1(または32
−2、32−3)と入れ換える。これによって、初期辞
書32−1(または32−2、32−3)には、常に最
新の入力データに対応した内容が格納される。FIG. 7 is a schematic diagram showing a method of loading the original dictionary after reducing it to the size of the original initial dictionary. Learning dictionary 3
In 3-2, since it is necessary to register new data while learning, a large size is set in advance ((a) in FIG.
). Initial dictionary 32 corresponding to this learning dictionary 33-2
-1 (or 32-2, 32-3) is loaded to create a learning dictionary 33-2 (FIG. 9B). As the compression of the input data by the LZW encoding progresses, the learning dictionary 33-2 is sequentially updated, and the dictionary data of the learning dictionary 33-2 increases (FIG. 3 (c)). When the LZW encoding is completed, the reference frequency is counted for each character string in the dictionary, and the initial dictionary 32-i (i =
Learning dictionary 33 obtained by reducing 1, 2, 3) to the same size
-2 is created (FIG. 4 (d)). Then, the learning dictionary 33-2 is used as the initial dictionary 32-1 (or 32-1) used this time.
-2, 32-3). As a result, the contents corresponding to the latest input data are always stored in the initial dictionary 32-1 (or 32-2, 32-3).
【0071】尚、上記学習用辞書33−2の辞書データ
は、文字列の既成分と成分複製とで順次連なって、また
あるところでは分岐して形成される分解成分の木を形成
している(詳しくは、前述の宗像清治、「Ziv-Lempelの
データ圧縮法」、情報処理、Vol.26,No.1,Jan.1985年参
照)。上記学習用辞書33−2のサイズの縮小には、上
記参照頻度による方法の代りに、辞書データとして形成
されている文字列の分解成分の木の子節を削除する枝刈
りを行っても同様な辞書縮小の結果が得られる。The dictionary data of the learning dictionary 33-2 forms a decomposition component tree which is successively connected to the already-existing component of the character string and the component copy, and is branched in some places. (For more information, see Seiji Munakata, "Ziv-Lempel Data Compression Method," Information Processing, Vol. 26, No. 1, Jan. 1985.) In order to reduce the size of the learning dictionary 33-2, instead of the method based on the reference frequency described above, pruning for deleting a tree segment of a decomposition component tree of a character string formed as dictionary data is also performed. The result of a simple dictionary reduction is obtained.
【0072】上記図7に示す方法では、学習の結果得ら
れた学習用辞書33−2の内容を、元の初期辞書32−
1(または32−2、32−3)と完全に置き換えてい
るが、元の初期辞書32−1(または32−2、32−
3)にも該当する入力データの性質に対応した文字列が
登録されている。したがって、このように元の初期辞書
32−1(または32−2、32−3)を全て入れ換え
てしまうのは適切でない場合もあり得る。In the method shown in FIG. 7, the contents of the learning dictionary 33-2 obtained as a result of learning are stored in the original initial dictionary 32-2.
1 (or 32-2, 32-3), but the original initial dictionary 32-1 (or 32-2, 32-
A character string corresponding to the property of the input data corresponding to 3) is also registered. Therefore, it may not be appropriate to completely replace the original initial dictionary 32-1 (or 32-2, 32-3).
【0073】このような考察に基づき、初期辞書32−
1(または32−2、32−3)を部分的に入れ換える
方法を、図8に示す。同図において、LZW符号化によ
るデータ圧縮を行う前に、空の学習用辞書33−2に
(同図(a) )、初期辞書32−1(または32−2、3
2−3)をロードして学習用辞書33−2を作成し(同
図(b) )、この学習用辞書33−2を用いて入力データ
のLZW符号化を行い、上記図7に示す方法と同様にし
て学習辞書33−2を作成する(同図(c) )。Based on such considerations, the initial dictionary 32-
FIG. 8 shows a method of partially replacing 1 (or 32-2, 32-3). In the figure, before performing data compression by LZW coding, an empty learning dictionary 33-2 ((a) in the figure) and an initial dictionary 32-1 (or 32-2,
2-3) is loaded to create a learning dictionary 33-2 (FIG. 13B), and LZW encoding of the input data is performed using the learning dictionary 33-2, and the method shown in FIG. The learning dictionary 33-2 is created in the same manner as (2) in FIG.
【0074】そして、 上記LZW符号化の終了後、上
記学習用辞書33−2のサイズを参照頻度または上記枝
刈りにより縮小し、初期辞書の半分サイズの学習用辞書
33−2を作成する(同図(d) )。一方、また、初期辞
書32−1(または32−2、32−3)も同様ににし
て、参照頻度または枝刈りにより、サイズを1/2に縮
小変更する(同図(f) )。次に、この初期辞書32−1
(または32−2、32−3)と上記縮小した学習用辞
書33−2をマージ(併合)して新たな初期辞書32−
1を作成する(同図(g) )。After the end of the LZW encoding, the size of the learning dictionary 33-2 is reduced by the reference frequency or the pruning to create a learning dictionary 33-2 half the size of the initial dictionary. Figure (d)). On the other hand, the size of the initial dictionary 32-1 (or 32-2, 32-3) is similarly reduced to 1/2 by the reference frequency or pruning (FIG. 11 (f)). Next, this initial dictionary 32-1
(Or 32-2, 32-3) and the reduced learning dictionary 33-2 are merged into a new initial dictionary 32-
1 is created (FIG. 9 (g)).
【0075】図9は、上述した符号化方式のアルゴリズ
ムを示すフローチャートである。なお、この処理では、
入力される原データを1ワード毎に計数する入力カウン
タCTを用いる。また、上記初期辞書32−1、32−
2、及び32−3を用意する。FIG. 9 is a flowchart showing an algorithm of the above-mentioned encoding method. In this process,
An input counter CT for counting input original data for each word is used. In addition, the initial dictionaries 32-1 and 32-
2 and 32-3 are prepared.
【0076】同図において、まず、1ブロックサイズの
入力データ(原データ)に対応する入力カウント初期値
を入力カウンタCTに設定する(ステップS1)。ここ
で設定される入力データのブロックサイズは、 例え
ば、「100kバイトのオブジェクトコード」の如く、
同じ性質のデータ(オブジェクトコード)と、そのデー
タが連続する長さであるサイズ(100kバイト)とを
示す情報に基づいて決定される。In the figure, first, an input count initial value corresponding to input data (original data) of one block size is set in an input counter CT (step S1). The block size of the input data set here is, for example, "object code of 100 kbytes".
The determination is made based on information indicating data (object code) having the same property and a size (100 kbytes) that is a continuous length of the data.
【0077】次に、入力データの性質に対応する初期辞
書をロードする(ステップS2)。これにより、例えば
入力データがオブジェクトコードであれば、オブジェク
トコード用初期辞書32−1が学習用辞書33−2にロ
ードされる。尚、入力データの性質が不明のときは、通
常の(空の)学習用辞書33−2が使用される。Next, an initial dictionary corresponding to the property of the input data is loaded (step S2). Thus, for example, if the input data is the object code, the initial dictionary for object code 32-1 is loaded into the learning dictionary 33-2. If the nature of the input data is unknown, a normal (empty) learning dictionary 33-2 is used.
【0078】続いて、上記使用する初期辞書を表すコー
ド(辞書フラグ)と、符号化される入力データのサイズ
を出力する(ステップS3)。これにより、図4に示し
た圧縮データ系列の入力データ情報41が出力される。
例えば、100kバイトのオブジェクトコードの場合で
あれば、オブジェクトコード用初期辞書32−1を表す
辞書フラグと100kバイトを表すコードが出力され
る。Subsequently, the code (dictionary flag) representing the initial dictionary to be used and the size of the input data to be encoded are output (step S3). As a result, the input data information 41 of the compressed data sequence shown in FIG. 4 is output.
For example, in the case of an object code of 100 kbytes, a dictionary flag indicating the initial dictionary 32-1 for the object code and a code indicating 100 kbytes are output.
【0079】次に、一文字分のデータを入力する(ステ
ップS4)。そして、入力データが「EOF」(終了)
であるか否か判別し(ステップS5)、「EOF」であ
れば入力データのファイルが終了していると判別して直
ちに処理を終了するが、入力データが「EOF」でない
場合は、入力カウンタCTをデクリメントし(ステップ
S6)、このデクリメントした入力カウンタCTの値が
入力データの1ブロック終了を示している(CT=0)
か否か判別する(ステップS7)。Next, data for one character is input (step S4). And the input data is "EOF" (end)
Is determined (step S5). If "EOF", it is determined that the file of the input data has been completed, and the processing is immediately terminated. If the input data is not "EOF", the input counter is determined. CT is decremented (step S6), and the value of the decremented input counter CT indicates the end of one block of the input data (CT = 0).
It is determined whether or not this is the case (step S7).
【0080】そして、1ブロックのデータ処理がまだ終
了していない場合は(ステップS7で、CT≠0)、上
記ステップS2で選択・ロードした辞書を用いて入力デ
ータの符号化、辞書の学習・更新の処理を行い(ステッ
プS8)、参照の際一致した文字列の参照回数をカウン
トする(ステップS9)。If the data processing of one block has not been completed yet (CT ≠ 0 in step S7), the input data is encoded using the dictionary selected and loaded in step S2, and the dictionary learning / An update process is performed (step S8), and the number of times a character string that matches at the time of reference is referenced is counted (step S9).
【0081】さらに、選択・ロードした辞書の元の初期
辞書の参照のみを行い(再びステップS8)、一致した
文字列の参照回数をカウントし(再びステップS9)、
そして、ステップS4に戻る。Further, only the original initial dictionary of the selected / loaded dictionary is referred (again, step S8), and the number of times of reference to the matched character string is counted (again, step S9).
Then, the process returns to step S4.
【0082】上記ステップS4〜S9を繰り返し、1ブ
ロックの入力データの符号化を最終まで進めることによ
り、ステップS7で入力カウンタCT=0になったこと
を確認して、ステップS10に移行する。The above steps S4 to S9 are repeated, and the encoding of one block of input data is advanced to the end. In step S7, it is confirmed that the input counter CT has become 0, and the flow proceeds to step S10.
【0083】ステップS10では、参照頻度による初期
辞書の圧縮(縮小)を行い、さらにステップS11で、
参照頻度による学習用辞書の圧縮(縮小)を行い、ステ
ップS12で、上記それぞれ縮小した初期辞書と学習用
辞書とをマージして、このマージによって得られた辞書
を元の初期辞書と置き換えることにより元の初期辞書の
更新を行って、ステップS1に戻る。In step S10, the initial dictionary is compressed (reduced) based on the reference frequency.
By compressing (reducing) the learning dictionary based on the reference frequency, in step S12, the reduced initial dictionary and learning dictionary are merged, and the dictionary obtained by the merge is replaced with the original initial dictionary. The original initial dictionary is updated, and the process returns to step S1.
【0084】このようにして、入力データがブロック単
位で同一初期辞書により符号化されて符号化ブロックと
なり、その先頭に符号化に使用された辞書を示す辞書フ
ラグと原データのサイズを示すデータが付加されたブロ
ック単位の圧縮データ(図4参照)となって出力され
る。In this way, the input data is coded by the same initial dictionary in block units to form a coded block, and a dictionary flag indicating the dictionary used for coding and data indicating the size of the original data are provided at the head of the coded block. It is output as compressed data (see FIG. 4) in the added block unit.
【0085】このとき、オブジェクトコード、ソースコ
ード、及び画像データ等の入力データは、それらに対応
する初期辞書により処理の立ち上がりから効率よく符号
化され高率にデータ圧縮される。そして、そして使用さ
れた初期辞書が上記マージ後の置き換えにより、より入
力データの性質に対応する初期辞書となる。これによ
り、次回の同一種類の入力データに対しては圧縮率がさ
らに向上する。At this time, the input data such as the object code, the source code, and the image data are efficiently encoded from the start of the processing by the corresponding initial dictionary, and the data is compressed at a high rate. Then, the used initial dictionary becomes an initial dictionary corresponding to the property of the input data by the replacement after the merge. This further improves the compression ratio for the next input data of the same type.
【0086】尚、上記学習用辞書及び初期辞書を圧縮す
る際、それぞれの参照頻度に閾値を設定して圧縮を行
う。その場合、初期辞書の参照頻度の閾値をILとし、
学習用辞書の参照頻度の閾値をLLとしたとき、IL<
<LLとすれば、入力データに対して応答速度の速い初
期辞書の更新が実現できる。一方、IL>>LLとすれ
ば、最初の初期辞書の内容が変更されにくい構成とする
ことができる。When the learning dictionary and the initial dictionary are compressed, a threshold is set for each reference frequency and compression is performed. In that case, the threshold of the reference frequency of the initial dictionary is set to IL,
When the threshold of the reference frequency of the learning dictionary is LL, IL <
If <LL, updating of the initial dictionary with a high response speed to the input data can be realized. On the other hand, if IL >> LL, a configuration in which the contents of the initial initial dictionary are not easily changed can be achieved.
【0087】次に、上記符号化された圧縮データの復元
について、図10のフローチャートを用いて説明する。
この復元処理においても、入力カウンタCT、初期辞書
32−1、32−2、及び32−3が使用される。入力
データは、図4に示す圧縮データ系列であり、既述した
ように、1ブロックが、辞書フラグ、データサイズから
成る入力データ情報41と、続く圧縮データブロック4
2から成る。Next, the decompression of the coded compressed data will be described with reference to the flowchart of FIG.
Also in this restoration processing, the input counter CT and the initial dictionaries 32-1, 32-2, and 32-3 are used. The input data is a compressed data sequence shown in FIG. 4. As described above, one block is composed of input data information 41 including a dictionary flag and a data size, and a subsequent compressed data block 4.
Consists of two.
【0088】まず、入力される1ブロックの圧縮データ
の第1入力データである辞書フラグを読み込んで、その
圧縮データの符号化の際に用いられた辞書の種類を設定
する(ステップS21)。First, a dictionary flag, which is the first input data of one block of compressed data to be input, is read, and the type of dictionary used for encoding the compressed data is set (step S21).
【0089】続いて、上記圧縮データの第2入力データ
である1ブロックのサイズを読み込み、これを初期値と
して入力カウンタCTに設定する(ステップS22)。
これにより、入力データ(圧縮データ)から復元される
原データ数が設定される。Subsequently, the size of one block, which is the second input data of the compressed data, is read and set as an initial value in the input counter CT (step S22).
As a result, the number of original data restored from the input data (compressed data) is set.
【0090】次に、上記ステップS21で設定された初
期辞書を、学習用辞書としてロードする(ステップS2
3)。これにより、入力データ(圧縮データ)が符号化
されたとき使用された学習用辞書が設定される。Next, the initial dictionary set in step S21 is loaded as a learning dictionary (step S2).
3). Thus, the learning dictionary used when the input data (compressed data) is encoded is set.
【0091】続いて、圧縮データを入力し(ステップS
24)、その入力したデータがファイルの終了を示す
「EOF」でなければ(ステップS25)、その圧縮デ
ータを、学習用辞書により復号(復元)して出力する
(ステップS26)。この処理において、学習用辞書は
逐次学習し辞書データが登録される。Subsequently, compressed data is input (step S
24) If the input data is not “EOF” indicating the end of the file (step S25), the compressed data is decoded (decompressed) by the learning dictionary and output (step S26). In this process, the learning dictionary is sequentially learned and dictionary data is registered.
【0092】上記に続いて、復元の際、一致した学習用
辞書の文字列の参照回数を計数する(ステップS2
7)。この場合も、符号化の場合と同様に、ロードした
元の初期辞書も参照し(再びステップS26)、一致し
た文字列の参照回数も計数する(再びステップS2
7)。Subsequently, at the time of restoration, the number of times of reference to the matched character string in the learning dictionary is counted (step S2).
7). In this case, as in the case of the encoding, the loaded original dictionary is also referred to (Step S26 again), and the number of times of reference to the matched character string is counted (Step S2 again).
7).
【0093】そして、復元したワード数だけ入力カウン
タCTをデクリメントし(ステップS28)、つぎに、
そのデクリメントした入力カウンタCTの値を参照し
て、1ブロック分の圧縮データの復元が終了した(CT
=0)か否か判別する(ステップS29)。Then, the input counter CT is decremented by the number of the restored words (step S28).
With reference to the decremented value of the input counter CT, the restoration of the compressed data for one block is completed (CT
= 0) (step S29).
【0094】そして、まだ1ブロック分の圧縮データが
全て復元されていない場合(CT≠0)は、上記ステッ
プS24に戻って次に続く圧縮データを入力する。上記
ステップS24〜S29を繰り返し、1ブロックの圧縮
データの復元を終了して、ステップS29で、CT=0
となったならば、ステップS30に移行する。If all of the compressed data for one block has not been restored (CT ≠ 0), the flow returns to step S24 to input the next compressed data. The above steps S24 to S29 are repeated to complete the decompression of one block of compressed data, and in step S29, CT = 0
Then, the process proceeds to step S30.
【0095】ステップS30では、参照頻度による初期
辞書の圧縮(縮小)を行い、さらにステップS31で、
参照頻度による学習用辞書の圧縮(縮小)を行い、ステ
ップS32で、上記それぞれ縮小した初期辞書と学習用
辞書とをマージし、このマージによって得られた辞書を
元の初期辞書と置き換えることにより元の初期辞書の更
新を行って、ステップS21に戻る。In step S30, the initial dictionary is compressed (reduced) based on the reference frequency.
The learning dictionary is compressed (reduced) based on the reference frequency. In step S32, the reduced initial dictionary and the learning dictionary are merged, and the dictionary obtained by the merge is replaced with the original initial dictionary. Is updated, and the process returns to step S21.
【0096】このように、符号化の場合と同様に、1ブ
ロック毎に初期辞書の更新が行われながら圧縮データの
復元が進行する。上記ステップS25で、入力データが
「EOF」であったときは直ちに処理を終了する。As described above, as in the case of encoding, the restoration of the compressed data proceeds while the initial dictionary is updated for each block. If the input data is "EOF" in step S25, the process is immediately terminated.
【0097】[0097]
【発明の効果】本発明によれば、予め、それぞれ異なる
種類の入力データの性質を取り込んだ複数の初期辞書を
用意し、入力データの性質に対応した辞書を用いて入力
データを符号化するので、圧縮開始初期の学習データの
登録個数が少ない時期における圧縮率の低下を防止で
き、符号化の初期から高率の圧縮を実現できる。また、
実際の入力データに合わせて初期辞書の内容を更新する
ので、常に入力データの性質によく適合した辞書による
符号化が行われ、入力データの種類に係わらず高率の圧
縮が実現できる。According to the present invention, a plurality of initial dictionaries in which the characteristics of different types of input data are taken in advance are prepared, and the input data is encoded using a dictionary corresponding to the characteristics of the input data. In addition, it is possible to prevent a decrease in the compression ratio at a time when the number of registered learning data is small at the beginning of the compression start, and it is possible to realize a high compression ratio from the beginning of the encoding. Also,
Since the contents of the initial dictionary are updated according to the actual input data, encoding is always performed using a dictionary that is well suited to the characteristics of the input data, and high-speed compression can be realized regardless of the type of input data.
【0098】したがって、異なる種類のデータが混在す
る入力データに対しても高い圧縮率を得ることが可能と
なる。 Therefore, it is possible to obtain a high compression ratio even for input data in which different types of data are mixed.
【図1】本発明のデータ符号化方式の原理図である。FIG. 1 is a diagram illustrating the principle of a data encoding method according to the present invention.
【図2】本発明のデータ復元方式の原理図である。FIG. 2 is a principle diagram of a data restoration method according to the present invention.
【図3】一実施例の符号化方式における基本構成の概念
図である。FIG. 3 is a conceptual diagram of a basic configuration in an encoding method according to an embodiment.
【図4】一実施例の圧縮データ系列の構造を説明する図
である。FIG. 4 is a diagram illustrating the structure of a compressed data sequence according to one embodiment.
【図5】最初の初期辞書の作成方法の例を示す図(その
1)である。FIG. 5 is a diagram (part 1) illustrating an example of a method of creating a first initial dictionary;
【図6】初期の初期辞書の作成方法の例を示す図(その
2)である。FIG. 6 is a diagram (part 2) illustrating an example of a method of creating an initial initial dictionary;
【図7】学習用辞書を初期辞書にフィードバックする方
法を説明する模式図(その1)である。FIG. 7 is a schematic diagram (part 1) illustrating a method of feeding back a learning dictionary to an initial dictionary.
【図8】学習用辞書を初期辞書にフィードバックする方
法を説明する模式図(その2)である。FIG. 8 is a schematic diagram (part 2) illustrating a method of feeding back a learning dictionary to an initial dictionary.
【図9】一実施例のデータ圧縮のアルゴリズムを説明す
るフローチャートである。FIG. 9 is a flowchart illustrating an algorithm of data compression according to an embodiment;
【図10】一実施例の圧縮データを復元するアルゴリズ
ムを説明するフローチャートである。FIG. 10 is a flowchart illustrating an algorithm for restoring compressed data according to one embodiment.
【図11】(a),(b) はユニバーサル型ジブ・レンペル符
号の符号化の基本概念を説明する図である。FIGS. 11A and 11B are diagrams illustrating the basic concept of encoding of a universal type Jib-Lempel code.
【図12】LZW符号化のアルゴリズムを説明するフロ
ーチャートである。FIG. 12 is a flowchart illustrating an algorithm of LZW encoding.
【図13】LZW符号化に用いられる辞書の構成を説明
する図である。FIG. 13 is a diagram illustrating a configuration of a dictionary used for LZW encoding.
【図14】LZW符号化方法を説明する模式図である。FIG. 14 is a schematic diagram illustrating an LZW encoding method.
【図15】FIG.
LZW符号の復元アルゴリズムを説明するフA flowchart for explaining an LZW code restoration algorithm
ローチャートである。It is a low chart.
【図16】FIG. 16
(a),(b),(c),(d),(e) は増分分解型ジブ・レ(a), (b), (c), (d), (e) are incremental decomposition type jib
ンペル符号の復元を説明する模式図である。FIG. 3 is a schematic diagram illustrating restoration of a impel code.
1、11 学習用辞書 2−1、2−2、・・・、2−n 初期辞書 12−1、12−2、・・・、12−n 初期辞書 3 符号化手段 4、14 辞書変更手段 13 復元手段 1, 11 learning dictionary 2-1, 2-2, ..., 2-n initial dictionary 12-1, 12-2, ..., 12-n initial dictionary 3 encoding means 4, 14 dictionary changing means 13 Restoration means
───────────────────────────────────────────────────── フロントページの続き (72)発明者 千葉 広隆 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 森 雅博 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 平4−265020(JP,A) 特開 平3−247167(JP,A) 特開 昭63−151224(JP,A) 特開 平3−247168(JP,A) 特開 平4−80813(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 5/00 G06T 9/00 H04N 1/41 H04N 1/413 H03M 7/30 - 7/46 ──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Hirotaka Chiba 1015 Uedanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture Inside Fujitsu Limited (72) Inventor Masahiro Mori 1015 Kamiodanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture Fujitsu Limited ( 56) References JP-A-4-265020 (JP, A) JP-A-3-247167 (JP, A) JP-A-63-151224 (JP, A) JP-A-3-247168 (JP, A) JP Hei 4-80813 (JP, A) (58) Fields investigated (Int. Cl. 7 , DB name) G06F 5/00 G06T 9/00 H04N 1/41 H04N 1/413 H03M 7 /30-7/46
Claims (6)
−1)、(2−2)、・・・、(2−n)と、前記入力データの一定区間毎に、前記初期辞書(2−
1)、(2−2)、・・・、(2−n)の中の前記入力
データの性質に対応する初期辞書(2−i;i=1,
2,・・・,n)を、前記学習用辞書(1)にロードす
る辞書変更手段(4)と、 該辞書変更手段(4)により前記初期辞書(2−i;i
=1,2,・・・,n)をロードした学習用辞書(1)
に基づいて入力データを一定区間毎に符号化してデータ
圧縮を行う符号化手段(3)と、 を有して、 前記辞書変更手段(4)は、前記符号化手段(3)によ
る一定区間のデータ圧縮が終了したとき、前記学習用辞
書(1)の内容を基に前記初期辞書(2−i)の内容を
変更する、 ことを特徴とするデータ符号化方式。In a data encoding method, a rewritable learning dictionary (1) and a plurality of initial dictionaries (2) corresponding to input data having different properties are provided.
-1), (2-2),..., (2-n), and the initial dictionary (2-
(1) The input in (2-2),..., (2-n)
Initial dictionary (2-i; i = 1,
2,..., N) into the learning dictionary (1).
Dictionary changing means (4), and the initial dictionary (2-i; i)
= 1, 2, ..., n), the learning dictionary (1)
Input data is coded at regular intervals based on
Encoding means (3) for performing compression , wherein the dictionary changing means (4) is provided by the encoding means (3).
When the data compression for a certain section is completed, the learning
Based on the contents of the book (1), the contents of the initial dictionary (2-i) are
A data encoding method characterized by changing .
書(2−i)からロードされた前記学習用辞書(1)の
辞書の文字列の前記一定区間内における参照回数を計数
し、この計数して得られた参照頻度に基づいて、前記学
習用辞書(1)の内容を削減し、この削減後の内容を新
たな初期辞書(2−i)とすることを特徴とする請求項
1記載のデータ符号化方式。2. The dictionary change unit (4) counts the number of times a reference is made to a character string of a dictionary of the learning dictionary (1) loaded from the initial dictionary (2-i) in the certain section, The content of the learning dictionary (1) is reduced based on the reference frequency obtained by the counting, and the reduced content is used as a new initial dictionary (2-i). 2. The data encoding method according to 1.
間内において、前記学習用辞書(1)にロードされた前
記初期辞書(2−i)に登録されていた文字列の参照回
数と登録されていなかった文字列の参照回数とをそれぞ
れ計数し、それらの計数値とそれらの計数値にそれぞれ
対応する閾値とに基づいて、前記参照された登録されて
いた文字列からなる文字列群及び参照された登録されて
いなかった文字列からなる文字列群をそれぞれ削減した
後、それら削減後の文字列群を併合して新たな初期辞書
(2−i)とすることを特徴とする請求項1記載のデー
タ符号化方式。3. The dictionary rewriting means (4) determines the number of times of reference to a character string registered in the initial dictionary (2-i) loaded in the learning dictionary (1) in the certain section. A character string group consisting of the registered registered character strings is counted based on the counted values and the threshold values respectively corresponding to the counted values and the counted values. And reducing a character string group composed of referenced and unregistered character strings, and merging the reduced character string groups to form a new initial dictionary (2-i). Item 2. The data encoding method according to Item 1.
LZW符号化された圧縮データを復元するデータ復元方
式であって、 書き換え可能な学習用辞書(11)と、 性質の異なる入力符号に対応する複数の初期辞書(12
−1)、(12−2)、・・・、(12−n)と、 前記学習用辞書(11)に基づいて、入力される符号を
一定区間毎に復元する復元手段(13)と、 前記入力符号の一定区間毎に、前記初期辞書(12−
1)、(12−2)、・・・、(12−n)の中の前記
入力符号の性質に対応する初期辞書(12−i)を、前
記学習用辞書(11)にロードして、前記復元手段(1
3)による一定区間の入力符号の復元が終了したとき、
前記初期辞書(12−i)を前記学習用辞書(11)の
内容に変更する辞書変更手段(14)と、 を有することを特徴とするデータ復元方式。4. A data decompression method for decompressing compressed data LZW-encoded by the data encoding method according to claim 1, wherein the data decompression method supports a rewritable learning dictionary and input codes having different properties. Multiple initial dictionaries (12
-1), (12-2),..., (12-n); and a restoring means (13) for restoring an input code at regular intervals based on the learning dictionary (11); For each fixed section of the input code, the initial dictionary (12-
An initial dictionary (12-i) corresponding to the property of the input code in 1), (12-2),..., (12-n) is loaded into the learning dictionary (11). The restoration means (1
When the restoration of the input code in a certain section according to 3) is completed,
A dictionary changing means (14) for changing the initial dictionary (12-i) to the contents of the learning dictionary (11).
LZW符号化された圧縮データを復元するデータ復元方
式であって、 前記辞書変更手段(14)は、前記初期辞書(12−
i)からロードされた前記学習用辞書(11)の辞書の
文字列の前記一定区間内における参照回数を計数し、こ
の計数して得られた参照頻度に基づいて、前記学習用辞
書(11)の内容を削減し、この削減後の内容を新たな
初期辞書(12−i)とすることを特徴とする請求項4
記載のデータ復元方式。5. A data restoration method for restoring compressed data LZW-encoded by the data encoding method according to claim 2, wherein said dictionary changing means (14) is configured to:
i) counting the number of times a reference is made to the character string of the dictionary of the learning dictionary (11) loaded in the fixed section in the fixed section, and based on the reference frequency obtained by counting, the learning dictionary (11). 5. The contents after the reduction are used as a new initial dictionary (12-i).
Data recovery method described.
LZW符号化された圧縮データを復元するデータ復元方
式であって、 前記辞書変更手段(14)は、前記一定区間内におい
て、前記学習用辞書(11)にロードされた前記初期辞
書(12−i)に登録されていた文字列の参照回数と登
録されていなかった文字列の参照回数とをそれぞれ計数
し、それらの計数値とそれらの計数値にそれぞれ対応す
る閾値とに基づいて、前記参照された登録されていた文
字列からなる文字列群及び参照された登録されていなか
った文字列からなる文字列群をそれぞれ削減した後、そ
れら削減後の文字列群を併合して新たな初期辞書(2−
i)とすることを特徴とする請求項4記載のデータ復元
方式。6. A data restoration method for restoring compressed data LZW-encoded by the data encoding method according to claim 3, wherein the dictionary changing means (14) is configured to perform the learning for the learning within the fixed section. The number of times of reference to a character string registered in the initial dictionary (12-i) loaded into the dictionary (11) and the number of times of reference to a character string not registered are counted. After reducing the character string group consisting of the referenced registered character strings and the character string group consisting of the referenced unregistered character strings based on the threshold values respectively corresponding to the count values, By combining the character strings after the reduction, a new initial dictionary (2-
5. The data restoration method according to claim 4, wherein i) is set.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31958092A JP3350118B2 (en) | 1992-11-30 | 1992-11-30 | Data encoding method and data restoration method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31958092A JP3350118B2 (en) | 1992-11-30 | 1992-11-30 | Data encoding method and data restoration method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06168097A JPH06168097A (en) | 1994-06-14 |
JP3350118B2 true JP3350118B2 (en) | 2002-11-25 |
Family
ID=18111856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31958092A Expired - Fee Related JP3350118B2 (en) | 1992-11-30 | 1992-11-30 | Data encoding method and data restoration method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3350118B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606040B2 (en) * | 2001-02-13 | 2003-08-12 | Mosaid Technologies, Inc. | Method and apparatus for adaptive data compression |
US7206450B2 (en) * | 2002-04-25 | 2007-04-17 | Microsoft Corporation | Compression of bi-level images with explicit representation of ink clusters |
JP4995775B2 (en) * | 2008-06-30 | 2012-08-08 | 株式会社東芝 | Screen transfer apparatus and method, and program for screen transfer |
WO2014097353A1 (en) * | 2012-12-19 | 2014-06-26 | 富士通株式会社 | Compression device, compression method, compression program, expansion device, expansion method, expansion program, and compression/expansion system |
CN116975312B (en) * | 2023-09-22 | 2023-12-19 | 山东五棵松电气科技有限公司 | Intelligent campus education data management system |
-
1992
- 1992-11-30 JP JP31958092A patent/JP3350118B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06168097A (en) | 1994-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3273119B2 (en) | Data compression / decompression device | |
JP3421700B2 (en) | Data compression device and decompression device and method thereof | |
JP3231105B2 (en) | Data encoding method and data restoration method | |
JP3241788B2 (en) | Data compression method | |
JP3350118B2 (en) | Data encoding method and data restoration method | |
JP3038223B2 (en) | Data compression method | |
JP3241787B2 (en) | Data compression method | |
JPH06161705A (en) | Data encoding system and data decoding system | |
JP3105598B2 (en) | Data compression method using universal code | |
JP2774350B2 (en) | Data compression method and data restoration method of compressed data | |
JP2823917B2 (en) | Data compression method | |
JP3130324B2 (en) | Data compression method | |
JPH0628149A (en) | Method for compressing plural kinds of data | |
JP2590287B2 (en) | Data compression method and data compression apparatus | |
JPH05152971A (en) | Data compressing/restoring method | |
JP2825960B2 (en) | Data compression method and decompression method | |
JP2006302082A (en) | Character string retrieval system | |
JP3083329B2 (en) | Data compression / decompression method | |
JP3015483B2 (en) | Data compression and decompression method | |
JP3051501B2 (en) | Data compression method | |
JP3012677B2 (en) | ZL encoding method | |
JP3083550B2 (en) | Data compression and decompression method | |
JP2799228B2 (en) | Dictionary initialization method | |
JP2952067B2 (en) | Data compression method | |
JP2840420B2 (en) | Image data compression and decompression method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020903 |
|
LAPS | Cancellation because of no payment of annual fees |