JP3213244B2 - データ圧縮方法およびデータ処理システム - Google Patents

データ圧縮方法およびデータ処理システム

Info

Publication number
JP3213244B2
JP3213244B2 JP30016196A JP30016196A JP3213244B2 JP 3213244 B2 JP3213244 B2 JP 3213244B2 JP 30016196 A JP30016196 A JP 30016196A JP 30016196 A JP30016196 A JP 30016196A JP 3213244 B2 JP3213244 B2 JP 3213244B2
Authority
JP
Japan
Prior art keywords
cells
cell
matching
lexicographically
group
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
Application number
JP30016196A
Other languages
English (en)
Other versions
JPH09223972A (ja
Inventor
オスカー・コンラッド・ストロハッカー
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 JPH09223972A publication Critical patent/JPH09223972A/ja
Application granted granted Critical
Publication of JP3213244B2 publication Critical patent/JP3213244B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、改良されたデータ
処理システムに関し、具体的には、データ圧縮のための
改良された方法およびシステムに関する。さらに具体的
に言うと、本発明は、ソーティング・ネットワークを使
用してデータのブロックを圧縮するための方法およびシ
ステムに関する。
【0002】
【従来の技術】スライディング・ウィンドウ・ロスレス
・データ圧縮は、1977年に、レンペル(Lempel)お
よびジブ(Ziv)著、"A Universal Algorithm for Sequ
entialData Compression"(IEEE Transactions on Info
rmation Theory, 1977)で初めて発表された。その原理
は、「前に見たテキストを辞書として使用する辞書ベー
ス圧縮」と簡潔に説明されている。
【0003】データ圧縮アルゴリズムは、概念的には2
つの部分すなわち、フロントエンドであるデータ・モデ
リング部分と、バックエンドである出力コーディング部
分に分割することができる。データ圧縮システム、特に
LZベースのデータ圧縮システムのフロントエンドまた
はデータ・モデリング段階の主な機能は、入力データ内
で同一の入力バイトの連なりまたは列を突き止めること
である。
【0004】スライディング・ウィンドウ・データ圧縮
システムでそのようなフロントエンド・タスクを実行す
るための効率的なハードウェアが、クラフト(Craft)
によって発明され、米国特許出願番号第08/2904
51号明細書に記載されている。クラフトの発明では、
回転式のセレクタ・ビット・レジスタと共に連想記憶
(CAM)が使用されている。ホワイティング(Whitin
g)他の米国特許第5003307号明細書に、連想シ
フト・レジスタを使用する同様の手法が開示されてい
る。クラフトの発明では、ゲート遅延がほとんどない状
態で1サイクルごとに1バイトを処理することができ、
これは、ストリーム圧縮の規範で圧縮エンジンにデータ
を供給できる速度と同じ速度である。しかし、コンピュ
ータ・システムのデータは、バイトのストリームではな
く、データのブロックとして圧縮に使用できることがし
ばしばである。たとえば、データ処理システムでは、4
096バイトの固定サイズ・ディスク・ブロックが、圧
縮と伸長のために圧縮エンジンに同時に送られる。
【0005】バッチャ(K. E. Batcher)著、"Sorting
Networks and Their Applications"(Proceedings AFIP
S Spring Joint Conference, Volume 32, pages 307-31
4)に記載のものなどのソーティング・ネットワーク
は、すべてが交換機に同時並行に到着する大量のアドレ
ス付きパケットを大量の出力ポートに経路指定するため
に交換機システムに使用されている。ソフトウェアで実
施されるデータ圧縮の場合、ソーティング・ベースの手
法は、O(nlog2(n))ステップを要するので、
ハッシュ・ベースの手法に劣る。
【0006】したがって、データのブロックをすばやく
効率的に圧縮できると同時に、並列に実行できるデータ
処理の量が最大になる方法およびシステムの必要が存在
する。
【0007】
【発明が解決しようとする課題】本発明の目的は、改良
されたデータ処理システムを提供することである。
【0008】本発明のもう1つの目的は、データ圧縮の
ための改良された方法およびシステムを提供することで
ある。
【0009】本発明のもう1つの目的は、ソーティング
・ネットワークを使用してデータのブロックを圧縮する
ための改良された方法およびシステムを提供することで
ある。
【0010】
【課題を解決するための手段】前述の目的は、これから
の説明に従って達成される。データ処理システムで、N
バイトのブロックを選択する。このNは1より大きい。
その後、N個のデータ・セルのグループを作成するが、
各セルは、グループ内の物理的な順序を示すための物理
タグと、Nバイトのブロックから選択されたバイトのシ
ーケンスを含む部分列を有する。次に、N個のセルのグ
ループを辞書ソートして、N個のセルのそれぞれの部分
列の辞書値に基づく辞書順を確立する。ここで、辞書順
とは、例えばABC順などのことである。その後、N個
のセルのうちの選択されたセルの部分列内の一致する列
を、辞書ソートされたN個のセルのグループ内で識別す
る。その後、Nバイトのブロックを、識別された一致す
る列を利用して符号化して、圧縮データ・セットを作成
する。ここで、この圧縮データ・セットは、辞書ソート
されたN個のセルのグループ内で冗長情報を識別するこ
とによって効率的に作成される。このような符号化は、
N個のセルの辞書ソートされたグループ内で辞書順で隣
接するセルを比較して、一致する列を識別することによ
って達成できる。
【0011】
【発明の実施の形態】ここで図面、具体的には図1を参
照すると、プロセッサ22、キーボード24および表示
装置26を含むデータ処理システム20が示されてい
る。キーボード24は、ケーブル28によってプロセッ
サ22に結合される。表示装置26には、陰極線管(C
RT)、液晶表示装置(LCD)、エレクトロルミネッ
セント・パネルまたは類似物を用いて実施することがで
きる表示画面30が含まれる。データ処理システム20
には、トラックボール、ジョイスティック、接触感知型
のタブレットまたは画面、トラックパッドまたは、図1
に示されているようにマウスを使用して実施することが
できる、ポインティング装置32も含まれる。ポインテ
ィング装置32は、表示画面30上でポインタまたはカ
ーソルを移動するのに利用することができる。プロセッ
サ22は、モデム34、CD−ROM36、ネットワー
ク・アダプタ38、フロッピ・ディスク駆動装置40な
ど、1つまたは複数の周辺装置に結合することもでき、
これら周辺装置のそれぞれは、プロセッサ22の格納装
置の内部または外部に置くことができる。プリンタ42
などの出力装置も、プロセッサ22に結合することがで
きる。
【0012】データ処理システム設計の当業者であれ
ば、表示装置26、キーボード24およびポインティン
グ装置32のそれぞれを、複数の既知の標準構成要素の
いずれかを用いて実施できることを諒解するであろう。
データ処理システム20は、任意の汎用コンピュータま
たは、米国ニューヨーク州アーモンクのInternationalB
usiness Machines Corporation(IBM)社が商標「P
S/2」の下で販売するパーソナル・コンピュータなど
のいわゆるパーソナル・コンピュータを使用して実施す
ることができる。
【0013】ここで図2を参照すると、図1のデータ処
理システム20に含めることのできる主要な構成要素を
さらに示す高水準ブロック図が示されている。データ処
理システム20は、主に、ソフトウェアの形態とするこ
とのできるコンピュータ可読命令によって、または、そ
のようなソフトウェアを格納またはアクセスすることの
できる手段によって、制御される。そのようなソフトウ
ェアを、中央処理装置(CPU)50内で実行して、デ
ータ処理システム20に作業を行わせることができる。
商標「PS/2」の下でIBM社が販売するパーソナル
・コンピュータなど、多くの既知のワークステーション
およびパーソナル・コンピュータでは、CPU50が、
マイクロプロセッサと称する単一チップCPUによって
実施される。そのようなマイクロプロセッサの例には、
Intel Corporation社が商標「PENTIUM」の下で
販売するマイクロプロセッサや、International Busine
ssMachines Corporation社が商標「PowerPC」の
下で販売するマイクロプロセッサが含まれる。
【0014】補助プロセッサ52は、メインのCPU5
0とは別個の、追加機能を実行したりCPU50を補助
する任意選択のプロセッサである。補助プロセッサの一
般的な種類の1つが、数値計算補助プロセッサとも称す
る浮動小数点補助プロセッサであり、これは、汎用のC
PU50より高速かつ正確に数値計算を実行するように
設計されている。しかし、最近、多くの補助プロセッサ
の機能が、より強力な単一チップ・マイクロプロセッサ
に組み込まれている。
【0015】CPU50は、コンピュータの主データ転
送経路であるシステム・バス54を介して、命令を取り
出し、復号し、実行し、他の資源との間で情報を転送す
る。このようなシステム・バスは、データ処理システム
20内の構成要素を接続し、データ交換用の媒体を定義
する。システム・バス54には、通常、データ送出用の
データ線と、アドレス送出用のアドレス線と、割込み送
出用およびシステム・バス操作用の制御線とが含まれ
る。このようなシステム・バスの例が、PCI(Periph
eral Component Interconnect)バスと、IBM社が商
標「Micro ChannelArchitecture」(マイクロ・チャネ
ル・アーキテクチャ)の下で販売するバスである。マイ
クロ・チャネル・アーキテクチャは、拡張カード、コン
トローラおよびCPU50によるバスへのアクセスを調
節する、バス調停と称する機能を提供する。マイクロ・
チャネルに接続され、バスを占有するように調停される
装置を、バス・マスタと称する。バス・マスタのサポー
トによって、プロセッサおよびそのサポート・チップを
含む追加のバス・マスタ・アダプタによるマイクロ・チ
ャネルの多重プロセッサ構成を作成できるようになる。
【0016】システム・バス54に結合されるメモリに
は、ランダム・アクセス・メモリ(RAM)56、読取
り専用メモリ(ROM)58および不揮発性メモリ60
が含まれる。このようなメモリには、情報の格納と取出
しを可能にする回路が含まれる。ROMには、修正でき
ないデータが格納される。RAMに格納されたデータ
は、CPU50または他のハードウェア装置による読取
りと変更が可能である。不揮発性メモリとは、電源が断
たれた時にデータが消えないメモリである。不揮発性メ
モリには、ROM、EPROM、フラッシュ・メモリ、
バブル・メモリ、バッテリバックアップCMOS RA
Mが含まれる。図2からわかるように、このようなバッ
テリバックアップCMOS RAMは、システム構成情
報の格納に利用することができる。
【0017】RAM56、ROM58および不揮発性メ
モリ60へのアクセスは、メモリ・コントローラ62お
よびバス・コントローラ64によって制御できる。メモ
リ・コントローラ62は、命令を実行する際に仮想アド
レスを物理アドレスに変換するアドレス変換機能を提供
することができる。メモリ・コントローラ62は、シス
テム内のプロセスを分離し、ユーザ・プロセスからシス
テム・プロセスを分離するメモリ保護機能を提供するこ
ともできる。したがって、ユーザ・モードで走行するプ
ログラムは、そのプロセス自体の仮想アドレス空間にマ
ッピングされたメモリだけをアクセスでき、プロセス間
でメモリ共用が設定されない限り、別のプロセスの仮想
アドレス空間内のメモリにアクセスすることはできな
い。
【0018】拡張カードまたは拡張ボードとは、コンピ
ュータに機能または資源を追加する、回路に接続された
チップおよび他の電子構成要素を含む回路基板である。
典型的な拡張カードの追加機能は、メモリ、ディスク駆
動装置コントローラ66、ビデオ・サポート、パラレル
・ポートおよびシリアル・ポート、内蔵モデムである。
ラップトップ・コンピュータ、パームトップ・コンピュ
ータおよび他の可搬コンピュータの場合、拡張カード
は、通常は、クレジット・カード・サイズの、コンピュ
ータの側面または背面のスロットに挿入するように設計
された装置であるPCカードの形態となる。このような
スロットの例が、タイプI、タイプIIおよびタイプI
IIのカード・スロットが定義されているPCMCIA
(PersonalComputer Memory Card International Assoc
iation)スロットである。したがって、空きスロット6
8は、さまざまな種類の拡張カードまたはPCMCIA
カードを受けるのに使用することができる。
【0019】ディスク駆動装置コントローラ66および
ディスケット・コントローラ70の両方に、それぞれハ
ード・ディスク駆動装置72またはフロッピ・ディスク
(ディスケットとも称する)74からの読取りと書込み
を指示し制御する専用集積回路および関連回路が含まれ
る。このようなディスク・コントローラは、読み書きヘ
ッドの位置決め、駆動装置とマイクロプロセッサの間で
の調停、メモリとの情報の転送の制御などの作業を処理
する。単一のディスク・コントローラが、複数のディス
ク駆動装置を制御することができる。
【0020】CD−ROM78(コンパクト・ディスク
読取り専用メモリ)からデータを読み取るために、CD
−ROMコントローラ76をデータ処理システム20に
含めることができる。このようなCD−ROMは、デー
タの読取りに磁気的な手段ではなくレーザー光学系を使
用する。
【0021】キーボード・マウス・コントローラ80
は、キーボード82と、マウス84などのポインティン
グ装置とのインターフェースのためにデータ処理システ
ム20に設けられる。このようなポインティング装置
は、通常は、ユーザがマウス・ボタンを押した時のポイ
ンタの位置を指定するホット・スポットを有する矢印の
形状をとることができる、カーソルなどの画面要素を制
御するのに利用される。他のポインティング装置には、
グラフィックス・タブレット、スタイラス、ライト・ペ
ン、ジョイスティック、パック、トラックボール、トラ
ックパッドおよび、IBM社によって商標「TrackPoint
(トラックポイント)」の下で販売されるポインティン
グ装置が含まれる。
【0022】直接メモリ・アクセス(DMA)コントロ
ーラ86は、CPU50を使用しないメモリ・アクセス
を実現するのに使用することができる。このようなメモ
リ・アクセスは、通常は、メモリと「インテリジェント
な」周辺装置の間、たとえばRAM56とディスク駆動
装置コントローラ66の間で、直接にデータを転送する
のに使用される。
【0023】データ処理システム20と他のデータ処理
システムの間の通信は、どちらもシステム・バス54に
結合されるシリアル・コントローラ88およびネットワ
ーク・アダプタ90によって簡単に行えるようになる。
シリアル・コントローラ88は、コンピュータ間または
コンピュータと周辺装置の間で、単一の線を介して1時
に1ビットずつ情報を送信するのに使用される。シリア
ル通信は、同期式(クロックなどなんらかの時刻基準に
よって制御される)または非同期式(情報の流れを制御
する制御信号の交換によって管理される)とすることが
できる。シリアル通信規格の例には、RS−232イン
ターフェースとRS−422インターフェースが含まれ
る。
【0024】図からわかるように、このようなシリアル
・インターフェースは、モデム92との通信に使用する
ことができる。モデムとは、標準的な電話回線を介して
コンピュータが情報を送信できるようにする通信装置で
ある。モデムは、ディジタルのコンピュータ信号を、電
話回線での通信に適したアナログ信号に変換する。モデ
ム92は、IBM社とSears社によってサービス・
マーク「PRODIGY」の下で提供される情報サービ
スなどのオンライン情報サービスにデータ処理システム
20を接続するのに使用することができる。このような
オンライン・サービス・プロバイダは、モデム92を介
してデータ処理システム20にダウンロードすることの
できるソフトウェアを提供する場合がある。モデム92
は、サーバ、電子掲示板、インターネット、ワールド・
ワイド・ウェブなど、他のソフトウェア供給源への接続
を提供することができる。
【0025】ネットワーク・アダプタ90は、データ処
理システム20をローカル・エリア・ネットワーク94
に接続するのに使用することができる。ローカル・エリ
ア・ネットワーク94は、コンピュータ・ユーザに、電
子的にソフトウェアと情報を通信し、転送する手段を提
供することができる。さらに、ローカル・エリア・ネッ
トワーク94は、複数のコンピュータと、作業負荷の共
用またはタスク実行時の協調動作とを含む、分散処理を
提供することができる。
【0026】表示コントローラ98によって制御される
表示装置96は、データ処理システム20によって生成
された視覚出力を表示するのに使用される。このような
視覚出力には、テキスト、グラフィックス、動画および
ビデオを含めることができる。表示装置96は、CRT
ベースのビデオ表示装置、LCDベースのフラットパネ
ル表示装置、またはガス・プラズマ・ベースのフラット
パネル表示装置を用いて実施できる。表示コントローラ
98には、表示装置96に送られるビデオ信号を生成す
るのに必要な電子構成要素が含まれる。
【0027】プリンタ100は、パラレル・コントロー
ラ102を介してデータ処理システム20に結合するこ
とができる。プリンタ100は、紙またはトランスペア
レンシなどの別の媒体に、コンピュータによって生成さ
れた画像またはテキストを印刷するのに使用される。他
の種類のプリンタに、イメージセッタ、プロッタ、フィ
ルム・レコーダを含めることができる。
【0028】パラレル・コントローラ102は、システ
ム・バス54と、プリンタ100などの別のパラレル通
信装置との間に接続されたワイヤを介して、複数のデー
タ・ビットおよび制御ビットを同時に送るのに使用され
る。最も一般的なパラレル・インターフェースは、セン
トロニクス・インターフェースである。
【0029】データ処理動作中、システム・バス54に
接続されたさまざまな装置が、割込みコントローラ10
4によって処理される割込みを生成する場合がある。割
込みとは、ハードウェアまたはソフトウェアのいずれか
によってCPU50に渡すことができる、CPU50か
らの注目の要求である。割込みは、マイクロプロセッサ
に現在実行中の命令を延期させ、進行中の作業の状態を
保存させ、割込みハンドラと称する特殊なルーチンに制
御を移させる。割込みハンドラは、命令の特定の組を実
行させる。割込みコントローラ104は、割込み優先順
位の階層を処理し、同時の割込み要求を調停するよう要
求される場合がある。割込みコントローラ104は、一
時的に割込みを禁止するのに使用される場合もある。
【0030】ここで図3を参照すると、本発明の方法お
よびシステムによる、データ・セルの作成およびソート
と、そのデータ・セルの分析とを示す、高水準ブロック
図が示されている。図からわかるように、Nバイトのデ
ータ(Nは1より大きい)を含むデータ・ブロック12
0が、データ圧縮のために選択される。通常、Nは、4
096か、ディスク駆動装置のセクタのサイズのように
他の適当な2のべきが選択される。しかし、図3に示さ
れた例では、例示のためにNを8にする。データ・ブロ
ック120内のデータのバイトは、物理的な順序で左か
ら右へbyte(P)として参照でき、このPは、0か
ら7までの整数である。
【0031】データ・ブロック120から、データ構造
またはデータ・セルのグループ122を作成する。グル
ープ内の各データ・セルには、物理タグ124と部分列
126が含まれる。物理タグ124は、データ・セルの
グループ122内での物理的な順序を示す。図示の例で
は、データ・セルのグループ122内のセルは、cel
l(P)として参照でき、このPは、0から7まで(す
なわち、0からNまで)の整数である。
【0032】各cell(P)内の部分列126には、
byte(P)から、byte(P+X)とbyte
(N−1)のうちの小さい方まで延びる、データ・ブロ
ック120からのバイトの列またはシーケンスが含まれ
る。このXは所定の整数である。図示の例では、Xは7
すなわちN−1に等しい。したがって、各部分列126
は、データ・ブロック120のbyte(P)から始ま
り、データ・ブロック120の最終データ・バイトまで
延びる。XにN−1より小さい値を選択すると、全体的
なデータ圧縮効率を大幅に低下させずに、ソータのサイ
ズ、コストまたは速度を改善するのに有用である可能性
がある。
【0033】データ・セルのグループ122を選択した
ならば、辞書ソータ128を使用して、データ・セルの
グループ122を辞書ソートする。この辞書ソートによ
って、N個のセルのそれぞれの部分列126の辞書値に
基づく、データ・セルのグループ122内でのN個のセ
ルの辞書順序が確立される。言い換えると、データ・セ
ルのグループ122は、アルファベット順でソートされ
る、または、各データ・セルの部分列126のバイトの
数値に基づいてソートされる。
【0034】辞書ソータ128の出力を、辞書ソートさ
れたデータ・セルのグループ130として図示する。図
からわかるように、辞書ソートされたデータ・セルのグ
ループ130の部分列126は、上から下に向かって辞
書順またはアルファベット順である。したがって、最初
のデータ・セルと最後のデータ・セルを除いて、データ
・セルのうちの選択された1つは、辞書ソートされたデ
ータ・セルのグループ130内でその選択されたセルに
直接に隣接する、辞書順で先行するセルと辞書順で後続
のセルを有する。たとえば、cell(3)132は、
辞書順でcell(2)134に先行され、辞書順でc
ell(4)136が後に続く。辞書ソートされたデー
タ・セルのグループ130の各セルの右側の列のデータ
は、辞書順で先行するセルおよび後続するセルを突き止
め、現在選択されているセルの部分列と、辞書順で先行
または後続するセルの部分列との間で最も長い一致する
列の長さを判定する分析の結果である。このような一致
する列の探索は、比較する部分列の先頭からバイト単位
で実行される。たとえば、cell(3)132は、辞
書順でcell(2)134に先行され、長さが3の一
致する列が含まれる。同様に、cell(3)132
は、辞書順でcell(4)136が後続し、長さが2
の一致する列が含まれる。この種の情報は、下で説明す
るバックエンド符号化で使用される。
【0035】ここで図4を参照すると、本発明の方法お
よびシステムによる、図3に示されたデータ圧縮用のフ
ロントエンド処理を実行する処理を示す高水準流れ図が
示されている。図からわかるように、フロントエンド処
理は、ブロック150で開始され、その後、ブロック1
52に進む。その後、この処理は、Nバイトの入力ブロ
ックからN個のデータ・セルを作成する。N個のデータ
・セルのそれぞれには、(1)Nバイトの入力ブロック
のバイトのデータに関するそのセルの元々の物理的順序
を表す物理タグ「P」と、(2)byte(P)から始
まり、所定のバイト数だけ延びるか、Nバイトの入力ブ
ロックの最終バイトまで延びる、バイトの部分列が含ま
れる。
【0036】次に、この処理では、バッチャ・ソーティ
ング・ネットワークを使用してN個のセルの部分列に対
する辞書ソートを実行する。ソーティング・ネットワー
クとは、複数の入力で複数の順序付けられていないデー
タまたはセルを受け入れ、同じデータまたはセルを複数
の出力でソートされた順序で配布することができる装置
である。このようなソートは、通常は、あるセルの内容
と他の入力セルの内容との一連の比較に基づいて各デー
タ・セルを正しい出力に経路指定するように巧妙に接続
された、比較要素によって発動される交換機の適当な内
部組み合わせによって達成される。バッチャ・ソーティ
ング・ネットワークでは、特に優雅で効率的な交換要素
の配置が使用され、これによって、n個のセルをO(l
og2(n))個のパイプライン化可能ステージを使用
してソートできるようになっている。バッチャ・ソーテ
ィング・ネットワークの詳細については、クレイグ・パ
ートリッジ(Craig Partridge)著、"Gigabit Networki
ng"(Addison-Wesley Publishing Company, Inc ., Cop
yright 1994)を参照されたい。
【0037】その後、ブロック156に示されるよう
に、フロントエンド処理を終了する。
【0038】図4のブロック154で使用される辞書ソ
ータは、バッチャ・ソーティング・ネットワークとして
説明されているが、バッチャ・ソーティング・ネットワ
ークに類似の速度、サイズ、コストおよび複雑さを有す
る他の辞書ソータを使用することができる。たとえば、
奇偶マージ・ソート・ネットワークを使用して、ゲート
数のわずかな減少を達成することができる。
【0039】ここで図5を参照すると、本発明の方法お
よびシステムによる、バックエンド処理でデータを符号
化する処理を示す高水準流れ図が示されている。図から
わかるように、バックエンド処理は、ブロック170で
開始され、その後、ブロック172に進んで、物理タグ
「P」に0をセットする。その後、図3の辞書ソートさ
れたデータ・セルのグループ130などの辞書ソートさ
れたリストから、cell(P)を選択する。cell
(P)は、必ずしも辞書ソートされたリストの先頭のセ
ルではないことに留意されたい。流れ図のこの時点での
cell(P)は、物理タグが0に等しいセルであり、
図4のブロック152で作成される最初のセルである。
【0040】次に、この処理では、ブロック176に示
されるように、cell(L−1)によって表される辞
書順で先行するセルが、物理的にcell(P)に先行
するか否かと、cell(P)の部分列とcell(L
−1)の部分列が、1より大きい長さを有する一致する
列を含むか否かを判定する。辞書順で先行するcell
(L−1)が物理的にcell(P)に先行しないか、
1より長い長さを有する一致する列が含まれないか、そ
の両方の場合には、処理はブロック178に進む。ブロ
ック178では、辞書順で後続するcell(L+1)
が物理的にcell(P)に先行するか否かと、1より
長い長さを有するcell(P)の列に一致するか否か
を判定する。辞書順で後続するセルが物理的にcell
(P)に先行しないか、1より長い長さを有するcel
l(P)の列と一致しないか、その両方の場合には、ブ
ロック180に示されるように、cell(P)の最初
のバイトを含む生トークンを出力する。その後、ブロッ
ク182に示されるように、Pを1つ増分し、ブロック
184に示されるように、辞書ソートされたデータ・セ
ルのグループに処理の必要な追加のセルがあるか否かを
判定する。処理の必要な追加のセルがある場合、ブロッ
ク174で、新たに選択されたcell(P)を用いて
処理を継続する。すべてのセルを処理し終えた場合、ブ
ロック186に示されるようにバックエンド処理を終了
する。
【0041】ブロック176に戻って、辞書順で先行す
るセルが、選択されたcell(P)に物理的に先行
し、かつ、cell(P)の列と一致する、1より長い
長さを有する列を含む場合には、ブロック188に示さ
れるように、辞書順で後続するcell(L+1)を調
べて、そのセルが物理的にcell(P)に先行するか
否かと、1より長い長さを有するそのセルの列がcel
l(P)の列に一致するか否かを判定する。辞書順で先
行するセルと辞書順で後続するセルの両方が物理的にc
ell(P)に先行し、その両者がcell(P)の列
に一致する1より長い長さを有する列を含む場合には、
ブロック190に示されるように、この処理では、最長
の一致する列を有するセルを選択する。
【0042】最長の一致する列を有するセルが選択され
た後、または、物理的に先行するセルだけがこれらの条
件を満たすと判定された後には、ブロック192に示さ
れるように、変数「SL」に一致する列の長さをセット
する。その後、ブロック194に示されるように、Pに
等しい指標とSLに等しい列長さを用いて圧縮トークン
を出力する。
【0043】次に、ブロック196に示されるように、
列長さSLをPに加える。これによって、ブロック19
4に示されたように圧縮列トークンが出力されるので、
バックエンド処理の間に複数の物理セルがスキップされ
ることになる。次に、ブロック184に示されるよう
に、処理すべき追加のセルがあるかどうかを判定する。
処理すべき追加のセルがある場合、処理はブロック17
4に継続し、処理すべき追加のセルがない場合、この処
理はブロック186に示されるようにバックエンド処理
を終了する。
【0044】ここで図6を参照すると、本発明の方法お
よびシステムによるデータのブロックの符号化の擬似コ
ードが示されている。この図には、図5に示されたよう
に、選択されたセルに物理的に先行する、辞書順で先行
または後続するセルから最長の一致するシーケンスを選
択するのに必要な種類のコードが示されている。擬似コ
ードは左側に示され、擬似コードの実行から生じる出力
は、図の右側に示される。生トークンは、文字「r」に
よって表され、圧縮トークンは、文字「c」によって表
される。
【0045】ここで図7を参照すると、本発明の方法お
よびシステムによるバックエンド処理でのデータ符号化
の処理中のデータの流れを示す高水準ブロック図が示さ
れている。図からわかるように、辞書ソートされたデー
タ・セルのグループ130は、バックエンド処理のため
にcell(3)132を選択された状態で図示されて
いる。図7に示された例では、選択されたcell
(3)132が、辞書順で先行するセル、この例ではc
ell(2)134のみと比較される。
【0046】列比較ブロック200は、cell(3)
132およびcell(2)134から部分列126を
受け取り、部分列のそれぞれの先頭文字から1バイト単
位で比較した時の一致する列の長さを判定する。図7の
例に示された比較では、一致する列の長さは3に等し
い。
【0047】2つのセルの列と一致する列のこの長さ
を、ブロック202に入力して、一致する列の長さが十
分に長いか否かを判定する。この例では、十分に長いと
みなされる列は、1より大きい長さを有する列である。
【0048】選択されたcell(3)132および辞
書順で先行するcell(2)134の両方からの物理
タグ124を、物理タグ比較機構204に入力する。物
理タグ比較機構204は、辞書順で先行するcell
(2)134が、選択されたcell(3)132に物
理的に先行するか否かを判定する。この例では、辞書順
で先行するセルが、選択されたセルに物理的に先行しな
い。というのは、辞書順で先行するcell(2)の物
理タグが、選択されたcell(3)の物理タグより小
さいからである。
【0049】ANDゲート206は、ブロック202お
よび物理タグ比較機構204から論理入力を受け取る。
この例では、列一致長さが1より大きく、辞書順で先行
するセルが選択されたセルに物理的に先行するので、ど
ちらの入力も真である。したがって、ANDゲート20
6の出力は真になり、その結果、論理回路208はイネ
ーブルされ、論理回路210はイネーブルされない。
【0050】論理回路208は、列比較ブロック200
から一致する列の長さを受け取り、辞書順で先行するc
ell(2)134から物理タグ124を受け取る。こ
れらの入力から、論理回路208は、cell(2)1
34からの指標P'と列比較ブロック200からの列長
さSLを用いて圧縮トークンを作成する。
【0051】ブロック202によって一致する列の長さ
が十分に長くはないと判定されるか、辞書順で先行する
セルが選択されたセルに物理的に先行しないか、その両
方の場合には、ANDゲート206の出力が偽になり、
論理回路210がイネーブルされる。この場合、論理回
路210は、選択されたcell(3)132から部分
列126の最初のバイトを受け取り、圧縮データ・セッ
トの一部として出力に送られる生トークンを作成する。
【0052】最後に、図8を参照すると、本発明の方法
およびシステムによるデータ符号化の処理のもう1つの
実施例でのデータの流れを示す高水準ブロック図が示さ
れている。図8に示された例では、辞書順で先行するセ
ルと辞書順で後続するセルの両方を、選択されたセルと
比較して、列一致長さと、それらのセルが選択されたセ
ルに物理的に先行するか否かを判定する。列一致長さ
は、列比較機構220および222によって判定され
る。セルが選択されたセルに先行するか否かは、ブロッ
ク224および226によって判定される。マルチプレ
クサ制御228は、選択されたセルに物理的に先行し、
最長の一致する列長さを有する辞書順で先行または後続
するセルを選択する。この条件に応答してこのセルが選
択されたならば、マルチプレクサ制御228は、論理回
路230をイネーブルし、マルチプレクサ232の適当
な入力を選択する。これらの条件が満たされない場合、
マルチプレクサ制御228は、論理回路234をイネー
ブルする。
【0053】論理回路230は、マルチプレクサ232
の出力から、最長の一致する文字列長さSLと、最長の
一致する文字列を有するセルに属する物理タグ124を
受け取る。イネーブルされ、これらの入力を受け取るこ
とに応答して、論理回路230は、列トークンを作成
し、その列トークンを出力に送って、圧縮データ・セッ
トの一部にする。
【0054】論理回路234は、マルチプレクサ制御2
28によるイネーブルに応答して、選択されたcell
(3)132の部分列126から最初のバイトを受け取
り、生トークンを作成する。この生トークンは、出力に
送られ、圧縮データ・セットの一部になる。
【0055】上で示したように、本発明の諸態様は、コ
ンピュータ・システム上で実施可能な特定の「方法機
能」に属する。代替実施例では、本発明を、コンピュー
タ・システム内で使用するためのコンピュータ・プログ
ラム製品として実施することができる。本発明の長所の
いくつかは、並列動作としてソート動作を実行した結果
であるから、このようなコンピュータ・システムには、
上で開示した並列ソート動作の実行に使用することがで
きる、複数のCPU50またはシステム・バス54に接
続された専用の補助プロセッサ52が含まれることが好
ましい。当業者であれば、本発明の機能を定義するプロ
グラムを、多くの形態でコンピュータに配布することが
でき、この形態には、(a)書込み不能記憶媒体(たと
えば、ROM58などのコンピュータ内の読取り専用装
置や、コンピュータ入出力アタッチメントによって読取
り可能なCD−ROM78など)に永久的に格納された
情報、(b)書込み可能記憶媒体(たとえば、フロッピ
・ディスク74やハード・ディスク駆動装置72)に格
納された情報、または(c)ローカル・エリア・ネット
ワーク94やモデム92経由の電話ネットワークなどの
通信媒体を介してコンピュータに運ばれる情報が含まれ
るが、これらに制限されないことを容易に諒解するであ
ろう。したがって、本発明の方法機能を指示するコンピ
ュータ可読命令を担持する時の上記媒体は、本発明の代
替実施例を表すことを理解されたい。
【0056】本発明の好ましい実施例の上記説明は、例
示と解説の目的で提示されたものである。これは、網羅
的ではなく、開示された正確な形態に本発明を制限する
ものでもない。上の教示に鑑みて、明白な修正または変
形が可能である。この実施例は、本発明の原理とその実
用的な応用例を最もよく例示するため、当業者が、ま
た、意図された特定の用途に適したさまざまな修正を加
え、さまざまな実施例に本発明を利用できるようにする
ために選択され、説明された。このような修正および変
形のすべてが、公平、合法的かつ公正に権利を与えられ
る範囲に従って請求項を解釈する時に、請求項によって
決定される本発明の範囲に含まれる。
【0057】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0058】(1)(a)1より大きい整数のNについ
て、データ処理システム内でNバイトのブロックを選択
するステップと、 (b)各セルが、[1]0からN−1までの整数である
ことを特徴とし、前記セルのそれぞれがcell(P)
として参照されることを特徴とする、N個のデータ・セ
ルのグループ内での物理順序を示す物理タグPと、
[2]Xが所定の整数であるものとして、前記cell
(P)内の部分列が、byte(P)から、byte
(P+X)とbyte(N−1)のうちの小さい方まで
延びる、前記Nバイトのブロックからのバイトの連なり
を含むことを特徴とする、前記部分列とを有する、前記
N個のデータ・セルのグループを作成するステップと、 (c)前記N個のセルの辞書順が、前記N個のセルのそ
れぞれの前記部分列の辞書値に基づいて確立されるよう
に、前記N個のセルのグループを辞書ソートするステッ
プと、 (d)前記辞書ソートされたN個のセルのグループの前
記N個のセルのうちの選択された1つの前記部分列内で
一致する列を識別するステップと、 (e)前記識別された一致する列を利用して圧縮データ
・セットを作ることによって前記Nバイトのブロックを
符号化するステップとを含み、前記圧縮データ・セット
が、前記辞書ソートされたN個のセルのグループ内の冗
長情報を識別することによって効率的に作られることを
特徴とする、データ処理システムにおける効率的にデー
タを圧縮するための方法。 (2)前記辞書ソートされたN個のセルのグループの前
記N個のセルのうちの選択された1つの前記部分列内で
一致する列を識別する前記ステップが、一致する列を識
別するために前記辞書ソートされたN個のセルのグルー
プ内で辞書順に隣接するセルを比較するステップを含む
ことを特徴とする、上記(1)に記載の方法。 (3)一致する列を識別するために前記辞書ソートされ
たN個のセルのグループ内で辞書順に隣接するセルを比
較する前記ステップが、選択されたセルの部分列を、前
記部分列で1つまたは複数の一致するバイトの列を見つ
けるために、辞書順で先行するセルの部分列および辞書
順で後続するセルの部分列と比較するステップを含むこ
とを特徴とする、上記(2)に記載の方法。 (4)前記 (d)前記辞書ソートされたN個のセルのグループの前
記N個のセルのうちの選択された1つの前記部分列内で
一致する列を識別するステップと、 (e)前記識別された一致する列を利用して圧縮データ
・セットを作ることによって前記Nバイトのブロックを
符号化するステップとが、さらに、 (f)cell(P)を選択するステップと、 (g)cell(P)に対して辞書順で先行するセルお
よび辞書順で後続するセルから、[1]前記選択された
cell(P)に物理的に先行し、[2]前記選択され
たcell(P)の前記部分列の先頭から対応するバイ
トに一致する、最も長い一致するバイトの列をその部分
列に含む、一致するセルを選択するステップと、 (h)前記一致するセルが、1より大きい長さLを有す
る前記一致するバイトの列を含む場合に、前記一致する
セルの物理タグPに等しい指標とLに等しい長さとを有
する圧縮トークンを出力するステップと、 (i)ステップ(g)で一致するセルが選択されない場
合に、前記選択されたcell(P)の部分列の最初の
文字を含む生トークンを出力するステップとを含むこと
を特徴とする、上記(1)に記載の方法。 (5)次のcell(P)を選択するステップと、前記
Nバイトのブロックが符号化されるまで、前記圧縮デー
タ・セットを作るために、ステップ(g)ないしステッ
プ(i)を繰り返すステップとを含むことを特徴とす
る、上記(4)に記載の方法。 (6)前記N個のセルのグループを辞書ソートする前記
ステップが、バッチャ・ソーティング・ネットワークを
使用して前記N個のセルのグループを辞書ソートするス
テップを含むことを特徴とする、上記(1)に記載の方
法。 (7)前記N個のセルのグループを辞書ソートする前記
ステップが、1サイクルあたり複数のセルを並列に処理
するソータを使用して前記N個のセルのグループを辞書
ソートするステップを含むことを特徴とする、上記
(1)に記載の方法。 (8)一致する列を識別する前記ステップが、第1の選
択されたセルの部分列と第2の選択されたセルの部分列
を、各部分列の先頭から対応するバイトの1バイト単位
の比較を用いて比較するステップを含むことを特徴とす
る、上記(1)に記載の方法。 (9)1より大きい整数のNについて、データ処理シス
テム内でNバイトのブロックを選択する手段と、各セル
が、[1]0からN−1までの整数であることを特徴と
し、前記セルのそれぞれがcell(P)として参照さ
れることを特徴とする、N個のデータ・セルのグループ
内での物理順序を示す物理タグPと、[2]Xが所定の
整数であるものとして、前記cell(P)内の部分列
が、byte(P)から、byte(P+X)とbyt
e(N−1)のうちの小さい方まで延びる、前記Nバイ
トのブロックからのバイトの連なりを含むことを特徴と
する、前記部分列とを有する、前記N個のデータ・セル
のグループを作成する手段と、前記N個のセルの辞書順
が、前記N個のセルのそれぞれの前記部分列の辞書値に
基づいて確立されるように、前記N個のセルのグループ
を辞書ソートする手段と、前記辞書ソートされたN個の
セルのグループの前記N個のセルのうちの選択された1
つの前記部分列内で一致する列を識別する手段と、前記
識別された一致する列を利用して圧縮データ・セットを
作ることによって前記Nバイトのブロックを符号化する
手段とを含み、前記圧縮データ・セットが、前記辞書ソ
ートされたN個のセルのグループ内の冗長情報を識別す
ることによって効率的に作られることを特徴とする、効
率的にデータを圧縮するためのデータ処理システム。 (10)前記辞書ソートされたN個のセルのグループの
前記N個のセルのうちの選択された1つの前記部分列内
で一致する列を識別する前記手段が、一致する列を識別
するために前記辞書ソートされたN個のセルのグループ
内で辞書順に隣接するセルを比較する手段を含むことを
特徴とする、上記(9)に記載の効率的にデータを圧縮
するためのデータ処理システム。 (11)一致する列を識別するために前記辞書ソートさ
れたN個のセルのグループ内で辞書順に隣接するセルを
比較する前記手段が、選択されたセルの部分列を、前記
部分列で1つまたは複数の一致するバイトの列を見つけ
るために、辞書順で先行するセルの部分列および辞書順
で後続するセルの部分列と比較する手段を含むことを特
徴とする、上記(10)に記載の効率的にデータを圧縮
するためのデータ処理システム。 (12)前記 前記辞書ソートされたN個のセルのグループの前記N個
のセルのうちの選択された1つの前記部分列内で一致す
る列を識別する手段と、前記識別された一致する列を利
用して圧縮データ・セットを作ることによって前記Nバ
イトのブロックを符号化する手段とが、さらに、cel
l(P)を選択する手段と、cell(P)に対して辞
書順で先行するセルおよび辞書順で後続するセルから、
[1]前記選択されたcell(P)に物理的に先行
し、[2]前記選択されたcell(P)の前記部分列
の先頭から対応するバイトに一致する、最も長い一致す
るバイトの列をその部分列に含む、一致するセルを選択
する手段と、前記一致するセルが、1より大きい長さL
を有する前記一致するバイトの列を含むことに応答し
て、前記一致するセルの物理タグPに等しい指標とLに
等しい長さとを有する圧縮トークンを出力する手段と、
前記辞書順で先行するセルおよび辞書順で後続するセル
のいずれかが、前記選択されたcell(P)に物理的
に後続するか、2より小さい長さを有する最長の一致す
るバイトの列を有することに応答して、前記選択された
cell(P)の部分列の最初の文字を含む生トークン
を出力する手段とを含むことを特徴とする、上記(9)
に記載の効率的にデータを圧縮するためのデータ処理シ
ステム。 (13)生トークンまたは長さLを有する圧縮トークン
のいずれかの出力に応答して、次のcell(P)を選
択する手段をさらに含む、上記(12)に記載の効率的
にデータを圧縮するためのデータ処理システム。 (14)前記N個のセルのグループを辞書ソートする前
記手段が、前記N個のセルのグループを辞書ソートする
ためのバッチャ・ソーティング・ネットワークを含むこ
とを特徴とする、上記(9)に記載の効率的にデータを
圧縮するためのデータ処理システム。 (15)前記N個のセルのグループを辞書ソートする前
記手段が、1サイクルあたり複数のバイトを並列に処理
するソータを含むことを特徴とする、上記(9)に記載
の効率的にデータを圧縮するためのデータ処理システ
ム。 (16)一致する列を識別する前記手段が、第1の選択
されたセルの部分列と第2の選択されたセルの部分列
を、各部分列の先頭から対応するバイトの1バイト単位
の比較を用いて比較する手段を含むことを特徴とする、
上記(9)に記載の効率的にデータを圧縮するためのデ
ータ処理システム。
【図面の簡単な説明】
【図1】本発明の方法およびシステムによるデータ処理
システムを示す図である。
【図2】図1のデータ処理システムの主要な構成要素を
さらに示す高水準ブロック図である。
【図3】本発明の方法およびシステムによる、データ・
セルの作成およびソートと、そのデータ・セルの分析を
示す高水準ブロック図である。
【図4】本発明の方法およびシステムによる、データ圧
縮用のフロントエンド処理を実行する処理を示す高水準
流れ図である。
【図5】本発明の方法およびシステムによる、バックエ
ンド処理でのデータ符号化の処理を示す高水準流れ図で
ある。
【図6】本発明の方法およびシステムによるデータのブ
ロックの符号化の擬似コードである。
【図7】本発明の方法およびシステムによる、データ符
号化の処理のデータの流れを示す高水準ブロック図であ
る。
【図8】本発明の方法およびシステムによる、データ符
号化の処理のもう1つの実施例でのデータの流れを示
す、高水準ブロック図である。
【符号の説明】
20 データ処理システム 22 プロセッサ 24 キーボード 26 表示装置 28 ケーブル 30 表示画面 32 ポインティング装置 34 モデム 36 CD−ROM 38 ネットワーク・アダプタ 40 フロッピ・ディスク駆動装置 42 プリンタ
フロントページの続き (56)参考文献 特開 平2−33632(JP,A) 特開 平7−239771(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40 G06F 12/00

Claims (16)

    (57)【特許請求の範囲】
  1. 【請求項1】(a)1より大きい整数のNについて、デ
    ータ処理システム内でNバイトのブロックを選択するス
    テップと、 (b)各セルが、 [1]0からN−1までの整数であることを特徴とし、
    前記セルのそれぞれがcell(P)として参照される
    ことを特徴とする、N個のデータ・セルのグループ内で
    の物理順序を示す物理タグPと、[2]Xが所定の整数
    であるものとして、前記cell(P)内の部分列が、
    byte(P)から、byte(P+X)とbyte
    (N−1)のうちの小さい方まで延びる、前記Nバイト
    のブロックからのバイトの連なりを含むことを特徴とす
    る、前記部分列とを有する、前記N個のデータ・セルの
    グループを作成するステップと、 (c)前記N個のセルの辞書順が、前記N個のセルのそ
    れぞれの前記部分列の辞書値に基づいて確立されるよう
    に、前記N個のセルのグループを辞書ソートするステッ
    プと、 (d)前記辞書ソートされたN個のセルのグループの前
    記N個のセルのうちの選択された1つの前記部分列内で
    一致する列を識別するステップと、 (e)前記識別された一致する列を利用して圧縮データ
    ・セットを作ることによって前記Nバイトのブロックを
    符号化するステップとを含み、前記圧縮データ・セット
    が、前記辞書ソートされたN個のセルのグループ内の冗
    長情報を識別することによって効率的に作られることを
    特徴とする、データ処理システムにおける効率的にデー
    タを圧縮するための方法。
  2. 【請求項2】前記辞書ソートされたN個のセルのグルー
    プの前記N個のセルのうちの選択された1つの前記部分
    列内で一致する列を識別する前記ステップが、一致する
    列を識別するために前記辞書ソートされたN個のセルの
    グループ内で辞書順に隣接するセルを比較するステップ
    を含むことを特徴とする、請求項1に記載の方法。
  3. 【請求項3】一致する列を識別するために前記辞書ソー
    トされたN個のセルのグループ内で辞書順に隣接するセ
    ルを比較する前記ステップが、選択されたセルの部分列
    を、前記部分列で1つまたは複数の一致するバイトの列
    を見つけるために、辞書順で先行するセルの部分列およ
    び辞書順で後続するセルの部分列と比較するステップを
    含むことを特徴とする、請求項2に記載の方法。
  4. 【請求項4】前記 (d)前記辞書ソートされたN個のセルのグループの前
    記N個のセルのうちの選択された1つの前記部分列内で
    一致する列を識別するステップと、 (e)前記識別された一致する列を利用して圧縮データ
    ・セットを作ることによって前記Nバイトのブロックを
    符号化するステップとが、さらに、 (f)cell(P)を選択するステップと、 (g)cell(P)に対して辞書順で先行するセルお
    よび辞書順で後続するセルから、[1]前記選択された
    cell(P)に物理的に先行し、[2]前記選択され
    たcell(P)の前記部分列の先頭から対応するバイ
    トに一致する、最も長い一致するバイトの列をその部分
    列に含む、一致するセルを選択するステップと、 (h)前記一致するセルが、1より大きい長さLを有す
    る前記一致するバイトの列を含む場合に、前記一致する
    セルの物理タグPに等しい指標とLに等しい長さとを有
    する圧縮トークンを出力するステップと、 (i)ステップ(g)で一致するセルが選択されない場
    合に、前記選択されたcell(P)の部分列の最初の
    文字を含む生トークンを出力するステップとを含むこと
    を特徴とする、請求項1に記載の方法。
  5. 【請求項5】次のcell(P)を選択するステップ
    と、 前記Nバイトのブロックが符号化されるまで、前記圧縮
    データ・セットを作るために、ステップ(g)ないしス
    テップ(i)を繰り返すステップとを含むことを特徴と
    する、請求項4に記載の方法。
  6. 【請求項6】前記N個のセルのグループを辞書ソートす
    る前記ステップが、バッチャ・ソーティング・ネットワ
    ークを使用して前記N個のセルのグループを辞書ソート
    するステップを含むことを特徴とする、請求項1に記載
    の方法。
  7. 【請求項7】前記N個のセルのグループを辞書ソートす
    る前記ステップが、1サイクルあたり複数のセルを並列
    に処理するソータを使用して前記N個のセルのグループ
    を辞書ソートするステップを含むことを特徴とする、請
    求項1に記載の方法。
  8. 【請求項8】一致する列を識別する前記ステップが、第
    1の選択されたセルの部分列と第2の選択されたセルの
    部分列を、各部分列の先頭から対応するバイトの1バイ
    ト単位の比較を用いて比較するステップを含むことを特
    徴とする、請求項1に記載の方法。
  9. 【請求項9】1より大きい整数のNについて、データ処
    理システム内でNバイトのブロックを選択する手段と、 各セルが、 [1]0からN−1までの整数であることを特徴とし、
    前記セルのそれぞれがcell(P)として参照される
    ことを特徴とする、N個のデータ・セルのグループ内で
    の物理順序を示す物理タグPと、 [2]Xが所定の整数であるものとして、前記cell
    (P)内の部分列が、byte(P)から、byte
    (P+X)とbyte(N−1)のうちの小さい方まで
    延びる、前記Nバイトのブロックからのバイトの連なり
    を含むことを特徴とする、前記部分列とを有する、前記
    N個のデータ・セルのグループを作成する手段と、 前記N個のセルの辞書順が、前記N個のセルのそれぞれ
    の前記部分列の辞書値に基づいて確立されるように、前
    記N個のセルのグループを辞書ソートする手段と、 前記辞書ソートされたN個のセルのグループの前記N個
    のセルのうちの選択された1つの前記部分列内で一致す
    る列を識別する手段と、 前記識別された一致する列を利用して圧縮データ・セッ
    トを作ることによって前記Nバイトのブロックを符号化
    する手段とを含み、前記圧縮データ・セットが、前記辞
    書ソートされたN個のセルのグループ内の冗長情報を識
    別することによって効率的に作られることを特徴とす
    る、効率的にデータを圧縮するためのデータ処理システ
    ム。
  10. 【請求項10】前記辞書ソートされたN個のセルのグル
    ープの前記N個のセルのうちの選択された1つの前記部
    分列内で一致する列を識別する前記手段が、一致する列
    を識別するために前記辞書ソートされたN個のセルのグ
    ループ内で辞書順に隣接するセルを比較する手段を含む
    ことを特徴とする、請求項9に記載の効率的にデータを
    圧縮するためのデータ処理システム。
  11. 【請求項11】一致する列を識別するために前記辞書ソ
    ートされたN個のセルのグループ内で辞書順に隣接する
    セルを比較する前記手段が、選択されたセルの部分列
    を、前記部分列で1つまたは複数の一致するバイトの列
    を見つけるために、辞書順で先行するセルの部分列およ
    び辞書順で後続するセルの部分列と比較する手段を含む
    ことを特徴とする、請求項10に記載の効率的にデータ
    を圧縮するためのデータ処理システム。
  12. 【請求項12】前記 前記辞書ソートされたN個のセルのグループの前記N個
    のセルのうちの選択された1つの前記部分列内で一致す
    る列を識別する手段と、 前記識別された一致する列を利用して圧縮データ・セッ
    トを作ることによって前記Nバイトのブロックを符号化
    する手段とが、さらに、 cell(P)を選択する手段と、 cell(P)に対して辞書順で先行するセルおよび辞
    書順で後続するセルから、[1]前記選択されたcel
    l(P)に物理的に先行し、[2]前記選択されたce
    ll(P)の前記部分列の先頭から対応するバイトに一
    致する、最も長い一致するバイトの列をその部分列に含
    む、一致するセルを選択する手段と、 前記一致するセルが、1より大きい長さLを有する前記
    一致するバイトの列を含むことに応答して、前記一致す
    るセルの物理タグPに等しい指標とLに等しい長さとを
    有する圧縮トークンを出力する手段と、 前記辞書順で先行するセルおよび辞書順で後続するセル
    のいずれかが、前記選択されたcell(P)に物理的
    に後続するか、2より小さい長さを有する最長の一致す
    るバイトの列を有することに応答して、前記選択された
    cell(P)の部分列の最初の文字を含む生トークン
    を出力する手段とを含むことを特徴とする、請求項9に
    記載の効率的にデータを圧縮するためのデータ処理シス
    テム。
  13. 【請求項13】生トークンまたは長さLを有する圧縮ト
    ークンのいずれかの出力に応答して、次のcell
    (P)を選択する手段をさらに含む、請求項12に記載
    の効率的にデータを圧縮するためのデータ処理システ
    ム。
  14. 【請求項14】前記N個のセルのグループを辞書ソート
    する前記手段が、前記N個のセルのグループを辞書ソー
    トするためのバッチャ・ソーティング・ネットワークを
    含むことを特徴とする、請求項9に記載の効率的にデー
    タを圧縮するためのデータ処理システム。
  15. 【請求項15】前記N個のセルのグループを辞書ソート
    する前記手段が、1サイクルあたり複数のバイトを並列
    に処理するソータを含むことを特徴とする、請求項9に
    記載の効率的にデータを圧縮するためのデータ処理シス
    テム。
  16. 【請求項16】一致する列を識別する前記手段が、第1
    の選択されたセルの部分列と第2の選択されたセルの部
    分列を、各部分列の先頭から対応するバイトの1バイト
    単位の比較を用いて比較する手段を含むことを特徴とす
    る、請求項9に記載の効率的にデータを圧縮するための
    データ処理システム。
JP30016196A 1995-11-20 1996-11-12 データ圧縮方法およびデータ処理システム Expired - Fee Related JP3213244B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/559,673 US5659755A (en) 1995-11-20 1995-11-20 Method and system in a data processing system for efficiently compressing data using a sorting network
US08/559673 1995-11-20

Publications (2)

Publication Number Publication Date
JPH09223972A JPH09223972A (ja) 1997-08-26
JP3213244B2 true JP3213244B2 (ja) 2001-10-02

Family

ID=24234552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30016196A Expired - Fee Related JP3213244B2 (ja) 1995-11-20 1996-11-12 データ圧縮方法およびデータ処理システム

Country Status (2)

Country Link
US (1) US5659755A (ja)
JP (1) JP3213244B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1005674A4 (en) * 1997-07-15 2002-03-13 Pocket Soft Inc SYSTEM FOR DETECTING DIFFERENCES BETWEEN TWO COMPUTER FILES AND UPDATING OF COMPUTER FILES
US6311223B1 (en) * 1997-11-03 2001-10-30 International Business Machines Corporation Effective transmission of documents in hypertext markup language (HTML)
US5969647A (en) * 1998-05-13 1999-10-19 Dbtel Incorporated Method of compressing letters in a caller identification code system
US6449689B1 (en) 1999-08-31 2002-09-10 International Business Machines Corporation System and method for efficiently storing compressed data on a hard disk drive
US6360300B1 (en) 1999-08-31 2002-03-19 International Business Machines Corporation System and method for storing compressed and uncompressed data on a hard disk drive
US6470345B1 (en) 2000-01-04 2002-10-22 International Business Machines Corporation Replacement of substrings in file/directory pathnames with numeric tokens
US7284111B1 (en) 2002-04-17 2007-10-16 Dinochip, Inc. Integrated multidimensional sorter
US7143115B2 (en) * 2003-04-15 2006-11-28 Pocket Soft, Inc. Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files
US7362765B1 (en) 2003-12-15 2008-04-22 Dinochip, Inc. Network traffic management system with floating point sorter
US7352697B1 (en) 2004-06-23 2008-04-01 Dinochip, Inc. Network processing using fractional time stamp values
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
JP5524144B2 (ja) 2011-08-08 2014-06-18 株式会社東芝 key−valueストア方式を有するメモリシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4630300A (en) * 1983-10-05 1986-12-16 United States Of America As Represented By The Secretary Of The Navy Front-end processor for narrowband transmission
US4922537A (en) * 1987-06-02 1990-05-01 Frederiksen & Shu Laboratories, Inc. Method and apparatus employing audio frequency offset extraction and floating-point conversion for digitally encoding and decoding high-fidelity audio signals
FR2628276B1 (fr) * 1988-03-02 1991-06-28 France Etat Procede de reduction de debit d'une sequence de donnees d'assistance a la reconstitution d'une image electronique a partir d'un signal sous-echantillonne
US5003307A (en) * 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
AU624205B2 (en) * 1989-01-23 1992-06-04 General Electric Capital Corporation Variable length string matcher
US5055919A (en) * 1989-10-10 1991-10-08 Unisys Corporation Apparatus for image data transposition and compression/decompression
US5245337A (en) * 1991-05-29 1993-09-14 Triada, Ltd. Data compression with pipeline processors having separate memories
US5179378A (en) * 1991-07-30 1993-01-12 University Of South Florida Method and apparatus for the compression and decompression of data using Lempel-Ziv based techniques
US5426779A (en) * 1991-09-13 1995-06-20 Salient Software, Inc. Method and apparatus for locating longest prior target string matching current string in buffer
US5369605A (en) * 1993-07-07 1994-11-29 Dell Usa, L.P. Incremental search content addressable memory for increased data compression efficiency
US5488365A (en) * 1994-03-01 1996-01-30 Hewlett-Packard Company Method and apparatus for compressing and decompressing short blocks of data

Also Published As

Publication number Publication date
JPH09223972A (ja) 1997-08-26
US5659755A (en) 1997-08-19

Similar Documents

Publication Publication Date Title
US5819102A (en) Formula processor having cache means for storing and retrieving results of previously computed formulas base on identification and dependency informations
US5452451A (en) System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US6078977A (en) Hierarchical bus structure access system
US5408626A (en) One clock address pipelining in segmentation unit
US6925553B2 (en) Staggering execution of a single packed data instruction using the same circuit
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
JP3213244B2 (ja) データ圧縮方法およびデータ処理システム
US5805086A (en) Method and system for compressing data that facilitates high-speed data decompression
US5187783A (en) Controller for direct memory access
US7185179B1 (en) Architecture of a parallel computer and an information processing unit using the same
US6748466B2 (en) Method and apparatus for high throughput short packet transfers with minimum memory footprint
JPH04293161A (ja) 文書検索方法および装置
US20130159624A1 (en) Storing the most significant and the least significant bytes of characters at non-contiguous addresses
US6260123B1 (en) Method and system for memory control and access in data processing systems
JPH0721325A (ja) オンライン手書き文字入力の方法および装置
US6640220B1 (en) Search coprocessor subsystem having multiple search engines and dedicated key-table memory for connection to a computer system
US6226721B1 (en) Method and system for generating and utilizing speculative memory access requests in data processing systems
CN1259603C (zh) 用于分布式过程控制系统的通用操作员站模块
US6011871A (en) Method and apparatus for compressing digital data
JP3141428B2 (ja) 数値検索装置およびその方法
JP2880199B2 (ja) 記号列検索方法および検索装置
JP2825009B2 (ja) 記号列検索方法および装置
US4408271A (en) Circuit for implementing a digital computer instruction
JPH04308B2 (ja)
WO2023210643A1 (ja) 全文検索プロセッサ

Legal Events

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

Free format text: PAYMENT UNTIL: 20070719

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080719

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080719

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090719

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100719

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110719

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees