JPS6376525A - 算術符号化システムにおける確率適応化方法 - Google Patents

算術符号化システムにおける確率適応化方法

Info

Publication number
JPS6376525A
JPS6376525A JP20200787A JP20200787A JPS6376525A JP S6376525 A JPS6376525 A JP S6376525A JP 20200787 A JP20200787 A JP 20200787A JP 20200787 A JP20200787 A JP 20200787A JP S6376525 A JPS6376525 A JP S6376525A
Authority
JP
Japan
Prior art keywords
value
bit
bits
event
byte
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
JP20200787A
Other languages
English (en)
Other versions
JPH0258813B2 (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 JPS6376525A publication Critical patent/JPS6376525A/ja
Publication of JPH0258813B2 publication Critical patent/JPH0258813B2/ja
Granted 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)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、算術符号化法によって入力データを符号化し
て圧縮するとともに、算術符号化方法に基く復号によっ
てオリジナルのデータを復元する技術に関する。
B、従来技術およびその問題点 所望のデータ転送速度を得るため、または限られたメモ
リ・スペースにデータを記憶するために、データを圧縮
してビット数を減らすことが必要になる。圧縮されたデ
ータは後で復元される。このステップをデータの圧縮解
除(de−compressing)と呼ぶ。
データ圧縮/同解除技術の応用分野の1つとして、光学
式イメージングが挙げられる。該分野では1画素の暗さ
や影のような情報を大量に扱わなければならず、しかも
それらを高速で転送したり。
将来の使用に備えて記憶したりしなければならない。
算術符号化法は、データの圧縮/同解除を達成する1つ
の技術である。算術符号化では、判断(decisio
n)が次々に符号化されると、数直線に沿った、より小
さな、しかも前に規定された区間に包含される区間が規
定されていく。算術符号化法に関しては、本発明の発明
者によっていくつかの論文が著されている。G、 G、
 Langdon、 Jr、著の“An Introd
uction to Arithmetic Codi
ng”、IBM Journal of Re5ear
ch and Development、 vol。
28、n、2.1984年3月、pP、135−149
、およびり、 R,Helman、 G、 G、 La
ngdon、 Jr、、J、 J、 R15sanen
著“Arithmetic Compressionc
ode  Control  Parameters 
 Approximation”、 involume
 23、Mail、1981年4月、pP、5112−
5114がその例である。これらを引用して、従来技術
を説明する。
上記論文で述べられているように、算術符号化法によれ
ば、各判断は、可能性のある複数個の排他的な結果(o
utcome、または事象、event)を持つ。各結
果つまり事象は、シンボル化してデータの形で表わされ
る。例えば、光学式イメージング環境では、各判断はあ
る与えられた画素が黒か否かに対応する。そして、判断
の結果は、該画素が黒ならばY(つまりTES)シンボ
ルで表わされ、該画素が黒でないならN(つまりNo)
シンボルで表わされる。したがって、複数の判断を1例
えばYNYYN・・・・のようなシンボル列によって表
わすことができる。
従来の符号化技術によると、確率直線に沿っである現在
区間が規定される6第1番目の現在区間はOから1であ
る。該現在区間はセグメントに分割される。このとき、
各セグメントが、後続の判断についての可能性のある1
つの結果に対応する。
各判断について2つの結果、しか可能性がないならば、
現在区間は2つのセグメントに分割される。
各セグメントの長さは、各自の関連する確率に基づいて
いる。それぞれの確率は固定されていてもよいし1判断
データの入力とともに適応化させてもよい。
より発生頻度の高いシンボルにより大きなセグメントを
関係づけることによって、圧縮効率が向上する。上記文
献のうちの前者(“AnIntroduction t
o Arithmetic Encoding’りでは
、4シンボルの算術符号化の1例が説明されている。
そこでは、各判断が、”a″′′事象率50%)。
II l、 11事象(確率25%)、II c11事
象(確率12゜5%)、または“d”事象(確率12.
5%)に帰着され得る。これら4個の事象を2進数で表
現すると各事象について2ビツトが必要となり、それぞ
れが00.OX、10.11によって表わされる。3個
の事象、例えばきわめて起こりやすいaabの場合、符
号化を行わない正直なデータは、○0 00 01とな
り、6ビツトが必要である。
しかしながら、上記論文のページ137に見受けられる
ように、算術符号化法によればシーケンスaabは数値
、001によって表わされる。6ビツトの代りに、情報
を3ビツトで表現することができる。比較的高い確率の
関連する事象が連続して発生すると、このようにビット
が保存される。
しかしながら、確率の低い、つまり比較的線セグメント
の短い事象が数多く生じると、保存効果が低下する。上
記確率を用いた場合、事象列ddは。
未符号化データの形で1111として表わされるのに対
し、算術符号化法によると111111として表わされ
る。大きなセグメントはど発生頻度の高い事象に事実上
対応するならば、蓋然性の高いシンボルが発生するとき
に達成される保存効果は、蓋然性の低いシンボルについ
て余分にビットが必要であるという欠点を補って余りあ
る。したがって、(事象に)関連する確率(およびそれ
に対応するセグメントの長さ)が、個々の事象の実際の
確率を適度に追跡することの保証が重要である。
従来、判断データの履歴をたくさん集めながら事象確率
を推定するための様々な技術が提案されている。このよ
うな技術を記載する文献として、G、G、Langdo
n、 JrおよびJ、J、R15sanen らによる
”Method for Coding counts
 to CodingParameters”(IBM
 Technical DisclosureBull
etin第22巻第7号、1979年12月、第288
0頁ないし第2882頁)がある。この文献によれば、
カウンタが用いら、監視されるシンボルの発生からその
シンボルの確率の変化が検出されこれに応じて蓋然性の
低いシンボル(LPS)の確率qが修正される。特に、
1つのシンボルストリングの間にカウントされたシンボ
ルの総数で一方のシンボルのカウント数を割ったものを
あられすようにqが変更される。すなわち、kが一方の
シンボルのカウントでnが両シンボルのカウント数であ
るとすれば、シンボルの確率はk / nに基づいて変
化する。
LangdonおよびR15sanenらによる他の文
献“Compression of Black Wh
ite Imaqes WithArithmetic
 Coely“(IEEE Transactions
 onCommunications、 COM −2
9巻、第6号、1981年6月)には算術符号化におけ
る確率の適応化についての記載がある。非定常的な統計
への適応化を論するにあたり、この文献ではその第86
5項で次のように始めている: 1成る状態2においてr個の連続する0を受は取ってシ
ンボルS (i)が0である確率についての現在の推定
値がp = c Q / cと仮定する。ただし、co
は、c(Ol z、  s  (0)、−−−−,5(
t))と定義されるカウント値であり、CはC(Z、5
(0)、・・・・、5(t)と定義されるカウント値で
ある。ここでシンボルs (i)を受は取る。もしs 
 (i)が0なら、p’ (r+1)≧0.2となって
いるかどうかをみる。もしそうならこのamがpについ
ての推定と矛盾しないと考えて、cOおよびCを1だけ
更新して新しい推定を行う。・・・・しかしながらρ’
 (r+1)<0.2の場合は、この観測が、おそらく
、変更された統計をあられすものであるから、推定を大
きめのpの値に変更するようにしなければならない。こ
れは、カウントcoおよびCを1だけ更新する前にこれ
らを半減することによって行われる。受は取ったシンボ
ル5(i)が1ならば、確率p (r)を使って同じ信
頼性テストを行う。・・・・実際には、実現容易化のた
め、LPSのカウントに対して上限および下限を設け、
各々のスキュー値Q(s)がカウントを半減すべきかど
うかを示すようにする。′この文献には、LPSの確率
を2−Q(S)の最も近い値で近似することが記載され
ている。ここで、Q(S)は整数であり、“′スキュー
値(skewnumber)”と呼ばれている。
特別な確率適応化方法に関しては、特開昭60−196
014号公報、および本出願人による特願昭61−28
6891号明細書に記載がある。
一般的でかつ新規な確率推定器の適応化方法が。
本出願人による本願と同時に出願された特許出願(発明
の名称:算術符号化システムにおける確率適応化方法)
にも記載がある6本明細書では、本発明の詳細な説明す
るのに必要な程度に引用する。
上記特許出願では、ある事象のとり得る確率値Qeが、
例えばテーブルのような形で、指定されている。上記出
願に係る発明によると、規定された被加数値Aが、判断
が行われる度に減少していく。被加数値の減少量は事象
に依存する。すなわち、各判断の結果が、現在の確率推
定値Qeを持つL P S (less probab
le symbol)の入力またはM P S (mo
re probable symbol、蓋然性の高い
シンボル)の入力に帰着される2進アプリケーシヨンで
は、LPSが入力されると被加数値が現在のQe値に減
少する一方、MPSが入力されると被加数値Aは(A−
Qe)に減少する。更新されたAの数値が予め規定して
おいた最小値AMIN(これは、Qeの最高値よりも大
きい)未満になると、再びAが少なくともAMINにな
るまで、更新された数値の再正規化が行われる(2倍す
ることが好ましい)。上記出願に係る発明の基本概念は
、Aが再正規化される度にQを再正規化することである
。再正規化がLPS事象に続いて起こる場合は、(LP
S事象の推定確率を表わす)Qe値が増加する。再正規
がMPS事象に続く場合は、Qe値が減少する。Qeの
変更と被加数値の再正規化をリンクさせることによって
、カウンタが必要なくなり、Qeの変更に要する時間が
容易に減少するので、従来技術と比べて、Qe値のレン
ジ全体にわたって現実の確率値に密接した追跡が可能と
なる。さらに、上記出願においては、ある特定の「悪い
(bad) J値において、更新プロシージャがトラッ
プされ得ることが認識されている。例えば、1回以上倍
増されるとAMINと等しいかまたはそれに近くなる数
値の場合、以下のような面倒なシーケンスを引き起こす
(1)LPS事象の後で、Aが(悪い)Qeに等しくな
るようにセットされる。
(2)Aが少なくともAMIN以上になるまで、(1)
で更新されたAが倍増(必要ならばさらに倍増)される
。そして、今までより高いQe値が選択される。
(3) (2)で更新されたAはAMINに等しいかま
たはそれに近いので、MPS事象がただ1回生じても、
AがAMINより小さな値に下降する。その結果、再正
規化が必要になり、Qe値が減らされて(悪い)Qe値
となる。
(4)現実のLPS確率が推定値Qeよりもずっと大き
いならば、LPS事象が再度発生しやすく、その結果Q
eが現在より高い値に戻る。
(5)再びMPSが1回生じて再正規化を引き起こし、
Qe値が悪いQe値に戻る。以下同様。
上記出願の教示するところによれば、「トラッピング」
問題は「悪い」値を許さないことによって処理される。
しかしながら、この解決策の欠点は、「トラッピング」
の観点から言えば「悪い」特定の数値が、全体の効率の
観点から言えば良い数値であることである。
更新された判断の履歴に基づいて確率の適応化を図るこ
とに加えて、算術符号化のインプレメンテ−ジョンには
、他の問題事項が関係してくる。
例えば「キャリー伝播」 「ボロウ伝播」がそれである
。「キャリー伝播」の問題は、判断入力の連続に伴って
コード・ストリームCを下記の取決に従って更新する算
術符号化用符号器の場合に注意すべきである。
(1)符号化されつつあるシンボルがLPSならば、C
の値は変わらず、新しい現在区間はA (new)=Q
eになる。
(2)符号化されつつあるシンボルがMPSならば、C
は更新されてC+Qeになり、新しい現在区間はA (
neIl) = A (previous) −Q e
、つまり従前の区間からQeを引いたものになる。
区間Aはどんどん小さくなり、その小さくなった区間が
Cに加算されるので、Cの精度(つまり、コード・スト
リームの長さ)が増加する。符号化されるべく判断デー
タが入力される限り、精度は無制限に拡張してもよい、
Cは(そして精度も)不定の長さになり得るけれども、
コード・ストリーム情報を収容するメモリには限りがあ
るので、キャリーが発生すると問題になる場合がある。
特に、コード・ストリーム値が連続した数百の1である
にもかかわらず、Cの最も新しいいくつかのビットしか
シフト・レジスタに収容されていない場合に、ある数A
がCに加えられると、問題が生じる。数百個の1のビッ
トを経てキャリーが伝播するのは不可能である。なぜな
ら、最新のビットしかアクセスできないからである。キ
ャリー伝播の1つの好ましい解決策はビット・スタッフ
ィング(ビット充填)と呼ばれ、文献でもその概要が述
べられている。従来法のビット・スタッフィングでは、
1のビットが所定数並んだ後に少なくとも1つのキャリ
ー受信ビットを挿入することが示唆されている。
本出願人により本願と同時に出願された特許出願(発明
の名称:データ圧縮システム)では、「最適な」ソフト
ウェア用符号器が記載されている。
それによると、判断が符号化される度に、符号点の値は
そのままか、または減少する。したがって、コード・ス
トリームCsが0のビットのストリングを含み、かつ減
算が必要とされる場合、ボロウが、該コード・ストリー
ムの最新の部分しか収容していないシフト・レジスタの
長さを越えて伝播する可能性がある。このような「ボロ
ウ伝播」は上記特許出願において、符号化法コード・ス
トリームの中のすべてのHex’OO’バイトをHex
’F F’ とキャリー・ビットに変換することによっ
て処理されている。このように、ボロウ伝播はキャリー
伝播の状況になる。符号化の能率を犠牲にせず、かつ余
分のビットを多数必要とすることなしに、キャリーとボ
ロウを生じさせることは、望まれる目的である。
算術符号化法の他の局面として、コード・ストリーム中
に制御語を挿入することが望まれている6すなわち、外
部の制御装置がコード・ストリームに割り込んで制御語
を挿入できるようにすることが望まれている。復号器側
の端部では、もう1つの制御装置が制御語を検出し、か
つこれを受信したデータ・ストリングから取り除くこと
ができるようにすべきである。制御語の挿入に関しては
、(a)可能性ある多数の制御語を準備するとともに、
(b)符号化効率を実質的に減少させることなく制御語
の存在を識別することが望まれる。上記特許出願では、
バッファへ行く途中にコード・ストリームの一部を収容
する32ビツト・レジスタが用意されている。下位側の
12ビツト(0から11まで)が、Aの現在値と位置合
わせされるコード・ストリームの「小数1部である。ビ
ット12はスペーサ・ビットに相当する。ビット13〜
2oは、次にバッファへ送り出されるべき8ビツト(1
バイト)のコード・ストリーム・データを表わす。
ビット21はキャリー・レシーバ・ビットである。
ビット21に先行する2つのビットのうち、ビット22
は制御語が挿入されたか否かを識別するのに用いられる
。ビット31〜24はフラグ・ビットであり、ビットO
からデータが入力されるにつれて、左ヘシフトしていく
。(8回シフトした後、フラグ・ビットは、1バイトの
データがバッファへ送られる状態になったことを表示す
るビット位置にある。)単一のスペーサ・ビットを使う
と、ある状態では2ビツトの挿入が必要とされることも
ある。
C6問題点を解決するための手段 本発明による算術符号化の符号器と復号器は、上記特許
量vA(発明の名称:算術符号化システムにおける確率
適応化方法)で説明されているような確率適応化を取り
上げる。特にそこでは、符号器と復号器の性能を高める
可能なQe値を選択することによって、確率適応化が促
進されている。
この点に関し、本発明は、算術符号化プロセスに確率推
定器が組み込まれた2進算術コーダーに関連することを
述べておく。すなわち、本発明において、被加数の値は
数直線に沿う現在区間に対応するとともに、Qeの値は
、A、つまり現在区間の値の再正規化に応答して更新さ
れる。被加数値(つまり、現在区間の値)Aが最小値A
MINを下回ってQeの更新が求められる時機を決定す
るため、本発明では、AMINの値を表わすビットのう
ち、1番最初のビットがセットされ、これに続くビット
はセットされていない。例えば、AM I NはHex
 ’l OOO’ 、つまり1 00000000 0
000 (2進数)によって表わされる。こうすると、
先頭ビットがOに変化すると、再正規化とQe更新が示
される。このように、再正規化テストは単一ビットのテ
ストになる。したがって、本発明によれば、再正規化が
求められる時機に加えてQeを変更すべき時機を決定す
るのに簡単なテストをすればよいことになる。米国特許
第4467317号明細書によれば、被加数再正規化に
ついて1ビツトをテストすることが示唆されている。し
かしながら、確率適応化と再正規化についての単一ビッ
ト・テストを統合することによって、従来技術に比べて
顕著な利益がもたらされる。
換言すると、上記シングル・ビット・テストを実現する
ためには、AMINの値を選択し1次いでこれをスケー
ル・ファクタによって変更し、AMINの最上位の桁(
Aと同じ9桁)のビットが1で他の桁のビットが0で表
わされるようにする。
このスケーリングに準じて、その他の数値もスケーリン
グされる。好適な実施例ではAは0.75と1.5の間
にあるようにしているが、これは0゜75と1.5の間
であっても、1.0と2.0の間であってもかまわない
、要するに、シングル・ビット・テストが実現できるよ
うにAMINを表現できればAの範囲は適当であってよ
い。
さらに、本発明は、上記特許出願で開示されている確率
適応化方法を、いくつかの面でさらに強化している。ま
ず、Qe値が含まれるテーブルは、次のような特徴を持
つ。
1、Qe子テーブル各エントリは、6ビツトのコーディ
ング・パラメータを持つ、そのうちの1ビツトはMPS
のセンスを表示する。残りの5ビツトからなるQインデ
ックスによって、対応するQe値が識別される。
2、各エントリについて、Qe値の長さは好ましくは1
2ビツトである。どのQe値も5ビツトだけがセットさ
れる。各Qe値の最下位ビットは常にセットされている
(これは、ハードウェアによるインプレメンテ−ジョン
を容易にする)。様々なQe値についてセットするビッ
トの選択は、ある程度、QインデックスからQe値を得
るために通過しなければならないゲート数を少ない数に
制限することを考慮して決定される。
6ビツトのコーディング・パラメータを使うことは、既
存のマクロおよび事前に規定されたセルに従う点で、重
要である。さらに、もしコーディング・パラメータとし
て使われるビット数が6より少なければ、テーブルはき
わめて粗いものになり、定常的統計についての結果の低
下を招く。コーディング・パラメータとして7ビツト以
上を用いれば、さらにチップ・エリアを増大させねばな
らず、費用が上昇するsQe値を適切に選択することに
よって、必要とされるQeエントリの数を比較的少ない
数(例えば30)に保たれるとともに、符号化の能率の
向上とインプレメンテ−ジョンの相当な単純化を達成す
ることができる。
さらに、Qe値の[トラッピング」の問題を避けるため
に、本発明は以下のようなことを提唱する。上述の特許
出願(発明の名称:算術符号化システムにおける確率適
応化方法)で述べられているように、AMIN/2  
を形をしたある[悪い(bad) J値が禁止される。
しかしながら、本発明では、「トラッピング」を捉す点
を除けば性能に貢献する「悪いj値をテーブルに含むこ
とが許される。このような保留された「悪いj値につい
ての「トラッピング」効果を避けるため、「悪いJQe
値の下でのLPS再正規化に応答して、Qe値は、該惑
いQe値に戻るには2回以上のMPS再正規化を必要と
するような所定のテーブル値に増加される0本発明は、
このようにしなければ「トラッピング」を引き起こすQ
e値を保留することを目的としている。
さらに、本発明による符号器と復号器のソフトウェアに
よるインプレメンテ−ジョンを容易にするため、負のQ
e表現はMPSのセンスが1であることを表示し、正の
Qe表現はMPS=Oであることを表示する。特にこの
方法を用いると、サイン・ビットをマスクする必要がな
く、処理サイクルが節約される。
本発明のさらに他の目的は、バッファ・メモリへ至る途
中でコード・ストリームを収容するシフト・レジスタに
おけるビットの割当を改善することにある。この点に関
して、コード・ストリームの小数部と送り出されるべき
rバイト」を分離するために、スペーサ・ビットが2ビ
ツト以上設定される。2以上のスペーサ・ビットを包含
することにより、Hex’FF’ シーケンスの後に別
のHex’FF’シーケンスが続く可能性がなくなる。
さらに、スペーサ・ビットを多くすることによって、1
ビツトを充填するだけで、該ビットがキャリーを受は取
ったり、制御語用にエスケープ・コ−ドを作ったりする
役目を果たすことができる。
本発明の一具体例によると、コード・ストリーム・デー
タを収容するXレジスタは、最初、ビットを次のように
割り当てる。
X = 0OOO000f 00000000 ss、
xxxxxx xxxxxx001バイトがバッファへ
送られ得る状態になると、Xレジスタは次のように構成
される。
X=f←0OO0000c bbbbbbbb ss、
xxxxxx xxxxxxoolつではなくて(11
ss”として示される)2つのスペーサ・ビットを用い
ることによって、2以上の充填ビットが必要になり得る
虞が取り除かれる。
したがって、2つのスペーサ・ビットを使うことによっ
て、余分なビットを送信する必要がなくなり、符号化の
能率が向上する。さらに、本発明によれば、符号化およ
び送信の前に、外部の制御装置によって制御語をコード
・ストリームに挿入でき、かつ復号の前に送信済ストリ
ームから制御語を撤回できるような、効率的なエスケー
プが実現される。
さらに、本発明は、コード・ストリームの最初の2ビツ
トがOOであることを提唱するにの結果、復号の容易化
という目的が達成される。
最後に1本発明は、符号および復号の少なくとも一方が
、異なる取決に従うハードウェアまたはソフトウェアに
よって交換可能に実行され得るような算術符号化システ
ムにおいて、上記目的を取り上げる。
ここで、今一度スペーサ・ビットの概念を述べておく。
キャリー伝播を防止するには、通常バイトとバイトの間
にOが1ビツト分だけ挿入される。
これに対し1本願では、キャリー伝播の可能性の有無に
関係なく、コード・ストリームのビットを、(a)2値
事象の何れに応じて現在の値のままであるか、あるいは
現在区間の数値に基づく計算の対象となって変更されて
しまう、そのようなコード・ストリームを保持する小数
部と、 (b)記憶手段へ向けて送り出されるべきバイトを保持
する後続バイト部と、 (c)上記(a)と(b)の両部の間に挿入される少な
くとも1つのスペーサ・ビット に割り振るのである。
そして、判断事象の符号化に応答して、該シフト・レジ
スタを通じてコード・ストリーム・データをシフトさせ
る手段と、 記憶手段へデータを一時に1バイト(nビット)送り出
す手段 とを備えておく。
こういう構成によって、バイト単位での処理が容易にな
る。
特に、スペーサ・ビットとして2ビツト00を割り当て
ると、通常はキャリーが生じても該2ビツトは01にし
か変更されない。したがって、スペーサ・ビットの部分
に00と01以外、つまり11または10をエスケープ
・コードとして出現させることによって、算術符号シス
テムの復号器に、一旦復号を中止することを指示するこ
とができる。復号器の方では、例えば現在もっている中
間のデータを適当な記憶手段へ送り出した後、新たな指
示を待つ。この指示は、例えばエラー訂正であってもよ
い。このようなエスケープ・コードを儂えておくことは
、算術符号化システムでマルチ・タスクを行わせる場合
にきわめて重要なものとなる。
D、実施例 第1図には、算術符号化器102とそれに対応する算術
復号器104を含む、データの圧縮および圧縮解除用の
全体装置100が示されている。
データ圧縮の際、装置100は、まず久方データ(DA
TAI N)を受は取る。久方データは、2値判断(b
inary decision)の列(Y N)として
表現できる。ここで、結果、すなわち事象のそれぞ九は
確率を持っている。次に、装置100は、該列を、符号
化されたビット列に変えることによってキャラクタライ
ズする。内蔵された確率情報を含めて判断列を符号化す
るこによって、圧縮済ビット列をオリジナルの久方デー
タよりも迅速に転送できるし、圧縮済データの記憶スペ
ースも少なくてすむ。
データの大部分をある転送装置または媒体(例えば、要
素105)によって高速度で転送しなければならない、
あるいはデータの大部分を限られたメモリに記憶しなけ
ればならないような(または、大部分のデータを記憶し
、その後で低変調速度で転送が行われるような)アプリ
ケーションにおいて、データを圧縮して用いることは非
常に重要である。このような圧縮が特に重要な環境の1
つとして、ビデオ・データ処理の分野、さらに詳しく言
えばテレコンファレンスを挙げることができる。テレコ
ンファレンスでは、ピクチャー等の情報を伝達するため
に、大獄の情報をある場所から別の場所へ迅速に通信し
なければならない。
所望の宛先へ符号化法データが転送された後、該データ
は圧縮解除される。つまり、復号器1゜4によって、オ
リジナル・データまたはそれに関連したある表現が復元
される。実際、復号器104は、符号化されたコード・
ストリームを一時に1バイトずつ吟味して、符号器10
2の行ったプロシージャを取り消す。
第1図では、入力データDATAINが、まずモデル1
06によって処理される。
従来、様々なタイプのモデルが議論されている。
モデルは、Qコーダー102による符号化のために、文
脈状態Sと2値判断B ITINを発生する。
特定の文脈Sについての過去のBITIN判断に基づい
て、Qコーダーは、BITIN判断が1または0である
推定確率を既に生成しており、該推定はBITINの符
号化に用いられる。例えば、ファクシミリでは、入力デ
ータの1つ1つは、所与の画素が黒であるかそれとも非
黒であるかに対応する。ある与えられた画素が黒または
白であることのどちらを期待できるかについての推定は
、一般に、既に符号化法である近隣の画素値がら得られ
る。QコーダーおよびQデコーダーは、所与の画素が黒
または非黒である確率の推定を、同一の近隣画素値につ
いての以前の画素値に基づいて行う、連続してデータが
処理されていく際に、蓋然性の高い状態(MPSまたは
非Qe事象と呼ぶ)と蓋然性の低い状態(LPSまたは
Qe事象と呼ぶ)の相対的な確率の値が変化することも
あるし、あるいは入れ換わってしまうことさえもある。
つまり、MPSが黒である場合に非黒の事実(inst
ance)が数多く発生したとすると、非点状態の方の
蓋然性が高くなる、つまり優勢になることがある。その
場合、MPSは熱状態から非点状態に変化する。
Qコーダー102は、算術符号化法を用いて、モデル1
06からの状態SとB ITIN情報を圧縮済データに
変換する。算術符号化法では、Qコーダーが既に生成し
、状態Sについての過去のBITIN判断に続りて適当
な形で記憶された、推定確率が用いられる。
第2および第3図は、それぞれ符号化の概要を示す、第
2図は、ハードウェア用に最適な符号器を示す、第3図
は、ソフトウェア用に最適な符号器を示す。
第2図において、符号点(code point)は、
最初、所与の区間の下限(の数値)に位置している。
LPS事象の生起に関連するQセグメントも区間の下側
にある。MPS事象に関連するPセグメントは区間の上
側にある。C(n)は、時間nにおけるコード・ストリ
ーム値に対応する。A(n)は、時間nにおける現在の
区間の値に対応する。
各判断毎に、最適のハードウェア符号器(第2図に示す
)は1次のような取決に従う。
つまり、判断事象(図ではYNとして示す)がMPS事
象ならば、 (a)C(n)←C(n−1)十〇 (b)A’(n)←[A(n−1)  Q]となる。
事象がLPS事象ならば。
(a)C(n)←C(n−1) (b)A(n)←Q MPS事象であれ、LPS事象であれ、ハードウェアは
区間(つまりレンジ)の値Aを再指定する処理サイクル
に時間を費す。さらに、MPSの場合は、符号点は値Q
だけ増分、つまり移動される。ハードウェアはAとCの
更新を並行して処理し得るので、かかるハードウェアは
どの判断についても1処理サイクルだけを費す必要があ
る。他方、ハードウェアLPSが事象の度に符号点を動
かすように構成されたならば、符号点を動かさなければ
ならない度に、C←C+(A−Q)を決定するのに処理
サイクルが2つ必要になる。処理サイクルの数を制限す
ることはハードウェア操作においてクリティカルである
こと、およびLPS事象の場合に符号点を動かすことは
結果として多くのサイクル時間を費してしまうことを考
慮すると、ハードウェアにとってはMPS事象の場合に
符号点を移すことが最適であるとわかる。
第3図の符号化プロセスは、PセグメントとQセグメン
トの順序付を同じにした状態で、好適な「ソフトウェア
」用スキームを表わしている。もつとも、LPS事象に
応答すると、符号点は下向きに(つまり、小さな数値の
方へ)へ移動する。
このスキームではコード・ストリームがCによって表わ
されている。C(n)+A(n)はC(n)に等しい。
最終区間のある部分がCiから引かれるならば、単一の
デコーダーによって、C(n)または’6 (n )を
デコードして、入力判断事象の同一のセットを復元する
ことができる。すなわち、デコーダー(m I D +
7) 7コーダー104参照)に対して、どの状態がM
PS事象に対応するかを示す第1の入力と、デコードさ
れつつあるコード・ストリームについての現在のQ値を
示す第2の入力とが与えられると、デコーダーは、C(
n)または”6 (n )から最終区間のある部分を引
いたものを処理して、コーダー102へのYNNシカ列
対応するYN出力列を生成することができる。YN判断
は、モデル106にマツチするモデル110に入力され
、そしてオリジナル・データまたはそのレプリカが出力
DATAOUTとして生成される。
第3図に示す案ではLPS事象の際に符号点が移動する
ので、ソフトウェア処理に要するサイクルの数は少なく
保たれる。
第4図には4個の符号器200.202.2゜4.20
6が示されている。符号器200,204は、各MPS
事象毎に符号点を動かす最適ハードウェア・ルールに従
って符号化を行う。このうち、前者はP/Qシンボル順
でインプリメントされ、後者はQ/P(逆)シンボル類
でインプリメントされている。符号器202,206は
、各LPS事象毎に符号点が移動する最適ソフトウェア
・ルールに従って符号化を行う。このうち、前者はP/
Qシンボル順でインプリメントされ、後者はQ/P(逆
)シンボル類でインプリメントされている。符号器20
0,202によって生成されるコード・ストリーム同士
は同じ(または少なくともコンパチブル)にすることが
できる。それは、Cとして表わされている。また、本発
明によれば、符号器204.206によって生成される
コード・ストリーム同士は同じ(または少なくともコン
パチブル)にすることができる。それは、2として表わ
されている。2とCは、C’=A(o)−Zなる式によ
って一方から他方を導くことができる。この式の計算は
、インバータ208においてA(0)の数値を1にして
説明されている。コード・ストリームCは、ハードウェ
アの場合の最適化を考慮した(例えば不都合でない(u
nawkward)の計算に基づく)復号器210によ
って直にデコードされる。また、コード・ストリームZ
は、ソフトウェアの場合の最適化を考慮した復号器21
2によって直にデコードされる。4個の符号器200〜
2o6が生成したどのコード・ストリームであっても、
デコードする際には復号器210.212のどちらをも
使い得ることがわかる。コード・ストリームのあるもの
は、復号器に至る途中でインバータ208によって処理
される。
ここで、他の2つの復号器、すなわちQ/Pハードウェ
ア復号器とP/Qソフトウェア復号器もインプリメント
できることを念のために述べておく、これらの様々な具
体例は、上記特許出願(発明の名称:データ圧縮システ
ム)においても説明されている。
■、有限の精度で行う連続事象の符号化と復号このセク
ションの記載をわかりよくするために、以下のような定
義を行う。はとんどの場合、変数名を同じ意味を持つ。
1すI C=コード・ストリーム、つまり現在の区間を指すポイ
ンタ(符号点) Cd=基底線(base 1ine)を[Iした、復号
器コード・ストリーム X=コード・ストリームのうちの、レジスタの中にあっ
て送出されていない部分 Qe(i)=i番目に符号化されるシンボルのためのL
PS事象推定確率 Pe(i)==+:i番目に符号化されるシンボルのた
めのMPS事象推定確率 A(i)=i番目のシンボルについての被加数(つまり
1区間) Si=i番目のシンボル n(i)=シンボルSiの符号化に至るまでの再正規化
の累積カウント R(i)=i番目のシンボルのための再正規化ファクタ δ(C)=クロネツ力−のデルタ関数と等価(条件が真
のとき1.偽のとき0) ε;現在のQ値についての可能な最小の変更 上記定義の下で、次のような関係が適用される。
Pa(i)=A(i)−(A(i)XQe(i))R(
i)=1/2”) i =R(i)2−12(12ビット精度用)11A、
P/Qハードウェア符号器および回復号器シンボルの順
序付がP/Qである場合に、最適なハードウェア符号器
は現在の区間の底を指す。
コード・ストリームCは次の式で表わされる。
C=ΣR(i )A(i )Q e (i )δ(Si
=M)換言すれば、値Cは連続する判断事象(つまりシ
ンボル)の各々を検討することによって決定される。サ
ブジェクト・シンボルがLPS事象に相当するならば、
該サブジェクト・シンボルの時点でのQe値が再正規化
ファクタと掛は合わされる。
再正規化ファクタは、区間サイズが所定の範囲ζ例えば
0.75と1.5の間に維持されるという事実に関連す
る。つまり、区間サイズは被加数(Aと記す)として表
わされ、その値は所定の範囲内に留まるように調整され
るのである。i番目の被加数の値、つまりA(i)が0
.75より小さくなると、上記所定の範囲内に戻るのに
必要な回数だけ2が掛は合わされる(あるいは、他の方
法でA(i)が改められる)。
Aの値を1またはそれに近い値に保持することによって
、掛算のファクタAXQをAとして近似でき、AとCに
ついての計算が簡単になる。
シンボルが符号化される度に、再正規化は起こり得る。
なるほど、区間サイズがAXQe二Qe(これは、定義
により、AXPa以下であり、したがって0.75以下
である)にセットされる度に、A(i)の値は(少なく
とも1回2を掛は合わせて)再正規化され、例えば上記
のような範囲内に戻される。
MPS事象に応答すると、現在区間A(i)のサイズが
[A(i −1)−Qe]として概算される。この値は
0.75より小さいこともあるし、そうでないこともあ
る。このように、MPS事象に際しては、再正規化の必
要な場合とそうでない場合とがある。現在区間の再正規
化回数は累積されで、R(i)、すなわち上記のように
R(i)りによって、C値も区間値と同じように(例え
ば同じ回数倍増されて)変化することが保証される。
したがって、シンボルSiが符号化されるときのC値は
、P/Qハードウェア符号器の場合であってかつMPS
事象の際には増分されるが、その増分は、先行するすべ
てのシンボルについての再正規化ファクタおよびQe値
によって決定される。
P/Qハードウェア復号器は、次の式に従って上記プロ
セスを解いていく。
Cd=C−ΣR(i)A(i)Qe(i)δ(Si =
M)ここで、Cdはある事象の影響が取り除かれた後の
コード・ストリーム値である。
P/Qハードウェア復号器は。
Cd <A(i )Q e (i )ならば、LPSを
解読する。
nB、P/Qソフトウェア、1 および回復 器P/Q
ソフトウェア符号器は、各現在区間の頂を指す、ソフト
ウェア・コード・ストリームCは、は、次の式によって
決定される。
テ=A(0)−ΣR(i)A(i)P e(i)δ(S
i=L)で値の評価はA(0)からスタートし、A(0
)から上式の和の項をひいていく。和の項の加数は、A
、4現在のP値、および先行するLPS事象についての
再正規化ファクタの績である。
結果Cから最終区間値A(f)を引くと、P/Qハード
ウェア・コード・ストリームで導かれる通りのCが得ら
れる。
P/Qソフトウェア復号器は次の式に従う。
%式%) しかしながら、LPSシンボルを復号するのに必要な比
較は扱いにくい。すなわち。
Cd<A(0)  A(i)+A(i)XQe(i)ま
たは、上記関係式の両辺からA(0)を引いてCd−A
(0)<−A(i)+A(i)XQe(i)となる。
C’ d =Cd−A(0)とすると、C’d< C−
A(i)X(1−Qe(i))]となることがわかる。
C16も[A(i)X(1−Qe(i))]もともに負
であるが、絶対値は0からIA(i)lまでの範囲にあ
る。したがって、復号器のための演算は、固定精度演算
である。ソフトウェア復号器の処理をまとめると下記の
第8表のようになる。
第8表 T4−AXQe A+−A−T If  C’d<A (LPS  decoded) Cd4−C’d−A 4−T renormalize A and C’dlse (MPS  decoded) renormalize A and C’d if 
needed+ndif 上記計算は、A(i)の値を約1にセットすることによ
って、適宜簡略化される。
■8、号器 レジスタおよび復号器用レジスタ第5図に
は、コード・ストリーム情報を記憶するのに好適なXメ
モリ・レジスタ300が示されている。レジスタ300
は32ビツトを含むが、これらは以下のように割り当て
られる。つまり、ビット31〜24の8ビツトはフラグ
・ビットである。31番目のビットは「サインjビット
を表わす。ビット24は、次のバイトを送り出す準備を
するプロセスにおいて「キャリー」が生じたならそれを
受は取る役目も果たす。通常の各8シフトの場合、(b
bbbbbbbとして識別される)ビット23〜16は
、バッファ・メモリへ送り出されるべきバイトを表わす
。先行するバイトが’F F’である場合は、7つのシ
フトだけが必要とされ、ビット24〜17が送り出され
る。ビット位置14.15にはスペーサ・ビットが割り
当てられ、送出されるべきバイトについてのビット位置
とさらに被加数との計算を行うデータのビット位置との
間で遅延をもたらす。ビット13〜2は、コード・スト
リーム・データの最新の部分を表わす。
現在区間(被加数)の値を収容するレジスタの数値によ
る加算(または減算)の対象となるのはこの部分である
。ビット13〜2は、コード・ストリームの「小数部」
と呼ばれ、ビット24〜14は該コード・ストリームの
「整数部」に相当する。
レジスタ300はXレジスタと呼ばれ、コード・ストリ
ームO8の最新の符号化法部分を収容する。
Xレジスタの中のビットが符号化される前に、信子もの
ビットが符号化されていた場合もある。そういった早く
に符号化されたビットはXレジスタの小数部を通って同
整数部へ入り、さらにそこからバッファ・メモリへ移動
する。該バッファ・メモリは、このように先行するバイ
トを記憶するわけだが、そのバイト数には限りがある。
希望に応じて、バッファ・メモリから出たバイトは記憶
装置へ転送してもよいし、復号が行われつつある他の場
所へ転送してもよい。
上記記載に示されるように、データはバイトとして構成
され、かつバイトとして送り出される。
これはフラグ・ビットによって達成される。8個のフラ
グ・ビットを00000001に初期設定することによ
り、相次いでbビットがレジスタ30oの整数部にシフ
トしてくるにつれて、1のビットがシフトする。そして
、最も左に位置するフラグ・ビットが1になると、Xレ
ジスタの内容は「ネガティブ(負)」であると判断され
る。次にシフトが生じるときには、Xレジスタ300の
整数がバッファ・メモリに入力される。
好ましくは、(図示しない)バッファ・メモリは、例え
ば256バイトを記憶するメモリである。
バッファ・ポインタBPは、バッファ・メモリに最も新
しく入力されたバイトを識別する。
Xレジスタに加えて、現在の区間値を記憶するためのA
レジスタがある。上述したように、現在の区間は所定の
範囲、例えば0.75と1.5の間に維持される。Aレ
ジスタは、Xレジスタのか数部(2つの0ビツトが添え
られる)と位置合わせられる12ビツトの「小数」部(
2つのOビットが添えられる)を含み、整数部も含む。
AレジスタとXレジスタの小数部を位置合わせすること
によって、コード・ストリームを更新する際に実行され
る様々な計算が促進される。区間が再正規化されて所定
の範囲内に戻される度に。
コード・ストリームは同じように再正規化されて、その
相対的な数値が保持されることを再び述べておく1区間
サイズが0.75ないし1.5にセットされている場合
、再正規化は単に左側へいくつかシフトすること(すな
わち、2を掛は合わせること)を意味することを思い出
されたい。
コード・バイトがセットされた後(かつキャリーがない
場合に)、Xレジスタ300の内容と適当な16進数の
ANDが計算され、コード・バイトのビットが取去され
る。また、Xレジスタは(16進で記述した)、100
0000と(7)XORを計算するためにセットされる
ので、(フラグ・ビットの)ビット24は1に確実にセ
ットされる。
第6図には、P/Qハードウェア・インプリメンテーシ
ョンで用いられる32ビツトの復号器用レジスタ400
が示されている。ビット割当は次の通りである。まず、
先頭に2つの0ビツト、続いて12の「小数」ビットが
あり、2つのmmビット位置と8個の新しいデータ・ビ
ット位置はこれに続く、最も下位の8ビツトはフラグ・
ビットに対応する。レジスタ400は、フル・ワード、
ハーフ・ワード、またはバイトのように、様々に分割す
ることができる。小数部の12ビツトは、復号器のAレ
ジスタに記憶されている。被加数の小数ビットと位置合
わせされる。
新しいデータ・バイトがXC(ビット31〜16)にシ
フトされてきた後、該新しいデータはXNEW (ビッ
ト15〜0)の高位側ビットへ入力されるとともに、キ
ャリーが発生していないならば、XFLAGは1にセッ
トされる。
すなわち、以下の式の通りになる。
XNEW=SLL  B  8 XFLAG=1 低位側のバイトXFLAGが0になると、新しい圧縮済
データ・バイトが求められる。
■D、キャリーおよびボロウ 符号器と復号器についての上記説明かられかるように、
コード・ストリームに違いが生じるとすれば、それは与
えられたP、Q取決のためにキャリーまたはボロウが生
じる箇所である。
ここで、キャリーおよびボロウはバイトの境界において
、1以上のビット(ただし1バイトよりは小さい)を適
宜挿入することによって準備されることを述べておく。
この結果、任意のキャリーまたはボロウの結果が直前に
送出されたバイトを越えて伝播することはない。したが
って、バッファのポインタが過去のバイトまで戻る必要
は全くない。該ポインタは、後続の各バイトがバッファ
・メモリに入力されるのに伴って、該後続のバイトを指
し進めていけばよい。
キャリー伝播の問題は、コード・ストリームの値が増加
されて更新される場合であって、既に符号化法の連続し
た1からなるバイトが1つ以上連続しである場合である
。この場合、加算の結果キャリーの伝播が生じる。この
ような状態を避けるため、本発明では、発生し得るキャ
リーを受は取るためにバイト中にビットを詰め込むよう
にしている0例えば、一連のバイトBn−1、Bn、B
   があり、そのうちのB   がバッファn+1n
−1 メモリにあって、バッファ・ポインタがバイトBn−1
を識別しているとしよう。そして、バイトB はXレジ
スタの整数部にあり、バイトn B   は同じレジスタの小数部にあるとする。
n+1 バイトB の値が(16進数の)’FF’ならば、後続
バイトB   の先頭(最上位ビット)n+1 位置にビットが充填される。B  、B    がそn
   n+1 れぞれ11111111 (’FF’ )であるならば
、本発明によりB   の先頭にビットが挿入n+1 される結果、新しい符号化法データの例は111111
11.01111111.1・・・・となる。
このように、必要ならば、キャリーを受は取るために0
のビットが挿入されるのである。復号器が全部のビット
が1であるバイトを検出すると、該復号器は後続の下位
ビットが挿入ビットであることを認識し、適切なコード
・ストリームが生成されるよう処理を行う。
ボロウの問題は、全部のビットがOのビットであるバイ
トを含むコード・ストリームについて減分を行うときに
生じる。例えば、3つの連続するバイトBn−1、Bn
、Bn+、のうち、中央のバイトのビットがすべてOで
あるとしよう。
このとき、1がB   バイトからプレボロウ(pre
−borrow 、前借)され、B バイトの8個のビ
ットがすべて1のビットに変換される。充填されるビッ
トは、バイトB   の新しい先頭ビットn+1 として挿入される。この新しい先頭ビットは、セット・
キャリー・ビットの役目を果す。したがって、符号器か
ら転送されるデータ・ストリームは、次のようになる。
B     −1,11111111,1(Bn+、の
先頭7ビツト)B   バイト・セグメントから落とさ
れたビn+1 ットは、データの後続バイト・セグメントにおいてピッ
ク・アップされる。ボロウは充填された(セット)ビッ
トによって事実上キャリーに変化する。何れにしても、
復号器は上述したように充填されたビットを検出すると
、該充填ビットをキャリーとして処理する。ビット・ス
タッフィングを含むP/Qハードウェア・コード・スト
リームとコンパチブルなP/Qソフトウェア・コード・
ストリームを生成することが目標であるから、該コード
・ストリームも2つの拘束に従って生成されなければな
らない。まず、16進の’F F’の後には必ずビット
が充填されなければならない。
そうでなければ、ハードウェア復号器には不適式なバイ
ト・パターンが生成されるからである。次に、 ’fM
 (present )バイトからボロウを取り出す必
要のあるときはいつでも(当然)取り出せるようにコー
ド・ストリームを構成しなければならない。
(ここで、現バイトとは、以前のコード・バイト・サイ
クルにおいてコード・レジスタからコード・バッファへ
転送されたバイトを言う。)借りてくるのは1単位なの
で、桁借りの対象することの不可能なバイト値はゼロだ
けである。
一般に、コード・レジスタにおいて新しいバイトの開始
点に高位の「プレボロウ」ビットをセットすることによ
って、現バイトから桁借りを行う必要のあることが検出
される。便宜上、該プレボロウ・ビットはビット位1f
lPにてセットされ、後続のバイトが書込可能になった
ならばそれはサイン・ビットとなる。例えば、32ビツ
トのコード(X)レジスタの中身が次の通りであるとす
る。
Xレジスタ: oooooooo、 pooooooo、XXXXXX
XX、 XXXXXXXXAレジスタ: 000aaaaa+aaaaaaaa 新しいバイトが完成すると、内容は次のようになる。
Xレジスタ: pooooooo、nnnnnnnn、XXXXXXX
X+XXXXXXXXAレジスタ: 000aaaaa、 aaaaaaaaコード・レジス
タがポジティブ(p=o)ならば、プレボロウが使われ
たのであって、現バイトからのボロウが必要である。し
たがって、新しいバイトnnnnnnnnがコード・レ
ジスタからバッファ・レジスタへ転送される前に、現バ
イトからボロウが取られる。プレボロウを用いると、コ
ード・レジスタの値は常にAレジスタより大きくなり、
将来のボロウは該コード・レジスタの内容から取ること
が可能になる。コード・レジスタがネガティブ(P=1
)ならば、現バイトからの桁借りの必要はなく、未使用
のプレボロウPは除去される。
コード(X)レジスタの内容は、Aレジスタの内容と比
較される。コード・レジスタの方が小さいならば、2つ
の事項が検出されている。まず。
次に送出されるバイト(nnnnnnnn)はゼロであ
ること、第2に、現バイトからの桁借りの必要性があり
得ることである。したがって、ボロウは現バイトから取
られ、レジスタの中のゼロ・バイトを経て伝播する。こ
の結果、ゼロであったバイトが’FF’ に変換される
。この’FF’ をコード・バッファに送りコード・レ
ジスタの内容をシフトさせた後で、2つのプレボロウが
セットされる。
1つはサイン・ビットとなる位置にセットされ。
もう1つは後続バイトについての「キャリー」ビット位
置となるビット位置にセットされる。したがって、コー
ド・レジスタの内容の方がAレジスタよりも小さいなら
ば、 Xレジスタ: oooooooo、 pooooooo、 00Px、
  xxxx、  xxxxxxxxAレジスタ: 000aaaaa、 aaaaaaaaである。
後続のバイトが完成すると、 Xレジスタ: pooooooo、 Pnnnnnnn% XXXXX
XXX、  XXXXXXXXAレジスタ: 000aaaaa、 aaaaaaaaとなる。
バッファ中の16進数’F F’はビット・スタッフィ
ング(充填)のトリガになるので、プレボロウ・ビット
はスタッフ・ビット(キャリー・レシーバ)位置に書き
込まれる。ゆえに、未使用のプレボロウはハードウェア
・コード・ストリームのキャリーと等価になる。
コード・レジスタの内容がAレジスタの内容以上ならば
、コード・レジスタの現在の内容はどんなボロウの要請
にも応えられるだけの大きさを持っていることになる。
現バイトがチェックされて。
それが’FF’であるならば、ビット・スタッフィング
が引き起こされる。この場合、プレボロウは要請されな
かったので、挿入されたキャリー・ビットは常にクリア
(clear)である。
上記シーケンスはすべての要請を満たす、すなわち、ボ
ロウ伝播を阻止し、ハードウェアとiンパチブルなコー
ド・ストリームを生成する。すべてのゼロ・バイトが単
純に’F F’に変換された場合でも、ハードウェア復
号器は結果として生じたコード・ストリームをデコード
することができる。しかしながら、送出されるべきバイ
トがゼロであるときにボロウが必要になるだろうが否か
を先読みして知ることによって、結果として生じるコー
ド・ストリームがハードウェア・コード・ストリームと
同一になる。実際、このように先読みすることによって
、ハードウェア・コード・ストリーム中の’FF’の存
在が検出される。
上記のLangdon、 R15sannenによる論
文は、算術符号化について詳しく論じており、ここでも
引用することにする。
算術符号化はデータ・シンボルを圧縮符号化する強力な
方法であるが、それは次の2つの属性に由来するもので
ある。
(1)符号化能率の点で、エントロピー限界に接近でき
る能力。
(2)符号化されつつあるシンボルの確率を動的に変更
できる能力。
上記記載に示されるように、複数の判断が符号化されて
数直線上の点が表現される。該点は、特定の判断列を一
意的に表現する数直線上のある区間に関連する。そのよ
うな符号化法は、数直線上の2つの点で境界を形成され
たある現在区間をはじめに規定することによって達成さ
れる1次に該現在区間はセグメントに分割される。ここ
で、各セグメントは、判断の結果生じ得る事象のうちの
1つに対応する。可能性のある事象は排他的でなければ
ならない。つまりどのセグメントもオーバーラツプしな
い。多シンボル環境では、何れの判断も、m(≧2)個
の事象のうちの1つに帰着し得る。各セグメントの長さ
は、対応する判断事象の相対的な確率によって決まる。
すなわち1判断事象の確率が大きければ、対応するセグ
メントもそれだけ大きくなる。これは重要なことである
なぜなら、大きなセグメントを表わすビットの数は少な
くできるからである。このため、頻繁に符号化されるべ
き事象はど少ないビット数で表現される。
m=2である2値算術符号化法では、LPS事象は、与
えられたYES/No (Y/N)判断について、YE
SまたはNoどちらかのシンボルに対応する。そして、
もう1つの事象がMPS事象に対応することになる。通
常、LPSに対応するセグメントはQセグメントと呼ば
れ1MPSに対応するセグメントはPセグメントと呼ば
れる。Qセグメントの長さはLPS事象についての推定
確率Qeに対応し、Pセグメントの長さは、確率(1−
Qe)に対応する。
Aを0.75から1.5の範囲に維持すると、値Aを約
1.0として近似できる。すると、上記最適なハードウ
ェア・スキームについてCとAを決定するための計算は
次のように簡略化できる。
すなわち、MPSが符号される場合、 C4−C+ Q e A4−A−Qe となり、LPSが符号化される場合、 A <−Q e となる。
ある事象を符号化した後にAg0.75になった場合、
AとCの再正規化が行われる。AだけでなくCも再正規
化することによって、符号点の数値と区間の数値の比は
変わらない。
P/Qスキームに従って生成された符号化法データを復
号するときは、以下の操作が実行される。
C≧Qeならば、MPSが復号され、次のような計算が
行われる。
C4−C−Q e A4−A−Qe 上記条件が成立しないならば、LPSが復号されて、 A 4− Q e となる。
上記簡略化された符号器(および復号器)は、ハードウ
ェアによるインプレメンテ−ジョンにとって理想的であ
る。なぜなら、レンジの減算(加算)とコード・ストリ
ームの加算(減算)を並列に実行できるからである。し
かしながら、ソフトウェアによるインプレメンテ−ジョ
ンにコード・ストリームの規定と変更について上記ハー
ドウェアの場合と同一の取決を採用しても、効率の点で
劣る。なぜなら、もつとも頻繁にとられるパス(pat
h)において、算術演算が2回必要となるからである。
したがって、ソフトウェアによるもつと効率のよい符号
器のインプレメンテ−ジョンは、コード・ストリームC
を現在区間の下端ではなくて上端に向けることによって
実現される。ソフトウェアのための符号化プロセスは次
の通りである。
すな力ち、MPS事象ならば、 A 4− A −Q e となり、LPS事象ならば、 C4−C−(A−Qe) A←Qe となる。
最適ハードウェア・スキームまたは最適ソフトウェア・
スキームのどちらの場合も、A<0.75になると、A
とCの再正規化およびQeの更新が行われる。
上記取決を検討する際、どの具体例でもA<0゜75の
ときにAとCが再正規化され、かつQeがこれに対応し
て更新されることに注意されたい。
本発明に従ってQeがどのように更新されるかを次に説
明する。
、(b)確率推定器の更新 1、被加数を再正規化する度にQeを更新する第7図は
、連続する事象が符号化され、再正規化が行われる際の
確率推定値Qeの更新を説明する図である。第7図にお
いて、縦座標は被加数Aの値を表わし、横座標は(後述
する)Qe子テーブル含まれているQeの許容値を表わ
す。Qeの許容値が0.42208から始まったとする
と、LPS事象が符号化された結果、被加数の値は0゜
42208になる。LPS事象の符号化の結果。
被加数の値は0.75より小さくなるので、LPS(が
引き起こす)再正規化(“L P S renovm”
)が行われる。その結果、Qe値は0.46896に増
加するとともに、Aの値は再正規化されて0゜8441
6になる。今の具体例では、2を掛けることによって、
AとCの再正規化が行われることに注意されたい、この
操作は、単純にレジスタのシフトだけで実行できるから
簡単であるという利点だけではなく、再正規化の実行回
数を数え続けるのに簡単であるという利点も持つ、続い
てMPS事象が起こると、次の簡単な式に従って、Aの
値は0.37520になる。
A 4− A −Q e すなわち、A = (0,84416−0,46896
) = 0.3752OAは0.75より小さいので、
MPS (が引き起こす)再正規化(“M P S r
enorm”)が生じる。
Qeはより小さな値0.42208をとり、Aは0.7
5040に再正規化される。(Aをさらに再正規化する
必要はない、なぜなら、Aはもはや0.75未満ではな
いからである6)次にMPS事象が生じると、Aは0.
75未満である0、32833に減少する。Qeとして
はより小さな値0.32833が選択される。Aを2倍
にしても0.65666であり、まだ0.75未満であ
る。
Aをさらに2倍にすると1.31332になる。
続いてMPS事象が起こると、被加数は0.98499
に減るが、これは0.75より大きいので、再正規化は
生じない。さらにMPS事象が生じると、Aは0.65
666まで減少すルノテ、MPS再正規化が行ねれる。
Qeとしてはより小さな値、つまり0.30489が選
択されるとともに、被加数Aは2が掛は合わされて1.
3133になる。その後MPS事象が2回続くと、MP
S再正規化が必要になる。
2、Qe子テーブ ル発明によれば、第7図に示されるようなQe値がテー
ブル(表)の形で記憶されている。第1表の左側の列に
は、Qeの複数個の許容値が16進数の形で示されてい
る。テーブルの各Qe値は、12ビツトで示される値で
あることが好ましく、2つのバイトを占めるように規定
されている。
Qe値を5461(16進数では1555)で割ると、
N−10進小数による表現に変換される。Qe値を一意
的に識別するには、5ビツトのインデックスで十分であ
る。テーブルの隣接するエントリに移るには、2バイト
分のシフトが必要である。
第1表の第2番目の列には、各リストされた確率値をL
PS再正規化に続いてシフトさせる際に。
1′     何バイト分シフトされるべきかがを示さ
れている。
LPS再正規化の結果、場合に応じてテーブル中のイン
デックス位置の1つ分、2つ分、あるいは3つ分だけ確
率値が増加されることがわかる。
第1表を吟味すると、その中のエントリは第7図で説明
したQe値に対応していることがわかる。
すなわち、10進数の0.46896は第1表中の16
進数0a81に対応する。その後にリストさ“れた3つ
のエントリ、すなわち0aO1,0901、および07
01は、それぞれ第7図の0゜42208.0.328
33.および0.30489に対応する。MPSが1の
場合、Qeの負数が用いられる。
第1表の代りの表が第2表に示されている。第2表には
、Qeの許容値に関して、qiO値が示されている。こ
れは、LPS再正規化に関連している。第1表のQe値
に4を掛けることによって、qo値が得られる。さらに
、MPSが1ならば、qo値は否定(negate)さ
れる。第2表中のqi。
項はqilps(i 0 )と呼ばれる。これは、後続
の、Qe値(qO) ゛(Mpsが0、つまりQeが正
のときとMPSが1.つまりQeが負のときの両方の場
合について)とそのためにLPS再正規化が起こったと
きに当てはまるインデックス(10)とに関連する情報
をインデックスが持つことを示す。
第2表では、後続のQe値とそれに関連する10値の両
方が先行するインデックスにおいて見つかる。しかしな
がら、第1表では、後続のインデックスがまず決定され
てから、それに基づいて後続のQe値が決定される。よ
って、第2表のテープル索引(ルックアップ)プロシー
ジャの方が簡単である。
第3表は、MPS再正規化の場合を意図している点を除
き、第2表と同様である。特に、M P S再正規化の
場合、第3表によれば、テーブル中の各Qe値について
、後続の確率値qOおよび後続のインデックス10が示
される。第2表では選択される数値が大きくなっていく
のに対し、第3表では選択される数値が小さくなってい
く。
また、表に含まれるQe値はOから0.5までの範囲に
限られることも注意すべきである。0゜5においては、
LPSを表わす2値事象がMPSになるし、その逆も成
り立つ。したがって、Qeに対応する事象が変わる。例
えば、白画素の事象がLPS事象を表わすならば、Qe
値は白画素事象の確率の推定値を表わす。しかしながら
、Qe値が0.5に到達し、これを越えると、今度は黒
画素事象がQeによって識別されるLPS事象になる。
Qe子テーブル、LPSとMPSの定義が変わる変換点
に関して対称的にながめることができる。
Qeの許容値の選択は、いくつかのファクタに応じて決
定される。まず、ある値が「悪い(bad)J値として
認識される。特に、Qe値の「トラッピング(trap
ping)Jを生じさせ得る値は許されない。
値AMIN/2、AMIN/4、・・・・、AMIN/
2n(ここでnはある正の整数)そのものまたはこれら
に近い確率値が「悪い」値だと考えられる。このような
値のときは1次のようなサイクルが推定プロセスをトラ
ップしかねない。
(1)LPS再正規化。
(2)第1のQe値への移行。
(3)蓋然性のあるMPS事象がただ1回生じた後での
MPS再正規化、(Aが既にAMINに等しいかまたは
これに近い値になっていたことに注意されたい、)対応
してQe値を(今より小さい)第2の値(悪い値)へ移
す。
(4)もう1回LPSが生じ、LPS再正規化が生じる
(5)第1のQe値へ戻る。
したがって、Qeの値は、LPS再正規化に続いてMP
S再正規化を行う確率が高すぎることのないように、所
定の値δだけAMIN/2°よりも大きくなるように選
択することが好ましい。この目的を達成する1つの方法
は、再正規化後に小さくなるすべてのQe値を、16進
数の′1000′とかけ離れた数値にすることによって
、LPS再正規化が1回生じた後でMPS再正規化が生
じるのは、複数回MPS事象が続いた後になるようにす
ることである。Qe値が0.5に近いと、この条件は緩
和される。Qeがきわめて小さい場合、再正規化法のQ
eとAMINの間隔は、MPS再正規化の確率とLPS
の確率が同じオーダーの大きさになるほどに、十分大き
くなければならない。
再正規化されたQe値がAMINまたはそれに値い数値
になるのを避ける上記方策に加えて、本発明は、LPS
再正規化に応答するインデックス位置のジャンプがMP
S再正規化に応答するインデックス位置の下降よりも相
対的に大きいならば、「悪いJQe値を包含できること
を教える。例えば、第1表のQeの最小値は「悪い」値
である。
しかしながら、LPS再正規化が起こると、Qe値に対
するインデックスは、2エントリ(4バイト)シフトさ
れる。したがって、上記Qeの最小値に戻るには、M 
P S再正規化が2回続けて起きなければならない。こ
のため、LPS再正規化の直後にM P S再正規化が
極めて起こりやすくても、推定器がトラップされること
はない。
テーブルの値を選択する際に考慮すべき第2の点は、符
号化の非能率性に関係する。この点に関しては、Qeの
許容値の範囲全体にわたって符号化の非能率を最小限に
することが望ましい。第8図のグラフは、符号化の非能
率性とlog、 Qの大きさの関係が示されている。Q
e値は第1表に含まれている値である。円は実験結果を
表わし、実線は単−文扉の場合の符号化の1具体例(セ
クション■、参照)についての理論計算の結果を表わす
符号化の非能率性は、エントロピー、特定状態(つまり
Qe子テーブル中特定のエントリ)についてのビット伝
送速度/シンボル、および該特定状態についての占有(
occupation)確率に基づく−なお、エントロ
ピーHは。
H=−(ΣPr(i )1ogPr(i ))によって
定義されるm P r(x)が第1番目の判断事象の確
率を表わし、和は所与の判断についてのすべての判断事
象にわたって求めるものとする。与えられたテーブルの
細分性(granularity)と符号化の際に用い
る算術的な概算の下で、最も一様な曲線が望ましいが、
そうであることが必須ではない。
本発明によると、インデックス位置の密度は、確率の2
のべき乗のセットと比較して、テーブルのうちの高エン
トロピーのQe値部分において高められる。2のべき乗
セットにおいて、1/4〜1/2のレンジは0.1のQ
e値に、1/8〜1/4は0.01に、1/16〜1/
8は0.001にそれぞれ対応する。続くインデックス
位置についても同様である。1/4〜1/2レンジの近
くでは1例えば上述のスキュー・コーダーに比べて、比
較的多くのエントリが存在している。低エントロピーの
Qe値では、密度は比較的線である。
第3に、システムの応答性、すなわち、見当外れの数値
から適切なQe値に到達するのにどれだけの時間がかか
るかを考慮しなければならない。
この目的を促進するために、隣接するQe値の間でより
大きな増分と減分が選択される。もつとも、これは、か
かる大きな微分が定常的な結果に悪影響を与えない場合
にあてはまる。定常的な結果は、固定された確率に従っ
て、例えば疑似乱数発生器によって与えられるデータに
基づいて生成される。
非定常的な結果は、確率が時間とともに変動する可能性
のある現実のデータに基づいている。
第1表は上記の事項を考慮して決定したものであって、
簡単さ、各文脈に要する記憶が最小となること(例えば
、1ビツトをMPSシンボルのセンス用に、5ビツトを
Qe値のインデックス用にして、合計6ビツトにする。
)、固定された(つまり、定常的な)統計についての符
号化の能率の妥当性、および異なるデータ圧縮モデル(
例えば。
ファクシミリ圧縮モデルと連続トーン・イメージ圧縮モ
デル)から得られる複数文脈データについての性能の間
での妥協の産物である。
以上の説明で、符号化能率と変化する確率の迅速な推定
の間の妥協について記した。
第9図には、ゲーティング回路が示されている。
複数の入力線と複数の出力線が備わっている。入力線を
、Oと1の信号の所定のパターンにセットすることによ
って、対応するqインデックスが該ゲーティング回路に
入力される。各qインデックス毎に、該デーティング回
路は、対応するQe値を表ねす信号パターンを出力線に
供給する。本発明によると、Qe値は、ゲート、および
qインデックス入力に対応してQe値を出力するのに必
要なゲーティングの数を少ない数に制限できるように選
択されている。Qe値は、(a)Qe値の最下位のビッ
ト(L S B)が常に(1に)セットされ、かつ(b
)どのQe値についても、Qe値の12ビツトのうちの
5ビツトのみがセットされるように、選択されている。
したがって、ハードウェアを容易なものにする一方、上
述の目的も達成される。
3、単一文脈適応化と文脈適応化 第10図には、文脈テーブルが示されている。
特に、3つの文脈(context) C01C1、お
よびC2が掲載されている。各文脈は異なるセツティン
グに対応し、そのそれぞれで判断が行われる。
例えば、異なる文脈は、光学データのフレームの中の異
なる領域を表わす、該フレームの中には黒が優勢の領域
もあれば、白が優勢の領域もあるがもじれない。また別
の領域は各タイプの事象ががなり均衡して表現されてい
るかもしれない、したがって、各文脈毎に、MPS識別
子、すなわち、黒(つまりYES)の判断がMPSであ
るが、または白(つまりNo)の判断がMPSであるか
に関する標識が存在する。これは、第10図のテーブル
ではMPSの列に2進数で表記されており。
coとC2の文脈ではO事象がMPS事象を表わす一方
、C1の文脈では1事象がMPS事象を表わしている。
テーブルの隣の列はQeインデックス・テープルであり
1個々の文脈について現在指示されているQeエントリ
を表示する。C0文脈では、0番目のエントリが指示さ
れている。同様に、C1、C2文脈では、それぞれ、1
2番目と29番目のエントリが指示されている。最後の
列には、個々のQe値がそれぞれ0.5.0.10.0
.001であることが示されている。MPS識別子とQ
eインデックスは6ビツトで表現されることが好ましく
、この具体例ではQeインデックスが好適な5ビツトで
表現されている。しかしながら、ビット数は変更可能で
ある。
本発明の1具体例によれば、単一の被加数値が記憶され
、考慮する文脈に無関係に用いられる6各文脈において
判断が入力され、各文脈について再正規化が行われる際
に、共通の被加数が処理される。
1例として、そ゛れぞれが対応する文脈に関連する0と
1のビットのストリングを示す。ストリング01100
は、Go−C1−GO−Co−C2文脈におけるビット
をそれぞれ表現する。第10図のテーブルより、該ビッ
ト列は、(COについて)MPS、(C1について)M
PS、(Coについて)LPS、(Goについて)MP
S、および(C2について)MPSを表現する。この例
のために、最初のビットが符号化される前のAの初期値
が1.0であるとしよう。上記P/Q符号化スキームの
下では、ビット・ストリング01100に応答して、次
のような操作が行われる。
i、1番目のビットについて。
A4−A−Qe(Go)=1.0−0.5=0.5とな
る。Aが0.75未満になるので、Aは1゜0に再正規
化され、Qe(Go)の値は0.48に減らされる6 ■、2番目のビットはC1文脈のMPSを表現している
ので、被加数Aは、下記の式に従って減少する。
A+−A−Qe(C:1)=1.0−0.1=0.90
再正規化もQeの更新も行われない。
=、3番目のビットは文脈COのLPSを表現している
ので、LPS再正規化を起こす。被加数の値は0.90
からQ e (G O)、つまり0.48に変化する。
Aの値は再正規化(2倍に)して0.96にしなければ
ならない、C0文脈についてのQe値はインクレメント
される。この例では、0番目のエントリの方へ1エント
リ戻ることによってQe(Co)値が増加することにす
る。後述するように、本発明は、1工ントリ以上離れた
単一の値へQe値を上昇させることも考慮している。本
発明による他の方法では、Qe値が現実の確率からどれ
だけ離れてみえるかに応じて、後続のいくつか可能性の
あるQe値の中から選択された1つまでQe値を増加さ
せる可能性も考慮している。後者の方法は、上記特許出
願(発明の名称:算術符号化システムにおける確率適応
化方法)の明a書中で、多レートの例として説明されて
いる。
■、4番目のビットは、C0文脈でのMPSである。A
は(0,96−0,5)=0.46に変更され、MPS
再正規化が必要になる。Aの値は2倍されて0.92に
なり、Qe(Co)は0゜48に減少する。
v、5番目のビットは1文脈C2でのMPSに相当する
。被加数Aの値は、(0,92−Qe(C2))=0.
92−0.0OL=0.919になる。これは0.75
より大きいので、再正規化は行われない6 5ビツトの後で、テーブルは次のようなエントリを持つ
。すなわち、文脈COについては、MPS=O1Qe(
Co)インデックスは1、およびQe(Co)の値は0
.48゜文脈C1については、すべてのデータに変化は
ない。文脈C2については、すべてのデータに変化しな
い0次に符号化される判断事象のための現在の被加数A
は、判断の文脈に関係なく0.919である。
単一文脈の例と比較すると、多文脈の例では、複数の判
断文脈を一緒に処理することができる。
4、単一レート適応化 単一レート推定器によれば、ある特定のQeについて、
LPS再正規化に関しては、次の確率として選択される
べき今よりも大きな値が1つだけ指定され、MPS再正
規化に関しては、今よりも小さな値が1つだけ指定され
る。単一レート推定器の1例は、有限状態機械としてセ
クション5で説明する。
5、Qe子テーブル有限状態機械表現 第12図は、単一レート、かつ単一文脈の推定器の有限
精度推定器によるインプレメンテ−ジョンが示されてい
る。数値k は、MPS事象とLx PS事象の定義が入れ換わる状態を表わす。第12図で
は、各状態は、MPS再正規化に対応して1つの外向き
のパス(path)を持つとともに、LPS再正規化に
対応して1つの外向きのパスを持つ。k の場合は、U
PS再正規化ゆえに更新をff1aス 行っても、同一の状態に戻る。
各状態は、特定のQe値を表わす1つのテーブル・エン
トリであると考えてよい、各エントリは、それに続く2
つの可能なエントリと結ばれている。
好ましくは、MPS再正規化の結果、k によりaX 近くなる次の状態への移行が起こる。LPS再正規化時
には、可能性のある次の単一の状態へのババスを通って
、状態位置が1つ、2つ、あるいはそれ以上変化し得る
ことに注意すべきである。
V、Qコーダー・システムのフローチャートの1−明一 以下のフローチャートでは、上記「ハードウェア」と「
ソフトウェア」の具体例が、フローチャートに即して記
載されている。符号器、復号器の例で両者の違いを示す
ときは、−Hまたは−8をつけることにする。
第13図は、本発明の算術符号化法圧縮/同解除システ
ムによるコーグとデコーダを示すフローチャートである
(第1図と対比されたい)。第1図では、BITINが
符号化される2値事象であり、B ITOUTが復号さ
れた2値事象である。
第13図のフローチャートでは、エンコーダー、デコー
ダーともに2値判断のことをYNと呼んでいる。一般的
に説明すると、第14図、第15図のINITENCは
、ハードウェア、スキーム。
ソフトウェア、スキームのそれぞれの圧縮システムを初
期化する。モデル・プロセスは、rS、YNの獲得」と
いうステートメントによって表わされている。INIT
STATE (第16図)は。
すべての文脈状庵Sについて、qインデックスの初期値
とQe値を設定する。ENCODEブロック(第17図
)では1文脈状態SとYN値を用いて、圧縮済データ・
ストリームが生成される。すべてのシンボルの符号化が
いつ完了したかに関する判断は、外部の手段によっても
たらされる0例えば、グレイスケールTVには、512
画素/ライン×480ラインのような固定されたフォー
マットがある。取決に関して合意しなければ、符号器は
、該情報を、外的な手段により、または圧縮済データの
1部として、そのどちらかによって、復号器に送る。
すべてのシンボルが符号化されると、ブロックFLUS
H(第33図、第34図)の働きにより最後のバイトが
出力される。したがって、復号器には確実にすべてのシ
ンボルを完全に復号するのに充分なデータが与えられる
。ブロック「送信」は、記憶または送信を表現している
。この図では、送信または記憶の前に完全な圧縮データ
が生成されるかのように思われる6しかしながら、どの
バイトも、後続のバイトが生成された直後に送信するこ
とができる。復号器を初期設定するために、INITD
ECブロック(第39図、第40図)が1回呼ばれる。
復号器では、モデルが文脈状態Sの値を与える。DEC
ODEブロック(第41図)は、YN判断を取り戻す。
復号がいつ完了したかに関する判断は、外的に、または
圧縮済データ、ストリームの一部としてもたらされる。
(a)符号器動作の詳細な説明 以下の定義は、フローチャートとその説明にあてはまる
■ Q○(S)・は、プログラムおよびフローチャートにお
いて、16ビツトを持つ少数点の固定された少数として
定義される。正の数にもなれるし、負の数にもなれる。
lo(S)は、Qe確率値を更新するためのQIMPS
テーブルまたはQILPSテーブルのインデツクスであ
る。これは、QO(S)の直後に2パイ、トの形で記憶
される。QIMPSテーブルまたはQILPSテーブル
からの4バイトが、次のQO,IOのペアになる。
Aは16ビツトの整数だが、12の少数ビットと、それ
に続く2つのゼロと2つの先頭整数ビットとに分ける2
進少数点を持つ2進少数として考えることができる。
Xは、符号器については第5図に、復号器については第
6図にそれぞれ示されるような構造を持つ32ビツトの
数である。
XCは、復号器におけるXの最上位ビットを含む上位側
の16ビツトである。
XNEWは、復号器におけるXの最下位ビットを含む下
位側の16ビツトである。
XFLAGは、復号器におけるXの最下位ビットを含む
下位側の8ビツトである。
LE’Nはコード・ストリームのためのバッファの長さ
である。これは(任意だが便宜上)256バイトにセッ
トされる。LENは1にセットすることもできる。
BPSTは圧縮済データ・バッファの始まりを指示する
BEは圧縮済データ・バッファを越えた最初のバイトを
指示する。
BPは圧縮済データの現在バイトを示すポインタである
BはBPによって指示された圧縮済データ・バイトであ
る。
AMINは再正規化が必要となる時機を決定する。AM
I’Nは、(0,75と等価である)Hex ’400
0’にセットされる。ただし、ソフトウェア復号器につ
いてだけは、マイナスHe x’4000’ にセット
される。これもやはり0゜75と等価である。
INITENC(第14図および第15図)が符号器の
初期設定を行う。インプリメントされるバージョンが第
2図に示すハードウェア・バージョン(−H)か、第3
図に示すソフトウェア・バージョン(−8)かに従って
、2つのバージョンのI N I T E Cがインプ
リメントされている。テーブルがセット・アップされた
後、INITSTATE (第16図)が文脈記憶領域
を初期設定する。2つのバージョンに共通して、LEN
は256バイトに初期設定され、BEは圧縮済データ・
バッファの終末に位置づけられるとともに、BPはBP
ST (つまり送るべきバッファの実際の始まり)の1
バイト手前に位置づけられている。1つのバイトが書き
込まれる前に、ポインタが更新される。このため、1の
オフセットが必要になる。
(BPによってアドレス指定される)バイトBは′80
′に初期設定される。これは、圧縮済データ・ストリー
ムにおける最初のバイトとしてB=OまたはB= ’F
F″という特別な場合にトリガがかからないようにする
ためである。レンジAは’4000’ に、そしてAM
INもそれと同じ値に、それぞれ初期設定される。
バージョン間の違いが現れるのは、Xの初期設定におい
てである。すべてのバージョンにおいて、8個の圧縮済
ビットがレディになったことをフラグで知らすために、
8番目のm s bが1にセットされる。ソフトウェア
・バージョンでは、Xのフラグ、ビットの直後にボロウ
・ビットが挿入されるとともに、低位側のビットはAと
のOR操作が施される。このボロウ・ビットは、ボロウ
伝播がフラグ・ビットへ至るのをブロックする。
ENCODE (第17図)は、YNが1またはOに応
じてとられる2つのパスを示す。
(1,0DEYNI (第18図、第19図)は、YN
=1を符号化する。QO(S)<Oならば、MPS=1
であり、MPSシンボルを符号化しなければならない。
負であるQOを加算することにより、Aは減らされる。
ハードウェア・バージョンは、負のQOを引くことによ
って、Xを増加させる。MPSパスにおいてAがAMI
N未満ならば。
UPDATEMPS (第22図)によってQOを減ら
すことができる。RE N ORMブロック(第24図
)では、AとXの両方が再正規化される。
QOが正(ゼロは許されていない)ならば、MPS=0
であり、LPSシンボルが符号化されなければならない
。ソフトウェア・バージョンの場合、MPSレンジを計
算せねばならず、かつ又は新しいAの分だけ減らさねば
ならない。どちらの場合も、AはQO(S)にセットさ
れ、そしてLPSの場合についての確率の更新がUPD
A置LPS(第23図)において行われる。QOは常に
AMIN未満であるから、再正規化が必要になる。
C0DEYNO(第20図、第21図)は、YN=Oに
なるパスについて、第18図および第19図と同じ操作
を示す、この場合、MPSパスについてはQOが正であ
り、LPSパスについてはQOが負である。
U P D A T E M P S (第22図)は
、MPSパスでの確率更新を行う。新しいQeおよびイ
ンデックス(合計4バイト)が、Q I MP Sテー
ブルの中の古いIO(S)の場所で発見される。第3表
は、QIMPSテーブルの1例である。
UPDA置LPS (第23図)は、LPSパスでの確
率更新を行う、新しいQeおよびインデックス(合計4
バイト)が、QILPSテーブルの中の古いlo(S)
の場所で見つけられる。第2表は、QILPSテーブル
の1例である。
RENORME (第24図)は、A値とX値の正規化
を、一度に1ビツトずつ行う。Aがまずシフトされた後
、Xについて最上位ビットがセットされたか否かの試験
が行われる。セットされている場合、Xの次のシフトに
よってそのフラグ・ビットが取り除かれるとともに、1
バイトがBYTEOUT (バイト・アウト、第25図
、および第26図参照)によって出力される。セットさ
れていない場合、又は単に1ビツト分シフトされるだけ
である。このプロセスは、AがAMIN未満である限り
続く。
BYTEOUT (第25図および第26図)によれば
、復号器は、各“FF″バイトの直後において、後続の
バイトの先頭にビットが1つ挿入されることを予期して
いる。先頭ビットはキャリー・ビットとなるであろう。
第25図では、ハードウェア・バージョンがまず最初に
最後のバイトBを見て、Bが’FF’ならば、直後に5
HIP7−H(第27図)において6ビツトだけを出力
する。どんなキャリーでも、新しいバイトの1番目に大
きな桁のビットに現われるであろう。Bが’FF’未満
ならば、キャリーについてXのテストが行われる。キャ
リーがないならば、8ビツトの出力を5HIP8−H(
第29図)によって行うことができる。キャリーがあれ
ば、最後のバイトBについて1だけ増分する必要があり
、結果について’FF’ となったか否かのテストが行
われる。結果が’FF’であれば。
既にBに加算法のXにおけるキャリーを、後続の7ビツ
トを出力する前にクリアしなければな壱ない。結果が’
FF’でないならば、8ビツトを新しいバイトへ出力し
てもよい。
ソフトウェア用のバージョンであるBYTEOUT−5
(第26図)は、Xが正であるか否かをテストする@X
が正ならば、ボロウ・ビットが使用されたのであり、8
ビツトを出力する前にBを1だけ減分しなければならな
い、ボロウ・ビットが使用されていなかったならば、A
が又と比較される前にXからボロウ・ビットがクリアさ
れる。
XがAより小さいならば、将来ボロウが必要になる可能
性があるが、新しいバイトがゼロとして出力される場合
には、ボロウを入手できなくなる。
(Aはせいぜい’7FFC’であり、Xは8個の出力ビ
ットのうちにゼロだけを持っている。)SHIP8FF
−5(第31図)はプレ・ボロウを行って新しいバイト
をFF″に変換し、借りたビットをXにセーブする。B
が’FF’ならば、5HIP8−8 (第30図)によ
って8ビツトが送出される代りに、5HIP7−8 (
第28図)によって7ビツトだけが送呂される。
5HIP7−H(第27図)は、NEXTBYTE(第
32図)における出力バイト・ポインタを増分し、Xか
らの新しいBビット24〜17に保持する。先頭ビット
はどんなキャリーも含む。
7番目に大きなビットにてフラグが挿入される前、後続
の17ビツトだけがXに残される。この結果、7個の新
しいビットが準備されると、次のバイトが出力される。
なぜなら、1個のビットがXに残つているからである、
5HIP7−3 (第26図)は、フラグ・ビットをす
ぐ追うようにボロウ・ビットがセットされる点を除いて
、5HIP7−Hと同じである。
5HIP8 (第29図および第30図参照)は、どち
らのバージョンも似通っている。ポインタを後続の出力
バイトBに増分した後、Xの中のビット23〜16にあ
る8ビツトがBにて保持される。
Xの中で、最下位側の13ビツトを除くすべてのビット
がクリアされて、フラグは上位から8番目のビットにて
挿入される。ソフトウェア用バージョンでは、フラグの
後にボロウ・ビットも挿入される。
ソフトウェア符号器用バージョンにおいては、必要なら
ばBについて減分を施すことが可能であることが保証さ
れなければならない。「書き込まれるべき後続のバイト
がゼロであり、これからボロウを取る必要が生じかねな
いときに、5HIP8FF−8(第31図)が実行され
る。したがって、Bを1だけ減少させて後続バイトをH
ex’FF’ に変換して、直ちにボロウがとられる。
これら2つのバイトから取られたボロウはXの中に挿入
される。そこでは、該ボロウが必要とされないなら、該
ボロウは後続バイトの中でキャリーとして出力される。
」 NEXTBYTE (第32図)は、BPを動かして圧
縮済データ用バッファの後続バイトをアドレスする。イ
ンクレメントされた後、BPがバッファの終端以上の値
になるならば、該バッファを転送しなければならず、B
Pもバッファの先頭に戻るようリセットしなければなら
ない。必要ならばBPSTとBEが適当に変化すること
が想定されている。
最後のシンボルが符号化された後、まだXの中にある2
2個の圧縮済ビットについてはフラッシュ・アウトする
必要がある。FLUSH−H(第33図)では、CTが
22に初期設定され、そしてフラグが最上位のビットに
来るまで、Xの中での各シフトに対応してディクリメン
トされる。もう1回シフトされると出力ビットがバイト
境界に位置される。そうすると、FINALBYTES
−H(第35図)によるこれらの最後のバイトの出力が
可能になる。
FLUSH−3(第34図)はXを区間の底へ移動させ
る。これによって、ハードウェア・バージョンによって
生成される値に正確に位置づけられる。ビットのバイト
位置合せの後、ボロウが使用済の場合、FINALBY
TES−8(第36図)において最終バイトが出力され
る前に最後のバイトをディクリメントしなければならな
い。
FINALBYTES−H(第35図)は、すべてビッ
トがフラッシュ・アウトされてしまうので、ループの中
で、BYTEOUT−H(第25図)と同じタイプの動
作を行う、FLUSH7(第37図)とFLUSH8(
第38図)のブロックは、CTを7ビツトまたは8ビツ
トだけ適当にディクリメントすることを含む。それが完
了すると、記憶されている最後のバイトを越すまでBP
がインクレメントされて、バッファの最後の内容が送出
可能になる。
ソフトウェア式符号器用のバージョンFINALBYT
ES−8(第36図)は、先行するバイトが’FF’で
あるか否かに応じて7ビツトまたは8ビツトを送出する
だけでよい。プレボロウの処理はすでにFLUSH−8
にて行われている。
Xは区間の底に動かされたので、BYTEOUT−8に
おけるAを用いたテストは無関係である。
FLUSH7(第37図)では、ハードウェア・バージ
ョンとソフトウェア・バージョンのどちらの場合でも、
新しいバイトを指し、ビット24〜17を記憶し、Xの
下位側の17ビツトだけをセーブし、かつ7だけCTを
ディクリメントすることによって、6ビツトが出力され
る。
FLUSH8(第38図)では、ハードウェア・バージ
ョンとソフトウェア・バージョンのどちらの場合でも、
新しいバイトを指し、ビット23〜16を記憶し、Xの
下位側の16ビツトだけをセーブし、かつCTを8だけ
ディクリメントすることによって、8ビツトが出力され
る。
bl″  言  の   な1 ロ INITDEC(第39図および第40図)が復号器を
初期化する。復号器がハードウェアに最適なもの(H)
、ソフトウェアに最適なもの(S)の何れに関連するか
に応じて、INITDECの2つのバージョンがインプ
リメントされている。
テーブルがセットアツプされた後、符号器の場合のよう
にすべての状態が初期化される。Xの初期化は圧縮済デ
ータのバッファからである。しかしながら、Aの大きさ
は、符号器にマツチするように初期化されることを述べ
ておく。どちらのバージョンも、圧縮済データの新しい
バッファを獲得することから始まる。これは、BPST
とLENの初期化を想定している。BEは圧縮済バッフ
ァの終端に向けられ、かつBPはバッファの先頭を指す
ように初期化される。「バージョン間の違いは、X、A
、およびAMINの初期設定において現れる。ハードウ
ェア・バージョンについては、レンジAが”4000’
に、AMINが64000′にそれぞれ初期設定される
。ソフトウェア・バージョンでは、これらの数は負にな
る。、TNITDEC−Hでは、最初の2バイトがビッ
ト31〜16に配置される。初期化の便宜を図って、圧
縮済データ・ストリームの先頭の2ビツトはOであると
規定されている。この結果、初期化の際に、コード・バ
イトとXレジスタのバイトのバイト位置合せが簡単にな
る。第1のバイトが位置31〜24ヘシフトされ、かつ
ポインタBPがGETBYTE (第49図)にてイン
クレメントされると、第2のバイトがビット23〜16
へ加算される6先頭バイトは’FF’ にならないよう
保証されており、テストの必要はない。復号プロセスは
XCの中のビット、つまりXの高位の2バイト(ビット
31〜16)に注意するだけである。BYTEINを用
いて、第3のバイトがビット15〜8に配置される。(
ただし、これは、第2のバイトが’FF’でなかったと
きの話である。第2のバイトがFF’だったならば、第
3のバイトはビット16〜7へ加算される。)BYTE
INは、新しいバイトが必要になったときを表示するフ
ラグをセットする。ソフトウェア・バージョンのINI
TDEC−8(第40図)は、XCの中で′C000′
であるAをOから引くことから始まる。
最初の2バイトはこの開始点に加算される。BYTEI
Nは、第3のバイトの関係する加算とフラグのセットに
使われる。
DECODE (第41図)は、MPSが1カOかに応
じてとられる2つのパスを示す。
DECODEMPSI (第42図、第43図)は、M
PS=1のときの復号の2つのインプレメンテ−ジョン
を示す。ハードウェア・バージョンでは、負であるQO
(S)がXCに加算される。
結果が0以上ならば、MPSパスが続く。YNが1にセ
ットされるとともに、負であるQO(S)を加算するこ
とによってAが減少させられる。AがAMIN未満であ
るためにMPSパス上でAの再正規化が必要ならば、t
JPDATEMPsにおいてQO(S)の大きさも減ら
される。LPSパスでは、YNが0にセットされるとと
もに、負のQO(S)を引くことによってXCが回復さ
れ、さらにAはQO(S)の負数にセットされる。LP
Sパスでは再正規化が常に求められ、QO(S)の大き
さはUPDA置LPSにて増加される。
第43図のソフトウェア・バージョンでは、XCをAと
比較する前に、負であるQO(S)を引くことによって
Aの大きさを減らしている。Aは負のMPSレンジを持
つ、XCがA以上ならば、LPSが復号される。そうで
ない場合は、MPSが復号される。LPSが復号される
場合、ソフトウェア・バージョンは、負のMPSレンジ
Aを引くことによって、xCを増加させる。MPSパス
では、AとA M I Nの両方が負なので、AがAM
INより大きいことはAの大きさく絶対値)がAMIN
の大きさく絶対値)より小さく、再正規化が必要である
ことを示す。
DECODEMPSO(第44図、第45図)は、MP
S=Oなるパスについて、第42図および第43図と同
じ操作を示す。この場合、QOは正である。
RENORMD (第46図、第47図)は、A値とX
値を一時に1ビツトずつ正規化する。AとXの両方がシ
フトされた後、XFLAG、つまりXの最下位のバイト
について、セットされているビットの有無がテストされ
る。そのようなビットがないならば、新しいバイトの獲
得に移る。このプロセスは、(ハードウェアについては
)AがAMIN未満である限り続き、(ソフトウェアに
ついては)AがAMINより大きい限り続く。
BYTEIN (第48図)に示されるような新しいバ
イトをXに移すプロセスの際、GETBYTE (第4
9図)が次のバイトに移る前に、最後のバイトBについ
て、これが’FF’FF上であったか否かのテストが行
われる。’FF’ に続くどのバイトの先頭のビットも
符号化の際に挿入されたものだから、復号の際に適切に
考慮しなければならない。’FF’ があったならば、
XNEW(Xの最下位の2バイト)が値2にセットされ
る。
XFLAGにおいてフラグ・ビットを1だけシフトする
ためである0通常2番目に下位のバイトに配置される次
のバイトは、エキストラのビットの方へ送り出され、X
に加算される6最後のバイトBが’FF’でないならば
、XNEWの最下位のビットがセットされるとともに、
新しいバイトBカX N E Wの高位のバイトに加算
される。
GETBYTE (第49図)は、BPを動かして、圧
縮済データ・バッファの中の次のバイトをアドレスする
。インクレメントされた後のBPが少なくともバッファ
の終端である場合は、新しいバッファを獲得せねばなら
ず、かつBPを該バッファの始端ヘリセットしなければ
ならない。必要ならば、BPSTとBEは適当に変更さ
れるものと想定する。
上述のソフトウェア型符号器用のプロシージャは、通常
のメインフレーム・コンピュータ、例えばIBM(登録
筋jIA)3370.あるいはパーソナル・コンピュー
タ、例えばIBMPC−XT、PC−ATにおいてイン
プリメント可能である。
プロシージャのインプリメントは、PASCAL等の高
級言語を用いて行うことができる。
■、ハードウェアの  例の説l 第50図に示されるように、Qコーダー500には、2
値事象BITINが符号化される度に、符号器側状態発
生器モデル(第1図参照)によりNビットの状態Sが供
給される。Qコーダー500の出力は圧縮済データのバ
イトである。これらは、Qデコーダー(第54図参照)
に入力される前に、送信されたり貯蔵されたりする。Q
デコーダーは、復号器側状態発生器モデルからのNビッ
トの入力状態Sに基づいて、2値事象BITOUTの論
理値を決定する。この復号されたBITOUT値は、復
号器側状態発生器(図示省略)にフィードバックされる
Qコーダー/Qデコーダー・システムは、符号化される
べき2値事象の1つについて、1つのメジャー・サイク
ルを営む、タイミングは、エツジ・トリガ型のフリップ
・プロップおよび単一の位相クロック・システムによっ
て決定される。クロック・エツジ間の時間は充分長く、
したがって最悪の場合の伝播の遅延およびセット・アッ
プ時間の要請にかなっている。
ここでは、各メジャー・サイクルで起ることを説明する
。第50図は、Qコーダー500ブロック図である。新
たなサイクル毎に、Qコーダー500には、2値事象値
BITINと確率についての情報の記憶場所を指定する
状態Sとが主要な入力として供給される。サイクルの終
りでは、キャリー・オーバー(C10VER)出力バッ
ファからの出力制御(OUTPUT  C0NTR0L
)が、コードストリング(CODESTRING)の1
6ビツトの中に準備されたバイトの数が0.1.2の何
れであるかを指定する。
統計ユニット502への1つの入力は、Nビットの状j
ll S テ& ル。コレハ、MPS値(MPSVAL
)および現在の2値判断BITINのためのQインデッ
クスを得るために、条件術は文脈記憶装置をアドレスす
るのに用いられる。Qインデックスは一連の整数であり
、LPSの確率推定値セットのインデックスである。具
体例では、Qインデックスは0か629の範囲である。
統計二二ツト502は、MPS値とQインデックスをサ
イクルの早朝に出力する。このため、これらのパラメー
タを符号器ユニット504と適応化ユニット506の両
方に入力することが可能である。サイクルの遅くには、
入力Aバス<O> (Aバスの最上位ビット)が該サイ
クルのある期間の間0でなかったならば、統計ユニット
502が、状態Sによって指定される場所に新MPS値
と新Qインデックスを記憶する。統計ユニット502の
動作は。
符号器と復号器のどちらについても同じである。
適応化ユニット506も、符号器と復号器の両方につい
て同じである。このユニットの動作は第4表に示されて
いる。同じ機能は離散形論理を使って達成できる。
2値事象BITINは、MPS値およびQインデックス
とともに符号器ユニット504に入力される。符号器ユ
ニット504からの出力の1つは、2進(ブーリアン)
信号Aバスく0〉、つまりAバスの最上位ビットである
。これによって、統計ユニット502に対し、Qインデ
ックスまたはMPS値を変更するときが知らされる。適
応化ユニット506は、符号器ユニット504から”M
Ps o p ”ブーリアン信号を受は取る。これは、
現在の判断がMPS操作か否かを表示する。適応化ユニ
ット506の出力は、統計ユニット502からの2つの
入力についての新たな値になる。、統計ユニット502
は、Aバスく0〉がゼロであった場合のみ、新たな値を
記憶する。
Cl0VER出力バツフア508は、符号器ユニット5
04および適応化ユニット506と同一のサイクルにお
いてキャリー用のビット−スタッフィングを行う、ある
いは、パイプライン式で動作することもできる。パイプ
ラインの1ユニツトとして、サイクル“n”ではシステ
ムがサイクルat、1.p″の符号器ユニット504の
出力に基づいてCl0VER出力バツフア508を機能
させるというようなサイクルのそれぞれで、フリップ・
フロップが符号器の出力を記憶する。
メジャー・サイクルには2つのタイプがある。
すなわち、MPS操作とLPS操作であり、それぞれM
 P S OPイコール1、MPSOPイコール0と表
示される。BITIN値とMPS値が同じならばMPS
操作、異なる場合はLPS操作になる。第51図のBI
TINとMPS値に従うエクスクル−シブORゲートは
、該メジャー・サイクルについての操作のタイプを決定
する。
1つのサイクルの間に、符号器ユニット504は、Cl
0VER出力バツフア508に対して、2値キヤリー・
アウト値Cl0UT、13ビツトの正規化されていない
コード・ストリームC−UNNORM、およびコード・
ストリームをどれだけシフトすべきかを示す4ビツトの
制御信号SHI FTAMTを出力する。バッファ50
8は、1または2バイトの数および送り出されるバイト
数がOll、または2の何れであるかを表示する制御信
号を出力する。
統計ユニット502および適応化ユニット506は、Q
コーダーとQデコーダーの両方で同一である。
第51図は、符号器ユニット504の詳細なブロック図
である。ここで論じるタイプの算術符号化法は、加算と
シフトによって符号を形成する。
加算される数(量)は被加数である。入力Qインデック
スは被加数に関連する。Q値(QVALUE)は、Qイ
ンデックスの数値と一対一で対応している。ここで、Q
値は、ハードウェアによるQコーダーの具体例では算術
符号化プロセスにおける被加数である。符号器ユニット
はQ値だけを求め、Qインデックス求めない、この具体
例では、Q値が5ビツトの数であり、かつQ値は12の
有意(signficamt)ビットに先行する0をプ
ラスしたものであるから、Qインデックスを貯蔵する方
が経済的である。また、適応化ユニット506にとって
もQインデックスの方が操作しやすい。
符号器と復号器のどちらの場合も、QインデックスをQ
値に変換するのはQ論理510である。
変換は、第5表を使ったり、あるいは現在の教科書に登
場する真理値表を用いる組合せ回路を使ったりして実行
することができる。Q値の最上位ビットは常にOであり
、かつ最下位ビットは常に1であることに注意されたい
Qコーダーは、Aレジスタ528とCレジスタ534と
いう2つのレジスタを用いる。Cレジスタは、ソフトウ
ェア・フローチャートで使われるXレジスタと機能的に
等価である。第52図はAレジスタ528の内容を修正
するA論理の詳細な説明図である。入力MPSOPに応
じて、Aマルチプレクサ(A−MUX)522は、LP
S操作(0)に対応するQ値またはAレジスタ528か
ら引かれるMPS操作(1)に対応するQ値を選択する
。優先順位符号器524は、Aバス上の先行するゼロの
数をカウントし、Aバスの最上位ビットに1を回復する
のに必要なシフトffisHIFTAMTを生成する。
このシフトは、Aレジスタ526にて行われる。最下位
側のビットは、必要に応じて0が充填される。第6表は
、SHIFTAMTの値をAバスの関数として示す、ダ
ッシュは、「無視(don’t care) Jビット
であることを示す6Aレジスタ528がクロックされる
のはサイクルの遅くであり、すべての値が安定化した後
である。その内容は人減算器529へ供給される。
コード・ストリームからのシフティング、特にCレジス
タ534を介してのシフティングは、Aレジスタ528
によって次のように制御される。
Aレジスタ528が所与数のビット位置だけ左へシフト
する必要があるときは、Cレジスタ534も同じビット
数だけシフトされる。各メジャー・サイクルの始まりに
おいて、Aレジスタは正規化されなければならない。す
なわち、Aレジスタの中の数値は、下限の値以上でなけ
ればならない。
上述のように、この条件が満たされないと、Aは(左へ
のシフトによって)再正規化される。(Aは下限LBに
初期設定される。)Aレジスタ528のシフトが発生す
るのは、Aレジスタ528に対する操作の結果Aレジス
タの値が上記下限未満となるメジャー・サイクルにおい
てである。下限未満になったことは、Aバスの最上位ビ
ット、っまりAバスく0〉が0になったことに基づいて
検知される。
MPS操作では、Q値がAレジスタ528から引かれ、
必要ならば再正規を施した後の差をAレジスタ528に
戻す。LPS操作では、正規化されたQ値がAレジスタ
528に置かれる。第52図では、Q値をAレジスタ5
28から引く減算が人減算器のユニットで行われる。そ
の出力は、Aマルチプレクサと呼ばれる2対1のデータ
・セレクタを通過する。LPSOPでは、Q値がデータ
・セレクタA−MUX522を通過する。A−MUX5
22の出力はAバスと呼ばれる。減算の結果によれば、
その結果であるAバスの値がLB未満となり得る。この
例では、LBの値は、Aバスく0〉が0ならば少なくと
も1回の再正規化シフトが起こらざるをえないような値
に選択されている。
実際、Aバスが受けなければならない再正規化シフトの
数は、Aバスの上の(減算の)結果における先行ゼロの
数である。Aバスの再正規化はAシフタ526のユニッ
トで行われる。Aシフタ526は、ゼロ充填機能を持つ
バレル・レフト・シフタである。Aバスからシフト・ア
ウトさせるビット位置の数は、Aバス上の先行するゼロ
の数に依存する。Aシフタの制御信号であるSHIFT
AMT (シフト量)は、Oと12の間の4ビツトの数
である。Aバスが再正規化を必要としないとき。
SHI FTAMTは0であり、Aバスはまっすぐに通
り抜ける。シフタに供給される制御信号SHIFTAM
Tは、優先順位符号器524によって決定される。該符
号器524は、Aバス上の先行するOの数を符号化する
。MPSOPの際に、Aマルチプレクサ522は、Aレ
ジスタからQ値を引いた差をAバスに出力する。LPS
OPの際、データ・セレクタA−MUX522はQ値を
出力する。SHIFTAMTの数値は、符号器のCレジ
スタ534の部分も制御するし、Cl0VER出力バツ
フア508ユニツトの制御信号にもなる。
MPSOPでは、Cレジスタ534とQ値がC加算器5
36にて加算され、CバスについてのMPS結果をもた
らす。LPSOPでは、Cマルチプレクサ(C−MUX
)534がCレジスタ532の値をCパスへ供給する。
Cl0UTはC/○VER出力バツファ508のユニッ
トへも供給される。(この例のように)Q値のCレジス
タ534への加算は、Aレジスタ528からのQ値の減
算と並行して行い得る。Cバスは、Aバスと同じSHI
 FTAMT(シフト量)だけシフトされなければなら
ない。このため、ユニット優先順位符号器524の出力
SHIFTAMTは、Cシフタ八、も供給される。MP
SOPサイクルでは、2対1データ、セレクタC−MU
Xが、CバスをCシフタへ通過させる。CシスタはAシ
フタと対をなすものであつ°C1左シフトのバレル・シ
スタである。Cシフタの出力はCレジスタ534へ送り
戻される。
C−MUXの(シフトされていない)出力は、C−UN
NORMと呼ばれ、SHI FTAMTのようにC,1
0VER出力バツフア508のユニットへ送られる。S
HI FTAMTによッテ、Cl0VER出力バツフア
508のユニットは、C−UNNORMの先行ビットを
いくつ取るべきかを知る。
LPSOPでは、Cレジスタ534への加算は行われず
、シフトが行われるだけである。LPS○Pサイクルで
は、C−MUX制御信号がCレジスタ534自体を選択
してCシフタへ送る。そこでCレジスタの値がSHI 
FTAMTビット分の左シフトが行われた後、Cレジス
タ534に戻る。
既述したように、SHIFTAMTとC−UNNORM
 (C−MUX(7)出力)は、Cl0VER出カバツ
フア508のユニットへも入力される。ここでは、Cl
0UTはOでなければならない。なぜなら、Cには何も
加えられないからである。
適応化ユニット506の目的は、入力されてくるOと1
の相対的な確率に基づいて、特定の文脈で用いられる符
号化パラメータを調整することである。
説明したコードでは、Aレジスタ528とCレジスタ5
34の長さがともに13ビツトであり、ビット位置をO
ll、・・・、12と表わす。ここで。
位置0が最上位、位@12が最下位である5位置0と1
の間に基点(radix point)があるのが好都
合である。そうすると、ビットA〈0〉が1ならば、A
レジスタの値は1.0以上2.0滴末である。LBの値
は1.0である。Q値はすべて1゜0未満であるが、そ
のうちのいくつかは0.5に近い。したがって、Q値の
レンジは12の有意ビットを持つ。ビット位置C<O>
は、直接′加えられることがない。なぜなら、Q値の対
応するビット位置が0であるとわかっているからである
。したがって、Cく0〉が変更され得るのは、MPSo
Pサイクルの際にキャリーが持ち込まれたときである。
算術符号化の性質により、どのメジャー・サイクルの後
でも、コードストリングの値が、現在のAレジスタ52
8の値とコードストリングの和を越えて現在のCレジス
タ534の数値を包含することはあり得ない。したがっ
て、C<O>からのキャリー・アウトが1度生じると、
コードストリングの該ビット位置へ別のキャリーが来る
ことはない、第53図には、符号器のC論理530のブ
ロックが示される。Cマルチプレクサ532への入力M
PSPOPによって、LPS操作(0)についてはCレ
ジスタ534の内容が選択される一方、MPS操作(1
)については加算器536によるCレジスタ534の内
容とQ値の和が選択される。C−MUX532からの1
3ビツトの出力は、(再正規化される前の)C/UNN
ORM信号として出力される。Cバス上の同じデータは
Cシフタ538へ入力されるので、サイクルの遅くにお
いてCレジスタ534にクロックされてしまう前に、S
HIFTMATO分だけシフトされ得る。必要に応じて
シフティング・プロセスの間に、最下位側のビットには
ゼロが挿入される。
第54図のQデコーダーには、統計ユニット602、適
応化ユニット604、復号器ユニット606、およびコ
ード・ストリーム中のキャリーをアカウントするC/I
Nバッファ608が含まれる。要素602.604はQ
コーダー500において同様の名前をつけられたユニッ
トと同一である。第55図は、復号器ユニット606の
詳細を示す、復号器ユニット606には、CD論理60
8、Q論理610、およびA論理612が含まれる。
第56図には、復号器CD論理が示される。
(常に1である)Q値の最下位ビットからキャリー・イ
ンC/INを引いた差は、C/INがOならば1となり
、C/INが1ならば0となる。したがって、Q値マイ
ナスC/INは、Q値の最下位ビットをC/INの反転
値に代えることによって得られる。CD減算器620に
おいて、Q値マイナスC/INからCDレジスタ624
の内容を引いた結果が正である場合は、MPSが復号さ
れたのであって、その結果はCDバスを経てCDシフタ
622へ送られる。MSPOP信号は1である。そうで
ない場合は、LPSが生起したのであって、CDレジス
タ624の内容と加算器626のC/IN出力の和が、
CDマルチプレクサ(CD−MUX)628において0
であるMPSOPによって選択される。MSPOP信号
とMPS値のエクスクル−シブORを求めることによっ
て、B ITOUT値が得られる。シフト量SHIFT
AMTは、CDレジスタ624に貯蔵可能となる前にC
Dバス値がいくらシフトされなければならないかを決定
する。シフティングの間に、最下位側のビットがインス
トリング(I N5TRINO)の最上位側のビットに
よって充たされる。
実際、CDレジスタ624は、現在区間の底(下端)に
関係する現在のコードを収容する。13ピッ1−のQ値
(最上位ビットはゼロ)の上位12ビツトはCD減算器
620へ送られる。Q値の最下位ビットは、C/INか
ら由来するビットによって置換される。Q値の最下位ビ
ットは常に1なので、C/INがOである(つまりキャ
リーがない)とき、値が反転されてCD減算器620の
ためのQ値の最下位ビットとなるとともに、反転される
ことなくC/IN加算器に直に供給される。
このように、キャリーは並列にコード・ストリームに加
算されるとともにQ値から取り除かれ、それからQ値が
コード値から引かれる。CD減算器620からのボロウ
は、復号されたMPS/LPS判断、MPSOPである
。続いて、MPSOPとMPS値のエクスクル−シブO
Rをとることによって、BITOVTの値が得られる。
第56図は、CDレジスタ624のデータ・バスも示す
CDバス<0>のビットは直接引かれないけれども、こ
れは存在しなければならない。なぜなら、シフト操作に
よって11′の値がCDバス<0>にシフトする場合が
あるからである。A論理回路から得られたSHIFTA
MTは、左シフトを行うCDシフタ622の制御入力と
なる。シフタのための低位側の「充填」ビットは、C/
IN人力バツファ・ユニットから出力されるバスlN5
TRINGから由来する。
復号器ユニット606(第55図)は、lN5TRIN
Gからの12個までのビットにプラスしてキャリー人力
C/IN信号を用い、データの圧縮解除を行う。MPS
値とQインデックス値も、出力ビットBITOUTを復
号するための入力として必要である。符号器の場合のよ
うに、復号器ユニット606は統計ユニットにAパスく
0〉信号を与える。
■、算術コード・ストリームからのエスケープ多くの符
号化環境において、算術デコーダから独立して検出可能
なコード・ストリームからのエスケープを与えることが
望ましい。以下では、符号器のコード・ストリーム・レ
ジスタXにスペーサー・ビット位置を割り当てることに
基づくエスケープについて論じる。実際、スペーサ・ビ
ットを含めることによって、xXx・・・ビットがビッ
ト位置bbb・・・によって識別されるXレジスタの後
続バイト部ヘシフトされる時間に遅延が生じる。
スペーサ・ビットを含めることにより、He x’FF
’ の後のあるビット・パターンが不適式なものとなっ
て、コード・ストリームからのエスケープと制御語の挿
入が示唆される。(通常、復号に先立って、制御語が制
御装置によって撤回される6)さらに、スペーサ・ビッ
トを用いることによって、コード・ストリーム・レジス
タの後続バイト部の中のバイトを越えて2以上のキャリ
ーがもたらされる可能性がなくなる。
コード・ストリームの部分的に完成された後続バイトを
保持するXレジスタのビット・パターンは、現在区間の
値を持つ(被加数)レジスタAとビット位置合せがなさ
れる。確率の12ビット整数表現のために、符号器レジ
スタのビット割当の1例は次のようになり得る。
X=OOOO00000cbbbbbb bbss、x
xxx xxxxxxxxA=00000000000
00000000a、aaaa aaaaaaaaここ
で、10′はゼロのビットを表わし、Cはキャリー・レ
シーバ・ビットである。′b′は後続のバイトが生成さ
・れる位置のビットを示す。
′s′はキャリー伝播を制限するのに必要なスペーサ・
ビットを示す。又はまだXレジスタの中で展開中の2進
小数を表わす。Aレジスタの中のtap ビットのうち
の1つは整数ビットであり、他は小数ビットである。先
行するコード・バイトがHex’FF’ ならば、ビッ
ト位置付は1ビツトだけシフトされる。このため、キャ
リー・ビットは、後続バイトの充填ビット位置を占める
。この特別な場合では、 X=0000000000cbbbbb bbss、x
xxx XXXXXXXXとなる。ここで、この特別な
場合では、′b′ビットが7個だけ規定されることに注
意されたい。
完全に展開されたコード・バイトの除去に続いて、ビッ
ト位置決めおよび再正規化についての規則が、2つのレ
ジスタにおける値の上限を指令する。すなわち、 X=OO000000000000000011,11
1111111111A=0000000000000
0000001.111111111110となる。
将来の事象が符号化されても、Xレジスタの値は、現在
のX値と(どのような再正規化ファクタが掛は合わされ
た場合でも)A値の和には及ばないことに注意されたい
、したがって、コード・レジスタの上限は、 X=SLL(0000000000000000010
1,111111111101)Nとなる。ここで、N
は再正規化シフト・カウントである。SLLは「左シフ
ト論理」操作(’5hiftleft logical
’ operation)を意味する。該バイトが完成
したときのNは、先行バイトが’FF’でない場合は8
になり、先行バイトがFF’である場合は7になる。し
たがって、’FF’の次では、Xレジスタの上限は次の
ようになる。
X=OO000000001011111111,11
1010000000X=OO00000000cbb
bbb  bbss、xxxx  xxxxxxxxし
たがって、スペーサ・ビットを2つ含める場合、Hax
’FF’ に続くデータ・バイトの最大値はHex’B
F’ になる、ちなみに、スペーサ・ビットが1つだけ
許容される場合、’FF’バイトの後のバイトの最大値
は゛FF’バイトの後のバイトの最大値は′9F′とな
る。このように、2以上のスペーサ・ビットを設けると
、’FF’バイトに続く不適式な符号が、算術コード・
ストリームからのエスケープをもたらす。
(フローチャートと第2表、第3表に示されるように、
)AレジスタとXレジスタの位置合せにおける2ビツト
のシフトによって、コード・レジスタから除去すべきバ
イトがXレジスタのバイト境界にシフトされる。このシ
フトによって、エスケープ・コード構造が変化すること
はない。
■、小さなデータ・セットについてのテスト・シーケン
ス テスト・ファイルの生成は、2進シーケンスにかけるO
の確率が0.1875である乱数発生器を使って行った
。ファイルの中の実際のゼロの数は、予期した通り、4
8であった。Q値は’0AC1’ に初期設定された。
これは、2桁シフトされると’2b04’ と表わされ
る。正のQeは、MPS値がOであることを示す。
下記第7表に示す符号器テストでは、まず事象カウンタ
ecが示される。サイクルの終りでのQe値とYNシン
ボルとがこれに続く。再正規化の合計回数を「ビット」
の欄に示している。「コードバイト」は出力された通り
に掲載しである。この欄に2つのバイトが掲載されてい
ることがあるが、それは新しいバイトと、変更された先
行バイトを両方示しているのである。
テスト・データを16進数で表示すると次のようになる
EBB7F娠罰刊6C7F7FFFDFE’府加圧3印
圧9τ卵7旧兜DP−〇冗Mこのファイルの場合、符号
化されたビット・カウントは、最終データをフラッシュ
するためのオーバーヘッドも含めて208である。実際
に圧縮されたデータ・ストリームは、どちらの符号器の
どの場合も、16進数で表示すると次のようになる。
23CAO8826F7E20151C267BAOA
B606CD63AA 26E7 IC197A80A
O7CO第1表 Qe    I(dQ)− hex f6fc hex ffec hex 0Odc hex 0Odc hex OOe4 hex  fffc hex 0Obc hex 0Occ hex 0Odc hex 0Oec S八 −M l”’lいいr’−、OO−へh4いいψトのの
O−NI”Nζい+JNNl’J NIN      
       −一一一一一〇〇 〇 〇 〇 〇 〇
 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 
〇 〇 〇 〇 〇Φトω+T% O−−M rl”l
いいr−−−N箇5いψトωの〇−凶−−−−tN F
J NIN NNIN N          −ff
 ”η−rいψトωΦQ−NMjいψトωΦの一〜h4
いψトωの0−−−−e−m −1%l NNIN I
N NIN NN(Nへ         −2C30
29 第6表 優先順位符号器の動作 256   eefc  1 00006010ooo
oooo。
190   004e Oa 07 c。
ロN            Ll         
     y口■ωCo小−へ5いいトωの0〜々5い
Φψトドψロー1”l I”11”l M−才$5−7
$55? LALA u)LALALINIALl’%
ば%LA’+O。
−−−−0−0−−0=−〇〇〇−−−−−−−0−r
”−aoの0−〜h々いψトのの0−へh4いψトωの
0+r+r+rいいいいい哨いいいいψψψψψψψψ
ψψトA口 r++1 − NNNff”l M l’l”l Ma 5 L+
’% LA LA Ll’% LA%J) (n (j
’l口0000−−5tjl■ ρψΦψψψψψψψψψψψψψψψトトトトトトト
トトトーー−”−−=−= −==−−−−MO−−−
−−−−−0ロー256   eafc  +  0O
O09ffO9ffOO040190004e E0発明の効果 本発明によれば、トラッピングを生じさせやすい数値で
あってもこれを推定確率値Qeの候補として選択できる
ので、Qe値の分析をより均一にすることができ、した
がって符号化の能率を一層向上させることが可能になる
という優れた効果が得られる。
【図面の簡単な説明】
第1図は、本発明によるQコーダーとQデコーダーを含
む一般的な算術符号化システムのブロック図である。 第2図は、ハードウェアによる好適な符号化、回復量に
よって1つの区間が2つのセグメントに分割される確率
数直線の説明図である。 第3図は、ソフトウェアによる好適な符号化、回復量に
よって1つの区間が2つのセグメントに分割される確率
数直線の説明図である。 第4図は、複数の互いに異なる符号器を示すとともに、
その何れもが複数の互いに異なる復号器の何れと結づけ
ても使用し得ることを説明するためのブロック図である
。 第5図は、データ・ストリームを圧縮符号化する際に用
いられる32ビツトのコード・レジスタ(Xレジスタ)
におけるビットの割当の説明図である。 第6図は、圧縮されたデータ・ストリームを復号する際
に用いられる32ビツト・レジスタにおけるビットの割
当の説明図である。 第7図は、確率Qeの更新と被加数の再正規化の統合を
示す説明図である。 第8図は、符号化の際の非゛能率性を示すグラフである
。 第9図は、入力されたqインデックスからQe値の出力
を導くのに用いられるデーティング回路に説明図である
。 第10図は、それぞれが推定確率を持つ複数個の文脈を
示すテーブルである。 第11図は、ビットのストリングが文脈に基づいて解釈
される様子の説明図である。 第12図は、単一レート符号化システムの有限状態機械
表現の説明図である。 第13図ないし第49図は、それぞれ、Qコーダー、Q
デコーダーの動作を示すフローチャートである。 第50図は、本発明によるハードウェアのQコーダーの
主要な構成要素を示す一般的なブロック図である。 第51図ないし第53図は、Qコーダーの要素(エレメ
ント)の詳細な説明図である。 第54図は1本発明によるハードウェアのQデコーダー
の主要な構成要素を示す一般的なブロック図である。 第55図および第56図は、Qデコーダーの要素の詳細
な説明図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) FIG、 1 FIG、2 八−トウ1下(−H) 笠ト袷慧 / 復号彦FIG、
3 C=C+A ソフトウェア(−5)符号晋/復号憑 し−し− MPS  MPS  LPS  MPS  MPSFI
G、11 FIG 千6          FIG、17FIG
°20 p FIG、21 FIG、22       FIG、23FIG、24 FIG、31 FIG、 37 FIG、 39     FIG、40FIG、41 FIG、49

Claims (1)

    【特許請求の範囲】
  1. (1)2値判断事象の系列を符号化する際、新たな判断
    事象が入力される度に、数直線上の直前に識別されてい
    た区間に包含されるような新たな区間と該区間に含まれ
    る1つの点を識別し、該識別された点に対応する数値を
    もつて入力された判断事象の系列を符号化したコード・
    ストリームとする算術符号化システムにおいて、 判断事象のうちの第1の事象の生起確率の推定値Qeの
    候補を予め複数個選択しておき、 上記新たな区間を識別するステップでは、上記複数個の
    候補のうちの1つをQeの現在値として用いて、区間の
    長さと関連づけられた数値Aを、新たに入力された判断
    事象が上記第1の事象であるかそれとも第2の事象であ
    るかに応じて異なるけれどもそれぞれQeの現在値に関
    連する数値に更新し、 数値Aが所定値AMINより小さくなると、該数値Aを
    AMIN以上の数値になるように2^m(mは正の整数
    )倍して再正規化し、 上記再正規化が上記第1の事象の入力に起因して起きた
    場合は、上記Qeの現在値を上記複数個の候補の中の今
    よりも大きな数値に更新し、上記再正規化が上記第2の
    事象の入力に起因して起きた場合は、上記Qeの現在値
    を上記複数個の候補の中の今よりも小さな数値に更新し
    、上記Qeの現在値がAMIN/2^n(nは正の整数
    )またはこれに近似する値であるときに上記第1の事象
    の入力に起因して再正規化が起きた場合は、新たなQe
    の現在値として、該Qeの現在値の更新の直後に上記第
    2の事象に起因する再正規化が起きても再び上記Qeの
    現在値に戻ることのないよう、十分大きな数値を選択す
    る ことを特徴とする算術符号化システムにおける確率適応
    化方法。
JP20200787A 1986-09-15 1987-08-14 算術符号化システムにおける確率適応化方法 Granted JPS6376525A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US90771486A 1986-09-15 1986-09-15
US907714 1986-09-15

Publications (2)

Publication Number Publication Date
JPS6376525A true JPS6376525A (ja) 1988-04-06
JPH0258813B2 JPH0258813B2 (ja) 1990-12-10

Family

ID=25424528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20200787A Granted JPS6376525A (ja) 1986-09-15 1987-08-14 算術符号化システムにおける確率適応化方法

Country Status (7)

Country Link
EP (1) EP0260461B1 (ja)
JP (1) JPS6376525A (ja)
AU (1) AU600972B2 (ja)
BR (1) BR8704623A (ja)
CA (1) CA1291821C (ja)
DE (1) DE3751372T2 (ja)
ES (1) ES2074977T3 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0265373A (ja) * 1988-08-30 1990-03-06 Canon Inc 画像の符号化方法
JPH0265372A (ja) * 1988-08-30 1990-03-06 Canon Inc 画像の符号化方法及び装置
US5764804A (en) * 1993-10-14 1998-06-09 Seiko Epson Corporation Data encoding and decoding system
US5809176A (en) * 1994-10-18 1998-09-15 Seiko Epson Corporation Image data encoder/decoder system which divides uncompresed image data into a plurality of streams and method thereof
US5859926A (en) * 1995-11-13 1999-01-12 Seiko Epson Corporation Device and method for data coding and decoding
US6014133A (en) * 1996-06-14 2000-01-11 Seiko Epson Corporation Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method
US6219445B1 (en) 1997-01-14 2001-04-17 Seiko Epson Corporation Multi-color image encoding and/or decoding apparatus containing color order table and the method thereof
US6327383B2 (en) 1997-01-14 2001-12-04 Seiko Epson Corporation Multi-color image encoding apparatus and method, multi-color image decoding apparatus and method
US6947592B2 (en) 1997-11-27 2005-09-20 Seiko Epson Corporation Encoding method of a color image and its encoding device and a decoding method of the color image and its decoding device
US9963021B2 (en) 2015-12-16 2018-05-08 Honda Motor Co., Ltd. Tailgate structure

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0834432B2 (ja) * 1989-01-31 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
IL91158A (en) * 1989-07-28 1993-01-31 Ibm Israel Method and system for arithmetic coding and decoding
CA2156889C (en) * 1994-09-30 1999-11-02 Edward L. Schwartz Method and apparatus for encoding and decoding data
GB2306279B (en) * 1994-09-30 1997-10-22 Ricoh Kk Apparatus for decoding data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467317A (en) * 1981-03-30 1984-08-21 International Business Machines Corporation High-speed arithmetic compression coding using concurrent value updating

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0265373A (ja) * 1988-08-30 1990-03-06 Canon Inc 画像の符号化方法
JPH0265372A (ja) * 1988-08-30 1990-03-06 Canon Inc 画像の符号化方法及び装置
US5764804A (en) * 1993-10-14 1998-06-09 Seiko Epson Corporation Data encoding and decoding system
US5963672A (en) * 1993-10-14 1999-10-05 Seiko Epson Corporation Data encoding and decoding systems
US5809176A (en) * 1994-10-18 1998-09-15 Seiko Epson Corporation Image data encoder/decoder system which divides uncompresed image data into a plurality of streams and method thereof
US5859926A (en) * 1995-11-13 1999-01-12 Seiko Epson Corporation Device and method for data coding and decoding
US6014133A (en) * 1996-06-14 2000-01-11 Seiko Epson Corporation Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method
US6219445B1 (en) 1997-01-14 2001-04-17 Seiko Epson Corporation Multi-color image encoding and/or decoding apparatus containing color order table and the method thereof
US6327383B2 (en) 1997-01-14 2001-12-04 Seiko Epson Corporation Multi-color image encoding apparatus and method, multi-color image decoding apparatus and method
US6947592B2 (en) 1997-11-27 2005-09-20 Seiko Epson Corporation Encoding method of a color image and its encoding device and a decoding method of the color image and its decoding device
US9963021B2 (en) 2015-12-16 2018-05-08 Honda Motor Co., Ltd. Tailgate structure

Also Published As

Publication number Publication date
DE3751372T2 (de) 1996-02-15
CA1291821C (en) 1991-11-05
AU7836687A (en) 1988-03-17
BR8704623A (pt) 1988-04-26
JPH0258813B2 (ja) 1990-12-10
EP0260461B1 (en) 1995-06-28
EP0260461A2 (en) 1988-03-23
EP0260461A3 (en) 1990-10-31
ES2074977T3 (es) 1995-10-01
DE3751372D1 (de) 1995-08-03
AU600972B2 (en) 1990-08-30

Similar Documents

Publication Publication Date Title
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
US4905297A (en) Arithmetic coding encoder and decoder system
US6677869B2 (en) Arithmetic coding apparatus and image processing apparatus
JPH0258812B2 (ja)
JP4717780B2 (ja) 符号化装置及びその制御方法
JPH0744462B2 (ja) 圧縮符号化方法及び復号方法
US20020101367A1 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
JPS6376525A (ja) 算術符号化システムにおける確率適応化方法
JPH04227337A (ja) 桁上げ制御を用いた適応符号化装置及びその方法
CN110291793B (zh) 上下文自适应二进制算术编解码中范围推导的方法和装置
WO2021027487A1 (zh) 一种编码方法及相关设备
JP3684128B2 (ja) 算術符号化/復号化方法ならびに算術符号化/復号化装置
DK3079261T3 (en) METHOD AND APPARATUS FOR ARITHMETIC DECODATION
JP2006129467A (ja) 整数データの無損失適応符号化・復号化
US6094151A (en) Apparatus and method for finite state machine coding of information selecting most probable state subintervals
CN105409129A (zh) 编码器设备、解码器设备和方法
TW202333501A (zh) 資源有限編碼環境中低延遲視訊傳輸的無失真壓縮
JP2003526986A (ja) 算術的に符号化された情報信号の算術復号化
JP3801501B2 (ja) 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
US6707398B1 (en) Methods and apparatuses for packing bitstreams
KR102296153B1 (ko) 전용 산술 인코딩 명령
GB2360915A (en) Run length compression encoding of selected bits of data words
JP4936574B2 (ja) 符号化装置及びその制御方法
JP2891818B2 (ja) 符号化装置
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071210

Year of fee payment: 17