JP2004530318A - 高速データ圧縮を提供する装置 - Google Patents
高速データ圧縮を提供する装置 Download PDFInfo
- Publication number
- JP2004530318A JP2004530318A JP2002561374A JP2002561374A JP2004530318A JP 2004530318 A JP2004530318 A JP 2004530318A JP 2002561374 A JP2002561374 A JP 2002561374A JP 2002561374 A JP2002561374 A JP 2002561374A JP 2004530318 A JP2004530318 A JP 2004530318A
- Authority
- JP
- Japan
- Prior art keywords
- dictionary
- data
- data compression
- coder
- compression
- 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.)
- Pending
Links
Images
Classifications
-
- 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/3002—Conversion to or from differential modulation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
可逆データ圧縮装置(10)が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書(30)およびコーダ(38)を有し、回路手段(42)が、コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルから辞書を更新することができるように、そのフィードバックループに接続され、ランレングス符号化手段(46)が、コーダ(38)の出力を受け取るように接続されている。符号化手段(46)は、辞書(30)中の所定の位置でマッチが連続して起こる回数、すなわち、辞書の同じアドレスに同じ検索タプルがロードされる回数をカウントするように構成されている。2台以上の可逆データ圧縮装置を、本発明の一態様に従って並列に構成することができる。
Description
【技術分野】
【0001】
本発明は、可逆(lossless)データ圧縮用の装置に関し、詳細には既知の技術に比べて圧縮速度を増加させることに関する。
【背景技術】
【0002】
共に2000年1月25日を優先日とする本出願人の同時係属の国際特許出願WO01/56168およびWO01/56169に、それぞれより効率的なデータ圧縮技術、および圧縮速度の改善技術が開示されている。前述の出願の開示を、本明細書中に参照により援用する。
【発明の開示】
【課題を解決するための手段】
【0003】
本発明の第1の態様によれば、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書およびコーダと、コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルからその辞書を更新できるように、フィードバックループ中に接続された回路手段と、コーダの出力を受け取るように接続され、辞書中の所定の位置で、連続してマッチ(整合:match)が起こる回数をカウントするように構成されたランレングス符号化手段とを特徴とする可逆データ圧縮器。
【0004】
このような発明の構成は、前述の2件の出願に含まれる発明の両方を組み込んでいる。このような圧縮装置を、「X−MatchPRO」圧縮装置と呼ぶことにする。
さらに本発明によれば、並列に構成された複数のデータ圧縮装置を特徴とする可逆データ圧縮システムが提供される。この圧縮装置としては、WO01/56168で特許請求されているもの、WO01/56169で特許請求されているもの、または本発明の第1の態様によるもの、すなわちX−MatchPRO圧縮装置を備えることができる。
【0005】
このシステム中の各圧縮装置の出力は、データ出力に順番に供給されることが好ましい。圧縮データが、各圧縮装置からの圧縮データの長さを示すフラグ手段を備えることが好ましい。
【0006】
本発明はさらに、関連したデータ解凍装置を備える。
次に本発明を、図1〜図10を参照して、単なる例として説明することにする。
【発明を実施するための最良の形態】
【0007】
図1では、X−Match1ないしX−Match5と称する5つの可逆データ圧縮装置52、54、56、58、60が並列に構成されて、可逆データ圧縮システム94を形成している。各圧縮装置は入力FIFO(先入れ先出し)回路62、64、66、68、70、および出力FIFO回路72、74、76、78、80を有する。入力FIFO62〜70は、圧縮すべきデータ84が供給される入力バス82に共に接続されている。出力FIFO72〜80は、圧縮データを出力90に供給する出力バス86に共に接続されている。コントロールシステム92は、圧縮システム94中に入り、そこから出る経路指定データを適切に制御することを可能にする制御信号を圧縮装置およびFIFOに供給する。
【0008】
この例では各X−Match圧縮装置52〜60は、0.15ミクロンのCMOS ASIC技術で実装される4バイト設計である。各入力FIFO62〜70は、圧縮装置の容量より大きな、一般に64バイトから32kバイトの圧縮すべきデータからのデータブロックを記憶することができる。
【0009】
動作に当たって、起動時には、最初のデータブロックが、X−Match1圧縮装置52の入力FIFO62に送られる。最初のブロックが送られた後、次のブロックがX−Match2圧縮装置54の入力FIFO64に送られ、以下同様である。第5データブロックがFIFO80に送られた後には、X−Match1圧縮装置62は、最初のデータブロックの圧縮をちょうど完了したと予想され、したがって、第6のデータブロックが入力FIFO62に送られ、サイクルが継続される。データがその関連するFIFOに入るとすぐに、各X−Match圧縮装置では、同時係属特許出願に詳細に説明されていたように、一度に4バイトの圧縮を開始するためにデータの利用が可能になる。
【0010】
次に、コントローラ94の制御下で圧縮データを処理する方法について考察する。出力FIFO72〜80中の圧縮データブロックのサイズは、入力データのタイプに依存しており、すなわち各ブロックは異なる圧縮比を持つ可能性がある。図8、図9、および図10を参照して説明する圧縮データを処理する3つの変形形態により、圧縮と待ち時間(latency)との間の設計上のトレードオフが可能になる。
【0011】
本発明の一実施形態が基づくことの可能なWO01/56168に開示の、より詳細なコーダ/デコーダ回路を、図2に示す。
非圧縮データ32がCAM辞書30に供給され、この辞書の出力、すなわちマッチが見いだされた辞書アドレス、または部分マッチに加えて非マッチの1つまたは複数のバイトのアドレスの指示が、優先順位ロジック回路80に供給される。この回路80は辞書中の異なる種類の可能なマッチ、すなわち完全マッチ、部分マッチ、またはミスマッチのそれぞれに異なる優先順位を割り当て、その結果をマッチ判断ロジック回路82に供給する。回路82は、優先順位タイプを使用して、優先順位情報を使用して圧縮に最適であるマッチの1つを選び、主コーダ38に信号を供給する。
【0012】
以上に参照した従来技術で説明したように、主コーダ38は、マッチ位置に同一の2進コードを、またマッチタイプに静的ハフマンコードを割り当て、必要なバイトをリテラル形式で連結する。圧縮された出力がRLIコーダ39に供給される。この信号は主コーダによって生成されるが、簡単にするため図に示してはいない。RLIコーダ出力はビット組立ロジック40に移り、64ビットより多くの圧縮データが(図示せず)内部バッファ中で有効な場合はいつでも、この組立ロジック40が、新たな64ビットの圧縮出力をメモリに書き込む。この出力が、圧縮コード42である。
【0013】
優先順位ロジック回路80からの出力がまた、本出願人による同時係属の特許出願WO01/56169に記載されているように、アウトオブデート適応(out−of−date adaptaion)(ODA)ロジック回路84に供給される。このODA回路84の出力は、マッチタイプおよびマッチ位置に応じて(図3で適用した適応ベクトルとしての)移動ベクトルを生成する移動生成ロジック回路44に接続される。この移動生成ロジック44はまた、ODAロジック回路84にフィードバック信号を供給する。
【0014】
解凍については、圧縮入力90が、ビット分解ロジック回路92に供給され、この回路は、解凍動作後に(図示せず)内部バッファ中に残っている有効なビット数が33ビットよりも少ないときはいつでも、メモリから新たに64ビットの圧縮ベクトルを読み込む。この圧縮ベクトルは、主デコーダ94に供給され、このデコーダは、マッチ位置およびマッチタイプを、必要なリテラル文字と一緒にデコードし、可能なRLIコードがあれば検出する。デコーダ94が、RLIデコーダ76に接続され、このRLIデコーダが、ランレングスデコード出力をODAロジック回路84およびタプル組立回路96にも供給する。
【0015】
CAM辞書30は、デコード入力に作用して、4バイト幅のワードを再生し、これらのワードはタプル組立回路96に供給される。この回路は、非圧縮データ98を供給し、この非圧縮データは、辞書30からの情報を使用して組み立てられたタプルに加えてコードに存在する任意のリテラル文字を含む。
【0016】
この構成によるランレングスインターナル符号化(run length internal coding)を適用することにより、圧縮速度にほとんどまたはまったく影響を与えずに、10%のこともある圧縮の改善を実現することが判明している。この改善は、32ビットパターンなど任意の繰り返しパターンに対する効率的なランレングス符号化による結果である。最も一般的な繰り返しパターンは0の連続であるが、他にもテキストファイル中のスペース文字や、図中の一定の背景色などが可能である。本発明の適用により、かかる非ゼロ文字の効率的な可逆的な符号化および復号化が可能となる。
【0017】
最低使用頻度辞書メンテナンスポリシーは、任意の繰り返しパターンを辞書30中の位置ゼロに配置させる。ランレングスインターナル符号化では、位置ゼロで2回以上完全にマッチした任意のベクトルを検出し、符号化する。
【0018】
かかる構成では、圧縮システム中の辞書の前にランレングス符号化回路を配置するのに比べて圧縮が有利になり、それが辞書のロジックを使用しているので、アーキテクチャの高レベルの統合により複雑さが最少に保たれる。
【0019】
CAM辞書30は、15、31、または63ワードにすることができる。1つの位置が、RLIイベント用に留保済みであるためである。辞書が大きくなるほど圧縮が改善されるが、複雑さがかなり増大する。
【0020】
非圧縮データアウト98は、データイン32とまったく同じである。損失はなかった。
図1に示すようなシステム中において図2の構成を使用して、本発明の実施形態による多重圧縮装置構成を提供することができる。多重解凍装置の実施形態も同様にして提供することができる。並列に接続して多重圧縮装置(および解凍装置)を提供することが可能な別の圧縮装置(および解凍装置)のアーキテクチャについて、次に説明する。
【0021】
図3に、このもう1つの圧縮装置のブロック概略図を示す。従来と同様に、結線上のビット数を結線と交差するバーの近くに示している。
辞書30は、入力データが32ビット幅の検索レジスタ34を介して供給される64要素のCAMベースのアレイである。検索用のデータは、マルチプレクサ80が圧縮時にこの検索レジスタを選択するように構成される間は辞書30に直接提供されるが、このデータは解凍時には追加の機能を有する(図4参照)。
【0022】
辞書30の出力、すなわちマッチが見つかった辞書アドレスの指示、または部分マッチとそのマッチしなかったビットのアドレスが、優先順位ロジック回路82に移り、この回路が辞書中の各位置ごとに4ビット幅のマッチ(match)を5ビット幅の優先順位タイプ(priority type)に変換し、優先順位タイプをマッチ判断ロジック回路37に供給する。ここで、回路37は、辞書30の出力も直接に受け取る。回路37は、優先順位タイプを使用して、圧縮プロセスにとっての最適マッチ位置を選択する。
【0023】
ODA回路42が、マルチプレクサ84を介して、優先順位ロジック回路36から信号を受け取る。このマルチプレクサ84は、圧縮と解凍のどちらがアクティブかに応じて、アクティブな移動ベクトル(move vector)を選択するように構成された64ビット幅のマルチプレクサである。このODA回路42は、アウトオブデート適応を生成する64ビット幅のレジスタおよび関連したマルチプレクサ回路である。
【0024】
64ビット幅のODA回路42の出力が、移動生成ロジック回路86に供給され、この回路86は64ビット幅のマッチベクトルを伝搬して移動ベクトルを生成し、それによって辞書30を適応させる。同じベクトル、すなわち現行の適応ベクトルが、ODA回路42の制御(control)パス88によってフィードバックされて、次の適応ベクトルを適応させる。
【0025】
次に、図3に示した装置の残りの部分について考えると、これは前述の従来の技術中で説明したものと同様の方法で機能し、マッチ判断ロジック回路37は64−6エンコーダ90にマッチ位置(match location)を供給し、このエンコーダが符号化されていない64ビット幅のマッチ位置を6ビット幅の符号化されたマッチ位置に変換する。エンコーダ90の出力が、2進コード生成回路92に移り、この生成回路がミスビットまたはマッチビットをマッチ位置に連結する。
【0026】
マッチ判断ロジック回路37はまた、非マッチバイト用の圧縮コードのリテラル部を構成するリテラル文字組立回路94、およびマッチタイプ用の静的ハフマンコードを生成するマッチタイプコード生成回路96に、マッチタイプ(match type)信号を供給する。マッチタイプコード生成回路96からのマッチタイプコード(match type code)およびマッチタイプ幅(match type width)信号と、2進コード生成回路92からの圧縮コード(compressed code)は、第1のコード連結回路98に移動し、このコード連結回路はマッチタイプおよびマッチ位置のためのコードを組み立てる。第2のコード連結回路100は、連結回路98からの出力、ならびにリテラル文字組立回路94からのリテラルコード(literal code)およびリテラル幅(literal width)信号を受け取り、コード連結回路102に出力を供給し、そこで現行の圧縮コードを、以前の圧縮コードと組み立てる。連結回路10は、ネクスト幅(next width)信号、ネクストコード(next code)信号、およびネクスト有効(next valid)信号をレジスタ104に出力し、このレジスタは、データ用の96ビット幅出力レジスタ、および有効データのビットの長さ用の7ビット幅レジスタである。このレジスタ104は、圧縮データ40を出力するとともに、レジスタ104からの現行コード(current code)信号および現行幅(current width)信号と一緒に、コード連結回路102にフィードバックされる有効(valid)信号も出力する。
【0027】
それぞれ参照番号106、108、110で示すパイプラインR0C、R1C、R2Cは、圧縮経路のパイプラインレジスタを示している。
図4に、対応する単一の解凍回路を示す。圧縮回路と同様にして辞書30、マルチプレクサ80、マルチプレクサ84、ODA回路42、および移動生成ロジック回路86が接続される。
【0028】
参照番号120の圧縮データイン(compressed data in)がコード連結/シフト回路122に供給され、この回路は、新しい圧縮データを、古い圧縮データおよび解凍されたシフトアウトデータと組み立てる。各々の次のアンダーフロー(next underflow)、次幅(next width)(7ビット)、および次コード(next Code)(96ビット)信号は、レジスタ124へ移動して、圧縮データが一時記憶される。レジスタ出力は、主デコーダ126に供給され、この主デコーダが最大33ビットの圧縮コードを、6ビットの位置(location)アドレス、4ビットのマッチタイプ(match type)、および32ビットのリテラルデータ(literal data)に復号する。6ビットの位置アドレスとミス(miss)信号の両方が、6−64デコーダ128に移動し、ここで、6ビットのコード化された辞書アドレスをそのコード化されていない64ビットの等価信号に復号する。
【0029】
マッチタイプおよびリテラルデータ信号は、主デコーダ126から出力タプル組立回路130へと進む。
この6−64デコーダ128が、マッチ位置(match location)信号をマルチプレクサ84に渡す。ODA回路42,移動生成ロジック回路86,および辞書30が、圧縮プロセスと逆に作用して、圧縮データを解凍する動作を行う。マルチプレクサ80が、辞書30に適用するため新しく形成されたタプルを選択する。この辞書データが、選択マルチプレクサ132に供給され、このマルチプレクサはまた、6−64デコーダ128から、選択されたタプル(selected tuple)信号を受け取る。この選択マルチプレクサ132は、辞書から1つのタプルを選択し、出力タプル組立回路130に供給し、この回路が解凍し終わったマッチタイプに応じて、リテラルデータおよび辞書ワードを組み立てる。
【0030】
非圧縮データアウト(uncompressed Data−Out)134は、(データイン(data−In)32とまったく同じである。損失はなかった。図2の圧縮装置/解凍装置と同様に、図3の圧縮装置および図4の解凍装置を並列化して、圧縮および解凍の速度をより高速にすることができる。
【0031】
図5で、上述の同時係属の出願中に詳細に記載された発明が、X−MatchPRO圧縮装置と呼ぶ単一の圧縮装置10にまとめられている。
辞書30は、CAM技術に基づいており、検索レジスタ34から検索すべきデータ32が供給される。辞書は、X−Matchアルゴリズムに従って検索を行い、MTF(Move To Front)戦略およびLRU(Least Recently Used最低使用頻度)ポリシーに基づいて構成される。
【0032】
辞書出力は、マッチ判断ロジック37を介して主コーダ38に接続される優先順位ロジック36に接続される。マッチ判断ロジック回路37はまた、アウトオブデート適応(ODA)レジスタと以下称する回路42に信号を供給する。このODA回路42は、「移動(move)」信号を辞書30に供給するシフト制御ロジック回路44に信号を供給する。
【0033】
この構成によれば、辞書30がアウトオブデートベースで更新される。すなわち、辞書に供給される次の適応ベクトルtが現行の適応ベクトルt+1に変換され、同時に辞書が更新される。各検索ステップ後に、現行の適応ベクトルにより、この変換と更新が実施される。
【0034】
主コーダ38は、「ランレングスインターナル」(RLI)コーダと以下称するコーダ46に信号を供給し、このコーダ46が出力組立回路48に信号を供給する。この組立回路48は、圧縮データの出力ストリーム50を生成する。
【0035】
この場合にも、図5の構成を図1に示すようなアーキテクチャに組み込んで、多重圧縮システムを提供することができる。同じことが対応する解凍装置にも当てはまる。
圧縮システムの性能には、各圧縮装置に適用される検索タプルの順序や量が影響を与えることが認識されよう。図6は、1対のX−Matchデータ圧縮装置だけを用いてこれを示す簡単な一例である。
【0036】
図6(a)では、10組の4バイトタプルを含む入力データストリーム110がデータソータ112に入力され、ここで到来タプルを、第1のデータストリーム114と第2のデータストリーム116に交互に経路指定する。この交互の経路指定を、「インターリーブ化」構成と呼ぶ。したがって、最初のデータストリームはタプル1、3、5、7、および9から成り、一方第2データストリームは、タプル2、4、6、8、および10から成る。第1のデータストリームは第1のX−Matchデータ圧縮装置118に結合され、第2のデータストリームは、第2のX−Matchデータ圧縮装置120に結合される。2つの圧縮装置の出力が結合されて、出力122を生成する。
【0037】
図6(b)では、10個の4バイトタプルを含む入力データストリーム110が、データ経路指定回路124に入力され、ここで5つのブロックのタプルを第1のデータストリーム126と、第2のデータストリーム128に経路指定する。この経路指定技術を「ブロック化」構成と呼ぶ(一般にもっと多くのタプル数でブロックが構成されることに留意されたい。ここで5は、簡単にするために使用している)。したがって、第1のデータストリームは、タプル1、2、3、4、および5から成り、一方、第2のデータストリームは、タプル6、7、8、9、および10から成る。第1のデータストリームは、第1のX−Matchデータ圧縮装置118に結合され、第2のデータストリームは第2のX−Matchデータ圧縮装置120に結合される。2つの圧縮装置の出力が結合されて出力122を生成する。
【0038】
インターリーブ化技術では、各X−Match圧縮装置から圧縮データを引き出す際に遅延がないので非常に待ち時間が小さくなるが、ブロック化技術では各X−Match圧縮装置が到来データストリーム中の冗長性を活用することができるので、よりよい圧縮率を提供することができる。大部分の用途にとって、インターリーブ化技術は許容できないほど圧縮が小さすぎることが判明している。多重圧縮装置の待ち時間を圧縮率とトレードオフする構成については、図8、図9、および図10を参照して、以下にさらに論じる。
【0039】
図7に、本発明の実施形態による簡単な2つの圧縮装置構成150のより詳細なブロック図を示す。非圧縮データ(uncompressed data)152が、第1の入力FIFO(先入れ先出しバッファ)154および第2の入力FIFO156に供給される。各X−Match圧縮装置ではクロックサイクル当たり4バイト処理することができるので、データは、待ち時間を最少にするためにデータ速度4nで到着するように構成すべきであり、ここでnはX−Match圧縮装置の台数である。FIFO154、156のそれぞれには、書込み入力FIFO制御回路158からのそれぞれの書込み(write)信号が供給される。この制御回路は、圧縮の開始、ならびに処理すべきデータブロックのサイズを制御する。例えば、必要なブロックサイズに達するまで入力FIFO154に書き込まれるようにし、次いで書き込み信号を逆にしてデータが入力FIFO156に書き込まれるようにする。
【0040】
読込み入力FIFO制御回路158、160の制御下に、各チャネルの入力FIFOは、2クロックサイクルごとにセレクタ162、164に64ビットを渡す。ここで第1の32ビットは、第1のクロックサイクルで送られ、第2の32ビットは第2のクロックサイクルで送られる。このFIFO制御回路158、160はまた、スタート(start)信号をそれぞれX−Match制御回路166、168に供給し、これらは制御(control)信号をそれぞれX−Match圧縮装置170、172に供給する。圧縮データは、それぞれ出力FIFO174、176に供給される。(解凍を容易にするために)データの順序を維持するこれらのFIFOからのデータの組合せについては、以下で論じる。
【0041】
複数のX−Match圧縮装置からの圧縮データを処理する第1の構成を、図8に示す。各出力FIFO72〜80は、圧縮データブロックのサイズを示すフラグFを生成するように構成される。データが出力されるとき、まずフラグが送られる。図8で、フラグF1は、X−MatchPRO圧縮装置52が圧縮するデータを示すCMP1のデータに先行し、フラグF2は、X−MatchPRO圧縮装置54が圧縮するデータを示すCMP2中データに先行し、フラグF3は、X−MatchPRO圧縮装置56が圧縮するデータを示すCMP3のデータに先行する。矢印Aは、データストリームの流れの方向を示す。各圧縮装置52〜56からのそのフラグ付き圧縮データが、利用可能になり次第、すなわち圧縮装置がその入力FIFOに記憶された全ブロックを処理し終わるとすぐに、入力90に供給される。
【0042】
各圧縮ブロックの圧縮比が変わるので、有効なデータ出力がないときに96および98に示されるように各フラグと圧縮ブロックの間にアイドル時間があるのは避けられないが、これは次の圧縮装置がまだその入力ブロックの圧縮を完了していないからである。
【0043】
次に解凍について考えると、圧縮データがその宛先に到達すると、システム94(図1)とまったく同じシステムが解凍装置として使用される。フラグF1がまず入力バスに到達し、今や解凍装置として機能しているX−MatchPRO1の入力FIFO62に何ワードを送るべきか、入力FIFO64には何ワードか、などをコントローラ92に指示する。
【0044】
この第1の構成において、出力90では、フラグとアイドル時間が出力に含まれるので、単一の圧縮装置で得られる圧縮に比べて、5台の圧縮装置をもつ並列システム94による圧縮では、いくらか圧縮率が低下する。この圧縮損失は、圧縮データのブロック当たりのフラグのオーバーヘッドが決まっているので、ブロックサイズが増加するにつれてゼロに近づく傾向がある。アイドル時間はデータを出力する際の浪費時間を表す。待ち時間が導入されるのは、90に出力が生じる以前に、各圧縮装置によって入力FIFOの容量に等しい全データブロックを圧縮する必要があるからである。
【0045】
図9に示す第2の変形形態では、コントローラ92は、5台の圧縮装置52〜60がすべてそのデータブロックを圧縮し終わるまで圧縮データが出力90から送り出されないように、システム94を制御するように構成されている。単一フラグ100を使用して、各圧縮ブロックのサイズ、すなわち圧縮装置52からのCMP1の3ワード、圧縮装置54からのCMP2の3ワード、および圧縮装置56、58、60からのCMP3、CMP4、CMP5のそれぞれ1ワードという情報が提供される。フラグ100の付いた出力データワードのデータの流れに、アイドル時間102が続き、その後次のフラグ104と次の圧縮されたデータワードが続く。
【0046】
この第2の構成では、システムの待ち時間が第1の構成に比べて大きくなるが、データの圧縮率については、必要なフラグ数がかなり減少し、すなわち5の代わりに1になるので、単一のX−MatchPRO圧縮装置により提供されるはずの圧縮率に比べてそれほど悪くはない。
【0047】
図10に示す第3の変形形態では、全データブロックが各圧縮装置によって圧縮されるのを待たないで、各圧縮装置が一度に処理できるデータ量に相当する小さな部分を出力する。X−MatchPRO1圧縮装置52からのデータ入力の最初の4バイトの圧縮出力CMP1が出力90に送られ、次いでX−MatchPRO2圧縮装置54がその最初の圧縮された4バイトCMP2を出力90に送り、次いで圧縮装置56がCMP3を送る。次の圧縮装置58がまだその最初の4バイトを圧縮し終えていなくて、その結果その出力FIFOから出力準備ができたデータがない場合には、データがないことを示すフラグ106が送られて、次いで出力CMP5が圧縮装置60から取り出され、次いで圧縮装置52からのサイクル出力CMP1へと続く。
【0048】
図10の例では、圧縮装置54も56もデータを送る準備ができておらず、したがって2つのフラグ108、110が送られ、データCMP4が圧縮装置58から出力される。続いて、圧縮装置60、52、54、および56が、順番に準備がすべて整って、出力データCMP5、CMP1、CMP2およびCMP3を途切れなしに送る。
【0049】
フラグを用いて、次の圧縮装置が、4バイトの入力に対応する出力をまだ生成していないことを指示することにより、そのデータの待ち時間は、圧縮率が低下するという犠牲を払って、単一のX−MatchPRO圧縮装置の待ち時間まで減らされている。データまたはフラグがいつも送り続けられ、それ故、データストリーム中にアイドル時間はない。
【0050】
表1に、並列な5台のX−MatchPRO圧縮装置の図5の構成における図8、図9、および図10を参照して説明した3つの異なる出力構成の圧縮率、圧縮速度、および待ち時間の相対値を示すとともに、単一のX−MatchPRO圧縮装置に対するこれらの値も示す。
【0051】
【表1】
【0052】
現在圧縮中のデータタイプの要件に応じて、出力データを取り扱う3つの変形形態の1つを選択することが可能である。
並列に配置した5台のX−MatchPRO圧縮装置を使用することにより、毎秒625Mバイトから毎秒3.2Gバイトへの圧縮速度の増大が実現可能である。
【0053】
本発明を、一例を用いて説明してきたが、本発明は、明示的であれ暗示的であれ本明細書に記載した新しい特徴、あるいはそれを一般化したものを包含するものとする。
【図面の簡単な説明】
【0054】
【図1】5つのX−Match圧縮装置を備えた圧縮/解凍システムを示す図である。
【図2】本発明を適用可能なWO01/56168に開示のデータ圧縮/解凍装置を示す図である。
【図3】本発明を適用可能なWO01/56169に開示のデータ圧縮装置を示す図である。
【図4】本発明を適用可能なWO01/56169に開示のデータ解凍装置を示す図である。
【図5】本発明の一実施形態によるX−MatchPRO圧縮装置の概略図である。
【図6】図6(a)は、複数のデータ圧縮装置にデータを供給する技術を示す図である。図6(b)は、複数のデータ圧縮装置にデータを供給する技術を示す図である。
【図7】本発明の2つの圧縮装置の実施形態のブロック概略図を示す図である。
【図8】圧縮データを処理する3つの異なる構成の1つを示す図である。
【図9】圧縮データを処理する3つの異なる構成の1つを示す図である。
【図10】圧縮データを処理する3つの異なる構成の1つを示す図である。
【0001】
本発明は、可逆(lossless)データ圧縮用の装置に関し、詳細には既知の技術に比べて圧縮速度を増加させることに関する。
【背景技術】
【0002】
共に2000年1月25日を優先日とする本出願人の同時係属の国際特許出願WO01/56168およびWO01/56169に、それぞれより効率的なデータ圧縮技術、および圧縮速度の改善技術が開示されている。前述の出願の開示を、本明細書中に参照により援用する。
【発明の開示】
【課題を解決するための手段】
【0003】
本発明の第1の態様によれば、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書およびコーダと、コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルからその辞書を更新できるように、フィードバックループ中に接続された回路手段と、コーダの出力を受け取るように接続され、辞書中の所定の位置で、連続してマッチ(整合:match)が起こる回数をカウントするように構成されたランレングス符号化手段とを特徴とする可逆データ圧縮器。
【0004】
このような発明の構成は、前述の2件の出願に含まれる発明の両方を組み込んでいる。このような圧縮装置を、「X−MatchPRO」圧縮装置と呼ぶことにする。
さらに本発明によれば、並列に構成された複数のデータ圧縮装置を特徴とする可逆データ圧縮システムが提供される。この圧縮装置としては、WO01/56168で特許請求されているもの、WO01/56169で特許請求されているもの、または本発明の第1の態様によるもの、すなわちX−MatchPRO圧縮装置を備えることができる。
【0005】
このシステム中の各圧縮装置の出力は、データ出力に順番に供給されることが好ましい。圧縮データが、各圧縮装置からの圧縮データの長さを示すフラグ手段を備えることが好ましい。
【0006】
本発明はさらに、関連したデータ解凍装置を備える。
次に本発明を、図1〜図10を参照して、単なる例として説明することにする。
【発明を実施するための最良の形態】
【0007】
図1では、X−Match1ないしX−Match5と称する5つの可逆データ圧縮装置52、54、56、58、60が並列に構成されて、可逆データ圧縮システム94を形成している。各圧縮装置は入力FIFO(先入れ先出し)回路62、64、66、68、70、および出力FIFO回路72、74、76、78、80を有する。入力FIFO62〜70は、圧縮すべきデータ84が供給される入力バス82に共に接続されている。出力FIFO72〜80は、圧縮データを出力90に供給する出力バス86に共に接続されている。コントロールシステム92は、圧縮システム94中に入り、そこから出る経路指定データを適切に制御することを可能にする制御信号を圧縮装置およびFIFOに供給する。
【0008】
この例では各X−Match圧縮装置52〜60は、0.15ミクロンのCMOS ASIC技術で実装される4バイト設計である。各入力FIFO62〜70は、圧縮装置の容量より大きな、一般に64バイトから32kバイトの圧縮すべきデータからのデータブロックを記憶することができる。
【0009】
動作に当たって、起動時には、最初のデータブロックが、X−Match1圧縮装置52の入力FIFO62に送られる。最初のブロックが送られた後、次のブロックがX−Match2圧縮装置54の入力FIFO64に送られ、以下同様である。第5データブロックがFIFO80に送られた後には、X−Match1圧縮装置62は、最初のデータブロックの圧縮をちょうど完了したと予想され、したがって、第6のデータブロックが入力FIFO62に送られ、サイクルが継続される。データがその関連するFIFOに入るとすぐに、各X−Match圧縮装置では、同時係属特許出願に詳細に説明されていたように、一度に4バイトの圧縮を開始するためにデータの利用が可能になる。
【0010】
次に、コントローラ94の制御下で圧縮データを処理する方法について考察する。出力FIFO72〜80中の圧縮データブロックのサイズは、入力データのタイプに依存しており、すなわち各ブロックは異なる圧縮比を持つ可能性がある。図8、図9、および図10を参照して説明する圧縮データを処理する3つの変形形態により、圧縮と待ち時間(latency)との間の設計上のトレードオフが可能になる。
【0011】
本発明の一実施形態が基づくことの可能なWO01/56168に開示の、より詳細なコーダ/デコーダ回路を、図2に示す。
非圧縮データ32がCAM辞書30に供給され、この辞書の出力、すなわちマッチが見いだされた辞書アドレス、または部分マッチに加えて非マッチの1つまたは複数のバイトのアドレスの指示が、優先順位ロジック回路80に供給される。この回路80は辞書中の異なる種類の可能なマッチ、すなわち完全マッチ、部分マッチ、またはミスマッチのそれぞれに異なる優先順位を割り当て、その結果をマッチ判断ロジック回路82に供給する。回路82は、優先順位タイプを使用して、優先順位情報を使用して圧縮に最適であるマッチの1つを選び、主コーダ38に信号を供給する。
【0012】
以上に参照した従来技術で説明したように、主コーダ38は、マッチ位置に同一の2進コードを、またマッチタイプに静的ハフマンコードを割り当て、必要なバイトをリテラル形式で連結する。圧縮された出力がRLIコーダ39に供給される。この信号は主コーダによって生成されるが、簡単にするため図に示してはいない。RLIコーダ出力はビット組立ロジック40に移り、64ビットより多くの圧縮データが(図示せず)内部バッファ中で有効な場合はいつでも、この組立ロジック40が、新たな64ビットの圧縮出力をメモリに書き込む。この出力が、圧縮コード42である。
【0013】
優先順位ロジック回路80からの出力がまた、本出願人による同時係属の特許出願WO01/56169に記載されているように、アウトオブデート適応(out−of−date adaptaion)(ODA)ロジック回路84に供給される。このODA回路84の出力は、マッチタイプおよびマッチ位置に応じて(図3で適用した適応ベクトルとしての)移動ベクトルを生成する移動生成ロジック回路44に接続される。この移動生成ロジック44はまた、ODAロジック回路84にフィードバック信号を供給する。
【0014】
解凍については、圧縮入力90が、ビット分解ロジック回路92に供給され、この回路は、解凍動作後に(図示せず)内部バッファ中に残っている有効なビット数が33ビットよりも少ないときはいつでも、メモリから新たに64ビットの圧縮ベクトルを読み込む。この圧縮ベクトルは、主デコーダ94に供給され、このデコーダは、マッチ位置およびマッチタイプを、必要なリテラル文字と一緒にデコードし、可能なRLIコードがあれば検出する。デコーダ94が、RLIデコーダ76に接続され、このRLIデコーダが、ランレングスデコード出力をODAロジック回路84およびタプル組立回路96にも供給する。
【0015】
CAM辞書30は、デコード入力に作用して、4バイト幅のワードを再生し、これらのワードはタプル組立回路96に供給される。この回路は、非圧縮データ98を供給し、この非圧縮データは、辞書30からの情報を使用して組み立てられたタプルに加えてコードに存在する任意のリテラル文字を含む。
【0016】
この構成によるランレングスインターナル符号化(run length internal coding)を適用することにより、圧縮速度にほとんどまたはまったく影響を与えずに、10%のこともある圧縮の改善を実現することが判明している。この改善は、32ビットパターンなど任意の繰り返しパターンに対する効率的なランレングス符号化による結果である。最も一般的な繰り返しパターンは0の連続であるが、他にもテキストファイル中のスペース文字や、図中の一定の背景色などが可能である。本発明の適用により、かかる非ゼロ文字の効率的な可逆的な符号化および復号化が可能となる。
【0017】
最低使用頻度辞書メンテナンスポリシーは、任意の繰り返しパターンを辞書30中の位置ゼロに配置させる。ランレングスインターナル符号化では、位置ゼロで2回以上完全にマッチした任意のベクトルを検出し、符号化する。
【0018】
かかる構成では、圧縮システム中の辞書の前にランレングス符号化回路を配置するのに比べて圧縮が有利になり、それが辞書のロジックを使用しているので、アーキテクチャの高レベルの統合により複雑さが最少に保たれる。
【0019】
CAM辞書30は、15、31、または63ワードにすることができる。1つの位置が、RLIイベント用に留保済みであるためである。辞書が大きくなるほど圧縮が改善されるが、複雑さがかなり増大する。
【0020】
非圧縮データアウト98は、データイン32とまったく同じである。損失はなかった。
図1に示すようなシステム中において図2の構成を使用して、本発明の実施形態による多重圧縮装置構成を提供することができる。多重解凍装置の実施形態も同様にして提供することができる。並列に接続して多重圧縮装置(および解凍装置)を提供することが可能な別の圧縮装置(および解凍装置)のアーキテクチャについて、次に説明する。
【0021】
図3に、このもう1つの圧縮装置のブロック概略図を示す。従来と同様に、結線上のビット数を結線と交差するバーの近くに示している。
辞書30は、入力データが32ビット幅の検索レジスタ34を介して供給される64要素のCAMベースのアレイである。検索用のデータは、マルチプレクサ80が圧縮時にこの検索レジスタを選択するように構成される間は辞書30に直接提供されるが、このデータは解凍時には追加の機能を有する(図4参照)。
【0022】
辞書30の出力、すなわちマッチが見つかった辞書アドレスの指示、または部分マッチとそのマッチしなかったビットのアドレスが、優先順位ロジック回路82に移り、この回路が辞書中の各位置ごとに4ビット幅のマッチ(match)を5ビット幅の優先順位タイプ(priority type)に変換し、優先順位タイプをマッチ判断ロジック回路37に供給する。ここで、回路37は、辞書30の出力も直接に受け取る。回路37は、優先順位タイプを使用して、圧縮プロセスにとっての最適マッチ位置を選択する。
【0023】
ODA回路42が、マルチプレクサ84を介して、優先順位ロジック回路36から信号を受け取る。このマルチプレクサ84は、圧縮と解凍のどちらがアクティブかに応じて、アクティブな移動ベクトル(move vector)を選択するように構成された64ビット幅のマルチプレクサである。このODA回路42は、アウトオブデート適応を生成する64ビット幅のレジスタおよび関連したマルチプレクサ回路である。
【0024】
64ビット幅のODA回路42の出力が、移動生成ロジック回路86に供給され、この回路86は64ビット幅のマッチベクトルを伝搬して移動ベクトルを生成し、それによって辞書30を適応させる。同じベクトル、すなわち現行の適応ベクトルが、ODA回路42の制御(control)パス88によってフィードバックされて、次の適応ベクトルを適応させる。
【0025】
次に、図3に示した装置の残りの部分について考えると、これは前述の従来の技術中で説明したものと同様の方法で機能し、マッチ判断ロジック回路37は64−6エンコーダ90にマッチ位置(match location)を供給し、このエンコーダが符号化されていない64ビット幅のマッチ位置を6ビット幅の符号化されたマッチ位置に変換する。エンコーダ90の出力が、2進コード生成回路92に移り、この生成回路がミスビットまたはマッチビットをマッチ位置に連結する。
【0026】
マッチ判断ロジック回路37はまた、非マッチバイト用の圧縮コードのリテラル部を構成するリテラル文字組立回路94、およびマッチタイプ用の静的ハフマンコードを生成するマッチタイプコード生成回路96に、マッチタイプ(match type)信号を供給する。マッチタイプコード生成回路96からのマッチタイプコード(match type code)およびマッチタイプ幅(match type width)信号と、2進コード生成回路92からの圧縮コード(compressed code)は、第1のコード連結回路98に移動し、このコード連結回路はマッチタイプおよびマッチ位置のためのコードを組み立てる。第2のコード連結回路100は、連結回路98からの出力、ならびにリテラル文字組立回路94からのリテラルコード(literal code)およびリテラル幅(literal width)信号を受け取り、コード連結回路102に出力を供給し、そこで現行の圧縮コードを、以前の圧縮コードと組み立てる。連結回路10は、ネクスト幅(next width)信号、ネクストコード(next code)信号、およびネクスト有効(next valid)信号をレジスタ104に出力し、このレジスタは、データ用の96ビット幅出力レジスタ、および有効データのビットの長さ用の7ビット幅レジスタである。このレジスタ104は、圧縮データ40を出力するとともに、レジスタ104からの現行コード(current code)信号および現行幅(current width)信号と一緒に、コード連結回路102にフィードバックされる有効(valid)信号も出力する。
【0027】
それぞれ参照番号106、108、110で示すパイプラインR0C、R1C、R2Cは、圧縮経路のパイプラインレジスタを示している。
図4に、対応する単一の解凍回路を示す。圧縮回路と同様にして辞書30、マルチプレクサ80、マルチプレクサ84、ODA回路42、および移動生成ロジック回路86が接続される。
【0028】
参照番号120の圧縮データイン(compressed data in)がコード連結/シフト回路122に供給され、この回路は、新しい圧縮データを、古い圧縮データおよび解凍されたシフトアウトデータと組み立てる。各々の次のアンダーフロー(next underflow)、次幅(next width)(7ビット)、および次コード(next Code)(96ビット)信号は、レジスタ124へ移動して、圧縮データが一時記憶される。レジスタ出力は、主デコーダ126に供給され、この主デコーダが最大33ビットの圧縮コードを、6ビットの位置(location)アドレス、4ビットのマッチタイプ(match type)、および32ビットのリテラルデータ(literal data)に復号する。6ビットの位置アドレスとミス(miss)信号の両方が、6−64デコーダ128に移動し、ここで、6ビットのコード化された辞書アドレスをそのコード化されていない64ビットの等価信号に復号する。
【0029】
マッチタイプおよびリテラルデータ信号は、主デコーダ126から出力タプル組立回路130へと進む。
この6−64デコーダ128が、マッチ位置(match location)信号をマルチプレクサ84に渡す。ODA回路42,移動生成ロジック回路86,および辞書30が、圧縮プロセスと逆に作用して、圧縮データを解凍する動作を行う。マルチプレクサ80が、辞書30に適用するため新しく形成されたタプルを選択する。この辞書データが、選択マルチプレクサ132に供給され、このマルチプレクサはまた、6−64デコーダ128から、選択されたタプル(selected tuple)信号を受け取る。この選択マルチプレクサ132は、辞書から1つのタプルを選択し、出力タプル組立回路130に供給し、この回路が解凍し終わったマッチタイプに応じて、リテラルデータおよび辞書ワードを組み立てる。
【0030】
非圧縮データアウト(uncompressed Data−Out)134は、(データイン(data−In)32とまったく同じである。損失はなかった。図2の圧縮装置/解凍装置と同様に、図3の圧縮装置および図4の解凍装置を並列化して、圧縮および解凍の速度をより高速にすることができる。
【0031】
図5で、上述の同時係属の出願中に詳細に記載された発明が、X−MatchPRO圧縮装置と呼ぶ単一の圧縮装置10にまとめられている。
辞書30は、CAM技術に基づいており、検索レジスタ34から検索すべきデータ32が供給される。辞書は、X−Matchアルゴリズムに従って検索を行い、MTF(Move To Front)戦略およびLRU(Least Recently Used最低使用頻度)ポリシーに基づいて構成される。
【0032】
辞書出力は、マッチ判断ロジック37を介して主コーダ38に接続される優先順位ロジック36に接続される。マッチ判断ロジック回路37はまた、アウトオブデート適応(ODA)レジスタと以下称する回路42に信号を供給する。このODA回路42は、「移動(move)」信号を辞書30に供給するシフト制御ロジック回路44に信号を供給する。
【0033】
この構成によれば、辞書30がアウトオブデートベースで更新される。すなわち、辞書に供給される次の適応ベクトルtが現行の適応ベクトルt+1に変換され、同時に辞書が更新される。各検索ステップ後に、現行の適応ベクトルにより、この変換と更新が実施される。
【0034】
主コーダ38は、「ランレングスインターナル」(RLI)コーダと以下称するコーダ46に信号を供給し、このコーダ46が出力組立回路48に信号を供給する。この組立回路48は、圧縮データの出力ストリーム50を生成する。
【0035】
この場合にも、図5の構成を図1に示すようなアーキテクチャに組み込んで、多重圧縮システムを提供することができる。同じことが対応する解凍装置にも当てはまる。
圧縮システムの性能には、各圧縮装置に適用される検索タプルの順序や量が影響を与えることが認識されよう。図6は、1対のX−Matchデータ圧縮装置だけを用いてこれを示す簡単な一例である。
【0036】
図6(a)では、10組の4バイトタプルを含む入力データストリーム110がデータソータ112に入力され、ここで到来タプルを、第1のデータストリーム114と第2のデータストリーム116に交互に経路指定する。この交互の経路指定を、「インターリーブ化」構成と呼ぶ。したがって、最初のデータストリームはタプル1、3、5、7、および9から成り、一方第2データストリームは、タプル2、4、6、8、および10から成る。第1のデータストリームは第1のX−Matchデータ圧縮装置118に結合され、第2のデータストリームは、第2のX−Matchデータ圧縮装置120に結合される。2つの圧縮装置の出力が結合されて、出力122を生成する。
【0037】
図6(b)では、10個の4バイトタプルを含む入力データストリーム110が、データ経路指定回路124に入力され、ここで5つのブロックのタプルを第1のデータストリーム126と、第2のデータストリーム128に経路指定する。この経路指定技術を「ブロック化」構成と呼ぶ(一般にもっと多くのタプル数でブロックが構成されることに留意されたい。ここで5は、簡単にするために使用している)。したがって、第1のデータストリームは、タプル1、2、3、4、および5から成り、一方、第2のデータストリームは、タプル6、7、8、9、および10から成る。第1のデータストリームは、第1のX−Matchデータ圧縮装置118に結合され、第2のデータストリームは第2のX−Matchデータ圧縮装置120に結合される。2つの圧縮装置の出力が結合されて出力122を生成する。
【0038】
インターリーブ化技術では、各X−Match圧縮装置から圧縮データを引き出す際に遅延がないので非常に待ち時間が小さくなるが、ブロック化技術では各X−Match圧縮装置が到来データストリーム中の冗長性を活用することができるので、よりよい圧縮率を提供することができる。大部分の用途にとって、インターリーブ化技術は許容できないほど圧縮が小さすぎることが判明している。多重圧縮装置の待ち時間を圧縮率とトレードオフする構成については、図8、図9、および図10を参照して、以下にさらに論じる。
【0039】
図7に、本発明の実施形態による簡単な2つの圧縮装置構成150のより詳細なブロック図を示す。非圧縮データ(uncompressed data)152が、第1の入力FIFO(先入れ先出しバッファ)154および第2の入力FIFO156に供給される。各X−Match圧縮装置ではクロックサイクル当たり4バイト処理することができるので、データは、待ち時間を最少にするためにデータ速度4nで到着するように構成すべきであり、ここでnはX−Match圧縮装置の台数である。FIFO154、156のそれぞれには、書込み入力FIFO制御回路158からのそれぞれの書込み(write)信号が供給される。この制御回路は、圧縮の開始、ならびに処理すべきデータブロックのサイズを制御する。例えば、必要なブロックサイズに達するまで入力FIFO154に書き込まれるようにし、次いで書き込み信号を逆にしてデータが入力FIFO156に書き込まれるようにする。
【0040】
読込み入力FIFO制御回路158、160の制御下に、各チャネルの入力FIFOは、2クロックサイクルごとにセレクタ162、164に64ビットを渡す。ここで第1の32ビットは、第1のクロックサイクルで送られ、第2の32ビットは第2のクロックサイクルで送られる。このFIFO制御回路158、160はまた、スタート(start)信号をそれぞれX−Match制御回路166、168に供給し、これらは制御(control)信号をそれぞれX−Match圧縮装置170、172に供給する。圧縮データは、それぞれ出力FIFO174、176に供給される。(解凍を容易にするために)データの順序を維持するこれらのFIFOからのデータの組合せについては、以下で論じる。
【0041】
複数のX−Match圧縮装置からの圧縮データを処理する第1の構成を、図8に示す。各出力FIFO72〜80は、圧縮データブロックのサイズを示すフラグFを生成するように構成される。データが出力されるとき、まずフラグが送られる。図8で、フラグF1は、X−MatchPRO圧縮装置52が圧縮するデータを示すCMP1のデータに先行し、フラグF2は、X−MatchPRO圧縮装置54が圧縮するデータを示すCMP2中データに先行し、フラグF3は、X−MatchPRO圧縮装置56が圧縮するデータを示すCMP3のデータに先行する。矢印Aは、データストリームの流れの方向を示す。各圧縮装置52〜56からのそのフラグ付き圧縮データが、利用可能になり次第、すなわち圧縮装置がその入力FIFOに記憶された全ブロックを処理し終わるとすぐに、入力90に供給される。
【0042】
各圧縮ブロックの圧縮比が変わるので、有効なデータ出力がないときに96および98に示されるように各フラグと圧縮ブロックの間にアイドル時間があるのは避けられないが、これは次の圧縮装置がまだその入力ブロックの圧縮を完了していないからである。
【0043】
次に解凍について考えると、圧縮データがその宛先に到達すると、システム94(図1)とまったく同じシステムが解凍装置として使用される。フラグF1がまず入力バスに到達し、今や解凍装置として機能しているX−MatchPRO1の入力FIFO62に何ワードを送るべきか、入力FIFO64には何ワードか、などをコントローラ92に指示する。
【0044】
この第1の構成において、出力90では、フラグとアイドル時間が出力に含まれるので、単一の圧縮装置で得られる圧縮に比べて、5台の圧縮装置をもつ並列システム94による圧縮では、いくらか圧縮率が低下する。この圧縮損失は、圧縮データのブロック当たりのフラグのオーバーヘッドが決まっているので、ブロックサイズが増加するにつれてゼロに近づく傾向がある。アイドル時間はデータを出力する際の浪費時間を表す。待ち時間が導入されるのは、90に出力が生じる以前に、各圧縮装置によって入力FIFOの容量に等しい全データブロックを圧縮する必要があるからである。
【0045】
図9に示す第2の変形形態では、コントローラ92は、5台の圧縮装置52〜60がすべてそのデータブロックを圧縮し終わるまで圧縮データが出力90から送り出されないように、システム94を制御するように構成されている。単一フラグ100を使用して、各圧縮ブロックのサイズ、すなわち圧縮装置52からのCMP1の3ワード、圧縮装置54からのCMP2の3ワード、および圧縮装置56、58、60からのCMP3、CMP4、CMP5のそれぞれ1ワードという情報が提供される。フラグ100の付いた出力データワードのデータの流れに、アイドル時間102が続き、その後次のフラグ104と次の圧縮されたデータワードが続く。
【0046】
この第2の構成では、システムの待ち時間が第1の構成に比べて大きくなるが、データの圧縮率については、必要なフラグ数がかなり減少し、すなわち5の代わりに1になるので、単一のX−MatchPRO圧縮装置により提供されるはずの圧縮率に比べてそれほど悪くはない。
【0047】
図10に示す第3の変形形態では、全データブロックが各圧縮装置によって圧縮されるのを待たないで、各圧縮装置が一度に処理できるデータ量に相当する小さな部分を出力する。X−MatchPRO1圧縮装置52からのデータ入力の最初の4バイトの圧縮出力CMP1が出力90に送られ、次いでX−MatchPRO2圧縮装置54がその最初の圧縮された4バイトCMP2を出力90に送り、次いで圧縮装置56がCMP3を送る。次の圧縮装置58がまだその最初の4バイトを圧縮し終えていなくて、その結果その出力FIFOから出力準備ができたデータがない場合には、データがないことを示すフラグ106が送られて、次いで出力CMP5が圧縮装置60から取り出され、次いで圧縮装置52からのサイクル出力CMP1へと続く。
【0048】
図10の例では、圧縮装置54も56もデータを送る準備ができておらず、したがって2つのフラグ108、110が送られ、データCMP4が圧縮装置58から出力される。続いて、圧縮装置60、52、54、および56が、順番に準備がすべて整って、出力データCMP5、CMP1、CMP2およびCMP3を途切れなしに送る。
【0049】
フラグを用いて、次の圧縮装置が、4バイトの入力に対応する出力をまだ生成していないことを指示することにより、そのデータの待ち時間は、圧縮率が低下するという犠牲を払って、単一のX−MatchPRO圧縮装置の待ち時間まで減らされている。データまたはフラグがいつも送り続けられ、それ故、データストリーム中にアイドル時間はない。
【0050】
表1に、並列な5台のX−MatchPRO圧縮装置の図5の構成における図8、図9、および図10を参照して説明した3つの異なる出力構成の圧縮率、圧縮速度、および待ち時間の相対値を示すとともに、単一のX−MatchPRO圧縮装置に対するこれらの値も示す。
【0051】
【表1】
【0052】
現在圧縮中のデータタイプの要件に応じて、出力データを取り扱う3つの変形形態の1つを選択することが可能である。
並列に配置した5台のX−MatchPRO圧縮装置を使用することにより、毎秒625Mバイトから毎秒3.2Gバイトへの圧縮速度の増大が実現可能である。
【0053】
本発明を、一例を用いて説明してきたが、本発明は、明示的であれ暗示的であれ本明細書に記載した新しい特徴、あるいはそれを一般化したものを包含するものとする。
【図面の簡単な説明】
【0054】
【図1】5つのX−Match圧縮装置を備えた圧縮/解凍システムを示す図である。
【図2】本発明を適用可能なWO01/56168に開示のデータ圧縮/解凍装置を示す図である。
【図3】本発明を適用可能なWO01/56169に開示のデータ圧縮装置を示す図である。
【図4】本発明を適用可能なWO01/56169に開示のデータ解凍装置を示す図である。
【図5】本発明の一実施形態によるX−MatchPRO圧縮装置の概略図である。
【図6】図6(a)は、複数のデータ圧縮装置にデータを供給する技術を示す図である。図6(b)は、複数のデータ圧縮装置にデータを供給する技術を示す図である。
【図7】本発明の2つの圧縮装置の実施形態のブロック概略図を示す図である。
【図8】圧縮データを処理する3つの異なる構成の1つを示す図である。
【図9】圧縮データを処理する3つの異なる構成の1つを示す図である。
【図10】圧縮データを処理する3つの異なる構成の1つを示す図である。
Claims (20)
- 並列に配列された複数の可逆データ圧縮装置を備え、各データ圧縮装置が内容参照可能メモリ辞書(30)およびコーダ(38)を備える、可逆データ圧縮システム(94)であって、コーダ(38)の出力を受け取るように接続され、所定の辞書位置でマッチが連続して起こる回数をカウントするように構成されたランレングス符号化手段(39)を特徴とするシステム。
- 各圧縮装置の辞書(30)が、各検索ステップで辞書の同じアドレス(50)に検索タプルがロードされるように構成される、請求項1に記載のシステム。
- 各圧縮装置のランレングス符号化回路レジスタ手段(39)が、辞書(30)の同じアドレス(50)に同じ検索タプルがロードされる回数をカウントするように構成される、請求項2に記載のシステム。
- 各圧縮装置の辞書(30)内のもう1つのアドレス(56)が、検索タプルが繰り返される回数を示すために留保される、請求項2または3に記載のシステム。
- 複数の可逆データ圧縮装置を備え、各データ圧縮装置が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリとコーダ(40)に基づいた辞書(30)を備える、可逆データ圧縮システム(94)であって、前記コーダが現行の比較サイクルの符号化を行うのと同時に以前の比較サイクルからのデータを使用して辞書を更新することができるように、フィードバックループ中に接続された回路手段(42)を特徴とするシステム。
- 圧縮装置の前記以前の適応サイクルが、1つおいて前のサイクルである、請求項5に記載のシステム。
- 回路手段(42)が、現行データ要素が辞書によって処理されている間に、先行するデータ要素に従って各圧縮装置の辞書を更新するように構成される、請求項5または6に記載のシステム。
- 辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書(30)およびコーダ(38)と、該コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルから辞書を更新できるように、フィードバックループ中に接続された回路手段(42)と、該コーダ(38)の出力を受け取るように接続され、該辞書(30)の所定の位置で、マッチが連続して起こる回数をカウントするように構成されたランレングス符号化手段(46)とを特徴とする可逆データ圧縮装置(10)。
- 並列に配列されたそれぞれが請求項8に記載の複数の可逆データ圧縮装置(52、54、56、58、60)を特徴とする可逆データ圧縮システム(94)。
- 複数の圧縮装置(52、54、56、58、60)のそれぞれの出力が、順番にデータ出力(90)に供給される、請求項1ないし7、または9のいずれか一項に記載のシステム。
- 圧縮データが、各圧縮装置(52、54、56、58、60)からの圧縮データの長さを示すフラグ手段を備える、請求項1ないし7、9、または10のいずれか一項に記載のシステム。
- 各圧縮装置からの圧縮データブロックに、その圧縮データブロックの長さを示すフラグF1、F2、F3を付与する手段をさらに備える、請求項1ないし7のいずれか一項、または請求項9ないし11のいずれか一項に記載のシステム。
- 複数の圧縮装置からの圧縮データに、各圧縮装置からの各圧縮データブロックの長さを示す単一フラグ(100)を付与する手段をさらに備える、請求項1ないし7のいずれか一項、または請求項9ないし11のいずれか一項に記載のシステム。
- 各圧縮装置がその処理容量に相当する圧縮データを順番に出力するように構成され、次の圧縮装置が処理をまだ完了していない場合に、フラグ106、108、110がその圧縮装置に指示するために挿入される、請求項1ないし7のいずれか一項、または請求項9ないし11のいずれか一項に記載のシステム。
- 検索タプルを複数の圧縮装置間で交互に割り当てる手段をさらに備える、請求項1ないし7のいずれか一項、または請求項9ないし14のいずれか一項に記載の可逆データ圧縮システム。
- 複数の隣接した検索タプルを複数のデータ圧縮装置のそれぞれに供給する手段をさらに備える、請求項1ないし7のいずれか一項、または請求項9ないし14のいずれか一項に記載の可逆データ圧縮システム。
- 請求項1ないし16のいずれか一項に記載のデータ圧縮システムによって圧縮されたデータを解凍する解凍システム。
- 可逆データ圧縮の方法であって、複数の可逆データ圧縮装置を並列に構成し動作させるステップを含み、各データ圧縮装置が、内容参照可能メモリ辞書およびコーダと、コーダの出力を受け取るように接続され、所定の辞書位置でマッチが連続して起こる回数をカウントするように構成されたランレングス符号化手段とを備える方法。
- 複数の可逆データ圧縮装置を並列に構成し動作させるステップを含み、各データ圧縮装置が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリおよびコーダに基づいた辞書を備える、可逆データ圧縮の方法において、コーダが現行の比較サイクルの符号化を行うのと同時に、以前の比較サイクルからのデータを使用して辞書を更新できるように、フィードバックループ中に接続された回路手段を特徴とする可逆データ圧縮の方法。
- 複数の可逆データ圧縮装置を並列に構成し動作させるステップを含む可逆データ圧縮の方法であって、各圧縮装置が、辞書適応パスを形成するフィードバックループを含むクリティカルパスをその間に有する内容参照可能メモリ辞書およびコーダと、コーダが現行の比較サイクルの符号化を行うのと同時に以前の比較サイクルから辞書を更新することができるように、フィードバックループ中に接続された回路手段と、コーダの出力を受け取るように接続され、辞書の所定の位置においてマッチが連続的に起こる回数をカウントするように構成されたランレングス符号化手段とを備える方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0102572.5A GB0102572D0 (en) | 2001-02-01 | 2001-02-01 | Apparatus to provide fast data compression |
PCT/GB2002/000443 WO2002061951A2 (en) | 2001-02-01 | 2002-02-01 | Apparatus to provide fast data compression |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004530318A true JP2004530318A (ja) | 2004-09-30 |
Family
ID=9907953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002561374A Pending JP2004530318A (ja) | 2001-02-01 | 2002-02-01 | 高速データ圧縮を提供する装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20040119615A1 (ja) |
EP (1) | EP1378065A2 (ja) |
JP (1) | JP2004530318A (ja) |
KR (1) | KR20030078899A (ja) |
CA (1) | CA2437320A1 (ja) |
GB (1) | GB0102572D0 (ja) |
WO (1) | WO2002061951A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020102258A (ja) * | 2017-07-28 | 2020-07-02 | アップル インコーポレイテッドApple Inc. | メモリ圧縮を実行するシステム及び方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230421292A1 (en) * | 2022-04-28 | 2023-12-28 | Keysight Technologies, Inc. | Method and system for reducing data stored in capture buffer |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0568243A (ja) * | 1991-09-09 | 1993-03-19 | Hitachi Ltd | 可変長符号化制御方式 |
JPH07104971A (ja) * | 1993-04-13 | 1995-04-21 | Hewlett Packard Co <Hp> | ネットワークパケットに適用される小型辞書を用いた圧縮方法 |
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
JP2000505968A (ja) * | 1996-07-24 | 2000-05-16 | ユニシス コーポレーション | 即時辞書更新がストリング探索とインターリーブされたデータ圧縮解凍システム |
JP2002536863A (ja) * | 1999-01-29 | 2002-10-29 | イントラクティブ シリコン インコーポレイテッド | 拡張可能な埋込み型のパラレルデータを圧縮及び圧縮解除するためのシステムと方法 |
JP2003521190A (ja) * | 2000-01-25 | 2003-07-08 | ビーティージー・インターナショナル・リミテッド | 向上した圧縮速度を有するデータ圧縮 |
JP2003521189A (ja) * | 2000-01-25 | 2003-07-08 | ビーティージー・インターナショナル・リミテッド | より効果的な圧縮を有するデータ圧縮 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572206A (en) * | 1994-07-06 | 1996-11-05 | Microsoft Corporation | Data compression method and system |
US5627534A (en) * | 1995-03-23 | 1997-05-06 | International Business Machines Corporation | Dual stage compression of bit mapped image data using refined run length and LZ compression |
US6393149B2 (en) * | 1998-09-17 | 2002-05-21 | Navigation Technologies Corp. | Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program |
US6445313B2 (en) * | 2000-02-07 | 2002-09-03 | Lg Electronics Inc. | Data modulating/demodulating method and apparatus for optical recording medium |
US6348881B1 (en) * | 2000-08-29 | 2002-02-19 | Philips Electronics No. America Corp. | Efficient hardware implementation of a compression algorithm |
GB0210604D0 (en) * | 2002-05-09 | 2002-06-19 | Ibm | Method and arrangement for data compression |
US7109895B1 (en) * | 2005-02-01 | 2006-09-19 | Altera Corporation | High performance Lempel Ziv compression architecture |
-
2001
- 2001-02-01 GB GBGB0102572.5A patent/GB0102572D0/en not_active Ceased
-
2002
- 2002-02-01 EP EP02710146A patent/EP1378065A2/en not_active Withdrawn
- 2002-02-01 JP JP2002561374A patent/JP2004530318A/ja active Pending
- 2002-02-01 US US10/470,719 patent/US20040119615A1/en not_active Abandoned
- 2002-02-01 WO PCT/GB2002/000443 patent/WO2002061951A2/en not_active Application Discontinuation
- 2002-02-01 CA CA002437320A patent/CA2437320A1/en not_active Abandoned
- 2002-02-01 KR KR10-2003-7010129A patent/KR20030078899A/ko not_active Application Discontinuation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0568243A (ja) * | 1991-09-09 | 1993-03-19 | Hitachi Ltd | 可変長符号化制御方式 |
JPH07104971A (ja) * | 1993-04-13 | 1995-04-21 | Hewlett Packard Co <Hp> | ネットワークパケットに適用される小型辞書を用いた圧縮方法 |
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
JP2000505968A (ja) * | 1996-07-24 | 2000-05-16 | ユニシス コーポレーション | 即時辞書更新がストリング探索とインターリーブされたデータ圧縮解凍システム |
JP2002536863A (ja) * | 1999-01-29 | 2002-10-29 | イントラクティブ シリコン インコーポレイテッド | 拡張可能な埋込み型のパラレルデータを圧縮及び圧縮解除するためのシステムと方法 |
JP2003521190A (ja) * | 2000-01-25 | 2003-07-08 | ビーティージー・インターナショナル・リミテッド | 向上した圧縮速度を有するデータ圧縮 |
JP2003521189A (ja) * | 2000-01-25 | 2003-07-08 | ビーティージー・インターナショナル・リミテッド | より効果的な圧縮を有するデータ圧縮 |
Non-Patent Citations (4)
Title |
---|
J.L.NUNEZ: "The X-MatchLITE FPGA-Based Data Compressor", PROCEEDINGS OF THE 25TH EUROMICRO CONFERENCE, vol. 1, JPN4007002831, 8 September 1999 (1999-09-08), pages 126 - 132, ISSN: 0000817267 * |
J.M.NUNEZ ET AL.: "The X-MatchLITE FPGA-Based Data Compressor", PROCEEDINGS OF THE 25TH EUROMICRO CONFERENCE, vol. 1, JPNX007035835, 8 September 1999 (1999-09-08), pages 126 - 132, ISSN: 0000869728 * |
M.KJELSO ET AL.: "Design and Performance of a Main Memory Hardware Data Compressor", PROCEEDINGS OF THE 22TH EUROMICRO CONFERENCE, JPN4007002830, 2 September 1996 (1996-09-02), pages 423 - 430, XP000914341, ISSN: 0000817266 * |
M.KJELSO ET AL.: "Design and Performance of a Main Memory Hardware Data Compressor", PROCEEDINGS OF THE 22TH EUROMICRO CONFERENCE, JPNX007035834, 2 September 1996 (1996-09-02), pages 423 - 430, XP000914341, ISSN: 0000869727 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020102258A (ja) * | 2017-07-28 | 2020-07-02 | アップル インコーポレイテッドApple Inc. | メモリ圧縮を実行するシステム及び方法 |
JP7005670B2 (ja) | 2017-07-28 | 2022-01-21 | アップル インコーポレイテッド | メモリ圧縮を実行するシステム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2002061951A2 (en) | 2002-08-08 |
EP1378065A2 (en) | 2004-01-07 |
CA2437320A1 (en) | 2002-08-08 |
WO2002061951A3 (en) | 2003-10-30 |
GB0102572D0 (en) | 2001-03-21 |
KR20030078899A (ko) | 2003-10-08 |
US20040119615A1 (en) | 2004-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5912636A (en) | Apparatus and method for performing m-ary finite state machine entropy coding | |
US5729228A (en) | Parallel compression and decompression using a cooperative dictionary | |
JP3272580B2 (ja) | 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法 | |
US7538694B2 (en) | Network device with improved storage density and access speed using compression techniques | |
US5870036A (en) | Adaptive multiple dictionary data compression | |
US6885319B2 (en) | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms | |
KR100318780B1 (ko) | 데이터압축모드간스위칭방법및장치 | |
US6819271B2 (en) | Parallel compression and decompression system and method having multiple parallel compression and decompression engines | |
US6906645B2 (en) | Data compression having more effective compression | |
US5877711A (en) | Method and apparatus for performing adaptive data compression | |
EP0663730B1 (en) | Apparatus for decoding variable length codes | |
JP2005535175A (ja) | ロスレスデータ圧縮 | |
JPH088755A (ja) | 高速可変長復号化装置 | |
US6765509B2 (en) | Data compression having improved compression speed | |
JP2004530318A (ja) | 高速データ圧縮を提供する装置 | |
JPH08223055A (ja) | 可変長コードデコーダ | |
KR20010058369A (ko) | 코드길이에 따른 허프만 코드 복호장치 및 방법 | |
JPH0993139A (ja) | 可変長符号の復号方法および装置 | |
JPH08223056A (ja) | 可変長コード復号化装置 | |
JPH0373619A (ja) | ラン長符号符号化回路 | |
JPH10308673A (ja) | データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070213 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070703 |