JPH11145849A - 符号化方法及びデータ圧縮器 - Google Patents

符号化方法及びデータ圧縮器

Info

Publication number
JPH11145849A
JPH11145849A JP10229592A JP22959298A JPH11145849A JP H11145849 A JPH11145849 A JP H11145849A JP 10229592 A JP10229592 A JP 10229592A JP 22959298 A JP22959298 A JP 22959298A JP H11145849 A JPH11145849 A JP H11145849A
Authority
JP
Japan
Prior art keywords
literal
history buffer
data
pointer
string
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.)
Granted
Application number
JP10229592A
Other languages
English (en)
Other versions
JP3141002B2 (ja
Inventor
David J Craft
デビット・ジェイ・クラフト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11145849A publication Critical patent/JPH11145849A/ja
Application granted granted Critical
Publication of JP3141002B2 publication Critical patent/JP3141002B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; 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

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)

Abstract

(57)【要約】 【課題】 データを圧縮するための改善された方法及び
装置を提供すること。 【解決手段】 原始記号の入力データ・ストリームを符
号化し、ポインタの出力シーケンスを生成する方法が開
示される。入力データ・ストリーム内のリテラル・スト
リングが最初に履歴バッファにロードされる。履歴バッ
ファ・ポインタの値がレジスタに複写され、履歴バッフ
ァ内のリテラル・ストリングの開始位置を示す。入力デ
ータ・ストリームからの続く各リテラル記号に対してカ
ウンタが増分される。次に、リテラル・ストリング及び
入力データ・ストリームからの続く各リテラル記号が、
レジスタ内の値及びカウンタ内の値をリテラル・ポイン
タとして使用することにより、符号化される。最後に、
リテラル・ポインタがデータ圧縮器から出力される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、データを圧
縮する方法及び装置に関し、特に、適応データ圧縮を実
行する方法及び装置に関する。更に詳細には、本発明は
Lempel-Ziv1変形を符号化する方法及び装置に関する。
【0002】関連出願:本願は、1997年9月19日
出願の継続中の米国特許出願第934234号、"METHO
D AND APPARATUS FOR PERFORMING ADAPTIVE DATA COMPR
ESSION"(出願人整理番号:AT997723)と関連
する。
【0003】
【従来の技術】コンピュータ及びワークステーションに
おいて情報を表すために使用されるデジタル・データの
量は、これらのデータが記憶または伝送の間に圧縮さ
れ、伸張されなければならないスピード同様、データ圧
縮に関連する技術において、多大な関心を駆り立てた。
極めて一般的となったデータ圧縮アルゴリズムは、最初
にJ.Ziv及びA.Lempelによる論文、"A Universal Algo
rithm for Sequential Data Compression"(IEEE Trans
actions on Information Theory、vol.IT-23、no.3、
pp.337-343、1977)で述べられた。このデータ圧縮ア
ルゴリズムは、一般に、LZ_1アルゴリズムと呼ばれ
る。元のLZ_1アルゴリズムはそれ以来、たくさんの
研究者により様々な面で改良された。これらのいわゆる
LZ_1変形の例が、米国特許第5003307号及び
同第5146221号で見い出される。
【0004】Lempel-Ziv 1変形の他の例には、適応無損
失データ圧縮(ALDC:AdaptiveLossless Data Comp
ression)があり、これはコンピュータ及び関連周辺装
置内において、汎用データ圧縮のために広く使用されて
いる。ALDCについては、"QIC Development Standar
d QIC-154"、Rev.A、10 Mar 94、Quarter-Inch Cartrid
ge Drive Standards,Inc.で詳細に述べられている。
【0005】これらの及び他のLZ_1変形を特徴付け
る基本概念は、履歴バッファの使用により新たなデータ
を記憶し、任意の以前に受信され処理されたデータに合
致する新たなデータ・ストリングを識別することであ
る。既存のストリングに合致する新たなデータ・ストリ
ング(通常は英数字)が、単に履歴バッファ内のストリ
ング・シーケンスの以前のポイントでのオフセット(ま
たは変位)及び長さを参照することにより識別され得
る。LZ_1アルゴリズムは適応型である。なぜなら、
各新たなデータ・バイトが履歴バッファ内に順番に入力
され、履歴バッファがフルになると、最も古い記憶バイ
トを置換するからである。従って、履歴バッファのサイ
ズは、データ・ストリームに渡るスライディング・ウィ
ンドウに類似し、そこでは新たなデータ文字が常に、ウ
ィンドウの長さ内の以前に受信された文字と比較され
る。符号化出力は、圧縮が可能でないリテラル・データ
(LITERAL_DATA)、またはウィンドウ内の既存のマッチ
ング文字ストリングを識別する長さ及びオフセットを提
供する複写ポインタ(COPY_POINTER)の混合である。予
想されるように、このアルゴリズムはウィンドウのサイ
ズが増加し、ウィンドウ内のデータ文字内でのパターン
の繰り返しが増加するほど、益々有効となる。
【0006】本開示は、これらのLempel-Ziv1変形を符
号化する改善された方法及び装置について述べるもので
ある。
【0007】
【発明が解決しようとする課題】従って、本発明の目的
は、データを圧縮するための改善された方法及び装置を
提供することにある。
【0008】本発明の別の目的は、適応データ圧縮を実
行する改善された方法及び装置を提供することにある。
【0009】更に本発明の別の目的は、Lempel-Ziv1ク
ラス圧縮アルゴリズムの出力を符号化する改善された方
法及び装置を提供することにある。
【0010】
【課題を解決するための手段】本発明の方法によれば、
入力データ・ストリーム内のリテラル・ストリングが、
履歴バッファにロードされる。履歴バッファ・ポインタ
の値がレジスタに複写され、履歴バッファ内のリテラル
・ストリングの開始位置を示す。入力データ・ストリー
ムからの続く各リテラル記号に対してカウンタが増分さ
れる。次に、リテラル・ストリング及び入力データ・ス
トリームからの続く各リテラル記号が、レジスタ内の値
及びカウンタ内の値をリテラル・ポインタとして使用す
ることにより符号化される。最後にリテラル・ポインタ
がデータ圧縮器から出力される。
【0011】
【発明の実施の形態】本発明はデータ圧縮器及びデータ
伸張器内で実現され得る。当業者であれば、本発明がハ
ードウェアまたはソフトウェアのいずれかにより実現さ
れ得ることが理解できよう。
【0012】I.符号器及び復号器 図1を参照すると、本発明の好適な実施例が組み込まれ
得るデータ圧縮ユニットのブロック図が示される。図示
のように、圧縮ユニット10は、制御装置11及びラン
ダム・アクセス・メモリ(RAM)または連想記憶装置
(CAM)12に接続される。履歴バッファなどの、圧
縮アルゴリズムに関連付けられる全てのデータ構造は、
RAM/CAM12内に保持される。それ自体、RAM
/CAM12の最適サイズは、履歴バッファのサイズに
大きく依存する。動作中、最初に非圧縮データ・ストリ
ームが圧縮ユニット10により、データ送信装置13か
ら受信される。データ符号化の後、圧縮されたデータ・
ストリームが、次にデータ受信装置14に伝送される。
【0013】圧縮ユニット10は非圧縮データ・ストリ
ームを一度に1データ・バイト処理する。各処理された
データ・バイトは順次履歴バッファ内に複写され、履歴
バッファが既にフルの場合、最も古いデータ・バイトを
置換する。従って、最も最近のデータ・バイトの順次複
写が、常に履歴バッファ内で使用可能となる。
【0014】圧縮プロセスは、入来データ・ストリーム
の調査を含み、履歴バッファ内に既に存在する任意のシ
ーケンスまたはデータ・バイトのストリングを識別す
る。データ・バイトの同一のストリングが履歴バッファ
内で使用可能な場合、データ・バイトのこのマッチング
・ストリングが、バイト・カウント及び履歴バッファ内
の変位を含む、2要素複写ポインタとして符号化され
る。従って、データ・バイトのストリングが複写ポイン
タにより、通常、要求されるよりも少ないビット情報で
符号化され得るとき、圧縮が達成される。しかしなが
ら、入来データ・バイトが履歴バッファ内の任意のデー
タ・バイトに合致しない場合、この入来データ・バイト
は、そのデータ・バイトを明示的に表すリテラルとして
符号化される。
【0015】図2を参照すると、本発明の好適な実施例
が組み込まれ得るデータ伸張ユニットのブロック図が示
される。図示のように、伸張ユニット15は制御装置1
6及びRAM/CAM17に接続される。RAM/CA
M12同様、伸張ユニット15の全てのデータ構造は、
RAM/CAM17内に保持される。動作中、圧縮され
たデータ・ストリームが、最初に伸張ユニット15によ
りデータ送信装置19から受信される。データ復号の
後、圧縮解除されたデータ・ストリームが、伸張ユニッ
ト15からデータ受信装置18に伝送される。伸張ユニ
ット15は、最初に圧縮データ・ストリームをリテラル
及び複写ポインタに分析することにより、圧縮ユニット
10の逆の操作を実行する。
【0016】他方、複写ポインタは、最初に指定バイト
・カウント及び複写ポインタの変位を復号することによ
り処理される。続いて、データ・バイト値のこのストリ
ングが、伸張ユニット15内の履歴バッファから一度に
1バイト読出される。各データ・バイト値が次に履歴バ
ッファ内に複写され、復号データ・バイトとして出力さ
れ、その後、次のデータ・バイト値がアクセスされる。
データ・バイトの全部のストリングがこのように処理さ
れると、伸張ユニット15内の履歴バッファは、圧縮ユ
ニット10内の履歴バッファと同一になる。
【0017】II.符号化方式 本発明の好適な実施例として、圧縮ユニット10内の履
歴バッファは、リテラル・データのためのバッファとし
ても使用される。従来のLZ_1アルゴリズムでは、デ
ータは一度に1記号(または大抵のLZ_1変形の場
合、通常1バイト)処理される。処理された各記号は、
次の記号が調査される以前に、履歴バッファに記憶され
る。高速連想記憶装置(CAM)ベースの実施例では、
CAMが各入来データ・バイトの探索及び書込みを実行
するように構成され得る。入来データ・バイト記号がC
AMの現履歴バッファ更新位置に書込まれ、同時に新た
なマッチング・ストリングの開始か、または既存のスト
リング・マッチング操作の継続かがテストされる。各非
マッチング・ストリング記号に遭遇するとき、これは新
たなマッチング・ストリングの開始でもなく、従ってリ
テラル・データ・ストリングに蓄積され、後に符号化さ
れ、出力される。
【0018】リテラル・データはバッファ内に保持さ
れ、使用されるカウント・コードの上限に達するとき、
または複写ポインタが次に使用されなければならない、
入来データのストリング・マッチが発生する場合、記号
カウント・コードを含む新たな種類のリテラル・ポイン
タが出力され、リテラル・データ・ストリングがそれに
続き、このバッファを空にする。
【0019】本発明は履歴バッファ自身を、リテラル・
データ用のバッファとして使用するので、記号カウント
・コードが履歴バッファの全体サイズまでのリテラル・
データの蓄積を可能にするように拡張され、こうした大
きな別のバッファを設ける必要性によるハードウェア障
害が存在しない。
【0020】記号カウント・コード・フィールドは固定
長フィールド、例えば2ビット・フィールドであり、こ
れは最悪ケースのデータ拡張を約2/3低減する、すな
わち最大約8%に低減する効果を有する。別の実施例で
は、複写ポインタ・カウント・フィールドが可変長であ
り、例えばALDCアルゴリズムにおいて、複写ポイン
タ長符号化のために使用されるのと同一の可変長コード
を使用してもよい。この実施例では、同一の2ビット長
が小さな値に対して使用されるが、最大269までの値
に対して12ビットに増加され得る。このことはリテラ
ル・データ拡張を約0.6%に低減する。
【0021】リテラル・データ・ストリングの第1の記
号が処理されるとき、レジスタに現履歴バッファ位置値
がロードされる。この時、連続リテラル・データ記号の
数を追跡するために使用されるカウンタが1にセットさ
れる。リテラル・データの蓄積が1記号単位で継続し、
これは新たなマッチング・ストリングの開始により、ま
たはリテラル・データが十分に長くなり、履歴バッファ
を循環して、履歴バッファ内の開始位置を上書きしよう
とするとき、終了される。蓄積プロセスは、一旦履歴バ
ッファ位置アドレスが捕獲されると、各追加のリテラル
・データ記号に対してこのカウンタを1増分することを
要求するだけである。
【0022】リテラル・データ・ストリングの終了が発
生すると、圧縮器は最初に記号カウント値を符号化して
出力し、それに続き、履歴バッファから既に記録された
履歴バッファ位置アドレスで開始し、記号カウントに等
しい数の記号が複写される。これが要求されるリテラル
・データ・ストリングである。
【0023】記号カウントの最適なコードの選択は、履
歴バッファのサイズ及びデータ統計に依存するが、10
24記号の履歴バッファ・サイズの場合のコード例を表
1に示す。
【表1】
【0024】数バイトのリテラル・データの小さなスト
リングの場合、短い2ビット・コード若しくは4ビット
・コードが、既存のLZ_1アルゴリズムに類似の拡張
を提供するが、非常に大きなリテラル・データ・ストリ
ングの場合には、12ビット・コードは(1023+
1.5)/1023すなわち0.15%の拡張しか提供
しない。なぜなら、1.5バイトの記号カウントが10
23バイト毎に挿入されなければならないからである。
リテラル・データ・ストリングが非効率的に符号化され
る病状的ケースが存在するが、これらのリテラル・デー
タ・ストリングは、常に特定の圧縮を果たす複写ポイン
タにより分離される。
【0025】例えば、2バイトのリテラル・データ・ス
トリングが、ALDC形式により符号化される2バイト
の複写ポインタと交互する、最悪なケースについて考え
てみよう。符号化により、ここでは4ビットの記号カウ
ント、16ビットのリテラル・データ・フィールド、次
に12ビットの複写ポインタが生成され、複写ポインタ
は2ビットのカウンタ・フィールド及び10ビットの変
位を含む(フラグ・ビットは存在しない)。この場合、
4バイトを合計32ビットにより符号化することにな
り、従って拡張は存在しない。
【0026】III.実施例 図3を参照すると、本発明の好適な実施例に従う、リテ
ラル・データ・ストリングの符号化方式のハイレベル擬
似コードが示される。この実施例では、例えば、リテラ
ル・データ・カウンタ(L_CTR)、リテラル・ポインタ
・レジスタ(L_PTR)、複写ポインタ・カウンタ(C_CT
R)、及び履歴書込みポインタ・レジスタ(W_PTR)が使
用される。いずれにしても、通常、複写ポインタ・カウ
ンタ及び履歴書込みポインタ・レジスタは圧縮器により
使用される。従ってほとんどの場合、リテラル・データ
・カウンタ及びリテラル・ポインタ・レジスタの追加だ
けが要求される。
【0027】本発明の好適な実施例として、圧縮器の操
作を次に示す。データ・バイトの入力後、W_PTRが増分
される。W_PTRが履歴バッファのサイズに等しい場合、W
_PTR値が0にセットされる。続いて、W_PTRを履歴バッ
ファへの指標として使用することにより、データ・バイ
トが履歴バッファに記憶される。次に、入力データ・バ
イトがリテラルか、新たなマッチの開始か、それとも既
存のマッチの終了(可能な新たなマッチの開始の有無を
伴う)かが判断される。最後に、リテラル・データまた
は複写ポインタが適宜挿入され、次のバイトが入力され
る。
【0028】リテラル・データの場合、L_CTR値が0に
等しいと、ステップ1)に移行し、それ以外ではステッ
プ2)に移行する。ステップ1)では、W_PTR値がL_PTR
にセットされ、C_CTRが1に等しいと、W_PTRが以前の値
に修正され、L_CTRが1にセットされる。
【0029】ステップ2)では、L_CTRが増分され、L_C
TRがMAXIMUMに等しいと、ステップ3)に移行
し、それ以外では、符号化が完了する。ステップ3)で
は、符号化を実行し、最大L_CTR値を出力し、ステップ
4)に移行する。
【0030】ステップ4)では、L_PTRを履歴バッファ
への指標として使用することにより、データ・バイトが
履歴バッファから獲得される。データ・バイトが次に出
力され、L_PTRが1増分される。L_PTRが履歴サイズ(HI
STORY_SIZE)に等しいと、L_PTRを0にセットし、次にL
_CTRが1減分される。L_CTRが1よりも大きいと、ステ
ップ4)に移行する。それ以外では、符号化が完了す
る。
【0031】複写ポインタの場合、符号化を実行し、L_
CTR値を出力する。L_CTR値が0よりも大きいと、ステッ
プ5)に移行し、それ以外ではステップ6)に移行す
る。ステップ5)では、L_PTRを履歴バッファへの指標
として使用することにより、データ・バイトが履歴バッ
ファから獲得される。次に、データ・バイトが出力さ
れ、L_PTRが1増分される。L_PTRが履歴サイズに等しい
と、L_PTRを0にセットし、次にL_CTRを1減分する。L_
CTRが1よりも大きいと、ステップ5)に移行する。そ
れ以外では、ステップ6)に移行する。
【0032】ステップ6)では、複写ポインタが符号化
され、符号化プロセスが完了する。
【0033】以上述べたように、本発明は、圧縮ユニッ
ト内で適応データ圧縮を効率的に実行するための、改善
された方法及び装置を提供する。本発明によれば、出力
が主にリテラル・データを含むときに発生する最悪ケー
スのデータ拡張が、多大に低減され得る。
【0034】更に、上述の符号化方式によれば、ランダ
ム・データまたは非圧縮データに対する固有の拡張が、
リテラル・データ及び複写ポインタを区別するためのフ
ラグ・ビットの使用を排除することにより低減され得
る。更に、余分なコストの追加無しに、必要なバッファ
リングの提供のために履歴バッファを使用することによ
り、ハードウェア・コストが低減される。この符号化方
式に従う伸張器は、いかなる追加のバッファリングも要
求しない。
【0035】また、重要な点として、本発明はハードウ
ェア圧縮器の状況において述べられてきたが、当業者で
あれば、本発明の機構がソフトウェアによっても実現さ
れ、プログラム製品として様々な形態で配布され得るこ
と、及び本発明が、配布を実際に担う特定のタイプの信
号担持媒体に関係無しに、当てはまることが理解できよ
う。こうした信号担持媒体の例には、フロッピー・ディ
スクやCD−ROMなどの記録式タイプの媒体、及びア
ナログまたはデジタル通信リンクなどの伝送タイプの媒
体が含まれる。
【0036】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0037】(1)データ圧縮器内の履歴バッファを使
用することにより、原始記号の入力データ・ストリーム
を符号化し、ポインタの出力シーケンスを生成する符号
化方法であって、前記入力データ・ストリーム内のリテ
ラル・ストリングを前記履歴バッファにロードするステ
ップと、履歴バッファ・ポインタの値をレジスタに複写
することにより、前記履歴バッファ内の前記リテラル・
ストリングの開始位置を示すステップと、前記入力デー
タ・ストリームからの続く各リテラル記号に対して、カ
ウンタを増分するステップと、前記レジスタ内の値及び
前記カウンタ内の値をリテラル・ポインタとして使用す
ることにより、前記リテラル・ストリング、及び前記入
力データ・ストリームからの続く前記の各リテラル記号
を符号化するステップと、前記リテラル・ポインタを前
記データ圧縮器から出力するステップと、を含む、符号
化方法。 (2)前記リテラル・ポインタが記号カウント・コー
ド、及びそれに続く対応する数のリテラル・データ記号
を含む、前記(1)記載の符号化方法。 (3)前記記号カウントが固定長または可変長である、
前記(1)記載の符号化方法。 (4)前記カウンタが前記履歴バッファのサイズまでカ
ウントできる、前記(1)記載の符号化方法。 (5)履歴バッファを使用することにより、原始記号の
入力データ・ストリームを符号化し、ポインタの出力シ
ーケンスを生成するデータ圧縮器であって、前記入力デ
ータ・ストリーム内のリテラル・ストリングを前記履歴
バッファにロードする手段と、履歴バッファ・ポインタ
の値をレジスタに複写することにより、前記履歴バッフ
ァ内の前記リテラル・ストリングの開始位置を示す手段
と、前記入力データ・ストリームからの続く各リテラル
記号に対して、カウンタを増分する手段と、前記レジス
タ内の値及び前記カウンタ内の値をリテラル・ポインタ
として使用することにより、前記リテラル・ストリン
グ、及び前記入力データ・ストリームからの続く前記の
各リテラル記号を符号化する手段と、前記リテラル・ポ
インタを前記データ圧縮器から出力する手段と、を含
む、データ圧縮器。 (6)前記リテラル・ポインタが記号カウント・コー
ド、及びそれに続く対応する数のリテラル・データ記号
を含む、前記(5)記載のデータ圧縮器。 (7)前記記号カウントが固定長または可変長である、
前記(5)記載のデータ圧縮器。 (8)前記カウンタが前記履歴バッファのサイズまでカ
ウントできる、前記(5)記載のデータ圧縮器。 (9)履歴バッファを使用することにより、原始記号の
入力データ・ストリームを符号化し、ポインタの出力シ
ーケンスを生成するプログラム・ソフトウェア製品であ
って、前記入力データ・ストリーム内のリテラル・スト
リングを前記履歴バッファにロードするプログラム・コ
ード手段と、履歴バッファ・ポインタの値をレジスタに
複写することにより、前記履歴バッファ内の前記リテラ
ル・ストリングの開始位置を示すプログラム・コード手
段と、前記入力データ・ストリームからの続く各リテラ
ル記号に対して、カウンタを増分するプログラム・コー
ド手段と、前記レジスタ内の値及び前記カウンタ内の値
をリテラル・ポインタとして使用することにより、前記
リテラル・ストリング、及び前記入力データ・ストリー
ムからの続く前記の各リテラル記号を符号化するプログ
ラム・コード手段と、前記リテラル・ポインタを前記デ
ータ圧縮器から出力するプログラム・コード手段と、を
含む、プログラム・ソフトウェア製品。 (10)前記リテラル・ポインタが記号カウント・コー
ド、及びそれに続く対応する数のリテラル・データ記号
を含む、前記(9)記載のプログラム・ソフトウェア製
品。 (11)前記記号カウントが固定長または可変長であ
る、前記(9)記載のプログラム・ソフトウェア製品。 (12)前記カウンタが前記履歴バッファのサイズまで
カウントできる、前記(9)記載のプログラム・ソフト
ウェア製品。
【図面の簡単な説明】
【図1】本発明の好適な実施例が組み込まれ得る圧縮ユ
ニットのブロック図である。
【図2】本発明の好適な実施例が組み込まれ得るデータ
伸張ユニットのブロック図である。
【図3】本発明の好適な実施例に従う、リテラル・デー
タ・ストリングの符号化方式のハイレベル擬似コードを
示す図である。
【符号の説明】
10 圧縮ユニット 11、16 制御装置 12、17 ランダム・アクセス・メモリ(RAM)ま
たは連想記憶装置(CAM) 13、19 データ送信装置 14、18 データ受信装置 15 伸張ユニット

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】データ圧縮器内の履歴バッファを使用する
    ことにより、原始記号の入力データ・ストリームを符号
    化し、ポインタの出力シーケンスを生成する符号化方法
    であって、 前記入力データ・ストリーム内のリテラル・ストリング
    を前記履歴バッファにロードするステップと、 履歴バッファ・ポインタの値をレジスタに複写すること
    により、前記履歴バッファ内の前記リテラル・ストリン
    グの開始位置を示すステップと、 前記入力データ・ストリームからの続く各リテラル記号
    に対して、カウンタを増分するステップと、 前記レジスタ内の値及び前記カウンタ内の値をリテラル
    ・ポインタとして使用することにより、前記リテラル・
    ストリング、及び前記入力データ・ストリームからの続
    く前記の各リテラル記号を符号化するステップと、 前記リテラル・ポインタを前記データ圧縮器から出力す
    るステップと、 を含む、符号化方法。
  2. 【請求項2】前記リテラル・ポインタが記号カウント・
    コード、及びそれに続く対応する数のリテラル・データ
    記号を含む、請求項1記載の符号化方法。
  3. 【請求項3】前記記号カウントが固定長または可変長で
    ある、請求項1記載の符号化方法。
  4. 【請求項4】前記カウンタが前記履歴バッファのサイズ
    までカウントできる、請求項1記載の符号化方法。
  5. 【請求項5】履歴バッファを使用することにより、原始
    記号の入力データ・ストリームを符号化し、ポインタの
    出力シーケンスを生成するデータ圧縮器であって、 前記入力データ・ストリーム内のリテラル・ストリング
    を前記履歴バッファにロードする手段と、 履歴バッファ・ポインタの値をレジスタに複写すること
    により、前記履歴バッファ内の前記リテラル・ストリン
    グの開始位置を示す手段と、 前記入力データ・ストリームからの続く各リテラル記号
    に対して、カウンタを増分する手段と、 前記レジスタ内の値及び前記カウンタ内の値をリテラル
    ・ポインタとして使用することにより、前記リテラル・
    ストリング、及び前記入力データ・ストリームからの続
    く前記の各リテラル記号を符号化する手段と、 前記リテラル・ポインタを前記データ圧縮器から出力す
    る手段と、 を含む、データ圧縮器。
  6. 【請求項6】前記リテラル・ポインタが記号カウント・
    コード、及びそれに続く対応する数のリテラル・データ
    記号を含む、請求項5記載のデータ圧縮器。
  7. 【請求項7】前記記号カウントが固定長または可変長で
    ある、請求項5記載のデータ圧縮器。
  8. 【請求項8】前記カウンタが前記履歴バッファのサイズ
    までカウントできる、請求項5記載のデータ圧縮器。
  9. 【請求項9】履歴バッファを使用することにより、原始
    記号の入力データ・ストリームを符号化し、ポインタの
    出力シーケンスを生成するプログラム・ソフトウェア製
    品であって、 前記入力データ・ストリーム内のリテラル・ストリング
    を前記履歴バッファにロードするプログラム・コード手
    段と、 履歴バッファ・ポインタの値をレジスタに複写すること
    により、前記履歴バッファ内の前記リテラル・ストリン
    グの開始位置を示すプログラム・コード手段と、 前記入力データ・ストリームからの続く各リテラル記号
    に対して、カウンタを増分するプログラム・コード手段
    と、 前記レジスタ内の値及び前記カウンタ内の値をリテラル
    ・ポインタとして使用することにより、前記リテラル・
    ストリング、及び前記入力データ・ストリームからの続
    く前記の各リテラル記号を符号化するプログラム・コー
    ド手段と、 前記リテラル・ポインタを前記データ圧縮器から出力す
    るプログラム・コード手段と、 を含む、プログラム・ソフトウェア製品。
  10. 【請求項10】前記リテラル・ポインタが記号カウント
    ・コード、及びそれに続く対応する数のリテラル・デー
    タ記号を含む、請求項9記載のプログラム・ソフトウェ
    ア製品。
  11. 【請求項11】前記記号カウントが固定長または可変長
    である、請求項9記載のプログラム・ソフトウェア製
    品。
  12. 【請求項12】前記カウンタが前記履歴バッファのサイ
    ズまでカウントできる、請求項9記載のプログラム・ソ
    フトウェア製品。
JP10229592A 1997-09-19 1998-08-14 符号化方法及びデータ圧縮器 Expired - Fee Related JP3141002B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/934,387 US5874908A (en) 1997-09-19 1997-09-19 Method and apparatus for encoding Lempel-Ziv 1 variants
US08/934387 1997-09-19

Publications (2)

Publication Number Publication Date
JPH11145849A true JPH11145849A (ja) 1999-05-28
JP3141002B2 JP3141002B2 (ja) 2001-03-05

Family

ID=25465485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10229592A Expired - Fee Related JP3141002B2 (ja) 1997-09-19 1998-08-14 符号化方法及びデータ圧縮器

Country Status (7)

Country Link
US (1) US5874908A (ja)
EP (1) EP0903865A1 (ja)
JP (1) JP3141002B2 (ja)
KR (1) KR100314419B1 (ja)
MY (1) MY116715A (ja)
SG (1) SG65785A1 (ja)
TW (1) TW592410U (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190284B1 (en) 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US6819271B2 (en) 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US7538694B2 (en) * 1999-01-29 2009-05-26 Mossman Holdings Llc Network device with improved storage density and access speed using compression techniques
US6208273B1 (en) 1999-01-29 2001-03-27 Interactive Silicon, Inc. System and method for performing scalable embedded parallel data compression
US6885319B2 (en) * 1999-01-29 2005-04-26 Quickshift, Inc. System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US7129860B2 (en) * 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6822589B1 (en) 1999-01-29 2004-11-23 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
DE10131801B4 (de) * 2001-06-30 2013-03-07 Robert Bosch Gmbh Verfahren zur Datenkompression und Navigationssystem
GB0210604D0 (en) * 2002-05-09 2002-06-19 Ibm Method and arrangement for data compression
KR100959489B1 (ko) 2003-04-04 2010-05-26 주식회사 케이티 데이터 사전 관리를 통한 데이터 압축 및 복원 방법
US7417570B2 (en) * 2006-07-31 2008-08-26 Sap Ag Lossless comparative compression and transmission method and system
US8238677B2 (en) * 2008-03-07 2012-08-07 International Business Machines Corporation Adaptive lossless data compression method for compression of color image data
US8400335B2 (en) * 2011-07-21 2013-03-19 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US8669889B2 (en) * 2011-07-21 2014-03-11 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US8692696B2 (en) 2012-01-03 2014-04-08 International Business Machines Corporation Generating a code alphabet of symbols to generate codewords for words used with a program
US9325813B2 (en) * 2013-09-03 2016-04-26 Qualcomm Incorporated Formatting data packets for compression
US9473168B1 (en) * 2015-09-25 2016-10-18 Intel Corporation Systems, methods, and apparatuses for compression using hardware and software
US10135461B2 (en) * 2015-09-25 2018-11-20 Intel Corporation Systems, methods, and apparatuses for decompression using hardware and software
US9450606B1 (en) * 2015-10-01 2016-09-20 Seagate Technology Llc Data matching for hardware data compression
CN105426413B (zh) * 2015-10-31 2018-05-04 华为技术有限公司 一种编码方法及装置
US10187081B1 (en) * 2017-06-26 2019-01-22 Amazon Technologies, Inc. Dictionary preload for data compression

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
CA2077271C (en) * 1991-12-13 1998-07-28 David J. Craft Method and apparatus for compressing data
EP0582907A3 (en) * 1992-08-10 1995-05-10 Stac Electronics Inc Device and method for data compression using search by comparison of strings and Huffman coding.
US5521597A (en) * 1993-08-02 1996-05-28 Mircosoft Corporation Data compression for network transport
JP3240495B2 (ja) * 1994-09-14 2001-12-17 エー・アイ・ソフト株式会社 データの可逆符号化方法および装置、並びに、伸長装置
US5612693A (en) * 1994-12-14 1997-03-18 International Business Machines Corporation Sliding window data compression using a toroidal bit shift register
US5608396A (en) * 1995-02-28 1997-03-04 International Business Machines Corporation Efficient Ziv-Lempel LZI data compression system using variable code fields
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
US5526363A (en) * 1995-05-16 1996-06-11 Telco Systems, Inc. Multicontext compression system with shared data structures

Also Published As

Publication number Publication date
SG65785A1 (en) 1999-06-22
US5874908A (en) 1999-02-23
EP0903865A1 (en) 1999-03-24
KR100314419B1 (ko) 2001-12-28
TW592410U (en) 2004-06-11
KR19990029331A (ko) 1999-04-26
JP3141002B2 (ja) 2001-03-05
MY116715A (en) 2004-03-31

Similar Documents

Publication Publication Date Title
JP3141002B2 (ja) 符号化方法及びデータ圧縮器
JP3342700B2 (ja) ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
JP3141001B2 (ja) 符号化方法及びデータ圧縮器、並びにコンピュータ・プログラムを記録した記録媒体
US5608396A (en) Efficient Ziv-Lempel LZI data compression system using variable code fields
JP3065585B2 (ja) 改善されたデータ圧縮効率を提供する方法及び事前圧縮器
JP3025301B2 (ja) データ予備圧縮装置及びデータ予備圧縮システム及びデータ圧縮比改善方法
KR100602394B1 (ko) 동작 코드용 듀얼 모드 데이터 압축 방법
US5870036A (en) Adaptive multiple dictionary data compression
KR100331351B1 (ko) 이진입력데이터스트림압축방법
US7817069B2 (en) Alternative encoding for LZSS output
JP3240495B2 (ja) データの可逆符号化方法および装置、並びに、伸長装置
KR100536980B1 (ko) 데이터 압축 방법, 데이터 압축해제 방법 및 데이터 압축 장치
JP2007037115A (ja) デジタルデータを符号化する方法、データセグメントのストリームを符号化する方法、エンコーダ、データのソースを符号化するためのパラレルエンコーダ、符号化データのソースを復号するためのパラレルデコーダ、コード化データを復号する方法、磁気テープドライブ、およびデータのストリームを符号化する方法
JP2003521189A (ja) より効果的な圧縮を有するデータ圧縮
JPH1065551A (ja) データ圧縮方法
JP3522331B2 (ja) データ圧縮方法
JP3242795B2 (ja) データ処理装置及びデータ処理方法
KR19980081236A (ko) 데이터 압축/복원 방법 및 압축 장치
JP3266419B2 (ja) データ圧縮・伸長方式
US6819272B2 (en) System, method and computer readable medium for compressing a data sequence for partial decompressing
JP2002135128A (ja) データ圧縮方法、データ圧縮・伸長方法、データ圧縮装置及びデータ圧縮・伸長装置
JP2003318739A (ja) データシーケンスを圧縮するシステム、方法、およびコンピュータ読み取り可能媒体
KR20030084405A (ko) 영상 데이타 압축 및 복원 방법 및 장치
JPH08116270A (ja) データ圧縮方法及びその装置並びにデータ伸長方法及びその装置
JPH08116271A (ja) データ圧縮方法及びその装置並びにデータ伸長方法及びその装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071215

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081215

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081215

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091215

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091215

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees