JPH09153818A - データ圧縮・伸長装置 - Google Patents

データ圧縮・伸長装置

Info

Publication number
JPH09153818A
JPH09153818A JP8105506A JP10550696A JPH09153818A JP H09153818 A JPH09153818 A JP H09153818A JP 8105506 A JP8105506 A JP 8105506A JP 10550696 A JP10550696 A JP 10550696A JP H09153818 A JPH09153818 A JP H09153818A
Authority
JP
Japan
Prior art keywords
data
character string
dictionary
pointer
length
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
JP8105506A
Other languages
English (en)
Other versions
JP3273119B2 (ja
Inventor
Takaaki Hayashi
隆昭 林
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.)
Kyocera Corp
Original Assignee
Kyocera 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 Kyocera Corp filed Critical Kyocera Corp
Priority to JP10550696A priority Critical patent/JP3273119B2/ja
Priority to US08/646,516 priority patent/US5841376A/en
Priority to DE19622045A priority patent/DE19622045C2/de
Publication of JPH09153818A publication Critical patent/JPH09153818A/ja
Application granted granted Critical
Publication of JP3273119B2 publication Critical patent/JP3273119B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

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

Abstract

(57)【要約】 【課題】 本発明は、Ziv-Lempelのデータ圧縮伸長方式
に関し、特に2値画像等の大域的な構造を有するデータ
に対して高速かつ高圧縮を実現する。 【解決手段】 本発明は、最長一致文字列探索のための
木構造の辞書と最長一致文字列探索を行う最長一致文字
列探索手段と探索結果を符号化出力する符号化手段と辞
書に新たなエントリを登録する辞書更新手段とから構成
されるデータ圧縮方式であり、特に探索木の各エントリ
に無限長の文字列を格納することにより、最長一致文字
列探索の際の一致長の有限性に関する制限を取り除く構
成を有している。また、本発明は文字列のコピーによ
り、圧縮符号を簡単に元のデータに復元するために、復
号化手段、データ複写手段、及び変換表更新手段とから
構成されるデータ伸長方式である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ユニバーサル符号
により種々のデータを無損失で圧縮及び伸長することを
可能にするデータ圧縮伸長装置に関するものである。特
に、2値画像データ等の同一データパターンの連続が顕
著に現われるデータに対して有効であり、かつ演算コス
トの少ない高速なデータ圧縮伸長装置を実現するもので
ある。
【0002】
【従来の技術】近年、CPU性能の向上に伴い計算機で
取り扱われるテキストファイルやオブジェクトファイル
を圧縮して外部記憶媒体に格納するためのデータ圧縮技
術が使われ始めている。そこで利用される圧縮方式は、
統計的性質が未知であるさまざまなデータに対して良好
なデータ圧縮が行えなければならない。そのため、我々
が望む圧縮方式はデータの統計的性質に依存しない、い
わゆるユニバーサル符号である、ことが前提となる。ユ
ニバーサル符号の代表的な方式として、Ziv-Lempel(ZL)
の符号化方式がある。ZL符号化方式は、辞書に基づいた
データ圧縮伸長アルゴリズムである。ここで、文字とは
圧縮対象である入力データの個々のワード単位のことで
あり、文字列とは文字が任意の数だけ連なったものであ
る。ZL符号化方式の圧縮処理は、既に符号化されたデー
タの履歴を辞書に登録し、辞書に登録された文字列の中
から符号化するデータと最長一致する文字列を探索し、
探索の結果見い出された文字列をそれより短縮された符
号に置き換えることにより、データ圧縮を達成する。ま
た伸長処理は、圧縮処理と同様の手続きにより作成され
た辞書に登録されている文字列の中から、圧縮された符
号に基づいて一意的に特定の文字列を指定し、特定され
た文字列を復元データとすることにより、データ伸長を
達成する。また、圧縮及び伸長処理で利用される辞書は
処理の経過とともに更新され、充分な時間が経過したと
き、処理データに対して最適な辞書になるように構成さ
れる。すなわち、ZL符号化方式を現実に実行するために
は、データの履歴を格納するための辞書をいかにして構
築するかということが最も重要な問題である。そして、
辞書を構築するための基本的な2 つの概念が既にZiv 及
びLempelにより提案されている。それらは、それぞれの
概念が発表された年号により、LZ77方式("A Universal
Algorithm for Sequential Data Compression" J Ziv,A
Lempel,1977 参照) 及びLZ78方式("Compression of I
ndivisual Sequencesvia Variable-Rate Coding" J Zi
v,A Lempel,1978 参照) と呼ばれている。
【0003】LZ77方式は、有限固定長の参照バッファを
用意し、その中に符号化した文字列を順次記憶すること
により、その参照バッファを辞書として利用する。例え
ば、図14(a)に示すように、記憶サイズが8の参照
バッファ1400があり、記憶レジスタの1402の中
に既に符号化処理の終わったデータ文字列ababcabaが1
文字ずつ記憶されていて、それぞれのレジスタにはアド
レス1403が割り振られているものとする。また、こ
れから符号化するデータ文字列babcb がさらに続いてい
るものとする。ここで、a 、b 、c はデータを構成する
文字である。
【0004】ZL符号化方式における最も簡単な辞書の概
念は”インデックス- 文字列”の表により表現すること
がである。すなわち、辞書は、エントリを表わすインデ
ックスとそれに対応する文字列を記憶するエントリの集
合により構成することができる。参照バッファ1400
をインデックス- 文字列表現で表わすと辞書1401に
なる。辞書1401のインデックスは参照バッファ14
00の先頭からの相対アドレス値1403と等価で、文
字列はアドレスが指す文字から始まる参照バッファの文
字列と等価である。LZ77方式で特徴的なことは、各エン
トリに登録されている文字列が論理的に無限長であると
いうことである。Ziv 及びLempelが開示した論文やその
後開示された様々な改良方式の多くは、辞書に登録する
文字列を有限長で打ち切るが、それはLZ77方式の本質的
制約ではなく、単に処理上の簡便性を目指した結果にす
ぎない。
【0005】LZ77方式の本質的制約は参照バッファサイ
ズが固定長であるということである。この制約は以下の
理由により生じる。ZL符号化方式は過去に符号化したデ
ータ文字列の中から最長一致文字列探索を行う。そのと
き、有限の時間で処理を行うためには探索範囲の有限性
が必要条件であることは明らかである。LZ77方式は、固
定長参照バッファを使って探索文字列数を制限すること
により、その条件を満足するものである。LZ77方式は、
固定長参照バッファを利用することにより探索範囲を制
限するが、その探索範囲の中を網羅的に探索することが
できる。つまり、参照バッファ1400と辞書1401
の関係から明らかなように、辞書1401の中には参照
バッファ1400に含まれている文字列が全て登録され
ている。よって、参照バッファ1400で限定される探
索範囲の文字列について、LZ77方式は網羅的に探索を行
っていることになる。結局、LZ77方式とは、固定の探索
範囲を参照バッファにより確保し、その範囲について網
羅的に文字列の一致を検査する方式であるといえる。LZ
77方式の動作は以下のように行われる。入力データ文字
列1404と辞書1401に登録されたそれぞれの文字
列と比較することにより、入力データ文字列1404と
最長一致するのは辞書のインデックス1のエントリに登
録された文字列であることが分かる。そのときの最長一
致文字列はbabcであり、一致長は4である。LZ77方式で
は辞書の登録文字列長が不確定であり、辞書のインデッ
クス値を指定しただけでは文字列が確定しない。そのた
め、インデックス値1とともに一致長4を符号化するこ
とにより、最長一致文字列babcを確定させて、伸長側で
一意的に文字列を復元できるようにする。ZL符号は符号
化を行う度に辞書を更新する。辞書1401の更新のた
めに符号化した文字列を参照バッファ1400に挿入す
る。参照バッファサイズは一定なので、更新のために挿
入した文字数と同数の参照バッファ1400の中の最も
古い文字を廃棄する。図14の例では4文字符号化され
たので、1406が示す最も古い文字列ababが参照バッ
ファ1400から廃棄される。そして、1405が示す
ように符号化された4文字babcを参照バッファ1400
に挿入する。この例では文字列を全体に4文字シフトさ
せることにより、挿入と廃棄を行っている。辞書140
1に着目すると、4つのエントリが削除され、新たに4
つのエントリ1407が追加され、全体として8個のエ
ントリが保存される。このように、LZ77方式の更新処理
では1回の処理により複数の辞書のエントリが更新され
ることが特徴である。LZ77方式の辞書は、実際にはイン
デックス- 文字列表現の形式で構成されてはいない。実
際の辞書は、より効率的に一致文字列の探索や辞書の更
新を行うことができるような形式で構成されている。例
えば、Data Compression System (USP 4,701,745 1986)
では、ハッシュ関数を利用して参照バッファ内の一致文
字列候補を検索する。また、Better OPM/L Text Compre
ssion (IEEE Trans. vol COM-34, No 12 ,DEC 1986) で
は2 分木アルゴリズムにより辞書を構成している。ま
た、Textual Substitution Data Compression with Fin
ite Length Search Tree (USP4,906,991 1988) ではPat
ricia木により辞書を構成している。これらの従来技術
は全てLZ77方式における辞書を効率的に構成し、圧縮率
の向上と一致文字列の検索の高速化を目指したものであ
る。さて、一方のLZ78方式はTRIE構造の探索木を辞書と
して利用し、符号化したデータ文字列を探索木に登録す
ることにより、辞書を学習させていく。LZ78方式はWelc
h により改良された("A Technique for High Performan
ce Data Compression", IEEE Computer , JUN 1984) 。
それはLZW方式と呼ばれ、現在一般的に広く利用されて
いる。図15(a)は、入力データ文字列ababcabababc
b を最も基本的なLZW 方式により、7文字目まで処理し
た後の探索木とインデックス- 文字列表現で表わした辞
書を示している。探索木の節は辞書のエントリと等価で
あり、節の肩に付されている番号はエントリのインデッ
クスを示す。辞書の各エントリに登録されている文字列
は、探索木の根から各節への経路上にある節に記憶され
ている文字を連結したものと等価になる。
【0006】LZW 方式あるいはLZ78方式の最大の特徴
は、探索木の各節が1文字を記憶していることである。
このことはLZW あるいはLZ78方式にとって本質的に重要
なことである。なぜならば、LZ78方式を起源とする全て
の方式は、節を指定することにより一意的に文字列を特
定することができねばならないからである。このこと
は、LZ78方式が辞書のエントリのインデックスを符号化
するだけでよいことを示し、インデックスと一致長を符
号化しなければならないLZ77方式に対する利点となって
いる。
【0007】LZ78方式はインデックスを指定するだけで
一意的に文字列が定まる。そのため、辞書に登録される
文字列は有限長でなければならないという制約が生じる
ことは明らかである。つまり、LZ78方式であることの必
要条件は、辞書に登録されている文字列が全て有限長で
あることである。図15(a)の辞書を使って、8文字
目以降の入力データ文字列ababcbの処理を行う。入力デ
ータ文字列と最長一致する文字列はインデックス7の文
字列aba なので、インデックス値7を符号化する。辞書
の更新は、図15(b)に示すように、新しい8番目の
エントリを辞書に付け加えられることにより達成され
る。辞書の新しいエントリには、1500に示すよう
に、符号化した文字列aba に次の入力文字bを連結した
文字列ababが登録される。一方、辞書更新により探索木
は、1501に示すように、インデックス7の節から新
たな節が生じ、文字bがそこに記憶される。このよう
に、LZ78方式の辞書更新では1回の処理につき1個の辞
書エントリしか更新されない。一般にLZ78方式は、辞書
更新処理がLZ77方式より簡潔なため、高速に圧縮処理が
行うことができる。LZ78方式もLZ77方式のときと同様
に、探索範囲の制限が必要である。LZ77方式が参照バッ
ファを固定長化という制限を持つのに対して、LZ78方式
は探索木の節の最大数を設定することにより探索範囲を
制限する。節が最大数に飽和したとき、例えば、Data C
ompression Method (US 4,814,746 , 1986) のように、
辞書を完全に初期化したり、LRU の手法により新しい節
を1つ登録する代りに古い節を1つ廃棄したりする。こ
のため、LZ78方式は文字列の参照範囲はLZ77方式のよう
に固定化されていない。
【0008】
【発明が解決しようとする課題】LZ77及びLZ78方式は、
ユニバーサル符号として簡単な構成で良好な圧縮性能を
示すために広く利用されている。しかしながら、2値画
像データのように、例えば数k バイトの同一データの連
続(ラン)が現われたり、あるいは数k バイト毎に相関
性の高いデータパターンが現われたりするような、巨大
なデータ構造を有するデータを高速に圧縮したいという
欲求があるとき、LZ77及びLZ78方式は以下のような問題
が生じる。まず、LZ78方式は辞書登録文字列が有限長で
あるという制約が、特に圧縮処理の初期段階で問題とな
る。それは、圧縮処理の初期段階では、辞書に短い文字
列しか登録されていないため、長大なランがデータ中に
現われてもそれを効果的に圧縮することができないとい
うことである。ラン以外にも数百〜数千バイトの一致が
頻繁に出現するデータに対して、LZ78方式のように辞書
登録文字列長に本質的な制約が存在する圧縮方式は極め
て不利である。また、LZ77方式は辞書登録文字列長の制
約がなく長いデータパターンを一括に符号化することも
可能である。しかし、一般にLZ77方式は最長一致文字列
探索や参照バッファの更新がLZ78方式に比較して非常に
複雑なため処理コストが大きくなるという問題がある。
また、LZ77方式の処理量は参照バッファのサイズに比例
して増加するため、参照バッファのサイズは現状では1
k 〜2k バイト程度しかとれない。そのため、例えば網
点画像のように、数k バイトの単位で相関性のあるデー
タパターンが現われるデータに対して、LZ77方式は問題
がある。本発明は、以上の問題点を考慮してなされたも
のであり、LZ78方式の辞書登録文字列長に関する制約が
なく、また処理が簡潔であるデータ圧縮伸長方式を提供
することである。
【0009】
【課題を解決するための手段】図1は本発明のデータ圧
縮装置の基本構成図である。本発明のデータ圧縮装置
は、データメモリ104に記憶されている入力データを
よりデータ量の少ない圧縮符号に変換し、圧縮符号をコ
ードメモリ105へ格納するものである。図1の中で実
線で表わされる矢印は処理のフローを示し、点線で表わ
される矢印はデータの移動を示している。本発明のデー
タ圧縮装置は、データメモリ104に記憶された入力デ
ータの文字列を示すポインタを記憶するための複数のエ
ントリを有する辞書100を有し、また、データ圧縮の
ために3つの手続きを行うための手段を有する。第1の
手段は最長一致文字列探索手段101であり、符号化す
る文字列と辞書100に登録されたポインタが示す文字
列との比較を行い、辞書100に登録されている文字列
の中で符号化する文字列と最長一致する文字列を探索す
る。第2の手段は符号化手段102であり、最長一致し
た文字列へのポインタを記憶する辞書100のエントリ
のインデックスと、最長一致した長さである一致長を圧
縮符号化し、圧縮符号をコードメモリ105へ出力す
る。第3の手段は辞書更新手段103であり、符号化手
段102により符号化した文字列の先頭文字に対応する
データメモリへのポインタを新たに辞書100に付け加
える。辞書100は、辞書100に記憶されているポイ
ンタを記憶するための主節と、探索木の中で生じる分岐
を表わすための分岐節を有する探索木により表現するこ
とができる。辞書100の各エントリは、辞書100に
登録されている文字列に対応する前記データメモリ10
4へのポインタと、探索木の根から分岐が生じた地点ま
での経路上にある文字の文字数(オフセット数)と、主
節が記憶している文字列の中で最初に生じる分岐節への
リンクを表わすためのポインタと、分岐節から次に生じ
る分岐節へのリンクを表わすためのポインタから構成さ
れている。図2は本発明のデータ伸長装置の基本構成図
である。本発明のデータ伸長装置は、コードメモリ20
5に記憶されている圧縮符号を元のデータに伸長復元
し、伸長データをデータメモリ204へ格納するもので
ある。図1と同様に図2の中で実線で表わされる矢印は
処理のフローを示し、点線で表わされる矢印はデータの
移動を示している。
【0010】本発明のデータ伸長装置は、それぞれが、
インデックスとデータメモリ204に記憶された復元さ
れた文字列を示すポインタを対応づけるエントリを有す
る変換表200を有し、また、データ伸長のために3つ
の得続きを行うための手段を有する。第1の手段は復号
化手段201であり、コードメモリ205から入力され
た圧縮符号により辞書100の中のある一つのエントリ
に対応するインデックスと、最長一致文字列の一致長を
求める。第2の手段はデータ複写手段202であり、変
換表200にインデックスを与えることにより得られ
た、データメモリ204に含まれる文字列へのポインタ
と最長一致文字列の一致長により確定する文字列をデー
タメモリ204へコピーすることにより伸長データを得
る。第3の手段は変換表更新手段203であり、復号化
手段201により得られたインデックスとデータ複写手
段202によりコピーされた文字列に対するデータメモ
リ204へのポインタを対応づけ、変換表200に登録
することにより、変換表200を更新する。
【0011】
【作用】本発明のデータ圧縮装置によれば、辞書の各エ
ントリはデータメモリ104へのポインタを記憶してお
り、このことは論理的には無限長の文字列を記憶してい
ることと等価である。そのため、圧縮を行うデータが数
百〜数千バイトの大きな反復が頻繁に現われるデータ構
造を有するときでも、高圧縮率を達成することができ
る。また、辞書更新手段103において、辞書100の
更新は符号化手段102により符号化した文字列の先頭
文字に対応するデータメモリ104へのポインタを新た
に辞書100に付け加えるだけで済む。すなわち、1回
の更新処理で1つの辞書エントリのみ変更すればよいの
で、圧縮処理は高速に行うことができる。また、本発明
のデータ伸長装置によれば、変換表200はインデック
スとデータメモリ200上の文字列へのポインタとの対
応が記述されており、変換表200に基づいてデータ複
写手段202が文字列のコピーを行うだけデータの復元
が可能であるため、伸長処理模高速に行うことが可能に
なる。
【0012】
【発明の実施の形態】
A)辞書の構成 最初に辞書100の構成について説明する。辞書100
はLZ78方式で用いられる辞書と同様にその構成を概念的
に木によって表わすことができる。ただし、その両者で
最も異なる点は、LZ78方式が図15で示したように各ノ
ードに一つの文字が格納されているのに対して、本発明
の辞書100は、各ノードに一つの文字列が格納されて
いる点にある。図3(a)の入力データ文字列300に
対する本発明の探索木の概念図を図3(b)に示す。探
索木は主節、分岐節、初期登録節を持っている。主節
は、図中の302が示すもので、論理的には無限長の文
字列を記憶している。主節の肩に付されている番号は辞
書のエントリのインデックス値と同じものである。分岐
節は、図中の303が示すもので、主節に記憶されてい
る文字列のどこで分岐が起きたかを示すものである。分
岐節は主節が生成されるとき、主節と対になって必ず生
成される。初期登録節は、図中の304が示すもので、
予め入力データ中に現われる全ての文字を登録したもの
である。初期登録節をもつことにより、必ず1文字以上
一致する文字列を探索することができるので、符号形式
がインデックスと一致長の組により統一的に表現でき
る。初期登録節を持たない探索木の構成をとることは可
能である。しかし、その場合最長一致文字列探索の結
果、一致文字列が存在する保証がないため、一致文字列
が存在したときの符号形式と一致文字列が存在しないと
きの符号形式を用意しなければならない。各主節に記憶
されている文字列は、探索木の根から各主節への経路上
にある文字列を辿ることにより得られる。図3(b)の
探索木と等価な辞書をインデックス- 文字列表現で表わ
したものが図3(c)である。図3(c)から明らかな
ように、本発明の辞書は、初期登録した文字以外の全て
のエントリは論理的に無限長の文字列を記憶している。
実際に無限長の文字列を記憶することは物理的に不可能
である。そのため、各主節に直接文字列を記憶すること
はせずに、文字列へのポインタ301を記憶することに
なる。より現実的な探索木の模式図を図3(d)に示
す。ここで、主節は305に示す四角囲み、分岐節は3
06に示す2重四角囲み、初期登録節は307に示す丸
囲みで表わし、主節から次の分岐節へのリンクを示す枝
は308に示す実線矢印、分岐節から次の分岐節へのリ
ンクを示す枝は309に示す点線矢印で表わす。各主節
には文字列そのものではなく、文字列に対応するポイン
タ301の値が記憶されている。また、各分岐節には文
字列中のどこで分岐が起きたかを示すために、探索木の
根から分岐が生じた地点までの文字数が記憶されてい
る。また、NILはその先に分岐節が存在しないことを
示す終端記号である。図3(d)の模式図から、本発明
の探索木は4つの要素の組から構成されることがわか
る。よって、辞書は、物理的なメモリの中では、4つの
変数により表わされるエントリの配列で構成されてい
る。辞書の配列による表現を図3(e)に示す。ここ
で、4つの変数に対して、以下のように名付ける。
【0013】 ptr:主節に記憶される文字列を示すポインタ off:探索木の根から分岐節までの文字数(オフセッ
ト数) mnd:主節から次の分岐節への枝 bnd:分岐節から次の分岐節への枝 以上のように、本発明の辞書について、その概念的な構
成から物理的なメモリに展開される実際的な構成まで説
明した。図3(b)から図3(e)までの辞書は表現形
式が異なるが全て本質的に等価である。
【0014】ここで、本発明の圧縮処理がどのように行
われるのかについて、探索木の成長に着目して具体例に
より説明する。例として、入力データ文字列ababcababa
bcbaaを用いる。図11(a)は探索木の初期状態であ
り、初期登録説のみで構成されている。データポインタ
は入力データの先頭にセットされており、その値は0と
しておく。dptr=0からはじまる入力データ文字列
に対する最長一致文字列はaであり、そのインデックス
は0である。また、最長一致文字列の一致長は1であ
る。よって、(0,1)の組が符号化される。探索木に
はインデックス3のエントリが追加され、その主節に
は、ここで符号化した文字列、すなわちdptr=0か
ら始まる文字列とそれ以降続く無限長の文字列abab
c…が記憶される。データポインタの値は符号化した文
字数1だけ増加させ、dptr=1とする。このときの
探索木の状態を図11(b)に示す。次に、再び最長一
致文字列探索を行い、dptr=1から始まる入力デー
タ文字列に対する最長一致文字列bを求める。このとき
のインデックスは1であり、最長一致文字列長は1であ
る。よって、(1,1)の組が符号化される。そして、
探索木にはインデックス4のエントリが追加され、その
主節には、dptr=1から始まる無限長の文字列ba
bc…が記憶される。データポインタの値は符号化した
文字数1だけ増加させ、dptr=2とする。このとき
の探索木の状態を図11(c)に示す。次に、dptr
=2から始まる入力データ文字列abca…に対する最
長一致文字列探索を行う。すると、その文字列はインデ
ックス3に登録した文字列ababc…と最長一致し、
最長一致文字列長は2である。よって、(3,2)の組
が符号化される。探索木の分岐は最長一致文字列abと
次の文字の間で生じる。すなわち、インデックス5のエ
ントリが追加され、その分岐節はabと次の文字aの間
に設置され、その主節にはdptr=2から始まる無限
長の文字列abca…が記憶される。データポインタの
値は符号化した文字数2だけ増加させ、dptr=4と
する。このときの探索木の状態を図11(d)に示す。
同様の処理を続けると、dptr=4から始まる入力デ
ータ文字列に対する最長一致文字列はcであり、(2,
1)の組が符号化される。そして、探索木には図11
(e)のようにインデックス6のエントリが追加され
る。さらに処理を続けると、dptr=5から始まる入
力データ文字列に対する最長一致文字列はababであ
り、(3,4)の組が符号化される。そして、探索木に
は図11(f)のようにインデックス7のエントリが追
加される。さらに、同様の処理を続けることにより、探
索木はさらに成長し、入力データも圧縮される。 B)圧縮処理のフロー 圧縮処理の中には既に述べたように3つの処理がある。
それらについて詳しく説明をする。それらの処理を説明
する図面の中で、実線の矢印は処理のフローを示し、点
線の矢印はデータの移動を示す。また、データの移動を
示す点線の矢印の上に付されている記号は、辞書10
0、データメモリ104、コードメモリ105の各メモ
リのデータを参照するためのポインタを表わしている。
ここで、記号の定義をしておく。
【0015】 データポインタdptr :データメモリ104中の入
力データの読み込み位置を指すポインタ 探索用ポインタsptr :一致文字列探索を行う文字
列を示すポインタ コードポインタcptr :コードメモリ105中の圧
縮データの書き込み位置を示すポインタ インデックスID :辞書のエントリのインデッ
クス エントリカウンタecnt:辞書に登録されているエン
トリ数 最初に、図4は最長一致文字列探索処手段101の処理
内容の詳細を表わしたものである。まず、ステップ40
0で符号化する入力データの先頭の文字をデータメモリ
から読み込む。ステップ401で先頭文字から初期登録
節のIDを得る。辞書の初期登録節のIDは入力データ
に現われる文字と完全に1対1に対応しているので、そ
の関係があらかじめテーブル化されていれば、入力デー
タの先頭文字を入力することにより初期登録節のIDを
得ることができる。また、一般的に入力データが00〜ff
のバイトデータ等の値を持つならば、入力データの値そ
のものをIDと等価になるように辞書の初期登録節を構
成しておくことにより、テーブル変換の操作すら不要に
なる。ステップ401により、初期登録節のIDが確定
したところで実質的な処理の開始となる。ステップ40
2は現在のIDが示す節から次の節へ移動するために、
次の分岐節のIDを求める。そのため、現在のIDをも
とに辞書100を参照し、現在のIDが示すエントリの
bndまたはmndの値から次の分岐節のIDを求め
る。ステップ403はステップ402で得られたIDを
調べ、その値が終端符号NILならば、これ以上は探索
すべき文字列は存在しないので、処理を終了する。ステ
ップ402で得られたIDが終端符号NIL以外のもの
ならば、そのIDが示すエントリに登録されている文字
列を用いて一致文字列探索が行われる。ステップ404
はIDの値をもとに辞書100を参照し、sptrを求
める。sptrはIDが指す辞書のエントリに記憶され
ている文字列のポインタptrと等価である。ステップ
405はsptrとdptrがそれぞれ示すデータメモ
リ104の中の文字列を読み出して、それぞれの文字列
を比較する。そして、比較の結果一致した文字数を一致
長とする。ステップ405が終了したら、ステップ40
2へ戻り、再びステップ402からステップ405の処
理を繰り返す。この処理ループはステップ403におい
て終端符号NILが現われるまで続けられる。そして、
最終的に得られた一致長が最長一致文字列長MLENに
なる。次に、図5は符号化手段102の処理内容の詳細
を表わしたものである。まず、ステップ500は、最長
一致文字列探索手段101により求められた最長一致文
字列が登録されている辞書のエントリのIDと最長一致
文字列長MLENをあらかじめ決められた符号形式に従
って符号化する。そして、符号化により圧縮された符号
をコードメモリ105へ書き込む。ステップ501は、
まだ処理すべき入力データがデータメモリ104中に残
っているかを判断し、残っていなければ圧縮処理を終了
する(EXIT)。まだ処理データが残っていれば、符
号化処理を終了し、次の処理へ移る。以上で述べたよう
に、符号化はインデックスIDと最長一致文字列長ML
ENの組に対して行われる。ここで、MLENの符号化
の方法が2種類あることに注意する必要がある。1つは
MLENを探索木の根から計数する方法であり、もう1
つは分岐節から計数する方法である。例えば、探索木が
図11(f)の状態で最長一致文字列探索を行うとす
る。データポインタdptr=9から始まる入力データ
文字列に対する最長一致文字列はabcであり、その文
字列が記憶されているエントリのインデックスは5であ
る。最長一致文字列長は根から計数する方法によれば図
13の1300に示すように3であるから、符号は
(5,3)の組で表わされる。また、インデックス5の
分岐節から計数する方法によれば図13の1301に示
すように1であるから、符号は(5,1)の組で表わさ
れる。この2つの方法の違いは、分岐節から計数する方
法が根から計数する方法に比べて一致長の値が0近傍に
集中するため、エントロピーが減少するので圧縮率が高
くなる。しかし、後で説明する伸長処理において、分岐
節から計数する方法はから計数する方法より多くのメモ
リを必要とする。次に、図6は辞書更新手段103の処
理内容の詳細を表わしたものである。まず、ステップ6
00は、辞書100に登録されているエントリ数が所定
の最大値(最大エントリ数)に達したかを判断する。本
発明の探索木もまた、LZ78方式の探索木と同様に無限に
成長し、節を増加させることはできないので、このよう
に探索木の節数(すなわち、辞書のエントリ数)を制限
しなければならない。最大エントリ数は、メモリコスト
と圧縮率のトレードオフにより定められる。すなわち、
最大エントリ数が大きければ、参照しうる文字列数が増
加するので圧縮率も一般的に良好になるが、辞書100
に要するメモリ量が増加するのでメモリコストも増加す
る。ステップ600の結果、まだ辞書にエントリを追加
登録する余裕が残っているときはステップ601へ進
み、新たなエントリに値を書き込む。辞書にエントリを
追加することは、探索木に新たな分岐が生じることと等
価である。辞書更新の様子は探索木において分岐が生じ
る位置により若干異なる。それは、分岐が主節分岐節の
間で生じるか、分岐節と分岐節の間で生じるかによっ
て、親エントリとのリンクの形態が変わるためである。
例えば、図12(a)に示す探索木の主節1200と分
岐節1201の間で分岐が生じ、新しいエントリ120
3が追加される場合を図12(b)に示す。エントリ1
203のインデックスはecntである。主節1204
は、符号化した入力データの文字列とその後に続く無限
長の文字列を連結することにより得られる文字列を示す
ポインタを記憶する。そのポインタは符号化した入力デ
ータの文字列を示すポインタdptrのことであるか
ら、エントリ1203の主節1204の中に符号化した
文字列を示すポインタであるdptrを書き込む。エン
トリ1203の分岐節1205に書き込むoffは分岐
が生じた位置までの文字数であるから、それは最長一致
文字列長MLENのことである。エントリ1203の枝
1206は、新しく登録された主節1204の中に分岐
が存在しないので、終端符号NILが書き込まれる。エ
ントリ1203の枝1207は、次の分岐節へのリンク
を示すインデックスが書き込まれる。また、エントリ1
203の親エントリの主節1200から出る枝mnd
は、挿入されたエントリ1203のインデックスの値e
cntに変更される。次に、図12(a)に示す探索木
の分岐節1201と分岐節1202の間で分岐が生じ、
新しいエントリ1208が追加される場合を図12
(c)に示す。エントリ1208の各構成要素1209
〜1212はエントリ1203のときと同様に更新され
る。図12(b)と図12(c)が異なる点は、新しい
エントリが親エントリの分岐節から派生したか主節から
派生したかの違いである。そのため、図12(b)では
親エントリのmndが変更されたが、図12(c)では
親エントリのbndが変更される。ステップ601で
は、辞書のエントリの追加と同時にdptr、ecnt
の値も更新する。dptrの値は符号化を行った最長一
致文字列の文字数MLENだけ増加させ、ecntの値
は追加したエントリの数、すなわち1だけ増加させる。
ステップ600の判定でエントリ数が最大であったなら
ば、ステップ602へ進み、辞書は初期登録節を除いて
全て消去することにより初期化される。 C )変換表の構成 変換表200は伸長処理における辞書の役割をもつ。変
換表200は、一致長MLENの符号化方法の違いによ
り、異なる構成をとることができる。図7(a)は探索
木の根から一致長を計数したときの圧縮処理に対する変
換表であり、辞書のエントリのインデックスIDとデー
タメモリに記憶されている文字列へのポインタの対応が
記述されている。それに対して、図7(b)は探索木の
分岐節から一致長を計数したときの圧縮処理に対する変
換表であり、IDとptr及びoffの対応が記述され
ている。すなわち、前者は符号化された一致長がコピー
すべき文字数なので、コピー元の文字列のポインタであ
るptrだけ変換表200から求めることができればよ
い。しかし、後者は符号化された一致長に根から分岐節
までの文字数を加算しなければ、コピーすべき文字数が
得られないので、オフセット数offの値が必要にな
る。 D)伸長処理のフロー 伸長処理の中には既に述べたように3つの処理がある。
それらについて詳しく説明をする。それらの処理を説明
する図面の中で、実線の矢印は処理のフローを示し、点
線の矢印はデータの移動を示す。また、データの移動を
示す点線の矢印の上に付されている記号は、変換表20
0、データメモリ204、コードメモリ205の各メモ
リのデータを参照するためのポインタを表わしている。
ここで、記号の定義をしておく。
【0016】 データポインタdptr :データメモリ204中の復
元データの書き込み位置を示すポインタ 探索用ポインタsptr :文字列コピーを行うときの
コピー元の文字列を示すポインタ コードポインタcptr :コードメモリ205中の圧
縮データの読み込み位置を指すポインタ インデックスID :変換表200のエントリの
インデックス エントリカウンタecnt:変換表200に登録されて
いるエントリ数 最初に、図8は復号化手段201の処理内容の詳細を表
わしたものである。まず、ステップ800は、コードポ
インタによりコードメモリ205を参照し、圧縮符号を
得る。圧縮符号は、符号化手段102により、インデッ
クスIDと一致長MLENの組(ID,MLEN)が所
定の符号形式により符号化されたものである。ステップ
801は、所定の符号形式に基づいて圧縮符号から一意
的にIDとMLENの値を復号化することができる。次
に、図9はデータ複写手段202の処理内容の詳細を表
わしたものである。復号化手段201により復号化され
たIDの値を用いて、ステップ900は、変換表200
を参照し、文字列コピーを行うためのコピー元のポイン
タsptrとコピー文字数MLENを求める。前に説明
したように、一致長MLENの値を探索木の根から計数
する方法と分岐節から計数する方法がある。前者の方法
に対して、伸長処理は図7(a)の変換表を利用するの
で、ステップ900はIDによりptrの値を参照す
る。そして、ptrの値を文字列コピーのためのポイン
タsptrとして利用し、MLENはそのままでコピー
文字数を表わしているので手を加えずに文字列コピーに
利用する。後者の方法に対して、伸長処理は図7(b)
の変換表を利用するので、ステップ900はIDにより
ptrとoffの値を参照する。そして、ptrの値を
sptrとして利用し、MLENはoffと加算するこ
とによりコピー文字数として利用する。ステップ901
はステップ900で得られた文字列コピー元のポインタ
とコピー文字数に基づいて、データメモリ204の既に
復元された文字列をデータポインタdptrへコピーす
る。この文字列コピーの操作によりデータは伸長され、
圧縮される前のデータが復元される。ステップ902
は、まだ処理すべき圧縮符号がコードメモリ205中に
残っているかを判断し、残っていなければ伸長処理を終
了する(EXIT)。まだ圧縮符号が残っていれば、次
の処理へ移る。次に、図10は変換表更新手段203の
処理内容の詳細を表わしたものである。まず、ステップ
1000は、変換表200に登録されているエントリ数
最大エントリ数に達したかを判断する。最大エントリ数
は、圧縮処理で使用した辞書100のときと同じ値を使
用する。ステップ1000の結果、まだ変換表にエント
リを追加登録する余裕が残っているときはステップ10
01へ進み、新たなエントリに値を書き込む。変換表に
書き込む値はインデックスの値がecntのエントリに
対して、変換表が図7(a)の場合、ptrの欄にデー
タ複写手段202で文字列をコピーしたコピー先のポイ
ンタdptrを書き込み、変換表が図7(b)の場合、
さらにoffの欄にコピー文字数であるMLENを書き
込む。ステップ1001では、変換表のエントリの追加
と同時にdptr、ecntの値も更新する。dptr
の値は伸長を行ったコピー文字数MLENだけ増加さ
せ、ecntの値は追加したエントリの数、すなわち1
だけ増加させる。ステップ1000の判定でエントリ数
が最大であったならば、ステップ1002へ進み、変換
表200は全て消去することにより初期化される。この
更新処理により、圧縮処理における辞書100と伸長処
理における変換表200は完全に整合がとれる。すなわ
ち、辞書100の各エントリに記憶している文字列と変
換表200の各エントリに記憶されている文字列が一致
したものになるということである。
【0017】
【発明の効果】以上で説明したように、本発明のデータ
圧縮方式によれば、辞書の各エントリが無限長の文字列
を記憶しており、LZ78方式の辞書のような登録文字列長
の有限性という制限がない。そのため、本発明のデータ
圧縮方式は、2値画像データのように入力データ中に長
いデータパターンの反復が頻繁に現われるデータ構造を
もつ場合でも効率的な圧縮ができる。また、辞書更新処
理及び変換表更新処理において、1回の処理に対して1
つのエントリしか更新しないので、複数のエントリの更
新が要求されるLZ77方式に比較して高速な圧縮伸長処理
を行うことができる。また、符号化処理において、一致
長の値を分岐節から計数した文字数で表わすことによ
り、値が0付近に集中するので、一致長の持つエントロ
ピーが減少し、符号化効率が高くすることができる。ま
た、本発明のデータ伸長方式によれば、データメモリ上
のコピー元の文字列を示すポインタとコピー文字数を指
定して、データメモリ中の指定された文字列をデータメ
モリ中の書き込み位置へコピーするだけでデータの復元
ができるので、高速なデータ伸長を行うことができる。
【図面の簡単な説明】
【図1】 本発明のデータ圧縮方式の基本構成図
【図2】 本発明のデータ伸長方式の基本構成図
【図3】 探索木の構成を説明するための図
【図4】 最長一致文字列探索手段の処理を説明するた
めの図
【図5】 符号化手段の処理を説明するための図
【図6】 辞書更新手段の処理を説明するための図
【図7】 変換表の構成を説明するための図
【図8】 復号化手段の処理を説明するための図
【図9】 データ複写手段の処理を説明するための図
【図10】 変換表更新手段の処理を説明するための図
【図11】 探索木の成長を説明するための図
【図12】 探索木へのエントリの追加を説明するため
の図
【図13】 一致長の符号化を説明するための図
【図14】 LZ77方式を説明するための図
【図15】 LZ78方式を説明するための図
【符号の説明】
100 辞書 102 符号化手段 103 辞書更新手段 104 データメモリ 105 コードメモリ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 入力データを記憶するためのデータメモ
    リと、該入力データを圧縮することにより得られるコー
    ドを記憶するためのコードメモリを有するデータ圧縮装
    置において、上記データメモリに記憶された上記入力デ
    ータの文字列を示す第一のポインタをそれぞれが記憶す
    る複数のエントリを有する辞書であって、該辞書に登録
    された第一のポインタを記憶するための主節と、探索木
    における分岐を表わす分岐節を含む該探索木によって表
    わされる辞書と、それぞれの第一のポインタによって示
    される文字列の中から符号化すべき文字列と最長一致す
    る、即ち、最長一致長に渡って一致する文字列を探索す
    る最長一致文字列探索手段と、上記最長一致長と、該最
    長一致長を示す第一のポインタを記憶するエントリのイ
    ンデックスを符号化し、その結果得られる符号を上記コ
    ードメモリに書き込むための符号化手段と、上記符号化
    された文字列を示す上記第一のポインタ記憶するエント
    リを上記辞書に追加するための辞書更新手段とを有し、
    上記第一のポインタと上記最長一致長を指定することに
    より上記データメモリに記憶された任意の長さの文字列
    が発見され、符号化されることを特徴とするデータ圧縮
    装置。
  2. 【請求項2】 上記辞書の上記エントリのそれぞれは、
    上記第一のポインタと、上記探索木の根から分岐分岐位
    置に至る経路上に存在する文字の数、即ち、オフセット
    数と、上記主節において最初に発生する分岐節へのリン
    クを表わすための第2のポインタと、分岐節から次の分
    岐節へのリンクを表わすための第3のポインタとを有す
    ることを特徴とする請求項1記載のデータ圧縮装置。
  3. 【請求項3】 上記探索木は、予め上記入力データ中に
    現われる全ての文字をそれぞれ記憶するための初期登録
    節であって、それぞれが、自身に記憶する文字の値に等
    しいインデックスを有する初期登録節をさらに有するこ
    とを特徴とする請求項1記載のデータ圧縮装置。
  4. 【請求項4】 上記符号化手段は、上記最長一致長を符
    号化する際に、それを上記探索木の上記根側において上
    記最長一致文字列の最後の文字に最も近い分岐節から計
    数された長さを用いて表わすことを特徴とする請求項1
    記載のデータ圧縮装置。
  5. 【請求項5】 上記符号化手段は、上記最長一致長を符
    号化する際に、それを、上記探索木の上記根から計数さ
    れた長さを用いて表わすことを特徴とする請求項1記載
    のデータ圧縮装置。
  6. 【請求項6】 圧縮符号を記憶するためのコードメモリ
    と、該圧縮符号を伸長することにより得られたデータを
    記憶するデータメモリを有するデータ伸長装置におい
    て、それぞれがインデックスと上記データメモリに記憶
    された復元された文字列を示すポインタを対応づけるエ
    ントリを有する変換表と、上記コードメモリに記憶され
    た符号をインデックス及び最長一致に復号化するための
    復号化手段と、上記復号化されたインデックスを用いて
    上記変換表を参照することにより得られたポインタと、
    上記最長一致長に基づいて決定された上記データメモリ
    に記憶された復元された文字列を、そのデータメモリ中
    の復元データ書き込み位置にコピーするためのデータコ
    ピー手段と、未登録のインデックスと上記データメモリ
    に記憶された上記コピーされた文字列を示す上記ポイン
    タを対応づけるエントリを前記変換表に追加するための
    変換表更新手段を有することを特徴とするデータ伸長装
    置。
  7. 【請求項7】上記変換表の上記エントリのそれぞれは、
    インデックスと、上記データメモリに記憶された復元さ
    れた文字列を示すポインタと、探索木の根側において上
    記復元された文字列の最後の文字に最も近い分岐節から
    計数された該復元された文字列の文字数を対応づけるこ
    とを特徴とする請求項6記載のデータ伸長装置。
JP10550696A 1995-09-29 1996-04-25 データ圧縮・伸長装置 Expired - Fee Related JP3273119B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10550696A JP3273119B2 (ja) 1995-09-29 1996-04-25 データ圧縮・伸長装置
US08/646,516 US5841376A (en) 1995-09-29 1996-05-08 Data compression and decompression scheme using a search tree in which each entry is stored with an infinite-length character string
DE19622045A DE19622045C2 (de) 1995-09-29 1996-05-31 Datenkomprimierungs- und Datendekomprimierungsschema unter Verwendung eines Suchbaums, bei dem jeder Eintrag mit einer Zeichenkette unendlicher Länge gespeichert ist

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP25343395 1995-09-29
JP7-253433 1995-09-29
JP10550696A JP3273119B2 (ja) 1995-09-29 1996-04-25 データ圧縮・伸長装置

Publications (2)

Publication Number Publication Date
JPH09153818A true JPH09153818A (ja) 1997-06-10
JP3273119B2 JP3273119B2 (ja) 2002-04-08

Family

ID=26445778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10550696A Expired - Fee Related JP3273119B2 (ja) 1995-09-29 1996-04-25 データ圧縮・伸長装置

Country Status (3)

Country Link
US (1) US5841376A (ja)
JP (1) JP3273119B2 (ja)
DE (1) DE19622045C2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004062110A1 (ja) * 2002-12-26 2004-07-22 Fujitsu Limited データ圧縮方法、プログラム及び装置
JP2006295853A (ja) * 2005-04-14 2006-10-26 Sony Corp 符号化装置、復号装置、および、符号化方法ならびに復号方法
JP2007219882A (ja) * 2006-02-17 2007-08-30 Makoto Goto ファイル格納装置
JP2017022630A (ja) * 2015-07-13 2017-01-26 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195664B1 (en) * 1997-02-21 2001-02-27 Micrografx, Inc. Method and system for controlling the conversion of a file from an input format to an output format
US5945933A (en) * 1998-01-27 1999-08-31 Infit Ltd. Adaptive packet compression apparatus and method
US6121903A (en) * 1998-01-27 2000-09-19 Infit Communications Ltd. On-the-fly data re-compression
DE19803845C2 (de) * 1998-01-31 2001-03-08 Syntion Ag Verfahren und Einrichtung zur Übertragung einer durch digitale Daten repräsentierten Nachricht
US6247015B1 (en) * 1998-09-08 2001-06-12 International Business Machines Corporation Method and system for compressing files utilizing a dictionary array
US6301394B1 (en) * 1998-09-25 2001-10-09 Anzus, Inc. Method and apparatus for compressing data
US7039637B2 (en) * 1998-12-31 2006-05-02 International Business Machines Corporation System and method for evaluating characters in an inputted search string against a character table bank comprising a predetermined number of columns that correspond to a plurality of pre-determined candidate character sets in order to provide enhanced full text search
US7031002B1 (en) 1998-12-31 2006-04-18 International Business Machines Corporation System and method for using character set matching to enhance print quality
JP2000201080A (ja) * 1999-01-07 2000-07-18 Fujitsu Ltd 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
US7191114B1 (en) 1999-08-27 2007-03-13 International Business Machines Corporation System and method for evaluating character sets to determine a best match encoding a message
US6470347B1 (en) 1999-09-01 2002-10-22 International Business Machines Corporation Method, system, program, and data structure for a dense array storing character strings
US20030009595A1 (en) * 2001-07-09 2003-01-09 Roger Collins System and method for compressing data using field-based code word generation
US7064688B2 (en) * 2001-07-09 2006-06-20 Good Technology, Inc. System and method for compressing data on a bandwidth-limited network
US7243163B1 (en) 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US7596565B2 (en) * 2001-08-07 2009-09-29 Good Technology System and method for maintaining wireless file folders at a wireless device
US7743119B2 (en) 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes
US7962622B2 (en) * 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
US7155483B1 (en) 2001-08-07 2006-12-26 Good Technology, Inc. Apparatus and method for conserving bandwidth by batch processing data transactions
US20030084031A1 (en) * 2001-10-31 2003-05-01 Tarquini Richard P. System and method for searching a signature set for a target signature
US7447799B2 (en) 2002-04-24 2008-11-04 Good Technology, Inc. System and method for automatically updating a wireless device
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US8516034B1 (en) 2002-07-08 2013-08-20 Good Technology Software, Inc System and method for modifying application behavior based on network bandwidth
DE10301362B4 (de) * 2003-01-16 2005-06-09 GEMAC-Gesellschaft für Mikroelektronikanwendung Chemnitz mbH Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
US7299235B2 (en) * 2003-07-28 2007-11-20 Rightorder, Incorporated Method and apparatus for ternary PATRICIA trie blocks
EA010458B1 (ru) * 2004-12-08 2008-08-29 Би-ОБВИЭС ЛТД. Оптимизация двунаправленной пересылки данных и управление содержимым для сетей
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
DE102006047465A1 (de) * 2006-10-07 2008-04-10 Deutsche Telekom Ag Verfahren und Vorrichtung zur Kompression und Dekompression digitaler Daten auf elektronischem Wege unter Verwendung einer Kontextgrammatik
US8280723B1 (en) * 2009-01-29 2012-10-02 Intuit Inc. Technique for comparing a string to large sets of strings
US8176080B2 (en) * 2009-03-06 2012-05-08 Hewlett-Packard Development Company, L.P. Desensitizing character strings
US8355585B2 (en) * 2009-05-12 2013-01-15 Red Hat Israel, Ltd. Data compression of images using a shared dictionary
TW201143306A (en) * 2010-05-19 2011-12-01 Hon Hai Prec Ind Co Ltd Method for storing information of nodes in a huffman tree and method for decoding data using an array of the huffman tree
KR101862341B1 (ko) 2012-01-09 2018-05-30 삼성전자주식회사 데이터 압축 기능을 갖는 데이터 저장 장치
US20130279882A1 (en) * 2012-04-23 2013-10-24 Apple Inc. Coding of Video and Audio with Initialization Fragments
US9734179B2 (en) 2014-05-07 2017-08-15 Sas Institute Inc. Contingency table generation
US9979415B2 (en) * 2015-02-16 2018-05-22 Mitsubishi Electric Corporation Data compression apparatus, data decompression apparatus, data compression method, data compression method, and computer readable medium
CN113139019B (zh) * 2021-06-18 2022-03-25 智己汽车科技有限公司 在区块链上记录车辆的里程数据的方法和装置
CN117097441B (zh) * 2023-10-19 2024-02-13 深圳龙电华鑫控股集团股份有限公司 基于数据分析的载波通信系统传输效率优化方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US4814746A (en) * 1983-06-01 1989-03-21 International Business Machines Corporation Data compression method
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
GB2172127B (en) * 1985-03-06 1988-10-12 Ferranti Plc Data compression system
US4876541A (en) * 1987-10-15 1989-10-24 Data Compression Corporation Stem for dynamically compressing and decompressing electronic data
US4906991A (en) * 1988-04-29 1990-03-06 Xerox Corporation Textual substitution data compression with finite length search windows
US5126739A (en) * 1989-01-13 1992-06-30 Stac Electronics Data compression apparatus and method
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
US5146221A (en) * 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
US5003307A (en) * 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
US5010345A (en) * 1989-12-28 1991-04-23 International Business Machines Corporation Data compression method
US5010344A (en) * 1989-12-28 1991-04-23 International Business Machines Corporation Method of decoding compressed data
US5184126A (en) * 1989-12-28 1993-02-02 International Business Machines Corporation Method of decompressing compressed data
US5254990A (en) * 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
US5049881A (en) * 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
EP0470798B1 (en) * 1990-08-06 1997-10-29 Fujitsu Limited Dictionary searching system
EP0471518B1 (en) * 1990-08-13 1996-12-18 Fujitsu Limited Data compression method and apparatus
US5115484A (en) * 1990-12-27 1992-05-19 Square D Company Multipurpose optical fiber connector
US5239298A (en) * 1992-04-17 1993-08-24 Bell Communications Research, Inc. Data compression
US5406281A (en) * 1993-10-12 1995-04-11 Codex Corporation Encoder/decoder and method for efficient string handling in data compression
US5392036A (en) * 1993-10-28 1995-02-21 Mitan Software International (1989) Ltd. Efficient optimal data recopression method and apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004062110A1 (ja) * 2002-12-26 2004-07-22 Fujitsu Limited データ圧縮方法、プログラム及び装置
US7536399B2 (en) 2002-12-26 2009-05-19 Fujitsu Limited Data compression method, program, and apparatus to allow coding by detecting a repetition of a matching character string
JP2006295853A (ja) * 2005-04-14 2006-10-26 Sony Corp 符号化装置、復号装置、および、符号化方法ならびに復号方法
JP2007219882A (ja) * 2006-02-17 2007-08-30 Makoto Goto ファイル格納装置
US9262426B2 (en) 2006-02-17 2016-02-16 Makoto Goto File storage apparatus
JP2017022630A (ja) * 2015-07-13 2017-01-26 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Also Published As

Publication number Publication date
DE19622045C2 (de) 2001-02-15
US5841376A (en) 1998-11-24
DE19622045A1 (de) 1997-04-03
JP3273119B2 (ja) 2002-04-08

Similar Documents

Publication Publication Date Title
JP3273119B2 (ja) データ圧縮・伸長装置
US7403136B2 (en) Block data compression system, comprising a compression device and a decompression device and method for rapid block data compression with multi-byte search
US5406278A (en) Method and apparatus for data compression having an improved matching algorithm which utilizes a parallel hashing technique
US5870036A (en) Adaptive multiple dictionary data compression
US5229768A (en) Adaptive data compression system
US5049881A (en) Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
US6646577B2 (en) Method of performing Huffman decoding
US5353024A (en) Method for data compression having an improved encoding algorithm which utilizes a token stacking technique
JPH03204233A (ja) データ圧縮方法
EP0127815B1 (en) Data compression method
KR19990029626A (ko) 적응형 데이터 압축을 수행하는 방법 및 장치
JP3241788B2 (ja) データ圧縮方式
US5392036A (en) Efficient optimal data recopression method and apparatus
JP4156381B2 (ja) 文字テーブルによって実施されるデータ圧縮の方法および装置
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
Böttcher et al. Search and modification in compressed texts
Ghuge Map and Trie based Compression Algorithm for Data Transmission
EP0340039A2 (en) Search tree data structure encoding for textual substitution data compression systems
JP3241787B2 (ja) データ圧縮方式
JP3242795B2 (ja) データ処理装置及びデータ処理方法
JP3350118B2 (ja) データ符号化方式及びデータ復元方式
JPH05152971A (ja) データ圧縮・復元方法
JP3132774B2 (ja) データ圧縮・復元装置
JPH06161705A (ja) データ符号化方式及びデータ復元方式
JP2825960B2 (ja) データ圧縮方法及び復元方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100125

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees