JPH07135471A - データ圧縮装置およびデータ伸張装置 - Google Patents
データ圧縮装置およびデータ伸張装置Info
- Publication number
- JPH07135471A JPH07135471A JP30335593A JP30335593A JPH07135471A JP H07135471 A JPH07135471 A JP H07135471A JP 30335593 A JP30335593 A JP 30335593A JP 30335593 A JP30335593 A JP 30335593A JP H07135471 A JPH07135471 A JP H07135471A
- Authority
- JP
- Japan
- Prior art keywords
- data
- dictionary
- buffer
- rank
- code
- 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)
Abstract
(57)【要約】
【目的】 順次入力されるデータ列をリアルタイムで処
理でき、しかも常に高い圧縮率を維持しながらデータの
圧縮および伸張を行うことができるデータ圧縮装置およ
びデータ伸張装置を提供すること。 【構成】 このデータ圧縮装置は、データバッファ1
0,辞書バッファ12,バッファ更新部14,一致長符
号化部16,位置符号化部20,順位符号化部24,テ
ーブル更新部28を含んで構成される。一致長符号化部
16は、データバッファ10内の文字列を先頭から見て
いって、辞書内の文字列との比較を行い、その一致長を
符号化して出力する。辞書内に一致した文字列が存在す
る場合には、位置符号化部20は、辞書内のアドレスを
符号化して出力する。辞書内に一致した文字列がない場
合には、順位符号化部24は、先頭文字について出現頻
度が高いものほど短いビット長の符号化を行う。
理でき、しかも常に高い圧縮率を維持しながらデータの
圧縮および伸張を行うことができるデータ圧縮装置およ
びデータ伸張装置を提供すること。 【構成】 このデータ圧縮装置は、データバッファ1
0,辞書バッファ12,バッファ更新部14,一致長符
号化部16,位置符号化部20,順位符号化部24,テ
ーブル更新部28を含んで構成される。一致長符号化部
16は、データバッファ10内の文字列を先頭から見て
いって、辞書内の文字列との比較を行い、その一致長を
符号化して出力する。辞書内に一致した文字列が存在す
る場合には、位置符号化部20は、辞書内のアドレスを
符号化して出力する。辞書内に一致した文字列がない場
合には、順位符号化部24は、先頭文字について出現頻
度が高いものほど短いビット長の符号化を行う。
Description
【0001】
【産業上の利用分野】本発明は、例えば一般的なコンピ
ュータシステムにおいて、磁気ディスクやICメモリ等
のデジタル記憶装置に記憶するデータを圧縮し、あるい
はこれらのデジタル記憶装置から読出したデータを伸張
するデータ圧縮装置およびデータ伸張装置に関する。
ュータシステムにおいて、磁気ディスクやICメモリ等
のデジタル記憶装置に記憶するデータを圧縮し、あるい
はこれらのデジタル記憶装置から読出したデータを伸張
するデータ圧縮装置およびデータ伸張装置に関する。
【0002】
【従来の技術】近年、マイクロプロセッサの高速化およ
び高性能化にともない、コンピュータシステムにおける
処理内容も多様化しており、扱うデータ量も急激に増大
している。特に最近では、静止画や動画を対象とした画
像処理が盛んになりつつあり、このような画像処理を行
う場合には扱うデータ量も従来の文字データに比べて膨
大となる。そのため、この膨大な画像データを例えばハ
ードディスク装置に格納する場合に、その前処理として
データの圧縮を行っておいて、この圧縮されたデータを
ハードディスク装置に格納する方法が知られている。ま
た、データを読み出す場合には、圧縮して格納されてい
るデータを読み出した後に伸張し、この伸張データをパ
ーソナルコンピュータ(パソコン)に送ることになる。
び高性能化にともない、コンピュータシステムにおける
処理内容も多様化しており、扱うデータ量も急激に増大
している。特に最近では、静止画や動画を対象とした画
像処理が盛んになりつつあり、このような画像処理を行
う場合には扱うデータ量も従来の文字データに比べて膨
大となる。そのため、この膨大な画像データを例えばハ
ードディスク装置に格納する場合に、その前処理として
データの圧縮を行っておいて、この圧縮されたデータを
ハードディスク装置に格納する方法が知られている。ま
た、データを読み出す場合には、圧縮して格納されてい
るデータを読み出した後に伸張し、この伸張データをパ
ーソナルコンピュータ(パソコン)に送ることになる。
【0003】図17は、ハードディスク装置あるいはメ
モリカードに対するデータの記憶を圧縮された形で行う
場合の一般的なシステム構成を示す図である。同図
(A)は、パソコン100に接続されたハードディスク
装置102内にデータの圧縮装置104および伸張装置
106を備えた場合が示されている。この場合には、パ
ソコン100からハードディスク装置102に対して非
圧縮データが送られ、圧縮装置104によって圧縮が行
われた後にこの圧縮データが記憶される。データを読み
出す際には、まず読み出した圧縮データをハードディス
ク装置102内の伸張装置106によって伸張した後に
パソコン100に向け出力する。
モリカードに対するデータの記憶を圧縮された形で行う
場合の一般的なシステム構成を示す図である。同図
(A)は、パソコン100に接続されたハードディスク
装置102内にデータの圧縮装置104および伸張装置
106を備えた場合が示されている。この場合には、パ
ソコン100からハードディスク装置102に対して非
圧縮データが送られ、圧縮装置104によって圧縮が行
われた後にこの圧縮データが記憶される。データを読み
出す際には、まず読み出した圧縮データをハードディス
ク装置102内の伸張装置106によって伸張した後に
パソコン100に向け出力する。
【0004】また、同図(B)にはこの圧縮装置104
および伸張装置106をパソコン100内に設けた場合
の構成が示されている。
および伸張装置106をパソコン100内に設けた場合
の構成が示されている。
【0005】さらに、同図(C)には、記憶装置として
ハードディスク装置102の代わりにメモリカード10
8を対象とした場合が示されている。この場合には、パ
ソコン100に装着されたメモリカード108にデータ
を格納する前に圧縮装置104によってデータの圧縮が
行われる。また、メモリカード108から読み出された
圧縮データが伸張装置106によって伸張される。
ハードディスク装置102の代わりにメモリカード10
8を対象とした場合が示されている。この場合には、パ
ソコン100に装着されたメモリカード108にデータ
を格納する前に圧縮装置104によってデータの圧縮が
行われる。また、メモリカード108から読み出された
圧縮データが伸張装置106によって伸張される。
【0006】図18は、パソコン100とプリンタ11
0の間に設けられたプリンタバッファ112に圧縮デー
タを格納する構成を示す図である。同図(a)には、パ
ソコン100内に圧縮装置104を設けるとともに、プ
リンタバッファ112内に伸張装置106を設けるよう
にしたものである。また、同図(B)はプリンタバッフ
ァ112内に圧縮装置104と伸張装置106の両方を
設けたものである。これらの図に示すように、パソコン
100の印刷データを圧縮装置104によって圧縮した
後にプリンタバッファ112に保持しているため、実際
の格納容量よりもたくさんの印刷データを保持すること
ができる。
0の間に設けられたプリンタバッファ112に圧縮デー
タを格納する構成を示す図である。同図(a)には、パ
ソコン100内に圧縮装置104を設けるとともに、プ
リンタバッファ112内に伸張装置106を設けるよう
にしたものである。また、同図(B)はプリンタバッフ
ァ112内に圧縮装置104と伸張装置106の両方を
設けたものである。これらの図に示すように、パソコン
100の印刷データを圧縮装置104によって圧縮した
後にプリンタバッファ112に保持しているため、実際
の格納容量よりもたくさんの印刷データを保持すること
ができる。
【0007】ところで、上述したデータの圧縮および伸
張を行う方式としては数々のものが提案されており、例
えば、ハフマン符号を用いる方法、動的辞書法、
スライド辞書法等が代表的なものとして挙げられる。
張を行う方式としては数々のものが提案されており、例
えば、ハフマン符号を用いる方法、動的辞書法、
スライド辞書法等が代表的なものとして挙げられる。
【0008】ハフマン符号を用いる方法は、圧縮対象
となる全データ列内の各文字あるいは文字列の出現頻度
を予めカウントしておいて、出現頻度の高いものほどビ
ット長が短くなるような変換符号表を予め作成し、入力
データをこの変換符号表に従って符号化するものであ
る。この方法によれば、どのような入力データ列に対し
ても最適な変換符号表を作成することができ、効率よい
符号化、すなわち高い圧縮率のデータ圧縮が可能となる
という利点がある。
となる全データ列内の各文字あるいは文字列の出現頻度
を予めカウントしておいて、出現頻度の高いものほどビ
ット長が短くなるような変換符号表を予め作成し、入力
データをこの変換符号表に従って符号化するものであ
る。この方法によれば、どのような入力データ列に対し
ても最適な変換符号表を作成することができ、効率よい
符号化、すなわち高い圧縮率のデータ圧縮が可能となる
という利点がある。
【0009】動的辞書法は、入力されたデータ列に専
用の符号を割り当てて、順次辞書形式で登録する。処理
が進むにしたがって辞書内のデータが増えていくため、
動的辞書法と呼ばれているものであり、入力されたデー
タ列の中の文字列が辞書内に存在すると、辞書内の対応
する符号とこの文字列の次の1文字に対応する符号とを
出力する。存在しない場合には、存在しない旨のフラグ
とともに1文字分の生データを出力する。文字列の繰り
返し性に冗長成分を見付け出す方法であるため、高い圧
縮率が得られ、しかも入力されるデータ列を順次処理す
ることができるワンパス構成とすることができる。
用の符号を割り当てて、順次辞書形式で登録する。処理
が進むにしたがって辞書内のデータが増えていくため、
動的辞書法と呼ばれているものであり、入力されたデー
タ列の中の文字列が辞書内に存在すると、辞書内の対応
する符号とこの文字列の次の1文字に対応する符号とを
出力する。存在しない場合には、存在しない旨のフラグ
とともに1文字分の生データを出力する。文字列の繰り
返し性に冗長成分を見付け出す方法であるため、高い圧
縮率が得られ、しかも入力されるデータ列を順次処理す
ることができるワンパス構成とすることができる。
【0010】スライド辞書法は、既に処理が終了した
データ列を用いて辞書登録を行うものである。辞書の登
録内容は古いものから順に消されるため、有限の辞書サ
イズとすることができ、辞書の管理が容易となる利点が
ある。入力されたデータ列に対して辞書検索を行い、辞
書内に一致する文字列が存在する場合は、一致フラグに
続けてその位置と一致長を符号化したデータを出力す
る。存在しない場合には、不一致フラグとともに次の1
文字分の生データを出力する。の動的辞書法と同様
に、文字列の繰り返し性に上長成分を見付け出す方法で
あり、常に高い圧縮率が得られ、ワンパスで処理できる
という特徴がある。このスライド辞書法を用いたものと
しては、例えば特開平3−68219号公報に開示され
た「データ圧縮装置及び方法」がある。
データ列を用いて辞書登録を行うものである。辞書の登
録内容は古いものから順に消されるため、有限の辞書サ
イズとすることができ、辞書の管理が容易となる利点が
ある。入力されたデータ列に対して辞書検索を行い、辞
書内に一致する文字列が存在する場合は、一致フラグに
続けてその位置と一致長を符号化したデータを出力す
る。存在しない場合には、不一致フラグとともに次の1
文字分の生データを出力する。の動的辞書法と同様
に、文字列の繰り返し性に上長成分を見付け出す方法で
あり、常に高い圧縮率が得られ、ワンパスで処理できる
という特徴がある。このスライド辞書法を用いたものと
しては、例えば特開平3−68219号公報に開示され
た「データ圧縮装置及び方法」がある。
【0011】
【発明が解決しようとする課題】ところで、上述した各
種の圧縮方法においては、種々の問題がある。すなわ
ち、ハフマン符号を用いる方法においてはデータ圧縮
を行う前処理として、入力されるデータ列内の各文字の
出現頻度をカウントし、出現頻度が高いものほど短いビ
ット長を有する符号を対応させた変換符号表を作成しな
ければならないため、順次入力されるデータ列をワンパ
スで処理することは不可能であり、必ずツーパス処理と
なるため、リアルタイムの処理が不可能であるという問
題があった。また、いくつかのデータ群が存在する場合
には、各データ群毎に異なる変換符号表を作成しなけれ
ばならないため、この変換符号表まで含めるとそれ程高
い圧縮率が得られないという問題があった。
種の圧縮方法においては、種々の問題がある。すなわ
ち、ハフマン符号を用いる方法においてはデータ圧縮
を行う前処理として、入力されるデータ列内の各文字の
出現頻度をカウントし、出現頻度が高いものほど短いビ
ット長を有する符号を対応させた変換符号表を作成しな
ければならないため、順次入力されるデータ列をワンパ
スで処理することは不可能であり、必ずツーパス処理と
なるため、リアルタイムの処理が不可能であるという問
題があった。また、いくつかのデータ群が存在する場合
には、各データ群毎に異なる変換符号表を作成しなけれ
ばならないため、この変換符号表まで含めるとそれ程高
い圧縮率が得られないという問題があった。
【0012】また、動的辞書法およびスライド辞書
法においては、辞書内に該当する文字が存在しない場合
には、不一致フラグ等と次の文字の生データを出力して
いるため、辞書内に該当するデータが存在しない場合に
は入力される元データよりもビット長の長い符号出力が
存在するという問題があった。さらに、動的辞書法に
おいては、有限の辞書サイズとするためには、辞書の更
新方法が複雑になってしまう。例えば、アクセス頻度の
低いものから順に更新していこうとすると、アクセス頻
度も情報として保持する必要がある。また、古い順に更
新していこうとすると、文字列とデータ登録時間とを対
応させて辞書を作成しなければならなくなる。
法においては、辞書内に該当する文字が存在しない場合
には、不一致フラグ等と次の文字の生データを出力して
いるため、辞書内に該当するデータが存在しない場合に
は入力される元データよりもビット長の長い符号出力が
存在するという問題があった。さらに、動的辞書法に
おいては、有限の辞書サイズとするためには、辞書の更
新方法が複雑になってしまう。例えば、アクセス頻度の
低いものから順に更新していこうとすると、アクセス頻
度も情報として保持する必要がある。また、古い順に更
新していこうとすると、文字列とデータ登録時間とを対
応させて辞書を作成しなければならなくなる。
【0013】そこで、本発明はこのような鑑みて創作さ
れたものであり、順次入力されるデータ列をリアルタイ
ムで処理することができ、しかも辞書内に該当するデー
タが存在しない場合であっても常に高い圧縮率を維持し
ながらデータの圧縮を行うことができるデータ圧縮装置
およびデータ伸張装置を提供することを目的とする。
れたものであり、順次入力されるデータ列をリアルタイ
ムで処理することができ、しかも辞書内に該当するデー
タが存在しない場合であっても常に高い圧縮率を維持し
ながらデータの圧縮を行うことができるデータ圧縮装置
およびデータ伸張装置を提供することを目的とする。
【0014】
【課題を解決するための手段】上述した課題を解決する
ために、請求項1の発明は、順次入力される非圧縮デー
タの中の最後尾に位置する所定ワード長のデータ列を処
理データとして、およびその前に位置する所定ワード長
のデータ列を辞書としてそれぞれ格納するデータバッフ
ァおよび辞書バッファと、前記データバッファ内の処理
データを構成する各ワードについて、前記辞書を構成す
る各ワードと一致するものがあるか否かを検索し、その
最も長い一致長を符号化した一致長符号を出力する一致
長符号化手段と、前記一致長符号化手段によって一致の
判定が行われた場合に、一致したワード列の中で最もワ
ード長が長いものの前記辞書内の位置を符号化した位置
符号を出力する位置符号化手段と、非圧縮データの各ワ
ードについて存在確率の高い順にビット長が短い順位符
号を対応させた順位テーブルを有しており、前記一致長
符号化手段によって不一致の判定が行われた場合に、前
記順位テーブルを検索することにより前記データバッフ
ァ内の処理データの先頭ワードに対応する順位符号を出
力する順位符号化手段と、前記順位符号化手段による符
号化処理が行われた場合に、符号化の対象となった前記
処理データの先頭ワードを考慮して前記順位テーブルを
更新するテーブル更新手段と、前記位置符号化手段ある
いは前記順位符号化手段による符号化が行われたとき
に、符号化が終了した前記処理データの一部あるいは全
部を前記辞書バッファ内の辞書に移すとともに、この移
した分の非圧縮データを前記データバッファに追加して
格納する処理を行うバッファ更新手段と、を備え、前記
辞書内に処理データの各ワードと一致したワードがある
場合には一致長とその位置とをそれぞれ符号化し、一致
したワードがない場合にはその旨を示す一致長と処理デ
ータの先頭ワードとをそれぞれ符号化することにより圧
縮データを得ることを特徴とする。
ために、請求項1の発明は、順次入力される非圧縮デー
タの中の最後尾に位置する所定ワード長のデータ列を処
理データとして、およびその前に位置する所定ワード長
のデータ列を辞書としてそれぞれ格納するデータバッフ
ァおよび辞書バッファと、前記データバッファ内の処理
データを構成する各ワードについて、前記辞書を構成す
る各ワードと一致するものがあるか否かを検索し、その
最も長い一致長を符号化した一致長符号を出力する一致
長符号化手段と、前記一致長符号化手段によって一致の
判定が行われた場合に、一致したワード列の中で最もワ
ード長が長いものの前記辞書内の位置を符号化した位置
符号を出力する位置符号化手段と、非圧縮データの各ワ
ードについて存在確率の高い順にビット長が短い順位符
号を対応させた順位テーブルを有しており、前記一致長
符号化手段によって不一致の判定が行われた場合に、前
記順位テーブルを検索することにより前記データバッフ
ァ内の処理データの先頭ワードに対応する順位符号を出
力する順位符号化手段と、前記順位符号化手段による符
号化処理が行われた場合に、符号化の対象となった前記
処理データの先頭ワードを考慮して前記順位テーブルを
更新するテーブル更新手段と、前記位置符号化手段ある
いは前記順位符号化手段による符号化が行われたとき
に、符号化が終了した前記処理データの一部あるいは全
部を前記辞書バッファ内の辞書に移すとともに、この移
した分の非圧縮データを前記データバッファに追加して
格納する処理を行うバッファ更新手段と、を備え、前記
辞書内に処理データの各ワードと一致したワードがある
場合には一致長とその位置とをそれぞれ符号化し、一致
したワードがない場合にはその旨を示す一致長と処理デ
ータの先頭ワードとをそれぞれ符号化することにより圧
縮データを得ることを特徴とする。
【0015】請求項2の発明は、請求項1の発明におい
て、前記一致長符号化手段は、前記辞書バッファ内の辞
書の各ワードを先頭から順に見ていった場合に、異なる
ワード毎に先頭アドレスを格納するトップバッファと、
前記辞書バッファ内の辞書の各ワードを先頭から順に見
ていった場合に、同じワードが次に前記辞書内のどのア
ドレスに格納されているかを示すデータを格納するチェ
ーンバッファと、を含み、前記データバッファ内の処理
データの先頭ワードに基づいて前記トップバッファおよ
び前記チェーンバッファを検索することにより、該当す
る前記辞書内のアドレスを特定することを特徴とする。
て、前記一致長符号化手段は、前記辞書バッファ内の辞
書の各ワードを先頭から順に見ていった場合に、異なる
ワード毎に先頭アドレスを格納するトップバッファと、
前記辞書バッファ内の辞書の各ワードを先頭から順に見
ていった場合に、同じワードが次に前記辞書内のどのア
ドレスに格納されているかを示すデータを格納するチェ
ーンバッファと、を含み、前記データバッファ内の処理
データの先頭ワードに基づいて前記トップバッファおよ
び前記チェーンバッファを検索することにより、該当す
る前記辞書内のアドレスを特定することを特徴とする。
【0016】請求項3の発明は、請求項1の発明におい
て、前記辞書バッファおよびデータバッファは、各アド
レスが互いに連続している複数のメモリ素子により構成
されており、前記バッファ更新手段は、符号化が終了し
た前記処理データの一部あるいは全部を構成する各ワー
ドを、前記複数のメモリ素子のそれぞれに分散して格納
し、前記一致長符号化手段は、前記複数のメモリ素子の
それぞれから同時にデータを読み出すことにより、前記
一致検索を行うことを特徴とする。
て、前記辞書バッファおよびデータバッファは、各アド
レスが互いに連続している複数のメモリ素子により構成
されており、前記バッファ更新手段は、符号化が終了し
た前記処理データの一部あるいは全部を構成する各ワー
ドを、前記複数のメモリ素子のそれぞれに分散して格納
し、前記一致長符号化手段は、前記複数のメモリ素子の
それぞれから同時にデータを読み出すことにより、前記
一致検索を行うことを特徴とする。
【0017】請求項4の発明は、圧縮データを伸張して
得られる非圧縮データの中の最後尾に位置する所定ワー
ド長のデータ列を辞書として格納する辞書バッファと、
順次入力される圧縮データの先頭部分に位置する一致長
符号を復号化して具体的な一致長データを出力する一致
長復号化手段と、前記圧縮データの先頭部分に位置する
一致長符号が一致を示している場合に、その次に位置す
る位置符号を復号化して、前記辞書内の格納位置を示す
データを出力する位置復号化手段と、前記圧縮データの
先頭部分に位置する一致長符号が一致を示している場合
に、前記位置復号化手段から出力されるデータに基づい
て前記辞書内の格納位置を特定し、この格納位置を先頭
アドレスとして前記一致長データの分だけ前記辞書から
データの読出しを行って、非圧縮データを出力する辞書
読出し制御手段と、前記非圧縮データの各ワードについ
て存在確率の高い順に短い順位符号を対応させた順位テ
ーブルを有しており、前記圧縮データの先頭部分に位置
する一致長符号が不一致を示している場合に、その次に
位置する順位符号に基づいて前記順位テーブルを検索す
ることにより前記非圧縮データの復号化を行う順位復号
化を行う順位復号化手段と、前記順位復号化手段により
復号化処理が行われたときに、復号化された非圧縮デー
タを考慮して前記順位テーブルを更新するテーブル更新
手段と、前記位置復号化手段あるいは前記順位復号化手
段による復号化が行われたときに、復号化が終了した非
圧縮データを含ませるように前記辞書の更新を行う辞書
更新手段と、を備え、一致長符号と位置符号および順位
符号のいずれか一方とを組み合わせた圧縮データを復号
化することにより伸張データを得ることを特徴とする。
得られる非圧縮データの中の最後尾に位置する所定ワー
ド長のデータ列を辞書として格納する辞書バッファと、
順次入力される圧縮データの先頭部分に位置する一致長
符号を復号化して具体的な一致長データを出力する一致
長復号化手段と、前記圧縮データの先頭部分に位置する
一致長符号が一致を示している場合に、その次に位置す
る位置符号を復号化して、前記辞書内の格納位置を示す
データを出力する位置復号化手段と、前記圧縮データの
先頭部分に位置する一致長符号が一致を示している場合
に、前記位置復号化手段から出力されるデータに基づい
て前記辞書内の格納位置を特定し、この格納位置を先頭
アドレスとして前記一致長データの分だけ前記辞書から
データの読出しを行って、非圧縮データを出力する辞書
読出し制御手段と、前記非圧縮データの各ワードについ
て存在確率の高い順に短い順位符号を対応させた順位テ
ーブルを有しており、前記圧縮データの先頭部分に位置
する一致長符号が不一致を示している場合に、その次に
位置する順位符号に基づいて前記順位テーブルを検索す
ることにより前記非圧縮データの復号化を行う順位復号
化を行う順位復号化手段と、前記順位復号化手段により
復号化処理が行われたときに、復号化された非圧縮デー
タを考慮して前記順位テーブルを更新するテーブル更新
手段と、前記位置復号化手段あるいは前記順位復号化手
段による復号化が行われたときに、復号化が終了した非
圧縮データを含ませるように前記辞書の更新を行う辞書
更新手段と、を備え、一致長符号と位置符号および順位
符号のいずれか一方とを組み合わせた圧縮データを復号
化することにより伸張データを得ることを特徴とする。
【0018】
【作用】請求項1のデータ圧縮装置は、既に圧縮処理が
終了した最も最近の所定ワード長のデータ列を辞書とし
て辞書バッファに格納するとともに、これから処理を行
う所定ワード長のデータ列をデータバッファに格納す
る。そして、データバッファに格納されたデータ列につ
いて辞書バッファ内の辞書を構成する各ワードと一致す
るものがあるか否かを検索し、一致した場合には一致し
たワード列の中で最もワード長が長いものの一致長を符
号化した一致長符号と、その辞書内の位置を符号化した
位置符号とを圧縮データとして出力する。
終了した最も最近の所定ワード長のデータ列を辞書とし
て辞書バッファに格納するとともに、これから処理を行
う所定ワード長のデータ列をデータバッファに格納す
る。そして、データバッファに格納されたデータ列につ
いて辞書バッファ内の辞書を構成する各ワードと一致す
るものがあるか否かを検索し、一致した場合には一致し
たワード列の中で最もワード長が長いものの一致長を符
号化した一致長符号と、その辞書内の位置を符号化した
位置符号とを圧縮データとして出力する。
【0019】また、一致しない場合には、一致していな
い旨を表す一致長符号と、各ワードについて存在確率の
高い順に短い順位符号を対応させた順位テーブルによっ
て処理データの先頭ワードに対応させて得られた順位符
号とを圧縮データとして出力する。
い旨を表す一致長符号と、各ワードについて存在確率の
高い順に短い順位符号を対応させた順位テーブルによっ
て処理データの先頭ワードに対応させて得られた順位符
号とを圧縮データとして出力する。
【0020】上述した圧縮処理が終了した後、データバ
ッファ,辞書バッファ,順位テーブルのそれぞれが更新
され、常に最新の情報に基づくデータ圧縮が行われるよ
うになっている。
ッファ,辞書バッファ,順位テーブルのそれぞれが更新
され、常に最新の情報に基づくデータ圧縮が行われるよ
うになっている。
【0021】請求項1の発明においては、順次入力され
るデータによって辞書が作成されるため、ワンパス構成
とすることができ、リアルタイムの圧縮処理が可能とな
る。また、辞書内に該当するデータ(ワード)が存在し
ない場合であっても、出現確率の高いものほど短い符号
に割り当てた圧縮処理が行われるため、元データよりも
短いビット長で符号化処理を行うことができ、全入力デ
ータに対して常に高い圧縮率を維持したデータ圧縮を行
うことが可能となる。
るデータによって辞書が作成されるため、ワンパス構成
とすることができ、リアルタイムの圧縮処理が可能とな
る。また、辞書内に該当するデータ(ワード)が存在し
ない場合であっても、出現確率の高いものほど短い符号
に割り当てた圧縮処理が行われるため、元データよりも
短いビット長で符号化処理を行うことができ、全入力デ
ータに対して常に高い圧縮率を維持したデータ圧縮を行
うことが可能となる。
【0022】また、請求項2の発明では、上述した一致
長符号化手段をトップバッファとチェーンバッファとを
含んで構成している。このトップバッファには、辞書の
各ワードを先頭から順に見ていった場合に異なるワード
毎の先頭アドレスが格納されており、チェーンバッファ
には辞書内の各ワードを先頭から順に見ていった場合に
同じワードが次に辞書内のどのアドレスに格納されてい
るかを示すデータが格納されている。したがって、デー
タバッファ内の各ワードを辞書内で検索する場合に、ト
ップファッファとチェーンバッファをアクセスすること
により、辞書の該当アドレスを速やかに知ることがで
き、処理の高速化が可能となる。
長符号化手段をトップバッファとチェーンバッファとを
含んで構成している。このトップバッファには、辞書の
各ワードを先頭から順に見ていった場合に異なるワード
毎の先頭アドレスが格納されており、チェーンバッファ
には辞書内の各ワードを先頭から順に見ていった場合に
同じワードが次に辞書内のどのアドレスに格納されてい
るかを示すデータが格納されている。したがって、デー
タバッファ内の各ワードを辞書内で検索する場合に、ト
ップファッファとチェーンバッファをアクセスすること
により、辞書の該当アドレスを速やかに知ることがで
き、処理の高速化が可能となる。
【0023】また、請求項3の発明は、上述した辞書バ
ッファおよびデータバッファを複数のメモリ素子によっ
て構成しており、しかもこれら各メモリ素子は各アドレ
スが互いに連続している。そして、辞書を更新する際に
は、符号化が終了した非圧縮データの一部あるいは全部
を構成する各ワードを、これら複数のメモリ素子のそれ
ぞれに分散して格納し、辞書検索時にはこれら複数のメ
モリ素子から同時にデータの読出しを行う。したがっ
て、メモリ素子の個数分のワード長を同時に比較するこ
とができ、一致長が長い場合の一致長判定を高速に処理
することができる。
ッファおよびデータバッファを複数のメモリ素子によっ
て構成しており、しかもこれら各メモリ素子は各アドレ
スが互いに連続している。そして、辞書を更新する際に
は、符号化が終了した非圧縮データの一部あるいは全部
を構成する各ワードを、これら複数のメモリ素子のそれ
ぞれに分散して格納し、辞書検索時にはこれら複数のメ
モリ素子から同時にデータの読出しを行う。したがっ
て、メモリ素子の個数分のワード長を同時に比較するこ
とができ、一致長が長い場合の一致長判定を高速に処理
することができる。
【0024】また、請求項4のデータ伸張装置は、上述
したデータ圧縮装置によって圧縮されたデータを伸張す
ることにより、データの復号を行うものである。入力さ
れる圧縮データの先頭部分に位置する一致長符号が一致
を示している場合には、その次に位置する位置符号を復
号化することにより辞書内の格納位置が得られる。そし
て、この格納位置を先頭アドレスとして一致長の分だけ
辞書からデータの読出しを行うことによりデータの伸張
が行われ、非圧縮データが得られる。また、上述した一
致長符号が不一致を示している場合には、データ圧縮装
置内の順位テーブルと同じ内容の順位テーブルを検索す
ることにより、データの伸張が行われ、非圧縮データが
得られる。この順位テーブルは検索された後にその都度
変更され、上述したデータ圧縮装置内の順位テーブルと
常に同じ手順で更新が行われるようになっている。
したデータ圧縮装置によって圧縮されたデータを伸張す
ることにより、データの復号を行うものである。入力さ
れる圧縮データの先頭部分に位置する一致長符号が一致
を示している場合には、その次に位置する位置符号を復
号化することにより辞書内の格納位置が得られる。そし
て、この格納位置を先頭アドレスとして一致長の分だけ
辞書からデータの読出しを行うことによりデータの伸張
が行われ、非圧縮データが得られる。また、上述した一
致長符号が不一致を示している場合には、データ圧縮装
置内の順位テーブルと同じ内容の順位テーブルを検索す
ることにより、データの伸張が行われ、非圧縮データが
得られる。この順位テーブルは検索された後にその都度
変更され、上述したデータ圧縮装置内の順位テーブルと
常に同じ手順で更新が行われるようになっている。
【0025】請求項4の発明においては、データ圧縮の
場合と同様にリアルタイムで伸張処理を行うことができ
る。
場合と同様にリアルタイムで伸張処理を行うことができ
る。
【0026】
【実施例】以下、図面に基づいて本発明の一実施例につ
いて詳細に説明する。
いて詳細に説明する。
【0027】図1は、本発明を適用した一実施例のデー
タ圧縮装置の構成を示す図である。同図に示すデータ圧
縮装置は、データバッファ10,辞書バッファ12,バ
ッファ更新部14,一致長符号化部16,位置符号化部
20,順位符号化部24,テーブル更新部28を含んで
構成される。
タ圧縮装置の構成を示す図である。同図に示すデータ圧
縮装置は、データバッファ10,辞書バッファ12,バ
ッファ更新部14,一致長符号化部16,位置符号化部
20,順位符号化部24,テーブル更新部28を含んで
構成される。
【0028】データバッファ10は、これから処理され
るデータ列を一時保持するものであり、圧縮処理が終了
したデータ分だけ新たなデータ列が入力され、順次内容
が更新されるようになっている。また、辞書バッファ1
2は、処理が終了した非圧縮データを辞書として格納す
るものであり、新たに圧縮処理が行われる毎に古い内容
が削除され更新が行われるようになっている。
るデータ列を一時保持するものであり、圧縮処理が終了
したデータ分だけ新たなデータ列が入力され、順次内容
が更新されるようになっている。また、辞書バッファ1
2は、処理が終了した非圧縮データを辞書として格納す
るものであり、新たに圧縮処理が行われる毎に古い内容
が削除され更新が行われるようになっている。
【0029】図2は、データバッファ10および辞書バ
ッファ12と入力データ列との関係を概略的に示す図で
ある。同図において、矢印aは入力されるデータ列の方
向を示しており、入力データ列の各ワードを1文字のア
ルファベットで示した場合が示されている。入力された
データ列は、まずデータバッファ10に順次入力され格
納される。そして、このデータバッファ10に格納され
たデータ列の先頭から順にデータ圧縮処理が行われ、処
理が終了したデータ列が次に辞書バッファ12に格納さ
れるようになっている。
ッファ12と入力データ列との関係を概略的に示す図で
ある。同図において、矢印aは入力されるデータ列の方
向を示しており、入力データ列の各ワードを1文字のア
ルファベットで示した場合が示されている。入力された
データ列は、まずデータバッファ10に順次入力され格
納される。そして、このデータバッファ10に格納され
たデータ列の先頭から順にデータ圧縮処理が行われ、処
理が終了したデータ列が次に辞書バッファ12に格納さ
れるようになっている。
【0030】データバッファ10および辞書バッファ1
2は所定の容量(例えば数千ワード分)を有している
が、図2では説明の都合上それぞれが16ワード分の容
量を有するものとする。また、データバッファ10に格
納したデータ列と辞書バッファ12に格納したデータ列
とを比較する必要があるため、データバッファ10と辞
書バッファ12とは同じ容量であるか、あるいは辞書バ
ッファ12の方が大きな容量を有している。
2は所定の容量(例えば数千ワード分)を有している
が、図2では説明の都合上それぞれが16ワード分の容
量を有するものとする。また、データバッファ10に格
納したデータ列と辞書バッファ12に格納したデータ列
とを比較する必要があるため、データバッファ10と辞
書バッファ12とは同じ容量であるか、あるいは辞書バ
ッファ12の方が大きな容量を有している。
【0031】バッファ更新部14は、データバッファ1
0および辞書バッファ12の内容を更新するものであ
る。データバッファ10に格納された文字列は、その先
頭から順に符号化されるため、この符号化が終了したデ
ータ列を辞書バッファ12に移すとともに、その分の新
たな非圧縮データをデータバッファ10に追加して格納
する処理が行われる。
0および辞書バッファ12の内容を更新するものであ
る。データバッファ10に格納された文字列は、その先
頭から順に符号化されるため、この符号化が終了したデ
ータ列を辞書バッファ12に移すとともに、その分の新
たな非圧縮データをデータバッファ10に追加して格納
する処理が行われる。
【0032】一致長符号化部16は、データバッファ1
0に格納されたデータ列の先頭部分に位置する1ワード
あるいは複数ワードが辞書バッファ12内の辞書に存在
するか否かを検索し、その一致長に対応する一致長符号
を出力する。この一致長符号の作成は、一致長符号テー
ブル18に基づいて、検出された一致長に1対1に対応
する一致長符号を得ることにより行われる。
0に格納されたデータ列の先頭部分に位置する1ワード
あるいは複数ワードが辞書バッファ12内の辞書に存在
するか否かを検索し、その一致長に対応する一致長符号
を出力する。この一致長符号の作成は、一致長符号テー
ブル18に基づいて、検出された一致長に1対1に対応
する一致長符号を得ることにより行われる。
【0033】図3は、一致長符号テーブル18の詳細な
内容を示す図である。同図に示すように、不一致の場合
には一致長符号“00”が割り当てられ、一致長が長くな
るにしたがって次第にビット長が長い一致長符号が割り
当てられている。ただし、一致長に比例して一致長符号
のビット長が長くなるわけではないので、一致長が長く
なるに従い圧縮率が高まるように一致長符号テーブル1
8が作成されている。
内容を示す図である。同図に示すように、不一致の場合
には一致長符号“00”が割り当てられ、一致長が長くな
るにしたがって次第にビット長が長い一致長符号が割り
当てられている。ただし、一致長に比例して一致長符号
のビット長が長くなるわけではないので、一致長が長く
なるに従い圧縮率が高まるように一致長符号テーブル1
8が作成されている。
【0034】また、位置符号化部20は、一致長符号化
部16によって一致判定が行われた場合に、一致したデ
ータの辞書内の位置を符号化した位置符号を出力するも
のである。この符号化は、位置符号テーブル22を検索
することにより、辞書内の格納位置に1対1に対応した
位置符号を得ることにより行われる。また、辞書内の格
納位置としては、例えば図2においてデータバッファ1
0側に最も近いアドレスを「1」とし、以下遠ざかって
いくにしたがって「2」,「3」,……となる相対アド
レスが用いられる。
部16によって一致判定が行われた場合に、一致したデ
ータの辞書内の位置を符号化した位置符号を出力するも
のである。この符号化は、位置符号テーブル22を検索
することにより、辞書内の格納位置に1対1に対応した
位置符号を得ることにより行われる。また、辞書内の格
納位置としては、例えば図2においてデータバッファ1
0側に最も近いアドレスを「1」とし、以下遠ざかって
いくにしたがって「2」,「3」,……となる相対アド
レスが用いられる。
【0035】図4は、位置符号化部20内の位置符号テ
ーブル22の詳細な一例を示す図である。同図に示すよ
うに、相対アドレス値(位置)が小さいものほど短いビ
ット長の位置符号が割り当てられており、一致長が同じ
である場合には最も最近に処理されたデータ列が繰り返
し現れた場合に最も圧縮率が高くなるようになってい
る。
ーブル22の詳細な一例を示す図である。同図に示すよ
うに、相対アドレス値(位置)が小さいものほど短いビ
ット長の位置符号が割り当てられており、一致長が同じ
である場合には最も最近に処理されたデータ列が繰り返
し現れた場合に最も圧縮率が高くなるようになってい
る。
【0036】なお、上述した図3および図4で示した一
致長符号および位置符号は、ともに可変長符号となって
おり、それらの符号を分離するための特別なビットデー
タを挿入するわけではないので、後の伸張処理によって
その内容のみから分離できるような内容の符号が割り当
てられている。
致長符号および位置符号は、ともに可変長符号となって
おり、それらの符号を分離するための特別なビットデー
タを挿入するわけではないので、後の伸張処理によって
その内容のみから分離できるような内容の符号が割り当
てられている。
【0037】順位符号化部24は、一致長符号化部16
によって不一致判定が行われた場合に、データバッファ
10に格納された先頭のワードに対応した順位符号を出
力するものである。この符号化は、この先頭のワードの
順位を順位テーブル27を検索して読み出した後、各ワ
ードの最近の出現確率が高いもの程短い順位符号を対応
させた順位符号テーブル26を検索することにより行わ
れる。
によって不一致判定が行われた場合に、データバッファ
10に格納された先頭のワードに対応した順位符号を出
力するものである。この符号化は、この先頭のワードの
順位を順位テーブル27を検索して読み出した後、各ワ
ードの最近の出現確率が高いもの程短い順位符号を対応
させた順位符号テーブル26を検索することにより行わ
れる。
【0038】図5は、順位符号化部24内の順位符号テ
ーブル26の詳細な一例を示す図である。同図に示すよ
うに、出現頻度の高い順位ほど短い符号が割り当てられ
ており、辞書内に該当する文字が存在しない場合であっ
ても高い圧縮率が得られるようになっている。
ーブル26の詳細な一例を示す図である。同図に示すよ
うに、出現頻度の高い順位ほど短い符号が割り当てられ
ており、辞書内に該当する文字が存在しない場合であっ
ても高い圧縮率が得られるようになっている。
【0039】テーブル更新部28は、順位符号化部28
内の順位符号テーブル26の更新を行う。すなわち、上
述したように順位符号テーブル26は、最近の出現頻度
の高い順に短い符号を割り当てる必要があるため、符号
化が行われる毎に該当する文字の順位を上げる必要があ
り、この処理をテーブル更新部28によって行ってい
る。
内の順位符号テーブル26の更新を行う。すなわち、上
述したように順位符号テーブル26は、最近の出現頻度
の高い順に短い符号を割り当てる必要があるため、符号
化が行われる毎に該当する文字の順位を上げる必要があ
り、この処理をテーブル更新部28によって行ってい
る。
【0040】次に、上述した構成を有する一実施例のデ
ータ圧縮装置の動作を説明する。一例として、図2に示
すデータ列が入力され、データバッファ10および辞書
バッファ12のそれぞれに未処理のデータ列および処理
済みのデータ列が格納されているものとする。
ータ圧縮装置の動作を説明する。一例として、図2に示
すデータ列が入力され、データバッファ10および辞書
バッファ12のそれぞれに未処理のデータ列および処理
済みのデータ列が格納されているものとする。
【0041】まず、一致長符号化部16は、辞書バッフ
ァ12内の辞書において、入力されてデータバッファ1
0内に格納されたデータ列に一致する最も長いデータ列
の検索を行う。図2に示す具体例においては、まずデー
タバッファ10に格納された先頭の文字「G」が辞書バ
ッファ12の辞書内に存在するか否かが検索され、存在
する場合には次に先頭の2文字「GC」が存在するか否
かが検索される。このようにして辞書内に一致する文字
列が見出だされなくなるまで、文字列の検索が行われ
る。
ァ12内の辞書において、入力されてデータバッファ1
0内に格納されたデータ列に一致する最も長いデータ列
の検索を行う。図2に示す具体例においては、まずデー
タバッファ10に格納された先頭の文字「G」が辞書バ
ッファ12の辞書内に存在するか否かが検索され、存在
する場合には次に先頭の2文字「GC」が存在するか否
かが検索される。このようにして辞書内に一致する文字
列が見出だされなくなるまで、文字列の検索が行われ
る。
【0042】ところで、図2に示す場合にはデータバッ
ファ10内の先頭の文字「G」が辞書バッファ12の辞
書内に存在しないため、一致長が「0」となる。一致長
符号化部16は、図3に内容を示した一致長符号テーブ
ル18を検索し、一致長「0」に対応する一致長符号
“00”を読出して出力する。
ファ10内の先頭の文字「G」が辞書バッファ12の辞
書内に存在しないため、一致長が「0」となる。一致長
符号化部16は、図3に内容を示した一致長符号テーブ
ル18を検索し、一致長「0」に対応する一致長符号
“00”を読出して出力する。
【0043】また、上述した不一致を示す情報が一致長
符号化部16から順位符号化部24に入力され、順位符
号化部24における処理が開始される。
符号化部16から順位符号化部24に入力され、順位符
号化部24における処理が開始される。
【0044】順位符号化部24は、データバッファ10
内の先頭に位置する文字「G」の順位を順位テーブル2
7から読出し、この順位に基づいて順位符号テーブル2
6を検索することにより、対応する順位符号を読出して
出力する。このように辞書バッファ12内の辞書に該当
する文字が存在しない場合には、データバッファ10内
の先頭文字に対応して、一致長符号化部16から一致長
符号“00”が、順位符号化部24から順位符号が順に圧
縮データとして出力される。
内の先頭に位置する文字「G」の順位を順位テーブル2
7から読出し、この順位に基づいて順位符号テーブル2
6を検索することにより、対応する順位符号を読出して
出力する。このように辞書バッファ12内の辞書に該当
する文字が存在しない場合には、データバッファ10内
の先頭文字に対応して、一致長符号化部16から一致長
符号“00”が、順位符号化部24から順位符号が順に圧
縮データとして出力される。
【0045】このようにして、順位符号化部24による
順位符号の作成が行われた後、テーブル更新部28によ
って順位テーブル27の更新が行われる。
順位符号の作成が行われた後、テーブル更新部28によ
って順位テーブル27の更新が行われる。
【0046】図6は、順テーブルの更新を説明するため
の図である。同図(A)に示すように、例えば文字
「G」の出現頻度が現時点において第8番目であった場
合には、順位符号化部24は、この順位「8」に対応す
る順位符号“010011”を図5に示した順位符号テーブル
26から読み出す。この処理に続けて、あるいはこの処
理と並行してテーブル更新部28は文字「G」の順位を
上げる処理を行う。例えば、図6(B)に示すように順
位を1つ上げて順位テーブル27の更新を行う。
の図である。同図(A)に示すように、例えば文字
「G」の出現頻度が現時点において第8番目であった場
合には、順位符号化部24は、この順位「8」に対応す
る順位符号“010011”を図5に示した順位符号テーブル
26から読み出す。この処理に続けて、あるいはこの処
理と並行してテーブル更新部28は文字「G」の順位を
上げる処理を行う。例えば、図6(B)に示すように順
位を1つ上げて順位テーブル27の更新を行う。
【0047】このようにデータ圧縮が行われると、バッ
ファ更新部14は、処理の対象となった文字「G」のみ
を辞書バッファ12に移すとともに、データバッファ1
0を1文字分更新する。図7は、更新後のデータバッフ
ァ10および辞書バッファ12の内容を示す図である。
同図(A)は、図2に示したデータバッファ10の先頭
文字「G」のみが辞書バッファ12に移された状態を示
している。
ファ更新部14は、処理の対象となった文字「G」のみ
を辞書バッファ12に移すとともに、データバッファ1
0を1文字分更新する。図7は、更新後のデータバッフ
ァ10および辞書バッファ12の内容を示す図である。
同図(A)は、図2に示したデータバッファ10の先頭
文字「G」のみが辞書バッファ12に移された状態を示
している。
【0048】以上は、辞書バッファ12内の辞書に該当
する文字がない場合のデータ圧縮であったが、次に、辞
書内に該当する文字列が存在する場合について説明す
る。
する文字がない場合のデータ圧縮であったが、次に、辞
書内に該当する文字列が存在する場合について説明す
る。
【0049】一致長符号化部16は、次にデータバッフ
ァ10の先頭に位置する文字あるいは文字列が辞書バッ
ファ12の辞書内に存在するか否かを検出する。図7
(A)に示す場合には、先頭の文字「C」が同図(a)
に示すように辞書バッファ12の相対アドレス「2」に
存在する。同様に、先頭の2文字「CB」が同図(b)
に示すように辞書バッファ12の相対アドレス「9」,
「10」に存在する。同様に、先頭の文字列「CBAD
ACBEBADFDA」が辞書バッファ12の相対アド
レス「3」〜「16」に存在する。このように辞書内の
複数箇所にデータバッファ10内の文字列が存在する
が、その中でも(c)に示すものの一致長「14」が最
も長いため、一致長符号化部16は、この一致長「1
4」に対応する一致長符号“101001”を図3に内容を示
す一致長符号テーブル18から読出して出力する。ま
た、このように一致した文字あるいは文字列がある場合
には、その旨の情報が位置符号化部20に送られる。
ァ10の先頭に位置する文字あるいは文字列が辞書バッ
ファ12の辞書内に存在するか否かを検出する。図7
(A)に示す場合には、先頭の文字「C」が同図(a)
に示すように辞書バッファ12の相対アドレス「2」に
存在する。同様に、先頭の2文字「CB」が同図(b)
に示すように辞書バッファ12の相対アドレス「9」,
「10」に存在する。同様に、先頭の文字列「CBAD
ACBEBADFDA」が辞書バッファ12の相対アド
レス「3」〜「16」に存在する。このように辞書内の
複数箇所にデータバッファ10内の文字列が存在する
が、その中でも(c)に示すものの一致長「14」が最
も長いため、一致長符号化部16は、この一致長「1
4」に対応する一致長符号“101001”を図3に内容を示
す一致長符号テーブル18から読出して出力する。ま
た、このように一致した文字あるいは文字列がある場合
には、その旨の情報が位置符号化部20に送られる。
【0050】位置符号化部20は、一致長符号化部16
が検出した辞書内の最も長い文字列の先頭位置を相対ア
ドレスで表すとともに、この先頭位置に対応する位置符
号を図4に示した位置符号テーブル22から読み出して
出力する。図7(A)に示す場合においては、辞書内の
一致する文字列の先頭が相対アドレス「16」に位置し
ており、位置符号化部20は、この相対アドレス「1
6」に対応する位置符号“0100011 ”を図4に内容を示
す位置符号テーブル22から読み出して出力する。
が検出した辞書内の最も長い文字列の先頭位置を相対ア
ドレスで表すとともに、この先頭位置に対応する位置符
号を図4に示した位置符号テーブル22から読み出して
出力する。図7(A)に示す場合においては、辞書内の
一致する文字列の先頭が相対アドレス「16」に位置し
ており、位置符号化部20は、この相対アドレス「1
6」に対応する位置符号“0100011 ”を図4に内容を示
す位置符号テーブル22から読み出して出力する。
【0051】このようにして、辞書内に対応する文字列
が存在する場合には、その一致長に対応する一致長符号
とその先頭文字の格納位置に対応する位置符号とを圧縮
データとして出力する。その後、バッファ更新部14に
より、辞書バッファ12およびデータバッファ10の更
新が行われる。
が存在する場合には、その一致長に対応する一致長符号
とその先頭文字の格納位置に対応する位置符号とを圧縮
データとして出力する。その後、バッファ更新部14に
より、辞書バッファ12およびデータバッファ10の更
新が行われる。
【0052】図7(B)には、このようにして更新が成
された後のデータバッファ10および辞書バッファ12
の内容が示されている。
された後のデータバッファ10および辞書バッファ12
の内容が示されている。
【0053】このように、本実施例のデータ圧縮装置に
よる処理を行った場合には、辞書内に該当する文字が存
在しない場合でもあっても出現頻度の高いもの程短いビ
ット長の符号によってデータ圧縮が行われ、辞書内に該
当する文字列が存在する場合にはその一致長と文字列の
格納位置とを符号化してデータ圧縮が行われる。したが
って、いずれの場合であっても元データよりもビット長
が短くなり、全体として非常に高い圧縮率を得ることが
できる。例えば、上述した処理によって得られる圧縮後
のデータは“00”,“010011”,“101001”,“010001
00”の計21ビットであり、基データは「GCBADA
CBEBABFDA」の15文字となる。1文字を8ビ
ットで構成するものとすれば、15文字は120ビット
であり、全体の圧縮率は(21/120)×100=1
7%となり、圧縮効率が非常に高いことがわかる。
よる処理を行った場合には、辞書内に該当する文字が存
在しない場合でもあっても出現頻度の高いもの程短いビ
ット長の符号によってデータ圧縮が行われ、辞書内に該
当する文字列が存在する場合にはその一致長と文字列の
格納位置とを符号化してデータ圧縮が行われる。したが
って、いずれの場合であっても元データよりもビット長
が短くなり、全体として非常に高い圧縮率を得ることが
できる。例えば、上述した処理によって得られる圧縮後
のデータは“00”,“010011”,“101001”,“010001
00”の計21ビットであり、基データは「GCBADA
CBEBABFDA」の15文字となる。1文字を8ビ
ットで構成するものとすれば、15文字は120ビット
であり、全体の圧縮率は(21/120)×100=1
7%となり、圧縮効率が非常に高いことがわかる。
【0054】また、上述した本実施例のデータ圧縮装置
によれば、入力される非圧縮データをデータバッファ1
0および辞書バッファ12のそれぞれに順次格納するこ
とにより一連の圧縮処理が行われるため、予め辞書を作
成する等の処理が不要であり、リアルタイムで圧縮処理
を行うことができる。
によれば、入力される非圧縮データをデータバッファ1
0および辞書バッファ12のそれぞれに順次格納するこ
とにより一連の圧縮処理が行われるため、予め辞書を作
成する等の処理が不要であり、リアルタイムで圧縮処理
を行うことができる。
【0055】次に、上述したデータ圧縮に対応して行わ
れるデータ伸張について説明する。例えば上述したデー
タ圧縮によって得られた圧縮データ“00”,“01001
1”,“101001”,“01000100”が入力され、これらら
の圧縮データに基づいてデータ復元すなわちデータ伸張
を行う場合について説明する。
れるデータ伸張について説明する。例えば上述したデー
タ圧縮によって得られた圧縮データ“00”,“01001
1”,“101001”,“01000100”が入力され、これらら
の圧縮データに基づいてデータ復元すなわちデータ伸張
を行う場合について説明する。
【0056】図8は、本実施例のデータ伸張装置の構成
を示す図である。
を示す図である。
【0057】同図に示すデータ伸長装置は、一致長復号
化部30,位置復号化部34,順位復号化部38,テー
ブル更新部42,辞書読出し制御部44,辞書バッファ
46,辞書更新部48を含んで構成される。
化部30,位置復号化部34,順位復号化部38,テー
ブル更新部42,辞書読出し制御部44,辞書バッファ
46,辞書更新部48を含んで構成される。
【0058】一致長復号化部30は、入力される圧縮デ
ータの先頭部分に位置する一致長符号を一致長符号テー
ブル32に基づいて復号化することにより、対応する一
致長を出力する。また、この一致長符号は、“00”の場
合にはデータ圧縮において辞書内に該当する文字列がな
い不一致状態を示しているため、一致長復号化部30
は、この一致長符号“00”が入力された場合には不一致
の旨を順位復号化部38に通知する。一方、それ以外の
一致長符号が入力された場合には、一致した旨を位置復
号化部34に通知する。
ータの先頭部分に位置する一致長符号を一致長符号テー
ブル32に基づいて復号化することにより、対応する一
致長を出力する。また、この一致長符号は、“00”の場
合にはデータ圧縮において辞書内に該当する文字列がな
い不一致状態を示しているため、一致長復号化部30
は、この一致長符号“00”が入力された場合には不一致
の旨を順位復号化部38に通知する。一方、それ以外の
一致長符号が入力された場合には、一致した旨を位置復
号化部34に通知する。
【0059】なお、上述した一致長符号テーブル32及
び後述する位置符号テーブル36,順位符号テーブル4
0は、先に説明した一致長符号テーブル18,位置符号
テーブル22,順位符号テーブル26と同一内容を有し
ており、その詳細は図3〜図5に示した通りである。
び後述する位置符号テーブル36,順位符号テーブル4
0は、先に説明した一致長符号テーブル18,位置符号
テーブル22,順位符号テーブル26と同一内容を有し
ており、その詳細は図3〜図5に示した通りである。
【0060】位置復号化部34は、一致長復号化部30
から一致した旨の通知を受けた場合に、一致長符号に続
けて入力される位置符号の復号化を位置符号テーブル3
6に基づいて行う。この復号化処理によって辞書バッフ
ァ46内の位置データが出力される。
から一致した旨の通知を受けた場合に、一致長符号に続
けて入力される位置符号の復号化を位置符号テーブル3
6に基づいて行う。この復号化処理によって辞書バッフ
ァ46内の位置データが出力される。
【0061】辞書読出し制御部44は、位置復号化部3
4から出力される位置データに基づいて、辞書バッファ
46内の格納位置を特定し、この格納位置を先頭アドレ
スとしてそれに続く一致長分のデータを伸張データとし
て出力する。
4から出力される位置データに基づいて、辞書バッファ
46内の格納位置を特定し、この格納位置を先頭アドレ
スとしてそれに続く一致長分のデータを伸張データとし
て出力する。
【0062】また、順位復号化部38は、一致長復号化
部30から不一致の旨が通知されると、順位復号テーブ
ル40に基づいて、一致長符号に続けて入力される順位
符号から対応する順位を読み出す。また、順位復号化部
38は、順位テーブル41に基づいて、順位復号テーブ
ルから読み出した順位に対応する文字を伸張データとし
て出力する。テーブル更新部42は、順位復号化部38
によって順位テーブル41がアクセスされる毎にこの順
位テーブル41の内容を更新する。
部30から不一致の旨が通知されると、順位復号テーブ
ル40に基づいて、一致長符号に続けて入力される順位
符号から対応する順位を読み出す。また、順位復号化部
38は、順位テーブル41に基づいて、順位復号テーブ
ルから読み出した順位に対応する文字を伸張データとし
て出力する。テーブル更新部42は、順位復号化部38
によって順位テーブル41がアクセスされる毎にこの順
位テーブル41の内容を更新する。
【0063】また、辞書更新部48は、辞書読出し制御
部44あるいは順位復号化部38から伸張データが出力
される毎に辞書バッファ46の更新を行う。具体的に
は、伸張後の非圧縮データである文字あるいは文字列を
辞書バッファ46内の辞書に含めると共に、古くなった
辞書内の文字をこの新規に含めた文字あるいは文字列の
分だけ削除する処理を行う。
部44あるいは順位復号化部38から伸張データが出力
される毎に辞書バッファ46の更新を行う。具体的に
は、伸張後の非圧縮データである文字あるいは文字列を
辞書バッファ46内の辞書に含めると共に、古くなった
辞書内の文字をこの新規に含めた文字あるいは文字列の
分だけ削除する処理を行う。
【0064】次に、上述した構成を有するデータ伸張装
置の動作について説明する。
置の動作について説明する。
【0065】図9は、辞書バッファ46の内容の一例を
示す図である。同図(A)は、上述した圧縮処理によっ
て得られた圧縮データが入力される前の状態に対応する
ものであり、図2に示したデータ圧縮装置の辞書バッフ
ァ12の格納内容と同じとなっている。
示す図である。同図(A)は、上述した圧縮処理によっ
て得られた圧縮データが入力される前の状態に対応する
ものであり、図2に示したデータ圧縮装置の辞書バッフ
ァ12の格納内容と同じとなっている。
【0066】圧縮データが入力されると、まず一致長復
号化部30は、その先頭部分に位置する可変長の一致長
符号を分離し、一致長符号テーブル32に基づいて復号
化処理を行う。最初に入力される一致長符号は“00”で
あるため、一致長復号化部30は、図3に示すようにこ
の一致長符号に対応する一致長「0」を読出して出力す
る。
号化部30は、その先頭部分に位置する可変長の一致長
符号を分離し、一致長符号テーブル32に基づいて復号
化処理を行う。最初に入力される一致長符号は“00”で
あるため、一致長復号化部30は、図3に示すようにこ
の一致長符号に対応する一致長「0」を読出して出力す
る。
【0067】次に順位復号化部38は、上述した一致長
符号に続けて入力される順位符号“010011”に対応する
順位データ「8」を順位テーブル41から読み出す。そ
して、この順位データに基づいて順位符号テーブル40
をアクセスし、対応する1文字を特定し、伸張データと
して出力する。
符号に続けて入力される順位符号“010011”に対応する
順位データ「8」を順位テーブル41から読み出す。そ
して、この順位データに基づいて順位符号テーブル40
をアクセスし、対応する1文字を特定し、伸張データと
して出力する。
【0068】なお、この順位テーブル41は上述した圧
縮装置の順位テーブル27に対応するものであり、同一
の手順にしたがってテーブル更新部42による更新が行
われるようになっている。すなわち、上述した順位復号
化部38による処理は、図6(A)に示した内容を有す
る順位テーブル41を用いることにより行われ、この処
理が終了した後テーブル更新部42よる更新処理が行わ
れて、順位テーブル41は同図(B)の内容となる。
縮装置の順位テーブル27に対応するものであり、同一
の手順にしたがってテーブル更新部42による更新が行
われるようになっている。すなわち、上述した順位復号
化部38による処理は、図6(A)に示した内容を有す
る順位テーブル41を用いることにより行われ、この処
理が終了した後テーブル更新部42よる更新処理が行わ
れて、順位テーブル41は同図(B)の内容となる。
【0069】このようにして、辞書バッファ46内に該
当する文字が存在しない場合の伸張処理が行われる。同
様にして次の圧縮データが入力されると、一致長復号化
部30は、その先頭部分に位置する一致長符号“10100
1”のみを分離し、一致長符号テーブル32をアクセス
することにより、対応する一致長「14」を出力する。
当する文字が存在しない場合の伸張処理が行われる。同
様にして次の圧縮データが入力されると、一致長復号化
部30は、その先頭部分に位置する一致長符号“10100
1”のみを分離し、一致長符号テーブル32をアクセス
することにより、対応する一致長「14」を出力する。
【0070】また、位置復号化部34、一致長復号化部
30に入力される一致長符号が“00”でないことによ
り、あるいは一致長復号化部30から出力される一致長
が「0」でないことにより処理を開始する。すなわち、
位置復号化部34は、一致長符号に続けて入力される位
置符号“101001”を分離し、位置符号テーブル36をア
クセスすることにより、対応する位置データ「16」を
読出して出力する。
30に入力される一致長符号が“00”でないことによ
り、あるいは一致長復号化部30から出力される一致長
が「0」でないことにより処理を開始する。すなわち、
位置復号化部34は、一致長符号に続けて入力される位
置符号“101001”を分離し、位置符号テーブル36をア
クセスすることにより、対応する位置データ「16」を
読出して出力する。
【0071】次に、辞書読出し制御部44は、位置復号
化部34から出力される位置データに基づいて辞書バッ
ファ46の格納位置(該当する文字列の先頭アドレス)
を特定し、この格納位置を先頭として格納されている一
致長分の文字列を順に読出し、伸張データとして出力す
る。上述したデータ圧縮装置において説明したように、
位置復号化部34から出力される位置データは辞書内の
文字列の先頭部分の格納位置を示すものであり、データ
の最後尾からの相対アドレスとして認識されている。
化部34から出力される位置データに基づいて辞書バッ
ファ46の格納位置(該当する文字列の先頭アドレス)
を特定し、この格納位置を先頭として格納されている一
致長分の文字列を順に読出し、伸張データとして出力す
る。上述したデータ圧縮装置において説明したように、
位置復号化部34から出力される位置データは辞書内の
文字列の先頭部分の格納位置を示すものであり、データ
の最後尾からの相対アドレスとして認識されている。
【0072】このようにして順位復号化部38によって
伸張処理が行われた後、辞書更新部48により図9
(B)に示すように辞書バッファ46の更新が行われ
る。また、次に位置復号化部34,辞書読出し制御部4
4等により伸張処理が行われた後、辞書更新部48によ
り図9(C)に示すように辞書バッファ46の更新が行
われる。
伸張処理が行われた後、辞書更新部48により図9
(B)に示すように辞書バッファ46の更新が行われ
る。また、次に位置復号化部34,辞書読出し制御部4
4等により伸張処理が行われた後、辞書更新部48によ
り図9(C)に示すように辞書バッファ46の更新が行
われる。
【0073】このように、圧縮データが入力されると、
その先頭に位置する一致長符号に基づいて一致長の復号
が行われるとともに、この一致長符号に基づいて次に続
けて入力される符号が位置符号であるか順位符号である
かが判明し、位置符号化部34あるいは順位符号化部3
8による処理が行われる。位置符号であった場合には、
さらに辞書読出し制御部44によって辞書バッファ46
内の辞書がアクセスされ、データの伸張処理が行われ
る。したがって、いずれの場合でもあっても順次入力さ
れる圧縮データに基づいてリアルタイムに伸張処理を行
うことができる。
その先頭に位置する一致長符号に基づいて一致長の復号
が行われるとともに、この一致長符号に基づいて次に続
けて入力される符号が位置符号であるか順位符号である
かが判明し、位置符号化部34あるいは順位符号化部3
8による処理が行われる。位置符号であった場合には、
さらに辞書読出し制御部44によって辞書バッファ46
内の辞書がアクセスされ、データの伸張処理が行われ
る。したがって、いずれの場合でもあっても順次入力さ
れる圧縮データに基づいてリアルタイムに伸張処理を行
うことができる。
【0074】次に、上述した本実施例のデータ圧縮装置
をさらに具体化した構成および動作について説明する。
具体的にデータ圧縮処理を行う場合には、辞書バッファ
内の辞書の検索を速やかに行う必要がある。そのための
工夫として、辞書バッファに対応させてトップバッファ
およびチェーンバッファが設けられており、検索対象と
なる文字が速やかに検索できるようになっている。
をさらに具体化した構成および動作について説明する。
具体的にデータ圧縮処理を行う場合には、辞書バッファ
内の辞書の検索を速やかに行う必要がある。そのための
工夫として、辞書バッファに対応させてトップバッファ
およびチェーンバッファが設けられており、検索対象と
なる文字が速やかに検索できるようになっている。
【0075】図10は、トップバッファおよびチェーン
バッファの内容およびその使い方を説明するための図で
ある。同図において、トップバッファ50は、辞書バッ
ファ12の内容をデータバッファ10側から見ていった
場合に、該当する文字が最初に現れる辞書バッファ12
のアドレスをこの該当文字に対応させて格納するもので
ある。例えば、図10に示すように辞書バッファ12の
アドレスが設定されているものとすれば、文字「A」に
対応してこの文字のアドレスデータ「1」が格納されて
いる。同様に、文字「B」,「C」,……のそれぞれに
対応してアドレスデータ「6」,「0」,……が格納さ
れている。
バッファの内容およびその使い方を説明するための図で
ある。同図において、トップバッファ50は、辞書バッ
ファ12の内容をデータバッファ10側から見ていった
場合に、該当する文字が最初に現れる辞書バッファ12
のアドレスをこの該当文字に対応させて格納するもので
ある。例えば、図10に示すように辞書バッファ12の
アドレスが設定されているものとすれば、文字「A」に
対応してこの文字のアドレスデータ「1」が格納されて
いる。同様に、文字「B」,「C」,……のそれぞれに
対応してアドレスデータ「6」,「0」,……が格納さ
れている。
【0076】また、チェーンバッファ52は、辞書バッ
ファ12の内容をデータバッファ10側から見た場合
に、同一の文字が次にどのアドレスに格納されているか
を示すチェーンデータを格納するものである。例えば、
文字「C」に着目すると、辞書バッファ12のアドレス
「0」,「9」,「e」の各アドレスに格納されてい
る。したがって、チェーンバッファ52のアドレス
「0」,「9]のそれぞれには次に文字「C」が表われ
るアドレスである「9」,「e」のそれぞれが格納され
る。また、データバッファ10側からみて最後尾側に対
応するチェーンバッファ52のアドレス「e」にはそれ
以後該当する文字が存在しないことを示す何らかのデー
タ、例えばその文字と同一のアドレスデータや先頭アド
レス「0」等が格納されており、それ以後の文字列の検
索が不要であることがわかるようになっている。
ファ12の内容をデータバッファ10側から見た場合
に、同一の文字が次にどのアドレスに格納されているか
を示すチェーンデータを格納するものである。例えば、
文字「C」に着目すると、辞書バッファ12のアドレス
「0」,「9」,「e」の各アドレスに格納されてい
る。したがって、チェーンバッファ52のアドレス
「0」,「9]のそれぞれには次に文字「C」が表われ
るアドレスである「9」,「e」のそれぞれが格納され
る。また、データバッファ10側からみて最後尾側に対
応するチェーンバッファ52のアドレス「e」にはそれ
以後該当する文字が存在しないことを示す何らかのデー
タ、例えばその文字と同一のアドレスデータや先頭アド
レス「0」等が格納されており、それ以後の文字列の検
索が不要であることがわかるようになっている。
【0077】例えば、データバッファ10に格納された
文字列の先頭「A」を辞書内で検索する場合、まずトッ
プバッファ50をアクセスすることにより、この文字
「A」に対応するアドレスデータ「1」が読み出され
る。このアドレスデータは、対応する文字「A」が辞書
バッファ12のどのアドレスに最初に格納されているか
を示すものであり、次にこのアドレスに対応してチェー
ンバッファ52をアクセスすることによりチェーンデー
タ「5」の読出しが行われる。以下同様にして、このチ
ェーンデータ「5」をアドレスとしてチェーンバッファ
52をアクセスすることにより次のチェーンデータ
「a」が読み出され、以下同様にしてチェーンデータ
「c」が読み出される。このようにして、文字「A」が
辞書バッファ12のアドレス「1」,「5」,「a」,
「c」のそれぞれに格納されていることが簡単にわかる
ようになっている。その後、このようにして読み出され
た各アドレスを先頭アドレスとして格納されている文字
列についてデータバッファ10内の文字列との一致判定
を行うことにより、何文字目までが一致しているかがわ
かるようになっている。
文字列の先頭「A」を辞書内で検索する場合、まずトッ
プバッファ50をアクセスすることにより、この文字
「A」に対応するアドレスデータ「1」が読み出され
る。このアドレスデータは、対応する文字「A」が辞書
バッファ12のどのアドレスに最初に格納されているか
を示すものであり、次にこのアドレスに対応してチェー
ンバッファ52をアクセスすることによりチェーンデー
タ「5」の読出しが行われる。以下同様にして、このチ
ェーンデータ「5」をアドレスとしてチェーンバッファ
52をアクセスすることにより次のチェーンデータ
「a」が読み出され、以下同様にしてチェーンデータ
「c」が読み出される。このようにして、文字「A」が
辞書バッファ12のアドレス「1」,「5」,「a」,
「c」のそれぞれに格納されていることが簡単にわかる
ようになっている。その後、このようにして読み出され
た各アドレスを先頭アドレスとして格納されている文字
列についてデータバッファ10内の文字列との一致判定
を行うことにより、何文字目までが一致しているかがわ
かるようになっている。
【0078】ところで、本実施例においてはこの文字列
の一致長判定も複数文字を同時に比較することにより高
速に行っている。
の一致長判定も複数文字を同時に比較することにより高
速に行っている。
【0079】図11は、4文字同時に一致判定を行う場
合の辞書バッファ12の概略構成を示す図である。同図
に示すように、辞書バッファ12を並列読出しが可能な
4つのRAM54,56,58,60によって構成す
る。これら4つのRAM54〜60は、それぞれ連続し
たアドレスが割り振られており、辞書バッファ12の更
新を行う際には、連続した文字列を各文字単位で異なる
RAM54〜60に格納するようになっている。一方、
データバッファ10に格納された文字列と辞書バッファ
12の格納内容を比較する際には、これら4つのRAM
54〜60から同時に、すなわち4文字同時に読出し
て、この読出した4文字とデータバッファ10内の4文
字とを同時に比較できるようになっている。なお、この
辞書に対するデータの読み書き、および4文字同時の比
較動作の詳細については後述する。
合の辞書バッファ12の概略構成を示す図である。同図
に示すように、辞書バッファ12を並列読出しが可能な
4つのRAM54,56,58,60によって構成す
る。これら4つのRAM54〜60は、それぞれ連続し
たアドレスが割り振られており、辞書バッファ12の更
新を行う際には、連続した文字列を各文字単位で異なる
RAM54〜60に格納するようになっている。一方、
データバッファ10に格納された文字列と辞書バッファ
12の格納内容を比較する際には、これら4つのRAM
54〜60から同時に、すなわち4文字同時に読出し
て、この読出した4文字とデータバッファ10内の4文
字とを同時に比較できるようになっている。なお、この
辞書に対するデータの読み書き、および4文字同時の比
較動作の詳細については後述する。
【0080】図12は、データ圧縮装置の順位テーブル
27あるいはデータ伸張装置の順位テーブル41を更新
するための一例を示す図である。同図において、順位メ
モリ62は順位テーブル27あるいは順位テーブル41
が格納されている。例えば、順位を知りたい文字のアス
キーコードをアドレスとして順位データを格納する。ま
た、データメモリ64は、この順位データをアドレスと
して対応する文字のアスキーコードを格納するものであ
る。
27あるいはデータ伸張装置の順位テーブル41を更新
するための一例を示す図である。同図において、順位メ
モリ62は順位テーブル27あるいは順位テーブル41
が格納されている。例えば、順位を知りたい文字のアス
キーコードをアドレスとして順位データを格納する。ま
た、データメモリ64は、この順位データをアドレスと
して対応する文字のアスキーコードを格納するものであ
る。
【0081】このような順位メモリ62およびデータメ
モリ64を用いて例えば文字「G」の順位を読み出すと
ともに、この順位を更新する場合について考える。
モリ64を用いて例えば文字「G」の順位を読み出すと
ともに、この順位を更新する場合について考える。
【0082】 まず、文字「G」対応するアスキーコ
ード“47h ”をアドレスとして、順位メモリ62から順
位データ「8」の読出しが行われる。
ード“47h ”をアドレスとして、順位メモリ62から順
位データ「8」の読出しが行われる。
【0083】 次に、この文字「G」の順位を上げる
ために、読出した順位「8」から1つだけ減算した順位
データ「7」を同一アドレスに書き込む。この状態で
は、順位データ「7」が2つ存在するので、もう一方の
順位データ「7」を「8」に変更する必要がある。
ために、読出した順位「8」から1つだけ減算した順位
データ「7」を同一アドレスに書き込む。この状態で
は、順位データ「7」が2つ存在するので、もう一方の
順位データ「7」を「8」に変更する必要がある。
【0084】 このため、この重複した順位データ
「7」をアドレスとしてデータメモリ64をアクセス
し、対応するデータ“54h ”(文字Tのアスキーコー
ド)の読出しを行う。そして、この読出したデータを一
旦保持するとともに、このアドレスに文字「G」のアス
キーコードである“47h ”を書き込む。
「7」をアドレスとしてデータメモリ64をアクセス
し、対応するデータ“54h ”(文字Tのアスキーコー
ド)の読出しを行う。そして、この読出したデータを一
旦保持するとともに、このアドレスに文字「G」のアス
キーコードである“47h ”を書き込む。
【0085】 次に、下げたい順位データ「8」をア
ドレスとしてデータメモリ64をアクセスし、対応する
データとして上述したにおいて一旦保持したデータ
“54h”を格納する。
ドレスとしてデータメモリ64をアクセスし、対応する
データとして上述したにおいて一旦保持したデータ
“54h”を格納する。
【0086】 最後に、において新たに書き込んだ
データ“54h ”をアドレスとして順位メモリ62をアク
セスし、その内容である順位データ「7」に1だけ加算
した新たな順位データ「8」を書き込む。
データ“54h ”をアドレスとして順位メモリ62をアク
セスし、その内容である順位データ「7」に1だけ加算
した新たな順位データ「8」を書き込む。
【0087】このようにして、順位メモリ62の内容で
ある順位テーブル27あるいは41の検索および更新が
行われる。
ある順位テーブル27あるいは41の検索および更新が
行われる。
【0088】以下、このような各種の工夫を行ったデー
タ圧縮装置の具体的な構成について説明する。
タ圧縮装置の具体的な構成について説明する。
【0089】図13および図14は、本実施例のデータ
圧縮装置の詳細な構成を示す図である。同図に示す圧縮
制御部300は、このデータ圧縮装置の全体を制御する
ものである。
圧縮装置の詳細な構成を示す図である。同図に示す圧縮
制御部300は、このデータ圧縮装置の全体を制御する
ものである。
【0090】このデータ圧縮装置に入力された非圧縮デ
ータ列は、まず最初に入力FIFO200に入力され
る。この入力FIFO200は、データの入力速度と処
理速度の違いを吸収するためのものであり、例えば51
2ワードの容量を有する。レジスタ(REG)202
は、入力FIFO200から出力される1ワード分の文
字を一時保持するものであり、この保持した文字が辞書
・データバッファ204に入力されるとともに、マルチ
プレクサ(MUX)206を介してトップアドレス演算
部207に入力される。
ータ列は、まず最初に入力FIFO200に入力され
る。この入力FIFO200は、データの入力速度と処
理速度の違いを吸収するためのものであり、例えば51
2ワードの容量を有する。レジスタ(REG)202
は、入力FIFO200から出力される1ワード分の文
字を一時保持するものであり、この保持した文字が辞書
・データバッファ204に入力されるとともに、マルチ
プレクサ(MUX)206を介してトップアドレス演算
部207に入力される。
【0091】辞書・データバッファ204は、図1に示
したデータバッファ10と辞書バッファ12とを1つの
メモリで構成したものである。データバッファ10およ
び辞書バッファ12は、図2および図7に示すように連
続して入力される2つのデータ列をそれぞれ格納すると
ともに、符号化の進行にともなってその境界を次第に移
動させるようになっている。したがって、これら2つの
バッファ10,12を1つのメモリで構成し、2つのバ
ッファの境界を示すポインタを設けることにより実現す
ることができる。
したデータバッファ10と辞書バッファ12とを1つの
メモリで構成したものである。データバッファ10およ
び辞書バッファ12は、図2および図7に示すように連
続して入力される2つのデータ列をそれぞれ格納すると
ともに、符号化の進行にともなってその境界を次第に移
動させるようになっている。したがって、これら2つの
バッファ10,12を1つのメモリで構成し、2つのバ
ッファの境界を示すポインタを設けることにより実現す
ることができる。
【0092】このようにして構成される辞書・データバ
ッファ204は、データバッファ10と辞書バッファ1
2とを合計した容量を有しており、例えば3文字分の圧
縮処理が終了した場合には、ポインタを3アドレス分進
めるとともに、データバッファ10の最後尾部分に相当
する3アドレスに新たな入力データ列を書き込めばよ
い。
ッファ204は、データバッファ10と辞書バッファ1
2とを合計した容量を有しており、例えば3文字分の圧
縮処理が終了した場合には、ポインタを3アドレス分進
めるとともに、データバッファ10の最後尾部分に相当
する3アドレスに新たな入力データ列を書き込めばよ
い。
【0093】また、マルチプレクサ206を介してトッ
プアドレス演算部207に入力される文字に基づいて、
トップバッファ208に対する新規登録処理あるいはチ
ェーンバッファ220に対する更新処理が行われる。す
なわち、図10に示したように、トップバッファ50
は、辞書バッファ内に最初に現れる文字のアドレスを格
納するものであり、辞書・データバッファ204が1文
字分更新されると、この1文字分のデータがデータバッ
ファから辞書バッファに移るため、この新規に移った文
字についてトップバッファ50に対する新規登録が行わ
れる。また、このようにトップバッファ50が更新され
ることにより、その更新情況に応じてチェーンバッファ
52も更新される。
プアドレス演算部207に入力される文字に基づいて、
トップバッファ208に対する新規登録処理あるいはチ
ェーンバッファ220に対する更新処理が行われる。す
なわち、図10に示したように、トップバッファ50
は、辞書バッファ内に最初に現れる文字のアドレスを格
納するものであり、辞書・データバッファ204が1文
字分更新されると、この1文字分のデータがデータバッ
ファから辞書バッファに移るため、この新規に移った文
字についてトップバッファ50に対する新規登録が行わ
れる。また、このようにトップバッファ50が更新され
ることにより、その更新情況に応じてチェーンバッファ
52も更新される。
【0094】このようにして、データ圧縮処理が終了し
た文字数分の新たな文字がレジスタ202を介して辞書
・データバッファ204に登録されるとともに、トップ
バッファ50およびチェーンバッファ52の更新処理が
行われる。
た文字数分の新たな文字がレジスタ202を介して辞書
・データバッファ204に登録されるとともに、トップ
バッファ50およびチェーンバッファ52の更新処理が
行われる。
【0095】次に、圧縮制御部300の制御により、辞
書・データバッファ204のデータ領域の先頭部分に位
置する1文字が読み出され、レジスタ208および21
0に一時保持される。このレジスタ210に保持された
1文字分のデータは、マルチプレクサ206を介してト
ップアドレス演算部207に入力され、トップバッファ
50およびチェーンバッファ52によりこの1文字に対
応する辞書・データバッファ204の辞書領域のアドレ
ス計算が行われる。計算されたアドレスは、レジスタ2
12に一時保持された後、マルチプレクサ214を介し
て辞書・データバッファ204に入力される。圧縮制御
部300は、このアドレスによって指定される辞書内の
1文字分のデータを読出し、この読み出されたデータが
コンパレータ(CMP)216に入力される。
書・データバッファ204のデータ領域の先頭部分に位
置する1文字が読み出され、レジスタ208および21
0に一時保持される。このレジスタ210に保持された
1文字分のデータは、マルチプレクサ206を介してト
ップアドレス演算部207に入力され、トップバッファ
50およびチェーンバッファ52によりこの1文字に対
応する辞書・データバッファ204の辞書領域のアドレ
ス計算が行われる。計算されたアドレスは、レジスタ2
12に一時保持された後、マルチプレクサ214を介し
て辞書・データバッファ204に入力される。圧縮制御
部300は、このアドレスによって指定される辞書内の
1文字分のデータを読出し、この読み出されたデータが
コンパレータ(CMP)216に入力される。
【0096】コンパレータ216は、先にレジスタ20
8に保持されたデータ領域の先頭に位置する1文字分の
データと、辞書領域の特定のアドレスから読み出された
1文字分のデータを比較し、一致した場合にはカウンタ
218の計数値を1だけ増加させる。コンパレータ21
6によって一致が検出されると、圧縮制御部300は、
辞書・データバッファ204のデータ領域および辞書領
域のアドレスをそれぞれ1ずつずらしていってコンパレ
ータ216によって不一致を検出するまで同様の処理を
繰り返す。したがって、コンパレータ216によって不
一致が検出された後カウンタ218の計数値を見ること
により辞書・データバッファ204のデータ領域に格納
された文字列の先頭から何文字までが一致しているかを
知ることができる。
8に保持されたデータ領域の先頭に位置する1文字分の
データと、辞書領域の特定のアドレスから読み出された
1文字分のデータを比較し、一致した場合にはカウンタ
218の計数値を1だけ増加させる。コンパレータ21
6によって一致が検出されると、圧縮制御部300は、
辞書・データバッファ204のデータ領域および辞書領
域のアドレスをそれぞれ1ずつずらしていってコンパレ
ータ216によって不一致を検出するまで同様の処理を
繰り返す。したがって、コンパレータ216によって不
一致が検出された後カウンタ218の計数値を見ること
により辞書・データバッファ204のデータ領域に格納
された文字列の先頭から何文字までが一致しているかを
知ることができる。
【0097】コンパレータ216によって一旦位置が検
出された後、不一致を検出した場合には、圧縮制御部3
00の制御によりレジスタ212の値によってチェーン
バッファ52のアドレス指定を行い、次に候補となる文
字の辞書領域のアドレスが読み出され、この値が再度レ
ジスタ212に保持される。このようにして、データ領
域の先頭に位置する文字と同一の文字が格納されている
辞書領域の各アドレスについて何文字目まで一致するか
の判定が行われ、カウンタ218にはその最大値が保持
されるようになっている。
出された後、不一致を検出した場合には、圧縮制御部3
00の制御によりレジスタ212の値によってチェーン
バッファ52のアドレス指定を行い、次に候補となる文
字の辞書領域のアドレスが読み出され、この値が再度レ
ジスタ212に保持される。このようにして、データ領
域の先頭に位置する文字と同一の文字が格納されている
辞書領域の各アドレスについて何文字目まで一致するか
の判定が行われ、カウンタ218にはその最大値が保持
されるようになっている。
【0098】また、このようにして最大一致長を求める
動作と並行して、対応する辞書領域内のアドレスの計算
が行われる。すなわち、チェーンバッファ52から出力
される値と1つ前にこのチェーンバッファ52から出力
されレジスタ212に保持された値との両方が減算器2
20に入力されており、その差分を加算器222および
レジスタ224によって累積している。また、カウンタ
218は最大値を検出した際にその旨の信号を出力する
機能を有しており、この信号が出力された場合にレジス
タ226にレジスタ224の内容を転送するようになっ
ている。したがって、レジスタ226には最大一致長を
有する文字列の辞書領域の先頭アドレスのみが保持され
る。
動作と並行して、対応する辞書領域内のアドレスの計算
が行われる。すなわち、チェーンバッファ52から出力
される値と1つ前にこのチェーンバッファ52から出力
されレジスタ212に保持された値との両方が減算器2
20に入力されており、その差分を加算器222および
レジスタ224によって累積している。また、カウンタ
218は最大値を検出した際にその旨の信号を出力する
機能を有しており、この信号が出力された場合にレジス
タ226にレジスタ224の内容を転送するようになっ
ている。したがって、レジスタ226には最大一致長を
有する文字列の辞書領域の先頭アドレスのみが保持され
る。
【0099】このようにして、カウンタ218から一致
した文字列の一致長が出力されるとともに、レジスタ2
26から辞書・データバッファ204の辞書領域内にお
ける位置(アドレス)が出力される。
した文字列の一致長が出力されるとともに、レジスタ2
26から辞書・データバッファ204の辞書領域内にお
ける位置(アドレス)が出力される。
【0100】次に、一致長符号化部228は、一致長符
号テーブル18に基づいて、カウンタ218から出力さ
れた一致長に対応する一致長符号を読出して出力する。
また、位置符号化部230は、位置復号テーブル22に
基づいて、レジスタ226から出力された位置データに
対応する位置符号を読出して出力する。この出力はマル
チプレクサ232を介してバイト変換部234に入力さ
れており、バイト変換部234ではそれぞれが可変長符
号である一致長符号と、位置符号とをバイト単位でまと
めて出力する。この出力が、出力FIFO236に一旦
保持された後圧縮データ列として外部に出力される。
号テーブル18に基づいて、カウンタ218から出力さ
れた一致長に対応する一致長符号を読出して出力する。
また、位置符号化部230は、位置復号テーブル22に
基づいて、レジスタ226から出力された位置データに
対応する位置符号を読出して出力する。この出力はマル
チプレクサ232を介してバイト変換部234に入力さ
れており、バイト変換部234ではそれぞれが可変長符
号である一致長符号と、位置符号とをバイト単位でまと
めて出力する。この出力が、出力FIFO236に一旦
保持された後圧縮データ列として外部に出力される。
【0101】上述したデータ圧縮動作は、コンパレータ
216によって一旦一致が検出された後、不一致を検出
した場合の動作であるが、一度も一致を検出しなかった
場合には以下に示す処理が行われる。
216によって一旦一致が検出された後、不一致を検出
した場合の動作であるが、一度も一致を検出しなかった
場合には以下に示す処理が行われる。
【0102】コンパレータ216によって一致が検出さ
れない場合には、カウンタ218による計数動作が行わ
れないため、カウンタ218から計数値「0」が出力さ
れる。このとき、一致長符号化部228からはこの計数
値「0」に対応する一致長符号“00”が出力され、バイ
ト変換部234に入力される。
れない場合には、カウンタ218による計数動作が行わ
れないため、カウンタ218から計数値「0」が出力さ
れる。このとき、一致長符号化部228からはこの計数
値「0」に対応する一致長符号“00”が出力され、バイ
ト変換部234に入力される。
【0103】また、この動作と並行して辞書内に存在し
ない先頭文字の符号化処理が行われる。すなわち、辞書
・データバッファ204のデータ領域の先頭に位置する
文字が出力されたときに、レジスタ238はこの1文字
を保持する。そして、この保持された文字データがマル
チプレクサ240を介して順位メモリ62にアドレスと
して入力される。順位メモリ62は、図12に示したよ
うに、この入力された文字データをアドレスとして、こ
の文字の出現頻度を出力する。この順位メモリ62の出
力は、レジスタ242に一旦保持された後、順位符号化
部252に入力される。
ない先頭文字の符号化処理が行われる。すなわち、辞書
・データバッファ204のデータ領域の先頭に位置する
文字が出力されたときに、レジスタ238はこの1文字
を保持する。そして、この保持された文字データがマル
チプレクサ240を介して順位メモリ62にアドレスと
して入力される。順位メモリ62は、図12に示したよ
うに、この入力された文字データをアドレスとして、こ
の文字の出現頻度を出力する。この順位メモリ62の出
力は、レジスタ242に一旦保持された後、順位符号化
部252に入力される。
【0104】順位符号化部252は、順位符号テーブル
26に基づいて、順位メモリ62から出力された出現頻
度に対応する順位符号を読出して、マルチプレクサ23
2を介してバイト変換部234に向け出力する。バイト
変換部234は、一致長符号化部228から出力される
一致長符号“00”と順位符号化部252から出力される
順位符号とをバイト単位で出力し、この出力が出力FI
FO236を介して圧縮データ列として外部に出力され
る。
26に基づいて、順位メモリ62から出力された出現頻
度に対応する順位符号を読出して、マルチプレクサ23
2を介してバイト変換部234に向け出力する。バイト
変換部234は、一致長符号化部228から出力される
一致長符号“00”と順位符号化部252から出力される
順位符号とをバイト単位で出力し、この出力が出力FI
FO236を介して圧縮データ列として外部に出力され
る。
【0105】また、順位メモリ62の内容は、順位メモ
リ62がアクセスされる毎に更新される。具体的には、
図12に示した〜の手順に従って更新が行われる。
そのために、データメモリ64およびレジスタ224が
設けられている。すなわち、順位メモリ62から順位
を読み出すと同時に、この読み出した順位から1だけ
減算した値を再度順位メモリ62に書き込む。次に、
順位メモリ62に書き込まれた更新後の順位をアドレス
としてデータメモリ64をアクセスし、レジスタ238
に保持されている文字データの書き込みを行う。次
に、更新前の順位をアドレスとしてデータメモリ64を
再度アクセスし、更新後の順位に対応して格納されてい
たデータをこのアドレスに書き込む。最後に、この書
き込んだ文字データをレジスタ224に一旦保持した
後、この文字データによって順位メモリ62を再度アク
セスし、該当する領域に更新前の順位の書込みを行う。
このようにして、順位メモリ62とてデータメモリ64
の内容の変更が行われる。
リ62がアクセスされる毎に更新される。具体的には、
図12に示した〜の手順に従って更新が行われる。
そのために、データメモリ64およびレジスタ224が
設けられている。すなわち、順位メモリ62から順位
を読み出すと同時に、この読み出した順位から1だけ
減算した値を再度順位メモリ62に書き込む。次に、
順位メモリ62に書き込まれた更新後の順位をアドレス
としてデータメモリ64をアクセスし、レジスタ238
に保持されている文字データの書き込みを行う。次
に、更新前の順位をアドレスとしてデータメモリ64を
再度アクセスし、更新後の順位に対応して格納されてい
たデータをこのアドレスに書き込む。最後に、この書
き込んだ文字データをレジスタ224に一旦保持した
後、この文字データによって順位メモリ62を再度アク
セスし、該当する領域に更新前の順位の書込みを行う。
このようにして、順位メモリ62とてデータメモリ64
の内容の変更が行われる。
【0106】図15は、辞書・データバッファ204の
辞書領域の詳細な構成を示す図である。同図に示す構成
は、図11に示した複数のRAMからの文字の同時読出
しを可能とするための詳細な構成である。
辞書領域の詳細な構成を示す図である。同図に示す構成
は、図11に示した複数のRAMからの文字の同時読出
しを可能とするための詳細な構成である。
【0107】同図において、書込信号制御部262は、
4つのRAM254,256,258,260に対して
択一的な書込信号WE0 〜WE3 を入力するためのもの
である。書込信号制御部262にはNビットの書込アド
レスWAの内の下位2ビットが入力されており、アドレ
スが1更新される毎に、書込信号WE0〜WE3が入力
されるRAMが1つずつ巡回するようになっている。ま
た、4つのRAM254〜260のそれぞれには、Nビ
ットの書込アドレスWAの内の上位N−2ビットが入力
されており、書込信号制御部262から書込信号が入力
されたもののみに対する書込みが許可されるようになっ
ている。
4つのRAM254,256,258,260に対して
択一的な書込信号WE0 〜WE3 を入力するためのもの
である。書込信号制御部262にはNビットの書込アド
レスWAの内の下位2ビットが入力されており、アドレ
スが1更新される毎に、書込信号WE0〜WE3が入力
されるRAMが1つずつ巡回するようになっている。ま
た、4つのRAM254〜260のそれぞれには、Nビ
ットの書込アドレスWAの内の上位N−2ビットが入力
されており、書込信号制御部262から書込信号が入力
されたもののみに対する書込みが許可されるようになっ
ている。
【0108】また、読出アドレス制御部264は、入力
される読出アドレスRAに基づいて、4つのRAM25
4〜260を同時にアクセスして、4つの文字データを
同時に読み出すものである。例えば、入力される読出ア
ドレスRAが3番目のRAM258のあるアドレスに対
応しているものとすれば、RAM258,260に対し
て読出アドレスiが入力されると同時に、RAM25
4,256に対して読出アドレスi+1が入力される。
このようにしてアドレス指定が行われた4つのRAM2
54〜260に対して読出信号SIGRDが入力され、
4文字分のデータが同時に読み出される。読出データ並
替部266は、このようにして読み出された4文字デー
タを、適宜並び替える動作を行う。上述した例では、R
AM258,260,254,256の順に並べ替えを
行い、4文字分の読出データRD0〜RD3 として出力
する。
される読出アドレスRAに基づいて、4つのRAM25
4〜260を同時にアクセスして、4つの文字データを
同時に読み出すものである。例えば、入力される読出ア
ドレスRAが3番目のRAM258のあるアドレスに対
応しているものとすれば、RAM258,260に対し
て読出アドレスiが入力されると同時に、RAM25
4,256に対して読出アドレスi+1が入力される。
このようにしてアドレス指定が行われた4つのRAM2
54〜260に対して読出信号SIGRDが入力され、
4文字分のデータが同時に読み出される。読出データ並
替部266は、このようにして読み出された4文字デー
タを、適宜並び替える動作を行う。上述した例では、R
AM258,260,254,256の順に並べ替えを
行い、4文字分の読出データRD0〜RD3 として出力
する。
【0109】なお、このようにして辞書・データバッフ
ァ204から4文字分のデータを読出した場合には、4
文字同時に比較動作が行えるコンパレータ216を用い
るとともに、このコンパレータ出力を累積して加算する
機能をカウンタ218にもたせるようにすればよい。そ
して、コンパレータ216によって4文字の全てにおい
て一致検出を行った場合には、次に4文字についてこの
文字データの読出しおよび比較動作を継続すればよい。
このようにして、コンパレータ216によって4文字の
いずれかが一致しなくなるまで比較処理が繰り返され、
それまでの一致長が累積された後カウンタ218から出
力される。
ァ204から4文字分のデータを読出した場合には、4
文字同時に比較動作が行えるコンパレータ216を用い
るとともに、このコンパレータ出力を累積して加算する
機能をカウンタ218にもたせるようにすればよい。そ
して、コンパレータ216によって4文字の全てにおい
て一致検出を行った場合には、次に4文字についてこの
文字データの読出しおよび比較動作を継続すればよい。
このようにして、コンパレータ216によって4文字の
いずれかが一致しなくなるまで比較処理が繰り返され、
それまでの一致長が累積された後カウンタ218から出
力される。
【0110】このように、4文字同時にデータの読出し
を行って比較することにより、1文字毎に読出して比較
する場合に比べると約4倍の高速処理が可能となる。
を行って比較することにより、1文字毎に読出して比較
する場合に比べると約4倍の高速処理が可能となる。
【0111】次に、上述したデータ圧縮装置に対応する
動作を行うデータ伸張装置の詳細について説明する。
動作を行うデータ伸張装置の詳細について説明する。
【0112】図16は、データ伸張装置の詳細な構成を
示す図である。同図に示す伸長制御部400は、このデ
ータ伸長装置の全体を制御するものである。
示す図である。同図に示す伸長制御部400は、このデ
ータ伸長装置の全体を制御するものである。
【0113】入力FIFO500は、入力された圧縮デ
ータ列を一旦保持した後、ビット列変換部502に向け
出力する。このビット列変換部502は、入力される1
バイトあるいは数バイトのデータから可変長符号である
一致長符号を抽出するとともに、この一致長符号に続く
位置符号あるいは順位符号を抽出する。分離された一致
長符号は一致長復号化部504に、位置符号は位置復号
化部506に、順位符号は順位復号化部508にそれぞ
れ入力される。
ータ列を一旦保持した後、ビット列変換部502に向け
出力する。このビット列変換部502は、入力される1
バイトあるいは数バイトのデータから可変長符号である
一致長符号を抽出するとともに、この一致長符号に続く
位置符号あるいは順位符号を抽出する。分離された一致
長符号は一致長復号化部504に、位置符号は位置復号
化部506に、順位符号は順位復号化部508にそれぞ
れ入力される。
【0114】一致長が「0」でない場合には、アドレス
制御部510は、一致長復号化部504から出力される
一致長と、位置復号化部506から出力される位置デー
タとに基づいて辞書バッファ512から必要な文字デー
タの読出しを行う。すなわち、位置復号化部506から
出力される位置データによって先頭アドレスが指定さ
れ、このアドレス以降に格納された一致長分の文字デー
タが読み出される。読み出された一連の文字データは、
マルチプレクサ514を介して出力FIFO516に入
力され、一旦保持された後非圧縮データ列として出力さ
れる。
制御部510は、一致長復号化部504から出力される
一致長と、位置復号化部506から出力される位置デー
タとに基づいて辞書バッファ512から必要な文字デー
タの読出しを行う。すなわち、位置復号化部506から
出力される位置データによって先頭アドレスが指定さ
れ、このアドレス以降に格納された一致長分の文字デー
タが読み出される。読み出された一連の文字データは、
マルチプレクサ514を介して出力FIFO516に入
力され、一旦保持された後非圧縮データ列として出力さ
れる。
【0115】一方、一致長が「0」の場合には、順位復
号化部508から出力される順位データに基づいて文字
データの復元が行われる。具体的には、この順位データ
がマルチプレクサ518を介してデータメモリ520に
アドレスとして入力される。データメモリ520は、順
位データに対応する文字データを出力し、この文字デー
タがレジスタ522に一旦保持された後、マルチプレク
サ514および出力FIFO516を介して非圧縮デー
タ列として出力される。
号化部508から出力される順位データに基づいて文字
データの復元が行われる。具体的には、この順位データ
がマルチプレクサ518を介してデータメモリ520に
アドレスとして入力される。データメモリ520は、順
位データに対応する文字データを出力し、この文字デー
タがレジスタ522に一旦保持された後、マルチプレク
サ514および出力FIFO516を介して非圧縮デー
タ列として出力される。
【0116】また、このデータメモリ520を更新する
ために順位メモリ524およびレジスタ526が設けら
れている。レジスタ522に一旦保持した文字データを
アドレスとして順位メモリ524がアクセスされ、対応
する順位データの更新が行われる。この更新された順位
データは、レジスタ526に一旦保持された後、マルチ
プレクサ518を介して再度データメモリ520にアド
レスとして入力され、今度は更新後の順位に対応して格
納されていたデータメモリ520の内容が読み出されて
レジスタ522に保持されるとともに、この内容が、デ
ータメモリ520から先に読み出した文字データによっ
て更新される。その後、再度レジスタ522に保持され
た文字データをアドレスとして順位メモリ524がアク
セスされ、順位が下がった文字データの正しい順位デー
タが書き込まれる。このようにして、順位メモリ524
およびデータメモリ520の内容変更が行われる。
ために順位メモリ524およびレジスタ526が設けら
れている。レジスタ522に一旦保持した文字データを
アドレスとして順位メモリ524がアクセスされ、対応
する順位データの更新が行われる。この更新された順位
データは、レジスタ526に一旦保持された後、マルチ
プレクサ518を介して再度データメモリ520にアド
レスとして入力され、今度は更新後の順位に対応して格
納されていたデータメモリ520の内容が読み出されて
レジスタ522に保持されるとともに、この内容が、デ
ータメモリ520から先に読み出した文字データによっ
て更新される。その後、再度レジスタ522に保持され
た文字データをアドレスとして順位メモリ524がアク
セスされ、順位が下がった文字データの正しい順位デー
タが書き込まれる。このようにして、順位メモリ524
およびデータメモリ520の内容変更が行われる。
【0117】このようにして非圧縮データの伸長が行わ
れると、伸長されたデータがレジスタ528に一旦保持
された後、辞書バッファ512に入力され、伸長制御部
400による辞書バッファ512の更新が行われる。
れると、伸長されたデータがレジスタ528に一旦保持
された後、辞書バッファ512に入力され、伸長制御部
400による辞書バッファ512の更新が行われる。
【0118】なお、本発明は上記実施例に限定されるも
のではなく、本発明の要旨の範囲内で種々の変形実施が
可能である。
のではなく、本発明の要旨の範囲内で種々の変形実施が
可能である。
【0119】例えば、上述した実施例においては、辞書
内に存在しない文字に対する符号化処理を行った場合
に、その出現頻度の順位を1だけ更新する場合を例にと
り説明したが、2あるいは3順位をあげるようにしても
よい。
内に存在しない文字に対する符号化処理を行った場合
に、その出現頻度の順位を1だけ更新する場合を例にと
り説明したが、2あるいは3順位をあげるようにしても
よい。
【0120】また、上述した実施例では、1ワードに1
文字を対応させて説明したが1ワードを2文字以上で構
成する場合や、文字とは直接関連のないビットデータを
対応させる場合等が考えられ、データの内容は特に限定
されるものではない。
文字を対応させて説明したが1ワードを2文字以上で構
成する場合や、文字とは直接関連のないビットデータを
対応させる場合等が考えられ、データの内容は特に限定
されるものではない。
【0121】
【発明の効果】上述したように、請求項1の発明によれ
ば、順次入力されるデータによって辞書が作成されるた
め、リアルタイムのデータ圧縮処理が可能となる。ま
た、辞書内に該当するデータが存在しない場合であって
も、出現確率の高いものほど短い符号を割り当てた圧縮
処理が行われるため、元データよりも短いビット長で符
号化処理を行うことができ、全入力データに対して常に
高い圧縮率を維持したデータ圧縮を行うことが可能とな
る。
ば、順次入力されるデータによって辞書が作成されるた
め、リアルタイムのデータ圧縮処理が可能となる。ま
た、辞書内に該当するデータが存在しない場合であって
も、出現確率の高いものほど短い符号を割り当てた圧縮
処理が行われるため、元データよりも短いビット長で符
号化処理を行うことができ、全入力データに対して常に
高い圧縮率を維持したデータ圧縮を行うことが可能とな
る。
【0122】また、請求項2の発明によれば、一致長符
号化手段をトップバッファとチェーンバッファとを含ん
で構成しており、データバッファ内の各ワードを辞書内
で検索する場合に、これらのトップバッファとチェーン
バッファをアクセスすることにより、辞書の該当アドレ
スを速やかに知ることができ、処理の高速化が可能とな
る。
号化手段をトップバッファとチェーンバッファとを含ん
で構成しており、データバッファ内の各ワードを辞書内
で検索する場合に、これらのトップバッファとチェーン
バッファをアクセスすることにより、辞書の該当アドレ
スを速やかに知ることができ、処理の高速化が可能とな
る。
【0123】また、請求項3の発明によれば、辞書バッ
ファを複数のメモリ素子によって構成しており、これら
メモリ素子から同時にデータの読出しを行っているた
め、メモリ素子の個数分のワード長を同時に比較するこ
とができ、一致長が長い場合の一致長判定を高速に処理
することができる。
ファを複数のメモリ素子によって構成しており、これら
メモリ素子から同時にデータの読出しを行っているた
め、メモリ素子の個数分のワード長を同時に比較するこ
とができ、一致長が長い場合の一致長判定を高速に処理
することができる。
【0124】また、請求項4の発明によれば、入力され
る圧縮データの先頭部分に位置する一致長符号が一致を
示している場合には、その次に位置する位置符号を復号
化することにより、辞書内の格納アドレスが得られ、こ
のアドレスを先頭アドレスとして一致長の分だけ辞書の
データの読出しを行うことにより伸張が行われる。ま
た、上述した一致長符号が不一致を示している場合に
は、順位テーブルを検索することによりデータの伸張が
行われる。このように、上述した請求項1〜3のデータ
圧縮装置によって圧縮されたデータをリアルタイムで伸
張処理することができる。
る圧縮データの先頭部分に位置する一致長符号が一致を
示している場合には、その次に位置する位置符号を復号
化することにより、辞書内の格納アドレスが得られ、こ
のアドレスを先頭アドレスとして一致長の分だけ辞書の
データの読出しを行うことにより伸張が行われる。ま
た、上述した一致長符号が不一致を示している場合に
は、順位テーブルを検索することによりデータの伸張が
行われる。このように、上述した請求項1〜3のデータ
圧縮装置によって圧縮されたデータをリアルタイムで伸
張処理することができる。
【図1】本発明を適用した一実施例のデータ圧縮装置の
概略構成を示す図である。
概略構成を示す図である。
【図2】データバッファおよび辞書バッファと入力デー
タ列との関係を概略的に示す図である。
タ列との関係を概略的に示す図である。
【図3】一致長符号テーブルの具体例を示す図である。
【図4】位置符号テーブルの具体例を示す図である。
【図5】順位符号テーブルの具体例を示す図である。
【図6】順位テーブルの更新を説明するための図であ
る。
る。
【図7】データバッファと辞書バッファの更新を説明す
るための図である。
るための図である。
【図8】一実施例のデータ伸張装置の概略構成を示す図
である。
である。
【図9】辞書バッファの内容の一例を示す図である。
【図10】トップバッファおよびチェーンバッファの内
容およびその使い方を説明するための図である。
容およびその使い方を説明するための図である。
【図11】4文字同時に一致判定を行う場合の辞書バッ
ファの概略構成を示す図である。
ファの概略構成を示す図である。
【図12】順位テーブルの更新を具体的に説明するため
の図である。
の図である。
【図13】一実施例のデータ圧縮装置の詳細な構成を示
す図である。
す図である。
【図14】一実施例のデータ圧縮装置の詳細な構成を示
す図である。
す図である。
【図15】一実施例の辞書・データバッファ内のデータ
領域の詳細な構成を示す図である。
領域の詳細な構成を示す図である。
【図16】一実施例のデータ伸張装置の詳細な構成を示
す図である。
す図である。
【図17】従来例の説明図である。
【図18】従来例の説明図である。
10 データバッファ 12 辞書バッファ 14 バッファ更新部 16 一致長符号化部 18 一致長符号テーブル 20 位置符号化部 22 位置符号テーブル 24 順位符号化部 26 順位符号テーブル 27 順位テーブル 28 テーブル更新部
Claims (4)
- 【請求項1】 順次入力される非圧縮データの中の最後
尾に位置する所定ワード長のデータ列を処理データとし
て、およびその前に位置する所定ワード長のデータ列を
辞書としてそれぞれ格納するデータバッファおよび辞書
バッファと、 前記データバッファ内の処理データを構成する各ワード
について、前記辞書を構成する各ワードと一致するもの
があるか否かを検索し、その最も長い一致長を符号化し
た一致長符号を出力する一致長符号化手段と、 前記一致長符号化手段によって一致の判定が行われた場
合に、一致したワード列の中で最もワード長が長いもの
の前記辞書内の位置を符号化した位置符号を出力する位
置符号化手段と、 非圧縮データの各ワードについて存在確率の高い順にビ
ット長が短い順位符号を対応させた順位テーブルを有し
ており、前記一致長符号化手段によって不一致の判定が
行われた場合に、前記順位テーブルを検索することによ
り前記データバッファ内の処理データの先頭ワードに対
応する順位符号を出力する順位符号化手段と、 前記順位符号化手段による符号化処理が行われた場合
に、符号化の対象となった前記処理データの先頭ワード
を考慮して前記順位テーブルを更新するテーブル更新手
段と、 前記位置符号化手段あるいは前記順位符号化手段による
符号化が行われたときに、符号化が終了した前記処理デ
ータの一部あるいは全部を前記辞書バッファ内の辞書に
移すとともに、この移した分の非圧縮データを前記デー
タバッファに追加して格納する処理を行うバッファ更新
手段と、 を備え、前記辞書内に処理データの各ワードと一致した
ワードがある場合には一致長とその位置とをそれぞれ符
号化し、一致したワードがない場合にはその旨を示す一
致長と処理データの先頭ワードとをそれぞれ符号化する
ことにより圧縮データを得ることを特徴とするデータ圧
縮装置。 - 【請求項2】 請求項1において、 前記一致長符号化手段は、 前記辞書バッファ内の辞書の各ワードを先頭から順に見
ていった場合に、異なるワード毎に先頭アドレスを格納
するトップバッファと、 前記辞書バッファ内の辞書の各ワードを先頭から順に見
ていった場合に、同じワードが次に前記辞書内のどのア
ドレスに格納されているかを示すデータを格納するチェ
ーンバッファと、 を含み、前記データバッファ内の処理データの先頭ワー
ドに基づいて前記トップバッファおよび前記チェーンバ
ッファを検索することにより、該当する前記辞書内のア
ドレスを特定することを特徴とするデータ圧縮装置。 - 【請求項3】 請求項1において、 前記辞書バッファおよびデータバッファは、各アドレス
が互いに連続している複数のメモリ素子により構成され
ており、 前記バッファ更新手段は、符号化が終了した前記処理デ
ータの一部あるいは全部を構成する各ワードを、前記複
数のメモリ素子のそれぞれに分散して格納し、 前記一致長符号化手段は、前記複数のメモリ素子のそれ
ぞれから同時にデータを読み出すことにより、前記一致
検索を行うことを特徴とするデータ圧縮装置。 - 【請求項4】 圧縮データを伸張して得られる非圧縮デ
ータの中の最後尾に位置する所定ワード長のデータ列を
辞書として格納する辞書バッファと、 順次入力される圧縮データの先頭部分に位置する一致長
符号を復号化して具体的な一致長データを出力する一致
長復号化手段と、 前記圧縮データの先頭部分に位置する一致長符号が一致
を示している場合に、その次に位置する位置符号を復号
化して、前記辞書内の格納位置を示すデータを出力する
位置復号化手段と、 前記圧縮データの先頭部分に位置する一致長符号が一致
を示している場合に、前記位置復号化手段から出力され
るデータに基づいて前記辞書内の格納位置を特定し、こ
の格納位置を先頭アドレスとして前記一致長データの分
だけ前記辞書からデータの読出しを行って、非圧縮デー
タを出力する辞書読出し制御手段と、 前記非圧縮データの各ワードについて存在確率の高い順
に短い順位符号を対応させた順位テーブルを有してお
り、前記圧縮データの先頭部分に位置する一致長符号が
不一致を示している場合に、その次に位置する順位符号
に基づいて前記順位テーブルを検索することにより前記
非圧縮データの復号化を行う順位復号化を行う順位復号
化手段と、 前記順位復号化手段により復号化処理が行われたとき
に、復号化された非圧縮データを考慮して前記順位テー
ブルを更新するテーブル更新手段と、 前記位置復号化手段あるいは前記順位復号化手段による
復号化が行われたときに、復号化が終了した非圧縮デー
タを含ませるように前記辞書の更新を行う辞書更新手段
と、 を備え、一致長符号と位置符号および順位符号のいずれ
か一方とを組み合わせた圧縮データを復号化することに
より伸張データを得ることを特徴とするデータ伸張装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30335593A JPH07135471A (ja) | 1993-11-09 | 1993-11-09 | データ圧縮装置およびデータ伸張装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30335593A JPH07135471A (ja) | 1993-11-09 | 1993-11-09 | データ圧縮装置およびデータ伸張装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07135471A true JPH07135471A (ja) | 1995-05-23 |
Family
ID=17919986
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30335593A Withdrawn JPH07135471A (ja) | 1993-11-09 | 1993-11-09 | データ圧縮装置およびデータ伸張装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07135471A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006332982A (ja) * | 2005-05-25 | 2006-12-07 | Sony Corp | デコーダ回路及びデコード方法 |
| JP2011114525A (ja) * | 2009-11-26 | 2011-06-09 | Dainippon Printing Co Ltd | 数値データ列の符号化/復号化の方法および装置 |
| JP2011199782A (ja) * | 2010-03-23 | 2011-10-06 | Fujitsu Toshiba Mobile Communications Ltd | 通信装置 |
| JP2012134929A (ja) * | 2010-12-24 | 2012-07-12 | Ricoh Co Ltd | 画像処理装置および画像処理方法 |
| KR101705461B1 (ko) * | 2015-08-28 | 2017-02-09 | 서울과학기술대학교 산학협력단 | 문자열 압축 및 해제를 위한 방법 및 장치 |
| JP2017169117A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | データ圧縮システム及び方法 |
| CN115577433A (zh) * | 2022-10-27 | 2023-01-06 | 中交建筑集团有限公司 | 一种使bim模型轻量化的方法 |
| JP2024540871A (ja) * | 2021-10-15 | 2024-11-06 | ログノベーションズ ホールディングス, エルエルシー | 符号化/復号システム及び方法 |
| US12619580B2 (en) | 2022-10-10 | 2026-05-05 | Lognovations Holdings, Llc | Encoding / decoding system and method |
-
1993
- 1993-11-09 JP JP30335593A patent/JPH07135471A/ja not_active Withdrawn
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006332982A (ja) * | 2005-05-25 | 2006-12-07 | Sony Corp | デコーダ回路及びデコード方法 |
| JP2011114525A (ja) * | 2009-11-26 | 2011-06-09 | Dainippon Printing Co Ltd | 数値データ列の符号化/復号化の方法および装置 |
| JP2011199782A (ja) * | 2010-03-23 | 2011-10-06 | Fujitsu Toshiba Mobile Communications Ltd | 通信装置 |
| JP2012134929A (ja) * | 2010-12-24 | 2012-07-12 | Ricoh Co Ltd | 画像処理装置および画像処理方法 |
| KR101705461B1 (ko) * | 2015-08-28 | 2017-02-09 | 서울과학기술대학교 산학협력단 | 문자열 압축 및 해제를 위한 방법 및 장치 |
| JP2017169117A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | データ圧縮システム及び方法 |
| JP2024541836A (ja) * | 2021-10-15 | 2024-11-13 | ログノベーションズ ホールディングス, エルエルシー | 符号化/復号システム及び方法 |
| JP2024540871A (ja) * | 2021-10-15 | 2024-11-06 | ログノベーションズ ホールディングス, エルエルシー | 符号化/復号システム及び方法 |
| US12386785B2 (en) | 2021-10-15 | 2025-08-12 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12450199B2 (en) | 2021-10-15 | 2025-10-21 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12461895B2 (en) | 2021-10-15 | 2025-11-04 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12505072B2 (en) | 2021-10-15 | 2025-12-23 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12511261B2 (en) | 2021-10-15 | 2025-12-30 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12517867B2 (en) | 2021-10-15 | 2026-01-06 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12547591B2 (en) | 2021-10-15 | 2026-02-10 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12619579B2 (en) | 2022-10-07 | 2026-05-05 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12619578B2 (en) | 2022-10-07 | 2026-05-05 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| US12619580B2 (en) | 2022-10-10 | 2026-05-05 | Lognovations Holdings, Llc | Encoding / decoding system and method |
| CN115577433A (zh) * | 2022-10-27 | 2023-01-06 | 中交建筑集团有限公司 | 一种使bim模型轻量化的方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2915568B2 (ja) | テープドライブシステムのための適応データ圧縮装置 | |
| US5870036A (en) | Adaptive multiple dictionary data compression | |
| KR100214055B1 (ko) | 색인된 칼라 이미지 데이타를 위한 데이타 압축장치 및 방법 | |
| US20130103655A1 (en) | Multi-level database compression | |
| KR101748982B1 (ko) | 매체에 저장된 프로그램 | |
| CN1868127B (zh) | 数据压缩系统和方法 | |
| JPH07283739A (ja) | 短ブロックのデータを圧縮、伸長するための方法、及び装置 | |
| CN107305586B (zh) | 索引生成方法、索引生成装置及搜索方法 | |
| JPH0682370B2 (ja) | 文字処理装置 | |
| JP2000082967A (ja) | デ―タ圧縮方法及びデ―タ圧縮装置 | |
| JPH05233212A (ja) | データを圧縮するための装置及び方法並びにデータ処理システム | |
| JP6009676B2 (ja) | データ圧縮装置およびデータ伸張装置 | |
| US7375660B1 (en) | Huffman decoding method | |
| US9479195B2 (en) | Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device | |
| JPH07135471A (ja) | データ圧縮装置およびデータ伸張装置 | |
| US6404362B1 (en) | Method and apparatus for reducing the time required for decompressing compressed data | |
| JP2729416B2 (ja) | テキストデータの復元方法 | |
| CN114637459B (zh) | 处理接收到的数据的装置 | |
| KR20070011490A (ko) | 구조화된 블록단위로 xml 데이터를 압축 및 압축해제하기 위한 방법 및 장치 | |
| JP3130324B2 (ja) | データ圧縮方式 | |
| JPH05241776A (ja) | データ圧縮方式 | |
| JP3038234B2 (ja) | データ圧縮装置の辞書検索方式 | |
| CN117200805B (zh) | 一种mcu的低内存占用的压缩和解压方法及装置 | |
| JP3236747B2 (ja) | データ伸長方式 | |
| JPH07182354A (ja) | 電子文書の作成方法 |
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: 20010130 |