JP3499903B2 - データ圧縮/伸長システム及び方法 - Google Patents

データ圧縮/伸長システム及び方法

Info

Publication number
JP3499903B2
JP3499903B2 JP28397693A JP28397693A JP3499903B2 JP 3499903 B2 JP3499903 B2 JP 3499903B2 JP 28397693 A JP28397693 A JP 28397693A JP 28397693 A JP28397693 A JP 28397693A JP 3499903 B2 JP3499903 B2 JP 3499903B2
Authority
JP
Japan
Prior art keywords
cache
data segment
data
value
segment
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 - Fee Related
Application number
JP28397693A
Other languages
English (en)
Other versions
JPH06242924A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH06242924A publication Critical patent/JPH06242924A/ja
Application granted granted Critical
Publication of JP3499903B2 publication Critical patent/JP3499903B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/417Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータの圧縮及び伸長(d
ecompression)のための方法及び装置に関するものであ
り、より詳細には、同期動作するキャッシュ・メモリに
よるこのような方法及び装置に関するものである。
【0002】
【従来技術及びその問題点】データの圧縮の目標は、デ
ータまたはイメージを表すために必要なビットの数を節
減することにある。先行技術はデータ圧縮のための多く
の方法で満ちている。最高のレベルのデータ圧縮を与え
る技術は一般的には最も複雑なデータ処理機器を必要と
するものであり、またその実行速度が遅いものが多い。
比較的低いレベルのデータ圧縮を与える技術は、比較的
迅速に動作し、比較的単純なハードウエアを用いること
が多い。一般的にいえば、データ圧縮の方法を選択する
ことは、システムの複雑性や実行時間とデータ圧縮の所
望のレベルとの間での妥協に基づくものである。
【0003】刊行された先行技術には、データ圧縮方法
についての多くの技術が含まれている。"Coding of Two
-Tone Images", Hwang, IEEE Transactions on Communi
cations, Vol. COM-25, No. 11, November, 1997, pp.
1406-1424 は、英数字データ及びイメージ・データの双
方について効率的なコーディングのための多くの技術を
説明する評論論文である。1次元コーディング(ラン・
レングス)及び2次元コーディング(例えば、ブロック
当りのピクセル・データ(per block of pixeldate))の
双方について考察されている。Hunter 他は論文 "Inter
national Digital Facsimile Coding Standars", Proce
edings of the IEEE, Vol. 68, Nor. 7, July, 1980, p
p. 854-867 で、ファクシミリ通信において用いられる
種々のアルゴリズム(一般的には、1次元コーディング
技術)を説明している。彼らはまた、後続のコーディン
グ・ラインの条件が先行の基準ラインにおける条件に依
存してコーディングされる2次元のコーディング方式に
ついても説明している。
【0004】Williams による論文 "An Extremely Faxt
Ziv-Lempel Data Compression Algorithm", Proceedin
gs of the IEEE Data Compression Conference, April,
1991, pp. 362-371 には、周知の Lempel -Ziv )(LZ)
の圧縮アルゴリズムを高速で実現することが説明されて
いる。この方法では、受信ノードと送信ノードの双方で
データ・ストリングのストリングの辞書を構築し、入力
されたデータ・ストリングと辞書内に見出されるデータ
・ストリングとの間の一致に従ってコードを送出する。
【0005】Usubuchi 他は論文 "Adaptive Predictive
Coding For Newspaper Facsimile", Proceedings of t
he IEEE, Vol. 68, No. 1980, pp.807-813 で、ハーフ
・トーンのイメージ・データの圧縮に適用される適応
的、予測的なアルゴリズムを説明している。ハーフ・ト
ーンの画像イメージをコーディングする更に別の予測的
な方法については、Stoffel による論文 "Half-tone Pi
ctorial Encoding", SPIE Applications of Digital Im
age Processing, Vol. 19, 1977, pp. 56-63 で説明さ
れている。Stoffel のアルゴリズムは、イメージをブロ
ックに分割し、先行のブロックから現ブロックを予測す
ることを試みる。イメージの最終的なコーディング結果
は予測誤差とブロックの値からなる。
【0006】Langdon, Jr. 他の論文 "Compression of
Black-White Images with Arithmetic Coding", IEEE T
ransactions on Communications, Vol. COM-29, No. 6,
June, 1981, pp. 858-867 では、ピクセル毎の確率を
ピクセル・コンテキスト(すなわち周辺のピクセル))
に基づいて推定する算術的コーディング方法が説明され
ている。Langdon, Jr. 他の算術的コードでは、ある種
の古くからの算術的コードに固有の乗算操作を回避して
いる。Hampel 他による論文 "Technical Features of t
he JBIG Standard for Progressive Bi-Level Image Co
mpression", Signal Precessing: Image Communicatin
Journal, Vol. 4, Nor, 2 (1992), pp.103-111 に示さ
れているように、Langdon, Jr. 他の圧縮技術は間もな
く2レベル・イメージ・データのコーディングの国際的
な標準になるはずである。
【0007】Bentley 他は論文 "A Locally Adptive Da
ta Compression Scheme", Communications of the ACM,
April 8, 1986, Vol. 29, Nor. 4, pp. 320-330 及び
"Technical Correspondence", Communications of the
ACM, September 1987, Vol,30, No. 9, pp. 792, 793
で、自己組織型逐次サーチ技術を用いてテキスト・デー
タを圧縮する方法を説明している。具体的に言えば、頻
繁にアクセスされるワードはサーチ・シーケンスの先頭
の近傍にあり、このためにそれらのワードは圧縮動作に
当たって短時間で見つかるということである。
【0008】Bentley 他の論文で説明されているシステ
ムは、中央処理ユニットのメモリ・システム中のキャッ
シュ・メモリに類似している。具体的に言えば、LRU
(least recently used) 管理を使ったキャッシュ・メ
モリ(数のリストの形態をとるキャッシュ)が採用され
ている。このリストは、最も最近使用されたものからこ
れまで一番長い期間使用されていないものへという態様
で順序付けられる。サーチ対象の値つまりワードがこの
リスト中にあれば、その度に、このワードがキャッシュ
・リストから取り出されてこのキャッシュ・リストの先
頭に配置され、残りの値は1つずつ後ろにずらされる。
キャッシュ・リスト内に入っていないワードがサーチ対
象であったときは、もっとも長い間使用されていなかっ
た値がキャッシュから除去されて、新規の値を受け入れ
る余地を(リストの先頭に)作成する。
【0009】図1のテーブルには、このようなキャッシ
ュの動作シーケンスが例示されている。テーブル20に
例示された4位置のキャッシュにおいて、最も最近使用
された値はキャッシュの「先頭」にあり、最も長い間使
用されていなかった値はキャッシュの「底」にあり、ま
たその他の値は中間の位置にある。22、24及び26
という参照番号の付いたキャッシュには、キャッシュ2
0の連続的な状態が例示されている。キャッシュの状態
22はキャッシュ20の初期状態であり、それには4個
の10進値がストアされて示されており、10進値10
が最も最近使用された値であるとされている。キャッシ
ュの状態24は、値6をサーチした後のキャッシュ20
の状態である。この値6はキャッシュ20内に既に存在
することから、値10及び5がプッシュ・ダウンされ
る。値25をサーチした後が遭遇された後、キャッシュ
の状態26が生じる。この値25はキャッシュ20内に
存在しないことから、この値はキャッシュ20の先頭に
挿入され、最も長い間使用されていなかった値8が取り
除かれ、また、その他の値はプッシュ・ダウンされる。
【0010】データの圧縮及び伸長のために採用される
コーディング・プロセス及びデコード・プロセスでは、
キャッシュの状態がエンコーダ機構及びデコーダ機能の
双方と確実に同期するように、圧縮されたコード・ワー
ドとキャッシュの適応の操作がなされる。キャッシュの
同期をとることにより、欠落のないデータ処理が確実に
行われるようになる。図1に示されているように、キャ
ッシュ20の状態は、新たな値についてのサーチが行わ
れる毎に「適応される」。ある値がエンコーダ内のキャ
ッシュに既に存在しているときには、そのキャッシュ位
置が、この値の位置を指示するコード・ワードの形式で
送出される。この値がキャッシュ内に存在しないときに
は、ある特別なコード・ワードがこの値それ自体ととも
にエンコーダによって出力される。通常は値それ自体よ
りも少ないビット数でキャッシュ位置を送出できるため
に、圧縮が達成される。デコーダでは、受取ったコード
・ワードを解釈して、当初のデータ・ストリームを再構
成する。更に、このデコーダはエンコーダと同様のやり
方でそのキャッシュを「適応させて」、エンコーダとの
同期状態を維持する。
【0011】図2及び図3には、エンコーダ機構及びデ
コーダ機構の双方で同期を確保するために採用される手
続のフローチャートが図示されている。図2にはコーデ
ィング手続が例示されており、また、図3にはデコード
手続が例示されている。図2及び図3の各ブロック中の
処理は以下の通りである: 図2 30:圧縮されていない次のデータ値を獲得 32:キャッシュ中の値と一致するか? 34:キャッシュ中の位置を示すコード・ワードを出力 36:キャッシュを適応させる 38:「発見せず」を示すコード・ワードを出力 40:データ値を出力 42:この新たな値をキャッシュに挿入し、キャッシュ
を適応させる 図3 44:圧縮されている次のコード・ワードを獲得 46:キャッシュ中の位置を示すコード・ワードか? 48:キャッシュ値を出力 50:キャッシュを適応させる 52:データ値を獲得して出力 54:この新たなデータ値をキャッシュに挿入し、キャ
ッシュを適応させる ここで図2を参照すると、圧縮されていないデータ値
(例えば、1バイト)をアクセスし(ブロック30)、
この圧縮されていないデータ値が圧縮キャッシュ内の値
に一致しているものがあるかどうかの判定がなされる
(判定ブロック32)。判定結果がyesであるときに
は、このキャッシュ中で一致した値の位置を指示する位
置コードが出力される(ブロック34)。必要である場
合には、一致したキャッシュ中の値を当該キャッシュの
先頭まで移動しこれに応じて残りの値を再配置するよう
に移動させることによってキャッシュの適応がなされる
(ブロック36)。そして、この手続は、次の圧縮され
ていないデータ値を獲得するところまで戻って再び繰り
返される。
【0012】受信したある値に一致するものがキャッシ
ュ中で発見できなかった場合には、「発見せず」、つま
りミスヒット、を表すコード・ワードが出力され(ブロ
ック38)、また実際のデータ値が出力される(ブロッ
ク40)。そして、受信したデータ値がキャッシュの先
頭に挿入され、また、残りの値をプッシュ・ダウンし、
最も長い間使用されていなかった値を排除することによ
って、キャッシュの残りのものについての「適応」がな
される。
【0013】伸長に当たっては(図3)、圧縮されたコ
ード・ワードをアクセスし(ブロック44)、このコー
ド・ワードに位置コード・ワードが含まれているかどう
か判定する(判定ブロック46)。判定結果がyesで
あるときには、デコーダのキャッシュ中の当該位置の値
を出力し(ブロック48)、また出力されたキャッシュ
値をキャッシュの先頭まで移動させることにより、この
キャッシュの適応がなされる(ブロック50)。
【0014】上述した場合とは逆に、受信したデータが
位置コード・ワードではなかったときには、この受信し
たデータ値をアクセスして、出力する(ブロック5
2)。また、このデータ値はまたキャッシュの先頭に挿
入され、更に、このキャッシュの残りの部分についての
適応が成される。
【0015】上述したようなキャッシュ・ベースの圧縮
手続は効果的なものではあるが、LRU方式のキャッシ
ュ管理は演算が複雑であることが多い。キャッシュを
「適応」させる度に多くの値を再配置することが必要と
される。このような再配置は、一連の圧縮の間に何回も
生起するために、相当な処理時間を占める可能性があ
り、その圧縮手続の効率を著しく低下させる。
【0016】
【目的】従って、本発明の目的は、改良されたキャッシ
ュ管理技術を使用することにより、キャッシュ・ベース
の圧縮手続をより効率的にすることにある。
【0017】本発明の更に別の目的は、キャッシュ・ベ
ースの予測技術を用いた、改良された圧縮/伸長手続を
提供することにある。
【0018】本発明のなおも別の目的は、イメージの処
理に特に適応しており、圧縮されるべき値の近傍におけ
るデータの内容を用いるようにする、キャッシュ・ベー
スの圧縮/伸長手続を提供することにある。
【0019】
【発明の概要】本発明の一実施例によれば、2レベルの
データを圧縮するためのシステムには、使用が割り当て
られた複数のレベルを有する第1のキャッシュ・メモリ
が含まれている。その第1のレベルは最も使用頻度が高
いデータ・セグメントに対して割り当てられ、その第2
のレベルは複数のより使用頻度が低いデータ・セグメン
トに対して割り当てられている。プロセッサは、受信し
たデータがデータ・セグメントがキャッシュ・メモリ内
で発見されたかどうかを判定し、発見されなされなかっ
たときには、この受信したデータ・セグメントを、キャ
ッシュ・メモリの第1のレベルに既にストアされている
以前のデータセグメントに代えてそこに割り当てる。こ
の以前のデータ・セグメントは、第2のデータセグメン
トに以前にストアされているところの、より長い間使用
されていなかったデータ・セグメントに代えて、その位
置に割り当てられる。より長い間使用されていなかった
データ・セグメントであって置換されるものは、疑似ラ
ンダム法によって選択される。そして、発見されなかっ
たという通知は、受信したデータ・セグメントの識別情
報とともに、受信ステーションに送出される。この受信
ステーションは送信側と同じキャッシュ構造を含んでお
り、受信されたコード・ワード及びデータ・セグメント
に応答してそのキャッシュを更新する。本発明の更に別
の変形によれば、データ・セグメントのまわりのコンテ
キストに従って、複数のキャッシュ・メモリに対してデ
ータ・セグメントが入力される。なお、これら複数のキ
ャッシュ・メモリは、コンテキストから導出されたアド
レスに従って割り当てられる。
【0020】
【実施例】これ以降の本発明の説明は、プリンタとの通
信をするホスト・コンピュータに関連してなされるもの
であり、そのコーディングは、送出されるデータのバイ
ト(8ビット)に対して行われる。しかしながら、後述
する手続及びシステムは、データを送り出し、また送出
時のバンド幅の経済性やメモリの節約のために圧縮/伸
長の手続を採用する多様なシステムに適用されるという
ことを理解しなければならない。
【0021】図4において、ホスト・コンピュータ60
には、ホスト中央処理ユニット(CPU)62、リード
・オンリ・メモリ(ROM)64及びランダム・アクセ
ス・メモリ(RAM)66が含まれている。これらのモ
ジュールの各々はバス68で相互接続されており、その
入力/出力の通信はI/Oモジュール70によって処理
される。ROM64には、I/Oモジュール70が送出
ライン上にデータを送出する前にホストCPU62の制
御の下にデータの圧縮操作を行うコード化手続が含まれ
ている。RAM66は、LRU方式で構造化され、デー
タの圧縮操作を達成できるようにする複数のキャッシュ
・メモリを含む。
【0022】I/Oモジュール70から送出されたデー
タは、I/Oモジュール73を介してプリンタ72で受
信される。プリンタ72には、CPU74、プリント・
エンジン76、RAM78及びROM80が含まれてい
る。RAM78は、I/Oモジュール73を介して受信
された入力データのための一時記憶部として作用するも
のであり、また、ホストCPU60中のRAM66に含
まれているキャッシュ・メモリと構造的に同一のキャッ
シュ・メモリも含んでいる。ROM80は、I/Oモジ
ュール73を介して受信した圧縮済みデータを伸長し、
使用するためにRAM78中にストアするようにするデ
コード手続を含んでいる。
【0023】先に示したように、RAM66及び78に
含まれているキャッシュ・メモリはLRUキャッシュと
して構成されている。このキャッシュでは、キャッシュ
の先頭のデータは最も最近使用された(MRU)もので
あり、このキャッシュの底にあるデータは最も長い間使
用されなかったものである。キャッシュが更新される
(「適応させられる」)度に多くの値の再配置が必要と
されることから、このようなキャッシュの管理は演算上
複雑なものである。
【0024】図5に、演算上の複雑性を減少させるよう
な、修正された形式のLRUキャッシュを示す。キャッ
シュ90は階層化されたLRUキャッシュとして構成さ
れており、ここに、最上位層91は最も最近使用された
データ・バイトであり、層92〜94は3個の最も長い
間使用されなかった(LRU)データ・バイトを含む
「単一の」層を有している。ここで、単に説明を簡単に
するだけの目的で、キャッシュ90が4個のエントリと
2つの層を有するものとして示されていることを理解さ
れたい。任意の数の層を設けまた層毎に任意の個数のエ
ントリを有することができる。
【0025】キャッシュ90の特定の層からどの値を選
んで取り除くかということは、コード化機構とデコード
機構との間の同期状態を維持しながら、疑似ランダム的
に行うことができる。例えば、ラウンド・ロビン方式カ
ウント法を用いることができる。このやり方では、最も
長い間使用されなかった層から取り除かれるべきバイト
は、エントリ92〜94の逐次的なカウントに基づいて
選択される。この態様において、キャッシュが大きくな
ると、処理上のオーバヘッドをより少なくして管理で
き、またそれでもLRUキャッシュと殆ど同様に効率的
である。
【0026】キャッシュの状態表示A、B及びCでは、
3つの異なる時点(すなわちA、B及びC)におけるキ
ャッシュ90の状態が示されている。時点Aにおいて
は、キャッシュの状態は図示した通りである。時点Bに
おいて値2のバイトがサーチされ、最も最近使用された
層91に置かれる。値2のバイトは既にキャッシュの第
2のレベルにあることから、第1のレベルの値78とそ
の位置を交換し、これによって(キャッシュの状態96
によって示されるように)値78を位置94に置く。時
点Cにおいて、値89のバイトをサーチするものとす
る。この値はキャッシュ中にはないことから、最も最近
使用されたものを入れておく層91に挿入され、また最
も長い間使用されなかったものが入る層(この場合で
は、位置93)から疑似ランダムに導出された位置に
は、値89によって置換された値(すなわち値2)が上
書きされる。
【0027】最も長い間使用されなかった層での交換が
次回に必要とされた際には、置換されるのは位置94で
あり、これに次いで位置92、位置93等々となる。従
って、キャッシュ90を階層化することにより、適応操
作の間のキャッシュ値の移動を少なくすることができ
る。構成的にいえば、最も長い間使用されなかったもの
を入れておく層中で交換されるべき位置は、ラウンド・
ロビン方式のカウントが増大するにつれて更新されるポ
インタの位置に基づいて決定することができる。
【0028】新規に受信したバイトを入れるべき多くの
独立したキャッシュの中から選択するためのコンテキス
トを採用することにより、パフォーマンスを更に向上す
ることができる。プリンタには通常、各ピクセルが2値
のビット値で表されるところの、ピクセルのラスタ・イ
メージを有するビット・マップ・メモリを備えている。
各ラスタ・スキャン行は8ビット・バイトのシーケンス
に分割される。前以ってデコードされているような位置
に置かれている周辺のピクセルを、最も最近使用された
バイトをストアするためにいずれのキャッシュを用いる
べきかを判定するコンテキストとして用いる。周辺のピ
クセルのビット値を組み合わせて1つの数を形成し、ど
のキャッシュを使用すべきかを指定するコンテキスト値
(つまりインデクス)が導出できるようにする。この操
作を行うことで、各キャッシュが個々のコンテキストに
対してより良好に適応できるようにすることにより、デ
ータ圧縮の改善がなされる。
【0029】図6中の図において、ラスタ走査ラインの
番号の付いた8個のピクセル(ピクセル100)は、コ
ード化される8個のハッチングの付いたのピクセル(ピ
クセル102)のためのコンテキスト値を形成する。こ
れ以降では、ピクセル100をコンテキスト・バイトと
呼び、またピクセル102は現在バイトと呼ぶ。コンテ
キスト依存キャッシュ構成の思想は、イメージは垂直方
向に相関関係を持っている(例えば、表組みにおける垂
直の線)ことが多いという事実に基づいている。また、
キャッシュのアドレスとしてコンテキスト・バイトを採
用することにより、現在バイトでサーチした際、アドレ
スされたキャッシュ内の最も最近使用されたものが入る
エントリ中に現在バイトと同一のデータ・バイトが入っ
ている可能性が高くなり、これにより、キャッシュのデ
ータをそれ以上移動させることなく、高速にコード化す
ることができるようになる。「垂直の」コンテキスト・
バイトは後続する説明の基本を形成するものであるが、
別の物理的な関係も本発明の範囲内に入っているという
ことを理解しなければならない。
【0030】コンテキスト依存キャッシュの構成を実現
したものでは、圧縮/伸長手続の開始時点で全てのキャ
ッシュを生成し初期化してよい。例えば、8ビット・バ
イトが採用されるときには、最初に256個のキャッシ
ュを生成し、各キャッシュには複数のエントリを持てる
ようにしておくことができる。キャッシュが複雑化する
ことによる問題よりもメモリの方が重要であるときに
は、全てのキャッシュを最初に生成しておく必要ではな
く、必要とされるときにのみキャッシュを生成させるこ
とができる。
【0031】図7は、データ・セグメントに対する圧縮
コード化手続を説明するフローチャートである。このフ
ローチャートの各ブロックの動作は以下の通りである: 104:圧縮されていない次のデータ値を獲得 106:コンテキスト値に基づいてキャッシュを選択 108:キャッシュ値が一致したか? 110:その位置を表すコード・ワードを出力 112:キャッシュを適応させる 114:「発見せず」を示すコード・ワードを出力 116:データ値を出力 118:この新たなデータをキャッシュに挿入しキャッ
シュを適応させる 図7に示されているように、送出されるべき新たなデー
タ・バイトが与えられると(判定ブロック104)、そ
のピクセル・イメージの直前のスキャン行に垂直に整列
したコンテキスト・バイトのアドレスを有する特定のキ
ャッシュがアドレスされる(ブロック106)。(先に
示したように、このアドレスされたキャッシュ中の最も
最近使用されたエントリは、与えられた圧縮されていな
いバイト値と同じである可能性が高い。)次に、このバ
イト値をこのアドレスされたキャッシュ中の値と比較す
る(判定ブロック108)。ここで一致が取れた場合に
は、アドレスされたキャッシュ中で一致した値の位置を
指示するコード・ワードを出力する(ブロック11
0)。また、必要ならその一致した値をアドレスされた
キャッシュ中の最も最近使用されたものが入るエントリ
に持ち上げ(ブロック112)、この手続の先頭に戻
る。
【0032】アドレスされたキャッシュにおいて一致が
取れなかった場合には(判定ブロック108)、「発見
せず」、つまりミスヒット、を表すコード・ワードを出
力し(ブロック114)、次いで実際のバイト値を送出
する(ブロック116)。このキャッシュ中のどの値と
も一致しなかったバイト値はアドレスされたキャッシュ
に送出され、このキャッシュを適応させて(ブロック1
18)、またこれによって置き換えられたバイトをキャ
ッシュのもっと下位のレベルに移動させ、更にこのもっ
と下位のレベルに既にストアされていたバイトを置換す
る等の作業がなされる。次に、この手続はその先頭に戻
る。
【0033】図8は、図7のフローチャートに従ってコ
ード化されたデータをデコードするための伸長手続を説
明するフローチャートである。このフローチャート中の
各ブロックの動作は以下の通りである: 120:圧縮されている次のコード・ワードを獲得 122:コンテキスト値に基づいてキャッシュを選択 124:キャッシュ中の位置を示すコード・ワードか? 126:キャッシュ値を出力 128:キャッシュを適応させる 130:データ値を獲得して出力 132:この新たなデータ値をキャッシュに挿入し、キ
ャッシュを適応させる 図8には、図7に示されている手続で圧縮されたデータ
に応答する伸長の手続が示されている。受信された圧縮
済みコード・ワードがアクセスされ(ブロック12
0)、直上のスキャン行中の既にデコードされたコンテ
キスト・バイトのコンテキスト値に基づいてキャッシュ
がアドレスされる(ブロック122)。圧縮されたコー
ド・ワードがキャッシュ中の位置を示すコード・ワード
である場合には(判定ブロック124)、アドレスされ
たキャッシュ中の指示された位置に現れている値を出力
する(ブロック126)。また、必要なら最も最近使用
されたバイトをキャッシュの先頭に置くことができるよ
うにそのキャッシュ内のエントリを再配置することによ
り、キャッシュを適応させる(ブロック128)。
【0034】受信したデータがキャッシュ中の位置を示
すコード・ワードではないと判定された場合には(判定
ブロック124)、この受信したバイト値がメモリから
取り出して出力する(ブロック130)。また、当該新
たなバイト値をアドレスされたキャッシュの先頭に挿入
し、このキャッシュを適応させる。更に、受信したデー
タがもうなくなるまでこの手続を繰り返す。
【0035】これを要約すると、現在行バイトは、その
アドレスが現在バイトの直上のコンテキスト・バイトの
値であるキャッシュに常に振り向けられる。次のスキャ
ン行がアクセスされるときには、現在バイトがコンテキ
スト・バイトになる。このコンテキスト・バイトの値が
既にキャッシュのアドレスであるときには、新たにキャ
ッシュを生成する必要はない。コンテキスト・バイトの
値が新たなものであるときには、コンテキスト・バイト
をそのアドレスとして、新たなキャッシュが設定され
る。初期化時に全てのキャッシュが設定されている場合
には、出現し得るコンテキスト・バイトの値毎に1つの
キャッシュが存在するので、新たにキャッシュが要求さ
れることはない。
【0036】上述の議論では、コンテキスト値の概念が
導入された。この議論でコンテキスト値を構成するもの
は、現在ラインの直上のラスタ・スキャン・ラインから
のデータ・セグメントの値である。このコンテキスト値
はキャッシュのアドレスとして用いられた。このコンテ
キスト値は先にデコードされたいくつかのデータ・セグ
メントの組み合せから形成することもできる。そのよう
にした場合の利点は、コンテキストを大きくすると、現
在のデータ・セグメントをコード化するための最も性能
の良いキャッシュを選択するより良い手段を提供できる
ことがあるという点である。このコンセプトの1つの具
体的な実現形態では、現在データ・セグメントのすぐ上
のデータ・セグメントだけではなく、図14に示されて
いるように、現在のデータ・セグメントのすぐ上のもの
の左側にあるデータ・セグメントを使用する。これら2
個のデータ・セグメントを組み合わせてコンテキスト値
にする1つのやり方は、現在データ・セグメントのすぐ
上のものの左側にあるデータ・セグメントから取り出し
た2つのビットを、現在データ・セグメントのすぐ上の
データ・セグメントの左側へ付加することである。図1
4で“A”なるラベルが付されたバイトは現在データ・
セグメントである。“B”及び“C”なるラベルが付さ
れたバイトはコンテキスト値を形成するために用いられ
るデータ・セグメントである。コンテキスト値は、デー
タ・セグメントBのビット1及び2をデータ・セグメン
トCのビット1ないし8に連結することによって発生で
き、これによって10ビット・データのコンテキスト値
が得られる。
【0037】あるシステムでは、より複雑なコード化手
続を設けるという犠牲を払ってデコード/伸長手続の複
雑性を減少させることが望まれる。間接的キャッシュ管
理を用いることにより、デコード手続の一部をコード化
手続に移管することができる。LRUキャッシュの場合
には、新たに受信されたデータ・バイトがキャッシュ内
に既に記憶されていることが発見される限り、キャッシ
ュ内の値が変化することはなく、再配置が行われるだけ
であるという事実により、この手続の一部の移管が可能
にされる。LRUキャッシュ内の値のセットが変化する
唯一の時点は、新たなデータ・バイトとキャッシュ内に
既にストアされているバイトとの間に一致が見出されな
い場合だけである。間接的キャッシュ管理においては、
エンコーダを用いて複雑さを増すという犠牲を払って、
LRUキャッシュを維持するために必要な値の再配置を
デコーダがしなくても良いようにしている。
【0038】図9を参照すると、2つの番号リスト、す
なわちキャッシュ・メモリ120内のポインタ・リスト
及びキャッシュ・メモリ122内のバイト値リスト、を
維持・管理するためのコード化手続ができるようにする
一対のキャッシュ・メモリ120及び122が示されて
いる。ポインタ・リストには、値リスト内のエントリへ
のポインタつまりインデクスが含まれている。新たに受
信されたバイトとキャッシュ・メモリ122内のバイト
値リストに既に記憶されているバイトとの間で一致が見
出されたときには、キャッシュ・メモリ120内のポイ
ンタ・リスト中のポインタはLRU方式で再配置され
る。新たな値がキャッシュ・メモリに入力されておら
ず、また古い値がキャッシュ・メモリから取り除かれて
いないため、値リスト内の値は再配置を必要としない。
(新たなバイトとキャッシュ・メモリ122内に既にス
トアされているバイトとの間で)一致するものがあるこ
とがわかると、エンコーダからそれに対応するポインタ
値が発せられる(すなわち、エンコーダは、受信された
バイトに対応するキャッシュ・メモリ122内の値エン
トリを指示する)。
【0039】キャッシュ・メモリ122内で一致するも
のが見出されないときには、値リスト及びポインタ・リ
ストは修正されねばならない。キャッシュ・メモリ12
2内の値リスト内で最も長い間使用されなかった値が取
り除かれる。この操作は、キャッシュ・メモリ122内
の値リスト位置のうちの、キャッシュ・メモリ120内
にある最も長い間使用されなかったものを示すポインタ
(LRUポインタ)が指している位置に現在バイト値を
置くことによって達成される。次に、キャッシュ・メモ
リ120内のポインタは、キャッシュ・メモリ122内
の新たな値の順序を反映するように更新される。この新
たに入力された現在値は、キャッシュ・メモリ120内
にある最も最近使用されたものを示すポインタ(MRU
ポインタ)によって指し示される。この場合、エンコー
ダは一致がなかったことを知らせる特別なコード・ワー
ドを発し、次に実際のバイト値及び(デコーダ中の)値
リスト中のこの実際のバイト値が挿入されるべき位置へ
のポインタをその後に供給する。
【0040】図9において示されているように、キャッ
シュ・メモリ120におけるポインタ・リストのエント
リは、最も最近使用されたもの(MRU)から最も長い
間使用されなかったもの(LRU)への順序で配置され
る。かくして、キャッシュ・メモリ122内の値リスト
中のバイト値の位置に係わらず、ポインタ・リスト内の
ポインタの位置から、最も最近使用されたバイト値が値
リスト内のどこにあるかがわかり、またこのバイト値以
外のストアされているバイト値についてのMRU以降の
全ての使用レベルがわかる。
【0041】デコーダでは、ポインタ・リストではな
く、値リストだけが維持・管理される。コード・ワード
(例えばポインタ値)がデコードされると、値リスト中
の指し示された位置から読み出した値が出力される。
「発見せず」というコード・ワードを受信した場合に
は、ポインタ及びその値が入力ストリームから導出され
て、この値がデコーダ内の値リスト中の指し示された位
置に置かれる。
【0042】図10を参照して、間接的キャッシュ管理
のコード化(圧縮)のための手続について説明する。図
10の各ブロックの動作は以下の通りである: 130:圧縮されていない次のデータ値を獲得 132:キャッシュ値が一致したか? 134:その位置を表す値リスト・ポインタ・コード・
ワードを出力 136:キャッシュを適応させる 138:「発見せず」を示すコード・ワードを出力 140:データ値を出力 142:値リストのLRU位置を示すインデクス・コー
ド・ワードを出力 144:この新たなデータを値リストのLRU値位置に
挿入しキャッシュを適応させる 新たなデータ値が与えられると(ブロック130)と、
この値が値リストを含むキャッシュ・メモリ122内に
既に記憶されている値と一致するかどうかの判定がなさ
れる(ブロック132)。判定結果がyesであるとき
には、値リスト中で一致した値がどこにあるかを示すポ
インタ値をポインタ・リストから出力する(ブロック1
34)。次に、値リスト内の最も最近使用されたバイト
値を適正に指示するように、ポインタ・リスト内のポイ
ンタを適応させる。
【0043】キャッシュ値の一致が発見されなかったと
きには(判定ブロック132)、「発見せず」のコード
・ワードを出力し(ブロック138)、それとともに、
値スト中で一致するものが発見されなかったデータ値も
出力する(ブロック140)。これに加えて、値リスト
中で最も長い間使用されていなかった値を指示するポイ
ンタ値も出力する。かくして、新たなデータ値が値リス
ト内の最も長い間使用されていなかった値の位置に挿入
され、その中に以前からストアされていた値は取り除か
れる。次に、次に続く圧縮されていないデータ値を取得
するため、この手続はその最初に戻る。
【0044】図11にデコード(伸長)手続を示す。図
11の各ブロックの動作は以下の通りである: 150:圧縮されている次のコード・ワードを獲得 152:ポインタ・コード・ワードか? 154:ポインタ位置の値を出力 156:データ値を獲得して出力 158:置換え値リスト・インデクス位置を獲得 160:この新たなデータ値を指定された値リスト・ポ
インタ位置に挿入 この手続では、最初に、圧縮されている次のコード・ワ
ードをアクセスする(ブロック150)。このコード・
ワードがポインタであることがわかった場合には(判定
ブロック152)、対応する値リスト中のそのポインタ
が「指し示している」値を出力する(ブロック15
4)。コード・ワードがポインタ値ではないことがわか
った場合には(判定ブロック152)、受信されたデー
タ値をアクセスする(ブロック156)。この際、置換
えポインタ値も獲得する(ブロック158)。次に、新
たなデータ値を値リスト中のこのポインタで指し示され
ている位置に挿入する。既にそこにある値は廃棄される
(ブロック160)。処理すべき更に別の圧縮されたコ
ード・ワードがなくなるまで、この手続を繰り返す。こ
こで、間接的キャッシュ管理と階層化キャッシュ管理を
組み合わせて双方の技術に固有の長所を得ることができ
るということを理解すべきである。
【0045】上述したシステムは、8ビット・バイトで
データをコーディングするものとして示されている。あ
る種のディザーをかけたイメージ・データのように、別
の周期性、すなわち6ビット、10ビット等、のあるデ
ータであるときには、このようなデータをイメージ・デ
ータの周期性に一致したビット長の単位に分解してもよ
い。
【0046】上述したアルゴリズムの一つの特徴は、値
がキャッシュ中に入っているかどうかを判定するために
は、この値をこのキャッシュ内にストアされている全て
の値と比較しなければならないことである。この比較手
続は、特定の値がキャッシュ内に存在するかどうかにつ
いてのフラグを含むルック・アップ・テーブルを維持・
管理することによって回避することができる(図12の
ルック・アップ・テーブル170を参照)。ルック・ア
ップ・テーブルは可能な全ての値を含まなければならな
い。この手続は更に、この値がキャッシュ内に存在する
ときには、その位置がキャッシュ内で判定されねばなら
ないということも必要とされる。
【0047】上述したように、圧縮動作と伸長動作の間
に確実に同期がとられるように、エンコーダとデコーダ
の双方におけるキャッシュは同じ初期状態でなければな
らない。エンコーダがある程度複雑化するという犠牲を
払って、デコーダのこの初期化を行わないようにでき
る。エンコーダは、(図13のキャッシュ・メモリ18
0で示すように)全てのキャッシュ・エントリフラグを
関連付けることができるさせる。このフラグは対応する
キャッシュ・エントリが定義済みでないあるいは定義済
みの値を持っているか否かを示す。定義済みの値とは、
キャッシュ・エントリが処理されているイメージからの
実際のデータ・バイト値を表している値である。エンコ
ーダは、ある値を定義済みでないキャッシュ値を有する
エントリとの比較が絶対に起こらないようにすることが
できる。デコーダが初期化されていない値を使用するこ
とはないので、デコーダがこれらのフラグを維持・管理
する必要はない。それというのも、エンコーダが初期化
されていない値を使用するようにデコーダに対して指示
することがないからである。
【0048】次の例は、2階層化されたキャッシュを使
用した本発明の一実施例の動作を示す。その第1の層に
は一つの割り当てられた値を持っており、第2の層は3
つの値を持っている。コード・ワード(ビット・シーケ
ンス)は次のように割り当てられる。 1 = 第1の層の予測が正しい 000 = 第2の層の1番目の値の予測が正しい 001 = 第2の層の2番目の値の予測が正しい 010 = 第2の層の3番目の値の予測が正しい 011 = 訂正値が必要 キャッシュは次の条件で開始される。
【0049】キャッシュの第2レベルにおけるランダム
な置換は、簡単なラウンド・ロビン方式で実行される。
変数"reple_index"が定義され、その初期値は1に設定
される。置換が要求されたとき、この変数により、第2
レベルのキャッシュ中のいずれのエントリが置換される
かが決定される。置換が実行された後、変数"reple_ind
ex"がインクリメントされる。変数"reple_index"の値が
4に到達すると、その値は1にリセットされる。
【0051】コーディングされるべきデータ・ストリー
ムは、バイトの系列で構成されている。
【0052】次のテーブルは、コード化シーケンスをト
レースしている。キャッシュの状態は、現在の入力値が
処理された後のものを示している。
【0053】
【表1】
【0054】ここで、前述の説明は本発明を例示してい
るだけであるということを理解しなければならない。当
業者であれば、本発明から逸脱することなく、種々の代
替及び修正を案出することができるであろう。従って、
本発明は特許請求の範囲の記載の範囲内で、全てのこの
ような代替、修正及び変形を包含するように意図されて
いる。
【0055】
【効果】以上詳細に説明したように、本発明によれば簡
単な手順でキャッシュ・ベースのデータ圧縮/伸長を行
うことができる。
【図面の簡単な説明】
【図1】データ圧縮システムにおけるLRUキャッシュ
についての先行技術を説明する図。
【図2】LRUキャッシュ・メモリを使用することによ
ってデータ・セグメントをコーディングするための、先
行技術によるプロセスを説明するフローチャート。
【図3】LRUキャッシュ・メモリを使用することによ
ってデータ・セグメントをデコードするための、先行技
術によるプロセスを説明するフローチャート。
【図4】本発明を実施することのできるシステムのブロ
ック図。
【図5】階層化されたLRUキャッシュを用いてデータ
をコード化するためのプロセスを例示する、キャッシュ
の状態を概略的に表示する図。
【図6】複数のLRUキャッシュ・メモリの中の特定の
もののアドレスとして採用されるコンテキスト・データ
・セグメントを説明する図。
【図7】データ・セグメントに対する圧縮コード化手続
を説明するフローチャート。
【図8】図7のフローチャートに従ってコード化された
データをデコードするための伸長手続を説明する図。
【図9】間接的LRUキャッシュ管理を行うためにする
ために用いられる2個のキャッシュ・メモリを説明する
図。
【図10】図9に示されているキャッシュ・メモリに従
ってキャッシュの間接管理を行うための圧縮手続を説明
するフローチャート。
【図11】図10のフローチャートに従ってコード化さ
れたデータ・セグメントをデコードするための伸長手続
を説明するフローチャート。
【図12】バイト・ボリュームがキャッシュ内にストア
されているかどうかを指示するルック・アップ・テーブ
ルを説明する図。
【図13】記憶位置に対して定義された状態か定義され
ない状態かを指示する、各記憶位置に関連付けられたフ
ラグを有するエンコーダ・キャッシュ・構成を説明する
図。
【図14】コンテキスト・データ・セグメントの図6と
は別の配置を示す図。
【符号の説明】
62:ホストCPU 64:ROM 66:RAM 68:バス 70、73:I/Oモジュール 72:プリンタ72 74:CPU 76:プリント・エンジン 78:RAM 80:ROM 90:キャッシュ 120、122:キャッシュ・メモリ 170:ルック・アップ・テーブル 180:キャッシュ・メモリ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−88050(JP,A) 米国特許4562536(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 5/00 G06F 12/08 - 12/12 H03M 7/30

Claims (23)

    (57)【特許請求の範囲】
  1. 【請求項1】効率的なデータ圧縮/伸張のためのシステ
    ムであって、 第1のレベルが最も最近使用されたデータ・セグメント
    に割り当てられ、第2のレベルが最も最近使用されたも
    のではない複数のデータ・セグメントに割り当てられた
    複数のレベルを有する第1のキャッシュ・メモリ手段
    と、 受信したデータ・セグメントが前記第1のキャッシュ・
    メモリ手段中にあるか否かを決定する手段であって、前
    記受信したデータ・セグメントが前記第1のキャッシュ
    ・メモリ手段中になかった場合には、前記受信したデー
    タ・セグメントを前記第1のキャッシュ・メモリ手段中
    の前記第1のレベルに、前記第1のレベルに割り当てら
    れていた以前に受信していたデータ・セグメントに代え
    て割り当て、前記以前に受信していたデータ・セグメン
    トを前記第2のレベルの中の1つの位置に、最も最近使
    用されたものではないデータ・セグメントに代えて割り
    当て、前記代えられる最も最近使用されたものではない
    データ・セグメントは前記第2のレベルに割り当てられ
    ている最も最近使用されたものではないデータ・セグメ
    ントの中から疑似ランダム方法によって選択される、手
    段と、 前記第1のキャッシュ・メモリ手段中にはなかった旨の
    表示及び前記受信したデータ・セグメントを圧縮されな
    い形式で受信手段に送出する手段と、 受信したデータ・セグメントが前記第1のキャッシュ・
    メモリ手段中にある旨の決定に応答して、前記送出手段
    をして、前記受信手段に対して、前記第1のキャッシュ
    ・メモリ手段中のどこに前記受信したデータ・セグメン
    トが割り当てられているかを指示する、前記受信したデ
    ータ・セグメントの圧縮された形式を有する位置コード
    を送出させる手段と、 を備えて成るシステム。
  2. 【請求項2】前記受信手段は、 前記第1のレベルが最も最近使用されたデータ・セグメ
    ントに割り当てられ、前記第2のレベルが最も最近使用
    されたものではない複数のデータ・セグメントに割り当
    てられた複数のレベルを有する第2のキャッシュ・メモ
    リ手段と、 割り当てられたデータが前記第1のキャッシュ・メモリ
    手段中のデータ・セグメントと同期して維持されるよう
    に前記第2のキャッシュ・メモリ手段に関連するデータ
    ・セグメントを維持するよう前記擬似ランダム方法を行
    う手段と、 を有する圧縮された形態のデータを伸長する手段を備え
    て成ることを特徴とする、請求項1に記載のシステム。
  3. 【請求項3】前記第1のキャッシュ・メモリ手段が3つ
    以上の割り当てられたレベルを備えていることを特徴と
    する、請求項2に記載のシステム。
  4. 【請求項4】前記擬似ランダム方法は、最も最近使用さ
    れたものではない複数のデータ・セグメントを有するレ
    ベルに割り当てられたデータ・セグメントを通して、ラ
    ウンド・ロビン方式カウント法によるカウントを順序付
    けし、交換されるべきデータ・セグメントは、前記カウ
    ントの値によって決定されることを特徴とする、請求項
    3に記載のシステム。
  5. 【請求項5】前記決定する手段は、データ・セグメント
    の各可能性のある値に対する位置と、前記関連するデー
    タ・セグメント値が前記第1のキャッシュ・メモリ手段
    中に存在するか否かを示す関連フラッグとを有するルッ
    ク・アップ・テーブルを備えて成ることを特徴とする、
    請求項1に記載のシステム。
  6. 【請求項6】ラスタ・スキャン表現の2レベルのデータ
    を複数のキャッシュ記憶を使用して圧縮するシステムに
    おける方法であって、各キャッシュ記憶は前記ラスタ・
    スキャン表現からの複数のデータ・セグメントを使用状
    況の階層に基づいて記憶し、 (a) 各々が前記ラスタ・スキャン表現の1つのスキャン
    行中のデータ・セグメントに関連する値を有するキャッ
    シュ・コンテキスト識別子を複数のキャッシュ記憶の各
    々に割り当てるステップと、 (b) 前記1つのスキャン行の次のスキャン行に含まれて
    いる、各々が前記1つのスキャン行中のコンテキスト・
    データ・セグメントに位置的に整列している現行データ
    ・セグメントにアクセスするステップと、 (c) 前記現行データ・セグメントの各々を、位置的に整
    列しているコンテキスト・データ・セグメントと値が等
    しいキャッシュ識別子が割り当てられたキャッシュ記憶
    中に含まれるデータ・セグメントと比較するステップ
    と、 (d) 前記現行データ・セグメントがキャッシュ記憶中に
    あった場合にはキャッシュ記憶中のデータ・セグメント
    の位置識別子を送出するか、前記現行データ・セグメン
    トが前記キャッシュ記憶中になかった場合には、見つか
    らなかった旨の表示及び前記現行データ・セグメントを
    送出するステップと、 (e) 現行データ・セグメントが前記次のスキャン行中に
    含まれ、次回のデータ・セグメントのスキャン行につい
    てのコンテキスト・データ・セグメントになるようにす
    るステップと、 (f) 他のどのキャッシュ記憶にも新たなコンテキスト・
    セグメント値が割り当てられていない場合には前記新た
    なコンテキスト・セグメント値を新たなキャッシュ記憶
    に割り当て、処理すべきスキャン行がそれ以上なくなる
    までステップ(b)乃至ステップ(f)を繰り返すステップ
    と、 を備えて成る方法。
  7. 【請求項7】(g) 各々が前記ラスタ・スキャン表現の第
    1のスキャン行中のデータ・セグメント値に値が関連す
    るコンテキスト識別子が割り当てられた複数のキャッシ
    ュ記憶を確立するステップと、 (h) 伸長された先行スキャン行中のコンテキスト識別子
    の値に基づいてキャッシュ記憶を選択し、前記選択され
    たキャッシュ記憶中の前記位置識別子によって指示され
    る位置内容から、前記位置に割り当てられたデータ・セ
    グメントが何であるかを決定することによって、受信し
    た位置識別子を伸長するステップと、 を有する伸長ステップをさらに備えて成ることを特徴と
    する、請求項6に記載の方法。
  8. 【請求項8】前記各キャッシュ記憶は、最も最近使用さ
    れたものから最も長い間使用されなかったものへの順序
    でデータ・セグメントを記憶するよう構成された複数の
    記憶位置を有し、各記憶位置は、前記位置が、定義され
    た値のデータ・セグメントま たは定義されていない値の
    データ・セグメントをその中に記憶しているか否かを示
    す関連のフラグ値を有し、前記比較ステップ(c)は、定
    義されていない値のデータ・セグメントを示すフラグ値
    を有する記憶位置を無視することを特徴とする、請求項
    7に記載の方法。
  9. 【請求項9】 データ・セグメントのストリームを複数の
    キャッシュ記憶を使用して圧縮するシステムにおける方
    法であって、各キャッシュ記憶は前記データ・ストリー
    ムからの複数のデータ・セグメントを使用状況の階層に
    基づいて記憶し、 (a) 各々が前記データ・ストリーム中の以前に出くわし
    たコンテキスト・データ・セグメントと値が関連する複
    数のキャッシュ・コンテキスト識別子を複数のキャッシ
    ュ記憶の各々に割り当てるステップと、 (b) コンテキスト・データ・セグメントとの間で予め定
    められた一時的な関係を有する現行データ・セグメント
    にアクセスするステップと、 (c) 前記現行データ・セグメントを、前記コンテキスト
    ・データ・セグメントと値が等しいキャッシュ識別子が
    割り当てられたキャッシュ記憶中に含まれるデータ・セ
    グメントと比較するが、前記割り当てられたキャッシュ
    識別子を持つキャッシュ記憶が存在しない場合には前記
    キャッシュ識別子を持ったキャッシュ記憶を確立するス
    テップと、 (d) 前記現行データ・セグメントがキャッシュ記憶中に
    あった場合には前記キャッシュ記憶中のデータ・セグメ
    ントの位置識別子を送出するか、前記現行データ・セグ
    メントが前記キャッシュ記憶中になかった場合には、見
    つからなかった旨の表示及び前記現行データ・セグメン
    トを送出するステップと、 (e) 前記現行データ・セグメントが次の現行データ・セ
    グメントに対しての新たなコンテキスト・データ・セグ
    メントになるようにするステップと、 (f) 他のどのキャッシュ記憶にも前記新たなコンテキス
    ト・データ・セグメント値が割り当てられていない場合
    には前記新たなコンテキスト・データ・セグメント値を
    新たなキャッシュ記憶に割り当て、処理すべきデータ・
    セグメントがそれ以上なくなるまでステップ(b)乃至ス
    テップ(f)を繰り返すステップと、 を備えて成る方法。
  10. 【請求項10】(g) 各々が前記データ・ストリーム中の
    以前に出くわしたデータ・セグメント値と値が関連する
    コンテキスト識別子が割り当てられた複数のキャッシュ
    記憶を確立するステップと、 (h) 前記キャッシュ記憶に割り当てられたコンテキスト
    識別子の値に基づいてキャッシュ記憶を選択し、前記選
    択されたキャッシュ記憶中の前記位置識別子によって指
    示される位置内容から、前記位置に割り当てられたデー
    タ・セグメントが何であるかを決定することによって、
    受信した位置識別子を伸長するステップと、 を有する伸長ステップをさらに備えて成ることを特徴と
    する、請求項9に記載の方法。
  11. 【請求項11】 前記各キャッシュ記憶は、最も最近使用
    されたものから最も長い間使用されなかったものへの順
    序でデータ・セグメントを記憶するよう構成された複数
    の記憶位置を有し、各記憶位置は、前記位置が、定義さ
    れた値のデータ・セグメントまたは定義されていない値
    のデータ・セグメントをその中に記憶しているか否かを
    示す関連のフラグ値を有し、前記比較ステップ(c)は、
    定義されていない値のデータ・セグメントを示すフラグ
    値を有する記憶位置を無視することを特徴とする、請求
    項9に記載の方法。
  12. 【請求項12】 ラスタ・スキャン表現の2レベルのデー
    タを複数のキャッシュ記憶を使用して圧縮するシステム
    における方法であって、各キャッシュ記憶は前記ラスタ
    ・スキャン表現からの複数のデータ・セグメントを使用
    状況の階層に基づいて記憶し、 (a) キャッシュ・コンテキスト識別子を複数のキャッシ
    ュの各々に割り当てるステップであって、前記複数は前
    記データ・セグメントの可能な値に数が等しく、各キャ
    ッシュ・コンテキスト識別子はデータ・セグメントの可
    能な値に値が等しい、ステップと、 (b) 第1のスキャン行の次のスキャン行に含まれてい
    る、各々が前記第1のスキャン行中のコンテキスト・デ
    ータ・セグメントに位置的に整列している複数の現 行デ
    ータ・セグメントにアクセスするステップと、 (c) 前記現行データ・セグメントの各々を、位置的に整
    列しているコンテキスト・データ・セグメントと値が等
    しいキャッシュ識別子が割り当てられたキャッシュ記憶
    中に含まれるデータ・セグメントと比較するステップ
    と、 (d) 前記キャッシュ記憶中にあったデータ・セグメント
    の位置識別子を送出するか、前記現行データ・セグメン
    トが前記キャッシュ記憶中になかった場合には、見つか
    らなかった旨の表示及び前記現行データ・セグメントを
    送出するステップと、 (e) 現行データ・セグメントが前記次のスキャン行中に
    含まれ、次回のデータ・セグメントのスキャン行につい
    てのコンテキスト・データ・セグメントになるようにす
    るステップと、 (f) 処理すべきスキャン行がそれ以上なくなるまでステ
    ップ(b)乃至ステップ(f)を繰り返すステップと、 を備えて成る方法。
  13. 【請求項13】(g) 各々がデータ・セグメントの可能な
    値に等しいコンテキスト識別子が割り当てられた複数の
    キャッシュ記憶を確立するステップと、 (h) 伸長された先行スキャン行中のコンテキスト識別子
    の値に基づいてキャッシュ記憶を選択し、前記選択され
    たキャッシュ記憶中の内容から、前記位置識別子によっ
    て指示された位置に割り当てられたデータ・セグメント
    が何であるかを決定することによって、受信した位置識
    別子を伸長するステップと、 を有する伸長ステップをさらに備えて成ることを特徴と
    する、請求項12に記載の方法。
  14. 【請求項14】 前記システムは、データ・セグメントの
    各可能性のある値に対する位置と、前記関連するデータ
    ・セグメント値が前記キャッシュ記憶中に存在するか否
    かを示す関連フラッグとを有するルック・アップ・テー
    ブルを有し、前記比較ステップ(c)が、前記ルック・ア
    ップ・テーブルを初めに調査してデータ・セグメント値
    が前記キャッシュ記憶に含まれているか否かを決定する
    ことを特徴とする、請求 項12に記載の方法。
  15. 【請求項15】 前記各キャッシュ記憶が、最も最近使用
    されたものから最も長い間使用されなかったものへの順
    序でデータ・セグメントを記憶するよう構成された複数
    の記憶位置を有し、各記憶位置は、前記位置が、定義さ
    れた値のデータ・セグメントまたは定義されていない値
    のデータ・セグメントをその中に記憶しているか否かを
    示す関連のフラグ値を有し、前記比較ステップ(c)は、
    定義されていない値のデータ・セグメントを示すフラグ
    値を有する記憶位置を無視することを特徴とする、請求
    項12に記載の方法。
  16. 【請求項16】 データ・セグメントのストリームを複数
    のキャッシュ記憶を使用して圧縮するシステムにおける
    方法であって、各キャッシュ記憶は前記データ・ストリ
    ームからの複数のデータ・セグメントを使用状況の階層
    に基づいて記憶し、 (a) キャッシュ・コンテキスト識別子を複数のキャッシ
    ュの各々に割り当てるステップであって、前記複数は前
    記データ・セグメントの可能な値に数が等しく、各キャ
    ッシュ・コンテキスト識別子はデータ・セグメントの可
    能な値に値が等しい、ステップと、 (b) コンテキスト・データ・セグメントとの間で予め定
    められた一時的な関係を有する現行データ・セグメント
    にアクセスするステップと、 (c) 前記現行データ・セグメントを、前記コンテキスト
    ・データ・セグメントと値が等しいキャッシュ識別子が
    割り当てられたキャッシュ記憶中に含まれているデータ
    ・セグメントと比較するステップと、 (d) 前記キャッシュ記憶中にあったデータ・セグメント
    の位置識別子を送出するか、前記現行データ・セグメン
    トが前記キャッシュ記憶中になかった場合には、見つか
    らなかった旨の表示及び前記現行データ・セグメントを
    送出するステップと、 (e) 前記現行データ・セグメントが次回の現行データ・
    セグメントに対しての新たなコンテキスト・データ・セ
    グメントになるようにするステップと、 (f) 処理すべきデータ・セグメントがそれ以上なくなる
    までステップ(b)乃至ス テップ(f)を繰り返すステップ
    と、 を備えて成る方法。
  17. 【請求項17】(g) 各々がデータ・セグメントの可能な
    値に等しいコンテキスト識別子の値が割り当てられた複
    数のキャッシュ記憶を確立するステップと、 (h) コンテキスト識別子の値に基づいてキャッシュ記憶
    を選択し、前記選択されたキャッシュ記憶中の内容か
    ら、前記位置識別子によって指示された位置に割り当て
    られたデータ・セグメントが何であるかを決定すること
    によって、受信した位置識別子を伸長するステップと、 を有する伸長ステップをさらに備えて成ることを特徴と
    する、請求項16に記載の方法。
  18. 【請求項18】 前記システムが、データ・セグメントの
    各可能性のある値に対する位置と、前記関連するデータ
    ・セグメント値が前記キャッシュ記憶中に存在するか否
    かを示す関連フラッグとを有するルック・アップ・テー
    ブルを有し、前記比較ステップ(c)は、前記ルック・ア
    ップ・テーブルを初めに調査してデータ・セグメント値
    が前記キャッシュ記憶中に含まれているか否かを決定す
    ることを特徴とする、請求項16に記載の方法。
  19. 【請求項19】 前記各キャッシュ記憶が、最も最近使用
    されたものから最も長い間使用されなかったものへの順
    序でデータ・セグメントを記憶するよう構成された複数
    の記憶位置を有し、各記憶位置は、前記位置が、定義さ
    れた値のデータ・セグメントまたは定義されていない値
    のデータ・セグメントをその中に記憶しているか否かを
    示す関連のフラグ値を有し、前記比較ステップ(c)は、
    定義されていない値のデータ・セグメントを示すフラグ
    値を有する記憶位置を無視することを特徴とする、請求
    項16に記載の方法。
  20. 【請求項20】 効率的なデータ圧縮/伸張のためのシス
    テムであって、 各々が位置識別子を有する複数のメモリ位置に複数のデ
    ータ・セグメントを記 憶する第1のキャッシュ・メモリ
    手段と、 複数のレベルを有する第2のキャッシュ・メモリ手段で
    あって、第1のレベルは、最も最近使用されたデータ・
    セグメント用の位置識別子を有し、前記位置識別子は、
    前記第1のキャッシュ・メモリ手段中のどこに前記最も
    最近使用されたデータ・セグメントが記憶されているか
    を識別し、残りのレベルは、最も長い間使用されなかっ
    たデータ・セグメントが記憶されている、前記第1のキ
    ャッシュ・メモリ手段中の記憶位置を識別する位置識別
    子を有している、第2のキャッシュ・メモリ手段と、 受信したデータ・セグメントが前記第1のキャッシュ・
    メモリ手段中にあるか否かを決定し、ある場合は、受信
    手段に対して、前記受信したデータ・セグメントを記憶
    する前記第1のキャッシュ・メモリ手段中の位置を示す
    前記位置識別子を前記第2のキャッシュ・メモリ手段か
    ら送出する手段と、 を備えて成るシステム。
  21. 【請求項21】 前記決定する手段が、前記第1のキャッ
    シュ・メモリ手段中に前記受信したデータ・セグメント
    を見つけなかった場合は、見つからなかった旨の表示
    と、最も長い間使用されなかったデータ・セグメントを
    記憶する前記第1のキャッシュ・メモリ手段中の位置を
    示すポインタ値と、前記受信したデータ・セグメントと
    が前記受信手段に送出されることを特徴とする、請求項
    20に記載のシステム。
  22. 【請求項22】 前記見つからなかった受信データ・セグ
    メントを前記第1のキャッシュ・メモリ手段中の1つの
    位置に、最も長い間使用されなかったデータ・セグメン
    トの代りに記憶し、前記第2のキャッシュ・メモリ手段
    を更新して前記見つからなかった受信データ・セグメン
    トを最も最近使用されたデータ・セグメントであるとし
    て記憶する前記第1のキャッシュ・メモリ手段中の前記
    位置を指示し、それに応じて前記第2のキャッシュ・メ
    モリ手段中の残りの位置識別子を適応させる手段、 をさらに備えて成ることを特徴とする、請求項21に記
    載のシステム。
  23. 【請求項23】 前記受信手段が、 複数のデータ・セグメントを、前記第1のキャッシュ・
    メモリ手段中に記憶されるデータ・セグメントと同期し
    て記憶する受信キャッシュ・メモリ手段と、 受信位置識別子に応答して、前記受信キャッシュ・メモ
    リ手段中の対応する位置とその中に記憶されたデータ・
    セグメントとをアクセスする手段と、 を備えて成ることを特徴とする、請求項22に記載のシ
    ステム。
JP28397693A 1992-10-19 1993-10-18 データ圧縮/伸長システム及び方法 Expired - Fee Related JP3499903B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US963,201 1992-10-19
US07/963,201 US5450562A (en) 1992-10-19 1992-10-19 Cache-based data compression/decompression

Publications (2)

Publication Number Publication Date
JPH06242924A JPH06242924A (ja) 1994-09-02
JP3499903B2 true JP3499903B2 (ja) 2004-02-23

Family

ID=25506901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28397693A Expired - Fee Related JP3499903B2 (ja) 1992-10-19 1993-10-18 データ圧縮/伸長システム及び方法

Country Status (6)

Country Link
US (1) US5450562A (ja)
EP (2) EP0880100A3 (ja)
JP (1) JP3499903B2 (ja)
KR (1) KR100319657B1 (ja)
DE (1) DE69328855T2 (ja)
SG (1) SG75758A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787472A (en) * 1995-07-31 1998-07-28 Ibm Corporation Disk caching system for selectively providing interval caching or segment caching of vided data
US5689255A (en) * 1995-08-22 1997-11-18 Hewlett-Packard Company Method and apparatus for compressing and decompressing image data
US5764235A (en) 1996-03-25 1998-06-09 Insight Development Corporation Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution
US6148376A (en) 1996-05-10 2000-11-14 Apple Computer, Inc. Method and apparatus for an improved stack arrangement and operations thereon
US5765157A (en) * 1996-06-05 1998-06-09 Sun Microsystems, Inc. Computer system and method for executing threads of execution with reduced run-time memory space requirements
US5936616A (en) * 1996-08-07 1999-08-10 Microsoft Corporation Method and system for accessing and displaying a compressed display image in a computer system
JP3368157B2 (ja) * 1996-11-18 2003-01-20 キヤノン株式会社 データ圧縮装置、方法及びシステム
US5960465A (en) * 1997-02-27 1999-09-28 Novell, Inc. Apparatus and method for directly accessing compressed data utilizing a compressed memory address translation unit and compression descriptor table
US6175896B1 (en) * 1997-10-06 2001-01-16 Intel Corporation Microprocessor system and method for increasing memory Bandwidth for data transfers between a cache and main memory utilizing data compression
US6324621B2 (en) 1998-06-10 2001-11-27 International Business Machines Corporation Data caching with a partially compressed cache
US6128094A (en) * 1998-07-08 2000-10-03 Hewlett-Packard Company Printer having processor with instruction cache and compressed program store
US6218970B1 (en) * 1998-09-11 2001-04-17 International Business Machines Corporation Literal handling in LZ compression employing MRU/LRU encoding
US6192157B1 (en) 1998-10-27 2001-02-20 Hewlett-Packard Company Modifications of postscript adaptive data compression (ADC) for 3 plane, 8 bit color images, JPEG lossy compression, and variable Q factors
US6738150B1 (en) 1999-04-14 2004-05-18 Hewlett-Packard Development Company, L.P. Methods and systems for processing image data
US6594029B1 (en) 1999-04-19 2003-07-15 Hewlett-Packard Company Guard-banding methods, dynamic guard-banding methods, and related apparatus for real time image-data processing
US6832187B1 (en) 1999-05-10 2004-12-14 Hewlett-Packard Development Company, L.P. Methods of providing page protection in a digital printing system having multiple output devices
US6622004B1 (en) * 1999-06-07 2003-09-16 Matsushita Electric Industrial Co., Ltd. Data transceiving system and method
US7155062B1 (en) 1999-11-17 2006-12-26 Genicom Corp. System and method for performing pattern matching image compression
AU766759B2 (en) * 2000-04-18 2003-10-23 Canon Kabushiki Kaisha Image cache system and method
US6856651B2 (en) * 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
EP1330720B1 (en) * 2000-07-25 2008-05-28 Juniper Networks, Inc. Network architecture and methods for transparent on-line cross-sessional encoding and transport of network communications data
US20030028673A1 (en) * 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
US7230949B2 (en) * 2001-08-24 2007-06-12 Juniper Networks, Inc. Efficient method and system for automatic discovery and verification of optimal paths through a dynamic multi-point meshed overlay network
EP1318665B1 (en) * 2001-12-06 2015-02-25 Canon Kabushiki Kaisha Image processing apparatus and method, program, and storage medium
US6816949B2 (en) * 2002-01-03 2004-11-09 Intel Corporation Method and apparatus for cache management
AU2002951013A0 (en) * 2002-08-27 2002-09-12 Sunbay Software Ag System for improved network data access
US7580429B1 (en) * 2002-09-05 2009-08-25 U.S. Robotics System and methods for improving data compression
FR2846114A1 (fr) * 2002-10-16 2004-04-23 Thomson Licensing Sa Dispositif de memorisation d'une liste d'elements et procede de memorisation d'un element dans un tel dispositif
US7181556B2 (en) * 2003-12-23 2007-02-20 Arm Limited Transaction request servicing mechanism
US20060242368A1 (en) * 2005-04-26 2006-10-26 Cheng-Yen Huang Method of Queuing and Related Apparatus
US7436330B2 (en) * 2006-03-24 2008-10-14 The University Of Mississippi High-speed data compression based on set associative cache mapping techniques
US7339507B1 (en) * 2006-09-13 2008-03-04 Jiun-In Guo Device for video decoding
US8401181B2 (en) * 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8731190B2 (en) * 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8762348B2 (en) * 2009-06-09 2014-06-24 Emc Corporation Segment deduplication system with compression of segments
US8013762B2 (en) * 2009-11-03 2011-09-06 Seagate Technology Llc Evaluating alternative encoding solutions during data compression
CN102194499A (zh) * 2010-03-15 2011-09-21 华为技术有限公司 一种压缩字典同步的方法和装置
US8687902B2 (en) * 2012-03-29 2014-04-01 Intel Corporation System, method, and computer program product for decompression of block compressed images
KR20150134718A (ko) * 2014-05-22 2015-12-02 에스케이플래닛 주식회사 압축 방식을 이용한 데이터 소스 관리 장치 및 방법
US9501419B2 (en) * 2014-10-08 2016-11-22 HGST Netherlands B.V. Apparatus, systems, and methods for providing a memory efficient cache
US11343715B1 (en) * 2020-08-23 2022-05-24 Rockwell Collins, Inc. Header compression for network
CN112286488B (zh) * 2020-09-17 2023-06-16 昆明理工大学 一种基于数据包效用值的缓存替换方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4369463A (en) * 1981-06-04 1983-01-18 International Business Machines Corporation Gray scale image data compression with code words a function of image history
US4562536A (en) * 1983-06-30 1985-12-31 Honeywell Information Systems Inc. Directory test error mode control apparatus
US4626824A (en) * 1985-06-11 1986-12-02 International Business Machines Corporation Apparatus and algorithm for compressing and decompressing data
US4783735A (en) * 1985-12-19 1988-11-08 Honeywell Bull Inc. Least recently used replacement level generating apparatus
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
GB8802102D0 (en) * 1988-01-30 1988-02-24 Int Computers Ltd Cache memory
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US5125085A (en) * 1989-09-01 1992-06-23 Bull Hn Information Systems Inc. Least recently used replacement level generating apparatus and method
US5185856A (en) * 1990-03-16 1993-02-09 Hewlett-Packard Company Arithmetic and logic processing unit for computer graphics system
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory
US5263136A (en) * 1991-04-30 1993-11-16 Optigraphics Corporation System for managing tiled images using multiple resolutions

Also Published As

Publication number Publication date
EP0880100A3 (en) 1999-08-25
KR100319657B1 (ko) 2002-04-06
DE69328855T2 (de) 2000-11-02
US5450562A (en) 1995-09-12
SG75758A1 (en) 2000-10-24
EP0593968B1 (en) 2000-06-14
EP0880100A2 (en) 1998-11-25
DE69328855D1 (de) 2000-07-20
EP0593968A1 (en) 1994-04-27
JPH06242924A (ja) 1994-09-02

Similar Documents

Publication Publication Date Title
JP3499903B2 (ja) データ圧縮/伸長システム及び方法
US5229768A (en) Adaptive data compression system
JP2713369B2 (ja) データ圧縮装置及び方法
US5281967A (en) Data compression/decompression method and apparatus
US5408542A (en) Method and apparatus for real-time lossless compression and decompression of image data
JP3367832B2 (ja) 圧縮装置、圧縮方法及びコンテキスト提供装置
EP0970419B1 (en) A lempel-ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
JP3459030B2 (ja) 符号化システム
US20030102989A1 (en) Coding apparatus and decoding apparatus
EP0666651A2 (en) Apparatus and method for lempel ziv data compression with management of multiple dictionaries in content addressable memory
EP0471518B1 (en) Data compression method and apparatus
US20060271761A1 (en) Data processing apparatus that uses compression or data stored in memory
JPH07104971A (ja) ネットワークパケットに適用される小型辞書を用いた圧縮方法
JPH0869370A (ja) データ圧縮方法およびシステム
US5673042A (en) Method of and an apparatus for compressing/decompressing data
CN101449462A (zh) 基于集合关联高速缓存映射技术的高速数据压缩
US6304676B1 (en) Apparatus and method for successively refined competitive compression with redundant decompression
US10897270B2 (en) Dynamic dictionary-based data symbol encoding
US6789128B1 (en) System and method for reducing network traffic between two computing devices
US11139828B2 (en) Memory compression method and apparatus
US7684076B2 (en) Method and apparatus for raster image processing
KR20080026772A (ko) Lempel-Ziv 압축 방법의 복원 속도를 보완한압축 방법
US6028962A (en) System and method for variable encoding based on image content
JPH10341166A (ja) データ量に適応するデータ圧縮方法
JPH05134847A (ja) データ圧縮方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081205

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091205

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101205

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101205

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees