JP3053656B2 - データ圧縮における辞書登録方式 - Google Patents

データ圧縮における辞書登録方式

Info

Publication number
JP3053656B2
JP3053656B2 JP3030897A JP3089791A JP3053656B2 JP 3053656 B2 JP3053656 B2 JP 3053656B2 JP 3030897 A JP3030897 A JP 3030897A JP 3089791 A JP3089791 A JP 3089791A JP 3053656 B2 JP3053656 B2 JP 3053656B2
Authority
JP
Japan
Prior art keywords
data
dictionary
character
memory
address
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
JP3030897A
Other languages
English (en)
Other versions
JPH04270413A (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 JP3030897A priority Critical patent/JP3053656B2/ja
Publication of JPH04270413A publication Critical patent/JPH04270413A/ja
Application granted granted Critical
Publication of JP3053656B2 publication Critical patent/JP3053656B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ圧縮における辞書
登録方式に関する。詳しくは、データ圧縮にで使用する
辞書を作成する際に、使用頻度の少ない辞書内容を抹消
して、該辞書内容の位置に新たな辞書を登録し、辞書を
有効に利用することを可能にするデータ圧縮における辞
書登録方式に関する。
【0002】
【従来の技術】近年、文字コード、ベクトル情報、画像
など、さまざまな種類のデータがコンピュータで扱われ
るようになってきている。また、扱うデータ量も急速に
増加している。大量のデータを扱うときには、データの
なかの冗長な部分を省いてデータ量を圧縮することで、
記憶容量を減らしたり、伝送速度を速める方法が採られ
ている。さまざまなデータを一つの方式で圧縮する方法
としてユニバーサル符号化が提案されている。ここで言
うデータ圧縮は、さまざまなデータに適用できるが、以
下では、情報理論で用いられる呼称を踏襲して、データ
の1ワード単位を文字と呼び、データが任意のワード数
つながったものを文字列と呼ぶことにする。
【0003】ユニバーサル符号化の代表的な方法として
は、Ziv-Lempel(ジブ−レンペル)符号がある(詳しく
は、画像『Ziv-Lempelのデータ圧縮法』、情報処理、Vo
l.26, No.1, 1985年を参照されたい)。Ziv-Lempel符号
化には二つのアルゴリズム、すなわち、ユニバーサル型
と増分分解型(Incremental parsing)が提案されてい
る。さらに、ユニバーサル型アルゴリズムを改良したL
ZSS符号(詳しくは、T.C.Bell, "Better OPM/L Text
Compression", IEEE Trans.on Communication,Vol.COM
-34, No.12, Dec.1986 を参照)、増分分解型アルゴリ
ズムを改良したLZW(Lempel-Ziv-Welch)符号(詳し
くは、T.A.Welch, "A Technique for High-Performance
Data Compression", Computer, June 1984 を参照)が
ある。これらの符号のうち、高速処理ができることと、
アルゴリズムの簡単さからLZW符号が記憶装置のファ
イル圧縮などで使われるようになっている。
【0004】図8は、従来のLZW符号の符号化処理の
動作フローチャート、図9は、従来のLZW符号の復号
化処理の動作フローチャートである。LZW符号化は、
書き換え可能な辞書を使用し、入力文字コード・データ
を相異なる文字列に分け、この文字列を出現した順に番
号を付けて辞書に登録するとともに、現在入力している
文字列を辞書に登録してある文字列を照合し、最長一致
する文字列の番号を出力することによって符号化するも
のである。
【0005】図8、図9のLZW符号化/復号化の動作
フローチャートを、図10のLZW符号の説明図を使用
して説明する。図10のLZW符号の説明図は、abc
の3文字の組合せからなるデータをLZW符号で圧縮/
復元する場合の実際の手順を示している。
【0006】図10(a)は、LZW符号化の説明図、
同図(b)は、LZW符号化で使用する辞書の説明図で
ある。今、入力データ(同図(a)のINPUT SYMBOLS)と
してabcの3つの文字の組合せからなる文字列(ab
abcbababaaaaaaa・・・)が入力される
ものとする。符号化をする場合には、まず、全文字、す
なわち、ここではa、b、cの3文字を初期値として辞
書に登録する(図6のS81、辞書の初期化)。すなわ
ち、入力データを構成する全文字であるa、b、cを辞
書の先頭に登録し、それぞれ、参照番号1、2、3を付
す(図10(b)のSTRING TABLE)。この処理を終了し
たら、入力データの第1番目の文字K(ここではK=
a)について辞書を検索し、参照番号ω(ここでは1)
を求め、これを語頭文字列(prefix string)とする(図
6のS81)。
【0007】次に、入力データの次の文字を読み込み、
これを文字Kとし(ここではK=b)(S82)、文字
Kが存在するか否か、すなわち、入力データが存在する
か否かを判定する(S83)。文字Kが存在する場合に
は(Yes)、前の文字の参照番号ωを接続したωKが
辞書に存在するか否かを判断する(S84)。ここで
は、1bが辞書に存在するか否かを判定する。存在する
場合(Yes)には、ωK、すなわち、1bを参照番号
ωとし、次の文字を読み込む処理(S82)に戻る。そ
して、文字列ωKが辞書から探せなくなるまで最長一致
の探索を続ける。一方、S84の判定でωKが辞書に存
在しない場合(No)には、まず、前の文字の参照番号
ωを符号語code(ω)として出力したうえ、文字列
ωKに新たな参照番号を付加して辞書に登録し、文字K
の参照番号をωとして置き換える(S86)。そして、
次の文字を入力する処理(S82)に戻る。
【0008】図10の例では、この時点では1b(=ω
K)が辞書に存在しないのでS84でNoとなり、S8
6の処理を実行する。すなわち、ω=1として符号語c
ode(1)を出力し(同図(a)のoutput c
odesの最初の1に対応)、文字列1bを新たな参照
番号4を付して辞書に登録する(同図(b))。そし
て、K=bの参照番号2をωに代入して、次の文字の入
力処理(S82)に戻る。S82では、次の文字(3文
字目)aが文字Kとして読み込まれ、文字Kが存在する
のでS83はYesとなり、S84でωK(=2a)が
辞書に存在するか否かを辞書を検索して判定する。辞書
にはないので(No)、S86でcode(2)を出力
し、文字列2aに新たな参照番号5を付して辞書に登録
し、aの参照番号1をωに代入して次の文字の入力処理
(S82)に戻る。次の入力文字(4文字目)はbであ
り、これを文字Kとする。S83はYesとなり、S8
4でωK(=1b)が辞書に存在するか否かを判定す
る。1bは辞書に存在するので(Yes)、S85でω
K(=1b)の参照番号4をωに代入し、次の文字の入
力(S82)に戻る。次の入力文字(5文字目)はcで
あり、これを文字Kとする(S82)。S83はYes
となり、S84でωK(=4c)が辞書に存在するか否
かを判定する。4cは辞書に存在しないので(No)、
S86でcode(4)を出力し、文字列4cに新たな
参照番号6を付して辞書に登録し、cの参照番号3をω
に代入して次の文字の入力処理(S82)に戻る。以
下、入力文字が存在しなくなる(S83のNo)まで同
様の処理を続ける。
【0009】そして、入力文字が存在しないと判定され
たら(S83のNo)、その前までに求まっている参照
番号ωを符号語code(ω)として出力し(S8
7)、処理を終了する(END)。
【0010】以上の処理により、符号化を実行しなが
ら、図10(b)のような辞書が作成される。上記の流
れによって符号化したデータを復号する場合には、上記
の逆の操作を実行する。図9の動作フローチャートおよ
び図10(c)の復号化の説明図に沿って復号化の処理
を説明する。
【0011】復号化する場合にも符号化と同様の辞書を
使用し、予め出現する全文字(abc)について1文字
の辞書を初期値として登録しておく(aの参照番号ω
(a)=1、ω(b)=2、ω(c)=3)。まず、最
初の符号CODEを読み込み、OLDcodeに代入し
ておく。そして、辞書を参照し、符号CODEと一致す
る参照番号code(K)を探索し、参照番号code
(K)をもつ文字Kを出力し、さらに文字Kを後の例外
処理のためにFINcharに代入しておく(S9
1)。図10の例の場合、まず、符号1を読み込み(同
図(c)のINPUTCODESの最初の符号)、OL
Dcodeに代入したうえ、辞書を参照するcode
(K)=1となる文字Kはaであり、ここでaを出力し
(OUTPUTDATA)、さらにFINcharにa
を代入しておく。
【0012】次に、次の符号入力CODEを読み込み、
INcodeに代入し(S92)、新たなCODEが存
在するか否か、すなわち、符号入力の終了の有無をチェ
ックする(S93)。CODEが存在せず、符号入力が
終了している場合(No)には処理を終了する(EN
D)。CODEが存在する場合には(Yes)、辞書を
探索し、CODE=code(K)となる辞書項目を探
し、CODEが辞書中に定義されているか否かを判定す
る(S94)。通常、入力した符号語は前回までの処理
で辞書に登録されている。CODEが定義されている
(Yes)場合には、CODE=code(ωK)とな
る文字列を辞書から読み出し、文字列が2字以上(ω
K)からなっているか、1字のみ(K)かを判定する
(S95)。2字以上の場合(Yes)、文字Kを一時
的にStackにスタックし、参照番号code(ω)
をCODEとして判定S95に戻る。S95、S96を
文字列ωKが1字になるまで繰り返すことによって、S
tackに最初に辞書から読み出したときのωKを構成
する文字列がスタックされる。文字列ωKが1字になっ
たと判定される(S95のNo)と、最後に残ったCO
DE=code(K)となる文字Kを出力し、その文字
KをFINcharにセットしたうえ、Stackに蓄
えた文字をLIFO(Last In Fast Out) 形式で一つ一
つポップして出力する。そして、辞書の新たな参照番号
を付して(OLDcode,K)を辞書に登録し、IN
codeにセットされた参照番号をOLDcodeにセ
ットする(S97)。その後、次の符号入力を読み込む
処理S92に戻る。
【0013】一方、S94でCODEが辞書中に定義さ
れていないと判定された場合(No)には、例外処理を
実行する(S98)。すなわち、前回処理した符号OL
Dcodeに前回復号した文字列の最初の一文字を加え
た文字列(OLDcode,FINchar)を求める
(S98)。そして、この文字列を実際の文字として出
力したうえ、文字列(OLDcode,FINcha
r)を辞書に新たな参照番号を付して登録する(S95
〜S97)。この例外処理はS98およびS95〜S9
7の処理を通じて行なわれ、最終的にS97で文字列の
出力と辞書登録が行なわれる。
【0014】図10の例では、S91の時点で文字aが
出力されたうえ、OLDcodeに1が、FINcha
rに文字aがセットされている。次に、S92で、次の
符号入力(INPUT CODES)である2をCOD
Eとして読み込み、INcodeにセットする。S93
はYesとなり、S94で辞書にCODEが定義されて
いるか否かを判定する。CODE=2は定義されている
ので(Yes)S95へ進み、CODE=code(ω
K)か、すなわち、参照番号CODEの文字列が2字以
上か1字かを判定する。この場合、参照番号2の文字は
bの1字なのでNoとなり、S97に進み、文字bを出
力し(OUTPUT DATA)、FINcharにb
をセットする。今、Stackに文字は蓄えられていな
いので、(OLDcode,K)=1bを参照番号4を
付して辞書に登録する(同図(c)のSTRING A
DDED TO TABLE)。そしてINcode=
2をOLDcodeにセットして、S92に戻る。
【0015】S92では3番目の符号4(INPUT
CODES)をCODEとして入力し、INcodeに
セットする。S93はYesとなり、S94で辞書にC
ODE=4が定義されているか否かを判定する。先に4
は登録されているのでYesとなり、S95でCODE
の文字列が2文字以上か否かを判定する。CODE=4
となる文字ωKは1bなので2文字以上なのでS95は
Yesとなり、S96へ進む。S96では、文字K=b
をStackにスタックし、また、code(ω)=1
をCODEに代入し、S95へ戻る。S95では、CO
DE=1が2文字以上が1文字かを判定する。CODE
=1とする文字Kはaで1文字なのでNoとなり、S9
7に進む。S97では、文字K=aを出力し(OUTP
UT DATA)、aをFINcharにセットし、S
tackをポップしてStackに蓄積しておいたbを
出力する(OUTPUT DATA)。そして、(OL
Dcode,K)=2bを新たな参照番号5を付して辞
書に登録する(STRING ADDED TO TA
BLE)。さらにINcode=4をOLDcodeに
セットし、次の符号の入力S92に戻る。以上の処理に
よって、符号124が文字ababに復号された。
【0016】通常、以上のような処理を繰り返すことに
よって復号処理が実行されるが、例外処理S98が必要
な場合がある。図10例では同図(c)の6番目の入力
である符号8の復号時にこの例外処理が必要になる。す
なわち、符号8が辞書に登録されていないからである。
S94でCODE=8が定義されいない(No)と判断
されS98の例外処理が実行される。この場合には、前
回処理した符号(OLDcode=5)に前回復号した
文字列baの最初の一文字(FINchar=b)を加
えた文字列5bを求め(S98)、これをS95〜97
の処理によって5b=2ab=babに置き換えて出力
する。そして、最後にbabに新たな参照番号8を付し
て辞書に登録する。
【0017】尚、図8、図9の符号化/復号化処理は、
同じ辞書を作り出しながら行なう。図8の動作フローチ
ャートに従って符号化すると、一つの文字列を辞書検索
するたびに、最悪、辞書全体をサーチしなければなら
ず、時間がかかった。そこで、従来、辞書検索に外部ハ
ッシュ法(open hashingまたはchaining) を用いて処理
速度を上げていた(例えば、オーム社刊、情報処理学会
編、情報処理ハンドブックを参照)。次に、外部ハッシ
ュ法について説明する。
【0018】文字列からなる集合Sを考えたとき、Sの
なかの文字列xの格納アドレスを文字列xから計算でき
る仕組みになっていると高速に検索ができる。これを実
現するのがハッシュ法である。記憶場所(ハッシュ表)
に0からm−1までのアドレスが付されているとする
と、ハッシュ法では、 関数 h:S → 〔0,1,・・・,m−1〕 を一つ定めて、Sの文字列xのアドレスをh(x)で求
める。関数hをハッシュ関数、値h(x)をxのハッシ
ュ・アドレスといっている。ハッシュ法は、通常、Sの
大きさがmに比べてはるかに大きい場合に用いられる。
そこで、hをどのように選んだとしても、Sの相異なる
文字列x1 、x2 に対してh(x1 )=h(x2 )とな
る場合が起こり得る。これを衝突と呼び、衝突に対する
対策の一つとして外部ハッシュ法(openhashingまたはc
haining) が用いられる。
【0019】図11は外部ハッシュ法の説明図である。
同図の索引 111がハッシュ・アドレスに対応し、各ハッ
シュ・アドレスiごとに連結リスト 112が用意されてい
る。h(x)=iとなるxをその連結リスト 112の先頭
から順にしまう。同じハッシュ・アドレスをもつそれぞ
れの連結リストをバケット(bucket) と呼ぶ。例えば、
h(x)=1となるxが複数あったとする(x1
2 )。その場合、バケット1の連結リストの先頭
(u)から順にx 1 、x2 を格納する。
【0020】図12は、辞書検索に外部ハッシュ法を用
いたLZW符号の符号化の動作フローチャートである
(詳細は、翔泳社刊、AP-Labo 編著、『ハードディスク
・クックブック』参照)。新たな文字Kを入力したとき
に、それまでの文字列の参照番号(ハッシュ・アドレ
ス)iに文字Kを付加した文字列Kを付加した文字列の
参照番号を外部ハッシュ法で求めるものである。同図に
出現する配列 first〔i〕は図11に示す外部ハッシュ
法の索引(dictionariy)に対応し、配列next〔i〕は連
結リスト(name next)に対応し、実際の文字は ext
〔i〕に格納されている。外部ハッシュ法により、参照
番号iの文字列に一文字を付加した文字列をハッシュ・
アドレスiとして引く。参照番号iの文字列に付加され
た文字は、連結リストnext〔i〕に対応した ext〔i〕
に格納されており、これと文字Kの一致不一致を検査
し、不一致ならば逐次連結リストnext〔i〕をたぐって
一致する文字があるか否か探索する。これまでに参照番
号iの文字列の後に出現した全ての文字を検索すること
ができる。もし、バケット中に文字Kを付加した文字列
がない場合には、最終的にリストの連結アドレス0が得
られ、該当する文字列が辞書に登録されていないことを
知ることができる。そして、次にその文字列を辞書に登
録する処理を実行することになる。
【0021】
【発明が解決しようとする課題】しかしながら、従来の
方式では辞書の容量が大きくなるという問題がある。そ
して、その結果、LZW符号の符号化効率、すなわち、
圧縮効率が落ちるという問題もある。
【0022】すなわち、辞書の登録においては、一般
に、辞書に登録されているものの、登録したときのみに
出現して後に全く出現しない、全くアクセスされない登
録が過半数を占める。それにもかかわらず、従来方式で
は、その各々に辞書のアドレスを割り当てるため、辞書
の容量がどんどん増大してしまうのである。また、辞書
のアドレスは符号コード数(インデックス)に直接反映
される。そのため、辞書への登録数が増えれば増えるほ
どLZW符号の符号化率は低下し、圧縮率が下がるので
ある。
【0023】本発明は、アクセス回数が少ない辞書登録
を抹消して新規の登録に置き換えることができるように
し、辞書の容量を節約するとともに、インデックスの増
加を軽減し、圧縮率を向上することを目的とする。
【0024】
【課題を解決するための手段】第1図は、本発明の機能
ブロック図である。本発明は、各種データを木のデータ
構造をもつ構造の辞書メモリ2を作りながら符号化し、
圧縮するデータ圧縮システム1を前提とする。このデー
タ圧縮システム1では、辞書メモリ2の枝(K ij)に、
符号化済みのデータを相異なる部分列データに分割した
ものが登録されており、未符号化の入力データに対して
は、該入力データと、辞書メモリ2の枝に登録されてい
る部分列データを照合し、最長一致する部分列データの
番号によって該入力データを符号化するものである。
【0025】まず、アクセス数カウント手段3を有す
る。アクセス数カウント手段3は、未符号化の入力デー
タの符号化において辞書メモリ2を検索する場合に、辞
書メモリ2に登録してある部分列データへのアクセス回
数を計数する。すなわち、辞書メモリ2の各節点
(ωij)ごとに各節点(ωij)に接続されている枝(K
ij)を検索した回数を計数し、保持する。
【0026】次に、フィードバック手段4を有する。フ
ィードバック手段4は、入力データと同一の部分列デー
タが辞書メモリ2中の検索で発見できず該入力データを
辞書メモリ2に登録する際に、辞書登録する位置を求め
るために起動する。すなわち、その時点での辞書メモリ
2の最終登録位置からある一定のデータ量だけ遡った節
点(ωij)の位置を求める。一定のデータ量としては、
ある一定の入力データ量を定めておき、そのデータ量を
用いる。
【0027】フィードバック手段4によって求めた辞書
メモリ2の節点位置についてアクセス数判定手段5を施
す。アクセス数判定手段5は、前記アクセス数カウント
手段3が計数し、保持している各節点(ωij)のなかで
フィードバック手段4が求めた節点についてのアクセス
回数情報を読み出し、該アクセス数が前もって定めた一
定の回数より大きいか否かを判定する。大小比較に使用
する前もって定めた一定の回数は1とすることが可能で
ある。アクセス数が一定回数よりも多いということは、
該節点(ωij)の枝(Kij)に登録されている部分列デ
ータのアクセス回数が多く、入力データの符号化に頻繁
に使用されていると判断することができる。一方、アク
セス数が一定回数よりも小さいということは、逆に該部
分列データへのアクセス回数が少なく符号化にあまり貢
献していないと判断できる。
【0028】前記アクセス数判定手段5の大小比較の結
果に従った処理を辞書登録手段6が実行する。辞書登録
手段6は、該アクセス回数が一定回数よりも少ない場合
には、該節点が接続されている枝に登録されている部分
列データを抹消し、該抹消アドレスに新規の部分列デー
タを格納する。一方、該アクセス回数が前もって定めた
一定回数よりも多い場合には、該節点の枝に登録されて
いる部分列データは抹消せずにそのまま保持し、辞書メ
モリ2の未登録領域の新規アドレスに登録データを格納
する。
【0029】最後に、非登録期間管理手段7を有する。
非登録期間管理手段7は、前記辞書登録手段6によって
部分列データを抹消したうえ新規部分列データを登録し
た場合には、一定期間すでに登録してある部分列データ
を抹消しないようにする。
【0030】
【作用】データ圧縮システム1で入力データを符号化し
て圧縮する場合、まず、辞書メモリ2の領域を用意して
おく。ユーザは入力データをこのデータ圧縮システム1
に入力する。データ圧縮システム1は、入力されたデー
タの先頭から順に処理していく。まず、入力データ(文
字列)と辞書メモリ2の木構造の部分列データが最長一
致するか否かを検索して判定する。最長一致する部分列
データが辞書から見つかった場合には、その部分列デー
タに付した番号を出力することにより入力データ(文字
列)を符号化する。一方、最長一致する部分列データが
辞書から見つからない場合には、該入力データ(文字
列)を辞書に登録することになる。
【0031】辞書検索は、木の始節点ω11から始める。
そして、入力データ(文字列)と一致する枝Kijを進ん
でいく。入力データ(文字列)が、例えば、K2241
いう文字列であったとすると、始節点ω11から始めた検
索を節点ω22、ω41と進めることによって一致する部分
列データが見つかる。この場合、ω41の位置に対応する
番号を出力して入力データを符号化する。一方、入力デ
ータ(文字列)が、例えば、K224131という文字列
であったとすると、節点ω41までは検索が進むが、その
後の文字K31と一致する部分列データを辞書から見つけ
ることはできない。そこで、この場合には、入力データ
224131と等しい部分列データを辞書に登録するこ
とになる。
【0032】辞書検索とともにアクセス数カウント手段
3が起動される。アクセス数カウント手段3は、木構造
の辞書の各節点ごとにカウンタを確保し、検索において
節点を通るごとにその節点のカウンタを1インクリメン
トする。例えば、入力データがK2241の場合には、検
索がω11ω22ω41の順に進むので、各節点ω22、ω41
カウンタを1増やす。
【0033】辞書検索で最長一致する部分列データが見
つかった場合にはその部分列データに対応する番号を出
力して符号化することができる。一方、最長一致する部
分列データが見つからなかった場合には辞書登録を実行
する。この辞書登録に際してフィードバック手段4を起
動する。フィードバック手段4は、辞書検索で最長一致
する部分列データが見つからなかった場合に、その時点
での検索位置からある一定のデータ量だけ辞書メモリ2
を遡ったメモリ位置を求める。すなわち、今、入力デー
タがK224131であったとすると、節点ω41までは一
致する部分列データが見つかるがK41に対応する節点は
見つからない。そこで、このような場合にフィードバッ
ク手段4は現在辞書に登録してある最終の節点ω41に対
応する辞書メモリ位置からある一定量だけメモリ・アド
レスを遡った位置のアドレスを求めるのである。その一
定量としては、前もって定めた入力データ量を使用する
ことができる。
【0034】フィードバック手段4によって辞書メモリ
2のアドレスが求まると、アクセス数判断手段5が起動
される。アクセス数カウント手段5は、フィードバック
手段4で求まったメモリ・アドレスを入力とし、該メモ
リ・アドレスに関して、アクセス数カウント手段3が計
数し保持しているアクセス数を読み出す。そして、その
アクセス数を前もって定めた一定のアクセス回数と大小
比較する。一定のアクセス回数としては1とすることが
できる。辞書登録の時点でアクセス回数が1となるの
で、アクセス回数1は登録以後アクセスされていないこ
とを意味し、アクセス回数が2以上というのは登録以後
に対応する節点がアクセスされたことを意味する。
【0035】アクセス数判断手段5に続いて辞書登録手
段6が起動される。辞書登録手段6は、アクセス数判断
手段5の大小比較の結果を入力とする。すなわち、フィ
ードバック手段4で求めたメモリ位置の節点におけるア
クセス回数が、前もって定めた一定アクセス回数よりも
大きいか小さいかを示す情報である。辞書登録手段6
は、アクセス回数が一定アクセス回数よりも小さい場
合、すなわち、その節点のアクセス回数が少ない場合に
は、その節点の位置に新たな部分列データを登録する。
一方、アクセス回数が一定アクセス回数より多い場合に
は、その節点には新規部分列データを登録せずに、辞書
メモリ2の未登録領域に新規部分列データを登録する。
アクセス回数が少ない部分列データを抹消し、新たな部
分列データを登録することにより、辞書容量の膨張を防
ぐことができ、その結果、辞書検索も速く行なうことが
可能になる。
【0036】辞書登録手段6によって新規部分列データ
を前にあった部分列データを抹消して登録した場合に
は、非登録期間管理手段7が起動される。本発明のデー
タ圧縮システム1では新規に登録された部分列データと
以前から登録されていた部分列データが辞書メモリ2中
で混在するので、新規に登録された部分列データを登録
直後に抹消して、さらに新たな登録をしてしまうことが
起こりうる。これを避けるために、非登録期間管理手段
7は、新規に部分列データが登録された場合にはある一
定期間登録データを抹消しないように管理する。一定期
間が過ぎると登録データの抹消可能を示すようにし、一
定期間以内の場合は抹消できないことを示すようにす
る。
【0037】
【実施例】図2は、本発明の一実施例のシステム構成図
である。一般的なコンピュータ・システム20で構成す
ることができる。
【0038】コンピュータ・システム20は、CPU2
1および主記憶22、I/Oインタフェース23などか
らなり、それぞれが相互に接続されている。I/Oイン
タフェース23にはキーボードやマウス等の入力装置2
4と、ディスプレイ装置やプリンタ等の出力装置25、
外部記憶装置26が接続される。主記憶22は、コンピ
ュータ・システム20の基本動作を制御するシステム・
ソフトウエア27やデータ圧縮システム28が格納さ
れ、CPU22やI/Oインタフェース23はこれらの
ソフトウエアに従って処理を実行する。データ圧縮シス
テム28は、データ圧縮ソフトウエア29および木構造
の辞書30からなる。
【0039】データ圧縮システム28は、入力装置24
から入力されるデータの圧縮や、外部記憶装置26に格
納されているデータの圧縮、他のコンピュータ・システ
ム等の装置へ伝送されるデータの圧縮を実行することが
可能である。例えば、入力装置24から入力されるデー
タを圧縮する場合を考える。
【0040】入力装置24から入力される入力データは
I/Oインタフェース23を介してデータ圧縮システム
28に入力され、データ圧縮ソフトウエア29が圧縮処
理を実行する。その際、辞書30が検索され、辞書に入
力データと一致するデータが存在する場合にはそのデー
タに付された番号によって符号化し、データ圧縮が行な
われる。また、入力データと一致するデータが辞書30
に存在しない場合には新たに辞書項目として該入力デー
タを登録する。
【0041】図3は一実施例の原理説明図である。ま
ず、入力装置24等から圧縮したいデータが入力される
(S31)。次に、この入力データと一致するデータを
辞書を検索して探し、見つかった場合には、そのデータ
に付された番号によって符号化する(S32)。辞書検
索で一致するデータが見つからない場合には、辞書メモ
リの最後の登録位置からあるデータ量だけメモリを遡っ
たメモリ位置を求める(S33)。前回抹消登録してか
らある一定期間以上たっている場合(S33の注)に
は、このメモリ位置のデータを抹消して新規登録をして
よいかどうかを判定する以下(S34以降)の処理を実
行する。一定期間以上たっていない場合には、そのメモ
リ位置への抹消登録は行なわない。
【0042】一定期間たっていた場合には、そのメモリ
位置に登録されているデータが2回以上アクセスされた
か否かを判定する(S34)。2回以上アクセスされて
いた場合には(Yes)、辞書の未登録領域の最新アド
レスに新規のデータを登録する(S35)。一方、2回
以上アドレスされていない、すなわち、登録時以降1回
もアクセスされていない場合(No)には、フィードバ
ック・アドレスに登録されていた旧データを抹消したう
え、新規データを登録する(S36)。
【0043】図4は一実施例のフィードバックの説明図
である。今、辞書のメモリ領域がアドレス0から順に確
保してある。辞書メモリの各アドレスにデータを登録す
る(辞書内容)。また、各登録データについてアクセス
回数を保持するカウンタがある(アクセス回数)。今、
辞書検索で不一致になったとする。この場合には、現在
辞書メモリの最終登録アドレスになっているアドレスN
からMだけ遡ったアドレス(N−M)までフィードバッ
クする()。そしてこのアドレスN−Mのデータのア
クセス回数を参照する。すると2であり、登録以後にこ
のデータがアクセスされたことが分かる。このような場
合にはアドレスN−Mへの新規データ登録は行なわず、
辞書の未登録領域の新規アドレスN+1に新規データを
登録する()。
【0044】また、この時点での辞書検索で不一致にな
った場合には、最終アドレスN+1からMだけフィード
バックしたN+1−Mを求め()、そのアドレスのア
クセス回数を判定する。この場合1なので、アドレスN
+1−Mにそれまで格納されていたデータを抹消し、新
規データをそのアドレスに登録する()。そして、こ
れ以降、ある一定期間の間データの抹消登録を行なわな
いようにする。
【0045】図5は一実施例の動作フローチャートであ
る。まず、辞書を初期化する(S50の)。すなわ
ち、入力データとして出現する全文字として 256文字を
登録する。次に、S50ので登録した 256文字につい
てのアクセス回数S(N)(N=0〜 255)を初期化
し、1にする(S50の)。そして、辞書の未登録領
域の先頭アドレスNを 256にし(S50の)、フィー
ドバックするデータ量(フィードバック・アドレス)M
を設定する(S50の)。ここでは、フィードバック
・アドレスを10000 と定義することにする。以上で、デ
ータ圧縮を開始する前処理を終了する。
【0046】次に、入力データの最初の文字Kを入力
し、ω1 とする(S51)。次に、次の文字Kを入力す
る(S52)。そして、辞書を探索して文字列ω1 Kが
辞書に存在するか否かを判定する(S53)。文字列ω
1 Kが辞書に存在する場合(Yes)には、文字列ω1
Kが書かれている辞書D(X)に対応したアクセス回数
S(X)を1インクリメントし(S54の)、文字列
ω1 Kをω1 とする(S54の)。そして、データ入
力が終了したか否かを判定し(S59)、終了ではなく
まだデータが存在する場合(No)には次の文字の入力
処理(S52)に戻る。入力データが終了した場合(Y
es)には先に求めた文字列ω1 の符号を出力して(S
60)、処理を終了する。
【0047】一方、辞書の検索で(S53)文字列ω1
Kが辞書に存在しない場合(No)には、辞書登録処理
を実行する(S55〜S58)。まず、辞書アドレスを
Mだけフィードバックし、そのアドレスが辞書アドレス
として成り立つか否かを判定する(S55)。すなわ
ち、アドレスN−Mが1以上か否かを判定する。0以下
の場合(No)には、まだ辞書が10000 以上蓄積されて
いないことを示す。また、1以上の場合(Yes)に
は、登録データの抹消が可能か否か(A=0か否か)お
よび登録データD(N−M)のアクセス回数S(N−
M)が1かそれ以上かを判定する(S57)。ここでA
はデータの抹消登録があってからある期間はA=1に、
それ以降はA=0になるよう管理されている。
【0048】S55において辞書データが10000 以上蓄
積されていない場合(S55のNo)、あるいは、抹消
不可能期間である(A=1)場合(S57のNo)、あ
るいはS57においてフィードバック・アドレスN−M
のアクセス回数S(N−M)が2以上の場合(S57の
No)には、S56の処理に移る。すなわち、まず、辞
書検索を行った文字列ω1 Kのうちのω1 の符号を出力
し(S56の)、文字列ω1 Kを辞書の未登録領域の
先頭アドレスNにD(N)として登録し(S56の
)、そのアクセス回数S(N)を1とする(S56の
)。その後、文字列ω1 Kのうちの文字Kをω1 とす
る(S56の)。さらに、辞書の未登録領域の先頭ア
ドレスNを1インクリメントし(S56の)、今後、
登録データの抹消・新規登録を可能にするためにA=0
とする(S56の)。以上でS56の処理が終了しす
る。そして、データ入力終了か否かを判定したうえ(S
59)、データ終了でない場合(No)には次の入力の
処理に戻る(S52)。
【0049】一方、S57において、抹消可能期間(A
=0)で、かつ、アクセス回数S(N−M)=1の場合
(S57のYes)、フィードバック・アドレスN−M
のデータD(N−M)を抹消したうえ文字列ω1 Kを登
録する処理S58を実行する。すなわち、まず、文字列
ω1 Kのうちのω1 の符号を出力し(S58の)、フ
ィードバック・アドレスN−Mにω1 Kを格納し、デー
タD(N−M)とする(S58の)。そして、該デー
タD(N−M)のアクセス回数S(N−M)を1とする
(S58の)。その後、文字列ω1 Kのうちの文字K
をω1 とする(S58の)。また、ある期間だけ抹消
不可能を示すためにA=1とする(S58の)。そし
て、データ入力終了か否かを判定したうえ(S59)、
データ終了でない場合(No)には次の入力の処理に戻
る(S52)。
【0050】以上の動作を図6の辞書登録手順の説明図
に沿って説明する。また、図7は、図6の辞書登録に対
応した辞書データの木の説明図である。図6(a)、図
7(a)は辞書登録をする場合にフィードバックしたア
ドレスのアクセス回数が1回の場合の説明図である。
【0051】辞書は、節点メモリ61および検索メモリ
62、比較文字メモリ63、アクセス回数メモリ64か
らなる。図6(a)のように始節点ω1 に節点ω21、ω
22が、分岐節点ω22に節点ω31、ω32、ω33が、分岐節
点ω32に節点ω41が接続しているような構造の辞書の場
合、節点メモリ61には、分岐点となる節点ωijをアド
レスとして、その節点ωijに接続されている節点ωmn
アドレスωijに格納するようになっている。すなわち、
アドレスω1 にはそれに連なる節点ω21が格納される。
また、分岐節点ω22をアドレスとしてω31が、分岐節点
ω32をアドレスとしてω41が格納される。
【0052】また、検索メモリ62には、節点の検索順
序を示すリストが格納される。節点メモリ61のω1
ら検索を始めると、節点メモリ61のアドレスω1 を参
照することにより次にω21を検索すればよいことが分か
る。検索メモリ62は節点メモリ61によって示された
節点をアドレスとして、ω21と同じ上位の分岐節点ω 1
をもつ節点のなかで次に検索する節点と、その前に検索
すべき節点が格納されている。すなわち、分岐点ω1
下につながる節点はω21とω22の2個なので、節点ω21
をアドレスとして同じ上位の分岐点をもち、次に検索す
べき節点ω22が格納されている。この場合、ω21の前に
検索すべき節点は存在しないので0になっている。ま
た、アドレスω22を見ると、同じ上位分岐点ω1 をもち
次に検索すべき節点はないので0、前に検索すべき節点
はω21なのでω21が格納される。一方、節点ω22を分岐
点とする節点はω31、ω32、ω33の3個ある。節点メモ
リ61によって節点ω22につながる節点がω31と分か
る。そこで、検索メモリ62には、アドレスω31に次に
検索するアドレスω32が格納され、アドレスω32には次
に検索するアドレスω33と前に検索するべきアドレスω
31が格納される。また、アドレスω33には、次に検索す
るアドレスはなく、前に検索するべきアドレスω 32が格
納されている。最後に、節点ω32を分岐点とする節点は
ω41の1個なので、節点メモリ61にはアドレスω32
アドレスω41が格納されている。そして、検索メモリ6
2のアドレスω41には、前後に検索すべき節点がないの
で0,0が格納されている。
【0053】検索メモリ62の各アドレス、すなわち、
各節点に対応して、入力データと比較すべき比較文字を
格納する比較文字メモリ63と、各節点のアクセス回数
を格納するアクセス回数メモリ64が存在する。比較文
字メモリ63に辞書の登録データの実体である文字が登
録される。
【0054】今、入力データが例えばK223242とい
う文字列であったとする。図5のS51によって入力文
字列の最初の文字K22が入力されω1 とされる。次に、
2番目の文字K32が入力されKとされる(S52)。そ
して、ω1 K=K2232が辞書にあるか否かを辞書を検
索して判定する(S53)。
【0055】辞書検索は節点メモリ61の始節点ω1
ら開始する。節点メモリ61のアドレスω1 から次に検
索する節点ω21が分かり、検索メモリ62のアドレスω
21に対応する比較文字メモリ63の内容K21と比較す
る。入力データの最初の文字はK22であり不一致であ
る。そこで検索メモリ62のアドレスω21を参照する
と、次に検索すべき節点がω22であることが分かる。検
索メモリ62のアドレスω22に対応する比較文字メモリ
63の内容はK22であり、入力データと一致する。そこ
で、次に入力データの2文字目K32の検索に移る。次の
文字の検索に移るときには、節点メモリ61を参照す
る。そして検索が終了した節点ω22を参照する。する
と、節点ω22は分岐点になっており、節点ω31がつなが
っていることが分かる。そこで検索メモリ62のアドレ
スω31に対応する比較文字メモリ63の文字K31と入力
文字K32を比較する。不一致なので、検索メモリのアド
レスω31を参照して次に検索すべき節点ω32を得る。ア
ドレスω32に対応する比較文字はK32であり、入力文字
と一致する。
【0056】これによってS53のK2232が辞書に存
在するか否かの判定が終了する。K 2232は辞書に存在
したので(Yes)、アクセス回数メモリ64のなかの
アドレスω32に対応するアクセス回数S32を1インクリ
メントし(S54の)、ω 1 K=ω32をω1 とする
(S54の)。そして、S59でデータが終了か否か
が判定されNoとなり、次の文字K=K42が入力され
る。そしてω1 K=ω32 42が辞書に存在するか否かを
判定する(S53)。今、ω1 =ω32であり、まず、節
点メモリ61のアドレスω32を参照する。すると、次に
検索すべき節点がω 41であることが分かる。節点ω41
対応する比較文字はK41であり、入力文字K 42とは不一
致である。検索メモリ62のアドレスω41を参照すると
(0,0)であり、次に検索すべき節点がないことが分
かる。この結果、S53はNoとなり、辞書登録処理
(S55〜S58)の処理を実行する。
【0057】まず、S55でM=10000 だけフィードバ
ックした辞書メモリ2のアドレスN−Mを求め、そのよ
うなアドレスが存在するか否か判定する。ここではN−
M=ω33となるものとする。するとS55はYesとな
り、次に、S57の判定を実行する。今、A=0である
とする。また、図6のアクセス回数メモリ64を参照す
ると節点ω33のアクセス回数S32=1である。この結果
S57はYesとなり節点ω33のデータを抹消して新規
データω3242を登録することになる。
【0058】まず、ω32の参照番号を出力して符号化す
る(S58の)。次に、ω33の内容を抹消し、ω33
文字K42を登録する処理を実行する(S58の)。す
なわち、節点ω33を抹消するためには、まず、その接続
関係を切る必要がある。節点ω33は分岐節点ω22に接続
され、節点ω32の次に検索するように指定してある(検
索メモリ62のアドレスω32の内容(ω33、ω31))の
で、検索メモリ62のアドレスω32の内容からω33を取
り除き(0、ω31)とする。次に、新たにω33にK42
登録する。そのためには、節点ω33を分岐節点ω32の下
に置き、節点ω 41と同列の節点にする。これによって検
索メモリ62のアドレスω41の内容を(ω33、0)と
し、アドレスω33の内容を(0、ω41)とする。そして
最後に、比較文字メモリ63のアドレスω33に対応する
位置にK42を登録する。そしてアクセス回数メモリ64
のS42=1とする(S58の)。また、K42→ω1
し(S58の)、以後一定期間の間データの抹消登録
を行わないようにA=1とする(S58の)。
【0059】以上のように処理することにより、辞書メ
モリのデータの抹消登録が実行される。図6(b)はフ
ィードバックしたときのメモリ位置のアクセス回数が2
以上の場合の辞書登録手順の説明図である。入力データ
文字列はK223242であり、同図(a)の場合と同じ
である。この場合も検索メモリ62をアドレスω32のと
ころまで検索して入力文字列K2232と最長一致する文
字列がみつかるが、アドレスω41まで検索して続く入力
文字K42と一致する辞書がないことが分かる(S53の
No)。そしてM=10000 だけフィードバックし、その
アドレスがω32であったとすると、S57でω32の抹消
登録が可能か否かを判定する。この場合、ω32のアクセ
ス回数S32=2であり、S57はNoとなり、S56の
登録処理を実行することになる。
【0060】まず、検索で一致した部分であるω1 =ω
32を符号化する(S56の)。次に、新たな節点ω42
を分岐節点ω32の下に作り、文字K42を登録する処理を
実行する(S56の)。すなわち、検索メモリ62の
アドレスω41に次に検索すべきアドレスω42を加え(ω
42、0)とする。また、アドレスω42に(0、ω41)を
登録する。そして、比較文字メモリ63のアドレスω42
に対応する位置にK42を格納する。その後、対応するア
クセス回数S42=1とし(S56の)、K42→ω
1 (S56の)とし、検索メモリ62の未登録領域の
先頭アドレスNをインクリメントし(S56の)、A
=0とする(S56の)。この場合、未登録領域の新
規アドレスに新規データを登録したので、一定期間の抹
消登録を不可能にする必要はない。
【0061】以上のように処理することによって、辞書
に新規データを登録する場合に、以前に登録したデータ
のなかでアクセス回数の少ないデータを抹消し、新規デ
ータを登録することが可能になる。
【0062】
【発明の効果】本発明によって、データ圧縮に使用する
辞書に新規データを登録する場合に、ある一定データ量
だけ以前に登録されたデータのアクセス回数が少なけれ
ばそのデータを抹消して新規データを登録することが可
能になり、辞書の容量増加を抑えることが可能になる。
さらに、辞書容量が抑えることが可能になったことか
ら、データの圧縮効率を向上することが可能になり、ま
た、辞書の検索速度の低下が抑えられデータ圧縮速度の
低下を減少させることが可能になる。
【図面の簡単な説明】
【図1】本発明の機能ブロック図である。
【図2】一実施例のデータ圧縮システムのシステム構成
図である。
【図3】一実施例の主な処理の流れを示す原理説明図で
ある。
【図4】一実施例の辞書メモリ・フィードバックの説明
図である。
【図5】一実施例のデータ圧縮処理の流れを示す動作フ
ローチャートである。
【図6】一実施例の辞書登録手順の具体的説明図であ
る。
【図7】一実施例の辞書登録手順で作成された辞書の木
構造イメージの説明図である。
【図8】従来のLZW符号の符号化処理フローチャート
である。
【図9】従来のLZW符号の復号化処理フローチャート
である。
【図10】LZW符号の説明図である。
【図11】外部ハッシュ法の説明図である。
【図12】従来の辞書検索・登録法の動作フローチャー
トである。
【符号の説明】
1 データ圧縮システム 2 辞書メモリ 3 アクセス数カウント手段 4 フィードバック手段 5 アクセス数判断手段 6 辞書登録手段 7 非登録期間管理手段
───────────────────────────────────────────────────── フロントページの続き (72)発明者 千葉 広隆 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 平4−219818(JP,A) 特開 平4−149767(JP,A) 特開 平4−123619(JP,A) 特開 昭63−209229(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 5/00 H03M 7/40 G06F 12/00 511 G06F 17/22 G06F 17/30

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 木のデータ構造をもつ辞書メモリ(2)
    を使用し、符号化済みのデータを相異なる部分列データ
    に分け、該部分列データを該辞書メモリ(2)中の枝
    (Kij)に登録しておき、未符号化の入力データに対し
    ては、入力データと辞書メモリ(2)中の枝に登録して
    ある該部分列データを照合し、最長一致する部分列デー
    タの番号によって符号化してデータを圧縮するデータ圧
    縮システム(1)において、辞書メモリ(2)の検索に
    おいて、登録してある部分列データへのアクセス回数を
    計数するアクセス数カウント手段(3)と、辞書メモリ
    (2)の検索において辞書メモリ(2)に登録してある
    部分列データと入力データが不一致となった場合に、そ
    れまでに辞書メモリ(2)にデータ登録してある最終位
    置から一定のデータ量だけ遡った辞書メモリ(2)の位
    置を探索するフィードバック手段(4)と、前記フィー
    ドバック手段(4)が探索した該辞書メモリ位置のデー
    タについて、前記アクセス数カウント手段(3)によっ
    て計数している該データのアクセス数を読み出し、該ア
    クセス回数と前もって定めた一定の回数とを大小比較す
    るアクセス数判断手段(5)と、前記アクセス数判断手
    段(5)によって、該アクセス回数が前もって定めた一
    定回数よりも少ない場合には、該データを抹消したうえ
    で該データのアドレスに新規登録データを登録し、一
    方、該アクセス回数が前もって定めたある回数よりも多
    い場合には、該データを抹消せずに辞書メモリ(2)の
    未登録領域の新規アドレスに新規登録データを登録する
    辞書登録手段(6)と、前記辞書登録手段(6)によっ
    て以前のデータを抹消したうえで新規登録データを登録
    した場合に、一定期間登録データの抹消を行なわないよ
    うにする非登録期間管理手段(7)とを有することを特
    徴とするデータ圧縮における辞書登録方式。
  2. 【請求項2】 請求項1のアクセス数カウント手段
    (3)は、辞書メモリ(2)の各節点(ωij)ごとに、
    辞書検索でアクセスした回数を計数し、保持する請求項
    1記載のデータ圧縮における辞書登録方式。
  3. 【請求項3】 請求項1のフィードバック手段(4)
    は、フィードバックするデータ量として一定の入力デー
    タ量を用い、該一定入力データ量だけ辞書メモリ(2)
    を遡る請求項1記載のデータ圧縮における辞書登録方
    式。
  4. 【請求項4】 請求項1のアクセス数判断手段(5)
    は、大小比較の判断に使用する一定量を1とし、節点の
    アクセス数が該一定量1より大きいか否かを判断する請
    求項1記載のデータ圧縮における辞書登録方式。
JP3030897A 1991-02-26 1991-02-26 データ圧縮における辞書登録方式 Expired - Fee Related JP3053656B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3030897A JP3053656B2 (ja) 1991-02-26 1991-02-26 データ圧縮における辞書登録方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3030897A JP3053656B2 (ja) 1991-02-26 1991-02-26 データ圧縮における辞書登録方式

Publications (2)

Publication Number Publication Date
JPH04270413A JPH04270413A (ja) 1992-09-25
JP3053656B2 true JP3053656B2 (ja) 2000-06-19

Family

ID=12316525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3030897A Expired - Fee Related JP3053656B2 (ja) 1991-02-26 1991-02-26 データ圧縮における辞書登録方式

Country Status (1)

Country Link
JP (1) JP3053656B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3278297B2 (ja) * 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
WO2011105463A1 (ja) * 2010-02-23 2011-09-01 日本電気株式会社 データ圧縮装置、データ圧縮方法およびプログラム記憶媒体

Also Published As

Publication number Publication date
JPH04270413A (ja) 1992-09-25

Similar Documents

Publication Publication Date Title
US5151697A (en) Data structure management tagging system
US5229768A (en) Adaptive data compression system
JP4261779B2 (ja) データ圧縮装置および方法
US20160321282A1 (en) Extracting method, information processing method, computer product, extracting apparatus, and information processing apparatus
US9916314B2 (en) File extraction method, computer product, file extracting apparatus, and file extracting system
JP3241788B2 (ja) データ圧縮方式
JP3053656B2 (ja) データ圧縮における辞書登録方式
JPH10261969A (ja) データ圧縮方法および装置
US8244677B2 (en) Focal point compression method and apparatus
Ghuge Map and Trie based Compression Algorithm for Data Transmission
JP3241787B2 (ja) データ圧縮方式
JP3350118B2 (ja) データ符号化方式及びデータ復元方式
JP3038233B2 (ja) データ圧縮及び復元装置
JP3132774B2 (ja) データ圧縮・復元装置
JPH05152971A (ja) データ圧縮・復元方法
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JPH05241775A (ja) データ圧縮方式
JP3012677B2 (ja) Zl符号化方法
JP3103172B2 (ja) 辞書検索方法
JP2774350B2 (ja) データ圧縮方法および圧縮データのデータ復元方法
JP3115066B2 (ja) 辞書検索方法
JP3058931B2 (ja) データ圧縮・復元における辞書登録方式
JP2952067B2 (ja) データ圧縮方式
JP3117760B2 (ja) データ復元方式
JP3236747B2 (ja) データ伸長方式

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: 20000328

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080407

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees