JP2000151419A - データ圧縮方法およびデータ圧縮装置 - Google Patents

データ圧縮方法およびデータ圧縮装置

Info

Publication number
JP2000151419A
JP2000151419A JP10315116A JP31511698A JP2000151419A JP 2000151419 A JP2000151419 A JP 2000151419A JP 10315116 A JP10315116 A JP 10315116A JP 31511698 A JP31511698 A JP 31511698A JP 2000151419 A JP2000151419 A JP 2000151419A
Authority
JP
Japan
Prior art keywords
address
node
character
dictionary
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
JP10315116A
Other languages
English (en)
Inventor
Yasukazu Mizushima
靖和 水嶋
Satoshi Koyaizu
聡 小柳津
Masashi Usami
正志 宇佐美
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.)
Asahi Chemical Industry Co Ltd
Original Assignee
Asahi Chemical Industry Co 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 Asahi Chemical Industry Co Ltd filed Critical Asahi Chemical Industry Co Ltd
Priority to JP10315116A priority Critical patent/JP2000151419A/ja
Publication of JP2000151419A publication Critical patent/JP2000151419A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 【課題】 辞書に新たな情報を上書きする際に、その位
置を迅速に検索でき、かつ辞書用メモリの消費電力の節
減が図れるデータ圧縮装置の提供 【解決手段】 データ圧縮の際の辞書を構築する辞書用
メモリ4Bを、独立に動作する4つのメモリ41〜43
により構成した。CPU2が、例えばメモリ42に格納
する文字データが最大登録数に達したことを判定する
と、新たな文字データを上書きするために、子ノードア
ドレスが格納されるメモリ42のみを動作させる。これ
により、検索回路6は、子ノードアドレスが書き込まれ
ていないアドレスを、その動作中のメモリ42の先頭ア
ドレスから順次検索し、かつ、そのアドレスの2回目以
降の検索は、前回に検出されたアドレスの次のアドレス
から開始するようにした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、テキスト文書やフ
ァイルの圧縮、またはデータ通信の際のデータの圧縮な
どに適用されるデータ圧縮方法およびデータ圧縮装置に
関する。
【0002】
【従来の技術】従来、この種のデータ圧縮方法として
は、例えば、LZW(Lempel−Ziv−Welc
h)圧縮といわれる可逆的なデータの圧縮法が知られて
いる。このLZW圧縮は、V.42bisモデム標準な
どで採用されている。
【0003】このLZW圧縮は、入力した現在の文字列
と過去に処理して辞書に登録されている文字列とを比較
し、両者が一致しないときにはその文字列を辞書に逐次
登録する一方、両者が一致するときにはその入力した文
字列に対応する圧縮コードを出力していくものである。
【0004】このようなLZW圧縮により辞書に登録さ
れる文字列は、例えば図11に示すように、ノード(黒
丸)と、このノード同士を線で結ぶ木構造で表される。
図11中、上位にあるものを親ノードといい、下位にあ
るものを子ノードと呼んでいる。ここでは、同一の親ノ
ードに接続する子ノードを兄弟ノードと呼び、兄弟ノー
ド中の最も左にあるものを末っ子ノード、その最も右に
あるものを長兄ノードと呼んでいる。
【0005】この木構造では、親ノードと線で結ばれる
のは子ノードのうちの長兄と末っ子のみで、他の子ノー
ドは兄弟ノードに接続されている。そして、各ノードに
は、文字を表すデータ、子ノードのアドレス、兄弟ノー
ドのアドレスなどが情報として付与されている。
【0006】また、この木構造では、親ノードの参照は
末っ子ノードを経由して行い、子ノードの参照は自身が
持つ子ノードのアドレスを使用し、その後は兄弟ノード
の参照を続けることにより行う。このような木構造はメ
モリ上で構築され、子ノードのメモリへの配置は、メモ
リの先頭のアドレスから書き込むことにより行う。ま
た、新規な文字の更新は新規な子ノードの更新という形
で、ある親ノードに接続される。その更新は以下のよう
な方法で行われる。
【0007】ノード数が、メモリの最大登録可能数に達
していない場合には、文字を表すデータ、子ノードのア
ドレス、兄弟ノードのアドレスなどのノード情報を、メ
モリの先頭のアドレスから書き込んでいく。一方、ノー
ド数が最大登録可能数を超えた場合には、子ノードを持
たない親ノードの登録が順次抹消され、これは以下の手
順で行う。すなわち、メモリの先頭から子ノードを持た
ないアドレスを検索する。そして、その検索したアドレ
スに新たなノード情報を上書きする。
【0008】
【発明が解決しようとする課題】上記のようなデータ圧
縮方法では、ノード数が最大登録可能数を超えた場合
に、メモリの先頭から子ノードを持たないアドレスを検
索し、その検索したアドレスに新たなノード情報を上書
きするようにしている。
【0009】その際に、ノード情報を更新するに際し、
1つ上の兄ノードがもつ兄弟ノード情報の変更を行う
が、その1つ上の兄ノードの検索は一旦、末っ子ノード
に達した後に、親ノード、長兄ノードを経由して行って
いる。また、圧縮された文字列を展開する場合、親ノー
ドを検索するが、その場合にも一旦、末っ子ノードに到
達した後に、親ノードを探索している。
【0010】このような検索では、たびたび多くのメモ
リ走査を行うので(多くのノードを渡り歩くので)、そ
の検索に多量の処理時間を要すという不都合がある。ま
た、各処理で参照される子ノードのアドレスや兄弟ノー
ドのアドレスなどの情報は、メモリに記憶されるノード
上の全ての情報ではなくその一部である。しかし、これ
らのノード上の情報は、一般に、単一のメモリの同一ア
ドレスに格納されているので、その一部の情報が必要の
場合であっても、そのメモリの全体を動作させる必要が
ある。この結果、メモリは必要以上に電力を消費し、メ
モリの消費電力の削減が望まれていた。
【0011】そこで、本発明は、上記の点に鑑み、辞書
に新たな情報を上書きする際に、その上書きが可能な位
置を迅速に検索できる上に、末っ子ノードなどのノード
の位置を迅速に検索できるようにし、もって、リアルタ
イム処理を可能にするとともに、辞書を構成するメモリ
の消費電力の節減が図れるようにしたデータ圧縮方法お
よびデータ圧縮装置を提供することを目的とする。
【0012】
【課題を解決するための手段】上記課題を解決し、本発
明の目的を達成するために、請求項1に記載の発明は、
入力した現在の文字列と過去に処理して辞書に登録され
ている文字列とを比較し、両者が一致しないときにはそ
の文字列を辞書に逐次登録する一方、両者が一致すると
きにはその入力した文字列に対応する圧縮コードを出力
するデータ圧縮方法であって、前記辞書に登録される文
字列は、この文字列を構成する各文字をノードとする木
からなり、この木の各ノードには、各文字を表す文字デ
ータと、各ノードが参照する子ノードアドレスおよび兄
弟ノードアドレスのうちの少なくとも1つのアドレスと
が付されるものとし、前記文字データと、前記子ノード
アドレス、前記兄弟ノードアドレス及び文字の属するノ
ードが末っ子ノードであることを示すフラグ情報のうち
の少なくとも1つと、からなるデータを前記辞書に順次
登録していき、新たな文字データを前記辞書に上書きす
る際には、専用の検索手段を使用して前記子ノードアド
レスが書き込まれていない辞書のアドレスを所定のアド
レスから順次検索し、そのアドレスの2回目以降の検索
は、前回に検索されたアドレスの次のアドレスから順次
検索を開始するようにしたものである。
【0013】請求項2に記載の発明は、請求項1に記載
のデータ圧縮方法において、前記文字データの上書きに
応じて他のノードが持つ情報を変更する際には、前記検
索手段で、前記末っ子ノードを検索するために、前記フ
ラグ情報が書き込まれている辞書のアドレスを順次検索
し、その後、1つ上の兄のノードを検索する際には、こ
の検索対象の兄弟ノードが書き込まれている辞書のアド
レスを順次検索するようにしたものである。
【0014】請求項3に記載の発明は、入力した現在の
文字列と過去に処理して辞書に登録されている文字列と
を比較し、両者が一致しないときにはその文字列を辞書
に逐次登録する一方、両者が一致するときにはその入力
した文字列に対応する圧縮コードを出力するデータ圧縮
方法であって、前記辞書に登録される文字列は、この文
字列を構成する各文字をノードとする木からなり、この
木の各ノードには、各文字を表す文字データと、各ノー
ドが参照する子ノードアドレスおよび兄弟ノードアドレ
スのうちの少なくとも1つのアドレスとが付されるもの
とし、前記辞書として、独立に動作する少なくとも2つ
のメモリを準備しておき、前記各メモリの同一のアドレ
スには、前記文字データと、前記子ノードアドレスと、
前記兄弟ノードアドレスと、文字の属するノードが末っ
子ノードであることを示すフラグ情報とをそれぞれ分割
して格納していき、新たな文字データを前記辞書に上書
きする際には、前記子ノードアドレスが格納されるメモ
リのみを動作させ、前記子ノードアドレスが書き込まれ
ていないアドレスを、その動作中のメモリの所定のアド
レスから順次検索するようにしたものである。
【0015】請求項4に記載の発明は、請求項3に記載
のデータ圧縮方法において、さらに、前記文字データが
格納されるメモリが最大登録数に達したときには、前記
子ノードアドレスが格納されるメモリの検索の他に、前
記兄弟ノードアドレスが格納されるメモリ、および前記
フラグ情報が格納されるメモリのうちの少なくとも1つ
を必要に応じて動作させ、所定の条件を満たすアドレス
を、その動作中のメモリの所定のアドレスから順次検索
するようにしたものである。
【0016】請求項5に記載の発明は、請求項3または
請求項4に記載のデータ圧縮方法において、前記アドレ
スの2回目以降の検索は、前回に検索されたアドレスの
次のアドレスから開始するようにしたものである。請求
項6に記載の発明は、入力した現在の文字列と過去に処
理して辞書に登録されている文字列とを比較し、両者が
一致しないときにはその文字列を辞書に逐次登録する一
方、両者が一致するときにはその入力した文字列に対応
する圧縮コードを出力するデータ圧縮装置であって、前
記辞書に登録される文字列は、この文字列を構成する各
文字をノードとする木からなり、この木の各ノードに
は、各文字を表す文字データと、各ノードが参照する子
ノードアドレスおよび兄弟ノードアドレスのうちの少な
くとも1つのアドレスが付されるものとし、前記文字デ
ータと、前記子ノードアドレス、前記兄弟ノードアドレ
ス及び文字の属するノードが末っ子ノードであることを
示すフラグ情報のうちの少なくとも1つと、からなるデ
ータを格納する辞書用メモリと、新たな文字データを前
記辞書に上書きする際に、前記子ノードアドレスが書き
込まれていない辞書用メモリのアドレスを所定のアドレ
スから順次検索するようにし、そのアドレスの2回目以
降の検索は、前回に検索されたアドレスの次のアドレス
から開始する検索手段と、を備えたものである。
【0017】請求項7に記載の発明は、請求項6に記載
のデータ圧縮装置において、前記検索手段は、前記子ノ
ードアドレスの検索の他に、前記末っ子ノードを検索す
る場合には前記フラグ情報が書き込まれている前記辞書
用メモリのアドレス、および前記兄弟ノードを検索する
場合には検索対象の兄弟アドレスが書き込まれている辞
書用メモリのアドレスのうちの少なくとも1つを、所定
のアドレスから順次検索するようにしたものである。
【0018】請求項8に記載の発明は、入力した現在の
文字列と過去に処理して辞書に登録されている文字列と
を比較し、両者が一致しないときにはその文字列を辞書
に逐次登録する一方、両者が一致するときにはその入力
した文字列に対応する圧縮コードを出力するデータ圧縮
装置であって、前記辞書に登録される文字列は、この文
字列を構成する各文字をノードとする木からなり、この
木の各ノードには、各文字を表す文字データと、各ノー
ドが参照する子ノードアドレスおよび兄弟ノードアドレ
スのうちの少なくとも1つのアドレスが付されるものと
し、前記各文字データと、前記子ノードアドレスと、前
記兄弟ノードアドレスと、文字の属するノードが末っ子
ノードであることを示すフラグ情報とをそれぞれ分割し
て格納する、独立して動作する少なくとも2つのメモリ
からなる辞書用メモリを備えたものである。
【0019】請求項9に記載の発明は、請求項8に記載
のデータ圧縮装置において、さらに、前記文字データが
格納されるメモリが最大登録数に達したか否かを判定す
る判定手段と、この判定手段が最大登録数に達したと判
定したときには、新たな文字データを上書きするため
に、前記子ノードアドレスが格納されているメモリのみ
を動作させ、前記子ノードアドレスが書き込まれていな
いアドレスを、その動作中のメモリの所定のアドレスか
ら順次検索する検索手段とを備えるようにしたものであ
る。
【0020】請求項10に記載の発明は、請求項9に記
載のデータ圧縮装置において、前記検索手段は、前記子
ノードアドレスの検索の他に、必要に応じて末っ子ノー
ドを検出する場合にはフラグ情報と兄弟ノードが格納さ
れているメモリのみ動作させ、兄弟ノードを検索する場
合には前記兄弟ノードのみが格納されているメモリのみ
を動作させ、所定のアドレスから順次検索するようにし
たものである。
【0021】請求項11に記載の発明は、請求項9また
は請求項10に記載のデータ圧縮装置において、前記検
索手段は、2回目以降のアドレスの検索を行う場合に
は、前回に検索されたアドレスの次のアドレスから開始
するようにしたことを特徴とするものである。
【0022】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しつつ説明する。図1は、本発明のデー
タ圧縮装置の実施形態の構成を示すブロック図である。
図2は、図1に示す記憶装置の構成を示す図である。図
3は、そのデータ圧縮装置のデータ圧縮処理の概要を示
すフローチャートである。
【0023】本発明にかかるデータ圧縮装置は、図1に
示すように、入力部1と、CPU2と、ROM3と、記
憶装置4と、出力部5と、検索回路6とを備えている。
入力部1は、例えばデータ圧縮の対象となる文字列を入
力バッファ(図示せず)で受け取り、この受け取った文
字列をCPU2に出力するように構成されている。
【0024】CPU2は、ROM3に予め記憶されてい
るプログラムにしたがって、各種のの動作を行う。この
各種の動作としては、各部の動作の制御や、図3を参照
して後述するデータ圧縮処理などがある。ROM3は、
不揮発性のメモリからなり、CPU2の動作プログラム
や後述のデータ圧縮の手順などがあらかじめ記憶されて
いる。
【0025】記憶装置4は、読み書き可能なメモリから
なり、各種の処理を行うために使用するワークメモリ4
Aと、データ圧縮の際に後述のように作成される辞書を
構築する辞書用メモリ4Bとを少なくとも備えている。
出力部5は、データ圧縮時にCPU2から圧縮コードを
出力バッファ(図示せず)で受け取り、この受け取った
圧縮コードを外部に出力するように構成されている。
【0026】検索回路6は、CPU2からの指示される
条件に基づいて後述の子ノード参照用メモリ42、兄弟
ノード参照用メモリ43、フラグ用メモリ44を独立に
動作させ、指定された検索位置から順次検索し、指定さ
れた条件を満たすアドレスをCPU2に通知するように
構成されている。
【0027】次に、辞書用メモリ4Bの詳細な構成の一
例について、図2を参照して説明する。この辞書用メモ
リ4Bは、図2に示すように、文字を表す文字データを
格納する文字データメモリ41と、このメモリ41に格
納される文字データに関連する子ノードのアドレスを格
納する子ノード参照用メモリ42と、メモリ41に格納
される文字データに関連する兄弟ノードのアドレスを格
納する兄弟ノード参照用メモリ43と、メモリ41に格
納される文字の属するノードが末っ子ノードか否かを示
すフラグを格納するフラグ用メモリ44とから構成され
ている。
【0028】これらのメモリ41〜44は、独立に電力
が供給されて独立に動作するように構成されるが、子ノ
ード参照メモリ42と、他のメモリ41、43、44と
が独立に電力が供給されて独立に動作するように構成し
ても良い。また、各メモリ41〜44への電力の供給量
を、後述のようにCPU2が制御できるように構成され
ている。
【0029】なお、フラグ用メモリ44は、上記のよう
に独立して設ける必要はなく、例えば兄弟ノード参照用
メモリ43のビット幅を1ビットだけ増やし、そこにフ
ラグを埋め込み、それ全体を兄弟ノードとして使用する
ようにしても良い。このようにすると、圧縮処理が効率
良く行える。また、フラグに相当するデータを兄弟ノー
ドの先頭(MSB)に置くと、兄弟ノードの正負を見る
だけで簡単にフラグが立っているか否かが分かると同時
に兄弟ノードの情報も獲得できる。
【0030】次に、このように構成されるデータ圧縮装
置によるデータ圧縮処理の概要について、図3のフロー
チャートを参照して説明する。まず、データが存在する
か否かが判定され(ステップS1)、この判定の結果、
データが存在する場合には、データ圧縮の対象となるデ
ータとして文字が入力される(ステップS2)。
【0031】次に、この入力した文字を含む文字列が、
過去に入力されて辞書用メモリ4Bに格納されている文
字列と一致するか否かが判定され(ステップS3)、両
者が一致する場合には、ステップS2に戻り次の文字が
入力される。一方、上記の判定の結果、両者が一致しな
い場合には、文字データを格納する辞書用メモリ4Bの
格納位置を示すための変数C1が示す格納位置に、その
文字データを書き込む(ステップS4)。
【0032】次いで、ステップS5では、その書き込ん
だ文字データに関連する親/兄弟ノードの情報を変更す
る。この変更の一例を示すと、図4に示すようになる。
図4の上側は、文字列「AB」、「AC」を表す木に文
字「D」が追加され、新たな文字列「AD」が追加され
る状況を示している。また、図4の下側は、上記の更新
に対応する辞書用メモリ4B内のコンテキストの変化を
示している。すなわち、文字「D」が追加されると、文
字「C」にかかる親/兄弟ノードのインデックスは、図
4に示すように「&A」から「&D」に変更されるとと
もに末端のノードであることを示すフラグの「1」がな
くなる。文字「D」は、図4に示すように文字「C」が
格納される次のアドレスに格納されるとともに、文字
「D」には、親/兄弟ノードのインデックスとして「&
A」が付加されるとともに、末端のノードであることを
示すフラグ「1」が付加される。ここで、「&A」は文
字「A」の格納されているメモリアドレスを表し、「&
D」は文字「D」の格納されているメモリアドレスを表
す。
【0033】次に、次に入力されるデータを格納する辞
書用メモリ4Bの格納位置(C1)を決定する(ステッ
プS6)。次いで、現在入力された文字の1つ前までに
マッチした文字列に相当する圧縮コードを出力する(ス
テップS7)。次に、この実施形態にかかるデータ圧縮
装置のデータ圧縮処理の具体例について、図5〜図9を
参照して説明する。
【0034】ここでは、「ABACABD」という文字
列が入力されて、データ圧縮処理される場合について説
明する。データ圧縮処理の開始時には、文字「A」、
「B」、「C」を含む文字列の先頭の文字は予約語とし
て文字データメモリ41に予め格納されており、この説
明に関連する文字「A」〜「C」は、図6の(1)に示
すように、例えばアドレス「68」〜「70」に図5に
示すような親ノードとしてそれぞれ予め格納されてい
る。
【0035】いま、図5に示すように、1番目の文字
「A」が入力された場合には、今回の文字「A」は最初
の文字であって文字列は作成されず、圧縮コードは出力
されない。ここで、図5に示すように、この説明に関連
し親ノードにかかる文字「A」、「B」、「C」に続く
括弧中の数字は、圧縮コードを意味し、同時に、格納位
置(アドレス)を意味する。
【0036】次に、図5に示すように、2番目の文字
「B」が入力されると、前回に入力された文字「A」に
今回の文字「B」が接続されている。このため、図5に
示すように、文字「A」が付されたノードと新たな文字
「B」が付されたノードとを線分で結んで新たな木を作
り、「AB」という文字列を作成する。
【0037】この文字列「AB」を辞書用メモリ4Bに
実現するために、図6の(1)に示すように、今回入力
された文字「B」を文字データメモリ41の259番地
に格納する。また、その文字「B」と接続する文字
「A」の格納位置を示す「68」を子ノード参照用メモ
リ42の259番地に格納する。ここで、文字「B」に
かかるノードは、図5に示すように、末端のノードであ
るので、その旨を示すフラグ「1」をメモリ44の25
9番地に格納する。さらに、子ノード参照用メモリ42
の68番地に「259」を格納する。
【0038】このように2番目の文字「B」が入力され
たときには、前回に入力された文字「A」を示す「6
8」という圧縮コードが出力される(図9参照)。次
に、図5に示すように、3番目の文字「A」が入力され
ると、前回に入力された文字「B」に、今回に入力され
た文字「A」が接続する「BA」という文字列は今まで
になかったので、新たに辞書を作成する。すなわち、図
5に示すように、文字「B」が付されたノードと今回の
文字「A」が付されたノードとを線分で結んで新たな木
を作り、「BA」という文字列を作成する。
【0039】この文字列「BA」を辞書用メモリ4Bに
実現するために、図7の(3)に示すように、今回入力
された文字「A」を文字データメモリ41の260番地
に格納する。また、その文字「A」と接続する文字
「B」の格納位置を示す「69」をメモリ43の260
番地に格納する。ここで、文字「A」にかかるノード
は、図5に示すように、末端のノードであるので、その
旨を示すフラグ「1」をフラグ用メモリ44の260番
地に格納する。さらに、子ノード参照用メモリ42の6
9番地に「260」を格納する。
【0040】このように3番目の文字「A」が入力され
たときには、前回に入力された文字「B」を示す「6
9」という圧縮コードを出力する(図9参照)。次に、
4番目の文字「C」が入力されると、前回入力された文
字「A」で、今回に入力された文字が「C」である。従
って、新たに「AC」という文字列を入力したことにな
る。なお、ノード構成として「C」は「B」に接続され
る。
【0041】これを辞書用メモリ4Bに実現するため
に、図7の(4)に示すように、今回入力された文字
「C」を文字データメモリ41の261番地に格納す
る。また、文字「C」と接続する文字「A」の格納位置
を示す「68」を兄弟ノード参照用メモリ43の261
番地に格納するとともに、兄弟ノード参照用メモリ43
の259番地の格納内容を「261」の書き換える。こ
こで、文字「C」にかかるノードは、図5に示すよう
に、末端のノードであるので、その旨を示すフラグ
「1」をフラグ用メモリ44の261番地に格納する。
【0042】このように4番目の文字「C」が入力され
たときには、前回に入力された文字「A」を示す「6
8」という圧縮コードを出力する(図9参照)。次に、
図5に示すように、5番目の文字「A」が入力される
と、前回に入力された文字「C」に、今回入力された文
字「A」が接続する「CA」という文字列は今までに無
かったので、新たに辞書を作成する。すなわち、図5に
示すように、文字「C」が付されたノードと今回の文字
「A」が付されたノードとを線分で結んで新たな木を作
り、「CA」という文字列を作成する。
【0043】この文字列「CA」を辞書用メモリ4Bに
実現するために、図8の(5)に示すように、今回入力
された文字「A」を文字データメモリ41の262番地
に格納する。また、その文字「A」と接続する文字
「C」の格納位置を示す「70」を兄弟ノード参照用メ
モリ43の262番地に格納する。ここで、文字「A」
にかかるノードは、図5に示すように、末端のノードで
あるので、その旨を示すフラグ「1」をフラグ用メモリ
44の262番地に格納する。さらに、子ノード参照用
メモリ42の70番地に「262」を格納する。
【0044】このように5番目の文字「A」が入力され
たときには、前回に入力された文字「C」を示す「7
0」という圧縮コードを出力する(図9参照)。次に、
図5に示すように、6番目の文字「B」が入力される
と、前回に入力された文字「A」に、今回に入力された
文字「A」が接続する「AB」という文字列を得るが、
この文字列「AB」は既に辞書用メモリ4Bに登録され
ている。このため、辞書用メモリ4Bの更新は行われな
いとともに、圧縮コードの出力も行われない。従って、
辞書用メモリ4Bの内容は変更されずに図8の(5)の
ままとなる。
【0045】次に、図5に示すように、7番目の文字
「D」が入力されると、この文字「D」を含む文字列
「ABD」は、辞書中に存在しないので、新たに辞書を
作成する。すなわち、図5に示すように、文字「B」が
付されたノードと今回の文字「D」が付されたノードと
を線分で結んで新たな木を作り、「ABD」という文字
列を作成する。
【0046】この文字列「ABD」を辞書用メモリ4B
に実現するために、図8の(6)に示すように、今回入
力された文字「D」を文字データメモリ41の263番
地に格納する。また、その文字「D」と接続する文字
「B」の格納位置を示す「259」をメモリ43の26
3番地に格納する。さらに、メモリ42の259番地を
「263」に書き換える。ここで、文字「D」にかかる
ノードは、図5に示すように、末端のノードであるの
で、その旨を示すフラグ「1」をフラグ用メモリ44の
263番地に格納する。
【0047】このように7番目の文字「D」が入力され
たときには、それまで一致していた文字列「AB」を表
す圧縮コードを出力する(図9参照)。このように「2
59」という圧縮コードを出力することにより、「A
B」という2文字が1文字用のコードとなっているの
で、データ圧縮されたことになる。
【0048】このように、文字列「ABACABD」が
入力された場合のデータの圧縮動作をまとめると、図9
に示すようになる。このようなデータ圧縮処理が行われ
ている期間中には、検索回路6は、CPU2からの指示
条件に基づいて子ノード参照用メモリ42、兄弟ノード
参照用メモリ43、フラグ用メモリ44を独立に動作さ
せ、指定された検索開始位置から順次検索し、指定され
た条件を満たすアドレスをCPU2に通知するので、以
下にその動作の一例について説明する。
【0049】例えば、判定手段としてのCPU2は、辞
書用メモリ4Bのうちの文字データメモリ41に格納さ
れるべき文字データがその最大登録数に達したか否かを
判定する。この判定は、所定のタイミング毎に行う。そ
して、CPU2が最大登録数に達したと判定すると、C
PU2はその旨を検索回路6に通知する。
【0050】この通知を受けた検索回路6は、新たな文
字データを文字データメモリ41に上書きするために、
その上書きが可能なアドレスの検索を行う。この検索回
路6による検索は、CPU2の制御により辞書メモリ4
Bのうちの子ノード参照用メモリ42のみを動作させて
行う。
【0051】すなわち、検索回路6は、子ノード参照用
メモリ42の先頭のアドレス(この例では、259番
地)から順次検索することにより、子ノードのアドレス
が格納されていない空きのアドレスを検索する。そし
て、その空きのアドレスが検索されると、検索回路6
は、その検索した空きのアドレスをCPU2に通知す
る。
【0052】なお、上記の検索期間中には、辞書メモリ
4Bのうちの他のメモリ41、43、44は動作させず
に、格納内容が消去されない程度に電力を供給するよう
にし、この制御はCPU2が行う。CPU2は、入力さ
れた文字により上述のように必要に応じて辞書を更新す
るが、この場合には、その検索されたアドレスに基づ
き、文字データメモリ41のアドレスのうちその検索さ
れたアドレスと同一のアドレスに、上記のようにその文
字データを書き込む。
【0053】さらに、その文字データの上書きに応じて
他のノードが持つ情報を変更する場合には、検索回路6
は、CPU2からの指示に基づいて以下の述べるような
動作を行う。すなわち、検索回路6は、末っ子ノードを
検索するために、フラグ用メモリ44と兄弟ノード参照
用メモリ43を動作させてフラグ情報の「1」が書き込
まれているフラグ用メモリ44のアドレスを順次検索す
る。その後、1つ上の兄弟ノードを検索する際には、兄
弟ノード参照用メモリ43のみを動作させてこの検索対
象の兄弟ノードアドレスが書き込まれている兄弟ノード
参照用メモリ43のアドレスを順次検索する。
【0054】なお、上記の検索期間中には、辞書メモリ
4Bのうちの検索に不要なメモリは動作させずに、格納
内容が消去されない程度に電力を供給するようにし、こ
の制御はCPU2が行う。その後、CPU2の指示によ
り、検索回路6は、再び上書きが可能なアドレスの検索
を子ノード参照用メモリ42のみを動作させて行う。し
かし、検索回路6による2回目以降のアドレスの検索
は、子ノード参照用メモリ42の先頭のアドレスからで
はなく、前回に検索されたアドレスの次のアドレスから
開始する。
【0055】さらに、検索回路6は、上述のように上書
きに応じて他のノードが持つ情報を変更する場合に再び
検索を行うが、この検索は上書きするノードのアドレス
を基に開始する。次に、このように圧縮されたデータを
解凍する場合の動作について、図10を参照して簡単に
説明する。
【0056】解凍の場合には、圧縮の場合と同様に辞書
の作成から開始される。従って、予めメモリには予約語
が格納されており、圧縮コードが入力されると、この入
力された圧縮コードに基づいて以下のように辞書を更新
/作成していく。ここでは、上記の圧縮によって出力さ
れた圧縮コードは、「68」「69」「68」「70」
「259」(A、B、A、C、AB)であり、この圧縮
コードが入力された場合について説明する。
【0057】いま、1番目の圧縮コード「68」が入力
されると、図10に示すように、文字列を示す木は、文
字「A」が付与された親ノードと、文字「B」が付与さ
れた親ノードと、文字「C」が付与された親ノードとか
らなる。このように圧縮コード「68」が入力されとき
には、圧縮コード「68」が文字「A」に展開される。
【0058】次に、2番目の圧縮コード「69」が入力
されると、前回に入力された文字「A」に接続する形で
辞書を更新する。このときには、「69」という圧縮コ
ードが文字「B」に展開される。次いで、3番目の圧縮
コード「68」が入力されると、前回に入力された文字
「B」に接続する形で辞書を更新する。このときには、
「68」という圧縮コードが文字「A」に展開される。
【0059】引き続き、4番目の圧縮コード「70」が
入力されると、前回に入力された文字「B」に接続する
形で辞書を更新する。このときには、「70」という圧
縮コードが文字「C」に展開される。次に、5番目の圧
縮コード「259」が入力されると、今まで作成した辞
書の内部を覗くと、それが文字列「AB」を示すことが
わかるので、受信した「259」というコードを文字列
「AB」に展開する。この部分が圧縮コードの実際の解
凍になる。
【0060】ここで、上述のように圧縮コードを文字に
展開する場合には、検索回路6は、親ノード/末っ子ノ
ードを展開するために、フラグ情報の「1」が書き込ま
れているフラグ用メモリ44のアドレスを順次検索して
いく。以上説明したように、この実施形態では、辞書用
メモリ4Bを、独立に動作する4つのメモリ41〜43
により構成するとともに、例えば、文字データが格納さ
れるメモリ41が最大登録数に達したときには、新たな
文字データを上書きするために、子ノードアドレスが格
納されるメモリ42のみを動作させ、子ノードアドレス
が書き込まれていないアドレスを、その動作中のメモリ
42の先頭アドレスから順次検索するようにし、かつ、
そのアドレスの2回目以降の検索は、前回に検出された
アドレスの次のアドレスから開始するようにした。
【0061】また、この実施形態では、その上書きに応
じて他のノードが持つ情報を変更する場合には、末っ子
ノードを検索するために、フラグ用メモリ44と兄弟ノ
ード参照用メモリ43を動作させてフラグ情報の「1」
が書き込まれているフラグ用メモリ44のアドレスを順
次検索し、その後、1つ上の兄のノードを検索する際
に、兄弟ノード参照用メモリ43のみを動作させてこの
検索対象の兄弟ノードアドレスが書き込まれている兄弟
ノード参照用メモリ43のアドレスを順次検索するよう
にした。
【0062】このため、辞書メモリ4Bに新たな情報の
上書きが必要な際に、その上書きが可能な位置などを迅
速に検索してリアルタイム処理が可能になって入力部1
などに必要なバッファの容量を削減できる上に、辞書用
メモリ4Bの消費電力の節減を図ることができる。
【0063】さらに、この実施形態では、文字データな
どを辞書メモリ4Bに順次記憶させていくようにしたの
で、例えばハッシュ法により文字データなどをランダム
に記憶する場合に比べて辞書メモリ4Bの記憶容量を削
減できる。
【0064】
【発明の効果】以上説明したように、請求項1および請
求項6にかかる発明では、辞書に文字データなどを順次
格納するとともに、文字データを上書きするときには、
その上書き可能な位置を専用の検索手段で検索するよう
にした。このため、例えばハッシュ法により辞書に文字
データなどを記憶する場合に比べて辞書の容量を削減で
きる上に、辞書に新たな情報を上書きする際に、その上
書きが可能な位置を迅速に検索してリアルタイム処理が
可能になる。
【0065】また、請求項2および請求項7にかかる発
明では、上記の効果に加えて、上書きに応じて他のノー
ドが持つ情報を変更する際には、その必要な情報を迅速
に検索できる。さらに、請求項8にかかる発明では、辞
書を独立に動作する少なくとも2つのメモリから構成す
るようにし、各メモリに文字データや子ノードアドレス
を格納するようにしたので、文字データの上書きに際し
て辞書を検索する場合に、そのうちの必要なメモリのみ
が使用可能となり、もって、辞書を構成するメモリの消
費電力の節減を図ることが可能となる。
【0066】また、請求項3および請求項9にかかる発
明では、辞書を独立に動作する少なくとも2つのメモリ
とし、文字データを上書きするときに、必要なメモリの
みを動作させてその上書きが可能な位置を検索するよう
にしたので、辞書を構成するメモリの消費電力の節減を
図ることができる。
【0067】さらに、請求項4および請求項10にかか
る発明では、上記の効果に加えて、上書きに応じて他の
ノードが持つ情報を変更する際には、その必要な情報を
迅速に検索できる。また、請求項5および請求項11に
かかる発明では、上書きの位置などを検索する際に、2
回目以降の検索は、前回に検索されたアドレスの次のア
ドレスから開始するようにしたので、メモリに新たな情
報など上書きする際に、その可能な位置を迅速に検索し
てリアルタイム処理が可能になる上に、メモリの消費電
力の節減を図ることができる。
【図面の簡単な説明】
【図1】本発明のデータ圧縮装置の実施形態の構成を示
すブロック図である。
【図2】図1に示す記憶装置の構成の詳細を示す図であ
る。
【図3】図のデータ圧縮装置のデータ圧縮処理の概要を
示すフローチャートである。
【図4】文字列の更新状況を説明する図である。
【図5】入力文字と、この入力文字に応じた文字列の変
遷を示す図である。
【図6】図5に対応する辞書用メモリの内容に変遷を示
す図である。
【図7】同じく辞書用メモリの内容の変遷を示す図であ
る。
【図8】同じく辞書用メモリの内容の変遷を示す図であ
る。
【図9】データ圧縮動作の説明をまとめた図である。
【図10】解凍動作を説明する図である。
【図11】従来技術を説明する図である。
【符号の説明】
1 入力部 2 CPU 3 ROM 4 記憶装置 4B 辞書用メモリ 5 出力部 6 検索回路 41 文字データメモリ 42 子ノード参照用メモリ 43 兄弟ノード参照用メモリ 44 フラグ用メモリ
フロントページの続き (72)発明者 宇佐美 正志 神奈川県厚木市棚沢221番地 旭化成工業 株式会社内 Fターム(参考) 5B009 ME06 SA08 VC01 5J064 AA03 BA11 BC01 BC14 BC29 BD03

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 入力した現在の文字列と過去に処理して
    辞書に登録されている文字列とを比較し、両者が一致し
    ないときにはその文字列を辞書に逐次登録する一方、両
    者が一致するときにはその入力した文字列に対応する圧
    縮コードを出力するデータ圧縮方法であって、 前記辞書に登録される文字列は、この文字列を構成する
    各文字をノードとする木からなり、この木の各ノードに
    は、各文字を表す文字データと、各ノードが参照する子
    ノードアドレスおよび兄弟ノードアドレスのうちの少な
    くとも1つのアドレスとが付されるものとし、 前記文字データと、前記子ノードアドレス、前記兄弟ノ
    ードアドレス及び文字の属するノードが末っ子ノードで
    あることを示すフラグ情報のうちの少なくとも1つと、
    からなるデータを前記辞書に順次登録していき、 新たな文字データを前記辞書に上書きする際には、専用
    の検索手段を使用して前記子ノードアドレスが書き込ま
    れていない辞書のアドレスを所定のアドレスから順次検
    索し、 そのアドレスの2回目以降の検索は、前回に検索された
    アドレスの次のアドレスから順次検索を開始するように
    したことを特徴とするデータ圧縮方法。
  2. 【請求項2】 前記文字データの上書きに応じて他のノ
    ードが持つ情報を変更する際には、前記検索手段で、前
    記末っ子ノードを検索するために、前記フラグ情報が書
    き込まれている辞書のアドレスを順次検索し、その後、
    1つ上の兄のノードを検索する際には、この検索対象の
    兄弟ノードが書き込まれている辞書のアドレスを順次検
    索するようにしたことを特徴とする請求項1に記載のデ
    ータ圧縮方法。
  3. 【請求項3】 入力した現在の文字列と過去に処理して
    辞書に登録されている文字列とを比較し、両者が一致し
    ないときにはその文字列を辞書に逐次登録する一方、両
    者が一致するときにはその入力した文字列に対応する圧
    縮コードを出力するデータ圧縮方法であって、 前記辞書に登録される文字列は、この文字列を構成する
    各文字をノードとする木からなり、この木の各ノードに
    は、各文字を表す文字データと、各ノードが参照する子
    ノードアドレスおよび兄弟ノードアドレスのうちの少な
    くとも1つのアドレスとが付されるものとし、 前記辞書として、独立に動作する少なくとも2つのメモ
    リを準備しておき、 前記各メモリの同一のアドレスには、前記文字データ
    と、前記子ノードアドレスと、前記兄弟ノードアドレス
    と、文字の属するノードが末っ子ノードであることを示
    すフラグ情報とをそれぞれ分割して格納していき、 新たな文字データを前記辞書に上書きする際には、前記
    子ノードアドレスが格納されるメモリのみを動作させ、
    前記子ノードアドレスが書き込まれていないアドレス
    を、その動作中のメモリの所定のアドレスから順次検索
    するようにしたことを特徴とするデータ圧縮方法。
  4. 【請求項4】 さらに、前記文字データが格納されるメ
    モリが最大登録数に達したときには、前記子ノードアド
    レスが格納されるメモリの検索の他に、前記兄弟ノード
    アドレスが格納されるメモリ、および前記フラグ情報が
    格納されるメモリのうちの少なくとも1つを必要に応じ
    て動作させ、所定の条件を満たすアドレスを、その動作
    中のメモリの所定のアドレスから順次検索するようにし
    たことを特徴とする請求項3に記載のデータ圧縮方法。
  5. 【請求項5】 前記アドレスの2回目以降の検索は、前
    回に検索されたアドレスの次のアドレスから開始するよ
    うにしたことを特徴とする請求項3または請求項4に記
    載のデータ圧縮方法。
  6. 【請求項6】 入力した現在の文字列と過去に処理して
    辞書に登録されている文字列とを比較し、両者が一致し
    ないときにはその文字列を辞書に逐次登録する一方、両
    者が一致するときにはその入力した文字列に対応する圧
    縮コードを出力するデータ圧縮装置であって、 前記辞書に登録される文字列は、この文字列を構成する
    各文字をノードとする木からなり、この木の各ノードに
    は、各文字を表す文字データと、各ノードが参照する子
    ノードアドレスおよび兄弟ノードアドレスのうちの少な
    くとも1つのアドレスが付されるものとし、 前記文字データと、前記子ノードアドレス、前記兄弟ノ
    ードアドレス及び文字の属するノードが末っ子ノードで
    あることを示すフラグ情報のうちの少なくとも1つと、
    からなるデータを格納する辞書用メモリと、 新たな文字データを前記辞書に上書きする際に、前記子
    ノードアドレスが書き込まれていない辞書用メモリのア
    ドレスを所定のアドレスから順次検索するようにし、そ
    のアドレスの2回目以降の検索は、前回に検索されたア
    ドレスの次のアドレスから開始する検索手段と、 を備えたことを特徴とするデータ圧縮装置。
  7. 【請求項7】 前記検索手段は、前記子ノードアドレス
    の検索の他に、前記末っ子ノードを検索する場合には前
    記フラグ情報が書き込まれている前記辞書用メモリのア
    ドレス、および前記兄弟ノードを検索する場合には検索
    対象の兄弟アドレスが書き込まれている辞書用メモリの
    アドレスのうちの少なくとも1つを、所定のアドレスか
    ら順次検索することを特徴とする請求項6に記載のデー
    タ圧縮装置。
  8. 【請求項8】 入力した現在の文字列と過去に処理して
    辞書に登録されている文字列とを比較し、両者が一致し
    ないときにはその文字列を辞書に逐次登録する一方、両
    者が一致するときにはその入力した文字列に対応する圧
    縮コードを出力するデータ圧縮装置であって、 前記辞書に登録される文字列は、この文字列を構成する
    各文字をノードとする木からなり、この木の各ノードに
    は、各文字を表す文字データと、各ノードが参照する子
    ノードアドレスおよび兄弟ノードアドレスのうちの少な
    くとも1つのアドレスが付されるものとし、 前記各文字データと、前記子ノードアドレスと、前記兄
    弟ノードアドレスと、文字の属するノードが末っ子ノー
    ドであることを示すフラグ情報とをそれぞれ分割して格
    納する、独立して動作する少なくとも2つのメモリから
    なる辞書用メモリを備えたことを特徴とするデータ圧縮
    装置。
  9. 【請求項9】 さらに、前記文字データが格納されるメ
    モリが最大登録数に達したか否かを判定する判定手段
    と、 この判定手段が最大登録数に達したと判定したときに
    は、新たな文字データを上書きするために、前記子ノー
    ドアドレスが格納されているメモリのみを動作させ、前
    記子ノードアドレスが書き込まれていないアドレスを、
    その動作中のメモリの所定のアドレスから順次検索する
    検索手段と、 を備えたことを特徴とする請求項8に記載のデータ圧縮
    装置。
  10. 【請求項10】 前記検索手段は、前記子ノードアドレ
    スの検索の他に、必要に応じて末っ子ノードを検出する
    場合にはフラグ情報と兄弟ノードが格納されているメモ
    リのみ動作させ、兄弟ノードを検索する場合には前記兄
    弟ノードのみが格納されているメモリのみを動作させ、
    所定のアドレスから順次検索することを特徴とする請求
    項9に記載のデータ圧縮装置。
  11. 【請求項11】 前記検索手段は、2回目以降のアドレ
    スの検索を行う場合には、前回に検索されたアドレスの
    次のアドレスから開始するようにしたことを特徴とする
    請求項9または請求項10に記載のデータ圧縮装置。
JP10315116A 1998-11-05 1998-11-05 データ圧縮方法およびデータ圧縮装置 Withdrawn JP2000151419A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10315116A JP2000151419A (ja) 1998-11-05 1998-11-05 データ圧縮方法およびデータ圧縮装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10315116A JP2000151419A (ja) 1998-11-05 1998-11-05 データ圧縮方法およびデータ圧縮装置

Publications (1)

Publication Number Publication Date
JP2000151419A true JP2000151419A (ja) 2000-05-30

Family

ID=18061611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10315116A Withdrawn JP2000151419A (ja) 1998-11-05 1998-11-05 データ圧縮方法およびデータ圧縮装置

Country Status (1)

Country Link
JP (1) JP2000151419A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139441A (ja) * 2004-11-11 2006-06-01 Hitachi Systems & Services Ltd 文書変換のための規則定義付け装置
WO2008087750A1 (ja) * 2007-01-19 2008-07-24 Mitsubishi Electric Corporation テーブル装置、可変長符号化装置、可変長復号装置及び可変長符号化復号装置
JP2014011538A (ja) * 2012-06-28 2014-01-20 Fujitsu Ltd 符号処理のためのプログラム及びデータ構造
CN111309851A (zh) * 2020-02-13 2020-06-19 北京金山安全软件有限公司 一种实体词存储方法、装置及电子设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139441A (ja) * 2004-11-11 2006-06-01 Hitachi Systems & Services Ltd 文書変換のための規則定義付け装置
WO2008087750A1 (ja) * 2007-01-19 2008-07-24 Mitsubishi Electric Corporation テーブル装置、可変長符号化装置、可変長復号装置及び可変長符号化復号装置
US8291150B2 (en) 2007-01-19 2012-10-16 Mitsubishi Electric Corporation Table device, variable length coding apparatus, variable length decoding apparatus, and variable length coding and decoding apparatus
JP2014011538A (ja) * 2012-06-28 2014-01-20 Fujitsu Ltd 符号処理のためのプログラム及びデータ構造
CN103532565A (zh) * 2012-06-28 2014-01-22 富士通株式会社 码处理技术
CN103532565B (zh) * 2012-06-28 2016-12-28 富士通株式会社 码处理技术
CN111309851A (zh) * 2020-02-13 2020-06-19 北京金山安全软件有限公司 一种实体词存储方法、装置及电子设备
CN111309851B (zh) * 2020-02-13 2023-09-19 北京金山安全软件有限公司 一种实体词存储方法、装置及电子设备

Similar Documents

Publication Publication Date Title
JP3309028B2 (ja) 連想記憶メモリ内の複数辞書管理を改良したlempel−zivデータ圧縮のための装置、及び方法
KR100490240B1 (ko) 데이타압축장치,데이타복원장치,데이타압축방법,데이타복원방법및프로그램기록매체
US20050171943A1 (en) Method and system for retrieving a data pattern
JP2000151419A (ja) データ圧縮方法およびデータ圧縮装置
JP2018061166A (ja) 符号化プログラム、符号化装置および符号化方法
JP2005501445A (ja) 文字テーブルによって実施されるデータ圧縮の方法および装置
US20070005921A1 (en) Segmentation management using a rolling window technique
JPH0936747A (ja) データ圧縮方法及びデータ圧縮装置
CN104021142B (zh) 防篡改系统网页文件指纹的存储和查询方法
JP2006120070A (ja) プログラミング装置とそのシンボル入力方法および記録媒体
JPH09212503A (ja) 情報入力装置
JP2008117310A (ja) 辞書検索装置および辞書検索処理プログラム
JPS6010349B2 (ja) 文書作成装置
JPH09180468A (ja) 連想記憶装置
US20030187843A1 (en) Method and system for searching for a list of values matching a user defined search expression
JP3817747B2 (ja) 書体情報設定装置
JP2772124B2 (ja) 辞書検索方式
JPH08106457A (ja) 地名入力装置
WO2007037030A1 (ja) 情報処理装置、情報処理方法およびこれらに用いられる情報の記憶媒体
JP2679627B2 (ja) フォント検索処理装置
JP3972309B2 (ja) 情報変換装置及びプログラム
CN115934890A (zh) 地址数据处理方法、装置、计算机设备和存储介质
JP2638777B2 (ja) かな漢字変換装置
JPS62263570A (ja) 文書作成装置
CN112286579A (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备

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: 20060110