JP2003179501A - データ圧縮方法 - Google Patents

データ圧縮方法

Info

Publication number
JP2003179501A
JP2003179501A JP2002242899A JP2002242899A JP2003179501A JP 2003179501 A JP2003179501 A JP 2003179501A JP 2002242899 A JP2002242899 A JP 2002242899A JP 2002242899 A JP2002242899 A JP 2002242899A JP 2003179501 A JP2003179501 A JP 2003179501A
Authority
JP
Japan
Prior art keywords
data
matching
string
compressed
match
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
Application number
JP2002242899A
Other languages
English (en)
Inventor
William E Nelson
イー. ネルソン ウィリアム
James M Sweet
エム. スイート ジェームズ
Norman W Zeck
ダブリュー. ゼック ノーマン
Ronald E Rider
イー. ライダー ロナルド
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.)
Xerox Corp
Original Assignee
Xerox 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 Xerox Corp filed Critical Xerox Corp
Publication of JP2003179501A publication Critical patent/JP2003179501A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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

Abstract

(57)【要約】 【課題】 効率的にデータを圧縮する方法を提供する。 【解決手段】 このデータ圧縮方法は、圧縮するべきデ
ータ要素のシーケンスを含む入力ストリームを受信する
ステップ(10)と、コーディング位置を識別するステップ
(20)と、コーディング位置において生じる1セットのデ
ータ要素を含む圧縮ストリングを識別するステップと、
圧縮ストリングを、予め決められた複数の一致位置それ
ぞれにおけるデータ要素のストリングと比較することに
よって、一致位置のそれぞれに一致が存在するかどうか
を判定するステップ(30)と、圧縮ストリングと一致する
一致位置と圧縮ストリングの長さとを識別するポインタ
を供給するステップ(40)とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、広くデータ圧縮に
関し、より詳細には辞書ベース圧縮を実行するシステム
及び方法に関する。
【0002】
【従来の技術】例えばデータファイル、ドキュメント、
写真画像などのような、幅広い様々なデジタルデータ信
号は、記憶コストを抑えるために、又は伝送チャネルを
介する伝送時間を短縮するために、圧縮されることが多
い。データ記憶に必要とされるメモリ、及び/又はデー
タ伝送に必要とされる時間を、データ圧縮により減少さ
せることによって、システム性能を向上させ、コストを
削減することができる。
【0003】置換圧縮若しくは辞書ベース圧縮と通常呼
ばれており、よく知られ広く用いられているタイプの無
損失(ロスレス)圧縮は、多数のデータタイプの特性を
利用して、文字の繰り返しシーケンスを含有する。この
ようなデータに好適な例としては、テキストファイル
(英数字のシーケンス)やラスタ画像(ピクセルのシー
ケンス)がある。辞書ベース圧縮方法は、この傾向を利
用して、データストリームにおけるサブストリング(部
分列)を、辞書においてそのサブストリングを識別する
コードワードと置き換えることによって、繰り返し文字
シーケンスを含む。この辞書は、その入力ストリームの
知識及び統計値が既知である場合には、静的であっても
よいし、適応的であってもよい。その統計値が未知であ
るか又は変動するデータストリームを扱うには、適応的
な辞書構造の方が好適である。
【0004】適応的辞書ベース圧縮技法は、2つの関連
するグループにタイプ分けすることができる。第1グル
ープの方法では、現在圧縮中の文字シーケンスが、これ
より前に入力データにおいて既に出現していたかどうか
を判定し、既出の場合には、圧縮を繰り返さず、以前に
出現していたものへのポインタを出力する。このタイプ
では、辞書は、前に処理されたデータにおいて現れる文
字のストリング(列)によって表される。第2グループ
の方法では、データストリームを処理しながら、その中
に出てきた文字ストリング(文字列)を用いて、辞書項
目を構成する。どちらのグループに関しても、辞書は、
前に処理された入力ストリームの全部又は一部である。
前に現れたサブストリングは再び現れる可能性が高いの
で、入力ストリームから前のストリングを用いること
は、辞書に対して好適な選択となることが多い。これら
のタイプの辞書ベース圧縮に関するその他の利点は、辞
書が本質的にはコスト無しで伝送されるという点であ
る。というのは、デコーダが、前にコーディングされた
入力ストリームから辞書を生成することができるからで
ある。
【0005】両方のグループの辞書コーダとも、Lempel
とZivが開発した2つの関連技術によって表すことがで
きる。第1グループの方法は、通常LZ77と呼ばれる
アルゴリズムに基づいており、第2グループの方法は、
通常LZ78と呼ばれるアルゴリズムに基づいている。
辞書ベース圧縮アルゴリズムには多数の種類があるが、
それらの相違点は主に、ポインタがどのように表されて
いるかという点と、ポインタが何を参照するかという点
である。
【0006】簡潔に言うと、LZ77タイプのコーディ
ングは、圧縮するべき文字のシーケンスを含む入力スト
リームに対して作用する。このタイプのエンコーダは、
比較的簡単に実施することができ、通常、例えばハフマ
ンコード化のような可変ビット長コード化方式に従っ
て、パターンマッチング技法を行う。これらのエンコー
ダは、スライディングウィンドウをサーチして、現在の
コーディング位置の文字で始まる文字シーケンスと最も
長く一致する位置を検出する。一致が見つかった場合に
は、その一致ストリングが始まるウィンドウにおける位
置及びそのストリングの長さを識別するポインタが与え
られる。サーチは、先行するサブストリングに、ツリ
ー、ハッシュテーブル、又はバイナリサーチツリーでイ
ンデックスを付けることによって、速度を速めることが
できる。
【0007】ポインタが前のデータのウィンドウにおけ
るいずれのサブストリングをも示すことができるLZ7
7タイプに対し、LZ78タイプの方法では、どのサブ
ストリングを参照することができるかということに関し
制限を設けている。しかし、このLZ78は、どのぐら
い前のサブストリングを参照することができるかという
ことを制限するウィンドウは有していない。LZ78タ
イプのエンコーダは、入力ストリームから得られる現在
のサブストリングを、前に出てきたストリングの辞書と
照合することによって、辞書を構成する。この記憶され
る辞書は、入力ストリームの内容に基づいて適切に生成
される。このコード化処理により、データストリームに
おいてプレフィックス(接頭語)及び現在の文字を含
む、つまり空プレフィックスで始まる、ストリングを解
析する。対応するストリング(プレフィックス+現在の
文字)が辞書にある場合には、プレフィックスは現在の
文字と共に拡張されて、拡張されたプレフィックス及び
次の文字を含む新しいストリングが解析される。この拡
張は、辞書にないストリングが出てくるまで繰り返され
る。辞書にないストリングが出てきたときには、エンコ
ーダは、(a)現在のプレフィックスを表すコードワード
及び(b)現在の文字を出力する。また、エンコーダは、
現在のプレフィックス及び現在の文字ストリングを含
む、新しい辞書項目も生成する。次に、エンコーダは、
データストリームにおいて空プレフィックス及び次の文
字を含む、新しいストリングの構成を始める。
【0008】辞書ベース無損失圧縮は、様々な入力ラス
タデータタイプによく適合するので、デジタルプリント
システムにおいて用いるのによく適している。しかし、
ラスタデータに関しては、履歴バッファにおける走査線
の間隔で、より好適な一致が見つかることが多い、とい
うことがわかっている。このことは、辞書ベース無損失
圧縮システムの装備が、データの走査線を数本含むよう
な大きな履歴バッファを有することを必要とする。ソフ
トウェア及びハードウェアの両方において、このバッフ
ァのサイズが大きな装備は、実行コスト若しくは性能の
低下という点において、より不経済である。特にハード
ウェア装備に関しては、このメモリは、連想記憶可能で
ない標準メモリに対して、実行する回路をより多く必要
とする連想記憶装置のような、特殊メモリであることが
多い。辞書ベースエンコーダに関する別の欠点は、実行
が生来的に直列であり、多くのプロセッサ構造において
利用可能な固有の並列処理を利用しないので、命令スロ
ットが損失し(若しくは使用されず)、性能が低下する
という点である。
【0009】
【発明が解決しようとする課題】本発明の目的は、スラ
イディングウィンドウ内においてサーチするデータを、
予め決められた複数の離散一致位置それぞれにおいて生
じるデータストリングに制限することによって、効率的
にデータを圧縮する方法を提供することにある。
【0010】
【課題を解決するための手段】本発明の一態様によれ
ば、スライディングウィンドウデータをサーチして、現
在のコーディング位置において始まるストリングと一致
する、スライディングウィンドウ内における最長ストリ
ングを位置付ける、改良された辞書ベース圧縮方法が提
供される。この改良された方法では、スライディングウ
ィンドウ内においてサーチするデータを、データのウィ
ンドウ内における1セットの不連続データ位置から成
る、予め決められた複数の離散一致位置それぞれにおい
て生じるデータストリングに制限する。
【0011】圧縮するべきピクセルのシーケンスを含
む、データの入力ストリームを受信するステップと、コ
ーディング位置を識別するステップと、前記入力ストリ
ームから1セットの離散的な不連続のピクセルを画定す
る予め決められた複数の一致位置それぞれにおいて生じ
るピクセルのストリングと、前記コーディング位置にお
いて生じるピクセルのストリングを含む圧縮ストリング
とを比較して、一致を識別するステップと、前記圧縮ス
トリングと一致する予め決められた一致位置と前記圧縮
ストリングの長さとを識別するポインタを供給するステ
ップと、を含むデータ圧縮方法がさらに提供される。
【0012】本発明によれば、いくつかのタイプのデー
タに関しては、平均位置に比べて一致パターンを含む可
能性が高い、データ内における一定の一致位置を識別す
ることが可能である、という特性を利用するデータ圧縮
方法がさらに提供される。この特性を利用する目的で、
本発明の一態様は、データのウィンドウ内における一致
ストリングのサーチを、このような一致位置において生
じる文字ストリングに制限する、圧縮方法となってい
る。一致データを含む可能性が高いデータストリームの
領域を識別し、圧縮ストリングのサーチをこの領域に制
限することにより、圧縮処理を並列に行って、複数の一
致位置におけるデータを同時に比較することができる。
この並列処理によって、ファイルを圧縮するのに必要な
処理時間を、従来の方法に比べて短縮することができ
る。データ圧縮方法のこのような一実施形態は、圧縮す
るべきデータ要素のシーケンスを含む、データの入力ス
トリームを受信するステップと、コーディング位置にお
いて生じる少なくとも1つのデータ要素を含む、前記入
力ストリーム内における圧縮ストリングを選択するステ
ップと、前記コーディング位置と関連付けられた複数の
一致位置を識別するステップと、前記複数の一致位置に
関し、対応する一致位置がアクティブであるか非アクテ
ィブであるかを識別する各一致位置の状態を設定するス
テップと、前記圧縮ストリングを、アクティブ状態を有
する複数のデータ要素一致位置と同時に比較することに
よって、それぞれの一致位置に一致が存在するかどうか
を判定し、この比較に基づいて前記一致位置の状態を更
新するステップと、少なくとも1つのデータ要素を前記
圧縮ストリングに追加することによって、前記圧縮スト
リングの長さを長くするステップと、前記同時に比較す
るステップと、前記圧縮ストリングの長さを長くするス
テップとを、前記複数の一致位置全てが非アクティブ状
態を有するまで繰り返すステップと、前記圧縮ストリン
グと一致する一致位置と前記圧縮ストリングの長さとを
識別するポインタを供給するステップとを含む。
【0013】
【発明の実施の形態】従来技術のスライディングウィン
ドウ辞書圧縮方法は、多数のデータファイルの固有の特
性を利用して、文字の繰り返しシーケンスを含有する。
簡単に概説すると、スライディングウィンドウベースの
方法は、圧縮するべき文字のシーケンスを含むデータの
入力ストリームに対して作用する。この文字シーケンス
では、例えば、テキストファイルにおける英数字であっ
てもよいし、画像ファイルにおけるピクセルであっても
よい基本データ要素を、入力ストリームにおいて識別す
るのに、ターム文字が使用される。この方法では、圧縮
しようとしているデータストリーム内の現在のコーディ
ング位置における文字で始まる文字シーケンスと一致す
る、ウィンドウ内の最長文字シーケンスを探すため、n
文字のウィンドウをサーチする。このコーディング位置
は、コード化するべき文字のデータストリーム内におけ
る位置を特定する。つまり、このコーディング位置は、
スライディングウィンドウにおける最長一致が位置付け
られている、シーケンスの始めの文字を特定する。一致
が見つかった場合、この方法では、その一致シーケンス
のスライディングウィンドウ内における位置及びそのシ
ーケンスの長さを識別するポインタを出力する。この方
法では、次に、その一致シーケンスの長さに等しい文字
数だけ、コーディング位置を前に進める。
【0014】本発明は、いくつかのデータファイルに生
じることが確認された、別の特性を利用する。具体的に
は、いくつかのタイプのデータファイルに関しては、一
定の圧縮「ホットスポット」を識別することが可能であ
る、ということがわかった。このホットスポットとは、
平均位置に比べて一致パターンを含む可能性が著しく高
い、ウィンドウ内における位置のことである。この特性
を利用するために、本発明の一態様は、データのウィン
ドウ内における一致ストリングのサーチを、それぞれが
圧縮ホットスポットに対応する1セットの離散一致位置
において生じる文字ストリングに制限する、圧縮方法を
提案する。
【0015】従来のスライディングウィンドウ方法で
は、パターン一致のため、32kウィンドウが調べられ
る。可能性のあるパターン一致位置の数を、32767
から、例えば10のような、少ない1セットの離散一致
位置に減らすことによって、無調整の(brute force)パ
ターン一致方法が実行可能となる。固有の並列処理を利
用するプロセッサ構造では、その離散一致位置セット全
てを並列に調べることができるので、命令スロットのほ
とんど又は全てをいっぱいにすることができ、これによ
って、ストリング照合に関する従来のハッシュ法の効能
を著しく向上させることができる。
【0016】ここで図1を参照すると、本発明の一実施
の形態を例示する、スライディングウィンドウ辞書ベー
ス圧縮方法の流れ図が示されている。より詳細には、図
1は、本明細書中でホットスポット圧縮技法と呼んでい
る方法の、一実施の形態の例である。この方法では、デ
ータのウィンドウ内における一致ストリングのサーチ
を、それぞれが圧縮ホットスポットに対応する予め決め
られた1セットの一致位置のうちの、1つにおけるスト
リングに制限する。つまり、この予め決められた1セッ
トの一致位置は、事前の知識に基づいて、平均位置に比
べて一致パターンを含む可能性が著しく高いと思われ
る、ウィンドウ内における位置から成る。
【0017】図1に示された方法は、ステップ10にお
いて、圧縮されるべきデータの入力ストリームを受信す
ることで開始する。このデータの入力ストリームは、例
えば文字又はピクセルのシーケンスのような、データ要
素のストリームから成る。説明の便宜上、このデータス
トリームは、ピクセルのシーケンスから成る画像データ
のストリームとして考える。この方法では、ステップ2
0において、コーディング位置を入力ストリームの始め
に設定する。
【0018】この方法では、ステップ30において、入
力ストリーム内におけるデータの範囲をサーチして、コ
ーディング位置に対応するピクセルで始まるピクセルス
トリングとの最長一致を識別する。本発明の一態様によ
れば、このサーチされる入力ストリーム内におけるデー
タの範囲は、予め決められた複数の離散一致位置それぞ
れに位置付けられたピクセルストリングに制限される。
各一致位置は、例えばコーディング位置からのオフセッ
トというような、コーディング位置に対する、スライデ
ィングウィンドウ内におけるその相対位置によって、識
別することができる。或いは、各一致位置は、入力デー
タストリーム又はスライディングウィンドウ内における
その絶対位置によって、識別することもできる。この複
数の一致位置は、平均位置に比べて一致パターンを含む
可能性が著しく高いと識別された位置に対応する、1セ
ットの不連続ピクセル位置を画定する。つまり、ステッ
プ30では、予め決められた複数の一致位置それぞれに
おけるピクセルストリングを比較して、コーディング位
置に対応するピクセルで始まるピクセルストリングと一
致する、最長ピクセルストリングを見つける。
【0019】この方法では、ステップ40において、現
在のコーディング位置に対するコード化された出力を供
給する。より詳細には、一致が見つかった場合、最長一
致ピクセルストリングを有する一致位置及びその一致ス
トリングの長さを識別するポインタを供給する。一致が
見つからなかった場合には、空ポインタ及びコーディン
グ位置におけるピクセルを供給する。画像データの終わ
りに達していない場合、ステップ50において、コーデ
ィング位置を、コーディングされるべき画像データ内に
おける次のピクセル位置に更新し、ステップ30に戻
る。入力ストリームの終わりに達している場合には、こ
の方法は終了する。
【0020】前述したように、可能性のあるパターン一
致位置の数を、少ない1セットの離散一致位置に減らす
ことによって、無調整パターン一致方法が可能となる。
この方法では、離散一致位置を並列に調べることができ
るので、ストリング照合に関する従来のハッシュ法の効
能を著しく向上させることができる。例えば上記ステッ
プ30において行われるような処理であり、並列式に実
行することのできる処理である、予め決められた複数の
一致位置(ホットスポット)それぞれにおけるピクセル
ストリングを比較して、ホットスポット一致位置に一致
ストリングを位置付ける処理の一例は、以下の擬似コー
ドによって表される。
【外1】
【0021】上記の処理に様々な変更を加えて、所定の
用途に関する効能を向上させてもよい、ということは認
められるべきである。例えば、一度に複数の文字を読み
込んでもよい。つまり、この処理を、1文字だけではな
く、8文字をwhileループの繰り返し毎に読み込んで一
致させるように変更してもよい。
【0022】入力ストリーム内におけるデータの範囲を
サーチして、コーディング位置に対応するピクセルで始
まるピクセルストリングとの最長一致を識別する、図1
のステップ30の作用の一例について、さらに図2を参
照しながら説明する。図2は、ラスタ順序付け画像デー
タ(走査線順序付け画像データとも呼ばれる)の一部を
示している。ラスタ順序付け画像データとは、メモリシ
ステム又は伝送チャネルにおいて、ピクセルがラスタ走
査線の順序になるように順序付けされた、画像データの
ことをいう。つまり、ラスタ順序付け画像データは複数
の走査線を有しており、この走査線はそれぞれ複数のピ
クセルを有している。画像データの入力ストリーム内に
おけるピクセルPはPi,jで識別され、ここで、iは画
像データ内における走査線を識別しており、jは走査線
内におけるピクセル位置を識別している。従って、P
1,1は、第1の走査線における第1のピクセルであり、
ラスタ順序付けシーケンスにおける第1のピクセルであ
る。P1,2は、第1の走査線における第2のピクセルで
あり、ラスタ順序付けシーケンスにおける第2のピクセ
ルである。
【0023】図2を参照し、ピクセルPi,jが現在のコ
ーディング位置に対応し、予め決められた3つの一致位
置のうち、1つは前のピクセル位置(即ち、Pi,j-1
に対応し、2つは走査線ピッチ1つ分及び2つ分の距離
にある位置(即ち、Pi-1,j及びPi-2,j)に対応すると
仮定する。図2から分かるように、コーディング位置P
i,jで始まるピクセル5つ分のストリングは、値90、
92、94、94、96を有する。この図を見れば、コ
ーディング位置に対応するピクセルで始まるピクセルス
トリングと一致する、予め決められた複数の一致位置そ
れぞれにおいて生じる最長ピクセルストリングは、ピク
セルPi-2,jで見つけられ、ストリング90、92、9
4、94から成る、ということが分かる。また、この図
は、ストリング90、92、94、94、96が、ピク
セル位置Pi-1,j-1で始まる画像データに見られる、と
いうことも示している。しかし、ホットスポット処理
は、サーチを、予め決められた一致位置Pi,j-1、P
i-1,j又はPi-2,jのうちの1つにおいて生じるストリン
グに制限するので、Pi-1,j-1で始まるストリングを一
致として適当であるとは識別しない。
【0024】例えばGZIP/デフレート(Deflate)フ
ァイル形式のような一定の圧縮形式に関しては、ハフマ
ンコードと、距離の規模が大きくなるほど広くなる何ら
かの固定幅フィールドとの両方を用いることによって、
より大きな距離がコード化される、ということは当業者
には認められるであろう。従って、本発明を用いてラス
タ順序付けファイルをコード化し、予め決められたホッ
トスポット一致位置におけるストリングにサーチ領域を
制限するには、一致の長さが一定の閾値に満たない場合
には長距離パターン一致を無視するような費用関数が必
要とされる。この費用関数は、長距離において見つけら
れる一致を、閾値の長さよりも長い長さを有する一致に
制限する。また、この費用関数は、長距離における一致
が十分な長さであることを確実にすることによって、G
ZIP圧縮において固定幅フィールドにより生じる余分
な費用を補償する。
【0025】上述したホットスポット圧縮技法は、ピク
セル順序付けデータに対し好適な結果をもたらすが、入
力ストリームがブロック順序付けピクセルデータから成
る場合、より好適な結果が見られた。一つには、これ
は、ブロック順序付けデータに関する一致位置がより短
い距離にある傾向にあるので、より短いポインタを必要
とするためである。図3は、ラスタデータをブロック順
序付けピクセルデータ(ベクトル順序付けピクセルデー
タとも呼ばれる)に変換する、特定の順序付けの一例を
示す図である。ラスタ順序付けデータ110は、順次メ
モリアドレスが走査線1、走査線2という順序でそのピ
クセルにアクセスするように、メモリに記憶されてい
る。図3では、一実施の形態として8本の走査線が示さ
れており、8×8のブロック(これは、JPEGが同一
サイズのブロックを使用しているので、有益なサイズで
ある)が生成される。しかし、その他の数の走査線も可
能である、ということは認められるべきである。
【0026】ピクセルデータは、参照番号120によっ
て示されているように、ベクトル順序付けされる。この
方法では、ベクトル120における第1セットのピクセ
ルとなる、走査線1からのピクセルデータ130が読み
取られる。図3の実施の形態では、このピクセルデータ
130は、例えば8ピクセルというような、走査線のご
く一部である。これより少ない又は多い数のピクセルか
ら成る部分を用いてもよい、ということは認められるべ
きである。次に、ベクトル120における第2セットの
ピクセルとなる、走査線2からのピクセルデータ131
が複写される。このピクセルデータ131は、ピクセル
データ130に含まれているピクセルと同数のピクセル
で構成されているのが有益である。この複写処理がピク
セルデータ132〜137に関して繰り返されることに
よって、ホットスポット辞書圧縮装置への入力データと
して用いられるベクトルが生成される。次に、この全複
写処理は、セグメント138〜145に関して繰り返さ
れ、その後、このメモリバッファ内の走査線に含まれて
いる残りのラスタデータに関して繰り返される。この順
序付け方法を用いれば、走査線から得られるラスタデー
タを全て、ホットスポット圧縮技法を用いて圧縮するこ
とができる。走査線のピクセルが全てこの方法で順序付
けされると、その画像のさらに別の走査線を、同様の手
順において処理することができる。
【0027】次に図4を参照すると、本発明が使用され
得る環境が示されている。ラスタドキュメント生成アプ
リケーション150は、ラスタ順序形式ドキュメント1
52を生成する。このラスタドキュメント生成アプリケ
ーション150は、例えば、ラスタエディタ、即ち、ペ
ージ記述言語ドキュメントをラスタ形式に変換するシス
テムであってもよい。走査線ラスタデータは、圧縮のた
め、圧縮エンコーダ154に送られる。この圧縮エンコ
ーダ154は、ホットスポット圧縮技法(図1に示され
た実施の形態と同様でよい)を実行することによって、
圧縮形式ドキュメント156を生成する。圧縮エンコー
ダ154は、圧縮の前に、入力ドキュメント152をラ
スタ順序からブロック順序へと変換してもよい。圧縮形
式ドキュメント156は、ドキュメント記憶装置158
において、圧縮形式で記憶される。走査線ラスタ形式の
ドキュメントを再生成するには、圧縮解凍装置160に
よって、標準スライディングウィンドウ圧縮解凍方法を
用いて、圧縮データ156を処理する。
【0028】前述したように、このホットスポット圧縮
技法では、一致ストリングのサーチを、予め決められた
1セットの一致位置のうちの1つにおいて生じるストリ
ングに制限する。さらに、予め決められたこれらの一致
位置は、事前の知識に基づいて、平均位置に比べて一致
パターンを含む可能性が著しく高いと思われる、ウィン
ドウ内における位置に対応するように選択される。
【0029】一致位置を識別するのに用いられる事前知
識は、様々なソースにおいて取得されてもよい。例え
ば、構造の知識及びファイル自体の形式によって、一致
位置として用いる可能性のあるホットスポットを識別し
てもよい。例えば、テキストストリング、或いは数字ス
トリング、或いはテキストストリングと数字ストリング
との混合ストリングであってもよいフィールドを含む、
記録から成るファイルを考える。ファイルを圧縮する
際、現在のコーディング位置における文字が数字データ
である場合には、圧縮ルーチンは、一致ストリングのサ
ーチを、ファイルの、数字データを有する領域(フィー
ルド)に対応する、スライディングウィンドウにおける
位置に制限する一方で、テキスト又は英数字データを有
するフィールドを無視する。同様に、現在のコーディン
グ位置がテキストデータである場合には、圧縮ルーチン
は、一致ストリングのサーチを、テキストを有する領域
に対応する、スライディングウィンドウにおける位置に
制限する。
【0030】ホットスポットの別のソースは、圧縮ファ
イルの解析から得ることができる。図5は、圧縮ファイ
ルの解析によりホットスポットを識別する1つの方法を
示している。より詳細には、圧縮ファイルの解析により
ホットスポットを識別する方法における、1つの繰り返
しを示している。この処理は、ステップ200におい
て、ファイルを標準圧縮することで開始する。次に、こ
の圧縮結果を解析することによって、各位置が一致とし
て識別された回数と、その位置における一致の平均長さ
とを識別する。その後、これらの位置を、識別された回
数、平均長さ、又は全体長さ(平均長さ×識別された回
数)のうちの1つ、或いは2つ以上によって、ランク付
けする(ステップ210)。圧縮一致のごく一部を占め
る(一致の数、或いはパターン一致の平均長さ、或いは
その全体長さによって)一致位置としてほとんど使用さ
れていないとみなされた位置を除去することによって、
制限サーチリストを生成する(ステップ220)。
【0031】例えば、ブロック順序付けピクセルデータ
の典型的なGZIP圧縮ストリームを解析すると、平均
ピクセル位置に比べて一致パターンを含む可能性が著し
く高い、一定の相対ピクセル位置があることがわかる。
8×8ブロック(これは、JPEGが同一サイズのブロ
ックを使用しているので、有益なサイズである)の場
合、一致を見つけることのできる可能性が最も高い相対
位置は、可能性の高い順に、8ピクセル、1ピクセル、
64ピクセルの距離における位置である。これは驚くこ
とではなく、距離8のホットスポットは(データの)前
の走査線を表し、距離1のホットスポットは前のピクセ
ルを表し、距離64のホットスポットは前の8×8ブロ
ックを表している。パターン一致がこれらのホットスポ
ットにおいて生じた割合に比べると、その他の距離にお
ける位置で生じた割合は非常に低い。このことは、その
他の距離における位置で生じるパターン一致は排除して
もよい、ということを示唆している。
【0032】次に、ステップ230において、このファ
イルを、制限サーチリストを用いて再圧縮する。一致を
ランク付けするステップ210、サーチ位置を除去/制
限するステップ220、及び制限サーチリストを用いて
ファイルを再圧縮するステップ230は、再圧縮により
著しい向上が見られなくなるまで繰り返すことができ
る。再圧縮しても著しい向上が見られなくなった場合に
は、制限サーチリストが圧縮ホットスポットを識別した
状態で、この処理を終了させることができる。圧縮比が
悪化した場合には、最後に除去した位置をサーチリスト
に戻してもよい。最終的に得られたホットスポット圧縮
位置リストが大きすぎる場合には、この処理を再実行
し、別の位置を選択して除去してもよい。
【0033】一致位置及び一致長さは、例えばハフマン
コーディングのようなエントロピーコーディング方式に
よって、コード化されることが多い。「ホットスポッ
ト」の確率に関する事前知識を用いて、動的に生成する
のとほぼ同様に効率的なハフマンテーブルを事前に生成
することによって、効能をさらに向上させることができ
る。ハフマンテーブルを動的に生成するには、度数分布
を生成し、これらの分布から最適なハフマンコーディン
グツリーを生成する必要があるため、性能が低下する
か、或いはさらなるハードウェアを必要とする。
【図面の簡単な説明】
【図1】本発明によるホットスポット圧縮方法の一実施
形態を示すフローチャートである。
【図2】ラスタ順序付け画像データの一部を示す図であ
る。
【図3】ラスタ順序付け画像データをブロック順序付け
画像データに変換する、順序付け方法の一例を示す図で
ある。
【図4】本発明がアプリケーションを見つけ得るシステ
ムを示す図である。
【図5】可能性のある一致位置を識別する方法の一実施
形態を示すフローチャートである。
【符号の説明】
110 ラスタ順序付けデータ 120 ベクトル 130〜145 ピクセルデータ 152 ラスタ順序形式ドキュメント 156 圧縮形式ドキュメント
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームズ エム. スイート アメリカ合衆国 14623 ニューヨーク州 ロチェスター ウェスト スクワイアー ドライブ 9 アパートメント 2 (72)発明者 ノーマン ダブリュー. ゼック アメリカ合衆国 14580 ニューヨーク州 ウエブスター ウエブスター ロード 1074 (72)発明者 ロナルド イー. ライダー アメリカ合衆国 94025 カリフォルニア 州 メンロ パーク コリン レーン 1335 Fターム(参考) 5C059 KK11 MA45 PP01 PP11 PP20 PP24 RC24 SS28 UA02 5C078 BA33 CA01 CA27 DA01 DB14 5J064 AA02 BA09 BA11 BC29 BD02 BD03

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 圧縮するべきデータ要素のシーケンスを
    含む、データの入力ストリームを受信するステップと、 コーディング位置を識別するステップと、 前記コーディング位置において生じる1セットのデータ
    要素を含む、前記入力ストリーム内における圧縮ストリ
    ングを識別するステップと、 前記圧縮ストリングを、前記入力ストリームから1セッ
    トの離散的な不連続のデータ要素を画定する予め決めら
    れた複数の一致位置それぞれにおけるデータ要素のスト
    リングと比較することによって、前記一致位置のそれぞ
    れに一致が存在するかどうかを判定するステップと、 前記圧縮ストリングと一致する一致位置と前記圧縮スト
    リングの長さとを識別するポインタを供給するステップ
    と、 を含む、データ圧縮方法。
  2. 【請求項2】 前記データの入力ストリームを受信する
    ステップが、それぞれが複数のピクセルを有する複数の
    走査線から成るラスタ順序付け画像データを受信するス
    テップと、前記ラスタ順序付け画像データをブロック順
    序付けデータに変換するステップとを含む、請求項1に
    記載のデータ圧縮方法。
  3. 【請求項3】 圧縮するべきデータ要素のシーケンスを
    含む、データの入力ストリームを受信するステップと、 コーディング位置において生じる少なくとも1つのデー
    タ要素を含む、前記入力ストリーム内における圧縮スト
    リングを選択するステップと、 前記コーディング位置と関連付けられた複数の一致位置
    を識別するステップと、 前記複数の一致位置に関し、対応する一致位置がアクテ
    ィブであるか非アクティブであるかを識別する各一致位
    置の状態を設定するステップと、 前記圧縮ストリングを、アクティブ状態を有する複数の
    データ要素一致位置と同時に比較することによって、そ
    れぞれの一致位置に一致が存在するかどうかを判定し、
    この比較に基づいて前記一致位置の状態を更新するステ
    ップと、 少なくとも1つのデータ要素を前記圧縮ストリングに追
    加することによって、前記圧縮ストリングの長さを長く
    するステップと、 前記同時に比較するステップと、前記圧縮ストリングの
    長さを長くするステップとを、前記複数の一致位置全て
    が非アクティブ状態を有するまで繰り返すステップと、 前記圧縮ストリングと一致する一致位置と前記圧縮スト
    リングの長さとを識別するポインタを供給するステップ
    と、 を含む、データ圧縮方法。
JP2002242899A 2001-09-06 2002-08-23 データ圧縮方法 Pending JP2003179501A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US31769501P 2001-09-06 2001-09-06
US60/317,695 2001-09-06
US10/175,242 2002-06-18
US10/175,242 US6650261B2 (en) 2001-09-06 2002-06-18 Sliding window compression method utilizing defined match locations

Publications (1)

Publication Number Publication Date
JP2003179501A true JP2003179501A (ja) 2003-06-27

Family

ID=26871021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002242899A Pending JP2003179501A (ja) 2001-09-06 2002-08-23 データ圧縮方法

Country Status (3)

Country Link
US (1) US6650261B2 (ja)
EP (1) EP1320196A3 (ja)
JP (1) JP2003179501A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011101271A (ja) * 2009-11-09 2011-05-19 Seiko Epson Corp 画像処理装置、および、画像処理方法
US11777518B2 (en) 2021-09-09 2023-10-03 Kioxia Corporation Data compression device, memory system and method

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7417568B2 (en) * 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
KR100468742B1 (ko) * 2002-06-26 2005-01-29 삼성전자주식회사 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법
US7103750B2 (en) * 2003-03-20 2006-09-05 International Business Machines Corporation Method and apparatus for finding repeated substrings in pattern recognition
US8549177B2 (en) * 2004-03-02 2013-10-01 Divinetworks Ltd. Communication server, method and systems, for reducing transportation volumes over communication networks
TWI249139B (en) * 2004-05-07 2006-02-11 Sunplus Technology Co Ltd Block decoding-method capable of rotating direction decoding-output and system
US7148824B1 (en) * 2005-08-05 2006-12-12 Xerox Corporation Automatic detection of character encoding format using statistical analysis of the text strings
US7882084B1 (en) * 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US7333032B1 (en) * 2006-01-20 2008-02-19 Calypto Design Systems, Inc. System, method and computer program product for word-level computations and storage
US20100306209A1 (en) * 2006-07-22 2010-12-02 Tien-Fu Chen Pattern matcher and its matching method
US7889102B2 (en) * 2009-02-26 2011-02-15 Red Hat, Inc. LZSS with multiple dictionaries and windows
KR101049699B1 (ko) * 2009-07-17 2011-07-15 (주)이스트소프트 데이터의 압축방법
US8355570B2 (en) * 2009-08-12 2013-01-15 Conexant Systems, Inc. Systems and methods for raster-to-block converter
US8144355B2 (en) 2009-12-24 2012-03-27 Xerox Corporation Method and apparatus for improving raster image processing performance for variable information printing having reusable objects
US8493612B2 (en) * 2010-01-29 2013-07-23 Xerox Corporation Predicting an expansion difficulty and an expansion time required to perform a rendering operation
US9852143B2 (en) 2010-12-17 2017-12-26 Microsoft Technology Licensing, Llc Enabling random access within objects in zip archives
TWI463876B (zh) * 2011-05-17 2014-12-01 Alpha Imaging Technology Corp 影像壓縮方法
US8972967B2 (en) 2011-09-12 2015-03-03 Microsoft Corporation Application packages using block maps
US8839446B2 (en) 2011-09-12 2014-09-16 Microsoft Corporation Protecting archive structure with directory verifiers
US8819361B2 (en) 2011-09-12 2014-08-26 Microsoft Corporation Retaining verifiability of extracted data from signed archives
CN103078646B (zh) * 2012-12-31 2016-05-11 上海宇芯科技有限公司 字典查询压缩、解压缩方法及其装置
US8947270B2 (en) * 2013-06-29 2015-02-03 Intel Corporation Apparatus and method to accelerate compression and decompression operations
US9647684B2 (en) 2014-10-21 2017-05-09 Huawei Technologies Co., Ltd. Memory-based history search
US10581456B2 (en) * 2016-06-22 2020-03-03 Fujitsu Limited Data compression device and data decompression device
CN107729051B (zh) * 2017-09-25 2020-06-16 珠海市杰理科技股份有限公司 代码处理方法、装置、可读存储介质和计算机设备
US10224957B1 (en) * 2017-11-27 2019-03-05 Intel Corporation Hash-based data matching enhanced with backward matching for data compression
CN110113617B (zh) * 2019-06-13 2022-09-20 腾讯科技(深圳)有限公司 图像压缩与解压缩的方法、装置、电子设备及存储介质
CN112163007B (zh) * 2020-09-28 2023-11-17 惠州市德赛西威智能交通技术研究院有限公司 一种快速匹配查找联系人的方法及系统
CN116051156B (zh) * 2023-04-03 2023-07-25 北京智蚁杨帆科技有限公司 一种基于数字孪生的新能源动态电价数据管理系统
CN117254819B (zh) * 2023-11-20 2024-02-27 深圳市瑞健医信科技有限公司 一种医疗废物智能监管系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4847619A (en) * 1987-10-19 1989-07-11 Hewlett-Packard Company Performance-based reset of data compression dictionary
US5550540A (en) * 1992-11-12 1996-08-27 Internatioal Business Machines Corporation Distributed coding and prediction by use of contexts
US5883975A (en) * 1994-09-12 1999-03-16 Nippon Steel Corporation Compression and decompression methods on two-dimensional image data
US5694125A (en) * 1995-08-02 1997-12-02 Advance Hardware Architecture Sliding window with big gap data compression system
US5689255A (en) * 1995-08-22 1997-11-18 Hewlett-Packard Company Method and apparatus for compressing and decompressing image data
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US6008743A (en) * 1997-11-19 1999-12-28 International Business Machines Corporation Method and apparatus for switching between data compression modes
JP3730385B2 (ja) * 1997-12-05 2006-01-05 株式会社東芝 デ−タ圧縮装置
JP3541930B2 (ja) * 1998-08-13 2004-07-14 富士通株式会社 符号化装置及び復号化装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011101271A (ja) * 2009-11-09 2011-05-19 Seiko Epson Corp 画像処理装置、および、画像処理方法
US11777518B2 (en) 2021-09-09 2023-10-03 Kioxia Corporation Data compression device, memory system and method

Also Published As

Publication number Publication date
EP1320196A3 (en) 2004-04-07
EP1320196A2 (en) 2003-06-18
US6650261B2 (en) 2003-11-18
US20030048207A1 (en) 2003-03-13

Similar Documents

Publication Publication Date Title
JP2003179501A (ja) データ圧縮方法
KR100950607B1 (ko) 허프만 코딩
JP3541930B2 (ja) 符号化装置及び復号化装置
US5003307A (en) Data compression apparatus with shift register search means
US5945933A (en) Adaptive packet compression apparatus and method
CN108768403B (zh) 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器
US7102552B1 (en) Data compression with edit-in-place capability for compressed data
US7403136B2 (en) Block data compression system, comprising a compression device and a decompression device and method for rapid block data compression with multi-byte search
US6597812B1 (en) System and method for lossless data compression and decompression
JPH11168390A (ja) データ圧縮装置及びデータ復元装置,データ圧縮方法及びデータ復元方法,データ圧縮/復元用辞書作成装置並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2863065B2 (ja) マッチングストリング探索およびハフマン符号化を用いたデータ圧縮装置および方法ならびにデータ伸長装置および方法
EP0127815B1 (en) Data compression method
JP2003218703A (ja) データ符号化装置及びデータ復号装置
US5392036A (en) Efficient optimal data recopression method and apparatus
KR100906041B1 (ko) 폰트 압축 및 검색 방법 및 장치
US6492917B1 (en) System and method for implementation of the YK lossless data compression algorithm using a modular computational architecture
US5010344A (en) Method of decoding compressed data
EP0435802B1 (en) Method of decompressing compressed data
Cinque et al. Scalability and communication in parallel low-complexity lossless compression
JP3256121B2 (ja) データ符号化装置およびデータ復号装置およびその方法
JP2003264703A (ja) データ符号化装置、データ符号化方法、及びそのプログラム
US6262675B1 (en) Method of compressing data with an alphabet
Klein Efficient optimal recompression
Hoang et al. Dictionary selection using partial matching
JP3266419B2 (ja) データ圧縮・伸長方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080513