JPH04280517A - データ圧縮および復元方式 - Google Patents
データ圧縮および復元方式Info
- Publication number
- JPH04280517A JPH04280517A JP4360491A JP4360491A JPH04280517A JP H04280517 A JPH04280517 A JP H04280517A JP 4360491 A JP4360491 A JP 4360491A JP 4360491 A JP4360491 A JP 4360491A JP H04280517 A JPH04280517 A JP H04280517A
- Authority
- JP
- Japan
- Prior art keywords
- code
- dictionary
- character
- character string
- arithmetic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000013144 data compression Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims description 33
- 230000001186 cumulative effect Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 13
- 241000611421 Elia Species 0.000 description 8
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000001338 self-assembly Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は,文字コード,画像デー
タ等のデータを算術符号化するデータ圧縮方式に関する
。文字コード,画像データ等の様々な種類のデータがコ
ンピュータで扱われるようになるのにともない,取り扱
われるデータ量も増大している。そのような大量のデー
タの処理においては,記憶容量を減らしたり,遠隔地へ
の伝送を可能とするためには,データ中の冗長な部分を
省いて圧縮して記憶するもしくはデータ転送等を行うよ
うにすることが望まれる。
タ等のデータを算術符号化するデータ圧縮方式に関する
。文字コード,画像データ等の様々な種類のデータがコ
ンピュータで扱われるようになるのにともない,取り扱
われるデータ量も増大している。そのような大量のデー
タの処理においては,記憶容量を減らしたり,遠隔地へ
の伝送を可能とするためには,データ中の冗長な部分を
省いて圧縮して記憶するもしくはデータ転送等を行うよ
うにすることが望まれる。
【0002】様々な種類のデータ(文字コード,画像デ
ータ等)に適用できるデータ圧縮方式として,ユニバー
サル符号による方式がある。ユニバーサル符号化方式に
は様々な方法があるが,代表的な方法として算術符号化
方式がある。本発明は,多値データを算術符号化方式に
より,効率的にデータ圧縮および復元する方式を提供す
ることを目的とする。
ータ等)に適用できるデータ圧縮方式として,ユニバー
サル符号による方式がある。ユニバーサル符号化方式に
は様々な方法があるが,代表的な方法として算術符号化
方式がある。本発明は,多値データを算術符号化方式に
より,効率的にデータ圧縮および復元する方式を提供す
ることを目的とする。
【0003】
【従来の技術】算術符号化方式は,情報源の文字の出現
頻度が分かっている場合に,最大の効率で圧縮できるも
のである。ユニバーサル符号においては,文書データに
おける文字コードのみならず画像データ等のデータの圧
縮にも適用でき,以下の説明においては,データの1ワ
ード単位を文字とよび,データの任意ワードがつながっ
たものを文字列と呼ぶ。
頻度が分かっている場合に,最大の効率で圧縮できるも
のである。ユニバーサル符号においては,文書データに
おける文字コードのみならず画像データ等のデータの圧
縮にも適用でき,以下の説明においては,データの1ワ
ード単位を文字とよび,データの任意ワードがつながっ
たものを文字列と呼ぶ。
【0004】多値算術符号について,図7により説明す
る。図7(A)は入力文字がa,b,c,dの4文字よ
りなる場合の各シンボル(文字)の出現頻度を示す。図
(B)はシンボルと出現頻度の累積を示す。図(C)は
,算術符号化を示す。多値算術化は,入力データの文字
列を数直線〔0,1〕の一点に対応付けて,一個の符号
で表す符号化法である。符号化の例として,簡単のため
,a,b,c,dの4個の文字だけよりなる情報源を考
える。
る。図7(A)は入力文字がa,b,c,dの4文字よ
りなる場合の各シンボル(文字)の出現頻度を示す。図
(B)はシンボルと出現頻度の累積を示す。図(C)は
,算術符号化を示す。多値算術化は,入力データの文字
列を数直線〔0,1〕の一点に対応付けて,一個の符号
で表す符号化法である。符号化の例として,簡単のため
,a,b,c,dの4個の文字だけよりなる情報源を考
える。
【0005】図(A)に示されるように,各シンボルの
出現頻度(全出現回数を各シンボル毎に出現回数で割っ
て,確率としてある)が図示のようであったとする。次
に,頻度順にシンボルの並び替えを行い,図(B)に示
すように,頻度の高い方から順に累積確率を算出する(
頻度の一番高いcはb,d,aの出現頻度(確率)を累
積しbはd,aの出現頻度を累積し,dはaの出現頻度
を累積する)。
出現頻度(全出現回数を各シンボル毎に出現回数で割っ
て,確率としてある)が図示のようであったとする。次
に,頻度順にシンボルの並び替えを行い,図(B)に示
すように,頻度の高い方から順に累積確率を算出する(
頻度の一番高いcはb,d,aの出現頻度(確率)を累
積しbはd,aの出現頻度を累積し,dはaの出現頻度
を累積する)。
【0006】そこで,シンボル(文字)cが入力される
と,図(C)に示されるように,区間〔0,1〕をcの
累積頻度により分割した区間50が選択される。次にシ
ンボルaが入力されると,区間50を各シンボルaの累
積出現頻度(累積出現頻度の最大値は1に規格化する)
により求めたシンボルaに対応する区間51を選択する
。次に,シンボルdが入力されると,区間51よりシン
ボルdの累積頻度で分割した区間52が選択され,区間
52の任意値(区間52の上端と下端の間の任意の値)
を符号として出力する。
と,図(C)に示されるように,区間〔0,1〕をcの
累積頻度により分割した区間50が選択される。次にシ
ンボルaが入力されると,区間50を各シンボルaの累
積出現頻度(累積出現頻度の最大値は1に規格化する)
により求めたシンボルaに対応する区間51を選択する
。次に,シンボルdが入力されると,区間51よりシン
ボルdの累積頻度で分割した区間52が選択され,区間
52の任意値(区間52の上端と下端の間の任意の値)
を符号として出力する。
【0007】区間の下端は次の式により求める。新たな
部分区間の下端=現部分区間の下端+現部分区間幅×出
現文字の累積確率新たな部分区間幅=現部分区間幅×出
現文字の確率また,符号語の復元は,符号語が各文字の
確率に分けたどの区間に含まれるか,逐次再分割しなが
ら調べることによって,元の文字(シンボル)列を復元
することができる。
部分区間の下端=現部分区間の下端+現部分区間幅×出
現文字の累積確率新たな部分区間幅=現部分区間幅×出
現文字の確率また,符号語の復元は,符号語が各文字の
確率に分けたどの区間に含まれるか,逐次再分割しなが
ら調べることによって,元の文字(シンボル)列を復元
することができる。
【0008】多値算術符号化によれば,出現頻度が高い
文字列程,最終区間の幅が大きくなり,短い符号により
表せるため,データ量が圧縮される。また,この方法は
,符号語のビット表現に最小単位の制約がなく,最小単
位を1ビット以下に取ることができるため,効率の高い
圧縮ができる。
文字列程,最終区間の幅が大きくなり,短い符号により
表せるため,データ量が圧縮される。また,この方法は
,符号語のビット表現に最小単位の制約がなく,最小単
位を1ビット以下に取ることができるため,効率の高い
圧縮ができる。
【0009】図8は算術符号化の装置構成を示す。図に
おいて,60は頻度順並び替え部,61は頻度をカウン
トするカウンタ,62は頻度順に並び替えられたシンボ
ルと識別番号よりなる辞書,63はカウンタから出力さ
れる累積出現頻度と頻度並び替え部から出力される識別
番号とにより算術符号化する算術符号部である。
おいて,60は頻度順並び替え部,61は頻度をカウン
トするカウンタ,62は頻度順に並び替えられたシンボ
ルと識別番号よりなる辞書,63はカウンタから出力さ
れる累積出現頻度と頻度並び替え部から出力される識別
番号とにより算術符号化する算術符号部である。
【0010】図の構成の動作を説明する。入力文字列よ
り,1文字入力する毎に,カウンタ61は出現頻度をカ
ンウトする。頻度並び替え部60は出現頻度順にシンボ
ルの並び替えを行い,辞書62を書き替える。そして,
算術符号部63は,入力された文字の累積頻度に区間幅
と累積出現確率に基づいて,区間の上端と下端を求め,
区間の任意の値を符号として出力する。
り,1文字入力する毎に,カウンタ61は出現頻度をカ
ンウトする。頻度並び替え部60は出現頻度順にシンボ
ルの並び替えを行い,辞書62を書き替える。そして,
算術符号部63は,入力された文字の累積頻度に区間幅
と累積出現確率に基づいて,区間の上端と下端を求め,
区間の任意の値を符号として出力する。
【0011】図9および図10に算術符号化のフローを
示す。初期値は,上端=1,下端=0,区間幅=1.0
とする。cum〔i〕は識別番号i(出現頻度を大きさ
の順に並べ替えたi番目)の出現頻度を表す。cum
freq〔i〕はi番目の累積頻度であり,cum
freq〔i〕はcum〔i〕からcum〔N〕まで
の累積出現頻度を表す。cum freq〔1〕=1
,cum freq〔N〕=0に正規化する。
示す。初期値は,上端=1,下端=0,区間幅=1.0
とする。cum〔i〕は識別番号i(出現頻度を大きさ
の順に並べ替えたi番目)の出現頻度を表す。cum
freq〔i〕はi番目の累積頻度であり,cum
freq〔i〕はcum〔i〕からcum〔N〕まで
の累積出現頻度を表す。cum freq〔1〕=1
,cum freq〔N〕=0に正規化する。
【0012】図9は出現文字についての履歴を考慮しな
い場合(一重履歴)の多値算術符号化のフローを示す。 S1 (1)辞書Dの各スロットに全ての単一文字を
割りつける。D(i)=i(i=1,2,・・・A),
但し,Aはアルファベットの大きさ(アルファベットお
よび記号等の数)で,最大256をとる。 (2) 各文字に番号を割りつける。I(i)=i(
i=1,2,・・・,A)。 (3) 出現頻度を初期化する。freq(i)=1
(i=1,2,・・・,A)。 (4) 累積出現頻度を初期化する。cum fr
eq(i)=A−1(i=1,2,・・・,A,累積出
現頻度は,全ての値を異ならしめておく必要があるため
このように初期化する。) S2 一文字kを入力する。 S3 j=I(k),i=D(j)により入力した文
字のスロット(区間)を求め,番号jを算術符号化する
。
い場合(一重履歴)の多値算術符号化のフローを示す。 S1 (1)辞書Dの各スロットに全ての単一文字を
割りつける。D(i)=i(i=1,2,・・・A),
但し,Aはアルファベットの大きさ(アルファベットお
よび記号等の数)で,最大256をとる。 (2) 各文字に番号を割りつける。I(i)=i(
i=1,2,・・・,A)。 (3) 出現頻度を初期化する。freq(i)=1
(i=1,2,・・・,A)。 (4) 累積出現頻度を初期化する。cum fr
eq(i)=A−1(i=1,2,・・・,A,累積出
現頻度は,全ての値を異ならしめておく必要があるため
このように初期化する。) S2 一文字kを入力する。 S3 j=I(k),i=D(j)により入力した文
字のスロット(区間)を求め,番号jを算術符号化する
。
【0013】S4 出現頻度順にスロットに対応する
文字を入れ替える。番号がjより小さいシンボルのうち
で,j番目のシンボルと出現頻度が異なるシンボルを求
める。即ち,freq(r)!=freq(j)となる
最大のr(<j)を見つける(!は異なることを意味す
る)。さらに,出現頻度のr番目のスロットの文字の識
別番号がI(r)=s,累積出現頻度のスロットのr番
目に対応する文字の識別番号がtであるとする((D(
r))=t)。そこで,r番目とj番目を入れ替える。 即ち,I(j)=S(識別番号sの文字),D(j)=
t,I(r)=j,D(r)=i(=D(j))。 S5 出現頻度,累積出現頻度を1インクリメン
トする。但し,累積出現頻度はr以下の全てのスロット
について1インクリメントする。S2以下を繰り返す。
文字を入れ替える。番号がjより小さいシンボルのうち
で,j番目のシンボルと出現頻度が異なるシンボルを求
める。即ち,freq(r)!=freq(j)となる
最大のr(<j)を見つける(!は異なることを意味す
る)。さらに,出現頻度のr番目のスロットの文字の識
別番号がI(r)=s,累積出現頻度のスロットのr番
目に対応する文字の識別番号がtであるとする((D(
r))=t)。そこで,r番目とj番目を入れ替える。 即ち,I(j)=S(識別番号sの文字),D(j)=
t,I(r)=j,D(r)=i(=D(j))。 S5 出現頻度,累積出現頻度を1インクリメン
トする。但し,累積出現頻度はr以下の全てのスロット
について1インクリメントする。S2以下を繰り返す。
【0014】図10は,出現文字に二重履歴を考慮した
場合のフローを示す。二重履歴を考慮する場合には,連
続する二文字の組合わせを考慮し,各文字毎に辞書を作
成し,さらに各文字毎に続く文字の出現頻度を二番目の
文字毎に記録するようにする。例えば,文字aの辞書に
は,aに続いて出現した文字(abに対するb,acに
対するc等)aに続く文字毎に出現頻度を求め,記録す
るようにする。
場合のフローを示す。二重履歴を考慮する場合には,連
続する二文字の組合わせを考慮し,各文字毎に辞書を作
成し,さらに各文字毎に続く文字の出現頻度を二番目の
文字毎に記録するようにする。例えば,文字aの辞書に
は,aに続いて出現した文字(abに対するb,acに
対するc等)aに続く文字毎に出現頻度を求め,記録す
るようにする。
【0015】そこで,辞書Dのスロットには,文字pに
対して続く文字i毎に,D(p,i)(p,i=1,2
,・・・,A)(Aはアルファベットの大きさ(数))
を割り付ける。また,各文字に割りつける番号はI(p
,i)(p,i=1,2,・・・,A)とする。上記の
点以外,図9のフローと異ならないので,説明は省略す
る。
対して続く文字i毎に,D(p,i)(p,i=1,2
,・・・,A)(Aはアルファベットの大きさ(数))
を割り付ける。また,各文字に割りつける番号はI(p
,i)(p,i=1,2,・・・,A)とする。上記の
点以外,図9のフローと異ならないので,説明は省略す
る。
【0016】
【発明が解決しようとする課題】上記のように,算術符
号化においては,文字が入力される度に出現頻度の並び
替えを行う必要があり,この処理は長時間を要するもの
であった。そのため,従来の算術符号化は,高い圧縮率
は得られるが,時間的には能率の悪いものであった。本
発明は,算術符号化を高速に行うデータ圧縮および復元
方式を提供することを目的とする。
号化においては,文字が入力される度に出現頻度の並び
替えを行う必要があり,この処理は長時間を要するもの
であった。そのため,従来の算術符号化は,高い圧縮率
は得られるが,時間的には能率の悪いものであった。本
発明は,算術符号化を高速に行うデータ圧縮および復元
方式を提供することを目的とする。
【0017】
【課題を解決するための手段】本発明は,出現頻度の高
い文字が,常に小さい番号で符号化される自己組織化規
則に基づく符号化方法(以後,SOR符号と称する)に
より,まず入力文字列を符号化し,SOR符号を算術符
号化するようにした。
い文字が,常に小さい番号で符号化される自己組織化規
則に基づく符号化方法(以後,SOR符号と称する)に
より,まず入力文字列を符号化し,SOR符号を算術符
号化するようにした。
【0018】本発明の説明をするのに先立って,SOR
符号について説明する。SOR符号化方法は,入力デー
タ中に出現した文字列単位に辞書に登録し,繰り返し現
れた文字列を辞書における同じ文字列の登録番号により
表して符号化し,登録番号を出現し易い文字列程小さい
番号になるように,文字入力毎に動的に辞書を更新する
ようにしたものである。
符号について説明する。SOR符号化方法は,入力デー
タ中に出現した文字列単位に辞書に登録し,繰り返し現
れた文字列を辞書における同じ文字列の登録番号により
表して符号化し,登録番号を出現し易い文字列程小さい
番号になるように,文字入力毎に動的に辞書を更新する
ようにしたものである。
【0019】図11は自己組織化符号化規則に基づく符
号化方法(SOR符号化方法)を示す。図(A)は自己
組織化法のうちMTF(Move To Front
)法を示す。入力文字はa,b,c,dの4通りであっ
て,図示の入力データ‘abacbc・・・ad’を符
号化する場合を考える。 (1)第1番目の文字aを符号1aで出力し,辞書の番
号1に登録する。 (2)第2番目の文字bを符号2bで出力し,辞書には
,前に登録番号1で文字aを登録番号2に下げ,bを登
録番号1で登録する。 (3)第3番目の文字aを符号2で出力する。そして,
辞書には,aを登録番号1で登録し,bを登録番号2と
する。
号化方法(SOR符号化方法)を示す。図(A)は自己
組織化法のうちMTF(Move To Front
)法を示す。入力文字はa,b,c,dの4通りであっ
て,図示の入力データ‘abacbc・・・ad’を符
号化する場合を考える。 (1)第1番目の文字aを符号1aで出力し,辞書の番
号1に登録する。 (2)第2番目の文字bを符号2bで出力し,辞書には
,前に登録番号1で文字aを登録番号2に下げ,bを登
録番号1で登録する。 (3)第3番目の文字aを符号2で出力する。そして,
辞書には,aを登録番号1で登録し,bを登録番号2と
する。
【0020】(4)第4番目の入力文字cを符号3cで
出力する。そして,辞書には,cを登録番号1,aを登
録番号2,bを登録番号3で登録する。 (5)第5番目の文字bを3で出力する。そして,辞書
には,bを登録番号1,cを登録番号2,aを登録番号
3で登録する。 以下同様に,出現した文字を辞書の登録番号により符号
化するとともに,辞書を更新し,出現した文字を登録番
号1で登録する。
出力する。そして,辞書には,cを登録番号1,aを登
録番号2,bを登録番号3で登録する。 (5)第5番目の文字bを3で出力する。そして,辞書
には,bを登録番号1,cを登録番号2,aを登録番号
3で登録する。 以下同様に,出現した文字を辞書の登録番号により符号
化するとともに,辞書を更新し,出現した文字を登録番
号1で登録する。
【0021】図11(b) は,自己組織化法のうちの
TR(Transpose)法を示す。入力文字がa,
b,c,dの4通りで,図示のような文字列‘abac
b・・・ad’を符号化する場合について示す。 (1)第1番目の文字aを符号1aで出力し,aを登録
番号1で辞書に登録する。 (2)第2番目の文字bを符号2bで出力し,bを辞書
に登録番号2で登録する。 (3)第3番目の文字aを符号1で出力する。 (4)第4番目の文字cを符号3cで出力し,cを辞書
に登録番号3で登録する。
TR(Transpose)法を示す。入力文字がa,
b,c,dの4通りで,図示のような文字列‘abac
b・・・ad’を符号化する場合について示す。 (1)第1番目の文字aを符号1aで出力し,aを登録
番号1で辞書に登録する。 (2)第2番目の文字bを符号2bで出力し,bを辞書
に登録番号2で登録する。 (3)第3番目の文字aを符号1で出力する。 (4)第4番目の文字cを符号3cで出力し,cを辞書
に登録番号3で登録する。
【0022】(5)第5番目の文字bを符号2で出力し
,辞書におけるbの登録番号を1つ繰上げ,そのaの登
録番号1つ繰り下げる。 (6)第6番目の文字cを符号3で出力し,cの辞書に
おける番号を1つ繰上げ,aを1つ繰り下げる。 (7)第7番目の文字aを符号3で出力し,aの辞書に
おける番号を1つ繰り上げ,cを1繰り下げる。
,辞書におけるbの登録番号を1つ繰上げ,そのaの登
録番号1つ繰り下げる。 (6)第6番目の文字cを符号3で出力し,cの辞書に
おける番号を1つ繰上げ,aを1つ繰り下げる。 (7)第7番目の文字aを符号3で出力し,aの辞書に
おける番号を1つ繰り上げ,cを1繰り下げる。
【0023】以下同様に,出現した文字を辞書の登録番
号により符号化するとともに,出現した文字の登録番号
を1つ繰り上げて登録する。上記のような,自己組織化
法によれば,並び替えにより頻繁に現れる文字程,登録
番号が小さくなり,小さい登録番号程,短いビット数で
表すようにすれば,出力符号のデータ量を削減すること
ができる。また,SOR符号化方法では,出現頻度の高
い文字程,辞書の先頭に近い位置に置かれているので,
SOR符号を算術符号化する場合には,算術符号化にお
ける出現頻度の並び替え処理の負担を軽減することがで
きる。
号により符号化するとともに,出現した文字の登録番号
を1つ繰り上げて登録する。上記のような,自己組織化
法によれば,並び替えにより頻繁に現れる文字程,登録
番号が小さくなり,小さい登録番号程,短いビット数で
表すようにすれば,出力符号のデータ量を削減すること
ができる。また,SOR符号化方法では,出現頻度の高
い文字程,辞書の先頭に近い位置に置かれているので,
SOR符号を算術符号化する場合には,算術符号化にお
ける出現頻度の並び替え処理の負担を軽減することがで
きる。
【0024】図1により,本発明の基本構成を示す。図
において,1はSOR符号化部,2は多値算術符号化部
,3は文字列を登録番号に対応付けて登録した辞書,4
は累積頻度をカウントするカウンタである。5は入力文
字列について,辞書を検索することおよび新たに出現し
た文字列について辞書に登録する検索・登録部,6は文
字列の辞書における登録番号を並び替える辞書並び替え
部である。
において,1はSOR符号化部,2は多値算術符号化部
,3は文字列を登録番号に対応付けて登録した辞書,4
は累積頻度をカウントするカウンタである。5は入力文
字列について,辞書を検索することおよび新たに出現し
た文字列について辞書に登録する検索・登録部,6は文
字列の辞書における登録番号を並び替える辞書並び替え
部である。
【0025】
【作用】図1の構成の動作を説明する。SOR符号化部
1に入力された,文字列は検索・登録部5で辞書3を参
照される。そして,辞書に同じ文字列があれば,その登
録番号をSOR符号として出力する。また,入力された
文字列が未登録であれば,検索・登録部5はその文字列
を辞書3に登録し,入力文字列を生データとして出力す
る。さらに,辞書並び替え部6は,MTR方もしくはT
R方等の自己組織化の規則に従って,辞書を更新し,辞
書における文字列の登録番号の並び替えを行う。
1に入力された,文字列は検索・登録部5で辞書3を参
照される。そして,辞書に同じ文字列があれば,その登
録番号をSOR符号として出力する。また,入力された
文字列が未登録であれば,検索・登録部5はその文字列
を辞書3に登録し,入力文字列を生データとして出力す
る。さらに,辞書並び替え部6は,MTR方もしくはT
R方等の自己組織化の規則に従って,辞書を更新し,辞
書における文字列の登録番号の並び替えを行う。
【0026】SOR符号化部1から出力されるSOR符
号は,多値算術符号化部2に入力される。一方,カウン
タ4は各文字列の出現頻度および累積頻度をカウントし
,多値算術符号化部2に入力する。多値算術符号化部2
は,入力されたSOR符号を文字列の番号および累積出
現頻度等に基づいて,区間幅,入力さた文字列に対応す
る区間の上端,下端の数値を求め,区間の間の任意の数
値を符号として出力する。
号は,多値算術符号化部2に入力される。一方,カウン
タ4は各文字列の出現頻度および累積頻度をカウントし
,多値算術符号化部2に入力する。多値算術符号化部2
は,入力されたSOR符号を文字列の番号および累積出
現頻度等に基づいて,区間幅,入力さた文字列に対応す
る区間の上端,下端の数値を求め,区間の間の任意の数
値を符号として出力する。
【0027】
【実施例】図2〜図6により本発明の実施例を説明する
。本発明では,SOR符号化において,辞書を参照して
得られた文字列の登録番号を,小さい登録番号程短い符
号長で表す可変長符号とする。図2は,本発明の登録番
号の可変長化符号化方法を示す。図(a) は,可変長
符号の例を示す。シンボルa,b,c,dの出現確率を
0.5,0.25,0.15,0.1であるとすると,
aにたいしては符号「1」,bにたいては符号「01」
,cに対しては「001」,dに対しては「000」の
ように,出現度の高いシンボルに対しては,短い符号,
出現頻度の低いシンボルに対しては,長い符号を割り当
てるように可変長符号により符号化することによりデー
タの圧縮率を向上させることができる。
。本発明では,SOR符号化において,辞書を参照して
得られた文字列の登録番号を,小さい登録番号程短い符
号長で表す可変長符号とする。図2は,本発明の登録番
号の可変長化符号化方法を示す。図(a) は,可変長
符号の例を示す。シンボルa,b,c,dの出現確率を
0.5,0.25,0.15,0.1であるとすると,
aにたいしては符号「1」,bにたいては符号「01」
,cに対しては「001」,dに対しては「000」の
ように,出現度の高いシンボルに対しては,短い符号,
出現頻度の低いシンボルに対しては,長い符号を割り当
てるように可変長符号により符号化することによりデー
タの圧縮率を向上させることができる。
【0028】可変長符号の例として,イライアス(El
ias)符号がある。図(b) は,イライアス(El
ias)符号を示す。イライアスのγ符号は,番号を表
す2進数に対して桁数を表すprefix(接頭語)を
つけたもので,接頭語は2進数の桁数より1引いた数の
0を付加するものである。例えば,図示のように,番号
1は符号「1」で接頭語なしとし,番号2に対しては2
の2進数「10」に接頭語として,1桁(桁数2−1=
1)の0を「10」の前に付加する。番号3は2進数「
11」でり,桁数は2であるので,接頭語として1桁だ
け0を付加する。同様に,番号4は2進数「100」で
,3桁であるから,0を2桁だけ接頭語として付加する
。
ias)符号がある。図(b) は,イライアス(El
ias)符号を示す。イライアスのγ符号は,番号を表
す2進数に対して桁数を表すprefix(接頭語)を
つけたもので,接頭語は2進数の桁数より1引いた数の
0を付加するものである。例えば,図示のように,番号
1は符号「1」で接頭語なしとし,番号2に対しては2
の2進数「10」に接頭語として,1桁(桁数2−1=
1)の0を「10」の前に付加する。番号3は2進数「
11」でり,桁数は2であるので,接頭語として1桁だ
け0を付加する。同様に,番号4は2進数「100」で
,3桁であるから,0を2桁だけ接頭語として付加する
。
【0029】このようなイライアスの可変長符号によれ
ば,符号語をビット詰めしても,一意に復号することが
可能になる。イライアスのδ符号は,イライアスのγ符
号を用いて,符号化するものである。イライアスのδ符
号においては,γ符号を上位ビットし,ガンマ符号にお
ける番号から1引いた数に等しい下位ビットを付加する
。そして下位ビットの2進数表現により,上位ビットの
番号からの番号を表すようにする。例えば,γ符号の番
号2を示す「010」を用いて,番号2と3を表すよう
にする。それぞれ,上位ビットは「010」とし,番号
2から1引いた数が1であるから,1ビットの「0」を
「010」に付加することにより番号2,1ビットの「
1」を「010」に付加することにより番号3を表すよ
うにする。同様に,番号4,5,6,7は,イライアス
のγ符号における番号3の「011」を上位ビットとし
て用い,付加するビット数は3−1=2ビットとし,「
00」,「01」,「10」,「11」を付加すること
により,番号4は「01100」,番号5は「0110
1」,番号6は「01110」,番号7は「0111」
と表す。以下同様に図示のように可変長符号により表す
。
ば,符号語をビット詰めしても,一意に復号することが
可能になる。イライアスのδ符号は,イライアスのγ符
号を用いて,符号化するものである。イライアスのδ符
号においては,γ符号を上位ビットし,ガンマ符号にお
ける番号から1引いた数に等しい下位ビットを付加する
。そして下位ビットの2進数表現により,上位ビットの
番号からの番号を表すようにする。例えば,γ符号の番
号2を示す「010」を用いて,番号2と3を表すよう
にする。それぞれ,上位ビットは「010」とし,番号
2から1引いた数が1であるから,1ビットの「0」を
「010」に付加することにより番号2,1ビットの「
1」を「010」に付加することにより番号3を表すよ
うにする。同様に,番号4,5,6,7は,イライアス
のγ符号における番号3の「011」を上位ビットとし
て用い,付加するビット数は3−1=2ビットとし,「
00」,「01」,「10」,「11」を付加すること
により,番号4は「01100」,番号5は「0110
1」,番号6は「01110」,番号7は「0111」
と表す。以下同様に図示のように可変長符号により表す
。
【0030】図3は本発明において,算術符号化の前に
符号化するSOR符号のフローを示す。 S1 (1)辞書を初期化する。 D(i)=0(i=1,2,・・・A)ただし,Aはア
ルファベットの大きさ(アルファベット,記号等の数,
で最大256)。 (2)各文字に番号を割りつける。 I(i)=0(i=1,2,・・・,A)(3)辞書使
用スロット数n=0 S2 一文字k入力する。 S3 文字kの番号jを識別する(j=I(k))。 S4 文字kの番号jで0であるか判定する。 j=0であれば,文字kは辞書に未登録な文字であるの
で,S5に進む。j=0でなければ,S7に進む。 S5 j=0であれば,n=n+1として,nを1イ
ンクリメントし,番号nをイライアス(Elias)符
号で符号化する。生データkを符号化する。 S6 辞書に文字kを番号nで登録する(D(n)=
k,I(k)=n)。 S7 S3でj=0でなければ,文字kは番号jで辞
書に登録済であるので,番号jをイライアス符号で符号
化する。
符号化するSOR符号のフローを示す。 S1 (1)辞書を初期化する。 D(i)=0(i=1,2,・・・A)ただし,Aはア
ルファベットの大きさ(アルファベット,記号等の数,
で最大256)。 (2)各文字に番号を割りつける。 I(i)=0(i=1,2,・・・,A)(3)辞書使
用スロット数n=0 S2 一文字k入力する。 S3 文字kの番号jを識別する(j=I(k))。 S4 文字kの番号jで0であるか判定する。 j=0であれば,文字kは辞書に未登録な文字であるの
で,S5に進む。j=0でなければ,S7に進む。 S5 j=0であれば,n=n+1として,nを1イ
ンクリメントし,番号nをイライアス(Elias)符
号で符号化する。生データkを符号化する。 S6 辞書に文字kを番号nで登録する(D(n)=
k,I(k)=n)。 S7 S3でj=0でなければ,文字kは番号jで辞
書に登録済であるので,番号jをイライアス符号で符号
化する。
【0031】S8 MTFまたはTRにより辞書の更
新をし,S2に戻って,次の文字kを入力する(MTF
はS9に,TRはS10に従う)。 S9 S8におけるMTFの処理である。s=jから
2までの文字の番号I(s)および登録番号D(s)を
一づつ繰り下げる(I(D(s))=I(D(s−1)
)。そして,文字kを番号1で辞書に登録する(I(1
)=k,D(k)=1)。 S10 S8におけるTRの処理である。j=1でな
ければ(j!=1),文字kの番号および辞書の登録番
号を辞書における1つ前の登録番号の文字番号および登
録番号と置き換える(r=D(j−1),D(j−1)
=k,D(j)=r,I(k)=j−1,I(r)=j
)。本発明では、上記のフローで求めた入力文字列のS
OR符号を算術符号化する。
新をし,S2に戻って,次の文字kを入力する(MTF
はS9に,TRはS10に従う)。 S9 S8におけるMTFの処理である。s=jから
2までの文字の番号I(s)および登録番号D(s)を
一づつ繰り下げる(I(D(s))=I(D(s−1)
)。そして,文字kを番号1で辞書に登録する(I(1
)=k,D(k)=1)。 S10 S8におけるTRの処理である。j=1でな
ければ(j!=1),文字kの番号および辞書の登録番
号を辞書における1つ前の登録番号の文字番号および登
録番号と置き換える(r=D(j−1),D(j−1)
=k,D(j)=r,I(k)=j−1,I(r)=j
)。本発明では、上記のフローで求めた入力文字列のS
OR符号を算術符号化する。
【0032】図4〜図6は,本発明の算術符号化のフロ
ーを示す。図4は,出現文字の履歴を考慮しない場合の
フローである。 S1 (1)辞書Dに全ての単一文字を割りつける。 D(i)=i(i=1,2,・・・,A),ただし,A
はアルファベットの大きさ(アルファベットおよび記号
等の数)であり,最大256である。 (2) 各文字に番号を割り付ける。 I(i)=i(i=1,2,・・・,A)。 (3) 各文字の出現頻度(app(i))を初期化
する。 app(i)=0(i=1,2,・・・,A)(4)
累積頻度(cum freq(i))を初期化する
。 cum freq(i)=A−i(i=1,・・
・,A)。 (5) 辞書使用スロット数n=0とする。
ーを示す。図4は,出現文字の履歴を考慮しない場合の
フローである。 S1 (1)辞書Dに全ての単一文字を割りつける。 D(i)=i(i=1,2,・・・,A),ただし,A
はアルファベットの大きさ(アルファベットおよび記号
等の数)であり,最大256である。 (2) 各文字に番号を割り付ける。 I(i)=i(i=1,2,・・・,A)。 (3) 各文字の出現頻度(app(i))を初期化
する。 app(i)=0(i=1,2,・・・,A)(4)
累積頻度(cum freq(i))を初期化する
。 cum freq(i)=A−i(i=1,・・
・,A)。 (5) 辞書使用スロット数n=0とする。
【0033】S2 一文字kを入力する。
S3 文字kの番号を求め,算術符号化する(算術符
号化のフローは図9におけるものと同じであるので,説
明は省略する)。 S4 MTFまたはTRにより辞書を更新する(MT
FはS6,TRはS7に示す)。 S5 jより小さい番号の文字の累積頻度を1インク
リメントする(j>0の範囲でj=j−1,cum
freq(j)=cum freq(j)+1)。そ
して,S2以降の処理を繰り返す。 S6 MTFの処理である。図3におけるMTと同じ
であるので説明は省略する。 S7 TRの処理である。j番目の文字の出現頻度が
0であれば((app(j)=0),app(j)=1
とし,n=n+1とする。登録番号D(n)=rとし,
辞書における登録番号の置き替えを行う(D(j−1)
=k,D(j)=r,I(k)=j−1,I(r)=j
)。app(j)=0でなければ,r=D(j−1)と
して辞書における登録番号の置き替えを行う。
号化のフローは図9におけるものと同じであるので,説
明は省略する)。 S4 MTFまたはTRにより辞書を更新する(MT
FはS6,TRはS7に示す)。 S5 jより小さい番号の文字の累積頻度を1インク
リメントする(j>0の範囲でj=j−1,cum
freq(j)=cum freq(j)+1)。そ
して,S2以降の処理を繰り返す。 S6 MTFの処理である。図3におけるMTと同じ
であるので説明は省略する。 S7 TRの処理である。j番目の文字の出現頻度が
0であれば((app(j)=0),app(j)=1
とし,n=n+1とする。登録番号D(n)=rとし,
辞書における登録番号の置き替えを行う(D(j−1)
=k,D(j)=r,I(k)=j−1,I(r)=j
)。app(j)=0でなければ,r=D(j−1)と
して辞書における登録番号の置き替えを行う。
【0034】図5は本発明の算術符号化において,一重
履歴を考慮し,連続する二文字の組合せを考慮して,算
術符号化する場合のフローを示す。図は辞書の構成を,
各文字毎に辞書を作成するとともに,さらに各文字毎に
続く各文字についての辞書を作成するものである。従っ
て,D(p,i)=i(p,i=1,2,・・・A),
i(p,i)=i(p,i=1,2,・・・,A)とす
る。出現頻度,累積頻度については,連続する二文字の
うちの一番目の文字についてのみカウントするものとし
た場合を示す(app(i),cum freq(i
),(i=1,2,・・・,A)として,出現頻度,累
積頻度を番号iのみで求める)。それ以外のフローは履
歴を考慮しない図4における場合と同じであるので,説
明は省略する。
履歴を考慮し,連続する二文字の組合せを考慮して,算
術符号化する場合のフローを示す。図は辞書の構成を,
各文字毎に辞書を作成するとともに,さらに各文字毎に
続く各文字についての辞書を作成するものである。従っ
て,D(p,i)=i(p,i=1,2,・・・A),
i(p,i)=i(p,i=1,2,・・・,A)とす
る。出現頻度,累積頻度については,連続する二文字の
うちの一番目の文字についてのみカウントするものとし
た場合を示す(app(i),cum freq(i
),(i=1,2,・・・,A)として,出現頻度,累
積頻度を番号iのみで求める)。それ以外のフローは履
歴を考慮しない図4における場合と同じであるので,説
明は省略する。
【0035】図6は算術符号化において,一重履歴を考
慮し,さらに,出現頻度,累積出現頻度についても,一
重履歴を考慮した場合を示す。図のフローは,出現頻度
をI(p,i),累積出現頻度をcum freq(
p,i)(i=1,2,・・・,A)として求める点以
外で図4のフローと異ならないので,説明は省略する。
慮し,さらに,出現頻度,累積出現頻度についても,一
重履歴を考慮した場合を示す。図のフローは,出現頻度
をI(p,i),累積出現頻度をcum freq(
p,i)(i=1,2,・・・,A)として求める点以
外で図4のフローと異ならないので,説明は省略する。
【0036】
【発明の効果】本発明によれば,算術符号化部に入力さ
れるデータは,ほぼ出現頻度順に並び替えられたデータ
が入力されるので,算術符号化における出現頻度の計数
処理が簡単化され,算術符号化の処理速度を向上させる
ことが可能になる。
れるデータは,ほぼ出現頻度順に並び替えられたデータ
が入力されるので,算術符号化における出現頻度の計数
処理が簡単化され,算術符号化の処理速度を向上させる
ことが可能になる。
【図1】本発明の基本構成を示す図である。
【図2】登録番号の可変長符号化方法を示す図である。
【図3】SOR符号化のフローを示す図である。
【図4】本発明の符号化方法(1) (履歴のない場合
)を示す図である。
)を示す図である。
【図5】本発明の符号化方法(2) (一重履歴の場合
)を示す図である。
)を示す図である。
【図6】本発明の符号化方法(3) (一重履歴の場合
)を示す図である。
)を示す図である。
【図7】多値算術符号の原理説明図である。
【図8】従来の算術符号化の装置構成を示す図である。
【図9】従来の多値算術符号化のフロー(一重履歴の場
合)を示す図である。
合)を示す図である。
【図10】従来の多値算術符号化のフロー(二重履歴の
場合)を示す図である。
場合)を示す図である。
【図11】自己組織化規則に基づく符号化(SOR符号
化)を示す図である。
化)を示す図である。
1 :SOR符号化部,
2 :多値算術符号化部,
3 :辞書,
4 :カウンタ,
5 :検索・登録部,
6 :辞書ならび替え部
Claims (4)
- 【請求項1】 入力文字列を算術符号により符号化し
データ圧縮および復元する方式において,文字列を入力
する毎に,出現頻度の高い文字列ほど辞書における登録
番号が小さくなるように並び替えを行い,文字列を辞書
における登録番号により符号化するSOR符号化部(1
) と,SOR符号化部(1) から出力されるSOR
符号を入力して算術符号化する算術符号化部(2) と
を備え,入力文字列をSOR符号により符号化した後,
該符号を算術符号により符号化することを特徴とするデ
ータ圧縮方式。 - 【請求項2】 請求項1に記載の算術符号を,SOR
符号に変換し,さらにSOR符号に基づいて文字列を復
元することを特徴とする圧縮データの復元方式。 - 【請求項3】 請求項1において,入力文字列の辞書
における登録番号を小さい方へ1繰り上げるとともに,
繰り上がる位置にあった文字列の登録番号を1繰り下げ
ることを特徴とするデータ圧縮方式。 - 【請求項4】 請求項1において,入力文字列の辞書
における登録位置を辞書の先頭に移すとともに,辞書の
先頭から該文字列の登録されていた登録位置の手前まで
に登録されていた文字列の登録番号を各々1ずつ繰り下
げることを特徴とするデータ圧縮方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4360491A JPH04280517A (ja) | 1991-03-08 | 1991-03-08 | データ圧縮および復元方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4360491A JPH04280517A (ja) | 1991-03-08 | 1991-03-08 | データ圧縮および復元方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04280517A true JPH04280517A (ja) | 1992-10-06 |
Family
ID=12668433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4360491A Withdrawn JPH04280517A (ja) | 1991-03-08 | 1991-03-08 | データ圧縮および復元方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04280517A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5635932A (en) * | 1994-10-17 | 1997-06-03 | Fujitsu Limited | Lempel-ziv compression with expulsion of dictionary buffer matches |
US6320741B1 (en) | 1999-09-29 | 2001-11-20 | Nec Corporation | Electrical double layer capacitor |
JP2011507450A (ja) * | 2007-12-20 | 2011-03-03 | タンドベルク・テレコム・エイ・エス | 可変長符号化方法及び装置 |
US20130290279A1 (en) * | 2011-09-19 | 2013-10-31 | International Business Machines Corporation | Scalable deduplication system with small blocks |
-
1991
- 1991-03-08 JP JP4360491A patent/JPH04280517A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5635932A (en) * | 1994-10-17 | 1997-06-03 | Fujitsu Limited | Lempel-ziv compression with expulsion of dictionary buffer matches |
US6320741B1 (en) | 1999-09-29 | 2001-11-20 | Nec Corporation | Electrical double layer capacitor |
JP2011507450A (ja) * | 2007-12-20 | 2011-03-03 | タンドベルク・テレコム・エイ・エス | 可変長符号化方法及び装置 |
US8306347B2 (en) | 2007-12-20 | 2012-11-06 | Cisco Technology, Inc. | Variable length coding (VLC) method and device |
US20130290279A1 (en) * | 2011-09-19 | 2013-10-31 | International Business Machines Corporation | Scalable deduplication system with small blocks |
US20130290278A1 (en) * | 2011-09-19 | 2013-10-31 | International Business Machines Corporation | Scalable deduplication system with small blocks |
US9075842B2 (en) * | 2011-09-19 | 2015-07-07 | International Business Machines Corporation | Scalable deduplication system with small blocks |
US9081809B2 (en) * | 2011-09-19 | 2015-07-14 | International Business Machines Corporation | Scalable deduplication system with small blocks |
US9747055B2 (en) | 2011-09-19 | 2017-08-29 | International Business Machines Corporation | Scalable deduplication system with small blocks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fenwick | The Burrows–Wheeler transform for block sorting text compression: principles and improvements | |
US5955976A (en) | Data compression for use with a communications channel | |
US4099257A (en) | Markov processor for context encoding from given characters and for character decoding from given contexts | |
US5594435A (en) | Permutation-based data compression | |
JPS6356726B2 (ja) | ||
CN109495211A (zh) | 一种信道编码和解码方法 | |
JPH08167852A (ja) | データ圧縮方法及び装置 | |
JPH04280517A (ja) | データ圧縮および復元方式 | |
US6573847B1 (en) | Multi-table mapping for huffman code decoding | |
US20030052802A1 (en) | Method and apparatus for huffman decoding technique | |
CN114614832A (zh) | 基于前后游程长度编码的测试数据压缩及解压方法 | |
JP2940948B2 (ja) | データ圧縮方式 | |
Shanmugasundaram et al. | Text preprocessing using enhanced intelligent dictionary based encoding (EIDBE) | |
JP3105598B2 (ja) | ユニバーサル符号を用いたデータ圧縮方式 | |
JP3241787B2 (ja) | データ圧縮方式 | |
JP2590287B2 (ja) | データ圧縮方法およびデータ圧縮装置 | |
Howard et al. | Parallel lossless image compression using Huffman and arithmetic coding | |
JPH0628149A (ja) | 複数種類データのデータ圧縮方法 | |
JP2823917B2 (ja) | データ圧縮方式 | |
JP3100206B2 (ja) | データ圧縮方法 | |
JPH0527943A (ja) | データ圧縮方式 | |
JPH06168097A (ja) | データ符号化方式及びデータ復元方式 | |
JPH06202844A (ja) | データ圧縮復元処理装置 | |
JPH1155125A (ja) | 文字データの圧縮・復元方法 | |
JPH07221652A (ja) | データ圧縮方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19980514 |