JP3054183B2 - データ圧縮装置の辞書書き替え方式 - Google Patents

データ圧縮装置の辞書書き替え方式

Info

Publication number
JP3054183B2
JP3054183B2 JP2275836A JP27583690A JP3054183B2 JP 3054183 B2 JP3054183 B2 JP 3054183B2 JP 2275836 A JP2275836 A JP 2275836A JP 27583690 A JP27583690 A JP 27583690A JP 3054183 B2 JP3054183 B2 JP 3054183B2
Authority
JP
Japan
Prior art keywords
dictionary
character string
address
registration
reference time
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
JP2275836A
Other languages
English (en)
Other versions
JPH04149767A (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
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2275836A priority Critical patent/JP3054183B2/ja
Publication of JPH04149767A publication Critical patent/JPH04149767A/ja
Application granted granted Critical
Publication of JP3054183B2 publication Critical patent/JP3054183B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】 [概要] ユニバーサル符号化の一種である増分分解型の改良と
してのLZW符号によるデータ圧縮装置の辞書書き替え方
式に関し、 辞書の学習結果を有効に活用して圧縮率を向上するこ
とを目的とし、 辞書の各参照番号毎に最近参照されたか否か記憶して
おき、辞書登録が一杯になった時には、最近参照された
文字列のみを辞書に残し、参照された時点の古い文字列
を捨てて新たな登録スペースを空けるように構成する。
[産業上の利用分野] 本発明は、ユニバーサル符号化の一種である増分分解
型の改良としてのLZW符号によるデータ圧縮装置辞書書
き替え方式に関し、特に符号化済みの文字列を相異なる
部分列に分けて辞書に登録しておき、入力文字列を該辞
書(10)の中の部分列の内、最大長一致するものの参照
番号で指定してLZW符号に符号化するデータ圧縮装置の
辞書書き替え方式に関する。
近年、文字コ−ド、ベクトル情報、画像など様々な種
類のデ−タがコンピュ−タで扱われるようになってお
り、扱われるデ−タ量も急速に増加してきている。大量
のデ−タを扱うときは、デ−タの中の冗長な部分を省い
てデ−タ量を圧縮することで、記憶容量を減らしたり、
速く伝送したりすることが望まれる。
このような様々なデ−タを1つの方式でデ−タ圧縮で
きる方法としてユニバ−サル符号化が提案されている。
ここで、本発明の分野は、文字コ−ドの圧縮に限ら
ず、様々なデ−タに適用できるが、以下では、情報理論
で用いられている呼称を踏襲し、デ−タの1ワード単位
を文字と呼び、デ−タが任意ワードつながったものを文
字列と呼ぶことにする。
ユニバ−サル符号の代表的な方法としては、Ziv−Lem
pel(ジブ−レンペル)符号がある(詳しくは、例え
ば、宗像「Ziv−Lempelのデ−タ圧縮法」、情報処理、V
OL.26,No.1,1985年を参照のこと)。
Ziv−eLmpel符号では ユニバ−サル型と、 増分分解型(Incremental parsing) の2つのアルゴリズムが提案されている。
更に、ユニバ−サル型アルゴリズムの改良として、LZ
SS符号がある(T.C.Bell,“Better OPM/L Text Compre
ssion",IEEE Trans.on Commun.,Vol.COM−34,No.12,De
c.1986参照)。
また増分分解型アルゴリズムの改良としては、LZW(L
empel−Ziv−Welch)符号がある(T.A.Welch,“A Techn
ique for High−Performance Data Compression",Comp
uter,June1984参照)。
これらの符号の内、高速処理ができることと、アルゴ
リズムの簡単さからLZW符号が記憶装置のファイル圧縮
などで使われるようになっている。
[従来の技術] 従来のLZW符号化アルゴリズムのフローチャートをを
第6図に示す。
LZW符号化は、書き替え可能な辞書を持ち、入力文字
コ−ド、デ−タ中を相異なる文字列に分け、この文字列
を出現した順に番号を付けて辞書に登録すると共に、現
在入力している文字列を辞書に登録してある最長一致文
字列の番号で表して、符号化するものである。
第6図の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)が辞書から探せなくなるまで最大一致長
の検索を続ける。
S6で辞書登録を行なうとS7で辞書が一杯になったか否
か、即ち、辞書の最大アドレスNMAXまで登録したか否か
判定し、最大アドレスNMAXまで登録すると、辞書への登
録を止めてS8で例えば数100キロバイト単位に圧縮率を
チェックする。そして、S9で圧縮率が前回チェックした
ときと比べ悪化する方向に動いていれば、辞書がデ−タ
の統計的性質とズレができていると判断し、S10で第1
文字のみ含むように辞書を初期化した後、S2に戻って再
度、辞書への登録を行ないながら、符号化を行なう。
尚、復号化は符号化の逆の操作を行なう。
第7図にLZW符号化の具体例を示すとともに、第8図
に符号化時の辞書の内容を示す。尚、第7,8図は、簡単
にするため、abc3文字からなるデ−タを圧縮する場合の
例を取上げている。
第7図において、入力データinputは左から右へと読
む。最初の文字aを入力した時、辞書には文字aの他に
一致する文字列がないので、OUTPUT CODE 1(参照番号
ω)を符号語して出力する。そして文字aを語頭文字列
ωとする。
次に2番目の文字bを入力したとすると、この入力文
字を語頭文字列ωに加えた文字列ωK=abは辞書にない
ことから、入力文字bのOUTOPUT CODE 2を符号語とし
て出力する。そして、拡張した文字列ωK=abに参照番
号4を付けて辞書に登録する。実際の辞書登録は第8図
の右側に示すように文字列1bとして登録される。そして
文字bが語頭文字列ωとなる。
続いて3番目の文字aを入力したとすると、入力文字
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を付けて登録
する。以下同様に、この処理を続ける。
[発明が解決しようとする課題] 従来のLZW符号化アルゴリズムにあっては、辞書が一
杯になったときに圧縮率をチェックし、圧縮率が悪化し
たとき、第1文字のみ含むように辞書を初期化した後、
再学習を行なっっており、辞書の初期化は簡単なため高
速で処理ができる利点がある。
しかしながら、従来方式では、今までの学習した履歴
を全部捨ててしまうため、初期化の回数が多いとき、十
分大きい辞書サイズをもって辞書の初期化なしで符号化
する理想的な場合に比べ、圧縮率が低下するという問題
があった。
本発明は、このような従来の問題点に鑑みてなされた
もので、辞書の学習結果を有効に活用して圧縮率を向上
するようにしたデータ圧縮装置の辞書書き替え方式を提
供することを目的とする。
[課題を解決するための手段] 第1図は本発明の原理説明図である。
まず本発明は、符号化済みの文字列を相異なる部分列
に分けて辞書10に登録しておき、入力文字列を辞書10の
中の部分列の内、最大長一致するものの参照番号で指定
してLZW符号に符号化するデータ圧縮装置を対象とす
る。
このようなデータ圧縮装置につき本発明の辞書書き替
え方式にあっては、 辞書10の部分列が参照されたときの辞書登録の時間的
な進行状態を示す値を格納する参照時点記憶手段30と; 辞書10への登録が一杯になったとき、所定の閾値Tよ
り参照時点記憶手段30に格納した値が古い部分列を辞書
10より削除して登録スペ−スを空け、再度、辞書への登
録と該最大一致長部分列の番号での符号化を行なわせる
辞書削除手段24と; を備えたことを特徴とする。
ここで参照時点記憶手段30に格納する辞書登録の時間
的な進行状態を示す値として、辞書登録済みアドレスの
一部を用い、辞書削除手段24はこのアドレスの一部が所
定の閾値Tより小さい部分列を古い部分列として削除す
る。具体的には、参照時点記憶手段30に格納する辞書登
録の時間的な進行状態を示す値として、辞書登録済みア
ドレスの上位2ビットを用い、辞書削除手段24はこのア
ドレスの上位2ビットが所定の閾値Tより小さい部分列
を古い部分列として削除する。
[作用] このような構成を備えた本発明によるデータ圧縮装置
の辞書書き替え方式によれば、辞書の各参照番号毎に最
近参照されたか否かを記憶しておき、辞書への登録が一
杯になったとき、最近参照された文字列のみ辞書に残
し、参照された時点が古い文字列を捨て新たに登録する
辞書スペ−スを空けるようになり、最近出現した文字列
は辞書に残されるので、いままで学習した結果を損ねる
ことなしに、学習符号化を続けることができる。
[実施例] 第2図は本発明の一実施例を示した実施例構成図であ
る。
第2図において、12は制御手段としてのCPUであり、C
PU12に対してはプログラムメモリ14とデ−タメモリ26が
接続される。
プログラムメモリ14にはコントロ−ルソフト16、LZW
符号を用いた最大一致長検索を行なう最大一致長検索ソ
フト18、入力文字列をLZW符号に変換する符号化ソフト2
0、符号化ソフト20でLZW符号に変換された符号を元の文
字列に復元する復号化ソフト22、及び辞書登録が一杯に
なった時に辞書書き替えを行なう辞書書き替えソフト24
を備える。
一方、デ−タメモリ26には、これら符号化しようとす
る文字列、或いはこれから復号化しようとする符号列を
格納するデ−タバッファ28と、LZW符号を対象とした符
号化及び復号化の際に逐次作成されながら使用される辞
書10を備える。
更に本発明にあっては、辞書10に対して辞書登録の参
照番号毎に辞書登録の時間的な進行状態を示す値として
の参照時点を格納した参照時点メモリ部30が設けられて
いる。
即ち、参照時点メモリ部30は、各文字列(語頭文字列
ω)に最近どの時点でその文字列が参照されたかを知る
メモリとして設けられる。符号化時には、辞書10の参照
により最大一致長の文字列ωが得られると、この文字列
は一文字Kずつ伸ばされてωKとなって次の最大一致長
の検索を行い、この検索で参照された既登録の文字列は
辞書の内部節点、即ち語頭が同じで短い文字列となる。
本発明では、このような符号化の際に、 辞書10に新たに登録した文字列と、 参照された内部節点の文字列、 のそれぞれにつき参照時点メモリ部30に辞書登録済アド
レスnの上位ビットをセットする。例えば、参照時点メ
モリ30を2ビットとすれば、第3図に示すように、辞書
登録済アドレスnの上位2ビット00,01,10,11が参照時
点メモリ30に格納される。尚、説明の都合上、参照時点
メモリ部30に参照時点の値00,01,10,11を順番に入れて
いるが、実際には符号化に応じてランダムに存在する。
第4図は本発明の符号化アルゴリズムを示したフロー
チャートであり、S1〜S6の符号化手順は第5図に示した
従来の処理手順と同じである。
これに加えて本発明にあっては、S100の辞書登録スペ
ースのチェックルーチンが新たに加わり、これを第5図
にサブルーチンとして示す。
第5図のチェックルーチンにおいては、まずS1で辞書
に登録スペースがあるか否か、辞書登録済みアドレスn
と辞書10の最大アドレスNMAXとを比較して調べる。もし
辞書アドレスnが辞書10の最大アドレスNMAX以下で登録
スペースがあれば、そのまま第4図のS2の処理に戻る。
一方、辞書アドレスnが辞書10の最大アドレスNMAXよ
り大きければ、登録スペースがないので、S2以降の処理
に進み、参照時点メモリ部30に格納されている値rm
(i)が閾値T以上となる文字列のみ残し、閾値Tり小
さい値rm(i)の文字列は辞書10から削除する。これに
は各文字列の参照時点メモリ30の値rm(i)を順に調
べ、閾値Tより小さい文字列の番号ωと拡張文字Kの組
を削除すると共に、辞書のアドレスω以降にあるωより
大きい文字列番号を1つ下げるようにする。
S2以降を詳細に説明すると次のようになる。
まずS2で辞書アドレスiをゼロにリセットし、続いて
S3で辞書アドレスiを1つインクリメントし、S4で最終
アドレスnに達したか否かチェックした後、S5に進んで
参照時点メモリ30のアドレスiの値、即ち参照時点rm
(i)が最近の参照時点を示す予め定めた閾値Tより小
さいか否かチェックする。
もし、参照時点rm(i)の値が閾値Tより小さければ
S6に進んで、現在の辞書アドレスiを削除して次の辞書
アドレスjに置き換える削除処理を行なう。続いてS7に
進み、削除した辞書アドレスiに続く次の辞書アドレス
jが最終アドレスn以内にあるかチェックし、最終アド
レスn以内にあればS8に進んで、辞書アドレスi以降に
i=ωより大きい参照番号ωをもつ文字列が存在するか
否かチェックする。削除した辞書アドレスi以降の参照
番号ωより大きい参照番号をもつ文字列が存在したなら
ばS9に進んで、文字列の中の参照番号ωの値をデクリメ
ントにより1つ減らし、S10に進んで辞書アドレスjの
文字列(ωK)を1つ前の辞書アドレスj−1に登録す
る。そして、処理が済んだ辞書アドレスjを次の処理の
ためにj+1とインクリメントしてS7に戻り、辞書アド
レスjが最終アドレスnを越えるまでS7,S8,S9及びS10
の処理を繰り返す。即ち、閾値Tより小さい参照時点の
古い文字列を削除した場合には、削除した文字列のアド
レス以降に存在する文字列の中の参照番号を1つ減ら
し、且つ登録アドレスを1つ詰める処理を繰り返す。
S7〜S10の処理が終了するとS7からS11に進み、文字列
を1つ削除したことから最終アドレスnを1つデクリメ
ントし、再びS3に戻って辞書アドレスiをインクリメン
トして次の文字列に対する参照時点のチェックを行な
い、S4で最終アドレスnが判別するまで繰り返す。
S4で最終アドレスnへの到達が判別されるとS12に進
んで辞書の最終アドレスnと辞書の内容をデータメモリ
28に書き込んで第4図のS2に戻る。
この処理により高頻度で出現する文字列を辞書10に残
したまま、辞書10に新たな登録スペ−スを確保すること
ができる。そして、辞書10への登録が一杯になるたび
に、繰り返し辞書10を圧縮して、辞書10への登録スペ−
スを空けることになる。
本発明における辞書10の登録スペ−ス確保としては、
例えば、第3図に示したように参照時点メモリ部30を2
ビットに取り、辞書登録済みアドレスの上位2ビットを
参照時点の値としてセットするようにした場合、辞書10
への登録が一杯になったとき、閾値Tとして2進で(0
1),(10)又は(11)を取れば、それぞれの場合につ
き辞書10に1/4,2/4又は3/4のスペ−スを空けることがで
きる。
この場合、辞書10にスペ−スを空ける区切りは、参照
時点メモリ部30のビット数を多く取れば、それだけ細か
く制御できる。
尚、上記の実施例では参照時点メモリ部30に辞書登録
済みアドレスの一部を格納するようにしたが、本発明は
これに限定されず、辞書登録の時間的な進行状態が知り
得る値であれば、適宜の値を用いても良い。
また、第5図のチェックルーチンでは、削除すべき部
分列を一つずつ見つけながら辞書全体を見て更新を行な
ったが、本発明はこれに限定されず、本願発明者等がす
でに提案している高速処理法(特願平2−194396号)を
用いても良い。
[発明の効果] 以上説明したように本発明によれば、辞書への登録が
一杯になったとき、最近出現した文字列は辞書に残され
るので、いままで学習した結果を損ねることなしに、学
習符号化を続けることができる。このため、入力デ−タ
の量に比べ、小さいサイズの辞書を用いても本発明で
は、十分大きい辞書サイズをもって辞書の初期化なしで
符号化する場合に近い圧縮率が得られる。
【図面の簡単な説明】
第1図は本発明の原理説明図; 第2図は本発明の実施例構成図; 第3図は本発明の辞書と参照時点メモリ部の対応説明
図; 第4図は本発明の符号化アルゴリズムのフローチャー
ト; 第5図は本発明での辞書登録スペースのチェック処理の
フローチャート; 第6図は従来のLZW符号化アロゴリズムのフローチャー
ト; 第7図は従来のLZW符号化の具体例説明図; 第8図は辞書構成例の説明図ンである。 図中、 10:辞書 12:CPU 14:プログラムメモリ 16:コントロ−ルソフト 18:最大一致長検索ソフト 20:符号化ソフト 22:復号化ソフト 24:辞書削除手段(辞書書き替えソフト) 26:デ−タメモリ 28:デ−タバッファ 30:参照時点記憶手段(参照時点メモリ部)
フロントページの続き (72)発明者 千葉 広隆 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭59−231683(JP,A) 特開 昭60−116228(JP,A) 「必読データ圧縮のアルゴリズムと実 践」、奥村ほか著、(株)技術評論社発 行「The BASIC」誌、1989年3 月号、pp1〜65 (58)調査した分野(Int.Cl.7,DB名) H03M 7/40

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】符号化済みの文字列を相異なる部分列に分
    けて辞書(10)に登録しておき、入力文字列を該辞書
    (10)の中の部分列の内、最大長一致するものの参照番
    号で指定して符号化するデータ圧縮装置に於いて、 前記辞書(10)の部分列が参照されたときの辞書登録の
    時間的な進行状態を示す値を格納する参照時点記憶手段
    (30)と; 前記辞書(10)への登録が一杯になったとき、所定の閾
    値(T)より前記参照時点記憶手段(30)に格納した値
    が古い部分列を前記辞書(10)より削除して登録スペ−
    スを空け、再度、辞書への登録と該最大一致長部分列の
    番号での符号化を行なわせる辞書削除手段(24)と; を備えたことを特徴とするデ−タ圧縮装置の辞書書き替
    え方式。
  2. 【請求項2】請求項1記載のデータ圧縮装置の辞書書き
    替え方式に於いて、 前記参照時点記憶手段(30)に格納する辞書登録の時間
    的な進行状態を示す値として、辞書登録済みアドレスの
    一部を用い、前記辞書削除手段(24)は前記アドレスの
    一部が所定の閾値(T)より小さい部分列を古い部分列
    として削除することを特徴とするデータ圧縮装置の辞書
    書き替え方式。
  3. 【請求項3】請求項2記載のデータ圧縮装置の辞書書き
    替え方式に於いて、 前記参照時点記憶手段(30)に格納する辞書登録の時間
    的な進行状態を示す値として、辞書登録済みアドレスの
    上位2ビットを用い、前記辞書削除手段(24)は前記ア
    ドレスの上位2ビットが所定の閾値(T)より小さい部
    分列を古い部分列として削除することを特徴とするデー
    タ圧縮装置の辞書書き替え方式。
JP2275836A 1990-10-15 1990-10-15 データ圧縮装置の辞書書き替え方式 Expired - Fee Related JP3054183B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2275836A JP3054183B2 (ja) 1990-10-15 1990-10-15 データ圧縮装置の辞書書き替え方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2275836A JP3054183B2 (ja) 1990-10-15 1990-10-15 データ圧縮装置の辞書書き替え方式

Publications (2)

Publication Number Publication Date
JPH04149767A JPH04149767A (ja) 1992-05-22
JP3054183B2 true JP3054183B2 (ja) 2000-06-19

Family

ID=17561111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2275836A Expired - Fee Related JP3054183B2 (ja) 1990-10-15 1990-10-15 データ圧縮装置の辞書書き替え方式

Country Status (1)

Country Link
JP (1) JP3054183B2 (ja)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「必読データ圧縮のアルゴリズムと実践」、奥村ほか著、(株)技術評論社発行「The BASIC」誌、1989年3月号、pp1〜65

Also Published As

Publication number Publication date
JPH04149767A (ja) 1992-05-22

Similar Documents

Publication Publication Date Title
US5883588A (en) Data compression system and data compression device for improving data compression rate and coding speed
JP3241788B2 (ja) データ圧縮方式
JP3038223B2 (ja) データ圧縮方式
JP3054183B2 (ja) データ圧縮装置の辞書書き替え方式
JPH10261969A (ja) データ圧縮方法および装置
JP3241787B2 (ja) データ圧縮方式
JP3242795B2 (ja) データ処理装置及びデータ処理方法
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
JP2954749B2 (ja) データ圧縮方式
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JP2910639B2 (ja) データ圧縮装置
JP2999587B2 (ja) データ圧縮及び復元方式
JP3012677B2 (ja) Zl符号化方法
JP3388768B2 (ja) データ圧縮及び復元方式
JP3053656B2 (ja) データ圧縮における辞書登録方式
JP2952067B2 (ja) データ圧縮方式
JP3012679B2 (ja) データ圧縮方法
JP3132774B2 (ja) データ圧縮・復元装置
JPH05152971A (ja) データ圧縮・復元方法
JP3088740B2 (ja) データ圧縮及び復元方式
JP3058931B2 (ja) データ圧縮・復元における辞書登録方式
JP3115066B2 (ja) 辞書検索方法
JP2799228B2 (ja) 辞書初期化方式
JP3078601B2 (ja) データ圧縮方法
JP3012678B2 (ja) データ圧縮方法

Legal Events

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