(57)【特許請求の範囲】
【請求項１】
データを圧縮する方法であって、文字から構成されるデータ・ストリームで、文字列を、データ・ストリーム中の所与の距離に存在する他の文字列との相関に関してチェックし、各ケースで、対応する文字数と、それぞれの他の文字列中の対応する文字の位置とが圧縮データを構成し、
少なくとも１つの文字が相関チェックで異なることが可能であり、加えて、少なくとも１つの異なる文字を訂正するためのデータが圧縮データ中に挿入される方法。
【請求項２】
少なくとも１つの異なる文字の部分に関する情報項目も挿入される、請求項１に記載の方法。
【請求項３】
３つ以上の値を取ることができる文字を扱うとき、少なくとも１つの異なる文字の真の値も挿入される、請求項２に記載の方法。
【請求項４】
３つ以上の値を取ることができる文字を扱うとき、異なる文字の値から真の値を決定するための手順も挿入される、請求項２に記載の方法。
【請求項５】
２進文字を扱うとき、異なる文字が、その位置だけが挿入されることによってマークされる、請求項２に記載の方法。
【請求項６】
圧縮符号が、異なる文字の部分を符号化するために使用される、請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
長さｎおよび重みｅを有する２進ベクトルが、長さｎにわたって異なる文字のｅ位置を符号化するために使用され、特定の重みのすべての２進ベクトルが数えられる、請求項６に記載の方法。
【請求項８】
圧縮データが誤り訂正式に符号化され、冗長構成が加えられる、請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
誤り訂正符号がブロック符号である、請求項８に記載の方法。
【請求項１０】
誤り訂正符号が重畳符号である、請求項８に記載の方法。
【請求項１１】
誤り訂正符号がリード−ソロモン符号である、請求項９に記載の方法。
【請求項１２】
誤り訂正符号がハミング符号である、請求項９に記載の方法。
【請求項１３】
圧縮データの長さが８ビットの倍数である、請求項１乃至１２のいずれか１項に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字から構成されるデータ・ストリームにおいて、文字列を、データ・ストリーム中の所与の距離に存在する他の文字列との相関に関してチェックする、データを圧縮する方法に関し、各ケースにおいて、他の文字列のそれぞれにおいて相関する文字数と位置とが圧縮データを構成している。
【０００２】
【従来の技術】
データを効率的に伝送または格納することを可能にするために、データを圧縮する方法が用いられる。この方法に関連して、損失のない圧縮方法と、損失を有する圧縮方法とが存在する。無損失の方法は、圧縮データから元のデータを完全に構築することができるという特徴を有する。しかし、有損失の方法の場合、元のデータを完全に再構築することは保証されない。
【０００３】
それぞれのデータ量を縮小する目的を有する圧縮方法は、情報通信技術、例えばデジタル・テレビジョン、または電子通信で、様々な方式で使用されている。
【０００４】
圧縮方法はまた、データの暗号化に関連して使用され、ソース・テキストを暗号化する前に圧縮する。それ故に冗長度が低下するため、暗号解読がより難しくなる。
【０００５】
本願特許請求の範囲の独立請求項で定義される概念による方法は、Lempel-Ziv法と呼ばれる。この方法のうちの１つは、Ziv J.,Lempel A.の「A Universal Algorithm for Sequential Data Compression」（IEEE Transactions on Information Theory, Vol.23, No.3, 1997年５月，pp．337乃至343）により知られるようになった。
【０００６】
【発明が解決しようとする課題】
本発明の目的は、より高い圧縮率を有するデータ圧縮方法を規定することである。
【０００７】
【課題を解決するための手段】
本発明により、少なくとも１つの文字が相関チェックにおいて異なることが許容され、加えて、少なくとも１つの異なる文字を訂正するためのデータが圧縮データ中に挿入されることにより、この目的は達成される。本発明による方法では、この少なくとも１つの異なる文字の位置に関する情報の項目を追加で挿入することが好ましい。
【０００８】
本発明では、相関チェックでの「誤り」を許容することによって、相関する文字数が厳密なチェックを行う場合よりも平均的に多くなり、それによって、数および位置に関する情報を使用して、平均してより長い文字列を符号化できるので有利である。許容される異なる文字数は、圧縮するデータの特性に応じて選択することができる。
【０００９】
データ・ストリームを形成する各文字は、本発明による方法では異なるタイプの文字でよい。したがって、例えば、多くの値を取ることができる文字、即ち２進文字(binary character)が利用可能である。
【００１０】
本発明の有利な実施例では、３つ以上の値をとることができる文字を扱うとき、少なくとも１つの異なる文字の真の値も挿入され、または３つ以上の値をとることができる文字を扱うとき、異なる文字の値から真の値を決定するための手順も挿入される。
【００１１】
例えば、テキスト・データを圧縮(compress)するとき、この手順は、ワードまたはワードの一部を、同一ではあるが、例えば文の先頭に、小文字の代わりに大文字が出現するワードまたはワードの一部と相関するものと見なすものとすることができる。次いで真の値、例えば大文字”Ｄ”の代わりに、復元(decompress)において小文字ｄを変更する手順、即ち、この例においては、小文字を対応する大文字で置換する手順を圧縮データ中に挿入するだけでよい。
【００１２】
他の実施例は、２進文字を扱うとき、異なる文字が、その位置だけが挿入されることによってマークされるものである。
【００１３】
本発明による方法によって達成される圧縮利得を追加の情報によって可能な限り小さくするために、この方法のより一層の改良により、異なる文字の位置を符号化するために使用される圧縮符号が提供される。このより一層の改良は、長さｎおよび重みｅを有する２進ベクトルが長さｎにわたって異なる文字のｅ位置(e position)を符号化するために使用され、特定の重みのすべての２進ベクトルを数えるように設計することが好ましい。
【００１４】
本発明による方法を使用して圧縮されるデータに、伝送中または格納中にランダムに誤りが生じることを防止するために、本発明の方法はさらに、圧縮データが誤り訂正式に符号化され、冗長構成が加えられるように開発することができる。この状況では、誤り訂正符号はブロック符号または重畳符号でよい。これに関連して、適切なブロック符号には、リード−ソロモン符号およびハミング符号が含まれる。
【００１５】
本発明による方法では、圧縮データの長さは、８ビットの倍数となるように設計することが好ましい。これにより、他のデータ処理方法および適切な装置に容易に適合させることが可能となる。
【００１６】
本発明による方法は、プログラマブル装置（マイクロプロセッサ、マイクロコントローラ）および適切なプログラム、ならびに本発明による方法に適合されたハードウェアを用いて実施することができる。
【００１７】
本発明の例示的実施例を、いくつかの図に示し、以下の説明でより詳細に説明する。
【００１８】
【発明の詳細な記述】
Lempel-Ziv法と本発明による方法のどちらでも、圧縮すべきデータは、図面に記載されてるように、部分１、２から構成されるシフト・レジスタ内に、矢印の方向に書き込まれる、より正確には、部分２に最初に書き込まれる。部分１は、適切な初期値で占有される。この目的で、例えば部分１に位置するすべての文字の初期値が０に等しいと仮定する。Lempel-Ziv法では、次いで、部分２の先頭から始まる文字列が既に部分１内に存在しているかどうかがチェックされる。既に部分１内に存在している場合、文字列が始まる部分１内の位置が符号化される。さらに、訂正文字の数ｌまたは訂正後シーケンスの長さが圧縮データ３内に挿入される。最後に、部分１内に存在していない、部分２の先頭から始まるシーケンスの第１文字が、いわゆる「イノベイティブ・シンボル(innovative symbol)」ｉとして追加される。イノベイティブ・シンボルｉにより、部分２内で始まるシーケンスが部分１内に現れない場合に、この方法の機能が保証される。位置ｐ、長さｌ、およびイノベイティブ・シンボルｉは、コード・ワード３（圧縮データ）を形成し、格納または伝送することができる。
【００１９】
本発明による方法では、圧縮すべきデータも、２つの部分１、２から構成されるシフト・レジスタ内に書き込まれる。しかし、後続のチェックでは、図２で斜線を付けて示す、２つの異なる文字が許容される。したがって、相関していると見なされる文字数は、図１の周知の方法の例よりも多い。やはり、保存または伝送すべきコード・ワード３'は、相関していると見なされる文字の位置ｐおよび数ｌを含む。加えて、異なる文字の位置ｐａおよび異なる文字の値ｗｗが、コード・ワード内に供給される。
【００２０】
復元中は、ここで説明したステップが逆に実施される。コード・ワード中に含まれる情報項目ｐ，ｌを使用して、既に復元された、時間的に先行するデータから文字列が抽出され、復元データに加えられる。本発明による方法による復元の間、これらのステップも実施される。加えて、コード・ワード３'内に含まれる情報項目ｐａおよびｗｗを用いて、異なる文字が訂正される。
【００２１】
図３による例示的な実施例では、各文字は２進と仮定され、その結果、誤り位置だけが、格納または伝送すべきコード・ワード３"内に含まれる。誤り位置により、これらの位置の文字を反転することによって真の値を回復することが可能となる。
【００２２】
以下では誤りと称する異なる文字のｅ位置を長さｎにわたって符号化するとき、長さｎおよび重みｅを有する２進ベクトルを使用するのが最良である。符号化中、特定の重みのすべての２進ベクトルを数える効率的な方法を使用することが可能である。例えば、Cover，Tの「Enumerative Source Coding」（IEEE Transaction on Information Theory，Vol．19，No．1，1973年１月，pp．73〜77）を参照されたい。このようにして、位置が最適に、すなわち最小の数のビットを用いて符号化される。
【００２３】
【外１】
0004002155.tif 000002
【００２４】
議論されるアルファベットが２進、すなわち｛０，１｝に等しい場合、誤り値の指定はもちろん１に等しく、不要にすることができる。２進の場合を図３に示す。この２進の場合では、様々なケースを見ることができる。第１に、議論されるデータ・ストリームのアルファベットは２進とすることができる。第２に、効率化のために、非２進データ・ストリームを見ることも可能であり、格納すべきコード・ワード中の誤り位置だけを２進符号化することも可能である。
【００２５】
図４に、冗長構成Ｒを有する、格納すべきコード・ワードの拡張を示す。冗長構成Ｒは、コード・ワード４の伝送または格納中の誤り保護のために使用される。誤り訂正用のいわゆる「ブロック符号」の使用法が表されている。具体的には、リード−ソロモン符号、ハミング符号、および場合によってはＢＣＨ符号がここでは対象となる。しかし、いわゆる「重畳符号」も考慮することができる。ここで説明した方法は、個々の量を最適化することができるという利点を有する。具体的には、複数の８ビット（８ビット＝１バイト）など、実際に好都合なフォーマットを全コード・ワード用の格納サイズとして選択することができるようにして最適化することができる。
【図面の簡単な説明】
【図１】Ｌｅｍｐｅｌ−Ｚｉｖ法の概略図である。
【図２】本発明による方法の例示的実施例の概略図である。
【図３】別の例示的実施例を示す図である。
【図４】後続の誤り訂正符号化の例示的実施例を示す図である。
【図１】
0004002155.tif 000003
【図２】
0004002155.tif 000004
【図３】
0004002155.tif 000005
【図４】
0004002155.tif 000006