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

データ圧縮方式

Info

Publication number
JPH03209923A
JPH03209923A JP507990A JP507990A JPH03209923A JP H03209923 A JPH03209923 A JP H03209923A JP 507990 A JP507990 A JP 507990A JP 507990 A JP507990 A JP 507990A JP H03209923 A JPH03209923 A JP H03209923A
Authority
JP
Japan
Prior art keywords
code
dictionary
index
code word
bits
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
JP507990A
Other languages
English (en)
Other versions
JP2823918B2 (ja
Inventor
Yasuhiko Nakano
泰彦 中野
Shigeru Yoshida
茂 吉田
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 JP507990A priority Critical patent/JP2823918B2/ja
Publication of JPH03209923A publication Critical patent/JPH03209923A/ja
Application granted granted Critical
Publication of JP2823918B2 publication Critical patent/JP2823918B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 [概要] 文字等の入力コード系列に一致する辞書に登録された既
に符号化済みのコード列との最大一致長を求め、最大一
致長の開始位置と一致長を含む符号語に変換するデータ
圧縮方式に関し、辞書サイズの拡大に対し符号語を最小
ビット数で表現して圧縮率を向上することを目的とし、
新たな符号化済みコードを登録する際に辞書が一杯にな
っていたら、辞書サイズを1ビット堆やして登録するよ
うに構成する。また符号語を作成する際に、現時点の辞
書サイズで決まるインデクス最大値から開始位置を示す
インデクスを差し引いて最新登録位置を初期値とするコ
ードインデクスを作成して開始位置を示す符号語とし、
更にコードインデクスのビット数を示す識別子を符号語
に付加するように構成する。
[産業上の利用分野] 本発明は、文字等の入力コード列を辞書に登録された符
号化済みのコード列の複製として圧縮符号化するデータ
圧縮方式に関する。
文字等のコード列情報を伝送・蓄積する際には、データ
量を低減して伝送時間の短縮と記憶容量の低減を図るた
め、コード列情報を圧縮符号化している。この圧縮符号
化としては、過去のコード系列を登録した辞書の任意の
位置から入力コード列に一致する最大長の部分列を取出
し、この部分列の開始位置(インデスク)と−成長を少
な(とも含む符号語に変換!、て出力するユニバーサル
符号化が行われており、圧縮率を向上するためには可能
な限り符号語のビット数を小さくすることが望まれる。
[従来技術] 一般に蓄積、伝送すべきデータの容量が大きいとき、通
信回線や記憶装置の容量を有効に利用するため、データ
列を圧縮して伝送や蓄積し、再度、そのデータを使用す
るときに元のデータ列に復元する方法が良く用いられる
従来、文字コードを能率良く圧縮する方式としてziv
−Lempel符号(以下、ZL符号と呼ぶ)が知られ
ている(例えば、宗像清治著、  「ziv−Lemp
eデータ圧縮法」、情報処理+ I’L 2〜6. V
Ol、 261 N。
1.1985を参照のこと)。
ZL符号には、 ■ユニバーサル型と、 ■増分分解型(Incremental persin
g )の2つのアルゴリズムが提案されている。
尚、データ圧縮は文字コードに限らず、一般のデータに
も適用できるが、ここでは、情報理論等で使われている
呼称を踏襲し、データの1wordごとを文字と呼ぶこ
とにする。
第10図にユニバーサル型ZL符号器の原理図を示す。
このユニバーサル型のアルゴリズムは、演算量は多いが
、高圧縮率が得られ、符号化データを過去のデータ系列
の任意の位置から一致する最大長の系列に区切り(部分
列)、過去の系列の複製として符号化する方式である。
第10図において、辞書を構成するPバッファ10には
符号化済みの入力データが格納されており、Qバッファ
12にはこれから符号化するデータが入力されている。
符号化は、まずPバッファlOの系列をQバッファ12
の系列でサーチし、Pバッファ10中で一致する最大長
の部分列を求める。そして、Pバッファ10中の最大長
部分列を指定するため、次の情報の組を符号語として出
力する符号化を行う。
次にQバッファ12内の符号化した系列をPバッファ1
0に登録して新たな辞書データを得る。
以下、同様の操作を繰り返し、データを部分列に分解し
て順次符号化する。
次に増分分解型アルゴリズムを説明する。
増分分解型アルゴリズムは、圧縮率はユニバーサル型よ
り劣るが、シンプルで、計算も容易であることが知られ
ている。増分分解型ZL符号化では、入力シンボルの系
列を x=aabababaa・・・ とすると、成分系列 x=X、X、X2φ11・ への増分分解は次のようにする。
Xjを既成分の右端のシンボルを取り除いた最長の列と
し、 X−aIIabIIabaIIb・aaIIll・とな
る。
従って、Xo−λ(空列)  X 1. = Xo a
X2=X1 b   X3=X2a X4−Xob   X、=X1 a・・と分解できる。
増分分解した各成分系列は、既成分系列を用いて次のよ
うな組で符号化する。
増分分解型アルゴリズムは、符号化パターンについて、
過去に分解した部分列の内、最大長一致するものを求め
、過去に分解した部分列の複製として符号化するもので
ある。
即ち、ZL符号では現在の文字コードの系列を、符号化
済の過去の系列からの複製として符号化するものである
。ZL符号を用いた場合、文字コードの文書情報は、1
/2程度に圧縮できる。
[発明が解決しようとする課題] このようにZL符号化方式は、符号化対象の性質が未知
でも、それを学習しながら符号化していく圧縮法であり
、アルゴリズムは既出のデータ列を辞書に登録していき
、同じデータ列が現れた時には、その辞書の登録位置も
しくは登録番号等のインデクスを符号語として出力する
というシンプルなものである。
しかし、参照辞書が符号化対象に比べて十分大きくない
と、学習が十分にできずに高い圧縮率が期待できないと
いう欠点がある。そのため従来方式では参照辞書をでき
るだけ大きくとるようにしている。しかし、参照辞書を
単に大きく取っても、符号語中の一致位置を示すインデ
クスのビット数が増加して符号語が長くなってしまい、
参照辞書を大きくした分だけの圧縮率の向上が期待でき
ない問題があった。
本発明は、このような従来の問題点に鑑みてなされたも
ので、辞書サイズの増加に対し符号語を最小ビット数で
表現して圧縮率を向上するようにしたデータ圧縮方式を
提供することを目的とする。
[課題を解決するための手段] 第1図は本発明の原理説明図である。
まず本発明は、第1図(a)に示すように、辞書10に
登録された既に符号化済みのコード列の中の入力コード
列に一致する最大一致長部分を求め、この最大一致長部
分の開始位置と一成長を少なくとも含む符号語を作成し
て出力することで圧縮符号化し、辞書10に入力コード
列に一致する符号化済みコード列がない場合には、入力
コード列をそのまま符号語として出力すると共に、辞書
10に新たな符号化済みコード列として登録するデータ
圧縮方式を対象とする。
このようなデータ圧縮方式につき本発明にあっては、第
1図(a)(b)に示すように、新たな符号化済みコー
ド列の登録時に辞書10が一杯になったことを判別した
際には、辞書10のサイズを1ビット増やした後に登録
し、符号語中の開始位置を現時点の辞書サイズで決まる
最小ビット数で表現したものである。
また第1図(C)に示すように、符号語を作成する際に
、現時点の辞書サイズで決まるインデクス最大値(Ma
x)から開始位置を示すインデクスを差し引いて最新登
録位置を初期値とするコードインデクスを作成して開始
位置を示す符号語とし、更に、コードインデクスのビッ
ト数を示す識別子を符号語に付加し、符号語を可変長に
して最小ビット数で表現したものである。
[作用コ このような構成を備えた本発明のデータ圧縮方式によれ
ば、次の作用が得られる。
0 従来のデータ圧縮方式では、辞書の大きさは予め決めら
れた固定サイズであったが、本発明は辞書サイズを可変
にする。具体的には、辞書サイズを、最初は小さいビッ
ト数で割り当てておき、辞書が一杯になったときに、随
時1ビットずつ伸ばしていくようにする。これで、登録
初期段階に於いても、辞書に割り当てられたビット数を
有効に使え、圧縮率向上を図ることができる。
このように1ビットずつ辞書を伸ばしていっても、符号
語中のインデクス長が、常に現在使用されている辞書サ
イズの最大ビット長で表されるため、インデクスの小さ
いものを表すときは、大部分のビットが無駄になり効率
的でない。
そこで本発明は更に、開始位置を示すインデクスを1、
登録の新l、い方を初期位置として見たフードインデク
スで表現し、更にコードインデクスが何ビットであるの
かの識別子を符号語の先頭に付けてインデクスを最小ビ
ット数で表す。
この手法は、辞書中で新しいものほど参照されやすいと
いう性質に基づき、新しい文字列が登録1 されている辞書中の位置のインデクスはど短いビット数
で表現することにより、圧縮率を向上させようとするも
のである。従って、辞書を頻度順に並べかえてやると、
さらに効果は大きい。
[実施例] 第2図は本発明の実施例構成図であり、符号化対象とな
る入力コードはQバッファとしての入力バッファ12に
格納された後、処理装置1−4による辞書10の参照で
辞書中にある登録済みのコード列の最大一致長となる部
分列が求められる。処理装置14で入力コード列に一致
する登録済みコード列の最大一致長が求まると、その開
始位置を示すインデクスと一成長から符号語を作成して
ファイル/伝送装置16等に出力する。
処理装置14にあっては、後の説明で明らかにする辞書
サイズの増加処理と、符号語中のインデクス(開始位置
)に識別子を付けて最小ビット数で表わす処理を行う。
次に第3図の処理フロー図を参照して辞書サイ2 ズをビット単位に随時増やす処理を説明する。
この第3図の処理により第4図(a) (b) ’c)
に示すように、時系列に辞書10のサイズが増えて行く
即ち、第4図(a)では辞書サイズが8ビットで、エン
トリーはインデクス=200までの状態を示す。
第4図(b)は辞書サイズが8ビットの状態でエントリ
ーはインデクス=255の最大位置まで登録された状態
である。この状態で次に文字を登録するには、第4図(
C)のように辞書サイズを1ビット増やして9ビットと
する。
このように、辞書のエントリーが一杯になる毎に、1ビ
ットずつ増やして辞書サイズを拡大していくようにする
次に第3図の処理動作を説明する。
まずステップSl(以下「ステップ」は省略)でインデ
クスサイズ(辞書サイズ)に初期値を設定する。ここで
は、インデスクサイズ−8とする。
次に82で符号化対象文字列を入力する。S3で符号化
対象が無くなったことを判別すると符号化3 を終了する。文字列の入力が続いていればS4に進み、
入力文字列が辞書10に有るかどうか検索する。
もし辞書10に有れば、S5に進んでその位置を示すイ
ンデクス及び一致長を含む符号語を作成して出力した後
、S2に戻って次の入力文字列の符号化を行う。尚、S
3で作成されるインデクスのビット数は、現時点での辞
書サイズの最大ビット長となる。
S4で辞書10に入力文字列がなかった場合には、S6
に進んで辞書10にまだ登録スペースがあるかどうかを
調べる。登録スペースがあればS7に進んで登録し、登
録スペースが無ければS8に進み、現在のインデクスが
最大インデクスに達したか否か、即ち辞書10が一杯に
なったか否か判別する。もし一杯であればS9に進んで
インデクスサイズ(辞書サイズ)を1ビット増加させて
9ビットとし、S10で生データを登録しS2に戻る。
次に第5図の処理フローを参照して識別子の付4 加により符号側を最小ビット数で表現するための処理を
説明する。
まず第5図の処理によるインデクス構造及び概念は、第
6図に示すように、従来は辞書10のインデクスが古い
登録位置をインデクス初期値−0として新しい方に向け
て増加する値を取っていたが、本発明にあっては、逆に
最も新しい登録位置をインデクス初期値−〇として古い
方に向けて増加するコードインデクスを新たに定義する
即ち、コードインデクスは、 (コードインデクス)= (インデクス最大値)−(符号化インデクス値)と定義
される。
更に第7図に示すように、符号語の先頭にコードインデ
クスのビット数を示す識別子を付加する。
第8図は本発明におけるコードインデクスと識別子の対
応関係を示しており、コードインデクスはその時の辞書
サイズで決まる8〜19ビットのいずれかのビット長で
あり、このコードインデクスに対し第8図の対応関係を
もつ1〜6ビットで5 変化する識別子が付加される。
そこで第5図の処理を説明すると、まずSlで符号化対
象となる文字列を入力し、文字列の入力の終了を82で
判別すると符号化を終了する。
文字列の入力が継続していると83に進み、入力文字列
が辞書10に有るかどうか検索し、辞書10にあればS
4に進み、辞書10になければS6に進む。
S4にあっては、最大一致長の開始位置を符号化インデ
クスとして、その時の辞書サイズで決まるインデクス最
大値から差し引いてコードインデクスを求め、更に第8
図のリストからコードインデクスのビット数を示す識別
子を取り出し、S5で第7図に示した構造の符号語を作
成して出力する。
一方、S3から86に進んだ場合には、辞書10にまだ
登録スペースがあるかどうかを調べ、登録スペースがあ
れば、S7に進んで登録した後に88で入力文字列をそ
のまま生データとして出力する。もしS6で登録スペー
スがなかった場合に6 は、直接S8に進んで生データを出力する。
尚、S6で登録スペースがないと判断された場合には、
辞書10が一杯になった場合であることから、第3図に
示した処理により辞書サイズを1ビット増やした後に登
録するようにしても良い。
第9図は第5図の処理により得られた最大一致長の開始
位置が異なる2つの符号語を示す。
第9図において、コードインデクス=215の符号語は
、識別子が1ビット、コードインデクスが4ビットの合
計5ビットである。これに対し古い方に位置したコード
インデスク=2410の符号語は、識別側が6ビット、
コードインデクスが12ビットの合計18ビットとなり
、登録の新しい文字列程、一致する頻度が高い性質があ
るため、本発明により符号語のビット数が低減され、圧
縮率が向上できることが理解できる。
[効果] 以上説明したように本発明によれば、辞書サイズを最小
サイズから最大サイズに至るまで辞書が7 一杯になる毎に1ビットずつ辞書サイズを増やしていく
ため、その時の辞書サイズで符号語のインデクスのビッ
ト数が決まり、登録初期段階でインデクスのビット長さ
を小さくできるので符号語のビット数を低減して圧縮率
を向上できる。
また辞書の最大一致長開始位置を示す符号語のインデク
スとして、最新登録位置を初期値とした新しい方から古
い方に向けて増加するコードインデクスを作成し、且つ
コードインデクスのビット数を示す識別子を符号語の先
頭に付加し、符号化における登録の新しいもの程、使用
頻度が高いという性質を有効に利用して符号語のビット
数を低減して圧縮率を向上できる。
【図面の簡単な説明】
第1図は本発明の原理説明図; 第2図は本発明の実施例構成図; 第3図は本発明の第1実施例を示した処理フロー図; 第4図は第3図処理による辞書サイズを順次拡大8 する概念の説明図; 第5図は本発明の第2実施例の処理フロー図:第6図は
第5図の処理におけるインデクス及びコードインデクス
の構造説明図; 第7図は第5図の実施例による符号語構造図;第8図は
第5図の実施例におけるコードインデクスと識別子の対
応説明図; 第9図は第5図の処理による登録位置が異なった時の符
号語のサイズを示した説明図; 第10図はユニバーサル型ZL符号器の原理説明図であ
る。 図中、 10:辞書(バッファ) 12:入力バッファ(Qバッファ) 14:処理装置 16:ファイル/伝送装置

Claims (2)

    【特許請求の範囲】
  1. (1)辞書(10)に登録された既に符号化済みのコー
    ド列中の入力コード列に一致する最大長一致部分を求め
    、該最大長一致部分の開始位置と一致長を少なくとも含
    む符号語を作成して出力することで圧縮符号化し、前記
    辞書(10)に入力コード列に一致する符号化済みコー
    ド列がない場合には、該入力コード列をそのまま符号語
    として出力すると共に、前記辞書に新たな符号化済みコ
    ード列として登録するデータ圧縮方式に於いて、 新たな符号化済みコードの登録時に前記辞書(10)が
    一杯になったことを判別した際には、該辞書(10)の
    サイズを1ビット増やした後に登録し、前記符号語中の
    開始位置を現時点の辞書サイズで決まるビット数で表現
    したことを特徴とするデータ圧縮方式。
  2. (2)辞書(10)に登録された既に符号化済みのコー
    ド列の中の入力コード列に一致する最大一致長部分を求
    め、該最大一致長部分の開始位置及び一致長を少なくと
    も含む符号語を作成して出力することで圧縮符号化する
    データ圧縮方式に於いて、前記符号語を作成する際に、
    現時点の辞書サイズで決まるインデクス最大値から前記
    開始位置を示すインデスクを差し引いて最新登録位置を
    初期値とするコードインデクスを作成して前記開始位置
    を示す符号語とし、更に、前記コードインデクスのビッ
    ト数を示す識別子を前記符号語に付加し、前記符号語を
    最小ビット数で表現するようにしたことを特徴とするデ
    ータ圧縮方式。
JP507990A 1990-01-12 1990-01-12 データ圧縮方式 Expired - Lifetime JP2823918B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH03209923A true JPH03209923A (ja) 1991-09-12
JP2823918B2 JP2823918B2 (ja) 1998-11-11

Family

ID=11601384

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP2823918B2 (ja)

Cited By (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
JP2008092582A (ja) * 2001-02-13 2008-04-17 Mosaid Technologies Inc 適応データ圧縮のための方法および装置
WO2020226105A1 (ja) * 2019-05-07 2020-11-12 国立大学法人筑波大学 データの圧縮及び解凍方法、データ圧縮装置、及びデータ解凍装置

Cited By (5)

* 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
JP2008092582A (ja) * 2001-02-13 2008-04-17 Mosaid Technologies Inc 適応データ圧縮のための方法および装置
JP2012100275A (ja) * 2001-02-13 2012-05-24 Mosaid Technologies Inc 適応データ圧縮のための方法および装置
WO2020226105A1 (ja) * 2019-05-07 2020-11-12 国立大学法人筑波大学 データの圧縮及び解凍方法、データ圧縮装置、及びデータ解凍装置
JP2020184672A (ja) * 2019-05-07 2020-11-12 国立大学法人 筑波大学 データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム

Also Published As

Publication number Publication date
JP2823918B2 (ja) 1998-11-11

Similar Documents

Publication Publication Date Title
US7079051B2 (en) In-place differential compression
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
JP3009727B2 (ja) 改良形データ圧縮装置
Nelson et al. The data compression book 2nd edition
US7365658B2 (en) Method and apparatus for lossless run-length data encoding
US7764202B2 (en) Lossless data compression with separated index values and literal values in output stream
JP2010136417A (ja) データ圧縮装置、及びデータ復元装置
JP3241788B2 (ja) データ圧縮方式
CN114520659A (zh) 结合rANS和LZ4编码的数据无损压缩、解码方法
CN104682966B (zh) 列表数据的无损压缩方法
JPH03209923A (ja) データ圧縮方式
JP3241787B2 (ja) データ圧縮方式
CN1656688B (zh) 在压缩之前处理数字数据
US6262675B1 (en) Method of compressing data with an alphabet
US7750826B2 (en) Data structure management for lossless data compression
JP2823917B2 (ja) データ圧縮方式
Yokoo An improvement of dynamic Huffman coding with a simple repetition finder
US11967975B1 (en) Method and apparatus for recursive data compression using seed bits
Kaur et al. Analysis of Lossless Data Compression Techniques
JPH0884260A (ja) 2次元画像データの圧縮方式および伸長方式
JPH04265020A (ja) データ圧縮方式
JP2802135B2 (ja) 画像データ圧縮方法
JP3100206B2 (ja) データ圧縮方法
Hoffman Compression Algorithms for Symbolic Data
CN117614459A (zh) 一种用于超大文件分片传输过程的压缩方法及***