JPH07221652A - データ圧縮方法 - Google Patents

データ圧縮方法

Info

Publication number
JPH07221652A
JPH07221652A JP893194A JP893194A JPH07221652A JP H07221652 A JPH07221652 A JP H07221652A JP 893194 A JP893194 A JP 893194A JP 893194 A JP893194 A JP 893194A JP H07221652 A JPH07221652 A JP H07221652A
Authority
JP
Japan
Prior art keywords
probability
elements
group
code
data
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.)
Withdrawn
Application number
JP893194A
Other languages
English (en)
Inventor
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 JP893194A priority Critical patent/JPH07221652A/ja
Publication of JPH07221652A publication Critical patent/JPH07221652A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 本発明は、データ圧縮方法に関し、高速に符
号化して、且つ、符号表を用いて、データに適応した高
い圧縮率を得る。 【構成】 入力データ中の文字の出現頻度の順番を所定
の個数の、例えば、2の巾乗分の1の出現確率のグルー
プに分け、該入力データに対する符号化を、該出現頻度
の順番を該順番が属する該グループを表す、Prefix符号
と,該順番を対応する該グループ内の要素番号を表すSu
ffix符号とからなる符号で符号化する方法であって、一
文字以上入力するごとに、該入力文字が属する該出現確
率のグループに応じて、該グループの要素数を増減させ
る。該入力文字の出現頻度順位 1/2 j に属するとき、確
率グループjの要素数を増減させ、その減少分だけ他の
確率グループの要素数を増加させ、増加させる要素数の
割合を各確率グループの出現頻度順確率に比例させるよ
うに構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、文字コード,ベクトル
情報,画像等の様々な種類のデータを圧縮する方法に関
する。
【0002】
【従来の技術】近年、文字コード,ベクトル情報,画像
など様々な種類のデータがコンピュータで扱われるよう
になっており、扱われるデータ量も急速に増加してきて
いる。大量のデータを扱うときは、データの中の冗長な
部分を省いてデータ量を圧縮することで、記憶容量を減
らしたり、速く伝送したりできるようになる。
【0003】このとき、様々なデータを1つのデータ圧
縮方法でデータ圧縮できる適応符号化方法が重要とな
る。又、該データ圧縮においては、文字コードの圧縮に
限らず、様々なデータに適用できる必要があるが、以下
の説明では、情報理論で用いられている呼称を踏襲し、
データの1語単位を文字と呼ぶことにする。
【0004】一文字単位に符号を割り付けてデータ圧縮
する方法として、ハフマン符号があり、さらにハフマン
符号化を簡単化したものに、Unary Prefix符号(以下、
UP符号と略す)がある。ハフマン符号は、元来、デー
タから符号表を作成したのち符号化するという2パスの
符号化手順を取る。そこで、種々のデータに適応して符
号化できるように、ダイナミック・ハフマン符号(以
下、DH符号と略す)が知られている。
【0005】上記DH符号については、例えば、「“ハ
フマン符号の変形",IEEEトランザクション. 情報理論,
第24巻, 第6号,1987, {"Variation a Theme by Huff
man", IEEE Trans. Inform. Theory, Vol. 24, No. 6 1
978 }」, 又は、「ダイナミックハフマン符号の設計と
解析",ACM ジャーナル, 第34巻, 第4号,1987,{"Desig
n and Analysis of Dymanic Huffman Codes", Jornal
of ACM, Vol. 34, No.4,1987 }」が発表されている。
【0006】高い圧縮率を得るときは、上記DH符号
は、データの性質を捉える前処理と接続して用いる。例
えば、パソコン通信のときに利用される書庫管理ソフト
「LHarc 」では、前処理とともに、DH符号化が用いら
れている。
【0007】以下、発明に関係する従来のデータ圧縮方
法として、ハフマン符号,DH符号,UP符号,自己組
織化の並べ替え規則(Self-Organizing Rule)に基づく
符号について説明する。
【0008】ハフマン符号:図9は、ハフマン符号の原
理を説明する図である。例えば、 ASCIIコードで、7ビ
ット/字で表される“ENCODE”の英字を入力した
とき、ハフマン符号では、各文字に符号を対応付けた符
号表を見ながら、入力文字を符号に直す。上記符号表
は、予め、入力するデータに合わせて、出易い文字程、
短い符号となるように作成しておく。英文では、統計的
に、文字“E”が最も出易く、文字“Z”が最も出難い
ことが知られている。このような、統計的な出現頻度に
合わせて、各文字に符号を割り振り、出易い文字“E”
は3ビットの符号で、出難い文字“Z”は10ビットの符
号で表す。このように符号化することで、符号データ
は、元の文字データより平均して少ないデータ量で表す
ことができる。
【0009】従来の代表的な符号化法である、上記ハフ
マン符号は、1950年代に登場した。当初、1950〜1960年
代は、 ROMの容量に制約があったため、ハフマン符号は
最適符号として評価用に用いられ、符号語の構成に人為
的な規則性のあるワイル符号などが用いられていた。こ
のワイル符号は、例えば、Prefix符号と、Suffix符号と
に分けられており、該Prefix符号によって、Suffix符号
のビット数が分かるような符号系であって、論理的に計
算によって符号化ができるという特徴があり、上記符号
表を必要としないことから、前述のように、大容量のメ
モリがな無かった時代に使用されていた。
【0010】その後、技術が進歩し、メモリが大容量化
するとともに、メモリがデータ伝送,蓄積などの分野に
広く利用されようになった。そして、同じ文字が続けて
現れるとき、繰り返し回数を符号化するランレングス符
号化と組合わせるなど、他の前処理法とハフマン符号化
を組合せて使うことも多くなってきた。
【0011】ハフマン符号を用いてデータの種類によら
ないように、データに適応した符号化を実現する方法と
して、次に説明するDH符号が、上記文献等に発表され
ている。
【0012】ダイナミック・ハフマン符号(DH符
号):該DH符号は、入力データ中の各文字の出現頻度
を計数しながら符号化し、文字の計数値が大きく変化し
た時点で、前述のハフマン符号表を作り直して、符号化
する方法である。このDH符号は、本発明には直接関係
していない符号化方法であるので、その詳細について
は、前述の文献に譲り、ここで説明は省略する。
【0013】Unary Prefix符号(UP符号):図10
は、Unary Prefix符号(UP符号)を説明する図であ
る。UP符号については、例えば、「“ハフマン符号外
での符号化方法",EXE マガジン, 第6巻,第9版,3月,1
992,{"Life without Huffman",EXE Magazine, Vol.
6, Issue 9, March 1992 }」に示されている。
【0014】このUP符号も、前述のハフマン符号と同
様に、入力されるデータに基づいて、符号表を作ってか
ら、データの各文字を符号表の対応する符号に変換して
データ圧縮する。このとき、符号が、Prefix符号と,Suf
fix 符号とに分けて表すところに特徴がある。
【0015】具体的には、図10に示されているよう
に、入力データ中の文字を出現確率が大きい順に並べ、
出現確率が、1/2, 1/4, 1/8,・・・ (2の巾乗分の一)ご
との文字のグループに分ける。各グループごとに、Pref
ix符号を与えるとともに、各グループの要素である文字
を一連番号のSuffix符号で表す。このとき、出現確率
が、1/2, 1/4, 1/8, 1/16,・・・ の各グループについて、
それぞれ 1,01, 001, 0001,・・・ と1ビットずつ伸ばし
たPrefix符号を与える。又、Suffix符号の一連番号は、
log2〔グループ要素数〕のビット長で表す。ただし,
〔x〕はx以上の最小の整数を表す。
【0016】上記、UP符号は、各グループの要素数が
2の巾乗個であるときはハフマン符号と同等の符号化効
率が得られる。図10において、スペース,I,E,Nの出現
確率が1/2 であり、M,S,A,B の出現確率が1/4,以下同様
にして、それぞれの出現確率が2の巾乗分の一となる。
該各文字の出現確率に対応して、それぞれ、図示され
ているように、 1,01, 001, 0001,・・・ と1ビットずつ
伸ばしたPrefix符号を与える。又、それぞれの出現確率
1/2,1/4,〜のグループに対応する文字の要素数が、そ
れぞれ、4個,4個,4個,2個,〜であるので、上記
log2〔グループ要素数〕のビット長 "XX","X" で、それ
ぞれの要素文字に対して、一連番号の Suffix 符号を与
えることで、上記Prefix符号と、Suffix符号からなるU
P符号系が形成される。
【0017】自己組織化規則(SOR)に基づく符号
化:図11は、自己組織化規則(SOR)に基づく符号
化方法を示した図である。該自己組織化規則(SOR)
に基づく符号化では、入力した文字列を辞書に蓄え、自
己組織化の並べ替え規則(Self-Organizing Rule)に基
づいて、頻繁に現れる要素ほど、辞書の先頭部分に置か
れるように並べ替える。該並べ替えにより検索を高速化
するとともに、頻繁に現れる要素ほど、参照する番号が
小さくなって参照番号を短いビット数で表せ、データ量
が平均的に減少する。上記、自己組織化規則および参照
番号の符号化法について、以下に説明する。
【0018】1)自己組織化規則:辞書構成法としての自
己組織化規則としては、 (1)Move-To-Front(MTF) :ある要素を参照した後、その
要素を辞書の先頭に置く。 (2)Transpose(TR):参照した要素とその直前の要素の位
置を置き換える。などの方法がある。
【0019】上記(1),(2) の方法を用いると、出易い要
素ほど、辞書の先頭に近い位置に置かれる。 〔具体例〕上記 MTF法を用いた SOR符号化の例を図11
に示す。入力データが既登録文字であるとき、該既登録
文字が登録されている辞書の登録位置(参照番号)で表
し、辞書を並べ替えて先頭に置く。新たに現れた文字は
〔未登録の位置,新たな文字〕の組で表し、辞書の先頭
に格納する。こうすると、連続する文字の2文字目以降
は、最も小さい参照番号“1”で表される。
【0020】図11(a),(b) に示されている例で、具体
的に説明すると、先ず、文字“a”が入力されると、辞
書には、未だ、何も登録されていないので、その未登録
の位置“1”と、該新たな文字“a”で、図示されてい
るように"1a"で符号化される共に、該入力された文字
“a”が、該辞書の先頭位置に登録される。
【0021】次に、文字“b”が入力されると、該
“b”は新たな文字であるので、上記と同様にして、"2
b"で符号化され、該入力された文字“b”が、辞書の先
頭に登録される。
【0022】同様にして、次の“c”が入力されると、
"3c"で符号化され、該入力された文字“c”が、辞書の
先頭に登録される。次に、既登録文字“a”が入力され
ると、該文字“a”の登録位置(アンダーラインで示
す。以下省略)は、図示されている如くに、3番地であ
るので、該既登録文字が登録されている辞書の登録位置
(参照番号)“3”で符号化される。従って、2文字以
上、連続して入力された場合には、最初に入力された時
点で、辞書の先頭に格納,登録されるので、2文字目以
降は、上記登録されている位置(参照番号)“1”で符
号化されることになる。
【0023】上記 MTF法は、公知のリスト構造の辞書を
用いると、辞書の更新がポインタだけの付け替えだけ
で、該 MTF法による符号化を実現することができる。 2)参照番号の符号化:SOR符号化では出易い要素ほど
参照番号が小さくなるので、一定の規則に従って小さい
番号ほど短い符号で表すようにすれば良い。
【0024】図12は、参照番号の符号化方法を説明す
る図である。参照番号の符号化方法として、例えば、図
12に示す、Elias(イライアス) 符号が用いられる。El
ias(イライアス) 符号のγ符号は、2進数に有効桁を示
すprefix(接頭語)として“0”を付けたものである。
図12(a) が、上記γ符号を示しており、suffix符号の
ビット数を、「上記prefix(接頭語)符号の“0”の数
+1」で示すことができるという特徴がある。
【0025】図12(b) に示したδ符号は、上記γ符号
のprefix符号部分 (アンダーラインで示す) を、さら
に、上記γ符号で表した (その部分をアンダーラインで
示す)ものであり、図12(a),(b) を比較すると分かる
ように、δ符号は、γ符号よりビット数を少なくするこ
とができる。
【0026】前述のように、Elias(イライアス) 符号
は、prefix符号より2進数で表現されたsuffix符号の桁
数が分かるので、符号語をビット詰しても、一意に復号
することができる。又、該参照番号の符号化の他の方法
として、参照番号の使用頻度を想定してハフマン符号を
用いることもできる。
【0027】
【発明が解決しようとする課題】上記DH符号化は、一
文字単位の圧縮法としては、最適に近い圧縮率が得られ
る。然し、全ての文字の出現頻度を計数して、ハフマン
符号表の作り直しを行うため、処理に時間がかかるとい
う欠点があった。これに対して、UP符号は符号表の設
計は簡単であるが、適応化させるため、DH符号化のよ
うに全ての文字の出現頻度を計数するようにすると、そ
の長所が失われてしまう問題点があった。又、SOR符
号においては、動的に出現頻度順に並べて符号化するの
で、符号化の処理量は少ないものの,可変長符号として
γ符号やδ符号など、予め、固定した符号を用いるの
で、データの出現頻度に必ずしも適合せず、圧縮率が抑
えられるという欠点があった。
【0028】本発明は上記従来の欠点に鑑み、高速に符
号化して、且つ、符号表を用いて、データに適応した高
い圧縮率を得ることができるデータ圧縮方法を提供する
ことを目的とするものである。
【0029】
【課題を解決するための手段】図1は、本発明の原理説
明図である。上記の問題点は、下記の如くに構成したデ
ータ圧縮方法によって解決される。
【0030】(1) 入力データの1語単位としての文字を
動的に出現頻度順に並べ、入力文字を該出現頻度の順番
として符号化するときの符号化方法であって、入力デー
タの1語の出現頻度の順番を所定の個数のn(n≧2)
の巾乗分の1、例えば、2の巾乗分の1の出現確率のグ
ループに分け、該入力データの1語に対する符号化
を、該出現頻度の順番を該順番が属する該グループを
表すPrefix符号と,該順番を対応する該グループ内
の要素番号を表すSuffix符号とからなる符号で符号化
するとき、一文字以上入力するごとに,該入力文字が属
する該出現確率のグループに応じて、該グループの
要素数を増減させるように構成する。
【0031】(2) 上記(1) 項に記載のデータ圧縮方法で
あって、該確率グループの要素数を該出現頻度順の最
大番号で管理し、該入力文字が出現確率1/nj に属する
とき,確率グループの要素数を減少させ、その減少分
だけ他の確率グループの要素数を増加させ、増加させ
る要素数の割合を各確率グループの出現頻度順確率に
比例させるようにするとともに、該確率グループの要
素数を該出現順の最大番号で管理し、各確率グループの
要素数の増減分は、整数の端数を含めて計算し、各確率
グループで整数となる要素個数をとるように構成す
る。
【0032】(3) 上記(1) 項に記載のデータ圧縮方法で
あって、該確率グループの要素数を管理し、該入力文
字の出現頻度順位が確率 1/nj に属するとき、j=1の
ときは、確率グループ1の該要素数を所定の個数減し、
j≧2のときは、j=1からj=j-1までの各確率グル
ープの該要素数を所定の個数増すとともに、確率グル
ープjの該要素数を所定の個数減すように構成する。
【0033】(4) 上記(2) 項, 又は(3) 項に記載のデー
タ圧縮方法であって、データ入力の初期には、一文字ご
とに、該出現確率グループの要素数を増減させ、入力
データ数が増えるにつれて、複数文字ごとに、該出現確
率グループの要素数を増減させるように構成する。
【0034】(5) 上記(2) 項, (3) 項,(4)項に記載のデ
ータ圧縮方法であって、該一文字以上入力するごとに、
該入力文字が属する該出現確率のグループに応じて、
該グループの要素数を増減させるのに同期して、該出
現頻度の順位を更新するように構成する。
【0035】(6) 上記(1) 項に記載のデータ圧縮方法で
あって、該出現確率グループ内の要素番号を表すSuff
ix符号が、要素数がn(n≧2)の巾乗個のときは、要
素番号を全要素数が表せる最小ビットを用いて表し、要
素数がnの巾乗個でないときは、要素番号を全要素数が
表せる最小ビットと(該最小ビット数─1 )ビットとの
組合せで表すように構成する。
【0036】(7) 上記(1) 項に記載のデータ圧縮方法で
あって、定常状態になったときの、各確率グループ
()の要素数mを予測して、データ入力前の各確率グ
ループ()の要素数mを初期設定するように構成す
る。
【0037】
【作用】即ち、本発明によるデータ圧縮方法は、自己組
織化規則(Self-Organizing Rule)とUP符号とを組み
合わせることによって、適応UP符号を実現するもので
ある。
【0038】先ず、自己組織化規則(SOR)によっ
て、図1(a) に示されているように、入力文字種を動的
に出現頻度順に並べて、辞書を形成する。これを出現確
率が、1/2, 1/4, 1/8,・・・ となるグループ毎に、各グ
ループでの文字の要素数を動的に管理し、入力文字が
属する、各出現確率のグループを用いてUP符号を作
成し、出現データに適応した適応UP符号とする。
【0039】具体的には、初期化の時点で、例えば、25
6 文字種の文字の出現順位を、図1(a) に示した出現確
率が 1/2,1/4,1/8,1/16,1/16の5つの確率グループに
分類しておく。このとき、各確率グループのUP符号
は、図1(a) から明らかな如く、何れも、8ビットで表
現されており、入力される文字に対して、データ圧縮が
なされることはない。
【0040】例えば、出現確率番号(PG番号)“1”
のグループでは、要素数が "128"であるので、上記U
P符号の Prefix 符号は "1"であるが、Suffix符号が、
要素数 "128"で定まる"XXXXXXX" で示した7ビットから
なる8ビットで符号化される。同様にして、出現確率番
号(PG番号)“2”のグループでは、要素数が "6
4" であるので、上記UP符号の Prifix 符号は "01"
であるが、Suffix符号が、要素数 "64" で定まる"XXXXX
X"で示した6ビットからなる8ビットで符号化される。
以下、同様にして、この初期化時においては、全てのグ
ループは、8ビットで符号化されるので、この符号表
の儘では、入力される文字に対して、データ圧縮は起こ
らないことになる。
【0041】ここで、入力文字があると、上記自己組織
化規則(SOR) に基づく、各グループの辞書内の位置
(参照番号) を求めた後、その入力された文字の出現順
位が属するグループの Prefix 符号を求め、次に、該
グループ内の要素番号、即ち、辞書内の位置から、lo
g2 (グループの要素数) のビット数で Suffix 符号を
求める。
【0042】そして、本発明においては、上記自己組織
化規則(SOR) に基づいて、上記辞書を更新する。即ち、
前述の MTF法の場合には、前述の図11に示したよう
に、該入力された文字が属しているグループ内におい
て、参照番号の文字を辞書の先頭に移し、以前に格納し
ていた先頭から参照番号までの文字を一つずつ後ろにず
らして、図1(a) に示したUP符号表を更新する。この
更新処理は、該入力された文字の参照番号が属する上記
PGグループの終端位置、即ち、図1(b) で示した、Pr
efixグループ (PGグループ)の出現確率と、終端位
置の関係図において、それぞれの境界を更新する。この
とき、各確率グループの要素数の増減は次の条件を考
慮して求める。即ち、 1)最終的に出現確率が2の巾乗分の1(1/2j ) ごとの確
率グループに分けられる。 2)各回の要素数の増減の総和は0となる。 3)出現頻度順の確率グループ分けが定常状態に達したと
き,各確率グループの要素数は動的に平衡状態にな
る。
【0043】以上の3条件を用いて,確率グループj
の要素が出現したとき,更新のときの各確率グループG
(i) の増減分DG(i,j) は、図5のように表せ、3条件
は下記のように定式化される。
【0044】(1) 各確率グループの要素の増加割合が
出現確率に比例する。 (2) ΣDG(i,j) =0 (j=1,2,・・・,N) −−−−−更新
のとき増減の総和が0となる。 (3) ΣDG(i,j) × 1/2j =0 (i=1,2,・・・,N) −−出現
確率に応じたjの出現を平均すると増減なし(平衡状
態)。
【0045】具体的には、参照番号が確率グループjに
属するとき、更新のための終端位置の増減分DPは、図5
の確率グループ要素数の増減分より,図6のように表さ
れる。PG番号が“1”のとき、PG1 とPG2 以降と
は、確率1/2 の比で出現することになっているが、PG
2 以降よりPG1 が出る傾向にあるので、PG1 の区間
幅を狭めてバランスを取る。即ち,終端位置P(1) から
1をマイナスし、P(2),P(3),P(4) から、それぞれ 1
/2,1/4,1/8をマイナスする。
【0046】もし、PG番号が2のときは、PG2 が他
のPG1 ,PG3 ,PG4 ,PG5より出る傾向にある
ので、PG2 の区間幅を狭めて、バランスを取る。即
ち,終端位置P(1) に1をプラスし,P(2),P(3),P
(4) からそれぞれ 1/2,1/4,1/8をマイナスする。
【0047】以下、同様にPG番号が3以上のときも同
様な操作を行うことによって、各PGの区間がその出現
確率に応じて動的に再配置される。各終端位置は、少数
を含むものとなるが、後述するように、この終端位置を
用いて、端数を切下げ(または、切上げ)た整数とし
て、各確率グループの要素数,要素番号を求める。
【0048】新たに、文字が入力されるごとに、上記の
ような処理を繰り返していくことにより、各PGグルー
プ内の要素数が、出現確率の多いグループ程、削減
されることになり、上記各グループ内の Suffix 符号
のビット数が少なくなり、結果として、データ圧縮が行
われるようになる。
【0049】上記のように、文字の出現確率を、例え
ば、2の巾乗分の1で管理する場合には、以下の特徴が
ある。即ち、該出現する文字は、出現確率が 1/2の2つ
の出現確率グループを考えると、その何れかに必ず出
現する筈である。従って、該出現する文字は、その出現
確率が、それぞれ、1/2 の2つの確率グループの何れ
かに属することになる。その最初に出現するグループ
に“1”の Prefix 符号を与え、他のグループに
“0”を与える。
【0050】上記において、Prefix符号“0”が与えら
れたグループに対して、上記の同様にして、その出現
確率が、それぞれ、1/2 の2つの確率グループに分け
ると、それぞれのグループの出現確率は、それぞれ、
1/4,1/4 となる。
【0051】以下、同じことを繰り返していくことによ
り、図1(b) に示したように、各出現確率 1/2,1/4,1/
8, 〜のグループに対応して、2の巾乗分の1の確率
分布曲線が得られる。この確率分布曲線に基づいて、文
字が出現する場合、その出現事象には、統計的な最適化
が図られていることになる。
【0052】本発明によるデータ圧縮方法は、上記の如
き、統計的な最適化が図られている文字の出現確率を基
に、実際の文字の出現頻度に対応して、各出現確率グル
ープでの要素数を動的に変更することで、出現文字の
出現順位に適応した要素数を得て、該出現文字の出現順
位に適応した要素数に対応した Suffix 符号を付与する
ことができる。
【0053】その結果、扱うデータに適応した出現確率
と、各出現確率グループ毎の要素数に適応したデータ
圧縮を実現することができる。しかも、このデータ圧縮
方法では、扱うデータ量が多くなる程、上記要素数の動
的な変更, 辞書の更新 (順序の並べ替え) といった学習
の量が多くなり、該データ種別に適応したデータ圧縮が
得られることになる。
【0054】本発明によれば、自己組織化規則(SOR) を
用いるとともに、出現確率グループの出現頻度を管理
するだけで、準最適な動的可変長符号表(UP符号表)
が簡単な手順で設計できる。従って、符号化が高速で実
行できるとともに、この符号表を用いてデータに適応し
た高い圧縮率を得ることができる。
【0055】
【実施例】以下本発明の実施例を図面によって詳述す
る。前述の図1は、本発明の原理説明図であり、図2、
本発明の一実施例を示した図であり、図3,図4は、本
発明の一実施例を流れ図で示した図であって、図3は、
符号化の場合を示し、図4は復号化の場合を示し、前述
の図5は、PG番号jの出現時の各確率グループG(i)
の増分 DG(i,j)を示した図であり、図6は、PG番号j
の出現時の各終端位置P(i) の増分 DP(i,j)を示した図
であり、図7は、1バイト単位のUP符号の初期設定の
例を示した図である。
【0056】本発明においては、入力データの1語単位
としての文字を動的に出現頻度順に並べ、入力文字を該
出現頻度の順番として符号化するときの符号化方法であ
って、該入力データの出現頻度の順番を所定の個数のn
(n≧2)の巾乗分の1、例えば、2の巾乗分の1の出
現確率の確率グループに分け、該入力データに対する
符号化を、該出現頻度の順番を該順番が属する該確率グ
ループを表すPrefix符号と,該順番を対応する該確
率グループ内の要素番号を表すSuffix符号とからな
る符号で符号化するようにし、例えば、一文字以上入力
するごとに,該入力文字が属する該出現確率のグループ
に応じて、該グループの要素数を増減させると共
に、文字が出現する頻度順に並べられる辞書を更新する
手段が、本発明を実施するのに必要な手段である。尚、
全図を通して同じ符号は同じ対象物を示している。
【0057】以下、図1を参照しながら、図2,図3,
図4,及び、図5,図6,図7によって、本発明による
データ圧縮方法を説明する。図2は、本発明のデータ圧
縮を、データ処理装置で行う場合の、該データ処理装置
での動作を概念的に示している。
【0058】先ず、主記憶装置(MM) 2上に展開されてい
るデータ圧縮プログラム 20 を、中央処理装置(CPU) 1
が実行することにより、上記データ圧縮が行われる。こ
のとき、ファイル記憶装置 3から、データ圧縮/復号用
バッファ 22 に、所定の数の文字が読み出される。
【0059】主記憶装置(MM) 2上には、予め、データ圧
縮に係わる最大文字数に対応して、各出現確率グループ
毎の文字グループと、その要素数と、各出現確率グル
ープ毎の終単位置と、UP符号からなる、前述の図1
(a) で示した、UPテーブル24 が設定されている。こ
のUPテーブル 24 において、各出現確率グループに
属する文字グループの、例えば、16進数の「00H 」〜
「FFH 」は、文字コードであっても良いし、ベクトル情
報, 画像データであっても良い。
【0060】又、該主記憶装置(MM) 2上には、文字種が
出現する毎に、前述の自己組織化規則の一つである、例
えば、 MTF法に基づいて、入力文字種の出現位置 (参照
番号) を動的に変更する為の、例えば、リスト構造で構
成されているMTFテーブル(辞書) 25が設けられてお
り、入力された文字種がデータ圧縮される毎に、上記MT
F法により、参照番号の入れ替えを行う。このような操
作を繰り返すことにより、良く出現する文字種が、該M
TFテーブル (辞書) 25の先頭位置に格納されることに
なる。
【0061】以下、上記図2に示したデータ圧縮を行う
データ処理装置の構成例を基に、図3,図4に示した本
発明のデータ圧縮動作のフローチャートに基づいて、本
発明によるデータ圧縮の操作を次に説明する。
【0062】(1) 符号化処理(図2参照) A1: 初期化のステップ。Aを入力データ内の文字種{図
1(a) に示されている例では、256 個}, Nを確率グル
ープ数{図1(a) に示されている例では、5グループ}
とする。
【0063】入力文字を、上記自己組織化規則(SOR) に
基づく辞書内の位置(参照番号)に変換した後、その参
照番号をUP符号で符号化する。そして、辞書の参照番
号を各確率グループの要素数と、各Prefixグループ
(PG)の終端位置(参照番号)P(i) で管理する。全
確率グループの要素数,全確率グループの終端位置
P(i) を初期設定する。一例として、1バイト単位に符
号化する場合を考えると,A=256 であり,N=5とす
る。すなわち、確率1/2, 1/4, 1/8, 1/16, 1/16の5グ
ループに分ける場合、初期設定は、例えば、図1(a) に
示すようになる。
【0064】このとき、各確率グループPGの終端位
置P(i) =P(i-1)1+G(i)(i=1,2,〜,n) 、但し、P
(0)=0 である。又、該確率グループPGの増分 DP(i,
j)を、上記図6に示したように初期設定する。
【0065】A2:データ入力のステップ。データを一文
字入力する。 A3: 入力した文字種から、自己組織化規則(SOR) に基づ
く辞書内の位置(参照番号)を求める。 A4: UP符号化のステップ。各PGの要素数,各PGの
終端位置から求めた参照番号が属するPG番号jと,P
G内の要素番号kを求める。先ず、そのPG番号のPref
ixを符号化する。次に、各PG内の要素数(整数化)m
を求める。ここで、m=P(j)-P(j-1),P(0)=0 である。
次に、PG内の要素番号k(整数化)を〔log2(PGj
の要素数)〕のビット数でSuffixとして符号化する。
{図2のUPテーブル 24 参照} A5: UP符号表を更新するステップ。これは、入力文字
の属するPGの終端位置を、各確率グループPGの要
素数 DP(i,j){図6}によって更新することによって行
う。
【0066】具体的には,参照番号が確率グループjに
属するとき、更新のための終端位置の増減分DPは図5の
確率グループ要素数の増減分より、図6のように表され
る。PG番号が“1”のとき、PG1 とPG2 以降と
は、確率1/2 の比で出現することになっているが、PG
2 以降よりPG1 が出る傾向にあるので、PG1 の区間
幅を狭めてバランスを取る。即ち,終端位置P(1) から
1をマイナスし、P(2),P(3),P(4) から、それぞれ 1
/2,1/4,1/8をマイナスする。
【0067】もし、PG番号が2のときは、PG2 が他
のPG1 ,PG3 ,PG4 ,PG5より出る傾向にある
ので、PG2 の区間幅を狭めて、バランスを取る。即
ち,終端位置P(1) に1をプラスし、P(2),P(3),P
(4) から、それぞれ 1/2,1/4,1/8をマイナスする。
【0068】以下,同様にPG番号が3以上のときも同
様な操作を行うことによって,各PGの区間がその出現
確率に応じて動的に再配置される。各確率グループPG
の終端位置は、少数を含むものとなるが、前述のA4
のステップでは、この終端位置を用いて、端数を切下げ
(または,切上げ)た整数として、各確率グループの要
素数m,要素番号kを求める。 A6: 自己組織化規則(SOR) に基づき、辞書を更新する。
MTFの場合、前述の図11のように参照番号の文字を
辞書の先頭に移し、以前の格納していた先頭から参照番
号までの文字を一つずつ後ろにずらす{図2のMTFテ
ーブル (辞書) 25のポインタの張り替えを行う}。TR
の場合、参照番号の文字と、辞書の一つ先の参照番号を
もつ文字の位置とを互いに交換する。 A7: データの全文字を入力したか検査する。もし、ま
だ、入力文字があれば,A2のステップに戻る。もし、全
文字の入力が終了したならば、符号化を終了する。
【0069】圧縮された1文字毎の圧縮データは、主記
憶装置(MM) 2の圧縮/復号データ格納域 23 に格納され
た後、全ての文字に対するデータ圧縮が完了した時点
で、前述のファイル記憶装置 3に格納される。
【0070】このようにして、前述の図2のUPテーブ
ル 24 の要素数が減少すると、該要素数によって定ま
る、該UP符号の Suffix 符号のビット数が少なくな
り、又、上記辞書の更新により、良く出現する文字種
程、先頭のグループに集まることになり、データ種別
に対応したデータ圧縮が行われる。
【0071】(2) 復号化処理(図3の流れ図参照} 圧縮されているデータを復号化するときには、主記憶装
置(MM) 2上に展開されているデータ復号プログラム 21
が、中央処理装置(CPU) 1 によって実行される。このと
き、ファイル記憶装置 3から、所定の圧縮データが、デ
ータ圧縮/復号用バッファ 22 に読み出され、下記の各
ステップが実行されることにより、圧縮データに対する
復号化が行われる。即ち、 B1: 初期化のステップ。A1と同様である。 B2: 全符号の入力が終了したならば、復号化を終了す
る。もし、復号すべき符号が残っていれば、次のステッ
プ B3 に進む。 B3: UP符号を復号するステップ。UP符号のPrefix符
号を切り出し、PG番号を求める。Prefixは瞬時符号に
なっている。具体的には、最初に"1" のビットが表れる
までが、一つのPrefix符号となる。求めたPrefix符号か
らPG番号jを求める。次に、該PGの要素を表すビッ
ト数分だけ符号を切り出し、PG内の要素番号を求め
る。PG番号と要素番号より辞書の参照番号が求められ
る。 B4: 文字を復元するステップ。参照番号から辞書を引い
て元の一文字を復元し、出力する。 B5: UP符号表の更新のステップ。前述の A5 と同様で
ある。 B6: 自己組織化規則(SOR) に基づき、辞書を更新するス
テップ。A6と同様である。このステップが終了したらB2
に戻る。
【0072】以下においては、上記基本的なデータ圧縮
方法の変形例について説明する。 〔変形例〕1) 上述の実施例では、辞書 (図2のMTF
テーブル 25)の更新と、UP符号 (図2のUPテーブル
24)の更新を一文字の符号化,復号化するごとに行うと
述べた。これは、所定の複数文字ごと(例えば2文字,
4文字ごととか)にサンプリングして行うようにしても
良い。
【0073】このように、複数文字ごとに行うと、一文
字ごと行う場合に比べて、データの性質による符号表の
適応 (即ち、最終形態の符号表の生成) の迅速さは低下
するが、更新の処理量が減って、その分、データ圧縮処
理の高速化ができる。
【0074】データへの適応は、符号化の初期は、図1
(a) で説明したように、零からスタートするので、迅速
であることが要求されるので、入力データを所定の文字
数に区切り、初期は1文字ごとに更新し、次第にサンプ
リングの間隔を拡げて、最終的に、所定の複数文字ごと
にするようにしても良い。上述の実施例では、各出現順
位の初期設定を等確率で出現することを仮定した。しか
し、自己組織化規則を用いて高頻度の文字が辞書の先頭
に来るようにするので、通常、次第に、出現順位が小さ
いものが高頻度で出現するようになり、出現順位は等確
率から入力データのもつ出現順位の確率へと移行する。
従って、各出現順位の初期設定は、入力データのもつ出
現順位の確率を予想して設定しておいても良い。このよ
うに初期設定しておくことにより、出現順位の確率への
適応を速めることができる。図7に入力データのもつ出
現順位の確率を予想した各確率グループの要素数の初期
設定値の例を示す。
【0075】又、辞書の更新と、UP符号の更新とを分
けて考えてもよい。PGの要素数が大きければ、符号の
ビット数は緩やかにしか変わらないので、例えば,辞書
は一文字ごとに更新するが、符号表 (UPテーブル 24)
は複数文字ごとに更新することもできる。
【0076】2) 各出現確率グループの更新は、前述
の図5の終端位置の増減分 DP(i,j)を整数倍して、更新
の速度を速めてやっても良い。また、符号化の初期は更
新の速度を速めて、徐々に更新速度を緩めて最終的に図
6の増減の値にするようにしても良い。増減分を整数倍
して、更新速度の調整については符号化と復号化とで同
期させて用いる限り支障はない。
【0077】3) 複数文字の区間ごとに、各出現確率グ
ループに属した文字数を計数しておき、この計数値に
よって符号表 (上記、UPテーブル 24)を、まとめて更
新しても良い。この場合、次のようにして符号表を更新
する。例えば,出現確率が1/2,1/4, 1/8, 1/16, 1/16
の5個の区間で考える。32文字ごとに、符号表の更新を
行うことにすると、PG1 の計数値を4ビット右シフト
して“1”になれば、PG1 の区間を狭め、“0”なら
拡げる。PG2 の計数値を3ビット右シフトして“1”
になれば、PG2 の区間を狭め、“0”なら拡げる。以
下、同様に、PG 3 PG4 PG5 の計数値を2/1/0
ビット右シフトして“1”になれば、その区間を狭め、
“0”なら拡げる。
【0078】4) 上記の実施例では、出現確率グループ
の要素数をnとすると、UP符号のSuffix符号を〔lo
g2n〕のビット長で表すと述べた。しかし、この表現法
は、nが2の巾乗になるとき以外は、〔log2n〕−log2
nビット分の無駄が生じる。この無駄を補うため、下記
手順のPhasing in Binary Codes を用いても良い。{Ph
asing in Binary Codes の具体例を図8に示す} 即ち、最大数がnのとき,k=〔log2n〕とおくとi(0
≦i<n) の表現は、次の手順を取る。
【0079】(a)符号化:i≦2k −nならば、 (k−
1)ビットで,2進表現を符号化する。そうでなければ、
kビットで (i+2k −n) を符号化する。具体例で説
明すると、例えば、最大数n=65であるとすると、i
≦27-65=0〜63迄は、6ビットで符号化し、i=i+
7-65=64 <65については、7ビットで符号化するとい
うものである。
【0080】尚、上記Phasing in Binary Codes につい
ては、例えば、「“テキスト圧縮",ティモシー. シー.
ベル他, プレティス・ホール社刊,293頁〜294 頁,1990,
{"Text Compression",Timothy.C.Bell etc.,Pretice H
all,PP293 〜294 」に詳しいが、図5に、そのPhasing
in Binary Codes の例を示す。このように、該Phasing
in Binary Codes によると、通常の2進符号では、整数
"0" 〜"8" を符号化すると、全て、4ビットを必要とす
るが、該Phasing in Binary Codes では、図8に示され
ている如く、n=9であるとき、大半 (整数"0" 〜"6"
迄) は、3ビットの符号で表すことができる。上記の符
号化方法は、このPhasing in Binary Codes の特徴を用
いて、Suffix符号のビット数を削減しようとするもので
ある。
【0081】(b)復号化: (k−1)ビットを読込み、そ
の2進表現iが、i≦2k −nならば、iが復号値であ
る。そうでなければ、もう1ビット読み込み、その2進
表現jから(j−2k +n) が復号値である。詳細は省
略する。
【0082】5) 前述の一実施例では、符号の終端を符
号の有無で検出した。これは、終端符号を設け、符号化
時に、終端符号を符号データの最後に付加しておき、復
号化時に終端符号の検出で符号の終端を検知するもので
ある。上記の終端符号としては、データの文字以外に、
終端文字として、出現確率が最小の文字を定義してお
き、符号を割り付けることによって、終端符号を作るこ
とができる。
【0083】尚、上記の実施例では、出現頻度の順番
を、所定の個数の2の巾乗分の1の出現確率のグループ
で分ける例で説明したが、2の巾乗分の1に限定され
るものではなく、一般には、所定の個数のn(n≧2)
の巾乗分の1の出現確率のグループに分けるようにし
ても良いことは言う迄もないことである。
【0084】このように、本発明によるデータ圧縮方法
は、入力データの出現頻度の順番を所定の個数の、例え
ば、2の巾乗分の1の出現確率の確率グループに分
け、該出現頻度の順番を該順番が属する該確率グループ
を表す、Prefix符号と,該順番を対応する該確率グル
ープ内の要素番号を表すSuffix符号とからなる符号で
符号化する方法であって、一文字以上入力するごとに、
該入力文字が属する該出現確率のグループに応じて、
該確率グループの要素数を増減させる。このとき、該
確率グループの要素数を、例えば、該出現頻度順の最
大番号で管理し,該入力文字が出現確率1/2j に属する
とき、確率グループiの該最大番号を所定の個数増すと
ともに、各確率グループj以外の該最大番号を所定の
個数増すようにして、データ圧縮を行うようにしたとこ
ろに特徴がある。
【0085】
【発明の効果】以上、詳細に説明したように、本発明の
データ圧縮方法によれば、自己組織化規則(SOR) を用い
るとともに、出現確率グループの出現頻度を管理する
だけで、準最適な動的可変長符号表が簡単な手順で設計
できる。従って、符号化が高速で実行できるとともに、
この符号表を用いてデータに適応した高い圧縮率を得る
ことができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明の一実施例を示した図(その1)
【図3】本発明の一実施例を示した図(その2)
【図4】本発明の一実施例を示した図(その3)
【図5】PG番号j出現時の各確率グループG(i) の増
分 DG(i,j)を示した図
【図6】PG番号j出現時の各終端位置P(i) の 増分
DP(i,j)を示した図
【図7】1バイト単位のUP符号の初期設定例を示した
【図8】Phasing in Binary Codeの例を示した図
【図9】ハフマン符号の原理を説明する図
【図10】Unary Prefix符号を説明する図
【図11】自己組織化規則(SOR)に基づく符号化方
法を示した図
【図12】参照番号の符号化方法を説明する図
【符号の説明】
1 中央処理装置(CPU) 2 主記憶装置
(MM) 20 データ圧縮プログラム 21 データ復号
プログラム 22 データ圧縮/復号用バッファ 23 圧縮データ
格納域 24 UPテーブル 25 MTF テーブ
ル (辞書) 3 ファイル記憶装置 A1〜A7,B1 〜B6 処理ステップ 出現確率グループ Prefix符号 Suffix符号

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】入力データの1語単位を動的に出現頻度順
    に並べ、入力文字を該出現頻度の順番として符号化する
    ときの符号化方法であって、 入力データの出現頻度の順番を所定の個数のn(n≧
    2)の巾乗分の1の出現確率のグループ()に分け、
    該入力データの1語単位に対する符号化を、該出現頻度
    の順番を該順番が属する該グループ()を表すPrefix
    符号()と,該順番を対応する該グループ()内の
    要素番号を表すSuffix符号()とからなる符号で符号
    化するとき、一文字以上入力するごとに、該入力文字が
    属する該出現確率のグループ()に応じて、該グルー
    プ()の要素数を増減させることを特徴とするデータ
    圧縮方法。
  2. 【請求項2】請求項1に記載のデータ圧縮方法であっ
    て、該入力文字の出現頻度順位が確率1/nj に属すると
    き、確率グループj()の要素数を減少させ、その減
    少分だけ他の確率グループ()の要素数を増加させ、
    増加させる要素数の割合を、各確率グループ()の出
    現頻度順確率に比例させるようにすると共に、各確率グ
    ループ()の要素数を該出現順の最大番号で管理し、
    各確率グループの要素数の増減分は整数の端数を含めて
    計算し、各確率グループ()で整数となる要素個数を
    取ることを特徴とするデータ圧縮方法。
  3. 【請求項3】請求項1に記載のデータ圧縮方法であっ
    て、該確率グループ()の要素数を管理し、該入力文
    字が出現順位確率1/nj に属するとき、j=1のとき
    は、確率グループ1の該要素数を所定の個数減し、j≧
    2のときは、j=1からj=j-1までの各確率グループ
    ()の各要素数を所定の個数増すとともに、該各確率
    グループj()の各要素数を所定の個数減すことを特
    徴とするデータ圧縮方法。
  4. 【請求項4】請求項3に記載のデータ圧縮方法であっ
    て、データ入力の初期には、一文字ごとに、該出現確率
    グループ()の要素数を増減させ、入力データ数が増
    えるにつれて、複数文字ごとに、該出現確率グループ
    ()の要素数を増減させることを特徴とするデータ圧
    縮方法。
  5. 【請求項5】請求項3,又は4に記載のデータ圧縮方法
    であって、該一文字以上入力するごとに、該入力文字が
    属する該出現確率のグループ()に応じて、該グルー
    プ()の要素数を増減させるのに同期して、該出現頻
    度の順位を更新することを特徴とするデータ圧縮方法。
  6. 【請求項6】請求項1に記載のデータ圧縮方法であっ
    て、該出現確率グループ()内の要素番号を表すSuff
    ix符号が、要素数がn(n≧2)の巾乗個のときは、要
    素番号を全要素数が表せる最小ビットを用いて表し、要
    素数がnの巾乗個でないときは、要素番号を全要素数が
    表せる最小ビットと(該最小ビット数─1 )ビットとの
    組合せで表すことを特徴とするデータ圧縮方法。
  7. 【請求項7】請求項1に記載のデータ圧縮方法であっ
    て、定常状態になったときの、各確率グループ()の
    要素数mを予測して、データ入力前の各確率グループ
    ()の要素数mを初期設定することを特徴とするデー
    タ圧縮方法。
JP893194A 1994-01-31 1994-01-31 データ圧縮方法 Withdrawn JPH07221652A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP893194A JPH07221652A (ja) 1994-01-31 1994-01-31 データ圧縮方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP893194A JPH07221652A (ja) 1994-01-31 1994-01-31 データ圧縮方法

Publications (1)

Publication Number Publication Date
JPH07221652A true JPH07221652A (ja) 1995-08-18

Family

ID=11706416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP893194A Withdrawn JPH07221652A (ja) 1994-01-31 1994-01-31 データ圧縮方法

Country Status (1)

Country Link
JP (1) JPH07221652A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2367459A (en) * 2000-09-28 2002-04-03 Roke Manor Research Method of compressing data packets
JP2006198890A (ja) * 2005-01-20 2006-08-03 Dainippon Printing Co Ltd 二次元コードを印刷した書籍、および書籍閲覧装置
JP2006345374A (ja) * 2005-06-10 2006-12-21 Oki Electric Ind Co Ltd データ符号化装置,データ復号装置,データ符号化方法およびデータ復号方法
CN116610265A (zh) * 2023-07-14 2023-08-18 济南玖通志恒信息技术有限公司 一种商务信息咨询系统的数据存储方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2367459A (en) * 2000-09-28 2002-04-03 Roke Manor Research Method of compressing data packets
JP2006198890A (ja) * 2005-01-20 2006-08-03 Dainippon Printing Co Ltd 二次元コードを印刷した書籍、および書籍閲覧装置
JP2006345374A (ja) * 2005-06-10 2006-12-21 Oki Electric Ind Co Ltd データ符号化装置,データ復号装置,データ符号化方法およびデータ復号方法
CN116610265A (zh) * 2023-07-14 2023-08-18 济南玖通志恒信息技术有限公司 一种商务信息咨询系统的数据存储方法
CN116610265B (zh) * 2023-07-14 2023-09-29 济南玖通志恒信息技术有限公司 一种商务信息咨询系统的数据存储方法

Similar Documents

Publication Publication Date Title
EP0695040B1 (en) Data compressing method and data decompressing method
US5229768A (en) Adaptive data compression system
Witten et al. Arithmetic coding for data compression
JP3009727B2 (ja) 改良形データ圧縮装置
US5532694A (en) Data compression apparatus and method using matching string searching and Huffman encoding
US11362671B2 (en) Systems and methods of data compression
JP3302210B2 (ja) データ符号化/復号化方法及び装置
US6225922B1 (en) System and method for compressing data using adaptive field encoding
JPS6356726B2 (ja)
EP1266455A1 (en) Method and apparatus for optimized lossless compression using a plurality of coders
JPH08167852A (ja) データ圧縮方法及び装置
US11606103B2 (en) Data compression method, data compression device, data decompression method, and data decompression device
US5010344A (en) Method of decoding compressed data
JPH07221652A (ja) データ圧縮方法
Zavadskyi Binary-coded ternary number representation in natural language text compression
Fruchtman et al. Bidirectional adaptive compression
Yokoo An adaptive data compression method based on context sorting
JP2590287B2 (ja) データ圧縮方法およびデータ圧縮装置
Yokoo Data compression using a sort-based context similarity measure
JPH06168097A (ja) データ符号化方式及びデータ復元方式
EP0494038A2 (en) Run-length encoding in extensible character sets
Plantinga An asymmetric, semi-adaptive text compression algorithm
JP4497029B2 (ja) データ符号化装置,およびデータ符号化方法
JPH04280517A (ja) データ圧縮および復元方式
US7538697B1 (en) Heuristic modeling of adaptive compression escape sequence

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010403