JP3276860B2 - データ圧縮/復元方法 - Google Patents

データ圧縮/復元方法

Info

Publication number
JP3276860B2
JP3276860B2 JP23186796A JP23186796A JP3276860B2 JP 3276860 B2 JP3276860 B2 JP 3276860B2 JP 23186796 A JP23186796 A JP 23186796A JP 23186796 A JP23186796 A JP 23186796A JP 3276860 B2 JP3276860 B2 JP 3276860B2
Authority
JP
Japan
Prior art keywords
context
character
encoding
encoded
registered
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 - Fee Related
Application number
JP23186796A
Other languages
English (en)
Other versions
JPH1079673A (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 JP23186796A priority Critical patent/JP3276860B2/ja
Priority to US08/828,558 priority patent/US6128412A/en
Publication of JPH1079673A publication Critical patent/JPH1079673A/ja
Priority to US09/406,811 priority patent/US6542644B1/en
Application granted granted Critical
Publication of JP3276860B2 publication Critical patent/JP3276860B2/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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ圧縮/復元方
法に係わり、特に、符号化対象文字の直前n文字の文字
列(文脈)に続いて出現する符号化対象文字の出現確率を
用いて符号化対象文字を可変長符号化あるいは可変長符
号を文字に復元する確率統計型データ圧縮/復元方法に
関する。
【0002】
【従来の技術】近年のコンピュータの急速な進歩に伴
い、コンピュータ内で、大容量のデータが取り扱われる
ようになっており、伝送時間を短縮するためや、記憶装
置を効率的に利用するために、データを圧縮することが
行われている。
【0003】データを圧縮する際に用いられる符号化方
法としては、さまざまなものが知られている。このう
ち、文字コード、ベクトル情報、画像などの対象データ
に限定せずに様々なデータに適用可能な符号化は、ユニ
バーサル符号化と呼ばれている。ユニバーサル符号化と
しては、文字列の類似性を利用する辞書型符号化と、文
字の出現頻度を利用する確率統計型符号化が知られてい
る。なお、以下の説明においては情報理論に基づきデー
タの1word単位を「文字」と表記し、データが任意word
つながったものを「文字列」と表記することにする。
【0004】確率統計型圧縮方式は、統計的な各文字の
出現頻度(出現確率)に従い、出現確率の高い文字に対
して短い符号長を割り振ることによって圧縮効果を図る
方式である。確率統計型符号化方式の代表的な方式とし
ては、(1)算術符号化(例えば、文献"Arithmetic Codin
g for Data Compression" IAN H.WITTEN他著 Commun.of
ACM Vol.130 No.6P 520-540, あるいは"An Adaptive D
ependency Sorce Model for Data Compression Scheme"
D.M. Abrahamson著 Commun.of ACM Vol.132No.1 P77-8
3参照)や、■(2)ハフマン符号化方式(例えば、文献“D
ynamic Huffman Coding” Donald E.Knuth著 Journal o
f Algorithms Vol.6 P163-180参照)がある。ハフマン符
号化では、各文字に対する符号として、その文字の出現
頻度に逆比例した符号長を有する符号(ハフマン符号)
が使用される。ハフマン符号化の詳細を説明する前に、
ハフマン符号の生成時に用いられるデータ構造である符
号木の説明を行うことにする。
【0005】図18に符号木の一例を示す。図中、○と
□で示された点が節点(ノード)である。節点間を結ぶ線
分は「枝」と呼ばれ、1番上にある節点は「根」と呼ば
れる。また、ある節点Xに「枝」で接続されている下の
節点Yは、節点Xの「子」と呼ばれ、逆に、節点Xは節
点Yの「親」と呼ばれる。「子」を持たない節点は
「葉」と呼ばれ、各「葉」には文字が対応づけられる。
また、「葉」を除く節点は「内部節点」と呼ばれ、
「根」から各節点までの「枝」の数がレベルと呼ばれて
いる。
【0006】符号木を用いた符号化時には、「根」か
ら、符号化すべき文字と対応づけられている「葉」に至
る経路が符号として出力される。すなわち、「根」から
目的とする「葉」に至るまでの各節点において左に分岐
したときには“1”が出力され、右に分岐したときには
“0”が出力される。たとえば、図18に示した符号木
では、節点番号7の「葉」に対応づけられている文字A
に対しては、符号“00”が出力され接点番号8の
「葉」に対応づけられている文字Bに対しては、符号
“001”が出力され、復号時には、「根」から、復号
対象であるデータの各ビットの値に従って各節点を辿っ
たとき到達する「葉」に対応づけられている文字が出力
される。
【0007】ハフマン符号化では、このような符号木
が、次のような手順(ハフマンアルゴリズムと呼ばれて
いる。)で生成される(図19参照)。 (1) 各文字に対応する節点(初期時は葉)を用意し、各節
点に対して、対応する文字の出現頻度を記録しておく。 (2) 出現頻度の最も小さい2つの節点に対して、新たな
節点を1つ作成し、作成した節点と元の2つの節点とを
それぞれ枝で結ぶ。また、枝で結んだ元の2つの節点の
出現頻度の和を、作成した新たな節点の出現頻度として
記録する。 (3) ついで、出現頻度の最も小さい2つの節点に対して
新たな節点を1つ作成し、作成した新たな節点と元の2
つの節点とをそれぞれ枝で結ぶ。また、枝で結んだ2つ
の節点の出現頻度の和を、作成した新たな節点の出現頻
度として記録する。以後、親を有する節点がなくなるま
で(3)の操作を継続する。
【0008】以上のような手順で生成された符号木で
は、各文字に対して、その文字の出現頻度に逆比例した
符号長を有する符号が割り当てられることになる。この
ため、この符号木を用いて符号化を行えば、データの圧
縮が行えることになる。ハフマン符号を用いた符号化
は、符号木が固定の静的符号化と符号木を各文字の出現
頻度に応じて変形する適応的符号化がある。ところで、
ハフマン符号化では、1文字を符号化すると、整数ビッ
トからなる符号が生成される。これに対して、算術符号
化では、一文字に対して端数ビットを割り当てることが
出来る。算術符号化では、0以上、1未満の区間(以下
[0,1)と記す)が、符号化すべきデータを構成する各
文字の生起確率(出現頻度)に応じて順次狭められてい
く。そして、全ての文字に対する処理が終わったとき
に、狭められた区間内の1点を表す数値が符号として出
力される。
【0009】たとえば、符号化対象となる文字がa、
b、c、d、eの5つであり、それらの文字の生起確率
が、それぞれ、0.2, 0.1, 0.05, 0.15, 0.5であっ
た場合、図20に示したように、各文字に対して、その
生起確率に応じた区間幅を有する区間が割り当てられ
る。そして、符号化すべき文字列が“abe”であった
場合には、図21に模式的に示したように、まず、区間
[0,1)が、文字“a”に対する区間[0,0.2)に狭めら
れる。次いで、その区間[0,0.2)が各文字の生起確率
に応じた区間に分割され、次の文字である“b”に対応
する区間[0.04、0.06)が文字列“ab”の区間として
選択される。そして、その区間 [0.04、0.06)がさら
に各文字の生起確率に応じた区間に分割され、次の文字
である“eに対応する区間[0.05、0.06)が文字列“a
be”の区間として選択される。その後、その区間内の
任意の点(たとえば下限)の位置を2進表示した際の少
数点以下のビット列が符号化結果として出力される。
【0010】確率統計型符号化では、さらに圧縮効果を
高めるために、符号化すべき文字の直前に現れた文字列
(文脈)と対応づけて、各文字の生起確率を求めること
も行われている。この場合、符号化は、図22に示すよ
うに、文脈収集部(文脈登録部)1と可変長符号化部2
とを備える装置によって実現される。文脈収集部1は、
図23に示したような文脈木を用いて、現れた文字列
(文脈)の記憶とその出現回数の計数を行い、ある文脈
後に各文字が現れる条件付き出現確率(以後単に出現確
率という)を求める。可変長符号化部2は、文脈収集部
1によって求められた出現確率に応じた長さを有する符
号を生成する。なお、符号を生成する際、可変長符号化
部2は、更新される前の出現確率を用いる。
【0011】たとえば、図23において文脈”abc”
がまだ登録されていない状況において(文脈”ab”は
登録されている)、図24に示すように、”ab”に続
いて符号化対象文字”c”が入力された場合、可変長符
号化部2は文脈”abc”が登録されているかチェック
し、登録されていないため1文字少なくした文脈”b
c”が登録されているかチェックする。文脈”bc”は
登録されているから、可変長符号化部2は”bc”の出
現確率P(c/b)を用いて算術符号化により符号化対象文
字”c”の符号化を行う。又、文脈収集部1は、文脈”
bc”の出現確率P(c/b)を再計算して記憶すると共
に、文脈“ab”に続いて符号化対象文字”c”を連結
し、又、文脈“ab”に続いて符号化対象文字”c”が
現れる出現確率P(c|a,b)の条件つき出現確率を計算し
て記憶する。その後、可変長符号化部2は“ab”に続
いて符号化対象文字“c”が再度現れると、文脈”ab
c”の出現確率P(c|a,b)を用いて算術符号化により符
号化対象文字”c”の符号化を行い、文脈収集部1は文
脈”abc”の出現確率P(c|a,b)の再計算を行って記
憶する。以後、同様な処理により文脈の登録と、登録さ
れた文脈を用いた可変長符号化が行われる。
【0012】文脈木の登録方法としては、図25(a),
(b)に示す方法があるが、どちらの方法で文脈木を登録
してもよく、又、ハッシュ表などのように木構造をもた
なくてもよい。図25では符号化対象文字の直前2文字
と符号化対象文字よりなる2次文脈を順次登録して文脈
木を構成しており、(a)は文字列”cacbcaaa
bca”が入力された場合において2次文脈の先頭文字
を「根(root)」に接続してなる文脈木を示し、(b)は
文字列”cacbcaaabca”が入力された場合に
おいて2次文脈の末尾文字を「根(root)」に接続してな
る文脈木を示している。
【0013】文脈登録処理における具体的な処理手順と
してはさまざまなものが知られていおり、文脈の次数
(文脈の文字数)を固定するものと、固定しないもの
(Blending文脈)に大別されている(例えば、文献"Mode
ling for Text Compression"TIMOTHY BELL他著 ACM Com
puting Surveys Vol.21,No.4参照)。文脈の次数を固定
する方法は、条件つき出現確率を求める文脈の長さ(次
数)を固定する方法である。例えば、次数を2とする
と、直前2文字に符号化対象文字を連結してなる2次文
脈を登録し、該2次文脈の条件付き出現確率p(Xt|
Xt-2,Xt-1)を計算して記憶する。ただし、Xtは符
号化対象文字、Xt-1、Xt-2はそれぞれ直前の第1文
字、第2文字である。Blending文脈(ブレンドモデル:
次数の混合)は、次数を固定せずに入力データに応じて
登録文脈の次数を伸ばす方法である。登録文脈の次数を
延ばす方法としては逐次登録法が知られている。図26
は文字列”cacbcaaabca”が入力された場合
における逐次登録法により登録された文脈木の説明図で
ある。初期時各文字a,b,cが「根(root)」に接続さ
れ、その出現確率が初期設定されている。
【0014】かかる状態で、第1文字”c”が入力す
ると、"c"の出現確率が符号化されて出力され、”c”
の出現確率が更新される。 第2文字”a”が入力すると、”a”の符号化に使用
できる文脈(ca)が登録されていないから、"a"の出
現確率が符号化されて出力されると共に”a”の出現確
率が更新される。又、文字”a”が直前文字”c”の下
に結合されて文脈”ca”が登録される。 第3文字”c”が入力すると、”c”の符号化に使用
できる文脈(cac,ac)が登録されていないか
ら、"c"の出現確率が符号化されて出力されると共に”
c”の出現確率が更新される。又、文字”c”が直前文
字”a”の下に結合されて文脈”ac”が登録される。 第4文字”b”が入力すると、”b”の符号化に使用
できる文脈(cacb,acb,cb)が登録されてい
ないから、"b"の出現確率が符号化されて出力されると
共に”b”の出現確率が更新される。又、文字”b”が
直前文字”c”の下に結合されて文脈”cb”が登録さ
れる。
【0015】第5文字”c”が入力すると、”c”の
符号化に使用する文脈(cacbc,acbc,cb
c,bc)が登録されていないから、"c"の出現確率が
符号化されて出力されると共に”c”の出現確率が更新
される。又、文字”c”が直前文字”b”の下に結合さ
れて文脈”bc”が登録される。 第6文字”a”が入力すると、符号化に使用できる文
脈”ca”が登録されているから、文脈”ca”の出現
確率p(a/c)を符号化して出力すると共に、文脈”c
a”の出現確率を更新する。又、文脈”ca”が該文脈
の直前文字”b”の下に結合されて文脈”bca”が登
録される。以下同様に、逐次登録法では文字が入力され
る毎に文脈が1次づつ伸びてゆく。
【0016】図27は”FUJITSU”なる文字列が
連続して3回入力された場合の逐次登録法の説明図であ
る。初期時、各文字F,U,J,I,T,S,Uが符号
化文脈(0次の文脈)として登録されている(図27
(a))。かかる状態で最初の文字列”FUJITS
U”が入力されると、(b)に示すように文脈 F FU UJ JI IT TS SU が登録される。
【0017】この状態で、次の文字列”FUJITS
U”が入力されると、(b)の登録文脈が符号化文脈と
なって符号化が行われ、(d)に示すように、 F FU FUJ UJI JIT ITS TSU が登録される。
【0018】この状態で、次の文字列”FUJITS
U”が入力されると、(d)の登録文脈が符号化文脈と
なって符号化が行われ、(e)に示すように、 F FU FUJ FUJI UJIT JITS ITSU が登録される。以下同様に、逐次登録法では文字が入力
される毎に文脈が1次づつ伸びてゆく。
【0019】図28は従来のブレンドモデル圧縮方法の
処理フローである。まず、文字番号tを0に初期化し
(ステップ101)、ついで、文字番号tを1歩進し、
t番目の文字Xtを入力すると共に(ステップ10
2)、次数nを最長文脈次数Nとする(ステップ10
3)。しかる後、文脈木に文脈X(t-n,t-1)が登録され
ているかチェックする(ステップ104)。尚、文脈X
(t-n,t-1)は文字列{Xt-n,Xt-n+1,・・・,Xt-1}
である。文脈X(t-n,t-1)が登録されていなければ次数
nを1減小し(ステップ105)、1文字短くした文脈
が登録されているかチェックする(ステップ104)。
文脈X(t-n,t-1)が登録されていれば、文脈X(t-n,t-1)
と符号化対象文字Xtの組み合わせが文脈木に保持され
ているかチェックする(ステップ106)。保持されてい
ない場合には、文脈X(t-n,t-1)に続くエスケープコー
ド(ESCコード)を符号化して出力し(ステップ10
7)、以後、ステップ105以降の処理を繰り返す。
【0020】文脈X(t-n,t-1)と符号化対象文字Xtの組
み合わせが文脈木に保持されていれば、文脈X(t-n,t-
1)に続いて符号化対象文字Xtが出現する確率を用いて
符号化して出力する(ステップ108)。ついで、すべ
てのデータの符号化が終了したかチェックし(ステップ
109)、終了してなければステップ102に戻り、次
の符号化対象文字について上記処理を繰り返す。尚、以
上の圧縮符号化処理と並行して文脈木の逐次登録処理が
行われる。
【0021】図29は従来のブレンドモデル復元方法の
処理フローである。まず、文字番号tを0に初期化し
(ステップ121)、ついで、文字番号tを1歩進する
と共に(ステップ122)、次数nを最長文脈次数Nと
する(ステップ123)。しかる後、文脈木に文脈X(t
-n,t-1)が登録されているかチェックする(ステップ12
4)。尚、文脈X(t-n,t-1)は既に復元したn個の最新
文字列{Xt-n,Xt-n+1,・・・,Xt-1}である。文
脈X(t-n,t-1)が登録されていなければ次数nを1減小
し(ステップ125)、1文字復元文字列を短くした文
脈が登録されているかチェックする(ステップ12
4)。文脈X(t-n,t-1)が登録されていれば、該文脈X
(t-n,t-1)を条件としてt番目の符号を文字コードに復
元する(ステップ126)。
【0022】ついで、復元した文字コードがESCコー
ドであるかチェックし(ステップ127)、ESCコー
ドであれば、ステップ125以降の処理を繰り返す。一
方、ESCコードでなければ、復元した文字コードを出
力する(ステップ128)。文字コード出力後、すべて
のデータについて復元処理が終了したかチェックし(ス
テップ129)、終了してなければステップ122に戻
り、次の符号について上記処理を繰り返す。尚、以上の
復元処理と並行して文脈木の逐次登録処理が行われる。
以上のようにブレンドモデルによるデータ圧縮/復元法
では、文脈毎に未登録を示すESCコードを含めて各文
字の条件付き出現確率(または符号そのもの)を保持
し、文字を圧縮するまで次数を一つづつ落としながら符
号を出力し、復元時も同様に文字コードが復元されるま
で次数を一つづつ落としながら文字コードに復元する。
【0023】
【発明が解決しようとする課題】しかし、ブレンドモデ
ルにおいて文脈を長くとると(文脈次数が大きくなる
と)、以下のデメリットが顕著になる。すなわち、 (1) 各文脈の出現回数が少なくなり、統計的な偏りが出
にくくなる。 (2) 文脈のバリエーションが増え、全てを登録すること
はメモリ上不可能である。 (3) 文脈を検索するのに時間がかかる。 この結果、従来のブレンドモデルでは、圧縮/復元スピ
ードの向上、圧縮率の向上、メモリの有効利用の点で限
界があった。
【0024】以上から本発明の第1の目的は、文脈の相
関を測り、相関の強い、効果的な文脈のみ厳選して符号
化文脈として使用し、これにより、無意味に長い文脈を
符号化文脈として使用しないようにでき、又、符号化の
簡略化(圧縮/復元スピードの向上)、圧縮率の向上を
図れるようにすることである。本発明の第2の目的は、
相関の強い、効果的な文脈のみ厳選して登録することに
より、無意味に長い文脈を登録しないようにでき、しか
も、符号化の簡略化、メモリの有効利用、圧縮率の向上
を図れるようにすることである。本発明の第3の目的
は、相関の強い文字列のところは、1文字づつ符号化す
るのではなく、文字列で符号化することによって圧縮/
復元スピードの向上、符号化効率の向上を図れるように
することである。本発明の第4の目的は、符号化文脈の
検索範囲を相関の強い、効果的な文脈に限定し、無意味
に長い文脈を符号化文脈として使用しないようにでき、
又、符号化の簡略化、圧縮率の向上を図れるようにする
ことである。
【0025】
【課題を解決するための手段】上記第1の目的は本発明
によれば、符号化対象文字の直前n文字の文字列(文脈)
に続いて出現する符号化対象文字の出現確率を用いて符
号化対象文字を可変長符号化あるいは可変長符号を文字
に復元する確率統計型データ圧縮/復元方法において、
(1) 文脈の長さ(次数)を固定せずに入力データに応じ
て文脈の次数を延ばして登録する手段、(2) 所定の条件
を満足する登録文脈(例えば、文脈の出現頻度が一定値
以上の登録文脈、あるいは文脈に続いて出現する文字の
中で良く出る文字の出現頻度が一定値以上の登録文脈)
を符号化に使用する文脈(符号化文脈)として選択する
手段、(3) 該符号化文脈を用いて符号化対象文字を可変
長符号化あるいは可変長符号を文字に復元する手段によ
り達成される。
【0026】上記第2の目的は本発明によれば、符号化
対象文字の直前n文字の文字列(文脈)に続いて出現する
符号化対象文字の出現確率を用いて符号化対象文字を可
変長符号化あるいは可変長符号を文字に復元する確率統
計型データ圧縮/復元方法において、文脈の長さ(次
数)を固定せずに入力データに応じて文脈の次数を延ば
して登録する際、符号化対象文字より前の文字の符号化
文脈に基づいて登録文脈を厳選する手段により達成され
る。登録文脈厳選手段は、例えば、(1) 直前文字で使用
した符号化文脈に直前文字を加えた文字列を登録文脈の
対象とし、あるいは、(2) 符号化対象文字より前の文字
の符号化文脈の次数が連続して一次以上の場合、これら
各文脈及び直前文字よりなる文脈を登録文脈の対象と
し、あるいは、(3) 連続するm文字のそれぞれについて
符号化文脈を用いて符号化した場合、各文脈の長さLm
が、L1<L2<・・・<Lmを満たす各文脈を連結した
文脈を登録文脈の対象とする。
【0027】上記第3の目的は本発明によれば、符号化
対象文字の直前n文字の文字列(文脈)に続いて出現する
符号化対象文字の出現確率を用いて符号化対象文字を可
変長符号化あるいは可変長符号を文字に復元する確率統
計型データ圧縮/復元方法において、文脈の長さ(次
数)を固定せずに入力データに応じて文脈の次数を延ば
して登録する際、符号化対象文字の直前文字の符号化文
脈と符号化対象文字の符号化文脈の相関が強い場合、こ
れら符号化文脈の一部と符号化対象文字とを併せて1つ
の文字とみなして登録文脈を決定する手段により達成さ
れる。この登録文脈決定手段は、例えば、直前文字の符
号化文脈の次数及び符号化対象文字の符号化文脈の次数
が共に所定次数以上(具体的には2次以上)の場合、直前
文字と符号化対象文字を1つの文字として合成し、直前
文字の符号化文脈に合成文字を結合して登録文脈とす
る。
【0028】上記第4の目的は本発明によれば、符号化
対象文字の直前n文字の文字列(文脈)に続いて出現する
符号化対象文字の出現確率を用いて符号化対象文字を可
変長符号化あるいは可変長符号を文字に復元する確率統
計型データ圧縮/復元方法において、文脈の長さ(次
数)を固定せずに入力データに応じて文脈の次数を延ば
して登録する手段と、符号化対象文字より前の文字で使
用した符号化文脈に基づいて符号化対象文字を符号化す
るために使用する符号化文脈の検索範囲を決定する手段
により達成される。この符号化文脈検索範囲決定手段
は、例えば、(1)直前文字の符号化文脈に直前文字を結
合してなる文脈より短い文脈を符号化文脈の検索範囲と
し、あるいは、(2) 直前文字の符号化文脈に直前文字を
結合してなる文脈、並びに次数が1次以下もしくは0次
の文脈のみを符号化文脈の検索範囲とする。
【0029】以上要約すれば、本発明では、相関の強い
文脈を符号化に利用する。また、符号化対象文字の前の
文字(直前文字、直々前文字、・・・)の符号化文脈を
用いて、疑似的に相関の強い文脈を符号化・登録に使
う。また、相関の強い文字列のところは、1文字づつ符
号化するのではなく該文字列を1文字とみなして符号化
する。又、符号化対象文字より前の文字の符号化文脈に
よって、符号化対象文字の符号化文脈の検索範囲を決定
する。
【0030】
【発明の実施の形態】
(A)全体の構成 図1はデータ圧縮/復元装置の構成図で、図1(a)は
データ圧縮装置、図1(b)はデータ復元装置の構成図
である。各図では機能的なブロック構成を示している
が、実際には、プロセッサ、内部メモリ(ROM、RA
M)、データ入出力装置、外部メモリ等を備えたコンピ
ュータ構成になっている。データ圧縮装置において、1
1は文字列入力手段、12は入力文字列に応じて文脈の
次数を延ばして登録する文脈登録部、13は登録文脈を
用いて符号化対象文字を可変長符号化する圧縮符号化
部、14は符号化されたデータを出力する符号化データ
出力部である。文脈登録部12は、文脈を木構造(文脈
木)で表現し、各ノードの文字を通る文字列が出る毎に
その出現回数を各ノードで計数しておくことにより出現
確率を求めて記憶する。圧縮符号化部13は出現確率を
用いて符号化対象文字を可変長符号化する。
【0031】データ復元装置において、21は符号化デ
ータ入力手段、22は復元文字列に応じて文脈の次数を
延ばして登録する文脈登録部、23は登録文脈を用いて
符号化データを文字コードに復元する復元部、14は復
元文字列を出力する文字コード出力部である。文脈登録
部22は、文脈を木構造(文脈木)で表現し、各ノード
の文字を通る文字列が出る毎にその出現回数を各ノード
で計数しておくことにより出現確率を求めて記憶する。
復元部23は出現確率を用いて符号化データを原データ
に復元する。
【0032】(B)符号化文脈を厳選する場合のデータ
圧縮/復元の実施例 (a)第1実施例 図2は符号化文脈を厳選する場合における圧縮符号化部
13のデータ圧縮処理のフロー図である。まず、文字番
号tを0に初期化し(ステップ201)、ついで、文字
番号tを1歩進し、t番目の文字Xtを入力すると共に
(ステップ202)、次数nを最長文脈次数Nとする
(ステップ203)。しかる後、文脈木に文脈X(t-n,t
-1)が登録されているかチェックする(ステップ20
4)。ただし、文脈X(t-n,t-1)は文字列{Xt-n,Xt-
n+1,・・・,Xt-1}である。文脈X(t-n,t-1)が登録
されていなければ次数nを1減小し(ステップ20
5)、1文字短くした文脈が登録されているかチェック
する(ステップ204)。
【0033】文脈X(t-n,t-1)が登録されていれば、文
脈X(t-n,t-1)の出現回数mをカウントアップし、mが
設定値M以上であるかチェックする(ステップ20
6)。出現回数mが設定値M以下の場合には、文脈X(t
-n,t-1)を符号化文脈として使用せず、ステップ205
以降の処理を行う。すなわち、次数nを1減小し、1文
字短くした文脈が登録されているかチェックする。ステ
ップ206において、文脈X(t-n,t-1)の出現回数mが
設定値M以上であれば、該文脈X(t-n,t-1)と符号化対
象文字Xtの組み合わせが文脈木に保持されているかチ
ェックする(ステップ207)。保持されていない場合に
は、文脈X(t-n,t-1)に続くエスケープコード(ESC
コード)を符号化して出力し(ステップ208)、以
後、ステップ205以降の処理を繰り返す。
【0034】ステップ207において、文脈X(t-n,t-
1)と符号化対象文字Xtの組み合わせが文脈木に保持さ
れていれば、文脈X(t-n,t-1)に続いて符号化対象文字
Xtの条件つき出現確率を用いて符号化して出力する
(ステップ209)。ついで、すべてのデータの符号化
が終了したかチェックし(ステップ210)、終了して
なければステップ202に戻り、次の符号化対象文字に
ついて上記処理を繰り返す。尚、以上の圧縮符号化処理
と並行して文脈登録部12は文脈木の逐次登録処理及び
文脈の出現確率(出現頻度)の更新を行う。図3は符号
化文脈を厳選する場合における復元部23のデータ復元
処理のフロー図である。まず、文字番号tを0に初期化
し(ステップ251)、ついで、文字番号tを1歩進す
ると共に(ステップ252)、次数nを最長文脈次数N
とする(ステップ253)。
【0035】しかる後、文脈木に文脈X(t-n,t-1)が登
録されているかチェックする(ステップ254)。尚、
文脈X(t-n,t-1)は既に復元したn個の最新文字列{Xt
-n,Xt-n+1,・・・,Xt-1}である。文脈X(t-n,t-
1)が登録されていなければ次数nを1減小し(ステップ
255)、1文字復元文字列を短くした文脈が登録され
ているかチェックする(ステップ254)。文脈X(t-
n,t-1)が登録されていれば、文脈X(t-n,t-1)の出現回
数mをカウントアップし、mが設定値M以上であるかチ
ェックする(ステップ256)。出現回数mが設定値M
以下の場合には、文脈X(t-n,t-1)は符号化文脈として
使用されていないから、ステップ255以降の処理を行
う。すなわち、次数nを1減小し、1文字短くした文脈
が登録されているかチェックする。ステップ256にお
いて、文脈X(t-n,t-1)の出現回数mが設定値M以上で
あれば、該文脈X(t-n,t-1)を条件としてt番目の符号
を文字コードに復元する(ステップ257)。
【0036】ついで、復元した文字コードがESCコー
ドであるかチェックし(ステップ258)、ESCコー
ドであれば、ステップ255以降の処理を繰り返す。一
方、ESCコードでなければ、復元した文字コードを出
力する(ステップ259)。文字コード出力後、すべて
のデータについて復元処理が終了したかチェックし(ス
テップ260)、終了してなければステップ252に戻
り、次の符号について上記処理を繰り返す。尚、以上の
復元処理と並行して文脈登録部22は文脈木の逐次登録
処理及び文脈の出現確率(出現頻度)の更新を行う。以
上により、使用頻度の大きな文脈のみを符号化文脈とし
て使用できる。この結果、使用頻度の少ない無意味に長
い文脈を符号化文脈として使用しないようにでき、又、
符号化の簡略化(圧縮/復元スピードの向上)、圧縮率
の向上が図れる。
【0037】(b)第2実施例 図4は符号化文脈を厳選する場合における圧縮符号化部
13のデータ圧縮処理の別のフロー図であり、図2の圧
縮処理フローと同一ステップには同一番号を付してい
る。図2の圧縮処理フローと異なる点は、ステップ20
6′である。ステップ204において、文脈X(t-n,t-
1)が登録されていれば、文脈X(t-n,t-1)に続いて出現
する各文字の出現確率の標準偏差mを求め、該標準偏差
mが一定値M以上であるかチェックする(ステップ20
6′)。標準偏差mが一定値M以下の場合にはステップ
205の処理を行い、標準偏差mが一定値M以上の場合
には、該文脈X(t-n,t-1)と符号化対象文字Xtの組み合
わせが文脈木に保持されているかチェックする(ステッ
プ207)。
【0038】標準偏差mは以下のように求める。文脈X
(t-n,t-1)を”ab”、該文脈に続いて出現する文字が
a,b,c,d,e,fで、それぞれの出現頻度がn
a,nb,nc,nd,ne,nfとすれば、各文字a,b,
c,d,e,fが文脈”ab”に続いて出現する確率P
a〜Pfは Pa=na/M(ただし、M=na+nb+nc+nd+ne+n
f) Pb=nb/M Pc=nc/M Pd=nd/M Pe=ne/M Pf=nf/M となり、又、各文字の平均出現確率Hは1/6である。従
って、標準偏差mは次式 m=√{(Pa-H)2+(Pb-H)2+(Pc-H)2+(Pd-H)2+(Pe-H)2+(Pf-
H)2} により計算できる。
【0039】標準偏差が大きいということは、文脈X(t
-n,t-1)に続いて出現するある文字の出現頻度が平均出
現頻度に比べて相当大きいことを意味している。従っ
て、文脈X(t-n,t-1)に続いて出現する文字の中で良く
出る文字の出現頻度rが一定値R以上か否かをチェック
し、r>Rのときステップ206のステップを実行し、
r≦Rのときステップ205の処理を行うように図4の
圧縮処理フローを変更することもできる。
【0040】図5は符号化文脈を厳選する場合における
復元部23のデータ復元処理のフロー図であり、図3の
復元処理フローと同一部分には同一符号を付している。
図5において図3の復元処理フローと異なる点は、ステ
ップ256′である。ステップ254において、文脈X
(t-n,t-1)が登録されていれば、文脈X(t-n,t-1)に続い
て出現する各文字の出現確率の標準偏差mを求め、該標
準偏差mが一定値M以上であるかチェックする(ステッ
プ256′)。標準偏差mが一定値M以下の場合にはス
テップ255の処理を行い、標準偏差mが一定値M以上
の場合には、該文脈X(t-n,t-1)と符号化対象文字Xtの
組み合わせが文脈木に保持されているかチェックする
(ステップ257)。以上により、使用頻度の大きな文脈
のみを符号化文脈として使用できる。この結果、使用頻
度の少ない無意味に長い文脈を符号化文脈として使用し
ないようにでき、又、符号化の簡略化(圧縮/復元スピ
ードの向上)、圧縮率の向上が図れる。
【0041】(C)登録文脈を厳選する場合のデータ圧
縮/復元の実施例 (a)第1実施例 図6は登録文脈を厳選する場合における圧縮符号化部1
3のデータ圧縮処理フロー図である。まず、文字番号t
を0に、Pnを0に初期化する(ステップ301)。
尚、Pnは直前文字の符号化に使用した文脈(符号化文
脈)の次数に1を加えたものであり、初期時符号化が行
われていないため0に設定する。ついで、文字番号を1
歩進し、t番目の文字Xtを入力すると共に(ステップ
302)、次数nを最長文脈次数Nとする(ステップ3
03)。しかる後、文脈木に文脈X(t-n,t-1)が登録さ
れているかチェックする(ステップ304)。ただし、
文脈X(t-n,t-1)は文字列{Xt-n,Xt-n+1,・・・,
Xt-1}である。文脈X(t-n,t-1)が登録されていなけれ
ば次数nを1減小し(ステップ305)、1文字短くし
た文脈が登録されているかチェックする(ステップ30
4)。
【0042】文脈X(t-n,t-1)が登録されていれば、該
文脈X(t-n,t-1)と符号化対象文字Xtの組み合わせが文
脈木に保持されているかチェックする(ステップ30
6)。保持されていない場合には、文脈X(t-n,t-1)に続
くエスケープコード(ESCコード)を符号化して出力
し(ステップ307)、以後、ステップ305以降の処
理を繰り返す。ステップ306において、文脈X(t-n,t
-1)と符号化対象文字Xtの組み合わせが文脈木に保持さ
れていれば、文脈X(t-n,t-1)に続いて符号化対象文字
Xtの条件つき出現確率を用いて符号化して出力する
(ステップ308)。ついで、Pn≦nであるかチェッ
クする(ステップ309)。すなわち、直前文字の符号
化文脈の次数に1を加えた値Pnと今回の符号化文脈の
次数nの大小を比較する。Pn≦nであれば、n+1→
Pnとし(ステップ310)、しかる後、すべてのデータ
の符号化が終了したかチェックし(ステップ311)、
終了してなければステップ302に戻り、次の符号化対
象文字について上記処理を繰り返す。
【0043】しかし、ステップ309において、Pn>
nであれば、すなわち、直前文字の符号化文脈の次数に
1を加えた値Pnが今回の符号化文脈の次数nより大き
ければ、文脈X(t-Pn,t-1)に符号化対象文字Xtを連結
した文脈を登録する(ステップ312)。すなわち、直
前文字の符号化文脈X(t-Pn,t-1)に符号化対象文字Xt
を連結した文脈を登録する。ついで、Pnを1減小し
(ステップ313)、以後、Pn≦nとなるまでステッ
プ309,312,313の処理を繰り返す。尚、2回
目以降のステップ312においては、既に最初のステッ
プ312の処理で最長符号化文脈が登録されているた
め、新たな文脈の登録は行われない。以上により、圧縮
符号化及びPn>nの時の文脈の登録が行われるが、Pn
≦nの場合には逐次登録が並行して行われる。この圧縮
符号化法によれば、直前文字で使用した符号化文脈に符
号化対象文字を加えた文字列(文脈)を登録文脈とする
ため、相関の強い、効果的な文脈のみ厳選して登録する
ことができ、無意味に長い文脈を登録しないようにでき
る。しかも、符号化の簡略化、メモリの有効利用、圧縮
率の向上を図れる
【0044】図7は登録文脈を厳選する場合における復
元部23のデータ復元処理フロー図である。まず、文字
番号tを0に、Pnを0に初期化する(ステップ35
1)。尚、Pnは直前文字の復元に使用した文脈の次数
に1を加えたものであり、初期時復元が行われていない
ため0に設定する。ついで、文字番号を1歩進すると共
に(ステップ352)、次数nを最長文脈次数Nとする
(ステップ353)。しかる後、文脈木に文脈X(t-n,t
-1)が登録されているかチェックする(ステップ35
4)。ただし、文脈X(t-n,t-1)は既に復元したn個の
最新文字列{Xt-n,Xt-n+1,・・・,Xt-1}であ
る。文脈X(t-n,t-1)が登録されていなければ次数nを
1減小し(ステップ355)、1文字短くした文脈が登
録されているかチェックする(ステップ354)。文脈
X(t-n,t-1)が登録されていれば、該文脈X(t-n,t-1)を
条件としてt番目の符号を文字コードに復元する(ステ
ップ356)。
【0045】ついで、復元した文字コードがESCコー
ドであるかチェックし(ステップ357)、ESCコー
ドであれば、ステップ355以降の処理を繰り返す。一
方、ESCコードでなければ、復元した文字コードを出
力し(ステップ358)、Pn≦nであるかチェックす
る(ステップ359)。Pn≦nであれば、n+1→Pn
とし(ステップ360)、しかる後、すべてのデータの
復元が終了したかチェックし(ステップ361)、終了
してなければステップ352に戻り、次の符号について
上記処理を繰り返す。
【0046】しかし、ステップ359において、Pn>
nであれば、すなわち、直前に復元した文字の符号化文
脈の次数に1を加えた値Pnが今回復元文字の符号化文
脈の次数nより大きければ、文脈X(t-Pn,t-1)に復元文
字Xtを連結した文脈を登録する(ステップ362)。す
なわち、直前復元文字の符号化文脈X(t-Pn,t-1)に今回
の復元文字Xtを連結した文脈を登録する。ついで、Pn
を1減小し(ステップ363)、以後、Pn≦nとなる
までステップ359,362,363の処理を繰り返
す。尚、2回目以降のステップ362においては、既に
最初のステップ362の処理で最長符号化文脈が登録さ
れているため、新たな文脈の登録は行われない。以上に
より、復元処理及びPn>nの時の文脈の登録が行われ
るが、Pn≦nの場合には逐次登録が並行して行われ
る。
【0047】(b)第2実施例 図8は登録文脈を厳選する場合における圧縮符号化部1
3のデータ圧縮処理別のフロー図である。この実施例で
は、符号化対象文字より前の文字の符号化文脈の次数が
連続して一次以上の場合、これら各文脈及び符号化対象
文字よりなる文脈を登録文脈の対象とするものである。
まず、文字番号tを0に初期化すると共に、Pnを0に
初期化する(ステップ401)。Pnは符号化文脈の次
数が連続して一次以上の場合、その連続回数に1を加え
た値であり、初期時、符号化が行われていないため0に
設定する。ついで、文字番号tを1歩進し、t番目の文
字Xtを入力すると共に(ステップ402)、次数nを
最長文脈次数Nとする(ステップ403)。しかる後、
文脈木に文脈X(t-n,t-1)が登録されているかチェック
する(ステップ404)。ただし、文脈X(t-n,t-1)は文
字列{Xt-n,Xt-n+1,・・・,Xt-1}である。文脈
X(t-n,t-1)が登録されていなければ次数nを1減小し
(ステップ405)、1文字短くした文脈が登録されて
いるかチェックする(ステップ404)。
【0048】ステップ404において文脈X(t-n,t-1)
が登録されていれば、該文脈X(t-n,t-1)と符号化対象
文字Xtの組み合わせが文脈木に保持されているかチェ
ックする(ステップ406)。保持されていない場合に
は、文脈X(t-n,t-1)に続くエスケープコード(ESC
コード)を符号化して出力し(ステップ407)、以
後、ステップ405以降の処理を繰り返す。ステップ4
06において、文脈X(t-n,t-1)と符号化対象文字Xtの
組み合わせが文脈木に保持されていれば、文脈X(t-n,t
-1)に続いて符号化対象文字Xtが出現する条件つき出現
確率を用いて符号化して出力する(ステップ408)。
ついで、Pn≦nであるかチェックする(ステップ40
9)。すなわち、符号化文脈の次数が連続して一次以上
の場合における連続回数に1を加えた値Pnと今回の符
号化文脈の次数nの大小を比較する。Pn≦nであれ
ば、n≧1であるかチェックし、n≧1であれば、すな
わち、符号化文脈の次数が1次以上であればPnを歩進
し、n<1(n=0)であれば、Pn=1にする(ステ
ップ410)。以後、すべてのデータの符号化が終了し
たかチェックし(ステップ411)、終了してなければ
ステップ402に戻り、次の符号化対象文字について上
記処理を繰り返す。
【0049】しかし、ステップ409において、Pn>
nであれば、すなわち、符号化文脈の次数が連続して一
次以上の場合における連続回数に1を加えた値Pnが今
回の符号化文脈の次数nより大きければ、文脈X(t-Pn,
t-1)に符号化対象文字Xtを連結した文脈を登録する(ス
テップ412)。すなわち、符号化対象文字Xtの直前
Pn個の連続文字列に符号化対象文字Xtを連結した文字
列(文脈)を登録し(ステップ412)、以後、ステッ
プ410以降の処理を繰り返す。以上により、圧縮符号
化及びPn>nの時の文脈の登録が行われるが、Pn≦n
の場合には逐次登録が並行して行われる。この圧縮符号
化法によれば、符号化対象文字より前の文字の符号化文
脈の次数が連続して一次以上の場合、これら各文脈及び
符号化対象文字よりなる文脈を登録文脈の対象とするた
め、相関の強い、効果的な文脈のみ厳選して登録するこ
とができる。又、連続する1次以上の符号化文脈を連結
して登録するため、必要な長い文脈を直ちに登録するこ
とができる。
【0050】図9は上記圧縮符号化方法の説明図であ
り、連続して”FUJITSU”なる文字列が3回出現
した場合の登録文脈の説明図である。初期時、各文字
F,U,J,I,T,S,Uが符号化文脈(0次の文
脈)として登録されている(図9(a))。かかる状態
で最初の文字列”FUJITSU”が入力されると、逐
次登録により(b)に示すように文脈 F FU UJ JI IT TS SU が登録される。
【0051】この状態で、次の文字列”FUJITS
U”が入力されると、(b)の登録文脈が符号化文脈と
なって符号化が行われると共に、(d)に示すように、
文脈 F, FU, FUI, FUJI, FUJIT, FUJITS, FUJITSU が登録される。この結果、3回目以降ではこれら登録文
脈を用いて符号化ができるため、圧縮率を向上すること
ができる。尚、図27で説明した逐次登録法では”FU
JITSU”なる文字列が6回出現して初めて文脈”F
UJITSU”が登録されるため、なかなか文脈を伸ば
すことができず、圧縮率が悪い。
【0052】図10は登録文脈を厳選する場合における
復元部23のデータ復元処理フロー図である。まず、文
字番号tを0に、Pnを0に初期化する(ステップ45
1)。尚、Pnは直前文字の復元に使用した文脈の次数
に1を加えたものであり、初期時復元が行われていない
ため0に設定する。ついで、文字番号を1歩進すると共
に(ステップ452)、次数nを最長文脈次数Nとする
(ステップ453)。しかる後、文脈木に文脈X(t-n,t
-1)が登録されているかチェックする(ステップ45
4)。ただし、文脈X(t-n,t-1)は既に復元したn個の
最新文字列{Xt-n,Xt-n+1,・・・,Xt-1}であ
る。
【0053】文脈X(t-n,t-1)が登録されていなければ
次数nを1減小し(ステップ455)、1文字短くした
文脈が登録されているかチェックする(ステップ45
4)。文脈X(t-n,t-1)が登録されていれば、該文脈X
(t-n,t-1)を条件としてt番目の符号を文字コードに復
元する(ステップ456)。ついで、復元した文字コー
ドがESCコードであるかチェックし(ステップ45
7)、ESCコードであれば、ステップ455以降の処
理を繰り返す。一方、ESCコードでなければ、復元し
た文字コードXtを出力し(ステップ458)、Pn≦
nであるかチェックする(ステップ459)。すなわ
ち、符号化文脈の次数が連続して一次以上の場合におけ
る連続回数に1を加えた値Pnと今回の復元に使用した
符号化文脈の次数nの大小を比較する。
【0054】Pn≦nであれば、n≧1であるかチェッ
クし、n≧1であれば、すなわち、符号化文脈の次数が
1次以上であればPnを歩進し、n<1(n=0)であ
れば、Pn=1にする(ステップ460)。以後、すべ
てのデータの符号化が終了したかチェックし(ステップ
461)、終了してなければステップ452に戻り、次
の符号について上記処理を繰り返す。
【0055】しかし、ステップ459において、Pn>
nであれば、すなわち、復元に使用した符号化文脈の次
数が連続して一次以上の場合における連続回数に1を加
えた値Pnが今回復元に使用した符号化文脈の次数nよ
り大きければ、文脈X(t-Pn,t-1)に復元文字Xtを連結
した文脈を登録する(ステップ462)。すなわち、今
回の復元文字Xtの直前Pn個の復元文字列に該復元文字
Xtを連結した文字列(文脈)を登録し、以後、ステッ
プ410以降の処理を繰り返す。以上により、復元処理
及びPn>nの時の文脈の登録が行われるが、Pn≦nの
場合には逐次登録が並行して行われる。
【0056】(c)第3実施例 図11は登録文脈を厳選する場合におけるデータ圧縮処
理の別のフロー図である。この実施例では、符号化対象
文字より前の文字の符号化文脈及び符号化対象文字の符
号化文脈を連結して直前文字の符号化文脈の次数より長
い文脈を登録文脈の対象とする。具体的には、連続する
m個の文字のそれぞれについて1次以上の符号化文脈を
用いて符号化した場合、前記m個の文字列に符号化対象
文字を付加してなる文脈を登録する。まず、文字番号t
を0に初期化すると共に、Pnを0に初期化する(ステ
ップ501)。Pnは入力文字が連続して1次以上の符
号化文脈を用いて符号化された場合における連続回数に
1を加えた値であり、初期時、符号化が行われていない
ため0に設定する。
【0057】ついで、文字番号tを1歩進し、t番目の
文字Xtを入力すると共に(ステップ502)、次数n
を最長文脈次数Nとする(ステップ503)。しかる
後、文脈木に文脈X(t-n,t-1)が登録されているかチェ
ックする(ステップ504)。ただし、文脈X(t-n,t-1)
は文字列{Xt-n,Xt-n+1,・・・,Xt-1}である。
文脈X(t-n,t-1)が登録されていなければ次数nを1減
小し(ステップ505)、1文字短くした文脈が登録さ
れているかチェックする(ステップ504)。ステップ
504において文脈X(t-n,t-1)が登録されていれば、
該文脈X(t-n,t-1)と符号化対象文字Xtの組み合わせが
文脈木に保持されているかチェックする(ステップ50
6)。保持されていない場合には、文脈X(t-n,t-1)に続
くエスケープコード(ESCコード)を符号化して出力
し(ステップ507)、以後、ステップ505以降の処
理を繰り返す。
【0058】ステップ506において、文脈X(t-n,t-
1)と符号化対象文字Xtの組み合わせが文脈木に保持さ
れていれば、文脈X(t-n,t-1)に続いて符号化対象文字
Xtの条件つき出現確率を用いて符号化して出力する
(ステップ508)。ついで、Stack=PnとしてPnを
保存し(ステップ509)、Pn≦nであるかチェックす
る(ステップ510)。すなわち、入力文字が連続して
1次以上の符号化文脈を用いて符号化された場合におけ
る連続回数に1を加えた値Pnと今回の符号化文脈の次
数nの大小を比較する。Pn≦nであれば、n≧1であ
るかチェックし、n≧1であれば、すなわち、1次以上
の符号化文脈を用いて符号化対象文字を符号化した場合
には、スタックレジスタに保存されているPnを歩進し
(Stack+1→Pn)、n<1(n=0)であれば、Pn=
1にする(ステップ511)。以後、すべてのデータの
符号化が終了したかチェックし(ステップ512)、終
了してなければステップ502に戻り、次の符号化対象
文字について上記処理を繰り返す。
【0059】しかし、ステップ510において、Pn>
nであれば、すなわち、入力文字が連続して1次以上の
符号化文脈を用いて符号化された場合における連続回数
に1を加えた値Pnが今回の符号化文脈の次数nより大
きければ、文脈X(t-Pn,t-1)に符号化対象文字Xtを連
結した文脈を登録する(ステップ513)。すなわち、
符号化対象文字Xtの直前Pn個の連続文字列に符号化対
象文字Xtを連結した文字列(文脈)を登録する。つい
で、Pnを1減小し(ステップ514)、以後、Pn≦n
となるまでステップ510,513,514の処理を繰
り返す。尚、2回目以降のステップ513においては、
既に最初のステップ312の処理で最長符号化文脈が登
録されているため、新たな文脈の登録は行われない。以
上により、圧縮符号化及びPn>nの時の文脈の登録が
行われるが、Pn≦nの場合には逐次登録が並行して行
われる。
【0060】この圧縮符号化法によれば、連続するm個
の文字のそれぞれについて1次以上の符号化文脈を用い
て符号化した場合、前記m個の文字列に符号化対象文字
を付加してなる文脈を登録するため、相関の強い、効果
的な文脈のみ厳選して登録することができる。又、必要
な長い文脈を直ちに登録することができる。尚、図9の
圧縮符号化処理の説明図は図10の圧縮符号化法の説明
にも適用できる。すなわち、この圧縮符号化法によれ
ば、2回目の”FUJITSU”の入力により、図9
(d)に示すように文脈 F, FU, FUI, FUJI, FUJIT, FUJITS, FUJITSU が登録される。
【0061】図12は登録文脈を厳選する場合における
復元部23のデータ復元処理フロー図である。まず、文
字番号tを0に、Pnを0に初期化する(ステップ55
1)。尚、Pnは1次以上の符号化文脈を用いて連続し
て復元した文字数に1を加えた値であり、初期時復元が
行われていないため0に設定する。ついで、文字番号t
を1歩進すると共に(ステップ552)、次数nを最長
文脈次数Nとする(ステップ553)。しかる後、文脈
木に文脈X(t-n,t-1)が登録されているかチェックする
(ステップ554)。ただし、文脈X(t-n,t-1)は既に復
元したn個の最新文字列{Xt-n,Xt-n+1,・・・,X
t-1}である。文脈X(t-n,t-1)が登録されていなければ
次数nを1減小し(ステップ555)、1文字短くした
文脈が登録されているかチェックする(ステップ55
4)。文脈X(t-n,t-1)が登録されていれば、該文脈X
(t-n,t-1)を条件としてt番目の符号を文字コードに復
元する(ステップ556)。
【0062】ついで、復元した文字コードがESCコー
ドであるかチェックし(ステップ557)、ESCコー
ドであれば、ステップ555以降の処理を繰り返す。一
方、ESCコードでなければ、復元した文字コードXt
を出力し(ステップ558)、Stack=PnとしてPnを
保存し(ステップ559)、Pn≦nであるかチェックす
る(ステップ560)。すなわち、1次以上の符号化文
脈を用いて連続して復元した場合における連続回数に1
を加えた値Pnと今回の符号化文脈の次数nの大小を比
較する。Pn≦nであれば、n≧1であるかチェック
し、n≧1であれば、すなわち、1次以上の符号化文脈
を用いて復元した場合には、スタックレジスタに保存さ
れているPnを歩進し(Stack+1→Pn)、n<1(n=
0)であれば、Pn=1にする(ステップ561)。以
後、すべてのデータの復元が終了したかチェックし(ス
テップ562)、終了してなければステップ552に戻
り、次の符号について上記処理を繰り返す。
【0063】しかし、ステップ560において、Pn>
nであれば、すなわち、連続して1次以上の符号化文脈
を用いて復元した場合における連続回数に1を加えた値
Pnが今回の復元に使用した符号化文脈の次数nより大
きければ、文脈X(t-Pn,t-1)に復元文字Xtを連結した
文脈を登録する(ステップ563)。すなわち、今回の
復元文字Xtの直前Pn個の連続文字列に該復元文字Xt
を連結した文字列(文脈)を登録する。ついで、Pnを
1減小し(ステップ564)、以後、Pn≦nとなるま
でステップ560,563,564の処理を繰り返す。
尚、2回目以降のステップ563においては、既に最初
のステップ563の処理で最長符号化文脈が登録されて
いるため、新たな文脈の登録は行われない。以上によ
り、復元処理及びPn>nの時の文脈の登録が行われる
が、Pn≦nの場合には逐次登録が並行して行われる。
【0064】(D)複数の文字を1文字として文脈を登
録する処理図13は複数の文字を1文字とみなして文脈
を登録する処理の説明図である。符号化対象文字の直前
文字の符号化文脈と符号化対象文字の符号化文脈の相関
が強い場合、これら符号化文脈の一部を符号化対象文字
と併せて1つの文字とみなして文脈を登録する。具体的
には、符号化対象文字の直前文字の符号化文脈と符号化
対象文字の符号化文脈の次数が共に所定次数(例えば2
次)以上の場合、直前文字と符号化対象文字を1つの文
字として合成し、前記符号化文脈に合成文字を連結して
なる文脈を登録する。
【0065】図13(a)は、文字F,U,J,I,
T,S,Uが符号化文脈(0次の文脈)として登録され
ている状態において、最初の文字列”FUJITSU”
が入力された後の逐次登録法により登録された文脈(登
録文脈)を示している。かかる状態において文字列”F
UJITSU”が入力されると、圧縮符号化部13は
(a)の登録文脈を用いて各入力文字の符号化を行い、
又、文脈登録部12は逐次登録法により(b)に示すよ
うに、文脈 F FU FUJ UJI JIT ITS TSU を登録する。
【0066】ついで、文字列”FUJITSU”が入力
されると、圧縮符号化部13は(b)の登録文脈を使用
して符号化を行う。この場合、文字J,I,T,S,U
の符号化に使用する文脈(符号化文脈)は”FU
J”,”UJI”,”JIT”,”ITS”,”TS
U”であり、2次文脈である。符号化対象文字の直前文
字の符号化文脈と符号化対象文字の符号化文脈の次数が
共に所定次数(例えば2次)になると、文脈登録部12
は、直前文字と符号化対象文字を1つの文字として合成
し、直前文字の符号化文脈に合成文字を連結してなる2
次の文脈を登録する。この結果、(d)に示すように、 F F FU FUJI UJIT JITS ITSU を登録する。ただし、下線の2文字は1文字とみなされ
ている。
【0067】ついで、再び、文字列”FUJITSU”
が入力すると、圧縮符号化部13は(d)の登録文脈を
使用して符号化を行い、文脈登録部12は、直前文字と
符号化対象文字を1つの文字として合成し、直前文字の
符号化文脈に合成文字を連結してなる2次の文脈を登録
する。この結果、(f)に示すように、 F F FU FUJI FUJIT UJITS JITSU を登録する。以後同様に、文脈登録部12及び圧縮符号
化部13は圧縮符号化、文脈の登録処理を行う。
【0068】以上のように続けて2次で符号化した文字
を併せて1つの符号化単位とすることによって相関の強
い部分を文字列で扱うことができ、又、該文字列を1文
字とみなして登録することにより圧縮・復元スピード、
符号化効率を向上することができる。以上では、圧縮符
号化について説明したが、復元に際しても同様に文脈を
登録しつつ、符号を文字に復元する。
【0069】(E)符号化文脈の検索範囲を限定する処
理 圧縮符号化を継続してゆくと登録文脈が多くなり、符号
化文脈を検索するのに手間取る場合が生じる。そこで、
むやみに長い文脈の検索を行わず、又、使用可能性の高
い文脈に限定して検索する。 (a)第1実施例 図14は符号化文脈の検索範囲を限定する場合の圧縮符
号化部13の圧縮処理フローである。この実施例では、
直前文字の符号化文脈に直前文字を結合してなる文脈
(n次文脈)より短い文脈を符号化文脈の検索範囲とす
る。まず、文字番号tを0に初期化すると共にPnを0
に初期化する(ステップ601)。尚、Pnは直前文字
の符号化に使用した文脈(符号化文脈)の次数に1を加
えたものであり、初期時符号化が行われていないため0
に設定する。ついで、文字番号を1歩進し、t番目の文
字Xtを入力すると共に(ステップ602)、次数nを
Pnにする(ステップ603)。尚、最長文脈次数はN
とする。
【0070】しかる後、文脈木に文脈X(t-n,t-1)が登
録されているかチェックする(ステップ604)。ただ
し、文脈X(t-n,t-1)は文字列{Xt-n,Xt-n+1,・・
・,Xt-1}である。文脈X(t-n,t-1)が登録されていな
ければ次数nを1減小し(ステップ605)、1文字短
くした文脈が登録されているかチェックする(ステップ
604)。ステップ604において、文脈X(t-n,t-1)
が登録されていれば、該文脈X(t-n,t-1)と符号化対象
文字Xtの組み合わせが文脈木に保持されているかチェ
ックする(ステップ606)。保持されていない場合に
は、文脈X(t-n,t-1)に続くエスケープコード(ESC
コード)を符号化して出力し(ステップ607)、以
後、ステップ605以降の処理を繰り返す。
【0071】ステップ606において、文脈X(t-n,t-
1)と符号化対象文字Xtの組み合わせが文脈木に保持さ
れていれば、文脈X(t-n,t-1)に続いて符号化対象文字
Xtの条件つき出現確率を用いて符号化して出力する
(ステップ608)。ついで、Pn=n+1によりPn
を歩進し(ステップ609)、すべてのデータの符号化
が終了したかチェックし(ステップ610)、終了して
なければステップ602に戻り、次の符号化対象文字に
ついて上記処理を繰り返す。以上では文脈の登録につい
て説明しなかったが、上記圧縮処理と並行して文脈登録
部12は例えば逐次登録法あるいは既述の登録法に従っ
て文脈の登録処理を行う。以上により、直前文字の符号
化文脈に直前文字を結合してなる文脈(n次文脈)より
短い文脈を符号化文脈の検索範囲とすることができる。
これにより、むやみに長い文脈の検索を行わず、又、使
用可能性の高い文脈に限定して検索することができる。
【0072】図15は符号化文脈の検索範囲を限定する
場合における復元部23の復元処理フローである。ま
ず、文字番号tを0に初期化すると共にPnを0に初期
化する(ステップ651)。尚、Pnは直前文字の復元
に使用した文脈(符号化文脈)の次数に1を加えたもの
であり、初期時復元が行われていないため0に設定す
る。ついで、文字番号tを1歩進すると共に(ステップ
652)、次数nをPnにする(ステップ653)。
尚、最長文脈次数はNとする。しかる後、文脈木に文脈
X(t-n,t-1)が登録されているかチェックする(ステップ
654)。ただし、文脈X(t-n,t-1)は既に復元したn
個の最新文字列{Xt-n,Xt-n+1,・・・,Xt-1}で
ある。文脈X(t-n,t-1)が登録されていなければ次数n
を1減小し(ステップ655)、1文字短くした文脈が
登録されているかチェックする(ステップ654)。文
脈X(t-n,t-1)が登録されていれば、該文脈X(t-n,t-1)
を条件としてt番目の符号を文字コードに復元する(ス
テップ656)。
【0073】ついで、復元した文字コードがESCコー
ドであるかチェックし(ステップ657)、ESCコー
ドであればステップ655以降の処理を繰り返す。一
方、ESCコードでなければ、復元した文字コードを出
力し(ステップ658)、Pn=n+1によりPnを歩
進する(ステップ659)。しかる後、すべてのデータ
の符号化が終了したかチェックし(ステップ660)、
終了してなければステップ652に戻り、次の符号につ
いて上記処理を繰り返す。以上では文脈の登録について
説明しなかったが、上記復元処理と並行して文脈登録部
22は例えば逐次登録法あるいは既述の登録法に従って
文脈の登録処理を行う。
【0074】(b)第2実施例 図16は符号化文脈の検索範囲を限定する場合における
圧縮符号化部13の別の圧縮処理フローである。この実
施例では、直前文字の符号化文脈に直前文字を結合した
文脈、並びに次数が1次以下もしくは0次の文脈のみを
符号化文脈の検索対象とする。まず、文字番号tを0に
初期化すると共にPnを0に初期化する(ステップ70
1)。尚、Pnは直前文字の符号化に使用した文脈(符
号化文脈)の次数に1を加えたものであり、初期時符号
化が行われていないため0に設定する。ついで、文字番
号tを1歩進し、t番目の文字Xtを入力すると共に
(ステップ702)、次数nをPnにする(ステップ7
03)。尚、最長文脈次数はNとする。しかる後、文脈
木に文脈X(t-n,t-1)が登録されているかチェックする
(ステップ704)。ただし、文脈X(t-n,t-1)は文字列
{Xt-n,Xt-n+1,・・・,Xt-1}である。
【0075】文脈X(t-n,t-1)が登録されていなけれ
ば、次数nが1より大きいかチェックし、n>1の場合
には次数nを1にし、n≦1の場合には次数nを0にし
(ステップ705)、以後ステップ704以降の処理を
繰り返す。すなわち、直前文字の符号化文脈に直前文字
を結合してなる文脈が符号化対象文字の符号化文脈でな
い場合には、次数nを1または0にし、1次文脈または
0次文脈より符号化文脈を検索する。文脈X(t-n,t-1)
が登録されていれば、該文脈X(t-n,t-1)と符号化対象
文字Xtの組み合わせが文脈木に保持されているかチェ
ックする(ステップ706)。保持されていない場合に
は、文脈X(t-n,t-1)に続くエスケープコード(ESC
コード)を符号化して出力し(ステップ707)、以
後、ステップ705以降の処理を繰り返す。
【0076】ステップ706において、文脈X(t-n,t-
1)と符号化対象文字Xtの組み合わせが文脈木に保持さ
れていれば、文脈X(t-n,t-1)に続いて符号化対象文字
Xtの条件つき出現確率を用いて符号化して出力する
(ステップ708)。ついで、Pn=n+1によりPn
を歩進し(ステップ709)、すべてのデータの符号化
が終了したかチェックし(ステップ710)、終了して
なければステップ602に戻り、次の符号化対象文字に
ついて上記処理を繰り返す。以上では文脈の登録につい
て説明しなかったが、上記圧縮処理と並行して文脈登録
部12は例えば逐次登録法あるいは既述の登録法に従っ
て文脈の登録処理を行う。以上により、直前文字の符号
化文脈に直前文字を結合してなる文脈、並びに次数が1
次以下もしくは0次の文脈のみを符号化文脈の対象とす
ることができる。これにより、むやみに長い文脈の検索
を行わず、又、使用可能性の高い文脈に限定して検索す
ることができる。
【0077】図17は符号化文脈の検索範囲を限定する
場合における復元部23の復元処理フローである。ま
ず、文字番号tを0に初期化すると共にPnを0に初期
化する(ステップ751)。尚、Pnは直前文字の復元
に使用した文脈(符号化文脈)の次数に1を加えたもの
であり、初期時復元が行われていないため0に設定す
る。ついで、文字番号tを1歩進すると共に(ステップ
752)、次数nをPnにする(ステップ753)。
尚、最長文脈次数はNとする。しかる後、文脈木に文脈
X(t-n,t-1)が登録されているかチェックする(ステップ
754)。ただし、文脈X(t-n,t-1)は既に復元したn
個の最新文字列{Xt-n,Xt-n+1,・・・,Xt-1}で
ある。
【0078】文脈X(t-n,t-1)が登録されていなけれ
ば、次数nが1より大きいかチェックし、n>1の場合
には次数nを1にし、n≦1の場合には次数nを0にし
(ステップ755)、以後ステップ754以降の処理を
繰り返す。文脈X(t-n,t-1)が登録されていれば、該文
脈X(t-n,t-1)を条件としてt番目の符号を文字コード
に復元する(ステップ756)。ついで、復元した文字
コードがESCコードであるかチェックし(ステップ7
57)、ESCコードであればステップ755以降の処
理を繰り返す。一方、ESCコードでなければ、復元し
た文字コードを出力する(ステップ758)。
【0079】ついで、Pn=n+1によりPnを歩進し
(ステップ759)、すべてのデータの符号化が終了し
たかチェックし(ステップ760)、終了してなければ
ステップ752に戻り、次の符号について上記処理を繰
り返す。以上では文脈の登録について説明しなかった
が、上記復元処理と並行して文脈登録部22は例えば逐
次登録法あるいは既述の登録法に従って文脈の登録処理
を行う。以上、本発明を実施例により説明したが、本発
明は請求の範囲に記載した本発明の主旨に従い種々の変
形が可能であり、本発明はこれらを排除するものではな
い。
【0080】
【発明の効果】以上本発明によれば、所定の条件を満足
する登録文脈(例えば、文脈の出現頻度が一定値以上の
登録文脈、あるいは文脈に続いて出現する文字の中で良
く出る文字の出現頻度が一定値以上の登録文脈)を符号
化文脈として選択し、該符号化文脈を用いて符号化対象
文字を可変長符号化あるいは可変長符号を文字に復元す
るように構成したから、符号化文脈を厳選して無意味に
長い文脈を符号化文脈として使用しないようにでき、
又、符号化の簡略化(圧縮/復元スピードの向上)、圧
縮率の向上を図ることができる。
【0081】本発明によれば、文脈の長さ(次数)を固
定せずに入力データに応じて文脈の次数を延ばして登録
する際、符号化対象文字より前の文字の符号化文脈に基
づいて登録文脈を厳選する。例えば、(1) 直前文字で使
用した符号化文脈に直前文字を加えた文字列を登録文脈
の対象とし、あるいは、(2) 符号化対象文字より前の文
字の符号化文脈の次数が連続して一次以上の場合、これ
ら各文脈及び直前文字よりなる文脈を登録文脈の対象と
し、あるいは、(3) 連続するm文字のそれぞれについて
符号化文脈を用いて符号化した場合、各文脈の長さLm
が、L1<L2<・・・Lmを満たす各文脈を連結した文
脈を登録文脈の対象とする。この結果、本発明によれ
ば、相関の強い、効果的な文脈のみ厳選して登録するこ
とができ、無意味に長い文脈を登録しないようにでき、
しかも、符号化の簡略化、メモリの有効利用、圧縮率の
向上を図ることができる。
【0082】本発明によれば、文脈の長さ(次数)を固
定せずに入力データに応じて文脈の次数を延ばして登録
する際、直前文字の符号化文脈と符号化対象文字の符号
化文脈の相関が強い場合、これら符号化文脈の一部を符
号化対象文字とあわせて1つの文字とみなして登録文脈
を決定する。例えば、(1) 直前文字の符号化文脈及び符
号化対象文字の符号化文脈の次数が共に所定次数以上
(2次以上)の場合、直前文字と符号化対象文字を1つの
文字として合成し、直前文字の符号化文脈に合成文字を
結合してなる文脈を登録する。この結果、本発明によれ
ば、相関の強い文字列のところは、1文字づつ符号化す
るのではなく、文字列で符号化することによって圧縮/
復元スピードの向上、符号化効率の向上を図ることがで
きる。
【0083】本発明によれば、符号化対象文字より前の
文字で使用した符号化文脈に基づいて符号化対象文字を
符号化するために使用する文脈(符号化文脈)の検索範
囲を限定する。例えば、(1) 直前文字の符号化文脈に直
前文字を結合してなる文脈の次数より短い次数の文脈を
符号化文脈の検索範囲とし、あるいは、(2) 直前文字の
符号化文脈に直前文字を結合してなる文脈、並びに次数
が1次以下もしくは0次の文脈のみを符号化文脈の検索
対象とする。これにより、本発明によれば、符号化文脈
の検索範囲を相関の強い、効果的な文脈に限定し、無意
味に長い文脈を符号化文脈として使用しないようにで
き、又、符号化の簡略化、圧縮率の向上を図ることがで
きる。
【図面の簡単な説明】
【図1】データ圧縮/復元装置の構成である。
【図2】符号化文脈を厳選する場合のデータ圧縮処理
(その1)である。
【図3】符号化文脈を厳選する場合のデータ復元処理
(その1)である。
【図4】符号化文脈を厳選する場合のデータ圧縮処理
(その2)である。
【図5】符号化文脈を厳選する場合のデータ復元処理
(その2)である。
【図6】登録文脈を厳選する場合のデータ圧縮処理(そ
の1)である。
【図7】登録文脈を厳選する場合のデータ復元処理(そ
の1)である。
【図8】登録文脈を厳選する場合のデータ圧縮処理(そ
の2)である。
【図9】登録文脈を厳選する場合の登録文脈の説明図で
ある。
【図10】登録文脈を厳選する場合のデータ復元処理
(その2)である。
【図11】登録文脈を厳選する場合のデータ圧縮処理
(その3)である。
【図12】登録文脈を厳選する場合のデータ復元処理
(その3)である。
【図13】複数の文字を1文字として文脈を登録する場
合の説明図である。
【図14】符号化文脈の検索範囲を限定する場合のデー
タ圧縮方法(その1)である。
【図15】符号化文脈の検索範囲を限定する場合のデー
タ復元方法(その1)である。
【図16】符号化文脈の検索範囲を限定する場合のデー
タ圧縮方法(その2)である。
【図17】符号化文脈の検索範囲を限定する場合のデー
タ復元方法(その2)である。
【図18】符号木の説明図である。
【図19】ハフマン符号木の説明図である。
【図20】算術符号化を説明するための文字・生起確率
・区間対応表である。
【図21】算術符号化を説明するための模式図である。
【図22】文脈モデルの可変長符号化説明図である。
【図23】条件付き確率を付した文脈木の一例を示した
図である。
【図24】文脈と符号化対象文字の説明図である。
【図25】文脈の木の登録例である。
【図26】文脈木の逐次登録例である。
【図27】逐次登録法の説明図である。
【図28】従来のブレンドモデル(圧縮方法)である。
【図29】従来のブレンドモデル(復元方法)である。
【符号の説明】
11・・入力文字列 12・・文脈登録部 13・・圧縮符号化部 14・・符号化データ 21・・符号化データ 22・・文脈登録部 23・・復元部 24・・文字コード
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H03M 7/40

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 符号化対象文字の直前n文字の文字列
    (文脈)に続いて出現する符号化対象文字の出現確率を用
    いて符号化対象文字を可変長符号化あるいは可変長符号
    を文字に復元する確率統計型データ圧縮/復元方法にお
    いて、 文脈の長さ(次数)を固定せずに入力データに応じて文
    脈の次数を延ばして登録し、 所定の条件を満足する登録文脈を符号化に使用する文脈
    (符号化文脈)として選択し、 該符号化文脈を用いて符号化対象文字を可変長符号化あ
    るいは可変長符号を文字に復元することを特徴とするデ
    ータ圧縮/復元方法。
  2. 【請求項2】 文脈の出現頻度が一定値以上のとき、該
    文脈は前記条件を満足すると判定することを特徴とする
    請求項1記載のデータ圧縮/復元方法。
  3. 【請求項3】 文脈に続いて出現する文字の中で良く出
    る文字の出現頻度が一定の割合以上の文脈は前記条件を
    満足すると判定することを特徴とする請求項1記載のデ
    ータ圧縮/復元方法。
  4. 【請求項4】 符号化対象文字の直前n文字の文字列
    (文脈)に続いて出現する符号化対象文字の出現確率を用
    いて符号化対象文字を可変長符号化あるいは可変長符号
    を文字に復元する確率統計型データ圧縮/復元方法にお
    いて、 文脈の長さ(次数)を固定せずに入力データに応じて文
    脈の次数を延ばして登録する際、符号化対象文字より前
    の文字の符号化に使用した文脈(符号化文脈)に基づい
    て登録する文脈(登録文脈)を決定することを特徴とす
    るデータ圧縮/復元方法。
  5. 【請求項5】 直前文字で使用した符号化文脈に直前文
    字を加えた文字列を登録文脈の対象とすることを特徴と
    する請求項4記載のデータ圧縮/復元方法。
  6. 【請求項6】 符号化対象文字より前の文字の符号化文
    脈の次数が連続して一次以上の場合、これら各文脈及び
    直前文字よりなる文脈を登録文脈の対象とすることを特
    徴とする請求項4記載のデータ圧縮/復元方法。
  7. 【請求項7】 連続するm文字のそれぞれについて符号
    化文脈を用いて符号化した場合、各文脈の長さLmが、
    1<L2<・・・Lmを満たす各文脈を連結した文脈を
    登録文脈の対象とすることを特徴とする請求項4記載の
    データ圧縮/復元方法。
  8. 【請求項8】 符号化文脈の各文字間の相関が強い場
    合、符号化文脈の一部と符号化対象文字とを併せて1つ
    の文字として登録することを特徴とする請求項4記載の
    データ圧縮/復元方法。
  9. 【請求項9】 符号化対象文字の直前文字の符号化文脈
    及び符号化対象文字の符号化文脈の次数が所定次数以上
    の場合、直前文字と符号化対象文字を1つの文字として
    登録することを特徴とする請求項8記載のデータ圧縮/
    復元方法。
  10. 【請求項10】 前記所定次数は2次であることを特徴
    とする請求項9記載のデータ圧縮/復元方法。
  11. 【請求項11】 符号化対象文字の直前n文字の文字列
    (文脈)に続いて出現する符号化対象文字の出現確率を用
    いて符号化対象文字を可変長符号化あるいは可変長符号
    を文字に復元する確率統計型データ圧縮/復元方法にお
    いて、 文脈の長さ(次数)を固定せずに入力データに応じて文
    脈の次数を延ばして登録し、 符号化対象文字より前の文字で使用した符号化文脈に基
    づいて符号化対象文字を符号化するために使用する文脈
    (符号化文脈)の検索範囲を限定することを特徴とする
    データ圧縮/復元方法。
  12. 【請求項12】 符号化対象文字の直前文字の符号化文
    脈に直前文字を結合してなる文脈より短い文脈を符号化
    文脈の検索範囲とすることを特徴とする請求項11記載
    のデータ圧縮/復元方法。
  13. 【請求項13】 符号化対象文字の直前文字の符号化文
    脈に直前文字を結合してなる文脈、並びに次数が1次以
    下もしくは0次の文脈のみを符号化文脈の検索範囲とす
    ることを特徴とする請求項11記載のデータ圧縮/復元
    方法。
JP23186796A 1996-09-02 1996-09-02 データ圧縮/復元方法 Expired - Fee Related JP3276860B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP23186796A JP3276860B2 (ja) 1996-09-02 1996-09-02 データ圧縮/復元方法
US08/828,558 US6128412A (en) 1996-09-02 1997-03-31 Statistical data compression/decompression method
US09/406,811 US6542644B1 (en) 1996-09-02 1999-09-28 Statistical data compression/decompression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23186796A JP3276860B2 (ja) 1996-09-02 1996-09-02 データ圧縮/復元方法

Publications (2)

Publication Number Publication Date
JPH1079673A JPH1079673A (ja) 1998-03-24
JP3276860B2 true JP3276860B2 (ja) 2002-04-22

Family

ID=16930269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23186796A Expired - Fee Related JP3276860B2 (ja) 1996-09-02 1996-09-02 データ圧縮/復元方法

Country Status (2)

Country Link
US (2) US6128412A (ja)
JP (1) JP3276860B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233266B2 (en) 2004-12-28 2007-06-19 Casio Electronics Manufacturing Co., Ltd. Data compression/decompression device and data compression/decompression method

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100269140B1 (ko) * 1997-12-26 2000-10-16 윤종용 작은 화면을 위한 콘텍스트 발생 회로 및 그 방법
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) * 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
AU7788300A (en) * 1999-10-19 2001-04-30 Pulsar Dna, Inc. Data file processing method
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
CN1262972C (zh) * 2000-09-28 2006-07-05 罗克马诺尔研究有限公司 改进的霍夫曼数据压缩方法
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7417568B2 (en) * 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
CN1593013A (zh) * 2001-11-13 2005-03-09 皇家飞利浦电子股份有限公司 可变长度码字序列的解码方法
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
FR2842672B1 (fr) * 2002-07-22 2005-01-28 Inst Nat Rech Inf Automat Dispositif et procede de decodage robuste de codes arithmetiques
US7271749B2 (en) * 2004-09-14 2007-09-18 Hewlett-Packard Development Company, L.P. Context-based denoiser that simultaneously updates probabilities for multiple contexts
US7592936B2 (en) * 2005-07-12 2009-09-22 Hewlett-Packard Development Company, L.P. Input distribution determination for denoising
US7123172B1 (en) * 2005-07-29 2006-10-17 Hewlett-Packard Development Company, L.P. Method and system for determining an optimal or near optimal set of contexts by constructing a multi-directional context tree
US8341612B2 (en) * 2007-05-16 2012-12-25 International Business Machines Corporation Method and apparatus for run-time statistics dependent program execution using source-coding
JP2009152990A (ja) * 2007-12-21 2009-07-09 Panasonic Corp 画像符号化装置及び画像復号化装置
US20120046995A1 (en) * 2009-04-29 2012-02-23 Waldeck Technology, Llc Anonymous crowd comparison
KR101049699B1 (ko) * 2009-07-17 2011-07-15 (주)이스트소프트 데이터의 압축방법
US8484170B2 (en) * 2011-09-19 2013-07-09 International Business Machines Corporation Scalable deduplication system with small blocks
JP6543922B2 (ja) * 2014-12-10 2019-07-17 富士通株式会社 インデックス生成プログラム
CN106681659A (zh) * 2016-12-16 2017-05-17 郑州云海信息技术有限公司 数据压缩的方法及装置
CN117560016B (zh) * 2024-01-09 2024-03-19 学术桥(北京)教育科技有限公司 基于大数据的高校招聘信息管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862167A (en) * 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US5146221A (en) * 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
US5254990A (en) * 1990-02-26 1993-10-19 Fujitsu Limited Method and apparatus for compression and decompression of data
DE69123660T2 (de) * 1990-08-13 1997-04-17 Fujitsu Ltd., Kawasaki, Kanagawa Datenkompressionsmethode und Gerät
US5635932A (en) * 1994-10-17 1997-06-03 Fujitsu Limited Lempel-ziv compression with expulsion of dictionary buffer matches
JP3302210B2 (ja) * 1995-02-10 2002-07-15 富士通株式会社 データ符号化/復号化方法及び装置
US5710562A (en) * 1995-08-31 1998-01-20 Ricoh Company Ltd. Method and apparatus for compressing arbitrary data
JP3305190B2 (ja) * 1996-03-11 2002-07-22 富士通株式会社 データ圧縮装置及びデータ復元装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233266B2 (en) 2004-12-28 2007-06-19 Casio Electronics Manufacturing Co., Ltd. Data compression/decompression device and data compression/decompression method

Also Published As

Publication number Publication date
US6128412A (en) 2000-10-03
US6542644B1 (en) 2003-04-01
JPH1079673A (ja) 1998-03-24

Similar Documents

Publication Publication Date Title
JP3276860B2 (ja) データ圧縮/復元方法
EP0695040B1 (en) Data compressing method and data decompressing method
US6061398A (en) Method of and apparatus for compressing and restoring data
JPH09162748A (ja) データ符号化方法、データ復号方法、データ圧縮装置、データ復元装置、及びデータ圧縮・復元システム
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
US8159374B2 (en) Unicode-compatible dictionary compression
JP3083730B2 (ja) データ情報を圧縮するためのシステムおよび方法
US5594435A (en) Permutation-based data compression
EP2011237A1 (en) Method and apparatus for entropy coding and decoding
JPH08293800A (ja) データ圧縮方法及びデータ圧縮装置、並びにデータ復元方法及びデータ復元装置
JPH08167852A (ja) データ圧縮方法及び装置
JP3267504B2 (ja) データ圧縮装置およびデータ復元装置
Shanmugasundaram et al. IIDBE: A lossless text transform for better compression
Ghuge Map and Trie based Compression Algorithm for Data Transmission
Shanmugasundaram et al. Text preprocessing using enhanced intelligent dictionary based encoding (EIDBE)
JP2954749B2 (ja) データ圧縮方式
JP3132774B2 (ja) データ圧縮・復元装置
JPH08167853A (ja) データ圧縮・復元方法
JPH05152971A (ja) データ圧縮・復元方法
JPH1155125A (ja) 文字データの圧縮・復元方法
JPH02190080A (ja) 画像符号化装置
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
JP3088740B2 (ja) データ圧縮及び復元方式
JP3108404B2 (ja) データ圧縮装置及びデータ復元装置
JPH06202844A (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: 20020129

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

Free format text: PAYMENT UNTIL: 20080208

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090208

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090208

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100208

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110208

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110208

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120208

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130208

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130208

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20140208

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees