JP3309031B2 - 短ブロックのデータを圧縮、伸長するための方法、及び装置 - Google Patents
短ブロックのデータを圧縮、伸長するための方法、及び装置Info
- Publication number
- JP3309031B2 JP3309031B2 JP03980695A JP3980695A JP3309031B2 JP 3309031 B2 JP3309031 B2 JP 3309031B2 JP 03980695 A JP03980695 A JP 03980695A JP 3980695 A JP3980695 A JP 3980695A JP 3309031 B2 JP3309031 B2 JP 3309031B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data block
- blocks
- index
- decoding
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- 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
-
- 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/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【産業上の利用分野】本発明はデータ圧縮に関する。よ
り詳細には、本発明は短ブロックのデータの多くの組を
圧縮することに関する。
り詳細には、本発明は短ブロックのデータの多くの組を
圧縮することに関する。
【0002】
【従来の技術】読み取り専用メモリ(ROM)は、製品の機
能を定義するファームウェア、及びデータを記憶するた
めに、今日の多くの電子製品で使用されている。ある例
では、利用可能なROMの物理量が、ハードウェア設計
面、又はコスト面の問題によって影響を受け、ROMに記
憶できるデータの量が、製品の機能レベルを決定する。
逆に、他の例では、最小限の機能が必要とされ、そのよ
うな機能に適応するために必要なROMの物理量が、ハー
ドウェア要件に影響を及ぼし、最終的に製品のコストに
影響を与える。どちらの場合も、データ圧縮を使用して
同じ物理量のROMにより多くのデータを記憶すれば、機
能面、コスト面、又はその両方で競争上の優位性を得る
ことができる。
能を定義するファームウェア、及びデータを記憶するた
めに、今日の多くの電子製品で使用されている。ある例
では、利用可能なROMの物理量が、ハードウェア設計
面、又はコスト面の問題によって影響を受け、ROMに記
憶できるデータの量が、製品の機能レベルを決定する。
逆に、他の例では、最小限の機能が必要とされ、そのよ
うな機能に適応するために必要なROMの物理量が、ハー
ドウェア要件に影響を及ぼし、最終的に製品のコストに
影響を与える。どちらの場合も、データ圧縮を使用して
同じ物理量のROMにより多くのデータを記憶すれば、機
能面、コスト面、又はその両方で競争上の優位性を得る
ことができる。
【0003】例えば、組み込みROMは、アジア市場向け
に製造されたプリンタに大きなデータセットを記憶する
ために使用される。これらのプリンタは、最小限の機能
要件を満たすために、ある業界標準フォーマット(例え
ば、True Type(R)フォーマット)で、ある数の漢字フォ
ントを含まなければならない。典型的な漢字フォント
は、約1万個の絵文字の表現を含む。各絵文字はそれぞ
れ、数10バイトから数100バイトまで長さが変化する。
未圧縮フォントの総サイズは通常、2メガバイトないし
3メガバイトである。プリンタは、ページを印刷する
際、各個別の絵文字にランダムに、かつリアルタイムに
アクセスできなければならない。従って、圧縮が使用さ
れる場合、所与の絵文字がアクセスされた時、少量のデ
ータを伸長するだけで済むように、各絵文字は個別に、
又は小さなグループ単位に圧縮されなければならない。
に製造されたプリンタに大きなデータセットを記憶する
ために使用される。これらのプリンタは、最小限の機能
要件を満たすために、ある業界標準フォーマット(例え
ば、True Type(R)フォーマット)で、ある数の漢字フォ
ントを含まなければならない。典型的な漢字フォント
は、約1万個の絵文字の表現を含む。各絵文字はそれぞ
れ、数10バイトから数100バイトまで長さが変化する。
未圧縮フォントの総サイズは通常、2メガバイトないし
3メガバイトである。プリンタは、ページを印刷する
際、各個別の絵文字にランダムに、かつリアルタイムに
アクセスできなければならない。従って、圧縮が使用さ
れる場合、所与の絵文字がアクセスされた時、少量のデ
ータを伸長するだけで済むように、各絵文字は個別に、
又は小さなグループ単位に圧縮されなければならない。
【0004】小さなブロックのデータを個別に圧縮し
て、圧縮された各ブロックに個別に、かつランダムにア
クセスできるようにする要求は、冗長性と、異なるブロ
ック間の相互関係を圧縮技法の一部として利用すること
を困難にする。他の重要なパラメータは、リアルタイム
・アクセス要求によって影響を受ける伸長速度である。
伸長速度とブロック・サイズに関係があることは明らか
である。伸長アルゴリズムが速ければ速いほど、大きな
絵文字のグループを一緒に圧縮することができ、それに
よって、依然リアルタイム伸長要件が満たされたまま、
より良い圧縮率が得られる。上述のプリンタの適用例
で、最小限の機能要件を満たすために、ある最小数のフ
ォントをROMに記憶しなければならない。データ圧縮
は、この最小フォント・セットを記憶するために必要な
物理ハードウェアのサイズ(例えば、ROM集積回路の数、
又はサイズ)を減少させる助けとなり、従って製品のコ
ストを低減させることができる。
て、圧縮された各ブロックに個別に、かつランダムにア
クセスできるようにする要求は、冗長性と、異なるブロ
ック間の相互関係を圧縮技法の一部として利用すること
を困難にする。他の重要なパラメータは、リアルタイム
・アクセス要求によって影響を受ける伸長速度である。
伸長速度とブロック・サイズに関係があることは明らか
である。伸長アルゴリズムが速ければ速いほど、大きな
絵文字のグループを一緒に圧縮することができ、それに
よって、依然リアルタイム伸長要件が満たされたまま、
より良い圧縮率が得られる。上述のプリンタの適用例
で、最小限の機能要件を満たすために、ある最小数のフ
ォントをROMに記憶しなければならない。データ圧縮
は、この最小フォント・セットを記憶するために必要な
物理ハードウェアのサイズ(例えば、ROM集積回路の数、
又はサイズ)を減少させる助けとなり、従って製品のコ
ストを低減させることができる。
【0005】ROMベースのデータ圧縮を適用した他の例
は、スーパーポータブル・コンピュータでROMディスクを
使用することである。これらのコンピュータは、オペレ
ーティング・システムと、広く使用されている幾つかの
ソフトウェア・アプリケーションを、そのコンピュータ
に組み込まれたROMカードに含めることができる。製品
に組み込めるソフトウェアの量、従ってその製品の機能
は、ROMカードの物理サイズによって制限される。所与
の物理サイズに関して、データ圧縮の結果、ROMカード
の論理的な容量が増加すると、製品の機能が増大し、従
って製品の市場性が高まる。
は、スーパーポータブル・コンピュータでROMディスクを
使用することである。これらのコンピュータは、オペレ
ーティング・システムと、広く使用されている幾つかの
ソフトウェア・アプリケーションを、そのコンピュータ
に組み込まれたROMカードに含めることができる。製品
に組み込めるソフトウェアの量、従ってその製品の機能
は、ROMカードの物理サイズによって制限される。所与
の物理サイズに関して、データ圧縮の結果、ROMカード
の論理的な容量が増加すると、製品の機能が増大し、従
って製品の市場性が高まる。
【0006】ROMカードは論理的に構成され、システム
によってファイル・システムを含む正規ディスクとみな
される。システムによってアクセスされるデータの最小
単位はディスク・クラスタ、即ち、サイズが約512バイト
から8192バイトまで変化しうるデータ・ブロックであ
る。一般に、ディスク・クラスタのサイズは所与のファ
イル・システムで固定である。典型的なROMディスクは、
約10メガバイトないし20メガバイトの総容量(即ち生の
未圧縮容量)を有する。上述のプリンタ・フォントの適用
例の場合と同様、ROMディスクの適用例は、数千の小さ
なブロックのデータ、即ちディスク・クラスタに、リア
ルタイムでランダムにアクセスできなければならないこ
とを必要とする。
によってファイル・システムを含む正規ディスクとみな
される。システムによってアクセスされるデータの最小
単位はディスク・クラスタ、即ち、サイズが約512バイト
から8192バイトまで変化しうるデータ・ブロックであ
る。一般に、ディスク・クラスタのサイズは所与のファ
イル・システムで固定である。典型的なROMディスクは、
約10メガバイトないし20メガバイトの総容量(即ち生の
未圧縮容量)を有する。上述のプリンタ・フォントの適用
例の場合と同様、ROMディスクの適用例は、数千の小さ
なブロックのデータ、即ちディスク・クラスタに、リア
ルタイムでランダムにアクセスできなければならないこ
とを必要とする。
【0007】これらは、以下の共通要件の組を共有する
ある種のデータ圧縮を適用した2つの例に過ぎない。 1.データセットが複数(例えば数千)の短ブロックのデ
ータ、例えば数十バイトから数千バイトを有するデータ
・ブロックから成る。 2.個別のデータ・ブロックがランダムにアクセスでき
なければならない。従って、各ブロックを個別に伸長で
きなければならない。 3.個別のブロックへのアクセス時間が重要である。従
って、伸長時間が重要である。しかし、圧縮は一度だけ
しか実行する必要がないので、圧縮時間は重要ではな
い。
ある種のデータ圧縮を適用した2つの例に過ぎない。 1.データセットが複数(例えば数千)の短ブロックのデ
ータ、例えば数十バイトから数千バイトを有するデータ
・ブロックから成る。 2.個別のデータ・ブロックがランダムにアクセスでき
なければならない。従って、各ブロックを個別に伸長で
きなければならない。 3.個別のブロックへのアクセス時間が重要である。従
って、伸長時間が重要である。しかし、圧縮は一度だけ
しか実行する必要がないので、圧縮時間は重要ではな
い。
【0008】この技術に関する態様は、幾つかの対称デ
ータ圧縮/伸長技法を提供する。完全な圧縮、即ち最も
圧縮率の高い圧縮を達成できるものは、より多くの時間
を要する。従って、対称リアルタイム・システムでは、
完全な圧縮サイクルに十分な時間が得られない可能性が
ある。非対称システム、即ち圧縮フェーズでリアルタイ
ム制約を課さないものでは、より完全な圧縮を得ること
ができる。一方、圧縮サイクル中に、伸長サイクルを加
速するためにデータ構造が最適化されうる。
ータ圧縮/伸長技法を提供する。完全な圧縮、即ち最も
圧縮率の高い圧縮を達成できるものは、より多くの時間
を要する。従って、対称リアルタイム・システムでは、
完全な圧縮サイクルに十分な時間が得られない可能性が
ある。非対称システム、即ち圧縮フェーズでリアルタイ
ム制約を課さないものでは、より完全な圧縮を得ること
ができる。一方、圧縮サイクル中に、伸長サイクルを加
速するためにデータ構造が最適化されうる。
【0009】幾つかの小さなブロックのデータから成る
大きなデータセットを圧縮する技法は、データ処理業界
のアプリケーションに容易に適応させることができ、こ
の技法によって、製造業者は製品の機能を増大させ、か
つ製品の形成因子を減少させることができる。
大きなデータセットを圧縮する技法は、データ処理業界
のアプリケーションに容易に適応させることができ、こ
の技法によって、製造業者は製品の機能を増大させ、か
つ製品の形成因子を減少させることができる。
【0010】
【発明が解決しようとする課題】本発明は、多くの組の
短ブロックのデータを、読み取り専用メモリのような記
憶媒体に記憶できるように圧縮する技法を提供する。こ
の技法の適用例には、プリンタのフォント、ポータブル
・コンピュータ内のROMディスク、及びその他の圧縮が含
まれる。そのような適用例では、個別のブロックへのラ
ンダム・アクセス、及び高速な(即ち、リアルタイム、又
はリアルタイムに近い)伸長が必要とされる。そのよう
な適用例では、圧縮はオフラインで実施することがで
き、その時間は重要ではない。本発明の技法は、非対称
データ圧縮/伸長を提供し、それによって最大データ密
度と最小データ・アクセス時間を達成する。本発明は、
様々な製品に対してハードウェア要件を低減して機能を
増大させる、良好な圧縮率を提供する。
短ブロックのデータを、読み取り専用メモリのような記
憶媒体に記憶できるように圧縮する技法を提供する。こ
の技法の適用例には、プリンタのフォント、ポータブル
・コンピュータ内のROMディスク、及びその他の圧縮が含
まれる。そのような適用例では、個別のブロックへのラ
ンダム・アクセス、及び高速な(即ち、リアルタイム、又
はリアルタイムに近い)伸長が必要とされる。そのよう
な適用例では、圧縮はオフラインで実施することがで
き、その時間は重要ではない。本発明の技法は、非対称
データ圧縮/伸長を提供し、それによって最大データ密
度と最小データ・アクセス時間を達成する。本発明は、
様々な製品に対してハードウェア要件を低減して機能を
増大させる、良好な圧縮率を提供する。
【0011】
【課題を解決するための手段】この技法は、3つの別個
の段階から成る。第1段階は、データ・ブロックを読み
取って処理し、統計を収集し、圧縮/伸長時に使用され
る中間データ、及び最適化されたテーブルを生成するこ
とを含む。
の段階から成る。第1段階は、データ・ブロックを読み
取って処理し、統計を収集し、圧縮/伸長時に使用され
る中間データ、及び最適化されたテーブルを生成するこ
とを含む。
【0012】第2段階は、個別のブロックを圧縮し、個
別のブロックにアクセスできるようにするインデックス
・テーブルと伸長処理で使用されるテーブルを含む、圧
縮されたファイルを生成することを含む。第1段階と第
2段階は共に、オフラインで実行され、必ずしも、最終
的に圧縮されたデータを使用するコンピュータ上で実行
される必要はない。従って、この両方の段階は、最大の
データ圧縮を保証するペースで実行することができる。
別のブロックにアクセスできるようにするインデックス
・テーブルと伸長処理で使用されるテーブルを含む、圧
縮されたファイルを生成することを含む。第1段階と第
2段階は共に、オフラインで実行され、必ずしも、最終
的に圧縮されたデータを使用するコンピュータ上で実行
される必要はない。従って、この両方の段階は、最大の
データ圧縮を保証するペースで実行することができる。
【0013】この技法の第3の、つまり最終段階は伸長
を含む。この段階は、目標コンピュータ上でリアルタイ
ムに実行され、記憶され圧縮されたファイル内のインデ
ックス・テーブル、及び伸長テーブルを使用して、アプ
リケーションの必要に応じて個別のブロックをアクセス
し、伸長する。
を含む。この段階は、目標コンピュータ上でリアルタイ
ムに実行され、記憶され圧縮されたファイル内のインデ
ックス・テーブル、及び伸長テーブルを使用して、アプ
リケーションの必要に応じて個別のブロックをアクセス
し、伸長する。
【0014】
【実施例】本発明は、図1の流れ図に示したように、多
くの組の短ブロックのデータに関してデータ圧縮/伸長
技法を提供する。この技法は3つの別個の段階から成
る。
くの組の短ブロックのデータに関してデータ圧縮/伸長
技法を提供する。この技法は3つの別個の段階から成
る。
【0015】1.訓練、及び最適化(10) この段階は、データ・ブロックを読み取って処理し、統
計を収集し、圧縮/伸長時に使用される中間データ、及
び最適化されたテーブルを生成することを含む。この段
階は、最大のデータ圧縮を保証する必要がある限り行わ
れ、従って非常に数値計算が集中する可能性がある。
計を収集し、圧縮/伸長時に使用される中間データ、及
び最適化されたテーブルを生成することを含む。この段
階は、最大のデータ圧縮を保証する必要がある限り行わ
れ、従って非常に数値計算が集中する可能性がある。
【0016】2.圧縮(14) この段階は、個別のブロックを圧縮し、個別のブロック
へのアクセスを可能にするインデックス・テーブル、及
び伸長処理の間に使用されるテーブルを有する圧縮され
たファイルを生成することを含む。この段階も数値計算
が集中するが、通常、第1段階ほどではない。この両方
の段階は、オフラインで実行され、必ずしも、最終的に
圧縮されたデータを使用するコンピュータ上で実行され
る必要はない。
へのアクセスを可能にするインデックス・テーブル、及
び伸長処理の間に使用されるテーブルを有する圧縮され
たファイルを生成することを含む。この段階も数値計算
が集中するが、通常、第1段階ほどではない。この両方
の段階は、オフラインで実行され、必ずしも、最終的に
圧縮されたデータを使用するコンピュータ上で実行され
る必要はない。
【0017】3.伸長(18) この段階は、目的のコンピュータ上でリアルタイムに実
行され、記憶され圧縮されたファイル内のインデックス
・テーブル、及び伸長テーブルを使用して、アプリケー
ションの必要に応じて個別のブロックがアクセスされ伸
長される。
行され、記憶され圧縮されたファイル内のインデックス
・テーブル、及び伸長テーブルを使用して、アプリケー
ションの必要に応じて個別のブロックがアクセスされ伸
長される。
【0018】これら3つの段階を、ここでより詳細に説
明する。
明する。
【0019】訓練、及び最適化(10) この段階では、各データ・ブロックが個別に処理され(1
1)、Lempel-Zivデータ圧縮アルゴリズムのLZ1変形型を
使用してパーズされる。例えば、J.Ziv、A.Lempel著「A
universal algorithm for sequential data compressio
n」(IEEE Transactions On Information Theory、1977
年5月)を参照されたい。原則的に、他の変形型、例えば
LZ2(J.Ziv、A.Lempel著「Compression of Individual Se
quences Via Variable-Rate Coding」(IEEE Transactio
ns on Information Theory、1978年9月)や、T.Bell著
「A Unifying Theory and Improvements for Existing
Approaches to Text Compression」(University of Can
terbury、1986年)を参照されたい)、又は非LZ技法さえ
も同様に使用することができる。しかし、LZ1の主要な
相対的欠点である圧縮速度の遅さは、この適用例では無
関係であるため、短ブロックのデータに関する本発明の
実施例ではLZ1変形型が好ましい。
1)、Lempel-Zivデータ圧縮アルゴリズムのLZ1変形型を
使用してパーズされる。例えば、J.Ziv、A.Lempel著「A
universal algorithm for sequential data compressio
n」(IEEE Transactions On Information Theory、1977
年5月)を参照されたい。原則的に、他の変形型、例えば
LZ2(J.Ziv、A.Lempel著「Compression of Individual Se
quences Via Variable-Rate Coding」(IEEE Transactio
ns on Information Theory、1978年9月)や、T.Bell著
「A Unifying Theory and Improvements for Existing
Approaches to Text Compression」(University of Can
terbury、1986年)を参照されたい)、又は非LZ技法さえ
も同様に使用することができる。しかし、LZ1の主要な
相対的欠点である圧縮速度の遅さは、この適用例では無
関係であるため、短ブロックのデータに関する本発明の
実施例ではLZ1変形型が好ましい。
【0020】図2は、Lempel-Zivデータ圧縮アルゴリズ
ムを使用する列マッチングの一例である。LZアルゴリズ
ムの基本原理は、データ・ブロックの以前の部分で既に
発生しているバイトのストリングと現在の入力との可能
な最長の一致を見つけることである。より具体的には、
データ・ブロックは事象のシーケンスとしてパーズされ
る。2種類の事象がある。
ムを使用する列マッチングの一例である。LZアルゴリズ
ムの基本原理は、データ・ブロックの以前の部分で既に
発生しているバイトのストリングと現在の入力との可能
な最長の一致を見つけることである。より具体的には、
データ・ブロックは事象のシーケンスとしてパーズされ
る。2種類の事象がある。
【0021】1.列の一致 列の一致は、オフセットと長さの2つの整数で表され
る。オフセットは、入力の現在位置から戻ったバイト数
で測定され、一致した列が発生した過去の入力バッファ
内の場所を指す。一致したバイト数は、長さパラメータ
で与えられる。列の一致の参照は、現在のデータ・ブロ
ックに対するものであり、ブロック間の参照は許可され
ない。
る。オフセットは、入力の現在位置から戻ったバイト数
で測定され、一致した列が発生した過去の入力バッファ
内の場所を指す。一致したバイト数は、長さパラメータ
で与えられる。列の一致の参照は、現在のデータ・ブロ
ックに対するものであり、ブロック間の参照は許可され
ない。
【0022】図2で、この処理は、数バイト、例えば文
字「A」を含むバイト36から成るデータ列30に関して示さ
れている。入力の現在位置は符号33で示されている。一
致のオフセットは、一致が見つかった位置36を指してい
る。この処理は、最長の一致が決定されるまで、即ち列
の一致がもはや発生しなくなる時点まで、一致を探し続
ける。図2の例で、現在の列「ABC」(32)は既存の列「ABC」
(31)と一致する(35)。その場合、次のマッチング(34)は
文字「D」から始められる。
字「A」を含むバイト36から成るデータ列30に関して示さ
れている。入力の現在位置は符号33で示されている。一
致のオフセットは、一致が見つかった位置36を指してい
る。この処理は、最長の一致が決定されるまで、即ち列
の一致がもはや発生しなくなる時点まで、一致を探し続
ける。図2の例で、現在の列「ABC」(32)は既存の列「ABC」
(31)と一致する(35)。その場合、次のマッチング(34)は
文字「D」から始められる。
【0023】2.リテラル・バイト これは、データの1バイトであり、例えば以前の入力と
一致しなかったバイト、即ち過去のデータと関係なくそ
のまま送られるバイトである。図2の例で、文字「D」(3
4)はリテラル・バイトである。
一致しなかったバイト、即ち過去のデータと関係なくそ
のまま送られるバイトである。図2の例で、文字「D」(3
4)はリテラル・バイトである。
【0024】データ・ブロックのLZ1パージング・アルゴ
リズムは以下のように要約することができる。 入力:b[0] b[1] b[2]...b[N]のバイトからなるブロッ
ク。 出力:事象のシーケンス。 ステップ1:iに0をセットする。 ステップ2:i > Nの場合、停止する。 ステップ3:b[i] b[i+1]...b[i+Lk-1] = b[k] b[k+
1]...b[k+Lk-1]であり、Lkが可能な限り大きい、即ち
最長の一致になるような、インデックスk < i、及び
対応する整数Lk > 0を見つける。 ステップ4:Lk < Lminの場合、事象「リテラルb
[i]」を出力し、iにi+1をセットし、ステップ2に進
む。そうでない場合はステップ5に進む。 ステップ5:オフセット=i-k、長さ=Lkを有する列の一
致事象(オフセット、長さ)を出力する。iにi+Lkをセ
ットしてステップ2に進む。
リズムは以下のように要約することができる。 入力:b[0] b[1] b[2]...b[N]のバイトからなるブロッ
ク。 出力:事象のシーケンス。 ステップ1:iに0をセットする。 ステップ2:i > Nの場合、停止する。 ステップ3:b[i] b[i+1]...b[i+Lk-1] = b[k] b[k+
1]...b[k+Lk-1]であり、Lkが可能な限り大きい、即ち
最長の一致になるような、インデックスk < i、及び
対応する整数Lk > 0を見つける。 ステップ4:Lk < Lminの場合、事象「リテラルb
[i]」を出力し、iにi+1をセットし、ステップ2に進
む。そうでない場合はステップ5に進む。 ステップ5:オフセット=i-k、長さ=Lkを有する列の一
致事象(オフセット、長さ)を出力する。iにi+Lkをセ
ットしてステップ2に進む。
【0025】本発明の実施例において、この段階では時
間複雑性は重大ではないから、ステップ3での最長の一
致の探索は、余すところなく行われ、必要なだけ時間を
かけることができる。ステップ4のパラメータLminは
1、又は最小の一致長さを指定する、小さな閾値に設定
することができる。実際には、Lmin=2、又は3の値
が使用される。
間複雑性は重大ではないから、ステップ3での最長の一
致の探索は、余すところなく行われ、必要なだけ時間を
かけることができる。ステップ4のパラメータLminは
1、又は最小の一致長さを指定する、小さな閾値に設定
することができる。実際には、Lmin=2、又は3の値
が使用される。
【0026】以下の議論に関しては図1を参照すべきで
ある。
ある。
【0027】LZ1パージング・アルゴリズムによって生成
される事象のシーケンスは、最終的に圧縮されたデータ
を形成するように符号化されるが、この処理のこの時点
では、符号化は実行されない。その代わり、事象の発生
頻度に関する統計が収集され、各個別のデータ・ブロッ
ク毎に、これらの頻度のヒストグラムが作成される。ブ
ロックが比較的短いので、このヒストグラムは極めてま
ばらである。
される事象のシーケンスは、最終的に圧縮されたデータ
を形成するように符号化されるが、この処理のこの時点
では、符号化は実行されない。その代わり、事象の発生
頻度に関する統計が収集され、各個別のデータ・ブロッ
ク毎に、これらの頻度のヒストグラムが作成される。ブ
ロックが比較的短いので、このヒストグラムは極めてま
ばらである。
【0028】前の段階で収集された統計は、統計ベース
の圧縮方法、例えばハフマン符号化を使用する事象の最
適符号化を設計するために使用される(13)。例えば、T.
Cover、J.Thomas著「Elements of Information Theory」
(第5章、John Wiley & Sons、ニューヨーク(1991年))
を参照されたい。この符号化は、より頻繁な事象に対し
てより短いコードを割り当て、あまり頻繁でない事象に
対してより長いコードを割り当てる。理想的には、可能
な、ブロックの最短の符号化は、そのブロックに関する
統計だけに基づいてコードを設計することによって得ら
れる。しかし、ある形式の符号化テーブル(又は、同様
にヒストグラム)もデコンプレッサに対して使用可能で
なければならない。各ブロック毎に別々のコード・テー
ブルを記憶するコストにより、符号化によって得られる
どんな圧縮も相殺される。
の圧縮方法、例えばハフマン符号化を使用する事象の最
適符号化を設計するために使用される(13)。例えば、T.
Cover、J.Thomas著「Elements of Information Theory」
(第5章、John Wiley & Sons、ニューヨーク(1991年))
を参照されたい。この符号化は、より頻繁な事象に対し
てより短いコードを割り当て、あまり頻繁でない事象に
対してより長いコードを割り当てる。理想的には、可能
な、ブロックの最短の符号化は、そのブロックに関する
統計だけに基づいてコードを設計することによって得ら
れる。しかし、ある形式の符号化テーブル(又は、同様
にヒストグラム)もデコンプレッサに対して使用可能で
なければならない。各ブロック毎に別々のコード・テー
ブルを記憶するコストにより、符号化によって得られる
どんな圧縮も相殺される。
【0029】他の極端な例では、1つの符号化テーブル
がデータ・ブロックの組全体に使用される。こうしたテ
ーブルは、全てのブロックに関するヒストグラムを1つ
の汎用ヒストグラムに結合し、その汎用ヒストグラムか
らテーブルを導くことによって得られる。これによっ
て、テーブルが占有する空間を最小限に抑えられるが、
得られる符号化は、多数のデータ・ブロックに対して最
適であるとは言い難い。
がデータ・ブロックの組全体に使用される。こうしたテ
ーブルは、全てのブロックに関するヒストグラムを1つ
の汎用ヒストグラムに結合し、その汎用ヒストグラムか
らテーブルを導くことによって得られる。これによっ
て、テーブルが占有する空間を最小限に抑えられるが、
得られる符号化は、多数のデータ・ブロックに対して最
適であるとは言い難い。
【0030】本発明で適用される中間的な解決策は、ブ
ロックの組を同様の統計を有するクラスタとして区分化
し、各クラスタに属するブロックのヒストグラムを1つ
のヒストグラムに結合し、その結合ヒストグラムに基づ
いて各クラスタに関する最適符号化/復号化テーブルを
設計することである。これは、上記で従来の技術の議論
に関連した一例として述べたディスク・クラスタではな
く、むしろデータ・ブロックのクラスタである(ディスク
の例では、ディスク・クラスタのクラスタである)。「ク
ラスタ」の語は、本明細書の議論の残りの部分全てにわ
たって、この意味を表すものとする。
ロックの組を同様の統計を有するクラスタとして区分化
し、各クラスタに属するブロックのヒストグラムを1つ
のヒストグラムに結合し、その結合ヒストグラムに基づ
いて各クラスタに関する最適符号化/復号化テーブルを
設計することである。これは、上記で従来の技術の議論
に関連した一例として述べたディスク・クラスタではな
く、むしろデータ・ブロックのクラスタである(ディスク
の例では、ディスク・クラスタのクラスタである)。「ク
ラスタ」の語は、本明細書の議論の残りの部分全てにわ
たって、この意味を表すものとする。
【0031】図3は、本発明によるヒストグラム・クラ
スタ化の一例である。図で、各データ・ブロックは、棒
グラフとしてグラフィカルに示されたそのブロック自体
のヒストグラム(統計)によって表されている。様々なデ
ータ・ブロックが、ある共通の特性、例えば、図ではヒ
ストグラムの形状が類似しているとして示された統計的
な類似性に従って、グループ化(クラスタ化)されてい
る。グループ化、又はクラスタ100、101、102、103、104は
代表ヒストグラム110、111、112、113、114を作成するため
に使用される。代表ヒストグラムは、例えばクラスタか
ら成る全てのヒストグラムの合計を求めることによって
導くことができる。各代表ヒストグラムは、対応するク
ラスタに含まれる全てのデータ・ブロックに関する符号
化テーブルを作成するために使用される。このように、
圧縮されたデータ・ブロックの組と共に記憶されるべき
伸長テーブルの数は、大幅に減少する。クラスタの数
と、クラスタへのブロックの割り当ては、合計S = S
T + SE (1)が最小になるように設計される。上式で、
STは、符号化されたデータと共に記憶される復号化テ
ーブルのサイズを示し、SEは符号化されたデータ自体
のサイズを示し、Sは圧縮されたデータの合計サイズを
示す。
スタ化の一例である。図で、各データ・ブロックは、棒
グラフとしてグラフィカルに示されたそのブロック自体
のヒストグラム(統計)によって表されている。様々なデ
ータ・ブロックが、ある共通の特性、例えば、図ではヒ
ストグラムの形状が類似しているとして示された統計的
な類似性に従って、グループ化(クラスタ化)されてい
る。グループ化、又はクラスタ100、101、102、103、104は
代表ヒストグラム110、111、112、113、114を作成するため
に使用される。代表ヒストグラムは、例えばクラスタか
ら成る全てのヒストグラムの合計を求めることによって
導くことができる。各代表ヒストグラムは、対応するク
ラスタに含まれる全てのデータ・ブロックに関する符号
化テーブルを作成するために使用される。このように、
圧縮されたデータ・ブロックの組と共に記憶されるべき
伸長テーブルの数は、大幅に減少する。クラスタの数
と、クラスタへのブロックの割り当ては、合計S = S
T + SE (1)が最小になるように設計される。上式で、
STは、符号化されたデータと共に記憶される復号化テ
ーブルのサイズを示し、SEは符号化されたデータ自体
のサイズを示し、Sは圧縮されたデータの合計サイズを
示す。
【0032】数式(1)は、それぞれ関連するコストを有
する、モデル化とコード化の2つの部分にデータ圧縮処
理を分割する、周知の情報理論パラダイムを表す。ST
はモデルのコスト、即ちデータ統計モデルの記述に関連
するコストを表し、SEはコード・コスト、即ちモデルに
基づくデータの最適符号化コストを表す。例えば、J.Ri
ssanen著「Universal coding,information,prediction,
and estimation」(IEEE Transaction on Information T
heory(1984年7月))、及びJ.Rissanen、G.G.Langdon著「U
niversal modeling and coding」(IEEE Transaction on
InformationTheory(1981年1月))を参照されたい。
する、モデル化とコード化の2つの部分にデータ圧縮処
理を分割する、周知の情報理論パラダイムを表す。ST
はモデルのコスト、即ちデータ統計モデルの記述に関連
するコストを表し、SEはコード・コスト、即ちモデルに
基づくデータの最適符号化コストを表す。例えば、J.Ri
ssanen著「Universal coding,information,prediction,
and estimation」(IEEE Transaction on Information T
heory(1984年7月))、及びJ.Rissanen、G.G.Langdon著「U
niversal modeling and coding」(IEEE Transaction on
InformationTheory(1981年1月))を参照されたい。
【0033】データ・ブロックをクラスタにグループ化
することは、データ・ブロックが有するいかなる本来の
順序、例えばフォント内の文字の順序、又はROMディス
ク内のディスク・ブロックの順序によって制限されない
ことに留意されたい。データ・ブロックは、任意の順序
で取り出すことができ、原則的に、全ての可能な並び替
えが考えられうる。従って、例えば第1のデータ・ブロ
ックが最後のデータ・ブロックと共にクラスタ化されう
る。これは、システムの非対称性のために可能になる。
クラスタ化処理中にデータをパスする回数は制限されな
い。このアプローチは、データ・ブロックを本来の順序
で順次処理しなければならない従来型の対称圧縮システ
ムとは対称的である。
することは、データ・ブロックが有するいかなる本来の
順序、例えばフォント内の文字の順序、又はROMディス
ク内のディスク・ブロックの順序によって制限されない
ことに留意されたい。データ・ブロックは、任意の順序
で取り出すことができ、原則的に、全ての可能な並び替
えが考えられうる。従って、例えば第1のデータ・ブロ
ックが最後のデータ・ブロックと共にクラスタ化されう
る。これは、システムの非対称性のために可能になる。
クラスタ化処理中にデータをパスする回数は制限されな
い。このアプローチは、データ・ブロックを本来の順序
で順次処理しなければならない従来型の対称圧縮システ
ムとは対称的である。
【0034】ヒストグラムの絶対的な最適クラスタ化は
計算不能であるが、たとえ最適なものではなくても、良
好な圧縮比をもたらす実際的なアプローチが実施可能で
ある。これらのアプローチは、データの事前の知識、又
は代替方法で見つけられた幾つかの解決策のうち最も適
当なものが、最適化の次のステップで使用できるよう
に、連続した段階において選択される発見的クラスタ化
基準に基づくものである。ある発見的手法の例は、各ブ
ロックの統計を使用してそのブロック自体を圧縮するこ
とによって得られた圧縮率インデックスによってデータ
・ブロックをソートし、次いで同様の圧縮率インデック
スを用いてブロックをクラスタ化する。以下の手順は、
この発見的手法の1つの実施態様である。
計算不能であるが、たとえ最適なものではなくても、良
好な圧縮比をもたらす実際的なアプローチが実施可能で
ある。これらのアプローチは、データの事前の知識、又
は代替方法で見つけられた幾つかの解決策のうち最も適
当なものが、最適化の次のステップで使用できるよう
に、連続した段階において選択される発見的クラスタ化
基準に基づくものである。ある発見的手法の例は、各ブ
ロックの統計を使用してそのブロック自体を圧縮するこ
とによって得られた圧縮率インデックスによってデータ
・ブロックをソートし、次いで同様の圧縮率インデック
スを用いてブロックをクラスタ化する。以下の手順は、
この発見的手法の1つの実施態様である。
【0035】1.クラスタの数Nを判定する(例えば、
最良の圧縮が得られるまで異なるNの値を試す。実際の
適用例では、Nは大きな数ではない)。 2.各入力データ・ブロック毎に、LZ1パージング操作を
実施し、結果的にパージングを形成する事象に関する統
計を生成し、この統計に基づいて最適符号化テーブルを
生成し、ブロックの圧縮率インデックスRを計算する。
圧縮率インデックスは、最適化テーブルを使用してブロ
ックを符号化する際に得られる圧縮率に等しい。 3.圧縮閾値T1,T2,....,Tn-1を判定する(以下参
照)。T0=0,Tn=∞にセットする。 4.クラスタC1,C2,...,Cnを以下のように定義す
る。 Ci={全てのブロックが、Ti-1 < R < Tiを満たす圧
縮率インデックスを持つ}。
最良の圧縮が得られるまで異なるNの値を試す。実際の
適用例では、Nは大きな数ではない)。 2.各入力データ・ブロック毎に、LZ1パージング操作を
実施し、結果的にパージングを形成する事象に関する統
計を生成し、この統計に基づいて最適符号化テーブルを
生成し、ブロックの圧縮率インデックスRを計算する。
圧縮率インデックスは、最適化テーブルを使用してブロ
ックを符号化する際に得られる圧縮率に等しい。 3.圧縮閾値T1,T2,....,Tn-1を判定する(以下参
照)。T0=0,Tn=∞にセットする。 4.クラスタC1,C2,...,Cnを以下のように定義す
る。 Ci={全てのブロックが、Ti-1 < R < Tiを満たす圧
縮率インデックスを持つ}。
【0036】圧縮閾値Tiを定義する1つの方法は、そ
の結果得られるクラスタCiがほぼ等しいサイズになる
ように前記閾値をセットすることである。この発見的手
法は、同様の統計特性を有するブロックは同様の圧縮率
インデックスを有する(但し、逆は必ずしも真ではない)
という原則に基づくものである。
の結果得られるクラスタCiがほぼ等しいサイズになる
ように前記閾値をセットすることである。この発見的手
法は、同様の統計特性を有するブロックは同様の圧縮率
インデックスを有する(但し、逆は必ずしも真ではない)
という原則に基づくものである。
【0037】フォントの適用例の場合、発見的アプロー
チは、公知の形態的類似性を用いて絵文字、即ち、類似
の形状を含む絵文字をクラスタ化する。ROMディスクの
適用例の場合、発見的アプローチは、同じタイプのコン
ピュータ・ファイル(例えば、実行可能ファイル、テキス
ト・ファイル、グラフィック・ファイル等)から得られる
データ・ブロックをクラスタ化する。
チは、公知の形態的類似性を用いて絵文字、即ち、類似
の形状を含む絵文字をクラスタ化する。ROMディスクの
適用例の場合、発見的アプローチは、同じタイプのコン
ピュータ・ファイル(例えば、実行可能ファイル、テキス
ト・ファイル、グラフィック・ファイル等)から得られる
データ・ブロックをクラスタ化する。
【0038】データ・ブロックのクラスタ化に関する、
より一般的なアプローチは、ベクトル量子化に基づくも
のである。例えば、A.Gersho、R.M.Gray著「Vector Quan
tization and Signal Compression」(Kluwer Academic
Publishers、ボストン(1992年))を参照されたい。ここ
では、クラスタの数が既知のものと仮定している(後
で、この数と異なる値について試すことができる)。こ
のアプローチでは、ベクトル量子化コードブック設計技
法を使用して、ヒストグラム・クラスタが定義される。
このアプローチは、量子化されているベクトル間の距離
の概念を必要とする。この場合、これらのベクトルはヒ
ストグラムである。この距離に関する値を提供するため
に使用される1つの因子は、ヒストグラムによって表さ
れる分布間の情報発散である。これは、統計分布間の類
似性を測定するために使用することができる。例えば、
T.Cover、J.Thomas著「Elements of Information Theor
y」(John Wiley & Sons,Inc.、ニューヨーク(1991年))
を参照されたい。
より一般的なアプローチは、ベクトル量子化に基づくも
のである。例えば、A.Gersho、R.M.Gray著「Vector Quan
tization and Signal Compression」(Kluwer Academic
Publishers、ボストン(1992年))を参照されたい。ここ
では、クラスタの数が既知のものと仮定している(後
で、この数と異なる値について試すことができる)。こ
のアプローチでは、ベクトル量子化コードブック設計技
法を使用して、ヒストグラム・クラスタが定義される。
このアプローチは、量子化されているベクトル間の距離
の概念を必要とする。この場合、これらのベクトルはヒ
ストグラムである。この距離に関する値を提供するため
に使用される1つの因子は、ヒストグラムによって表さ
れる分布間の情報発散である。これは、統計分布間の類
似性を測定するために使用することができる。例えば、
T.Cover、J.Thomas著「Elements of Information Theor
y」(John Wiley & Sons,Inc.、ニューヨーク(1991年))
を参照されたい。
【0039】ヒストグラムのクラスタ化に関する他のア
プローチの例は、異なる状態から得た統計を最小データ
・モデルに統合する、体系的な方法を提供する汎用モデ
ル化技法によって提供される。例えば、J.Rissanen著
「A universal state compression system」(IEEE Tran
saction on Information Theory(1983年9月)、J.Rissan
en著「Universal coding,information,prediction,and
estimation」(IEEE Transactions on Information Theo
ry(1984年7月))、M.Weinberger、J.Rissanen、M.Feder著
「A universal finite memory source」(IEEE Transact
ions on Information Theory(1993年提示))を参照され
たい。
プローチの例は、異なる状態から得た統計を最小データ
・モデルに統合する、体系的な方法を提供する汎用モデ
ル化技法によって提供される。例えば、J.Rissanen著
「A universal state compression system」(IEEE Tran
saction on Information Theory(1983年9月)、J.Rissan
en著「Universal coding,information,prediction,and
estimation」(IEEE Transactions on Information Theo
ry(1984年7月))、M.Weinberger、J.Rissanen、M.Feder著
「A universal finite memory source」(IEEE Transact
ions on Information Theory(1993年提示))を参照され
たい。
【0040】実際には、経験的データによって、極めて
単純なアプローチでも満足な圧縮結果が得られることが
分かっている。例えば、順序付けにそれほど注意を払わ
ずに、データ・ブロックを多くの同等の部分集合に分割
し、丁度その部分集合の数を最適化する(上述の発見的
手順のようなアプローチ。但し、圧縮率インデックスは
計算しない)ようなアプローチが挙げられる。以下の議
論に関しては、図1を参照されたい。
単純なアプローチでも満足な圧縮結果が得られることが
分かっている。例えば、順序付けにそれほど注意を払わ
ずに、データ・ブロックを多くの同等の部分集合に分割
し、丁度その部分集合の数を最適化する(上述の発見的
手順のようなアプローチ。但し、圧縮率インデックスは
計算しない)ようなアプローチが挙げられる。以下の議
論に関しては、図1を参照されたい。
【0041】従って、訓練・最適化段階(11)の終りで
は、クラスタに区分化されたデータ・ブロック(12)と、
各クラスタ毎に1つある1組の符号化テーブル(13)があ
る。これらの符号化テーブルは、バイナリ・コードへの
事象の変換を指定し、クラスタに関して、可能な最も短
い符号化を得るように最適化される。事象に関するバイ
ナリ・コードは、事象がどんなタイプのものであるか、
即ち、リテラル、又は列の一致であるかと、事象自身の
値、即ち、リテラル・バイト、又はオフセット、及び長
さの値の両方を符号化する。
は、クラスタに区分化されたデータ・ブロック(12)と、
各クラスタ毎に1つある1組の符号化テーブル(13)があ
る。これらの符号化テーブルは、バイナリ・コードへの
事象の変換を指定し、クラスタに関して、可能な最も短
い符号化を得るように最適化される。事象に関するバイ
ナリ・コードは、事象がどんなタイプのものであるか、
即ち、リテラル、又は列の一致であるかと、事象自身の
値、即ち、リテラル・バイト、又はオフセット、及び長
さの値の両方を符号化する。
【0042】圧縮 圧縮段階(14)で、データ・ブロックのLZ1パージングが繰
り返され(15)、その結果得られる事象が、訓練・最適化
段階で生成された符号化テーブルを使用して符号化され
る。これらのテーブルは、高速伸長に適した形態で、圧
縮されたデータと共に含められる。ハフマン・コード・テ
ーブルの場合、そのテーブルは、その符号化の形態か
ら、高速伸長用のルックアップ・テーブルから成る復号
化の形態に変換される。従って、結果的に圧縮されたフ
ァイルが作成される(17)。
り返され(15)、その結果得られる事象が、訓練・最適化
段階で生成された符号化テーブルを使用して符号化され
る。これらのテーブルは、高速伸長に適した形態で、圧
縮されたデータと共に含められる。ハフマン・コード・テ
ーブルの場合、そのテーブルは、その符号化の形態か
ら、高速伸長用のルックアップ・テーブルから成る復号
化の形態に変換される。従って、結果的に圧縮されたフ
ァイルが作成される(17)。
【0043】図4は、本発明によるコーダの概略ブロッ
ク図である。この図で、データ・ブロック(45)は順に検
索され(44)、例えば、インデックス番号iを有するブロ
ックが検索される(46)。各ブロックはクラスタに割り当
てられ(47)、各クラスタ毎に符号化テーブルが生成され
る(50)。例えば、ブロックi(46)はクラスタj(50)に属す
る。データ・ブロックのプレーン・バイト(45)が、LZタイ
プのエンコーダで符号化され(48)、プレーン・トークン
(事象)のパーズされたブロックが生成される(49)。ブロ
ック(49)は、テーブル(50)を使用してハフマン・エンコ
ーダ(51)によって符号化され、圧縮されたブロック(52)
が生成される。このブロックは圧縮されたファイル(53)
に追加される。
ク図である。この図で、データ・ブロック(45)は順に検
索され(44)、例えば、インデックス番号iを有するブロ
ックが検索される(46)。各ブロックはクラスタに割り当
てられ(47)、各クラスタ毎に符号化テーブルが生成され
る(50)。例えば、ブロックi(46)はクラスタj(50)に属す
る。データ・ブロックのプレーン・バイト(45)が、LZタイ
プのエンコーダで符号化され(48)、プレーン・トークン
(事象)のパーズされたブロックが生成される(49)。ブロ
ック(49)は、テーブル(50)を使用してハフマン・エンコ
ーダ(51)によって符号化され、圧縮されたブロック(52)
が生成される。このブロックは圧縮されたファイル(53)
に追加される。
【0044】図5は、本発明による、圧縮されたデータ
・ブロックのそれぞれに関して1つのインデックス・レコ
ードを含むインデックス・テーブル(41)を示す圧縮され
たファイル構造(40)の一例である。インデックス・レコ
ードは以下のものを含む。
・ブロックのそれぞれに関して1つのインデックス・レコ
ードを含むインデックス・テーブル(41)を示す圧縮され
たファイル構造(40)の一例である。インデックス・レコ
ードは以下のものを含む。
【0045】1.ブロックを含むクラスタに関連する伸
長テーブル(42)のアドレス。 2.圧縮されたブロック(43)の開始アドレス。 3.圧縮されたブロック(43)の長さ。このフィールド
は、圧縮されたブロックがインデックス順で記憶されて
いる場合は必要がない。 4.ブロックに関する他のアプリケーション依存情報。
長テーブル(42)のアドレス。 2.圧縮されたブロック(43)の開始アドレス。 3.圧縮されたブロック(43)の長さ。このフィールド
は、圧縮されたブロックがインデックス順で記憶されて
いる場合は必要がない。 4.ブロックに関する他のアプリケーション依存情報。
【0046】伸長 以下の議論に関しては図1を参照されたい。
【0047】伸長処理(18)は、圧縮ステップを全く逆に
したものであり、以下で要約する。 入力:ブロック・インデックスk(図1の符号19)。 出力:バイトb[0] b[1] b[2]...b[N]から成るブロッ
ク。 ステップ1:インデックス・テーブル内のk番目の項目
にアクセスして、伸長テーブルを指すポインタと圧縮さ
れたブロックを指すポインタを得る。圧縮されたブロッ
クは、c[1] c[2]...c[M]という形態を有する。ここで、
c[j]は符号化された事象である。 ステップ2:N←0,j←1にセットする。 ステップ3:j > Mの場合、ステップ7に進む。 ステップ4:伸長テーブルを使用して、c[j]を事象記述
e[j](図1の符号22)に復号化する。 ステップ5:e[j]が「リテラルb」である場合、b[N]←
b,N←N+1,j←j+1にセットし、ステップ3に進む。
そうでない場合、ステップ6に進む。 ステップ6:e[j]は対(一致、オフセット)である。k←
N-オフセット、L←長さにセットする。列b[k] b[k+
1]...b[k+L-1]をb[N] b[N+1]...b[N+L-1]にコピーす
る。N←N+L,j←j+1にセットし、ステップ3に進む。 ステップ7:b[0] b[1] b[2]...b[N](図1の符号23)を
出力する。停止。
したものであり、以下で要約する。 入力:ブロック・インデックスk(図1の符号19)。 出力:バイトb[0] b[1] b[2]...b[N]から成るブロッ
ク。 ステップ1:インデックス・テーブル内のk番目の項目
にアクセスして、伸長テーブルを指すポインタと圧縮さ
れたブロックを指すポインタを得る。圧縮されたブロッ
クは、c[1] c[2]...c[M]という形態を有する。ここで、
c[j]は符号化された事象である。 ステップ2:N←0,j←1にセットする。 ステップ3:j > Mの場合、ステップ7に進む。 ステップ4:伸長テーブルを使用して、c[j]を事象記述
e[j](図1の符号22)に復号化する。 ステップ5:e[j]が「リテラルb」である場合、b[N]←
b,N←N+1,j←j+1にセットし、ステップ3に進む。
そうでない場合、ステップ6に進む。 ステップ6:e[j]は対(一致、オフセット)である。k←
N-オフセット、L←長さにセットする。列b[k] b[k+
1]...b[k+L-1]をb[N] b[N+1]...b[N+L-1]にコピーす
る。N←N+L,j←j+1にセットし、ステップ3に進む。 ステップ7:b[0] b[1] b[2]...b[N](図1の符号23)を
出力する。停止。
【0048】図1で、訓練・最適化段階,及び圧縮段階
は、符号20によって定義された共通の境界内に含まれる
ものとして示されているが、伸長段階は、符号21で定義
された別の境界内に含まれるものとして示されている。
圧縮処理、及び伸長処理が非対称であることを理解され
たい。即ち、圧縮処理は、最大データ圧縮を保証する方
法で、かつそのような圧縮を行うために必要となる実際
の時間量に関わらず進行するが、データ伸長はできるだ
け迅速に進行しなければならない。従って、圧縮と伸長
は通常、異なる環境で行われる。このように、本明細書
で開示した技法は最大のデータ圧縮を提供し、同時に漢
字フォントにおけるような、大きなデータセットに含ま
れる短ブロックのデータへの高速で、リアルタイムのア
クセスを可能にする。
は、符号20によって定義された共通の境界内に含まれる
ものとして示されているが、伸長段階は、符号21で定義
された別の境界内に含まれるものとして示されている。
圧縮処理、及び伸長処理が非対称であることを理解され
たい。即ち、圧縮処理は、最大データ圧縮を保証する方
法で、かつそのような圧縮を行うために必要となる実際
の時間量に関わらず進行するが、データ伸長はできるだ
け迅速に進行しなければならない。従って、圧縮と伸長
は通常、異なる環境で行われる。このように、本明細書
で開示した技法は最大のデータ圧縮を提供し、同時に漢
字フォントにおけるような、大きなデータセットに含ま
れる短ブロックのデータへの高速で、リアルタイムのア
クセスを可能にする。
【0049】図6は、本発明によるデコーダの概略ブロ
ック図である。この図で、要求が処理されてブロックi
(60)が復号化される。インデックス・テーブル(61)が、
このブロックがどのクラスタに属するかを判定するため
にアクセスされ、それによって、適当な復号化テーブル
(62)が選択される。次いで、圧縮されたブロック(63)、
及び復号化テーブル(62)がハフマン・デコーダ(64)によ
って復号化され、プレーン・トークン、又は事象から成
るパーズされたブロック(65)が生成される。パーズされ
たブロック(65)がLZタイプのデコーダ(66)によって復号
化され、復号化されたブロック(67)が出力される。
ック図である。この図で、要求が処理されてブロックi
(60)が復号化される。インデックス・テーブル(61)が、
このブロックがどのクラスタに属するかを判定するため
にアクセスされ、それによって、適当な復号化テーブル
(62)が選択される。次いで、圧縮されたブロック(63)、
及び復号化テーブル(62)がハフマン・デコーダ(64)によ
って復号化され、プレーン・トークン、又は事象から成
るパーズされたブロック(65)が生成される。パーズされ
たブロック(65)がLZタイプのデコーダ(66)によって復号
化され、復号化されたブロック(67)が出力される。
【0050】本明細書では本発明を好適実施例に関して
説明してきたが、当業者には、本発明の意図、及び範囲
から逸脱することなく、本明細書に記載されたものを他
の適用例で代替できることが容易に理解されよう。例え
ば、本明細書で開示された技法は、ROM、ディスク、光
学ベースの記憶媒体等のあらゆるタイプの記憶媒体と共
に使用することができる。加えて、このような記憶媒体
は、伸長処理がなされる地点から離れて存在することも
可能である。従って、本発明の技法に従って圧縮された
材料は、ネットワークを介して、又は同報通信の結果と
して受信された後に伸長されうる。従って、本発明は特
許請求の範囲によってのみ制限される。
説明してきたが、当業者には、本発明の意図、及び範囲
から逸脱することなく、本明細書に記載されたものを他
の適用例で代替できることが容易に理解されよう。例え
ば、本明細書で開示された技法は、ROM、ディスク、光
学ベースの記憶媒体等のあらゆるタイプの記憶媒体と共
に使用することができる。加えて、このような記憶媒体
は、伸長処理がなされる地点から離れて存在することも
可能である。従って、本発明の技法に従って圧縮された
材料は、ネットワークを介して、又は同報通信の結果と
して受信された後に伸長されうる。従って、本発明は特
許請求の範囲によってのみ制限される。
【0051】以下に本発明の実施態様を列挙する。
【0052】1. 幾つかの短ブロックのデータから成
るデータセットを符号化するための装置であって、前記
装置が、前記データセットを受け取るための入力手段、
各データ・ブロックが特定のデータ・ブロックのクラスタ
に割り当てられるように前記データセットを区分化する
ための手段、前記データ・ブロックのバイナリ・コードへ
の変換を指定する各クラスタ毎に、1組の符号化テーブ
ルを生成するための手段、前記符号化テーブルに含まれ
る変換を前記データ・ブロックに適用することによっ
て、前記データ・ブロックを符号化するための手段、各
データ・ブロックを、対応する符号化テーブルに関連付
けるインデックス・テーブルを生成するための手段、前
記符号化テーブルから1組の復号化テーブルを生成する
ための手段、前記インデックス、前記復号化テーブル、
及び前記符号化されたデータ・ブロックを含む圧縮され
たファイルを作成するための手段、記憶媒体上に前記フ
ァイルを記憶するための手段を備えることを特徴とする
前記装置。
るデータセットを符号化するための装置であって、前記
装置が、前記データセットを受け取るための入力手段、
各データ・ブロックが特定のデータ・ブロックのクラスタ
に割り当てられるように前記データセットを区分化する
ための手段、前記データ・ブロックのバイナリ・コードへ
の変換を指定する各クラスタ毎に、1組の符号化テーブ
ルを生成するための手段、前記符号化テーブルに含まれ
る変換を前記データ・ブロックに適用することによっ
て、前記データ・ブロックを符号化するための手段、各
データ・ブロックを、対応する符号化テーブルに関連付
けるインデックス・テーブルを生成するための手段、前
記符号化テーブルから1組の復号化テーブルを生成する
ための手段、前記インデックス、前記復号化テーブル、
及び前記符号化されたデータ・ブロックを含む圧縮され
たファイルを作成するための手段、記憶媒体上に前記フ
ァイルを記憶するための手段を備えることを特徴とする
前記装置。
【0053】2. データ・ブロック、及び対応する復
号化テーブルを前記インデックス内に位置付けるための
手段、前記復号化テーブルに含まれる変換を前記データ
・ブロックに適用することによって、前記データ・ブロッ
クをランダムかつ個別に復号化するための手段、前記復
号化されたデータ・ブロックを出力するための手段を更
に備えることを特徴とする請求項1に記載の装置。
号化テーブルを前記インデックス内に位置付けるための
手段、前記復号化テーブルに含まれる変換を前記データ
・ブロックに適用することによって、前記データ・ブロッ
クをランダムかつ個別に復号化するための手段、前記復
号化されたデータ・ブロックを出力するための手段を更
に備えることを特徴とする請求項1に記載の装置。
【0054】3. 前記区分化手段が、各データ・ブロ
ック内の可能な最大の列の一致に基づいて、事象のシー
ケンスを生成するために、各データ・ブロックを個別に
パーズするための手段を更に備えることを特徴とする請
求項1、又は2に記載の装置。
ック内の可能な最大の列の一致に基づいて、事象のシー
ケンスを生成するために、各データ・ブロックを個別に
パーズするための手段を更に備えることを特徴とする請
求項1、又は2に記載の装置。
【0055】4. 前記パージング手段が、Lempel-Ziv
方法論を適用することを特徴とする請求項1、2又は3
のいずれかに記載の装置。
方法論を適用することを特徴とする請求項1、2又は3
のいずれかに記載の装置。
【0056】5. 前記パージング手段が、より頻繁に
発生する事象をより短いコードに、あまり発生しない事
象をより長いコードに割り当てるように、前記事象を符
号化するためのハフマン・エンコーダを更に備えること
を特徴とする請求項1、2又は3のいずれかに記載の装
置。
発生する事象をより短いコードに、あまり発生しない事
象をより長いコードに割り当てるように、前記事象を符
号化するためのハフマン・エンコーダを更に備えること
を特徴とする請求項1、2又は3のいずれかに記載の装
置。
【0057】6. 前記テーブル生成手段が、各データ
・ブロックを圧縮することによって得られた圧縮率イン
デックスによって、前記データ・ブロックをソートする
ための手段、同様の圧縮率インデックスを有するデータ
・ブロックをクラスタ化するための手段を更に備えるこ
とを特徴とする請求項1ないし5のいずれかに記載の装
置。
・ブロックを圧縮することによって得られた圧縮率イン
デックスによって、前記データ・ブロックをソートする
ための手段、同様の圧縮率インデックスを有するデータ
・ブロックをクラスタ化するための手段を更に備えるこ
とを特徴とする請求項1ないし5のいずれかに記載の装
置。
【0058】7. 前記データセットが更に、複数の絵
文字を備え、前記テーブル生成手段が更に、前記データ
セット内で、既知の形態的類似性を有する絵文字をクラ
スタ化するための手段を備えることを特徴とする請求項
1ないし6のいずれかに記載の装置。
文字を備え、前記テーブル生成手段が更に、前記データ
セット内で、既知の形態的類似性を有する絵文字をクラ
スタ化するための手段を備えることを特徴とする請求項
1ないし6のいずれかに記載の装置。
【0059】8. 前記テーブル生成手段が、前記デー
タ・ブロックを部分集合に分割するための手段、このよ
うに得られた部分集合の数を最適化するための手段を更
に備えることを特徴とする請求項1ないし7のいずれか
に記載の装置。
タ・ブロックを部分集合に分割するための手段、このよ
うに得られた部分集合の数を最適化するための手段を更
に備えることを特徴とする請求項1ないし7のいずれか
に記載の装置。
【0060】9. 前記テーブル生成手段が、選択され
た共通特性に従って前記データ・ブロックをグループ化
し、多くのデータ・クラスタを作成するための手段、ST
が符号化されたデータ・ブロックと共に記憶された符号
化テーブルのサイズを示し、SEが符号化されたデータ・
ブロックのサイズを示し、Sが圧縮されたデータセット
の合計サイズを示す場合において、合計S = ST + SE
が、最小になるように前記データ・ブロックを前記デー
タ・クラスタに割り当てるための手段を更に備えること
を特徴とする請求項1ないし7のいずれかに記載の装
置。
た共通特性に従って前記データ・ブロックをグループ化
し、多くのデータ・クラスタを作成するための手段、ST
が符号化されたデータ・ブロックと共に記憶された符号
化テーブルのサイズを示し、SEが符号化されたデータ・
ブロックのサイズを示し、Sが圧縮されたデータセット
の合計サイズを示す場合において、合計S = ST + SE
が、最小になるように前記データ・ブロックを前記デー
タ・クラスタに割り当てるための手段を更に備えること
を特徴とする請求項1ないし7のいずれかに記載の装
置。
【0061】10. 前記ファイル作成手段によって作成
されるファイルが、圧縮されたそれぞれのデータ・ブロ
ック毎に1つのインデックス・レコードを含むインデッ
クス・テーブルを有する圧縮されたファイル構造を備
え、前記インデックス・レコードが、データ・ブロックを
含むクラスタに関連する復号化テーブルのアドレス、圧
縮されたデータ・ブロックの開始アドレス、圧縮された
データ・ブロックの長さのうちのいずれかを含むことを
特徴とする請求項1ないし9のいずれかに記載の装置。
されるファイルが、圧縮されたそれぞれのデータ・ブロ
ック毎に1つのインデックス・レコードを含むインデッ
クス・テーブルを有する圧縮されたファイル構造を備
え、前記インデックス・レコードが、データ・ブロックを
含むクラスタに関連する復号化テーブルのアドレス、圧
縮されたデータ・ブロックの開始アドレス、圧縮された
データ・ブロックの長さのうちのいずれかを含むことを
特徴とする請求項1ないし9のいずれかに記載の装置。
【0062】
【発明の効果】本発明の技法が、非対称データ圧縮/伸
長を提供し、それによって最大データ密度と最小データ
・アクセス時間を達成する。本発明によって、様々な製
品に対してハードウェア要件を低減して機能を増大させ
る、良好な圧縮率が提供される。
長を提供し、それによって最大データ密度と最小データ
・アクセス時間を達成する。本発明によって、様々な製
品に対してハードウェア要件を低減して機能を増大させ
る、良好な圧縮率が提供される。
【図1】本発明による、多くの組の小さなブロックのデ
ータを圧縮、及び伸長する技法を示す流れ図である。
ータを圧縮、及び伸長する技法を示す流れ図である。
【図2】Lempel-Zivデータ圧縮アルゴリズムを使用する
列マッチングの一例である。
列マッチングの一例である。
【図3】本発明によるヒストグラムのクラスタ化の一例
である。
である。
【図4】本発明によるコーダの概略ブロック図である。
【図5】本発明による、圧縮されたデータ・ブロックそ
れぞれに対して、1つのインデックス・レコードを含む
インデックス・テーブルを示す圧縮されたファイル構造
の一例である。
れぞれに対して、1つのインデックス・レコードを含む
インデックス・テーブルを示す圧縮されたファイル構造
の一例である。
【図6】本発明によるデコーダの概略ブロック図であ
る。
る。
48 LZエンコーダ 50 符号化テーブル 51 ハフマン・エンコーダ 61 インデックス・テーブル 62 復号化テーブル 64 ハフマン・デコーダ 66 LZデコーダ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−116228(JP,A) 特開 平3−78322(JP,A) 特開 平3−204232(JP,A) 特開 平4−232996(JP,A) 特開 平6−218986(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/30 H03M 7/42
Claims (20)
- 【請求項1】幾つかの短ブロックのデータから成るデー
タセットを符号化するための方法であって、 前記データセットを入力するステップと、 各データブロックが、データ・ブロックの特定のクラス
タに割り当てられるように前記データセットを区分化す
るステップと、 各クラスタ毎に、前記データ・ブロックのバイナリ・コー
ドへの変換を指定する1組の符号化テーブルを生成する
ステップと、 前記符号化テーブルに含まれる変換を前記データ・ブロ
ックに適用することによって、前記データ・ブロックを
符号化するステップと、 各データ・ブロックを、対応する符号化テーブルに関連
付けるインデックス・テーブルを生成するステップと、 前記符号化テーブルを復号化テーブルに変換するステッ
プと、 前記インデックス・テーブル、前記復号化テーブル、及
び前記符号化されたデータ・ブロックを含む圧縮された
ファイルを作成するステップと、 記憶媒体に前記ファイルを記憶するステップを含んでお
り、 符号化テーブルを生成する前記ステップが、さらに、 選択された共通の特性に従って前記データ・ブロックを
グループ化して、複数のデータ・クラスタを生成するス
テップと、 合計S = ST + SEが、最小になるように前記データ・
ブロックを前記データ・クラスタに割り当てるステップ
であって、STが符号化されたデータ・ブロックと共に記
憶された符号化テーブルのサイズを示し、SEが符号化
されたデータ・ブロックのサイズを示し、Sが圧縮され
たデータセットの合計サイズを示すことからなる、ステ
ップを含むことからなる、方法。 - 【請求項2】データ・ブロックと、対応する復号化テー
ブルを前記インデックス内に配置するステップと、 前記復号化テーブルに含まれる変換を前記データ・ブロ
ックに適用することによって、前記データ・ブロックを
ランダムかつ個別に復号化するステップと、 前記復号化されたデータ・ブロックを出力するステップ
を更に含む、請求項1の方法。 - 【請求項3】前記区分化するステップが、 各データ・ブロック内の可能な最大の列の一致に基づい
て、事象のシーケンスを生成するために、各データ・ブ
ロックを個別にパーズするステップを更に含む、請求項
1又は2の方法。 - 【請求項4】前記パーズするステップが、Lempel-Ziv方
法論を適用することからなる、請求項3の方法。 - 【請求項5】前記パーズするステップが、 より頻繁に発生する事象をより短いコードに、あまり頻
繁には発生しない事象をより長いコードに割り当てるよ
うに、前記事象を符号化するハフマン符号化を更に含
む、請求項3又は4の方法。 - 【請求項6】符号化テーブルを生成する前記ステップ
が、 各データ・ブロックを圧縮することによって得られる圧
縮率インデックスによって、前記データ・ブロックをソ
ートするステップと、 同様の圧縮率インデックスを有するデータ・ブロックを
クラスタ化するステップを更に含む、請求項1乃至5の
いずれかの方法。 - 【請求項7】前記データセットが更に、 複数の絵文字を含み、 符号化テーブルを生成する前記ステップが更に、 前記データセット内で、既知の形態的類似性を有する絵
文字をクラスタ化するステップを含む、請求項1乃至6
のいずれかの方法。 - 【請求項8】符号化テーブルを生成する前記ステップ
が、 前記データ・ブロックを部分集合に分割するステップ
と、 このように得られた部分集合の数を最適化するステップ
を更に含む、請求項1乃至7のいずれかの方法。 - 【請求項9】ファイルを作成する前記ステップによって
作成されるファイルが、 圧縮されたそれぞれのデータ・ブロック毎に1つのイン
デックス・レコードを含むインデックス・テーブルを有す
る圧縮されたファイル構造を有しており、 前記インデックス・レコードが、 データ・ブロックを含むクラスタに関連する復号化テー
ブルのアドレスと、 圧縮されたデータ・ブロックの開始アドレスと、 圧縮されたデータ・ブロックの長さのうちの任意のもの
を含むことからなる、請求項1乃至8のいずれかの方
法。 - 【請求項10】いくつかの短データ・ブロックからなる
データセットを復号化するステップをさらに含む、請求
項1乃至9のいずれかの方法であって、 前記データセットを復号化するステップが、 符号化されたデータ・ブロックと、対応する復号化テー
ブルとをインデックス内に配置するステップと、 復号化テーブルに含まれる変換を前記データ・ブロック
に適用することによって、前記データ・ブロックをラン
ダムかつ個別に復号化するステップと、 前記復号化されたデータ・ブロックを出力するステップ
を含むことからなる、方法。 - 【請求項11】幾つかの短ブロックのデータから成るデ
ータセットを符号化するための装置であって、 前記データセットを受け取るための入力手段と、 各データブロックが、データ・ブロックの特定のクラス
タに割り当てられるように前記データセットを区分化す
るための手段と、 各クラスタ毎に、前記データ・ブロックのバイナリ・コー
ドへの変換を指定する1組の符号化テーブルを生成する
ための手段と、 前記符号化テーブルに含まれる変換を前記データ・ブロ
ックに適用することによって、前記データ・ブロックを
符号化するための手段と、 各データ・ブロックを、対応する符号化テーブルに関連
付けるインデックス・テーブルを生成するための手段
と、 前記符号化テーブルから1組の復号化テーブルを生成す
るための手段と、 前記インデックス・テーブル、前記復号化テーブル、及
び前記符号化されたデータ・ブロックを含む圧縮された
ファイルを作成するための手段と、 記憶媒体に前記ファイルを記憶するための手段を備えて
おり、 インデックス・テーブルを生成するための前記手段が、
さらに、 選択された共通の特性に従って前記データ・ブロックを
グループ化して、複数のデータ・クラスタを生成するた
めの手段と、 合計S = ST + SEが、最小になるように前記データ・
ブロックを前記データ・クラスタに割り当てるための手
段であって、STが符号化されたデータ・ブロックと共に
記憶された符号化テーブルのサイズを示し、SEが符号
化されたデータ・ブロックのサイズを示し、Sが圧縮さ
れたデータセットの合計サイズを示すことからなる、手
段を備えることからなる、装置。 - 【請求項12】データ・ブロックと、対応する復号化テ
ーブルとを前記インデックス内に配置するための手段
と、 前記復号化テーブルに含まれる変換を前記データ・ブロ
ックに適用することによって、前記データ・ブロックを
ランダムかつ個別に復号化するための手段と、 前記復号化されたデータ・ブロックを出力するための手
段を更に備える、請求項11の装置。 - 【請求項13】前記区分化するための手段が、 各データ・ブロック内の可能な最大の列の一致に基づい
て、事象のシーケンスを生成するために、各データ・ブ
ロックを個別にパーズするための手段を更に備える、請
求項11又は12の装置。 - 【請求項14】前記パーズするための手段が、Lempel-Z
iv方法論を適用することからなる、請求項13の装置。 - 【請求項15】前記パーズするための手段が、 より頻繁に発生する事象をより短いコードに、あまり頻
繁には発生しない事象をより長いコードに割り当てるよ
うに、前記事象を符号化するためのハフマン・コーダを
更に備える、請求項13又は14の装置。 - 【請求項16】インデックス・テーブルを生成するため
の前記手段が、 各データ・ブロックを圧縮することによって得られた圧
縮率インデックスによって、前記データ・ブロックをソ
ートするための手段と、 同様の圧縮率インデックスを有するデータ・ブロックを
クラスタ化するための手段を更に備える、請求項11乃
至15のいずれかの装置。 - 【請求項17】前記データセットが更に、 複数の絵文字を含み、 インデックス・テーブルを生成するための前記手段が更
に、 前記データセット内で、既知の形態的類似性を有する絵
文字をクラスタ化するための手段を備える、請求項11
乃至16のいずれかの装置。 - 【請求項18】インデックス・テーブルを生成するため
の前記手段が、 前記データ・ブロックを部分集合に分割するための手段
と、 このように得られた部分集合の数を最適化するための手
段を更に備える、請求項11乃至17のいずれかの装
置。 - 【請求項19】ファイルを作成するための前記手段によ
って作成されるファイルが、 圧縮されたそれぞれのデータ・ブロック毎に1つのイン
デックス・レコードを含むインデックス・テーブルを有す
る圧縮されたファイル構造を有しており、 前記インデックス・レコードが、 データ・ブロックを含むクラスタに関連する復号化テー
ブルのアドレスと、 圧縮されたデータ・ブロックの開始アドレスと、 圧縮されたデータ・ブロックの長さのうちの任意のもの
を含むことからなる、請求項11乃至18のいずれかの
装置。 - 【請求項20】いくつかの短データ・ブロックからなる
データセットを復号化するための手段をさらに備える、
請求項11乃至19のいずれかの装置あって、 データセットを復号化するための前記手段が、 符号化されたデータ・ブロックと、対応する復号化テー
ブルとをインデックス内に配置するための手段と、 復号化テーブルに含まれる変換を前記データ・ブロック
に適用することによって、前記データ・ブロックをラン
ダムかつ個別に復号化するための手段と、 前記復号化されたデータ・ブロックを出力するための手
段を備えることからなる、装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/204,712 US5488365A (en) | 1994-03-01 | 1994-03-01 | Method and apparatus for compressing and decompressing short blocks of data |
US204712 | 1994-03-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07283739A JPH07283739A (ja) | 1995-10-27 |
JP3309031B2 true JP3309031B2 (ja) | 2002-07-29 |
Family
ID=22759115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03980695A Expired - Fee Related JP3309031B2 (ja) | 1994-03-01 | 1995-02-28 | 短ブロックのデータを圧縮、伸長するための方法、及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5488365A (ja) |
EP (1) | EP0673122B1 (ja) |
JP (1) | JP3309031B2 (ja) |
DE (1) | DE69523652T2 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69433620T2 (de) * | 1994-06-16 | 2004-08-12 | Seiko Epson Corp. | Datenkomprimierungsverfahren |
US5668970A (en) * | 1994-06-20 | 1997-09-16 | Cd Rom, U.S.A., Inc. | Method and apparatus for generating a file allocation table for a storage medium with no file allocation table using file storage information |
JP3509285B2 (ja) * | 1995-05-12 | 2004-03-22 | 富士通株式会社 | 圧縮データ管理方式 |
US5970177A (en) * | 1995-06-07 | 1999-10-19 | America Online, Inc. | Data compression using selective encoding |
US5659755A (en) * | 1995-11-20 | 1997-08-19 | International Business Machines Corporation | Method and system in a data processing system for efficiently compressing data using a sorting network |
JP3154393B2 (ja) * | 1995-11-28 | 2001-04-09 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
US6031622A (en) * | 1996-05-16 | 2000-02-29 | Agfa Corporation | Method and apparatus for font compression and decompression |
US5745058A (en) * | 1996-10-21 | 1998-04-28 | International Business Machines Corporation | Method and system for compressing microcode to be executed within a data processing system |
US6092168A (en) * | 1996-10-25 | 2000-07-18 | Hewlett-Packard Co. | Data storage system and method for deallocating space by writing and detecting a predefined data pattern |
US5945933A (en) * | 1998-01-27 | 1999-08-31 | Infit Ltd. | Adaptive packet compression apparatus and method |
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 |
US6624761B2 (en) | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
US6604158B1 (en) | 1999-03-11 | 2003-08-05 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
US6601104B1 (en) * | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
US6992671B1 (en) * | 1999-12-09 | 2006-01-31 | Monotype Imaging, Inc. | Method and apparatus for compressing Bezier descriptions of letterforms in outline fonts using vector quantization techniques |
US6748457B2 (en) * | 2000-02-03 | 2004-06-08 | Realtime Data, Llc | Data storewidth accelerator |
US20030191876A1 (en) * | 2000-02-03 | 2003-10-09 | Fallon James J. | Data storewidth accelerator |
US9143546B2 (en) | 2000-10-03 | 2015-09-22 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US8692695B2 (en) | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US7386046B2 (en) * | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
US20020118885A1 (en) * | 2001-02-27 | 2002-08-29 | Bernard Smeets | Font compression and retrieval |
US6756922B2 (en) * | 2001-05-21 | 2004-06-29 | International Business Machines Corporation | Method and system for compression of a set of mostly similar strings allowing fast retrieval |
US20060190643A1 (en) * | 2004-04-26 | 2006-08-24 | Storewiz, Inc. | Method and system for compression of data for block mode access storage |
US7424482B2 (en) | 2004-04-26 | 2008-09-09 | Storwize Inc. | Method and system for compression of data for block mode access storage |
WO2005103878A2 (en) * | 2004-04-26 | 2005-11-03 | Storewiz, Inc. | Method and system for compression of files for storage and operation on compressed files |
US8327050B2 (en) * | 2005-04-21 | 2012-12-04 | International Business Machines Corporation | Systems and methods for compressing files for storage and operation on compressed files |
FI20050590A0 (fi) * | 2005-06-03 | 2005-06-03 | Nokia Corp | Sanakirjaperusteinen tiivistys ja lavennus |
SE530081C2 (sv) * | 2005-10-24 | 2008-02-26 | Algotrim Ab | Metod och system för datakomprimering |
CN101346883A (zh) * | 2005-10-26 | 2009-01-14 | 斯多维兹有限公司 | 用于块模式访问存储的数据压缩的方法和*** |
JP4493614B2 (ja) * | 2006-03-14 | 2010-06-30 | シャープ株式会社 | 解析結果情報圧縮プログラム、解析結果情報展開プログラム、解析結果情報圧縮プログラムが格納された記憶媒体、解析結果情報展開プログラムが格納された記憶媒体、解析結果情報圧縮装置、解析結果情報展開装置、解析結果情報圧縮方法、および解析結果情報展開方法 |
US9418450B2 (en) | 2006-08-31 | 2016-08-16 | Ati Technologies Ulc | Texture compression techniques |
FR2924563B1 (fr) * | 2007-11-29 | 2013-05-24 | Canon Kk | Procedes et dispositifs de codage et de decodage de signaux numeriques |
US20100281207A1 (en) * | 2009-04-30 | 2010-11-04 | Miller Steven C | Flash-based data archive storage system |
US9277234B1 (en) * | 2014-08-27 | 2016-03-01 | Adobe Systems Incorporated | Common copy compression |
US11086843B2 (en) | 2017-10-19 | 2021-08-10 | Adobe Inc. | Embedding codebooks for resource optimization |
US10942914B2 (en) | 2017-10-19 | 2021-03-09 | Adobe Inc. | Latency optimization for digital asset compression |
US11120363B2 (en) | 2017-10-19 | 2021-09-14 | Adobe Inc. | Latency mitigation for encoding data |
US11403043B2 (en) * | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4079458A (en) * | 1976-08-11 | 1978-03-14 | Xerox Corporation | High resolution character generator |
US4152697A (en) * | 1976-08-11 | 1979-05-01 | Xerox Corporation | Parallel run-length decoder |
CA2002015C (en) * | 1988-12-30 | 1994-12-27 | Joseph Lindley Ii Hall | Perceptual coding of audio signals |
JP3224813B2 (ja) * | 1990-01-19 | 2001-11-05 | ヒューレット・パッカード・リミテッド | 圧縮データ・アクセス |
JP3083344B2 (ja) * | 1990-05-25 | 2000-09-04 | ヒューレット・パッカード・カンパニー | データの圧縮及び圧縮解除方法 |
US5150430A (en) * | 1991-03-15 | 1992-09-22 | The Board Of Trustees Of The Leland Stanford Junior University | Lossless data compression circuit and method |
US5245614A (en) * | 1991-04-29 | 1993-09-14 | Codex Corporation | Vocabulary memory allocation for adaptive data compression of frame-multiplexed traffic |
US5396595A (en) * | 1992-04-24 | 1995-03-07 | Spacelabs Medical, Inc. | Method and system for compression and decompression of data |
-
1994
- 1994-03-01 US US08/204,712 patent/US5488365A/en not_active Expired - Lifetime
-
1995
- 1995-02-28 DE DE69523652T patent/DE69523652T2/de not_active Expired - Fee Related
- 1995-02-28 EP EP95301281A patent/EP0673122B1/en not_active Expired - Lifetime
- 1995-02-28 JP JP03980695A patent/JP3309031B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0673122A2 (en) | 1995-09-20 |
DE69523652T2 (de) | 2002-05-08 |
US5488365A (en) | 1996-01-30 |
EP0673122A3 (en) | 1996-07-17 |
JPH07283739A (ja) | 1995-10-27 |
DE69523652D1 (de) | 2001-12-13 |
EP0673122B1 (en) | 2001-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3309031B2 (ja) | 短ブロックのデータを圧縮、伸長するための方法、及び装置 | |
JP5895545B2 (ja) | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 | |
US6597812B1 (en) | System and method for lossless data compression and decompression | |
US8838551B2 (en) | Multi-level database compression | |
JP2581903B2 (ja) | バイト整列式データ圧縮方法及び装置 | |
EP0584992B1 (en) | Text compression technique using frequency ordered array of word number mappers | |
JP4261779B2 (ja) | データ圧縮装置および方法 | |
US20140218220A1 (en) | Data compression systems and methods | |
US7511638B2 (en) | Data compression for communication between two or more components in a system | |
WO1994022072A1 (en) | Information processing using context-insensitive parsing | |
JP2001526853A (ja) | データ符号化ネットワーク | |
JP3083730B2 (ja) | データ情報を圧縮するためのシステムおよび方法 | |
JP3302210B2 (ja) | データ符号化/復号化方法及び装置 | |
US5760716A (en) | Vector data compression | |
US20090015444A1 (en) | Data compression for communication between two or more components in a system | |
US9665590B2 (en) | Bitmap compression for fast searches and updates | |
US5815096A (en) | Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure | |
JP2004525537A (ja) | ハフマン・コード長情報を生成する方法 | |
US7348901B2 (en) | Method and system for decoding variable length encoded signals, computer program product therefor | |
US20220085827A1 (en) | Data compression method, data compression device, data decompression method, and data decompression device | |
US7924179B2 (en) | Variable-length code determining device and variable-length code decoding method | |
WO2002039591A1 (en) | Content independent data compression method and system | |
JP2536422B2 (ja) | デ―タ圧縮装置及びデ―タ復元装置 | |
US20220199202A1 (en) | Method and apparatus for compressing fastq data through character frequency-based sequence reordering | |
CN115934730A (zh) | 数据处理方法和装置、介质和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020416 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |