JPH04129429A - データ圧縮装置の辞書検索方式 - Google Patents

データ圧縮装置の辞書検索方式

Info

Publication number
JPH04129429A
JPH04129429A JP2251499A JP25149990A JPH04129429A JP H04129429 A JPH04129429 A JP H04129429A JP 2251499 A JP2251499 A JP 2251499A JP 25149990 A JP25149990 A JP 25149990A JP H04129429 A JPH04129429 A JP H04129429A
Authority
JP
Japan
Prior art keywords
dictionary
address
memory
character
character string
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
JP2251499A
Other languages
English (en)
Other versions
JP3038234B2 (ja
Inventor
Yoshiyuki Okada
佳之 岡田
Hirotaka Chiba
広隆 千葉
Shigeru Yoshida
茂 吉田
Yasuhiko Nakano
泰彦 中野
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 JP2251499A priority Critical patent/JP3038234B2/ja
Publication of JPH04129429A publication Critical patent/JPH04129429A/ja
Application granted granted Critical
Publication of JP3038234B2 publication Critical patent/JP3038234B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 【概要】
ユバ−サル符号化の一種である増分分解型の改良として
のLZW符号化によるデータ圧縮装置の辞書検索方式に
関し、 外部ハツシュ法のリスト構造を利用した辞書メモリの高
速読出を可能にして辞書検索時間を短縮することを目的
とし、 辞書メモリをファーストメモリ(索引メモリ)、ネクス
トメモリ(連結メモリ)及び候補文字を格納した拡張メ
モリでなる外部ハツシュ法に従ったリスト構造とし、ネ
クスメモリの索引アドレスを連続アドレスに構成し、入
力文字に基づく最初の検索に続いて連続アドレスによる
検索を行って高速化するように構成する。
【産業上の利用分野】
本発明は、ユバ−サル符号化の一種である増分分解型の
改良としてのLZW符号化によるデータ圧縮装置の辞書
検索方式に関する。 近年、文字コード、ベクトル情報、画像など様々な種類
のデータがコンピュータで扱われるようになっており、
扱われるデータ量も急速に増加してきている。大量のデ
ータを扱うときは、データの中の冗長な部分を省いてデ
ータ量を圧縮することで、記憶容量を減らしたり、速く
伝送したりできるようになる。 このような様々なデータを1つの方式でデータ圧縮でき
る方法としてユニバーサル符号化が提案されている。 ここで、本発明の分野は、文字コードの圧縮に限らず、
様々なデータに適用できるが、以下では、情報理論で用
いられている呼称を踏襲し、データの1ワ一ド単位を文
字と呼び、データが複数ワードッなかったものを文字列
と呼ぶことにする。 ユニバーサル符号の代表的な方法として、ジブーレンペ
ル(ziv−Lempel)符号がある(詳しくは、例
えば、宗像1” ziv−Lempelのデータ圧縮法
」、情報処理、Vol、26. No、 1.19f1
5年を参照のこと)。 ジフーレンペル符号では、 ■ユニバーサル型 ■増分分解型(Incremental parsin
g )の2っのアルゴリズムが提案されている。 更に、ユニバーサル型アルゴリズムの改良として、LZ
SS符号がある(T、 C,Be1l、  ”BeNe
r OPM/L Text Compression 
 、 IEEE Trans、 on Commun、
 、 VOl、 C0M−34,NO,12,I!EC
,1986参照)。 また、増分分解型アルゴリズムの改良としては、L Z
W (Lempel−2iv−Welch)符号がある
(T、 A、 WeIch、 ”A Techniqu
e tarHigh−Performance Dat
aComptession  、 Computer、
 June 1984参照)。 これらの符号の内、高速処理ができることと、アルゴリ
ズムの簡単さからLZW符号が記憶装置のファイル圧縮
などで使われるようになっている。
【従来の技術】
従来のLZW符号による符号化処理フローを第7図に示
し、復号化処理フローを第8図に示す。 まずLZW符号化処理は、書き替え可能な辞書を持ち、
入力文字列の中を相異なる文字列(部分列)に分け、こ
の文字列を出現した順に参照番号を付けて辞書に登録す
ると共に、現在入力している文字列を、辞書に登録しで
ある最長−散文字列の参照番号で表して符号化するもの
である。 第9図にLZW符号化の説明図を示すと共に第10図に
LZW復号化の説明図を示し、更に第11図に復号化時
に作成される辞書構成例を示す。 尚、第9.10.11図では説明を簡単にするため、a
bcの3文字の組合せからなるデータを圧縮、復元する
場合の例を取り上げている。 第7図のLZW符号化処理では、まずステップ81、(
以下「ステップ」は省略)で予め辞書に全文字につき一
文字からなる文字列を初期値として登録してから符号化
を始める。 Slの符号化は入力した最初の文字Kにより辞書を検索
して参照番号ωを求め、これを語頭文字列とする。 次にS2で入力データの次の文字Kを読込み、S3で文
字入力が終了したか否かチエツクした後、S4に進んで
Slで求めた語頭文字列ωに82で読込んだ文字Kを加
えた拡張文字列(ωK)が辞書にあるか否か探す。 S4で文字列(ωK)が辞書になければ、S6に進んで
Slで求めた文字にの参照番号ωを符号語code (
ω)として出力し、また文字列(ωK)に新たな参照番
号を付加して辞書に登録し、更にS2の入力文字Kを参
照番号ωに置き換えると共に辞書アドレスnをインクリ
メントしてS2に戻って次の文字Kを読み込む。 一方、S4で文字列(ωK)が辞書にあればS5で文字
列(ωK)を参照番号ωに置き換え、再びS2に戻って
S4で文字列(ωK)が辞書から探せなくなるまで最大
一致長の検索を続ける。 第9,10図を参照してLZW符号化を具体的に説明す
ると次のようになる。 まず第9図の入力データ1nputは左から右へと読む
。最初の文字aを入力した時、辞書には文字aの他に一
致する文字列がないので、0UTPUT C0DEl(
参照番号ω)を符号語して出力する。そして文字aを語
頭文字列ωとする。 次に2番目の文字すを入力したとすると、この入力文字
を語頭文字列ωに加えた拡張文字列ωKabは辞書にな
いことから、文字すの0UTPUT C0DE 2を符
号語として出力する。そして、拡張文字列ωに=abに
参照番号4を付けて辞書に登録する。実際の辞書登録は
第10図の右側に示すように文字列1bとして登録され
る。そして文字すが語頭文字列ωとなる。 続いて3番目の文字aを入力したとすると、文字すに語
頭文字列ωを加えた拡張文字列ωに=ba=2aは辞書
にないことから、文字aの0UTPUTCOI)E 1
を符号語として出力した後、拡張文字列ωに=baを2
aで表わし、参照番号5を付けて辞書に登録する。そし
て文字aが新たな語頭文字列ωとなる。 4番目の入力文字すについては拡張文字列ωに=abは
1bの符号語4として既に辞書に登録されているので、
文字列ωKを新たな語頭文字列ωとし、5番目の文字C
を入力して拡張文字列ωに=4 c=a b cを作る
。この拡張文字列ωに=abcは辞書に登録されていな
いことから、文字列a b=1 bの0UTPUT C
0DE 4を符号語として出力し、拡張文字列ωに=a
bcを辞書に40の形で符号語6として登録する。以下
同様に、この処理を続ける。 第8図の復号化処理は第7図の符号化の逆の操作を行う
。 第8図のLZW復号化では、符号化時と同様に予め辞書
に全文字につき一文字からなる文字列を初期値として登
録してから復号化を始める。 まずSlで最初の符号(参照番号)を読込み、現在のC
0DEを0LDcodeとし、最初の符号は既に辞書に
登録された一文字の参照番号いずれかに該当することか
ら、入力符号C0DHに一致する文字code(K)を
探し出し、文字Kを出力する。 尚、出力した文字には後の例外処理のためFINcha
rにセットしておく。 次に82に進んで次の符号を読込んでC0DEにINc
odeとしてセットする。S3で新たな符号があるか否
か、即ち符号入力の終了の有無をチエツクしてS4に進
み、S3で入力された符号C0DEが辞書に定義(登録
)されているか否かチエツクする。 通常、入力した符号語は前回までの処理で辞書に登録さ
れているため、S5に進んで符号C0DHに対応する文
字列code (ωK)を辞書から読出し、S6で文字
Kを一時的にスタックし、参照番号C0DE(ω)を新
な符号C0DEとして再度S5に戻り、このS5.S6
の手順を再帰的に参照番号ωが一文字Kに至るまで繰り
返し、最後に87に進んでS6でスタックした文字をL
 I FO(Last In FartOuj)形式で
ポツプアップして出力する。同時に87において、前回
使った符号ωと今回復元した文字列の最初の1文字Kを
組(ωK)と表した文字列に、新たな参照番号を付加し
て辞書に登録する。 第11図を参照してLZW復号化処理を具体的に説明す
ると次のようになる。 まず第11図で最初の入力符号語(INPUT C0D
E)は1であり、−文字a、b、cについては既に参照
番号1. 2. 3として第10図に示すように辞書に
登録されているため、辞書の参照により符号語1に一致
する参照番号の文字列aに置き換えて出力する。 次の符号語2についても同様にして文字すに置き換えて
出力する。このとき前回処理した符号語1と今回復号し
た文字列の1番目の文字すとを組合わせた文字列ωに=
1bに新たな参照番号4を付加して辞書に登録する。 3番目の符号語4は辞書の検索により求めた文字列1b
から文字列abと置き換えて文字列abを出力する。同
時に前回処理した符号語2と今回復号した文字列の1番
目の文字aとの組合せた文字列ωに=2a (=ba)
に新たな参照番号5を付加して辞書に登録する。 以下同様に、この処理を繰り返す。 第11図のLZW復号化では次の例外処理がある。 この例外処理は、第6番目の入力符号語8の復号で生ず
る。符号語8は復号時に辞書に定義されておらず、復号
できない。この場合には、前回処理した符号語5に前回
復号した文字列baの最初の一文字すを加えた文字列5
bを求め、更に5 b=2 a b=b a b と置き換えて出力する例外処理を行う。そして、文字列
の出力後に前回の符号語5に今回復号した文字列の1番
目の文字すを加えた文字列5bに参照番号8を付加して
辞書に登録する。 この例外処理は、第6図の復号化処理フローの84、S
8の処理を通じて行われ、最終的に87で文字列の出力
と新たな文字列に参照番号を付加した辞書への登録が8
7で行われる。 尚、第8.11図のLZW復号化は、復号側で符号を解
読しながら辞書をリアルタイムで作り出す場合を説明し
たが、符号化の際に作られた辞書をそのまま復号化側に
コピーとして使用することで符号化しても良い。この場
合に復号化側での例外処理は不要になる。 このように第7図の処理フロー図に示す手順でLZW符
号化を行うと、1つの文字列を辞書検索するたびに、最
悪、辞書全体をサーチしなければならならず、辞書検索
に時間がかかる問題があった。 そこで従来の辞書検索方式にあっては、外部/1ツシユ
法(open hashing  又は chaini
ng)を用いて処理速度を上げている。 まず−膜内なハツシュ法による辞書検索にあっては、複
数の文字列からなる集合Sを考えたとき、集合Sの文字
列Xの格納位置を、文字列Xそのものから格納位置を示
すアドレスを直接計算できる仕組みになっており、高速
の辞書検索ができる。 文字列の記憶場所、即ちハツシュ表に0から田−1まで
のアドレスが付されているとすると、ハツシュ法では、
関数 h:s→(0,1,・・・、 m−1)を一つ定めて、
集合Sの文字列Xのアドレスをh(x)として求める。 この関数りをハツシュ関数、値h (x)を文字列Xの
ハツシュアドレスという。 ハツシュ法は、通常、集合Sの大きさがアドレス数mに
比べてはるかに大きい場合に用いられる。 しかしながら、ハツシュ関数りをどのように選んだとし
ても、集合Sの相異なる文字列xi、x2に対して h  (xi)=h  (x2) ハツシュアドレスが一致してしまう場合が起こり得る。 これを衝突と呼び、衝突に対する対策の一つとして外部
ハツシュ法(open hashing、  またはc
haining)が用いられる。 外部ハツシュ法は第12図に示すように、索引(ディレ
クトリ)で示されるハツシュアドレスi毎に連結リスト
を用意し、衝突を起こしたハツシュアドレスh(x)=
iの文字列Xは、連結リストの先頭から順番に格納する
。同じハツシュアドレスh (x)をもつそれぞれの連
結リストはパケット(bucket)と呼ばれる。 辞書検索に外部ハツシュ法のリスト構造を利用したLZ
W符号化の処理フロー図を第13図に示す。また第14
図は外部ハツシュ法に従った辞書メモリの構成を示した
もので、第15図に示す符号化文字列のツリー構造を例
にとってLZW符号化の検索手順と登録手順を具体的に
示している。 まず第14図において、辞書メモリは、ファーストメモ
リ(First Memory) 100、ネクストメ
モリ (Next Memos) 200及びネクスト
メモリ200の拡張メモリ(Extenlion Me
mory) 300で構成される。ここでファーストメ
モリ100が第12図に示した外部ハツシュ法の索引(
ディレクトリ)に対応し、ネクストメモリ200が第1
2図の連結リストのrnextjに対応し、更に拡張メ
モリ300が第12図のrnameJに対応する。 また第15図のツリー構造は、文字に、。、 K2.。 K2゜2、・・・、に4.が既に登録され、破線で示す
に42は新たに登録される場合を示している。このツリ
ー構造における階層は、第13図の処理において、iカ
ウンタで示され、同じ階層における文字の数はjカウン
タで表される。 従って、各文字の登録アドレスはω、とじて表わされる
。 いま第15図の登録済みのツリー構造に含まれる文字列 「K10・K22. K32・K42」が入力した時の
第13図の処理フローに従った辞書検索によるLZW符
号化及び登録を説明すると次のようになる。 第13図において、まずSlで次の初期化処理を行う。 ■第1番目の文字を含むように辞書を初期化する。 例えばアルファベット26文字であれば、文字コードを
そのままハツシュアドレスとして第14図のファースト
メモリに登録する。第15図の場合、ツリートップにあ
る文字KIOがアドレスω、0に登録された状態を意味
する。 ■辞書への現在文字登録数nを前記■で登録した文字数
にセットする。アルファベット26文字の場合には、n
=26となる。 ■入力した最初の文字Kを語頭文字列iとする。 第15図の場合、最初の入力文字はに、。であることか
ら語頭文字列i=1とする。尚、以下の処理フロー中で
は語頭文字列iをjカウンタとして説明する。 ■辞書検索用配列を0に初期化する。即ち、ファースト
、ネクスト及び拡張のメモリの検索用配列はIi+sl
[1,Nmax]、next [1,Nmax] 、E
XT  [1,Nmax]で表わされるので、これを0
に初期化する。 Slの初期化処理が済んだならば、S2に進んで次の文
字「K2□」を読込む。次に83で未処理の文字がある
か否かチエツクする。全ての処理が終ればS16に進ん
で符号語code (ω)を出力して処理を終了する。 このとき未処理文字があるので85〜S9に示す辞書検
索ステップに進む。 辞書検索ステップは、まずS5でアドレスω。 にそのときの語頭文字列i=1の値をセットし、且つj
カウンタをj=0にセットする。これによりファースト
メモリのアドレスω1.=ω、0が生成される。 次に86でファーストメモリ100のアドレスω、。の
内容を読むとアドレスω1.=ω21が得られるので、
iカウンタをi=2にセットする。 続いてS7に進み、i=0か否かチエツクし、このとき
i=2であることがらS8に進み、S6のファーストメ
モリ100から得られたアドレスω2.の拡張メモリ3
00を参照して文字rK2+Jを読出し、S2で得てい
る入力文字「K22」との一致を判別する。この場合、
両者は不一致であることから89に進み、このときのi
カウンタの値i=2をjカウンタにセットしてj=2と
し、またネクストメモリ200のアドレスω2.に格納
されているアドレスω、=ω2□のjをjカウンタにi
=2としてセットする。このため新たなアドレスω、=
ω2□が作り出される。 続いてS7に戻り、i=0をチエツクし、このときi=
2であることから再びS8に進んでアドレスω2□の拡
張メモリ300の登録文字「K2□」を読出して入力文
字「K22」との一致を判別する。 このとき両者は一致することから82に戻り、次の文字
「K3□」を読込む。以下同様にして85〜S9の処理
の繰り返しにより、第14図の実線の矢印で示す順番に
辞書検索が行なわれ、既に登録済みの文字rK4+Jま
での検索処理が行われる。 登録文字「K4□」の検索が終了してS8で最後の入力
文字1に4□」で不一致が判別された場合には、S9で
i=2にセットすると共に、アドレスω4.のネクスト
メモリ200の内容が0であることから、i=0にセッ
トする。このためS7に戻った時にi=0が判別され、
辞書検索ステップを抜は出してSIOに進み、それまで
の文字列「K、。、に2□、に3゜Jを示すアドレスω
3□を符号語C0de (ω)として出力し、SL1〜
14の辞書登録ステップに進む。 辞書登録ステップにあっては、まずSllで現在登録文
字列nをn=i、即ちn=4にセットし、更にnを1つ
インクリメントする。そして文字「K4□」を拡張メモ
リ300のアドレスω、=ω42に登録する。 次に812でj=0か否かをチエツクし、このときj=
2であることから814に進み、ネクストメモリ200
のアドレスω4.に文字「K42」を登録したアドレス
ω4□を書込む。一方、S12でj=0であれば、即ち
、ファーストメモリ100への登録に移行した状態であ
れば、第14図のファーストメモリ100のアドレスω
01.ω2□、ω32に示すように、拡張メモリ300
の文字登録アドレスを格納する。 この文字登録ステップにおける文字「K42」の登録に
より、第14図のネクストメモリ200及び拡張メモリ
300は、下部に破線で仕切って示すアドレスω41.
ω42の登録状態となり、第15図に示すツリー構造に
新たな文字「K42」のアドレスω42が追加されたこ
とになる。尚、第14図では、アドレスω4.について
は説明の都合上、検索と登録で重複して示している。 SLl〜S14の辞書登録ステップが終了すると、S1
5で登録した文字「K4□」を新たな語頭文字列11即
ち、iカウンタの値にセットし、再びS2に戻って文字
rK、s2Jをツリートップとして、その後に続く文字
列の辞書検索に移行する。
【発明が解決しようとする課題】
このように従来のLZW符号化にあっては、ソフトウェ
アにより第7図に示した処理フローを実行して符号化す
る場合、辞書検索処理に多くの時間を要するとこから、
外部ハツシュ法を利用して第13図の処理フローにより
辞書検索の高速化を図っている。 しかしながら、外部ハツシュ法を利用した辞書検索にあ
っては、候補文字の続出、候補文字と入力文字との照合
、一致不一致の判定がシーケルシャルに行なわれるため
に、辞書検索時間が全体時間の約80%を占め、より一
層の高速化が必要とされている。 また、候補文字の読出しに外部ハツシュ法を利用したリ
スト構造を採用しているため、現在の候補文字の格納ア
ドレスと次の候補文字の格納アドレスとの間にはあまり
関連性がなく、随時読み出すしかなく、アドレスの先だ
しが出来ず、辞書メモリを構成する素子の性能を最大限
に活かすことができなかった。 例えば、辞書メモリとしてDRAMを用いる場合、アド
レスに連続性が無いため、例えば列アドレス(Row 
Adress)を固定して行アドレス((Cotum 
AdressJのみを変化させるページモード等の高速
読出が困難であった。 例えば第14図の場合では、ネクストメモリ200のア
ドレスω3□、ω33にはアドレスの連続性が無いので
、第16図に示すように列アドレスと行アドレスを個別
にその都度指定する普通のり一ドモードとなり、高速化
が図れない問題があった。 本発明は、このような従来の問題点に鑑みてなされたも
ので、外部ハツシュ法のリスト構造を利用した辞書メモ
リの高速読出を可能にして辞書検索時間を短縮できるデ
ータ圧縮装置の辞書検索方式を提供することを目的とす
る。
【課題を解決するための手段] 第1図は本発明の原理説明図である。 まず本発明は、符号化済みデータを相異なる部分列に分
けて各部分列毎に異なる参照番号を付加して辞書に登録
しておき、入力データを該辞書中の部分列の内、最大長
一致する部分列の参照番号で指定して符号化するデータ
圧縮装置、例えばLzW符号化を行なうデータ圧縮装置
を対象とする。 このようなデータ圧縮装置の辞書検索方式として本発明
にあっては、外部ハツシュ法のリスト構造に従ったファ
ーストメモリ100及び拡張メモリ300を有するネク
ストメモリ200を備え、入力データに基づく外部ハツ
シュアドレスの連結アドレスを、部分的にネクストメモ
リ200の連続アドレスで構成した辞書メモリ20と、
入力データに基づいてネクストメモリ200のアドレス
を連続的に発生して入力データに一致する拡張メモリ3
00の候補データを検索する辞書検索手段16と設けた
ことを特徴とする。 ここで辞書検索手段16は、入力データと候補データの
一致検査、候補データの有無、次の候補データの読出し
を平行して行うパイプライン制御手段26を備える。ま
た辞書メモリ20のアクセスモードとして高速ページモ
ードを使用する。 【作用】 このような構成を備えた本発明によるデータ圧縮装置の
辞書検索方式によれば、LZW符号化の辞書検索におい
て外部ハツシュ法に基づくリスト構造をもつ辞書メモリ
の索引アドレスを連続アドレスで構成することで、1つ
のハツシュアドレスが決まれば次のアドレスが予測でき
るので、候補文字の検索アクセスをより高速化し、辞書
メモリの高速読出による符号化ができ、符号化処理時間
を短縮することができる。
【実施例】
第2図の本発明の辞書検索方式を備えたデータフ圧縮装
置(符号化装置)の一実施例を示した実施例構成図であ
る。 第2図において、処理対象となる原データ10はDMA
 (Direct Memor7 Access)制御
回路12を介して入力される。制御手段としてのMPU
I4は入力された原データ10を、1−文字と今までの
文字列の参照番号を辞書検索回路16の複数文字読込み
回路18にセットした後、辞書検索回路16を起動する
。 辞書検索回路16は以後、辞書メモリ20より1文字伸
ばした文字列の候補文字を読込み、一致検査回路22で
入力文字と候補文字との一致検査(照合)を行ない、連
結検出回路24で候補文字の有無の検出を行なう。 パイプライン制御回路26は、一致検査回路22による
入力文字と候補文字の照合と連結検出回路24による候
補文字の有無の検出とに並行して辞書メモリ20に次の
候補文字の読出しをかける。 このようにパイプライン制御回路26でパイプライン処
理を行なうことで、候補文字の複数個ごとの探索と照合
処理が辞書メモリ20のサイクル・タイムで実行するこ
とができる。 更に辞書検索回路16には連続アドレス回路28が設け
られ、連続アドレス回路28は連続アドレスを発生し、
複数文字読込み回路18に辞書メモリ20の連続アドレ
スに登録されているノ1ツシュアドレス及び候補文字を
読出すようにする。 LZW符号の符号化では、辞書メモリ20中の最大長一
致する文字列を求める。従って、入力文字を付加して文
字列を逐次−文字ずつ伸ばしていき、候補文字がなくな
ったところで最大一致長の文字列であることが分かる。 このとき、最大一致長文字列まではアドレスωを使用し
た参照番号で表わされており、その参照番号ωを入出力
ボート30から外部に圧縮された符号語code (ω
)として出力する。 第3図は第2図に示した本発明の辞書検索回路16の詳
細な構成を辞書メモリ20と共に示した実施例構成図で
ある。 第3図において、アドレスレジスタ18−1゜レジスタ
18−2及びレジスタ18−3が第2図の複数文字読込
み回路18に対応し、レジスタ22−1.比較器22−
2が第2図の一致検査回路22に対応し、NOR回路2
4−1が第2図の連結検出回路24に対応し、更にカウ
ンタ28−1が第2図の連続アドレス回路28に対応す
る。 次に第3図の実施例による辞書検索を、第4図の検索手
順と登録手順の説明図及び第5図の辞書メモリ20の登
録状態を示すツリー構造説明図をを参照して説明する。 尚、以下の説明でメモリアドレスωは、上位アドレス1
1下位アドレスjによりω1.として表されるものとす
る。 いま原データ10として第5図のツリー構造に含まれる
文字列 「K、。、に2゜、  K32. K4□」が入力した
とする。 まずMPU14は最初に入力した文字列の1番目の文字
に1oの1文字分の参照番号ω1oを上位アドレスを指
定するアドレスレジスタ18−1にセットすると共に、
入力した2番目の文字に2゜をレジスタ18−2にセッ
トする。 次にパイプライン制御回路26に辞書検索回路16の起
動を指令する。パイプライン制御回路26は、まず連続
アドレスを発生するカウンタ28−1を0にセットして
から辞書メモリ20に続出をかける。カウンタ28−1
の内容は辞書メモリ20のアドレスの最下位2ビツト(
L S B)を指定する。従って、アドレスレジスタ1
8−1の内容ω1.−ω1oによるが辞書メモリ20の
上位アドレスの指定と、カウンタ28−1の内容j=0
による辞書メモリ20の下位アドレスの指定でなるアド
レス(ω+o+0)により第4図のファーストメモリ1
00をアクセスしてω21を読出し、アドレスレジスタ
18−1にセットする。 次にアドレスレジスタ18−1の内容ω2.を上位アド
レス、カウンタ28−1の内容を下位アドレスとしたア
ドレス(ω21十〇)により辞書メモリ20のネクスト
メモリ200及び拡張メモリ300をアクセスし、第1
番目の候補文字に21及び第2番目の候補文字に22の
連結アドレスω2□を読出す。読出した第1番目の候補
文字に2+はレジスタ18−2にセットし、第2番目の
候補文字に22の連結アドレスω2□はレジスタ18−
3にセットする。そして、レジスタ22−1にセットさ
れている入力文字に2□とレジスタ18−2にセットさ
れた第1番目の候補文字に21を比較器22−2で比較
して一致、不一致の判定を行なう。 両者は一致しないことから、不一致の判定が出され、次
の候補文字に2□を読出すが、このときカウンタ28−
1の値を1つインクリメントして辞書メモリ20の下位
アドレスのみを変えたネクストメモリ200のアドレス
(ω21+1)を発生し、ネクストメモリ200のアク
セスで次の候補文字に22をレジスタ18−2に読出す
。このとき上位アドレスを指定しているアドレスレジス
タ181の内容ω2□はそのままである。 以下同様に、この動作を繰りの返すが、カウンタ28−
1を使用して無闇に連続アドレスを発生させることは、
辞書メモリ20を大きくするので、この実施例にあって
は、4回の連続アドレスを発生させることを考えている
。例えば文字コードが8ビツトの場合、9ビツトを越え
るアドレスは意味がないからである。 従って、検索の4回に1回はネクストメモリ200の連
続アドレスではなく、ファーストメモリ100のアクセ
スで得られた連結アドレスω11を使用する。即ち、上
位アドレスを固定したままカンウタ28−1で連続する
下位アドレス「00゜01.10.IIJを4回発生す
ると、次の連続アドレス「00」への切替えと同時に、
レジスタ18−3に4回目のアクセスでレジスタス18
−3で格納されているファーストメモリ100の連結ア
ドレスをアドレスレジスタ18−1にセットする。 例えば第4図のネクストメモリ200の上位アドレスω
9.を例にとると、カウンタ28−1による下位アドレ
スのインクリメントで、 ω31十〇(=ω3.) ω31+1 (=ω3□) ω31+2(=ω33) ω31+3(=ω34) が連続アドレスとして発生され、5回目はネクストメモ
リ200に格納された次の連続アドレスへの連結アドレ
スω3.を続出して上位アドレスとして再び連続アドレ
スの発生を最初から繰り返す。 このような辞書検索により比較器22−2で入力文字と
候補文字の照合が一致したときは、同時にNOR回路2
4−1でレジスタ18−3の内容(ネクストメモリ20
0の連結アドレス)がオル0であるか否かを検査し、オ
ールOとなるまで辞書検索を繰り返す。もしレジスタ1
8−3がオール0であれば、検索すべき候補文字がなく
なったことが検出される。この場合には、MPU14及
びパイプライン制御回路26は、辞書検索回路16の検
索処理を終了させ、それまでの辞書検索により最後に一
致した候補文字のアドレスを符号語code (ω)と
して出力する。 第4図の場合、入力文字rK4+jでネクストメモリ2
00の内容がオール0となることから、この段階で辞書
検索を終了し、最後に一致した候補文字rK4+Jのア
ドレス(ω41+0)を符号語C0de(ω)として出
力する。 続いてMPU14は、最後に残った入力文字「K4□」
につきアドレス(ω4゜+1)の拡張メモリ300への
登録と、ネクストメモリ200のアドレス(ω41+0
)への連結アドレスω4□の登録を行った後、入力文字
rK42Jを語頭文字列iとして新たな辞書検索に移行
する。 このように本発明では、連続的にアドレスを発生して候
補文字及び連結アドレスを検索できるので、辞書メモリ
20として第6図に示すような列アドレスを固定した状
態で行アドレスをのみを変化させる連続アドレスによる
高速ページモードが使用でき、候補文字及びその連結ア
ドレスが高速で読出せるので、辞書探索の高速実行が実
現できる。
【発明の効果】
以上説明したように本発明によれば、LZW符号化の辞
書探索において外部ハツシュ法を利用した連結リストを
連続アドレスで構成したため、1つのアドレスが決まれ
ばアドレスの予測による先だしができ、辞書メモリとし
て例えばDRAMを使用した際の高速ページモードの実
現によりメモリ素子の性能をフルに発揮して辞書検索の
高速化を図ることができる。
【図面の簡単な説明】
第1図は本発明の原理説明図; 第2図は本発明の実施例構成図; 第3図は本発明の辞書検索回路の詳細を示た実施例構成
説明図; 第4図は本発明のLZW符号の検索手順と登録手順の説
明図; 第5図は本発明の辞書登録内容を示すツリー構造図;第
6図は本発明の高速ページモードを使用した場合のDR
AMリードモードのタイミングチャート; 第7図は従来のLZW符号化処理フロー図;第8図は従
来のLZW復号化処理フロー図;第9図はLZW符号化
説明図; 第10図は辞書構成例の説明図; 第11図はLZW符号化説明図; 第12図は外部ハツシュ法のリスト構造説明図;第13
図は外部ハツシュ法を利用した従来のLZW符号化処理
フロー図; 第14図は第13図のLZW符号の検索手順と登録手順
の説明図; 第15図は第14図の辞書登録内容を示たツリー構造図
; 第16図は高速ページモードが使用出来ないDRAMリ
ードモードのタイミングチャートである。 図中、 10:原データ 12 : DMA制御回路 14:MPU 16:辞書検索手段(辞書検索回路) 18:複数文字読込み回路 18−1:アドレスレバスタ 18−2.18−3:レジスタ 20:辞書メモリ 22ニ一致検査回路 22−1 :レジスタ 22−2:比較器 24:連結検出回路 24−1:NOR回路 26:パイプライン制御回路 28:連続アドレス回路 28−1 :カウンタ 30:入出力回路 100・ファーストメモリ 200ネクストメモリ 300;拡張メモリ

Claims (3)

    【特許請求の範囲】
  1. (1)符号化済みデータを相異なる部分列に分けて各部
    分列毎に異なる参照番号を付加して辞書に登録しておき
    、入力データを該辞書中の部分列の内、最大長一致する
    部分列の参照番号で指定して符号化するデータ圧縮装置
    に於いて、 外部ハッシュ法のリスト構造に従ったファーストメモリ
    ((100)及び拡張メモリ(300)を有するネクス
    トメモリ(200)を備え、入力データに基づく外部ハ
    ッシュアドレスの連結アドレスを、部分的に前記ネクス
    トメモリ(200)の連続アドレスで構成した辞書メモ
    リ(20)と; 前記入力データに基づいて前記ネクストメモリ(200
    )のアドレスを連続的に発生して入力データに一致する
    前記拡張メモリ(300)の候補データを検索する辞書
    検索手段(16)と; を備えたことを特徴とするデータ圧縮装置の辞書検索方
    式。
  2. (2)請求項1記載のデータ圧縮装置の辞書検索方式に
    於いて、 前記辞書検索手段(16)は、入力データと候補データ
    の一致検査、候補データの有無、次の候補データの読出
    しを平行して行うパイプライン制御手段(26)を備え
    たことを特徴とするデータ圧縮装置の辞書検索方式。
  3. (3)請求項1記載のデータ圧縮装置の辞書検索方式に
    於いて、 前記辞書メモリ(20)のアクセスモードとして高速ペ
    ージモードを使用することを特徴とするデータ圧縮装置
    の辞書検索方式。
JP2251499A 1990-09-20 1990-09-20 データ圧縮装置の辞書検索方式 Expired - Fee Related JP3038234B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2251499A JP3038234B2 (ja) 1990-09-20 1990-09-20 データ圧縮装置の辞書検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2251499A JP3038234B2 (ja) 1990-09-20 1990-09-20 データ圧縮装置の辞書検索方式

Publications (2)

Publication Number Publication Date
JPH04129429A true JPH04129429A (ja) 1992-04-30
JP3038234B2 JP3038234B2 (ja) 2000-05-08

Family

ID=17223718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2251499A Expired - Fee Related JP3038234B2 (ja) 1990-09-20 1990-09-20 データ圧縮装置の辞書検索方式

Country Status (1)

Country Link
JP (1) JP3038234B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006332982A (ja) * 2005-05-25 2006-12-07 Sony Corp デコーダ回路及びデコード方法
WO2014106782A1 (en) * 2013-01-03 2014-07-10 International Business Machines Corporation High bandwidth compression to encoded data streams
CN117435822A (zh) * 2023-10-31 2024-01-23 深圳依时货拉拉科技有限公司 城市检索意图识别方法、装置、设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006332982A (ja) * 2005-05-25 2006-12-07 Sony Corp デコーダ回路及びデコード方法
WO2014106782A1 (en) * 2013-01-03 2014-07-10 International Business Machines Corporation High bandwidth compression to encoded data streams
GB2521082A (en) * 2013-01-03 2015-06-10 Ibm High bandwidth compression to encoded data streams
JP2016506197A (ja) * 2013-01-03 2016-02-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 多バイト・フレームのパイプライン化圧縮のための方法、符号化データ・ストリームへの高帯域圧縮のための装置、およびコンピュータ・プログラム製品
CN117435822A (zh) * 2023-10-31 2024-01-23 深圳依时货拉拉科技有限公司 城市检索意图识别方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP3038234B2 (ja) 2000-05-08

Similar Documents

Publication Publication Date Title
US5150430A (en) Lossless data compression circuit and method
JP3225638B2 (ja) データを圧縮するための装置及び方法並びにデータ処理システム
JP3303225B2 (ja) Lempel−Zivタイプ・アルゴリズムを用いたデータ圧縮装置
US6385617B1 (en) Method and apparatus for creating and manipulating a compressed binary decision diagram in a data processing system
JPH07200247A (ja) データ圧縮装置および方法
JPH04129429A (ja) データ圧縮装置の辞書検索方式
JP3038233B2 (ja) データ圧縮及び復元装置
JP2774350B2 (ja) データ圧縮方法および圧縮データのデータ復元方法
JP2952067B2 (ja) データ圧縮方式
JP3103172B2 (ja) 辞書検索方法
JP2952068B2 (ja) データ圧縮及び復元方式
JP3236747B2 (ja) データ伸長方式
JPH09232967A (ja) データ圧縮装置及び復元装置
US12489461B2 (en) Compression device and compression method
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
JP3115066B2 (ja) 辞書検索方法
JPH04167821A (ja) データ符号化及び復号化方法
JP3105330B2 (ja) 画像データの圧縮復元方式
JPH04145726A (ja) データ圧縮及び復元方式
JP3058711B2 (ja) データ圧縮及び復元方法
JP3186530B2 (ja) コンピュータデータの圧縮・伸長方法
JP2825960B2 (ja) データ圧縮方法及び復元方法
JPH05252049A (ja) データ圧縮処理方式及びデータ復元処理方式
JP3083329B2 (ja) データ圧縮復元方式
JPH03270416A (ja) データ圧縮および復元方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees