JPH08116269A - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法

Info

Publication number
JPH08116269A
JPH08116269A JP6251016A JP25101694A JPH08116269A JP H08116269 A JPH08116269 A JP H08116269A JP 6251016 A JP6251016 A JP 6251016A JP 25101694 A JP25101694 A JP 25101694A JP H08116269 A JPH08116269 A JP H08116269A
Authority
JP
Japan
Prior art keywords
data
dictionary
buffer
string
compressed
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.)
Granted
Application number
JP6251016A
Other languages
English (en)
Other versions
JP3242795B2 (ja
Inventor
Hitoshi Ono
均 大野
Yuko Abe
優子 安部
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 JP25101694A priority Critical patent/JP3242795B2/ja
Priority to US08/505,760 priority patent/US5635932A/en
Publication of JPH08116269A publication Critical patent/JPH08116269A/ja
Priority to US08/813,943 priority patent/US5748122A/en
Application granted granted Critical
Publication of JP3242795B2 publication Critical patent/JP3242795B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【目的】 データ処理装置に関し、一致したデータ又は
データ列等を辞書バッファの先頭から単に追い出すこと
なく、辞書データのスライド方法を工夫し、参照辞書の
数を実質的に増やして、重複した辞書データをストック
することなく、追い出された辞書データを有効に利用す
ること、及び、データ圧縮率を高める。 【構成】 辞書データ又は辞書データ列と、入力された
被圧縮データ又は被圧縮データ列とを比較して辞書デー
タ又は辞書データ列と被圧縮データ又は被圧縮データ列
とが一致した場合に、一致した部分の辞書データ又は辞
書データ列を辞書バッファから追い出し、辞書データ又
は辞書データ列が追い出された辞書バッファ12Bのデー
タ書込み範囲を一方向に詰め、データ書込み範囲が詰め
られた辞書バッファ12Bに一致した被圧縮データ又は被
圧縮データ列を新たな辞書データとして書き込む辞書制
御手段14が設けられる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理装置及びデ
ータ処理方法に関するものであり、更に詳しく言えば、
辞書データと入力データとを比較して一致するデータを
符号化し、逆に、符号化された圧縮データを復号化する
装置及び方法の改善に関するものである。
【0002】近年、情報処理装置の高機能化及び多様化
に伴い、膨大な量のデータを格納する磁気ディスク装置
等の記憶装置を使用した装置及びそれらデータを通信回
線を使用して伝送する装置が利用される。このような分
野では、高効率化により利用者のコスト削減を図るべ
く、データ格納に際しては、記憶容量を実質的に増やす
ため、及び、データ転送に際しては、送信時間を短縮す
るために、データを圧縮する装置が使用される。
【0003】現在の辞書ベースによりデータ圧縮をする
方法は、Lempel Abraham氏とZivJacob氏が1977年に
IEEE Transaction on Information Theory に
発表した論文‘A Universal Algorithm for Seq
uential Data Compression’に見られる。これは、通
称Lempel-Ziv符号化のスライド辞書法又はLZ77法
と言われている。
【0004】また、LZ77法に対して2つの大きな変
更を行ったLZSS法がある。これは、Storer 氏とS
zymanski氏が1982年に発表した‘Data Compression
viaTextual Substitution ’に見られ、通称LZS
S(Lempel-Ziv- Storer-Szymanski)法と呼ばれ、
データ検索時の性能改善を行ったものである。しかし、
LZ77法によれば、ひとつの連続したデータ列の符号
化が終わると、次のステップでは符号化したバイト数の
辞書データを辞書バッファの先頭から追い出す方法が採
られる。
【0005】このため、辞書バッファ内に辞書データが
重複して存在したり、過去に一致した実績がある辞書デ
ータでも辞書バッファから必ず追い出される等を原因と
してデータ圧縮率が低下する。そこで、一致したデータ
又はデータ列等を辞書バッファの先頭から単に追い出す
ことなく、辞書データのスライド方法を工夫し、参照辞
書の数を実質的に増やして、重複した辞書データをスト
ックすることなく、追い出された辞書データを有効に利
用すること、及び、データ圧縮率を高めることができる
装置及び方法が望まれている。
【0006】
【従来の技術】図12, 13は、従来例に係るデータ圧縮方
法の説明図である。図12(A)は、データ圧縮装置の構
成図であり、図12(B)はデータ圧縮時の状態図であ
る。図13(A)〜(C)は、その問題点を説明する符号
化処理の状態図をそれぞれ示している。
【0007】例えば、LZ77(スライド辞書法)を応
用したデータ圧縮装置は、図12(A)に示すように、原
データファイル1,データ変換装置2及び圧縮データフ
ァイル3から成る。データ変換装置2は入力バッファ2
A,辞書バッファ2B及び中央処理装置(以下CPUと
いう)2Cを有する。LZ77のデータ構造は、図12
(B)に示すように、符号化済みの入力データ列をある
メモリ範囲により構成し、これを辞書バッファ2Bに格
納する。辞書バッファ2Bに格納された辞書データは、
圧縮データ後の辞書として残されることなく、そのまま
圧縮データファイル3に転送される。初期状態の辞書バ
ッファ2Bには、データ構造にあった値が詰められる場
合もある。
【0008】当該装置の機能は、原データファイル1か
ら読み出された原データが入力データDinとして、デー
タ変換装置2の入力バッファ2Aに書き込まれる。次
に、データ検索をするべくCPU2Cにより、バッファ
2Aに書き込まれたデータと、辞書バッファ2Bに格納
された辞書データとが比較される。この辞書データは、
入力データが利用される。一般にデータ検索は、先に格
納されたデータの先頭位置から行い、辞書バッファ2B
内で、最長一致データ列が探索される。
【0009】また、CPU2Cによりデータ比較された
結果、辞書データと入力データとに一致する部分が検索
されると、この最長一致データは符号化されて圧縮さ
れ、この圧縮データDout が、圧縮データファイル3に
格納される。これにより、以前に符号化した入力データ
列を辞書データとして利用し、該辞書データ列と入力デ
ータ列の中の連続データ部分との最長一致を検索し、そ
の一致情報を符号化することができる(LZ77法)。
【0010】つまり、LZ77法は、あるメモリ範囲に
よって画定される入力バッファ2Aと辞書バッファ2B
内のデータ列で同じデータ部分を探し、この同じデータ
部分を圧縮する方法である。このときの最長一致データ
は、図12(B)に示すように、辞書バッファ2Bと入力
バッファ2A内で、両データが一致し始める一致開始位
置(アドレス又はオフセット)から、連続して両データ
が一致しなくなるまでのデータの最大の長さ(通常はバ
イト数で表す)を以て定義される。辞書データは、入力
バッファ2A内で一致した直後のデータが辞書バッファ
2Bに転送される。
【0011】具体的には、図12(B)において、一致開
始位置が「2」であり、最長一致データ=u,i,m,
a,dが「5」バイトである。入力バッファ2A内に
は、当該一致データ=u,i,m,a,dに連続する次
のデータ=fが存在する。ひとつの連続したデータ列=
u,i,m,a,dの符号化が終わると、図12(C)に
示すように、次のステップとして、一致したデータ列=
5バイトと、次のデータ=1バイト分に相当する6バイ
トの辞書データ=a,n,u,i,m,aが辞書バッフ
ァ2Bの先頭から追い出され、その後、この追い出され
た6バイト分のデータを補充するべく、入力バッファ2
Aから辞書バッファ2Bに辞書データとして、6バイト
のデータ=u,i,m,a,d,fが補充される。この
ように見かけ上、辞書バッファ2Bの窓が移動したよう
に見えることから、スライド辞書法と呼ばれる。
【0012】
【発明が解決しようとする課題】ところで、従来例によ
れば、図12(B)に示すように、ひとつの連続したデー
タ列=u,i,m,a,dの符号化が終わると、次のス
テップとして、一致したデータ列=5バイトと、次のデ
ータ=1バイト分に相当する6バイトの辞書データ=
a,n,u,i,m,aが辞書バッファ2Bの先頭から
追い出される(LZ77法のスライド辞書法)。このた
め、次のような問題がある。
【0013】 辞書バッファ2B内で同じ辞書データ
が重複して存在する可能性があり、データ圧縮率が低下
する。例えば、図13(A)に示すような符号化前のデー
タ検索状態で、データ列「a,b,c」が一致したとす
ると、LZ77法の変形型では、図13(B)に示すよう
に、無条件に辞書バッファ2Bの先頭から一致したデー
タ列のバイト数,例えば、3バイトだけ、辞書データ=
「x,y,z」が追い出される。このため、図13(C)
に示すような符号化後の状態では、辞書バッファ2Bに
データ列「a,b,c」が重複して残ることになる。
【0014】 また、データ圧縮率を上げるために
は、辞書バッファ2Bのメモリ領域を拡張し、検索範囲
を拡張することが考えられる。しかし、一般に、辞書バ
ッファ2Bのサイズを大きくした場合には、多くの検索
時間を要する。また、サイズを広げると、符号化するデ
ータに関し、位置情報のデータ長を拡張する必要があ
る。更に、この方式では、過去に一致した実績がある辞
書データでも辞書バッファ2Bから必ず追い出される。
【0015】本発明は、かかる従来例の問題点に鑑み創
作されたものであり、一致したデータ又はデータ列等を
辞書バッファの先頭から単に追い出すことなく、辞書デ
ータのスライド方法を工夫し、参照辞書の数を実質的に
増やして、重複した辞書データをストックすることな
く、追い出された辞書データを有効に利用すること、及
び、データ圧縮率を高めることが可能となるデータ処理
装置及びデータ処理方法の提供を目的とする。
【0016】
【課題を解決するための手段】図1〜11は、本発明に係
るデータ処理装置及びデータ処理方法の一実施例を示し
ている。第1のデータ処理装置は、図1に示すように、
被圧縮データを利用した辞書データ又は辞書データ列を
格納する辞書バッファを備え、順次、入力される被圧縮
データとを比較して一致する辞書データ又は辞書データ
列を符号化し、逆に、符号化された圧縮データを復号化
するときに、前記辞書データ又は辞書データ列と、入力
された前記被圧縮データ又は被圧縮データ列とを比較し
て前記辞書データ又は辞書データ列と前記被圧縮データ
又は被圧縮データ列とが一致した場合に、前記一致した
部分の辞書データ又は辞書データ列を辞書バッファ12B
から追い出し、前記辞書データ又は辞書データ列が追い
出された辞書バッファ12Bのデータ書込み範囲を一方向
に詰め、前記データ書込み範囲が詰められた辞書バッフ
ァ12Bに前記一致した被圧縮データ又は被圧縮データ列
を新たな辞書データとして書き込む辞書制御手段14が
設けられることを特徴とする。
【0017】本発明の第2のデータ処理装置は、図1に
示すように、前記辞書バッファ12Bから追い出されたデ
ータ又は辞書データ列を記憶する補助辞書バッファ12C
が設けられることを特徴とする。本発明の第3のデータ
処理装置は、図1に示すように、前記被圧縮データの中
で予め調査された出現頻度の高い固定データ又は固定デ
ータ列を辞書データとして書き込んだ固定辞書バッファ
12Dが設けられることを特徴とする。
【0018】本発明の第4のデータ処理装置は、図10
(A)に示すように、前記辞書バッファ12Bが、被圧縮
データを辞書データとして書き込むメモリ領域を非終端
ループ状に接続した環状構造を有することを特徴とす
る。本発明の第1のデータ処理方法は、被圧縮データを
利用した辞書データ又は辞書データ列と、順次、入力さ
れる被圧縮データとを比較して一致するデータ又はデー
タ列を符号化し、逆に、符号化された圧縮データを復号
化するときに、図3の処理フローチャートのステップP
3で前記辞書データ又は辞書データ列と、入力された前
記被圧縮データ又は被圧縮データ列とを比較して、その
後、ステップP4で前記辞書データ又は辞書データ列と
前記被圧縮データ又は被圧縮データ列とが一致した場合
に、ステップP8で前記一致した部分の辞書データ又は
辞書データ列を辞書のデータ書込み範囲から追い出し、
前記データ又はデータ列が追い出された辞書のデータ書
込み範囲を一方向に詰め、前記データ書込み範囲が詰め
られた辞書に前記一致した被圧縮データ又は被圧縮デー
タ列を新たな辞書データとして書き込むことを特徴とす
る。
【0019】本発明の第2のデータ処理方法は、前記辞
書データ又は辞書データ列と、入力された前記被圧縮デ
ータ又は被圧縮データ列とを比較する際に、図7の処理
フローチャートのステップP2で前記辞書バッファ12B
から追い出されたデータ又は辞書データ列を参照するこ
とを特徴とする。本発明の第3のデータ処理方法は、前
記辞書データ又は辞書データ列と、入力された前記被圧
縮データ又は被圧縮データ列とを比較する際に、図9
(B)の処理フローチャートのステップP3で前記被圧
縮データの中で予め調査された出現頻度の高い固定デー
タ又は固定データ列を参照することを特徴とする。
【0020】本発明の第4のデータ処理方法は、前記辞
書データ又は辞書データ列と、入力された前記被圧縮デ
ータ又は被圧縮データ列とを比較する際に、図11(B)
に示すように、前記辞書データ又は辞書データ列が書き
込まれた辞書用のメモリ領域に連続する入力用のメモリ
領域に書き込まれた被圧縮データ又は被圧縮データ列を
辞書データ又は辞書データ列として見なすことを特徴と
し、上記目的を達成する。
【0021】
【作用】次に、図1を参照しながら本発明の第1のデー
タ処理装置の動作を説明をする。図1において、あるメ
モリ範囲で被圧縮データが入力バッファ12Aに入力さ
れ、辞書データが辞書バッファ12Bに書き込まれると、
この辞書データ又は辞書データ列と、入力された被圧縮
データ又は被圧縮データ列とが辞書制御手段14により
比較され、その結果、辞書データ又は辞書データ列と被
圧縮データ又は被圧縮データ列とが一致した場合には、
一致した部分の辞書データ又は辞書データ列が辞書制御
手段14により、辞書バッファ12Bから追い出される。
【0022】この辞書データ又は辞書データ列が追い出
された辞書バッファ12Bのデータ書込み範囲は、一方向
(先頭方向)に詰められ、このデータ書込み範囲が詰め
られた辞書バッファ12Bに、入力バッファ12Aからの一
致した被圧縮データ又は被圧縮データ列が新たな辞書デ
ータとして書き込まれる(第1のデータ処理方法)。こ
のため、一致したデータ又はデータ列に重複した辞書デ
ータ又は辞書データ列が、辞書バッファ12Bのデータ書
込み範囲から外部等に追い出されるため、従来例のよう
に、当該一致データに関係しないデータを単に辞書バッ
ファ12Bの先頭から追い出すことが無くなる。すなわ
ち、重複した辞書データを辞書バッファ12Bに格納する
ことが無くなる。
【0023】これにより、常に、異なった種類の辞書デ
ータを辞書バッファ12Bに格納することができ、従来例
に比べて辞書バッファ12Bの冗長性が少なくなり、デー
タ圧縮率を高めることが可能となる。本発明の第2のデ
ータ処理装置によれば、図1に示すように補助辞書バッ
ファ12Cが設けられ、辞書バッファ12Bから追い出され
たデータ又は辞書データ列が当該バッファ12Cに記憶さ
れる。
【0024】このため、辞書バッファ12Bのメモリ容量
を変えずに、過去に一致した実績がある辞書データ又は
辞書データ列を補助辞書バッファ12Cに記憶すること
で、参照できる辞書の数を実質的に増やすことができ
る。辞書バッファ12B内に辞書データが無い場合に補助
辞書バッファ12Cを参照できる。すなわち、図7の処理
フローチャートに示すように、ステップP2で辞書バッ
ファ12Bから追い出されたデータ又は辞書データ列を参
照しながら、辞書データ又は辞書データ列と、入力され
た被圧縮データ又は被圧縮データ列とを比較することが
でき、原データのまま不一致として符号化されていたデ
ータを圧縮する確率を向上させることが可能となる(第
2のデータ処理方法)。
【0025】これにより、辞書バッファ12Bから追い出
された辞書データを有効に利用することができ、辞書バ
ッファ12B及び補助辞書バッファ12Cを併用した移動窓
によるデータ圧縮をすることが可能となる。本発明の第
3のデータ処理装置によれば、図1に示すように、固定
辞書バッファ12Dが設けられ、被圧縮データの中で予め
調査された出現頻度の高い固定データ又は固定データ列
が辞書データとして当該バッファ12Dに書き込まれる。
【0026】このため、固定辞書バッファ12D内に出現
頻度の高いとして登録された辞書データと、被圧縮デー
タの中の固定データ又は固定データ列とが比較されるこ
とから、データ検索速度の高速化を図ることが可能とな
る。すなわち、図9(B)の処理フローチャートに示す
ように、ステップP3で被圧縮データの中で予め調査さ
れた出現頻度の高い固定データ又は固定データ列を参照
しながら、辞書データ又は辞書データ列と、入力された
被圧縮データ又は被圧縮データ列とを比較することがで
きる(本発明の第3のデータ処理方法)。
【0027】これにより、データ検索が従来例に比べて
早くなることから、データ圧縮処理の高速化を図ること
が可能となる。本発明の第4のデータ処理装置によれ
ば、図10(A)に示すような環状構造を有する辞書バッ
ファ12Bが設けられる。このため、非終端ループ状に接
続されたメモリ領域に、以前に符号化した入力データ列
を辞書データとして書込むことができ、参照できる辞書
の数を実質的に増やすことができる。
【0028】これを利用して、入力データ列の中の連続
した部分との最長一致を検索し、その一致情報を符号化
することができ、第1の装置の辞書バッファ12Bを拡張
した移動窓によりデータを圧縮することが可能となる。
本発明の第4のデータ処理方法によれば、図11(B)に
示すように、辞書用のメモリ領域に連続する入力用のメ
モリ領域に書き込まれた被圧縮データ又は被圧縮データ
列が辞書データ又は辞書データ列として見なされる。
【0029】このため、参照できる辞書データの数を実
質的に増やすことができ、辞書データ又は辞書データ列
を入力用のメモリ領域に拡張して、一致するデータ又は
データ列を検索することができる。これにより、入力用
のメモリ領域の被圧縮データ又は被圧縮データ列同士を
比較することが可能となり、データ検索が従来例に比べ
て早くなることから、データ圧縮処理の高速化を図るこ
とが可能となる。
【0030】
【実施例】次に、図を参照しながら本発明の各実施例に
ついて説明をする。図1〜11は本発明の実施例に係るデ
ータ処理装置及びデータ処理方法を説明する図である。 (1)第1の実施例の説明 図1は、本発明の各実施例に係るデータ処理装置の構成
図であり、図2は第1の実施例に係るデータ圧縮時の辞
書バッファの説明図である。図3は、データの圧縮フロ
ーチャートであり、図4は、各実施例に係るデータ圧縮
時の符号化処理の説明図である。図5はデータの復元フ
ローチャートをそれぞれ示している。
【0031】例えば、本発明の第1〜第3の装置を組み
合わせたデータ圧縮又は復元装置は、図1(A)に示す
ように、原データファイル11,メモリ12,EPRO
M13,辞書制御手段(以下CPUという)14,キー
ボード15,ディスプレイ16及び圧縮データファイル
17から成る。すなわち、原データファイル11は圧縮
時又は復元時の原データを格納するメモリである。当該
ファイル11には磁気ディスク装置や半導体メモリ装置
を用いる。メモリ12は圧縮時に、辞書データ及び被圧
縮データを一時記憶するものである。例えば、メモリ1
2は入力バッファ12A,辞書バッファ12B,補助辞書バ
ッファ12C及び固定辞書バッファ12Dから成る。メモリ
12には随時書込み/読出し可能なメモリを用いる。
【0032】入力バッファ12Aは被圧縮データを一時記
憶する。辞書バッファ12Bは、被圧縮データを利用した
辞書データを記憶する。補助辞書バッファ(以下一致辞
書バッファともいう)12Cは辞書バッファ12Bから追い
出されたデータ又は辞書データ列を記憶するものであ
る。一致辞書バッファ12Cは、本発明の第2の実施例に
おいて使用する(第2の装置)。
【0033】固定辞書バッファ12Dは、被圧縮データの
中で予め調査された出現頻度の高い固定データ又は固定
データ列を辞書データとして書き込むものである。固定
辞書バッファ12Dは本発明の第3の実施例で使用する
(第3の装置)。なお、メモリ12はデータ復元時に
は、辞書データ,辞書データ列又は被復元データ,被復
元データ列を一時記憶する。
【0034】EPROM13は、各実施例で使用する制
御アルゴリズムを格納するプログラム可能な読出し専用
メモリである。例えば、第1の実施例では図3に示すよ
うなデータ圧縮アルゴリズムや図5に示すようなデータ
復元アルゴリズムが格納される。第2の実施例では、図
7に示すような一致辞書の作成アルゴリズムや図8に示
すようなデータ復元アルゴリズムが格納される。第3の
実施例では、図9(B)に示すようなデータ圧縮アルゴ
リズムや図9(C)に示すようなデータ復元アルゴリズ
ムが格納される。この制御アルゴリズムの具体的な内容
については各実施例において説明をする。
【0035】CPU14は辞書制御手段の一例であり、
入力バッファ12A,辞書バッファ12B,補助辞書バッフ
ァ12C及び固定辞書バッファ12Dの入出力を制御する。
例えば、CPU14は辞書バッファ12B内の辞書データ
又は辞書データ列と、入力バッファ12Aに順次,入力さ
れた被圧縮データ又は被圧縮データ列とを比較する。こ
の結果、CPU14は、辞書データ又は辞書データ列と
被圧縮データ又は被圧縮データ列とが一致した場合に、
一致した部分の辞書データ又は辞書データ列を辞書バッ
ファ12Bから追い出す。
【0036】その後、CPU14は、辞書データ又は辞
書データ列が追い出された辞書バッファ12Bのデータ書
込み範囲を一方向に詰め、データ書込み範囲が詰められ
た辞書バッファ12Bに一致した被圧縮データ又は被圧縮
データ列を新たな辞書データとして書き込む。キーボー
ド15は出現頻度の高い固定データ等を制御文にして入
力するツールである。ディスプレイ16はキーボード1
5やCPU14の入出力を補助するツールである。圧縮
データファイル17は、圧縮時又は復元時の圧縮データ
を格納するメモリである。当該ファイル17にはファイ
ル11と同様な磁気ディスク装置や半導体メモリ装置を
用いる。
【0037】これにより、当該装置が構成され、被圧縮
データを利用した辞書データ又は辞書データ列と、順
次、入力される被圧縮データとを比較して一致するデー
タ又はデータ列を符号化し、逆に、符号化された圧縮デ
ータを復号化することができる。次に、本発明の第1の
実施例に係るデータ圧縮方法について、図3の処理フロ
ーチャートを参照しながら当該装置の動作を説明する。
図3は、本発明の第1の実施例に係るデータの圧縮フロ
ーチャートであり、図1に示したEPROM13に格納
された制御アルゴリズムを成す。
【0038】例えば、被圧縮データを利用した辞書デー
タ又は辞書データ列と、順次、入力される被圧縮データ
とを比較して一致するデータ又はデータ列を符号化する
場合、図3のフローチャートにおいて、まず、ステップ
P1で辞書バッファ12Bを初期化する。この際に初期化
によって、辞書バッファ12B内部が、データ=「零」の
状態となる。
【0039】次に、ステップP2で原データ列をファイ
ル11から入力バッファ12Aに読み込む。この際に、符
号化されていないデータを入力バッファ12Aの先頭位置
に移動する。例えば、図2(A)に示すように、数バイ
トの被圧縮データDin=a,b,c,x,y,z,r,
e,w…が入力バッファ12Aに入力される。入力バッフ
ァ12Aからの被圧縮データDinは辞書バッファ12Bにシ
フトされ、その結果、nバイトの辞書データ=x,y,
z,d,g,k,g…a,b,c,uが辞書バッファ12
Bに書き込まれる。
【0040】次いで、ステップP3で辞書バッファ12B
内に一致するデータ列が有るか否かを検索する。例え
ば、CPU14により辞書バッファ12B内に格納された
辞書データ列=a,b,cと、入力バッファ12Aの被圧
縮データ列=a,b,cとが比較される。その後、ステ
ップP4で辞書データ列と被圧縮データ列とが一致した
か否かを判断する。この際に、一致データ列が有る場合
(YES)には、ステップP5に移行する。また、一致デ
ータ列が無い場合(NO)には、ステップP6に移行し
て原データをそのまま符号化し、ステップP7に移行す
る。
【0041】ステップP4では辞書データ列=被圧縮デ
ータ列=a,b,cとなることから、一致データ列が有
ると判断され、ステップP5で一致情報を符号化する。
具体的には、一致データの位置情報,その長さ情報等を
符号化する。この際の符号化については、図4において
説明をする。その後、ステップP7では符号化した圧縮
データをファイル17に格納する。
【0042】次いで、ステップP8で符号化した入力デ
ータ列を辞書バッファ12Bに移動する。この際に、CP
U14は、図2(B)に示すように、一致した部分(重
複する部分)の辞書データ列=a,b,cを辞書バッフ
ァ12Bのデータ書込み範囲から追い出し、このデータ列
が追い出された辞書バッファ12Bのデータ書込み範囲を
先頭方向に詰める。具体的には、図2(A)において、
辞書バッファ12Bの格納位置0から右にあるデータ列が
左にシフトされる。
【0043】また、CPU14は、図2(B)に示すよ
うに、入力バッファ12Aからデータ書込み範囲が詰めら
れた辞書バッファ12Bに、一致した被圧縮データ列=
a,b,cを新たな辞書データとして書き込む。このと
き、従来例と異なり、辞書バッファ12Bの先頭位置に格
納されたx,y,zは、図2(C)に示すように、その
まま辞書データとして残留し、入力バッファ12Aからの
新たな辞書データとして被圧縮データ列=a,b,cが
辞書バッファ12Bの最後部に格納される。この結果、先
頭データ列=x,y,zが追い出されずに済むことにな
り、次の段階の辞書データとして使用される。
【0044】その後、ステップP9で原データを全て圧
縮したか否かを判断する。この際に、原データを全て圧
縮した場合(YES)には、第1の実施例に係る制御アル
ゴリズムを終了し、原データを全て圧縮していない場合
(NO)には、ステップP2に戻って、原データ列をフ
ァイル11から入力バッファ12Aに読み込み、以下のス
テップを継続する。
【0045】これにより、被圧縮データを利用した辞書
データ列と、順次、入力される被圧縮データとを比較し
て一致するデータ列を符号化することができる。ここ
で、具体的な符号化の方法を説明する。本発明の実施例
では、圧縮率を上げるために、LZSS法を改良する。
なお、データ圧縮率は〔原データ/圧縮データ〕×100
%で表される。
【0046】本発明の第1の実施例で検索された一致デ
ータを図4(A)に示すように圧縮データに変換する際
に、検索したデータの位置情報及び一致したデータの長
さを導入する。一般に、辞書バッファ12Bの最後部と、
入力バッファ12Aの先頭位置近傍でデータが一致する場
合(以下近傍一致という)が多いことを利用して、圧縮
データの先頭部に識別子を設け、データ検索した位置情
報を付加する。この際の位置情報には、短い位置情報値
として「0」が書き込まれ、長い位置情報値として
「1」が書き込まれる。
【0047】例えば、図4(A)は、辞書バッファ12B
の大きさが2KBの場合の位置情報を圧縮データに付加
したデータフォーマットを示している。図4(A)にお
いて、本発明の実施例では、データ長が7ビット(0〜
63)の場合に、短い位置情報値として「0」が書き込
まれ、データ長が12ビット(0〜2047)の場合
に、長い位置情報値として「1」が書き込まれる。な
お、実際には、近傍一致をどの範囲に設定するか、ある
いは、複数の位置情報の刻みを設けるなど、被圧縮デー
タの種類に最も適した調整を行う必要がある。
【0048】また、一致したバイト数を符号化する場合
に、出現頻度の高い符号を短い長さのビットで表す。こ
れは、一般に短いビット長さでの一致データが多いこと
に着目して、短い一致データ数に対して短い符号を割当
てることにより、データの長さについての符号化を考慮
したものである。このためには、図4(B)に示すよう
な符号木を用いる。図4(B)の符号木において、短い
位置情報値に「0」が書き込まれる場合として、=
「0,0」や=「0,1」が対象となり、これは図4
(C)に示すように、2バイト一致や3バイト一致を意
味する。図4(C)は符号木から構成される圧縮データ
の長さと対応ビット列の関係を示したものである。
【0049】また、図4(B)において、長い位置情報
値に「1」が書き込まれる場合として、=「1,0,
0」,=「1,0,1」,=1,1,0,0」,
=「1,1,0,1」,=「1,1,1,0,0」及
び=「1,1,1,0,1」が対象となり、これは図
4(C)に示すように、それぞれ4〜9バイト一致をそ
れぞれ意味する。
【0050】この手法は、出現確率の高いデータに対し
て、少ないビット数を割当てることにより、出現確率の
低いデータに異なるビット数を割当てた場合でも、一意
に復号化できるShannon- Fano 符号化又はHuffman符
号化として知られた方法である。なお、何バイト一致が
多いか否かは、被圧縮データの種類によって異なるので
調整を行う必要がある。
【0051】次に、本発明の第1の実施例に係る圧縮デ
ータの復元処理について説明をする。例えば、圧縮デー
タを利用した辞書データ又は辞書データ列と、順次、入
力される被復号データとを比較して一致するデータ又は
データ列を復号化する場合、図5の復号フローチャート
において、まず、ステップP1で辞書バッファ12Bを初
期化する。次に、ステップP2で圧縮データをファイル
17から入力バッファ12Aに読み込む。この際に、復号
化されていないデータを入力バッファ12Aの先頭位置に
移動する。
【0052】次いで、ステップP3で復号化情報を解析
し、原データに戻す。例えば、CPU14により辞書バ
ッファ12B内に格納された辞書データ列と、入力バッフ
ァ12Aの被復号データ列とが比較される。その後、ステ
ップP4では復号化した原データをファイル11に格納
する。次に、ステップP5で復号化した入力データ列を
辞書バッファ12Bに移動する。この際に、CPU14
は、一致した部分(重複する部分)の辞書データ列を辞
書バッファ12Bのデータ書込み範囲から追い出し、この
データ列が追い出された辞書バッファ12Bのデータ書込
み範囲を先頭方向に詰める。
【0053】また、CPU14は、入力バッファ12Aか
らデータ書込み範囲が詰められた辞書バッファ12Bに、
一致した被復号データ列を新たな辞書データとして書き
込む。その後、ステップP6で圧縮データを全て復元し
たか否かを判断する。この際に、圧縮データを全て圧縮
した場合(YES)には、制御アルゴリズムを終了し、圧
縮データを全て圧縮していない場合(NO)には、ステ
ップP2に戻って、被復号データ列をファイル17から
入力バッファ12Aに読み込み、以下のステップを継続す
る。
【0054】これにより、被復元データを利用した辞書
データ列と、順次、入力される被復元データとを比較し
て一致するデータ列を復号化することができる。このよ
うにして、本発明の第1の実施例に係るデータ処理装置
によれば、図1に示すように、辞書データ列と被圧縮デ
ータ列とを比較して両データ列が一致した場合に、その
一致した部分の辞書データ列を辞書バッファ12Bから追
い出し、データ書込み範囲を一方向に詰めた辞書バッフ
ァ12Bに一致した被圧縮データ列を新たな辞書データと
して書き込むCPU14が設けられる。
【0055】このため、入力データ列に重複した辞書バ
ッファ12B内の辞書データ列が、そのデータ書込み範囲
から外部等に追い出される。すなわち、図2(A)に示
したような符号化前のデータ検索状態で、データ列
「a,b,c」が一致したとすると、本発明の実施例で
は、図2(B)に示すように、辞書バッファ12Bのデー
タ書込み範囲の辞書データ=「a,b,c」=3バイト
が追い出される。
【0056】この結果、従来例のように、当該一致デー
タに関係しない辞書バッファ12Bの先頭位置に格納され
たデータ「x,y,z」を単に辞書バッファ12Bから追
い出すことが無くなる。これにより、図2(C)に示す
ような符号化後の状態では、辞書バッファ12Bにデータ
列「a,b,c」が重複して残ることが無くなる。一般
に、辞書データを増加すると、辞書バッファ自体の大き
さが増加し、圧縮率は低下するが、本発明の実施例で
は、辞書データの数は実質増えても、辞書バッファ自体
のメモリ容量、及び、圧縮後の符号ビットを増加しない
ところに大きな特長がある。
【0057】また、本発明の実施例では、常に、異なっ
た種類の辞書データを辞書バッファ12Bに格納すること
ができ、従来例に比べて辞書バッファ12Bの冗長性が少
なくなり、データ圧縮率を高めることが可能となる。 (2)第2の実施例の説明 図6は、本発明の第2の実施例に係るデータ処理装置の
説明図であり、図6(A)は、その一致辞書バッファの
説明図である。図6(B)は、一致データの符号化の説
明図であり、図6(C)は、一致データの検索範囲の説
明図をそれぞれ示している。
【0058】第2の実施例では第1の実施例と異なり、
辞書データ列と被圧縮データ列とを比較する際に、辞書
バッファ12Bから追い出された辞書データ列を参照する
ものである。すなわち、本発明の第2のデータ処理装置
では、図1に示したように、辞書バッファ12Bから追い
出されたデータ又は辞書データ列を記憶する一致辞書バ
ッファ12Cを使用する。一致辞書バッファ12Cは、例え
ば、図6(A)に示すように、あるメモリ容量を有する
環状構造のバッファを用いる。環状構造のバッファにつ
いては、本発明の第4の実施例において詳述する。
【0059】この一致辞書バッファ12Cは、先に辞書バ
ッファ12Bから追い出された古いデータ上に、新しく辞
書バッファ12Bから追い出されたデータを,順次、上書
きするものである。このような方式に対して、参照頻度
をカウントし、参照頻度の低いものを上書きしても良
い。これにより、処理速度を犠牲にしても圧縮率を上げ
たい場合等に効果的である。
【0060】一致辞書バッファ12Cには参照ポインタ及
び格納ポインタが設定される。参照ポインタは、一致辞
書バッファ12Cを参照する位置を示す。格納ポインタは
辞書バッファ12Bから追い出された現在の辞書データを
格納する位置を示す。参照ポインタは格納ポインタの前
に設置する。これは、辞書バッファ12Bから追い出され
た最も新しい辞書データを検索するためである。
【0061】一致辞書バッファ12Cは辞書バッファ12B
よりもメモリ容量を大きめに採り、一致辞書バッファ12
Cの辞書データと辞書バッファ12Bの辞書データとが、
重複しないようにする。これは、辞書バッファ12Bから
追い出された一致データ列が、入力バッファ12Aから移
動してくるので、一致したデータ列が直ぐには辞書バッ
ファ12Bから無くならないからである。
【0062】なお、図6(A)において、網かけ部分
は、一致辞書バッファ12C内で辞書データを検索する範
囲を示している。この検索範囲は被圧縮データの符号化
によって制限されるが、本発明の実施例では、2バイト
一致が最も多い被圧縮データファイルを想定している。
従って、一致辞書バッファ12Cは2バイト一致のデータ
のみを格納する構造を採っている。
【0063】図6(B)は、一致辞書バッファ12Cの大
きさが2KBの場合の位置情報を圧縮データに付加した
データフォーマットを示している。図6(B)におい
て、本発明の第1の実施例と同様に、データ長が12ビ
ット(0〜2047)の場合に、長い位置情報値として
「1」が書き込まれる。なお、実際には、近傍一致をど
の範囲に設定するか、あるいは、複数の位置情報の刻み
を設けるなど、被圧縮データの種類に最も適した調整を
行う必要がある。この条件の中で、符号ビットを増加さ
せずに、一致辞書バッファ12Cとの対応付けをしたの
が、本発明の特徴である。
【0064】具体的には、図6(B)に示すように長い
位置情報の中で、短い位置情報の値、この場合、0〜1
27と重複している部分を割当てている。つまり、0〜
127の値は、短い位置情報で符号化されるため、長い
位置情報では出現しない。このことに着目したものであ
る。例えば、一致辞書の1番目には、1ビットの識別子
=「1」と、11ビットの符号語「000 0000
0000」とが書き込まれ、一致辞書の2番目には、1
ビットの識別子=「1」と、11ビットの符号語「00
0 0000 0001」とが書き込まれ、同様に、一
致辞書の3番目には、1ビットの識別子=「1」と、1
1ビットの符号語「000 00000010」とが書
き込まれる。
【0065】具体例としては、先に説明した図12(C)
の符号化後の入力バッファ2Aのデータ「r,e」と図
6(A)の一致辞書バッファ12Cの2番目の「r,e」
とが一致した場合、符号語「1 000 0000 0
001」のビット列が生成されることになる。この場合
に、長さは固定としているため、長さの符号は生成しな
いものとする。つまり、全体の識別ビットも含めて、合
計13ビットとなるため、原データのまま不一致となっ
た場合の2バイト(16ビット)よりも3ビット圧縮さ
れる。
【0066】このように図6(B)の例では、一致辞書
バッファ12Cは128個分の辞書データを持つことがで
きる。なお、可能な限り、辞書バッファ12Bからはみ出
した辞書データを検索可能とするために、一致辞書バッ
ファ12Cの大きさを,例えば、図6(C)に示すよう
に、256ビット分持つ。これを検索する場合、現在の
格納ポイントから常に、128ビットより前で検索す
る。
【0067】これにより、実質的に辞書データ数が増加
し、一致辞書バッファ12Cを併用した移動窓によるデー
タ圧縮をすることができる。次に、本発明の第2の実施
例に係るデータ処理方法について、図7の処理フローチ
ャートを参照しながら当該装置の動作を説明する。図7
は、本発明の第2の実施例に係る一致辞書の生成フロー
チャートであり、図1に示したEPROM13に格納さ
れた制御アルゴリズムを成す。
【0068】例えば、辞書バッファ12Bから追い出され
た辞書データを利用して、一致辞書を作成する場合、図
7のフローチャートにおいて、まず、ステップP1で辞
書バッファ12B内に一致するデータ部分が有ったか否か
を判断する。この際に、一致部分が有った場合(YES)
には、ステップP3に移行する。また、一致部分が無か
った場合(NO)には、ステップP2に移行して一致辞
書バッファ12C内を検索し、その後、一致辞書の生成を
行わずに終了する。
【0069】ステップP1で一致部分が有った場合(Y
ES)には、ステップP3で2バイト一致か否か判断す
る。この際に、2バイト一致の場合(YES)には、ステ
ップP4に移行する。また、2バイト一致ではない場合
(NO)には、一致辞書の生成を行わずに終了する。ス
テップP3で2バイト一致の場合(YES)には、ステッ
プP4で一致辞書バッファ12C内に同じ辞書データが有
るか否か判断する。この際に、同じ辞書データが有る場
合(YES)には、一致辞書の生成を行わずに終了する。
【0070】ステップP4で一致辞書バッファ12C内に
同じ辞書データが無い場合(NO)には、ステップP5
に移行して、辞書バッファ12Bから追い出された辞書デ
ータを一致辞書バッファ12Cに格納する。その後、ステ
ップP6に移行して格納ポインタを次のビットに進め、
終了をする。これにより、辞書バッファ12Bから追い出
された辞書データを利用して、一致辞書を作成すること
ができ、辞書データ列と、入力された被圧縮データ列と
を比較する際に、辞書バッファ12Bから追い出された辞
書データ列を参照することができる。
【0071】次に、本発明の第2の実施例に係る圧縮デ
ータの復元処理について説明をする。図8は、本発明の
第2の実施例に係る圧縮データの復元フローチャートで
あり、図1に示したEPROM13に格納された制御ア
ルゴリズムを成す。例えば、一致辞書バッファ12Cの辞
書データを参照しながら、被復号データを復号化する場
合、まず、ステップP1で一致辞書バッファ12C内に参
照符号が有るか否かを判断する。この際に、参照符号が
有った場合(YES)には、ステップP2に移行して一致
辞書バッファ12C内を参照し被復元データを復号化す
る。その後、一致辞書の生成を行わずに終了する。
【0072】ステップP1で参照符号が無かった場合
(NO)には、ステップP3で2バイト一致か否か判断
する。この際に、2バイト一致の場合(YES)には、ス
テップP4に移行する。また、2バイト一致ではない場
合(NO)には、ステップP7に移行して一致辞書の生
成を行わずに通常の符号化処理を実行し、その後、終了
する。
【0073】ステップP3で2バイト一致の場合(YE
S)には、ステップP4で一致辞書バッファ12C内に同
じ辞書データが有るか否か判断する。この際に、同じ辞
書データが有る場合(YES)には、ステップP7に移行
して一致辞書の生成を行わずに通常の符号化処理を実行
し、その後、終了する。ステップP4で一致辞書バッフ
ァ12C内に同じ辞書データが無い場合(NO)には、ス
テップP5に移行して、辞書バッファ12Bから追い出さ
れた辞書データを一致辞書バッファ12Cに格納する。そ
の後、ステップP6に移行して格納ポインタを次のビッ
トに進め、さらに、ステップP7に移行して一致辞書の
生成を行わずに通常の符号化処理を実行し、その後、終
了する。
【0074】これにより、辞書バッファ12Bから追い出
された辞書データを利用して、一致辞書を作成すること
ができ、一致辞書バッファ12Cの辞書データを参照しな
がら、被復号データを復号化することができる。このよ
うにして、本発明の第2の実施例に係るデータ処理装置
によれば、図1に示したような一致辞書バッファ12Cが
設けられ、辞書バッファ12Bから追い出された辞書デー
タ列が当該バッファ12Cに記憶される。
【0075】このため、辞書バッファ12Bのメモリ容量
を変えずに、過去に一致した実績がある辞書データ又は
辞書データ列を一致辞書バッファ12Cに記憶すること
で、参照できる辞書の数を実質的に増やすことができ
る。また、本発明の実施例では、辞書の数は実質増えて
も、符号化して残す辞書自体の大きさ及び、圧縮後の符
号ビットが増えない。
【0076】辞書バッファ12Bからはみ出した一致デー
タ列は、補助辞書として一致辞書バッファ12Cを参照す
ることができる。すなわち、図7の処理フローチャート
に示すように、ステップP2で辞書バッファ12Bから追
い出された辞書データ列を参照しながら、辞書データ列
と、入力された被圧縮データ列とを比較することがで
き、原データのまま不一致として符号化されていたデー
タの圧縮率を向上させることが可能となる。
【0077】これにより、辞書バッファ12Bから追い出
された辞書データを有効に利用することができ、辞書バ
ッファ12B及び補助辞書バッファ12Cを併用した移動窓
によるデータ圧縮をすることが可能となる。また、過去
に一致した実績がある辞書データを利用してデータ圧縮
をすることができ、従来例に比べてデータ圧縮率を高め
ることが可能となる。
【0078】(3)第3の実施例の説明 図9は、本発明の第3の実施例に係る固定辞書を利用し
たデータ処理方法の説明図であり、図9(A)は、その
固定辞書バッファの内容図である。図9(B)は、デー
タ圧縮時のフローチャートであり、図9(C)は、デー
タ復元時のフローチャートをそれぞれ示している。
【0079】第3の実施例では第1,第2の実施例と異
なり、辞書データ列と被圧縮データ列とを比較する際
に、被圧縮データの中で予め調査された出現頻度の高い
固定データ又は固定データ列を参照するものである。す
なわち、本発明の第3のデータ処理装置では、図1に示
したように、被圧縮データの中で予め調査された出現頻
度の高い固定データ又は固定データ列を記憶する固定辞
書バッファ12Dを使用する。固定辞書バッファ12Dは、
例えば、図9(A)に示すように、出現頻度の高い文字
や記号,例えば、ローマ字の「i,f」、算術記号
「+,=」及び記述記号「),)」等の固定データを固
定辞書として格納するメモリである。
【0080】固定辞書は、EPROM13内の圧縮及び
伸長制御プログラム内に持つ方法と、符号化された圧縮
データに付加する方法と2通りを採る。なお、予め、固
定辞書を持つためには、データの種類及び出現頻度の高
いデータ列を調査する必要がある。この固定データの種
類を判断する場合には、ファイルの拡張子から判断する
方法や使用者がキーボード15を介して指定する方法を
採る。
【0081】出現頻度の高いデータ列は、例えば、2バ
イト一致ではどのパターンが多いか否か等を補助ツール
により、事前に、調べて置く。この場合に、出現頻度に
関係なく無条件に格納する方法に比べて、出現頻度が高
い一致バイト数のみを固定する方法が、使用メモリ及び
処理速度の面から現実的である。なお、この固定辞書作
成ツールをデータ圧縮ツールのプリプロセッサとして連
結しても良い。
【0082】次に、本発明の第3の実施例に係るデータ
処理方法について、図9(B)の圧縮時の固定辞書参照
フローチャートを説明する。例えば、固定辞書バッファ
12Dの固定辞書データを利用して、データ圧縮する場
合、図9(B)のフローチャートにおいて、まず、ステ
ップP1で辞書バッファ12B内の辞書データを検索す
る。
【0083】次に、ステップP2で、一致するデータ部
分が有るか否かを判断する。この際に、一致部分が有っ
た場合(YES)には、固定辞書バッファ12Dを参照せず
に、辞書バッファ12Bの辞書データを利用してデータ圧
縮をする。ステップP2で、一致するデータ部分が無い
場合(NO)には、ステップP3に移行して、固定辞書
バッファ12D内を検索する。これにより、固定辞書バッ
ファ12Dの固定辞書データを利用して、データ圧縮する
ことができる。
【0084】次に、本発明の第2の実施例に係る圧縮デ
ータの復元処理について、復元時の固定辞書参照フロー
チャートを説明する。例えば、固定辞書バッファ12Dの
固定データを参照しながら、被復号データを復号化する
場合、図9(C)のフローチャートにおいて、まず、ス
テップP1で固定辞書バッファ12Dの固定符号が入力バ
ッファ12A内に有るか否かを判断する。この際に、入力
バッファ12A内に固定符号が有った場合(YES)には、
ステップP3に移行して固定辞書バッファ12D内を検索
し被復元データを復号化、その後、終了する。
【0085】ステップP1で固定符号が無かった場合
(NO)には、ステップP2で辞書バッファ12B内で符
号化処理を実行し、その後、終了する。これにより、固
定辞書バッファ12Dの固定データを参照しながら、被復
号データを復号化することができる。このようにして、
本発明の第3の実施例に係るデータ処理装置によれば、
図9(A)に示すような固定辞書バッファ12Dが設けら
れ、被圧縮データの中で予め調査された出現頻度の高い
固定データが辞書データとして当該バッファ12Dに書き
込まれる。
【0086】このため、固定辞書バッファ12D内に出現
頻度の高いとして登録された辞書データと、被圧縮デー
タの中の固定データとが比較されることから、データ検
索速度の高速化を図ることが可能となる。この固定辞書
バッファ12Dを辞書バッファ12Bと併用することで、辞
書の数は実質増えるが、符号化して残す辞書自体の大き
さ、及び、圧縮後の符号ビットが増えない。
【0087】すなわち、図9(B)の処理フローチャー
トに示すように、ステップP3で被圧縮データの中で予
め調査された出現頻度の高い固定データを参照しなが
ら、辞書データと被圧縮データとを比較することができ
る。これにより、データ検索が従来例に比べて早くなる
ことから、データ圧縮処理の高速化を図ることが可能と
なる。なお、第2の実施例に比べて、第3の実施例では
一致辞書バッファ12Cの生成過程が不要となるため、デ
ータ処理速度が早くなる。本発明の実施例は被圧縮デー
タの種類が特定される用途に適している。
【0088】(4)第4の実施例の説明 図10は、本発明の第4の実施例に係るデータ処理装置の
説明図であり、図10(A)は、その環状辞書バッファの
構成図である。図10(B),(C)は、その環状辞書バ
ッファでの検索状態図をそれぞれ示している。第4の実
施例では第1,第3の実施例と異なり、辞書バッファ12
Bが環状構造を有する。
【0089】本発明の第4のデータ処理装置では、図10
(A)に示すような環状辞書バッファ12Eが設けられ
る。第1の実施例の辞書バッファ12Bと異なるのは、第
4の実施例の環状辞書バッファ12Eでは、被圧縮データ
を辞書データとして書き込むメモリ領域を非終端ループ
状に接続する点である。このようにすると、実質的な辞
書データの数を増やすことができ、環状辞書バッファ12
Eを利用して入力バッファ12A内の連続したデータ列の
一致を検索することができる。これにより、第1の実施
例の辞書バッファ12Bを拡張した移動窓によりデータ圧
縮をすることが可能となる。
【0090】すなわち、図10(B)に示すような環状辞
書バッファ12E内の辞書データを利用して入力バッファ
12Aに入力される被圧縮データを符号化する場合、ま
ず、原データ列を図1に説明したようなファイル11か
ら入力バッファ12Aに読み込む。この際に、符号化され
ていないデータを入力バッファ12Aの先頭位置に移動す
る。
【0091】例えば、図10(C)に示すように、数バイ
トの被圧縮データDin=u,i,m,a,d,f,r,
e,w…が入力バッファ12Aに入力される。入力バッフ
ァ12Aからの被圧縮データDinは環状辞書バッファ12E
にシフトされ、その結果、nバイトの辞書データ=i,
m,a,d,g,k,g…a,b,c,uが環状辞書バ
ッファ12Eに書き込まれる。
【0092】次いで、環状辞書バッファ12E内に一致す
るデータ列が有るか否かを検索する。例えば、環状辞書
バッファ12E内に格納された辞書データ列=u,i,
m,a,dと、入力バッファ12Aの被圧縮データ列=
u,i,m,a,dとが比較される。それが一致するこ
とから、これを符号化する。具体的には、一致データの
位置情報,その長さ情報等を符号化する。例えば、図10
(B)の一致データ列では、長い位置情報を示すことか
ら識別子が「1」であり、検索位置が入力バッファ12A
から見て環状辞書バッファ12Eの先頭位置にあることか
ら位置情報が「0」、最長一致データがu,i,m,
a,dとなることから「5」バイトとなる。
【0093】また、図10(C)に示すように、数バイト
の被圧縮データDin=u,i,m,a,d,u,i,
m,a,d,u,i,m,a,d,x…が入力バッファ
12Aに入力され、入力バッファ12Aからの被圧縮データ
Dinが環状辞書バッファ12Eにシフトされると、その結
果、5バイトの辞書データ=i,m,a,d,uが環状
辞書バッファ12Eに書き込まれる。
【0094】次いで、環状辞書バッファ12E内に一致す
るデータ列が有るか否かを検索する。例えば、環状辞書
バッファ12E内に格納された辞書データ列=i,m,
a,d,uと、入力バッファ12Aの被圧縮データ列=
u,i,m,a,d,u,i,m,a,d,u,i,
m,a,dとが比較される。それが3つのデータ列で一
致することから、これを符号化する。つまり、第4の実
施例では、入力バッファ12Aの15番目まで、一度に符
号化でき、符号化された圧縮データはファイル17に格
納される。
【0095】具体的には、一致データの位置情報,その
長さ情報等を符号化する。図10(C)の一致データ列で
は、長い位置情報を示すことから識別子が「1」であ
り、検索位置が入力バッファ12Aから見て環状辞書バッ
ファ12Eの先頭位置にあることから位置情報が「0」、
最長一致データがu,i,m,a,dとなることから
「5」バイトとなる。この際の符号化については、図4
において説明しているので参照されたい。
【0096】なお、圧縮データを復元する場合には、同
じ環状辞書バッファ12Eを用い、第1の実施例と同様な
復元フローチャートに沿って復号することができるた
め、その説明を省略する。このようにして本発明の第4
の実施例に係るデータ処理装置によれば、図10(A)に
示すような環状辞書バッファ12Eが設けられる。
【0097】このため、非終端ループ状に接続されたメ
モリ領域に、以前に符号化した入力データ列を辞書デー
タとして書込むことができ、参照できる辞書の数を実質
的に増やすことができる。これにより、第1の実施例で
は辞書バッファ12Bを直線上に辞書データを検索する方
法しか採れなかったが、第2の実施例では辞書バッファ
12Eを環状に辞書データを検索することができる。これ
を利用して、入力データ列の中の連続した部分との最長
一致を検索し、その一致情報を符号化することができ
る。
【0098】このことから、第1の実施例では一致しな
かったデータ列が、第4の実施例では一致する可能性が
増加し、辞書バッファ12Eを拡張した移動窓によるデー
タ圧縮をすることが可能となる。 (5)第5の実施例の説明 図11は、本発明の第5の実施例に係るデータ圧縮方法の
説明図である。図11(A)は、あるメモリ領域を辞書バ
ッファ12B及び入力バッファ12Aとに分割した図であ
る。図11(B)は、その領域を分割する境界線を入力バ
ッファ12A側に移動した図をそれぞれ示している。
【0099】第5の実施例では第1〜第4の実施例と異
なり、辞書用のメモリ領域に連続する入力用のメモリ領
域に書き込まれた被圧縮データ列が辞書データ列として
見なされるものである。すなわち、本発明の第5のデー
タ処理装置では、図11(A)に示すようにあるメモリ領
域を辞書バッファ12B及び入力バッファ12Aに分割した
際の境界(カーソル)線12Fを入力バッファ12A側に移
動する機能が付加される。この機能は、EPROM13
に制御アルゴリズムとして制御データを格納し、このデ
ータを例えばCPU14が読出して辞書制御をする。
【0100】この際の辞書制御は、辞書データ列と被圧
縮データ列とを比較する際に、図11(A)から同図
(B)に示すように、境界線12Fを入力用のメモリ領域
の方向に移動する。辞書バッファ12Bは入力バッファ12
Aの領域に拡張されて辞書バッファ12B´となる。これ
により、辞書バッファ12B´と入力バッファ12Aとの間
で一致検索をすることができ、辞書データ列が書き込ま
れた辞書用のメモリ領域に連続する入力用のメモリ領域
の被圧縮データ列を辞書データ列として見なし、一致デ
ータを検索することができる。
【0101】具体的には、図11(A)の一致データ列で
は、長い位置情報を示すことから識別子が「1」であ
り、検索位置が入力バッファ12Aから見て辞書バッファ
12Aの3ビット目にあることから位置情報が「3」、最
長一致データがu,a,b,cとなることから「8」バ
イトとなる。なお、具体的な符号化の段階で圧縮率を上
げるための工夫は、第1の実施例と同様であるため、そ
の説明を省略する。
【0102】また、圧縮データを復元する場合には、入
力バッファ12Aと辞書バッファ12Bとが重なる部分を1
つ1つ復元する。このようにして、本発明の第5の実施
例に係るデータ圧縮方法によれば、図11(B)に示すよ
うに、辞書用のメモリ領域に連続する入力用のメモリ領
域に書き込まれた被圧縮データ列が辞書データ列として
見なされる。
【0103】このため、参照できる辞書データの数を実
質的に増やすことができ、辞書データ又は辞書データ列
を入力用のメモリ領域に拡張して、一致するデータ又は
データ列を検索することができる。これにより、入力用
のメモリ領域の被圧縮データ列同士を比較することが可
能となり、第1の実施例の検索方法に比べて、一致しな
かったデータが一致する可能性が増える。特に、辞書バ
ッファ12B内のデータ列の中で、境界線12Fの近傍のデ
ータ=u,a,b,cの並びと、同じデータ=u,a,
b,cの並びとが入力バッファ12Aに繰り返し出現する
ような場合に、最も効率良くデータ圧縮をすることが可
能となる。
【0104】これにより、実質的に、辞書が増えたにも
かかわらず、辞書の大きさや符号化情報の大きさが増え
ず、第1の実施例に比べてデータ検索時間を短縮するこ
とができ、データ圧縮処理の高速化を図ることが可能と
なる。なお、表1は第1,第4及び第5の実施例に係る
データ圧縮方法を比較した結果を示している。表1はソ
フトウエア上で6339バイトのバイナリデータ及び3
177バイトのテキストデータを圧縮した場合の結果で
あり、原データ数に対する圧縮後のバイト数を示してい
る。
【0105】
【表1】
【0106】これによれば、第1の実施例では辞書バッ
ファ12Bを直線的に検索するために、バイナリデータで
は圧縮後のバイト数が4524バイトとなった。また、
テキストデータでは圧縮後のバイト数が1373バイト
となった。これに対して、第4の実施例では辞書バッフ
ァ12Dを環状に検索するために、バイナリデータでは圧
縮後のバイト数が4522バイトとなった。また、テキ
ストデータでは圧縮後のバイト数が1373バイトとな
った。
【0107】第5の実施例では辞書バッファ12Bから入
力バッファ12Aを拡張して検索するために、バイナリデ
ータでは圧縮後のバイト数が4495バイトとなった。
また、テキストデータでは圧縮後のバイト数が1369
バイトとなった。このように第5の実施例では第1,第
4の実施例に比べてデータ圧縮率が向上していることは
明確であり、大容量のデータを取り扱う場合には、大き
な効果が期待できる。
【0108】
【発明の効果】以上説明したように、本発明のデータ処
理装置によれば、辞書データ又は辞書データ列と被圧縮
データ又は被圧縮データ列とを比較し、これらデータ又
はデータ列とが一致した場合に、一致した部分のデータ
又はデータ列を辞書バッファから追い出し、その後、デ
ータ書込み範囲を一方向に詰めて新たな辞書データとし
て一致した被圧縮データ又は被圧縮データ列を書き込む
辞書制御手段が設けられる。
【0109】このため、重複した辞書データ又は辞書デ
ータ列が、辞書バッファのデータ書込み範囲から外部等
に追い出されることにより、従来例のように、一致デー
タに関係しないデータを単に辞書バッファの先頭から追
い出すことが無くなり、常に、異なった種類の辞書デー
タを辞書バッファに格納することができ、辞書バッファ
の冗長性が少なくなる。
【0110】本発明の他のデータ処理装置によれば、辞
書バッファから追い出されたデータ又は辞書データ列を
記憶する補助辞書バッファが設けられる。このため、参
照できる辞書の数を実質的に増やすことができ、補助辞
書バッファ内の辞書データを参照しながら、データ圧縮
をすることができ、不一致として原データのまま符号化
されていたデータの圧縮率を向上させることが可能とな
る。
【0111】本発明の他のデータ処理装置によれば、被
圧縮データの中で予め調査された出現頻度の高い固定デ
ータ又は固定データ列を辞書データとして書き込む固定
辞書バッファが設けられる。このため、固定辞書バッフ
ァ内の辞書データを参照しながら、データ圧縮をするこ
とができ、データ検索速度の高速化を図ることが可能と
なる。
【0112】本発明の他のデータ処理装置によれば、環
状構造を有する辞書バッファが設けられる。このため、
非終端ループ状のメモリ領域に書込まれた辞書データを
参照しながら、拡張した移動窓を当該辞書バッファ上に
スライドさせながら、データ圧縮をすることが可能とな
る。本発明のデータ処理方法によれば、辞書用のメモリ
領域に連続する入力用のメモリ領域の被圧縮データ又は
被圧縮データ列が辞書データ又は辞書データ列として利
用される。
【0113】このため、参照できる辞書データの数を実
質的に増やすことができ、辞書データ又は辞書データ列
を入力用のメモリ領域に拡張して、一致するデータ又は
データ列を検索することができる。これにより、辞書デ
ータを有効かつ高速に検索可能なデータ圧縮又は復元装
置を構成することができ、磁気ディスク装置等の許容記
憶容量を実質的に増加させることと、及び、データ伝送
時の送信時間の短縮化に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明の各実施例に係るデータ処理装置の構成
図である。
【図2】本発明の第1の実施例に係るデータ圧縮時の辞
書バッファの説明図である。
【図3】本発明の第1の実施例に係るデータの圧縮フロ
ーチャートである。
【図4】本発明の各実施例に係るデータ圧縮時の符号化
処理の説明図である。
【図5】本発明の第1の実施例に係る圧縮データの復号
フローチャートである。
【図6】本発明の第2の実施例に係る一致辞書、データ
の符号化及びその検索範囲の説明図である。
【図7】本発明の第2の実施例に係る一致辞書の作成フ
ローチャートである。
【図8】本発明の第2の実施例に係る圧縮データの復号
フローチャートである。
【図9】本発明の第3の実施例に係る固定辞書を利用し
たデータ処理方法の説明図である。
【図10】本発明の第4の実施例に係る環状辞書バッファ
の説明図である。
【図11】本発明の第5の実施例に係る入力バッファ連続
構造の辞書バッファの説明図である。
【図12】従来例に係るデータ圧縮方法の説明図である。
【図13】従来例に係る問題点を説明する符号化処理の状
態図である。
【符号の説明】
11…原データファイル、 12…メモリ、 12A…入力バッファ、 12B…辞書バッファ、 12C…補助辞書(一致辞書)バッファ、 12D…固定辞書バッファ、 13…EPROM、 14…辞書制御手段(CPU)、 15…キーボード、 16…ディスプレイ、 17…圧縮データファイル、 18…バス。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 被圧縮データを利用した辞書データ又は
    辞書データ列を格納する辞書バッファを備え、順次、入
    力される被圧縮データとを比較して一致する辞書データ
    又は辞書データ列を符号化し、逆に、符号化された圧縮
    データを復号化するときに、 前記辞書データ又は辞書データ列と、入力された前記被
    圧縮データ又は被圧縮データ列とを比較して前記辞書デ
    ータ又は辞書データ列と前記被圧縮データ又は被圧縮デ
    ータ列とが一致した場合に、前記一致した部分の辞書デ
    ータ又は辞書データ列を辞書バッファから追い出し、前
    記辞書データ又は辞書データ列が追い出された辞書バッ
    ファのデータ書込み範囲を一方向に詰め、前記データ書
    込み範囲が詰められた辞書バッファに前記一致した被圧
    縮データ又は被圧縮データ列を新たな辞書データとして
    書き込む辞書制御手段が設けられることを特徴とするデ
    ータ処理装置。
  2. 【請求項2】 前記辞書バッファから追い出されたデー
    タ又は辞書データ列を記憶する補助辞書バッファが設け
    られることを特徴とする請求項1記載のデータ処理装
    置。
  3. 【請求項3】 前記被圧縮データの中で予め調査された
    出現頻度の高い固定データ又は固定データ列を辞書デー
    タとして書き込んだ固定辞書バッファが設けられること
    を特徴とする請求項1記載のデータ処理装置。
  4. 【請求項4】 前記辞書バッファは、被圧縮データを辞
    書データとして書き込むメモリ領域を非終端ループ状に
    接続した環状構造を有することを特徴とする請求項1記
    載のデータ処理装置。
  5. 【請求項5】 被圧縮データを利用した辞書データ又は
    辞書データ列と、順次、入力される被圧縮データとを比
    較して一致するデータ又はデータ列を符号化し、逆に、
    符号化された圧縮データを復号化するときに、 前記辞書データ又は辞書データ列と、入力された前記被
    圧縮データ又は被圧縮データ列とを比較して前記辞書デ
    ータ又は辞書データ列と前記被圧縮データ又は被圧縮デ
    ータ列とが一致した場合に、前記一致した部分の辞書デ
    ータ又は辞書データ列を辞書のデータ書込み範囲から追
    い出し、前記データ又はデータ列が追い出された辞書の
    データ書込み範囲を一方向に詰め、前記データ書込み範
    囲が詰められた辞書に前記一致した被圧縮データ又は被
    圧縮データ列を新たな辞書データとして書き込むことを
    特徴とするデータ処理方法。
  6. 【請求項6】 前記辞書データ又は辞書データ列と、入
    力された前記被圧縮データ又は被圧縮データ列とを比較
    する際に、 前記辞書バッファから追い出されたデータ又は辞書デー
    タ列を参照することを特徴とする請求項5記載のデータ
    処理方法。
  7. 【請求項7】 前記辞書データ又は辞書データ列と、入
    力された前記被圧縮データ又は被圧縮データ列とを比較
    する際に、 前記被圧縮データの中で予め調査された出現頻度の高い
    固定データ又は固定データ列を参照することを特徴とす
    る請求項5記載のデータ処理方法。
  8. 【請求項8】 前記辞書データ又は辞書データ列と、入
    力された前記被圧縮データ又は被圧縮データ列とを比較
    する際に、 前記辞書データ又は辞書データ列が書き込まれた辞書用
    のメモリ領域に連続する入力用のメモリ領域に書き込ま
    れた被圧縮データ又は被圧縮データ列を辞書データ又は
    辞書データ列として見なすことを特徴とする請求項5記
    載のデータ処理方法。
JP25101694A 1994-10-17 1994-10-17 データ処理装置及びデータ処理方法 Expired - Fee Related JP3242795B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP25101694A JP3242795B2 (ja) 1994-10-17 1994-10-17 データ処理装置及びデータ処理方法
US08/505,760 US5635932A (en) 1994-10-17 1995-07-21 Lempel-ziv compression with expulsion of dictionary buffer matches
US08/813,943 US5748122A (en) 1994-10-17 1997-03-03 Data processing apparatus and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25101694A JP3242795B2 (ja) 1994-10-17 1994-10-17 データ処理装置及びデータ処理方法

Publications (2)

Publication Number Publication Date
JPH08116269A true JPH08116269A (ja) 1996-05-07
JP3242795B2 JP3242795B2 (ja) 2001-12-25

Family

ID=17216383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25101694A Expired - Fee Related JP3242795B2 (ja) 1994-10-17 1994-10-17 データ処理装置及びデータ処理方法

Country Status (1)

Country Link
JP (1) JP3242795B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007293461A (ja) * 2006-04-21 2007-11-08 Funai Electric Co Ltd データ圧縮プログラム
US7308150B2 (en) 2002-09-19 2007-12-11 Fuji Xerox Co., Ltd. Image processing apparatus
JP2011101271A (ja) * 2009-11-09 2011-05-19 Seiko Epson Corp 画像処理装置、および、画像処理方法
WO2014097356A1 (ja) * 2012-12-19 2014-06-26 富士通株式会社 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法および伸張装置
JP6032292B2 (ja) * 2012-12-19 2016-11-24 富士通株式会社 圧縮プログラム、圧縮装置、伸張プログラムおよび伸張装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0378322A (ja) * 1989-08-22 1991-04-03 Fujitsu Ltd データ圧縮方式
JPH03204232A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの符号化方法
JPH0795093A (ja) * 1993-07-08 1995-04-07 Internatl Business Mach Corp <Ibm> 順次データ圧縮アルゴリズムを実行する装置及び方法
JPH07297728A (ja) * 1994-04-15 1995-11-10 Internatl Business Mach Corp <Ibm> パターン一致を探索するための方法およびシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0378322A (ja) * 1989-08-22 1991-04-03 Fujitsu Ltd データ圧縮方式
JPH03204232A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの符号化方法
JPH0795093A (ja) * 1993-07-08 1995-04-07 Internatl Business Mach Corp <Ibm> 順次データ圧縮アルゴリズムを実行する装置及び方法
JPH07297728A (ja) * 1994-04-15 1995-11-10 Internatl Business Mach Corp <Ibm> パターン一致を探索するための方法およびシステム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308150B2 (en) 2002-09-19 2007-12-11 Fuji Xerox Co., Ltd. Image processing apparatus
JP2007293461A (ja) * 2006-04-21 2007-11-08 Funai Electric Co Ltd データ圧縮プログラム
JP4600342B2 (ja) * 2006-04-21 2010-12-15 船井電機株式会社 データ圧縮プログラム
JP2011101271A (ja) * 2009-11-09 2011-05-19 Seiko Epson Corp 画像処理装置、および、画像処理方法
WO2014097356A1 (ja) * 2012-12-19 2014-06-26 富士通株式会社 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法および伸張装置
US9496895B2 (en) 2012-12-19 2016-11-15 Fujitsu Limited Compression method and decompression method
JP6032292B2 (ja) * 2012-12-19 2016-11-24 富士通株式会社 圧縮プログラム、圧縮装置、伸張プログラムおよび伸張装置
JP6032291B2 (ja) * 2012-12-19 2016-11-24 富士通株式会社 圧縮プログラム、圧縮装置、伸張プログラム、伸張装置およびシステム
JPWO2014097359A1 (ja) * 2012-12-19 2017-01-12 富士通株式会社 圧縮プログラム、圧縮装置、伸張プログラムおよび伸張装置

Also Published As

Publication number Publication date
JP3242795B2 (ja) 2001-12-25

Similar Documents

Publication Publication Date Title
JP3273119B2 (ja) データ圧縮・伸長装置
JP3342700B2 (ja) ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
US7403136B2 (en) Block data compression system, comprising a compression device and a decompression device and method for rapid block data compression with multi-byte search
US6657565B2 (en) Method and system for improving lossless compression efficiency
EP0438955B1 (en) Data compression method
EP0729237A2 (en) Adaptive multiple dictionary data compression
KR100527891B1 (ko) 허프만 디코딩을 수행하는 방법
US10476518B1 (en) Hardware friendly data compression
JP3141002B2 (ja) 符号化方法及びデータ圧縮器
JP3141001B2 (ja) 符号化方法及びデータ圧縮器、並びにコンピュータ・プログラムを記録した記録媒体
JP3231105B2 (ja) データ符号化方式及びデータ復元方式
EP0435802B1 (en) Method of decompressing compressed data
EP0438954B1 (en) Method of decoding compressed data
JP3242795B2 (ja) データ処理装置及びデータ処理方法
US6262675B1 (en) Method of compressing data with an alphabet
JP3241787B2 (ja) データ圧縮方式
CN117200805B (zh) 一种mcu的低内存占用的压缩和解压方法及装置
US6819272B2 (en) System, method and computer readable medium for compressing a data sequence for partial decompressing
JP3143029B2 (ja) データ圧縮方法及びその装置並びにデータ伸長方法及びその装置
JP2003318739A (ja) データシーケンスを圧縮するシステム、方法、およびコンピュータ読み取り可能媒体
JP2999587B2 (ja) データ圧縮及び復元方式
JP3012679B2 (ja) データ圧縮方法
JP3054183B2 (ja) データ圧縮装置の辞書書き替え方式
JPH07225667A (ja) データ圧縮装置およびデータ復元装置
JPH0511973A (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: 20011009

LAPS Cancellation because of no payment of annual fees