(57)【要約】可逆データ圧縮装置（１０）が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書（３０）およびコーダ（３８）を有し、回路手段（４２）が、コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルから辞書を更新することができるように、そのフィードバックループに接続され、ランレングス符号化手段（４６）が、コーダ（３８）の出力を受け取るように接続されている。符号化手段（４６）は、辞書（３０）中の所定の位置でマッチが連続して起こる回数、すなわち、辞書の同じアドレスに同じ検索タプルがロードされる回数をカウントするように構成されている。２台以上の可逆データ圧縮装置を、本発明の一態様に従って並列に構成することができる。
2004530318.tif 000002
【特許請求の範囲】
【請求項１】
並列に配列された複数の可逆データ圧縮装置を備え、各データ圧縮装置が内容参照可能メモリ辞書（３０）およびコーダ（３８）を備える、可逆データ圧縮システム（９４）であって、コーダ（３８）の出力を受け取るように接続され、所定の辞書位置でマッチが連続して起こる回数をカウントするように構成されたランレングス符号化手段（３９）を特徴とするシステム。
【請求項２】
各圧縮装置の辞書（３０）が、各検索ステップで辞書の同じアドレス（５０）に検索タプルがロードされるように構成される、請求項１に記載のシステム。
【請求項３】
各圧縮装置のランレングス符号化回路レジスタ手段（３９）が、辞書（３０）の同じアドレス（５０）に同じ検索タプルがロードされる回数をカウントするように構成される、請求項２に記載のシステム。
【請求項４】
各圧縮装置の辞書（３０）内のもう１つのアドレス（５６）が、検索タプルが繰り返される回数を示すために留保される、請求項２または３に記載のシステム。
【請求項５】
複数の可逆データ圧縮装置を備え、各データ圧縮装置が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリとコーダ（４０）に基づいた辞書（３０）を備える、可逆データ圧縮システム（９４）であって、前記コーダが現行の比較サイクルの符号化を行うのと同時に以前の比較サイクルからのデータを使用して辞書を更新することができるように、フィードバックループ中に接続された回路手段（４２）を特徴とするシステム。
【請求項６】
圧縮装置の前記以前の適応サイクルが、１つおいて前のサイクルである、請求項５に記載のシステム。
【請求項７】
回路手段（４２）が、現行データ要素が辞書によって処理されている間に、先行するデータ要素に従って各圧縮装置の辞書を更新するように構成される、請求項５または６に記載のシステム。
【請求項８】
辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書（３０）およびコーダ（３８）と、該コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルから辞書を更新できるように、フィードバックループ中に接続された回路手段（４２）と、該コーダ（３８）の出力を受け取るように接続され、該辞書（３０）の所定の位置で、マッチが連続して起こる回数をカウントするように構成されたランレングス符号化手段（４６）とを特徴とする可逆データ圧縮装置（１０）。
【請求項９】
並列に配列されたそれぞれが請求項８に記載の複数の可逆データ圧縮装置（５２、５４、５６、５８、６０）を特徴とする可逆データ圧縮システム（９４）。
【請求項１０】
複数の圧縮装置（５２、５４、５６、５８、６０）のそれぞれの出力が、順番にデータ出力（９０）に供給される、請求項１ないし７、または９のいずれか一項に記載のシステム。
【請求項１１】
圧縮データが、各圧縮装置（５２、５４、５６、５８、６０）からの圧縮データの長さを示すフラグ手段を備える、請求項１ないし７、９、または１０のいずれか一項に記載のシステム。
【請求項１２】
各圧縮装置からの圧縮データブロックに、その圧縮データブロックの長さを示すフラグＦ１、Ｆ２、Ｆ３を付与する手段をさらに備える、請求項１ないし７のいずれか一項、または請求項９ないし１１のいずれか一項に記載のシステム。
【請求項１３】
複数の圧縮装置からの圧縮データに、各圧縮装置からの各圧縮データブロックの長さを示す単一フラグ（１００）を付与する手段をさらに備える、請求項１ないし７のいずれか一項、または請求項９ないし１１のいずれか一項に記載のシステム。
【請求項１４】
各圧縮装置がその処理容量に相当する圧縮データを順番に出力するように構成され、次の圧縮装置が処理をまだ完了していない場合に、フラグ１０６、１０８、１１０がその圧縮装置に指示するために挿入される、請求項１ないし７のいずれか一項、または請求項９ないし１１のいずれか一項に記載のシステム。
【請求項１５】
検索タプルを複数の圧縮装置間で交互に割り当てる手段をさらに備える、請求項１ないし７のいずれか一項、または請求項９ないし１４のいずれか一項に記載の可逆データ圧縮システム。
【請求項１６】
複数の隣接した検索タプルを複数のデータ圧縮装置のそれぞれに供給する手段をさらに備える、請求項１ないし７のいずれか一項、または請求項９ないし１４のいずれか一項に記載の可逆データ圧縮システム。
【請求項１７】
請求項１ないし１６のいずれか一項に記載のデータ圧縮システムによって圧縮されたデータを解凍する解凍システム。
【請求項１８】
可逆データ圧縮の方法であって、複数の可逆データ圧縮装置を並列に構成し動作させるステップを含み、各データ圧縮装置が、内容参照可能メモリ辞書およびコーダと、コーダの出力を受け取るように接続され、所定の辞書位置でマッチが連続して起こる回数をカウントするように構成されたランレングス符号化手段とを備える方法。
【請求項１９】
複数の可逆データ圧縮装置を並列に構成し動作させるステップを含み、各データ圧縮装置が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリおよびコーダに基づいた辞書を備える、可逆データ圧縮の方法において、コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルからのデータを使用して辞書を更新できるように、フィードバックループ中に接続された回路手段を特徴とする可逆データ圧縮の方法。
【請求項２０】
複数の可逆データ圧縮装置を並列に構成し動作させるステップを含む可逆データ圧縮の方法であって、各圧縮装置が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書およびコーダと、コーダが現行の比較サイクルの符号化を行うのと同時に以前の比較サイクルから辞書を更新することができるように、フィードバックループ中に接続された回路手段と、コーダの出力を受け取るように接続され、辞書の所定の位置においてマッチが連続的に起こる回数をカウントするように構成されたランレングス符号化手段とを備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可逆（ｌｏｓｓｌｅｓｓ）データ圧縮用の装置に関し、詳細には既知の技術に比べて圧縮速度を増加させることに関する。
【背景技術】
【０００２】
共に２０００年１月２５日を優先日とする本出願人の同時係属の国際特許出願ＷＯ０１／５６１６８およびＷＯ０１／５６１６９に、それぞれより効率的なデータ圧縮技術、および圧縮速度の改善技術が開示されている。前述の出願の開示を、本明細書中に参照により援用する。
【発明の開示】
【課題を解決するための手段】
【０００３】
本発明の第１の態様によれば、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書およびコーダと、コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルからその辞書を更新できるように、フィードバックループ中に接続された回路手段と、コーダの出力を受け取るように接続され、辞書中の所定の位置で、連続してマッチ（整合：ｍａｔｃｈ）が起こる回数をカウントするように構成されたランレングス符号化手段とを特徴とする可逆データ圧縮器。
【０００４】
このような発明の構成は、前述の２件の出願に含まれる発明の両方を組み込んでいる。このような圧縮装置を、「Ｘ−ＭａｔｃｈＰＲＯ」圧縮装置と呼ぶことにする。
さらに本発明によれば、並列に構成された複数のデータ圧縮装置を特徴とする可逆データ圧縮システムが提供される。この圧縮装置としては、ＷＯ０１／５６１６８で特許請求されているもの、ＷＯ０１／５６１６９で特許請求されているもの、または本発明の第１の態様によるもの、すなわちＸ−ＭａｔｃｈＰＲＯ圧縮装置を備えることができる。
【０００５】
このシステム中の各圧縮装置の出力は、データ出力に順番に供給されることが好ましい。圧縮データが、各圧縮装置からの圧縮データの長さを示すフラグ手段を備えることが好ましい。
【０００６】
本発明はさらに、関連したデータ解凍装置を備える。
次に本発明を、図１〜図１０を参照して、単なる例として説明することにする。
【発明を実施するための最良の形態】
【０００７】
図１では、Ｘ−Ｍａｔｃｈ１ないしＸ−Ｍａｔｃｈ５と称する５つの可逆データ圧縮装置５２、５４、５６、５８、６０が並列に構成されて、可逆データ圧縮システム９４を形成している。各圧縮装置は入力ＦＩＦＯ（先入れ先出し）回路６２、６４、６６、６８、７０、および出力ＦＩＦＯ回路７２、７４、７６、７８、８０を有する。入力ＦＩＦＯ６２〜７０は、圧縮すべきデータ８４が供給される入力バス８２に共に接続されている。出力ＦＩＦＯ７２〜８０は、圧縮データを出力９０に供給する出力バス８６に共に接続されている。コントロールシステム９２は、圧縮システム９４中に入り、そこから出る経路指定データを適切に制御することを可能にする制御信号を圧縮装置およびＦＩＦＯに供給する。
【０００８】
この例では各Ｘ−Ｍａｔｃｈ圧縮装置５２〜６０は、０．１５ミクロンのＣＭＯＳ  ＡＳＩＣ技術で実装される４バイト設計である。各入力ＦＩＦＯ６２〜７０は、圧縮装置の容量より大きな、一般に６４バイトから３２ｋバイトの圧縮すべきデータからのデータブロックを記憶することができる。
【０００９】
動作に当たって、起動時には、最初のデータブロックが、Ｘ−Ｍａｔｃｈ１圧縮装置５２の入力ＦＩＦＯ６２に送られる。最初のブロックが送られた後、次のブロックがＸ−Ｍａｔｃｈ２圧縮装置５４の入力ＦＩＦＯ６４に送られ、以下同様である。第５データブロックがＦＩＦＯ８０に送られた後には、Ｘ−Ｍａｔｃｈ１圧縮装置６２は、最初のデータブロックの圧縮をちょうど完了したと予想され、したがって、第６のデータブロックが入力ＦＩＦＯ６２に送られ、サイクルが継続される。データがその関連するＦＩＦＯに入るとすぐに、各Ｘ−Ｍａｔｃｈ圧縮装置では、同時係属特許出願に詳細に説明されていたように、一度に４バイトの圧縮を開始するためにデータの利用が可能になる。
【００１０】
次に、コントローラ９４の制御下で圧縮データを処理する方法について考察する。出力ＦＩＦＯ７２〜８０中の圧縮データブロックのサイズは、入力データのタイプに依存しており、すなわち各ブロックは異なる圧縮比を持つ可能性がある。図８、図９、および図１０を参照して説明する圧縮データを処理する３つの変形形態により、圧縮と待ち時間（ｌａｔｅｎｃｙ）との間の設計上のトレードオフが可能になる。
【００１１】
本発明の一実施形態が基づくことの可能なＷＯ０１／５６１６８に開示の、より詳細なコーダ／デコーダ回路を、図２に示す。
非圧縮データ３２がＣＡＭ辞書３０に供給され、この辞書の出力、すなわちマッチが見いだされた辞書アドレス、または部分マッチに加えて非マッチの１つまたは複数のバイトのアドレスの指示が、優先順位ロジック回路８０に供給される。この回路８０は辞書中の異なる種類の可能なマッチ、すなわち完全マッチ、部分マッチ、またはミスマッチのそれぞれに異なる優先順位を割り当て、その結果をマッチ判断ロジック回路８２に供給する。回路８２は、優先順位タイプを使用して、優先順位情報を使用して圧縮に最適であるマッチの１つを選び、主コーダ３８に信号を供給する。
【００１２】
以上に参照した従来技術で説明したように、主コーダ３８は、マッチ位置に同一の２進コードを、またマッチタイプに静的ハフマンコードを割り当て、必要なバイトをリテラル形式で連結する。圧縮された出力がＲＬＩコーダ３９に供給される。この信号は主コーダによって生成されるが、簡単にするため図に示してはいない。ＲＬＩコーダ出力はビット組立ロジック４０に移り、６４ビットより多くの圧縮データが（図示せず）内部バッファ中で有効な場合はいつでも、この組立ロジック４０が、新たな６４ビットの圧縮出力をメモリに書き込む。この出力が、圧縮コード４２である。
【００１３】
優先順位ロジック回路８０からの出力がまた、本出願人による同時係属の特許出願ＷＯ０１／５６１６９に記載されているように、アウトオブデート適応（ｏｕｔ−ｏｆ−ｄａｔｅ  ａｄａｐｔａｉｏｎ）（ＯＤＡ）ロジック回路８４に供給される。このＯＤＡ回路８４の出力は、マッチタイプおよびマッチ位置に応じて（図３で適用した適応ベクトルとしての）移動ベクトルを生成する移動生成ロジック回路４４に接続される。この移動生成ロジック４４はまた、ＯＤＡロジック回路８４にフィードバック信号を供給する。
【００１４】
解凍については、圧縮入力９０が、ビット分解ロジック回路９２に供給され、この回路は、解凍動作後に（図示せず）内部バッファ中に残っている有効なビット数が３３ビットよりも少ないときはいつでも、メモリから新たに６４ビットの圧縮ベクトルを読み込む。この圧縮ベクトルは、主デコーダ９４に供給され、このデコーダは、マッチ位置およびマッチタイプを、必要なリテラル文字と一緒にデコードし、可能なＲＬＩコードがあれば検出する。デコーダ９４が、ＲＬＩデコーダ７６に接続され、このＲＬＩデコーダが、ランレングスデコード出力をＯＤＡロジック回路８４およびタプル組立回路９６にも供給する。
【００１５】
ＣＡＭ辞書３０は、デコード入力に作用して、４バイト幅のワードを再生し、これらのワードはタプル組立回路９６に供給される。この回路は、非圧縮データ９８を供給し、この非圧縮データは、辞書３０からの情報を使用して組み立てられたタプルに加えてコードに存在する任意のリテラル文字を含む。
【００１６】
この構成によるランレングスインターナル符号化（ｒｕｎ  ｌｅｎｇｔｈ  ｉｎｔｅｒｎａｌ  ｃｏｄｉｎｇ）を適用することにより、圧縮速度にほとんどまたはまったく影響を与えずに、１０％のこともある圧縮の改善を実現することが判明している。この改善は、３２ビットパターンなど任意の繰り返しパターンに対する効率的なランレングス符号化による結果である。最も一般的な繰り返しパターンは０の連続であるが、他にもテキストファイル中のスペース文字や、図中の一定の背景色などが可能である。本発明の適用により、かかる非ゼロ文字の効率的な可逆的な符号化および復号化が可能となる。
【００１７】
最低使用頻度辞書メンテナンスポリシーは、任意の繰り返しパターンを辞書３０中の位置ゼロに配置させる。ランレングスインターナル符号化では、位置ゼロで２回以上完全にマッチした任意のベクトルを検出し、符号化する。
【００１８】
かかる構成では、圧縮システム中の辞書の前にランレングス符号化回路を配置するのに比べて圧縮が有利になり、それが辞書のロジックを使用しているので、アーキテクチャの高レベルの統合により複雑さが最少に保たれる。
【００１９】
ＣＡＭ辞書３０は、１５、３１、または６３ワードにすることができる。１つの位置が、ＲＬＩイベント用に留保済みであるためである。辞書が大きくなるほど圧縮が改善されるが、複雑さがかなり増大する。
【００２０】
非圧縮データアウト９８は、データイン３２とまったく同じである。損失はなかった。
図１に示すようなシステム中において図２の構成を使用して、本発明の実施形態による多重圧縮装置構成を提供することができる。多重解凍装置の実施形態も同様にして提供することができる。並列に接続して多重圧縮装置（および解凍装置）を提供することが可能な別の圧縮装置（および解凍装置）のアーキテクチャについて、次に説明する。
【００２１】
図３に、このもう１つの圧縮装置のブロック概略図を示す。従来と同様に、結線上のビット数を結線と交差するバーの近くに示している。
辞書３０は、入力データが３２ビット幅の検索レジスタ３４を介して供給される６４要素のＣＡＭベースのアレイである。検索用のデータは、マルチプレクサ８０が圧縮時にこの検索レジスタを選択するように構成される間は辞書３０に直接提供されるが、このデータは解凍時には追加の機能を有する（図４参照）。
【００２２】
辞書３０の出力、すなわちマッチが見つかった辞書アドレスの指示、または部分マッチとそのマッチしなかったビットのアドレスが、優先順位ロジック回路８２に移り、この回路が辞書中の各位置ごとに４ビット幅のマッチ（ｍａｔｃｈ）を５ビット幅の優先順位タイプ（ｐｒｉｏｒｉｔｙ  ｔｙｐｅ）に変換し、優先順位タイプをマッチ判断ロジック回路３７に供給する。ここで、回路３７は、辞書３０の出力も直接に受け取る。回路３７は、優先順位タイプを使用して、圧縮プロセスにとっての最適マッチ位置を選択する。
【００２３】
ＯＤＡ回路４２が、マルチプレクサ８４を介して、優先順位ロジック回路３６から信号を受け取る。このマルチプレクサ８４は、圧縮と解凍のどちらがアクティブかに応じて、アクティブな移動ベクトル（ｍｏｖｅ  ｖｅｃｔｏｒ）を選択するように構成された６４ビット幅のマルチプレクサである。このＯＤＡ回路４２は、アウトオブデート適応を生成する６４ビット幅のレジスタおよび関連したマルチプレクサ回路である。
【００２４】
６４ビット幅のＯＤＡ回路４２の出力が、移動生成ロジック回路８６に供給され、この回路８６は６４ビット幅のマッチベクトルを伝搬して移動ベクトルを生成し、それによって辞書３０を適応させる。同じベクトル、すなわち現行の適応ベクトルが、ＯＤＡ回路４２の制御（ｃｏｎｔｒｏｌ）パス８８によってフィードバックされて、次の適応ベクトルを適応させる。
【００２５】
次に、図３に示した装置の残りの部分について考えると、これは前述の従来の技術中で説明したものと同様の方法で機能し、マッチ判断ロジック回路３７は６４−６エンコーダ９０にマッチ位置（ｍａｔｃｈ  ｌｏｃａｔｉｏｎ）を供給し、このエンコーダが符号化されていない６４ビット幅のマッチ位置を６ビット幅の符号化されたマッチ位置に変換する。エンコーダ９０の出力が、２進コード生成回路９２に移り、この生成回路がミスビットまたはマッチビットをマッチ位置に連結する。
【００２６】
マッチ判断ロジック回路３７はまた、非マッチバイト用の圧縮コードのリテラル部を構成するリテラル文字組立回路９４、およびマッチタイプ用の静的ハフマンコードを生成するマッチタイプコード生成回路９６に、マッチタイプ（ｍａｔｃｈ  ｔｙｐｅ）信号を供給する。マッチタイプコード生成回路９６からのマッチタイプコード（ｍａｔｃｈ  ｔｙｐｅ  ｃｏｄｅ）およびマッチタイプ幅（ｍａｔｃｈ  ｔｙｐｅ  ｗｉｄｔｈ）信号と、２進コード生成回路９２からの圧縮コード（ｃｏｍｐｒｅｓｓｅｄ  ｃｏｄｅ）は、第１のコード連結回路９８に移動し、このコード連結回路はマッチタイプおよびマッチ位置のためのコードを組み立てる。第２のコード連結回路１００は、連結回路９８からの出力、ならびにリテラル文字組立回路９４からのリテラルコード（ｌｉｔｅｒａｌ  ｃｏｄｅ）およびリテラル幅（ｌｉｔｅｒａｌ  ｗｉｄｔｈ）信号を受け取り、コード連結回路１０２に出力を供給し、そこで現行の圧縮コードを、以前の圧縮コードと組み立てる。連結回路１０は、ネクスト幅（ｎｅｘｔ  ｗｉｄｔｈ）信号、ネクストコード（ｎｅｘｔ  ｃｏｄｅ）信号、およびネクスト有効（ｎｅｘｔ  ｖａｌｉｄ）信号をレジスタ１０４に出力し、このレジスタは、データ用の９６ビット幅出力レジスタ、および有効データのビットの長さ用の７ビット幅レジスタである。このレジスタ１０４は、圧縮データ４０を出力するとともに、レジスタ１０４からの現行コード（ｃｕｒｒｅｎｔ  ｃｏｄｅ）信号および現行幅（ｃｕｒｒｅｎｔ  ｗｉｄｔｈ）信号と一緒に、コード連結回路１０２にフィードバックされる有効（ｖａｌｉｄ）信号も出力する。
【００２７】
それぞれ参照番号１０６、１０８、１１０で示すパイプラインＲ０Ｃ、Ｒ１Ｃ、Ｒ２Ｃは、圧縮経路のパイプラインレジスタを示している。
図４に、対応する単一の解凍回路を示す。圧縮回路と同様にして辞書３０、マルチプレクサ８０、マルチプレクサ８４、ＯＤＡ回路４２、および移動生成ロジック回路８６が接続される。
【００２８】
参照番号１２０の圧縮データイン（ｃｏｍｐｒｅｓｓｅｄ  ｄａｔａ  ｉｎ）がコード連結／シフト回路１２２に供給され、この回路は、新しい圧縮データを、古い圧縮データおよび解凍されたシフトアウトデータと組み立てる。各々の次のアンダーフロー（ｎｅｘｔ  ｕｎｄｅｒｆｌｏｗ）、次幅（ｎｅｘｔ  ｗｉｄｔｈ）（７ビット）、および次コード（ｎｅｘｔ  Ｃｏｄｅ）（９６ビット）信号は、レジスタ１２４へ移動して、圧縮データが一時記憶される。レジスタ出力は、主デコーダ１２６に供給され、この主デコーダが最大３３ビットの圧縮コードを、６ビットの位置（ｌｏｃａｔｉｏｎ）アドレス、４ビットのマッチタイプ（ｍａｔｃｈ  ｔｙｐｅ）、および３２ビットのリテラルデータ（ｌｉｔｅｒａｌ  ｄａｔａ）に復号する。６ビットの位置アドレスとミス（ｍｉｓｓ）信号の両方が、６−６４デコーダ１２８に移動し、ここで、６ビットのコード化された辞書アドレスをそのコード化されていない６４ビットの等価信号に復号する。
【００２９】
マッチタイプおよびリテラルデータ信号は、主デコーダ１２６から出力タプル組立回路１３０へと進む。
この６−６４デコーダ１２８が、マッチ位置（ｍａｔｃｈ  ｌｏｃａｔｉｏｎ）信号をマルチプレクサ８４に渡す。ＯＤＡ回路４２，移動生成ロジック回路８６，および辞書３０が、圧縮プロセスと逆に作用して、圧縮データを解凍する動作を行う。マルチプレクサ８０が、辞書３０に適用するため新しく形成されたタプルを選択する。この辞書データが、選択マルチプレクサ１３２に供給され、このマルチプレクサはまた、６−６４デコーダ１２８から、選択されたタプル（ｓｅｌｅｃｔｅｄ  ｔｕｐｌｅ）信号を受け取る。この選択マルチプレクサ１３２は、辞書から１つのタプルを選択し、出力タプル組立回路１３０に供給し、この回路が解凍し終わったマッチタイプに応じて、リテラルデータおよび辞書ワードを組み立てる。
【００３０】
非圧縮データアウト（ｕｎｃｏｍｐｒｅｓｓｅｄ  Ｄａｔａ−Ｏｕｔ）１３４は、（データイン（ｄａｔａ−Ｉｎ）３２とまったく同じである。損失はなかった。図２の圧縮装置／解凍装置と同様に、図３の圧縮装置および図４の解凍装置を並列化して、圧縮および解凍の速度をより高速にすることができる。
【００３１】
図５で、上述の同時係属の出願中に詳細に記載された発明が、Ｘ−ＭａｔｃｈＰＲＯ圧縮装置と呼ぶ単一の圧縮装置１０にまとめられている。
辞書３０は、ＣＡＭ技術に基づいており、検索レジスタ３４から検索すべきデータ３２が供給される。辞書は、Ｘ−Ｍａｔｃｈアルゴリズムに従って検索を行い、ＭＴＦ（Ｍｏｖｅ  Ｔｏ  Ｆｒｏｎｔ）戦略およびＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ最低使用頻度）ポリシーに基づいて構成される。
【００３２】
辞書出力は、マッチ判断ロジック３７を介して主コーダ３８に接続される優先順位ロジック３６に接続される。マッチ判断ロジック回路３７はまた、アウトオブデート適応（ＯＤＡ）レジスタと以下称する回路４２に信号を供給する。このＯＤＡ回路４２は、「移動（ｍｏｖｅ）」信号を辞書３０に供給するシフト制御ロジック回路４４に信号を供給する。
【００３３】
この構成によれば、辞書３０がアウトオブデートベースで更新される。すなわち、辞書に供給される次の適応ベクトルｔが現行の適応ベクトルｔ＋１に変換され、同時に辞書が更新される。各検索ステップ後に、現行の適応ベクトルにより、この変換と更新が実施される。
【００３４】
主コーダ３８は、「ランレングスインターナル」（ＲＬＩ）コーダと以下称するコーダ４６に信号を供給し、このコーダ４６が出力組立回路４８に信号を供給する。この組立回路４８は、圧縮データの出力ストリーム５０を生成する。
【００３５】
この場合にも、図５の構成を図１に示すようなアーキテクチャに組み込んで、多重圧縮システムを提供することができる。同じことが対応する解凍装置にも当てはまる。
圧縮システムの性能には、各圧縮装置に適用される検索タプルの順序や量が影響を与えることが認識されよう。図６は、１対のＸ−Ｍａｔｃｈデータ圧縮装置だけを用いてこれを示す簡単な一例である。
【００３６】
図６（ａ）では、１０組の４バイトタプルを含む入力データストリーム１１０がデータソータ１１２に入力され、ここで到来タプルを、第１のデータストリーム１１４と第２のデータストリーム１１６に交互に経路指定する。この交互の経路指定を、「インターリーブ化」構成と呼ぶ。したがって、最初のデータストリームはタプル１、３、５、７、および９から成り、一方第２データストリームは、タプル２、４、６、８、および１０から成る。第１のデータストリームは第１のＸ−Ｍａｔｃｈデータ圧縮装置１１８に結合され、第２のデータストリームは、第２のＸ−Ｍａｔｃｈデータ圧縮装置１２０に結合される。２つの圧縮装置の出力が結合されて、出力１２２を生成する。
【００３７】
図６（ｂ）では、１０個の４バイトタプルを含む入力データストリーム１１０が、データ経路指定回路１２４に入力され、ここで５つのブロックのタプルを第１のデータストリーム１２６と、第２のデータストリーム１２８に経路指定する。この経路指定技術を「ブロック化」構成と呼ぶ（一般にもっと多くのタプル数でブロックが構成されることに留意されたい。ここで５は、簡単にするために使用している）。したがって、第１のデータストリームは、タプル１、２、３、４、および５から成り、一方、第２のデータストリームは、タプル６、７、８、９、および１０から成る。第１のデータストリームは、第１のＸ−Ｍａｔｃｈデータ圧縮装置１１８に結合され、第２のデータストリームは第２のＸ−Ｍａｔｃｈデータ圧縮装置１２０に結合される。２つの圧縮装置の出力が結合されて出力１２２を生成する。
【００３８】
インターリーブ化技術では、各Ｘ−Ｍａｔｃｈ圧縮装置から圧縮データを引き出す際に遅延がないので非常に待ち時間が小さくなるが、ブロック化技術では各Ｘ−Ｍａｔｃｈ圧縮装置が到来データストリーム中の冗長性を活用することができるので、よりよい圧縮率を提供することができる。大部分の用途にとって、インターリーブ化技術は許容できないほど圧縮が小さすぎることが判明している。多重圧縮装置の待ち時間を圧縮率とトレードオフする構成については、図８、図９、および図１０を参照して、以下にさらに論じる。
【００３９】
図７に、本発明の実施形態による簡単な２つの圧縮装置構成１５０のより詳細なブロック図を示す。非圧縮データ（ｕｎｃｏｍｐｒｅｓｓｅｄ  ｄａｔａ）１５２が、第１の入力ＦＩＦＯ（先入れ先出しバッファ）１５４および第２の入力ＦＩＦＯ１５６に供給される。各Ｘ−Ｍａｔｃｈ圧縮装置ではクロックサイクル当たり４バイト処理することができるので、データは、待ち時間を最少にするためにデータ速度４ｎで到着するように構成すべきであり、ここでｎはＸ−Ｍａｔｃｈ圧縮装置の台数である。ＦＩＦＯ１５４、１５６のそれぞれには、書込み入力ＦＩＦＯ制御回路１５８からのそれぞれの書込み（ｗｒｉｔｅ）信号が供給される。この制御回路は、圧縮の開始、ならびに処理すべきデータブロックのサイズを制御する。例えば、必要なブロックサイズに達するまで入力ＦＩＦＯ１５４に書き込まれるようにし、次いで書き込み信号を逆にしてデータが入力ＦＩＦＯ１５６に書き込まれるようにする。
【００４０】
読込み入力ＦＩＦＯ制御回路１５８、１６０の制御下に、各チャネルの入力ＦＩＦＯは、２クロックサイクルごとにセレクタ１６２、１６４に６４ビットを渡す。ここで第１の３２ビットは、第１のクロックサイクルで送られ、第２の３２ビットは第２のクロックサイクルで送られる。このＦＩＦＯ制御回路１５８、１６０はまた、スタート（ｓｔａｒｔ）信号をそれぞれＸ−Ｍａｔｃｈ制御回路１６６、１６８に供給し、これらは制御（ｃｏｎｔｒｏｌ）信号をそれぞれＸ−Ｍａｔｃｈ圧縮装置１７０、１７２に供給する。圧縮データは、それぞれ出力ＦＩＦＯ１７４、１７６に供給される。（解凍を容易にするために）データの順序を維持するこれらのＦＩＦＯからのデータの組合せについては、以下で論じる。
【００４１】
複数のＸ−Ｍａｔｃｈ圧縮装置からの圧縮データを処理する第１の構成を、図８に示す。各出力ＦＩＦＯ７２〜８０は、圧縮データブロックのサイズを示すフラグＦを生成するように構成される。データが出力されるとき、まずフラグが送られる。図８で、フラグＦ１は、Ｘ−ＭａｔｃｈＰＲＯ圧縮装置５２が圧縮するデータを示すＣＭＰ１のデータに先行し、フラグＦ２は、Ｘ−ＭａｔｃｈＰＲＯ圧縮装置５４が圧縮するデータを示すＣＭＰ２中データに先行し、フラグＦ３は、Ｘ−ＭａｔｃｈＰＲＯ圧縮装置５６が圧縮するデータを示すＣＭＰ３のデータに先行する。矢印Ａは、データストリームの流れの方向を示す。各圧縮装置５２〜５６からのそのフラグ付き圧縮データが、利用可能になり次第、すなわち圧縮装置がその入力ＦＩＦＯに記憶された全ブロックを処理し終わるとすぐに、入力９０に供給される。
【００４２】
各圧縮ブロックの圧縮比が変わるので、有効なデータ出力がないときに９６および９８に示されるように各フラグと圧縮ブロックの間にアイドル時間があるのは避けられないが、これは次の圧縮装置がまだその入力ブロックの圧縮を完了していないからである。
【００４３】
次に解凍について考えると、圧縮データがその宛先に到達すると、システム９４（図１）とまったく同じシステムが解凍装置として使用される。フラグＦ１がまず入力バスに到達し、今や解凍装置として機能しているＸ−ＭａｔｃｈＰＲＯ１の入力ＦＩＦＯ６２に何ワードを送るべきか、入力ＦＩＦＯ６４には何ワードか、などをコントローラ９２に指示する。
【００４４】
この第１の構成において、出力９０では、フラグとアイドル時間が出力に含まれるので、単一の圧縮装置で得られる圧縮に比べて、５台の圧縮装置をもつ並列システム９４による圧縮では、いくらか圧縮率が低下する。この圧縮損失は、圧縮データのブロック当たりのフラグのオーバーヘッドが決まっているので、ブロックサイズが増加するにつれてゼロに近づく傾向がある。アイドル時間はデータを出力する際の浪費時間を表す。待ち時間が導入されるのは、９０に出力が生じる以前に、各圧縮装置によって入力ＦＩＦＯの容量に等しい全データブロックを圧縮する必要があるからである。
【００４５】
図９に示す第２の変形形態では、コントローラ９２は、５台の圧縮装置５２〜６０がすべてそのデータブロックを圧縮し終わるまで圧縮データが出力９０から送り出されないように、システム９４を制御するように構成されている。単一フラグ１００を使用して、各圧縮ブロックのサイズ、すなわち圧縮装置５２からのＣＭＰ１の３ワード、圧縮装置５４からのＣＭＰ２の３ワード、および圧縮装置５６、５８、６０からのＣＭＰ３、ＣＭＰ４、ＣＭＰ５のそれぞれ１ワードという情報が提供される。フラグ１００の付いた出力データワードのデータの流れに、アイドル時間１０２が続き、その後次のフラグ１０４と次の圧縮されたデータワードが続く。
【００４６】
この第２の構成では、システムの待ち時間が第１の構成に比べて大きくなるが、データの圧縮率については、必要なフラグ数がかなり減少し、すなわち５の代わりに１になるので、単一のＸ−ＭａｔｃｈＰＲＯ圧縮装置により提供されるはずの圧縮率に比べてそれほど悪くはない。
【００４７】
図１０に示す第３の変形形態では、全データブロックが各圧縮装置によって圧縮されるのを待たないで、各圧縮装置が一度に処理できるデータ量に相当する小さな部分を出力する。Ｘ−ＭａｔｃｈＰＲＯ１圧縮装置５２からのデータ入力の最初の４バイトの圧縮出力ＣＭＰ１が出力９０に送られ、次いでＸ−ＭａｔｃｈＰＲＯ２圧縮装置５４がその最初の圧縮された４バイトＣＭＰ２を出力９０に送り、次いで圧縮装置５６がＣＭＰ３を送る。次の圧縮装置５８がまだその最初の４バイトを圧縮し終えていなくて、その結果その出力ＦＩＦＯから出力準備ができたデータがない場合には、データがないことを示すフラグ１０６が送られて、次いで出力ＣＭＰ５が圧縮装置６０から取り出され、次いで圧縮装置５２からのサイクル出力ＣＭＰ１へと続く。
【００４８】
図１０の例では、圧縮装置５４も５６もデータを送る準備ができておらず、したがって２つのフラグ１０８、１１０が送られ、データＣＭＰ４が圧縮装置５８から出力される。続いて、圧縮装置６０、５２、５４、および５６が、順番に準備がすべて整って、出力データＣＭＰ５、ＣＭＰ１、ＣＭＰ２およびＣＭＰ３を途切れなしに送る。
【００４９】
フラグを用いて、次の圧縮装置が、４バイトの入力に対応する出力をまだ生成していないことを指示することにより、そのデータの待ち時間は、圧縮率が低下するという犠牲を払って、単一のＸ−ＭａｔｃｈＰＲＯ圧縮装置の待ち時間まで減らされている。データまたはフラグがいつも送り続けられ、それ故、データストリーム中にアイドル時間はない。
【００５０】
表１に、並列な５台のＸ−ＭａｔｃｈＰＲＯ圧縮装置の図５の構成における図８、図９、および図１０を参照して説明した３つの異なる出力構成の圧縮率、圧縮速度、および待ち時間の相対値を示すとともに、単一のＸ−ＭａｔｃｈＰＲＯ圧縮装置に対するこれらの値も示す。
【００５１】
【表１】
2004530318.tif 000003
【００５２】
現在圧縮中のデータタイプの要件に応じて、出力データを取り扱う３つの変形形態の１つを選択することが可能である。
並列に配置した５台のＸ−ＭａｔｃｈＰＲＯ圧縮装置を使用することにより、毎秒６２５Ｍバイトから毎秒３．２Ｇバイトへの圧縮速度の増大が実現可能である。
【００５３】
本発明を、一例を用いて説明してきたが、本発明は、明示的であれ暗示的であれ本明細書に記載した新しい特徴、あるいはそれを一般化したものを包含するものとする。
【図面の簡単な説明】
【００５４】
【図１】５つのＸ−Ｍａｔｃｈ圧縮装置を備えた圧縮／解凍システムを示す図である。
【図２】本発明を適用可能なＷＯ０１／５６１６８に開示のデータ圧縮／解凍装置を示す図である。
【図３】本発明を適用可能なＷＯ０１／５６１６９に開示のデータ圧縮装置を示す図である。
【図４】本発明を適用可能なＷＯ０１／５６１６９に開示のデータ解凍装置を示す図である。
【図５】本発明の一実施形態によるＸ−ＭａｔｃｈＰＲＯ圧縮装置の概略図である。
【図６】図６（ａ）は、複数のデータ圧縮装置にデータを供給する技術を示す図である。図６（ｂ）は、複数のデータ圧縮装置にデータを供給する技術を示す図である。
【図７】本発明の２つの圧縮装置の実施形態のブロック概略図を示す図である。
【図８】圧縮データを処理する３つの異なる構成の１つを示す図である。
【図９】圧縮データを処理する３つの異なる構成の１つを示す図である。
【図１０】圧縮データを処理する３つの異なる構成の１つを示す図である。
【図１】
2004530318.tif 000004
【図２】
2004530318.tif 000005
【図３】
2004530318.tif 000006
【図４】
2004530318.tif 000007
【図５】
2004530318.tif 000008
【図６】
2004530318.tif 000009
【図７】
2004530318.tif 000010
【図８】
2004530318.tif 000011
【図９】
2004530318.tif 000012
【図１０】
2004530318.tif 000013
【国際公開パンフレット】
2004530318.tif 000014
2004530318.tif 000015
2004530318.tif 000016
2004530318.tif 000017
2004530318.tif 000018
2004530318.tif 000019
2004530318.tif 000020
2004530318.tif 000021
2004530318.tif 000022
2004530318.tif 000023
2004530318.tif 000024
2004530318.tif 000025
2004530318.tif 000026
2004530318.tif 000027
2004530318.tif 000028
2004530318.tif 000029
2004530318.tif 000030
2004530318.tif 000031
2004530318.tif 000032
2004530318.tif 000033
2004530318.tif 000034
2004530318.tif 000035
2004530318.tif 000036
2004530318.tif 000037
2004530318.tif 000038
2004530318.tif 000039
2004530318.tif 000040
2004530318.tif 000041
2004530318.tif 000042
【国際公開パンフレット（コレクトバージョン）】
2004530318.tif 000043
2004530318.tif 000044
【国際公開パンフレット（コレクトバージョン）】
2004530318.tif 000045
2004530318.tif 000046
【国際公開パンフレット（コレクトバージョン）】
2004530318.tif 000047
2004530318.tif 000048
2004530318.tif 000049
2004530318.tif 000050
2004530318.tif 000051
2004530318.tif 000052
2004530318.tif 000053
2004530318.tif 000054
2004530318.tif 000055
2004530318.tif 000056
2004530318.tif 000057
2004530318.tif 000058
2004530318.tif 000059
2004530318.tif 000060
2004530318.tif 000061
2004530318.tif 000062
2004530318.tif 000063
2004530318.tif 000064
2004530318.tif 000065
2004530318.tif 000066
2004530318.tif 000067
2004530318.tif 000068
2004530318.tif 000069
2004530318.tif 000070
2004530318.tif 000071
2004530318.tif 000072
2004530318.tif 000073
2004530318.tif 000074
2004530318.tif 000075
【国際調査報告】
2004530318.tif 000076
2004530318.tif 000077
2004530318.tif 000078