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

データ圧縮方式

Info

Publication number
JPH05241776A
JPH05241776A JP4257792A JP4257792A JPH05241776A JP H05241776 A JPH05241776 A JP H05241776A JP 4257792 A JP4257792 A JP 4257792A JP 4257792 A JP4257792 A JP 4257792A JP H05241776 A JPH05241776 A JP H05241776A
Authority
JP
Japan
Prior art keywords
dictionary
encoding
character string
data
character
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
JP4257792A
Other languages
English (en)
Other versions
JP3241787B2 (ja
Inventor
Shigeru Yoshida
茂 吉田
Yoshiyuki Okada
佳之 岡田
Yasuhiko Nakano
泰彦 中野
Hirotaka Chiba
広隆 千葉
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 JP4257792A priority Critical patent/JP3241787B2/ja
Publication of JPH05241776A publication Critical patent/JPH05241776A/ja
Application granted granted Critical
Publication of JP3241787B2 publication Critical patent/JP3241787B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】ジブーレンペル符号を用いてデータを圧縮する
データ圧縮方式に関し、スライド辞書による符号化であ
って、繰り返し同じ文字列が出現したときの辞書の効率
を改善して高圧縮率を得ることを目的とする。 【構成】入力データを部分列に分解し、該部分列を辞書
に登録済みの最長一致する部分列の参照番号で表わして
符号化する第1符号化手段(動的辞書符号化手段)10
と、第1符号化手段10で符号化した辞書番号を文字列
として入力し、入力文字列に最長一致する辞書に保持し
た符号化済み文字列の開始位置と一致長で符号化する第
2符号化手段(スライド辞書符号化手段)20とを設け
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ジブ−レンペル符号を
用いてデータを圧縮するデータ圧縮方式に関する。近
年、文字コード、ベクトル情報、画像など様々な種類デ
ータがコンピュータで扱われるようになっており、扱わ
れるデータ量も急速に増加してきている。大量のデータ
を扱うときは、データの中の冗長な部分を省いてデータ
量を圧縮することで、記憶容量を減らしたり、速く伝送
したりできるようになる。
【0002】様々なデータを1つの方式でデータ圧縮で
きる方法としてユニバーサル符号化が提案されている。
ここで、本発明の分野は、文字コードの圧縮に限らず、
様々なデータに適用できるが、以下では、情報理論で用
いられている呼称を踏襲し、データの1ワード単位を文
字と呼び、データが任意ワードつながったものを文字列
と呼ぶことにする。
【0003】ユニバーサル符号化の代表的な方法として
ジブ−レンペル(Ziv-Lempel)符号化と算術符号化があ
る。ジブ−レンペル符号では スライド辞書型(ユニバーサル型ともいう)と、 動的辞書型(増分分解型ともいう)の2つのアルゴリ
ズムが提案されている。
【0004】さらに、スライド辞書型アルゴリズムの改
良として、LZSS符号がある(T.C. Bell,“Better O
PM/L Text Compression ”,IEEE Trans. on Commun., V
ol.COM-34, No.12,Dec. 1986参照)やパソコンで用いら
れているLHarc がある。また、動的辞書型アルゴリズム
の改良としては、LZW(Lempel-Ziv-Welch)符号があ
る(T.A.Welch,“A Technique for High-Performance D
ata Compression ”,Computer, June 1984参照)。
【0005】これらの改良方法は補助記憶装置のファイ
ル圧縮や、モデムでの伝送データの圧縮に利用されるよ
うになっている。
【0006】
【従来の技術】従来のジブ−レンペル符号化におけるス
ライド辞書型アルゴリズムと動的辞書型アルゴリズムを
説明する。 1.スライド辞書型アルゴリズム スライド辞書型アルゴリズムは、演算量は多いが、高圧
縮率が得られる方法である。即ち、符号化データを、過
去のデータ系列の任意の位置から一致する最長の系列に
区切り(部分列)、過去の文字列の複製として符号化す
る方法である。
【0007】図10にユニバーサル型ジブ−レンペル符
号の符号器の原理図を示す。Pバッファ12には符号化
済みの入力データが格納されており、Qバッファ10に
はこれから符号化するデータが入力されている。Qバッ
ファ10の文字列をPバッファ12の系列と照合し、P
バッファ12中で一致する最長の文字部分列を求め、P
バッファ12中でこの最長文字列を指定するため次の情
報の組を符号化する。
【0008】
【表1】
【0009】次にQバッファ10内の符号化した文字列
をPバッファ12に移して新たなデータをQバッファ1
0に入力する。以下、同様の操作を繰り返し、データを
部分列に分解して符号化する。このようにジブ−レンペ
ル符号では、現在の文字コードの系列を符号化済みの過
去の系列からの複製として符号化するものである。ジブ
−レンペル符号を用いた場合、文字コードの文書情報は
1/2程度に圧縮できる。 [QIC−122符号]3Mを中心とするメーカの団体
であるQIC(Quauter Inch Cartrrige Standard In
c.)が1/4インチ・カートリッジ磁気テープの標準圧
縮方式として採用した符号である。
【0010】図11はQIC122符号のアルゴリズム
を示したフローチャートであり、次の処理を行う。 S1:Pバッファとして2048バイトの履歴をもち、
その内容を空にする。またQバッファに入力データを詰
める。 S2:Qバッファの文字列に一致するPバッファの最長
文字列Sを検索する。
【0011】S3:検索された最長文字列Sが2文字以
上のときはS5の複製モードに進み、1文字のときはS
4の生データモードに進む。 S4:生データモードでは[フラグビット0][生デー
タ1バイト]の組を符号化する。 S5:複製モードでは、[フラグビット1]を固定長符
号化し、[文字列Sの出現位置][一致長]の組を符号
化する。
【0012】S6:符号化が済んだQバッファの文字列
をPバッファに移すと共に、同じ数の文字をQバッファ
に入力する。同時にPバッファにOバッファから移した
文字枠分の最も古い文字をPバッファから捨てる。 S7:入力データがなくなるまでS1〜S6の処理を繰
り返す。図12はBNFメタ言語で表わされたQIC−
122符号の符号語フォーマットを示す。またBNFメ
タ言語に用いるメタ記号は図13に示す意味をもつ。
【0013】図12のQIC−122符号の符号語フォ
ーマットを詳細に説明すると次のようになる。 (1)圧縮系列(Compressed Stream )は、圧縮ストリ
ング(Compressed String)とエンドマーカで構成され
る。 (2)圧縮ストリングは、生データについては識別ビッ
ト0に続くASCII生バイトで表現され、また圧縮デ
ータについては識別ビット1に続いて圧縮バイトで表現
される。
【0014】(3)ASCII生バイトは、8ビットを
1バイトして表現される。 (4)圧縮バイトは、オフセット(開始位置)とレング
ス(一致長)の組でなる。 (5)オフセット(開始位置)は、識別ビット1の場合
は7ビットで表現される。また識別ビット0のは場合は
11ビットで表現される。
【0015】(6)エンドマーカは、11000000
0であり、オフセットは0となる。 (7)ビットbは0又は1である。 (8)レングス(一致長)は、図12のように可変長符
号で表現される。図14にQIC−122符号の符号化
の具体例を示す。図14では文字列「ABAAAAAA
CABA」が入力した場合を例にとっている。
【0016】まず最初の3文字「ABA」に関してはP
バッファ中の一致する文字数が1文字以下であることか
らASCII生バイトのビット系列を出力する。4文字
目から8文字目までの5つの「A」については、Pバッ
ファの直前文字「A」と一致することから、 圧縮バイト識別ビット 7ビットオフセット識別ビット オフセット=1 レングス=5バイト でなるビット系列「1 1 0000001 110
0」として出力する。
【0017】ここで最大長一致の部分列の開始位置を示
すオフセットの値は、Pバッファの最新登録位置(アド
レス)から前に遡って何番目かを示している。9番目の
文字「C」はPバッファにないことからASCII生バ
イトを出力する。10〜12番目の文字「ABA」はP
バッファの先頭からの3文字として既に登録済みである
ので、 圧縮バイト識別ビット 7ビットオフセット識別ビット オフセット=9 レングス=3バイト でなるビット系列「1 1 0001001 01」を
出力する。
【0018】以上で全ての入力文字の符号化が済んだの
でエンドデータとして「1 1 0000000」を出
力して処理を終了する。 2.動的分解型(増分分解)アルゴリズム このアルゴリズムは、圧縮率はユニバーサル型より劣る
が、シンプルで、計算も容易であることが知られてい
る。
【0019】増分分解型ジプーレンペル符号では、入力
シンボルの系列を X=aabababaa・・・ とすると、成分系列X=X012 ・・・への増分分
解は次のようにする。まずX1 を既成分の右端のシンボ
ルを取り除いた最長の列とし、 X=a・ab・aba・b・aa・・・・ となる。従って、 X0 =λ(空列) X1 =X0 a X2 =X1 b X3 =X2 a, X4 =X0 b X5 =X1 a,・・・ と分解できる。増分分解した各成分系列は既成分系列を
用いて次のような組で符号化する。
【0020】
【表2】
【0021】すなわち、増分分解型アルゴリズムは、符
号化パターンについて、過去に分解した部分列の内、最
大長一致するものを求め、過去に分解した部分列の複製
として符号化するものである。動的辞書型アルゴリズム
の改良としては、 LZW(Lempel-Ziv-Welch) 符号(T.A.Welch,"A Tech
nique for High-Performance Data Compression",ComPu
ter,June 1984 参照) LZJ符号(M.Jakobsson,"Comperssion of Character
Strings by An Adaptive Dictionar",BIT,25 号,19
85年,593−603頁参照のこと)とがある。次に
LZW符号について説明する。 〔LZW符号〕LZW符号の符号化の処理のフローを図
15に示す。即ちLZW符号化は、書き替え可能な辞書
をもち、入力文字コードのデータ中を相異なる文字列に
分け、この文字列を出現した順に番号を付けて辞書に登
録すると共に、現在入力している文字列を辞書に登録し
てある最長一致文字列の番号だけで表して、符号化する
ものである。尚、動的辞書型符号およびLZW符号の技
術は、特開昭59−231683,米国特許4,55
8,302で開示されている。図15の符号化処理は次
のようになる。
【0022】S1:予め全文字につき一文字からなる文
字列を初期値として登録してから符号化を始める。辞書
の登録数nを文字種数Aと置く。カーソルをデータの先
頭の位置に置く。 S2:カーソルの位置からの文字列に一致する辞書登録
の最長文字列Sを見つける。
【0023】S3:文字列Sの辞書番号を〔log2
n〕ビットで表して出力する。ただし、〔log2 n〕
はlog2 n以上の最小の整数である。辞書登録数nを
一つインクリメントする。 S4:文字列Sにカーソルの最初の文字Cを付加した文
字列SCを辞書に登録する。カーソルは文字列Sの後の
文字に移動させる。S2に戻る。
【0024】図16はLZW符号の復号化を示したフロ
ーチャートであり、符号化の逆の処理となる。動的辞書
型アルゴリズムは、辞書内の系列は過去に符号化した
(サンプリングした)系列の中だけから選ぶため、処理
速度が速い。しかし、過去に現れたデータの一部の系列
しか含めないため圧縮率が高く取れない欠点がある。
【0025】動的辞書型アルゴリズムの改良版として、
辞書への学習量を増やしインデックスのみで符号化でき
るようにしたLZJ符号がある。 〔LZJ符号〕LZJ符号の符号化の処理フローを図1
7に示し、また復号化の処理フローを図18に示す。
【0026】ここで、辞書と文字列の表記法を次のよう
に定義する。文字種の集合をAとし、集合Aの文字を組
み合わせてできる文字列をSで表す。文字列Sのi番目
の文字をS(i)する。更に複数の部分文字列S
(i),S(i+1),・・・,S(j)をS(i,
j)とする。辞書をDh (S)で表わし、辞書の木(t
ree)の根(root)から葉(leaf)へのパス
として文字列S中の一定長さhの全ての部分文字列を登
録する。
【0027】図16のLZJ符号化処理は次のようにな
る。 S1:辞書に全文字種の一文字を初期値として登録して
から符号化を始める。辞書の登録数nを文字種数Aとお
く。カーソルk=0とおく。 S2〜S5:k番目の入力文字まで符号化が終了したと
して文字列S(1,k)の全ての部分文字列がすでに辞
書Dh (S(1,k))に登録してある。S(k+
1),・・・の文字列から符号化する。
【0028】詳細に説明すると、次のようになる。 S2:S(k+1),・・から辞書Dh (S(1,
k)) の登録文字列に最長一致する部分文字列S(k+
1,k+z)を見つける。 S3:部分文字列S(k+1,K+z)の辞書番号ax
を[log2 n]ビットで表して出力する。ただし、n
は辞書の現在の登録数であり、[log2 n]はlog
2 n以上の最小の整数である。ここで、符号語ax は部
分文字列S(ix ,jx )を表す。各々のax は辞書D
h (S(1,jx-1 )),(ix ≦jx ≦ix +h,i
x =jx-1 +1)の辞書番号である。
【0029】S4:部分文字列S(k−h+2,k+
1),・・・,S(k+z−h+1,k+z)にnをイ
ンクリメントしながら辞書番号を付けて辞書に追加し、
辞書Dh (S(1,k+z))を構成する。 S5:カーソルk=k+zとおく。 S6:全文字を処理するまでS1〜S5を繰り返す。
【0030】ここでステップS4の文字列の辞書登録を
図示すると図19に示すようになる。次に図18のLZ
J復号化処理は次のようになる。S1:図16のS1と
同様に辞書に全文字種の一文字を初期値として登録す
る。辞書の登録数nを文字種数Aとおく。カーソルk=
0とおく。
【0031】S2〜S4:辞書番号aw が復号化され、
文字列S(1,jw )まで利用することができ、辞書D
h (S(1,jw ))が再構成されている。次に符号語
w+1 を復号する。詳細に説明すると次のようになる。 S2:符号語aw+1 を復号した辞書番号より辞書D
h(S(1,jw ))内の部分列S(iw+1 ,jw+1
を復元する。部分列S(iw+1 ,jw+1 )は辞書内で根
(root)からアドレスaw+1 の節点で表わされる文
字列である。
【0032】S3:文字列S(1,jw+1 )を復号した
後、辞書Dh(S(1,jw+1 ))を図16のS4と同
様に構成する。 S4:カーソルk=jw+1 とおく。 S5:全文字を処理するまでS1〜S4を繰り返す。
【0033】
【発明が解決しようとする課題】このように従来の動的
辞書型ジブ−レンペル符号化は、辞書を木構造にしてお
き、登録文字列と入力文字列との照合によって圧縮を行
なうため、文字列の探索が早く、符号化が高速で行える
利点がある。しかし、一方で全ての文字列のバリエーシ
ョンを辞書に登録しなければならないため、辞書の容量
が大きくなる欠点があった。
【0034】これに対してスライド辞書型ジブ−レンペ
ル符号化は、辞書に符号化済みの一定量の生データを蓄
えるので、辞書の容量が一定であり、辞書の登録及び削
除操作により最新の文字列が辞書として利用できる利点
がある。しかし、動的辞書型のように頻繁に出現する文
字列程、規則性のある長い文字列に見なされるという学
習機能はない。
【0035】このため同じ文字列が頻繁に出現したと
き、辞書が同じ文字列の繰り返しで占められてしまい、
辞書の効率が低下する欠点があった。本発明は、このよ
うな従来の問題点に鑑みてなされたもので、スライド型
辞書による符号化であって、繰り返し同じ文字列が出現
したときの辞書の効率を改善し、高圧縮率を得るように
したデータ圧縮方式を提供することを目的とする。
【0036】
【課題を解決するための手段】図1は本発明の原理説明
図である。本発明は、スライド辞書型アルゴリズムに従
った符号化を行う場合の前処理として、動的辞書型のア
ルゴリズムに従った符号化を行い、この符号化で得られ
た符号列を入力文字列と前処理としてスライド辞書型の
符号化を行うことを基本とする。
【0037】即ち、図1(a)に示すように、入力デー
タを部分列に分解し、この部分列を辞書に登録済みの最
長一致する部分列の参照番号で表わして符号化する第1
符号化手段(動的辞書型符号化手段)10と、第1符号
化手段10で符号化した辞書番号を文字列として入力
し、この入力文字列に最長一致する辞書に保持した符号
化済み文字列の出現位置と一致長で符号化する第2符号
化手段(スライド辞書型符号化手段)20を設けたこと
を特徴とする。
【0038】ここで第1符号化手段10は、辞書に登録
済みの部分列の符号化の使用回数を計数する出現頻度計
数手段を備え、入力文字列に最長一致する辞書の符号化
済み部分列を検索した際に、検索部分列の出現頻度が所
定の閾値以上の場合にのみ参照番号を符号化出力し、閾
値より小さい場合には入力部分列をそのまま出力する。
【0039】また第1符号化手段10としては、符号化
済み文字列を参照番号を付して登録する辞書を有し、入
力文字の部分列に最長一致する辞書中の符号化済み部分
列を検索して参照番号で指定して符号化し、符号化後に
参照番号に次の入力文字を付加した部分列を新たな参照
番号を付して辞書に登録するLZW符号化を行う。更に
第1符号化手段10としては、符号化済み文字列を参照
番号を付して登録する辞書を有し、入力文字列の部分列
に最長一致する辞書中の符号化済み部分列を検索して参
照番号で指定して符号化し、符号化後に符号化済み文字
列の各部分列を順次接頭部分列とし、接頭部分列に辞書
中の部分列を順次加えた一定長の部分列を作成して全て
辞書に登録するLZJ符号化を行う。
【0040】更に本発明のデータ圧縮方式は図1(b)
に示すように、復号データ列を順次保持した辞書を有
し、第2符号化手段20で符号化した符号データを入力
し、この符号データで指定される辞書の出現位置と一致
長により辞書番号又は文字列を復号する第1復号手段3
0と、復号済み文字列を参照番号を付して登録した辞書
を有し、第1復号手段30で復号された復号データによ
る辞書の参照により文字列を復号する第2復号手段40
とを備えたことを特徴とする。
【0041】
【作用】このような構成を備えた本発明のデータ圧縮方
式によれば、動的辞書型アルゴリズムとスライド辞書型
アルゴリズムとによる符号化を組み合わせることにより
効率のよい圧縮ができる。例えば同じ文字列が繰り返し
出現したときには、動的辞書型アルゴリズムに従った符
号化で同じ文字列の繰り返しは1つの参照番号で指定さ
れる1文字に符号化され、これを更にスライド型辞書で
圧縮するようになり、一定量のスライド型辞書を使用し
て同じ文字列が繰り返す場合にも効率よく圧縮できる。
【0042】また動的辞書型アルゴリズムによる符号化
では、高頻度で出現する文字列を対象に最長一致する文
字列の符号化を行うため、出現し易い部分は動的辞書に
よる符号化の段階で短く(小さい参照番号)表され、次
のスライド辞書符号化での一致長をより短くでき、これ
を可変長符号化することによって高圧縮率を得ることが
できる。
【0043】
【実施例】図2は本発明のデータ圧縮方式に用いる符号
化装置の一実施例を示した実施例構成図である。図2に
おいて、符号化装置は第1符号化手段としての動的辞書
符号化部10、第2符号化手段としてのスライド辞書符
号化部20及び制御回路50で構成される。
【0044】動的辞書符号化部10には入力端子11か
らの入力文字列を格納する入力バッファ12、照合回路
13、動的辞書として機能する辞書メモリ14、および
符号化された辞書番号を格納するレジスタ15が設けら
れる。また、スライド辞書符号化部20には動的辞書符
号化部10で符号化された辞書番号の符号列を格納する
Qバッファ21、スライド辞書として機能するPバッフ
ァ22、照合回路23、可変長符号化回路24が設けら
れる。
【0045】図3は図2の符号化装置の符号化処理を概
略的に示したフローチャートである。まずステップS1
で入力データ(入力文字列)を動的辞書により辞書番号
に変換する符号化を行う。この動的辞書を用いた符号化
としては、例えばLZW符号あるいはLZJ符号等を用
いることができる。
【0046】続いてステップS2でステップS1のスラ
イド辞書符号化で得られた辞書番号からなる符号化文字
列を対象に、スライド辞書に登録されている符号化済み
最長一致文字列を検索して、その[出現位置][一致
長]の組または[生データ1文字]で表して符号化す
る。図4は図3のステップS1に示した動的辞書符号化
としてLZJ符号化を行った場合の処理を示したフロー
チャートである。
【0047】図4に示すLZJ符号化のアルゴリズムは
基本的には図17に示した従来のLZJ符号化アルゴリ
ズムと同じであるが、二重の枠で囲んだステップS2〜
S4における次の点が異なる。即ち、図4のステップS
2にあっては、動的辞書に登録された文字列のうち出現
頻度が所定の閾値hf 以上の文字列の中から入力文字列
に最長一致する文字列を検索するようにしている。この
ため、閾値hf より小さい出現頻度の文字列は検索対象
から除外される。
【0048】続いてステップS3で検索された最長一致
する文字列の辞書番号を辞書に登録可能な最大番号mを
表せる固定長ビット数で表現して出力する。更にステッ
プS4にあっては、図19に示すような全ての文字列の
登録と同時に符号化した文字列に含まれる辞書に登録済
みの各文字列について、出現回数を1つカウントアップ
して出現頻度を計数する。
【0049】図5は文字abcdを例にとって動的辞書
符号化により作成された辞書に登録された文字列の木構
造と各文字の出現頻度を示した説明図である。図5
(a)は文字abcdの4文字を対象に動的辞書による
符号化を行って得られた登録文字列の木構造を示してお
り、各文字の左上に辞書に登録した際の参照番号を示
し、文字の下側の枠内に出現頻度を示している。尚、文
字abcdの4文字は初期登録して符号化を開始してい
ることから、出現頻度の計数は特に行わない。
【0050】この例では辞書の深さhがh=3となった
登録状態を示しており、各節点が文字列に対応し、各節
点でその文字列の出現回数を計数している。出現回数は
節点の文字を親とすると、その子供の文字の出現回数の
和が親の出現回数となっている。図5(b)は図4のス
テップS2において、閾値hf =3とした場合の検索対
象となる文字列の木構造を示す。ここで、出現頻度が閾
値hf =3以上となる出現頻度の高い文字列の辞書参照
番号は飛び飛びの値をとることになるが、続いてスライ
ド辞書型符号化を行うため、符号化効率に影響はない。
【0051】また、動的辞書符号化にあっては、図5
(b)に示す出現頻度の高い文字列を対象に符号化を行
うため、出現頻度の低い文字列については符号化されな
いことになる。例えば、文字dは図5(b)の場合1文
字として表され、文字コードと辞書番号が一致するよう
になる。更に、図4のフローチャートに示したように、
スライド辞書型符号化の前処理として行う動的辞書型の
符号化に図4に示すようなLZJ符号化の変形方式を用
いた場合には、所定の閾値以上の文字列として参照番号
の値が所定値以下となる一定長以下の任意長の文字列を
選ぶことができる。
【0052】また、前処理として行う動的辞書型符号化
としては、図4に示したLZJ符号化の変形に限らず、
例えば2文字単位の組合せの中で頻度の高いものを番号
に置き換える等、もっと簡単な方法を用いてもよい。
尚、この場合には置き換える文字列長は固定長となる。
更に、前処理として行う動的辞書型の符号化としては、
図15に示したLZW符号化について、LZJ符号化と
同様、出現頻度を計数し、所定の閾値以上の出現頻度を
もつ文字列を対象に符号化を行うようにしてもよい。
【0053】図6は図3のステップS2で行うスライド
辞書符号化の具体例としてQIC122符号の符号化ア
ルゴリズムを示したフローチャートである。図6に示す
QIC122符合の符号化は符号化する入力データが動
的辞書符号化により得られた辞書の参照番号でなる符号
列を対象に行う点であり、処理内容そのものは図11に
示した従来のQIC122符号の符号化アルゴリズムと
同じである。動的辞書型符号化により得られた符号列を
処理対象とすることによる相違点は、従来はスライド辞
書で扱うデータの1語が1バイト単位であったものが、
本発明の場合には1語が辞書番号のビット数となる点で
ある。
【0054】次に図2の実施例を参照して符号化動作を
説明すると次のようになる。動的辞書符号化部10の入
力端子11に与えられた入力文字列は一定長毎に入力バ
ッファ12に入力される。照合回路13では動的辞書と
して機能する辞書メモリ14の所定の閾値以上の文字列
の中から最長一致する文字列を検索し、検索した文字列
の辞書番号をレジスタ15を経由してスライド辞書符号
化部20のQバッファ21に出力する。
【0055】このとき制御回路50は符号化が済んだ文
字列中の一定長さhの全ての文字列を参照番号を付けて
辞書メモリ14に登録する。一方、スライド辞書符号化
部20にあっては、制御回路23がQバッファ21の辞
書参照番号でなる入力文字列に最長一致するPバッファ
22の中の文字列を検索し、検索した文字列が2文字以
上であれば[出現位置][一致長]の組を出力する。も
し一致長が1文字の場合は生データ(辞書参照番号)1
文字を出力する。
【0056】このとき制御回路50は符号化が済んだ文
字列をQバッファ21よりPバッファ22に移してPバ
ッファの最も古い一定長さh分の文字を捨てると共に、
動的辞書符号化部10のレジスタ15より同じ数の文字
列を入力する。照合回路23から出力された符号データ
は可変長符号化回路24に与えられ、可変長符号に直し
て出力端子25より圧縮信号として出力する。
【0057】図7は本発明のデータ圧縮方式に用いる復
元装置の一実施例を示した実施例構成図である。図7に
おいて、復元装置は第1復号化手段としてのスライド辞
書復号化部30、第2復号化手段としての動的辞書復号
化部40、及び制御回路60で構成される。スライド辞
書復号化部30には可変長復号化回路32、切出し複製
回路33、Qバッファ、スライド辞書としてのPバッフ
ァ35が設けられる。また、動的辞書復号化部40には
レジスタ41、動的辞書として機能する辞書メモリ4
2、及び出力バッファ43が設けられる。
【0058】図8は図7の復号装置の復号処理を概略的
に示したフローチャートである。即ち、本発明の復号化
にあっては、図3に示した符号化の逆の手順をとる。ま
ずステップS1で、図2に示した符号化装置より得られ
た圧縮符号をスライド辞書を用いて復号することで、辞
書番号の符号列を求める。続いてステップS2で復号さ
れた辞書番号により動的辞書を参照して元の文字列を復
元することで、符号化前の元のデータに直す。
【0059】図9は図7の動的辞書復号部40としてL
ZJ復号化を行った場合の処理を示したフローチャート
であり、基本的には図18に示した従来のLZJ復号化
と同じであり、相違点としてはステップS2で前段のス
ライド辞書復号化で復号した固定ビット数で表された辞
書番号に動的辞書を検索して元の文字列を復元している
点である。
【0060】次に図7の復元装置の動作を説明すると次
のようになる。入力端子に与えられた圧縮符号は可変長
復号化回路32で復号化され、復号化された符合が「出
現位置][一致長]の組でなる複製モードの符合のとき
には切出し複製回路33でバッファ35の出現位置と一
致長で指定される所定部分の辞書参照番号が切り出され
る。
【0061】このとき制御回路60は復元した辞書参照
番号をQバッファ34に格納し、Qバッファ34への格
納に応じて古い辞書参照番号をPバッファ35にシフト
し、このシフトに伴ってPバッファ35の中の最も古い
辞書参照番号が同数だけ捨てられる。一方、可変長復号
化回路32で復号された符号が生データ符号の場合には
Pバッファ35を参照する必要がないことからそのまま
出力し、同時にQバッファ34に入力し、Pバッファ3
5への古いデータのシフトを行う。
【0062】スライド辞書復号化部30で復元された辞
書番号からなる文字列は動的辞書復号化部40のレジス
タ41にセットされ、レジスタ41の辞書番号により辞
書メモリ42をアクセスし、指定した参照番号に格納さ
れている文字列を復元して出力端子44より外部に文字
列を出力する。このとき制御回路60はレジスタ41に
入力された辞書番号からなる文字列から作られる新たな
文字列を辞書メモリ42に登録する。
【0063】尚、上記の実施例にあっては、図2及び図
7に示すようにハードウエア構成で符号化及び復号化を
行う場合を例にとるものであったが、本発明はこれに限
定されず、動的辞書符号化部10、スライド辞書符号化
部20、スライド辞書復号化部30、動的辞書復号化部
40の各機能を制御プログラムにより実現し、計算機と
辞書メモリとの組合せによりソフトウエア構成で実現す
るようにしてもよいことは勿論である。
【0064】
【発明の効果】以上説明してきたように本発明によれ
ば、スライド辞書符号化に先立って動的辞書型符号化で
高頻度で出現する文字列が1文字に圧縮できるため、ス
ライド辞書型符号化においてより多くのデータをスライ
ド辞書に格納でき、より多くの候補から最長一致する文
字列が検索できるため、高圧縮率を得ることができる。
【0065】また、動的辞書型符号化にあっては、高頻
度で出現する文字列を対象に符号化を行っており、続い
て行われるスライド辞書型符号化にあっては、出現し易
い部分が短く表されることになり、スライド辞書型符号
化における最長一致文字列の一致長をより短くすること
ができ、最終的に可変長符号化することによって高圧縮
率を得ることができる。
【0066】更に同じ文字列が繰返し出現するような場
合には、前処理として行われる動的辞書型符号化におい
て1語に圧縮されるため、スライド辞書型符号化のみを
行った場合の同じ文字列の繰返しを効率良く圧縮できな
い問題を解消し、高圧縮率を得ることができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明による符号化装置の実施例構成図
【図3】本発明の符号化処理を示したフローチャート
【図4】本発明の動的辞書型符号化として行うLZJ符
号化アルゴリズムを示したフローチャート
【図5】図4のLZJ符号化における出現頻度の計数と
閾値以上の頻度の文字列の符号化を示した説明図
【図6】本発明のQIC122符号の符号化アルゴリズ
ムを示したフローチャート
【図7】本発明による復号化装置の実施例構成図
【図8】本発明の復号化処理を示したフローチャート
【図9】本発明の動的辞書型復号化として行うLZJ復
号化アルゴリズムを示したフローチャート
【図10】スライド辞書型符号化の原理図
【図11】従来のQIC122符号の符号化アルゴリズ
ムを示したフローチャート
【図12】QIC122符号のフォーマット説明図
【図13】図13に使用したBNFメタ言語の説明図
【図14】QIC122符号による符号化の具体例を示
した説明図
【図15】従来のLZW符号化アルゴリズムを示したフ
ローチャート
【図16】従来のLZW復号化アルゴリズムを示したフ
ローチャート
【図17】従来のLZJ符号化アルゴリズムを示したフ
ローチャート
【図18】従来のLZJ復号化アルゴリズムを示したフ
ローチャート
【図19】LZJ符号化における文字列の登録を示した
説明図
【符号の説明】
10:第1符号化手段(動的辞書符号化部) 11,31:入力端子 12:入力バッファ 13,23:照合回路 14,42:辞書メモリ(動的辞書) 15,41:レジスタ 20:第2符号化手段(スライド辞書符号化部) 21,34:Qバッファ 22:Pバッファ(スライド辞書) 24:可変長符号化回路 25,44:出力端子 30:第1復号化手段(スライド辞書復号化部) 32:可変長復号回路 33:切出し複製回路 40:第2復号化手段(動的辞書復号化部) 43:出力バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 千葉 広隆 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】入力データを部分列に分解し、該部分列を
    辞書に登録済みの最長一致する部分列の参照番号で表わ
    して符号化する第1符号化手段(10)と、 該第1符号化手段(10)で符号化した辞書番号を文字
    列として入力し、該入力文字列に最長一致する辞書に保
    持した符号化済み文字列の開始位置と一致長で符号化す
    る第2符号化手段(20)と、を備えたことを特徴とす
    るデータ圧縮方式。
  2. 【請求項2】請求項1記載のデータ圧縮方式に於いて、
    前記第1符号化手段(10)は辞書に登録済みの部分列
    の符号化の使用回数を計数する出現頻度計数手段を備
    え、入力文字列に最長一致する辞書の符号化済み部分列
    を検索した際に、該検索部分列の出現頻度が所定の閾値
    以上の場合にのみ参照番号を符号化出力し、前記閾値よ
    り小さい場合には入力部分列をそのまま出力することを
    特徴とするデータ圧縮方式。
  3. 【請求項3】請求項1,2記載のデータ圧縮方式に於い
    て、前記第1符号化手段(10)は、符号化済み文字列
    を参照番号を付して登録する辞書を有し、入力文字の部
    分列に最長一致する前記辞書中の符号化済み部分列を検
    索して参照番号で指定して符号化し、該符号化後に該参
    照番号に次の入力文字を付加した部分列を新たな参照番
    号を付して前記辞書に登録することを特徴とするデータ
    圧縮方式。
  4. 【請求項4】請求項1,2記載のデータ圧縮方式に於い
    て、前記第1符号化手段(10)は符号化済み文字列を
    参照番号を付して登録する辞書を有し、入力文字列の部
    分列に最長一致する前記辞書中の符号化済み部分列を検
    索して参照番号で指定して符号化し、該符号化後に符号
    化済み文字列の各部分列を順次接頭部分列とし、該接頭
    部分列に辞書中の部分列を加えた一定長の部分列を作成
    して全て辞書に登録することを特徴とするデータ圧縮方
    式。
  5. 【請求項5】請求項1記載のデータ圧縮方式に於いて、 復号データ列を順次格納した辞書を有し、前記第2符号
    化手段(20)で符号化した符号データを入力し、該符
    号データで指定される辞書の出現位置と一致長により辞
    書番号又は文字列を復号する第1復号手段(30)と、 復号済み文字列を参照番号を付して登録した辞書を有
    し、該第1復号手段(30)で復号された復号データに
    よる辞書の参照により文字列を復号する第2復号手段
    (40)と、を備えたことを特徴とするデータ圧縮方
    式。
JP4257792A 1992-02-28 1992-02-28 データ圧縮方式 Expired - Fee Related JP3241787B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4257792A JP3241787B2 (ja) 1992-02-28 1992-02-28 データ圧縮方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4257792A JP3241787B2 (ja) 1992-02-28 1992-02-28 データ圧縮方式

Publications (2)

Publication Number Publication Date
JPH05241776A true JPH05241776A (ja) 1993-09-21
JP3241787B2 JP3241787B2 (ja) 2001-12-25

Family

ID=12639926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4257792A Expired - Fee Related JP3241787B2 (ja) 1992-02-28 1992-02-28 データ圧縮方式

Country Status (1)

Country Link
JP (1) JP3241787B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6778103B2 (en) 1998-08-13 2004-08-17 Fujitsu Limited Encoding and decoding apparatus using context
WO2014097353A1 (ja) * 2012-12-19 2014-06-26 富士通株式会社 圧縮装置、圧縮方法、圧縮プログラム、伸張装置、伸張方法、伸張プログラム、および圧縮伸張システム
WO2015029224A1 (ja) * 2013-08-30 2015-03-05 富士通株式会社 データ圧縮装置、方法およびプログラム
EP3032439A1 (en) 2014-12-10 2016-06-15 Fujitsu Limited Compression computer program and search computer program
US9520896B1 (en) 2015-07-13 2016-12-13 Fujitsu Limited Non-transitory computer-readable recording medium, encoding method, encoding device, decoding method, and decoding device

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6778103B2 (en) 1998-08-13 2004-08-17 Fujitsu Limited Encoding and decoding apparatus using context
US6906644B2 (en) 1998-08-13 2005-06-14 Fujitsu Limited Encoding and decoding apparatus with matching length means for symbol strings
WO2014097353A1 (ja) * 2012-12-19 2014-06-26 富士通株式会社 圧縮装置、圧縮方法、圧縮プログラム、伸張装置、伸張方法、伸張プログラム、および圧縮伸張システム
JPWO2014097353A1 (ja) * 2012-12-19 2017-01-12 富士通株式会社 圧縮装置、圧縮方法、圧縮プログラム、伸張装置、伸張方法、伸張プログラム、および圧縮伸張システム
WO2015029224A1 (ja) * 2013-08-30 2015-03-05 富士通株式会社 データ圧縮装置、方法およびプログラム
US9438271B2 (en) 2013-08-30 2016-09-06 Fujitsu Limited Data compression apparatus and method
AU2013399353B2 (en) * 2013-08-30 2017-03-02 Fujitsu Limited Data compression apparatus, method, and program
JPWO2015029224A1 (ja) * 2013-08-30 2017-03-02 富士通株式会社 データ圧縮装置、方法およびプログラム
EP3032439A1 (en) 2014-12-10 2016-06-15 Fujitsu Limited Compression computer program and search computer program
JP2016110587A (ja) * 2014-12-10 2016-06-20 富士通株式会社 圧縮プログラムおよび検索プログラム
US10311034B2 (en) 2014-12-10 2019-06-04 Fujitsu Limited Computer-readable recording medium
US9520896B1 (en) 2015-07-13 2016-12-13 Fujitsu Limited Non-transitory computer-readable recording medium, encoding method, encoding device, decoding method, and decoding device

Also Published As

Publication number Publication date
JP3241787B2 (ja) 2001-12-25

Similar Documents

Publication Publication Date Title
JP3273119B2 (ja) データ圧縮・伸長装置
JP3009727B2 (ja) 改良形データ圧縮装置
JP2000124810A (ja) 符号化装置及び復号化装置
JP3241788B2 (ja) データ圧縮方式
EP0127815B1 (en) Data compression method
JP3231105B2 (ja) データ符号化方式及びデータ復元方式
JP3241787B2 (ja) データ圧縮方式
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
WO2009001174A1 (en) System and method for data compression and storage allowing fast retrieval
Ghuge Map and Trie based Compression Algorithm for Data Transmission
JPH05152971A (ja) データ圧縮・復元方法
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
JP3242795B2 (ja) データ処理装置及びデータ処理方法
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JPH05241775A (ja) データ圧縮方式
JP3130324B2 (ja) データ圧縮方式
JPH06168097A (ja) データ符号化方式及びデータ復元方式
JPH05134847A (ja) データ圧縮方法
CN117200805B (zh) 一种mcu的低内存占用的压缩和解压方法及装置
JPH06161705A (ja) データ符号化方式及びデータ復元方式
JP3051501B2 (ja) データ圧縮方法
JP3100206B2 (ja) データ圧縮方法
JP3012677B2 (ja) Zl符号化方法
Kumar A plain-text compression technique with fast lookup ability
JPH06149537A (ja) データ圧縮方法及び復元方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010911

LAPS Cancellation because of no payment of annual fees