JPH06259223A - 分散データ処理システム - Google Patents

分散データ処理システム

Info

Publication number
JPH06259223A
JPH06259223A JP5279150A JP27915093A JPH06259223A JP H06259223 A JPH06259223 A JP H06259223A JP 5279150 A JP5279150 A JP 5279150A JP 27915093 A JP27915093 A JP 27915093A JP H06259223 A JPH06259223 A JP H06259223A
Authority
JP
Japan
Prior art keywords
dpe
data
context
symbol
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5279150A
Other languages
English (en)
Other versions
JP2544895B2 (ja
Inventor
Gilbert Furlan
ギルバート・フュルラン
Jorma J Rissanen
ジョルマ・ヨハンネス・リッサネン
Dafna Sheinvald
ダフナ・シャインヴァルド
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 JPH06259223A publication Critical patent/JPH06259223A/ja
Application granted granted Critical
Publication of JP2544895B2 publication Critical patent/JP2544895B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 過去の記号の最適に選択されたすべてのセグ
メント、すなわち文脈を同時に使うための複数のデータ
・プロセッサを備えた分散データ処理システムを提供す
ることによって、コード化および予測を迅速に実行でき
るようにする。 【構成】 分散データ処理システムは、各クロック・サ
イクルで入力データ・ストリングの各記号にアクセスす
ることができ、入力記号に基づいてコード化または予測
に最適のモデルを提供する文脈関連データ・セットを適
応的に生成する。各記号とコード化または予測用その最
適なモデルが、システムから同時に出力され、その結
果、n記号入力データ・ストリングに好ましい時間複雑
度O(n)が得られる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全般的に、データのコ
ード化および予測を実行するための分散データ処理シス
テムに関する。詳細には、本発明は、過去の記号の最適
に選択されたすべてのセグメント、すなわち文脈を動的
に並列に使用し、それによって、コード化および予測を
迅速に実行することのできる、分散データ処理システム
で実施されるデータ・コード化または予測プロセスを教
示する。
【0002】
【従来の技術】データ圧縮とは、データのストリームを
より小さな「圧縮」された形に変換するプロセスを言
う。後で、圧縮形からその原形または何らかの近似を計
算することができる。可逆データ圧縮または「損失のな
い」データ圧縮は、圧縮形のデータを後で圧縮解除して
原形に戻すことができるときに実現される。「損失のあ
る」データの圧縮では、圧縮解除されるデータは、一定
の精度基準を満たすことによって原形の本質を保存する
かぎり、原形と異なってもかまわない。記憶装置のコス
トが急激に下がり、さらに低下し続けているが、データ
圧縮技術を使用すると、同一の空間に格納できるデータ
の量が増えるので、たいていの場合、実効コストがさら
に削減される。さらに、圧縮データはより高速で伝送す
ることができる。通信チャネルを伴う様々な応用分野で
は、チャネルに帯域幅制約がある場合、この点は重要に
なってくる。
【0003】確率とコードの関係は、シャノン(Shanno
n)の論文"A Mathematical Theoryof Communication"、
Bell Syst. Tech. Journal、Vol.27、pp.39
8−403(1948年7月)で確立された。この論文
では、確率pで発生すると予想される記号は、対数の基
底を2として−log pビットで表すのが最適である
ことが示されている。したがって、確率の高い記号ほど
少ないビット数でコード化され、確率の低い記号ほどコ
ード化に必要なビット数が多くなる。予想コード長は、
可能なすべての記号の平均、すなわち−Σpi log
iによって得られる。この値は、確率分布のエント
ロピーと呼ばれる。シャノンのコード化定理によれば、
エントロピーは、コード化されたメッセージに必要なビ
ットの平均数の下限となる。所与の各分布について、限
界性能、すなわちエントロピーを所望の精度で得るため
のコードを設計する技法が存在する。そのような技術に
は、古典的なハフマン(Huffman)コードや、それより
も新しく柔軟な算術エンコーダがある。リッサネン(Ri
ssanen)およびラングドン(Langdon)の論文"Universa
l Modeling and Coding"、IEEE Transactions on Infor
mation Theory、Vol.IT−27、No.1、p
p.12−23(1981年1月)を参照されたい。算
術コード化は、ストリングの処理時に分布を更新できる
適応モデルを含めて、どのようなモデルにも適用でき
る。しかし、エントロピーは、記号、またはさらに一般
的に言えばメッセージ用に「モデル化された」分布の特
性である。この限界はコード設計によって緩和するには
モデルを修正しなければならないので、データ圧縮にお
ける最も重大な仕事は最も効率的なモデルを探すことで
ある。モデルの効率は、使用する「文脈知識」の量によ
って決まる。
【0004】「文脈情報」を取り込む方法としては、一
見異なる2つの方法がある。第1の方法は、元の記号の
長いセグメントまたは「句」を1種の辞書として収集す
ることである。この方法は、収集するストリングの各種
類について1度だけ行うことができ、または個々のスト
リングに合わせて適応的に調整することができる。これ
らの句の1つがストリング中で以後も検出されるとき
は、その句を、格納されているセグメントのリストを指
すポインタとしてコード化するだけでよい。自然言語の
場合、句は、語、語の一部、または複数の語となること
ができる。句は、テキスト中で既に発生しているかぎり
ポインタで置き換えることができるので、適応バージョ
ンにおけるコード化プロセスは新規トピックに迅速に適
応する。最も著名な辞書モデルには、ジブ(Ziv)およ
びレンペル(Lempel)の適応辞書モデラ−エンコーダが
ある。ジブ−レンペル・データ圧縮方式の本質は、タン
ストール(Tunstall)が以前に発表した方法である。こ
の方法は、元々いわゆる可変−固定長コード化("Synth
esis of Noiseless Compression Codes"、博士論文、Ge
orgia Institute of Technology、米国ジョージア州ア
トランタ、1967年9月)用に設計された。この方法
では、所望の数のセグメントを木の葉として格納する。
この木は、確率の最も高い葉を必ず分割するというタン
ストールの原則に従って、適応的に構築される。したが
って、最終的な木における葉は、確率が等しくなる傾向
がある。各葉は、2進序数だけで効率的にコード化する
ことができる。たとえば、ジブおよびレンペルの論文"A
Universal Algorithm for Sequential Data Compressi
on"、IEEE Transactions on Information Theory、Vo
l.IT−23、No.3、pp.337−343(1
977年5月)、同じく"Compression of Individual S
equences via Variable-Rate Coding"、IEEE Transacti
ons on Information Theory、Vol.IT−24、N
o.5、pp.530−536(1978年9月)、イ
ーストマン(Eastman)らの"Apparatus and Method for
Compressing Data Signals and Restoring the Compre
ssed DataSignals"と題する1984年8月7日付けの
米国特許第4464650号を参照されたい。
【0005】したがって、辞書は、頻繁に発生すると予
想される「句」のリストである。指標は、平均して、コ
ード化に要する空間が元の句よりも少なくなるように選
択される。辞書方式では必然的に、モデル化とコード化
の違いがあいまいである。なぜなら、辞書が変わる場合
でもコードは通常変わらないからである。ジブ−レンペ
ル方式の様々なバージョン間の主な違いは、ポインタが
逆方向にどこまで達することができるかと、どの句また
はサブストリングがポインタのターゲットになるかに関
係している。これらの選択肢の様々な組合せは、速度要
件、圧縮要件、メモリ要件の間の何らかの妥協の産物で
ある。多くの辞書方式の欠点は、そのような方式の実施
で、復号は高速になるがコード化が低速になることであ
る。ファイル・バックアップ・システムの使用など多く
の応用分野では、多数のファイルを高速にコード化する
ことが好ましく、復号が低速でも余り問題にならない。
【0006】文脈情報を使用するための第2の一般的方
法は、適切に選択された文脈中の元の記号の発生カウン
トを収集することである。この典型的な例は、1次2進
マルコフ・プロセスである。極端な例を挙げると、01
01010101...という0と1が交互に続くストリ
ングでは、両記号が等しい数だけ発生し、したがってそ
のような独立モデルでは、ストリングの最大エントロピ
ーは1記号当たり1となる。しかし、直前の記号の文脈
中での発生を計算する場合、0の文脈中では次の記号は
必ず1であるが、1の文脈中では次の記号は必ず0であ
り、エントロピーはゼロとなることがわかる。先に引用
したリッサネンおよびラングトンの論文によれば、ジブ
−レンペルのモデルを含むどの辞書型モデルも文脈モデ
ルとしてシミュレートすることができるが、文脈モデル
を辞書型モデルとしてシミュレートすることはできな
い。ある意味では、すべてのモデルが文脈モデルである
と言うことができる。辞書型モデルは、一般にコード化
速度および圧縮を犠牲にして復号速度を優先するとい
う、文脈を収集しコード化を実行するやり方だけが特殊
である。要するに、モデルとは基本的に、記号をコード
化する各文脈ごとに1つずつ確率分布を集めたものであ
る。最も適切な文脈を選択し、格納して、これらの文脈
中での記号の各発生の確率分布を収集することが、モデ
ル化の際の最も重大な仕事である。さらに、良いモデル
は通常、所与のメッセージをコード化する際にそのメッ
セージの特殊性によく合うように変更または適応する、
適応モデルである。
【0007】文脈モデルを初歩的な形で構築する際には
明らかな問題がある。文脈は、効率的にするために、記
号の数に関してかなり長くしなければならないので、可
能な各文脈を格納すると記憶空間がパンクする。しか
し、リッサネンの論文"Universal Data Compression Sy
stem"、IEEE Transactions on Information Theory、V
ol.IT−29、No.5、pp.656−664
(1983年9月)で「コンテキスト」という新しい技
法が導入された。コンテキスト方式(以下では「コンテ
キスト・アルゴリズム」と呼ぶ)では、ストリング中で
実際に発生する文脈だけを木形式で収集する。さらに、
コンテキスト・アルゴリズムは、現在調査中の記号への
影響力に関する過去の記号の重要度のランクを決定した
後、その記号が発生した基本的にすべての可能な文脈を
収集する。したがって、コンテキスト・アルゴリズムは
この重要度のランクを用いてストリング中のあらゆる統
計情報を見つける。可能な文脈が見つかり、文脈中の記
号の発生カウントが収集された後、残った仕事は、各記
号について、そのコード化に最適な文脈を見つけること
である。この選択は、リッサネンの論文"Complexity of
Strings in the Classof Markov Sources"、IEEE Tran
sactions on Information Theory、Vol.IT−3
2、No.4、pp.526−532(1986年7
月)に記載の、リッサネンの最小記述長(MDL)原理
をコンテキスト・アルゴリズムに組み込むことによって
行われた。リッサネンはまた、マルコフ・ソースによっ
て生成されたストリングの場合、どのような圧縮システ
ムによっても圧縮結果を改善できないことを証明した。
一方、ジグ−レンペル・データ圧縮システムはこの最適
圧縮を実現しないので、圧縮に関するかぎり劣っている
と思われる。実験により、コンテキスト・アルゴリズム
で得られる圧縮は通常、ジブ−レンペル・アルゴリズム
で得られる圧縮を15%上回ることが分かっている。こ
れはデータ圧縮の応用分野では大きな利益である。たと
えば、3つの典型的なテキスト・ファイルを比較してみ
る。最初の2つのファイルは、2冊のマニュアルから得
たものであり、3番目のファイルは、格納されている辞
書型ファイルから得たものである。コンテキスト・アル
ゴリズムはファイルをそれぞれ7665バイト、697
9バイト、および3457バイトから3085バイト、
3046バイト、および1297バイトに圧縮するが、
ジブ−レンペル・アルゴリズムではそれぞれ3505バ
イト、3457バイト、および1469バイトが必要で
ある。
【0008】コンテキスト・アルゴリズムの最初の実施
態様の主要な欠点は、順次アルゴリズムであるため、長
さnの入力ストリングでは時間複雑度がO(n log
n)になることである。これは、所望の時間複雑度、
すなわちO(n)よりもかなり低速なので、他の点では
優れたこのデータ圧縮方式を、速度が肝要な多数の重要
な応用分野で使用する際の障害となっている。本発明
は、とりわけ、この障害を部分的に解消する。すなわ
ち、本発明では、木構造を明示的に使用せずに、コンテ
キストのような文脈ベースのアルゴリズムの実施が可能
になる。この結果、コード化および予測が時間複雑度O
(n)で行われる。この大きさが最適なことは明らかで
ある。しかし、同じ実施態様が復号では機能せず、この
場合は依然として時間O(n log n)が必要とな
る。辞書システムにおける復号は時間O(n)で行うこ
とができるが、コード化はそれよりも低速であり、使用
する辞書のサイズに応じた時間がかかるので、速度に関
するかぎり、辞書ベースの圧縮システムと、本発明の文
脈ベースのシステムは相補的である。
【0009】さらに、本発明はデータ圧縮だけに制限さ
れない。データ圧縮以外の重要な応用分野の1つが予測
である。予測では、コード化と同程度に、文脈とその分
布が必要となるが、「復号」は必要とされない。さら
に、予測は、最新の文脈に関する情報が入手可能になっ
た時点でできるだけ速やかに実行しなければならない。
なぜなら、制御などの以後の処置が、予測値に依存し、
かつこれらの処置を迅速に実行しなければならないから
である。さらに、天気予測などの大規模な予測では、本
明細書で開示する種類の分散プロセスを用いる必要があ
る。ここに開示する方式の他の潜在的な応用分野は、予
測またはその他の目的用のほぼあらゆる形のモデル構築
である。そのような例には、時系列およびカオス・プロ
セスのモデルが含まれ、この場合も、一般的に速度が極
めて重要である。
【0010】本発明の好ましい実施例について詳細に説
明する前に、まずコンテキスト・アルゴリズムの順次式
実施態様について説明する。図1は、単一のデータ処理
要素(DPE)100を示している。データ処理要素1
00には、データ・ストリング102、すなわちx=x
12...xiが順次、すなわち各クロック・サイクルごと
に1データ項目(または記号)ずつ入力される。このデ
ータ・ストリングは、入力バッファ104に供給され、
メモリ108を備えた中央演算処理装置(CPU)10
6によって処理される。この説明では、データ・ストリ
ング102は2進ビットのストリングである、すなわち
i(i=1,2,...,)は0または1であるものと仮
定する。しかし、この方法は他の種類のデータ・ストリ
ングにも適用でき、2進ストリングだけに限定されるも
のではない。
【0011】コード化または予測の目的で、着信データ
・ストリング102用のデータ木構造210、すなわち
Tを構築し、図2に示す。このデータ木構造210は、
それぞれ文脈、すなわちコード化または予測に使用され
るストリング・セグメントに対応する、複数の文脈ノー
ド212から構成される。データ木構造210は、上下
構造を形成しており、上部のノード212は時系列の早
い時点で構築され、したがって一般に「親」ノードまた
は「祖先」ノードと呼ばれ、この構造の下部の文脈ノー
ドは時系列の遅い時点で構築され、しばしば「子」ノー
ドまたは「子孫」ノードと呼ばれる。文脈ノード212
は、「子孫」ノードがない場合は「葉」ノードである。
そうでない場合、文脈ノード212は「内部ノード」で
ある。
【0012】成長するデータ木構造210は、成長する
データ・ストリングにコンテキスト・アルゴリズムを適
用することによって反復的に構築される。データ木構造
210は複数の枝を持ち、経路の左側にある枝がビット
0に対応し、右側にある枝がビット1に対応する。ま
た、データ木構造の構築中、図1のDPE100は、各
文脈ノード212用の1対のカウンタを維持する。この
1対のカウンタと、データ木構造210を構築する際の
カウンタの使用法について以下に説明する。
【0013】この説明では、データ木構造の構成と1対
のカウンタの値と各文脈ノード212中の文脈とを含む
データ木構造210の「状況」を、x12...xi...xt
というデータ・ストリング102を処理する際に関数T
(t)によって示す。この場合、データ木構造210の
最後の文脈ノード214はz=z12...zmという文脈
を有し、i=1,2,...,mの場合にzi=xt-i+1
ある。さらに一般的には、zi=xt-π(i)であり、π
(1),...,π(m)は任意の1組の非負指標を示す。
したがって、データ木構造の状況T(t)は、各文脈ノ
ード212ごとに生成されたすべての文脈関連データを
積分することによって表される。文脈ノード212が、
文脈zを持つ過去のストリング中の処理済み記号がそれ
ぞれ値1および値0を有した回数を表すように、DPE
100によって1対のカウンタc(z,1)およびc
(z,0)が維持されている。より正確に言うと、カウ
ンタの値c(z,u)=0,1は、各クロック・サイク
ルで更新され、かつストリングxj-m...xj-1uがx1
2...xt中のサブストリングとして発生するような指標
の数jである。ここで、xj-1j-2...xj-m=zであ
る。文脈は過去のストリングに関するので、zの記号の
順序付けは時間の経過と逆になることに留意されたい。
【0014】たとえば、以下のラプラスの推定量によっ
て、xtがz=xt-1...xt-mという文脈で発生する際の
事象xt=bの確率を計算する。
【数1】 ここで、
【数2】 bバー=1−bである。他の予測推定量を使用すること
もできる。
【0015】データ木構造210を構築するために、以
下のステップがCPU106によって実行される。
【0016】1.前記のラプラスの推定量を使う場合、
データ・ストリング102の第1ビットを入力データ・
バッファが受け取る前に、根216に空の文脈λを割り
当て、c(λ,0)=c(λ,1)=1と設定することによって
T(0)から開始する。
【0017】2.T(t−1)であるものとし(初期に
はt=1)、xt-1t-2...によって定義される経路に
沿って木を登っていく。経路沿いの各ノードz(z=
λ、z=xt-1、z=xt-1t-2,...、z=葉)に到達
するたびに、カウンタc(z,xt)を1ずつ増分す
る。葉ノードのカウンタc(z,xt)の値が増分後に
2になった場合、各枝ごとに1つずつ、2つの子孫ノー
ドを作成し、それらの記号カウントを両方とも1に設定
する。
【0018】3.前記方程式で定義された各文脈ノード
212の確率P(b|z)を計算する。
【0019】前記ステップにおける着信データ・ストリ
ングが2進値の種類、たとえば10進データ・ストリン
グである場合、データ木構造210の各文脈ノード21
2は3つ以上の枝を持つことができる。たとえば、各ノ
ード用に生成される文脈と、各文脈ノード212のカウ
ンタの値に応じて、10進データ・ストリングでは枝が
最高で10個ある。
【0020】前記プロセス中に、各文脈ノード212に
1つずつ、複数の文脈が生成される。各文脈は、それぞ
れ前記方程式で定義される確率P(b|z)を有する。
この1組のデータが、コード化および予測に柔軟に適用
できる。一般にデータ圧縮と呼ばれるデータ・コード化
の場合、記号のコード化を実行する、木の各経路に沿っ
た特定の文脈zt *=xtt-1...の選択に最小記述長
(MDL)原理を適用することができる。以下で使用す
るその単純化したバージョンでは、前記方程式によって
算出されるP(0|z)が1/2から最も逸脱するノー
ドとしてこのノードを選択する。着信ストリングの次の
記号を予測するのに最も単純な方法は、確率P(b|z
t *)が最高の値を持つ記号を選択することである。
【0021】前述のように、コンテキスト・アルゴリズ
ムを順次使用して入力ストリング102を処理する際に
は、入力ストリング102を各文脈ノード212の文脈
と比較し、カウンタを増分し、各ノードの確率を計算す
るという段階的手順を使用する。各着信ストリングごと
に、文脈長がtビットの文脈ノードに到達するのに平均
でlog(t)時間ステップが必要である。したがっ
て、最悪のケースの全体時間複雑度は、nビットのスト
リングの場合、O(n log n)である。
【0022】
【発明が解決しようとする課題】本発明の一目的は、コ
ード化および予測が迅速に実行できる、過去の記号の最
適に選択されたすべてのセグメント、すなわち文脈を同
時に使用するために複数のデータ・プロセッサを備えた
分散データ処理システムを提供することである。
【0023】本発明の他の目的は、木構造上での過去の
文脈データに対する階層データベース検索が暗示的かつ
並列に実行される、それぞれコード化または予測用のデ
ータ木構造と相関する文脈を生成する、複数のデータ・
プロセッサを備えた分散データ処理システムを提供する
ことである。
【0024】本発明の他の目的は、各プロセッサにおい
て、過去のあらゆるコード化記録および相対コード化効
率の情報および知識を使用してコンテキスト・アルゴリ
ズムが同時にかつ独立に実行されて、コード化および予
測に最適な文脈が動的に生成される、複数のデータ・プ
ロセッサを備えた分散データ処理システム、たとえばシ
ストリックス・アレイを提供することである。
【0025】本発明の他の目的は、特定の各アプリケー
ションに必要な圧縮率に応じてプロセッサの数が柔軟に
調整できる、コンテキスト・アルゴリズムを使用したコ
ード化および予測のための複数のデータ・プロセッサを
備える分散データ処理システムを提供することである。
【0026】
【課題を解決するための手段】簡単に言うと、本発明の
好ましい実施例は、着信データ・ストリングを適応的か
つ経時的に処理できる分散データ処理システムを備えて
いる。この分散データ処理システムはさらに、それぞれ
複数のデータを格納する少なくとも1つのデータ格納手
段を含む、複数のプロセッサを備えている。各プロセッ
サはさらに、格納手段中のデータを処理し、1組の文脈
関連データを適応的に生成することができる、データ処
理手段を含む。したがって、各プロセッサは、着信デー
タ・ストリングおよび数組の文脈関連データにアクセス
することができ、個別にあるいは1つまたは複数の他の
プロセッサと共に動作し、着信データ・ストリングのコ
ード化または予測を適応的に最適の形で実行する。
【0027】本発明の一利点は、コード化および予測が
迅速に実行できる、過去の記号の最適に選択されたすべ
てのセグメント、すなわち文脈を同時に使用するために
複数のデータ・プロセッサを備えた分散データ処理シス
テムを提供することである。
【0028】本発明の他の利点は、木構造上での過去の
データに対する階層データベース検索が暗示的かつ並列
に実行される、それぞれコード化または予測用のデータ
木構造と相関する文脈を生成する、複数のデータ・プロ
セッサを備えた分散データ処理システムを提供すること
である。
【0029】本発明の他の利点は、複数のデータ・プロ
セッサを備えた分散データ処理システムを提供する各プ
ロセッサにおいて、コンテキスト・アルゴリズムが実行
されて、コード化および予測に最適な文脈が適応的かつ
経時的に生成されることである。
【0030】本発明の他の利点は、特定の各アプリケー
ションに応じて変わる圧縮率に応じてプロセッサの数が
柔軟に調整できる、コンテキスト・アルゴリズムを使用
したコード化および予測のための複数のデータ・プロセ
ッサを備える分散データ処理システムを提供することで
ある。
【0031】本発明の他の利点は、モデラ−エンコーダ
の順次式実施態様の時間複雑度O(nlogn)を必要
とせず、分散処理実施態様でコード化または予測に必要
な時間複雑度O(n)がそれよりもずっと低くなること
である。これは特に、低い時間複雑度O(n)が実現さ
れる従来技術のアルゴリズム・コンテキストの並列実施
態様に適用される。
【0032】本発明の上記その他の目的および利点は、
好ましい実施例に関する以下の詳細な説明を読めば、当
業者には、明らかになるであろう。好ましい実施例は、
添付の様々な図面を参照しながら以下の詳細な説明を読
めば最も良く理解される。
【0033】
【実施例】本発明は多くの形で実施することができる
が、図3および図4にその特定の実施例を示す。ただ
し、この開示により、本発明が図示した実施例に限定さ
れるものでないことを了解されたい。
【0034】本発明の1態様によれば、複数のデータ処
理要素(DPE)を備えた分散データ処理システムが、
文脈ベースのモデルに従った記号の着信データ・ストリ
ングを、適応的かつ経時的に迅速に処理する。各DPE
は、各クロック・サイクルで記号にアクセスすることが
でき、文脈関連データ・セットを適応的に生成し、個別
にあるいは1つまたは複数の他のDPEと共に動作し
て、過去のデータ・ストリングに基づきコード化または
予測を実行する。これによって、入力記号と、コード化
/予測用の入力記号の最適モデルとが、分散データ処理
システムから同時に出力され、同じ文脈ベースのモデル
の順次式実施態様に比べて時間複雑度が大幅に削減され
る。
【0035】本発明の別の態様によれば、複数のデータ
処理要素(DPE)を備えたシストリック・アレイ・デ
ータが、文脈ベースのモデルに従った記号の着信データ
・ストリングを適応的かつ経時的に迅速に処理する。デ
ータ・ストリングの各記号がシストリック・アレイを通
過するとき、多数の文脈、すなわち対応するDPEにそ
れぞれ格納されている、最近処理された記号の、様々な
長さのセグメントが検査される。特定の基準、たとえば
最小記述長(MDL)原理に従って、1つの文脈がコー
ド化/予測を行う際の最適モデルとして選択され、シス
トリック・アレイから記号自体と共に出力されるので、
同一の文脈モデルの順次式態様に比べて、時間複雑度が
大幅に削減される。
【0036】本発明のDPEは、メインフレームからシ
ストリック・アレイの基本プロセッサに至るまで、どん
なプロセッサでもよい。予測およびコード化用の本発明
で必要なのは1方向リンクであるが、各DPEが他のD
PEに対して情報を送受信できる両方向通信リンク(た
とえば、ネットワークまたはバッファ)も使用すること
が可能である。DPE間のすべてのリンクは長さがO
(1)、すなわち一定なので、2つの隣接DPEが通信
するための時間もO(1)である。情報は、先入れ先出
し(FIFO)プロセスで1つのDPEから次のDPE
へと1方向に順次伝送される。アレイ内のプロセッサの
数nは、コストのような実施上の留意事項によって決定
される。
【0037】図3を参照すると、本発明の特定の実施例
によれば、それぞれそれ自体のCPU304と作業用メ
モリ306を有する複数のDPE302が、線形アレイ
または「パイプライン」300として並べられている。
パイプライン300は、特定の文脈ベースのモデル、た
とえばコンテキスト・アルゴリズムに従ってデータ・ス
トリングを処理する。DPE302は、各DPE302
が最高で2つの隣接DPE302と接続されるように線
形に配列されている。各DPE302はまた、入力デー
タ・ストリングの現記号を保持する記号レジスタ308
に接続されている。複数の記号レジスタが「上部」パイ
プライン310を形成している。各DPE302はさら
に、記号レジスタ308を占有する現記号に関する様々
な情報を含むパイプライン・メモリ312に接続されて
いる。複数のパイプライン・メモリが「下部」パイプラ
イン314を形成している。この図では、記号レジスタ
308およびパイプライン・メモリ312はDPE30
2から分離した要素として示してあるが、これら3種の
装置のすべてが一体となって、パイプライン300の肝
要な部分であるデータ処理ユニットを形成することもで
きる。また、コード化のために、パイプライン300の
右側の下流側に算術エンコーダ(図示せず)を接続する
ことができる。算術エンコーダの果たす役割について
は、「従来の技術」の項で述べた。
【0038】この文脈で、1クロック・サイクル当たり
ストリング記号1の割合で迅速に実行されるパイプライ
ン300の形の文脈ベースのエンコーダ/プレディクタ
の実施態様は、広義には以下のように記述される。デー
タ・ストリングx12...xi...を、図3に示すパイプ
ライン300によって処理するものとする。各記号は、
直前の記号が上部パイプライン310中で下流側すなわ
ち右側に1ステップ伝播されるたびに、一時に1つず
つ、第1(すなわち左端)の記号レジスタ308に供給
される。したがって、i番目の記号xiが第1のDPE
302の上にある場合、記号xi-1は、右側にある次の
DPE302の上になり、以下同様である。各DPE3
02は、それが「作成」された時点でたまたまその上に
あった記号xiの直前の記号の集合s=y12...yk
して定義される、固有の文脈を格納する文脈レジスタ3
16を有する。記号のストリングが到着すると、アレイ
のDPE302が左から右に「作成」、あるいは使用さ
れることに留意されたい。すなわち、x=xiの場合、
1=xi-1,...,yk=xi-kである。ここで、kは各DP
E302ごとに大きくなるように選択される。kの最大
値は、システムに含めたい最大文脈情報によって決定さ
れ、やはり実施上の留意事項に従って設定される。以下
の2進の場合も参照されたい。
【0039】文脈sは、図2に示すようなデータ木の
「ノード」に対応している。時間が経過しても、DPE
302に、その作成時に関連付けられた文脈は変化しな
いが、当該DPE302の上にある記号(すなわち、D
PE302に対応する記号レジスタ308を占有する記
号)、当該DPE302の右側にある記号と、当該DP
Eの作業用メモリ306中の様々なレジスタの内容、当
該DPE302に対応するパイプライン・メモリ312
はすべて、常に変化する可能性がある。したがって、パ
イプライン300において使用される各DPE302
は、データ木のノードに対応している。
【0040】入力データ・ストリングの処理中に、パイ
プライン300のDPE302はまず、初期設定プロセ
スを実行して、第1のDPEに空ストリングを割り当
て、他の各DPEに未定義の文脈を割り当てる。この詳
細については、以下の2進の場合で説明する。各DPE
302は次に、その作業用メモリ306中、ならびに対
応するパイプライン・メモリ312中で、コード化また
は予測に関係する様々な演算を、対応する記号レジスタ
308を占有している現記号の直前のストリングに基づ
いて実行する。これらの演算には、この過去のストリン
グとDPE302の文脈との比較、現記号のカウントを
1だけ増分するかどうか、すなわち記号統計を更新する
かどうかの決定、新規の関連文脈を記憶するためにDP
E302(またはノード)を「作成」するか否かの決
定、予測推定量の計算と現記号の最適モデルの決定、数
kの選択などが含まれる。以下の2進の場合で詳細に説
明する。したがって、1クロック・サイクル当たり1回
の割合で、入力データ・ストリングをデータ木の各ノー
ドの文脈と比較し、上述のコンテキスト・アルゴリズム
の順次式実施態様の場合のように、長さnの入力ストリ
ングの最悪のケースでO(n log n)の時間複雑
度を得る代わりに、本発明のパイプライン300のDP
E302は、入力記号が「パイプライン」300を通過
するのと同時に、上記の比較を含む様々な演算を実行す
る。その結果、上部パイプライン310の右端から記号
が出力されるのと同時に、下部パイプライン314の右
端から記号の最適な予測またはコード化が出力され、長
さnの入力ストリングでは、時間複雑度がO(n)とな
る。このように、本発明のDPE302は個別にまたは
共同で、着信記号シーケンスに基づいてコード化プロセ
スまたは予測プロセスを適応的かつ経時的に迅速に実行
する。
【0041】2進入力ストリングに関する本発明の特定
の実施例について説明する前に、予測プロセスについて
説明しておく。一般に、2種類の予測プロセスが重要で
ある。第1の種類のプロセスでは、ある量の1回の予測
が、その過去の値と、他の量の過去または現在の値の関
数として行われる。第2の種類のプロセスでは、観測自
体を行う前に、過去の観測から各観測値を連続的に予測
しておく必要がある。
【0042】第1の場合は、最後の観測の後、システム
に単に空の値を供給し、下部パイプライン・メモリ31
4中のコードを予測値で置き換えるだけで、前述のパイ
プライン300で処理することができる。上部パイプラ
イン310の右端から空の値が初めて出力されるとき、
下部パイプライン314の右端から出力される値が、所
望の予測を提供する。第2の場合では、DPEの上にあ
る記号の過去の値と共に、予測すべき各記号xiの直前
の値も供給する必要がある。したがって、各DPEは、
過去の値の同じストリングにアクセスすることができ
る。すなわち、上部パイプライン310は、複数の並列
バスから構成され、第1のバスは直前に観測された記号
を搬送し、第2のバスはその直前の記号を搬送し、第3
のバスは、その前の記号を搬送し、以下同様である。バ
スの最大値のwは、システムに含めたい最大文脈情報に
よって決定される。
【0043】パイプライン300に入力される各記号に
ついて、予測を行う最適ノード(または文脈)の選択
は、コード化の場合と同じである。これについては、以
下の2進の場合で詳細に説明する。さらに、最適な予測
を提供するために、最大文脈長と同数の線で下部パイプ
ライン314をバスまで延ばす必要がある。このため、
第1の線は、左端のDPEによって行われた予測を格納
する。第2の線は、1ビット文脈を格納するDPEによ
って行われた予測を格納し、以下同様である。最後の予
測は、非ゼロ値が格納された最も深い(すなわち、最後
の)線である。
【0044】2進データ・ストリングのコード化/予測
は簡単であるがよく発生する事例なので、2進アルファ
ベットに関する特定の実施例について以下で詳細に説明
する。
【0045】図4を参照すると、2つの隣接するDPE
400が示されている。各DPE400は、文脈sと関
連しており、CPU402と、ローカル・メモリ404
およびパイプライン・メモリ406を含むデータ格納手
段とを備えている。DPE400はまた、以下のレジス
タを備えている。
【0046】1.入力記号xを保持するための1ビット
記号レジスタ410。このレジスタ410は、定義によ
り「パイプライン・レジスタ」である。なぜなら、その
右側に別の記号レジスタ410、その右側にさらに別の
記号レジスタが次々に接続されて、図3の上部パイプラ
イン310に似た「パイプライン」を形成するからであ
る。
【0047】2.xの直前のq個の記号を保持するため
のqビット一時記憶レジスタ412。TEMPは、一時
記憶レジスタ412を占有する記号を示す。
【0048】図4の特定の配置において、一時記憶レジ
スタ412は、DPE400の記号レジスタ410を占
有する現記号xの右側に入力ストリングのq個の記号を
複製する。記号レジスタ410中の記号、このDPE4
00の右側にある記号ならびにTEMPが常に変化する
場合でも、時間が経過しても、各DPEにその作成時に
関連付けられた文脈は変化しない。したがって、文脈
を、対応するDPE400のアドレスとして使用するこ
とができる。すなわち、第1のDPEは第1の文脈と関
連し、第2のDPEは第2の文脈と関連し、以下同様で
ある。
【0049】ローカル・メモリ404はさらに、以下に
説明する様々なレジスタおよびカウンタを備えている。
【0050】1.文脈レジスタ414。データ木の特定
のノードに対応する文脈sを保持する、CRで示される
qビット部分と、文脈|s|の長さを保持するいくつか
の特別ビットを含む。ここで|s|≦qである。
【0051】2.2つの記号確率カウンタ416。その
値はC(0)およびC(1)で示される。文脈s中で2
進値0および1が発生した回数をカウントするために使
用される。
【0052】3.dビット相対効率レジスタ418。そ
の値はRERで示される。sに関連するノードの、親ノ
ードに対する相対効率を保持するために用いる。
【0053】4.2進ノード状況フラグ420。その値
は、bで表され、ノードの状況、すなわち、葉であるか
(b=0)、それとも2つの連続ノードを持つ内部ノー
ドであるか(b=1)を示す。
【0054】パイプライン・メモリ406はさらに、以
下の「パイプライン・レジスタ」を備えている。これら
のレジスタはすべて、0に初期設定される。
【0055】1.新規ノード・フラグ422。その値は
cによって表される。ここで、c=1は、現文脈を特別
ビットによって拡張して新規文脈(したがって、新規ノ
ード)を作成する必要があることを示す。具体的に言う
と、DPE400が偶数番号のとき特別ビットは0であ
り、DPE400が奇数番号のとき特別ビットは1であ
る。
【0056】2.qビット・ノード長レジスタ424。
その値はNLRで示される。新規ノードと関連付ける文
脈の長さを伝播するために用いる。
【0057】3.dビット・コード化効率レジスタ42
6。その内容はCERで示される。コード化効率を
「親」から「子」へ伝播するために用いる。
【0058】4.eビット最善確率バッファ428。そ
の値はBEST PROBで示される。記号レジスタ4
10を占有している入力記号xの最適モデルを選択する
ために用いる。
【0059】上記の4つのレジスタはそれぞれ、その右
側にあるレジスタに接続され、基本的に図3の下部パイ
プライン314に似た「パイプライン」を形成すること
に留意されたい。
【0060】パラメータqは、nと相関しなければなら
ず、コストなど実施上の留意事項に基づき、精度パラメ
ータdおよびeと共に事前に決定しておく必要がある。
q、d、またはeの典型的な値は32である(すなわ
ち、最大文脈長および精度パラメータは32ビット)。
【0061】文脈ベースのモデルが実施できる好ましい
実施例の分散アレイ・データ処理システムについて説明
したが、この2進アルファベットの場合用のアレイ上で
の特定の文脈ベースのモデル、すなわちコンテキスト・
アルゴリズムの実施態様の詳細について以下に述べる。
基本的に、処理すべきシーケンスの記号は、1クロック
・サイクル当たり1つの割合でアレイに入力され、記号
レジスタ410内を経時的に左から右へ進む。アレイ中
のDPE400の位置には無関係に、5つのパイプライ
ン・レジスタ、すなわち記号レジスタ410、新規ノー
ド・フラグ422、ノード長レジスタ424、コード化
効率レジスタ426、および最良確率バッファ428の
内容はすべて、各クロック・サイクルごとに1つ右のD
PEに進む。一方、一時記憶レジスタ412の内容は、
各クロック・サイクルごとに1つ右の位置にシフトし、
1番右のビットが破棄され、1番左の空の位置はxのコ
ピーで充填される。分散アレイ・データ処理システムに
おける2進アルファベットに対するコンテキスト・アル
ゴリズムの実施態様を示すフロー・チャートを図5ない
し図8に示す。
【0062】図5を参照すると、DPEの初期設定が示
されている。第1の(すなわち、1番左の)DPE40
0の文脈レジスタ414には最初、ステップ502で空
の文脈λが割り当てられ、他のすべてのDPEの各文脈
レジスタ414には、ステップ504で未定義の文脈z
zz...zzzが割り当てられる。未定義の文脈は、文
脈レジスタに追加され0に設定される特別ビット位置に
よって示すことができ、値が1の特別ビット位置は定義
済み文脈を示す。ステップ506で、第1のDPEのC
(0)とC(1)が共に0に設定される。フラグbも同
様に0に設定される(なぜなら、まだ連続ノードがない
からである)。ステップ508では、第1のDPEのR
ERに負の値、たとえば−5が割り当てられ、他のDP
EのRERには、正の値、たとえば+5が割り当てられ
る。記号の最適モデルを選択するための簡単な基準は、
負のRERを持つ最長の文脈(またはノード)を選択す
ることである。第1のDPE400のRERは常に前述
の負の値に維持され、各記号が少なくとも、該記号がコ
ード化される空の文脈を持つことを保証する。この点に
ついては以下でさらに説明する。
【0063】図6を参照すると、第1のDPEは、各ク
ロック・サイクルで次のことを実行する。ステップ60
2で、現在記号レジスタ410を占有している記号xの
ラプラスの推定量、すなわち
【数3】 を計算し、それをeビット単位で表して、最良確率バッ
ファ428に書き込む。ステップ604で、dビットで
表した値log(p)をコード化効率レジスタ426に
書き込み、ステップ606で、記号x、すなわちC
(x)に対応する記号確率カウンタを1だけ増分する。
ステップ608で、b=1の場合、Cを0に設定し、そ
うでない場合はCを1に設定し、b=0の場合、NLR
を0に設定する。ステップ610で、TEMPを1ビッ
ト右側にシフトし、TEMPの1番左のセルを現入力記
号xで充填する。ステップ612で、5つのパイプライ
ン・レジスタすべての内容、すなわちDPE400の
x、c、NLR、CER、およびBESTPROBを1
つ右のDPEに進める。
【0064】図7および図8は、第1のDPE400を
除くすべてのDPEに関連している。図7を参照する
と、CRが定義されたDPE400の活動が示されてい
る。すなわち、CRは、定義済み文脈を含み、このDP
E400は、各クロック・サイクルで以下のことを実行
する。
【0065】ステップ702で、CRとTEMPの第1
|s|ビットを比較し、この2つが同じでない場合はス
テップ712に進む。次のステップ704ないし710
は、ステップ702の前記接頭部が等しい場合、すなわ
ちDPE400に関連する文脈s中にxが「生じる」場
合に実行される。
【0066】ステップ704で、現在記号レジスタ41
0を占有している記号xのラプラスの推定量、すなわち
【数4】 を計算する。RERが負の場合、BESTPROBをp
のeビット表現で置き換える(これは、負のRERを持
つ最後の関連DPE400がモデルを決定する方法であ
ることに留意されたい)。さらに、b=0である場合
は、bとcを共に1に設定し、NLRを|s|に設定し
て、sの2つの子ノードを作成する。これらの子ノード
はどちらも、アレイ中のsの右側に出現する。ステップ
706で、RERにCERを加え、その結果から−lo
g(p)のdビット表現を引く。ステップ708で、前
記の、−log(p)のdビット表現をコード化効率レ
ジスタ414に書き込む。ステップ710で、C(x)
を1だけ増分する。
【0067】ステップ712および714は、基本的に
それぞれステップ610および612と同じである。
【0068】図8を参照すると、CRがまだ未定義であ
るDPE400の活動が示されている。すなわち、CR
は未定義の文脈zzz...zzzを含み、DPE400
は各クロック・サイクルで以下のことを実行する。
【0069】ステップ802で、cが0に等しいかどう
か判定する。等しい場合、ステップ812に進む。cが
1に等しい場合は、次のことを実行する。ステップ80
4で、NLRビットを一時記憶レジスタ412から文脈
レジスタ414にコピーし、DPE400が偶数番号か
それとも奇数番号かに応じて、これらのビットの右側に
0または1を連結する。こうして、新規のノードが作成
され、各ノードの文脈はNLR+1ビットの長さを持
つ。ステップ806で、C(x)に1を代入し、C(1
−x)に0を代入する。ステップ808で、RERを所
定のある正の値に設定する。ステップ810で、偶数番
号のDPEではc=1およびb=0と設定し、奇数番号
のDPEではc=b=0と設定して、子ノードの対が作
成されたことを示す。
【0070】ステップ812および814は、基本的に
それぞれステップ610および612と同じである。
【0071】予測の応用例では、所望の出力は、1番右
のDPE400の最良確率バッファ428から出力され
る値である。この場合、算術エンコーダが、この出力さ
れたBESTPROB値を、コード化の応用例に適切な
出力コードに変換する。
【0072】図4ないし8を含む前記の説明は、アルフ
ァベットのサイズに応じて記号確率カウンタ416の数
を変えるなら、どんな有限アルファベットにも適用する
ことができる。
【0073】前記の特定の実施例は線形シストリック・
アレイ上でのコンテキスト・アルゴリズムの実施態様を
開示したものであるが、当業者には、前記の教示に照ら
して、他の分散または並列処理環境でコンテキスト・ア
ルゴリズムを実施することも可能である。たとえば、当
業者には、線形アレイ、ド=ブルエイン・グラフ、d次
元メッシュ、ハイパーキューブを含むがこれだけには限
定されない相互接続ネットワーク・トポロジーに基づく
他の並列処理アーキテクチャ上でコンテキスト・アルゴ
リズムを実現できることが理解されよう。
【0074】本発明に関連し、以下の事項について開示
する。それぞれ記号レジスタと、一時記憶レジスタと、
文脈レジスタ、複数の記号確率レジスタ、相対効率レジ
スタ、およびノード状況フラグを有するローカル・メモ
リと、新規ノード・フラグ、ノード長レジスタ、コード
化効率レジスタ、および最適モデル・バッファを有する
パイプライン・メモリとを含む、複数のデータ処理要素
(DPE)を含み、第1のDPEを有する線形シストリ
ック・アレイ内で、複数のクロック・サイクルに、アル
ファベットの複数の記号から成るデータ・ストリングを
処理する方法であって、(a)前記第1のDPEの第1
DPE文脈レジスタに空の文脈を割り当て、前記第1の
DPEの前記記号確率カウンタおよびノード状況フラグ
を0に設定し、前記第1のDPEの前記相対効率レジス
タに負の値を割り当て、前記第1のDPE以外の前記各
DPEの前記文脈レジスタに未定義の文脈を割り当て、
前記第1のDPE以外の前記各DPEの前記相対効率レ
ジスタに正の値を割り当て、前記各DPEの前記新規ノ
ード・フラグ、前記ノード長レジスタ、前記コード化効
率レジスタ、および前記最良確率バッファに0を割り当
て、前記一時記憶レジスタに、現在前記記号レジスタを
占有している前記記号の直前にある前記データ・ストリ
ングの複数の記号を割り当てるステップと、(b)前記
第1のDPEにおいて、eビットで表した推定量を前記
最良確率バッファに割り当て、前記推定量の対数の値に
−1を掛け、dビットで表した値を前記コード化効率レ
ジスタに割り当て、前記データ・ストリングの前記記号
に対応する前記記号カウンタを1だけ増分し、前記ノー
ド状況フラグの値が1の場合は前記新規ノード・フラグ
を0に設定し、前記ノード状況フラグの値が0の場合は
前記ノード状況フラグと前記新規ノード・フラグを共に
1に設定し、前記文脈長レジスタを0に設定するステッ
プと、(c)前記第1のDPE以外の任意の前記DPE
において、前記DPEの前記文脈レジスタが、|s|ビ
ットの長さを持つ定義済み文脈を含み、前記文脈レジス
タと前記一時記憶レジスタの第1の|s|ビットを比較
し、前記2組の|s|ビットが同じでない場合、前記一
時記憶レジスタの内容を1ビット右側にシフトし、前記
一時記憶レジスタの1番左のセルを、現在前記記号レジ
スタを占有している前記記号で充填し、前記DPEの前
記記号レジスタ、前記新規ノード・レジスタ、内容がN
LRで示される前記ノード長レジスタ、前記コード化効
率レジスタ、および前記最良効率バッファの内容を、前
記DPEの右側にあるDPEの対応する記号レジスタ、
新規ノード・レジスタ、ノード長レジスタ、コード化効
率レジスタ、および最良効率バッファに伝送し、前記2
組の|s|ビットが同じである場合、および前記相対効
率レジスタが負の値を含む場合、前記最良確率バッファ
の内容を、eビットで表された推定量で置き換え、前記
ノード状況レジスタの値が0の場合、前記ノード・レジ
スタおよび前記新規ノード・レジスタを1に設定し、前
記文脈長レジスタの値を|s|に設定し、前記相対効率
レジスタの値に前記コード化効率レジスタの値を加え、
この結果から、前記推定量の対数のdビット表現に−1
を掛けた値を引き、前記推定量の対数のdビット表現に
−1を掛けた値を、前記コード化効率レジスタに書き込
み、前記データ・ストリングの前記記号に対応する前記
記号カウンタを1だけ増分し、前記一時記憶レジスタの
内容を1ビット右にシフトし、前記一時記憶レジスタの
1番左のセルを、現在前記記号レジスタを占有している
前記記号で充填し、前記DPEの前記記号レジスタ、前
記新規ノード・レジスタ、前記ノード長レジスタ、前記
コード化効率レジスタ、および前記最良効率バッファの
内容を、前記DPEの右側にあるDPEの対応する記号
レジスタ、新規ノード・レジスタ、ノード長レジスタ、
コード化効率レジスタ、および最良効率バッファに伝送
するステップと、(d)前記第1のDPE以外の任意の
前記DPEにおいて、前記DPEの前記文脈レジスタ
が、未定義の文脈を含み、前記新規ノード・フラグの値
が0の場合、前記一時記憶レジスタの内容を1ビット右
側にシフトし、前記一時記憶レジスタの1番左のセル
を、現在前記記号レジスタを占有している前記記号で充
填し、前記DPEの前記記号レジスタ、前記新規ノード
・レジスタ、前記ノード長レジスタ、前記コード化効率
レジスタ、および前記最良効率バッファの内容を、前記
DPEの右側にあるDPEの対応する記号レジスタ、新
規ノード・レジスタ、ノード長レジスタ、コード化効率
レジスタ、および最良効率バッファに伝送し、前記新規
ノード・フラグの値が1の場合、NLRビットを前記一
時記憶レジスタから前記文脈レジスタにコピーし、前記
DPEが偶数番号のDPEの場合、前記文脈レジスタ中
の前記NLRビットの右側に0を連結し、前記DPEが
奇数番号のDPEの場合、前記文脈レジスタ中の前記N
LRビットの右側に1を連結し、前記データ・ストリン
グの前記記号に対応する前記記号カウンタに1を割り当
て、前記データ・ストリングの前記記号以外の前記アル
ファベットの記号に対応する前記記号カウンタに0を割
り当て、前記相対効率レジスタに正の値を割り当て、偶
数番号のDPEではノード状況フラグに0を割り当て、
奇数番号のDPEでは前記ノード状況フラグと前記新規
ノード・フラグに共に0を割り当て、前記一時記憶レジ
スタの内容を1ビット右側にシフトし、前記一時記憶レ
ジスタの1番左のセルを、現在前記記号レジスタを占有
している前記記号で充填し、前記DPEの前記記号レジ
スタ、前記新規ノード・レジスタ、前記ノード長レジス
タ、前記コード化効率レジスタ、および前記最良効率バ
ッファの内容を、前記DPEの右側にあるDPEの対応
する記号レジスタ、新規ノード・レジスタ、ノード長レ
ジスタ、コード化効率レジスタ、および最良効率バッフ
ァに伝送するステップとを含むことを特徴とする方法。
【0075】
【発明の効果】本発明により、過去の記号の最適に選択
された全てのセグメント、すなわち分脈を同時に使うた
めの複数のデータ・プロセッサを備えた分散データ処理
システムが提供され、コード化及び予測の迅速な実行が
可能となる。
【図面の簡単な説明】
【図1】単一のデータ処理要素上での文脈ベースのモデ
ルの順次式実施態様の概略図である。
【図2】各ノードがコード化または予測用の文脈を含
む、複数の文脈ノードを示すデータ木構造の概略図であ
る。
【図3】分散アレイ・データ処理システム上での文脈ベ
ースのモデルの実施態様を示す概略図である。
【図4】コード化または予測用の文脈ベースのモデルを
その中で実施できる、分散アレイ・データ処理システム
の2つの隣接DPEの概略図である。
【図5】コード化または予測用のコンテキスト・アルゴ
リズムをその中で実施できる、分散アレイ・データ処理
システムのDPEの初期設定のフロー・チャートであ
る。
【図6】コード化または予測用のコンテキスト・アルゴ
リズムをその中で実施できる、分散アレイ・データ処理
システムの第1のDPEの活動のフロー・チャートであ
る。
【図7】第1のDPEではなく、文脈レジスタの内容が
定義されているDPEの各クロック・サイクルにおける
活動のフロー・チャートである。
【図8】第1のDPEではなく、文脈レジスタの内容が
定義されていないDPEの各クロック・サイクルにおけ
る活動のフロー・チャートである。
【符号の説明】
100 データ処理要素(DPE) 102 データ・ストリング 104 入力バッファ 106 中央演算処理装置(CPU) 108 メモリ 210 データ木構造 212 文脈ノード 214 最後の文脈ノード 216 根 306 作業用メモリ 308 記号レジスタ 310 上部パイプライン 312 パイプライン・メモリ 314 下部パイプライン 316 文脈レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョルマ・ヨハンネス・リッサネン アメリカ合衆国95032、カリフォルニア州 ロス・ガトス、テレシタ・ウェイ 140 (72)発明者 ダフナ・シャインヴァルド イスラエル36803、ノフィト183

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】それぞれ複数のデータを格納するデータ記
    憶手段と、記憶手段中の前記データを処理するデータ処
    理手段とを含む、複数のデータ処理要素(DPE)を備
    え、 各DPEが、1組の文脈関連データを適応的に生成し、
    個別にまたは他の前記DPEと共に、前記複数組の文脈
    関連データのうちの少なくとも1組を使用して、データ
    ・ストリングのためのコード化機能または予測機能を実
    行することを特徴とする、 データ・ストリングを処理するための分散データ処理シ
    ステム。
  2. 【請求項2】前記データ処理要素が、前記複数組の文脈
    関連データによって決定される順序で使用されることを
    特徴とする、請求項1に記載の分散データ処理システ
    ム。
  3. 【請求項3】前記データ処理手段が、コンテキスト・ア
    ルゴリズムを実行して、前記データ・ストリングに関す
    る前記文脈関連データを最適に生成することを特徴とす
    る、請求項1に記載の分散データ処理システム。
  4. 【請求項4】前記分散データ処理システムが、シストリ
    ック・アレイであることを特徴とする、請求項1に記載
    の分散データ処理システム。
  5. 【請求項5】それぞれ複数のデータを格納するデータ記
    憶手段と、記憶手段中の前記データを処理するデータ処
    理手段とを含む、線形に配列された複数のデータ処理要
    素(DPE)を備え、 各DPEが、データ木構造に関する1組の文脈関連デー
    タを適応的に生成し、個別にまたは他の前記DPEと共
    に、前記複数組の文脈関連データのうちの少なくとも1
    組を使用して、データ・ストリングのためのコード化機
    能または予測機能を適応的かつ最適に経時的に実行する
    ことを特徴とする、データ・ストリングを処理するため
    の線形シストリック・アレイ。
  6. 【請求項6】前記各データ処理手段が、コンテキスト・
    アルゴリズムを実行して、前記データ・ストリング用の
    前記1組の文脈関連データを生成することを特徴とす
    る、請求項5に記載の線形シストリック・アレイ。
  7. 【請求項7】線形アレイとして接続された複数のデータ
    処理要素(DPE)を備え、 前記各DPEが、データ処理手段、記号レジスタ、ロー
    カル・メモリ、およびパイプライン・メモリを含み、 前記各記号レジスタが、各クロック・サイクルに、前記
    データ・ストリングの記号を受け取り、 前記各データ処理手段が、各前記クロック・サイクル
    に、個別にまたは他の前記DPEの前記データ処理手段
    と共に、前記各記号に関する1組の文脈関連データを適
    応的に生成し、前記各1組の文脈関連データが、前記そ
    れぞれのローカル・メモリおよび前記それぞれのパイプ
    ライン・メモリに格納され、 前記各DPEが前記各クロック・サイクル中に、前記記
    号と、前記1組の文脈関連データの少なくとも一部分
    を、それぞれ前記記号レジスタおよび前記パイプライン
    ・メモリから、前記アレイの次のDPEの対応する記号
    レジスタおよびパイプライン・メモリに伝送し、それに
    よって、前記記号に関するコード化機能または予測機能
    を実行することを特徴とする、複数のクロック・サイク
    ルに複数の記号から構成されたデータ・ストリングを処
    理するための線形シストリック・アレイ。
  8. 【請求項8】さらに、第1のDPEおよび最後のDPE
    を含み、 前記各記号レジスタが、前記第1のDPEより下流側に
    ある次のDPEの前記記号レジスタに接続され、 前記各パイプライン・メモリが、前記第1のDPEより
    下流側にある次のDPEの前記パイプライン・メモリに
    接続され、 前記第1のDPEの前記記号レジスタが、前記各クロッ
    ク・サイクルに前記データ・ストリングの1つの前記記
    号を受け取り、前記第1のDPE以外の前記各DPEの
    前記記号レジスタが、前記各クロック・サイクルに前記
    DPEより下流側にある隣接DPEの前記記号レジスタ
    から1つの前記記号を受け取り、 前記1組の文脈関連データのうちの少なくとも一部分
    が、各クロック・サイクルに、前記最後のDPE以外の
    前記各DPEの前記それぞれのパイプライン・メモリか
    ら、下流側にある次のDPEの対応するパイプライン・
    メモリに伝送され、 前記コード化機能または予測機能が、前記最後のDPE
    の前記パイプライン・メモリ中の前記1組の文脈関連デ
    ータのうちの少なくとも一部分に従って実行されること
    を特徴とする、請求項7に記載の線形シストリック・ア
    レイ。
  9. 【請求項9】(a)データ・ストリングを経時的に受け
    取るステップと、 (b)前記データ・ストリングに関する複数組の文脈関
    連データを適応的に生成するステップと、 (c)少なくとも1組の前記文脈関連データを使用し
    て、前記データ・ストリングに関する最適コード化機能
    または予測機能を実行するステップとを含むことを特徴
    とする、分散データ処理システム内でデータ・ストリン
    グのためのコード化機能または予測機能を実行する方
    法。
  10. 【請求項10】複数のデータ処理要素(DPE)から構
    成され第1のDPEを含む線形シストリック・アレイ内
    で、複数のクロック・サイクルに、複数の記号から成る
    データ・ストリングを処理する方法であって、 (a)各クロック・サイクルに前記データ・ストリング
    の1つの前記記号を受け取り、前記1つの記号を前記ア
    レイに沿って経時的に伝送するステップと、 (b)前記各DPEが、各クロック・サイクルに、受け
    取った記号に関する1組の文脈関連データを適応的に生
    成するステップと、 (c)前記DPEが、個別にまたは相互に協力して、少
    なくとも1組の前記文脈関連データを使用して、各クロ
    ック・サイクルに前記各記号に関する最適コード化機能
    または予測機能を実行するステップとを含むことを特徴
    とする方法。
  11. 【請求項11】前記1組の文脈関連データがコンテキス
    ト・アルゴリズムによって生成されることを特徴とす
    る、請求項10に記載の、データ・ストリングを処理す
    る方法。
  12. 【請求項12】前記1組の文脈関連データがコンテキス
    ト・アルゴリズムによって生成されることを特徴とす
    る、請求項11に記載の、データ・ストリングを処理す
    る方法。
  13. 【請求項13】複数のデータ処理要素(DPE)から構
    成され第1のDPEを含む線形シストリック・アレイ内
    で、複数のクロック・サイクルに、複数の記号から成る
    データ・ストリングを処理する方法であって、 (a)前記第1のDPEに空の文脈を割り当て、前記第
    1のDPE以外の前記各DPEに未定義の文脈を割り当
    てることによって、前記DPEを初期設定するステップ
    と、 (b)前記第1のDPEが各クロック・サイクルに1つ
    の前記記号を受け取り、前記各DPEが前記各記号を前
    記アレイに沿って下流側に経時的に伝送するステップ
    と、 (c)前記各DPEを定義済み文脈と関連付けることを
    含めて、コンテキスト・アルゴリズムに従って複数の演
    算を経時的に実行し、前記各DPEで記号統計を適応的
    に更新し、前記記号統計に基づいて前記各記号の最適モ
    デルを算出するステップと、 (d)前記最適モデルを使用して、前記各記号に関する
    コード化機能または予測機能を実行するステップとを含
    むことを特徴とする方法。
JP5279150A 1992-11-12 1993-11-09 分散デ―タ処理システム Expired - Lifetime JP2544895B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US975300 1992-11-12
US07/975,300 US5550540A (en) 1992-11-12 1992-11-12 Distributed coding and prediction by use of contexts

Publications (2)

Publication Number Publication Date
JPH06259223A true JPH06259223A (ja) 1994-09-16
JP2544895B2 JP2544895B2 (ja) 1996-10-16

Family

ID=25522885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5279150A Expired - Lifetime JP2544895B2 (ja) 1992-11-12 1993-11-09 分散デ―タ処理システム

Country Status (2)

Country Link
US (2) US5550540A (ja)
JP (1) JP2544895B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895473B2 (en) 2000-05-12 2005-05-17 Fujitsu Limited Data control device and an ATM control device
JP2006332775A (ja) * 2005-05-23 2006-12-07 Sony Corp 文字列検索回路及び文字列検索方法

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960015195A (ko) * 1994-10-31 1996-05-22 배순훈 트리 구조 이원 연산 코딩 장치
GB9422738D0 (en) * 1994-11-10 1995-01-04 Univ Western Ontario Context-based, adaptive, progressive, lossless compression of still continuous -tone images
US5689589A (en) * 1994-12-01 1997-11-18 Ricoh Company Ltd. Data compression for palettized video images
JP3302210B2 (ja) * 1995-02-10 2002-07-15 富士通株式会社 データ符号化/復号化方法及び装置
US5694126A (en) * 1995-03-20 1997-12-02 Oki Data Corporation Adaptive predictive data compression method and apparatus
US5668737A (en) * 1995-03-22 1997-09-16 Pixel Magic, Inc. High-speed data processor and coding method
US5710562A (en) * 1995-08-31 1998-01-20 Ricoh Company Ltd. Method and apparatus for compressing arbitrary data
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
US5974411A (en) * 1997-02-18 1999-10-26 Sand Technology Systems International, Inc. N-way processing of bit strings in a dataflow architecture
US5930399A (en) * 1997-04-03 1999-07-27 Microsoft Corporation Data encoding for a communication channel supporting a subset of the characters to be transmitted
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
TW412817B (en) 1998-06-19 2000-11-21 Matsushita Electric Ind Co Ltd A bump bonding apparatus and method
US6456209B1 (en) * 1998-12-01 2002-09-24 Lucent Technologies Inc. Method and apparatus for deriving a plurally parsable data compression dictionary
US6611213B1 (en) 1999-03-22 2003-08-26 Lucent Technologies Inc. Method and apparatus for data compression using fingerprinting
US6388584B1 (en) 2000-03-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for data compression of network packets
US6236341B1 (en) 2000-03-16 2001-05-22 Lucent Technologies Inc. Method and apparatus for data compression of network packets employing per-packet hash tables
US7466742B1 (en) * 2000-04-21 2008-12-16 Nielsen Media Research, Inc. Detection of entropy in connection with audio signals
US6636956B1 (en) * 2001-07-06 2003-10-21 Cypress Semiconductor Corp. Memory management of striped pipelined data structures
US6650261B2 (en) * 2001-09-06 2003-11-18 Xerox Corporation Sliding window compression method utilizing defined match locations
US7111248B2 (en) * 2002-01-15 2006-09-19 Openwave Systems Inc. Alphanumeric information input method
US7039106B2 (en) * 2002-03-25 2006-05-02 Intel Corporation Processing digital data prior to compression
EP2933755A1 (en) * 2002-04-23 2015-10-21 Ntt Docomo, Inc. System and method for arithmetic encoding and decoding
US9577667B2 (en) 2002-04-23 2017-02-21 Ntt Docomo, Inc. System and method for arithmetic encoding and decoding
US7313817B2 (en) * 2003-06-17 2007-12-25 Lockheed Martin Corporation Data transmission system utilizing efficient complexity estimation of the kolmogorov complexity for data transmission
US20060235683A1 (en) * 2005-04-13 2006-10-19 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Lossless encoding of information with guaranteed maximum bitrate
US7788106B2 (en) * 2005-04-13 2010-08-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding with compact codebooks
US7991610B2 (en) * 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
US7607918B2 (en) * 2005-05-27 2009-10-27 Dybuster Ag Method and system for spatial, appearance and acoustic coding of words and sentences
US8392684B2 (en) 2005-08-12 2013-03-05 Silver Peak Systems, Inc. Data encryption in a network memory architecture for providing data based on local accessibility
US8095774B1 (en) 2007-07-05 2012-01-10 Silver Peak Systems, Inc. Pre-fetching data into a memory
US8171238B1 (en) 2007-07-05 2012-05-01 Silver Peak Systems, Inc. Identification of data stored in memory
US8929402B1 (en) * 2005-09-29 2015-01-06 Silver Peak Systems, Inc. Systems and methods for compressing packet data by predicting subsequent data
US8489562B1 (en) 2007-11-30 2013-07-16 Silver Peak Systems, Inc. Deferred data storage
US8811431B2 (en) 2008-11-20 2014-08-19 Silver Peak Systems, Inc. Systems and methods for compressing packet data
US20070096956A1 (en) * 2005-10-31 2007-05-03 Fujifilm Microdisks Usa Inc. Static defined word compressor for embedded applications
TW200734894A (en) * 2006-03-10 2007-09-16 Univ Chung Hua Virtual tree searcher using parallel tree search method
US8755381B2 (en) 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US7504970B2 (en) * 2006-08-17 2009-03-17 Raytheon Company Data encoder
US8307115B1 (en) 2007-11-30 2012-11-06 Silver Peak Systems, Inc. Network memory mirroring
US8743683B1 (en) 2008-07-03 2014-06-03 Silver Peak Systems, Inc. Quality of service using multiple flows
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US8462023B2 (en) * 2008-09-16 2013-06-11 Sk Telecom Co., Ltd. Encoding method and encoding apparatus for B-transform, and encoded data for same
US9130991B2 (en) 2011-10-14 2015-09-08 Silver Peak Systems, Inc. Processing data packets in performance enhancing proxy (PEP) environment
US9626224B2 (en) 2011-11-03 2017-04-18 Silver Peak Systems, Inc. Optimizing available computing resources within a virtual environment
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099257A (en) * 1976-09-02 1978-07-04 International Business Machines Corporation Markov processor for context encoding from given characters and for character decoding from given contexts
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US5023611A (en) * 1989-07-28 1991-06-11 At&T Bell Laboratories Entropy encoder/decoder including a context extractor
US5097261A (en) * 1989-11-22 1992-03-17 International Business Machines Corporation Data compression for recording on a record medium
US5109226A (en) * 1989-11-22 1992-04-28 International Business Machines Corporation Parallel processors sequentially encoding/decoding compaction maintaining format compatibility
EP0480115A1 (en) * 1990-10-09 1992-04-15 International Business Machines Corporation Improved data compression/coding method and device for implementing said method
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
US5379036A (en) * 1992-04-01 1995-01-03 Storer; James A. Method and apparatus for data compression

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895473B2 (en) 2000-05-12 2005-05-17 Fujitsu Limited Data control device and an ATM control device
JP2006332775A (ja) * 2005-05-23 2006-12-07 Sony Corp 文字列検索回路及び文字列検索方法
JP4556766B2 (ja) * 2005-05-23 2010-10-06 ソニー株式会社 文字列検索回路及び文字列検索方法

Also Published As

Publication number Publication date
US5652581A (en) 1997-07-29
US5550540A (en) 1996-08-27
JP2544895B2 (ja) 1996-10-16

Similar Documents

Publication Publication Date Title
JP2544895B2 (ja) 分散デ―タ処理システム
US9385748B2 (en) Parallel dictionary-based compression encoder
US7265691B2 (en) Modeling for enumerative encoding
US7161507B2 (en) Fast, practically optimal entropy coding
US5293164A (en) Data compression with pipeline processor having separate memories
JP2800880B2 (ja) 高速復号算術符号化装置
US11531469B2 (en) Arrangements for storing more data in memory
JP3367832B2 (ja) 圧縮装置、圧縮方法及びコンテキスト提供装置
US5379036A (en) Method and apparatus for data compression
US6445314B1 (en) System and method for the decoding of variable length codes
US9590655B2 (en) Scalable high-bandwidth architecture for lossless compression
JP3083730B2 (ja) データ情報を圧縮するためのシステムおよび方法
CN112292816A (zh) 处理核心数据压缩和存储系统
US20200394066A1 (en) Context value retrieval prior to or parallel with expansion of previous symbol for context-decoding in range decoder
CN116128701A (zh) 一种用于执行图计算任务的装置、图计算方法
US6778107B2 (en) Method and apparatus for huffman decoding technique
De Agostino The greedy approach to dictionary-based static text compression on a distributed system
Stauffer et al. Parallel text compression
Peon et al. A VLSI implementation of an arithmetic coder for image compression
JP2799228B2 (ja) 辞書初期化方式
Hassan et al. Arithmetic N-gram: an efficient data compression technique
Lynn et al. Parallel Text Compression
JPH07118661B2 (ja) デ−タ圧縮復号化装置
JPH0453328B2 (ja)
JPH07118660B2 (ja) デ−タ圧縮符号化装置