JPH09246991A - データ圧縮・復元方法及びデータ圧縮装置及びデータ復元装置 - Google Patents

データ圧縮・復元方法及びデータ圧縮装置及びデータ復元装置

Info

Publication number
JPH09246991A
JPH09246991A JP8053482A JP5348296A JPH09246991A JP H09246991 A JPH09246991 A JP H09246991A JP 8053482 A JP8053482 A JP 8053482A JP 5348296 A JP5348296 A JP 5348296A JP H09246991 A JPH09246991 A JP H09246991A
Authority
JP
Japan
Prior art keywords
code
context
data
character
output
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
JP8053482A
Other languages
English (en)
Other versions
JP3305190B2 (ja
Inventor
Nobuko Sato
宣子 佐藤
Yoshiyuki Okada
佳之 岡田
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 JP05348296A priority Critical patent/JP3305190B2/ja
Priority to US08/749,330 priority patent/US6061398A/en
Publication of JPH09246991A publication Critical patent/JPH09246991A/ja
Application granted granted Critical
Publication of JP3305190B2 publication Critical patent/JP3305190B2/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

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

Abstract

(57)【要約】 【課題】 データの圧縮が高速かつ高圧縮率で実行でき
るデータ圧縮装置とそのデータ圧縮装置と組み合わして
用いるデータ復元装置を提供する。 【解決手段】 データ圧縮装置を構成するRAM15上
に、各文脈に対するハフマン符号木を記憶させておき、
CPU13によって、符号化すべきデータを構成する各
文字に対して、そのときの文脈に対応するハフマン符号
木を用いた符号化が行われ、各文字の符号化が行われる
ごとに、符号化に用いられたハフマン符号木が、全ての
文字のそれまでの出現頻度に応じて再構成されるように
する。また、データ復元装置内に、各文脈に対するハフ
マン符号木を記憶させておき、復元すべき符号に対し
て、そのときの文脈に対応するハフマン符号木を用いた
復号が行われ、1文字の復号が行われるごとに、復号に
用いられたハフマン符号木が、全ての文字のそれまでの
出現頻度に応じて再構成されるようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、さまざまな形態の
データの圧縮や圧縮したデータの復元を行うデータ圧縮
・復元方法およびデータ圧縮装置およびデータ復元装置
に関わり、特に、確率統計型符号化に分類される符号化
によって、データの圧縮や復元を行うデータ圧縮・復元
方法とデータ圧縮装置とデータ復元装置に関する。
【0002】
【従来の技術】近年のコンピュータの急速な進歩に伴
い、コンピュータ内で、大容量のデータが取り扱われる
ようになっており、伝送時間を短縮するためや、記憶装
置を効率的に利用するために、データを圧縮することが
行われている。
【0003】データを圧縮する際に用いられる符号化方
法としては、さまざまなものが知られている。このう
ち、文字コード、ベクトル情報、画像などと、対象デー
タを限定せずに様々なデータに適用可能な符号化は、ユ
ニバーサル符号化と呼ばれている。ユニバーサル符号化
としては、文字列の類似性を利用する辞書型符号化と、
文字の出現頻度を利用する確率統計型符号化が知られて
いる。なお、以下の説明においては、データの1単位を
「文字」と表記し、「文字」が複数個つながったものを
「文字列」と表記することにする。
【0004】確率統計型符号化に分類される符号化に
は、ハフマン符号化と算術符号化がある。ハフマン符号
化では、各文字に対する符号として、その文字の出現頻
度に逆比例した符号長を有する符号(ハフマン符号)が
使用される。ハフマン符号化の詳細を説明する前に、ハ
フマン符号の生成時にも用いられるデータ構造である符
号木の説明を行うことにする。
【0005】図21に符号木の一例を示す。図中、○と
□で示された点が節点である。節点間を結ぶ線分は
「枝」と呼ばれ、1番上にある節点は「根」と呼ばれ
る。また、ある節点Xに「枝」で接続されている下の節
点Yは、節点Xの「子」と呼ばれ、逆に、節点Xは節点
Yの「親」と呼ばれる。「子」を持たない節点は「葉」
と呼ばれ、各「葉」には文字が対応づけられる。また、
「葉」を除く節点は「内部節点」と呼ばれ、「根」から
各節点までの「枝」の数がレベルと呼ばれている。
【0006】符号木を用いた符号化時には、「根」か
ら、符号化すべき文字と対応づけられている「葉」に至
る経路が符号として出力される。すなわち、「根」から
目的とする「葉」に至るまでの各節点において左に分岐
したときには“1”が出力され、右に分岐したときには
“0”が出力される。たとえば、図21に示した符号木
では、節点番号7の「葉」に対応づけられている文字A
に対しては、符号“00”が出力され、節点番号8の
「葉」に対応づけられている文字Bに対しては、符号
“011”が出力され、復号時には、「根」から、復号
対象であるデータの各ビットの値に従って各節点を辿っ
たときに到達する「葉」に対応づけられている文字が出
力される。
【0007】ハフマン符号化では、このような符号木
が、次のような手順(ハフマンアルゴリズムと呼ばれて
いる。)で生成される。 (1)各文字に対応する葉(節点)を用意し、各葉に対
して、対応する文字の出現頻度を記録しておく。 (2)出現頻度の最も小さい2つの節点に対して、新た
な節点を1つ作成し、作成した節点とそれら2つの節点
とをそれぞれ枝で結ぶ。また、枝で結んだ2つの節点の
出現頻度の和を、作成した新たな節点に対する出現頻度
として記録しておく。 (3)親を有する節点を除く節点の数が1つになるま
で、親を有する節点を除く節点に対して(2)の処理を
行う。
【0008】このような手順で生成された符号木では、
各文字に対して、その文字の出現頻度に逆比例した符号
長を有する符号が割り当てられることになる。このた
め、この符号木を用いて符号化を行えば、データの圧縮
が行えることになる。
【0009】ハフマン符号を用いた符号化は、さらに、
静的符号化、準適応的符号化、適応的符号化に分類され
る。静的符号化では、通常、最初に、符号化すべきデー
タ内に現れる各文字の出現頻度が計数され、それらの出
現頻度を基に上述のような手順で符号木が作成される。
次に、その符号木を用いて当該データが符号化され、符
号化結果が符号木形状を表すデータとともに符号化デー
タとして出力される。すなわち、静的符号化では、符号
化すべき全ての文字に関する葉を有する符号木が用意さ
れ、その符号木を用いて符号化が行われる。そして、復
号側では、符号とともに出力されている符号木を用いて
復号が行われる。
【0010】準適応的符号化では、静的符号化と同様
に、符号化すべき全ての文字に関する葉を有する符号木
が用意される。ただし、最初に用意される符号木は、各
文字の出現頻度に、それぞれ適当な初期値を設定するこ
とによって生成されたものである。準適応的符号化で
は、入力データに応じて変化する各文字の出現頻度に応
じた形状を有するように、その符号木が変形される。
【0011】以上説明したように、静的符号化と準適応
的符号化とでは、符号化すべき全ての文字に関する葉を
有する符号木が用意される。これに対し、適応的符号化
時には、全ての文字に関する葉を有さない符号木、すな
わち、幾つかの文字と未登録文字に対する葉だけを有す
る符号木が用意される。適応的符号化では、符号化すべ
き文字に関する葉が符号木に存在していなかった場合に
は、未登録文字に対する符号と、符号化すべき文字その
もの(あるいはその文字を所定の符号化規則に従って符
号化した符号)とが出力される。その後、符号木にその
文字に関する葉が加えられる。
【0012】なお、準適応的符号化と適応化符号化で
は、符号木の形状の更新が頻繁に行われるので、通常、
その更新にFGK(Faller-Gallager-Knuth)アルゴリズ
ムが適用できるように、符号木が形成される。すなわ
ち、図22に示したように、レベルが低い節点ほど記録
される出現頻度が大きくなるように、同じレベルの節点
では、左の節点ほど、出現頻度が大きくなるように符号
木が形成される。
【0013】ハフマン符号化では、1文字を符号化する
と、整数ビットからなる符号が生成される。これに対し
て、算術符号化では、一文字に対して端数ビットを割り
当てることが出来る。算術符号化では、0以上、1未満
の数直線(以下[0、1)と記す)が、符号化すべきデ
ータを構成する各文字の生起確率(出現頻度)に応じて
順次狭められていく。そして、全ての文字に対する処理
が終わったときに、狭められた区間内の1点を表す数値
が符号として出力される。
【0014】たとえば、符号化対象となる文字がa、
b、c、d、eの5つであり、それらの文字の生起確率
が、それぞれ、0.2、0.1、0.05、0.15、
0.5であった場合、図23に示したように、各文字に
対して、その生起確率に応じた区間幅を有する区間が割
り当てられる。そして、符号化すべき文字列が“ab
e”であった場合には、図24に模式的に示したよう
に、まず、区間[0、1)が、文字“a”に対する区間
[0、0.2)に狭められる。次いで、その区間[0、
0.2)が各文字の生起確率に応じた区間に分割され、
次の文字である“b”に対応する区間[0.04、0.
06)が文字列“ab”の区間として選択される。そし
て、その区間[0.04、0.06)がさらに各文字の
生起確率に応じた区間に分割され、次の文字である
“e”に対応する区間[0.05、0.06)が文字列
“abe”の区間として選択される。その後、その区間
内の任意の点(たとえば下限)の位置を2進表示した際
の少数点以下のビット列が符号化結果として出力され
る。
【0015】算術符号化では、さらに圧縮効果を高める
ために、符号化すべき文字の直前に現れた文字列(文
脈)と対応づけて、各文字の生起確率を求めることも行
われている。この場合、符号化は、図25に模式的に示
したように、文脈収集部と可変長符号化部とを備える装
置によって実現される。文脈収集部は、図26に示した
ような文脈木を用いて、現れた文字列の記憶とその出現
回数の計数を行い、ある文脈後に各文字が現れる条件付
き確率を求める。可変長符号化部は、文脈収集部によっ
て求められた条件付き確率に応じた長さを有する符号を
生成する。なお、符号を生成する際、可変長符号化部
は、更新される前の条件付き確率を用いる。
【0016】たとえば、図27に模式的に示したよう
に、“abc”という順で文字が並んだ原データが入力
された場合、文脈収集部は、文脈である“ab”に続い
て、符号化対象文字である“c”が現れる条件付き確率
ρ(c|a,b)を可変長符号部に出力する。その後、
文脈収集部は、“ab”に続いて“c”が再度現れたこ
とに基づき、各文字に関する条件付き確率の再計算を行
う。
【0017】文脈収集処理における具体的な処理手順と
してはさまざまなものが知られているが、文脈の次数
(文脈の文字数)を固定するものと、固定しないもの
(Blending文脈)に大別されている。後者の方法では、
ある文脈が出やすい場合には、その文脈に関する次数を
上げ、出にくい場合には低い次数のままといったよう
に、各文脈の次数を入力データに適応させて変更する。
【0018】
【発明が解決しようとする課題】ハフマン符号化は、デ
ータの圧縮は高速に行えるものの、一般的なデータを対
象とした場合、高い圧縮率が得られないという欠点を有
している。これに対して、文脈モデルを利用した算術符
号化によれば、高い圧縮率を実現することができる。し
かし、圧縮を行うときに複雑な計算が必要とされるた
め、データの圧縮を高速に行えないという欠点が存在す
る。また、高次の文脈モデルを用いるほど、データの圧
縮率を高くすることができるのであるが、各文脈に関す
るデータを記憶するために多くの記憶容量が必要とされ
ることになる。このため、従来のデータ圧縮装置では、
実際上、限られた数の文脈に関するデータしか用意して
おくことができず、文脈モデルの性能を十分に引き出す
ことができていなかった。
【0019】そこで、本発明の課題は、実用的な処理速
度で高い圧縮率が実現できるデータ圧縮装置を提供する
ことにある。また、本発明の他の課題は、上記データ圧
縮装置によって圧縮されたデータを復元できるデータ復
元装置を提供することにある。
【0020】
【課題を解決するための手段】本発明のデータ圧縮・復
元方法では、一符号が割り当てられる単位データである
文字毎に、それまでに連続したn個の文字からなる文脈
を条件とした、その文字の条件付き確率に対してハフマ
ン符号を割り当てて、データが圧縮あるいは復元され
る。
【0021】本発明の第1のデータ圧縮装置は、複数の
文脈毎に、その文脈に続く文字を葉とするハフマン符号
の規則に従った符号木を記憶する記憶手段と、圧縮すべ
き文字列から符号化を行う文字を取得する文字取得手段
と、この文字取得手段により取得された文字の直前に出
現した文脈を特定する文脈特定手段と、この文脈特定手
段により特定された文脈に対して記憶手段内に記憶され
ている符号木において、文字取得手段で取得された文字
に対応づけられている符号を出力する符号出力手段と、
この符号出力手段によって用いられた符号木をハフマン
符号の規則に従って更新する更新手段とを備える。
【0022】すなわち、第1のデータ圧縮装置では、ハ
フマン符号化に文脈モデルを適用した形で、準適応的に
データの圧縮が進められる。このため、第1のデータ圧
縮装置によれば、高速にしかも高圧縮率でデータを圧縮
できることになる。
【0023】本発明の第2のデータ圧縮装置は、第1の
データ圧縮装置を以下のように変形することによって構
成される。まず、特殊文字と特殊符号とを対応づけるデ
ータを含む符号木を用いるようにする。また、符号出力
手段として、文脈特定手段により特定された文脈に対し
て記憶手段内に記憶されている符号木内に、文字取得手
段で取得された文字に関するデータが存在していなかっ
た場合には、その符号木内で特殊文字と対応づけられて
いる特殊符号を出力し、文字取得手段で取得された文字
に対する符号を出力するまで、文脈特定手段で特定され
た文脈を短くしながら特殊符号の出力を繰返す手段を用
いる。さらに、符号出力手段によって特殊符号が出力さ
れた場合に、未登録の文脈と文字の組み合わせに関する
情報を記憶手段に追加する追加手段を付加する。
【0024】このように構成された第2のデータ圧縮装
置によれば、適応的にデータ圧縮が行われることになる
ので、さらに良い圧縮率が実現できる。本発明の第3の
データ圧縮装置は、第2のデータ圧縮装置に、符号出力
手段による文脈(符号木)の使用頻度を管理する使用頻
度管理手段と、使用頻度が最も少ない文脈に関する情報
を記憶手段内から削除する削除手段とを付加することに
よって構成される。
【0025】本発明の第4のデータ圧縮装置は、第3の
データ圧縮装置に、各文脈に順位を与えて管理するとと
もに、符号出力手段によって符号の出力が行われた場合
には、符号の出力に使用された文脈に対してより上位の
順位を与える順位管理手段を付加し、削除手段として、
最下位の順位が与えられている文脈に関する情報を記憶
手段内から削除する手段を採用することによって構成さ
れる。
【0026】本発明の第5のデータ圧縮装置は、第4の
データ圧縮装置において、符号出力手段によって符号出
力に用いられた文脈の順位を、最も上位の順位である第
1順位に変更し、第1順位が与えられていた文脈から符
号の出力に用いられた文脈よりも一つ上位の順位が与え
られていた文脈までの各文脈の順位を、それぞれ1つ下
位の順位に変更する順位管理手段を用いることによって
構成される。
【0027】本発明の第6のデータ圧縮装置は、第4の
データ圧縮装置において、符号出力手段によって符号出
力に用いられた文脈の順位を、1つ上位の順位に変更
し、その1つ上位の順位が与えられていた文脈の順位
を、1つ下位の順位に変更する順位管理手段を用いるこ
とによって構成される。
【0028】このように構成された第4ないし第6のデ
ータ圧縮装置によれば、記憶手段の容量が大きくなくと
も、高圧縮率のデータ圧縮が実現できる。本発明の第7
のデータ圧縮装置は、複数の文脈毎に、その文脈に続く
文字を葉とするハフマン符号の規則に従った符号木また
は各文字の出現頻度からなる出現頻度データのいずれか
一方を記憶する記憶手段と、圧縮すべき文字列から符号
化を行う文字を取得する文字取得手段と、この文字取得
手段により取得された文字の直前に出現した文脈を特定
する文脈特定手段と、この文脈特定手段により特定され
た文脈に対して記憶手段内に記憶されているデータが符
号木であった場合には、その符号木において、文字取得
手段で取得された文字に対応づけられている符号を出力
する第1符号出力手段と、この第1符号出力手段によっ
て用いられた符号木をハフマン符号の規則に従って更新
する更新手段と、文脈特定手段により特定された文脈に
対して記憶手段内に記憶されているデータが出現頻度デ
ータであった場合には、その出現頻度データ内の各文字
に関する出現頻度に基づき、文字取得手段で取得された
文字の算術符号を出力する第2符号出力手段と、この第
2符号出力手段によって用いられた出現頻度データ内の
文字取得手段で取得された文字に関する出現頻度を増加
させる第2出現頻度増加手段とを備える。
【0029】すなわち、第7のデータ圧縮装置では、ハ
フマン符号化と算術符号化とを併用した形で準適応的に
データの圧縮が進められる。このため、第7のデータ圧
縮装置によれば、両符号化方式の利点を利用してデータ
を圧縮できることになる。
【0030】本発明の第8のデータ圧縮装置は、第7の
データ圧縮装置の記憶手段内に、各文字の出現確率が1
/2のべき乗からの隔たりが小さい文脈に対する符号木
と、各文字の出現確率が1/2のべき乗からの隔たりが
大きい文脈に対する出現頻度データを記憶させておくこ
とによって構成される。
【0031】本発明の第9のデータ圧縮装置は、第7の
データ圧縮装置の記憶手段内に、次数が所定値未満の文
脈に対する符号木と、次数が所定値以上の文脈に対する
出現頻度データとを記憶させておくことによって構成さ
れる。
【0032】本発明の第10のデータ圧縮装置は、第7
のデータ圧縮装置の記憶手段内に、所定数以上の文字が
出現する文脈に対応づけられている符号木と、出現頻度
データは所定数未満の文字が出現する文脈に対応づけら
れている出現頻度データを記憶させておくことによって
構成される。
【0033】本発明の第10のデータ圧縮装置は、第7
のデータ圧縮装置に、文脈毎に、文脈特定手段によって
特定された回数を管理する特定回数管理手段を付加する
とともに、第1符号出力手段として、文脈特定手段によ
り特定された文脈に対して特定回数管理手段によって管
理されている回数が所定回数以上であった場合に、その
文脈に対応する符号木に基づいて符号を出力し、所定回
数未満であった場合に、算術符号化に基づいて符号を出
力する手段を用いることによって構成される。
【0034】なお、本発明の第7ないし第11のデータ
圧縮装置の第2符号出力手段としては、第1符号出力手
段によって符号の出力が行われるときに、それまでの符
号化結果である算術符号の端数を出力する手段を用いる
ことが望ましい。
【0035】また、第7ないし第11のデータ圧縮装置
に、圧縮結果である符号が記憶される第1記憶領域と第
2記憶領域とを有する符号記憶手段を付加するととも
に、第1符号出力手段として、符号記憶手段内の第1記
憶領域に符号を書き込む手段を用い、第2符号出力手段
として、符号記憶手段内の第2記憶領域に符号を書き込
む手段を用いることもできる。
【0036】さらに、第7ないし第11のデータ圧縮装
置に、圧縮結果である符号が記憶される所定サイズの記
憶領域を有する符号記憶手段と、符号記憶手段内に新た
な符号が記憶できなくなったときに、符号記憶手段内に
記憶された符号を出力する符号出力手段とを付加すると
ともに、第1符号出力手段として、符号記憶手段内の第
1記憶領域に符号を書き込む手段を用い、第2符号出力
手段として、符号記憶手段内の第2記憶領域に符号を書
き込む手段を用いることもできる。
【0037】以上のように第7ないし第11のデータ圧
縮装置を変形した場合には、1つのデータを符号化する
際に、端数領域の切り捨てなければならない回数が減る
ので、高い圧縮率が得られることになる。
【0038】本発明の第1のデータ復元装置は、複数の
文脈毎に、その文脈に続く文字を葉とするハフマン符号
の規則に従った符号木を記憶する記憶手段と、データの
復元に用いる文脈を特定する文脈特定手段と、この文脈
特定手段により特定された文脈に対して記憶手段内に記
憶されている符号木において符号に対応づけられている
文字を出力する文字出力手段と、この文字出力手段によ
って使用された符号木をハフマン符号の規則に従って更
新する更新手段とを備える。
【0039】この第1のデータ復元装置により、第1の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第2のデータ復元装置は、第1のデータ復
元装置を以下のように変形することによって構成され
る。まず、符号木として、特殊文字と特殊符号とを対応
づけるデータを含む符号木を用いる。また、文字出力手
段として、符号木において符号に対応づけられている文
字が特殊文字であった場合には、文字を復元するまで文
脈を短くしながら復元を繰返す手段を用いる。そして、
未登録の文脈と文字との組み合わせに関する情報を記憶
手段に登録する登録手段を付加する。
【0040】この第2のデータ復元装置により、第2の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第3のデータ復元装置は、第2のデータ復
元装置に、文字出力手段による各文脈の使用頻度を管理
する使用頻度管理手段と、使用頻度が最も少ない文脈に
関する情報を記憶手段内から削除する削除手段とを付加
することによって構成される。
【0041】この第3のデータ復元装置により、第3の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第4のデータ復元装置は、第3のデータ復
元装置に、各文脈に順位を与えて管理するとともに、文
字号出力手段による文字の出力が行われた場合には、文
字の出力に使用された文脈に対してより上位の順位を与
える順位管理手段を付加するとともに、削除手段とし
て、最下位の順位が与えられている文脈に関する情報を
記憶手段内から削除する手段を採用することによって構
成される。
【0042】この第4のデータ復元装置により、第4の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第5のデータ復元装置は、第4のデータ復
元装置において、符号出力手段によって符号出力に用い
られた文脈の順位を、最も上位の順位である第1順位に
変更し、第1順位が与えられていた文脈から符号の出力
に用いられた文脈よりも一つ上位の順位が与えられてい
た文脈までの各文脈の順位を、それぞれ1つ下位の順位
に変更する順位管理手段を採用することによって構成さ
れる。
【0043】この第5のデータ復元装置により、第5の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第6のデータ復元装置は、第4のデータ復
元装置において、符号出力手段によって符号出力に用い
られた文脈の順位を、1つ上位の順位に変更し、その1
つ上位の順位が与えられていた文脈の順位を、1つ下位
の順位に変更する順位管理手段を採用することによって
構成される。
【0044】この第6のデータ復元装置により、第6の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第7のデータ復元装置は、複数の文脈毎
に、その文脈に続く文字を葉とするハフマン符号の規則
に従った符号木またはその各文字の出現頻度からなる出
現頻度データのいずれか一方を記憶する記憶手段と、復
号に用いる文脈を特定する文脈特定手段と、この文脈特
定手段により特定された文脈に対して記憶手段内に記憶
されているデータが符号木であった場合には、その符号
木において符号に対応づけられている文字を出力する第
1文字出力手段と、この第1文字出力手段によって用い
られた符号木をハフマン符号の規則に従って新する更新
手段と、文脈特定手段により特定された文脈に対して記
憶手段内に記憶されているデータが出現頻度データであ
った場合には、符号に対して、その出現頻度データを用
いた算術復号化を行い、復号結果として得られた文字を
出力する第2文字出力手段と、この第2文字出力手段に
よって用いられた出現頻度データ内の、出力された文字
に関する出現頻度を増加させる第2出現頻度増加手段と
を備える。
【0045】この第7のデータ復元装置により、第7の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第8のデータ復元装置は、第7のデータ復
元装置の記憶手段内に、各文字の出現確率が1/2のべ
き乗からの隔たりが小さい文脈に対する符号木と、各文
字の出現確率が1/2のべき乗からの隔たりが大きい文
脈に対する出現頻度データとを記憶させておくことによ
って構成される。
【0046】この第8のデータ復元装置により、第8の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第9のデータ復元装置は、第7のデータ復
元装置の記憶手段内に、次数が所定値未満の文脈に対す
る符号木と、次数が所定値以上の文脈に対する出現頻度
データとを記憶させておくことによって構成される。
【0047】この第9のデータ復元装置により、第9の
データ圧縮装置によって圧縮されたデータが復元され
る。本発明の第10のデータ復元装置は、第7のデータ
復元装置の記憶手段内に、所定数以上の文字が出現する
文脈に対応づけられている符号木と、出現頻度データは
所定数未満の文字が出現する文脈に対応づけられている
出現頻度データを記憶させておくことによって構成され
る。
【0048】この第10のデータ復元装置により、第1
0のデータ圧縮装置によって圧縮されたデータが復元さ
れる。本発明の第11のデータ復元装置は、第7のデー
タ復元装置に、文脈ごとに、文脈特定手段によって特定
された回数を管理する特定回数管理手段を付加するとと
もに、第1文字出力手段として、文脈特定手段により特
定された文脈に対して特定回数管理手段によって管理さ
れている回数が所定回数以上であった場合には、その文
脈に対応する符号木に基づいて復号し、所定回数未満で
あった場合に算術符号化に基づいて復号し、復号結果と
して得られた文字を出力する手段を採用することによっ
て構成される。
【0049】この第11のデータ復元装置により、第1
1のデータ圧縮装置によって圧縮されたデータが復元さ
れる。なお、本発明の第7ないし第11のデータ復元装
置の第2文字出力手段として、第1文字出力手段によっ
て復号が行われるときに、それまでの算術符号の端数を
除く手段を採用することができる。
【0050】また、本発明の第7ないし第11のデータ
復元装置に、復元すべき符号が記憶された第1記憶領域
と第2記憶領域とを有する符号記憶手段を付加し、第1
文字出力手段として、符号記憶手段内の第1記憶領域に
記憶された符号を復元する手段を採用し、第2文字出力
手段として、符号記憶手段内の第2記憶領域に記憶され
た符号を復元する手段を採用することもできる。
【0051】また、本発明の第7ないし第11のデータ
復元装置に、圧縮結果である符号が記憶された所定サイ
ズの記憶領域を有する符号記憶手段と、この符号記憶手
段内に復号すべき符号がなくなったときには、符号記憶
手段内に新たな符号を入力する符号入力手段とを付加
し、第1文字出力手段として、符号記憶手段内の記憶領
域の前方から符号を復号する手段を用い、第2文字出力
手段として、符号記憶手段内の記憶領域の後方から符号
を復号する手段を用いることもできる。
【0052】
【発明の実施の形態】以下、本発明を図面を参照して具
体的に説明する。第1実施形態 <データ圧縮装置>図1に、第1実施形態のデータ圧縮
装置の構成を示す。図示したように、第1実施形態のデ
ータ圧縮装置は、入出力装置11とROM(read only m
emory)12とCPU(central processing unit)13と
ディスク記憶装置14とRAM(random access memory)
15を主な構成要素として備える。入出力装置11は、
キーボードとCRT(cathode ray tube)とその周辺機器
からなり、圧縮すべきデータを指示するためなどに用い
られる。ROM12には、本装置を起動した際に、CP
U13が最初に実行するプログラムなどが記憶されてい
る。CPU13は、そのプログラムに従い、ディスク記
憶装置14に記憶されているオペレーションシステムを
RAM15の所定の記憶領域に読み込み、さらに、その
オペレーションシステム上で動作するデータ圧縮用プロ
グラムを、RAM15の他の記憶領域に読み込む。
【0053】そして、CPU13は、読み込んだデータ
圧縮用プログラムに従った動作を開始し、図1に模式的
に示したように、RAM15内に、本装置が圧縮対象と
する原データ中に含まれることがある全ての2次の文脈
に関する符号木データを用意する。符号木データは、原
データに含まれることがある全ての文字に対する葉を有
するハフマン符号木を表すデータであり、起動時に用意
される符号木データによって表されるハフマン符号木
は、各文字(葉)に対して与えられている頻度の初期値
に応じた形状を有している。本データ圧縮装置では、デ
ータ圧縮の進行に伴い、RAM15内の各符号木データ
の内容が更新されていく。
【0054】以下、図2を用いて、第1実施形態のデー
タ圧縮装置内のCPUのの動作手順を説明する。データ
圧縮の開始時、CPU13は、まず、RAM15内に符
号木データが用意されている文脈の1つを表す文字列を
設定することによって、文脈文字列Pを初期化する(ス
テップS101)。このステップで設定された文字列
は、圧縮すべきデータである原データの1、2文字目の
文字(2次の文脈が実際には存在していない文字)の符
号化に使用する符号木データを指定するデータとして使
用される。
【0055】次いで、CPUは、原データから符号化を
行う文字X(文脈文字列Pに続く文字)を取得(ステッ
プS102)し、文脈文字列Pに対応する符号木データ
によって定義されている符号木の根から文字Xに応じた
葉X′までの経路を符号として出力する(ステップS1
03)。その後、CPUは、符号の出力に使用した符号
木データ中の文字Xの出現頻度に“1”を加算し(ステ
ップS104)、各文字の出現頻度を基にハフマンアル
ゴリズムに従って符号木を再構成し、その再構成後の符
号木が表されるように符号木データの内容を更新する
(ステップS105)。
【0056】そして、CPUは、文脈文字列Pの内容が
次の文字の文脈となるように、文字Xを用いて文脈文字
列Pを更新する(ステップS106)。すなわち、CP
Uは、2文字の文字列である文脈文字列Pの末尾に符号
化を終えた文字Xを追加するとともに、先頭の1文字を
取り除くことによって、新たな2文字の文脈文字列Pを
生成する。
【0057】その後、CPUは、原データ中の全ての文
字に対する処理が完了しているか否かを判断し、完了し
ていない場合(ステップS107;N)には、ステップ
S102に戻り、次の文字の符号化を行う。そして、原
データ内の全ての文字に関する処理を終えたときに(ス
テップS107;Y)、その原データに対するデータ圧
縮処理を終了する。
【0058】このように、第1実施形態のデータ圧縮装
置は、文脈ごとに用意されているハフマン符号木の形状
を、原データの内容に応じて更新しつつ、データ圧縮を
行う。このため、本データ圧縮装置によれば、高速にし
かも高圧縮率でデータ圧縮が実現できる。
【0059】なお、第1実施形態のデータ圧縮装置は、
2次の文脈を用いる装置として構成してあるが、他の次
数の文脈を用いるようにしても良いことは当然である。 <データ復元装置>第1実施形態のデータ復元装置は、
第1実施形態のデータ圧縮装置によって圧縮されたデー
タの復元を行う。
【0060】第1実施形態のデータ復元装置の構成は、
図1に示した第1実施形態のデータ圧縮装置と同じであ
り、第1実施形態のデータ復元装置の起動時、そのRA
M内には、第1実施形態のデータ圧縮装置のRAM内に
用意される符号木データと全く同じ符号木データが用意
される。
【0061】以下、図3を用いて、第1実施形態のデー
タ復元装置内のCPUのの動作手順を説明する。データ
復元を開始する際、CPUは、まず、文脈文字列Pの初
期化を行う(ステップS201)。このステップでは、
第1実施形態のデータ圧縮装置において文脈文字列Pの
初期化に用いられた文字列と同じ文字列が文脈文字列P
に設定される。
【0062】次いで、CPUは、RAM内の複数の符号
木データから、文脈文字列Pに対応した符号木データを
選択し、選択した符号木データが表している符号木内の
各節点を、復元対象である圧縮データを構成する各ビッ
トの値に従って、根から葉に至るまで辿っていき、1つ
の葉X′を特定する(ステップS202)。そして、C
PUは、特定した葉X′に対応する文字Xを復元結果と
して出力する(ステップS203)。
【0063】その後、CPUは、使用した符号木データ
中の文字X(葉X′)に関する出現頻度に“1”を加え
る(ステップS204)。そして、その符号木データ内
の各文字に関する出現頻度に基づき、ハフマンアルゴリ
ズムを用いて符号木を再構成し、再構成した符号木が表
されるように符号木データの内容を更新する(ステップ
S205)。次いで、CPUは、文字Xを用いて文脈文
字列Pを更新(ステップS206)し、全てのデータに
ついての処理が終了していなかった場合(ステップS2
07;N)には、ステップS202に戻り、次の符号の
復元を開始する。
【0064】そして、圧縮データ中の最後のビットの処
理が完了した際(ステップS207;Y)に、CPU
は、その圧縮データの復元処理を終了する。第2実施形態 <データ圧縮装置>第2実施形態のデータ圧縮装置は、
第1実施形態のデータ圧縮装置と同様に、次数を2次に
固定した文脈を用いてデータ圧縮を行う。第2実施形態
のデータ圧縮装置は、第1実施形態のデータ圧縮装置
(図1)と同じ構成を有し、その起動時、RAM内に
は、第1実施形態のデータ圧縮装置のRAM内に用意さ
れる符号木データと文字と符号との対応関係が同じであ
り、FGKアルゴリズムが適用可能な形態の符号木デー
タが用意される。
【0065】以下、図4を用いて、第2実施形態のデー
タ圧縮装置内のCPUのの動作手順を説明する。データ
圧縮を開始する際、CPUは、まず、符号木データが用
意されている文脈の1つを表す文字列を設定することに
よって、文脈文字列Pを初期化する(ステップS30
1)。次いで、CPUは、圧縮対象である原データから
符号化を行う文脈文字列Pに続く文字Xを取得(ステッ
プS302)する。そして、CPUは、文脈文字列Pに
対応する符号木データを選択し、その符号木データによ
って定義されている符号木の、根から文字Xに相当する
葉X′までの経路を符号として出力する(ステップS3
03)。
【0066】その後、CPUは、文字Xが現れたことを
符号木の形状に反映させるために、FGKアルゴリズム
に従った処理(ステップS304〜S309)を実行す
る。すなわち、CPUは、まず、葉X′を注目接点Yと
して扱うことを決定する(ステップS304)。次い
で、注目接点Yの頻度と同じ頻度で最もレベルの低い節
点と注目節点Yとを交換する。この際、同じレベルに、
注目接点Yの頻度と同じ頻度の節点が2つ以上あった場
合には、最も左の節点と注目節点Yとを交換する(ステ
ップS305)。その後、CPUは、注目節点Yの頻度
に“1”を加算(ステップS306)し、注目節点Yの
親を新たな注目節点Yとする(ステップS307)。そ
して、CPUは、新たな注目節点Yが根でない場合(ス
テップS308;N)には、ステップS305からの処
理を再度実行する。また、CPUは、注目節点Yが根に
なったときに(ステップS308;Y)、根(注目節点
Y)の頻度に“1”を加えて(ステップS309)、符
号木の形状更新(符号木データの内容更新)を終える。
【0067】このような一連の処理によって、ある符号
木データの内容を更新した後、CPUは、文字Xを用い
て文脈文字列Pを更新(ステップS310)し、原デー
タを構成する全ての文字に対する処理が終了していない
場合(ステップS311;N)には、ステップS302
に戻り、次の文字の符号化を開始する。
【0068】そして、CPUは、全ての文字に対する処
理が完了したとき(ステップS311;Y)に、原デー
タに対するデータ圧縮を終了する。このように第2実施
形態のデータ圧縮装置では、FGKアルゴリズムを用い
て符号木の形状が更新される。このため、第2実施形態
のデータ圧縮装置によれば、第1実施形態のデータ圧縮
装置よりも高速にデータ圧縮が実行できる。
【0069】<データ復元装置>第2実施形態のデータ
復元装置は、第2実施形態あるいは第1実施形態のデー
タ圧縮装置が圧縮したデータを復元する。第2実施形態
のデータ圧縮装置の起動時、そのRAM内には、第2実
施形態のデータ圧縮装置のRAM内に用意される符号木
データと全く同じ符号木データが用意される。
【0070】以下、図5を用いて、第2実施形態のデー
タ復元装置内のCPUのの動作手順を説明する。ある圧
縮データの復元を開始する際、CPUは、まず、文脈文
字列Pの初期化を行う(ステップS401)。このステ
ップでは、第2実施形態のデータ圧縮装置において文脈
文字列Pの初期化に用いられた文字列と同じ文字列が文
脈文字列Pに設定される。
【0071】次いで、CPUは、文脈文字列Pに対応し
た符号木データを特定する。そして、その符号木データ
で表されている符号木内の各節点を、復元対象である圧
縮データを構成する各ビットの値に従って、根から葉に
至るまで辿っていき、1つの葉X′を特定する(ステッ
プS402)。そして、CPUは、特定した葉X′に対
応づけられている文字Xを復元結果として出力する(ス
テップS403)。
【0072】その後、符号木の形状を更新するために、
CPUは、FGKアルゴリズムに従った処理(ステップ
S404〜S409)を実行する。すなわち、CPU
は、まず、葉X′を注目接点Yとして扱うことを決定す
る(ステップS404)。次いで、注目接点Yの頻度と
同じ頻度で最もレベルの低い節点と注目節点Yとを交換
する。この際、同じレベルに、注目接点Yの頻度と同じ
頻度の節点が2つ以上あった場合には、最も左の節点と
注目節点Yとを交換する(ステップS405)。その
後、CPUは、注目節点Yの頻度に“1”を加算(ステ
ップS406)し、注目節点Yの親を新たな注目節点Y
とする(ステップS407)。そして、CPUは、新た
な注目節点Yが根でない場合(ステップS408;N)
には、ステップS405からの処理を実行し、注目節点
Yが根になったときに(ステップS408;Y)、根
(注目節点Y)の頻度に“1”を加えて(ステップS4
09)、符号木の形状更新(符号木データの内容更新)
を終える。
【0073】このような一連の処理によって、1つの符
号木データの内容を更新した後、CPUは、文字Xを用
いて文脈文字列Pを更新(ステップS410)し、圧縮
データを構成する全てのビットに対する処理が終了して
いない場合(ステップS411;N)には、ステップS
402に戻り、圧縮データの復元を続ける。
【0074】そして、CPUは、全てのビットに対する
処理が完了したとき(ステップS411;Y)に、復元
を終了する。このように第2実施形態のデータ復元装置
では、FGKアルゴリズムを用いて符号木の形状が更新
される。このため、第2実施形態のデータ復元装置によ
れば、第1実施形態のデータ復元装置よりも高速にデー
タの復元が行える。
【0075】第3実施形態 <データ圧縮装置>第3実施形態のデータ圧縮装置で
は、圧縮するデータの内容に応じて、1次あるいは2次
の文脈が追加登録され、登録された文脈を用いてその後
のデータ圧縮が行われる。
【0076】図6に、第3実施形態のデータ圧縮装置の
構成を示す。図示したように、第3実施形態のデータ圧
縮装置の起動時、RAM15上には、0次文脈に関する
符号木データと文脈順位リストと符号木データ登録用記
憶領域が用意される。
【0077】0次文脈に関する符号木データは、原デー
タ中に現れることがある全ての文字に関する葉を持つハ
フマン符号木を表すデータであり、FGKアルゴリズム
が適用できる形態を有している。符号木データ登録用記
憶領域は、新たな文脈に関する符号木データを登録する
ための記憶領域である。文脈順位リストは、符号木デー
タ登録用記憶領域に幾つの文脈に関する符号木データが
登録されているかを管理するためのリストであり、起動
時にRAM15内に用意される文脈順位リストは、内容
がないものである。
【0078】以下、図7を用いて、第3実施形態のデー
タ圧縮装置内のCPUのの動作手順を説明する。図示し
たように、データ圧縮を開始する際、CPUは、まず、
空文字列を設定することによって、文脈文字列Pを初期
化する(ステップS501)。次いで、CPUは、文脈
文字列Pと同じ内容の文脈文字列P′を生成し(ステッ
プS502)、符号化すべき文字Xを取得する(ステッ
プS503)。
【0079】その後、CPUは、文脈文字列P′に関す
る符号木データが、RAM内に存在しているか否かを判
断する(ステップS504)。文脈文字列P′に関する
符号木データが存在していなかった場合(ステップS5
04;N)、CPUは、文脈文字列P′の先頭の1文字
を取り除いた文字列を、新たな文脈文字列P′とする
(ステップS505)。そして、ステップ504に戻
り、その文脈文字列P′に関する符号木データが存在し
ているかを判断する。
【0080】既に説明したように、本データ圧縮装置で
は、0次文脈に関する符号木データがRAM上に保持さ
れている。このため、ステップS504およびS505
のループによって符号木データを有する文脈文字列P′
が必ず見いだされる。
【0081】CPUは、文脈文字列P′を見い出した
後、文脈文字列P′に対応する符号木データ内に、文字
Xに対応する葉X′に関するデータが存在している否か
を判断(ステップS506)する。そして、葉X′に関
するデータが存在していた場合(ステップS506;
Y)には、その符号木データを用いて文字Xを符号化
し、符号化結果を出力する(ステップS507)。次い
で、CPUは、文字Xが現れたことが符号木の形状に反
映されるように、その符号木データの内容を更新する
(ステップS508)。なお、このステップにおいて、
CPUは、図4のステップS304〜S309と同じ処
理を実行する。
【0082】その後、CPUは、使用した文脈の順位を
更新(ステップS509)する。このステップにおい
て、CPUは、符号の出力に用いられた文脈の順位を、
最も上位の順位である第1順位に変更し、第1順位が与
えられていた文脈から符号の出力に用いられた文脈より
も一つ上位の順位が与えられていた文脈までの各文脈の
順位を、それぞれ1つ下位の順位に変更する。
【0083】たとえば、図8(A)に模式的に示したよ
うに、文脈順位リスト内に、8個の文脈に関するデータ
が記憶されており、文脈(ab)に関する符号木データ
が使用された場合、CPUは、図8(B)に示したよう
に、文脈(ab)の順位が第1順位となり、第1順位か
ら第5順位が与えられていた各文脈にそれぞれ1順位低
い順位が与えられるように、文脈順位リストの内容を変
更する。
【0084】その後、CPUは、文脈P′の次数CNOW
が、文脈の最高次数であるCMAX(本装置ではCMAX
2)未満であった場合(ステップS510;Y)には、
その文脈文字列P′を1文字長くした文脈文字列P″
(前回、ステップS504において符号木データが存在
していないとされた文脈文字列P′)に関するデータを
登録するための処理である文脈登録処理(ステップS5
11)を実行する。
【0085】以下、図9を用いて、文脈登録処理の詳細
を説明する。本データ圧縮装置では、符号木データ登録
領域に登録できる符号木データの総数に上限が設けられ
ている。このため、CPUは、新たに登録すべき符号木
データが現れた場合、図示したように、まず、そのとき
の符号木データの総数NNOWが上限NMAX未満であるか否
かを判断(ステップS601)する。そして、総数N
NOWが上限NMAX未満でなかった場合(ステップS60
1;N)には、文脈順位リストにおいて最も低い順位が
与えられている文脈に関する符号木データをRAM上か
ら削除する(ステップS602)。
【0086】そして、文脈P″に関する符号木データを
RAM上に作成する(ステップS603)。なお、この
際、CPUは、文字XとESCに関する2つの葉を有す
る符号木に関する符号木データを作成する。次いで、C
PUは、総数NNOW(この場合は、NNOW=NMAX)の1
/2に相当する順位が与えられるように文脈P″に関す
るデータを文脈順位リストに登録し(ステップS60
4)、文脈登録処理を終了する(図8のステップS51
2に進む)。
【0087】一方、総数NNOWが上限NMAX未満であった
場合(ステップS601;Y)には、符号木データを削
除することなく、文脈P″に関する符号木データの登録
を行い(ステップS603、S604)、文脈登録処理
を終了する。
【0088】図8に戻って、第3実施形態のデータ圧縮
装置内のCPUの動作の説明を続ける。文脈登録処理の
実行後、あるいは、文脈の次数が最高次数であった場
合、CPUは、文字Xを用いて文脈文字列Pを更新する
(ステップS512)。具体的には、CPUは、文脈文
字列Pの次数が最高次数CMAXと一致していないときに
は、文脈文字列の末尾に文字Xを追加した文字列を新た
な文脈文字列とする。また、文脈文字列Pの次数が最高
次数CMAXと一致していたときには、文脈文字列Pの末
尾に文字Xを追加するとともに、先頭から1文字を取り
除いた文字列を新たな文脈文字列Pとする。
【0089】その後、CPUは、符号化すべきデータが
残っている場合(ステップS513;N)には、ステッ
プ502に戻る。一方、ステップS504、S505に
おいて見い出された符号木データ中に、符号化すべき文
字Xに関する葉X′についてのデータが存在していなか
った場合(ステップS506;N)、CPUは、その符
号木データにおいて、“ESC”に対応づけられている
符号を出力する(ステップS514)。次いで、CPU
は、0次文脈に対する符号木データで表されている符号
木を用いて、文字Xを符号化し、0次文脈に関する符号
木の形状を変更(ステップS515)する。
【0090】その後、文脈文字列P′に関する符号木に
文字Xに対応する葉X′が追加されるように、文脈文字
列P′に対する符号木データの内容を更新する(ステッ
プS516)。次いで、ステップS509と同じ手順で
文脈P′の順位を変更(ステップS517)し、ステッ
プS512に進んで文脈文字列Pを更新する。
【0091】そして、原データ中に未処理の文字がなく
なったとき(ステップS513;Y)に、原データに対
するデータ圧縮を終了する。以上説明したように、第3
実施形態のデータ圧縮装置では、文脈を用いて適応的に
符号化が行われる。また、ある文脈が使用される度にそ
の文脈の順位が第1順位に変更されているので、新たな
文脈に関するデータが登録される際に削除されるデータ
は、使用頻度が少ないデータとなっている。従って、本
データ圧縮装置によれば、有限のメモリを効果的に用い
てデータ圧縮が行われるので、同容量のメモリを統計情
報の記憶のために用いる従来のデータ圧縮装置に比し
て、高圧縮率のデータ圧縮が実現できる。
【0092】なお、第3実施形態のデータ圧縮装置の起
動時に、0次文脈の他に1次あるいは2次の文脈に関す
る符号木データが用意されるように装置を構成しても良
いことは当然である。このように構成した場合も、図7
に示した手順によってデータ圧縮を実現できる。
【0093】また、本データ圧縮装置は、ある文脈に関
する符号木に符号化対象である文字が登録されていない
場合、ESCに応じた符号と、0次文脈に関する符号木
によって当該文字に対応づけられている符号とを出力し
ている。しかし、ある文脈に関する符号木に符号化対象
である文字が登録されていない場合には、順次、文脈の
次数を下げて、符号化対象文字が登録されている符号木
を見いだしたときに、その符号木によって符号化対象文
字に対応づけられている符号を出力するように構成する
こともできる。なお、このような場合には、次数を下げ
た各文脈に関する符号木に符号化対象である文字が登録
されていない場合には、ESCに応じた符号だけを出力
し、また、その符号木に符号化対象文字を追加するよう
に装置を構成する。
【0094】また、0次文脈に関する符号木に、ESC
に対応する葉を持たしておくとともに、0次文脈の符号
木に登録されていない文字に対して出力すべき符号を定
める符号木を用意しておくことによって、0次文脈に関
する符号木に文字を追加できるようにデータ圧縮装置を
構成することもできる。
【0095】また、本データ圧縮装置は、ある文脈が使
用された場合、その文脈に対して第1順位が与えられる
ように構成してあるが、文脈の順位の更新手順はこれに
限られるものではない。たとえば、図10に模式的に示
したように、使用した文脈の順位を1順位上に変更する
といった更新手順を採用することもできる。また、図1
1に模式的に示したように、各文脈の使用頻度が記憶で
きるように文脈順位リストを構成しておき、各文脈に対
してその使用頻度に応じた順位が与えられるようにデー
タ圧縮装置を構成することもできる。
【0096】<データ復元装置>第3実施形態のデータ
復元装置は、第3実施形態のデータ圧縮装置が圧縮した
データを復元する。第3実施形態のデータ復元装置の起
動時、そのRAM上には、第3実施形態のデータ圧縮装
置のRAM上に用意されるデータと全く同じデータが用
意される。
【0097】以下、図12を用いて、第3実施形態のデ
ータ復元装置内のCPUの動作手順を説明する。図示し
たように、データの復元を開始する際、CPUは、ま
ず、空文字列を設定することによって、文脈文字列Pを
初期化(ステップS701)し、文脈文字列Pと同じ内
容の文脈文字列P′を生成する(ステップS702)。
【0098】そして、CPUは、文脈文字列P′に関す
る符号木データが存在しているか否かを判断する(ステ
ップS703)。文脈文字列P′に関する符号木データ
が存在していなかった場合(ステップS703;N)、
CPUは、文脈文字列P′を1文字分短くした文字列を
新たな文脈文字列P′とする(ステップS704)。そ
して、ステップ703に戻り、その文脈文字列P′に関
する符号木データが存在しているかを判断する。
【0099】CPUは、符号木データを有する文脈P′
を見い出した後、その符号木データにおいて、復号すべ
き符号に対応づけられている葉X′を特定(ステップS
705)する。次いで、CPUは、葉X′を使用したこ
とが符号木の形状に反映されるように、その符号木デー
タの内容を更新する(ステップS706)。
【0100】そして、葉X′に対応する文字Xが“ES
C”でなかった場合(ステップS707;N)、CPU
は、文字Xを出力し、文脈リスト内での文脈P′の順位
を変更する。この順位の変更は、図7のS509と同じ
手順で行われる。
【0101】その後、CPUは、文脈P′の次数CNOW
が文脈の最高次数CMAX(=2)未満であった場合(ス
テップS710;Y)には、その文脈P′を1文字長く
した文脈P″に関するデータを登録するために、第3実
施形態のデータ圧縮装置で実行されている文脈登録処理
と全く同じ文脈登録処理(ステップS711)を実行す
る。
【0102】文脈登録処理の実行後、CPUは、文字X
を用いて文脈文字列Pを更新し(ステップS712)、
符号化すべきデータが残っていた場合(ステップS71
3;N)には、ステップ702に戻る。
【0103】一方、葉X′に対応する文字Xが“ES
C”であった場合(ステップS707;Y)、CPU
は、圧縮データ中の次のビット列を、0次文脈に関する
符号木データを用いて復号し、復号結果である文字Xを
出力するとともに、0次文脈の符号木形状を変更する
(ステップS714)。
【0104】その後、文脈文字列P′に関する符号木に
文字Xに対応する葉X′が追加されるように、文脈文字
列P′に対する符号木データの内容を更新する(ステッ
プS716)。次いで、ステップS709(図7のステ
ップ509)と同じ手順で文脈P′の順位を変更(ステ
ップS716)し、ステップS712に進んで文脈文字
列Pを更新する。
【0105】そして、圧縮データ中に未処理のビットが
なくなったとき(ステップS513;Y)に、CPU
は、その圧縮データに対するデータ復元処理を終了す
る。なお、RAM上に幾つかの符号木データが用意され
た状態でデータ圧縮を開始する装置に対しては、起動時
に、そのRAM上に全く同じ符号木データが用意される
データ復元装置を用いる。順次、文脈の次数を下げて、
符号化対象文字が登録されている符号木を見いだしたと
きに、その符号木によって符号化対象文字に対応づけら
れている符号を出力するように構成されたデータ圧縮装
置に対しては、次のように動作するデータ復元装置を用
いる。当該データ復元装置は、符号に対応する文字がE
SCであった場合には、文脈の次数を対応する符号木が
見いだされるまで下げ、見いだした符号木を用いて、後
続の符号を復号する。そして、このような復号をESC
ではない文字が復号されるまで繰り返し、ESCではな
い文字が見いだされた際に、それまでに使用した符号木
にその文字を追加する。
【0106】第4実施形態 <データ圧縮装置>第4実施形態のデータ圧縮装置で
は、ハフマン符号化と算術符号化を組み合わした形でデ
ータ圧縮が行われる。
【0107】図13に、第4実施形態のデータ圧縮装置
の構成を示す。図に模式的に示したように、第4実施形
態のデータ圧縮装置の起動時、そのRAM15内には、
複数の符号木データと複数の頻度リストとが用意され
る。
【0108】各符号木データは、2次以下の文脈に対応
づけられており、各符号木データが表す符号木は、対応
する文脈後に現れることがある全ての文字に関する葉を
有する。また、符号木データのうちの1つは、0次文脈
に対する符号木データとなっている。各頻度リストは、
3次の文脈に対応づけられており、それぞれの頻度リス
トには、対応する文脈後に現れることがある全ての文字
に関する頻度の初期値が記憶されている。
【0109】以下、図14を用いて、データ圧縮実行時
の第4実施形態のデータ圧縮装置内のCPUの動作手順
を説明する。データ圧縮を開始する際、CPUは、ま
ず、文脈文字列Pを空文字列に初期化する(ステップS
801)。次いで、CPUは、文脈文字列Pと同じ内容
の文字列P′を生成する(ステップS802)ととも
に、符号化すべき原データから符号化を行う文字Xを取
得する(ステップS803)。そして、文脈文字列P′
に関する統計情報(頻度リストあるいは符号木データ)
がRAMに保持されているか否かを判断し、保持されて
いなかった場合(ステップS803;N)には、文字列
P′を1文字短くし(ステップS805)、再度、ステ
ップS804を実行する。
【0110】ステップS804とS805によって構成
されるループにおいて決定された文脈P′に関する統計
情報が符号木データであった場合(ステップS806;
N)、CPUは、文脈文字列P′に対応する符号木デー
タによって定義されている符号木の、根から文字Xに相
当する葉X′までの経路を符号として出力する(ステッ
プS807)。次いで、文字Xが出現したことに基づ
き、FGKアルゴリズムを用いて符号木の形状を変更す
る(ステップS808)。
【0111】その後、CPUは、文字Xを用いて文脈文
字列Pを更新(ステップS811)し、符号化すべきデ
ータが残っている場合(ステップS812;N)には、
ステップS802に戻り、次の文字の符号化を行う。
【0112】一方、ステップS803とS804によっ
て構成されるループにおいて決定された文脈P′に関す
る統計情報が頻度リストであった場合(ステップS80
6;Y)、CPUは、その頻度リストを利用して、文字
Xの算術符号化を行う(ステップS809)。このステ
ップS809において、CPUは、文字Xに応じて区間
を狭める処理と、狭めた区間を記憶する処理だけを行
う。そして、CPUは、出力する符号をハフマン符号に
切り替える際に、算術符号化による符号化結果を出力す
る。すなわち、図15に模式的に示したように、CPU
は、各文字に基づき区間を狭めていき、出力する符号を
ハフマン符号に切り替えるときに、算術符号化によって
得られた区間を定める情報から復号に必要十分なビット
列を取り出して(端数領域を切り捨てて)出力する。
【0113】算術符号化の実行(ステップS809)
後、CPUは、使用した頻度リスト内の文字Xに関する
頻度に“1”を加算(ステップS811)し、全てのデ
ータの処理が完了した段階で(ステップS812;
Y)、データ圧縮処理を終了する。
【0114】このように第4実施形態のデータ圧縮装置
では、文字の出現確率分布が大きい高次の文脈に対して
は算術符号化が行われ、文字の出現確率分布が小さい低
次の文脈に対してはハフマン符号化が行われる。このた
め、第4実施形態のデータ圧縮装置によれば、高い圧縮
率を実用的な処理速度で達成できることになる。
【0115】なお、第4実施形態のデータ圧縮装置で
は、文脈の次数によって符号木データを用意するか頻度
リストを用意するかを定めたが、各文字の出現確率が1
/2のべき乗からの隔たりが小さい文脈に対して符号木
データを用意し、各文字の出現確率が1/2のべき乗か
らの隔たりが大きい文脈に対して頻度リストを用意して
おいても良いことは当然である。また、所定数以上の文
字が出現する文脈に対して符号木データを用意し、所定
数未満の文字が出現する文脈に対して頻度リストを用意
しておいても良い。
【0116】そして、第4実施形態のデータ圧縮装置
は、端数領域の切り捨てがハフマン符号に切り替わると
きに行われるように構成してあるが、毎回端数領域の切
り捨てが行われるように構成しても良い。ただし、この
場合は、圧縮効率が若干低下することになる。
【0117】また、図16に模式的に示したように、ハ
フマン符号化によって生成された符号は符号用バッファ
(RAMの一領域)の前方から記憶されていき、算術符
号化によって生成された符号は符号用バッファの後方か
ら記憶されていくように、データ圧縮装置を構成するこ
ともできる。さらに、また、2種の符号用バッファを設
けておき、ハフマン符号化によって生成された符号と算
術符号化によって生成された符号とが、それぞれ別の符
号用バッファに出力されるようにデータ圧縮装置を構成
することもできる。
【0118】このようにハフマン符号と算術符号とが別
の記憶領域に記憶されるように装置を構成した場合に
は、1つのデータを符号化する際に、端数領域の切り捨
てなければならない回数が減るので、高い圧縮率が得ら
れることになる。
【0119】<データ復元装置>第4実施形態のデータ
復元装置は、第4実施形態のデータ圧縮装置によって圧
縮されたデータの復元を行う装置である。第4実施形態
のデータ復元装置の起動時、そのRAM上には、第4実
施形態のデータ圧縮装置内に用意される符号木データ、
頻度リストと全く同じ符号木データ、頻度リストが用意
される。
【0120】図17に、データ復元処理時における、第
4実施形態のデータ復元装置内のCPUの動作手順を示
す。図示したように、データの復元を開始する際、CP
Uは、まず、文脈文字列Pの初期化を行う(ステップS
901)。次いで、データ圧縮装置は、文脈文字列Pと
同じ内容の文脈文字列P′を生成(ステップS902)
する。そして、文脈文字列P′に関する統計情報(頻度
リストあるいは符号木データ)がRAMに保持されてい
るか否かを判断し、保持されていなかった場合(ステッ
プS904;N)には、先頭の文字を取り除くことによ
って文脈文字列P′を1文字短くし(ステップS90
5)、再度、ステップS904を実行する。
【0121】ステップS904とS905によって構成
されるループにおいて決定された文脈文字列P′に関す
る統計情報が符号木データであった場合(ステップS9
06;N)、CPUは、その文脈文字列P′に対応した
符号木データによって表されている符号木内の各節点
を、復元対象であるデータを構成する各ビットの値に従
って、根から葉に至るまで辿っていき、1つの葉X′を
特定し、特定した葉X′に対応づけて記憶されているる
文字Xを復元結果として出力する(ステップS90
7)。
【0122】その後、CPUは、文字Xが現れたことが
符号木形状に反映されるように、文脈文字列P′に関す
る符号木データの内容を更新する(ステップS90
8)。そして、文字Xを用いて文脈文字列Pを更新(ス
テップS909)し、復元すべきデータが残っていた場
合(ステップS911;N)には、ステップS902に
戻る。
【0123】一方、ステップS904とS905によっ
て構成されるループにおいて決定された文脈文字列P′
に関する統計情報が頻度リストであった場合(ステップ
S906;Y)、CPUは、その頻度リストを利用し
て、データを復元する(ステップS909)。すなわ
ち、CPUは、適当な数のビットデータからなる符号を
用いて、1文字の復元を行うとともに、復元過程で得ら
れた計算結果(区間を特定する数値情報)を記憶してお
く。そして、次の文字にも算術符号が用いられていた場
合、CPUは、記憶しておいた計算結果をも利用して復
号を行う。一方、次の文字に対してハフマン符号が用い
られていた場合には、その計算結果を基に、算術符号と
ハフマン符号の境を認識し、その境以降のビットデータ
を、符号木データを利用して復号する。
【0124】CPUは、算術符号の復元が1文字分完了
した後、使用した頻度リスト内の文字Xに関する頻度に
“1”を加算(ステップS910)する。そして、CP
Uは、未処理のデータが存在しているか否かを判断し、
全てのデータの処理が完了していた場合(ステップS9
11;Y)に、復元処理を終了する。
【0125】なお、ハフマン符号と算術符号とを別の記
憶領域に記憶するデータ圧縮装置に対して用いるデータ
復元装置では、ステップS907の処理が一方の記憶領
域内のデータに対して行われ、ステップS909の処理
が他方の記憶領域内のデータに対して行われることにな
る。
【0126】第5実施形態 <データ圧縮装置>図18に、第5実施形態のデータ圧
縮装置の構成を示す。図示したように、本データ圧縮装
置の起動時、RAM15上には、それぞれ、2次以下の
文脈に対応づけられている複数の符号木データと文脈使
用頻度リストとが用意される。各符号木データは、対応
する文脈後に現れることがある全ての文字に関するデー
タを含み、符号木データのうちの1つは、0次文脈に対
する符号木データとなっている。文脈使用頻度リスト
は、各文脈に関する符号木データの使用頻度を記憶する
ためのリストであり、起動時に用意される文脈使用頻度
リストには、全ての文脈に対して、使用頻度“0”が記
憶されている。
【0127】図19に、データ圧縮処理時における、第
5実施形態のデータ圧縮装置内のCPUの動作手順を示
す。データ圧縮を開始する際、CPUは、まず、文脈文
字列Pを空文字列に初期化する(ステップS100
1)。次いで、CPUは、文脈文字列Pと同じ内容の文
脈文字列P′を生成し(ステップS1002)、符号化
すべきデータから符号化を行う文字Xを取得する(ステ
ップS1003)。そして、文脈文字列P′に関する符
号木データがRAM内に保持されているか否かを判断
し、保持されていなかった場合(ステップS1004;
N)には、先頭の1文字を取り除くことによって文脈文
字列P′を1文字短くし(ステップS1005)、再
度、ステップS1004を実行する。
【0128】CPUは、ステップS1004とS100
5からなるループによって、符号木データが存在する文
脈文字列P′を決定(ステップS1004;Y)した
後、文脈使用頻度リストの内容を参照することによっ
て、その文脈に関する使用頻度を取得し、取得した使用
頻度と所定値Kとの大小関係を比較する(ステップS1
006)。そして、使用頻度がK以下であった場合(ス
テップS1006;N)、CPUは、文脈文字列P′に
対応する符号木データによって定義されている符号木
の、根から文字Xに相当する葉X′までの経路を符号と
して出力する(ステップS1007)。次いで、文字X
の出現頻度を増加させるとともに、符号木が各出現頻度
に応じた形状を持つように符号木データの内容を変更す
る(ステップS1008)。
【0129】その後、CPUは、使用した文脈に関する
使用頻度に“1”を加算し(ステップS1011)、文
字Xを用いて文脈文字列Pを更新(ステップS101
2)する。すなわち、CPUは、文脈文字列Pの次数が
2(本装置の最高次数)と一致していたときには、文脈
文字列Pの末尾に文字Xを追加し、先頭から1文字を取
り除いて、新たな文脈文字列Pを生成する。また、文脈
文字列Pの次数が1以下であった場合には、その文字列
の末尾に文字Xを追加した文字列を、新たな文脈文字列
Pとする。
【0130】その後、CPUは、符号化すべきデータが
残っているか否かを判断し、残っていた場合(ステップ
S1013;N)には、ステップS1002に戻り、次
の文字の符号化を行う。
【0131】一方、文脈文字列P′と一致する文脈に関
する使用頻度がKを越えていた場合(ステップS100
6;Y)、CPUは、符号木データ内の、各葉に対して
記憶されている出現頻度を利用して、文字Xの算術符号
化を行う(ステップS1009)。このステップにおけ
る算術符号化手順は、第4実施形態のデータ圧縮装置と
同じものである。次いで、CPUは、使用した符号木デ
ータの文字Xに関する使用頻度に“1”を加算(ステッ
プS1011)し、ステップ1012に進む。
【0132】そして、CPUは、全ての文字に対する処
理が完了しているか否かを判断し、完了していた場合
(ステップS1013;Y)には、データ圧縮処理を終
了する。
【0133】このように第5実施形態のデータ圧縮装置
では、使用頻度の少ない(統計情報が集まっていない)
段階ではハフマン符号化によりデータが符号化され、使
用頻度が多くなった段階で算術符号化による符号化が開
始される。このため、本データ圧縮装置によれば、効率
的なデータ圧縮が行えることになる。
【0134】なお、Kを符号化を行った総文字数に比例
する値とすることによって、出現頻度の総文字数に対す
る割合が小さいときにはハフマン符号化が行われ、出現
頻度の総文字数に対する割合が大きいときには算術符号
化が行われるように装置を構成することもできる。
【0135】<データ復元装置>第5実施形態のデータ
復元装置は、第5実施形態のデータ圧縮装置によって圧
縮されたデータの復元を行う。第5実施形態のデータ復
元装置の起動時、そのRAM上には、第5実施形態のデ
ータ圧縮装置内に用意される符号木データ、文脈使用頻
度リストと全く同じデータが用意される。
【0136】図20に、第5実施形態のデータ復元装置
の動作手順を示す。図示したように、データの復元を開
始する際、CPUは、まず、文脈文字列Pの初期化を行
う(ステップS1101)。次いで、データ圧縮装置
は、文脈文字列Pと同じ内容の文脈文字列P′を生成
(ステップS1102)する。そして、文脈文字列P′
に関する符号木データがRAMに保持されているか否か
を判断し、保持されていなかった場合(ステップS11
04;N)には、先頭の文字を取り除くことによって文
脈文字列P′を1文字短くし(ステップS1105)、
再度、ステップS1104を実行する。
【0137】文脈文字列P′に関する符号木データを見
い出したとき(ステップS1104)、CPUは、文脈
使用頻度リストの内容を参照することによって、その符
号木データの使用頻度を得るとともに、その使用頻度と
所定値Kとの大小関係を比較する(ステップS110
6)。そして、使用頻度が所定値K以下であった場合
(ステップS1106;N)、CPUは、その文脈文字
列P′に対応した符号木データによって表されている符
号木内の各節点を、復元対象であるデータを構成する各
ビットの値に従って、根から葉に至るまで辿っていき、
1つの葉X′を特定し、特定した葉X′に対応づけて記
憶されているる文字Xを復元結果として出力する(ステ
ップS1107)。
【0138】その後、CPUは、文字Xの出現頻度が増
えたことが符号木形状に反映されるように、文脈文字列
P′に関する符号木データの内容を更新する(ステップ
S1108)。次いで、その文脈に関する使用頻度に
“1”を加算する(ステップS1011)。
【0139】そして、CPUは、文字Xを用いて文脈文
字列Pを更新(ステップS1112)し、復元すべきデ
ータが残っていた場合(ステップS1113;N)に
は、ステップS1102に戻る。
【0140】一方、文脈文字列P′に関する符号木デー
タの使用頻度が所定値Kより大きかった場合(ステップ
S1106;Y)、CPUは、復元対象であるビット列
を算術符号として取り扱って復号を行い、復号結果であ
る文字Xを出力するう(ステップS1109)。この復
号の際、CPUは、文脈文字列P′に関するその符号木
データ内の各文字に対する使用頻度を各文字の区間を割
り当てるデータとして用いる。
【0141】次いで、CPUは、使用した符号木データ
内の文字Xに関する出現頻度に“1”を加え(ステップ
S1110)、文脈文字列P′に関する符号木データの
内容を更新する(ステップS1108)。次いで、文脈
使用頻度リスト内の、文脈文字列P′に対応する使用頻
度に“1”を加算し(ステップS1011)、文字Xを
用いて文脈文字列Pを更新(ステップS1112)す
る。そして、処理すべきデータが残っているか否かを判
断し、全てのデータの処理が完了したとき(ステップS
1113;Y)に、復元処理を終了する。
【0142】
【発明の効果】以上、詳細に説明したように、本発明の
データ符号化装置によれば、データを、高速に高圧縮率
で圧縮することができる。また、本発明のデータ復元装
置によれば、本発明のデータ符号化装置によって圧縮さ
れたデータを高速に復元できる。
【図面の簡単な説明】
【図1】本発明の第1実施形態のデータ圧縮装置の構成
を示すブロック図である。
【図2】本発明の第1実施形態のデータ圧縮装置の動作
手順を示す流れ図である。
【図3】本発明の第1実施形態のデータ復元装置の動作
手順を示す流れ図である。
【図4】本発明の第2実施形態のデータ圧縮装置の動作
手順を示す流れ図である。
【図5】本発明の第2実施形態のデータ復元装置の動作
手順を示す流れ図である。
【図6】本発明の第2実施形態のデータ圧縮装置の構成
を示すブロック図である。
【図7】本発明の第3実施形態のデータ圧縮装置の動作
手順を示す流れ図である。
【図8】第3実施形態のデータ圧縮装置が行う順位変更
処理の処理手順を示す説明図である。
【図9】文脈登録処理時のデータ圧縮装置の動作手順を
示す流れ図である。
【図10】第3実施形態のデータ圧縮装置に適用できる
順位変更処理の処理手順を示す説明図である。
【図11】第3実施形態のデータ圧縮装置に適用できる
順位変更処理の処理手順を示す説明図である。
【図12】本発明の第3実施形態のデータ復元装置の動
作手順を示す流れ図である。
【図13】本発明の第4実施形態のデータ圧縮装置の構
成を示すブロック図である。
【図14】本発明の第4実施形態のデータ圧縮装置の動
作手順を示す流れ図である。
【図15】第4実施形態のデータ圧縮装置による算術符
号化手順を示す説明図である。
【図16】第4実施形態のデータ圧縮装置に適用できる
符号格納方法態を示した模式図である。
【図17】本発明の第4実施形態のデータ復元装置の動
作手順を示す流れ図である。
【図18】本発明の第4実施形態のデータ圧縮装置の構
成を示すブロック図である。
【図19】本発明の第5実施形態のデータ圧縮装置の動
作手順を示す流れ図である。
【図20】本発明の第5実施形態のデータ復元装置の動
作手順を示す流れ図である。
【図21】符号木の説明図である。
【図22】FGKアルゴリズムが適用できるハフマン符
号木の説明図である。
【図23】算術符号化を説明するための文字・生起確率
・区間対応表である。
【図24】算術符号化を説明するための模式図である。
【図25】文脈モデルを適用した算術符号化を説明する
ためのブロック図である。
【図26】文脈木の一例を示した図である。
【図27】文脈と符号化対象文字の関係を示した図であ
る。
【符号の説明】
11 入出力部 12 ROM 13 CPU 14 ディスク記憶装置 15 RAM

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 一符号が割り当てられる単位データであ
    る文字毎に、それまでに連続したn個の文字からなる文
    脈を条件とした、その文字の条件付き確率に対してハフ
    マン符号を割り当てて、データを圧縮あるいは復元する
    データ圧縮・復元方法。
  2. 【請求項2】 複数の文脈毎に、その文脈に続く文字を
    葉とするハフマン符号の規則に従った符号木を記憶する
    記憶手段と、 圧縮すべき文字列から符号化を行う文字を取得する文字
    取得手段と、 この文字取得手段により取得された文字の直前に出現し
    た文脈を特定する文脈特定手段と、 この文脈特定手段により特定された文脈に対して前記記
    憶手段内に記憶されている符号木において、前記文字取
    得手段で取得された文字に対応づけられている符号を出
    力する符号出力手段と、 この符号出力手段によって用いられた符号木をハフマン
    符号の規則に従って更新する更新手段とを備えることを
    特徴とするデータ圧縮装置。
  3. 【請求項3】 前記符号木は、特殊文字に符号を対応づ
    けるデータを含み、 前記符号出力手段は、前記文脈特定手段により特定され
    た文脈に対して前記記憶手段内に記憶されている符号木
    内に、前記文字取得手段で取得された文字に関するデー
    タが存在していなかった場合には、その符号木内で特殊
    文字と対応づけられている特殊符号を出力し、前記文字
    取得手段で取得された文字に対する符号を出力するま
    で、前記文脈特定手段で特定された文脈を短くしながら
    特殊符号の出力を繰返し、 さらに、前記符号出力手段によって特殊符号が出力され
    た場合に、未登録の文脈と文字の組み合わせに関する情
    報を前記記憶手段に追加する追加手段を備えることを特
    徴とする請求項2記載のデータ圧縮装置。
  4. 【請求項4】 さらに、前記符号出力手段による文脈の
    使用頻度を管理する使用頻度管理手段と、 使用頻度が最も少ない文脈に関する情報を前記記憶手段
    内から削除する削除手段とを備えることを特徴とする請
    求項3記載のデータ圧縮装置。
  5. 【請求項5】 さらに、各文脈に順位を与えて管理する
    とともに、前記符号出力手段によって符号の出力が行わ
    れた場合には、符号の出力に使用された文脈に対してよ
    り上位の順位を与える順位管理手段を備え、 前記削除手段は、最下位の順位が与えられている文脈に
    関する情報を前記記憶手段内から削除することを特徴と
    する請求項4記載のデータ圧縮装置。
  6. 【請求項6】 前記順位管理手段は、前記符号出力手段
    によって符号出力に用いられた文脈の順位を、最も上位
    の順位である第1順位に変更し、第1順位が与えられて
    いた文脈から符号の出力に用いられた文脈よりも一つ上
    位の順位が与えられていた文脈までの各文脈の順位を、
    それぞれ1つ下位の順位に変更することを特徴とする請
    求項5記載のデータ符号化装置。
  7. 【請求項7】 前記順位管理手段は、前記符号出力手段
    によって符号出力に用いられた文脈の順位を、1つ上位
    の順位に変更し、その1つ上位の順位が与えられていた
    文脈の順位を、1つ下位の順位に変更することを特徴と
    する請求項5記載のデータ符号化装置。
  8. 【請求項8】 複数の文脈毎に、その文脈に続く文字を
    葉とするハフマン符号の規則に従った符号木または各文
    字の出現頻度からなる出現頻度データのいずれか一方を
    記憶する記憶手段と、 圧縮すべき文字列から符号化を行う文字を取得する文字
    取得手段と、 この文字取得手段により取得された文字の直前に出現し
    た文脈を特定する文脈特定手段と、 この文脈特定手段により特定された文脈に対して前記記
    憶手段内に記憶されているデータが符号木であった場合
    には、その符号木において、前記文字取得手段で取得さ
    れた文字に対応づけられている符号を出力する第1符号
    出力手段と、 この第1符号出力手段によって用いられた符号木をハフ
    マン符号の規則に従って更新する更新手段と、 前記文脈特定手段により特定された文脈に対して前記記
    憶手段内に記憶されているデータが出現頻度データであ
    った場合には、その出現頻度データ内の各文字に関する
    出現頻度に基づき、前記文字取得手段で取得された文字
    の算術符号を出力する第2符号出力手段と、 この第2符号出力手段によって用いられた出現頻度デー
    タ内の前記文字取得手段で取得された文字に関する出現
    頻度を増加させる第2出現頻度増加手段とを備えること
    を特徴とするデータ圧縮装置。
  9. 【請求項9】 前記記憶手段内に記憶されている符号木
    は、各文字の出現確率が1/2のべき乗からの隔たりが
    小さい文脈に対するデータであり、出現頻度データは、
    各文字の出現確率が1/2のべき乗からの隔たりが大き
    い文脈に対するデータであることを特徴とする請求項8
    記載のデータ圧縮装置。
  10. 【請求項10】 前記記憶手段内に記憶されている符号
    木は次数が所定値未満の文脈に対するデータであり、出
    現頻度データは次数が所定値以上の文脈に対するデータ
    であることを特徴とする請求項8記載のデータ圧縮装
    置。
  11. 【請求項11】 前記記憶手段内に記憶されている符号
    木は所定数以上の文字が出現する文脈に対応づけられて
    おり、出現頻度データは所定数未満の文字が出現する文
    脈に対応づけられていることを特徴とする請求項8記載
    のデータ圧縮装置。
  12. 【請求項12】 さらに、文脈毎に、前記文脈特定手段
    によって特定された回数を管理する特定回数管理手段を
    備え、 前記第1符号出力手段は、前記文脈特定手段により特定
    された文脈に対して前記特定回数管理手段によって管理
    されている回数が所定回数以上であった場合に、その文
    脈に対応する符号木に基づいて符号を出力し、所定回数
    未満であった場合に、算術符号化に基づいて符号を出力
    することを特徴とする請求項8記載のデータ圧縮装置。
  13. 【請求項13】 前記第2符号出力手段は、前記第1符
    号出力手段によって符号の出力が行われるときに、それ
    までの符号化結果である算術符号の端数を出力すること
    を特徴とする請求項8ないし請求項12のいずれかに記
    載のデータ圧縮装置。
  14. 【請求項14】 さらに、圧縮結果である符号が記憶さ
    れる第1記憶領域と第2記憶領域とを有する符号記憶手
    段を備え、 前記第1符号出力手段は、前記符号記憶手段内の第1記
    憶領域に符号を書き込み、 前記第2符号出力手段は、前記符号記憶手段内の第2記
    憶領域に符号を書き込むことを特徴とする請求項8ない
    し請求項12のいずれかに記載のデータ圧縮装置。
  15. 【請求項15】 さらに、圧縮結果である符号が記憶さ
    れる所定サイズの記憶領域を有する符号記憶手段と、 前記符号記憶手段内に新たな符号が記憶できなくなった
    ときに、前記符号記憶手段内に記憶された符号を出力す
    る符号出力手段とを備え、 前記第1符号出力手段は、前記符号記憶手段内の記憶領
    域の前方から符号を書き込み、 前記第2符号出力手段は、前記符号記憶手段内の記憶領
    域の後方から符号を書き込むことを特徴とする請求項8
    ないし請求項12のいずれかに記載のデータ圧縮装置。
  16. 【請求項16】 複数の文脈毎に、その文脈に続く文字
    を葉とするハフマン符号の規則に従った符号木を記憶す
    る記憶手段と、 データの復元に用いる文脈を特定する文脈特定手段と、 この文脈特定手段により特定された文脈に対して前記記
    憶手段内に記憶されている符号木において符号に対応づ
    けられている文字を出力する文字出力手段と、 この文字出力手段によって使用された符号木をハフマン
    符号の規則に従って更新する更新手段とを備えることを
    特徴とするデータ復元装置。
  17. 【請求項17】 前記符号木は、特殊文字と特殊符号と
    を対応づけるデータを含み、 前記文字出力手段は、符号木において符号に対応づけら
    れている文字が前記特殊文字であった場合には、文字を
    復元するまで前記文脈を短くしながら復元を繰返し、 さらに、未登録の文脈と文字との組み合わせに関する情
    報を前記記憶手段に登録する登録手段を備えることを特
    徴とする請求項16記載のデータ復元装置。
  18. 【請求項18】 さらに、前記文字出力手段による各文
    脈の使用頻度を管理する使用頻度管理手段と、 使用頻度が最も少ない文脈に関する情報を前記記憶手段
    内から削除する削除手段とを備えることを特徴とする請
    求項17記載のデータ復元装置。
  19. 【請求項19】 さらに、各文脈に順位を与えて管理す
    るとともに、前記文字号出力手段による文字の出力が行
    われた場合には、文字の出力に使用された文脈に対して
    より上位の順位を与える順位管理手段を備え、 前記削除手段は、最下位の順位が与えられている文脈に
    関する情報を前記記憶手段内から削除することを特徴と
    する請求項17記載のデータ復元装置。
  20. 【請求項20】 前記順位管理手段は、前記符号出力手
    段によって符号出力に用いられた文脈の順位を、最も上
    位の順位である第1順位に変更し、第1順位が与えられ
    ていた文脈から符号の出力に用いられた文脈よりも一つ
    上位の順位が与えられていた文脈までの各文脈の順位
    を、それぞれ1つ下位の順位に変更することを特徴とす
    る請求項19記載のデータ復元装置。
  21. 【請求項21】 前記順位管理手段は、前記符号出力手
    段によって符号出力に用いられた文脈の順位を、1つ上
    位の順位に変更し、その1つ上位の順位が与えられてい
    た文脈の順位を、1つ下位の順位に変更することを特徴
    とする請求項19記載のデータ復元装置。
  22. 【請求項22】 複数の文脈毎に、その文脈に続く文字
    を葉とするハフマン符号の規則に従った符号木またはそ
    の各文字の出現頻度からなる出現頻度データのいずれか
    一方を記憶する記憶手段と、 復号に用いる文脈を特定する文脈特定手段と、 この文脈特定手段により特定された文脈に対して前記記
    憶手段内に記憶されているデータが符号木であった場合
    には、その符号木において符号に対応づけられている文
    字を出力する第1文字出力手段と、 この第1文字出力手段によって用いられた符号木をハフ
    マン符号の規則に従って新する更新手段と、 前記文脈特定手段により特定された文脈に対して前記記
    憶手段内に記憶されているデータが出現頻度データであ
    った場合には、符号に対して、その出現頻度データを用
    いた算術復号化を行い、復号結果として得られた文字を
    出力する第2文字出力手段と、 この第2文字出力手段によって用いられた出現頻度デー
    タ内の、出力された文字に関する出現頻度を増加させる
    第2出現頻度増加手段とを備えることを特徴とするデー
    タ復元装置。
  23. 【請求項23】 前記記憶手段内に記憶されている符号
    木は、各文字の出現確率が1/2のべき乗からの隔たり
    が小さい文脈に対するデータであり、出現頻度データ
    は、各文字の出現確率が1/2のべき乗からの隔たりが
    大きい文脈に対するデータであることを特徴とする請求
    項22記載のデータ復元装置。
  24. 【請求項24】 前記記憶手段内に記憶されている符号
    木は文字数が所定値未満の文脈に対するデータであり、
    出現頻度データは文字数が所定値以下の文脈に対するデ
    ータであることを特徴とする請求項22記載のデータ復
    元装置。
  25. 【請求項25】 前記記憶手段内に記憶されている符号
    木は所定数以上の文字が出現する文脈に対応づけられて
    おり、出現頻度データは所定数未満の文字が出現する文
    脈に対応づけられていることを特徴とする請求項22記
    載のデータ復元装置。
  26. 【請求項26】 さらに、文脈ごとに、前記文脈特定手
    段によって特定された回数を管理する特定回数管理手段
    を備え、 前記第1文字出力手段は、前記文脈特定手段により特定
    された文脈に対して前記特定回数管理手段によって管理
    されている回数が所定回数以上であった場合には、その
    文脈に対応する符号木に基づいて復号し、所定回数未満
    であった場合に算術符号化に基づいて復号し、復号結果
    として得られた文字を出力することを特徴とする請求項
    22記載のデータ復元装置。
  27. 【請求項27】 前記第2文字出力手段は、前記第1文
    字出力手段によって復号が行われるときに、それまでの
    算術符号の端数を除くことを特徴とする請求項22ない
    し請求項26のいずれかに記載のデータ復元装置。
  28. 【請求項28】 さらに、復元すべき符号が記憶された
    第1記憶領域と第2記憶領域とを有する符号記憶手段を
    備え、 前記第1文字出力手段は前記符号記憶手段内の第1記憶
    領域に記憶された符号を復元し、 前記第2文字出力手段は前記符号記憶手段内の第2記憶
    領域に記憶された符号を復元することを特徴とする請求
    項23ないし請求項26のいずれかに記載のデータ復元
    装置。
  29. 【請求項29】 さらに、圧縮結果である符号が記憶さ
    れた所定サイズの記憶領域を有する符号記憶手段と、 この符号記憶手段内に復号すべき符号がなくなったとき
    には、符号記憶手段内に新たな符号を入力する符号入力
    手段とを備え、 前記第1文字出力手段は、前記符号記憶手段内の記憶領
    域の前方から符号を復号し、 前記第2文字出力手段は、前記符号記憶手段内の記憶領
    域の後方から符号を復号することを特徴とする請求項2
    3ないし請求項26のいずれかに記載のデータ復元装
    置。
JP05348296A 1996-03-11 1996-03-11 データ圧縮装置及びデータ復元装置 Expired - Fee Related JP3305190B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP05348296A JP3305190B2 (ja) 1996-03-11 1996-03-11 データ圧縮装置及びデータ復元装置
US08/749,330 US6061398A (en) 1996-03-11 1996-11-14 Method of and apparatus for compressing and restoring data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05348296A JP3305190B2 (ja) 1996-03-11 1996-03-11 データ圧縮装置及びデータ復元装置

Publications (2)

Publication Number Publication Date
JPH09246991A true JPH09246991A (ja) 1997-09-19
JP3305190B2 JP3305190B2 (ja) 2002-07-22

Family

ID=12944069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05348296A Expired - Fee Related JP3305190B2 (ja) 1996-03-11 1996-03-11 データ圧縮装置及びデータ復元装置

Country Status (2)

Country Link
US (1) US6061398A (ja)
JP (1) JP3305190B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128412A (en) * 1996-09-02 2000-10-03 Fujitsu Limited Statistical data compression/decompression method
JP2003514427A (ja) * 1999-11-09 2003-04-15 フランス テレコム エントロピック・コードを持つ符号化データを復号する方法とそれに対応する復号デバイスおよび伝送システム
US6919827B2 (en) 2003-12-03 2005-07-19 Samsung Electronics Co., Ltd. Method and apparatus for effectively decoding Huffman code
JP2010093414A (ja) * 2008-10-06 2010-04-22 Fujitsu Ltd 情報処理プログラム、情報処理装置、および情報処理方法

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
WO2001056244A1 (fr) * 2000-01-26 2001-08-02 Sony Corporation Systeme de transmission de donnees
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
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
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
EP1385640B1 (en) * 2000-12-11 2006-02-22 United Parcel Service Of America, Inc. Compression utility for use with smart label printing and pre-loading
US7274671B2 (en) * 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
WO2003003584A1 (en) * 2001-06-29 2003-01-09 Netcontinuum, Inc. System and method for data compression using a hybrid coding scheme
US20030114206A1 (en) * 2001-08-24 2003-06-19 United Parcel Service Of America, Inc. Portable data acquisition and management system and associated device and method
US7206448B2 (en) * 2002-02-28 2007-04-17 At&T Corp. System and method for using pattern vectors for video and image coding and decoding
US6670897B1 (en) 2002-10-03 2003-12-30 Motorola, Inc. Compression/decompression techniques based on tokens and Huffman coding
US7796526B2 (en) * 2003-10-31 2010-09-14 Acterna Versatile communication network test apparatus and methods
US7403486B2 (en) * 2003-10-31 2008-07-22 Acterna Signal level measurement and data connection quality analysis apparatus and methods
US20050144648A1 (en) * 2003-10-31 2005-06-30 Gotwals Michael D. Communication network analysis apparatus with internetwork connectivity
US7385499B2 (en) * 2004-12-17 2008-06-10 United Parcel Service Of America, Inc. Item-based monitoring systems and methods
JP4707198B2 (ja) * 2006-10-19 2011-06-22 富士通株式会社 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
US7840340B2 (en) * 2007-04-13 2010-11-23 United Parcel Service Of America, Inc. Systems, methods, and computer program products for generating reference geocodes for point addresses
US7605721B2 (en) * 2007-11-30 2009-10-20 Red Hat, Inc. Adaptive entropy coding compression output formats
US7518538B1 (en) * 2007-11-30 2009-04-14 Red Hat, Inc. Adaptive entropy coding compression with multi-level context escapes
JP5782214B2 (ja) 2008-05-30 2015-09-24 富士通株式会社 情報検索プログラム、情報検索装置および情報検索方法
US20090298491A1 (en) * 2008-06-03 2009-12-03 United Parcel Service Of America, Inc. Contract Acceptance Systems and Methods
US8396850B2 (en) * 2009-02-27 2013-03-12 Red Hat, Inc. Discriminating search results by phrase analysis
US8527500B2 (en) * 2009-02-27 2013-09-03 Red Hat, Inc. Preprocessing text to enhance statistical features
US8386511B2 (en) * 2009-02-27 2013-02-26 Red Hat, Inc. Measuring contextual similarity
US10891659B2 (en) * 2009-05-29 2021-01-12 Red Hat, Inc. Placing resources in displayed web pages via context modeling
US8321326B2 (en) 2009-09-15 2012-11-27 Auerbach Group Llc Method and system for enhancing the efficiency of a digitally communicated data exchange
CN102667923B (zh) 2009-10-20 2014-11-05 弗兰霍菲尔运输应用研究公司 音频编码器、音频解码器、用于将音频信息编码的方法、用于将音频信息解码的方法
CN102045559B (zh) * 2009-10-22 2013-03-20 鸿富锦精密工业(深圳)有限公司 视频解码装置及视频解码方法
SG182466A1 (en) 2010-01-12 2012-08-30 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a modification of a number representation of a numeric previous context value
US8621150B2 (en) * 2010-04-09 2013-12-31 International Business Machines Corporation Data placement optimization using data context collected during garbage collection
US9087038B1 (en) * 2010-07-21 2015-07-21 Sprint Communications Company L.P. Messaging with shortcut character strings
US9489445B2 (en) * 2013-03-13 2016-11-08 Nice Systems Ltd. System and method for distributed categorization
US10417601B2 (en) 2013-06-28 2019-09-17 United Parcel Service Of America, Inc. Confidence ratings for delivery of items
CN106126486B (zh) * 2016-06-30 2019-03-08 童晓冲 时间信息编码方法、编码值检索方法、解码方法与装置
CN109889205B (zh) * 2019-04-03 2023-08-15 嘉楠明芯(北京)科技有限公司 编码方法及系统、解码方法及系统、编解码方法及系统
CN114915788B (zh) * 2022-07-19 2022-09-13 中科金勃信(山东)科技有限公司 一种用于档案的图像压缩方法、系统及介质
CN116471007B (zh) * 2023-06-20 2023-08-15 北京双鑫汇在线科技有限公司 基于云平台的网络信息加密传输方法
CN116865768B (zh) * 2023-08-31 2023-11-21 临沂安迪电气有限公司 一种plc设备数据优化存储方法
CN117097905B (zh) * 2023-10-11 2023-12-26 合肥工业大学 一种无损图像分块压缩方法、设备、存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796356A (en) * 1995-03-14 1998-08-18 Fujitsu Limited Data compressing apparatus, data restoring apparatus and data compressing/restoring system
US5548338A (en) * 1995-06-07 1996-08-20 News American Publishing, Inc. Compression of an electronic programming guide
US5680129A (en) * 1995-07-18 1997-10-21 Hewlett-Packard Company System and method for lossless image compression
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128412A (en) * 1996-09-02 2000-10-03 Fujitsu Limited Statistical data compression/decompression method
US6542644B1 (en) 1996-09-02 2003-04-01 Fujitsu Limited Statistical data compression/decompression method
JP2003514427A (ja) * 1999-11-09 2003-04-15 フランス テレコム エントロピック・コードを持つ符号化データを復号する方法とそれに対応する復号デバイスおよび伝送システム
JP4836379B2 (ja) * 1999-11-09 2011-12-14 フランス・テレコム エントロピック・コードを持つ符号化データを復号する方法とそれに対応する復号デバイスおよび伝送システム
US6919827B2 (en) 2003-12-03 2005-07-19 Samsung Electronics Co., Ltd. Method and apparatus for effectively decoding Huffman code
JP2010093414A (ja) * 2008-10-06 2010-04-22 Fujitsu Ltd 情報処理プログラム、情報処理装置、および情報処理方法

Also Published As

Publication number Publication date
US6061398A (en) 2000-05-09
JP3305190B2 (ja) 2002-07-22

Similar Documents

Publication Publication Date Title
JP3305190B2 (ja) データ圧縮装置及びデータ復元装置
Nelson et al. The data compression book 2nd edition
US5844508A (en) Data coding method, data decoding method, data compression apparatus, and data decompression apparatus
JP3278297B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
JP3276860B2 (ja) データ圧縮/復元方法
JP3397431B2 (ja) データ圧縮方法および装置ならびにデータ復元方法および装置
JP3083730B2 (ja) データ情報を圧縮するためのシステムおよび方法
US6304676B1 (en) Apparatus and method for successively refined competitive compression with redundant decompression
JPH07226846A (ja) 入力データストリームの処理方法及び圧縮フォーマットの生成方法
JPS6356726B2 (ja)
US6748520B1 (en) System and method for compressing and decompressing a binary code image
JP3231105B2 (ja) データ符号化方式及びデータ復元方式
Chen et al. E cient Lossless Compression of Trees and Graphs
JP6833643B2 (ja) 圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラム
Ghuge Map and Trie based Compression Algorithm for Data Transmission
JPH09261075A (ja) データ圧縮装置およびデータ復元装置
Govinda et al. Storage optimization in cloud environment using compression algorithm
JPH03247167A (ja) データ圧縮方式
Hoang et al. Dictionary selection using partial matching
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JPH06168097A (ja) データ符号化方式及びデータ復元方式
JP3898717B2 (ja) データ圧縮/復元装置およびデータ圧縮/復元方法
JPH05241776A (ja) データ圧縮方式
JPH08116269A (ja) データ処理装置及びデータ処理方法
JPH06161705A (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: 20020416

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

Free format text: PAYMENT UNTIL: 20080510

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090510

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090510

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100510

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100510

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110510

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120510

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130510

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees