JPH0253329A - 圧縮符号化方法及び復号方法 - Google Patents
圧縮符号化方法及び復号方法Info
- Publication number
- JPH0253329A JPH0253329A JP1124579A JP12457989A JPH0253329A JP H0253329 A JPH0253329 A JP H0253329A JP 1124579 A JP1124579 A JP 1124579A JP 12457989 A JP12457989 A JP 12457989A JP H0253329 A JPH0253329 A JP H0253329A
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- register
- contents
- source data
- data string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 40
- 230000001186 cumulative effect Effects 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 10
- 238000007906 compression Methods 0.000 claims description 10
- 230000001133 acceleration Effects 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002655 kraft paper Substances 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 239000000123 paper Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、ソース・データ・ストリングの圧縮表現の生
成方法に関する。本発明は、特に、高能率の乗算なしの
算術符号化に関する。算術符号化は、データ処理システ
ムでデータを圧縮するのによく用いられる技術である。
成方法に関する。本発明は、特に、高能率の乗算なしの
算術符号化に関する。算術符号化は、データ処理システ
ムでデータを圧縮するのによく用いられる技術である。
B、従来技術及びその問題点
かかる圧縮は、普通、大規模データ・ベースを特徴づけ
るシンボルに関連する、高度の相関関係を持ち非一様で
ある統計分布によって可能とされる。ソース・データが
デジタル形式で表現されるとき、圧縮の目的は、2オリ
ジナルのソース・データ・ストリングよりもデータ、ビ
ット数の少ないデータ・ストリングを出力することにあ
る。統計的に有意なソース・データ・ストリングのサン
プルが圧縮されるとき、圧縮出力データ・ストリングの
予想長さは、ソース・データ・ストリングの°“エント
ロピー°゛に対応する。
るシンボルに関連する、高度の相関関係を持ち非一様で
ある統計分布によって可能とされる。ソース・データが
デジタル形式で表現されるとき、圧縮の目的は、2オリ
ジナルのソース・データ・ストリングよりもデータ、ビ
ット数の少ないデータ・ストリングを出力することにあ
る。統計的に有意なソース・データ・ストリングのサン
プルが圧縮されるとき、圧縮出力データ・ストリングの
予想長さは、ソース・データ・ストリングの°“エント
ロピー°゛に対応する。
ソース・データの圧縮方法の1例として、算術符号器が
R15sanenによって開発され、それはまず下記の
論文で発表された。
R15sanenによって開発され、それはまず下記の
論文で発表された。
”Generalized Kraft Inequa
lity ArithmeticCoding 、 I
BM Journal of Re5earch an
dDevelopment、 Volume 20+
Na3 、1976年5月R15sanen?こよって
紹介された算術符号化法によれば、マルチ・アルファベ
ット・データ、つまり各シンボルがマルチ・シンボル・
アルファベットの中で見い出せるようなデータの圧縮が
可能となる。
lity ArithmeticCoding 、 I
BM Journal of Re5earch an
dDevelopment、 Volume 20+
Na3 、1976年5月R15sanen?こよって
紹介された算術符号化法によれば、マルチ・アルファベ
ット・データ、つまり各シンボルがマルチ・シンボル・
アルファベットの中で見い出せるようなデータの圧縮が
可能となる。
算術符号化法を採用するためには、まずソース・アルフ
ァベットの中の各シンボルの発生確率を決定することが
必要である。普通、ソース・データ・ストリング毎に確
率は変化する。したがって、テレビ・イメージに相当す
るデータを圧縮するのに算術符号化法が用いられる場合
、まず各画素の発生確率が決定されねばならない。この
決定はリアル・タイムで行われることもあるし、統計的
に予定されることもある。しかしながら、確率の決定法
は本発明の特徴とは関係ない。本発明は、確率の決定法
に関係なく、等しく適用可能である。
ァベットの中の各シンボルの発生確率を決定することが
必要である。普通、ソース・データ・ストリング毎に確
率は変化する。したがって、テレビ・イメージに相当す
るデータを圧縮するのに算術符号化法が用いられる場合
、まず各画素の発生確率が決定されねばならない。この
決定はリアル・タイムで行われることもあるし、統計的
に予定されることもある。しかしながら、確率の決定法
は本発明の特徴とは関係ない。本発明は、確率の決定法
に関係なく、等しく適用可能である。
ソース・アルファベット内の各シンボルの発生確率を決
定した後、各シンボルの累積確率が決定されよう。した
がって、データ・ストリングの第1番目のシンボルにつ
いての累積゛確率5(1)は−iにゼロに等しい。また
、第11番目のシンボルについての累積確率は、先行す
る(n−1)個のシンボルの各々の発生確率の和に等し
くなる。
定した後、各シンボルの累積確率が決定されよう。した
がって、データ・ストリングの第1番目のシンボルにつ
いての累積゛確率5(1)は−iにゼロに等しい。また
、第11番目のシンボルについての累積確率は、先行す
る(n−1)個のシンボルの各々の発生確率の和に等し
くなる。
算術符号化法では、普通、出力データ・ストリングは、
単位区間(0,1)の中の2進少数として表現される。
単位区間(0,1)の中の2進少数として表現される。
Langdon Jr、が”An Introduct
ionto Arithmetic Coding 、
IBM Journal ofResearch a
nd Development、 Volume 2B
、N0、2 、 1984年3月、で説明しているよう
に、算術符号化は該単位区間の細分割に関係している。
ionto Arithmetic Coding 、
IBM Journal ofResearch a
nd Development、 Volume 2B
、N0、2 、 1984年3月、で説明しているよう
に、算術符号化は該単位区間の細分割に関係している。
この細分割は、ソース・アルファベット内のシンボルご
とに、単位区間中にコード・ポイントC,,をマークす
ることによって達成される。コード・ポイントの各々は
、先行シンボルの発生確率の和に等しい。各コード・ポ
イントの右側の小区間Anの巾の大きさは、対応するシ
ンボルまでのソース・データ・ストリングの発生確率を
表現する(第3図参照)。
とに、単位区間中にコード・ポイントC,,をマークす
ることによって達成される。コード・ポイントの各々は
、先行シンボルの発生確率の和に等しい。各コード・ポ
イントの右側の小区間Anの巾の大きさは、対応するシ
ンボルまでのソース・データ・ストリングの発生確率を
表現する(第3図参照)。
例えば、そのアルファベットがaiからaffiまでの
シンボルからなり、シンボルの発生確率がそれぞれp
(0)、・・・、p (m)に等しいソース・データ・
ストリングを考えてみよう。ソース・データ・ストリン
グがaiaS ai・・・・・・であるなら、第1シン
ボルa0は部分区間〔0、p(0))の範囲内で符号化
される。これは、巾A1がシンボルa0の発生確率に単
純に相当するp(0)に等しい、元の単位区間内の第1
小区間を表現している。ソース・データ・ストリングの
第2シンボルを符号化するためには、シンボルa0の発
生確率を条件とするaiの発生確率が決定されねばなら
ない。さらに、第2シンボルaiに関連する累積確率を
計算しなければならない。かくして、第2シンボルai
に対応する小区間は、aoに対応する第1部分区間内に
ある第2小区間となる。数学的には、第2部分区間の巾
A2はp (0) *p(5)つまり、2つのシンボル
a0、asの発生確率の積に等しい。単位区間内にある
第2小区間の出発点は、第1小区間の巾AIと第2シン
ボルaiに関連する累積確率5(5)に依存する。つま
り、それらの積A、*S (5)に等しい。このように
、ソース・データ・ストリングの各シンボルが単位区間
の中で相次いで符号化されていくにつれて、部分区間も
相次いで生成され、その各々が特定のコード・ポイント
と幅によって特定され得る。現在の部分区間についての
コード・ポイントは、従前の区間又は部分区間の範囲内
の、現在の部分区間に対応する。上述のように、これは
現在シンボルに関連する累積確率に等しい。したがって
、第n番目の部分区間に関連するコード・ポイントは、
第(n−1)番目の部分区間の幅に先行する(n−1)
個のシンボルの累積確率を掛けたもの、つまりA、S
(n)に等しい。新しい部分区間の幅は、ソース・デー
タ・ストリングについてそれまで符号化されたすべての
シンボルの確率の積、つまりp (0) *p (5)
*p (3)に等しい。幅A7と第n部分区間のコー
ド・ポイントC7に対応するデータによって、ソース・
データ・ストリング中の最初から(n+1)個目までの
シンボルが符号化される。したがって、算術符号器はこ
れらのデータを記憶するのに2つのメモリ・レジスタを
必要とし、それらは通常それぞれAレジスタ、Cレジス
タと呼ばれる。
シンボルからなり、シンボルの発生確率がそれぞれp
(0)、・・・、p (m)に等しいソース・データ・
ストリングを考えてみよう。ソース・データ・ストリン
グがaiaS ai・・・・・・であるなら、第1シン
ボルa0は部分区間〔0、p(0))の範囲内で符号化
される。これは、巾A1がシンボルa0の発生確率に単
純に相当するp(0)に等しい、元の単位区間内の第1
小区間を表現している。ソース・データ・ストリングの
第2シンボルを符号化するためには、シンボルa0の発
生確率を条件とするaiの発生確率が決定されねばなら
ない。さらに、第2シンボルaiに関連する累積確率を
計算しなければならない。かくして、第2シンボルai
に対応する小区間は、aoに対応する第1部分区間内に
ある第2小区間となる。数学的には、第2部分区間の巾
A2はp (0) *p(5)つまり、2つのシンボル
a0、asの発生確率の積に等しい。単位区間内にある
第2小区間の出発点は、第1小区間の巾AIと第2シン
ボルaiに関連する累積確率5(5)に依存する。つま
り、それらの積A、*S (5)に等しい。このように
、ソース・データ・ストリングの各シンボルが単位区間
の中で相次いで符号化されていくにつれて、部分区間も
相次いで生成され、その各々が特定のコード・ポイント
と幅によって特定され得る。現在の部分区間についての
コード・ポイントは、従前の区間又は部分区間の範囲内
の、現在の部分区間に対応する。上述のように、これは
現在シンボルに関連する累積確率に等しい。したがって
、第n番目の部分区間に関連するコード・ポイントは、
第(n−1)番目の部分区間の幅に先行する(n−1)
個のシンボルの累積確率を掛けたもの、つまりA、S
(n)に等しい。新しい部分区間の幅は、ソース・デー
タ・ストリングについてそれまで符号化されたすべての
シンボルの確率の積、つまりp (0) *p (5)
*p (3)に等しい。幅A7と第n部分区間のコー
ド・ポイントC7に対応するデータによって、ソース・
データ・ストリング中の最初から(n+1)個目までの
シンボルが符号化される。したがって、算術符号器はこ
れらのデータを記憶するのに2つのメモリ・レジスタを
必要とし、それらは通常それぞれAレジスタ、Cレジス
タと呼ばれる。
部分区間の幅は確率の積に等しいのであるから、2つの
ファクタが浮かび上がってくる。まず、符号化されるソ
ース・データ・ストリングのシンボル数が多くなればな
るほど、算術符号表現を規定する部分区間の幅は減少す
る。(というのは、個々の確率は必ず1より小さくなけ
ればならないからである)。さらに、算術符号化を効率
よくインプリメントするには、そのプロセスにおいて乗
算を繰り返さなければならない。
ファクタが浮かび上がってくる。まず、符号化されるソ
ース・データ・ストリングのシンボル数が多くなればな
るほど、算術符号表現を規定する部分区間の幅は減少す
る。(というのは、個々の確率は必ず1より小さくなけ
ればならないからである)。さらに、算術符号化を効率
よくインプリメントするには、そのプロセスにおいて乗
算を繰り返さなければならない。
データ・ストリングを構成するシンボルの正確な発生確
率に基づくとき、算術符号器はソース・データ・ストリ
ングのエントロピーに相等する最適な圧縮結果を生成す
る。しかし、従来の実際のインプリメンテーションでは
、確率を正確に決定することの困難さ故に、近似を導入
しがちであった。その結果、算術符号演算の効率が低下
し、出力データ・ストリングに含まれるシンボル数が理
論的な最低限(エントロピー)を上回ってしまう。
率に基づくとき、算術符号器はソース・データ・ストリ
ングのエントロピーに相等する最適な圧縮結果を生成す
る。しかし、従来の実際のインプリメンテーションでは
、確率を正確に決定することの困難さ故に、近似を導入
しがちであった。その結果、算術符号演算の効率が低下
し、出力データ・ストリングに含まれるシンボル数が理
論的な最低限(エントロピー)を上回ってしまう。
さらに、部分区間の幅を決める度に必要とされる乗算を
なくするために、さらなる近似が導入されてきている。
なくするために、さらなる近似が導入されてきている。
算術符号器は、メモリ・レジスタのビット数が有限であ
るようなコンピュータでインプリメントされる。乗算に
関連する問題の1つは、確率の乗算を続けていけばいく
ほどより小さな区間が生成されるので、そのような乗算
をわずか数回やった後には、その結果体じた部分区間が
小さすぎてコンピュータ・レジスタに満足にストアでき
ない、という事実に起因する。例えば、各レジスタが1
6ビツトであるときに、、確率の乗算を繰り返した結果
、積が1−1′より小さくなったならば、積はレジスタ
をアンダーフローしてしまう。言い換えると、レジスタ
はゼロで満たされ、確率積の有意なビットは失われてし
まう。一連の乗算に伴う別の問題は、実行に要する時間
である。
るようなコンピュータでインプリメントされる。乗算に
関連する問題の1つは、確率の乗算を続けていけばいく
ほどより小さな区間が生成されるので、そのような乗算
をわずか数回やった後には、その結果体じた部分区間が
小さすぎてコンピュータ・レジスタに満足にストアでき
ない、という事実に起因する。例えば、各レジスタが1
6ビツトであるときに、、確率の乗算を繰り返した結果
、積が1−1′より小さくなったならば、積はレジスタ
をアンダーフローしてしまう。言い換えると、レジスタ
はゼロで満たされ、確率積の有意なビットは失われてし
まう。一連の乗算に伴う別の問題は、実行に要する時間
である。
上記第1の問題点は、正規化(normalizaii
on)と呼ばれる技術によって解決された。この技術で
は、確率積は浮動小数点表記でストアされる。これを実
行するべ(、別のビット・レジスタが用いられ、部分区
間の幅に対応する(2を基数とする)指数をストアする
。そのとき、2進小数の最も桁の高い1は最も左の位置
ヘシフトされる。したがって、明らかに16ビツト・レ
ジスタにストアできない1.0101 X2−”°なる
2進小数であっても、1゜0LOLE−20として満足
にストアできる。ここで仮数と指数は別個のレジスタに
ストアされる。仮数のMSBはこのように常に1となる
ように配置されるので、仮数レジスタにストアされる実
際の数は常に1.0より大きい。
on)と呼ばれる技術によって解決された。この技術で
は、確率積は浮動小数点表記でストアされる。これを実
行するべ(、別のビット・レジスタが用いられ、部分区
間の幅に対応する(2を基数とする)指数をストアする
。そのとき、2進小数の最も桁の高い1は最も左の位置
ヘシフトされる。したがって、明らかに16ビツト・レ
ジスタにストアできない1.0101 X2−”°なる
2進小数であっても、1゜0LOLE−20として満足
にストアできる。ここで仮数と指数は別個のレジスタに
ストアされる。仮数のMSBはこのように常に1となる
ように配置されるので、仮数レジスタにストアされる実
際の数は常に1.0より大きい。
上記第2の問題点(乗算実行時間)は、いわゆる「乗算
なし」の算術符号器によっである程度解決された。2進
算法を用いるコンピュータでは、乗算はシフトと加算オ
ペレーションの繰り返しとしてインプリメントされる。
なし」の算術符号器によっである程度解決された。2進
算法を用いるコンピュータでは、乗算はシフトと加算オ
ペレーションの繰り返しとしてインプリメントされる。
「乗算なし」という言葉は、従来、様々に用いられてお
り、各符号化ステップについてのシングル・シフト、ま
たはシングル・シフト・アンド・アト・オペレーション
のどちらかを意味してきた。厳密に言うと、数学的には
シングル・シフト演算も乗算をしたことに変わりはない
。しかしながら、多数のシフトと加算演算を伴う厳密な
算術符号器のインプリメンテーションに関連する乗算に
比べて、このやり方では費す時間がはるかに少なくなる
。したがって、「乗算なし」なる語は、しばしば乗算が
大幅に簡素化された、あるいは減少した、という意味に
用いられる。従来技術、及び本発明において「乗算なし
」なる語が用いられるのは、このような文脈においてで
ある。
り、各符号化ステップについてのシングル・シフト、ま
たはシングル・シフト・アンド・アト・オペレーション
のどちらかを意味してきた。厳密に言うと、数学的には
シングル・シフト演算も乗算をしたことに変わりはない
。しかしながら、多数のシフトと加算演算を伴う厳密な
算術符号器のインプリメンテーションに関連する乗算に
比べて、このやり方では費す時間がはるかに少なくなる
。したがって、「乗算なし」なる語は、しばしば乗算が
大幅に簡素化された、あるいは減少した、という意味に
用いられる。従来技術、及び本発明において「乗算なし
」なる語が用いられるのは、このような文脈においてで
ある。
米国特許第4286256号明細書では、演算の数を減
らした算術符号化の方法及び装置が開示されている。そ
の特許発明によれば、現在のコード・ポイントを符号化
するのに先立って、部分区間の幅に対応する内部積の1
つを切捨てることによって乗算を簡略化している。しか
しながら、この方法は2進ソース(つまり、シンボルを
2つだけ持つアルファベット)にしか適さない。つまり
、この方法は、ソース・データ・ストリングの各シンボ
ルを、確率の高い事象または低い事象のどちらかとして
符号化することはできるけれども、マルチ・アルファベ
ット・コードには適さない。
らした算術符号化の方法及び装置が開示されている。そ
の特許発明によれば、現在のコード・ポイントを符号化
するのに先立って、部分区間の幅に対応する内部積の1
つを切捨てることによって乗算を簡略化している。しか
しながら、この方法は2進ソース(つまり、シンボルを
2つだけ持つアルファベット)にしか適さない。つまり
、この方法は、ソース・データ・ストリングの各シンボ
ルを、確率の高い事象または低い事象のどちらかとして
符号化することはできるけれども、マルチ・アルファベ
ット・コードには適さない。
米国特許4652856号明細書では、乗算なしのマル
チ・アルファベット算術符号が開示されている。そこで
は、部分区間の各々が上述のような浮動小数点形式でス
トアされる。そして、Aレジスタに収められる仮数は、
0.1より大きな2進小数とされる。該明細書で提唱さ
れる近似方法によれば、可変の基準を採用して、部分区
画の仮数を(2進の)0.1に正確に切り捨てるか、も
しくは1に切り上げる(round up)かのどちら
かを行わせる。
チ・アルファベット算術符号が開示されている。そこで
は、部分区間の各々が上述のような浮動小数点形式でス
トアされる。そして、Aレジスタに収められる仮数は、
0.1より大きな2進小数とされる。該明細書で提唱さ
れる近似方法によれば、可変の基準を採用して、部分区
画の仮数を(2進の)0.1に正確に切り捨てるか、も
しくは1に切り上げる(round up)かのどちら
かを行わせる。
このような近似を使ってもなお所望の圧縮を達成できる
けれども、効率の点ではロスがある。換言すると、圧縮
データ・ストリングを表現するために、最低限のビット
数より多くのビット数が必要とされる。このような非能
率は、圧縮対象のソース・データの性質に依存する。
けれども、効率の点ではロスがある。換言すると、圧縮
データ・ストリングを表現するために、最低限のビット
数より多くのビット数が必要とされる。このような非能
率は、圧縮対象のソース・データの性質に依存する。
上記米国特許4652856号の発明の大きな問題点は
、Aレジスタの内容を切り上げることによって該当する
シンボルの確率が現実の値よりも大きな値に近似される
ことに起因する。アルファベットのすべてのシンボルに
ついての確率の和が1.0を越えられないことを確実に
するために、上記特許発明では、最後の部分区間を次の
ように近似する。
、Aレジスタの内容を切り上げることによって該当する
シンボルの確率が現実の値よりも大きな値に近似される
ことに起因する。アルファベットのすべてのシンボルに
ついての確率の和が1.0を越えられないことを確実に
するために、上記特許発明では、最後の部分区間を次の
ように近似する。
この近似(概算)によれば、アルファベットのすべての
シンボルの確率の和が1に等しいことが保証されるけれ
ども、これは、最後の部分区間を非常に小さなものとし
てしまい、符号化の能率が非常に悪くなるという犠牲を
伴う。
シンボルの確率の和が1に等しいことが保証されるけれ
ども、これは、最後の部分区間を非常に小さなものとし
てしまい、符号化の能率が非常に悪くなるという犠牲を
伴う。
C9問題点を解決するための手段
本発明の目的は、上記従来技術に関連する問題点を大幅
に減少させ、あるいは除去する、高効率で乗算なしの算
術符号化法を提供することにある。
に減少させ、あるいは除去する、高効率で乗算なしの算
術符号化法を提供することにある。
本発明によれば、ソース・データ・ストリングの圧縮表
現R(comp)を生成する方法が提供される。
現R(comp)を生成する方法が提供される。
該方法の内容は以下に示すとおりである。
各シンボルは、(m+1)個のシンボルaOS・・・、
aiからなる有限のセットから取り出される。
aiからなる有限のセットから取り出される。
上記圧縮表現は所定の範囲の数値であり、ストリング中
の相次ぐシンボルに対応する相次ぐサイクルにおいて帰
納的に生成される。
の相次ぐシンボルに対応する相次ぐサイクルにおいて帰
納的に生成される。
各シンボルaiについて、確率値p(1)と累積確率値
S (1)がアベイラブルである。
S (1)がアベイラブルである。
ここで、上記累積確率値は、
S (1) =p (0) +p (1)
+・・・・・・+p (i−1) (i=1、・・
・、m)S(0)=0 である。
+・・・・・・+p (i−1) (i=1、・・
・、m)S(0)=0 である。
一対のシフト・レジスタA及びCが用いられる。
それぞれ、2進デイジット6個分の位置を有している。
特に、本発明の特徴は、以下の点にある。
(a)まず、Cレジスタの内容をすべてゼロにセットす
るとともに、Aレジスタの内容を所定の値にセットする
。
るとともに、Aレジスタの内容を所定の値にセットする
。
次に、ストリングの相次ぐシンボルaiごとに、(b)
Aレジスタの内容を取り出し、所定の基準に照らして該
基準を下回る下位の゛1°゛ビットを削除する(切り捨
てる)ことによって、スケーリング・ファクタにを決定
し、 (c)K*5(1)の値をCレジスタの内容に加算し、 (d) (d1)シンボルaiがシンボルaiでないな
らば、値に*p (1)をAレジスタに挿入し、(d2
)シンボルaiがシンボルallならば、値に+3 (
1)をAレジスタから引き算することにより、Aレジス
タの内容を決定し、(e)Aレジスタの内容が所定の範
囲内に来るまで、AレジスタとCレジスタを両方とも所
定の向きにシフトし、空いた位置にはゼロを充填し、(
f)シンボルaiがストリングSTRの最終シンボルで
ないならば、ステップ(b)ないし(e)を繰り返し、
シンボルaiがストリングSTRの最終シンボルならば
、Cレジスタの内容を上記所定の向きにW位置だけシフ
トする。
Aレジスタの内容を取り出し、所定の基準に照らして該
基準を下回る下位の゛1°゛ビットを削除する(切り捨
てる)ことによって、スケーリング・ファクタにを決定
し、 (c)K*5(1)の値をCレジスタの内容に加算し、 (d) (d1)シンボルaiがシンボルaiでないな
らば、値に*p (1)をAレジスタに挿入し、(d2
)シンボルaiがシンボルallならば、値に+3 (
1)をAレジスタから引き算することにより、Aレジス
タの内容を決定し、(e)Aレジスタの内容が所定の範
囲内に来るまで、AレジスタとCレジスタを両方とも所
定の向きにシフトし、空いた位置にはゼロを充填し、(
f)シンボルaiがストリングSTRの最終シンボルで
ないならば、ステップ(b)ないし(e)を繰り返し、
シンボルaiがストリングSTRの最終シンボルならば
、Cレジスタの内容を上記所定の向きにW位置だけシフ
トする。
以上のステップを経てCレジスタから外ヘシフトされた
一連の2進デイジツトは、シンボル・ストリングSTR
の圧縮表現R(comp)を構成する。
一連の2進デイジツトは、シンボル・ストリングSTR
の圧縮表現R(comp)を構成する。
したがって、本発明によれば、ソース・データ・ストリ
ングSTR内の各シンボルが相次いで符号化されると、
その代表圧縮符号がCレジスタから外ヘシフトされ、必
要に応じて後処理に供される。普通は、圧縮されたデー
タが相次いでCレジスタから読み取られ、その後適当な
復号装置に送られる。そこで圧縮済ストリングは復号さ
れ、オリジナルのソース・データ・ストリングSTRが
再構成される。上記従来の算術符号化と同じく、本発明
法もファースト・イン・ファースト・アラ)(FIFO
)ルーチンであり、ソース・データ・ストリングSTR
中の最初のシンボルが最初に符号化される。
ングSTR内の各シンボルが相次いで符号化されると、
その代表圧縮符号がCレジスタから外ヘシフトされ、必
要に応じて後処理に供される。普通は、圧縮されたデー
タが相次いでCレジスタから読み取られ、その後適当な
復号装置に送られる。そこで圧縮済ストリングは復号さ
れ、オリジナルのソース・データ・ストリングSTRが
再構成される。上記従来の算術符号化と同じく、本発明
法もファースト・イン・ファースト・アラ)(FIFO
)ルーチンであり、ソース・データ・ストリングSTR
中の最初のシンボルが最初に符号化される。
好適な実施例では、Aレジスタは値i、 o o oに
初期設定されるとともに、圧縮後の算術符号は0と1の
間の(直をとる。
初期設定されるとともに、圧縮後の算術符号は0と1の
間の(直をとる。
ソース・データ・ストリングSTR内のシンボルの符号
化が次々に行われるので、STR中の後続シンボルにつ
いて展開された符号が、“キャリー・オーバー゛効果ゆ
えに先行シンボルについて既に生成された符号に影響を
及ぼすことがある。
化が次々に行われるので、STR中の後続シンボルにつ
いて展開された符号が、“キャリー・オーバー゛効果ゆ
えに先行シンボルについて既に生成された符号に影響を
及ぼすことがある。
このキャリー・オーバー効果は文献等で十分に知られた
ことであり、いくつかの解決策が発表されている。その
うちの何れを本発明とともに用いても差し支えない。
ことであり、いくつかの解決策が発表されている。その
うちの何れを本発明とともに用いても差し支えない。
D、実施例
第3図は、確率p (1)のテーブルと、5つのシンボ
ルa0〜a4からなるシンボル・セットについての累積
確率S (1)を、単位区間〔0、l)上にプロットし
たコード・ポイントとともに示したものである。既に説
明したように、符号化対象のシンボルaiについての確
率p (1)と累積確率S (1)に基づいて、シンボ
ル・セットに由来する相次ぐシンボルを帰納的に単位区
間内の部分区間として符号化するプロセスは、算術符号
化それ自身の特徴である。第1図は、本発明による符号
化法の流れ図である。4つの主要なステップには1から
4までの番号が付されている。その理由は、第2図を参
照することにより、後で明らかになる。
ルa0〜a4からなるシンボル・セットについての累積
確率S (1)を、単位区間〔0、l)上にプロットし
たコード・ポイントとともに示したものである。既に説
明したように、符号化対象のシンボルaiについての確
率p (1)と累積確率S (1)に基づいて、シンボ
ル・セットに由来する相次ぐシンボルを帰納的に単位区
間内の部分区間として符号化するプロセスは、算術符号
化それ自身の特徴である。第1図は、本発明による符号
化法の流れ図である。4つの主要なステップには1から
4までの番号が付されている。その理由は、第2図を参
照することにより、後で明らかになる。
スタート時点では、Cレジスタは0、 o o oに、
Aレジスタは1.000、にそれぞれセットされる。
Aレジスタは1.000、にそれぞれセットされる。
ステップ(1)では、ソース・データ・ストリングST
R中の各シンボルについて、確率p (1)及び累積確
率S (1)が決定される。これは既知のいくつかの方
法の何れかを用いて実行できる。
R中の各シンボルについて、確率p (1)及び累積確
率S (1)が決定される。これは既知のいくつかの方
法の何れかを用いて実行できる。
あるいは、固定かつ予定された確率値セットを用いるこ
ともできる。次に、ステップ(2)で示されるように、
Aレジスタの内容を取出し、2進の“′1°゛のデイジ
ットのうち上位2つまでを残して残りを切り捨てること
により、スケーリング・ファクタKが決定される。Aレ
ジスタが現在部分区間の幅を表現する一方、スケーリン
グ・ファクタには事実上現在部分区間の幅の近似である
。この幅は(2進数の)1.0000と1.1111・
・・の間に正規化される一方、スケーリング・ファクタ
には上位2つまでの“°1′″を残し他を削除して得ら
れるAレジスタの内容の近似値である。
ともできる。次に、ステップ(2)で示されるように、
Aレジスタの内容を取出し、2進の“′1°゛のデイジ
ットのうち上位2つまでを残して残りを切り捨てること
により、スケーリング・ファクタKが決定される。Aレ
ジスタが現在部分区間の幅を表現する一方、スケーリン
グ・ファクタには事実上現在部分区間の幅の近似である
。この幅は(2進数の)1.0000と1.1111・
・・の間に正規化される一方、スケーリング・ファクタ
には上位2つまでの“°1′″を残し他を削除して得ら
れるAレジスタの内容の近似値である。
以下の記載においては、(m+1)個のシンボルからな
る有限セットのシンボルを、a0、al・・・、aiと
表記する。シンボルalについての確率と累積確率は、
それぞれ、p (1)及び5(1)と表記する。したが
って、例えば、マルチ・アルファベット・シンボルの8
番目のシンボルが“hllならば、as =)1であり
、その確率はp(8)及び5(8)ということになる。
る有限セットのシンボルを、a0、al・・・、aiと
表記する。シンボルalについての確率と累積確率は、
それぞれ、p (1)及び5(1)と表記する。したが
って、例えば、マルチ・アルファベット・シンボルの8
番目のシンボルが“hllならば、as =)1であり
、その確率はp(8)及び5(8)ということになる。
ステップ(3)は、ソース・データ・ストリングSTR
の各シンボルについて、KとS (1)の積がCレジス
タに加算されるとともに、i<mならば、Aレジスタは
に*p (1)にセットされ、i=mならば、Aレジス
タの内容からに*S(m)が引き算されることを示して
いる。したがって、符号化対象のシンボルがマルチ・ア
ルファベット・シンボル中の最終シンボルに該当しない
とき、Aレジスタは単純に現在シンボルの確率とKの積
にセットされる。ここで、Kは現在部分区間の幅の近似
である。一方、符号化対象のシンボルが該アルファベッ
トの最終シンボルに該当するとき、Aレジスタの値は、
Kと該最終シンボルの累積確率との積の分だけ減らされ
る。これは、確率p (1)は近似にすぎないという事
実を埋め合わセスる。実際、マルチ・アルファベットの
すべてのシンボルについての確率の和が1に等しいこと
を保証する。このことは、以下のことから導かれる。
の各シンボルについて、KとS (1)の積がCレジス
タに加算されるとともに、i<mならば、Aレジスタは
に*p (1)にセットされ、i=mならば、Aレジス
タの内容からに*S(m)が引き算されることを示して
いる。したがって、符号化対象のシンボルがマルチ・ア
ルファベット・シンボル中の最終シンボルに該当しない
とき、Aレジスタは単純に現在シンボルの確率とKの積
にセットされる。ここで、Kは現在部分区間の幅の近似
である。一方、符号化対象のシンボルが該アルファベッ
トの最終シンボルに該当するとき、Aレジスタの値は、
Kと該最終シンボルの累積確率との積の分だけ減らされ
る。これは、確率p (1)は近似にすぎないという事
実を埋め合わセスる。実際、マルチ・アルファベットの
すべてのシンボルについての確率の和が1に等しいこと
を保証する。このことは、以下のことから導かれる。
アルファベットの第m番目のシンボルについて、A −
A −K * S (m) となる。そして、KはAの近似であるから、A −A
−A * S (m) したがって、A −A (1−S (m) )つまり、
A=A (1−p (0) −p (1)・・・
・・・・・・−p(m−1)) すなわち、A=A*p(m) これはまさに要求されるところである。
A −K * S (m) となる。そして、KはAの近似であるから、A −A
−A * S (m) したがって、A −A (1−S (m) )つまり、
A=A (1−p (0) −p (1)・・・
・・・・・・−p(m−1)) すなわち、A=A*p(m) これはまさに要求されるところである。
アルゴリズムの次のステップ(4)では、Aレジスタの
内容が所定の範囲に収まるように、Aレジスタが正規化
される。Aレジスタの内容には、適当な2の倍数が掛は
合わされる。これは、簡単なシフト・オペレーションで
もって、Aレジスタの現在の内容に応じて定まる回数分
Aレジスタを左ヘシフトすることによって達成される。
内容が所定の範囲に収まるように、Aレジスタが正規化
される。Aレジスタの内容には、適当な2の倍数が掛は
合わされる。これは、簡単なシフト・オペレーションで
もって、Aレジスタの現在の内容に応じて定まる回数分
Aレジスタを左ヘシフトすることによって達成される。
Cレジスタも同じビット数分だけ左ヘシフトされる。そ
の結果、Cレジスタの上位のビットが読み取られ、それ
はSTRについての算術符号の一部を構成することにな
る。このような手順はSTR中のすべてのシンボルにつ
いて繰り返され、それが完了したなら、その時点のCレ
ジスタの全内容が外にシフトされ、先に生成されていた
コード・ストリングと連結される。その結果できたコー
ド・ストリングは、圧縮済であるところの出力データ・
ストリングを表現している。
の結果、Cレジスタの上位のビットが読み取られ、それ
はSTRについての算術符号の一部を構成することにな
る。このような手順はSTR中のすべてのシンボルにつ
いて繰り返され、それが完了したなら、その時点のCレ
ジスタの全内容が外にシフトされ、先に生成されていた
コード・ストリングと連結される。その結果できたコー
ド・ストリングは、圧縮済であるところの出力データ・
ストリングを表現している。
本発明に従う方法によれば、STR内のシンボル毎に、
圧縮出力データ・ストリングが帰納的に生成されること
がわかろう。コードが生成されると、Cレジスタの左へ
のシフト、及びAレジスタの正規化が行われる。
圧縮出力データ・ストリングが帰納的に生成されること
がわかろう。コードが生成されると、Cレジスタの左へ
のシフト、及びAレジスタの正規化が行われる。
本発明の方法は、以下の具体例を参照することによって
、最もよく理解されよう。
、最もよく理解されよう。
例
ソース・データ・ストリングは、5シンボル・アルファ
ベットから導かれるものとする。この5シンボル・アル
ファベットは、シンボルa0・・・・・・a4から成り
、それぞれaib、c、d、eに合致するものとする。
ベットから導かれるものとする。この5シンボル・アル
ファベットは、シンボルa0・・・・・・a4から成り
、それぞれaib、c、d、eに合致するものとする。
各々の確率(2進数)は、以下の通りである。
p (0)=0.000001
p (1)=0.00001 1
p (2)=O,0OO110
P (3)=O,0O1010
p (4)=0.101100
このように、マルチ・システム・アルファベット中のシ
ンボルの数(m+1)は5に等しい。確率の合計が1に
等しい、つまり であることも確認されよう。
ンボルの数(m+1)は5に等しい。確率の合計が1に
等しい、つまり であることも確認されよう。
各シンボルについての累積確率は以下の通りである。
S (0)=O,0OOO00
S (1)=O,0O0001
S (2) =0.000100
S (3)=0.0O1010
S (4)=0.0IQ100
上述の好ましい実施例に従って、6ビツトのAレジスタ
、Cレジスタを使って、5TR=b、c、e、dS a
ic、bなるソース・データ・ストリングを符号化する
ものとしよう。
、Cレジスタを使って、5TR=b、c、e、dS a
ic、bなるソース・データ・ストリングを符号化する
ものとしよう。
次のような処理が行われる。
まず、Aレジスタが1.00000に、Cレジスタが、
o o o o o oに、それぞれ初期化される。
o o o o o oに、それぞれ初期化される。
小数点はわかっているものとするので、Aレジスタ、C
レジスタの内容は、それぞれ 100000.000000になる。
レジスタの内容は、それぞれ 100000.000000になる。
第1シンボルb(−al)の符号化:
に=1. i=1≠mp (1) =
000011 3(1) = 00000IC=
0.0+1.OxO,000001= 0.0000
01結果: 但 、000001 卜する: 00000、100000 Cレジスタの境界を意味し 小数点の左の5つの2進ビ 八 、000011 Aを正規化し、Cをシフ i、1ooo。
000011 3(1) = 00000IC=
0.0+1.OxO,000001= 0.0000
01結果: 但 、000001 卜する: 00000、100000 Cレジスタの境界を意味し 小数点の左の5つの2進ビ 八 、000011 Aを正規化し、Cをシフ i、1ooo。
ここで、小数点は、
ている。このように、
ット0OOOOは、結果め算術符号のうちの最初の5ビ
ツトがCレジスタから外ヘシフトしたことを示す一方、
小数点の右側の6個の2進ビツト100000は、Cレ
ジスタの新たな内容を意味している。ここで、A、C両
しジスタの内容については、左へのシフトに対応してゼ
ロが左詰めされる。8亥シンボルはストリングSTRの
終りではないので、処理は継続する。
ツトがCレジスタから外ヘシフトしたことを示す一方、
小数点の右側の6個の2進ビツト100000は、Cレ
ジスタの新たな内容を意味している。ここで、A、C両
しジスタの内容については、左へのシフトに対応してゼ
ロが左詰めされる。8亥シンボルはストリングSTRの
終りではないので、処理は継続する。
第2シンボルC(=a=)の符号化:
に=1.1 i=2≠mp (2)
= 00011OS (2) = 000100C=
0.100000 +1.I X0、0001=0.
10011結果: A C ,00100100000,100110Aを正規化し
、Cをシフトする: 八 旦 1.00100 00000100.110000こ
のシンボルはストリングSTRの終りではないので、処
理は継続する。
= 00011OS (2) = 000100C=
0.100000 +1.I X0、0001=0.
10011結果: A C ,00100100000,100110Aを正規化し
、Cをシフトする: 八 旦 1.00100 00000100.110000こ
のシンボルはストリングSTRの終りではないので、処
理は継続する。
第3シンボルe(=as
K=1.001
p−(4) = 110110
0i=なので、
A=1.00100−1.001
C士0.110000+1.001
C>1なので、先頭の1
を生じさせる。
結果:
)の符号化
i=4=m
S(4) = 010100
xO,01010=0.110010
x0.01010 =1.000110はキャリー・
オーバー 人 旦 、110010 00000101.000110A
を正規化し、Cをシフトする: 人 ρ 1.10010 000001010.001100
このシンボルはストリングSTRの終りではないので、
処理は継続する。
オーバー 人 旦 、110010 00000101.000110A
を正規化し、Cをシフトする: 人 ρ 1.10010 000001010.001100
このシンボルはストリングSTRの終りではないので、
処理は継続する。
第4シンボルd(=ai、)の符号化:K =1.1
i=3≠mp(3) = 0010
1O5(3) = 001010C=O,0O1100
+1.I X0、00101 =0.011011結果
二 人 旦 、001111 000001010.011011
Aを正規化し、Cをシフトする: A 旦 1.11100 000001010011.011
000このシンボルはストリングSTRの終りではない
ので、処理は継続する。
i=3≠mp(3) = 0010
1O5(3) = 001010C=O,0O1100
+1.I X0、00101 =0.011011結果
二 人 旦 、001111 000001010.011011
Aを正規化し、Cをシフトする: A 旦 1.11100 000001010011.011
000このシンボルはストリングSTRの終りではない
ので、処理は継続する。
第5シンボルa (=a0)の符号化:K −1,1
j=0≠m p (0) = 000001 3 (0) =
000000C=0.011000 + 0.0
=0.011000結果: A 旦 、00QOO1000001Q10011.011(1
00Aを正規化し、Cをシフトする: 八 〇 1.00000 0000010100110110
00.000000このシンボルはストリングSTRの
終りではないので、処理は継続する。
j=0≠m p (0) = 000001 3 (0) =
000000C=0.011000 + 0.0
=0.011000結果: A 旦 、00QOO1000001Q10011.011(1
00Aを正規化し、Cをシフトする: 八 〇 1.00000 0000010100110110
00.000000このシンボルはストリングSTRの
終りではないので、処理は継続する。
第6シンボルc (=a2)の符号化二K =1.O
i = 2≠m p (2) = 00011OS (2) = 000
100C= O,O+1.OX0、000100= 0
.000100結果: A C− ,000110000001010011011000
,00010OAを正規化し、Cをシフトする: A C 1,10000000001010011011000
0001,000000このシンボルはストリングST
Rの終りではないので、処理は継続する。
i = 2≠m p (2) = 00011OS (2) = 000
100C= O,O+1.OX0、000100= 0
.000100結果: A C− ,000110000001010011011000
,00010OAを正規化し、Cをシフトする: A C 1,10000000001010011011000
0001,000000このシンボルはストリングST
Rの終りではないので、処理は継続する。
第7シンボルb(=ai)の符号化:
K −1,1i=1≠m
p (1) = 000011 S (1) =
000001C= 0.0+ 1.IX0、0000
01= 0.000001結果: C ,000100000001010011011000
0001,000001Aを正規化し、Cをシフトする
: A C−1
,000000000010100110110000
0010000,010000これはストリングSTR
の最後のシンボルなので、Cレジスタの内容を6位置分
シフトし、下に示す完全な出力ストリングを出力する。
000001C= 0.0+ 1.IX0、0000
01= 0.000001結果: C ,000100000001010011011000
0001,000001Aを正規化し、Cをシフトする
: A C−1
,000000000010100110110000
0010000,010000これはストリングSTR
の最後のシンボルなので、Cレジスタの内容を6位置分
シフトし、下に示す完全な出力ストリングを出力する。
C=OO000101001101100000010
000010000第2図は、第1図を参照して説明し
た方法のステップ(1)〜(4)の各々について、レジ
スタ間のデータの流れを示す。符号化法のステップ(1
)では、各シンボルaiが人力ストリングから順に抽出
されるとともに、シンボルaiが入力ストリングの最終
ストリングか否かを表示すべく、フラグ′エンド′°が
生成される。シンボルaiは確率テーブルに入力される
。−二のテーブルは、そこから確率p (1)とS (
1)を導くために、コンスタントに更新されてよい。フ
ラグ”i=mも生成されて、シンボルaiがソース・ア
ルファベットの最終シンボルか否かを表示する。
000010000第2図は、第1図を参照して説明し
た方法のステップ(1)〜(4)の各々について、レジ
スタ間のデータの流れを示す。符号化法のステップ(1
)では、各シンボルaiが人力ストリングから順に抽出
されるとともに、シンボルaiが入力ストリングの最終
ストリングか否かを表示すべく、フラグ′エンド′°が
生成される。シンボルaiは確率テーブルに入力される
。−二のテーブルは、そこから確率p (1)とS (
1)を導くために、コンスタントに更新されてよい。フ
ラグ”i=mも生成されて、シンボルaiがソース・ア
ルファベットの最終シンボルか否かを表示する。
ステップ(2)では、スケーリング・ファクタにを与え
るべく、Aレジスタの内容が切り捨てられる。
るべく、Aレジスタの内容が切り捨てられる。
ステップ(3)では、p (1)とS (1)の値が、
それぞれ、ステップ(2)で求められた値にと掛は合わ
され、値に*p (1)とに*S (1)が生成される
。この乗算では、単一のシフト・アンド・アト(シフト
及び加算)・オペレーションが用いられる。K*p (
1)とに*S (1)は上述のように一次バッファにス
トアされる。値Aとに*S (1)は減算器に送られ、
A−に*p (1)なる値が出力される。同様に、値C
とに*5(1)は加算器に送られ、C+に*S (1)
なる値が出力される。減算器の出力A−に*S (1)
と値に*p (1)は、フラグ’i=m”とともに、選
択ロジック・ユニットに送られる。選択ユニットからの
出力は、i+mのとき、K*p (1)に等しく、i=
mのとき、A−に*S (1)に等しい。
それぞれ、ステップ(2)で求められた値にと掛は合わ
され、値に*p (1)とに*S (1)が生成される
。この乗算では、単一のシフト・アンド・アト(シフト
及び加算)・オペレーションが用いられる。K*p (
1)とに*S (1)は上述のように一次バッファにス
トアされる。値Aとに*S (1)は減算器に送られ、
A−に*p (1)なる値が出力される。同様に、値C
とに*5(1)は加算器に送られ、C+に*S (1)
なる値が出力される。減算器の出力A−に*S (1)
と値に*p (1)は、フラグ’i=m”とともに、選
択ロジック・ユニットに送られる。選択ユニットからの
出力は、i+mのとき、K*p (1)に等しく、i=
mのとき、A−に*S (1)に等しい。
最後に、ステップ(4)では、シフト・コントロール・
ユニットがAレジスタの内容が指定された範囲内に収ま
るまで、AとCのレジスタをシフトする。ストップ・フ
ラグが生成されると、それによってシフト・オペレーシ
ョンがストップする。。
ユニットがAレジスタの内容が指定された範囲内に収ま
るまで、AとCのレジスタをシフトする。ストップ・フ
ラグが生成されると、それによってシフト・オペレーシ
ョンがストップする。。
ステップ(1)で導かれた“エンド”′フラグはシフト
・コントロール・ユニットへ渡されるので、入力ストリ
ングの最後では、シフト・コントロール・ユニットがC
レジスタを6位置分シフトさせ(なぜなら、6ビツトの
Aレジスタ、Cレジスタを使っているから)、Cレジス
タを空にする。ストップまたはエンド・フラグに応答し
てシフト・コントロール・ユニットがCレジスタをシフ
トさせるのにつれて、Cレジスタから外ヘシフトされた
データが連結され、出力ストリングを形成する。
・コントロール・ユニットへ渡されるので、入力ストリ
ングの最後では、シフト・コントロール・ユニットがC
レジスタを6位置分シフトさせ(なぜなら、6ビツトの
Aレジスタ、Cレジスタを使っているから)、Cレジス
タを空にする。ストップまたはエンド・フラグに応答し
てシフト・コントロール・ユニットがCレジスタをシフ
トさせるのにつれて、Cレジスタから外ヘシフトされた
データが連結され、出力ストリングを形成する。
必要ならば、第1図及び上述の例を参照して説明したよ
うに、キャリー・ビットが出力ストリングに連結される
。
うに、キャリー・ビットが出力ストリングに連結される
。
上述した例では、常にAレジスタの内容が1.0から2
.0の範囲に収まるように、つまりAε〔1,2〕とな
るように、Aレジスタの正規化が行われている。しかし
、Aレジスタの正規化は、0.1と1.0(2進値)の
範囲で行われてもよいし、あるいはその範囲を適宜2の
倍数を掛けて変更できることもすぐに理解できよう。こ
のような範囲が変わっても、同じアルゴリズムを使える
。しかし、確率を適宜2の倍数で割ったり、あるいは掛
けたりすることが必要になる。さらに、上述した特定の
例では、ソース・データ・ストリングSTRの第3シン
ボルを符号化するときにキャリー・オーバーが生じる。
.0の範囲に収まるように、つまりAε〔1,2〕とな
るように、Aレジスタの正規化が行われている。しかし
、Aレジスタの正規化は、0.1と1.0(2進値)の
範囲で行われてもよいし、あるいはその範囲を適宜2の
倍数を掛けて変更できることもすぐに理解できよう。こ
のような範囲が変わっても、同じアルゴリズムを使える
。しかし、確率を適宜2の倍数で割ったり、あるいは掛
けたりすることが必要になる。さらに、上述した特定の
例では、ソース・データ・ストリングSTRの第3シン
ボルを符号化するときにキャリー・オーバーが生じる。
上記の例では、結果のコードがデコーダに送られるのは
、ソース・データ・ストリングSTRのすべてのシンボ
ルが符号化されてからである。明らかに、Cレジスタか
ら外ヘシフトされ内容を連結してストリングを形成して
ストアしておき、STR全部が符号されてから圧縮デー
タが生成されるや否やそれをリアル・タイムで転送する
ことが現実には望ましい。
、ソース・データ・ストリングSTRのすべてのシンボ
ルが符号化されてからである。明らかに、Cレジスタか
ら外ヘシフトされ内容を連結してストリングを形成して
ストアしておき、STR全部が符号されてから圧縮デー
タが生成されるや否やそれをリアル・タイムで転送する
ことが現実には望ましい。
本発明の別の実施例としては、にを生じさせる近似を改
良した修正方法がある。前記実施例のようにAレジスタ
の1のうち上位3番目以後を切り捨てる代りに、上位4
番目以後の1を切り捨てても本発明の実施は可能である
。もつとも、前記実流側の場合に比べて、シフト・アン
ド・アト・オペレーションがもう1回必要になるという
代償を伴うことになる。明らかに、このような改良は、
さらに押し進めて行くことができ、その極限ではスケー
リング・ファクタKがAレジスタの内容と全く等しくな
る。これは、近似を用いない算術符号化ということにな
る。しかしながら、上記図面を参照して説明した方゛法
によれば、Aレジスタの内容を近似しつつも、98%を
越える効率を達成できる。
良した修正方法がある。前記実施例のようにAレジスタ
の1のうち上位3番目以後を切り捨てる代りに、上位4
番目以後の1を切り捨てても本発明の実施は可能である
。もつとも、前記実流側の場合に比べて、シフト・アン
ド・アト・オペレーションがもう1回必要になるという
代償を伴うことになる。明らかに、このような改良は、
さらに押し進めて行くことができ、その極限ではスケー
リング・ファクタKがAレジスタの内容と全く等しくな
る。これは、近似を用いない算術符号化ということにな
る。しかしながら、上記図面を参照して説明した方゛法
によれば、Aレジスタの内容を近似しつつも、98%を
越える効率を達成できる。
本発明の原理に従って導かれた圧縮出力データ・ストリ
ングの復号は、実質的に符号化の逆である。したがって
、まず、Aレジスタが1(1,000・・・・・・)で
満たされ、Cレジスタは圧縮済ストリングR(comp
)の最初の6個のシンボルで満たされる。
ングの復号は、実質的に符号化の逆である。したがって
、まず、Aレジスタが1(1,000・・・・・・)で
満たされ、Cレジスタは圧縮済ストリングR(comp
)の最初の6個のシンボルで満たされる。
次に、ソース・データ・ストリングSTRが相次いで復
号されていくわけだが、その際、C≧に*5(j)とな
るjのうち、最大のものが決定される。ここで、K及び
S (j)は、符号器に関して説明したものと同じであ
る。Cは、Cレジスタの外でMSBの隣りに2進小数点
を持つ2進小数として解釈される。このようにしてjが
決定されたなら、現在シンボル、つまり現段階で出力さ
れるシンボルはajである。ここで、ao・・・ail
は、上述の定義どおりのマルチ・アルファベットである
。
号されていくわけだが、その際、C≧に*5(j)とな
るjのうち、最大のものが決定される。ここで、K及び
S (j)は、符号器に関して説明したものと同じであ
る。Cは、Cレジスタの外でMSBの隣りに2進小数点
を持つ2進小数として解釈される。このようにしてjが
決定されたなら、現在シンボル、つまり現段階で出力さ
れるシンボルはajである。ここで、ao・・・ail
は、上述の定義どおりのマルチ・アルファベットである
。
続いて、Cレジスタの内容から、K*S (j)の値が
引き算される一方、Aレジスタの内容は、j=mか否か
に従って修正される。j≠mならば、K*p (j)の
値がAレジスタに挿入される。他方、j−mならば、A
レジスタの内容からに*5(j)が引き算される。
引き算される一方、Aレジスタの内容は、j=mか否か
に従って修正される。j≠mならば、K*p (j)の
値がAレジスタに挿入される。他方、j−mならば、A
レジスタの内容からに*5(j)が引き算される。
最後に、Aレジスタの内容が、所定の範囲に収まるまで
、つまりAE (1,2)となるまで、Aレジスタ及び
Cレジスタが所定の向きにシフトされる。Aレジスタの
中の空いた位置(ビット)は、圧縮済データ・ストリン
グR(comp)の中の残りのデジットのう5ち、最上
位から数えて、空いた位置の数に該当するデジットでも
って充填される。
、つまりAE (1,2)となるまで、Aレジスタ及び
Cレジスタが所定の向きにシフトされる。Aレジスタの
中の空いた位置(ビット)は、圧縮済データ・ストリン
グR(comp)の中の残りのデジットのう5ち、最上
位から数えて、空いた位置の数に該当するデジットでも
って充填される。
R(comp)が空になるまでプロセスは繰り返され、
そして完結する。
そして完結する。
E、効果
本発明の圧縮符号化方法及び復号方法は、効率及び時間
の両方の点で優れている。
の両方の点で優れている。
第1図は、本発明による符号化法のフロー・チャートで
ある。 第2図は、第2図の方法が実行される際の、レジスタ間
でのデータの流れの説明図である。 第3図は、5つのシンボルについての確率及び累積確率
の例を示す説明図である。 出願人 インターナシヨナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) 第6図
ある。 第2図は、第2図の方法が実行される際の、レジスタ間
でのデータの流れの説明図である。 第3図は、5つのシンボルについての確率及び累積確率
の例を示す説明図である。 出願人 インターナシヨナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) 第6図
Claims (2)
- (1)(m+1)個のシンボル(mは自然数)があり、
各シンボルa_i(i=0、・・・、m)について、そ
の発生確率p(i)が与えられるとともに、S(i)=
p(0)+p(1)+・・・ ・・・+p(i−1)(i=1、・・・、m)S(0)
=0 なる式によつて累積確率S(i)が与えられているとき
に、一対の夫々Wビット分の位置を有するAレジスタ及
びCレジスタを用いて、含まれる各シンボルが上記(m
+1)個のシンボルの何れかであるソース・データ・ス
トリングを圧縮し、その際、圧縮表現は所定の範囲の数
値として生成され、かつ圧縮表現の生成は該ソース・デ
ータ・ストリングの相次ぐシンボルに対応する相次ぐサ
イクルの中で帰納的に行われる圧縮符号化方法において
、 (a)Aレジスタ及びCレジスタ中に夫々の初期内容を
与え、 ソース・データ・ストリング中のシンボルa_iについ
て (b)Aレジスタの内容を取り出し、所定の基準に照ら
して、Aレジスタに含まれる1のビットのうち該基準を
下回る下位のものを切り捨てることによつて、スケーリ
ング・ファクタKを決定し、 (c)KとS(i)の積を求めてこれをCレジスタの内
容に加算し、 (d)(d1)シンボルa_iがシンボルa_mでない
ならば、Kとp(i)の積を求めてこれをAレジスタの
新たな内容とし、または、 (d2)シンボルa_iがシンボルa_mであるならば
、KとS(i)の積を求めてこれをAレジスタの内容か
ら引き算することによつて、 Aレジスタの内容を決定し、 (e)Aレジスタの内容が所定の範囲内に収まるまで、
AレジスタとCレジスタを両方とも所定の向きにシフト
し、空いた位置にはゼロを充填し、 (f)シンボルa_iがソース・データ・ストリングの
最終シンボルでなければ、上記ステップ(b)ないし(
e)を繰り返し、シンボルa_iがソース・データ・ス
トリングの最終シンボルならば、Cレジスタの内容を上
記所定の向きにW位置だけシフトする ステップを有する圧縮符号化方法。 - (2)上記特許請求の範囲第1項の方法におけるものと
同様に定義されたシンボルa(i)、確率p(i)、累
積確率S(i)(何れもi=0、・・・、m)並びにA
レジスタ及びCレジスタがあるときに、上記特許請求の
範囲第1項記載の方法により生成されたソース・データ
・ストリングの圧縮表現を複号する方法であつて、 (a)Cレジスタの内容を上記圧縮表現の最上位から数
えてW桁までの内容に初期設定するとともに、Aレジス
タに所定の初期内容を与え、 ソース・データ・ストリング中のシンボルa_iを順次
複号すべく、 (b)Aレジスタの内容を取り出し、所定の基準に照ら
して、Aレジスタに含まれる1のビットのうち該基準を
下回る下位のものを切り捨てることによつて、スケーリ
ング・ファクタにを決定し、 (c)C≧K*S(j)となるようなjのうちの最大の
ものを求め、a_jをもつて現段階で出力されるシンボ
ルとなし、 (d)(d1)シンボルa_jがシンボルa_mでない
ならば、Kとp(j)の積を求めてこれをAレジスタの
新たな内容とし、または、 (d2)シンボルa_jがシンボルa_mであるならば
、KとS(j)の積を求めてこれをAレジスタの内容か
ら引き算することによつて、 Aレジスタの内容を決定し、 (e)KとS(j)の積を求めてこれをCレジスタの内
容から引き算し、 (f)Aレジスタの内容が所定の範囲に収まるまで、A
レジスタとCレジスタを両方とも所定の向きにシフトし
、Aレジスタの空いた位置にはゼロを充填するとともに
、Cレジスタの空いた位置には、上記圧縮表現の未処理
部分の内容を、その最上位の桁から空いた位置の数と同
じ桁数だけ取り出して充填し、上記圧縮表現の未処理部
分がなくなるまで、上記ステップ(b)ないし(f)を
繰り返す ステップを有する、復号方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IL86993A IL86993A (en) | 1988-07-05 | 1988-07-05 | Method of generating a compressed representation of a source data string |
| IL86993 | 1988-07-05 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0253329A true JPH0253329A (ja) | 1990-02-22 |
| JPH0744462B2 JPH0744462B2 (ja) | 1995-05-15 |
Family
ID=11059020
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1124579A Expired - Lifetime JPH0744462B2 (ja) | 1988-07-05 | 1989-05-19 | 圧縮符号化方法及び復号方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US4989000A (ja) |
| EP (1) | EP0350439B1 (ja) |
| JP (1) | JPH0744462B2 (ja) |
| DE (1) | DE68926270T2 (ja) |
| IL (1) | IL86993A (ja) |
| SG (1) | SG45378A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07221653A (ja) * | 1994-01-03 | 1995-08-18 | Internatl Business Mach Corp <Ibm> | 高速復号算術符号化装置 |
Families Citing this family (35)
| 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 |
| DE4122169A1 (de) * | 1991-07-04 | 1993-01-07 | Bosch Gmbh Robert | Einrichtung zur redundanzvermindernden codierung |
| KR950013404B1 (ko) * | 1991-11-15 | 1995-11-08 | 미쯔비시덴끼 가부시끼가이샤 | 부호전송장치 |
| FR2703483B1 (fr) * | 1993-03-29 | 1995-06-02 | Digital Equipment Int | Dispositif de mise à jour de la valeur de code dans la méthode du codage arithmétique. |
| FR2703482B1 (fr) * | 1993-03-29 | 1995-06-02 | Digital Equipment Int | Procédé de mise à jour de la taille de l'intervalle dans la méthode du codage arithmétique. |
| US5418532A (en) * | 1993-05-13 | 1995-05-23 | Bell Communications Research, Inc. | Method and system for efficient, multiplication-free arithmetic coding |
| US5572207A (en) * | 1994-09-23 | 1996-11-05 | International Business Machines Corporation | Method and apparatus for numeric-to-string conversion |
| JP3302210B2 (ja) * | 1995-02-10 | 2002-07-15 | 富士通株式会社 | データ符号化/復号化方法及び装置 |
| US5587710A (en) * | 1995-03-24 | 1996-12-24 | National Semiconductor Corporation | Syntax based arithmetic coder and decoder |
| JP3367370B2 (ja) * | 1997-03-14 | 2003-01-14 | 三菱電機株式会社 | 適応符号化方法 |
| US6081213A (en) * | 1997-03-26 | 2000-06-27 | Sony Corporation | Method and apparatus for arithmetic coding, method and apparatus for arithmetic decoding, and storage medium |
| US5808572A (en) * | 1997-05-22 | 1998-09-15 | National Science Council | Method and apparatus for finite-length arithmetic coding |
| US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
| CN1249473A (zh) * | 1998-09-30 | 2000-04-05 | 朗迅科技公司 | 无乘法的算术编码 |
| US6318156B1 (en) * | 1999-10-28 | 2001-11-20 | Micro Motion, Inc. | Multiphase flow measurement system |
| US20060143249A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US20050015608A1 (en) | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
| US20060143253A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US20060173848A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US20060143237A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US7844579B2 (en) * | 2000-03-09 | 2010-11-30 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US20060143199A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US6879988B2 (en) * | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
| US20060155788A1 (en) * | 2000-03-09 | 2006-07-13 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US20060173847A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US20060143180A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
| US7161507B2 (en) * | 2004-08-20 | 2007-01-09 | 1St Works Corporation | Fast, practically optimal entropy coding |
| US7265691B2 (en) * | 2005-06-23 | 2007-09-04 | 1Stworks Corporation | Modeling for enumerative encoding |
| WO2007065352A1 (fr) * | 2005-12-05 | 2007-06-14 | Huawei Technologies Co., Ltd. | Procede et appareil permettant d'effectuer un codage/decodage arithmetique |
| US8321326B2 (en) | 2009-09-15 | 2012-11-27 | Auerbach Group Llc | Method and system for enhancing the efficiency of a digitally communicated data exchange |
| US8380305B2 (en) * | 2010-07-01 | 2013-02-19 | DynaDx Corporation | System and method for predicting successful defibrillation for ventricular fibrillation cardiac arrest |
| US8779950B2 (en) | 2012-03-05 | 2014-07-15 | Dcba, Llc | Command encoded data compression |
| US10499074B2 (en) | 2017-01-09 | 2019-12-03 | Qualcomm Incorporated | Binary arithmetic coding with small tables or short-operand multiplications for video coding |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4122440A (en) * | 1977-03-04 | 1978-10-24 | International Business Machines Corporation | Method and means for arithmetic string coding |
| US4286256A (en) * | 1979-11-28 | 1981-08-25 | International Business Machines Corporation | Method and means for arithmetic coding utilizing a reduced number of operations |
| US4467317A (en) * | 1981-03-30 | 1984-08-21 | International Business Machines Corporation | High-speed arithmetic compression coding using concurrent value updating |
| US4516246A (en) * | 1982-02-26 | 1985-05-07 | Prentice Corporation | Data compression system |
| US4791403A (en) * | 1985-12-04 | 1988-12-13 | International Business Machines Corporation | Log encoder/decorder system |
| US4652856A (en) * | 1986-02-04 | 1987-03-24 | International Business Machines Corporation | Multiplication-free multi-alphabet arithmetic code |
-
1988
- 1988-07-05 IL IL86993A patent/IL86993A/xx not_active IP Right Cessation
-
1989
- 1989-05-19 JP JP1124579A patent/JPH0744462B2/ja not_active Expired - Lifetime
- 1989-06-08 SG SG1996005250A patent/SG45378A1/en unknown
- 1989-06-08 DE DE68926270T patent/DE68926270T2/de not_active Expired - Fee Related
- 1989-06-08 EP EP89810437A patent/EP0350439B1/en not_active Expired - Lifetime
- 1989-06-19 US US07/368,473 patent/US4989000A/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07221653A (ja) * | 1994-01-03 | 1995-08-18 | Internatl Business Mach Corp <Ibm> | 高速復号算術符号化装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| IL86993A0 (en) | 1988-12-30 |
| IL86993A (en) | 1991-07-18 |
| JPH0744462B2 (ja) | 1995-05-15 |
| DE68926270T2 (de) | 1996-10-10 |
| SG45378A1 (en) | 1998-01-16 |
| EP0350439A2 (en) | 1990-01-10 |
| DE68926270D1 (de) | 1996-05-23 |
| US4989000A (en) | 1991-01-29 |
| EP0350439A3 (en) | 1992-01-15 |
| EP0350439B1 (en) | 1996-04-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0253329A (ja) | 圧縮符号化方法及び復号方法 | |
| EP0231736B1 (en) | Method and apparatus for arithmetic compression coding of binary numbers | |
| US5546080A (en) | Order-preserving, fast-decoding arithmetic coding arithmetic coding and compression method and apparatus | |
| US4905297A (en) | Arithmetic coding encoder and decoder system | |
| RU2125765C1 (ru) | Способ и устройство сжатия символов, стохастический кодер (варианты) | |
| US4286256A (en) | Method and means for arithmetic coding utilizing a reduced number of operations | |
| Witten et al. | Arithmetic coding for data compression | |
| US7161507B2 (en) | Fast, practically optimal entropy coding | |
| CN110291793B (zh) | 上下文自适应二进制算术编解码中范围推导的方法和装置 | |
| CN105451027A (zh) | 数据压缩 | |
| US11115049B1 (en) | Hardware friendly data decompression | |
| US4791403A (en) | Log encoder/decorder system | |
| KR20010012832A (ko) | 정보신호의 연산 인코딩 및 디코딩 | |
| CN1426629A (zh) | 使用多个编码器的优化无损压缩的方法和装置 | |
| Nikara et al. | Multiple-symbol parallel decoding for variable length codes | |
| EP0260461B1 (en) | Arithmetic coding encoding and decoding method | |
| Said et al. | Arithmetic coding | |
| US11184023B1 (en) | Hardware friendly data compression | |
| US11115050B1 (en) | Hardware friendly data decompression | |
| Lin et al. | Parallelization of context-based adaptive binary arithmetic coders | |
| KR100207428B1 (ko) | 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법 | |
| CN113346913A (zh) | 使用减量的出现次数的数据压缩 | |
| JP2004128619A (ja) | 符号化方法 | |
| Ryabko et al. | Comparative analysis of the efficiency of entropy codes and recommendations for their use | |
| EP0225488A2 (en) | Log encoding/decoding method |