JPH03179520A - データデコーダ - Google Patents

データデコーダ

Info

Publication number
JPH03179520A
JPH03179520A JP2203777A JP20377790A JPH03179520A JP H03179520 A JPH03179520 A JP H03179520A JP 2203777 A JP2203777 A JP 2203777A JP 20377790 A JP20377790 A JP 20377790A JP H03179520 A JPH03179520 A JP H03179520A
Authority
JP
Japan
Prior art keywords
data
memory
code word
multiplexer
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.)
Pending
Application number
JP2203777A
Other languages
English (en)
Inventor
Imran A Shah
イムラン エイ シャー
C Johnson Brian
ブライアン シー ジョンソン
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Koninklijke Philips Electronics NV
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
Priority claimed from US07/388,281 external-priority patent/US5113516A/en
Priority claimed from US07/388,283 external-priority patent/US5058137A/en
Application filed by Philips Gloeilampenfabrieken NV, Koninklijke Philips Electronics NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPH03179520A publication Critical patent/JPH03179520A/ja
Pending 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はデータデコーダ、特にランペル−ジブ符号化さ
れたデータを復号化するデコーダに関するものである。
(従来の技術) データ圧縮技術を改善する必要性があることは既知であ
り、極めて多量のデータが発生するとともに現在のコン
ピュータシステムで用いられている。将来は多量のデー
タを記憶し、処理することが必要とされる。またデータ
記憶の要求を低減するために、データを圧縮する必要の
あることもしばしばである。更に、多数のコンピュータ
をコンピュータネットワークの1部分として作動させる
ため、データ伝送の時間およびコストを低減するために
、データを圧縮させる必要のあることもしばしばである
データ圧縮の一般的な多くの技術はランペル−ジブ(L
Z)アルゴリズムである。このランペル−ジブアルゴリ
ズムによってデータ記号の周波数歪みの既知の知識かな
くても、1回の通過でデータを有効に圧縮させることが
できる。また、符号化されたデータを伸長する復号化ア
ルゴリズムも存在する。
ランペル−ジブデータ圧縮アルゴリズムは入力文字のス
トリングを固定長さの符号にマツプされるようになる。
ストリング符号ワード対をストリングテーブルと称され
るテーブルに記憶する。この際のテーブルエントリはデ
ータ圧縮中に発生する。データ伸長はデータ圧縮ステッ
プの場合と同一のストリングテーブルを用い、これを用
いてメツセージか翻訳されたものとする。メツセージの
翻訳中容ストリングないの文字は逆の順序に発生するよ
うになる。データ圧縮の結果はコンピュータの中央プロ
セッサにおける追加の負担となる。
多量のデータを圧縮または伸長する必要かある場合には
十分な量の計算時間が必要となる。これはデータ圧縮の
使用により達成される利得を減少するようになる。 ま
た、本発明はバッファメモリ、特にランペル−ジブデー
タ圧縮アルゴリズムの実行に用いるに好適な後入れ一先
出しメモリに関するものである。
従って、本発明の目的は、コンピュータまたはデータ伝
送或は処理システムに用いてLZ符号化データ復号し得
るようにしたデータデコーダを提供することを目的とす
る。
本発明の他の目的は翻訳された文字ストリングを反転す
る手段を提供せんとするにある。
かかるデータデコーダではデータ信号のフォーマットを
変化させる必要がある。その理由はこのデータか可変長
データであるからである。データは8または16ビツト
のような標準幅で発生するとは限らない。他のデータも
それ自体特定の長さ、例えば、9〜12ビツト像データ
を有するようにすることかできる。
所望のフォーマットに対する圧縮、伸長、リパッキング
データはコストが高くつくようになる。
計算のリソースをリパッキングに用いる場合にはこれら
リソースは許容し得ない長期に亘って結合されるように
なる。更に、同一のデータは1回以上りバッキングする
必要かあり、従って更にリパッキングに関連するコスト
か増大するようになる。
従って、本発明の目的はデータリパッカをも提供せんと
するにある。
(課題を解決するための手段) 本発明はランペル−ジブ符号化されたデータを復号化す
るデコーダであって、コードワードを記憶し、かつ記憶
されたコードワードに対応するデータワードを記憶する
メモリ手段と、符号化すべきコードワードを受けて記憶
する手段と、前記記憶されたコードワードを前記記憶手
段に供給してデータエレメントおよび他のコードワード
を読出すとともに記憶されたコードワードか復号される
まで他のコードワードおよび前記記憶手段から読出した
各順次のコードワードを前記記憶手段に供給する手段と
を具えることを特徴とする。
ランペル−ジブ符号化データを復号するデコーダはメモ
リを具え、これに符号ワードを記憶するとともにデータ
ワードを符号ワードに対応させるようにする。データを
データ素子と第2符号ワードとの組合わせの形状とし、
この第2符号ワードによってデータ素子および第3符号
ワードの組合わせを表わすようにする。復号化は、元の
符号ワードか検索されて符号ワードか復号されるまでデ
ータ素子および符号ワードを検索することによって行う
。次いて検索されたデータは後入れ一先出しメモリによ
って反転する。
本発明によれば、LZデコーダに用いる後入れ先出しメ
モリ回路を、第1および第2メモリと、オーバーフロー
メモリとして作動する第3メモリとて構成する。第1お
よび第2メモリの各々は、メモリアドレス信号の個別の
シーケンスを発生する。第1手段からのメモリアドレス
信号のシーケンスを第1メモリに供給し、第2手段から
のメモリアドレス信号のシーケンスを第2メモリに供給
する。アドレス信号乗算器はメモリアドレス信号の2つ
のシーケンスを受けてそのうちの一方または他方を第3
メモリに供給する。
制御手段によって他方の回路素子を制御して作動の所望
のモードを達成する。例えば、入力データストリングを
第1メモリに供給して第1手段からのメモリアドレス信
号のシーケンスによって決まるアドレスのシーケンスで
記憶する。入力ストリングの長さが第1メモリの容量以
上になる場合にはアドレス信号乗算器によって制御手段
の制i卸のもとで、メモリアドレス信号のシーケンスを
第3メモリに切換えて、データストリングを、第1手段
からのメモリアドレス信号のシーケンスによって決まる
第3メモリのメモリ位置に順序正しく記憶し続けるよう
にする。
入力ストリングか記憶された後、次の入力ストリングを
同様に第2メモリに記憶する。第2手段からのメモリア
ドレス信号のシーケンスを第2メモリに供給し、入力ス
トリングを第2メモリに順次に記憶する。入力ストリン
グかメモリに記憶される間に第1メモリにあらかじめ記
憶されたストリングを読出すようにする。前記第1手段
によってメモリアドレス信号のシーケンスを発生して第
1メモリに記憶されたストリングを読出すようにする(
この例では第3メモリ)。メモリアドレス信号のシーケ
ンスは、ストリングの記憶中に発生したシーケンスとは
逆の順序で第2手段により発生させるようにする。かよ
うにして、記憶されたストリングを逆の順序、即ち、後
入れ一先出し態様で読出すようにする。
また、本発明によれば、符号ワードをハツシング手順を
用いてメモリに記憶する。メモリアーキテクチュアは、
ハツシングに対し最適とするとともにメモリの2ブロツ
クを具える。メモリの第1ブロツクは、メモリの第2ブ
ロツクにリンクフィールドまたはポインタを記憶する場
合にのみ用い、このポインタはこれにハツシング関数を
適用することによってキーの値から見いだす。メモリの
第1ブロツクの各アドレスはハツシュテーブルアドレス
に対応し、メモリポイントの第1ブロツクに記憶された
ポイント値は第2メモリブロツクのキー値および関連す
るデータに対応する。同一のハツシュアドレスを共有す
る種々のキー値は第2メモリでリンクされたリストによ
って接続する。
このアーキテクチュアには幾つかの利点がある。
まず最初、これによってハツシュテーブルの負荷ファク
タ並びにキーおよび関連するデータに対するメモリ要求
を減結合する。次いて、第2メモリブロツクのメモリ要
求は第1メモリブロツクの容量とは無関係に満足するこ
とかできる。更に、過剰のメモリ要求は発生しない。そ
の理由はハツシュ機能か弱いからである。
第1メモリブロツクの各ハツシュアドレス、即ち、キー
値に作用するハツシュ機能の結果は単一ポイントにのみ
記憶する。第1メモリブロック従ってハツシュテーブル
の容量は最小のペナルティで拡張することかできる。そ
の理由は、これにキーまたは関連するデータか含まれて
いないからである。第2メモリブロツクはキーデータお
よび他の関連するデータを記憶するに充分な大きさとす
る必要はない。同一のハツシュアドレスへのキー毎にハ
ツシュを行うハツシュ関数の特別の場合でも、メモリの
第2ブロツクは記憶すべきデータか必要とする場合より
も大きくする必要はない。
本発明の他の特徴は、これかパイプラインアーキテクチ
ュアデ容易に実行することかできる点である。このパイ
プラインによって、ハツシュメモリおよび関連するキー
および他のデータに対するメモリの2つのアクセスから
生じるシステムスループットの任意のペナルティを排除
し得るようにする。これは第1および第2メモリ間にレ
ジスタおよび他のメモリを用いることによって達成する
ことかできる。このアーキテクチュアによってキーを第
1メモリブロツクのアドレスにハツシュせしめるととも
に記憶されたポインタ値を読出し、かつパイプラインレ
ジスタに記憶するようにする。
次いてレジスタのポインタ値を用いて第2メモリブロツ
クからのからのキーデータを読出すようにする。第2メ
モリブロツクかアクセスされる時間インターバル中次の
キーを第1メモリブロツクにハツシュさせることかでき
、従って次のキーのハッシュイングを全サーチ時間から
充分に除去する。
これがため、単一アクセスのみか必要となる場合にスル
ープットができるだけ高くなる。
(実施例) 図面につき本発明の詳細な説明する。
使用されるデータ編成またはデータ構体を第1図に示す
。リンクフィールドをハツシュ関数値H(k)に相当す
るアドレスで他のデータとは無関係にメモリ位置に書込
む。多重リンクフィールドはハツシュテーブル値に対応
するアドレスでテーブルのメモリに記憶し、リンクフィ
ールドlに記憶された値をメモリ位置2aへのポインタ
Pまたは関連するキーおよび他の任意の関連するデータ
フィールド2bのアドレスとする。各キーはレコード2
に含まれ、またレコード2は同一のハツシュアドレスに
関連するレコード2′、キーフィールド2’a、データ
フィールド2’b、およびリンクフィールド2’cへの
ポインタP′を記憶する関連するリンクフィールド2c
を有する。
関連するメモリアーキテクチュアは第2図に示すととも
に第1メモリMlおよび第2メモリM2を具える。第1
メモリMlによってハツシュテーブルを具えるアドレス
でリンクフィールド値のみを記憶する。第1メモリMl
の各アドレスはハツシュテーブルアドレスであるととも
に第1メモリMlに供給されるハツシュ関数値H(k)
によってアドレス指定する。本発明によれば第1メモリ
Mlの容量を適宜選定してハツシングを最適化し得るよ
うにする。ハツシュテーブルの記憶に用いる第1メモリ
Mlのロードファクタはあらかじめ決めることかでき、
第1メモリMlの容量はこのロードファクタを達成する
ように選択する。
第1メモリMlの容量およびそのロードファクタは所望
に応じハツシュテーブルの大きさに従ってのみ選択する
ことができることは明らかである。
キーフィールドおよび第1メモリMlの容量を選択する
ために記憶する他のデータフィールドの数は考慮する必
要はない。メモリM2を用いてキーその他関連するデー
タフィー、ルド並びに連続キーの記録へのポインタに対
する関連するリンクフィールドを記憶する。
メモリM2に記録されたデータを順次挿入することかで
き、かつ、キーおよび他のデータを記憶するアドレス値
は、第1メモリMlのポインタ値である。メモリM2の
容量はキーおよび他の関連するデータの記憶要求を満足
するように選択する。
メモリM2のリンクフィールドによって衝突解決に用い
るチェーニングを行うようにする。メモリM2に挿入さ
れた特定のハツシュアドレスに相当する第1キーは、ハ
ツシュアドレスH(k)でメモリMlに記憶されたポイ
ンタに相当するメモリM2のアドレスである。同一のハ
ツシュアドレスH(k)に相当する第2キーは第1キー
を含む記録のリンクフィールドに記憶されたメモリM2
のアドレスでメモリM2に記憶する。かようにして、リ
ンクされたリストを、メモリMlに記憶されたポインタ
値を経てアクセスされるメモリM2内に発生させるよう
にする。メモリM2に連続して記憶されたキーおよび他
のデータは、リンクされたリストの形態の隣接のメモリ
に記憶することかできる。メモリM2の容量はデータの
記憶要求を満足するに充分なものとする必要があるだけ
である。
これがため、各メモリの容量はハツシングに対して個別
に最適とすることかできる。同一のハツシュアドレスに
対し全てのキーに関連する記録はメモリM2に隣接して
記憶する必要はない。
ハツシュアドレスと、関連するキーおよび他の関連する
データフィールドとの減結合の結果は、キーを検索する
ために2つのメモリアクセスの最小値を必要とすること
である。記憶したデータの検索か不定期である場合には
、単一キーの検索時間が2重となることがある。しかし
、記憶したデータを繰り返しアクセスする必要かある場
合には、上述したメモリアーキテクチュアのアクセス時
間か増大するのを有効に除去するかまたは少なくとも大
きく減少し得るようにする必要がある。
第3図はハツシュテーブルを具えるリンクフィールドを
記憶する第1メモリM3を有する他のメモリの例を示す
。第2メモリM4はキーおよび他の関連するデータフィ
ールド並びに上述したように各キーに関連するリンクフ
ィールドを記憶する。
これかため、両側では同一方法のデータ編成を用いるよ
うにする。更に、この第2の例には第1メモリM3から
読出したポインタ値を記憶するとともに第2メモリM4
をアクセスするようにこれに記憶されたポインタ値を用
いるレジスタ5を具える。レジスタ5内の第1メモリM
3から読出したポインタ値Pを記憶することによって、
第2メモリM4をアクセスするも、第2キーにより第1
メモリM3にハツシュを行うようにする。
例えば、キーKiを第1メモリM3の特定のアドレスに
ハツシュするとともにこのアドレスに記憶されたポイン
タPiを読出すものとする。次の読出し作動で、次のキ
ーKiNによりポインタを含むメモリM3の他のアドレ
スにハツシュし、しかも、レジスタ5のポインタ値Pi
によりメモリM4をアドレスし、キーKiに関連するデ
ータを読出すようにする。かかるシステムによってキー
Ki とメモリM4の内容との整合をみるとともに、キ
ーK i+1が第1メモリM3にハツシュされるように
する。キーKi との整合か達成されると、キー K 
i+1に関連するポインタP i+1を第2メモリM4
に供給し得るか、キーに1か成功か、失敗かを解決する
までキーK i+1に関連するポインタは何の作動もし
ない。いずれの場合(こも、キーKi+1のハツシュさ
れた値による第1メモリM3のアクセスは既に行われ、
全探索時間に寄与しない。
上記データ構体およびメモリアーキテクチュアに対する
適用はデジタル化された像の例えばデータ圧縮にある。
第4図は、ハツシングをハードウェア回路により行うラ
ンペル−ジブアルゴリズムに従ってデータ圧縮を行うよ
うにした集積回路の構体を示す。ハツシュされたデータ
は編成を行って、上述したようにメモリ記憶する。
ランペル−ジブアルゴリズムの良好な説明はテリー・エ
イ・ウエルチの論文“高性能データ圧縮技術”1984
年第8−19頁に記載されている。このウエルチの論文
に与えられたアルゴリズムの処理の概要を以下に示す。
ランペル−ジブアルゴリズムによって入力文字のストリ
ングを固定長コードに写像する。ストリングコードワー
ド対をストリングテーブルと称されるテーブルに記憶す
る。テーブルエントリはデ−夕圧縮中に発生する。特に
、文字のシーケンスで構成されるメツセージはlパスで
直列な文字を構文解析し、かつ、最長の認識された入力
ストリングSは、その都度、構文解析を停止する。認識
されたストリングはストリングテーブルに既に存在して
いるものとする。認識されたストリングSのコードワー
ドは伝送され、付加されたメツセージの次の文字Cを有
する認識されたストリングS、SCはストリングテーブ
ルに追加され、特定のコードワードを割当てるようにす
る。
ランペル−ジブアルゴリズムは次に示すように更に詳細
に説明する。
メツセージ文字の単一文字ストリングを含むストリング
テーブルを初期化する。
初ず最初入力文字を読出す−プレフィックスストリング
S ステップ二次の入力文字Cを読出す。
かかる文字Cかない場合(入力放出):コードS伸出カ
ニ出口 SCがストリングテーブルに存在する場合:SC→Sニ
ステップを繰返す ストリングテーブルにSCか存在しない場合消去:コー
ド(S)→出力 SC→ストリングテーブル C−S+ステップを繰返す メツセージが構成される文字セットを含む初期化された
ストリングテーブルでスタートし、第1メツセージ文字
を読出し、プレフィックスストリングSにセットする。
次のメツセージ文字が存在する場合にはこれを読出して
プレフィックスストリングに供給し、新たなストリング
SCを形成する。次いでストリングテーブルをチエツク
してストリングSCがすでにエンタされているか否かを
決めるようにする。ストリングSCがすでにエンタされ
ている場合にはストリングSCをプレフィックスストリ
ングSにセットして次のメツセージ文字Cを読出し、こ
のステップを繰返す。さもないと、ストリングSCがテ
ーブルに存在しない場合プレフィックスストリングSの
出力コードワードを伝送し、ストリングSCの新たなテ
ーブルエントリを発生し、文字Cをプレフィックススト
リングSにセットしてこのステップを繰返すようにする
第4図に示す圧縮器/伸長器は先入れ一先出しバッファ
メモリ(FIFO) 10を具え、その出力端子を圧縮
すべきメツセージ文字のシーケンスを受けるデータボー
ト9を構成する。FIFO10は本発明システムの主要
部ではないか、データ比を円滑にするために用い、さも
ないとデータ比が変化する。
その理由は■Zアルゴリズムの実行中に発生し得るサー
チ時間か変化するからである。
ゴーダ/デコーダ(CODEC)12はFIFO10か
らの出力を受けて符号化モードで作動してIZアルゴリ
ズムに従って供給された信号を符号化する。
C0DEC12からの符号化信号をリパック(RFPA
C)14に供給し、このRFPACは可変幅の入力デー
タストリームを受け、可変幅の出力データストリームを
発生する。RFPAC14の出力をFIFO16に供給
し、FIFO16を作動させてデータ圧縮器/伸長器の
コードポート19から送られたコード信号の速度を円滑
にする。
FIFO10及び16、C0DEC12及びREPAC
14をマイクロプロセッサ/メモリインターフェース1
8により初期化して作動状態にする。インターフェース
I8はデータ圧縮器/伸長器か組込まれているシステム
からの制御信号を受けてこのデータ圧縮器/伸長器の素
子とそのメモリとの間に信号を通過せしめるようにする
。FrFo 10及び16と、C0DEC12と、I?
EPAC14と、インターフェース18とを、好適な例
では第4図に鎖線で示すように単一の集積回路23とし
て形成する。後述するメモリ20.21及び22は個別
の素子とする。或いは又、データ圧縮器/伸長器の素子
の成るもの又は全部を個別のユニットとして構成し、又
は、メモリをデータ圧縮器/伸長器を具える集積回路に
設けることもできる。
メモリアーキテクチュアで必要とするランペル−ジブ(
LZ)アルゴリズムは上述した基本LZアルゴリズムと
は幾分相違するように実行する。
その理由は第1メモリ21がポインタ値のみを含み、従
ってストリングプレフィックスなしではアドレス指定し
得ず、ストリグプレフィックスは第2メモリ22でのサ
ーチをアクセス及び解決しなければ利用し得ないからで
ある。
パイプライン メモリアーキテクチュアを用いるために
はLZアルゴリズムはプレフィックスを考慮し、プレフ
ィックス−データの組合せをハツシングすることにより
実行する。かようにして得たポインタ値を第1メモリ2
1に記憶する場合には上記問題は解決される。従って解
決されるプレフィックス及び新たなデータを第1メモリ
21にハツシュし、前にハツシュされた作動から得たキ
ーによって第2メモリ22をアドレス指定する。2つの
キーか整合すると次のプレフィックスデータの処理の1
サイクルか達成されたことになる。又、キーか整合しな
い場合、即ち失敗があった場合にはプレフィックスに関
する推定が間違っていたことになる。次のサイクルでは
キーが第2メモリに書込まれしかもこのサイクル中補正
されたプレフィックスを有する新たなキーか第1メモリ
にハツシュされるようになる。かようにしてパイプライ
ンアーキテクチュアに属し得るスピードの増大がLZア
ルゴリズムで達成され得るようになる。
かようにプレフィックス値に予想する位置調整が行える
理由は、LZアルゴリズムによって4〜6データ素子へ
の平均ストリング長さで像のようなデータを1/2〜1
/3倍に圧縮するからである。
これかためプレフィックス−データの組合せをサーチす
る際の失敗よりも約3倍以上の成功か得られるようにな
る。従ってプレフィックスが実際に解決される前でも、
プレフィックスを予想し時間の75%を正しく使用する
ことかできる。
LZ符号化では可変長さのデータをコードで表わす。各
順次のデータワードをプレフィックスに付加し、これを
前のデータワードのストリングを表わすコードとする。
次いで長いストリングを表わすこのプレフィックス−デ
ータの組合せに対しコードテーブルでサーチを行う。プ
レフィックス−データの組合せがこのコードテーブルで
見出せた場合(サクセス)にはこのプレフィックス−デ
ータの組合せに割当てられたコードか新たなプレフィッ
クスとなる。サイクルを繰返す際にはこの新たなプレフ
ィックスに次のデータワードを付加する。プレフィック
ス−データの組合せかコードテーブルに見出せない場合
には、これをテーブルにこれを表わす新たなコードワー
ドと共に追加する。テーブルで見出せた最も長いデータ
ストリングを表わすプレフィックスを伝送する。
C0DEC12にはLZアルゴリズムに従って符号化入
力データを符号化すると共にLZ−符号化データを復号
化する回路を設ける。
C0DEC12のエンコーダ部分を第5図に示す。第5
図には情報の流れを表わすこれらの接続のみを示す。又
、第5図に示す多数の接続は直接接続、図示されていな
い回路素子を経ての接続、或いはエンコーダ制御回路3
6を経ての接続とすることかできる。新たなデータワー
ドはデータレジスタ32によりFIFO10から受ける
プレフィックスレジスタ33によって、新たなデータワ
ードを付加すべきプレフィックスを記憶する。新たなデ
ータワード及びレジスタ33からのプレフィックスをハ
ツシュ回路34に供給し、これによりハツシュアドレス
及び省略キーを発生する。ハツシュ回路34を以下に詳
細に説明する。
ハツシュアドレスを信号路35を経てハツシュ−タグメ
モリ20.21に供給してハツシュ関数に相当するアド
レスかメモリ20.21の内容を読出す。ハツシュ−タ
グメモリから読出したタグ値を成る条件に従って0又は
lとする。メモリ21によって第2メモリにおけるキー
の可能な位置に対するポインタを読出す。(ハツシュ−
タグメモリ20.21を第5図にエンコーダの1部とし
て示すか、これを第4図に示すようにエンコーダから物
理的に分離することかできる。) ダクビット値0は、プレフィックス−データの組合せが
以前に遭遇していないこと(フェイリュア)を示す。こ
の場合にはハツシュアドレスに相当する新たなコードワ
ードをコード−ワード−カウンタ37から得てエンコー
ダ回路36を経てハツシュメモリ21のメモリ位置にエ
ンタする。タグピットを1として再び書込み、メモリ位
置における有効エントリを示す。最後に省略キーをキー
コードワードメモリ22のコードワード位置にエンタす
る。
プレフィックス マルチプレクサ40によってレジスタ
32からの現在のデータを次のプレフィックスとして選
択し、これをプレフィックス−レジスタ33に記憶する
。レジスタ33の現在のプレフィックス内容をトランス
ミツト マルチプレクサ45を経てRFPAC14に伝
送する。
タグピット値1はハツシュメモリ21における有効エン
トリを示す。この場合にはハツシュメモリの内容を次の
サイクルでアドレスとして用いて省略キーを読出して比
較する。これと同時に、プレフィックス マルチプレク
サ40は、省略キーか整合し、ハツシュメモリ21の内
容を次のプレフィックスとして用いるものとする。省略
キーか整合する場合、即ちサクセス(成功)する場合に
はプレフィックスの推定か有効となる。エンコードの作
動はハツシュメモリへのアクセスの結果を用いて継続さ
れる。
省略キーか整合せず、キーコードワードメモリ22のタ
グピットか0(これはリストの終りを示す)の場合には
状態は衝突に次ぐ失敗となる。従ってハツシュ演算を行
うためのプレフィックスに関して行われた想定か間違っ
ていたことになる。この場合にはハツシュ演算の結果を
無効にして前のデータレジスタ41に記憶されている前
のデータを新たな正しいプレフィックスとして用いる。
これと同時にレジスタ42に記憶されている前のプレフ
ィックスを伝送する。キー/コードワードメモリ22の
タグピット値を1に変更し、そのコードワード値をコー
ドワードメモリ22に書込む。次のサイクルではコード
ワードメモリ22の内容をアドレスとして用いて新たな
省略キーをキーメモリ22に書込みこの位置でタグピッ
トを0に初期化する。換言すれば、新たなリンクをリン
クリストに追加し、エンドオブリストポインタを更新す
る。
省略キーが整合しないでキー/コードワードメモリのタ
グピットか1の場合にはリストはまだそのエンドに到達
していない。このアドレスにおけるコードワードメモリ
22の内容を想定されるキーの次の可能な位置にポイン
ティングする。
次のサイクルては、コードワードメモリ22の内容をア
ドレスとして用いてキーを再びサーチする。
この処理は、キーか見出されて成功となりエンドオブリ
ストに到達するか又は失敗となるまで継続される。アド
レスか見出されてキーの次の可能な位置にポインティン
グされる度毎にキーは、ここで見出されるものとする。
成功であると想定されると、このアドレスをハツシング
のプレフィックスとして用いてプレフィックス マルチ
プレクサ40を経てハツシュ回路34に供給する。キー
か整合し、成功となる場合にのみハツシングの結果を用
いるようにする。
符号化処理中エンコーダによって発生するデータとコー
ドワードとの一致に関する情報を次の復号化中デコーダ
で用いる。符号化生失敗毎に伝送を行って新たなコード
テーブルエントリを行う。
この情報をデコーダで用いる。デコーダはコードを受け
る度毎に現在受けている第1文字を前のコードに付加し
、且つコードテーブルでこれに新たなコードワードを割
当てることによってコードテーブルへの関連するエント
リを行う。これと同時にデコーダは現在のコードに関連
するストリングを出力しエンコーダに続くlステップを
常時作動させるようにする。
C0EDC12のデコーダ回路を第6図に示す。現在の
コードワードレジスタ51はリパッカ(REPAC)1
4からコードワードを受ける。レジスタ51は前のコー
ドワードか復号化された後に1つのコードワードを受け
てレジスタ51に記憶されたコードワードを復号すべき
現在のコードワードとする。又、レジスタ51に記憶さ
れたコードワードをレジスタ52に記憶し、レジスタ5
1か新たなコードワードを受けた後に前のコードワード
として用いるようにする。最後に現在のコードワードを
回路53でテストしてこれが後述するように“特定”の
ものであるか否かを決めるようにする。
マルチプレクサ54によって現在のコードワードを比較
器55に供給し、これによってコードワードが“基本”
の組に属するか“特定”のものであるかをチエツクする
。コードワードか基本的なものても、特定のものでもな
い場合にはマルチプレクサ56はこれを通過させてアド
レスとして用い、データメモリ57及びコードワードメ
モリ58においてこのアドレスでデータコードワードエ
ントリを検索し得るようにする。このアドレスでのデー
タをマルチプレクサ59を経てL[FO(後入れ一先出
し)バッファIOに伝送する。同様にコードワードメモ
リ58てこのアドレスから検索したコードワードを再び
用い、これをマルチプレクサ54を経て比較器55に伝
送し、これか基本的なものであるか否かを決めるように
する。この一連のステップはコードワードメモリ58か
ら検索したコードワードが基本的なものとなるまで繰返
す。
コードワードか基本的なものである場合にはエンドオブ
ストリング状態に到達する。デコーダか作動を完了して
現在のコードワードにより表わされるストリングか解明
される場合にはエンドオブストリング状態が発生する。
これと同時に、デコーダは、マルチプレクサ56を経て
次のエントリカウンタ60によりポイントされたメモリ
のアドレスでデコーダテーブルにおいて新たなエントリ
を行い得るようになる。又、このデコーダは現在のコー
ドワードレジスタ51から新たなコードワードを受は得
るようになる。作動の次のサイクルではレジスタ6Iか
らマルチプレクサ59を経て基本コードワードを出力す
る。これと同時にレジスタ52に記憶された前のコード
ワードを具える新たなエントリをコードワードメモリ5
8に書込み、且つレジスタ61に記憶された現在のコー
ドワードの第1文字をデータメモリ57に書込む。又、
この時点て現在のコードワードレジスタ51から新たな
コードワードを取出す。
これがデコーダテーブルで実行される次のエントリであ
る場合にはこのコードワードを特定のものと想定する。
この新たなコードワードを特定の比較器53によって次
のエントリカウンタ60の計数値と比較する。新たなコ
ードワードと次のエントリ計数値とが整合(一致)する
場合には、このコードワードを特定のものとする。この
コードワードに相当するエントリがデコーダテーブルに
見出せない場合には、データメモリ57及びコードワー
ドメモリ58は作動の次のサイクルでアクセスできなく
なる。この場合にはレジスタ62に記憶されている前の
コードワードの第1文字をマルチプレクサ59を経てL
IFO10に伝送する。復号化を継続するためにはレジ
スタ52からの前のコードワードをマルチプレクサ59
に通過せしめ、これをデータメモリ57及びコードワー
ドメモリ58をアクセスするアドレスとして用いる。
ハツシュ関数を発生するスキームは特定の回路によって
実行する。ハツシュ関数発生回路を説明する前にハツシ
ュ関数を知るための数学的な関数を考察する。
ハツシュ関数発生器の設計は充分に注意して行う。即ち
ハツシュ関数発生器はキーからハツシュ関数を有効に発
生させてこれを擬似ランダム関数に用いてキーの全部を
同一のハツシュアドレスに写像しないようにする必要か
ある。
例えばその値に対応する特定のアドレスに記憶する必要
がある場合には小型5−文字ASCIIフィールドは(
125)’以上、即ち1兆以上のメモリアドレスを必要
とする。5文字フィールドの第1文字は簡単なハツシュ
関数で得られ、従ってハツシュ関数のアドレスフィール
ドを128位置にのみ減縮する。興味のあるデータアイ
テムを検索するためにはキーの第1文字の値に関連する
メモリ位置をアドレス指定し、次いで5文字全部か整合
するキーを有するエントリを見出すようにする。各々の
キーか同一の文字でスタートする場合にはキーの全アド
レススペースをサーチすることによってのみ所望のキー
及びデータを検索することができる。
又、所定の例では特定のハツシュ関数に対応するキーの
全部か同一の第1文字を有する。これかため、かかる場
合にはキーの第1文字は記憶する必要はなく、省略キー
を用いることかできる。この例では省略キーはワードの
最後の4文字とする。
これかため、ハツシュ関数発生器を用いる必要かあり、
これによって擬似ランダム化を有効に行い、省略キーを
用いることかできる。この特性のためハツシュ関数及び
省略キーによって特に入カキ−を表わす必要がある。
この方法によれば、キーk、ハツシュ関数り及び省略キ
ーaをベクトルとして2進状態で表わす。
ハツシュ関数発生器H及び省略キー発生器Aは次式を満
足するl及び0のマトリックスとなる。
h=Hk          ・・・(1)a=Ak 
         ・・・(2)式(1)及び(2)を
次式で示すように組合せることかできる。
ックスである。
って次式か得られる。
これかため、特に、ハツシュ関数り及び省略キーaの組
合せによって、元のキーkを表わすことかできる。これ
は重要な特性である。ハツシュ関数及び省略キーの組合
せの独自性によってメモリ数を減縮し、衝突回避を損う
ことなく、第2メモリに省略キーを記憶することかでき
る。
ハツシュ関数発生器Hの形状及び式(1)の計算に要す
る作動は特にハードウェアの実現に好適である。これは
式(1)を拡張し次式で表わされるようにマトリックス
H及びベクトルにの個別の素子を示すことによって解決
される。
ハツシュ関数発生器Hはmxnのマトリックスであり、
ここにh++=0又はlである。キーにはnビットの列
ベクトルであり、k1=0又は1とする。マトリックス
乗算を行って次式を得る。
この式(6)はmX1列ベクトルである。ハツシュhの
各素子を計算し、その和を次式のように示す。
h+ =Σh++ kr 、  j =1−−−n  
    −(7)ここに乗算は2進乗算又は論理AND
とし、その和は、桁上げしない2進の加算か又はモジュ
ロ−2加算となる。これがため、積h++ krは、i
llか1であるか又は0であるかに従って1又は0とな
り、h、がlであるか0であるかに従ってビットに、を
簡単に伝送するか又は伝送しないで積hx krに相当
する信号を得ることかできる。従ってハツシュ関数りの
i番目のビットh、は特定の値iに対し伝送されたに、
値のモジュロ−2の和に等しくなる。
例えば、ハツシュ関数発生器は次式で示すようになる。
上式は6ビツトキーから3ビツトハツシユ関数を発生す
る(3X6)マトリックスである。
このハツシュ関数発生器を実行し、これを用いるハツシ
ングを行うハツシング回路を第7図に示す。ハツシュ回
路は、各々かハツシュ関数発生器Hの列に相当するn信
号ラインで構成される。キーには2進信号に1〜に6に
よって表わされ、その各々を同一にラベルされた信号ラ
インの関連するラインに供給する。入力接続部を有する
モジュロ−2加算器67、68及び69は各々がハツシ
ュ関数発生器Hの行に相当し、各々の加算器によってハ
ツシュ関数りの3ビツトの1つに対応する2進出力信号
を発生する。
信号ラインkl+ 1(2−−−と、モジュロ−2加算
器67〜69との間の接続は、ハツシュ関数発生器Hの
非零素子に対応する。例えば、モジュロ−2加算器67
はマトリックスHの第1行に対応し、このマトリックス
は1番目、3番目及び6番目の列か1である。信号ライ
ン10によってに1の信号ラインとモジュロ−2加算器
67とを接続し、同様に信号ライン71によってに3の
信号ラインをモジュロ−2加算器67に接続し、信号ラ
イン72によってに6の信号ラインをモジュロ−2加算
器67に接続する。従って加算器68の出力は(k++
に3+kg)  (モジュロ−2)”hlとなる。
同様にモジュロ−2加算器68及び69によってハツシ
ュ関数りのビットh2及びh3に対応する2進出力信号
を発生する。省略キーを発生する必要かある場合には省
略キーの各ビットに対し追加のモジュロ−2加算器を設
ける。
モジュロ−2加算器は排他的ORゲートを第8図に示す
ように接続することによって構成することかてきる。こ
の回路もパリティチエッカとして既知であり、3つ以上
の入力を処理するためには多数の排他的ORゲートを追
加して容易に拡張することができる。
かるハツシング回路の利点はハツシングをシステムのク
ロック速度で実行し得ることである。同様にハツシング
関数発生器の他の型のものを用いる他のハツシング技術
によっても式(1)のマトリックス乗算を、単一ステッ
プでマトリックス乗算を含む乗算及び加算を同時に行う
ことにより実行することかできる。これかため、かかる
回路を用いてハツシングを実時間で行うことができる。
かかるハツシング回路の利点はこれをプログラム可能と
すると共に回路を形成した後に特定のハツシング関数発
生器Hを選択し得る点である。ハツシング回路のプログ
ラム可能な例を第9図に示す。この回路はn個の入力信
号ライン81.82.83等を具え、その各々によって
キーのビットに対応する2通信号に1〜に、、の対応す
る信号を受けるようにする。又、m個のモジュロ−2計
数器を設け、その第1番目のものに記号89を付す。各
モジュロ−2計数器の出力をハツシュ関数りの1つのビ
ットに対応する2通信号とする。
各モジュロ−2計数器にはn個の入力端子を設け、n個
の信号路91.92・・・を各入力端子に接続する。信
号ライン81.82・・・及び信号路91.92・・・
はアレイ状に交差させ、これらの間を相互接続する。
信号ライン及び信号路間の相互接続はダイオード100
、101・・・で行う。各ダイオードは信号ラインの各
々と信号路の各々との間に接続する。例えばダイオード
100によって信号ライン81と信号路91とを接続し
、ダイオード101よって信号ライン82と信号路92
とを接続し、以下同様とする。これらダイオードは可溶
性としてこれらダイオードにより確立する接続を開放し
得るようにする。この場合選択したダイオードに充分高
い電圧を供給すると、選択したダイオ−ドが破壊され、
信号ラインと、これに接続されていた信号路との間に開
放回路か形成されるようになる。可溶性ダイオードを用
いて予しめ形成された回路リンクを開放し、これにより
回路をプログラム可能とすることは、プログラマブル論
理装置の技術から既知であり、この技術に既知のように
実施することかできる。
簡単のため、図面には信号ライン、信号路又はダイオー
ドの全部は示さない。しかし、プログラマブルハツシュ
回路を説明しているため、m個のモジュロ−2加算器の
各々に対しn個の信号路及び信号ラインの各々を対応す
る信号路に接続する1個のダイオードを設けるものとす
る。この構成をプログラマブルとして任意のmビットハ
ツシュ関数を形成するか、その結果モジュロ−2加算器
はその大きさか最大となる。
本発明の他の例ではモジュロ−2加算器に信号ラインの
数よりも少ない数の入力端子を設け、信号路の成る個所
で1つ以上の信号ラインに接続することもできる。かか
る例を第10図に示し、第10図においてはモジュロ−
2加算器120.121及び122にn個よりも少ない
数の入力端子を設ける。この特定の例ではモジュロ−2
加算器120及び121の入力端子の数を等しくし、モ
ジュロ−2加算器122の入力端子の数をこれよりも少
なくする。他のスキームを用いて信号ライン及び信号路
間をダイオード接続することができる。モジュロ−2加
算器120及び121のダイオードの数を充分な数とし
て各信号ラインを少なくとも1つの信号路に接続し得る
ようにする。これに対し、各信号ラインをモジュロ−2
加算器122の各信号路に接続してプログラムの可能性
を最大とすることがてきる。
ハツシュ関数発生器H及び省略キー発生器Aの組合せで
あるマトリックスは容易に形成することかできる。ビッ
ト行又は列の同一のマトリックス対から出発し、加算さ
れたモジュロ−2値及び最初に選択された行又は列と置
換する和を選択し、簡単に交換することができる。反転
可能なマトリックスに供給されるこれら直線性作動によ
って反転可能な特性を保有することができる。これがた
め、任意に反転可能なマトリックスを発生させることか
できる。これらのステップを任意回数繰返し、形成され
たマトリックスの最初のm行をHとし、残りの(n−m
)行をAとする。
LZ復号化アルゴリズムか必要とするストリングシーケ
ンスにおける文字の順序を逆にするために、データデコ
ーダによってその出力を後入れ一先出しバッファ(LI
FO)に供給し、これを第11図に示す。LIFOは2
個のランダムアクセスメモリ(RAM)130及び13
1で構成する。第1文字ストリングをメモ1川30で読
込む。文字の順序はアドレス計数器132より保持し、
これにより入力ストリングの文字を順次に記憶するアド
レス値のンーケンスを発生する。
RAM131のアドレス指定中にもアドレス指定し得る
第2 RAM131を設けることによってLIFO作動
によりシステムの性能か低下するのを防止する。文字ス
トリングは、対応するアドレス計数器133の制御のも
とてRAM131に順次記憶する。
データの損失を防止するために、オーバーフローメモリ
135を設け、書込まれた個別のRAM130又は13
1が充満する際にデータを受けて記憶し得るようにする
。例えば、入力ストリングをRAM130に書込み、そ
の容量が満杯になると、入力ストリングをオーバーフロ
ーメモリ135に書込むようにする。ストリングの順序
はRAM130及びオーバーフローRAM135の双方
に対しアドレス計数器132を用いることにより保有す
る。RAM130が満杯になると、追加のデータをオー
バーフローRAM135に通過せしめて読込まれたスト
リングに関連するアドレス値の逐次計数を継続する。ア
ドレス値をアドレスマルチプレクサ136を経て供給し
、ストリングか2つの物理的に分離されているメモリに
記憶される場合でもストリングの文字と計数値との整合
を保有する。
ストリングデータを読出すと、アドレス計数器132に
よって、ストリングのオーバーフローRAMl35への
書込み中最後のメモリ値のアドレスから逆に計数を行う
ようにする。かようにして記憶されたストリングを逆に
読出すようにする。
オーバーフローRAM135及びRAM130に記憶さ
れたストリングの続出し中地のストリングをRAM13
1に書込み、アドレス計数器133により決まるアドレ
スを有する順次のメモリ位置に記憶する。個別のメモリ
130.131に対してアドレス値を発生する個別の手
段の特徴は、これら手段を個別に作動させて1方の手段
にデータを書込み他方の手段からデータを読出すことで
ある。かようにしてLIFOバッファを用いるシステム
の処理速度を低下させることなく、等しい長さのストリ
ングを保有することかできる。
上述した作動モードから明らかなように、少なくとも深
さDを有するRAM 130及び131に対し、しIF
Oバッファにより速度を何等低下することなく深さ2D
のストリングを連続的にバッファすることかできる。そ
の理由は、1つのRAM 、例えばRAM130及びオ
ーバーフローRAM 135を満杯とする長さ2Dの記
憶ストリングを、先ず最初、オーバーフローRAM13
5から読出してストリングを反転し得るようにするから
である。この読出し中、次のストリングの書込み及び記
憶を同時に行う。これがため、長さDのストリングセグ
メントを記憶したオーバーフローRAM135か空とな
り、従って書込まれたストリングの長さDの残りのセグ
メントを記憶したオーバフローRAM135か開放され
るまで長さDのRAM 131は完全に満杯とはならな
い。
長さ2Dよりも長い長さのストリングを処理するために
は、オーバーフローRAM135の深さを、Dよりも深
くする必要かある。性能劣化の程度は長いストリングの
長さと、この長いストリングの長さを172とした短い
ストリングの長さとの和に等しくなる。最悪の場合でも
LIFOバッファの速度は最大速度の172となる。
データリパッカ(REPAC)14の回路を第12図に
示す。この回路は入力データレジスタ140及び出力デ
ータラッチ回路141で構成し、双方によってシステム
の性能を改善し得るようにする。しかし、これらレジス
タ140又はラッチ回路141の何れかは実際のデータ
リパック作動には用いない。
保持レジスタ142を用いて中間結果を記憶し、このレ
ジスタの記憶長さをリパックされたデータワードの大き
さの2倍とする。シフタ143及び144もその記憶長
さをデータワードの大きさの2倍とし、データワードの
長さに等しいビットの数、例えば32ビツトの16倍の
数を選択することかできる。
マルチプレクサ145は2:lマルチプレクサとする。
作動に当たり、制御回路146はマイクロプロセッサ/
メモリインターフェース18(第4図参照)からの信号
を受け、これはビットイン(NBI)の数及びビットア
ウト(NBO)の数を表わす。この情報から、保持レジ
スタ142に記憶された中間情報の最上位ビット(MS
B)及び最下位ピント(LSB)を決めるようにする。
データがリバッカ(REPAC)の入力側に通過すると
、これを入力データレジスタ140によりラッチし、次
のクロックサイクルでこれをメモリ空間の場合保持レジ
スタ142で中間データと組合せる。
保持レジスタ142の有効中間データビットがデータワ
ードのビット数よりも少ない場合にはメモリ空間か存在
する。有効データビットの数はMSBからLSBを差し
引いた数に等しい。充分なメモリ空間か存在する場合に
は入力データは保持レジスタの高位のビットとなり、保
持レジスタからのシフトデータは保持レジスタの低位の
ビットとなる。
保持レジスタに充分なメモリ空間か存在しない場合には
、入力データは中間データと結合されない。
シフタ144はLSBを表わす信号を受け、その計数値
をシフトして出力側に現れる中間データを右寄せする。
【図面の簡単な説明】
第1図は本発明に用いられるデータ編成を示す説明図、 第2図は本発明によるメモリアーキテクチュアを示す説
明図、 第3図は本発明による他のメモリアーキテクチュアを示
す説明図、 第4図は第3図に示すメモリアーキテクチュアを有する
データ圧縮器−伸張器を示す説明図、第5図は第4図に
示されるデータ圧縮器−伸長器に用いられるデータエン
コーダを示す説明図、第6図は第4図に示されるデータ
圧縮器−伸長器に用いられるデコーダを示す説明図、第
7図は第4図に示されるハツシュ回路を示す概略説明図
、 第8図は第7図に示されるモジュロ−2加算器の1つを
示す説明図、 第9及び10図はハツシュ回路の他の例を示す説明図、 第11図は第5図に示されるエンコーダの制御部の1部
分を具える後入れ一先出しバッファを示す説明図である
。 l・・・リンクフィールド 2.21・・・記録器 Ml、 M2. M3. M4・・・メモリ5・・・レ
ジスタ 10、 16・・・FIFO 12・・・C0DEC 14・・・REPAC 18・・・マイクロプロセッサ/メモリインターフェー
ス19・・・コードポート 20、21.22・・・メモリ 23・・・集積回路 32・・・レジスタ 33・・・プレフィックスレジスタ 34・・・ハツシュ回路 36・・・エンコーダ制、副回路 37・・・コード−ワード計数器 40・・・プレフィックスマルチプレクサ42・・・レ
ジスタ 51・・・レジスタ 52・・・レジスタ 54・・・マルチプレクサ 55・・・比較器 56・・・マルチプレクサ 57・・・データメモリ 58・・・コードワードメモ 59・・・マルチプレクサ 60・・・エントリ計数器 61、62・・・レジスタ リ FIG、1 FIG、2 FIG、3 FIG、8 F10,9 FlG、12 手 耶( 補 正 M(方式) 1、事件の表示 平成 2年 特 許 願 第 03777 アテ 2発明の名称 名 祢 エヌ へ− フィリップス フル−イランペンフアプリケン 4、代 理 人 1、明細書第55頁第2行の「説明図である。」を「説
明図、 第12図は第4図に示したデータ圧縮器−伸長器に用い
られるリパッカ回路の概略ブロック図である。」に訂正
する。

Claims (1)

  1. 【特許請求の範囲】 1、ランペル−ジブ符号化されたデータを復号化するデ
    コーダであって、コードワードを記憶し、かつ記憶され
    たコードワードに対応するデータワードを記憶するメモ
    リ手段と、符号化すべきコードワードを受けて記憶する
    手段と、前記記憶されたコードワードを前記記憶手段に
    供給してデータエレメントおよび他のコードワードを読
    出すとともに記憶されたコードワードが復号されるまで
    他のコードワードおよび前記記憶手段から読出した各順
    次のコードワードを前記記憶手段に供給する手段とを具
    えることを特徴とするデータデコーダ。 2、前記符号化すべきコードワードを受けて記憶する手
    段をレジスタにより構成するようにしたことを特徴とす
    る請求項1に記載のデータデコーダ。 3、前記記憶されたコードワードを供給する手段を、前
    記記憶された復号すべきコードワードを受ける入力端子
    および前記メモリ手段から読出されたコードワードを受
    ける他の入力端子を有するマルチプレクサにより構成す
    るようにしたことを特徴とする請求項1または2に記載
    のデータデコーダ。 4、前記コードワードがストリングの端部を示す1組の
    基本コードワードの1つである場合を決める手段と、行
    うべき次のエントリのアドレス値を前記メモリ手段に保
    持する手段と、前に受けたコードワードを記憶する手段
    と、前に受けたコードワードおよび現在のコードワード
    の第1文字を前記メモリ手段書込んでストリング状態の
    終端の決定に応答して新たなデコーダテーブルエントリ
    を形成する手段とを更に具えることを特徴とする請求項
    1、2または3に記載のデータデコーダ。 5、前記決定手段を、前記供給手段の出力を受けるよう
    に接続された比較器とすることを特徴とする請求項4に
    記載のデータデコーダ。 6、前記アドレス値を保持する手段を、計数器とするよ
    うにしたことを特徴とする請求項4または5に記載のデ
    ータデコーダ。 7、前記記憶されたコードワードを供給する手段を、前
    記記憶された復号すべきコードワードを受ける第1入力
    端子および前記メモリ手段から読出したコードワードを
    受ける第2入力端子を有する第1マルチプレクサと、こ
    の第1マルチプレクサの出力を受ける第1入力端子およ
    び前記メモリ手段で行うべき次のエントリのアドレス値
    を受ける第2入力端子を有する第2マルチプレクサとに
    より構成するようにしたことを特徴とする請求項1、2
    、3、4、5および6に記載のデータデコーダ。 8、復号されたデータを有する文字の順序を逆にする手
    段を更に具えるようにしたことを特徴とする請求項1〜
    7の何れかの項に記載のデータデコーダ。 9、文字の順序を反転する手段は、後入れ−先出しメモ
    リを具え、この後入れ−先出しメモリは、第1メモリと
    、メモリアドレス信号のシーケンスを生ぜしめる第1手
    段と、第2メモリと、メモリアドレス信号のシーケンス
    を生ぜしめる第2手段と、アドレス信号マルチプレクサ
    と、第3メモリと、前記第1、第2および第3メモリ、
    アドレス信号のシーケンスを発生する第1および第2手
    段、データを第1メモリに記憶し、データを第2メモリ
    に記憶すると同時に前記第1メモリに記憶されたデータ
    を後入れ−先出し法で読出し、書込まれた前記第1およ
    び第2メモリの一方が充満されている際に前記第3メモ
    リにデータを記憶し、かつ前記メモリアドレス信号のシ
    ーケンスをアドレス信号マルチプレクサをへて前記第3
    メモリに供給することによってメモリアドレスのシーケ
    ンスを保持するアドレス信号マイクロプロセッサを制御
    する制御手段とを具えることを特徴とする請求項8に記
    載のデータデコーダ。 10、前記第1、第2および第3メモリの少なくとも1
    つをランダムアクセスメモリとしたことを特徴とする請
    求項1に記載のデータデコーダ。 11、前記メモリアドレス信号のシーケンスを発生する
    前記第1および/または第2手段は、可逆計数器を具え
    ることを特徴とする請求項9または10に記載のデータ
    デコーダ。 12、請求項9、10または11に記載のデータデコー
    ダに用いる後入れ−先出しメモリバッファ。 13、データデコーダは第1可変幅の入力データシェア
    を第2可変幅の出力データシェアに変換するデータリパ
    ッカを具え、このデータリパッカは、中間結果を保持す
    るレジスタと、入力端子および出力端子が前記レジスタ
    に接続されたデータマルチプレクサと、前記レジスタの
    出力を前記データマルチプレクサの入力側に帰還する回
    路と、前記レジスタの出力をシフトするとともに前記マ
    ルチプレクサの入力側に接続された出力端子を有する第
    1シフタと、前記データマルチプレクサの出力をシフト
    するとともに前記データリパッカの出力端子を構成する
    出力端子を有する第2シフタと、前記データマルチプレ
    クサ、レジスタおよび第2シフタを制御する制御措置と
    を具えることを特徴とする請求項1〜12に記載のデー
    タデコーダ。 14、前記データリパッカは前記データマルチプレクサ
    の入力側に接続された入力データリレジスタを具えるこ
    とを特徴とする請求項13に記載のデータデコーダ。 15、前記データリパッカは、前記第2シフタの出力側
    に接続された出力データラッチを具えることを特徴とす
    る請求項13または14に記載のデータデコーダ。 16、前記データリパッカは2:1マルチプレクサおよ
    びレジスタを具え、前記データリパッカの第1および第
    2シフタをこれらシフタに供給されるデータワードの大
    きさの2倍としたことを特徴とする請求項13、14ま
    たは15に記載のデータデコーダ。 17、前記データリパッカの制御手段は前記入力データ
    ワードのビット数および出力データワードのビット数を
    示す信号を制御するように応答することを特徴とする請
    求項13、14、15または16に記載のデータデコー
    ダ。 18、請求項13〜17に記載のデータデコーダに用い
    るに好適なデータリパッカ。
JP2203777A 1989-07-31 1990-07-31 データデコーダ Pending JPH03179520A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US38828289A 1989-07-31 1989-07-31
US388,282 1989-07-31
US388,283 1989-07-31
US07/388,281 US5113516A (en) 1989-07-31 1989-07-31 Data repacker having controlled feedback shifters and registers for changing data format
US388,281 1989-07-31
US07/388,283 US5058137A (en) 1989-07-31 1989-07-31 Lempel-Ziv decoder

Publications (1)

Publication Number Publication Date
JPH03179520A true JPH03179520A (ja) 1991-08-05

Family

ID=27409842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2203777A Pending JPH03179520A (ja) 1989-07-31 1990-07-31 データデコーダ

Country Status (4)

Country Link
EP (1) EP0411692B1 (ja)
JP (1) JPH03179520A (ja)
KR (1) KR910003952A (ja)
DE (1) DE69032718D1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9240240B2 (en) * 2011-11-29 2016-01-19 Micron Technology, Inc. Apparatus having indications of memory cell density and methods of their determination and use

Also Published As

Publication number Publication date
EP0411692B1 (en) 1998-10-28
KR910003952A (ko) 1991-02-28
EP0411692A2 (en) 1991-02-06
DE69032718D1 (de) 1998-12-03
EP0411692A3 (ja) 1994-01-19

Similar Documents

Publication Publication Date Title
US5113516A (en) Data repacker having controlled feedback shifters and registers for changing data format
US5339398A (en) Memory architecture and method of data organization optimized for hashing
JP3303225B2 (ja) Lempel−Zivタイプ・アルゴリズムを用いたデータ圧縮装置
US5150430A (en) Lossless data compression circuit and method
JP3309028B2 (ja) 連想記憶メモリ内の複数辞書管理を改良したlempel−zivデータ圧縮のための装置、及び方法
JP2534465B2 (ja) デ―タ圧縮装置および方法
JP2830280B2 (ja) 可変長ストリング符合装置
US6885319B2 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6819271B2 (en) Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US5175543A (en) Dictionary reset performance enhancement for data compression applications
JP3294026B2 (ja) 高速可変長復号化装置
JPH0697838A (ja) 復号化装置
US5832037A (en) Method of compressing and expanding data
US5058137A (en) Lempel-Ziv decoder
US4800535A (en) Interleaved memory addressing system and method using a parity signal
JPH03503707A (ja) 統計的にコード化されたデジタル・データを復号するシステム
US5614900A (en) Variable word length code decoding apparatus having plural decoding tables for decoding long words
KR20220054651A (ko) 다중 심볼 디코더
US7256715B1 (en) Data compression using dummy codes
JP2003510881A (ja) データを展開するのに要する時間を短縮するための方法と装置
JPH03179520A (ja) データデコーダ
JPH03179562A (ja) データ記録装置及びデータ編集方法
US5339077A (en) Comma code generator
JP3304745B2 (ja) 可変長符号復号化器
JP3371677B2 (ja) 可変長復号化装置