JPH08195680A - Arithmetic code decoding device - Google Patents
Arithmetic code decoding deviceInfo
- Publication number
- JPH08195680A JPH08195680A JP377295A JP377295A JPH08195680A JP H08195680 A JPH08195680 A JP H08195680A JP 377295 A JP377295 A JP 377295A JP 377295 A JP377295 A JP 377295A JP H08195680 A JPH08195680 A JP H08195680A
- Authority
- JP
- Japan
- Prior art keywords
- code
- register
- value
- bit
- symbol
- 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.)
- Pending
Links
Landscapes
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【目的】 算術符号の復号化を高速で行えるようにす
る。
【構成】 処理手順を変更し、レジスタの更新回数を減
らす。コードレジスタのスタッフィングビットの幅を増
やし、符号入力に伴うループを完全に無くす。データを
先読みし、先行する未確定の画素に依存した2つの文脈
を用意して処理を行い、先行する画素が確定した段階で
1つを選択するようにし、処理の二重化を行って、先行
する画素が確定するまでの待ち時間を減らす。
(57) [Summary] [Purpose] To enable high-speed decoding of arithmetic codes. [Structure] Change the processing procedure to reduce the number of register updates. Increase the width of the stuffing bit of the code register to completely eliminate the loop associated with code input. The data is prefetched, two contexts depending on the undetermined preceding pixel are prepared and processed, and one is selected when the preceding pixel is confirmed, the processing is duplicated, and the preceding process is performed. The waiting time until the pixel is fixed is reduced.
Description
【0001】[0001]
【産業上の利用分野】本発明は、算術符号復号化装置に
係り、特に、算術符号化された2値画像を復号化する際
に用いるのに好適な、高速で復号化を行うことが可能な
算術符号復号化装置に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an arithmetic coding / decoding device, and in particular, enables high-speed decoding suitable for use in decoding an arithmetically coded binary image. The present invention relates to a simple arithmetic code decoding device.
【0002】[0002]
【従来の技術】伝送路を用いた情報伝達や、データベー
スへの情報の保存に際しては、伝送あるいは保存される
情報のデータ量が少ない方が望ましい。例えば、画像情
報は一般に膨大な情報量となるものであるため、その情
報の伝達や保存に際して、様々な手法によるデータ圧縮
がなされている。2. Description of the Related Art When transmitting information using a transmission line or storing information in a database, it is desirable that the amount of information transmitted or stored is small. For example, since image information generally has an enormous amount of information, various methods are used for data compression when transmitting or storing the information.
【0003】データ圧縮には、非可逆符号化によるもの
と、可逆符号化によるものがあり、可逆符号化のうち、
エントロピ符号化と呼ばれるものは、有限個のシンボル
を持つ情報源出力に対し、出現確率の偏り利用してデー
タ圧縮している。即ち、出現確率の高いシンボルには、
より短い符号を割り当てることによって、生成される符
号の平均符号長を短くするようにし、純数な統計的性質
によって情報圧縮を図っている。Data compression includes lossy coding and lossless coding. Among the lossless coding,
The so-called entropy coding compresses the data from the information source output having a finite number of symbols by using the bias of the occurrence probability. That is, for symbols with a high appearance probability,
By allocating shorter codes, the average code length of generated codes is shortened, and information compression is achieved by purely statistical properties.
【0004】このエントロピ符号化のうち、算術符号化
は、エライアス符号化として知られている無記憶情報源
に対する理想的符号化方式を、実用可能な形に再編成し
たものと言える。この算術符号化では、符号化すべきシ
ンボル系列を、劣勢シンボル及び優勢シンボルの出現確
率に応じて分割した確率数直線上にマッピングし、その
位置に従って符号化することによって、算術符号を作成
している(「インターフェース′91.12月号」15
4頁〜157頁参照)。Among the entropy codings, the arithmetic coding can be said to be a practical reorganization of an ideal coding method for a memoryless information source known as Elias coding. In this arithmetic coding, a symbol sequence to be coded is mapped on a probability line which is divided according to the appearance probabilities of the inferior symbol and the dominant symbol, and the arithmetic code is created by encoding according to the position. ("Interface '91 .12 February" 15
See pages 4 to 157).
【0005】例えば、図1の算術符号の概念図では、
“1”のシンボルが、出現確率がPの劣勢シンボルとさ
れ、一方、“0”のシンボルは、出現確率が(1−P)
の優勢シンボルとされている。例えば、“0,1,0,
0,1”のシンボル系列を符号化する際には、まず、第
1番目のシンボル“0”に対応して、(1−P)の優勢
シンボルの幅(オージェンド値と称する)A0 が得られ
る。第2番目のシンボル“1”に対応して、(1−P)
Pのオージェンド値A01が得られる。第3番目のシンボ
ル“0”に対応して、(1−P)2 Pのオージェンド値
A010 が得られる。第4番目のシンボル“0”に対応し
て、(1−P)3 Pのオージェンド値A0100が得られ
る。第5番目のシンボル“1”に対応して、(1−P)
3 P2 のオージェンド値A01001 が得られる。第6番目
のシンボル“1”に対応して、“(1−P)3 P3 ”の
オージェンド値A010011が得られる。For example, in the conceptual diagram of the arithmetic code of FIG.
The symbol of "1" is regarded as the inferior symbol having the appearance probability of P, while the symbol of "0" has the appearance probability of (1-P).
Is considered to be the dominant symbol of. For example, "0, 1, 0,
When encoding a 0,1 "symbol sequence, first, the width (referred to as the augend value) A0 of the dominant symbol of (1-P) is obtained corresponding to the first symbol" 0 ". Corresponding to the second symbol "1", (1-P)
An augend value A01 of P is obtained. Corresponding to the third symbol "0", (1-P ) 2 P of augend value A010 is obtained. Corresponding to the fourth symbol "0", (1-P ) 3 P of augend value A0100 is obtained. (1-P) corresponding to the fifth symbol "1"
An augend value A01001 of 3 P 2 is obtained. In response to the sixth symbol "1", augend value A010011 in "(1-P) 3 P 3" is obtained.
【0006】これらのオージェンド値は、図1に示され
るような確率数直線上での符号の範囲に対応しており、
図1の一点鎖線Cで示されるものは、その確率数直線上
での符号の位置(コードと称する)である。このコード
に応じて、一般に2進小数値で表現されるものが、算術
符号の符号化された結果となる。These augend values correspond to the range of codes on the probability line as shown in FIG.
What is indicated by the one-dot chain line C in FIG. 1 is the position of the code (referred to as a code) on the probability line. What is generally represented by a binary decimal value according to this code is the result of encoding the arithmetic code.
【0007】このような算術符号化を行う符号化処理、
あるいは、算術符号化されたものを復号する復号化処理
に際しては、一般に、前記のような確率数直線上での符
号の範囲を示すオージェンド値を記憶するオージェンド
レジスタと、同じく確率数直線上での符号の位置を示す
コード値を記憶するコードレジスタを用いた処理を繰り
返す、ループ処理となっている。A coding process for performing such arithmetic coding,
Alternatively, in the decoding process for decoding the arithmetically encoded one, in general, on the probability number line and the augend register that stores the augend value indicating the range of the code on the probability number line as described above. Is a loop process in which the process using the code register that stores the code value indicating the position of the code is repeated.
【0008】更に、算術符号では、符号を数値と見做
し、加算によって逐次的に符号を作成していくため、桁
上がりが生じて、既に決定した上位ビットに影響を及ぼ
す場合がある。この桁上がりによるビット反転波及の範
囲を所定範囲内に抑えるために、ビット・スタッフィン
グ法が用いられている。Further, in the arithmetic code, since the code is regarded as a numerical value and the code is sequentially created by addition, carry may occur, which may affect the already-determined upper bits. A bit stuffing method is used in order to suppress the range of bit inversion due to this carry within a predetermined range.
【0009】これは、図2に示すように、例えばVビッ
トのコードレジスタCの上位にWビットの監視レジスタ
Pを用意しておき、この監視レジスタPの内容が全て1
になったら、監視レジスタPとコードレジスタCの間に
1ビットの“0”を挿入するというものである。このよ
うにして、例えば監視レジスタPが全て“1”のとき
に、コードレジスタCで桁上がりが起こっても、挿入ビ
ットが反転して“1”になるだけであり、それより上位
のビットは影響を受けることなく、出力される。As shown in FIG. 2, for example, a W-bit monitoring register P is prepared above the V-bit code register C, and the contents of the monitoring register P are all 1's.
Then, one bit "0" is inserted between the monitoring register P and the code register C. In this way, for example, when all of the monitoring registers P are "1", even if a carry occurs in the code register C, the inserted bit is only inverted and becomes "1", and the higher bits are higher than that. It is output without being affected.
【0010】算術符号の復号化は、具体的には、次のよ
うにして行われる。 (1)直前の画素を含む復号済みの何画素かを、任意の
形に並べて、ビットレスと見做して整数化し、現在の文
脈CXを得る。 (2)この文脈CXから状態STを得る。 (3)この状態STから確率(劣勢分割幅LSZ)等を
求める。 (4)確率に従って、オージェンドを分割し、コード値
と比較して復号する。 (5)必要に応じて、文脈CXに対応する状態STを更
新する。 (6)以上を繰り返す。Decoding of the arithmetic code is specifically performed as follows. (1) A number of decoded pixels including the immediately preceding pixel are arranged in an arbitrary form and are regarded as bitless to be an integer, and the current context CX is obtained. (2) Obtain the state ST from this context CX. (3) Probability (inferior division width LSZ) and the like are obtained from this state ST. (4) The augend is divided according to the probability, compared with the code value, and decoded. (5) Update the state ST corresponding to the context CX as necessary. (6) Repeat the above.
【0011】以下、図3に示されるようなレジスタ構造
を有する例について、上記手順を実施するための、IS
O/IEC DIS 11544(CCITT Re
c,T.82(1993E)P41〜P46参照)によ
る復号化処理の具体的なアルゴリズムを説明する。ここ
で、コードレジスタの例えば上位16ビットを保持する
Chighレジスタと、コードレジスタの例えば下位1
6ビットを保持するClowレジスタは、1つの32ビ
ットのコードレジスタと考えることができ、コード値C
の正規化(リノーマライズ)によって、Clowレジス
タの第15ビット(図の左端)からの新データのビット
が、Chighレジスタの第0ビット(右端)にシフト
される。しかしながら、復号化のための比較は、Chi
ghレジスタのみを用いて行われる。Clowレジスタ
は、“b”が記入された上位8ビットのみが使用され
る、繰り上がり対処用のレジスタであり、新しいデータ
は、Clowレジスタの“b”ビットに同時に1バイト
ずつ格納される。“a”が記入されたビットは、現在の
オージェンド値を示すビットであり、“x”が記入され
たビットは、コード値を表わすビットである。オージェ
ンドレジスタAの17番目のビットは、概念的に存在し
ているが、16ビットの処理が必要な場合には、取り除
くことができる。In the following, for an example having a register structure as shown in FIG.
O / IEC DIS 11544 (CCITT Re
c, T .; 82 (see 1993E) P41 to P46), a specific algorithm of the decoding process will be described. Here, for example, a High register that holds the upper 16 bits of the code register and a lower 1 of the code register
The Clow register that holds 6 bits can be considered as one 32-bit code register, and the code value C
By the normalization (renormalization) of, the bit of the new data from the 15th bit (left end of the figure) of the Clow register is shifted to the 0th bit (right end) of the Chigh register. However, the comparison for decoding is Chi
This is done using only the gh register. The Clow register is a register for handling carry, in which only the upper 8 bits in which “b” is written are used, and new data is stored in the “b” bit of the Clow register one byte at a time. The bit with "a" is a bit indicating the current augend value, and the bit with "x" is a bit indicating a code value. The 17th bit of the augend register A is conceptually present, but can be removed if 16-bit processing is required.
【0012】復号化処理に際しては、図4に示す流れ図
のように、まず、初期化ルーチンを呼び出し(ステップ
100)、初期化を行う。In the decoding process, as shown in the flow chart of FIG. 4, first, an initialization routine is called (step 100) to perform initialization.
【0013】この初期化ルーチンのアルゴリズムは、例
えば図5に示す如くである。この初期化ルーチンにおい
ては、まず、画像の最初のストライプ又は強制リセット
であるか否かが判定され(ステップ200)、画像の最
初のストライプ又は強制リセットである場合には、全て
の可能な文脈CXの値(例えば12ビット)に対応する
確率評価状態STの値(例えば7ビット)及び現在の優
勢シンボルMPSの値(例えば1ビット)を“0”にセ
ットする(ステップ202)。一方、画像の最初のスト
ライプ又は強制リセットでない場合には、全ての可能な
CXの値に対して、STとMPXの値を、先行ストライ
プの終わりの値にセットする(ステップ204)。The algorithm of this initialization routine is as shown in FIG. 5, for example. In this initialization routine, it is first determined whether it is the first stripe or forced reset of the image (step 200), and if it is the first stripe or forced reset of the image, all possible context CX. The value of the probability evaluation state ST (for example, 7 bits) corresponding to the value of (for example, 12 bits) and the value of the current dominant symbol MPS (for example, 1 bit) are set to "0" (step 202). On the other hand, if it is not the first stripe of the image or a forced reset, then ST and MPX values are set to the values of the end of the preceding stripe for all possible CX values (step 204).
【0014】ステップ202又は204終了後、まず、
コードレジスタCの値を“0”として、後出の符号バイ
ト入力(BYTE IN)ルーチン(図6参照)を呼び
出し、符号入力処理を行う。次いで、コードレジスタC
の値を、最下位ビットLSB側から最上位ビットMSB
側へ左に8ビットシフトし、再び符号バイト入力ルーチ
ンを呼び出して、次のバイトの符号入力処理を行う。更
に、コードレジスタCの値を左に8ビットシフトし、再
び符号バイト入力ルーチンを呼び出して、更に次のバイ
トの符号入力処理を行う。これにより、3バイトがコー
ドレジスタCに読み込まれる。更にオージェンドレジス
タAに“0x10000”(16進数)をセットして、
この初期化ルーチンを抜ける。After completion of step 202 or 204, first,
The value of the code register C is set to "0", and the code byte input (BYTE IN) routine (see FIG. 6) described later is called to perform the code input process. Then code register C
Value from the least significant bit LSB side to the most significant bit MSB
After shifting to the left by 8 bits, the code byte input routine is called again to perform the code input processing of the next byte. Further, the value of the code register C is shifted to the left by 8 bits, the code byte input routine is called again, and the code input process of the next byte is performed. As a result, 3 bytes are read into the code register C. Furthermore, set "0x10000" (hexadecimal number) in the augend register A,
Exit this initialization routine.
【0015】前記初期化ルーチンのステップ206等で
実行される符号バイト入力ルーチンのアルゴリズムは、
例えば図6に示す如くである。この符号バイト入力ルー
チンにおいては、まず、符号化ビットストリームデータ
SCD(例えば16ビット)から、全てのデータがバイ
ト単位で読み出されるまで(ステップ300)、SCD
から1バイトずつ読み出し、最新のバイトデータを一時
的に保持するためのバッファレジスタBUFFERをこ
れと同じ値にセットする(ステップ302)。SCDか
ら全データを読み出した後は、バッファレジスタBUF
FERを“0”にセットする(ステップ304)。ステ
ップ302又は304終了後、バッファレジスタBUF
FERを8ビット左へシフトして、コードレジスタCに
加えることにより、読み出されたバイトが、コードレジ
スタの下位ビットClowの上位8ビットに挿入され、
カウンタCTが8にリセットされる(ステップ30
6)。The algorithm of the sign byte input routine executed at step 206 of the initialization routine is as follows.
For example, as shown in FIG. In this code byte input routine, first, from the encoded bit stream data SCD (for example, 16 bits) until all data is read in byte units (step 300), SCD
1 byte at a time, and the buffer register BUFFER for temporarily holding the latest byte data is set to the same value (step 302). After reading all the data from the SCD, the buffer register BUF
FER is set to "0" (step 304). After step 302 or 304, the buffer register BUF
By shifting the FER to the left by 8 bits and adding it to the code register C, the read byte is inserted into the upper 8 bits of the lower bit Clow of the code register,
The counter CT is reset to 8 (step 30)
6).
【0016】ここで、CTは、コードレジスタCの下位
ビットClow中の圧縮ビット数の経過(1ビット毎の
シフト回数)を保持しているカウンタであり、CTが
“0”になると、新しいバイトがClowに挿入され
る。Here, CT is a counter that holds the progress of the number of compression bits (the number of shifts per bit) in the lower bit Clow of the code register C. When CT becomes "0", a new byte is stored. Is inserted into Clow.
【0017】初期化ルーチンを抜けた後、図4のステッ
プ102に戻り、符号化ビットストリームデータSCD
を読み出す。次いで、文脈(contex)CXを読み
出し(ステップ104)、該文脈CXに応じた状態ST
の値ST[CX]に基づいて、予め準備された、例えば
図7に示すような、各状態STの値に対応する、劣勢分
割幅LSZの値、次の確率評価状態をそれぞれ与える劣
勢アレイNLPS、優勢アレイNMPSの値、及び優勢
と劣勢を入れ換えるための入換フラグSWTCHの値が
記載された確率評価テーブル(ISO/IEC 115
44:1993(E)のTable24;CCITT
Rec,T.82(1993E)のP33参照)から、
状態ST[CX]を指標として読み出された劣勢分割幅
LSZの値を、そのときのオージェンドレジスタAの値
から引くことによって、オージェンドを分割する(ステ
ップ106)。次いで、分割されたオージェンド値A
と、コード値が格納されたコードレジスタの上位ビット
Chighを比較し(ステップ108)、図8に実線で
示す如く、オージェンド値Aの方がコード値Cを含んで
いる場合には、オージェンド値Aが“0x8000”未
満であるか否かを判定する(ステップ110)。オージ
ェンドレジスタAのMSBが“1”であり、ステップ1
10の判定結果が否である場合には、その時の優勢シン
ボルMPS(1ビット値)を画素Pixに入れる(ステ
ップ112)。一方、オージェンドレジスタAのMSB
が“0”であり、ステップ110の判定結果が正である
場合には、後出MPS入換ルーチン(図9参照)及び正
規化ルーチン(図11参照)を呼び出す(ステップ11
4)。After exiting the initialization routine, the process returns to step 102 of FIG. 4 and the encoded bit stream data SCD is obtained.
Read out. Next, the context CX is read (step 104), and the state ST corresponding to the context CX is read.
Value ST [CX] of the inferiority division width LSZ prepared in advance and corresponding to the value of each state ST, for example, as shown in FIG. 7, and the inferiority array NLPS which gives the next probability evaluation state, respectively. , The value of the superior array NMPS, and the value of the exchange flag SWTCH for exchanging the superiority and the inferiority, the probability evaluation table (ISO / IEC 115
44: 1993 (E) Table 24; CCITT
Rec, T .; 82 (see P33 of 1993E),
The augend is divided by subtracting the value of the inferior division width LSZ read with the state ST [CX] as an index from the value of the augend register A at that time (step 106). Then, the divided augend value A
Is compared with the upper bit Chigh of the code register storing the code value (step 108). If the augend value A includes the code value C as shown by the solid line in FIG. Is less than "0x8000" (step 110). The MSB of Augend register A is "1", and step 1
If the determination result of 10 is negative, the dominant symbol MPS (1 bit value) at that time is put into the pixel Pix (step 112). On the other hand, MSB of Augend Register A
Is “0” and the determination result of step 110 is positive, the later-described MPS replacement routine (see FIG. 9) and the normalization routine (see FIG. 11) are called (step 11).
4).
【0018】一方、前出ステップ108の判定結果が否
であり、図8に破線で示す如く、オージェンド値Aの範
囲にコード値Cが存在しない場合には、後出LPS(劣
勢シンボル)入換ルーチン(図10参照)及び正規化ル
ーチンを呼び出す(ステップ116)。On the other hand, if the result of the determination at step 108 is negative and the code value C does not exist in the range of the augend value A as shown by the broken line in FIG. 8, the latter LPS (inferior symbol) is replaced. The routine (see FIG. 10) and the normalization routine are called (step 116).
【0019】即ち、次の復号化の時に行われるオージェ
ンドレジスタとコードレジスタの桁位置を揃える必要が
あるため、コードレジスタCも、オージェンドレジスタ
Aをシフトしたビット数と同じビット数だけ左側にシフ
トして、正規化(リノーマライズ)を行う。That is, since it is necessary to align the digit positions of the augend register and the code register performed at the time of the next decoding, the code register C also moves to the left by the same number of bits as the number of bits shifted from the augend register A. Shift and perform normalization (renormalization).
【0020】前記ステップ104乃至116の処理を、
全画素について終了するまで行う(ステップ118)。The processes of steps 104 to 116 are
The process is repeated until all pixels are completed (step 118).
【0021】前記復号化処理のステップ114で呼び出
されるMPS入換ルーチンの具体的なアルゴリズムは、
図9に示す如くである。即ち、オージェンド値Aと劣勢
分割幅LSZを比較し、判定結果が否であれば、優勢シ
ンボルMPSの値を画素Pixに入れ、MPSに対応す
る、次の確率評価状態を与える優勢アレイNMPSの値
(例えば7ビット)を状態STに入れて、状態STを更
新する(ステップ402)。一方、ステップ400の判
定結果が正である場合には、優勢シンボルMPSを反転
して、劣勢シンボルLPS(=1−MPS)を画素Pi
xに入れ(ステップ404)、入換フラグSWTCHが
1であるか否か判定する(ステップ406)。ステップ
406の判定結果が正である場合には、優勢シンボルM
PSを反転し(ステップ408)、LPSに対応する、
次の確率評価状態を与える劣勢アレイNLPSの値(例
えば7ビット)を状態STに入れて、状態STを更新す
る(ステップ410)。The specific algorithm of the MPS replacement routine called in step 114 of the decoding process is as follows:
This is as shown in FIG. That is, the augend value A is compared with the inferior division width LSZ, and if the determination result is negative, the value of the superior symbol MPS is put into the pixel Pix, and the value of the superior array NMPS corresponding to MPS and giving the next probability evaluation state. (For example, 7 bits) is put in the state ST, and the state ST is updated (step 402). On the other hand, when the result of the determination in step 400 is positive, the superior symbol MPS is inverted and the inferior symbol LPS (= 1-MPS) is set to the pixel Pi.
It is put into x (step 404) and it is judged whether the exchange flag SWTCH is 1 (step 406). If the determination result of step 406 is positive, the superior symbol M
Invert PS (step 408), corresponding to LPS,
The value of the inferior array NLPS that gives the next probability evaluation state (for example, 7 bits) is put into the state ST, and the state ST is updated (step 410).
【0022】又、前記復号化処理のステップ116で呼
び出されるLPS入換ルーチンの具体的なアルゴリズム
は図8に示す如くである。即ち、オージェンド値Aと劣
勢分割幅LSZが比較され(ステップ500)、判定結
果が正である場合には、そのときのコードレジスタ上位
ビット値Chighからオージェンド値Aを引いたもの
を新たなコードレジスタの上位ビット値Chighとし
てコード値を変えると共に、劣勢分割幅LSZをオージ
ェンド値Aとし(ステップ502)、そのときの優勢シ
ンボルMPSを画素Pixに入れると共に、優勢アレイ
NMPSの値を状態STに入れて状態STを更新する
(ステップ504)。The specific algorithm of the LPS replacement routine called in step 116 of the decoding process is as shown in FIG. That is, the augend value A and the inferior division width LSZ are compared (step 500), and when the determination result is positive, a new code register is obtained by subtracting the augend value A from the code register upper bit value Chigh at that time. The code value is changed as the high-order bit value Chigh, the inferior division width LSZ is set to the augend value A (step 502), and the dominant symbol MPS at that time is put in the pixel Pix and the value of the dominant array NMPS is put in the state ST. The state ST is updated (step 504).
【0023】一方、ステップ500の判定結果が否であ
る場合には、ステップ502と同様の処理(ステップ5
06)を行った後、優勢シンボルMPSを反転した値
(1−MPS)を画素Pixに入れ(ステップ50
8)、入換フラグSWTCHが“1”であるかどうか判
定する(ステップ510)。ステップ510の判定結果
が正である場合には、優勢シンボルMPSの反転を行い
(ステップ512)、劣勢アレイNLPSの値を状態S
Tに入れて状態STを更新する(ステップ514)。On the other hand, if the determination result of step 500 is negative, the same processing as step 502 (step 5
06), the value (1-MPS) obtained by inverting the dominant symbol MPS is put in the pixel Pix (step 50).
8) It is determined whether the replacement flag SWTCH is "1" (step 510). If the determination result of step 510 is positive, the superior symbol MPS is inverted (step 512) and the value of the inferior array NLPS is set to the state S.
The state ST is updated by entering T (step 514).
【0024】前記復号化処理のステップ114及び11
6で呼び出される正規化ルーチンの具体的アルゴリズム
は図11に示す如くである。即ち、コードレジスタCの
下位ビットClow中の圧縮ビット数の経過(1ビット
毎のシフト回数)を保持するためのカウンタCTが
“0”であるか否か判定し(ステップ600)、カウン
タCTの値が“0”である場合には、前記符号バイト入
力ルーチン(図6)を呼び出して、新しいバイトを下位
ビットClowに挿入する(ステップ602)。次い
で、レジスタA及びCの値を1ビットずつ左にシフトす
ると共に、カウンタCTの値を1だけデクリメントし
(ステップ604)、オージェンド値Aが“0x080
00”となるまで、即ち、オージェンドレジスタAのM
SBが“1”となるまで、オージェンドレジスタAの値
とコードレジスタCの値を1ビットずつシフトする(ス
テップ606)。ステップ606の判定結果が否であっ
ても、カウンタCTの値が0でない場合には(ステップ
608)、再び符号バイト入力ルーチンを呼び出す(ス
テップ610)。Steps 114 and 11 of the decoding process
The specific algorithm of the normalization routine called in 6 is as shown in FIG. That is, it is determined whether or not the counter CT for holding the progress of the number of compression bits (the number of shifts per bit) in the lower bit Clow of the code register C is "0" (step 600), and the counter CT If the value is "0", the sign byte input routine (FIG. 6) is called to insert a new byte into the lower bit Clow (step 602). Next, the values of the registers A and C are shifted to the left one bit at a time, the value of the counter CT is decremented by 1 (step 604), and the augend value A becomes "0x080".
00 ”, that is, M of the augend register A
The value of the augend register A and the value of the code register C are shifted bit by bit until SB becomes "1" (step 606). Even if the determination result in step 606 is negative, if the value of the counter CT is not 0 (step 608), the code byte input routine is called again (step 610).
【0025】[0025]
【発明が解決しようとする課題】しかしながら従来は、
中間値BUFFER等もレジスタに入れていたため、レ
ジスタの更新回数が多く、処理速度が低下してしまう。
又、図11に示した如く、正規化ルーチンに、ステップ
606から600に戻る、符号入力に併うループが存在
し、オージェンド値A及びコード値Cを1ビットずつシ
フトしていたため、やはり処理速度が低下する。更に、
文脈CXが、直前に復号化した画素Pixの値に依存す
るため、直前の画素の復号化が終了しないと、次の画素
の復号化を始めることができない等の問題点を有してい
た。However, conventionally,
Since the intermediate value BUFFER and the like are also stored in the register, the number of times the register is updated is large and the processing speed decreases.
Further, as shown in FIG. 11, the normalization routine has a loop for returning to the step 600 from step 606 and accompanying the code input, and the augend value A and the code value C are shifted by 1 bit, so that the processing speed is also changed. Is reduced. Furthermore,
Since the context CX depends on the value of the pixel Pix decoded immediately before, there is a problem that the decoding of the next pixel cannot be started unless the decoding of the immediately preceding pixel is completed.
【0026】本発明は、前記従来の問題点を解消するべ
くなされたもので、処理速度を速めて、高速で復号する
ことが可能な算術符号復号化装置を提供することを目的
とする。The present invention has been made to solve the above-mentioned conventional problems, and an object of the present invention is to provide an arithmetic code decoding device capable of increasing the processing speed and decoding at a high speed.
【0027】[0027]
【問題点を解決するための手段】本発明は、符号化すべ
きシンボル系列を、劣勢シンボル及び優勢シンボルの出
現確率に応じて分割した確率数直線上にマッピングし、
その位置に従って符号化することによって作成された算
術符号を、前記確率数直線上での符号の範囲を示すオー
ジェンド値を記憶するオージェンドレジスタ、及び、同
じく確率数直線上での符号の位置を示すコード値を記憶
するコードレジスタを用いて復号化するための算術符号
復号化装置において、先行するデータから、現在の文脈
を生成する手段と、該文脈を指標として、状態及び現在
の優勢シンボルを決定する手段と、前記状態を指標とし
て、リード・オンリー・メモリに記憶された確率評価テ
ーブルの値を読み出す手段と、該確率評価テーブルから
読み出された確率に従ってオージェンドを分割し、正規
化する場合のシフト量、及び、コード値の更新される可
能性のある値を計算する手段と、分割の結果、コード値
が優劣どちらの領域に含まれ、どちらの領域が大きいか
を判別し、処理を振り分けて、データを生成する手段
と、振り分けられた結果に応じて、予め計算しておいた
前記シフト量を用いてシフトを行い、オージェンドレジ
スタ及びコードレジスタを更新する手段と、必要に応じ
て、ランダム・アクセス・メモリに記憶された状態や現
在の優勢シンボルを更新する手段とを備えることによ
り、前記目的を達成したものである。According to the present invention, a symbol sequence to be coded is mapped on a probability number straight line divided according to the appearance probabilities of the inferior symbol and the dominant symbol,
An arithmetic code created by encoding in accordance with the position, an augend register that stores an augend value indicating a range of the code on the probability line, and a position of the code on the probability line. In an arithmetic code decoding device for decoding using a code register that stores a code value, means for generating a current context from preceding data, and determining a state and a current dominant symbol using the context as an index Means for reading the value of the probability evaluation table stored in the read-only memory using the state as an index, and dividing the augend according to the probability read from the probability evaluation table for normalization. The shift amount and means for calculating the value of the code value that may be updated, and whether the code value is superior or inferior as a result of the division. Included in, determine which area is large, divide the processing, a means for generating data, and perform a shift using the previously calculated shift amount according to the distributed result, The object is achieved by providing means for updating the augend register and code register and, if necessary, means for updating the state stored in the random access memory and the current dominant symbol. .
【0028】更に、実際にシフトした量を、コードレジ
スタの隙間の大きさに加算する手段と、該コードレジス
タの隙間に次の符号を入れてビットスタッフィングを行
う手段とを備え、前記コードレジスタが、コード値に対
応するビット長の上位ビットと、シフト量に対応する有
効ビット長に加えて、前記隙間の最大量を収容可能なビ
ット長の、拡張された下位ビットを含み、該下位ビット
がスタッフィングビットとして使われるようにして、同
じく前記目的を達成したものである。The code register further comprises means for adding the actually shifted amount to the size of the gap of the code register, and means for performing bit stuffing by inserting the following code into the gap of the code register. In addition to the upper bit of the bit length corresponding to the code value and the effective bit length corresponding to the shift amount, an extended lower bit of a bit length capable of accommodating the maximum amount of the gap is included, and the lower bit is It also achieves the above object by being used as a stuffing bit.
【0029】又、同様の算術符号復号化装置において、
先行するデータの内、未確定のデータに依存した、複数
の文脈を生成する手段と、該複数の文脈のそれぞれを指
標として、それぞれに対応する状態及び現在の優勢シン
ボルの候補を生成する手段と、先行するデータが確定し
た段階で、前記候補中から、実際に用いる状態及び現在
の優勢シンボルを決定する手段とを備えることにより、
同じく前記目的を達成したものである。In a similar arithmetic code decoding device,
Means for generating a plurality of contexts depending on undetermined data among preceding data, and means for generating a candidate of a state and a current dominant symbol corresponding to each of the plurality of contexts as an index By providing a means for determining a state to be actually used and a current dominant symbol from among the candidates when the preceding data is determined,
Similarly, the above-mentioned object is achieved.
【0030】[0030]
【作用】本発明は、処理手順を変更し、レジスタの更新
回数を減らすことにより、処理速度を高速化したもので
ある。According to the present invention, the processing speed is increased by changing the processing procedure and reducing the number of register updates.
【0031】これに加えて、コードレジスタの幅を拡大
することにより、符号入力に伴なうループを完全になく
して、処理速度を高速化したものである。In addition to this, the width of the code register is expanded to completely eliminate the loop associated with the code input, thereby increasing the processing speed.
【0032】又、先行する未確定のデータに依存した2
つの文脈を用意して、先読みによる処理の二重化を行
い、先行するデータが確定した段階で1つを選択するよ
うにして、処理速度を高速化したものである。In addition, 2 depending on the previous undetermined data
This is to speed up the processing speed by preparing two contexts, duplicating the processing by prefetching, and selecting one when the preceding data is determined.
【0033】[0033]
【実施例】以下図面を参照して、本発明の実施例を詳細
に説明する。Embodiments of the present invention will now be described in detail with reference to the drawings.
【0034】本実施例における復号化処理は、図12乃
至図14に示す手順に従って実行される。この図12乃
至図14は、図4に示した従来例のステップ102以降
に対応するもので、まず、図12のステップ700乃至
704で、文脈CXを指標としてランダムアクセスメモ
リ(RAM)を参照することにより、状態ST及び優勢
シンボルMPSを生成する。具体的には、文脈CXは直
前の画素の復号値に依存するので、直前の画素が“0”
の場合と“1”の場合を考えて、RAMを2つ使用し、
それぞれの場合の文脈CXを、CX0、CX1(例えば
12ビット)とする(ステップ700)。次いで、文脈
CX0、CX1を用いて、それぞれに対応する状態ST
0、ST1(例えば7ビット)を生成し、STの候補と
する。又、直前のデコードで用いた劣勢アレイNLPS
及び優勢アレイNMPS(例えば7ビット)も状態ST
の候補とする(ステップ702)。更に、状態STと同
様に、文脈CX0、CX1から、それぞれに対応する優
勢シンボルMPS0、MPS1(例えば1ビット)を生
成し、優勢シンボルMPSの候補とする。又、直前のデ
コードに用いた優勢シンボルMPSと、その反転も、M
PSの候補とする(ステップ704)。上記のステップ
700乃至704が、RAMから読み出す手順である。The decoding process in this embodiment is executed according to the procedure shown in FIGS. 12 to 14 correspond to step 102 and subsequent steps of the conventional example shown in FIG. 4. First, in steps 700 to 704 of FIG. 12, a random access memory (RAM) is referenced with context CX as an index. Thus, the state ST and the dominant symbol MPS are generated. Specifically, since the context CX depends on the decoded value of the immediately preceding pixel, the immediately preceding pixel is “0”.
Considering the case of "1" and the case of "1", two RAMs are used,
The context CX in each case is set to CX0 and CX1 (for example, 12 bits) (step 700). Then, using the contexts CX0 and CX1, the corresponding state ST
0 and ST1 (for example, 7 bits) are generated and used as ST candidates. In addition, the poor array NLPS used in the previous decoding
And the dominant array NMPS (eg 7 bits) is also in state ST
(Step 702). Further, similarly to the state ST, the corresponding dominant symbols MPS0 and MPS1 (for example, 1 bit) are generated from the contexts CX0 and CX1 and are set as candidates for the dominant symbol MPS. In addition, the dominant symbol MPS used for the immediately preceding decoding and its inversion are M
It is a candidate for PS (step 704). The above steps 700 to 704 are the procedure for reading from the RAM.
【0035】次いで、ステップ706に進み、後述する
「判別」により、直前の画素値等から、実際に用いる状
態ST及び優勢シンボルMPSを決定する(選択)。Next, in step 706, the state ST and the dominant symbol MPS to be actually used are determined (selected) from the immediately preceding pixel value and the like by "discrimination" described later.
【0036】次いでステップ708に進み、決定された
状態STを指標として、リードオンリーメモリ(RO
M)に予め記憶されている、図7に示したような確率評
価テーブルを参照することにより、劣勢分割幅LSZ、
劣勢アレイNLPS、優勢アレイNMPS、入換フラグ
SWTCHを決定する(ROMの読み出し)。Next, the routine proceeds to step 708, where the read-only memory (RO
By referring to the probability evaluation table previously stored in M) as shown in FIG. 7, the inferior division width LSZ,
The inferior array NLPS, the superior array NMPS, and the replacement flag SWTCH are determined (reading of ROM).
【0037】次いで図13のステップ710に進み、劣
勢分割幅LSZをレジスタp(例えば15ビット)に入
れ、そのときのオージェンド値Aから劣勢分割幅LSZ
を引いた値をレジスタq(例えば16ビット)に入れる
ことにより、オージェンドを分割する。次いでステップ
712に進み、レジスタpを正規化するべく、pを“0
x8000”以上とするためのシフト量ps(例えば4
ビット)と、レジスタqを正規化するべく、qを“0x
8000”以上とするためのシフト量qs(例えば4ビ
ット)を求めると共に、コード値Cからqを引くことに
よって、スタッフィングビットが30ビットに拡張され
たコードレジスタC(例えば46ビット)の更新される
可能性のある値C′(例えば46ビット)を計算する
(分割など)。Next, in step 710 of FIG. 13, the inferior division width LSZ is stored in the register p (for example, 15 bits), and the inferior division width LSZ is calculated from the augend value A at that time.
The augend is divided by putting a value obtained by subtracting into the register q (for example, 16 bits). Next, in step 712, p is set to "0" in order to normalize the register p.
x8000 "or more shift amount ps (for example, 4
Bit) and q to “0x to normalize register q
The stuffing bit is updated to 30 bits in the code register C (for example, 46 bits) by obtaining the shift amount qs (for example, 4 bits) for making 8000 ″ or more and subtracting q from the code value C. Calculate possible values C '(eg 46 bits) (division etc.).
【0038】次いでステップ714乃至718で、コー
ド値Chighが、劣勢領域pと優勢領域qのどちらの
領域に含まれるのか、更に、劣勢領域pと優勢領域qの
どちらが大きいのかに応じて、4通りの処理に振り分け
られる。Next, in steps 714 to 718, four values are selected depending on whether the code value Chigh is included in the inferior region p or the superior region q, and which of the inferior region p and the superior region q is larger. It is allotted to the processing of.
【0039】又、この時点で、例えば図15及び図16
に示すような関係を用いて、次の画素を復号化するとき
に用いる選択信号を生成する。図13及び図14におい
て、Xは、“0”、“1”のどちらでもかまわないドン
ト・ケア(Don´t care )状態である。At this point, for example, FIGS.
A selection signal used when decoding the next pixel is generated by using the relationship shown in FIG. In FIGS. 13 and 14, X is a don't care state that may be either “0” or “1”.
【0040】ステップ714及び716の判定結果がい
ずれも正であるとき、即ち、図17に実線で示す如く、
Chigh(=C)が優勢領域qに含まれ、且つ、優勢
領域qが劣勢領域pより小さいときには、ステップ72
0に進み、そのときの劣勢シンボルLPSを画素Pix
とする。次いでステップ722で、レジスタqを予め計
算しておいたシフト量qsだけまとめて左にシフトし
て、オージェンド値Aとし、コード値C(=Chig
h)をシフト量qsだけまとめて左にシフトして、新し
いコード値Cとする(シフト及びレジスタの更新)。When the determination results of steps 714 and 716 are both positive, that is, as shown by the solid line in FIG.
If Chigh (= C) is included in the dominant region q and the dominant region q is smaller than the inferior region p, step 72
0, and the inferior symbol LPS at that time is set to the pixel Pix.
And Next, at step 722, the register q is collectively shifted to the left by the previously calculated shift amount qs to obtain the augend value A, and the code value C (= Chig
h) are collectively shifted by the shift amount qs to the left to obtain a new code value C (shift and update of register).
【0041】次いでステップ724に進み、入換フラグ
SWTCHがセットされていれば、ステップ726で優
勢シンボルMPSを反転し、ステップ728で劣勢アレ
イNLPSを状態STとする(RAMの更新)。Next, in step 724, if the replacement flag SWTCH is set, the dominant symbol MPS is inverted in step 726, and the inferior array NLPS is set to the state ST (update of RAM) in step 728.
【0042】一方、ステップ714の判定結果が正で、
ステップ716の判定結果が否である場合、即ち、図1
8に実線で示す如く、コード値Cが優勢領域qに含ま
れ、優勢領域qが劣勢領域pより小さくないときには、
ステップ730に進み、そのときの優勢シンボルMPS
の値を画素Pixに入れる。次いでステップ732に進
み、ステップ722と同様にシフト量qsだけまとめた
シフトを行って、オージェンドレジスタ及びコードレジ
スタを更新する(シフト及びレジスタの更新)。On the other hand, if the determination result of step 714 is positive,
When the determination result of step 716 is negative, that is, in FIG.
As indicated by the solid line in 8, when the code value C is included in the dominant region q and the dominant region q is not smaller than the inferior region p,
Proceed to step 730, and the dominant symbol MPS at that time
The value of is put into the pixel Pix. Next, in step 732, similar to step 722, the shift amount qs is combined and updated, and the augend register and the code register are updated (shift and register update).
【0043】次いでステップ734に進み、qを正規化
するためのシフト量qsが“0”でない場合には、ステ
ップ736で優勢アレイNMPSを状態STに入れる
(RAMの更新)。Next, in step 734, if the shift amount qs for normalizing q is not "0", the dominant array NMPS is put in the state ST in step 736 (RAM update).
【0044】又、前述ステップ714の判定結果が否
で、ステップ718の判定結果が正である場合、即ち、
図17に破線で示す如く、コード値Cが優勢領域qに含
まれず、且つ、優勢領域qが劣勢領域pより小さいとき
には、ステップ740に進み、ステップ730と同様
に、そのときの優勢シンボルMPSの値を画素Pixに
入れ、ステップ742で、レジスタpを予め計算してお
いたシフト量psだけまとめて左にシフトしたものを新
しいオージェンド値Aとし、ステップ712で求めてお
いたコード値の候補C′を、シフト量qsだけまとめて
左にシフトしたものを新しいコード値Cとして、レジス
タを更新する(シフト及びレジスタの更新)。If the determination result of step 714 is negative and the determination result of step 718 is positive, that is,
As shown by the broken line in FIG. 17, when the code value C is not included in the dominant region q and the dominant region q is smaller than the inferior region p, the process proceeds to step 740, and similarly to step 730, the dominant symbol MPS at that time is selected. A value is put in the pixel Pix, and in step 742, the register p is collectively shifted by the pre-calculated shift amount ps to the left and is set as a new augend value A, and the code value candidate C obtained in step 712 is obtained. ′ ′ Is shifted to the left by a shift amount qs, and the new code value C is used to update the register (shift and update of register).
【0045】次いでステップ744に進み、そのときの
優勢アレイNMPSの値を状態STに入れる(RAMの
更新)。Next, in step 744, the value of the dominant array NMPS at that time is put in the state ST (update of RAM).
【0046】又、前記ステップ714及び718の判定
結果がいずれも否である場合、即ち、図18に破線で示
す如く、コード値Cが優勢領域qに含まれず、且つ、優
勢領域qが劣勢領域pより小さくないときには、ステッ
プ750に進み、そのときの劣勢シンボルLPSを画素
Pixに入れ、ステップ752で、レジスタpをシフト
量psだけまとめて左にシフトしたものを新しいオージ
ェンド値Aとし、コード値の候補C′をシフト量qsだ
けまとめて左にシフトしたものを新しいコード値Cとし
て、レジスタを更新する(シフト及びレジスタの更
新)。If the determination results of steps 714 and 718 are negative, that is, as shown by the broken line in FIG. 18, the code value C is not included in the dominant region q, and the dominant region q is the inferior region. If it is not smaller than p, the process proceeds to step 750, the inferior symbol LPS at that time is put into the pixel Pix, and in step 752, the registers p are collectively shifted by the shift amount ps to the left and set as a new augend value A, and the code value The candidate C ′ of (1) is collectively shifted by the shift amount qs and shifted to the left as a new code value C, and the register is updated (shift and update of register).
【0047】次いでステップ754に進み、入換フラグ
SWTCHが“1”であれば、ステップ756で、優勢
シンボルMPSを反転し、ステップ758で、そのとき
の劣勢アレイNLPSの値を状態STに入れる(RAM
の更新)。Next, in step 754, if the replacement flag SWTCH is "1", the dominant symbol MPS is inverted in step 756, and the value of the inferior array NLPS at that time is entered in the state ST in step 758 ( RAM
Update).
【0048】次いで図14のステップ760乃至768
で、符号のバイト単位での入力及び正規化を行う(符号
バイト入力:BYTE IN)。具体的には、ステップ
760で、シフト量ps及びqsのうち、実際にシフト
に用いた量をS(例えば4ビット)とし、ステップ76
2で、シフトによってコードレジスタに生じた隙間の大
きさを保持しているカウンタCS(例えば5ビット)を
Sだけ加算する。このカウンタCSは、従来のカウンタ
CTに相当する。Then, steps 760 to 768 of FIG.
Then, the code is input and normalized in byte units (code byte input: BYTE IN). Specifically, in step 760, of the shift amounts ps and qs, the amount actually used for the shift is set to S (for example, 4 bits), and step 76
At 2, the counter CS (for example, 5 bits) holding the size of the gap created in the code register by the shift is incremented by S. This counter CS corresponds to the conventional counter CT.
【0049】次いでステップ764に進み、この隙間の
大きさCSが16以上になったときは、ステップ766
で、コード値Cに、次の符号化データSCD(例えば1
6ビット)を(CS−16)だけ左にまとめてシフトし
たものを加えると共に、入力分に対応させてカウンタC
Sを“16”だけ減算したものを新しいCSとして、ス
テップ768で、新しい符号化データSCDを読み込ん
で、次のデータの処理に移行する。Then, the procedure proceeds to step 764, and when the size CS of this gap becomes 16 or more, step 766.
Then, in the code value C, the next encoded data SCD (for example, 1
(6 bits) are added together by shifting (CS-16) to the left, and a counter C corresponding to the input is added.
A new CS obtained by subtracting S by “16” is read in as a new encoded data SCD in step 768, and the process proceeds to the next data.
【0050】本実施例におけるコードレジスタCは、図
19に示す如く、従来と同様の、コード値を格納する上
位16ビットChighと、図3に示したような従来例
においては16ビットにすぎなかったスタッフィングビ
ットを30ビットに拡張したClowの合計46ビット
とされている。このようにスタッフィングビットを15
ビット×2=30ビットとすることにより、上記処理手
順と合せて、処理の簡略化を図ることができる。As shown in FIG. 19, the code register C in this embodiment has only the upper 16 bits Chigh for storing a code value as in the conventional case and only 16 bits in the conventional example as shown in FIG. The stuffing bit is expanded to 30 bits, and the total of Clow is 46 bits. 15 stuffing bits like this
By setting bits × 2 = 30 bits, the processing can be simplified together with the above processing procedure.
【0051】即ち、正規化に従って、コードレジスタ
が、例えば実際のシフト量S=5、S=6、S=7の順
で、シフトしたとすると、図19中にVで示した有効な
ビットの隙間に“0”が入っていく。今、初期値とし
て、隙間カウンタCS=0、即ち隙間がないとすると、
まず5ビットシフトするので、隙間が5ビットになり、
次に6ビットシフトするので、隙間が5+6=11ビッ
トになり、更に、7ビットシフトするので、隙間が11
+7=18ビットとなる。この3回目のシフトによっ
て、隙間が16ビット以上になるので、ここに次の符号
データSCDを入れ、ビットスタッフィングを行う。That is, if the code register shifts in the order of, for example, the actual shift amounts S = 5, S = 6, and S = 7 according to the normalization, the effective bits of V shown in FIG. "0" enters the gap. Now, as an initial value, if the gap counter CS = 0, that is, if there is no gap,
First, it shifts 5 bits, so the gap becomes 5 bits,
Next, 6 bits are shifted, so the gap becomes 5 + 6 = 11 bits, and further 7 bits are shifted, so the gap becomes 11
+ 7 = 18 bits. Since the gap becomes 16 bits or more by this third shift, the next code data SCD is put in the gap and bit stuffing is performed.
【0052】ここで、Clowを30ビットとしている
のは、次の理由による。即ち、Clowのビット長を
W、隙間をCSとすると、Clow中の有効ビット長L
は、 L=W−CS で表わされる。The reason why Clow is set to 30 bits is as follows. That is, if the bit length of Clow is W and the gap is CS, the effective bit length L in Clow is L.
Is represented by L = W-CS.
【0053】一方、シフト量Sは最大15なので、有効
ビット長Lは15以上でなければならない。又、隙間C
Sは最大15なので、Lが15以上という条件を満足す
るためには、図20に示す如く、W(=L+CS)が3
0以上でなければならない。図20は、CS=15、即
ち隙間が最大で、有効ビットが最小となった状態を示し
たものである。On the other hand, since the maximum shift amount S is 15, the effective bit length L must be 15 or more. Also, the gap C
Since S is 15 at the maximum, in order to satisfy the condition that L is 15 or more, W (= L + CS) is 3 as shown in FIG.
Must be 0 or greater. FIG. 20 shows a state in which CS = 15, that is, the gap is maximum and the effective bit is minimum.
【0054】本実施例における処理のタイムチャートを
図21に示す。画素nを復号する場合、まずRAMの読
み出し(図12のステップ700〜704に相当)を行
う。この時点では、直前の画素n−1の復号は終了して
いないので、文脈CXは一意に決まらない。そこで、R
AMを2つ用いて、画素n−1が0の場合と、1の場合
のどちらにも対応できるようにする。FIG. 21 shows a time chart of the processing in this embodiment. When the pixel n is decoded, the RAM is read out first (corresponding to steps 700 to 704 in FIG. 12). At this point, since the decoding of the immediately preceding pixel n-1 has not been completed, the context CX cannot be uniquely determined. So R
Two AMs are used so that both the case where the pixel n-1 is 0 and the case where the pixel n-1 is 1 can be dealt with.
【0055】画素nのRAMの読み出しが終了した時点
では、直前の画素n−1の判別(図13のステップ71
4〜718に相当)が終わっており、画素n−1が0か
1に決まっている。そこで、画素n−1の値に従って、
RAMの読み出し結果から、適当な状態を選択(図12
のステップ706に相当)する。この選択結果に従っ
て、ROMの読み出し(図12のステップ708に相
当)を行う。このROMの読み出しには2クロックかか
り、確率(劣勢分割幅LSZ)等が得られる。得られた
確率やレジスタ値を基に、画素nの分割(図13のステ
ップ710〜712に相当)等を行う。分割結果を基に
判別(画素生成を含む)を行う(図13のステップ71
4〜720、730、740、750に相当)。At the time when the reading of the RAM of the pixel n is completed, the immediately preceding pixel n-1 is determined (step 71 in FIG. 13).
(Corresponding to 4 to 718) is finished, and the pixel n-1 is determined to be 0 or 1. Then, according to the value of the pixel n-1,
Select an appropriate state from the RAM read results (Fig. 12
Corresponding to step 706). According to this selection result, the ROM is read (corresponding to step 708 in FIG. 12). It takes 2 clocks to read this ROM, and the probability (recessive division width LSZ) and the like can be obtained. The pixel n is divided (corresponding to steps 710 to 712 in FIG. 13) based on the obtained probability and register value. Discrimination (including pixel generation) is performed based on the division result (step 71 in FIG. 13).
4 to 720, 730, 740, 750).
【0056】次いで、レジスタ更新のため、シフト処理
(図13のステップ722、732、742、752に
相当)を行い、必要であれば、RAMの更新(図13の
ステップ724〜728、734〜736、744、7
54〜758)を行い、レジスタを更新する。Next, a shift process (corresponding to steps 722, 732, 742, and 752 in FIG. 13) is performed to update the register, and RAM is updated (steps 724 to 728 and 734 to 736 in FIG. 13) if necessary. , 744, 7
54 to 758) to update the register.
【0057】更に、必要であれば符号バイト入力(BY
TE IN:図14のステップ760〜768に相当)
を行う。Further, if necessary, a code byte input (BY
TE IN: Corresponding to steps 760 to 768 in FIG. 14)
I do.
【0058】本実施例では、コードレジスタの下位ビッ
ト(スタッフィングビット)が30ビットに拡張されて
いるので、16ビット単位で迅速に処理を行うことがで
きる。これに対して従来は8ビット単位で時間がかかっ
ていた。In this embodiment, since the lower bit (stuffing bit) of the code register is expanded to 30 bits, it is possible to rapidly perform processing in units of 16 bits. On the other hand, conventionally, it took time in units of 8 bits.
【0059】本実施例においては、図21に示す如く、
直前の画素n−1の判別が終了して画素が生成される前
にRAMの読み出しを先行して行っているので、処理速
度を高速化することができる。これに対して従来は、直
前の画素の符号バイト入力(コードレジスタCへの書き
込み)が終了した時点で、初めて次の画素のRAMの読
み出しを開始していたため、図21の例では5クロック
分、余計に時間がかかっていたものである。In this embodiment, as shown in FIG.
Since the RAM is read out before the immediately preceding pixel n-1 is determined and a pixel is generated, the processing speed can be increased. On the other hand, conventionally, when the code byte input (writing to the code register C) of the immediately preceding pixel is completed, the RAM reading of the next pixel is started for the first time. Therefore, in the example of FIG. , It took extra time.
【0060】図22は、本発明を用いた装置の実施例の
構成を示す。FIG. 22 shows the construction of an embodiment of the apparatus using the present invention.
【0061】本実施例は、減算、比較、シフト、レジス
タ処理等を行う演算処理部10と、2つのRAMを持
ち、先行する画素値が“0”又は“1”のいずれの場合
にも対応できるように、2つの状態ST0、ST1及び
優勢シンボルMPS0、MPS1を生成する状態発生部
60と、先行する画素に従って生成される選択信号に応
じて、正しい状態ST及び優勢シンボルMPSを選択す
るマルチプレクサ70と、確率評価テーブルが収納され
たROMを用いて、確率等を生成する確率推定部80と
から構成されている。This embodiment has an arithmetic processing unit 10 for performing subtraction, comparison, shift, register processing, etc., and two RAMs, and corresponds to the case where the preceding pixel value is "0" or "1". As possible, the state generator 60 that generates the two states ST0 and ST1 and the dominant symbols MPS0 and MPS1 and the multiplexer 70 that selects the correct state ST and the dominant symbol MPS according to the selection signal generated according to the preceding pixel. And a probability estimation unit 80 that generates a probability and the like using a ROM that stores a probability evaluation table.
【0062】前記演算処理部10は、具体的には、図2
3に示す如く、オージェンド値A及び劣勢分割幅LSZ
を一時的に保持するラッチ12、14と、該ラッチ1
2、14を介して入力されるAからLSZを引くことに
よって、図13のステップ710に相当する分割処理を
行い、p及びqを出力する減算回路16と、該減算回路
16から出力されるp及びqの値をそれぞれ一時的に保
持するラッチ18、20と、該ラッチ18、20から出
力されるp、qの値に応じて、シフト量ps、qsを計
算するシフト量計算回路22と、コードレジスタの上位
16ビットに格納されたコード値Cからqの値を引くこ
とによって、コード値の候補C′を計算する減算回路2
4と、前記コード値C及びラッチ18、20に保持され
たp、qの値に応じて、図13のステップ714〜71
8に相当する判別処理を行い、画素や選択信号等を生成
する判別回路26と、該判別回路26の判別結果に従っ
て、前記シフト量計算回路22、ラッチ18、20、減
算回路24の出力をそれぞれ選択するマルチプレクサ2
8、30、32と、該マルチプレクサ28、30、3
2、前記判別回路26の出力を一時的に保持するラッチ
34、36、38、40と、前記ラッチ36から入力さ
れるp又はqの値に対して、ラッチ34から入力される
シフト量ps又はqsだけシフトするためのシフト回路
42と、前記ラッチ38から入力されるコード値C又は
その候補C′に対してqsのシフトを行うシフト回路4
4と、前記ラッチ34から入力されるシフト量に応じ
て、図19の隙間カウンタCSの処理を行い、符号をバ
イト入力するか否か判定するコードレジスタ制御回路4
6と、前記シフト回路42、44の出力をそれぞれラッ
チするラッチ48、50と、該ラッチ48の出力により
内容が更新されるオージェンドレジスタ52と、前記コ
ードレジスタ制御回路46の出力に応じて、符号化デー
タSCDを入力し、ファーストイン・ファーストアウト
(FIFO)メモリに保存するメモリ54と、前記コー
ドレジスタ制御回路46からの制御信号により、必要に
応じて、前記メモリ54の出力により内容が更新される
コードレジスタ56とから構成されている。The arithmetic processing unit 10 is specifically shown in FIG.
As shown in 3, the augend value A and the inferior division width LSZ
Latches 12 and 14 for temporarily holding the
By subtracting LSZ from A input via 2 and 14, division processing corresponding to step 710 in FIG. 13 is performed, and a subtraction circuit 16 that outputs p and q, and p output from the subtraction circuit 16 are performed. Latches 18 and 20 that temporarily hold the values of q and q, respectively, and a shift amount calculation circuit 22 that calculates shift amounts ps and qs according to the values of p and q output from the latches 18 and 20, respectively. A subtraction circuit 2 for calculating a code value candidate C ′ by subtracting the value of q from the code value C stored in the upper 16 bits of the code register.
4 and the values of p and q held in the code value C and the latches 18 and 20, and steps 714 to 71 of FIG.
The discrimination circuit 26 for performing discrimination processing corresponding to 8 to generate a pixel, a selection signal, etc., and the outputs of the shift amount calculation circuit 22, the latches 18, 20, and the subtraction circuit 24 according to the discrimination result of the discrimination circuit 26, respectively. Multiplexer 2 to select
8, 30, 32 and the multiplexers 28, 30, 3
2. Latches 34, 36, 38, 40 for temporarily holding the output of the discriminating circuit 26, and the shift amount ps input from the latch 34 with respect to the value of p or q input from the latch 36. A shift circuit 42 for shifting by qs and a shift circuit 4 for shifting qs with respect to the code value C or its candidate C'input from the latch 38.
4 and the shift amount input from the latch 34, the code register control circuit 4 for performing the processing of the clearance counter CS of FIG.
6, latches 48 and 50 for latching the outputs of the shift circuits 42 and 44, an augend register 52 whose contents are updated by the output of the latch 48, and an output of the code register control circuit 46. The contents are updated by the output of the memory 54, if necessary, by the memory 54 for inputting the encoded data SCD and storing it in the first-in first-out (FIFO) memory and the control signal from the code register control circuit 46. And a code register 56 to be used.
【0063】前記シフト量計算回路22としては、例え
ばプライオリティエンコーダを有効に用いることができ
る。即ち、シフト量は、「何ビット左(MSBの方向)
にシフトすれば“0x8000”以上になるか?」を意
味する。又、“0x8000”以上とは、MSBが
“1”であることを意味する。従って、シフト量の計算
は、「MSBから数えて、何ビット目に“1”があるの
か?」という問題に帰着する。この問題は、図24に示
すような論理を持つプライオリティエンコーダで解決で
きる。例えば、入力の第15ビットが“1”であれば、
他の入力にかかわらず、“0”が出力される。又、例え
ば、第15ビット〜第13ビットが“0”で、第12ビ
ットが“1”であれば、同様に“3”が出力され、どち
らの場合も、シフト量を得ることができる。As the shift amount calculation circuit 22, for example, a priority encoder can be effectively used. That is, the shift amount is "how many bits left (MSB direction)
Shifting to will result in more than "0x8000"? Means. Further, "0x8000" or more means that the MSB is "1". Therefore, the calculation of the shift amount results in the problem of "what bit, when counted from the MSB, has" 1 "?". This problem can be solved by a priority encoder having a logic as shown in FIG. For example, if the 15th bit of the input is "1",
"0" is output regardless of other inputs. Further, for example, if the fifteenth bit to the thirteenth bit are "0" and the twelfth bit is "1", "3" is similarly output, and the shift amount can be obtained in both cases.
【0064】本実施例においては、レジスタの更新回数
が少ない処理手順、スタッフィングビットが拡張された
コードレジスタ、及び未確定画素の先読みによる処理の
二重化を行っているので、処理速度が非常に高速化する
ことができる。なお、これらの処理を組合せることな
く、単独で用いることも可能である。In the present embodiment, since the processing procedure in which the number of register updates is small, the code register in which the stuffing bit is extended, and the processing by the pre-reading of undetermined pixels are duplicated, the processing speed is extremely high. can do. Note that it is also possible to use these processes independently without combining them.
【0065】[0065]
【発明の効果】以上説明したとおり、本発明によれば、
処理速度を高速化して高速で復号することができ、従来
に比べて、数倍から数十倍の高速化を達成することがで
きる。As described above, according to the present invention,
The processing speed can be increased and decoding can be performed at high speed, and the speed can be increased several times to several tens of times faster than the conventional one.
【図1】算術符号における確率数直線の例を示す線図FIG. 1 is a diagram showing an example of a probability line in arithmetic code.
【図2】ビットスタッフィングの原理を説明する線図FIG. 2 is a diagram explaining the principle of bit stuffing.
【図3】従来の復号用レジスタの構成の例を示す線図FIG. 3 is a diagram showing an example of a configuration of a conventional decoding register.
【図4】従来の復号化処理の基本的な手順を示す流れ図FIG. 4 is a flowchart showing a basic procedure of a conventional decoding process.
【図5】同じく初期化ルーチンの例を示す流れ図FIG. 5 is a flowchart showing an example of an initialization routine.
【図6】同じく符号バイト入力ルーチンの例を示す流れ
図FIG. 6 is a flow chart showing an example of a code byte input routine.
【図7】同じく確率評価テーブルの例を示す線図FIG. 7 is a diagram showing an example of a probability evaluation table.
【図8】同じくオージェンドとコード値の関係の例を示
す線図FIG. 8 is a diagram showing an example of the relationship between the augend and the code value.
【図9】同じく優勢シンボル(MPS)入換ルーチンの
例を示す流れ図FIG. 9 is a flowchart showing an example of a dominant symbol (MPS) replacement routine.
【図10】同じく劣勢シンボル(LPS)入換ルーチン
の例を示す流れ図FIG. 10 is a flow chart showing an example of an inferior symbol (LPS) replacement routine.
【図11】同じく正規化(リノーマライズ)ルーチンの
例を示す流れ図FIG. 11 is a flow chart showing an example of a normalization (renormalization) routine.
【図12】本発明に係る算術復号化処理装置の実施例の
処理手順の一部を示す流れ図FIG. 12 is a flowchart showing a part of a processing procedure of an embodiment of the arithmetic decoding processing device according to the present invention.
【図13】図12に続く処理手順の一部を示す流れ図13 is a flowchart showing a part of the processing procedure following FIG.
【図14】図13に続く処理手順の残りを示す流れ図14 is a flowchart showing the rest of the processing procedure following FIG.
【図15】前記処理手順における状態STの選択基準の
例を示す線図FIG. 15 is a diagram showing an example of selection criteria of a state ST in the processing procedure.
【図16】同じく優勢シンボルMPSの選択基準の例を
示す線図FIG. 16 is a diagram similarly showing an example of selection criteria of the dominant symbol MPS.
【図17】同じく、分割されたオージェンドとコード値
の関係の一例を示す線図FIG. 17 is a diagram showing an example of the relationship between divided augends and code values.
【図18】同じく、分割されたオージェンドとコード値
の関係の他の例を示す線図FIG. 18 is a diagram similarly showing another example of the relationship between the divided augend and the code value.
【図19】前記実施例で用いられているコードレジスタ
の構成、及び、そのシフト状態の例を示す線図FIG. 19 is a diagram showing a configuration of a code register used in the embodiment and an example of its shift state.
【図20】同じく、隙間が最大で有効ビットが最小の場
合のコードレジスタの状態の例を示す線図FIG. 20 is a line diagram showing an example of the state of the code register when the gap is maximum and the effective bit is minimum.
【図21】前記実施例における各画素毎の処理手順の時
間的な関係の例を示すタイムチャートFIG. 21 is a time chart showing an example of the temporal relationship of the processing procedure for each pixel in the embodiment.
【図22】前記実施例の全体構成を示すブロック線図FIG. 22 is a block diagram showing the overall configuration of the embodiment.
【図23】前記実施例の演算処理部の具体的な構成例を
示すブロック線図FIG. 23 is a block diagram showing a specific configuration example of the arithmetic processing unit according to the embodiment.
【図24】前記演算処理部のシフト量計算回路として用
いられるプライオリティエンコーダの論理を示す線図FIG. 24 is a diagram showing a logic of a priority encoder used as a shift amount calculation circuit of the arithmetic processing unit.
A…オージェンド値 C…コード値 SCD…符号化ビットストリームデータ CX…文脈 ST…状態 Pix…画素 LSZ…劣勢分割幅 MPS…優勢シンボル LPS…劣勢シンボル p、q…レジスタ ps、qs…シフト量 10…演算処理部 16、24…減算回路 22…シフト量計算回路 26…判別回路 28、30、32…マルチプレクサ 42…シフト回路 46…コードレジスタ制御回路 52…オージェンドレジスタ 54…メモリ 56…コードレジスタ 60…状態発生部 70…マルチプレクサ 80…確率推定部 A ... Augend value C ... Code value SCD ... Encoded bit stream data CX ... Context ST ... State Pix ... Pixel LSZ ... Inferior division width MPS ... Dominant symbol LPS ... Inferior symbol p, q ... Register ps, qs ... Shift amount 10 ... Arithmetic processing unit 16, 24 ... Subtraction circuit 22 ... Shift amount calculation circuit 26 ... Discrimination circuit 28, 30, 32 ... Multiplexer 42 ... Shift circuit 46 ... Code register control circuit 52 ... Augend register 54 ... Memory 56 ... Code register 60 ... State generation unit 70 ... Multiplexer 80 ... Probability estimation unit
Claims (3)
ル及び優勢シンボルの出現確率に応じて分割した確率数
直線上にマッピングし、その位置に従って符号化するこ
とによって作成された算術符号を、前記確率数直線上で
の符号の範囲を示すオージェンド値を記憶するオージェ
ンドレジスタ、及び、同じく確率数直線上での符号の位
置を示すコード値を記憶するコードレジスタを用いて復
号化するための算術符号復号化装置において、 先行するデータから、現在の文脈を生成する手段と、 該文脈を指標として、状態及び現在の優勢シンボルを決
定する手段と、 前記状態を指標として、リード・オンリー・メモリに記
憶された確率評価テーブルの値を読み出す手段と、 該確率評価テーブルから読み出された確率に従ってオー
ジェンドを分割し、正規化する場合のシフト量、及び、
コード値の更新される可能性のある値を計算する手段
と、 分割の結果、コード値が優劣どちらの領域に含まれ、ど
ちらの領域が大きいかを判別し、処理を振り分けて、デ
ータを生成する手段と、 振り分けられた結果に応じて、予め計算しておいた前記
シフト量を用いてシフトを行い、オージェンドレジスタ
及びコードレジスタを更新する手段と、 必要に応じて、ランダム・アクセス・メモリに記憶され
た状態や現在の優勢シンボルを更新する手段と、 を備えたことを特徴とする算術符号復号化装置。1. An arithmetic code created by mapping a symbol sequence to be coded on a probability number line obtained by dividing according to the appearance probabilities of the inferior symbol and the dominant symbol, and encoding according to the position of the symbol sequence. An arithmetic code for decoding by using an augend register that stores an augend value indicating a range of codes on a number line and a code register that also stores a code value indicating a position of a code on a probability number line In the decoding device, means for generating a current context from preceding data, means for determining a state and a current dominant symbol using the context as an index, and storing the state in the read-only memory as an index Means for reading out the value of the read probability evaluation table, and dividing the augend according to the probability read from the probability evaluation table Shift amount for normalization, and
A means to calculate the value of code value that may be updated, and as a result of the division, determine which area of the code value is superior or inferior and which area is larger, divide the processing, and generate the data. And a means for updating the augend register and the code register by performing a shift using the previously calculated shift amount according to the distributed result, and a random access memory if necessary. And a means for updating the state and the current dominant symbol stored in the arithmetic code decoding apparatus.
に加算する手段と、 該コードレジスタの隙間に次の符号を入れてビットスタ
ッフィングを行う手段とを備え、 前記コードレジスタが、コード値に対応するビット長の
上位ビットと、シフト量に対応する有効ビット長に加え
て、前記隙間の最大量を収容可能なビット長の、拡張さ
れた下位ビットを含み、 該下位ビットがスタッフィングビットとして使われるこ
とを特徴とする算術符号復号化装置。2. The method according to claim 1, further comprising means for adding the actually shifted amount to the size of the clearance of the code register, and means for performing the bit stuffing by inserting the following code into the clearance of the code register. Wherein the code register has an upper bit of a bit length corresponding to a code value and an effective bit length corresponding to a shift amount, and an extended lower bit of a bit length capable of accommodating the maximum amount of the gap. And an arithmetic code decoding device, wherein the lower bit is used as a stuffing bit.
ル及び優勢シンボルの出現確率に応じて分割した確率数
直線上にマッピングし、その位置に従って符号化するこ
とによって作成された算術符号を、前記確率数直線上で
の符号の範囲を示すオージェンド値を記憶するオージェ
ンドレジスタ、及び、同じく確率数直線上での符号の位
置を示すコード値を記憶するコードレジスタを用いて復
号化するための算術符号復号化装置において、 先行するデータの内、未確定のデータに依存した、複数
の文脈を生成する手段と、 該複数の文脈のそれぞれを指標として、それぞれに対応
する状態及び現在の優勢シンボルの候補を生成する手段
と、 先行するデータが確定した段階で、前記候補中から、実
際に用いる状態及び現在の優勢シンボルを決定する手段
と、 を備えたことを特徴とする算術符号復号化装置。3. An arithmetic code created by mapping a symbol sequence to be coded on a probability number line obtained by dividing according to the appearance probabilities of the inferior symbol and the dominant symbol, and encoding according to the position of the symbol. An arithmetic code for decoding by using an augend register that stores an augend value indicating a range of codes on a number line and a code register that also stores a code value indicating a position of a code on a probability number line In the decoding device, means for generating a plurality of contexts depending on undetermined data among preceding data, and a state and a current dominant symbol candidate corresponding to each of the plurality of contexts as an index And the means for generating the preceding data, the state to be actually used and the current dominant symbol are determined from the candidates at the stage where the preceding data is determined. Arithmetic coding decoding apparatus comprising: the means.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP377295A JPH08195680A (en) | 1995-01-13 | 1995-01-13 | Arithmetic code decoding device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP377295A JPH08195680A (en) | 1995-01-13 | 1995-01-13 | Arithmetic code decoding device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08195680A true JPH08195680A (en) | 1996-07-30 |
Family
ID=11566477
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP377295A Pending JPH08195680A (en) | 1995-01-13 | 1995-01-13 | Arithmetic code decoding device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08195680A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022095015A (en) * | 2020-12-16 | 2022-06-28 | 株式会社日立製作所 | Device processing received data |
-
1995
- 1995-01-13 JP JP377295A patent/JPH08195680A/en active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022095015A (en) * | 2020-12-16 | 2022-06-28 | 株式会社日立製作所 | Device processing received data |
| US11640265B2 (en) | 2020-12-16 | 2023-05-02 | Hitachi, Ltd. | Apparatus for processing received data |
| JP2023130405A (en) * | 2020-12-16 | 2023-09-20 | 株式会社日立製作所 | Equipment that processes received data |
| US12019921B2 (en) | 2020-12-16 | 2024-06-25 | Hitachi, Ltd. | Apparatus for processing received data |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0260462B1 (en) | Arithmetic coding for data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders | |
| US4633490A (en) | Symmetrical optimized adaptive data compression/transfer/decompression system | |
| US4905297A (en) | Arithmetic coding encoder and decoder system | |
| US4286256A (en) | Method and means for arithmetic coding utilizing a reduced number of operations | |
| JP2549254B2 (en) | Method and apparatus for predicting occurrence probability of arbitrary symbol in finite alphabet | |
| US4467317A (en) | High-speed arithmetic compression coding using concurrent value updating | |
| US6351569B1 (en) | Coding method, decoding method, coding device and decoding device | |
| JPS6261178B2 (en) | ||
| JP3684128B2 (en) | Arithmetic encoding / decoding method and arithmetic encoding / decoding device | |
| US4799242A (en) | Multi-mode dynamic code assignment for data compression | |
| AU600972B2 (en) | Arithmetic coding encoder and decoder system | |
| JP3459759B2 (en) | Arithmetic decoding device | |
| JPH08195680A (en) | Arithmetic code decoding device | |
| JP2003188736A (en) | Encoding device and decoding device, encoding / decoding device, encoding method and decoding method, encoding / decoding method, and program | |
| JP3018990B2 (en) | Arithmetic coding device | |
| JPH06311045A (en) | Encoding device and decoding device | |
| EP0047382A2 (en) | Adaptive compression encoding of a binary-source symbol string | |
| JP3461640B2 (en) | Arithmetic encoding / decoding device | |
| US20020076113A1 (en) | Image coding device | |
| JP2891818B2 (en) | Encoding device | |
| JP3336537B2 (en) | Encoding device, decoding device, encoding / decoding device, and arithmetic encoding device | |
| JP3221252B2 (en) | Huffman decoder | |
| US5673216A (en) | Process and system for adding or subtracting symbols in any base without converting to a common base | |
| JPH0846520A (en) | Arithmetic coding device and arithmetic coding decoding device | |
| JP3223118B2 (en) | Image encoding device, image decoding device, and image encoding / decoding device |