JP2840589B2 - データ圧縮装置及びデータ復元装置 - Google Patents

データ圧縮装置及びデータ復元装置

Info

Publication number
JP2840589B2
JP2840589B2 JP27919096A JP27919096A JP2840589B2 JP 2840589 B2 JP2840589 B2 JP 2840589B2 JP 27919096 A JP27919096 A JP 27919096A JP 27919096 A JP27919096 A JP 27919096A JP 2840589 B2 JP2840589 B2 JP 2840589B2
Authority
JP
Japan
Prior art keywords
byte
unit
data
code
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP27919096A
Other languages
English (en)
Other versions
JPH09275349A (ja
Inventor
佳之 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP27919096A priority Critical patent/JP2840589B2/ja
Priority to US08/774,346 priority patent/US6026198A/en
Priority to EP19970300121 priority patent/EP0789326B1/en
Priority to EP20030009753 priority patent/EP1339022A3/en
Priority to DE1997632873 priority patent/DE69732873T2/de
Publication of JPH09275349A publication Critical patent/JPH09275349A/ja
Application granted granted Critical
Publication of JP2840589B2 publication Critical patent/JP2840589B2/ja
Priority to US09/363,692 priority patent/US6215906B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文字コード、画像
等のデータをバイト単位又はワード単位で符号化するデ
ータ圧縮装置及びデータ復元装置に関し、特に、パイプ
ライン処理によりバイト単位又はワード単位の符号化に
おける処理性能を向上させたデータ圧縮装置及びデータ
復元装置に関する。
【0002】
【従来の技術】近年、文字コード、ベクトル情報、画像
など様々な種類のデータがコンピュータで扱われるよう
になっており、扱われるデータ量も急速に増加してきて
いる。大量のデータを扱うときは、データの中の冗長な
部分を省いてデータ量を圧縮することで、記憶容量を減
らしたり、遠隔地へ遠く伝送したりできるようになる。
【0003】本発明の分野は、文字コードの圧縮に限ら
ず、様々なデータに適用できるが、以下では、情報理論
で用いられている呼称を踏襲し、データの1ワード単位
を文字と呼び、データが任意のワード数がつながったも
のを文字列と呼ぶことにする。様々なデータを1つのア
ルゴリズムで圧縮できる方法としてユニバーサル符号化
がある。ユニバーサル符号化には様々な方法があるが、
代表的な方法として2つの方法が挙げられる。辞書型符
号化と確率統計型符号化である。
【0004】辞書型(Dictionary coding 或いは Lem
pel-Ziv coding(発明者の名前)) 代表的方法:LZW法,LZSS法等 確率統計型(Statistical coding) 代表的方法:多値算術符号化,動的ハフマン符号化等 辞書型は、過去に現れた文字列(文字列長が可変)を辞
書というテーブルに登録し、次に現れる文字列を辞書内
に登録されている最も長い文字列の辞書内の位置情報
(符号長が一定)で符号化する。従って、可変の長い文
字列、例えば数十文字を固定の情報、例えば12ビット
で符号化を行うVF(Variable-Fixed coding )符号化
に基づいている。
【0005】辞書型アルゴリズムの詳細は例えば (1)T.C.Bell etc, "Text Compression",Prentice-Hall,
1990.section 8, Dictionary Techniques. に記載される。これに対し確率統計型は、過去に現れた
個々の文字(1文字だから一定)の出現確率(直前の文
字列に従属した条件付確率も含む)から、次に現れる文
字を出現確率を反映した統計的(entropy )な情報(符
号長が可変)で符号化する。従って、1文字(固定)ず
つ、その出現確率を統計的情報(可変)で符号化を行う
FV(Fixed-Variable coding )符号化に基づいてい
る。
【0006】確率統計型アルゴリズムの詳細は (2)T.C.Bell etc, "Text Compression",Prentice-Hall,
1990.section 5,From Probabilities To Bits. に記載される。この中で、代表的のものにハフマン符号
化(Huffman coding)や算術符号化(Arithmetic codin
g )がある。
【0007】更に、直前の文字列の従属関係を取り込む
文脈モデルの詳細は、 (3)T.C.Bell etc, "Text Compression",Prentice-Hall,
1990.section 6, Context modeling. に記載される。この場合の直前の文字列の従属関係は、
せいぜい数文字で無限に長い文字列を取り込む辞書型と
は異なる。
【0008】従って、辞書型符号化と確率統計型符号化
は、 過去に現れたデータの捉え方が、辞書型符号化は文字
列そのものであり、確率統計型符号化は出現確率であ
る。 符号化部分が辞書型符号化は固定長であるのに対し、
確率統計型符号化は可変長(原則的)である、 という点で、根本的に圧縮のメカニズムが大きく異な
る。
【0009】ここでは、主に英文テキスト等のバイトス
トリームのデータ列を対象としたユニバーサル符号化方
式として、多値算術符号化を取り上げる。算術符号化と
して、大きく分けて2つの符号化が提案されている。2
値算術符号化と多値算術符号化である。両者の違いは、
2値算術符号化が符号化の対象とするデータの単位が0
又は1のビット対応2値であり、多値算術符号化が符号
化の対象とするデータの単位が例えば8ビットを1まと
めにしたバイト対応の多値化の違いである。2値算術符
号化の代表的な例としては、CCITT/ISO で2値画像圧縮
の標準化方式であるJBIGのエントロピー符号化に使
われているQMコーダがある。例えば、 (4) 安田著,「マルチプロセッサメディア符号化の国際
標準:第3章 算術符号化」丸善,p68 〜82,1991,6 に詳細が示される。
【0010】多値算術符号化の代表的な例としては、WI
TTEN,ABRAHANSON の符号化がある。例えば、 (5)I.H.Witten 他, 「Arithmetic Coding for Data Com
pression」,Comunications of Association for Comput
ing Machinery,30(6),520- 540,1987.7 (6)D.M.Abrahamson,「An Adaptive Dependency source
Mode for DataCompre ssion 」 Comunications of Ass
ociation for Computing Machinery,32(1),77 -83,198
9.1 に詳細が示される。このうち、画像に適している等の理
由から2値算術符号化のみが実用化されている。しか
し、多値算術符号化が最も高い圧縮性能が得られること
から、その実用化が期待されている。
【0011】確率統計型符号化の処理は、図67のよう
に、出現頻度モデル部400とエントロピー符号化部4
02で構成される。出現頻度モデル部400では、入力
文字とその直前の文字列(文脈)を取り込み、その従属
関係を加味した入力文字の出現頻度を求める。エントロ
ピー符号化部402では、出現頻度モデル部400で求
めた出現数に基づき、動的に符号を作成し可変長符号化
を行う。
【0012】更に詳細に説明すると、図68(A)のよ
うな3文字a,b,cで構成される文字列abcを例に
とると、直前文字列との関係が図68(B)のような木
構造で表される。出現頻度モデル部400では、この木
構造の各節点の文字を通る文字列が出現する毎に出現数
を計数することによって、直前の文字列との従属関係、
例えば条件付確率が求められる。このような入力文字と
直前文字列との従属関係を求める文脈収集の方法とし
て、固定次数の文脈を収集する方法と、ブレンド文脈の
収集方法の2つがある。ここで文脈の文字数を次数と呼
ぶ。
【0013】固定次数の文脈を収集する方法は、文脈の
文字数を固定にする方法である。例えば2次の文脈で
は、出現頻度モデル部400は、直前2文字x2 ,x1
に繋がる文字の文脈を収集し、直前文字x2 ,x1 の後
に出現する文字yの従属関係、例えば条件付確率ρ(y
|x1 ,x2 )を求めてエントロピー符号化部402に
渡す。ここで、yは注目する入力文字、x1 ,x2 はそ
れぞれ直前の第1文字,第2文字とする。
【0014】ブレンド文脈の収集方法は、文脈の次数を
混合した方法である。固定次数の文脈の場合、直前の文
字列が出にくい場合はその従属関係の推定が不確かにな
る。逆に直前の文字列が出易い場合は、その従属関係の
推定が正確さを増し、更に次数を上げることができる可
能性を残す。一般に、直前の文字列が長くなる高次の文
脈を使うほど、文字間の偏りをより捉え易くすることが
でき、高圧縮率が得られる。
【0015】しかし、高次文脈の相関が弱いデータで
は、かえって圧縮率が悪くなる。このような問題を解決
しようとしたのが次数を混合したブレンド文脈である。
ブレンド文脈の方法では、直前の次数を固定せずに、個
々の文脈によって出易い場合には、次数の高いところで
従属関係を導き出し、出にくい場合には次数の低いとこ
ろで従属関係を導き出すようにしたものである。
【0016】このように出現頻度モデル部400で求め
た出現数に基づいて、動的符号を与えるエントロピー符
号化部402の代表的な符号化としては、算術符号化、
動的ハフマン符号化、自己組織化符号化等がある。算術
符号化は、各文字の出現確率から符号を演算で求めるた
め、1ビット/文字以下でも符号割当てが可能であり、
最も符号化効率が高いとされている。
【0017】図69(A)〜(C)は多値算術符号化の
手順であり、複数ビット単位、例えばバイト単位の入力
文字の文字列を数直線[0,1]の1点に対応付けて1
つの符号で表す。ここで説明を簡単にするため、a,
b,c,dの4の文字よりなる文字列を考える。まず図
69(A)のように、各文字の出現頻度を求める。ここ
で出現頻度とは、各文字の出現数を総出現数で割った確
率である。例えば、文字aの出現頻度は0.15、文字
bの出現頻度は0.25、文字cの出現頻度は0.3
5、文字dの出現頻度は0.25であったとする。
【0018】次に図69(A)の出現頻度について、頻
度の高い順番に文字を並べ替え、図69(B)のよう
に、累積出現頻度を算出する。累積頻度とは、注目文字
より順位の低い文字の出現頻度を加算したものである。
即ち、出現頻度の1番高い1位の文字cの累積出現頻度
は文字b,d,aの出現頻度を加算したもので、0.6
5となる。同様にして、残りの文字b,d,aの各累積
出現頻度は、0.40,0.15,0.0となる。
【0019】この状態で例えば文字cが入力されたとす
ると、図67(C)のように、数直線で定義される符号
化区間[0,1]について、入力文字cの出現頻度fr
eq[c]=0.35と累積出現頻度cum freq
[c]=0.65から新区間404を求める。具体的に
は、数直線で定義される符号化区間[0,1]、の上端
(ハイレベル)H1 =1、下端(ローレベル)L1 =
0、区間幅W1 =1について、入力文字cの出現頻度f
req[c]=0.35と累積出現頻度cumfreq
[c]=0.65から新区間404の上端(ハイレベ
ル)H2 、下端(ローレベル)L2 及び区間幅W2 を求
める。即ち、新区間404の下端L2 は、前回区間の下
端(ローレベル)L1 と区間幅W1 から、 となる。このとき、文字cが入力したので、文字cの出
現数を1つインクリメントし、また総出現数を1つイン
クリメントし、これに応じて文字a,b,c,dの出現
頻度及び累積出現頻度が更新される。しかし、説明を簡
単にするため、図69(A)(B)の出現頻度と累積出
現頻度に固定して説明する。
【0020】次に文字aが入力されると、前回の区間4
04を新たな区間[0,1]と見做し、この区間404
について、入力文字aの出現頻度freq[a]=0.
15と累積出現頻度cum freq[a]=0.15
に基づいて、新区間406の下端(ローレベル)L3 、
区間幅W3 、及び上端H3 を次のようにして求める。 L3 =L2 +W2 ×cum freq[a] =0.65+0.35×0.15 =0.7025 W3 =W2 ×freq[a] =0.35×0.15 =0.0525 H3 =L3 +W3 =0.7025+0.0525 =0.7550 次に文字dが入力されると、前回の区間406を新たな
区間[0,1]と見做し、この区間406について、入
力文字dの出現頻度freq[d]=0.25と累積出
現頻度cum freq[d]=0.4に基づいて、新
区間408の下端(ローレベル)L4 、区間幅W4 、及
び上端H4 を次のようにして求める。
【0021】 L4 =L3 +W3 ×cum freq[d] =0.7025+0.0525×0.40 =0.7235 W4 =W3 ×freq[d] =0.0525×0.40 =0.0210 H4 =L4 +W4 =0.7235+0.0210 =0.7445 この入力文字dが最終文字であったすると、区間408
を表わす任意の値、例えば区間408の上端と下端の間
の任意の値を算術化符号として出力する。具体的には、
前回の区間406を[1,0]に正規化して閾値1/
4,1/2,3/4により4つの分割区間に分け、最終
区間408の上端H4 と下端L4 が正規化された前回区
間406のどの分割区間に属するかを符号化する。例え
ば前回区間406について、次の条件で符号化する。
【0022】1/2以上でビット1とし、1/2を下
回ったらビット0とする; 1/4以上で3/4以下の範囲にあればビット1と
し、この範囲を外れていればビット0とする; 最終区間408の場合には、H4 =0.7445である
から条件ではビット「1」となり、条件でもビット
「1」となる。またL4 =0.7235であるから条件
ではビット「1」となり、条件でもビット「1」と
なる。したがって、文字列「cad」の算術化符号は
「1111」となる。
【0023】尚、実際の処理では、文字を入力して符号
化する際に、文字の出現数、累積出現数及び総出現数を
求めており、出現頻度及び累積出現頻度が必要となった
ときに、出現数を総出現数で割って累積出現頻度を求
め、また累積出現数を総出現数で割って累積出現頻度を
求めている。この意味で出現頻度は総出現数で正規化さ
れた出現数ということができ、また累積出現頻度は総出
現数で正規化された累積出現数ということができる。
【0024】このような多値算術符号化によれば、出現
頻度が高い文字列ほど、最終区間の幅が大きくなり、短
い符号によって表せるため、データ量が圧縮される。ま
た、この方法は、符号後のビット表現に最小単位の制約
がなく、最小単位を1ビット以下に取ることができるた
め、効率の高い圧縮ができる。図70は従来の算術符号
化のデータ圧縮装置のブロック図である。図70におい
て、データ圧縮装置は、出現頻度順位並び替え部41
0、カウンタ412、頻度データ格納部414、辞書4
16、算術符号化部418で構成される。尚、この例で
は、出現頻度の代わりに出現数freq[ ]を使用
し、また累積出現頻度の代わりに累積出現数cum f
req[ ]を使用している。また辞書416は頻度デ
ータ格納部414に含めてもよい。
【0025】カウンタ412は、入力された文字の出現
数freq[ ]をカウントし、更に、文字の累積出現
数cum freq[ ]と総出現数cum freq
[0]を求めて頻度データ格納部414に格納する。頻
度順位並び替え部410は、文字を入力する毎に、頻度
データ格納部414の全文字を出現数freq[ 」の
多い順に並べ替え、順位を示す登録番号に対応して出現
数freq[ 」と累積出現数cum freq[ ]
を格納する。同時に、辞書416のシンボルを、頻度デ
ータ格納部414の出現数の多い順番に、順位を示す登
録番号に対応して並べ替える。
【0026】算術符号化部418は、入力文字kによる
辞書416の参照により順位を示す登録番号を頻度順並
び替え部410から受けると、この登録番号により頻度
データ格納部414を参照し、入力文字kの出現数fr
eq[k]、累積出現数cum freq[k]、及び
総出現数cum freq[0]を求める。そして、出
現数freq[k]及び累積出現数cum freq
[k]を、総出現数cum freq[0]で各々除算
して出現頻度および累積出現頻度を算出し、これに基づ
き新区間を求める。
【0027】図70の動作を説明する。頻度順並び替え
部410は、入力文字kにより辞書416を検索し、出
現数の順位を示す登録番号を求め、算術符号化部418
に出力する。算術符号化部418は、頻度順並び替え部
410からの登録番号(順位)により頻度データ格納部
414を参照し、入力文字kの出現数freq[k]、
累積出現数cum freq[k]、及び総出現数cu
m freq[0]を求める。
【0028】そして、出現数freq[k]及び累積出
現数cum freq[k]を、総出現数cum fr
eq[0]で各々除算して出現頻度および累積出現頻度
を算出し、更に前回の区間幅Wk-1 に基づいて、新たな
区間Wk の上端(ハイレベル)Hk と下端(ローレベ
ル)Lk を求め、もし最終文字であれば新区間の任意の
値を符号として出力する。
【0029】一方、カウンタ412は入力文字kの出現
数freq[k]、累積出現数cum freq[k]
及び総出現数cum freq[0]を各々1つずつイ
ンクリメントし、頻度データ格納部414の登録番号に
対応する値を更新する。続いて、頻度順並び替え部41
0は、更新後の出現数freq[ ]の順に頻度データ
格納部414及び辞書416の並び替えを行う。
【0030】図71のフローチャートは多値算術符号化
の処理であり、出現文字について、直前までの文字との
履歴を考慮しない一重履歴、即ち0次文脈との従属関係
を推定する場合を例にとっている。ここで、符号化区間
の初期値は、上端H0 =1、下端L0 =1、区間幅W0
=1.0とする。iは出現数の高い順に並べ替えられた
辞書の順位(登録番号)であり、1,2,3,・・・,
Aの値をとる。
【0031】またfreq[i]は、出現数の高い順に
並び替えられた辞書の順位(登録番号)iの出現数であ
り、またcum freq[i]は辞書の順位iの累積
出現数である。更に、I=1,2,3,・・・,Aであ
ることから、cum freq[1]は、順位1位の累
積出現数であり、cum freq[A]は最下位Aの
累積出現数を表す。更に、符号化区間は、cum fr
eq[1]=1,cum freq[A]=0で正規化
される。
【0032】まずステップS1にあっては次の初期値の
設定を行う。 辞書Dの配列iに全ての単一文字を割り付ける。 D(i)=i 但し、i=1,2,3,・・・,Aであり、Aはアルフ
ァベット及び記号等の数で、最大256を採る。
【0033】各文字に順位(登録番号)iを割り付け
る。 I(i)=i 但し,i=1,2,・・・,A 全文字の出現数を初期化する。 freq(i)=1 但し,i=1,2,・・・,A 全文字の累積出現数を初期化する。
【0034】cum freq(i)=A−1 以上の初期値の設定が済んだならば、ステップS2でソ
ースデータの入力文字列から先頭の1文字kを入力す
る。次に、ステップS3に進み、入力文字kにより辞書
を検索して登録番号である順位jを求める。これはj=
I(k)と表現される。また順位jから符号区間に対応
する累積出現数のリストテーブルを参照して累積出現数
cum freq[j]を求める。これはi=D(j)
と表現される。
【0035】そして、辞書から検索した順位jを算術符
号化する。順位jの算術符号化とは、順位jの累積出現
数cum freq[j]を総出現数cum freq
[0]で除算して累積出現頻度を求め、前回の区間幅と
下端(ローレベル)から新区間を求める。ここで入力文
字が符号化単位となる所定バイト数の最終文字であれ
ば、新区間の任意の値を符号として出力する。
【0036】次に、ステップS4で順位jの入力文字k
と同じ出現数の文字が上の順位に並んでいる場合は、そ
の先頭順位に位置する文字、出現数、及び累積出現数の
入れ替えを行う。まず順位jより小さい順位の文字の内
で、j番目の文字kと出現数freq[k]の異なる文
字の1つ下の順位rを求める。即ち、freq[r]!
=freq[j]となる最大の順位rを見つける。ここ
で!は異なることを意味する。
【0037】更に、辞書のr番目の文字に対応する区間
分の出現数のリストテーブルの順位がI(r)=s、同
じく対応する区間分の累積出現数のリストテーブルの順
位がD(r)=tであるとする。そこで、辞書について
j番目とr番目の文字を入れ替え、出現数の区間リスト
テーブルについてj番目とs番目の出現数を入れ替え、
更に累積出現数の区間リストテーブルについてj番目と
t番目の累積出現数を入れ替える。
【0038】即ち、出現数の入れ替えI(j)=s、累
積出現数の入れ替えD(j)=t,辞書順位の入れ替え
I(r)=j,及び辞書文字の入れ替えD(r)=D
(j)を行う。例えば入力文字kの順位jと同じ出現数
をもつ上位の順位j−1,j−2,j−3が存在したと
すると、最上位のr=j−3が入れ替え先として求めら
れ、順位rと順位jの文字、出現数、累積出現数の入れ
替えを行う。
【0039】続いて、ステップS5で、入れ替えが済ん
だ入力文字kの出現数freq[k]を1つインクリメ
ントし、更に、順位r+1以上の累積出現数cum f
req[ ]を1つインクリメントする。勿論、総出現
数cum freq[0]も1つインクリメントする。
そして再びステップS2に戻って次の1文字を入力し、
ソースデータがなくなるまて同じ処理を繰り返す。
【0040】図72のフローチャートは、出現文字につ
いて、直前の1文字との履歴を考慮した二重履歴、即ち
1次文脈との従属関係を推定する場合の多値算術符号化
である(参考文献(5)D.M.Abrahamson を参照)。この二
重履歴の処理にあっては、連続する2字の組み合わせを
考慮し、各文字毎に辞書を作成し、更に各文字毎に続く
文字の出現頻度を2番目の文字毎に辞書に登録する。例
えば、文字aの辞書には、文字aに続いて出現した文
字、例えばabに対するb、acに対するc等を登録
し、aに続く文字毎の出現数を求め、登録する。
【0041】このため、ステップS1の初期値の設定
で、辞書Dの配列には、文字pに対して続く文字i毎
に、D(p,i)を割り付ける。ここでp,i=1,
2,…,Aであり、Aはアルファベットの大きさ(数)
である。また、各文字に割り付ける番号はI(p,i)
とする。ここでp,i=1,2,…,Aである。これ以
外の点は、図71の一重履歴の処理と同じである。
【0042】また図68(B)の木構造を使って動的符
号化を行う算術符号化以外のエントロピー符号化とし
て、動的ハフマン符号化や自己組織化符号化の一種であ
るスプレイ符号化等もある。動的ハフマン符号化は、例
えば (7)D.E.Knuth,"Dynamic Huffman Coding",Journal of A
logorithms 6, 163-180(1985) J.S.Vitter,"Design an
d Analysis of Dynamic Huffman Codes",Journal of AC
M,34,4,825-845(1987) (8) 植松友彦、“文書データ圧縮アルゴリズム入門”、
第5章、CQ出版社(19 94) 特許:整理番号94-11634 に詳細が示される。またスプレイ符号化は、 (9)D.W.Jones,"Application of Splay Tree to Data Co
mpression",Commun.of ACM,31,8,996-1007(1987) 特
許:整理番号94-01147 に詳細が示される。
【0043】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の符号化にあっては、主に英文テキスト、例え
ばASCIIの8ビットコードを対象にバイトストリー
ム方向のバイト単位を基本に符号化することを考えてい
る。
【0044】このため、現在、国際言語コードとして採
用されている2バイト構成のUnicodeや日本語コ
ード,RGB3バイト構成のフルカラー画像データ,4
バイト又は8バイトといったプログラムコード等の複数
バイトのワード構成を持つデータに対して、従来の符号
化方法はあまり圧縮効率が良くない。
【0045】即ち、従来の符号化方法では、複数バイト
のワード構成を持つデータに対して、バイト単位で処理
するため、処理に時間がかかる、例えば、単純にバイト
単位の符号化をワードに拡張する例として1バイトを2
バイトに拡張したとすると、充分な圧縮率を得るための
データ量、処理時間、メモリ容量が全て1バイトに対し
2バイトでは256倍が必要となり、とても実用的には
ならない。
【0046】そこで本発明は、ワードストリーム方向で
のバイト単位の辞書型および確率統計型による符号化と
復号化を効率的に行って、処理時間を実用化レベルに短
縮できるデータ圧縮装置およびデータ復元装置を提供す
ることを目的とする。
【0047】
【課題を解決するための手段】図1,2,3,4図は本
発明の原理説明図である。本発明に従えば、バイト単位
の多値データの確率統計型の符号化と復号化を効率的に
行って処理時間を実用化レベルに短縮できるデータ圧縮
装置およびデータ復元装置が提供される。
【0048】(確率統計型符号化のパイプライン制御)本発明を説明するにあたり、理解を容易にするため 、図
1(A)のように、入力文字を直前文字列の条件付出易
さにより符号化を行うデータ圧縮装置を想定する。デー
タ圧縮装置は、出現頻度モデル部10とエントロピー符
号化部12を、パイプライン制御部11によってパイプ
ライン動作させる。
【0049】即ち、出現頻度モデル部10は、直前の文
字列に繋がる入力文字の条件付出易さを各文字毎に登録
した頻度データ格納部を、入力文字により検索して条件
付出易さを求め、頻度データ格納部を登録更新する。エ
ントロピー符号化部12は、出現頻度モデル部10で求
めた条件付出易さにより入力文字を符号化する。パイプ
ライン制御部11は、出現頻度モデル部10に文字入力
させて条件付出易さを求めると同時に、エントロピー符
号化部12で1つ前の入力文字につき求めた条件付出易
さをエントロピー符号化させるパイプライン動作を行
う。
【0050】この出現頻度モデル部10とエントロピー
符号化部12のパイプライン化により、処理時間を短縮
し、確率統計型符号化を高速化できる。また、入力され
た符号と既に復元されている直前の文字列の条件付出易
さにより文字を復元するデータ復元装置を想定する。デ
ータ復元装置は、エントロピー復号化部46と出現頻度
モデル部48を、パイプライン制御部45によってパイ
プライン動作させる。
【0051】エントロピー復号化部46は、入力された
符号と既に復元されている直前の文字列から条件付出易
さを求める。出現頻度モデル部48は、直前の文字列に
繋がる入力文字の条件付出易さを各文字毎に登録した頻
度データ格納部を入力した符号から求めた条件付出易さ
により検索して文字を復元すると共に、頻度データ格納
部を登録更新する。
【0052】パイプライン制御部45は、エントロピー
復号化部46で入力した符号の条件付出易さを求めさせ
ると同時に、出現頻度モデル部48に1つ前の符号の条
件付出易さから文字を復元させるパイプライン動作を行
う。このエントロピー復号化部46と出現頻度モデル部
48のパイプライン化により、処理時間を短縮し、確率
統計型復号化を高速化できる。
【0053】(出現頻度モデル部のパイプライン化) また、図1(B)のように、ブレンドモデルにおいて、
各次数の出現頻度モデル部を並列化したデータ圧縮装置
およびデータ復元装置を想定する。まずブレンド文脈を
対象としたデータ圧縮装置は、文字を直前の長い文字列
でなる高次文脈から短い文字列でなる低次文脈へと条件
付出易さにより符号化を行うもので、各次数毎に、例え
ば0次、1次、及び2次毎に出現頻度モデル部88,9
0,92を並列的に設けている。各次数毎の出現頻度モ
デル部88,90,92は、直前の文字列に繋がる入力
文字の条件付出易さを各次数毎に登録した頻度データ格
納部を有し、各次数における直前の文字列に繋がる入力
文字の条件付出易さを頻度データ格納部の参照により検
索すると共に、頻度データ格納部を登録更新する。
【0054】各次数毎の出現頻度モデル部88,90,
92に続いては、エントロピー符号化部12が設けら
れ、各次数毎の出現頻度モデル部88,90,92から
出力される各次数の条件付出易さを、高次の文脈から低
次の文脈の順に符号化する。更にパイプライン化は、各
次数毎の出現頻度モデル部88,90,92とエントロ
ピー符号化部12とをパイプライン動作させるパイプラ
イン制御部85を設けることで実現する。
【0055】ブレンド文脈を対象としたデータ復元装置
は、入力された符号と既に復元されている直前の長い文
字列でなる高次文脈から短い文字列でなる低次文脈の順
に文字を復元する。データ復元装置の並列化は、エント
ロピー復号化部46に続いて各次数毎に、例えば0次、
1次、2次毎の出現頻度モデル部130,132,13
4を並列的に設ける。
【0056】エントロピー復号化部46は、入力された
符号と既に復元されている各次数の直前の文字列に基づ
き高次文脈から低次文脈の順に条件付出易さを求める。
各次数毎の出現頻度モデル部130,132,134
は、直前の文字列に繋がる入力文字の条件付出易さを各
次数毎に登録した頻度データ格納部を有し、エントロピ
ー復号化部46で求めた自己の次数の条件付出易さか
ら、頻度データ格納部の参照により文字を並列的に復元
する共に、頻度データ格納部を登録更新する。
【0057】データ復元装置のパイプライン化は、更
に、エントロピー復号化部46と各次数毎の出現頻度モ
デル部130,132,134とをパイプライン動作さ
せるパイプライン制御部125を設ける。 (出現頻度モデル部とエントロピー符号化部のパイプラ
イン化)次ぎに 、図2(C)のように、ブレンドモデルにおい
て、出現頻度モデル部とエントロピー符号化の各々を各
次数毎に並列化したデータ圧縮装置及びデータ復元装置
想定する。
【0058】このデータ圧縮装置は、各次数毎に、例え
ば0次、1次、及び2次毎に、出現頻度モデル部16
6、エントロピー符号化部168、及び符号マージ部1
70を独立に設けることで、並列化している。各次数毎
の出現頻度モデル部166は、直前の文字列に繋がる入
力文字の条件付出易さを各次数毎に登録した頻度データ
格納部を有し、各次数における直前の文字列に繋がる入
力文字の条件付出易さを頻度データ格納部の参照により
並列的に検索すると共に、頻度データ格納部を登録更新
する。
【0059】各次数毎のエントロピー符号化部168
は、出現頻度モデル部166から出力された各次数にお
ける直前の文字列に繋がる入力文字の条件付出易さを並
列的にエントロピー符号化する。符号マージ部170
は、各次数のエントロピー符号部170からの符号をま
とめて出力する。データ圧縮装置のパイプライン化は、
各次数毎に設けられた複数の出現頻度モデル部166と
複数のエントロピー符号化部168を、各次数毎にパイ
プライン動作させるパイプライン制御部175を設け
る。
【0060】一方、データ復元装置は、符号分離部21
1、各次数毎に独立に設けられたエントロピー復号化部
214、各次数毎に独立に設けられた複数の出現頻度モ
デル部216によって、各次数毎に並列化する。符号分
離部211は、入力された符号を各次数の符号に分離す
る。各次数毎のエントロピー復号化部214は、分離部
211で分離された各次数の符号と既に復元されている
各次数の直前の文字列に基づき各次数の条件付出易さを
求める処理を、各次数毎に並列的に行う。
【0061】各次数毎の出現頻度モデル部216は、直
前の文字列に繋がる入力文字の条件付出易さを各次数毎
に登録した頻度データ格納部を有し、各次数毎のエント
ロピー復号化部214で求めた各次数の条件付出易さに
より頻度データ格納部を検索して文字を復元すると共に
頻度データ格納部を登録更新する処理を、各次数毎に並
列的に行う。
【0062】このデータ復元装置のパイプライン化は、
各次数毎のエントロピー復号化部214と出現頻度モデ
ル部216を、各次数毎にパイプライン動作させるパイ
プライン制御部を設ける。図1(A)(B)及び図2
(C)のデータ圧縮装置及びデータ復元装置の出現頻度
モデル部は、条件付出易さを導くための情報として、順
位、出現数、累積出現数、文脈下の総出現数の検索、登
録、更新を行う。またエントロピー符号化部とエントロ
ピー復号化部は算術符号化と算術復号化を行う。
【0063】またパイプライン制御部は、出現頻度モデ
ル部における条件付出易さを導くための順位、出現数、
累積出現数、文脈下の総出現数に関する読出、加算、書
込を、各情報ごとにパイプライン処理させる。またパイ
プライン制御部は、算術符号空間を表す上端と下端の演
算を、並列に行う。 (ワードストリーム方向の符号化)図3および図4は本発明の要部を示す図であり、 ワード
ストリーム方向でのバイト単位の辞書型および確率統計
型による符号化と復号化を効率的に行って、処理時間を
実用化レベルに短縮できるデータ圧縮装置およびデータ
復元装置が提供される。
【0064】図3はワードストリーム方向での符号化と
復号化の原理説明図である。図3(A)は、複数バイト
で構成されたワードデータをワード単位で符号化するデ
ータ圧縮装置であり、ワードデータをバイト単位に分離
して同じバイト位置毎のバイトデータ列に変換するバイ
ト配列変換部500、バイト配列変換部500で得られ
た各バイト位置毎の入力バイトデータを、符号化を終了
したバイトデータとの条件付出易さにより符号化する複
数のバイト単位符号化部502、及び複数のバイト単位
符号化部502により符号化された各符号をまとめて出
力する符号マージ部503で構成される。
【0065】2バイトのユニコードや日本語コード、R
GB3バイトのフルカラー画像データ、4バイトや8バ
イトといったプログラムコードを圧縮する符号化におい
て、ワードデータの中の同一バイト位置のバイトデータ
の間には強い相関関係がある。従来のバイトストリーム
方向でのバイト単位の符号化に対し本発明はワードスト
リーム方向でのバイト単位の符号化を行うため、ワード
内の同一バイト位置での相関を符号化に取り込むことが
でき、十分な圧縮効率が期待できる。
【0066】バイト単位符号化部502としては辞書型
符号化部や確率統計型符号化部が用いられる。バイト単
位符号化部502を確率統計型符号化部とした場合、出
現頻度モデル部、エントロピー符号化部及びパイプライ
ン制御部で構成する。ここで文脈のバイト数を固定にす
る文脈固定の場合、出現頻度モデル部は、直前のバイト
データ列に繋がる入力バイトデータの条件付出易さを各
バイトデータ毎に登録した頻度データ格納部を有し、直
前のバイトデータ列に繋がる入力バイトデータの条件付
出易さを頻度データ格納部の参照により検索すると共
に、頻度データ格納部を登録更新する。
【0067】エントロピー符号化部は、出現頻度モデル
部で求めた条件付出易さにより入力バイトデータを符号
化する。パイプライン制御部は、出現頻度モデル部とエ
ントロピー符号化部をパイプライン動作させる。またバ
イト単位符号化部502を確率統計型符号化部とし、且
つ直前の字数を固定せずに可変としたブレンド文脈を扱
う場合には、出現頻度モデル部は、直前のバイトデータ
列に繋がる入力バイトデータの条件付出易さを、直前の
高次文脈(長いバイトデータ列)から低次文脈(直前の
短いバイトデータ列)までの各次数毎に登録した頻度デ
ータ格納部を有し、各次数における直前のバイトデータ
列に繋がる入力バイトデータの条件付出易さを頻度デー
タ格納部の参照により検索すると共に、頻度データ格納
部を登録更新する処理を行うために各次数毎に設けられ
る。
【0068】またエントロピー符号化部は、複数の出現
頻度モデル部の各次数の条件付出易さを高次の文脈から
低次の文脈の順に符号化する。そしてパイプライン制御
部は、複数の出現頻度モデル部とエントロピー符号化部
をパイプライン動作させる。このようにワードストリー
ム方向の符号化については、並列化とパイプライン化を
図ることで、処理時間を実用化レベルに短縮したデータ
圧縮装置が提供できる。
【0069】図3(A)のデータ圧縮装置で符号化され
た符号からワードデータを復元するデータ復元装置は図
3(B)のように、入力符号列からワードデータの各バ
イト位置の符号を分離する符号分離部530、符号分離
部530で分離された各バイト位置の入力符号と既に復
元されている同一バイト位置のバイトデータの条件付出
易さによりバイトデータを復号する複数のバイト単位復
号化部532、及び複数のバイト単位復号化部532に
より復元された各バイトデータを、バイト位置の順番に
並べてワードデータを出力する切替出力部533で構成
される。
【0070】このデータ復元装置もデータ圧縮装置に対
応して、バイト単位復号化部532を辞書型復号化部又
は確率統計型復号化部とする。確率統計型復号化部は、
固定文脈の場合、入力された符号と既に復元されている
直前のバイトデータ列から条件付出易さを求めるエント
ロピー復号化部、直前のバイトデータ列に繋がる入力バ
イトデータの条件付出易さを各バイトデータ毎に登録し
た頻度データ格納部を有しエントロピー復号化部で求め
た条件付出易さにより前記頻度データ格納部を検索して
バイトデータを復元すると共に頻度データ格納部を登録
更新する出現頻度モデル部、及びエントロピー復号化部
と出現頻度モデル部をパイプライン動作させるパイプラ
イン制御部で構成される。
【0071】またブレンド文脈の場合には、確率統計型
復号化部は、入力された符号と既に復元されている高次
文脈から低次文脈の各次数における直前のバイトデータ
列に基づき高次文脈から低次文脈の順に条件付出易さを
求めるエントロピー復号化部、直前のバイトデータ列に
繋がる入力バイトデータの条件付出易さを各次数毎に登
録した頻度データ格納部を有しエントロピー復号化部で
求めた各次数の条件付出易さから頻度データ格納部の参
照によるバイトデータを復元すると共に頻度データ格納
部を登録更新する処理を行う各次数毎に設けられた複数
の出現頻度モデル部、及びエントロピー復号化部と複数
の出現頻度モデル部をパイプライン動作させるパイプラ
イン制御部で構成される。
【0072】確率統計型符号化として算術符号化を採用
した場合、データ圧縮装置及びデータ復元装置における
前記出現頻度モデル部は、条件付出易さを導くための情
報として、順位、出現数、累積出現数、文脈下の総出現
数の検索、登録、更新を行う。またエントロピー符号化
部とエントロピー復号化部は算術符号化と算術復号化を
行う。 (ワードストリーム方向とバイトストリーム方向の符号
化復号化の切替え)図4はワードストリーム方向とバイ
トストリーム方向でのバイト単位の符号化復号化を適応
的に切り替える場合の原理説明図である。
【0073】図4(A)は複数バイトで構成されたワー
ドデータをワード単位で符号化するデータ圧縮装置であ
り、バイト配列変換部600、ワードストリーム符号化
部602、バイトストリーム符号化部604、符号切替
部605で構成される。バイト配列変換部600は、入
力ワードデータをバイトデータに分離した後にワードス
トリーム方向とバイトストリーム方向の複数ワード分の
二次元配列に変換し、この二次元配列を複数ワード分
(文脈の次数分)保持する。
【0074】ワードストリーム符号化部602は、バイ
ト配列変換部600による二次元配列のワードストリー
ム方向における入力ワードの各バイトデータを、符号化
を終了したワードデータ群の同一バイト位置のバイトデ
ータとの条件付出易さにより符号化してワードストリー
ム符号を生成する。これは図3のデータ復元装置に相当
する。
【0075】バイトストリーム符号化部604は、バイ
ト配列変換部600による二次元配列のバイトストリー
ム方向における入力ワードの各バイトデータを、先行す
るバイトデータとの条件付出易さにより符号化してバイ
トストリーム符号を生成する。これはバイトデータの並
びをそのまま取り入れてバイト単位に符号化する従来の
データ圧縮装置に相当する。
【0076】符号切替部605は、ワードストリーム符
号とバイトストリーム符号のどちらかを切替え出力す
る。例えば、符号切替部605は、ワードストリーム符
号とバイトストリーム符号の相関の強さに基づいて符号
出力を切り替える。またワードストリーム符号とバイト
ストリーム符号の内、符号長の短い方を選択する。符号
切替部605は、ワードストリーム符号とバイトストリ
ーム符号を、バイト単位に切替え出力する。また符号切
替部605は、ワードストリーム符号とバイトストリー
ム符号を、ワード単位に切替え出力することもできる。
更に、符号切替部は、ワードストリーム符号とバイトス
トリーム符号の切替毎に、切替符号を付加する。
【0077】符号切替部605は、ワードストリーム符
号とバイトストリーム符号の切替符号として、過去の各
符号の出現頻度に基づく切替符号を用いる。図4(B)
は、図4(A)のデータ圧縮装置による符号からワード
データを復元するデータ復元装置の原理説明図であり、
符号分離部700、ワードストリーム復号化部702、
バイトストリーム復号化部704及び出力切替部706
で構成される。
【0078】符号分離部700は、符号列を入力して1
ワードの各バイト位置のワードストリーム符号又はバイ
トストリーム符号に分離する。ワードストリーム復号化
部702は、分離部700で分離されたワードストリー
ム符号と既に復元されている同一バイト位置のバイトデ
ータの条件付出易さによりバイトデータを復号する。バ
イトストリーム復号化部704は、符号分離部700で
分離されたバイトストリーム符号と既に復元されている
先行するバイトデータの条件付出易さによりバイトデー
タを復号する。出力切替部706は、ワードストリーム
復号化部702又はバイトストリーム復号化部704で
復号された各バイトデータをバイト位置の順に結合して
復元したワードデータを出力する。
【0079】図3のワードストリーム方向での符号化に
よれば、2バイトのユニコードや日本語コード、RGB
3バイトのフルカラー画像データ、4バイトや8バイト
といったプログラコード等の多バイトのワードデータの
符号化については、圧宿効率の向上が期待できる。しか
し、ワードデータによっては、従来のバイトストリーム
方向での符号化の方が圧縮効率が高くなる場合があり、
一義的に決められない場合がある。
【0080】そこで、同じバイトデータにつきワードス
トリーム方向とバイトストリーム方向を各々行ない、圧
縮効率の高いの符号を適応的に選択することで、さらに
圧縮効率を高めることができる。
【0081】
【発明の実施の形態】
<目次> 1.固定次数文脈のパイプライン処理 2.ブレンド文脈の一部の並列化 3.ブレンド文脈の全体の並列化 4.ハッシュ構造による頻度データのアクセス 5.ワードストリーム方向での符号化復号化 6.ワードストリーム方向とバイトストリーム方向の適
応切替処理 1.固定次数文脈のパイプライン処理 図5は本発明による確率統計型のデータ圧縮装置の基本
構成である。データ圧縮装置は図5(A)のように、出
現頻度モデル部10、エントロピー符号化部12で構成
され、パイプライン制御部11によって出現頻度モデル
部10とエントロピー符号化部12がパイプライン処理
を行うように制御される。
【0082】出現頻度モデル部10はソースデータとし
て準備された文字列の先頭文字を入力し、直前の文字列
につながる入力文字の条件付出易さを検索する。即ち、
出現頻度モデル部10には直前の文字列につながる入力
文字の条件付出易さを各文字ごとに登録した頻度データ
格納部が設けられており、ソースデータから入力した文
字により頻度データ格納部を検索して、対応する入力文
字の条件付出易さを求める。入力文字の条件付出易さが
検索できたならば、頻度データ格納部の内容を登録更新
する。エントロピー符号化部12は、出現頻度モデル部
10で求めた入力文字の条件付出易さをエントロピー符
号化する。エントロピー符号化部12による符号化とし
ては、多値算術符号化や動的ハフマン符号化、あるいは
自己組織符号化の一種であるスプレイ符号化などを行
う。
【0083】図5(B)は、パイプライン制御部11に
よる出現頻度モデル部10及びエントロピー符号化部1
2のパイプライン動作を示している。ここで時間軸はタ
イムサイクルT1,T2,T3で示されている。いまソ
ースデータから文字a,b,a・・・を入力した場合を
考える。まず先頭文字aはT1サイクルで出現頻度モデ
ル部10に入力され、入力文字aの条件付出易さが求め
られる。次のT2サイクルにあっては、2つ目の文字b
が出現頻度モデル部10に入力されて条件付出易条件付
出易ささが求められると同時に、T1サイクルで求めら
れた最初の文字aの条件付出易さがエントロピー符号化
部12に与えられ、入力文字aの頻度のエントロピー符
号化が行われる。
【0084】以下同様にして、出現頻度モデル部10で
1文字を入力して条件付出易さを求めると同時に、エン
トロピー符号化部12で前回出現頻度モデル部10で求
めた条件付出易さのエントロピー符号化を同時に並行し
て行う。このように出現頻度モデル部10及びエントロ
ピー符号化部12がパイプライン制御部11により独立
にパイプライン動作することから、文字列の確率統計型
による符号化をより高速に行うことができる。
【0085】図6は、図5のデータ圧縮装置について算
術符号化を適用した本発明のデータ装置の実施形態であ
る。算術符号化を適用した場合には、データ圧縮装置は
確率モデル部14、算術符号化部16及びパイプライン
制御部15で構成される。確率モデル部14は、例えば
ソースデータとしての文字列から例えば1文字ずつa,
b,a,・・・を入力し、各入力文字ごとに入力文字の
条件付出易さである確率(出現頻度=正規化出現数)を
求める。
【0086】具体的には、確率モデル部14には頻度デ
ータ格納部が設けられ、この頻度データ格納部には各文
字の出現数の順番に並べられた登録番号即ち順位に従っ
て、各順位ごとに文字シンボル、出現数、累積出現数を
登録し、更に総出現数を格納している。このため入力文
字aで頻度データ格納部を検索し、入力文字aに対応す
る条件付き確率として順位を求め、算術符号化部16に
出力する。
【0087】同時に、算術符号化での出現頻度、累積出
現頻度の算出に使用する入力文字の出現数、累積出現数
及び総出現数を出力する。算術符号化部16は多値算術
符号化を行う。具体的には、確率モデル部14より出力
された入力文字の条件付き確率である順位の算術符号化
を行う。条件付き確率である入力文字の順位の算術符号
化とは、数直線[1,0]の符号空間を初期空間とし
て、入力文字の順位に対応する出現頻度と累積出現頻度
から前回の符号空間における入力文字の割当空間を算出
し、算出した空間を示す適宜の値を符号として出力す
る。
【0088】図6の例では、1文字ごとに符号を生成し
て圧縮データとして出力している。具体的には、入力文
字aについては確率モデル部14で順位1位が求めら
れ、これを算術符号化部16で符号化することで符号0
1を出力する。次の文字bについては、確率モデル部1
4で順位2位が求められ、これを算術符号化部16で符
号化して符号1001を出力する。更に3文字目aにつ
いては、1文字目と同様、順位1位を算術符号化して符
号01を出力する。
【0089】実際の装置にあっては、所定バイト数の文
字例えば8バイトの複数文字を1グループとして、先頭
文字から順番に順位に対応した符号空間を求め、最終文
字について算出された符号空間を表わす値を符号として
出力する処理が行われる。図6(B)は、パイプライン
制御部15による確率モデル部14と算術符号化部16
のパイプライン処理の動作である。まずT1サイクルに
あっては、先頭文字aを入力して確率モデル部14でそ
の条件付き確率である順位1位を求める。このとき算術
符号化部16にあっては、前回の順位がないことから符
号化を行わない。
【0090】次のT2サイクルにあっては、2文字目b
を入力して確率モデル部14で順位2位を求め、同時に
算術符号化部16で前サイクルで求めた入力文字aの順
位1位の算術符号化を行い、符号01を出力する。次の
T3サイクルにあっては、1文字目と同じ文字aを入力
して、確率モデル部14でその順位1位を求め、同時に
前サイクルT2で求めた文字bの順位2位の符号化を算
術符号化部16で行って符号1001を出力する。以下
同様にして、確率モデル部14で1文字を入力して順位
を求めると同時に、算術符号化部16で前サイクルで求
めた順位を算術符号化する処理を繰り返す。
【0091】図7は図6の算術符号化を用いたデータ圧
縮装置の詳細構成のブロック図である。図7において、
データ圧縮装置は確率モデル部14、算術符号化部16
で構成され、両者はパイプライン制御部15によってパ
イプライン制御される。確率モデル部14には順位読出
更新部18、文字読出更新部20、頻度読出更新部2
2、累積頻度読出更新部24、総累積頻度読出更新部2
6、更に頻度データ格納部25が設けられている。また
算術符号化部16には、符号空間の上端(ハイレベル)
を算出する符号空間算出部28、符号空間の下端(ロー
レベル)を算出する符号空間算出部30、及び符号出力
部36が設けられている。
【0092】まず確率モデル部14の頻度データ格納部
25には、例えば図8のような頻度データが格納されて
いる。図8において、頻度データ格納部25は文字シン
ボルK1〜256出現数の多い順位1〜256に並べ
て登録している。この順位と文字シンボルの登録構造
は、図70の従来装置に示した辞書416の部分に相当
する。同時に順位1〜256に対応して文字K1〜K2
56の出現数f(1)〜f(256)を登録している。
更に、各文字について累積出現数cf(1)〜cf(2
56)を登録している。このように頻度データ格納部2
5は、出現数と累積出現数を登録していることから、出
現頻度は、 頻度=出現数/総出現数 として求められる。また累積頻度も 累積頻度=累積出現数cf(s)/総出現数S0 として求められる。尚、通常の算術符号化のアルゴリズ
ムにあっては、出現数はfreq( )で表わされ、ま
た累積出現数はcum freq( )で表わされる
が、図8でそれぞれf( ),cf( )と簡略化して
いる。
【0093】再び図7を参照するに、確率モデル部14
の順位読出更新部18は、文字列からその先頭文字を入
力するごとに頻度データ格納部25を参照し、入力文字
に該当する登録文字を検索する。この文字検索結果は文
字読出更新部20に与えられる。文字読出更新部20
は、検索された入力文字に対応する頻度データ格納部2
5の辞書登録番号である順位を読み出す。
【0094】更に順位読出更新部18による検索結果
は、頻度読出更新部22、累積頻度読出更新部24にも
与えられ、頻度データ格納部25より検索した文字に対
応する出現数f( )及び累積出現数f( )を読み出
す。更に総累積頻度読出更新部26は、そのときの総出
現数cf(0)=S0 を読み出す。このようにして確率
モデル部14で入力文字に対応して頻度データ格納部2
5から読み出された入力文字の順位、出現数、累積出現
数及び総出現数は、算術符号化部16に与えられる。
【0095】また入力文字に基づく頻度データの読出出
力が済むと、順位読出更新部18、文字読出更新部2
0、頻度読出更新部22、累積頻度読出更新部24及び
総累積頻度読出更新部26のそれぞれで頻度データ格納
部25の更新を行う。具体的には、入力文字の出現数に
1を加えた後に、出現数の大きい順番に文字出現数及び
累積出現数の並び替えを行う。
【0096】算術符号化部16は、確率モデル部14よ
り出力された入力文字の順位sの出現数f(s)と累積
出現数cf(s)及び総出現数cf(0 )=S0 から、
前回の符号空間に対する今回の入力文字の割当空間を新
たな符号空間として算出する。例えば図6の順位sとな
る入力文字について、出現数f(s)及び累積頻度f
(s)、更に総出現数S0 が確率モデル部14から与え
られたとすると、入力文字Ksの順位sより1つ上位の
順位s−1の累積出現数cf(s-1 )を読み出し、入力
文字sの割当区間となる新区間の区間幅Wnew、上限
(ハイレベル)Hnew、及び下限(ローレベル)Ln
ewを算出する。
【0097】まず次の(1)式に従って前回の区間幅W
oldを算出する。最初の1文字の場合、前回の区間幅
Woldは初期値1.0を使用する。 Wold =(Hold −Lold)+1 (1) 但し、Wold は前回の区間幅(レンジ) Hold は前回の上端(ハイレベル) Lold は前回の下端(ローレベル) この(1)式で算出された区間幅に基づいて、新区間の
上端(ハイレベル)Hnewと下端(ローレベル)Ln
ewを次の(2)(3)式で算出する。 Hnew =Lold +{Wold ×cf(s-1) /S0 }−1 (2) 但し、Hnew は今回の上端(ハイレベル) cf(s-1) は1つ上の順位s-1 の累積出現数 So は総出現数 Lnew =Lold +{Wold ×cf(s) /S0 } (3) 但し、Hnew は今回の上端(ハイレベル) cf(s) は1つ上の順位sの累積出現数 So は総出現数 この(1)式、(2)式に従った符号空間におけるハイ
レベル(Hnew)の算出は、符号空間算出部28で行
われる。また(1)式及び(3)式に従った符号空間の
ローレベル(Lnew)の算出は、符号空間算出部30
で行われる。つまり新たな符号空間のハイレベルとロー
レベルが2つの符号空間算出部28,30によって並列
的に算出される。
【0098】符号空間算出部28,30における除算を
簡単にするため、逆数算出部32において総累積頻度読
出更新部26より出力された総出現数S0 の逆数1/S
0 が算出される。この逆数1/S0 の算出により符号空
間算出部28,30における(2)式、(3)式の除算
を乗算の形で行うことで高速化できる。符号空間算出部
28,30で算出された入力文字aの割当空間のハイレ
ベル及びローレベルは、算術符号導出部34に与えられ
る。算術符号導出部34は図9に示すような符号空間の
上端と下端を示すビット情報を生成する。即ち図10の
ように、前回の符号化区間を[1.0]として正規化
し、この区間[1,0]に閾値1/4,1/2,3/4
を設定して4つの区間に分割する。
【0099】この分割された区間[1,0]について新
たに算出された入力符号の割当区間のハイレベルとロー
レベルがどの分割区間に存在するかを符号化する。即
ち、算出されたハイレベルとローレベルについて次の2
つの条件で符号化する。 <条件>1/2以上でビット1とし、1/2を下回っ
たらビット0とする。
【0100】<条件>1/4以上で3/4以下の範囲
にあればビット1とし、この範囲を外れていればビット
0とする。 図10は正規化区間[1,0]に対し、算出された符号
化区間の割当範囲を太線で表わしている。まず符号空間
38−1,38−2,39−3,38−4はハイレベル
が1.0であり、ローレベルが分割空間に上から順番に
存在した場合である。この場合の出力符号は4ビットb
0 ,b1 ,b2 ,b3 で表わされ、図示の値をとる。例
えば符号空間38−1を例にとると、まずハイレベルは
1.0であり、条件から1/2以上であることからb
0 =1となる。
【0101】また条件から1/4以上で3/4以下の
範囲を外れていることからb1 =0となる。次にローレ
ベルについては、条件から1/2以上であることから
b2=1となり、条件から1/4以上で3/4以下の
範囲を外れていることからb3 =0となる。符号空間3
8−2については、同様にしてb0 b1 b2 b3 =10
11となる。符号空間38−3については、b0 b1 b
2 b3 =1001となる。更に符号空間38−4につい
ては、b0 b1 b2 b3 =1000となる。なお符号空
間38−1〜38−4についてはハイレベルを1.0と
しているが、ハイレベルが1〜3/4にあれば同じ出力
符号となる。
【0102】符号空間40−1〜40−3はハイレベル
を3/4としてローレベルを下位の分割空間に順番に存
在した場合である。この場合、ハイレベルの出力符号b
0b1は全て11であり、ローレベルの符号b2 b3 が
11,01,00と変化している。符号空間40−1,
40−2は、ハイレベルが1/2でローレベルが下側の
分割空間に順番に存在した場合である。この場合、ハイ
レベルの出力符号b0 b1は01であり、ローレベルの
出力符号b2 b3 が01,00となる。既に符号空間4
4は1/4〜0の範囲にハイレベルとローレベルの両方
が存在した場合であり、この場合には出力符号b0〜b
3は全て0となる。
【0103】図10の分割符号空間との比較による算術
符号の領域に対応して、図9の出力符号の下端及び上端
は図示のように1/2レンジ判定ビット、1/4〜3/
4レンジ判定ビットを組み合わせた4ビット情報とな
る。次に図11のタイムチャートを参照して図7のデー
タ圧縮装置における算術符号化のパイプライン動作を説
明する。ここで図11はパイプライン動作をT1〜T1
9のタイムサイクルに分けている。このうちT1〜T9
サイクルが入力文字の順位が第1位でない通常の場合で
あり、T10〜T13サイクルが入力文字の順位が第1
位の場合であり、更にT14〜T19サイクルが入力文
字の順位の頻度に対し同じ頻度の上位の順位の文字がな
い場合である。
【0104】まずT1〜T9サイクルの通常の場合のパ
イプライン動作を説明する。まず確率モデル部14の順
位読出更新部18は、T1サイクルで符号化すべき文字
Kを入力し、頻度データ格納部25の参照により、その
順位sを読み出す処理RK(Read Kの意味)を行
う。T1サイクルで読み出した入力文字Kの順位sは、
頻度読出更新部22、累積頻度読出更新部24、更に総
累積頻度読出更新部26に与えられ、T2サイクルで処
理Rs,Rs,R0 に示すように順位sの出現数f
(s)、累積出現数cf(s)及び総出現数S0 の読出
しが行われる。これに並行して順位sより1つ上の順位
s−1に対応する文字Ks-1 、出現数f(s−1)、及
び累積出現数cf(s−1)の読出しが、処理Rs-1 に
示すようにT3サイクルで並行して行われる。
【0105】このようなT1〜T3サイクルにおける確
率モデル部14における出現データの読出結果は算術符
号化部16に与えられ、T3〜T5サイクルで符号空間
のハイレベルとローレベルの算出処理が並行して行われ
る。まずT3サイクルで例えば符号空間算出部28が前
記(1)式に従った前回の区間幅Woldの算出のため
の加減算を行い、この結果をローレベル算出を行う符号
空間算出部30側にも反映させる。
【0106】同時にT3サイクルにあっては、逆数算出
部32で総出現数S0 の逆数1/S0 を算出し、符号空
間算出部28,30のそれぞれに供給する。T4〜T6
サイクルにあっては、符号空間算出部28,30のそれ
ぞれが(2)式に従ったハイレベルの算出と(3)式に
従ったローレベルの算出を並行して行う。このT3〜T
6サイクルに亘る符号空間のハイレベルとローレベルの
算出結果は算術符号導出部34に与えられ、T7〜T1
0サイクルにおける図8に示した分割空間の閾値との比
較処理により符号[0101]が導出される。この導出
符号は図8の符号空間42−1と同じである。導出され
た算術符号は、符号出力部36より例えばシリアルデー
タとして出力される。
【0107】一方、確率モデル部14にあっては、算術
符号化部16に必要とする頻度データを出力した後のT
3〜T9サイクルで頻度データ格納部25の更新処理を
行う。まずT3〜T5サイクルにおいて、入力文字Kの
順位sの出現数f(s)と同じ大きさをもつ最も高い順
位を求める。即ち、T3〜T5サイクルの処理Rs-1,
Rs-2 ,Rs-3 に示すように、上位の順位について順
次、順位から出現数を求め、順位sと同じ出現頻度をも
つ最上位の順位を検索する。
【0108】この様子は図8の頻度データ格納部25を
参照することで理解できる。いま入力文字の順位がsで
あったとすると、その出現数はf(s)となる。そこで
各サイクルごとに上位の順位s1,s2,s3,・・・
と順位を上げながら、それぞれの出現数f(s−1),
f(s−2),f(s−3)を読み出して、順位sの出
現数f(s)と比較する。
【0109】ここで順位s−3の出現数f(s−3)が
順位sの出現数f(s)より大きかったとすると、同じ
出現数f(s)をもつ順位はs2であることが分かる。
以後、入れ替えのための更新に際し、サイクルT3で順
位sの出現数f(s)は予め1つインクリメントしてお
く。このようにして順位sの出現数f(s)と同じ値を
もつ最上位の順位s−2が得られたならば、順位sと順
位s−2に対応する文字の出現数及び累積出現数の入れ
替えをT6〜T7サイクルで行う。
【0110】更に累積出現数については、順位s−3以
上の累積出現数cf(s−3)〜cf(1)を逐次読み
出して1つインクリメントする書込みを行う。この処理
はWs-3 ・・・W1 で示される。更にT6サイクルにあ
っては、処理W0 に示すように、総出現数S0 を1つイ
ンクリメントしておく。これによって文字Kの算術符号
化に伴う出現データ格納部25の更新処理が終了する。
【0111】T10〜T13サイクルは入力文字の順位
が第1位の場合である。この場合には頻度データ格納部
25の入れ替えが不要であり、それ以外はT1〜T9サ
イクルの通常の場合と同じである。更にT14〜T19
サイクルは、入力文字の出現数と同じ出現数をもつ上位
の順位が存在しない場合であり、この場合には文字の入
れ替えを行わずに、順位sについて順位sの出現数f
(s)のインクリメント、1つ上の順位s−1以上の累
積出現数cf(s−1)〜cf(1)のそれぞれのイン
クリメント、更に総出現数S0 のインクリメントを行
う。T10〜T13サイクル及びT14〜T19サイク
ルに続く算術符号化部16の処理は、T1〜T9サイク
ルに続く符号化処理と同じである。
【0112】図12は図5のデータ圧縮装置で得られた
圧縮データから元のソースデータを復元するデータ復元
装置の基本構成である。このデータ復元装置は図12
(A)のように、エントロピー復号化部46、出現頻度
モデル部48及びパイプライン制御部47で構成され
る。エントロピー復号化部46は圧縮データとしての符
号列の中から符号を1つずつ入力し、入力された符号と
既に復元されている直前の文字から条件付出易さを求
め、出現頻度モデル部48に出力する。出現頻度モデル
部48は直前の文字列につながる入力文字の条件付出易
さを各文字ごとに登録した頻度データ格納部を有し、エ
ントロピー復号化部46から出力された入力符号の条件
付出易さにより頻度データ格納部を検索して文字を復元
する。
【0113】パイプライン制御部47はエントロピー復
号化部46と出現頻度モデル部48をパイプライン動作
させる。ここでエントロピー復号化部46としては、図
5のエントロピー符号化部12で採用された算術符号
化、動的ハフマン符号化、自己組織化符号化の一種であ
るスプレイ符号化に対応して算術復号化、動的ハフマン
復号化、スプレイ復号化などを行うことになる。
【0114】図12(B)はパイプライン制御部47に
よるエントロピー復号化部46及び出現頻度モデル部4
8のパイプライン動作のタイムチャートである。まずT
1サイクルで符号を入力して条件付出易さを求めるエン
トロピー復号化を行う。このとき出現頻度モデル部48
は、前回の復号化結果が得られていないので文字の復元
処理は行わない。
【0115】次のT2サイクルにあっては、次の符号を
入力して同様にして条件付出易さを求めるエントロピー
復号化をエントロピー復号化部46で行う。同時に出現
頻度モデル部48で前サイクルT1で求めた条件付出易
さによる頻度データ格納部の検索で文字aを復元する。
以下同様に、エントロピー復号化部46で符号を入力し
て復号すると同時に、出現頻度モデル部48で前サイク
ルで得られた復号結果から文字を復元して出力する。
【0116】図13は、図6の算術符号化を適用したデ
ータ圧縮装置で得られた圧縮データから文字を復元する
算術復号化を行うデータ復元装置である。このデータ復
元装置は、図13(A)のように算術復号化部50、確
率モデル部52及びパイプライン制御部51で構成され
る。算術復号化部50は圧縮データとして図4のデータ
圧縮装置で得られた符号01,1001,01を符号単
位に入力し、符号から求められた割当符号空間の順位を
求め、確率モデル部52に出力する。
【0117】この場合には、順位1位、2位、1位が順
次出力される。確率モデル部52は、各文字の出現数の
大きい順番に順位を付けて並べられた図6に示したと同
じ構造の出現データ格納部を備えており、算術復号化部
50から出力された順位により頻度データ格納部を検索
して、対応する文字をa,b,aのように復元する。図
13(B)はパイプライン制御部51による算術符号化
部50及び確率モデル部52のパイプライン動作のタイ
ムチャートである。まずT1サイクルで算術符号化部5
0に符号01を入力し、順位1位を復号化する。このと
き確率モデル部52には前回の復号順位が入力されてい
ないことから、文字の復元は行われない。
【0118】次のT2サイクルにあっては、2番目の符
号1001を算術符号化部50に入力して順位2を復号
化すると同時に、確率モデル部52に前サイクルT1で
求めた順位1により頻度データ格納部を検索して文字a
を復元する。以下同様に、算術復号化部50で新たな符
号を入力して順位の復号化を行うと同時に、確率モデル
部52で前回復号した順位による文字の復元を行う。
【0119】図14は図13のデータ復元装置の詳細で
ある。このデータ復元装置は算術復号化部50、確率モ
デル部52及びパイプライン制御部51で構成される。
算術復号化部50には符号入力部54、累積値導出部5
6、符号空間のハイレベルを算出する符号空間算出部5
8、符号空間のローレベルを算出する符号空間算出部6
0、ハイレベル及びローレベルの符号空間算出に使用す
る総出現数S0 の逆数1/S0 を算出する逆数算出部6
2、累積頻度導出部64、及び累積頻度導出に使用する
レンジWold の逆数1/Wold を算出する逆数算出部6
6が設けられている。
【0120】また確率モデル部52には、順位導出部6
8、出現データ格納部70、文字読出更新部72、頻度
読出更新部74、累積頻度読出更新部76、総累積頻度
読出更新部78及び文字出力部80が設けられる。算術
復号化部50は符号を入力するごとに、入力符号で与え
られる累積出現数cf(code)を算出する。この符
号の累積出現数cf(code)は次式で与えられる。 cf(code)=[{(Value−Lold )×S0 }−1]/Wold (4) 但し、Valueは符号から求めた累積値 Lold は前回区間の下端(ローレベル) Wold は前回区間の区間幅(レンジ) この(4)式は、符号化の際に新空間のハイレベルを、
入力文字の順位より1つ上の順位s−1の累積出現数c
f(s−1)に基づいて算出する前記(2)式を変形し
て累積出現数cf(s−1)の算出式に変形した式と同
じである。即ち、(2)式の順位s−1の累積出現数c
f(s−1)を符号の累積出現数cf(code)に置
き替え、新空間のハイレベルHnewを累積値Valu
eに置き替えて変形することで、(4)式が得られる。
【0121】この(4)式における累積値Valueは
入力した符号から正規化された符号区間[1,0]に設
定した閾値1/4,1/2,3/4との比較により次の
条件に従って定められる。 <条件>符号から求めた新空間のローレベルが1/2
以上であれば、累積値Value=1/2とする。
【0122】<条件>符号から求めた新空間のローレ
ベルが1/4以上で且つハイレベルが3/4未満であれ
ば、累積値Value=1/4とする。 このような条件に従った累積値Valueの導出
は、累積値導出部56で行われている。また(4)式の
演算に使用する前回復号された符号の符号空間のハイレ
ベルとローレベルの算出は、符号空間算出部58,60
で行われている。この場合の符号空間のハイレベルとロ
ーレベルの算出値は前記(2)式、(3)式と基本的に
同じである。
【0123】累積頻度導出部64は前記(4)式に従っ
て符号の累積出現数cf(code)を算出すると共
に、算出した符号の累積出現数cf(code)に逆数
算出部66でレンズWold の逆数1/Wold を求めて乗
算することで、符号の累積頻度を導出する。一方、確率
モデル部52は、順位導出部68において算術復号化部
50より出力された符号から復元された累積出現数と、
頻度データ格納部70に格納されている各文字の累積出
現数を順位1位から順番に比較する。この符号の累積出
現数と頻度データ格納部70に格納された上位の順位か
らの累積出現数との比較により、順位を導出する。
【0124】順位導出部68で符号の累積出現頻度から
順位が導出されると、この順位は文字読出更新部72に
与えられ、順位に対応する文字を頻度データ格納部70
から読み出すことで文字が復元され、文字出力部80よ
り文字出力が行われる。また頻度読出更新部74は復元
文字の出現数を1つインクリメントする。累積頻度読出
更新部76は、復元文字より大きい累積出現数をもつ上
位の順位について、それぞれの累積出現数を1つインク
リメントする更新を行う。更に復元順位の文字の上位の
順位に同じ累積出現数の順位が存在する場合には、同じ
累積出現数の最上位の順位と復元順位の入れ替えを文字
出現数及び累積出現数について行う。更に総累積頻度読
出更新部78は、総出現数を1つインクリメントする。
【0125】図15及び図16は、図14のデータ復元
装置のパイプライン動作のタイムチャートである。ここ
で図15のT1〜T13サイクルは符号から復元した文
字の順位が1位以外となる通常の場合であり、また図1
5のT14サイクルから図16のT24サイクルは、符
号から復元した順位が1位の場合である。更に図16の
T25〜T38サイクルは符号から復元した順位が1位
以外の通常の場合であるが、復元順位について同じ頻度
の上位の順位がない場合である。
【0126】まず図15のT1〜T13サイクルの通常
の復元処理を説明する。T1〜T2サイクルにあって
は、符号入力部54によって符号ビットを入力し、累積
値導出部56によって前記した条件の比較処理によ
り累積値Valueを導出する。このときT1サイクル
以前のサイクルで符号空間導出部58,60により前回
復元された符号空間のハイレベル及びローレベルの算出
が既に済んでいる。
【0127】次のT3〜T6サイクルにあっては、前記
(4)式により累積頻度導出部64において、符号の累
積出現頻度の算出が行われる。このときT4サイクルに
おいて逆数算出部66が(4)式における1/Wold
の逆数演算を並行して行い、この結果をT6の乗算に使
用している。T6サイクルで算出された符号の累積出現
数cf(code)は確率モデル部52に与えられ、T
7〜T13サイクルにおいて文字の復元及び頻度データ
格納部70の更新が行われる。この確率モデル部52に
おける文字の復元及び頻度データの更新に並行して算術
復号化部50にあっては、T10〜T13サイクルで符
号空間算出部58,60による復元中の文字に関する符
号空間のハイレベルとローレベルの算出を並行して行っ
ている。
【0128】またT10〜T13サイクルにおける符号
空間のハイレベルとローレベルの算出に先立って、T8
サイクルにおいて逆数算出部62が総出現数S0 の逆数
1/S0 を予め算出し、T12サイクルにおける乗算を
可能としている。ここでT7〜T12サイクルにおける
確率モデル部52における文字の復元と頻度データの更
新処理を説明する。まずT7〜T10サイクルにおい
て、頻度データ格納部70に登録された頻度の高いもの
から順番に累積出現数を読み出して、算術復号化部50
から送られた符号の累積出現数cf(code)がどの
順位の間に位置するのかを、読み出した順位と1つ上の
順位の累積出現数の大小関係から導く。
【0129】即ち、T7〜T10サイクルにあっては、
R1〜Rsのように順位から累積出現数及び文字の読出
しを並行して行っており、において算術復号化部50
から与えられた符号の累積出現数cf(code)と読
み出した各順位の累積出現数との比較を行い、この場
合、順位sと順位s−1の間に符号の累積出現数cf
(code)が位置することから順位sが復元され、T
11サイクルで順位sの文字出力が行われる。
【0130】またのようにT7〜T11サイクルで、
順位1〜sの読出しごとに1つ上の順位の隣接累積出現
数同士の比較を行っている。この場合、順位s−1の読
出時における比較と順位sの読出時における比較で隣接
する上位の累積出現数との比較結果が同一であった場合
には、順位s−2,s−1,sの累積出現数が同じであ
ることが分かる。
【0131】そこでT11〜T13サイクルにおいて、
復元文字の順位sの格納データが同じ累積出現数をもつ
順位のうちの最上位の位置にs−2との格納データの入
れ替えを行う。この入れ替えに先立ち、T8〜T10で
読み出した順位s−3以上の累積出現数については1つ
インクリメントを行っており、また総累積出現数につい
てはT7でR0としてリードした後に、T8で1つイン
クリメントしてT9で書き込む。もちろん、T11〜T
13における順位sとs−2の頻度データの入れ替え
は、累積出現数、出現数及び文字の3つについて行う。
【0132】図15のT14サイクルから図16のT2
4サイクルまでの復元順位が1位の場合については、確
率モデル部52における復元順位における頻度データの
入れ替えを行わない点が異なり、その他は同じである。
また図16のT25〜T38サイクルで復元順位が1位
でなく通常の場合で、復元された順位の累積出現数と同
じ累積出現数をもつ上位の順位がない場合については、
同じ累積出現数をもつ最上位の順位と復元順位との頻度
データの入れ替えを行わない点が相違し、それ以外は通
常の場合と同じになる。 2.ブレンド文脈の一部の並列化 図17(A)はブレンド文脈を対象とした本発明のデー
タ圧縮装置であり、ブレンド用の確率モデル部を各次数
ごとに並列化し、更に算術符号化部との間でパイプライ
ン処理を行うようにしたことを特徴とする。
【0133】ブレンド用確率モデル部82は、この実施
例にあっては0次確率モデル部80、1次確率モデル部
90、2次確率モデル部92の並列回路で構成される。
0次、1次及び2次確率モデル部88,90,92のそ
れぞれは、並列的に1文字ずつ入力し、各次数における
従属関係となる出現頻度を求め、順位を出力する。バッ
ファ選択部84は、0次、1次、2次の確率モデル部8
8,90,92の出力順位を高次から低次に向けて選択
して算術符号化部86に出力する。具体的には、2次確
率モデル部92で有効順位が得られると、これを算術符
号化部86に出力して算術符号化を行う。
【0134】一方、2次確率モデル部92で順位が得ら
れずにエスケープ出力Eとなった場合には、算術符号化
を行わずに単にエスケープを示す符号を出力し、次の
次確率モデル部90の出力を選択し、有効順位が得られ
ていれば1次確率モデル部90の順位の算術符号化を行
う。また1次確率モデル部90からも有効順位が得られ
ずにエスケープ出力Eであった場合には、0次確率モデ
ル部88の出力順位を選択して算術符号化を行わせるこ
とになる。ここで2次確率モデル部92及び1次確率モ
デル部90でエスケープ出力となるのは、入力文字を親
とし各次数の文字を子供とするとき、各次数に子供はい
るけれども該当する子供がない場合、あるいは各次数に
子供が1つもない場合のいずれかである。
【0135】0次、1次及び2次確率モデル部88,9
0,92で使用する出現頻度データ格納部としては、符
号化対象とする全文字ごとに辞書をもち、文字入力ごと
に1次確率モデル部90で使用する入力文字の1つ前の
文字の登録及び2次確率モデル部92で使用する2つ前
の文字の登録を動的に行う。図17(B)は図17
(A)のブレンド用確率モデル部82を並列化したデー
タ圧縮装置のパイプライン動作のタイムチャートであ
る。ここでブレンド用確率モデル部82に対し、ソース
データから例えば文字dcabaの順に入力し、既に2
文字dcの符号化が済んでabaを符号化する場合であ
る。
【0136】まずT1サイクルにあっては、文字aが入
力し、0次、1次及び2次確率モデル部88,90,9
2のそれぞれにおいて並列的に各次数における出現頻度
が求められ、出現頻度順に並べた場合の順位が得られ
る。ここで2次確率モデル部92で先行する2文字dc
を組み合わせた文字列dcaの出現頻度が順位1位で存
在したとすると、次のT2サイクルでバッファ選択部8
4は2次確率モデル部92から出力された順位1位の出
力12 を選択し、これを算術符号化部86に与えて算術
符号化して符号1を出力する。
【0137】同時にT2サイクルにあっては、次の文字
bを0次、1次及び2次確率モデル部88,90,92
に並列的に入力して出現頻度による順位を求めている。
このとき2次確率モデル部92において、先行する2文
字caの子が検索できなかった場合には、次のT3サイ
クルで算術符号化部86はエスケープ符号E2 をそのま
ま符号出力する。このT3サイクルにあっては、ブレン
ド用確率モデル部82は3番目の文字aを入力し、この
場合、先行する2文字abの存在による順位1位が2次
確率モデル部92で得られたとする。
【0138】算術符号化部86にあっては、T3サイク
ルにおける2次確率モデル部92からのエスケープ出力
2 の符号化出力に続き、次のT4サイクルで1次確率
モデル部92の出力を選択して符号化しようとする。こ
のときT2サイクルで示したように、1次確率モデル部
90においても入力文字bに対する1つ前の文字aが子
供として存在せずに、有効順位が得られずにエスケープ
出力E1 となっていたとすると、このエスケープ出力E
1 をそのまま符号1として出力する。
【0139】そしてT5サイクルで0次確率モデル部8
8より出力される順位2の有効出力20 を算術符号化部
86に与えて符号化し、符号01を出力する。このため
T2サイクルのブレンド用確率モデル部82における0
次、1次及び2次の並列処理による順位出力について
は、次のT3,T4,T5の3サイクルを使用した2つ
のエスケープ符号と0次の順位出力の算術符号化が行わ
れる。
【0140】ブレンド用確率モデル部82のT3サイク
ルにおける2次確率モデル部92からの順位1の出力1
2 については、次のT6サイクルで算術符号化部86に
よる符号化が行われ、符号1の出力となる。図18は図
17(A)のブレンド文脈を対象としたデータ圧縮装置
の詳細である。図18において、ブレンド用確率モデル
部82は0次確率モデル部88、1次確率モデル部9
0、及び2次確率モデル部92を並列的に備えており、
1次確率モデル部90に代表して示す構成をもつ。
【0141】1次確率モデル部90には順位読出更新部
94、文字読出更新部98、頻度読出更新部100、累
積頻度読出更新部102、総累積頻度読出更新部106
が設けられる。これらのブロックは、図7の固定文脈を
対象とした確率モデル部14に設けている対応する回路
部と同じである。これに加えてブレンド用確率モデル部
82の場合には、エスケープ用頻度読出更新部95及び
エスケープ判断部104を新たに設けている。
【0142】エスケープ判断部104は入力文字の1つ
前の文字が子供として頻度データ格納部96の対応する
辞書に存在するか否か検出し、子供が存在しない場合に
はバッファ部110に対しエスケープ出力を行わせる。
エスケープ用頻度読出更新部95は、エスケープが検出
された場合に頻度データ格納部96に格納されているエ
スケープ出現数を1つインクリメントし、更にエスケー
プ出力も文字出現数の1つであることから、総累積頻度
読出更新部106を起動して総出現数のインクリメント
を行なわせる。
【0143】バッファ選択部84は、各次数ごとに設け
たバッファ部108,110,112と選択部114で
構成される。選択部114は、高次から低次に向けてバ
ッファ部112,110,108の順番に格納された確
率出力としての順位を選択して算術符号化部86に供給
する。算術符号化部86は、ハイレベル算出用の符号空
間算出部116、ローレベル算出用の符号空間算出部1
18、総出現数の逆数を算出する逆数算出部120、算
術符号導出部122、及び符号出力部124で構成され
る。この算術符号化部86の構成は、図7の算術符号化
部16の対応するブロックと同じである。図19は、図
18のブレンド文脈を対象としたデータ圧縮装置におけ
る1次モデル部90及び算術符号化部86のパイプライ
ン動作のフローチャートである。
【0144】ここで、T1〜T9サイクルは順位1位以
外で符号化する場合、T10〜T13サイクルは子供の
登録が存在しない場合のエスケープ符号化、T14〜T
19サイクルは子供は存在するが該当する子供がない場
合のエスケープ符号化である。この1次確率モデル90
の動作にあっては、例えばT1〜T9サイクルを例にと
ると、T1,T2サイクルで入力文字に対し1つ前の文
字となる子供の有無をリードし、順位が有効に得られれ
ば子供有りと判断してバッファ選択部84を経由して算
術符号化部86に順位出力を行なっている。
【0145】これ以外の点は図11のタイムチャートに
示した固定次数の確率モデル部の場合と同じである。ま
た共通部としての算術符号化部86については、図11
の算術符号化部16と全く同じである。T10〜T13
サイクルの子供なしの場合のエスケープ符号化にあって
は、1次確率モデル部90のみが動作し、算術符号化部
は動作しない。またT14〜T19サイクルの子供は存
在するが該当する子供がない場合のエスケープ符号化に
ついては、T1〜T8と同様の処理によりエスケープ出
力を算術符号化部86で符号化することになる。
【0146】図20(A)は、図15のブレンド用確率
モデル部を並列化したデータ圧縮装置で復号化された圧
縮データから文字列としてのソースデータを復元するブ
レンド文脈を対象としたデータ復元装置の基本構成であ
る。図20(A)において、このデータ復元装置は算術
復号化部126に続いてブレンド用確率モデル部128
を設けており、ブレンド用確率モデル部128は例えば
0次確率モデル部130、1次確率モデル部132及び
2次確率モデル部134を並列的に設けており、各モデ
ル部の出力を選択部136で選択して文字列を復元して
いる。またパイプライン制御部125が設けられ、算術
復号化部126とブレンド用確率モデル部128のパイ
プライン動作を行うようにしている。
【0147】この図20(A)のデータ復元装置のパイ
プライン動作は、図20(B)のようになる。いま図1
7のデータ圧縮装置で得られた符号1 0101 1が
供給されたとする。また既に先行する2つの符号により
文字dcが既に復元されていたとする。まずT1サイク
ルでは符号1を算術復号化部126が入力し、2次の順
位1の符号化出力12 を出力し、ブレンド用確率モデル
部128に設けている0次、1次、2次確率モデル部1
30,132,134に並列的に供給する。次のT2サ
イクルでは2番目の符号の先頭ビット0を入力し、算術
復号化部126は2次のエスケープ出力E2 を出力す
る。このとき確率モデル部128にあっては、2次確率
モデル部134が順位1の復号化出力12 から文字aを
復元し、選択部136を介して出力する。
【0148】次のT3サイクルでは2番目の符号のビッ
ト1を入力し、1次のエスケープ出力E1 を算術復号化
部126が出力する。同時に2次確率モデル部134に
あっては、T2サイクルで出力された2次エスケープ出
力E2 に基づいたエスケープ用頻度データの更新を行
う。T4サイクルでは2番目の符号のビット01を算術
復号化部126で入力し、0次の順位2の復号化出力2
0 を出力する。このときブレンド用確率モデル部128
にあっては、1次確率モデル部132で1次のエスケー
プ復号化出力E1 によりエスケープ用頻度データの更新
を行う。
【0149】T5サイクルにあっては3番目の符号1を
入力し、算術復号化部126は2次の順位1の復号化出
力12 を出力する。このときブレンド用確率モデル部1
28にあっては0次確率モデル部130が動作して順位
2位の復号化出力20 から文字bを復元して出力する。
T5サイクルで得られた復号化出力12 は、T6サイク
ルで2次確率モデル部134による文字aの復元が行わ
れる。
【0150】図21は図20(A)のデータ復元装置の
詳細である。算術復号化部126は符号入力部138、
累積値導出部140、符号空間算出部142,144、
逆数算出部146、累積頻度導出部148、逆数算出部
150で構成される。この算術復号化部126の構成及
び機能は、図12の固定次数のデータ復元装置における
算術復号化部50と同じである。
【0151】ブレンド用確率モデル部128は、0次確
率モデル部130、1次確立モデル部132及び2次確
率モデル部134を有し、1次確率モデル部132に代
表して示す構成をもつ。1次確率モデル部132には文
字読出更新部156、頻度読出更新部158、累積頻度
読出更新部160及び総累積頻度読出更新部162が設
けられ、これらのブロック及び機能は図12の確率モデ
ル部52の対応するブロックと同じである。
【0152】また順位導出部152が0次、1次及び2
次確率モデル部130,132,134に対する共通部
として設けられる。更に頻度データ格納部154も共通
部として設けられる。また3つの選択部136−1,1
36−2,136−3が設けられる。選択部136−1
は各次数の文字読出更新部156の復元文字を入力した
符号の次数に応じて選択して文字出力部164より出力
する。選択部136−2は各次数の累積頻度読出更新部
160の出力を入力し、復元した次数の出力を選択して
算術復号化部126の符号化空間算出部142,144
に出力する。選択部136−3は各次数の総累積頻度読
出更新部162の出力を入力し、復元した次数に対応す
る出力を選択して、選択した次数の総出現数を算術復号
化部126の逆数算出部146に出力する。
【0153】図22及び図23は、図21のデータ復元
装置のパイプライン動作のタイムチャートであり、共通
部としての算術復号化部126とブレンド用確率モデル
部128の中の1次確率モデル部132を代表して示し
ている。また図22のT1〜T13サイクルは、入力し
た符号から復元した順位1位で復号化する場合であり、
図22のT14から図23のT24サイクルは子供有り
の場合のエスケープ符号化であり、更にT25〜T38
サイクルは順位1位以外で符号化する通常の場合であ
る。 3.ブレンド文脈の全体の並列化 図24(A)はブレンド文脈を対象としたデータ圧縮装
置の他の実施例であり、この実施例にあっては、確率モ
デル部166、算術符号化部168、符号出力部170
の全てを並列化し、更に各部分をパイプライン制御部1
75でパイプライン動作させるようにしたことを特徴と
する。
【0154】即ち、この実施形態にあっては2次のブレ
ンド文脈を例にとっており、このため確率モデル部16
6は0次、1次及び2次の確率モデル部172,17
4,176を備え、算術符号化部168は0次、1次及
び2次の算術符号化部178,180,182を備え、
更に符号出力部170は0次、1次及び2次符号バッフ
ァ部184,186,188を備え、最終的に選択部1
90で符号化が行われた次数の符号出力を選択して圧縮
データとしている。
【0155】図24(B)は図24(A)のデータ圧縮
装置のパイプライン動作のタイミングチャートである。
いま文字dcabaが入力し、既に2文字dcの符号化
が済んだ状態で文字abaの符号化を行う場合を例にと
る。まずT1サイクルにあっては、文字aを0次、1
次、2次確率モデル部172,174,176に並列的
に入力して順位を求める。
【0156】このとき2次確率モデル部176で符号化
済みの2文字dcの登録による順位1の符号化出力I2
が得られたとする。ここで上位の次数の順位出力が有効
に得られた場合には下位の確率モデル部にこれを伝え
て、その出力を禁止させる。したがってT1サイクルに
あっては、1次確率モデル部176のみが順位1の符号
化出力12 を行う。
【0157】次のT2サイクルにあっては、次の文字b
を0次、1次、2次確率モデル部172,174,17
6に入力して順位を求める。このとき2次算術符号化部
182が2次確率モデル部176からの符号化出力12
の算術符号化を行って、符号1を2次符号バッファ18
8に入力する。確率モデル部166のT2サイクルにあ
っては、2次確率モデル部176で子としての2文字c
aがなく、エスケープ出力E2 を生ずる。また1次確率
モデル部174にあっても、子の文字aの登録がなく、
1次のエスケープ出力E1 を生ずる。このようなエスケ
ープ出力が生じた場合には、0次確率モデル部172が
有効となって0次の順位の符号化出力20 を生ずる。
【0158】T3サイクルにあっては3文字目aを入力
し、0次、1次、2次確率モデル部172,174,1
76で並列的に順位が求められ、この場合、2次確率モ
デル部176より2次の順位1の符号化出力12 が有効
に得られる。このT3サイクルにあっては、0次、1
次、2次算術符号化部178,180,182が並列的
に動作して符号01,1,0を0次、1次及び2次符号
バッファ184,186,188に格納する。
【0159】次のT4サイクルでは、T3サイクルで得
られた2次確率モデル部176からの順位1の符号化出
力12 が2次算術符号化部182で符号化され、2次符
号バッファ部188に格納される。図25は、図24
(A)の各次数毎に並列化したデータ圧縮装置の詳細で
ある。まずブレンド用確率モデル部166は、0次、1
次、2次順位読出更新部192,194,196を並列
的に設け、続いて0次、1次、2次頻度、累積頻度読出
更新部198,200,202を前段に直列接続して並
列的に設けている。また算術符号化部168は0次、1
次、2次ごとに符号空間算出部260,262,26
4、算術符号導出部266,268,270、及びシリ
アル/パラレル変換符号出力部272,274,276
を設けている。
【0160】算術符号化部168の各次数の符号出力
は、図24(A)の符号出力部170に設けられた0
次、1次、2次符号バッファ部184,186,188
に格納された後、マージ部190によりとりまとめられ
て圧縮データとして出力される。このマージ部190に
よるとりまとめの際に各次数の符号を独立して復元でき
るようにするため、図25(B)のデータ構造を生成し
ている。
【0161】マージ部190で生成するデータ構造は、
先頭に0次、1次及び2次のバッファ符号のバイト長を
示す0次、1次及び2次のバイト長表示領域266,2
68,270を設け、その後ろに0次、1次,2次のバ
ッファ符号260,262,264を配置している 更にパイプライン制御部160が設けられ、ブレンド用
確率モデル部166、算術符号化部168のパイプライ
ン動作を行わせる。
【0162】図26は、図25(A)のデータ圧縮装置
のパイプライン動作のタイムチャートである。まずT1
〜T10サイクルについて、図25(A)のブレンド用
確率モデル部166における2次、1次及び0次の各入
力文字に対する順位の導出と頻度データの更新の処理を
示している。また算術符号化部168における2次、1
次及び0次の算術符号化処理については、紙面の都合で
T2〜T15サイクルに直列的に示しているが、実際に
はT2サイクルから並列的に算術符号化の処理が行われ
る。
【0163】尚、図26における確率モデル部166及
び算術符号化部168のパイプライン動作は、図9の固
定次数の場合と基本的に同じである。図27は、図24
のデータ圧縮装置で符号化された圧縮データを復元する
データ復元装置の基本構成である。このデータ復元装置
は符号入力部212、算術復号化部214及び確率モデ
ル部216で構成される。符号入力部212には分離部
211が設けられ、例えば図25(B)のデータ構造を
もつ圧縮データを入力し、並列的に設けられた0次、1
次、2次符号バッファ部218,220,222に各次
数ごとの符号を格納できるようにしている。
【0164】算術復号化部214は0次、1次及び2次
算術復号化部224,226,228を並列的に設けて
いる。ブレンド用確率モデル部216は0次、1次、2
次確率モデル部230,232,234を並列的に設け
ており、それぞれの復元文字を選択部236に入力して
文字列を出力している。図27(A)のデータ復元装置
のパイプライン動作は、図27(B)のようになる。こ
のパイプライン動作は図24(A)で圧縮された符号1
0101 1を入力して復元する場合であり、既に文
字cdが復元された状態での動作としている。T1サイ
クルにあっては、2次符号バッファ部222に分離され
た符号1を2次算術復号化部228に出力し、2次の順
位1位の符号化出力12 を得る。
【0165】次のT2サイクルでは2次符号バッファ部
222からのエスケープ符号0出力、1次符号バッファ
部220からのエスケープ符号1出力、更に0次符号バ
ッファ218からの符号出力01を入力して、2次、1
次、0次算術復号化部228,226,224は並列的
に復号化を行い、2次エスケープ出力E2 、1次エスケ
ープ出力E1 、及び0次の順位2の復号化出力20 を生
ずる。
【0166】このT2サイクルにあっては、同時に2次
確率モデル部234がT1サイクルで得られた順位1位
の復号化出力12 を受けて文字aを復元して出力する。
T3サイクルにあっては、2次符号バッファ部222よ
り3番目の符号1の出力が2次算術復号化部228に対
して行われ、順位1位の符号化出力12 を生ずる。同時
にT3サイクルにあっては、2次確率モデル部234に
よるエスケープ出現数の更新、1次確率モデル部232
による同じくエスケープ出現数の更新、更に0次確率モ
デル部230による順位2位の文字bの復元出力が行わ
れる。
【0167】T3サイクルで2次算術符号化部228で
得られた復号化出力I2 は、T4サイクルで2次確率モ
デル部234により順位1位の文字aの復元出力が行わ
れる。図28は図27(A)のデータ復元装置の詳細で
あり、算術復号化部214及びブレンド用確率モデル部
216について示している。算術復号化部214は0
次、1次、2次ごとにパラレル/シリアル変換符号入力
部278,280,282、算術符号順位導出部28
4,286,288及び符号空間算出部290,29
2,294を並列的に設けている。
【0168】このため、符号入力部212で分離された
0次バッファ符号260、1次バッファ符号262及び
2次バッファ符号264のそれぞれを並列に入力して、
符号空間における順位を導出するための累積出現頻度を
算出する。確率モデル部216は0次、1次、2次ごと
に順位・頻度・累積頻度読出更新部246,248,2
50及び文字読出更新部252,254,256を設け
ており、いずれかの次数の部分で復元した文字を選択部
258で選択して出力している。このように各次数ごと
に並列的に設けられた算術復号化部214及びブレンド
用確率モデル部216は、パイプライン制御部215に
よりパイプライン動作が行われる。
【0169】図29のタイムチャートは図28のデータ
復元装置のパイプライン動作である。まず算術復号化部
214におけるビット符号入力、累積出現頻度算出、符
号化空間算出については、0次、1次、2次の処理を共
通に示している。次のブレンド用確率モデル部216に
ついては、2次、1次、0次に分けて並列的な処理を示
している。この各次数における算術復号化部及び確率モ
デル部のパイプライン動作は、図15,図16に示した
固定文脈の場合の算術復号化部及び確率モデル部と基本
的に同じである。
【0170】このように各次数の算術復号化部と確率モ
デル部とが独立して動作することで、復号処理の速度を
向上できる。またエスケープ符号の関係で復元処理を途
中まで実行しても無効になる場合が生ずるが、各次数ご
とに独立していることから復元処理に遅れを生ずること
はない。 4.ハッシュ構造による頻度データのアクセス 図30は本発明のデータ圧縮装置及びデータ復元装置の
確率モデル部で使用する頻度データ格納部のデータを読
出更新する際のアクセス構造の実施形態であり、この実
施例にあっては内部ハッシュ構造を使用したことを特徴
とする。
【0171】図30において、内部ハッシュ構造は内部
ハッシュ関数部300、出現頻度モデルデータ格納部3
02、一致/不一致検出部304及びリハッシュ関数部
306で構成される。出現頻度モデルデータ格納部30
2の検索は、入力した注目文字に任意の次数をもつ直前
の文字列を加えた文字列を内部ハッシュ関数部300に
与えてハッシュアドレスを求め、このハッシュアドレス
によって出現頻度モデルデータ格納部302を検索し、
例えば出現頻度である確率や順位を読み出す。
【0172】一致/不一致検出部304は、ハッシュア
ドレスにより出現頻度モデルデータ格納部302から検
索した文字列と入力文字列との一致、不一致を判定して
おり、一致すればそのアドレスの頻度データを出力す
る。不一致となった場合、ハッシュアドレスの衝突によ
りリハッシュされたアドレスに登録されていることか
ら、ハッシュ関数部306を起動してハッシュ関数の生
成をやり直し、再度、出現頻度モデルデータ格納部30
2を検索し、直前の文字列とその下に位置する入力文字
の検索を行う。もちろん、登録更新についても同様であ
る。
【0173】図31は出現頻度モデル部に設ける出現頻
度データアクセス構造の他の実施例であり、この実施例
は内部ハッシュ構造により直前の文字列(文脈)の検
索,登録,更新を行い、外部ハッシュ構造により直前の
文字列(文脈)の下に存在する入力文字(注目文字)の
検索,登録,更新を行うようにしたことを特徴とする。
まず内部ハッシュ構造は、内部ハッシュ関数部300、
出現頻度モデルデータ格納部302、一致/不一致検出
部304及びリハッシュ関数部306で構成される。一
方、入力した注目文字の外部ハッシュ構造は注目文字デ
ータ格納部308及び一致/不一致検出部310で構成
される。
【0174】例えば入力文字を注目文字として直前の文
字列と注目文字を合わせた確率または順位などの出現頻
度を読み出す際には、直前の文字列を内部ハッシュ関数
部300に与えてハッシュアドレスを求め、出現頻度モ
デルデータ格納部302をアクセスして文字列データを
読み出す。直前文字列に一致すれば外部ハッシュ構造を
とる注目文字データ格納部308をアクセスし、直前文
字列の下に位置する注目文字を一致/不一致検出部31
0で一致が得られるまでリスト検索を繰り返す。そし
て、リスト検索により注目文字と注目文字データ格納部
308からの読出し文字との一致が得られれば、その出
現頻度を出力する。
【0175】このような図30の内部ハッシュ構造ある
いは図30の内部ハッシュ構造と外部ハッシュ構造を組
み合わせたアクセスを行うことで、データ圧縮及びデー
タ復元における出現頻度モデル部における任意の次数を
もつ文脈に依存した文字の出現頻度の検索,登録,更新
を高速に行うことができる。尚、ブレンド文脈を対象と
した圧縮復元については、算術符号化と復号化を例にと
っているが、これ以外に動的ハフマン符号化及び復号化
や自己組織化符号の一種であるスプレイ符号化及び復号
化などを行うようにしてもよいことはもちろんである。 5.ワードストリーム方向での符号化と復号化 図32は複数バイトで構成されたワードデータをワード
単位に符号化するデータ圧縮装置のブロック図であり、
1ワードを構成する複数のバイトデータをバイトストリ
ーム方向で各バイトデータごとに符号化することを特徴
とする。
【0176】図32においてデータ圧縮装置は、nバイ
ト構成のワードデータを例にとると、バイト配列変換
部、nバイト分のバイト単位符号化部502−1,50
2−2,・・・502−n、及び符号マージ部503で
構成される。バイト配列変換部500は、ソースデータ
からnバイトのバイトストリームとなる1ワード分のワ
ードデータを入力し、各バイト位置ごとに分離して並列
配置する。
【0177】即ち、バイトデータの1バイト目,2バイ
ト目,・・・nバイト目の各バイトデータに分離して各
バイト位置ごとにワードストリーム方向に配置する。こ
のバイト配列変換部500には、現時点で入力されたワ
ードデータ以外に、既に符号化された先行するワードデ
ータのバイト位置ごとのバイトデータも保存されてい
る。
【0178】この結果、バイト単位符号化部502−
1,502−2〜502−nに対しては、現時点のワー
ドデータと既に符号化されたワードデータの同一バイト
位置の各バイトデータがワードストリーム方向に並んだ
バイトデータ列を保持することになる。この1バイト目
からnバイト目までの複数ワード分の同一バイト位置の
入力バイトデータ及び符号化済みバイトデータ列を保持
することで、各バイト位置のバイトデータ列がワードス
トリーム方向のバイトデータ列を構成している。
【0179】バイト単位符号化部502−1〜502−
nのそれぞれは、各バイト位置のワードストリーム方向
のバイト列を対象に、辞書型符号化あるいは確率統計型
符号化を行う。辞書型符号化としては、LZW法やLZ
SS法などの代表的な方法が使用される。また確率統計
型の符号化としては、多値算術符号化あるいは動的ハフ
マン符号化やスプレイ符号化などの復号器符号化方法が
使用される。
【0180】符号マージ部503は、バイト単位符号化
部502−1〜502−nのそれぞれで並列的に符号化
された入力ワードデータの各バイト位置のバイトデータ
の符号化を取りまとめて圧縮データとして出力する。符
号マージ部504による圧縮バイトデータのまとめ方に
は、ワードデータと同じバイトフォーマットのバイト位
置に各圧縮バイトデータを均一に配置してワード単位に
まとめる方法と、各バイト位置の圧縮バイトデータをフ
ァイル単位にまとめて圧縮データとする方法の2つがあ
る。
【0181】図33は図32のデータ圧縮装置における
ワードストリーム方向での符号化処理のタイムチャート
であり、バイト単位符号化部502−1,502−2,
502−nに対応して、図33(A)〜(C)に1バイ
ト目,2バイト目及びnバイト目の符号化処理を表わし
ている。まずT1サイクルにあっては、第1ワード目の
第1バイト目からnバイト目の各バイトデータについ
て、バイト単位符号化部502−1〜502−nのそれ
ぞれでバイトデータの符号化を行っている。この場合、
最初に1バイト目の符号化が終了し、続いて2バイト目
の符号化が終了し、最後にnバイト目の符号化が終了し
ている。
【0182】符号化が済んだ圧縮バイトデータは、符号
化マージ部503のバッファに格納してまとめられた後
に、所定のタイミングで圧縮データとして出力される。
第1ワード目の処理サイクルT1は、最後に符号化処理
が終了したnバイト目のバイト単位符号化部502−n
の処理終了タイミングから一定時間を経過した時間であ
り、符号化処理の内容によって変動する。
【0183】次のT2サイクルにあっては、2ワード目
の第1バイト目からnバイト目までの各バイトデータの
並列的な符号化をバイト単位符号化部502−1〜50
2−nで行っており、この場合には図33(B)の2バ
イト目の符号化処理が最後となっている。次のT3サイ
クルは第3ワード目の符号化であり、以下最終ワードデ
ータまで同様な処理を繰り返す。
【0184】図34は、図32において符号マージ部5
03でワード単位に圧縮バイトデータをまとめる場合の
符号化フローチャートである。まずステップS1で、n
バイト構成のワードデータを入力し、ステップS2で、
バイト配列変換部500がワードデータをバイト単位に
分割する。続いてステップS3で、分割された各バイト
位置のバイトデータごとにバイト単位符号化部502−
1〜502−nで並列的に符号化が行われる。そしてス
テップS4で各符号データをワード単位に結合し、ステ
ップS5で最終ワードデータの符号化が判別されるま
で、ステップS1〜S4の処理を繰り返す。
【0185】図35は図34で圧縮バイトデータをワー
ド単位にまとめる場合の圧縮データのフォーマット説明
図である。ワード単位にまとめる圧縮データは、ヘッダ
504と圧縮データ506で構成される。ヘッダ504
には1ワードデータを構成するnバイト分のバイトヘッ
ダ504−1,504−2,・・・504−nが設けら
れている。
【0186】このバイトヘッダ504−1〜504−n
のそれぞれには、各バイト位置での圧縮バイト数と、圧
縮バイトデータをワード単位にまとめた場合の各バイト
位置でのデータ数が格納されている。圧縮データ504
は符号化前のワードデータと同様、nバイト構成で1ワ
ードとしている。nバイト構成のワードデータの各バイ
ト位置には、1バイト目圧縮データ、2バイト目圧縮デ
ータ、・・・nバイト目圧縮データのそれぞれが格納さ
れている。
【0187】各バイト位置に格納される対応するバイト
データの圧縮データは、圧縮データのサイズ、即ちバイ
ト数が異なっているため、ワード単位の符号化で各バイ
トデータの圧縮バイトデータを均等に収納しても、実際
の各バイト位置での圧縮バイトデータの数は異なり、オ
ーバフローすると次の圧縮バイトデータ格納のワード位
置に格納する。
【0188】図36は4バイト構成のワードデータを例
にとって、ワードデータ508−1,508−2,50
8−3,508−4の4ワードを順次入力して符号化し
た場合の圧縮データを表わしている。ワードデータ50
8−1は、バイト順にA1,A2,A3,A4の内容を
もっており、これが符号化により圧縮データ510−1
において圧縮バイトデータa1〜a4に圧縮されてい
る。次のワードデータ508−2はバイトデータB1〜
B4で構成され、符号化により圧縮データ510−2の
ように、圧縮バイトデータb1〜b4に圧縮されてい
る。
【0189】ワードデータ508−3はバイトデータC
1〜C4で構成され、符号化により圧縮データ510−
3のように圧縮バイトデータc1〜c4となっている。
更にワードデータ508−4はバイトデータD1〜D4
で構成され、符号化により圧縮データ510−4で圧縮
バイトデータd1〜d4となっている。圧縮データ51
0−1〜510−4における各圧縮バイトデータは、そ
れぞれ異なったバイト数であり、例えば圧縮バイトデー
タa1,a2,a4は0.25バイトであり、圧縮バイ
トデータa3は0.5バイトとなっている。図35のワ
ード単位にまとめる圧縮データのフォーマットにあって
は、図37(A)のようなヘッダ504と図37(B)
のような圧縮データ506が、図36のワード単位の符
号化で得られた510−1〜510−4からまとめられ
る。
【0190】まず図37(B)のワード単位の圧縮デー
タ506を形成するための図36の圧縮データ510−
1〜510−3の配置を説明する。最初のワードデータ
508−1の符号化で得られた圧縮データ510−1の
圧縮バイトデータa1,a2,a3,a4については、
ワードデータと同じ4バイトのバイト構成をもつ圧縮ワ
ードデータ512−1の1バイト目から4バイト目の対
応するバイト位置に対し均等に配置する。
【0191】即ち、圧縮ワードデータ512−1の1バ
イト目には圧縮バイトデータa1が格納され、2バイト
目には圧縮バイトデータa2が格納され、3バイト目に
は圧縮バイトデータa3が格納され、4バイト目には圧
縮バイトデータa4が格納される。次のワードデータ5
08−2の符号化で得られた図36の圧縮データ510
−2の圧縮バイトデータb1,b2,b3,b4につい
ても同様に、図37(B)の先頭の圧縮ワードデータ5
12−1の各バイト位置にb1,b2,b3,b4のよ
うに割り当てられる。以下同様に、図36の3ワード目
と4ワード目の圧縮データ510−3,510−4につ
いても、図37(B)のように割り当てる。
【0192】ここで4ワード目の圧縮バイトデータd1
〜d4のうち、圧縮バイトデータd1については先頭の
圧縮ワードデータ512−1の1バイト目に格納できる
が、残りの圧縮バイトデータd2〜d4については、先
頭の圧縮ワードデータ512−1の2バイト目、3バイ
ト目、4バイト目がいっぱいになっているため、次の圧
縮ワードデータ512−2の対応するバイト位置に格納
する。
【0193】このような4ワード分に圧縮バイトデータ
を格納した圧縮ワードデータ512−1,512−2を
まとめて出力する場合、ヘッダ504には1バイト目か
ら4バイト目の各圧縮バイトデータのバイト数と、圧縮
ワードデータ512−1,512−2のそれぞれにおけ
る各バイト位置での圧縮バイトデータの数を格納してい
る。
【0194】例えばバイトヘッダ504−1にあって
は、圧縮データバイトa1〜d1の合計バイト数は1バ
イトであり、圧縮ワードデータ512−1の1バイト目
には4つの圧縮バイトデータa1,b1,c1,d1が
入っていることから、このデータ数4を示し、次の圧縮
ワードデータ512−2の1バイト目のデータ数は0で
あることから0を示し、「4,0」としている。
【0195】このようなヘッダ504の各バイト位置ご
とのバイトヘッダ504−1,504−4のヘッダ情報
を使用すれば、ワード単位にまとめられた圧縮ワードデ
ータ512−1,512−2の中から各ワードごとの4
バイト分に対応した圧縮バイトデータを分離することが
できる。図38は図32の符号マージ部503におい
て、符号化済みの圧縮バイトデータを各バイト位置のフ
ァイル単位にまとめる場合の符号化処理のフローチャー
トである。まずステップS1でnバイト構成のワードデ
ータを入力し、ステップS2でバイト配列変換部500
がバイト単位にn個のバイトデータに分割し、ステップ
S3でバイト単位符号化部502−1〜502−nが並
列的に各バイトデータを符号化する。
【0196】このようなステップS1〜S3のワードス
トリーム方向でのバイト単位の並列符号化を最終ワード
データの符号化終了がステップS4で判別されるまで繰
り返される。一連のワードストリームの符号化が終了す
ると、ステップS5で、ファイル単位にまとめられた各
バイト位置ごとの符号データを結合して圧縮データとし
て出力する。
【0197】図39は図38の圧縮バイトデータをファ
イル単位にまとめる場合の圧縮データのフォーマットで
ある。この圧縮データのフォーマットは、ヘッダ514
と圧縮データ516で構成される。ヘッダ514にはワ
ードデータの各バイト位置に対応してn個のファイルヘ
ッダ514−1〜514−nが設けられる。ファイルヘ
ッダには各ファイルの圧縮データバイトのバイト数n
1,n2,・・・nn が格納される。圧縮データ516
には1バイト目、2バイト目、・・・nバイト目の各圧
縮データ516−1〜516−nが1つのファイル単位
で格納されている。
【0198】図40は、図36の4ワードのワードデー
タ508−1〜508−4の符号化で得られた圧縮デー
タ510−1〜510−4を例にとって図39のファイ
ル単位にまとめた圧縮データの具体例である。まず図4
0(B)のファイル単位の圧縮データ516にあって
は、1バイト目、2バイト目、3バイト目、4バイト目
の各バイト位置ごとにバイトファイル516−1〜51
6−4が設けられている。
【0199】各バイトファイル516−1〜516−4
には図36で得られた符号化による4ワード分の圧縮バ
イトデータの各圧縮バイトデータがそのバイト位置に対
応して格納されている。このファイル単位の圧縮データ
516の格納状態に対応して、図40(A)のヘッダ5
14におけるファイルヘッダ514−1〜514−4の
それぞれには、各バイトファイル516−1〜516−
4の圧縮バイトデータのバイト数とそのデータ数が格納
されている。なお、データ数は基本的には全て同じであ
る。
【0200】このようなファイル単位にまとめた圧縮デ
ータについても、そのヘッダ514のヘッダ情報を使用
することで、復元の際に各ワードごとのバイト位置に対
応した圧縮バイトデータを符号列から分離することがで
きる。図41は図32のデータ圧縮装置の具体的な実施
形態であり、4バイト構成のワードデータを対象に確率
統計型の符号化を行うことを特徴とする。
【0201】図41において、まずバイト配列変換部5
00にはワードデータの1バイト目、2バイト目、3バ
イト目、4バイト目に分けて、4個のレジスタを備えた
レジスタ群518−1,518−2,518−3及び5
18−4が設けられている。ここで1バイト目のレジス
タ群518−1の各レジスタをR11〜R14、2バイ
ト目のレジスタ群518−2の各レジスタをR21〜R
24、3バイト目のレジスタ群518−3の各レジスタ
をR31〜R34、及び4バイト目のレジスタ群518
−4の各レジスタをR41〜R44で表わしている。
【0202】入力されたソースデータは、1バイト目、
2バイト目、3バイト目、4バイト目の各バイトデータ
に分離されて、初段のレジスタR11,R21,R31
及びR41のそれぞれに保持される。ここでワードデー
タは32ビットであり、4バイトであるから1バイト当
たり8ビットデータとなっている。2段目のレジスタR
12,R22,R32,R42には、1つ前に符号化が
済んだワードデータの各バイトデータが保持されてい
る。
【0203】3段目のレジスタ群R13,R23,R3
3,R43には、更に1つ前に符号化が済んだワードデ
ータの各バイトデータが保持される。最後の4段目のレ
ジスタR14,R24,R34及びR44には、更に1
つ前に符号化が済んだワードデータの各バイトデータが
保持されている。この結果、1バイト目から4バイト目
の各レジスタ群518−1〜518−4のそれぞれに
は、現時点のバイトデータから既に符号化が済んだ3つ
前までのワードデータのバイトデータが各バイト位置に
つきワードストリーム方向に保持されている。
【0204】バイト単位符号化部502は確率統計型符
号化を採用することから、各バイト位置ごとに出現頻度
モデル部520−1〜520−4、エントロピー符号化
部522−1〜522−4を有し、最終段に符号バッフ
ァ部524−1〜524−4をそれぞれ設けている。出
現頻度モデル部520−1〜520−4のそれぞれは、
現在符号化対象とするバイトデータと既に符号化が済ん
だ過去の3ワード分のバイトデータとの相関即ち文脈を
使って、出現頻度モデルにより条件付出易さを検出して
いる。
【0205】そして出現頻度モデル部520−1〜52
0−4のそれぞれで検出された条件付出易さ(順位)に
対し、エントロピー符号化部522−1〜522−4の
それぞれで統計的なエントロピー符号化を施して、バイ
ト単位の圧縮データである符号に変換し、符号バッファ
部524−1〜524−4のそれぞれに一時的に格納し
ている。
【0206】符号バッファ部524−1〜524−4の
それぞれにあっては、図35のフォーマットに従ったバ
イト単位あるいは図39のフォーマットに従ったファイ
ル単位に圧縮バイトデータがたまった時点で、符号マー
ジ部533により各バイト位置の符号を結合させて一連
の圧縮データをヘッダと共に作成して出力する。図42
は図41の確率統計型の符号化を行うデータ圧縮装置の
各バイトごとの符号化処理のタイムチャートである。即
ち、出現頻度モデル処理とエントロピー符号化処理につ
いて、図42(A)は1バイト目、図42(B)は2バ
イト目、図42(C)は3バイト目、更に42(D)は
4バイト目を示している。例えばT1サイクルにあって
は、並列的に各バイト位置のバイトデータの出現頻度モ
デル処理が行われてる。
【0207】この例では3バイト目、2バイト目、1バ
イト目、4バイト目の順に出現頻度モデル処理を終了し
ている。出現頻度モデル処理が終了すると、最後に終了
したタイミングから所定時間後にT2サイクルのエント
ロピー符号化処理が起動し、同時に次のワードデータに
ついて出現頻度モデル処理を並列的に実行するパイプラ
イン処理を行っている。以下同様にして、T3,T4,
T5,T6の各サイクルの出現頻度モデル処理とエント
ロピー符号化処理が各バイト位置ごとに並列的に行われ
る。
【0208】図43は、図32のワードストリーム方向
でのバイト単位の符号化を行うデータ圧縮装置から出力
された圧縮データを入力してワードデータ単位に復元す
るデータ復元装置の基本的なブロック図である。このデ
ータ復元装置は、符号分離部530、復元するnバイト
のワードデータの各バイト位置に対応したバイト単位復
号化部532−1,532−2,・・・532−n、及
び出力切替部533で構成される。
【0209】符号分離部530は図35のバイト単位の
まとまりをもつフォーマットあるいは図39のファイル
単位のまとまりをもつフォーマットに従った圧縮データ
を入力し、ヘッダ情報に基づいてワードデータ単位に各
バイト位置のバイト圧縮データである符号を分離して、
バイト単位符号化部532−1〜532−nに並列的に
出力する。
【0210】バイト単位復号化部532−1〜532−
nのそれぞれは、各バイト位置の符号を入力して、符号
化と逆の操作により1バイト目からnバイト目の各バイ
トデータを並列的に復元する。切替出力部533は、バ
イト単位復号化部532−1〜532−nから出力され
たバイトデータをバイト位置の順に結合して、nバイト
構成のワードデータを復元してソースデータとして出力
する。
【0211】バイト単位復号化部532−1〜532−
nとしては、図32のデータ圧縮装置に対応して辞書型
復号化あるいは確率統計型復号化を行う。辞書型復号化
としては、LZW法やLZSS法に代表される方法を使
用する。また確率統計型の復号化法としては、多値算術
符号法あるいは動的ハフマン符号化や、スプレイ符号化
等の符号木符号化を使用することができる。
【0212】図44は図43のデータ復元装置における
バイト単位の復号化処理であり、図44(A)(B)
(C)に1バイト目、2バイト目及びnバイト目の各復
号化処理を示している。例えばT1サイクルにあって
は、符号分離部530で分離された1ワード分の圧縮バ
イトデータでなる各バイト位置の符号がバイト単位符号
化部532−1〜532−nに並列的に入力され、それ
ぞれ異なった符号化処理時間を経て各バイトデータが復
元される。
【0213】T1サイクルにあっては、nバイト目の復
号化処理が最後であり、その後、所定時間を経過したタ
イミングから次のT2サイクルでの次のワードデータに
対応する各バイト位置の符号の並列的な符号化が行わ
れ、これを繰り返す。図43は図35のフォーマットに
従ってワード単位にまとめられた圧縮データの復元処理
のフローチャートである。まずステップS1で圧縮デー
タを入力し、ステップS2で、圧縮データのヘッダ情報
からワードデータのnバイト分の各バイト位置に対応す
る符号を分離し、即ちバイト圧縮データをバイト位置
位に分離し、この分離したバイト圧縮データをステップ
S3で並列的に復号化する。
【0214】ステップS4で圧縮データが不足していな
ければ、ステップS5に進み、復号したバイト単位の各
復元バイトデータを結合して1ワード分のワードデータ
を出力する。このステップS3〜S5の処理を、ステッ
プS6で最終データの復元が終了するまで繰り返す。図
46は図39のフォーマットに示したファイル単位にま
とめられた圧縮データの復元処理のフローチャートであ
る。まずステップS1で圧縮データをまとめて入力し、
ステップS2で圧縮データに含まれる符号即ち各バイト
圧縮データを復元するワードデータの各バイト位置ごと
に全て分離する。続いてステップS3で、分離されたワ
ード単位の圧縮データのそれぞれについて並列的に復号
化を行う。
【0215】このとき圧縮データに不足がなければステ
ップS5に進み、復元した1ワード分の各バイトデータ
を結合してワードデータを出力する。ステップS3〜S
5の処理は、ステップS6で最終ワードデータの復元が
終了するまで繰り返される。図47は図43のデータ復
元装置の具体的な実施形態であり、図41の1ワード4
バイト構成で確率統計型符号化を行うデータ圧縮装置に
対応したデータ復元装置である。
【0216】図47のデータ復元装置は、符号分離部5
30に続いてバイト単位復号化部532を設けており、
1ワードが4バイト構成であることから、1バイト目、
2バイト目、3バイト目、4バイト目のそれぞれに対応
して、符号バッファ部534−1〜534−4、エント
ロピー復号化部536−1〜536−4、及び出現頻度
モデル部538−1〜538−4を並列的に設けてい
る。
【0217】符号バッファ部534−1〜534−4の
それぞれは、符号分離部530で分離した1ワード分の
圧縮バイトデータとなる各バイト位置の符号を一時的に
バッファする。エントロピー復号化部536−1〜53
6−4は、入力された符号と既に復元されている直前の
バイトデータ列から条件付出易さを検出する。出現頻度
モデル部538−1〜538−4は、復元済みの直前の
バイトデータ列につながる現在復元したバイトデータの
条件付出易さを各バイトデータごとに頻度データとして
登録し、エントロピー復号化部536−1〜536−4
のそれぞれで求めた条件付出易さにより頻度データを検
索してバイトデータを復元すると共に、頻度データを登
録更新する。
【0218】出現頻度モデル部538−1〜538−4
に続く出力切替部533には、各バイト位置について復
元済みのバイトデータを3ワード分格納するためのレジ
スタ群540−1〜540−4が設けられている。ここ
で1バイト目のレジスタ群540−1はレジスタR11
0〜R130で示され、2バイト目のレジスタ群540
−2はレジスタR210〜R230で示される。
【0219】3バイト目のレジスタ群540−3はレジ
スタR310〜R330で示され、更に4バイト目のレ
ジスタ群540−4はレジスタR410〜R430で示
されている。このようなレジスタ群540−1〜540
−4における各バイト位置の復元済みの3ワード分の各
バイトデータの出現頻度モデル部538−1〜538−
4のそれぞれが取り入れて直前のバイトデータ列につな
がる復元しようとするバイトデータの条件付出易さを求
めて登録更新している。
【0220】また出力切替部533にあっては、所蔵の
レジスタR110,R210,R310,R410に保
持された各バイト位置の復元バイトデータを1バイト目
から4バイト目の各ソースデータとして取り出し、これ
をバイト順につなげてワードデータとして出力する。図
48は図47のデータ復元装置におけるエントロピー復
号化処理と出現頻度モデル処理のタイムチャートであ
り、図48(A)に1バイト目を、図48(B)に2バ
イト目を、図48(C)に3バイト目を、更に図48
(D)に4バイト目を示している。
【0221】例えばT1サイクルを例にとると、1バイ
ト目〜4バイト目のそれぞれについて、分離した各バイ
ト位置の符号を入力して、直前の復元済みバイトデータ
列から条件付出易さを求めるエントロピー復号化処理を
行い、この場合には例えば4バイト目のエントロピー復
号化処理が最後に終了したタイミングから所定時間後
に、T2サイクルとして2段の出現頻度モデル処理を行
っている。
【0222】同時に次のワードデータを復元するための
分離された各バイト位置の符号を入力してエントロピー
復号化処理を並列的に行っている。以下、T3,T4,
T5,T6・・・サイクルのように、同様な処理を繰り
返す。図49は図41に示したデータ圧縮装置の1バイ
ト目から4バイト目の各々に設けた出現頻度モデル部5
20−1とエントロピー符号化部522−1のパイプラ
イン制御の実施形態であり、確率統計的符号化として算
出符号化を適用した場合を例にとっている。
【0223】この算術符号化にあっては、図6のパイプ
ライン制御と同様、確率モデル部14と算術符号化部1
6で構成され、これに対しパイプライン制御部15を設
けている。図49の算術符号化のパイプライン制御にあ
っては、確率モデル部14を確率モデル検索部542と
確率モデル更新部544に分け、また算術符号化部16
を符号空間演算部546と算術符号出力部548に分け
ている。
【0224】ここで確率モデル部14は図7に示す構成
を備え、これに対応して確率モデル検索部542は図7
の順位読出更新部18、文字読出更新部20、頻度読出
更新部22、累積頻度読出更新部24及び総累積頻度読
出更新部26における読出し部としての機能をまとめた
確率モデル検索部542としている。これに対し確率モ
デル更新部544は、残りの更新部の機能をまとめたも
のである。
【0225】一方、算術符号化部16にあっては、符号
空間演算部546と算術符号出力部548に分けてい
る。符号空間演算部546は図7の算術符号化部16に
おける符号空間算出部28、符号空間算出部30及び逆
数算出部32の機能を備える。また算術符号出力54
8は図の算術符号化部16の算術符号導出部34と符
号出力部36の機能を有する。
【0226】パイプライン制御部15は、確率モデル更
新部544と符号空間演算部546の処理をパイプライ
ン化している点が図6,図7の実施形態と異なる。図4
9(B)は図49(A)における算術符号化のパイプラ
イン処理であり、図6(B)と同様、文字abaを入力
した場合の符号化を例にとっている。図6(B)と異な
るのは、確率モデル検索部542に続いて確率モデル更
新部544と符号空間演算部546の2つの処理が同時
に並行して行われるパイプライン化処理としている。こ
れによって図6,図7の場合に比べ、更にパイプライン
化による処理性能を向上している。
【0227】図50は、図47のデータ復元装置の1バ
イト目から4バイト目の各バイト位置ごとに行われるエ
ントロピー符号化処理及び出現頻度モデル処理について
算術復号化を適用した場合の実施形態である。もちろ
ん、図50は4バイト分の並列処理部のうちの1つを代
表して示している。データ復元装置に算術復号化を適用
した場合、エントロピー復号化処理と出現頻度モデル処
理は算術復号化部50と確率モデル部52で構成され
る。この算術復号化部50の構成は、図13(A)と同
じである。図13(A)の詳細は図14に示されてい
る。
【0228】図50の算術符号化部50にあっては、算
術符号化入力部550、累積値演算部552及び符号空
間演算部554に分けている。図14の実施形態との対
応を見ると、算術符号化部550は図14の符号入力部
54に相当する。累積値演算部552は、累積値導出部
56、累積頻度導出部64、逆数算出部66に相当す
る。また符号空間演算部554は符号空間算出部58,
60、及び逆数算出部62に相当する。
【0229】また図50の確率モデル部52は、確率モ
デル検索部556、出力文字検索部558及び確率モデ
ル更新部560に分けている。図14の確率モデル部5
2との対応を見ると、確率モデル検索部556と出力文
字検索部558は図14の順位導出部68、文字読出更
新部72、頻度読出更新部74、累積頻度読出更新部7
6及び総累積頻度読出更新部78における読出し部とし
ての機能、更に文字出力部80を含む。また確率モデル
更新部560は、図14における各更新部としての機能
をまとめたものである。
【0230】図16の算術符号化部50と確率モデル部
52にあっては、それぞれを並列的に行うパイプライン
処理であったが、図50の実施形態にあっては、算術符
号化部50の符号空間演算部554と確率モデル部52
の確率モデル検索部556についても並列化によるパイ
プライン処理を行っている点で相違する。図50(B)
は図50(A)の復号化処理であり、図13(B)と同
じ符号入力に対する文字の復元を行っている。このうち
確率モデル検索部556の出力を出力文字検索部558
と符号空間演算部554に並列的に供給して、両者の同
一タイミングでのパイプライン動作を可能とすること
で、処理性能を高めている。
【0231】図51は図41の各バイト位置の出現頻度
モデル部及びエントロピー符号化処理について、動的ハ
フマン符号化やスプレイ符号化などの符号木符号化を適
用した場合の実施形態である。この符号木符号化の実施
形態は、文脈収集処理部562と符号木符号化部564
で構成される。文脈収集処理部562は、文脈木検索部
568、文脈木登録部570、同文脈判断部572で構
成され、入力されたバイトデータの文脈を収集して文脈
木を作成する。また符号木符号化部564は、符号木検
索部574と符号木更新登録部570及び符号並べ替え
出力部578で構成され、文脈収集処理部562による
入力バイトデータの文脈の研削結果に応じてスプレイ符
号化または動的ハフマン符号化を施しながら符号木を作
成更新する。
【0232】特に、この実施形態あっては、符号木符号
化部564において、符号木検索部574に対し並列的
に符号木更新登録部576と符号並べ替え出力部578
を設け、図51(B)の文字列abaの符号化の例のよ
うに、符号木検索部564の検索結果を符号木更新登録
部576及び符号並べ替え出力部578に並列的に入力
して、同じタイミングでパイプライン動作を行って符号
化処理時間を短縮している。
【0233】図52は図51の符号木符号化に対応した
符号木復号化のための実施形態であり、符号木復号化部
580と文脈収集処理部582で構成される。符号木復
元部580は、符号木検索部586と符号木更新登録部
588で構成され、符号データを入力してスプレイ復号
化や動的ハフマン復号化等の符号木復号化を行いなが符
号木の作成更新を行い、更に、復元されたバイトデータ
の文脈を収集して文脈木を作成する。
【0234】この符号木復号化の実施形態にあっても、
符号木検索部586の検索結果を符号木更新登録部58
8と文脈木検索部590に入力することで、図52
(B)のように符号木検索部582の検索結果に対し符
号木更新登録部588と文脈木検索部590の処理を同
一タイミングで並列的に行ってパイプライン化し、復元
処理時間の短縮を図っている。
【0235】尚、図51および図52で符号木符号化に
スプレイ符号化(Splay- Tree)を使用した場合の詳細
は、特開昭8−30432号(1996年2月2日公
開)に示される。 6.ワードストリーム方向とバイトストリーム方向の適
応切替処理 図53は図32に示した本発明におけるワードストリー
ム方向の符号化処理と従来行っていたバイトストリーム
方向の符号化処理を、符号化効率に基づいて適応的に切
り替えるデータ圧縮装置の実施形態である。このバイト
ストリームとワードストリームを並列的に符号化するデ
ータ復元装置は、バイト配列変換部600、ワードスト
リーム符号化部602、バイトストリーム符号化部60
4、及び符号切替部605で構成される。
【0236】バイト配列変換部600は、ソースデータ
として複数バイト構成のワードデータをワード単位に入
力して、各バイト位置のバイトデータに分離した後、ワ
ードストリーム符号化部602に対しては各バイト位置
でワード方向に複数のバイトデータが並んだワードスト
リーム方向のデータバイトとして入力し、一方、バイト
ストリーム符号化部604に対してはワードデータのデ
ータストリームそのもののデータバイトの並びをもつバ
イトストリーム方向のバイトデータとして入力する。
【0237】このバイト配列部600は、例えば1ワー
ド4バイト構成を例にとった図41のバイト配列変換部
500と同じレジスタ群で実現できる。図41のレジス
タ群における同一バイト位置のレジスタ並び方向がワー
ドストリーム方向であり、これに直交する各バイト位置
となる縦方向がバイトストリーム方向となる。ワードス
トリーム符号化部602における符号化は、図32の基
本構成をもち、より具体的には図41の1ワード4バイ
ト構成が使用でき、更に各バイト位置における確率統計
型の符号化の具体例としては、図42の算術符号化ある
いは図50の符号木符号化が使用できる。
【0238】これに対しバイトストリーム符号化部60
4は、基本的な構成はワードストリーム符号化部602
と同じであるが、バイト配列変換部600から入力する
1ワード分の各バイトデータの並びがバイトストリーム
方向となっている点で相違する。符号切替部605は、
ワードストリーム符号化部602とバイトストリーム符
号化部604のそれぞれによる並列的な符号化の結果に
基づいて、いずれか一方を選択して圧縮データとして出
力する。
【0239】図54は図53のワードストリームとバイ
トストリームの符号化切替処理のタイムチャートであ
り、図54(A)がワードストリーム符号化処理であ
り、図54(B)がバイトストリーム符号化処理であ
り、図54(C)が選択符号出力である。例えば最初の
T1サイクルにあっては、ワードストリーム符号化部6
02及びバイトストリーム符号化部604がバイト配列
変換部600でワードデータを分離した各バイトデータ
を対象に並列的に符号化を行っており、符号化における
辞書型符号化あるいは確率統計型符号化の符号化済みワ
ードデータがワードストリーム方向かバイトストリーム
方向かの違いとなる。
【0240】T1サイクルにあっては、図54(B)の
バイトストリーム符号化が先に終了し、続いて図54
(A)のワードストリーム符号化が終了している。ワー
ドストリーム符号化が終了すると、所定時間後に次のT
2サイクルでのワードデータのワードストリーム符号化
及びバイトストリーム符号化が開始されるが、これに並
行して図54(C)のワードストリーム符号かバイトス
トリーム符号かの選択符号の付加と、選択された符号の
出力が行われる。
【0241】即ち、T1サイクルの符号化にあっては、
例えばバイトストリーム符号608が選択され、このバ
イトストリーム符号608の選択を示す選択符号606
−1を先頭に付加して符号出力が行われる。次のT2サ
イクルにあっては、ワードストリーム符号610が選択
されており、同様にT3サイクルにおいて、まずワード
ストリーム符号610の選択を示す選択符号606−2
を付加した後にワードストリーム符号610を圧縮デー
タとして出力している。
【0242】図53の符号切替部606によるワードス
トリーム符号とバイトストリーム符号の選択は、バイト
単位の切替えかまたはワード単位の切替えのどちらでも
よい。図55(A)はバイト単位の符号切替えのフォー
マットである。例えば1ワード4バイト構成のワードデ
ータの符号化を例にとると、ワードストリーム符号化部
602及びバイトストリーム符号化部604のそれぞれ
においては、1バイト目、2バイト目、3バイト目、4
バイト目のそれぞれのバイトデータについて並列的に符
号化が行われている。
【0243】そこで両方の符号化が終了した時点で、1
バイト目のワードストリーム符号とバイトストリーム符
号を比較して、例えばバイトストリーム符号を選択した
とすると、その切替符号606−1に続いてバイトスト
リーム符号でなる1バイト分の圧縮データ608を出力
する。次に2バイト目のワードストリーム符号とバイト
ストリーム符号を比較し、例えばワードストリーム符号
を選択したならば、その切替符号606−2を付加して
1バイト分の圧縮データ610としてワードストリーム
符号を出力する。以下同様に、バイト単位の切替符号の
付加と1バイト分の圧縮データの出力を繰り返す。
【0244】図55(B)はワード単位の符号切替であ
り、並列的に1ワード分の各ワードデータの符号化が終
了した時点でワード単位に圧縮データ、即ち1ワードの
バイト数分の圧縮バイトデータを比較して、例えばバイ
トストリーム符号側を選択したとすると、その切替符号
612に続いて、1ワードを構成するnバイト分の圧縮
バイトデータのバイトストリーム符号を出力する。
【0245】図56は図55(A)のバイト単位に符号
切替を行う場合の符号化処理のフローチャートである。
まずステップS1でnバイト構成のワードデータを入力
して、ステップS2でバイト単位に分割し、ステップS
3及びステップS4で並列的にワードストリーム方向で
のバイトごとの符号化及びバイトストリーム方向でのバ
イトごとの符号化を行う。
【0246】続いてステップS5でバイトごとにワード
ストリーム方向及びバイトストリーム方向の符号化効率
を比較し、効率の高い方の符号をステップS6でバイト
ごとに選択し、切替えあるいは選択符号を付加し、ステ
ップS7でこれにバイトごとの符号データを結合して出
力する。このようなステップS1〜S7の処理を最終の
ワードデータの符号化が終了するまで繰り返す。
【0247】図57は図55(B)のワード単位に符号
切替えを行う場合の符号化処理のフローチャートであ
る。まずステップS1でnバイト構成のワードデータを
入力し、ステップS2でワードデータをnバイト分のバ
イト単位に分割し、ステップS3及びステップS4で、
並列的に各バイトデータについてのワードストリーム方
向での符号化とバイトストリーム方向での符号化を行
う。
【0248】符号化が済んだならば、ステップS5でワ
ードごとにワードストリーム方向とバイトストリーム方
向の符号化効率を比較する。そしてステップS6にあっ
ては、比較結果から符号効率のよいストリーム方向の符
号をワードごとに選択し、切替あるいは選択符号を付加
する。このようなステップS1〜S6の処理を、ステッ
プS7で最終ワードデータの符号化が終了するまで繰り
返し、ステップS8で最終的に各符号データを結合して
圧縮データとして出力する。
【0249】図58は図53のワードストリーム方向と
バイトストリーム方向での符号化を並列的に行って符号
切替えを行うデータ圧縮装置の1ワードを4バイト構成
とした場合の実施形態であり、符号化として確率統計型
符号化を適用した場合を例にとっている。図58は、図
53のバイト配列変換部600、ワードストリーム符号
化部602及びバイトストリーム符号化部604の実施
形態である。バイト配列変換部600には文脈取り込み
用のレジスタ群として、1バイト目、2バイト目、3バ
イト目、4バイト目のそれぞれについて4つのレジスタ
を直列接続したレジスタ群618−1〜618−4を設
けている。
【0250】符号化処理のために入力された4バイト構
成のソースデータは、例えば32ビットとすると、1バ
イト当たり8ビットの果てに分離され、初段のレジスタ
R1,R2,R3,R4に並列的に保持される。このと
き2段目のレジスタR1〜R4、3段目のレジスタR1
3〜R43、及び4段目のレジスタR14〜R44に
は、既に符号化が終了した先行する3ワード分の各バイ
ト位置のバイトデータが保持されている。
【0251】このような文脈取り込み用のレジスタ群に
ついて、例えば現在符号化しようとするワードデータの
4バイト目のバイトデータを格納したレジスタR41に
着目すると、R41〜R44方向がワードストリーム方
向のバイトデータの並びとなる。これに対しバイトスト
リーム方向はレジスタR11に対し先行するバイトデー
タを順次格納したR31,R32,R11方向となる。
このようなバイト配列変換部600に設けたレジスタ群
の格納バイトデータを対象にワードストリーム符号化部
602に対しては、現在符号化しようとするレジスタR
11〜R14の各バイト位置のデータを基準に、ワード
ストリーム方向に先行する3ワード分のバイトデータを
文脈取り込みのために入力している。
【0252】即ちワードストリーム符号化部600は、
ソースデータの1バイト目、2バイト目、3バイト目、
及び4バイト目に対応して、確率モデル部620−1〜
620−4、エントロピー符号化部622−1〜622
−4、バッファ選択部624−1〜624−4を設けて
いる。確率モデル部620−1〜620−4のそれぞれ
は、0次、1次、2次、3次の4つの確率モデル部を並
列的に備えている。
【0253】これに対応してエントロピー符号化部62
2−1〜622−4についても、0次、1次、2次、3
次の各エントロピー符号化部を並列的に備えている。即
ちワードストリーム符号化部600は、図24に示した
ブレンド文脈について全てを並列化したデータ圧縮装置
を使用している。この図24のブレンド文脈について全
並列化したデータ圧縮装置の詳細は、図25及び図26
に示したと同じである。
【0254】ワードストリーム符号化部600の初段に
設けた確率モデル部620−1〜620−4に対するバ
イト配列変換部600の文脈取り込み用レジスタからの
入力は、そのレジスタ番号R11〜R44で示すとおり
である。例えば1バイト目の確率モデル部620−1
は、0次確率モデル部に対し、現在符号化しようとする
レジスタR11の1バイト目のバイトデータを入力す
る。
【0255】また1次確率モデル部に対しては、前回符
号化が済んだ1バイト目のレジスタR11のバイトデー
タを入力し、2次確率モデル部に対しては更に1つ前に
符号化が済んだ1バイト目のレジスタR13のバイトデ
ータを入力し、3次確率モデル部に対しては更にもう1
つ前に符号化が済んだ1バイト目のレジスタR14のバ
イトデータを入力している。この点は2バイト目、3バ
イト目、4バイト目のモデル部620−2〜620−4
についても、各バイト位置のレジスタについて同様な0
次、1次、2次、3次のレジスタ入力が行われている。
【0256】一方、バイトストリーム符号化部604
は、ブレンド文脈についての全並列化を実現したワード
ストリーム符号化部602と同様、1段目の確率モデル
部630−1〜630−4、次のエントロピー符号化部
632−1〜632−4、及びバッファ選択部634−
1〜634−4を、各バイト位置ごとに並列的に設けて
いる。
【0257】このバイトストリーム符号化部620に対
するバイト配列変換部600の文脈取り込み用レジスタ
群からの入力は、確率モデル部630−1〜630−4
における現在処理対象となっているワードデータの各バ
イト位置のバイトデータを入力する0次確率モデル部に
対するR11,R21,R31及びR41を起点に、バ
イトストリーム方向の並びをもつバイトデータのレジス
タ入力を行っている。
【0258】即ち、4バイト目の確率モデル部630−
4にあっては、現在処理対象となっているワードデータ
の4バイト目が0次確率モデル部の入力となり、同じワ
ードデータの先行する3バイト目が1次確率モデル部の
入力となり、更に1つ先行する2バイト目のワードデー
タのレジスタR21が2次確率モデル部の入力となり、
一番先頭の1バイト目のバイトデータのレジスタR11
が3次確率モデル部の入力となる。
【0259】次の現在処理対象となっているワードデー
タの3バイト目のバイトデータを保持したレジスタR3
1からの確率モデル部630−3に対する0次確率モデ
ル部の入力に対し、1次確率モデル部に対しては1バイ
ト前の同じワードデータの2バイト目のレジスタR21
のバイトデータを入力し、2次確率モデル部には同じワ
ードデータの更に1つ前の1バイト目のレジスタR11
によるバイトデータを入力し、3次確率モデル部には1
ワード前の4バイト目のレジスタR42のバイトデータ
を入力している。
【0260】2バイト目のバイトデータをレジスタR2
1から0次確率モデル部に入力した確率モデル部630
−2についても、バイトストリーム方向にR11,R4
2,R32をそれぞれ1次、2次、3次の確率モデル部
の入力としている。更に1バイト目のバイトデータをレ
ジスタR11から0次確率モデル部に入力した確率モデ
ル部630−1についても、バイト方向に先行するレジ
スタR42、R32、R22の各バイトデータを1次、
2次、3次確率モデル部に入力している。これらバイト
ストリーム方向のバイト単位の入力については、ワード
は意識していない。
【0261】図58のワードストリーム符号化部602
及びバイトストリーム符号化部604による各バイト位
置ごとの並列的な符号化により、各バッファ選択部62
4−1〜624−4及びバッファ選択部634−1〜6
34−4からは、ワードストリーム符号として符号W1
〜W4、ビット数BW1〜BW4が出力され、またバイ
トストリーム符号B1〜B4とそれぞれのビット数BB
1〜BB4が出力される。
【0262】図59は図53の符号切替部605の実施
形態であり、図58のワードストリーム符号化部602
及びバイトストリーム符号化部604の各符号化出力を
並列的に入力している。この符号切替部605は、1バ
イト目、2バイト目、3バイト目、4バイト目のそれぞ
れについて符号切替部648−1〜648−4と符号バ
ッファ650−1〜650−4を並列的に設け、最終的
に符号マージ部652でまとめて圧縮データを出力して
いる。
【0263】各バイト位置ごとの符号切替部648−1
〜648−4に対しては、符号選択を行うためにビット
数比較部640−1〜640−4、ワード/バイト選択
確率モデル部642−1〜642−4、及び符号化部6
46−1〜646−4を設けている。ビット数比較部6
40−1〜64−4は、各ビット位置ごとに復元された
ワードストリーム符号W1〜W4と、バイトストリーム
符号B1〜B4のビット数BW1〜BW4とBB1〜B
B4の各々を比較し、符号長の短い方を選択し、選択結
果をワード/バイト選択確率モデル部642−1〜64
2−4に出力する。ワード/バイト選択確率モデル部6
42−1〜642−4は、ワードストリーム符号とバイ
トストリーム符号の頻度から確率を求めている。
【0264】符号化部646−1〜646−4はワード
/バイト選択確率モデル部642−1〜642−4から
符号切替用の切替符号を生成し、符号切替部648−1
〜648−4の各々で符号を選択すると同時に、先頭に
選択符号を付加する。符号バッファ650−1〜650
−4にあっては、ワード単位あるいはファイル単位にあ
る程度符号データがたまった時点で改めて符号マージ部
652で結合して一連の圧縮データとして出力する。
【0265】図60は、図53のワードストリーム方向
とバイトストリーム方向のそれぞれで符号化した後に切
替選択して得られた圧縮データから元のワードデータを
復元するデータ復元装置の実施形態である。このデータ
復元装置は、符号分離部700、ワードストリーム復号
化部702、バイトストリーム復号化部704及び出力
切替部706で構成される。
【0266】符号分離部700は、図55(A)の圧縮
バイトデータ単位に切替符号をもつフォーマットの圧縮
データもしくは図55(B)のワード分の圧縮バイトデ
ータごとに切替符号をもつフォーマットのいずれかの圧
縮データを入力し、圧縮データに含まれる切替符号に基
づいてワードストリーム符号とバイトストリーム符号に
分けて、ワードストリーム復号化部702またはバイト
ストリーム復号化部704に入力する。
【0267】ワードストリーム復号化部702は図3
2、図41に示したデータ復元装置と基本的に同じであ
り、1ワードを構成するバイト数分の符号を並列的に復
号化し、対応する各バイト位置のバイトデータを復元す
る。バイトストリーム復号化部704は、復号化機能は
ワードストリーム復号化部702と同様に、1ワードを
構成する各バイト位置ごとに復号化回路を並列的に備え
ており、復号化回路そのものは図32と同じバイト単位
復号化部502−1〜502−nを並列的に設けてい
る。
【0268】例えば確率統計型符号化を例にとると、図
47のバイト単位復号化部532と同じ回路が使用でき
る。バイトストリーム復号化部704がワードストリー
ム復号化部702と相違する点は、符号分離部700で
分離されたバイトストリーム符号を入力して復号化する
点だけである。図61は図60のデータ復元装置におけ
る復号化処理のタイムチャートであり、図61(A)に
選択符号復号化を、図61(B)にワードストリーム復
号化を、更に図61(C)にバイトストリーム復号化を
表わす。まず最初のT1サイクルにあっては、符号分離
部700が入力した圧縮データの先頭に設けられている
切替用の選択符号を復号化し、次に続く圧縮データがワ
ードストリーム符号かバイトストリーム符号かを識別す
る。
【0269】T1サイクルにあっては、選択符号の復号
化によりワードストリーム符号であることが識別され、
符号データがワードストリーム復号化部702に与えら
れてバイトデータの復号化が行われる。次のT2サイク
ルの選択符号708−2の復号化によりバイトストリー
ム符号が判別されたとすると、符号データはバイトスト
リーム復号化部704に与えられ、バイトデータの復号
化が行われる。以下同様に、選択符号708−3,70
8−4,・・・の復号結果に応じたワードストリーム符
号またはバイトストリーム符号の識別により、対応する
復号化を行ってバイトデータを復元する。
【0270】図62のフローチャートは図60のデータ
復元装置において、図55(A)に示したバイト単位の
圧縮データとなる符号ごとに切替符号を付加したフォー
マットの圧縮データを対象としたデータ復元処理であ
る。まずステップS1で各符号データを入力分離し、ス
テップS2で最終データでなければ、ステップS3で1
ワード分の符号が入力分離できたか否かチェックし、1
ワード分の符号が入力分離できたならば、ステップS4
で各選択符号を復号化する。
【0271】この選択符号の復号化結果に基づき、ステ
ップS5で1ワードを構成するバイト数分の符号がワー
ドストリーム符号かバイトストリーム符号かを識別し、
それぞれに応じて図60のワードストリーム復号化部7
02またはバイトストリーム復号化部704に入力す
る。続いてステップS6及びS7で、並列的にワードス
トリーム方向及びバイトストリーム方向のそれぞれにつ
いてバイトごとに各符号を並列的に復号化する。
【0272】続いてステップS8で、バイトごとに復元
されたワードストリーム方向の復元バイトデータとバイ
トストリーム方向の復元バイトデータをバッファに格納
する。そしてステップS9で、1ワード分のバイトデー
タが揃ったならば、ステップS10でバイト順に復元バ
イトデータを結合して1ワードのワードデータを出力す
る。続いてステップS2に戻り、最終データの復元が終
了したか否かチェックし、終了していなければ再びステ
ップS3からステップS1に戻って同様な処理を繰り返
す。
【0273】図63のフローチャートは図55(B)の
ワード単位に選択符号を付加したフォーマットの圧縮デ
ータを対象としたデータ復元処理である。まずステップ
S1で、復元対象とする全ての圧縮データをまとめて入
力して符号に分離する。続いてステップS2で最終デー
タの復元が済んでいなければ、ステップS3に進み、入
力分離した最初の選択符号を復号化し、ワードストリー
ム符号かバイトストリーム符号かを識別する。
【0274】ワードストリーム符号であればステップS
5に進み、1ワードを構成するバイト数分の符号を並列
的に復号化して各バイトデータを復元する。また符号が
バイトストリーム符号であればステップS6に進み、1
ワードを構成するバイト数分の符号を並列的に復号化し
て各バイトデータを復元する。次にステップS7で、ワ
ードごとに復号化されたワードストリーム方向またはバ
イトストリーム方向の復元データをバッファに格納す
る。そしてステップS8でnバイト構成の復元したワー
ドデータを出力し、これをステップS2で最後のワード
データの復元が終了するまで繰り返す。
【0275】次に図60のデータ圧縮装置の具体的な実
施形態として、図53のデータ圧縮装置を図58,図5
9に示したブレンド文脈について全てを並列化したデー
タ圧縮装置で得られた圧縮データを復元するためのデー
タ復元装置の具体的な実施形態を説明する。このブレン
ド文脈について全て並列化したデータ圧縮装置で得られ
た圧縮データを復元するデータ復元装置は、図60の符
号分離選択部が図64の実施形態となり、図60のワー
ドストリーム復号化部702及びバイトストリーム復号
化部704が図65の実施形態となり、更に出力切替部
706が図66の実施形態となる。更にこの実施形態は
1ワード4バイト構成の場合の圧縮データの復元を例に
とっており、更に圧縮データのフォーマットとしては図
55(A)のバイト単位に選択符号を付加した場合を例
にとっている。
【0276】図64の符号分離選択部700は、入力段
に符号分離部708を有し、圧縮データを入力して1ワ
ードを構成するバイト数分即ち4バイト分の符号を分離
し、1バイト目、2バイト目、3バイト目、4バイト目
のそれぞれに設けている符号バッファ部710−1〜7
10−4に格納する。この分離された符号は、図55
(A)のように、先頭に選択符号をもち、その後ろに圧
縮バイトデータとなる符号データをもっている。
【0277】符号バッファ部710−1〜710−4に
続いては、選択符号復号化部712−1〜712−4、
ワード/バイト選択確率モデル部716−1〜716−
4及び符号切替部714−1〜714−4が各バイト位
置ごとに並列的に設けられている。例えば1バイト目を
例にとると、選択符号復号化部712は符号バッファ部
710−1に格納された1バイト目の符号データの先頭
の選択符号を入力し、既に復元されている直前の選択符
号列から条件付出易さを求め、選択符号がワードストリ
ーム符号を示すかバイトストリーム符号を示すかを復号
する。
【0278】ワード/バイト選択確率モデル部716−
1は、直前の選択符号列につながる入力選択符号の条件
付出易さを登録した頻度データを格納しており、選択符
号復号化部712−1で求めた条件付出易さにより頻度
データを検索して選択符号を復元し、更に復元結果に応
じて頻度データを更新する。符号切替部714−1は選
択符号復号化部712−1の復号結果に応じ、符号バッ
ファ部710−1に格納された符号をワードストリーム
符号W1またはバイトストリーム符号B1として図65
のワードストリーム復号化部702の1バイト目及びバ
イトストリーム復号化部704の1バイト目に入力す
る。図64における残りの2バイト目、3バイト目、4
バイト目についても基本的に同じである。
【0279】図65のワードストリーム復号化部702
及びバイトストリーム復号化部704は、図64の符号
分離選択部700で分離選択された各バイト位置のワー
ドストリーム符号またはバイトストリーム符号を並列的
に復号化する。ワードストリーム復号化部702は1バ
イト目、2バイト目、3バイト目、4バイト目の各ワー
ドストリーム符号W1〜W4に対応して、符号分配部7
20−1〜720−4、復号化部722−1〜722−
4及び確率モデル部724−1〜724−4をもってい
る。
【0280】このうち復号化部722−1〜722−4
にあっては、ブレンド文脈として0次から3次までの復
号化を扱うことから、0次〜3次の各符号化部を並列的
に備えている。同様に確率モデル部724−1〜724
−4についても、0次から3次までの各確率モデル部を
並列的に備えている。符号分配部720−1〜720−
4は1バイト目から4バイト目の各入力符号W1〜W4
のビット構成から文脈の次数である0次、1次、2次、
または3次を認識し、対応する復号化部722−1〜7
22−4の次数符号化部に入力する。ブレンド文脈の全
次数を並列的に復号化する復号化部722−1〜722
−4及び確率モデル部724−1〜724−4の詳細
は、図27〜図29に示したとおりである。
【0281】一方、バイトストリーム復号化部704も
ワードストリーム復号化部702と同様、ブレンド文脈
について全次数の復号化を並列化した実施形態をとって
いる。即ち、1バイト目から4バイト目の入力バイトス
トリーム符号B1〜B4に対応して符号分配部730−
1〜730−4、0次から3次の復号化部を並列的に備
えた復号化部732−1〜732−4、及び0次から3
次の確率モデル部を並列的に備えた734−1〜734
−4を備えている。
【0282】このようなワードストリーム復号化部70
2及びバイトストリーム復号化部704により、図64
に設けた前段の符号分離選択部700で選択された1ワ
ードを構成する4バイト分の4つの符号が有効入力符号
としてワードストリーム復号化部702及びまたはバイ
トストリーム復号化部704に選択的に入力され、並列
的に1ワード分のバイトデータの復元が行われる。
【0283】なお、ワード単位の復元において、ワード
ストリーム復号化部702及びバイトストリーム復号化
部704に対する入力符号W1〜W4,B1〜B4のう
ちの4つが有効な入力符号であり、有効な入力符号につ
いてのみ復号化を行わせ、有効な入力符号のない系統に
ついては復号化の処理を禁止する。図66の出力切替部
706は、図65のワードストリーム復号化部702及
びバイトストリーム復号化部704で並列的に復号され
たバイトデータ、即ちワードストリーム方向の復元バイ
トデータWR11〜WR41とバイトストリーム方向の
復元バイトデータBR11〜BR41を1バイト目から
4バイト目の各バイト位置ごとに入力し、有効な符号入
力で復号をした側の復元バイトデータを出力選択部84
0−1〜840−4で選択し、文脈取り込み用レジスタ
部842に入力している。
【0284】文脈取り込み用レジスタ部842は、各バ
イト位置ごとに4つのレジスタを直列接続したレジスタ
群842−1〜842−4を備えている。ここで1バイ
ト目のレジスタ群842−1はレジスタR110〜R1
40で示され、2バイト目のレジスタ群842−2はレ
ジスタR210〜R240で示され、3バイト目のレジ
スタ群842−3はレジスタR310〜R340で示さ
れ、更に4バイト目のレジスタ群842−4はレジスタ
R410〜R440で示されている。
【0285】文脈取り込み用レジスタ部842の1段目
のレジスタ群R110,R210,R310,R410
には、復元された1ワード分の各バイト位置のバイトデ
ータが保持されている。このため、レジスタR110〜
R410の各バイトデータを並列的に読み出すことで、
復元ソースデータとして1ワード分のワードデータが得
られる。
【0286】このとき2段目のレジスタR120〜R4
20、3段目のレジスタR130〜R430、及び4段
目のレジスタR140〜R440には、各バイト位置ご
とに1つ前、2つ前、更に3つ前に復元された各ワード
のバイトデータが保持されている。これら既に復元済み
の各ワードのバイトデータは、図65のワードストリー
ム復号化部702及びバイトストリーム復号化部704
の確率モデル部に文脈として取り込まれている。
【0287】この文脈の取り込みについて、ワードスト
リーム復号化部702に設けている確率モデル部724
−1〜724−4については、1次から3次の確率モデ
ル部に対し図66の文脈取り込み用レジスタ部842に
格納されたバイトデータにつき、ワードストリーム方向
のバイトデータの取り込みが行われている。例えば1バ
イト目の確率モデル部742−1を例にとると、図66
のレジスタR120,R130,R140に1ワード
前、2ワード前及び3ワード前の各1バイト目の復元さ
れたバイトデータが保持されていることから、これを図
65のように、レジスタR120,R130,R140
として1次から3次の確率モデル部に文脈として取り込
んでいる。
【0288】これに対し図65のバイトストリーム復号
化部704の確率モデル部734−1〜734−4に対
しては、文脈取り込み用レジスタ部842におけるバイ
トストリーム方向のバイトデータの取り込みが行われて
いる。例えば4バイト目の確率モデル部734−4を例
にとると、0次確率モデル部に対する現時点の復元バイ
トデータに対し先行するバイトストリーム方向のバイト
データとして、レジスタR310,R210,R110
を1次、2次、3次の文脈に対するバイトデータとして
取り込んでいる。
【0289】もちろん、ワードストリーム復号化部70
2の確率モデル部724−1〜724−4及びバイトス
トリーム復号化部704の確率モデル部734−1〜7
34−4のいずれについても、0次確率モデル部に対す
るワードデータの取り込みは前段の0次復号化部による
復元データをそのまま使用することから、図66の文脈
取り込み用レジスタ部842からのバイトデータの取り
込みは必要ない。
【0290】尚、上記の実施形態におけるワードストリ
ーム方向の符号化、復号化については、ワードデータを
複数のバイトデータに分離して圧縮または復元する場合
を例にとっているが、本発明はこれに限定されず、プロ
グラムなどのオペコードを対象に、オペコードをその中
の複数ビット単位の種類ごとに分離して、各分離したデ
ータ単位に符号化と復号化を行うことも可能である。
【0291】更に上記の実施形態では、具体例として確
率統計型の符号化と復号化を例にとっているが、これ以
外にLZWやLZSSに代表される辞書型復号化と符号
化についても全く同様に適用することができる。
【0292】
【発明の効果】以上説明してきたように本発明によれ
ば、ワードストリーム方向でのバイト単位の辞書型ある
いは確率統計型による符号化を行うことで、2バイトの
ユニコードや日本語コード、RGB3バイトのフルカラ
ー画像、4バイトや8バイトといったプログラムコード
などのワードデータを圧縮する符号化において、ワード
データの中の同一バイト位置の相関を符号化に取り込む
ことで圧縮効率を高めることができる。
【0293】この場合にも、復号化及び符号化の処理を
パイプライン化することで使用時間を実用化レベルに圧
縮した圧縮及び復元が実現できる。
【0294】更にワードデータの圧縮復元として、ワー
ドデータを構成する各バイトデータにつきワードストリ
ーム方向とバイトストリーム方向での復号化を行って圧
縮効率の高い方の符号を適応的に選択することで、ワー
ドストリーム方向の符号化とバイトストリーム方向の符
号化の両方の利点を生かした効率的な圧縮処理を実現す
ることができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明の原理説明図(続き)
【図3】本発明の原理説明図
【図4】本発明の原理説明図(続き)
【図5】固定次数文脈についてパイプライン化したデー
タ圧縮装置の基本構成のブロック図
【図6】図5のエントロピー符号化として算術符号化を
採用したデータ圧縮装置のブロック図
【図7】図6のデータ圧縮装置の詳細構成のブロック図
【図8】図7の頻度データ格納部の説明図
【図9】図7の算術符号化の出力符号形式の説明図
【図10】図9の出力符号を生成する区間[1,0]の
比較処理の説明図
【図11】図7のパイプライン動作のタイムチャート
【図12】固定次数文脈についてパイプライン化したデ
ータ復元装置の基本構成のブロック図
【図13】図12のエントロピー復号化として算術復号
化を採用したデータ復元装置のブロック図
【図14】図13のデータ復元装置の詳細構成のブロッ
ク図
【図15】図14のパイプライン動作のタイムチャート
【図16】図14のパイプライン動作のタイムチャート
(続き)
【図17】ブレンド文脈について一部を並列化したデー
タ圧縮装置の基本ブロックと処理動作の説明図
【図18】図17のデータ圧縮装置の詳細構成のブロッ
ク図
【図19】図18のパイプライン動作のタイムチャート
【図20】ブレンド文脈について一部を並列化したデー
タ復元装置の基本ブロックと処理動作の説明図
【図21】図20のデータ復元装置の詳細構成のブロッ
ク図
【図22】図21のパイプライン動作のタイムチャート
【図23】図21のパイプライン動作のタイムチャート
(続き)
【図24】ブレンド文脈について全てを並列化したデー
タ圧縮装置の基本ブロックと処理動作の説明図
【図25】図24のデータ圧縮装置の詳細構成のブロッ
ク図
【図26】図25のパイプライン動作のタイムチャート
【図27】ブレンド文脈について全てを並列化したデー
タ復元装置の基本ブロックと処理動作の説明図
【図28】図27のデータ復元装置の詳細構成のブロッ
ク図
【図29】図28のパイプライン動作のタイムチャート
【図30】本発明の出現頻度モデル部に設ける頻度デー
タ格納部の内部ハッシュ構造のブロック図
【図31】本発明の出現頻度モデル部に設ける頻度デー
タ格納部の内部ハッシュ構造及び外部ハッシュ構造のブ
ロック図
【図32】ワードストリーム方向でバイト単位に符号化
するデータ圧縮装置のブロック図
【図33】図32の符号化処理のタイムチャート
【図34】ワード単位に圧縮バイトデータをまとめる符
号化処理のフローチャート
【図35】ワード単位に圧縮バイトデータをまとめた圧
縮データのフォーマット説明図
【図36】1ワード4バイト構成を例にとったワードス
トリーム方向の符号化の説明図
【図37】図36の圧縮バイトデータを対象とした図3
5のフォーマットの具体的な説明図
【図38】ファイル単位に圧縮バイトデータをまとめる
符号化処理のフローチャート
【図39】ファイル単位に圧縮バイトデータをまとめた
圧縮データのフォーマット説明図
【図40】図36の圧縮バイトデータを対象とした図3
9のフォーマットの具体的な説明図
【図41】図32に確率統計型符号化を適用した場合の
ブロック図
【図42】図41の符号化パイプライン処理のタイムチ
ャート
【図43】ワードストリーム方向でバイト単位に復号化
するデータ復元装置のブロック図
【図44】図43の復号化処理のタイムチャート
【図45】ワード単位に圧縮バイトデータをまとめた圧
縮データの復号化処理のフローチャート
【図46】ファイル単位に圧縮バイトデータをまとめた
圧縮データの復号化処理のフローチャート
【図47】図43に確率統計型復号化を適用した場合の
ブロック図
【図48】図47の復号化パイプライン処理のタイムチ
ャート
【図49】ワードストリーム方向のバイトデータに算術
符号化を適用した場合のパイプライン制御の説明図
【図50】ワードストリーム方向のバイトデータに算術
復号化を適用した場合のパイプライン制御の説明図
【図51】ワードストリーム方向のバイトデータに符号
木符号化を適用した場合のパイプライン制御の説明図
【図52】ワードストリーム方向のバイトデータに算術
復号化を適用した場合のパイプライン制御の説明図
【図53】ワードストリーム方向とバイトストリーム方
向の符号化を適応的に切替えるデータ圧縮装置のブロッ
ク図
【図54】図53の符号化処理のタイムチャート
【図55】図54で得られる圧縮データのフォーマット
説明図
【図56】図54で圧縮バイトデータ単位に切替選択符
号を付加する場合の符号化処理のフローチャート
【図57】図54で圧縮ワード単位に切替選択符号を付
加する場合の符号化処理のフローチャート
【図58】ブレンド文脈を全並列化する確率統計型符号
化を適用した場合の図53のバイト配列変換部、ワード
ストリーム符号化部及びバイトストリーム符号化部の実
施形態のブロック図
【図59】ブレンド文脈を全並列化する確率統計型符号
化を適用した場合の図53の切替出力部の実施形態のブ
ロック図
【図60】ワードストリーム方向とバイトストリーム方
向の復号化を適応的に切替えるデータ復元装置のブロッ
ク図
【図61】図60の復号化処理のタイムチャート
【図62】図60で圧縮バイトデータ単位に切替選択符
号を付加した圧縮データの復号化処理のフローチャート
【図63】図60で圧縮ワード単位に切替選択符号を付
加した圧縮データの復号化処理のフローチャート
【図64】ブレンド文脈を全並列化する確率統計型復号
化を適用した場合の図60の符号分離選択部の実施形態
のブロック図
【図65】ブレンド文脈を全並列化する確率統計型符号
化を適用した場合の図60のワードストリーム符号化部
及びバイトストリーム符号化部の実施形態のブロック図
【図66】ブレンド文脈を全並列化する確率統計型復号
化を適用した場合の図60の切替出力部の実施形態のブ
ロック図
【図67】従来の確率統計型のデータ圧縮装置の基本構
成のブロック図
【図68】文字列に対する文脈の木構造と条件付確率の
説明図
【図69】従来の多値算術符号化の原理説明図
【図70】従来の多値算術符号化の機能ブロック図
【図71】従来の一重履歴(0次固定文脈)による多値
算術符号化のフローチャート
【図72】従来の二重履歴(1次固定文脈)による多値
算術符号化のフローチャート
【符号の説明】
10:出現頻度モデル部 11,15,47,51,85,125,175,21
5:パイプライン制御部 12:エントロピー符号化部 14:確率モデル部 16:算術符号化部 18,94:順位読出更新部 20,72,98,156:文字読出更新部 22,74,100,158:頻度読出更新部 24,76,100,160:累積頻度読出更新部 25,70,96,154:頻度データ格納部 26,78,106,162:総累積頻度読出更新部 28,58,116,142:符号空間算出部(ハイレ
ベル算出部) 30,60,118,144:符号空間算出部(ローレ
ベル算出部) 32,62,66,120,146,150:逆数算出
部 34,122:算術符号導出部 36,124,138,170:符号出力部 38-1〜38-4,40-1〜40-3,42-1,42-2,44:最終文字の符号
空間 46:エントロピー復号化部 48:出現頻度モデル部 50,126,224:算術復号化部 52:確率モデル部 54,212:符号入力部 56,140:累積値導出部 64,148:累積頻度導出部 68,152:順位導出部 80,164:文字出力部 82,128,170,216,166:ブレンド用確
率モデル部 84:バッファ選択部 86,168:算術符号化部 88,130,172,230:0次確率モデル部 90,132,174,232:1次確率モデル部 92,134,176,234:2次確率モデル部 95:エスケープ用頻度検索更新部 104:エスケープ判断部 108,110,112:バッファ部 114,136,136−1〜136−3,190,2
36:選択部 178,172:0次算術符号化部 180,174:1次算術符号化部 182,176:2次算術符号化部 184,218:0次符号バッファ部 186,220:1次符号バッファ部 188,222:2次符号バッファ部 190:マージ部 192:,194,196:順位読出更新部 198,200,202:頻度・累積頻度読出更新部 204,258:選択部 211:分離部 260,262,264:符号空間算出部 266,268,270:算術符号導出部 272,274,276:シリアル/パラレル変換符号
出力部 211:分離部 224,172:0次算術復号化部 226,174:1次算術復号化部 228,176:2次算術復号化部 278,280,282:パラレル/シリアル変換符号
入力部 284,286,288:算術符号順位導出部 290,292,294:符号空間算出部 246,248,250:順位・頻度・累積頻度読出更
新部 246,248,250:文字読出更新部 500:バイト配列変換部 502,502−1〜502−n:バイト単位符号化部 503:符号マージ部 504,514:ヘッダ 504−1〜504−n:バイトヘッダ 506,516:圧縮データ 512−1,512−2:圧縮ワードデータ 514−1〜514−n:ファイルヘッダ 516−1〜516−n:バイトファイル 518−1〜518−4,540−1〜540−4:レ
ジスタ群(文脈取込み用) 520−1〜520−4:出現頻度モデル部 522−1〜522−4:エントロピー符号化部 524−1〜524−4,534−1〜534−4:符
号バッファ部 530:符号分離部 530,532−1〜532−n:バイト単位復号化部 530:符号分離部 536−1〜536−4:エントロピー復号化部 538−1〜538−4:出現頻度モデル部(復元用) 542:確率モデル検索部 544:確率モデル更新部 546:符号空間演算部 548:算術符号出力部 550:算術符号入力部 552:累積値演算部 554:符号空間演算部 556:確率モデル検索部 558:出力文字検索部 560:確率モデル更新部 562:文脈収集処理部 564:符号木符号化部 568:文脈木検索部 570:文脈木登録部 572:同文脈判断部 574:符号木検索部 576:符号木更新登録部 578:符号並べ替え部 580:符号木復号化部 582:文脈収集処理部 586:符号木検索部 588:符号木更新登録部 590:文脈木検索部 592:文脈木登録部 600:バイト配列変換部 602:ワードストリーム符号化部 604:バイトストリーム符号化部 606:符号切替部 620−1〜620−4,630−1〜630−4:確
率モデル部 622−1〜622−4,632−1〜632−4:符
号化部 624−1〜624−4,634−1〜634−4:符
号バッファ部 640−1〜640−4:ビット数比較部 642−1〜642−4:ワード/バイト選択確率モデ
ル部 644−1〜644−4:符号化部 648−1〜648−4:符号切替部 652:符号マージ部 700:符号分離選択部 702:ワードストリーム復号化部 704:バイトストリーム復号化部 706:出力切替部 708:符号分離部 712−1〜712−4:選択符号復号化部 714−1〜714−4:符号切替部 716−1〜716−4:ワード/バイト選択確率モデ
ル部 720−1〜720−4,730−1〜730−4:符
号分配部 722−1〜722−4,732−1〜732−4:復
号化部 724−1〜724−4,734−1〜734−4:確
率モデル部 840−1〜840−4:出力選択部
フロントページの続き (56)参考文献 特開 平5−128103(JP,A) 特開 平5−14206(JP,A) 特開 平5−224878(JP,A) 特開 平5−128100(JP,A) 特開 平5−241777(JP,A) 特開 平6−28149(JP,A) 特開 平6−90362(JP,A) 特開 平6−44038(JP,A) 特開 平6−149537(JP,A) (58)調査した分野(Int.Cl.6,DB名) H03M 7/40

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】複数バイトで構成されたワードデータをワ
    ード単位で符号化するデータ圧縮装置に於いて、 前記ワードデータをバイト単位に分離して同じバイト位
    置毎のバイトデータ列に変換するバイト配列変換部と、 前記バイト配列変換部で得られた各バイト位置毎の入力
    バイトデータを、符号化を終了したバイトデータとの条
    件付出易さにより符号化する複数のバイト単位符号化部
    と、 前記複数のバイト単位符号化部により符号化された各符
    号をまとめて出力するマージ部と、 を備えたことを特徴とするデータ圧縮装置。
  2. 【請求項2】請求項記載のデータ圧縮装置に於いて、
    前記バイト単位符号化部を辞書型符号化部としたことを
    特徴とするデータ圧縮装置。
  3. 【請求項3】請求項記載のデータ圧縮装置に於いて、
    前記バイト単位符号化部を確率統計型符号化部としたこ
    とを特徴とするデータ圧縮装置。
  4. 【請求項4】請求項記載のデータ圧縮装置に於いて、
    前記確率統計型符号化部は、 直前のバイトデータ列に繋がる入力バイトデータの条件
    付出易さを各バイトデータ毎に登録した頻度データ格納
    部を有し、直前のバイトデータ列に繋がる入力バイトデ
    ータの条件付出易さを前記頻度データ格納部の参照によ
    り検索すると共に、前記頻度データ格納部を登録更新す
    る出現頻度モデル部と、 前記出現頻度モデル部で求めた前記条件付出易さにより
    入力バイトデータを符号化するエントロピー符号化部
    と、 前記出現頻度モデル部とエントロピー符号化部をパイプ
    ライン動作させるパイプライン制御部と、 を備えたことを特徴とするデータ圧縮装置。
  5. 【請求項5】請求項記載のデータ圧縮装置に於いて、
    前記確率統計型符号化部は、 直前のバイトデータ列に繋がる入力バイトデータの条件
    付出易さを、直前の高次文脈(長いバイトデータ列)か
    ら低次文脈(直前の短いバイトデータ列)までの各次数
    毎に登録した頻度データ格納部を有し、前記各次数にお
    ける直前のバイトデータ列に繋がる入力バイトデータの
    条件付出易さを前記頻度データ格納部の参照により検索
    すると共に前記頻度データ格納部を登録更新する処理を
    行う各次数毎に設けられた複数の出現頻度モデル部と、 前記複数の出現頻度モデル部の各次数の条件付出易さを
    高次の文脈から低次の文脈の順に符号化するエントロピ
    ー符号化部と、 前記複数の出現頻度モデル部と前記エントロピー符号化
    部とをパイプライン動作させるパイプライン制御部と、 を設けたことを特徴とするデータ圧縮装置。
  6. 【請求項6】複数バイトで構成されたワードデータをバ
    イト単位に分離し、各バイト位置毎の入力バイトデータ
    を、符号化を終了したバイトデータとの条件付出易さに
    より符号化した符号から、前記ワードデータを復元する
    データ復元装置に於いて、 入力符号列から前記ワードデータの各バイト位置の符号
    を分離する符号分離部と、 前記符号分離部で分離された各バイト位置の入力符号と
    既に復元されている同一バイト位置のバイトデータの条
    件付出易さによりバイトデータを復号する複数のバイト
    単位復号化部と、 前記複数のバイト単位復号化部により復元された各バイ
    トデータを、バイト位置の順番に並べてワードデータを
    出力する出力切替部と、 を備えたことを特徴とするデータ復元装置。
  7. 【請求項7】請求項記載のデータ復元装置に於いて、
    前記バイト単位復号化部を辞書型復号化部としたことを
    特徴とするデータ復元装置。
  8. 【請求項8】請求項記載のデータ復元装置に於いて、
    前記バイト単位復号化部を確率統計型復号化部としたこ
    とを特徴とするデータ復元装置。
  9. 【請求項9】請求項記載のデータ復元装置に於いて、
    前記確率統計型復号化部は、 入力された符号と既に復元されている直前のバイトデー
    タ列から条件付出易さを求めるエントロピー復号化部
    と、 直前のバイトデータ列に繋がる入力バイトデータの条件
    付出易さを各バイトデータ毎に登録した頻度データ格納
    部を有し、前記エントロピー復号化部で求めた条件付出
    易さにより前記頻度データ格納部を検索してバイトデー
    タを復元すると共に、前記頻度データ格納部を登録更新
    する出現頻度モデル部と、 前記エントロピー復号化部と出現頻度モデル部をパイプ
    ライン動作させるパイプライン制御部と、 を備えたことを特徴とするデータ復元装置。
  10. 【請求項10】請求項記載のデータ復元装置に於い
    て、前記確率統計型復号化部は、 入力された符号と既に復元されている高次文脈から低次
    文脈の各次数における直前のバイトデータ列に基づき高
    次文脈から低次文脈の順に条件付出易さを求めるエント
    ロピー復号化部と、 直前のバイトデータ列に繋がる入力バイトデータの条件
    付出易さを前記各次数毎に登録した頻度データ格納部を
    有し、前記エントロピー復号化部で求めた各次数の条件
    付出易さから前記頻度データ格納部の参照によるバイト
    データを復元すると共に前記頻度データ格納部を登録更
    新する処理を行う各次数毎に設けられた複数の出現頻度
    モデル部と、 前記エントロピー復号化部と複数の出現頻度モデル部を
    パイプライン動作させるパイプライン制御部と、 を設けたことを特徴とするデータ復元装置。
  11. 【請求項11】請求項乃至のいずれかに記載のデー
    タ圧縮装置に於いて、 前記出現頻度モデル部は、前記条件付出易さを導くため
    の情報として、 順位、出現数、累積出現数、文脈下の総出現数の検索、
    登録、更新を行い、 前記エントロピー符号化部は算術符号化と算術復号化を
    行うことを特徴とするデータ圧縮装置。
  12. 【請求項12】請求項乃至10のいずれかに記載のデ
    ータ復元装置に於いて、 前記出現頻度モデル部は、前記条件付出易さを導くため
    の情報として、 順位、出現数、累積出現数、文脈下の総出現数の検索、
    登録、更新を行い、前記エントロピー復号化部は 算術符号化と算術復号化を
    行うことを特徴とするデータ復元装置
  13. 【請求項13】複数バイトで構成されたワードデータを
    ワード単位で符号化するデータ圧縮装置に於いて、 入力ワードデータをバイトデータに分離した後にワード
    ストリーム方向とバイトストリーム方向の二次元配列に
    変換して複数ワード分の二次元配列を保持したバイト配
    列変換部と、 前記二次元配列のワードストリーム方向における入力ワ
    ードの各バイトデータを、符号化を終了したワードデー
    タ群の同一バイト位置のバイトデータとの条件付出易さ
    により符号化してワードストリーム符号を生成するワー
    ドストリーム符号化部と、 前記二次元配列のバイトストリーム方向における入力ワ
    ードの各バイトデータを、先行するバイトデータとの条
    件付出易さにより符号化してバイトストリーム符号を生
    成するバイトストリーム符号化部と、 前記ワードストリーム符号とバイトストリーム符号のど
    ちらかを切替え出力する符号切替部と、 を備えたことを特徴とするデータ圧縮装置。
  14. 【請求項14】請求項13記載のデータ圧縮装置に於い
    て、前記符号切替部は、ワードストリーム符号とバイト
    ストリーム符号の相関の強さに基づいて符号出力を切り
    替えることを特徴とするデータ圧縮装置。
  15. 【請求項15】請求項13記載のデータ圧縮装置に於い
    て、前記符号切替部は、ワードストリーム符号とバイト
    ストリーム符号の内、符号長の短い方を選択することを
    特徴とするデータ圧縮装置。
  16. 【請求項16】請求項13記載のデータ圧縮装置に於い
    て、前記符号切替部は、ワードストリーム符号とバイト
    ストリーム符号を、バイト単位に切替え出力することを
    特徴とするデータ圧縮装置。
  17. 【請求項17】請求項13記載のデータ圧縮装置に於い
    て、前記符号切替部は、ワードストリーム符号とバイト
    ストリーム符号を、ワード単位に切替え出力することを
    特徴とするデータ圧縮装置。
  18. 【請求項18】請求項14乃至17のいずれかに記載の
    データ圧縮装置に於いて、前記符号切替部は、ワードス
    トリーム符号とバイトストリーム符号の切替毎に、切替
    符号を付加することを特徴とするデータ圧縮装置。
  19. 【請求項19】請求項18記載のデータ圧縮装置に於い
    て、前記符号切替部は、ワードストリーム符号とバイト
    ストリーム符号の切替符号として、過去の各符号の出現
    頻度に基づく切替符号を用いることを特徴とするデータ
    圧縮装置。
  20. 【請求項20】複数バイトで構成されたワードデータを
    バイトデータに分離した後にワードストリーム方向とバ
    イトストリーム方向の二次元配列に変換し、該二次元配
    列のワードストリーム方向とバイトストリーム方向にお
    ける1ワードの各バイトデータを符号化を先行するバイ
    トデータとの条件付出易さによりワードストリーム符号
    及びバイトストリーム符号に符号化して切替え出力した
    符号列から前記ワードデータを復元するデータ復元装置
    に於いて、 前記符号列を入力して1ワードの各バイト位置のワード
    ストリーム符号又はバイトストリーム符号に分離する符
    号分離部と、 前記符号分離部で分離されたワードストリーム符号と既
    に復元されている同一バイト位置のバイトデータの条件
    付出易さによりバイトデータを復号するワードストリー
    ム復号化部と、 前記符号分離部で分離されたバイトストリーム符号と既
    に復元されている先行するバイトデータの条件付出易さ
    によりバイトデータを復号するバイトストリーム復号化
    部と、 前記ワードストリーム復号化部又は前記バイトストリー
    ム復号化部で復号された各バイトデータをバイト位置の
    順に結合して復元したワードデータを出力するする出力
    切替部と、 を備えたことを特徴とするデータ復元装置。
JP27919096A 1996-02-09 1996-10-22 データ圧縮装置及びデータ復元装置 Expired - Fee Related JP2840589B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP27919096A JP2840589B2 (ja) 1996-02-09 1996-10-22 データ圧縮装置及びデータ復元装置
US08/774,346 US6026198A (en) 1996-02-09 1996-12-27 Data compression and restoration system for encoding an input character on the basis of a conditional appearance rate obtained in relation to an immediately preceding character string
EP19970300121 EP0789326B1 (en) 1996-02-09 1997-01-09 Data compression system and data restoration system
EP20030009753 EP1339022A3 (en) 1996-02-09 1997-01-09 Data compression system and data restoration system
DE1997632873 DE69732873T2 (de) 1996-02-09 1997-01-09 System zur Komprimierung/Dekomprimierung von Daten
US09/363,692 US6215906B1 (en) 1996-02-09 1999-07-30 Data compression and restoration system for encoding an input character on the basis of a conditional appearance rate obtained in relation to an immediately preceding character string

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-23522 1996-02-09
JP2352296 1996-02-09
JP27919096A JP2840589B2 (ja) 1996-02-09 1996-10-22 データ圧縮装置及びデータ復元装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP10171524A Division JP3108404B2 (ja) 1998-06-18 1998-06-18 データ圧縮装置及びデータ復元装置

Publications (2)

Publication Number Publication Date
JPH09275349A JPH09275349A (ja) 1997-10-21
JP2840589B2 true JP2840589B2 (ja) 1998-12-24

Family

ID=26360891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27919096A Expired - Fee Related JP2840589B2 (ja) 1996-02-09 1996-10-22 データ圧縮装置及びデータ復元装置

Country Status (4)

Country Link
US (2) US6026198A (ja)
EP (2) EP0789326B1 (ja)
JP (1) JP2840589B2 (ja)
DE (1) DE69732873T2 (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US6873734B1 (en) * 1994-09-21 2005-03-29 Ricoh Company Ltd Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6549666B1 (en) * 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US5901251A (en) * 1997-03-18 1999-05-04 Hewlett-Packard Company Arithmetic coding compressor using a context model that is adaptive to variable length patterns in bi-level image data
US6269192B1 (en) * 1997-07-11 2001-07-31 Sarnoff Corporation Apparatus and method for multiscale zerotree entropy encoding
KR100269808B1 (ko) * 1997-12-20 2000-10-16 전주범 압축률 편차를 보상하는 데이터 압축 시스템
JP3421700B2 (ja) * 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6845369B1 (en) * 2000-01-14 2005-01-18 Relevant Software Inc. System, apparatus and method for using and managing digital information
US6898323B2 (en) * 2001-02-15 2005-05-24 Ricoh Company, Ltd. Memory usage scheme for performing wavelet processing
JP3990115B2 (ja) * 2001-03-12 2007-10-10 株式会社東芝 サーバ側プロキシ装置及びプログラム
US6895120B2 (en) * 2001-03-30 2005-05-17 Ricoh Co., Ltd. 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays
US6950558B2 (en) * 2001-03-30 2005-09-27 Ricoh Co., Ltd. Method and apparatus for block sequential processing
US7062101B2 (en) * 2001-03-30 2006-06-13 Ricoh Co., Ltd. Method and apparatus for storing bitplanes of coefficients in a reduced size memory
US7581027B2 (en) * 2001-06-27 2009-08-25 Ricoh Co., Ltd. JPEG 2000 for efficent imaging in a client/server environment
CN101692610B (zh) * 2002-03-27 2014-06-25 松下电器产业株式会社 可变长度译码方法,可变长度译码设备
US7120305B2 (en) * 2002-04-16 2006-10-10 Ricoh, Co., Ltd. Adaptive nonlinear image enlargement using wavelet transform coefficients
EP1394999A1 (en) * 2002-08-07 2004-03-03 Infineon Technologies AG Method for routing of data packets and routing apparatus
US7084858B2 (en) * 2002-11-19 2006-08-01 Microsoft Corporation System and method for inputting characters using a directional pad
JP2005217842A (ja) * 2004-01-30 2005-08-11 Fujitsu Ltd データ圧縮方法、データ復元方法及びそのプログラム
US7714748B1 (en) * 2005-07-22 2010-05-11 Marvell International Ltd. Systems and methods for constructing high-rate constrained codes
US7164370B1 (en) * 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
KR100717055B1 (ko) * 2005-11-18 2007-05-10 삼성전자주식회사 Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
US7912302B2 (en) * 2006-09-21 2011-03-22 Analog Devices, Inc. Multiprocessor decoder system and method
US7756350B2 (en) * 2006-11-13 2010-07-13 Global Ip Solutions, Inc. Lossless encoding and decoding of digital data
EP1921752B1 (en) * 2006-11-13 2012-12-19 Google, Inc. Adaptive arithmetic encoding and decoding of digital data
WO2008058692A1 (en) * 2006-11-13 2008-05-22 Global Ip Solutions (Gips) Ab Lossless encoding and decoding of digital data
WO2008142799A1 (ja) * 2007-05-24 2008-11-27 Fujitsu Limited 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置
JP5007743B2 (ja) * 2007-05-24 2012-08-22 富士通株式会社 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法
US7518538B1 (en) * 2007-11-30 2009-04-14 Red Hat, Inc. Adaptive entropy coding compression with multi-level context escapes
US7605721B2 (en) * 2007-11-30 2009-10-20 Red Hat, Inc. Adaptive entropy coding compression output formats
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
US8271422B2 (en) 2008-11-29 2012-09-18 At&T Intellectual Property I, Lp Systems and methods for detecting and coordinating changes in lexical items
US8527500B2 (en) * 2009-02-27 2013-09-03 Red Hat, Inc. Preprocessing text to enhance statistical features
US8386511B2 (en) * 2009-02-27 2013-02-26 Red Hat, Inc. Measuring contextual similarity
US8396850B2 (en) * 2009-02-27 2013-03-12 Red Hat, Inc. Discriminating search results by phrase analysis
US10891659B2 (en) * 2009-05-29 2021-01-12 Red Hat, Inc. Placing resources in displayed web pages via context modeling
US8321326B2 (en) 2009-09-15 2012-11-27 Auerbach Group Llc Method and system for enhancing the efficiency of a digitally communicated data exchange
EP2312854A1 (de) * 2009-10-15 2011-04-20 Siemens Aktiengesellschaft Verfahren zur Codierung von Symbolen aus einer Folge digitalisierter Bilder
US20130262486A1 (en) * 2009-11-07 2013-10-03 Robert B. O'Dell Encoding and Decoding of Small Amounts of Text
US8446301B2 (en) 2011-04-15 2013-05-21 Research In Motion Limited Methods and devices for coding and decoding the position of the last significant coefficient
EP2749023A4 (en) * 2011-08-25 2016-04-06 Thomson Licensing HIERARCHICAL ENCODING AND DECODING BY ENTROPY
US8484170B2 (en) * 2011-09-19 2013-07-09 International Business Machines Corporation Scalable deduplication system with small blocks
DE102012211031B3 (de) * 2012-06-27 2013-11-28 Siemens Aktiengesellschaft Verfahren zur Codierung eines Datenstroms
US9020262B2 (en) * 2012-07-31 2015-04-28 Hewlett-Packard Development Company, L.P. Symbol compression using conditional entropy estimation
US8869211B2 (en) * 2012-10-30 2014-10-21 TCL Research America Inc. Zoomable content recommendation system
JP5892040B2 (ja) * 2012-11-01 2016-03-23 富士ゼロックス株式会社 情報処理装置及びプログラム
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
TWI490855B (zh) * 2013-04-02 2015-07-01 Mstar Semiconductor Inc 解壓縮電路與相關的解壓縮方法
CN105408942A (zh) * 2013-08-16 2016-03-16 界标制图有限公司 确定并显示储层的储量估计
KR102172321B1 (ko) 2014-05-20 2020-10-30 삼성전자주식회사 데이터 중복 제거 방법
WO2015192765A1 (en) * 2014-06-16 2015-12-23 Mediatek Inc. Apparatus and method for processing data samples with different bit widths
JP6540308B2 (ja) * 2015-07-13 2019-07-10 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP6613669B2 (ja) * 2015-07-14 2019-12-04 富士通株式会社 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法
US9614546B2 (en) * 2015-08-09 2017-04-04 Armoya Yuksek Teknoloji Arastirmalari Elektronik Sanayi Ve Ticaret Anonim Sirketi Data compression and decompression method
CN107919943B (zh) 2016-10-11 2020-08-04 阿里巴巴集团控股有限公司 二进制数据的编码、解码方法和装置
US10333963B2 (en) * 2016-10-28 2019-06-25 Corax Cyber Security, Inc. Identifying a vulnerability of an asset of a network infrastructure to mitigate
US10331558B2 (en) 2017-07-28 2019-06-25 Apple Inc. Systems and methods for performing memory compression
US10735736B2 (en) * 2017-08-29 2020-08-04 Google Llc Selective mixing for entropy coding in video compression
JP7167791B2 (ja) 2019-03-20 2022-11-09 トヨタ自動車株式会社 需給制御装置
JP2023184342A (ja) 2022-06-17 2023-12-28 キオクシア株式会社 エンコーダ及びデコーダ
US20240048641A1 (en) * 2022-08-05 2024-02-08 Samsung Display Co., Ltd. System and method for dynamic entropy coding
CN116886104B (zh) * 2023-09-08 2023-11-21 西安小草植物科技有限责任公司 一种基于人工智能的智慧医疗数据分析方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL91158A (en) * 1989-07-28 1993-01-31 Ibm Israel Method and system for arithmetic coding and decoding
US5379036A (en) * 1992-04-01 1995-01-03 Storer; James A. Method and apparatus for data compression
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5550540A (en) * 1992-11-12 1996-08-27 Internatioal Business Machines Corporation Distributed coding and prediction by use of contexts
US5717394A (en) * 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
US5418532A (en) * 1993-05-13 1995-05-23 Bell Communications Research, Inc. Method and system for efficient, multiplication-free arithmetic coding
WO1995019662A1 (en) * 1994-01-13 1995-07-20 Telco Systems, Inc. Data compression apparatus and method
US5471207A (en) * 1994-02-23 1995-11-28 Ricoh Company Ltd. Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
US5587710A (en) * 1995-03-24 1996-12-24 National Semiconductor Corporation Syntax based arithmetic coder and decoder
US5838964A (en) * 1995-06-26 1998-11-17 Gubser; David R. Dynamic numeric compression methods
US5710562A (en) * 1995-08-31 1998-01-20 Ricoh Company Ltd. Method and apparatus for compressing arbitrary data

Also Published As

Publication number Publication date
EP0789326B1 (en) 2005-03-30
DE69732873D1 (de) 2005-05-04
DE69732873T2 (de) 2006-03-02
US6215906B1 (en) 2001-04-10
EP0789326A2 (en) 1997-08-13
JPH09275349A (ja) 1997-10-21
US6026198A (en) 2000-02-15
EP0789326A3 (en) 1999-07-21
EP1339022A2 (en) 2003-08-27
EP1339022A3 (en) 2008-12-31

Similar Documents

Publication Publication Date Title
JP2840589B2 (ja) データ圧縮装置及びデータ復元装置
JP3278297B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
Nelson et al. The data compression book 2nd edition
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
JP3276860B2 (ja) データ圧縮/復元方法
JPH09162748A (ja) データ符号化方法、データ復号方法、データ圧縮装置、データ復元装置、及びデータ圧縮・復元システム
WO1993003548A1 (en) Method and apparatus for the compression and decompression of data using lempel-ziv based techniques
JP3083730B2 (ja) データ情報を圧縮するためのシステムおよび方法
US6801141B2 (en) Method for lossless data compression using greedy sequential context-dependent grammar transform
JP3302210B2 (ja) データ符号化/復号化方法及び装置
US5594435A (en) Permutation-based data compression
KR20010006554A (ko) 무손실 데이터 압축을 위한 방법 및 그 장치
US6518895B1 (en) Approximate prefix coding for data compression
JPH08167852A (ja) データ圧縮方法及び装置
JP3108404B2 (ja) データ圧縮装置及びデータ復元装置
Begum et al. An efficient text compression for massive volume of data
JPH06168097A (ja) データ符号化方式及びデータ復元方式
JPH0644038A (ja) データ圧縮方法、データ復元方法、データ圧縮/復元方法
JPH1155125A (ja) 文字データの圧縮・復元方法
JP3648944B2 (ja) データ符号化方法およびデータ符号化装置ならびにデータ復号化方法およびデータ復号化装置
JP2003273746A (ja) 可変長符号復号装置
JPH06202844A (ja) データ圧縮復元処理装置
JPH0527943A (ja) データ圧縮方式
JP2002232298A (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
JPH11251923A (ja) モニタ装置

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980929

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

Free format text: PAYMENT UNTIL: 20071016

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081016

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081016

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091016

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091016

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101016

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20101016

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20111016

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20111016

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees