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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
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
処理システムに関し、具体的には、データ圧縮のための
改良された方法およびシステムに関する。さらに具体的
に言うと、本発明は、ソーティング・ネットワークを使
用してデータのブロックを圧縮するための方法およびシ
ステムに関する。
・データ圧縮は、1977年に、レンペル(Lempel)お
よびジブ(Ziv)著、"A Universal Algorithm for Sequ
entialData Compression"(IEEE Transactions on Info
rmation Theory, 1977)で初めて発表された。その原理
は、「前に見たテキストを辞書として使用する辞書ベー
ス圧縮」と簡潔に説明されている。
つの部分すなわち、フロントエンドであるデータ・モデ
リング部分と、バックエンドである出力コーディング部
分に分割することができる。データ圧縮システム、特に
LZベースのデータ圧縮システムのフロントエンドまた
はデータ・モデリング段階の主な機能は、入力データ内
で同一の入力バイトの連なりまたは列を突き止めること
である。
システムでそのようなフロントエンド・タスクを実行す
るための効率的なハードウェアが、クラフト(Craft)
によって発明され、米国特許出願番号第08/2904
51号明細書に記載されている。クラフトの発明では、
回転式のセレクタ・ビット・レジスタと共に連想記憶
(CAM)が使用されている。ホワイティング(Whitin
g)他の米国特許第5003307号明細書に、連想シ
フト・レジスタを使用する同様の手法が開示されてい
る。クラフトの発明では、ゲート遅延がほとんどない状
態で1サイクルごとに1バイトを処理することができ、
これは、ストリーム圧縮の規範で圧縮エンジンにデータ
を供給できる速度と同じ速度である。しかし、コンピュ
ータ・システムのデータは、バイトのストリームではな
く、データのブロックとして圧縮に使用できることがし
ばしばである。たとえば、データ処理システムでは、4
096バイトの固定サイズ・ディスク・ブロックが、圧
縮と伸長のために圧縮エンジンに同時に送られる。
Networks and Their Applications"(Proceedings AFIP
S Spring Joint Conference, Volume 32, pages 307-31
4)に記載のものなどのソーティング・ネットワーク
は、すべてが交換機に同時並行に到着する大量のアドレ
ス付きパケットを大量の出力ポートに経路指定するため
に交換機システムに使用されている。ソフトウェアで実
施されるデータ圧縮の場合、ソーティング・ベースの手
法は、O(nlog2(n))ステップを要するので、
ハッシュ・ベースの手法に劣る。
効率的に圧縮できると同時に、並列に実行できるデータ
処理の量が最大になる方法およびシステムの必要が存在
する。
されたデータ処理システムを提供することである。
ための改良された方法およびシステムを提供することで
ある。
・ネットワークを使用してデータのブロックを圧縮する
ための改良された方法およびシステムを提供することで
ある。
の説明に従って達成される。データ処理システムで、N
バイトのブロックを選択する。このNは1より大きい。
その後、N個のデータ・セルのグループを作成するが、
各セルは、グループ内の物理的な順序を示すための物理
タグと、Nバイトのブロックから選択されたバイトのシ
ーケンスを含む部分列を有する。次に、N個のセルのグ
ループを辞書ソートして、N個のセルのそれぞれの部分
列の辞書値に基づく辞書順を確立する。ここで、辞書順
とは、例えばABC順などのことである。その後、N個
のセルのうちの選択されたセルの部分列内の一致する列
を、辞書ソートされたN個のセルのグループ内で識別す
る。その後、Nバイトのブロックを、識別された一致す
る列を利用して符号化して、圧縮データ・セットを作成
する。ここで、この圧縮データ・セットは、辞書ソート
されたN個のセルのグループ内で冗長情報を識別するこ
とによって効率的に作成される。このような符号化は、
N個のセルの辞書ソートされたグループ内で辞書順で隣
接するセルを比較して、一致する列を識別することによ
って達成できる。
照すると、プロセッサ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に結合することがで
きる。
ば、表示装置26、キーボード24およびポインティン
グ装置32のそれぞれを、複数の既知の標準構成要素の
いずれかを用いて実施できることを諒解するであろう。
データ処理システム20は、任意の汎用コンピュータま
たは、米国ニューヨーク州アーモンクのInternationalB
usiness Machines Corporation(IBM)社が商標「P
S/2」の下で販売するパーソナル・コンピュータなど
のいわゆるパーソナル・コンピュータを使用して実施す
ることができる。
理システム20に含めることのできる主要な構成要素を
さらに示す高水準ブロック図が示されている。データ処
理システム20は、主に、ソフトウェアの形態とするこ
とのできるコンピュータ可読命令によって、または、そ
のようなソフトウェアを格納またはアクセスすることの
できる手段によって、制御される。そのようなソフトウ
ェアを、中央処理装置(CPU)50内で実行して、デ
ータ処理システム20に作業を行わせることができる。
商標「PS/2」の下でIBM社が販売するパーソナル
・コンピュータなど、多くの既知のワークステーション
およびパーソナル・コンピュータでは、CPU50が、
マイクロプロセッサと称する単一チップCPUによって
実施される。そのようなマイクロプロセッサの例には、
Intel Corporation社が商標「PENTIUM」の下で
販売するマイクロプロセッサや、International Busine
ssMachines Corporation社が商標「PowerPC」の
下で販売するマイクロプロセッサが含まれる。
0とは別個の、追加機能を実行したりCPU50を補助
する任意選択のプロセッサである。補助プロセッサの一
般的な種類の1つが、数値計算補助プロセッサとも称す
る浮動小数点補助プロセッサであり、これは、汎用のC
PU50より高速かつ正確に数値計算を実行するように
設計されている。しかし、最近、多くの補助プロセッサ
の機能が、より強力な単一チップ・マイクロプロセッサ
に組み込まれている。
送経路であるシステム・バス54を介して、命令を取り
出し、復号し、実行し、他の資源との間で情報を転送す
る。このようなシステム・バスは、データ処理システム
20内の構成要素を接続し、データ交換用の媒体を定義
する。システム・バス54には、通常、データ送出用の
データ線と、アドレス送出用のアドレス線と、割込み送
出用およびシステム・バス操作用の制御線とが含まれ
る。このようなシステム・バスの例が、PCI(Periph
eral Component Interconnect)バスと、IBM社が商
標「Micro ChannelArchitecture」(マイクロ・チャネ
ル・アーキテクチャ)の下で販売するバスである。マイ
クロ・チャネル・アーキテクチャは、拡張カード、コン
トローラおよびCPU50によるバスへのアクセスを調
節する、バス調停と称する機能を提供する。マイクロ・
チャネルに接続され、バスを占有するように調停される
装置を、バス・マスタと称する。バス・マスタのサポー
トによって、プロセッサおよびそのサポート・チップを
含む追加のバス・マスタ・アダプタによるマイクロ・チ
ャネルの多重プロセッサ構成を作成できるようになる。
は、ランダム・アクセス・メモリ(RAM)56、読取
り専用メモリ(ROM)58および不揮発性メモリ60
が含まれる。このようなメモリには、情報の格納と取出
しを可能にする回路が含まれる。ROMには、修正でき
ないデータが格納される。RAMに格納されたデータ
は、CPU50または他のハードウェア装置による読取
りと変更が可能である。不揮発性メモリとは、電源が断
たれた時にデータが消えないメモリである。不揮発性メ
モリには、ROM、EPROM、フラッシュ・メモリ、
バブル・メモリ、バッテリバックアップCMOS RA
Mが含まれる。図2からわかるように、このようなバッ
テリバックアップCMOS RAMは、システム構成情
報の格納に利用することができる。
モリ60へのアクセスは、メモリ・コントローラ62お
よびバス・コントローラ64によって制御できる。メモ
リ・コントローラ62は、命令を実行する際に仮想アド
レスを物理アドレスに変換するアドレス変換機能を提供
することができる。メモリ・コントローラ62は、シス
テム内のプロセスを分離し、ユーザ・プロセスからシス
テム・プロセスを分離するメモリ保護機能を提供するこ
ともできる。したがって、ユーザ・モードで走行するプ
ログラムは、そのプロセス自体の仮想アドレス空間にマ
ッピングされたメモリだけをアクセスでき、プロセス間
でメモリ共用が設定されない限り、別のプロセスの仮想
アドレス空間内のメモリにアクセスすることはできな
い。
ュータに機能または資源を追加する、回路に接続された
チップおよび他の電子構成要素を含む回路基板である。
典型的な拡張カードの追加機能は、メモリ、ディスク駆
動装置コントローラ66、ビデオ・サポート、パラレル
・ポートおよびシリアル・ポート、内蔵モデムである。
ラップトップ・コンピュータ、パームトップ・コンピュ
ータおよび他の可搬コンピュータの場合、拡張カード
は、通常は、クレジット・カード・サイズの、コンピュ
ータの側面または背面のスロットに挿入するように設計
された装置であるPCカードの形態となる。このような
スロットの例が、タイプI、タイプIIおよびタイプI
IIのカード・スロットが定義されているPCMCIA
(PersonalComputer Memory Card International Assoc
iation)スロットである。したがって、空きスロット6
8は、さまざまな種類の拡張カードまたはPCMCIA
カードを受けるのに使用することができる。
ディスケット・コントローラ70の両方に、それぞれハ
ード・ディスク駆動装置72またはフロッピ・ディスク
(ディスケットとも称する)74からの読取りと書込み
を指示し制御する専用集積回路および関連回路が含まれ
る。このようなディスク・コントローラは、読み書きヘ
ッドの位置決め、駆動装置とマイクロプロセッサの間で
の調停、メモリとの情報の転送の制御などの作業を処理
する。単一のディスク・コントローラが、複数のディス
ク駆動装置を制御することができる。
読取り専用メモリ)からデータを読み取るために、CD
−ROMコントローラ76をデータ処理システム20に
含めることができる。このようなCD−ROMは、デー
タの読取りに磁気的な手段ではなくレーザー光学系を使
用する。
は、キーボード82と、マウス84などのポインティン
グ装置とのインターフェースのためにデータ処理システ
ム20に設けられる。このようなポインティング装置
は、通常は、ユーザがマウス・ボタンを押した時のポイ
ンタの位置を指定するホット・スポットを有する矢印の
形状をとることができる、カーソルなどの画面要素を制
御するのに利用される。他のポインティング装置には、
グラフィックス・タブレット、スタイラス、ライト・ペ
ン、ジョイスティック、パック、トラックボール、トラ
ックパッドおよび、IBM社によって商標「TrackPoint
(トラックポイント)」の下で販売されるポインティン
グ装置が含まれる。
ーラ86は、CPU50を使用しないメモリ・アクセス
を実現するのに使用することができる。このようなメモ
リ・アクセスは、通常は、メモリと「インテリジェント
な」周辺装置の間、たとえばRAM56とディスク駆動
装置コントローラ66の間で、直接にデータを転送する
のに使用される。
システムの間の通信は、どちらもシステム・バス54に
結合されるシリアル・コントローラ88およびネットワ
ーク・アダプタ90によって簡単に行えるようになる。
シリアル・コントローラ88は、コンピュータ間または
コンピュータと周辺装置の間で、単一の線を介して1時
に1ビットずつ情報を送信するのに使用される。シリア
ル通信は、同期式(クロックなどなんらかの時刻基準に
よって制御される)または非同期式(情報の流れを制御
する制御信号の交換によって管理される)とすることが
できる。シリアル通信規格の例には、RS−232イン
ターフェースとRS−422インターフェースが含まれ
る。
・インターフェースは、モデム92との通信に使用する
ことができる。モデムとは、標準的な電話回線を介して
コンピュータが情報を送信できるようにする通信装置で
ある。モデムは、ディジタルのコンピュータ信号を、電
話回線での通信に適したアナログ信号に変換する。モデ
ム92は、IBM社とSears社によってサービス・
マーク「PRODIGY」の下で提供される情報サービ
スなどのオンライン情報サービスにデータ処理システム
20を接続するのに使用することができる。このような
オンライン・サービス・プロバイダは、モデム92を介
してデータ処理システム20にダウンロードすることの
できるソフトウェアを提供する場合がある。モデム92
は、サーバ、電子掲示板、インターネット、ワールド・
ワイド・ウェブなど、他のソフトウェア供給源への接続
を提供することができる。
理システム20をローカル・エリア・ネットワーク94
に接続するのに使用することができる。ローカル・エリ
ア・ネットワーク94は、コンピュータ・ユーザに、電
子的にソフトウェアと情報を通信し、転送する手段を提
供することができる。さらに、ローカル・エリア・ネッ
トワーク94は、複数のコンピュータと、作業負荷の共
用またはタスク実行時の協調動作とを含む、分散処理を
提供することができる。
表示装置96は、データ処理システム20によって生成
された視覚出力を表示するのに使用される。このような
視覚出力には、テキスト、グラフィックス、動画および
ビデオを含めることができる。表示装置96は、CRT
ベースのビデオ表示装置、LCDベースのフラットパネ
ル表示装置、またはガス・プラズマ・ベースのフラット
パネル表示装置を用いて実施できる。表示コントローラ
98には、表示装置96に送られるビデオ信号を生成す
るのに必要な電子構成要素が含まれる。
ラ102を介してデータ処理システム20に結合するこ
とができる。プリンタ100は、紙またはトランスペア
レンシなどの別の媒体に、コンピュータによって生成さ
れた画像またはテキストを印刷するのに使用される。他
の種類のプリンタに、イメージセッタ、プロッタ、フィ
ルム・レコーダを含めることができる。
ム・バス54と、プリンタ100などの別のパラレル通
信装置との間に接続されたワイヤを介して、複数のデー
タ・ビットおよび制御ビットを同時に送るのに使用され
る。最も一般的なパラレル・インターフェースは、セン
トロニクス・インターフェースである。
接続されたさまざまな装置が、割込みコントローラ10
4によって処理される割込みを生成する場合がある。割
込みとは、ハードウェアまたはソフトウェアのいずれか
によってCPU50に渡すことができる、CPU50か
らの注目の要求である。割込みは、マイクロプロセッサ
に現在実行中の命令を延期させ、進行中の作業の状態を
保存させ、割込みハンドラと称する特殊なルーチンに制
御を移させる。割込みハンドラは、命令の特定の組を実
行させる。割込みコントローラ104は、割込み優先順
位の階層を処理し、同時の割込み要求を調停するよう要
求される場合がある。割込みコントローラ104は、一
時的に割込みを禁止するのに使用される場合もある。
よびシステムによる、データ・セルの作成およびソート
と、そのデータ・セルの分析とを示す、高水準ブロック
図が示されている。図からわかるように、Nバイトのデ
ータ(Nは1より大きい)を含むデータ・ブロック12
0が、データ圧縮のために選択される。通常、Nは、4
096か、ディスク駆動装置のセクタのサイズのように
他の適当な2のべきが選択される。しかし、図3に示さ
れた例では、例示のためにNを8にする。データ・ブロ
ック120内のデータのバイトは、物理的な順序で左か
ら右へbyte(P)として参照でき、このPは、0か
ら7までの整数である。
またはデータ・セルのグループ122を作成する。グル
ープ内の各データ・セルには、物理タグ124と部分列
126が含まれる。物理タグ124は、データ・セルの
グループ122内での物理的な順序を示す。図示の例で
は、データ・セルのグループ122内のセルは、cel
l(P)として参照でき、このPは、0から7まで(す
なわち、0からNまで)の整数である。
byte(P)から、byte(P+X)とbyte
(N−1)のうちの小さい方まで延びる、データ・ブロ
ック120からのバイトの列またはシーケンスが含まれ
る。このXは所定の整数である。図示の例では、Xは7
すなわちN−1に等しい。したがって、各部分列126
は、データ・ブロック120のbyte(P)から始ま
り、データ・ブロック120の最終データ・バイトまで
延びる。XにN−1より小さい値を選択すると、全体的
なデータ圧縮効率を大幅に低下させずに、ソータのサイ
ズ、コストまたは速度を改善するのに有用である可能性
がある。
ならば、辞書ソータ128を使用して、データ・セルの
グループ122を辞書ソートする。この辞書ソートによ
って、N個のセルのそれぞれの部分列126の辞書値に
基づく、データ・セルのグループ122内でのN個のセ
ルの辞書順序が確立される。言い換えると、データ・セ
ルのグループ122は、アルファベット順でソートされ
る、または、各データ・セルの部分列126のバイトの
数値に基づいてソートされる。
れたデータ・セルのグループ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
の一致する列が含まれる。この種の情報は、下で説明す
るバックエンド符号化で使用される。
よびシステムによる、図3に示されたデータ圧縮用のフ
ロントエンド処理を実行する処理を示す高水準流れ図が
示されている。図からわかるように、フロントエンド処
理は、ブロック150で開始され、その後、ブロック1
52に進む。その後、この処理は、Nバイトの入力ブロ
ックからN個のデータ・セルを作成する。N個のデータ
・セルのそれぞれには、(1)Nバイトの入力ブロック
のバイトのデータに関するそのセルの元々の物理的順序
を表す物理タグ「P」と、(2)byte(P)から始
まり、所定のバイト数だけ延びるか、Nバイトの入力ブ
ロックの最終バイトまで延びる、バイトの部分列が含ま
れる。
ング・ネットワークを使用してN個のセルの部分列に対
する辞書ソートを実行する。ソーティング・ネットワー
クとは、複数の入力で複数の順序付けられていないデー
タまたはセルを受け入れ、同じデータまたはセルを複数
の出力でソートされた順序で配布することができる装置
である。このようなソートは、通常は、あるセルの内容
と他の入力セルの内容との一連の比較に基づいて各デー
タ・セルを正しい出力に経路指定するように巧妙に接続
された、比較要素によって発動される交換機の適当な内
部組み合わせによって達成される。バッチャ・ソーティ
ング・ネットワークでは、特に優雅で効率的な交換要素
の配置が使用され、これによって、n個のセルをO(l
og2(n))個のパイプライン化可能ステージを使用
してソートできるようになっている。バッチャ・ソーテ
ィング・ネットワークの詳細については、クレイグ・パ
ートリッジ(Craig Partridge)著、"Gigabit Networki
ng"(Addison-Wesley Publishing Company, Inc ., Cop
yright 1994)を参照されたい。
に、フロントエンド処理を終了する。
ータは、バッチャ・ソーティング・ネットワークとして
説明されているが、バッチャ・ソーティング・ネットワ
ークに類似の速度、サイズ、コストおよび複雑さを有す
る他の辞書ソータを使用することができる。たとえば、
奇偶マージ・ソート・ネットワークを使用して、ゲート
数のわずかな減少を達成することができる。
よびシステムによる、バックエンド処理でデータを符号
化する処理を示す高水準流れ図が示されている。図から
わかるように、バックエンド処理は、ブロック170で
開始され、その後、ブロック172に進んで、物理タグ
「P」に0をセットする。その後、図3の辞書ソートさ
れたデータ・セルのグループ130などの辞書ソートさ
れたリストから、cell(P)を選択する。cell
(P)は、必ずしも辞書ソートされたリストの先頭のセ
ルではないことに留意されたい。流れ図のこの時点での
cell(P)は、物理タグが0に等しいセルであり、
図4のブロック152で作成される最初のセルである。
されるように、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に示されるようにバックエンド処理を終了
する。
るセルが、選択されたcell(P)に物理的に先行
し、かつ、cell(P)の列と一致する、1より長い
長さを有する列を含む場合には、ブロック188に示さ
れるように、辞書順で後続するcell(L+1)を調
べて、そのセルが物理的にcell(P)に先行するか
否かと、1より長い長さを有するそのセルの列がcel
l(P)の列に一致するか否かを判定する。辞書順で先
行するセルと辞書順で後続するセルの両方が物理的にc
ell(P)に先行し、その両者がcell(P)の列
に一致する1より長い長さを有する列を含む場合には、
ブロック190に示されるように、この処理では、最長
の一致する列を有するセルを選択する。
た後、または、物理的に先行するセルだけがこれらの条
件を満たすと判定された後には、ブロック192に示さ
れるように、変数「SL」に一致する列の長さをセット
する。その後、ブロック194に示されるように、Pに
等しい指標とSLに等しい列長さを用いて圧縮トークン
を出力する。
列長さSLをPに加える。これによって、ブロック19
4に示されたように圧縮列トークンが出力されるので、
バックエンド処理の間に複数の物理セルがスキップされ
ることになる。次に、ブロック184に示されるよう
に、処理すべき追加のセルがあるかどうかを判定する。
処理すべき追加のセルがある場合、処理はブロック17
4に継続し、処理すべき追加のセルがない場合、この処
理はブロック186に示されるようにバックエンド処理
を終了する。
よびシステムによるデータのブロックの符号化の擬似コ
ードが示されている。この図には、図5に示されたよう
に、選択されたセルに物理的に先行する、辞書順で先行
または後続するセルから最長の一致するシーケンスを選
択するのに必要な種類のコードが示されている。擬似コ
ードは左側に示され、擬似コードの実行から生じる出力
は、図の右側に示される。生トークンは、文字「r」に
よって表され、圧縮トークンは、文字「c」によって表
される。
よびシステムによるバックエンド処理でのデータ符号化
の処理中のデータの流れを示す高水準ブロック図が示さ
れている。図からわかるように、辞書ソートされたデー
タ・セルのグループ130は、バックエンド処理のため
にcell(3)132を選択された状態で図示されて
いる。図7に示された例では、選択されたcell
(3)132が、辞書順で先行するセル、この例ではc
ell(2)134のみと比較される。
132およびcell(2)134から部分列126を
受け取り、部分列のそれぞれの先頭文字から1バイト単
位で比較した時の一致する列の長さを判定する。図7の
例に示された比較では、一致する列の長さは3に等し
い。
を、ブロック202に入力して、一致する列の長さが十
分に長いか否かを判定する。この例では、十分に長いと
みなされる列は、1より大きい長さを有する列である。
書順で先行するcell(2)134の両方からの物理
タグ124を、物理タグ比較機構204に入力する。物
理タグ比較機構204は、辞書順で先行するcell
(2)134が、選択されたcell(3)132に物
理的に先行するか否かを判定する。この例では、辞書順
で先行するセルが、選択されたセルに物理的に先行しな
い。というのは、辞書順で先行するcell(2)の物
理タグが、選択されたcell(3)の物理タグより小
さいからである。
よび物理タグ比較機構204から論理入力を受け取る。
この例では、列一致長さが1より大きく、辞書順で先行
するセルが選択されたセルに物理的に先行するので、ど
ちらの入力も真である。したがって、ANDゲート20
6の出力は真になり、その結果、論理回路208はイネ
ーブルされ、論理回路210はイネーブルされない。
から一致する列の長さを受け取り、辞書順で先行するc
ell(2)134から物理タグ124を受け取る。こ
れらの入力から、論理回路208は、cell(2)1
34からの指標P'と列比較ブロック200からの列長
さSLを用いて圧縮トークンを作成する。
が十分に長くはないと判定されるか、辞書順で先行する
セルが選択されたセルに物理的に先行しないか、その両
方の場合には、ANDゲート206の出力が偽になり、
論理回路210がイネーブルされる。この場合、論理回
路210は、選択されたcell(3)132から部分
列126の最初のバイトを受け取り、圧縮データ・セッ
トの一部として出力に送られる生トークンを作成する。
およびシステムによるデータ符号化の処理のもう1つの
実施例でのデータの流れを示す高水準ブロック図が示さ
れている。図8に示された例では、辞書順で先行するセ
ルと辞書順で後続するセルの両方を、選択されたセルと
比較して、列一致長さと、それらのセルが選択されたセ
ルに物理的に先行するか否かを判定する。列一致長さ
は、列比較機構220および222によって判定され
る。セルが選択されたセルに先行するか否かは、ブロッ
ク224および226によって判定される。マルチプレ
クサ制御228は、選択されたセルに物理的に先行し、
最長の一致する列長さを有する辞書順で先行または後続
するセルを選択する。この条件に応答してこのセルが選
択されたならば、マルチプレクサ制御228は、論理回
路230をイネーブルし、マルチプレクサ232の適当
な入力を選択する。これらの条件が満たされない場合、
マルチプレクサ制御228は、論理回路234をイネー
ブルする。
の出力から、最長の一致する文字列長さSLと、最長の
一致する文字列を有するセルに属する物理タグ124を
受け取る。イネーブルされ、これらの入力を受け取るこ
とに応答して、論理回路230は、列トークンを作成
し、その列トークンを出力に送って、圧縮データ・セッ
トの一部にする。
28によるイネーブルに応答して、選択されたcell
(3)132の部分列126から最初のバイトを受け取
り、生トークンを作成する。この生トークンは、出力に
送られ、圧縮データ・セットの一部になる。
ンピュータ・システム上で実施可能な特定の「方法機
能」に属する。代替実施例では、本発明を、コンピュー
タ・システム内で使用するためのコンピュータ・プログ
ラム製品として実施することができる。本発明の長所の
いくつかは、並列動作としてソート動作を実行した結果
であるから、このようなコンピュータ・システムには、
上で開示した並列ソート動作の実行に使用することがで
きる、複数のCPU50またはシステム・バス54に接
続された専用の補助プロセッサ52が含まれることが好
ましい。当業者であれば、本発明の機能を定義するプロ
グラムを、多くの形態でコンピュータに配布することが
でき、この形態には、(a)書込み不能記憶媒体(たと
えば、ROM58などのコンピュータ内の読取り専用装
置や、コンピュータ入出力アタッチメントによって読取
り可能なCD−ROM78など)に永久的に格納された
情報、(b)書込み可能記憶媒体(たとえば、フロッピ
・ディスク74やハード・ディスク駆動装置72)に格
納された情報、または(c)ローカル・エリア・ネット
ワーク94やモデム92経由の電話ネットワークなどの
通信媒体を介してコンピュータに運ばれる情報が含まれ
るが、これらに制限されないことを容易に諒解するであ
ろう。したがって、本発明の方法機能を指示するコンピ
ュータ可読命令を担持する時の上記媒体は、本発明の代
替実施例を表すことを理解されたい。
示と解説の目的で提示されたものである。これは、網羅
的ではなく、開示された正確な形態に本発明を制限する
ものでもない。上の教示に鑑みて、明白な修正または変
形が可能である。この実施例は、本発明の原理とその実
用的な応用例を最もよく例示するため、当業者が、ま
た、意図された特定の用途に適したさまざまな修正を加
え、さまざまな実施例に本発明を利用できるようにする
ために選択され、説明された。このような修正および変
形のすべてが、公平、合法的かつ公正に権利を与えられ
る範囲に従って請求項を解釈する時に、請求項によって
決定される本発明の範囲に含まれる。
の事項を開示する。
て、データ処理システム内で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つの実施例でのデータの流れを示
す、高水準ブロック図である。
Claims (16)
- 【請求項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)とbyte(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バイトのブロックを符号化
する手段とが、さらに、 cell(P)を選択する手段と、 cell(P)に対して辞書順で先行するセルおよび辞
書順で後続するセルから、[1]前記選択されたcel
l(P)に物理的に先行し、[2]前記選択されたce
ll(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に記載の効率的にデータを圧縮するための
データ処理システム。
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)
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)
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 |
-
1995
- 1995-11-20 US US08/559,673 patent/US5659755A/en not_active Expired - Fee Related
-
1996
- 1996-11-12 JP JP30016196A patent/JP3213244B2/ja not_active Expired - Fee Related
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 |