JPH0496868A - 辞書検索方式 - Google Patents

辞書検索方式

Info

Publication number
JPH0496868A
JPH0496868A JP2213990A JP21399090A JPH0496868A JP H0496868 A JPH0496868 A JP H0496868A JP 2213990 A JP2213990 A JP 2213990A JP 21399090 A JP21399090 A JP 21399090A JP H0496868 A JPH0496868 A JP H0496868A
Authority
JP
Japan
Prior art keywords
reference number
dictionary
character
candidate
extended
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
JP2213990A
Other languages
English (en)
Other versions
JP2535655B2 (ja
Inventor
Shigeru Yoshida
茂 吉田
Yoshiyuki Okada
佳之 岡田
Yasuhiko Nakano
泰彦 中野
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 JP2213990A priority Critical patent/JP2535655B2/ja
Priority to DE69123660T priority patent/DE69123660T2/de
Priority to EP95113406A priority patent/EP0688104A2/en
Priority to EP91307343A priority patent/EP0471518B1/en
Priority to US07/744,443 priority patent/US5150119A/en
Publication of JPH0496868A publication Critical patent/JPH0496868A/ja
Application granted granted Critical
Publication of JP2535655B2 publication Critical patent/JP2535655B2/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符号化の際な
どに用いられる辞書検索方式に関し、 高速に辞書を検索することを目的とし、入力された参照
番号と文字とで表される文字列を検索する辞書検索方式
において、辞書は、候補要素を拡張文字に基づいて複数
のグループに分割し、参照番号と拡張文字に関する情報
とに対応して、各グループに属する候補要素の参照番号
とこの候補要素に対応する識別情報とを格納する索引と
、参照番号に対応して、該当する候補要素と同じグルー
プに属する他の候補要素のいずれかの参照番号とこの候
補要素に対応する識別情報とを格納するリストとを有し
、最初は、入力された参照番号と入力文字に関する情報
とに対応して索引から、以後は、辞書によって出力され
た参照番号に対応してリストから参照番号と識別情報と
の出力を辞書に対して指示する読出手段と、辞書から読
み出される識別情報に基づいて、入力文字が拡張文字と
して付加されている候補要素を検出する検出手段と、辞
書から読み出された参照番号に基づいて、読出済でない
候補要素があるか否かを判定する判定手段とを備え、読
出手段と検出手段と判定手段とが独立して動作するよう
に構成する。
(産業上の利用分野〕 本発明は、ユニバーサル符号の一種である増分分解型の
Ziv−Lempel符号化の際などに用いられる辞書
検索方式に関する。
近年、文字コード、ベクトル情報9画像情報など様々な
種類のデータがコンピュータによって扱われるようにな
っており、また、扱われるデータ量も象、速に増大して
いる。
このような膨大なデータを蓄積したり伝送したりする際
には、データの中に含まれている冗長な部分を省いてデ
ータ量を圧縮することが望ましい。
このため、データの種類にかかわらず、効率よくデータ
を圧縮する方法が望まれている。
ユニバーサル符号化方式は、予め符号表を定めておく必
要がないため、上述した様々なデータの圧縮に適用する
ことができるという特徴を有している。
ここで、本明細書においては、データの1語単位をr文
字Jと称し、連続した複数語のデータを「文字列Jと称
する。
ジブーレンペル(ZiシーLempel )符号は、上
述したユニバーサル符号の代表的な方法であり(宗像著
’Ziv−Lempelのデータ圧縮法」、情報処理、
 Vol。
26、NO,1,1985参照)、ユニバーサル型のア
ルゴリズムと増分分解型のアルゴリズムとが提案されて
いる。更に、ユニバーサル型アルゴリズムの改良として
、LZSS符号(T、C,Be1l、”Better 
OPM/LText Compression”、IE
EE Trans、on Commun、、Vol。
C0M−34,No、 12. Dec、 1986参
照)があり、増分分解型アルゴリズムの改良として、L
ZW符号(T、A。
Welch、”A  Technique  for 
 High−Performance  DataCo
mpression’、Computer、June 
1984)がある。
これらの符号化方式のうち、高速処理が可能であること
とアルゴリズムが簡単であることから、LZW符号が記
憶装置のファイル圧縮などで使われるようになっている
〔従来の技術] 増分分解型アルゴリズムは、入力された文字列を、既に
辞書に登録された部分列に1文字を増分として付加して
形成される成分の系列に分解し、この成分の系列を登録
された部分列に対応する参照番号と増分とで表すことに
より、入力文字列を符号化するものである。また、上述
した成分は、新しい部分列として辞書に登録され、以降
の符号化処理に用いられるようになっている。
更に、LZW符号においては、上述した増分を次の部分
列に組み込むようになっている。
以下、簡単のために、入力文字列として、 a” b 
” 、  “l−の3文字からなる文字列“ababc
bababaaaaa−”  (第4図(a)参照)が
人力された場合について、このLZW符号化方式につい
て説明する。
この場合は、上述した3文字“a、”b”。
c ” ニ参照番号rlJ、72.+、I’3Jを与え
て辞書に登録して、符号化処理を開始する。
まず、入力文字列の先頭の文字(例えば文字“a”)を
読み込み、辞書からこの文字を検索し、この文字に対応
する参照番号(例えば「1」)を着目している文字列に
対応する符号ωとする。
その後、入力文字列の2番目以降の各文字を順次に読み
込んで、この文字を上述した増分に相当する拡張文字に
とし、上述した符号ωとこの拡張文字にとの組合せ(ω
K)で表される部分列(ωK)(以下、組合せ(ωK)
を部分列の表現と称する)を辞書から検索する。該当す
る部分列(ωK)が検索された場合は、上述した部分列
(ωK)に対応する参照番号を新しい符号ωとして、更
に、入力文字列の次の文字を読み込んで、上述した処理
を繰り返す。
このようにして、符号化しようとする文字列を順次に1
文字ずつ延ばしていき、辞書からこの文字列を順次に検
索することにより、辞書に登録された部分列の中から、
入力文字列の注目している部分と最も長く一致する部分
列が検索され、この部分列に対応する参照番号が、該当
する符号ωとして出力される。また、このとき、参照番
号ωに対応する部分列(ω)に拡張文字Kを継ぎ足した
部分列が、参照番号ωと拡張文字にとの組合せ(ωK)
で表され、参照番号が与えられ、新しい部。
分列として辞書に登録される。
このようにして、第4図(a)に示した文字列は、図に
おいて下線を付して示した部分列に分解され、第4図(
b)に示すように、各部分列に対応する符号1’la、
f2.+、  r4J、−が出力される。また、第4図
(C)に人力文字列と辞書に登録された部分列との対応
関係を、第1表に作成された辞書の例を示す。
(本頁以下余白) 第1表 また、上述したLZW符号化処理の際に作成された辞書
は、第5図に示すように、木構造を有しており、辞書の
要素のそれぞれは、辞書の木の各節点に対応している。
第5図において、各節点に括弧を付して示した数字は、
対応する辞書の要素の参照番号を示している。
ここで、上述した符号化処理における部分列の検索の際
に、辞書に登録された要素を順次に検索するのでは、処
理に要する時間が長くなるので、辞書の検索処理にハツ
シュ法を適用して高速化を図っている。
ハツシュ法は、文字列からなる集合Sの要素Xからこの
要素Xの格納場所のアドレスを求める関数(ハツシュ関
数)を定義し、このハツシュ関数によって求められたア
ドレスに要素Xを格納するようにしたものである。また
、上述したハツシュ関数によって求められるアドレスを
ハツシュアドレスと称する。
例えば、上述した参照番号ωと拡張文字にとを2進数で
表し、これを組合せ(ωK)のハツシュアドレスとすれ
ばよい。しかしながら、この場合は、辞書に膨大な容量
を割り当てる必要がある。
このため、ハツシュアドレスごとに、同じハツシュアド
レスを有する要素を格納するリストを設けるようにした
外部ハツシュ法が用いられている。
この外部ハツシュ法においては、第6図に示すように、
索引部をハツシュアドレスで検索するこ出により、該当
するリストが示されるようになっている。また、各リス
トには、各要素に対応する識別情報と次の要素の格納場
所を示すポインタとが格納されている。このようにして
、索引とリストとによって、同じハツシュアドレスを有
する要素が連結されており、順次に探索できるようにな
っている。
例えば、上述した参照番号ωをハツシュアドレスとし、
このハツシュアドレスに、参照番号ωに対応する部分列
に1文字を付加した部分列を格納するリストの先頭アド
レスを格納する。また、該当するリストに、上述した参
照番号ωに対応する節点のr子」に相当する節点に対応
する部分列を順次に格納すればよい。このようにして、
参照番号ωと1文字にとの組合せで表される候補要素の
連結関係を示せばよい。また、この場合は、各要素の拡
張文字Kを対応する識別情報としてリストに格納すれば
よい。
第7図に、辞書の検索に外部ハツシュ法を用いた場合の
符号化動作を表す流れ図を示す。
上述したように、入力文字列の少なくとも最初の文字を
含むように辞書を初期化し、変数nに次に登録される部
分列に与えられる参照番号をセントする。例えば、文字
“aパ、“b゛、“C“に与えた参照番号fl」、”2
J 、[’3J をハツシュアドレスとして辞書に格納
し、変数nに数値r4Jをセットすればよい。ここで、
辞書に登録できる部分列の最大数をN□8とし、それぞ
れN。X個の成分からなる配列First、配列Nex
t、配列Extを定義し、これらの配列の全ての成分に
初期値「0」を設定する。この配列Firstは、第6
図に示した索引部に相当し、配列Nextおよび配列E
xtはリストに相当している。従って、配列First
のi番目の成分First[ilには、参照番号jの節
点に対応するリストの先頭となる配列Nextの成分を
示す番号が設定される。また、配列ExtO1番目の成
分Ext[ilには、参照番号iで示される辞書の要素
の拡張文字Kが設定される。また、配列NextO1番
目の成分Next[il には、参照番号iの要素の?
兄弟」に相当する要素を示すポインタが設定される。
次に、最初の文字Kを読み込んで、この文字Kに対応す
る参照番号を変数1に設定して、符号化処理を開始する
まず、拡張文字にとして、入力文字列の次の文字を読み
込んで(ステ・ンプ701)、その次に読み込むべき文
字があれば、ステップ702における肯定判定となり、
辞書の検索処理を開始する。
この場合は、変数1を別の変数ωに退避し、変数jに初
期値fQJを設定してから(ステップ703)、変数i
に対応する成分First[ilの値で示される配列N
extの成分の番号を、変数iに設定する(ステップ7
04)。
ステップ705において、変数1が数値IrQJでない
と判定された場合(否定判定)は、該当するリストに格
納された要素を候補要素として、このリストにおける探
索処理を開始する。
この場合は、該当する候補要素の拡張文字を示す成分E
xt[ilと拡張文字にとを比較しくステップ706)
、このステップ706における否定判定の場合は、ステ
ップ707において、成分Next[ilに設定された
次の候補要素のポインタを新しい変数jとして、ステッ
プ705に戻る。このようにして、ステップ705〜ス
テツプ707を繰り返して、該当するリストを探索する
ステップ706において、成分Ext[il = Kと
なった場合(肯定判定)は、入力された文字列と一致す
る部分列が辞書に登録されていると判断し、ステップ7
01に戻って次の文字を読み込み、この文字を付加した
文字列の符号化を行う。
一方、変数iに対応する成分First[iJあるいは
成分Next[iJ の値が「0」であった場合は、ス
テップ705における肯定判定となる。この場合は、参
照番号iの部分列に連結する他の候補要素が辞書に登録
されていないことを示している。この場合は、該当する
部分列は辞書に登録されていないと判断し、ステップ7
08以下の処理を行う。
ここで、上述したように、辞書から該当する部分列が検
索されるごとに、ステップ703において検索された部
分列に対応する参照番号が変数ωに退避されている。従
って、この変数ωに退避された参照番号は、入力された
文字列に最も長く一致する登録された部゛分列を示して
おり、この参照番号ωに対応する符号を出力して(ステ
ップ708)、新しい部分列の登録処理を行う。
まず、変数nの値を変数iに設定するとともに、変数n
をインクリメントし、また、変数iに対応する成分Ex
t[iJに拡張文字Kを設定する(ステップ709)。
次に、変数jの値が「01であるが否がを判定しくステ
ップ710)、肯定判定の場合は、成分First[ω
]に変数iを設定して(ステップ711)、参照番号ω
に対応するリストを定義する。一方、ステップ710に
おける否定判定の場合は、成分Nex t [j ] 
に変数iを設定して(ステップ712)、該当するリス
トに新しいr兄弟Jを付は加える。
このようにして、登録処理が終了した後に、拡張文字K
に対応する参照番号を変数iとして(ステップ713L
ステツプ701に戻って上述した処理を繰り返し、読み
込むべき文字がなくなったときに、ステップ702にお
ける否定判定となり、そのときの変数ωに対応する符号
を出力して(ステップ714)処理を終了する。
〔発明が解決しようとする課題] ところで、上述した従来方式にあっては、リストの検索
処理において、連結された候補要素があるか否かを判定
する連結判定処理、入力された拡張文字と一致する候補
文字を検出する一致検出処理、次のポインタを設定して
辞書から読み出す読出処理、の3つの処理が順次に行わ
れている。このように、ソフトウェアで順次にリストを
手繰る処理を行うと、候補要素の数が多い場合には、特
に、部分列の検索処理に時間がかかる。このため、符号
化処理速度は数10KB/s程度となり、磁気テープ装
置や磁気ディスク装置などへの転送速度(数100KB
/s〜数MB/s)に合わせて実時間で符号化処理を行
うことができないという問題点があった。
一方、上述した符号化処理の各ステップをそれぞれ独立
な素子を用いてデータ圧縮装置を構成すれば、符号化処
理の高速化を図ることが可能であるが、回路規模が大き
くなり、コストが高くなるという欠点がある。
ここで、上述した従来例においては、簡単のために3文
字からなる文字列を符号化する場合について説明したが
、実際の文字列は多くの文字がら構成されている。従っ
て、通常、辞書の検索処理においては、ある参照番号に
対応するリストを手繰って、「兄弟jに相当する候補要
素を順次に読み出して、一致する要素を検出する処理お
よび連結する要素の有無を検出する処理に最も長い時間
を要している。
本発明は、このような点にかんがみて創作されたもので
あり、高速に辞書の検索を行うようにした辞書検索方式
を捉供することを目的とする。
〔課題を解決するための手段〕
第1図は、本発明の原理ブロック図である。
・ 1 云)゛工1の H 図において、それぞれに与えられた参照番号に対応して
辞書110に登録された相異なる文字列の中から、入力
された参照番号と文字とで表される文字列を検索する辞
書検索方式における辞書110は、参照番号が与えられ
た文字列のそれぞれに相異なる1文字を拡張文字として
付加して得られる候補要素を拡張文字に基づいて複数の
グループに分割し、参照番号と拡張文字に関する情報と
に対応して、各グループに属する候補要素のいずれかに
与えられた参照番号とこの候補要素に対応する識別情報
とを格納する索引111と、参照番号に対応して、当該
参照番号が与えられた候補要素と同じグループに属する
他の候補要素のいずれかに与えられた参照番号とこの候
補要素に対応する識別情報とを格納するりスト112と
を有している。
読出手段121は、最初は、入力された参照番号と入力
文字に関する情報とに対応して索引111に格納された
参照番号と識別情報との出力を、以後は、辞書110に
よって出力された参照番号に対応してリスト112に格
納された参照番号と識別情報との出力を辞書110に対
して指示する。
検出手段122は、辞書110から読み出される識別情
報に基づいて、入力文字が拡張文字として付加されてい
る候補要素を検出し、この検出結果を検索結果として出
力する。
判定手段123は、辞書110から読み出された参照番
号に基づいて、読出済でない候補要素があるか否かを判
定し、この判定結果を検索結果として出力する。
全体として、読出手段121と検出手段122と判定手
段123とがそれぞれ独立に動作するように構成されて
いる。
lン1の H 請求項2の発明における読出手段121は、定の時間間
隔で辞書110に対する読出動作を起動し、請求項1の
発明による辞書検索方式において、検出手段122によ
る検出動作と判定手段123による判定動作とを読出手
段121による読出動作と並行して行うように構成され
ている。
〔作 用〕 一ロロー追求316発肌 請求項]の発明において、参照番号が与えられた文字列
のそれぞれに相異なる1文字を拡張文字として付加して
得られる候補要素は、上述した拡張文字に基づいて複数
のグループに分割されている。また、索引111には、
参照番号と拡張文字に関する情報とに対応して、上述し
た各グループに属する候補要素のいずれかに与えられた
参照番号とこの候補要素に対応する識別情報とが格納さ
れている。また、リスト112には、参照番号に対応し
て、この参照番号が与えられた候補要素と同じグループ
に属する他の候補要素のいずれかに与えられた参照番号
とこの候補要素に対応する識別情報とが格納されている
上述した索引111は、外部パンシュ法の索引部に相当
しており、リスト112は、外部ハツシュ法のリストに
相当している。また、索引111とリスト112に格納
されている参照番号は、次の候補要素の格納場所を示す
ポインタを兼ねており、これにより、同しグループに属
する候補要素の連結関係が示されている。また、識別情
報としては、各文字列における拡張文字を格納すればよ
い。
最初は、読出手段121により、辞書110に対して、
入力される参照番号と入力文字に関する情報とに対応し
て索引111に格納された参照番号と識別情報との出力
が指示される。また、以後は、この読出手段121によ
り、辞書110によって出力された参照番号に対応して
リスト112に格納された参照番号と識別情報との出力
が指示される。
このようにして、索引111に続いて、リスト112か
ら上述したポインタによって連結された候補要素に対応
する識別情報(例えば拡張文字)が次々に読み出される
従って、検出手段122は、辞書110から識別情報と
して読み出される拡張文字と入力された文字が一致した
ときに、該当する候補要素を検出した旨を検索結果とし
て出力すればよい。
また、判定手段123は、辞書110から出力された参
照番号が辞書110に登録された文字列に対応していな
い場合に、読み出されていない候補要素がないと判定し
、この判定結果を検索結果として出力すればよい。
請求項1の発明においては、各参照番号に対応する候補
要素は、拡張文字に関する情報に基づいて複数のグルー
プに分割されており、入力された参照番号と入力文字に
関する情報とに対応するグループに属する候補要素の中
から、該当する文字列の検出が行われる。従って、読出
手段121が辞書110から候補要素を読み出す動作の
回数および検出手段122が一致検出動作を行う回数を
削減することができ、検索処理を高速に行うことが可能
となる。また、読出手段121と検出手段123と判定
手段124とが、それぞれ独立に動作するので、従来方
式のように、前の処理の終了を待つ必要がな(、辞書の
検索処理を高速化することが可能となる。
(工り韮才四1久光■ 請求項2の発明において、読出手段121は、所定の時
間間隔で辞書110に対する読出動作を行い、また、検
出手段122による検出動作と判定手段123による判
定動作とが、読出手段12工による読出動作と並行して
行われる。
例えば、上述した読出手段121は、辞書110からの
読出動作に要する時間ごとに読出動作を行うようにすれ
ばよい。通常は、読出動作に要する時間に比べて、検出
手段122による検出動作および判定手段123による
判定動作は短い時間で終了すると考えられ、読出動作と
検出動作および判定動作とを並行して行うことにより、
検索処理をパイプライン化して処理することができる。
従って、請求項2の発明にあっては、読出動作および一
致検出動作を行う回数を削減するとともに、読出動作と
一致検出動作および判定動作とをパイプライン化して処
理することにより、辞書110からの文字列の検索処理
を高速化することが可能となる。
〔実施例〕
以下、図面に基づいて本発明の実施例について詳細に説
明する。
第2図は、本発明の一実施例による辞書検索方式を適用
したデータ圧縮装置の構成を示す。
ここで、第1図と実施例との対応関係について説明して
おく。
辞書110は、辞書230に相当する。
索引111は、索引部231に相当する。
リスト112は、リスト部232に相当する。
読出手段121は、候補要素保持部241とタイミング
制御回路244とフリップフロップ(FF)245aと
に相当する。
検出手段122は、拡張文字レジスタ261と比較回路
262とに相当する。
判定手段123は、否定論理和(NOR)回路243に
相当する。
以上のような対応関係があるものとして、以下実施例の
構成および動作を説明する。
第2図において、201はマイクロプロセ・ンサ(MP
U)を、202は入力ポートを、230は辞書を、24
0は辞書検索回路を、205は出力ポートをそれぞれ示
している。また、上述したMPU201と、入力ポート
202と辞書230と辞書検索回路240と出力ポート
205とは、バス206を介して相互に接続されている
また、入力ポート202を介して入力された文字列は、
MPU201によりLZW符号化され、出力ポート20
5を介して、磁気ディスク装置(図示せず)などに転送
されて蓄積されるようになっている。
このとき、MPL121は、辞書検索回路240に対し
て、入力された文字列の着目している部分(以下、着目
部分列と称する)を辞書230から検索を指示するよう
に構成されている。
ここで、LZW符号化方式においては、部分列はそれま
でに検索された部分列に対応する参照番号ωと、この部
分列に拡張文字として付加される最後の1文字にとで表
される。従って、辞書検索回路240は、上述した着目
部分列の拡張文字にを除く先頭部分に相異なる1文字を
拡張文字として付加して得られる候補要素の中から、拡
張文字Kが付加された部分列を検索すればよい。
このとき、着目部分列は、上述した拡張文字にの最上位
ビットに、と等しい最上位ビットを有する文字が拡張文
字として付加された候補要素からなるグループに属して
いる。従って、上述した候補要素をそれぞれにおける拡
張文字の最上位ピントに基づいて2つのグループに分割
し、最上位ビットに、に対応するグループに属する候補
要素の探索を行えば、上述した着目部分列を検索するこ
とができる。
以下、候補要素を拡張文字の最上位ビットに基づいて、
2つのグループに分割して検索するようにした場合の辞
書230の構成を示す。
辞書230は、第3図に示すように、3N個の連続した
格納領域から構成されており、辞書230は、導入され
る読出信号に応じて、読出アドレスで指定された格納領
域の内容を出力するように構成されている。
上述した3N個の格納領域のうち、アドレスの上位2ビ
ツトが100Jである格納領域とro IJである格納
領域とは、上述した外部ハツシュ法の索引に相当する索
引部231に割り当てられている。また、アドレスの上
位2ビツトがrlO」”i’ある格納領域は、外部ハツ
シュ法のリストの集まりに相当するリスト部232に割
り当てられている。また、索引部231およびリスト部
232の各格納領域は、それぞれのアドレスの上位2ピ
ツ゛トを除く下位部分を参照番号とする部分列に連結す
る候補要素の格納場所を示すポインタを格納するポイン
タ部と上述した候補要素に対応する識別情報を格納する
識別情報部とから構成されている。
ここで、索引部231のアドレスの上位2ビツトがro
o」の領域(以下、索引部231..と称する)のポイ
ンタ部には、アドレスの下位部分を参照番号とする部分
列に最上位ビットがFQIである1文字を付加して得ら
れる部分列の参照番号をポインタとして格納すればよい
。また、アドレスの上位2ビツトがroIJの領域(以
下、索引部231゜、と称する)のポインタ部には、ア
ドレスの下位部分を参照番号とする部分列に最上位ビッ
トがrlJである1文字を付加して得られる部分列の参
照番号をポインタとして格納すればよい。
このように、各参照番号の部分列に1文字を拡張文字と
して付加して得られる候補要素は、それぞれの拡張文字
の最上位ビットに応じて、索引部231゜。と索引部2
31゜1とに分割されて格納される。
また、リスト部232の各領域のポインタ部には、対応
する参照番号で示される部分列と拡張文字を除く部分と
拡張文字の最上位ビットとが同しで、他の部分が異なる
部分列に与えられた参照番号をポインタとして格納すれ
ばよい。
また、索引部231およびリスト部232の各格納領域
の識別情報部には、各候補要素における拡張文字を識別
情報として格納すればよい。
このようにして、索引部231とリスト部232とによ
って、拡張文字の最上位ビットが等しい同じグループに
属する候補要素の相互間の連結関係が示される。例えば
、第3図においては、参照番号fl」の部分列に最上位
ビットが論理“′0”である拡張文字を付加した候補要
素(図において、参照番号ω2.ω2で示す)の連結関
係および参照番号f2Jの部分列に最上位ビットが論理
パl゛である拡張文字を付加した候補要素(回において
、参照番号ω4.ω1で示す)の連結関係が示されてい
る。
また、上述した索引部231およびリスト部232の各
格納領域の内容には、符号化処理を開始する際に、初期
値r04が設定されるようになっている。
辞書検索回路240は、辞書230から読み出された候
補要素に関する情報を保持する候補要素保持部241と
、導入される候補要素の中から拡張文字がMPU201
から入力される拡張文字にと一致する要素を検出する一
致検出部242と、否定論理和(NOR)回路243と
、これらの各部の動作のタイミングを制御するタイミン
グ制御部244と、2つのフリンプフロ・ン7”(FF
)245a、245bとを備えて構成されている。
上述した候補要素保持部241には、バス206を介し
て、辞書230の索引部231およびリスト部232に
よって出力されたデータが導入されている。また、この
候補要素保持部241は、2つのアドレスレジスタ25
1,252と、候補文字レジスタ253とから構成され
ている。
ハス206を介して導入されるデータのうち、ポインタ
部はアドレスレジスタ251に、識別情報部は候補文字
レジスタ253に導入されている。
また、アドレスレジスタ251の出力の最上位ビットを
除く部分は、アドレスレジスタ252に導入され、−旦
保持されるようになっている。
これらのレジスタは、タイミング制御回路244から導
入されるロード信号に応じて、導入されたデータを格納
するように構成されている。
一致検出部242は、入力される拡張文字Kを格納する
拡張文字レジスタ261と、この拡張文字レジスタ26
1に格納された拡張文字にと上述した候補文字レジスタ
253に格納された候補文字とを比較する比較回路26
2とから構成されている。また、この比較回路262は
、上述した拡張文字にと候補文字とが一致したときに論
理′″1”を出力するように構成されており、この比較
回路262の出力は、一致検出信号としてMPU201
に導入されている。
また、NOR回路243には、上述したアドレスレジス
タ251の出力が導入されており、このNOR回路24
3の出力は、MPU201に導入されている。
タイミング制御回路244は、MPU201からの指示
に応じて、FF245aを制御するとともに読出信号と
ロード信号を生成して出力するように構成されている。
この読出信号は、上述した辞書230に入力されており
、また、ロード信号は、候補要素保持部241のアドレ
スレジスタ251.252と候補文字レジスタ253と
に入力されている。
上述したFF245aの出力は、FF245bに導入さ
れるとともに、読出アドレスの最上位ビットとして、辞
書230に供給されている。また、上述した候補要素保
持部241のアドレスレジスタ251の出力は、読出ア
ドレスの下位部分として辞書230に供給されている。
以下、辞書検索回路240による辞書230の検索動作
について説明する。
例えば、第4図(a)に示した文字列の符号化処理を行
う場合は、まず、最初の文字“a″゛を読み込んで、こ
の文字“a”を着目部分列の先頭部分とし、これに対応
する参照番号(例えば11」)を求める。その後、次の
文字“bパを読み込んで拡張文字にとし、この文字“b
I+の最上位ピントを上述した参照番号に付加したもの
をハンシュアドレスとして、アドレスレジスタ251に
人力する。
また、上述した文字“b′を拡張文字にとして拡張文字
レジスタ261に入力し、辞書検索回路240のタイミ
ング制御回路246に検索動作の開始を指示すればよい
上述した検索開始指示に応じて、タイミング制御回路2
44は、まず、FF245aの出力を論理“0°′にリ
セットし、その後、辞書230に読出信号を導入する。
これにより、読出アドレスの最上位ビットとして論理°
“0゛′が導入され、辞書230の索引部231が選択
される。また、上述したアドレスレジスタ251の内容
の最上位ビットに応じて、索引部231゜。と索引部2
31゜1とのいずれかが選択され、選択された索引部2
31の参照番号ωに対応する格納領域のデータが、バス
206を介して辞書検索回路240に導入される。この
ようにして、索引部231から最初の候補要素の拡張文
字と、この候補要素に連結している他の候補要素を示す
ポインタとが読み出されて、辞書検索回路240の候補
文字レジスタ253とアドレスレジスタ251とにそれ
ぞれ導入される。
タイミング制御回路244は、上述した読出信号を出力
してから辞書230からのデータの読出動作に要する時
間(読出サイクル時間)τだけ経過した後に、候補要素
保持部241のアドレスレジスタ251,252と候補
文字レジスタ253とにロード信号を導入する。
二のロード信号に応じて、アドレスレジスタ251によ
り、索引部231の該当する格納領域のポインタ部から
読み出されたポインタが格納される。また、このとき、
タイミング制御回路244は、FF245aに論理“′
1”をセットする。従って、以後は、読出アドレスの最
上位ビットが論理゛1“となり、辞書230のリスト部
232が選択され、上述したポインタに対応するリスト
部232の格納領域から、上述した最初の候補要素に連
結された次の候補要素が読み出される。
以後、タイミング制御回路244は、MPU201から
の指示がない限り、読出信号を出力し、その後上述した
読出サイクル時間τの経過後にロード信号を出力する動
作を繰り返す。このようにして、ポインタによって連結
された候補要素が、リスト部232から順次に読み出さ
れる。また、アドレスレジスタ252には、直前にポイ
ンタとして読み出された参照番号が保持され、FF24
5bには、直前の読出動作の際に指定された読出アドレ
スの最上位ビットが保持される。
上述したようにして、拡張文字にの最上位ビットに、に
対応するグループに属する候補要素が、読出サイクル時
間τごとに順次に読み出される。
ここで、上述した一致検出部242は、候補要素保持部
241とは独立に動作する。従って、上述した読出動作
と並行して、一致検出部242の比較回路262により
、その前に読み出されて候補文字レジスタ253に格納
された文字と、拡張文字にとの比較が行われている。
上述したように、この比較回路262は、候補文字と拡
張文字とが一致したときに、一致検出結果として論理“
1”′を出力してMPU201に入力するようになって
いる。従って、MPU201は、一致検出結果として論
理“′1′°が導入されたときに、該当する部分列が検
索されたと判断して、以下に述べる割り込み処理を行え
ばよい。
この場合は、MPU201は、まず、タイミング制御回
路244に読出動作の中止を指示するとともに、アドレ
スレジスタ252に保持されている参照番号を読み込む
。ここで、この参照番号は、直前に読み出された部分列
、つまり、一致検出部242によって着目部分列と一致
するとされた部分列に対応している。この場合は、MP
U201は、入力文字列の次の1文字を新しい拡張文字
にとして読み込んで、拡張文字レジスタ261に入力す
るとともに、この拡張文字にの最上位ビットに、と上述
した参照番号とをアドレスレジスタ251に入力し、辞
書検索回路240に該当する部分列の検索処理の開始を
指示する。
このようにして、着目部分列に一致する部分列が検索さ
れるごとに、検索された部分列に次の1文字が拡張文字
にとして付加されて着目部分列が延ばされ、更に、この
着目部分列の検索を行って、符号化動作を続行するよう
になっている。
また、一致検出部242と同様に、NOR回路243も
独立して動作している。従って、上述した読出動作と並
行して、このNOR回路243により、アドレスレジス
タ251に初期値rQJ以外の有効なポインタが格納さ
れているか否かにより、連結している候補要素があるか
否かが判定される。
従って、このNOR回路243により、判定結果として
論理゛1゛が出力され、連結している候補要素がないと
されたときに、MPU201は、以下に述べる割り込み
処理を行えばよい。
まず、MPU201は、辞書検索回路24oのタイミン
グ制御回路244に読出動作の中止を指示するとともに
、最後に検索された部分列に対応する参照番号ωを符号
として出力する。次に、MPU201は、アドレスレジ
スタ252に保持された参照番号とFF245bの出力
とを読み出し、こ0FF245bの出力に応じて、新し
い部分列の登録処理を行う。
例えば、FF245 bの出力が論理“′0パである場
合は、MPU201は、書込アドレスの最上位ビットを
“°0パとして、索引部231に新しい部分列を登録す
る。この場合は、拡張文字にの最上位ビットに1と上述
した参照番号とで示される索引部231の格納領域に、
上述した参照番号ωに対応する部分列に拡張文字Kを付
加した部分列に与えられた参照番号ω、をポインタとし
て格納し、拡張文字Kを識別情報として格納すればよい
このようにして、上述した参照番号ωと拡張文字にの最
上位ビットに、とに対応するグループに属する最初の候
補要素が登録される。
一方、FF245bの出力が論理°“工”である場合は
、MPU201は、書き込みアドレスの最上位ビットを
II I IIとして、リスト部232に新しい部分列
を登録する。この場合は、上述したポインタに対応する
リスト部232の格納領域に、上述した参照番号ω7を
ポインタとして格納し、拡張文字Kを識別情報として格
納すればよい。このようにして、上述した参照番号ωと
拡張文字にの最上位ビットに7とに対応するグループに
属する新しい候補要素が登録される。
その後、上述した拡張文字Kを着目部分列の先頭部分と
し、入力文字列の次の1文字を新しい拡張文字にとして
、符号化動作を続行すればよい。
上述したように、辞書230の索引部231とリスト部
232との各格納領域のポインタによって、各候補要素
における拡張文字の最上位ビットが等しい候補要素の連
結関係を示し、候補要素を拡張文字の最上位ビットに応
じて、2つのグループに分割して探索する。
ここで、文字の最上位ビットとして、論理“1”が現れ
る確率と論理゛0”が現れる確率とが等しい場合は、上
述したようにして分割された2つのグループには、それ
ぞれ同数の候補要素が属すると考えられる。従って、上
述したようにして候補要素を2つのグループに分割して
検索を行うようにすることにより、検索処理の際に探索
すべき候補要素を約半分とすることができ、該当する候
補要素を高速に検出することが可能となる。
更に、タイミング制御回路244により、読出サイクル
時間τごとに読出信号を辞書230に供給するとともに
、辞書230から読み出したポインタに基づいて作成し
た読出アドレスを辞書230に供給する。また、一致検
出部242とNOR回路243とをそれぞれに独立に動
作させ、辞書230からの読出動作に並行して、一致検
出動作と連結判定動作とを行うことにより、MPU20
1を介することなく連結された候補要素の探索を行うこ
とができ、また、読出処理と一致検出処理および連結判
定処理とをバイブライン化して処理することが可能とな
る。
これにより、従来のように、MPUを介して全ての候補
要素の探索を行う場合に比べて、候補要素の探索処理に
要する時間を大幅に短縮することができる。
このように、第2図に示したような簡単な回路を用いて
、辞書230からの文字列の検索処理を高速化すること
が可能となり、辞書の検索処理に要する時間を短縮して
、符号化処理の高速化を図ることができる。この場合は
、符号化速度を磁気ディスク装置への転送速度と同程度
とすることができ、符号化したデータを磁気ディスク装
置などに実時間で転送することができる。
また、MPU201は、一致検出部242およびNOR
回路243の出力に応じて、上述した割り込み処理を行
えばよく、特に高速に動作する必要はない。
なお、上述した実施例においては、各候補要素の拡張文
字の最上位ビットに基づいて、候補要素を2つのグルー
プに分割する場合について説明したが、グループの分割
数および分割のしかたに制限はなく、各候補要素の拡張
文字に基づいて複数のグループに分割し、各グループご
とに探索するようにしたものであれば適用できる。
例えば、拡張文字の上位2ビツトに基づいて、候補要素
を4つのグループに分割してもよいし、拡張文字のビッ
トパターンに°′1″が多い候補要素と“0”が多い候
補要素とに分割してもよい。
また、拡張文字のビットパターンのそれぞれに対応して
、論理“1′′あるいは論理°゛0′”を格納するルン
クアップテーブル(LUT)を用意し、このLUTの出
力が論理°゛1”となるグループと論理“0”′となる
グループとに分割してもよい。要は、複数のグループに
属する候補要素の数がほぼ同数になるように分割すれば
よい。
また、上述した実施例のように、拡張文字の工部をハツ
シュアドレスに含めるようにした場合は、各候補要素の
識別情報として、拡張文字のハツシュアドレスに含まれ
ていない部分のみを辞書230に格納すればよい。これ
により、ハツシュアドレスと識別情報との重複部分を除
いて、辞書230として用いるメモリの容量が増大する
ことを防ぐことができる。
また、上述した実施例にあっては、データ圧縮装置に適
用した場合について説明したが、これに限らず、木構造
を有する辞書を外部ハツシュ法を用いて構成し、この辞
書を検索する場合であれば適用できる。
〔発明の効果〕
上述したように、請求項1の発明によれば、読出動作お
よび一致検出動作を行う回数を削減するとともに、読出
手段と検出手段と判定手段とをそれぞれ独立に動作させ
ることにより、辞書の検索処理を高速化することが可能
となり、符号化処理の高速化を図ることができる。
請求項2の発明によれば、読出動作および一致検出動作
を行う回数を削減するとともに、読出動作と一致検出動
作および判定動作とをパイプライン化して処理するので
、辞書からの文字列の検索処理を更に高速化することが
できる。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、 第2図は本発明の一実施例によるデータ圧縮装置の構成
図、 第3図は実施例による辞書の構成を示す図、第4図はL
ZW符号化方式の説明図、 第5図は辞書の構成を示す図、 第6図は外部ハツシュ法の説明図、 第7図は従来の符号化動作を表す流れ図である。 図において、 110は辞書、 111は索引、 112はリスト、 121は読出手段、 122は検出手段、 123は判定手段、 201はマイクロプロセッサ、 202は入力ポート、 205は出力ポート、 206はハス、 230は辞書、 231は索引部、 232はリスト部、 240は辞書検索回路、 241は候補要素保持部、 242は一致検出部、 243は否定論理和(NOR)回路、 244はタイミング制御回路、 245はフリンプフ口、ブ(FF)、 251.252はアドレスレジスタ、 253は候補文字レジスタ、 261は拡張文字レジスタ、 262は比較回路である。 本発明の原理ブロンク図 第1図 実力缶4ilILこよる辞で7の構成を示す図第 図 (a)ノにニオアゴζで7叫ソリ い此方符号 (C澄録符号 ababcbab ]ヌ「 W符号化方式の説明図 第 図 外務Bノ\ シ 二法の説明図 第 図 辞書の構成を示す図 第 図 1足来の7仔号イヒ動・f乍を表す流わ2図第 図

Claims (2)

    【特許請求の範囲】
  1. (1)それぞれに与えられた参照番号に対応して辞書(
    110)に登録された相異なる文字列の中から、入力さ
    れる参照番号と文字とで表される文字列を検索する辞書
    検索方式において、 前記辞書(110)は、 前記参照番号が与えられた文字列のそれぞれに相異なる
    1文字を拡張文字として付加して得られる候補要素を前
    記拡張文字に基づいて複数のグループに分割し、前記参
    照番号と前記拡張文字に関する情報とに対応して、各グ
    ループに属する候補要素のいずれかに与えられた参照番
    号とこの候補要素に対応する識別情報とを格納する索引
    (111)と、 前記参照番号に対応して、当該参照番号が与えられた候
    補要素と同じグループに属する他の候補要素のいずれか
    に与えられた参照番号とこの候補要素に対応する識別情
    報とを格納するリスト(112)とを有し、 最初は、入力された参照番号と入力文字に関する情報と
    に対応して前記索引(111)に格納された参照番号と
    識別情報との出力を、以後は、前記辞書(110)によ
    って出力された参照番号に対応して前記リスト(112
    )に格納された参照番号と識別情報との出力を前記辞書
    (110)に対して指示する読出手段(121)と、 前記辞書(110)から読み出される識別情報に基づい
    て、入力文字が拡張文字として付加されている候補要素
    を検出し、この検出結果を検索結果として出力する検出
    手段(122)と、 前記辞書(110)から読み出された参照番号に基づい
    て、読出済でない候補要素があるか否かを判定し、この
    判定結果を検索結果として出力する判定手段(123)
    と、 を備え、前記読出手段(121)と前記検出手段(12
    2)と前記判定手段(123)とがそれぞれ独立に動作
    するように構成することを特徴とする辞書検索方式。
  2. (2)前記読出手段(121)が、所定の時間間隔で辞
    書(110)に対する読出動作を起動し、前記検出手段
    (122)による検出動作と前記判定手段(123)に
    よる判定動作とを前記読出手段(121)による読出動
    作と並行して行うように構成したことを特徴とする請求
    項1記載の辞書検索方式。
JP2213990A 1990-08-13 1990-08-13 辞書検索方式 Expired - Lifetime JP2535655B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2213990A JP2535655B2 (ja) 1990-08-13 1990-08-13 辞書検索方式
DE69123660T DE69123660T2 (de) 1990-08-13 1991-08-09 Datenkompressionsmethode und Gerät
EP95113406A EP0688104A2 (en) 1990-08-13 1991-08-09 Data compression method and apparatus
EP91307343A EP0471518B1 (en) 1990-08-13 1991-08-09 Data compression method and apparatus
US07/744,443 US5150119A (en) 1990-08-13 1991-08-13 Data compression method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2213990A JP2535655B2 (ja) 1990-08-13 1990-08-13 辞書検索方式

Publications (2)

Publication Number Publication Date
JPH0496868A true JPH0496868A (ja) 1992-03-30
JP2535655B2 JP2535655B2 (ja) 1996-09-18

Family

ID=16648432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2213990A Expired - Lifetime JP2535655B2 (ja) 1990-08-13 1990-08-13 辞書検索方式

Country Status (1)

Country Link
JP (1) JP2535655B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9263603B2 (en) 2009-03-23 2016-02-16 Sharp Kabushiki Kaisha Solar cell with connecting sheet, solar cell module, and fabrication method of solar cell with connecting sheet

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9263603B2 (en) 2009-03-23 2016-02-16 Sharp Kabushiki Kaisha Solar cell with connecting sheet, solar cell module, and fabrication method of solar cell with connecting sheet

Also Published As

Publication number Publication date
JP2535655B2 (ja) 1996-09-18

Similar Documents

Publication Publication Date Title
JP3672242B2 (ja) パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体
JP2502469B2 (ja) 文字デ―タを圧縮し圧縮済みデ―タを展開するための静的辞書構造を提供する方法および手段
JP2534465B2 (ja) デ―タ圧縮装置および方法
JPH05233212A (ja) データを圧縮するための装置及び方法並びにデータ処理システム
EP0470798A2 (en) Dictionary searching system
US5815096A (en) Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
JPH09245043A (ja) 情報検索装置
JPH0496868A (ja) 辞書検索方式
JP2772124B2 (ja) 辞書検索方式
JP2772125B2 (ja) 辞書検索方式
JP3241787B2 (ja) データ圧縮方式
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JP3130324B2 (ja) データ圧縮方式
JP3038233B2 (ja) データ圧縮及び復元装置
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
EP3718023B1 (en) Accelerated filtering, grouping and aggregation in a database system
JP3073208B2 (ja) データ選出装置
JP2952067B2 (ja) データ圧縮方式
JP3058711B2 (ja) データ圧縮及び復元方法
JPH06162096A (ja) レコード検索方法
JPH03270417A (ja) データ圧縮方法および圧縮データのデータ復元方法
JPH04167821A (ja) データ符号化及び復号化方法
JP3115066B2 (ja) 辞書検索方法
JPS62169273A (ja) 言語処理プログラムにおけるラベル情報の登録・参照方式
JPH05341953A (ja) データ圧縮方法及び装置