JPH05298061A - データ圧縮および復元方式ならびにその装置 - Google Patents
データ圧縮および復元方式ならびにその装置Info
- Publication number
- JPH05298061A JPH05298061A JP10280192A JP10280192A JPH05298061A JP H05298061 A JPH05298061 A JP H05298061A JP 10280192 A JP10280192 A JP 10280192A JP 10280192 A JP10280192 A JP 10280192A JP H05298061 A JPH05298061 A JP H05298061A
- Authority
- JP
- Japan
- Prior art keywords
- dictionary
- data
- clear
- encoding
- compression
- 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.)
- Withdrawn
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【目的】 ユニバーサル符号、特にLZW(Lempel-Ziv-
Welch)符号を用いたデータ圧縮および復元方式ならびに
その装置に関し、復元されたデータが有効であるか否か
を正確に判定することのできるデータ圧縮および復元方
式ならびにその装置を提供することを目的とする。 【構成】 符号化済みデータを相異なる部分列に分けて
各部分列毎に異なる参照番号を付加して辞書に登録して
おき、入力データを該辞書中の部分列のうち、最大長一
致するものの参照番号で指定して符号化するデータ圧縮
方式において、圧縮処理時に特有に発生する項目のデー
タを前記符号データに付加するように構成する。また、
データ復元時に、前記付加された項目のデータと、復元
処理時に特有に発生する該当項目のデータとを比較し、
両者が一致するときに復元されたデータを有効データと
判定するように構成する。
Welch)符号を用いたデータ圧縮および復元方式ならびに
その装置に関し、復元されたデータが有効であるか否か
を正確に判定することのできるデータ圧縮および復元方
式ならびにその装置を提供することを目的とする。 【構成】 符号化済みデータを相異なる部分列に分けて
各部分列毎に異なる参照番号を付加して辞書に登録して
おき、入力データを該辞書中の部分列のうち、最大長一
致するものの参照番号で指定して符号化するデータ圧縮
方式において、圧縮処理時に特有に発生する項目のデー
タを前記符号データに付加するように構成する。また、
データ復元時に、前記付加された項目のデータと、復元
処理時に特有に発生する該当項目のデータとを比較し、
両者が一致するときに復元されたデータを有効データと
判定するように構成する。
Description
【0001】
【産業上の利用分野】本発明は、ユニバーサル符号、特
にLZW(Lempel−Ziv−Welch)符号を
用いたデータ圧縮および復元方式ならびにその装置に関
する。
にLZW(Lempel−Ziv−Welch)符号を
用いたデータ圧縮および復元方式ならびにその装置に関
する。
【0002】近年、文字コード、ベクトル情報、画像情
報など様々な種類のデータがコンピュータで扱われるよ
うになっており、扱われるデータ量も急速に増加してき
ている。大量のデータを扱うときは、データ中の冗長な
部分を省いてデータ量を圧縮することで、記憶容量を減
らしたり、速く伝送できるようになる。
報など様々な種類のデータがコンピュータで扱われるよ
うになっており、扱われるデータ量も急速に増加してき
ている。大量のデータを扱うときは、データ中の冗長な
部分を省いてデータ量を圧縮することで、記憶容量を減
らしたり、速く伝送できるようになる。
【0003】様々なデータを1つの方式でデータ圧縮/
復元できる方式として、ユニバーサル符号化がある。ユ
ニバーサル符号化は、情報源の統計的性質が未知である
場合に符号化を行ないながら統計的性質を調べて適応化
していく手法である。なお、ユニバーサル符号は、文字
コードに限らず、様々なデータに適用することができる
が、以下の説明においては、データが何であるかにかか
わりなく、データの1ワード単位を「文字」と呼び、こ
の文字が任意の数つながったものを「文字列」と呼ぶも
のとする。
復元できる方式として、ユニバーサル符号化がある。ユ
ニバーサル符号化は、情報源の統計的性質が未知である
場合に符号化を行ないながら統計的性質を調べて適応化
していく手法である。なお、ユニバーサル符号は、文字
コードに限らず、様々なデータに適用することができる
が、以下の説明においては、データが何であるかにかか
わりなく、データの1ワード単位を「文字」と呼び、こ
の文字が任意の数つながったものを「文字列」と呼ぶも
のとする。
【0004】ユニバーサル符号の代表的な例としては、
Ziv−Lempel(ジブ−レンペル)符号がある。
Ziv−Lempel符号では、ユニバーサル型と、増
分分解型の2つのアルゴリズムが提案されている。さら
に、ユニバーサル型アルゴリズムの改良としては、LZ
SS符号が提案され、また、増分分解型アルゴリズムの
改良としてはLZW(Lempel−Ziv−Welc
h)符号が提案されている。記憶装置のファイル圧縮処
理などの分野では、高速処理ができること、アルゴリズ
ムが簡単であることなどから、LZW符号が多く使われ
るようになっている。本発明は、このLZW符号を用い
たデータ圧縮と復元に関するものである。
Ziv−Lempel(ジブ−レンペル)符号がある。
Ziv−Lempel符号では、ユニバーサル型と、増
分分解型の2つのアルゴリズムが提案されている。さら
に、ユニバーサル型アルゴリズムの改良としては、LZ
SS符号が提案され、また、増分分解型アルゴリズムの
改良としてはLZW(Lempel−Ziv−Welc
h)符号が提案されている。記憶装置のファイル圧縮処
理などの分野では、高速処理ができること、アルゴリズ
ムが簡単であることなどから、LZW符号が多く使われ
るようになっている。本発明は、このLZW符号を用い
たデータ圧縮と復元に関するものである。
【0005】
【従来の技術】従来のデータ圧縮/復元装置は、図7に
その構成を示すように、ユニバーサル符号化部71およ
び書き替え可能な辞書部72を備えており、入力データ
を相異なる文字列に分け、この文字列を出現した順に番
号をつけて辞書に登録するとともに、現在入力している
文字列を既に辞書に登録した文字列と照合することによ
り最長一致文字列の番号で表し、この番号を入力の順番
に出力することにより、図8に示すように一連の符号化
データとして出力するものである。
その構成を示すように、ユニバーサル符号化部71およ
び書き替え可能な辞書部72を備えており、入力データ
を相異なる文字列に分け、この文字列を出現した順に番
号をつけて辞書に登録するとともに、現在入力している
文字列を既に辞書に登録した文字列と照合することによ
り最長一致文字列の番号で表し、この番号を入力の順番
に出力することにより、図8に示すように一連の符号化
データとして出力するものである。
【0006】図9にLZW符号化処理のフローチャート
を、また、図10にその復号化処理のフローチャートを
示す。
を、また、図10にその復号化処理のフローチャートを
示す。
【0007】図9の符号化処理においては、まずステッ
プS1において、予め使用する全文字について一文字か
らなる文字列を初期値として登録し、それぞれに参照番
号を付与するとともに、入力された最初の文字Kを語頭
文字列(prefix string)ωとして設定する。
プS1において、予め使用する全文字について一文字か
らなる文字列を初期値として登録し、それぞれに参照番
号を付与するとともに、入力された最初の文字Kを語頭
文字列(prefix string)ωとして設定する。
【0008】次に、ステップS2で次に入力してくる文
字Kを読み込み、ステップS3で文字入力が終了したか
否かをチェックした後、ステップS4に進み、前記ステ
ップS1で得られた語頭文字列ωにステップS2で読み
込んだ文字Kを加えた文字列(ωK)が辞書にあるか否
かを探す。
字Kを読み込み、ステップS3で文字入力が終了したか
否かをチェックした後、ステップS4に進み、前記ステ
ップS1で得られた語頭文字列ωにステップS2で読み
込んだ文字Kを加えた文字列(ωK)が辞書にあるか否
かを探す。
【0009】ステップS4で文字列(ωK)が辞書にな
ければ、ステップS6に進んで、求めた文字Kの参照番
号ωを符号語code(ω)として出力するとともに、文字
列(ωK)に新たな参照番号を付与して辞書に登録し、
さらに、ステップS2の入力文字Kを参照番号ωに置き
換えるとともに、辞書アドレスnをインクリメントし、
ステップS7〜S10で辞書登録スペースのチェックを
行なった後、再びステップS2に戻り、次の文字Kを読
み込む。
ければ、ステップS6に進んで、求めた文字Kの参照番
号ωを符号語code(ω)として出力するとともに、文字
列(ωK)に新たな参照番号を付与して辞書に登録し、
さらに、ステップS2の入力文字Kを参照番号ωに置き
換えるとともに、辞書アドレスnをインクリメントし、
ステップS7〜S10で辞書登録スペースのチェックを
行なった後、再びステップS2に戻り、次の文字Kを読
み込む。
【0010】一方、ステップS4で文字列(ωK)が辞
書にあれば、ステップS5で文字列(ωK)を参照番号
ωに置き換え、ステップS7〜S10で辞書登録スペー
スのチェックを行なった後、再びステップS2に戻り、
文字列(ωK)が辞書から探せなくなるまで、最大一致
長の文字列の探索を続ける。
書にあれば、ステップS5で文字列(ωK)を参照番号
ωに置き換え、ステップS7〜S10で辞書登録スペー
スのチェックを行なった後、再びステップS2に戻り、
文字列(ωK)が辞書から探せなくなるまで、最大一致
長の文字列の探索を続ける。
【0011】前記LZW符号化処理の具体例を図11を
参照して説明する。なお、説明を簡単とするため、
「a」「b」「c」の3つの文字の組合せからなる入力
データの場合を例に採るものとする。この3つの使用文
字「a」「b」「c」は、予め、図12(A)に示すよ
うに辞書に登録され、それぞれ順番に参照番号=1,
2,3が付与されている。
参照して説明する。なお、説明を簡単とするため、
「a」「b」「c」の3つの文字の組合せからなる入力
データの場合を例に採るものとする。この3つの使用文
字「a」「b」「c」は、予め、図12(A)に示すよ
うに辞書に登録され、それぞれ順番に参照番号=1,
2,3が付与されている。
【0012】図11中の入力データ(INPUT SYMBOLS)は
左から右へ読み込まれるものとする。最初の文字「a」
が入力されると、この文字「a」が接頭文字列ωとして
設定される。次に、2番目の文字K=「b」が入力され
ると、接頭文字列ω=「a」と組合せて文字列(ωK)
=「ab」とし、この文字列「ab」が辞書にあるか否
かを検索する。
左から右へ読み込まれるものとする。最初の文字「a」
が入力されると、この文字「a」が接頭文字列ωとして
設定される。次に、2番目の文字K=「b」が入力され
ると、接頭文字列ω=「a」と組合せて文字列(ωK)
=「ab」とし、この文字列「ab」が辞書にあるか否
かを検索する。
【0013】辞書には文字列「ab」はないので、図1
2(A)に示すように、この文字列「ab」を辞書に登
録するとともに、新たな参照番号=4を付与する。そし
て、当該文字列(ωK)中の接頭文字列ω=「a」につ
いてその参照番号=1を読み出し、図11に示すよう
に、この参照番号=1を文字列ω=「a」の符号語(OU
TPUT CODES)として出力する。文字「a」の符号化が終
わると、文字列(ωK)=「ab」中の残りの文字
「b」が次の接頭文字列ωとなる。
2(A)に示すように、この文字列「ab」を辞書に登
録するとともに、新たな参照番号=4を付与する。そし
て、当該文字列(ωK)中の接頭文字列ω=「a」につ
いてその参照番号=1を読み出し、図11に示すよう
に、この参照番号=1を文字列ω=「a」の符号語(OU
TPUT CODES)として出力する。文字「a」の符号化が終
わると、文字列(ωK)=「ab」中の残りの文字
「b」が次の接頭文字列ωとなる。
【0014】次に、3番目の文字K=「a」が入力され
ると、前記新たな接頭文字列ω=「b」と組合せて文字
列(ωK)=「ba」とし、この文字列「ba」が辞書
にあるか否かを検索する。辞書には文字列「ba」はな
いので、図12(A)に示すように、この文字列「b
a」を辞書に登録するとともに、新たな参照番号=5を
付与する。そして、当該文字列(ωK)中の接頭文字列
ω=「b」についてその参照番号=2を読み出し、図1
1に示すように、この参照番号=2を文字列ω=「b」
の符号語(OUTPUT CODES)として出力する。文字「b」
の符号化が終わると、文字列(ωK)=「ba」中の残
りの文字「a」が次の接頭文字列ωとなる。
ると、前記新たな接頭文字列ω=「b」と組合せて文字
列(ωK)=「ba」とし、この文字列「ba」が辞書
にあるか否かを検索する。辞書には文字列「ba」はな
いので、図12(A)に示すように、この文字列「b
a」を辞書に登録するとともに、新たな参照番号=5を
付与する。そして、当該文字列(ωK)中の接頭文字列
ω=「b」についてその参照番号=2を読み出し、図1
1に示すように、この参照番号=2を文字列ω=「b」
の符号語(OUTPUT CODES)として出力する。文字「b」
の符号化が終わると、文字列(ωK)=「ba」中の残
りの文字「a」が次の接頭文字列ωとなる。
【0015】次に、4番目の文字K=「b」が入力され
ると、前記新たな接頭文字列ω=「b」と組合せて文字
列(ωK)=「ab」とし、この文字列「ab」が辞書
にあるか否かを検索する。辞書には文字列「ab」が参
照番号=4として既に登録されている。したがって、こ
の場合には、この文字列「ab」を新たな接頭文字列ω
とした後、さらに次の5番目の文字K=「c」を入力
し、この5番目の文字K=「c」と前記新たな接頭文字
列ω=「ab」と組合せて文字列(ωK)=「abc」
とし、この文字列「abc」が辞書にあるか否かを検索
する。
ると、前記新たな接頭文字列ω=「b」と組合せて文字
列(ωK)=「ab」とし、この文字列「ab」が辞書
にあるか否かを検索する。辞書には文字列「ab」が参
照番号=4として既に登録されている。したがって、こ
の場合には、この文字列「ab」を新たな接頭文字列ω
とした後、さらに次の5番目の文字K=「c」を入力
し、この5番目の文字K=「c」と前記新たな接頭文字
列ω=「ab」と組合せて文字列(ωK)=「abc」
とし、この文字列「abc」が辞書にあるか否かを検索
する。
【0016】辞書には文字列「abc」はないので、図
12(A)に示すように、この文字列「abc」を辞書
に登録するとともに、新たな参照番号=6を付与する。
そして、当該文字列(ωK)中の接頭文字列ω=「a
b」についてその参照番号=4を読み出し、図11に示
すように、この参照番号=4を文字列ω=「ab」の符
号語(OUTPUT CODES)として出力する。文字列「ab」
の符号化が終わると、文字列(ωK)=「abc」中の
残りの文字「a」が次の接頭文字列ωとなる。
12(A)に示すように、この文字列「abc」を辞書
に登録するとともに、新たな参照番号=6を付与する。
そして、当該文字列(ωK)中の接頭文字列ω=「a
b」についてその参照番号=4を読み出し、図11に示
すように、この参照番号=4を文字列ω=「ab」の符
号語(OUTPUT CODES)として出力する。文字列「ab」
の符号化が終わると、文字列(ωK)=「abc」中の
残りの文字「a」が次の接頭文字列ωとなる。
【0017】以上の処理を繰り返すことにより、入力デ
ータ「ababcbababaaaaaa」は符号化デ
ータ「1,2,4,3,5,8,1,10,11 」に変換されて出力され
る。このとき、辞書には、図12(A)に示すような文
字列とその参照番号が登録される。なお、実際の辞書で
は、メモリ容量を低減するため、図12(B)に示すよ
うに、登録文字列は、その下位一桁を残してを既に登録
されている上位側の他の登録文字列の参照番号で置き換
えて辞書登録される。
ータ「ababcbababaaaaaa」は符号化デ
ータ「1,2,4,3,5,8,1,10,11 」に変換されて出力され
る。このとき、辞書には、図12(A)に示すような文
字列とその参照番号が登録される。なお、実際の辞書で
は、メモリ容量を低減するため、図12(B)に示すよ
うに、登録文字列は、その下位一桁を残してを既に登録
されている上位側の他の登録文字列の参照番号で置き換
えて辞書登録される。
【0018】図10の復号化処理は、図9の符号化処理
と逆の操作を行なう。すなわち、図10の復号化処理で
は、符号化時と同様に、予め使用する全文字について一
文字からなる文字列を初期値として登録し、それぞれに
参照番号を付与してから復号を始める。
と逆の操作を行なう。すなわち、図10の復号化処理で
は、符号化時と同様に、予め使用する全文字について一
文字からなる文字列を初期値として登録し、それぞれに
参照番号を付与してから復号を始める。
【0019】ステップS11において、最初の入力符号
(=参照番号)を読み込み、これをOLDcode とする。最
初の符号語は既に辞書に登録されている一文字の参照番
号のいずれかに該当することから、入力符号に一致する
文字code(K)を探し出し、文字「K」を出力する。な
お、出力した文字「K」は、後の処理のためにFINchar
にセットしておく。
(=参照番号)を読み込み、これをOLDcode とする。最
初の符号語は既に辞書に登録されている一文字の参照番
号のいずれかに該当することから、入力符号に一致する
文字code(K)を探し出し、文字「K」を出力する。な
お、出力した文字「K」は、後の処理のためにFINchar
にセットしておく。
【0020】次に、ステップS12に進んで、次の入力
符号を読み込み、INcodeとしてセットする。ステップS
13で新たな符号があるか否か、すなわち符号の入力が
終了したか否かをチェックし、ステップS14へ進んで
辞書クリアコードであるか否かを判定した後、ステップ
S15において、ステップS13で入力された符号語の
codeが辞書に定義(登録)されているか否かをチェック
する。
符号を読み込み、INcodeとしてセットする。ステップS
13で新たな符号があるか否か、すなわち符号の入力が
終了したか否かをチェックし、ステップS14へ進んで
辞書クリアコードであるか否かを判定した後、ステップ
S15において、ステップS13で入力された符号語の
codeが辞書に定義(登録)されているか否かをチェック
する。
【0021】通常、入力した符号語は、前回までの復号
化処理で既に辞書に登録されているため、ステップS1
7に進んで、入力符号語に対応する文字列code(ωK)
を辞書から読み出し、ステップS18で文字列Kを一時
スタックするとともに、参照番号code(ω)を新たな文
字列とし、再度ステップS17へ戻り、このステップS
17,S18の処理を再帰的に参照番号ωが一文字にな
るまで繰り返し、最後にステップS19へ進む。
化処理で既に辞書に登録されているため、ステップS1
7に進んで、入力符号語に対応する文字列code(ωK)
を辞書から読み出し、ステップS18で文字列Kを一時
スタックするとともに、参照番号code(ω)を新たな文
字列とし、再度ステップS17へ戻り、このステップS
17,S18の処理を再帰的に参照番号ωが一文字にな
るまで繰り返し、最後にステップS19へ進む。
【0022】そして、ステップS19において、ステッ
プS18でスタックした文字をLIFO(Last In Fast
Out)形式でポップアップして出力し、ステップS20
で辞書の登録エリアをチェックした後、ステップS21
において、前回使った符号ω(OLDcode)と今回復元した
文字列の最初の一文字Kとを組み合わせた文字列(ω
K)に新たな参照番号を付与して辞書に登録する。そし
て、ステップS12へ戻り、前記処理を入力符号がなく
なるまで繰り返す。
プS18でスタックした文字をLIFO(Last In Fast
Out)形式でポップアップして出力し、ステップS20
で辞書の登録エリアをチェックした後、ステップS21
において、前回使った符号ω(OLDcode)と今回復元した
文字列の最初の一文字Kとを組み合わせた文字列(ω
K)に新たな参照番号を付与して辞書に登録する。そし
て、ステップS12へ戻り、前記処理を入力符号がなく
なるまで繰り返す。
【0023】前記LZW復号化処理の具体例を図13を
参照して説明する。まず、最初の入力符号は「1」であ
るが、一文字「a」「b」「c」については、符号化時
と同様に、既に図12(B)に示すように辞書登録され
ているから、最初の入力符号「1」に一致する参照番号
の文字列「a」を読み出して出力する。
参照して説明する。まず、最初の入力符号は「1」であ
るが、一文字「a」「b」「c」については、符号化時
と同様に、既に図12(B)に示すように辞書登録され
ているから、最初の入力符号「1」に一致する参照番号
の文字列「a」を読み出して出力する。
【0024】次の入力符号「2」についても、同様にし
て符号「2」に一致する参照番号の文字列「b」を読み
出して出力する。このとき、前回復号した符号「1」と
今回復号した文字列の最初の1文字「b」とを組み合わ
せた文字列「1b」に新たな参照番号=4を付加し、辞
書に登録する。以下、同様の処理を繰り返し、各入力符
号の復号を実行する。
て符号「2」に一致する参照番号の文字列「b」を読み
出して出力する。このとき、前回復号した符号「1」と
今回復号した文字列の最初の1文字「b」とを組み合わ
せた文字列「1b」に新たな参照番号=4を付加し、辞
書に登録する。以下、同様の処理を繰り返し、各入力符
号の復号を実行する。
【0025】なお、図13の復号化においては次の例外
処理がある。この例外処理は、6番目の入力符号「8」
において生ずる。すなわち、符号「8」はいまだ辞書に
定義されておらず、直ちには復号できない。このような
場合には、前回処理した符号「5」に前回復号した文字
列「ba」の最初の一文字「b」を加えた文字列「5
b」を求め、この文字列中の符号「5」を辞書から探し
て文字列「2a」で置き換えることにより「2ab」と
し、さらに「2ab」中の符号「2」を辞書から探して
文字「b」で置き換えることにより、最終的に文字列
「bab」を復号する。そして、この復号された文字列
「5b」(=「bab」)は辞書に定義されていなかっ
たから、図12(B)のように、新たな参照番号=8を
付して登録する。
処理がある。この例外処理は、6番目の入力符号「8」
において生ずる。すなわち、符号「8」はいまだ辞書に
定義されておらず、直ちには復号できない。このような
場合には、前回処理した符号「5」に前回復号した文字
列「ba」の最初の一文字「b」を加えた文字列「5
b」を求め、この文字列中の符号「5」を辞書から探し
て文字列「2a」で置き換えることにより「2ab」と
し、さらに「2ab」中の符号「2」を辞書から探して
文字「b」で置き換えることにより、最終的に文字列
「bab」を復号する。そして、この復号された文字列
「5b」(=「bab」)は辞書に定義されていなかっ
たから、図12(B)のように、新たな参照番号=8を
付して登録する。
【0026】この例外処理は、図10のLZW復号化処
理のステップS4,S16の処理を通じて行なわれ、ス
テップS19で文字列「bab」を出力するとともに、
辞書への登録が行なわれる。したがって、復号化処理時
にも、図12(B)と同一の辞書を作成しながら復号が
行なわれる。このようにして、最終的に、入力符号「1,
2,4,3,5,8,1,10,11 」は元の文字列「ababcbab
abaaaaaa」に復号される。
理のステップS4,S16の処理を通じて行なわれ、ス
テップS19で文字列「bab」を出力するとともに、
辞書への登録が行なわれる。したがって、復号化処理時
にも、図12(B)と同一の辞書を作成しながら復号が
行なわれる。このようにして、最終的に、入力符号「1,
2,4,3,5,8,1,10,11 」は元の文字列「ababcbab
abaaaaaa」に復号される。
【0027】次に、図9の符号化処理と図10の復号化
処理における辞書の初期化(クリア)について説明す
る。図9のLZW符号化処理の場合、ステップS6で辞
書に対する文字列の登録が済むと、ステップS7で現在
の辞書登録アドレスnが辞書の最大アドレスNMAXを越え
たか否か、すなわち辞書が一杯になったか否かをチェッ
クする。もし、ステップS7で辞書への登録が一杯にな
ったことが判別されると、ステップS8に進んで辞書へ
の登録を止め、数百バイト単位で圧縮率をチェックす
る。
処理における辞書の初期化(クリア)について説明す
る。図9のLZW符号化処理の場合、ステップS6で辞
書に対する文字列の登録が済むと、ステップS7で現在
の辞書登録アドレスnが辞書の最大アドレスNMAXを越え
たか否か、すなわち辞書が一杯になったか否かをチェッ
クする。もし、ステップS7で辞書への登録が一杯にな
ったことが判別されると、ステップS8に進んで辞書へ
の登録を止め、数百バイト単位で圧縮率をチェックす
る。
【0028】ステップS9で圧縮率が前回チェックした
ときと比べて悪化する傾向にあることが判定されると、
辞書がデータの統計的性質とズレてきていると判断し、
ステップS10に進んで辞書クリアコードを出力した
後、一文字「a」「b」「c」のみを残して他の文字列
については初期化(クリア)し、再度、ステップS2に
戻って辞書への登録を行ないながら符号化を実行する。
ときと比べて悪化する傾向にあることが判定されると、
辞書がデータの統計的性質とズレてきていると判断し、
ステップS10に進んで辞書クリアコードを出力した
後、一文字「a」「b」「c」のみを残して他の文字列
については初期化(クリア)し、再度、ステップS2に
戻って辞書への登録を行ないながら符号化を実行する。
【0029】図10の復号化処理の場合、ステップS2
0で登録できる辞書スペースがあるか否かを判定し、登
録できる場合はステップS21で辞書への登録を行な
う。また、符号化側で辞書クリアコードが出力された場
合はステップS14で判定され、ステップS11から再
度処理を続行する。
0で登録できる辞書スペースがあるか否かを判定し、登
録できる場合はステップS21で辞書への登録を行な
う。また、符号化側で辞書クリアコードが出力された場
合はステップS14で判定され、ステップS11から再
度処理を続行する。
【0030】
【発明が解決しようとする課題】前述したように、従来
のLZW符号は、記憶装置上に確保した領域上に辞書を
作成しながら、その辞書を使用して符号化と復号化を行
なう。したがって、これらの処理は、記憶装置上のデー
タが外部的な要因などで破壊されないという前提条件の
下で成立するものである。
のLZW符号は、記憶装置上に確保した領域上に辞書を
作成しながら、その辞書を使用して符号化と復号化を行
なう。したがって、これらの処理は、記憶装置上のデー
タが外部的な要因などで破壊されないという前提条件の
下で成立するものである。
【0031】しかし、実際に装置として構成した場合、
記憶装置の内容が破壊されたり、データが化けるといっ
た障害も発生する。この場合、従来のLZW符号では、
誤ったデータが読み出されて処理に使用されても、それ
が正しいデータであるのか、誤ったデータであるのかを
判断することができなかった。
記憶装置の内容が破壊されたり、データが化けるといっ
た障害も発生する。この場合、従来のLZW符号では、
誤ったデータが読み出されて処理に使用されても、それ
が正しいデータであるのか、誤ったデータであるのかを
判断することができなかった。
【0032】本発明は、前記事情に基づきなされたもの
で、その目的とするところは、復元されたデータがエラ
ーのない有効なデータであるか否かを正確に判定するこ
とのできるデータ圧縮および復元方式ならびにその装置
を提供することである。
で、その目的とするところは、復元されたデータがエラ
ーのない有効なデータであるか否かを正確に判定するこ
とのできるデータ圧縮および復元方式ならびにその装置
を提供することである。
【0033】
【課題を解決するための手段】本発明のデータ圧縮方式
は、符号化済みデータを相異なる部分列に分けて各部分
列毎に異なる参照番号を付加して辞書に登録しておき、
入力データを該辞書中の部分列のうち、最大長一致する
ものの参照番号で指定して符号化するデータ圧縮方式に
おいて、圧縮処理時に特有に発生する項目のデータを前
記圧縮処理された符号化データに付加することを特徴と
するものである。
は、符号化済みデータを相異なる部分列に分けて各部分
列毎に異なる参照番号を付加して辞書に登録しておき、
入力データを該辞書中の部分列のうち、最大長一致する
ものの参照番号で指定して符号化するデータ圧縮方式に
おいて、圧縮処理時に特有に発生する項目のデータを前
記圧縮処理された符号化データに付加することを特徴と
するものである。
【0034】前記データ圧縮方式を実現するための本発
明の第1のデータ圧縮装置は、辞書クリアの回数を計数
する辞書クリア回数計数手段と、符号化の終了時に辞書
クリア回数計数手段により計数された辞書クリア回数を
符号化データに付加して出力する辞書クリア回数データ
付加手段とを備えたことを特徴とするものである。
明の第1のデータ圧縮装置は、辞書クリアの回数を計数
する辞書クリア回数計数手段と、符号化の終了時に辞書
クリア回数計数手段により計数された辞書クリア回数を
符号化データに付加して出力する辞書クリア回数データ
付加手段とを備えたことを特徴とするものである。
【0035】前記データ圧縮方式を実現するための本発
明の第2のデータ圧縮装置は、符号化処理に使われた入
力データ数をカウントするデータ計数手段と、辞書クリ
ア時のデータ計数手段の値を保持する辞書クリア時デー
タ数保持手段と、符号化の終了時に辞書クリア時データ
数保持手段により保持されたデータ数を符号化データに
付加して出力する辞書クリア時データ数付加手段とを備
えたことを特徴とするものである。
明の第2のデータ圧縮装置は、符号化処理に使われた入
力データ数をカウントするデータ計数手段と、辞書クリ
ア時のデータ計数手段の値を保持する辞書クリア時デー
タ数保持手段と、符号化の終了時に辞書クリア時データ
数保持手段により保持されたデータ数を符号化データに
付加して出力する辞書クリア時データ数付加手段とを備
えたことを特徴とするものである。
【0036】前記データ圧縮方式を実現するための本発
明の第3のデータ圧縮装置は、符号化の終了時の使用辞
書容量を保持する使用辞書容量保持手段と、符号化の終
了時に使用辞書容量保持手段により保持された使用辞書
容量を符号化データに付加して出力する使用辞書容量付
加手段とを備えたことを特徴とするものである。
明の第3のデータ圧縮装置は、符号化の終了時の使用辞
書容量を保持する使用辞書容量保持手段と、符号化の終
了時に使用辞書容量保持手段により保持された使用辞書
容量を符号化データに付加して出力する使用辞書容量付
加手段とを備えたことを特徴とするものである。
【0037】前記データ圧縮方式を実現するための本発
明の第4のデータ圧縮装置は、前記データ圧縮装置の複
数を組み合わせることにより構成したことを特徴とする
ものである。
明の第4のデータ圧縮装置は、前記データ圧縮装置の複
数を組み合わせることにより構成したことを特徴とする
ものである。
【0038】さらに、本発明のデータ復元方式は、復元
時に、前記圧縮処理時に付加された項目のデータと、復
元処理時に特有に発生する該当項目のデータとを比較
し、両者が一致するときに復元されたデータを有効デー
タと判定することを特徴とするものである。
時に、前記圧縮処理時に付加された項目のデータと、復
元処理時に特有に発生する該当項目のデータとを比較
し、両者が一致するときに復元されたデータを有効デー
タと判定することを特徴とするものである。
【0039】前記データ復元方式を実現するための本発
明の第1のデータ復元装置は、符号化データに付加され
た辞書クリア回数を分離する辞書クリア回数データ分離
手段と、辞書クリア回数データ分離手段により分離され
た値を保持する辞書クリア回数保持手段と、復号化中の
辞書クリアの回数を計数する辞書クリア回数計数手段
と、復号化の終了時に辞書クリア回数保持手段と辞書ク
リア回数計数手段の値の一致を判定する判定手段とを備
えたことを特徴とするものである。
明の第1のデータ復元装置は、符号化データに付加され
た辞書クリア回数を分離する辞書クリア回数データ分離
手段と、辞書クリア回数データ分離手段により分離され
た値を保持する辞書クリア回数保持手段と、復号化中の
辞書クリアの回数を計数する辞書クリア回数計数手段
と、復号化の終了時に辞書クリア回数保持手段と辞書ク
リア回数計数手段の値の一致を判定する判定手段とを備
えたことを特徴とするものである。
【0040】前記データ復元方式を実現するための本発
明の第2のデータ復元装置は、符号化データに付加され
た辞書クリア回数を分離する辞書クリア時データ数分離
手段と、辞書クリア時データ分離手段により分離された
値を保持する圧縮用辞書クリア時データ数保持手段と、
復元されたデータ数をカウントするデータ計数手段と、
復元での辞書クリア時にデータ計数手段の値を保持する
復元用辞書クリア時データ数保持手段と、圧縮用辞書ク
リア時データ数保持手段と復元用辞書クリア時データ数
保持手段の値の一致を判定する判定手段とを備えたこと
を特徴とするものである。
明の第2のデータ復元装置は、符号化データに付加され
た辞書クリア回数を分離する辞書クリア時データ数分離
手段と、辞書クリア時データ分離手段により分離された
値を保持する圧縮用辞書クリア時データ数保持手段と、
復元されたデータ数をカウントするデータ計数手段と、
復元での辞書クリア時にデータ計数手段の値を保持する
復元用辞書クリア時データ数保持手段と、圧縮用辞書ク
リア時データ数保持手段と復元用辞書クリア時データ数
保持手段の値の一致を判定する判定手段とを備えたこと
を特徴とするものである。
【0041】前記データ復元方式を実現するための本発
明の第3のデータ復元装置は、符号化データに付加され
た使用辞書容量を分離する使用辞書容量分離手段と、使
用辞書容量分離手段の値を保持する圧縮用使用辞書容量
保持手段と、復号化の終了時の使用辞書容量を保持する
復元用使用辞書容量保持手段と、復号化の終了時に圧縮
用使用辞書容量保持手段と復元用使用辞書容量保持手段
の値の一致を判定する判定手段とを備えたことを特徴と
するものである。
明の第3のデータ復元装置は、符号化データに付加され
た使用辞書容量を分離する使用辞書容量分離手段と、使
用辞書容量分離手段の値を保持する圧縮用使用辞書容量
保持手段と、復号化の終了時の使用辞書容量を保持する
復元用使用辞書容量保持手段と、復号化の終了時に圧縮
用使用辞書容量保持手段と復元用使用辞書容量保持手段
の値の一致を判定する判定手段とを備えたことを特徴と
するものである。
【0042】前記データ復元方式を実現するための本発
明の第4のデータ復元装置は、前記各データ復元装置の
うちの複数を組み合わせることにより構成したことを特
徴とするものである。
明の第4のデータ復元装置は、前記各データ復元装置の
うちの複数を組み合わせることにより構成したことを特
徴とするものである。
【0043】
【作 用】本発明は、データ圧縮時、圧縮処理時に特有
に発生する項目、例えば、辞書クリア回数、辞書ク
リア時の符号化されたデータ数、使用辞書容量などを
データ圧縮された符号化データに付加するとともに、デ
ータ復元時、前記圧縮処理時に付加された項目のデータ
と、復元処理時に特有に発生する該当項目のデータとを
比較することにより、復元されたデータの有効/無効を
判定するようにしている。このため、記憶装置の内容が
破壊されたり、データが化けるといった障害が発生した
場合でも、復元されたデータが有効であるか否かを正確
に判断することができ、信頼性の高いデータ圧縮と復元
を実現することができる。
に発生する項目、例えば、辞書クリア回数、辞書ク
リア時の符号化されたデータ数、使用辞書容量などを
データ圧縮された符号化データに付加するとともに、デ
ータ復元時、前記圧縮処理時に付加された項目のデータ
と、復元処理時に特有に発生する該当項目のデータとを
比較することにより、復元されたデータの有効/無効を
判定するようにしている。このため、記憶装置の内容が
破壊されたり、データが化けるといった障害が発生した
場合でも、復元されたデータが有効であるか否かを正確
に判断することができ、信頼性の高いデータ圧縮と復元
を実現することができる。
【0044】また、前記圧縮処理時に特有に発生する項
目のデータとして、辞書クリア回数、辞書クリア時の符
号化されたデータ数、使用辞書容量などをそれぞれ単独
で付加するだけでなく、これらを組み合わせて付加する
ようにすれば、さらに信頼性を上げることができる。
目のデータとして、辞書クリア回数、辞書クリア時の符
号化されたデータ数、使用辞書容量などをそれぞれ単独
で付加するだけでなく、これらを組み合わせて付加する
ようにすれば、さらに信頼性を上げることができる。
【0045】
【実施例】図1は本発明になるデータ圧縮/復元装置の
第1実施例である。まず、図1(A)の圧縮部の構成と
動作から説明する。なお、LZW符号化処理そのものは
前述した従来例と同様であるので、符号化処理自体の具
体的な説明は省略する。
第1実施例である。まず、図1(A)の圧縮部の構成と
動作から説明する。なお、LZW符号化処理そのものは
前述した従来例と同様であるので、符号化処理自体の具
体的な説明は省略する。
【0046】図1(A)中、1はLZW符号化処理を行
なう符号化部、2は辞書部、3は辞書クリア回数計数
部、4は辞書クリア回数データ付加部である。符号化対
象となる入力データは符号化部1に入力される。
なう符号化部、2は辞書部、3は辞書クリア回数計数
部、4は辞書クリア回数データ付加部である。符号化対
象となる入力データは符号化部1に入力される。
【0047】符号化部1では、辞書部2の辞書を使用し
て登録・参照を繰り返しながら、前述した従来例と同様
にして符号化し、辞書クリア回数データ付加部4へ出力
する。そして、符号化処理中に符号化に必要な辞書スペ
ースがなくなると、その都度、辞書クリアコードにより
辞書部2の辞書を初期化(クリア)し、符号化を続け
る。
て登録・参照を繰り返しながら、前述した従来例と同様
にして符号化し、辞書クリア回数データ付加部4へ出力
する。そして、符号化処理中に符号化に必要な辞書スペ
ースがなくなると、その都度、辞書クリアコードにより
辞書部2の辞書を初期化(クリア)し、符号化を続け
る。
【0048】辞書クリア回数計数部3は前記辞書のクリ
ア回数を計数する。そして、すべての入力データの符号
化を終了すると、辞書クリア回数計数部3で計数された
辞書クリア回数は辞書クリア回数データ付加部4へ送ら
れ、図2に示すような形式に従って符号化データに付加
され、出力される。
ア回数を計数する。そして、すべての入力データの符号
化を終了すると、辞書クリア回数計数部3で計数された
辞書クリア回数は辞書クリア回数データ付加部4へ送ら
れ、図2に示すような形式に従って符号化データに付加
され、出力される。
【0049】次に、図1(B)の復元部の構成と動作に
ついて説明する。図1(B)中、5はLZW復号化処理
を行なう復号化部、6は辞書部、7は辞書クリア回数デ
ータ分離部、8は辞書クリア回数保持部、9は辞書クリ
ア回数計数部、10は判定部である。
ついて説明する。図1(B)中、5はLZW復号化処理
を行なう復号化部、6は辞書部、7は辞書クリア回数デ
ータ分離部、8は辞書クリア回数保持部、9は辞書クリ
ア回数計数部、10は判定部である。
【0050】データ圧縮された符号化データが辞書クリ
ア回数データ分離部7に入力されると、符号化データに
付加されている辞書クリアデータが分離され、辞書クリ
ア回数保持部8に保持される。符号化データは復号化部
5へ入力される。
ア回数データ分離部7に入力されると、符号化データに
付加されている辞書クリアデータが分離され、辞書クリ
ア回数保持部8に保持される。符号化データは復号化部
5へ入力される。
【0051】復号化部5は、辞書部6の辞書を使用し、
登録・参照を繰り返すことにより、前述した従来例と同
様にして元の入力データを復号する。このとき、復号化
処理において発生する辞書クリアコードにより辞書部6
の辞書を初期化(クリア)しながら、復号を行なう。
登録・参照を繰り返すことにより、前述した従来例と同
様にして元の入力データを復号する。このとき、復号化
処理において発生する辞書クリアコードにより辞書部6
の辞書を初期化(クリア)しながら、復号を行なう。
【0052】辞書クリア回数計数部9は、前記復号化処
理における辞書のクリア回数を計数する。そして、すべ
ての符号化データの復号を終了すると、判定部3は辞書
クリア回数保持部8と辞書クリア回数計数部9にそれぞ
れ保持されている辞書クリア回数の値を比較し、その値
が一致していれば、エラーのない有効な復号として正常
終了する。一方、一致しない場合には、エラーが発生し
たものとしてエラー信号(ERROR)を出力し、異常終了と
する。
理における辞書のクリア回数を計数する。そして、すべ
ての符号化データの復号を終了すると、判定部3は辞書
クリア回数保持部8と辞書クリア回数計数部9にそれぞ
れ保持されている辞書クリア回数の値を比較し、その値
が一致していれば、エラーのない有効な復号として正常
終了する。一方、一致しない場合には、エラーが発生し
たものとしてエラー信号(ERROR)を出力し、異常終了と
する。
【0053】図3は本発明になるデータ圧縮/復元装置
の第2実施例である。まず、図3(A)の圧縮部の構成
と動作から説明する。1はLZW符号化処理を行なう符
号化部、2は辞書部、11はデータ計数部、12は辞書
クリア時データ数保持部、13は辞書クリア時データ数
付加部である。
の第2実施例である。まず、図3(A)の圧縮部の構成
と動作から説明する。1はLZW符号化処理を行なう符
号化部、2は辞書部、11はデータ計数部、12は辞書
クリア時データ数保持部、13は辞書クリア時データ数
付加部である。
【0054】符号化対象となる入力データはデータ計数
部11に入力され、入力データ数を計数するとともに、
符号化部1に入力される。符号化部1では、辞書部2の
辞書を使用して登録・参照を繰り返しながら、前述した
従来例と同様にして符号化し、辞書クリア時データ数付
加部13へ出力する。そして、符号化処理中に符号化に
必要な辞書スペースがなくなると、その都度、辞書部2
の辞書を初期化(クリア)し、符号化を続ける。
部11に入力され、入力データ数を計数するとともに、
符号化部1に入力される。符号化部1では、辞書部2の
辞書を使用して登録・参照を繰り返しながら、前述した
従来例と同様にして符号化し、辞書クリア時データ数付
加部13へ出力する。そして、符号化処理中に符号化に
必要な辞書スペースがなくなると、その都度、辞書部2
の辞書を初期化(クリア)し、符号化を続ける。
【0055】データ計数部11は前記辞書クリア時にお
ける入力データ数を計数し、辞書クリア時データ数保持
部12に逐次保持していく。そして、全入力データにつ
いて符号化が終了すると、辞書クリア時データ数保持部
12に保持された各辞書クリア時の入力データ数が辞書
クリア時データ数付加部13へ送られ、図4に示すよう
な形式に従って符号化データに付加され、出力される。
ける入力データ数を計数し、辞書クリア時データ数保持
部12に逐次保持していく。そして、全入力データにつ
いて符号化が終了すると、辞書クリア時データ数保持部
12に保持された各辞書クリア時の入力データ数が辞書
クリア時データ数付加部13へ送られ、図4に示すよう
な形式に従って符号化データに付加され、出力される。
【0056】次に、図3(B)の復元部の構成と動作に
ついて説明する。図3(B)中、5はLZW復号化処理
を行なう復号化部、6は辞書部、10は判定部、14は
辞書クリア時データ数分離部、15は圧縮用辞書クリア
時データ数保持部、16データ計数部、17は復元用辞
書クリア時データ数保持部である。
ついて説明する。図3(B)中、5はLZW復号化処理
を行なう復号化部、6は辞書部、10は判定部、14は
辞書クリア時データ数分離部、15は圧縮用辞書クリア
時データ数保持部、16データ計数部、17は復元用辞
書クリア時データ数保持部である。
【0057】データ圧縮された符号化データが辞書クリ
ア時データ数分離部14に入力されると、符号化データ
に付加されている辞書クリア時のデータ数が分離され、
圧縮用辞書クリア時データ数保持部15に保持される。
符号化データは復号化部5へ入力される。
ア時データ数分離部14に入力されると、符号化データ
に付加されている辞書クリア時のデータ数が分離され、
圧縮用辞書クリア時データ数保持部15に保持される。
符号化データは復号化部5へ入力される。
【0058】復号化部5は、辞書部6の辞書を使用し、
登録・参照を繰り返すことにより、前述した従来例と同
様にして元の入力データを復号する。このとき、復号化
処理において発生する辞書クリアコードにより辞書部6
の辞書を初期化(クリア)しながら、復号を行なう。復
号されたデータは、データ計数部16でデータ数を計数
された後、出力される。
登録・参照を繰り返すことにより、前述した従来例と同
様にして元の入力データを復号する。このとき、復号化
処理において発生する辞書クリアコードにより辞書部6
の辞書を初期化(クリア)しながら、復号を行なう。復
号されたデータは、データ計数部16でデータ数を計数
された後、出力される。
【0059】復元用辞書クリア時データ数保持部17
は、前記辞書クリア時におけるデータ数計数部16の値
をその都度読み込んで保持する。すべての符号化データ
の復号を終了すると、判定部10は圧縮用辞書クリア時
データ数保持部15と復元用辞書クリア時データ数保持
部17にそれぞれ保持されている各辞書クリア時のデー
タ数の値を比較し、各値が一致していれば、エラーのな
い有効な復号として正常終了する。一方、一致しない場
合には、エラーが発生したものとしてエラー信号(ERRO
R)を出力し、異常終了とする。
は、前記辞書クリア時におけるデータ数計数部16の値
をその都度読み込んで保持する。すべての符号化データ
の復号を終了すると、判定部10は圧縮用辞書クリア時
データ数保持部15と復元用辞書クリア時データ数保持
部17にそれぞれ保持されている各辞書クリア時のデー
タ数の値を比較し、各値が一致していれば、エラーのな
い有効な復号として正常終了する。一方、一致しない場
合には、エラーが発生したものとしてエラー信号(ERRO
R)を出力し、異常終了とする。
【0060】前記第2実施例において、符号化と復号化
との間に時間的な余裕がある場合、つまり、データ圧縮
/復元装置から出力される符号化データが磁気ディスク
などの記録媒体に一旦記録されて保存されるような場合
には、図4に示した符号化データのフォーマットを変換
して、辞書クリア時のデータ数を符号化データの先頭側
に配置して記録するようにすればよい。こうすれば、復
元側では、この辞書クリア時のデータ数を復号処理の開
始前に入手して保持することができる。この結果、復号
化処理中の辞書クリアの度にそのデータ数を直ちに比較
することができ、復号化処理の完了する前に復号の異常
/正常を判定することができる。
との間に時間的な余裕がある場合、つまり、データ圧縮
/復元装置から出力される符号化データが磁気ディスク
などの記録媒体に一旦記録されて保存されるような場合
には、図4に示した符号化データのフォーマットを変換
して、辞書クリア時のデータ数を符号化データの先頭側
に配置して記録するようにすればよい。こうすれば、復
元側では、この辞書クリア時のデータ数を復号処理の開
始前に入手して保持することができる。この結果、復号
化処理中の辞書クリアの度にそのデータ数を直ちに比較
することができ、復号化処理の完了する前に復号の異常
/正常を判定することができる。
【0061】さらに、データ圧縮/復元装置が伝送路な
どで結ばれているような場合には、辞書を初期化するた
めの辞書クリアコードの発生後、数バイトは当該辞書ク
リア時のデータ数を伝送すると予め定めておけば、デー
タ圧縮側で辞書クリア時のデータ数を一旦保存する必要
なく値の比較を行なうことができる。
どで結ばれているような場合には、辞書を初期化するた
めの辞書クリアコードの発生後、数バイトは当該辞書ク
リア時のデータ数を伝送すると予め定めておけば、デー
タ圧縮側で辞書クリア時のデータ数を一旦保存する必要
なく値の比較を行なうことができる。
【0062】図5は本発明になるデータ圧縮/復元装置
の第3実施例である。まず、図5(A)の圧縮部の構成
と動作から説明する。1はLZW符号化処理を行なう符
号化部、2は辞書部、18は使用辞書容量保持部、19
は使用辞書容量付加部である。
の第3実施例である。まず、図5(A)の圧縮部の構成
と動作から説明する。1はLZW符号化処理を行なう符
号化部、2は辞書部、18は使用辞書容量保持部、19
は使用辞書容量付加部である。
【0063】符号化対象となる入力データは符号化部1
に入力される。符号化部1では、辞書部2の辞書を使用
して登録・参照を繰り返しながら、前述した従来例と同
様にしてLZW符号化し、使用辞書容量付加部19へ出
力する。符号化処理中に符号化に必要な辞書スペースが
なくなると、その都度、辞書部2の辞書を初期化(クリ
ア)し、符号化を続ける。
に入力される。符号化部1では、辞書部2の辞書を使用
して登録・参照を繰り返しながら、前述した従来例と同
様にしてLZW符号化し、使用辞書容量付加部19へ出
力する。符号化処理中に符号化に必要な辞書スペースが
なくなると、その都度、辞書部2の辞書を初期化(クリ
ア)し、符号化を続ける。
【0064】そして、すべての入力データの符号化を終
了すると、一番最後に辞書クリアされた後の辞書の使用
容量を使用辞書容量保持部18に保持する。この使用辞
書容量は使用辞書容量保持部から使用辞書容量付加部1
9へ送られ、図6に示すような形式に従って符号化デー
タに付加され、出力される。
了すると、一番最後に辞書クリアされた後の辞書の使用
容量を使用辞書容量保持部18に保持する。この使用辞
書容量は使用辞書容量保持部から使用辞書容量付加部1
9へ送られ、図6に示すような形式に従って符号化デー
タに付加され、出力される。
【0065】次に、図5(B)の復元部の構成と動作に
ついて説明する。図5(B)中、5はLZW復号化処理
を行なう復号化部、6は辞書部、10は判定部、20は
使用辞書容量分離部、21は圧縮用使用辞書容量保持
部、22は復元用使用辞書容量保持部である。
ついて説明する。図5(B)中、5はLZW復号化処理
を行なう復号化部、6は辞書部、10は判定部、20は
使用辞書容量分離部、21は圧縮用使用辞書容量保持
部、22は復元用使用辞書容量保持部である。
【0066】データ圧縮された符号化データが使用辞書
容量分離部20に入力されると、符号化データに付加さ
れている使用辞書容量が分離され、圧縮用使用辞書容量
保持部21に保持される。符号化データは復号化部5へ
入力される。
容量分離部20に入力されると、符号化データに付加さ
れている使用辞書容量が分離され、圧縮用使用辞書容量
保持部21に保持される。符号化データは復号化部5へ
入力される。
【0067】復号化部5は、辞書部6の辞書を使用し、
登録・参照を繰り返すことにより、前述した従来例と同
様にして元の入力データを復号する。このとき、復号化
処理において発生する辞書クリアコードにより辞書部6
の辞書を初期化(クリア)しながら、復号を行なう。
登録・参照を繰り返すことにより、前述した従来例と同
様にして元の入力データを復号する。このとき、復号化
処理において発生する辞書クリアコードにより辞書部6
の辞書を初期化(クリア)しながら、復号を行なう。
【0068】そして、すべての符号化データの復号を終
了すると、復号化処理において一番最後に辞書クリアさ
れた後の辞書の使用容量が復元用使用辞書容量保持部2
2に保持される。判定部10は、圧縮用使用辞書容量保
持部21と復元用使用辞書容量保持部22のそれぞれに
保持されている辞書の使用容量の値を比較し、その値が
一致していれば、エラーのない有効な復号として正常終
了する。一方、一致しない場合には、エラーが発生した
ものとしてエラー信号(ERROR)を出力し、異常終了とす
る。
了すると、復号化処理において一番最後に辞書クリアさ
れた後の辞書の使用容量が復元用使用辞書容量保持部2
2に保持される。判定部10は、圧縮用使用辞書容量保
持部21と復元用使用辞書容量保持部22のそれぞれに
保持されている辞書の使用容量の値を比較し、その値が
一致していれば、エラーのない有効な復号として正常終
了する。一方、一致しない場合には、エラーが発生した
ものとしてエラー信号(ERROR)を出力し、異常終了とす
る。
【0069】なお、前記説明した実施例は、圧縮処理時
に特有に発生する項目として、辞書クリア回数、辞
書クリア時の符号化されたデータ数、使用辞書容量な
どをそれぞれを単独で付加するようにしたが、これらを
組み合わせて付加するようにすれば、さらに信頼性を上
げることができる。
に特有に発生する項目として、辞書クリア回数、辞
書クリア時の符号化されたデータ数、使用辞書容量な
どをそれぞれを単独で付加するようにしたが、これらを
組み合わせて付加するようにすれば、さらに信頼性を上
げることができる。
【0070】
【発明の効果】以上述べたところから明らかなように、
本発明によるときは、データ圧縮時、圧縮処理時に特有
に発生する項目、例えば、辞書クリア回数、辞書クリア
時の符号化されたデータ数、使用辞書容量などを圧縮処
理された符号化データに付加するとともに、復元時、前
記圧縮処理時に付加された項目のデータと、復元処理時
に特有に発生する該当項目のデータとを比較することに
より復元されたデータの有効/無効を判定するようにし
ているので、記憶装置の内容が破壊されたり、データが
化けるといった障害が発生した場合でも、復元されたデ
ータが有効であるか否かを正確に判断することができ、
信頼性の高いデータ圧縮と復元を実現することができ
る。
本発明によるときは、データ圧縮時、圧縮処理時に特有
に発生する項目、例えば、辞書クリア回数、辞書クリア
時の符号化されたデータ数、使用辞書容量などを圧縮処
理された符号化データに付加するとともに、復元時、前
記圧縮処理時に付加された項目のデータと、復元処理時
に特有に発生する該当項目のデータとを比較することに
より復元されたデータの有効/無効を判定するようにし
ているので、記憶装置の内容が破壊されたり、データが
化けるといった障害が発生した場合でも、復元されたデ
ータが有効であるか否かを正確に判断することができ、
信頼性の高いデータ圧縮と復元を実現することができ
る。
【図1】本発明の第1実施例の構成を示すブロック図で
ある。
ある。
【図2】第1実施例のデータフォーマットを示す図であ
る。
る。
【図3】本発明の第2実施例の構成を示すブロック図で
ある。
ある。
【図4】第2実施例のデータフォーマットを示す図であ
る。
る。
【図5】本発明の第3実施例の構成を示すブロック図で
ある。
ある。
【図6】第3実施例のデータフォーマットを示す図であ
る。
る。
【図7】従来のデータ圧縮/復元装置の構成を示すブロ
ック図である。
ック図である。
【図8】従来装置のデータフォーマットを示す図であ
る。
る。
【図9】従来のLZW符号化処理のフローチャートであ
る。
る。
【図10】従来のLZW復号化処理のフローチャートで
ある。
ある。
【図11】LZW符号化の具体例の説明図である。
【図12】辞書構成の具体例の説明図である。
【図13】LZW復号化の具体例の説明図である。
1 符号化部 2 辞書部 3 辞書クリア回数計数部 4 辞書クリア回数データ付加部 5 復号化部 6 辞書部 7 辞書クリア回数データ分離部 8 辞書クリア回数保持部 9 辞書クリア回数計数部 10 判定部 11 データ計数部 12 辞書クリア時データ数計数部 13 辞書クリア時データ数付加部 14 辞書クリア時データ数分離部 15 圧縮用辞書クリア時データ数保持部 16 データ計数部 17 復元用辞書クリア時データ数保持部 18 使用辞書容量保持部 19 使用辞書容量付加部 20 使用辞書容量分離部 21 圧縮用使用辞書容量保持部 22 復元用使用辞書容量保持部
フロントページの続き (72)発明者 吉田 茂 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内
Claims (10)
- 【請求項1】 符号化済みデータを相異なる部分列に分
けて各部分列毎に異なる参照番号を付加して辞書に登録
しておき、入力データを該辞書中の部分列のうち、最大
長一致するものの参照番号で指定して符号化するデータ
圧縮方式において、 圧縮処理時に特有に発生する項目のデータを前記圧縮処
理された符号化データに付加することを特徴とするデー
タ圧縮方式。 - 【請求項2】 符号化部と辞書部とを有し、符号化済み
データを相異なる部分列に分けて各部分列毎に異なる参
照番号を付加して辞書に登録しておき、入力データを該
辞書中の部分列のうち、最大長一致するものの参照番号
で指定して符号化するデータ圧縮装置において、 辞書クリアの回数を計数する辞書クリア回数計数手段
と、 符号化の終了時に辞書クリア回数計数手段により計数さ
れた辞書クリア回数を符号化データに付加して出力する
辞書クリア回数データ付加手段とを備えたことを特徴と
するデータ圧縮装置。 - 【請求項3】 符号化部と辞書部とを有し、符号化済み
データを相異なる部分列に分けて各部分列毎に異なる参
照番号を付加して辞書に登録しておき、入力データを該
辞書中の部分列のうち、最大長一致するものの参照番号
で指定して符号化するデータ圧縮装置において、 符号化処理に使われた入力データ数をカウントするデー
タ計数手段と、 辞書クリア時のデータ計数手段の値を保持する辞書クリ
ア時データ数保持手段と、 符号化の終了時に辞書クリア時データ数保持手段により
保持されたデータ数を符号化データに付加して出力する
辞書クリア時データ数付加手段とを備えたことを特徴と
するデータ圧縮装置。 - 【請求項4】 符号化部と辞書部とを有し、符号化済み
データを相異なる部分列に分けて各部分列毎に異なる参
照番号を付加して辞書に登録しておき、入力データを該
辞書中の部分列のうち、最大長一致するものの参照番号
で指定して符号化するデータ圧縮装置において、 符号化の終了時の使用辞書容量を保持する使用辞書容量
保持手段と、 符号化の終了時に使用辞書容量保持手段により保持され
た使用辞書容量を符号化データに付加して出力する使用
辞書容量付加手段とを備えたことを特徴とするデータ圧
縮装置。 - 【請求項5】 請求項2〜4記載のデータ圧縮装置の複
数を組み合わせることにより構成したことを特徴とする
データ圧縮装置。 - 【請求項6】 請求項1記載のデータ圧縮方式によって
圧縮されたデータの復元方式であって、符号化済みデー
タを相異なる部分列に分けて各部分列毎に異なる辞書に
登録しておき、入力データを該辞書中の部分列のうち、
最大長一致するものの参照番号で指定される符号語から
元の文字列を復元するデータ復元方式において、 復元時に、前記圧縮処理時に付加された項目のデータ
と、復元処理時に特有に発生する該当項目のデータとを
比較し、両者が一致するときに復元されたデータを有効
データと判定することを特徴とするデータ復元方式。 - 【請求項7】 復号化部と辞書部とを有し、請求項2記
載のデータ圧縮装置で圧縮されたデータを復元するため
のデータ復元装置であって、 符号化データに付加された辞書クリア回数を分離する辞
書クリア回数データ分離手段と、 辞書クリア回数データ分離手段により分離された値を保
持する辞書クリア回数保持手段と、 復号化中の辞書クリアの回数を計数する辞書クリア回数
計数手段と、 復号化の終了時に辞書クリア回数保持手段と辞書クリア
回数計数手段の値の一致を判定する判定手段とを備えた
ことを特徴とするデータ復元装置。 - 【請求項8】 復号化部と辞書部とを有し、請求項3記
載のデータ圧縮装置で圧縮されたデータを復元するため
のデータ復元装置であって、 符号化データに付加された辞書クリア回数を分離する辞
書クリア時データ数分離手段と、 辞書クリア時データ分離手段により分離された値を保持
する圧縮用辞書クリア時データ数保持手段と、 復元されたデータ数をカウントするデータ計数手段と、 復元での辞書クリア時にデータ計数手段の値を保持する
復元用辞書クリア時データ数保持手段と、 圧縮用辞書クリア時データ数保持手段と復元用辞書クリ
ア時データ数保持手段の値の一致を判定する判定手段と
を備えたことを特徴とするデータ復元装置。 - 【請求項9】 復号化部と辞書部とを有し、請求項4記
載のデータ圧縮装置で圧縮されたデータを復元するため
のデータ復元装置であって、 符号化データに付加された使用辞書容量を分離する使用
辞書容量分離手段と、 使用辞書容量分離手段の値を保持する圧縮用使用辞書容
量保持手段と、 復号化の終了時の使用辞書容量を保持する復元用使用辞
書容量保持手段と、 復号化の終了時に圧縮用使用辞書容量保持手段と復元用
使用辞書容量保持手段の値の一致を判定する判定手段と
を備えたことを特徴とするデータ復元装置。 - 【請求項10】 請求項7〜9記載のデータ復元装置の
複数を組み合わせることにより構成したことを特徴とす
るデータ復元装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10280192A JPH05298061A (ja) | 1992-04-22 | 1992-04-22 | データ圧縮および復元方式ならびにその装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10280192A JPH05298061A (ja) | 1992-04-22 | 1992-04-22 | データ圧縮および復元方式ならびにその装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05298061A true JPH05298061A (ja) | 1993-11-12 |
Family
ID=14337180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10280192A Withdrawn JPH05298061A (ja) | 1992-04-22 | 1992-04-22 | データ圧縮および復元方式ならびにその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05298061A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011105463A1 (ja) * | 2010-02-23 | 2011-09-01 | 日本電気株式会社 | データ圧縮装置、データ圧縮方法およびプログラム記憶媒体 |
WO2020012631A1 (ja) | 2018-07-13 | 2020-01-16 | 株式会社ミクニ | 検出装置 |
-
1992
- 1992-04-22 JP JP10280192A patent/JPH05298061A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011105463A1 (ja) * | 2010-02-23 | 2011-09-01 | 日本電気株式会社 | データ圧縮装置、データ圧縮方法およびプログラム記憶媒体 |
WO2020012631A1 (ja) | 2018-07-13 | 2020-01-16 | 株式会社ミクニ | 検出装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05298061A (ja) | データ圧縮および復元方式ならびにその装置 | |
JP2957801B2 (ja) | データ圧縮方式およびその復元方式 | |
JP3038233B2 (ja) | データ圧縮及び復元装置 | |
JP3105598B2 (ja) | ユニバーサル符号を用いたデータ圧縮方式 | |
JPH0628149A (ja) | 複数種類データのデータ圧縮方法 | |
JP2693338B2 (ja) | データ圧縮・復元処理における誤り制御処理方式 | |
JPH05241778A (ja) | データ圧縮及び復元方式 | |
JP2952068B2 (ja) | データ圧縮及び復元方式 | |
JP2774350B2 (ja) | データ圧縮方法および圧縮データのデータ復元方法 | |
JP3117760B2 (ja) | データ復元方式 | |
JP2999587B2 (ja) | データ圧縮及び復元方式 | |
JPH06161705A (ja) | データ符号化方式及びデータ復元方式 | |
JP2952067B2 (ja) | データ圧縮方式 | |
JPH05252049A (ja) | データ圧縮処理方式及びデータ復元処理方式 | |
JP3038234B2 (ja) | データ圧縮装置の辞書検索方式 | |
JP3105330B2 (ja) | 画像データの圧縮復元方式 | |
JP3083329B2 (ja) | データ圧縮復元方式 | |
JP2999561B2 (ja) | データ圧縮及び復元装置 | |
JP3034016B2 (ja) | データ圧縮及び復元方法 | |
JP2825960B2 (ja) | データ圧縮方法及び復元方法 | |
JP4380052B2 (ja) | スライド辞書の故障検出方法及び故障検出装置 | |
JP3051501B2 (ja) | データ圧縮方法 | |
JPH05250137A (ja) | データ圧縮及び復元方式 | |
JPH05236284A (ja) | 画像データ圧縮復元方式 | |
JP3100206B2 (ja) | データ圧縮方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990706 |