JP2800880B2 - 高速復号算術符号化装置 - Google Patents

高速復号算術符号化装置

Info

Publication number
JP2800880B2
JP2800880B2 JP6288285A JP28828594A JP2800880B2 JP 2800880 B2 JP2800880 B2 JP 2800880B2 JP 6288285 A JP6288285 A JP 6288285A JP 28828594 A JP28828594 A JP 28828594A JP 2800880 B2 JP2800880 B2 JP 2800880B2
Authority
JP
Japan
Prior art keywords
symbol
register
value
symbols
decoding
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 - Lifetime
Application number
JP6288285A
Other languages
English (en)
Other versions
JPH07221653A (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.)
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 JPH07221653A publication Critical patent/JPH07221653A/ja
Application granted granted Critical
Publication of JP2800880B2 publication Critical patent/JP2800880B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・システ
ムにおけるデータ保存と圧縮の方法に関し、より詳しく
は、圧縮された記録の分類順序を維持しながら、圧縮に
関する理論的限界に近づくための、容易に実施できる高
速復号算術符号化装置に関する。
【0002】
【従来の技術】データ圧縮符号化とは、一連のデータを
「圧縮された」形式(すなわち、より少ないビット総数
を含む形式)に変換するプロセスをいい、その圧縮され
た形式から、元の形またはその近似形を後で再構築する
ことができる。圧縮された(または符号化された)デー
タをその後に圧縮解除して元の形式に戻すことができる
場合に、「可逆性の」または「損失のない」データ圧縮
が達成される。圧縮解除されたデータが、ある忠実度の
評価基準を満足することにより、元のデータの本質を保
存するという条件で、「損失のある」データ圧縮は、圧
縮解除されたデータを元の形から変化させてしまう。記
憶コストは急激に低下し続けているが、有効なデータ圧
縮技術を使用すると、所望の性能を維持しながら、必要
な記憶空間がさらに減少するはずである。さらに、通信
帯域幅の制限が課されているものとすれば、圧縮形式の
データが能率良く伝送でき、通信チャネルを利用する様
々な情報主体の適用業務で大きな利点がもたらされる。
【0003】データ圧縮符号化のシステムまたは方法の
2つの望ましい特質は、高い圧縮効率と辞書的順序の維
持である。しかし、これらの特質は、互いに排他的な傾
向があり、あるいは、トレードオフを必要としてきた。
この分野でなされてきた仕事の大半は、高い圧縮効率と
辞書的順序の維持の両方を実現するという目標を追求す
るものであった。
【0004】データ圧縮プロセスは、2つの部分、すな
わちモデル化と符号化に分けることができる。モデル化
タスクでは、記号が多くの文脈や条件で現れ、文脈また
は条件に応じてアルファベットの各記号に確率が割り当
てられる。したがって、モデルは、文脈依存確率分布の
集合体である。その分布の統計モデルは、相対頻度の仮
度数分布図に基づいていることが多い。
【0005】符号化タスク(符号化と復号の両方を含
む)では、これらの確率が、一連のビットに翻訳され、
またその逆が行われる。参照により本明細書に組み込ま
れた、J. リッサネン(Rissanen)と G.G. ラングドン
(Langdon)の論文 "UniversalModeling and Coding,"
IEEE Transactions on Information Theory, Vol. IT-2
7, pp. 12-23(January 1981)を参照されたい。
【0006】確率と符号の関係は、シャノン(Shanno
n)の論文 "A Mathematical Theory of Communicatio
n," Bell Syst. Tech. Journal, Vol. 27, pp. 398-40
3, (July1948)で、初めて確立された。この文献では、
確率pで現れることが期待される記号は、対数の底を2
として、−log pビットで表すのが最良であることが示
されている。したがって、より高い確率を持つ記号は、
より少ないビット数で符号化され、確率のより低い記号
は、符号化のためにより多くのビット数を必要とする。
記号の発生確率によって重み付けされた全ての可能な記
号の符号長を平均することにより、期待される符号長が
得られる。シャノンは、この着想を数学的に
【数1】H=−Σpilogpi で表現している。これは、確率分布のエントロピーと呼
ばれている。1つの記号の発生確率が1であり、他のす
べての記号ではゼロである場合、その符号化方式のエン
トロピーはゼロである。発生確率が全記号で等しい場合
に、エントロピーは最大になる。
【0007】シャノンの符号化定理によれば、エントロ
ピーは、圧縮の下限を課している。言い換えると、エン
トロピーは、符号化されたメッセージに必要な1文字当
たりの平均ビット数の最小値を確立する。所与の各分布
ごとに、制限的性能、すなわちエントロピーが所望の確
度で達成できる符号の設計技術が存在する。この高圧縮
効率符号には、古典的ハフマン符号とより新しい柔軟な
算術符号化がある。データ圧縮符号のその他の所望の特
質には、以下に詳述するように辞書的順序の維持、高速
の符号化と復号、および実施の容易さが含まれる。
【0008】典型的なハフマン符号化方式では、アルフ
ァベットの各記号をバイナリ・ツリーの葉に関連づけ
る。最初、それらの記号は、確率の順番にリストされ
る。そのツリーの構築は、最初の1対の兄弟節点とし
て、最低の確率を持つ2つの記号を選ぶことから始ま
る。その後、それらの親としての中間節点が生成され、
その親節点からの一方の子節点の枝が1とラベルされ、
一方、他の枝はゼロとラベルされる。2つの最低確率と
それに関連する節点が、2つの確率の和を持つ親節点で
置換される。アルファベットの全記号がこのプロセスに
含まれるまで、このプロセスが繰り返される。ハフマン
符号化は、その性能が圧縮の理論的下限に非常に近いと
いう意味で、非常に効率的である。実際、入力確率が2
の負の累乗である場合、その限界が達成される。R.G.
ガラガー(Gallager)の論文 "Variationson a theme b
y Huffman," IEEE Trans. Inform. Theory, Vol. IT-2
6, pp. 668-674(Nov. 1978)を参照されたい。
【0009】ハフマン符号化は、よく知られているにも
かかわらず、統計モデル、すなわち記号の確率分布が変
化する度に、新しい1組の符号を計算しなければならな
いので、最適のモデル化および符号化とは言えない。
【0010】ハフマン符号化の別の主な欠点は、圧縮レ
コード中で記号の順序を維持できないことである。符号
化されるデータの性質等の要素に応じて、様々な順序配
置が維持されることが望ましい。例えば、データは、記
号集合の等価アルファベット順に基づいて辞書的順序に
分類される。符号化されたデータで辞書的順序を維持す
ると、その所望のデータ項目へのアクセスと復号が容易
になる。
【0011】レコードの辞書的順序を維持するための1
つの手法は、いわゆるアルファベット順の符号化を採用
することであり、原始レコードの順序がその2進符号の
番号順として保存される。例えば、E.N. ギルバート(G
ilbert)と E.F. モア(Moore)の論文 "Variable-leng
th binary encodings,", Bell System Technical J.,Vo
l. 38, pp. 933-967(July 1959)を参照されたい。所与
のアルファベットと所与の確率分布(アルファベットの
各構成要素に割り当てられた確率値の集合)について、
符号語の符号(または辞書)が構築され、符号語がアル
ファベットの構成要素のアルファベット順にリストされ
る。
【0012】ギルバート・モア符号は、接頭辞の特徴を
持つ。すなわち、符号中の符号語はどれも、同じ符号中
の他の符号語の接頭辞ではなく、アルファベットの諸記
号から成る単語の分類順序を維持しない。復号の際に、
次の符号語を見るとすぐに、接頭辞特性により、次の符
号化された項目の明確な復号が保証される。残念なが
ら、所与のモデルについて、ギルバート・モア符号の分
類順序は、圧縮効率を犠牲にして維持される。すなわ
ち、ギルバート・モア符号は、一般的にハフマン符号よ
り効率が悪い。
【0013】ハフマン符号に対する高速復号に関して、
米国特許第3883847号は、素早い復号のために、記憶さ
れた表を使って記憶域に1回または2回アクセスする方
法を開示している。
【0014】ハフマン符号とは対照的に、算術符号化
は、文字列が処理されるときに、記号に対する確率分布
または符号の割当てが更新される適応モデルも含めて、
どのようなモデルにも適用できる。典型的な1クラスの
算術符号は確率に基づく、または積(乗算が使われる)
に基づく符号であり、参照により本明細書に合体される
G.G. ラングドンの論文 "An introduction to arithmet
ic coding," IBM J. Res. Develop., Vol. 28, No. 2,
pp. 135-149(March 1984)で「Pベースの算術符号」と
呼ばれる。典型的な算術符号化器は、数字列上の固定し
た間隔をそれぞれの記号と対応する小間隔に分割する。
辞書的順序は、小間隔を数字列上で記号の辞書的順序に
対応する順序に配置することによって維持される。小間
隔の長さは、対応する記号の確率、または推定確率(相
対頻度)に比例している。
【0015】現在の間隔が再分割された後、符号化され
る実際の記号に対応する小間隔が、新しい現間隔として
選択される。
【0016】この分割と選択のプロセスは、記号の確
率、間隔の長さ、および間隔の終了点の座標で表した数
字列上の点の座標計算を含む。
【0017】記号列を符号化するために、上記のプロセ
スが、後続の各記号について繰り返される。毎回前の繰
り返しからの小間隔を次の繰り返しのための開始間隔と
して使用しながら、このような割当てと選択のプロセス
を繰り返す。
【0018】ラングドンが開示した上記のPベースの算
術符号では、後続の各記号を符号化するために、小間隔
を次のレベルの小間隔に分割する反復プロセスは、累積
的に多くの乗算ステップを含む。したがって、高い計算
効率が符号化プロセスにおいて望ましい。その例を、以
下に少し詳しく示す。
【0019】上記のラングドンの文献に記載されている
ように、符号化および復号の間、所与の記号に関連する
小間隔は、次の3つの識別方法のうちの任意の1つの方
法で識別できる。 (IM1)両方の終了点(CloからChi)。 (IM2)左側の終了点Cloと小間隔の幅A。 (IM3)右側の終了点Chiと小間隔の幅A。 第2の識別法IM2は、多くのPベースの算術符号で使
用される。
【0020】算術符号化器は、2つのレジスタ、Cレジ
スタとAレジスタを含むことがしばしばある。特記して
いない場合、以後の考察では、小間隔を識別するために
IM2を使用する場合に焦点を置き、その際に、Cレジ
スタは入力記号に対応する小間隔の左側終了点Cloを識
別し、一方、Aレジスタは入力記号の確率に対応する小
間隔の幅Aを含むものとする。
【0021】図1は、Aとラベルした間隔が、4記号ア
ルファベットの4つの記号w、x、y、zの間で再分割
される。Aレジスタの値、すなわち現間隔の幅は、「符
号空間」と定義される。その記号の仮の確率を、それぞ
れp(w)、p(x)、p(y)、p(z)とする。記
号yに割り当てられた符号空間の部分は、新間隔幅(ま
たは新しい符号空間)と現間隔幅(または古い符号空
間)の比率である。Pベースの符号では、その比率が、
p(y)に比例する。「区切り点」、すなわち現間隔内
の小間隔の境界を定める点も、左右の終了点に対するそ
れらの位置によって識別される。
【0022】初期の間隔幅は通常、Cloが0.0、Chi
1.0になるように正規化される。例えば、固定小数点算
術(すなわち、32ビットのレジスタで)を使用し、固定
小数点レジスタの整数値215 = 32,768を値1.0として扱
うことができる。その後の符号化(または復号)プロセ
スで間隔値Aがさらに再分割されるとき、関係式Clo
A=Chiが満足される限り、そのような符号は、位取り
因数(すなわち、32,768)または初期の幅もしくは範囲
に加算された任意の定数とは独立に動作する。
【0023】さらにこのプロセスを例示するために、記
号yは、間隔Aを4つの記号w、x、y、z用の4つの
小間隔に再分割し、三つの識別法に従って終了点または
小間隔の幅によって記号yの小間隔を指定することによ
り、符号化されるものと仮定する。下記の表1に、前記
の三つの識別法について新しい間隔の新しい記述値を古
い(すなわち、現在の)間隔によって示す。
【0024】
【表1】
【0025】すなわち、符号化操作において、Cレジス
タとAレジスタの値は、乗算、シフト、および大小比較
を含む一対の再帰式に従って反復計算される。復号操作
は、符号化の反復を繰り返し「元に戻す」。多数の大小
比較や乗算も、復号プロセスに含まれる。辞書的順序付
けが、記号の順序付けと同じように維持される場合、大
きさの順序が各繰返しで辞書的順序に対応するように、
記号が数字列上に写像されるので、圧縮された記録の分
類順序は維持される。この方法は、辞書的順序付けを維
持し、かつ高い圧縮効率も達成するので好都合である。
しかし、計算が必要なので、計算効率は低く、実施が困
難である。
【0026】さらに算術符号を例示するために、被加数
に基づく(またはAベースの)符号を考察する。この符
号は、G.G. ラングドンと J.リッサネンの論文 "A Simp
le General Binary Source Code," IEEE Trans, Vol. I
T-28, pp. 800-803(1982)に初めて現れた。Aベースの
符号に関する一般的な参照については、G.G. ラングド
ンの論文 "Augend-Based Arithmetic Codes and the Go
lomb Code," IBM Research Report RJ 7844, IBM Almad
en Research Center, San Jose, California(November
1990)を参照されたい。これらの論文を、参照により本
明細書に組み込む。
【0027】ラングドンとリッサネンの論文で、Aレジ
スタ値と確率を含んだ乗算は、最も確率の高い記号(M
PS)に対するものは除いて、積の近似値で置換され
る。この近似により、幾つかの計算の必要がなくなる。
【0028】Aベースの符号を使う第2の手法は、K.
モヒーウッディーン(Mohiuddin)とJ. リッサネンの "
Multiplication-Free Multi-Alphabet Arithmetic Cod
e,"と題する米国特許第4652856号と、J. リッサネンと
K. モヒーウッディーンの論文 "Multiplication-Free M
ulti-Alphabet Arithmetic Codes,"IEEE Trans. Comm.,
V. 37, pp. 93-98(Feb. 1989)に見られる。この両方を
参照により本明細書に組み込む。
【0029】米国特許第4652856号では、m元アルファ
ベットの諸記号{1,...,i,...,m}が、まず確率が増
加する算術符号化の順序でリストされ、この順序の右端
の記号mがMPSである。米国特許第4652856号におけ
るAレジスタ値(Aとも呼ばれる)は、特別な理由で、
左側閉で右側開の間隔[0.75,1.5)に制限されている。こ
の間隔に厳格に固執すると、計算が複雑になる。実際
は、さらに2つの複雑な比較によって、再正規化点が値
Uとなり得るので、Aレジスタは範囲[U,2U)にある。
しかし、Aの再正規化点を1.0に選ぶとAレジスタ値が
範囲[1.0,2.0)に制限されるので好都合である。
【0030】上限は下限よりKビット多いので、下限が
最低の許容確率を表すのに十分な精度を与える限り、表
1の方法IM1をそれほど多く使わずに再正規化する技
術では通常、Kを1より大きい整数として、間隔幅上の
上限が下限の2K倍である範囲を選択することを留意され
たい。Aが1.0に制限されると、整数長の場合となる。
全ての符号化確率は、2の負の累乗(1/2、1/4、1/8
等)となる。整数長算術符号は、分数長を含まず、ラン
グドンの前記論文 "Introduction to Arithmetic Codin
g" に記載されている、Lベースの符号の特別な構成要
素を表す。
【0031】図2と図3を参照すると、記号yが右端の
記号であり、IM2は間隔を識別するために使用されて
いる。他の記号iは、A・p(i)を最高の符号化効率
のために記号iに割り当てられる符号空間とすると、値
A・p(i)に対する「拡大」近似値によって表され
る。記号iに実際に割り当てられた近似値は、被加数A
g(i)(代わりにGiと呼ばれる)と呼ばれ、数式A
g(i)
【数2】 A・p(i)によって与えられる。
【0032】図2は、最小符号空間(すなわち、Aの最
小値)の例であり、ここでA=1.0である。記号yに割
り当てられた符号空間は「使い残り」であり、すなわち
符号空間の後に残る空間は、他の記号に割り当てられて
いる。記号w、x、y、zから成る4記号アルファベッ
トについて、記号yに割り当てられた使い残しの符号空
間は、数式A−[Ag(w)+Ag(x)+Ag(z)]
で与えられ、より低い確率の他の記号に割り当てられた
符号空間より必ずしも大きくない。新しい現在幅Aが符
号化の間に1.0未満に低下すると、A≧1.0になるまで、
Aに2を掛け、Cに2を掛けて、その間隔が、1.0と2.0
の間の値になるように再調整(再正規化)される。すな
わち、図3において、Aが1.0と2.0の間の値に再正規化
されたので、yに対するより大きな符号空間が得られ
る。ただし、数字列上の最右端にMPSを置くと、記号
の辞書的順序が失われることになる。
【0033】米国特許第4652856号で、m元アルファベ
ットについてi=0,1,,...,m-1とすると、記号iの符
号化にはCレジスタとAレジスタを使用し、これら両レ
ジスタは、最左端の点(Clo)と小間隔幅Aにより小間
隔を識別する。記号iの確率p(i)に対応する加数値A
d(i)が計算され、Aレジスタに記憶される。前記の順
序付け、すなわち、
【数3】 で、より確率の低い記号の累積確率に対応する被加数A
g(i)も計算される。各サイクル・タイム毎に、Cレ
ジスタで計算が行われ、その際には、入力記号iに対す
る被加数Ag(i)が、現在の符号列の作業終端に加え
られる。ラングドンの上記論文 "Introduction to Arit
hmetic Coding"に従って、作業終端は、Aレジスタと同
じ精度に対応する最下位ビットと定義される。
【0034】一方、記号iがMPSでない場合は、Aレ
ジスタは、記号iに対応する新しい値のAd(i)を採
用し、この場合は、現在のAレジスタ値からMPSの被
加数値を引いた値がAレジスタの新しい値になる。この
新しいAレジスタ値は、再正規化され、妥当な量だけシ
フトされる。符号列の作成のために、Cレジスタも左側
への同数の再正規化シフトを受けなければならず、ゼロ
値のビットが右側から入力される。Cレジスタからの左
シフト・ビットが、その符号化器からの新しい符号列ビ
ットとなる。このようにして、Aレジスタ・ビットは、
Cレジスタの最下位ビットに対応し続ける。
【0035】モヒーウッディーンとリッサネンの技術の
復号プロセスは、積の近似値Ag(i)=Ap(i)と
して被加数を使用することにより、乗算を回避してい
る。しかし、計算の削減にも係わらず、この技術は、や
はり低速または複雑である。例えば、256個の記号を
含む8ビット・アルファベットが与えられている場合、
復号器は、Ag(i)がCレジスタ値以下で、Ag(i
+1)がCレジスタ値より大きいという記号iを見つけ
なければならない。すなわち、復号を1サイクル・タイ
ムで完了しなければならない場合には、復号器は、被加
数とCレジスタ値の同時比較を、256回(すなわち、
256個の比較器を使用して)実行しなければならな
い。したがって、実施が困難であり複雑である。
【0036】
【発明が解決しようとする課題】したがって、本発明の
目的は、従来の方法やシステムで得られなかった高速の
符号化および復号速度、高い圧縮効率、辞書的順序の維
持、および簡単な実施を併せて達成する、効率が高く、
順序を維持する符号化技術を提供することにある。
【0037】本発明は、(1)前記のモヒーウッディー
ンとリッサネンの技術の性能に匹敵する圧縮性能を達成
し、(2)圧縮された記録と圧縮解除された記録の分類
順序を維持し、かつ、(3)最も大切なことであるが、
記録の回復のための高速な復号技術を提供する、新しい
算術符号化法および装置を含む。本発明は、整数長ケー
スと呼ばれるA=1.0のケースでも、ギルバートとモア
のアルファベット符号に勝る符号化効率で動作する。
【0038】
【課題を解決するための手段】本発明によれば、m元ア
ルファベットの確率が、最も近い1/2の累乗に近似され
て、整数記号符号長になる。これらの符号長は、Aベー
スの算術符号化器で被加数が使用されたのと類似の方法
で、整数長算術符号化器で使用される。
【0039】この近似によって符号化効率は犠牲になる
が、その損失は、通常非常に小さく、アルファベットが
非常に大きくて、各記号の確率が小さくなる場合には特
に小さい。従来技術の制限長ハフマン符号と比較して、
この整数長算術符号化器は、効率的であるばかりでな
く、分類順序の維持という利点も備えている。整数長算
術符号化器の他の利点は、その実施が上記のAベースの
算術符号化器よりもさらに簡単なことである。
【0040】本発明の特定の実施例で、整数長算術符号
化器は、Cレジスタ、論理演算装置(ALU)、および
記号符号長参照表を含む記憶装置を備える。m元アルフ
ァベットの記号に割り当てられた累積確率(または被加
数Ag(i)またはGi)に基づく参照表を備え、被加
数に基づく(Aベースの)算術符号化器が構築される。
【0041】符号化プロセスで、論理演算装置(AL
U)が符号列を反復的に構築し、その符号列をCレジス
タに記憶する。反復復号プロセスで、ALUは、符号長
表の中の最大の被加数をCレジスタから引いてCレジス
タに正の値を残し、Cレジスタ値を妥当な量だけシフト
し、この最大の被加数に対応する記号を復号された記号
として送り出す。
【0042】本発明の整数長の特徴は、従来の算術符号
化器の実施よりも容易である。その理由の1つは、従来
の算術符号化器に対応するAレジスタが常に1.0であ
り、したがってAレジスタが不要なことである。
【0043】
【実施例】本発明は、多数の形で実施できるが、特定の
実施例を開示する。ただし、この開示によって本発明が
以下に例示する実施例に限定されるものではないことを
理解されたい。
【0044】整数長算術符号化器 本発明によれば、m元アルファベット{1,...,i,...,
m}について、効率的で、順序を維持し、高速で復号
し、実施の容易な、整数長算術符号化器が構築される。
【0045】まず、アルファベットの諸記号(または、
より一般的には、一連の記号等の「事象」)の確率pi
が、ハフマンの周知のアルゴリズムで得られる1組の符
号語に対する基礎として使用され、その結果、整数の記
号符号語長liがビット単位で測定される。符号語長
は、より一般的には、シャノンの命名法に従って、自己
情報と呼ばれる。定義により、符号化確率piは、記号
iについて、2-liであり、li=−log2iである。
【0046】2の負の累乗に近似すると、符号化効率が
犠牲になるが、その損失は、通常非常に小さく、特にア
ルファベットが非常に大きく、最も確率の高い記号の確
率が相対的に小さい場合には、特に小さい。ギルバート
・モア符号のような従来技術の分類順序維持の接頭辞符
号と比較して、本発明の整数符号長に基づく算術符号化
器は、どの接頭辞ハフマン符号とも同等に効率的であ
り、さらに、分類順序の維持という利点を備えている。
すなわち、ギルバート・モア符号の欠陥を克服してい
る。
【0047】さらに、以下で明白になるように、整数符
号長を使用すると、Cレジスタを使用する繰返しにおけ
る任意の乗算の代わりに、シフトを使うことが可能にな
る。この結果、整数長でない算術符号に比べて実施が簡
単になり、単なる乗算の回避よりも多くの面で有利とな
った。
【0048】図5を参照すると、本発明による復号プロ
セスは、下記のように進行する。従来技術のLベースの
算術符号化法に関係するものと本質的に似た形で、復号
すべき符号列が記号列から符号化された。すなわち、記
号(または事象)が、辞書的順序で確率表にリストされ
る。累積確率は、被加数として使用される。本発明の整
数長態様によれば、各記号の符号化確率pjは2の負の
累乗なので、2進化分数確率または加数は、0.00...01
の形式であり、すなわち、2進小数点の後にゼロ個、1
個または2個以上のゼロから続き、その後に1個の1が
続くものである。被加数の欄が上記の記号表に追加さ
れ、被加数Giは、
【数4】 で与えられる。
【0049】例示的な4記号アルファベットについて、
4記号アルファベットに対する被加数表の例が図6に示
されている。この表は、アルファベットの記号の1つに
対応する指標値を与えることによってアクセスされる。
各指標値について、記号、その確率pi、被加数Gi、お
よび符号長liが提供される。長さは、整数長ケースの
確率を暗示するので、ここの確率は記述の目的で示され
ている。
【0050】記号iを符号化するためには、符号化器
は、Cレジスタ内にある符号列Cの活動終端にGiを単
に加え、Cレジスタ値をliビットだけ左にシフトす
る。すなわち、符号化動作に乗算ステップは必要でな
い。さらに、記号列を表す符号列は、符号化処理後も、
符号化の前の記号列と同じ分類順序になっている。
【0051】整数長算術符号の場合、復号器は、Cレジ
スタの単位位置を必要としない。一般的な場合、ラング
ドンの"Introduction to Arithmetic Coding."に記載さ
れている、いわゆる「桁あふれ」の問題を処理しなけれ
ばならない。ある種の符号では、次の記号の復号に進む
前に、復号器側が、入力符号列またはCレジスタあるい
はその両方の調整をしなければならない。復号器のこの
実施例では、Aレジスタの大きさが、1.00...0から1.1
1...1まで変化し、L個の分数ビットが含まれていると
仮定している。すなわち、L=4なら、正規化されたA
レジスタは、1.0000から1.1111までの値を記憶できる。
復号の準備が整うと、L=4の場合、Cレジスタは、1.
0000から1.1111までの値を保持できると仮定する。
【0052】復号プロセスは、Cレジスタに対して逆参
照表を使用すると、都合良く実行される。この例では、
図7は、図6の参照表に対応する逆参照表を示す。
【0053】未知の記号iを復号する場合を考える。図
5の流れ図を参照すると、ステップ2において、iより
前に符号化された記号は、既に復号されていて、それら
の対応する被加数がCレジスタから差し引かれており、
それらの対応する相対シフトが適切に考慮されているも
のと仮定する。これらの動作の結果、現在の符号列Cの
最大の被加数が、復号すべき現在の記号iによるものと
なる。そのCレジスタの符号列が、図5のステップ2で
参照される。
【0054】図7に示される逆参照表は、現在のCレジ
スタ値Cが、適切な記号の復号のためのインデックスま
たは記憶アドレスとして使用できるように、図6の被加
数表から構築されている。Jがアドレスであるかあるい
は基底アドレスに対するオフセットである実施例では、
Jに対する2進小数点は不要である。可能な各インデッ
クス値について、適切な復号された記号が現在のCレジ
スタ値から被加数を差し引いた後のCレジスタ値とシフ
ト量(またはカウント)と共に与えられる。参照表のア
ドレスは、インデックス・ビット数に基づいて、ゼロか
らCレジスタによって許される最大値まで付けるのが好
都合である。2進数として表されたインデックスのビッ
ト数はL+1であり、ここでLは、任意の記号に対する
最大の符号長liである。
【0055】復号は、逆参照表を参照して、直接的な方
法で実行される。インデックスjは、符号列Cの最上位
ビットから得られ(ステップ2)、ステップ4で、アド
レス値として参照表(LUT)に送出される。記号iに
対する被加数Gi以上で、次の記号i+1に対するGi+1
より小さい任意のインデックスjは、復号される記号と
して記号iを含む図7の逆参照表中のあるエントリを指
定する。
【0056】インデックス値に対応する単一の被加数が
ある場合(ステップ6)、記号iが、符号列から復号さ
れる次の記号であると決定される(ステップ8)。しか
し、所与の記号に対して複数のインデックス値がある場
合がある。例えば、図6の表で、被加数.001を持つ記号
bは、図7の表では2つのエントリで表される。次の記
号cは、被加数.011を持つので、bは、図7の表の第2
と第3のエントリで表される。これは、それらのインデ
ックス値.001と.010がbの被加数値.001以上であるが、
cの被加数値.011より小さいからである。すなわち、繰
返しプロセスで、符号列と被加数との差が負であるかが
検査され(ステップ10)、負であれば、ステップ10
の検査を満足するインデックスが見つかるまで、そのイ
ンデックスが減分される(ステップ8)。そのインデッ
クスに対する記号が、その列の次の記号であると決定さ
れる。
【0057】次に、復号された記号に対応する被加数が
Cレジスタから差し引かれ、シフトカウントに基づいて
相対シフトが行われる(ステップ14)。復号が完了し
ない限り、新しいCレジスタ値は、次の記号の復号のた
めのインデックスを参照表に提供する(ステップ1
6)。
【0058】図5のプロセスを実行する装置が、図8に
示されている。適切にプログラムされた汎用処理装置と
して実施できる装置は、論理演算機構(ALU)18
と、直列の符号ストリームを受け取るCレジスタ20
と、図6と図7の表を含む記憶装置22と24とを含
む。
【0059】図8は、Cレジスタ20の全数値がLUT
(ROM)22のアドレス指定に使用され、復号された
記号INDEXが直接得られる場合を示している。ここ
で、長さ(シフト)と被加数(Q)の値を収容するため
に主記憶装置の幅を広げる代わりに、インデックスは、
より小さい第2のLUT24にアクセスする。幅を広げ
た記憶装置36が記憶装置22と24の代わりに使用さ
れる別の実施例が、図10に示されている。図8の記憶
装置22と24は、読取り専用記憶装置(ROM)とし
て示されているが、RAMでも他の適当なアドレス指定
可能な記憶装置でも実施できる。記憶装置36に記憶さ
れ、バス38を経由してCレジスタ20にバス伝送され
るNEXT_STATE情報を使用すると、ALU18
と、図8及び図9にある関連する接続とが不要になる。
【0060】多重化装置(マルチプレクサまたはデータ
選択装置)25は、図5のループ6、10、8を実施す
るための代替方法の一つを示す。図8において、LUT
22のINDEXとラベルした出力は、復号された記号
であり、ループ6、10、8は不要なので、マルチプレ
クサ25は、ALU出力18(次の状態)を常にCレジ
スタに入れる。マルチプレクサ25からの並列ロードに
加えて、レジスタ20は左シフト能力も持っている。左
シフト量は、第2記憶装置LUT24からの出力値SH
IFTで指示され、符号列からの入力置換ビットが入力
線CODEIN上に現れる。シフト構造は、直列的にビ
ット毎に、あるいはより複雑なバレル・シフタによって
1サイクルで、またはこの両方の技術を組み合わせて使
用して行うことができる。さらに、バレル・シフタは、
ALU18とレジスタ20の間に置くことができる。
【0061】図9は、主記憶装置LUTアドレスが、C
レジスタの全ビットより少なく、最上位ビットのみであ
る、記憶容量を節約する別の実施例を示す。図9の実施
例において、図5のループ6、10、8とPREV_S
TATEと呼ばれる過去の状態とが、Cレジスタにロー
ドするために、マルチプレクサ25によって選択され
る。ある実施技術において、マルチプレクサ25の代替
物は、Cレジスタの内容が変化しない場合(すなわち、
現在の値がロードされるとき)、Cレジスタをクロック
することを禁止するものであろう。
【0062】図9は、図5のステップ4で、主記憶装置
LUT26から値iをロードされたカウンタ32をも含
む。カウンタ32は、ダウン・カウンタであり、これ
は、最初にLUT26からインデックス値を入力されて
おり、ステップ8のループ6、10、8を実施するため
に、ALU18からのUNDERFLOW信号に従っ
て、そのインデックスを減分する。信号34、すなわち
UNDERFLOWは、比較ステップ10の結果を表し
ている。下位桁あふれは、Cから被加数Gi(図9で
は、Qと表示)を差し引くと結果が負になったことを意
味する。多数のALUにおいて、負の結果は、負の符号
値を表示する符号ビット信号の値から検出される。
【0063】多重化装置(マルチプレクサ)29は、入
力としてLUT26から直接にインデックスを、またカ
ウンタ32から減分されたインデックスを受け取る。マ
ルチプレクサ29は、ステップ10でUNDERFLO
Wが発生したかどうかを表す制御信号に基づいてこれら
のインデックス中から選択する。この制御信号は、下位
桁あふれが発生するとセットされ、記号が復号された後
に適当な制御機構(図示せず)によってリセットされる
ラッチ31を使って供給することが好ましい。
【0064】Lビット・インデックスの代わりに、kビ
ット・インデックス(k<L)が逆参照表の作成に使用
できる。なお、kビットしか持たないインデックスが、
幾つかの記号の一つに復号されることがときどきある。
例として、図7の逆参照表を取り上げる。2ビット・イ
ンデックス00は、復号される記号としてaとbのどちら
かを指す。この曖昧さは、幾つかの方法で解決でき、例
えば、第2の参照表あるいは逐次減算法を使用する。
【0065】具体的な例として、図9のkビット・イン
デックスを使った別の実施例を考える。図9の装置は、
ALU18と、16ビットCレジスタ20と、10ビッ
ト参照表26と、被加数28を含む。記号の復号のため
に、Cレジスタ値の最上位10ビットだけが、インデッ
クスjとしてバス30を経由して参照表に送出される。
【0066】この10ビット・インデックスは、すべて
同じ最上位10ビットを共有する被加数表中の幾つかの
被加数に対応するので、復号される記号を指す適当な被
加数を反復法で決定することができる。図5を再度参照
すると、jに対応する幾つかの被加数のうちで最大の被
加数が、Cレジスタから差し引かれる。その引き算の結
果が負である(すなわち、下位桁あふれを引き起こす)
場合、その被加数は復号される記号に対して大き過ぎ
る。その差し引かれた値を加え直して、Cレジスタ値を
復元する。正の引き算結果が得られるまで、インデック
スjに対応する次に小さな被加数を使ってこのプロセス
を繰り返す。最後に差し引かれた被加数に対応する記号
iが、復号された記号として出力される。引き算の結果
は、量liだけ左にシフトされ、Cレジスタに記憶さ
れ、Cレジスタは、復号される次の記号用のインデック
スjを与える。
【0067】被加数に基づく符号化器 本発明の別の特定の実施例によれば、m元アルファベッ
ト{1,...,i,...,m}用の、高い効率で、順序を維持
し、高速で復号する、被加数に基づく(Aベースの)符
号化器が構築される。記号iの符号化には、Cレジスタ
とAレジスタを含む算術復号器が必要である。
【0068】現Aレジスタ値Aの検査に依存する被加数
の任意の条件的スケーリングなしに、入力記号iに対応
する被加数Ag(i)が、Cレジスタに維持されている
符号列Cに加算される。iがmに等しい(これは記号集
合の最後の記号である)場合を除いて、Ad(i)は、
再正規化の前にAレジスタの新しい値となるが、iがm
に等しい場合は、再正規化の前のAレジスタの新しい値
は、現在の値AからAdSumを差し引いたものであ
り、AdSumは、i=1から(m−1)の場合のAd
(i)の和と定義されている。
【0069】次に両方のレジスタが再正規化され、記号
iと算術符号化器または復号器の内部状態に応じた適切
な量Siだけシフトされる。
【0070】順序の最後に現れるm番目の記号が、最も
確率の高い記号MPSであるという、米国特許第465285
6号の場合の復号プロセスを考える。復号器は、符号化
記号を回復するために、符号化された結果を元に戻す。
被加数Ag(i)は通常通り(Ag(0)=0等)決定
されるが、MPSは最後の記号なので、Ag(MPS)
=AdSumとなる。
【0071】本発明の一態様によれば、引き算の結果が
正であることを維持しながら、復号器は、Cレジスタに
維持されている符号列の最上位ビットから、復号器がC
レジスタに加算できる可能な最大の被加数Ag(i)を
差し引く。その被加数に対応する加数Ad(i)が、再
正規化の前にAレジスタの新しい値となる。次にAレジ
スタとCレジスタの値は、適切な再正規化のための左シ
フトを施されるが、これは、その符号化後に同じ記号に
対してこれら2つのレジスタ内で行われる。
【0072】復号器に必要な前記の可能な最大の被加数
は、多数の方法で、好都合なように決定することができ
る。例えば、Ad(i)から開始して、差が負になるま
で、それぞれ次のAd(i)をCレジスタから繰り返し
て差し引く。Ad(m)は、A−AdSumとして計算
されることに留意されたい。負の結果をもたらす加数A
d(j)は、Cレジスタに加え直され、jが復号された
記号となる。
【0073】この状況において、高速復号は、前記の可
能な最大の被加数の高速な探索と識別に依存している。
具体的な例として、このタスクを達成するため、まず、
Cレジスタからのビットでアドレス指定される、復号表
または参照表を作成する。ここで、Cレジスタは、Nビ
ットの精度を持ち(すなわち、Aレジスタは、N−1個
の分数ビットを持つ)、復号表は、0<k≦Nとして、
k個のアドレス・ビットを持つ。
【0074】k=N=12の特定の場合を考える。復号
表は、'000'X(0)から'FFF'X(4095)までの212=409
6個のエントリを持つ。各12ビット・インデックスj
に、Ag(i)≦j<Ag(i+1)となる一義的な値
iが対応する。MPSは最後なので、最高のアドレスが
MPSに復号される。各jに対する表のエントリは、
i、Ad(i)、Ag(i)、シフト量S(i)等の値
を含む。記号iを復号するためには、新しいAレジスタ
値Diと新しいCレジスタ値(Aレジスタの元の値から
Ag(i)を引いたもの)を、数回の簡単な表の参照と
算術計算で決定することができる。各Ad(i)に対す
るシフト数はアプリオリに計算できるので、シフト量も
復号表から検索することができる。
【0075】復号表のアドレス・ビット数kが、Cレジ
スタ内の精度ビット数Nより小さい場合を考える。下記
の式を満足するn個の被加数(n≧2)が存在する。
【数5】j−1<Ag(i)<Ag(i+1)<...<
Ag(i+n−1)≦j<Ag(i+n) 第2表を使用すると、インデックスjに対応する前記の
復号表にあるエントリは、i、i+1、...、i+n−
1のうちのいずれかであり、その選択は、その課題の解
決をするための方針に依存する。例えば、最初の表のエ
ントリは、インデックスとしてCレジスタの残りのN−
kビットを使って、第2の参照に使われる特別な表を示
すこともできる。
【0076】別の手法では、特別なフラグが、主表のエ
ントリを多重被加数状況として指示し、最大の適用可能
被加数値(すなわち、Ag(i+n−1))をその表に
入れる。Cレジスタ値からAg(i+n−1)を差し引
いた結果が正であれば、その対応する記号i+n−1が
復号された記号となる。第3の手法では、表が、適用さ
れる最小値Ag(i)だけでなく、インデックスiも提
供する。Cレジスタ値が負になるまで、この最小値Ag
(i)に加数を繰り返し加算することにより、復号され
た記号が決定される。
【0077】その代わりに、整数長の場合に対する図5
に似た第2表の手法が、図11に示されている。図11
で、ステップ40と42は、図5の最初の2ステップで
あるステップ2と4に対応する。
【0078】ステップ44において、加数がA−AdS
umとして計算される最後の記号を除いて、加数Ad
(i)が得られる。引き算のステップは、ステップ48
である。引き算の結果が正ならば、ステップ50で、記
号iが復号され、引き算から得られた正の差が、再正規
化の前にCの新しい値となる。そうでなければ、ステッ
プ46でiが減分され、再度検査が行われる。
【0079】順序の最後の記号が復号された場合(ステ
ップ54)、再正規化の前に、Aの新しい値がA−Ad
Sumとして計算される(ステップ56)。そうでなけ
れば、参照値Ad(i)がAの新しい値となる。
【0080】ステップ58において、再正規化が実施さ
れる。最後の記号が復号された場合を除き、システム
は、次の記号を復号するために準備する。
【0081】ステップ48で、負の結果はAg(i)が
大き過ぎることを意味するので、ステップ46で、次に
大きい被加数値にアクセスするために、インデックスを
減分する。被加数値が正しい記号を復号するのに十分に
小さい(しかし、より小さくはない)場合、44、4
8、46のループから出る。
【0082】図12は、図9の修正版であり、参照表2
6がCレジスタ中の最上位kビットに適用できる、最大
可能インデックスiを提供する。例えば、レジスタが1
6ビットで、kが10ビットなら、10ビット構成0.00
1111000について、Cレジスタ中の最大可能値は、0.001
11000111111である。すなわち、表中のインデックスi
は、Ag(i)がCの最大値以下の場合のインデックス
である。その場合に、明らかに、Ag(i+1)は、0.0
0111001000000以上でなければならない。最後の記号
(最大のインデックスi)が可能ならば、その最後の記
号が、最初に検査されることに留意されたい。
【0083】インデックスが初めて使われるときは、A
LU18による被加数Ag(i)の最初の引き算試行の
ためにQ表64をアドレス指定するために、そのインデ
ックスは、マルチプレクサ29を通過する。下位桁あふ
れがあると、信号34がiを減分させ、マルチプレクサ
29が第2記憶装置64のアドレスとしてカウンタ値を
選択する。
【0084】LUT62が最大のインデックスを出力す
ると想像されたい。このことが復号器66で検出され、
制御装置68に通知される。信号70に現れる加数は、
実際はAdSumであり、復号される記号が順序の最後
のものであれば、それをAレジスタから差し引かなけれ
ばならない。ALU72は、その引き算をし、マルチプ
レクサ74は、再正規化の前に、Aレジスタ用の値を得
るために、Aとの差を選択する。最上位ビット位置、S
ignal Test76が1の値を得るまで、Aレジ
スタを左シフトにより再正規化することができる。
【0085】最初のインデックス(LUT62から開始
する)が復号された記号ではない場合には、ダウン・カ
ウンタ32が次々により小さい値のAg(i)にアクセ
スする。UNDERFLOW34が次のダウン・カウン
トを禁止すると、その探索は終了し、制御装置68は、
現在のインデックスが復号された記号であると認める。
最後のもの(上記のように処理する)以外の記号に対し
て、表64は、信号70上で、Aレジスタの新しく正規
化された値を供給し、信号78上でCレジスタをシフト
するためのシフト量を供給する。
【0086】上記の探索方法のどの方法の復号速度も、
接頭辞特性を持つハフマン符号で達成される速度と同様
である。上記の手法を組み合わせても(k=Nかk<N
のどちらか)、所望の探索結果が得られる。
【0087】算術符号の基底2システムにおいてAレジ
スタ値が、1.0から2.0まで変化する場合、追加の符号空
間は、0.0(Aレジスタ値が1.0の場合)からほぼ1.0
(Aレジスタ値が2.0の場合)まで変化する。この追加
の符号空間は、最後の記号がデフォールトになり、これ
は米国特許第4652856号の場合はMPSであった。最後
の記号が最も確率が高いものであれば、符号化は最も効
率的である。しかし、MPS用の空間を確保するため
に、Ad(m)がAから他の加数の合計であるAdSu
mを引いたものであり、AdSumがAレジスタに対す
る最小許容値であるAminより小さい限り、どんな記
号mが最後の記号に選ばれた場合でも、上記の符号化お
よび復号プロセスは正しく動作する。
【0088】Aレジスタ値が2.0に近い場合、算術符号
化の順序の最後の記号を除いて、各符号化記号は、最大
効率の符号空間の悪くとも半分だけで符号化される。A
レジスタ値が1.0に近い場合だけ、各記号は、最高の符
号化効率のために必要な符号空間を受け取る。
【0089】本発明の別の実施例によれば、以前に定義
した算術符号化器を使う間、分類順序が維持されるよう
に、前記の参照表を拡張することができる。図13に、
この実施例に対する数字列の分割を示す。分類順序を維
持する際に、算術符号順序の最後の記号mが、必ずしも
最も確率の高い記号(MPS)とはならないことに留意
されたい。それとは対照的に、順序の最後の記号は常
に、ここでhで示す最も確率の高い記号である。以下の
議論では、MPS以外のすべての記号は、以前のよう
に、加数値Ad(i)を事前に割り当てられている。M
PSに対して等価な加数は、以前の値から変化した現在
のAの値に依存する。
【0090】k=Nの場合を再度考える。記号hを1<
h<mで、m元アルファベットのMPSであると仮定す
る。符号化か復号のどちらかの間、Aレジスタを使用す
る繰返しにおいて、現在の記号iがhでない場合、前記
の状況の場合と同様に、Aレジスタはその中のAd
(i)で終了する。追加の符号空間cが記号hに与えら
れると、1からh−1までの任意の記号が、算術符号順序
中でhより先行する。これらの記号は、MPSに対する
「下位の」記号であり、和について以下の関係式が成立
する。
【数6】 一方、h+1からmまでの記号は、MPSの「上位の」
側にある。第2参照表は、これら「上位」記号に関する
特性に対して作成される。上位記号の合計確率は、すべ
て第2参照表に含まれている、最後の記号mからh+1
までの逆順で加数値Ad(i)を累計することにより計
算される。上位記号の合計確率は、下記のように計算で
きる。
【数7】 上位記号の合計確率と下位記号の累積確率をAレジスタ
値から差し引いた後、Aレジスタ内の結果の値は、hと
追加符号空間cに割り当てられた最小確率である。Ad
(h)の現在値の計算は、A−AdSumH−AdSu
mLである。
【0091】前記の第2参照表の使用法を説明するため
に、n>hとして、記号nの符号化の間、Cレジスタを
使用する繰返しを考える。以前の記号の累計確率は、こ
のとき、Ag(h−1)+p(h)+c+p(h+1)+
p(h+2)+...+p(n−1)である。この計算は、
最後の記号mから作業を始めると好都合である。Aレジ
スタ値とCレジスタ値の和をC(hi)とする、したが
って、C(hi)=C+Aである。したがって、Ag
(m)=Ag(hi)−p(m)、Ag(m−1)=C
(hi)−(p(m)+p(m−1))であり、以下同
様である。Ag(n)をp(m)+p(m−1)+...+
p(n)と定義する。hの符号化のための上記の繰返し
の結果、新しいCレジスタ値C(hi)−Ag(n)、
またはそれと等価であるが、C+(A−Ag(n))と
なる。
【0092】最後に、順序を維持する復号プロセスにお
いて、i≦hとして、記号iは、前記の方法で復号でき
る。特に、復号される記号は、Cレジスタのk個の先行
ビットを参照することによって決定される。n<hとし
て、ある記号nに対して、前記の第2参照表が使われ
る。
【0093】上記のプロセスを説明するため、yがMP
Sである、図1の4記号の例に対する被加数に基づく符
号を再度考える。前記のリッサネンとモヒーウッディン
による従来技術において、yは、図2に示すように、数
字列上の最も右にある。この例で、Aレジスタの再正規
化点は1.0であり、Aレジスタ値は、[1.0, 2.0)、すな
わち左側が閉で、右側が開である範囲にある。すなわ
ち、リッサネンとモヒーウッディンの方法のように間隔
[0.75, 1.5)を使う代わりに、間隔の新しいCloの位置
を識別するp(i)とAの積を近似する加数値まで、記
号の確率を「スケールアップ」することができる。
【0094】一般に、Chiに基づく表は、上位LUT参
照において値A−Cloを使用し、値Cloは、下位LUT
に対して使用される。各事例で初期インデックスが、検
査のために抜き出される。下位の参照について、Cから
差し引いても負にならない最大のAg(i)を探索す
る。ただし、CはAdSumより小さくなければならな
い。CがA−AdSumHより小さい場合、下位参照表
が、上位LUTを指す。
【0095】同様に、CがAdSumLより小さい場合
は、上位のLUTが、その答えに対する下位LUTを指
す。A−Cloの値が小さいほど、復号されるインデック
スは大きくなる。A−Cloが最後の記号に対する加数A
d(m)より小さい場合は、その最後の記号が復号され
る。Ad(m)より大きいがAd(m)+Ad(m−
1)より小さい場合は、記号m−1が復号される。
【0096】IM1を使うアルゴリズムは、通常、間隔
値の上限が下限の2k倍である範囲を使用する。kは、1
より大きい整数である。例えば、kは12とすることが
できる。
【0097】図2において、Aが最小値1.0である場合
でも、MPS符号空間用のスペースがあることに留意さ
れたい。等価な被加数値を複雑な方法で再スケーリング
されなければならない、従来技術の米国特許第4652856
号の場合には、必ずしもそうではなかった。この点に関
して、Aレジスタに基づく再スケーリングを行なう本発
明によって教示される好ましい方法は、米国特許第4652
856号の方法よりも実施が容易である。本発明の方法の
この変形では、非MPS記号に与えられた符号空間をよ
り正確に反映するために必要がないからである。
【0098】記号の辞書的順序が、本発明においてどの
ようにして維持されるかを説明するために、図2の4記
号がアルファベットにおける辞書的順序に従って並べて
いる図4を考える。図4において、yに対する符号空間
は、図2や図3の場合と同様に、依然としてA−[Ag
(w)+Ag(x)+Ag(z)]である。しかし、間
隔の両端から内側にあるMPSに対する符号空間を識別
すると、MPSを常に最右端に置く必要はなくなる。C
lo、ChiまたはAあるいはその両方によって定義された
現在の間隔が与えられるものとすれば、記号iの符号化
後の新しい間隔は、下記の表2に示される。
【0099】
【表2】
【0100】前記のように、非MPS記号の被加数値
は、対応する記号の確率から決定される。図4に示すよ
うに、A=1.0のときに、MPS用の最小の符号空間
が、存在する。
【0101】本発明において、yに割り当てられた符号
空間A−[Ag(w)+Ag(x)+Ag(z)]がゼ
ロより大きくなるように、合計Ag(w)+Ag(x)
+Ag(z)が1.0より小さいことが必要である。任意
の非MPS記号iについてAg(i)= P(i)なら
ば、この要件は必ず満たされる。しかし、Aレジスタの
期待値は、通常、1.3と1.5の間なので、被加数Ag
(i)は適当にスケールアップされる。
【0102】上記の被加数に基づく算術符号の符号化プ
ロセスをさらに説明するために、下記の例1と例2を考
える。
【0103】(例1)
【表3】 aはMPSなので、Chiを「アンカー」点として選ぶの
が適切である。記号dに割り当てられた符号空間Ag
(d)は、kxp(d)として選択される。ここで、再
分布係数kは、あまり小さくないMPSに対する符号空
間を維持しながら、その確率集団の再分布が行えるよう
に選ぶと好都合である。経験的に、1.2と1.4の間の数値
を再分布係数に選ぶことができる。この例では、kは1.
4とした。記号cに割り当てられる符号空間は、理想的
には1.4xp(c)であるが、追加の量を表すのに十分
な精度が無いため、依然として0.00001である。記号b
に対する符号空間は、1.4xp(b)
【数8】 である。非MPS記号の全てに対して同じ再分布係数を
選ぶ必要はないが、非MPS記号の全てに単一の値が適
用されることが実施上好ましいことに留意されたい。最
後に、Ag(d)、Ag(c)およびAg(b)の合計
は0.10101なので、MPS(記号a)に割り当てられる
符号空間は、A−0.10101である。
【0104】4つの記号a、b、c、dのそれぞれの符
号化に際して、Cレジスタへの加数、新しいAレジスタ
値A、およびAを発生させるために必要なシフト数は、
下記の通りである。
【0105】
【表4】 i=b,c,dとして、非MPS記号iを符号化した後
の新しいAレジスタ値は、1≦A<2となる量だけシフト
されたAg(i)であることに留意されたい。
【0106】(例2)それぞれが例1の記号と同じ対応
する確率を持つ、記号b、a、d、cという新しい順序
を考える。すなわち、
【表5】 記号 確率 p(i) 符号空間 Ag(i) b 0.00010 0.00011 a 0.10001 A - 0.10101 d 0.01100 0.10001 c 0.00001 0.00001
【0107】4つの記号a、b、c、dのそれぞれの符
号化に際して、Cレジスタへの加数、新しいAレジスタ
値A、およびAを発生させるために必要なシフト数は、
下記の通りである。
【0108】
【表6】 記号 Cに加算される量 Aの新しい値 シフト数 b 0 1.10000 4 a 0.00011 A < 1.10101ならば A < 1.10101なら ば (A-0.10101)× 1/2 1 そうでなければ そうでなければ0 A - 0.10101 d (A - 0.10101)+0.00011 1.00010 1 c (A - 0.10101)+0.00011+0.10001 1.00000 5 この場合も、i=b,c,dとして、非MPS記号iを
符号化した後の新しいAレジスタ値は、1≦A<2となる
量だけシフトされたAg(i)である。
【0109】同様に、本発明の被加数に基づく算術符号
の符号化プロセスをさらに説明するために、下記の例3
と例4を考える。
【0110】(例3)下記の4記号アルファベットを考
える。
【表7】 記号 確率 p(i) 符号空間 Ag(i) e 0.04 0.05 f 0.24 0.30 g 0.57 A - 0.54 h 0.15 0.19 非MPS記号に割り当てられる符号空間Ag(i)は、
記号確率を再分布係数kによりスケールアップすること
によって得られる。この例では、kは1.25である。MP
SであるAg(g)に対する符号空間は、最小値の0.46
を有し、常に1.46より小さい。
【0111】MPSは、辞書的順序のどちらの端にもな
いので、CloもChiも「アンカー」点として使用されな
い。その結果、2つの復号表が必要になる。辞書的順序
でMPSの左側の記号は表8で復号され、一方、辞書的
順序でMPSの右側の記号は表9で復号される。
【0112】
【表8】表8 記号iの復号 記号i−1でなく、 参照する表 次に記号iを復号する かつ以下の場合 0≦C<0.05=Ag(f) 3.1 e 0.5≦C<0.35=Ag(g) 3.1 f C<A−0.19=A−AdSumH 3.2 gまたはh(上位LUT ) C≧A−0.19 3.2 g
【0113】
【表9】表9 記号iの復号 記号i−1でなく、 参照する表 次に記号iを復号する かつ以下の場合 A−Clo<0.19=AdSumH 3.2 h A−Clo>0.19 3.2 g if C≧0.35=AdSumL 3.2 gまたはh ifC<0.35 3.2 use lower LUT
【0114】表8から、ゼロ以上で0.05(すなわち、A
g(c))より小さいCレジスタ値なら、記号cに復号
される。0.05以上で、0.35(すなわち、Ag(e)+A
g(f))より小さいCレジスタ値なら、記号fに復号
される。全ビット精度の参照表は0.05のアドレスがある
ことに留意されたい。全ビット精度でない参照表は0.05
を含む(が等しくはない)アドレスがある。
【0115】後者の状況では、そのアドレスの内容が、
乗算被加数の場合にフラグを立て、かつ復号プロセスを
実行するために、さらに動作を実行する必要がある。
【0116】Cレジスタ値が0.35以上であれば、Aレジ
スタ値を検査しなければならない。Cレジスタ値がAレ
ジスタ値から0.19(すなわち、Ag(h))を差し引い
たものより大きい場合には、復号エントリはgであると
一義的に決定される。しかし、CがA−0.19より小さけ
れば、復号される記号はgかhのどちらかになる。この
点に関して、復号エントリを決定するために表9を参照
しなければならない。
【0117】上記の記号iが復号されると、Cレジスタ
とAレジスタに対する新しい値が、下記のように計算さ
れる。
【0118】
【表10】
【0119】最後に、最も確率の低い記号の確率が最小
の被加数値を決定し、この値(2進数)は、復号に必要
なアドレスのビット数を低減するために増加方向に調整
することができる。
【0120】(例4)5ビットの精度で表された確率と
被加数を持ち、辞書的順序に並んだ下記の5つの記号を
考える。
【表11】 記号 2進法による確率 被加数 累計 l 0.00001 0.0001 0 m 0.00111 0.0100 0.0001 n 0.01110 A - 0.1011 0.0101 p 0.00100 0.0010 - 0.0110 q 0.00110 0.0100 - 0.0100
【0121】Aの最小値が1.0000なので、記号n(MP
S)に対する最小の符号空間は、0.0101である。5ビッ
ト精度が被加数には必要でないように、非MPS記号
(l、m、pおよびq)の被加数値がそれぞれの確率か
らスケールアップされる。これには、参照記憶の大きさ
を半分に減らすという利点がある。最後の欄の最後の二
つの値、すなわちCum(p)とCum(q)は、辞書
的順序でMPSの右側の記号、すなわちpとqの復号の
間に符号列から差し引かれる値を表すので、負である。
【0122】MPSは、辞書的順序のどちらの端にもな
いので、2つの復号表、どちらも4ビット精度の表12
と表13が、復号のために必要である。
【0123】
【表12】 C 復号エントリ 0.0000 l 0.0001 m 0.0010 m 0.0011 m 0.0100 m 0.0101 n 0.0110 n 0.0111 n 0.1000 n 0.1001 n 0.1010 nまたはp 0.1011 nまたはp 0.1100 nまたはpまたはq ... 表13参照
【0124】
【表13】
【0125】上記の復号表の使用例は、下記の通りであ
る。C=0.1101かつA=1.1100とする。A−Cの値は、
0.1111である。復号表12は、エントリ1.0000(?)に
あるn、pまたはq(?)の一つが復号される記号であ
ることを示している。一方、復号表13は、mまたはn
が復号される記号であることを示している。したがっ
て、復号される記号は、両方の復号表を満足する唯一の
記号であるnでなければならない。
【0126】記号nの復号後、新しいCレジスタ値は、
0.1101−0.0101となり、新しいAレジスタ値は、古いA
から0.1011または1.0001を差し引いたものとなる。
【0127】C=0.1101かつA=1.0000とすると、A−
Cは0.0011となる。表12は、「nまたはpまたはq」
を与え、一方、表13のアドレス0.0011はqを与える。
したがって、復号される記号はqである。
【0128】C=0.1001かつA=1.0000(表を作成する
ために使用される極端な場合)とする。復号表12で、
0.1001は、nの復号のための最後の値である。これは、
A=1.000の場合に発生し、この場合、復号表13のア
ドレス0.0111が、nの復号のために、その表の最初の値
を指す。またnに割り振られた最小の符号空間は0.0101
なので、各4ビット精度の参照表に5つの対応するアド
レスがあることに留意すべきである。
【0129】最後に、Cが0.0101で、Aが1.1111(すな
わち、その最大値)とする。A−Cは1.1010であり、復
号される記号が、表13でnかmのどちらかであること
を示している。Aが1.0より大きいときには、値はAに
加えるのではなく、Aから差し引かれることに留意され
たい。その結果、Aは左シフトによってのみ、1.0000よ
り大きくなる。従来通り、1つのゼロが左シフトされ
る。このエントリについて、Aが1.1111より小さけれ
ば、Cは0.0101より小さい。表1は、復号される記号が
何かを一義的に決定する。
【0130】本発明に従った復号方法のソフトウェアに
よる実施を、付録として本開示文書に添付する。
【0131】本発明は、主に、方法として開示されてい
るが、CPU、記憶装置、入出力装置、プログラム記憶
装置、結合バス、および他の適当な構成要素を含む従来
のデータ演算処理装置などの装置を、本発明の方法の実
施を可能にするためにプログラムしまたはその他の形で
設計することが可能なことを当業者なら理解されよう。
そのような演算処理装置は、本発明の方法を実行するた
めの適当なプログラム手段を含む。また、事前に記録済
みのディスクや他の類似のプログラム製品など、データ
処理システムで使用される製造物品が、記憶媒体と、そ
れに記録された、本発明の方法の実施を可能にするため
にデータ処理システムに指令するプログラム手段とを含
むこともできる。そのような装置や製造物品も、本発明
の趣旨および範囲に含まれることを理解されたい。
【0132】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0133】(1)記号に関して所定の順序を有するア
ルファベットの諸記号の符号化および復号のための装置
において、それぞれの記号について、所定の順序でそれ
ぞれの記号に先行するアルファベットの全記号の累積確
率に関係する値を有するそれぞれの被加数を含む被加数
表と、(i)記号の数値表現を生成し、(ii)符号化さ
れる記号に先行する記号の累積確率に関係する値をもつ
被加数に、前記表現を加算し、(iii)再正規化のため
に、左シフトすることによって、記号を符号化する手段
と、(i)符号列の少なくとも1つの最上位ビットから
符号化記号を識別し、(ii)符号化記号を生成するため
に、前記記号に被加数表のどの被加数を加算するかを決
定し、(iii)前記決定ステップで決定された前記被加
数により、符号列から符号化記号を獲得することによっ
て、符号列から記号を復号するための手段とを含む装
置。 (2)復号手段が、符号化記号の値より小さい値をもつ
最大累積確率を識別することによって前記合計から復号
された記号を得る手段を含むことを特徴とする上記
(1)に記載の装置。 (3)アルファベットの符号化記号に対応するそれぞれ
のインデックス値によってアドレス指定される、それぞ
れの復号された記号を含む逆の表をさらに含む上記
(1)に記載の装置。 (4)前記復号手段において、前記合計が同時に生成さ
れることを特徴とする上記(1)に記載の装置。
【0134】付録 これは、記号に関する固定した統計に基づくアルゴリズ
ムである。このアルゴリズムは、まず、MPS(最も確率
の高い記号)を識別し、次に、下記のように、256個の
記号に対する配列fcumを計算する。prob(N)が1から3276
7までの間にスケーリングされたN番目の記号の確率であ
るとして、N≦MPSの場合には、fcum(N) =prob(0)+prob
(1)+...+prob(N-1)であり、N>MPSの場合は、fcum(N) =
prob(N)+prob(N+1)+...+prob(256)である。二つの参照
表right_dexとleft_dexがあり、それぞれ長さ1KBであ
る。AをAレジスタ値、CをCレジスタ値とすると、righ
t_dexは、差A-Cの最初の10ビットを取り、fcum(N)≧A-C
を満足する最大のN(>MPS)を指す。そのようなNが存在
する場合、right_crashは 、1より大きな可能性がある
かどうかを示す。right_dexで記号を復号できない場
合、left_dexが、fcum(N)≦A-Cになるような最大のN(≦
MPS)を指す。この場合も、left_crashが多重解の可能性
があるかどうかを示し、それがある場合には、線形探索
が実行される。
【0135】charsは、処理された文字数である。cycle
_cntは、記号が復号される前の引き算の回数である。し
たがって、例えば、right_dexかleft_dexのどちらか
が、失敗なく記号の発見に成功した場合、ただ一度の引
き算が実行される。引き算の回数を、繰り返しの単位と
みなす。
【0136】 right_dex: 配列(.0..1023.)の整数; left_dex: 配列(.0..1023.)の整数; right_crash: 配列(.0..1023.)のブール数; left_crash: 配列(.0..1023.)のブール数; cycle_cnt: 整数; chars: 整数;
【0137】この手順で、right_dex、left_dex、right
_crashおよびleft_crashが初期設定される。
【0138】所与のどの場合でも、レジスタの最初の10
ビットが、最大レジスタ値を使って可能な解を指す。次
に最小のレジスタ値を使って、多重解の可能性があるか
どうかを検査する。そのような場合、フラグ「crash」
が、「true」に設定される。
【0139】 procedure initializeproc; var i, j, N: integer; begin for i: = 0 to 1023 do begin right_crash(.i.):= false; left_crash(.i.):= false; end; for i:= 0 to 1023 do begin N:= 255; while ( N > MPS) and (fcum(.N.) < i * 64) do N:= N - 1; right_dex(.i.):= N; if (N > MPS) and (fcum(.N.) < i * 64 + 63) then right_crash(.i.):= true; end; for i:= 0 to 1023 do begin N: = MPS; while fcum(.N.): > 1 * 64 + 63 do N:= N - 1; left_dex(.i.):= N; if fcum(.N.) > i * 64 then left_crash(.i.): = true; end;
【0140】「A-C」の最初の10ビットからのfdecproc
は、記号を見つけ出すために、まず、right_dexを使用
する。答が見つかると、right_crashは、探索が必要か
どうかを指示する。right_decがMPSを指す場合は、解が
MPS以下であることを示す。次に、left_dexを使用し
て、left_crashが探索が必要かどうかを指示する。
【0141】ハードウェアで実施する場合、右と左を並
列に使用でき、left_dexは、right_dexの答を待つ必要
はないことに留意されたい。
【0142】 procedure fdecproc; var N,M, i: integer; fini: boolean; begin fini:= false; if a < c then begin N:= 255 fini:= true; end else begin i: = (a - c)div 64; N: = right_hash(.i.); if N > MPS then if not(right_crash(.i.)) then fini:= true else bigin while (N > MPS) and (a - c > fcum(.N.)) do begin N:= N - 1; cycle_cnt:= cycle_cnt + 1; end; if N > MPS then fini:= true; end; end; if not(fini) then begin i:= c div 64; N:= left_hash(.i.); if left_crash(.i.) then while c < fcum(.N.) do begin N:= N - 1; cycle_cnt:= cycle_cnt + 1; end; end; if N > MPS then c:= c - a + fcum(.N.) else c:= c - fcum(.N.); if N <> MPS then a:= fprob(.N.) else a:= a - fcum(.N.) - fcum(.N+1.); if a < renormval then derenormproc; write(outfile9, chr(N)); treepointer;= N + 2; end;
【0143】
【発明の効果】以上により、本発明によって、従来の方
法やシステムで得られなかった高速の符号化および復号
速度、高い圧縮効率、辞書的順序の維持、および簡単な
実施を併せて達成する、効率が高く、順序を維持する符
号化技術が提供されることとなった。
【図面の簡単な説明】
【図1】1つのアルファベットの4つの記号の間での、
間隔幅Aの小分割を示す図である。
【図2】Aが1.0の場合の、4記号アルファベットに対
する符号空間の割振りを示す図である。
【図3】本発明の別の実施例に対する符号空間の割振り
を示す図である。
【図4】本発明の別の実施例に対する符号空間の割振り
を示す図である。
【図5】整数長算術符号化器の復号プロセスの流れ図で
ある。
【図6】4記号アルファベットに対する被加数(Ag
(i)またはGi)表を示す図である。
【図7】図6におけるアルファベットに対する逆参照表
を示す図である。
【図8】本発明の第1の実施例による復号装置を示す図
である。
【図9】本発明の別の実施例による復号装置を示す図で
ある。
【図10】本発明の別の実施例による復号装置である。
【図11】本発明の別の実施例の復号プロセスの流れ図
である。
【図12】本発明の別の実施例による復号装置を示す図
である。
【図13】本発明のさらに別の実施例に対する符号空間
の割振りを示す図である。
【符号の説明】
18 演算論理機構 20 Cレジスタ 22 記憶装置 24 第2記憶装置 25 多重化装置 32 カウンタ 34 下位桁あふれ信号 62 参照表 64 第2記憶装置 66 復号器 68 制御装置 72 演算論理機構 74 多重化装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アハマド・ザンディー アメリカ合衆国95014 カリフォルニア 州クパーティーノ ジョンソン・アベニ ュー10791 (56)参考文献 特開 平2−53329(JP,A) (58)調査した分野(Int.Cl.6,DB名) H03M 7/40

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】記号に関して所定の順序を有するアルファ
    ベットの諸記号の符号化および復号のための装置におい
    て、 それぞれの記号について、所定の順序でそれぞれの記号
    に先行するアルファベットの全記号の累積確率に関係す
    る値を有するそれぞれの被加数Giを含む被加数表であ
    って、前記累積確率がそれぞれの記号に先行するアルフ
    ァベットの記号の確率Pjを2の負の累乗2-li(但しl
    iは整数の記号符号語長)で近似した確率に基づくもの
    である被加数表と、 (i)記号の数値表現を生成し、 (ii)符号化される記号に先行する記号の累積確率に関
    係する値をもつ被加数に、前記表現を加算して合計値を
    生成し、 (iii)前記合計値を再正規化のために、liビット左
    シフトすることによって、 記号を符号化する手段と、 (i)符号列の少なくとも1つの最上位ビットから符号
    化記号を識別し、 (ii)符号化記号を生成するために、前記記号に被加数
    表のどの被加数が加算されたかを決定し、 (iii)前記決定ステップで決定された前記被加数によ
    り、符号列から符号化記号を獲得することによって、 符号列から記号を復号するための手段とを含む装置。
  2. 【請求項2】復号手段が、符号化記号の値より小さい値
    をもつ最大累積確率を識別することによって前記合計か
    ら復号された記号を得る手段を含むことを特徴とする請
    求項1に記載の装置。
  3. 【請求項3】アルファベットの符号化記号に対応するそ
    れぞれのインデックス値によってアドレス指定される、
    それぞれの復号された記号を含む逆の表をさらに含む請
    求項1に記載の装置。
  4. 【請求項4】前記復号手段において、前記合計が同時に
    生成されることを特徴とする請求項1に記載の装置。
JP6288285A 1994-01-03 1994-11-22 高速復号算術符号化装置 Expired - Lifetime JP2800880B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US176636 1994-01-03
US08/176,636 US5546080A (en) 1994-01-03 1994-01-03 Order-preserving, fast-decoding arithmetic coding arithmetic coding and compression method and apparatus

Publications (2)

Publication Number Publication Date
JPH07221653A JPH07221653A (ja) 1995-08-18
JP2800880B2 true JP2800880B2 (ja) 1998-09-21

Family

ID=22645203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6288285A Expired - Lifetime JP2800880B2 (ja) 1994-01-03 1994-11-22 高速復号算術符号化装置

Country Status (3)

Country Link
US (1) US5546080A (ja)
EP (1) EP0661668A3 (ja)
JP (1) JP2800880B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3302210B2 (ja) * 1995-02-10 2002-07-15 富士通株式会社 データ符号化/復号化方法及び装置
US5793896A (en) * 1995-03-23 1998-08-11 Intel Corporation Ordering corrector for variable length codes
US5659737A (en) * 1995-08-01 1997-08-19 Oracle Corporation Methods and apparatus for data compression that preserves order by using failure greater than and failure less than tokens
US5808572A (en) * 1997-05-22 1998-09-15 National Science Council Method and apparatus for finite-length arithmetic coding
US6101281A (en) * 1997-06-09 2000-08-08 At&T Corp. Method for improving data encoding and decoding efficiency
AU736962B2 (en) * 1997-07-09 2001-08-09 Quvis, Inc. Apparatus and method for entropy coding
JP3391251B2 (ja) * 1998-03-25 2003-03-31 三菱電機株式会社 適応確率推定方法及び適応符号化方法並びに適応復号方法
US6327634B1 (en) * 1998-08-25 2001-12-04 Xilinx, Inc. System and method for compressing and decompressing configuration data for an FPGA
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US6614789B1 (en) * 1999-12-29 2003-09-02 Nasser Yazdani Method of and apparatus for matching strings of different lengths
US20060143237A1 (en) * 2000-03-09 2006-06-29 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
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. 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
US7844579B2 (en) * 2000-03-09 2010-11-30 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
US20060173847A1 (en) * 2000-03-09 2006-08-03 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
US20060143180A1 (en) * 2000-03-09 2006-06-29 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
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
AU2003284067A1 (en) * 2002-10-11 2004-05-04 Smal Camera Technologies In-stream lossless compression of digital image sensor data
US7161507B2 (en) * 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
FI20041446A0 (fi) * 2004-11-09 2004-11-09 Jaakko Astola Menetelmä nopeaksi rekursiiviseksi koodaamiseksi elektronisissa laitteissa
WO2007002468A2 (en) * 2005-06-23 2007-01-04 1Stworks Corporation Modeling for enumerative encoding
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
US9300321B2 (en) 2010-11-05 2016-03-29 University of Maribor Light detection and ranging (LiDAR)data compression and decompression methods and apparatus
US8779950B2 (en) 2012-03-05 2014-07-15 Dcba, Llc Command encoded data compression
SI24693A (sl) 2014-03-31 2015-10-30 Univerza V Mariboru Postopek za progresivno brezizgubno stiskanje podatkov, pridobljenih s prostorskimi laserskimi prebirniki
US9558109B2 (en) 2014-04-04 2017-01-31 Samsung Israel Research Corporation Method and apparatus for flash memory arithmetic encoding and decoding
US10694217B2 (en) * 2018-09-21 2020-06-23 Intel Corporation Efficient length limiting of compression codes
EP3641137B1 (de) * 2018-10-19 2024-06-05 Siemens Aktiengesellschaft Verfahren und vorrichtung zum verarbeiten von daten
US11296720B2 (en) * 2020-08-24 2022-04-05 Innogrit Technologies Co., Ltd. Data compression using reduced numbers of occurrences
US11115049B1 (en) * 2020-08-24 2021-09-07 Innogrit Technologies Co., Ltd. Hardware friendly data decompression
CN112332854A (zh) * 2020-11-27 2021-02-05 平安普惠企业管理有限公司 霍夫曼编码的硬件实现方法、装置及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3883847A (en) * 1974-03-28 1975-05-13 Bell Telephone Labor Inc Uniform decoding of minimum-redundancy codes
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
EP0071680B1 (en) * 1981-08-07 1988-10-26 International Business Machines Corporation Data recording or transmission system using run length limited coding
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
US4494108A (en) * 1981-11-09 1985-01-15 International Business Machines Corporation Adaptive source modeling for data file compression within bounded memory
US4672539A (en) * 1985-04-17 1987-06-09 International Business Machines Corp. File compressor
US4652856A (en) * 1986-02-04 1987-03-24 International Business Machines Corporation Multiplication-free multi-alphabet arithmetic code
US4891643A (en) * 1986-09-15 1990-01-02 International Business Machines Corporation Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US4905297A (en) * 1986-09-15 1990-02-27 International Business Machines Corporation Arithmetic coding encoder and decoder system
IL86993A (en) * 1988-07-05 1991-07-18 Ibm Israel Method of generating a compressed representation of a source data string
US4929946A (en) * 1989-02-09 1990-05-29 Storage Technology Corporation Adaptive data compression apparatus including run length encoding for a tape drive system
IL91158A (en) * 1989-07-28 1993-01-31 Ibm Israel Method and system for arithmetic coding and decoding
US5010344A (en) * 1989-12-28 1991-04-23 International Business Machines Corporation Method of decoding compressed data
US5418532A (en) * 1993-05-13 1995-05-23 Bell Communications Research, Inc. Method and system for efficient, multiplication-free arithmetic coding

Also Published As

Publication number Publication date
JPH07221653A (ja) 1995-08-18
EP0661668A2 (en) 1995-07-05
US5546080A (en) 1996-08-13
EP0661668A3 (en) 1995-11-02

Similar Documents

Publication Publication Date Title
JP2800880B2 (ja) 高速復号算術符号化装置
US7265691B2 (en) Modeling for enumerative encoding
US7161507B2 (en) Fast, practically optimal entropy coding
US5179378A (en) Method and apparatus for the compression and decompression of data using Lempel-Ziv based techniques
US4286256A (en) Method and means for arithmetic coding utilizing a reduced number of operations
US5229768A (en) Adaptive data compression system
JP3262602B2 (ja) 辞書ベースのデータ圧縮/圧縮解除システム
JP3238854B2 (ja) データ圧縮方法及びデータ圧縮装置、並びにデータ復元方法及びデータ復元装置
JPH0744462B2 (ja) 圧縮符号化方法及び復号方法
JP4179640B2 (ja) 情報信号の算術符号化及び復号
US20030044074A1 (en) Device and method for decoding class-based codewords
Moffat An improved data structure for cumulative probability tables
Niemi et al. Burrows‐Wheeler post‐transformation with effective clustering and interpolative coding
Hsieh et al. An adaptive multialphabet arithmetic coding for video compression
JP2019047450A (ja) 圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラム
Blanes et al. Redundancy and optimization of tANS entropy encoders
Hoang et al. Dictionary selection using partial matching
Bassiouni et al. Efficient decoding of compressed data
JPH05241775A (ja) データ圧縮方式
Lin et al. A space-efficient Huffman decoding algorithm and its parallelism
Deorowicz et al. Deltacomp: fast and efficient compression of astronomical timelines
JP3051501B2 (ja) データ圧縮方法
JP2004128619A (ja) 符号化方法
JPH11163737A (ja) 情報源の符号化及び復号化の高速化装置
Weiss et al. Class-based decompressor design for compressed instruction memory in embedded processors