JP4547503B2 - Arithmetic coding apparatus, arithmetic coding method, arithmetic coding program, and computer-readable recording medium storing the program - Google Patents

Arithmetic coding apparatus, arithmetic coding method, arithmetic coding program, and computer-readable recording medium storing the program Download PDF

Info

Publication number
JP4547503B2
JP4547503B2 JP2008503883A JP2008503883A JP4547503B2 JP 4547503 B2 JP4547503 B2 JP 4547503B2 JP 2008503883 A JP2008503883 A JP 2008503883A JP 2008503883 A JP2008503883 A JP 2008503883A JP 4547503 B2 JP4547503 B2 JP 4547503B2
Authority
JP
Japan
Prior art keywords
symbol
unit
context
update
arithmetic
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.)
Active
Application number
JP2008503883A
Other languages
Japanese (ja)
Other versions
JPWO2007102518A1 (en
Inventor
天 宋
篤 山田
隆 島本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Tokushima
Original Assignee
University of Tokushima
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 University of Tokushima filed Critical University of Tokushima
Publication of JPWO2007102518A1 publication Critical patent/JPWO2007102518A1/en
Application granted granted Critical
Publication of JP4547503B2 publication Critical patent/JP4547503B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

本発明は、動画像符号化・復号に用いられる算術符号化技術に関するものであり、特に、動画像符号化規格であるH.264/AVCにおけるCABAC(Context-based Adaptive Binary Arithmetic Coding:コンテキスト準拠適応2進算術符号化)に準拠した算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体に関する。   The present invention relates to an arithmetic coding technique used for moving picture coding / decoding, and particularly H.264 which is a moving picture coding standard. H.264 / AVC CABAC (Context-based Adaptive Binary Arithmetic Coding) compliant arithmetic coding device, arithmetic coding method, arithmetic coding program, and computer readable program The present invention relates to a recording medium.

近年、DVDや地上デジタルハイビジョン等の高画質動画像の普及が急速に進んでおり、動画像の高ビットレート、高解像度によって情報量が飛躍的に増加し、効率のよい動画像データの圧縮が必須となっている。デジタル動画像圧縮の主な構成技術は、予測符号化、動き処理、変換符号化、量子化、符号割当の5つがある。この内、符号割当は、量子化レベルなどに「0」、「1」の符号を効率よく割り当て、冗長な符号の削減をする。符号割当には可変長符号化、適応符号化、固定長符号化等が知られている。可変長符号化(VLC:Variable Length Cording)はハフマン符号化、ランレングス符号化、算術符号化、適応ビット割当等に区分される。この内、算術符号化は、シンボルの出現確率に応じて符号化テーブルを作成し符号割当を行うものである。   In recent years, high-definition moving images such as DVD and terrestrial digital high-definition have been rapidly spreading, and the amount of information has increased dramatically due to the high bit rate and high resolution of moving images. It is essential. There are five main configuration techniques for digital moving image compression: predictive coding, motion processing, transform coding, quantization, and code allocation. Among these, code allocation efficiently allocates codes “0” and “1” to quantization levels and the like, and reduces redundant codes. For code allocation, variable length coding, adaptive coding, fixed length coding, and the like are known. Variable length coding (VLC) is divided into Huffman coding, run length coding, arithmetic coding, adaptive bit allocation, and the like. Among these, arithmetic coding is to create a coding table according to the appearance probability of a symbol and perform code allocation.

算術符号化は、画像データの特徴に応じた最適な符号割当ができるため、固定した符号化テーブルを使用するハフマン符号化などに比べて符号化効率が優れている。しかしながら算術符号化は、シンボルの出現確率を計算しながら符号化テーブルを作成し符号割当をする動的な方式のため、一般的にハフマン符号化と比較して多大な計算処理を必要とするという問題がある。   Arithmetic coding is capable of optimal code allocation according to the characteristics of image data, and therefore has better coding efficiency than Huffman coding using a fixed coding table. However, arithmetic coding is a dynamic method that creates a coding table and assigns codes while calculating the appearance probability of symbols, so it generally requires a lot of calculation processing compared to Huffman coding. There's a problem.

一方、ITU−T(International Telecommunication Union - Telecommunication Standardization Sector)では、動画像符号化・復号技術としてH.264の規格策定を行っている(非特許文献1参照)。特許文献1には、ITU−T規格H.264による算術符号化・復号の処理プロセスの具体的な実現方法の実例が開示される。図26は、H.264/AVCによる算術符号化・復号の処理プロセスのフローチャートである。同図は、非特許文献1のFig.9−1を、機能を中心に再編集したものである。図26を用いて、算術符号化・復号の流れを以下に説明する。   On the other hand, in ITU-T (International Telecommunication Union-Telecommunication Standardization Sector), H.264 is used as a moving image encoding / decoding technique. H.264 standards are being developed (see Non-Patent Document 1). Patent Document 1 discloses ITU-T standard H.264. An example of a specific implementation method of an arithmetic encoding / decoding process according to H.264 is disclosed. FIG. 3 is a flowchart of a process for arithmetic coding / decoding according to H.264 / AVC. This figure is shown in FIG. 9-1 is re-edited with a focus on functions. The flow of arithmetic encoding / decoding will be described below with reference to FIG.

あるシンタックス要素(Syntax Element:SE)について、符号化又は復号が開始されると、ステップ1において、そのシンタックス要素に対して、コンテキスト計算が行われる。コンテキスト計算では、コンテキストに対応するコンテキスト番号が求められ、コンテキスト番号によりシンボル値と確率状態が求められる。シンボル値は、一部の例外はあるものの、多くは対応表を参照することによって求められる。確率状態は、後述のステップ3で格納されている値を参照して求められる。求められたシンボル値と確率状態は、算術符号化・復号プロセスに与えられ、ステップ2に進む。   When encoding or decoding of a certain syntax element (SE) is started, context calculation is performed on the syntax element in step 1. In context calculation, a context number corresponding to a context is obtained, and a symbol value and a probability state are obtained from the context number. The symbol value is obtained by referring to the correspondence table with some exceptions. The probability state is obtained by referring to the value stored in step 3 described later. The obtained symbol values and probability states are given to the arithmetic encoding / decoding process, and the process proceeds to Step 2.

ステップ2においては、ステップ1より受け取ったシンボル値と確率状態を用いて、当該シンタックスの算術符号化又は復号を行い、結果を出力信号として出力する。同時に、符号化又は復号したシンボルの情報を、シンボル出現確率制御プロセスに出力し、ステップ3に進む。   In step 2, the symbol value and probability state received from step 1 are used to perform arithmetic coding or decoding of the syntax, and the result is output as an output signal. At the same time, the encoded or decoded symbol information is output to the symbol appearance probability control process, and the process proceeds to Step 3.

ステップ3においては、符号化または復号したシンボルの情報を受けて、次の処理で用いるシンボル値と確率状態の更新値を求め、確率状態として格納しておく。   In step 3, the information of the encoded or decoded symbol is received, the symbol value used in the next processing and the update value of the probability state are obtained and stored as the probability state.

ステップ4において、当該シンタックス要素の符号化又は復号が完了したかどうかを判定し、完了してない場合には、ステップ1に戻り、符号化又は復号が完了するまで同様のプロセスを繰り返す。当該シンタックス要素の符号化又は復号が完了すると、次のシンタックス要素について符号化又は復号を行う。   In Step 4, it is determined whether or not the encoding or decoding of the syntax element is completed. If not, the process returns to Step 1 and the same process is repeated until the encoding or decoding is completed. When the encoding or decoding of the syntax element is completed, the next syntax element is encoded or decoded.

図27に、H.264/AVCの算術符号化の処理プロセスを具現化した算術符号化装置のブロック図を示す。この算術符号化装置700は、適応算術符号化・復号部710、コンテキスト計算部720、及び符号化・復号制御部730を備え、適応算術符号化・復号部710は、算術符号化・復号部711、シンボル出現確率制御部712、及び確率状態格納部713を有する。コンテキスト計算部720は、入力信号(Sin)S11のシンタックス要素(SE)の種別と既符号化ビット数又は復号ビット数より、コンテキスト番号を生成する(図26のステップ1の処理に相当する)。   In FIG. 1 is a block diagram of an arithmetic coding apparatus that embodies a processing process of H.264 / AVC arithmetic coding. The arithmetic coding apparatus 700 includes an adaptive arithmetic coding / decoding unit 710, a context calculation unit 720, and an encoding / decoding control unit 730. The adaptive arithmetic coding / decoding unit 710 includes an arithmetic coding / decoding unit 711. A symbol appearance probability control unit 712 and a probability state storage unit 713. The context calculation unit 720 generates a context number from the type of the syntax element (SE) of the input signal (Sin) S11 and the number of encoded bits or the number of decoded bits (corresponding to the process of step 1 in FIG. 26). .

この算術符号化装置700では、各処理ステップは、その前のステップでの処理結果を受けて、そのステップでの処理を開始する必要があるため、その動作は、シーケンシャルな処理となり、一つのシンタックス要素が処理される時間は、各処理ステップの和となる。すなわち、例えば、シンタックス要素0の処理に必要な区間S0は、処理51と処理52と処理53と処理54とのそれぞれに費やされる時間の和となる。   In this arithmetic coding apparatus 700, each processing step needs to start the processing at the previous step in response to the processing result at the previous step. The time for which the tax element is processed is the sum of the processing steps. That is, for example, the section S0 necessary for the processing of the syntax element 0 is the sum of the time spent for the processing 51, the processing 52, the processing 53, and the processing 54, respectively.

符号化又は復号の時間当たりの処理符号量(即ちシンタックス要素数)が多い場合、符号化又は復号の処理時間を短縮することは、必須の要件となる。本検討例の算術符号化・復号装置40では、各ステップは、シーケンシャルな処理を行っているため、全体の処理時間の短縮のためには、各ステップの処理時間を短縮しなければならず、現状の技術レベルでは、高速化には限界がある。   When the processing code amount (that is, the number of syntax elements) per coding or decoding time is large, it is an essential requirement to shorten the coding or decoding processing time. In the arithmetic encoding / decoding device 40 of the present study example, each step performs sequential processing. Therefore, in order to reduce the overall processing time, the processing time of each step must be reduced, At the current technology level, there is a limit to speeding up.

これに対して、特許文献1には、算術符号化処理を高速化した算術符号化装置が開示される。この算術符号化装置800は、図28のブロック図に示すように適応算術符号化部810、コンテキスト計算部820、及び符号化制御部830を備える。コンテキスト計算部820は、レジスタ821と比較判定部822とを有する。適応算術符号化部810は、算術符号化部811とシンボル出現確率制御部814と確率状態格納部815とを有する。これによれば、ある入力信号が算術符号化部811で符号化される間に、コンテキスト計算部820は、次の入力信号についてコンテキストを求めることができるので、算術符号化部811は、ある入力信号を符号化後、直ちに次の入力信号の符号化処理を行える。従って、符号化処理の高速化が可能となる。   On the other hand, Patent Document 1 discloses an arithmetic encoding device that speeds up arithmetic encoding processing. This arithmetic coding apparatus 800 includes an adaptive arithmetic coding unit 810, a context calculation unit 820, and a coding control unit 830 as shown in the block diagram of FIG. The context calculation unit 820 includes a register 821 and a comparison determination unit 822. The adaptive arithmetic coding unit 810 includes an arithmetic coding unit 811, a symbol appearance probability control unit 814, and a probability state storage unit 815. According to this, while a certain input signal is encoded by the arithmetic encoding unit 811, the context calculation unit 820 can obtain a context for the next input signal, so that the arithmetic encoding unit 811 Immediately after encoding the signal, the next input signal can be encoded. Accordingly, the encoding process can be speeded up.

さらに、ある信号が算術符号化部811で符号化される間に、シンボル出現確率制御部814は、算術符号化部811による符号化シンボルが、優勢シンボルである場合と劣勢シンボルである場合とについて、それぞれのシンボル値と確率状態の更新値を求めておき、符号化シンボルが確定した後に、一方の更新値を選択する。この結果、算術符号化部811は、次の符号の符号化において、必要なシンボル値と確率状態を得て、直ちに符号化処理と確率状態記録部815への書込み処理を行えるため、算術符号化処理の更なる高速化が可能となる。
特開2005−130099号公報 Joint Video Team(JVT) of ISO/IEC MPEG & ITU-TVCEG; "DraftI TU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264|ISO/IEC 14496-10 MPEG-AVC)." Hassan Shojania and Subramania Sudharsanan, "A VLSI Architecture for High Performance CABAC Encoding." Visual Communications and Image Processing 2005, Proc. of SPIE Vol. 5960, pp.1444. 大久保榮他「改訂版 H.264/AVC教科書」インプレス 「技術分野別特許マップ 電気14 デジタル動画像圧縮技術」特許庁 Roberto R. Osorio, Javier D. Bruguera, "High-Throughput Architecture for H.264/AVC CABAC Compression System" IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 16, NO. 11, NOVEMBER 2006.
Furthermore, while a certain signal is encoded by the arithmetic encoding unit 811, the symbol appearance probability control unit 814 determines whether the encoded symbol by the arithmetic encoding unit 811 is a dominant symbol or an inferior symbol. Each symbol value and the update value of the probability state are obtained, and after the encoded symbol is determined, one update value is selected. As a result, the arithmetic encoding unit 811 obtains a necessary symbol value and a probability state in the encoding of the next code, and can immediately perform the encoding process and the writing process to the probability state recording unit 815. The processing can be further speeded up.
Japanese Patent Laid-Open No. 2005-13003 Joint Video Team (JVT) of ISO / IEC MPEG &ITU-TVCEG;"DraftI TU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 | ISO / IEC 14496-10 MPEG-AVC ). " Hassan Shojania and Subramania Sudharsanan, "A VLSI Architecture for High Performance CABAC Encoding." Visual Communications and Image Processing 2005, Proc. Of SPIE Vol. 5960, pp.1444. Satoshi Okubo et al. “Revised H.264 / AVC Textbook” Impress "Patent Map by Technology Field Electricity 14 Digital Video Compression Technology" Japan Patent Office Roberto R. Osorio, Javier D. Bruguera, "High-Throughput Architecture for H.264 / AVC CABAC Compression System" IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 16, NO. 11, NOVEMBER 2006.

しかしながらこの方法でも、1サイクルで1ビットの符号化を実現するものでなく、高速化対策としては十分ではない。一方、非特許文献2では1サイクルで1バイナリシンボルを処理可能な高速化手法が提案されているが、この手法でも十分でなく1サイクルで複数の処理を行うには至っておらず、十分な高速処理が実現できるとは言い難い。   However, even this method does not realize 1-bit encoding in one cycle, and is not sufficient as a measure for speeding up. On the other hand, Non-Patent Document 2 proposes a high-speed method capable of processing one binary symbol in one cycle. However, this method is not sufficient, and multiple processing is not performed in one cycle. It is hard to say that processing can be realized.

H.264/AVCの符号化処理処理においては、エントロピー符号化である可変長符号化(VLC)が採用されている。VLCは、実際にH.264/AVCのビットストリームを生成しているモジュールである。この符号化方式としてCABACとCAVLCがある。CAVLC(Context-Adaptive Variable Length Coding:コンテキスト適応型可変長符号化方式)は、量子化されたDCT係数値の符号化にのみ用いられる。一方CABAC(Context Adaptive Binary Arithmetic Coding:コンテキスト適応型2値算術符号化方式)は、算術符号化を用いたエントロピー符号化方式であり、CAVLCと比較して符号化効率が高いという利点を有する。   H. In the H.264 / AVC encoding processing, variable length coding (VLC) which is entropy coding is employed. VLC is actually H.264. This is a module that generates a H.264 / AVC bitstream. There are CABAC and CAVLC as encoding methods. CAVLC (Context-Adaptive Variable Length Coding) is used only for encoding quantized DCT coefficient values. On the other hand, CABAC (Context Adaptive Binary Arithmetic Coding) is an entropy coding method using arithmetic coding, and has an advantage of higher coding efficiency than CAVLC.

しかしながら、CABAC処理は高い符号化効率を得ることができる反面、処理時間が長いという問題がある。特に高解像度アプリケーションにおいて、リアルタイムに符号化を行うには、処理に極めて高い動作周波数を要する。既存のMPUやCPUでは、計算上数GHzもの動作周波数が要求されることとなって、ハイビジョン放送などのメディアに対応できないという問題があった。このため、CABAC処理を高速に行うための構成が切望されているものの、上述の通り従来の手法では未だ不十分であった。   However, while CABAC processing can obtain high coding efficiency, there is a problem that processing time is long. In particular, in a high-resolution application, in order to perform encoding in real time, a very high operating frequency is required for processing. The existing MPU and CPU require a calculation frequency of several GHz in calculation, and there is a problem that it cannot cope with media such as high-definition broadcasting. For this reason, although a configuration for performing CABAC processing at high speed is desired, the conventional method is still insufficient as described above.

本発明は、このような問題点を解消するためになされたものである。本発明の主な目的は、H.264/AVCにおけるCABACの処理の演算量を削減し、実装を容易にした算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体を提供することにある。   The present invention has been made to solve such problems. The main object of the present invention is H.264. The present invention provides an arithmetic coding apparatus, an arithmetic coding method, an arithmetic coding program, and a computer-readable recording medium storing the program, which can reduce the amount of computation of CABAC processing in H.264 / AVC and can be easily implemented. is there.

上記の目的を達成するために、本発明の第1の算術符号化装置は、多値信号を2値化するための2値化部と、2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、コンテキスト番号を生成するためのコンテキスト計算部と、2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、シンボル値とシンボル出現確率とを格納するための確率状態格納部とを備える算術符号化装置であって、算術符号化部は、劣勢シンボルの区間を発生確率に基づいて分割した領域rLPSの予測値を格納する第1格納部と、同じくrLPSの予測値を格納する、第1格納部とは別個の第2格納部と、第1格納部及び第2格納部に格納されたrLPSの予測値を参照して算術符号化を行う演算部とを備える。これにより、1サイクル中に2ビット以上の処理が可能な高速な算術符号化を実現できる。   In order to achieve the above object, a first arithmetic coding apparatus according to the present invention performs arithmetic on a binarization unit for binarizing a multilevel signal and a binary symbol generated by the binarization unit. An arithmetic encoding unit for encoding, a context calculation unit for generating a context number, and a symbol value and symbol appearance indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarizing unit An arithmetic coding apparatus comprising: an update unit for updating a probability; and a probability state storage unit for storing a symbol value and a symbol appearance probability using the context number calculated by the context calculation unit as an index. The arithmetic coding unit stores the predicted value of the region rLPS obtained by dividing the inferior symbol section based on the occurrence probability, and also stores the predicted value of rLPS. The part includes a second storage unit separate, and a calculation unit for referring to the predicted value of rLPS stored in the first storage unit and the second storing unit performing arithmetic coding. As a result, high-speed arithmetic coding capable of processing 2 bits or more in one cycle can be realized.

さらに第2の算術符号化装置は、多値信号を2値化するための2値化部と、2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、コンテキスト番号を生成するためのコンテキスト計算部と、2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、シンボル値とシンボル出現確率とを格納するための確率状態格納部とを備える算術符号化装置であって、算術符号化部は、優勢シンボル処理時の優勢シンボル処理連続数、初期の区間、シンボル出現確率に基づいて決定される更新区間の予測値を格納する更新区間格納部と、優勢シンボル処理時の優勢シンボル処理連続数、及び初期のシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するためのコンテキスト更新テーブルと、再正規化の回数に基づいて、更新区間の補集合であるlowを更新する再正規化テーブルを有する再正規化部とを備える。これにより、連続して優勢シンボル処理が行われる場合の算術符号化処理を数サイクル削減でき、処理の低減と高速化が図られる。   Further, the second arithmetic encoding device includes a binarizing unit for binarizing the multilevel signal, an arithmetic encoding unit for arithmetically encoding the binary symbol generated by the binarizing unit, A context calculation unit for generating a context number, an update unit for updating the symbol value and symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarization unit; An arithmetic encoding device comprising a probability state storage unit for storing a symbol value and a symbol appearance probability using the context number calculated by the context calculation unit as an index, wherein the arithmetic encoding unit is configured to process a dominant symbol. Update section storage unit for storing the predicted value of the update section determined based on the number of consecutive dominant symbol processes, the initial section, and the symbol appearance probability, and the superiority at the time of dominant symbol processing A context update table for storing a prediction value of a symbol appearance probability determined based on the number of consecutive symbol processing and an initial symbol appearance probability, and a low that is a complement of the update interval based on the number of renormalizations And a renormalization unit having a renormalization table for updating. As a result, the arithmetic coding process when the dominant symbol process is continuously performed can be reduced by several cycles, and the process can be reduced and speeded up.

さらにまた第3の算術符号化装置は、多値信号を2値化するための2値化部と、2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、コンテキスト番号を生成するためのコンテキスト計算部と、2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、シンボル値とシンボル出現確率とを格納するための確率状態格納部とを備える算術符号化装置であって、算術符号化部は、優勢シンボル処理時の優勢シンボル処理連続数、初期の区間、シンボル出現確率に基づいて決定される更新区間の予測値を格納する第1更新区間格納部と、同じく更新区間の予測値を格納する、第1更新区間格納部と別個の第2更新区間格納部と、優勢シンボル処理時の優勢シンボル処理連続数、及び初期のシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するための第1コンテキスト更新テーブルと、優勢シンボル処理時の優勢シンボル処理連続数、及び前記第1コンテキスト更新テーブルが更新したシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するための、第1コンテキスト更新テーブルと別個の第2コンテキスト更新テーブルと、再正規化の回数に基づいて、更新区間の補集合であるlowを更新する再正規化テーブルを有する再正規化部とを備える。これにより、連続して優勢シンボル処理が行われる場合の算術符号化処理を、複数の異なるコンテキストが使用される場合でも削減できる。   Furthermore, a third arithmetic encoding device includes: a binarizing unit for binarizing the multilevel signal; an arithmetic encoding unit for arithmetically encoding the binary symbol generated by the binarizing unit; A context calculating unit for generating a context number, and an updating unit for updating the symbol value and symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarizing unit; An arithmetic coding apparatus comprising a probability state storage unit for storing a symbol value and a symbol appearance probability using the context number calculated by the context calculation unit as an index, wherein the arithmetic encoding unit performs dominant symbol processing A first update interval storage unit that stores a predicted value of an update interval determined based on the number of consecutive dominant symbol processes at the time, an initial interval, and a symbol appearance probability; A second update interval storage unit that is separate from the first update interval storage unit for storing the measured value, the number of consecutive dominant symbol processes during the dominant symbol processing, and the symbol appearance probability determined based on the initial symbol appearance probability Prediction value of symbol appearance probability determined based on first context update table for storing prediction value, number of consecutive dominant symbol processes at the time of dominant symbol processing, and symbol appearance probability updated by the first context update table And a second context update table that is separate from the first context update table, and a renormalization table that updates a low that is a complement of the update interval based on the number of renormalizations A part. As a result, the arithmetic coding process when the dominant symbol process is continuously performed can be reduced even when a plurality of different contexts are used.

さらにまた第4の算術符号化装置は、多値信号を2値化するための2値化部と、2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、コンテキスト番号を生成するためのコンテキスト計算部と、2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、シンボル値とシンボル出現確率とを格納するための確率状態格納部とを備える算術符号化装置であって、算術符号化部が、劣勢シンボルの区間を発生確率に基づいて分割した領域rLPSの予測値を格納する第1格納部と、同じくrLPSの予測値を格納する、第1格納部とは別個の第2格納部と、第1格納部及び第2格納部に格納されたrLPSの予測値を参照して算術符号化を行う演算部とを備える2サイクル予測部と、優勢シンボル処理時の優勢シンボル処理連続数、初期の区間、シンボル出現確率に基づいて決定される更新区間の予測値を格納する更新区間格納部と、優勢シンボル処理時の優勢シンボル処理連続数、及び初期のシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するためのコンテキスト更新テーブルと、再正規化の回数に基づいて、更新区間の補集合であるlowを更新する再正規化テーブルを有する再正規化部とを備える連続優勢シンボル処理予測部と、2サイクル予測部と連続優勢シンボル処理予測部のいずれかを切り替える予測手法切替部とを備える。これにより、2サイクル予測又は連続優勢シンボル処理予測を適宜切り替えて、サイクル数を効率よく削減して更に高速な算術符号化が実現できる。   Furthermore, a fourth arithmetic encoding device includes: a binarizing unit for binarizing the multilevel signal; an arithmetic encoding unit for arithmetically encoding the binary symbol generated by the binarizing unit; A context calculating unit for generating a context number, and an updating unit for updating the symbol value and symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarizing unit; , An arithmetic coding device comprising a probability state storage unit for storing a symbol value and a symbol appearance probability using the context number calculated by the context calculation unit as an index, wherein the arithmetic encoding unit A first storage unit that stores the predicted value of the region rLPS obtained by dividing the section based on the occurrence probability, and a second storage unit that stores the predicted value of the rLPS and is separate from the first storage unit. A two-cycle prediction unit comprising an arithmetic unit that performs arithmetic coding with reference to the predicted values of rLPS stored in the first storage unit and the second storage unit, and the number of consecutive dominant symbol processes at the time of dominant symbol processing, An update interval storage unit for storing a prediction value of an update interval determined based on the interval and the symbol appearance probability, the number of consecutive dominant symbol processes during the dominant symbol processing, and the symbol appearance determined based on the initial symbol appearance probability A continuous dominant symbol comprising a context update table for storing a predicted value of probability and a renormalization unit having a renormalization table for updating low, which is a complement of the update interval, based on the number of renormalizations A processing prediction unit; and a prediction method switching unit that switches between a 2-cycle prediction unit and a continuous dominant symbol processing prediction unit. Thereby, 2-cycle prediction or continuous dominant symbol processing prediction is switched as appropriate, and the number of cycles can be efficiently reduced to realize faster arithmetic coding.

一方、算術符号化方法は、2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号化方法であって、符号化対象のシンボルが優勢シンボルである場合の優勢シンボル処理時の区間座標値、及び劣勢シンボルである場合の劣勢シンボル処理時の区間座標値を予め記録した第1rLPSテーブルを参照して、第1シンボルの区間を更新した分割領域を求める工程と、得られた分割領域と、第1rLPSテーブルと別個の第2rLPSテーブルを参照して、第1シンボルに続く第2シンボルの区間を更新した分割領域を求める工程と、必要に応じて再正規化を行い、出力符号を出力する工程と、コンテキスト番号を更新する工程とを含む。これにより、1サイクル中に2ビット以上の処理が可能な高速な算術符号化を実現できる。   On the other hand, in the arithmetic coding of a binary symbol, the arithmetic coding method uses a dominant symbol that is a symbol with a high appearance probability and an inferior symbol that is a symbol with a low appearance probability as a section on the number line up to the previous symbol and the inferior symbol. An arithmetic coding method for outputting a coded signal from a binary symbol inputted as a result of corresponding to a section on the number line based on a coordinate value of a section on the number line Referring to the first rLPS table in which the section coordinate value at the time of dominant symbol processing when the symbol to be encoded is the dominant symbol and the section coordinate value at the time of inferior symbol processing when it is the inferior symbol are recorded in advance. Referring to a step of obtaining a divided region in which a section of one symbol is updated, the obtained divided region, and a second rLPS table separate from the first rLPS table, And a step of determining the divided region updating the section of the second symbols following the symbol, and re-normalization as needed, and outputting an output code, and a step of updating the context number. As a result, high-speed arithmetic coding capable of processing 2 bits or more in one cycle can be realized.

また算術符号化方法は、2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号化方法であって、2値シンボルの優勢シンボルが連続する場合に、優勢シンボルの連続数とコンテキスト番号に基づいて、更新区間格納部を参照して更新区間の予測値を求める工程と、コンテキスト番号を格納するコンテキスト更新テーブルを用いて更新する工程とを含む。これにより、連続して優勢シンボル処理が行われる場合の算術符号化処理を数サイクル削減でき、処理の低減と高速化が図られる。   In addition, in the arithmetic coding of binary symbols, the arithmetic coding method uses a dominant symbol that is a symbol having a high appearance probability and an inferior symbol that is a symbol that has a low appearance probability as a symbol line interval and an inferior symbol. An arithmetic coding method for outputting a coded signal from a binary symbol inputted in accordance with a section correspondence result on a number line based on a coordinate value of a section on the number line, corresponding to a predetermined section on the number line, When the dominant symbols of the binary symbols are consecutive, a step of obtaining a predicted value of the update section with reference to the update section storage unit based on the number of consecutive dominant symbols and the context number, and a context update table for storing the context number And updating using. As a result, the arithmetic coding process when the dominant symbol process is continuously performed can be reduced by several cycles, and the process can be reduced and speeded up.

さらに、算術符号化プログラムは、2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号プログラムであって、符号化対象のシンボルが優勢シンボルである場合の優勢シンボル処理時の区間座標値、及び劣勢シンボルである場合の劣勢シンボル処理時の区間座標値を予め記録した第1rLPSテーブルを参照して、第1シンボルの区間を更新した分割領域を求める機能と、得られた分割領域と、第1rLPSテーブルと別個の第2rLPSテーブルを参照して、第1シンボルに続く第2シンボルの区間を更新した分割領域を求める機能と、必要に応じて再正規化を行い、出力符号を出力する機能と、コンテキスト番号を更新する機能とをコンピュータに実現させる。これにより、1サイクル中に2ビット以上の処理が可能な高速な算術符号化を実現できる。   Further, in the arithmetic coding of the binary symbol, the arithmetic coding program converts the dominant symbol that is a symbol with a high appearance probability and the inferior symbol that is a symbol with a low appearance probability into a section on the number line to the previous symbol and the inferior symbol. An arithmetic code program that outputs a coded signal from a binary symbol inputted as a result of corresponding to a section on the number line, based on a coordinate value of a section on the number line, and corresponding to a predetermined section on the number line, Referring to the first rLPS table in which the interval coordinate value at the time of dominant symbol processing when the symbol to be encoded is the dominant symbol and the interval coordinate value at the time of inferior symbol processing when it is the inferior symbol are recorded in advance. A function for obtaining a divided area in which a symbol section is updated, an obtained divided area, and a second rLPS table separate from the first rLPS table. In view of this, a function for obtaining a divided region obtained by updating a section of the second symbol following the first symbol, a function for performing renormalization as necessary, and outputting an output code, and a function for updating a context number are provided. Make it a computer. As a result, high-speed arithmetic coding capable of processing 2 bits or more in one cycle can be realized.

さらにまた算術符号化プログラムは、2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号化プログラムであって、2値シンボルの優勢シンボルが連続する場合に、優勢シンボルの連続数とコンテキスト番号に基づいて、更新区間格納部を参照して更新区間の予測値を求める機能と、コンテキスト番号を格納するコンテキスト更新テーブルを用いて更新する機能とをコンピュータに実現させる。これにより、連続して優勢シンボル処理が行われる場合の算術符号化処理を数サイクル削減でき、処理の低減と高速化が図られる。   Further, in the arithmetic coding of the binary symbol, the arithmetic coding program converts the dominant symbol that is a symbol having a high appearance probability and the inferior symbol that is a symbol having a low appearance probability into a section on the number line up to the previous symbol and the inferior symbol. An arithmetic coding program that outputs a coded signal from a binary symbol inputted as a result of corresponding to a section on the number line, based on a coordinate value of a section on the number line, and corresponding to a predetermined section on the number line. A function for obtaining a predicted value of an update interval by referring to an update interval storage unit based on the number of consecutive dominant symbols and a context number when a dominant symbol of binary symbols is continuous, and context update for storing a context number A function of updating using a table is realized in a computer. As a result, the arithmetic coding process when the dominant symbol process is continuously performed can be reduced by several cycles, and the process can be reduced and speeded up.

またコンピュータで読み取り可能な記録媒体は、上記プログラムを格納するものである。記録媒体には、CD−ROM、CD−R、CD−RWやフレキシブルディスク、磁気テープ、MO、DVD−ROM、DVD−RAM、DVD−R、DVD+R、DVD−RW、DVD+RW、Blue−ray(登録商標)、HD DVD(登録商標)(AOD)等の磁気ディスク、光ディスク、光磁気ディスク、半導体メモリその他のプログラムを格納可能な媒体が含まれる。またプログラムには、上記記録媒体に格納されて配布されるものの他、インターネット等のネットワーク回線を通じてダウンロードによって配布される形態のものも含まれる。さらに記録媒体には、上記プログラムがソフトウェアやファームウェア等の形態で実行可能な状態に実装された汎用もしくは専用機器を含む。さらにまたプログラムに含まれる各処理や機能は、コンピュータで実行可能なプログラムソフトウエアにより実行してもよいし、各部の処理を所定のゲートアレイ(FPGA、ASIC)等のハードウエア、又はプログラム・ソフトウエアとハードウェアの一部の要素を実現する部分的ハードウエア・モジュールとが混在する形式で実現してもよい。   A computer-readable recording medium stores the above program. CD-ROM, CD-R, CD-RW, flexible disk, magnetic tape, MO, DVD-ROM, DVD-RAM, DVD-R, DVD + R, DVD-RW, DVD + RW, Blue-ray (registered) Trademark), HD DVD (registered trademark) (AOD), and other magnetic disks, optical disks, magneto-optical disks, semiconductor memories, and other media that can store programs. The program includes a program distributed in a download manner through a network line such as the Internet, in addition to a program stored and distributed in the recording medium. Further, the recording medium includes general-purpose or dedicated equipment in which the above-described program is mounted in a state where it can be executed in the form of software, firmware, or the like. Furthermore, each process and function included in the program may be executed by program software that can be executed by a computer, or each part of the process or function may be executed by hardware such as a predetermined gate array (FPGA, ASIC), or program software. It may be realized in the form of a mixture of hardware and partial hardware modules that realize some elements of hardware.

本発明の算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体によれば、H.264/AVCにおけるCABACの処理のサイクル数を削減し、処理の低負荷化、高速化を図ることができる。   According to the arithmetic coding apparatus, arithmetic coding method, arithmetic coding program, and computer-readable recording medium storing the program of the present invention, The number of cycles of CABAC processing in H.264 / AVC can be reduced, and the processing load and speed can be reduced.

以下、本発明の実施の形態を図面に基づいて説明する。ただし、以下に示す実施の形態は、本発明の技術思想を具体化するための算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体を例示するものであって、本発明は算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体を以下のものに特定しない。また、本明細書は請求の範囲に示される部材を、実施の形態の部材に特定するものでは決してない。特に実施の形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一もしくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the embodiments described below exemplify an arithmetic encoding device, an arithmetic encoding method, an arithmetic encoding program, and a computer-readable recording medium storing the program for embodying the technical idea of the present invention. However, the present invention does not specify an arithmetic encoding device, an arithmetic encoding method, an arithmetic encoding program, and a computer-readable recording medium storing the program as follows. Further, the present specification by no means specifies the members shown in the claims as the members of the embodiment. In particular, the dimensions, materials, shapes, relative arrangements, and the like of the component parts described in the embodiments are not intended to limit the scope of the present invention unless otherwise specified, but are merely described. It's just an example. Note that the size, positional relationship, and the like of the members shown in each drawing may be exaggerated for clarity of explanation. Furthermore, in the following description, the same name and symbol indicate the same or the same members, and detailed description thereof will be omitted as appropriate. Furthermore, each element constituting the present invention may be configured such that a plurality of elements are constituted by the same member and the plurality of elements are shared by one member, and conversely, the function of one member is constituted by a plurality of members. It can also be realized by sharing.

本明細書において算術符号化装置に接続される操作、制御、入出力、表示、その他の処理等のためのコンピュータ、プリンタ、外部記憶装置その他の周辺機器との接続は、例えばIEEE1394、RS−232x、RS−422、RS−423、RS−485、USB等のシリアル接続、パラレル接続、あるいは10BASE−T、100BASE−TX、1000BASE−T等のネットワークを介して電気的に接続して通信を行う。接続は有線を使った物理的な接続に限られず、IEEE802.1x、OFDM方式等の無線LANやBluetooth等の電波、赤外線、光通信等を利用した無線接続等でもよい。さらに検索対象のテキストや画像データの保存やデータベース構築、検索等に関する設定の保存等を行うための記録媒体には、メモリカードや磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等が利用できる。
(動画像符号化/復号装置)
In this specification, connection to computers, printers, external storage devices and other peripheral devices for operations, control, input / output, display, and other processing connected to the arithmetic coding device is, for example, IEEE1394, RS-232x. , RS-422, RS-423, RS-485, serial connection such as USB, parallel connection, or electrical connection via a network such as 10BASE-T, 100BASE-TX, 1000BASE-T, and the like. The connection is not limited to a physical connection using a wire, but may be a wireless connection using a wireless LAN such as IEEE 802.1x or OFDM, radio waves such as Bluetooth, infrared rays, optical communication, or the like. Further, a memory card, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used as a recording medium for storing text and image data to be searched, database construction, setting for searching, and the like.
(Moving image encoding / decoding device)

図1に、H.264/AVCの符号化処理処理により、画像データからビットストリームを得る動画像符号化/復号装置を構成するブロック図の一例を、図1に示す。この図に示す動画像符号化/復号装置100は、メモリ管理を行うDMA1(Direct Memory Access)と、動き探索部2(ME)と、デブロッキングフィルタ3(DF:Deblocking Filter)と、動き補償部4(MC)と、変換部5と、量子化部6と、逆量子化部7と、逆変換部8と、全体制御部9と、可変長符号化部(VLC:Variable Length Coder)である算術符号化/復号装置10と、可変長復号化部11(VLD:Variable Length Decoder)とを備える。算術符号化/復号装置10は、算術符号化技術としてCABACやCAVLCを行う。動画像符号化/復号装置100は、ハードウェアで構成する他、プロセッサでソフトウェア的に処理することも可能である。この場合は、コンピュータにインストールされた算術符号化プログラムにて、算術符号化を行う。なおコンピュータには、汎用のパーソナルコンピュータやワークステーションの他、携帯電話やスマートフォン、PDA、通信機能付カーナビゲーションやデータ通信可能な固定電話等の、動画像を表示可能な機器が適宜利用できる。   In FIG. FIG. 1 shows an example of a block diagram of a moving image encoding / decoding device that obtains a bit stream from image data by H.264 / AVC encoding processing. The moving image encoding / decoding device 100 shown in this figure includes a DMA 1 (Direct Memory Access) that performs memory management, a motion search unit 2 (ME), a deblocking filter 3 (DF: Deblocking Filter), and a motion compensation unit. 4 (MC), a conversion unit 5, a quantization unit 6, an inverse quantization unit 7, an inverse conversion unit 8, an overall control unit 9, and a variable length coding unit (VLC). An arithmetic encoding / decoding device 10 and a variable length decoding unit 11 (VLD: Variable Length Decoder) are provided. The arithmetic encoding / decoding device 10 performs CABAC and CAVLC as arithmetic encoding techniques. The moving image encoding / decoding device 100 is configured by hardware, and can also be processed by software by a processor. In this case, arithmetic encoding is performed by an arithmetic encoding program installed in the computer. In addition to general-purpose personal computers and workstations, devices that can display moving images, such as mobile phones, smartphones, PDAs, car navigation systems with communication functions, and fixed telephones capable of data communication, can be used as computers.

動画像符号化/復号装置100では、まず符号化処理を行う動画像が入力され、動き探索部2において動き検出処理を行う。この処理で求められた動きベクトルを用い、動き補償部4、変換部5、量子化部6において、動き補償処理、変換処理、量子化処理を行う。量子化処理を行ったブロック係数、および符号化に使用するすべての情報が算術符号化/復号装置10に集められ、ビットストリームを作成する。次のフレームの符号に用いる参照フレームを作成するため、逆符号化部7、逆変換部8、動き補償部4を用いて、その逆処理を行い、参照フレームを作成し、フレームメモリFMに保管する。フレームメモリFMに保管する前に、デブロッキングフィルタ3を用いれば、ブロックノイズを軽減する効果が得られる。   In the moving image encoding / decoding device 100, first, a moving image to be encoded is input, and the motion search unit 2 performs a motion detection process. The motion compensation unit 4, the conversion unit 5, and the quantization unit 6 perform motion compensation processing, conversion processing, and quantization processing using the motion vector obtained by this processing. The block coefficients subjected to the quantization process and all information used for encoding are collected in the arithmetic encoding / decoding device 10 to create a bit stream. In order to create a reference frame to be used for the code of the next frame, the inverse encoding unit 7, the inverse transform unit 8, and the motion compensation unit 4 are used to perform reverse processing to create a reference frame and store it in the frame memory FM. To do. If the deblocking filter 3 is used before storing it in the frame memory FM, an effect of reducing block noise can be obtained.

この動画像符号化/復号装置100では、符号化以外に復号処理も可能となる。その処理手順は、まず入力されるビットストリームを復号処理を行う可変長復号化部11より解析し、ビットストリームにある画像情報を復号し、参照フレーム生成手順と同じく逆量子化部7、逆変換部8、動き補償部4を用いて画像フレームを復元し、フレームメモリFMに保管する。このように、算術符号化技術には、符号化されたデータの復号も含まれる。本明細書においては、算術符号化装置、方法、プログラム等は、算術符号化のみならず、復号を行う装置、方法、プログラムも含むものとして説明する。
(算術符号化方式)
The moving image encoding / decoding device 100 can perform decoding processing in addition to encoding. The processing procedure is as follows. First, the input bit stream is analyzed by the variable length decoding unit 11 that performs decoding processing, the image information in the bit stream is decoded, and the inverse quantization unit 7 and inverse transformation are performed as in the reference frame generation procedure. The image frame is restored using the unit 8 and the motion compensation unit 4 and stored in the frame memory FM. Thus, the arithmetic encoding technique includes decoding of encoded data. In the present specification, an arithmetic coding apparatus, method, program, and the like are described as including not only arithmetic coding but also a decoding apparatus, method, and program.
(Arithmetic coding method)

本実施の形態では、H.264/AVCにおけるCABAC処理の高速化を図る。CABACは算術符号化方式である。基本的な算術符号化であるエリアス符号化・復号化の概念を、図2に示す。算術符号化では、一般に下限値0以上、上限値1未満の実数直線を考える。この区間を初期のrangeとする。算術符号化においては、優勢シンボル(Most Possible Symbol:MPS)、劣勢シンボル(Least Possible Symbol:LPS)の発生確率に基づいて実数直線を分割する。分割した領域をそれぞれrMPS、rLPSとする。その後、符号化出力対象となるシンボルが属する領域を選択する。ここでは仮にrMPSを選択したとする。その後、選択したrMPSを次のrangeとし、このrangeに対して同様にrMPS、rLPSに分割し、符号化出力対象となる領域を選択する。この動作を符号化出力対象が無くなるまで繰り返し、最終的に特定された領域であるrangeの範囲内に収まる値を出力値valueとして出力することで符号化が完了する。通常はrangeの下限値を出力値valueとして出力する。このような基本的な算術符号化は、区間のrangeや入力値であるvalueが実数値であり、演算精度の問題から現実的ではない。そこで実数直線を有限のビット幅を持つ整数区間とし、特定した区間の幅であるrangeと特定した区間の下限値であるvalueに対して正規化処理を導入することで問題を解決している。正規化処理は、左シフト演算により行われ、この正規化処理によって、rangeとvalueの演算精度を確保している。CABACでは、複数のコンテキスト変数情報を利用して符号化効率の向上を図っている。   In the present embodiment, H.264. Accelerate CABAC processing in H.264 / AVC. CABAC is an arithmetic coding method. The concept of alias coding / decoding, which is basic arithmetic coding, is shown in FIG. In arithmetic coding, a real straight line having a lower limit value of 0 or more and an upper limit value of 1 or less is generally considered. This section is set as the initial range. In arithmetic coding, a real line is divided based on the occurrence probability of a dominant symbol (MPS) and an inferior symbol (Least Possible Symbol: LPS). Let the divided areas be rMPS and rLPS, respectively. Thereafter, a region to which a symbol to be encoded output belongs is selected. Here, it is assumed that rMPS is selected. Thereafter, the selected rMPS is set as the next range, and this range is similarly divided into rMPS and rLPS, and an area to be encoded is selected. This operation is repeated until there is no encoding output target, and the value that falls within the range of the range that is finally specified is output as the output value value, thereby completing the encoding. Normally, the lower limit value of the range is output as the output value value. In such basic arithmetic coding, the range of the section and the value that is the input value are real values, which is not practical due to the problem of calculation accuracy. Therefore, the real number line is set to an integer interval having a finite bit width, and the problem is solved by introducing a normalization process to the range that is the width of the specified interval and the value that is the lower limit value of the specified interval. The normalization process is performed by a left shift calculation, and the normalization process ensures the calculation accuracy of range and value. In CABAC, a plurality of context variable information is used to improve encoding efficiency.

次に算術符号化(AC:Arithmetic Coding)を行う手順を、図3に基づいて説明する。CABACにおいて用いられる2値算術符号化の場合、与えられた2値シンボルの発生確率に基づいて、入力信号に応じて実数0.0から1.0の間で区間を逐次分割していく。ここで、入力信号00010とすると、”0”の発生確率が0.8、”1”の発生確率が0.2となる。このため、入力信号の内”0”が符号化されると、前の区間の下0.8の部分が、新しい区間として更新される。一方、”1”が符号化されると、前の区間の上0.2が新しい区間として更新される。   Next, a procedure for performing arithmetic coding (AC) will be described with reference to FIG. In the case of binary arithmetic coding used in CABAC, a section is sequentially divided between real numbers 0.0 to 1.0 according to an input signal based on a given binary symbol occurrence probability. Here, when the input signal is 00001, the occurrence probability of “0” is 0.8, and the occurrence probability of “1” is 0.2. For this reason, when “0” of the input signal is encoded, the lower 0.8 part of the previous section is updated as a new section. On the other hand, when “1” is encoded, the upper 0.2 of the previous section is updated as a new section.

図3の最初のステップ1では”0”を符号化する。この結果、初期区間の0.0−1.0の下側0.8の部分(0.0〜0.8)が新しい区間として更新される。   In the first step 1 of FIG. 3, “0” is encoded. As a result, the lower 0.8 part (0.0 to 0.8) of 0.0-1.0 in the initial section is updated as a new section.

次にステップ2で”0”を符号化する。この結果、現在の区間(0.0〜0.8)の下側で0.8×0.8=0.64の部分(0.0〜0.64)が更新された区間となる。   Next, in step 2, “0” is encoded. As a result, the section (0.0 to 0.64) of 0.8 × 0.8 = 0.64 is updated below the current section (0.0 to 0.8).

同様にステップ3で”0”を符号化する。この結果、現在の区間(0.0〜0.64)のさらに下側で0.64×0.8=0.512の部分(0.0〜0.512)が更新区間となる。   Similarly, in step 3, “0” is encoded. As a result, the portion of 0.64 × 0.8 = 0.512 (0.0 to 0.512) becomes the update interval further below the current interval (0.0 to 0.64).

次にステップ4では”1”を符号化する。この結果、現在の区間(0.0〜0.512)の上側で、0.512×0.2=0.1024の部分、すなわち((0.512−0.1024=0.4096)〜0.512)=(0.4096〜0.512)が更新区間となる。   Next, in step 4, "1" is encoded. As a result, above the current section (0.0 to 0.512), a portion of 0.512 × 0.2 = 0.1024, that is, ((0.512−0.1024 = 0.4096) to 0 .512) = (0.4096 to 0.512) is the update interval.

そしてステップ5で再び”0”を符号化する。この結果、現在の区間(0.4096〜0.512)の下側で0.1024×0.8=0.08192の部分(0.4096〜(0.4096+0.08192))=(0.4096〜0.49152)が更新区間となる。   In step 5, “0” is encoded again. As a result, a portion of 0.1024 × 0.8 = 0.08192 (0.4096 to (0.4096 + 0.08192)) = (0.4096) below the current section (0.4096 to 0.512). ˜0.49152) is the update interval.

最後に、ステップ6で符号を決定する。算術符号の符号語は、最終区間を特定する実数値の2進表現となる。この例では、最終の更新区間が(0.4096〜0.49152)となるので、その間に含まれる実数の中で最も2進表現が短くなる0.4375をとることができる。0.4375の2進表現は0.0111になるので、常に0となる最初の桁を除いた、小数点以下の”0111”が符号語として出力される。
(算術符号化装置のブロック図)
Finally, the code is determined in step 6. The code word of the arithmetic code is a binary representation of a real value that specifies the last interval. In this example, since the last update interval is (0.4096 to 0.49152), 0.4375 in which the binary representation is the shortest among the real numbers included in the interval can be taken. Since the binary representation of 0.4375 is 0.0111, “0111” below the decimal point, excluding the first digit that is always 0, is output as the code word.
(Block diagram of arithmetic coding device)

次に、CABAC処理を行う算術符号化装置の例を、図4に示す。この図に示すように算術符号化装置10Aは、多値信号を2値シンボルに変換する2値化部12と、符号化すべき2値シンボルの発生確率を周囲の状況すなわちコンテキストに応じて計算・更新するためのコンテキスト計算部14と、これら2値シンボルと2値シンボル発生確率に基づいて算術符号化を行う2値算術符号化部16で構成されている。   Next, FIG. 4 shows an example of an arithmetic coding apparatus that performs CABAC processing. As shown in this figure, the arithmetic encoding device 10A includes a binarizing unit 12 that converts a multilevel signal into a binary symbol, and calculates the occurrence probability of the binary symbol to be encoded according to the surrounding situation, that is, the context. A context calculation unit 14 for updating and a binary arithmetic encoding unit 16 that performs arithmetic encoding based on these binary symbols and binary symbol occurrence probabilities are configured.

2値算術符号化部16の詳細を図5に示す。この図に示すように、2値算術符号化部16はrLPSテーブル20と、コンテキスト変更テーブル30と、演算部40と、再正規化部50とを有する。
(再正規化)
Details of the binary arithmetic encoding unit 16 are shown in FIG. As shown in this figure, the binary arithmetic encoding unit 16 includes an rLPS table 20, a context change table 30, a calculation unit 40, and a renormalization unit 50.
(Renormalization)

CABAC内部の2値算術符号化部も、算術符号化にあたっては上記と同様の動作を行う。ただ、実際に区間区間を保持する記憶素子であるレジスタの桁数が有限であるため、出力すべき区間の上位ビットが確定した段階で適時確定ビットを出力し、更新区間の幅を広げる再正規化(Renormalization)の処理が加わる。   The binary arithmetic encoding unit in CABAC also performs the same operation as described above for arithmetic encoding. However, since the number of digits in the register, which is the storage element that actually holds the interval section, is finite, the regular bit is output in a timely manner when the upper bits of the section to be output are finalized, and the width of the update section is expanded. Renormalization processing is added.

再正規化の手順を、図6に基づいて説明する。ステップ1で0を符号化した結果、更新区間が(0〜0.8)となる。次にステップ2で1を符号化した結果、区間(0.0〜0.8)の上側0.2の部分(0.64〜0.8)が更新区間となる。この段階で、出力すべき区間の代表値が0.5以上になることが確定する。すなわち、先頭のビットが”1”であることが確定するため、この時点でステップ3として、”1”を出力すると共に、(0.5〜1.0)の区間を(0.0〜1.0)に拡大するようマッピング(対応付け)する。ここでは、(0.64〜0.8)の区間を(((0.64−0.5)×2=0.28)〜((0.8−0.5)×2=0.6))=(0.28〜0.6)に拡大する。このように、処理の途中で(この例ではステップ2で1を符号化した時点で)区間の座標値が0.5(2進表現で0.1)以上となることが判明するので、その時点で小数点第1位の”1”を出力する。同時に、区間から0.5を減算して2倍することにより、区間を実質的に拡張でき、使用可能な桁数を大きくできる。一方、区間の座標値が0.25よりも小さくなると、先頭ビットが”0”であることが判明する。この処理によって、区間の幅を表す実数の桁数が増え続けることを防ぐことができ、有限桁数の演算で符号化を行うことが可能となる。   The renormalization procedure will be described with reference to FIG. As a result of encoding 0 in step 1, the update interval becomes (0 to 0.8). Next, as a result of encoding 1 in step 2, the upper 0.2 part (0.64 to 0.8) of the section (0.0 to 0.8) becomes the update section. At this stage, it is determined that the representative value of the section to be output is 0.5 or more. That is, since it is determined that the first bit is “1”, “1” is output as Step 3 at this time, and the section of (0.5 to 1.0) is (0.0 to 1). .0) is mapped (associated). Here, the section of (0.64 to 0.8) is defined as (((0.64-0.5) × 2 = 0.28) to ((0.8−0.5) × 2 = 0.6). )) = Enlarge to (0.28 to 0.6). In this way, it is found that the coordinate value of the section becomes 0.5 (0.1 in binary expression) or more during the processing (in this example, when 1 is encoded in step 2). At the time, “1” with the first decimal point is output. At the same time, by subtracting 0.5 from the interval and doubling the interval, the interval can be substantially expanded and the number of usable digits can be increased. On the other hand, when the coordinate value of the section becomes smaller than 0.25, it is found that the first bit is “0”. By this processing, it is possible to prevent the real number of digits representing the width of the section from being continuously increased, and it is possible to perform encoding by calculation with a finite number of digits.

以上の例では、説明のため2値シンボルの発生確率は固定のものとしたが、実際には一動作ごとに適応的に変更させることも可能である。2値算術符号化部に2値シンボルの発生確率を与える役割は、コンテキスト計算部14が行っている。
(CABACの動作)
In the above example, the occurrence probability of the binary symbol is fixed for the sake of explanation, but actually, it can be changed adaptively for each operation. The context calculation unit 14 plays a role of giving a binary symbol occurrence probability to the binary arithmetic coding unit.
(CABAC operation)

CABACの動作としては、更新区間を更新する、すなわちrange(更新区間)とlow(更新区間以外)に区分する動作として、MPS(Most Possible Symbol)処理とLPS(Least Possible Symbol)処理の2種類がある。上記図3の例では、0を符号化する処理がMPSに該当し、1を符号化する処理がLPSに相当する。   There are two types of CABAC operations: updating the update interval, that is, dividing the range into update (range) and low (other than update interval), MPS (Most Possible Symbol) processing and LPS (Least Possible Symbol) processing. is there. In the example of FIG. 3, the process for encoding 0 corresponds to MPS, and the process for encoding 1 corresponds to LPS.

MPS処理時には、以下の式によってrangeとlowが決定される。
range=range−rLPS
low=low
During MPS processing, range and low are determined by the following equations.
range = range-rLPS
low = low

一方、LPS処理時には以下の式でrangeとlowが決定される。
range=rLPS
low=low+range−rLPS
これらの処理のいずれが行われるかは、コンテキストとrangeによって決定される。コンテキストは、2値シンボルの発生確率を示しており、シンボルの処理時に更新される。
On the other hand, at the time of LPS processing, range and low are determined by the following equations.
range = rLPS
low = low + range-rLPS
Which of these processes is performed is determined by the context and the range. The context indicates the occurrence probability of the binary symbol and is updated when the symbol is processed.

コンテキストは図4に示すコンテキスト計算部14で保持、更新される。コンテキスト計算部14は、2値シンボルの発生確率を複数保持しており、現在の符号化対象や周囲の状況すなわちコンテキストに応じて発生確率を切り替え、2値算術符号化部16に与える。2値シンボルの発生確率は、発生確率テーブルに保持され、発生確率が高い0、1いずれかのシンボル(MPS:Most Probable Symbol:発生確率が最も高いシンボル)と、その発生確率テーブル番号(pStateIdx)とが対応付けて保持される。発生確率テーブル番号を指定すると、対応する発生確率が得られる。
(従来のCABAC処理)
The context is held and updated by the context calculation unit 14 shown in FIG. The context calculation unit 14 holds a plurality of occurrence probabilities of binary symbols, switches the occurrence probabilities according to the current encoding target and the surrounding situation, that is, the context, and gives it to the binary arithmetic encoding unit 16. The occurrence probability of the binary symbol is held in the occurrence probability table, and either 0 or 1 symbol (MPS: Most Probable Symbol) having the highest occurrence probability and its occurrence probability table number (pStateIdx) Are held in association with each other. When the occurrence probability table number is designated, the corresponding occurrence probability is obtained.
(Conventional CABAC processing)

次に、CABAC処理を行う従来の算術符号化装置において、2値算術符号化部16が、コンテキスト計算部14から与えられた発生確率(コンテキスト)に従って、2値化部12から与えられる2値シンボルの符号化を行い、区間を更新する手順を、図7のブロック図及び図8の動作図に基づいて説明する。   Next, in the conventional arithmetic coding apparatus that performs CABAC processing, the binary arithmetic coding unit 16 gives a binary symbol given from the binarizing unit 12 according to the occurrence probability (context) given from the context calculation unit 14 The procedure for performing the coding of and updating the section will be described with reference to the block diagram of FIG. 7 and the operation diagram of FIG.

図7に示す算術符号化装置200は、演算部40と、rLPSテーブル20と、コンテキスト更新部70とを備える。また算術符号化装置200は、入力端子として、区間を入力するrange入力及び/又はlow入力、2値列入力、コンテキスト入力を備えている。range入力、low入力はそれぞれ、演算部40、rLPSテーブル20に接続される。また2値列入力は演算部40、rLPSテーブル20、コンテキスト更新部70に接続される。さらにコンテキスト入力は、rLPSテーブル20、コンテキスト更新部70に接続される。ここでrLPSテーブル20は、指定されたrangeとコンテキストに応じて、rLPSを選択するテーブルである。また演算部40は再正規化部を備え、再正規化の際に符号ビットを生成し、演算部40から出力符号を出力する。コンテキストは、range、lowの更新後に更新される。コンテキスト更新部70は、前段の処理結果に基づいてコンテキストを更新して出力する。   The arithmetic coding apparatus 200 illustrated in FIG. 7 includes a calculation unit 40, an rLPS table 20, and a context update unit 70. The arithmetic coding apparatus 200 includes a range input and / or a low input, a binary string input, and a context input for inputting a section as input terminals. The range input and the low input are connected to the arithmetic unit 40 and the rLPS table 20, respectively. The binary string input is connected to the calculation unit 40, the rLPS table 20, and the context update unit 70. Further, the context input is connected to the rLPS table 20 and the context update unit 70. Here, the rLPS table 20 is a table for selecting an rLPS according to a specified range and context. The calculation unit 40 includes a renormalization unit, generates a sign bit at the time of renormalization, and outputs an output code from the calculation unit 40. The context is updated after the range and low are updated. The context update unit 70 updates and outputs the context based on the previous processing result.

演算部40は、算術符号化演算を行う。ここでは、入力された区間range及び/又はlow、これに対応するrLPSをrLPSテーブル20を参照して決定し、これらに基づいて区間を更新し、range’とlow’を出力する。   The calculation unit 40 performs arithmetic coding calculation. Here, the input section range and / or low and the corresponding rLPS are determined with reference to the rLPS table 20, the section is updated based on these, and range 'and low' are output.

この処理を、図8の動作図に基づいて説明する。ここでは、所定の区間に対して、(サイクル1)MPS処理と、(サイクル2)LPS処理及び再正規化を行う処理を説明している。すなわち、まずサイクル1で、rangeとlowが決定されている区間に対して、2値シンボルA及び対応するコンテキストXの場合に演算部40がMPS処理して符号化を行い、区間をrange’とlow’に更新する。ここでは、
range’=range−rLPS、
low’=low
となる。一方でコンテキスト更新部70がコンテキストXを更新する。そしてサイクル2で、このrange’とlow’を2値シンボルB及び対応するコンテキストYの場合に演算部40がLSP処理で符号化を行って、区間をrange”とlow”に更新する。ここでは
range”=rLPS’、
low”=low’+range’−rLPS’
となる。また一方、コンテキスト更新部70がコンテキストYを更新する。
This process will be described based on the operation diagram of FIG. Here, (cycle 1) MPS processing, (cycle 2) LPS processing and renormalization processing are described for a predetermined section. That is, first, in cycle 1, for the interval in which range and low are determined, the arithmetic unit 40 performs MPS processing and encoding for the binary symbol A and the corresponding context X, and the interval is defined as range ′. Update to low '. here,
range ′ = range-rLPS,
low '= low
It becomes. On the other hand, the context update unit 70 updates the context X. Then, in cycle 2, when the range ′ and low ′ are the binary symbol B and the corresponding context Y, the arithmetic unit 40 performs encoding by LSP processing, and updates the interval to range ″ and low ″. Here, “range” = rLPS ′,
low "= low '+ range'-rLPS'
It becomes. On the other hand, the context update unit 70 updates the context Y.

さらに再正規化を行って区間をrange”’とlow”’に拡大する。この結果、
range”’=(range”−0.5)×2
low”’=(low”−0.5)×2
となる。さらに演算部40が出力符号”1”を出力する。このように従来のCABAC処理では、上記の処理を完了するまでに2サイクルを要した。
Further, renormalization is performed to expand the section to range “′” and low “′. As a result,
range "'= (range" -0.5) * 2
low "'= (low" -0.5) * 2
It becomes. Further, the calculation unit 40 outputs the output code “1”. Thus, in the conventional CABAC process, two cycles were required to complete the above process.

一方で近年の画像の高精細化に伴ってH.264/AVCの符号化処理をリアルタイムで行うなど、高速化の要求が高く、CABAC処理の演算量を削減することが求められている。しなしながら、上記の構成ではrange、lowの値が前の処理に依存するため、演算をパイプライン化できないという問題があった。すなわち、隣接するシンボルの算術符号化においては、2シンボル目の処理にはrange、lowだけでなくrLPSの値までも前の処理(1シンボル目の処理)に依存する。このため、1サイクル間に2シンボル以上の処理は困難とされていた。   On the other hand, H.P. There is a high demand for high speed such as H.264 / AVC encoding processing in real time, and there is a demand for reducing the amount of CABAC processing. However, in the above configuration, there is a problem that operations cannot be pipelined because the values of range and low depend on the previous processing. That is, in arithmetic coding of adjacent symbols, the processing of the second symbol depends on the previous processing (processing of the first symbol) not only for range and low but also for the value of rLPS. For this reason, it has been difficult to process two symbols or more in one cycle.

言い換えると、従来、CABACの実行速度の高速化手法としては、CABAC装置の各処理部の処理やメモリアクセス、符号化器部分の動作並列化等に着目し、如何に効率よくデータ処理を行うかという手法を主眼として、1シンボル/1サイクルの処理の実現が研究されている。しかしながら、CABACのシンボル処理は、常に過去のシンボルの出現確率に依存する特徴があり、各シンボルの処理時に更新が必要なコンテキスト、rLPSは、直前のシンボルの処理結果を得なければならない。このため従来は、前段の処理に依存する性質上、演算処理のハードウェアを増やすことでは処理の効率化は望めないと考えられており、十分に満足できる高速化が実現されていないにもかかわらず、1シンボル/1サイクルの処理速度が高速化の限界であると理解されていた。   In other words, conventionally, as a method for increasing the execution speed of CABAC, focusing on the processing of each processing unit of the CABAC device, memory access, parallel operation of the encoder portion, etc., how efficiently data processing is performed The realization of processing of one symbol / one cycle has been studied with a focus on the above technique. However, the CABAC symbol processing always has a feature that depends on the appearance probability of a past symbol, and the context that needs to be updated when processing each symbol, rLPS, must obtain the processing result of the immediately preceding symbol. For this reason, in the past, due to the nature of dependence on the processing in the previous stage, it has been considered that increasing the processing hardware will not be able to increase the processing efficiency, and even though sufficiently high speed is not realized. First, it was understood that the processing speed of one symbol / one cycle is the limit of speeding up.

これに対し本発明では、シンボルの出現確率の演算手順を分析し、シンボル間の依存性の詳細関係を解明した。これにより、状況によりシンボル間の依存性を失くし、事前に次サイクルの処理を実行し、テーブルの更新も同時に実現できる手法を開発するに至った。
(2サイクル予測)
On the other hand, in the present invention, the calculation procedure of the appearance probability of the symbol is analyzed, and the detailed relationship of the dependency between symbols is clarified. As a result, the inter-symbol dependency is lost depending on the situation, and the process of the next cycle is executed in advance, and a method capable of simultaneously updating the table has been developed.
(2 cycle prediction)

本実施の形態では、2シンボルの処理に必要な情報を一括して入力し、1サイクル間に2シンボルの処理を行うため、コンテキスト更新テーブル、rLPSテーブル、演算部をそれぞれ2つ設けている。ここではrangeとlowを演算するために必要なコンテキスト、すなわち2値列とシンタックス要素と周囲の状況(コンテキスト)に基づいて、生成された2値列に使用するコンテキストを決定するためのrLPSテーブルを予め作成し、処理時にはこれを参照することで先の演算の予測を可能としている。さらにrLPSテーブルを2つ用意することで、2サイクル分の処理を行うための異なるrLPSを、同時に参照可能とした。例えば、一方のテーブルをMPS処理用のLPSを記録した第1rLPSテーブルとし、他方をLPS処理用のLPSを記録した第2rLPSを保持したテーブルとしており、1サイクル中にMPS処理、LPS処理両方に対応できる。また各rLPSテーブルはマルチポート(デュアルポート)メモリを利用し、2つのアクセスポートから同時に書き込みと読み出しを可能としている。これにより、一方のアクセスポートからデータを読み書きしているときに、他方のアクセスポートを使用してデータの読み出しなどが行なえる。これにより、2つのプロセッサが同じメモリに同時にアクセス可能となり、2サイクル分の処理を1サイクル内で完了でき、処理サイクル数を低減してCABAC処理の高速化を図っている。   In the present embodiment, two context update tables, two rLPS tables, and two arithmetic units are provided in order to collectively input information necessary for processing two symbols and perform two symbols in one cycle. Here, an rLPS table for determining a context to be used for a generated binary string based on a context necessary for calculating range and low, that is, a binary string, a syntax element, and a surrounding situation (context). Is created in advance, and it is possible to predict the previous calculation by referring to this during processing. Furthermore, by preparing two rLPS tables, different rLPS for performing processing for two cycles can be referred simultaneously. For example, one table is a first rLPS table that records LPS for MPS processing, and the other is a table that holds a second rLPS that records LPS for LPS processing, and supports both MPS processing and LPS processing in one cycle. it can. Each rLPS table uses a multi-port (dual port) memory, and enables simultaneous writing and reading from two access ports. As a result, when data is read from or written to one access port, data can be read using the other access port. As a result, two processors can access the same memory at the same time, and two cycles of processing can be completed within one cycle, and the number of processing cycles is reduced to increase the speed of CABAC processing.

なおコンテキストをメモリから2つ同時に読み出し、且つ2つ同時に書き込むには、更新コンテキストの内容により、最大で従来の4倍程度のメモリ量が必要になると見込まれる。またメモリ量を従来の2倍のみ使用した場合には、同じコンテキストの更新が必要となる際に2サイクルの処理を要し、処理速度の低減になる。同様に3シンボルの処理も可能であるが、コンテキストのメモリ量は従来の6倍程度となる。このように、パフォーマンスとハードウェア仕様のバランス、及び要求される処理能力や速度などに応じて、適切な構成に設計する必要がある。好ましくは、一括に入力する情報は2シンボル分とし、2サイクル予測と、後述する連続MPS処理予測を併用して、これらを切り替えることにより、画像にあまり依存せず、高い処理速度を保つことができる。以下、順次説明する。
(実施の形態1)
In order to read and write two contexts from the memory at the same time, it is expected that a memory amount that is about four times as large as the conventional one will be required depending on the contents of the update context. In addition, when the memory amount is used only twice that of the conventional case, two cycles of processing are required when the same context needs to be updated, and the processing speed is reduced. Similarly, processing of three symbols is possible, but the amount of context memory is about six times that of the conventional one. Thus, it is necessary to design an appropriate configuration according to the balance between performance and hardware specifications, and required processing capacity and speed. Preferably, the information to be input at a time is for two symbols, and the two-cycle prediction and the continuous MPS processing prediction described later are used in combination, and switching between them can maintain a high processing speed without depending much on the image. it can. Hereinafter, description will be made sequentially.
(Embodiment 1)

図9に、本実施の形態1に係る算術符号化装置を示す。この図に示す算術符号化装置は、多値信号を2値シンボルに変換する2値化部112と、符号化すべき2値シンボルの発生確率を周囲の状況(コンテキスト)に応じて計算・更新するためのコンテキスト計算部114と、これら2値シンボルと2値シンボル発生確率に基づいて算術符号化を行う算術符号化部116と、コンテキストを保持する第1メモリ部117と、range及びlowを保持する第2メモリ部118と、2サイクル予測を行う予測部119と、出力バッファ121とを備える。この算術符号化装置は、多値信号及び/又は符号化対象のシンタックス要素を2値化部112で入力すると、2値列に変換して算術符号化部116と予測部119に送られる。また必要に応じて周囲の状況(コンテキスト)もコンテキスト計算部114に入力される。そして予測部119でrangeの予測を行う一方、算術符号化部116で算術符号化を行い、得られた結果を符号ビットとして各々出力バッファ121に出力する。なお、必要に応じて入力側にバッファを設けることも可能であることは言うまでもない。
(第1メモリ部117)
FIG. 9 shows the arithmetic coding apparatus according to the first embodiment. The arithmetic coding apparatus shown in this figure calculates / updates a binarization unit 112 that converts a multilevel signal into a binary symbol, and a probability of occurrence of the binary symbol to be encoded according to the surrounding situation (context). Context calculation unit 114, arithmetic coding unit 116 that performs arithmetic coding based on these binary symbols and binary symbol occurrence probability, first memory unit 117 that holds context, and range and low A second memory unit 118, a prediction unit 119 that performs two-cycle prediction, and an output buffer 121 are provided. In this arithmetic encoding apparatus, when a multilevel signal and / or a syntax element to be encoded is input by the binarization unit 112, it is converted into a binary sequence and sent to the arithmetic encoding unit 116 and the prediction unit 119. In addition, the surrounding situation (context) is also input to the context calculation unit 114 as necessary. Then, while the prediction unit 119 performs the range prediction, the arithmetic encoding unit 116 performs arithmetic encoding, and outputs the obtained result to the output buffer 121 as a code bit. Needless to say, a buffer can be provided on the input side as required.
(First memory unit 117)

第1メモリ部117は、コンテキストを保持するコンテキストテーブルとして機能する。コンテキストテーブルは必要に応じて随時更新される。このため第1メモリ部117には更新が可能なメモリ、例えばRAMなどが使用される。第1メモリ部117の例を図10に示す。この図に示すように第1メモリ部117内にはコンテキスト#1、#2、#3、・・・が保持され、各コンテキストが2値列(0,1)と対応付けられる。この際、1のコンテキストに複数の2値列を割り当てることも可能である。   The first memory unit 117 functions as a context table that holds contexts. The context table is updated as needed. For this reason, an updatable memory, such as a RAM, is used for the first memory unit 117. An example of the first memory unit 117 is shown in FIG. As shown in this figure, contexts # 1, # 2, # 3,... Are held in the first memory unit 117, and each context is associated with a binary string (0, 1). At this time, it is also possible to assign a plurality of binary strings to one context.

第2メモリ部118は、コンテキストを保持する第2コンテキスト更新テーブルとして機能する。range、low値の保持には、レジスタなどが使用できる。   The second memory unit 118 functions as a second context update table that holds contexts. A register or the like can be used to hold the range and low values.

また、図11の変形例に示すように、第1メモリ部と第2メモリ部を共通のメモリ部117Aとして構成し、コンテキストとrange、lowを一のメモリ内に各々保持することも可能である。   Further, as shown in the modification of FIG. 11, the first memory unit and the second memory unit can be configured as a common memory unit 117A, and the context, range, and low can be held in one memory. .

第1メモリ部117にはデュアルポート型メモリを使用する。これによって、コンテキストテーブルに同時にリード/ライトを行うことが可能となる。
(算術符号化部116)
The first memory unit 117 uses a dual port memory. As a result, it is possible to simultaneously read / write to the context table.
(Arithmetic coding unit 116)

図9の算術符号化部116の詳細を、図12のブロック図及び図13の動作図に基づいて説明する。図12に示す算術符号化部116は、演算部140と、第1rLPSテーブル120と、第2rLPSテーブル122と、符号ビット生成部160と、コンテキスト更新部170とを備える。また算術符号化部116は、入力端子として、区間を入力するrange入力及び/又はlow入力、2値列入力、コンテキスト入力としてコンテキストX入力、コンテキストY入力を備えている。range入力は、演算部140、第1rLPSテーブル120、第2rLPSテーブル122、符号ビット生成部160に接続される。一方low入力は、演算部140、第2rLPSテーブル122、符号ビット生成部160に接続される。また2値列入力は演算部140、第2rLPSテーブル122、符号ビット生成部160、コンテキスト更新部170に接続される。さらにコンテキストX入力は、第1rLPSテーブル120、第2rLPSテーブル122、符号ビット生成部160、コンテキスト更新部170に接続される。一方コンテキストY入力は、第2rLPSテーブル122、符号ビット生成部160、コンテキスト更新部170に接続される。   Details of the arithmetic encoding unit 116 in FIG. 9 will be described based on the block diagram in FIG. 12 and the operation diagram in FIG. 13. The arithmetic encoding unit 116 illustrated in FIG. 12 includes a calculation unit 140, a first rLPS table 120, a second rLPS table 122, a code bit generation unit 160, and a context update unit 170. The arithmetic coding unit 116 includes a range input and / or a low input for inputting a section as an input terminal, a binary string input, and a context X input and a context Y input as context inputs. The range input is connected to the calculation unit 140, the first rLPS table 120, the second rLPS table 122, and the code bit generation unit 160. On the other hand, the low input is connected to the calculation unit 140, the second rLPS table 122, and the sign bit generation unit 160. The binary string input is connected to the arithmetic unit 140, the second rLPS table 122, the sign bit generation unit 160, and the context update unit 170. Further, the context X input is connected to the first rLPS table 120, the second rLPS table 122, the code bit generation unit 160, and the context update unit 170. On the other hand, the context Y input is connected to the second rLPS table 122, the sign bit generation unit 160, and the context update unit 170.

第1rLPSテーブル120、第2rLPSテーブル122は、それぞれ入力されたrangeとコンテキストに応じて、rLPSを決定するテーブルである。テーブルを2つ備えたことで、1サイクル中に2ビットの読み出しや書き込みを行うことが可能となり、高速な処理が見込まれる。また一方、いずれのテーブルに最新のデータが保持されているかを管理し、必要に応じてテーブルを切り替える制御が必要となる。このため、図9の算術符号化部116はテーブル管理手段を備えている。   The first rLPS table 120 and the second rLPS table 122 are tables that determine the rLPS according to the input range and context. By providing two tables, it is possible to read and write 2 bits in one cycle, and high-speed processing is expected. On the other hand, it is necessary to control which table holds the latest data and switch the table as necessary. Therefore, the arithmetic encoding unit 116 in FIG. 9 includes a table management unit.

符号ビット生成部160は、再正規化の際に出力符号を出力する。さらにコンテキスト更新部170は、前段の処理結果に基づいてコンテキストを更新して出力する。演算部140は、入力された区間range及び/又はlow、これに対応するrLPSをrLPSテーブル20を参照して決定し、これらに基づいて区間を更新し、range’とlow’を出力する。   The sign bit generation unit 160 outputs an output code at the time of renormalization. Furthermore, the context update unit 170 updates and outputs the context based on the previous processing result. The calculation unit 140 determines the input section range and / or low and the corresponding rLPS with reference to the rLPS table 20, updates the section based on these, and outputs range ′ and low ′.

この処理を、図13の動作図に基づいて説明する。図13は図8と同様、所定の区間に対してMPS処理、LPS処理、再正規化を行う処理を説明している。ここではrangeとlowが決定されている区間に対して、2値シンボルA及び対応するコンテキストXの場合に演算部140がMPS処理して符号化を行い、区間をrange’とlow’に更新する処理と、このrange’とlow’を2値シンボルB及び対応するコンテキストYの場合に演算部140がLSP処理で符号化を行って、区間をrange”とlow”に更新する処理、及び再正規化を行って区間をrange”’とlow”’に拡大する処理と、コンテキスト更新部170がコンテキストX、コンテキストYをそれぞれ更新する処理を、1サイクルで行う。すなわち、演算部140は第1rLPSテーブル120を参照してMPS時のrLPSを、第2rLPSテーブル122を参照してLPS時のrLPS’を、各々取得し、以下の計算を行う。
range”’=(rLPS’−0.5)×2
low”’=(low+range−rLPS−rLPS’−0.5)×2
This process will be described based on the operation diagram of FIG. FIG. 13 illustrates processing for performing MPS processing, LPS processing, and renormalization on a predetermined section, as in FIG. Here, in the case where the range where the range and low are determined, in the case of the binary symbol A and the corresponding context X, the calculation unit 140 performs MPS processing and performs encoding, and updates the range to range ′ and low ′. In the case of the binary symbol B and the corresponding context Y, the processing unit 140 encodes the range ′ and low ′ by the LSP processing to update the interval to “range” and “low”, and renormalization. The process of expanding the section to range “′” and “low” ′ and the process of updating the context X and the context Y by the context update unit 170 are performed in one cycle. That is, the calculation unit 140 refers to the first rLPS table 120 to obtain the rLPS at the time of MPS, and refers to the second rLPS table 122 to obtain the rLPS ′ at the time of LPS, and performs the following calculation.
range "'= (rLPS'-0.5) * 2
low "'= (low + range-rLPS-rLPS'-0.5) * 2

また同じサイクル内で符号ビット生成部160が出力符号”1”を出力し、コンテキスト更新部170はコンテキストX、コンテキストYをそれぞれ更新する。これによって、1サイクルでMPS処理、LPS処理、再正規化を完了させることができる。   In the same cycle, the sign bit generation unit 160 outputs the output code “1”, and the context update unit 170 updates the context X and the context Y, respectively. Thereby, MPS processing, LPS processing, and renormalization can be completed in one cycle.

次に、図14に、他の構成に係る算術符号化部300の例を示す。この図に示す算術符号化部300は、1サイクル中で2シンボルを処理するために、1シンボル目処理用の第1算術符号化手段301と、2シンボル目処理用の第2算術符号化手段302と、符号ビット生成部360を備える。第1算術符号化手段301は、第1rLPSテーブル320と、第1コンテキスト更新テーブル330と、第1演算部340と、第1再正規化部350とを備える。また第2算術符号化手段302は同様に、第2rLPSテーブル322と、第2コンテキスト更新テーブル332と、第2演算部342と、第2再正規化部352とを備える。この算術符号化部300は、2値列としてシンボルA及びコンテキストXを入力すると、コンテキストX及びrangeに対応したrLPSを第1rLPSテーブル320を参照して求め、この値とシンボルAとで第1演算部340は算術符号化を行い、rangeとlowを更新する。さらに必要に応じて第1再正規化部350で再正規化を行い、range’とlow’を第2算術符号化手段302に送出すると共に、符号ビットを符号ビット生成部360に出力する。また第1コンテキスト更新テーブル330を更新し、コンテキストX’を出力する。   Next, FIG. 14 illustrates an example of an arithmetic encoding unit 300 according to another configuration. In order to process two symbols in one cycle, the arithmetic encoding unit 300 shown in this figure has a first arithmetic encoding unit 301 for processing the first symbol and a second arithmetic encoding unit for processing the second symbol. 302 and a sign bit generation unit 360. The first arithmetic encoding unit 301 includes a first rLPS table 320, a first context update table 330, a first calculation unit 340, and a first renormalization unit 350. Similarly, the second arithmetic encoding unit 302 includes a second rLPS table 322, a second context update table 332, a second calculation unit 342, and a second renormalization unit 352. When the symbol A and the context X are input as a binary string, the arithmetic encoding unit 300 obtains an rLPS corresponding to the context X and the range with reference to the first rLPS table 320, and performs the first operation with this value and the symbol A. The unit 340 performs arithmetic coding and updates range and low. Further, if necessary, the first renormalization unit 350 performs renormalization, and ranges ′ and low ′ are sent to the second arithmetic coding unit 302 and the code bits are output to the code bit generation unit 360. Further, the first context update table 330 is updated, and the context X ′ is output.

一方、第2算術符号化手段302は、コンテキストY及びrange’に対応したrLPSを第2rLPSテーブル322を参照して求め、この値とrange’とlow’に基づいて第2演算部342で算術符号化を行い、range’とlow’を更新する。さらに必要に応じて第2再正規化部352で再正規化を行い、range”とlow”を出力すると共に、符号ビット生成部360に符号ビットを出力する。符号ビット生成部360は、出力符号ビットを出力する。またシンボルB及びコンテキストYに基づいて第2コンテキスト更新テーブル332を更新し、コンテキストY’を出力する。   On the other hand, the second arithmetic coding unit 302 obtains rLPS corresponding to the context Y and range ′ with reference to the second rLPS table 322, and the second arithmetic unit 342 performs arithmetic coding based on this value, range ′, and low ′. And update range ′ and low ′. Further, the second renormalization unit 352 performs renormalization as necessary, and outputs “range” and “low” and also outputs a code bit to the code bit generation unit 360. The sign bit generation unit 360 outputs an output sign bit. Further, the second context update table 332 is updated based on the symbol B and the context Y, and the context Y ′ is output.

以上の処理は、1サイクル中で終えることができる。すなわち、rangeとlow、コンテキストXに基づいて第1算術符号化手段301で1シンボル目のシンボルAを算術符号化すると共に、得られたrange’とlow’、及びコンテキストYに基づいて第2算術符号化手段302が2シンボル目のシンボルBを算術符号化する。このように本実施の形態では、2値列とシンタックス要素と周囲の状況(コンテキスト)に基づいて、生成された2値列に使用するコンテキストを決定するrLPSテーブルを予め作成しておくと共に、rLPSテーブルを2つ用意することで、1サイクル中に演算部は各々のテーブルから必要なデータを読み出し、更新することができ、2サイクル分の演算を1サイクルで完了することができる。この結果、高い符号化効率を達成する一方で処理時間の長さが問題となっていたCABACの処理サイクル数を削減することが可能となり、もって処理の高速化を図り、高解像度アプリケーションのリアルタイム符号化等に実装可能なシステムを構築できる。この手法は、汎用のCPUやMPUでソフトウェア的に実装することも可能であるが、好ましくは専用のハードウェアを構築して実行させることで、より効率のよい処理が可能となる。
(2サイクル予測を行う算術符号化部の変形例)
The above processing can be completed in one cycle. That is, the first arithmetic coding unit 301 performs arithmetic coding on the first symbol A based on the range and low and the context X, and the second arithmetic based on the obtained range ′ and low ′ and the context Y. The encoding means 302 arithmetically encodes the second symbol B. As described above, in the present embodiment, an rLPS table for determining a context to be used for a generated binary string based on a binary string, a syntax element, and a surrounding situation (context) is created in advance. By preparing two rLPS tables, the calculation unit can read and update necessary data from each table during one cycle, and two cycles of calculations can be completed in one cycle. As a result, it is possible to reduce the number of processing cycles of CABAC, which has been a problem with the length of processing time while achieving high coding efficiency, thereby speeding up the processing and realizing real-time coding for high-resolution applications. It is possible to construct a system that can be implemented in a system. This method can be implemented by software using a general-purpose CPU or MPU, but more efficient processing is preferably possible by constructing and executing dedicated hardware.
(Modification example of arithmetic coding unit performing 2-cycle prediction)

図9のブロック図に示す算術符号化装置の構成では、算術符号化部116で算術符号化演算を行う。算術符号化部116の具体的な構成としては、例えば図5のブロック図に示した構成が利用できる。ここで、コンテキスト更新テーブルを各々ROMで構成すると、各々がシンボルに応じてコンテキストを決定するため、ROMのサイズを大きくする必要がある。また、ROMではデータのアクセスに1サイクルを要するため、遅延が生じる。そこで、一方のコンテキスト更新テーブルを組み合わせ回路で構成することでROMのサイズを小さくでき、安価に構成できる。さらに組み合わせ回路では、演算論理の結果はそのサイクル中に生成されるので、余分なサイクルを要さず、処理を高速化できる利点が得られる。組み合わせ回路を用いた算術符号化部216の例を、図29に示す。   In the configuration of the arithmetic encoding device shown in the block diagram of FIG. 9, the arithmetic encoding unit 116 performs arithmetic encoding operations. As a specific configuration of the arithmetic encoding unit 116, for example, the configuration shown in the block diagram of FIG. 5 can be used. Here, if each context update table is composed of ROMs, each determines a context according to a symbol, so the ROM size needs to be increased. In addition, since a ROM requires one cycle to access data, a delay occurs. Therefore, by configuring one context update table with a combinational circuit, the size of the ROM can be reduced and the configuration can be made inexpensively. Furthermore, in the combinational circuit, the result of the arithmetic logic is generated during the cycle, so that an extra cycle is not required and the advantage of speeding up the processing can be obtained. An example of the arithmetic encoding unit 216 using a combinational circuit is shown in FIG.

この図に示す算術符号化部216は、コンテキストメモリ部217と、図29においてコンテキストメモリ部217の第1の出力側に接続された第1コンテキスト更新テーブル230と、第2の出力側に接続された第2コンテキスト更新テーブル232と、コンテキストメモリ部217の第1の出力側に接続された第1rLPSテーブル220と、第1コンテキスト更新テーブル230とコンテキストメモリ部217の加算器出力と接続された第2rLPSテーブル222と、rangeの値を保持するためのrangeメモリ部218と、rangeメモリ部218及び第1rLPSテーブル220の出力側に接続された第1選択器224と、第1選択器224及びrangeメモリ部218に接続された第1range更新部240と、第2rLPSテーブル222及び第1range更新部240の出力側に接続された第2選択器226と、第2選択器226及び第1range更新部240の出力側に接続され、且つ出力側をrangeメモリ部218に接続した第2range更新部242と、lowの値を保持するlowメモリ部219と、lowメモリ部219、第1range更新部240及び第1選択器224の出力側に接続された第1low更新部250と、第1low更新部250、第2range更新部242及び第2選択器226の出力側に接続され、且つ出力側をlowメモリ部219に接続した第2low更新部252とを備える。   The arithmetic encoding unit 216 shown in this figure is connected to the context memory unit 217, the first context update table 230 connected to the first output side of the context memory unit 217 in FIG. 29, and the second output side. The second context update table 232, the first rLPS table 220 connected to the first output side of the context memory unit 217, and the second rLPS connected to the adder outputs of the first context update table 230 and the context memory unit 217. A table 222; a range memory unit 218 for holding a range value; a first selector 224 connected to the output side of the range memory unit 218 and the first rLPS table 220; a first selector 224 and a range memory unit; A first range updating unit 240 connected to H.218, The second selector 226 connected to the output side of the 2rLPS table 222 and the first range update unit 240, and connected to the output side of the second selector 226 and the first range update unit 240, and the output side to the range memory unit 218 A connected second range update unit 242; a low memory unit 219 that holds a low value; a low memory unit 219, a first range update unit 240, and a first low update unit 250 connected to the output side of the first selector 224; , A first low update unit 250, a second range update unit 242, and a second low update unit 252 connected to the output side of the second selector 226 and having the output side connected to the low memory unit 219.

なお図29は、処理工程とデータの流れをブロック図的に表現した図であるため、実際のハードウェア的な結線とは必ずしも一致しない。例えばrange値については、rangeメモリ部218→第1rangeテーブル→第2rangeテーブル→rangeメモリ部218にループして、rangeが順次更新される様子を示しているが、実際には第1rangeテーブル及び第2rangeテーブルがそれぞれrangeメモリ部218に接続され、各々のrangeテーブルで更新したrange値をrangeメモリ部218に書き込むことができる。またコンテキストメモリ部217が重複して表示されているが、両者は同じものであり、図29において左側のコンテキストメモリ部217はリード時、中央のコンテキストメモリ部217はライト時の動作をそれぞれ示している。   Note that FIG. 29 is a block diagram representing the processing steps and the data flow, and therefore does not necessarily match the actual hardware connection. For example, with respect to the range value, the range is sequentially updated in the range of the range memory unit 218 → the first range table → the second range table → the range memory unit 218. In practice, the range is updated, but the first range table and the second range are actually shown. Each table is connected to the range memory unit 218, and the range value updated in each range table can be written to the range memory unit 218. Although the context memory unit 217 is displayed in duplicate, both are the same. In FIG. 29, the left side context memory unit 217 shows the operation at the time of reading, and the middle context memory unit 217 shows the operation at the time of writing. Yes.

コンテキストメモリ部217は、図9においてコンテキストを保持する第1メモリ部117に相当する。ここでは、シンボルAとこれに対応するコンテキストX、シンボルBとこれに対するコンテキストYの4つの入力、及び更新されたコンテキストX’、Y’2つの出力を備えるデュアルポートRAM等で構成される。このコンテキストメモリ部217は、更新されたコンテキストを保持すると共に、指定されたアドレスに従い該当するコンテキストの読み込みを行い、さらに第1、第2コンテキスト更新テーブル232によって更新された2つのコンテキストX’、Y’の書き込みを各々行う。ここで第2コンテキスト更新テーブル232は、ROMで構成されるが、一方第1コンテキスト更新テーブル230は組み合わせ回路で構成される。一方のコンテキスト更新テーブルを組み合わせ回路で構成することで、第2段階でコンテキストX、Yを同時に更新できるので、1サイクルで2シンボルの処理を行う高速化に大きく資する。   The context memory unit 217 corresponds to the first memory unit 117 that holds a context in FIG. Here, it is composed of a dual port RAM or the like having four inputs of a symbol A and a context X corresponding thereto, a symbol B and a context Y corresponding thereto, and two outputs of updated contexts X ′ and Y ′. The context memory unit 217 holds the updated context, reads the corresponding context in accordance with the specified address, and further updates the two contexts X ′ and Y updated by the first and second context update tables 232. Each 'is written. Here, the second context update table 232 is configured by a ROM, while the first context update table 230 is configured by a combinational circuit. By configuring one context update table with a combinational circuit, the contexts X and Y can be updated simultaneously in the second stage, which greatly contributes to speeding up processing of two symbols in one cycle.

なお、図29に示す算術符号化部216の例において、第1コンテキスト更新テーブル230及び第2コンテキスト更新テーブル232の両方を組み合わせ回路で構成することもできる。この場合は、一層の高速化を図ることができる。なお、コンテキスト更新テーブルに大量のデータを記憶する場合は、組み合わせ回路で実現すると大面積化と高コスト化となるため不適となる。ただ、保存すべきデータ量が少ない場合は、組み合わせ回路で実装しても面積がROMの場合に比べさほど大きくならないため、両方を組み合わせ回路で構成することが好ましい。   Note that in the example of the arithmetic encoding unit 216 shown in FIG. 29, both the first context update table 230 and the second context update table 232 can be configured by a combinational circuit. In this case, it is possible to further increase the speed. Note that when storing a large amount of data in the context update table, it is not suitable because the area is increased and the cost is increased if implemented by a combinational circuit. However, when the amount of data to be stored is small, the area is not so large even if it is implemented by a combinational circuit as compared with the case of a ROM.

第1及び第2rLPSテーブル222は、各々ROMで構成され、入力されたコンテキストに従い、rLPSを出力する。ROMに保持されたrLPSテーブルのデータは、コンテキストに応じて4つに区分されているため、各rLPSテーブルが4つの出力を備える。各々のrLPSテーブルから出力されたrLPSは、第1及び第2選択器226にそれぞれ入力される。第1、第2選択器226は、各々入力されるrangeに従い、該当するrLPSを選択して、第1、第2range更新部242に出力する。第1、第2range更新部242は、rangeの値を更新してrangeメモリ部218のrange値を書き換える。同様にlowメモリ部219は、low値を保持する。これらrangeメモリ部218やlowメモリ部219は、レジスタで構成できる。また第1、第2low更新部252は、再正規化部の機能を実現しており、range及び再正規化の回数に従い再正規化してlowを更新する。このようにして第1low更新部250はシンボルAの算術符号化された符号ビット1を出力し、第2low更新部252はシンボルBの算術符号化された符号ビット2を出力する。   The first and second rLPS tables 222 are each composed of a ROM, and output rLPS according to the input context. Since the rLPS table data held in the ROM is divided into four according to the context, each rLPS table has four outputs. The rLPS output from each rLPS table is input to the first and second selectors 226, respectively. The first and second selectors 226 select the corresponding rLPS according to each input range, and output the selected rLPS to the first and second range update unit 242. The first and second range update unit 242 updates the range value and rewrites the range value of the range memory unit 218. Similarly, the low memory unit 219 holds a low value. The range memory unit 218 and the low memory unit 219 can be configured by registers. The first and second low update units 252 implement the function of a renormalization unit, and renormalize and update low according to the number of ranges and renormalization. In this way, the first low update unit 250 outputs the code bit 1 that is arithmetically encoded for the symbol A, and the second low update unit 252 outputs the code bit 2 that is arithmetically encoded for the symbol B.

なお図29の例では、各処理を行う部材を機能的に表現したものであって、実際のハードウェア構成においては、一の部材で複数の機能を実現することができる。例えば、コンテキストメモリ部217は図9において第1メモリ部117に、rangeメモリ部218及びlowメモリ部219は、第2メモリ部118に相当する。また、第1range更新部240及び第1low更新部250は、図14に示す第1演算部に、第2range更新部242及び第2low更新部252は、第2演算部に、各々相当し、さらにこれらを適宜纏めることもできる。
(DSEの算術符号化処理工程)
In the example of FIG. 29, members that perform each process are functionally expressed, and in an actual hardware configuration, a plurality of functions can be realized by one member. For example, the context memory unit 217 corresponds to the first memory unit 117 in FIG. 9, and the range memory unit 218 and the low memory unit 219 correspond to the second memory unit 118. Further, the first range update unit 240 and the first low update unit 250 correspond to the first calculation unit shown in FIG. 14, the second range update unit 242 and the second low update unit 252 correspond to the second calculation unit, respectively. Can be summarized as appropriate.
(DSE arithmetic coding process)

以上の算術符号化部216で1サイクル中に2シンボルの算術符号化演算を行う処理は、図29及び図30のフローチャートに示すように、4段階に分けることができる。すなわち、ステップS1で示す第1段階では、各コンテキストの読み込みが行われる。具体的には、コンテキストメモリ部217で、アドレスに従いシンボルA、Bと対応するコンテキストX、Yの読み出しを行う。図29において、左側のコンテキストメモリ部217はリード状態を示している。   The above-described processing of performing arithmetic encoding operation of two symbols in one cycle by the arithmetic encoding unit 216 can be divided into four stages as shown in the flowcharts of FIGS. That is, in the first stage shown in step S1, each context is read. Specifically, the context memory unit 217 reads the contexts X and Y corresponding to the symbols A and B according to the address. In FIG. 29, the context memory unit 217 on the left side shows a read state.

次にステップS2で示す第2段階で、各コンテキストの更新と各rLPSの読み込みが行われる。具体的には、コンテキストメモリ部217の第1の出力から第1コンテキスト更新テーブル230がコンテキストXを読み込み、コンテキストX’に更新する。また、更新されたコンテキストX’を第2コンテキスト更新テーブル232が参照し、他方でコンテキストメモリ部217の第2の出力から得られたコンテキストYをコンテキストY’に更新する。ここで、コンテキスト更新テーブルを2つのROMとせず、一方を組み合わせ回路で構成した第1コンテキスト更新テーブル230とし、他方をROMで構成された第2コンテキスト更新テーブル232とすることで、処理の高速化と小面積化を両立させ、2つのシンボルA、BのコンテキストX、Yを同時に更新することが可能となる。また上述の通り、すべてのコンテキスト更新テーブルを組み合わせ回路で構成することで、一層の高速化が図られる。   Next, in the second stage shown in step S2, each context is updated and each rLPS is read. Specifically, the first context update table 230 reads the context X from the first output of the context memory unit 217 and updates it to the context X ′. Further, the updated context X ′ is referred to by the second context update table 232, and on the other hand, the context Y obtained from the second output of the context memory unit 217 is updated to the context Y ′. Here, the context update table is not two ROMs, one is the first context update table 230 configured with a combinational circuit, and the other is the second context update table 232 configured with a ROM, thereby speeding up the processing. It is possible to simultaneously update the contexts X and Y of the two symbols A and B. Further, as described above, it is possible to further increase the speed by configuring all context update tables with combinational circuits.

また一方で、第2段階において更新前のコンテキストXに基づき、シンボルAのrLPSをrLPSテーブルを参照して求める。すなわち、コンテキストメモリ部217の第1の出力から得られるコンテキストXに基づき、第1rLPSテーブル220がrLPSを第1選択器224に出力する。他方、第1コンテキスト更新テーブル230で得られるコンテキストX’及びコンテキストメモリ部217の第2の出力から得られるコンテキストYのAND出力が第2rLPSテーブル222に送られ、同様に更新前のコンテキストYのrLPSが求められ、第2選択器226に出力される。   On the other hand, in the second stage, based on the context X before update, the rLPS of the symbol A is obtained by referring to the rLPS table. That is, the first rLPS table 220 outputs rLPS to the first selector 224 based on the context X obtained from the first output of the context memory unit 217. On the other hand, the AND output of the context Y obtained from the context X ′ obtained from the first context update table 230 and the second output of the context memory unit 217 is sent to the second rLPS table 222, and similarly the rLPS of the context Y before the update. Is obtained and output to the second selector 226.

さらにステップS3で示す第3段階で、更新されたコンテキストの書き込みとrangeの更新が行われる。まず、第1コンテキスト更新テーブル230及び第2コンテキスト更新テーブル232から各々出力されるコンテキストX’、Y’がコンテキストメモリ部217に書き込まれる。図29において、中央下段のコンテキストメモリ部217はライト状態を示している。   Further, in the third stage shown in step S3, the updated context is written and the range is updated. First, the contexts X ′ and Y ′ output from the first context update table 230 and the second context update table 232 are written in the context memory unit 217. In FIG. 29, the context memory unit 217 in the lower center part shows a write state.

一方で、第1選択器224は、rangeメモリ部218を参照して得られるrangeに従い、シンボルAの該当するrLPSを選択して、第1range更新部240に出力する。第1range更新部240は、rangeメモリ部218に保持される現在のrangeを、選択されたrLPSに応じてrange’に更新すると共に、次段のシンボルBに相当するrangeを決定するために第2range更新部242に出力する。また一方で、更新されたrange’に応じて、再正規化の回数を決定し、第1low更新部250に出力する。   On the other hand, the first selector 224 selects an rLPS corresponding to the symbol A according to the range obtained by referring to the range memory unit 218 and outputs the selected rLPS to the first range update unit 240. The first range update unit 240 updates the current range held in the range memory unit 218 to range ′ according to the selected rLPS, and determines the range corresponding to the next stage symbol B in order to determine the second range. The data is output to the update unit 242. On the other hand, the number of renormalizations is determined according to the updated range ′, and is output to the first low update unit 250.

第2range更新部242は、第1range更新部240で更新されたrange’を、第2選択器226で選択されたrLPSに従い、range”に更新し、rangeメモリ部218のrange値をrange”に更新する。一方、更新されたrange”に応じて再正規化の回数を決定し、第2low更新部252に出力する。   The second range updating unit 242 updates the range ′ updated by the first range updating unit 240 to “range” according to the rLPS selected by the second selector 226, and updates the range value of the range memory unit 218 to “range”. To do. On the other hand, the number of renormalizations is determined according to the updated range ”, and is output to the second low update unit 252.

最後にステップS4で示す第4段階で、lowの更新が行われる。第1low更新部250は、range’及び再正規化の回数に応じて、lowメモリ部219に保持されたlow値をlow’に更新すると共に、シンボルAの符号ビット1を出力する。一方第2low更新部252は、range”及び再正規化の回数に応じてlow’をlow”に更新し、lowメモリ部219のlow値をlow”に更新する。また、シンボルBの符号ビット2を出力する。   Finally, low is updated in the fourth stage shown in step S4. The first low update unit 250 updates the low value held in the low memory unit 219 to low ′ in accordance with the range ′ and the number of renormalizations, and outputs the sign bit 1 of the symbol A. On the other hand, the second low update unit 252 updates low 'to low "according to the range" and the number of renormalizations, and updates the low value of the low memory unit 219 to low ". Also, the sign bit 2 of the symbol B Is output.

以上のようにして、2つのコンテキスト更新テーブルの一方をROM、他方を組み合わせ回路で構成して、1サイクルで2シンボルの算術符号化を安価に実現できる。
(連続MPS処理予測)
As described above, one of the two context update tables is composed of ROM and the other is composed of a combinational circuit, so that arithmetic encoding of two symbols in one cycle can be realized at low cost.
(Continuous MPS process prediction)

一方で、CABAC処理による2値化の特徴として、同じシンボルを連続して生成しやすい点が挙げられる。またCABAC処理に含まれるMPS処理とLPS処理の内、MPS処理の特徴として、lowは変化せずrangeの値のみ緩やかに減少するという傾向がある。そこで、2値列がMPSの連続である場合、この連続数とrange及びコンテキストから、数サイクル先までの結果を予測することが可能となる。   On the other hand, as a characteristic of binarization by CABAC processing, it is easy to generate the same symbol continuously. Further, among the MPS processing and LPS processing included in the CABAC processing, as a feature of the MPS processing, low does not change and only the range value tends to decrease gradually. Therefore, when the binary sequence is a sequence of MPSs, it is possible to predict the result up to several cycles ahead from the number of sequences, range, and context.

この処理の手順を、図15の動作図に基づいて説明する。ここではコンテキストXが一定値で、MPS処理が連続して4回続くものとする。まず第1サイクルでrange0がrange1に更新されるとすると、このときのMPS処理で使用するrLPSがrLPS1であれば、
range1=range0−rLPS1
low0=low1
となる。また次の第2サイクルでrange1がrange2に更新されるとすると、このときのMPS処理で使用するrLPSがrLPS2であれば、
range2=range1−rLPS2
=range0−rLPS1−rLPS2
low2=low1=low0
となる。さらに第3サイクルでrange2がrange3に更新され、このときrLPS3であれば、
range3=range2−rLPS3
=range0−rLPS1−rLPS2−rLPS3
low3=low2=low1=low0
となり、最後に第4サイクルでrange3がrange4に更新され、このときrLPS4であれば、
range4=range3−rLPS4
=range0−rLPS1−rLPS2−rLPS3−rLPS4
low4=low3=low2=low1=low0
となる。このように同一コンテキストを用いたMPSの連続した処理は、range、コンテキストX、連続数から演算することができるので、予め演算した結果をテーブルに記録しておくことで、上記のパラメータから数サイクル先まで予測可能となる。これを実現するために、MPS連続数テーブルを用意する。
(MPS連続数テーブル)
The procedure of this process will be described based on the operation diagram of FIG. Here, it is assumed that the context X is a constant value and the MPS process continues four times. First, if range 0 is updated to range 1 in the first cycle, if rLPS used in the MPS process at this time is rLPS1,
range1 = range0-rLPS1
low0 = low1
It becomes. If range1 is updated to range2 in the next second cycle, if rLPS used in the MPS process at this time is rLPS2,
range2 = range1-rLPS2
= Range0-rLPS1-rLPS2
low2 = low1 = low0
It becomes. Furthermore, in the third cycle, range2 is updated to range3. At this time, if rLPS3,
range3 = range2-rLPS3
= Range0-rLPS1-rLPS2-rLPS3
low3 = low2 = low1 = low0
Finally, in the fourth cycle, range 3 is updated to range 4, and at this time, if rLPS4,
range4 = range3-rLPS4
= Range0-rLPS1-rLPS2-rLPS3-rLPS4
low4 = low3 = low2 = low1 = low0
It becomes. In this way, continuous processing of MPS using the same context can be calculated from range, context X, and continuous number, so by recording the result calculated in advance in a table, several cycles from the above parameters It becomes predictable to the future. In order to realize this, an MPS continuous number table is prepared.
(MPS continuous number table)

図16に、コンテキストが一定の場合のMPS連続数テーブルの例を示す。この図に示すように、MPS連続数テーブルは、range、コンテキスト、MPS連続数に応じたrangeを表として保持している。このため、これらのパラメータでテーブルを参照すれば、連続したMPS処理後のrangeの値を取り出すことができる。図15の例では、初期値であるrangeをrangeAmコンテキストX(一定)、MPS連続数4であるから、range予測値は、図16のMPS連続数テーブルにおいてEの位置に格納された値となる。このように、テーブルの参照のみによって数サイクル先の更新区間を求めることができるので、特にMPS処理が連続する場合には極めて大幅な演算量の低減が見込まれ、処理数低減による高速化が図られる。
(再正規化による変化)
FIG. 16 shows an example of the MPS continuous number table when the context is constant. As shown in this figure, the MPS continuous number table holds a range corresponding to the range, context, and MPS continuous number as a table. Therefore, by referring to the table with these parameters, the range value after the continuous MPS process can be extracted. In the example of FIG. 15, the initial value “range” is the rangeAm context X (constant) and the MPS continuity number 4, so the range prediction value is the value stored at the position E in the MPS continuity number table of FIG. 16. . In this way, an update interval several cycles ahead can be obtained only by referring to the table, and therefore, especially when MPS processing is continued, an extremely large amount of computation is expected to be reduced. It is done.
(Change due to renormalization)

以上のMPS処理では、LPS処理が生じない間、すなわちMPS処理が連続する間はlowは一定である。しかしながら、図17(a)に示すように再正規化を行うとlowの値が変化する。ただ、再正規化の値はrangeによって決まる。このため、rangeの値と再正規化を行う回数が判れば、lowの値を求めることができる。このように、再正規化によって変化するlowについてもテーブル化することが可能となる。   In the above MPS process, low is constant while the LPS process does not occur, that is, while the MPS process continues. However, when renormalization is performed as shown in FIG. 17A, the value of low changes. However, the renormalization value is determined by the range. Therefore, if the range value and the number of times of renormalization are known, the low value can be obtained. In this way, it is possible to table the low that changes due to renormalization.

再正規化を考慮した連続MPS処理予測部400のブロック図を図18に示す。この図に示す連続MPS処理予測部400は、rangeテーブル420と、コンテキスト更新テーブル430と、再正規化部450を備える。この連続MPS処理予測部400は、rangeとMPS連続数、コンテキストに応じてrangeテーブル420を参照し、rengeをrange’に更新する。一方で再正規化回数とlowに基づいて、再正規化部450がlow’と符号ビットを出力する。さらに、MPS連続数とコンテキストに基づいて、コンテキスト更新テーブル430を参照し、コンテキストを更新する(context→context’)。   FIG. 18 shows a block diagram of the continuous MPS process prediction unit 400 considering renormalization. The continuous MPS process prediction unit 400 shown in this figure includes a range table 420, a context update table 430, and a renormalization unit 450. The continuous MPS process prediction unit 400 refers to the range table 420 according to the range, the number of MPS continuations, and the context, and updates the range to range ′. On the other hand, based on the renormalization count and low, the renormalization unit 450 outputs low ′ and a sign bit. Further, based on the number of consecutive MPSs and the context, the context update table 430 is referred to update the context (context → context ′).

再正規化を考慮したrange予測の例を、図17(b)に示す。この図に示すように、MPS連続数と再正規化の回数に応じて、rangeの値を予測でき、さらにコンテキストを更新できる。
(コンテキストの変化)
An example of range prediction considering renormalization is shown in FIG. As shown in this figure, the range value can be predicted and the context can be updated according to the number of consecutive MPSs and the number of renormalizations.
(Change in context)

また上記の例ではコンテキストが一定としたが、コンテキストが途中で切り替わる場合もあり得る。上記の手法では同一シンボルに対して同一コンテキストを使用することを前提としていたため、コンテキストが変更されるとそれ以降の変化を予測できないこととなる。そこで、rangeテーブルとコンテキスト更新テーブルとを各々2つ用意することで、このようなコンテキストの変化にも対応可能な連続MPS処理予測を実現する。   In the above example, the context is constant, but the context may be switched in the middle. Since the above method is based on the premise that the same context is used for the same symbol, if the context is changed, subsequent changes cannot be predicted. Therefore, by preparing two range tables and two context update tables, continuous MPS process prediction that can cope with such a change in context is realized.

図19は、連続するMPS処理において、コンテキストが4サイクルまではコンテキストX、続く2サイクルはコンテキストYに切り替わる例を示している。この場合も、コンテキスト毎にテーブル化することが可能である。図20に、range、コンテキスト(可変)、MPS連続数に応じたrange予測値を記録したMPS連続数テーブルの例を示す。図19の例では、初期値であるrangeをrangeA、コンテキストXでのMPS連続数が4、その時点でのrangeがrangeEで、その後のコンテキストYでのMPS連続数が2であるため、range予測値は、図20のMPS連続数テーブルにおいてEの位置に格納された値と、Iの位置に格納された値の和E+Iとなる。このように、コンテキストが変化する場合であっても、同様にテーブルの参照によって容易に更新区間を求めることができるので、大幅な処理の低減と高速化が図られる。   FIG. 19 shows an example in which the context is switched to the context X until the fourth cycle and the subsequent two cycles are switched to the context Y in the continuous MPS processing. Also in this case, it is possible to create a table for each context. FIG. 20 shows an example of the MPS continuous number table in which the range predicted value corresponding to the range, the context (variable), and the MPS continuous number is recorded. In the example of FIG. 19, the range of the initial value is rangeA, the number of consecutive MPSs in the context X is 4, the range at that time is rangeE, and the number of consecutive MPSs in the subsequent context Y is 2, so the range prediction The value is the sum E + I of the value stored at the position E and the value stored at the position I in the MPS continuous number table of FIG. Thus, even when the context changes, the update interval can be easily obtained by referring to the table in the same manner, so that the processing can be greatly reduced and the processing speed can be increased.

コンテキストが変化する場合に連続MPS処理予測を実現する連続MPS処理予測部400Bを構成するブロック図の例を図21に示す。この図に示す連続MPS処理予測部400Bは、2つの予測テーブル420A、420B(MPS連続数テーブル)を設けることで、rangeとコンテキスト、MPS連続数が入力されると、これらのパラメータに応じたrange予測値が参照され、対応する値としてrange”が出力される。また予測テーブル420A、420B内のコンテキストは適宜更新される。この例ではコンテキストをX、Yの2種類とした例を説明したが、さらに多くのコンテキストに対応させた複数のテーブルを用意することも可能であることは言うまでもない。   FIG. 21 shows an example of a block diagram constituting the continuous MPS process prediction unit 400B that realizes continuous MPS process prediction when the context changes. The continuous MPS process predicting unit 400B shown in this figure provides two prediction tables 420A and 420B (MPS continuous number table), and when a range, a context, and an MPS continuous number are input, a range corresponding to these parameters is input. The prediction value is referred to, and “range” is output as the corresponding value. The contexts in the prediction tables 420A and 420B are updated as appropriate. In this example, the context is described as having two types of X and Y. Needless to say, it is possible to prepare a plurality of tables corresponding to more contexts.

図22に、より詳細な連続MPS処理予測部500のブロック図を示す。この図に示すように、連続MPS処理予測部500は第1コンテキスト更新テーブル530と、第2コンテキスト更新テーブル532と、第1rangeテーブル520と、第2rangeテーブル522と、再正規化テーブルを有する一の再正規化部550を備える。この連続MPS処理予測部500は、rangeとMPS連続数X(図19の例では4)、コンテキストA(図19ではコンテキストX)に基づいて、第2rangeテーブル522を参照し、range’(rangeE)を求める。一方、コンテキストB(図19ではコンテキストY)、MPS連続数Y(図19では2)、第2rangeテーブル522で得られたrange’に基づいて、第1rangeテーブル520を参照し、range”を求める。一方で、第1rangeテーブル520及び第2rangeテーブル522の再正規化回数と、lowの値に基づいて、再正規化部550が再正規化テーブルを参照してlow’と、再正規化による符号ビットを出力する。このように、一の再正規化部550でコンテキストの異なる再正規化を加算して、適切な符号ビットを出力することができ、回路の簡素化に寄与する。さらにまた、コンテキストAを、MPS連続数に基づき第2コンテキスト更新テーブル532を参照してコンテキストA’に更新し、コンテキストBをMPS連続数に基づいて第1コンテキスト更新テーブル530を参照し、コンテキストB’に更新する。また上述の通り、コンテキスト変更数を増やすことも可能である。
(連続MPS処理予測を行う算術符号化部の変形例)
FIG. 22 shows a more detailed block diagram of the continuous MPS process prediction unit 500. As shown in this figure, the continuous MPS process prediction unit 500 includes a first context update table 530, a second context update table 532, a first range table 520, a second range table 522, and a renormalization table. A renormalization unit 550 is provided. The continuous MPS process predicting unit 500 refers to the second range table 522 based on the range, the MPS continuous number X (4 in the example of FIG. 19), and the context A (context X in FIG. 19), and ranges ′ (range E). Ask for. On the other hand, based on the context B (context Y in FIG. 19), the MPS continuation number Y (2 in FIG. 19), and the range ′ obtained in the second range table 522, the first range table 520 is referred to and range ″ is obtained. On the other hand, based on the number of renormalizations in the first range table 520 and the second range table 522 and the value of low, the renormalization unit 550 refers to the renormalization table to low ′ and the sign bit by renormalization. Thus, the renormalization with different contexts can be added by one renormalization unit 550 to output appropriate code bits, which contributes to simplification of the circuit. A is updated to context A ′ by referring to the second context update table 532 based on the number of consecutive MPSs, and the context is updated. Refers to the first context update table 530 based on the B on MPS number of consecutive updates the context B '. Further, as described above, it is possible to increase the number of context change.
(Modification of arithmetic coding unit for performing continuous MPS process prediction)

また上記図29で説明したのと同様に、連続MPS処理予測においても、コンテキスト更新テーブルを各々ROMで構成する他、より安価で安定した高速化を得るために、一方を組み合わせ回路で構成したり、両方を組み合わせ回路で構成することもできる。このような算術符号化部316の例を、図31に示す。図31も処理工程をブロック的に表現した図であるため、コンテキストメモリ部217Bが重複して表示されているが、両者は同じものである。   Similarly to FIG. 29 described above, in the continuous MPS process prediction, the context update table is composed of each ROM, and one of them is composed of a combinational circuit in order to obtain a cheaper and more stable speed. Both can be configured by a combinational circuit. An example of such an arithmetic encoding unit 316 is shown in FIG. FIG. 31 is also a block representation of processing steps, so the context memory unit 217B is displayed in duplicate, but both are the same.

この図に示す算術符号化部316も、第1及び第2コンテキスト更新テーブル230B、232Bの出力側に接続されたコンテキストメモリ部217Bと、コンテキストメモリ部217Bの第1の出力側に接続された第1コンテキスト更新テーブル230Bと、第2の出力側に接続された第2コンテキスト更新テーブル232Bとを備え、これらの構成は図29とほぼ同様である。すなわち、第1コンテキスト更新テーブル230Bは組み合わせ回路で構成され、第2コンテキスト更新テーブル232BはROMで構成される。あるいは、第1コンテキスト更新テーブル230B及び第2コンテキスト更新テーブル232Bのいずれも、組み合わせ回路で構成してもよい。特に保存すべきデータ量が少ない場合は、実装面積も大きくならないので、より高速化が図られる組み合わせ回路のみでの構成が好ましい。   The arithmetic encoding unit 316 shown in this figure also includes a context memory unit 217B connected to the output side of the first and second context update tables 230B and 232B, and a first output side connected to the first output side of the context memory unit 217B. 1 context update table 230B, and 2nd context update table 232B connected to the 2nd output side, These structures are as substantially the same as FIG. That is, the first context update table 230B is configured by a combinational circuit, and the second context update table 232B is configured by a ROM. Alternatively, both the first context update table 230B and the second context update table 232B may be configured by combinational circuits. In particular, when the amount of data to be stored is small, the mounting area does not increase, and therefore a configuration with only a combinational circuit that can achieve higher speed is preferable.

また算術符号化部316は、rangeの値を保持するrangeメモリ部218Bと、lowの値を保持するlowメモリ部219Bも備え、これらもレジスタ等で構成できる。これらの部材は、図29とほぼ同様に構成できるので、詳細説明は省略する。   The arithmetic encoding unit 316 also includes a range memory unit 218B that holds a value of “range” and a low memory unit 219B that holds a value of “low”, which can also be configured by a register or the like. Since these members can be configured in substantially the same manner as in FIG. 29, detailed description will be omitted.

一方で算術符号化部316は、シンボルA(MPS)の連続数m及び対応するコンテキストXを入力し、rangeメモリ部218Bから読み出したrangeをrange’に更新する第1rangeテーブル520Bと、シンボルB(MPS)の連続数n及び対応するコンテキストYを入力し、第1rangeテーブル520Bのrange’を更新してrange”を出力する第2rangeテーブル522Bを備える。これらrangeテーブルは、MPS連続数に基づき、rangeを予測する。さらに算術符号化部316は、図29と同様に第1rangeテーブル520Bで更新されたrange’と再正規化の回数に基づいて再正規化を行い、lowメモリ部219Bのlowを更新してlow’と符号ビット1を出力する第1low更新部250Bと、第2rangeテーブル522Bのrange”及び再正規化の回数に基づいて再正規化を行い、第1low更新部250Bで得られたlow’を更新したlow”と符号ビット2を出力する第2low更新部252Bを備える。   On the other hand, the arithmetic coding unit 316 receives the number m of consecutive symbols A (MPS) and the corresponding context X, receives the first range table 520B for updating the range read from the range memory unit 218B to range ′, and the symbol B ( MPS) is provided with a second range table 522B that inputs the number of consecutive n and the corresponding context Y, updates range ′ of the first range table 520B, and outputs “range”. These range tables are based on the number of MPS sequences. Further, the arithmetic encoding unit 316 performs renormalization based on the range ′ updated in the first range table 520B and the number of renormalizations, and updates low in the low memory unit 219B, as in FIG. And low 'and the sign bit 1 are output. 1 low update unit 250B, and the second range table 522B is re-normalized based on “range” and the number of re-normalization, and low ”obtained by the first low update unit 250B is updated to low” and the sign bit 2 is output. A second low update unit 252B.

図31も、図29と同様に処理工程とデータの流れをブロック図的に表現した図であるため、実際のハードウェア的な結線とは必ずしも一致しない。例えばコンテキストメモリ部217Bが重複して表示されているが、両者は同じものであり、図31において左側のコンテキストメモリ部217Bはリード時、中央のコンテキストメモリ部217Bはライト時の動作をそれぞれ示している。
(MPSEの算術符号化処理工程)
FIG. 31 is also a block diagram representing the processing steps and the data flow in the same manner as FIG. 29, and therefore does not necessarily match the actual hardware connection. For example, the context memory unit 217B is displayed in an overlapping manner, but both are the same. In FIG. 31, the left context memory unit 217B shows an operation at the time of reading, and the central context memory unit 217B shows an operation at the time of writing. Yes.
(MPSE arithmetic coding process)

この算術符号化部316も、図31及び図32のフローチャートに示すようにステップS’1〜S’4の4段階で、シンボルA、Bの算術符号化処理を行える。すなわち、ステップS’1で示す第1段階では、各コンテキストの読み込みが行われる。具体的には、コンテキストメモリ部217Bで、シンボルA、Bと対応するコンテキストX、Yの読み出し(リード)を行う。   This arithmetic encoding unit 316 can also perform arithmetic encoding processing of symbols A and B in four stages of steps S′1 to S′4 as shown in the flowcharts of FIGS. 31 and 32. That is, in the first stage shown in step S′1, each context is read. Specifically, the context memory unit 217B reads (reads) the contexts X and Y corresponding to the symbols A and B.

次にステップS’2で示す第2段階で、各コンテキストの更新が行われる。具体的には、コンテキストメモリ部217Bの第1の出力から第1コンテキスト更新テーブル230BがコンテキストXを読み込み、さらにシンボルAのMPS連続数mに基づいてコンテキストX’に更新する。また、更新されたコンテキストX’を第2コンテキスト更新テーブル232Bが参照し、他方でコンテキストメモリ部217Bの第2の出力から得られたコンテキストY、及びそのMPS連続数nに基づき、コンテキストY’に更新する。   Next, in the second stage indicated by step S'2, each context is updated. Specifically, the first context update table 230B reads the context X from the first output of the context memory unit 217B, and further updates it to the context X ′ based on the MPS consecutive number m of the symbol A. Also, the updated context X ′ is referred to by the second context update table 232B, and on the other hand, the context Y ′ is determined based on the context Y obtained from the second output of the context memory unit 217B and the MPS continuous number n. Update.

さらにステップS’3で示す第3段階で、更新されたコンテキストの書き込みとrangeの更新が行われる。すなわち、第1コンテキスト更新テーブル230B及び第2コンテキスト更新テーブル232Bから各々出力されるコンテキストX’、Y’がコンテキストメモリ部217Bに書き込まれる。このようにして第1、第2コンテキスト更新テーブル232Bで、MPSを処理した分のコンテキスト(発生確率)の更新をステップS’2で行い、ステップS’3でコンテキストメモリ部217Bに書き込む。   Further, in the third stage indicated by step S'3, the updated context is written and the range is updated. That is, the contexts X ′ and Y ′ output from the first context update table 230B and the second context update table 232B are written in the context memory unit 217B. In this way, in the first and second context update tables 232B, the contexts (occurrence probabilities) corresponding to the MPS processed are updated in step S'2, and written in the context memory unit 217B in step S'3.

一方でシンボルAにつき、MPS連続数mとそのコンテキストXに基づき、第1rangeテーブル520Bがrangeの値をrange’に更新する。rangeの値は、rangeメモリ部218Bから読み込まれる。さらにシンボルBにつき、MPS連続数nとそのコンテキストYに基づき、第2rangeテーブル522Bがrange’の値をrange”に更新する。更新されたrange”の値は、rangeメモリ部218Bに書き込まれる。   On the other hand, for the symbol A, the first range table 520B updates the range value to range ′ based on the MPS continuation number m and its context X. The range value is read from the range memory unit 218B. Further, for the symbol B, the second range table 522B updates the value of range ′ to “range” based on the MPS consecutive number n and its context Y. The updated value of “range” is written to the range memory unit 218B.

最後にステップS’4で示す第4段階で、lowの更新が行われる。第1low更新部250Bは、range’及び再正規化の回数に応じて、lowメモリ部219Bに保持されたlow値をlow’に更新すると共に、シンボルAの符号ビット1を出力する。一方第2low更新部252Bは、range”及び再正規化の回数に応じてlow’をlow”に更新し、lowメモリ部219Bのlow値をlow”に更新する。また、シンボルBの符号ビット2を出力する。この方法はシンボルがMPSのときのみ有効であるが、図29と同様に簡単な演算回路で1サイクルで2シンボルの処理が可能な算術符号化部316が実現できる。   Finally, low is updated in the fourth stage indicated by step S'4. The first low update unit 250B updates the low value held in the low memory unit 219B to low ′ according to the range ′ and the number of renormalizations, and outputs the sign bit 1 of the symbol A. On the other hand, the second low update unit 252B updates low 'to low "according to the range" and the number of renormalizations, and updates the low value of the low memory unit 219B to low ". Also, the sign bit 2 of the symbol B This method is effective only when the symbol is MPS, but an arithmetic coding unit 316 capable of processing two symbols in one cycle can be realized with a simple arithmetic circuit as in FIG.

このようにして、前段のシンボルの演算を待たずに次段のシンボルの算術符号化を行うことができるので、パイプライン処理が可能となり、従来は不可能と考えられていた処理の高速化が図られる。図33に、このようなパイプライン処理の例を示す。図33に示すように、3つのシンボルについて、算術符号化処理を並列して行うことができるので、1サイクルで2シンボル以上の処理が可能となる。
(2つの手法の切り替え)
In this way, it is possible to perform arithmetic coding of the next symbol without waiting for the calculation of the previous symbol, so that pipeline processing is possible, and high-speed processing that was previously considered impossible is possible. Figured. FIG. 33 shows an example of such pipeline processing. As shown in FIG. 33, arithmetic coding processing can be performed in parallel for three symbols, so processing of two symbols or more can be performed in one cycle.
(Switching between the two methods)

以上のように、2サイクル予測は1サイクル分の処理を削減し、多くの場面で予測可能である利点を有する。一方連続MPS処理予測は、数サイクル分の処理を削減でき、削減量が大きいが、MPSが連続する場合のみ予測可能であるという制約がある。   As described above, the 2-cycle prediction has an advantage that processing for one cycle is reduced and prediction is possible in many scenes. On the other hand, the continuous MPS process prediction can reduce the processing for several cycles and has a large reduction amount, but has a restriction that it can be predicted only when the MPS continues.

よって、これら2サイクル予測と連続MPS処理予測とを組み合わせ、状況に応じてより有効な手法を選択し、これらを切り替えて利用することで、一層の高速化を図ることができる。本発明の実施の形態3として、このような予測手法切替部を備える算術符号化装置の一例を、図23及び図24に示す。これらの図に示す算術符号化装置600も、図9と同様にコンテキスト計算部614、第1メモリ部617、第2メモリ部618、算術符号化部610を備える。これらの部材は基本的に図9等と同様であって、詳細説明を省略する。算術符号化部610は、入力された2信号をバッファリングする入力バッファ621と、2サイクル予測部622と、連続MPS処理予測部623と、これらを切り替える予測手法切替部624とを備える。予測手法切替部624は、入力されるコンテキストやrange等に応じて、その時点で適切な予測手法を選択して切り替える。図23の例では2サイクル予測部622を選択した状態を、図24の例では連続MPS処理予測部623を選択した状態を、それぞれ示している。これにより、2サイクル予測と、連続MPS処理予測を適宜組み合わせて、多くのサイクル数を削減できる。   Therefore, it is possible to further increase the speed by combining these two-cycle prediction and continuous MPS process prediction, selecting a more effective method according to the situation, and switching and using these methods. As Embodiment 3 of the present invention, an example of an arithmetic coding apparatus including such a prediction technique switching unit is shown in FIGS. The arithmetic coding apparatus 600 shown in these figures also includes a context calculation unit 614, a first memory unit 617, a second memory unit 618, and an arithmetic coding unit 610, as in FIG. These members are basically the same as those shown in FIG. The arithmetic coding unit 610 includes an input buffer 621 for buffering two input signals, a 2-cycle prediction unit 622, a continuous MPS process prediction unit 623, and a prediction method switching unit 624 for switching these. The prediction method switching unit 624 selects and switches an appropriate prediction method at that time according to the input context, range, or the like. In the example of FIG. 23, the state where the 2-cycle prediction unit 622 is selected is shown, and in the example of FIG. 24, the state where the continuous MPS process prediction unit 623 is selected is shown. Thereby, the number of cycles can be reduced by appropriately combining the 2-cycle prediction and the continuous MPS process prediction.

図25に、2サイクル予測と連続MPS処理予測を予測手法切替部624で切り替える様子を示す。この図に示すように、2値化されたビット列の状態に基づいて、予測手法切替部624がこれらの切り替えを行う。ここでは、切り替えの条件として、入力ビットが”0”の連続である場合のみ連続MPS処理予測を使用し、その他の場合は2サイクル予測を使用する。予測手法切替部624はこの条件に従い、いずれかの手法を選択し、選択した手法に従って処理を行う。
(実施例)
FIG. 25 shows how the prediction method switching unit 624 switches between 2-cycle prediction and continuous MPS process prediction. As shown in this figure, based on the state of the binarized bit string, the prediction method switching unit 624 performs these switching. Here, as a switching condition, continuous MPS process prediction is used only when the input bits are continuous “0”, and in other cases, 2-cycle prediction is used. The prediction method switching unit 624 selects one of the methods according to this condition, and performs processing according to the selected method.
(Example)

次に本発明の実施例として、2サイクル予測、連続MPS処理予測、及びこれらを切り替える場合のそれぞれについて算術符号化を行い、削減されるサイクル数の比率をシミュレーションで求めた。ここでは、一括で入力するコンテキスト数を2として、種々のシミュレーション用画像シーケンス(akiyo、bridge-close、bridge-far、carphone、clair)に対して算術符号化を行い、そのシミュレーション結果を、それぞれ表1〜表5に示す。表においてDSEは2サイクル予測、MPSEは連続MPS処理予測、DSE+MPSEはこれらを切り替えた例を、それぞれ示している。この表に示すように、いずれのシーケンスに対しても2サイクル予測、連続MPS処理予測によって演算量を削減でき、特に2サイクル予測が良好な結果を示している。またこれらを切り替える方式では、一層の演算量削減が図られ、本実施の形態の有用性が確認できた。またシミュレーション結果によれば、コンテキストの変更許可数を増すほど、削減率は向上した。ただ、コンテキストの変更許可数を増加すると、削減できるサイクル数は増加するものの、回路構成が複雑化して回路面積が増大するというデメリットもあるので、サイクル数削減効果と回路構成に要するコスト、要求される仕様などに応じて適宜決定する。   Next, as an example of the present invention, arithmetic coding was performed for each of two-cycle prediction, continuous MPS process prediction, and switching between them, and the ratio of the number of cycles to be reduced was obtained by simulation. Here, the number of contexts input in a batch is set to 2, and arithmetic coding is performed on various image sequences for simulation (akiyo, bridge-close, bridge-far, carphone, clair), and the simulation results are respectively displayed. 1 to Table 5. In the table, DSE indicates 2-cycle prediction, MPSE indicates continuous MPS process prediction, and DSE + MPSE indicates an example in which these are switched. As shown in this table, the calculation amount can be reduced by 2-cycle prediction and continuous MPS process prediction for any sequence, and the 2-cycle prediction shows particularly good results. Moreover, in the method of switching between them, the calculation amount can be further reduced, and the usefulness of the present embodiment has been confirmed. According to the simulation results, the reduction rate improved as the number of context change permission increases. However, increasing the number of context changes allowed increases the number of cycles that can be reduced, but it also has the demerit that the circuit configuration becomes complex and the circuit area increases, so the cycle number reduction effect and the cost required for the circuit configuration are required. It is determined as appropriate according to the specifications.

Figure 0004547503
Figure 0004547503

Figure 0004547503
Figure 0004547503

Figure 0004547503
Figure 0004547503

Figure 0004547503
Figure 0004547503

Figure 0004547503
Figure 0004547503

なお他の実施の形態に係る算術符号化装置は、多値信号を2値化するための2値化部と、2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、コンテキスト番号を生成するためのコンテキスト計算部と、2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、シンボル値とシンボル出現確率とを格納するための確率状態格納部とを備える算術符号化装置であって、算術符号化部は、劣勢シンボルの区間を発生確率に基づいて分割した領域rLPSの予測値を格納する第1格納部と、同じくrLPSの予測値を格納する、第1格納部とは別個の第2格納部と、第1格納部に格納されたrLPSの予測値及び初期の区間を参照して算術符号化を行い区間を更新する第1演算部と、同じく第2格納部に格納されたrLPSの予測値及び前記第1演算部で更新された更新区間を参照して算術符号化を行う、第1演算部とは別個の第2演算部と、シンボル出現確率及び優勢シンボルが示すシンボル値を更新する第1コンテキスト更新テーブルと、同じくシンボル出現確率及び優勢シンボルが示すシンボル値を更新する、第1コンテキスト更新テーブルとは別個の第2コンテキスト更新テーブルとを備え、第1コンテキスト更新テーブルは、入力されたコンテキストに対する出力を同サイクル中に前記第2コンテキストテーブルに入力可能な組み合わせ回路で構成されている。これにより、1サイクル中に2ビット以上の処理が可能な高速な算術符号化を実現できる。   Note that an arithmetic coding apparatus according to another embodiment includes a binarization unit for binarizing a multilevel signal and an arithmetic code for arithmetic coding of a binary symbol generated by the binarization unit. An update unit, a context calculation unit for generating a context number, and a symbol value and a symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarization unit An arithmetic coding device comprising: an update unit; and a probability state storage unit for storing a symbol value and a symbol appearance probability, with the context number calculated by the context calculation unit as an index. A first storage unit that stores the predicted value of the region rLPS obtained by dividing the inferior symbol section based on the occurrence probability, and a second storage unit that is also separate from the first storage unit that stores the predicted value of rLPS. A storage unit, a first arithmetic unit that performs arithmetic coding with reference to the predicted value of rLPS stored in the first storage unit and an initial section, and updates the section, and an rLPS stored in the second storage unit. A second arithmetic unit that performs arithmetic coding with reference to the predicted value and the update interval updated by the first arithmetic unit, and updates the symbol appearance probability and the symbol value indicated by the dominant symbol. And a second context update table separate from the first context update table for updating the symbol appearance probability and the symbol value indicated by the dominant symbol, and the first context update table is input The combinational circuit can input the output to the second context table during the same cycle. As a result, high-speed arithmetic coding capable of processing 2 bits or more in one cycle can be realized.

算術符号化装置においては、第1コンテキスト更新テーブル及び第2コンテキスト更新テーブルを組み合わせ回路で構成できる。これによって処理の高速化が図られる。なお、第1コンテキスト更新テーブルをROMで、第2コンテキスト更新テーブルを組み合わせ回路で構成してもよく、これによって算術符号化を安価に実現できる。   In the arithmetic coding apparatus, the first context update table and the second context update table can be configured by a combinational circuit. This speeds up the processing. Note that the first context update table may be composed of a ROM and the second context update table may be composed of a combinational circuit, whereby arithmetic coding can be realized at low cost.

本発明の算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体は、動画像信号を圧縮して記録したり伝送する用途に有用であり、例えば携帯端末装置、動画像撮像装置、動画像記録・再生装置等、高画質動画像を処理する装置及びその応用分野において好適に利用できる。   The arithmetic coding apparatus, the arithmetic coding method, the arithmetic coding program, and the computer-readable recording medium storing the program of the present invention are useful for applications in which a moving image signal is compressed and recorded or transmitted. The present invention can be suitably used in devices that process high-quality moving images, such as portable terminal devices, moving image capturing devices, and moving image recording / reproducing devices, and their application fields.

H.264/AVCの符号化処理処理により、画像データからビットストリームを得る動画像符号化/復号装置を示すブロック図である。H. 1 is a block diagram illustrating a moving image encoding / decoding device that obtains a bitstream from image data by H.264 / AVC encoding processing. 算術符号化・復号化の概念を説明するための概念図である。It is a conceptual diagram for demonstrating the concept of arithmetic encoding / decoding. 2値算術符号化を行う手順を示す概念図である。It is a conceptual diagram which shows the procedure which performs binary arithmetic coding. CABAC処理を行う算術符号化装置を示すブロック図である。It is a block diagram which shows the arithmetic coding apparatus which performs a CABAC process. 図4の2値算術符号化部の詳細を示すブロック図である。It is a block diagram which shows the detail of the binary arithmetic coding part of FIG. 再正規化の手順を示す概念図である。It is a conceptual diagram which shows the procedure of renormalization. 算術符号化装置を示すブロック図である。It is a block diagram which shows an arithmetic coding apparatus. 図7の算術符号化装置の動作を示す概念図である。It is a conceptual diagram which shows operation | movement of the arithmetic coding apparatus of FIG. 本実施の形態1に係る算術符号化装置を示すブロック図である。It is a block diagram which shows the arithmetic coding apparatus which concerns on this Embodiment 1. 図9の第1メモリ部を示す概念図である。FIG. 10 is a conceptual diagram illustrating a first memory unit in FIG. 9. 本実施の形態1に係る算術符号化装置の変形例を示すブロック図である。It is a block diagram which shows the modification of the arithmetic coding apparatus which concerns on this Embodiment 1. FIG. 図9に示す算術符号化装置の算術符号化部のブロック図である。It is a block diagram of the arithmetic coding part of the arithmetic coding apparatus shown in FIG. 図12の算術符号化部の動作を示す概念図である。It is a conceptual diagram which shows the operation | movement of the arithmetic coding part of FIG. 他の構成に係る算術符号化部を示すブロック図である。It is a block diagram which shows the arithmetic coding part which concerns on another structure. 連続MPS処理予測の手順を示す概念図である。It is a conceptual diagram which shows the procedure of continuous MPS process prediction. コンテキストが一定の場合のMPS連続数テーブルを示す概念図である。It is a conceptual diagram which shows the MPS continuous number table in case a context is constant. 図17(a)再正規化を行う様子を示す概念図、図17(b)は再正規化を考慮したrange予測を示す概念図である。FIG. 17A is a conceptual diagram showing how renormalization is performed, and FIG. 17B is a conceptual diagram showing range prediction taking renormalization into consideration. 再正規化を考慮した連続MPS処理予測部のブロック図である。It is a block diagram of the continuous MPS process prediction part in consideration of renormalization. 連続するMPS処理において、コンテキストが変化する様子を示す概念図である。It is a conceptual diagram which shows a mode that a context changes in a continuous MPS process. MPS連続数テーブルの例を示す概念図である。It is a conceptual diagram which shows the example of a MPS continuous number table. コンテキストが変化する場合に連続MPS処理予測を実現する連続MPS処理予測部を構成するブロック図である。It is a block diagram which comprises the continuous MPS process prediction part which implement | achieves continuous MPS process prediction when a context changes. 詳細な連続MPS処理予測部のブロック図を示す。The block diagram of a detailed continuous MPS process prediction part is shown. 本発明の実施の形態3に係る算術符号化装置を示すブロック図である。It is a block diagram which shows the arithmetic coding apparatus which concerns on Embodiment 3 of this invention. 本発明の実施の形態3に係る算術符号化装置を示すブロック図である。It is a block diagram which shows the arithmetic coding apparatus which concerns on Embodiment 3 of this invention. 2サイクル予測と連続MPS処理予測を予測手法切替部で切り替える様子を示すブロック図である。It is a block diagram which shows a mode that 2-cycle prediction and continuous MPS process prediction are switched by the prediction method switch part. H.264/AVCによる算術符号化・復号の処理プロセスのフローチャートである。H. 3 is a flowchart of a process for arithmetic coding / decoding according to H.264 / AVC. H.264/AVCの算術符号化の処理プロセスを具現化した算術符号化装置を示すブロック図である。H. 1 is a block diagram illustrating an arithmetic coding apparatus that embodies a processing process of H.264 / AVC arithmetic coding. 従来の算術符号化装置を示すブロック図である。It is a block diagram which shows the conventional arithmetic coding apparatus. 2サイクル予測を行う算術符号化部の変形例を示すブロック図である。It is a block diagram which shows the modification of the arithmetic coding part which performs 2 cycle prediction. 図29の算術符号化部による算術符号化の手順を示すフローチャートである。It is a flowchart which shows the procedure of the arithmetic encoding by the arithmetic encoding part of FIG. 連続MPS処理予測を行う算術符号化部の変形例を示すブロック図である。It is a block diagram which shows the modification of the arithmetic coding part which performs continuous MPS process prediction. 図31の算術符号化部による算術符号化の手順を示すフローチャートである。It is a flowchart which shows the procedure of the arithmetic encoding by the arithmetic encoding part of FIG. 図29、図31の算術符号をパイプライン処理で行う様子を示すタイミングチャートである。FIG. 32 is a timing chart showing how the arithmetic codes in FIGS. 29 and 31 are performed by pipeline processing. FIG.

符号の説明Explanation of symbols

1…DMA
2…動き探索部
3…デブロッキングフィルタ
4…動き補償部
5…変換部
6…量子化部
7…逆量子化部
8…逆変換部
9…全体制御部
10…算術符号化/復号装置
10A…算術符号化装置
11…可変長復号化部
12、112…2値化部
14、114、614…コンテキスト計算部
16、116…2値算術符号化部
20…rLPSテーブル
30…コンテキスト変更テーブル
40、140…演算部
50…再正規化部
70、170…コンテキスト更新部
100…動画像符号化/復号装置
117…第1メモリ部
117A…メモリ部
118…第2メモリ部
119…予測部
120…第1rLPSテーブル
121…出力バッファ
122…第2rLPSテーブル
160、360…符号ビット生成部
200、300…算術符号化装置
216、316…算術符号化部
217、217B…コンテキストメモリ部
218、218B…rangeメモリ部
219、219B…lowメモリ部
220…第1rLPSテーブル
222…第2rLPSテーブル
224…第1選択器
226…第2選択器
230、230B…第1コンテキスト更新テーブル
232、232B…第2コンテキスト更新テーブル
240…第1range更新部
242…第2range更新部
250、250B…第1low更新部
252、252B…第2low更新部
301…第1算術符号化手段
302…第2算術符号化手段
320…第1rLPSテーブル
322…第2rLPSテーブル
330…第1コンテキスト更新テーブル
332…第2コンテキスト更新テーブル
340…第1演算部
342…第2演算部
350…第1再正規化部
352…第2再正規化部
400、400B、500…連続MPS処理予測部
420…rangeテーブル
420A、420B…予測テーブル
430…コンテキスト更新テーブル
450…再正規化部
520、520B…第1rangeテーブル
522、522B…第2rangeテーブル
530…第1コンテキスト更新テーブル
532…第2コンテキスト更新テーブル
550…再正規化部
600…算術符号化装置
610…算術符号化部
617…第1メモリ部
618…第2メモリ部
621…入力バッファ
622…2サイクル予測部
623…連続MPS処理予測部
624…予測手法切替部
700…算術符号化装置
710…適応算術符号化・復号部
711…算術符号化・復号部
712…シンボル出現確率制御部
713…確率状態格納部
720…コンテキスト計算部
730…符号化・復号制御部
800…算術符号化装置
810…適応算術符号化部
811…算術符号化部
814…シンボル出現確率制御部
815…確率状態格納部
820…コンテキスト計算部
821…レジスタ
822…比較判定部
830…符号化制御部
FM…フレームメモリ
1 ... DMA
2 ... motion search unit 3 ... deblocking filter 4 ... motion compensation unit 5 ... transform unit 6 ... quantization unit 7 ... inverse quantization unit 8 ... inverse transform unit 9 ... overall control unit 10 ... arithmetic coding / decoding device 10A ... Arithmetic coding device 11 ... variable length decoding unit 12, 112 ... binarization unit 14, 114, 614 ... context calculation unit 16, 116 ... binary arithmetic coding unit 20 ... rLPS table 30 ... context change tables 40, 140 ... Calculation unit 50 ... Renormalization unit 70, 170 ... Context update unit 100 ... Moving image encoding / decoding device 117 ... First memory unit 117A ... Memory unit 118 ... Second memory unit 119 ... Prediction unit 120 ... First rLPS table 121... Output buffer 122... Second rLPS table 160, 360... Code bit generation unit 200, 300. 7, 217B ... context memory unit 218, 218B ... range memory unit 219, 219B ... low memory unit 220 ... first rLPS table 222 ... second rLPS table 224 ... first selector 226 ... second selector 230, 230B ... first context Update table 232, 232B ... second context update table 240 ... first range update unit 242 ... second range update unit 250, 250B ... first low update unit 252, 252B ... second low update unit 301 ... first arithmetic encoding means 302 ... first 2 arithmetic encoding means 320 ... 1st rLPS table 322 ... 2nd rLPS table 330 ... 1st context update table 332 ... 2nd context update table 340 ... 1st calculating part 342 ... 2nd calculating part 350 ... 1st renormalization part 352 ... second re-correction Normalization unit 400, 400B, 500 ... Continuous MPS process prediction unit 420 ... Range table 420A, 420B ... Prediction table 430 ... Context update table 450 ... Renormalization unit 520, 520B ... First range table 522, 522B ... Second range table 530 ... 1st context update table 532 ... 2nd context update table 550 ... Re-normalization unit 600 ... Arithmetic coding device 610 ... Arithmetic coding unit 617 ... 1st memory unit 618 ... 2nd memory unit 621 ... Input buffer 622 ... 2 cycles Prediction unit 623 ... Continuous MPS process prediction unit 624 ... Prediction method switching unit 700 ... Arithmetic coding device 710 ... Adaptive arithmetic coding / decoding unit 711 ... Arithmetic coding / decoding unit 712 ... Symbol appearance probability control unit 713 ... Probability state storage Unit 720 ... Context calculation unit 730 ... encoding / decoding control unit 800 ... arithmetic coding device 810 ... adaptive arithmetic coding unit 811 ... arithmetic coding unit 814 ... symbol appearance probability control unit 815 ... probability state storage unit 820 ... context calculation unit 821 ... register 822 ... comparison Determination unit 830 ... Coding control unit FM ... Frame memory

Claims (9)

多値信号を2値化するための2値化部と、
前記2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、
コンテキスト番号を生成するためのコンテキスト計算部と、
前記2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、
前記コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、前記シンボル値と前記シンボル出現確率とを格納するための確率状態格納部と、
を備える算術符号化装置であって、
前記算術符号化部は、
劣勢シンボルの区間を発生確率に基づいて分割した領域rLPSの予測値を格納する第1格納部と、
同じくrLPSの予測値を格納する、前記第1格納部とは別個の第2格納部と、
前記第1格納部及び第2格納部に格納されたrLPSの予測値を参照して算術符号化を行う演算部と、
を備えてなることを特徴とする算術符号化装置。
A binarization unit for binarizing the multilevel signal;
An arithmetic encoding unit for arithmetically encoding the binary symbol generated by the binarization unit;
A context calculator for generating a context number;
An update unit for updating the symbol value and symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarization unit;
Using the context number calculated by the context calculation unit as an index, a probability state storage unit for storing the symbol value and the symbol appearance probability;
An arithmetic encoding device comprising:
The arithmetic encoding unit is
A first storage unit that stores a predicted value of a region rLPS obtained by dividing an inferior symbol section based on the occurrence probability;
A second storage unit separate from the first storage unit, which also stores a predicted value of rLPS;
An arithmetic unit that performs arithmetic coding with reference to predicted values of rLPS stored in the first storage unit and the second storage unit;
An arithmetic coding apparatus comprising:
多値信号を2値化するための2値化部と、
前記2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、
コンテキスト番号を生成するためのコンテキスト計算部と、
前記2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、
前記コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、前記シンボル値と前記シンボル出現確率とを格納するための確率状態格納部と、
を備える算術符号化装置であって、
前記算術符号化部は、
優勢シンボル処理時の優勢シンボル処理連続数、初期の区間、シンボル出現確率に基づいて決定される更新区間の予測値を格納する更新区間格納部と、
優勢シンボル処理時の優勢シンボル処理連続数、及び初期のシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するためのコンテキスト更新テーブルと、
再正規化の回数に基づいて、更新区間の補集合であるlowを更新する再正規化テーブルを有する再正規化部と、
を備えることを特徴とする算術符号化装置。
A binarization unit for binarizing the multilevel signal;
An arithmetic encoding unit for arithmetically encoding the binary symbol generated by the binarization unit;
A context calculator for generating a context number;
An update unit for updating the symbol value and symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarization unit;
Using the context number calculated by the context calculation unit as an index, a probability state storage unit for storing the symbol value and the symbol appearance probability;
An arithmetic encoding device comprising:
The arithmetic encoding unit is
An update interval storage unit for storing a predicted value of an update interval determined based on the number of consecutive dominant symbol processing at the time of dominant symbol processing, an initial interval, and a symbol appearance probability;
A context update table for storing a predicted value of the symbol appearance probability determined based on the number of consecutive dominant symbol processing during the dominant symbol processing and the initial symbol appearance probability;
A renormalization unit having a renormalization table for updating low, which is a complement of the update interval, based on the number of renormalizations;
An arithmetic coding apparatus comprising:
多値信号を2値化するための2値化部と、
前記2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、
コンテキスト番号を生成するためのコンテキスト計算部と、
前記2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、
前記コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、前記シンボル値と前記シンボル出現確率とを格納するための確率状態格納部と、
を備える算術符号化装置であって、
前記算術符号化部は、
優勢シンボル処理時の優勢シンボル処理連続数、初期の区間、シンボル出現確率に基づいて決定される更新区間の予測値を格納する第1更新区間格納部と、
同じく更新区間の予測値を格納する、前記第1更新区間格納部と別個の第2更新区間格納部と、
優勢シンボル処理時の優勢シンボル処理連続数、及び初期のシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するための第1コンテキスト更新テーブルと、
優勢シンボル処理時の優勢シンボル処理連続数、及び前記第1コンテキスト更新テーブルで更新されたシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するための、前記第1コンテキスト更新テーブルと別個の第2コンテキスト更新テーブルと、
再正規化の回数に基づいて、更新区間の補集合であるlowを更新する再正規化テーブルを有する再正規化部と、
を備えることを特徴とする算術符号化装置。
A binarization unit for binarizing the multilevel signal;
An arithmetic encoding unit for arithmetically encoding the binary symbol generated by the binarization unit;
A context calculator for generating a context number;
An update unit for updating the symbol value and symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarization unit;
Using the context number calculated by the context calculation unit as an index, a probability state storage unit for storing the symbol value and the symbol appearance probability;
An arithmetic encoding device comprising:
The arithmetic encoding unit is
A first update section storage unit that stores a predicted value of an update section determined based on the number of consecutive dominant symbol processes at the time of dominant symbol processing, an initial section, and a symbol appearance probability;
A second update interval storage unit separately from the first update interval storage unit, which also stores a predicted value of the update interval;
A first context update table for storing a predicted value of a symbol appearance probability determined based on the number of consecutive dominant symbol processing during the dominant symbol processing and an initial symbol appearance probability;
The first context update table for storing a predicted value of a symbol appearance probability determined based on the number of consecutive dominant symbol processes at the time of dominant symbol processing and the symbol appearance probability updated in the first context update table; A separate second context update table;
A renormalization unit having a renormalization table for updating low, which is a complement of the update interval, based on the number of renormalizations;
An arithmetic coding apparatus comprising:
多値信号を2値化するための2値化部と、
前記2値化部で生成された2値シンボルを算術符号化するための算術符号化部と、
コンテキスト番号を生成するためのコンテキスト計算部と、
前記2値化部で生成された2値シンボルに基づいて、優勢シンボル或いは劣勢シンボルが示すシンボル値とシンボル出現確率とを更新するための更新部と、
前記コンテキスト計算部で計算されたコンテキスト番号をインデックスとして、前記シンボル値と前記シンボル出現確率とを格納するための確率状態格納部と、
を備える算術符号化装置であって、
前記算術符号化部が、
劣勢シンボルの区間を発生確率に基づいて分割した領域rLPSの予測値を格納する第1格納部と、
同じくrLPSの予測値を格納する、前記第1格納部とは別個の第2格納部と、
前記第1格納部及び第2格納部に格納されたrLPSの予測値を参照して算術符号化を行う演算部と、
を備える2サイクル予測部と、
優勢シンボル処理時の優勢シンボル処理連続数、初期の区間、シンボル出現確率に基づいて決定される更新区間の予測値を格納する更新区間格納部と、
優勢シンボル処理時の優勢シンボル処理連続数、及び初期のシンボル出現確率に基づいて決定されるシンボル出現確率の予測値を格納するためのコンテキスト更新テーブルと、
再正規化の回数に基づいて、更新区間の補集合であるlowを更新する再正規化テーブルを有する再正規化部と、
を備える連続優勢シンボル処理予測部と
前記2サイクル予測部と連続優勢シンボル処理予測部のいずれかを切り替える予測手法切替部と、
を備えることを特徴とする算術符号化装置。
A binarization unit for binarizing the multilevel signal;
An arithmetic encoding unit for arithmetically encoding the binary symbol generated by the binarization unit;
A context calculator for generating a context number;
An update unit for updating the symbol value and symbol appearance probability indicated by the dominant symbol or the inferior symbol based on the binary symbol generated by the binarization unit;
Using the context number calculated by the context calculation unit as an index, a probability state storage unit for storing the symbol value and the symbol appearance probability;
An arithmetic encoding device comprising:
The arithmetic encoding unit is
A first storage unit that stores a predicted value of a region rLPS obtained by dividing an inferior symbol section based on the occurrence probability;
A second storage unit separate from the first storage unit, which also stores a predicted value of rLPS;
An arithmetic unit that performs arithmetic coding with reference to predicted values of rLPS stored in the first storage unit and the second storage unit;
A two-cycle prediction unit comprising:
An update interval storage unit for storing a predicted value of an update interval determined based on the number of consecutive dominant symbol processing at the time of dominant symbol processing, an initial interval, and a symbol appearance probability;
A context update table for storing a predicted value of the symbol appearance probability determined based on the number of consecutive dominant symbol processing during the dominant symbol processing and the initial symbol appearance probability;
A renormalization unit having a renormalization table for updating low, which is a complement of the update interval, based on the number of renormalizations;
A continuous dominant symbol processing prediction unit comprising: a prediction method switching unit that switches between the two-cycle prediction unit and the continuous dominant symbol processing prediction unit;
An arithmetic coding apparatus comprising:
2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、
その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号化方法であって、
符号化対象のシンボルが優勢シンボルである場合の優勢シンボル処理時の区間座標値、及び劣勢シンボルである場合の劣勢シンボル処理時の区間座標値を予め記録した第1rLPSテーブルを参照して、第1シンボルの区間を更新した分割領域を求める工程と、
得られた分割領域と、第1rLPSテーブルと別個の第2rLPSテーブルを参照して、第1シンボルに続く第2シンボルの区間を更新した分割領域を求める工程と、
必要に応じて再正規化を行い、出力符号を出力する工程と、
コンテキスト番号を更新する工程と、
を含むことを特徴とする算術符号化方法。
In the arithmetic coding of binary symbols, the dominant symbol that is a symbol with a high appearance probability and the inferior symbol that is a symbol with a low appearance probability are coordinate values of a section on the number line to the previous symbol and a section on the number line of the inferior symbol. To correspond to a predetermined section on the number line,
An arithmetic encoding method for outputting an encoded signal from an interval correspondence result on the number line and an input binary symbol,
Referring to the first rLPS table in which the interval coordinate value at the time of dominant symbol processing when the symbol to be encoded is the dominant symbol and the interval coordinate value at the time of inferior symbol processing when it is the inferior symbol are recorded in advance. Obtaining a segmented area in which the symbol interval is updated;
A step of obtaining a divided region in which a section of a second symbol following the first symbol is updated with reference to the obtained divided region and a second rLPS table separate from the first rLPS table;
Performing renormalization as necessary and outputting an output code;
Updating the context number;
An arithmetic coding method comprising:
2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、
その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号化方法であって、
2値シンボルの優勢シンボルが連続する場合に、優勢シンボルの連続数とコンテキスト番号に基づいて、更新区間格納部を参照して更新区間の予測値を求める工程と、
コンテキスト番号を格納するコンテキスト更新テーブルを用いて更新する工程と、
を含むことを特徴とする算術符号化方法。
In the arithmetic coding of binary symbols, the dominant symbol that is a symbol with a high appearance probability and the inferior symbol that is a symbol with a low appearance probability are coordinate values of a section on the number line to the previous symbol and a section on the number line of the inferior symbol. To correspond to a predetermined section on the number line,
An arithmetic encoding method for outputting an encoded signal from an interval correspondence result on the number line and an input binary symbol,
A step of obtaining a predicted value of an update section with reference to the update section storage unit based on the number of consecutive dominant symbols and the context number when the dominant symbols of the binary symbols are continuous;
Updating using a context update table that stores context numbers;
An arithmetic coding method comprising:
2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、
その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号プログラムであって、
符号化対象のシンボルが優勢シンボルである場合の優勢シンボル処理時の区間座標値、及び劣勢シンボルである場合の劣勢シンボル処理時の区間座標値を予め記録した第1rLPSテーブルを参照して、第1シンボルの区間を更新した分割領域を求める機能と、
得られた分割領域と、第1rLPSテーブルと別個の第2rLPSテーブルを参照して、第1シンボルに続く第2シンボルの区間を更新した分割領域を求める機能と、
必要に応じて再正規化を行い、出力符号を出力する機能と、
コンテキスト番号を更新する機能と、
をコンピュータに実現させることを特徴とする算術符号化プログラム。
In the arithmetic coding of binary symbols, the dominant symbol that is a symbol with a high appearance probability and the inferior symbol that is a symbol with a low appearance probability are coordinate values of a section on the number line to the previous symbol and a section on the number line of the inferior symbol. To correspond to a predetermined section on the number line,
An arithmetic code program for outputting an encoded signal from an interval corresponding result on the number line and an input binary symbol,
Referring to the first rLPS table in which the interval coordinate value at the time of dominant symbol processing when the symbol to be encoded is the dominant symbol and the interval coordinate value at the time of inferior symbol processing when it is the inferior symbol are recorded in advance. A function for obtaining a divided region in which a symbol section is updated;
A function for obtaining a divided region obtained by updating a section of a second symbol following the first symbol with reference to the obtained divided region and a second rLPS table separate from the first rLPS table;
A function that performs renormalization as necessary and outputs an output code;
The ability to update the context number,
An arithmetic coding program characterized by causing a computer to realize the above.
2値シンボルの算術符号化にあたり、出現確率の高いシンボルである優勢シンボルと出現確率の低いシンボルである劣勢シンボルとを、前シンボルまでの数線上の区間及び劣勢シンボルの数線上の区間の座標値に基づいて、数線上の所定の区間に対応させ、
その数線上の区間対応結果と入力される2値シンボルから符号化信号を出力する算術符号化プログラムであって、
2値シンボルの優勢シンボルが連続する場合に、優勢シンボルの連続数とコンテキスト番号に基づいて、更新区間格納部を参照して更新区間の予測値を求める機能と、
コンテキスト番号を格納するコンテキスト更新テーブルを用いて更新する機能と、
をコンピュータに実現させることを特徴とする算術符号化プログラム。
In the arithmetic coding of binary symbols, the dominant symbol that is a symbol with a high appearance probability and the inferior symbol that is a symbol with a low appearance probability are coordinate values of a section on the number line to the previous symbol and a section on the number line of the inferior symbol. To correspond to a predetermined section on the number line,
An arithmetic encoding program for outputting an encoded signal from a section correspondence result on the number line and an input binary symbol,
A function for obtaining a predicted value of an update interval by referring to an update interval storage unit based on the number of consecutive dominant symbols and a context number when the dominant symbol of the binary symbol is continuous;
A function for updating using a context update table for storing context numbers;
An arithmetic coding program characterized by causing a computer to realize the above.
請求項7又は8に記載されるプログラムを格納したコンピュータで読み取り可能な記録媒体。  A computer-readable recording medium storing the program according to claim 7 or 8.
JP2008503883A 2006-03-07 2007-03-06 Arithmetic coding apparatus, arithmetic coding method, arithmetic coding program, and computer-readable recording medium storing the program Active JP4547503B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006061780 2006-03-07
JP2006061780 2006-03-07
PCT/JP2007/054358 WO2007102518A1 (en) 2006-03-07 2007-03-06 Arithmetic encoding device, arithmetic encoding method, arithmetic encoding program, and computer-readable recording medium containing the program

Publications (2)

Publication Number Publication Date
JPWO2007102518A1 JPWO2007102518A1 (en) 2009-07-23
JP4547503B2 true JP4547503B2 (en) 2010-09-22

Family

ID=38474945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008503883A Active JP4547503B2 (en) 2006-03-07 2007-03-06 Arithmetic coding apparatus, arithmetic coding method, arithmetic coding program, and computer-readable recording medium storing the program

Country Status (2)

Country Link
JP (1) JP4547503B2 (en)
WO (1) WO2007102518A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4524501B2 (en) * 2007-12-27 2010-08-18 株式会社アクセル Encoding system, encoding method, encoding program, decoding system, decoding method, and decoding program
CN103636206B (en) * 2011-03-31 2017-07-14 汤姆逊许可公司 Context adaptive binary data arithmetic is encoded(CABAC)Decoding technique
KR101647244B1 (en) * 2012-01-30 2016-08-09 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. Binary arithmetic coding scheme
JP6159240B2 (en) * 2013-12-09 2017-07-05 日本電信電話株式会社 Binary arithmetic encoding device, binary arithmetic encoding method, and binary arithmetic encoding program
CN106851276A (en) * 2017-02-09 2017-06-13 西安电子科技大学 A kind of CABAC streamline coding methods realized based on Vivado HLS
JP6707045B2 (en) * 2017-03-15 2020-06-10 Nttエレクトロニクス株式会社 Binary arithmetic decoder and binary arithmetic decoding device
EP3707623A1 (en) * 2017-11-09 2020-09-16 Nchain Holdings Limited System for simplifying executable instructions for optimised verifiable computation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005504471A (en) * 2001-09-14 2005-02-10 ノキア コーポレイション Context-based adaptive binary arithmetic coding method and system
JP2005130099A (en) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd Arithmetic decoding device, arithmetic encoding device, arithmetic encoding/decoding device, portable terminal equipment, moving image photographing device, and moving image recording/reproducing device
JP2005525018A (en) * 2002-05-02 2005-08-18 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Method and apparatus for encoding and decoding binary states and corresponding computer program and corresponding computer readable information storage medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005504471A (en) * 2001-09-14 2005-02-10 ノキア コーポレイション Context-based adaptive binary arithmetic coding method and system
JP2005525018A (en) * 2002-05-02 2005-08-18 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン Method and apparatus for encoding and decoding binary states and corresponding computer program and corresponding computer readable information storage medium
JP2005130099A (en) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd Arithmetic decoding device, arithmetic encoding device, arithmetic encoding/decoding device, portable terminal equipment, moving image photographing device, and moving image recording/reproducing device

Also Published As

Publication number Publication date
WO2007102518A1 (en) 2007-09-13
JPWO2007102518A1 (en) 2009-07-23

Similar Documents

Publication Publication Date Title
TWI759389B (en) Low-complexity sign prediction for video coding
US7898445B2 (en) Entropy coding apparatus
JP4547503B2 (en) Arithmetic coding apparatus, arithmetic coding method, arithmetic coding program, and computer-readable recording medium storing the program
US8018996B2 (en) Arithmetic decoding apparatus and method
US20040240559A1 (en) Context adaptive binary arithmetic code decoding engine
CN111183647B (en) Method, apparatus, and computer-readable medium for decoding video data
CN117544792A (en) Method, apparatus and storage medium for encoding and decoding transform block
JP2006054865A (en) Binary arithmetic decoding apparatus and methods using pipelined structure
JP4785706B2 (en) Decoding device and decoding method
TW202002636A (en) Trellis coded quantization coefficient coding
CN113795870B (en) Method, device and storage medium for encoding and decoding point cloud attribute
TWI397268B (en) Entropy processor for decoding
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
JP2015181225A (en) Video coding device and video coding method
JP2023093765A (en) Selective motion vector prediction candidates in frame with global motion
JP4865509B2 (en) Decoding device and decoding method
JP7064644B2 (en) Video encoding device
Ramesh Kumar et al. Two-symbol FPGA architecture for fast arithmetic encoding in JPEG 2000
KR101151352B1 (en) Context-based adaptive variable length coding decoder for h.264/avc
Shi et al. Pipelined architecture design of h. 264/avc cabac real-time decoding
Liu et al. A high throughput JPEG2000 entropy decoding unit architecture
Yan et al. A high throughput and energy efficient Lepton hardware encoder with hash-based memory optimization
US9973209B2 (en) Processor and data processing method thereof
JPH0621828A (en) Vector quantizing decoder
JP2005229218A (en) Image decoding apparatus

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150