JPH08265167A - データ圧縮装置 - Google Patents
データ圧縮装置Info
- Publication number
- JPH08265167A JPH08265167A JP6234795A JP6234795A JPH08265167A JP H08265167 A JPH08265167 A JP H08265167A JP 6234795 A JP6234795 A JP 6234795A JP 6234795 A JP6234795 A JP 6234795A JP H08265167 A JPH08265167 A JP H08265167A
- Authority
- JP
- Japan
- Prior art keywords
- character
- input
- stored
- match
- matching
- 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.)
- Withdrawn
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Abstract
(57)【要約】
【目的】 データ圧縮装置の規模を小型化するととも
に、そのコストを低減することを目的とする。 【構成】 制御部102は、入力レジスタ101にスト
アされた入力文字が部分文字列の先頭文字であるか否か
判別し、この判別結果に応じて各一致位置ポインタ10
9〜112に保持させたアドレスを変更しながら、辞書
メモリ103から読み出した文字と入力文字を比較回路
106を用いて比較していくことで最大一致系列を検出
する。この最大一致系列の一致長は一致長カウンタ11
4によりカウントし、その一致長、及び減算器116か
ら出力されるそれの一致位置を一致フラグとともに符号
出力部115から出力させる。また、制御部102は、
入力ポインタ113の書込アドレスを変更しながら、入
力された文字を随時辞書メモリ103に書き込む。
に、そのコストを低減することを目的とする。 【構成】 制御部102は、入力レジスタ101にスト
アされた入力文字が部分文字列の先頭文字であるか否か
判別し、この判別結果に応じて各一致位置ポインタ10
9〜112に保持させたアドレスを変更しながら、辞書
メモリ103から読み出した文字と入力文字を比較回路
106を用いて比較していくことで最大一致系列を検出
する。この最大一致系列の一致長は一致長カウンタ11
4によりカウントし、その一致長、及び減算器116か
ら出力されるそれの一致位置を一致フラグとともに符号
出力部115から出力させる。また、制御部102は、
入力ポインタ113の書込アドレスを変更しながら、入
力された文字を随時辞書メモリ103に書き込む。
Description
【0001】
【産業上の利用分野】本発明は、データを入力しながら
それを圧縮する技術に関する。
それを圧縮する技術に関する。
【0002】
【従来の技術】近年、コンピュータや通信等の各分野に
おいては扱うデータ量が急速に増大している。このデー
タ量の増大に伴い、データの記憶に要するコスト、電話
料金といった通信に要するコストが増大していることか
ら、このようなコストを抑えるために、データ列の中に
含まれる冗長性を取り除くことでそれを圧縮するデータ
圧縮技術が広く利用されてきている。データ圧縮技術
は、ファイル・アーカイバや分散ファイル・システム、
データ通信、音声・画像通信、コンピュータ・ネットワ
ークなどの分野では既に非常に重要な役割を果たしてお
り、これからさらにその重要度が増していくと考えられ
ている技術である。
おいては扱うデータ量が急速に増大している。このデー
タ量の増大に伴い、データの記憶に要するコスト、電話
料金といった通信に要するコストが増大していることか
ら、このようなコストを抑えるために、データ列の中に
含まれる冗長性を取り除くことでそれを圧縮するデータ
圧縮技術が広く利用されてきている。データ圧縮技術
は、ファイル・アーカイバや分散ファイル・システム、
データ通信、音声・画像通信、コンピュータ・ネットワ
ークなどの分野では既に非常に重要な役割を果たしてお
り、これからさらにその重要度が増していくと考えられ
ている技術である。
【0003】データ圧縮方式は、圧縮後のデータ列(圧
縮データ列)を元のデータ列(入力データ列)に復元す
る復号化を行った際の歪みの有無により、歪みを有する
有雑音圧縮(非可逆符号化)と、歪みがない無雑音圧縮
(可逆符号化)とに大別される。通常、有雑音圧縮は、
画像、音声といったある程度の歪みを許容できるデータ
に対して利用され、他方の無雑音圧縮は、ファイル(例
えばプログラム)や文書といった歪みが許されないデー
タに対して利用される。
縮データ列)を元のデータ列(入力データ列)に復元す
る復号化を行った際の歪みの有無により、歪みを有する
有雑音圧縮(非可逆符号化)と、歪みがない無雑音圧縮
(可逆符号化)とに大別される。通常、有雑音圧縮は、
画像、音声といったある程度の歪みを許容できるデータ
に対して利用され、他方の無雑音圧縮は、ファイル(例
えばプログラム)や文書といった歪みが許されないデー
タに対して利用される。
【0004】無雑音圧縮として今日広く利用されている
ものに、Lempel−Ziv方式(以降、LZ方式と
記す)がある。このLZ方式は、文字列を読み込みなが
らその統計的な性質を抽出して符号化を行う、所謂適応
符号化方式の一種である。ここでの文字の定義は、符号
化対象である入力データ列の最小の処理単位のことであ
る。
ものに、Lempel−Ziv方式(以降、LZ方式と
記す)がある。このLZ方式は、文字列を読み込みなが
らその統計的な性質を抽出して符号化を行う、所謂適応
符号化方式の一種である。ここでの文字の定義は、符号
化対象である入力データ列の最小の処理単位のことであ
る。
【0005】図5は、上記LZ方式を採用した従来のデ
ータ圧縮装置500の構成を示すブロック図である。こ
の図5を参照して、従来のデータ圧縮装置500につい
て説明する。
ータ圧縮装置500の構成を示すブロック図である。こ
の図5を参照して、従来のデータ圧縮装置500につい
て説明する。
【0006】このデータ圧縮装置500は、図5に示す
ように、外部から入力した入力データ列(文字列)IW
を記憶する入力メモリ501と、該入力メモリ501内
の符号化が終了した部分文字列が順次記憶される辞書メ
モリ502と、入力メモリ501から読み出された文字
を辞書メモリ502から読み出された文字と比較する比
較回路503と、装置500全体の制御を実行する制御
部504と、制御部504が生成した符号語が格納され
る符号メモリ505、及びフラグレジスタ506と、符
号メモリ505、及びフラグレジスタ506に格納され
た符号語を出力するために用いられる出力メモリ507
とから構成される。
ように、外部から入力した入力データ列(文字列)IW
を記憶する入力メモリ501と、該入力メモリ501内
の符号化が終了した部分文字列が順次記憶される辞書メ
モリ502と、入力メモリ501から読み出された文字
を辞書メモリ502から読み出された文字と比較する比
較回路503と、装置500全体の制御を実行する制御
部504と、制御部504が生成した符号語が格納され
る符号メモリ505、及びフラグレジスタ506と、符
号メモリ505、及びフラグレジスタ506に格納され
た符号語を出力するために用いられる出力メモリ507
とから構成される。
【0007】上記の構成において、辞書メモリ502に
記憶された文字列は辞書として利用される。制御部50
4は、入力メモリ501、辞書メモリ502の文字を読
み出すアドレスを変更させながら、比較回路503を用
いて各メモリ501、502から読み出された文字が一
致するか否かを比較していくことにより、入力メモリ5
01の符号化の対象となっている部分文字列と一致する
辞書メモリ502の部分文字列(一致系列)を検索す
る。
記憶された文字列は辞書として利用される。制御部50
4は、入力メモリ501、辞書メモリ502の文字を読
み出すアドレスを変更させながら、比較回路503を用
いて各メモリ501、502から読み出された文字が一
致するか否かを比較していくことにより、入力メモリ5
01の符号化の対象となっている部分文字列と一致する
辞書メモリ502の部分文字列(一致系列)を検索す
る。
【0008】この制御部504による一致系列(部分文
字列)の検索は、例えば次のようにして行われる。先
ず、現時点の符号化を行う対象となっている部分文字列
の先頭文字と一致する文字を、辞書メモリ502の最も
過去に記憶された文字から順次探していき、この先頭文
字と一致する文字を見つける。先頭文字と一致する文字
を見つけると、その文字が記憶されているアドレス(以
降、一致位置と記す)を記憶した後、辞書メモリ502
のこの見つけた文字に続く文字と入力メモリ501の部
分文字列の先頭文字に続く文字とを順次比較していき、
一致すると比較した文字数(一致長)をカウントする。
このカウントは2つの文字が一致しないと比較するまで
継続して行い、カウントした値(一致長)は既に記憶し
た先頭アドレスと対応させて記憶する。これにより1つ
の一致系列の抽出が終了し、このような一致系列の抽出
を繰り返し行い、抽出した一致系列のなかからその一致
長が最大のものを最大一致系列として抽出する。
字列)の検索は、例えば次のようにして行われる。先
ず、現時点の符号化を行う対象となっている部分文字列
の先頭文字と一致する文字を、辞書メモリ502の最も
過去に記憶された文字から順次探していき、この先頭文
字と一致する文字を見つける。先頭文字と一致する文字
を見つけると、その文字が記憶されているアドレス(以
降、一致位置と記す)を記憶した後、辞書メモリ502
のこの見つけた文字に続く文字と入力メモリ501の部
分文字列の先頭文字に続く文字とを順次比較していき、
一致すると比較した文字数(一致長)をカウントする。
このカウントは2つの文字が一致しないと比較するまで
継続して行い、カウントした値(一致長)は既に記憶し
た先頭アドレスと対応させて記憶する。これにより1つ
の一致系列の抽出が終了し、このような一致系列の抽出
を繰り返し行い、抽出した一致系列のなかからその一致
長が最大のものを最大一致系列として抽出する。
【0009】制御部504は、この検索を行った結果に
基づいて符号化を行う。具体的には、上記のようにして
見つけた最大一致系列の長さが所定数以上であった場
合、一致フラグに“1”をセットしてこれをフラグレジ
スタ506に格納し、該最大一致系列の一致位置、及び
その一致長を符号メモリ505に格納する。反対に符号
化対象である部分文字列の先頭文字と一致する文字が辞
書メモリ502に見つけられなかった場合を含め、最大
一致系列の長さが所定数未満であった場合、一致フラグ
に“0”をセットしてこれをフラグレジスタ506に格
納し、該先頭文字を表すデータ(例えば、ASCIIコ
ード)を符号メモリ505にそのまま格納する。
基づいて符号化を行う。具体的には、上記のようにして
見つけた最大一致系列の長さが所定数以上であった場
合、一致フラグに“1”をセットしてこれをフラグレジ
スタ506に格納し、該最大一致系列の一致位置、及び
その一致長を符号メモリ505に格納する。反対に符号
化対象である部分文字列の先頭文字と一致する文字が辞
書メモリ502に見つけられなかった場合を含め、最大
一致系列の長さが所定数未満であった場合、一致フラグ
に“0”をセットしてこれをフラグレジスタ506に格
納し、該先頭文字を表すデータ(例えば、ASCIIコ
ード)を符号メモリ505にそのまま格納する。
【0010】制御部504は、上記のようにして入力メ
モリ501の文字列に対する符号化を部分文字列に分け
て順次行うとともに、入力メモリ501、辞書メモリ5
02に記憶させる内容(文字列)を更新する。具体的に
は、例えば入力メモリ501のある部分文字列に対する
符号化が終了すると、この符号化が終了した部分文字列
を辞書メモリ502に新たに登録し、入力メモリ501
にはこの部分文字列の文字数分、入力データ列IWを新
たに書き込む。
モリ501の文字列に対する符号化を部分文字列に分け
て順次行うとともに、入力メモリ501、辞書メモリ5
02に記憶させる内容(文字列)を更新する。具体的に
は、例えば入力メモリ501のある部分文字列に対する
符号化が終了すると、この符号化が終了した部分文字列
を辞書メモリ502に新たに登録し、入力メモリ501
にはこの部分文字列の文字数分、入力データ列IWを新
たに書き込む。
【0011】また、制御部504は、フラグレジスタ5
06にそのビット数の一致フラグを格納すると、このフ
ラグレジスタ506、符号メモリ505に格納されてい
る内容を出力メモリ507に格納する。その後、この出
力メモリ507に格納された符号語を圧縮符号出力OW
として外部に出力する。
06にそのビット数の一致フラグを格納すると、このフ
ラグレジスタ506、符号メモリ505に格納されてい
る内容を出力メモリ507に格納する。その後、この出
力メモリ507に格納された符号語を圧縮符号出力OW
として外部に出力する。
【0012】上記の動作を繰り返すことで入力データ列
(文字列)IWに対する圧縮が行われる。出力メモリ5
07から随時出力される圧縮符号出力OWは、例えば磁
気記憶装置に出力され、ここで磁気ディスク上に格納さ
れる。
(文字列)IWに対する圧縮が行われる。出力メモリ5
07から随時出力される圧縮符号出力OWは、例えば磁
気記憶装置に出力され、ここで磁気ディスク上に格納さ
れる。
【0013】なお、圧縮符号出力(符号語)OWの復号
は、過去に復号化した文字列を辞書として利用し、一致
フラグの値が“0”のときは符号語が表す文字、その値
が“1”のときは辞書として記憶している復号した文字
列から符号語に応じて部分文字列を抽出して複写してい
くことで行われる。
は、過去に復号化した文字列を辞書として利用し、一致
フラグの値が“0”のときは符号語が表す文字、その値
が“1”のときは辞書として記憶している復号した文字
列から符号語に応じて部分文字列を抽出して複写してい
くことで行われる。
【0014】
【発明が解決しようとする課題】しかしながら、上述し
た従来のデータ圧縮装置500は、一致系列の抽出を繰
り返すことで最大一致系列を検索していることから、符
号化を行う文字列を記憶させておかなければならなかっ
た。符号化を行う文字列は入力メモリ501に記憶させ
ているが、このようなメモリを備えたことによって装置
500が大型化していたという問題点があった。
た従来のデータ圧縮装置500は、一致系列の抽出を繰
り返すことで最大一致系列を検索していることから、符
号化を行う文字列を記憶させておかなければならなかっ
た。符号化を行う文字列は入力メモリ501に記憶させ
ているが、このようなメモリを備えたことによって装置
500が大型化していたという問題点があった。
【0015】データ圧縮装置は、例えばコンピュータの
バスに接続して、その主記憶装置や外部記憶装置に記憶
させるデータの圧縮に利用される。このため、バス等に
接続して用いられるように、LSI(Large Scale Inte
grated Circuit)化が望まれている。このLSI化を容
易とし、また、そのコストを抑えられるように、その規
模が小さいデータ圧縮装置が望まれていた。
バスに接続して、その主記憶装置や外部記憶装置に記憶
させるデータの圧縮に利用される。このため、バス等に
接続して用いられるように、LSI(Large Scale Inte
grated Circuit)化が望まれている。このLSI化を容
易とし、また、そのコストを抑えられるように、その規
模が小さいデータ圧縮装置が望まれていた。
【0016】本発明の課題は、データ圧縮装置の規模を
小型化するとともに、そのコストを低減することにあ
る。
小型化するとともに、そのコストを低減することにあ
る。
【0017】
【課題を解決するための手段】本発明のデータ圧縮装置
は、過去に入力された文字列を記憶する記憶手段を備
え、該記憶手段に記憶された文字列を参照し、繰り返し
入力された部分文字列を検出することで文字列を表すデ
ータ量の圧縮を行うことを前提とし、以下の手段を備え
る。
は、過去に入力された文字列を記憶する記憶手段を備
え、該記憶手段に記憶された文字列を参照し、繰り返し
入力された部分文字列を検出することで文字列を表すデ
ータ量の圧縮を行うことを前提とし、以下の手段を備え
る。
【0018】先ず、文字判別手段は、入力された文字が
部分文字列の先頭文字であるか否かを判別する。一致位
置記憶手段は、文字判別手段が入力された文字を先頭文
字と判別したとき、該入力された文字と一致する文字が
記憶されている記憶手段のアドレスを一致位置として記
憶する。
部分文字列の先頭文字であるか否かを判別する。一致位
置記憶手段は、文字判別手段が入力された文字を先頭文
字と判別したとき、該入力された文字と一致する文字が
記憶されている記憶手段のアドレスを一致位置として記
憶する。
【0019】読出手段は、先頭文字であると文字判別手
段が判別した文字に続く文字が入力される度に、該文字
の入力に応じて一致位置から順次アドレスを変更しなが
ら記憶手段に記憶されている文字を読み出す。
段が判別した文字に続く文字が入力される度に、該文字
の入力に応じて一致位置から順次アドレスを変更しなが
ら記憶手段に記憶されている文字を読み出す。
【0020】比較手段は、入力された文字と読出手段が
記憶手段から読み出した文字が一致するか否かを比較
し、書込手段は、文字が入力される度に、該入力された
文字を記憶手段に随時書き込む。
記憶手段から読み出した文字が一致するか否かを比較
し、書込手段は、文字が入力される度に、該入力された
文字を記憶手段に随時書き込む。
【0021】計数手段は、文字判別手段が入力された文
字を先頭文字と判別してから比較手段が一致すると比較
した回数を計数することで、記憶手段に記憶されている
部分文字列の長さを計数する。
字を先頭文字と判別してから比較手段が一致すると比較
した回数を計数することで、記憶手段に記憶されている
部分文字列の長さを計数する。
【0022】符号生成手段は、文字判別手段が入力され
た文字を先頭文字と判別した後に比較手段の比較結果が
不一致となったとき、記憶手段に記憶されている部分文
字列を表す符号語を一致位置、計数手段が計数した文字
数から生成する。
た文字を先頭文字と判別した後に比較手段の比較結果が
不一致となったとき、記憶手段に記憶されている部分文
字列を表す符号語を一致位置、計数手段が計数した文字
数から生成する。
【0023】なお、上記の構成において、一致位置記憶
手段を複数備え、読出手段は、文字が入力される度に、
複数の一致位置記憶手段に記憶されているそれぞれの一
致位置から順次変更させたアドレスに記憶されている文
字を記憶手段から各々読み出し、比較手段は、読出手段
が記憶手段から文字を読み出す毎に、該記憶手段から読
みだされた文字と入力された文字を順次比較し、計数手
段は、読出手段が記憶手段から読み出した文字のなかで
比較手段が入力された文字と一致すると比較した文字が
あった場合に計数を1度行い、符号生成手段は、読出手
段が記憶手段から読み出した文字のなかで比較手段が入
力された文字と一致すると比較した文字がなかった場合
に、記憶手段に記憶されている部分文字列を表す符号語
を生成する、ことが望ましい。
手段を複数備え、読出手段は、文字が入力される度に、
複数の一致位置記憶手段に記憶されているそれぞれの一
致位置から順次変更させたアドレスに記憶されている文
字を記憶手段から各々読み出し、比較手段は、読出手段
が記憶手段から文字を読み出す毎に、該記憶手段から読
みだされた文字と入力された文字を順次比較し、計数手
段は、読出手段が記憶手段から読み出した文字のなかで
比較手段が入力された文字と一致すると比較した文字が
あった場合に計数を1度行い、符号生成手段は、読出手
段が記憶手段から読み出した文字のなかで比較手段が入
力された文字と一致すると比較した文字がなかった場合
に、記憶手段に記憶されている部分文字列を表す符号語
を生成する、ことが望ましい。
【0024】
【作用】本発明のデータ圧縮装置は、文字が入力される
度に、該入力された文字が部分文字列の先頭文字に該当
するか否か判別し、該判別結果に応じてこの入力された
文字が辞書(記憶手段)に記憶されているか否か検索す
るとともに、この入力された文字を辞書に新たに登録し
ながら繰り返し入力された部分文字列を検出することで
符号化を行う。
度に、該入力された文字が部分文字列の先頭文字に該当
するか否か判別し、該判別結果に応じてこの入力された
文字が辞書(記憶手段)に記憶されているか否か検索す
るとともに、この入力された文字を辞書に新たに登録し
ながら繰り返し入力された部分文字列を検出することで
符号化を行う。
【0025】例えば、入力された文字が部分文字列の先
頭文字に該当すると判別した場合、この入力された文字
に一致する文字が記憶されている辞書のアドレス(一致
位置)を複数検索する。この入力された文字に続けて入
力される文字は、文字が入力される度に各一致位置から
連続させて変更させたアドレスから読み出したそれぞれ
の文字と一致するか否か比較し、これらの文字のなかで
一致すると比較された文字が入力された数をカウントし
ていくことで、最大一致系列、及びその一致長を確定す
る。最大一致系列が確定すると、その一致位置、一致長
から符号語を生成することで、この最大一致系列に対応
する入力された部分文字列の符号化を行う。この符号化
を行う一方、入力された文字は随時辞書に新たに登録す
る。
頭文字に該当すると判別した場合、この入力された文字
に一致する文字が記憶されている辞書のアドレス(一致
位置)を複数検索する。この入力された文字に続けて入
力される文字は、文字が入力される度に各一致位置から
連続させて変更させたアドレスから読み出したそれぞれ
の文字と一致するか否か比較し、これらの文字のなかで
一致すると比較された文字が入力された数をカウントし
ていくことで、最大一致系列、及びその一致長を確定す
る。最大一致系列が確定すると、その一致位置、一致長
から符号語を生成することで、この最大一致系列に対応
する入力された部分文字列の符号化を行う。この符号化
を行う一方、入力された文字は随時辞書に新たに登録す
る。
【0026】上記のように、一致位置を検索しておくこ
とで文字の入力に合わせて随時符号化を行うことが可能
となり、また、入力された文字を辞書に随時登録するこ
とが可能となる。これにより、符号化対象の文字列を記
憶しておく必要性が回避され、メモリ数、及びその容量
の低減が可能となる。従って、装置の規模の小型化、及
びそのコストの低減が実現される。
とで文字の入力に合わせて随時符号化を行うことが可能
となり、また、入力された文字を辞書に随時登録するこ
とが可能となる。これにより、符号化対象の文字列を記
憶しておく必要性が回避され、メモリ数、及びその容量
の低減が可能となる。従って、装置の規模の小型化、及
びそのコストの低減が実現される。
【0027】
【実施例】以下、本発明の実施例を、図面を参照しなが
ら詳細に説明する。図1は、本実施例によるデータ圧縮
装置100の構成を示すブロック図である。
ら詳細に説明する。図1は、本実施例によるデータ圧縮
装置100の構成を示すブロック図である。
【0028】このデータ圧縮装置100における入力デ
ータ列IDは、特には図示しない外部装置(例えばCP
U)から、例えば1文字を8ビットで表現するASCI
Iコードで入力される。外部装置からは、入力データ列
IDは1ビットの書込信号とともに入力され、その書込
信号がアクティブになると、1文字の入力データ列ID
は入力レジスタ101にストアされる。
ータ列IDは、特には図示しない外部装置(例えばCP
U)から、例えば1文字を8ビットで表現するASCI
Iコードで入力される。外部装置からは、入力データ列
IDは1ビットの書込信号とともに入力され、その書込
信号がアクティブになると、1文字の入力データ列ID
は入力レジスタ101にストアされる。
【0029】書込信号は、入力レジスタ101の他に、
制御部102に入力される。制御部102は、装置10
0全体の制御を行うものであり、この書込信号がアクテ
ィブになる度に符号化処理(その動作は以下に説明す
る)を起動する。
制御部102に入力される。制御部102は、装置10
0全体の制御を行うものであり、この書込信号がアクテ
ィブになる度に符号化処理(その動作は以下に説明す
る)を起動する。
【0030】入力レジスタ101にストアされている文
字(以降、入力文字と記す)は、データセレクタ10
4、及び前データレジスタ105に出力される。この前
データレジスタ105は、特には図示していないが、制
御部102から入力する書込信号がアクティブになるこ
とで入力文字(入力レジスタ101にストアされている
文字)をストアする。
字(以降、入力文字と記す)は、データセレクタ10
4、及び前データレジスタ105に出力される。この前
データレジスタ105は、特には図示していないが、制
御部102から入力する書込信号がアクティブになるこ
とで入力文字(入力レジスタ101にストアされている
文字)をストアする。
【0031】データセレクタ104は、前データレジス
タ105、入力レジスタ101がストアしている文字を
各々入力し、制御部102からのセレクト信号に従って
選択した一方を比較回路106に出力する。比較回路1
06は、データセレクタ104から出力された文字と、
辞書メモリ103から読み出された文字とが一致するか
否かを比較し、この比較結果を制御部102に出力す
る。
タ105、入力レジスタ101がストアしている文字を
各々入力し、制御部102からのセレクト信号に従って
選択した一方を比較回路106に出力する。比較回路1
06は、データセレクタ104から出力された文字と、
辞書メモリ103から読み出された文字とが一致するか
否かを比較し、この比較結果を制御部102に出力す
る。
【0032】本実施例における辞書メモリ103は、4
Kbyteの記憶容量(辞書サイズ)を有し、過去に入
力された4Kbyte分の文字(符号化済入力)が記憶
される。辞書メモリ103の読出アドレス、書込アドレ
スは、アドレスセレクタ107に接続された各ポインタ
により指定される。
Kbyteの記憶容量(辞書サイズ)を有し、過去に入
力された4Kbyte分の文字(符号化済入力)が記憶
される。辞書メモリ103の読出アドレス、書込アドレ
スは、アドレスセレクタ107に接続された各ポインタ
により指定される。
【0033】このアドレスセレクタ107には、辞書先
頭ポインタ108、一致位置ポインタ109〜112、
及び入力ポインタ113の各ポインタが接続されてい
る。アドレスセレクタ107は制御部102からのセレ
クト信号に従ってこれらのなかから1つを選択する。
頭ポインタ108、一致位置ポインタ109〜112、
及び入力ポインタ113の各ポインタが接続されてい
る。アドレスセレクタ107は制御部102からのセレ
クト信号に従ってこれらのなかから1つを選択する。
【0034】ここで、上記各ポインタについて、図2を
参照して説明する。図2は、各ポインタが示す辞書メモ
リ103上のアドレス例を示す図である。図2(a)
は、符号化済入力が辞書サイズ(本実施例では4Kby
te)よりも小さい場合、図2(b)は、符号化済入力
が辞書サイズよりも大きい場合を各々示し、斜線で示す
部分は文字が記憶されている領域を表している。また、
P1〜P4は、各々一致位置ポインタ109〜112が
指示(保持)しているアドレスの位置を示す。
参照して説明する。図2は、各ポインタが示す辞書メモ
リ103上のアドレス例を示す図である。図2(a)
は、符号化済入力が辞書サイズ(本実施例では4Kby
te)よりも小さい場合、図2(b)は、符号化済入力
が辞書サイズよりも大きい場合を各々示し、斜線で示す
部分は文字が記憶されている領域を表している。また、
P1〜P4は、各々一致位置ポインタ109〜112が
指示(保持)しているアドレスの位置を示す。
【0035】上記したように辞書メモリ103は、過去
に入力された4Kbyte分の文字が記憶されることか
ら、各ポインタ108〜113は12ビット(212=4
096)である。
に入力された4Kbyte分の文字が記憶されることか
ら、各ポインタ108〜113は12ビット(212=4
096)である。
【0036】辞書先頭ポインタ108は、制御部102
から出力された、辞書メモリ103に記憶されている文
字列において最も過去に記憶された文字のアドレスを保
持する。このため、符号化済入力が辞書サイズよりも小
さい場合(図2(a)参照)、辞書先頭ポインタ108
は辞書メモリ103の先頭アドレスを示す値を保持し、
符号化済入力が辞書サイズよりも大きい場合、図2
(b)に示すように、辞書先頭ポインタ108が指示す
るアドレスは先頭アドレスとは限らず、辞書メモリ10
3上をそれに文字が書き込まれる度に移動(スライド)
する。
から出力された、辞書メモリ103に記憶されている文
字列において最も過去に記憶された文字のアドレスを保
持する。このため、符号化済入力が辞書サイズよりも小
さい場合(図2(a)参照)、辞書先頭ポインタ108
は辞書メモリ103の先頭アドレスを示す値を保持し、
符号化済入力が辞書サイズよりも大きい場合、図2
(b)に示すように、辞書先頭ポインタ108が指示す
るアドレスは先頭アドレスとは限らず、辞書メモリ10
3上をそれに文字が書き込まれる度に移動(スライド)
する。
【0037】入力ポインタ113は、制御部102から
出力された、辞書メモリ103に新たに文字を書き込む
アドレスを保持する。このため、符号化済入力が辞書サ
イズよりも小さい場合(図2(a)参照)、入力ポイン
タ113には辞書メモリ103のまだ文字が書き込まれ
ていない領域の先頭を示すアドレスが保持され、符号化
済入力が辞書サイズよりも大きい場合、図2(b)に示
すように、最も過去に記憶された文字のアドレス、即ち
辞書先頭ポインタ108が保持しているアドレスと同じ
値が入力ポインタ113に保持される。
出力された、辞書メモリ103に新たに文字を書き込む
アドレスを保持する。このため、符号化済入力が辞書サ
イズよりも小さい場合(図2(a)参照)、入力ポイン
タ113には辞書メモリ103のまだ文字が書き込まれ
ていない領域の先頭を示すアドレスが保持され、符号化
済入力が辞書サイズよりも大きい場合、図2(b)に示
すように、最も過去に記憶された文字のアドレス、即ち
辞書先頭ポインタ108が保持しているアドレスと同じ
値が入力ポインタ113に保持される。
【0038】入力ポインタ113(辞書先頭ポインタ1
08)に保持されるアドレスは、辞書メモリ103を循
環させるように変更される。このため、辞書メモリ10
3には過去に入力された4Kbyte分の文字が常に記
憶される。
08)に保持されるアドレスは、辞書メモリ103を循
環させるように変更される。このため、辞書メモリ10
3には過去に入力された4Kbyte分の文字が常に記
憶される。
【0039】一致位置ポインタ109〜112は、辞書
メモリ103から文字を読み出すアドレスを保持するも
のであり、入力レジスタ101にストアされた入力文字
が部分文字列の先頭文字であると制御部102が判別し
たとき(この判別については後述する)、その入力文字
と一致する文字が記憶されているアドレス(一致位置)
を各々保持する。ここでは、以降の説明を簡単にするた
め、現在入力レジスタ101にストアされている入力文
字は先頭文字であるとし、この先頭文字と判別した入力
文字、この入力文字に続く文字が入力された際の制御部
102の動作を順次説明していくなかで、入力された文
字の種類の判別について説明することにする。
メモリ103から文字を読み出すアドレスを保持するも
のであり、入力レジスタ101にストアされた入力文字
が部分文字列の先頭文字であると制御部102が判別し
たとき(この判別については後述する)、その入力文字
と一致する文字が記憶されているアドレス(一致位置)
を各々保持する。ここでは、以降の説明を簡単にするた
め、現在入力レジスタ101にストアされている入力文
字は先頭文字であるとし、この先頭文字と判別した入力
文字、この入力文字に続く文字が入力された際の制御部
102の動作を順次説明していくなかで、入力された文
字の種類の判別について説明することにする。
【0040】本実施例では、上記一致位置の検索は辞書
先頭ポインタ108が示すアドレスから順次アドレスを
変更させながら行われる。一致位置ポインタ109に一
致位置を保持、即ち比較回路106の比較結果が一致を
示すと、制御部102はこのときの一致位置ポインタ1
09の値を一致位置ポインタ110にストアさせる。そ
の後、アドレスセレクタ107に一致位置ポインタ11
0を選択させ、一致位置ポインタ110をインクリメン
トしながら辞書メモリ103から読み出された文字を入
力文字と順次比較していくことにより、一致位置ポイン
タ110に一致位置を保持させる。以降、他の一致位置
ポインタ111、一致位置ポインタ112に対しても同
様に、一致位置を各々保持させる。
先頭ポインタ108が示すアドレスから順次アドレスを
変更させながら行われる。一致位置ポインタ109に一
致位置を保持、即ち比較回路106の比較結果が一致を
示すと、制御部102はこのときの一致位置ポインタ1
09の値を一致位置ポインタ110にストアさせる。そ
の後、アドレスセレクタ107に一致位置ポインタ11
0を選択させ、一致位置ポインタ110をインクリメン
トしながら辞書メモリ103から読み出された文字を入
力文字と順次比較していくことにより、一致位置ポイン
タ110に一致位置を保持させる。以降、他の一致位置
ポインタ111、一致位置ポインタ112に対しても同
様に、一致位置を各々保持させる。
【0041】上記した入力文字と一致する文字の検索
は、一致位置ポインタ109〜112の全てに一致位置
を保持させるか、或いは辞書メモリ103に記憶されて
いる文字を全て参照、即ち辞書先頭ポインタ108のア
ドレスから循環させて入力ポインタ113の直前のアド
レスまでの文字を参照することで終了する。一致位置を
保持する順序により、各一致位置ポインタ109〜11
2が保持する一致位置は図2(a)、及び(b)に示す
ようになる。
は、一致位置ポインタ109〜112の全てに一致位置
を保持させるか、或いは辞書メモリ103に記憶されて
いる文字を全て参照、即ち辞書先頭ポインタ108のア
ドレスから循環させて入力ポインタ113の直前のアド
レスまでの文字を参照することで終了する。一致位置を
保持する順序により、各一致位置ポインタ109〜11
2が保持する一致位置は図2(a)、及び(b)に示す
ようになる。
【0042】制御部102は、この検索の結果、入力レ
ジスタ101の入力文字と一致する文字を見つけた場
合、入力文字を前データレジスタ105にストアさせる
とともに、アドレスセレクタ107に入力ポインタ11
3を選択させ、入力ポインタ113が指示するアドレス
にこの入力文字を記憶させる。入力文字を辞書メモリ1
03に記憶させると、制御部102は一致位置を保持さ
せた一致位置ポインタ、辞書先頭ポインタ108、入力
ポインタ113をインクリメントし、その後、制御部1
02は外部装置に対して文字の出力を要求する。この外
部装置に対する文字の出力の要求は、例えばその旨を示
す割り込み信号を外部装置に送出することで行われる。
ジスタ101の入力文字と一致する文字を見つけた場
合、入力文字を前データレジスタ105にストアさせる
とともに、アドレスセレクタ107に入力ポインタ11
3を選択させ、入力ポインタ113が指示するアドレス
にこの入力文字を記憶させる。入力文字を辞書メモリ1
03に記憶させると、制御部102は一致位置を保持さ
せた一致位置ポインタ、辞書先頭ポインタ108、入力
ポインタ113をインクリメントし、その後、制御部1
02は外部装置に対して文字の出力を要求する。この外
部装置に対する文字の出力の要求は、例えばその旨を示
す割り込み信号を外部装置に送出することで行われる。
【0043】一方、上記の検索により入力文字と一致す
る文字が見つからなかった場合、制御部102は、
“0”をセットした一致フラグを符号出力部115に出
力するととともに、データセレクタ104を介してこの
入力文字を符号出力部115に出力させる。また、これ
に続いて入力文字を辞書メモリ103に書き込み、辞書
先頭ポインタ108、入力ポインタ113をインクリメ
ントした後、外部装置に次の文字の出力を要求する。こ
の場合、現時点の入力文字は符号化が終了しているの
で、制御部102は外部装置から次に入力する文字を先
頭文字と判別する。
る文字が見つからなかった場合、制御部102は、
“0”をセットした一致フラグを符号出力部115に出
力するととともに、データセレクタ104を介してこの
入力文字を符号出力部115に出力させる。また、これ
に続いて入力文字を辞書メモリ103に書き込み、辞書
先頭ポインタ108、入力ポインタ113をインクリメ
ントした後、外部装置に次の文字の出力を要求する。こ
の場合、現時点の入力文字は符号化が終了しているの
で、制御部102は外部装置から次に入力する文字を先
頭文字と判別する。
【0044】外部装置から新たに次の文字が入力される
と、即ち入力レジスタ101に新たに文字がストアされ
ると、制御部102は、符号化処理を再開する。このと
き、1つ前の入力文字と一致する文字を辞書メモリ10
3内に見つけられなかった場合、上記したように、この
新たに入力された文字は先頭文字に該当することになる
ので、各一致位置ポインタ109〜112に一致位置を
保持させるための検索を再度行う。
と、即ち入力レジスタ101に新たに文字がストアされ
ると、制御部102は、符号化処理を再開する。このと
き、1つ前の入力文字と一致する文字を辞書メモリ10
3内に見つけられなかった場合、上記したように、この
新たに入力された文字は先頭文字に該当することになる
ので、各一致位置ポインタ109〜112に一致位置を
保持させるための検索を再度行う。
【0045】一方、例えば各一致位置ポインタ109〜
112に一致位置を保持させていた場合(実際は、これ
らのなかで一致位置を保持するポインタが1つでもあれ
ばよい)、各々インクリメントしておいた各一致位置ポ
インタ109〜112が指示するアドレスに記憶された
文字がこの新たに入力された文字と一致するか否かの比
較を、一致位置ポインタ109が指示するアドレスに記
憶された文字から順次行う。これは、アドレスセレクタ
107が選択するポインタを順次切り換えていくことで
行われる。
112に一致位置を保持させていた場合(実際は、これ
らのなかで一致位置を保持するポインタが1つでもあれ
ばよい)、各々インクリメントしておいた各一致位置ポ
インタ109〜112が指示するアドレスに記憶された
文字がこの新たに入力された文字と一致するか否かの比
較を、一致位置ポインタ109が指示するアドレスに記
憶された文字から順次行う。これは、アドレスセレクタ
107が選択するポインタを順次切り換えていくことで
行われる。
【0046】上記比較を行った結果、各一致位置ポイン
タ109〜112が指示するアドレスから読み出された
文字のなかで入力文字と一致する文字がなかった場合、
制御部102は符号出力部115に“0”の一致フラグ
を出力するとともに、データセレクタ104を介して前
データレジスタ105の文字を符号出力部115に入力
させる。これにより、入力文字までの符号化が終了した
ことになるので、制御部102はこの入力文字を先頭文
字と判別し、上述した一致位置の検索を再び行う。
タ109〜112が指示するアドレスから読み出された
文字のなかで入力文字と一致する文字がなかった場合、
制御部102は符号出力部115に“0”の一致フラグ
を出力するとともに、データセレクタ104を介して前
データレジスタ105の文字を符号出力部115に入力
させる。これにより、入力文字までの符号化が終了した
ことになるので、制御部102はこの入力文字を先頭文
字と判別し、上述した一致位置の検索を再び行う。
【0047】反対に、各一致位置ポインタ109〜11
2が指示するアドレスから読み出された文字のなかで入
力文字と一致する文字があった場合、制御部102は辞
書メモリ103に記憶されている一致系列の長さ(文字
数)をカウントさせる一致長カウンタ114をリセット
(“0”をセット)する。この一致長カウンタ114の
リセットを行うと、続いて入力文字を入力ポインタ11
3が指示するアドレスに書き込み、その後、入力文字と
一致する文字を指示した一致位置ポインタ、入力ポイン
タ113、辞書先頭ポインタ108を各々インクリメン
トし、現在の入力文字に続く文字が入力されるのを待
つ。
2が指示するアドレスから読み出された文字のなかで入
力文字と一致する文字があった場合、制御部102は辞
書メモリ103に記憶されている一致系列の長さ(文字
数)をカウントさせる一致長カウンタ114をリセット
(“0”をセット)する。この一致長カウンタ114の
リセットを行うと、続いて入力文字を入力ポインタ11
3が指示するアドレスに書き込み、その後、入力文字と
一致する文字を指示した一致位置ポインタ、入力ポイン
タ113、辞書先頭ポインタ108を各々インクリメン
トし、現在の入力文字に続く文字が入力されるのを待
つ。
【0048】一致長カウンタ114をリセットした以降
は、入力文字と一致する文字を読み出した一致位置ポイ
ンタだけをインクリメントしながら、辞書メモリ103
から読み出された文字が全て入力文字と一致しないと比
較回路106が比較するまで一致長カウンタ114のカ
ウントアップを継続して行う。このカウントアップを継
続している間、比較回路106による文字の比較が終了
した後に、入力文字の辞書メモリ103への書き込みが
行われる。
は、入力文字と一致する文字を読み出した一致位置ポイ
ンタだけをインクリメントしながら、辞書メモリ103
から読み出された文字が全て入力文字と一致しないと比
較回路106が比較するまで一致長カウンタ114のカ
ウントアップを継続して行う。このカウントアップを継
続している間、比較回路106による文字の比較が終了
した後に、入力文字の辞書メモリ103への書き込みが
行われる。
【0049】辞書メモリ103から読み出された文字が
全て入力文字と一致しなくなると、或いは予め設定され
ている最大一致長(後述する)まで一致長カウンタ11
4をカウントアップさせた後、次の文字が入力される
と、制御部102は、現時点で符号化を行っている部分
文字列の最大一致系列が確定したと判断し、符号出力部
115に“1”の一致フラグを出力する。また、符号出
力部115に対し、一致長カウンタ114からそのカウ
ント値(一致長)、減算器116からアドレスセレクタ
107の出力値から一致長カウンタ114のカウント値
に2を加算した値を減算した結果を順次入力させる。こ
のとき、各一致位置ポインタ109〜112のなかの最
後までインクリメントされていたものをアドレスセレク
タ107に選択させている。このため、減算器116の
減算結果は、各一致位置ポインタ109〜112に保持
されていた一致位置から始まる一致系列のなかの、最大
一致系列の一致位置となる。
全て入力文字と一致しなくなると、或いは予め設定され
ている最大一致長(後述する)まで一致長カウンタ11
4をカウントアップさせた後、次の文字が入力される
と、制御部102は、現時点で符号化を行っている部分
文字列の最大一致系列が確定したと判断し、符号出力部
115に“1”の一致フラグを出力する。また、符号出
力部115に対し、一致長カウンタ114からそのカウ
ント値(一致長)、減算器116からアドレスセレクタ
107の出力値から一致長カウンタ114のカウント値
に2を加算した値を減算した結果を順次入力させる。こ
のとき、各一致位置ポインタ109〜112のなかの最
後までインクリメントされていたものをアドレスセレク
タ107に選択させている。このため、減算器116の
減算結果は、各一致位置ポインタ109〜112に保持
されていた一致位置から始まる一致系列のなかの、最大
一致系列の一致位置となる。
【0050】このように最大一致系列が確定すると、入
力レジスタ101にストアされている入力文字よりも過
去に入力された文字までの符号化が終了したことになる
ので、制御部102はこの入力文字を先頭文字と判別す
る。このため、制御部102は、符号出力部115が一
致長カウンタ114のカウント値、減算器116の減算
結果を入力した後、上述したように、各一致位置ポイン
タ109〜112に一致位置を保持させるための検索を
行う。
力レジスタ101にストアされている入力文字よりも過
去に入力された文字までの符号化が終了したことになる
ので、制御部102はこの入力文字を先頭文字と判別す
る。このため、制御部102は、符号出力部115が一
致長カウンタ114のカウント値、減算器116の減算
結果を入力した後、上述したように、各一致位置ポイン
タ109〜112に一致位置を保持させるための検索を
行う。
【0051】符号出力部115は、特には図示しない
が、例えばセレクタ、シフトレジスタ等から構成されて
おり、制御部102によって制御される。符号出力部1
15は、制御部102の制御に従ってセレクタの切り換
え、シフトレジスタのビットシフト等を行うことで、こ
のシフトレジスタに符号語として一致フラグ、及びその
一致フラグの値に応じて文字(ASCIIコード)、或
いは一致長(一致長カウンタ114のカウント値)及び
一致位置(減算器116出力)が順次格納される。シフ
トレジスタに格納された符号語は随時8ビット単位に切
り出されて外部に出力される。このシフトレジスタから
切り出されて出力されたものが圧縮符号出力ODであ
る。
が、例えばセレクタ、シフトレジスタ等から構成されて
おり、制御部102によって制御される。符号出力部1
15は、制御部102の制御に従ってセレクタの切り換
え、シフトレジスタのビットシフト等を行うことで、こ
のシフトレジスタに符号語として一致フラグ、及びその
一致フラグの値に応じて文字(ASCIIコード)、或
いは一致長(一致長カウンタ114のカウント値)及び
一致位置(減算器116出力)が順次格納される。シフ
トレジスタに格納された符号語は随時8ビット単位に切
り出されて外部に出力される。このシフトレジスタから
切り出されて出力されたものが圧縮符号出力ODであ
る。
【0052】ここで、この符号出力部115から出力さ
れる圧縮符号出力ODについて、図3を参照して説明す
る。図3は、圧縮符号出力ODのデータ形式を説明する
図である。
れる圧縮符号出力ODについて、図3を参照して説明す
る。図3は、圧縮符号出力ODのデータ形式を説明する
図である。
【0053】上記したように、本実施例では、入力され
た部分文字列と一致する部分文字列が辞書メモリ103
に記憶されているか否かにより、“1”、或いは“0”
が一致フラグにセットされ、図3に示すように、1ビッ
トで表される一致フラグの値により符号語のデータ形式
は互いに異なる。
た部分文字列と一致する部分文字列が辞書メモリ103
に記憶されているか否かにより、“1”、或いは“0”
が一致フラグにセットされ、図3に示すように、1ビッ
トで表される一致フラグの値により符号語のデータ形式
は互いに異なる。
【0054】一致フラグに“1”がセットされた場合、
その符号語は該一致フラグ、4ビットの一致長、及び1
2ビットの一致位置からなり、その語長は17ビットで
ある。一方、一致フラグに“0”がセットされた場合、
その符号語は該一致フラグ、及び8ビットで入力された
文字(不一致文字)からなり、その語長は9ビットであ
る。
その符号語は該一致フラグ、4ビットの一致長、及び1
2ビットの一致位置からなり、その語長は17ビットで
ある。一方、一致フラグに“0”がセットされた場合、
その符号語は該一致フラグ、及び8ビットで入力された
文字(不一致文字)からなり、その語長は9ビットであ
る。
【0055】本実施例では、上記したようなデータ形式
としていることから、元のデータ量よりも符号化を行っ
た後のデータ量が大きくならないように、入力された符
号化の対象となる部分文字列と2文字以上一致する部分
文字列が辞書メモリ103に記憶されていない場合、そ
の部分文字列の先頭文字は不一致文字と判断するように
している。このため、一致フラグに“1”がセットされ
た際の一致長は4ビットで2文字から17文字(最大一
致長)を表現させている。
としていることから、元のデータ量よりも符号化を行っ
た後のデータ量が大きくならないように、入力された符
号化の対象となる部分文字列と2文字以上一致する部分
文字列が辞書メモリ103に記憶されていない場合、そ
の部分文字列の先頭文字は不一致文字と判断するように
している。このため、一致フラグに“1”がセットされ
た際の一致長は4ビットで2文字から17文字(最大一
致長)を表現させている。
【0056】以上が本実施例によるデータ圧縮装置10
0の概略圧縮動作である。次に、上述した圧縮動作につ
いて、具体例を挙げて説明する。図4は、データ圧縮装
置100の圧縮動作例を具体的に説明するための図であ
る。図中、同図(a)は入力データ列IDとして入力さ
れた入力文字列401、同図(b)は該入力文字列40
1における7番目の文字“B”が入力された際の各ポイ
ンタ108〜113が示す辞書メモリ103上のアドレ
ス、同図(c)は該入力文字列401が入力されたこと
で出力される圧縮符号出力ODを各々示す。
0の概略圧縮動作である。次に、上述した圧縮動作につ
いて、具体例を挙げて説明する。図4は、データ圧縮装
置100の圧縮動作例を具体的に説明するための図であ
る。図中、同図(a)は入力データ列IDとして入力さ
れた入力文字列401、同図(b)は該入力文字列40
1における7番目の文字“B”が入力された際の各ポイ
ンタ108〜113が示す辞書メモリ103上のアドレ
ス、同図(c)は該入力文字列401が入力されたこと
で出力される圧縮符号出力ODを各々示す。
【0057】図4(a)に示す入力文字列401は、入
力データ列IDとして左から右に向かって1文字ずつ順
次入力レジスタ101にストアされる。この入力文字列
401において、現在7番目の文字“B”が現在入力値
としてこの入力レジスタ101にストアされていること
を表している。
力データ列IDとして左から右に向かって1文字ずつ順
次入力レジスタ101にストアされる。この入力文字列
401において、現在7番目の文字“B”が現在入力値
としてこの入力レジスタ101にストアされていること
を表している。
【0058】図4(b)に示すように、この7番目の文
字“B”が入力レジスタ101にストアされていると
き、入力された文字は随時辞書メモリ103に書き込む
ことから、辞書メモリ103には辞書先頭ポインタ10
8が指示するアドレスからそれ以前に入力された6文字
が順次記憶されている。
字“B”が入力レジスタ101にストアされていると
き、入力された文字は随時辞書メモリ103に書き込む
ことから、辞書メモリ103には辞書先頭ポインタ10
8が指示するアドレスからそれ以前に入力された6文字
が順次記憶されている。
【0059】1〜5番目の文字“AB=0;”は、各々
それが始めて入力された種類であることから、制御部1
02はこれらの文字を辞書メモリ103から検索するこ
とができない。このため、これら1〜5番目の各文字は
全て不一致文字と判断され、入力レジスタ101からデ
ータセレクタ104を介して符号出力部115に出力さ
れることで、“0”がセットされた一致フラグとその文
字とからなる符号語(圧縮符号出力OD)として符号出
力部115から出力される(図4(c)参照)。
それが始めて入力された種類であることから、制御部1
02はこれらの文字を辞書メモリ103から検索するこ
とができない。このため、これら1〜5番目の各文字は
全て不一致文字と判断され、入力レジスタ101からデ
ータセレクタ104を介して符号出力部115に出力さ
れることで、“0”がセットされた一致フラグとその文
字とからなる符号語(圧縮符号出力OD)として符号出
力部115から出力される(図4(c)参照)。
【0060】一方、6番目の文字“B”は2番目に入力
された文字と一致するので、辞書メモリ103を検索し
た結果、図4(b)においてP1で示す2番目の文字が
書き込まれているアドレス(一致位置)が一致位置ポイ
ンタ109に保持される。7番目の文字“B”が入力す
ると、インクリメントされた一致位置ポインタ109が
指示するアドレスから読み出された3番目の文字とこの
7番目の文字は比較回路106によって比較されるが、
これらの文字は一致しないので、6番目の文字は不一致
文字と判断される。このとき、6番目の文字は前データ
レジスタ105にストアされており、この6番目の文字
はデータセレクタ104を介して符号出力部115に出
力され、“0”がセットされた一致フラグが付加されて
出力される。
された文字と一致するので、辞書メモリ103を検索し
た結果、図4(b)においてP1で示す2番目の文字が
書き込まれているアドレス(一致位置)が一致位置ポイ
ンタ109に保持される。7番目の文字“B”が入力す
ると、インクリメントされた一致位置ポインタ109が
指示するアドレスから読み出された3番目の文字とこの
7番目の文字は比較回路106によって比較されるが、
これらの文字は一致しないので、6番目の文字は不一致
文字と判断される。このとき、6番目の文字は前データ
レジスタ105にストアされており、この6番目の文字
はデータセレクタ104を介して符号出力部115に出
力され、“0”がセットされた一致フラグが付加されて
出力される。
【0061】上記したように、7番目の文字は3番目の
文字と一致しないので、制御部102はこの7番目の文
字を先頭文字と判別し、これと一致する文字を辞書メモ
リ103から検索する。7番目の文字は、2番目、及び
6番目の文字と一致しているので、この検索の結果、図
4(b)においてP1で示す2番目の文字が書き込まれ
ているアドレス(一致位置)が一致位置ポインタ109
に保持され、また、図4(b)においてP2で示す6番
目の文字が書き込まれているアドレス(一致位置)が一
致位置ポインタ119に保持される。この検索が終了す
ると、制御部102はこの7番目の文字を辞書メモリ1
03の入力ポインタ113が指示するアドレスに書き込
み、一致位置ポインタ109、110、辞書先頭ポイン
タ108、入力ポインタ113の各ポインタをインクリ
メントした後、次の文字(8番目の文字“=”)の入力
を待つ。
文字と一致しないので、制御部102はこの7番目の文
字を先頭文字と判別し、これと一致する文字を辞書メモ
リ103から検索する。7番目の文字は、2番目、及び
6番目の文字と一致しているので、この検索の結果、図
4(b)においてP1で示す2番目の文字が書き込まれ
ているアドレス(一致位置)が一致位置ポインタ109
に保持され、また、図4(b)においてP2で示す6番
目の文字が書き込まれているアドレス(一致位置)が一
致位置ポインタ119に保持される。この検索が終了す
ると、制御部102はこの7番目の文字を辞書メモリ1
03の入力ポインタ113が指示するアドレスに書き込
み、一致位置ポインタ109、110、辞書先頭ポイン
タ108、入力ポインタ113の各ポインタをインクリ
メントした後、次の文字(8番目の文字“=”)の入力
を待つ。
【0062】8番目の文字が入力すると、この8番目の
文字は各々インクリメントされた一致位置ポインタ10
9、110が指示するアドレスから読み出された文字、
即ち3番目、7番目の文字と順次比較される。8番目の
文字は7番目の文字と一致しないが、3番目の文字とは
一致するので、制御部102は一致長カウンタ114を
ここでリセットし、また、この入力された8番目の文字
を入力ポインタ113が指示するアドレスに書き込む。
その後、一致位置ポインタ109、辞書先頭ポインタ1
08、入力ポインタ113を各々インクリメントした
後、次の文字(9番目の文字“0”)の入力を待つ。
文字は各々インクリメントされた一致位置ポインタ10
9、110が指示するアドレスから読み出された文字、
即ち3番目、7番目の文字と順次比較される。8番目の
文字は7番目の文字と一致しないが、3番目の文字とは
一致するので、制御部102は一致長カウンタ114を
ここでリセットし、また、この入力された8番目の文字
を入力ポインタ113が指示するアドレスに書き込む。
その後、一致位置ポインタ109、辞書先頭ポインタ1
08、入力ポインタ113を各々インクリメントした
後、次の文字(9番目の文字“0”)の入力を待つ。
【0063】図4(a)に示すように、9〜10番目の
文字“0;”は、4〜5番目の文字と一致している。こ
のため、以降、11番目の文字“C”が入力されるま
で、制御部102は一致位置ポインタ109をインクリ
メントしながら、この一致位置ポインタ109が指示す
るアドレスから読み出した文字と入力された文字とを順
次比較することになる。この結果、11番目の文字が入
力されるまで一致長カウンタ114のカウントアップは
行われ、この11番目の文字が入力された時点の一致長
カウンタ114のカウント値は“2”となる。また、辞
書メモリ103の先頭アドレス値を“0”と想定する
と、この時の一致位置ポインタ109の値は“5”であ
る。
文字“0;”は、4〜5番目の文字と一致している。こ
のため、以降、11番目の文字“C”が入力されるま
で、制御部102は一致位置ポインタ109をインクリ
メントしながら、この一致位置ポインタ109が指示す
るアドレスから読み出した文字と入力された文字とを順
次比較することになる。この結果、11番目の文字が入
力されるまで一致長カウンタ114のカウントアップは
行われ、この11番目の文字が入力された時点の一致長
カウンタ114のカウント値は“2”となる。また、辞
書メモリ103の先頭アドレス値を“0”と想定する
と、この時の一致位置ポインタ109の値は“5”であ
る。
【0064】11番目の文字が入力すると、この文字は
一致位置ポインタ109が指示するアドレスの文字、即
ち6番目の文字と比較される。図4(a)に示すよう
に、この両者は一致しないので、比較回路106は不一
致と比較した結果を制御部102に出力する。制御部1
02は、比較回路106からこの比較結果を入力する
と、最大一致系列が確定したと判断し、続けて、この最
大一致系列の一致長が2文字以上であるか否か、即ち一
致フラグを“1”とした符号語を生成させるか否か判断
する。この場合、最大一致系列は図4(b)にP1で示
す一致位置を先頭としたその文字数が4つの部分文字列
なので、制御部102は“1”をセットした一致フラグ
を符号出力部115に出力する。また、符号出力部11
5に一致長カウンタ114のカウント値、及び減算器1
16の減算結果を順次入力させる。
一致位置ポインタ109が指示するアドレスの文字、即
ち6番目の文字と比較される。図4(a)に示すよう
に、この両者は一致しないので、比較回路106は不一
致と比較した結果を制御部102に出力する。制御部1
02は、比較回路106からこの比較結果を入力する
と、最大一致系列が確定したと判断し、続けて、この最
大一致系列の一致長が2文字以上であるか否か、即ち一
致フラグを“1”とした符号語を生成させるか否か判断
する。この場合、最大一致系列は図4(b)にP1で示
す一致位置を先頭としたその文字数が4つの部分文字列
なので、制御部102は“1”をセットした一致フラグ
を符号出力部115に出力する。また、符号出力部11
5に一致長カウンタ114のカウント値、及び減算器1
16の減算結果を順次入力させる。
【0065】このとき、制御部102は、アドレスセレ
クタ107に一致位置ポインタ109を選択させてい
る。従って、減算器116から符号出力部115に出力
される減算結果は図4(b)のP1を示す値である。
クタ107に一致位置ポインタ109を選択させてい
る。従って、減算器116から符号出力部115に出力
される減算結果は図4(b)のP1を示す値である。
【0066】図4(c)は、入力文字列401の10番
目の文字までを符号化した際の圧縮符号出力ODを示し
ている。入力文字列401を符号化対象とした場合、上
述したように圧縮動作(符号化処理)が行われるので、
図4(c)に示すように、一致フラグに“0”がセット
されている符号語が6つ続き、7番目で符号語の一致フ
ラグに“1”がセットされる。
目の文字までを符号化した際の圧縮符号出力ODを示し
ている。入力文字列401を符号化対象とした場合、上
述したように圧縮動作(符号化処理)が行われるので、
図4(c)に示すように、一致フラグに“0”がセット
されている符号語が6つ続き、7番目で符号語の一致フ
ラグに“1”がセットされる。
【0067】この7番目の符号語は、7〜10番目の4
文字からなる部分文字列を表したものである。上述した
ように、一致長は2文字を“0”として順次カウントア
ップさせた値なので、このときの一致長は“2”であ
る。符号語として出力する一致位置は実際の一致位置と
しているので、このときの一致位置は“1”である(こ
れは辞書メモリ103の先頭アドレスを“0”としたと
きの値である)。この図4(c)に示す圧縮符号出力O
Dは、符号出力部115のシフトレジスタに格納された
符号語を8ビット単位で切り出すことで符号出力部11
5から随時出力される。
文字からなる部分文字列を表したものである。上述した
ように、一致長は2文字を“0”として順次カウントア
ップさせた値なので、このときの一致長は“2”であ
る。符号語として出力する一致位置は実際の一致位置と
しているので、このときの一致位置は“1”である(こ
れは辞書メモリ103の先頭アドレスを“0”としたと
きの値である)。この図4(c)に示す圧縮符号出力O
Dは、符号出力部115のシフトレジスタに格納された
符号語を8ビット単位で切り出すことで符号出力部11
5から随時出力される。
【0068】このように、本実施例は、符号化の対象と
なる部分文字列の先頭文字が記憶されている辞書メモリ
103の一致位置を確定し、その先頭文字に続く文字が
入力される度に、この文字の入力に対応させてその一致
位置から変更させたアドレスに記憶されている文字と新
たに入力された文字とを随時比較していくことで符号化
を行うため、符号化が済んでいない文字を記憶させるた
めのメモリが不要となり、装置においてメモリが占める
割合を小さくすることができる。これにより、装置の規
模、及びそのコストを抑えることができ、LSI化も容
易となるので、本発明はコンピュータのバス等に直結し
て利用するデータ圧縮装置等に対して広く適用すること
ができる。
なる部分文字列の先頭文字が記憶されている辞書メモリ
103の一致位置を確定し、その先頭文字に続く文字が
入力される度に、この文字の入力に対応させてその一致
位置から変更させたアドレスに記憶されている文字と新
たに入力された文字とを随時比較していくことで符号化
を行うため、符号化が済んでいない文字を記憶させるた
めのメモリが不要となり、装置においてメモリが占める
割合を小さくすることができる。これにより、装置の規
模、及びそのコストを抑えることができ、LSI化も容
易となるので、本発明はコンピュータのバス等に直結し
て利用するデータ圧縮装置等に対して広く適用すること
ができる。
【0069】また、本実施例では、符号出力部115を
用いて随時圧縮符号出力ODを外部に出力させている。
このため、図5に示す従来のデータ圧縮装置500と比
較すると、備えたメモリ数が低減、即ち入力メモリ50
1、符号メモリ505等を備えなくともよいことから、
装置各部の個々の制御を簡易化することができるという
効果もある。
用いて随時圧縮符号出力ODを外部に出力させている。
このため、図5に示す従来のデータ圧縮装置500と比
較すると、備えたメモリ数が低減、即ち入力メモリ50
1、符号メモリ505等を備えなくともよいことから、
装置各部の個々の制御を簡易化することができるという
効果もある。
【0070】一方、符号化に要する処理時間についてこ
の両者を比較すると、一致系列の抽出の打ち切りかた、
用いる一致位置ポインタ数といった両者の最大一致系列
の検索方法の違いにもよるが、データの入力に要する処
理時間が全体に占める割合は小さいことから、基本的に
はその処理時間に大きな差は発生しない。
の両者を比較すると、一致系列の抽出の打ち切りかた、
用いる一致位置ポインタ数といった両者の最大一致系列
の検索方法の違いにもよるが、データの入力に要する処
理時間が全体に占める割合は小さいことから、基本的に
はその処理時間に大きな差は発生しない。
【0071】なお、本実施例では、一致位置を保持する
一致位置ポインタの数を4つとしているが、この数はこ
れに限定したものではない。一致位置ポインタ数が少な
い程、データ圧縮を高速に行うことはできるが、この一
方で圧縮比(=圧縮後のデータ量/圧縮前のデータ量)
が大きくなるという不具合が発生し易くなる。データ圧
縮に要求する処理速度、符号化の対象となるファイルの
種類等にもよるが、上記圧縮比が大きくなるのを抑える
ためには、この数を4つ以上とすることが望ましい。
一致位置ポインタの数を4つとしているが、この数はこ
れに限定したものではない。一致位置ポインタ数が少な
い程、データ圧縮を高速に行うことはできるが、この一
方で圧縮比(=圧縮後のデータ量/圧縮前のデータ量)
が大きくなるという不具合が発生し易くなる。データ圧
縮に要求する処理速度、符号化の対象となるファイルの
種類等にもよるが、上記圧縮比が大きくなるのを抑える
ためには、この数を4つ以上とすることが望ましい。
【0072】また、本実施例では、辞書メモリ103の
各アドレスを保持させる各種ポインタ108〜113を
備えているが、例えばこれらのポインタの役割を制御部
102に行わせてもよく、また、一致長カウンタ11
4、減算器116の役割を制御部102に行わせてもよ
い。このように、本発明は圧縮符号出力ODのデータ形
式を含めて柔軟に適用させることができるものである。
各アドレスを保持させる各種ポインタ108〜113を
備えているが、例えばこれらのポインタの役割を制御部
102に行わせてもよく、また、一致長カウンタ11
4、減算器116の役割を制御部102に行わせてもよ
い。このように、本発明は圧縮符号出力ODのデータ形
式を含めて柔軟に適用させることができるものである。
【0073】
【発明の効果】以上、説明したように本発明によれば、
文字が入力される度に、該入力された文字が部分文字列
の先頭文字に該当するか否か判別し、該判別結果に応じ
てこの入力された文字が辞書(記憶手段)に記憶されて
いるか否か検索することで繰り返し入力された部分文字
列を検出するため、文字の入力に合わせて随時文字列の
符号化を行うことができ、また、入力された文字を随時
辞書に登録することができる。これにより、符号化対象
の文字列を記憶しておく必要性を回避され、装置の規模
を小型化するとともに、そのコストを低減することがで
きる。
文字が入力される度に、該入力された文字が部分文字列
の先頭文字に該当するか否か判別し、該判別結果に応じ
てこの入力された文字が辞書(記憶手段)に記憶されて
いるか否か検索することで繰り返し入力された部分文字
列を検出するため、文字の入力に合わせて随時文字列の
符号化を行うことができ、また、入力された文字を随時
辞書に登録することができる。これにより、符号化対象
の文字列を記憶しておく必要性を回避され、装置の規模
を小型化するとともに、そのコストを低減することがで
きる。
【0074】また、先頭文字に該当すると判別した文字
と一致する文字が記憶されている辞書の一致位置を複数
抽出して上記の検索を行うようにすることで、圧縮比が
大きくなるのを抑えることができる。
と一致する文字が記憶されている辞書の一致位置を複数
抽出して上記の検索を行うようにすることで、圧縮比が
大きくなるのを抑えることができる。
【図1】本実施例によるデータ圧縮装置の構成を示すブ
ロック図である。
ロック図である。
【図2】各ポインタが示す辞書メモリ上のアドレス例を
示す図である。
示す図である。
【図3】圧縮符号出力のデータ形式を説明する図であ
る。
る。
【図4】圧縮動作例を具体的に説明するための図であ
る。
る。
【図5】従来のデータ圧縮装置の構成を示すブロック図
である。
である。
100 データ圧縮装置 101 入力レジスタ 102 制御部 103 辞書メモリ 106 比較回路 107 アドレスセレクタ 108 辞書先頭ポインタ 109〜112 一致位置ポインタ 113 入力ポインタ 114 一致長カウンタ 115 出力制御部 116 減算器
Claims (3)
- 【請求項1】 過去に入力された文字列を記憶する記憶
手段を備え、該記憶手段に記憶された文字列を参照し、
繰り返し入力された部分文字列を検出することで文字列
を表すデータ量の圧縮を行うデータ圧縮装置であって、 入力された文字が部分文字列の先頭文字であるか否かを
判別する文字判別手段と、 前記文字判別手段が入力された文字を先頭文字と判別し
たとき、該入力された文字と一致する文字が記憶されて
いる前記記憶手段のアドレスを一致位置として記憶する
一致位置記憶手段と、 前記先頭文字であると前記文字判別手段が判別した文字
に続く文字が入力される度に、該文字の入力に応じて前
記一致位置から順次アドレスを変更しながら前記記憶手
段に記憶されている文字を読み出す読出手段と、 入力された文字と前記記憶手段から読み出された文字が
一致するか否かを比較する比較手段と、 前記文字判別手段が入力された文字を先頭文字と判別し
てから前記比較手段が一致すると比較した回数を計数す
ることで、前記記憶手段に記憶されている部分文字列の
長さを計数する計数手段と、 前記文字判別手段が入力された文字を先頭文字と判別し
た後、前記比較手段の比較結果が不一致となったとき、
前記記憶手段に記憶されている部分文字列を表す符号語
を前記一致位置、前記計数手段が計数した文字数から生
成する符号生成手段と、 を具備したことを特徴とするデータ圧縮装置。 - 【請求項2】 文字が入力される度に、該入力された文
字を前記記憶手段に随時書き込む書込手段を、 さらに具備したことを特徴とする請求項1記載のデータ
圧縮装置。 - 【請求項3】 前記一致位置記憶手段を複数備え、 前記読出手段は、文字が入力される度に、前記複数の一
致位置記憶手段に記憶されているそれぞれの一致位置か
ら順次変更させたアドレスに記憶されている文字を前記
記憶手段から各々読み出し、 前記計数手段は、前記読出手段が前記記憶手段から読み
出した文字のなかで前記比較手段が入力された文字と一
致すると比較した文字があった場合に計数を1度行い、 前記符号生成手段は、前記読出手段が前記記憶手段から
読み出した文字のなかで前記比較手段が入力された文字
と一致すると比較した文字がなかった場合に、前記記憶
手段に記憶されている部分文字列を表す符号語を生成す
る、 ことを特徴とする請求項1、または2記載のデータ圧縮
装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6234795A JPH08265167A (ja) | 1995-03-22 | 1995-03-22 | データ圧縮装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6234795A JPH08265167A (ja) | 1995-03-22 | 1995-03-22 | データ圧縮装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08265167A true JPH08265167A (ja) | 1996-10-11 |
Family
ID=13197510
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6234795A Withdrawn JPH08265167A (ja) | 1995-03-22 | 1995-03-22 | データ圧縮装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08265167A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010154156A (ja) * | 2008-12-25 | 2010-07-08 | Casio Electronics Co Ltd | データ圧縮装置 |
-
1995
- 1995-03-22 JP JP6234795A patent/JPH08265167A/ja not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010154156A (ja) * | 2008-12-25 | 2010-07-08 | Casio Electronics Co Ltd | データ圧縮装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5659737A (en) | Methods and apparatus for data compression that preserves order by using failure greater than and failure less than tokens | |
| US5870036A (en) | Adaptive multiple dictionary data compression | |
| US5883588A (en) | Data compression system and data compression device for improving data compression rate and coding speed | |
| CA2007168C (en) | Variable length string matcher | |
| JP2534465B2 (ja) | デ―タ圧縮装置および方法 | |
| EP0129439B1 (en) | High speed data compression and decompression apparatus and method | |
| US5151697A (en) | Data structure management tagging system | |
| US5936560A (en) | Data compression method and apparatus performing high-speed comparison between data stored in a dictionary window and data to be compressed | |
| US8255398B2 (en) | Compression of sorted value indexes using common prefixes | |
| US7720878B2 (en) | Data compression method and apparatus | |
| US5440753A (en) | Variable length string matcher | |
| US5363098A (en) | Byte aligned data compression | |
| US20010026231A1 (en) | Apparatus for repeatedly compressing a data string and a method thereof | |
| CN111611250B (zh) | 数据存储设备、数据查询方法、装置、服务器及存储介质 | |
| US20020091905A1 (en) | Parallel compression and decompression system and method having multiple parallel compression and decompression engines | |
| EP0688104A2 (en) | Data compression method and apparatus | |
| US10224957B1 (en) | Hash-based data matching enhanced with backward matching for data compression | |
| US7783855B2 (en) | Keymap order compression | |
| US20060106870A1 (en) | Data compression using a nested hierarchy of fixed phrase length dictionaries | |
| JPH0855008A (ja) | システム生成辞書を用いたデータ圧縮のための方法及びシステム | |
| JP2001345710A (ja) | データ圧縮装置および方法 | |
| US10146817B2 (en) | Inverted index and inverted list process for storing and retrieving information | |
| KR20000069633A (ko) | 파일 처리 방법, 데이터 처리 장치 및 기억 매체 | |
| US6654867B2 (en) | Method and system to pre-fetch compressed memory blocks using pointers | |
| CN120238134A (zh) | 数据压缩方法及数据解压方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20020604 |