JPH0496174A - 辞書検索方式 - Google Patents

辞書検索方式

Info

Publication number
JPH0496174A
JPH0496174A JP2211295A JP21129590A JPH0496174A JP H0496174 A JPH0496174 A JP H0496174A JP 2211295 A JP2211295 A JP 2211295A JP 21129590 A JP21129590 A JP 21129590A JP H0496174 A JPH0496174 A JP H0496174A
Authority
JP
Japan
Prior art keywords
dictionary
character
character string
reference number
candidate
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
JP2211295A
Other languages
English (en)
Other versions
JP2772125B2 (ja
Inventor
Shigeru Yoshida
茂 吉田
Yasuhiko Nakano
泰彦 中野
Yoshiyuki Okada
佳之 岡田
Hirotaka Chiba
広隆 千葉
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 JP2211295A priority Critical patent/JP2772125B2/ja
Priority to DE69128053T priority patent/DE69128053T2/de
Priority to EP91307188A priority patent/EP0470798B1/en
Priority to US07/740,912 priority patent/US5136289A/en
Publication of JPH0496174A publication Critical patent/JPH0496174A/ja
Application granted granted Critical
Publication of JP2772125B2 publication Critical patent/JP2772125B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術 発明が解決しようとする課題 課題を解決するための手段 作用 実施例 発明の効果 〔概 要〕 例えば増分分解型のZiv−Lempel符号化の際な
どに用いられる辞書検索方式に関し、 高速に辞書を検索することを目的とし、入力された参照
番号と文字とで表される文字列を検索する辞書検索方式
において、辞書は、参照番号に対応し、この参照番号の
文字列に1文字を付加した候補文字列の少なくとも1つ
に対応する識別情報と他の候補文字列の格納場所を示す
ポインタとを格納する索引と、最後の1文字が異なる少
なくとも1つの候補文字列に対応する識別情報と他の候
補文字列の格納場所を示すポインタとを格納する複数の
リストとを有し、辞書に対して、最初は、入力された参
照番号に基づいて索引を指定し、以後は、辞書によって
出力されたポインタで示されるリストを指定して、格納
内容の出力を指示する読出手段と、辞書から読み出され
る識別情報のそれぞれと入力文字とを比較する複数の比
較手段を有し、辞書から読み出される候補文字列の中か
ら該当する文字列を検出する検出手段と、辞書から読み
出されたポインタに基づいて、読出済でない候補文字列
があるか否かを判定する判定手段とを備え、読出手段と
検出手段と判定手段とがそれぞれ独立に動作するように
構成する。
〔産業上の利用分野〕
本発明は、ユニバーサル符号の一種である増分分解型の
Ziv−Lempel符号化の際などに用いられる辞書
検索方式に関する。
近年、文字コード、ベクトル情報9画像情報など様々な
種類のデータがコンピュータによって扱われるようにな
っており、また、扱われるデータ量も栄、速に増大して
いる。
このような膨大なデータを蓄積したり伝送したりする際
には、データの中に含まれている冗長な部分を省いてデ
ータ量を圧縮することが望ましい。
このため、データの種類にかかわらず、効率よくデータ
を圧縮する方法が望まれている。
ユニバーサル符号化方式は、予め符号表を定めておく必
要がないため、上述した様々なデータの圧縮に適用する
ことができるという特徴を有している。
ここで、本明細書においては、データの1語単位をr文
字Jと称し、連続した複数語のデータをr文字列」と称
する。
ジブーレンペル(Ziv−Le信pel)符号は、上述
したユニバーサル符号の代表的な方法であり(宗像著’
Ziv−Lempelのデータ圧縮法」、情報処理、 
Vol。
26、NO,1,1985参照)、ユニバーサル型のア
ルゴリズムと増分分解型のアルゴリズムとが提案されて
いる。更に、ユニバーサル型アルゴリズムの改良として
、LZSS符号(T、C,Be1l、”Better 
OPM/LText Compression’、IH
EE Trans、on Commun、、Vol。
C0M−34,No、12.Dec、1986参照)が
あり、増分分解型アルゴリズムの改良として、LZW符
号(T、A。
Welch、”A  Technique  for 
 High−Perfor+wance  DataC
ompression’、Computer、Ju、n
e 1984)がある。
これらの符号化方式のうち、高速処理が可能であること
とアルゴリズムが簡単であることから、LZW符号が記
憶装置のファイル圧縮などで使われるようになっている
〔従来の技術〕
増分分解型アルゴリズムは、入力された文字列を、既に
辞書に登録された部分列に1文字を増分として付加して
形成される成分の系列に分解し、この成分の系列を登録
された部分列に対応する参照番号と増分とで表すことに
より、入力文字列を符号化するものである。また、上述
した成分は、新しい部分列として辞書に登録され、以降
の符号化処理に用いられるようになっている。
更に、LZW符号においては、上述した増分を次の部分
列に組み込むようになっている。
以下、簡単のために、入力文字列として、 a“b”、
”c”の3文字からなる文字列”ababcbabab
aaaaa・−−” (第4図(a)参照)が入力され
た場合について、このLZW符号化方式について説明す
る。
この場合は、上述した3文字“a 、“′b゛。
C”に参照番号rl」、’2J、f3Jを与えて辞書に
登録して、符号化処理を開始する。
まず、入力文字列の先頭の文字(例えば文字“aパ)を
読み込み、辞書からこの文字を検索し、この文字に対応
する参照番号(例えば「IJ)を着目している文字列に
対応する符号ωとする。
その後、入力文字列の2番目以降の各文字を順次に読み
込んで、この文字を上述した増分に相当する拡張文字に
とし、上述した符号ωとこの拡張文字にとの組合せ(ω
K)で表される部分列(ωK)(以下、組合せ(ωK)
を部分列の表現と称する)を辞書から検索する。該当す
る部分列(ωK)が検索された場合は、上述した部分列
(ωK)に対応する参照番号を新しい符号ωとして、更
に、入力文字列の次の文字を読み込んで、上述した処理
を繰り返す。
このようにして、符号化しようとする文字列を順次に1
文字ずつ延ばしていき、辞書からこの文字列を順次に検
索することにより、辞書に登録された部分列の中から、
入力文字列の注目している部分と最も長く一致する部分
列が検索され、この部分列に対応する参照番号が、該当
する符号ωとして出力される。また、このとき、参照番
号ωに対応する部分列(ω)に拡張文字Kを継ぎ足した
部分列が、参照番号ωと拡張文字にとの組合せ(ωK)
で表され、参照番号が与えられ、新しい部分列として辞
書に登録される。
このようにして、第4図(a)に示した文字列は、図に
おいて下線を付して示した部分列に分解され、第4図0
))に示すように、各部分列に対応する符号r11.r
2」、r4」、・・・が出力される。また、第4図(C
)に入力文字列と辞書に登録された部分列との対応関係
を、第1表に作成された辞書の例を示す。
(重置以下余白) 第1表 また、上述したLZW符号化処理の際に作成された辞書
は、第5図に示すように、樹状の構成を持っており、辞
書の要素のそれぞれは、辞書の樹の各節点に対応してい
る。第5図において、各節点に括弧を付して示した数字
は、対応する辞書の要素の参照番号を示している。
ここで、上述した符号化処理における部分列の検索の際
に、辞書に登録された要素を順次に検索するのでは、処
理に要する時間が長くなるので、辞書の検索処理にハツ
シュ法を適用して高速化を図っている。
ハツシュ法は、文字列からなる集合Sの要素Xからこの
要素Xの格納場所のアドレスを求める関数(ハツシュ関
数)を定義し、このハツシュ関数によって求められたア
ドレスに要素Xを格納するようにしたものである。また
、上述したハツシュ関数によって求められるアドレスを
ハツシュアドレスと称する。
例えば、上述した参照番号ωと拡張文字にとを2進数で
表し、これを組合せ(ωK)のハツシュアドレスとすれ
ばよい。しかしながら、この場合は、辞書に膨大な容量
を割り当てる必要がある。
このため、ハツシュアドレスごとに、同じハツシュアド
レスを有する要素を格納するリストを設けるようにした
外部ハツシュ法が用いられている。
この外部ハツシュ法においては、第6図に示すように、
索引部をハツシュアドレスで検索することにより、該当
するリストが示されるようになっている。また、各リス
トには、各要素に対応する識別情報と次の要素の格納場
所を示すポインタとが格納されており、順次に探索でき
るようになっている。
例えば、上述した参照番号ωをハツシュアドレスとし、
このハツシュアドレスに、参照番号ωに対応する部分列
に1文字を付加した部分列を格納するリストの先頭アド
レスを格納し、該当するリストに、上述した参照番号ω
に対応する節点のr子jに相当する節点に対応する部分
列を順次に格納すればよい。この場合は、各要素の拡張
文字Kを対応する識別情報としてリストに格納すればよ
い。
第7図に、辞書の検索に外部ハツシュ法を用いた場合の
符号化動作を表す流れ図を示す。
上述したように、入力文字列の少なくとも最初の文字を
含むように辞書を初期化し、変数nに次に登録される部
分列に与えられる参照番号をセットする。例えば、文字
“a″、“b”、“C”に与えた参照番号rlj、r2
1.r3jをハツシュアドレスとして辞書に格納し、変
数nに数値r4Jをセットすればよい。ここで、辞書に
登録できる部分列の最大数をN□8とし、それぞれN。
X個の成分からなる配列First、配列Next、配
列Extを定義し、これらの配列の全ての成分に初期値
rOJを設定する。この配列Firstは、第6図に示
した索引部に相当し、配列Nex tおよび配列Ext
はリストに相当している。従って、配列Firstのi
番目の成分First[ilには、参照番号iの節点に
対応するリストの先頭となる配列Nextの成分を示す
番号が設定される。また、配列ExtO1番目の成分E
xt[ilには、参照番号iで示される辞書の要素の拡
張文字Kが設定される。また、配列NextO1番目の
成分Next[il には、参照番号iの要素のr兄弟
」に相当する要素を示すポインタが設定される。
次に、最初の文字Kを読み込んで、この文字Kに対応す
る参照番号を変数iに設定して、符号化処理を開始する
まず、拡張文字にとして、入力文字列の次の文字を読み
込んで(ステップ701)、その次に読み込むべき文字
があれば、ステップ702における肯定判定となり、辞
書の検索処理を開始する。
この場合は、変数iを別の変数ωに退避し、変数jに初
期値「0」を設定してから(ステップ703)、変数i
に対応する成分First[ilの値で示される配列N
extの成分の番号を、変数iに設定する(ステップ7
04)。
ステップ705において、変数iが数値「0」でないと
判定された場合(否定判定)は、該当するリストに格納
された要素を候補要素として、このリストにおける探索
処理を開始する。
この場合は、該当する要素の拡張文字を示す成分Ext
 [ilと拡張文字にとを比較しくステップ706)、
このステップ706における否定判定の場合は、ステッ
プ707において、成分Next[il に設定された
次の要素のポインタを新しい変数iとして、ステップ7
05に戻る。このようにして、ステップ705〜ステツ
プ707を繰り返して、該当するリストを探索する。
ステップ706において、成分Ext[il = Kと
なった場合(肯定判定)は、入力された文字列と一致す
る部分列が辞書に登録されていると判断し、ステップ7
01に戻って次の文字を読み込み、この文字を付加した
文字列の符号化を行う。
一方、変数iに対応する成分First[ilあるいは
成分Next [il の値がrQJであった場合は、
ステップ705における肯定判定となる。
ここで、成分First[ilの値がrOJである場合
は、変数iの節点のr子jに相当する要素がまだ登録さ
れていないため、該当するリストが定義されていないこ
とを示している。一方、成分Next[ilの値がrQ
Jである場合は、該当するリストの中に求める部分列が
格納されていないことを示している。
いずれの場合においても、ステップ703において変数
ωに退避された参照番号が、入力された文字列に最も長
く一致する登録された部分列を示しており、この参照番
号ωに対応する符号を出力して(ステップ708)、新
しい部分列の登録処理を行う。
まず、変数nの値を変数iに設定するとともGこ、変数
nをインクリメントし、また、変数iに対応する成分E
xt[ilに拡張文字Kを設定する(ステップ709)
次に、変数jの値がrOjであるか否かを判定しくステ
ップ710)、肯定判定の場合獣成分First[ω]
に変数iを設定して(ステ・ンブ711)、参照番号ω
に対応するリストを定義する。一方、ステップ710に
おける否定判定の場合(ま、成分Next[j] に変
数iを設定して(ステップ712)、該当するリストに
新しいr兄弟」を付は加える。
このようにして、登録処理が終了した後に、拡張文字K
に対応する参照番号を変数iとして(ステップ713)
、ステ・ンブ’701に戻って上述した処理を繰り返し
、読み込むべき文字がなくなったときに、ステップ70
2における否定判定となり、そのときの変数ωに対応す
る符号を出力して(ステップ714)処理を終了する。
(発明が解決しようとする課題〕 ところで、上述した従来方式にあっては、リストの検索
処理において、該当するリストがあるか否かおよび次の
要素がリストにあるか否かを判定する連結判定処理、入
力された拡張文字と一致する候補文字を検出する一致検
出処理、次のポインタを設定して辞書から読み出す読出
処理、の3つの処理が順次に行われている。このように
、ソフトウェアで順次にリストを手繰る処理を行うと、
部分列の検索処理に時間がかかるため、符号化処理速度
は数10KB/s程度となる。このため、磁気テープ装
置や磁気ディスク装置などへの転送速度(数100KB
/S〜数MB/s)に合わせて実時間で符号化処理を行
うことができないという問題点があった。
一方、上述した符号化処理の各ステップをそれぞれ独立
な素子を用いてデータ圧縮装置を構成すれば、符号化処
理の高速化を図ることが可能であるが、回路規模が大き
くなり、コストが高くなるという欠点がある。
ここで、上述した従来例においては、簡単のために3文
字からなる文字列を符号化する場合について説明したが
、実際の文字列は多くの文字から構成されている。従っ
て、通常、辞書の検索処理においては、ある参照番号に
対応するリストを手繰って、「兄弟jに相当する候補要
素を順次に読み出して、一致する要素を検出する処理お
よび連結する要素の有無を検出する処理に最も長い時間
を要している。
本発明は、このような点にかんがみて創作されたもので
あり、高速に辞書の検索を行うようにした辞書検索方式
を提供することを目的とする。
〔課題を解決するための手段〕
第1図は、本発明の原理ブロック図である。
fiの ■ 図において、それぞれに与えられた参照番号に対応して
辞書110に登録された相異なる文字列の中から、入力
された参照番号と文字とで表される文字列を検索する辞
書検索方式における辞書110は、参照番号に対応し、
当該参照番号が与えられた文字列に1文字を付加して得
られる候補文字列の少なくとも1つに対応する識別情報
と他の候補文字列の格納場所を示すポインタとを格納す
る索引111と、最後の1文字が異なる少なくとも1つ
の候補文字列に対応する識別情報と他の候補文字列の格
納場所を示すポインタとを格納する複数のりスト112
とを有している。
読出手段121は、辞書110に対して、最初は、入力
された参照番号に基づいて索引111に格納されたポイ
ンタと識別情報との出力を指示し、以後は、辞書110
によって出力されたポインタで示されるリスト112を
指定して格納されたポインタと識別情報との出力を指示
する。
検出手段123は、辞書110から読み出される少なく
とも1つの識別情報のそれぞれと入力文字とを比較する
複数の比較手段122を有し、辞書110から読み出さ
れる候補文字列の中から該当する文字列を検出し、この
検出結果を検索結果として出力する。
判定手段124は、辞書110から読み出されたポイン
タに基づいて、読出済でない候補文字列があるか否かを
判定し、この判定結果を検索結果として出力する。
全体として、読出手段121と検出手段123と判定手
段124とがそれぞれ独立に動作するように構成されて
いる。
ii”;2の 日“ 請求項2の発明における読出手段121は、定の時間間
隔で辞書110に対する読出動作を起動し、請求項1の
発明による辞書検索方式において、検出手段123によ
る検出動作と判定手段124による判定動作とを読出手
段121による読出動作と並行して行うように構成され
ている。
〔作 用〕
i −) 1の 辞書110の索引111には、参照番号に対応して、こ
の参照番号に対応する文字列に1文字を付加して得られ
る候補文字列の少なくとも1つに対応する識別情報と他
の候補文字列の格納場所を示すポインタとが格納されて
いる。また、複数のリスト112のそれぞれには、最後
の1文字が相異なる少なくとも1つの候補文字列のそれ
ぞれに対応する識別情報と他の候補文字列の格納場所を
示すポインタとが格納されている。
上述した索引illは、外部ハツシュ法の索引部に相当
しており、複数のりスト112のそれぞれは、外部ハツ
シュ法のリストに相当している。
また、上述したように、索引111および複数のリスト
のそれぞれに格納されているポインタにより、これらの
連結関係が示されている。また、識別情報としては、候
補文字列に与えられた参照番号と最後の1文字とを格納
すればよい。
最初は、読出手段121により、辞書110に対して、
入力された参照番号に基づいて索引111に格納されて
いる少なくとも1つの候補文字列に対応する識別情報と
ポインタとの出力が指示され、以後は、この読出手段1
21により、辞書110によって出力されたポインタに
よって示されるリスト112に格納されたポインタと識
別情報との出力が指示される。このようにして、索引1
11に続いて、上述したポインタによって連結されたり
スト112から、少な(とも1つずつの候補文字列が次
々に読み出される。
上述したようにして、辞書110から読み出される少な
くとも1つの識別情報のそれぞれと入力文字とが、複数
の比較手段122によって比較され、この比較結果に基
づいて、検出手段123により、該当する文字列の検出
が行われる。例えば、識別情報として候補文字列の参照
番号と最後の1文字とを格納するようにした場合は、上
述した比較手段122により、入力文字と各識別情報に
含まれる最後の1文字とを比較し、これらの文字が一致
したときに、検出手段123により、該当する文字列を
検出した旨を検索結果として出力すればよい。
また、辞書110から読み出されたポインタに基づいて
、判定手段124により、読出済でない候補文字列があ
るか否かが判定される。例えば、ポインタによって、次
に連結されるリストの格納場所が示されていない場合に
、読出済でない候補文字列がないと判定し、この判定結
果を検索結果として出力すればよい。
請求項1の発明においては、辞書110の索引111お
よび複数のりスト112のそれぞれに、少なくとも1つ
の候補文字列が格納されており、検出手段123には、
複数の比較手段122が備えられている。これにより、
少なくとも1つの候補文字列を同時に読み出し、これら
の候補文字列についての一致検出処理を同時に行うこと
ができる。また、読出手段121と検出手段123と判
定手段124とが、それぞれ独立に動作するので、従来
方式のように、前の処理の終了を待つ必要がなく、辞書
の検索処理を高速化することが可能となる。
ii ″) 2の 請求項2の発明において、読出手段121は、所定の時
間間隔で辞書110に対する読出動作を行い、また、検
出手段123による検出動作と判定手段124による判
定動作とが、読出手段121による読出動作と並行して
行われる。
例えば、上述した読出手段121は、辞書110からの
読出動作に要する時間ごとに読出動作を行うようにすれ
ばよい。通常は、読出動作に要する時間に比べて、検出
手段123による検出動作および判定手段124による
判定動作は短い時間で終了すると考えられ、読出動作と
検出動作および判定動作とを並行して行うことにより、
検索処理をパイプライン化して処理することができる。
従って、請求項2の発明にあっては、少なくとも1つの
候補文字列を同時に読み出し、これらの候補文字列につ
いての一致検出動作を同時に行うとともに、読出動作と
一致検出動作および判定動作とをパイプライン化して処
理することにより、辞書110からの文字列の検索処理
を高速化することが可能となる。
C実施例〕 以下、図面に基づいて本発明の実施例について詳細に説
明する。
第2図は、本発明の一実施例による辞書検索方式を適用
したデータ圧縮装置の構成を示す。
ここで、第1図と実施例との対応関係について説明して
おく。
辞書110は、辞書230に相当する。
索引111は、索引部231に相当する。
リスト112は、リスト部232に相当する。
読出手段121は、候補要素保持部241とタイミング
制御回路244とに相当する。
比較手段122は、比較回路262a、262bに相当
する。
検出手段123は、拡張文字レジスタ261と比較回路
262a、262bとに相当する。
判定手段124は、否定論理和(NOR)回路243に
相当する。
以上のような対応関係があるものとして、以下実施例の
構成および動作を説明する。
第2図において、201はマイクロプロセッサ(MPU
)を、202は入力ポートを、230は辞書を、240
は辞書検索回路を、205は出力ポートをそれぞれ示し
ている。また、上述したMPU201と、入力ポート2
02と辞書230と辞書検索回路240と出力ポート2
05とは、バス206を介して相互に接続されている。
また、入力ポート202を介して入力された文字列は、
MPU201によりLZW符号化され、出力ポート20
5を介して、磁気ディスク装置(図示せず)などに転送
されて蓄積されるようになっている。
辞書230には、それまでに入力された文字列に含まれ
る相異なる部分列のそれぞれが、出現順に与えられた参
照番号に対応して登録されており、入力された文字列の
着目している部分に最も長く一致する部分列を辞書23
0から検索し、この部分列に対応する参照番号によって
符号化するようになっている。
MPU201は、LZW符号化処理の際に、辞書検索回
路240に、入力文字列の着目している部分に関する識
別情報を導入し、この識別情報に基づいて、辞書検索回
路240は、該当する部分列を辞書230から検索する
ようになっている。
ここで、LZW符号化方式においては、部分列は参照番
号ωと拡張文字にとで表される、。従って、着目してい
る部分をそれまでに検索された部分列に対応する参照番
号ωと、この部分列に拡張文字として付加される最後の
1文字にとで表し、この参照番号ωと拡張文字にとを識
別情報として導入すればよい。
また、辞書検索回路240は、辞書230に登録されて
いる部分列のうち、上述した参照番号ωに対応する部分
列にそれぞれ異なる文字を付加して登録された部分列を
候補要素として順次に読み出し、これらの候補要素の中
から該当する部分列を検索するようになっている。
ここで、上述した辞書230は、外部ハツシュ法の索引
に相当する索引部231と、外部ハツシュ法のリストの
集まりに相当するリスト部232とから構成されている
第3図に、辞書230から上述した候補要素を2つずつ
読み出すようにした場合の索引部231とリスト部23
2との構成を示す。
索引部231は、第3図に示すように、参照番号のそれ
ぞれに対応する格納領域から形成されている。また、こ
れらの格納領域のそれぞれは、連結しているリストの辞
書230におけるアドレスを示すポインタを格納するポ
インタ部と、2つの候補要素に対応する識別情報を格納
する識別情報部と、この識別情報部に格納されている識
別情報の数を示すフラグを格納するフラグ部とを備えて
構成されている。また、この索引部231は、参照番号
を指定した読出指示に応じて、該当する格納領域の各部
のデータを同時にバス206に出力するようになってい
る。
ここで、参照番号ωに対応する格納領域の識別情報部に
は、候補要素の識別情報として、該当する参照番号ω1
.ω2と、各候補要素の最後の1文字に、、に、とを格
納すればよい。例えば、第3図に示したように、識別情
報格納部を2つの参照番号部(図において、■、■で示
す)と2つの文字部(図において、■、■で示す)とで
構成し、2つの参照番号部に上述した参照番号ω1.ω
2を、2つの文字部に上述した文字に+ 、に2をそれ
ぞれ格納すればよい。以下、上述した2つの候補要素の
一方を第1候補要素と称し、他方を第2候補要素と称す
る。
また、上述した識別情報部に第1候補要素に対応する識
別情報のみが格納されている場合に、フラグを論理“1
”とし、その他の場合はフラグを論理“Oパとすればよ
い。
また、リスト部232は、複数のリストから構成されて
おり、各リストは、上述した索引部23Iの各格納領域
と同様に、ポインタ部と識別情報部とフラグ部とから構
成されている。また、リスト部232は、読出指示に応
じて、指定されたリストの各部のデータを同時に、バス
206に出力するようになっている。
このリスト部232の各リストのポインタ部には、該当
するリストに連結されている他のリストの辞書230に
おけるアドレスを示すポインタが格納されている。また
、識別情報部は2つの参照番号部と2つの文字部とから
構成されており、これらの各部には、上述した索引部2
31の識別情報部と同様に、2つの候補要素に対応する
参照番号と最後の1文字とが格納されるようになってい
る。例えば、上述した索引部231の参照番号ωに対応
する格納領域に連結されたリストには、第3図に示すよ
うに、第1候補要素の識別情報として参照番号ω3と文
字に、とが、第2候補要素の識別情報として参照番号ω
4と文字に4とが格納されている。
また、上述した索引部231およびリスト部232の各
領域の内容には、符号化処理を開始する際に、初期値r
□、が設定されるようになっている。
辞書検索回路240は、辞書230から読み出された候
補要素に関する情報を保持する候補要素保持部241と
、導入される候補要素の中から最後の文字が拡張文字に
と一致する要素を検出する一致検出部242と、否定論
理和(NOR)回路243と、これらの各部の動作のタ
イミングを制御するタイミング制御回路244とを備え
て構成されている。
上述した候補要素保持部241には、バス206を介し
て、辞書230の索引部231およびリスト部232に
よって出力されたデータが導入されている。また、この
候補要素保持部241は、2つのアドレスレジスタ25
1a  251bと、2つの候補文字レジスタ252a
、252bと、2つの参照番号レジスタ253a、25
3bと、フラグレジスタ254とから構成されている。
バス206を介して導入されるデータのうち、ポインタ
部はアドレスレジスタ251aに、フラグ部はフラグレ
ジスタ254に導入されている。
また、識別情報部の第1候補要素の参照番号と文字とは
、参照番号レジスタ253aと候補文字レジスタ252
aとのそれぞれに導入され、第2候補要素の参照番号と
文字とは、参照番号レジスタ253bと候補文字レジス
タ252bとのそれぞれに導入されるようになっている
上述した各レジスタは、タイミング制御回路244から
導入されるロード信号に応じて、導入されたデータを格
納するように構成されている。
また、アドレスレジスタ251aの出力は、アドレスレ
ジスタ251bとNOR回路243とに導入されるとと
もに、読出アドレスとして、辞書230に入力されるよ
うになっている。
一致検出部242は、上述した拡張文字Kを格納する拡
張文字レジスタ261と、2つの比較回路262a、2
62bとから構成されている。
比較回路262a、262bは、上述した候補要素保持
部241の2つの候補文字レジスタ252a、252b
に格納された候補文字のそれぞれと拡張文字レジスタ2
61に格納された拡張文字にとを比較し、一致したとき
に論理“1′′を出力するように構成されている。
また、一致検出部242には、上述した候補要素保持部
241のフラグレジスタ254に保持されたフラグが導
入されており、一致検出部242は、上述した2つの比
較回路262a、262bによる比較結果とこのフラグ
とに基づいて、該当する部分列を検出したか否かを判定
し、MPU201に通知するように構成されている。
例えば、フラグレジスタ254に論理“0″が設定され
ている場合は、一致検出部242は、比較回路262a
、262bによる比較結果をそのまま出力し、一方、論
理“l”の場合は、比較回路262bによる比較結果を
無効として論理°“0゛にリセットして出力すればよい
また、NOR回路243には、上述したアドレスレジス
タ251aの出力が導入されており、このNOR回路2
43の出力は、MPU201に導入されている。
タイミング制御回路244は、辞書230に対して読出
アドレスで指定された格納領域のデータの出力を指示す
る読出信号を出力するとともに、ロード信号を出力して
、上述した候補要素保持部241の各レジスタにデータ
を格納するタイミングの制御を行うようになっている。
以下、辞書検索回路240による辞書230の検索動作
について説明する。
まず、MPU201は、入力ボート202を介して新た
に入力された1文字を辞書検索回路240の拡張文字レ
ジスタ261に入力するとともに、着目している文字列
に対応する参照番号ωをアドレスレジスタ251aに入
力して、参照番号ωと拡張文字にとで表される部分列の
検索動作の開始を指示する。
例えば、第4図(a)に示した文字列の最初の文字a”
に対応するハツシュアドレスとして、この文字“a”に
与えられた参照番号(例えば「1」)を求め、このハツ
シュアドレスをアドレスレジスタ251aに入力する。
また、次の文字“b”を読み込んで、この文字“b”を
拡張文字にとして拡張文字レジスタ261に入力し、辞
書検索回路240のタイミング制御回路244に検索動
作の開始を指示すればよい。
上述した検索開始指示に応じて、タイミング制御回路2
44は、辞書230に読出信号を導入する。これにより
、上述したアドレスレジスタ25laに格納された参照
番号を読出アドレスとして、辞書230からの読出動作
が起動され、索引部231の該当する格納領域のデータ
が、バス206を介して辞書検索回路240に導入され
る。
タイミング制御回路244は、上述した読出信号を出力
してから辞書230からのデータの読出動作に要する時
間(読出サイクル時間)τだけ経過した後に、候補要素
保持部241の各レジスタにロード信号を導入する。
これにより、アドレスレジスタ251aには、索引部2
31の該当する格納領域のポインタ部から読み出された
ポインタが格納され、このポインタが、次の読出アドレ
スとなる。また、このとき、直前の読出動作に用いられ
たポインタが、アドレスレジスタ251bに保持される
以後、タイミング制御回路244は、MPU201から
の指示がない限り、読出信号を出力し、その後上述した
読出サイクル時間τの経過後にロード信号を出力する動
作を繰り返す。
このようにして、上述した読出サイクル時間τごとに、
辞書230からの候補要素の読出動作が行われ、最初は
索引部231から、次はリスト部232から、順次に候
補要素が読み出される。
ここで、上述した一致検出部242は、候補要素保持部
241とは独立に動作する。従って、上述した読出動作
と並行して、一致検出部242の比較回路262a、2
62bにより、その前に読み出されて候補文字レジスタ
252a、252bに格納された2つの文字のそれぞれ
と、拡張文字にとの比較が行われている。
上述したように、一致検出部242は、フラグレジスタ
254に格納されたフラグに応して、比較回路262a
、262bのそれぞれの出力を一致検出結果として出力
する。従って、MPU201は、上述した比較回路26
2a、262bのいずれかによる一致検出結果として、
論理“1パが導入されたときに、以下に述べる割り込み
処理を行えばよい。
例えば、比較回路262bによる一致検出結果として論
理“1”が入力された場合は、MPU201は、符号化
しようとしている文字列と参照番号レジスタ253bに
格納された参照番号で示される第2候補要素とが一致し
たと判断する。この場合は、MPU201は、参照番号
レジスタ253bから該当する参照番号を読み出してア
ドレスレジスタ251aに入力するとともに、入力文字
列の次の1文字を読み込んで、新しい拡張文字にとして
拡張文字レジスタ261に入力する。
その後、MPU201は、辞書検索回路240に検索動
作の開始を指示すればよい。
ここで、例えば、拡張文字Kが初期値rQJと同じビッ
トパターンで表される場合は、該当する要素が辞書23
0に登録されていない場合であっても、比較回路262
a、262bの少なくとも一方により、一致したことを
示す論理“l”が出力される可能性がある。しかし、上
述したように、フラグにより、第1候補要素のみが格納
されていることが示されている場合は、第2候補要素に
ついての一致検出結果は無効とされ、比較回路262b
の出力は論理“0”にリセットされてから出力されるの
で、この場合に、誤って定義されていない要素を検索す
ることはない。また、第1候補要素も定義されていない
場合は、2つの比較回路262a、262bの出力がと
もに論理II I I+となる。この場合は、MPU2
01側で、例えば、上述した割り込み処理の最初で、一
致検出結果が両方とも論理“l”であるか否かを判定し
、肯定判定の場合は該当する部分列が検出されたのでは
ないと判断して排除すればよい。
また、一致検出部242と同様に、NOR回路243も
独立して動作している。従って、上述した読出動作と並
行して、このNOR回路243により、アドレスレジス
タ251aに初期値rOJ以外の有効なポインタが格納
されているか否かにより、連結しているリストがあるか
否かが判定される。
従って、このNOR回路243によって論理“1”が出
力され、連結しているリストがないとされたときに、M
PU201は、辞書検索回路240に対して検索動作の
中止を指示し、以下に述べる割り込み処理を行えばよい
まず、MPU201は、最後に検索された部分列に対応
する参照番号ωを符号として出力する。
次に、MPU201は、アドレスレジスタ251bとフ
ラグレジスタ254とに格納されたデータを読み出し、
フラグレジスタ254に格納されたフラグに応じて、新
しい部分列の登録処理を行えばよい。
例えば、MPU201は、上述したフラグが論理゛0”
である場合は、アドレスレジスタ251bに格納されて
いるアドレスで示される辞書230の格納領域には、候
補要素が1つも格納されていないと判断する。この場合
に、MPU201は、上述した参照番号ωに拡張文字K
を付加して得られる部分列に新しい参照番号ω7を与え
、上述したアドレスで示される辞書230の格納領域の
識別情報部に、この参照番号ω7と拡張文字にとを第1
候補要素の識別情報として格納すればよい。
一方、フラグが論理“1”である場合は、MPU201
は、上述したアドレスで示される辞書230の格納領域
には、第1候補要素のみが格納されていると判断する。
この場合は、該当する格納領域の識別情報部に、上述し
た参照番号ω7と拡張文字にとを第2候補要素として格
納すればよい。
また、該当する格納領域のポインタ部に、リスト部23
2の未使用領域のアドレスをポインタとして格納する。
その後、上述した拡張文字Kを着目している文字列の先
頭部分とし、入力文字列の次の1文字を新しい拡張文字
にとして、符号化動作を続行すればよい。
上述したように、辞書230の索引部231とリスト部
232との各格納領域に、連結しているリストを示すポ
インタと2つの候補要素の識別情報とを格納する。また
、辞書検索回路240の一致検出部242において、2
つの比較回路262a、262bにより、辞書230か
ら読み出された2つの候補要素について、着目している
文字列との一致検出を行う。
これにより、1回の読出動作により、辞書230から2
つの候補要素を同時に読み出して、これらの候補要素と
着目している文字列との一致検出処理を行うことが可能
となる。
更に、タイミング制御回路244により、読出サイクル
時間τごとに読出信号を辞書230に供給し、また、読
み出したポインタを次の読み出しアドレスとして辞書2
30に供給して、連結されたリストを順次に手繰るよう
にする。また、一致検出部242とNOR回路243と
をそれぞれに独立に動作させ、辞書230からの読出動
作に並行して、一致検出動作と連結判定動作とを行うよ
うにする。
これにより、MPU201を介することなく連結された
リストの探索を行うことができ、また、読出処理と一致
検出処理および連結判定処理とをパイプライン化して処
理することが可能となる。
この場合は、2つの候補要素の読出動作および一致検出
動作を上述した読出サイクル時間τで行うことができ、
従来のように、全ての処理をMPUを介して行う場合に
比べて、リストの探索処理に要する時間を大幅に短縮す
ることができる。
このようにして、第2図に示したような簡単な回路を用
いて、辞書230からの文字列の検索処理を高速化する
ことが可能となる。これにより、辞書の検索処理に要す
る時間を短縮して、符号化処理の高速化を図り、符号化
速度を磁気ディスク装置への転送速度と同程度とするこ
とができ、符号化したデータを磁気ディスク装置などに
実時間で転送することができる。
また、第2図に示したように、辞書検索回路240は、
簡単な回路で構成されており、データ圧縮装置のハード
ウェア量を増大させることはない。
また、MPU201は、一致検出部242およびNOR
回路243の出力に応じて、上述した割り込み処理を行
えばよく、特に高速に動作する必要はない。
なお、上述した実施例においては、データ圧縮装置に適
用した場合について説明したが、これに限らず、樹状の
構成を有する辞書を外部ハツシュ法を用いて検索する場
合であれば適用できる。
また、辞書230の索引部231およびリスト部232
の各格納領域に格納する候補要素の数に限定はなく、3
つ以上の候補要素を格納してもよい。この場合は、参照
番号部と文字部とをそれぞれ候補要素の数分設けて識別
情報部を構成し、候補要素の数を2進数で表したものを
フラグとすればよい。
〔発明の効果〕
上述したように、請求項1の発明によれば、少なくとも
1つの候補文字列を同時に読み出し、これらの候補文字
列についての一致検出動作を同時に行うとともに、読出
手段と検出手段と判定手段とをそれぞれ独立に動作させ
ることにより、辞書の検索処理を高速化することが可能
となり、符号化処理の高速化を図ることができる。
請求項2の発明によれば、少なくとも1つの候補文字列
を同時に読み出し、これらの候補文字列についての一致
検出動作を同時に行うとともに、読出動作と検出動作お
よび判定動作とをパイプライン化して処理するので、辞
書からの文字列の検索処理を更に高速化することができ
る。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、 第2図は本発明の一実施例によるデータ圧縮装置の構成
図、 第3図は実施例による辞書に格納されたデータの構成を
示す図、 第4図はLZW符号化方式の説明図、 第5図は辞書の構成を示す図、 第6図は外部ハツシュ法の説明図、 第7図は従来の符号化動作を表す流れ図である。 図において、 10は辞書、 11は索引、 12はリスト、 21は読出手段、 22は比較手段、 123は検出手段、 124は判定手段、 201はマイクロプロセッサ、 202は入力ボート、 205は出力ボート、 206はバス、 230は辞書、 231は索引部、 232はリスト部、 240は辞書検索回路、 241は候補要素保持部、 242は一致検出部、 243は否定論理# (NOR)回路、244はタイミ
ング制御回路、 251はアドレスレジスタ、 252は候補文字レジスタ、 253は参照番号レジスタ、 254はフラグレジスタ、 261は拡張文字レジスタ、 262は比較回路である。 、121 本発明の原理ブロック図 第1図 実施例による辞書の構成を示す図 第 図 (a)しζニノノコに7字くシリ babcbababaaa (b聴力符号 (C澄録符号 ababcbab 46     B       1丁 ba    cb    baba ■  −丁−−一璽「−一 W符号化方式の説明図 第 図 外@B〕飄 シ ュ法の説明図 第 図 辞書の構成を示す図 第 図 従来の符号化動作を表す流れ図 第 図

Claims (2)

    【特許請求の範囲】
  1. (1)それぞれに与えられた参照番号に対応して辞書(
    110)に登録された相異なる文字列の中から、入力さ
    れた参照番号と文字とで表される文字列を検索する辞書
    検索方式において、 前記辞書(110)は、 前記参照番号に対応し、当該参照番号が与えられた文字
    列に1文字を付加して得られる候補文字列の少なくとも
    1つに対応する識別情報と他の候補文字列の格納場所を
    示すポインタとを格納する索引(111)と、 最後の1文字が異なる少なくとも1つの候補文字列に対
    応する識別情報と他の候補文字列の格納場所を示すポイ
    ンタとを格納する複数のリスト(112)とを有し、 前記辞書(110)に対して、最初は、入力された参照
    番号に基づいて前記索引(111)に格納されたポイン
    タと識別情報との出力を指示し、以後は、前記辞書(1
    10)によって出力されたポインタで示されるリスト(
    112)を指定して格納されたポインタと識別情報との
    出力を指示する読出手段(121)と、 前記辞書(110)から読み出される少なくとも1つの
    識別情報のそれぞれと入力文字とを比較する複数の比較
    手段(122)を有し、前記辞書(110)から読み出
    される候補文字列の中から該当する文字列を検出し、こ
    の検出結果を検索結果として出力する検出手段(123
    )と、 前記辞書(110)から読み出されたポインタに基づい
    て、読出済でない候補文字列があるか否かを判定し、こ
    の判定結果を検索結果として出力する判定手段(124
    )と、 を備え、前記読出手段(121)と前記検出手段(12
    3)と前記判定手段(124)とがそれぞれ独立に動作
    するように構成することを特徴とする辞書検索方式。
  2. (2)前記読出手段(121)が、所定の時間間隔で辞
    書(110)に対する読出動作を起動し、前記検出手段
    (123)による検出動作と前記判定手段(124)に
    よる判定動作とを前記読出手段(121)による読出動
    作と並行して行うように構成したことを特徴とする請求
    項1記載の辞書検索方式。
JP2211295A 1990-08-06 1990-08-08 辞書検索方式 Expired - Lifetime JP2772125B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2211295A JP2772125B2 (ja) 1990-08-08 1990-08-08 辞書検索方式
DE69128053T DE69128053T2 (de) 1990-08-06 1991-08-05 Wörterbuch-Suchsystem
EP91307188A EP0470798B1 (en) 1990-08-06 1991-08-05 Dictionary searching system
US07/740,912 US5136289A (en) 1990-08-06 1991-08-06 Dictionary searching system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2211295A JP2772125B2 (ja) 1990-08-08 1990-08-08 辞書検索方式

Publications (2)

Publication Number Publication Date
JPH0496174A true JPH0496174A (ja) 1992-03-27
JP2772125B2 JP2772125B2 (ja) 1998-07-02

Family

ID=16603573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2211295A Expired - Lifetime JP2772125B2 (ja) 1990-08-06 1990-08-08 辞書検索方式

Country Status (1)

Country Link
JP (1) JP2772125B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109643322A (zh) * 2016-09-02 2019-04-16 株式会社日立高新技术 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109643322A (zh) * 2016-09-02 2019-04-16 株式会社日立高新技术 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统
CN109643322B (zh) * 2016-09-02 2022-11-29 株式会社日立高新技术 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统

Also Published As

Publication number Publication date
JP2772125B2 (ja) 1998-07-02

Similar Documents

Publication Publication Date Title
JP6596102B2 (ja) コンテンツ連想シーブに存在している基本データエレメントからデータを導出することによるデータの無損失削減
JP3672242B2 (ja) パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体
JP2790466B2 (ja) 文字列検索方法及び装置
JP3889762B2 (ja) データ圧縮方法、プログラム及び装置
US5136289A (en) Dictionary searching system
JP6726690B2 (ja) 基本データシーブを用いて無損失削減されたデータに対する多次元検索、コンテンツ連想的な取出し、ならびにキーワードベースの検索および取出しの実行
EP3051700A1 (en) Hardware efficient fingerprinting
CN109828789A (zh) 加速压缩方法以及加速压缩装置
JPS61210478A (ja) ベクトル処理装置
JPH0496174A (ja) 辞書検索方式
JP2772124B2 (ja) 辞書検索方式
JP2535655B2 (ja) 辞書検索方式
JP2880199B2 (ja) 記号列検索方法および検索装置
JP3130324B2 (ja) データ圧縮方式
JP3555506B2 (ja) 文字列データ圧縮符号化装置及び文字列データ復元装置及び文字列データ演算処理装置
JP3038233B2 (ja) データ圧縮及び復元装置
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JPH09232967A (ja) データ圧縮装置及び復元装置
JP2952067B2 (ja) データ圧縮方式
JP3236747B2 (ja) データ伸長方式
JPH04167821A (ja) データ符号化及び復号化方法
JPS62169273A (ja) 言語処理プログラムにおけるラベル情報の登録・参照方式
JP3058711B2 (ja) データ圧縮及び復元方法
JPH03270416A (ja) データ圧縮および復元方式
JPS63314974A (ja) 復号化装置