JPS6376525A - Method for probability fitting in arithmetic encoding system - Google Patents
Method for probability fitting in arithmetic encoding systemInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 56
- 230000006978 adaptation Effects 0.000 claims description 26
- 239000000872 buffer Substances 0.000 description 49
- 125000006850 spacer group Chemical group 0.000 description 20
- 238000012360 testing method Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 11
- 230000002829 reductive effect Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000007906 compression Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 230000007423 decrease Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000007792 addition Methods 0.000 description 6
- 238000013144 data compression Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012634 optical imaging Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 229910052760 oxygen Inorganic materials 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 229910052717 sulfur Inorganic materials 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000282994 Cervidae Species 0.000 description 1
- 241001137251 Corvidae Species 0.000 description 1
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000015108 pies Nutrition 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
Landscapes
- Engineering & Computer Science (AREA)
- 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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Abstract] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、算術符号化法によって入力データを符号化し
て圧縮するとともに、算術符号化方法に基く復号によっ
てオリジナルのデータを復元する技術に関する。DETAILED DESCRIPTION OF THE INVENTION A. Field of Industrial Application The present invention relates to a technique for encoding and compressing input data using an arithmetic encoding method and restoring original data through decoding based on the arithmetic encoding method.
B、従来技術およびその問題点
所望のデータ転送速度を得るため、または限られたメモ
リ・スペースにデータを記憶するために、データを圧縮
してビット数を減らすことが必要になる。圧縮されたデ
ータは後で復元される。このステップをデータの圧縮解
除(de−compressing)と呼ぶ。B. Prior Art and its Problems In order to obtain a desired data transfer rate or to store data in limited memory space, it is necessary to compress data to reduce the number of bits. Compressed data is later decompressed. This step is called de-compressing the data.
データ圧縮/同解除技術の応用分野の1つとして、光学
式イメージングが挙げられる。該分野では1画素の暗さ
や影のような情報を大量に扱わなければならず、しかも
それらを高速で転送したり。One of the application fields of data compression/decompression technology is optical imaging. In this field, it is necessary to handle large amounts of information such as the darkness and shadow of a single pixel, and to transfer this information at high speed.
将来の使用に備えて記憶したりしなければならない。It must be memorized for future use.
算術符号化法は、データの圧縮/同解除を達成する1つ
の技術である。算術符号化では、判断(decisio
n)が次々に符号化されると、数直線に沿った、より小
さな、しかも前に規定された区間に包含される区間が規
定されていく。算術符号化法に関しては、本発明の発明
者によっていくつかの論文が著されている。G、 G、
Langdon、 Jr、著の“An Introd
uction to Arithmetic Codi
ng”、IBM Journal of Re5ear
ch and Development、 vol。Arithmetic coding is one technique for accomplishing data compression/decompression. In arithmetic coding, the decision
As n) are encoded one after another, intervals along the number line that are smaller and encompassed by previously defined intervals are defined. Regarding arithmetic coding methods, several papers have been written by the inventor of the present invention. G, G,
“An Introd” by Langdon, Jr.
Production 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がその例である。これらを引用して、従来技術
を説明する。28, n, 2. March 1984, pP, 135-149
,Andori,R,Helman,G,G,La
ngdon, Jr., J. J. R15sanen
Author “Arithmetic Compression”
ode Control Parameters
Approximation”, involume
23, Mail, April 1981, pP, 5112-
5114 is an example. The prior art will be explained with reference to these.
上記論文で述べられているように、算術符号化法によれ
ば、各判断は、可能性のある複数個の排他的な結果(o
utcome、または事象、event)を持つ。各結
果つまり事象は、シンボル化してデータの形で表わされ
る。例えば、光学式イメージング環境では、各判断はあ
る与えられた画素が黒か否かに対応する。そして、判断
の結果は、該画素が黒ならばY(つまりTES)シンボ
ルで表わされ、該画素が黒でないならN(つまりNo)
シンボルで表わされる。したがって、複数の判断を1例
えばYNYYN・・・・のようなシンボル列によって表
わすことができる。As stated in the above paper, according to the arithmetic coding method, each decision has multiple possible exclusive outcomes (o
utcome, or event). Each result or event is symbolized and represented in the form of data. For example, in an optical imaging environment, each decision corresponds to whether a given pixel is black or not. The result of the judgment is represented by a Y (i.e., TES) symbol if the pixel is black, and N (i.e., No) if the pixel is not black.
represented by a symbol. Therefore, a plurality of judgments can be represented by one symbol string, for example, YNYYN, . . . .
従来の符号化技術によると、確率直線に沿っである現在
区間が規定される6第1番目の現在区間はOから1であ
る。該現在区間はセグメントに分割される。このとき、
各セグメントが、後続の判断についての可能性のある1
つの結果に対応する。According to the conventional encoding technique, a current interval along a probability line is defined.The first current interval is from O to 1. The current interval is divided into segments. At this time,
Each segment has one possibility for subsequent decisions.
corresponds to one result.
各判断について2つの結果、しか可能性がないならば、
現在区間は2つのセグメントに分割される。If there are only two possible outcomes for each decision, then
The current interval is divided into two segments.
各セグメントの長さは、各自の関連する確率に基づいて
いる。それぞれの確率は固定されていてもよいし1判断
データの入力とともに適応化させてもよい。The length of each segment is based on its associated probability. Each probability may be fixed or may be adapted with input of one judgment data.
より発生頻度の高いシンボルにより大きなセグメントを
関係づけることによって、圧縮効率が向上する。上記文
献のうちの前者(“AnIntroduction t
o Arithmetic Encoding’りでは
、4シンボルの算術符号化の1例が説明されている。Compression efficiency is improved by associating larger segments with more frequently occurring symbols. The former of the above documents (“An Introduction
o Arithmetic Encoding' describes an example of 4-symbol arithmetic encoding.
そこでは、各判断が、”a″′′事象率50%)。There, each decision has an "a"'' event rate of 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ビツトが必要である。II l, 11 event (probability 25%), II c11 event (probability 12.5%), or “d” event (probability 12.5%).
5%). Representing these four events in binary numbers requires two bits for each event, each representing 00. OX, 10.11. For three events, such as aab, which is extremely likely, the honest data without encoding would be 0 00 01, requiring 6 bits.
しかしながら、上記論文のページ137に見受けられる
ように、算術符号化法によればシーケンスaabは数値
、001によって表わされる。6ビツトの代りに、情報
を3ビツトで表現することができる。比較的高い確率の
関連する事象が連続して発生すると、このようにビット
が保存される。However, as can be seen on page 137 of the above article, according to the arithmetic coding method, the sequence aab is represented by the number 001. Instead of 6 bits, information can be expressed in 3 bits. Bits are thus saved when related events occur in succession with relatively high probability.
しかしながら、確率の低い、つまり比較的線セグメント
の短い事象が数多く生じると、保存効果が低下する。上
記確率を用いた場合、事象列ddは。However, if a large number of low-probability events, ie, relatively short line segments, occur, the conservation effect decreases. When using the above probability, the event sequence dd is.
未符号化データの形で1111として表わされるのに対
し、算術符号化法によると111111として表わされ
る。大きなセグメントはど発生頻度の高い事象に事実上
対応するならば、蓋然性の高いシンボルが発生するとき
に達成される保存効果は、蓋然性の低いシンボルについ
て余分にビットが必要であるという欠点を補って余りあ
る。したがって、(事象に)関連する確率(およびそれ
に対応するセグメントの長さ)が、個々の事象の実際の
確率を適度に追跡することの保証が重要である。While it is represented as 1111 in the form of unencoded data, it is represented as 111111 according to the arithmetic encoding method. If large segments effectively correspond to frequently occurring events, then the conservation effect achieved when more probable symbols occur outweighs the disadvantage of requiring extra bits for less probable symbols. I have some left over. Therefore, it is important to ensure that the associated probabilities (and their corresponding segment lengths) reasonably track the actual probabilities of individual events.
従来、判断データの履歴をたくさん集めながら事象確率
を推定するための様々な技術が提案されている。このよ
うな技術を記載する文献として、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に基づいて変
化する。Conventionally, various techniques have been proposed for estimating event probabilities while collecting a large amount of history of judgment data. References describing such techniques include G.
“Method for Coding counts” by N, Jr. and J, J. R15sanen et al.
to Coding Parameters” (IBM
Technical Disclosure Bull
etin Vol. 22 No. 7, December 1979, No. 288
0 to 2882 pages). According to this literature,
A counter is used to detect changes in the probability of a monitored symbol from its occurrence and to modify the least probable symbol (LPS) probability q accordingly. especially,
q is changed to equal the count of one symbol divided by the total number of symbols counted during one symbol string. That is, if k is the count of one symbol and n is the count of both symbols, then the probability of a symbol changes based on 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)”と呼ばれている。Other references by Langdon and R15sanen et al. “Compression of Black Wh
ite Images With Arithmetic
Coely “(IEEE Transactions
onCommunications, COM-2
9, No. 6, June 1981) describes the adaptation of probability in arithmetic coding. In discussing adaptation to non-stationary statistics, this document
Section 5 begins as follows: The current estimate of the probability that symbol S (i) is 0 given r consecutive 0s in state 2 consisting of 1s is p = c Q / c. Assume. However, co
is c(Ol z, s (0), -----, 5(
t)), and C is the count value defined as C(Z, 5
This is a count value defined as (0), . . . , 5(t). Here, the symbol s (i) is taken. If s
If (i) is 0, check whether p' (r+1)≧0.2. If so, consider that this am is consistent with the estimate for p, update cO and C by 1, and make a new estimate. ...However, ρ'
If (r+1)<0.2, then this observation will probably result in modified statistics, so we should try to change the estimate to a larger value of p. This is done by halving counts co and C before updating them by one. If the received symbol 5(i) is 1, then perform the same reliability test using probability p (r). ...Actually, in order to facilitate implementation, upper and lower limits are set for the LPS count, and
Let each skew value Q(s) indicate whether the count should be halved. 'This document describes that the probability of LPS is approximated by the closest value of 2-Q(S). Here, Q(S) is an integer and is called a "skew number."
特別な確率適応化方法に関しては、特開昭60−196
014号公報、および本出願人による特願昭61−28
6891号明細書に記載がある。Regarding the special probability adaptation method, see Japanese Patent Application Laid-Open No. 1986-196.
Publication No. 014 and patent application filed by the applicant in 1982-28
It is described in the specification of No. 6891.
一般的でかつ新規な確率推定器の適応化方法が。A general and novel probability estimator adaptation method is presented.
本出願人による本願と同時に出願された特許出願(発明
の名称:算術符号化システムにおける確率適応化方法)
にも記載がある6本明細書では、本発明の詳細な説明す
るのに必要な程度に引用する。Patent application filed at the same time as this application by the applicant (Title of invention: Probability adaptation method in an arithmetic coding system)
In this specification, references are made to the extent necessary to provide a detailed explanation of the present invention.
上記特許出願では、ある事象のとり得る確率値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と等しいかまたはそれに近くなる数
値の場合、以下のような面倒なシーケンスを引き起こす
。In the above patent application, the possible probability value Qe of a certain event is
For example, it is specified in the form of a table. According to the invention related to the above-mentioned application, the prescribed addend value A decreases each time a determination is made. The amount by which the addend value decreases depends on the event. That is, the result of each decision is L P S (less probab
input of M P S (le symbol) or M P S (mo
In a binary application resulting in an input of a re probable symbol), when LPS is input, the addend value decreases to the current Qe value, while when MPS is input, the addend value A (A-
Qe). When the updated value of A becomes less than the predefined minimum value AMIN (which is greater than the maximum value of Qe), the updated value is renormalized again until A becomes at least AMIN. (preferably doubled). The basic concept of the invention according to the above application is to renormalize Q every time A is renormalized. If renormalization occurs following an LPS event, then (LP
The Qe value (representing the estimated probability of an S event) increases. If renormalization follows an MPS event, the Qe value will decrease. By linking the change in Qe and the renormalization of the addend value, the need for counters is eliminated and the time required to change Qe is easily reduced, thus reducing the probability of realism over the entire range of Qe values compared to the prior art. Close tracking of values is possible. Furthermore, it is recognized in the above application that the update procedure may become trapped at certain "bad" J values; for example, at certain "bad" J values, the , which leads to a cumbersome sequence like the one below.
(1)LPS事象の後で、Aが(悪い)Qeに等しくな
るようにセットされる。(1) After an LPS event, A is set equal to (bad) Qe.
(2)Aが少なくともAMIN以上になるまで、(1)
で更新されたAが倍増(必要ならばさらに倍増)される
。そして、今までより高いQe値が選択される。(2) Until A becomes at least AMIN, (1)
The updated A is doubled (and further doubled if necessary). Then, a higher Qe value than before is selected.
(3) (2)で更新されたAはAMINに等しいかま
たはそれに近いので、MPS事象がただ1回生じても、
AがAMINより小さな値に下降する。その結果、再正
規化が必要になり、Qe値が減らされて(悪い)Qe値
となる。(3) Since A updated in (2) is equal to or close to AMIN, even if only one MPS event occurs,
A falls to a value less than AMIN. As a result, renormalization is required and the Qe value is reduced resulting in a (bad) Qe value.
(4)現実のLPS確率が推定値Qeよりもずっと大き
いならば、LPS事象が再度発生しやすく、その結果Q
eが現在より高い値に戻る。(4) If the actual LPS probability is much larger than the estimated value Qe, the LPS event is likely to occur again, resulting in Q
e returns to a higher value than the current one.
(5)再びMPSが1回生じて再正規化を引き起こし、
Qe値が悪いQe値に戻る。以下同様。(5) MPS occurs once again, causing renormalization;
The Qe value returns to a bad Qe value. Same below.
上記出願の教示するところによれば、「トラッピング」
問題は「悪い」値を許さないことによって処理される。According to the teachings of the above application, "trapping"
The problem is handled by not allowing "bad" values.
しかしながら、この解決策の欠点は、「トラッピング」
の観点から言えば「悪い」特定の数値が、全体の効率の
観点から言えば良い数値であることである。However, the drawback of this solution is that "trapping"
A particular number that is "bad" from the perspective of efficiency is actually a good number from the perspective of overall efficiency.
更新された判断の履歴に基づいて確率の適応化を図るこ
とに加えて、算術符号化のインプレメンテ−ジョンには
、他の問題事項が関係してくる。In addition to adapting probabilities based on an updated history of decisions, other issues are relevant to implementations of arithmetic coding.
例えば「キャリー伝播」 「ボロウ伝播」がそれである
。「キャリー伝播」の問題は、判断入力の連続に伴って
コード・ストリームCを下記の取決に従って更新する算
術符号化用符号器の場合に注意すべきである。Examples include "carry propagation" and "borrow propagation." The problem of "carry propagation" should be noted in the case of an arithmetic coding encoder that updates the code stream C with successive decision inputs according to the conventions below.
(1)符号化されつつあるシンボルがLPSならば、C
の値は変わらず、新しい現在区間はA (new)=Q
eになる。(1) If the symbol being encoded is an LPS, then C
The value of remains unchanged, and the new current interval is A (new) = Q
It becomes e.
(2)符号化されつつあるシンボルがMPSならば、C
は更新されてC+Qeになり、新しい現在区間はA (
neIl) = A (previous) −Q e
、つまり従前の区間からQeを引いたものになる。(2) If the symbol being encoded is MPS, C
is updated to become C+Qe, and the new current interval is A (
neIl) = A (previous) -Q e
, that is, the previous interval minus Qe.
区間Aはどんどん小さくなり、その小さくなった区間が
Cに加算されるので、Cの精度(つまり、コード・スト
リームの長さ)が増加する。符号化されるべく判断デー
タが入力される限り、精度は無制限に拡張してもよい、
Cは(そして精度も)不定の長さになり得るけれども、
コード・ストリーム情報を収容するメモリには限りがあ
るので、キャリーが発生すると問題になる場合がある。Interval A becomes smaller and smaller, and the smaller interval is added to C, thereby increasing the precision of C (ie, the length of the code stream). As long as the judgment data to be encoded is input, the accuracy may be extended without limit.
Although C (and precision) can be of indefinite length,
Since there is a finite amount of memory to store code stream information, carries can be a problem.
特に、コード・ストリーム値が連続した数百の1である
にもかかわらず、Cの最も新しいいくつかのビットしか
シフト・レジスタに収容されていない場合に、ある数A
がCに加えられると、問題が生じる。数百個の1のビッ
トを経てキャリーが伝播するのは不可能である。なぜな
ら、最新のビットしかアクセスできないからである。キ
ャリー伝播の1つの好ましい解決策はビット・スタッフ
ィング(ビット充填)と呼ばれ、文献でもその概要が述
べられている。従来法のビット・スタッフィングでは、
1のビットが所定数並んだ後に少なくとも1つのキャリ
ー受信ビットを挿入することが示唆されている。In particular, if the code stream value is hundreds of consecutive ones, but only the most recent bits of C are accommodated in the shift register,
A problem arises when C is added to C. It is impossible for a carry to propagate through hundreds of 1 bits. This is because only the latest bits can be accessed. One preferred solution to carry propagation is called bit stuffing and is also outlined in the literature. In the conventional method of bit stuffing,
It has been suggested to insert at least one carry receive bit after a predetermined number of 1 bits.
本出願人により本願と同時に出願された特許出願(発明
の名称:データ圧縮システム)では、「最適な」ソフト
ウェア用符号器が記載されている。In a patent application (title of the invention: Data Compression System) filed concurrently with this application by the applicant, an "optimal" software encoder is described.
それによると、判断が符号化される度に、符号点の値は
そのままか、または減少する。したがって、コード・ス
トリームCsが0のビットのストリングを含み、かつ減
算が必要とされる場合、ボロウが、該コード・ストリー
ムの最新の部分しか収容していないシフト・レジスタの
長さを越えて伝播する可能性がある。このような「ボロ
ウ伝播」は上記特許出願において、符号化法コード・ス
トリームの中のすべてのHex’OO’バイトをHex
’F F’ とキャリー・ビットに変換することによっ
て処理されている。このように、ボロウ伝播はキャリー
伝播の状況になる。符号化の能率を犠牲にせず、かつ余
分のビットを多数必要とすることなしに、キャリーとボ
ロウを生じさせることは、望まれる目的である。According to it, each time a decision is encoded, the value of the code point remains the same or decreases. Therefore, if the code stream Cs contains a string of zero bits and a subtraction is required, the borrow will propagate beyond the length of the shift register that only contains the most recent part of the code stream. there's a possibility that. Such "borrow propagation" is described in the above patent application by converting all Hex'OO' bytes in the encoding code stream into
It is processed by converting it to 'F F' and a carry bit. Borrow propagation thus becomes a carry propagation situation. It is a desired objective to generate carries and borrows without sacrificing encoding efficiency and without requiring large numbers of extra bits.
算術符号化法の他の局面として、コード・ストリーム中
に制御語を挿入することが望まれている6すなわち、外
部の制御装置がコード・ストリームに割り込んで制御語
を挿入できるようにすることが望まれている。復号器側
の端部では、もう1つの制御装置が制御語を検出し、か
つこれを受信したデータ・ストリングから取り除くこと
ができるようにすべきである。制御語の挿入に関しては
、(a)可能性ある多数の制御語を準備するとともに、
(b)符号化効率を実質的に減少させることなく制御語
の存在を識別することが望まれる。上記特許出願では、
バッファへ行く途中にコード・ストリームの一部を収容
する32ビツト・レジスタが用意されている。下位側の
12ビツト(0から11まで)が、Aの現在値と位置合
わせされるコード・ストリームの「小数1部である。ビ
ット12はスペーサ・ビットに相当する。ビット13〜
2oは、次にバッファへ送り出されるべき8ビツト(1
バイト)のコード・ストリーム・データを表わす。Another aspect of arithmetic coding methods is the desire to insert control words into the code stream6, i.e., to allow an external control device to interrupt the code stream and insert control words. desired. At the decoder end, another control device should be able to detect the control word and remove it from the received data string. Regarding insertion of control words, (a) prepare a large number of possible control words, and
(b) It is desirable to identify the presence of control words without substantially reducing encoding efficiency. In the above patent application,
A 32-bit register is provided to accommodate a portion of the code stream on the way to the buffer. The lower 12 bits (0 to 11) are the decimal part of the code stream that is aligned with the current value of A. Bit 12 corresponds to the spacer bit.
2o is the next 8 bits (1
(byte) code stream data.
ビット21はキャリー・レシーバ・ビットである。Bit 21 is the carry receiver bit.
ビット21に先行する2つのビットのうち、ビット22
は制御語が挿入されたか否かを識別するのに用いられる
。ビット31〜24はフラグ・ビットであり、ビットO
からデータが入力されるにつれて、左ヘシフトしていく
。(8回シフトした後、フラグ・ビットは、1バイトの
データがバッファへ送られる状態になったことを表示す
るビット位置にある。)単一のスペーサ・ビットを使う
と、ある状態では2ビツトの挿入が必要とされることも
ある。Of the two bits preceding bit 21, bit 22
is used to identify whether a control word has been inserted. Bits 31-24 are flag bits, bit O
As data is input from , it shifts to the left. (After eight shifts, the flag bit is in the bit position that indicates that one byte of data is ready to be sent to the buffer.) With a single spacer bit, in some situations two may be required to be inserted.
C6問題点を解決するための手段
本発明による算術符号化の符号器と復号器は、上記特許
量vA(発明の名称:算術符号化システムにおける確率
適応化方法)で説明されているような確率適応化を取り
上げる。特にそこでは、符号器と復号器の性能を高める
可能なQe値を選択することによって、確率適応化が促
進されている。Means for Solving the C6 Problem The encoder and decoder for arithmetic coding according to the present invention provide probability adaptation methods as described in the above-mentioned patent volume vA (Title of invention: Probability adaptation method in an arithmetic coding system). Take up adaptation. In particular, probability adaptation is facilitated there by selecting possible Qe values that enhance the performance of the encoder and decoder.
この点に関し、本発明は、算術符号化プロセスに確率推
定器が組み込まれた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ビツトをテストすることが示唆されている。し
かしながら、確率適応化と再正規化についての単一ビッ
ト・テストを統合することによって、従来技術に比べて
顕著な利益がもたらされる。In this regard, it should be mentioned that the present invention relates to a binary arithmetic coder in which a probability estimator is incorporated into the arithmetic encoding process. That is, in the present invention, the value of the summand corresponds to the current interval along the number line, and the value of Qe is updated in response to renormalization of A, the value of the current interval. The addend value (that is, the value of the current interval) A is the minimum value A
In order to determine when Qe should be updated when it falls below MIN, the first bit representing the value of AMIN is set, and the following bits are not set. For example, AM I N is Hex
'l OOO', that is 1 00000000 0
Represented by 000 (binary number). In this way,
When the first bit changes to O, renormalization and Qe update are indicated. In this way, the renormalization test becomes a single bit test. Therefore, the present invention requires a simple test to determine when to change Qe in addition to when renormalization is required. US Pat. No. 4,467,317 suggests testing one bit for summand renormalization. However, integrating single-bit tests for probability adaptation and renormalization provides significant benefits over the prior art.
換言すると、上記シングル・ビット・テストを実現する
ためには、AMINの値を選択し1次いでこれをスケー
ル・ファクタによって変更し、AMINの最上位の桁(
Aと同じ9桁)のビットが1で他の桁のビットが0で表
わされるようにする。In other words, to implement the above single-bit test, select the value of AMIN, then change it by a scale factor, and then change the most significant digit of AMIN (
The bits in the same 9 digits as A are 1 and the bits in other digits are 0.
このスケーリングに準じて、その他の数値もスケーリン
グされる。好適な実施例ではAは0.75と1.5の間
にあるようにしているが、これは0゜75と1.5の間
であっても、1.0と2.0の間であってもかまわない
、要するに、シングル・ビット・テストが実現できるよ
うにAMINを表現できればAの範囲は適当であってよ
い。Other numerical values are also scaled according to this scaling. In the preferred embodiment, A is between 0.75 and 1.5; In short, the range of A may be appropriate as long as AMIN can be expressed so that a single-bit test can be realized.
さらに、本発明は、上記特許出願で開示されている確率
適応化方法を、いくつかの面でさらに強化している。ま
ず、Qe値が含まれるテーブルは、次のような特徴を持
つ。Moreover, the present invention further enhances the probability adaptation method disclosed in the above-mentioned patent application in several aspects. First, a table containing Qe values has the following characteristics.
1、Qe子テーブル各エントリは、6ビツトのコーディ
ング・パラメータを持つ、そのうちの1ビツトはMPS
のセンスを表示する。残りの5ビツトからなるQインデ
ックスによって、対応するQe値が識別される。1. Each Qe child table entry has a 6-bit coding parameter, 1 bit of which is the MPS
Show your sense of style. The Q index consisting of the remaining 5 bits identifies the corresponding Qe value.
2、各エントリについて、Qe値の長さは好ましくは1
2ビツトである。どのQe値も5ビツトだけがセットさ
れる。各Qe値の最下位ビットは常にセットされている
(これは、ハードウェアによるインプレメンテ−ジョン
を容易にする)。様々なQe値についてセットするビッ
トの選択は、ある程度、QインデックスからQe値を得
るために通過しなければならないゲート数を少ない数に
制限することを考慮して決定される。2. For each entry, the length of the Qe value is preferably 1
It is 2 bits. Only 5 bits of any Qe value are set. The least significant bit of each Qe value is always set (this facilitates hardware implementation). The selection of bits to set for the various Qe values is determined in part by the consideration of limiting the number of gates that must be passed to obtain a Qe value from a Q index to a small number.
6ビツトのコーディング・パラメータを使うことは、既
存のマクロおよび事前に規定されたセルに従う点で、重
要である。さらに、もしコーディング・パラメータとし
て使われるビット数が6より少なければ、テーブルはき
わめて粗いものになり、定常的統計についての結果の低
下を招く。コーディング・パラメータとして7ビツト以
上を用いれば、さらにチップ・エリアを増大させねばな
らず、費用が上昇するsQe値を適切に選択することに
よって、必要とされるQeエントリの数を比較的少ない
数(例えば30)に保たれるとともに、符号化の能率の
向上とインプレメンテ−ジョンの相当な単純化を達成す
ることができる。The use of 6-bit coding parameters is important in that it complies with existing macros and predefined cells. Furthermore, if the number of bits used as coding parameters is less than 6, the table will be very coarse, leading to poor results for stationary statistics. Using more than 7 bits as a coding parameter requires an additional increase in chip area and increases the cost.By appropriately choosing the sQe value, the number of required Qe entries can be reduced to a relatively small number ( For example, 30) can be maintained, and an improvement in encoding efficiency and a considerable simplification of implementation can be achieved.
さらに、Qe値の[トラッピング」の問題を避けるため
に、本発明は以下のようなことを提唱する。上述の特許
出願(発明の名称:算術符号化システムにおける確率適
応化方法)で述べられているように、AMIN/2
を形をしたある[悪い(bad) J値が禁止される。Furthermore, in order to avoid the problem of "trapping" of Qe values, the present invention proposes the following. As stated in the above-mentioned patent application (Title of invention: Probability adaptation method in an arithmetic coding system), AMIN/2
Certain [bad] J values in the form are prohibited.
しかしながら、本発明では、「トラッピング」を捉す点
を除けば性能に貢献する「悪いj値をテーブルに含むこ
とが許される。このような保留された「悪いj値につい
ての「トラッピング」効果を避けるため、「悪いJQe
値の下でのLPS再正規化に応答して、Qe値は、該惑
いQe値に戻るには2回以上のMPS再正規化を必要と
するような所定のテーブル値に増加される0本発明は、
このようにしなければ「トラッピング」を引き起こすQ
e値を保留することを目的としている。However, in the present invention, it is allowed to include "bad j values" in the table that contribute to performance except for capturing "trapping". To avoid “bad JQe”
In response to an LPS renormalization under a value of 0, the Qe value is increased to a predetermined table value such that more than one MPS renormalization is required to return to the stray Qe value. The invention is
If you do not do this, it will cause "trapping"Q
The purpose is to preserve the e value.
さらに、本発明による符号器と復号器のソフトウェアに
よるインプレメンテ−ジョンを容易にするため、負のQ
e表現はMPSのセンスが1であることを表示し、正の
Qe表現はMPS=Oであることを表示する。特にこの
方法を用いると、サイン・ビットをマスクする必要がな
く、処理サイクルが節約される。Furthermore, to facilitate software implementation of encoders and decoders according to the present invention, negative Q
The e expression indicates that the sense of MPS is 1, and the positive Qe expression indicates that MPS=O. In particular, using this method there is no need to mask the sign bit, saving processing cycles.
本発明のさらに他の目的は、バッファ・メモリへ至る途
中でコード・ストリームを収容するシフト・レジスタに
おけるビットの割当を改善することにある。この点に関
して、コード・ストリームの小数部と送り出されるべき
rバイト」を分離するために、スペーサ・ビットが2ビ
ツト以上設定される。2以上のスペーサ・ビットを包含
することにより、Hex’FF’ シーケンスの後に別
のHex’FF’シーケンスが続く可能性がなくなる。Yet another object of the invention is to improve the allocation of bits in a shift register that accommodates a code stream on its way to a buffer memory. In this regard, two or more spacer bits are set to separate the fractional part of the code stream and the r bytes to be sent out. Including more than one spacer bit eliminates the possibility of a Hex'FF' sequence being followed by another Hex'FF' sequence.
さらに、スペーサ・ビットを多くすることによって、1
ビツトを充填するだけで、該ビットがキャリーを受は取
ったり、制御語用にエスケープ・コ−ドを作ったりする
役目を果たすことができる。Furthermore, by increasing the number of spacer bits, 1
By simply filling a bit, the bit can serve to receive or receive a carry or create an escape code for a control word.
本発明の一具体例によると、コード・ストリーム・デー
タを収容するXレジスタは、最初、ビットを次のように
割り当てる。According to one embodiment of the invention, the X register containing the code stream data initially allocates bits as follows.
X = 0OOO000f 00000000 ss、
xxxxxx xxxxxx001バイトがバッファへ
送られ得る状態になると、Xレジスタは次のように構成
される。X = 0OOO000f 00000000 ss,
When the xxxxxxx xxxxxxx001 byte is ready to be sent to the buffer, the X register is configured as follows.
X=f←0OO0000c bbbbbbbb ss、
xxxxxx xxxxxxoolつではなくて(11
ss”として示される)2つのスペーサ・ビットを用い
ることによって、2以上の充填ビットが必要になり得る
虞が取り除かれる。X=f←0OO0000c bbbbbbbb ss,
xxxxxxx xxxxxxxool not one (11
The use of two spacer bits (denoted as "ss") eliminates the possibility that more than one filler bit may be required.
したがって、2つのスペーサ・ビットを使うことによっ
て、余分なビットを送信する必要がなくなり、符号化の
能率が向上する。さらに、本発明によれば、符号化およ
び送信の前に、外部の制御装置によって制御語をコード
・ストリームに挿入でき、かつ復号の前に送信済ストリ
ームから制御語を撤回できるような、効率的なエスケー
プが実現される。Therefore, by using two spacer bits, there is no need to transmit extra bits and the efficiency of encoding is improved. Furthermore, the present invention provides an efficient system in which control words can be inserted into the code stream by an external control device before encoding and transmission, and can be withdrawn from the transmitted stream before decoding. A perfect escape is realized.
さらに、本発明は、コード・ストリームの最初の2ビツ
トがOOであることを提唱するにの結果、復号の容易化
という目的が達成される。Furthermore, the present invention proposes that the first two bits of the code stream are OO, so that the objective of facilitating decoding is achieved.
最後に1本発明は、符号および復号の少なくとも一方が
、異なる取決に従うハードウェアまたはソフトウェアに
よって交換可能に実行され得るような算術符号化システ
ムにおいて、上記目的を取り上げる。Finally, the invention addresses the above object in an arithmetic coding system in which the encoding and/or decoding can be performed interchangeably by hardware or software according to different conventions.
ここで、今一度スペーサ・ビットの概念を述べておく。Here, I will once again explain the concept of spacer bits.
キャリー伝播を防止するには、通常バイトとバイトの間
にOが1ビツト分だけ挿入される。To prevent carry propagation, one bit of O is usually inserted between bytes.
これに対し1本願では、キャリー伝播の可能性の有無に
関係なく、コード・ストリームのビットを、(a)2値
事象の何れに応じて現在の値のままであるか、あるいは
現在区間の数値に基づく計算の対象となって変更されて
しまう、そのようなコード・ストリームを保持する小数
部と、
(b)記憶手段へ向けて送り出されるべきバイトを保持
する後続バイト部と、
(c)上記(a)と(b)の両部の間に挿入される少な
くとも1つのスペーサ・ビット
に割り振るのである。On the other hand, in the present application, regardless of the possibility of carry propagation, the bits of the code stream are determined to either (a) remain at their current value in response to a binary event, or (b) a trailing byte part holding the bytes to be sent to the storage means; (c) a trailing byte part holding the bytes to be sent to the storage means; At least one spacer bit is allocated between parts (a) and (b).
そして、判断事象の符号化に応答して、該シフト・レジ
スタを通じてコード・ストリーム・データをシフトさせ
る手段と、
記憶手段へデータを一時に1バイト(nビット)送り出
す手段
とを備えておく。and means for shifting code stream data through the shift register in response to encoding a decision event, and means for transmitting data one byte (n bits) at a time to storage means.
こういう構成によって、バイト単位での処理が容易にな
る。This configuration facilitates byte-by-byte processing.
特に、スペーサ・ビットとして2ビツト00を割り当て
ると、通常はキャリーが生じても該2ビツトは01にし
か変更されない。したがって、スペーサ・ビットの部分
に00と01以外、つまり11または10をエスケープ
・コードとして出現させることによって、算術符号シス
テムの復号器に、一旦復号を中止することを指示するこ
とができる。復号器の方では、例えば現在もっている中
間のデータを適当な記憶手段へ送り出した後、新たな指
示を待つ。この指示は、例えばエラー訂正であってもよ
い。このようなエスケープ・コードを儂えておくことは
、算術符号化システムでマルチ・タスクを行わせる場合
にきわめて重要なものとなる。In particular, when two bits 00 are assigned as spacer bits, the two bits are normally only changed to 01 even if a carry occurs. Therefore, by causing a code other than 00 and 01, that is, 11 or 10, to appear as an escape code in the spacer bits, it is possible to instruct the decoder of the arithmetic code system to temporarily stop decoding. On the decoder side, for example, after sending out the currently held intermediate data to an appropriate storage means, it waits for a new instruction. This instruction may be, for example, error correction. Preserving such escape codes is extremely important when multitasking is performed in an arithmetic coding system.
D、実施例
第1図には、算術符号化器102とそれに対応する算術
復号器104を含む、データの圧縮および圧縮解除用の
全体装置100が示されている。D. Embodiment FIG. 1 shows an overall apparatus 100 for compressing and decompressing data, including an arithmetic encoder 102 and a corresponding arithmetic decoder 104.
データ圧縮の際、装置100は、まず久方データ(DA
TAI N)を受は取る。久方データは、2値判断(b
inary decision)の列(Y N)として
表現できる。ここで、結果、すなわち事象のそれぞ九は
確率を持っている。次に、装置100は、該列を、符号
化されたビット列に変えることによってキャラクタライ
ズする。内蔵された確率情報を含めて判断列を符号化す
るこによって、圧縮済ビット列をオリジナルの久方デー
タよりも迅速に転送できるし、圧縮済データの記憶スペ
ースも少なくてすむ。When compressing data, the device 100 first compresses long-term data (DA
TAIN) is received. Kugata data is based on binary judgment (b
It can be expressed as a sequence (YN) of initial decision). Here, each outcome, or event, has a probability. The apparatus 100 then characterizes the string by turning it into an encoded bit string. By encoding the decision string with built-in probability information, the compressed bit string can be transferred more quickly than the original data, and the compressed data requires less storage space.
データの大部分をある転送装置または媒体(例えば、要
素105)によって高速度で転送しなければならない、
あるいはデータの大部分を限られたメモリに記憶しなけ
ればならないような(または、大部分のデータを記憶し
、その後で低変調速度で転送が行われるような)アプリ
ケーションにおいて、データを圧縮して用いることは非
常に重要である。このような圧縮が特に重要な環境の1
つとして、ビデオ・データ処理の分野、さらに詳しく言
えばテレコンファレンスを挙げることができる。テレコ
ンファレンスでは、ピクチャー等の情報を伝達するため
に、大獄の情報をある場所から別の場所へ迅速に通信し
なければならない。a large portion of the data must be transferred at high speed by some transfer device or medium (e.g., element 105);
Or compress data in applications where most of the data must be stored in limited memory (or where most of the data is stored and then transferred at a low modulation rate). It is very important to use One environment where such compression is particularly important is
One example is the field of video data processing, and more specifically, teleconferencing. In teleconferencing, information such as pictures must be transmitted quickly from one location to another.
所望の宛先へ符号化法データが転送された後、該データ
は圧縮解除される。つまり、復号器1゜4によって、オ
リジナル・データまたはそれに関連したある表現が復元
される。実際、復号器104は、符号化されたコード・
ストリームを一時に1バイトずつ吟味して、符号器10
2の行ったプロシージャを取り消す。After the encoding data is transferred to the desired destination, the data is decompressed. That is, the decoder 1.4 restores the original data or some representation related to it. In fact, the decoder 104 decodes the encoded code
Examining the stream one byte at a time, the encoder 10
Cancel the procedure performed in step 2.
第1図では、入力データDATAINが、まずモデル1
06によって処理される。In Fig. 1, input data DATAIN is first input to model 1.
Processed by 06.
従来、様々なタイプのモデルが議論されている。Conventionally, various types of models have been discussed.
モデルは、Qコーダー102による符号化のために、文
脈状態Sと2値判断B ITINを発生する。The model generates a context state S and a binary decision B ITIN for encoding by Q coder 102 .
特定の文脈Sについての過去のBITIN判断に基づい
て、Qコーダーは、BITIN判断が1または0である
推定確率を既に生成しており、該推定はBITINの符
号化に用いられる。例えば、ファクシミリでは、入力デ
ータの1つ1つは、所与の画素が黒であるかそれとも非
黒であるかに対応する。ある与えられた画素が黒または
白であることのどちらを期待できるかについての推定は
、一般に、既に符号化法である近隣の画素値がら得られ
る。QコーダーおよびQデコーダーは、所与の画素が黒
または非黒である確率の推定を、同一の近隣画素値につ
いての以前の画素値に基づいて行う、連続してデータが
処理されていく際に、蓋然性の高い状態(MPSまたは
非Qe事象と呼ぶ)と蓋然性の低い状態(LPSまたは
Qe事象と呼ぶ)の相対的な確率の値が変化することも
あるし、あるいは入れ換わってしまうことさえもある。Based on the past BITIN decisions for a particular context S, the Q-coder has already generated an estimated probability that the BITIN decision is 1 or 0, and this estimate is used to encode the BITIN. For example, in a facsimile, each piece of input data corresponds to whether a given pixel is black or non-black. An estimate of whether a given pixel can be expected to be black or white is generally obtained from neighboring pixel values, which are already the encoding method. Q-coders and Q-decoders make an estimate of the probability that a given pixel is black or non-black based on previous pixel values for the same neighboring pixel values as successive data are processed. , the relative probability values of more probable states (referred to as MPS or non-Qe events) and less probable states (referred to as LPS or Qe events) may change or even be swapped. be.
つまり、MPSが黒である場合に非黒の事実(inst
ance)が数多く発生したとすると、非点状態の方の
蓋然性が高くなる、つまり優勢になることがある。その
場合、MPSは熱状態から非点状態に変化する。That is, if MPS is black, then the non-black fact (inst
ance), the probability of the astigmatic state becomes higher, that is, it may become dominant. In that case, the MPS changes from a thermal state to an astigmatic state.
Qコーダー102は、算術符号化法を用いて、モデル1
06からの状態SとB ITIN情報を圧縮済データに
変換する。算術符号化法では、Qコーダーが既に生成し
、状態Sについての過去のBITIN判断に続りて適当
な形で記憶された、推定確率が用いられる。The Q coder 102 uses an arithmetic coding method to code model 1.
Convert the status S and B ITIN information from 06 to compressed data. Arithmetic coding uses estimated probabilities that have already been generated by the Q-coder and stored in an appropriate form following previous BITIN decisions for state S.
第2および第3図は、それぞれ符号化の概要を示す、第
2図は、ハードウェア用に最適な符号器を示す、第3図
は、ソフトウェア用に最適な符号器を示す。2 and 3 respectively show an overview of encoding, FIG. 2 shows an encoder most suitable for hardware, and FIG. 3 shows an encoder most suitable for software.
第2図において、符号点(code point)は、
最初、所与の区間の下限(の数値)に位置している。In FIG. 2, the code point is
Initially, it is located at the lower limit of the given interval.
LPS事象の生起に関連するQセグメントも区間の下側
にある。MPS事象に関連するPセグメントは区間の上
側にある。C(n)は、時間nにおけるコード・ストリ
ーム値に対応する。A(n)は、時間nにおける現在の
区間の値に対応する。The Q segment associated with the occurrence of an LPS event is also at the bottom of the interval. P segments related to MPS events are at the top of the interval. C(n) corresponds to the code stream value at time n. A(n) corresponds to the value of the current interval at time n.
各判断毎に、最適のハードウェア符号器(第2図に示す
)は1次のような取決に従う。For each decision, the optimal hardware encoder (shown in FIG. 2) follows a first order convention.
つまり、判断事象(図ではYNとして示す)がMPS事
象ならば、
(a)C(n)←C(n−1)十〇
(b)A’(n)←[A(n−1) Q]となる。In other words, if the judgment event (shown as YN in the figure) is an MPS event, (a) C(n)←C(n-1) 〇(b) A'(n)←[A(n-1) Q ].
事象がLPS事象ならば。If the event is an LPS event.
(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事象の場合に
符号点を移すことが最適であるとわかる。(a) C(n)←C(n-1) (b) A(n)←Q Whether it is an MPS event or an LPS event, the hardware performs a processing cycle to respecify the value A of the interval (i.e. range). spend time on. Furthermore, for MPS, the code point is the value Q
is moved in increments, i.e. Since the hardware can process updates of A and C in parallel, such hardware only needs to spend one processing cycle for any decision. On the other hand, if the hardware LPS were configured to move the code point for each event, it would take two processing cycles to determine C←C+(A-Q) each time the code point must be moved. It becomes necessary. Considering that limiting the number of processing cycles is critical in hardware operation, and that moving the code point in case of an LPS event results in a lot of cycle time, it is It turns out to be optimal to shift the code points in case of MPS events.
第3図の符号化プロセスは、PセグメントとQセグメン
トの順序付を同じにした状態で、好適な「ソフトウェア
」用スキームを表わしている。もつとも、LPS事象に
応答すると、符号点は下向きに(つまり、小さな数値の
方へ)へ移動する。The encoding process of FIG. 3 represents a preferred "software" scheme, with the same ordering of P and Q segments. However, in response to an LPS event, the code point moves downward (ie, toward smaller numbers).
このスキームではコード・ストリームがCによって表わ
されている。C(n)+A(n)はC(n)に等しい。In this scheme the code stream is represented by C. C(n)+A(n) is equal to 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として生成される。If some part of the final interval is subtracted from Ci, then C(n) or '6(n) can be decoded by a single decoder to recover the same set of input decision events. That is, the decoder (m I D +
7) Which state is M for 7 coder 104)?
Given a first input indicating whether it corresponds to a PS event and a second input indicating the current Q-value for the code stream being decoded, the decoder
n) or "6 (n) minus some portion of the final interval can be processed to produce a YN output sequence corresponding to the YNN deer sequence to coder 102. 110, and the original data or a replica thereof is produced as output DATAOUT.
第3図に示す案ではLPS事象の際に符号点が移動する
ので、ソフトウェア処理に要するサイクルの数は少なく
保たれる。In the scheme shown in FIG. 3, the number of cycles required for software processing is kept low because the code points are moved during an LPS event.
第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によって処理
される。In Figure 4, there are four encoders 200.202.2°4.20
6 is shown. The encoders 200, 204 each MPS
Encoding is performed according to optimal hardware rules that move code points for each event. Of these, the former is implemented in P/Q symbol order, and the latter is implemented in Q/P (reverse) symbols. Encoders 202, 206 encode according to optimal software rules in which code points are moved for each LPS event. Among these, the former is P/
The latter is implemented in Q symbol order, and the latter in Q/P (reverse) symbols. encoder 20
The code streams produced by 0,202 can be the same (or at least compatible). It is designated as C. Also, according to the invention, the code streams produced by encoders 204, 206 can be the same (or at least compatible). It is represented as 2. 2 and C can be derived from one by the formula C'=A(o)-Z. The calculation of this equation is explained with the value of A(0) in inverter 208 set to 1. Code stream C takes into account optimizations in the hardware case (e.g. no inconvenience (u
nawkward)) is directly decoded by the decoder 210. Also, Code Stream Z
is a decoder 21 considering optimization in the case of software.
It is directly decoded by 2. 4 encoders 200~
Whatever code stream 2o6 generates,
It can be seen that either decoder 210 or 212 can be used for decoding. Some of the code streams are processed by inverter 208 on the way to the decoder.
ここで、他の2つの復号器、すなわちQ/Pハードウェ
ア復号器とP/Qソフトウェア復号器もインプリメント
できることを念のために述べておく、これらの様々な具
体例は、上記特許出願(発明の名称:データ圧縮システ
ム)においても説明されている。It is worth mentioning here that two other decoders can also be implemented, namely a Q/P hardware decoder and a P/Q software decoder; various embodiments of these are described in the above patent application (invention It is also explained in the name: Data Compression System).
■、有限の精度で行う連続事象の符号化と復号このセク
ションの記載をわかりよくするために、以下のような定
義を行う。はとんどの場合、変数名を同じ意味を持つ。■ Encoding and decoding of continuous events with finite precision To make the description in this section easier to understand, the following definitions are provided. In most cases, variable names have the same meaning.
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値についての可能な最小の変更
上記定義の下で、次のような関係が適用される。1 C = pointer (code point) to the code stream, i.e. the current interval Cd = decoder code stream with base 1ine Qe(i) = L for the i-th encoded symbol
PS event estimated probability Pe(i) ==+: MPS event estimated probability A(i) for the i-th encoded symbol = summand for the i-th symbol (that is, 1 interval) Si = i-th symbol n(i) = cumulative count of renormalizations up to the encoding of symbol Si R(i) = renormalization factor for the i-th symbol δ(C) = delta function of Kronets force − and Equivalence (1 when the condition is true; 0 when it is false) ε; Minimum possible change to the current Q value Under the above definition, the following relationship applies.
Pa(i)=A(i)−(A(i)XQe(i))R(
i)=1/2”)
i =R(i)2−12(12ビット精度用)11A、
P/Qハードウェア符号器および回復号器シンボルの順
序付がP/Qである場合に、最適なハードウェア符号器
は現在の区間の底を指す。Pa(i)=A(i)−(A(i)XQe(i))R(
i) = 1/2”) i = R(i)2-12 (for 12-bit precision) 11A,
P/Q Hardware Encoder and Decoder If the symbol ordering is P/Q, the optimal hardware encoder points to the bottom of the current interval.
コード・ストリームCは次の式で表わされる。Code stream C is expressed by the following equation.
C=ΣR(i )A(i )Q e (i )δ(Si
=M)換言すれば、値Cは連続する判断事象(つまりシ
ンボル)の各々を検討することによって決定される。サ
ブジェクト・シンボルがLPS事象に相当するならば、
該サブジェクト・シンボルの時点でのQe値が再正規化
ファクタと掛は合わされる。C=ΣR(i)A(i)Qe(i)δ(Si
=M) In other words, the value C is determined by considering each successive decision event (or symbol). If the subject symbol corresponds to an LPS event, then
The Qe value at the time of the subject symbol is multiplied by the renormalization factor.
再正規化ファクタは、区間サイズが所定の範囲ζ例えば
0.75と1.5の間に維持されるという事実に関連す
る。つまり、区間サイズは被加数(Aと記す)として表
わされ、その値は所定の範囲内に留まるように調整され
るのである。i番目の被加数の値、つまりA(i)が0
.75より小さくなると、上記所定の範囲内に戻るのに
必要な回数だけ2が掛は合わされる(あるいは、他の方
法でA(i)が改められる)。The renormalization factor is related to the fact that the interval size is kept within a predetermined range ζ, for example between 0.75 and 1.5. That is, the interval size is expressed as an addend (denoted as A), and its value is adjusted so that it remains within a predetermined range. The value of the i-th summand, that is, A(i) is 0
.. When it becomes less than 75, the multipliers are multiplied by 2 (or A(i) is modified in some other way) as many times as necessary to return within the predetermined range.
Aの値を1またはそれに近い値に保持することによって
、掛算のファクタAXQをAとして近似でき、AとCに
ついての計算が簡単になる。By keeping the value of A at or near 1, the multiplication factor AXQ can be approximated as A, simplifying the calculations for A and C.
シンボルが符号化される度に、再正規化は起こり得る。Renormalization may occur each time a symbol is encoded.
なるほど、区間サイズがAXQe二Qe(これは、定義
により、AXPa以下であり、したがって0.75以下
である)にセットされる度に、A(i)の値は(少なく
とも1回2を掛は合わせて)再正規化され、例えば上記
のような範囲内に戻される。Indeed, each time the interval size is set to AXQe times Qe (which, by definition, is less than or equal to AXPa and therefore less than or equal to 0.75), the value of A(i) is (together) and renormalized, e.g., back into the range as above.
MPS事象に応答すると、現在区間A(i)のサイズが
[A(i −1)−Qe]として概算される。この値は
0.75より小さいこともあるし、そうでないこともあ
る。このように、MPS事象に際しては、再正規化の必
要な場合とそうでない場合とがある。現在区間の再正規
化回数は累積されで、R(i)、すなわち上記のように
R(i)りによって、C値も区間値と同じように(例え
ば同じ回数倍増されて)変化することが保証される。In response to an MPS event, the size of the current interval A(i) is estimated as [A(i-1)-Qe]. This value may or may not be less than 0.75. In this way, in the case of an MPS event, there are cases where renormalization is necessary and cases where renormalization is not necessary. The number of renormalizations of the current interval is accumulated, and the C value can also change in the same way as the interval value (for example, by doubling the same number of times) by R(i), that is, R(i) as described above. Guaranteed.
したがって、シンボルSiが符号化されるときのC値は
、P/Qハードウェア符号器の場合であってかつMPS
事象の際には増分されるが、その増分は、先行するすべ
てのシンボルについての再正規化ファクタおよびQe値
によって決定される。Therefore, the C value when the symbol Si is encoded is for the P/Q hardware encoder and for the MPS
It is incremented upon an event, and the increment is determined by the renormalization factor and the Qe value for all preceding symbols.
P/Qハードウェア復号器は、次の式に従って上記プロ
セスを解いていく。The P/Q hardware decoder solves the above process according to the following equation.
Cd=C−ΣR(i)A(i)Qe(i)δ(Si =
M)ここで、Cdはある事象の影響が取り除かれた後の
コード・ストリーム値である。Cd=C−ΣR(i)A(i)Qe(i)δ(Si=
M) where Cd is the code stream value after the effects of certain events have been removed.
P/Qハードウェア復号器は。P/Q hardware decoder.
Cd <A(i )Q e (i )ならば、LPSを
解読する。If Cd<A(i)Qe(i), decode LPS.
nB、P/Qソフトウェア、1 および回復 器P/Q
ソフトウェア符号器は、各現在区間の頂を指す、ソフト
ウェア・コード・ストリームCは、は、次の式によって
決定される。nB, P/Q software, 1 and recovery device P/Q
The software encoder points to the top of each current interval, and the software code stream C is determined by the following equation.
テ=A(0)−ΣR(i)A(i)P e(i)δ(S
i=L)で値の評価はA(0)からスタートし、A(0
)から上式の和の項をひいていく。和の項の加数は、A
、4現在のP値、および先行するLPS事象についての
再正規化ファクタの績である。Te=A(0)−ΣR(i)A(i)P e(i)δ(S
i=L), the value evaluation starts from A(0), and A(0
) to subtract the sum term in the above equation. The addend of the sum term is A
, 4 current P value, and renormalization factor for the preceding LPS event.
結果Cから最終区間値A(f)を引くと、P/Qハード
ウェア・コード・ストリームで導かれる通りのCが得ら
れる。Subtracting the final interval value A(f) from the result C yields C as derived in the P/Q hardware code stream.
P/Qソフトウェア復号器は次の式に従う。The P/Q software decoder follows the equation:
%式%)
しかしながら、LPSシンボルを復号するのに必要な比
較は扱いにくい。すなわち。However, the comparisons required to decode LPS symbols are cumbersome. Namely.
Cd<A(0) A(i)+A(i)XQe(i)ま
たは、上記関係式の両辺からA(0)を引いてCd−A
(0)<−A(i)+A(i)XQe(i)となる。Cd<A(0) A(i)+A(i)XQe(i) Or, subtract A(0) from both sides of the above relational expression and get Cd-A
(0)<-A(i)+A(i)XQe(i).
C’ d =Cd−A(0)とすると、C’d< C−
A(i)X(1−Qe(i))]となることがわかる。If C' d = Cd - A (0), then C' d < C-
A(i)X(1-Qe(i))].
C16も[A(i)X(1−Qe(i))]もともに負
であるが、絶対値は0からIA(i)lまでの範囲にあ
る。したがって、復号器のための演算は、固定精度演算
である。ソフトウェア復号器の処理をまとめると下記の
第8表のようになる。Both C16 and [A(i)X(1-Qe(i))] are negative, but their absolute values range from 0 to IA(i)l. Therefore, the operations for the decoder are fixed precision operations. The processing of the software decoder can be summarized as shown in Table 8 below.
第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にセットすることによ
って、適宜簡略化される。Table 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 The above calculation is conveniently simplified by setting the value of A(i) to approximately 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は、コード・スト
リーム・データの最新の部分を表わす。8. Encoder Registers and Decoder Registers FIG. 5 shows an X memory register 300 suitable for storing code stream information. register 300
contains 32 bits, which are allocated as follows. That is, eight bits 31-24 are flag bits. The 31st bit represents the ``sign j bit.'' Bit 24 also serves to receive and take any ``carry'' that occurs in the process of preparing to send out the next byte. In the case of normal 8 shifts each, (b
Bits 23-16 (identified as bbbbbbbb) represent the byte to be sent to the buffer memory. If the preceding byte is 'F F', only seven shifts are required and bits 24-17 are sent out. Bit positions 14.15 are assigned spacer bits to provide a delay between the bit position for the byte to be sent and the bit position of the data that is further computed with the summand. Bits 13-2 represent the most recent portion of code stream data.
現在区間(被加数)の値を収容するレジスタの数値によ
る加算(または減算)の対象となるのはこの部分である
。ビット13〜2は、コード・ストリームの「小数部」
と呼ばれ、ビット24〜14は該コード・ストリームの
「整数部」に相当する。It is this part that is subject to addition (or subtraction) using the numerical value of the register that contains the value of the current interval (addend). Bits 13-2 are the "fractional part" of the code stream
Bits 24-14 correspond to the "integer part" of the code stream.
レジスタ300はXレジスタと呼ばれ、コード・ストリ
ームO8の最新の符号化法部分を収容する。Register 300 is called the X register and contains the latest encoding portion of code stream O8.
Xレジスタの中のビットが符号化される前に、信子もの
ビットが符号化されていた場合もある。そういった早く
に符号化されたビットはXレジスタの小数部を通って同
整数部へ入り、さらにそこからバッファ・メモリへ移動
する。該バッファ・メモリは、このように先行するバイ
トを記憶するわけだが、そのバイト数には限りがある。In some cases, the bits in the X register were encoded before the bits in the X register were encoded. These early encoded bits pass through the fractional part of the X register into the integer part and from there to the buffer memory. The buffer memory stores the preceding bytes in this way, but the number of bytes is limited.
希望に応じて、バッファ・メモリから出たバイトは記憶
装置へ転送してもよいし、復号が行われつつある他の場
所へ転送してもよい。If desired, the bytes leaving the buffer memory may be transferred to storage or to another location where decoding is being performed.
上記記載に示されるように、データはバイトとして構成
され、かつバイトとして送り出される。As indicated above, data is organized as bytes and sent out as bytes.
これはフラグ・ビットによって達成される。8個のフラ
グ・ビットを00000001に初期設定することによ
り、相次いでbビットがレジスタ30oの整数部にシフ
トしてくるにつれて、1のビットがシフトする。そして
、最も左に位置するフラグ・ビットが1になると、Xレ
ジスタの内容は「ネガティブ(負)」であると判断され
る。次にシフトが生じるときには、Xレジスタ300の
整数がバッファ・メモリに入力される。This is accomplished by flag bits. By initializing the eight flag bits to 00000001, the one bits are shifted as successive b bits are shifted into the integer portion of register 30o. When the leftmost flag bit becomes 1, the contents of the X register are determined to be "negative." The next time a shift occurs, the integer in the X register 300 is entered into the buffer memory.
好ましくは、(図示しない)バッファ・メモリは、例え
ば256バイトを記憶するメモリである。Preferably, the buffer memory (not shown) is a memory that stores, for example, 256 bytes.
バッファ・ポインタBPは、バッファ・メモリに最も新
しく入力されたバイトを識別する。Buffer pointer BP identifies the most recently entered byte into the buffer memory.
Xレジスタに加えて、現在の区間値を記憶するためのA
レジスタがある。上述したように、現在の区間は所定の
範囲、例えば0.75と1.5の間に維持される。Aレ
ジスタは、Xレジスタのか数部(2つの0ビツトが添え
られる)と位置合わせられる12ビツトの「小数」部(
2つのOビットが添えられる)を含み、整数部も含む。In addition to the X register, A for storing the current interval value
There is a register. As mentioned above, the current interval is maintained within a predetermined range, for example between 0.75 and 1.5. The A register has a 12-bit "fraction" part (appended with two 0 bits) that is aligned with the fraction part (appended with two 0 bits) of the X register.
(with two O bits) and also includes an integer part.
AレジスタとXレジスタの小数部を位置合わせすること
によって、コード・ストリームを更新する際に実行され
る様々な計算が促進される。区間が再正規化されて所定
の範囲内に戻される度に。Aligning the fractional parts of the A and X registers facilitates various calculations performed when updating the code stream. Each time the interval is renormalized back into the given range.
コード・ストリームは同じように再正規化されて、その
相対的な数値が保持されることを再び述べておく1区間
サイズが0.75ないし1.5にセットされている場合
、再正規化は単に左側へいくつかシフトすること(すな
わち、2を掛は合わせること)を意味することを思い出
されたい。Reiterating that the code stream is renormalized in the same way to preserve its relative values, if the interval size is set between 0.75 and 1.5, the renormalization Recall that it simply means a shift some to the left (ie, multiplying by 2 means adding together).
コード・バイトがセットされた後(かつキャリーがない
場合に)、Xレジスタ300の内容と適当な16進数の
ANDが計算され、コード・バイトのビットが取去され
る。また、Xレジスタは(16進で記述した)、100
0000と(7)XORを計算するためにセットされる
ので、(フラグ・ビットの)ビット24は1に確実にセ
ットされる。After the code byte is set (and there is no carry), the contents of the X register 300 are ANDed with the appropriate hexadecimal number and the bits of the code byte are removed. Also, the X register (written in hexadecimal) is 100
Bit 24 (of the flag bits) is definitely set to 1 since it is set to calculate the (7) XOR with 0000.
第6図には、P/Qハードウェア・インプリメンテーシ
ョンで用いられる32ビツトの復号器用レジスタ400
が示されている。ビット割当は次の通りである。まず、
先頭に2つの0ビツト、続いて12の「小数」ビットが
あり、2つのmmビット位置と8個の新しいデータ・ビ
ット位置はこれに続く、最も下位の8ビツトはフラグ・
ビットに対応する。レジスタ400は、フル・ワード、
ハーフ・ワード、またはバイトのように、様々に分割す
ることができる。小数部の12ビツトは、復号器のAレ
ジスタに記憶されている。被加数の小数ビットと位置合
わせされる。FIG. 6 shows a 32-bit decoder register 400 used in the P/Q hardware implementation.
It is shown. The bit allocation is as follows. first,
There are two leading 0 bits, followed by 12 "fractional" bits, followed by two mm bit positions and eight new data bit positions, and the lowest eight bits are flags.
Corresponds to bit. Register 400 is a full word;
It can be divided in various ways, such as half words or bytes. The 12 fractional bits are stored in the decoder's A register. Aligned with the fractional bits of the summand.
新しいデータ・バイトがXC(ビット31〜16)にシ
フトされてきた後、該新しいデータはXNEW (ビッ
ト15〜0)の高位側ビットへ入力されるとともに、キ
ャリーが発生していないならば、XFLAGは1にセッ
トされる。After a new data byte has been shifted into XC (bits 31-16), the new data is input into the high order bits of XNEW (bits 15-0) and, if no carry has occurred, is set to 1.
すなわち、以下の式の通りになる。That is, the following formula is true.
XNEW=SLL B 8
XFLAG=1
低位側のバイトXFLAGが0になると、新しい圧縮済
データ・バイトが求められる。XNEW=SLL B 8 XFLAG=1 When the low byte XFLAG becomes 0, a new compressed data byte is sought.
■D、キャリーおよびボロウ
符号器と復号器についての上記説明かられかるように、
コード・ストリームに違いが生じるとすれば、それは与
えられたP、Q取決のためにキャリーまたはボロウが生
じる箇所である。■D, Carry and Borrow As can be seen from the above explanation of the encoder and decoder,
Where a difference occurs in the code stream is where a carry or borrow occurs for a given P,Q deal.
ここで、キャリーおよびボロウはバイトの境界において
、1以上のビット(ただし1バイトよりは小さい)を適
宜挿入することによって準備されることを述べておく。It should be noted here that carries and borrows are prepared by appropriately inserting one or more bits (but smaller than one byte) at byte boundaries.
この結果、任意のキャリーまたはボロウの結果が直前に
送出されたバイトを越えて伝播することはない。したが
って、バッファのポインタが過去のバイトまで戻る必要
は全くない。該ポインタは、後続の各バイトがバッファ
・メモリに入力されるのに伴って、該後続のバイトを指
し進めていけばよい。As a result, any carry or borrow results will not propagate beyond the previously sent byte. Therefore, there is no need for the buffer pointer to go back to past bytes. The pointer may advance to each subsequent byte as it is input into the buffer memory.
キャリー伝播の問題は、コード・ストリームの値が増加
されて更新される場合であって、既に符号化法の連続し
た1からなるバイトが1つ以上連続しである場合である
。この場合、加算の結果キャリーの伝播が生じる。この
ような状態を避けるため、本発明では、発生し得るキャ
リーを受は取るためにバイト中にビットを詰め込むよう
にしている0例えば、一連のバイトBn−1、Bn、B
があり、そのうちのB がバッファn+1n
−1
メモリにあって、バッファ・ポインタがバイトBn−1
を識別しているとしよう。そして、バイトB はXレジ
スタの整数部にあり、バイトn
B は同じレジスタの小数部にあるとする。The problem with carry propagation is when the value of the code stream is incremented and updated, and there is already one or more consecutive bytes of consecutive 1's in the encoding. In this case, the addition results in carry propagation. To avoid this situation, the present invention packs bits into bytes to take the carry that may occur.
, of which B is buffer n+1n
-1 in memory and the buffer pointer is byte Bn-1
Suppose we are identifying . And suppose that byte B is in the integer part of the X register and byte n B is in the fraction part of the same register.
n+1
バイトB の値が(16進数の)’FF’ならば、後続
バイトB の先頭(最上位ビット)n+1
位置にビットが充填される。B 、B がそn
n+1
れぞれ11111111 (’FF’ )であるならば
、本発明によりB の先頭にビットが挿入n+1
される結果、新しい符号化法データの例は111111
11.01111111.1・・・・となる。If the value of n+1 byte B is 'FF' (in hexadecimal), bits are filled in the n+1 position at the beginning (most significant bit) of the subsequent byte B. B , B is so n
n+1 are respectively 11111111 ('FF'), then the present invention inserts n+1 bits at the beginning of B, and as a result, the new encoding method data example becomes 111111.
11.01111111.1...
このように、必要ならば、キャリーを受は取るために0
のビットが挿入されるのである。復号器が全部のビット
が1であるバイトを検出すると、該復号器は後続の下位
ビットが挿入ビットであることを認識し、適切なコード
・ストリームが生成されるよう処理を行う。In this way, if necessary, the receiver is 0 to receive a carry.
bits are inserted. When a decoder detects a byte with all bits being 1, it recognizes that the following low order bits are insert bits and takes action to generate the appropriate code stream.
ボロウの問題は、全部のビットがOのビットであるバイ
トを含むコード・ストリームについて減分を行うときに
生じる。例えば、3つの連続するバイトBn−1、Bn
、Bn+、のうち、中央のバイトのビットがすべてOで
あるとしよう。The borrow problem occurs when decrementing a code stream containing bytes where all bits are O bits. For example, three consecutive bytes Bn-1, Bn
, Bn+, where all bits in the central byte are O.
このとき、1がB バイトからプレボロウ(pre
−borrow 、前借)され、B バイトの8個のビ
ットがすべて1のビットに変換される。充填されるビッ
トは、バイトB の新しい先頭ビットn+1
として挿入される。この新しい先頭ビットは、セット・
キャリー・ビットの役目を果す。したがって、符号器か
ら転送されるデータ・ストリームは、次のようになる。At this time, 1 is from B byte to preborrow (pre
-borrow), and all eight bits of the B byte are converted to 1 bits. The bit to be filled is inserted as the new first bit n+1 of byte B. This new leading bit is
It serves as a carry bit. Therefore, the data stream transferred from the encoder is:
B −1,11111111,1(Bn+、の
先頭7ビツト)B バイト・セグメントから落とさ
れたビn+1
ットは、データの後続バイト・セグメントにおいてピッ
ク・アップされる。ボロウは充填された(セット)ビッ
トによって事実上キャリーに変化する。何れにしても、
復号器は上述したように充填されたビットを検出すると
、該充填ビットをキャリーとして処理する。ビット・ス
タッフィングを含むP/Qハードウェア・コード・スト
リームとコンパチブルなP/Qソフトウェア・コード・
ストリームを生成することが目標であるから、該コード
・ストリームも2つの拘束に従って生成されなければな
らない。まず、16進の’F F’の後には必ずビット
が充填されなければならない。B -1,11111111,1 (first 7 bits of Bn+) The bit n+1 dropped from the B byte segment is picked up in the subsequent byte segment of the data. A borrow is effectively turned into a carry by a filled (set) bit. In any case,
When the decoder detects a padded bit as described above, it treats the padded bit as a carry. P/Q software code stream compatible with P/Q hardware code stream including bit stuffing
Since the goal is to generate a stream, the code stream must also be generated according to two constraints. First, the hexadecimal 'F F' must be filled with bits.
そうでなければ、ハードウェア復号器には不適式なバイ
ト・パターンが生成されるからである。次に、 ’fM
(present )バイトからボロウを取り出す必
要のあるときはいつでも(当然)取り出せるようにコー
ド・ストリームを構成しなければならない。Otherwise, a byte pattern unsuitable for a hardware decoder would be generated. Then, 'fM
(present) The code stream must be constructed so that borrows can be retrieved whenever bytes need to be retrieved (obviously).
(ここで、現バイトとは、以前のコード・バイト・サイ
クルにおいてコード・レジスタからコード・バッファへ
転送されたバイトを言う。)借りてくるのは1単位なの
で、桁借りの対象することの不可能なバイト値はゼロだ
けである。(Here, the current byte is the byte that was transferred from the code register to the code buffer in the previous code byte cycle.) Since one unit is borrowed, there is no need to borrow a digit. The only possible byte value is zero.
一般に、コード・レジスタにおいて新しいバイトの開始
点に高位の「プレボロウ」ビットをセットすることによ
って、現バイトから桁借りを行う必要のあることが検出
される。便宜上、該プレボロウ・ビットはビット位1f
lPにてセットされ、後続のバイトが書込可能になった
ならばそれはサイン・ビットとなる。例えば、32ビツ
トのコード(X)レジスタの中身が次の通りであるとす
る。Generally, the need to borrow from the current byte is detected by setting a high order "preborrow" bit at the start of a new byte in the code register. For convenience, the pre-borrow bit is bit position 1f.
If set at lP and a subsequent byte becomes writeable, it becomes a sign bit. For example, assume that the contents of the 32-bit code (X) register are as follows.
Xレジスタ:
oooooooo、 pooooooo、XXXXXX
XX、 XXXXXXXXAレジスタ:
000aaaaa+aaaaaaaa
新しいバイトが完成すると、内容は次のようになる。X register: ooooooooo, poooooooo, XXXXXXX
XX, XXXXXXXXXA register: 000aaaaa+aaaaaaaa When the new byte is completed, the contents will be:
Xレジスタ:
pooooooo、nnnnnnnn、XXXXXXX
X+XXXXXXXXAレジスタ:
000aaaaa、 aaaaaaaaコード・レジス
タがポジティブ(p=o)ならば、プレボロウが使われ
たのであって、現バイトからのボロウが必要である。し
たがって、新しいバイトnnnnnnnnがコード・レ
ジスタからバッファ・レジスタへ転送される前に、現バ
イトからボロウが取られる。プレボロウを用いると、コ
ード・レジスタの値は常にAレジスタより大きくなり、
将来のボロウは該コード・レジスタの内容から取ること
が可能になる。コード・レジスタがネガティブ(P=1
)ならば、現バイトからの桁借りの必要はなく、未使用
のプレボロウPは除去される。X register: poooooooo, nnnnnnnnn, XXXXXXXX
X+XXXXXXXXA register: 000aaaaa, aaaaaaaa If the code register is positive (p=o), a pre-borrow was used and a borrow from the current byte is required. Therefore, a borrow is taken from the current byte before the new byte nnnnnnnnn is transferred from the code register to the buffer register. With preborrow, the value in the code register is always greater than the A register,
Future borrows will be allowed to be taken from the contents of the code register. Code register is negative (P=1
), there is no need to borrow digits from the current byte, and the unused pre-borrow P is removed.
コード(X)レジスタの内容は、Aレジスタの内容と比
較される。コード・レジスタの方が小さいならば、2つ
の事項が検出されている。まず。The contents of the code (X) register are compared to the contents of the A register. If the code register is smaller, two things have been detected. first.
次に送出されるバイト(nnnnnnnn)はゼロであ
ること、第2に、現バイトからの桁借りの必要性があり
得ることである。したがって、ボロウは現バイトから取
られ、レジスタの中のゼロ・バイトを経て伝播する。こ
の結果、ゼロであったバイトが’FF’ に変換される
。この’FF’ をコード・バッファに送りコード・レ
ジスタの内容をシフトさせた後で、2つのプレボロウが
セットされる。The next byte sent out (nnnnnnnnn) will be zero; second, there may be a need to borrow from the current byte. Therefore, borrows are taken from the current byte and propagated through the zero byte in the register. As a result, the byte that was zero is converted to 'FF'. After sending this 'FF' to the code buffer and shifting the contents of the code register, two preborrows are set.
1つはサイン・ビットとなる位置にセットされ。One is set in the position that will be the sign bit.
もう1つは後続バイトについての「キャリー」ビット位
置となるビット位置にセットされる。したがって、コー
ド・レジスタの内容の方がAレジスタよりも小さいなら
ば、
Xレジスタ:
oooooooo、 pooooooo、 00Px、
xxxx、 xxxxxxxxAレジスタ:
000aaaaa、 aaaaaaaaである。The other is set to the bit position that will be the "carry" bit position for subsequent bytes. Therefore, if the contents of the code register are smaller than the A register, then the X register: ooooooooo, poooooooo, 00Px,
xxxx, xxxxxxxxxA register: 000aaaaa, aaaaaaaa.
後続のバイトが完成すると、
Xレジスタ:
pooooooo、 Pnnnnnnn% XXXXX
XXX、 XXXXXXXXAレジスタ:
000aaaaa、 aaaaaaaaとなる。When the subsequent byte is completed, the X register: poooooooo, Pnnnnnnnn% XXXXX
XXX, XXXXXXXXXA register: 000aaaaa, aaaaaaaa.
バッファ中の16進数’F F’はビット・スタッフィ
ング(充填)のトリガになるので、プレボロウ・ビット
はスタッフ・ビット(キャリー・レシーバ)位置に書き
込まれる。ゆえに、未使用のプレボロウはハードウェア
・コード・ストリームのキャリーと等価になる。The hex digit 'F F' in the buffer triggers bit stuffing, so the pre-borrow bit is written to the stuff bit (carry receiver) location. Therefore, an unused preborrow is equivalent to a carry in the hardware code stream.
コード・レジスタの内容がAレジスタの内容以上ならば
、コード・レジスタの現在の内容はどんなボロウの要請
にも応えられるだけの大きさを持っていることになる。If the contents of the code register are greater than or equal to the contents of the A register, then the current contents of the code register are large enough to satisfy any borrow request.
現バイトがチェックされて。The current part-time job is checked.
それが’FF’であるならば、ビット・スタッフィング
が引き起こされる。この場合、プレボロウは要請されな
かったので、挿入されたキャリー・ビットは常にクリア
(clear)である。If it is 'FF', bit stuffing is caused. In this case, no pre-borrow was requested, so the inserted carry bit is always clear.
上記シーケンスはすべての要請を満たす、すなわち、ボ
ロウ伝播を阻止し、ハードウェアとiンパチブルなコー
ド・ストリームを生成する。すべてのゼロ・バイトが単
純に’F F’に変換された場合でも、ハードウェア復
号器は結果として生じたコード・ストリームをデコード
することができる。しかしながら、送出されるべきバイ
トがゼロであるときにボロウが必要になるだろうが否か
を先読みして知ることによって、結果として生じるコー
ド・ストリームがハードウェア・コード・ストリームと
同一になる。実際、このように先読みすることによって
、ハードウェア・コード・ストリーム中の’FF’の存
在が検出される。The above sequence satisfies all requirements: it prevents borrow propagation and produces a code stream that is compatible with the hardware. Even if all zero bytes were simply converted to 'F F', a hardware decoder would still be able to decode the resulting code stream. However, by knowing ahead of time whether a borrow will be required when the byte to be sent is zero, the resulting code stream is identical to the hardware code stream. In fact, by looking ahead in this way, the presence of 'FF' in the hardware code stream is detected.
上記のLangdon、 R15sannenによる論
文は、算術符号化について詳しく論じており、ここでも
引用することにする。The above article by Langdon, R15sannen discusses arithmetic coding in detail and is also cited here.
算術符号化はデータ・シンボルを圧縮符号化する強力な
方法であるが、それは次の2つの属性に由来するもので
ある。Arithmetic encoding is a powerful method for compressively encoding data symbols, due to two attributes:
(1)符号化能率の点で、エントロピー限界に接近でき
る能力。(1) The ability to approach the entropy limit in terms of coding efficiency.
(2)符号化されつつあるシンボルの確率を動的に変更
できる能力。(2) The ability to dynamically change the probability of the symbol being encoded.
上記記載に示されるように、複数の判断が符号化されて
数直線上の点が表現される。該点は、特定の判断列を一
意的に表現する数直線上のある区間に関連する。そのよ
うな符号化法は、数直線上の2つの点で境界を形成され
たある現在区間をはじめに規定することによって達成さ
れる1次に該現在区間はセグメントに分割される。ここ
で、各セグメントは、判断の結果生じ得る事象のうちの
1つに対応する。可能性のある事象は排他的でなければ
ならない。つまりどのセグメントもオーバーラツプしな
い。多シンボル環境では、何れの判断も、m(≧2)個
の事象のうちの1つに帰着し得る。各セグメントの長さ
は、対応する判断事象の相対的な確率によって決まる。As shown above, multiple decisions are encoded to represent points on a number line. The point is associated with a certain interval on the number line that uniquely expresses a particular judgment sequence. Such an encoding method is accomplished by first defining a current interval bounded by two points on a number line. To the first order, the current interval is divided into segments. Here, each segment corresponds to one of the possible events that may occur as a result of the decision. Possible events must be exclusive. That is, no segments overlap. In a multi-symbol environment, any decision can result in one of m (≧2) events. The length of each segment is determined by the relative probability of the corresponding decision event.
すなわち1判断事象の確率が大きければ、対応するセグ
メントもそれだけ大きくなる。これは重要なことである
。That is, the larger the probability of one judgment event, the larger the corresponding segment will be. This is important.
なぜなら、大きなセグメントを表わすビットの数は少な
くできるからである。このため、頻繁に符号化されるべ
き事象はど少ないビット数で表現される。This is because the number of bits representing large segments can be reduced. Therefore, events that should be encoded frequently are expressed using as few bits as possible.
m=2である2値算術符号化法では、LPS事象は、与
えられたYES/No (Y/N)判断について、YE
SまたはNoどちらかのシンボルに対応する。そして、
もう1つの事象がMPS事象に対応することになる。通
常、LPSに対応するセグメントはQセグメントと呼ば
れ1MPSに対応するセグメントはPセグメントと呼ば
れる。Qセグメントの長さはLPS事象についての推定
確率Qeに対応し、Pセグメントの長さは、確率(1−
Qe)に対応する。In binary arithmetic coding where m=2, an LPS event is defined as YE for a given YES/No (Y/N) decision.
Corresponds to either S or No symbol. and,
Another event will correspond to the MPS event. Usually, a segment corresponding to LPS is called a Q segment, and a segment corresponding to 1 MPS is called a P segment. The length of the Q segment corresponds to the estimated probability Qe for an LPS event, and the length of the P segment corresponds to the probability (1-
Qe).
Aを0.75から1.5の範囲に維持すると、値Aを約
1.0として近似できる。すると、上記最適なハードウ
ェア・スキームについてCとAを決定するための計算は
次のように簡略化できる。By keeping A in the range 0.75 to 1.5, the value A can be approximated as approximately 1.0. Then, the calculation for determining C and A for the above optimal hardware scheme can be simplified as follows.
すなわち、MPSが符号される場合、 C4−C+ Q e A4−A−Qe となり、LPSが符号化される場合、 A <−Q e となる。That is, if MPS is encoded, C4-C+ Q e A4-A-Qe and when LPS is encoded, A <-Q e becomes.
ある事象を符号化した後にAg0.75になった場合、
AとCの再正規化が行われる。AだけでなくCも再正規
化することによって、符号点の数値と区間の数値の比は
変わらない。If Ag becomes 0.75 after encoding a certain event,
A and C are renormalized. By renormalizing not only A but also C, the ratio of the code point value to the interval value remains unchanged.
P/Qスキームに従って生成された符号化法データを復
号するときは、以下の操作が実行される。When decoding encoding method data generated according to the P/Q scheme, the following operations are performed.
C≧Qeならば、MPSが復号され、次のような計算が
行われる。If C≧Qe, the MPS is decoded and the following calculation is performed.
C4−C−Q e A4−A−Qe 上記条件が成立しないならば、LPSが復号されて、 A 4− Q e となる。C4-C-Q e A4-A-Qe If the above conditions do not hold, the LPS is decoded and A4-Qe becomes.
上記簡略化された符号器(および復号器)は、ハードウ
ェアによるインプレメンテ−ジョンにとって理想的であ
る。なぜなら、レンジの減算(加算)とコード・ストリ
ームの加算(減算)を並列に実行できるからである。し
かしながら、ソフトウェアによるインプレメンテ−ジョ
ンにコード・ストリームの規定と変更について上記ハー
ドウェアの場合と同一の取決を採用しても、効率の点で
劣る。なぜなら、もつとも頻繁にとられるパス(pat
h)において、算術演算が2回必要となるからである。The simplified encoder (and decoder) described above is ideal for hardware implementation. This is because range subtraction (addition) and code stream addition (subtraction) can be performed in parallel. However, even if a software implementation adopts the same conventions for code stream definition and modification as the hardware implementation, it is less efficient. This is because the most frequently taken path (pat
This is because h) requires two arithmetic operations.
したがって、ソフトウェアによるもつと効率のよい符号
器のインプレメンテ−ジョンは、コード・ストリームC
を現在区間の下端ではなくて上端に向けることによって
実現される。ソフトウェアのための符号化プロセスは次
の通りである。Therefore, a highly efficient encoder implementation in software is based on the code stream C
This is achieved by directing the current interval to the upper end of the interval instead of the lower end. The encoding process for software is as follows.
すな力ち、MPS事象ならば、 A 4− A −Q e となり、LPS事象ならば、 C4−C−(A−Qe) A←Qe となる。If it is an MPS event, A4-A-Qe So, if it is an LPS event, C4-C-(A-Qe) A←Qe becomes.
最適ハードウェア・スキームまたは最適ソフトウェア・
スキームのどちらの場合も、A<0.75になると、A
とCの再正規化およびQeの更新が行われる。Optimal hardware scheme or optimal software scheme
In both schemes, when A<0.75, A
and C are renormalized and Qe is updated.
上記取決を検討する際、どの具体例でもA<0゜75の
ときにAとCが再正規化され、かつQeがこれに対応し
て更新されることに注意されたい。When considering the above arrangement, note that in any implementation, when A<0°75, A and C are renormalized and Qe is updated accordingly.
本発明に従ってQeがどのように更新されるかを次に説
明する。We now explain how Qe is updated according to the invention.
、(b)確率推定器の更新
1、被加数を再正規化する度にQeを更新する第7図は
、連続する事象が符号化され、再正規化が行われる際の
確率推定値Qeの更新を説明する図である。第7図にお
いて、縦座標は被加数Aの値を表わし、横座標は(後述
する)Qe子テーブル含まれているQeの許容値を表わ
す。Qeの許容値が0.42208から始まったとする
と、LPS事象が符号化された結果、被加数の値は0゜
42208になる。LPS事象の符号化の結果。, (b) Update the probability estimator 1, update Qe every time the summand is renormalized. Figure 7 shows the probability estimate Qe when consecutive events are encoded and renormalized. It is a figure explaining the update of. In FIG. 7, the ordinate represents the value of the summand A, and the abscissa represents the allowable value of Qe contained in the Qe child table (described below). If the allowed value of Qe starts at 0.42208, then the encoded LPS event results in a summand value of 0°42208. Results of encoding LPS events.
被加数の値は0.75より小さくなるので、LPS(が
引き起こす)再正規化(“L P S renovm”
)が行われる。その結果、Qe値は0.46896に増
加するとともに、Aの値は再正規化されて0゜8441
6になる。今の具体例では、2を掛けることによって、
AとCの再正規化が行われることに注意されたい、この
操作は、単純にレジスタのシフトだけで実行できるから
簡単であるという利点だけではなく、再正規化の実行回
数を数え続けるのに簡単であるという利点も持つ、続い
てMPS事象が起こると、次の簡単な式に従って、Aの
値は0.37520になる。Since the value of the summand is less than 0.75, LPS (causes) renormalization (“LPS renovm”)
) is carried out. As a result, the Qe value increases to 0.46896 and the value of A is renormalized to 0°8441
It becomes 6. In the current example, by multiplying by 2,
Note that a renormalization of A and C is performed; this operation not only has the advantage of being simple, since it can be performed simply by shifting registers, but also because it keeps a count of the number of renormalizations performed. A subsequent MPS event, which also has the advantage of simplicity, results in a value of A of 0.37520, according to the following simple formula:
A 4− A −Q e
すなわち、A = (0,84416−0,46896
) = 0.3752OAは0.75より小さいので、
MPS (が引き起こす)再正規化(“M P S r
enorm”)が生じる。A 4- A -Q e i.e. A = (0,84416-0,46896
) = 0.3752OA is smaller than 0.75, so
MPS (caused) renormalization (“MPS r
enorm”) is generated.
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未満であ
る。Qe takes the smaller value 0.42208 and A takes the smaller value 0.7
5040. (There is no need to further renormalize A, since A is no longer less than 0.75.6) The next time an MPS event occurs, A becomes 0.
It decreases to 0,32833 which is less than 75. A smaller value of 0.32833 is selected as Qe. Even if A is doubled, it is still 0.65666, which is still less than 0.75.
Aをさらに2倍にすると1.31332になる。If A is further doubled, it becomes 1.31332.
続いてMPS事象が起こると、被加数は0.98499
に減るが、これは0.75より大きいので、再正規化は
生じない。さらにMPS事象が生じると、Aは0.65
666まで減少すルノテ、MPS再正規化が行ねれる。If an MPS event subsequently occurs, the summand is 0.98499.
, which is greater than 0.75, so no renormalization occurs. If more MPS events occur, A is 0.65
666, MPS renormalization can be performed.
Qeとしてはより小さな値、つまり0.30489が選
択されるとともに、被加数Aは2が掛は合わされて1.
3133になる。その後MPS事象が2回続くと、MP
S再正規化が必要になる。A smaller value, that is, 0.30489, is selected as Qe, and the summand A is multiplied by 2 to become 1.
It becomes 3133. If two subsequent MPS events occur, the MP
S renormalization is required.
2、Qe子テーブ
ル発明によれば、第7図に示されるようなQe値がテー
ブル(表)の形で記憶されている。第1表の左側の列に
は、Qeの複数個の許容値が16進数の形で示されてい
る。テーブルの各Qe値は、12ビツトで示される値で
あることが好ましく、2つのバイトを占めるように規定
されている。2. Qe Child Table According to the invention, Qe values as shown in FIG. 7 are stored in the form of a table. In the left column of Table 1, the allowed values of Qe are shown in hexadecimal form. Each Qe value in the table is preferably a 12-bit value and is defined to occupy two bytes.
Qe値を5461(16進数では1555)で割ると、
N−10進小数による表現に変換される。Qe値を一意
的に識別するには、5ビツトのインデックスで十分であ
る。テーブルの隣接するエントリに移るには、2バイト
分のシフトが必要である。Divide the Qe value by 5461 (1555 in hexadecimal),
Converted to N-decimal decimal representation. A 5-bit index is sufficient to uniquely identify the Qe value. Moving to an adjacent entry in the table requires a two-byte shift.
第1表の第2番目の列には、各リストされた確率値をL
PS再正規化に続いてシフトさせる際に。The second column of Table 1 lists each listed probability value as L
When shifting following PS renormalization.
1′ 何バイト分シフトされるべきかがを示さ
れている。1' Indicates how many bytes should be shifted.
LPS再正規化の結果、場合に応じてテーブル中のイン
デックス位置の1つ分、2つ分、あるいは3つ分だけ確
率値が増加されることがわかる。It can be seen that the LPS renormalization results in an increase in the probability value by one, two, or three index positions in the table, as the case may be.
第1表を吟味すると、その中のエントリは第7図で説明
したQe値に対応していることがわかる。An examination of Table 1 shows that the entries therein correspond to the Qe values explained in FIG.
すなわち、10進数の0.46896は第1表中の16
進数0a81に対応する。その後にリストさ“れた3つ
のエントリ、すなわち0aO1,0901、および07
01は、それぞれ第7図の0゜42208.0.328
33.および0.30489に対応する。MPSが1の
場合、Qeの負数が用いられる。In other words, the decimal number 0.46896 is 16 in Table 1.
Corresponds to base number 0a81. The three entries listed after that, namely 0aO1, 0901, and 07
01 is 0°42208.0.328 in Figure 7, respectively.
33. and 0.30489. If MPS is 1, a negative number of Qe is used.
第1表の代りの表が第2表に示されている。第2表には
、Qeの許容値に関して、qiO値が示されている。こ
れは、LPS再正規化に関連している。第1表のQe値
に4を掛けることによって、qo値が得られる。さらに
、MPSが1ならば、qo値は否定(negate)さ
れる。第2表中のqi。An alternative table to Table 1 is shown in Table 2. Table 2 shows the qiO values with respect to the allowed values of Qe. This is related to LPS renormalization. By multiplying the Qe values in Table 1 by 4, the qo values are obtained. Furthermore, if MPS is 1, the qo value is negated. qi in Table 2.
項はqilps(i 0 )と呼ばれる。これは、後続
の、Qe値(qO) ゛(Mpsが0、つまりQeが正
のときとMPSが1.つまりQeが負のときの両方の場
合について)とそのためにLPS再正規化が起こったと
きに当てはまるインデックス(10)とに関連する情報
をインデックスが持つことを示す。The term is called qilps(i 0 ). This is due to the subsequent Qe value (qO) ゛ (for both cases when Mps is 0, i.e. when Qe is positive, and when MPS is 1, i.e. when Qe is negative) and hence LPS renormalization has occurred. Indicates that the index has information related to index (10) that is sometimes applicable.
第2表では、後続のQe値とそれに関連する10値の両
方が先行するインデックスにおいて見つかる。しかしな
がら、第1表では、後続のインデックスがまず決定され
てから、それに基づいて後続のQe値が決定される。よ
って、第2表のテープル索引(ルックアップ)プロシー
ジャの方が簡単である。In Table 2, both the subsequent Qe value and its associated 10 value are found in the preceding index. However, in Table 1, the subsequent index is first determined and then the subsequent Qe value is determined based on it. Therefore, the table index (lookup) procedure for Table 2 is simpler.
第3表は、MPS再正規化の場合を意図している点を除
き、第2表と同様である。特に、M P S再正規化の
場合、第3表によれば、テーブル中の各Qe値について
、後続の確率値qOおよび後続のインデックス10が示
される。第2表では選択される数値が大きくなっていく
のに対し、第3表では選択される数値が小さくなってい
く。Table 3 is similar to Table 2, except that it is intended for the case of MPS renormalization. In particular, in the case of M P S renormalization, according to Table 3, for each Qe value in the table, the subsequent probability value qO and the subsequent index 10 are indicated. In Table 2, the selected numerical values become larger, whereas in Table 3, the selected numerical values become smaller.
また、表に含まれるQe値はOから0.5までの範囲に
限られることも注意すべきである。0゜5においては、
LPSを表わす2値事象がMPSになるし、その逆も成
り立つ。したがって、Qeに対応する事象が変わる。例
えば、白画素の事象がLPS事象を表わすならば、Qe
値は白画素事象の確率の推定値を表わす。しかしながら
、Qe値が0.5に到達し、これを越えると、今度は黒
画素事象がQeによって識別されるLPS事象になる。It should also be noted that the Qe values included in the table are limited to the range from 0 to 0.5. At 0°5,
A binary event representing LPS becomes MPS, and vice versa. Therefore, the event corresponding to Qe changes. For example, if a white pixel event represents an LPS event, then Qe
The value represents an estimate of the probability of a white pixel event. However, when the Qe value reaches and exceeds 0.5, black pixel events now become LPS events identified by Qe.
Qe子テーブル、LPSとMPSの定義が変わる変換点
に関して対称的にながめることができる。The Qe child table can be viewed symmetrically with respect to the conversion point where the definitions of LPS and MPS change.
Qeの許容値の選択は、いくつかのファクタに応じて決
定される。まず、ある値が「悪い(bad)J値として
認識される。特に、Qe値の「トラッピング(trap
ping)Jを生じさせ得る値は許されない。The choice of acceptable value for Qe depends on several factors. First, a certain value is recognized as a "bad" J value. In particular, a "trapping" of the Qe value
ping)J is not allowed.
値AMIN/2、AMIN/4、・・・・、AMIN/
2n(ここでnはある正の整数)そのものまたはこれら
に近い確率値が「悪い」値だと考えられる。このような
値のときは1次のようなサイクルが推定プロセスをトラ
ップしかねない。Value AMIN/2, AMIN/4, ..., AMIN/
Probability values that are or are close to 2n (where n is some positive integer) are considered "bad" values. For such values, cycles such as the first order can trap the estimation process.
(1)LPS再正規化。(1) LPS renormalization.
(2)第1のQe値への移行。(2) Transition to the first Qe value.
(3)蓋然性のあるMPS事象がただ1回生じた後での
MPS再正規化、(Aが既にAMINに等しいかまたは
これに近い値になっていたことに注意されたい、)対応
してQe値を(今より小さい)第2の値(悪い値)へ移
す。(3) MPS renormalization after only one probable MPS event (note that A was already equal to or close to AMIN), corresponding to Qe Move the value to a second (worse) value (less than the current value).
(4)もう1回LPSが生じ、LPS再正規化が生じる
。(4) One more LPS occurs and LPS renormalization occurs.
(5)第1のQe値へ戻る。(5) Return to the first Qe value.
したがって、Qeの値は、LPS再正規化に続いてMP
S再正規化を行う確率が高すぎることのないように、所
定の値δだけAMIN/2°よりも大きくなるように選
択することが好ましい。この目的を達成する1つの方法
は、再正規化後に小さくなるすべてのQe値を、16進
数の′1000′とかけ離れた数値にすることによって
、LPS再正規化が1回生じた後でMPS再正規化が生
じるのは、複数回MPS事象が続いた後になるようにす
ることである。Qe値が0.5に近いと、この条件は緩
和される。Qeがきわめて小さい場合、再正規化法のQ
eとAMINの間隔は、MPS再正規化の確率とLPS
の確率が同じオーダーの大きさになるほどに、十分大き
くなければならない。Therefore, the value of Qe is determined by MP following LPS renormalization.
It is preferable to choose a predetermined value δ greater than AMIN/2° so that the probability of performing S renormalization is not too high. One way to achieve this goal is to make the MPS renormalization after one LPS renormalization occur by making all Qe values that are smaller after the renormalization far away from '1000' in hexadecimal. Normalization occurs only after multiple consecutive MPS events. This condition is relaxed when the Qe value is close to 0.5. When Qe is extremely small, the renormalization method Q
The interval between e and AMIN is the probability of MPS renormalization and LPS
must be large enough such that the probabilities of are of the same order of magnitude.
再正規化されたQe値がAMINまたはそれに値い数値
になるのを避ける上記方策に加えて、本発明は、LPS
再正規化に応答するインデックス位置のジャンプがMP
S再正規化に応答するインデックス位置の下降よりも相
対的に大きいならば、「悪いJQe値を包含できること
を教える。例えば、第1表のQeの最小値は「悪い」値
である。In addition to the above measures to avoid renormalized Qe values from being AMIN or values below it, the present invention provides
The jump in index position in response to renormalization is MP
It tells us that "bad" JQe values can be included if they are relatively larger than the drop in index position in response to S renormalization. For example, the minimum value of Qe in Table 1 is a "bad" value.
しかしながら、LPS再正規化が起こると、Qe値に対
するインデックスは、2エントリ(4バイト)シフトさ
れる。したがって、上記Qeの最小値に戻るには、M
P S再正規化が2回続けて起きなければならない。こ
のため、LPS再正規化の直後にM P S再正規化が
極めて起こりやすくても、推定器がトラップされること
はない。However, when LPS renormalization occurs, the index for the Qe value is shifted by two entries (4 bytes). Therefore, to return to the minimum value of Qe above, M
PS renormalization must occur twice in a row. Therefore, the estimator will not be trapped even though M P S renormalization is very likely to occur immediately after LPS renormalization.
テーブルの値を選択する際に考慮すべき第2の点は、符
号化の非能率性に関係する。この点に関しては、Qeの
許容値の範囲全体にわたって符号化の非能率を最小限に
することが望ましい。第8図のグラフは、符号化の非能
率性とlog、 Qの大きさの関係が示されている。Q
e値は第1表に含まれている値である。円は実験結果を
表わし、実線は単−文扉の場合の符号化の1具体例(セ
クション■、参照)についての理論計算の結果を表わす
。A second point to consider when choosing table values relates to encoding inefficiencies. In this regard, it is desirable to minimize coding inefficiencies over the range of acceptable values for Qe. The graph in FIG. 8 shows the relationship between encoding inefficiency and the magnitude of log and Q. Q
The e values are the values contained in Table 1. The circles represent experimental results, and the solid lines represent the results of theoretical calculations for one specific example of encoding in the case of single-sentence doors (see Section 2).
符号化の非能率性は、エントロピー、特定状態(つまり
Qe子テーブル中特定のエントリ)についてのビット伝
送速度/シンボル、および該特定状態についての占有(
occupation)確率に基づく−なお、エントロ
ピーHは。Coding inefficiencies are determined by the entropy, the bit rate/symbol for a particular state (i.e. a particular entry in the Qe child table), and the occupancy (
Occupation) probability-based, where the entropy H is.
H=−(ΣPr(i )1ogPr(i ))によって
定義されるm P r(x)が第1番目の判断事象の確
率を表わし、和は所与の判断についてのすべての判断事
象にわたって求めるものとする。与えられたテーブルの
細分性(granularity)と符号化の際に用い
る算術的な概算の下で、最も一様な曲線が望ましいが、
そうであることが必須ではない。m P r(x) defined by H=-(ΣPr(i)1ogPr(i)) represents the probability of the first decision event, and the sum is found over all decision events for a given decision. shall be. Given the granularity of the table and the arithmetic approximation used during encoding, the most uniform curve is desirable;
It is not necessary that this is the case.
本発明によると、インデックス位置の密度は、確率の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値では、密度は比較的線である。According to the invention, the density of index positions is
is enhanced in the high entropy Qe value part of the table compared to the set of powers of . In the power of 2 set, the range from 1/4 to 1/2 has a Q of 0.1
e value, 1/8 to 1/4 to 0.01, 1/16 to 1/
8 corresponds to 0.001, respectively. The same applies to the subsequent index positions. There are relatively many entries near the 1/4 to 1/2 range compared to, for example, the skew coder described above. At low entropy Qe values, the density is relatively linear.
第3に、システムの応答性、すなわち、見当外れの数値
から適切なQe値に到達するのにどれだけの時間がかか
るかを考慮しなければならない。Third, one must consider the responsiveness of the system, ie, how long it takes to get from a misplaced value to a proper Qe value.
この目的を促進するために、隣接するQe値の間でより
大きな増分と減分が選択される。もつとも、これは、か
かる大きな微分が定常的な結果に悪影響を与えない場合
にあてはまる。定常的な結果は、固定された確率に従っ
て、例えば疑似乱数発生器によって与えられるデータに
基づいて生成される。To facilitate this objective, larger increments and decrements are chosen between adjacent Qe values. However, this is the case if such large derivatives do not adversely affect the steady-state results. A stationary result is generated according to a fixed probability, for example based on data provided by a pseudo-random number generator.
非定常的な結果は、確率が時間とともに変動する可能性
のある現実のデータに基づいている。Non-stationary results are based on real-world data whose probabilities can vary over time.
第1表は上記の事項を考慮して決定したものであって、
簡単さ、各文脈に要する記憶が最小となること(例えば
、1ビツトをMPSシンボルのセンス用に、5ビツトを
Qe値のインデックス用にして、合計6ビツトにする。Table 1 was determined in consideration of the above matters, and
Simplicity, minimal storage required for each context (eg, 1 bit for sensing the MPS symbol and 5 bits for indexing the Qe value, for a total of 6 bits).
)、固定された(つまり、定常的な)統計についての符
号化の能率の妥当性、および異なるデータ圧縮モデル(
例えば。), the validity of the efficiency of the coding for fixed (i.e. stationary) statistics, and different data compression models (
for example.
ファクシミリ圧縮モデルと連続トーン・イメージ圧縮モ
デル)から得られる複数文脈データについての性能の間
での妥協の産物である。It is a compromise between performance on multiple context data obtained from facsimile compression models and continuous tone image compression models.
以上の説明で、符号化能率と変化する確率の迅速な推定
の間の妥協について記した。The above discussion describes a compromise between coding efficiency and rapid estimation of changing probabilities.
第9図には、ゲーティング回路が示されている。A gating circuit is shown in FIG.
複数の入力線と複数の出力線が備わっている。入力線を
、Oと1の信号の所定のパターンにセットすることによ
って、対応するqインデックスが該ゲーティング回路に
入力される。各qインデックス毎に、該デーティング回
路は、対応するQe値を表ねす信号パターンを出力線に
供給する。本発明によると、Qe値は、ゲート、および
qインデックス入力に対応してQe値を出力するのに必
要なゲーティングの数を少ない数に制限できるように選
択されている。Qe値は、(a)Qe値の最下位のビッ
ト(L S B)が常に(1に)セットされ、かつ(b
)どのQe値についても、Qe値の12ビツトのうちの
5ビツトのみがセットされるように、選択されている。It has multiple input lines and multiple output lines. By setting the input line to a predetermined pattern of O and 1 signals, the corresponding q index is input to the gating circuit. For each q index, the dating circuit provides a signal pattern on the output line representing the corresponding Qe value. According to the invention, the Qe value is selected such that the number of gates and gating required to output the Qe value in response to the q index input can be limited to a small number. The Qe value is such that (a) the least significant bit (LSB) of the Qe value is always set (to 1), and (b)
) For any given Qe value, only 5 of the 12 bits of the Qe value are selected to be set.
したがって、ハードウェアを容易なものにする一方、上
述の目的も達成される。Thus, the above objectives are achieved while simplifying the hardware.
3、単一文脈適応化と文脈適応化 第10図には、文脈テーブルが示されている。3. Single context adaptation and context adaptation A context table is shown in FIG.
特に、3つの文脈(context) C01C1、お
よびC2が掲載されている。各文脈は異なるセツティン
グに対応し、そのそれぞれで判断が行われる。In particular, three contexts are listed: C01C1 and C2. Each context corresponds to a different setting, and decisions are made in each.
例えば、異なる文脈は、光学データのフレームの中の異
なる領域を表わす、該フレームの中には黒が優勢の領域
もあれば、白が優勢の領域もあるがもじれない。また別
の領域は各タイプの事象ががなり均衡して表現されてい
るかもしれない、したがって、各文脈毎に、MPS識別
子、すなわち、黒(つまりYES)の判断がMPSであ
るが、または白(つまりNo)の判断がMPSであるか
に関する標識が存在する。これは、第10図のテーブル
ではMPSの列に2進数で表記されており。For example, different contexts represent different regions within a frame of optical data, where some regions are predominantly black and other regions are predominantly white. Another area may be that each type of event is represented in equilibrium, so that for each context, the MPS identifier, i.e., a black (i.e. YES) decision is an MPS, or a white There is an indicator as to whether the decision (that is, No) is MPS. This is expressed as a binary number in the MPS column in the table of FIG.
coとC2の文脈ではO事象がMPS事象を表わす一方
、C1の文脈では1事象がMPS事象を表わしている。In the context of co and C2, the O event represents an MPS event, while in the context of C1, the 1 event represents an MPS event.
テーブルの隣の列はQeインデックス・テープルであり
1個々の文脈について現在指示されているQeエントリ
を表示する。C0文脈では、0番目のエントリが指示さ
れている。同様に、C1、C2文脈では、それぞれ、1
2番目と29番目のエントリが指示されている。最後の
列には、個々のQe値がそれぞれ0.5.0.10.0
.001であることが示されている。MPS識別子とQ
eインデックスは6ビツトで表現されることが好ましく
、この具体例ではQeインデックスが好適な5ビツトで
表現されている。しかしながら、ビット数は変更可能で
ある。The next column of the table is the Qe index table, which displays the currently pointed Qe entry for each context. In the C0 context, the 0th entry is indicated. Similarly, in C1 and C2 contexts, 1
The 2nd and 29th entries are indicated. In the last column, the individual Qe values are 0.5.0.10.0 respectively.
.. 001. MPS identifier and Q
The e index is preferably expressed in 6 bits, and in this example the Qe index is preferably expressed in 5 bits. However, the number of bits can be changed.
本発明の1具体例によれば、単一の被加数値が記憶され
、考慮する文脈に無関係に用いられる6各文脈において
判断が入力され、各文脈について再正規化が行われる際
に、共通の被加数が処理される。According to one embodiment of the invention, a single addend value is stored and used independently of the context considered.6 When a decision is entered in each context and renormalization is performed for each context, a common The summand of is processed.
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に応答して、次
のような操作が行われる。As an example, a string of 0 and 1 bits is shown, each associated with a corresponding context. string 01100
represent the bits in the Go-C1-GO-Co-C2 context, respectively. From the table in FIG. 10, the bit strings are MPS (for CO), M
PS, (for Co) LPS, (for Go) MP
Express S, and MPS (for C2). For purposes of this example, assume that the initial value of A is 1.0 before the first bit is encoded. Under the above P/Q encoding scheme, in response to bit string 01100, the following operations occur.
i、1番目のビットについて。i, for the 1st bit.
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は、下記の式に従って減少する。A4-A-Qe(Go)=1.0-0.5=0.5. Since A becomes less than 0.75, A is renormalized to 1°0 and the value of Qe(Go) is reduced to 0.486 ■, the second bit represents the MPS in C1 context and Therefore, the summand A decreases according to the following formula.
A+−A−Qe(C:1)=1.0−0.1=0.90
再正規化もQeの更新も行われない。A+-A-Qe(C:1)=1.0-0.1=0.90
Neither renormalization nor updating of Qe takes place.
=、3番目のビットは文脈COのLPSを表現している
ので、LPS再正規化を起こす。被加数の値は0.90
からQ e (G O)、つまり0.48に変化する。=, the third bit represents the LPS of the context CO, causing LPS renormalization. The value of the summand is 0.90
to Q e (G O), that is, 0.48.
Aの値は再正規化(2倍に)して0.96にしなければ
ならない、C0文脈についてのQe値はインクレメント
される。この例では、0番目のエントリの方へ1エント
リ戻ることによってQe(Co)値が増加することにす
る。後述するように、本発明は、1工ントリ以上離れた
単一の値へQe値を上昇させることも考慮している。本
発明による他の方法では、Qe値が現実の確率からどれ
だけ離れてみえるかに応じて、後続のいくつか可能性の
あるQe値の中から選択された1つまでQe値を増加さ
せる可能性も考慮している。後者の方法は、上記特許出
願(発明の名称:算術符号化システムにおける確率適応
化方法)の明a書中で、多レートの例として説明されて
いる。The value of A must be renormalized (doubled) to 0.96, and the Qe value for the C0 context is incremented. In this example, it is assumed that the Qe(Co) value increases by moving back one entry toward the 0th entry. As discussed below, the present invention also contemplates raising the Qe value to a single value that is one or more factories apart. Another method according to the invention allows the Qe value to be increased to a selected one of several possible subsequent Qe values depending on how far the Qe value appears from the real probability. Gender is also taken into consideration. The latter method is described as a multi-rate example in the manifest of the above-mentioned patent application (title: Probability Adaptation Method in Arithmetic Coding Systems).
■、4番目のビットは、C0文脈でのMPSである。A
は(0,96−0,5)=0.46に変更され、MPS
再正規化が必要になる。Aの値は2倍されて0.92に
なり、Qe(Co)は0゜48に減少する。■The fourth bit is the MPS in the C0 context. A
is changed to (0,96-0,5)=0.46, and MPS
Renormalization is required. The value of A is doubled to 0.92 and Qe(Co) is reduced to 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である。v, the fifth bit corresponds to the MPS in one context C2. The value of summand A is (0,92-Qe(C2))=0.
92-0.0OL=0.919. This is 0.75
After 65 bits, the table has the following entries: That is, for context CO, MPS=O1Qe(
Co) index is 1 and the value of Qe(Co) is 0
.. For the 48° context C1, all data remain unchanged. For context C2, the current summand A for the zero-order encoded decision event remains unchanged in all data.
is 0.919 regardless of the context of the decision.
単一文脈の例と比較すると、多文脈の例では、複数の判
断文脈を一緒に処理することができる。Compared to single-context examples, multi-context examples allow multiple decision contexts to be processed together.
4、単一レート適応化
単一レート推定器によれば、ある特定のQeについて、
LPS再正規化に関しては、次の確率として選択される
べき今よりも大きな値が1つだけ指定され、MPS再正
規化に関しては、今よりも小さな値が1つだけ指定され
る。単一レート推定器の1例は、有限状態機械としてセ
クション5で説明する。4. Single rate adaptation According to the single rate estimator, for a certain Qe,
For LPS renormalization, only one value larger than the current value to be selected as the next probability is specified, and for MPS renormalization, only one value smaller than the current value is specified. One example of a single rate estimator is described in Section 5 as a finite state machine.
5、Qe子テーブル有限状態機械表現
第12図は、単一レート、かつ単一文脈の推定器の有限
精度推定器によるインプレメンテ−ジョンが示されてい
る。数値k は、MPS事象とLx
PS事象の定義が入れ換わる状態を表わす。第12図で
は、各状態は、MPS再正規化に対応して1つの外向き
のパス(path)を持つとともに、LPS再正規化に
対応して1つの外向きのパスを持つ。k の場合は、U
PS再正規化ゆえに更新をff1aス
行っても、同一の状態に戻る。5. Qe Child Table Finite State Machine Representation FIG. 12 shows the implementation of a single-rate, single-context estimator with a finite-precision estimator. The value k represents a state in which the definitions of the MPS event and the LxPS event are swapped. In FIG. 12, each state has one outgoing path corresponding to MPS renormalization and one outgoing path corresponding to LPS renormalization. If k, then U
Even if the update is performed by ff1a due to PS renormalization, the state returns to the same state.
各状態は、特定のQe値を表わす1つのテーブル・エン
トリであると考えてよい、各エントリは、それに続く2
つの可能なエントリと結ばれている。Each state may be thought of as one table entry representing a particular Qe value; each entry
tied with two possible entries.
好ましくは、MPS再正規化の結果、k によりaX
近くなる次の状態への移行が起こる。LPS再正規化時
には、可能性のある次の単一の状態へのババスを通って
、状態位置が1つ、2つ、あるいはそれ以上変化し得る
ことに注意すべきである。Preferably, the MPS renormalization results in a transition to the next state that is closer to aX by k. It should be noted that during LPS renormalization, the state position may change by one, two, or more through the transition to the possible next single state.
V、Qコーダー・システムのフローチャートの1−明一
以下のフローチャートでは、上記「ハードウェア」と「
ソフトウェア」の具体例が、フローチャートに即して記
載されている。符号器、復号器の例で両者の違いを示す
ときは、−Hまたは−8をつけることにする。In the flowcharts from 1 to Akiichi of the V,Q coder system flowchart, the above "hardware" and "
Specific examples of "software" are described in accordance with flowcharts. In the example of an encoder and a decoder, to indicate the difference between the two, -H or -8 is added.
第13図は、本発明の算術符号化法圧縮/同解除システ
ムによるコーグとデコーダを示すフローチャートである
(第1図と対比されたい)。第1図では、BITINが
符号化される2値事象であり、B ITOUTが復号さ
れた2値事象である。FIG. 13 is a flowchart (contrast with FIG. 1) illustrating a cog and decoder according to the arithmetic coding compression/decompression system of the present invention. In FIG. 1, BITIN is the encoded binary event and BITOUT is the decoded binary event.
第13図のフローチャートでは、エンコーダー、デコー
ダーともに2値判断のことをYNと呼んでいる。一般的
に説明すると、第14図、第15図のINITENCは
、ハードウェア、スキーム。In the flowchart of FIG. 13, binary judgment is called YN in both the encoder and decoder. Generally speaking, INITENC in FIGS. 14 and 15 is a hardware scheme.
ソフトウェア、スキームのそれぞれの圧縮システムを初
期化する。モデル・プロセスは、rS、YNの獲得」と
いうステートメントによって表わされている。INIT
STATE (第16図)は。Initialize each compression system of the software and scheme. The model process is represented by the statement "Acquisition of rS, YN." INIT
STATE (Figure 16).
すべての文脈状庵Sについて、qインデックスの初期値
とQe値を設定する。ENCODEブロック(第17図
)では1文脈状態SとYN値を用いて、圧縮済データ・
ストリームが生成される。すべてのシンボルの符号化が
いつ完了したかに関する判断は、外部の手段によっても
たらされる0例えば、グレイスケールTVには、512
画素/ライン×480ラインのような固定されたフォー
マットがある。取決に関して合意しなければ、符号器は
、該情報を、外的な手段により、または圧縮済データの
1部として、そのどちらかによって、復号器に送る。For all contexts S, the initial value of the q index and the Qe value are set. The ENCODE block (Figure 17) uses one context state S and the YN value to
A stream is generated. The decision as to when all symbols have been encoded is provided by external means. For example, a grayscale TV has 512
There is a fixed format, such as pixels/line x 480 lines. If no agreement is reached, the encoder sends the information to the decoder, either by external means or as part of the compressed data.
すべてのシンボルが符号化されると、ブロックFLUS
H(第33図、第34図)の働きにより最後のバイトが
出力される。したがって、復号器には確実にすべてのシ
ンボルを完全に復号するのに充分なデータが与えられる
。ブロック「送信」は、記憶または送信を表現している
。この図では、送信または記憶の前に完全な圧縮データ
が生成されるかのように思われる6しかしながら、どの
バイトも、後続のバイトが生成された直後に送信するこ
とができる。復号器を初期設定するために、INITD
ECブロック(第39図、第40図)が1回呼ばれる。Once all symbols have been encoded, the block FLUS
The last byte is output by the function of H (FIGS. 33 and 34). Therefore, the decoder is provided with enough data to ensure that all symbols are completely decoded. The block "Send" represents storage or transmission. In this diagram, it appears as if the complete compressed data is generated before transmission or storage.6 However, any byte can be transmitted immediately after the subsequent byte is generated. To initialize the decoder, INITD
The EC block (Figures 39 and 40) is called once.
復号器では、モデルが文脈状態Sの値を与える。DEC
ODEブロック(第41図)は、YN判断を取り戻す。At the decoder, the model provides the value of the context state S. DEC
The ODE block (Figure 41) recovers the YN decision.
復号がいつ完了したかに関する判断は、外的に、または
圧縮済データ、ストリームの一部としてもたらされる。The determination as to when decoding is complete is provided externally or as part of the compressed data stream.
(a)符号器動作の詳細な説明
以下の定義は、フローチャートとその説明にあてはまる
。(a) Detailed Description of Encoder Operation The following definitions apply to the flowchart and its description.
■
Q○(S)・は、プログラムおよびフローチャートにお
いて、16ビツトを持つ少数点の固定された少数として
定義される。正の数にもなれるし、負の数にもなれる。■ Q○(S) is defined in programs and flowcharts as a fixed decimal point with 16 bits. It can be a positive number or it can be a negative number.
lo(S)は、Qe確率値を更新するためのQIMPS
テーブルまたはQILPSテーブルのインデツクスであ
る。これは、QO(S)の直後に2パイ、トの形で記憶
される。QIMPSテーブルまたはQILPSテーブル
からの4バイトが、次のQO,IOのペアになる。lo(S) is QIMPS for updating Qe probability value
Table or QILPS table index. This is stored in the form of 2 pies, t immediately after QO(S). The 4 bytes from the QIMPS table or QILPS table become the next QO, IO pair.
Aは16ビツトの整数だが、12の少数ビットと、それ
に続く2つのゼロと2つの先頭整数ビットとに分ける2
進少数点を持つ2進少数として考えることができる。A is a 16-bit integer, but it is divided into 12 fractional bits, followed by two zeros, and two leading integer bits.
It can be thought of as a binary number with a base point.
Xは、符号器については第5図に、復号器については第
6図にそれぞれ示されるような構造を持つ32ビツトの
数である。X is a 32-bit number having a structure as shown in FIG. 5 for the encoder and FIG. 6 for the decoder.
XCは、復号器におけるXの最上位ビットを含む上位側
の16ビツトである。XC is the upper 16 bits containing the most significant bit of X at the decoder.
XNEWは、復号器におけるXの最下位ビットを含む下
位側の16ビツトである。XNEW is the lower 16 bits containing the least significant bit of X at the decoder.
XFLAGは、復号器におけるXの最下位ビットを含む
下位側の8ビツトである。XFLAG is the lower 8 bits containing the least significant bit of X at the decoder.
LE’Nはコード・ストリームのためのバッファの長さ
である。これは(任意だが便宜上)256バイトにセッ
トされる。LENは1にセットすることもできる。LE'N is the buffer length for the code stream. This is (optionally but conveniently) set to 256 bytes. LEN can also be set to 1.
BPSTは圧縮済データ・バッファの始まりを指示する
。BPST indicates the beginning of the compressed data buffer.
BEは圧縮済データ・バッファを越えた最初のバイトを
指示する。BE points to the first byte beyond the compressed data buffer.
BPは圧縮済データの現在バイトを示すポインタである
。BP is a pointer indicating the current byte of compressed data.
BはBPによって指示された圧縮済データ・バイトであ
る。B is the compressed data byte pointed to by BP.
AMINは再正規化が必要となる時機を決定する。AM
I’Nは、(0,75と等価である)Hex ’400
0’にセットされる。ただし、ソフトウェア復号器につ
いてだけは、マイナスHe x’4000’ にセット
される。これもやはり0゜75と等価である。AMIN determines when renormalization is required. A.M.
I'N is (equivalent to 0,75) Hex '400
Set to 0'. However, only for the software decoder, it is set to minus He x'4000'. This is also equivalent to 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の
オフセットが必要になる。INITENC (FIGS. 14 and 15) initializes the encoder. The version to be implemented is either the hardware version (-H) shown in Figure 2 or the third version.
Two versions of INITEC are implemented according to the software version (-8) shown in the figure. After the table is set up, INITSTATE (Figure 16) initializes the context storage. Common to the two versions, LEN
is initialized to 256 bytes, and BE is the compressed data.
It is positioned at the end of the buffer, and BP
1 of ST (i.e. the actual start of the buffer to send)
It is positioned in front of the part-time job. The pointer is updated before a single byte is written. Therefore, an offset of 1 is required.
(BPによってアドレス指定される)バイトBは′80
′に初期設定される。これは、圧縮済データ・ストリー
ムにおける最初のバイトとしてB=OまたはB= ’F
F″という特別な場合にトリガがかからないようにする
ためである。レンジAは’4000’ に、そしてAM
INもそれと同じ値に、それぞれ初期設定される。Byte B (addressed by BP) is '80
′ is initialized. This means B=O or B='F as the first byte in the compressed data stream.
This is to prevent the trigger from being triggered in the special case of F''. Range A is set to '4000', and AM
IN is also initialized to the same value.
バージョン間の違いが現れるのは、Xの初期設定におい
てである。すべてのバージョンにおいて、8個の圧縮済
ビットがレディになったことをフラグで知らすために、
8番目のm s bが1にセットされる。ソフトウェア
・バージョンでは、Xのフラグ、ビットの直後にボロウ
・ビットが挿入されるとともに、低位側のビットはAと
のOR操作が施される。このボロウ・ビットは、ボロウ
伝播がフラグ・ビットへ至るのをブロックする。It is in the initialization of X that the differences between versions appear. In all versions, to signal when the 8 compressed bits are ready,
The 8th m s b is set to 1. In the software version, a borrow bit is inserted immediately after the X flag bit, and the lower bit is ORed with A. This borrow bit blocks borrow propagation to the flag bit.
ENCODE (第17図)は、YNが1またはOに応
じてとられる2つのパスを示す。ENCODE (Figure 17) shows the two paths taken depending on YN being 1 or O.
(1,0DEYNI (第18図、第19図)は、YN
=1を符号化する。QO(S)<Oならば、MPS=1
であり、MPSシンボルを符号化しなければならない。(1,0DEYNI (Figs. 18 and 19) is YN
=1 is encoded. If QO(S)<O, then MPS=1
, and the MPS symbol must be encoded.
負であるQOを加算することにより、Aは減らされる。A is decreased by adding a QO that is negative.
ハードウェア・バージョンは、負のQOを引くことによ
って、Xを増加させる。MPSパスにおいてAがAMI
N未満ならば。The hardware version increases X by subtracting a negative QO. A is AMI in MPS path
If it is less than N.
UPDATEMPS (第22図)によってQOを減ら
すことができる。RE N ORMブロック(第24図
)では、AとXの両方が再正規化される。QO can be reduced by UPDATEMPS (Figure 22). In the RE N ORM block (Figure 24), both A and X are renormalized.
QOが正(ゼロは許されていない)ならば、MPS=0
であり、LPSシンボルが符号化されなければならない
。ソフトウェア・バージョンの場合、MPSレンジを計
算せねばならず、かつ又は新しいAの分だけ減らさねば
ならない。どちらの場合も、AはQO(S)にセットさ
れ、そしてLPSの場合についての確率の更新がUPD
A置LPS(第23図)において行われる。QOは常に
AMIN未満であるから、再正規化が必要になる。If QO is positive (zero is not allowed), MPS=0
, and the LPS symbols must be encoded. For the software version, the MPS range must be calculated and/or reduced by the new A. In both cases, A is set to QO(S) and the update of the probability for the LPS case is UPD
This is carried out in the A position LPS (Fig. 23). Since QO is always less than AMIN, renormalization is required.
C0DEYNO(第20図、第21図)は、YN=Oに
なるパスについて、第18図および第19図と同じ操作
を示す、この場合、MPSパスについてはQOが正であ
り、LPSパスについてはQOが負である。C0DEYNO (Figures 20 and 21) shows the same operation as Figures 18 and 19 for paths where YN=O, in this case QO is positive for MPS paths and positive for LPS paths. QO is negative.
U P D A T E M P S (第22図)は
、MPSパスでの確率更新を行う。新しいQeおよびイ
ンデックス(合計4バイト)が、Q I MP Sテー
ブルの中の古いIO(S)の場所で発見される。第3表
は、QIMPSテーブルの1例である。UPDATEMPS (FIG. 22) updates the probability on the MPS path. A new Qe and index (4 bytes total) are found in the place of the old IO(S) in the Q I MP S table. Table 3 is an example of a QIMPS table.
UPDA置LPS (第23図)は、LPSパスでの確
率更新を行う、新しいQeおよびインデックス(合計4
バイト)が、QILPSテーブルの中の古いlo(S)
の場所で見つけられる。第2表は、QILPSテーブル
の1例である。The UPDA-based LPS (Figure 23) uses new Qe and indices (total 4
byte) is the old lo(S) in the QILPS table
can be found at the location. Table 2 is an example of a QILPS table.
RENORME (第24図)は、A値とX値の正規化
を、一度に1ビツトずつ行う。Aがまずシフトされた後
、Xについて最上位ビットがセットされたか否かの試験
が行われる。セットされている場合、Xの次のシフトに
よってそのフラグ・ビットが取り除かれるとともに、1
バイトがBYTEOUT (バイト・アウト、第25図
、および第26図参照)によって出力される。セットさ
れていない場合、又は単に1ビツト分シフトされるだけ
である。このプロセスは、AがAMIN未満である限り
続く。RENORME (Figure 24) normalizes the A and X values one bit at a time. After A is shifted first, a test is made for X to see if the most significant bit is set. If set, the next shift of X removes that flag bit and
A byte is output by BYTEOUT (see Figures 25 and 26). If not set, or just shifted by one bit. This process continues as long as A is less than AMIN.
BYTEOUT (第25図および第26図)によれば
、復号器は、各“FF″バイトの直後において、後続の
バイトの先頭にビットが1つ挿入されることを予期して
いる。先頭ビットはキャリー・ビットとなるであろう。According to BYTEOUT (Figures 25 and 26), the decoder expects a bit to be inserted at the beginning of the following byte immediately after each "FF" byte. The first bit will be the carry bit.
第25図では、ハードウェア・バージョンがまず最初に
最後のバイトBを見て、Bが’FF’ならば、直後に5
HIP7−H(第27図)において6ビツトだけを出力
する。どんなキャリーでも、新しいバイトの1番目に大
きな桁のビットに現われるであろう。Bが’FF’未満
ならば、キャリーについてXのテストが行われる。キャ
リーがないならば、8ビツトの出力を5HIP8−H(
第29図)によって行うことができる。キャリーがあれ
ば、最後のバイトBについて1だけ増分する必要があり
、結果について’FF’ となったか否かのテストが行
われる。結果が’FF’であれば。In Figure 25, the hardware version first looks at the last byte B, and if B is 'FF', it immediately follows 5.
Only 6 bits are output in HIP7-H (FIG. 27). Any carry will appear in the first significant bit of the new byte. If B is less than 'FF', then test X for carry. If there is no carry, the 8-bit output is set to 5HIP8-H (
(Fig. 29). If there is a carry, it is necessary to increment by 1 for the last byte B, and a test is made to see if the result is 'FF'. If the result is 'FF'.
既にBに加算法のXにおけるキャリーを、後続の7ビツ
トを出力する前にクリアしなければな壱ない。結果が’
FF’でないならば、8ビツトを新しいバイトへ出力し
てもよい。The carry in X of the additive method must already be cleared in B before outputting the following 7 bits. Results'
If not FF', 8 bits may be output to a new byte.
ソフトウェア用のバージョンであるBYTEOUT−5
(第26図)は、Xが正であるか否かをテストする@X
が正ならば、ボロウ・ビットが使用されたのであり、8
ビツトを出力する前にBを1だけ減分しなければならな
い、ボロウ・ビットが使用されていなかったならば、A
が又と比較される前にXからボロウ・ビットがクリアさ
れる。BYTEOUT-5, the software version
(Figure 26) tests whether or not X is positive @X
If is positive, a borrow bit was used and 8
B must be decremented by 1 before outputting the bit; if no borrow bit was used, A
The borrow bit is cleared from X before it is compared with MATA.
XがAより小さいならば、将来ボロウが必要になる可能
性があるが、新しいバイトがゼロとして出力される場合
には、ボロウを入手できなくなる。If X is less than A, a borrow may be needed in the future, but will not be available if the new byte is output as a zero.
(Aはせいぜい’7FFC’であり、Xは8個の出力ビ
ットのうちにゼロだけを持っている。)SHIP8FF
−5(第31図)はプレ・ボロウを行って新しいバイト
をFF″に変換し、借りたビットをXにセーブする。B
が’FF’ならば、5HIP8−8 (第30図)によ
って8ビツトが送出される代りに、5HIP7−8 (
第28図)によって7ビツトだけが送呂される。(A is at most '7FFC' and X has only zero among its eight output bits.) SHIP8FF
-5 (Figure 31) performs a pre-borrow, converting the new byte to FF'' and saving the borrowed bits to X.B
If is 'FF', then instead of 8 bits being sent by 5HIP8-8 (Figure 30), 5HIP7-8 (
28), only 7 bits are sent.
5HIP7−H(第27図)は、NEXTBYTE(第
32図)における出力バイト・ポインタを増分し、Xか
らの新しいBビット24〜17に保持する。先頭ビット
はどんなキャリーも含む。5HIP7-H (Figure 27) increments the output byte pointer in NEXTBYTE (Figure 32) and holds the new B bits 24-17 from X. The first bit contains any carries.
7番目に大きなビットにてフラグが挿入される前、後続
の17ビツトだけがXに残される。この結果、7個の新
しいビットが準備されると、次のバイトが出力される。Only the next 17 bits are left in X before the flag is inserted at the 7th largest bit. As a result, the next byte is output when the 7 new bits are ready.
なぜなら、1個のビットがXに残つているからである、
5HIP7−3 (第26図)は、フラグ・ビットをす
ぐ追うようにボロウ・ビットがセットされる点を除いて
、5HIP7−Hと同じである。Because one bit remains in X,
5HIP7-3 (Figure 26) is the same as 5HIP7-H except that the borrow bit is set to immediately follow the flag bit.
5HIP8 (第29図および第30図参照)は、どち
らのバージョンも似通っている。ポインタを後続の出力
バイトBに増分した後、Xの中のビット23〜16にあ
る8ビツトがBにて保持される。5HIP8 (see Figures 29 and 30), both versions are similar. After incrementing the pointer to the subsequent output byte B, the 8 bits in bits 23-16 of X are retained in B.
Xの中で、最下位側の13ビツトを除くすべてのビット
がクリアされて、フラグは上位から8番目のビットにて
挿入される。ソフトウェア用バージョンでは、フラグの
後にボロウ・ビットも挿入される。All bits in X except the least significant 13 bits are cleared, and a flag is inserted at the 8th bit from the most significant. The software version also inserts a borrow bit after the flag.
ソフトウェア符号器用バージョンにおいては、必要なら
ばBについて減分を施すことが可能であることが保証さ
れなければならない。「書き込まれるべき後続のバイト
がゼロであり、これからボロウを取る必要が生じかねな
いときに、5HIP8FF−8(第31図)が実行され
る。したがって、Bを1だけ減少させて後続バイトをH
ex’FF’ に変換して、直ちにボロウがとられる。In the software encoder version, it must be ensured that it is possible to perform a decrement on B if necessary. 5HIP8FF-8 (Figure 31) is executed when the subsequent byte to be written is zero and it may become necessary to take a borrow. Therefore, B is decreased by 1 and the subsequent byte is
It is converted to ex'FF' and borrowed immediately.
これら2つのバイトから取られたボロウはXの中に挿入
される。そこでは、該ボロウが必要とされないなら、該
ボロウは後続バイトの中でキャリーとして出力される。The borrow taken from these two bytes is inserted into X. There, if the borrow is not needed, it is output as a carry in a subsequent byte.
」
NEXTBYTE (第32図)は、BPを動かして圧
縮済データ用バッファの後続バイトをアドレスする。イ
ンクレメントされた後、BPがバッファの終端以上の値
になるならば、該バッファを転送しなければならず、B
Pもバッファの先頭に戻るようリセットしなければなら
ない。必要ならばBPSTとBEが適当に変化すること
が想定されている。” NEXTBYTE (Figure 32) moves BP to address the next byte in the compressed data buffer. After being incremented, if BP becomes greater than or equal to the end of the buffer, then the buffer must be transferred and B
P must also be reset to return to the beginning of the buffer. It is envisaged that BPST and BE will be changed appropriately if necessary.
最後のシンボルが符号化された後、まだXの中にある2
2個の圧縮済ビットについてはフラッシュ・アウトする
必要がある。FLUSH−H(第33図)では、CTが
22に初期設定され、そしてフラグが最上位のビットに
来るまで、Xの中での各シフトに対応してディクリメン
トされる。もう1回シフトされると出力ビットがバイト
境界に位置される。そうすると、FINALBYTES
−H(第35図)によるこれらの最後のバイトの出力が
可能になる。2 still in X after the last symbol is encoded
Two compressed bits need to be flushed out. In FLUSH-H (Figure 33), CT is initialized to 22 and is decremented for each shift in X until the flag is in the most significant bit. Another shift positions the output bits on byte boundaries. Then, FINALBYTES
-H (Figure 35) allows output of these last bytes.
FLUSH−3(第34図)はXを区間の底へ移動させ
る。これによって、ハードウェア・バージョンによって
生成される値に正確に位置づけられる。ビットのバイト
位置合せの後、ボロウが使用済の場合、FINALBY
TES−8(第36図)において最終バイトが出力され
る前に最後のバイトをディクリメントしなければならな
い。FLUSH-3 (Figure 34) moves X to the bottom of the interval. This positions it precisely to the value produced by the hardware version. After byte alignment of bits, if the borrow is used, FINALBY
In TES-8 (Figure 36) the last byte must be decremented before it is output.
FINALBYTES−H(第35図)は、すべてビッ
トがフラッシュ・アウトされてしまうので、ループの中
で、BYTEOUT−H(第25図)と同じタイプの動
作を行う、FLUSH7(第37図)とFLUSH8(
第38図)のブロックは、CTを7ビツトまたは8ビツ
トだけ適当にディクリメントすることを含む。それが完
了すると、記憶されている最後のバイトを越すまでBP
がインクレメントされて、バッファの最後の内容が送出
可能になる。FINALBYTES-H (Figure 35) has all bits flushed out, so FLUSH7 (Figure 37) and FLUSH8 perform the same type of operation as BYTEOUT-H (Figure 25) in a loop. (
The block in Figure 38) involves decrementing CT by 7 or 8 bits as appropriate. When it is complete, the BP is
is incremented so that the last contents of the buffer can be sent out.
ソフトウェア式符号器用のバージョンFINALBYT
ES−8(第36図)は、先行するバイトが’FF’で
あるか否かに応じて7ビツトまたは8ビツトを送出する
だけでよい。プレボロウの処理はすでにFLUSH−8
にて行われている。Version FINALBYT for software encoders
The ES-8 (Figure 36) only needs to send out 7 or 8 bits depending on whether the preceding byte is 'FF' or not. Pre-borrow processing has already been done by FLUSH-8
It is being held in
Xは区間の底に動かされたので、BYTEOUT−8に
おけるAを用いたテストは無関係である。Since X has been moved to the bottom of the interval, the test with A at BYTEOUT-8 is irrelevant.
FLUSH7(第37図)では、ハードウェア・バージ
ョンとソフトウェア・バージョンのどちらの場合でも、
新しいバイトを指し、ビット24〜17を記憶し、Xの
下位側の17ビツトだけをセーブし、かつ7だけCTを
ディクリメントすることによって、6ビツトが出力され
る。In FLUSH7 (Figure 37), in both hardware and software versions,
By pointing to the new byte, storing bits 24-17, saving only the lower 17 bits of X, and decrementing CT by 7, 6 bits are output.
FLUSH8(第38図)では、ハードウェア・バージ
ョンとソフトウェア・バージョンのどちらの場合でも、
新しいバイトを指し、ビット23〜16を記憶し、Xの
下位側の16ビツトだけをセーブし、かつCTを8だけ
ディクリメントすることによって、8ビツトが出力され
る。In FLUSH8 (Figure 38), in both hardware and software versions,
By pointing to the new byte, storing bits 23-16, saving only the lower 16 bits of X, and decrementing CT by 8, 8 bits are output.
bl″ 言 の な1 ロ
INITDEC(第39図および第40図)が復号器を
初期化する。復号器がハードウェアに最適なもの(H)
、ソフトウェアに最適なもの(S)の何れに関連するか
に応じて、INITDECの2つのバージョンがインプ
リメントされている。INITDEC (Figures 39 and 40) initializes the decoder. The decoder is the best suited for the hardware (H)
Two versions of INITDEC have been implemented, depending on which one (S) is most appropriate for the software.
テーブルがセットアツプされた後、符号器の場合のよう
にすべての状態が初期化される。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から引くことから始まる。After the table is set up, all states are initialized as in the encoder. The initialization of X is from a buffer of compressed data. However, note that the size of A is initialized to match the encoder. Both versions begin by acquiring a new buffer of compressed data. This is BPST
This assumes initialization of LEN. BE is initialized to point to the end of the compressed buffer, and BP points to the beginning of the buffer. "The difference between the versions is X, A
, and appears in the initialization of AMIN. For hardware version, range A is “4000”
, AMIN is initialized to 64000', respectively. In software versions, these numbers will be negative. , TNITDEC-H, the first two bytes are placed in bits 31-16. For initialization convenience, the first two bits of the compressed data stream are specified as O's. This simplifies byte alignment of the code byte and the byte of the X register during initialization. When the first byte is shifted to positions 31-24 and the pointer BP is incremented at GETBYTE (Figure 49), the second byte is shifted to bits 23-16.
It is guaranteed that the 6 first bytes added to 'FF' will not become 'FF', so there is no need to test them. The decoding process only cares about the bits in XC, the high order two bytes of X (bits 31-16). Using BYTEIN, the third byte is placed in bits 15-8. (
However, this is the case when the second byte is not 'FF'. If the second byte was FF', the third byte is added to bits 16-7. )BYTE
IN sets a flag indicating when a new byte is needed. Software version INI
TDEC-8 (Figure 40) is 'C000' in XC.
Start by subtracting A from O.
最初の2バイトはこの開始点に加算される。BYTEI
Nは、第3のバイトの関係する加算とフラグのセットに
使われる。The first two bytes are added to this starting point. BYTEI
N is used to add the third byte and set flags.
DECODE (第41図)は、MPSが1カOかに応
じてとられる2つのパスを示す。DECODE (Figure 41) shows the two paths taken depending on whether the MPS is 1 or O.
DECODEMPSI (第42図、第43図)は、M
PS=1のときの復号の2つのインプレメンテ−ジョン
を示す。ハードウェア・バージョンでは、負であるQO
(S)がXCに加算される。DECODEMPSI (Figures 42 and 43) is M
Two implementations of decoding when PS=1 are shown. In the hardware version, the QO that is negative
(S) is added to 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にて増加される。If the result is greater than or equal to 0, the MPS pass continues. YN is set to 1 and A is decreased by adding QO(S) which is negative. If renormalization of A is required on the MPS path because A is less than AMIN, then t
The magnitude of QO(S) is also reduced in JPDATEMPs. In the LPS path, YN is set to 0, XC is recovered by subtracting the negative QO(S), and A is set to the negative of QO(S). LP
Renormalization is always required in the S path, and the magnitude of QO(S) is increased in the UPDA and 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
の大きさく絶対値)より小さく、再正規化が必要である
ことを示す。In the software version of Figure 43, before comparing XC to A, the magnitude of A is reduced by subtracting QO(S) which is negative. A has a negative MPS range; if XC is greater than or equal to A, LPS is decoded. Otherwise, the MPS is decoded. If the LPS is decoded, the software version increases xC by subtracting the negative MPS range A. In the MPS path, both A and A M I N are negative, so A is A M
If it is greater than IN, the absolute value of A) is AMIN.
(absolute value), indicating that renormalization is required.
DECODEMPSO(第44図、第45図)は、MP
S=Oなるパスについて、第42図および第43図と同
じ操作を示す。この場合、QOは正である。DECODEMPSO (Figures 44 and 45) is an MP
The same operation as in FIGS. 42 and 43 is shown for the path S=O. In this case, QO is positive.
RENORMD (第46図、第47図)は、A値とX
値を一時に1ビツトずつ正規化する。AとXの両方がシ
フトされた後、XFLAG、つまりXの最下位のバイト
について、セットされているビットの有無がテストされ
る。そのようなビットがないならば、新しいバイトの獲
得に移る。このプロセスは、(ハードウェアについては
)AがAMIN未満である限り続き、(ソフトウェアに
ついては)AがAMINより大きい限り続く。RENORMD (Figures 46 and 47) is the A value and
Normalizes the value one bit at a time. After both A and X are shifted, XFLAG, the least significant byte of X, is tested for any bits being set. If there is no such bit, move on to acquiring a new byte. This process continues as long as A is less than AMIN (for hardware) and as long as A is greater than AMIN (for software).
BYTEIN (第48図)に示されるような新しいバ
イトをXに移すプロセスの際、GETBYTE (第4
9図)が次のバイトに移る前に、最後のバイトBについ
て、これが’FF’FF上であったか否かのテストが行
われる。’FF’ に続くどのバイトの先頭のビットも
符号化の際に挿入されたものだから、復号の際に適切に
考慮しなければならない。’FF’ があったならば、
XNEW(Xの最下位の2バイト)が値2にセットされ
る。During the process of moving a new byte to X as shown in BYTEIN (Figure 48), GETBYTE (4th
Before moving on to the next byte (Figure 9), a test is made on the last byte B to see if it was on 'FF'FF. The first bit of any byte following 'FF' was inserted during encoding and must be properly considered during decoding. If there was 'FF',
XNEW (the two least significant bytes of X) is set to the value 2.
XFLAGにおいてフラグ・ビットを1だけシフトする
ためである0通常2番目に下位のバイトに配置される次
のバイトは、エキストラのビットの方へ送り出され、X
に加算される6最後のバイトBが’FF’でないならば
、XNEWの最下位のビットがセットされるとともに、
新しいバイトBカX N E Wの高位のバイトに加算
される。0 to shift the flag bit by 1 in XFLAG The next byte, usually located in the second least significant byte, is sent out towards the extra bits and
6 If the last byte B added to is not 'FF', the least significant bit of XNEW is set and
The new byte B is added to the high order byte of the new byte.
GETBYTE (第49図)は、BPを動かして、圧
縮済データ・バッファの中の次のバイトをアドレスする
。インクレメントされた後のBPが少なくともバッファ
の終端である場合は、新しいバッファを獲得せねばなら
ず、かつBPを該バッファの始端ヘリセットしなければ
ならない。必要ならば、BPSTとBEは適当に変更さ
れるものと想定する。GETBYTE (Figure 49) moves BP to address the next byte in the compressed data buffer. If the BP after being incremented is at least the end of the buffer, a new buffer must be acquired and the BP must be reset to the beginning of the buffer. It is assumed that BPST and BE are modified appropriately if necessary.
上述のソフトウェア型符号器用のプロシージャは、通常
のメインフレーム・コンピュータ、例えばIBM(登録
筋jIA)3370.あるいはパーソナル・コンピュー
タ、例えばIBMPC−XT、PC−ATにおいてイン
プリメント可能である。The procedure for the software-based encoder described above is implemented on a conventional mainframe computer, such as the IBM 3370. Alternatively, it can be implemented in a personal computer, such as IBM PC-XT, PC-AT.
プロシージャのインプリメントは、PASCAL等の高
級言語を用いて行うことができる。The procedure can be implemented using a high-level language such as PASCAL.
■、ハードウェアの 例の説l
第50図に示されるように、Qコーダー500には、2
値事象BITINが符号化される度に、符号器側状態発
生器モデル(第1図参照)によりNビットの状態Sが供
給される。Qコーダー500の出力は圧縮済データのバ
イトである。これらは、Qデコーダー(第54図参照)
に入力される前に、送信されたり貯蔵されたりする。Q
デコーダーは、復号器側状態発生器モデルからのNビッ
トの入力状態Sに基づいて、2値事象BITOUTの論
理値を決定する。この復号されたBITOUT値は、復
号器側状態発生器(図示省略)にフィードバックされる
。■Example explanation of hardware As shown in FIG. 50, the Q coder 500 has two
Each time a value event BITIN is encoded, an N-bit state S is provided by the encoder-side state generator model (see FIG. 1). The output of Q-coder 500 is bytes of compressed data. These are the Q decoders (see Figure 54)
transmitted or stored before being entered into the Q
The decoder determines the logical value of the binary event BITOUT based on the N-bit input state S from the decoder-side state generator model. This decoded BITOUT value is fed back to a decoder side state generator (not shown).
Qコーダー/Qデコーダー・システムは、符号化される
べき2値事象の1つについて、1つのメジャー・サイク
ルを営む、タイミングは、エツジ・トリガ型のフリップ
・プロップおよび単一の位相クロック・システムによっ
て決定される。クロック・エツジ間の時間は充分長く、
したがって最悪の場合の伝播の遅延およびセット・アッ
プ時間の要請にかなっている。The Q-coder/Q-decoder system operates one major cycle for one of the binary events to be encoded, and the timing is determined by an edge-triggered flip-flop and a single phase clock system. It is determined. The time between clock edges is long enough,
Thus worst case propagation delay and setup time requirements are met.
ここでは、各メジャー・サイクルで起ることを説明する
。第50図は、Qコーダー500ブロック図である。新
たなサイクル毎に、Qコーダー500には、2値事象値
BITINと確率についての情報の記憶場所を指定する
状態Sとが主要な入力として供給される。サイクルの終
りでは、キャリー・オーバー(C10VER)出力バッ
ファからの出力制御(OUTPUT C0NTR0L
)が、コードストリング(CODESTRING)の1
6ビツトの中に準備されたバイトの数が0.1.2の何
れであるかを指定する。Here we explain what happens during each major cycle. FIG. 50 is a block diagram of Q coder 500. For each new cycle, the Qcoder 500 is supplied with the binary event value BITIN and the state S specifying the storage location of the information about the probability as its main inputs. At the end of the cycle, the output control from the carry over (C10VER) output buffer (OUTPUT C0NTR0L
) is 1 of the code string (CODESTRING)
Specifies whether the number of bytes prepared in 6 bits is 0.1.2.
統計ユニット502への1つの入力は、Nビットの状j
ll S テ& ル。コレハ、MPS値(MPSVAL
)および現在の2値判断BITINのためのQインデッ
クスを得るために、条件術は文脈記憶装置をアドレスす
るのに用いられる。Qインデックスは一連の整数であり
、LPSの確率推定値セットのインデックスである。具
体例では、Qインデックスは0か629の範囲である。One input to the statistics unit 502 is the N-bit state j
ll S te&ru. Coreha, MPS value (MPSVAL
) and the Q index for the current binary decision BITIN, a conditional technique is used to address the context store. The Q index is a series of integers that index the set of probability estimates for the LPS. In a specific example, the Q index ranges from 0 to 629.
統計二二ツト502は、MPS値とQインデックスをサ
イクルの早朝に出力する。このため、これらのパラメー
タを符号器ユニット504と適応化ユニット506の両
方に入力することが可能である。サイクルの遅くには、
入力Aバス<O> (Aバスの最上位ビット)が該サイ
クルのある期間の間0でなかったならば、統計ユニット
502が、状態Sによって指定される場所に新MPS値
と新Qインデックスを記憶する。統計ユニット502の
動作は。Statistics unit 502 outputs the MPS value and Q index early in the cycle. It is therefore possible to input these parameters to both the encoder unit 504 and the adaptation unit 506. Late in the cycle,
If the input A bus <O> (the most significant bit of the A bus) was not 0 for some period of the cycle, the statistics unit 502 inserts the new MPS value and the new Q index into the location specified by the state S. Remember. The operation of the statistics unit 502 is as follows.
符号器と復号器のどちらについても同じである。The same is true for both encoder and decoder.
適応化ユニット506も、符号器と復号器の両方につい
て同じである。このユニットの動作は第4表に示されて
いる。同じ機能は離散形論理を使って達成できる。Adaptation unit 506 is also the same for both encoder and decoder. The operation of this unit is shown in Table 4. The same functionality can be achieved using discrete logic.
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〉がゼロであった場合のみ、新たな値を
記憶する。The binary event BITIN is input to encoder unit 504 along with the MPS value and Q index. One of the outputs from encoder unit 504 is binary (Boolean)
The signal A bus 0>, that is, the most significant bit of the A bus. This tells the statistics unit 502 when to change the Q index or MPS value. Adaptation unit 506 receives “M” from encoder unit 504.
Ps o p ”Receives and accepts boolean signals. This is
Displays whether the current judgment is MPS operation or not. The output of adaptation unit 506 becomes new values for the two inputs from statistics unit 502. , statistics unit 502
stores a new value only if A bus 0> is zero.
Cl0VER出力バツフア508は、符号器ユニット5
04および適応化ユニット506と同一のサイクルにお
いてキャリー用のビット−スタッフィングを行う、ある
いは、パイプライン式で動作することもできる。パイプ
ラインの1ユニツトとして、サイクル“n”ではシステ
ムがサイクルat、1.p″の符号器ユニット504の
出力に基づいてCl0VER出力バツフア508を機能
させるというようなサイクルのそれぞれで、フリップ・
フロップが符号器の出力を記憶する。Cl0VER output buffer 508 is connected to encoder unit 5
04 and adaptation unit 506, or can operate in a pipelined manner. As a unit of the pipeline, in cycle "n" the system runs through cycles at, 1 . In each cycle, the flip
A flop stores the output of the encoder.
メジャー・サイクルには2つのタイプがある。There are two types of major cycles.
すなわち、MPS操作とLPS操作であり、それぞれM
P S OPイコール1、MPSOPイコール0と表
示される。BITIN値とMPS値が同じならばMPS
操作、異なる場合はLPS操作になる。第51図のBI
TINとMPS値に従うエクスクル−シブORゲートは
、該メジャー・サイクルについての操作のタイプを決定
する。That is, MPS operation and LPS operation, respectively.
P S OP equals 1 and MPS OP equals 0 are displayed. If the BITIN value and MPS value are the same, MPS
operation, if different, it will be LPS operation. BI in Figure 51
An exclusive OR gate according to the TIN and MPS values determines the type of operation for the major cycle.
1つのサイクルの間に、符号器ユニット504は、Cl
0VER出力バツフア508に対して、2値キヤリー・
アウト値Cl0UT、13ビツトの正規化されていない
コード・ストリームC−UNNORM、およびコード・
ストリームをどれだけシフトすべきかを示す4ビツトの
制御信号SHI FTAMTを出力する。バッファ50
8は、1または2バイトの数および送り出されるバイト
数がOll、または2の何れであるかを表示する制御信
号を出力する。During one cycle, encoder unit 504 outputs Cl
For the 0VER output buffer 508, the binary carry
out value Cl0UT, the 13-bit unnormalized code stream C-UNNORM, and the code
It outputs a 4-bit control signal SHI FTAMT indicating how much the stream should be shifted. buffer 50
8 outputs a control signal indicating the number of 1 or 2 bytes and whether the number of bytes sent out is Oll or 2.
統計ユニット502および適応化ユニット506は、Q
コーダーとQデコーダーの両方で同一である。Statistics unit 502 and adaptation unit 506 provide Q
Identical for both coder and Q-decoder.
第51図は、符号器ユニット504の詳細なブロック図
である。ここで論じるタイプの算術符号化法は、加算と
シフトによって符号を形成する。FIG. 51 is a detailed block diagram of encoder unit 504. Arithmetic coding methods of the type discussed here form codes by additions and shifts.
加算される数(量)は被加数である。入力Qインデック
スは被加数に関連する。Q値(QVALUE)は、Qイ
ンデックスの数値と一対一で対応している。ここで、Q
値は、ハードウェアによるQコーダーの具体例では算術
符号化プロセスにおける被加数である。符号器ユニット
はQ値だけを求め、Qインデックス求めない、この具体
例では、Q値が5ビツトの数であり、かつQ値は12の
有意(signficamt)ビットに先行する0をプ
ラスしたものであるから、Qインデックスを貯蔵する方
が経済的である。また、適応化ユニット506にとって
もQインデックスの方が操作しやすい。The number (quantity) to be added is the summand. The input Q index is related to the summand. The Q value (QVALUE) has a one-to-one correspondence with the numerical value of the Q index. Here, Q
The value is the summand in the arithmetic encoding process in the hardware Q-coder implementation. The encoder unit only determines the Q value and not the Q index; in this example, the Q value is a 5-bit number, and the Q value is 12 significant bits plus a leading zero. Therefore, it is more economical to store the Q index. Also, the Q index is easier for the adaptation unit 506 to manipulate.
符号器と復号器のどちらの場合も、QインデックスをQ
値に変換するのはQ論理510である。For both encoder and decoder, let the Q index be
It is Q logic 510 that converts it to a value.
変換は、第5表を使ったり、あるいは現在の教科書に登
場する真理値表を用いる組合せ回路を使ったりして実行
することができる。Q値の最上位ビットは常にOであり
、かつ最下位ビットは常に1であることに注意されたい
。The conversion can be performed using Table 5 or using combinational circuits using truth tables that appear in current textbooks. Note that the most significant bit of the Q value is always O and the least significant bit is always 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を生成する。The Q coder uses two registers, an A register 528 and a C register 534. The C register is functionally equivalent to the X register used in software flowcharts. FIG. 52 is a detailed explanatory diagram of the A logic that modifies the contents of the A register 528. Depending on the input MPSOP, the A multiplexer (A-MUX) 522
Select the Q value corresponding to the S operation (0) or the Q value corresponding to the MPS operation (1) subtracted from the A register 528. Priority encoder 524 counts the number of leading zeros on the A bus and generates the shifts ffisHIFTAMT necessary to restore a 1 to the most significant bit of the A bus.
このシフトは、Aレジスタ526にて行われる。最下位
側のビットは、必要に応じて0が充填される。第6表は
、SHIFTAMTの値をAバスの関数として示す、ダ
ッシュは、「無視(don’t care) Jビット
であることを示す6Aレジスタ528がクロックされる
のはサイクルの遅くであり、すべての値が安定化した後
である。その内容は人減算器529へ供給される。This shift is performed in A register 526. The least significant bits are filled with 0 as necessary. Table 6 shows the value of SHIFTAMT as a function of the A bus, where the dashes indicate ``don't care''. After the value of has stabilized, its contents are fed to the person subtractor 529.
コード・ストリームからのシフティング、特にCレジス
タ534を介してのシフティングは、Aレジスタ528
によって次のように制御される。Shifting from the code stream, specifically through C register 534, is done through A register 528.
It is controlled as follows.
Aレジスタ528が所与数のビット位置だけ左へシフト
する必要があるときは、Cレジスタ534も同じビット
数だけシフトされる。各メジャー・サイクルの始まりに
おいて、Aレジスタは正規化されなければならない。す
なわち、Aレジスタの中の数値は、下限の値以上でなけ
ればならない。When A register 528 needs to be shifted to the left by a given number of bit positions, C register 534 is also shifted by the same number of bits. At the beginning of each major cycle, the A register must be normalized. That is, the value in the A register must be greater than or equal to the lower limit value.
上述のように、この条件が満たされないと、Aは(左へ
のシフトによって)再正規化される。(Aは下限LBに
初期設定される。)Aレジスタ528のシフトが発生す
るのは、Aレジスタ528に対する操作の結果Aレジス
タの値が上記下限未満となるメジャー・サイクルにおい
てである。下限未満になったことは、Aバスの最上位ビ
ット、っまりAバスく0〉が0になったことに基づいて
検知される。As mentioned above, if this condition is not met, A is renormalized (by shifting to the left). (A is initialized to the lower limit LB.) A shift of the A register 528 occurs in a major cycle in which an operation on the A register 528 results in the value of the A register being less than the lower limit. The fact that the value is below the lower limit is detected based on the fact that the most significant bit of the A bus, that is, the A bus 0> becomes 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回の再正規化シフトが起こらざるをえないような値
に選択されている。In MPS operation, the Q value is subtracted from the A register 528;
If necessary, the difference after renormalization is returned to the A register 528. For LPS operations, the normalized Q value is placed in A register 528. In Fig. 52, the Q value is set to A register 5.
The subtraction from 28 is performed in the human subtractor unit. Its output passes through a 2-to-1 data selector called the A multiplexer. In LPSOP, the Q value passes through data selector A-MUX 522. A-MUX5
The output of 22 is called the A bus. According to the result of subtraction,
The resulting value of the A bus may be less than LB. In this example, the value of LB is chosen such that if A bus 0> is 0, at least one renormalization shift must occur.
実際、Aバスが受けなければならない再正規化シフトの
数は、Aバスの上の(減算の)結果における先行ゼロの
数である。Aバスの再正規化はAシフタ526のユニッ
トで行われる。Aシフタ526は、ゼロ充填機能を持つ
バレル・レフト・シフタである。Aバスからシフト・ア
ウトさせるビット位置の数は、Aバス上の先行するゼロ
の数に依存する。Aシフタの制御信号であるSHIFT
AMT (シフト量)は、Oと12の間の4ビツトの数
である。Aバスが再正規化を必要としないとき。In fact, the number of renormalization shifts that the A bus must undergo is the number of leading zeros in the result (of the subtraction) on the A bus. Renormalization of the A bus is performed in the A shifter 526 unit. A shifter 526 is a barrel left shifter with zero fill functionality. The number of bit positions shifted out of the A bus depends on the number of leading zeros on the A bus. SHIFT which is the control signal of A shifter
AMT (shift amount) is a 4-bit number between 0 and 12. When the A bus does not require renormalization.
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ユニツトの制御信号にもなる。SHI FTAMT is 0 and the A bus passes straight through. Control signal SHIFTAM supplied to the shifter
T is determined by priority encoder 524. The encoder 524 encodes the number of leading O's on the A bus. During MPSOP, A multiplexer 522 outputs the difference obtained by subtracting the Q value from the A register to the A bus. LPS
At the time of OP, the data selector A-MUX 522 outputs the Q value. The SHIFTAMT value also controls the C register 534 portion of the encoder and is also the control signal for the Cl0VER output buffer 508 unit.
MPSOPでは、Cレジスタ534とQ値がC加算器5
36にて加算され、CバスについてのMPS結果をもた
らす。LPSOPでは、Cマルチプレクサ(C−MUX
)534がCレジスタ532の値をCパスへ供給する。In MPSOP, the C register 534 and the Q value are stored in the C adder 5.
36 to yield the MPS result for the C bus. In LPSOP, C multiplexer (C-MUX
) 534 provides the value of C register 532 to the C path.
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へ送り
戻される。Cl0UT is also supplied to the C/○VER output buffer 508 unit. Adding the Q value to C register 534 (as in this example) may occur in parallel with subtracting the Q value from A register 528. C bus is the same SHI as A bus
It must be shifted by FTAMT (shift amount). For this reason, the output SHIFTAMT of unit priority encoder 524 is also supplied to C shifter 8. M.P.
In SOP cycle, 2 to 1 data, selector C-MU
X passes the C bus to the C shifter. The C sister is paired with the A shifter and is a barrel sister with a C1 left shift. The output of the C shifter is sent back to the C register 534.
C−MUXの(シフトされていない)出力は、C−UN
NORMと呼ばれ、SHI FTAMTのようにC,1
0VER出力バツフア508のユニットへ送られる。S
HI FTAMTによッテ、Cl0VER出力バツフア
508のユニットは、C−UNNORMの先行ビットを
いくつ取るべきかを知る。The (unshifted) output of the C-MUX is the C-UN
It is called NORM and is C,1 like SHI FTAMT.
It is sent to the 0VER output buffer 508 unit. S
By HIFTAMT, the Cl0VER output buffer 508 unit knows how many leading bits of C-UNNORM to take.
LPSOPでは、Cレジスタ534への加算は行われず
、シフトが行われるだけである。LPS○Pサイクルで
は、C−MUX制御信号がCレジスタ534自体を選択
してCシフタへ送る。そこでCレジスタの値がSHI
FTAMTビット分の左シフトが行われた後、Cレジス
タ534に戻る。In LPSOP, there is no addition to C register 534, only a shift. In the LPS○P cycle, the C-MUX control signal selects the C register 534 itself and sends it to the C shifter. Therefore, the value of the C register is SHI
After being shifted left by FTAMT bits, the process returns to C register 534.
既述したように、SHIFTAMTとC−UNNORM
(C−MUX(7)出力)は、Cl0VER出カバツ
フア508のユニットへも入力される。ここでは、Cl
0UTはOでなければならない。なぜなら、Cには何も
加えられないからである。As mentioned above, SHIFTAMT and C-UNNORM
(C-MUX (7) output) is also input to the Cl0VER output buffer 508 unit. Here, Cl
0UT must be O. This is because nothing is added to C.
適応化ユニット506の目的は、入力されてくるOと1
の相対的な確率に基づいて、特定の文脈で用いられる符
号化パラメータを調整することである。The purpose of the adaptation unit 506 is to adapt the input O and 1
is to adjust the encoding parameters used in a particular context based on the relative probabilities of .
説明したコードでは、Aレジスタ528とCレジスタ5
34の長さがともに13ビツトであり、ビット位置をO
ll、・・・、12と表わす。ここで。In the code described, A register 528 and C register 5
The length of 34 is 13 bits, and the bit position is O.
It is expressed as ll, . . . , 12. here.
位置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サイクルの際にキャリーが持ち込まれたときである。5 positions 0 and 1 where position 0 is the highest and position @12 is the lowest
Conveniently, there is a radix point in between. Then, if bit A〈0〉 is 1, then A
The value of the register is between 1.0 and 2.0 drops. The value of LB is 1.0. The Q values are all less than 1°0, but some of them are close to 0.5. Therefore, the range of Q values has 12 significant bits. Bit position C<O>
is not added directly. This is because the corresponding bit position of the Q value is known to be 0. Therefore, C0〉 can be changed because MPSo
This is when a carry is brought in during the P cycle.
算術符号化の性質により、どのメジャー・サイクルの後
でも、コードストリングの値が、現在の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分だけシフトされ得る。必要に応じて
シフティング・プロセスの間に、最下位側のビットには
ゼロが挿入される。Due to the nature of arithmetic encoding, after any major cycle the value of the code string is stored in the current A register 52.
It is impossible for the current C register 534 value to contain more than 8 values plus the code string. Therefore, once carry-out from C<O> occurs,
A block of encoder C logic 530 is shown in FIG. 53 where no other carry comes to that bit position in the code string. Input M to C multiplexer 532
PSPOP selects the contents of C register 534 for LPS operation (0), while selecting the contents of C register 534 for LPS operation (1).
), the sum of the contents of the C register 534 and the Q value by the adder 536 is selected. 1 from C-MUX532
The 3-bit output is the C/UNN (before renormalization)
It is output as an ORM signal. The same data on the C bus is input to the C shifter 538 so that the S
It can be shifted by HIFTMATO. Zeros are inserted into the least significant bits during the shifting process if necessary.
第54図のQデコーダーには、統計ユニット602、適
応化ユニット604、復号器ユニット606、およびコ
ード・ストリーム中のキャリーをアカウントするC/I
Nバッファ608が含まれる。要素602.604はQ
コーダー500において同様の名前をつけられたユニッ
トと同一である。第55図は、復号器ユニット606の
詳細を示す、復号器ユニット606には、CD論理60
8、Q論理610、およびA論理612が含まれる。The Q-decoder of FIG. 54 includes a statistics unit 602, an adaptation unit 604, a decoder unit 606, and a C/I that accounts for carries in the code stream.
N buffers 608 are included. Elements 602.604 are Q
It is identical to similarly named units in coder 500. FIG. 55 shows details of the decoder unit 606. The decoder unit 606 includes the CD logic 60.
8, Q logic 610, and A logic 612.
第56図には、復号器CD論理が示される。In FIG. 56, the decoder CD logic is shown.
(常に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)の最上位側のビットに
よって充たされる。The difference between the least significant bit of the Q value (which is always 1) minus the carry-in C/IN is 1 if C/IN is 0, and 0 if C/IN is 1. Therefore, the Q value minus C/IN can be obtained by replacing the least significant bit of the Q value with the inverted value of C/IN. In the CD subtracter 620, from the Q value minus C/IN to the CD register 624
If the result of subtracting the contents of is positive, the MPS has been decoded, and the result is sent to the CD shifter 622 via the CD bus. The MSPOP signal is 1. Otherwise, LPS has occurred and the sum of the contents of CD register 624 and the C/IN output of adder 626 is
0 at CD multiplexer (CD-MUX) 628
is selected by the MPSOP. The BITOUT value is obtained by exclusive ORing the MSPOP signal and the MPS value. Shift amount SHIFT
The AMT is stored in the CD register 624 before it can be stored.
Determine how much the Dbus value must be shifted. During shifting, the least significant bits are filled by the most significant bits of the instring (IN5TRINO).
実際、CDレジスタ624は、現在区間の底(下端)に
関係する現在のコードを収容する。13ピッ1−のQ値
(最上位ビットはゼロ)の上位12ビツトはCD減算器
620へ送られる。Q値の最下位ビットは、C/INか
ら由来するビットによって置換される。Q値の最下位ビ
ットは常に1なので、C/INがOである(つまりキャ
リーがない)とき、値が反転されてCD減算器620の
ためのQ値の最下位ビットとなるとともに、反転される
ことなくC/IN加算器に直に供給される。In fact, CD register 624 contains the current code associated with the bottom (lower end) of the current interval. The upper 12 bits of the 13-pitch Q value (most significant bit is zero) are sent to CD subtractor 620. The least significant bit of the Q value is replaced by the bit derived from C/IN. The least significant bit of the Q value is always 1, so when C/IN is O (i.e. no carry), the value is inverted and becomes the least significant bit of the Q value for the CD subtractor 620; The C/IN adder is directly fed to the C/IN adder.
このように、キャリーは並列にコード・ストリームに加
算されるとともにQ値から取り除かれ、それからQ値が
コード値から引かれる。CD減算器620からのボロウ
は、復号されたMPS/LPS判断、MPSOPである
。続いて、MPSOPとMPS値のエクスクル−シブO
Rをとることによって、BITOVTの値が得られる。Thus, the carry is added to the code stream and removed from the Q value in parallel, and the Q value is then subtracted from the code value. The borrow from CD subtractor 620 is the decoded MPS/LPS decision, MPSOP. Next, the exclusive O of MPSOP and MPS value
By taking R, the value of BITOVT is obtained.
第56図は、CDレジスタ624のデータ・バスも示す
。FIG. 56 also shows the data bus for CD register 624.
CDバス<0>のビットは直接引かれないけれども、こ
れは存在しなければならない。なぜなら、シフト操作に
よって11′の値がCDバス<0>にシフトする場合が
あるからである。A論理回路から得られたSHIFTA
MTは、左シフトを行うCDシフタ622の制御入力と
なる。シフタのための低位側の「充填」ビットは、C/
IN人力バツファ・ユニットから出力されるバスlN5
TRINGから由来する。Although the CD bus <0> bit is not pulled directly, it must be present. This is because the value of 11' may be shifted to CD bus <0> by the shift operation. SHIFTA obtained from A logic circuit
MT becomes a control input for a CD shifter 622 that performs a left shift. The lower "fill" bit for the shifter is C/
Bus IN5 output from IN human power buffer unit
Derived from TRING.
復号器ユニット606(第55図)は、lN5TRIN
Gからの12個までのビットにプラスしてキャリー人力
C/IN信号を用い、データの圧縮解除を行う。MPS
値とQインデックス値も、出力ビットBITOUTを復
号するための入力として必要である。符号器の場合のよ
うに、復号器ユニット606は統計ユニットにAパスく
0〉信号を与える。The decoder unit 606 (FIG. 55) includes lN5TRIN
Up to 12 bits from G plus the carry C/IN signal are used to decompress the data. MPS
The value and Q-index value are also required as inputs for decoding the output bit BITOUT. As with the encoder, the decoder unit 606 provides the A-pass 0> signal to the statistics unit.
■、算術コード・ストリームからのエスケープ多くの符
号化環境において、算術デコーダから独立して検出可能
なコード・ストリームからのエスケープを与えることが
望ましい。以下では、符号器のコード・ストリーム・レ
ジスタXにスペーサー・ビット位置を割り当てることに
基づくエスケープについて論じる。実際、スペーサ・ビ
ットを含めることによって、xXx・・・ビットがビッ
ト位置bbb・・・によって識別されるXレジスタの後
続バイト部ヘシフトされる時間に遅延が生じる。Escape from the arithmetic code stream In many coding environments, it is desirable to provide an escape from the code stream that is detectable independently of the arithmetic decoder. In the following, we discuss escapes based on assigning spacer bit positions to code stream register X of the encoder. In fact, the inclusion of the spacer bits causes a delay in the time that the xXx... bits are shifted into the subsequent byte of the X register identified by bit position bbb....
スペーサ・ビットを含めることにより、He x’FF
’ の後のあるビット・パターンが不適式なものとなっ
て、コード・ストリームからのエスケープと制御語の挿
入が示唆される。(通常、復号に先立って、制御語が制
御装置によって撤回される6)さらに、スペーサ・ビッ
トを用いることによって、コード・ストリーム・レジス
タの後続バイト部の中のバイトを越えて2以上のキャリ
ーがもたらされる可能性がなくなる。By including a spacer bit, He x'FF
Certain bit patterns after the ' are malformed, suggesting an escape from the code stream and the insertion of a control word. (Typically, the control word is withdrawn by the controller prior to decoding6) In addition, the use of spacer bits allows for more than one carry beyond the byte in the trailing byte portion of the code stream register. The possibility of being brought to fruition disappears.
コード・ストリームの部分的に完成された後続バイトを
保持するXレジスタのビット・パターンは、現在区間の
値を持つ(被加数)レジスタAとビット位置合せがなさ
れる。確率の12ビット整数表現のために、符号器レジ
スタのビット割当の1例は次のようになり得る。The bit pattern of the X register, which holds the partially completed subsequent byte of the code stream, is bit aligned with (the summand) register A, which holds the value of the current interval. For a 12-bit integer representation of probabilities, one example of encoder register bit allocation may be as follows.
X=OOOO00000cbbbbbb bbss、x
xxx xxxxxxxxA=00000000000
00000000a、aaaa aaaaaaaaここ
で、10′はゼロのビットを表わし、Cはキャリー・レ
シーバ・ビットである。′b′は後続のバイトが生成さ
・れる位置のビットを示す。X=OOOO00000cbbbbbbbbss, x
xxx xxxxxxxxx A=00000000000
00000000a, aaaa aaaaaaaa where 10' represents the zero bit and C is the carry receiver bit. 'b' indicates the bit at the position where the subsequent byte is generated.
′s′はキャリー伝播を制限するのに必要なスペーサ・
ビットを示す。又はまだXレジスタの中で展開中の2進
小数を表わす。Aレジスタの中のtap ビットのうち
の1つは整数ビットであり、他は小数ビットである。先
行するコード・バイトがHex’FF’ ならば、ビッ
ト位置付は1ビツトだけシフトされる。このため、キャ
リー・ビットは、後続バイトの充填ビット位置を占める
。この特別な場合では、
X=0000000000cbbbbb bbss、x
xxx XXXXXXXXとなる。ここで、この特別な
場合では、′b′ビットが7個だけ規定されることに注
意されたい。’s’ is the spacer necessary to limit carry propagation.
Indicates a bit. or represents a binary decimal number still being expanded in the X register. One of the tap bits in the A register is an integer bit and the others are fractional bits. If the preceding code byte is Hex'FF', the bit positioning is shifted by one bit. Therefore, the carry bit occupies the fill bit position of the subsequent byte. In this special case, X=0000000000cbbbbbb bbss, x
xxx XXXXXXXXX. Note that in this special case, only seven 'b' bits are defined.
完全に展開されたコード・バイトの除去に続いて、ビッ
ト位置決めおよび再正規化についての規則が、2つのレ
ジスタにおける値の上限を指令する。すなわち、
X=OO000000000000000011,11
1111111111A=0000000000000
0000001.111111111110となる。Following the removal of fully expanded code bytes, rules for bit positioning and renormalization dictate the upper bounds of the values in the two registers. That is, 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レジスタの上限は次の
ようになる。Note that even if a future event is encoded, the value in the , so the upper limit of the code register is X=SLL(0000000000000000010
1,11111111101)N. Here, N
is the renormalized shift count. The SLL performs a "left shift logic" operation ('5hift logical
'operation). When the byte is completed, N is 8 if the preceding byte is not 'FF'.
and 7 if the preceding byte is FF'. Therefore, after 'FF', the upper limit of the X register is as follows.
X=OO000000001011111111,11
1010000000X=OO00000000cbb
bbb bbss、xxxx xxxxxxxxし
たがって、スペーサ・ビットを2つ含める場合、Hax
’FF’ に続くデータ・バイトの最大値はHex’B
F’ になる、ちなみに、スペーサ・ビットが1つだけ
許容される場合、’FF’バイトの後のバイトの最大値
は゛FF’バイトの後のバイトの最大値は′9F′とな
る。このように、2以上のスペーサ・ビットを設けると
、’FF’バイトに続く不適式な符号が、算術コード・
ストリームからのエスケープをもたらす。X=OO000000001011111111,11
1010000000X=OO00000000cbb
bbb bbss, xxxx xxxxxxxxxx Therefore, if you include two spacer bits, Hax
The maximum value of data bytes following 'FF' is Hex'B
By the way, if only one spacer bit is allowed, the maximum value of the byte after the 'FF' byte is '9F'. Thus, by providing two or more spacer bits, the ill-formed code following the 'FF' byte is
Provides an escape from the stream.
(フローチャートと第2表、第3表に示されるように、
)AレジスタとXレジスタの位置合せにおける2ビツト
のシフトによって、コード・レジスタから除去すべきバ
イトがXレジスタのバイト境界にシフトされる。このシ
フトによって、エスケープ・コード構造が変化すること
はない。(As shown in the flowchart and Tables 2 and 3,
) A two-bit shift in the alignment of the A and X registers shifts the byte to be removed from the code register to a byte boundary in the X register. This shift does not change the escape code structure.
■、小さなデータ・セットについてのテスト・シーケン
ス
テスト・ファイルの生成は、2進シーケンスにかけるO
の確率が0.1875である乱数発生器を使って行った
。ファイルの中の実際のゼロの数は、予期した通り、4
8であった。Q値は’0AC1’ に初期設定された。■Test sequences for small data sets Generate test files by applying binary sequences to
This was done using a random number generator with a probability of 0.1875. The actual number of zeros in the file is 4, as expected.
It was 8. The Q value was initially set to '0AC1'.
これは、2桁シフトされると’2b04’ と表わされ
る。正のQeは、MPS値がOであることを示す。This is represented as '2b04' when shifted by two places. A positive Qe indicates an MPS value of O.
下記第7表に示す符号器テストでは、まず事象カウンタ
ecが示される。サイクルの終りでのQe値とYNシン
ボルとがこれに続く。再正規化の合計回数を「ビット」
の欄に示している。「コードバイト」は出力された通り
に掲載しである。この欄に2つのバイトが掲載されてい
ることがあるが、それは新しいバイトと、変更された先
行バイトを両方示しているのである。In the encoder test shown in Table 7 below, the event counter ec is first shown. This is followed by the Qe value and YN symbol at the end of the cycle. The total number of renormalizations in "bits"
It is shown in the column. The "code bytes" are shown exactly as they are output. Two bytes may be listed in this column, indicating both the new byte and the previous byte that has changed.
テスト・データを16進数で表示すると次のようになる
。The test data is displayed in hexadecimal as follows.
EBB7F娠罰刊6C7F7FFFDFE’府加圧3印
圧9τ卵7旧兜DP−〇冗Mこのファイルの場合、符号
化されたビット・カウントは、最終データをフラッシュ
するためのオーバーヘッドも含めて208である。実際
に圧縮されたデータ・ストリームは、どちらの符号器の
どの場合も、16進数で表示すると次のようになる。For this file, the encoded bit count is 208, including the overhead for flushing the final data. . The actual compressed data stream for either encoder, expressed in hexadecimal, looks like this:
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。23CAO8826F7E20151C267BAOA
B606CD63AA 26E7 IC197A80A
O7CO Table 1 Qe I (dQ) - hex f6fc hex ffec hex 0Odc hex 0Odc hex OOe4 hex fffc hex 0Obc hex 0Occ hex 0Odc hex 0Oec S8-M l"'lir'-, OO- to h4 good ψt Nono O-NI”Nζii+JNNl'J NIN
−11111〇〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇
〇 〇 〇 〇 〇ΦToω+T% O−−M rl”l
Good r---N 5 ψ and ω's 〇-bad---tN F
J NIN NNIN N-ff
”η−r ψtωΦQ−NMj ψtωΦ1~h4
0 of ψ and ω -1%l NNIN I
N NIN NN (to N -2C30
29 Table 6 Priority encoder operation 256 eefc 1 00006010ooo
ooooo.
190 004e Oa 07 c。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。RoN Ll
y mouth■ ωCo small to 5 good to ω's 0 to 5 Φψtodo ψ low 1”l I”11”l M-years old $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値の分析をより均一にすることができ、した
がって符号化の能率を一層向上させることが可能になる
という優れた効果が得られる。−−−−0−0−−0=−〇〇〇−−−−−−0−r
”-ao's 0- ~ hhi ψ to's 0- h4 ψ and ω's 0+r+r+r is good, good and good ψψψψψψψψ
ψψto A mouth r++1 − NNNff”l M l’l”l Ma 5 L+
'% LA LA Ll'% LA%J) (n (j
'l口0000−−5tjl■ ρψΦψψψψψψψψψψψψψψψψψψψψTototototototototototo-”−−=−= −==−−−−MO−−−
------0 low 256 eafc + 0O
O09ffO9ffOO0040190004e E0 Effects of the Invention According to the present invention, even if it is a numerical value that is likely to cause trapping, it can be selected as a candidate for the estimated probability value Qe, so the analysis of the Qe value can be made more uniform, and therefore the encoding An excellent effect can be obtained in that it becomes possible to further improve efficiency.
第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、49FIG. 1 is a block diagram of a general arithmetic coding system including a Q-coder and a Q-decoder according to the present invention. FIG. 2 is an explanatory diagram of a probability number line in which one section is divided into two segments according to suitable encoding and recovery amounts by hardware. FIG. 3 is an explanatory diagram of a probability number line in which one section is divided into two segments according to suitable encoding and recovery amount by software. FIG. 4 shows a plurality of different encoders, and
FIG. 3 is a block diagram for explaining that any of them can be used in conjunction with any of a plurality of mutually different decoders. Figure 5 shows the 32-bit code register (X register) used when compressing and encoding a data stream.
FIG. 2 is an explanatory diagram of bit allocation in FIG. FIG. 6 is an illustration of bit allocation in a 32-bit register used in decoding a compressed data stream. FIG. 7 is an explanatory diagram showing the integration of updating the probability Qe and renormalizing the summand. FIG. 8 is a graph showing inefficiency during encoding. FIG. 9 is an explanatory diagram of a dating circuit used to derive an output Qe value from an input q index. FIG. 10 is a table showing a plurality of contexts, each having an estimated probability. FIG. 11 is an illustration of how a string of bits is interpreted based on context. FIG. 12 is an illustration of a finite state machine representation of a single rate coding system. Figures 13 to 49 show the Q coder and Q coder, respectively.
3 is a flowchart showing the operation of a decoder. FIG. 50 is a general block diagram illustrating the major components of a hardware Q-coder according to the present invention. 51 to 53 are detailed explanatory diagrams of the elements of the Q coder. FIG. 54 is a general block diagram showing the main components of a hardware Q-decoder according to the present invention. 55 and 56 are detailed illustrations of the elements of the Q decoder. Applicant: International Business Machines Corporation Representative Patent Attorney: Takashi Tonmiya - (1 other person) FIG, 1 FIG, 2 8-Tou 1 Lower (-H) Kasato Kasukei / Degohiko FIG,
3 C=C+A Software (-5) Code/decoding possession MPS MPS LPS MPS MPSFI
G, 11 FIG 1,6 FIG, 17 FIG
°20 p FIG, 21 FIG, 22 FIG, 23 FIG, 24 FIG, 31 FIG, 37 FIG, 39 FIG, 40 FIG, 41 FIG, 49
Claims (1)
事象が入力される度に、数直線上の直前に識別されてい
た区間に包含されるような新たな区間と該区間に含まれ
る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の
現在値に戻ることのないよう、十分大きな数値を選択す
る ことを特徴とする算術符号化システムにおける確率適応
化方法。(1) When encoding a series of binary decision events, each time a new decision event is input, a new interval is created that is included in the previously identified interval on the number line. A code that identifies one included point and encodes a series of input judgment events with a numerical value corresponding to the identified point.
In the stream arithmetic coding system, a plurality of candidates for the estimated value Qe of the probability of occurrence of the first event among the judgment events are selected in advance, and in the step of identifying the new interval, the plurality of candidates are selected in advance. Using one of the candidates as the current value of Qe, the numerical value A associated with the length of the interval is used to determine whether the newly input judgment event is the first event or the second event. update to a value related to the current value of Qe, although it differs depending on If the renormalization occurs due to the input of the first event, update the current value of Qe to a larger value among the multiple candidates. , if the renormalization occurs due to the input of the second event, the current value of Qe is updated to a smaller value among the multiple candidates, and the current value of Qe is updated. If renormalization occurs due to the input of the above first event when is AMIN/2^n (n is a positive integer) or a value close to this, the new Qe
As the current value of Qe, select a sufficiently large value so that it will not return to the current value of Qe even if renormalization occurs due to the second event immediately after updating the current value of Qe. A probability adaptation method in an arithmetic coding system characterized by:
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 (en) | 1988-04-06 |
JPH0258813B2 JPH0258813B2 (en) | 1990-12-10 |
Family
ID=25424528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20200787A Granted JPS6376525A (en) | 1986-09-15 | 1987-08-14 | Method for probability fitting in arithmetic encoding system |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP0260461B1 (en) |
JP (1) | JPS6376525A (en) |
AU (1) | AU600972B2 (en) |
BR (1) | BR8704623A (en) |
CA (1) | CA1291821C (en) |
DE (1) | DE3751372T2 (en) |
ES (1) | ES2074977T3 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0265373A (en) * | 1988-08-30 | 1990-03-06 | Canon Inc | Encoding system for picture |
JPH0265372A (en) * | 1988-08-30 | 1990-03-06 | Canon Inc | Encoding system for picture |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0834432B2 (en) * | 1989-01-31 | 1996-03-29 | 三菱電機株式会社 | Encoding device and encoding method |
IL91158A (en) * | 1989-07-28 | 1993-01-31 | Ibm Israel | Method and system for arithmetic coding and decoding |
GB2306279B (en) * | 1994-09-30 | 1997-10-22 | Ricoh Kk | Apparatus for decoding data |
CA2156889C (en) * | 1994-09-30 | 1999-11-02 | Edward L. Schwartz | Method and apparatus for encoding and decoding data |
Family Cites Families (1)
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 |
-
1987
- 1987-08-07 CA CA000544052A patent/CA1291821C/en not_active Expired - Fee Related
- 1987-08-14 JP JP20200787A patent/JPS6376525A/en active Granted
- 1987-08-18 EP EP19870111964 patent/EP0260461B1/en not_active Expired - Lifetime
- 1987-08-18 DE DE19873751372 patent/DE3751372T2/en not_active Expired - Lifetime
- 1987-08-18 ES ES87111964T patent/ES2074977T3/en not_active Expired - Lifetime
- 1987-09-04 BR BR8704623A patent/BR8704623A/en not_active Application Discontinuation
- 1987-09-14 AU AU78366/87A patent/AU600972B2/en not_active Ceased
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0265373A (en) * | 1988-08-30 | 1990-03-06 | Canon Inc | Encoding system for picture |
JPH0265372A (en) * | 1988-08-30 | 1990-03-06 | Canon Inc | Encoding system for picture |
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 (en) | 1996-02-15 |
CA1291821C (en) | 1991-11-05 |
DE3751372D1 (en) | 1995-08-03 |
BR8704623A (en) | 1988-04-26 |
ES2074977T3 (en) | 1995-10-01 |
AU600972B2 (en) | 1990-08-30 |
EP0260461B1 (en) | 1995-06-28 |
EP0260461A2 (en) | 1988-03-23 |
JPH0258813B2 (en) | 1990-12-10 |
AU7836687A (en) | 1988-03-17 |
EP0260461A3 (en) | 1990-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4905297A (en) | Arithmetic coding encoder and decoder system | |
KR100894002B1 (en) | Device and data method for selective compression and decompression and data format for compressed data | |
US6677869B2 (en) | Arithmetic coding apparatus and image processing apparatus | |
JP4717780B2 (en) | Encoding apparatus and control method thereof | |
JPH0744462B2 (en) | Compression encoding method and decoding method | |
US20020101367A1 (en) | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms | |
JPS6376525A (en) | Method for probability fitting in arithmetic encoding system | |
JPS6376524A (en) | Data compression system | |
CN110291793B (en) | Method and apparatus for range derivation in context adaptive binary arithmetic coding | |
JP3684128B2 (en) | Arithmetic encoding / decoding method and arithmetic encoding / decoding device | |
WO1996031008A1 (en) | Syntax based arithmetic coding circuit | |
DK3079261T3 (en) | METHOD AND APPARATUS FOR ARITHMETIC DECODATION | |
WO2021027487A1 (en) | Encoding method and related device | |
US6094151A (en) | Apparatus and method for finite state machine coding of information selecting most probable state subintervals | |
CN105409129A (en) | Encoder apparatus, decoder apparatus and method | |
JP3801501B2 (en) | Encoding apparatus, decoding apparatus, encoding / decoding apparatus, encoding method, decoding method, encoding / decoding method, and program | |
JP2006129467A (en) | Lossless adaptive encoding/decoding of integer data | |
JP2003526986A (en) | Arithmetic decoding of arithmetically encoded information signals | |
TW202333501A (en) | Lossless compression for low-latency video transmission in resource-constrained encoding environment | |
KR102296153B1 (en) | Dedicated arithmetic encoding instruction | |
GB2360915A (en) | Run length compression encoding of selected bits of data words | |
JP2891818B2 (en) | Encoding device | |
JP4936574B2 (en) | Encoding apparatus and control method thereof | |
JP2934603B2 (en) | Method and apparatus for decoding variable length code | |
JPH07249995A (en) | Data encoding device |
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 |