JP2823917B2 - データ圧縮方式 - Google Patents

データ圧縮方式

Info

Publication number
JP2823917B2
JP2823917B2 JP507890A JP507890A JP2823917B2 JP 2823917 B2 JP2823917 B2 JP 2823917B2 JP 507890 A JP507890 A JP 507890A JP 507890 A JP507890 A JP 507890A JP 2823917 B2 JP2823917 B2 JP 2823917B2
Authority
JP
Japan
Prior art keywords
buffer
data
divided
length
matching
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.)
Expired - Lifetime
Application number
JP507890A
Other languages
English (en)
Other versions
JPH03209922A (ja
Inventor
泰彦 中野
茂 吉田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP507890A priority Critical patent/JP2823917B2/ja
Publication of JPH03209922A publication Critical patent/JPH03209922A/ja
Application granted granted Critical
Publication of JP2823917B2 publication Critical patent/JP2823917B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】 [概要] 文字等の入力データ系列を、参照テキストに登録され
た既に符号化済みの系列の複製として圧縮符号化するデ
ータ圧縮方式に関し、 参照テキストの更新と検索を高速化することを目的と
し、 参照テキストを複数領域に分割して順次符号化済みデ
ータ系列を登録し、参照テキストの検索は登録の新しい
分割領域から登録の古い分割領域に向かって行い、更に
参照テキストが一杯になった場合には、最も登録の古い
分割領域を更新するように構成する。
[産業上の利用分野] 本発明は、文字等の入力データ系列を、参照テキスト
に登録された既に符号化済みの系列の複製として圧縮符
号化するデータ圧縮方式に関する。
文字等のコード列情報を伝達・蓄積する際には、デー
タ量を低減して伝送時間の短縮と記憶容量の低減を図る
ためコード情報を圧縮符号化しており、この圧縮符号化
としては、過去のデータ系列を登録した参照テキストの
任意の位置から入力コード情報に一致する最大長さの部
分列を取出し、過去の系列の複製として符号化するユニ
バーサル符号化が行われ、演算の高速化と同時に高圧縮
率が得を得る必要がある。
[従来の技術] 一般に、蓄積、伝送すべきデータの容量が大きいと
き、通信回線や記憶装置の容量を有効に利用するため、
データ列を圧縮して伝送や蓄積を行い、再度、そのデー
タを使用するときに元のデータ列に復元する方法が良く
用いられる。
従来、文字コードを能率良く圧縮する方式としてZiv
−Lempel符号(以下「ZL符号」という)が知られている
(例えば宗像清治著,「Ziv−Lempelデータ圧縮法」,
情報処理,pp.2〜6,vol.26,NO.1,1985を参照のこと)。
ZL符号には、 ユニバーサル型と、 増分分解型(Incremental persing) の2つのアルゴリズムの提案されている。この2つのア
ルゴリズムの間では、圧縮率はユニバーサル型の方が優
れており、処理速度は増分分解型の方が早いという特徴
がある。
これら2つのアルゴリズムの内、圧縮率が高いユニバ
ーサル型ZL符号は、入力した文字列を以前に入力した符
号化済みの文字列から最大長一致する文字列を検索し、
その最大長一致する文字列を複製として符号化する。
ここでデータ圧縮は文字コードに限らず、一般のデー
タにも適用できるが、以下の説明では情報理論等で使わ
れている呼称を踏襲し、データの1wordを文字、その集
合を文字列と呼ぶことにする。
第5図にユニバーサル型ZL符号器の原理を示す。
第5図において、Pバッファ12には符号化済みの文字
列が格納されており、Qバッファ10にはこれら符号化す
る文字列が格納されている。Qバッファ10の入力文字列
とPバッファ12の登録されている全ての文字列(部分
列)とを検索照合し、Pバッファ12中で一致する最大長
の部分列を求める。そして、Pバッファ12中の最大一致
長をもつ部分列を指定するため、次の情報の組を符号化
する。
次にQバッファ10内の符号化した文字列をPバッファ
12に移して、符号化した文字数分の新たな文字を登録す
る。以下、同様の操作を繰り返し、入力データを部分列
に分解して順次符号化する。
第6図は従来方式の一例を示し、部号語が2バイトで
表わされる場合、例えばPバッファ12を12bit、Qバッ
ファ10を4bitで表わしている。Pバッファ12上での検索
は、Pバッファ12の左側から行われ、もし一致する文字
列がなければ、INPUTポインタのところに入力データ系
列が新たに登録される。
[発明が解決しようとする課題] このようなユニバーサル型ZL符号方式で圧縮率を向上
させるには、できるだけ多くの参照テキストとしてのP
バッファの登録が必要であり、またQバッファのビット
幅で決まるマッチングによる一致長が大きさを制限なし
に表せることが理想である。
しかし、実際には、ソフトウェアで符号化・復合化す
るときは、単にPバッファ12及びQバッファ10を大きく
とると、バッファアドレスで決まる符号語データが大き
くなり、結果的に圧縮率が悪化する。また、参照テキス
トが増えるので、一致検索に時間がかかり処理スピード
も落ちる。
本発明は、このような従来の問題点に鑑みてなされた
もので、参照テキストを大きくした際の一致検索と更新
を高速化するデータ圧縮方式を提供することを目的とす
る。
[課題を解決するための手段] 第1図は本発明の原理説明図である。
まず本発明は、データ系列を第1バッファ(Qバッ
フ)10に入力し、既に符号化済みのデータ系列が登録さ
れている参照テキストとしての第2バッファ(Pバッフ
ァ)12を検索して入力データ系列に一致する符号化済み
データ系列の最大長一致の部分列を求め、該最大長一致
部分の開始位置と一致長との組を符号語として出力して
圧縮符号化するデータ圧縮方式を対象とする。
このようなデータ圧縮方式につき本発明にあっては、
第2バッファ12を複数領域12−1〜12nに分割して符号
化済みデータを順次登録し、分割領域12−1〜12−nの
内の登録の新しい分割領域から登録の古い領域に向けて
入力データ系列との一致検索を行い、更に全ての分割領
域12−1〜12−nが登録データ系列で満たされた場合に
は、最も登録の古い分割領域を更新するように構成す
る。
更に本発明にあっては、参照テキストとしての第2バ
ッファ12を大きくしながら、符号語を小さくして圧縮率
を向上させるため、検索された最大長一致部分の開始位
置を第2バッファ12の分割領域12−1〜12−nの領域番
号と領域内位置とに分け、領域内位置は符号語の最大長
さ一致部分の開始位置として部号化し、一方、領域番号
は符号語とは別個に第2バッファ12に識別データとして
持つことにより、一致長検索に適したビット幅に第2バ
ッファ12の検索インデックをビット幅を縮小させ、この
縮小させたビット分を第1バッファ10に割り当てて一致
長検索の許容長さを拡大させるように構成する。
[作用] このような構成を備えた本発明のデータ圧縮方式によ
れば、符号化の途中で、第2バッファ12の全ての分割領
域12−1〜12−nが一杯になったときは、登録の一番古
い分割領域を消去して新たに登録していくことにより、
従来では全体として行っていた面倒な第2バッファ12の
更新作業が大幅に削減され、処理の高速化が可能とな
る。
また登録の新しい第2バッファ12の分割領域から検索
することにより、登録されたばかりの新しい情報から検
索できるので、検索が短い時間で済む。
[実施例] 第2図は符号器を例にとって本発明の一実施例を示し
た実施例構成図であり、ユニバーサル型ZL符号化で実際
的な方法として知られたLZSS符号化方式(T.C.Bell:Bet
ter OPM/L Text Compression,IEEE Trans.on Commom.,V
ol.34,No.12,1986参照)により符号語データを2バイト
で表わす場合を例にとっている。
第2図において、14はデータ圧縮装置であり、第1バ
ッファとしてのQバッファ10と、第2バッファとしての
Pバッファ12を備え、この実施例にあっては、Pバッフ
ァ12は3つの分割領域12−1,12−3,12−3に分割されて
いる。
尚、Pバッファ12の分割領域は、12−1,12−2が登録
済みで、現在残りの領域12−3への登録が行われている
状態を示している。
16はファイル/伝送装置であり、データ圧縮装置14か
ら出力される最大長一致部分の開始位置と一致長との組
のデータ構造をもつ符号語又は生データ(入力文字列そ
のもの)を記憶又は伝送する。
ここで本発明の処理を第6図の従来方式と対比して説
明すると次のようになる。
まず第6図の従来方式では、符号語を2バイトで表す
とき、例えばPバッファ12のサイズを12ビット、Qバッ
ファ10のサイズを4ビットで表し、Pバッファ12上での
検索はPバッファ12の左側から行われ、もし一致する文
字列がなければ、図中のINPUTポインタのところに新た
に登録される。この方法では、文字の比較が、現在のQ
バッファ10の内容とは関係が薄いと考えられる古い登録
文字から始められ、検索時間がかかっている。また、P
バッファ12が一杯になったときの更新法として、 Qバッファ10上の符号化が終わった分だけ、Pバッフ
ァ12を左にシフトする方法や、 一続きのPバッファ12を全てクリアし、最初から登録
をやり直す方法があった。
しかし、の一部シフト法はPバッファ12が一度一杯
になると、毎回、更新可能が必要で処理が煩雑になる。
またのオールクリア法は、現在までの学習されたPバ
ッファ12が一度に失われ、符号化されない生のデータが
出力される可能性が大きくなり効率が悪い。
これに対し本発明では、従来は一続きであったPバッ
ファ12を複数領域、例えば3つの領域に12−1〜12−3
に分け、Pバッファ12の中のどのバッファ分割領域が使
われているかは、バッファ内の識別コードに組み込むこ
ととする。
Pバッファ12の検索は、検索を短い時間で終了させる
ために、一番登録の新しい分割領域12−3から検索を始
める。また、Pバッファ12の全ての分割領域12−1〜12
−3が一杯になったら、関係の薄いと思われる登録が一
番古いPバッファ12の分割領域12−1のみをクリアし、
クリアした分割領域12−1に新しく登録していくことで
検索の効率が図れ、且つ他の2つの分割領域12−2,12−
3はそのまま利用できる。
また、第2図の実施例にあたっては、第6図の従来方
式でPバッファ12が12ビット、Qバッファ、10が4ビッ
トであったものを、それぞれ11ビット、及び5ビットと
している。その結果、Pバッファ12が1ビット減った
分、参照テキストの量が半分になるが、3つの分割領域
12−1〜12−3に分けて持つことにより、参照テキスト
の量は等化的に3/2になる。またQバッファが1ビット
増えているので、その分マッチング一致長が長くとれ圧
縮率も向上する。
更に詳細に説明すると、第6図の従来方式では、Pバ
ッファ12を12ビット、Qバッファ10を4ビットで表わ
し、更に8個のデータ毎に符号語データか生データかを
識別するための識別データが格納されている。即ち、識
別データの1ビットずつが続いて並ぶ8個のデータが符
号語データか生データかを識別する。
ここで圧縮率を上げようとしてPバッファ121及びQ
バッファ10のビット幅を仮に1ビットずつ増やしたとす
ると、開始位置と一致長の組でなる符号語データが8の
倍数でなくなり、データを転送する際にビット詰めとい
う面倒な処理が必要となる。また8の倍数となるように
Pバッファ12及びQバッファ10のビット幅を、例えば18
ビット、6ビットに増やしたとすると、最大一致長の開
始位置と一致長との組でなる符号語が3バイトにもな
り、最大一致長が2バイト又は3バイトであった場合
は、共に複製で表わすことでは圧縮されず、符号化の効
率が悪くなる。
これに対し本発明では、一続きのPバッファ12を第2
図のように例えば3つの分割領域12−1〜12−3に分け
て持ち、どの分割領域が使われているかは、Pバッファ
12の識別データを1データ当り2ビットとして持たせる
ことにより、1組の符号語データの長さを2バイトのま
ま変化させずに圧縮率を上げることができる。
次に第3図の動作フロー図を参照して本発明の処理動
作を説明する。
まずステップS1(以下「ステップ」は省略)入力文字
列をQバッファに読み込む。次にS2で入力文字列の終端
でなければS3に進み、終端であれば処理を終了する。。
S3にあってはi=Newとする。ここでNewは、一番新し
いPバッファの分割領域を示すインデックスである。
次にS4でPバッファ12の分割領域P[i]をスキャン
し、一致する文字を探す。一致すれば、S5に進んで分割
領域P[i]中の一致開始位置と一致長をレジスタ等に
登録、更新してS6に進み、もし一致する文字が分割領域
P[i]になければ、そのままS6へ進む。
S6ではiを関数f(i)に従って更新する。関数f
(i)によるiの更新は、最初はi=1,2,3と更新さ
れ、一杯になって登録の古いi=1のクリア更新が行な
われると、次にi=2,3,1と更新され、3回目の更新で
はi=3,1,2と更新され、以下これを繰り返す。
次にS7に進んでNew=iであるか、即ち全ての分割領
域の検索が終了したか否かを判断し、終了していればS8
へ、終了していなければS3に戻る。
全てのPバッファ分割領域の検索が終り、S8で一致す
る文字がPバッファ中になければ、S9で生データそのも
のを符号語データ列として出力してS11のPバッファ登
録処理に進む。S8で一致する文字がPバッファ中にある
ことが判別されると、S5で登録した一致開始位置(特定
のPバッファ分割領域内の領域位置)と一致長の組でな
る符号語データを出力し、S11に進み、以下、S2で文字
列の終了が判別されるまで同じ処理を繰り返す。
第4図は、第3図のS11におけるPバッファ登録処理
をサブルーチンとして示した動作フロー図である。
第4図において、まずS1が登録で最も新しい分割領域
P[New]が一杯かどうかを調べ、もし一杯であればS2
に進む。一方、まだ登録できる余裕があればS5へ進む。
S2では、一番古いPバッファ分割領域のインデックス
Oldを計算し、S3で最も登録の古い分割領域P[old]を
クリアし、S4でクリア後にNew=Oldに置き換えてS5にへ
進む。S5ではクリア状態にある分割領域P[New]に生
データを登録する。
尚、上記の実施例は、Pバッファ12を3つの領域に分
割した場合を例にとるものであったが、必要に応じて任
意の数に分割できる。
[発明の効果] 以上説明したように本発明によれば、参照テキストと
マッチング一致長さの許容長さを大きくしても、参照テ
キストの検索及び更新を高速に行うことができる。
【図面の簡単な説明】
第1図は本発明の原理説明図; 第2図は本発明の実施例構成図; 第3図は本発明の動作フロー図; 第4図は本発明のPバッファ登録処理の動作フロー図; 第5図はユニバーサル型ZL符号化の原理説明図; 第6図は従来方式の説明図である。 図中、 10:第1バッファ(Qバッファ) 12:第2バッファ(Pバッファ) 12−1〜12−n:分割領域 14:検索装置 16:符号器
フロントページの続き (58)調査した分野(Int.Cl.6,DB名) H03M 7/30

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】文字等のデータ系列を第1バッファ(10)
    に入力し、既に符号化済みの過去のデータ系列が登録さ
    れている第2バッファ(12)を検索して前記第1バッフ
    ァ(10)のデータ列に一致する符号化済みのデータ列の
    最大長一致部分を求め、該最大長一致部分の開始位置と
    一致長との組の符号語として出力して圧縮符号化するデ
    ータ圧縮方式に於いて、 前記第2バッファ(12)を複数領域(12−1〜12−n)
    に分割しで符号化済みデータ列を順次登録し、該分割領
    域(12−1〜12−n)の内の符号化済みデータ系列の新
    しい分割領域から古い分割領域に向けて前記一致検索を
    行い、全ての分割領域が登録データ系列で満たされた場
    合は、最も古い分割領域から更新していくことを特徴と
    するデータ圧縮方式。
  2. 【請求項2】前記最大長一致部分の開始位置を、前記第
    2バッファ(12)の分割領域(12−1〜12−n)の領域
    番号と領域内位置とに分け、該領域内位置は前記符号語
    の最大一致長部分の開始位置として符号化し、前記領域
    番号は符号語とは別個に前記第2バッファ(12)に識別
    データとして持つことにより、一致長検索に適したビッ
    ト幅に該第2バッファ(12)の検索インデックスのビッ
    ト幅を縮小させ、該縮小させたビット分を前記第1バッ
    ファ(10)に割り当てて一致長検索の許容長さを拡大さ
    せたことを特徴とする請求項1記載のデータ圧縮方式。
JP507890A 1990-01-12 1990-01-12 データ圧縮方式 Expired - Lifetime JP2823917B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP507890A JP2823917B2 (ja) 1990-01-12 1990-01-12 データ圧縮方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP507890A JP2823917B2 (ja) 1990-01-12 1990-01-12 データ圧縮方式

Publications (2)

Publication Number Publication Date
JPH03209922A JPH03209922A (ja) 1991-09-12
JP2823917B2 true JP2823917B2 (ja) 1998-11-11

Family

ID=11601355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP507890A Expired - Lifetime JP2823917B2 (ja) 1990-01-12 1990-01-12 データ圧縮方式

Country Status (1)

Country Link
JP (1) JP2823917B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590317A (en) * 1992-05-27 1996-12-31 Hitachi, Ltd. Document information compression and retrieval system and document information registration and retrieval method
JP4760727B2 (ja) * 2007-02-07 2011-08-31 カシオ電子工業株式会社 データ圧縮装置とその復号装置、それらの方法、及びプログラム
WO2014097356A1 (ja) 2012-12-19 2014-06-26 富士通株式会社 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法および伸張装置

Also Published As

Publication number Publication date
JPH03209922A (ja) 1991-09-12

Similar Documents

Publication Publication Date Title
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
JP3273119B2 (ja) データ圧縮・伸長装置
US5049881A (en) Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
US7079051B2 (en) In-place differential compression
US5970177A (en) Data compression using selective encoding
JP3241788B2 (ja) データ圧縮方式
JP3231105B2 (ja) データ符号化方式及びデータ復元方式
JP2823917B2 (ja) データ圧縮方式
JP3350118B2 (ja) データ符号化方式及びデータ復元方式
JP2940948B2 (ja) データ圧縮方式
JP3241787B2 (ja) データ圧縮方式
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
JP2590287B2 (ja) データ圧縮方法およびデータ圧縮装置
JP3130324B2 (ja) データ圧縮方式
JP2823918B2 (ja) データ圧縮方式
JP3199292B2 (ja) ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法
JP3100206B2 (ja) データ圧縮方法
JPH06161705A (ja) データ符号化方式及びデータ復元方式
JP3073072B2 (ja) 画像データ圧縮及び復元方式
JPH05152971A (ja) データ圧縮・復元方法
US6819272B2 (en) System, method and computer readable medium for compressing a data sequence for partial decompressing
JP3078601B2 (ja) データ圧縮方法
JP3051501B2 (ja) データ圧縮方法
Klein et al. Parallel Lempel Ziv Coding
JPH0527943A (ja) データ圧縮方式