JPH09232967A - データ圧縮装置及び復元装置 - Google Patents

データ圧縮装置及び復元装置

Info

Publication number
JPH09232967A
JPH09232967A JP8034493A JP3449396A JPH09232967A JP H09232967 A JPH09232967 A JP H09232967A JP 8034493 A JP8034493 A JP 8034493A JP 3449396 A JP3449396 A JP 3449396A JP H09232967 A JPH09232967 A JP H09232967A
Authority
JP
Japan
Prior art keywords
dictionary
unit
character string
index
memory
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
Application number
JP8034493A
Other languages
English (en)
Inventor
Yoshiyuki Okada
佳之 岡田
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 JP8034493A priority Critical patent/JPH09232967A/ja
Publication of JPH09232967A publication Critical patent/JPH09232967A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】LZW符号化と復号化における辞書検索と辞書
登録を高速化して処理速度を高める。 【解決手段】データ圧縮装置は、辞書を2つに分けて辞
書メモリ18,20とし、辞書アクセス切替部16によ
って、一方の辞書メモリ18を辞書検索部10で検索中
に、他方の辞書メモリ20に辞書登録部14により登録
する。辞書検索部10、辞書登録部12及びインデック
ス符号化部14は、パイプライン制御部22によりパイ
プライン動作される。データ復元装置も、2つの辞書メ
モリ36,38に分け、一方の辞書メモリ36を検索復
元中に、他方の辞書メモリ38に登録を同時に行う。イ
ンデックス復号化部24、辞書検索部26、辞書登録部
28、スタック蓄積部30,32、およびスタック出力
部34も、パイプライン制御部25によりパイプライン
動作される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、入力文字列と辞書
に既に登録した文字部分列との最長一致検索により符号
化するデータ圧縮装置及びその復元装置に関し、特に辞
書検索と辞書登録を同時に行えるようにしたデータ圧縮
装置及びその復元装置に関する。
【0002】
【従来の技術】近年、文字コード、ベクトル情報、画像
など様々な種類のデータがコンピュータで扱われるよう
になっており、扱われるデータ量も急速に増加してきて
いる。大量のデータを扱うときは、データの中の冗長な
部分を省いてデータ量を圧縮することで、記憶容量を減
らしたり、速く伝送したりできるようになる。
【0003】様々なデータを1つの方式でデータ圧縮で
きる方法としてユニバーサル符号化が提案されている。
ここで、本発明の分野は、文字コードの圧縮に限らず、
様々なデータに適用できるが、以下では、情報理論で用
いられている呼称を踏襲し、データの1ワード単位を文
字と呼び、データが任意の複数ワードにつながったもの
を文字列と呼ぶことにする。
【0004】ユニバーサル符号の代表的な方法として、
ジブ・レンペル(Ziv-Lempel)符号がある(詳しくは、
例えば、宗像「Ziv-Lempelのデータ圧縮法」、情報処
理、Vol.26,No.1,1985年を参照のこと)。ジブ・レンペ
ル符号には、スライド辞書法と、動的辞書法(Incremen
talparsing)の2つのアルゴリズムが提案されている。
更に、スライド辞書型アルゴリズムの改良として、LZ
SS符号がある(T.C. Bell,"Better OPM/L TextCompre
ssion",IEEE Trans. on Commun., Vol.COM-34,No.12, D
ec. 1986参照)。
【0005】また動的辞書型アルゴリズムの改良として
は、LZW(Lempel-Ziv-Welch)符号がある(T.A. Wel
ch,"A Technique for High-Performance DataCompressi
on",Computer, June 1984参照)。これらの符号のう
ち、高速処理ができることと、アルゴリズムの簡単さか
らLZW符号が記憶装置のファイル圧縮などで使われる
ようになっている。
【0006】図11にLZW符号における辞書の木構成
を示し、図12にLZW符号における文字列の符号化の
原理を示す。LZW符号化は、書き替え可能な辞書を持
ち、入力文字列(ソースデータ)中を相異なる文字列に
分け、この文字列を出現した順に番号をつけて辞書に登
録すると共に、現在入力している文字列を辞書に登録し
てある最長一致文字列の番号で表して、符号化するもの
である。
【0007】図13はFCモード(FC: First Chara
cter) として知られたLZW符号化処理の具体例であ
り、説明を簡単にするため、a,b,cの3文字の場合
を例にとっている。このため符号化に使用する図14の
辞書には、文字a,b,cの各々が初期登録されてい
る。FCモードのLZW符号化では、辞書の検索で不一
致となった1文字を現在の登録済み文字列に付加して辞
書に登録する。
【0008】図13において、入力データは左から右へ
読み込む。最初の文字aを入力したとき、辞書には文字
aの他に一致する文字列がないので、参照番号(インデ
ックス)を符号語として出力する。そして、拡張した文
字列abに参照番号4をつけて辞書に登録する。実際の
登録は文字列1bの形となる。続いて2番目の文字bが
文字列の先頭になる。辞書には文字bの他に一致する文
字列がないので、参照番号2を符号語として出力し、拡
張した文字列baを実際には2aの形で参照番号5をつ
けて辞書に登録する。3番目のaが次の文字列の先頭に
なる。以下、同様にこの処理を続ける。
【0009】図15のフローチャートは、FCモードに
おけるLZW符号化のアルゴリズムである。まずステッ
プS1で予め全文字につき1文字からなる文字列を初期
値として辞書に登録してから符号化を始める。ステップ
S2では入力した最初の文字Kを辞書検索の参照番号
(インデックス)ωとし、これを語頭文字列(prefixst
ring)とする。またTを0とし、更に検索アドレスLに
辞書の先頭アドレスNをセットする。
【0010】次にステップS3で入力データの次の文字
Kを読み込み、ステップS4ではステップS2で求めた
語頭文字列ωにステップS3で読み込んだ文字Kを加え
た文字列(ωK)が現在の辞書にあるか否か検索する。
ステップS4で文字列(ωK)が辞書に存在すれば、ス
テップS5でT=0を判別してステップS9に進み、文
字列(ωK)が直前に登録された検索アドレスLに存在
するか否かチェックする。存在しなければステップS6
に進んで文字列(ωK)を参照番号ωに置き換える。存
在する場合には、ステップS10に進んで符号語code
(ω)を出力し、文字Kを参照番号ωとし、またTを1
にセットする。
【0011】続いてステップS7で入力データが終了か
どうかを判断した後、再びステップS3に戻って文字列
(ωK)が辞書から探せなくなるまで最大一致長の検索
を続ける。この検索中にステップS4で文字列(ωK)
が辞書に存在しなくなれば、、ステップS8に進んでス
テップS2で求めた文字Kの参照番号ωを符号語code
(ω)として出力する。
【0012】また文字列(ωK)に新たな参照番号を付
加して辞書に登録し、ステップS2の入力文字Kを参照
番号ωに置き換えるとともに、辞書アドレスNをインク
リメントし、更にTを0に戻す。そしてステップS7の
データ終了チェックを行った後、ステップS3に戻って
次の文字Kを読み込む。図16はFCモードにおけるL
ZW復号化処理の具体例であり、説明を簡単にするた
め、a,b,cの3文字の組み合わせを例にとってい
る。まず最初の入力符号は1であり、1文字a,b,c
については、図13のように既に参照番号1,2,3と
して辞書に登録されているため、辞書の参照により符号
1に一致する参照番号の文字列aに置き換えて出力す
る。
【0013】次の符号2についても同様にして文字bに
置き換えて出力する。このとき前回処理した符号と今回
復号した最初の1文字bとを組み合わせた(1b)に新
たな参照番号4を付加して辞書に登録する。3番目の符
号4は辞書の探索により1bからabと置き換えて文字
列abを出力する。同時に前回処理した符号2と今回復
号した文字列の1番目の文字aとの組み合わせ文字列2
a(=ba)を新たな参照番号5を付加して辞書に登録
する。以下同様に、この処理を繰り返す。
【0014】ここで、図16の復号化には次の例外処理
がある。この例外処理は、第6番目の入力符号8の復号
を生ずる。符号8は復号時に辞書に定義されておらず、
復号できない。この場合には、前回処理した符号5に前
回復号した文字列baの最初の1文字bを加えた文字列
5bを求め、さらに2ab,babと置き換えられて出
力される。そして、文字列の出力語に前回の符号語5に
今回復号した文字列の文字bを加えた文字列5bに参照
番号8を付加して辞書に登録する。
【0015】図17のフローチャートは、FCモードに
おけるLZW復号化のアルゴリズムであり、図14の符
号化の逆の操作を行う。まずステップS1において符号
化と同様に予め辞書に全文字につき1文字からなる文字
列を初期値として登録してから復号を始める。ステップ
S2で最初の符号(参照番号)を読み込み、現在のCODE
をOLDcode とし、最初の符号は既に辞書に登録された1
文字の参照番号のいずれかに該当することから、入力符
号CODEに一致する文字code(K)を探し出し、文字Kを
出力する。なお、出力した文字(K)は後の例外処理の
ためcharにセットしておく。
【0016】次にステップS3に進んで次の符号を読み
込んでCODEにNEWcode としてセットする。次にステップ
S4に進み、ステップS3で入力された符号CODEが辞書
に定義(登録)されているか否かチェックする。通常、
入力した符号語は前回までの処理で辞書に登録されてい
るため、ステップS5に進んで符号CODEに対応する文字
列code(ωK)を辞書から読み出し、文字列Kを一時的
にスタックし、参照番号code(ω)を新たなCODEとして
再度ステップS4に戻り、このステップS4,ステップ
S5の手順を再帰的に参照番号ωが1文字に至るまで繰
り返す。
【0017】最後にステップS6に進んで、ステップS
5でスタックした文字をLILO(Last In Fast Out)
形式でポップアップして出力する。同時に、前回使った
符号ωと今回復元した文字列の最初の1文字Kを組
(ω,K)と表した文字列に新たな参照番号を付加して
辞書に登録する。なお、辞書に登録されていない符号
(符号化において直前の参照番号を参照する場合におき
る)の場合は、即ち図16の第6番目の入力符号8の復
号で生ずる例外処理は、OLDcode をCODEに、code(OLDco
de,char)をNEWcode に戻した後にステップS4へ進むよ
うにする。
【0018】図18は、APモード(AP:All Prefi
x)として知られたLZW符号化の具体例であり、説明
を簡単にするため、a,b,cの3文字の場合を例にと
っており、図19に辞書を示す。APモードのLZW符
号化では、FCモードの辞書登録に加え、直前の文字列
に不一致となるまでの現在の文字列を追加登録する。例
えば、図18の2番目の文字bを入力した場合は、FC
モードでは、3番目の文字aを入力して文字列baを参
照番号5で2aの形で登録しているが、これに加えAP
モードでは、4番目の文字bを入力して直前の文字列b
aに不一致となった時に、現在入力している文字列ba
bに参照番号6を付して5bの形で追加登録する。この
APモードによる追加登録は、参照番号9,10,1
2,16,17でも行っている。
【0019】図20はAPモードにおけるLZW符号化
アルゴリズムであり、また図21はAPモードにおける
LZW復号化の具体例であり、更に、図22はAPモー
ドにおけるLZW復号化アルゴリズムである。
【0020】
【発明が解決しようとする課題】図23(A)は従来の
データ圧縮装置であり、図23(B)に処理手順を示
す。従来のデータ圧縮装置は、入力される文字列と最長
一致する登録文字列を検索する辞書検索部102、辞書
検索後に最後の不一致データを加えた文字列を登録する
辞書登録部104、最長一致の文字列を符号化するイン
デックス符号化部106、及び辞書検索部102、辞書
登録部106の要求に従ってアクセスされる辞書メモリ
108から構成される。
【0021】従来のデータ圧縮装置は、図23(B)の
ように、例えば〜のように1〜4バイト目の順番に
辞書検索を行い、4バイト目で辞書登録がなかったとす
ると、で3バイト目までの文字列の参照番号に4バイ
ト目の文字を加えた文字列に新たな参照番号を付して辞
書に登録し、でインデックス符号化出力を行い、以
下、これを繰り返す。
【0022】しかし、このような従来のデータ圧縮装置
にあっては、辞書検索と辞書登録を逐次行わなければな
らないため、高速処理に適していない。即ち、一組の文
字列に対する辞書検索、辞書登録、及びインデックス符
号化の過程を一通り経過した後に、次の組の文字列の処
理を行うというバッチ・シリアル処理(プロセッサによ
る通常のプログラム動作に相当)である。
【0023】また辞書検索と辞書登録は必ず同じ辞書メ
モリ108をアクセスするため、原理的に同時にアクセ
スするのが困難で、結果としてバッチ・シリアル処理を
余儀無くされ、高速処理に適していない。図24(A)
は、従来のデータ復元装置であり、図24(B)に処理
手順を示す。図24(A)の従来のデータ復元装置は、
入力されたインデックスを復号化するインデックス復号
化部110、復号化したインデックスから文字列を逆に
検索する辞書検索部112、辞書検索により復元した文
字列をスタック蓄積し先入れ後出し(first in last ou
t )により順序を並べ替えて文字列を出力するスタック
蓄積出力部116、文字列を登録する辞書登録部11
4、および辞書検索部112又は辞書登録部114の要
求に従いアクセスされる辞書メモリ118から構成され
る。
【0024】この従来のデータ復元装置は、図24
(B)の例えば〜のように、で入力したインデッ
クス(符号)について、の辞書検索で文字が復元され
るとでスタック蓄積し、これを〜のように繰り返
す。そしてで復元した文字列の辞書登録を行った後、
スタックした文字を順次出力し、以下、これを繰り返
す。しかし、このような従来のデータ復元装置にあって
も、辞書検索、スタック蓄積および辞書登録を逐次行わ
なければならないため、高速処理に適していない。即
ち、1つのインデックスに対するインデックス復号化、
辞書検索、スタック蓄積と出力、および辞書登録という
復号化の過程を一通り経過した後に、次の組のインデッ
クスの処理を行うというバッチ・シリアル処理(プロセ
ッサによる通常のプログラム動作に相当)である。
【0025】また辞書検索と辞書登録は必ず同じ辞書メ
モリ118をアクセスするため、原理的に同時にアクセ
スするのが困難で、結果としてバッチ・シリアル処理を
余儀無くされ、高速処理に適していない。本発明は、こ
のような従来の問題点に鑑みてなされたもので、入力さ
れる文字列と辞書に既に登録した文字列との最長一致検
索により符号及びその復号化での辞書検索と登録を高速
化して処理速度を高めるようにしたデータ圧縮装置及び
その復元装置を提供することを目的とする。
【0026】
【課題を解決するための手段】図1は本発明の原理説明
図である。まず本発明は、図1(a)の入力される文字
列と辞書に既に登録した文字列との最長一致検索により
符号化を行うデータ圧縮装置を対象とする。データ圧縮
装置は、辞書検索部10により入力される文字列と辞書
に既に登録した文字列との最長一致を検索し、この検索
された入力文字列に最長一致する登録済み文字列のイン
デックス(辞書番号)をインデックス符号化部14で符
号化する。同時に、辞書登録部14が、入力文字列に最
長一致する登録済み文字列のインデックスに入力文字列
を加えた文字列を新たなインデックスを付して辞書に登
録する。
【0027】このようなデータ圧縮装置につき本発明に
あっては、辞書を2つに分けられた一対の辞書メモリ1
8,20とし、辞書アクセス切替部16によって、一方
の辞書メモリ18(又は20)を辞書検索部10で検索
中に、他方の辞書メモリ20(又は18)に辞書登録部
12により登録を同時に行うことを特徴とする。更に、
辞書検索部10、辞書登録部12及びインデックス符号
化部14を、パイプライン動作により並列処理させるパ
イプライン制御部22を設け、高速化を図る。辞書検索
部10および辞書登録部12は、内部ハッシュにより各
辞書メモリ18,20のアクセスを行う。この場合、辞
書検索部10は、辞書登録部12による直前の登録を、
次の検索に使用しない。
【0028】一対の辞書メモリ18,20は、図1
(B)のように、辞書の木構造での枝の深さを示す複数
階層につき、奇数階層と偶数階層とに分けられた奇数階
層辞書メモリ18と偶数階層辞書メモリ20とする。こ
の場合、辞書検索部10と辞書登録部12が同じ階層辞
書メモリにアクセスする場合、辞書登録部10による登
録を優先させる。
【0029】このように本発明のデータ圧縮装置は、図
1(B)のLZW符号の木構造から見て、先頭の文字か
ら奇数番目の文字列と偶数番目の文字列を別々の辞書メ
モリ18,20に登録する。そして奇数番目の辞書メモ
リ18に文字列を新規に登録する際、次に符号化すべき
新たな文字列を偶数番目の辞書メモリ20から同時に検
索する。
【0030】これによって登録と検索を並行して行うこ
とができ、高速処理ができる。ここで、1文字目は、辞
書メモリ18,20に初期登録されているため、最初の
検索は必ず偶数文字列から始まる。更に、本発明のデー
タ圧縮装置は、辞書検索、辞書登録、インデックス符号
化の各々をパイプラインで並列処理とすることで、更に
高速処理とすることができる。
【0031】また本発明は、図1(C)のように、入力
される符号により辞書のインデックスを復号して辞書に
登録した文字列を復元するデータ復元装置を対象とする
もので、インデックス復号化部24により符号を入力し
て辞書のインデックスを復号し、復号したインデックス
を使用した辞書検索部26による辞書の検索で文字を復
元する。
【0032】辞書検索部26で復元された文字はスタッ
ク蓄積部30,32にスタックされ、その後、スタック
出力部34がスタック蓄積部30,32に蓄積された複
数の文字を選択的に出力して元の文字列を復元する。こ
の時、辞書登録部28は、検索済みインデックスに直前
の入力文字列を加えた文字列を、新たなインデックスを
付して辞書に登録する。
【0033】このようなデータ復元装置についても、本
発明は、辞書を2つの辞書メモリ36,38に分け、一
方の辞書メモリ36(又は38)を検索復元中に、他方
の辞書メモリ38(又は36)に登録を同時に行う。更
に本発明のデータ復元装置は、インデックス復号化部2
4、辞書検索部26、辞書登録部28、スタック蓄積部
30,32、およびスタック出力部34を、パイプライ
ン動作により並列処理させるパイプライン制御部25を
設けたことを特徴とする。
【0034】この場合も、辞書検索部26および辞書登
録部28は、内部ハッシュにより各辞書メモリのアクセ
スを行う。また辞書検索部26は、辞書登録部28によ
る直前の登録を、次の検索に使用しない。復号に使用す
る一対の辞書メモリ36,38は、辞書の木構造での枝
の深さを示す複数階層につき、奇数階層と偶数階層とに
分けられた奇数階層辞書メモリ36と偶数階層辞書メモ
リ38とする。更に辞書検索部26と辞書登録部28が
同じ階層辞書メモリアクセスする場合、辞書登録部によ
る登録を優先させる。
【0035】このように本発明によるデータ復元装置で
は、インデックス復号化、辞書検索、スタック蓄積、ス
タック出力、辞書登録の各処理をパイプラインで高速に
並列処理する。また復元した文字のスタック蓄積とスタ
ック出力を、複数のスタック蓄積部30,32により交
互に行うことで並列化し、高速処理を実現している。
【0036】
【発明の実施の形態】図2は本発明のデータ圧縮装置の
ブロック図である。図2において、本発明のデータ圧縮
装置は辞書検索部10、辞書登録部12、インデックス
符号化部14、辞書アクセス切替部16、奇数階層辞書
メモリ18、偶数階層辞書メモリ20及びパイプライン
制御部22で構成される。辞書検索部10は、入力され
る文字列K1,K2,・・・と最長一致する辞書の登録
文字列を検索する。
【0037】具体的には、辞書アクセス切替部16を介
して奇数階層辞書メモリ18または偶数階層辞書メモリ
20のリードによる一致検索を行う。辞書登録部12
は、辞書検索部10による検索終了時に、検索できた最
長一致する登録文字列のインデックスωに最後の不一致
文字Kを加えた文字列ωKを辞書に登録する。インデッ
クス符号化部14は、辞書検索部10で得られた最長一
致する文字列のインデックスを符号化する。辞書検索部
10及び辞書登録部12に対し設けられた2つの奇数階
層辞書メモリ18と偶数階層辞書メモリ20は、図3に
示す辞書構成を有する。
【0038】図3は、LZW符号の木構造から見た奇数
階層辞書メモリ18と偶数階層辞書メモリ20の取出し
方である。LZW符号の木構造において、まず先頭文字
となる第1階層には、例えばインデックス0〜255で
示す256種類の文字が初期登録されている。この第1
階層の先頭文字に対し、LZW符号化における辞書検索
と辞書登録により第1階層、第2階層、第3階層、第4
階層というように、枝の深さの木構造が作り出される。
【0039】このような木構造について本発明にあって
は、奇数階層となる第1階層、第3階層、第5階層、・
・・の文字列を奇数階層辞書メモリ18に登録し、第2
階層、第4階層、第6階層、・・・の文字列を偶数階層
辞書メモリ20に登録する。このように辞書を奇数階層
辞書メモリ18と偶数階層辞書メモリ20に分けている
場合には、第1階層の先頭文字は初期登録により予め奇
数階層辞書メモリ18に登録されていることから、辞書
検索部10による辞書検索は、第2階層から検索すれば
よく、したがって辞書検索は必ず偶数階層辞書メモリ2
0から開始する。
【0040】このため辞書登録部12で奇数階層辞書メ
モリ18に新規に文字列を登録する際には、辞書検索部
10は次に符号化すべき新たな文字列を偶数階層辞書メ
モリ20から同時に検索することができ、登録と検索の
並行処理により処理速度を向上できる。尚、偶数階層辞
書メモリ20に文字列を新規に登録する際には、次に符
号化すべき新たな文字列の検索は同じ偶数階層辞書メモ
リ20から開始しなければならないが、この場合には辞
書検索は休止する。
【0041】更に図2の実施形態にあっては、パイプラ
イン制御部22によって辞書検索部10、辞書登録部1
2及びインデックス符号化部14の各処理過程をパイプ
ライン動作させることで並列処理することができる。こ
のため、従来のバッチ処理に比べ処理速度を原理的には
3倍に向上させることができる。図4は図2のデータ圧
縮装置におけるFCモードのLZW符号化における辞書
検索、辞書登録、インデックス符号化のタイムチャート
であり、〜(10)サイクルを例にとって示している。こ
の図4のFCモードのLZW符号化にあっては、辞書検
索を完全ハッシュにより行っており、これによって入力
データ1バイトにつき1サイクルで処理を完了する。
【0042】まずサイクルで1バイト目の文字を入力
し、偶数階層辞書メモリ20の参照で偶数階層、即ち第
2階層からの辞書検索を開始し、一致する文字列を検索
する。続いてサイクルで2バイト目の文字を入力し、
第3階層となる奇数階層における奇数階層辞書メモリ1
8を対象とした検索を行って、一致した文字列を得る。
続いてサイクルにあっては3バイト目の文字を入力
し、再び第4階層となる偶数階層に戻って、偶数階層辞
書メモリ20の検索で、一致する文字列を検索する。
サイクルの4バイト目については、第5階層となる奇数
階層であることから、奇数階層辞書メモリ18を検索す
る。
【0043】この4バイト目の奇数階層辞書メモリ18
の検索で一致する文字列が得られなかったとする。続い
てサイクルの5バイト目については、辞書検索は再び
第2階層となる偶数階層からの一致検索となる。同時に
辞書登録としてサイクルの4バイトで、奇数階層にお
ける検索で文字列がなかったことから、奇数階層辞書メ
モリ18に対する登録を行う。
【0044】更に、サイクルで得られた3バイト目ま
での一致文字列のインデックスωに不一致となった4バ
イト目の文字Kを加えた文字列ωKをインデックス符号
化する。次の〜にあっては、5バイト目、6バイト
目にあっては、偶数階層辞書メモリ20及び奇数階層辞
書メモリ18の検索で文字列の一致が得られるが、7バ
イト目における偶数階層辞書メモリ20の検索で一致検
索が得られなかったとする。
【0045】この場合には、次のサイクルで文字列検
索ができなかった偶数階層辞書メモリ20に対する辞書
登録を行う。しかし、新たな8バイト目の文字列の辞書
検索は同じ偶数階層辞書メモリ20から行わなければな
らないため、辞書登録と同時の辞書検索はできず、辞書
検索は休みとしている。もちろん、偶数辞書登録に並行
して7バイト目までの辞書検索で得られた6バイト目の
一致文字列のインデックスと7バイト目の不一致文字を
合わせた文字列のインデックス符号化が行われる。
【0046】図5は、図4のFCモードにおける内部ハ
ッシュによる辞書検索と辞書登録の手順の一例である。
図5において、まず最初のインデックスω1と次の文字
K2からハッシュ値H(ω1,K2)によりハッシュア
ドレスω2を作り、偶数階層辞書メモリ20を検索す
る。この偶数階層辞書メモリ20の検索でハッシュアド
レスω2に登録している文字列(ω1,K2)と入力文
字列(ω1,K2)が一致すれば、次に検索したアドレ
スω2と次の文字K3からハッシュ値H(ω2,K3)
を作り、奇数階層辞書メモリ18を検索する。
【0047】以下同様に、次の入力文字K4及びK5に
ついて同様な動作を行い、(ω4,K5)の組合わせの
文字列が奇数階層辞書メモリ18になかったので、この
時点で辞書検索を終了する。続いて奇数階層辞書メモリ
18に対し文字列(ω4,K5)の組のハッシュ値H
(ω4,K5)を作って、インデックスω5に(ω4,
K5)の組を登録する。
【0048】同時に偶数階層辞書メモリ20にあって
は、新たなインデックスと文字の組合せω1K2による
検索を開始する。このように内部ハッシュにより検索と
登録を同時に行うことでLZW符号化の高速処理を実現
する。図6は図2のデータ圧縮装置について、APモー
ドにおける辞書検索、辞書登録及びインデックス符号化
のパイプライン動作を示している。APモードのLZW
符号化においても、〜サイクルで1〜4バイト目の
文字のバイト単位の入力を行い、偶数階層辞書メモリ2
0と奇数階層辞書メモリ18の順番で交互に辞書検索を
行う。
【0049】この場合、サイクルの4バイト目の奇数
階層辞書メモリ18の検索で文字列が存在せず、次の
サイクルの5バイト目で新たな文字列の符号化を開始す
る。この5バイト目の辞書検索の際には、最初であるこ
とから偶数階層辞書メモリ20の辞書検索となり、同時
に4バイト目の文字列不一致が奇数階層辞書メモリ18
で起きていたことから奇数階層辞書メモリ18に対する
辞書登録を並行して行う。また4バイト目までの辞書検
索で得られたインデックスと不一致文字の組の文字列を
インデックス符号化する。
【0050】続いて〜サイクルで5〜7バイト目の
文字列の検索が同様にして行われるが、APモードにあ
っては、6バイト目及び7バイト目のサイクルに並
行して、前回符号化が済んだ文字列について辞書に追加
登録を行う。この場合の追加登録は、サイクルの新規
登録が奇数階層辞書メモリ18であったことから次の追
加登録は偶数階層辞書メモリ20に対する追加登録とな
り、辞書検索における6バイト目の奇数階層辞書メモリ
18の辞書検索と並行して行うことができる。またサ
イクルの辞書登録は奇数階層辞書メモリ18に切り替わ
り、7バイト目の偶数階層辞書メモリ20の辞書検索に
並行して行うことができる。そしてサイクルで7バイ
ト目の偶数階層辞書メモリ20の検索で文字列の不一致
となった場合には、サイクルで、文字列不一致となっ
た偶数階層辞書メモリ20に対する辞書登録を行う。
【0051】このとき次の8バイト目からの新たな文字
列の符号化については、同じ偶数階層辞書メモリ20の
辞書検索となることから、辞書検索を1回休む。サイ
クルからは8バイト目となる新たな文字列の辞書検索で
あり、最初は偶数階層辞書メモリ20の辞書検索となる
ため、符号化が済んだ5〜7バイト目の文字列の追加登
録をサイクルで同時に奇数階層メモリ18に対し行
う。
【0052】図7は、図6のAPモードにおける内部ハ
ッシュによる本発明の辞書検索と辞書登録の手順の具体
例である。まず最初のインデックスω1と次の文字K2
とからハッシュ値H(ω1,K2)を作り、偶数階層辞
書メモリ20から検索を開始し、文字(K3,K4,K
5)と一致検索し、文字K5による奇数階層辞書メモリ
18の検索で未登録となって検索が終了したとする。
【0053】このような辞書検索に並行して、まず偶数
階層辞書メモリ20の検索開始と同時に奇数階層辞書メ
モリ18に対し、前回検索終了となった文字列(ω4,
K5)の組合せの文字列を登録する。次の奇数階層辞書
メモリ18に対するインデックスω2と文字K3による
辞書検索に並行して、偶数階層辞書メモリ20に対して
は、直前に登録したインデックスω5に直前の文字K2
を加えた文字列(ω5,K2)をハッシュ値H(ω5,
K2)から求めたアドレスω6を使用して追加登録す
る。
【0054】このような追加登録は偶数階層辞書メモリ
20,奇数階層辞書メモリ18に対する検索と同時に交
互に行われ、文字列(ω4,K5)による奇数階層辞書
メモリ18の検索で未登録となる追加登録(ω7,K
4)までを行う。このようにAPモードにあっては、辞
書検索と辞書登録を切り替えながら同時に行うことでL
ZW符号化の高速処理が実現できる。
【0055】図8は本発明のデータ復元装置のブロック
図である。図8においてデータ復元装置は、インデック
ス復号化部24、辞書検索部26、辞書登録部28、二
組のスタック蓄積部30,32、セレクタとして機能す
るスタック出力部34、辞書アクセス切替部35、奇数
階層辞書メモリ36及び偶数階層辞書メモリ38で構成
される。
【0056】インデックス復号化部24は、入力された
符号からインデックスを復元する。辞書検索部26は、
復号化されたインデックスによる辞書の参照で逆に文字
列を検索する。奇数階層辞書メモリ36及び偶数階層辞
書メモリ38は、図3のデータ圧縮装置の場合と同じL
ZW符号の木構造の奇数階層と偶数階層のそれぞれの文
字登録を行う。
【0057】奇数階層辞書メモリ36及び偶数階層辞書
メモリ38は、辞書アクセス切替部35により辞書検索
部26及び辞書登録部28に対するアクセス経路を切り
替えることができる。辞書検索部26による奇数階層辞
書メモリ36と偶数階層辞書メモリ38の検索は、イン
デックス復号化部24で復号されたインデックスが奇数
階層か偶数階層かを識別して検索対象を決定する。
【0058】スタック蓄積部30,32は、辞書検索部
26による辞書の検索で復元された文字列を符号単位に
交互にスタック蓄積する。選択部としてのスタック出力
部34は、スタック蓄積部30,32にスタックされた
文字列をfirst in lastout (先入れ後出し)により順
序を並べ替えて、文字列を符号単位に交互に出力する。
【0059】辞書登録部28は、辞書検索部26による
入力符号の文字列への復元が終了するごとに、前回復元
した文字列のインデックスに今回復元した文字列の先頭
文字を加えた文字列の登録を行う。更にパイプライン制
御部25が設けられ、インデックス復号化部24、辞書
検索部26、辞書登録部28、スタック蓄積部30,3
2、及びスタック出力部34の各々の復号化の処理過程
をパイプライン動作により並列的に処理する。
【0060】図9は図8のデータ復元装置におけるFC
モードにおけるLZW復号化を示している。まずサイ
クルで1コード目の符号を入力してインデックス復号化
し、次のサイクルで2コード目の符号を入力して復号
化すると同時に、辞書検索のため1コード目の復号化に
より得られたインデックスからLZW木構造における階
層を認識し、この場合、偶数階層であったとする。
【0061】このためサイクルで認識した偶数階層に
対応する偶数階層辞書メモリ38のインデックスを参照
し、得られた文字を次のサイクルで例えばスタック蓄
積部30にスタックする。同時にサイクルでは、サ
イクルで得られたインデックスにより奇数階層辞書メモ
リ36を参照し、得られた文字列を次のサイクルでス
タック蓄積し、同時にサイクルでは、サイクルで得
られたインデックスによる偶数階層辞書メモリ38の検
索を行う。
【0062】そしてサイクルでの辞書登録で未登録と
なった場合には、サイクルで、サイクルにおいて復
号化している2コード目のインデックスの階層を奇数階
層と認識する。また最後の復元文字のスタックを行う。
更にサイクルでは、3コード目の符号のインデックス
復号化が行われる。次のサイクルでは、奇数階層と判
別された2コード目の符号によるインデックスを使用し
た奇数階層辞書メモリ36の辞書検索となるが、この場
合、サイクルでの検索終了に伴う奇数階層辞書メモリ
36に対する辞書登録が行われることから、辞書検索は
1回休みとしている。
【0063】これに対し(11)サイクルにあっては、奇数
階層辞書メモリ36の検索と同時に偶数階層辞書メモリ
38に対する辞書登録が並行して行われており、検索と
登録を交互に同時に行うことで高速化が図られている。
またスタック蓄積部30,32を交互に使用して蓄積と
出力を行うことで、復元処理を高速化している。図10
は、図8のデータ復元装置におけるAPモードでのイン
デックス復号化、辞書検索、辞書登録、スタック蓄積及
びスタック出力のパイプライン処理である。APモード
にあっては、サイクルで復号した1コード目の符号の
インデックスについて、サイクルで辞書検索が未登録
となった後のサイクルにおける辞書登録に続いて、
,サイクルで追加登録を行っている点が相違する。
【0064】このAPモードにあっても、奇数階層辞書
メモリ36と偶数階層辞書メモリ38に対する検索と登
録を交互に同時に行うことで高速化でき、更にスタック
蓄積部30,32を交互に切り替えて蓄積と蓄積出力を
行うことで高速化を実現できる。
【0065】
【発明の効果】以上説明してきたように本発明によれ
ば、入力文字列と辞書に登録された文字列との最長一致
検索によるLZW符号に使用する辞書について、木構造
の奇数階層と偶数階層により2つの辞書に分けて奇数文
字列と偶数文字列の辞書を別々に持たせたことで、辞書
の検索と登録を交互に同時に行うことができ、データ圧
縮及びデータ復元の高速処理を実現することができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明のデータ圧縮装置のブロック図
【図3】図2で使用するLZW符号の辞書の木構造から
見た奇数階層と偶数階層別の辞書メモリの説明図
【図4】図2のFCモードのLZW符号化におけるパイ
プライン動作の説明図
【図5】FCモードのLZW符号化について内部ハッシ
ュによる辞書検索と辞書登録の各手順の説明図
【図6】図2のAPモードのLZW符号化におけるパイ
プライン動作の説明図
【図7】APモードのLZW符号化について内部ハッシ
ュによる辞書検索と辞書登録の各手順の説明図
【図8】本発明のデータ復元装置のブロック図
【図9】図8のFCモードのLZW復号化におけるパイ
プライン動作の説明図
【図10】図8のAPモードのLZW復号化におけるパ
イプライン動作の説明図
【図11】従来のLZW符号における辞書の木構造の説
明図
【図12】LZW符号における文字列の符号化の説明図
【図13】FCモードのLZW符号化の具体例の説明図
【図14】図13の符号化で使用する辞書の説明図
【図15】FCモードのLZW符号化アルゴリズムのフ
ローチャート
【図16】FCモードにおけるLZW復号化の具体例の
説明図
【図17】FCモードにおけるLZW復号化アルゴリズ
ムのフローチャート
【図18】APモードのLZW符号化の具体例の説明図
【図19】図17の符号化で使用する辞書の説明図
【図20】APモードのLZW符号化アルゴリズムのフ
ローチャート
【図21】APモードにおけるLZW復号化の具体例の
説明図
【図22】APモードにおけるLZW復号化アルゴリズ
ムのフローチャート
【図23】LZW符号化をシリアルバッジ処理を行う従
来のデータ圧縮装置のブロック図
【図24】LZW復号化をシリアルバッジ処理を行う従
来のデータ復元装置のブロック図
【符号の説明】
10,26:辞書検索部 12,28:辞書登録部 14:インデックス符号化部 16:辞書アクセス切替部 18,36:奇数階層辞書メモリ 20,38:偶数階層辞書メモリ 22,25:パイプライン制御部 24:インデックス復号化部 30,32:スタック蓄積部 34:スタック出力部

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】入力される文字列と辞書に既に登録した文
    字列との最長一致を検索する辞書検索部と、 前記辞書検索部で検索された入力文字列に最長一致する
    登録済み文字列のインデックスを符号化するインデック
    ス符号化部と、 前記入力文字列に最長一致する登録済み文字列のインデ
    ックスに入力文字列を加えた文字列を新たなインデック
    スを付して前記辞書に登録する辞書登録部と、を備え、
    入力される文字列と辞書に既に登録した文字部分列との
    最長一致検索により符号化を行うデータ圧縮装置に於い
    て、 前記辞書を構成する2つに分けられた一対の辞書メモリ
    と、 前記一方の辞書メモリを前記辞書検索部で検索中に、他
    方の辞書メモリに前記辞書登録部により文字列の登録を
    同時に行う辞書アクセス切替部と、を設けたことを特徴
    とするデータ圧縮装置。
  2. 【請求項2】請求項1記載のデータ圧縮装置に於いて、
    更に、前記辞書検索部、辞書登録部及びインデックス符
    号化部を、パイプライン動作により並列処理させるパイ
    プライン制御部を設けたことを特徴とするデータ圧縮装
    置。
  3. 【請求項3】請求項1記載のデータ圧縮装置に於いて、
    前記辞書検索部および前記辞書登録部は、内部ハッシュ
    により前記各辞書メモリのアクセスを行うことを特徴と
    するデータ圧縮装置。
  4. 【請求項4】請求項1記載のデータ圧縮装置に於いて、
    前記一対の辞書メモリは、辞書の木構造での枝の深さを
    示す複数階層につき、奇数階層と偶数階層とに分けられ
    た奇数階層辞書メモリと偶数階層辞書メモリであること
    を特徴とするデータ圧縮装置。
  5. 【請求項5】請求項4記載のデータ圧縮装置に於いて、
    前記辞書検索部と辞書登録部が同じ階層辞書メモリにア
    クセスする場合、前記辞書登録部による登録を優先させ
    ることを特徴とするデータ圧縮装置。
  6. 【請求項6】符号を入力して辞書のインデックスを復号
    するインデックス復号化部と、 インデックス復号化部で復号したインデックスによる辞
    書の検索で文字を復元する辞書検索部と、 前記辞書検索部で復元された文字をスタックするスタッ
    ク蓄積部と、 前記スタック蓄積部に蓄積された複数の文字を選択的に
    出力して元の文字列を復元するスタック出力部と、 検索済みインデックスに直前の入力文字列を加えた文字
    列を、新たなインデックスを付して前記辞書に登録する
    辞書登録部と、を備え、入力される符号から復号したイ
    ンデックスによる辞書の検索により文字字列を復元する
    データ復元装置に於いて、 前記辞書を構成する2つに分けられた一対の辞書メモリ
    と、 一方の辞書メモリを検索復元中に、他方の辞書メモリに
    登録を同時に行う辞書アクセス切替部と、を設けたこと
    を特徴とするデータ復元装置。
  7. 【請求項7】請求項6記載のデータ復元装置に於いて、
    前記インデックス復号化部、辞書検索部、辞書登録部、
    スタック蓄積部、およびスタック出力部を、パイプライ
    ン動作により並列処理させるパイプライン制御部を設け
    たことを特徴とするデータ復元装置。
  8. 【請求項8】請求項6記載のデータ復元装置に於いて、
    前記辞書検索部および前記辞書登録部は、内部ハッシュ
    により前記各辞書メモリのアクセスを行うことを特徴と
    するデータ復元装置。
  9. 【請求項9】請求項6記載のデータ復元装置に於いて、
    前記一対の辞書メモリは、辞書の木構造での枝の深さを
    示す複数階層につき、奇数階層と偶数階層とに分けられ
    た奇数階層辞書メモリと偶数階層辞書メモリであること
    を特徴とするデータ復元装置。
  10. 【請求項10】請求項9記載のデータ復元装置に於い
    て、前記辞書検索部と辞書登録部が同じ階層辞書メモリ
    にアクセスする場合、前記辞書登録部による登録を優先
    させることを特徴とするデータ復元装置。
JP8034493A 1996-02-22 1996-02-22 データ圧縮装置及び復元装置 Withdrawn JPH09232967A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8034493A JPH09232967A (ja) 1996-02-22 1996-02-22 データ圧縮装置及び復元装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8034493A JPH09232967A (ja) 1996-02-22 1996-02-22 データ圧縮装置及び復元装置

Publications (1)

Publication Number Publication Date
JPH09232967A true JPH09232967A (ja) 1997-09-05

Family

ID=12415782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8034493A Withdrawn JPH09232967A (ja) 1996-02-22 1996-02-22 データ圧縮装置及び復元装置

Country Status (1)

Country Link
JP (1) JPH09232967A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990002822A1 (en) * 1988-09-06 1990-03-22 Vesuvius Crucible Company Refractory liner compositions
JP2006332775A (ja) * 2005-05-23 2006-12-07 Sony Corp 文字列検索回路及び文字列検索方法
JP2011176770A (ja) * 2010-02-25 2011-09-08 Canon Inc 情報処理装置及びその制御方法及びプログラム及び記憶媒体
US11354601B2 (en) 2018-03-16 2022-06-07 Ricoh Company, Ltd. Learning classification device and learning classification method
US12001339B2 (en) 2022-03-09 2024-06-04 Kioxia Corporation Dictionary compression device and memory system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990002822A1 (en) * 1988-09-06 1990-03-22 Vesuvius Crucible Company Refractory liner compositions
JP2006332775A (ja) * 2005-05-23 2006-12-07 Sony Corp 文字列検索回路及び文字列検索方法
JP4556766B2 (ja) * 2005-05-23 2010-10-06 ソニー株式会社 文字列検索回路及び文字列検索方法
JP2011176770A (ja) * 2010-02-25 2011-09-08 Canon Inc 情報処理装置及びその制御方法及びプログラム及び記憶媒体
US11354601B2 (en) 2018-03-16 2022-06-07 Ricoh Company, Ltd. Learning classification device and learning classification method
US12001339B2 (en) 2022-03-09 2024-06-04 Kioxia Corporation Dictionary compression device and memory system

Similar Documents

Publication Publication Date Title
EP0688104A2 (en) Data compression method and apparatus
JP2001357048A (ja) ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法
JPH09232967A (ja) データ圧縮装置及び復元装置
JPH10261969A (ja) データ圧縮方法および装置
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JPH0764765A (ja) データ圧縮装置及びデータ復元装置
JP3038233B2 (ja) データ圧縮及び復元装置
JPH06274311A (ja) データ圧縮装置及びデータ復元装置
JPH05152971A (ja) データ圧縮・復元方法
JP3555506B2 (ja) 文字列データ圧縮符号化装置及び文字列データ復元装置及び文字列データ演算処理装置
JPH05341953A (ja) データ圧縮方法及び装置
JP3132774B2 (ja) データ圧縮・復元装置
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JPH04167821A (ja) データ符号化及び復号化方法
JP3012677B2 (ja) Zl符号化方法
JP2999561B2 (ja) データ圧縮及び復元装置
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
JPH0738447A (ja) ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法
JP3236747B2 (ja) データ伸長方式
JP2952068B2 (ja) データ圧縮及び復元方式
JP2535655B2 (ja) 辞書検索方式
JP2772124B2 (ja) 辞書検索方式
JP3058711B2 (ja) データ圧縮及び復元方法
JPH10260980A (ja) 圧縮検索方式
JP2003152548A (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: 20030506