JP2765239B2 - 適応的データ圧縮方式 - Google Patents

適応的データ圧縮方式

Info

Publication number
JP2765239B2
JP2765239B2 JP2418912A JP41891290A JP2765239B2 JP 2765239 B2 JP2765239 B2 JP 2765239B2 JP 2418912 A JP2418912 A JP 2418912A JP 41891290 A JP41891290 A JP 41891290A JP 2765239 B2 JP2765239 B2 JP 2765239B2
Authority
JP
Japan
Prior art keywords
dictionary
registered
compression ratio
subsequence
compression
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 - Lifetime
Application number
JP2418912A
Other languages
English (en)
Other versions
JPH04219818A (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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2418912A priority Critical patent/JP2765239B2/ja
Publication of JPH04219818A publication Critical patent/JPH04219818A/ja
Application granted granted Critical
Publication of JP2765239B2 publication Critical patent/JP2765239B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、入力系列の部分系列に
参照番号を割り振った辞書を作り、同じ部分系列が再び
現れたらその参照番号を出力し、その部分系列を延ばし
た系列を上記辞書に登録していく無歪データ圧縮方式に
関するものである。
【0002】
【従来の技術】辞書を用いたデータ圧縮方式を実用化す
る場合、辞書を作るためのメモリはある程度制限されて
いるのが普通である。そこで辞書が一杯になったときの
処置が必要である(辞書に登録される系列の個数の最大
値を“辞書のサイズ”と呼ぶ)。次のような例がある。 (1)入力データを予め、圧縮を実行したときに辞書が
一杯にならない程度の大きさのブロックに分割しておい
て、ブロック毎に独立に符号化する (2)辞書が一杯になったらそれ以上登録は行わず、そ
のまま符号化を行う (3)いらない系列を削除し、そこに新しい系列を登録
する データの性質が途中で全く変わってしまったりすると圧
縮率を落とす原因になるが、そのための処置を講じよう
とすると、(1)はそのままで有効である。(2)を採
用したときには、圧縮率が落ちたら辞書を初期化し改め
て符号化をし始めるという方式がある(Unixのコマ
ンド“compress”)。(3)については常に枝
の更新が行われているため、削除の仕方が適当であれば
データの性質が変わってしまう場合にも有効である。削
除の仕方では、古くに登録されたものから削除してゆく
方法(この方法を今後“LRU(Least Rece
ntly Used)deletion heuris
tic”または単位“LRU”と呼ぶ)などが有効であ
る。古くに登録されたものを決定するためにself−
organizing listなどのデータ構造を用
いていた。
【0003】
【発明が解決しようとする課題】LRUを使用する方式
で、古くに登録された系列を決定するためにself−
organizing listなどの構造を用いなけ
ればならなかった。また、ブロックに分割してブロック
毎に独立に圧縮する方式だと、長い系列を圧縮できない
ため、特に冗長の大きいデータを圧縮するときの圧縮率
の劣化が大きい。また、いろいろな辞書サイズにおいて
LRUを使い圧縮を行うと、小さなサイズの方が圧縮率
が良くなることがある。
【0004】本発明の目的は、上述の問題点を解決し、
いろいろな性質のデータに対し、柔軟に対応できるデー
タ圧縮方式を提供することにある。
【0005】
【課題を解決するための手段】本発明は、入力系列の部
分系列に参照番号を割り振った辞書を作り、同じ部分系
列が再び現れたらその参照番号を出力し、その部分系列
を延ばした系列を前記辞書に登録し、前記辞書が一杯に
なったら古い部分系列から順に、前記辞書の木構造を用
いて削除し、空いたスペースに新しい部分系列を登録
ていくリアルタイムで実行できる無歪データ圧縮方式で
ある。
【0006】本発明によれば、最近の圧縮率を計算し、
圧縮率が予め設定された辞書拡大のための基準値より良
くなったら辞書を拡大し、圧縮率が予め設定された辞書
初期化のための基準値より悪くなったら辞書を縮小する
ことにより、前記辞書に登録される部分系列の個数の最
大値を変更する。
【0007】
【作用】辞書の検索の為に使われる木構造では古い系列
から順にリストに並ぶことになるので、木の言葉で言え
ば削除すべき古い葉が容易に決定できる。
【0008】圧縮率を定期的に計算して、よく圧縮され
ているようだったら辞書サイズを拡大し、全く圧縮され
ていないようだったら辞書を初期化し、どちらでもなか
ったら辞書サイズはそのままでLRUを使用することに
より、データの状態に柔軟に対応する辞書を作成でき
る。
【0009】
【実施例】辞書を使ったデータ圧縮方式としてLemp
el−Ziv−Weltch(LZW)の方式を採用す
る。辞書は入力系列の部分列に参照番号を対応させたも
のである。LZWでは入力系列と辞書に登録されている
部分系列の一致は辞書に登録されている中でなるべく長
くとり(greedy parsing)、新たに登録
するパターンは以前に登録したパターンを一文字延長し
たものである。辞書の初期状態は入力アルファベットの
各キャラクタに参照番号を割り振ったものである。
【0010】第1図は本発明を実施する適応的データ圧
縮装置を示すブロック図である。この適応的データ圧縮
装置は、入力系列と辞書の系列との間のマッチングをと
り、辞書の参照番号から符号語を生成し、また、辞書に
登録する系列を決定する符号器1と、入力系列の部分列
に参照番号を対応させたテーブルを有する辞書2と、辞
書サイズの変更を決定する制御器3と、辞書の削除する
場所を決定する制御器4とから構成されている。
【0011】図2は、符号木1におけるLZWの符号化
のフローチャートである。ステップ51では辞書の初期
化を行う。ステップ52では入力データの最初の一文字
を読み込み、それをprefix ωとする。ステップ
53では符号化終了かどうか決定する。ステップ54で
は次の一文字Kを読み込み、ステップ55ではωKが辞
書にあるかどうか決定する。もしあったらステップ53
からステップ56を繰り返し、ない場合はステップ57
でωの参照番号を出力し、またステップ53からステッ
プ56を繰り返す。
【0012】図3はLZWを使って符号化したときの辞
書の例である。入力アルファベットは{A,B,C}と
して、入力系列“ABBABCABCCAB”を符号化
したあとの辞書である。childはそれに続く系列の
内で最初に現れたものを指し、siblingは同じ親
を持つ系列で次に現れたものを指すポインタである。こ
のようにchild,siblingという二つのポイ
ンタにより木構造が入っている。childはその系列
に続く系列で最初に現れた系列の番地を示し、sibl
ingは同じ“親”を持つ系列で次に現れた系列の番地
を示す。
【0013】制御器4における削除位置を決定するアル
ゴリズムは図4のフローチャートで表される。入力アル
ファベットAの大きさを|A|とする。削除位置を決定
するための辞書の番地を示すポインタpを用意する。c
hild(p)でpにおけるchildの値を示す。p
の初期値は|A|+1とする。ステップ21においてp
に登録されている系列がleafであるかどうか調べ
る。もしleafでなかったらステップ24でpを一つ
ずらし、そこがleafかどうか調べ、これを繰り返
す。もしleafであったらステップ22で削除位置を
pに決定し、pに登録を行う。pは次の削除の位置決定
のため一つずらす。ステップ23,25においてpが辞
書Dの大きさ|D|を越える場合にはpは、ステップ2
7で|A|+1に戻す。
【0014】辞書が飽和するまでは普通にLZWを行
う。辞書が飽和してからも登録する系列の決定の仕方は
LZWと同じとする。
【0015】こうして得られたpの位置に新たな系列を
登録する。新しく登録された系列は削除の候補のなかで
最下位になっている。また削除によりchild,si
blingを書き換える操作も必要である。
【0016】辞書が飽和したら上に述べたように削除・
登録を繰り返すとして、データの圧縮状況に応じて辞書
サイズを変更することにする。辞書サイズの変更はここ
では一例として初期化することにする。
【0017】辞書Dは、登録される系列の数の上界によ
ってD1 ,D2 ,・・・,Dk (|D1 |〈|D2 |・
・〈|Dk |)(|D1 |でD1 のサイズを表す)とk
個の状態を持つとする。
【0018】{Di }は図5のように遷移する。
【0019】“Di →Di+1 ”は辞書サイズの拡大して
符号化を続けることを示す。
【0020】
【数1】
【0021】
【0022】は、辞書サイズをそのままにして符号化を
続けることを示す。
【0023】
【数2】
【0024】
【0025】は、辞書と入力系列が全くかみ合わなくな
ったため辞書を初期化して新たに符号化し始めることを
示す。
【0026】各Di において、符号化はDi に登録され
ている系列の数が|Di |に達していないときには普通
にLZWを行い、|Di |に達したらLRUにより削除
登録を繰り返し、辞書サイズを一定に保ち符号化を続け
る。
【0027】図6は制御器3における辞書サイズの変更
を決定するためのフローチャートである。ステップ41
において最近のC(定数)個の系列が辞書に登録される
間の圧縮率ρを求める。今、辞書はD1 の状態でありC
個の系列が登録される間に入力系列がn bytes読
み込まれたとすると、 ρ=(C*|log2 |D1 ||)/(|log2 |A||*n) ステップ42において辞書を初期化するかどうか決定す
る。ステップ44では辞書が飽和しているかどうか調べ
る。飽和していないようなら辞書サイズはそのままであ
る。ステップ46において圧縮率ρと基準値τi を比較
することにより辞書サイズを拡大するかどうかを決定す
る。
【0028】入力アルファベットはbyte、|D1
=510、|D2 |=1022、|D3 |=2046、
|D4 |=4094、|D5 |=8190、τ1 =0.
75、τ2 =0.65、τ3 =0.55、τ4 =0.4
5として行った本発明による圧縮結果の圧縮率を表1に
示す。
【0029】
【表1】
【0030】
【0031】表1において各ファイルは次のようなもの
である。 FILE1:Cのプログラムファイル.52154by
tes. FILE2:Cのプログラムファイル.51703by
tes. FILE3:Quick Basicのプログラムファ
イル.46466bytes. FILE4:電子メール.27947bytes. FILE5:実行型のファイル.27832byte
s. FILE6:実行型のファイル.40401byte
s. FILE7:COMMAND.COM.24931by
tes. FILE8:システムファイル.20756byte
s. 表の中の数字は圧縮率で、(符号長/入力データ長)で
求めたものである。FILE1〜4については、辞書サ
イズ可変方式は最適なサイズの辞書を用いた場合にかな
り近い圧縮率を示している。
【0032】FILE5〜8については、辞書サイズ可
変方式は最適なサイズの辞書を用いた場合より1〜2%
圧縮率は落ちているが、最悪のサイズ(大きいサイズ)
の辞書を用いた場合より2〜6%圧縮率は改善してい
る。
【0033】
【発明の効果】本発明により、特別な記憶領域を割り当
てなくても、辞書の番地を示すポインタを一つ用意する
だけで、辞書の木構造を用いることによりLRUdel
etion heuristicが実現できる。
【0034】また、辞書サイズを可変にすることによ
り、いろいろな性質のデータに対し、柔軟に対応するデ
ータ圧縮方式が実現できる。
【0035】したがって、本発明を利用することによ
り、圧縮伸張を実行するときの消費されるメモリを制限
しておくことができ、なおかつ圧縮率の劣化を防ぎ、ま
た場合によっては圧縮率の向上が見られる場合もある。
【図面の簡単な説明】
【図1】本発明方式を実施する適応的データ圧縮装置の
ブロック図である。
【図2】LZWの符号化アルゴリズムを示したフローチ
ャートである。
【図3】LZWを使って符号化したときの辞書の例を示
す図である。
【図4】制御器4における削除の位置を決定するフロー
チャートである。
【図5】辞書サイズの遷移のさせ方を示した図である。
【図6】制御器4における辞書サイズの変更を決定する
ためのアルゴリズムを示したフローチャートである。
【符号の説明】
1 符号器 2 辞書 3,4 制御器

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】入力系列の部分系列に参照番号を割り振っ
    た辞書を作り、同じ部分系列が再び現れたらその参照番
    号を出力し、その部分系列を延ばした系列を前記辞書に
    登録し、前記辞書が一杯になったら古い部分系列から順
    に、前記辞書の木構造を用いて削除し、空いたスペース
    に新しい部分系列を登録していくリアルタイムで実行で
    きる無歪データ圧縮方式において、 最近の圧縮率を計算し、圧縮率が予め設定された辞書拡
    大の基準値より良くなったら辞書を拡大し、圧縮率が予
    め設定された辞書初期化のための基準値より悪くなった
    ら辞書を縮小することにより、前記辞書に登録される部
    分系列の個数の最大値を変更 する適応的データ圧縮方
    式。
JP2418912A 1990-12-19 1990-12-19 適応的データ圧縮方式 Expired - Lifetime JP2765239B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2418912A JP2765239B2 (ja) 1990-12-19 1990-12-19 適応的データ圧縮方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2418912A JP2765239B2 (ja) 1990-12-19 1990-12-19 適応的データ圧縮方式

Publications (2)

Publication Number Publication Date
JPH04219818A JPH04219818A (ja) 1992-08-10
JP2765239B2 true JP2765239B2 (ja) 1998-06-11

Family

ID=18526665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2418912A Expired - Lifetime JP2765239B2 (ja) 1990-12-19 1990-12-19 適応的データ圧縮方式

Country Status (1)

Country Link
JP (1) JP2765239B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63209229A (ja) * 1987-02-25 1988-08-30 Oki Electric Ind Co Ltd デ−タ文圧縮符号化方法

Also Published As

Publication number Publication date
JPH04219818A (ja) 1992-08-10

Similar Documents

Publication Publication Date Title
US6121901A (en) Data compression and decompression system with immediate dictionary updating interleaved with string search
US5229768A (en) Adaptive data compression system
US5850565A (en) Data compression method and apparatus
JP2006262462A (ja) データ圧縮方法及びシステム
EP0438955B1 (en) Data compression method
JPH04502377A (ja) データ圧縮
US7379940B1 (en) Focal point compression method and apparatus
EP0435802B1 (en) Method of decompressing compressed data
EP0438954B1 (en) Method of decoding compressed data
JP2765239B2 (ja) 適応的データ圧縮方式
JPH08223053A (ja) 圧縮データの伸張方法
US8244677B2 (en) Focal point compression method and apparatus
JP3242795B2 (ja) データ処理装置及びデータ処理方法
JP3910932B2 (ja) データシーケンスを圧縮するシステム、方法、およびコンピュータ読み取り可能媒体
RU2190295C2 (ru) Система уплотнения и разуплотнения данных с непосредственным обновлением каталога, которое чередуют с поиском строк
JPH04299411A (ja) ファイル圧縮装置およびファイル伸張装置
JP2827982B2 (ja) データ圧縮制御方法
JP4128152B6 (ja) データ圧縮方法及びシステム
WO2017039906A1 (en) Modifying a compressed block of data
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
JPH05265416A (ja) 画像情報伝送方式
JPH03247168A (ja) データ圧縮方式
JP3054183B2 (ja) データ圧縮装置の辞書書き替え方式
JP3015483B2 (ja) データ圧縮及び復元方式
JPH07225667A (ja) データ圧縮装置およびデータ復元装置