JP2005341370A - Arithmetic coding computing element adopting mq-coder system - Google Patents

Arithmetic coding computing element adopting mq-coder system Download PDF

Info

Publication number
JP2005341370A
JP2005341370A JP2004159305A JP2004159305A JP2005341370A JP 2005341370 A JP2005341370 A JP 2005341370A JP 2004159305 A JP2004159305 A JP 2004159305A JP 2004159305 A JP2004159305 A JP 2004159305A JP 2005341370 A JP2005341370 A JP 2005341370A
Authority
JP
Japan
Prior art keywords
output
register
stored
sel
selector
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
Application number
JP2004159305A
Other languages
Japanese (ja)
Inventor
Taro Hagitani
太郎 萩谷
Hiroki Kobayashi
宏樹 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004159305A priority Critical patent/JP2005341370A/en
Publication of JP2005341370A publication Critical patent/JP2005341370A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an arithmetic coding computing element adopting the MQ-CODER system used for configuring an image coder or the like adopting the JPEG coding system that continuously carries out arithmetic operations of an augend A to attain high speed arithmetic coding computation. <P>SOLUTION: A first arithmetic means 47 receives a context CX and a symbol D to calculate the augend A, outputs data Qe, BS, Sel, a storage means 48 stores the data Qe, BS, Sel outputted from the first arithmetic means 47, and a second arithmetic means 49 receives the data Qe, BS, Sel stored in the storage means 48 to calculate a code C and byte data B. The first arithmetic means 47 includes two A arithmetic sections 51, 52 and applies parallel processing to a set of contexts CX(2m) and symbols D(2m) and a set of contexts CX(2m+1) and symbols D(2m+1). <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、JPEG2000符号化方式の画像符号化装置等を構成する場合に使用するMQ−CODER方式の算術符号化演算器に関する。より具体的には、MQ−CODER方式の算術符号化演算器の高速化技術に関する。   The present invention relates to an MQ-CODER arithmetic coding arithmetic unit used when configuring a JPEG2000 encoding image encoding device or the like. More specifically, the present invention relates to a technology for speeding up an MQ-CODER arithmetic coding arithmetic unit.

MQ−CODER方式は、JPEG2000の算術符号化方式として用いられている。JPEG2000の規格は、「ISO/IEC15444-1,“JPEG2000 image coding system Part1:Core coding system,”15 Dec.2000」や「野水泰之,“次世代画像符号化方式:JPEG2000,” トリケップス,Feb.2001」に詳細に記載されている。   The MQ-CODER method is used as an arithmetic coding method of JPEG2000. The standards of JPEG2000 are “ISO / IEC15444-1,“ JPEG2000 image coding system Part1: Core coding system, ”15 Dec.2000” and “Yasuyuki Nomizu,“ Next-generation image coding method: JPEG2000, ”Trikes, Feb.2001. Is described in detail.

図39は従来のMQ−CODER方式の算術符号化演算器の一例の要部を示す回路図である。図39中、CXはコンテクスト、Dはシンボル、Aはオージェンド(Augend)、Cは符号、Bはバイトデータ、1はA、C及びBを演算するMQ−CODER方式の演算部、2は演算部1で演算された新しいA、Cを更新的に記憶するレジスタである。   FIG. 39 is a circuit diagram showing a main part of an example of a conventional MQ-CODER arithmetic coding arithmetic unit. In FIG. 39, CX is a context, D is a symbol, A is an Augend, C is a code, B is byte data, 1 is an arithmetic unit of MQ-CODER system for calculating A, C and B, and 2 is an arithmetic unit This is a register for renewably storing new A and C calculated in 1.

図39に示す従来のMQ−CODER方式の算術符号化演算器は、演算部1に一組ごとにCX、Dを入力して新しいA、Cを演算し、新しいA、Cをレジスタ2に更新的に記憶するというものであるが、バイトアウトが生じた場合、Bの演算が行われる。ここで、Aの演算は、1CX当たり1回で可能であるが、Bの演算には1クロックサイクルないし、それ以上のクロックサイクルを必要とする。したがって、バイトアウトが生じると、Bの演算が終了するまで、Aの演算を停止する必要がある。
特開2003―258648号公報
The conventional MQ-CODER arithmetic coding arithmetic unit shown in FIG. 39 inputs CX and D to the arithmetic unit 1 for each pair, calculates new A and C, and updates the new A and C to the register 2. However, when byte out occurs, the operation of B is performed. Here, the operation of A can be performed once per CX, but the operation of B requires one clock cycle or more. Therefore, when byte out occurs, it is necessary to stop the operation of A until the operation of B is completed.
JP 2003-258648 A

図39に示す従来のMQ−CODER方式の算術符号化演算器では、バイトアウトが生じると、Bの演算が終了するまでAの演算を停止する必要があるため、Aの演算を連続的に行うことができない。また、Aは演算部1で演算されるごとに変化し、演算部1は、その変化したAを次のAの演算に使用するため、先行して次のCX、Dを入力してAの演算を行うことができず、最速でも、1回の演算で一組のCX、Dしか処理することができない。これらの点が算術符号化演算の高速化を妨げる原因となっていた。   In the conventional MQ-CODER arithmetic coding arithmetic unit shown in FIG. 39, if byte out occurs, it is necessary to stop the operation of A until the operation of B is completed, so the operation of A is continuously performed. I can't. In addition, A changes every time it is calculated by the calculation unit 1, and the calculation unit 1 uses the changed A for the next calculation of A. Calculations cannot be performed, and even at the fastest speed, only one set of CX and D can be processed in one calculation. These points have hindered speeding up of arithmetic coding operations.

特許文献1には、A演算で生じるシフト演算のためのループを避け、1度の演算でAを求める方法が記載されている。しかしながら、特許文献1に記載の技術では、Cの演算がAの演算とは独立していないため、Cの演算結果を出力するためにAの演算を待たすことになり、この点が算術符号化演算の高速化を妨げることになる。   Patent Document 1 describes a method for avoiding a loop for a shift operation that occurs in an A operation and obtaining A by a single operation. However, in the technique described in Patent Document 1, since the calculation of C is not independent of the calculation of A, the calculation of A is waited to output the calculation result of C. This point is the arithmetic code. This hinders the speeding up of the calculation operation.

本発明は、かかる点に鑑み、Aの演算を連続して行い、MQ−CODER方式の算術符号化演算の高速化を図ることができるようにしたMQ−CODER方式の算術符号化演算器、更には、複数組のCX、Dを並行処理できるようにし、更なる高速化を図ることができるようにしたMQ−CODER方式の算術符号化演算器を提供することを目的とする。   In view of the above, the present invention is an MQ-CODER arithmetic coding arithmetic unit that continuously performs the operation of A, and can speed up the MQ-CODER arithmetic coding operation, An object of the present invention is to provide an MQ-CODER-type arithmetic coding arithmetic unit capable of processing a plurality of sets of CX and D in parallel and further increasing the speed.

本発明のMQ−CODER方式の算術符号化演算器は、CX、Dを入力してAを演算すると共に、所定データを出力するオージェンド演算部と、該A演算部が出力する所定データを記憶する記憶部と、該記憶部が記憶する所定データを入力してC、Bを演算するC演算部を有するというものである。   The MQ-CODER arithmetic coding arithmetic unit of the present invention inputs CX and D, calculates A, and outputs an audend arithmetic unit that outputs predetermined data, and stores predetermined data output by the A arithmetic unit. A storage unit and a C calculation unit for calculating C and B by inputting predetermined data stored in the storage unit are provided.

本発明によれば、A演算部とC演算部とを、A演算部から出力される所定データを記憶する記憶部を介して、独立に構成しているので、バイトアウトが生じた場合であっても、Cの演算結果を出力する場合であっても、Aを演算することができる。したがって、Aの演算を連続して行い、MQ−CODER方式の算術符号化演算の高速化を図ることができる。なお、A演算部を、Aを入出力値として多段接続する場合には、複数組のCX、Dを並行処理することができ、更なる高速化を図ることができる。   According to the present invention, the A calculation unit and the C calculation unit are configured independently via the storage unit that stores the predetermined data output from the A calculation unit. Even if the calculation result of C is output, A can be calculated. Therefore, the operation of A can be performed continuously, and the speed of the arithmetic coding operation of the MQ-CODER system can be increased. When the A arithmetic units are connected in multiple stages using A as an input / output value, a plurality of sets of CX and D can be processed in parallel, and further speedup can be achieved.

以下、図1〜図38を参照して、本発明の第1実施形態〜第4実施形態について、本発明をJPEG2000符号化方式の画像符号化装置を構成する場合に使用するMQ−CODER方式の算術符号化演算器に適用した場合を例にして説明する。   1 to 38, the first embodiment to the fourth embodiment of the present invention are based on the MQ-CODER system used when the present invention is configured as a JPEG2000 encoding image encoding apparatus. A case where the present invention is applied to an arithmetic coding arithmetic unit will be described as an example.

(第1実施形態)
図1は本発明の第1実施形態の要部を示す回路図である。図1中、4は第1演算手段、5は記憶手段、6は第2演算手段である。第1演算手段4はCX、Dを入力してAを演算すると共に、Cの演算に必要なデータであるQe=劣性シンボル確率、BS=符号化時再正規化処理回路でのAのビットシフト量、Sel=Qeが有効であるか否かを示すデータを出力するものである。記憶手段5は第1演算手段4が出力するQe、BS、Selを記憶するものである。第2演算手段6は記憶手段5が記憶するQe、BS、Selを入力してC、Bを演算するものである。
(First embodiment)
FIG. 1 is a circuit diagram showing the main part of the first embodiment of the present invention. In FIG. 1, 4 is a first calculation means, 5 is a storage means, and 6 is a second calculation means. The first calculation means 4 inputs CX and D and calculates A, and Qe = recessive symbol probability which is data necessary for the calculation of C, BS = bit shift of A in the renormalization processing circuit at the time of encoding Data indicating whether the quantity, Sel = Qe, is valid or not is output. The storage means 5 stores Qe, BS and Sel output from the first calculation means 4. The second calculation means 6 inputs Qe, BS and Sel stored in the storage means 5 and calculates C and B.

第1演算手段4において、7はAレジスタ、8はA演算部である。Aレジスタ7はA(m)を更新的に記憶するものである。但し、mはCX、Dの組の番号を示す数である。A演算部8は前段装置(図示せず)から与えられるCX(m)、D(m)と、Aレジスタ7が記憶するA(m)を入力し、MQ−CODER方式によりA(m+1)を演算するものである。A演算部8が演算したA(m+1)は、A(m)に代わってAレジスタ7に更新的に記憶される。   In the first computing means 4, 7 is an A register and 8 is an A computing unit. The A register 7 stores A (m) in an update manner. However, m is a number indicating the number of a pair of CX and D. The A operation unit 8 inputs CX (m) and D (m) given from the preceding apparatus (not shown) and A (m) stored in the A register 7, and A (m + 1) is inputted by the MQ-CODER method. It is to calculate. A (m + 1) calculated by the A calculating unit 8 is stored in the A register 7 in place of A (m).

記憶手段5において、9−0、9−1、9−2は記憶手段5が備えるレジスタ中の3個を示しており、レジスタ9−0、9−1、9−2を始めとする記憶手段5が備えるレジスタはQe(m)、BS(m)、Sel(m)を記憶する容量を持つものである。第2演算手段6において、10はCレジスタ、11はC演算部である。Cレジスタ10はCを更新的に記憶するものである。C演算部11は、記憶手段5のレジスタ9−0が記憶するQe、BS、Selと、Cレジスタ10が記憶するCを入力し、MQ−CODER方式によりC、Bを演算するものである。C演算部11が演算したCはCレジスタ10に更新的に記憶される。   In the storage means 5, reference numerals 9-0, 9-1 and 9-2 indicate three of the registers provided in the storage means 5, and the storage means including the registers 9-0, 9-1 and 9-2. The register 5 has a capacity for storing Qe (m), BS (m), and Sel (m). In the second computing means 6, 10 is a C register and 11 is a C computing unit. The C register 10 stores C in an update manner. The C calculation unit 11 inputs Qe, BS, and Sel stored in the register 9-0 of the storage unit 5 and C stored in the C register 10, and calculates C and B by the MQ-CODER method. C calculated by the C calculation unit 11 is stored in the C register 10 in an update manner.

図2はA演算部8の回路図である。図2中、13はインデックス・メモリであり、CX(m)を入力し、CX(m)におけるインデックス=I(CX(m))を出力するものである。14はQeテーブル回路であり、インデックス・メモリ13が出力するI(CX(m))を入力し、Qe(m)=Qe(I(CX(m))を出力するものである。   FIG. 2 is a circuit diagram of the A operation unit 8. In FIG. 2, 13 is an index memory which inputs CX (m) and outputs index = I (CX (m)) in CX (m). Reference numeral 14 denotes a Qe table circuit which inputs I (CX (m)) output from the index memory 13 and outputs Qe (m) = Qe (I (CX (m))).

15は減算器であり、Aレジスタ7が記憶するA(m)からQeテーブル回路14が出力するQe(m)を減算するものである。16は比較器であり、Qeテーブル回路14が出力するQe(m)を左に1ビットシフトしたもの(Qe(m)<<1)とAレジスタ7が記憶するA(m)を比較し、A(m)<(Qe(m)<<1)の場合には“1”を出力し、それ以外の場合には“0”を出力するものである。   A subtractor 15 subtracts Qe (m) output from the Qe table circuit 14 from A (m) stored in the A register 7. A comparator 16 compares Qe (m) output from the Qe table circuit 14 by 1 bit to the left (Qe (m) << 1) and A (m) stored in the A register 7. In the case of A (m) << (Qe (m) << 1), "1" is output, and in other cases, "0" is output.

17はMPSメモリであり、CX(m)を入力し、CX(m)における優勢シンボル=MPS(CX(m))を出力するものである。18はExOR回路であり、MPSメモリ17が出力するMPS(CX(m))とD(m)をExOR処理し、IsLPS(m)(=符号化がMPS符号化であるかLPS符号化であるかを示すデータ)を出力するものである。   Reference numeral 17 denotes an MPS memory which inputs CX (m) and outputs a dominant symbol = MPS (CX (m)) in CX (m). ExOR circuit 18 performs ExOR processing on MPS (CX (m)) and D (m) output from MPS memory 17, and IsLPS (m) (= encoding is MPS encoding or LPS encoding). Is output).

19はExOR回路であり、比較器16の出力とExOR回路18が出力するIsLPS(m)をExOR処理し、Sel(m)を出力するものである。20はセレクタであり、ExOR回路19が出力するSel(m)を選択制御データとし、Sel(m)=“1”の場合には、Qeテーブル回路14が出力するQe(m)を選択し、Sel(m)=“0”の場合には、減算器15が出力する(A(m)−Qe(m))を選択するものである。   An ExOR circuit 19 performs ExOR processing on the output of the comparator 16 and the IsLPS (m) output by the ExOR circuit 18 and outputs Sel (m). Reference numeral 20 denotes a selector, which selects Sel (m) output from the ExOR circuit 19 as selection control data. When Sel (m) = “1”, Qe (m) output from the Qe table circuit 14 is selected. When Sel (m) = “0”, the subtracter 15 selects (A (m) −Qe (m)).

21はRENORME(符号化時再正規化)回路であり、セレクタ20の出力を入力して符号化再正規化処理を行い、A(m+1)、BS(m)を出力するものである。22はAND回路であり、SWITCH(I(CX(m)))(=シンボル逆転スイッチ)とExOR回路18が出力するIsLPS(m)をAND処理するものである。23はExOR回路であり、MPSメモリ17が出力するMPS(CX(m))とAND回路22の出力をExOR処理してNxtMPS(CX(m))(=後段のビット処理に必要な優勢シンボル)を出力するものである。   Reference numeral 21 denotes a RENORME (encoding renormalization) circuit which receives the output of the selector 20 and performs encoding renormalization processing to output A (m + 1) and BS (m). An AND circuit 22 AND-processes SWITCH (I (CX (m))) (= symbol reverse switch) and IsLPS (m) output from the ExOR circuit 18. Reference numeral 23 denotes an ExOR circuit which performs an EXOR process on the MPS (CX (m)) output from the MPS memory 17 and the output of the AND circuit 22 to obtain an NxtMPS (CX (m)) (= dominant symbol necessary for the subsequent bit processing). Is output.

24はネクスト・インデックス回路であり、インデックス・メモリ13が出力するI(CX(m))、減算器15が出力する(A(m)−Qe(m))及びExOR回路18が出力するIsLPS(m)を入力してNxtI(CX(m))(=後段のビット処理に必要なインデックス)を出力するものである。   Reference numeral 24 denotes a next index circuit. I (CX (m)) output from the index memory 13, (A (m) −Qe (m)) output from the subtractor 15, and IsLPS ( m) is input and NxtI (CX (m)) (= index necessary for bit processing in the subsequent stage) is output.

図3はインデックス・メモリ13の第1構成例の回路図である。図3中、26−i(但し、i=0、1、2、…、18)はセレクタ、27−iはインデックス・レジスタ、28はセレクタであり、CX(m)=iであるか否かを示すデータを選択制御データとし、CX(m)=iの場合には、NxtI(CX(m))を選択し、CX(m)≠iの場合には、インデックス・レジスタ27−iの出力を選択するものである。インデックス・レジスタ27−iは、セレクタ26−iの出力を記憶するものである。セレクタ28は、CX(m)を選択制御データとし、CX(m)=iの場合には、インデックス・レジスタ27−iの出力を選択するものであり、セレクタ28の出力はI(CX(m))である。   FIG. 3 is a circuit diagram of a first configuration example of the index memory 13. In FIG. 3, 26-i (where i = 0, 1, 2,..., 18) is a selector, 27-i is an index register, 28 is a selector, and whether or not CX (m) = i. Is selected control data, NxtI (CX (m)) is selected when CX (m) = i, and the output of the index register 27-i when CX (m) ≠ i. Is to select. The index register 27-i stores the output of the selector 26-i. The selector 28 uses CX (m) as the selection control data, and when CX (m) = i, the selector 28 selects the output of the index register 27-i, and the output of the selector 28 is I (CX (m )).

図4はインデックス・メモリ13の第2構成例の回路図である。インデックス・メモリ13の第2構成例は、図3に示すセレクタ26−18及びインデックス・レジスタ27−18の代わりに、固定値「46」を出力する回路30を設け、その他については、図3に示すインデックス・メモリ13の第1構成例と同様に構成したものである。同様の置き換えは、図16のインデックス・レジスタ87−18及び図27のインデックス・レジスタ162−18でも可能である。   FIG. 4 is a circuit diagram of a second configuration example of the index memory 13. In the second configuration example of the index memory 13, a circuit 30 for outputting a fixed value "46" is provided instead of the selector 26-18 and the index register 27-18 shown in FIG. The index memory 13 is configured in the same manner as the first configuration example. Similar replacement is possible with the index register 87-18 of FIG. 16 and the index register 162-18 of FIG.

図5はMPSメモリ17の第1構成例の回路図である。図5中、32−iはセレクタ、33−iはMPSレジスタ、34はセレクタであり、CX(m)=iであるか否かを示すデータを選択制御データとし、CX(m)=iの場合には、NxtMPS(CX(m))を選択し、CX(m)≠iの場合には、MPSレジスタ33−iの出力を選択する。MPSレジスタ33−iは、セレクタ32−iの出力を記憶するものである。セレクタ34は、CX(m)を選択制御データとし、CX(m)=iの場合には、MPSレジスタ33−iの出力を選択する。   FIG. 5 is a circuit diagram of a first configuration example of the MPS memory 17. In FIG. 5, 32-i is a selector, 33-i is an MPS register, 34 is a selector, and data indicating whether CX (m) = i is selection control data, and CX (m) = i In this case, NxtMPS (CX (m)) is selected, and when CX (m) ≠ i, the output of the MPS register 33-i is selected. The MPS register 33-i stores the output of the selector 32-i. The selector 34 uses CX (m) as selection control data, and when CX (m) = i, selects the output of the MPS register 33-i.

図6はMPSメモリ17の第2構成例の回路図である。MPSメモリ17の第2構成例は、図5に示すセレクタ32−18及びMPSレジスタ33−18の代わりに、固定値「0」を出力するレジスタ36を設け、その他については、図5に示すMPSメモリ16の第1構成例と同様に構成したものである。同様の置き換えは、第2実施形態、第3実施形態及び第4実施形態におけるMPSメモリでも可能である。   FIG. 6 is a circuit diagram of a second configuration example of the MPS memory 17. In the second configuration example of the MPS memory 17, a register 36 for outputting a fixed value “0” is provided instead of the selector 32-18 and the MPS register 33-18 shown in FIG. This is configured similarly to the first configuration example of the memory 16. Similar replacement is also possible in the MPS memory in the second embodiment, the third embodiment, and the fourth embodiment.

図7はネクスト・インデックス回路24の回路図である。図7中、38はセレクタであり、A(m)[15](A(m)の16ビット目)を選択制御データとし、A(m)[15]=“0”の場合にはNMPS(I(CX(m)))=MPS符号化後の更新インデックスを選択し、A(m)[15]=“1”の場合にはI(CX(m))を選択するものである。39はセレクタであり、IsLPS(m)を選択制御データとし、IsLPS(m)=“0”の場合にはセレクタ38の出力を選択し、IsLPS(m)=“1”の場合にはNLPS(I(CX(m)))(=LPS符号化後の更新インデックス)を選択するものである。   FIG. 7 is a circuit diagram of the next index circuit 24. In FIG. 7, reference numeral 38 denotes a selector. A (m) [15] (the 16th bit of A (m)) is selected control data, and when A (m) [15] = “0”, NMPS ( I (CX (m))) = Update index after MPS encoding is selected, and when A (m) [15] = “1”, I (CX (m)) is selected. Reference numeral 39 denotes a selector, which uses IsLPS (m) as selection control data. When IsLPS (m) = “0”, the output of the selector 38 is selected, and when IsLPS (m) = “1”, NLPS ( I (CX (m))) (= update index after LPS encoding).

図8はC演算部11の回路図である。図8中、41はセレクタであり、QeReg0(=レジスタ9−0が記憶するQe)が有効であるか否かを示すデータSelReg0(=レジスタ9−0が記憶するSel)を選択制御データとし、SelReg0=“0”の場合にはQeReg0を選択し、SelReg0=“1”の場合には0を選択するものである。   FIG. 8 is a circuit diagram of the C calculation unit 11. In FIG. 8, 41 is a selector, and data SelReg0 (= Sel stored in the register 9-0) indicating whether or not QeReg0 (= Qe stored in the register 9-0) is valid is selected control data. When SelReg0 = "0", QeReg0 is selected, and when SelReg0 = "1", 0 is selected.

42は加算器であり、Cレジスタ10が記憶するCとセレクタ41の出力を加算するものである。43はシフタであり、加算器42の出力をS0=Min(CT、BSReg0)だけ左にシフトするものである。但し、CTはバイトカウンタの値、BSReg0はレジスタ9−0が記憶するBSである。44はバイトアウト回路であり、シフタ43の出力Cinを入力してBを演算するものである。45はセレクタであり、BSReg0>=CTであるか否かを示すデータを選択制御データとし、BSReg0>=CTの場合には、バイトアウト回路44が出力するCを選択し、それ以外の場合には、シフタ43の出力を選択する。   An adder 42 adds the C stored in the C register 10 and the output of the selector 41. A shifter 43 shifts the output of the adder 42 to the left by S0 = Min (CT, BSReg0). However, CT is the value of the byte counter, and BSReg0 is the BS stored in the register 9-0. A byte-out circuit 44 inputs the output Cin of the shifter 43 and calculates B. Reference numeral 45 denotes a selector, and data indicating whether or not BSReg0> = CT is used as selection control data. When BSReg0> = CT, C output from the byte-out circuit 44 is selected, and otherwise. Selects the output of the shifter 43.

図9〜図13は本発明の第1実施形態の動作例を示す回路図である。記憶手段5に対するQe、BS、Selの書き込み、読み出し制御は所定の制御回路(図示せず)で行なわれるが、図9〜図13に示す記憶手段5に対するQe、BS、Selの書き込み、読み出し制御は一例であり、その他の方法を取ることもできる。   9 to 13 are circuit diagrams showing an operation example of the first embodiment of the present invention. Qe, BS, and Sel writing and reading control with respect to the storage means 5 is performed by a predetermined control circuit (not shown), but Qe, BS, and Sel writing and reading control with respect to the storage means 5 shown in FIGS. Is an example, and other methods can be used.

図9は時刻t=T0に前段装置からA演算部8にCX(0)、D(0)が与えられた場合を示している。この場合、A演算部8は、Aレジスタ7が記憶するA(0)を入力してA(1)を演算すると共に、Qe(0)、BS(0)、Sel(0)を出力する。A(1)はAレジスタ7に更新的に記憶され、Qe(0)、BS(0)、Sel(0)はレジスタ9−0に記憶される。   FIG. 9 shows a case where CX (0) and D (0) are given to the A arithmetic unit 8 from the preceding apparatus at time t = T0. In this case, the A operation unit 8 inputs A (0) stored in the A register 7 to calculate A (1), and outputs Qe (0), BS (0), and Sel (0). A (1) is updated and stored in the A register 7, and Qe (0), BS (0), and Sel (0) are stored in the register 9-0.

図10は時刻t=T1に前段装置からA演算部8にCX(1)、D(1)が与えられた場合を示している。この場合、C演算部11は、レジスタ9−0が記憶するQe(0)、BS(0)、Sel(0)とCレジスタ10が記憶するC(0)を入力してC(1)を演算する。C(1)はCレジスタ10に更新的に記憶される。他方、A演算部8は、Aレジスタ7が記憶するA(1)を入力してA(2)を演算すると共に、Qe(1)、BS(1)、Sel(1)を出力する。A(2)はAレジスタ7に更新的に記憶され、Qe(1)、BS(1)、Sel(1)はレジスタ9−0に記憶される。   FIG. 10 shows a case where CX (1) and D (1) are given from the preceding apparatus to the A calculation unit 8 at time t = T1. In this case, the C calculation unit 11 inputs Qe (0), BS (0), Sel (0) stored in the register 9-0 and C (0) stored in the C register 10 and inputs C (1). Calculate. C (1) is stored in the C register 10 in an update manner. On the other hand, the A operation unit 8 inputs A (1) stored in the A register 7 to calculate A (2), and outputs Qe (1), BS (1), and Sel (1). A (2) is updated and stored in the A register 7, and Qe (1), BS (1), and Sel (1) are stored in the register 9-0.

図11は時刻t=T2に前段装置からA演算部8にCX(2)、D(2)が与えられた場合を示している。この場合、C演算部11は、レジスタ9−0が記憶するQe(1)、BS(1)、Sel(1)とCレジスタ10が記憶するC(1)を入力するが、この時点でバイトアウトが発生したとすると、C演算部11はB(0)を演算し、BS(1)を後処理したBS´(1)(=BS(1)−BS(0))がレジスタ9−0に記憶される。C´(1)はCレジスタ10に更新的に記憶される。他方、A演算部8は、Aレジスタ7が出力するA(2)を入力してA(3)を演算すると共に、Qe(2)、BS(2)、Sel(2)を出力する。A(2)はAレジスタ7に更新的に記憶され、Qe(2)、BS(2)、Sel(2)はレジスタ9−1に記憶される。   FIG. 11 shows a case where CX (2) and D (2) are given to the A arithmetic unit 8 from the preceding apparatus at time t = T2. In this case, the C calculation unit 11 inputs Qe (1), BS (1), Sel (1) stored in the register 9-0 and C (1) stored in the C register 10, but at this point Assuming that an out occurs, the C calculating unit 11 calculates B (0), and BS ′ (1) (= BS (1) −BS (0)) obtained by post-processing BS (1) is the register 9-0. Is remembered. C ′ (1) is updated and stored in the C register 10. On the other hand, the A operation unit 8 inputs A (2) output from the A register 7 and calculates A (3), and outputs Qe (2), BS (2), and Sel (2). A (2) is updated and stored in the A register 7, and Qe (2), BS (2), and Sel (2) are stored in the register 9-1.

図12は時刻t=T3に前段装置からA演算部8にCX(3)、D(3)が与えられた場合を示している。この場合、C演算部11は、レジスタ9−0が記憶するBS´(1)とCレジスタ10が記憶するC´(1)を入力してC(2)を演算する。C(2)はCレジスタ10に更新的に記憶される。他方、A演算部8は、Aレジスタ7が出力するA(3)を入力し、A(4)を演算すると共に、Qe(3)、BS(3)、Sel(3)を出力する。A(4)はAレジスタ7に更新的に記憶され、Qe(3)、BS(3)、Sel(3)はレジスタ9−1に記憶される。また、レジスタ9−1に記憶されているQe(2)、BS(2)、Sel(2)はレジスタ9−0に記憶される。   FIG. 12 shows a case where CX (3) and D (3) are given from the preceding apparatus to the A operation unit 8 at time t = T3. In this case, the C calculation unit 11 inputs BS ′ (1) stored in the register 9-0 and C ′ (1) stored in the C register 10 and calculates C (2). C (2) is stored in the C register 10 in an update manner. On the other hand, the A calculation unit 8 inputs A (3) output from the A register 7, calculates A (4), and outputs Qe (3), BS (3), and Sel (3). A (4) is updated and stored in the A register 7, and Qe (3), BS (3), and Sel (3) are stored in the register 9-1. Further, Qe (2), BS (2), and Sel (2) stored in the register 9-1 are stored in the register 9-0.

図13は時刻t=T4に前段装置からA演算部8にCX(4)、D(4)が与えられた場合を示している。この場合、C演算部11は、レジスタ9−0が記憶するQe(2)、BS(2)、Sel(2)とCレジスタ10が記憶するC(2)を入力してC(3)を演算する。C(3)はCレジスタ10に更新的に記憶される。他方、A演算部8は、Aレジスタ7が出力するA(4)を入力し、A(5)を演算すると共に、Qe(4)、BS(4)、Sel(4)を出力する。A(5)はAレジスタ7に更新的に記憶される。以下、同様の動作が続けられる。   FIG. 13 shows a case where CX (4) and D (4) are given to the A arithmetic unit 8 from the preceding apparatus at time t = T4. In this case, the C calculation unit 11 inputs Qe (2), BS (2), Sel (2) stored in the register 9-0 and C (2) stored in the C register 10 and inputs C (3). Calculate. C (3) is stored in the C register 10 in an update manner. On the other hand, the A operation unit 8 inputs A (4) output from the A register 7, calculates A (5), and outputs Qe (4), BS (4), and Sel (4). A (5) is stored in the A register 7 in an update manner. Thereafter, the same operation is continued.

以上のように、本発明の第1実施形態によれば、Aを演算する第1演算手段4とC、Bを演算する第2演算手段6とを、第1演算手段4が出力するQe、BS、Selを記憶する記憶手段5を介して独立に構成しているので、バイトアウトが生じた場合であっても、Cの演算結果を出力する場合であっても、A演算を行うことができる。したがって、Aの演算を連続して行い、MQ−CODER方式の算術符号化演算の高速化を図ることができる。   As described above, according to the first embodiment of the present invention, the first calculation means 4 for calculating A and the second calculation means 6 for calculating C and B are output by Qe, Since it is configured independently via the storage means 5 for storing BS and Sel, it is possible to perform the A operation even when byteout occurs or when the C operation result is output. it can. Therefore, the operation of A can be performed continuously, and the speed of the arithmetic coding operation of the MQ-CODER system can be increased.

(第2実施形態)
図14は本発明の第2実施形態の要部を示す回路図である。図14中、47は第1演算手段、48は記憶手段、49は第2演算手段である。第1演算手段47はCX、Dを入力してAを演算するものである。記憶手段48は第1演算手段47が出力するCの演算に必要なQe、BS、Selを記憶するものである。第2演算手段49は記憶手段48が記憶するCの演算に必要なQe、BS、Selを入力してC、Bを演算するものである。本実施形態では、前段装置(図示せず)からCX(2m)、D(2m)の組と、CX(2m+1)、D(2m+1)の組が並列して与えられる。
(Second Embodiment)
FIG. 14 is a circuit diagram showing the main part of the second embodiment of the present invention. In FIG. 14, 47 is a first calculation means, 48 is a storage means, and 49 is a second calculation means. The first calculating means 47 inputs CX and D and calculates A. The storage means 48 stores Qe, BS and Sel necessary for the calculation of C output from the first calculation means 47. The second calculation means 49 inputs Qe, BS and Sel necessary for the calculation of C stored in the storage means 48 and calculates C and B. In the present embodiment, a set of CX (2m) and D (2m) and a set of CX (2m + 1) and D (2m + 1) are given in parallel from a preceding apparatus (not shown).

第1演算手段47において、50はAレジスタ、51、52はA演算部である。Aレジスタ50はA(2m)を記憶するものである。A演算部51は、CX(2m)、D(2m)とAレジスタ50が記憶するA(2m)を入力し、MQ−CODER方式によりA(2m+1)を演算するものである。A演算部52は、CX(2m+1)、D(2m+1)とA演算部51が出力するA(2m+1)を入力し、MQ−CODER方式によりA(2m+2)を演算するものである。A演算部52が演算したA(2m+2)は、A(2m)に代わってAレジスタ50に更新的に記憶される。   In the first calculation means 47, 50 is an A register, and 51 and 52 are A calculation units. The A register 50 stores A (2 m). The A calculation unit 51 inputs CX (2m), D (2m) and A (2m) stored in the A register 50, and calculates A (2m + 1) by the MQ-CODER method. The A calculation unit 52 inputs CX (2m + 1), D (2m + 1) and A (2m + 1) output from the A calculation unit 51, and calculates A (2m + 2) by the MQ-CODER method. A (2m + 2) calculated by the A calculation unit 52 is stored in the A register 50 in place of A (2m).

記憶手段48において、53−0〜53−4は記憶手段48が備えるレジスタ中の5個を示しており、レジスタ53−0〜53−4を始めとする記憶手段48が備えるレジスタは、Qe(j)、BS(j)、Sel(j)を記憶する容量を持つものである。但し、j=2m、2m+1である。   In the storage means 48, 53-0 to 53-4 indicate five of the registers provided in the storage means 48. The registers provided in the storage means 48 including the registers 53-0 to 53-4 are Qe ( j), BS (j), and Sel (j). However, j = 2m and 2m + 1.

第2演算手段49において、54はCレジスタ、55、56はC演算部である。Cレジスタ54はCを記憶するものである。C演算部55は、記憶手段48のレジスタ53−0が記憶するQe、BS、SelとCレジスタ54が記憶するCを入力し、MQ−CODER方式によりC、Bを演算するものである。C演算部56は、記憶手段48のレジスタ53−1が記憶するQe、BS、SelとC演算部55が出力するCを入力し、MQ−CODER方式によりC、Bを演算するものである。C演算部56が演算したCはCレジスタ54に更新的に記憶される。   In the second calculation means 49, 54 is a C register, and 55 and 56 are C calculation units. The C register 54 stores C. The C calculation unit 55 inputs Qe, BS, and Sel stored in the register 53-0 of the storage unit 48 and C stored in the C register 54, and calculates C and B by the MQ-CODER method. The C calculation unit 56 inputs Qe, BS, Sel stored in the register 53-1 of the storage means 48 and C output from the C calculation unit 55, and calculates C and B by the MQ-CODER method. C calculated by the C calculation unit 56 is stored in the C register 54 in an update manner.

図15はA演算部51、52の回路図である。図15中、A演算部51において、58はインデックス・メモリであり、CX(2m)を入力して、I(CX(2m))を出力するものである。59はQeテーブル回路であり、インデックス・メモリ回路58が出力するI(CX(2m))を入力し、Qe(2m)=Qe(I(CX(2m))を出力するものである。   FIG. 15 is a circuit diagram of the A calculation units 51 and 52. In FIG. 15, in the A calculation unit 51, 58 is an index memory, which inputs CX (2m) and outputs I (CX (2m)). 59 denotes a Qe table circuit which inputs I (CX (2m)) output from the index memory circuit 58 and outputs Qe (2m) = Qe (I (CX (2m))).

60は減算器であり、Aレジスタ50が記憶するA(2m)からQeテーブル回路59が出力するQe(2m)を減算するものである。61は比較器であり、Qeテーブル回路59が出力するQe(2m)を左に1ビットシフトしたもの(Qe(2m)<<1)とAレジスタ50が記憶するA(2m)を比較し、A(2m)<(Qe(2m)<<1)の場合には“1”を出力し、それ以外の場合には“0”を出力するものである。   A subtractor 60 subtracts Qe (2m) output from the Qe table circuit 59 from A (2m) stored in the A register 50. 61 is a comparator, which compares Qe (2m) output from the Qe table circuit 59 by 1 bit to the left (Qe (2m) << 1) and A (2m) stored in the A register 50; If A (2m) << (Qe (2m) << 1), "1" is output, otherwise "0" is output.

62はMPSメモリであり、CX(2m)を入力してMPS(CX(2m))を出力するものである。63はExOR回路であり、MPSメモリ62が出力するMPS(CX(2m))とD(2m)をExOR処理してIsLPS(2m)を出力するものである。   Reference numeral 62 denotes an MPS memory which inputs CX (2m) and outputs MPS (CX (2m)). Reference numeral 63 denotes an ExOR circuit, which performs ExOR processing on MPS (CX (2m)) and D (2m) output from the MPS memory 62 and outputs IsLPS (2m).

64はExOR回路であり、比較器61の出力とExOR回路63が出力するIsLPS(2m)をExOR処理してSel(2m)を出力するものである。65はセレクタであり、ExOR回路64が出力するSel(2m)を選択制御データとし、Sel(2m)=“1”の場合には、Qeテーブル回路59が出力するQe(2m)を選択し、Sel(2m)=“0”の場合には、減算器60が出力する(A(2m)−Qe(2m))を選択するものである。   Reference numeral 64 denotes an ExOR circuit, which performs ExOR processing on the output of the comparator 61 and IsLPS (2m) output from the ExOR circuit 63 and outputs Sel (2m). 65 is a selector, and Sel (2m) output from the ExOR circuit 64 is used as selection control data. When Sel (2m) = “1”, Qe (2m) output from the Qe table circuit 59 is selected. When Sel (2m) = “0”, the subtracter 60 outputs (A (2m) −Qe (2m)) is selected.

66はRENORME回路であり、セレクタ65の出力を入力して符号化再正規化処理を行い、A(2m+1)、BS(2m)を出力するものである。67はAND回路であり、SWITCH(I(CX(2m)))とExOR回路63が出力するIsLPS(2m)をAND処理するものである。68はExOR回路であり、MPSメモリ62が出力するMPS(CX(2m))とAND回路67の出力をExOR処理してNxtMPS(CX(2m))を出力するものである。   Reference numeral 66 denotes a RENORME circuit which receives the output of the selector 65, performs encoding renormalization processing, and outputs A (2m + 1) and BS (2m). An AND circuit 67 AND-processes SWITCH (I (CX (2m))) and IsLPS (2m) output from the ExOR circuit 63. Reference numeral 68 denotes an ExOR circuit which performs an EXOR process on the MPS (CX (2m)) output from the MPS memory 62 and the output of the AND circuit 67 and outputs NxtMPS (CX (2m)).

69はネクスト・インデックス回路であり、インデックス・メモリ58が出力するI(CX(2m))、減算器60が出力する(A(2m)−Qe(2m))及びExOR回路63が出力するIsLPS(2m)を入力してNxtI(CX(2m))を出力するものである。   Reference numeral 69 denotes a next index circuit. I (CX (2m)) output from the index memory 58, output from the subtractor 60 (A (2m) −Qe (2m)), and IsLPS (exit circuit 63 outputs) 2m) is input and NxtI (CX (2m)) is output.

A演算部52において、70はインデックス・メモリであり、CX(2m+1)を入力し、PreI(CX(2m+1))(プレ・インデックス)を出力するものである。71はセレクタであり、CX(2m)=CX(2m+1)であるか否かを示すデータを選択制御データとし、CX(2m)=CX(2m+1)の場合には、ネクスト・インデックス回路69が出力するNxtI(CX(2m))を選択し、それ以外の場合には、インデックス・メモリ70が出力するPreI(CX(2m+1))を選択するものである。セレクタ71の出力はI(CX(2m+1))である。   In the A operation unit 52, reference numeral 70 denotes an index memory which inputs CX (2m + 1) and outputs PreI (CX (2m + 1)) (pre-index). Reference numeral 71 denotes a selector. Data indicating whether CX (2m) = CX (2m + 1) is selected as control data. When CX (2m) = CX (2m + 1), the next index circuit 69 outputs the data. NxtI (CX (2m)) to be selected is selected. Otherwise, PreI (CX (2m + 1)) output from the index memory 70 is selected. The output of the selector 71 is I (CX (2m + 1)).

72はQeテーブル回路であり、セレクタ71が出力するI(CX(2m+1))を入力し、Qe(2m+1)=Qe(I(CX(2m+1))を出力するものである。73は減算器であり、RENORME回路66が出力するA(2m+1)からQeテーブル回路72が出力するQe(2m+1)を減算するものである。   A Qe table circuit 72 receives I (CX (2m + 1)) output from the selector 71 and outputs Qe (2m + 1) = Qe (I (CX (2m + 1)). 73 is a subtractor. Yes, Qe (2m + 1) output from the Qe table circuit 72 is subtracted from A (2m + 1) output from the RENORME circuit 66.

74は比較器であり、Qeテーブル回路72が出力するQe(2m+1)を左に1ビットシフトしたもの(Qe(2m+1)<<1)と、RENORME回路66が出力するA(2m+1)を比較し、A(2m+1)<(Qe(2m+1)<<1)の場合には“1”を出力し、それ以外の場合には“0”を出力するものである。75はMPSメモリであり、CX(2m+1)を入力し、PreMPS(CX(2m+1))を出力するものである。   74 is a comparator that compares Qe (2m + 1) output from the Qe table circuit 72 by 1 bit to the left (Qe (2m + 1) << 1) and A (2m + 1) output from the RENORME circuit 66. , A (2m + 1) << (Qe (2m + 1) << 1), "1" is output, otherwise "0" is output. Reference numeral 75 denotes an MPS memory which inputs CX (2m + 1) and outputs PreMPS (CX (2m + 1)).

76はセレクタであり、CX(2m)=CX(2m+1)であるか否かを示すデータを選択制御データとし、CX(2m)=CX(2m+1)の場合には、ExOR回路68が出力するNxtMPS(CX(2m))を選択し、CX(2m)≠CX(2m+1)の場合には、MPSメモリ75が出力するPreMPS(CX(2m+1))(プレ優勢シンボル)を選択するものである。セレクタ76の出力はMPS(CX(2m+1))である。   Reference numeral 76 denotes a selector. The data indicating whether CX (2m) = CX (2m + 1) is used as selection control data. When CX (2m) = CX (2m + 1), NxtMPS output from the ExOR circuit 68 is output. When (CX (2m)) is selected and CX (2m) ≠ CX (2m + 1), PreMPS (CX (2m + 1)) (predominant symbol) output from the MPS memory 75 is selected. The output of the selector 76 is MPS (CX (2m + 1)).

77はExOR回路であり、セレクタ76が出力するMPS(CX(2m+1))とD(2m+1)をExOR処理してIsLPS(2m+1)を出力するものである。78はExOR回路であり、比較器74の出力とExOR回路77が出力するIsLSP(2m+1)をExOR処理してSel(2m+1)を出力するものである。   Reference numeral 77 denotes an ExOR circuit, which performs ExOR processing on MPS (CX (2m + 1)) and D (2m + 1) output from the selector 76 and outputs IsLPS (2m + 1). Reference numeral 78 denotes an ExOR circuit, which performs ExOR processing on the output of the comparator 74 and IsLSP (2m + 1) output from the ExOR circuit 77 and outputs Sel (2m + 1).

79はセレクタであり、ExOR回路78が出力するSel(2m+1)を選択制御データとし、Sel(2m+1)=“1”の場合にはQeテーブル回路72が出力するQe(2m+1)を選択し、Sel(2m+1)=“0”の場合には減算器73が出力する(A(2m+1)−Qe(2m+1))を選択するものである。80はRENORME回路であり、セレクタ79が出力するQe(2m+1)又は(A(2m+1)−Qe(2m+1))を入力して符号化再正規化処理を行い、A(2m+2)、BS(2m+1)を出力するものである。   Reference numeral 79 denotes a selector, and Sel (2m + 1) output from the ExOR circuit 78 is used as selection control data. When Sel (2m + 1) = “1”, Qe (2m + 1) output from the Qe table circuit 72 is selected. When (2m + 1) = “0”, the subtracter 73 selects (A (2m + 1) −Qe (2m + 1)) output. Reference numeral 80 denotes a RENORME circuit which inputs Qe (2m + 1) or (A (2m + 1) −Qe (2m + 1)) output from the selector 79 and performs encoding renormalization processing to obtain A (2m + 2) and BS (2m + 1). Is output.

81はAND回路であり、SWITCH(I(CX(2m+1)))とExOR回路77が出力するIsLPS(2m+1)をAND処理するものである。82はExOR回路であり、MPSメモリ75が出力するPreMPS(CX(2m+1))とAND回路81の出力をExOR処理してNxtMPS(CX(2m+1))を出力するものである。83はネクスト・インデックス回路であり、セレクタ71が出力するI(CX(2m+1))、減算器73が出力する(A(2m+1)−Qe(2m+1))及びExOR回路77が出力するIsLPS(2m+1)を入力してNxtI(CX(2m+1))を出力するものである。   An AND circuit 81 AND-processes SWITCH (I (CX (2m + 1))) and IsLPS (2m + 1) output from the ExOR circuit 77. Reference numeral 82 denotes an ExOR circuit which performs ExOR processing on the PreMPS (CX (2m + 1)) output from the MPS memory 75 and the output of the AND circuit 81 and outputs NxtMPS (CX (2m + 1)). 83 is a next index circuit, which is output from the selector 71 (CX (2m + 1)), output from the subtractor 73 (A (2m + 1) −Qe (2m + 1)), and IsLPS (2m + 1) output from the ExOR circuit 77. And NxtI (CX (2m + 1)) is output.

図16はインデックス・メモリ58、70の構成例の回路図である。本発明の第2実施形態では、インデックス・メモリ58、70は一体として構成される。図16中、85−i、86−iはセレクタ、87−iはインデックス・レジスタ、88、89はセレクタである。セレクタ85−iは、CX(2m)=iであるか否かを示すデータを選択制御データとし、CX(2m)=iの場合には、NxtI(CX(2m))を選択し、CX(2m)≠iの場合には、インデックス・レジスタ87−iの出力を選択するものである。   FIG. 16 is a circuit diagram of a configuration example of the index memories 58 and 70. In the second embodiment of the present invention, the index memories 58 and 70 are integrally formed. In FIG. 16, 85-i and 86-i are selectors, 87-i are index registers, and 88 and 89 are selectors. The selector 85-i uses the data indicating whether or not CX (2m) = i as selection control data. If CX (2m) = i, the selector 85-i selects NxtI (CX (2m)) and CX (2m) = i. 2m) When not i, the output of the index register 87-i is selected.

セレクタ86−iは、CX(2m+1)=iであるか否かを示すデータを選択制御データとし、CX(2m+1)=iの場合には、NxtI(CX(2m+1))を選択し、CX(2m+1)≠iの場合には、セレクタ85−iの出力を選択する。インデックス・レジスタ87−iはセレクタ86−iの出力を記憶するものである。セレクタ88は、CX(2m)を選択制御データとし、CX(2m)=iの場合には、インデックス・レジスタ87−iの出力を選択するものである。セレクタ89は、CX(2m+1)を選択制御データとし、CX(2m+1)=iの場合には、インデックス・レジスタ87−iの出力を選択するものである。   The selector 86-i uses the data indicating whether or not CX (2m + 1) = i as selection control data. When CX (2m + 1) = i, the selector 86-i selects NxtI (CX (2m + 1)) and CX (2m + 1) = i. If 2m + 1) ≠ i, the output of the selector 85-i is selected. The index register 87-i stores the output of the selector 86-i. The selector 88 uses CX (2m) as selection control data, and selects the output of the index register 87-i when CX (2m) = i. The selector 89 uses CX (2m + 1) as selection control data, and selects the output of the index register 87-i when CX (2m + 1) = i.

MPSメモリ62、75もインデックス・メモリ58、70と同様に構成され、図16に示すNxtI(CX(2m))、NxtI(CX(2m+1)の代わりに、NxtMPS(CX(2m))、NxtMPS(CX(2m+1))を入力する。このようにすると、I(CX(2m))、PreI(CX(2m+1))の代わりに、MPS(CX(2m))、PreMPS(CX(2m+1))が出力されることになる。   The MPS memories 62 and 75 are configured in the same manner as the index memories 58 and 70, and instead of NxtI (CX (2m)) and NxtI (CX (2m + 1) shown in FIG. 16, NxtMPS (CX (2m)), NxtMPS ( In this way, MPS (CX (2m + 1)) and PreMPS (CX (2m + 1)) are output instead of I (CX (2m + 1)) and PreI (CX (2m + 1)). Will be.

図17はネクスト・インデックス回路69、83の回路図である。図17中、ネクスト・インデックス回路69において、90はセレクタであり、A(2m)[15]を選択制御データとし、A(2m)[15]=“0”の場合には、NMPS(I(CX(2m)))を選択し、A(2m)[15]=“1”の場合には、I(CX(2m))を選択するものである。91はセレクタであり、IsLPS(2m)を選択制御データとし、IsLPS(2m)=“0”の場合には、セレクタ90の出力を選択し、IsLPS(2m)=“1”の場合には、NLPS(I(CX(2m)))を選択するものである。セレクタ91の出力はNxtI(CX(2m))である。   FIG. 17 is a circuit diagram of the next index circuits 69 and 83. In FIG. 17, in the next index circuit 69, 90 is a selector, and A (2m) [15] is selected control data, and when A (2m) [15] = “0”, NMPS (I ( CX (2m))) is selected, and when A (2m) [15] = “1”, I (CX (2m)) is selected. Reference numeral 91 denotes a selector, which uses IsLPS (2m) as selection control data. When IsLPS (2m) = “0”, the output of the selector 90 is selected. When IsLPS (2m) = “1”, NLPS (I (CX (2m))) is selected. The output of the selector 91 is NxtI (CX (2m)).

また、ネクスト・インデックス回路83において、92はセレクタであり、A(2m+1)[15]を選択制御データとし、A(2m+1)[15]=“0”の場合にはNMPS(CX(2m+1))を選択し、A(2m+1)[15]=“1”の場合にはI(CX(2m+1))を選択するものである。93はセレクタであり、IsLPS(2m+1)を選択制御データとし、IsLPS(2m+1)=“0”の場合にはセレクタ92の出力を選択し、IsLPS(2m+1)=“1”の場合にはNLPS(I(CX(2m+1)))を選択するものである。セレクタ93の出力はNxtI(CX(2m+1))である。   In the next index circuit 83, reference numeral 92 denotes a selector, and A (2m + 1) [15] is selected as control data. When A (2m + 1) [15] = “0”, NMPS (CX (2m + 1)) When A (2m + 1) [15] = “1”, I (CX (2m + 1)) is selected. Reference numeral 93 denotes a selector, which uses IsLPS (2m + 1) as selection control data. When IsLPS (2m + 1) = “0”, the output of the selector 92 is selected. When IsLPS (2m + 1) = “1”, NLPS ( I (CX (2m + 1))) is selected. The output of the selector 93 is NxtI (CX (2m + 1)).

図18はC演算器55、56の回路図である。C演算部55において、94はセレクタであり、QeReg0(=レジスタ53−0が記憶するQe)が有効であるか否かを示すデータSelReg0(=レジスタ53−0が記憶するSel)を選択制御データとし、SelReg0=“0”の場合にはQeReg0を選択し、SelReg0=“1”の場合には0を選択する。95は加算器であり、Cレジスタ10が記憶するCとセレクタ94の出力を加算するものである。96はシフタであり、加算器95の出力をS0=Min(CT、BSReg0+BSReg1)だけ左にシフトするものである。BSReg0はレジスタ53−0が記憶するBS、BSReg1はレジスタ53−1が記憶するBSである。   FIG. 18 is a circuit diagram of the C calculators 55 and 56. In the C operation unit 55, 94 is a selector, and data SelReg0 (= Sel stored in the register 53-0) indicating whether or not QeReg0 (= Qe stored in the register 53-0) is valid is selected control data. When SelReg0 = “0”, QeReg0 is selected, and when SelReg0 = “1”, 0 is selected. Reference numeral 95 denotes an adder for adding C stored in the C register 10 and the output of the selector 94. A shifter 96 shifts the output of the adder 95 to the left by S0 = Min (CT, BSReg0 + BSReg1). BSReg0 is a BS stored in the register 53-0, and BSReg1 is a BS stored in the register 53-1.

97はセレクタであり、QeReg1(=レジスタ53−1が記憶するQe)が有効であるか否かを示すデータSelReg1(=レジスタ53−1が記憶するSel)を選択制御データとし、SelReg1=“0”の場合にはQeReg1を選択し、SelReg1=“1”の場合には0を選択するものである。98はシフタであり、セレクタ97の出力をS0=Min(CT−BSReg0、BSReg1)だけ左にシフトするものである。99は加算器であり、シフタ96の出力とシフタ98の出力を加算するものである。   Reference numeral 97 denotes a selector, and data SelReg1 (= Sel stored in the register 53-1) indicating whether or not QeReg1 (= Qe stored in the register 53-1) is valid is selected control data, and SelReg1 = "0" In the case of "", QeReg1 is selected, and in the case of SelReg1 = "1", 0 is selected. A shifter 98 shifts the output of the selector 97 to the left by S0 = Min (CT-BSReg0, BSReg1). An adder 99 adds the output of the shifter 96 and the output of the shifter 98.

100はセレクタであり、CT<=BSReg0であるか否かのデータを選択制御データとし、CT<=BSReg0である場合には、シフタ96の出力を選択し、CT>BSReg0の場合には、加算器99の出力を選択するものである。101はバイトアウト回路であり、セレクタ100の出力を入力してBを演算するものである。102はセレクタであり、BSReg0+BSReg1>=CTであるか否かのデータを選択制御データとし、BSReg0+BSReg1>=CTの場合には、バイトアウト回路101が出力するCを選択し、BSReg0+BSReg0<CTの場合には、加算器99の出力を選択するものである。   Reference numeral 100 denotes a selector. The selection control data is data indicating whether or not CT <= BSReg0. When CT <= BSReg0, the output of the shifter 96 is selected. When CT> BSReg0, addition is performed. The output of the device 99 is selected. Reference numeral 101 denotes a byte-out circuit which inputs the output of the selector 100 and calculates B. Reference numeral 102 denotes a selector that uses data indicating whether or not BSReg0 + BSReg1> = CT as selection control data. When BSReg0 + BSReg1> = CT, C is output from the byte-out circuit 101, and when BSReg0 + BSReg0 <CT. Is to select the output of the adder 99.

図19〜図24は本発明の第2実施形態の動作例を示す回路図である。記憶手段48に対するQe、BS、Selの書き込み、読み出し制御は、所定の制御回路(図示せず)で行なわれるが、図19〜図24に示す記憶手段48に対するQe、BS、Selの書き込み、読み出し制御は一例であり、その他の方法を取ることもできる。   19 to 24 are circuit diagrams showing an operation example of the second embodiment of the present invention. The Qe, BS, and Sel write / read control for the storage unit 48 is performed by a predetermined control circuit (not shown), but the Qe, BS, and Sel write / read for the storage unit 48 shown in FIGS. The control is an example, and other methods can be used.

図19は時刻t=T0に前段装置からA演算部51にCX(0)、D(0)が与えられると共に、A演算部52にCX(1)、D(1)が与えられた場合を示している。この場合、A演算部51は、Aレジスタ50が出力するA(0)を入力してA(1)を演算すると共に、Qe(0)、BS(0)、Sel(0)を出力する。A(1)はA演算部52に与えられ、Qe(0)、BS(0)、Sel(0)はレジスタ53−0に記憶される。A演算部52は、A演算部51が出力するA(1)を入力してA(2)を演算すると共に、Qe(1)、BS(1)、Sel(1)を出力する。A(2)はAレジスタ50に更新的に記憶され、Qe(1)、BS(1)、Sel(1)はレジスタ53−1に記憶される。   FIG. 19 shows a case where CX (0) and D (0) are given from the preceding apparatus to the A computing unit 51 and CX (1) and D (1) are given to the A computing unit 52 at time t = T0. Show. In this case, the A operation unit 51 inputs A (0) output from the A register 50, calculates A (1), and outputs Qe (0), BS (0), and Sel (0). A (1) is given to the A operation unit 52, and Qe (0), BS (0), and Sel (0) are stored in the register 53-0. The A calculation unit 52 inputs A (1) output from the A calculation unit 51, calculates A (2), and outputs Qe (1), BS (1), and Sel (1). A (2) is updated and stored in the A register 50, and Qe (1), BS (1), and Sel (1) are stored in the register 53-1.

図20は時刻t=T1に前段装置からA演算部51にCX(2)、D(2)が与えられると共に、A演算部52にCX(3)、D(3)が与えられた場合を示している。この場合、C演算部55は、レジスタ53−0が記憶するQe(0)、BS(0)、Sel(0)とCレジスタ54が記憶するC(0)を入力してC(1)を演算する。C演算部56は、レジスタ53−1が記憶するQe(1)、BS(1)、Sel(1)とC演算部55が演算したC(1)を入力してC(2)を演算する。C(2)はCレジスタ54に更新的に記憶される。   FIG. 20 shows a case where CX (2) and D (2) are given to the A computing unit 51 from the preceding apparatus at time t = T1, and CX (3) and D (3) are given to the A computing unit 52. Show. In this case, the C calculation unit 55 inputs Qe (0), BS (0), Sel (0) stored in the register 53-0 and C (0) stored in the C register 54 and inputs C (1). Calculate. The C calculation unit 56 inputs Qe (1), BS (1), Sel (1) stored in the register 53-1, and C (1) calculated by the C calculation unit 55, and calculates C (2). . C (2) is stored in the C register 54 in an update manner.

他方、A演算部51は、Aレジスタ50が出力するA(2)を入力してA(3)を演算すると共に、Qe(2)、BS(2)、Sel(2)を出力する。A(3)はA演算部52に与えられ、Qe(2)、BS(2)、Sel(2)はレジスタ53−0に記憶される。A演算部52は、A演算部51が出力するA(3)を入力してA(4)を演算すると共に、Qe(3)、BS(3)、Sel(3)を出力する。A(4)はAレジスタ50に更新的に記憶され、Qe(3)、BS(3)、Sel(3)はレジスタ53−1に記憶される。   On the other hand, the A calculation unit 51 inputs A (2) output from the A register 50 to calculate A (3), and outputs Qe (2), BS (2), and Sel (2). A (3) is given to the A operation unit 52, and Qe (2), BS (2), and Sel (2) are stored in the register 53-0. The A calculation unit 52 inputs A (3) output from the A calculation unit 51, calculates A (4), and outputs Qe (3), BS (3), and Sel (3). A (4) is updated and stored in the A register 50, and Qe (3), BS (3), and Sel (3) are stored in the register 53-1.

図21は時刻t=T2に前段装置からA演算部51にCX(4)、D(4)が与えられると共に、A演算部52にCX(5)、D(5)が与えられた場合を示している。この場合、C演算部55は、レジスタ53−0が記憶するQe(2)、BS(2)、Sel(2)とCレジスタ54が記憶するC(2)を入力してC(3)を演算する。C演算部56は、レジスタ53−1が記憶するQe(3)、BS(3)、Sel(3)とC演算部55が演算したC(3)を入力するが、この時点でバイトアウトが発生したとすると、C演算部56はB(0)を演算する。後処理したBS´(3)はレジスタ53−0に記憶される。   FIG. 21 shows a case where CX (4) and D (4) are given from the preceding apparatus to the A computing unit 51 and CX (5) and D (5) are given to the A computing unit 52 at time t = T2. Show. In this case, the C calculation unit 55 inputs Qe (2), BS (2), Sel (2) stored in the register 53-0 and C (2) stored in the C register 54 and inputs C (3). Calculate. The C calculation unit 56 inputs Qe (3), BS (3), Sel (3) stored in the register 53-1, and C (3) calculated by the C calculation unit 55. If it occurs, the C calculation unit 56 calculates B (0). The post-processed BS ′ (3) is stored in the register 53-0.

他方、A演算部51は、Aレジスタ50が出力するA(4)を入力してA(5)を演算すると共に、Qe(4)、BS(4)、Sel(4)を出力する。A(5)はA演算部52に与えられ、Qe(4)、BS(4)、Sel(4)はレジスタ53−1に記憶される。A演算部52は、A演算部51が出力するA(5)を入力してA(6)を演算すると共に、Qe(5)、BS(5)、Sel(5)を出力する。A(6)はAレジスタ50に更新的に記憶され、Qe(5)、BS(5)、Sel(5)はレジスタ53−2に記憶される。   On the other hand, the A operation unit 51 inputs A (4) output from the A register 50, calculates A (5), and outputs Qe (4), BS (4), and Sel (4). A (5) is given to the A operation unit 52, and Qe (4), BS (4), and Sel (4) are stored in the register 53-1. The A calculation unit 52 inputs A (5) output from the A calculation unit 51, calculates A (6), and outputs Qe (5), BS (5), and Sel (5). A (6) is updated and stored in the A register 50, and Qe (5), BS (5), and Sel (5) are stored in the register 53-2.

図22は時刻t=T3に前段装置からA演算部51にCX(6)、D(6)が与えられると共に、A演算部52にCX(7)、D(7)が与えられた場合を示している。この場合、C演算部55は、レジスタ53−0が記憶するBS´(3)とCレジスタ54が記憶するC´(3)を入力してC(4)を演算する。C演算部56は、レジスタ53−1が記憶するQe(4)、BS(4)、Sel(4)とC演算部55が演算したC(4)を入力してC(5)を演算する。C(5)はCレジスタ54に更新的に記憶される。   FIG. 22 shows a case where CX (6) and D (6) are given from the preceding apparatus to the A computing unit 51 and CX (7) and D (7) are given to the A computing unit 52 at time t = T3. Show. In this case, the C calculation unit 55 inputs BS ′ (3) stored in the register 53-0 and C ′ (3) stored in the C register 54, and calculates C (4). The C calculation unit 56 inputs Qe (4), BS (4), Sel (4) stored in the register 53-1 and C (4) calculated by the C calculation unit 55 and calculates C (5). . C (5) is stored in the C register 54 in an update manner.

他方、A演算部51は、Aレジスタ50が出力するA(6)を入力してA(7)を演算すると共に、Qe(6)、BS(6)、Sel(6)を出力する。A(7)はA演算部52に与えられ、Qe(6)、BS(6)、Sel(6)はレジスタ53−1に記憶される。A演算部52は、A演算部51が出力するA(7)を入力してA(8)を演算すると共に、Qe(7)、BS(7)、Sel(7)を出力する。A(8)はAレジスタ50に更新的に記憶され、Qe(7)、BS(7)、Sel(7)はレジスタ53−2に記憶される。レジスタ53−2に記憶されているQe(5)、BS(5)、Sel(5)はレジスタ53−0に記憶される。   On the other hand, the A calculation unit 51 inputs A (6) output from the A register 50 to calculate A (7), and outputs Qe (6), BS (6), and Sel (6). A (7) is given to the A operation unit 52, and Qe (6), BS (6), and Sel (6) are stored in the register 53-1. The A calculation unit 52 inputs A (7) output from the A calculation unit 51, calculates A (8), and outputs Qe (7), BS (7), and Sel (7). A (8) is updated and stored in the A register 50, and Qe (7), BS (7), and Sel (7) are stored in the register 53-2. Qe (5), BS (5), and Sel (5) stored in the register 53-2 are stored in the register 53-0.

図23は時刻t=T4に前段装置からA演算部51にCX(8)、D(8)が与えられると共に、A演算部52にCX(9)、D(9)が与えられた場合を示している。この場合、C演算部55は、レジスタ53−0が記憶するQe(5)、BS(5)、Sel(5)とCレジスタ54が記憶するC(5)を入力するが、この時点でバイトアウトが発生したとすると、C演算部55はB(1)を演算する。後処理したBS´(5)はレジスタ53−0に記憶される。C演算部55から出力されるC´(5)はCレジスタ54に記憶される。   FIG. 23 shows a case where CX (8) and D (8) are given from the preceding apparatus to the A computing unit 51 and CX (9) and D (9) are given to the A computing unit 52 at time t = T4. Show. In this case, the C calculation unit 55 inputs Qe (5), BS (5), Sel (5) stored in the register 53-0 and C (5) stored in the C register 54. If out occurs, the C calculation unit 55 calculates B (1). The post-processed BS ′ (5) is stored in the register 53-0. C ′ (5) output from the C calculation unit 55 is stored in the C register 54.

他方、A演算部51は、Aレジスタ50が出力するA(8)を入力してA(9)を演算すると共に、Qe(8)、BS(8)、Sel(8)を出力する。A(9)はA演算部52に与えられ、Qe(8)、BS(8)、Sel(8)はレジスタ53−3に記憶される。A演算部52は、A演算部51が出力するA(9)を入力してA(10)を演算すると共に、Qe(9)、BS(9)、Sel(9)を出力する。A(10)はAレジスタ50に更新的に記憶され、Qe(9)、BS(9)、Sel(9)はレジスタ53−4に記憶される。   On the other hand, the A calculation unit 51 inputs A (8) output from the A register 50 and calculates A (9), and outputs Qe (8), BS (8), and Sel (8). A (9) is given to the A operation unit 52, and Qe (8), BS (8), and Sel (8) are stored in the register 53-3. The A calculation unit 52 inputs A (9) output from the A calculation unit 51, calculates A (10), and outputs Qe (9), BS (9), and Sel (9). A (10) is updated and stored in the A register 50, and Qe (9), BS (9), and Sel (9) are stored in the register 53-4.

図24は時刻t=T5に前段装置からA演算部51にCX(10)、D(10)が与えられると共に、A演算部52にCX(11)、D(11)が与えられた場合を示している。この場合、C演算部55は、レジスタ53−0が記憶するBS´(5)とCレジスタ54が記憶するC´(5)を入力してC(6)を演算する。C演算部56は、レジスタ53−1が記憶するQe(6)、BS(6)、Sel(6)とC演算部56が演算したC(6)を入力してC(7)を演算する。C(7)はCレジスタ54に記憶される。以下、同様の動作が続けられる。   FIG. 24 shows a case where CX (10) and D (10) are given from the preceding apparatus to the A computing unit 51 and CX (11) and D (11) are given to the A computing unit 52 at time t = T5. Show. In this case, the C calculation unit 55 inputs BS ′ (5) stored in the register 53-0 and C ′ (5) stored in the C register 54 and calculates C (6). The C calculation unit 56 inputs Qe (6), BS (6), Sel (6) stored in the register 53-1, and C (6) calculated by the C calculation unit 56, and calculates C (7). . C (7) is stored in the C register 54. Thereafter, the same operation is continued.

以上のように、本発明の第2実施形態によれば、Aを演算する第1演算手段47とC、Bを演算する第2演算手段49とを、第1演算手段47が出力するQe、BS、Selを記憶する記憶手段48を介して独立に構成しているので、バイトアウトが生じた場合であっても、Cの演算結果を出力する場合であっても、Aの演算を行うことができる。したがって、Aの演算を連続して行い、MQ−CODER方式の算術符号化演算の高速化を図ることができる。また、2個のA演算部51、52を設け、CX(2m)、D(2m)の組とCX(2m+1)、D(2m+1)の組とを並列して入力し、これらを並列処理できるようにしているので、本発明の第1実施形態の場合よりも高速化を図ることができる。   As described above, according to the second embodiment of the present invention, the first calculation means 47 for calculating A and the second calculation means 49 for calculating C and B are output by Qe, Since it is configured independently via the storage means 48 for storing BS and Sel, the calculation of A is performed even when byte out occurs or when the calculation result of C is output. Can do. Therefore, the operation of A can be performed continuously, and the speed of the arithmetic coding operation of the MQ-CODER system can be increased. In addition, two A calculation units 51 and 52 are provided, and a set of CX (2m) and D (2m) and a set of CX (2m + 1) and D (2m + 1) can be input in parallel, and these can be processed in parallel. Therefore, the speed can be increased as compared with the case of the first embodiment of the present invention.

(第3実施形態)
図25は本発明の第3実施形態の要部を示す回路図である。図25中、104は第1演算手段、105は記憶手段、106は第2演算手段である。第1演算手段104はCX、Dを入力してAを演算するものである。記憶手段105は第1演算手段104が出力するCの演算に必要なQe、BS、Selを記憶するものである。第2演算手段106は記憶手段105が記憶するCの演算に必要なQe、BS、Selを入力してC、Bを演算するものである。本実施形態では、前段装置(図示せず)からCX(3m)、D(3m)の組とCX(3m+1)、D(3m+1)の組とCX(3m+2)、D(3m+2)の組が並列して与えられる。
(Third embodiment)
FIG. 25 is a circuit diagram showing the main part of the third embodiment of the present invention. In FIG. 25, reference numeral 104 denotes first calculation means, 105 denotes storage means, and 106 denotes second calculation means. The first calculating means 104 inputs CX and D and calculates A. The storage unit 105 stores Qe, BS, and Sel necessary for the calculation of C output from the first calculation unit 104. The second calculating means 106 inputs Qe, BS and Sel necessary for calculating C stored in the storage means 105 and calculates C and B. In the present embodiment, a group of CX (3m) and D (3m) and a group of CX (3m + 1) and D (3m + 1) and a group of CX (3m + 2) and D (3m + 2) are arranged in parallel from the preceding apparatus (not shown). Given.

第1演算手段104において、107はAレジスタ、108、109、110はA演算部である。Aレジスタ107はA(3m)を記憶するものである。A演算部108は、CX(3m)、D(3m)とAレジスタ107が記憶するA(3m)を入力し、MQ−CODER方式によりA(3m+1)を演算するものである。   In the first calculation means 104, 107 is an A register, and 108, 109, and 110 are A calculation units. The A register 107 stores A (3 m). The A calculation unit 108 inputs CX (3m), D (3m) and A (3m) stored in the A register 107, and calculates A (3m + 1) by the MQ-CODER method.

A演算部109は、CX(3m+1)、D(3m+1)とA演算部108が出力するA(3m+1)を入力し、MQ−CODER方式によりA(3m+2)を演算するものである。A演算部110はCX(3m+2)、D(3m+2)とA演算部109が出力するA(3m+2)を入力し、MQ−CODER方式によりA(3m+3)を演算するものである。A演算部110が演算したA(3m+3)は、A(3m)に代わってAレジスタ107に更新的に記憶される。   The A calculation unit 109 inputs CX (3m + 1), D (3m + 1) and A (3m + 1) output from the A calculation unit 108, and calculates A (3m + 2) by the MQ-CODER method. The A calculation unit 110 inputs CX (3m + 2) and D (3m + 2) and A (3m + 2) output from the A calculation unit 109, and calculates A (3m + 3) by the MQ-CODER method. A (3m + 3) calculated by the A calculation unit 110 is stored in the A register 107 in place of A (3m).

記憶手段105において、111−0〜111−4は記憶手段105が備えるレジスタ中の5個を示しており、レジスタ111−0〜111−4を始めとする記憶手段105が備えるレジスタは、Qe(k)、BS(k)、Sel(k)を記憶する容量を持つものである。但し、k=3m、3m+1、3m+2である。   In the storage unit 105, 111-0 to 111-4 indicate five of the registers included in the storage unit 105. The registers included in the storage unit 105 including the registers 111-0 to 111-4 are Qe ( k), BS (k), and Sel (k). However, k = 3m, 3m + 1, 3m + 2.

第2演算手段106において、112はCレジスタ、113、114、115はC演算部である。Cレジスタ112はCを記憶するものである。C演算部113は、レジスタ111−0が記憶するQe、BS、SelとCレジスタ112が記憶するCを入力し、MQ−CODER方式によりC、Bを演算するものである。   In the second calculation means 106, 112 is a C register, and 113, 114, and 115 are C calculation units. The C register 112 stores C. The C calculation unit 113 inputs Qe, BS, and Sel stored in the register 111-0 and C stored in the C register 112, and calculates C and B by the MQ-CODER method.

C演算部114は、レジスタ111−1が記憶するQe、BS、SelとC演算部113が出力するCを入力し、MQ−CODER方式によりC、Bを演算するものである。C演算部115は、レジスタ111−2が記憶するQe、BS、SelとC演算部113が出力するCを入力し、MQ−CODER方式によりC、Bを演算するものである。C演算部115が演算したCはCレジスタ112に更新的に記憶される。   The C calculation unit 114 inputs Qe, BS, and Sel stored in the register 111-1 and C output from the C calculation unit 113, and calculates C and B by the MQ-CODER method. The C calculation unit 115 inputs Qe, BS, and Sel stored in the register 111-2 and C output from the C calculation unit 113, and calculates C and B by the MQ-CODER method. C calculated by the C calculation unit 115 is stored in the C register 112 in an update manner.

図26はA演算部108、109、110の回路図である。図26中、A演算部108において、116はインデックス・メモリであり、CX(3m)を入力し、I(CX(3m))を出力するものである。117はQeテーブル回路であり、インデックス・メモリ回路116が出力するI(CX(3m))を入力し、Qe(3m)=Qe(I(CX(3m)))を出力するものである。   FIG. 26 is a circuit diagram of the A arithmetic units 108, 109, and 110. In FIG. 26, in the A operation unit 108, reference numeral 116 denotes an index memory which inputs CX (3m) and outputs I (CX (3m)). Reference numeral 117 denotes a Qe table circuit which inputs I (CX (3m)) output from the index memory circuit 116 and outputs Qe (3m) = Qe (I (CX (3m))).

118は減算器であり、Aレジスタ107が記憶するA(3m)からQeテーブル回路117が出力するQe(3m)を減算するものである。119は比較器であり、Qeテーブル回路117が出力するQe(3m)を左に1ビットシフトしたもの(Qe(3m)<<1)とAレジスタ107が記憶するA(3m)を比較し、A(3m)<(Qe(3m)<<1)の場合には“1”を出力し、それ以外の場合には“0”を出力するものである。   A subtractor 118 subtracts Qe (3m) output from the Qe table circuit 117 from A (3m) stored in the A register 107. A comparator 119 compares Qe (3m) output from the Qe table circuit 117 by 1 bit to the left (Qe (3m) << 1) and A (3m) stored in the A register 107. When A (3m) << (Qe (3m) << 1), "1" is output, and otherwise, "0" is output.

120はMPSメモリであり、CX(3m)を入力し、MPS(CX(3m))を出力するものである。121はExOR回路であり、MPSメモリ120が出力するMPS(CX(3m))とD(3m)をExOR処理してIsLPS(3m)を出力するものである。122はExOR回路であり、比較器119の出力とExOR回路121が出力するIsLPS(3m)をExOR処理し、Sel(3m)を出力するものである。   Reference numeral 120 denotes an MPS memory which inputs CX (3m) and outputs MPS (CX (3m)). Reference numeral 121 denotes an ExOR circuit which performs ExOR processing on MPS (CX (3m)) and D (3m) output from the MPS memory 120 and outputs IsLPS (3m). Reference numeral 122 denotes an ExOR circuit that performs ExOR processing on the output of the comparator 119 and IsLPS (3m) output from the ExOR circuit 121 and outputs Sel (3m).

123はセレクタであり、ExOR回路122が出力するSel(3m)を選択制御データとし、Sel(3m)=“1”の場合には、Qeテーブル回路117が出力するQe(3m)を選択し、Sel(3m)=“0”の場合には、減算器118が出力する(A(3m)−Qe(3m))を選択するものである。124はRENORME回路であり、セレクタ123の出力を入力して符号化再正規化処理を行い、A(3m+1)、BS(3m)を出力するものである。   123 is a selector, and Sel (3m) output from the ExOR circuit 122 is used as selection control data. When Sel (3m) = “1”, Qe (3m) output from the Qe table circuit 117 is selected. When Sel (3m) = “0”, the subtracter 118 selects (A (3m) −Qe (3m)) output. Reference numeral 124 denotes a RENORME circuit which receives the output of the selector 123, performs encoding renormalization processing, and outputs A (3m + 1) and BS (3m).

125はAND回路であり、SWITCH(I(CX(3m)))とExOR回路121が出力するIsLPS(3m)をAND処理するものである。126はExOR回路であり、MPSメモリ120が出力するMPS(CX(3m))とAND回路125の出力をExOR処理してNxtMPS(CX(3m))を出力するものである。127はネクスト・インデックス回路であり、インデックス・メモリ116が出力するI(CX(3m))、減算器118が出力する(A(3m)−Qe(3m))及びExOR回路121が出力するIsLPS(3m)を入力し、NxtI(CX(3m))を出力するものである。   An AND circuit 125 AND-processes SWITCH (I (CX (3m))) and IsLPS (3m) output from the ExOR circuit 121. An ExOR circuit 126 performs an EXOR process on the MPS (CX (3m)) output from the MPS memory 120 and the output of the AND circuit 125 and outputs NxtMPS (CX (3m)). Reference numeral 127 denotes a next index circuit, I (CX (3m)) output from the index memory 116, (A (3m) -Qe (3m)) output from the subtractor 118, and IsLPS (exited by the ExOR circuit 121). 3m) is input and NxtI (CX (3m)) is output.

A演算部109において、128はインデックス・メモリであり、CX(3m+1)を入力し、PreI(CX(3m+1))を出力するものである。129はセレクタであり、CX(3m)=CX(3m+1)であるか否かを示すデータを選択制御データとし、CX(3m)=CX(3m+1)の場合にはネクスト・インデックス回路127が出力するNxtI(CX(3m))を選択し、CX(3m)≠CX(3m+1)の場合にはインデックス・メモリ128が出力するPreI(CX(3m+1))を選択するものである。セレクタ129の出力はI(CX(3m+1))である。   In the A operation unit 109, reference numeral 128 denotes an index memory which inputs CX (3m + 1) and outputs PreI (CX (3m + 1)). Reference numeral 129 denotes a selector, and data indicating whether or not CX (3m) = CX (3m + 1) is used as selection control data. When CX (3m) = CX (3m + 1), the next index circuit 127 outputs. NxtI (CX (3m + 1)) is selected. When CX (3m) ≠ CX (3m + 1), PreI (CX (3m + 1)) output from the index memory 128 is selected. The output of the selector 129 is I (CX (3m + 1)).

130はQeテーブル回路であり、セレクタ129が出力するI(CX(3m+1))を入力し、Qe(3m+1)=Qe(I(CX(3m+1))を出力するものである。131は減算器であり、RENORME回路124が出力するA(3m+1)からQeテーブル回路130が出力するQe(3m+1)を減算するものである。   A Qe table circuit 130 receives I (CX (3m + 1)) output from the selector 129 and outputs Qe (3m + 1) = Qe (I (CX (3m + 1)) 131. Reference numeral 131 denotes a subtractor. Yes, Qe (3m + 1) output from the Qe table circuit 130 is subtracted from A (3m + 1) output from the RENORME circuit 124.

132は比較器であり、Qeテーブル回路130が出力するQe(3m+1)を左に1ビットシフトしたもの(Qe(3m+1)<<1)とRENORME回路124が出力するA(3m+1)を比較し、A(3m+1)<(Qe(3m+1)<<1)の場合には“1”を出力し、それ以外の場合には“0”を出力するものである。133はMPSメモリであり、CX(3m+1)を入力し、PreMPS(CX(3m+1))を出力するものである。   A comparator 132 compares Qe (3m + 1) output from the Qe table circuit 130 by 1 bit to the left (Qe (3m + 1) << 1) and A (3m + 1) output from the RENORME circuit 124. When A (3m + 1) << (Qe (3m + 1) << 1), "1" is output, and otherwise, "0" is output. Reference numeral 133 denotes an MPS memory that inputs CX (3m + 1) and outputs PreMPS (CX (3m + 1)).

134はセレクタであり、CX(3m)=CX(3m+1)であるか否かを示すデータを選択制御データとし、CX(3m)=CX(3m+1)の場合には、ExOR回路126が出力するNxtMPS(CX(3m))を選択し、CX(3m)≠CX(3m+1)の場合には、MPSメモリ133が出力するPreMPS(CX(3m+1))を選択するものである。セレクタ134の出力はMPS(CX(3m+1))である。   Reference numeral 134 denotes a selector. The data indicating whether CX (3m) = CX (3m + 1) is used as selection control data. If CX (3m) = CX (3m + 1), the NxtMPS output from the ExOR circuit 126 is output. When (CX (3m)) is selected and CX (3m) ≠ CX (3m + 1), PreMPS (CX (3m + 1)) output from the MPS memory 133 is selected. The output of the selector 134 is MPS (CX (3m + 1)).

135はExOR回路であり、セレクタ134が出力するMPS(CX(3m+1))とD(3m+1)をExOR処理してIsLPS(3m+1)を出力するものである。136はExOR回路であり、比較器132の出力とExOR回路135が出力するIsLPS(3m+1)をExOR処理し、Sel(3m+1)を出力するものである。137はセレクタであり、ExOR回路136が出力するSel(3m+1)を選択制御データとし、Sel(3m+1)=“1”の場合には、Qeテーブル回路130が出力するQe(3m+1)を選択し、Sel(3m+1)=“0”の場合には、減算器131が出力する(A(3m+1)−Qe(3m+1))を選択するものである。   Reference numeral 135 denotes an ExOR circuit, which performs ExOR processing on MPS (CX (3m + 1)) and D (3m + 1) output from the selector 134 and outputs IsLPS (3m + 1). An ExOR circuit 136 performs ExOR processing on the output of the comparator 132 and IsLPS (3m + 1) output from the ExOR circuit 135, and outputs Sel (3m + 1). A selector 137 selects Sel (3m + 1) output from the ExOR circuit 136 as selection control data. When Sel (3m + 1) = “1”, Qe (3m + 1) output from the Qe table circuit 130 is selected. When Sel (3m + 1) = “0”, the subtracter 131 selects (A (3m + 1) −Qe (3m + 1)) output.

138はRENORME回路であり、セレクタ137が出力するQe(3m+1)又は(A(3m+1)−Qe(3m+1))を入力して符号化再正規化処理を行い、A(3m+2)、BS(3m+1)を出力するものである。139はAND回路であり、SWITCH(I(CX(3m+1)))とExOR回路135が出力するIsLPS(3m+1)をAND処理するものである。   Reference numeral 138 denotes a RENORME circuit, which inputs Qe (3m + 1) or (A (3m + 1) −Qe (3m + 1)) output from the selector 137 and performs encoding renormalization processing to obtain A (3m + 2) and BS (3m + 1). Is output. An AND circuit 139 performs an AND process on SWITCH (I (CX (3m + 1))) and IsLPS (3m + 1) output from the ExOR circuit 135.

140はExOR回路であり、MPSメモリ133が出力するPreMPS(CX(3m+1))とAND回路139の出力をExOR処理してNxtMPS(CX(3m+1))を出力するものである。141はネクスト・インデックス回路であり、セレクタ129が出力するI(CX(3m+1))、減算器131が出力する(A(3m+1)−Qe(3m+1))及びExOR回路135が出力するIsLPS(3m+1)を入力してNxtI(CX(3m+1))を出力するものである。   Reference numeral 140 denotes an ExOR circuit which performs ExOR processing on the PreMPS (CX (3m + 1)) output from the MPS memory 133 and the output of the AND circuit 139 and outputs NxtMPS (CX (3m + 1)). Reference numeral 141 denotes a next index circuit, which is I (CX (3m + 1)) output from the selector 129, (A (3m + 1) -Qe (3m + 1)) output from the subtractor 131, and IsLPS (3m + 1) output from the ExOR circuit 135. And NxtI (CX (3m + 1)) is output.

A演算部110において、142はインデックス・メモリであり、CX(3m+2)を入力し、PreI(CX(3m+2))を出力するものである。143はセレクタであり、CX(3m)=CX(3m+2)であるか否かを示すデータを選択制御データとし、CX(3m)=CX(3m+2)の場合には、ネクスト・インデックス回路127が出力するNxtI(CX(3m))を選択し、CX(3m)≠CX(3m+2)の場合には、インデックス・メモリ142が出力するPreI(CX(3m+2))を選択するものである。   In the A operation unit 110, reference numeral 142 denotes an index memory which inputs CX (3m + 2) and outputs PreI (CX (3m + 2)). Reference numeral 143 denotes a selector. The data indicating whether CX (3m) = CX (3m + 2) is used as selection control data. When CX (3m) = CX (3m + 2), the next index circuit 127 outputs the data. NxtI (CX (3m + 2)) to be output from the index memory 142 is selected when CX (3m) ≠ CX (3m + 2).

144はセレクタであり、CX(3m+1)=CX(3m+2)であるか否かを示すデータを選択制御データとし、CX(3m+1)=CX(3m+2)の場合には、ネクスト・インデックス回路141が出力するNxtI(CX(3m+1))を選択し、CX(3m)≠CX(3m+1)の場合には、セレクタ143の出力を選択するものである。セレクタ144の出力はI(CX(3m+2))である。   Reference numeral 144 denotes a selector. The data indicating whether CX (3m + 1) = CX (3m + 2) is used as selection control data. When CX (3m + 1) = CX (3m + 2), the next index circuit 141 outputs the data. NxtI (CX (3m + 1)) to be selected is selected, and when CX (3m) ≠ CX (3m + 1), the output of the selector 143 is selected. The output of the selector 144 is I (CX (3m + 2)).

145はQeテーブル回路であり、セレクタ144が出力するI(CX(3m+2))を入力し、Qe(3m+2)=Qe(I(CX(3m+2))を出力するものである。146は減算器であり、RENORME回路138が出力するA(3m+2)からQeテーブル回路145が出力するQe(3m+2)を減算するものである。   A Qe table circuit 145 receives I (CX (3m + 2)) output from the selector 144 and outputs Qe (3m + 2) = Qe (I (CX (3m + 2)). 146 is a subtractor. Yes, Qe (3m + 2) output from the Qe table circuit 145 is subtracted from A (3m + 2) output from the RENORME circuit 138.

147は比較器であり、Qeテーブル回路145が出力するQe(3m+2)を左に1ビットシフトしたもの(Qe(3m+2)<<1)とRENORME回路138が出力するA(3m+2)を比較し、A(3m+2)<(Qe(3m+2)<<1)の場合には“1”を出力し、それ以外の場合には“0”を出力するものである。148はMPSメモリであり、CX(3m+2)を入力し、PreMPS(CX(3m+2))を出力するものである。   147 is a comparator that compares Qe (3m + 2) output from the Qe table circuit 145 by 1 bit to the left (Qe (3m + 2) << 1) and A (3m + 2) output from the RENORME circuit 138. When A (3m + 2) <(Qe (3m + 2) << 1), “1” is output, and otherwise “0” is output. Reference numeral 148 denotes an MPS memory that inputs CX (3m + 2) and outputs PreMPS (CX (3m + 2)).

149はセレクタであり、CX(3m)=CX(3m+2)であるか否かを示すデータを選択制御データとし、CX(3m)=CX(3m+2)の場合には、ExOR回路126が出力するNxtMPS(CX(3m))を選択し、CX(3m)≠CX(3m+2)の場合には、MPSメモリ148が出力するPreMPS(CX(3m+2))を選択するものである。   Reference numeral 149 denotes a selector, and data indicating whether CX (3m) = CX (3m + 2) is used as selection control data. If CX (3m) = CX (3m + 2), the NxtMPS output from the ExOR circuit 126 is output. When (CX (3m)) is selected and CX (3m) ≠ CX (3m + 2), PreMPS (CX (3m + 2)) output from the MPS memory 148 is selected.

150はセレクタであり、CX(3m+1)=CX(3m+2)であるか否かを示すデータを選択制御データとし、CX(3m+1)=CX(3m+2)の場合には、ExOR回路140が出力するNxtMPS(CX(3m+1))を選択し、CX(3m+1)≠CX(3m+2)の場合には、セレクタ149の出力を選択するものである。セレクタ150の出力はMPS(CX(3m+2))である。   Reference numeral 150 denotes a selector. The data indicating whether or not CX (3m + 1) = CX (3m + 2) is used as selection control data. When CX (3m + 1) = CX (3m + 2), the NxtMPS output from the ExOR circuit 140 is output. When (CX (3m + 1)) is selected and CX (3m + 1) ≠ CX (3m + 2), the output of the selector 149 is selected. The output of the selector 150 is MPS (CX (3m + 2)).

151はExOR回路であり、セレクタ150が出力するMPS(CX(3m+2))とD(3m+2)をExOR処理してIsLPS(3m+2)を出力するものである。152はExOR回路であり、比較器147の出力とExOR回路151が出力するIsLSP(3m+2)をExOR処理してSel(3m+2)を出力するものである。153はセレクタであり、ExOR回路152が出力するSel(3m+2)を選択制御データとし、Sel(3m+2)=“1”の場合には、Qeテーブル回路145が出力するQe(3m+2)を選択し、Sel(3m+2)=“0”の場合には、減算器146が出力する(A(3m+2)−Qe(3m+2))を選択するものである。   Reference numeral 151 denotes an ExOR circuit that performs ExOR processing on MPS (CX (3m + 2)) and D (3m + 2) output from the selector 150 and outputs IsLPS (3m + 2). An ExOR circuit 152 performs ExOR processing on the output of the comparator 147 and IsLSP (3m + 2) output from the ExOR circuit 151 and outputs Sel (3m + 2). A selector 153 selects Sel (3m + 2) output from the ExOR circuit 152 as selection control data. When Sel (3m + 2) = “1”, Qe (3m + 2) output from the Qe table circuit 145 is selected. When Sel (3m + 2) = “0”, the subtracter 146 selects (A (3m + 2) −Qe (3m + 2)).

154はRENORME回路であり、セレクタ153の出力を入力して符号化再正規化処理を行い、A(3m+3)、BS(3m+2)を出力するものである。155はAND回路であり、SWITCH(I(CX(3m+2)))とExOR回路151が出力するIsLPS(3m+2)をAND処理するものである。156はExOR回路であり、MPSメモリ148が出力するPreMPS(CX(3m+2))とAND回路155の出力をExOR処理してNxtMPS(CX(3m+2))を出力するものである。   Reference numeral 154 denotes a RENORME circuit which receives the output of the selector 153, performs encoding renormalization processing, and outputs A (3m + 3) and BS (3m + 2). An AND circuit 155 performs an AND process on SWITCH (I (CX (3m + 2))) and IsLPS (3m + 2) output from the ExOR circuit 151. Reference numeral 156 denotes an ExOR circuit, which performs ExOR processing on the PreMPS (CX (3m + 2)) output from the MPS memory 148 and the output of the AND circuit 155 and outputs NxtMPS (CX (3m + 2)).

157はネクスト・インデックス回路であり、セレクタ144が出力するI(CX(3m+2))、減算器146が出力する(A(3m+2)−Qe(3m+2))及びExOR回路151が出力するIsLPS(3m+2)を入力してNxtI(CX(3m+2))を出力するものである。   Reference numeral 157 denotes a next index circuit, which is output from the selector 144 (CX (3m + 2)), output from the subtractor 146 (A (3m + 2) −Qe (3m + 2)), and IsLPS (3m + 2) output from the ExOR circuit 151. And NxtI (CX (3m + 2)) is output.

図27はインデックス・メモリ116、128、142の構成例の回路図である。本発明の第3実施形態では、インデックス・メモリ116、128、142は一体として構成されている。図27中、159−i、160−i、161−iはセレクタ、162−iはインデックス・レジスタ、163、164、165はセレクタである。   FIG. 27 is a circuit diagram of a configuration example of the index memories 116, 128, and 142. In the third embodiment of the present invention, the index memories 116, 128, 142 are configured as a single unit. In FIG. 27, 159-i, 160-i, 161-i are selectors, 162-i are index registers, and 163, 164, 165 are selectors.

セレクタ159−iは、CX(3m)=iであるか否かを示すデータを選択制御データとし、CX(3m)=iの場合には、NxtI(CX(3m))を選択し、CX(3m)≠iの場合には、インデックス・レジスタ162−iの出力を選択するものである。セレクタ160−iは、CX(3m+1)=iであるか否かを示すデータを選択制御データとし、CX(3m+1)=iの場合には、NxtI(CX(3m+1))を選択し、CX(3m+1)≠iの場合には、セレクタ159−iの出力を選択するものである。   The selector 159-i uses the data indicating whether or not CX (3m) = i as selection control data. When CX (3m) = i, the selector 159-i selects NxtI (CX (3m)) and CX (3m) = i. 3m) If ≠ i, the output of the index register 162-i is selected. The selector 160-i uses the data indicating whether or not CX (3m + 1) = i as selection control data. When CX (3m + 1) = i, the selector 160-i selects NxtI (CX (3m + 1)) and CX (3m + 1) = i. When 3m + 1) ≠ i, the output of the selector 159-i is selected.

セレクタ161−iは、CX(3m+2)=iであるか否かを示すデータを選択制御データとし、CX(3m+2)=iの場合には、NxtI(CX(3m+2))を選択し、CX(3m+2)≠iの場合には、セレクタ160−iの出力を選択するものである。インデックス・レジスタ162−iは、セレクタ161−iの出力を記憶するものである。セレクタ163は、CX(3m)を選択制御データとし、CX(3m)=iの場合には、Iレジスタ162−iの出力を選択するものであり、セレクタ163の出力はI(CX(3m))である。   The selector 161-i uses data indicating whether or not CX (3m + 2) = i as selection control data. If CX (3m + 2) = i, NxtI (CX (3m + 2)) is selected and CX ( When 3m + 2) ≠ i, the output of the selector 160-i is selected. The index register 162-i stores the output of the selector 161-i. The selector 163 selects CX (3m) as the selection control data, and when CX (3m) = i, selects the output of the I register 162-i. The output of the selector 163 is I (CX (3m) ).

セレクタ164は、CX(3m+1)を選択制御データとし、CX(3m+1)=iの場合には、インデックス・レジスタ162−iの出力を選択するものであり、セレクタ164の出力はPreI(CX(3m+1))である。セレクタ165は、CX(3m+2)を選択制御データとし、CX(3m+2)=iの場合には、インデックス・レジスタ162−iの出力を選択するものであり、セレクタ165の出力はPreI(CX(3m+2))である。   The selector 164 selects CX (3m + 1) as selection control data, and when CX (3m + 1) = i, selects the output of the index register 162-i. The output of the selector 164 is PreI (CX (3m + 1). )). The selector 165 selects CX (3m + 2) as the selection control data, and when CX (3m + 2) = i, selects the output of the index register 162-i. The output of the selector 165 is PreI (CX (3m + 2). )).

MPSメモリ120、133、148もインデックス・メモリ116、128、142と同様に構成され、図27に示すNxtI(CX(3m))、NxtI(CX(3m+1)、NxtI(CX(3m+2)の代わりに、NxtMPS(CX(3m))、NxtMPS(CX(3m+1))、NxtMPS(CX(3m+2))を入力する。このようにすると、I(CX(3m))、PreI(CX(3m+1))、PreI(CX(3m+2))の代わりに、MPS(CX(3m))、PreMPS(CX(3m+1))、PreMPS(CX(3m+2))が出力されることになる。   The MPS memories 120, 133, and 148 are configured in the same manner as the index memories 116, 128, and 142, and instead of NxtI (CX (3m)), NxtI (CX (3m + 1), and NxtI (CX (3m + 2)) shown in FIG. , NxtMPS (CX (3m + 1)), NxtMPS (CX (3m + 1)), and NxtMPS (CX (3m + 2)) are input in this way, so that I (CX (3m)), PreI (CX (3m + 1)), PreI Instead of (CX (3m + 2)), MPS (CX (3m)), PreMPS (CX (3m + 1)), and PreMPS (CX (3m + 2)) are output.

図28はネクスト・インデックス回路127、141、157の回路図である。ネクスト・インデックス127において、167はセレクタであり、A(3m)[15]を選択制御データとし、A(3m)[15]=“0”の場合には、NMPS(I(CX(3m)))を選択し、A(3m)[15]=“1”の場合には、I(CX(3m))を選択するものである。168はセレクタであり、IsLPS(3m)を選択制御データとし、IsLPS(3m)=“0”の場合には、セレクタ167の出力を選択し、IsLPS(3m)=“1”の場合には、NLPS(I(CX(3m)))を選択するものである。   FIG. 28 is a circuit diagram of the next index circuits 127, 141, and 157. In the next index 127, reference numeral 167 denotes a selector, and A (3m) [15] is selected control data. When A (3m) [15] = “0”, NMPS (I (CX (3m)) ) And A (3m) [15] = “1”, I (CX (3m)) is selected. A selector 168 uses IsLPS (3m) as selection control data. When IsLPS (3m) = "0", the output of the selector 167 is selected. When IsLPS (3m) = "1", NLPS (I (CX (3m))) is selected.

また、ネクスト・インデックス回路141において、169はセレクタであり、A(3m+1)[15]を選択制御データとし、A(3m+1)[15]=“0”の場合には、NMPS(I(CX(3m+1)))を選択し、A(3m+1)[15]=“1”の場合には、I(CX(3m+1))を選択するものである。170はセレクタであり、IsLPS(3m+1)を選択制御データとし、IsLPS(3m+1)=“0”の場合には、セレクタ169の出力を選択し、IsLPS(3m+1)=“1”の場合には、NLPS(I(CX(3m+1)))を選択するものである。   In the next index circuit 141, reference numeral 169 denotes a selector. When A (3m + 1) [15] is selected control data, and A (3m + 1) [15] = “0”, NMPS (I (CX ( 3m + 1))) is selected, and when A (3m + 1) [15] = “1”, I (CX (3m + 1)) is selected. Reference numeral 170 denotes a selector, which uses IsLPS (3m + 1) as selection control data. When IsLPS (3m + 1) = “0”, the output of the selector 169 is selected. When IsLPS (3m + 1) = “1”, NLPS (I (CX (3m + 1))) is selected.

また、ネクスト・インデックス回路157において、171はセレクタであり、A(3m+2)[15]を選択制御データとし、A(3m+2)[15]=“0”の場合には、NMPS(I(CX(3m+2)))を選択し、A(3m+2)[15]=“1”の場合には、I(CX(3m+2))を選択するものである。172はセレクタであり、IsLPS(3m+2)を選択制御データとし、IsLPS(3m+2)=“0”の場合には、セレクタ171の出力を選択し、IsLPS(3m+2)=“1”の場合には、NLPS(I(CX(3m+2)))を選択するものである。   In the next index circuit 157, reference numeral 171 denotes a selector. When A (3m + 2) [15] is selected control data, and A (3m + 2) [15] = “0”, NMPS (I (CX ( 3m + 2))) and when A (3m + 2) [15] = “1”, I (CX (3m + 2)) is selected. A selector 172 uses IsLPS (3m + 2) as selection control data. When IsLPS (3m + 2) = “0”, the output of the selector 171 is selected. When IsLPS (3m + 2) = “1”, NLPS (I (CX (3m + 2))) is selected.

図29はC演算器113、114、115の回路図である。C演算部113において、174はセレクタである。セレクタ174は、QeReg0(=レジスタ111−0が記憶するQe)が有効であるか否かを示すデータSelReg0(=レジスタ111−0が記憶するSel)を選択制御データとし、SelReg0=“0”の場合にはQeReg0を選択し、SelReg0=“1”の場合には0を選択する。   FIG. 29 is a circuit diagram of the C calculators 113, 114, and 115. In the C calculation unit 113, 174 is a selector. The selector 174 uses the data SelReg0 (= Sel stored in the register 111-0) indicating whether or not QeReg0 (= Qe stored in the register 111-0) is valid as selection control data, and SelReg0 = “0”. In this case, QeReg0 is selected, and when SelReg0 = "1", 0 is selected.

175は加算器であり、Cレジスタ10が記憶するCとセレクタ175の出力を加算するものである。176はシフタであり、加算器175の出力をS0=Min(CT、BSReg0+BSReg1+BSReg2)だけ左にシフトするものである。但し、BSReg0はレジスタ111−0が記憶するBS、BSReg1はレジスタ111−1が記憶するBS、BSReg2はレジスタ111−2が記憶するBSである。   Reference numeral 175 denotes an adder that adds C stored in the C register 10 and the output of the selector 175. A shifter 176 shifts the output of the adder 175 to the left by S0 = Min (CT, BSReg0 + BSReg1 + BSReg2). However, BSReg0 is a BS stored in the register 111-0, BSReg1 is a BS stored in the register 111-1, and BSReg2 is a BS stored in the register 111-2.

177はセレクタである。セレクタ177は、QeReg1(=レジスタ111−1が記憶するQe)が有効であるか否かを示すデータSelReg1(=レジスタ111−1が記憶するSel)を選択制御データとし、SelReg1=“0”の場合にはQeReg1を選択し、SelReg1=“1”の場合には0を選択する。178はシフタであり、セレクタ177の出力をS1=Min(CT−BSReg0、BSReg1+BSReg2)だけ左にシフトするものである。179は加算器であり、シフタ176が出力するCとシフタ178の出力を加算してCを出力するものである。   Reference numeral 177 denotes a selector. The selector 177 uses the data SelReg1 (= Sel stored in the register 111-1) indicating whether or not QeReg1 (= Qe stored in the register 111-1) is valid as the selection control data, and SelReg1 = “0”. In this case, QeReg1 is selected, and when SelReg1 = "1", 0 is selected. A shifter 178 shifts the output of the selector 177 to the left by S1 = Min (CT-BSReg0, BSReg1 + BSReg2). An adder 179 adds C output from the shifter 176 and output from the shifter 178 and outputs C.

180はセレクタである。セレクタ180は、QeReg2(=レジスタ111−2が記憶するQe)が有効であるか否かを示すデータSelReg2(=レジスタ111−2が記憶するSel)を選択制御データとし、SelReg2=“0”の場合にはQeReg2を選択し、SelReg2=“1”の場合には0を選択する。181はシフタであり、セレクタ180の出力をS2=Min(CT−BSReg0−BSReg1、BSReg2)だけ左にシフトするものである。182は加算器であり、加算器179が出力するCとシフタ181の出力を加算してCを出力するものである。   Reference numeral 180 denotes a selector. The selector 180 uses the data SelReg2 (= Sel stored in the register 111-2) indicating whether or not QeReg2 (= Qe stored in the register 111-2) is valid as the selection control data, and SelReg2 = “0”. In this case, QeReg2 is selected, and when SelReg2 = "1", 0 is selected. A shifter 181 shifts the output of the selector 180 to the left by S2 = Min (CT-BSReg0-BSReg1, BSReg2). Reference numeral 182 denotes an adder which adds C output from the adder 179 and the output of the shifter 181 to output C.

183、184はセレクタである。セレクタ183は、CT<=BSReg0であるか否かのデータを選択制御データとし、CT<=BSReg0である場合にはシフタ176の出力を選択し、CT>BSReg0の場合にはセレクタ184の出力を選択するものである。セレクタ184は、CT<=BSReg0+BSReg1であるか否かのデータを選択制御データとし、CT<=BSReg0+BSReg1の場合には加算器179の出力を選択し、CT>BSReg0+BSReg1の場合には加算器182の出力を選択するものである。   Reference numerals 183 and 184 denote selectors. The selector 183 uses the data indicating whether or not CT <= BSReg0 as the selection control data. When CT <= BSReg0, the selector 183 selects the output of the shifter 176, and when CT> BSReg0, the selector 184 outputs. To choose. The selector 184 uses the data indicating whether CT <= BSReg0 + BSReg1 as selection control data, selects the output of the adder 179 when CT <= BSReg0 + BSReg1, and outputs the adder 182 when CT> BSReg0 + BSReg1. Is to select.

185はバイトアウト回路であり、セレクタ183の出力を入力してBを演算するものである。186はセレクタであり、BSReg0+BSReg1+BSReg2>=CTであるか否かのデータを選択制御データとし、BSReg0+BSReg1+BSReg2>=CTの場合には、バイトアウト回路185の出力Cを選択し、BSReg0+BSReg1+BSReg2<CTの場合には、加算器182の出力を選択するものである。   A byte-out circuit 185 inputs the output of the selector 183 and calculates B. Reference numeral 186 denotes a selector, and data indicating whether or not BSReg0 + BSReg1 + BSReg2> = CT is selected as control data. If BSReg0 + BSReg1 + BSReg2> = CT, the output C of the byte-out circuit 185 is selected. The output of the adder 182 is selected.

本発明の第3実施形態おいては、第1演算手段104は、CX、Dを入力してAを演算すると共に、Qe、BS、Selを出力し、記憶手段105は第1演算手段104が出力するQe、BS、Selを記憶し、第2演算手段106は記憶手段105が記憶するQe、BS、Selを入力してC、Bを演算する。   In the third embodiment of the present invention, the first computing means 104 inputs CX and D and computes A and outputs Qe, BS and Sel, and the storage means 105 The output Qe, BS, and Sel are stored, and the second calculation means 106 inputs Qe, BS, and Sel stored in the storage means 105 and calculates C and B.

即ち、本発明の第3実施形態によれば、Aを演算する第1演算手段104とC、Bを演算する第2演算手段106とを、第1演算手段104が出力するQe、BS、Selを記憶する記憶手段105を介して独立に構成しているので、バイトアウトが生じた場合であっても、Cの演算結果を出力する場合であっても、Aの演算を行うことができる。したがって、Aの演算を連続して行い、MQ−CODER方式の算術符号化演算の高速化を図ることができる。   That is, according to the third embodiment of the present invention, the first calculation means 104 for calculating A and the second calculation means 106 for calculating C and B are connected to Qe, BS, Sel output from the first calculation means 104. Therefore, the calculation of A can be performed even when byte out occurs or when the calculation result of C is output. Therefore, the operation of A can be performed continuously, and the speed of the arithmetic coding operation of the MQ-CODER system can be increased.

また、3個のA演算部108、109、110を設け、CX(3m)、D(3m)の組とCX(3m+1)、D(3m+1)の組とCX(3m+2)、D(3m+2)の組を並列して入力し、これらを並列処理できるようにしているので、本発明の第2実施形態の場合よりも高速化を図ることができる。   Also, three A arithmetic units 108, 109, and 110 are provided, and a group of CX (3m) and D (3m) and a group of CX (3m + 1) and D (3m + 1) and CX (3m + 2) and D (3m + 2) Since the sets are input in parallel and can be processed in parallel, the speed can be increased as compared with the second embodiment of the present invention.

(第4実施形態)
図30は本発明の第4実施形態の要部を示す回路図である。図30中、188は第1演算手段、189は記憶手段、190は第2演算手段である。第1演算手段188はCX、Dを入力してAを演算するものである。記憶手段189は第1演算手段188が出力するCの演算に必要なQe、BS、Selを記憶するものである。第2演算手段190は記憶手段189が記憶するCの演算に必要なQe、BS、Selを入力してC、Bを演算するものである。本実施形態においては、前段の装置(図示せず)からCX(2m)、D(2m)の組と、CX(2m+1)、D(2m+1)の組が並列して与えられる。
(Fourth embodiment)
FIG. 30 is a circuit diagram showing the main part of the fourth embodiment of the present invention. In FIG. 30, reference numeral 188 denotes first calculation means, 189 denotes storage means, and 190 denotes second calculation means. The first computing means 188 computes A by inputting CX and D. The storage means 189 stores Qe, BS, and Sel necessary for the calculation of C output from the first calculation means 188. The second calculation means 190 inputs Qe, BS and Sel necessary for the calculation of C stored in the storage means 189 and calculates C and B. In the present embodiment, a group of CX (2m) and D (2m) and a group of CX (2m + 1) and D (2m + 1) are given in parallel from a preceding apparatus (not shown).

第1演算手段188において、191はAレジスタ、192、193はA演算部である。Aレジスタ191はA(2m)を記憶するものである。A演算部192は、CX(2m)、D(2m)とAレジスタ191が記憶するA(2m)を入力し、MQ−CODER方式によりA(2m+1)を演算するものである。A演算部193は、CX(2m+1)、D(2m+1)とA演算部192が出力するA(2m+1)を入力し、MQ−CODER方式によりA(2m+2)を演算するものである。A演算部193が演算したA(2m+2)は、A(2m)に代わってAレジスタ191に更新的に記憶される。   In the first calculation means 188, 191 is an A register, and 192 and 193 are A calculation units. The A register 191 stores A (2 m). The A calculation unit 192 inputs CX (2m) and D (2m) and A (2m) stored in the A register 191 and calculates A (2m + 1) by the MQ-CODER method. The A calculation unit 193 inputs CX (2m + 1), D (2m + 1) and A (2m + 1) output from the A calculation unit 192, and calculates A (2m + 2) by the MQ-CODER method. A (2m + 2) calculated by the A calculation unit 193 is stored in the A register 191 in place of A (2m).

記憶手段189において、194−0〜194−4は記憶手段189が備えるレジスタ中の5個を示しており、レジスタ194−0〜194−4を始めとする記憶手段189が備えるレジスタは、Qe(j)、BS(j)、Sel(j)を記憶する容量を持つものである。但し、jは2m、2m+1である。   In the storage unit 189, reference numerals 194-0 to 194-4 denote five of the registers included in the storage unit 189. The registers included in the storage unit 189 including the registers 194-0 to 194-4 are Qe ( j), BS (j), and Sel (j). However, j is 2m and 2m + 1.

第2演算手段190において、195はCレジスタ、196、197、198はC演算部である。Cレジスタ195はCを記憶するものである。C演算部196は、レジスタ194−0が記憶するQe、BS、SelとCレジスタ195が記憶するCを入力し、MQ−CODER方式によりC、Bを演算するものである。C演算部197は、レジスタ194−1が記憶するQe、BS、SelとC演算部196が出力するCを入力し、MQ−CODER方式によりC、Bを演算するものである。   In the second calculation means 190, 195 is a C register, 196, 197, and 198 are C calculation units. The C register 195 stores C. The C calculation unit 196 inputs Qe, BS, and Sel stored in the register 194-0 and C stored in the C register 195, and calculates C and B by the MQ-CODER method. The C calculation unit 197 inputs Qe, BS, and Sel stored in the register 194-1 and C output from the C calculation unit 196, and calculates C and B by the MQ-CODER method.

C演算部198は、レジスタ194−2が記憶するQe、BS、SelとC演算部197が出力するCを入力し、MQ−CODER方式によりC、Bを演算するものである。C演算部198が演算したCはCレジスタ195に更新的に記憶される。   The C calculation unit 198 inputs Qe, BS, and Sel stored in the register 194-2 and C output from the C calculation unit 197, and calculates C and B by the MQ-CODER method. C calculated by the C calculation unit 198 is stored in the C register 195 in an update manner.

図31〜図38は本発明の第4実施形態の動作例を示す回路図である。記憶手段189に対するQe、BS、Selの書き込み、読み出し制御は、所定の制御回路(図示せず)で行なわれるが、図31〜図38に示す記憶手段189に対するQe、BS、Selの書き込み、読み出し制御は一例であり、その他の方法を取ることもできる。   31 to 38 are circuit diagrams showing an operation example of the fourth embodiment of the present invention. The Qe, BS, and Sel write / read control for the storage unit 189 is performed by a predetermined control circuit (not shown), but the Qe, BS, and Sel write / read for the storage unit 189 shown in FIGS. The control is an example, and other methods can be used.

図31は時刻t=T0に前段装置からA演算部192にCX(0)、D(0)が与えられると共に、A演算部193にCX(1)、D(1)が与えられた場合を示している。この場合、A演算部192は、Aレジスタ191が出力するA(0)を入力してA(1)を演算すると共に、Qe(0)、BS(0)、Sel(0)を出力する。A(1)はA演算部193に与えられ、Qe(0)、BS(0)、Sel(0)はレジスタ194−0に記憶される。A演算部193は、A演算部192が出力するA(1)を入力してA(2)を演算すると共に、Qe(1)、BS(1)、Sel(1)を出力する。A(2)はAレジスタ191に記憶され、Qe(1)、BS(1)、Sel(1)はレジスタ194−1に記憶される。   FIG. 31 shows a case where CX (0) and D (0) are given from the preceding apparatus to the A computing unit 192 and CX (1) and D (1) are given to the A computing unit 193 at time t = T0. Show. In this case, the A operation unit 192 inputs A (0) output from the A register 191 to calculate A (1), and outputs Qe (0), BS (0), and Sel (0). A (1) is given to the A operation unit 193, and Qe (0), BS (0), and Sel (0) are stored in the register 194-0. The A calculation unit 193 receives A (1) output from the A calculation unit 192, calculates A (2), and outputs Qe (1), BS (1), and Sel (1). A (2) is stored in the A register 191, and Qe (1), BS (1), and Sel (1) are stored in the register 194-1.

図32は時刻t=T1に前段装置からA演算部192にCX(2)、D(2)が与えられると共に、A演算部193にCX(3)、D(3)が与えられた場合を示している。この場合、C演算部196は、レジスタ194−0が記憶するQe(0)、BS(0)、Sel(0)とCレジスタ195が記憶するC(0)を入力してC(1)を演算する。C演算部197は、レジスタ194−1が記憶するQe(1)、BS(1)、Sel(1)とC演算部196が演算したC(1)を入力してC(2)を演算する。C(2)はCレジスタ195に更新的に記憶される。   FIG. 32 shows a case where CX (2) and D (2) are given from the preceding apparatus to the A computing unit 192 at the time t = T1, and CX (3) and D (3) are given to the A computing unit 193. Show. In this case, the C operation unit 196 inputs Qe (0), BS (0), Sel (0) stored in the register 194-0 and C (0) stored in the C register 195 and inputs C (1). Calculate. The C calculation unit 197 inputs Qe (1), BS (1), Sel (1) stored in the register 194-1 and C (1) calculated by the C calculation unit 196, and calculates C (2). . C (2) is updated and stored in the C register 195.

他方、A演算部192は、Aレジスタ191が出力するA(2)を入力してA(3)を演算すると共に、Qe(2)、BS(2)、Sel(2)を出力する。A(3)はA演算部193に与えられ、Qe(2)、BS(2)、Sel(2)はレジスタ194−0に記憶される。A演算部193は、A演算部192が出力するA(3)を入力してA(4)を演算すると共に、Qe(3)、BS(3)、Sel(3)を出力する。A(4)はAレジスタ191に記憶され、Qe(3)、BS(3)、Sel(3)はレジスタ194−1に記憶される。   On the other hand, the A calculation unit 192 inputs A (2) output from the A register 191 to calculate A (3), and outputs Qe (2), BS (2), and Sel (2). A (3) is given to the A operation unit 193, and Qe (2), BS (2), and Sel (2) are stored in the register 194-0. The A calculation unit 193 receives A (3) output from the A calculation unit 192, calculates A (4), and outputs Qe (3), BS (3), and Sel (3). A (4) is stored in the A register 191, and Qe (3), BS (3), and Sel (3) are stored in the register 194-1.

図33は時刻t=T2に前段装置からA演算部192にCX(4)、D(4)が与えられると共に、A演算部193にCX(5)、D(5)が与えられた場合を示している。この場合、C演算部196は、レジスタ194−0が記憶するQe(2)、BS(2)、Sel(2)とCレジスタ195が記憶するC(2)を入力してC(3)を演算する。C演算部197は、レジスタ194−1が記憶するQe(3)、BS(3)、Sel(3)とC演算部196が演算したC(3)を入力するが、この時点でバイトアウトが発生したとすると、C演算部197はB(0)を演算する。後処理したBS´(3)はレジスタ194−0に記憶される。   FIG. 33 shows a case where CX (4) and D (4) are given from the preceding apparatus to the A computing unit 192 at the time t = T2, and CX (5) and D (5) are given to the A computing unit 193. Show. In this case, the C calculation unit 196 inputs Qe (2), BS (2), Sel (2) stored in the register 194-0 and C (2) stored in the C register 195 and inputs C (3). Calculate. The C calculation unit 197 inputs Qe (3), BS (3), Sel (3) stored in the register 194-1 and C (3) calculated by the C calculation unit 196. If it occurs, the C calculation unit 197 calculates B (0). The post-processed BS ′ (3) is stored in the register 194-0.

他方、A演算部192は、Aレジスタ191が出力するA(4)を入力してA(5)を演算すると共に、Qe(4)、BS(4)、Sel(4)を出力する。A(5)はA演算部193に与えられ、Qe(4)、BS(4)、Sel(4)はレジスタ194−1に記憶される。A演算部193は、A演算部192が出力するA(5)を入力してA(6)を演算すると共に、Qe(5)、BS(5)、Sel(5)を出力する。A(6)はAレジスタ191に記憶され、Qe(5)、BS(5)、Sel(5)はレジスタ194−2に記憶される。   On the other hand, the A calculation unit 192 inputs A (4) output from the A register 191 to calculate A (5), and outputs Qe (4), BS (4), and Sel (4). A (5) is given to the A operation unit 193, and Qe (4), BS (4), and Sel (4) are stored in the register 194-1. The A calculation unit 193 receives A (5) output from the A calculation unit 192, calculates A (6), and outputs Qe (5), BS (5), and Sel (5). A (6) is stored in the A register 191, and Qe (5), BS (5), and Sel (5) are stored in the register 194-2.

図34は時刻t=T3に前段装置からA演算部192にCX(6)、D(6)が与えられると共に、A演算部193にCX(7)、D(7)が与えられた場合を示している。この場合、C演算部196は、レジスタ194−0が記憶するBS´(3)とCレジスタ195が記憶するC´(3)を入力してC(4)を演算する。C演算部197は、レジスタ194−1が記憶するQe(4)、BS(4)、Sel(4)とC演算部196が演算したC(4)を入力してC(5)を演算する。C演算部198は、レジスタ194−2が記憶するQe(5)、BS(5)、Sel(5)とC演算部197が演算したC(5)を入力してC(6)を演算する。C(6)はCレジスタ195に更新的に記憶される。   FIG. 34 shows a case where CX (6) and D (6) are given from the preceding apparatus to the A computing unit 192 and CX (7) and D (7) are given to the A computing unit 193 at time t = T3. Show. In this case, the C calculation unit 196 inputs BS ′ (3) stored in the register 194-0 and C ′ (3) stored in the C register 195, and calculates C (4). The C calculation unit 197 inputs Qe (4), BS (4), Sel (4) stored in the register 194-1 and C (4) calculated by the C calculation unit 196, and calculates C (5). . The C calculation unit 198 inputs Qe (5), BS (5), Sel (5) stored in the register 194-2 and C (5) calculated by the C calculation unit 197 and calculates C (6). . C (6) is stored in the C register 195 in an update manner.

他方、A演算部192は、Aレジスタ191が出力するA(6)を入力してA(7)を演算すると共に、Qe(6)、BS(6)、Sel(6)を出力する。A(7)はA演算部193に与えられ、Qe(6)、BS(6)、Sel(6)はレジスタ194−0に記憶される。A演算部193は、A演算部192が出力するA(7)を入力してA(8)を演算すると共に、Qe(7)、BS(7)、Sel(7)を出力する。A(8)はAレジスタ191に更新的に記憶され、Qe(7)、BS(7)、Sel(7)はレジスタ194−1に記憶される。   On the other hand, the A calculation unit 192 inputs A (6) output from the A register 191 to calculate A (7), and outputs Qe (6), BS (6), and Sel (6). A (7) is provided to the A operation unit 193, and Qe (6), BS (6), and Sel (6) are stored in the register 194-0. The A calculation unit 193 receives A (7) output from the A calculation unit 192, calculates A (8), and outputs Qe (7), BS (7), and Sel (7). A (8) is updated and stored in the A register 191, and Qe (7), BS (7), and Sel (7) are stored in the register 194-1.

図35は時刻t=T4に前段装置からA演算部192にCX(8)、D(8)が与えられると共に、A演算部193にCX(9)、D(9)が与えられた場合を示している。この場合、C演算部196は、レジスタ194−0が記憶するQe(6)、BS(6)、Sel(6)とCレジスタ195が記憶するC(6)を入力するが、この時点でバイトアウトが発生したとすると、C演算部196はB(1)を演算する。後処理したBS´(6)はレジスタ194−0に記憶される。C演算部196から出力されるC´(6)はCレジスタ196に記憶される。   FIG. 35 shows a case where CX (8) and D (8) are given from the preceding apparatus to the A computing unit 192 and CX (9) and D (9) are given to the A computing unit 193 at time t = T4. Show. In this case, the C calculation unit 196 inputs Qe (6), BS (6), Sel (6) stored in the register 194-0 and C (6) stored in the C register 195. If out occurs, the C calculation unit 196 calculates B (1). The post-processed BS ′ (6) is stored in the register 194-0. C ′ (6) output from the C calculation unit 196 is stored in the C register 196.

他方、A演算部192は、Aレジスタ191が出力するA(8)を入力してA(9)を演算すると共に、Qe(8)、BS(8)、Sel(8)を出力する。A(9)はA演算部193に与えられ、Qe(8)、BS(8)、Sel(8)はレジスタ194−2に記憶される。A演算部193は、A演算部192が出力するA(9)を入力してA(10)を演算すると共に、Qe(9)、BS(9)、Sel(9)を出力する。A(10)はAレジスタ191に更新的に記憶され、Qe(9)、BS(9)、Sel(9)はレジスタ194−4に記憶される。   On the other hand, the A calculation unit 192 inputs A (8) output from the A register 191 to calculate A (9), and outputs Qe (8), BS (8), and Sel (8). A (9) is given to the A operation unit 193, and Qe (8), BS (8), and Sel (8) are stored in the register 194-2. The A calculation unit 193 receives A (9) output from the A calculation unit 192, calculates A (10), and outputs Qe (9), BS (9), and Sel (9). A (10) is updated and stored in the A register 191, and Qe (9), BS (9), and Sel (9) are stored in the register 194-4.

図36は時刻t=T5に前段装置からA演算部192にCX(10)、D(10)が与えられると共に、A演算部193にCX(11)、D(11)が与えられた場合を示している。この場合、C演算部196は、レジスタ194−0が記憶するBS´(6)を入力すると共に、Cレジスタ195が記憶するC´(6)を入力してC(7)を演算する。C演算部197は、レジスタ194−1が記憶するQe(7)、BS(7)、Sel(7)とC演算部196が演算したC(7)を入力してC(8)を演算する。C演算部198は、レジスタ194−2が記憶するQe(8)、BS(8)、Sel(8)とC演算部197が演算したC(8)を入力してC(9)を演算する。C(9)はCレジスタ195に更新的に記憶される。   FIG. 36 shows a case where CX (10) and D (10) are given from the preceding apparatus to the A computing unit 192 and CX (11) and D (11) are given to the A computing unit 193 at time t = T5. Show. In this case, the C calculation unit 196 inputs BS ′ (6) stored in the register 194-0 and inputs C ′ (6) stored in the C register 195 to calculate C (7). The C calculation unit 197 inputs Qe (7), BS (7), Sel (7) stored in the register 194-1 and C (7) calculated by the C calculation unit 196, and calculates C (8). . The C calculation unit 198 inputs Qe (8), BS (8), Sel (8) stored in the register 194-2 and C (8) calculated by the C calculation unit 197, and calculates C (9). . C (9) is stored in the C register 195 in an update manner.

他方、A演算部192は、Aレジスタ191が出力するA(10)を入力してA(11)を演算すると共に、Qe(10)、BS(10)、Sel(10)を出力する。A(11)はA演算部193に与えられ、Qe(10)、BS(10)、Sel(10)はレジスタ194−1に記憶される。A演算部193は、A演算部192が出力するA(11)を入力し、A(12)を演算すると共に、Qe(11)、BS(11)、Sel(11)を出力する。A(12)はAレジスタ191に記憶され、Qe(11)、BS(11)、Sel(11)はレジスタ194−2に記憶される。レジスタ194−3に記憶されているQe(9)、BS(9)、Sel(9)はレジスタ194−0に記憶される。   On the other hand, the A calculation unit 192 inputs A (10) output from the A register 191 to calculate A (11), and outputs Qe (10), BS (10), and Sel (10). A (11) is given to the A operation unit 193, and Qe (10), BS (10), and Sel (10) are stored in the register 194-1. The A calculation unit 193 receives A (11) output from the A calculation unit 192, calculates A (12), and outputs Qe (11), BS (11), and Sel (11). A (12) is stored in the A register 191, and Qe (11), BS (11), and Sel (11) are stored in the register 194-2. Qe (9), BS (9), and Sel (9) stored in the register 194-3 are stored in the register 194-0.

図37は時刻t=T6に前段装置からA演算部192にCX(12)、D(12)が与えられると共に、A演算部193にCX(13)、D(13)が与えられた場合を示している。この場合、C演算部196は、レジスタ194−0が記憶するQe(9)、BS(9)、Sel(9)とCレジスタ195が記憶するC(9)を入力してC(10)を演算する。   FIG. 37 shows a case where CX (12) and D (12) are given from the preceding apparatus to the A computing unit 192 and CX (13) and D (13) are given to the A computing unit 193 at time t = T6. Show. In this case, the C calculation unit 196 inputs Qe (9), BS (9), Sel (9) stored in the register 194-0 and C (9) stored in the C register 195, and inputs C (10). Calculate.

C演算部197は、レジスタ194−1が記憶するQe(10)、BS(10)、Sel(10)とC演算部196が演算したC(10)を入力してC(11)を演算する。C演算部198は、レジスタ194−2が記憶するQe(11)、BS(11)、Sel(11)とC演算部197が演算したC(11)を入力してC(12)を演算する。C(12)はCレジスタ195に更新的に記憶される。   The C calculation unit 197 inputs Qe (10), BS (10), Sel (10) stored in the register 194-1 and C (10) calculated by the C calculation unit 196, and calculates C (11). . The C calculation unit 198 inputs Qe (11), BS (11), Sel (11) stored in the register 194-2 and C (11) calculated by the C calculation unit 197, and calculates C (12). . C (12) is stored in the C register 195 in an update manner.

他方、A演算部192は、Aレジスタ191が出力するA(12)を入力してA(13)を演算すると共に、Qe(12)、BS(12)、Sel(12)を出力する。A(13)はA演算部193に与えられ、Qe(12)、BS(12)、Sel(12)はレジスタ194−0に記憶される。A演算部193は、A演算部192が出力するA(13)を入力し、A(14)を演算すると共に、Qe(13)、BS(13)、Sel(13)を出力する。A(14)はAレジスタ191に更新的に記憶され、Qe(13)、BS(13)、Sel(13)はレジスタ194−1に記憶される。   On the other hand, the A calculation unit 192 inputs A (12) output from the A register 191 to calculate A (13), and outputs Qe (12), BS (12), and Sel (12). A (13) is given to the A operation unit 193, and Qe (12), BS (12), and Sel (12) are stored in the register 194-0. The A calculation unit 193 receives A (13) output from the A calculation unit 192, calculates A (14), and outputs Qe (13), BS (13), and Sel (13). A (14) is updated and stored in the A register 191, and Qe (13), BS (13), and Sel (13) are stored in the register 194-1.

図38は時刻t=T7に前段装置からA演算部192にCX(14)、D(14)が与えられ、A演算部193にCX(15)、D(15)が与えられた場合を示している。この場合、C演算部196は、レジスタ194−0が記憶するQe(12)、BS(12)、Sel(12)とCレジスタ195が記憶するC(12)を入力してC(13)を演算する。C演算部197は、レジスタ194−1が記憶するQe(13)、BS(13)、Sel(13)と、C演算部196が演算したC(13)を入力してC(14)を演算する。C(14)はCレジスタ195に更新的に記憶される。   FIG. 38 shows a case where CX (14) and D (14) are given from the preceding apparatus to the A computing unit 192 and CX (15) and D (15) are given to the A computing unit 193 at time t = T7. ing. In this case, the C operation unit 196 inputs Qe (12), BS (12), Sel (12) stored in the register 194-0 and C (12) stored in the C register 195, and inputs C (13). Calculate. The C calculation unit 197 inputs Qe (13), BS (13), Sel (13) stored in the register 194-1 and C (13) calculated by the C calculation unit 196, and calculates C (14). To do. C (14) is stored in the C register 195 in an update manner.

他方、A演算部192は、Aレジスタ191が出力するA(14)を入力してA(15)を演算すると共に、Qe(14)、BS(14)、Sel(14)を出力する。A(15)はA演算部193に与えられ、Qe(14)、BS(14)、Sel(14)はレジスタ194−0に記憶される。A演算部193は、A演算部192が出力するA(15)を入力してA(16)を演算すると共に、Qe(15)、BS(15)、Sel(15)を出力する。A(16)はAレジスタ191に更新的に記憶され、Qe(15)、BS(15)、Sel(15)はレジスタ194−1に記憶される。   On the other hand, the A operation unit 192 inputs A (14) output from the A register 191 to calculate A (15), and outputs Qe (14), BS (14), and Sel (14). A (15) is given to the A operation unit 193, and Qe (14), BS (14), and Sel (14) are stored in the register 194-0. The A calculation unit 193 receives A (15) output from the A calculation unit 192, calculates A (16), and outputs Qe (15), BS (15), and Sel (15). A (16) is updated and stored in the A register 191, and Qe (15), BS (15), and Sel (15) are stored in the register 194-1.

以上のように、本発明の第4実施形態によれば、Aを演算する第1演算手段188とC、Bを演算する第2演算手段190とを、第1演算手段188が出力するQe、BS、Selを記憶する記憶手段189を介して独立に構成しているので、バイトアウトが生じた場合であっても、Cの演算結果を出力する場合であっても、Aの演算を行うことができる。したがって、Aの演算を連続して行い、MQ−CODER方式の算術符号化演算の高速化を図ることができる。   As described above, according to the fourth embodiment of the present invention, the first calculation means 188 for calculating A and the second calculation means 190 for calculating C and B are output by Qe, Since it is configured independently via the storage means 189 for storing BS and Sel, the calculation of A is performed even when byteout occurs or when the calculation result of C is output. Can do. Therefore, the operation of A can be performed continuously, and the speed of the arithmetic coding operation of the MQ-CODER system can be increased.

また、2個のA演算部192、193を設け、CX(2m)、D(2m)の組とCX(2m+1)、D(2m+1)の組とを並列して入力し、これらを並列処理できるようにしているので、本発明の第2実施形態の場合と同様の高速化を図ることができる。更に、第2演算手段は、A演算部よりも数の多い3個のC演算部196、197、198を設けているので、Bの連続出力後、しばらく、Bの出力が生じなければ、記憶手段189のレジスタのうち、使用するレジスタを2個に戻すことができる。したがって、記憶手段189の規模を本発明の第2実施形態が備える記憶手段48よりも小さくすることができる。   In addition, two A arithmetic units 192 and 193 are provided, and a set of CX (2m) and D (2m) and a set of CX (2m + 1) and D (2m + 1) can be input in parallel, and these can be processed in parallel. As a result, it is possible to achieve the same speed increase as in the case of the second embodiment of the present invention. Further, since the second calculation means is provided with three C calculation units 196, 197, and 198, which are larger in number than the A calculation unit, if the output of B does not occur for a while after the continuous output of B, the second calculation means is stored. Of the registers in the means 189, two registers can be returned. Therefore, the scale of the storage unit 189 can be made smaller than the storage unit 48 provided in the second embodiment of the present invention.

本発明の第1実施形態の要部を示す回路図である。It is a circuit diagram which shows the principal part of 1st Embodiment of this invention. 本発明の第1実施形態が備えるA演算部の回路図である。It is a circuit diagram of the A calculating part with which 1st Embodiment of this invention is provided. 本発明の第1実施形態が備えるインデックス・メモリの第1構成例の回路図である。It is a circuit diagram of the 1st structural example of the index memory with which 1st Embodiment of this invention is provided. 本発明の第1実施形態が備えるインデックス・メモリの第2構成例の回路図である。It is a circuit diagram of the 2nd structural example of the index memory with which 1st Embodiment of this invention is provided. 本発明の第1実施形態が備えるMPSメモリの第1構成例の回路図である。It is a circuit diagram of the 1st example of composition of MPS memory with which a 1st embodiment of the present invention is provided. 本発明の第1実施形態が備えるMPSメモリの第2構成例の回路図である。It is a circuit diagram of the 2nd example of composition of MPS memory with which a 1st embodiment of the present invention is provided. 本発明の第1実施形態が備えるネクスト・インデックス回路の回路図である。It is a circuit diagram of the next index circuit with which 1st Embodiment of this invention is provided. 本発明の第1実施形態が備えるC演算部の回路図である。It is a circuit diagram of the C calculating part with which 1st Embodiment of this invention is provided. 本発明の第1実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 1st Embodiment of this invention. 本発明の第1実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 1st Embodiment of this invention. 本発明の第1実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 1st Embodiment of this invention. 本発明の第1実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 1st Embodiment of this invention. 本発明の第1実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 1st Embodiment of this invention. 本発明の第2実施形態の要部を示す回路図である。It is a circuit diagram which shows the principal part of 2nd Embodiment of this invention. 本発明の第2実施形態が備えるA演算部の回路図である。It is a circuit diagram of the A calculating part with which 2nd Embodiment of this invention is provided. 本発明の第2実施形態が備えるインデックス・メモリの回路図である。It is a circuit diagram of the index memory with which 2nd Embodiment of this invention is provided. 本発明の第2実施形態が備えるネクスト・インデックス回路の回路図である。It is a circuit diagram of the next index circuit with which 2nd Embodiment of this invention is provided. 本発明の第2実施形態が備えるC演算部の回路図である。It is a circuit diagram of the C calculating part with which 2nd Embodiment of this invention is provided. 本発明の第2実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 2nd Embodiment of this invention. 本発明の第2実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 2nd Embodiment of this invention. 本発明の第2実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 2nd Embodiment of this invention. 本発明の第2実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 2nd Embodiment of this invention. 本発明の第2実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 2nd Embodiment of this invention. 本発明の第2実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 2nd Embodiment of this invention. 本発明の第3実施形態の要部を示す回路図である。It is a circuit diagram which shows the principal part of 3rd Embodiment of this invention. 本発明の第3実施形態が備えるA演算部の回路図である。It is a circuit diagram of the A calculating part with which 3rd Embodiment of this invention is provided. 本発明の第3実施形態が備えるインデックス・メモリの回路図である。It is a circuit diagram of the index memory with which 3rd Embodiment of this invention is provided. 本発明の第3実施形態が備えるネクスト・インデックス回路の回路図である。It is a circuit diagram of the next index circuit with which 3rd Embodiment of this invention is provided. 本発明の第3実施形態が備えるC演算部の回路図である。It is a circuit diagram of the C calculating part with which 3rd Embodiment of this invention is provided. 本発明の第4実施形態の要部を示す回路図である。It is a circuit diagram which shows the principal part of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 本発明の第4実施形態の動作例を示す回路図である。It is a circuit diagram which shows the operation example of 4th Embodiment of this invention. 従来のMQ−CODER方式の算術符号化演算器の一例の要部の回路図である。It is a circuit diagram of the principal part of an example of the arithmetic coding arithmetic unit of the conventional MQ-CODER system.

符号の説明Explanation of symbols

1…演算部
2…レジスタ
4、47、104、188…第1演算手段
5、48、105、189…記憶手段
6、49、106、190…第2演算手段
7、50、107、191…Aレジスタ
8、51、52、108〜110、192、193…A演算部
9−x、53−x、111−x、194−x…レジスタ
10、54、112、195…Cレジスタ
11、55、56、113〜115、196〜198…C演算部
DESCRIPTION OF SYMBOLS 1 ... Operation part 2 ... Register 4, 47, 104, 188 ... 1st calculation means 5, 48, 105, 189 ... Storage means 6, 49, 106, 190 ... 2nd calculation means 7, 50, 107, 191 ... A Registers 8, 51, 52, 108 to 110, 192, 193... A operation unit 9-x, 53-x, 111-x, 194-x ... Registers 10, 54, 112, 195 ... C registers 11, 55, 56 , 113 to 115, 196 to 198 ... C calculation unit

Claims (5)

コンテクスト及びシンボルを入力してオージェンドを演算すると共に、所定データを出力するオージェンド演算部と、
該オージェンド演算部が出力する所定データを記憶する記憶部と、
該記憶部が記憶する所定データを入力して符号及びバイトデータを演算する符号演算部を有することを特徴とするMQ−CODER方式の算術符号化演算器。
An agenda computing unit that inputs a context and a symbol and computes an agenda, and outputs predetermined data;
A storage unit for storing predetermined data output by the audend calculation unit;
An MQ-CODER type arithmetic coding arithmetic unit comprising a code arithmetic unit for inputting predetermined data stored in the storage unit and calculating code and byte data.
前記所定データは、劣性シンボル確率、符号化時再正規化処理におけるオージェンドのビットシフト量及び前記劣性シンボル確率が有効であるか否かを示すデータであることを特徴とする請求項1記載のMQ−CODER方式の算術符号化演算器。   2. The MQ according to claim 1, wherein the predetermined data is data indicating whether a recessive symbol probability, a bit shift amount of an augend in re-normalization processing at the time of encoding, and the recessive symbol probability are valid. A coder-type arithmetic coding arithmetic unit. 前記オージェンド演算部は、オージェンドを入出力値として多段接続されていることを特徴とする請求項1記載のMQ−CODER方式の算術符号化演算器。   2. The MQ-CODER arithmetic coding arithmetic unit according to claim 1, wherein the audend arithmetic units are connected in multiple stages using the agenda as input / output values. 前記符号演算部は、符号を入出力値として多段接続されていることを特徴とする請求項1記載のMQ−CODER方式の算術符号化演算器。   2. The MQ-CODER arithmetic coding arithmetic unit according to claim 1, wherein the code arithmetic units are connected in multiple stages using codes as input / output values. 前記符号演算部は、前記オージェンド演算部よりも数が多いことを特徴とする請求項4記載のMQ−CODER方式の算術符号化演算器。
5. The MQ-CODER arithmetic coding arithmetic unit according to claim 4, wherein the number of the code arithmetic units is larger than that of the audend arithmetic units.
JP2004159305A 2004-05-28 2004-05-28 Arithmetic coding computing element adopting mq-coder system Pending JP2005341370A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004159305A JP2005341370A (en) 2004-05-28 2004-05-28 Arithmetic coding computing element adopting mq-coder system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004159305A JP2005341370A (en) 2004-05-28 2004-05-28 Arithmetic coding computing element adopting mq-coder system

Publications (1)

Publication Number Publication Date
JP2005341370A true JP2005341370A (en) 2005-12-08

Family

ID=35494399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004159305A Pending JP2005341370A (en) 2004-05-28 2004-05-28 Arithmetic coding computing element adopting mq-coder system

Country Status (1)

Country Link
JP (1) JP2005341370A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013016954A (en) * 2011-07-01 2013-01-24 Nec Engineering Ltd Arithmetic encoding method and arithmetic encoder
KR101226544B1 (en) 2011-04-25 2013-01-25 국방과학연구소 Co-design method and apparatus using DSP and FPGA for JPEG2000 Video Compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226544B1 (en) 2011-04-25 2013-01-25 국방과학연구소 Co-design method and apparatus using DSP and FPGA for JPEG2000 Video Compression
JP2013016954A (en) * 2011-07-01 2013-01-24 Nec Engineering Ltd Arithmetic encoding method and arithmetic encoder

Similar Documents

Publication Publication Date Title
EP0158530B1 (en) Nonrestoring divider
KR940008615B1 (en) High-radix divider
JP2006227939A (en) Arithmetic unit
WO1999066423A1 (en) Data calculating device
US20010025293A1 (en) Divider
US9009209B2 (en) Processor, control method of processor, and computer readable storage medium storing processing program for division operation
JP2013210838A (en) Arithmetic circuit and arithmetic method
JP2005341370A (en) Arithmetic coding computing element adopting mq-coder system
JP5175983B2 (en) Arithmetic unit
JP4317738B2 (en) Average value calculating apparatus and average value calculating method
JP2003216419A (en) Calculator and calculating method
JP3221252B2 (en) Huffman decoder
JP4163967B2 (en) Floating point arithmetic unit
JP3736745B2 (en) Data arithmetic processing apparatus and data arithmetic processing program
JP2002175179A (en) Integer dividing method and integer dividing device
JP3613466B2 (en) Data arithmetic processing apparatus and data arithmetic processing program
CN111201559B (en) Replacement device, replacement method, and recording medium
JP4408727B2 (en) Digital circuit
JP2000278538A (en) Device and method for arithmetic encoding/decoding
JP2005293092A (en) Arithmetic right shift device for negative number having most significant bit of 1
JP2000010763A (en) Division circuit
JP4862894B2 (en) Encoding apparatus and method, and processor
CN114895868A (en) Division operation unit and divider based on two-digit quotient calculation
JPS63182740A (en) Divider
JPH03245225A (en) Floating decimal-point addition/subtraction device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090331

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090728