JP2002232297A - データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 - Google Patents

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

Info

Publication number
JP2002232297A
JP2002232297A JP2001402030A JP2001402030A JP2002232297A JP 2002232297 A JP2002232297 A JP 2002232297A JP 2001402030 A JP2001402030 A JP 2001402030A JP 2001402030 A JP2001402030 A JP 2001402030A JP 2002232297 A JP2002232297 A JP 2002232297A
Authority
JP
Japan
Prior art keywords
data
code
context
tree
code tree
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
JP2001402030A
Other languages
English (en)
Other versions
JP3425142B2 (ja
Inventor
Kimitaka Murashita
君孝 村下
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 JP2001402030A priority Critical patent/JP3425142B2/ja
Publication of JP2002232297A publication Critical patent/JP2002232297A/ja
Application granted granted Critical
Publication of JP3425142B2 publication Critical patent/JP3425142B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 算術符号の区間計算の代わりにスプレイ符号
化を適用し、このスプレイ符号化における符号木に新規
データを登録することで、高速な符号登録処理を可能に
してデータ圧縮/復元処理を高速化できるようにする。 【解決手段】 入力データとそれまでに連続したn個の
データからなる文脈との組み合わせを保持し、その文脈
毎に独立した符号木を保持しておき、文脈に該当したデ
ータが出現したとき、上記符号木の頂点を意味するルー
トから上記符号木上の上記データが格納されている点と
してのリーフまでの分岐点としてのノードの分岐に応じ
た固有のデータとして定義される符号を出力し(ステッ
プA3)、上記データのリーフと他データのリーフある
いはノードとを組み替える(ステップA4)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ圧縮方法及
びデータ復元方法並びにデータ圧縮装置及びデータ復元
装置に関する。近年、文字コード、ベクトル情報,画像
など様々な種類のデータがコンピュータで扱われるよう
になっており、扱われるデータ量も急速に増加してきて
いる。これに伴い、大量のデータを扱うときは、データ
の中の冗長な部分を省いてデータ量を圧縮することで、
記憶容量を減らしたり速く伝送したりすることが行なわ
れている。また、様々なデータを一つの方式でデータ圧
縮できる方法としてユニバーサル符号化が提案されてい
る。
【0002】ここで、本発明の分野は文字コードの圧縮
に限らず、様々なデータに適用できるが、以下では情報
理論で用いられている呼称を踏襲し、データの1ワード
単位を文字といい、データが任意ワードつながったもの
を文字列と呼ぶようにする。
【0003】
【従来の技術】テキストデータやフィアル等を圧縮する
方式には、データ系列の類似性を利用いた辞書型符号化
方式と、データ列の出現頻度を利用した確率統計型符号
化方式(statistical coding) がある。この内、確率統
計型符号化の代表的な手法が、上述のユニバーサル符号
化である。
【0004】さらに、算術符号化と呼ばれる符号化があ
る。この算術符号化とは、各文字の出現確率に適応した
符号を、符号表をもたずに、計算しながら生成するもの
であり、情報源の文字の出現頻度が分かっている場合に
最大の効率で圧縮できるといわれている方法であり、2
値算術符号化と3値以上の多値算術符号化とがある。以
下に、多値算術符号化の方法について述べる。
【0005】多値算術符号化では、まず0≦P<1(以
下、〔0,1)と記述する)の数直線を、出現した文字
の事象(以下、シンボルという)の数で分割する。ここ
で、各区間の幅はシンボルの出現頻度の比に比例するよ
うに取り、出現頻度が高い順に区間を配置する。そし
て、出現したシンボルに対応する区間を選択し、次のシ
ンボルでは選択した区間をさらに全シンボル数分の区間
に分割し対応するシンボルの区間を選択するという具合
に、再帰的に選択した区間を細分する。
【0006】上述の処理について、図70(a),図7
0(b)に示す多値算術符号化の原理を説明する図を参
照しながら具体的に述べる。ここで、図70(a)はシ
ンボルと出現頻度の一例を示す図、同図70(b)はシ
ンボルの区間分割の例を示す図である。そして、文字列
“abe”の区間を分割する場合を例にとり、説明を進
める。
【0007】まず、数直線〔0,1)を、図70(a)
で示すような文字a,b,c,d,eの5つの区間に分
割する。そして、最初に出現したシンボル“a”の区間
〔0,0.2)を選択し、この選択した区間〔0,0.
2)を、さらに、全シンボルa〜eの5つの区間に分割
する。
【0008】次に、第2に出現したシンボル“b”の区
間〔0.04,0.06)を選択し、この区間〔0.0
4,0.06)を、さらに全シンボルa〜eの5つの区
間に分割する。こうして、第3に出現したシンボル
“e”の区間を選択することにより、文字列“abe”
の区間〔0.05,0.06)が得られる。このよう
に、全入力データについて、上述のような処理を繰り返
すことで、符号化する文字列の区間を決定することがで
き、最終的に定まった文字列の区間内の任意の点を2進
表示で表したものを、圧縮符号として出力するのであ
る。
【0009】「算術符号化」という名称は、符号語が
〔0.11011・・〕のように、2進数の小数点以下
の数値で表現され、それを計算で求められることからき
ている。また、上述のような出現頻度に応じた区間の分
割方法には、文字列の実際の出現頻度によらず、予め設
定した出現頻度に従って区間を分割する静的符号化方式
(static)、最初に全文字列を走査することにより得られ
た出現頻度で区間を分割する準適応型符号化方式(semi-
adaptive) 、又は文字が出現する毎に頻度を再計算して
1文字毎に区間を再設定する適応型符号化方式(adaptiv
e)とがある。
【0010】ところで、上述の多値算術符号化をファイ
ル圧縮に用い、バイト(文字)単位にデータを圧縮する
方法は、例えば、以下の2つの文献,に記載されて
いる。 "Arithmetic Coding for Data Compression," Commu
n. of ACM, Vol.30, No.6 PP.520 −540(1986) "An Adatpive Dependency Source Model for Data Co
mpression Scheme," Commun. of ACM, Vol.32 No.1 PP.
77 −83 ここで、文献は、多値算術符号化の具体的なアルゴリ
ズムを開示している。また、この文献での多値算術符
号化は、1文字単位に符号化・圧縮するエントロピー符
号化と呼ばれる方法の一つであり、注目文字の出現確率
を多値算術符号化するとともに、各文字の出現確率をそ
の文字が表れるごとに逐次更新し、種々のデータに動的
に適応して符号化を行なうものである。また、この多値
算術符号化では、詳細には図71(a)のフローチャー
トに示すような処理が行なわれる。
【0011】一方、文献の方法は、注目文字を直前文
字を用いた条件付確率で表し、その条件付確率を多値算
術符号化することで高圧縮率を得る方法を与え、各条件
付確率を逐次更新し、種々のデータに動的に適応して符
号化を行なうものである。この多値算術符号化において
も、図71(b)のフローチャートに示すような処理が
行なわれる。
【0012】ここで、多値算術符号化の代わりに、ハフ
マン符号化の変形であるダイナミック・ハフマン符号化
("Variation a Theme by Huffman", IEEE Trans. Info
rm.Theory, Vol.24, No.6 1978, または、"Design and
Analysis of Dynamic Huffman Codes", Journal of AC
M, Vol.34, No.4 1987 参照)を用いる方法も考えられ
るが、このダイナミック・ハフマン符号化は、符号化効
率が多値算術符号化より劣る上、処理に時間がかかるた
め、条件付確率をダイナミック・ハフマン符号化する方
法は実際には使用されていない。
【0013】なお、図72は、この多値算術符号化・復
号化のアルゴリズムの一例を示す図である。また、算術
符号化とは別にスプレイ(Splay-Tree)符号化方法と呼
ばれるものがある(例えば、文献"Application of Spla
y Tree to Data Compression"DOUGLAS W.JONES著 Commu
n.of ACM,Vol31 No.8 P996-1007 参照) 。
【0014】このスプレイ符号化方法では、図73
(a)に示すような木構造の符号表( 以下、符号木と称
する)を用い、符号木の終端( 一般的に葉、あるいはリ
ーフと呼ばれる)にシンボルを登録し、符号木の頂点
(一般的に根,あるいはルートと呼ばれる)から入力デ
ータが格納されているリーフまでの距離を符号語として
出力する。
【0015】具体的に述べると、符号語には、ルートか
らリーフへ下るとき、右へ分岐したときは“1”、左へ
分岐したときは“0”を割り当てるのである。つまり、
図73(a)の例では、シンボルAの符号は〔1011
0〕となり、シンボルBの符号は〔001〕となる。そ
して、符号長を変更する(符号更新する)場合は、符号
化したリーフと他のリーフ、あるいは符号木上の接点
(節、あるいはノードと呼ばれる)とを組み替えること
により行なう。
【0016】図73(b)に上述の符号更新の例を示
す。この図73(b)に示すように、入力されたデータ
の中に、初めシンボルA,B,C,Dの各符号が符号木
のリーフに格納されている。そして、まずシンボルAと
シンボルCとのノードを組み替え、さらにシンボルAの
上位ノードDとシンボルEとのノードを組み替えること
により、図73(b)に示すように、シンボルAの符号
は、〔10110〕から〔110〕となり符号の更新が
行なわれる。
【0017】ここで、上述の説明は1文字毎の出現確率
を動的に可変長符号化する場合であるが、さらに、圧縮
率を高めるためには、入力信号と直前の文字との依存関
係を取り入れた条件付き出現確率を動的可変長符号化す
ることで行なわれる。この方法は、データの確率統計的
な性質を用いる確率統計型符号化であり、図74に示す
ように、文脈収集処理511と動的可変長符号化処理5
12との2段階の処理からなる。
【0018】そして、図75(a)に示すように文脈収
集により入力データから文字列の前後関係の文脈を収集
し、図75(b)に示すような文脈の木構造を作成し、
条件付き確率を求めて動的可変長符号化する。ここで、
上述の条件付き確率は、図75(b)に示すような木構
造の文脈木上において、各ノードの文字を通る文字列が
出現する毎に出現回数を計数しておくことによって求め
られる。
【0019】ところで、条件付き確率を求める文脈収集
の方法には、主に以下の2つの方法がある。なお、以
下、条件(文脈)の文字数を次数と呼ぶことにする(文
献"Data Compression Using Adaptive Coding and Part
ial String Matching"JOHN G.CLEARY 他著IEEE Vol.COM
-32,No.4 APRIL 1984 P396-402参照) 。 (1)固定次数の文脈収集方法 この方法は、条件付き確率の条件を固定の文字数にする
方法である。
【0020】例えば2次の文脈では、直前2文字につな
がる文字の文脈を収集し、条件付き確率p(y|x1,
x2)を符号化する。ただし、yは注目符号化文字,x
1,x2はそれぞれ直前の第1文字,第2文字である。 (2)Blending文脈収集方法 上述の固定次数の文脈収集方法では、直前の条件文字列
が出にくい場合、条件付き確率の推定は不正確になり、
逆に直前の条件付き文字列が出やすい場合は条件付き確
率の推定は正確になり、さらに次数を上げ得る可能性を
残す。
【0021】一般に、高次の文脈を使うほど文字間の相
関が大きいデータに対しては高圧縮率が得られるが、逆
に高次文脈を使うほど相関が小さくなるデータでは、か
えって圧縮率が悪くなる。これを解決するのが文脈のBl
ending(次数の混合)である。この方法は、直前の次数
を固定せずに出やすい場合には次数を上げ、出にくい場
合には低い次数のままという具合に文脈の次数を入力デ
ータに適応させて伸ばす方法である。
【0022】
【発明が解決しようとする課題】しかしながら、算術符
号化を動的可変長符号に用いた確率統計型符号化方式に
は、データが入力されてくる度にそれまで入力された全
てのデータの累積頻度を再計算し、〔0,1)の数直線
を再分割するので、複雑で大量な演算処理を必要であ
り、処理の高速化が行なえないという課題がある。
【0023】本発明は、このような課題に鑑み創案され
たもので、算術符号の区間計算の代わりにスプレイ符号
化を適用し、このスプレイ符号化における符号木に新規
データを登録することで、高速な符号登録処理を可能に
してデータ圧縮/復元処理を高速化できるようにした、
データ圧縮方法及びデータ復元方法並びにデータ圧縮装
置及びデータ復元装置を提供することを目的とする。
【0024】
【課題を解決するための手段】このため、本発明のデー
タ圧縮方法は、入力データを過去に出現した履歴に応じ
て符号化して圧縮するデータ圧縮方法において、次のよ
うな過程をとることを特徴としている(請求項1)。 (1)入力データとそれまでに連続したn個のデータか
らなる文脈との組み合わせを保持する文脈収集過程。 (2)文脈毎に独立した符号木を保持する符号木保持過
程。 (3)文脈収集過程の文脈に該当したデータが出現した
とき、符号木の頂点を意味するルートから符号木上のデ
ータが格納されている点としてのリーフまでの分岐点と
してのノードの分岐に応じた固有のデータとして定義さ
れる符号を出力する符号出力過程。 (4)符号出力過程での処理の後、データのリーフと他
データのリーフあるいはノードとを組み替える符号長変
更過程。
【0025】さらに、本発明のデータ圧縮方法は、入力
データを過去に出現した履歴に応じて符号化して圧縮す
るデータ圧縮方法において、次のような過程をとること
を特徴としている(請求項2)。 (1)入力データとそれまでに連続したn個のデータか
らなる文脈との組み合わせを保持する文脈収集過程。 (2)文脈毎に独立した符号木を保持する符号木保持過
程。 (3)文脈収集過程の文脈に該当したデータが出現した
とき、符号木の頂点を意味するルートから符号木上のデ
ータが格納されている点としてのリーフまでの分岐点と
してのノードの分岐に応じた固有のデータとして定義さ
れる符号を出力する符号出力過程。 (4)符号出力過程での処理の後、データのリーフと他
データのリーフあるいはノードとを組み替える符号長変
更過程。 (5)入力データと文脈との組み合わせが文脈収集過程
に保持されているか否かを判別する文脈判別過程。 (6)予めデータ未登録を示すデータとして定義される
エスケープコードを登録したリーフを符号木に保持する
エスケープコード保持過程。 (7)入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、エ
スケープコードを出力し、文脈収集過程に保持されてい
る組み合わせが得られるまで、データの文脈を短くする
処理を繰り返す過程。
【0026】また、本発明のデータ圧縮方法は、入力デ
ータを過去に出現した履歴に応じて符号化して圧縮する
データ圧縮方法において、次のような過程をとることを
特徴としている(請求項3)。 (1)入力データとそれまでに連続したn個のデータか
らなる文脈との組み合わせを保持する文脈収集過程。 (2)文脈毎に独立した符号木を保持する符号木保持過
程。 (3)文脈収集過程の文脈に当したデータが出現したと
き、符号木の頂点を意味するルートから符号木上のデー
タが格納されている点としてのリーフまでの分岐点とし
てのノードの分岐に応じた固有のデータとして定義され
る符号を出力する符号出力過程。 (4)符号出力過程での処理の後、データのリーフと他
データのリーフあるいはノードとを組み替える符号長変
更過程。 (5)入力データと文脈との組み合わせが文脈収集過程
に保持されているか否かを判別する文脈判別過程。 (6)予めデータ未登録を示すデータとして定義される
エスケープコードを登録したリーフを符号木に保持する
エスケープコード保持過程。 (7)入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、入
力データと文脈との組み合わせを文脈収集過程に新規に
登録する文脈新規登録過程。 (8)入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、デ
ータを文脈に対応した符号木に新規に登録する符号木新
規登録過程。 (9)入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、エ
スケープコードの符号を出力すると同時に、入力データ
と文脈との組み合わせを履歴に登録するとともに、デー
タを文脈に対応した符号木に登録し、文脈収集過程に保
持されている組み合わせが得られるまでデータの文脈を
短くする処理を繰り返す過程。
【0027】さらに、本発明のデータ圧縮方法は、入力
データを過去に出現した履歴に応じて符号化して圧縮す
るデータ圧縮方法において、次のような過程をとること
を特徴としている(請求項4)。 (1)入力データとそれまでに連続したn個のデータか
らなる文脈との組み合わせを保持する文脈収集過程。 (2)文脈毎に独立した符号木を保持する符号木保持過
程。 (3)文脈収集過程の文脈に該当したデータが出現した
とき、符号木の頂点を意味するルートから符号木上のデ
ータが格納されている点としてのリーフまでの分岐点と
してのノードの分岐に応じた固有のデータとして定義さ
れる符号を出力する符号出力過程。 (4)符号出力過程での処理の後、データのリーフと他
データのリーフあるいはノードとを組み替える符号長変
更過程。 (5)入力データと文脈との組み合わせが文脈収集過程
に保持されているか否かを判別する文脈判別過程。 (6)予めデータ未登録を示すデータとして定義される
エスケープコードを登録したリーフを符号木に保持する
エスケープコード保持過程。 (7)入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、入
力データと文脈との組み合わせを文脈収集過程に新規に
登録する文脈新規登録過程。 (8)入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、デ
ータを文脈に対応した符号木に新規に登録する符号木新
規登録過程。 (9)文脈新規登録過程及び符号木新規登録過程におい
ては、履歴にあると判断された直前の文脈とデータとの
組み合わせのみを登録する過程。
【0028】一方、本発明のデータ復元方法は、入力デ
ータを過去の入力データの履歴に応じて符号化した符号
データを復元するデータ復元方法において、次のような
過程をとることを特徴としている(請求項5)。 (1)復号データと文脈との組み合わせの履歴を保持す
る文脈収集過程。 (2)文脈に応じておのおの独立した符号木を保持する
符号木保持過程。 (3)直前までに復号したデータの文脈からデータの符
号木を決定する符号木決定過程。 (4)符号木決定過程で決定した符号木とデータの符号
からデータを復号する復号過程。 (5)復号過程の復号の後に、符号化側と同一の手段
で、符号木上のデータ格納点としてのリーフ間又はリー
フと符号木の分岐点としてのノードとを組み替える符号
長変更過程。
【0029】また、本発明のデータ復元方法は、入力デ
ータを過去の入力データの履歴に応じて符号化した符号
データを復元するデータ復元方法において、次のような
過程をとることを特徴としている(請求項6)。 (1)復号データと文脈との組み合わせの履歴を保持す
る文脈収集過程。 (2)文脈に応じておのおの独立した符号木を保持する
符号木保持過程。 (3)直前までに復号したデータの文脈からデータの符
号木を決定する符号木決定過程。 (4)符号木決定過程で決定した符号木とデータの符号
からデータを復号する復号過程。 (5)復号過程の復号の後に、符号化側と同一の手段
で、符号木上のデータ格納点としてのリーフ間又はリー
フと符号木の分岐点としてのノードとを組み替える符号
長変更過程。 (6)符号木にはそれぞれの文脈に応じた符号木毎に予
めデータ未登録を示すデータとして定義されるエスケー
プコードを登録し、復号時にエスケープコードを復号し
た場合、エスケープコード以外が復号されるまで、文脈
の長さを短くする処理を繰り返す過程。
【0030】さらに、本発明のデータ復元方法は、入力
データを過去の入力データの履歴に応じて符号化した符
号データを復元するデータ復元方法において、次のよう
な過程をとることを特徴としている(請求項7)。 (1)復号データと文脈との組み合わせの履歴を保持す
る文脈収集過程。 (2)文脈に応じておのおの独立した符号木を保持する
符号木保持過程。 (3)直前までに復号したデータの文脈からデータの符
号木を決定する符号木決 定過程。(4)符号木決定過程で決定した符号木とデー
タの符号からデータを復号する復号過程。 (5)復号過程の復号の後に、符号化側と同一の手段
で、符号木上のデータ格納点としてのリーフ間又はリー
フと符号木の分岐点としてのノードとを組み替える符号
長変更過程。 (6)文脈収集過程にデータを新規に登録する文脈新規
登録過程。 (7)復号したデータを文脈に応じた符号木に新規に登
録する符号木新規登録過程。 (8)データ未登録を示すデータとして定義されるエス
ケープコードを復号したとき、文脈新規登録過程及び符
号木新規登録過程を実行して、エスケープコード以外が
復号されるまで、文脈の長さを短くする処理を繰り返す
過程。
【0031】また、本発明のデータ復元方法は、入力デ
ータを過去の入力データの履歴に応じて符号化した符号
データを復元するデータ復元方法において、次のような
過程をとることを特徴としている(請求項8)。 (1)復号データと文脈との組み合わせの履歴を保持す
る文脈収集過程。 (2)文脈に応じておのおの独立した符号木を保持する
符号木保持過程。 (3)直前までに復号したデータの文脈からデータの符
号木を決定する符号木決定過程。 (4)符号木決定過程で決定した符号木とデータの符号
からデータを復号する復号過程。 (5)復号過程の復号の後に、符号化側と同一の手段
で、符号木上のデータ格納点としてのリーフ間又はリー
フと符号木の分岐点としてのノードとを組み替える符号
長変更過程。 (6)文脈収集過程にデータを新規に登録する文脈新規
登録過程。 (7)復号したデータを文脈に応じた符号木に新規に登
録する符号木新規登録過程。 (8)データ未登録を示すデータとして定義されるエス
ケープコード以外が復号されるまでの処理において、エ
スケープコードを一つでも復号した時、エスケープコー
ド以外を復号した直前の文脈においてのみ、文脈新規登
録過程および符号木新規登録過程での各新規登録処理を
行なう過程。
【0032】さらに、請求項1に記載の本発明のデータ
圧縮方法を実施するための装置の構成を、図1の原理ブ
ロック図に示す。この図1に示すデータ圧縮装置は、入
力データを過去に出現した履歴に応じて符号化して圧縮
するものである。ここで、100は前置データ保持手
段、101は履歴保持手段、102は符号木保持手段、
103は符号木決定手段、104は符号出力手段、10
5は符号長変更手段、106は前置データ更新手段であ
る。
【0033】前置データ保持手段100は、入力データ
の直前までに入力されたn個の入力データからなる文脈
を保持するものであり、履歴保持手段101は、入力デ
ータと文脈との組み合わせを保持するものであり、符号
木保持手段102は、文脈毎に独立した符号木を保持す
るものである。また、符号木決定手段103は、前置デ
ータ保持手段100に保持されている直前までの入力デ
ータからデータの符号木を決定するものであり、符号出
力手段104は、符号木決定手段103で選択した符号
木の頂点を意味するルートからデータが格納されている
リーフに沿って途中に位置する分岐点としてのノードか
らの分岐に従って固有のデータを出力するものである。
【0034】さらに、符号長変更手段105は、符号化
したリーフと他のリーフあるいはノードとを組み替える
ものであり、前置データ更新手段106は、データを前
置データ保持手段100に登録するものである(以上、
請求項9)。また、請求項2に記載の本発明のデータ圧
縮方法を実施するための装置の構成を、図2の原理ブロ
ック図に示す。この図2に示すデータ圧縮装置も、入力
データを過去に出現した履歴に応じて符号化して圧縮す
るものである。
【0035】ここで、100は前置データ保持手段、1
01は履歴保持手段、103は符号木決定手段、107
は符号木決定手段である。さらに、108は文脈判別手
段、109はエスケープコード出力手段、110は文脈
変更手段、111は符号出力手段、116は制御手段で
ある。前置データ保持手段100は、入力データの直前
までに入力されたn個の入力データからなる文脈を保持
するものであり、履歴保持手段101は、入力データと
文脈との組み合わせを保持するものであり、符号木保持
手段107は、データ未登録を示すデータとして定義さ
れるエスケープコードをあらかじめ登録した文脈毎に独
立した符号木を保持するものである。
【0036】また、符号木決定手段103は、文脈と入
力データからデータの符号木を決定するものであり、文
脈判別手段108は、符号木決定手段103で決定した
符号木にデータが登録されているか否かを判別するもの
であり、エスケープコード出力手段109は、符号木に
データが登録されていないときは符号木の頂点を意味す
るルートからエスケープコードのデータ格納点としての
リーフまでの途中に位置する分岐点としてのノードから
の分岐に従ってエスケープコードを出力するものであ
る。
【0037】さらに、文脈変更手段110は、符号木に
データが登録されていないときは文脈の長さnを短くす
るものであり、符号出力手段111は、符号木にデータ
が登録されているときは符号木のルートからデータのリ
ーフまでの途中に位置するノードからの分岐に従ってデ
ータの符号を出力するものである。また、符号長変更手
段105は、符号化したリーフと他のリーフあるいはノ
ードとを組み換えるものであり、前置データ更新手段1
06は、データを前置データ保持手段100に登録する
ものであり、制御手段116は、エスケープコードを符
号化したときはデータの符号化を行なうまで処理を繰り
返すものである(以上、請求項10)。
【0038】また、請求項3に記載の本発明のデータ圧
縮方法を実施するための装置の構成を、図3の原理ブロ
ック図に示す。この図3に示すデータ圧縮装置も、入力
データを過去に出現した履歴に応じて符号化して圧縮す
るものである。ここで、100は前置データ保持手段、
101は履歴保持手段、103は符号木決定手段、10
5は符号長変更手段、106は前置データ更新手段、1
07は符号木保持手段、108は文脈判別手段、109
はエスケープコード出力手段、110は文脈変更手段、
111は符号出力手段、112は履歴登録手段、113
は符号登録手段、116は制御手段である。
【0039】前置データ保持手段100は、入力データ
の直前までに入力されたn個の入力データからなる文脈
を保持するものであり、履歴保持手段101は、入力デ
ータと文脈との組み合わせを保持するものであり、符号
木保持手段107は、データ未登録を示すデータとして
定義されるエスケープコードを予め登録した文脈毎に独
立した符号木を保持するものである。
【0040】また、符号木決定手段103は、文脈と入
力データからデータの符号木を決定するものであり、文
脈判別手段108は、符号木決定手段103で決定した
符号木にデータが登録されているか否かを判別するもの
である。さらに、エスケープコード出力手段109は、
符号木にデータが登録されていないときは符号木の頂点
を意味するルートからエスケープコードのデータ格納点
としてのリーフまでの中に位置する分岐点としてのノー
ドからの分岐に従ってエスケープコードを出力するもの
である。
【0041】また、履歴登録手段112は、符号木にデ
ータが登録されていないときは履歴保持手段101にデ
ータと文脈の組み合わせを登録するものであり、符号登
録手段113は、符号木にデータが登録されていないと
きは符号木にデータを新規に登録するものであり、文脈
変更手段110は、符号木にデータが登録されていない
ときは文脈の長さnを短くするものである。
【0042】さらに、符号出力手段111は、符号木に
データが登録されているときは符号木のルートからデー
タのリーフまでの途中に位置するノードからの分岐に従
ってデータの符号を出力するものであり、符号長変更手
段105は、符号化したリーフと他のリーフあるいはノ
ードとを組み換えるものである。また、前置データ更新
手段106は、データを前置データ保持手段100に登
録するものであり、制御手段116は、エスケープコー
ドを符号化したときはデータの符号化を行なうまで処理
を繰り返すものである(以上、請求項11)。
【0043】さらに、請求項4に記載の本発明のデータ
圧縮方法を実施するための装置の構成を、図4の原理ブ
ロック図に示す。この図4に示すデータ圧縮装置も、入
力データを過去に出現した履歴に応じて符号化して圧縮
するものである。ここで、100は前置データ保持手
段、101は履歴保持手段、103は符号木決定手段、
105は符号長変更手段、106は前置データ更新手
段、107は符号木保持手段、108は文脈判別手段、
109および111はエスケープコード出力手段、11
0は文脈変更手段、114は履歴登録手段、115は符
号登録手段、117は制御手段である。
【0044】前置データ保持手段100は、入力データ
の直前までに入力されたn個の入力データからなる文脈
を保持するものであり、履歴保持手段101は、入力デ
ータと文脈との組み合わせを保持するものであり、符号
木保持手段107は、データ未登録を示すデータとして
定義されるエスケープコードをあらかじめ登録した文脈
毎に独立した符号木を保持するものである。
【0045】また、符号木決定手段103は、文脈と入
力データからデータの符号木を決定するものであり、文
脈判別手段108は、符号木決定手段103で決定した
符号木にデータが登録されているか否かを判別するもの
である。さらに、エスケープコード出力手段109は、
符号木にデータが登録されていないときは符号木の頂点
を意味するルートからエスケープコードのデータ格納点
としてのリーフまでの途中に位置する分岐点としてのノ
ードからの分岐に従ってエスケープコードを出力するも
のである。
【0046】また、文脈変更手段110は、符号木にデ
ータが登録されていないときは文脈の長さnを短くする
ものであり、エスケープコード出力手段111は、符号
木にデータが登録されているときは符号木のルートから
データのリーフまでの途中に位置するノードからの分岐
にしたがってデータの符号を出力するものである。さら
に、履歴登録手段114は、履歴保持手段101にデー
タと文脈の組み合わせを登録するものであり、符号登録
手段115は、符号木にデータを新規に登録するもので
あり、符号長変更手段105は、符号化したリーフと他
のリーフあるいはノードとを組み換えるものであり、前
置データ更新手段106は、データを前置データ保持手
段100に登録するものである。
【0047】また、制御手段117は、データの符号化
時に一度でもエスケープコードを符号化したときは、デ
ータの符号化の直前の文脈とデータとの組み合わせを履
歴登録手段114で履歴保持手段101に登録し、デー
タの符号化の直前に符号化したエスケープコードを持つ
符号木に符号登録手段115でデータを新規に登録する
ものである(以上、請求項12)。
【0048】一方、請求項5に記載の本発明のデータ復
元方法を実施するための装置の構成を、図5の原理ブロ
ック図に示す。この図5に示すデータ復元装置は、過去
に出現した履歴に応じて符号化した符号を復号するもの
である。ここで、200は前置データ保持手段、201
は履歴保持手段、202は符号木保持手段、203は符
号木決定手段、204は復号手段、205は符号長変更
手段、206は前置データ更新手段である。
【0049】前置データ保持手段200は、過去に復号
したn個のデータを保持するものであり、履歴保持手段
201は、復号したデータと文脈との組み合わせを保持
するものであり、符号木保持手段202は、文脈毎に独
立した符号木を保持するものである。また、符号木決定
手段203は、前置データ保持手段200に保持されて
いる文脈からデータを復号するための符号木を決定する
ものであり、復号手段204は、符号に従って符号木決
定手段203で選択した符号木の頂点を意味するルート
から分岐点としてのノードを走査して到達したデータ格
納点としてのリーフに格納されているデータを出力する
ものである。
【0050】さらに、符号長変更手段205は、復号し
たリーフと他のリーフあるいはノードとを組み替えるも
のであり、前置データ更新手段206は、復号したデー
タを前置データ保持手段200に登録するものである
(以上、請求項13)。また、請求項6に記載の本発明
のデータ復元方法を実施するための装置の構成を、図6
の原理ブロック図に示す。この図6に示すデータ復元装
置も、過去に出現した履歴に応じて符号化した符号を復
号するものである。
【0051】ここで、200は前置データ保持手段、2
01は履歴保持手段、203は符号木決定手段、204
は復号手段、205は符号長変更手段、206は前置デ
ータ更新手段、207は符号木保持手段、208は文脈
変更手段、213は制御手段である。前置データ保持手
段200は、過去に復号したn個のデータを保持するも
のであり、履歴保持手段201は、復号したデータと文
脈との組み合わせを保持するものであり、符号木保持手
段207は、データ未登録を示すデータとして定義され
るエスケープコードをあらかじめ登録した符号木を保持
するものである。
【0052】また、符号木決定手段203は、前置デー
タ保持手段200に保持されている文脈からデータを復
号するための符号木を決定するものであり、復号手段2
04は、符号に従って符号木決定手段203で選択した
符号木の頂点を意味するルートから分岐点としてのノー
ドを走査して到達したデータ格納点としてのリーフに格
納されているデータを出力するものである。
【0053】さらに、符号長変更手段205は、復号し
たリーフと他のリーフあるいはノードとを組み替えるも
のであり、文脈変更手段208は−出力したデータがエ
スケープコードであったときデータを棄却し文脈を短く
するものであり、前置データ更新手段206は、復号し
たデータを前置データ保持手段200に登録するもので
ある。
【0054】制御手段213は、エスケープコードを復
号した時は文脈変更手段208で文脈を再設定し、エス
ケープコード以外が復号されるまで処理を繰り返すもの
である(以上、請求項14)。さらに、請求項7に記載
の本発明のデータ復元方法を実施するための装置の構成
を、図7の原理ブロック図に示す。この図7に示すデー
タ復元装置も、過去に出現した履歴に応じて符号化した
符号を復号するものである。
【0055】ここで、200は前置データ保持手段、2
01は履歴保持手段、203は符号木決定手段、204
は復号手段、205は符号長変更手段、206は前置デ
ータ更新手段、207は符号木保持手段、208は文脈
変更手段、209は履歴登録手段、210は符号登録手
段、213は制御手段である。前置データ保持手段20
0は、過去に復号したn個のデータを保持するものであ
り、履歴保持手段201は、復号したデータと文脈との
組み合わせを保持するものであり、符号木保持手段20
7は、エスケープコードをあらかじめ登録した符号木を
保持するものである。
【0056】また、符号木決定手段203は、前置デー
タ保持手段200に保持されている文脈からデータを復
号するための符号木を決定するものであり、復号手段2
04は、符号に従って符号木決定手段203で選択した
符号木の頂点を意味するルートから分岐点としてのノー
ドを走査して到達したデータ格納点としてのリーフに格
納されているデータを出力するものである。
【0057】さらに、符号長変更手段205は、復号し
たリーフと他のリーフあるいはノードとを組み替えるも
のであり、文脈変更手段208は、出力したデータが上
記エスケープコードであったとき、上記データを棄却し
文脈を短くするものである。また、前置データ更新手段
206は、復号したデータを前置データ保持手段200
に登録するものであり、履歴登録手段209は、データ
の復号処理でエスケープコードを復号したときの全ての
文脈と復号したデータとを履歴保持手段201に登録す
るものである。
【0058】また、符号登録手段210は、データの復
号処理でエスケープコードを復号した時の文脈に対応し
た全ての符号木にデータの符号を登録するものであり、
制御手段213は、エスケープコードを復号した時は文
脈変更手段208で文脈を再設定し、エスケープコード
以外が復号されるまで処理を繰り返すものである(以
上、請求項15)。
【0059】また、請求項8に記載の本発明のデータ復
元方法を実施するための装置の構成を、図8の原理ブロ
ック図に示す。この図8に示すデータ復元装置も、過去
に出現した履歴に応じて符号化した符号を復号するもの
である。ここで、200は前置データ保持手段、201
は履歴保持手段、203は符号木決定手段、204は復
号手段、205は符号長変更手段、206は前置データ
更新手段、207は符号木保持手段、208は文脈変更
手段、212は符号登録手段、213は制御手段であ
る。
【0060】前置データ保持手段200は、過去に復号
したn個のデータを保持するものであり、履歴保持手段
201は、復号したデータと文脈との組み合わせを保持
するものであり、符号木保持手段207は、データ未登
録を示すデータとして定義されるエスケープコードをあ
らかじめ登録した符号木を保持するものである。また、
符号木決定手段203は、前置データ保持手段200に
保持されている文脈からデータを復号するための符号木
を決定するものであり、復号手段204は、符号に従っ
て符号木決定手段203で選択した符号木の頂点を意味
するルートから分岐点としてのノードを走査して到達し
たデータ格納点としてのリーフに格納されているデータ
を出力するものである。
【0061】さらに、符号長変更手段205は、復号し
たリーフと他のリーフあるいはノードとを組み替えるも
のであり、文脈変更手段208は、出力したデータがエ
スケープコードであったときデータを棄却し文脈を短く
するものであり、前置データ更新手段206は、復号し
たデータを前置データ保持手段200に登録するもので
ある。
【0062】また、履歴登録手段211は、データの復
号処理でエスケープコードを最後に復号した時の文脈と
復号したデータとを履歴保持手段201に登録するもの
であり、符号登録手段212は、データの復号処理で最
後にエスケープコードを復号した時の文脈に対応した符
号木にデータの符号を登録するものであり、制御手段2
13は、エスケープコードを復号した時は文脈変更手段
208で文脈を再設定し、エスケープコード以外が復号
されるまで処理を繰り返すものである(以上、請求項1
6)。
【0063】ここで、上述した本発明のデータ圧縮方法
では、次のような作用がある(請求項1)。 (1)文脈収集過程により、入力データとそれまでに連
続したn個のデータからなる文脈との組み合わせを保持
することができる。 (2)符号木保持過程により、文脈毎に独立した符号木
を保持することができる。 (3)符号出力過程により、文脈収集過程の文脈に該当
したデータが出現したとき、符号木の頂点を意味するル
ートから符号木上のデータが格納されている点としての
リーフまでの分岐点としてのノードの分岐に応じた固有
のデータとして定義される符号を出力することができ
る。 (4)符号長変更過程により、符号出力過程での処理の
後、データのリーフと他データのリーフあるいはノード
とを組み替えることができる。
【0064】さらに、本発明のデータ圧縮方法では、次
のような作用がある(請求項2)。 (1)文脈収集過程により、入力データとそれまでに連
続したn個のデータからなる文脈との組み合わせを保持
することができる。 (2)符号木保持過程により、文脈毎に独立した符号木
を保持することができる。 (3)符号出力過程により、文脈収集過程の文脈に該当
したデータが出現したとき、符号木の頂点を意味するル
ートから符号木上のデータが格納されている点としての
リーフまでの分岐点としてのノードの分岐に応じた固有
のデータとして定義される符号を出力することができ
る。 (4)符号長変更過程により、符号出力過程での処理の
後、データのリーフと他データのリーフあるいはノード
とを組み替えることができる。 (5)文脈判別過程により、入力データと文脈との組み
合わせが文脈収集過程に保持されているか否かを判別す
ることができる。 (6)エスケープコード保持過程により、予めデータ未
登録を示すデータとして定義されるエスケープコードを
登録したリーフを符号木に保持することができる。 (7)入力データと文脈との組み合わせが文脈収集過程
(1)の履歴に保持されていない組み合わせであったと
き、エスケープコードを出力し、文脈収集過程に保持さ
れている組み合わせが得られるまで、データの文脈を短
くする処理を繰り返すことができる。
【0065】また、本発明のデータ圧縮方法では、次の
ような作用がある(請求項3)。 (1)文脈収集過程により、入力データとそれまでに連
続したn個のデータからなる文脈との組み合わせを保持
することができる。 (2)符号木保持過程により、文脈毎に独立した符号木
を保持することができる。 (3)符号出力過程により、文脈収集過程の文脈に該当
したデータが出現したとき、符号木の頂点を意味するル
ートから符号木上のデータが格納されている点としての
リーフまでの分岐点としてのノードの分岐に応じた固有
のデータとして定義される符号を出力することができ
る。 (4)符号長変更過程により、符号出力過程での処理の
後、データのリーフと他データのリーフあるいはノード
とを組み替えることができる。 (5)文脈判別過程により、入力データと文脈との組み
合わせが文脈収集過程に保持されているか否かを判別す
ることができる。 (6)エスケープコード保持過程により、予めデータ未
登録を示すデータとして定義されるエスケープコードを
登録したリーフを符号木に保持することができる。 (7)文脈新規登録過程により、入力データと文脈との
組み合わせが文脈収集過程の履歴に保持されていない組
み合わせであったとき、この入力データと文脈との組み
合わせを文脈収集過程に新規に登録することができる。 (8)符号木新規登録過程により、入力データと文脈と
の組み合わせが文脈収集過程の履歴に保持されていない
組み合わせであったとき、このデータを文脈に対応した
符号木に新規に登録することができる。 (9)入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、エ
スケープコードの符号を出力すると同時に、この入力デ
ータと文脈との組み合わせを履歴に登録するとともに、
データを文脈に対応した符号木に登録し、文脈収集過程
に保持されている組み合わせが得られるまでデータの文
脈を短くする処理を繰り返すことができる。
【0066】さらに、本発明のデータ圧縮方法では、次
のような作用がある(請求項4)。 (1)文脈収集過程により、入力データとそれまでに連
続したn個のデータからなる文脈との組み合わせを保持
することができる。 (2)符号木保持過程により、文脈毎に独立した符号木
を保持することができる。 (3)符号出力過程により、文脈収集過程の文脈に該当
したデータが出現したとき、符号木の頂点を意味するル
ートから符号木上のデータが格納されている点としての
リーフまでの分岐点としてのノードの分岐に応じた固有
のデータとして定義される符号を出力することができ
る。 (4)符号長変更過程により、符号出力過程での処理の
後、データのリーフと他データのリーフあるいはノード
とを組み替えることができる。 (5)文脈判別過程により、入力データと文脈との組み
合わせが文脈収集過程に保持されているか否かを判別す
ることができる。 (6)エスケープコード保持過程により、予めデータ未
登録を示すデータとして定義されるエスケープコードを
登録したリーフを符号木に保持することができる。 (7)文脈新規登録過程により、入力データと文脈との
組み合わせが文脈収集過程の履歴に保持されていない組
み合わせであったとき、この入力データと文脈との組み
合わせを文脈収集過程に新規に登録することができる。 (8)符号木新規登録過程により、入力データと文脈と
の組み合わせが文脈収集過程の履歴に保持されていない
組み合わせであったとき、データを文脈に対応した符号
木に新規に登録することができる。 (9)上述の(7)の文脈新規登録過程及び(8)の符
号木新規登録過程においては、履歴にあると判断された
直前の文脈とデータとの組み合わせのみを登録すること
ができる一方、本発明のデータ復元方法では、次のよう
な作用がある(請求項5)。 (1)文脈収集過程により、復号データと文脈との組み
合わせの履歴を保持することができる。 (2)符号木保持過程により、文脈に応じておのおの独
立した符号木を保持することができる。 (3)符号木決定過程により、直前までに復号したデー
タの文脈からデータの符号木を決定することができる。 (4)復号過程により、符号木決定過程で決定した符号
木とデータの符号からデータを復号することができる。 (5)符号長変更過程により、復号過程の復号の後に、
符号化側と同一の手段で、符号木上のデータ格納点とし
てのリーフ間又はリーフと符号木の分岐点としてのノー
ドとを組み替えることができる。
【0067】さらに、本発明のデータ復元方法では、次
のような作用がある(請求項6)。 (1)文脈収集過程により、復号データと文脈との組み
合わせの履歴を保持することができる。 (2)符号木保持過程により、文脈に応じておのおの独
立した符号木を保持することができる。 (3)符号木決定過程により、直前までに復号したデー
タの文脈からデータの符号木を決定することができる。 (4)復号過程により、符号木決定過程で決定した符号
木とデータの符号からデータを復号することができる。 (5)符号長変更過程により、復号過程の復号の後に、
符号化側と同一の手段で、符号木上のデータ格納点とし
てのリーフ間又はリーフと符号木の分岐点としてのノー
ドとを組み替えることができる。 (6)符号木にはそれぞれの文脈に応じた符号木毎に予
めデータ未登録を示すデータとして定義されるエスケー
プコードを登録し、復号時にエスケープコードを復号し
た場合、エスケープコード以外が復号されるまで、文脈
の長さを短くする処理を繰り返すことができる。
【0068】また、本発明のデータ復元方法では、次の
ような作用がある(請求項7)。 (1)文脈収集過程により、復号データと文脈との組み
合わせの履歴を保持することができる。 (2)符号木保持過程により、文脈に応じておのおの独
立した符号木を保持することができる。 (3)符号木決定過程により、直前までに復号したデー
タの文脈からデータの符号木を決定することができる。 (4)復号過程により、符号木決定過程で決定した符号
木とデータの符号からデータを復号することができる。 (5)符号長変更過程により、復号過程の復号の後に、
符号化側と同一の手段で、符号木上のデータ格納点とし
てのリーフ間又はリーフと符号木の分岐点としてのノー
ドとを組み替えることができる。 (6)文脈新規登録過程により、文脈収集過程にデータ
を新規に登録することができる。 (7)符号木新規登録過程により、復号したデータを文
脈に応じた符号木に新規に登録することができる (8)データ未登録を示すデータとして定義されるエス
ケープコードを復号したとき、上述の(6)の文脈新規
登録過程及び(7)の符号木新規登録過程を実行して、
エスケープコード以外が復号されるまで、文脈の長さを
短くする処理を繰り返すことができる。
【0069】さらに、本発明のデータ復元方法では、次
のような作用がある(請求項8)。 (1)文脈収集過程により、復号データと文脈との組み
合わせの履歴を保持することができる。 (2)符号木保持過程により、文脈に応じておのおの独
立した符号木を保持することができる。 (3)符号木決定過程により、直前までに復号したデー
タの文脈からデータの符号木を決定することができる。 (4)復号過程により、符号木決定過程で決定した符号
木とデータの符号からデータを復号することができる。 (5)符号長変更過程により、復号過程の復号の後に、
符号化側と同一の手段で、符号木上のデータ格納点とし
てのリーフ間又はリーフと符号木の分岐点としてのノー
ドとを組み替えることができる。 (6)文脈新規登録過程により、文脈収集過程にデータ
を新規に登録することができる。 (7)符号木新規登録過程により、復号したデータを文
脈に応じた符号木に新規に登録することができる。 (8)データ未登録を示すデータとして定義されるエス
ケープコード以外が復号されるまでの処理において、エ
スケープコードを一つでも復号した時、エスケープコー
ド以外を復号した直前の文脈においてのみ、文脈新規登
録過程および符号木新規登録過程での各新規登録処理を
行なうことができる。
【0070】また、図1を用いて説明した構成をもつ、
請求項1記載の本発明のデータ圧縮方法を実施するため
の装置、すなわち入力データを過去に出現した履歴に応
じて符号化して圧縮するデータ圧縮装置においては、前
置データ保持手段100が、入力データの直前までに入
力されたn個の入力データからなる文脈を保持し、履歴
保持手段101が、入力データと文脈との組み合わせを
保持し、符号木保持手段102が、文脈毎に独立した符
号木を保持する。
【0071】そして、符号木決定手段103が、前置デ
ータ保持手段100に保持されている直前までの入力デ
ータからデータの符号木を決定し、符号出力手段104
が、符号木決定手段103で選択した符号木の頂点を意
味するルートからデータが格納されているリーフに沿っ
て途中に位置する分岐点としてのノードからの分岐に従
って固有のデータを出力する。
【0072】さらに、符号長変更手段105が、符号化
したリーフと他のリーフあるいはノードとを組み替え、
前置データ更新手段106が、データを前置データ保持
手段100に登録することができる(請求項9)。次
に、図2を用いて説明した構成をもつ、請求項2に記載
の本発明のデータ圧縮方法を実施するための装置、すな
わち入力データを過去に出現した履歴に応じて符号化し
て圧縮するデータ圧縮装置においては、前置データ保持
手段100が、入力データの直前までに入力されたn個
の入力データからなる文脈を保持し、履歴保持手段10
1が、入力データと文脈との組み合わせを保持し、符号
木保持手段107が、データ未登録を示すデータとして
定義されるエスケープコードをあらかじめ登録した文脈
毎に独立した符号木を保持する。
【0073】そして、符号木決定手段103が、文脈と
入力データからデータの符号木を決定し、文脈判別手段
108が、符号木決定手段103で決定した符号木にデ
ータが登録されているか否かを判別し、エスケープコー
ド出力手段109が、符号木にデータが登録されていな
いときは符号木の頂点を意味するルートからエスケープ
コードのデータ格納点としてのリーフまでの途中に位置
する分岐点としてのノードからの分岐に従ってエスケー
プコードを出力する。
【0074】さらに、文脈変更手段110が、符号木に
データが登録されていないときは文脈の長さnを短く
し、符号出力手段111が、符号木にデータが登録され
ているときは符号木のルートからデータのリーフまでの
途中に位置するノードからの分岐に従ってデータの符号
を出力し、符号長変更手段105が、符号化したリーフ
と他のリーフあるいはノードとを組み換える。
【0075】そして、前置データ更新手段106が、デ
ータを前置データ保持手段100に登録し、制御手段1
16が、エスケープコードを符号化したときはデータの
符号化を行なうまで処理を繰り返す(以上、請求項1
0)。次に、図3を用いて説明した構成をもつ、請求項
3記載の本発明のデータ圧縮方法を実施するための装
置、すなわち入力データを過去に出現した履歴に応じて
符号化して圧縮するデータ圧縮装置においては、前置デ
ータ保持手段100が、入力データの直前までに入力さ
れたn個の入力データからなる文脈を保持し、履歴保持
手段101が、入力データと文脈との組み合わせを保持
し、符号木保持手段107が、データ未登録を示すデー
タとして定義されるエスケープコードを予め登録した文
脈毎に独立した符号木を保持する。
【0076】そして、符号木決定手段103が、文脈と
入力データからデータの符号木を決定し、文脈判別手段
108が、符号木決定手段103で決定した符号木にデ
ータが登録されているか否かを判別し、エスケープ出力
手段109が、符号木にデータが登録されていないとき
は符号木の頂点を意味するルートからエスケープコード
のデータ格納点としてのリーフまでの中に位置する分岐
点としてのノードからの分岐に従ってエスケープコード
を出力する。
【0077】さらに、履歴登録手段112が、符号木に
データが登録されていないときは履歴保持手段101に
データと文脈の組み合わせを登録し、符号登録手段11
3が、符号木にデータが登録されていないときは符号木
にデータを新規に登録し、文脈変更手段110が、符号
木にデータが登録されていないときは文脈の長さnを短
くし、符号出力手段111が、符号木にデータが登録さ
れているときは符号木のルートからデータのリーフまで
の途中に位置するノードからの分岐に従ってデータの符
号を出力する。
【0078】そして、符号長変更手段105が、符号化
したリーフと他のリーフあるいはノードとを組み換え、
前置データ更新手段106が、データを前置データ保持
手段100に登録し、制御手段116が、エスケープコ
ードを符号化したときはデータの符号化を行なうまで処
理を繰り返す(以上、請求項11)。次に、図4を用い
て説明した構成をもつ、請求項4に記載の本発明のデー
タ圧縮方法を実施するための装置、すなわち入力データ
を過去に出現した履歴に応じて符号化して圧縮するデー
タ圧縮装置においては、前置データ保持手段100が、
入力データの直前までに入力されたn個の入力データか
らなる文脈を保持し、履歴保持手段101が、入力デー
タと文脈との組み合わせを保持し、符号木保持手段10
7が、データ未登録を示すデータとして定義されるエス
ケープコードをあらかじめ登録した文脈毎に独立した符
号木を保持する。
【0079】そして、符号木決定手段103が、文脈と
入力データからデータの符号木を決定し、文脈判別手段
108が、符号木決定手段103で決定した符号木にデ
ータが登録されているか否かを判別し、エスケープコー
ド出力手段109と符号木にデータが登録されていない
ときは符号木の頂点を意味するルートからエスケープコ
ードのデータ格納点としてのリーフまでの途中に位置す
る分岐点としてのノードからの分岐に従ってエスケープ
コードを出力する。
【0080】さらに、文脈変更手段110が、符号木に
データが登録されていないときは文脈の長さnを短く
し、エスケープ符号出力手段111が、符号木にデータ
が登録されているときは符号木のルートからデータのリ
ーフまでの途中に位置するノードからの分岐にしたがっ
てデータの符号を出力する。そして、履歴登録手段11
4が、履歴保持手段101にデータと文脈の組み合わせ
を登録し、符号登録手段115が、符号木にデータを新
規に登録し、符号長変更手段105が、符号化したリー
フと他のリーフあるいはノードとを組み換え、前置デー
タ更新手段106が、データを前置データ保持手段10
0に登録する。
【0081】さらに、制御手段116が、データの符号
化時に一度でもエスケープコードを符号化したときは、
データの符号化の直前の文脈とデータとの組み合わせを
履歴登録手段114で履歴保持手段101に登録し、デ
ータの符号化の直前に符号化したエスケープコードを持
つ符号木に符号登録手段115でデータを新規に登録す
る(以上、請求項12)。
【0082】一方、図5を用いて説明した構成をもつ、
請求項5に記載の本発明のデータ復元方法を実施するた
めの装置、すなわち過去に出現した履歴に応じて符号化
した符号を復号するデータ復元装置においては、前置デ
ータ保持手段200が、過去に復号したn個のデータを
保持し、履歴保持手段201が、復号したデータと文脈
との組み合わせを保持し、符号木保持手段202が、文
脈毎に独立した符号木を保持する。
【0083】そして、符号木決定手段203が、前置デ
ータ保持手段200に保持されている文脈からデータを
復号するための符号木を決定し、復号手段204が、符
号に従って符号木決定手段203で選択した符号木の頂
点を意味するルートから分岐点としてのノードを走査し
て到達したデータ格納点としてのリーフに格納されてい
るデータを出力する。
【0084】さらに、符号長変更手段205が、復号し
たリーフと他のリーフあるいはノードとを組み替え、前
置データ更新手段206が、復号したデータを前置デー
タ保持手段200に登録する(以上、請求項13)。次
に、図6を用いて説明した構成をもつ、請求項6に記載
の本発明のデータ復元方法を実施するための装置、すな
わち過去に出現した履歴に応じて符号化した符号を復号
するデータ復元装置においては、前置データ保持手段2
00が、過去に復号したn個のデータを保持し、履歴保
持手段201が、復号したデータと文脈との組み合わせ
を保持し、符号木保持手段207が、データ未登録を示
すデータとして定義されるエスケープコードをあらかじ
め登録した符号木を保持する。
【0085】そして、符号木決定手段203が、前置デ
ータ保持手段200に保持されている文脈からデータを
復号するための符号木を決定し、復号手段204が、符
号に従って符号木決定手段203で選択した符号木の頂
点を意味するルートから分岐点としてのノードを走査し
て到達したデータ格納点としてのリーフに格納されてい
るデータを出力する。
【0086】さらに、符号長変更手段205が、復号し
たリーフと他のリーフあるいはノードとを組み替え、文
脈変更手段208が、出力したデータがエスケープコー
ドであったときデータを棄却し文脈を短くし、前置デー
タ更新手段206が、復号したデータを前置データ保持
手段200に登録する。そして、制御手段213が、エ
スケープコードを復号した時は文脈変更手段208で文
脈を再設定し、エスケープコード以外が復号されるまで
処理を繰り返す(以上、請求項14)。
【0087】次に、図7を用いて説明した構成をもつ、
請求項7に記載の本発明のデータ復元方法を実施するた
めの装置、すなわち過去に出現した履歴に応じて符号化
した符号を復号するデータ復元装置においては、前置デ
ータ保持手段200が、過去に復号したn個のデータを
保持し、履歴保持手段201が、復号したデータと文脈
との組み合わせを保持し、符号木保持手段207が、エ
スケープコードをあらかじめ登録した符号木を保持す
る。
【0088】そして、符号木決定手段203が、前置デ
ータ保持手段200に保持されている文脈からデータを
復号するための符号木を決定し、復号手段204が、符
号に従って符号木決定手段203で選択した符号木の頂
点を意味するルートから分岐点としてのノードを走査し
て到達したデータ格納点としてのリーフに格納されてい
るデータを出力する。
【0089】さらに、符号長変更手段205が、復号し
たリーフと他のリーフあるいはノードとを組み替え、文
脈変更手段208が、出力したデータがエスケープコー
ドであったとき、データを棄却し文脈を短くし、前置デ
ータ更新手段206が、復号したデータを前置データ保
持手段200に登録する。そして、履歴登録手段209
が、データの復号処理でエスケープコードを復号したと
きの全ての文脈と復号したデータとを履歴保持手段20
1に登録し、符号登録手段210が、データの復号処理
でエスケープコードを復号した時の文脈に対応した全て
の符号木にデータの符号を登録し、制御手段213が、
エスケープコードを復号した時は文脈変更手段208で
文脈を再設定し、エスケープコード以外が復号されるま
で処理を繰り返す(以上、請求項15)。
【0090】次に、図8を用いて説明した構成をもつ、
請求項8に記載の本発明のデータ復元方法を実施するた
めの装置、すなわち過去に出現した履歴に応じて符号化
した符号を復号するデータ復元装置においては、前置デ
ータ保持手段200が、過去に復号したn個のデータを
保持し、履歴保持手段201が、復号したデータと文脈
との組み合わせを保持し、符号木保持手段207が、デ
ータ未登録を示すデータとして定義されるエスケープコ
ードをあらかじめ登録した符号木を保持する。
【0091】そして、符号木決定手段203が、前置デ
ータ保持手段200に保持されている文脈からデータを
復号するための符号木を決定し、復号手段204が、符
号に従って符号木決定手段203で選択した符号木の頂
点を意味するルートから分岐点としてのノードを走査し
て到達したデータ格納点としてのリーフに格納されてい
るデータを出力する。
【0092】さらに、符号長変更手段205が、復号し
たリーフと他のリーフあるいはノードとを組み替え、文
脈変更手段208が、出力したデータがエスケープコー
ドであったときデータを棄却し文脈を短くする。そし
て、前置データ更新手段206が、復号したデータを前
置データ保持手段200に登録し、履歴登録手段211
が、データの復号処理でエスケープコードを最後に復号
した時の文脈と復号したデータとを履歴保持手段201
に登録し、符号登録手段212が、データの復号処理で
最後にエスケープコードを復号した時の文脈に対応した
符号木にデータの符号を登録する。
【0093】さらに、制御手段213が、エスケープコ
ードを復号した時は文脈変更手段208で文脈を再設定
し、エスケープコード以外が復号されるまで処理を繰り
返す(以上、請求項16)。
【0094】
【発明の実施の形態】(a)本発明に関連する技術1の
説明 図15は本発明に関連する技術1としてのデータ圧縮装
置とデータ復元装置の構成例を示すブロック図であり、
この図15において、1は入力された文字を過去に出現
した履歴に応じて符号化して圧縮するデータ圧縮装置で
あり、2はデータ圧縮装置1で符号化された文字を復元
するデータ復元装置である。
【0095】さらに、データ圧縮装置1は、入力された
文字列データの文脈を収集して文脈木を作成する文脈収
集過程11と、この文脈収集過程11で得られた文脈
(文脈木)に対応してスプレイ符号を対応させた符号木
を、入力データの文字列に応じてスプレイ符号化しなが
ら作成・更新するスプレイ符号化過程12をとるように
なっている。
【0096】一方、データ復元装置2は、このデータ圧
縮装置1で符号化された復元データの文脈に対応してス
プレイ符号を対応させた符号木を、復元データの文字列
に応じてスプレイ符号化しながら作成・更新するスプレ
イ符号化過程21と、復元データとしての文字列につて
の文脈を収集(文脈木を作成)する文脈収集過程22を
とるようになっている。
【0097】なお、以下では、データ圧縮装置1を符号
化側、データ復元装置2を復元側として説明する。 (1)符号化側の説明 図16(a),(b)は、文脈収集過程11において作
成される文脈木の一例を示す図であり、図16(a)は
文脈木がハッシュ法を用いて短時間で探索できるように
文字列をリスト構造の格納形式でメモリに格納した例を
示す図、図16(b)は文字列を格納した木構造の辞書
(リスト)を親子関係の繋がりで示した図である。
【0098】ここで、図16(a)中のアドレスは16
進表示であり、この図16(a)の例では、文脈木の最
大サイズは4Kノード(4KW)である。このように、
全ての文字を予め登録しておけば、ルートに繋がる第1
階層の兄弟ノードの位置は予め分かるので、探索時にリ
ストを操作する必要はなく、直接アクセスすることがで
きる。
【0099】一方、第2階層以降は、子ノードと右兄弟
ノードのアドレスを格納しておき、探索時にリスト形式
で格納文字を照合しながら一致するまで、リストを操作
してアクセスする。また、文脈の木は初期化されたと
き、アドレス100まで設定されるが、このとき第1階
層のアドレス100には、End Of File(EOF)符号
を登録しておき、アドレス101以降のメモリを新規登
録に使用する。
【0100】次に、図17は、上述のスプレイ符号化過
程12において作成される符号木の一例を示す図であ
る。符号木は、基本的に従来のSplay-Tree符号化と同様
に、初期化時に図17のように設定される。そして、図
16(b)に対応して、最大サイズが4Kノード(4K
W)までの場合、符号の木のノードは、内部節点(子ノ
ードが付いている)と外部節点(リーフ、子ノードがな
い各符号の終端)の2つに分類される。
【0101】また、スプレイ符号化では、符号の木をア
クセスするために、図18に示すようなUp,Lef
t,Rightという3つの配列を用いる。ここで、U
p配列は、各ノードから親ノードへのアドレスを格納
し、Left配列は、各ノードから左の子ノードへのア
ドレスを格納し、Right配列は、各ノードから右の
子ノードへのアドレスを格納するものである。
【0102】また、Up配列では、内部節点を最初の4
KW(アドレス(16進)000〜FFF)に格納し、
外部節点を残りの4KW(アドレス(16進)1000
〜1FFF)に格納するようになっている。このように
することで、文脈木の各ノードに対する符号を、符号木
のアドレス=文脈木のノードポインタ(番号)+4K、
で対応付けることができるようになる。
【0103】なお、各配列のビット幅は、Up配列が1
3ビット、Left,Right配列が12ビットとな
る。次に、上述のような構成をもつ符号木の木の更新の
基本操作について、図19(a),(b)を用いて説明
する。図19(a)はスプレイ符号更新の基本操作を示
す図であるが、この図19(a)に示すように、文字A
がアクセスされたとき、ノードAと2段上のノードAが
付いている枝と反対方向の枝のノードCとを入れ換え
る。
【0104】そして、文字A〜Eまでの符号に対して、
文字Cがアクセスされた場合には、例えば図19(b)
に示すように、符号の木を組み換えるようになってい
る。すなわち、上述した基本操作を2回繰り返すことに
よって符号木の木の更新を行なう。この場合、2回目の
基本操作は1回目に更新したノードの親ノードの長さを
更新する。
【0105】これにより、符号の木の深さが深くなって
も、この基本操作を繰り返すことによって、ルートから
アクセスされたノードC(符号0110)までの長さを
1/2(符号10)にすることができるので、ルートか
らアクセスされたノードまでの符号木を動的に組み換え
て、符号表を入力データに適応させることができる。す
なわち、スプレイ符号の符号更新は線型リストの Move-
To-Front操作を Binary-Treeで行なったようなものであ
る。
【0106】さらに、上述のような文脈収集過程11に
おける文脈木の作成およびスプレイ符号化過程12の符
号木の更新・作成の処理を、図20のフローチャートに
おける処理ステップE1〜E31を参照しながら詳述す
る。なお、入力文字をK(Kは任意の文字)とし、文字
Kが入力される直前に入力された文字をP(Pは任意の
文字)とする。
【0107】まず、文脈木と符号木および直前文字Pを
初期化する(ステップE1)。そして、既に入力された
全文字が入力符号化されているかをチェックし(ステッ
プE2)、入力文字が残っている場合、文字Kの入力
と、文字列の長さLの0へのセットとを行なう(ステッ
プE3)。さらに、文脈木の直前文字Pの下に子ノード
があるかをチェックし(ステップE5)、直前文字Pの
下に子ノードがなければ、入力文字Kの0次符号を出力
し(ステップE6)、文脈木の直前文字Pの下に入力文
字Kを子ノードとして登録する(ステップE7)。
【0108】一方、符号木の方では、直前文字Pの下
に、文字Kとエスケープコードを登録するノードを作成
して文字Kを登録する(ステップE8)。なお、このノ
ード作成のアルゴリズムの一例を図30(a),(b)
に示す。さらに、直前文字を入力文字Kに変更し(ステ
ップE16)、直前文字列の長さL’が最大文字列長L
maxに等しいかをチェックする(ステップE24)。
【0109】そして、直前文字列長L’が最大文字列長
Lmaxに等しくなければ、直前文字列が1次符号で符
号化され出力されているかをチェックする(ステップE
25)。ここで、直前文字列が1次符号で符号化されて
いなければ、直前文字列長L’に注目文字列長Lを移し
(ステップE28)、文字Kが符号化済かをチェックし
(ステップE9)、符号化済であれば、上述のステップ
E2からの処理を繰り返し(ステップE9のYESルー
ト)、符号化済でなければ、上述のステップE3からの
処理を繰り返す(ステップE9のNOルート)。
【0110】ところで、上述のステップE10におい
て、子ノードに登録されている文字が入力文字Kと一致
した場合は、文字列の長さLを1増やし(ステップE1
7)、この文字列長Lが、予め設定した最大符号長Lm
axと等しいかをチェックする(ステップE18)。等
しくない場合は、入力データの全文字が符号化されたか
をチェックし(ステップE19)、まだ符号化されてい
ない文字があれば、今までの入力文字を直前文字Pに移
し(ステップE20)、さらに1文字Kを入力して(ス
テップE21)上述のステップE10の処理へ戻り、再
び子ノードに登録されている文字が文字Kと一致するか
をチェックする。
【0111】一致しなければ、今度は文字列の長さLが
0かどうかをチェックし(ステップE11)、YES、
すなわち、直前文字Pの下に子ノードはあるが、該当す
る文字Kがまだ付いていないなら、直前文字Pの下のエ
スケープコードを出力した後、文字Kの0次符号を出力
する(ステップE12)。さらに、文字Kを、文脈木の
直前文字Pの下の子ノードの兄弟ノードとして登録し
(ステップE13)、符号木の直前文字Pの下のエスケ
ープコードをエスケープコードと文字Kの符号とに分割
して、文字Kの符号を追加し(ステップE14)、符号
木のエスケープコードと0次符号Kの符号長をスプレイ
符号として更新する(ステップE15)。
【0112】以上のようにして、所定の最大文字列長に
達するまで符号化文字列の伸長文字列を登録することが
できるようになっている。その後、上述したステップE
16,ステップE24を経て、再び直前文字列を1次符
号で出力したかをチェックする(ステップE25)。即
ち、直前文字列が1次符号で符号化され、出力されてい
れば、文脈木に直前文字列に符号化文字(列)の先頭文
字を付加した延長文字列を登録し(ステップE26)、
符号木に、符号化した延長文字列の符号を登録し(ステ
ップE27)、上述のステップE28からの処理を繰り
返す。
【0113】なお、この登録は、直前文字の符号を分岐
させ、文字Kを付加した文字列の1次符号を追加するよ
うに行なう。文字列の分岐は、エスケープコードを符号
化した文字列の符号とみて分岐させ、元の文字列と文字
Kを付加した文字列の符号とを作る。このようにして、
辞書登録文字列として、符号化済の直前文字から登録
し、この直前文字から続く文字列を符号化している。
【0114】さらに、上述のステップE18において、
文字列長Lが、予め設定した最大符号長Lmaxと等し
い場合、または、ステップE11において、文字列長L
が0に等しくない場合は、文脈木の文字(列)の参照番
号に対応する1次符号を出力し(ステップE22)、符
号木が出力した1次符号の符号長をスプレイ符号として
更新(ステップE23)した後、上述のステップE24
からの処理を行なう。
【0115】ここで、以上の閉ループ処理は、直前文字
Pと入力文字Kとの組み合わせが、既に文脈木に登録さ
れている時に、登録文字数(文字列長)を伸長して、文
字列単位に登録を行なう処理を示している。また、上述
のステップE2において、入力された全ての文字が符号
化されている場合は、文脈木の直前文字Pの下に子ノー
ドがあるかチェックし(ステップE29)、子ノードが
あれば直前文字Pの下のエスケープコードを出力し(ス
テップE29のNOルートからステップE30)、En
d Of Fileを表すEOFの0次符号を出力して
(ステップE31)処理を終了する(ステップE29の
NOルートからステップE31)。
【0116】子ノードがなければ、そのままEOFの0
次符号を出力して処理を終了する。以上のような処理を
行なうことで、入力データとしての文字列を過去に出現
した履歴に応じて符号化して圧縮するデータ圧縮方法に
おいて、辞書に入力データの文字列を収集し番号を付け
て登録するとともに、各文字列に対応してスプレイ符号
の符号化及び更新を施している。
【0117】ここで、上述の入力文字Kをアルファベッ
トa,b,cのいずれかに限り、文字「abc abc
ab b」が入力された場合を例にとり、文脈木と符
号木の更新・作成について、図21〜図28を用いてさ
らに詳述する。まず、図21(a),(b)に示すよう
に、文脈木と符号木に、予め文字a,b,cと入力デー
タを全て符号化した後に出力する終端符号EOFとを、
番号を付することによりa1,b2,c3,EOF4として
登録しておく。
【0118】このように文脈木を初期化することで、最
初に登録してある文字a,b,cのいずれかが直前文字
となり、直前文字から続く文脈がないとき独立の単独の
参照番号も兼ねることになる。以下の説明では、文字c
を最初の直前文字と仮定しておく。一方、図21(b)
に示すように、符号木は、ルート(root)からノー
ドを左下に下がるときには、登録した文字に符号“0”
を割り当て、ノードを右下に下がるときには、登録した
文字に符号“1”を割り当てる2進木であり、これによ
り符号化時は、対応する文字の参照番号のノードからル
ートまでの辿る経路をスタックして、その経路を逆転さ
せ、左下か右下かによって符号“0”,“1”を割り振
ることによって、その文字の参照番号に対応する符号語
が得られるようになっている。
【0119】すなわち、「a1,b2,c3」の3文字の
0次符号は、それぞれ「00 0110 11」とな
る。そして、上述の図21(a),(b)に示す状態か
ら、まず文字列「abc」が入力されると、予め登録し
ておいた「c」(c3)を直前文字と仮定するので、図
22(a)に示すように、文脈木の「c」(c3)の下
位に新たにノードを作成し、文字列「abc」の内、最
初の1文字「a5」と未登録を表すエスケープコード
(ESC6)とを登録する。
【0120】一方、符号木では、図22(b)に示すよ
うに、「a」が、既に登録されているので、「a」が登
録されているノードと直前文字である「c」の上位ノー
ドとを組み替え、この「c」を新たにルートとおいて
(1次符号化)、「a」とエスケープコード(ESC)
を登録する。さらに、文字列「abc」の内、次のb,
cについても上述の処理を行なうことにより、bが入力
されたときの文脈木と符号木は、それぞれ図23
(a),(b)に示すようになり、cが入力されたとき
の文脈木と符号木は図24(a),(b)に示すように
なる。
【0121】この処理は、図20にて上述した処理ステ
ップにおいて、ステップE5のNOルート,ステップE
24のYESルート,ステップE25のNOルートを経
由する閉ループ処理に相当するものである。すなわち、
文脈木では、直前文字の下位に子ノードが存在しない場
合に、この直前文字の下位に入力文字とエスケープコー
ドを登録するノードを新たに作成して登録を行なう。
【0122】一方、符号木では、過去に登録されている
文字と同じ文字が再び入力された場合は、過去に登録さ
れている文字のノードを、入力された文字の直前文字が
登録されているノードの上位ノードと組み替えて、過去
に登録されている文字のノードを上位に移動し、ルート
からの距離を1/2にして符号長を短くするのである。
【0123】さらに、続いて文字列「abc」が入力さ
れると、最初に入力された文字列「abc」の最後の
「c」を直前文字として文脈木の「c9」の下位に、文
字列「abc」の内の1文字「a」のみを登録しようと
するが、図24(a)に示すように、文脈木には、既に
「c3」の下位に「a5」が登録されているので、図25
(a)に示すように、登録する文字を1文字「a」から
2文字「ab」へ1文字伸長して「a5」の下位に「b
11」を登録する。
【0124】この時、符号木では、図25(b)に示す
ように、「c」の下位に「a」とともに登録されている
エスケープコード(ESC)のノードを分岐して新たに
ノードを作成し、文脈木で1文字伸長して登録した「a
b」の登録を行なう。続いて、文字列「abc」の内、
「b」を文脈木に登録しようとした場合も、図25
(a)に示すように、既に「a1」の下位に「b7」が登
録されているので、図26(a)に示すように、登録す
る文字を1文字「b」から2文字「bc」へ1文字伸長
して「b7」の下位に「c12」を登録する。
【0125】この時、符号木では、図26(b)に示す
ように、「a」の下位に「b」とともに登録されていた
エスケープコード(ESC)のノードを分岐して新たに
ノードを作成し、文脈木で1文字伸長して登録した「b
c」の登録を行なう。そして、次の文字列「abc」の
内、最後の「c」を登録する場合も、上述の処理を行な
うと、文脈木及び符号木は、それぞれ図27(a),
(b)に示す状態となる(ここまでで、「abc ab
c」が入力済となる)。
【0126】そして、さらに文字列「ab」が入力され
ると文脈木では、まず、直前文字の「c」の下位に1文
字「a」を登録しようとするが、上述したように、「c
9」の下位に既に「a5」が登録されているので、登録文
字数を1文字伸長して「ab」として、「a5」の下位
に「b」を登録しようとする。しかし、図27(a)に
示すように、「a5」の下位にも既に「b11」が登録さ
れているので、図28(a)に示すように、さらに、登
録文字数を1文字伸長して「abb」として、「b11
の下位に「b」を登録する。
【0127】この時、符号木では、図28(b)に示す
ように、「ab」が登録されているノードを分岐して
「abb」を登録する。この処理は、図20にて上述し
た処理ステップのステップE5のYESルート,ステッ
プE10のYESルート,ステップE25のYESルー
トを経由する閉ループ処理に相当する。
【0128】すなわち、文字列が入力されたとき、直前
文字と入力された文字列中の1文字との組み合わせが、
既に文脈木に登録されている場合、登録する文字数を1
文字伸長して登録されていない1文字のみ登録する。そ
して、この時、符号木では、直前文字とともに登録され
ているエスケープコード(ESC)のノードを分岐させ
て新たにノードを作成し、この文字列を登録する。
【0129】以上のように、文字「abc abc a
b b」の入力が終了すると、各文字に割り当てられる
符号は図29に示すようになる。この図29に示すよう
に、最初に入力された文字「abc」は、それぞれ1文
字単独で符号化され、対応する符号は、それぞれ00,
01,10の2ビットとなる。
【0130】そして、次に入力された文字列「abc」
に対応する符号語は、直前文字との関係からそれぞれ
0,0,0の1ビットとなる。さらに、次に入力された
「ab」2文字の文字列に符号が割り当てられるが、こ
の図29に示すように、2文字の文字列が2ビットのみ
の符号語で表されている。
【0131】そして最後に入力された文字「b」は、今
までの直前文字の繋がりに該当する文字がない場合で、
ESCと1文字単独の符号語の組み合わせの3ビットで
表されている。以上のように、関連技術1のデータ圧縮
方法によれば、圧縮する文字(列)を、木構造の文脈木
に番号を付けて登録し、この文脈木に対応した符号木を
スプレイ符号化を施しながら作成・更新することによ
り、出現する文字の出現頻度を求めて確率モデルを構築
し、各文字に符号を割り当てるという2段階の処理を同
時に行なうので、データの圧縮処理の速度が大幅に向上
するという効果がある。
【0132】また、上述の確率モデルは、文字の入力毎
に符号木のノードが作成・更新(スプレイ処理)される
ことによって構築されるので、文字の入力毎に既に構築
されている確率モデルを再構築するという膨大な演算処
理を行なう必要が無く、これにより圧縮処理の速度がさ
らに向上する効果がある。さらに、関連技術1のデータ
圧縮方法によれば、過去に圧縮(符号化)した文字と同
じ文字が出現する毎に、過去に登録してあった同じ文字
の符号木のノードを上位のノードと組み替えて(スプレ
イ処理)符号長を1/2にすることにより、同じ文字
(列)が繰り返し出現するほど、その文字(列)の符号
は少ないビット数で表せるので、圧縮効果が大幅に向上
する効果がある。
【0133】また、関連技術1のデータ圧縮方法によれ
ば、上述の文字列「ab」を符号化した場合のように、
文字を1文字単位に符号化するのではなく、複数文字単
位の文字列として符号化することにより、可変長符号化
処理が高速化できるとともに、符号化単位を文字列とす
るので、情報源が拡大し、スプレイ符号化の符号化効率
が大幅に向上するという効果もある。
【0134】(2)復元側の説明 次に、上述のように、符号化(圧縮)されたデータを入
力符号として、図17にて上述したデータ復元装置2内
の文脈収集過程21とスプレイ符号化過程22が、デー
タを復元する処理について、図31のフローチャートに
おける処理ステップD1〜D24を参照しながら説明す
る。
【0135】なお、このデータを復元する処理は、基本
的に符号化側の説明にて上述した符号化の処理と逆の処
理を行なうようにすればよい。すなわち、まず、文脈木
と符号木とを初期化し、直前文字Pを0に初期化する
(ステップD1)。列長Lを0とし(ステップD2)、
文脈木の直前文字の下位に子ノードがあるかをチェック
する(ステップD3)。
【0136】ここで、子ノードがない場合においては、
入力符号を0次符号として文字Kを復号し(ステップD
3のNOルートからステップD4)、この復号した文字
KがEOF符号であるかをチェックする(ステップD
5)。もし、この復号した文字Kが、EOF符号でなけ
れば、NOルートをとり、復号した文字Kを出力し(ス
テップD6)、文脈木に文字Kを登録する(ステップD
7)。なお、これは図17にて上述した符号化時の処理
ステップE7と同様にして行なう。
【0137】さらに、符号化時のステップE8と同様に
して、符号木の直前文字Pの下に文字Kとエスケープコ
ードのノードを作り(ステップD8)、直前文字Pを文
字Kとおく(ステップD17)。そして、以降の処理ス
テップD20〜D23は、符号化時の処理ステップE2
0〜E23と同様の処理ステップをとり、直前文字列長
L’を注目文字列長Lで置き換えて(ステップD2
4)、上述の処理ステップD2に戻る。
【0138】ところで、上述の処理ステップD3におい
て、文脈木の直前文字Pの下位に子ノードが存在する場
合は、入力された符号を符号木より1次符号とみなして
復号して、文脈木の文字(列)の参照番号を得る(ステ
ップD3のYESルートからステップD9)。さらに、
復号した参照番号がエスケープコードであるかをチェッ
クし(ステップD10)、エスケープコードであれば、
YESルートをとり、入力文字を0次符号として次の符
号を復号して、文字Kを得る(ステップD11)。
【0139】そして、上述のステップD5と同様に、復
号した文字KがEOF符号であるかをチェックし(ステ
ップD12)、復号した文字KがEOF符号でなけれ
ば、NOルートをとり、文字Kを出力する(ステップD
13)。さらに、符号化時の処理ステップE13〜15
と同様にして、文脈木に文字Kを登録し(ステップD1
4)、直前文字Pの下に文字Kを追加し(ステップD1
5)、符号木のエスケープコードと0次符号Kの符号長
をスプレイ符号として更新する(ステップD16)。
【0140】そして、以降は上述のステップD17から
の処理を行なう。このようにして、全ての一文字にスプ
レイ符号を割り当てておき、直前文字から繋がる文字列
が既に収集した辞書中の文字列中にない一文字のスプレ
イ符号を復号したときに、符号を更新し、上述の直前文
字からの繋がる復号した文字を文脈木に登録することが
できる。
【0141】また、上述の処理ステップD10におい
て、復号した参照番号がエスケープコードでなければ、
NOルートをとり、文脈木の参照番号に対応する文字列
を復元して出力し(ステップD18)、文字(列)の最
終文字を直前文字Pに置き換える(ステップD19)。
そして、以降は、上述のステップD20からの処理を行
なう。
【0142】このようにして、辞書登録文字列として、
復号化済の直前文字から登録し、この直前文字から続く
文字列を復号することができる。また、上述の処理ステ
ップD4またはステップD12において、復号した文字
KがEOF符号であれば、YESルートをとり、復元処
理を終了する。以上のようにして、辞書としての文脈木
に復元したデータの文字列を収集し番号を付けて登録す
るとともに、復元各文字列に対応してスプレイ符号を対
応させておき、辞書番号に対応する文字列をスプレイ符
号で復号化及び更新を行ない、また、所定の最大文字列
長に達するまで符号化文字列の伸長文字列を登録し、こ
の伸長文字列に対応するスプレイ符号を登録する。
【0143】これにより、データ圧縮装置1の文脈収集
過程11およびスプレイ符号化過程12により圧縮・符
号化された文字Kを復元している。このように、関連技
術1のデータ復元方法によれば、文脈木に復元した文字
(列)に番号を付けて登録するとともに、この文脈木に
対応した符号表としての符号木を構築することにより、
符号化された文字の符号と一致する符号を符号表におい
て検索し、一致した符号に対応する文字を復号文字とし
て出力するという2段階の処理を同時に行なうので、デ
ータの復元処理の速度が大幅に向上するという効果があ
る。
【0144】また、上述の確率モデルは、文字の復元毎
に符号木のノードが作成・更新(スプレイ処理)される
ことによって構築されるので、文字の復元毎に、既に構
築されている符号表(確率モデル)を再構築するという
膨大な演算処理を行なう必要が無くなり、これにより復
元処理の速度がさらに向上する効果がある。さらに、関
連技術1のデータ復元方法によれば、過去に復号した符
号と同じ符号が出現する毎に、過去に登録してあった同
じ符号の符号木上のノードを上位のノードと組み替えて
(スプレイ処理)符号長を1/2にすることにより、同
じ符号が繰り返し出現するほどその符号は少ないビット
数で表せるので、同じ符号を繰り返し復号する場合、復
元処理の速度が大幅に向上する効果がある。
【0145】また、関連技術1のデータ復元方法によれ
ば、文字を1文字単位に復号するのではなく、複数文字
単位の文字列として復号することにより、スプレイ処理
が高速化できるとともに、復号単位を文字列とするの
で、復元できる情報源が拡大し、復元効率が大幅に向上
するという効果もある。なお、上述した例では、直前文
字から繋がる文字列を文脈として収集して符号化・復号
する方法について述べたが、必ずしも直前文字にこだわ
ることはなく2文字以上以前からの文脈を収集して符号
化・復号化してもよい。
【0146】また、上述した例では、動的に文脈を収集
してスプレイ処理する例を示したが、本発明によれば、
必ずしも動的である必要はなく、予め代表的なサンプル
から収集した静的な文脈を用いてスプレイ処理してもよ
い。さらに、上述した例では、入力された全てのデータ
を動的可変長符号化(スプレイ符号化)する場合につい
て述べたが、相当程度のデータを符号化した後に、スプ
レイ符号化の更新操作を止めて、静的な可変長符号化を
してもよい。この場合、符号化と復号化とで予め取決め
をしておき同期が取れればよい。
【0147】また、上述した例では、圧縮するデータを
文字あるいは文字列として説明したが、関連技術1のデ
ータ圧縮方法及びデータ復元方法は、他の画像データや
音声データなどあらゆるデータに対して適用できる。 (b)本発明の一実施形態の説明 図32は、本発明の一実施形態としてのデータ圧縮方法
及びデータ復元方法を実施するためのデータ圧縮装置及
びデータ復元装置の構成例を示すブロック図であるが、
この図32において、データ圧縮装置3は、入力された
データを過去に出現した履歴に応じて符号化して圧縮す
るものであり、データ復元装置4は、データ圧縮装置3
が符号化した符号を復号するものである。
【0148】以後、データ圧縮装置3を符号化側、デー
タ復元装置4を復元側として、以下に説明する。なお、
以下の説明中、文脈木および符号木は、項目(a)にて
前述した構成をもつものである。 (1)符号化側の説明 図33は、上述のデータ圧縮装置3の内部の構成例を示
すブロック図であり、この図33に示すように、100
A−1〜100A−n(nは自然数)は前置データ保持
部、101Aは文脈履歴保持部、102Aは符号木保持
部、103Aは符号木決定部、104Aは符号化部、1
05Aは符号木更新部、106Aは文脈更新部である。
【0149】ここで、前置データ保持部(前置データ保
持手段)100A−1〜100A−nは、入力されたデ
ータK(以下、事象Kということがある)の直前までに
入力されたn個のデータからなる文脈を保持するもので
ある。また、文脈履歴保持部(履歴保持手段)101A
は、入力されたデータKと文脈との組み合わせを保持す
るものであり、符号木保持部(符号木保持手段)102
Aは、文脈毎に独立した符号木を保持するものであり、
符号木決定部(符号木決定手段)103Aは、前置デー
タ保持部100A−1〜100A−nに保持されている
直前までのデータから符号木を決定するものである。
【0150】さらに、符号化部(符号出力手段)104
Aは、データKを符号化して、符号木決定部103Aで
選択した符号木のルート(符号木の頂点)からデータK
が格納されているリーフに沿って途中に位置するノード
(分岐点)からの分岐に従って符号化したデータKを出
力するものである。また、符号木更新部(符号長変更手
段)105Aは、符号化したリーフと他のリーフあるい
はノードとを組み替えるものであり、文脈更新部(前置
データ更新手段)106Aは、データKを前置データ保
持部100A−1〜100A−nに登録するものであ
る。
【0151】さらに、図34は上述の符号化部104A
の内部の構成例を示すブロック図であり、この図34に
示すように、上述のようにノードからの分岐に従って符
号化したデータKを出力するために、符号化部104A
には、上位ノード判別部41,ノード番号管理部(メモ
リ)42,位置判別部43,ラッチ44,スタック45
が設けられている。
【0152】ここで、上位ノード判別部41は、符号木
のルートのノード番号と文脈木のリーフのノード番号と
から上位ノードのノード番号を得るものであり、ノード
番号管理部(メモリ)42は、文脈木と符号木のノード
番号を管理するものであり、位置判別部43は、ノード
の分岐状態を判別するものである。さらに、ラッチ44
は、リーフのノード番号を一旦保持するものであり、ス
タック45は、位置判別部43から出力されるデータK
の符号を一旦保持して、終了信号を受信すると保持して
おいた符号を順次出力するものである。
【0153】上述の構成により、図33に示すデータ圧
縮装置では、前置データ保持部100A−1〜100A
−nが、入力データKの直前までに入力されたn個の入
力データからなる文脈を保持し、文脈履歴保持部101
Aが、入力データと文脈との組み合わせを保持し、符号
木保持部102Aが、文脈毎に独立した符号木を保持す
る。
【0154】さらに、符号木決定部103Aが、前置デ
ータ保持部100A−1〜100A−nに保持されてい
る直前までの入力データからデータの符号木を決定し、
符号化部104Aが、符号木決定部103Aで選択した
符号木のルート(頂点)からデータKが格納されている
リーフに沿って途中に位置するノードからの分岐に従っ
て“0”か“1”で表される符号(固有のデータ)を出
力する。
【0155】また、符号長変更手段としての符号木更新
部105Aが、符号化したリーフと他のリーフあるいは
ノードとを組み替え、前置データ更新部106Aが、デ
ータKを前置データ保持手段100A−1に登録する。
ここで、上述の動作について、図35に示すフローチャ
ートの処理ステップA1〜A6を参照しながら、さらに
詳述する。
【0156】まず、前置データ保持部100A−1〜1
00A−nに保持されている文脈文字列Pを初期化し
(ステップA1)、符号化するデータKを入力する(ス
テップA2)。符号木決定部103Aは前置データ保持
部100A−1〜100A−nに保持されている文脈の
履歴を保持している文脈履歴保持部101Aから文脈P
に対応した符号木を決定し、決定した符号木と文脈履歴
保持部101Aの情報から、データKが保持されている
リーフのノード番号(ID)と文脈Pのルートのノード
番号(ID)を符号化部104Aに送り、符号化部10
4Aは、文脈Pに対応した符号木内において、事象K
(データK)のリーフからルートへのノードの分岐に対
応した符号を出力する(ステップA3)。なお、この符
号化部104Aが行なう処理については、図36を用い
て後に詳述する。
【0157】そして、符号化部104Aにおいての符号
化後、符号木更新部105Aは、符号木の事象Kのリー
フを他のリーフあるいはノードと組み替え(ステップA
4)、元の符号木保持部102Aに格納することで符号
木の更新を行なう。なお、この符号木更新部105Aが
行なう処理については、図37を用いて後に詳述する。
【0158】さらに、文脈更新部106Aは、最も古い
データ(前置データ保持部100−nに保持されている
データ)を棄却し、入力データKを文脈として前置デー
タ保持部100A−1に登録することで、文脈文字列P
を更新する(ステップA5)。そして、全てのデータに
ついて符号化が終了したかをチェックし(ステップA
6)、終了していなければステップA2からの処理を繰
り返し、終了していれば符号化処理を終了する(ステッ
プA6のYESルート)。
【0159】なお、上述のノードの組み変え(ステップ
A4)と文脈更新(ステップA5)の処理は、どちらを
先にしてもよく、また、並列に処理してもよい。次に、
処理ステップA3で述べたように、図34にて上述した
構成をもつ符号化部104Aが行なう符号化処理につい
て、図36の処理ステップB1〜B8を参照しながら説
明する。
【0160】まず、スタック45(push−down
stack)を初期化し(ステップB1)、カレント
ノードLのアドレスポインタを、データKが格納されて
いる文脈Pの符号木内のリーフにセットする(ステップ
B2)。そして、上述のステップA3で送られてきた、
データKが保持されているリーフのノード番号(ID)
を、ラッチ44から位置判別部43に送り、位置判別部
43は、この受け取ったノード番号のノードが上位ノー
ドのどちらに位置するかの情報をノード番号管理部42
から手得し、この情報から受け取ったノードが上位ノー
ドの右手に位置するかを判別する(ステップB3)。
【0161】右手に位置する場合は“1”をスタック4
5にPush(出力)し(ステップB3のYESルート
からステップB4)、左手に位置する場合は、“0”を
スタック45にPush(出力)する(ステップB3の
NOルートからステップB5)。さらに、上述のステッ
プA3で送られてきた、もう1つのノード番号である文
脈Pのルートのノード番号(ID)を、上位ノード判別
部41に送り、上位ノード判別部41は、受け取ったノ
ード(あるいはリーフ)がルートであるか否かを判別す
る(ステップB6)。
【0162】そして、ルートであった場合、終了信号を
出力し(ステップB6のYESルート)、ルートではな
かった場合、ノード番号(ID)管理部42にアクセス
し、このノード(あるいはリーフ)の上位のノード
(U)の番号を手得し、このノード(U)を新たにカレ
ントノードLとしてアドレスポインタを上位ノードに移
動させ、ステップB3からの処理を繰り返す(ステップ
B6のNOルートからステップB7)。
【0163】このようにして、アドレスポインタがルー
トに達するまで処理を繰り返すことで、スタック45に
は、リーフからルートへの“1”か“0”の数値で表さ
れる「道筋」が記憶される。そして、この「道筋」を、
逆に下位ビットから1ビットづつ出力(pop−up出
力)することで、ルートからリーフへの「道筋」が符号
として出力される(ステップB8)。
【0164】次に、処理ステップA4で前述したよう
に、符号木更新部105Aが、事象Kのリーフを他のリ
ーフあるいはノードと組み替える処理について、図37
の処理ステップC1〜C9を参照しながら詳述する。ま
ず、組み替えの対象となるノードZのアドレスポインタ
をリーフKにセットし(ステップC1)、ノードU0に
ノードZの上位ノードをセットする(ステップC2)。
【0165】そして、Kの上位ノードU0が符号木のル
ートかどうかを判別し(ステップC3)、ルートであれ
ば組み替えを終了するが(ステップC3のYESルート
からステップC9)、ルートでなければノードU1にノ
ードU0の上位ノードをセットし(ステップC3のNO
ルートからステップC4)、ノードU0がノードU0の
上位ノードU1に対してどちらかに位置しているかを判
別する(ステップC5)。
【0166】U0がU1の右手にある場合は、ノードX
にノードU1の左手に位置するノードをセットし(ステ
ップC5のYESルートからステップC6)、ノードZ
とノードXとを取り替える(ステップC8)。すなわ
ち、ノードU1の左手のノードとリーフKとを組み換え
る。一方、ノードU0がU1の左手にある場合は、ノー
ドXにノードU1の右手に位置するノードをセットし
(ステップC5のNOルートからステップC7)、ノー
ドZとノードXとを取り替える(ステップC8)。すな
わち、ノードU1の右手のノードとリーフKとを組み換
える。
【0167】さらに、ノードZのアドレスポインタをノ
ードU1にセットすると(ステップC9)、上述のステ
ップC2に戻り、ステップC3において、セットしたア
ドレスポインタの上位ノードがルート,すなわち、アド
レスポインタがルートの直下のノードと判別されるまで
処理を繰り返す。この処理を行なうことで、アクセスさ
れたリーフのルートからの距離(符号長)は1/2にな
る。
【0168】以上の処理を全ての入力文字について繰り
返すことにより、文字列を符号化することができる。こ
のように、本発明の一実施形態にかかるデータ圧縮方法
を実施するためのデータ圧縮装置によれば、符号化する
文字を、木構造の文脈木に番号を付けて登録し、この文
脈木に対応した符号木をスプレイ符号化を施しながら作
成・更新することにより、出現する文字の出現頻度を求
めて確率モデルを構築して各文字に符号を割り当て符号
表を作成し、この符号表から符号化する文字の符号を出
力するという2段階の処理を同時に行なうことができる
ので、圧縮処理の速度が大幅に向上するという効果があ
る。
【0169】また、上述のように、文字が入力されるご
とに符号木のノードの作成・更新(スプレイ処理)によ
り確率モデルを構築するので、文字が入力されるごとに
既に構築されている確率モデルを再構築するという膨大
な演算処理を省くことができるので、圧縮処理の速度が
さらに向上する効果がある。さらに、過去に圧縮(符号
化)した文字と同じ文字が出現する毎に、過去に登録し
てあった同じ文字の符号木のノードを上位のノードと組
み替えて符号長を1/2にする(スプレイ処理)ことに
より、同じ文字(列)が繰り返し出現するほど、その文
字(列)の符号は少ないビット数で表すことができるの
で、圧縮効果が大幅に向上する効果もある。
【0170】(2)復元側の説明 図38は、前述のデータ復元装置4の内部の構成例を示
すブロック図であり、この図38に示すように、200
A−1〜200A−n(nは自然数)は前置データ保持
部、201Aは文脈履歴保持部、202Aは符号木保持
部、203Aは符号木決定部、204Aは符号化部、2
05Aは符号木更新部、206Aは文脈更新部である。
【0171】ここで、前置データ保持部(前置データ保
持手段)200A−1〜200A−nは、過去に復号し
たn個のデータを保持するものであり、文脈履歴保持部
(履歴保持手段)201Aは、復号したシンボルと文脈
との組み合わせを保持するものであり、符号木保持部
(符号木保持手段)202Aは、文脈毎に独立した符号
木を保持するものである。
【0172】また、符号木決定部(符号木決定手段)2
03Aは、前置データ保持部200A−1〜200A−
nに保持されている文脈からシンボルを復号するための
符号木を決定するものであり、復号部(復号手段)20
4Aは、符号に従って符号木決定部203Aで選択した
符号木のルート(符号木の頂点)からノード(分岐点)
を走査して到達したリーフに格納されているシンボルを
出力するものである。
【0173】さらに、符号木更新部(符号長変更手段)
205Aは、復号したリーフと他のリーフあるいはノー
ドとを組み替えるものであり、文脈更新部(前置データ
更新手段)206Aは、復号したシンボルを前置データ
保持部200A−1〜200A−nに登録するものであ
る。また、図39は、上述の復号部204Aの内部の構
成例を示すブロック図であり、この図39に示すよう
に、符号に従って符号木決定部203Aで選択した符号
木のルートからノードを走査して到達したリーフに格納
されているシンボルを出力するために、復号部204A
には、ノード番号管理部(メモリ)42と,ラッチ44
と,下位ノード判別部46と,葉/節判別部47とが設
けられている。
【0174】ここで、ノード番号管理部(メモリ)42
は、符号化側の説明中、図34にて前述したものと同様
のものであり、文脈木と符号木のノード番号を管理する
ものである。また、下位ノード判別部46は、符号と符
号木のルートのノード番号およびノード番号管理部42
の情報から下位ノードのノード番号を得るものであり、
葉/節判別部47は、下位ノード判別部46からの情報
とノード番号管理部42とから下位ノードがリーフかノ
ードかを判別するものであり、ラッチ48は、ルートの
ノード番号を一旦保持するものである。
【0175】そして、上述の構成により、前置データ保
持部200A−1〜200A−nが、過去に復号したn
個の文脈(データ)を保持し、文脈履歴保持部201A
が復号したデータKと文脈との組み合わせを保持し、符
号木保持部202Aが、文脈毎に独立した符号木を保持
する。さらに、符号木決定部203Aが、前置データ保
持部200A−1〜200A−nに保持されている文脈
からデータKを復号するための符号木を決定し、復号部
204Aが、符号化されたデータKの符号に従って符号
木決定部203Aで選択した符号木のルート(頂点)か
らノード(分岐点)を走査して到達したリーフに格納さ
れているデータKを出力する。
【0176】また、符号長変更手段としての符号木更新
部205Aが、復号したリーフと他のリーフあるいはノ
ードとを組み替え、前置データ更新部206Aが、復号
したデータKを最新の文脈として前置データ保持部20
0A−1に登録する。以下、上述の処理について、図4
0に示すフローチャートの処理ステップF1〜F6を参
照しながら、さらに詳述する。
【0177】まず、前置データ保持部200A−1〜2
00A−nに保持されているn個の文脈文字列Pを初期
化し(ステップF1)、復号する事象(データ)Kを入
力する(ステップF2)。符号木決定部203Aは前置
データ保持部200A−1〜200A−nに保持されて
いる文脈の履歴を保持している文脈履歴保持部201A
から文脈Pに対応した符号木を決定し、決定した符号木
のルートのノード番号(ID)と、復号する事象Kの符
号とを復号部204Aに送り、復号部204Aは、決定
した符号木内において、送られてきた符号に応じて、ル
ートから事象Kが格納されているリーフへ走査して符号
を復号する(ステップF3)。なお、この復号部204
Aが行なう処理については、図41を用いて後に詳述す
る。
【0178】そして、復号後、符号木更新部205A
は、符号木の復号した事象Kのリーフを他のリーフある
いはノードと組み替え(ステップF4)、元の符号木保
持部202Aに格納することで符号木の更新を行なう。
なお、この符号木更新部205Aが行なうノードの組み
替え処理は、図37のフローチャートにて前述した符号
木更新部105Aが行なう処理ステップC1〜C9と同
様にして行なう。
【0179】さらに、文脈更新部206Aは、最も古い
データ(前置データ保持部200−nに保持されている
データ)を棄却し、復号した事象(データ)Kを文脈と
して前置データ保持部200−1に登録することで、文
脈文字列Pを更新する(ステップF5)。そして、全て
のデータについて復号が終了したかをチェックし(ステ
ップF6)、終了していなければステップF2からの処
理を繰り返し(ステップF6のNOルート)、そうでな
ければ復号処理を終了する(ステップF6のYESルー
ト)。
【0180】なお、この場合も符号化側と同様に、上述
のノードの組み変え(ステップF4)と文脈更新(ステ
ップF5)の処理は、どちらを先にしてもよく、また、
並列に処理してもよい。次に、処理ステップF3で述べ
たように、図39にて上述した構成をもつ復号部204
Aが行なう符号化処理について、図41に示すフローチ
ャートの処理ステップG1〜G7を参照しながら説明す
る。
【0181】まず、下位ノード判別部46は、符号木決
定部203Aから送られてきたルートのノード番号(I
D)をノードZにセットし(ステップG1)、ラッチ4
8を介して同じく符号木決定部203Aから送られてき
た、復号する事象Kの符号(1bit)をCにセットす
る(ステップG2)。そして、Cにセットした復号する
事象Kの符号が“1”に一致するかをチェックし(ステ
ップG3)、“1”である(Yesの)場合はノードZ
の右手にあるノードをノードZにセットし(ステップG
3のYESルートからステップG4)、“1”でない場
合(すなわち“0”の場合)はノードZの左手にあるノ
ードをノードZにセットする(ステップG3のNOルー
トからステップG5)。さらに、下位ノード判別部46
は、ノードZにセットしたノードのノード番号をもと
に、ノード番号管理部42からノードZのノード番号を
取得し、このノード番号を葉/節判別部47に送り、こ
の葉/節判別部47では、送られてきたノード番号をも
つノードZの位置情報をノード番号管理部42から手得
し、このノードZがノードであるかリーフであるかをチ
ェックする(ステップG6)。
【0182】ノードZがリーフでない場合(ステップG
6のNOルート)、処理はステップG2に戻り、復号す
る事象Kが格納されているリーフに到達するまで処理を
繰り返す。一方、ノードZがリーフである場合(ステッ
プG6のYESルート)、復号する事象Kが見つかった
ことになるので、葉/節判別部47は、ノード番号管理
部42にシンボル(事象)出力信号を送信し、この信号
を受信したノード番号管理部42が、このリーフに格納
されている事象K(シンボル)を出力するとともに(ス
テップG7)、復号処理の終了信号を出力する。
【0183】これにより、符号化側で作成された符号木
の“1”か“0”の数値で表される「道筋」を、事象K
が格納されているリーフまで辿ることにより符号化され
た事象Kを復号することができる。このように、本発明
の一実施形態にかかるデータ復元方法を実施するための
データ復元装置によれば、復号した文字を木構造の文脈
木に番号を付けて登録し、この文脈木に対応した符号木
をスプレイ処理を施しながら作成・更新することによ
り、復号する文字の符号と一致する符号を符号表から検
索し、その一致した符号に対応して登録されている文字
を復号文字として出力するという2段階の処理を同時に
行なうことができるので、データの復元処理の速度が大
幅に向上するという効果がある。
【0184】また、符号化側と同様に、文字が入力され
るごとに符号木のノードの作成・更新(スプレイ処理)
により構築するので、文字が入力されるごとに既に構築
されている確率モデルを再構築するという膨大な演算処
理を行なう必要がなくなり、これによりデータの復元処
理の速度がさらに向上する効果がある。さらに、これも
符号化側と同様に、過去に復号した符号と同じ符号が出
現する毎に、過去に登録してあった同じ符号の符号木の
ノードを上位のノードと組み替えて(スプレイ処理)符
号長を1/2にすることにより、同じ符号を繰り返し復
元するほど、その符号は少ないビット数で表すことがで
きるので、復元効果が大幅に向上する効果もある。 (b−1)一実施形態の第1の変形例の説明 (1)符号化側の説明 図42は、本発明の一実施形態の変形例としてのデータ
圧縮装置3の内部の構成を示すものであり、この図42
に示すように、本実施形態におけるデータ圧縮装置3の
内部には、一実施形態の説明中、図33にて前述した構
成に加えて、文脈判別部108A,文脈変更部110A
とが設けられており、また、図33にて前述した符号化
部104A,符号木保持部105Aの代わりに、それぞ
れ符号化部104A′,符号木保持部107Aが設けら
れている。
【0185】このため、この図42中、図33にて既述
の符号と同じ符号の構成部分の説明は省略し、図33と
は異なる構成部分についてのみ、以下に説明する。即
ち、符号化部104A′は符号出力手段およびエスケー
プコード出力手段として、符号木にシンボルが登録され
ていないときは符号木のルートからエスケープコードが
格納されているリーフまでの途中に位置するノードから
の分岐に従ってエスケープコードを出力し、符号木にシ
ンボルが登録されているときは符号木のルートからシン
ボルのリーフまでの途中に位置するノードからの分岐に
従ってシンボルの符号を出力するものである。
【0186】さらに、この符号化部104A′は制御手
段として、エスケープコードを符号化したときはデータ
の符号化を行なうまで処理を繰り返すようになってい
る。また、符号木保持部(符号木保持手段)107A
は、シンボルが未登録であることを示すエスケープコー
ド(ESC)をあらかじめ登録した文脈毎に独立した符
号木を保持するものであり、文脈判別部(文脈判別手
段)108Aは、符号木決定部103で決定した符号木
にシンボルが登録されているか否かを判別するものであ
り、文脈変更部(文脈変更手段)110Aは、符号木に
シンボルが登録されていないときに文脈の長さを短くす
るものである。
【0187】そして、このような図33とは異なる構成
により、図42に示すデータ圧縮装置3では、符号化部
104A′が、符号木にシンボルKが登録されていない
ときは符号木のルートからESCが格納されているリー
フまでの途中に位置するノードからの分岐に従ってES
Cの符号を出力し、符号木にシンボルKが登録されてい
るときは符号木のルートからシンボルKのリーフまでの
途中に位置するノードからの分岐に従ってシンボルKの
符号を出力する。
【0188】また、ESCを符号化したときはデータK
の符号化を行なうまで処理を繰り返す。さらに、符号木
保持部107Aが、シンボルが未登録であることを示す
エスケープコード(ESC)をあらかじめ登録した文脈
毎に独立した符号木を保持する。
【0189】以下、上述の処理について、図43に示す
フローチャートの処理ステップH1〜H11を参照しな
がら、さらに詳述する。まず、文脈変更部110Aが、
前置データ保持部200A−1〜200A−nに保持さ
れている全ての文脈から文脈文字列P0を初期化し(ス
テップH1)、この文脈文字列P0を文脈Pにセットし
ておき(ステップH2)、そして、符号化するデータ
(シンボル)Kを入力する(ステップH3)。
【0190】さらに、文脈変更部110Aは、文脈Pと
データKの情報を文脈履歴保持部101A及び符号木決
定手段103Aへ送り、文脈履歴保持部101Aでは、
文脈変更部110Aから送られてきた文脈Pの情報を、
文脈判別部108Aに送る。そして、文脈判別部108
Aは、受信した文脈Pの情報からこの文脈Pに事象Kが
登録されているか否かを判別する(ステップH4)。
【0191】ここで、文脈Pに事象Kが登録されている
場合は、文脈履歴保持部101Aが、符号化部104
A′にエスケープコード(ESC)の符号化を指示し、
符号化部104A′では、文脈Pに対応した符号木内に
おいて、エスケープコード(ESC)のリーフからルー
トへのノードの分岐に対応した符号を出力してエスケー
プコードの符号化を行なう(ステップH4のNOルート
からステップH5)。
【0192】さらに、符号化部104A′は、符号木決
定部103Aを通じて符号木更新部105Aに、符号木
の更新を指示し、符号木更新部105Aは、符号木のE
SCのリーフを他のリーフあるいはノードと取り替える
(ステップH6)。そして、文脈Pの次数(符号木の初
期状態が0次である)を1つ低次に移し(ステップH
7)、ステップH4に戻り、文脈Pに事象Kが登録され
ている(Yes)と判断されるまで処理を繰り返す。
【0193】一方、上述のステップH4で、文脈Pに事
象Kが登録されている(Yesの)場合は、文脈履歴保
持部101Aが、符号化部104A′に事象Kの符号化
を指示し、符号化部104A′では、文脈Pに対応した
符号木内において、事象Kのリーフからルートへのノー
ドの分岐に対応した符号を出力して符号化を行なう(ス
テップH4のYESルートからステップH8)。
【0194】そして、符号化部104A′は、符号木決
定部103Aを通じて符号木更新部105Aに、符号木
の更新を指示し、符号木更新部105Aは、符号木の事
象Kのリーフと他のリーフあるいはノードとを組み替え
る(ステップH9)。さらに、文脈更新部106Aが最
も古いデータ(前置データ保持部100−nに保持され
ているデータ)を棄却して入力データKの文脈を前置デ
ータ保持部100A−1に登録し、この情報から文脈変
更部110Aが文脈文字列P0の更新を行なう(ステッ
プH10)。
【0195】そして、全てのデータについて符号化が終
了したかをチェックし(ステップH11)、終了してい
ない場合は(ステップH11のNOルート)、ステップ
H2に戻り、全てのデータを符号化するまでステップH
2以降の処理を繰り返し、終了している場合は(ステッ
プH11のYESルート)、符号化の全ての処理を終了
する。
【0196】なお、上述のステップH5およびステップ
H8における符号出力処理の詳細については、実施形
態中、図36にて前述した処理ステップB1〜B8を参
照されたく、ステップH6およびステップH9における
リーフあるいはノードの組み替え処理の詳細について
は、同じく本実施形態中、図37にて上述した処理ステ
ップC1〜C9を参照されたい。
【0197】このように、本発明の一実施形態の第1変
形例にかかるデータ圧縮装置によれば、シンボルが登録
されていないことを表すエスケープコード(ESC)を
予め符号木に登録しておき、符号化するシンボルが予め
登録されている文脈に含まれない間(シンボルが含まれ
る文脈を発見して符号化するまでの間)はこのエスケー
プコードの符号を出力することにより、入力データとし
て現れるシンボルの組み合わせ(文脈)全てを予め登録
しておかなくてもよいので、文脈の登録に使用するメモ
リを大幅に削減できる利点がある。
【0198】そして、上述のように予め登録されている
文脈に符号化するシンボルが含まれない間に出力するエ
スケープコードの符号長を、スプレイ処理により短く
(1/2)してゆくことにより、シンボルが含まれる文
脈を発見して符号化するまでの時間を短縮することがで
きるので、データ圧縮の処理速度が大幅に向上するとと
もにデータ圧縮装置の処理負荷も大幅に軽減できる効果
がある。
【0199】(2)復元側の説明 図44は、本発明の一実施形態の第1の変形例としての
データ復元装置4の内部の構成を示すものであり、この
図44に示すように、本実施形態におけるデータ復元装
置4の内部には、本実施形態の説明中、図38にて前述
した構成に加えて、文脈変更部210Aが設けられてお
り、また、復号部204A,符号木保持部205Aの代
わりに、それぞれ復号部204A′,符号木保持部20
7Aが設けられている。
【0200】このため、この図44中、図38にて既述
の符号と同じ符号の構成部分の説明は省略し、図38に
示す構成とは異なる構成部分について、以下に説明す
る。即ち、符号木保持部(符号木保持手段)207A
は、エスケープコードをあらかじめ登録した符号木を保
持するものであり、文脈変更部(文脈変更手段)210
Aは、出力したデータがエスケープコードであったとき
入力されたデータを棄却し文脈を短くするものである。
【0201】また、復号部204A′は復号手段とし
て、上述の符号化側で符号化された符号に従って、符号
木決定部203Aで選択した符号木のルート(頂点)か
らノード(分岐点)を走査して到達したリーフに格納さ
れているデータを出力するものである。さらに、復号部
204A′は制御手段として、エスケープコードを復号
した時は、文脈変更部210Aで上述のように文脈を再
設定し、エスケープコード以外のデータが復号されるま
で処理を繰り返す制御を行なうようになっている。
【0202】そして、上述のような図38に示す構成と
は異なる構成により、図44に示すデータ復元装置で
は、符号木保持部207AがESCをあらかじめ登録し
た符号木を保持し、文脈変更部210Aが出力したデー
タKがESCであったとき入力されたデータKを棄却し
文脈を短くする。また、復号部204A′が、符号化さ
れたデータKの符号に従って、符号木決定部203Aで
選択した符号木のルートからノードを走査して到達した
リーフに格納されているデータKを出力し、ESCを復
号した時は、文脈変更部210Aで文脈の次数を変更
し、ESC以外のデータKが復号されるまで処理を繰り
返す。
【0203】ここで、上述のような動作について、図4
5に示すフローチャートの処理ステップJ1〜J9を参
照しながら、さらに詳述する。まず、文脈変更部210
Aが、前置データ保持部200A−1〜200A−nに
保持されている全ての文脈から文脈文字列P0を初期化
し(ステップJ1)、この文脈文字列P0を文脈Pにセ
ットしておく(ステップJ2)。
【0204】そして、文脈変更部110Aは、この文脈
Pを文脈履歴保持部201Aおよび符号木決定部203
Aに送り、符号木決定部203Aでは、受け取った文脈
Pから符号木を選択(決定)し(ステップJ3)、決定
した符号木を復号部204A′に送る。復号部204
A′では、決定した符号木内において、符号化側で符号
化された符号に応じてルートからリーフへ走査して符号
を復号する(ステップJ4)。なお、この復号部204
A′が行なう処理の詳細については、本実施形態中、図
41にて前述した処理ステップG1〜G7を参照された
い。
【0205】そして、復号部204A′は、復号した事
象KがESC(エスケープコード)であるか否かをチェ
ックし(ステップJ5)、復号した事象KがESCであ
る場合は、ESC信号を文脈変更部210Aに送信する
(ステップJ5のYESルート)。さらに、このESC
信号を受信した文脈変更部210Aでは、文脈Pの次数
を1つ低次に移して変更し(例えば、前置データ保持部
200−nに保持されている最も古いデータを無視して
n−1次の文脈Pを作る)(ステップJ6)、この文脈
Pを文脈履歴保持部201及び符号木決定手段203へ
送り、処理はステップJ3に戻る。
【0206】すなわち、復号化部204A′が、ESC
以外の事象Kを復号するまでステップJ2からの処理を
繰り返す。一方、復号した事象KがESCでない場合
は、復号した事象Kのリーフを他のリーフあるいはノー
ドと組み替える(ステップJ5のNOルートからステッ
プJ7)。なお、このリーフあるいはノードの組み替え
処理の詳細については、本実施形態中、図37にて前述
したフローチャートにおける処理ステップC1〜C9を
参照されたい。
【0207】さらに、文脈更新部206Aは、最も古い
データ(前置データ保持部200−nに保持されている
データ)を棄却し、復号した事象Kを文脈として前置デ
ータ保持部200−1に挿入して登録し、文脈文字列P
0を更新する(ステップJ8)。そして、全てのデータ
について復号が終了したかをチェックし(ステップJ
9)、終了していなければ、ステップJ2からの処理を
繰り返し(ステップJ9のNOルートからステップJ
2)、そうでなければ復号処理を終了する(ステップJ
9のYESルート)。
【0208】なお、この場合も符号化側と同様に、上述
のノードの組み変え(ステップJ7)と文脈更新(ステ
ップJ8)の処理は、どちらを先にしてもよく、また、
並列に処理してもよい。このように、本発明の一実施形
態の第1の変形例にかかるデータ復元装置によれば、シ
ンボルが登録されていないことを表すエスケープコード
(ESC)を予め符号木に登録しておき、復号したシン
ボルがこのエスケープコードであった場合に、エスケー
プコード以外の符号(すなわち、復号するシンボルの符
号)を復号するまで文脈を短く(変更)して復号するシ
ンボルの符号を検索することにより、入力データとして
現れるシンボルの組み合わせ(文脈)全てを予め符号木
に登録しておかなくてもよいので、文脈の登録に使用す
るメモリを大幅に削減できる利点がある。
【0209】そして、上述のように復号したシンボルが
エスケープコードである間、このエスケープコードの符
号長をスプレイ処理により短く(1/2)してゆくこと
により、復号するシンボルが含まれる文脈を発見して復
号するまでの時間を短縮することができるので、データ
復元処理の速度が大幅に向上するとともにデータ復元装
置の処理負荷も大幅に軽減できる効果がある。 (b−2)一実施形態の第2の変形例の説明 (1)符号化側の説明 図46は、本発明の一実施形態の第2の変形例としての
データ圧縮装置3の内部の構成例を示すものであり、こ
の図46に示すように、本実施形態におけるデータ圧縮
装置3の内部には、本実施形態の第1の変形例の説明
中、図38にて前述した構成に加えて、さらに符号登録
部112Aが設けられている。
【0210】このため、この図42中、図33にて既述
の符号と同じ符号の構成部分の説明は省略する。また、
符号登録部112Aは、入力されたデータKが符号木に
登録されていないときに、このデータKを符号木に登録
するものである。このような構成により、入力されたデ
ータKが符号木に登録されていないときに、符号登録部
112Aが符号木にデータKを登録するようにすること
ができる。
【0211】ここで、上述のような動作について、図4
7の処理ステップK1〜K12を参照しながら説明する
が、ここで、この図47に示すように、ステップK8以
外の処理は、本実施形態の第1の変形例の説明中、図4
3のフローチャートにて前述した処理ステップH1〜H
11と同様の処理である。すなわち、本実施形態ではス
テップK1〜K7において、図43中のステップH1〜
H7と同様の処理が行なわれ、そのあとにステップK8
にかかる処理が行われる。
【0212】すなわち、文脈判別部108Aが、文脈木
に事象Kが登録されていないと判別した場合(ステップ
K4のNOルート)、符号木更新部105Aが、符号木
のESCのリーフを他のリーフあるいはノードと組み替
えてESCの符号を変更し(ステップK6)、文脈履歴
保持部101Aが現在の文脈Pを符号登録手段112A
に送り、文脈変更部110Aが文脈Pの次数を1つ低次
に移して変更した(ステップK7)後、符号登録部11
2Aが符号木に事象Kを登録する(ステップK8)。
【0213】なお、ステップK4において、文脈木に事
象Kが登録されていると判別された場合においても、ス
テップK9〜K12において、前述の図43におけるス
テップH8〜H11と同様の処理が行なわれている。こ
のように、本発明の一実施形態の第2の変形例にかかる
データ圧縮装置によれば、上述のように、ステップK8
以外は、本実施形態の第1の変形例の符号化側における
における図43の処理ステップと同様であるので、本実
施形態の第1の変形例の符号化側の効果と同様の効果が
ある。
【0214】さらに、上述のように、ステップ8をとる
ことで、エスケープコードを符号化した間シンボルを符
号木上に登録してゆき、符号木に予め登録されていなか
ったシンボルについても次の符号化では早い段階(高次
の次数)で符号化することができるので、符号化が進む
ほど圧縮効果が大幅に向上する効果がある。 (2)復元側の説明 図48は、本発明の一実施形態の第2の変形例としての
データ復元装置4の内部の構成例を示すものであり、こ
の図48に示すように、本実施形態におけるデータ復元
装置4の内部には、本実施形態の第1の変形例の復元側
の説明中、図44にて前述した構成に加えて、さらに符
号登録部212Aが設けられている。なお、この符号登
録部212Aは、符号化側の構成(図46参照)に対応
して、設けられているものである。
【0215】このため、この図48中、図44にて既述
の符号と同じ符号の構成部分の説明は省略する。符号登
録部212Aは、圧縮側で符号化されたデータの復号処
理でESC(エスケープコード)を復号したときに、文
脈に対応した全ての符号木に、この復号したデータの符
号を登録するものである。
【0216】これにより、図44にて前述した構成がと
る動作に加えて、符号登録部212Aが、符号化された
データKの復号処理において、ESCを復号したとき
に、文脈に対応した全ての符号木に、この復号したデー
タKの符号を登録することができる。上述の動作につい
て、図49の処理ステップL1〜L10を参照しなが
ら、さらに詳述する。
【0217】ここで、この図49に示すように、処理ス
テップL1〜L4においては、本実施形態の第1の変形
例の復元側における、図45にて前述した処理ステップ
J1〜J4と同様の処理が行なわれる。そして、ステッ
プL4で、復号部204Aが符号を復号した後、符号木
更新部205Aが、復号した事象Kのリーフを他のリー
フあるいはノードと組み替え(ステップL5)。
【0218】さらに、符号木更新部205Aは、この時
点で、以前にESC(エスケープコード)が復号されて
おり、復号部204AからのESC信号を受信している
と、このESCを復号した全ての符号木に事象Kを登録
する(ステップL6)。さらに、復号した事象KがES
Cであるかを判別し(ステップL7)、復号した事象K
がESCである場合は、復号した事象KがESCである
ことを示すESC信号を、文脈変更部210Aおよび符
号登録部212Aに送信し、このESC信号を受信した
文脈変更部210Aは、文脈Pの次数を1つ低次に移し
て変更し(ステップL7のYESルートからステップL
8)、処理はステップL3に戻って、ESC以外の事象
Kを復号するまで処理を繰り返す。
【0219】このようにして、復号部204Aで復号し
た事象KがESCである場合は、符号登録部212Aが
符号木に新規のリーフを作成し、復号部204がESC
以外の事象をKを復号したとき、この事象Kを新規に作
成した全てのリーフに格納することにより、ESCを復
元した全ての符号木に該シンボルを登録することができ
る。
【0220】一方、上述のステップL7で、復号した事
象KがESCでない場合は、文脈更新部206Aが、最
も古いデータ(前置データ保持部200−nに保持され
ているデータ)を棄却し、復号した事象Kを文脈として
前置データ保持部200−1に挿入して登録し、文脈文
字列P0を更新する(ステップL9)。そして、全ての
データについて復号が終了したかをチェックし(ステッ
プL10)、終了していなければステップL2からの処
理を繰り返し(ステップL10のNOルート)、終了し
ていれば復号処理を終了する(ステップL10のYES
ルート)。
【0221】以上のように、復号側でも符号化側と同様
に、復号部204AがESCを復号したときは、符号木
登録部212Aが符号木に事象Kを新規に登録する。こ
のように、本発明の一実施形態の第2の変形例にかかる
データ復元装置によれば、符号化側と同様に、本実施形
態の第1の変形例における復元側にて前述した効果に加
えて、エスケープコードの符号を復号した場合の間、復
号するシンボルの符号を符号木上に登録してゆくこと
で、符号木に登録されていないシンボルについても次の
復号では早い段階で復号することができるので、文字な
どのデータの復号処理が進むほど復元効果が大幅に向上
するとともにデータ復元装置の処理負荷も大幅に軽減で
きる効果がある。 (b−3)本実施形態の第3の変形例の説明 (1)符号化側の説明 本実施形態の第3の変形例において、上述のデータ圧縮
装置3は、前述の第2の変形例に比して、データKを符
号化する際、一度でもESCを符号化したときは、履歴
登録手段としての文脈変更部110Aが、このデータの
符号化の直前の文脈とこのデータとの組み合わせを文脈
履歴保持部101Aに登録し、符号登録部112Aが、
このデータを符号化する直前に符号化したエスケープコ
ードを持つ符号木にデータを新規に登録するようにする
ことができる点が異なる。
【0222】以下、上述の処理について、図50に示す
処理ステップM1〜M13を参照しながら、さらに詳述
する。ここで、この図50に示すように、ステップM1
〜M9は、本実施形態の第1の変形例の説明で用いた図
43の処理ステップH1〜H9とそれぞれ同様の処理が
行なわれる。
【0223】そして、文脈Pに入力データの事象Kが登
録されている場合は(ステップM4のYESルート)、
ステップM8を経由して、ステップM9で符号木の組み
替えを行なった後は、復号部104がステップM8で符
号化した事象KがESCであるかをチェックする(ステ
ップM10)。符号化した事象KがESCである場合
は、符号登録部112Aがこの事象Kを符号化する直前
の文脈P’に対応する符号木に事象Kを登録し(ステッ
プM10のYESルートからステップM11)、文脈更
新部106Aが事象Kを含む文脈Pを、最も新しい文脈
として前置データ保持部100A−1に登録する。
【0224】さらに、この情報から文脈変更部110A
が、文脈文字列P0にデータKを挿入して更新し(ステ
ップM12)、文脈履歴保持部101Aに登録する。つ
まり、ステップM11でデータKを符号化する直前の文
脈P’(すなわち最後に符号化された文脈)の符号木に
データKが登録されているので、データKとこのデータ
Kを符号化する直前の文脈P’との組み合わせが文脈変
更部106Aにより文脈履歴保持部101Aに登録され
ることになる。
【0225】一方、符号化した事象KがESCでない場
合は(ステップM10のNOルート)、ステップM11
をスキップして、上述のステップM12を行なう。さら
に、全てのデータの符号化が終了したかをチェックし
(ステップM13)、終了していない場合は(ステップ
M13のNOルート)、処理はステップM2に戻り、全
てのデータの符号化が終了するまで処理を繰り返し、終
了している場合は、符号化の処理を終了する(ステップ
M13のYESルート)。
【0226】このように、本発明の一実施形態の第3の
変形例にかかるデータ圧縮装置によれば、本実施形態の
第2の変形例の符号化側にて前述した効果に加えて、予
め登録された文脈にシンボルが含まれない場合、最後に
符号化したエスケープコードの符号木にのみこのシンボ
ルを登録してゆくことにより、新たな文脈を登録するた
めに使用するメモリの量を大幅に削減することができる
ので、データ圧縮装置の性能が大幅に向上する効果があ
る。
【0227】さらに、上述のようにして新たに登録され
たシンボルと、同じシンボルが後に入力される毎にこの
シンボルの符号木のノードを組み替えて符号長を短くす
る(スプレイ処理する)ことにより、実際に出現頻度が
高いシンボルについてのみ、その符号の符号長を短くす
ることができるので、データ圧縮装置の圧縮効果が大幅
に向上する効果がある。
【0228】(2)復元側の説明 本実施形態の第3の変形例にかかるデータ復元装置4
は、図48に示したデータ復元装置4に比して、履歴登
録手段としての文脈変更部210Aが、符号化側で符号
化されたデータKの復号処理で、最後にESC(エスケ
ープコード)を復号した時の文脈と復号したデータKと
を文脈履歴保持部201Aに登録し、符号登録部212
Aが、データKの復号処理で最後にESCを復号した時
の文脈に対応した符号木にデータKの符号を登録するよ
うにすることができる点が異なる。
【0229】上述のような処理について、図51の処理
ステップN1〜N10を参照しながら、さらに詳述す
る。ここで、この図51に示すように、ステップN1〜
N5において、前述の第2の変形例の復元側の説明で用
いた図49のステップK1〜K5とそれぞれ同様の処理
が行なわれる。
【0230】そして、本実施形態の復元側では、ステッ
プN5で復号した事象Kのリーフを他のリーフあるいは
ノードと組み替えた後に、復号した事象KがESCであ
るかをチェックする(ステップN6)。復号した事象K
がESCである場合は、文脈Pの次数を変更し(ステッ
プN6のYESルートからステップN7)、処理はステ
ップN3に戻って、ESC以外の事象Kを復号するまで
処理を繰り返す。
【0231】一方、復号した事象KがESCでない場合
は、符号木更新部205Aは、直前のESCを復号した
符号木のみに新規リーフを作成し、符号登録部212A
がこの符号木の新規リーフに事象Kを登録する(ステッ
プN6のNOルートからステップN8)。さらに、文脈
更新部206Aが、最も古いデータ(前置データ保持部
200−nに保持されているデータ)を棄却し、復号し
た事象Kを文脈として前置データ保持部200−1に挿
入して登録し、文脈文字列P0を更新する(ステップN
9)。
【0232】そして、全てのデータについて復号が終了
したかをチェックし(ステップN10)、終了していな
ければ、ステップN2からの処理を繰り返し(ステップ
N10のNOルートからステップN2)、終了していな
ければ復号処理を終了する。このように、本発明の一実
施形態の第3の変形例にかかるデータ復元装置によれ
ば、本実施形態の第2の変形例の復元側にて前述した効
果に加えて、予め登録された文脈にシンボルが含まれな
い場合、最後に復号したエスケープコードの符号木にの
みこのシンボルの符号を新規に登録してゆくことによ
り、1つのシンボルに対して常に1つ以下の登録で済
み、新たなシンボルの符号を登録するために使用するノ
ードID管理用のメモリを大幅に削減することがきるの
で、データ復元装置の性能が大幅に向上する効果があ
る。
【0233】さらに、上述のようにして新たに登録され
たシンボルと、同じシンボルが後に入力される毎にこの
シンボルの符号木のノードを組み替えて符号長を短くす
る(スプレイ処理する)ことにより、実際に出現頻度が
高いシンボルについてのみ、符号長の短い符号をもつこ
とになるので、データ復元装置の復元効果が大幅に向上
する効果がある。
【0234】(c)本発明に関連する技術2の説明 次に、本発明に関連する技術2について説明するが、ま
ず、その原理について説明する。本発明に関連する技術
2に係るデータ圧縮方法を実施するための装置の構成
を、図9に示す。この図9に示すデータ圧縮装置は、入
力データを過去に出現した履歴に応じて符号化するもの
である。
【0235】ここで、301は符号木保持手段、302
は文脈木保持手段、303は文脈登録手段、304は符
号登録手段、305は文脈変更手段、306は符号化手
段、307は符号更新手段である。符号木保持手段30
1は、予めデータ未登録を示すデータとして定義される
エスケープコードを登録した符号木を保持するものであ
り、文脈木保持手段302は、入力データと文脈との組
み合わせを登録した文脈木を保持するものであり、文脈
登録手段303は、エスケープコードを符号化したの
ち、文脈木にデータを新規に登録するものである。
【0236】さらに、符号登録手段304は、エスケー
プコードを符号化したのち符号木のエスケープコードの
データ格納点としてのリーフを分岐してデータを新規に
登録するものであり、文脈変更手段305は、入力デー
タと文脈との組み合わせが文脈木に保持されていないと
き、文脈を変更するものである。また、符号化手段30
6は、符号木の頂点からの入力データあるいはエスケー
プコードが登録してあるリーフまでの分岐に従って符号
を出力するものであり、符号更新手段307は、符号化
したデータ及びエスケープコードが登録してあるリーフ
と他のリーフあるいはノードとを取り替えるものであ
る。
【0237】また、本発明に関連する技術2に係る他の
データ圧縮方法を実施するための装置の構成を、図10
に示す。この図10に示データ圧縮装置も、入力データ
を過去に出現した履歴に応じて符号化するものである。
この図10に示すデータ圧縮装置は、前述の図9におけ
るものと同様の符号木保持手段301,文脈木保持手段
302,文脈登録手段303,文脈変更手段305,符
号化手段306,符号更新手段307をそなえており、
これらの説明は省略する。
【0238】また、310は分岐位置検索手段であり、
この分岐位置検索手段310は、符号木上の最長の符号
長を持つリーフを検索するものである。311は符号登
録手段であり、この符号登録手段311は、エスケープ
コードを符号化したのち、分岐位置検索手段110に検
索されたデータ格納点としてのリーフを分岐してデータ
を新規に登録するものである。
【0239】さらに、本発明に関連する技術2に係る他
のデータ圧縮方法を実施するための装置の構成を、図1
1に示す。この図11に示すデータ圧縮装置も、入力デ
ータを過去に出現した履歴に応じて符号化するものであ
る。ここで、この図11に示すデータ圧縮装置において
も、前述の図9におけるものと同様の符号木保持手段3
01,文脈木保持手段302,文脈登録手段303,文
脈変更手段305,符号化手段306,符号更新手段3
07をそなえており、これらの説明は省略する。
【0240】308は分岐位置保持手段であり、この分
岐位置保持手段308は、符号木に新規に登録されたデ
ータ格納点としてのリーフの位置を保持するものであ
る。さらに、309は符号登録手段であり、この符号登
録手段309は、エスケープコードを符号化したのち、
分岐位置保持手段308に保持されている位置にあるリ
ーフを分岐してデータを新規に登録するものである。
【0241】一方、本発明に関連する技術2に係るデー
タ復元方法を実施するための装置の構成を、図12に示
す。この図12に示すデータ復元装置は、入力データを
過去の入力データの履歴に応じて符号化した符号を復号
するものである。ここで、401は符号木保持手段、4
02は文脈木保持手段、403は符号木決定手段、40
4は復号手段、405は文脈変更手段、406は符号更
新手段、407は符号登録手段、408は文脈木登録手
段である。
【0242】符号木保持手段401は、予めデータ未登
録を示すデータとして定義されるエスケープコードを登
録した符号木を保持するものであり文脈木保持手段40
2は、復号したデータと文脈との組み合わせを登録した
文脈木を保持するものであり、符号木決定手段403
は、直前までに復号したデータから符号の符号木を決定
するものである。
【0243】さらに、復号手段404は、符号に従って
符号木の頂点を意味するルートからデータ格納点として
のリーフへと走査して符号を復号するものであり、文脈
変更手段405は、到達したリーフがエスケープコード
であった場合、文脈を変更するものであり、符号更新手
段406は、復号したデータ及びエスケープコードのリ
ーフを他のリーフあるいは分岐点としてのノードと組み
替えるものである。
【0244】また、符号登録手段407は、エスケープ
コードを復号したとき、エスケープコードのリーフを分
岐して復号したデータを新規に登録するものであり、文
脈木登録手段408は、符号登録手段407で登録した
データを文脈保持手段402の文脈木に登録するもので
ある。さらに、本発明に関連する技術2に係る他のデー
タ復元方法を実施するための装置の構成を、図13に示
す。この図13に示すデータ復元装置も、入力データを
過去の入力データの履歴に応じて符号化した符号を復号
するもので、ここで、この図13に示すデータ復元装置
は、前述の図12に示すものと同様の符号木保持手段4
01,文脈木保持手段402,符号木決定手段403,
復号手段404,文脈変更手段405,符号更新手段4
06をそなえており、これらの説明は省略する。
【0245】また、411は分岐位置検索手段であり、
この分岐位置検索手段411は、符号木内の最長の符号
長を持つリーフの位置を検索するものである。そして、
412は符号登録手段であり、この符号登録手段412
は、エスケープコードを符号化したのち分岐位置検索手
段411で検索されたリーフを分岐してデータを新規に
登録するものである。
【0246】さらに、413は文脈木登録手段であり、
この文脈木登録手段413は、符号登録手段412で登
録したデータを文脈木保持手段402の文脈木に登録す
るものである。さらに、本発明に関連する技術2に係る
データ復元方法を実施するための装置の構成を、図14
に示す。この図14に示すデータ復元装置も、入力デー
タを過去の入力データの履歴に応じて符号化した符号を
復号するものである。
【0247】ここで、この図14に示すデータ復元装置
においても、前述の図12に示すものと同様の符号木保
持手段401,文脈木保持手段402,符号木決定手段
403,復号手段404,文脈変更手段405,符号更
新手段406をそなえており、これらの説明は省略す
る。また、409は分岐位置保持手段であり、この分岐
位置保持手段409は、符号木に新規に登録されたリー
フの位置を保持するものである。
【0248】さらに、410は符号登録手段であり、こ
の符号登録手段410は、エスケープコードを符号化し
たのち、分岐位置保持手段409に保持されている位置
にあるリーフを分岐してデータを新規に登録するもので
ある。414は文脈木登録手段であり、この文脈木登録
手段414は、符号登録手段410で登録したデータを
文脈保持手段402の文脈木に登録するものである。
【0249】そして、本発明に関連する技術2に係るデ
ータ圧縮方法では、次のような作用がある。 (1)文脈木保持過程により、入力データとそれまでに
連続したn個のデータからなる文脈との組み合わせを登
録した文脈木を保持することができる。 (2)符号木保持過程により、文脈毎に独立した符号木
を保持することができる。
【0250】(3)文脈木新規登録過程により、入力デ
ータと文脈との組み合わせが文脈木保持過程に保持され
ていないとき、文脈木保持過程の文脈木にデータを新規
に登録することができる。 (4)符号木新規登録過程により、入力データと文脈と
の組み合わせが文脈木保持過程に保持されていないと
き、符号木保持過程の符号木にデータを新規に登録する
ことができる。
【0251】(5)新規登録過程により、入力データと
文脈との組み合わせが文脈木保持過程に保持されていな
いとき、符号木保持過程の符号木のデータ格納点として
のリーフを分岐して得た新規リーフにデータを格納する
ことができる。 (6)文脈変更過程により、入力データと文脈との組み
合わせが文脈木保持過程に保持されていないとき文脈を
変更することができる。
【0252】(7)符号出力過程により、符号木の頂点
からの入力データあるいは符号木中の特定コードが登録
してあるリーフまでの分岐に従って符号を出力すること
ができる。 (8)符号長変更過程により、入力データあるいは符号
木中の特定コードが登録してあるリーフと他のリーフあ
るいは符号木の頂点以外の分岐点として定義されるノー
ドとを取り替えることができる。
【0253】(9)新規登録過程では、特定コードを登
録してあるリーフを分岐し、得た2つの新規リーフに特
定コードと新規データとを登録することができる。そし
て、本発明に関連する技術2に係るデータ圧縮方法は、
次のような作用がある。 (1)符号木保持過程により、予め未登録を示すデータ
として定義されるエスケープコードを登録した符号木を
保持することができる。
【0254】(2)文脈木保持過程により、入力データ
とそれまでに連続したn個のデータからなる文脈との組
み合わせを登録した文脈木を保持することができる。 (3)文脈木新規登録過程により、入力データと文脈と
の組み合わせが文脈木保持過程に保持されていないと
き、文脈木保持過程の文脈木にデータを新規に登録する
ことができる。
【0255】(4)符号木新規登録過程により、入力デ
ータと文脈との組み合わせが文脈木保持過程に保持され
ていないとき、符号木保持過程の符号木にデータを新規
に登録することができる。 (5)新規登録過程により、入力データと文脈との組み
合わせが文脈木保持過程に保持されていないとき、符号
木保持過程の符号木のデータ格納点としてのリーフを分
岐して得た新規リーフにデータを格納することができ
る。
【0256】(6)文脈変更過程により、入力データと
文脈との組み合わせが文脈木保持過程に保持されていな
いとき文脈を変更することができる。 (7)符号出力過程により、符号木の頂点からの入力デ
ータあるいはエスケープコードが登録してあるリーフま
での分岐に従って符号を出力することができる。 (8)符号長変更過程により、入力データあるいはエス
ケープコードが登録してあるリーフと他のリーフあるい
は符号木の頂点以外の分岐点として定義されるノードと
を取り替えることができる。
【0257】(9)新規登録過程では、エスケープコー
ドを登録してあるリーフを分岐し、得た2つの新規リー
フにエスケープコードと新規データとを登録することが
できる。また、上述の(5)の新規登録過程では、同じ
文脈の下にあるリーフのうち、符号木の頂点として定義
されるルートからの距離が最も長いリーフを分岐し、得
た2つの新規リーフに、分岐したリーフに格納していた
データと、新規データとを登録することもでき、同じ文
脈の下にあるリーフのうち、最後に登録したリーフを分
岐し、得た2つの新規リーフに、分岐したリーフに格納
していたデータと、新規データとを登録することもでき
る。
【0258】一方、本発明に関連する技術2に係るデー
タ復元方法には、次のような作用がある。 (1)文脈木保持過程により、復号したデータと文脈と
の組み合わせを登録した文脈木を保持することができ
る。 (2)符号木保持過程により、文脈に応じておのおの独
立した符号木を保持することができる。
【0259】(3)符号木決定過程により、直前までに
復号したデータから符号の符号木を決定することができ
る。 (4)復号過程により、符号に従って符号木の頂点を意
味するルートからデータ格納点としてのリーフへと走査
して符号を復号することができる。 (5)文脈変更過程により、到達したリーフが符号木中
の特定コードであった場合、文脈を変更することができ
る。
【0260】(6)符号長変更過程により、復号したデ
ータ及び特定コードのリーフを他のリーフあるいは分岐
点としてのノードと組み替えることができる。 (7)新規登録過程により、特定コードを復号したとき
符号木に復号したデータを新規に登録することができ
る。 (8)文脈木登録過程により、新規登録過程で登録した
データを文脈木保持過程の文脈木に登録することができ
る。
【0261】(9)新規登録過程では符号化側で分岐に
選択したリーフと同じリーフを分岐して新規データを登
録することができる。さらに、本発明に関連する技術2
に係るデータ復元方法は、次のような作用がある。 (1)符号木保持過程により、予めデータ未登録を示す
データとして定義されるエスケープコードを登録した符
号木を保持することができる。
【0262】(2)文脈木保持過程により、復号したデ
ータと文脈との組み合わせを登録した文脈木を保持する
ことができる。 (3)符号木決定過程により、直前までに復号したデー
タから符号の符号木を決定することができる。 (4)復号過程により、符号に従って符号木の頂点を意
味するルートからデータ格納点としてのリーフへと走査
して符号を復号することができる。
【0263】(5)文脈変更過程により、到達したリー
フがエスケープコードであった場合、文脈を変更するこ
とができる。 (6)符号長変更過程により、復号したデータ及びエス
ケープコードのリーフを他のリーフあるいは分岐点とし
てのノードと組み替えることができる。 (7)新規登録過程により、エスケープコードを復号し
たとき符号木に復号したデータを新規に登録することが
できる。
【0264】(8)文脈木登録過程により、新規登録過
程で登録したデータを文脈木保持過程の文脈木に登録す
ることができる。 (9)新規登録過程では符号化側で分岐に選択したリー
フと同じリーフを分岐して新規データを登録することが
できる。また、図9を用いて説明した構成をもつ装置、
すなわち入力データを過去に出現した履歴に応じて符号
化するデータ圧縮装置においては、符号木保持手段30
1が、予めデータ未登録を示すデータとして定義される
エスケープコードを登録した符号木を保持し、文脈木保
持手段302が、入力データと文脈との組み合わせを登
録した文脈木を保持する。
【0265】そして、文脈登録手段303が、エスケー
プコードを符号化したのち、文脈木にデータを新規に登
録し、符号登録手段304が、エスケープコードを符号
化したのち符号木のエスケープコードのデータ格納点と
してのリーフを分岐してデータを新規に登録し、文脈変
更手段305が、入力データと文脈との組み合わせが文
脈木に保持されていないとき、文脈を変更する。
【0266】さらに、符号化手段306が、符号木の頂
点からの入力データあるいはエスケープコードが登録し
てあるリーフまでの分岐に従って符号を出力し、符号更
新手段307が、符号化したデータ及びエスケープコー
ドが登録してあるリーフと他のリーフあるいはノードと
を取り替える。さらに、図10を用いて説明した構成を
もつ装置、すなわち入力データを過去に出現した履歴に
応じて符号化するデータ圧縮装置においては、符号木保
持手段301が、予めデータ未登録を示すデータとして
定義されるエスケープコードを登録した符号木を保持
し、文脈木保持手段302が、入力データと文脈との組
み合わせを登録した文脈木を保持する。
【0267】そして、文脈登録手段303が、エスケー
プコードを符号化したのち、文脈木にデータを新規に登
録し、分岐位置検索手段310が、符号木上の最長の符
号長を持つリーフを検索し、符号登録手段311が、エ
スケープコードを符号化したのち、分岐位置検索手段3
10に検索されたデータ格納点としてのリーフを分岐し
てデータを新規に登録する。
【0268】さらに、文脈変更手段305が、入力デー
タと文脈との組み合わせが文脈木に保持されていないと
き文脈を変更し、符号化手段306が、符号木の頂点か
ら入力データあるいはエスケープコードが登録してある
リーフまでの分岐に従って符号を出力し、符号更新手段
307が、符号化したデータ及びエスケープコードが登
録してあるリーフと他のリーフあるいはノードとを取り
替える。
【0269】また、図11を用いて説明した構成をもつ
装置、すなわち入力データを過去に出現した履歴に応じ
て符号化するデータ圧縮装置においては、符号木保持手
段301が予めデータ未登録を示すデータとして定義さ
れるエスケープコードを登録した符号木を保持し、文脈
木保持手段302が入力データと文脈との組み合わせを
登録した文脈木を保持する。
【0270】そして、文脈登録手段303がエスケープ
コードを符号化したのち、文脈木にデータを新規に登録
し、分岐位置保持手段308が符号木に新規に登録され
たデータ格納点としてのリーフの位置を保持し、符号登
録手段309がエスケープコードを符号化したのち、分
岐位置保持手段308に保持されている位置にあるリー
フを分岐してデータを新規に登録する。
【0271】さらに、文脈変更手段305が入力データ
と文脈との組み合わせが文脈木に保持されていないとき
分脈を変更し、符号化手段306が符号木の頂点から入
力データあるいはエスケープコードが登録してあるリー
フまでの分岐に従って符号を出力し、符号更新手段30
7が符号化したデータ及びエスケープコードが登録して
あるリーフと他のリーフあるいは分岐点としてのノード
とを取り替える。
【0272】一方、図12を用いて説明した構成をもつ
装置、すなわち入力データを過去の入力データの履歴に
応じて符号化した符号を復号するデータ復元装置におい
ては、符号木保持手段401が予めデータ未登録を示す
データとして定義されるエスケープコードを登録した符
号木を保持し、文脈保持手段402が復号したデータと
文脈との組み合わせを登録した文脈木を保持し、符号木
決定手段403が直前までに復号したデータから符号の
符号木を決定する。
【0273】そして、復号手段404が符号に従って符
号木の頂点を意味するルートからデータ格納点としての
リーフへと走査して符号を復号し、文脈変更手段405
が到達したリーフがエスケープコードであった場合、文
脈を変更する。さらに、符号更新手段406が、復号し
たデータ及びエスケープコードのリーフを他のリーフあ
るいは分岐点としてのノードと組み替え、符号登録手段
407がエスケープコードを復号したとき、エスケープ
コードのリーフを分岐して復号したデータを新規に登録
し、文脈木登録手段408が符号登録手段407で登録
したデータを文脈保持手段402の文脈木に登録する。
【0274】さらに、図13を用いて説明した構成をも
つ装置、すなわち入力データを過去の入力データの履歴
に応じて符号化した符号を復号するデータ復元装置にお
いては、符号木保持手段401が予めデータ未登録を示
すデータとして定義されるエスケープコードを登録した
符号木を保持し、文脈保持手段402が復号したデータ
と文脈との組み合わせを登録した文脈木を保持し、符号
木決定手段403が直前までに復号したデータから符号
の符号木を決定する。
【0275】そして、復号手段404が符号に従って符
号木の頂点を意味するルートからデータ格納点としての
リーフへと走査して符号を復号し、文脈変更手段405
が、到達したリーフがエスケープコードであった場合、
文脈を変更する。さらに、符号更新手段406が復号し
たデータ及びエスケープコードのリーフを他のリーフあ
るいは分岐点としてのノードと組み替え、分岐位置検索
手段411が符号木内の最長の符号長を持つリーフの位
置を検索し、符号登録手段412が、エスケープコード
を符号化したのち分岐位置検索手段411で検索された
リーフを分岐してデータを新規に登録し、文脈木登録手
段408が符号登録手段412で登録したデータを文脈
保持手段402の文脈木に登録する。
【0276】また、図14を用いて説明した構成をもつ
装置、すなわち入力データを過去の入力データの履歴に
応じて符号化した符号を復号するデータ復元装置におい
ては、符号木保持手段401が予めデータ未登録を示す
データとして定義されるエスケープコードを登録した符
号木を保持し、文脈保持手段402が、復号したデータ
と文脈との組み合わせを登録した文脈木を保持し、符号
木決定手段403が直前までに復号したデータから符号
の符号木を決定する。
【0277】そして、復号手段404が、符号に従って
符号木の頂点を意味するルートからデータ格納点として
のリーフへと走査して符号を復号し、文脈変更手段40
5が、到達したリーフがエスケープコードであった場
合、文脈を変更し、符号更新手段406が復号したデー
タ及びエスケープコードのリーフを他のリーフあるいは
分岐点としてのノードと組み替え、分岐位置保持手段4
09が符号木に新規に登録されたリーフの位置を保持す
る。
【0278】さらに、符号登録手段410がエスケープ
コードを符号化したのち、分岐位置保持手段409に保
持されている位置にあるリーフを分岐してデータを新規
に登録し、文脈木登録手段408が符号登録手段410
で登録したデータを文脈保持手段402の文脈木に登録
する。従って、本発明に関連する技術2に係るデータ圧
縮方法によれば、上述の特定コードを比較的多く出力す
るようなデータである場合、または文脈木保持過程に保
持されている文脈の登録が十分でない初期の段階などに
おいて高い符号化率が得られる効果がある。
【0279】また、上述の符号木新規登録過程の前に符
号長変更過程を行なえば、符号及び特定コードの符号長
を最小で2ビット、符号木新規登録後に符号長変更過程
を行なえば、特定コードの符号を最小で1ビットにする
ことができるので、さらに符号化効率が大幅に向上する
効果がある。さらに、符号木新規登録では、データの新
規登録は常に1つずつ行なわれるので、常に符号木の高
次には再現性を持ったシンボルのみが登録されることに
なり、符号木に登録はしたが実際には使われていないデ
ータが存在するために生じる符号化効率の低下を防止で
き、これにより十分にデータの登録がなされた後の符号
化効率が大幅に向上する効果がある。
【0280】なお、上述の特定コードを、予め未登録を
示すデータとして定義されるエスケープコードとして
も、上述のデータ圧縮方法における効果と同様の効果が
得られる。さらに、本発明に関連する技術2に係る他の
データ圧縮方法によれば、新規登録過程では、同じ文脈
の下にあるリーフのうち、符号木の頂点として定義され
るルートからの距離が最も長いリーフを分岐し、得た2
つの新規リーフに、分岐したリーフに格納していたデー
タと、新規データとを登録したり、また同じ文脈の下に
あるリーフのうち、最後に登録したリーフを分岐し、得
た2つの新規リーフに、分岐したリーフに格納していた
データと、新規データとを登録するようにすることもで
きるので、上述のデータ圧縮方法における効果に加え
て、あまり使われない出現頻度の最も低いデータの符号
長を長くすることができる。
【0281】これにより、符号長が1ビット伸びたこと
による符号化効率の低下を最小限に抑えてデータ圧縮の
処理速度を大幅に向上させることができる効果がある。
また、最後に登録したリーフに格納した新規データは、
比較的符号長の長いデータとして近似できることから、
さらにデータ圧縮の処理速度が大幅に向上する効果もあ
る。
【0282】また、本発明に関連する技術2に係るデー
タ復元方法によれば、符号化側と同様に、データの新規
登録過程において、2つに分割したリーフの符号長を
(分割前のリーフの符号長+1)ビットにすることがで
きるとともに、新規登録したデータの符号及び特定コー
ドの符号長を最小で2ビットにすることができ、これに
よりエスケープコードを比較的多く復号するようなデー
タである場合に、または辞書登録(符号木へのシンボル
の登録)が十分でない初期の段階の場合などにおいて、
データの復号効率が大幅に向上する効果がある。
【0283】また、データの新規登録過程の前に符号長
変更過程を行なえば、復号したデータ符号及びエスケー
プコードの符号長を最小で2ビット、新規登録過程の後
に符号長変更過程を行なえば、エスケープコードの符号
を最小で1ビットにすることができ、これにより、さら
にデータの復号効率が大幅に向上する効果がある。さら
に、復元側が符号化側と同一の新規登録過程が行なうこ
とができ、これにより符号化側で符号化されたデータを
正確に復号することができる利点がある。
【0284】なお、上述したデータ復元方法において
も、特定コードを、予め未登録を示すデータとして定義
されるエスケープコードとしても、上述のデータ復元方
法における効果と同様の効果が得られる。さらに、本発
明に関連する技術2に係る他のデータ圧縮装置によれ
ば、エスケープコードを比較的多く出力するようなデー
タである場合、または文脈木保持手段に保持されている
文脈の登録が十分でない初期の段階などにおいて高い符
号化率が得られる効果がある。
【0285】また、符号登録手段による符号の登録の前
に符号更新手段による符号更新を行なえば、符号及び特
定コードの符号長を最小で2ビット、符号登録手段によ
る符号の登録の後に符号更新手段による符号更新を行な
えば、エスケープコードの符号を最小で1ビットにする
ことができ、これにより、さらに符号化効率が大幅に向
上する効果がある。
【0286】さらに、符号登録手段による符号の新規登
録は、常に1つずつ行なわれるので、常に符号木の高次
には再現性を持ったデータのみが登録されることにな
り、符号木に登録はしたが実際には使われていないデー
タが存在するために生じる符号化効率の低下を防止で
き、これにより十分にデータの登録がなされた後の符号
化効率が大幅に向上する効果がある。そして、このよう
な効果によりデータ圧縮装置の性能が飛躍的に向上する
効果がある。
【0287】さらに、本発明に関連する技術2に係る他
のデータ圧縮装置によれば、上述のデータ圧縮装置にお
ける効果に加えて、あまり使われない出現頻度の最も低
いデータの符号長を長くすることができ、これにより符
号長が1ビット伸びたことによる符号化効率の低下を最
小限に抑えてデータ圧縮の処理速度を大幅に向上させる
ことができる効果があるとともにデータ圧縮装置の性能
が飛躍的に向上する効果がある。
【0288】さらに、本発明に関連する技術2に係るさ
らに他のデータ圧縮装置によれば、上述したデータ圧縮
装置における効果に加えて、最後に登録したリーフに格
納した新規データは、比較的符号長の長いデータとして
近似できることから、さらにデータ圧縮の処理速度が大
幅に向上するとともにデータ圧縮装置の処理負荷も大幅
に軽減される効果がある。
【0289】また、本発明に関連する技術2に係るデー
タ復元装置によれば、エスケープコードを比較的多く復
号するようなデータである場合、または文脈木保持手段
に保持されている文脈の登録が十分でない初期の段階な
どにおいて高い復号率が得られる効果がある。また、符
号登録手段による符号の登録の前に符号更新手段による
符号更新を行なえば、符号及び特定コードの符号長を最
小で2ビット、符号登録手段による符号の登録の後に符
号更新手段による符号更新を行なえば、エスケープコー
ドの符号を最小で1ビットにすることができ、これによ
り、さらに復号効率が大幅に向上する効果がある。
【0290】さらに、符号登録手段による復号する符号
の新規登録は、常に1つずつ行なわれるので、常に符号
木の高次には再現性を持ったデータのみが登録されるこ
とになり、符号木に登録はしたが実際には使われていな
いデータが存在するために生じる復号効率の低下を防止
でき、これにより十分にデータの登録がなされた後の復
号効率が大幅に向上する効果がある。そして、このよう
な効果によりデータ復元装置の性能が飛躍的に向上する
効果がある。
【0291】さらに、本発明に関連する技術2に係る他
のデータ復元装置によれば、上述したデータ復元装置に
おける効果に加えて、あまり使われない出現頻度の最も
低いデータの符号長を長くすることができ、これにより
符号長が1ビット伸びることによる符号化効率の低下を
最小限に抑えてデータ復元の処理速度を大幅に向上させ
ることができる効果があり、さらにデータ復元装置の性
能が飛躍的に向上する効果もある。
【0292】また、本発明に関連する技術2に係るさら
に他のデータ復元装置によれば、上述のデータ復元装置
による効果に加えて、データの新規登録を最後に登録し
たデータが格納されているリーフに行なうことができ、
この最後に登録したリーフに格納されているデータは比
較的符号長の長いデータとして近似できることから、符
号長が1ビット伸びることによる復号化効率の低下を最
小限に抑えてデータ復元の処理速度を大幅に向上させる
ことができる効果があり、さらにデータ復元装置の性能
が飛躍的に向上する効果もある。
【0293】次に、本発明に関連する技術2(以下、関
連技術2ともいう)について、より具体的に説明する。
即ち、関連技術2にかかるデータ圧縮装置及びデータ復
元装置も、上述した実施形態と同様に、図32に示した
ような本発明のデータ圧縮方法及びデータ復元方法を実
施するためのものである。
【0294】また、本関連技術2においても、上述した
実施形態と同様に、データ圧縮装置を符号化側、データ
復元装置を復元側として説明を進める。なお、以下の説
明中においても、文脈木および符号木は、項目(a)に
て前述した構成をもつものである。 (1)符号化側の説明 図52は、本発明の関連技術2にかかるデータ圧縮方法
を実施するためのデータ圧縮装置3(図32参照)の内
部の構成例を示す図であり、この図52において、30
1Bは符号木保持部、302Bは文脈木保持部、303
Bは文脈登録部、305Bは文脈変更部、306Bは符
号化部、307Bは符号変更部、321Bは文脈保持
部、322Bは符号登録部である。
【0295】ここで、符号木保持部(符号木保持手段)
301Bは、予めエスケープコード(ESC)(データ
未登録を示すデータ)を登録した符号木を保持するもの
であり、文脈木保持部(文脈木保持手段)302Bは、
シンボルK(入力データ)と文脈との組み合わせを登録
した文脈木を保持するものである。また、文脈登録部
(文脈登録手段)303Bは、エスケープコードを符号
化したのち、文脈木にシンボルKを新規に登録するもの
であり、文脈保持部321Bは、入力されたシンボルK
を一旦保持するものである。
【0296】符号登録部(符号登録手段)322Bは、
エスケープコードを符号化したのち符号木保持部(符号
木保持手段)301B内の符号木のエスケープコードの
リーフ(データ格納点)を分岐してシンボルKを新規に
登録するものである。このため、符号登録部322Bに
は、図53にて後述する、新規ノードID発生部61,
ラッチ62,親子情報更新部63が設けられており、符
号木保持部301Bの内部には、外部節点(リーフI
D)保持部64,内部節点(ノードID)保持部65,
ESC−ID保持部66,及び符号木管理部67が設け
られている。
【0297】また、文脈変更部305Bは、シンボルK
と文脈との組み合わせが文脈木に保持されていないと
き、文脈を変更するものである。符号化部306Bは、
符号木の頂点からのシンボルKあるいはエスケープコー
ドが登録してあるリーフまでの分岐に従って“1”か
“0”で表される符号を出力するものである。
【0298】符号更新部307Bは、符号化したシンボ
ルK及びエスケープコードが登録してあるリーフと他の
リーフあるいはノードとを取り替えるものである。そし
て、図53に示すように、符号登録部322Bの内部に
おいて、新規ノードID発生部61は、文脈木保持部3
02Bから更新信号を受けて2つの新規ノードID(I
D−1,ID−2を発生するものであり、ラッチ62は
エスケープコードのID(ESC−ID)を一旦保持す
るものである。
【0299】また、親子情報更新部63は、処理対象の
ノードの上位のノードIDと右下に位置する下位ノード
のノードIDおよび左下に位置する下位ノードのノード
IDの3つの情報(ESC−ID,ID−1,ID−
2)からなる親子情報を受けてこの親子情報を変更し、
符号木保持部301Bに送るものである。さらに、符号
木保持部301Bの内部において、外部節点(リーフI
D)保持部64は符号木のデータの格納点であるリーフ
のリーフIDを保持するものであり、内部節点(ノード
ID)保持部65は符号木のノードのノードIDを保持
するものであり、ESC−ID保持部66は符号木のエ
スケープコードとこのエスケープコードのIDを保持す
るものである。
【0300】また、符号木管理部67は、文脈木保持部
302Bから文脈IDを受けて、この文脈IDを外部節
点(リーフID)保持部64,内部節点(ノードID)
保持部65およびESC−ID保持部66に送るもので
ある。上述の構成により、本発明の関連技術2にかかる
データ圧縮装置3では、符号木保持部301Bが予めエ
スケープコードを登録した符号木を保持し、文脈木保持
部302BがシンボルKと文脈Pとの組み合わせを登録
した文脈木を保持し、文脈登録部303Bがエスケープ
コードを符号化したのち、文脈木にシンボルKを新規に
登録することができる。
【0301】さらに、文脈保持部321Bが文脈Pを一
旦保持し、符号登録部322Bがエスケープコードを符
号化したのち、符号木のエスケープコードのリーフを分
岐してシンボルKを新規に登録することができる。ま
た、文脈変更部305Bが、入力されたシンボルKと文
脈Pとの組み合わせが文脈木に保持されていないとき、
文脈Pを変更することができる。
【0302】さらに、符号化部306Bが符号木の頂点
からの入力データあるいはエスケープコードが登録して
あるリーフまでの分岐に従って符号を出力し、符号更新
部307Bが符号化したデータ及びエスケープコードが
登録してあるリーフと他のリーフあるいはノードとを取
り替えることができる。なお、図57(a)は符号木の
例を示す図であり、同図(b)は文脈木の例を示す図で
ある。ところで、この図57(a)に示すように、符号
木は内部節点としてのルートとノード、外部節点として
のリーフにそれぞれID番号(0〜10)を持ってい
る。
【0303】一方、図57(b)に示すように、文脈木
は、文脈のIDとその文脈に登録されているシンボルの
ID番号を持っており、文脈のID番号は符号木のルー
トのID番号、シンボルのID番号は符号木のリーフの
ID番号と同一である。ここで、上述の動作について、
図54〜図56に示す本発明の符号化側の動作を示す処
理ステップP1〜P16を参照しながら、さらに詳述す
る。
【0304】また、以下の動作の説明中、符号木および
文脈木は、上述のような構成を有しているものとする。
まず、図54に示すように、シンボルKが入力されると
(ステップP1)、文脈保持部321Bに保持されてい
る文脈Pが文脈変更部305Bに出力される(ステップ
P2)。
【0305】そして、文脈変更部305Bでは、文脈P
とシンボルKとを受けて、文脈Pの中にシンボルKが登
録されているかを判断するが、シンボルKが文脈Pに登
録されていない場合、文脈木保持部302Bは文脈変更
信号を文脈変更部305Bに出力する(ステップP
3)。文脈変更信号を受けた文脈変更部305Bは、最
高次(文脈木のルートから1番距離が長いリーフ)の文
字を棄却して次数を1つ下げた文脈Pを文脈木保持部3
02Bに送る(ステップP4)。
【0306】そして、シンボルKが登録されている文脈
Pを決定するまで、この処理を繰り返す。次に、図55
に示すように、文脈保持部302Bは、文脈PのID
(番号)とシンボルK(シンボルKが登録されていない
ときはESC)のIDを符号化部306Bに送り(ステ
ップP5)、符号化部306Bは、送られてきたIDを
符号木保持部301Bにそのまま転送する(ステップP
6)。
【0307】そして、符号木保持部301Bは、送られ
てきたIDの上位ノードのID番号と、符号化部306
Bが送ってきたIDが上位ノードに対して右左のどちら
かに位置しているかを示す情報とを符号化部306Bに
送る(ステップP7)。さらに、符号化部306Bは、
上位ノードに対する、符号化部306Bが送ってきたI
Dをもつノードの位置情報に従って、例えば右に位置し
ていた場合は“1”、左なら“0”を符号として出力す
る(ステップP8)。
【0308】また、上述の位置情報とともに送られてき
た上位ノードのIDが、文脈保持部302Bから送られ
てきた文脈PのID(ルートID)と一致したとき、符
号化処理を終了する。一方、一致しなかったときは、そ
の文脈PのIDをさらに符号変更部307Bに出力し
(ステップP6と同じ経路)、さらに符号木保持部30
1Bから上位のノードIDと位置情報とを得る。
【0309】そして、符号木保持部301Bからの上位
ノードのID番号が、文脈PのIDに一致するまで処理
を繰り返す。この処理が終了した後、符号変更部307
Bは、符号化部306Bから文脈PのID(=符号木の
ルートID)及び符号化したシンボルKのリーフIDを
受け(ステップP9)、ノードの組み換え処理(スプレ
イ処理)を行ない、符号長を更新する。なお、このノー
ドの組み換え処理については、項目(a)および本発明
の一実施形態にて前述したように行なう。
【0310】これにより、シンボルKが以前に入力され
文脈Pに登録されている場合に、さらにシンボルKが入
力されると、既に登録してあるシンボルKのノードを上
位のノードと組み替えて、符号長を短く(1/2に)す
ることができる。ところで、上述の文脈PにシンボルK
が登録されていない場合は、図56に示すように、文脈
登録部310Bは、文脈変更部305Bから登録する文
脈Pを受ける(ステップP10)とともにシンボルKと
を受けて(ステップP11)、文脈木保持部302Bに
登録シンボルのIDを出力し(ステップP12)、文脈
木保持部302Bは、文脈Pの下にシンボルKを新規に
登録する。
【0311】一方、符号登録部322Bは、符号を登録
する符号木を符号木保持部301Bより受け(ステップ
P13)、登録するシンボルKと、文脈木保持部302
Bからの登録シンボルのIDとを受けて(ステップP1
4,15)、シンボルKを符号木に新規登録して符号木
保持部301Bに再格納する(ステップP16)。これ
により、文脈Pに登録されていないシンボルKの登録
(符号化)が行なわれる。
【0312】ここで、符号登録部322Bが、エスケー
プコードを符号化したのち符号木保持部301B内の符
号木のエスケープコードのリーフを分岐してシンボルK
を新規に登録する動作(上述のステップP13〜P1
6)について、前述したように、図53を用いてさらに
詳述する。まず、符号木保持部301Bの内部に設けら
れた符号木管理部67は文脈IDを受けて符号木保持部
内のESC−ID保持部に文脈のESCアドレスを送
る。
【0313】そして、ESC−ID保持部66は、ES
Cアドレスを受けて、ESCのIDとこのIDに登録し
てあるシンボル(この場合はESC)を出力する一方、
符号登録部322Bでは、ESC−IDとESCをラッ
チ62でラッチする。さらに、新規ID発生器61は、
更新信号を受けて2つのID番号(ID−1,ID−
2)を発信し、ID−1は、新規のESC−IDとして
ラッチしてあったESCとともに符号木保持部301B
のESC−ID保持部66に格納される。
【0314】また、符号木には、IDとシンボルの他に
IDの位置情報を表した親子情報が保持されているが、
この親子情報には、自分の上位のノードID,自分の右
下に位置するノードID,及び自分の左下に位置するノ
ードIDの3つの情報がある。親子情報更新部63は、
3つのID(変更前のESC−ID,ID−1,ID−
2)を受けて、親子情報を変更する。すなわち、ID−
1,ID−2の上位IDにはESC−IDが登録され、
またESC−IDの右下にはID−1,左下にはID−
2が位置するという情報が登録される。
【0315】親子情報は、各IDとともに符号木保持部
301BのノードID保持部65に保持される。一方、
符号木保持部301BのリーフID保持部64には、登
録シンボルと新規ID(ID−2)が登録される。以上
のような処理を行なうことにより、ESCには新規ES
C−ID(ID−1)が登録され、旧ESC−IDはノ
ードIDとして親子情報とともにノードID保持部に保
持され、新規ID(ID−2)とシンボルKは新規リー
フとしてリーフID保持部に保持され、シンボルKを符
号木保持部301Bの符号木のエスケープコードが登録
されているリーフを分岐して新規登録する処理が終了す
る。
【0316】以上、図53〜56にて説明した動作をま
とめると、図58に示すフローチャートで表すことがで
きる。すなわち、まず、文脈P0に0を入力して初期化
し(ステップQ1)、文脈P0を変数としての文脈Pに
入力する(ステップQ2)。なお、この文脈P0は、直
前までに入力・符号化された文字(シンボル)であり、
例えば、本実施形態における符号化が、n次の文脈を用
いるモデルであったとき、文脈P0は直前までに入力・
符号化された(n−1)文字が格納されていることにな
る。
【0317】そして、シンボルKが入力されたとき、文
脈Pの文脈木にシンボルKが登録されているか否かを検
索する(ステップQ3)。そして、文脈Pの文脈木にシ
ンボルKが登録されていない場合、ESC(エスケープ
コード)の符号を出力し(ステップQ3のNOルートか
らステップQ4)、文脈Pに対応する符号木のESCが
登録されているリーフをスプレイ処理する(ステップQ
5)。
【0318】そして、上述のESCのリーフを分岐し
(ステップQ6)、これにより得た2つの新規リーフに
ESCとシンボルKを登録し(ステップQ7)、文脈P
の文脈木にもシンボルKを登録しておく。さらに、上述
のようにしてシンボルKの新規登録した後、文脈P内の
最も古い文字を棄却し、文脈の次数を1つ減じた文脈を
新たに文脈Pとして文脈Pを変更する(ステップQ
8)。
【0319】そして、ステップQ3に戻り、シンボルK
が文脈Pに登録されていることを検出するまで、文脈P
を順次変更して処理を繰り返す。一方、文脈Pの文脈木
にシンボルKが登録されている場合、シンボルKの符号
を出力し(ステップQ3のYESルートからステップQ
9)、この文脈Pに対応する符号木のシンボルKが登録
されているリーフをスプレイ(SPLAY)処理する
(ステップQ10)。
【0320】さらに、シンボルKの符号化後、文脈P0
にシンボルKを追加登録して文脈P0を更新する(ステ
ップQ11)。(例えば文脈P0にシンボルKを追加
し、文脈P0内の最も古い文字を棄却する)。そして、
全ての文字(シンボル)の符号化が終了したかをチェッ
クし(ステップQ12)、終了していない場合は(ステ
ップQ12のNOルート)、処理はステップQ2に戻っ
て、全ての文字の符号化が終了するまで処理を繰り返
す。
【0321】また、上述の図58における処理におい
て、ESCのリーフのスプレイ処理を、ESCとシンボ
ルKを登録した後に行なっているが、この処理順は逆に
してもよく、この場合の処理ステップは図59に示すよ
うになる。ここで、この図59に示すように、ステップ
R1〜R3およびステップR9〜R12においては、そ
れぞれ図58の処理ステップQ1〜Q3およびステップ
Q9〜Q12と同様の処理が行なわれる。
【0322】そして、ステップR3で文脈Pにシンボル
Kが登録されていない場合に、ESCの符号を出力し
(ステップR4)、ESCのリーフを分岐し(ステップ
R5)、新規リーフにESCとシンボルKを登録する
(ステップR6)。そして、上述のように登録を行なっ
た後に、ESCのリーフをスプレイ処理する(ステップ
R7)。
【0323】さらに、図58の処理ステップQ8と同様
に、文脈Pを変更し(ステップR12)、ステップR3
でシンボルKを検出するまで処理を繰り返す。例えば、
符号木が、図60(a)に示すように、文字(シンボ
ル)A〜Eがすでに符号化され登録されている状態にあ
る場合に、上述の処理ステップR1〜R12(または図
58中の処理ステップQ1〜Q12)において、シンボ
ルKを文字Fとして処理を実行すると、リーフ番号6の
ESCのリーフが分岐され、図60(b)に示すよう
に、新たに作成されたリーフ番号11,12のリーフに
それぞれESCと文字Fが登録される。
【0324】例えば、以上の処理において用いる文脈が
3次文脈であった場合、シンボルKが0次(初期状態)
で符号化されたときには、1次,2次,3次の文脈にそ
れぞれ登録される(以下、この全ての次数に登録を行な
う方法を全登録型という)。また、図58および図59
に示したステップQ1〜Q12およびステップR1〜R
12は、上述したように、ESCを符号化する毎にシン
ボルKを全ての次数の文脈に登録する処理のステップを
示すが、シンボルKが符号化される直前に符号化(登
録)された次数の1つの文脈にのみ、シンボルKを登録
するように処理を行なってもよく、この場合の処理のフ
ローチャートは、図61に示すようになる。
【0325】即ち、この図61に示す処理では、まず、
文脈P0を0に初期化し(ステップT1)、文脈(変
数)Pには文脈P0を入力し、文脈(変数)Xには0を
入力する(ステップT2)。さらに、文脈Pにシンボル
Kが登録されているか検索し(ステップT3)、文脈P
にシンボルKが登録されていない場合は、前述のステッ
プQ4,Q5(図58参照)と同様の処理を行う(ステ
ップT3のNOルートからステップT4,T5)。
【0326】その後、文脈Xに文脈Pを入力し(ステッ
プT6)、文脈Pを変更して(ステップT7)、文脈P
にシンボルKが登録されていることを検出するまで処理
を繰り返す。一方、上述のステップT3において、文脈
PにシンボルKが登録されている場合は、前述のステッ
プQ9〜Q11(図58参照)、またはステップR9〜
R11(図59参照)と同様の処理を行なう(ステップ
T8〜T10)。
【0327】その後、文脈XのESCのリーフを分岐し
(ステップT11)、この分岐された新規の2つのリー
フにそれぞれESCとシンボルKを登録する(ステップ
T12)。さらに、全ての文字(シンボル)の符号化が
終了したか否かをチェックし(ステップT13)、終了
していなければステップT2以降の処理を繰り返し(ス
テップT13のNOルート)、終了していれば符号化処
理を終了する(ステップT13のYESルート9)。
【0328】このように処理を行なうことにより、すべ
ての次数の文脈PにシンボルKを登録するのではなく、
シンボルKを符号化した直前の次数の文脈(文脈X)に
のみ登録を行なうことができる(以下、この直前の次数
の文脈にのみシンボルの登録を行なう方法を逐次登録型
という)。このように、本発明の関連技術2にかかるデ
ータ圧縮装置によれば、文脈PにシンボルKが登録され
ていないとき、エスケープコード(ESC)の分岐・登
録の符号長を(分割前のリーフの符号長+1)ビット、
新規登録した符号及びエスケープコードの符号長を最小
で2ビットにすることにより、エスケープコードを比較
的多く出力するようなデータである場合、または辞書登
録(符号木へのシンボルの登録)が十分でない初期の段
階などにおいて高い符号化率が得られる効果がある。
【0329】また、上述のようなシンボルの新規登録の
前にスプレイ処理を行なえば、符号及びエスケープコー
ドの符号長を最小で2ビット、新規登録後にスプレイ処
理を行なえば、エスケープコードの符号を最小で1ビッ
トにすることができるので、さらに符号化効率が大幅に
向上する効果がある。さらに、上述の逐次登録型の場
合、符号木へのシンボルの新規登録は、常に1つずつ行
なわれ、同じシンボルが2度3度と出現することによっ
て2次3次の登録が行なわれるので、常に符号木の高次
には再現性を持ったシンボルのみが登録されることにな
り、符号木に登録はしたが実際には使われていないシン
ボルが存在するために生じる符号木の符号化効率の低下
を防止し、十分に辞書登録がなされた後の符号化効率が
大幅に向上する効果もある。
【0330】また、逐次登録型は全登録型よりも使用す
るメモリ容量(辞書容量)が少ないという利点もある。 (2)復元側の説明 図62は、本発明の関連技術2にかかるデータ復元方法
を実施するためのデータ復元装置4(図32参照)の内
部の構成例を示す図であり、この図62において、40
1Bは符号木保持部、402Bは文脈木保持部、403
Bは文脈変更部、404Bは復号部、407Bは符号登
録部、408Bは文脈登録部、409Bはラッチ、42
1Bは文脈保持部である。
【0331】ここで、符号木保持部(符号木保持手段)
401Bは、予めエスケープコード(ESC)(データ
未登録を示すデータ)を登録した符号木を保持するもの
であり、文脈木保持部(文脈木保持手段)402Bは、
復号したシンボル(データ)と文脈との組み合わせを登
録した文脈木を保持するものである。また、文脈変更部
403Bは、文脈木保持部402Bに保持されている文
脈木を検索し、到達したリーフがエスケープコードであ
った場合、文脈を変更するものであり、復号部404B
は、符号化側で符号化されたシンボルKが入力されたと
き、このシンボルKの符号に従って、符号木保持部40
1Bに保持されている符号木のルート(頂点)からリー
フ(データ格納点)へと走査してシンボルKの符号を復
号するものである。
【0332】さらに、符号変更部406Bは、復号した
シンボルK及びエスケープコードのリーフを他のリーフ
あるいは分岐点としてのノードと組み替えるものであ
る。また、符号登録部(符号登録手段)407Bは、符
号木決定手段としての機能を兼ねており、シンボルKを
復号する直前までに復号したシンボルから、シンボルK
の符号が登録されている符号木保持部401B内の符号
木を決定するとともに、エスケープコードを復号したと
き、この符号木に登録さているエスケープコードのリー
フを分岐して新たにリーフを作成し、復号したシンボル
Kをこのリーフに新規に登録するものである。
【0333】このため、符号登録部407Bおよび上述
の符号木保持部401は、それぞれ符号化側における符
号登録部322Bおよび符号木保持部301B(図52
参照)の内部構成(図53参照)と同様の構成を有して
いる。また、文脈登録部408Bは、符号登録部407
Bで登録したシンボルKを文脈木保持部402Bに保持
されている文脈木に登録するものであり、ラッチ409
Bは、復号部404Bで復号されたシンボルKを一旦保
持しておくものであり、文脈保持部421Bは、復号さ
れたシンボルKを保持するものである。
【0334】また、上述の符号木保持部401Bによ
り、予めエスケープコードを登録した符号木を保持する
ことができ、文脈木保持部402Bにより、復号したシ
ンボルKと文脈Pとの組み合わせを登録した文脈木を保
持できるようになっている。さらに、文脈変更部403
Bにより、到達したリーフがエスケープコードであった
場合、文脈を変更することができ、復号部404Bによ
り、符号化されたシンボルKの符号に従って符号木のル
ートからリーフへと走査してシンボルKの符号を復号で
きるようになっている。
【0335】また、符号木決定手段を兼ねる符号変更部
406により、直前までに復号したシンボルからシンボ
ルKの符号が保持されている符号木を決定することがで
き、復号したシンボルK及びエスケープコードのリーフ
を他のリーフあるいはノードと組み替えることができ
る。さらに、符号登録部407Bにより、エスケープコ
ードを復号したとき、エスケープコードのリーフを分岐
して新たにリーフを作成し、復号したシンボルKをこの
リーフに新規に登録することができる。
【0336】また、文脈登録部408Bにより、符号登
録部407Bで登録したシンボルKを文脈木保持部40
2Bの文脈木に登録することができ、ラッチ409Bに
より、復号部204Bで復号したシンボルKを一旦保持
することができ、文脈変保持部421により、復号部2
04Bで復号したシンボルKを保持することができる。
【0337】そして、上述の動作について、符号化側の
説明と同様に、図63および図64に示す復元側の動作
を示す処理ステップU1〜U14を参照しながら、さら
に詳述する。まず、図63に示すように、文脈保持部4
21Bはそれまでに復号したシンボル(文脈)を保持
し、文脈変更部403Bに出力し(ステップU1)、文
脈変更部403Bは、最初は送られてきた文脈をそのま
ま文脈木保持部402Bに出力する(ステップU2)。
【0338】また、文脈木保持部402は、文脈変更部
403Bから送られてきた文脈のID、すなわちルート
IDを復号部404Bに出力する(ステップU3)。こ
こで、復号部404Bでは、送られてきたルートIDに
対して符号(1ビット)が、例えば“1”ならば右下、
“0”ならば左下に位置するノード(あるいはリーフ)
IDを、符号木保持部401Bに要求する(ステップU
4)。
【0339】また、符号木保持部401Bは、要求され
たノード(あるいはリーフ)のノードIDを復号部40
4Bに返信する(ステップU5)。そして、復号部40
4B及び符号木保持部401Bは、符号木の終端である
リーフのリーフIDを得るまで上述の処理を繰り返す。
すなわち、復号部404Bは、符号化側で符号化された
符号に従って、復号するシンボルKが登録されているリ
ーフに到達するまで、符号木保持部401Bの符号木を
辿ってゆく。
【0340】そして、目的のリーフが発見されると、復
号部404Bは、このリーフを復号し、符号変更部40
6Bが、この復号したリーフを符号化側と同様にスプレ
イ処理を行なって符号長を更新する。ここで、この処理
で復号されたシンボルがESCであった場合、復号部4
04Bは、このシンボル(ESC)をラッチに送り(ス
テップU6)、ラッチはこのシンボルを一旦保持して、
文脈変更部403Bに送る(ステップU7)。文脈変更
部403Bは符号化側と同様の文脈変更処理を行なっ
て、再度復号を行なう。
【0341】そして、上述の処理で復号部404Bが復
号したシンボルが、ESC以外、すなわちシンボルKで
あるときは、図64に示すように、復号部404Bは、
ラッチ409B,文脈保持部421Bを介して、この復
号したシンボルKを文脈登録部408Bに送り(ステッ
プU8〜U11)、文脈登録部408Bは文脈木保持部
402BにこのシンボルKを新規に登録する。
【0342】また、符号登録部407Bは、文脈木保持
部407BからシンボルKが登録された文脈Pのルート
IDを受けて(ステップU12)、このルートIDを符
号木保持部401Bに送る(ステップU13)。符号木
保持部401Bでは、送られてきた文脈PのルートID
と同じルートIDをもつ符号木のルートIDを、符号登
録部407Bに返信し(ステップU14)、符号登録部
407Bは、このルートIDをもつ符号木に、シンボル
Kの新規符号を登録する(ステップU13と同じ経
路)。
【0343】なお、上述の復元側の符号登録部407B
が符号木保持部401BにシンボルKを登録する処理
は、符号化側における符号登録部322Bが符号木保持
部301BにシンボルKを登録する処理と同様である。
このため、符号化側の登録処理が、符号化側の説明にお
いて図58および図59にて示したような全登録型の場
合は、復元側においてもESCを復号した全ての文脈に
登録する全登録型となり、図61にて示したような逐次
登録型の場合は、復元側においても最後に復号されたE
SCの文脈にそれぞれシンボルKの登録を行なう逐次登
録型となる。
【0344】そして、符号化側の説明と同様に、上述の
復元側の処理は、図65に示すようなフローチャートで
表すことができる。即ち、文脈(変数)P0に最大次数
の数値を入力して初期化し(ステップV1)、この文脈
0を文脈Pに入力する(ステップV2)。つまり、符
号を復号する場合は、まず最大次数の文脈を用いて処理
を行なう。
【0345】そして、この最大次数の文脈Pに対応する
符号木において、リーフに登録されている符号を復号す
る(ステップV3)。さらに、この復号した符号がシン
ボルであるかをチェックし(ステップV4)、復号した
符号がシンボルでない、すなわちESCであった場合
は、符号化側と同様に、復号したESCのリーフをスプ
レイ処理し(ステップV4のNOルートからステップV
5)、文脈P内の最も高次のシンボル(最も古いシンボ
ル)を棄却して、文脈を1つ低次に移して変更し(ステ
ップV6)、ステップ2に戻る。すなわち、ESC以外
のシンボル(シンボルK)を復号するまで、文脈Pを最
高次数から1ずつ減じた文脈に変更してシンボルKが登
録されている文脈Pを検索する。
【0346】一方、復号した符号がシンボルであった場
合は、シンボルKが復号されたことになるので、このシ
ンボルKを出力し(ステップV4のYESルートからス
テップV7)、このシンボルKリーフを符号化側と同様
にしてスプレイ処理してシンボルKの符号長を短く(更
新)する(ステップV8)。さらに、文脈P0にシンボ
ルKを追加登録し(ステップV9)、ESCは棄却す
る。なお、この文脈P0の変更も符号化側と同一の処理
を行なう。
【0347】さらに、復号したシンボルKについて、符
号化側と同一の登録方法、例えば、符号化側のシンボル
Kの登録方法が全登録型なら全登録型により、ESCの
リーフを分岐して、新規シンボルKの登録を行なう(ス
テップV10)。そして、入力された全ての符号の復号
が終了したかチェックし(ステップV11)、終了して
いない場合は(ステップV11のNOルート)、処理は
ステップV2に戻って、全ての符号の復号が終了するま
で処理を繰り返す。
【0348】以上のように、本発明の関連技術2にかか
るデータ復元装置によれば、符号化側と同様に、シンボ
ルの新規登録処理において、既に符号木上に存在するリ
ーフを2つに分割してこのリーフの符号長を(分割前の
リーフの符号長+1)ビットにすることにより、新規登
録したシンボルKの符号及びエスケープコードの符号長
を最小で2ビットにすることができるので、エスケープ
コードを比較的多く復号するようなデータである場合、
または辞書登録(符号木へのシンボルの登録)が十分で
ない初期の段階などにおいて、データの復号効率が大幅
に向上する効果がある。
【0349】また、上述のようなシンボルの新規登録の
前にスプレイ処理を行なえば、復号したシンボルの符号
及びエスケープコードの符号長を最小で2ビット、新規
登録後にスプレイ処理を行なえば、エスケープコードの
符号を最小で1ビットにすることができるので、さらに
データの復号効率が大幅に向上する効果がある。さら
に、上述のように、復元側が符号化側と同一の登録処理
を行なうことで、符号を正確に復号することができる利
点がある。 (c−1)関連技術2の第1の変形例の説明 関連技術2の第1の変形例にかかるデータ圧縮装置及び
データ復元装置においても、上述の関連技術2と同様
に、図32に示すデータ圧縮方法及びデータ復元方法を
実施するためのものである。
【0350】また、上述した関連技術2と同様に、デー
タ圧縮装置3を符号化側、データ復元装置4を復元側と
して以下に説明する。 (1)符号化側の説明 符号化側の構成は、上述した関連技術2の説明中、図5
2にて前述したものの構成と同様である。
【0351】また、本関連技術2における図52に示す
符号登録部322Bには、符号木保持手段301Bに保
持されている符号木上の最長の符号長のリーフにシンボ
ルを登録するために、図66に示すように、新規ノード
ID発生部61,ラッチ62,親子情報更新部63及び
最長符号検出部(分岐位置検索手段)69が設けられて
おり、これに対応して、符号木保持部301Bには、内
部節点(ノードID)保持部65,符号木管理部67及
び外部節点/ESC−ID(リーフID)保持部68が
設けられている。
【0352】ここで、符号登録部322Bの内部におい
て、新規ノードID発生部61は、文脈木保持部302
Bから更新信号を受けて2つの新規ノードID(ID−
1,ID−2)を発生するものであり、ラッチ62は、
最長符号検出部69が検出したリーフIDをラッチする
ものである。また、親子情報更新部63は、処理対象の
ノードの上位のノードIDと右下に位置する下位ノード
のノードIDおよび左下に位置する下位ノードのノード
IDの3つ情報(ESC−ID,ID−1,ID−2)
からなる親子情報を受けてこの親子情報を変更し、符号
木保持部301Bに送るものである。
【0353】最長符号検出部(分岐位置検索手段)69
は、符号木保持部301Bから符号木のノードIDを得
て、その符号木の中で最長の符号長をもつリーフのID
(ID−0)を検出するものである。また、符号木保持
部301Bの内部において、内部節点(ノードID)保
持部65は、符号木のノードIDを保持するものであ
り、外部節点/ESC−ID(リーフID)保持部68
は、符号木のリーフIDを保持するものである。
【0354】符号木管理部67は、文脈木保持部302
Bから文脈IDを受けて、この文脈IDを、内部節点
(ノードID)保持部65および外部節点/ESC−I
D(リーフID)保持部68に送るものである。符号登
録部322Bおよび符号木保持部301Bが上述の構成
を有することにより、符号登録部322Bが符号木保持
部301Bに保持されている符号木上の最長の符号長を
もつリーフを検索し、エスケープコードを符号化した
後、検索した最長の符号長をもつリーフを分岐してシン
ボルKを新規に登録する。
【0355】さらに、上述の処理について、図67に示
すフローチャートの処理ステップW1〜W13を参照し
ながら詳述する。まず、シンボルKが含まれている文脈
を検索するために、文脈木保持部302Bに保持されて
いる文脈(文脈P)を選択し(ステップW1〜W2)、
この文脈PにシンボルKが登録されているかをチェック
し(ステップW3)、登録されている場合は、第3実施
形態の説明中、図58にて前述したステップQ9〜Q1
2と同様の処理を行なう(ステップW9〜W12)。
【0356】一方、文脈PにシンボルKが登録されてい
ない場合は、同じく図58のステップQ4〜Q5と同様
に、符号化部306BがESCの符号を出力し(ステッ
プW4)、符号変更部307Bが、符号木保持部301
Bに保持されている符号木のESCのリーフをスプレイ
処理する(ステップW5)。その後、符号木保持部30
1Bは、文脈PのID(ルートID)を文脈木保持部3
02Bから受けて、この文脈PのノードIDと親子情報
とを最長符号検出部69に送る。
【0357】最長符号検出部69では、親子情報から最
長の符号長を持つリーフX(p)のID(ID−0)を
検出する(ステップW6)。そして、検出したリーフX
(p)のID、ID−0をリーフID保持部68に送
り、このID−0とID−0に格納してあるシンボルを
ラッチ70でラッチする。
【0358】また、新規ノードID発生部71は、2つ
の新規ノードID(ID−1,ID−2)を発生し、親
子情報更新部63は、3つのID(ID−0,ID−
1,ID−2)を受けて親子情報を更新し、符号木保持
部301BのノードID保持部65に登録する。一方、
符号木保持部301BのリーフID保持部68には登録
シンボルKと新規ID(ID−2),ID−0に登録し
てあったシンボルとID−1を新規リーフとしてそれぞ
れ登録する(ステップW7)。
【0359】上述の処理を行なうことにより、最長の符
号長であったリーフはノードとなり、このノードの下に
2つの新規リーフが登録される。そして、文脈Pを変更
して(ステップW8)、文脈PにシンボルKが登録され
ていることを検出するまで上述の処理を繰り返す。この
ように、本発明の関連技術2の第1の変形例にかかるデ
ータ圧縮装置によれば、符号化側にて前述した効果に加
えて、文脈Pの符号木において、最長の符号長をもつ
(ルートからの距離が最も遠い)リーフX(p)を検出
し、このリーフX(p)を分岐してシンボルKとX
(p)に登録されていたシンボルの符号木への新規登録
を行なう。これにより、「最長の符号長」=「出現頻度
の最も低いシンボル」であるため、符号長が1ビット伸
びたことによる符号化効率の低下を最小限に抑えること
ができ、データ圧縮の処理速度が大幅に向上するととも
にデータ圧縮装置の処理負荷も大幅に軽減できる。
【0360】(2)復元側の説明 本関連技術2の第1の変形例にかかるデータ復元装置4
では、図62にて前述したものの構成と同様の構成を有
しており、さらに、この復元側における符号登録部40
7Bおよび符号木保持部401Bは、それぞれ符号化側
の符号登録部322Bおよび符号木保持部301Bと同
様の内部構成を有している(図66参照)。従って、符
号登録部407Bおよび符号木保持部401Bは、符号
化側の符号登録部322Bおよび符号木保持部301B
と同様の構成を有しているので、符号登録部407B
が、復号したシンボルの符号を符号木保持部401Bに
新規に登録する処理は、符号化側と同様の処理を行なう
ことになる。
【0361】このため、符号化側で符号化されたシンボ
ルKを復号する処理は、第3実施形態中、図65にて前
述した処理(ステップV1〜V11)と同様にして行な
えばよく、図65中のステップV10においては、符号
化側の処理ステップW7,W8(図67参照)を行なえ
ばよい。このように、本発明の関連技術2の第1の変形
例にかかるデータ復元装置によれば、符号化側と同様
に、文脈Pの符号木において最長の符号長をもつ(ルー
トからの距離が最も遠い)リーフX(p)を検出し、こ
のリーフX(p)を分岐してシンボルKとX(p)に登
録されていたシンボルの符号木への新規登録を行なうこ
とにより、「最長の符号長」=「出現頻度の最も低いシ
ンボル」であることから、前述の関連技術2の復元側に
おける効果に加えて、符号長が1ビット伸びたことによ
るデータの復号効率の低下を最小限に抑えることがで
き、データ復号の処理速度が大幅に向上するとともにデ
ータ復元装置の処理負荷も大幅に軽減できる効果があ
る。
【0362】さらに、上述のように、シンボルの復元側
の登録処理を符号化側の登録処理と同一の処理とするこ
とで、符号化側で符号化されたシンボルの符号を正確に
復号することができる効果がある。 (c−2)関連技術2の第2の変形例の説明 (1)符号化側の説明 本変形例においても、符号化側の構成は、図52にて前
述したものの構成と同様である。
【0363】そして、本関連技術2における図52に示
す符号登録部322Bには、符号木保持手段301Bに
保持されている符号木上に新規に登録されたリーフを分
岐してシンボルを登録するために、新規ノードID発生
部61,ラッチ62,親子情報更新部63及び最新登録
ID保持部70が設けられており、符号木保持部301
Bには、外部節点(リーフID)保持部64、内部節点
(ノードID)保持部65,ESC−ID保持部66及
び符号木管理部67が設けられている。
【0364】ここで、上述の構成の内、図53または図
66にて既述の符号と同じ符号は同じ部分を示すので、
その説明は省略する。本関連技術2で新たに設けられて
いる、最新登録ID保持部(分岐位置保持手段)70
は、符号木保持部301Bに保持されている符号木に最
後に(新規に)登録されたリーフのIDを保持するもの
である。
【0365】符号登録部322Bおよび符号木保持部3
01Bが上述の構成を有していることにより、符号登録
部322Bが、符号木保持部301Bに保持されている
符号木にシンボルが最後に登録された最新のリーフを分
岐して、この新たに作成されたリーフにシンボルKを新
規に登録することができる。以下に、上述の処理につい
て、図69の処理ステップX1〜X13を参照しなが
ら、さらに詳述する。
【0366】上述の処理は、最後に登録された、最新登
録のリーフのIDを最新登録ID保持部70に保持し、
そのIDを分岐することで新規登録を行なう。まず、シ
ンボルKが含まれている文脈を検索するために、文脈木
保持部302Bに保持されている文脈(文脈P)を選択
し(ステップX1〜X2)、この文脈PにシンボルKが
登録されているかをチェックし(ステップX3)、登録
されている場合は、第3実施形態の変形例の説明中、図
67にて前述したステップW10〜W13と同様の処理
を行なう(ステップX3のYESルートからステップX
10〜X13)。
【0367】一方、文脈PにシンボルKが登録されてい
ない場合は、同じく図67のステップW4〜W5と同様
に、符号化部306BがESCの符号を出力し(ステッ
プX4)、符号変更部307Bが、符号木保持部301
Bに保持されている符号木のESCのリーフをスプレイ
処理する(ステップX5)。その後、符号木保持部30
1Bは、文脈PのID(ルートID)を、そのまま最新
登録ID保持部70に出力する。
【0368】最新登録ID保持部70では、この文脈P
に対応する符号木の最新登録のリーフX(p)のリーフ
ID(ID−0)を符号木保持部301BのリーフID
保持部64に送り、ID−0とID−0に格納してある
シンボルをラッチ62でラッチする。新規ID発生部6
1は、2つの新規ID(ID−1,ID−2)を発生
し、親子情報更新部63が、3つのID(ID−0,I
D−1,ID−2)を受けて親子情報を更新することに
よりリーフX(p)を分岐し(ステップX6)、この情
報を符号木保持部301BのノードID保持部65に登
録する。
【0369】一方、符号木保持部301BのリーフID
保持部64には、登録シンボルKと、リーフX(p)に
登録してあったシンボルとを新規リーフとしてそれぞれ
登録し(ステップX7,X8)、さらに最新登録ID保
持部70には新規IDであるID−2を登録する。そし
て、文脈Pを変更し(ステップX9)、文脈Pにシンボ
ルKが登録されていることを検出するまで上述の処理を
繰り返す。
【0370】以上の処理を行なうことにより、新たなシ
ンボルKが入力されたときは、常に、シンボルKが入力
される直前に登録された最新の登録リーフを分割してこ
のリーフにシンボルKを登録する。このように、関連技
術2の第2の変形例にかかるデータ圧縮装置によれば、
シンボルの符号木への新規登録を、直前に登録したシン
ボルのリーフを分岐してこのリーフに登録することによ
り、「直前に登録したリーフのシンボル」=「比較的符
号長の長いシンボル」に近似できることから、第3実施
形態の第1の変形例にて前述したように最長の符号長を
もつリーフを検出する処理を省略することができ、さら
にデータ圧縮の処理速度が大幅に向上する効果がある。
【0371】(2)復元側の説明 復元側の構成は、符号化側と同様に、図62にて前述し
た構成と同様であり、さらに、この復元側における符号
登録部407Bおよび符号木保持部401Bは、それぞ
れ符号化側の符号登録部322Bおよび符号木保持部3
01Bと同様の内部構成をもつものである(図68参
照)。
【0372】従って、符号登録部407Bおよび符号木
保持部401Bが、符号化側の符号登録部322Bおよ
び符号木保持部301Bと同様の構成を有しているの
で、第3実施形態の第1の変形例における復元側と同様
に、符号登録部407Bが復号したシンボルの符号を符
号木保持部401Bに新規に登録する処理は、符号化側
の処理と同様に行なわれる。
【0373】このため、本復元側でも、符号化側で符号
化されたシンボルKを復号する処理は、図65にて前述
した処理(ステップV1〜V11)と同様にして行なわ
れる。即ち、図65中の処理ステップV11において
も、符号化側の登録処理である図69のステップX6〜
X8と同様の処理が行なわれている。このように、関連
技術2の第2の変形例にかかるデータ復元装置によれ
ば、シンボルの符号木への新規登録を、符号化側と同様
に、直前に登録したシンボルのリーフを分岐してこのリ
ーフに登録することにより、「直前に登録したリーフの
シンボル」=「比較的符号長の長いシンボル」に近似で
きることから、第3実施形態の第1の変形例にて前述し
たように最長の符号長をもつリーフを検出する処理を省
略することができ、さらにデータ復号の処理速度が大幅
に向上する効果がある。
【0374】そして、このようにシンボルの符号木への
新規登録の処理を符号化側の登録処理と同一にすること
で、符号化側で符号化されたシンボルの復号処理を正確
に行うことができる効果もある。なお、以上の関連技術
2および各変形例において、符号化側で述べた方法を、
符号化するデータあるいはシステムによって切り替える
ために、符号データの伝送に先立って、ヘッダ部にどの
方式を用いているかのID番号を付加し、復元側ではそ
のID番号から符号化側で用いた登録方式を選択するよ
うにしてもよい。
【0375】
【発明の効果】以上詳述したように、請求項1記載の本
発明のデータ圧縮方法によれば、入力データを過去に出
現した履歴に応じて符号化して圧縮するデータ圧縮方法
において、入力データとそれまでに連続したn個のデー
タからなる文脈との組み合わせを保持する文脈収集過程
と、文脈毎に独立した符号木を保持する符号木保持過程
と、文脈収集過程の文脈に該当したデータが出現したと
き、符号木の頂点を意味するルートから符号木上のデー
タが格納されている点としてのリーフまでの分岐点とし
てのノードの分岐に応じた固有のデータとして定義され
る符号を出力する符号出力過程と、符号出力過程での処
理の後、データのリーフと他データのリーフあるいはノ
ードとを組み替える符号長変更過程とを有するので、入
力データの出現頻度を求めて確率モデルを構築して各入
力データに符号を割り当て符号表を作成し、この符号表
から符号化する文字の符号を出力するという2段階の処
理を同時に行なうことができ、これにより圧縮処理の速
度が大幅に向上するという効果がある。また、データが
入力されるごとに既に構築されている確率モデルを再構
築するという膨大な演算処理を省くことができ、これに
より圧縮処理の速度がさらに向上する効果もある。さら
に、過去に出現した入力データと同じデータが繰り返し
出現するほど、そのデータの符号を少ないビット数で表
すことができ、これによりデータ圧縮における圧縮効果
が大幅に向上する効果もある。
【0376】また、請求項2記載の本発明のデータ圧縮
方法によれば、上述の請求項1記載の本発明のデータ圧
縮方法が有する各過程に加えて、入力データと文脈との
組み合わせが文脈収集過程に保持されているか否かを判
別する文脈判別過程と、予めデータ未登録を示すデータ
として定義されるエスケープコードを登録したリーフを
符号木に保持するエスケープコード保持過程とを有して
おり、入力データと文脈との組み合わせが文脈収集過程
の履歴に保持されていない組み合わせであったとき、エ
スケープコードを出力し、文脈収集過程に保持されてい
る組み合わせが得られるまで、データの文脈を短くする
処理を繰り返すことを特徴としているので、上述の請求
項1記載の本発明のデータ圧縮方法にかかる効果に加え
て、入力データと文脈との組み合わせの履歴の全てを予
め登録しておかなくてもよく、これによりデータ圧縮の
処理速度が大幅に向上する効果がある。さらに、入力デ
ータと文脈との組み合わせが得られるまでの時間を短縮
することができ、これによりデータ圧縮の処理速度が大
幅に向上する効果もある。
【0377】また、請求項3記載の本発明のデータ圧縮
方法によれば、上述の請求項2記載の本発明のデータ圧
縮方法が有する各過程に加えて、入力データと文脈との
組み合わせが文脈収集過程の履歴に保持されていない組
み合わせであったとき、入力データと文脈との組み合わ
せを文脈収集過程に新規に登録する文脈新規登録過程
と、入力データと文脈との組み合わせが文脈収集過程の
履歴に保持されていない組み合わせであったとき、デー
タを文脈に対応した符号木に新規に登録する符号木新規
登録過程とを有しており、入力データと文脈との組み合
わせが文脈収集過程の履歴に保持されていない組み合わ
せであったとき、エスケープコードの符号を出力すると
同時に、入力データと文脈との組み合わせを履歴に登録
するとともに、データを文脈に対応した符号木に登録
し、文脈収集過程に保持されている組み合わせが得られ
るまでデータの文脈を短くする処理を繰り返すことを特
徴としているので、上述の請求項2記載の本発明のデー
タ圧縮方法における効果に加えて、さらに、過去に予め
登録されていなかった入力データを新規に登録してゆく
ことができるとともにこの新規に登録したデータも次の
符号化処理においては早い段階で符号化することがで
き、これにより符号化処理が進むほどデータの圧縮効果
が大幅に向上する効果がある。
【0378】さらに、請求項4記載の本発明のデータ圧
縮方法によれば、請求項3記載の本発明のデータ圧縮方
法が有する各過程とそれぞれ同様の過程を有し、文脈新
規登録過程及び符号木新規登録過程においては、履歴に
あると判断された直前の文脈とデータとの組み合わせの
みを登録することを特徴としているので、請求項3記載
の本発明のデータ圧縮方法による効果に加えて、過去の
入力データの履歴にないと判断された文脈とデータとの
組み合わせを全て登録する必要がなく、これによりデー
タの圧縮処理がさらに大幅に向上する効果がある。さら
に、実際に出現頻度が高いデータについてのみ符号をも
たせる(登録する)ことができ、これによりデータの圧
縮効率が大幅に向上する効果もある。
【0379】また、請求項5記載の本発明のデータ復元
方法によれば、入力データを過去の入力データの履歴に
応じて符号化した符号データを復元するデータ復元方法
において、復号データと文脈との組み合わせの履歴を保
持する文脈収集過程と、文脈に応じておのおの独立した
符号木を保持する符号木保持過程と、直前までに復号し
たデータの文脈からデータの符号木を決定する符号木決
定過程と、符号木決定過程で決定した符号木とデータの
符号からデータを復号する復号過程と、復号過程の復号
の後に、符号化側と同一の手段で、符号木上のデータ格
納点としてのリーフ間又はリーフと符号木の分岐点とし
てのノードとを組み替える符号長変更過程とを有するの
で、入力データの出現頻度を求めて確率モデルを構築し
て各入力データに符号を割り当て符号表を作成し、この
符号表から復号する文字を出力するという2段階の処理
を同時に行なうことができ、これによりデータの復元処
理の速度が大幅に向上するという効果がある。また、デ
ータが入力されるごとに既に構築されている確率モデル
を再構築するという膨大な演算処理を省くことができ、
これにより復元処理の速度がさらに向上する効果もあ
る。さらに、過去に出現した入力データの符号と同じデ
ータの符号が繰り返し出現するほど、そのデータの符号
を少ないビット数で表すことができ、これによりデータ
復元における復元効果が大幅に向上する効果もある。
【0380】さらに、請求項6記載の本発明のデータ復
元方法によれば、請求項5記載の本発明のデータ復元方
法が有する各過程とそれぞれ同様の過程を有し、符号木
にはそれぞれの文脈に応じた符号木毎に予めデータ未登
録を示すデータとして定義されるエスケープコードを登
録し、復号時にエスケープコードを復号した場合、エス
ケープコード以外が復号されるまで、文脈の長さを短く
する処理を繰り返すことを特徴としているので、上述の
請求項5記載の本発明のデータ復元方法における効果に
加えて、復号データと文脈との組み合わせの履歴の全て
を予め登録しておかなくてもよく、これによりデータ復
元の処理速度が大幅に向上する効果がある。さらに、復
号データと文脈との組み合わせが得られるまでの時間を
短縮することができ、これによりデータ復元の処理速度
が大幅に向上する効果もある。
【0381】また、請求項7記載の本発明のデータ復元
方法によれば、請求項6記載の本発明のデータ復元方法
が有する各過程に加えて、文脈収集過程にデータを新規
に登録する文脈新規登録過程と、復号したデータを文脈
に応じた符号木に新規に登録する符号木新規登録過程と
を有しており、データ未登録を示すデータとして定義さ
れるエスケープコードを復号したとき、文脈新規登録過
程及び符号木新規登録過程を実行して、エスケープコー
ド以外が復号されるまで、文脈の長さを短くする処理を
繰り返すことを特徴としているので、上述の請求項6記
載の本発明のデータ復元方法における効果に加えて、さ
らに、過去に予め登録されていなかった復号データを新
規に登録してゆくことができるとともにこの新規に登録
した復号データも次の復号処理においては早い段階で復
号することができ、これにより復号処理が進むほどデー
タの復元効果が大幅に向上する効果がある。
【0382】さらに、請求項8記載の本発明のデータ復
元方法によれば、請求項5記載のデータ復元方法が有す
る各過程とそれぞれ同様の過程を有し、データ未登録を
示すデータとして定義されるエスケープコード以外が復
号されるまでの処理において、エスケープコードを一つ
でも復号した時、エスケープコード以外を復号した直前
の文脈においてのみ、文脈新規登録過程および符号木新
規登録過程での各新規登録処理を行なうことを特徴とし
ているので、請求項7記載の本発明のデータ復元方法に
よる効果に加えて、過去の入力データの履歴にないと判
断された文脈とデータとの組み合わせを全て登録する必
要がなく、これによりデータ復元の処理速度がさらに大
幅に向上する効果がある。さらに、実際に出現頻度が高
いデータについてのみ符号をもたせる(登録する)こと
ができ、これによりデータの復元効率が大幅に向上する
効果もある。
【0383】また、請求項9記載の本発明のデータ圧縮
装置によれば、入力データを過去に出現した履歴に応じ
て符号化して圧縮するデータ圧縮装置において、入力デ
ータの直前までに入力されたn個の入力データからなる
文脈を保持する前置データ保持手段と、入力データと文
脈との組み合わせを保持する履歴保持手段と、文脈毎に
独立した符号木を保持する符号木保持手段と、前置デー
タ保持手段に保持されている直前までの入力データから
データの符号木を決定する符号木決定手段と、符号木決
定手段で選択した符号木の頂点を意味するルートからデ
ータが格納されているリーフに沿って途中に位置する分
岐点としてのノードからの分岐に従って固有のデータを
出力する符号出力手段と、符号化したリーフと他のリー
フあるいはノードとを組み替える符号長変更手段と、デ
ータを前置データ保持手段に登録する前置データ更新手
段とをそなえて構成されているので、入力データの出現
頻度を求めて確率モデルを構築して各入力データに符号
を割り当て符号表を作成し、この符号表から符号化する
データの符号を出力するという2段階の処理を同時に行
なうことができ、これによりデータ圧縮の処理速度が大
幅に向上するという効果がある。また、データが入力さ
れるごとに既に構築されている確率モデルを再構築する
という膨大な演算処理を省くことができ、これによりデ
ータ圧縮の処理速度がさらに向上する効果もある。ま
た、過去に符号化したデータと同じデータが出現する毎
に、符号化したリーフと他のリーフあるいはノードとを
組み替えて符号長を変更することができるので、同じデ
ータが繰り返し出現するほど、そのデータの符号を少な
いビット数で表すことができ、これによりデータの圧縮
効果が大幅に向上する効果もある。
【0384】さらに、請求項10記載の本発明のデータ
圧縮装置によれば、入力データを過去に出現した履歴に
応じて符号化して圧縮するデータ圧縮装置において、入
力データの直前までに入力されたn個の入力データから
なる文脈を保持する前置データ保持手段と、入力データ
と文脈との組み合わせを保持する履歴保持手段と、デー
タ未登録を示すデータとして定義されるエスケープコー
ドをあらかじめ登録した文脈毎に独立した符号木を保持
する符号木保持手段と、文脈と入力データからデータの
符号木を決定する符号木決定手段と、符号木決定手段で
決定した符号木にデータが登録されているか否かを判別
する文脈判別手段と、符号木にデータが登録されていな
いときは符号木の頂点を意味するルートからエスケープ
コードのデータ格納点としてのリーフまでの途中に位置
する分岐点としてのノードからの分岐に従ってエスケー
プコードを出力するエスケープコード出力手段と、符号
木にデータが登録されていないときは文脈の長さnを短
くする文脈変更手段と、符号木にデータが登録されてい
るときは符号木のルートからデータのリーフまでの途中
に位置するノードからの分岐に従ってデータの符号を出
力する符号出力手段と、符号化したリーフと他のリーフ
あるいはノードとを組み換える符号長変更手段と、デー
タを前置データ保持手段に登録する前置データ更新手段
と、エスケープコードを符号化したときはデータの符号
化を行なうまで処理を繰り返す制御手段とをそなえて構
成されているので、上述の請求項9記載の本発明のデー
タ圧縮装置における効果に加えて、入力データと文脈と
の組み合わせの履歴の全てを予め登録しておかなくても
よい。従って、データ圧縮の処理速度が大幅に向上する
とともに、文脈の登録に使用するメモリを大幅に削減で
きるので、データ圧縮装置の処理負荷も大幅に軽減でき
る効果がある。
【0385】また、請求項11記載の本発明のデータ圧
縮装置によれば、入力データを過去に出現した履歴に応
じて符号化して圧縮するデータ圧縮装置において、入力
データの直前までに入力されたn個の入力データからな
る文脈を保持する前置データ保持手段と、入力データと
文脈との組み合わせを保持する履歴保持手段と、データ
未登録を示すデータとして定義されるエスケープコード
を予め登録した文脈毎に独立した符号木を保持する符号
木保持手段と、文脈と入力データからデータの符号木を
決定する符号木決定手段と、符号木決定手段で決定した
符号木にデータが登録されているか否かを判別する文脈
判別手段と、符号木にデータが登録されていないときは
符号木の頂点を意味するルートからエスケープコードの
データ格納点としてのリーフまでの中に位置する分岐点
としてのノードからの分岐に従ってエスケープコードを
出力するエスケープ出力手段と、符号木にデータが登録
されていないときは履歴保持手段にデータと文脈の組み
合わせを登録する履歴登録手段と、符号木にデータが登
録されていないときは符号木にデータを新規に登録する
符号登録手段と、符号木にデータが登録されていないと
きは文脈の長さnを短くする文脈変更手段と、符号木に
データが登録されているときは符号木のルートからデー
タのリーフまでの途中に位置するノードからの分岐に従
ってデータの符号を出力する符号出力手段と、符号化し
たリーフと他のリーフあるいはノードとを組み換える符
号長変更手段と、データを前置データ保持手段に登録す
る前置データ更新手段と、エスケープコードを符号化し
たときはデータの符号化を行なうまで処理を繰り返す制
御手段とをそなえて構成されているので、上述の請求項
11記載の本発明のデータ圧縮装置における効果に加え
て、さらに、過去に予め登録されていなかった入力デー
タを新規に登録してゆくことができるとともに、この新
規に登録したデータも次の符号化処理においては早い段
階で符号化することができ、これにより符号化処理が進
むほどデータの圧縮効果が大幅に向上するとともにデー
タ圧縮装置の処理負荷も大幅に軽減できる効果がある。
【0386】さらに、請求項12記載の本発明のデータ
圧縮装置によれば、入力データを過去に出現した履歴に
応じて符号化して圧縮するデータ圧縮装置において、入
力データの直前までに入力されたn個の入力データから
なる文脈を保持する前置データ保持手段と、入力データ
と文脈との組み合わせを保持する履歴保持手段と、デー
タ未登録を示すデータとして定義されるエスケープコー
ドをあらかじめ登録した文脈毎に独立した符号木を保持
する符号木保持手段と、文脈と入力データからデータの
符号木を決定する符号木決定手段と、符号木決定手段で
決定した符号木にデータが登録されているか否かを判別
する文脈判別手段と、符号木にデータが登録されていな
いときは符号木の頂点を意味するルートからエスケープ
コードのデータ格納点としてのリーフまでの途中に位置
する分岐点としてのノードからの分岐に従ってエスケー
プコードを出力するエスケープコード出力手段と、符号
木にデータが登録されていないときは文脈の長さnを短
くする文脈変更手段と、符号木にデータが登録されてい
るときは符号木のルートからデータのリーフまでの途中
に位置するノードからの分岐にしたがってデータの符号
を出力するエスケープ符号出力手段と、履歴保持手段に
データと文脈の組み合わせを登録する履歴登録手段と、
符号木にデータを新規に登録する符号登録手段と、符号
化したリーフと他のリーフあるいはノードとを組み換え
る符号長変更手段と、データを前置データ保持手段に登
録する前置データ保持手段に登録する前置データ更新手
段と、データの符号化時に一度でもエスケープコードを
符号化したときは、データの符号化の直前の文脈とデー
タとの組み合わせを履歴登録手段で履歴保持手段に登録
し、データの符号化の直前に符号化したエスケープコー
ドを持つ符号木に符号登録手段でデータを新規に登録す
る制御手段とをそなえて構成されているので、上述の請
求項11記載の本発明のデータ圧縮装置による効果に加
えて、過去の入力データの履歴にないと判断された文脈
とデータとの組み合わせを全て登録する必要がなく、こ
れによりデータの圧縮処理がさらに大幅に向上する効果
がある。さらに、実際に出現頻度が高いデータについて
のみ符号をもたせる(登録する)ことができ、これによ
りデータの圧縮効率が大幅に向上する効果もある。そし
て、以上のような効果により、データ圧縮装置の性能が
飛躍的に向上する効果がある。
【0387】また、請求項13記載の本発明のデータ復
元装置によれば、過去に出現した履歴に応じて符号化し
た符号を復号するデータ復元装置において、過去に復号
したn個のデータを保持する前置データ保持手段と、復
号したデータと文脈との組み合わせを保持する履歴保持
手段と、文脈毎に独立した符号木を保持する符号木保持
手段と、前置データ保持手段に保持されている文脈から
データを復号するための符号木を決定する符号木決定手
段と、符号に従って符号木決定手段で選択した符号木の
頂点を意味するルートから分岐点としてのノードを走査
して到達したデータ格納点としてのリーフに格納されて
いるデータを出力する復号手段と、復号したリーフと他
のリーフあるいはノードとを組み替える符号長変更手段
と、復号したデータを前置データ保持手段に登録する前
置データ更新手段とをそなえて構成されているので、入
力データの出現頻度を求めて確率モデルを構築して各入
力データに符号を割り当て符号表を作成し、この符号表
から復号する文字を出力するという2段階の処理を同時
に行なうことができ、これによりデータの復元処理の速
度が大幅に向上するという効果がある。また、データが
入力されるごとに既に構築されている確率モデルを再構
築するという膨大な演算処理を省くことができ、これに
より復元処理の速度がさらに向上する効果もある。さら
に、過去に出現した入力データの符号と同じデータの符
号が繰り返し出現するほど、そのデータの符号を少ない
ビット数で表すことができ、これによりデータ復元にお
ける復元効果が大幅に向上する効果もある。そして、以
上のような効果により、データ復元装置の性能が飛躍的
に向上する効果がある。
【0388】さらに、請求項14記載の本発明のデータ
復元装置によれば、過去に出現した履歴に応じて符号化
した符号を復号するデータ復元装置において、過去に復
号したn個のデータを保持する前置データ保持手段と、
復号したデータと文脈との組み合わせを保持する履歴保
持手段と、データ未登録を示すデータとして定義される
エスケープコードをあらかじめ登録した符号木を保持す
る符号木保持手段と、前置データ保持手段に保持されて
いる文脈からデータを復号するための符号木を決定する
符号木決定手段と、符号に従って符号木決定手段で選択
した符号木の頂点を意味するルートから分岐点としての
ノードを走査して到達したデータ格納点としてのリーフ
に格納されているデータを出力する復号手段と、復号し
たリーフと他のリーフあるいはノードとを組み替える符
号長変更手段と、出力したデータがエスケープコードで
あったときデータを棄却し文脈を短くする文脈変更手段
と、復号したデータを前置データ保持手段に登録する前
置データ更新手段と、エスケープコードを復号した時は
文脈変更手段で文脈を再設定し、エスケープコード以外
が復号されるまで処理を繰り返す制御手段とをそなえて
構成されているので、上述の請求項13記載の本発明の
データ復元装置における効果に加えて、復号データと文
脈との組み合わせの履歴の全てを予め登録しておかなく
てもよく、これによりデータ復元の処理速度が大幅に向
上する効果がある。さらに、復号データと文脈との組み
合わせが得られるまでの時間を短縮することができ、こ
れによりデータ復元の処理速度が大幅に向上するととも
にデータ復元装置の性能も大幅に向上する効果もある。
【0389】また、請求項15記載の本発明のデータ復
元装置によれば、過去に出現した履歴に応じて符号化し
た符号を復号するデータ復元装置において、過去に復号
したn個のデータを保持する前置データ保持手段と、復
号したデータと文脈との組み合わせを保持する履歴保持
手段と、エスケープコードをあらかじめ登録した符号木
を保持する符号木保持手段と、前置データ保持手段に保
持されている文脈からデータを復号するための符号木を
決定する符号木決定手段と、符号に従って符号木決定手
段で選択した符号木の頂点を意味するルートから分岐点
としてのノードを走査して到達したデータ格納点として
のリーフに格納されているデータを出力する復号手段
と、復号したリーフと他のリーフあるいはノードとを組
み替える符号長変更手段と、出力したデータがエスケー
プコードであったとき、データを棄却し文脈を短くする
文脈変更手段と、復号したデータを前置データ保持手段
に登録する前置データ更新手段と、データの復号処理で
エスケープコードを復号したときの全ての文脈と復号し
たデータとを履歴保持手段に登録する履歴登録手段と、
データの復号処理でエスケープコードを復号した時の文
脈に対応した全ての符号木にデータの符号を登録する符
号登録手段と、エスケープコードを復号した時は文脈変
更手段で文脈を再設定し、エスケープコード以外が復号
されるまで処理を繰り返す制御手段とをそなえて構成さ
れているので、上述の請求項14記載の本発明のデータ
復元装置における効果に加えて、さらに、過去に予め登
録されていなかった復号データを新規に登録してゆくこ
とができるとともにこの新規に登録した復号データも次
の復号処理においては早い段階で復号することができ、
これにより復号処理が進むほどデータの復元効果が大幅
に向上するとともに、データ復元装置の性能も大幅に向
上する効果がある。
【0390】さらに、請求項16記載の本発明のデータ
復元装置によれば、過去に出現した履歴に応じて符号化
した符号を復号するデータ復元装置において、過去に復
号したn個のデータを保持する前置データ保持手段と、
復号したデータと文脈との組み合わせを保持する履歴保
持手段と、データ未登録を示すデータとして定義される
エスケープコードをあらかじめ登録した符号木を保持す
る符号木保持手段と、前置データ保持手段に保持されて
いる文脈からデータを復号するための符号木を決定する
符号木決定手段と、符号に従って符号木決定手段で選択
した符号木の頂点を意味するルートから分岐点としての
ノードを走査して到達したデータ格納点としてのリーフ
に格納されているデータを出力する復号手段と、復号し
たリーフと他のリーフあるいはノードとを組み替える符
号長変更手段と、出力したデータがエスケープコードで
あったときデータを棄却し文脈を短くする文脈変更手段
と、復号したデータを前置データ保持手段に登録する前
置データ更新手段と、データの復号処理でエスケープコ
ードを最後に復号した時の文脈と復号したデータとを履
歴保持手段に登録する履歴登録手段と、データの復号処
理で最後にエスケープコードを復号した時の文脈に対応
した符号木にデータの符号を登録する符号登録手段と、
エスケープコードを復号した時は文脈変更手段で文脈を
再設定し、エスケープコード以外が復号されるまで処理
を繰り返す制御手段とをそなえて構成されているので、
請求項15記載の本発明のデータ復元装置による効果に
加えて、過去の入力データの履歴にないと判断された文
脈とデータとの組み合わせを全て登録する必要がなく、
これによりデータ復元の処理がさらに大幅に向上する効
果がある。さらに、実際に出現頻度が高いデータについ
てのみ符号をもたせる(登録する)ことができ、これに
よりデータの復元効率が大幅に向上するとともにデータ
復元装置の性能も大幅に向上する効果がある。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の原理ブロック図である。
【図3】本発明の原理ブロック図である。
【図4】本発明の原理ブロック図である。
【図5】本発明の原理ブロック図である。
【図6】本発明の原理ブロック図である。
【図7】本発明の原理ブロック図である。
【図8】本発明の原理ブロック図である。
【図9】本発明に関連する技術を説明するためのブロッ
ク図である。
【図10】本発明に関連する技術を説明するためのブロ
ック図である。
【図11】本発明に関連する技術を説明するためのブロ
ック図である。
【図12】本発明に関連する技術を説明するためのブロ
ック図である。
【図13】本発明に関連する技術を説明するためのブロ
ック図である。
【図14】本発明に関連する技術を説明するためのブロ
ック図である。
【図15】本発明に関連する技術1にかかるデータ圧縮
装置及びデータ復元装置の構成を示すブロック図であ
る。
【図16】(a)は文脈木の格納形式の一例を示す図で
ある。(b)は辞書の親子関係を示す図である。
【図17】符号木の初期状態を説明するための図であ
る。
【図18】符号木を格納する配列の一例を示す図であ
る。
【図19】(a),(b)はそれぞれスプレイ符号の符
号更新の基本操作およびスプレイ符号の符号更新の一例
を説明するための図である。
【図20】関連技術1にかかる符号化の手順を説明する
ためのフローチャートである。
【図21】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図22】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図23】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図24】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図25】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図26】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図27】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図28】(a),(b)は、関連技術1にかかる文脈
木と符号木の更新手順を説明するための図である。
【図29】関連技術1にかかる文字列の符号化後の例を
説明するための図である。
【図30】(a),(b)は文脈木の作成手順のアルゴ
リズムを示す図である。
【図31】関連技術1にかかる復号化の手順を説明する
ためのフローチャートである。
【図32】本発明の一実施形態にかかるデータ圧縮装置
およびデータ復元装置の構成を示すブロック図である。
【図33】本実施形態にかかるデータ圧縮装置の構成を
示すブロック図である。
【図34】本実施形態にかかる符号化部の構成を示すブ
ロック図である。
【図35】本実施形態にかかる符号化の手順を説明する
ためのフローチャートである。
【図36】本実施形態にかかる符号の出力手順を説明す
るためのフローチャートである。
【図37】本実施形態にかかる符号木の組み替え手順を
説明するためのフローチャートである。
【図38】本実施形態にかかるデータ復元装置の構成を
説明するためのブロック図である。
【図39】本実施形態にかかる復号部の構成を説明する
ためのブロック図である。
【図40】本実施形態にかかる復号化の手順を説明する
ためのフローチャートである。
【図41】本実施形態にかかる復号化の手順を説明する
ためのフローチャートである。
【図42】本実施形態の第1の変形例にかかるデータ圧
縮装置の構成を説明するためのブロック図である。
【図43】本実施形態の第1の変形例にかかる符号化の
手順を説明するためのフローチャートである。
【図44】本実施形態の第1の変形例にかかるデータ復
元装置の構成を説明するためのブロック図である。
【図45】本実施形態の第1の変形例にかかる復号化の
手順を説明するためのフローチャートである。
【図46】本実施形態の第2の変形例にかかるデータ圧
縮装置の構成を説明するためのブロック図である。
【図47】本実施形態の第2の変形例にかかる符号化の
手順を説明するためのフローチャートである。
【図48】本実施形態の第2の変形例にかかるデータ復
元装置の構成を説明するためのブロック図である。
【図49】本実施形態の第2の変形例にかかる復号化の
手順を説明するためのフローチャートである。
【図50】本実施形態の第3の変形例にかかる符号化の
手順を説明するためのフローチャートである。
【図51】本実施形態の第3の変形例にかかる復号化の
手順を説明するためのフローチャートである。
【図52】本発明に関連する技術2にかかるデータ圧縮
装置の構成を説明するためのブロック図である。
【図53】関連技術2にかかる符号登録部及び符号木保
持部の構成を説明するためのブロック図である。
【図54】関連技術2にかかるデータ圧縮装置の動作を
説明するための図である。
【図55】関連技術2にかかるデータ圧縮装置の動作を
説明するための図である。
【図56】関連技術2にかかるデータ圧縮装置の動作を
説明するための図である。
【図57】(a),(b)はそれぞれ符号木および文脈
木の一例を示す図である。
【図58】関連技術2にかかる符号化の手順を説明する
ためのフローチャートである。
【図59】関連技術2にかかる符号化の手順を説明する
ためのフローチャートである。
【図60】(a),(b)は関連技術2にかかる符号の
新規登録の状態を示す図である。
【図61】関連技術2にかかる符号化の他の手順を説明
するためのフローチャートである。
【図62】関連技術2にかかるデータ復元装置の構成を
説明するためのブロック図である。
【図63】関連技術2にかかるデータ復元装置の動作を
説明するための図である。
【図64】関連技術2にかかるデータ復元装置の動作を
説明するための図である。
【図65】関連技術2にかかる復号化の手順を説明する
ためのフローチャートである。
【図66】関連技術2の第1の変形例にかかる符号登録
部及び符号木保持部の構成を説明するためのブロック図
である。
【図67】関連技術2の第1の変形例にかかる符号化の
手順を説明するためのフローチャートである。
【図68】関連技術2の第2の変形例にかかる符号登録
部及び符号木保持部の構成例を説明するためのブロック
図である。
【図69】関連技術2の第2の変形例にかかる符号化の
手順を説明するためのフローチャートである。
【図70】(a),(b)は多値算術符号化の原理を説
明するための図である。
【図71】(a),(b)は従来の文字単位に圧縮する
多値算術符号化の手順を示すフローチャートである。
【図72】多値算術符号化のアルゴリズムの一例を示す
図である。
【図73】(a),(b)はスプレイ符号化の原理を説
明するための図である。
【図74】確率統計型符号化の原理を説明するための図
である。
【図75】(a),(b)は文脈の木の登録例を示す図
である。
【符号の説明】
1,3 データ圧縮装置 2,4 データ復元装置 11,22 文脈収集過程 12,21 スプレイ符号化過程 41 上位ノード判別部 42 ノード番号管理部(メモリ) 43 位置判別部 44,48 ラッチ 45 スタック 46 下位ノード判別部 47 葉/節判別部 61 新規ノードID発生部 62 ラッチ 63 親子情報更新部 64 外部節点(リーフID)保持部 65 内部節点(ノードID)保持部 66 ESC−ID保持部 67 符号木管理部 68 外部節点/ESC−ID(リーフID)保持部 69 最長符号検出部(分岐位置検索手段) 70 最新登録ID保持部(分岐位置保持手段) 100,200 前置データ保持手段 100A−1〜100A−n,200A−1〜200A
−n 前置データ保持部 101,201 履歴保持手段 101A,201A 文脈履歴保持部 102,202,107,207,301,401 符
号木保持手段 102A,202A,107A,207A,301B,
401B 符号木保持部 103,203,403 符号木決定手段 103A,203A 符号木決定部 104 符号出力手段 104A,104A′,306B 符号化部 105,205 符号長変更手段 105A,205A 符号木更新部 106,206 前置データ更新手段 106A,206A 文脈更新部 108 文脈判別手段 108A 文脈判別部 109 エスケープコード出力手段 110,208,305,405 文脈変更手段 110A,210A,305B,403B 文脈変更部 111 符号出力手段 112,209 履歴登録手段 113,114,115,212,304,309,3
11,407,410,412 符号登録手段 112A,212A,322B,407B 符号登録部 116,117,213 制御手段 204,404 復号手段 204A,204A′,404B 復号部 303 文脈登録手段 303B,408B 文脈登録部 302,402 文脈木保持手段 302B,402B 文脈木保持部 306 符号化手段 307,406 符号更新手段 406B 符号変更部 308,409 分岐位置保持手段 310,411 分岐位置検索手段 321B,421B 文脈保持部 408,413,414 文脈木登録手段 409B ラッチ 511 文脈収集 512 動的可変長符号化
───────────────────────────────────────────────────── フロントページの続き (72)発明者 吉田 茂 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5J064 AA03 BA00 BA09 BA10 BA11 BB06 BC02 BC27 BC28 BC29 BD04

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 入力データを過去に出現した履歴に応じ
    て符号化して圧縮するデータ圧縮方法において、 入力データとそれまでに連続したn個のデータからなる
    文脈との組み合わせを保持する文脈収集過程と、 上記文脈毎に独立した符号木を保持する符号木保持過程
    と、 上記文脈収集過程の文脈に該当したデータが出現したと
    き、上記符号木の頂点を意味するルートから上記符号木
    上の上記データが格納されている点としてのリーフまで
    の分岐点としてのノードの分岐に応じた固有のデータと
    して定義される符号を出力する符号出力過程と、 上記符号出力過程での処理の後、上記データのリーフと
    他データのリーフあるいはノードとを組み替える符号長
    変更過程とを有することを特徴とする、データ圧縮方
    法。
  2. 【請求項2】 入力データを過去に出現した履歴に応じ
    て符号化して圧縮するデータ圧縮方法において、 入力データとそれまでに連続したn個のデータからなる
    文脈との組み合わせを保持する文脈収集過程と、 上記文脈毎に独立した符号木を保持する符号木保持過程
    と、 上記文脈収集過程の文脈に該当したデータが出現したと
    き、上記符号木の頂点を意味するルートから上記符号木
    上の上記データが格納されている点としてのリーフまで
    の分岐点としてのノードの分岐に応じた固有のデータと
    して定義される符号を出力する符号出力過程と、 上記符号出力過程での処理の後、上記データのリーフと
    他データのリーフあるいはノードとを組み替える符号長
    変更過程とをそなえるとともに、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程に保持されているか否かを判別する文脈判別過程
    と、 予めデータ未登録を示すデータとして定義されるエスケ
    ープコードを登録したリーフを上記符号木に保持するエ
    スケープコード保持過程とを有し、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程の履歴に保持されていない組み合わせであったと
    き、上記エスケープコードを出力し、上記文脈収集過程
    に保持されている組み合わせが得られるまで、上記デー
    タの文脈を短くする処理を繰り返すことを特徴とする、
    データ圧縮方法。
  3. 【請求項3】 入力データを過去に出現した履歴に応じ
    て符号化して圧縮するデータ圧縮方法において、 入力データとそれまでに連続したn個のデータからなる
    文脈との組み合わせを保持する文脈収集過程と、 上記文脈毎に独立した符号木を保持する符号木保持過程
    と、 上記文脈収集過程の文脈に該当したデータが出現したと
    き、上記符号木の頂点を意味するルートから上記符号木
    上の上記データが格納されている点としてのリーフまで
    の分岐点としてのノードの分岐に応じた固有のデータと
    して定義される符号を出力する符号出力過程と、 上記符号出力過程での処理の後、上記データのリーフと
    他データのリーフあるいはノードとを組み替える符号長
    変更過程と、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程に保持されているか否かを判別する文脈判別過程
    と、 予めデータ未登録を示すデータとして定義されるエスケ
    ープコードを登録したリーフを上記符号木に保持するエ
    スケープコード保持過程とを有するとともに、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程の履歴に保持されていない組み合わせであったと
    き、上記の入力データと文脈との組み合わせを上記文脈
    収集過程に新規に登録する文脈新規登録過程と、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程の履歴に保持されていない組み合わせであったと
    き、上記データを文脈に対応した上記符号木に新規に登
    録する符号木新規登録過程とを有し、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程の履歴に保持されていない組み合わせであったと
    き、上記エスケープコードの符号を出力すると同時に、
    上記の入力データと文脈との組み合わせを履歴に登録す
    るとともに、上記データを文脈に対応した上記符号木に
    登録し、上記文脈収集過程に保持されている組み合わせ
    が得られるまで上記データの文脈を短くする処理を繰り
    返すことを特徴とする、データ圧縮方法。
  4. 【請求項4】 入力データを過去に出現した履歴に応じ
    て符号化して圧縮するデータ圧縮方法において、 入力データとそれまでに連続したn個のデータからなる
    文脈との組み合わせを保持する文脈収集過程と、 上記文脈毎に独立した符号木を保持する符号木保持過程
    と、 上記文脈収集過程の文脈に該当したデータが出現したと
    き、上記符号木の頂点を意味するルートから上記符号木
    上の上記データが格納されている点としてのリーフまで
    の分岐点としてのノードの分岐に応じた固有のデータと
    して定義される符号を出力する符号出力過程と、 上記符号出力過程での処理の後、上記データのリーフと
    他データのリーフあるいはノードとを組み替える符号長
    変更過程と、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程に保持されているか否かを判別する文脈判別過程
    と、 予めデータ未登録を示すデータとして定義されるエスケ
    ープコードを登録したリーフを上記符号木に保持するエ
    スケープコード保持過程とを有するとともに、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程の履歴に保持されていない組み合わせであったと
    き、上記の入力データと文脈との組み合わせを上記文脈
    収集過程に新規に登録する文脈新規登録過程と、 上記の入力データと文脈との組み合わせが上記文脈収集
    過程の履歴に保持されていない組み合わせであったと
    き、上記データを文脈に対応した上記符号木に新規に登
    録する符号木新規登録過程とを有し、 上記の文脈新規登録過程及び符号木新規登録過程におい
    ては、履歴にあると判断された直前の文脈と上記データ
    との組み合わせのみを登録することを特徴とする、デー
    タ圧縮方法。
  5. 【請求項5】 入力データを過去の入力データの履歴に
    応じて符号化した符号データを復元するデータ復元方法
    において、 復号データと文脈との組み合わせの履歴を保持する文脈
    収集過程と、 文脈に応じておのおの独立した符号木を保持する符号木
    保持過程と、 直前までに復号したデータの文脈から上記データの符号
    木を決定する符号木決定過程と、 上記符号木決定過程で決定した上記符号木と上記データ
    の符号から上記データを復号する復号過程と、 上記復号過程の復号の後に、符号化側と同一の手段で、
    上記符号木上のデータ格納点としてのリーフ間又は上記
    リーフと上記符号木の分岐点としてのノードとを組み替
    える符号長変更過程とを有することを特徴とする、デー
    タ復元方法。
  6. 【請求項6】 入力データを過去の入力データの履歴に
    応じて符号化した符号データを復元するデータ復元方法
    において、 復号データと文脈との組み合わせの履歴を保持する文脈
    収集過程と、 文脈に応じておのおの独立した符号木を保持する符号木
    保持過程と、 直前までに復号したデータの文脈から上記データの符号
    木を決定する符号木決定過程と、 上記符号木決定過程で決定した上記符号木と上記データ
    の符号から上記データを復号する復号過程と、 上記復号過程の復号の後に、符号化側と同一の手段で、
    上記符号木上のデータ格納点としてのリーフ間又は上記
    リーフと上記符号木の分岐点としてのノードとを組み替
    える符号長変更過程とを有し、 上記符号木にはそれぞれの文脈に応じた上記符号木毎に
    予めデータ未登録を示すデータとして定義されるエスケ
    ープコードを登録し、復号時に上記エスケープコードを
    復号した場合、上記エスケープコード以外が復号される
    まで、文脈の長さを短くする処理を繰り返すことを特徴
    とする、データ復元方法。
  7. 【請求項7】 入力データを過去の入力データの履歴に
    応じて符号化した符号データを復元するデータ復元方法
    において、 復号データと文脈との組み合わせの履歴を保持する文脈
    収集過程と、 文脈に応じておのおの独立した符号木を保持する符号木
    保持過程と、 直前までに復号したデータの文脈から上記データの符号
    木を決定する符号木決定過程と、 上記符号木決定過程で決定した上記符号木と上記データ
    の符号から上記データを復号する復号過程と、 上記復号過程の復号の後に、符号化側と同一の手段で、
    上記符号木上のデータ格納点としてのリーフ間又は上記
    リーフと上記符号木の分岐点としてのノードとを組み替
    える符号長変更過程とを有するとともに、 上記文脈収集過程に上記データを新規に登録する文脈新
    規登録過程と、 復号したデータを文脈に応じた上記符号木に新規に登録
    する符号木新規登録過程とを有し、 データ未登録を示すデータとして定義されるエスケープ
    コードを復号したとき、上記文脈新規登録過程及び上記
    符号木新規登録過程を実行して、上記エスケープコード
    以外が復号されるまで、文脈の長さを短くする処理を繰
    り返すことを特徴とする、データ復元方法。
  8. 【請求項8】 入力データを過去の入力データの履歴に
    応じて符号化した符号データを復元するデータ復元方法
    において、 復号データと文脈との組み合わせの履歴を保持する文脈
    収集過程と、 文脈に応じておのおの独立した符号木を保持する符号木
    保持過程と、 直前までに復号したデータの文脈から上記データの符号
    木を決定する符号木決定過程と、 上記符号木決定過程で決定した上記符号木と上記データ
    の符号から上記データを復号する復号過程と、 上記復号過程の復号の後に、符号化側と同一の手段で、
    上記符号木上のデータ格納点としてのリーフ間又は上記
    リーフと上記符号木の分岐点としてのノードとを組み替
    える符号長変更過程とを有するとともに、 上記文脈収集過程に上記データを新規に登録する文脈新
    規登録過程と、 復号したデータを文脈に応じた上記符号木に新規に登録
    する符号木新規登録過程とを有し、 データ未登録を示すデータとして定義されるエスケープ
    コード以外が復号されるまでの処理において、上記エス
    ケープコードを一つでも復号した時、上記エスケープコ
    ード以外を復号した直前の文脈においてのみ、上記文脈
    新規登録過程および上記符号木新規登録過程での各新規
    登録処理を行なうことを特徴とする、データ復元方法。
  9. 【請求項9】 入力データを過去に出現した履歴に応じ
    て符号化して圧縮するデータ圧縮装置において、 上記入力データの直前までに入力されたn個の入力デー
    タからなる文脈を保持する前置データ保持手段と、 上記の入力データと文脈との組み合わせを保持する履歴
    保持手段と、 上記文脈毎に独立した符号木を保持する符号木保持手段
    と、 上記前置データ保持手段に保持されている直前までの入
    力データから上記データの符号木を決定する符号木決定
    手段と、 上記符号木決定手段で選択した上記符号木の頂点を意味
    するルートから上記データが格納されているリーフに沿
    って途中に位置する分岐点としてのノードからの分岐に
    従って固有のデータを出力する符号出力手段と、 符号化したリーフと他のリーフあるいはノードとを組み
    替える符号長変更手段と、 上記データを上記前置データ保持手段に登録する前置デ
    ータ更新手段とをそなえて構成されたことを特徴とす
    る、データ圧縮装置。
  10. 【請求項10】 入力データを過去に出現した履歴に応
    じて符号化して圧縮するデータ圧縮装置において、 上記入力データの直前までに入力されたn個の入力デー
    タからなる文脈を保持する前置データ保持手段と、 上記の入力データと文脈との組み合わせを保持する履歴
    保持手段と、 データ未登録を示すデータとして定義されるエスケープ
    コードをあらかじめ登録した文脈毎に独立した符号木を
    保持する符号木保持手段と、 上記の文脈と入力データから上記データの符号木を決定
    する符号木決定手段と、 上記符号木決定手段で決定した上記符号木に上記データ
    が登録されているか否かを判別する文脈判別手段と、 上記符号木に上記データが登録されていないときは上記
    符号木の頂点を意味するルートから上記エスケープコー
    ドのデータ格納点としてのリーフまでの途中に位置する
    分岐点としてのノードからの分岐に従ってエスケープコ
    ードを出力するエスケープコード出力手段と、 上記符号木に上記データが登録されていないときは文脈
    の長さnを短くする文脈変更手段と、 上記符号木に上記データが登録されているときは上記符
    号木のルートから上記データのリーフまでの途中に位置
    するノードからの分岐に従って上記データの符号を出力
    する符号出力手段と、 符号化したリーフと他のリーフあるいはノードとを組み
    換える符号長変更手段と、 上記データを上記前置データ保持手段に登録する前置デ
    ータ更新手段と、 上記エスケープコードを符号化したときは上記データの
    符号化を行なうまで処理を繰り返す制御手段とをそなえ
    て構成されたことを特徴とする、データ圧縮装置。
  11. 【請求項11】 入力データを過去に出現した履歴に応
    じて符号化して圧縮するデータ圧縮装置において、 上記入力データの直前までに入力されたn個の入力デー
    タからなる文脈を保持する前置データ保持手段と、 上記の入力データと文脈との組み合わせを保持する履歴
    保持手段と、 データ未登録を示すデータとして定義されるエスケープ
    コードを予め登録した文脈毎に独立した符号木を保持す
    る符号木保持手段と、 上記の文脈と入力データから上記データの符号木を決定
    する符号木決定手段と、 上記符号木決定手段で決定した上記符号木に上記データ
    が登録されているか否かを判別する文脈判別手段と、 上記符号木に上記データが登録されていないときは上記
    符号木の頂点を意味するルートから上記エスケープコー
    ドのデータ格納点としてのリーフまでの中に位置する分
    岐点としてのノードからの分岐に従って上記エスケープ
    コードを出力するエスケープコード出力手段と、 上記符号木に上記データが登録されていないときは上記
    履歴保持手段に上記データと文脈の組み合わせを登録す
    る履歴登録手段と、 上記符号木に上記データが登録されていないときは上記
    符号木に上記データを新規に登録する符号登録手段と、 上記符号木に上記データが登録されていないときは文脈
    の長さnを短くする文脈変更手段と、 上記符号木に上記データが登録されているときは上記符
    号木のルートから上記データのリーフまでの途中に位置
    するノードからの分岐に従って上記データの符号を出力
    する符号出力手段と、 符号化したリーフと他のリーフあるいはノードとを組み
    換える符号長変更手段と、 上記データを前置データ保持手段に登録する前置データ
    更新手段と、 上記エスケープコードを符号化したときは上記データの
    符号化を行なうまで処理を繰り返す制御手段とをそなえ
    て構成されたことを特徴とする、データ圧縮装置。
  12. 【請求項12】 入力データを過去に出現した履歴に応
    じて符号化して圧縮するデータ圧縮装置において、 上記入力データの直前までに入力されたn個の入力デー
    タからなる文脈を保持する前置データ保持手段と、 上記の入力データと文脈との組み合わせを保持する履歴
    保持手段と、 データ未登録を示すデータとして定義されるエスケープ
    コードをあらかじめ登録した文脈毎に独立した符号木を
    保持する符号木保持手段と、 上記の文脈と入力データから上記データの符号木を決定
    する符号木決定手段と、 上記符号木決定手段で決定した上記符号木に上記データ
    が登録されているか否かを判別する文脈判別手段と、 上記符号木に上記データが登録されていないときは上記
    符号木の頂点を意味するルートから上記エスケープコー
    ドのデータ格納点としてのリーフまでの途中に位置する
    分岐点としてのノードからの分岐に従って上記エスケー
    プコードを出力するエスケープコード出力手段と、 上記符号木に上記データが登録されていないときは文脈
    の長さnを短くする文脈変更手段と、 上記符号木に上記データが登録されているときは上記符
    号木のルートから上記データのリーフまでの途中に位置
    するノードからの分岐にしたがって上記データの符号を
    出力するエスケープ符号出力手段と、 履歴保持手段に上記データと文脈の組み合わせを登録す
    る履歴登録手段と、 符号木に上記データを新規に登録する符号登録手段と、 符号化したリーフと他のリーフあるいはノードとを組み
    換える符号長変更手段と、 上記データを前置データ保持手段に登録する前置データ
    更新手段と、 上記データの符号化時に一度でも上記エスケープコード
    を符号化したときは、上記データの符号化の直前の文脈
    と上記データとの組み合わせを上記履歴登録手段で上記
    履歴保持手段に登録し、上記データの符号化の直前に符
    号化したエスケープコードを持つ符号木に上記符号登録
    手段で上記データを新規に登録する制御手段とをそなえ
    て構成されたことを特徴とする、データ圧縮装置。
  13. 【請求項13】 過去に出現した履歴に応じて符号化し
    た符号を復号するデータ復元装置において、 過去に復号したn個のデータを保持する前置データ保持
    手段と、 復号したデータと文脈との組み合わせを保持する履歴保
    持手段と、 文脈毎に独立した符号木を保持する符号木保持手段と、 上記前置データ保持手段に保持されている文脈から上記
    データを復号するための符号木を決定する符号木決定手
    段と、 符号に従って上記符号木決定手段で選択した上記符号木
    の頂点を意味するルートから分岐点としてのノードを走
    査して到達したデータ格納点としてのリーフに格納され
    ているデータを出力する復号手段と、 復号したリーフと他のリーフあるいはノードとを組み替
    える符号長変更手段と、 復号したデータを上記前置データ保持手段に登録する前
    置データ更新手段とをそなえて構成されたことを特徴と
    する、データ復元装置。
  14. 【請求項14】 過去に出現した履歴に応じて符号化し
    た符号を復号するデータ復元装置において、 過去に復号したn個のデータを保持する前置データ保持
    手段と、 復号したデータと文脈との組み合わせを保持する履歴保
    持手段と、 データ未登録を示すデータとして定義されるエスケープ
    コードをあらかじめ登録した符号木を保持する符号木保
    持手段と、 上記前置データ保持手段に保持されている文脈から上記
    データを復号するための符号木を決定する符号木決定手
    段と、 符号に従って上記符号木決定手段で選択した上記符号木
    の頂点を意味するルートから分岐点としてのノードを走
    査して到達したデータ格納点としてのリーフに格納され
    ているデータを出力する復号手段と、 復号したリーフと他のリーフあるいはノードとを組み替
    える符号長変更手段と、 出力したデータが上記エスケープコードであったとき上
    記データを棄却し文脈を短くする文脈変更手段と、 復号したデータを前置データ保持手段に登録する前置デ
    ータ更新手段と、 上記エスケープコードを復号した時は上記文脈変更手段
    で文脈を再設定し、上記エスケープコード以外が復号さ
    れるまで処理を繰り返す制御手段とをそなえて構成され
    たことを特徴とする、データ復元装置。
  15. 【請求項15】 過去に出現した履歴に応じて符号化し
    た符号を復号するデータ復元装置において、 過去に復号したn個のデータを保持する前置データ保持
    手段と、 復号したデータと文脈との組み合わせを保持する履歴保
    持手段と、 エスケープコードをあらかじめ登録した符号木を保持す
    る符号木保持手段と、 上記前置データ保持手段に保持されている文脈から上記
    データを復号するための符号木を決定する符号木決定手
    段と、 符号に従って上記符号木決定手段で選択した上記符号木
    の頂点を意味するルートから分岐点としてのノードを走
    査して到達したデータ格納点としてのリーフに格納され
    ているデータを出力する復号手段と、 復号したリーフと他のリーフあるいはノードとを組み替
    える符号長変更手段と、 出力したデータが上記エスケープコードであったとき、
    上記データを棄却し文脈を短くする文脈変更手段と、 復号したデータを前置データ保持手段に登録する前置デ
    ータ更新手段と、 上記データの復号処理で上記エスケープコードを復号し
    たときの全ての文脈と復号したデータとを上記履歴保持
    手段に登録する上記履歴登録手段と、 上記データの復号処理で上記エスケープコードを復号し
    た時の文脈に対応した全ての符号木に上記データの符号
    を登録する符号登録手段と、 上記エスケープコードを復号した時は上記文脈変更手段
    で文脈を再設定し、上記エスケープコード以外が復号さ
    れるまで処理を繰り返す制御手段とをそなえて構成され
    たことを特徴とする、データ復元装置。
  16. 【請求項16】 過去に出現した履歴に応じて符号化し
    た符号を復号するデータ復元装置において、 過去に復号したn個のデータを保持する前置データ保持
    手段と、 復号したデータと文脈との組み合わせを保持する履歴保
    持手段と、 データ未登録を示すデータとして定義されるエスケープ
    コードをあらかじめ登録した符号木を保持する符号木保
    持手段と、 上記前置データ保持手段に保持されている文脈から上記
    データを復号するための符号木を決定する符号木決定手
    段と、 符号に従って上記符号木決定手段で選択した上記符号木
    の頂点を意味するルートから分岐点としてのノードを走
    査して到達したデータ格納点としてのリーフに格納され
    ているデータを出力する復号手段と、 復号したリーフと他のリーフあるいはノードとを組み替
    える符号長変更手段と、 出力したデータが上記エスケープコードであったとき上
    記データを棄却し文脈を短くする文脈変更手段と、 復号したデータを上記前置データ保持手段に登録する前
    置データ更新手段と、 上記データの復号処理で上記エスケープコードを最後に
    復号した時の文脈と復号したデータとを上記履歴保持手
    段に登録する履歴登録手段と、 上記データの復号処理で最後に上記エスケープコードを
    復号した時の文脈に対応した符号木に上記データの符号
    を登録する符号登録手段と、 上記エスケープコードを復号した時は上記文脈変更手段
    で文脈を再設定し、上記エスケープコード以外が復号さ
    れるまで処理を繰り返す制御手段とをそなえて構成され
    たことを特徴とする、データ復元装置。
JP2001402030A 2001-12-28 2001-12-28 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 Expired - Fee Related JP3425142B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001402030A JP3425142B2 (ja) 2001-12-28 2001-12-28 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001402030A JP3425142B2 (ja) 2001-12-28 2001-12-28 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP16850294A Division JP3278297B2 (ja) 1994-07-20 1994-07-20 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置

Publications (2)

Publication Number Publication Date
JP2002232297A true JP2002232297A (ja) 2002-08-16
JP3425142B2 JP3425142B2 (ja) 2003-07-07

Family

ID=19189913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001402030A Expired - Fee Related JP3425142B2 (ja) 2001-12-28 2001-12-28 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置

Country Status (1)

Country Link
JP (1) JP3425142B2 (ja)

Also Published As

Publication number Publication date
JP3425142B2 (ja) 2003-07-07

Similar Documents

Publication Publication Date Title
JP3278297B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US4814746A (en) Data compression method
US7064489B2 (en) Huffman data compression method
US7071853B2 (en) Method of compressing data packets
US7190287B2 (en) Method of generating Huffman code length information
US6404931B1 (en) Code book construction for variable to variable length entropy encoding
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
US5353024A (en) Method for data compression having an improved encoding algorithm which utilizes a token stacking technique
US5585793A (en) Order preserving data translation
EP0127815B1 (en) Data compression method
Arnavut Inversion coding
JP3425143B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
JP3425142B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JPH1155125A (ja) 文字データの圧縮・復元方法
Kieffer et al. Grammar-based lossless universal refinement source coding
JPH06274311A (ja) データ圧縮装置及びデータ復元装置
中村博文 Data Compression by Replacement of Symbol Pairs and Its Implementation
Mukherjee et al. Text compression
Morita et al. Data Compression of ECG Based on the Edit Destance Algorithms
Pannirselvam et al. A Comparative Analysis on Different Techniques in Text Compression
Reif et al. Optimal lossless compression of a class of dynamic sources
Aziz et al. A Comparision between Coding Methods in Data Compression with A Proposed Method
Tanaka et al. Interchangeability of Magneto Optical Disk for Medical Image and Information Filing Use
Bell Data compression

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: 20030415

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

Free format text: PAYMENT UNTIL: 20080502

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090502

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090502

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100502

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100502

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120502

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130502

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20140502

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees