JP3038223B2 - データ圧縮方式 - Google Patents

データ圧縮方式

Info

Publication number
JP3038223B2
JP3038223B2 JP2045163A JP4516390A JP3038223B2 JP 3038223 B2 JP3038223 B2 JP 3038223B2 JP 2045163 A JP2045163 A JP 2045163A JP 4516390 A JP4516390 A JP 4516390A JP 3038223 B2 JP3038223 B2 JP 3038223B2
Authority
JP
Japan
Prior art keywords
dictionary
character string
registered
reference number
character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2045163A
Other languages
English (en)
Other versions
JPH03247167A (ja
Inventor
茂 吉田
泰彦 中野
佳之 岡田
広隆 千葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2045163A priority Critical patent/JP3038223B2/ja
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to KR1019910701461A priority patent/KR950013228B1/ko
Priority to DE69133377T priority patent/DE69133377T2/de
Priority to EP98201926A priority patent/EP0871295B1/en
Priority to PCT/JP1991/000252 priority patent/WO1991013395A1/ja
Priority to EP98201928A priority patent/EP0878915A3/en
Priority to DE69132187T priority patent/DE69132187D1/de
Priority to EP91904319A priority patent/EP0472730B1/en
Priority to EP98201925A priority patent/EP0871294B1/en
Priority to DE69133481T priority patent/DE69133481T2/de
Publication of JPH03247167A publication Critical patent/JPH03247167A/ja
Priority to US08/003,876 priority patent/US5254990A/en
Application granted granted Critical
Publication of JP3038223B2 publication Critical patent/JP3038223B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 [概要] ユニバーサル符号化の一種である増分分解型符号化の
改良としてのLZW符号化による辞書登録方法及びデータ
圧縮方法に関し、 符号化及び復号化時の入力データの初めの部分での圧
縮率の低下を防止することを目的とし、 サンプルデータを符号化する学習処理で得られた辞書
の文字列の内、出現頻度の高い文字列を取り出して辞書
初期値を設定し、符号化又は復号化時に辞書を初期化す
る際には、学習済みの辞書初期値を辞書に格納する初期
化を行なうように構成する。
[産業上の利用分野] 本発明は、ユニバーサル符号の一種である増分分解型
の改良として知られたLZW符号による辞書登録方法及び
データ圧縮方法に関する。
近年、文字コード、ベクトル情報、画像など様々な種
類のデータがコンピュータで扱われるようになってお
り、扱われるデータ量も急速に増加してきている。大量
のデータを扱うときは、データの中の冗長な部分を省い
てデータ量を圧縮することで記憶容量を減らしたり、速
く伝送したりすることが望まれる。
このように様々なデータを1つの方式でデータ圧縮で
きる方法としてユニバーサル符号化が提案されている。
ここで、本発明の分野は、文字コードの圧縮に限ら
ず、様々なデータに適用できるが、以下では、情報理論
で用いられている呼称を踏襲し、データの1ワード単位
を文字と呼び、データが複数ワードつながったものを文
字列と呼ぶことにする。
ユニバーサル符号化の代表的な方法として、ジブ−レ
ンペル(Ziv−Lempel)符号がある(詳しくは、例えば
宗像「Ziv−Lempelのデータ圧縮法」,情報処理,vol.2
6,NO.1,1985年を参照のこと)。
Ziv−Lempel符号では、 ユニバーサル型と、 増分分解型(Incremental parsing) の2つのアルゴリズムが提案されている。
更に、ユニバーサル型アルコリズムの改良として、LZ
SS符号がある(T.C.Bell,“Better OPM/L Text Compres
sion",IEEE Trans.on Commun.,Vol.COM−34,No.12,Dec.
1986年参照)。
また、増分分解型アルゴリズムの改良としては、LZW
(Lempel Ziv−Welch)符号がある(T.A.Welch,“A Tec
hnique for High−Performance Data Compression",Com
puter,June 1984年参照)。
これらの符号化方式の内、高速処理ができることと、
アルゴリズムの簡単さからLZW符号が記憶装置のファイ
ル圧縮などで使われるようになっている。
[従来の技術] 従来のLZW符号による符号化処理フローを第7図に示
すと共に、復号化処理フローを第8図に示す。
まずLZW符号化処理は、書き替え可能な辞書を持ち、
入力文字列の中を相異なる文字列(部分列)に分け、こ
の文字列を出現した順に参照番号を付けて辞書に登録す
ると共に、現在入力している文字列を辞書に登録してあ
る最長一致文字列の参照番号で表して符号化するもので
ある。
第10図にLZW符号化の説明図を示すと共に第12図にLZW
復号化の説明図を示し、更に第11図に復号化と復号化時
の辞書の内容を示す。
尚、第10,11,12図では説明を簡単にするため、abcの
3文字の組合せからなるデータを圧縮、復元する場合の
例を取り上げている。
第8図のLZW符号化処理では、まずステップS1(以下
「ステップ」は省略)で予め辞書に全文字につき一文字
からなる文字列を初期値として登録してから符号化を始
める。S1の符号化は入力した最初の文字Kにより辞書を
検索して参照番号ωを求め、これを語頭文字列とする。
次にS2で入力データの次の文字Kを読み込み、S3で全て
の文字入力の読込みが終了したか否かチェックした後、
S4に進んでS1で求めた語頭文字列ωにS2で読み込んだ文
字Kを加えた(ωK)が辞書にあるか否か探す。
S4で文字列(ωK)が辞書になければ、S6に進んでS1
で求めた文字Kの参照番号ωを符号語code(ω)として
出力し、また文字列(ωK)に新たな参照番号を付加し
て辞書に登録し、更にS2の入力文字Kを参照番号ωに置
き換えると共に辞書アドレスnをインクリメントしてS2
に戻って次の文字Kを読み込む。
一方、S4で文字列(ωK)が辞書にあればS5で文字列
(ωK)を参照番号ωに置き換え、再びS2に戻ってS4で
文字列(ωK)が辞書から探せなくなるまで最大一致長
の検索を続ける。
第10,11図を参照してLZW符号化を具体的に説明すると
次のようになる。
まず第10図の入力データinputは左から右へと読む。
最初の文字aを入力し、そして文字aを語頭文字列ωと
する。
次に2番目の文字bをKとして入力し、この入力文字
を語頭文字列ωに加えた文字列ωK=abは辞書にないこ
とから、入力文字aのOUTPUT CODE 1を符号語として出
力する。そして、拡張した文字列ωK=abに参照番号4
を付けて辞書に登録する。実際の辞書登録は第11図の右
側に示すように文字列1bとして登録される。そして文字
bが語頭文字列ωとなる。
続いて3番目の文字aをKとして入力し、入力文字a
に語頭文字列ωを加えた拡張文字列ωK=ba=2aは辞書
にないことから、文字bのOUTPUT CODE 2を符号語とし
て出力した後、拡張文字列ωK=baを2aで表わし、参照
番号5を付けて辞書に登録する。そして3番目に入力し
た文字aが新たな語頭文字列ωとなる。
4番目の入力文字bについては拡張文字列ωK=abは
符号語4として既に辞書に登録されているので、文字列
ωKを新たな語頭文字列ωとし、5番目の文字cを入力
して拡張文字列ωK=4c=abcを作る。この拡張文字列
ωK=abcは辞書に登録されていないことから、文字列a
b=1bのOUTPUT CODE 4を符号語として出力し、拡張文字
列ωK=abcを辞書に4cの形で参照番号6を付けて登録
する。以下同様に、この処理を続ける。
第9図の復号化処理は第8図の符号化の逆の操作を行
なう。
第9図の復号化では、符号化時と同様に予め辞書に全
文字につき一文字からなる文字列を初期値として登録し
てから復号化を始める。
まずS1で最初の符号(参照番号)読み込み、現在のCO
DEをOLDcodeとし、最初の符号は既に辞書に登録された
一文字の参照番号いずれかに該当することから、入力符
号CODEに一致する文字code(K)を探し出し、文字Kを
出力する。
尚、出力した文字Kは後の例外処理のためFINcharに
セットしておく。
次にS2に進んで次の符号を読み込んでCODEにINcodeと
してセットする。S3で新たな符号があるか否か、即ち符
号入力の終了の有無をチェックしてS4に進み、S3で入力
された符号CODEが辞書に定義(登録)されているか否か
チェックする。通常、入力した符号語は前回までの処理
で辞書に登録されているため、S5に進んで符号CODEに対
応する文字列code(ωK)を辞書から読み出し、S6で文
字Kを一時的にスタックし、参照番号CODE(ω)を新た
な符号CODEとして再度S5に戻り、このS5,S6の手順を再
帰的に参照番号ωが一文字Kに至るまで繰り返し、最後
にS7に進んでS6でスタックした文字をLIFO(Last In Fa
st Out)型式でポップアップして出力する。同時にS7に
おいて、前回使った符号ωと今回復元した文字列の最初
の1文字Kを組(ω,K)と表した文字列に、新たな参照
番号を付加して辞書に登録する。
第12図を参照して復号化処理を具体的に説明すると次
のようになる。
まず第12図で最初の入力符号は1であり、一文字a,b,
cについては既に参照番号1,2,3として第12図に示すよう
に辞書に登録されているため、辞書の参照により符号1
に一致する参照番号の文字列aに置き換えて出力され
る。次の符号2についても同様にして文字bに置き換え
て出力する。このとき前回処理した符号と今回復号した
最初の1文字bとを組み合わせた(1b)に新たな参照番
号4を付加して辞書に登録する。
3番目の符号4は辞書の検索により1bからabと置き換
えて文字列abを出力する。同時に前回処理した符号2と
今回復号した文字列の1番目の文字aとの組合せた文字
列2a(=ba)を新たな参照番号5を付加して辞書に登録
する。
以下同様に、この処理を繰り返す。
第12図の復号化では次の例外処理がある。
この例外処理は、第6番目の入力符号8の復号で生ず
る。符号8は復号時に辞書に定義されておらず、復号で
きない。この場合には、前回処理した符号5に前回復号
した文字列baの最初の一文字bを加えた文字列5bを求
め、更に2ab=babと置き換えられて出力される。そし
て、文字列の出力後に前回の符号5に今回復号した文字
列の1番目の文字bを加えた文字列5bに参照番号8を付
加して辞書に登録する。
この例外処理は、第9図の復号化処理フローのS4,S8
の処理を通じて行なわれ、最終的にS7で文字列の出力と
新たな文字列に参照番号を付加した辞書への登録がS7で
行なわれる。
尚、第9,12図の復号化処理は、復号側で符号を解読し
ながら辞書をリアルタイムで作り出す場合を説明した
が、符号化の際に作られた辞書をそのまま復号化側にコ
ピーとして使用することで符号化しても良い。この場合
に復号化側での例外処理は不要になる。
[発明が解決しようとする課題] このように従来のLZW符号によるデータ圧縮は、完全
なユニバーサル性を前提にしており、辞書は第1文字の
み、或いは全一文字のみを登録した空白に近い状態から
符号化を始めるようにしている。このため、従来のLZW
符号化にあっては、入力データの初めの方で学習量が少
ないため、即ち辞書への登録文字列数が少ないため、圧
縮率が低くなるという問題があった。
LZW符号化ではユニバーサル性も重要であるが、様々
な種類のデータの内、入力データとして特定の種類だけ
特に多く現れるときは、辞書は必ずしも空白に近い状態
から符号化する必要はない。この問題はLZW符号の復号
化時にも同じである。
本発明は、かかる事情に鑑みてなされたもので、符号
化及び復号化時の入力データの初めの部分での圧縮率の
低下を防止するLZW符号を用いた辞書登録方法及びデー
タ圧縮方法を提供することを目的とする。
[課題を解決するための手段] 第1図は本発明の原理説明図である。
まず本発明は、入力文字列の最大長一致する部分列の
参照番号を指定して辞書に登録すると共に、そのとき得
られた参照番号に次の1文字を付加した部分列に対して
新たな参照番号を付加する登録手順により入力文字列情
報を辞書に登録する辞書登録方法に於いて、辞書の使用
開始に際して所望のサンプルデータを対象として登録手
順により得た辞書初期値を辞書に登録すると共に、出現
頻度が所定の閾値以下の登録内容は削除することを特徴
とする。
また、登録内容の削除によって空白になった登録エリ
ア以降に残った登録内容がある場合、残った登録内容を
空白になった登録エリアに詰めることを特徴とする。
また、サンプルデータにより得られた辞書初期値を辞
書の先頭の書き換え禁止部分に固定したことを特徴とす
る。
また、符号化時には入力文字列を辞書に登録された既
に符号化済みの部分列の内、最大長一致する部分列の参
照番号を指定して符号化すると共にその符号語として得
られた参照番号に次の1文字を付加した部分列に対して
新たな参照番号を付加して辞書に登録するデータ圧縮方
法に於いて、辞書の使用開始時における辞書内容を決め
る初期化時に、所望のサンプルデータを対象とした符号
化により辞書登録された部分列の内、出現頻度の高い部
分を既に符号化済みの部分列と見做して辞書に初期値と
して登録するように構成する。
[作用] このような構成を備えた本発明の画像辞書登録方法及
びデータ圧縮方法によれば、様々な種類のデータの内、
入力データとして特定の種類だけ特に多く現れるデータ
をサンプルデータとして準備し、第2図(a)に示すよ
うに、出現頻度の高いサンプルデータについてLZW符号
化により辞書を作成し、作成辞書の中の出現頻度の高い
部分列のみを残すように辞書を圧縮して辞書の初期値を
作り出す。
そして第2図(b)(c)に示すように、サンプルデ
ータの学習により求めた初期値を辞書にロードする初期
化処理を行なった後に、LZW符号化及びLZW復号化を行な
い、入力データの初めの部分でも十分な量の部分列の登
録が辞書に得られていることから、圧縮率を向上でき
る。
具体的には、サンプルデータのLZW符号化の際に、辞
書の参照番号毎にカウンタを設け、各参照番号が符号化
時に使われた回数を計数するようにし、計数値の小さい
文字列を辞書から削除し、高頻度で出現する文字列のみ
辞書に残した辞書を求める。そして次のいずれかの方法
で符号化或いは復号化する。
予め記憶装置に取り出しておいた高頻度の文字列を初
期値として辞書にロードした後、符号化或いは復号化す
る。
予め作成した高頻度の文字列を初期値として辞書の先
頭に書き替えをしない固定部分として設定しておき、符
号化或いは復号化する。
[実施例] 第3図は本発明の一実施例を示した実施例構成図であ
る。
第3図において、12は制御手段としてのCPUであり、C
PU12に対してはプログラムメモリ14とデータメモリ26が
接続される。
プログラムメモリ14にはコントロールソフト16、LZW
符号を用いた最大一致長検索を行なう最大一致長検索ソ
フト18、入力文字列をLZW符号に変換する符号化ソフト2
0、符号化ソフト20でLZW符号に変換された符号を元の文
字列に復元する復号化ソフト22、及び所望のサンプリン
グデータを対象としたLZW符号化で得られた辞書登録の
内の出現頻度の高い部分列を辞書初期値として作り出す
辞書初期値作成ソフト24を備える。
一方、データメモリ26には、これから符号化しようと
する文字列、或いはこれから復号化しようとする符号列
を格納するデータバッファ28と、LZW符号を対象とした
符号化及び復号化の際に逐次作成されながら使用される
辞書10を備える。
この第3図の実施例における本発明のデータ圧縮方式
の概略は次のようになる。
まず、符号化及び復号化に先立ち、データメモリ26の
データバッファ28に対しては所望のサンプリングデータ
が格納される。このサンプリングデータとしては様々な
入力データの内、統計的に出現頻度が高い特定種類のデ
ータを使用する。データバッファ28にサンプルデータが
格納された状態でCPU12はコントロールソフト16による
制御のもとに辞書初期値作成ソフト24を起動し、辞書初
期値作成処理を行なう。具体的には、辞書初期値作成ソ
フト24は符号化ソフト20を使用してデータバッファ28の
サンプルデータを対象としたLZW符号化処理を実行し、
符号化済み文字列に参照番号を付加したデータを辞書10
に順次登録していく。この辞書登録に際しては参照番号
毎にカウンタが設けられており、符号化時に、ある参照
番号の文字列を経由した最大一致長検索が行なわれる
と、その都度カウンタがインクリメントされ、各文字列
の出現頻度を計数できるようにしている。
サンプリングデータを対象としたLZW符号化が終了す
ると、データメモリ26に得られた辞書10の内、カウンタ
の計数値が閾値T以上出現した文字列のみを残すように
辞書10を圧縮することで辞書初期値を作成する。
このように辞書初期値が作成されたならば、辞書初期
値はデータメモリ26の特定のエリアに保存しておき、符
号化または復号化を行なう初期化処理の際に辞書10にロ
ードする。また、辞書初期値を符号化及び復号化に使用
する辞書10の先頭部分にそのまま残しておき、この辞書
初期値の部分を書き替え禁止領域とするようにしてもよ
い。
次に、第4図を参照して本発明のサンプルデータによ
る辞書初期値の作成処理を説明する。
第4図において、まずS1でサンプルデータを構成する
文字列の第1番目の文字を含むように辞書を初期化す
る。即ち、第1番目の文字コードiを辞書のアドレスi
に登録する。次に、辞書への現在の登録文字列の数を示
すカウンタnを一文字全体の文字数nとし、続いて入力
した最初の一文字Kの辞書検索で得られた参照番号ω
を、語頭文字列ωとする。
尚、S1の初期化にあっては、サンプルデータを構成す
る文字列の全一文字を参照番号を付けて辞書に登録する
ようにしてもよい。
次にS2に進み、次の入力文字Kを読み込み、S3で文字
Kがあるか否か、即ち入力文字列の読込みが終了したか
否かチェックしてS4に進む。S4にあっては、第1番目に
入力した文字の参照番号ω、即ち語頭文字列ωに2番目
の入力文字Kを組み合わせた文字列(ωK)が辞書にあ
るか否か検索する。このとき、2文字目までしか入力し
ていないので辞書には文字列(ωK)が存在せず、従っ
てS6に進み、文字列(ωK)を辞書アドレスnに登録
し、2番目の文字Kを語頭文字列ωに置き換え、更に参
照番号ωの出現頻度を示すカウンタcnt(n)を作成し
てゼロにリセットし、辞書への現在登録している文字列
の数を示すカウンタnをインクリメントする。
一方、S4で文字列(ωK)が辞書に存在した場合には
S5に進み、文字列(ωK)を語頭文字列ωに置き換え、
これにより参照番号ωの文字列が使用されたことになる
ので、参照番号ωの文字列を示すカウンタcnt(ω)を
インクリメントする。
以上のS2〜S6に亘る処理の繰り返しにより全入力文字
の処理が終了するとS3からS7に進み、その時点で得られ
た辞書の最終アドレスnと辞書の内容を記憶装置に書き
込んで一連の辞書作成処理を終了する。
第5図は第4図の処理により作成された辞書につい
て、高頻度の文字列のみを辞書に残す辞書圧縮の処理フ
ロー図である。
第5図において、まずS1で第4図の処理で得られた辞
書の最終アドレスnと辞書の内容をメモリにロードし、
辞書アドレスiをゼロにリセットする。
続いてS2で辞書アドレスをインクリメントし、S3で最
終アドレスに達したか否かチェックした後、S4に進んで
辞書アドレスiのカウンタcnt(i)が予め定めた出現
頻度を示す閾値Tより小さいか否かチェックする。
もし、カウンタcnt(i)が閾値Tより小さければS5
に進んで、現在の辞書アドレスiを削除して次の辞書ア
ドレスjに置き換える削除処理を行なう。続いてS6に進
み、削除した辞書アドレスiに続く次の辞書アドレスj
が最終アドレスn以内にあるかチェックし、最終アドレ
スn以内にあればS7に進んで、辞書アドレスi以降にi
=ωより大きい参照番号ωをもつ文字列が存在するか否
かチェックする。削除した辞書アドレスi以降に参照番
号ωより大きい参照番号をもつ文字列が存在したならば
S8に進んで、文字列の中の参照番号ωの値をデクリメン
トにより1つ減らし、S9に進んで辞書アドレスjの文字
列(ωK)を1つ前の辞書アドレスj−1に登録する。
そして、処理が済んだ辞書アドレスjを次の処理のため
にj+1とインクリメントしてS6に戻り、辞書アドレス
jが最終アドレスnを越えるまでS6,S7,S8及びS9の処理
を繰り返す。即ち、閾値Tより小さい出現頻度の文字列
を削除した場合には、削除した文字列のアドレス以降に
存在する文字列の中の参照番号を1つ減らし、且つ登録
アドレスを1つ詰める処理を繰り返す。
S6〜S9の処理が終了するとS6からS10に進み、文字列
を1つ削除したことから最終アドレスnを1つデクリメ
ントし、再びS2に戻って辞書アドレスiをインクリメン
トして次の文字列に対する出現頻度の計数値のチェック
を行ない、S3で最終アドレスnが判別するまで繰り返
す。
S3で最終アドレスnへの到達が判別されるとS11に進
んで辞書の最終アドレスnと辞書の内容を記憶装置に書
き込み、これにより圧縮された辞書初期値の生成が完了
する。
第6図は第4,5図の処理で得られた辞書初期値を使用
した本発明の符号化処理フロー図である。
第6図の符号化にあっては、まずS1で予めサンプルデ
ータに基づいて生成されている辞書初期値を記憶装置か
ら読み出し、読み出した辞書の最終アドレスnと辞書の
内容を辞書として使用するメモリにロードする。この辞
書初期値のロードが第8図に示した従来の符号化処理と
異なる点である。続いてS1にあっては入力した最初の文
字Kにより辞書を検索して一致した文字列の参照番号ω
を取り出して語頭文字列とし、S2で次の文字Kを入力
し、S3で入力文字の終了の有無をチェックした後、語頭
文字列ωに今回入力した文字Kを組み合われた文字列
(ωK)が辞書にあるか否かチェックする。従来方式に
あっては、入力データの初期段階で文字列(ωK)が辞
書に存在する割合は少なかったが、本発明にあっては、
S1でサンプルデータの学習により得られた辞書初期値と
しての文字列を既に格納しているため、S4で文字列(ω
K)が辞書にあることが判別されてS5に進み、文字列
(ωK)を語頭文字列ωに置き換えて再びS2に戻り、以
下、辞書の検索結果が得られなくなるまで最大一致長と
なる部分列を検索する処理を繰り返す。この結果、入力
データの参照についても辞書から検索できる部分列の連
鎖数が増加し、圧縮率を向上することができる。
勿論、S4で部分列(ωK)が辞書になかった場合には
S6に進んで、そのときの参照番号ωを符号語code(ω)
として出力し、今回処理した参照番号ωに次の文字Kを
加えた文字列(ωK)を、新たな参照番号を付加して辞
書に登録し、1文字Kを新たな語頭文字列に置き換え、
S2に戻って新たな部分列の最大一致長を求める符号化処
理を行なう。
第7図は本発明の復号化処理フロー図であり、この符
号化処理にあっても、まずS1で第4,5図の処理で得られ
た辞書初期値をメモリから読み出して、読み出した辞書
の最終アドレスnと辞書の内容を復号化時に辞書として
使用するメモリにロードする点に特徴がある。
S1で既に得られた辞書初期値の辞書のロードが終了す
ると、S2で最初の符号を読み込み、S3で符号入力の読込
みが全て終了したか否かチェックしてS4に進み、符号が
辞書に定義されているか否かチェックする。S4で辞書に
定義されていることが判別されるとS5に進み、符号語に
対応する参照番号をもつ文字列(ωK)を読み出し、文
字列(ωK)が得られればS6に進んで文字Kをスタック
し、文字Kを除いた参照番号ωの検索により次の文字列
(ωK)をS5で求め、参照番号ωが文字Kに帰着するま
でS5,S6の処理を行なった後、S7に進み、S6でスタック
した一連の文字をLIFO型式でポップアップして出力す
る。
尚、S4で符号が辞書に定義されていない場合のS8にお
ける例外処理は、S1における辞書初期値のロードにより
発生頻度がかなり低減しており、ほとんど例外処理に移
行することなく符号から文字列を復号することが可能と
なる。
このように、復号化については入力した最初の符号か
ら辞書に文字列として既に登録されているため、第9図
の従来の復号化にあっては、最初、まず1文字から復元
していたものの、第7図の本発明の復号化にあっては最
初の符号から文字列に復元することができる。
尚、第6,7図の符号化及び復号化の処理にあっては、
辞書の初期値を記憶装置からロードしてから符号化ある
いは復号化を始めるようにしているが、学習により得ら
れた初期値を辞書の先頭に格納して書き替えしない禁止
部分として設定して、辞書初期化による消去を禁止する
ことで符号化あるいは復号化してもよい。
また、上記の実施例にあっては辞書の初期値をサンプ
ルデータを構成している1つの文字列から作成している
が、これ以外に複数個のサンプルデータをつないだもの
を入力して辞書の初期値を作成してもよい。また、1つ
のサンプルデータから作成した初期値をロードした後
に、次のサンプルデータを使用して辞書を作り、この辞
書の中の高頻度の文字列のみを取り出すという処理を繰
り返すことで、累積して複数のサンプルデータに共通な
辞書の初期値を作成するようにしてもよい。
[発明の効果] 以上説明してきたように本発明によれば、多く現れる
特定種類のデータをサンプルデータとして学習処理によ
り得られた辞書の初期値を符号化あるいは復号化に用い
ることで、LZW符号のアルゴリズムの簡易さをほとんど
変えることなく、圧縮率を大幅に向上することができ
る。
また、初期値として辞書登録されていない出現瓶度の
少ない種類のデータについては、初期値設定後の辞書の
空きスペースに新たな文字列として登録することによっ
て、初期値として登録した特定種類のデータ以外のデー
タについてのユニバーサル性を損うことなくデータ圧縮
を行なうことができる。
更に、出現頻度の高いデータの種類が予め予想できる
場合には、辞書初期値をデータの種類によって何種類か
準備しておき、辞書にロードする初期値の部分を切り換
えることによって、予想した特定種のデータに対し強力
なデータ圧縮を実現する符号化方式を実現することがで
きる。
【図面の簡単な説明】
第1図は本発明の原理説明図; 第2図は本発明の作用説明図; 第3図は本発明の実施例構成図; 第4図は本発明のサンプルデータによる辞書の作成処理
フロー図; 第5図は本発明による辞書圧縮の処理フロー図; 第6図は本発明の符号化処理フロー図; 第7図は本発明の復号化処理フロー図; 第8図は従来のLZW符号化処理フロー図; 第9図は従来のLZW復号化処理フロー図; 第10図はLZW符号化説明図; 第11図は辞書構成例の説明図; 第12図はLZW復号化説明図である。 図中、 10:辞書 12:CPU 14:プログラムメモリ 16:コントロールソフト 18:最大一致長検索ソフト 20:符号化ソフト 22:復号化ソフト 24:辞書初期値作成ソフト 26:データメモリ 28:データバッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 千葉 広隆 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭60−116228(JP,A) 特開 昭63−151224(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/42

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】入力文字列の最大長一致する部分列の参照
    番号を指定して辞書に登録すると共に、そのとき得られ
    た参照番号に次の1文字を付加した部分列に対して新た
    な参照番号を付加する登録手順により入力文字列情報を
    辞書に登録する辞書登録方法に於いて、 前記辞書の使用開始に際して所望のサンプルデータを対
    象として前記登録手順により得た辞書初期値を辞書に登
    録すると共に、出現頻度が所定の閾値以下の登録内容は
    削除することを特徴とする辞書登録方法。
  2. 【請求項2】請求項1記載の辞書登録方法に於いて、 登録内容の削除によって空白になった登録エリア以降に
    残った登録内容がある場合、残った登録内容を前記空白
    になった登録エリアに詰めることを特徴とする辞書登録
    方法。
  3. 【請求項3】請求項1から請求項3記載のいずれかの辞
    書登録方法に於いて、 前記サンプルデータにより得られた辞書初期値を前記辞
    書の先頭の書き換え禁止部分に固定したことを特徴とす
    る辞書登録方法。
  4. 【請求項4】符号化時には入力文字列を辞書に登録され
    た既に符号化済みの部分列の内、最大長一致する部分列
    の参照番号を指定して符号化すると共に該符号語として
    得られた参照番号に次の1文字を付加した部分列に対し
    て新たな参照番号を付加して前記辞書に登録するデータ
    圧縮方法に於いて、 前記辞書の使用開始時における辞書内容を決める初期化
    時に、所望のサンプルデータを対象とした前記符号化に
    より辞書登録された部分列の内、出現頻度の高い部分を
    既に符号化済みの部分列と見做して前記辞書に初期値と
    して登録することを特徴とするデータ圧縮方法。
JP2045163A 1990-02-26 1990-02-26 データ圧縮方式 Expired - Fee Related JP3038223B2 (ja)

Priority Applications (11)

Application Number Priority Date Filing Date Title
JP2045163A JP3038223B2 (ja) 1990-02-26 1990-02-26 データ圧縮方式
EP98201925A EP0871294B1 (en) 1990-02-26 1991-02-26 Method and apparatus for compression and decompression of data
EP98201926A EP0871295B1 (en) 1990-02-26 1991-02-26 Method and apparatus for compression and decompression of data
PCT/JP1991/000252 WO1991013395A1 (en) 1990-02-26 1991-02-26 Data compression and restoration method and device therefor
EP98201928A EP0878915A3 (en) 1990-02-26 1991-02-26 Method and apparatus for compression and decompression of data
DE69132187T DE69132187D1 (de) 1990-02-26 1991-02-26 Verfahren zur komprimierung und wiederherstellung von daten und gerät dazu
KR1019910701461A KR950013228B1 (ko) 1990-02-26 1991-02-26 데이타 압축과 복원방법 및 그 장치
DE69133377T DE69133377T2 (de) 1990-02-26 1991-02-26 Verfahren und Vorrichtung zur Komprimierung und Dekomprimierung von Daten
DE69133481T DE69133481T2 (de) 1990-02-26 1991-02-26 Verfahren und Vorrichtung zur Kompression und Dekompression von Daten
EP91904319A EP0472730B1 (en) 1990-02-26 1991-02-26 Data compression and restoration method and device therefor
US08/003,876 US5254990A (en) 1990-02-26 1993-01-11 Method and apparatus for compression and decompression of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2045163A JP3038223B2 (ja) 1990-02-26 1990-02-26 データ圧縮方式

Publications (2)

Publication Number Publication Date
JPH03247167A JPH03247167A (ja) 1991-11-05
JP3038223B2 true JP3038223B2 (ja) 2000-05-08

Family

ID=12711597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2045163A Expired - Fee Related JP3038223B2 (ja) 1990-02-26 1990-02-26 データ圧縮方式

Country Status (1)

Country Link
JP (1) JP3038223B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277585B2 (en) 2001-05-25 2007-10-02 Ricoh Company, Ltd. Image encoding method, image encoding apparatus and storage medium
JP4456554B2 (ja) * 2005-10-31 2010-04-28 富士通株式会社 データ圧縮方法及び圧縮データ送信方法
JP4456574B2 (ja) * 2006-03-13 2010-04-28 富士通株式会社 圧縮データ送信方法
JP5521501B2 (ja) * 2009-11-09 2014-06-18 セイコーエプソン株式会社 画像処理装置、および、画像処理方法
US10387377B2 (en) * 2017-05-19 2019-08-20 Takashi Suzuki Computerized methods of data compression and analysis
US11741121B2 (en) 2019-11-22 2023-08-29 Takashi Suzuki Computerized data compression and analysis using potentially non-adjacent pairs
CN116663069B (zh) * 2023-08-01 2023-10-03 国家基础地理信息中心 基于数据编码的数据库安全加密方法及系统

Also Published As

Publication number Publication date
JPH03247167A (ja) 1991-11-05

Similar Documents

Publication Publication Date Title
JP3009727B2 (ja) 改良形データ圧縮装置
JP3241788B2 (ja) データ圧縮方式
JP3038223B2 (ja) データ圧縮方式
JP3241787B2 (ja) データ圧縮方式
JP3242795B2 (ja) データ処理装置及びデータ処理方法
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
JP3038233B2 (ja) データ圧縮及び復元装置
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JPH06168097A (ja) データ符号化方式及びデータ復元方式
JP2954749B2 (ja) データ圧縮方式
JP3054183B2 (ja) データ圧縮装置の辞書書き替え方式
JPH05152971A (ja) データ圧縮・復元方法
JP3012679B2 (ja) データ圧縮方法
JP3088740B2 (ja) データ圧縮及び復元方式
JP2825960B2 (ja) データ圧縮方法及び復元方法
JP3012678B2 (ja) データ圧縮方法
JP2999587B2 (ja) データ圧縮及び復元方式
JP3012677B2 (ja) Zl符号化方法
JP3058931B2 (ja) データ圧縮・復元における辞書登録方式
JP3388768B2 (ja) データ圧縮及び復元方式
JP3115066B2 (ja) 辞書検索方法
JP2999561B2 (ja) データ圧縮及び復元装置
JP3078601B2 (ja) データ圧縮方法
JP3053656B2 (ja) データ圧縮における辞書登録方式
JP2952067B2 (ja) データ圧縮方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees