JP4057650B2 - 大ギャップを有するスライド窓データ圧縮システム - Google Patents
大ギャップを有するスライド窓データ圧縮システム Download PDFInfo
- Publication number
- JP4057650B2 JP4057650B2 JP50790897A JP50790897A JP4057650B2 JP 4057650 B2 JP4057650 B2 JP 4057650B2 JP 50790897 A JP50790897 A JP 50790897A JP 50790897 A JP50790897 A JP 50790897A JP 4057650 B2 JP4057650 B2 JP 4057650B2
- Authority
- JP
- Japan
- Prior art keywords
- match
- data
- symbols
- compression system
- symbol
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/417—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
- H04N1/4175—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding involving the encoding of tone transitions with respect to tone transitions in a reference line
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
Description
本発明はデータ圧縮およびデータ復元の分野に関する。一層詳細には、本発明は、適応性かつ無損失のスキームを使用してデータを圧縮し、またバイレベルのイメージデータで良好に働くデータ圧縮器に関する。
発明の背景
データ圧縮の目的は、圧縮されるデータに対して必要とされる伝送時間および記憶空間を減ずることである。データ圧縮はテキストデータおよびイメージデータを含む種々のデータ形式で有用である。多くの圧縮スキームがテキストデータおよびイメージデータの双方に対して開発されてきた。Witten、MoffatおよびBell著の図書Managing GigabytesおよびStorer編の図書Image and text Compressionはこのような圧縮スキームを記述している。
データ圧縮器の効率は、圧縮されないキャラクタの数を圧縮されるキャラクタの数により除算することにより計算される圧縮比と呼ばれる量により測られる。圧縮比が高いほど、圧縮されるデータの密度は大きい。圧縮比が2であるということは圧縮後のキャラクタの数が圧縮前のキャラクタの数の半分であることを意味する。
データ圧縮器の他の重要な特性は、いかに正確復元器(decompressor)からの出力が元の入力に合致するかである。圧縮方法は2つの分類、無損失および有損失、に分けられ得る。無損失の方法は圧縮されたデータからの元のデータの正確な再構成を許す。無損失の方法はテキスト圧縮への応用またはデータがその元の条件に完全に復元されることが不可欠である他の応用に最も適切である。有損失の方法は圧縮および復元の間に多少の誤りが生起することを許す。圧縮および復元の方法のこれらの形式は、ディジタルにサンプルされるアナログデータのような、良好な近似で十分であるところに使用されている。
辞書ベースの圧縮スキームは、テキスト圧縮に対して広く普及している。これらの無損失の圧縮システムでは、到来するデータが将来のデータを圧縮するのに使用される辞書を作るのに使用される。詳細には、スライド辞書またはスライド窓圧縮器は最後のNのテキストシンボルを辞書として使用する。これは、新しいシンボルが到来するごとに圧縮辞書を更新するので、適応性のスキームである。データは到来するシンボルと辞書の内容との間の合致を探索することによりコード化される。もし合致が見い出されないならば、到来するシンボルは“生”でまたはそのまま送られる。もし到来するシンボルのストリングと、最初のバイトが入力される時にその最初のバイトを窓のなかに有するストリングとの間に、合致が見い出されるならば、個々のシンボルを送る代わりにコード対が送られる。コード対は到来するデータに対して相対的な合致の窓のなかの位置と、合致するストリングの長さとから成っている。圧縮はこのようなシステムのなかで、コード対を表すのに必要とされるビットの数が個々のシンボルを表すのに必要とされるビットの数よりも小さい時に達成される。スライド窓圧縮器に対する1つの実施例は“シストロリック-ストリング合致論理による適応性データ圧縮システム”という名称の1994年6月13日付けの米国特許出願第08/259,760号明細書に開示されており、その内容を参照によりここに組み入れたものとする。
スライド窓テキスト圧縮器は、シンボルのいくつかのストリングは反復的に生起し、またシンボルはそれらの隣のシンボルに似ているという仮定に頼っている。このことはテキストファイルの場合にしばしば真であるので、この形式の圧縮器はこのようなファイルを圧縮するのにかなり有効に使用され得る。他方において、この仮定はグレイスケールまたはカラーイメージのようないくつかのイメージデータに対しては良好な仮定ではない。この形式の応用では、イメージの隣接領域は類似して(たとえばグレイの少し異なる濃淡で)現れるが、正確に同一には現れない。辞書ベースの圧縮器は上記のようにシンボルの間の正確な合致を必要とし、またこのようなイメージでは良好に働かないであろう。この形式のイメージデータに対する一層有効なアプローチは、Gregory Wallaceによる論文“JPEG静止画像圧縮標準”、ACM通信、1991年4月に記載されているJPEG標準のような有損失のスキームの部類の1つ、またはRice、YehおよびMillerによる“非常に高い速度の汎用の無損失のコード化モジュールに対するアルゴリズム”、JPL出版物91-1に記載されているRiceアルゴリズムのような差動的コード化を行う無損失の圧縮アルゴリズムを使用することである。
ファクシミリまたは計算機プリンタ文書に含まれているバイレベルまたは白黒イメージのようないくつかの形式のイメージデータは、スライド窓または地の辞書ベースの圧縮器を使用して効果的に圧縮される。これらのイメージはたいてい画素あたり1つのビット、たとえば黒もしくは白、を使用して表されるので、単一の画素を表すのに1つよりも多いビットが使用されるグレイスケールまたはカラーイメージの場合にくらべて、ストリングの間の正確な合致がはるかに得られやすい。バイレベルの二次元データの圧縮を最大にするのには、水平方向および垂直方向の双方のデータ相関を考慮に入れる必要がある。両相関はスライド窓を少なくとも1つの走査線を含むのに十分に大きくすることにより検出され得る。しかし、1つの走査線は、もし走査またはプリント密度が非常に高いならば、多数のシンボルを含み得る。この大きい窓サイズはスライド窓圧縮器の実現を複雑にする。
多くのより簡単な圧縮器がバイレベルデータに対して開発されてきた。この応用に対する明白な選択は、ランレングス圧縮コードである。ランレングスコードの基礎となっているアイデアは、一般に可変長さのコードを使用して0および1のランがランの長さによってコード化されていることである。ランはビットごともしくはバイトごとであってよい。たとえば、Witten、MoffatおよびBell著の図書Managing Gigabytesに記載されているようなファクシミリ伝送用のCCITTグループ3およびグループ4標準は、到来するデータと以前の走査線との比較も組み入れるランレングスコード化スキームを規定している。これらの形式のスキームは一般に最も簡単なデータに非常に良好に適しており、他方においてスライド窓圧縮器は、単なる1および0のランよりも複雑なパターンを考慮に入れるので、一層複雑なバイレベルのデータに一層良好に適している。ランレングスコーダはスライド窓圧縮器のサブセットであるとみなされ得る。なぜならば、スライド窓圧縮器は以前に圧縮されたシンボルとの合致を許すことによりランを考慮に入れるからである。こうして、0および1のランが圧縮されるだけでなく、他のバイトパターンのランも圧縮される。
バイレベルイメージ圧縮に対して、必要とされることは、簡単にインプリメントし得ると共に一層複雑なイメージの場合にも良好な圧縮結果を達成し得る圧縮スキームである。
本発明の概要
大ギャップを有するスライド窓データ圧縮システムはインプリメントが簡単であり、また広範囲なバイレベルイメージにわたって良好な圧縮結果を与える。非常に小さい窓サイズを有するスライド窓圧縮器は、少なくともデータシンボルの1つの走査線を保持するのに十分に大きい記憶バッファと共に利用される。到来するデータシンボルと1つの特定のプログラム可能な位置に記憶されているシンボルとの間の合致をチェックする回路が記憶バッファと結び付けられている。このプログラム可能な位置は、好ましくは、正確に1つの走査線長さだけ離れている。合致位置は小さい窓の範囲内にあるか、もしくは特定のプログラム可能な位置に正確に等しい。圧縮器全体が大ギャップを有するスライド窓(SWBG)として見られ得る。このスライド窓は走査線の長さに相当する長さであり、後続の大ギャップを有する小さい窓と、その後の走査線の端における1つの特定のプログラム可能な位置とから成っている。
【図面の簡単な説明】
図1は本発明による大ギャップを有するスライド窓(SWBG)圧縮器の概要ブロック図を示す。
図2aは大ギャップを有するスライド窓の概念図を示す。
図2bはスライド窓の二次元の解釈を示す。
図3aは本発明の小さいスライド窓に対して利用されるMバイトCAMの概要ブロック図を示す。
図3bはMバイトCAMのなかに使用されるストリング合致モジュールの概要ブロック図を示す。
図3cはMバイトCAMのなかのストリング合致モジュールの作動を制御する状態遷移図を示す。
図3dはCAM書込みアドレスおよび書込みイネーブル信号を発生するのに使用される論理回路の概要ブロック図を示す。
図3eはCAM合致アドレスを発生するのに使用される論理回路の概要ブロック図を示す。
図4aは合致選択モジュールの概要ブロック図を示す。
図4bは合致選択状態機械の作動を制御する状態遷移図を示す。
図4cはポストコード-エンコーダの論理回路の概要ブロック図を示す。
図5は本発明の復元器の概要ブロック図を示す。
好ましい実施例の詳細な説明
本発明は、大ギャップを有するスライド窓(SWBG)圧縮器として知られているハードウェア適応性データ圧縮システムである。SWBG圧縮器のブロック図が図1に示されている。圧縮されるべき到来するシンボルCHARIN101を運ぶデータバスは、Mバイトの内容アドレスメモリ(CAM)スライド窓圧縮器103および走査線バッファ105に接続されている。プログラム可能走査線値S信号線119も走査線バッファ105に入力として接続されている。MバイトのCAMベースのスライド窓圧縮器103は4つの出力を有する。CAM合致信号線GMAT107、CAM合致アドレスバスCADD109、書込みアドレスバスWADD111および現在バイトデータバスBO113の4つである。すべての出力107、109、111および113は、合致選択モジュール115に入力として接続されている。走査線バッファ105は2つの出力を有する。すなわち、最後の辞書リセット以後に1つの走査線全体が入力されていたどうかを指示する信号線VALID123、および到来するシンボルから正確に1走査線長さだけ離れているメモリ位置において走査線バッファのなかに記憶されているシンボルを伝送するデータバスBS121である。走査線バッファ105からの出力121および123の双方も、合致選択モジュール115に入力として接続されている。合致選択モジュール115は、走査線およびCAM合致の双方が生起している時に、走査線を出力するかCAM合致を出力するかを決定する。合致選択モジュール115の出力は、走査線合致信号線SM411、CAM合致信号線CM409および生データ信号線RD429を含んでおり、これらの信号線は可変長さのポストコード-エンコーダ127に入力として接続されており、このエンコーダ127は圧縮されたデータを次々と信号線129を経て記憶システムに出力する。
図1中に示されているように、データバス101を経て到来する圧縮されるべきシンボルまたはバイトCHARINは、2つの並列な経路を通る。第1の経路はMバイトのCAMベースのスライド窓圧縮器103を通る経路であり、そこでスライド窓のなかに含まれている以前のM個のシンボルとの比較が行われる。圧縮器103は適切な形式のスライド窓圧縮器を使用して実現され得る。好ましくは、圧縮器103は前記の米国特許出願第08/259,760号明細書に記載されている形式のものである。この圧縮器103の作動は後で詳細に説明される。好ましい実施例では、CAMベースのスライド窓圧縮器の窓サイズMは16に等しい。スライド窓圧縮器103は、到来するシンボルをCAM103のなかに記憶されているシンボルと比較し、また適切な情報を合致選択モジュール115に出力する。
圧縮されるべきシンボルまたはバイトCHARINが通る第2の経路は、走査線バッファ105を通る経路である。走査線バッファ105は先ず到来するシンボルをその後の検索のための次に利用可能なメモリ位置に記憶する。プログラム可能な走査線値Sは走査線のバイト長さに等しい。好ましくは、走査線バッファ105は2048バイトを記憶し得る。この実施例では、走査線長さ値Sは1から2047までの範囲内の任意の数であり得るので、走査線長さ値Sを特定するのに11ビットが必要とされる。
走査線長さ値Sを使用して、走査線バッファ105はデータバス121上にシンボルBSを出力する。シンボルBSは到来するシンボルから正確に走査線長さ値Sシンボルだけ離れて走査線バッファのなかに記憶されているシンボルである。走査線バッファ105はまた、最後の辞書リセット以後に少なくともS値が走査線バッファのなかに入力されていることを合致選択モジュール115に報知する信号を信号線VALID123上に出力する。従って、信号線VALID123上の信号は、データバス121上の値BSが正当であることを合致選択モジュール115に報知する。
CAMベースのスライド窓圧縮器103および走査線バッファ105からの情報を使用して、合致選択モジュール115は、もし1つよりも多い合致が生起しているならば、どの合致を選ぶかを決定し、または、もし合致が生起していないならば、生バイトを決定する。可変長さのポストコード-エンコード127は、合致の長さを決定するのに合致選択モジュール115からの信号を使用し、また次いで走査線合致、CAM合致または生バイトを可変ビット長さのコード語にエンコードする。可変長さのコーダ語は次いで連結され、バイトに分けられ、また出力信号線129を経て記憶または伝送システムに送られる。
CAMベースのスライド窓圧縮器103および走査線バッファ105は、概念的に図2aに示されているような大ギャップを有するスライド窓として考察され得る。図2aは本発明の概念を示す目的でのみ示されており、本発明の実際的なインプリメントを示すものではない。図2aに示されているスライド窓はS+1のセル201を含んでいる。0ないしM−1の番号を付けられている右側のMのセルは、スライド窓圧縮器103のスライド窓を表し、ここに、いま到来中のバイトを含めて、データストリームのなかの到来するシンボルの最後のMバイトが記憶される。到来しているバイトを記憶するセル0を例外として、これらのセルの各々のなかで、到来しているバイトとこのスライド窓のなかに記憶されているバイトとの間の合致がチェックされる。
ギャップ部分203が最初のMセルに続く。ギャップ部分203のなかのセルは記憶のために使用されるが、到来しているバイトとの合致はチェックされない。このギャップのなかにS+1−Mのセルが存在する。ギャップ部分203は、到来するデータのバイトが記憶される走査線バッフアを表す。最後のセル205はシンボルBSを表し、また正確に1つの走査線長さSだけ現在到来しているバイトから離れているバイトを含んでいる。合致はこのセルのなかで、以下に説明されるように、合致選択モジュール115によりチェックされる。
走査線長さSの値がプログラム可能であれば、図2aのスライド窓はギャップを有する可変長さのスライド窓である。図2aの図示は、新しいバイトが入るたびにセル205のなかに記憶されているバイトが窓から外へシフトして、到来するバイトが窓の右側にシフトされ、また先に記憶されたバイトが左にシフトすることを示唆している。本発明の実際の実施例では、スライド窓は固定して保持されているデータと移動している書込みアドレスポインタおよび状態情報を有する循環するキューである。
本発明のスライド窓の第2の概念的な表し方が図2bに示されている。この図面も本発明の概念を示す目的でのみ示されており、本発明の実際的な実施を示すものではない。図2bには、スライド窓211の位置が圧縮されている現在の走査線213および以前に圧縮された走査線215に関して示されている。到来するデータバイトから正確に走査線長さだけ離れているセル217は到来するデータバイトを記憶するセル219の上に置かれて示されている。
スライド窓圧縮器103は、図3a中に示されているように、必要な制御回路を有するストリング合致モジュール(SMM)301の連鎖から成っている。現在の入力シンボルは、現在のストリング合致モジュールに書かれる。これは、書込みイネーブル信号線WREN(j)321をイネーブルすることにより、SMM(j)301としてシンボル化されている。後続のクロックサイクルで、次の入力がアレイのなかの次のストリング合致モジュールSMM(j+1)に書かれる。
jの値は0で開始し、またクロックサイクルごとに最大1回ずつ1だけインクリメントされる。データはアレイのなかで固定されているが、状態情報は状態信号線ST(j)上の隣接するSMMの間をシフトされている。状態信号線ST(j)は、合致が生起していないこと、SMM301が合致の開始点にあることもしくはSMM301が合致の中央にあることを指示する。
単一のグローバル合致(GMAT)信号107は、いずれかのSMM301が合致の中央にある時を指示するのに使用される。信号線GMAT107はSMMの各々への入力である。信号線GMAT107は2つの機能を有する。グローバル合致信号GMAT107は、CAMが少なくとも2つのキャラクタの合致するストリングを検出していることを表示する。第2に、グローバル合致信号GMAT107は、最長の合致するストリングのみが報告されることを保証するメカニズムを提供する。グローバル合致信号GMAT107は、後で説明されるSMM301モジュールの内側で状態機械363を制御することにより第2のメカニズムを提供する。グローバル合致信号GMAT107は、ストリング合致信号線STRMAT(j)307のいずれかが能動的であり、また信号ENABLE130が能動的である時に、ORゲート309およびANDゲート310により能動化される。信号線ENABLE130は一層良好な圧縮のための好ましい実施例で使用されており、また合致選択モジュール115と共に説明されている。
各SMM301は近似-合致-イネーブル信号NMEN(j)を有する。近-合致-イネーブル信号NMEN(j)は、最も長い現在のストリング合致を報告するSMMのどれがキューのヘッドに最も近いかを決定するべく、SMMの間に連鎖されている。キューのヘッドは、現在の入力シンボルが書込まれた、書込みイネーブル信号線WEEN321が能動的であるアレイのなかのSMM301であるとみなされている。
各SMM301は最近似-ワード-合致信号NWMAT(j)323をも有する。各クロックサイクルの間にただ1つの最近似-ワード-合致信号NWMAT(j)323が仮定され、能動的な書込みイネーブル信号WREN(j)に最も近い最長の現在のストリング合致の最後のシンボルを含んでいるSMM301の位置を表示する。
ストリング合致モジュールの構造は図3bに示されている。各SMM301はCAMワード361、ストリング合致状態機械363およびアドレス論理モジュール365から成っている。
各CAMワード361は、そのSMM301に対する書込みイネーブル信号線WREN321が能動的である時に、入力バスCHARIN101からの1バイトのシンボルを記憶する。書込みイネーブル信号線WREN321が不能動的であり、またCAMワード361が書かれていない時には、キューのヘッドに現在書かれている入力シンボルが探索されている。キャラクタ合致信号線CHMAT367は、CAMワード361の内容が入力バスCHARIN101上のシンボルと合致する時、CAMワード361により仮定されている。このキャラクタ合致信号は次いでストリング合致状態機械(SMSM)363に通される。キャラクタ合致信号線CHMAT367は、書込みイネーブル信号線321がSMM301のなかで能動的である時、ディスエーブルされている。
SMSM363の機能は、最後のシンボルが現在のSMM301の結び付けられているCAMワード361のなかに存在しているバッファストリングの状態を追跡することである。各SMM301は、バッファストリングが現在の入力ストリングと合致しない、合致の開始である、または合致の中央であることを仮定する信号線の対STOUT369を有する。この信号線の対STOUT369は、信号線STIN371の対としてアレイのなかの次のSMSM363に連結されている。この状態情報は、新しいキャラクタが入力バスCHARIN101から入力されるつど一回、SMSMの間をシフトされる。状態情報はイネーブル信号WREN321と同一の方向に通される。
各SMM301は、SMSM363とアドレス論理モジュール365との間に連結されているストリング合致信号線STRMAT307を含んでいる。信号線STRMAT307は、バッフアストリングが少なくとも現在の入力ストリングの最後の2つのキャラクタと合致する、たとえば合致の中央にある時、SMSM363により仮定されている。状態情報は、新しい入力シンボルが受け入れられた各クロックサイクルで、能動的な書込みイネーブル信号WREN321の方向に、右にシフトされる。
アドレス論理モジュール(ALM)365は、近-ワード-合致信号線NWMAT323および近-合致-イネーブル-出力信号線NMENOUT373を出力するモジュールである。ALM365は、SMM301のなかの合致が能動的書込みイネーブル信号線WREN321に最も近いか否かを決定する組み合わせ論理ブロックである。これは、多重ストリング合致が生起する時に必要とされる。ALM365は、SMM301が本当に最も近い合致である時に、近-ワード-合致信号線NWMAT323を仮定する。信号線NWMAT323は、現在のSMM301のなかの信号線STRMAT307と隣のSMMから入力されている信号線NMENIN375のなかの近-合致-イネーブルとから導き出される。信号線NMENIN375のなかの近-合致-イネーブルが能動的である時、現在のSMM301とキューのヘッドとの間に能動的なSTRMAT信号を含んでいるSMMは存在しない。従って、近-ワード-合致信号線NWMAT323は、現在のSMM301が、現在の入力ストリングと合致する最も長いバッフアストリングの最も新しい段階の最後のシンボルを含んでいることを仮定する。もし信号線NMENIN375が能動的であり、また信号線STRMAT307も能動的であれば、現在のSMM301は最も近い合致を含んでいる。もし信号線NMENIN375が不能動的であれば、最も近い合致は以前の能動的書込みイネーブル信号線WREN321により近い。ALM365も隣のSMMに対する信号NMENIN375である出力信号NMENOUT373を生ずる。信号線NWMAT323およびNMENOUT373の基本的機能は下式により与えられている。
近-合致-イネーブル信号NMENOUT373およびNMENNIN375は、書込みイネーブル信号WREN321の運動と反対の方向に通される。
ストリング合致状態機械(SMSM)363に対する状態遷移図が図3cに示されている。SMSM363は、その出力、ストリング合致信号線STRMAT307、が単に以前のSMM301の現在の状態の関数であり、また以前のSMM301へのどの入力にも複合的に関係しない点で、Mooreスタイル状態機械に似ている。このことは本発明のような応用において、より大きいクロック速度を許すという利点を有する。
通常の状態機械と異なり、現在の状態変数が次の状態論理に入力としてフィードバックされず、それらはアレイのなかの隣のSMM301のSMSM363にシフトされる。従って、SMSMモジュール363は同期論理アレイ要素として考えられ得る。ここに存在するSMSM機能およびグローバル合致プロトコルが、入力データがバッフアのなかで物理的にシフトし、またSMSM状態情報が固定にとどまるWhitingスタイル圧縮アーキテクチュアのクロックレート改善をも可能にすることは特記されるべきである。こうして、Whitingスタイル-アーキテクチュアのなかで、SMSMは通常のMooreスタイル状態機械として現れる。
SMSMの速い初期化を容易にするため、辞書のリセット時に、すべてのSMSMはリセット状態R381に強制的に入れられる。リセット状態R381は、バッフアワードがまだ書かれておらず、従ってまたSMSM363がグローバル合致信号GMAT107を仮定し得ないことを意味する。CAMワード361は空であるとみなされており、また合致はリセット状態R381の間は生起し得ない。SMSM363は、SMMが書かれているCAMワード361の後でのみリセット状態R381を去る。書込みイネーブル信号線WREN321が所与のバッフアワードに対して仮定されている時、そのSMSM363は状態X383に達し、また合致ストリングを捜し始める。最後のモジュール(モジュールn−1)のリセット状態が最初のモジュール(モジュール0)に通されるのを阻止するべく、簡単な論理回路が使用されている。この回路は、もしモジュールn−1がリセット状態R381にあるならば、Xの状態を常に通す。
SMSM363は、CAMワード361の内容が現在の入力ストリングと合致しないか、合致の開始にあるか、または少なくとも現在の入力ストリングの最後の2つのキャラクタと合致する合致ストリングのなかにあるかを決定する。SMSM363がリセット状態R381から状態X383へ移動し終わっている時、このことは、システムが圧縮すべきデータの受信を開始しているが、SMM301に対するCAMワード361のなかに記憶されているワードがキューのヘッドに記憶されている現在の入力シンボルと合致しないことを意味する。信号線CHMAT367が能動化されて、CAMワード361のなかに記憶されているワードがキューのヘッドに記憶されている現在の入力シンボルと合致しないことを信号する時、SMSM363は状態Y385に移動して、最後の入力シンボルのみが合致されたことを表示する。
もしSMSM363が既に状態Y385にあるならば、第2の合致キャラクタがSMSM363を状態Y385から状態Z387へ移動する。状態Z387は、現在のSMM301が最大の知られている長さの圧縮可能な合致ストリングを検出し終わっていることを表す。ここで信号線STRMAT307は、そのSMSM363が、信号線GMAT107を能動化する状態Z387へ移動し終わっているSMM301に対して能動化されている。最長の合致の1つよりも多い場合が生起し得るので、1つよりも多いSMM301が信号線STRMAT307を仮定し、また同一のクロックサイクルのなかで状態Z387へ移動し、現在の最長の合致ストリングの多重の場合が検出されていることを表示する。
ストリング合致状態機械SMSM363は状態Yへ、また次いで状態Zへ遷移しなければならないので、グローバル合致信号GMAT107は合致の第2のバイトまで能動的にならない。いったん能動状態になると、グローバル合致信号GMAT107は、入力バスCHARIN101上のキャラクタが、隣の状態機械363がZ(合致)状態にあるセル361のすべてとの合致に失敗するまで、能動状態にとどまる。異なる置き換えにおけるバック-ツー-バックのCAM合致が可能である。グローバル合致信号GMAT107は第2の合致の第1のバイトに対して簡単にデアサート(de-assert)する。
ストリング合致がスライド窓圧縮器103のなかで生起する時、グローバル合致信号GMAT107は能動化されており、また合致選択モジュール115が通知されている。合致されたCAMワード361のアドレスはアドレスバス109を経て合致選択モジュール115にも伝送される。
図3dは、アドレスバス111を経て合致選択モジュール115に伝送されるCAM書込みアドレスWADDを計算するのに必要とされるカウンタ341を示す。好ましい実施例では、スライド窓圧縮器103は16のセルを含んでおり、またこうして4ビットの書込みアドレスカウンタ341で十分である。従って、代替的な実施例で、もしスライド窓圧縮器103が追加的なセルを含んでいるならば、書込みアドレスカウンタ341は追加的なビットを含んでいるように拡張されなければならない。書込みアドレスカウンタ341は、書込みアドレスバスWADD111上の書込みアドレスを図3a中に示されているようにSMMアレイにより必要とされる書込みイネーブル信号WREN(j)321に対する適切な値に変換するのに使用されている書込みアドレスバスWADD111によりアドレスデコーダ343に接続されている。
図3eは、アドレスバス109を経て伝送されるべきCAM合致アドレスCADDを計算するアドレス-エンコーダ351を示す。ALM365の各々からの近-ワード-合致信号NWMAT(j)323は、アドレス-エンコーダ351に入力され、またアドレスバス109上に出力されるCAM合致アドレスCADDを計算するのに使用される。図3dおよび図3eの双方に示されているハードウェアはスライド窓圧縮器103のなかに含まれている。
CAMベースのスライド窓圧縮器103への並別なデータ経路は、走査線バッフア105である。走査線バッフア105はデータバスCHARIN101から到来するシンボルを受け入れ、そのシンボルをバッフアのなかに記憶し、また以前にSバイト前に記憶されたシンボルBSをデータバス121上に出力する。走査線バッフア105はプログラム可能な長さの先入れ-先出し(FIFO)バッフアとして作動する。シンボルBSを出力することに加えて、走査線バッフア105は信号線123上に信号VALIDをも出力する。信号VALIDは、少なくともSバイトが最後の辞書リセット以後に走査線バッフア105のなかに記憶されている時に、能動的である。辞書リセットの後に、信号VALIDは、正確にSバイトの1つの走査線が走査線バッフア105のなかに記憶された後に能動化されている。
合致選択モジュール115の概要ブロック図が図4aに示されている。現在の入力バイトBOと、1つの走査線長さだけ離れている以前の入力バイトBSとを伝送する信号線113および121は、それぞれコンパレータ401に入力として接続されている。2つのバイトBOおよびBSが走査線バッフア105のなかで正確にSバイトの走査線長さだけ離れていることは特記されるべきである。コンパレータ401は2つのバイトBOおよびBSを比較し、また結果CMPを信号線403上に出力する。信号CMPは2つのバイトBOおよびBSが等しい時のみ能動的である。信号線403はANDゲート405に入力として接続されている。信号VALIDを伝送する信号線123はANDゲート405に他の入力として接続されている。論理ゲート405は信号CMPおよび信号VALIDに論理的AND演算を行い、また結果SMATを信号線407上に出力する。
走査線合致信号407は合致選択状態機械408に入力として接続されている。グローバル合致信号GMATを伝送する信号線107も合致選択状態機械408に入力として接続されている。後で詳細に説明されるように、合致選択状態機械408は、2つの並列な経路上での合致の間のアービトレーションを行い、CAM合致が存在し、かつコンパレータ401が2つのバイトBOおよびBSが等しいことを信号する時に、CAM合致に優先を与える。合致状態機械は、CAM合致が選択される時、CAM合致信号CMを信号線409上に出力し、また、走査線合致が選択される時、走査線合致信号SMを信号線411上に出力する。
終了論理ブロック420は、CAM合致長さがプログラム可能な最大長さに制限されている時、合致終了信号TERMを発生する。信号TERMは合致選択状態機械408に入力として接続されている信号線440上に伝送される。好ましい実施例では信号TERMは、合致値CLOMのCAM長さが256に等しい時、能動化される。好ましい実施例では、ポストコーダが走査線合致を最大256に制限する。たとえば、長さ257の走査線合致は長さ256のコード語とそれに続く長さ1の他のコード語とに分けられ得る。しかし、長さ257のCAM合致は同一の仕方で分けられ得ない。なぜならば、長さ1のCAM合致は許されていないからである。終了論理は後続の単一の生バイトを有する長さ256のコード語を強制する。従って、終了論理は256よりも長いCAM合致をより小さいCAM合致のシリーズに分ける必要がある。
CAM合致アドレスCADDアドレスバス109および書込みアドレスWADDアドレスバス111は、置換計算回路422に入力として接続されている。置換計算回路422は、合致が終了した時にCAMのなかに書かれているバイトに関してCAM合致位置を関連させる置換値DISPを計算する。この合致位置または置換値DISPは信号線424上に出力される。
現在入力バイトBO信号線113は、遅延ブロック450に接続されており、そこでそれは適切な長さの時間だけ遅延させられる。遅延ブロック450の出力428はマルチプレクサ426に入力として接続されている。マルチプレクサ426は、CAM合致信号CM409および走査線合致信号SM411が共に不能動的である時には常に、生データ信号線RD427上に生バイト428を出力する。マルチプレクサ426は、CAM合致信号CM409が能動的である時には常に、生データ信号線RD427上にCAM合致置換DISP424を出力する。好ましい実施例では、マルチプレクサ426は、走査線合致信号SM411が能動的である時に、生バイト428を出力するが、その値は決して必要とされないし、使用もされない。
合致選択状態機械408は、図4bに示されている状態遷移図により支配されている。状態A421は不合致に相当し、状態B423は少なくとも1つのバイトの走査線合致に相当し、また状態C425は少なくとも2つのバイトのCAM合致に相当する。本発明の好ましい実施例では、少なくとも2つのバイトのCAM合致は、合致選択状態機械408が状態A421にある時、1つのバイトの走査線合致に優先する。従って、合致選択状態機械408が状態A421にあり、また少なくとも2つのバイトのCAM合致が存在する時、合致選択状態機械408は状態C425に移動し、またCAM合致信号CMが能動化される。状態A421もしくは状態C425から、もしCAM合致は存在しないが走査線合致は存在するならば、合致選択状態機械408は状態B423に移動し、また走査線合致信号SMが能動化される。もしCAM合致が最大長さに達するならば、信号TERMが能動化され、また合致が終了され、それにより合致選択状態機械は状態A421に復帰する。イネーブル信号130が、好ましい実施例では、圧縮を改善するのに使用される。CAMおよび走査線合致回路は、合致選択状態機械408にアービトレーションを行わせるべく、完全に並列に作動し得る。しかし圧縮器は以下のシナリオであまり効率的でない:走査線合致SMAT407およびCAM合致信号GMAT107が共に現在能動的であり、また合致選択状態機械408が走査線合致を出力している。さらに、データストリームがより小さい置換で合致するストリングを含んでおり、合致信号GMAT107を最初に仮定したCAM合致よりも短く、また走査線合致の間に開始する。もし、走査線合致が終了する時に、CAM合致信号GMAT107がまだ能動的であれば、圧縮器は最適な置換よりも長い置換によりCAM合致に切換わるであろう。好ましい実施例では、合致選択状態機械が状態Cにある時、イネーブル信号ENABLE130がデ-アサートされており、グローバル合致信号GMAT107を抑制し、またこうしてCAM合致を阻止する。こうすることにより、走査合致が終了する時に、その後のCAM合致が最小可能な置換を有することが保証される。
合致選択状態機械の出力、走査線合致信号SM411およびCAM合致信号CM409、は生データ信号線RD427と一緒にポストコード-モジュールに接続されている。ポストコード-モジュール127は、走査線合致信号SM411およびCAM合致信号CM409が能動的であるクロックの数により合致の長さを決定する。走査線合致に対しては長さは、走査線合致信号SM411が能動的であるクロックの数である。CAM合致に対しては長さは、CAM合致信号CM409が能動的であるクロックの数よりも1つ多い。なぜならば、CAM合致信号CM409はCAM合致の最初のクロックに対しては不能動的であるからである。走査線合致信号SMおよびCAM合致信号CMは相互に排他的であるから、単一の合致長さカウンタ450が合致の長さを決定し得る。合致長さカウントLOM451はカウンタ450からエンコード論理454へ出力される。レジスタ出力SM2、CM2およびRD2はそれぞれ簡単に走査線合致信号SM411、CAM合致信号CM409および生データ信号RD427であり、これらは合致長さカウンタ出力LOM451の長さに相当するように遅延されている。エンコード論理454は、レジスタ出力SM2 462が不能動状態に遷移する時、走査合致長さLOMに相当するコード語CW455を出力する。エンコード論理454は、出力CM2 461が不能動状態に遷移する時、CAM合致長さLOMおよび置換出力RD2 453に相当するコード語CW455を出力する。エンコード論理454は、出力SM2および出力CM2が現在および以前のクロックに対して不能動的である時、生バイトRD2 453に相当するコード語CW455を出力する。シフタ456はすべてのコード語CW455を受け入れ、またそれらを個々の圧縮されたバイトに分ける。これらのバイトは次いで信号線129上に出力される。
表Iは16に等しいスライド窓長さM、2から256までのCAM合致長さ範囲および1から256までの走査線合致長さ範囲を有する好ましい実施例のポストコードを示す。ポストコードはBackus-Naurフォーマットで示されている。
本発明による復元器の概要ブロック図が図5に示されている。圧縮されたデータは信号線501を経て記憶または伝送システムから復元器へ伝送される。信号線501はポストコード-デコーダ-論理ブロック503に入力として接続されている。ポストコード-デコーダ-論理ブロック503は到来する可変長さのコード語を、先に説明されたように、コード語および先行のフラグビットに従って、CAM合致コード対(DISP、CLOM)、走査線合致長さ値SLOMもしくは生バイトRAWに変換する。
ポストコード-デコーダ-論理ブロック503の出力は信号線505上に伝送される。信号線505は読出し/書込みランダムアクセスメモリ(RAM)制御論理ブロック507に入力として接続されている。RAM制御論理ブロック507は信号線509および511によりランダムアクセスメモリ(RAM)513に接続されている。好ましくは、RAM513は2048バイトの記憶能力がある。ポストコード-デコーダ-論理ブロック503からの情報を使用して、RAM制御論理ブロック507は適切なバイトをRAM513に書込み、またそれから読出す。RAM制御論理ブロック507は次いで復元されたバイトを信号線515を経てホストに出力する。詳細には、もしポストコード-デコーダ-論理ブロック503が生バイト、RAW、を報告しているならば、RAM制御論理ブロック507は信号線509を使用してそのバイトをRAM513に書込み、また生バイト、RAW、を出力信号線515上に出力する。もしポストコード-デコーダ-論理ブロック503が走査線合致長さ値SLOMを報告しているならば、RAM制御論理ブロック507はRAM513のなかの適切なアドレス、たとえば現在のRAM書込みアドレスに対して1つの走査線長さだけ以前のアドレスを読み、そのバイトを現在の書込みアドレスにおいてRAM513に書込み、またそのバイトを出力信号線515上に出力する。これは走査線合致長さ値SLOMにより指定される値に等しいいくつかのバイトに対して生起し、各バイトに対するRAM513書込みアドレスをインクリメントする。もしポストコード-デコーダ-論理ブロック503がCAM合致コード対(DISP、CLOM)を報告しているならば、RAM制御論理ブロック507は、現在のRAM書込みアドレスからディスプレイ値DISPを差し引くことにより指定されるRAM513のなかの適切なアドレスからバイトを読み、そのバイトを現在の書込みアドレスにおいてRAM513に書込み、またそのバイトを出力信号線515上に出力する。これは合致値CLOMのCAM長さにより指定される値に等しいいくつかのバイトに対して生起し、各バイトに対するRAM513書込みアドレスをインクリメントする。
圧縮および復元プロセスを示すべく、下記の例が示され、また説明される。下記の16進で表されているバイトのシーケンスを考察する。
データのこのストリームはデータバス101を経て、16に等しいCAMスライド窓サイズMと20に等しい走査線長さSとを有する本発明のデータ圧縮器に入力される。もしバイトが左から右へ、また次いでトップからボトムへエンコードされるならば、結果としての圧縮されたデータのシーケンスは本発明のデータ圧縮器から出力され、そこで生バイトは16進で表されており、またCAM合致コード対は10進で(DISP、CLOM)として表されており、また走査線合致長さは10進で(SLOM)として表されている。
上記の情報がポストコード論理ブロック127から出力される時、それは記憶または伝送システムへの伝送のために、上記のように、適切な先行のフラグビットによりエンコードされる。
最初の20バイトは最初の走査線を形成するので,以前の走査線への合致は、信号VALID123が能動化であるために、生起し得ない。最初のバイトは生バイトとして出力される。第2のバイトは1の置換および9の合致長さ(1、9)を有するCAM合致を開始する。バイト11は、どの以前のバイトとも合致しないので、生バイトとして出力される。バイト12は、第10のバイトと合致するけれども、まだ生バイトとして出力される。なぜならば、2つの連続するバイトが、グローバル合致信号GMAT107が能動的になる以前に、合致しなければならないからである。バイト13は置換3ないし12においてキャラクタ合致を発生し、対応するストリング合致状態機械363を第1の合致状態385に入らせる。バイト14は置換4ないし12において合致を継続し、すべての9つのストリング合致状態機械363を、グローバル合致信号GMAT107が仮定されているストリング合致状態387に入らせる。バイト15ないし22により、漸次により少ないストリング合致状態機械363が合致し続ける。このプロセスの間、各々の新しいバイトがデータストリームのなかでより早くストリング合致を生ずるにつれて、CAMにより表示される置換は4から12へ増大する。データストリームの開始を通り越す置換は行われ得ないので、バイト23はCAM合致を終了する。なお、注意すべきこととして、バイト21および22は上の線と合致し、また走査線合致信号SMAT407を能動状態にするけれども、合致選択状態機械408はCAM合致を、それが終了するまで、報告し続ける。バイト23は上の線と合致し(バイト3)、またバイト29を通じて持続する走査線合致を開始する。バイト30は全く合致せず、従って生バイトである。バイト31および32は上の走査線と合致し、また2バイトの走査合致を形成する。バイト33は生バイトである。バイト34(00)は上の線とCAMのなかに記憶されている以前のバイトとの双方と合致する。合致の第2のバイトが走査合致信号SMAT407の間に能動的になるまで、グローバル合致信号GMAT107が能動的にならないので、合致選択状態機械408は走査線合致を選び、それが次いで10のバイトに対してランする。バイト44ないし47はバイト33ないし36と合致して、4バイトのCAM合致(B、4)を形成する。バイト48ないし50は上の線または15の以前のバイトのどれとも合致せず、従って生バイトとして出力される。バイト51および52は上の線と合致して、2バイトの走査線合致(2)を形成する。バイト53はバイト52と合致し、またバイト54はバイト53と合致して、2の置換を有する2バイトのCAM合致(2、2)を形成する。バイト55は上の線または最後の15バイトと合致せず、従ってそれは生バイトとして出力される。バイト56はバイト48と合致し、またバイト57はバイト49と合致して、8の置換を有する2バイトのCAM合致(8、2)を形成する。バイト58および59はバイト48および49ともバイト56および57とも合致する。アドレス論理モジュール365は常に最小の置換を有する合致を報告する。従って、バイト56および57がより近いので、2の長さを有する置換2のCAM合致が出力される(2、2)。最後のバイトは上の線と合致し、また1バイトの走査線合致(1)として出力される。ポストコード-エンコーダ127による最後のシンボル出力は、データストリームが完了していることを示すレコードマーカーの終了である。
当業者に明らかなように、この圧縮されたデータストリームを復元するためには、図5に示されているように、圧縮された値および生バイトが復元器に入力される。復元器は上記のプロセスを逆に進めて、生バイトを出力し、またコード対および走査線合致長さ値SLOMを圧縮復元するのにデータの以前の値を使用する。復元が完了した時、データの元のストリームが復元されている。
さらに当業者に明らかなように、本発明のシステムは、好ましい実施例に含まれている1つの位置に追加して、多重の以前の走査線との合致位置を含んでいてよい。スライド窓圧縮器103はより大きいまたはより小さいCAMを含んでいるものとして設計されていてもよい。
請求の範囲により定められている本発明の範囲から離れることなく、好ましい実施例に他の種々の変形が行われ得ることは当業者にとって容易に明らかであろう。
Claims (33)
- データ圧縮システムにおいて、
a.入力源からデータシンボルのストリームを順次に受信するための手段を含み、
b.前記順次に受信するための手段と結合された大ギャップを有するスライド窓データ圧縮器を実現するための手段を含み、その際現在の入力シンボルが、シンボルのスライド窓および現在の入力シンボルより予め決められた第1の数のシンボルだけ前に受信された1つまたはそれ以上のシンボルと比較され、その際シンボルのスライド窓は長さMを有しかつ以前に受信された連続的な複数のシンボルを含み、前記予め決められた第1の数のシンボルは走査線長さSに等しく、スライド窓と前記1つまたはそれ以上のシンボルとの間に、予め決められた第2の数のシンボルが存在し、この第2の数のシンボルは大ギャップの長さS+1−Mに等しく、
c.内容アドレスメモリ(CAM)を含み、その際該メモリは複数個の内容アドレスメモリセルを含み、各セルは、シンボルのスライド窓を記憶するため、および現在の入力シンボルをシンボルのスライド窓内の以前に受信された複数個の連続的なシンボルと比較するため、書込み、検索および読出しが可能であり、2つまたはそれ以上の隣接する入力シンボルが隣接する内容アドレスメモリ位置と合致する時に、内容アドレスメモリが内容アドレスメモリ合致信号(CAM合致信号)を出力し、
d.ランダムアクセスメモリを含み、該ランダムアクセスメモリは、現在の入力シンボルを記憶するため、および1つまたはそれ以上の以前に受信されたシンボルを出力するため、少なくとも1つの走査線のデータシンボルを記憶可能であり、ランダムアクセスメモリ内の特別な場所に記憶された1つまたはそれ以上の以前に受信されたシンボルを出力可能であり、
e.内容アドレスメモリとランダムアクセスメモリとに接続された合致選択状態機械を含み、該機械は、現在の入力シンボルとCAM合致信号とを受信してCAM合致信号と走査線合致信号のいずれかを選択し、この走査線合致信号は現在の入力シンボルと特定の位置に記憶されている1つまたはそれ以上の以前に受信されたシンボルとの間の合致によって活性化され、その際合致選択状態機械は選択された信号を出力するように構成され、
f.前記合致選択状態機械と接続されたエンコーダを含み、該エンコーダは前記合致選択状態機械から選択された信号を受け取り、合致の長さ及び合致の位置を決定し、合致を圧縮して記憶システムへ送ることを特徴とするデータ圧縮システム。 - 合致を示す情報が内容アドレスメモリセルの間で転送され、シンボルが内容アドレスメモリセルの間で転送されないことを特徴とする請求項1記載のデータ圧縮システム。
- CAM合致信号が能動化されており、かつ現在の入力シンボルも特定の位置に記憶されている1つまたはそれ以上の以前に受信されたシンボルの1つと合致する時に、合致選択状態機械が少なくとも2つのシンボルの内容アドレスメモリのなかの合致に優先性を与えることを特徴とする請求項1記載のデータ圧縮システム。
- さらに、以前に圧縮されたデータを復元するための手段を含んでいることを特徴とする請求項3記載のデータ圧縮システム。
- 復元のための手段がランダムアクセスメモリと、以前に圧縮されたデータからデータシンボルのストリームを構築するためランダムアクセスメモリに接続されている制御論理回路とを含んでいることを特徴とする請求項4記載のデータ圧縮システム。
- 請求項1記載のデータ圧縮システムにおいて、合致選択状態機械は、CAM合致信号が活性化され、かつ走査線合致信号が活性化された際に当該CAM合致信号を選択を選択することを特徴とするデータ圧縮システム。
- 前記記憶するための手段のなかで合致を示す状態情報がセルの間で転送され、シンボルはセルの間で転送されないことを特徴とする請求項6記載のデータ圧縮システム。
- 1つまたはそれ以上の以前に受信されたシンボルと複数個の以前に受信されたシンボルとがすべてデータシンボルのストリームのなかにあることを特徴とする請求項6記載のデータ圧縮システム。
- さらに、1つまたはそれ以上の以前に受信されたシンボルがデータシンボルのストリームのなかの複数個の以前に受信されたシンボルと不連続的であることを特徴とする請求項8記載のデータ圧縮システム。
- 複数個の内容アドレスメモリセルが書込み、探索および読出しのための手段を含んでおり、また全体として内容アドレスメモリセルを形成することを特徴とする請求項9記載のデータ圧縮システム。
- 複数個の内容アドレスメモリセルが16個の内容アドレスメモリセルを含んでいることを特徴とする請求項10記載のデータ圧縮システム。
- さらに、もし1つよりも多い最長合致ストリングが内容アドレスメモリのなかに記憶されているならば、内容アドレスメモリのなかに記憶されているどの最長合致ストリングが内容アドレスメモリのなかに記憶されている最後のバイトの位置に最も近いかを決定するための手段を含んでいることを特徴とする請求項10記載のデータ圧縮システム。
- 前記記憶のための手段がデータシンボルの少なくとも1つの走査線を記憶し得るメモリバッフアを含んでいることを特徴とする請求項12記載のデータ圧縮システム。
- メモリバッフアが2048個のデータシンボルを記憶し得ることを特徴とする請求項13記載のデータ圧縮システム。
- さらに、複数個のストリング合致状態機械を含んでおり、これらのストリング合致状態機械の各々が内容アドレスメモリのなかのデータの記憶されているバイトに作用的に連結されていることを特徴とする請求項13記載のデータ圧縮システム。
- ストリング合致状態機械の各々が、次の3つの状態、
a.記憶されているデータが現在の入力ストリングと合致しないことを信号する第1の状態と、
b.記憶されているデータが現在の入力ストリングの最後のキャラクタのみと合致することを信号する第2の状態と、
c.記憶されているデータが少なくとも入力ストリングの最後の2つのキャラクタと合致することを信号する第3の状態、
の3つの状態を含んでいることを特徴とする請求項15記載のデータ圧縮システム。 - ストリング合致状態機械の各々が初期化のための第4の状態を含んでおり、リセット信号によりストリング合致状態機械のすべてが第4の状態に強制されることを特徴とする請求項16記載のデータ圧縮システム。
- 前記同時記憶および比較のための手段がさらに、複数個のストリング合致モジュールのアレイを含んでおり、各ストリング合致モジュールがCAMワード、ストリング合致状態機械およびアドレス論理モジュールを含んでいることを特徴とする請求項1記載のデータ圧縮システム。
- 複数個のストリング合致モジュールのアレイが一次元の環状のキューのなかに配置されていることを特徴とする請求項18記載のデータ圧縮システム。
- さらに、以前に圧縮されたデータを復元するための手段を含んでいることを特徴とする請求項19記載のデータ圧縮システム。
- データシンボルの到来するストリームを圧縮するための方法において、
a.入力源から第1の複数個のデータシンボルを順次に受信する過程と、
b.現在のシンボルを複数個の内容アドレスメモリセルの1つのなかに記憶すると同時に、現在のシンボルが以前に受信されたシンボルと合致するかどうかを決定するべく、現在のシンボルを複数個の以前に受信されたシンボルと比較する過程と、
c.現在のシンボルが内容アドレスメモリセルのなかの以前に受信されたシンボルの1つと合致する時にCAM合致信号を発生する過程と、
d.CAM合致が2つの連続的な入力シンボルに関して信号出力される時に内容アドレスメモリのなかのシンボルの合致するストリングを表すコード対を含んでいるポストコード値を出力する過程と、
e.現在のシンボルを記憶し、かつ現在のシンボルを走査線バッファのなかの特定のプログラム可能な位置に記憶されている1つまたはそれ以上の以前に受信されたシンボルと比較する過程と、
f.現在のシンボルが特定のプログラム可能な位置に記憶されている1つまたはそれ以上の以前に受信されたシンボルの1つと合致する時に走査線合致を信号出力する過程と、
g.走査線合致が信号出力されている時に合致値の長さを含んでいるポストコード値を出力する過程と、
h.CAM合致も走査線合致も信号出力されていない時に現在のシンボルを含んでいる生の値を出力する過程と
を含んでいることを特徴とする方法。 - さらに、CAM合致および走査線合致の双方が同時に信号出力される時にCAM合致を選択する過程を含んでいることを特徴とする請求項21記載の方法。
- 内容アドレスメモリセルと走査線バッファのなかの特定のプログラム可能な位置とが不連続的であることを特徴とする請求項21記載の方法。
- 複数個の内容アドレスメモリが16個の内容アドレスメモリセルを含んでいることを特徴とする請求項23記載の方法。
- 走査線バッファが2048個のデータシンボルを記憶することを特徴とする請求項24記載の方法。
- さらに、圧縮されたデータを復元し、複数個のデータシンボルを再構築する過程を含んでいることを特徴とする請求項23記載の方法。
- データの到来するストリームを圧縮し、圧縮されたデータを表すポストコード値を出力するためのデータ圧縮システムにおいて、
a.現在のシンボルを記憶すると同時に、それを以前に受信されたシンボルと比較するため、一度に1つのシンボルで到来するデータのストリームを受信するべく接続されているスライド窓圧縮器と、
b.現在のシンボルを記憶し、かつ特定のプログラム可能な位置において走査線バッフアのなかに記憶されている1つまたはそれ以上の以前に受信されたシンボルを出力するため、一度に1つのシンボルで到来するデータのストリームを受信するべく接続されている走査線バッフアと、
c.スライド窓圧縮器のなかの合致の間の選択をし、合致位置および合致長さまたは走査線バッフアのなかの合致を表すコード対を出力し、走査線合致の長さの値を出力し、または、もし合致が生起しないならば、現在のシンボルを含んでいる生のバイトを出力するために、スライド窓圧縮器および走査線バッフアに接続されている合致選択モジュールとを含んでいることを特徴とするデータ圧縮システム。 - さらに、合致選択モジュールからのデータ出力をエンコードし、それをストレージまたは伝送システムに出力するために、合致選択モジュールに接続されているポストコード論理ブロックを含んでいることを特徴とする請求項27記載のデータ圧縮システム。
- スライド窓圧縮器が16個の内容アドレスメモリセルを含んでいることを特徴とする請求項28記載のデータ圧縮システム。
- 走査線バッフアが2048個の記憶位置を含んでいることを特徴とする請求項29記載のデータ圧縮システム。
- もしスライド窓圧縮器のなかの合致と走査線バッフアのなかの合致との双方が同時に生起するならば、合致選択モジュールがスライド窓圧縮器のなかの合致を選択することを特徴とする請求項30記載のデータ圧縮システム。
- さらに、以前に圧縮されたデータを復元し、到来するデータのストリームを再構築するための復元器論理回路を含んでいることを特徴とする請求項31記載のデータ圧縮システム。
- 以前に受信された複数個の連続するシンボル内の最後のシンボルが現在の入力シンボルの直前に受信されることを特徴とする請求項1記載のデータ圧縮システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/510,148 US5694125A (en) | 1995-08-02 | 1995-08-02 | Sliding window with big gap data compression system |
US08/510,148 | 1995-08-02 | ||
PCT/US1996/012664 WO1997005737A1 (en) | 1995-08-02 | 1996-08-01 | Sliding window with big gap data compression system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11511306A JPH11511306A (ja) | 1999-09-28 |
JP4057650B2 true JP4057650B2 (ja) | 2008-03-05 |
Family
ID=24029566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50790897A Expired - Lifetime JP4057650B2 (ja) | 1995-08-02 | 1996-08-01 | 大ギャップを有するスライド窓データ圧縮システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5694125A (ja) |
JP (1) | JP4057650B2 (ja) |
WO (1) | WO1997005737A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154569A (en) * | 1995-03-16 | 2000-11-28 | Kabushiki Kaisha Toshiba | System and method for coding and/or decoding image including bit-map of different levels |
JP3730385B2 (ja) | 1997-12-05 | 2006-01-05 | 株式会社東芝 | デ−タ圧縮装置 |
US6216175B1 (en) * | 1998-06-08 | 2001-04-10 | Microsoft Corporation | Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations |
US6314478B1 (en) | 1998-12-29 | 2001-11-06 | Nec America, Inc. | System for accessing a space appended to a circular queue after traversing an end of the queue and upon completion copying data back to the queue |
US6771196B2 (en) * | 1999-12-14 | 2004-08-03 | Broadcom Corporation | Programmable variable-length decoder |
US6262675B1 (en) | 1999-12-21 | 2001-07-17 | International Business Machines Corporation | Method of compressing data with an alphabet |
US6650261B2 (en) * | 2001-09-06 | 2003-11-18 | Xerox Corporation | Sliding window compression method utilizing defined match locations |
US7529716B1 (en) | 2002-06-20 | 2009-05-05 | Welsh Thomas M | Mail arbitrator |
US6771193B2 (en) * | 2002-08-22 | 2004-08-03 | International Business Machines Corporation | System and methods for embedding additional data in compressed data streams |
US7415596B2 (en) * | 2003-01-24 | 2008-08-19 | Gigafin Networks, Inc. | Parser table/production rule table configuration using CAM and SRAM |
US7797326B2 (en) * | 2006-04-18 | 2010-09-14 | International Business Machines Corporation | Method of obtaining data samples from a data stream and of estimating the sortedness of the data stream based on the samples |
US7764205B2 (en) * | 2007-08-27 | 2010-07-27 | Comtech Aha Corporation | Decompressing dynamic huffman coded bit streams |
US8013762B2 (en) * | 2009-11-03 | 2011-09-06 | Seagate Technology Llc | Evaluating alternative encoding solutions during data compression |
US9690928B2 (en) | 2014-10-25 | 2017-06-27 | Mcafee, Inc. | Computing platform security methods and apparatus |
CN111384961B (zh) * | 2018-12-28 | 2022-07-26 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据压缩方法 |
CN116683916B (zh) * | 2023-08-03 | 2023-10-10 | 山东五棵松电气科技有限公司 | 一种数据中心容灾系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5010345A (en) * | 1989-12-28 | 1991-04-23 | International Business Machines Corporation | Data compression method |
US5473326A (en) * | 1990-12-14 | 1995-12-05 | Ceram Incorporated | High speed lossless data compression method and apparatus using side-by-side sliding window dictionary and byte-matching adaptive dictionary |
JP2699839B2 (ja) * | 1993-12-03 | 1998-01-19 | 日本電気株式会社 | 半導体装置の製造方法 |
-
1995
- 1995-08-02 US US08/510,148 patent/US5694125A/en not_active Expired - Fee Related
-
1996
- 1996-08-01 JP JP50790897A patent/JP4057650B2/ja not_active Expired - Lifetime
- 1996-08-01 WO PCT/US1996/012664 patent/WO1997005737A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPH11511306A (ja) | 1999-09-28 |
WO1997005737A1 (en) | 1997-02-13 |
US5694125A (en) | 1997-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4057650B2 (ja) | 大ギャップを有するスライド窓データ圧縮システム | |
US5532693A (en) | Adaptive data compression system with systolic string matching logic | |
EP0030437B1 (en) | Method and apparatus for compression and decompression of digital image data | |
US5471207A (en) | Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor | |
US5627534A (en) | Dual stage compression of bit mapped image data using refined run length and LZ compression | |
US4626829A (en) | Data compression using run length encoding and statistical encoding | |
KR100331351B1 (ko) | 이진입력데이터스트림압축방법 | |
JP2915568B2 (ja) | テープドライブシステムのための適応データ圧縮装置 | |
US5608396A (en) | Efficient Ziv-Lempel LZI data compression system using variable code fields | |
US4334246A (en) | Data decompressor circuit | |
US5162795A (en) | Coding and decoding apparatus of variable length data | |
US5055841A (en) | High-speed feedforward variable word length decoder | |
US5751860A (en) | Method for compressing and decompressing digital image data | |
US4399467A (en) | Method and apparatus for image data compression and decompression | |
JPH07509823A (ja) | ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置 | |
US5095374A (en) | Method and apparatus for lossless compression and decompression of image data | |
JP2831888B2 (ja) | Hdtv復号化器 | |
US4092665A (en) | Method and means for extracting variable length data from fixed length bytes | |
JPH08251586A (ja) | ランレングス復号化装置 | |
US4136363A (en) | Truncated run length encoding | |
US5488366A (en) | Segmented variable length decoding apparatus for sequentially decoding single code-word within a fixed number of decoding cycles | |
US5949909A (en) | Apparatus for decompressing multiple codes in a single clock cycle | |
US5960115A (en) | Method for decompressing multiple codes in a single clock cycle | |
GB2319689A (en) | An entropy encoder using context modelling with data reordering | |
JP3195427B2 (ja) | データ変換/逆変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040113 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040223 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040414 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040706 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041102 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20041125 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20041202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071019 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071214 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101221 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111221 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111221 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121221 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121221 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131221 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |