JP2772125B2 - 辞書検索方式 - Google Patents

辞書検索方式

Info

Publication number
JP2772125B2
JP2772125B2 JP2211295A JP21129590A JP2772125B2 JP 2772125 B2 JP2772125 B2 JP 2772125B2 JP 2211295 A JP2211295 A JP 2211295A JP 21129590 A JP21129590 A JP 21129590A JP 2772125 B2 JP2772125 B2 JP 2772125B2
Authority
JP
Japan
Prior art keywords
dictionary
character
character string
read
identification information
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.)
Expired - Lifetime
Application number
JP2211295A
Other languages
English (en)
Other versions
JPH0496174A (ja
Inventor
茂 吉田
泰彦 中野
佳之 岡田
広隆 千葉
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 EP91307188A priority patent/EP0470798B1/en
Priority to DE69128053T priority patent/DE69128053T2/de
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

Description

【発明の詳細な説明】 〔目 次〕 概 要 産業上の利用分野 従来の技術 発明が解決しようとする課題 課題を解決するための手段 作 用 実施例 発明の効果 〔概 要〕 例えば増分分離型のZiv−Lempel符号化の際などに用
いられる辞書検索方式に関し、 高速に辞書を検索することを目的とし、 入力された参照番号と文字とで表される文字列を検索
する辞書検索方式において、辞書は、参照番号に対応
し、この参照番号の文字列に1文字を付加した候補文字
列の少なくとも1つに対応する識別情報と他の候補文字
列の格納場所を示すポインタとを格納する索引と、最後
の1文字が異なる少なくとも1つの候補文字列に対応す
る識別情報と他の候補文字列の格納場所を示すポインタ
とを格納する複数のリストとを有し、辞書に対して、最
初は、入力された参照番号に基づいて索引を指定し、以
後は、辞書によって出力されたポインタで示されるリス
トを指定して、格納内容の出力を指示する読出手段と、
辞書から読み出される識別情報のそれぞれと入力文字と
を比較する複数の比較手段を有し、辞書から読み出され
る候補文字列の中から該当する文字列を検出する検出手
段と、辞書から読み出されたポインタに基づいて、読出
済でない候補文字列があるか否かを判定する判定手段と
を備え、読出手段と検出手段と判定手段とがそれぞれ独
立に動作するように構成する。
〔産業上の利用分野〕
本発明は、ユニバーサル符号の一種である増分分解型
のZiv−Lempel符号化の際などに用いられる辞書検索方
式に関する。
近年、文字コード,ベクトル情報,画像情報など様々
な種類のデータがコンピュータによって扱われるように
なっており、また、扱われるデータ量も急速に増大して
いる。
このような膨大なデータを蓄積したり伝送したりする
際には、データの中に含まれている冗長な部分を省いて
データ量を圧縮することが望ましい。このため、データ
の種類にかかわらず、効率よくデータを圧縮する方法が
望まれている。
ユニバーサル符号化方式は、予め符号表を定めておく
必要がないため、上述した様々なデータの圧縮に適用す
ることができるという特徴を有している。
ここで、本明細書においては、データの1語単位を
『文字』と称し、連続した複数語のデータを『文字列』
と称する。
ジブ−レンペル(Ziv−Lempel)符号は、上述したユ
ニバーサル符号の代表的な方法であり(宗像著「Ziv−L
empelのデータ圧縮法」,情報処理,Vol.20,No.1,1985参
照)、ユニバーサル型のアルゴリズムと増分分解型のア
ルゴリズムとが提案されている。更に、ユニバーサル型
アルゴリズムの改良として、LZSS符号(T.C.Bell,“Bet
ter OPM/L Text Compression",IEEE Trans.on Commun.,
Vol.COM−34,No.12,Dec.1986参照)があり、増分分解型
アルゴリズムの改良として、LZW符号(T.A.Welch,“A T
echnique for High−Performance Data Compression",C
omputer,June 1984)がある。
これらの符号化方式のうち、高速処理が可能であるこ
ととアルゴリズムが簡単であることから、LZW符号が記
憶装置のファイル圧縮などで使われるようになってい
る。
〔従来の技術〕
増分分解型アルゴリズムは、入力された文字列を、既
に辞書に登録された部分列に1文字を増分として付加し
て形成される成分の系列に分解し、この成分の系列を登
録された部分列に対応する参照番号と増分とで表すこと
により、入力文字列を符号化するものである。また、上
述した成分は、新しい部分列として辞書に登録され、以
降の符号化処理に用いられるようになっている。
更に、LZW符号においては、上述した増分を次の部分
列に組み込むようになっている。
以下、簡単のために、入力文字列として、“a",“b",
“c"の3文字からなる文字列“ababcbababaaaaa・・
・”(第4図(a)参照)が入力された場合について、
このLZW符号化方式について説明する。
この場合は、上述した3文字“a",“b",“c"に参照番
号『1』,『2』,『3』を与えて辞書に登録して、符
号化処理を開始する。
まず、入力文字列の先頭の文字(例えば文字“a")を
読み込み、辞書からこの文字を検索し、この文字に対応
する参照番号(例えば『1』)を着目している文字列に
対応する符号ωとする。
その後、入力文字列の2番目以降の各文字を順次に読
み込んで、この文字を上述した増分に相当する拡張文字
Kとし、上述した符号ωとこの拡張文字Kとの組合せ
(ωK)で表される部分列(ωK)(以下、組合せ(ω
K)を部分列の表現と称する)を辞書から検索する。該
当する部分列(ωK)が検索された場合は、上述した部
分列(ωK)に対応する参照番号を新しい符号ωとし
て、更に、入力文字列の次の文字を読み込んで、上述し
た処理を繰り返す。
このようにして、符号化しようとする文字列を順次に
1文字ずつ延ばしていき、辞書からこの文字列を順次に
検査することにより、辞書に登録された部分列の中か
ら、入力文字列の注目している部分と最も長く一致する
部分列が検索され、この部分列に対応する参照番号が、
該当する符号ωとして出力される。また、このとき、参
照番号ωに対応する部分列(ω)に拡張文字Kを継ぎ足
した部分列が、参照番号ωと拡張文字Kとの組合せ(ω
K)で表され、参照番号が与えられ、新しい部分列とし
て辞書に登録される。
このようにして、第4図(a)に示した文字列は、図
において下線に付して示した部分列に分解され、第4図
(b)に示すように、各部分列に対応する符号『1』,
『2』,『4』,…が出力される。また、第4図(c)
に入力文字列と辞書に登録された部分列との対応関係
を、第1表に作成された辞書の例を示す。
また、上述したLZW符号化処理の際に作成された辞書
は、第5図に示すように、、樹状の構成を持っており、
辞書の要素のそれぞれは、辞書の樹の各節点に対応して
いる。第5図において、各節点に括弧を付して示した数
字は、対応する辞書の要素の参照番号を示している。
ここで、上述した符号化処理における部分列の検索の
際に、辞書に登録された要素を順次に検索するのでは、
処理に要する時間が長くなるので、辞書の検索処理にハ
ッシュ法を適用して高速化を図っている。
ハッシュ法は、文字列からなる集合Sの要素xからこ
の要素xの格納場所のアドレスを求める関数(ハッシュ
関数)を定義し、このハッシュ関数によって求められた
アドレスに要素xを格納するようにしたものである。ま
た、上述したハッシュ関数によって求められるアドレス
をハッシュアドレスと称する。
例えば、上述した参照番号ωと拡張文字Kとを2進数
で表し、これを組合せ(ωK)のハッシュアドレスとす
ればよい。しかしながら、この場合は、辞書に膨大な容
量を割り当てる必要がある。
このため、ハッシュアドレスごとに、同じハッシュア
ドレスを有する要素を格納するリストを設けるようにし
た外部ハッシュ法が用いられている。この外部ハッシュ
法においては、第6図に示すように、索引部をハッシュ
アドレスで検索することにより、該当するリストが示さ
れるようになっている。また、各リストには、各要素に
対応する識別情報と次の要素の格納場所を示すポインタ
とが格納されており、順次に探索できるようになってい
る。
例えば、上述した参照番号ωをハッシュアドレスと
し、このハッシュアドレスに、参照番号ωに対応する部
分列に1文字を付加した部分列を格納するリストの先頭
アドレスを格納し、該当するリストに、上述した参照番
号ωに対応する節点の『子』に相当する節点に対応する
部分列を順次に格納すればよい。この場合は、各要素の
拡大文字Kを対応する識別情報としてリストに格納すれ
ばよい。
第7図に、辞書の検索に外部ハッシュ法を用いた場合
の符号化動作を表す流れ図を示す。
上述したように、入力文字列の少なくとも最初の文字
を含むように辞書を初期化し、変数nに次に登録される
部分列に与えられる参照番号をセットする。例えば、文
字“a",“b",“c"に与えた参照番号『1』,『2』,
『3』をハッシュアドレスとして辞書に格納し、変数n
に数値『4』をセットすればよい。ここで、辞書に登録
できる部分列の最大数をNmaxとし、それぞれNmax個の成
分からなる配列First,配列Next,配列Extを定義し、これ
らの配列の全ての成分に初期値『0』を設定する。この
配列Firstは、第6図に示した索引部に相当し、配列Nex
tおよび配列Extはリストに相当している。従って、配列
Firstのi番目の成分First[i]には、参照番号iの節
点に対応するリストの先頭となる配列Nextの成分を示す
番号が設定される。また、配列Extのi番目の成分Ext
[i]には、参照番号iで示される辞書の要素の拡張文
字Kが設定される。また、配列Nextのi番目の成分Next
[i]には、参照番号iの要素の『兄弟』に相当する要
素を示すポインタが設定される。
次に、最初の文字Kを読み込んで、この文字Kに対応
する参照番号を変数iに設定して、符号化処理を開始す
る。
まず、拡張文字Kとして、入力文字列の次の文字を読
み込んで(ステップ701)、その次に読み込むべき文字
があれば、ステップ702における肯定判定となり、辞書
の検索処理を開始する。
この場合は、変数iを別の変数ωに退避し、変数jに
初期値『0』を設定してから(ステップ703)、変数i
に対応する成分First[i]の値で示される配列Nextの
成分の番号を、変数iに設定する(ステップ704)。
ステップ705において、変数iが数値『0』でないと
判定された場合(否定判定)は、該当するリストに格納
された要素を候補要素として、このリストにおける探索
処理を開始する。
この場合は、該当する要素の拡張文字を示す成分Ext
[i]と拡張文字Kとを比較し(ステップ706)、この
ステップ706における否定判定の場合は、ステップ707に
おいて、成分Next[i]に設定された次の要素のポイン
タを新しい変数iとして、ステップ705に戻る。このよ
うにして、ステップ705〜ステップ707を繰り返して、該
当するリストを探索する。
ステップ706において、成分Ext[i]=Kとなった場
合(肯定判定)は、入力された文字列と一致する部分列
が辞書に登録されていると判断し、ステップ701に戻っ
て次の文字を読み込み、この文字を付加した文字列の符
号化を行う。
一方、変数iに対応する成分First[i]あるいは成
分Next[i]の値が『0』であった場合は、ステップ70
5における肯定判定となる。
ここで、成分First[i]の値が『0』である場合
は、変数iの節点の『子』に相当する要素がまだ登録さ
れていないため、該当するリストが定義されていないこ
とを示している。一方、成分Next[i]の値が『0』で
ある場合は、該当するリストの中に求める部分列が格納
されていないことを示している。
いずれの場合においても、ステップ703において変数
ωに退避された参照番号が、入力された文字列に最も長
く一致する登録された部分列を示しており、この参照番
号ωに対応する符号を出力して(ステップ708)、新し
い部分列の登録処理を行う。
まず、変数nの値を変数iに設定するとともに、変数
nをインクリメントし、また、変数iに対応する成分Ex
t[i]に拡張文字Kを設定する(ステップ709)。
次に、変数jの値が『0』であるか否かを判定し(ス
テップ710)、肯定判定の場合は、成分First[ω]に変
数iを設定して(ステップ711)、参照番号ωに対応す
るリストを定義する。一方、ステップ710における否定
判定の場合は、成分Next[j]に変数iを設定して(ス
テップ712)、該当するリストに新しい『兄弟』を付け
加える。
このようにして、登録処理が終了した後に、拡張文字
Kに対応する参照番号を変数iとして(ステップ71
3)、ステップ701に戻って上述した処理を繰り返し、読
み込むべき文字がなくなったときに、ステップ702にお
ける否定判定となり、そのときの変数ωに対応する符号
を出力して(ステップ714)処理を終了する。
〔発明が解決しようとする課題〕
ところで、上述した従来方式にあっては、リストの検
索処理において、該当するリストがあるか否かおよび次
の要素がリストにあるか否かを判定する連結判定処理、
入力された拡張文字と一致する候補文字を検出する一致
検出処理、次のポインタを設定して辞書から読み出す読
出処理、の3つの処理が順次に行われている。このよう
に、ソフトウェアで順次にリストを手操る処理を行う
と、部分列の検索処理に時間がかかるため、符号化処理
速度は数10KB/s程度となる。このため、磁気テープ装置
や磁気ディスク装置などへの転送速度(数100KB/s〜数M
B/s)と合わせて実時間で符号化処理を行うことができ
ないという問題点があった。
一方、上述した符号化処理の各ステップをそれぞれ独
立な素子を用いてデータ圧縮装置を構成すれば、符号化
処理の高速化を図ることが可能であるが、回路規模が大
きくなり、コストが高くなるという欠点がある。
ここで、上述した従来例においては、簡単のために3
文字からなる文字列を符号化する場合について説明した
が、実際の文字列は多くの文字から構成されている。従
って、通常、辞書の検索処理においては、ある参照番号
に対応するリストを手操って、『兄弟』に相当する候補
要素を順次に読み出して、一致する要素を検出する処理
および連結する要素の有無を検出する処理に最も長い時
間を要している。
本発明は、このような点にかんがみて創作されたもの
であり、高速に辞書の検索を行うようにした辞書検索方
式を提供することを目的とする。
〔課題を解決するための手段〕
第1図は、本発明の原理ブロック図である。
(i)請求項1の発明 図において、それぞれに与えられた参照番号に対応し
て辞書110に登録された相異なる文字列の中から、入力
された参照番号と文字とで表される文字列を検索する辞
書検索方式における辞書110は、参照番号に対応して、
該当参照番号が与えられた文字列に1文字を付加して得
られる候補文字列の少なくとも1つに対応する識別情報
と他の候補文字列の格納場所を示すポインタとを格納す
る索引111と、最後の1文字が異なる少なくとも1つの
候補文字列に対応する識別情報と他の候補文字列の格納
場所を示すポインタとを格納する複数のリスト112とを
有している。
読出手段121は、辞書110に対して、最初は、入力され
た参照番号に基づいて索引111に格納されたポインタと
識別情報との出力を指示し、以後は、辞書110によって
出力されたポインタで示されるリスト112を指定して格
納されたポインタと識別情報との出力を指示する。
検出手段123は、辞書110から読み出される少なくとも
1つの識別情報のそれぞれと入力文字とを比較する複数
の比較手段122を有し、辞書110から読み出される候補文
字列の中から該当する文字列を検出し、この検出結果を
検索結果として出力する。
判定手段124は、辞書110から読み出されたポインタに
基づいて、読出済でない候補文字列であるか否かを判定
し、この判定結果を検索結果として出力する。
全体として、読出手段121と検出手段123と判定手段12
4とがそれぞれ独立に動作するように構成されている。
(ii)請求項2の発明 請求項2の発明における読出手段121は、一定の時間
間隔で辞書110に対する読出動作を起動し、請求項1の
発明による辞書検索方式において、検出手段123による
検出動作と判定手段124による判定動作とを読出手段121
による読出動作と並行して行うように構成されている。
〔作 用〕
(i)請求項1の発明 辞書110の索引111には、参照番号に対応して、この参
照番号に対応する文字列に1文字を付加して得られる候
補文字列の少なくとも1つに対応する識別情報と他の候
補文字列の格納場所を示すポインタとが格納されてい
る。また、複数のリスト112のそれぞれには、最後の1
文字が相異なる少なくとも1つの候補文字列のそれぞれ
に対応する識別情報と他の候補文字列の格納場所を示す
ポインタとが格納されている。
上述した索引111は、外部ハッシュ法の索引部に相当
しており、複数のリスト112のそれぞれは、外部ハッシ
ュ法のリストに相当している。また、上述したように、
索引111および複数のリストのそれぞれに格納されてい
るポインタにより、これらの連結関係が示されている。
また、識別情報としては、候補文字列に与えられた参照
番号と最後の1文字とを格納すればよい。
最初は、読出手段121により、辞書110に対して、入力
された参照番号に基づいて索引111に格納されている少
なくとも1つの候補文字列に対応する識別情報とポイン
タとの出力が指示され、以後は、この読出手段121によ
り、辞書110によって出力されたポインタによって示さ
れるリスト112に格納されたポインタと識別情報との出
力が指示される。このようにして、索引111に続いて、
上述したポインタによって連結されたリスト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に対する読出動作を行い、また、検出
手段122により検出動作と判定手段124による判定動作と
が、読出手段121による読出動作と並行して行われる。
例えば、上述した読出手段121は、辞書110からの読出
動作に要する時間ごとに読出動作を行うようにすればよ
い。通常は、読出動作に要する時間に比べて、検出手段
123による検出動作および判定手段124による判定動作は
短い時間で終了すると考えられ、読出動作と検出動作お
よび判定動作とを並行して行うことにより、検索処理を
パイプライン化して処理することができる。
従って、請求項2の発明にあっては、少なくとも1つ
の候補文字列を同時に読み出し、これらの候補文字列に
ついての一致検出動作を同時に行うとともに、読出動作
と一致検出動作および判定動作とをパイプライン化して
処理することにより、辞書110からの文字列の検索処理
を高速化することが可能となる。
〔実施例〕
以下、図面に基づいて本発明の実施例について詳細に
説明する。
第2図は、本発明の一実施例による辞書検索方式を適
用したデータ圧縮装置の構成を示す。
ここで、第1図と実施例との対応関係について説明し
ておく。
辞書110は、辞書230に相当する。
索引111は、索引部231に相当する。
リスト112は、リスト部232に相当する。
読出手段121は、候補要素保持部241とタイミング制御
回路244とに相当する。
比較手段122は、比較回路262a,262bに相当する。
検出手段123は、拡張文字レジスタ261と比較回路262
a,262bとに相当する。
判定手段124は、否定論理和(NOR)回路243に相当す
る。
以上のような対応関係があるものとして、以下実施例
の構成および動作を説明する。
第2図において、201はマイクロプロセッサ(MPU)
を、202は入力ポートを、230は辞書を、240は辞書検索
回路を、205は出力ポートをそれぞれ示している。ま
た、上述したMPU201と、入力ポート202と辞書230と辞書
検索回路240と出力ポート205とは、バス206を介して相
互に接続されている。
また、入力ポート202を介して入力された文字列は、M
PU201によりLZW符号化され、出力ポート205を介して、
磁気ディスク装置(図示せず)などに転送されて蓄積さ
れるようになっている。
辞書230には、それまでに入力された文字列に含まれ
る相異なる部分列のそれぞれが、出現順に与えられた参
照番号に対応して登録されており、入力された文字列の
着目している部分に最も長く一致する部分列を辞書230
から検索し、この部分列に対応する参照番号によって符
号化するようになっている。
MPU201は、LZW符号化処理の際に、辞書検索回路240
に、入力文字列の着目している部分に関する識別情報を
導入し、この識別情報に基づいて、辞書検索回路240
は、該当する部分列を辞書230から検索するようになっ
ている。ここで、LZW符号化方式においては、部分列は
参照番号ωと拡張文字Kとで表される。従って、着目し
ている部分をそれまでに検索された部分列に対応する参
照番号ωと、この部分列に拡張文字として付加される最
後の1文字Kとで表し、この参照番号ωと拡張文字Kと
を識別情報として導入すればよい。
また、辞書検索回路240は、辞書230に登録されている
部分列のうち、上述した参照番号ωに対応する部分列に
それぞれ異なる文字を付加して登録された部分列を候補
要素として順次に読み出し、これらの候補要素の中から
該当する部分列を検索するようになってい。
ここで、上述した辞書230は、外部ハッシュ法の索引
に相当する索引部231と、外部ハッシュ法のリストの集
まりに相当するリスト部232とから構成されている。
第3図に、辞書230から上述した候補要素を2つずつ
読み出すようにした場合の索引部231とリスト部232との
構成を示す。
索引部231は、第3図に示すように、参照番号のそれ
ぞれに対応する格納領域から形成されている。また、こ
れらの格納領域のそれぞれは、連結しているリストの辞
書230におけるアドレスを示すポインタを格納するポイ
ンタ部と、2つの候補要素に対応する識別情報を格納す
る識別情報部と、この識別情報部に格納されている識別
情報の数を示すフラグを格納するフラグ部とを備えて構
成されている。また、この索引部231は、参照番号を指
定した読出指示に応じて、該当する格納領域の各部のデ
ータを同時にバス206に出力するようになっている。
ここで、参照番号ωに対応する格納領域の識別情報部
には、候補要素の識別情報として、該当する参照番号ω
1と、各候補要素の最後の1文字K1,K2とを格納す
ればよい。例えば、第3図に示したように、識別情報格
納部を2つの参照番号部(図において、,で示す)
と2つの文字部(図において、,で示す)とで構成
し、2つの参照番号部に上述した参照番号ω1を、
2つの文字部に上述した文字K1,K2をそれぞれ格納すれ
ばよい。以下、上述した2つの候補要素の一方を第1候
補要素と称し、他方を第2候補要素と称する。
また、上述した識別情報部に第1候補要素に対応する
識別情報のみが格納されている場合に、フラグを論理
“1"とし、その他の場合はフラグを論理“0"とすればよ
い。
また、リスト部232は、複数のリストから構成されて
おり、各リストは、上述した索引部231の各格納領域と
同様に、ポインタ部と識別情報部とフラグ部とから構成
されている。また、リスト部232は、読出指示に応じ
て、指定されたリストの各部のデータを同時に、バス20
6に出力するようになっている。
このリスト部232の各リストのポインタ部には、該当
するリストに連結されている他のリストの辞書230にお
けるアドレスを示すポインタが格納されている。また、
識別情報部は2つの参照番号部と2つの文字部とから構
成されており、これらの各部には、上述した索引部231
の識別情報部と同様に、2つの候補要素に対応する参照
番号と最後の1文字とが格納されるようになっている。
例えば、上述した索引部231の参照番号ωに対応する格
納領域に連結されたリストには、第3図に示すように、
第1候補要素の識別情報として参照番号ωと文字K3
が、第2候補要素の識別情報として参照番号ωと文字
K4とが格納されている。
また、上述した索引部231およびリスト部232の各領域
の内容には、符号化処理を開始する際に、初期値『0』
が設定されるようになっている。
辞書検索回路240は、辞書230から読み出された候補要
素に関する情報を保持する候補要素保持部241と、導入
される候補要素の中から最後の文字が拡張文字Kと一致
する要素を検出する一致検出部242と、否定論理和(NO
R)回路243と、これらの各部の動作のタイミングを制御
するタイミング制御回路244とを備えて構成されてい
る。
上述した候補要素保持部241には、バス206を介して、
辞書230の索引部231およびリスト部232によって出力さ
れたデータが導入されている。また、この候補要素保持
部241は、2つのアドレスレジスタ251a,251bと、2つの
候補文字レジスタ252a,252bと、2つの参照番号レジス
タ253a,253bと、フラグレジスタ254とから構成されてい
る。
バス206を介して導入されるデータのうち、ポインタ
部はアドレスレジスタ251aに、フラグ部はフラグレジス
タ254に導入されている。また、識別情報部の第1候補
要素の参照番号と文字とは、参照番号レジスタ253aと候
補文字レジスタ252aとのそれぞれに導入され、第2候補
要素の参照番号と文字とは、参照番号レジスタ253bと候
補文字レジスタ252bとのそれぞれに導入されるようにな
っている。
上述した各レジスタは、タイミング制御回路244から
導入されるロード信号に応じて、導入されたデータを格
納するように構成されている。
また、アドレスレジスタ251aの出力は、アドレスレジ
スタ251bとNOR回路243とに導入されるとともに、読出ア
ドレスとして、辞書230に入力されるようになってい
る。
一致検出部242は、上述した拡張文字Kを格納する拡
張文字レジスタ261と、2つの比較回路262a,262bとから
構成されている。
比較回路262a,262bは、上述した候補要素保持部241の
2つの候補文字レジスタ252a,252bに格納された候補文
字のそれぞれと拡張文字レジスタ261に格納された拡張
文字Kとを比較し、一致したときに論理“1"を出力する
ように構成されている。
また、一致検出部242には、上述した候補要素保持部2
41のフラグレジスタ254に保持されたフラグが導入され
ており、一致検出部242は、上述した2つの比較回路262
a,262bによる比較結果とこのフラグとに基づいて、該当
する部分列を検出したか否かを判定し、MPU201に通知す
るように構成されている。
例えば、フラグレジスタ254に論理“0"が設定されて
いる場合は、一致検出部242は、比較回路262a,262bによ
る比較結果をそのまま出力し、一方、論理“1"の場合
は、比較回路262bによる比較結果を無効として論理“0"
にリセットして出力すればよい。
また、NOR回路243には、上述したアドレスレジスタ25
1aの出力が導入されており、このNOR回路243の出力は、
MPU201に導入されている。
タイミング制御回路244は、辞書230に対して読出アド
レスで指定された格納領域のデータの出力を指示する読
出信号を出力するとともに、ロード信号を出力して、上
述した候補要素保持部241の各レジスタにデータを格納
するタイミングの制御を行うようになっている。
以下、辞書検索回路240による辞書230の検索動作につ
いて説明する。
まず、MPU201は、入力ポート202を介して新たに入力
された1文字を辞書検索回路240の拡張文字レジスタ261
に入力するとともに、着目している文字列に対応する参
照番号ωをアドレスレジスタ251aに入力して、参照番号
ωと拡張文字Kとで表される部分列の検索動作の開始を
指示する。
例えば、第4図(a)に示した文字列の最初の文字
“a"に対応するハッシュアドレスとして、この文字“a"
に与えられた参照番号(例えば『1』)を求め、このハ
ッシュアドレスをアドレスレジスタ251aに入力する。ま
た、次の文字“b"を読み込んで、この文字“b"を拡張文
字Kとして拡張文字レジスタ261に入力し、辞書検索回
路240のタイミング制御回路244に検索動作の開始を指示
すればよい。
上述した検索開始指示に応じて、タイミング制御回路
244は、辞書230に読出信号を導入する。これにより、上
述したアドレスレジスタ251aに格納された参照番号を読
出アドレスとして、辞書230からの読出動作が起動さ
れ、索引部231の該当する格納領域のデータが、バス206
を介して辞書検索回路240に導入される。
タイミング制御回路244は、上述した読出信号を出力
してから辞書230からのデータの読出動作に要する時間
(読出サイクル時間)τだけ経過した後に、候補要素保
持部241の各レジスタにロード信号を導入する。
これにより、アドレスレジスタ251aには、索引部231
に該当する格納領域のポインタ部から読み出されたポイ
ンタが格納され、このポインタが、次の読出アドレスと
なる。また、このとき、直前の読出動作に用いられたポ
インタが、アドレスレジスタ251bに保持される。
以後、タイミング制御回路244は、MPU201からの指示
がない限り、読出信号を出力し、その後上述した読出サ
イクル時間τの経過後にロード信号を出力する動作を繰
り返す。
このようにして、上述した読出サイクル時間τごと
に、辞書230からの候補要素の読出動作が行われ、最初
は索引部231から、次はリスト部232から、順次に候補要
素が読み出される。
ここで、上述した一致検出部242は、候補要素保持部2
41とは独立に動作する。従って、上述した読出動作と平
行して、一致検出部242の比較回路262a,262bにより、そ
の前に読み出されて候補文字レジスタ252a,252bに格納
された2つの文字のそれぞれと、拡張文字Kとの比較が
行われている。
上述したように、一致検出部242は、フラグレジスタ2
54に格納されたフラグに応じて、比較回路262a,262bの
それぞれの出力を一致検出結果として出力する。従っ
て、MPU201は、上述した比較回路262a,262bのいずれか
による一致検出結果として、論理“1"が導入されたとき
に、以下に述べる割り込み処理を行えばよい。
例えば、比較回路262bによる一致検出結果として論理
“1"が入力された場合は、MPU201は、符号化しようとし
ている文字列と参照番号レジスタ253bに格納された参照
番号で示される第2候補要素とが一致したと判断する。
この場合は、MPU201は、参照番号レジスタ253bから該当
する参照番号を読み出してアドレスレジスタ251aに入力
するとともに、入力文字列の次の1文字を読み込んで、
新しい拡張文字Kとして拡張文字レジスタ261に入力す
る。
その後、MPU201は、辞書検索回路240に検索動作の開
始を指示すればよい。
ここで、例えば、拡張文字Kが初期値『0』と同じビ
ットパターンで表される場合は、該当する要素が辞書23
0に登録されていない場合であっても、比較回路262a,26
2bの少なくとも一方により、一致したことを示す論理
“1"が出力される可能性がある。しかし、上述したよう
に、フラグにより、第1候補要素のみが格納されている
ことが示されている場合は、第2候補要素についての一
致検出結果は無効とされ、比較回路262bの出力は論理
“0"にリセットされてから出力されるので、この場合
に、誤って定義されていない要素を検索することはな
い。また、第1候補要素も定義されていない場合は、2
つの比較回路262a,262bの出力がともに論理“1"とな
る。この場合は、MPU201側で、例えば、上述した割り込
み処理の最初で、一致検出結果が両方とも論理“1"であ
るか否かを判定し、肯定判定の場合は該当する部分列が
検出されたのではないと判断して排除すればよい。
また、一致検出部242と同様に、NOR回路243も独立し
て動作している。従って、上述した読出動作と並行し
て、このNOR回路243により、アドレスレジスタ251aに初
期値『0』以外の有効なポインタが格納されているか否
かにより、連続しているリストがあるか否かが判定され
る。
従って、このNOR回路243によって論理“1"が出力さ
れ、連結しているリストがないとされたときに、MPU201
は、辞書検索回路240に対して検索動作の中止を指示
し、以下に述べる割り込み処理を行えばよい。
まず、MPU201は、最後に検索された部分列に対応する
参照番号ωを符号として出力する。次に、MPU201は、ア
ドレスレジスタ251bとフラグレジスタ254とに格納され
たデータを読み出し、フラグレジスタ254に格納された
フラグに応じて、新しい部分列の登録処理を行えばよ
い。
例えば、MPU201は、上述したフラグが論理“0"である
場合は、アドレスレジスタ251bに格納されているアドレ
スで示される辞書230の格納領域には、候補要素が1つ
も格納されていないと判断する。この場合に、MPU201
は、上述した参照番号ωに拡張文字Kを付加して得られ
る部分列に新しい参照番号ωを与え、上述したアドレ
スで示される辞書230の格納領域の識別情報部に、この
参照番号ωと拡張文字Kとを第1候補要素の識別情報
として格納すればよい。
一方、フラグが論理“1"である場合は、MPU201は、上
述したアドレスで示される辞書230の格納領域には、第
1候補要素のみが格納されていると判断する。この場合
は、該当する格納領域の識別情報部に、上述した参照番
号ωと拡張文字Kとを第2候補要素として格納すれば
よい。また、該当する格納領域のポインタ部に、リスト
部232の未使用領域のアドレスをポインタとして格納す
る。
その後、上述した拡張文字Kを着目している文字列の
先頭部分とし、入力文字列の次の1文字を新しい拡張文
字Kとして、符号化動作を続行すればよい。
上述したように、辞書230の索引部231とリスト部232
との各格納領域に、連結しているリストを示すポインタ
と2つの候補要素の識別情報とを格納する。また、辞書
検索回路240の一致検出部242において、2つの比較回路
262a,262bにより、辞書230から読み出された2つの候補
要素について、着目している文字列との一致検出を行
う。
これにより、1回の読出動作により、辞書230から2
つの候補要素を同時に読み出して、これらの候補要素と
着目している文字列との一致検出処理を行うことが可能
となる。
更に、タイミング制御回路244により、読出サイクル
時間τごとに読出信号を辞書230に供給し、また、読み
出したポインタを次の読み出しアドレスとして辞書230
に供給して、連結されたリストを順次に手操るようにす
る。また、一致検出部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図は従来の符号化動作を表す流れ図である。 図において、 110は辞書、 111は索引、 112はリスト、 121は読出手段、 122は比較手段、 123は検出手段、 124は判定手段、 201はマイクロプロセッサ、 202は入力ポート、 205は出力ポート、 206はバス、 230は辞書、 231は索引部、 232はリスト部、 240は辞書検索回路、 241は候補要素保持部、 242は一致検出部、 243は否定論理和(NOR)回路、 244はタイミング制御回路、 251はアドレスレジスタ、 252は候補文字レジスタ、 253は参照番号レジスタ、 254はフラグレジスタ、 261は拡張文字レジスタ、 262は比較回路である。
フロントページの続き (72)発明者 千葉 広隆 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 電子情報通信学会論文誌A Vol. 73,No.9,P.1529−1533,1990 (58)調査した分野(Int.Cl.6,DB名) G06F 17/30 H03M 7/30 JICST科学技術文献ファイル

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】それぞれに与えられた参照番号に対応して
    辞書(110)に登録された相異なる文字列の中から、入
    力された参照番号と文字とで表される文字列を検索する
    辞書検索方式において、 前記辞書(110)は、 前記参照番号に対応して、当該参照番号が与えられた文
    字列に1文字を付加して得られる候補文字列の少なくと
    も1つに対応する識別情報と他の候補文字列の格納場所
    を示すポインタとを格納する索引(111)と、 最後の1文字が異なる少なくとも1つの候補文字列に対
    応する識別情報と他の候補文字列の格納場所を示すポイ
    ンタとを格納する複数のリスト(112)とを有し、 前記辞書(110)に対して、最初は、入力された参照番
    号に基づいて前記索引(111)に格納されたポインタと
    識別情報との出力を指示し、以後は、前記辞書(110)
    によって出力されたポインタで示されるリスト(112)
    を指定して格納されたポインタと識別情報との出力を指
    示する読出手段(121)と、 前記辞書(110)から読み出される少なくとも1つの識
    別情報のそれぞれと入力文字とを比較する複数の比較手
    段(122)を有し、前記辞書(110)から読み出される候
    補文字列の中から該当する文字列を検出し、この検出結
    果を検索結果として出力する検出手段(123)と、 前記辞書(110)から読み出されたポインタに基づい
    て、読出済でない候補文字列があるか否かを判定し、こ
    の判定結果を検索結果として出力する判定手段(124)
    と、 を備え、前記読出手段(121)と前記検出手段(123)と
    前記判定手段(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 辞書検索方式
EP91307188A EP0470798B1 (en) 1990-08-06 1991-08-05 Dictionary searching system
DE69128053T DE69128053T2 (de) 1990-08-06 1991-08-05 Wörterbuch-Suchsystem
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 JPH0496174A (ja) 1992-03-27
JP2772125B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6622921B2 (ja) * 2016-09-02 2019-12-18 株式会社日立ハイテクノロジーズ 文字列辞書の構築方法、文字列辞書の検索方法、および、文字列辞書の処理システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
電子情報通信学会論文誌A Vol.73,No.9,P.1529−1533,1990

Also Published As

Publication number Publication date
JPH0496174A (ja) 1992-03-27

Similar Documents

Publication Publication Date Title
JP3234104B2 (ja) 圧縮データをサーチする方法及びシステム
JP3889762B2 (ja) データ圧縮方法、プログラム及び装置
JP3152868B2 (ja) 検索装置および辞書/テキスト検索方法
US5136289A (en) Dictionary searching system
JP4156381B2 (ja) 文字テーブルによって実施されるデータ圧縮の方法および装置
JP2772125B2 (ja) 辞書検索方式
JPH0936747A (ja) データ圧縮方法及びデータ圧縮装置
JP2772124B2 (ja) 辞書検索方式
JP2535655B2 (ja) 辞書検索方式
JP3728264B2 (ja) インデックス作成装置、検索システム、及び制御方法
JP2880199B2 (ja) 記号列検索方法および検索装置
JP3130324B2 (ja) データ圧縮方式
JP3038233B2 (ja) データ圧縮及び復元装置
JP2952067B2 (ja) データ圧縮方式
JP3073208B2 (ja) データ選出装置
JP3236747B2 (ja) データ伸長方式
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JP3210183B2 (ja) データ圧縮方法及び装置
JP3115066B2 (ja) 辞書検索方法
JP3018579B2 (ja) 名前検索処理装置
JPH06162096A (ja) レコード検索方法
JP3456127B2 (ja) インデクスキーの高速拡張機能を備えた文書検索方法および装置
JPS62169273A (ja) 言語処理プログラムにおけるラベル情報の登録・参照方式
JP2001117929A (ja) データ検索方法、データ整列方法およびデータ検索装置
EP0649106A1 (en) Compactly stored word groups

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040811