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
Application number
JP1124579A
Other languages
English (en)
Other versions
JPH0744462B2 (ja
Inventor
Dan S Chevion
ダン・シミユエル・ケーヴイオン
Ehud D Karnin
エフド・ドヴ・カルニン
Eugeniusz Walach
ユーゲニウス・ワラク
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0253329A publication Critical patent/JPH0253329A/ja
Publication of JPH0744462B2 publication Critical patent/JPH0744462B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion 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オリ
ジナルのソース・データ・ストリングよりもデータ、ビ
ット数の少ないデータ・ストリングを出力することにあ
る。統計的に有意なソース・データ・ストリングのサン
プルが圧縮されるとき、圧縮出力データ・ストリングの
予想長さは、ソース・データ・ストリングの°“エント
ロピー°゛に対応する。
ソース・データの圧縮方法の1例として、算術符号器が
R15sanenによって開発され、それはまず下記の
論文で発表された。
”Generalized Kraft Inequa
lity ArithmeticCoding 、 I
BM Journal of Re5earch an
dDevelopment、 Volume 20+ 
Na3 、1976年5月R15sanen?こよって
紹介された算術符号化法によれば、マルチ・アルファベ
ット・データ、つまり各シンボルがマルチ・シンボル・
アルファベットの中で見い出せるようなデータの圧縮が
可能となる。
算術符号化法を採用するためには、まずソース・アルフ
ァベットの中の各シンボルの発生確率を決定することが
必要である。普通、ソース・データ・ストリング毎に確
率は変化する。したがって、テレビ・イメージに相当す
るデータを圧縮するのに算術符号化法が用いられる場合
、まず各画素の発生確率が決定されねばならない。この
決定はリアル・タイムで行われることもあるし、統計的
に予定されることもある。しかしながら、確率の決定法
は本発明の特徴とは関係ない。本発明は、確率の決定法
に関係なく、等しく適用可能である。
ソース・アルファベット内の各シンボルの発生確率を決
定した後、各シンボルの累積確率が決定されよう。した
がって、データ・ストリングの第1番目のシンボルにつ
いての累積゛確率5(1)は−iにゼロに等しい。また
、第11番目のシンボルについての累積確率は、先行す
る(n−1)個のシンボルの各々の発生確率の和に等し
くなる。
算術符号化法では、普通、出力データ・ストリングは、
単位区間(0,1)の中の2進少数として表現される。
Langdon Jr、が”An Introduct
ionto Arithmetic Coding 、
 IBM Journal ofResearch a
nd Development、 Volume 2B
、N0、2 、 1984年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レジス
タと呼ばれる。
部分区間の幅は確率の積に等しいのであるから、2つの
ファクタが浮かび上がってくる。まず、符号化されるソ
ース・データ・ストリングのシンボル数が多くなればな
るほど、算術符号表現を規定する部分区間の幅は減少す
る。(というのは、個々の確率は必ず1より小さくなけ
ればならないからである)。さらに、算術符号化を効率
よくインプリメントするには、そのプロセスにおいて乗
算を繰り返さなければならない。
データ・ストリングを構成するシンボルの正確な発生確
率に基づくとき、算術符号器はソース・データ・ストリ
ングのエントロピーに相等する最適な圧縮結果を生成す
る。しかし、従来の実際のインプリメンテーションでは
、確率を正確に決定することの困難さ故に、近似を導入
しがちであった。その結果、算術符号演算の効率が低下
し、出力データ・ストリングに含まれるシンボル数が理
論的な最低限(エントロピー)を上回ってしまう。
さらに、部分区間の幅を決める度に必要とされる乗算を
なくするために、さらなる近似が導入されてきている。
算術符号器は、メモリ・レジスタのビット数が有限であ
るようなコンピュータでインプリメントされる。乗算に
関連する問題の1つは、確率の乗算を続けていけばいく
ほどより小さな区間が生成されるので、そのような乗算
をわずか数回やった後には、その結果体じた部分区間が
小さすぎてコンピュータ・レジスタに満足にストアでき
ない、という事実に起因する。例えば、各レジスタが1
6ビツトであるときに、、確率の乗算を繰り返した結果
、積が1−1′より小さくなったならば、積はレジスタ
をアンダーフローしてしまう。言い換えると、レジスタ
はゼロで満たされ、確率積の有意なビットは失われてし
まう。一連の乗算に伴う別の問題は、実行に要する時間
である。
上記第1の問題点は、正規化(normalizaii
on)と呼ばれる技術によって解決された。この技術で
は、確率積は浮動小数点表記でストアされる。これを実
行するべ(、別のビット・レジスタが用いられ、部分区
間の幅に対応する(2を基数とする)指数をストアする
。そのとき、2進小数の最も桁の高い1は最も左の位置
ヘシフトされる。したがって、明らかに16ビツト・レ
ジスタにストアできない1.0101 X2−”°なる
2進小数であっても、1゜0LOLE−20として満足
にストアできる。ここで仮数と指数は別個のレジスタに
ストアされる。仮数のMSBはこのように常に1となる
ように配置されるので、仮数レジスタにストアされる実
際の数は常に1.0より大きい。
上記第2の問題点(乗算実行時間)は、いわゆる「乗算
なし」の算術符号器によっである程度解決された。2進
算法を用いるコンピュータでは、乗算はシフトと加算オ
ペレーションの繰り返しとしてインプリメントされる。
「乗算なし」という言葉は、従来、様々に用いられてお
り、各符号化ステップについてのシングル・シフト、ま
たはシングル・シフト・アンド・アト・オペレーション
のどちらかを意味してきた。厳密に言うと、数学的には
シングル・シフト演算も乗算をしたことに変わりはない
。しかしながら、多数のシフトと加算演算を伴う厳密な
算術符号器のインプリメンテーションに関連する乗算に
比べて、このやり方では費す時間がはるかに少なくなる
。したがって、「乗算なし」なる語は、しばしば乗算が
大幅に簡素化された、あるいは減少した、という意味に
用いられる。従来技術、及び本発明において「乗算なし
」なる語が用いられるのは、このような文脈においてで
ある。
米国特許第4286256号明細書では、演算の数を減
らした算術符号化の方法及び装置が開示されている。そ
の特許発明によれば、現在のコード・ポイントを符号化
するのに先立って、部分区間の幅に対応する内部積の1
つを切捨てることによって乗算を簡略化している。しか
しながら、この方法は2進ソース(つまり、シンボルを
2つだけ持つアルファベット)にしか適さない。つまり
、この方法は、ソース・データ・ストリングの各シンボ
ルを、確率の高い事象または低い事象のどちらかとして
符号化することはできるけれども、マルチ・アルファベ
ット・コードには適さない。
米国特許4652856号明細書では、乗算なしのマル
チ・アルファベット算術符号が開示されている。そこで
は、部分区間の各々が上述のような浮動小数点形式でス
トアされる。そして、Aレジスタに収められる仮数は、
0.1より大きな2進小数とされる。該明細書で提唱さ
れる近似方法によれば、可変の基準を採用して、部分区
画の仮数を(2進の)0.1に正確に切り捨てるか、も
しくは1に切り上げる(round up)かのどちら
かを行わせる。
このような近似を使ってもなお所望の圧縮を達成できる
けれども、効率の点ではロスがある。換言すると、圧縮
データ・ストリングを表現するために、最低限のビット
数より多くのビット数が必要とされる。このような非能
率は、圧縮対象のソース・データの性質に依存する。
上記米国特許4652856号の発明の大きな問題点は
、Aレジスタの内容を切り上げることによって該当する
シンボルの確率が現実の値よりも大きな値に近似される
ことに起因する。アルファベットのすべてのシンボルに
ついての確率の和が1.0を越えられないことを確実に
するために、上記特許発明では、最後の部分区間を次の
ように近似する。
この近似(概算)によれば、アルファベットのすべての
シンボルの確率の和が1に等しいことが保証されるけれ
ども、これは、最後の部分区間を非常に小さなものとし
てしまい、符号化の能率が非常に悪くなるという犠牲を
伴う。
C9問題点を解決するための手段 本発明の目的は、上記従来技術に関連する問題点を大幅
に減少させ、あるいは除去する、高効率で乗算なしの算
術符号化法を提供することにある。
本発明によれば、ソース・データ・ストリングの圧縮表
現R(comp)を生成する方法が提供される。
該方法の内容は以下に示すとおりである。
各シンボルは、(m+1)個のシンボルaOS・・・、
aiからなる有限のセットから取り出される。
上記圧縮表現は所定の範囲の数値であり、ストリング中
の相次ぐシンボルに対応する相次ぐサイクルにおいて帰
納的に生成される。
各シンボルaiについて、確率値p(1)と累積確率値
S (1)がアベイラブルである。
ここで、上記累積確率値は、 S  (1)  =p  (0)  +p  (1) 
 +・・・・・・+p (i−1)  (i=1、・・
・、m)S(0)=0 である。
一対のシフト・レジスタA及びCが用いられる。
それぞれ、2進デイジット6個分の位置を有している。
特に、本発明の特徴は、以下の点にある。
(a)まず、Cレジスタの内容をすべてゼロにセットす
るとともに、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位置だけシフ
トする。
以上のステップを経てCレジスタから外ヘシフトされた
一連の2進デイジツトは、シンボル・ストリングSTR
の圧縮表現R(comp)を構成する。
したがって、本発明によれば、ソース・データ・ストリ
ングSTR内の各シンボルが相次いで符号化されると、
その代表圧縮符号がCレジスタから外ヘシフトされ、必
要に応じて後処理に供される。普通は、圧縮されたデー
タが相次いでCレジスタから読み取られ、その後適当な
復号装置に送られる。そこで圧縮済ストリングは復号さ
れ、オリジナルのソース・データ・ストリングSTRが
再構成される。上記従来の算術符号化と同じく、本発明
法もファースト・イン・ファースト・アラ)(FIFO
)ルーチンであり、ソース・データ・ストリングSTR
中の最初のシンボルが最初に符号化される。
好適な実施例では、Aレジスタは値i、 o o oに
初期設定されるとともに、圧縮後の算術符号は0と1の
間の(直をとる。
ソース・データ・ストリングSTR内のシンボルの符号
化が次々に行われるので、STR中の後続シンボルにつ
いて展開された符号が、“キャリー・オーバー゛効果ゆ
えに先行シンボルについて既に生成された符号に影響を
及ぼすことがある。
このキャリー・オーバー効果は文献等で十分に知られた
ことであり、いくつかの解決策が発表されている。その
うちの何れを本発明とともに用いても差し支えない。
D、実施例 第3図は、確率p (1)のテーブルと、5つのシンボ
ルa0〜a4からなるシンボル・セットについての累積
確率S (1)を、単位区間〔0、l)上にプロットし
たコード・ポイントとともに示したものである。既に説
明したように、符号化対象のシンボルaiについての確
率p (1)と累積確率S (1)に基づいて、シンボ
ル・セットに由来する相次ぐシンボルを帰納的に単位区
間内の部分区間として符号化するプロセスは、算術符号
化それ自身の特徴である。第1図は、本発明による符号
化法の流れ図である。4つの主要なステップには1から
4までの番号が付されている。その理由は、第2図を参
照することにより、後で明らかになる。
スタート時点では、Cレジスタは0、 o o oに、
Aレジスタは1.000、にそれぞれセットされる。
ステップ(1)では、ソース・データ・ストリングST
R中の各シンボルについて、確率p (1)及び累積確
率S (1)が決定される。これは既知のいくつかの方
法の何れかを用いて実行できる。
あるいは、固定かつ予定された確率値セットを用いるこ
ともできる。次に、ステップ(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)ということになる。
ステップ(3)は、ソース・データ・ストリングSTR
の各シンボルについて、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) これはまさに要求されるところである。
アルゴリズムの次のステップ(4)では、Aレジスタの
内容が所定の範囲に収まるように、Aレジスタが正規化
される。Aレジスタの内容には、適当な2の倍数が掛は
合わされる。これは、簡単なシフト・オペレーションで
もって、Aレジスタの現在の内容に応じて定まる回数分
Aレジスタを左ヘシフトすることによって達成される。
Cレジスタも同じビット数分だけ左ヘシフトされる。そ
の結果、Cレジスタの上位のビットが読み取られ、それ
はSTRについての算術符号の一部を構成することにな
る。このような手順はSTR中のすべてのシンボルにつ
いて繰り返され、それが完了したなら、その時点のCレ
ジスタの全内容が外にシフトされ、先に生成されていた
コード・ストリングと連結される。その結果できたコー
ド・ストリングは、圧縮済であるところの出力データ・
ストリングを表現している。
本発明に従う方法によれば、STR内のシンボル毎に、
圧縮出力データ・ストリングが帰納的に生成されること
がわかろう。コードが生成されると、Cレジスタの左へ
のシフト、及びAレジスタの正規化が行われる。
本発明の方法は、以下の具体例を参照することによって
、最もよく理解されよう。
例 ソース・データ・ストリングは、5シンボル・アルファ
ベットから導かれるものとする。この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に
等しい、つまり であることも確認されよう。
各シンボルについての累積確率は以下の通りである。
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なるソース・データ・ストリングを符号化する
ものとしよう。
次のような処理が行われる。
まず、Aレジスタが1.00000に、Cレジスタが、
o o o o o oに、それぞれ初期化される。
小数点はわかっているものとするので、Aレジスタ、C
レジスタの内容は、それぞれ 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。
ここで、小数点は、 ている。このように、 ット0OOOOは、結果め算術符号のうちの最初の5ビ
ツトが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の終りではないので、処
理は継続する。
第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の終りではないので、
処理は継続する。
第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の終りではない
ので、処理は継続する。
第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の
終りではないので、処理は継続する。
第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の終りではないので、処理は継続する。
第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位置分
シフトし、下に示す完全な出力ストリングを出力する。
C=OO000101001101100000010
000010000第2図は、第1図を参照して説明し
た方法のステップ(1)〜(4)の各々について、レジ
スタ間のデータの流れを示す。符号化法のステップ(1
)では、各シンボルaiが人力ストリングから順に抽出
されるとともに、シンボルaiが入力ストリングの最終
ストリングか否かを表示すべく、フラグ′エンド′°が
生成される。シンボルaiは確率テーブルに入力される
。−二のテーブルは、そこから確率p (1)とS (
1)を導くために、コンスタントに更新されてよい。フ
ラグ”i=mも生成されて、シンボルaiがソース・ア
ルファベットの最終シンボルか否かを表示する。
ステップ(2)では、スケーリング・ファクタにを与え
るべく、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)に等しい。
最後に、ステップ(4)では、シフト・コントロール・
ユニットがAレジスタの内容が指定された範囲内に収ま
るまで、AとCのレジスタをシフトする。ストップ・フ
ラグが生成されると、それによってシフト・オペレーシ
ョンがストップする。。
ステップ(1)で導かれた“エンド”′フラグはシフト
・コントロール・ユニットへ渡されるので、入力ストリ
ングの最後では、シフト・コントロール・ユニットが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シン
ボルを符号化するときにキャリー・オーバーが生じる。
上記の例では、結果のコードがデコーダに送られるのは
、ソース・データ・ストリングSTRのすべてのシンボ
ルが符号化されてからである。明らかに、Cレジスタか
ら外ヘシフトされ内容を連結してストリングを形成して
ストアしておき、STR全部が符号されてから圧縮デー
タが生成されるや否やそれをリアル・タイムで転送する
ことが現実には望ましい。
本発明の別の実施例としては、にを生じさせる近似を改
良した修正方法がある。前記実施例のようにAレジスタ
の1のうち上位3番目以後を切り捨てる代りに、上位4
番目以後の1を切り捨てても本発明の実施は可能である
。もつとも、前記実流側の場合に比べて、シフト・アン
ド・アト・オペレーションがもう1回必要になるという
代償を伴うことになる。明らかに、このような改良は、
さらに押し進めて行くことができ、その極限ではスケー
リング・ファクタKがAレジスタの内容と全く等しくな
る。これは、近似を用いない算術符号化ということにな
る。しかしながら、上記図面を参照して説明した方゛法
によれば、Aレジスタの内容を近似しつつも、98%を
越える効率を達成できる。
本発明の原理に従って導かれた圧縮出力データ・ストリ
ングの復号は、実質的に符号化の逆である。したがって
、まず、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レジスタの内容から、K*S (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ち、最上
位から数えて、空いた位置の数に該当するデジットでも
って充填される。
R(comp)が空になるまでプロセスは繰り返され、
そして完結する。
E、効果 本発明の圧縮符号化方法及び復号方法は、効率及び時間
の両方の点で優れている。
【図面の簡単な説明】
第1図は、本発明による符号化法のフロー・チャートで
ある。 第2図は、第2図の方法が実行される際の、レジスタ間
でのデータの流れの説明図である。 第3図は、5つのシンボルについての確率及び累積確率
の例を示す説明図である。 出願人  インターナシヨナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 第6図

Claims (2)

    【特許請求の範囲】
  1. (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. (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)を
    繰り返す ステップを有する、復号方法。
JP1124579A 1988-07-05 1989-05-19 圧縮符号化方法及び復号方法 Expired - Lifetime JPH0744462B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* 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
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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