JP2012200012A - Decoding device and decoding method - Google Patents

Decoding device and decoding method Download PDF

Info

Publication number
JP2012200012A
JP2012200012A JP2012140526A JP2012140526A JP2012200012A JP 2012200012 A JP2012200012 A JP 2012200012A JP 2012140526 A JP2012140526 A JP 2012140526A JP 2012140526 A JP2012140526 A JP 2012140526A JP 2012200012 A JP2012200012 A JP 2012200012A
Authority
JP
Japan
Prior art keywords
context
unit
decoding
encoding
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012140526A
Other languages
Japanese (ja)
Other versions
JP5057498B2 (en
Inventor
Yoichi Yagasaki
陽一 矢ケ崎
Osamu Haruhara
修 春原
Atsushi Murayama
淳 村山
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2012140526A priority Critical patent/JP5057498B2/en
Publication of JP2012200012A publication Critical patent/JP2012200012A/en
Application granted granted Critical
Publication of JP5057498B2 publication Critical patent/JP5057498B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To enable an image information encoding device or decoding device to guarantee a certain processing time.SOLUTION: When arithmetic decoding processing using context is performed on a bit stream including uncompressed data, by holding a context value immediately before performing arithmetic encoding processing using context on a block of uncompressed data, and performing termination processing of arithmetic decoding processing using context, a certain processing time can be guaranteed.

Description

本発明は、JVT(ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC)などの様に、離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償とによって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルTV若しくはインターネット等のネットワークメディアを介して受信する際に、又は光ディスク、磁気ディスク若しくはフラッシュメモリ等の記憶メディア上で処理する際に用いられる復号装置及び復号方法に関するものである。   The present invention relates to image information compressed by orthogonal transformation such as discrete cosine transformation or Karhunen-Labe transformation and motion compensation, such as JVT (ITU-T Rec. H.264 | ISO / IEC 14496-10 AVC). (Bitstream) when receiving via a network medium such as satellite broadcast, cable TV or the Internet, or when processing on a storage medium such as an optical disk, magnetic disk or flash memory It is about.

近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEGなどの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。   In recent years, image information has been handled as digital data. At that time, MPEG is used for the purpose of efficient transmission and storage of information, and compression is performed by orthogonal transform such as discrete cosine transform and motion compensation using redundancy unique to image information. An apparatus conforming to the above-described method is becoming widespread in both information distribution of broadcasting stations and information reception in general households.

特に、MPEG2(ISO/IEC 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマー用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4〜8Mbps、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18〜22Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。   In particular, MPEG2 (ISO / IEC 13818-2) is defined as a general-purpose image coding system, and is a standard that covers both interlaced and progressively scanned images, standard resolution images, and high-definition images. And widely used in a wide range of applications for consumer use. By using the MPEG2 compression method, for example, a standard resolution interlaced scanning image having 720 × 480 pixels is 4 to 8 Mbps, and a high resolution interlaced scanning image having 1920 × 1088 pixels is 18 to 22 Mbps. (Bit rate) can be assigned to achieve a high compression rate and good image quality.

MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。しかし、携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。   MPEG2 was mainly intended for high-quality encoding suitable for broadcasting, but did not support encoding methods with a lower code amount (bit rate) than MPEG1, that is, a higher compression rate. However, with the widespread use of mobile terminals, the need for such an encoding system is expected to increase in the future, and the MPEG4 encoding system has been standardized accordingly. Regarding the image coding system, the standard was approved as an international standard as ISO / IEC 14496-2 in December 1998.

さらに、近年、テレビ会議用の画像符号化を当初の目的として、JVT(ITU-T Rec. H.264 | ISO/IEC 14496−10 AVC)という標準の規格化が進んでいる。JVTはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。   Further, in recent years, standardization of a standard called JVT (ITU-T Rec. H.264 | ISO / IEC 14496-10 AVC) has been advanced with the initial purpose of image coding for video conferences. JVT is known to achieve higher encoding efficiency than the conventional encoding schemes such as MPEG2 and MPEG4, although a large amount of calculation is required for encoding and decoding.

ここで、MPEG2やJVTで採用されている、離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償とにより画像圧縮を実現する画像情報符号化装置の概略構成を図8に示す。図8に示すように、画像情報符号化装置100は、A/D変換部101と、画面並べ替えバッファ102と、加算器103と、直交変換部104と、量子化部105と、可逆符号化部106と、蓄積バッファ107と、逆量子化部108と、逆直交変換部109と、フレームメモリ110と、動き予測・補償部111と、レート制御部112とにより構成されている。   Here, FIG. 8 shows a schematic configuration of an image information encoding apparatus that realizes image compression by orthogonal transformation such as discrete cosine transformation or Karhunen-Labe transformation and motion compensation, which is employed in MPEG2 and JVT. As illustrated in FIG. 8, the image information encoding device 100 includes an A / D conversion unit 101, a screen rearrangement buffer 102, an adder 103, an orthogonal transformation unit 104, a quantization unit 105, and a lossless encoding. Unit 106, accumulation buffer 107, inverse quantization unit 108, inverse orthogonal transform unit 109, frame memory 110, motion prediction / compensation unit 111, and rate control unit 112.

図8において、A/D変換部101は、入力された画像信号をデジタル信号に変換する。そして、画面並べ替えバッファ102は、A/D変換部101から供給された画像圧縮情報のGOP(Group of Pictures)構造に応じて、フレームの並べ替えを行う。ここで、画面並び替えバッファ102は、イントラ(画像内)符号化が行われる画像に関しては、フレーム全体の画像情報を直交変換部104に供給する。直交変換部104は、画像情報に対して離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換を施し、変換係数を量子化部105に供給する。量子化部105は、直交変換部104から供給された変換係数に対して量子化処理を施す。   In FIG. 8, an A / D converter 101 converts an input image signal into a digital signal. The screen rearrangement buffer 102 rearranges the frames according to the GOP (Group of Pictures) structure of the image compression information supplied from the A / D conversion unit 101. Here, the screen rearrangement buffer 102 supplies the image information of the entire frame to the orthogonal transform unit 104 regarding the image on which intra (intra-image) encoding is performed. The orthogonal transform unit 104 performs orthogonal transform such as discrete cosine transform or Karhunen-Loeve transform on the image information, and supplies transform coefficients to the quantization unit 105. The quantization unit 105 performs a quantization process on the transform coefficient supplied from the orthogonal transform unit 104.

可逆符号化部106は、量子化部105から供給された量子化された変換係数や量子化スケール等から符号化モードを決定し、この符号化モードに対して可変長符号化、又は算術符号化等の可逆符号化を施し、画像符号化単位のヘッダ部に挿入される情報を形成する。符号化された符号化モードを蓄積バッファ107に供給して蓄積させる。この符号化された符号化モードは、画像圧縮情報として出力される。   The lossless encoding unit 106 determines an encoding mode from the quantized transform coefficient, quantization scale, and the like supplied from the quantization unit 105, and performs variable length encoding or arithmetic encoding on the encoding mode. The information to be inserted into the header portion of the image coding unit is formed. The encoded encoding mode is supplied to the storage buffer 107 and stored. The encoded encoding mode is output as image compression information.

また、可逆符号化部106は、量子化された変換係数に対して可変長符号化、若しくは算術符号化等の可逆符号化を施し、符号化された変換係数を蓄積バッファ107に供給して蓄積させる。この符号化された変換係数は、画像圧縮情報として出力される。   In addition, the lossless encoding unit 106 performs lossless encoding such as variable length encoding or arithmetic encoding on the quantized transform coefficient, and supplies the encoded transform coefficient to the accumulation buffer 107 for accumulation. Let The encoded transform coefficient is output as image compression information.

量子化部105の挙動は、レート制御部112によって制御される。また、量子化部105は、量子化後の変換係数を逆量子化部108に供給し、逆量子化部108は、その変換係数を逆量子化する。逆直交変換部109は、逆量子化された変換係数に対して逆直交変換処理を施して復号画像情報を生成し、その情報をフレームメモリ110に供給して蓄積させる。   The behavior of the quantization unit 105 is controlled by the rate control unit 112. The quantization unit 105 supplies the quantized transform coefficient to the inverse quantization unit 108, and the inverse quantization unit 108 inversely quantizes the transform coefficient. The inverse orthogonal transform unit 109 performs inverse orthogonal transform processing on the inversely quantized transform coefficients to generate decoded image information, and supplies the information to the frame memory 110 for accumulation.

一方、画面並び替えバッファ102は、インター(画像間)符号化が行われる画像に関しては、画像情報を動き予測・補償部111に供給する。動き予測・補償部111は、同時に参照される画像情報をフレームメモリ110より取り出し、動き予測・補償処理を施して参照画像情報を生成する。動き予測・補償部111は、この参照画像情報を加算器103に供給し、加算器103は、参照画像情報を当該画像情報との差分信号に変換する。また、動き補償・予測部111は、同時に動きベクトル情報を可逆符号化部106に供給する。   On the other hand, the screen rearrangement buffer 102 supplies image information to the motion prediction / compensation unit 111 for an image on which inter (inter-image) encoding is performed. The motion prediction / compensation unit 111 extracts image information that is referred to at the same time from the frame memory 110 and performs motion prediction / compensation processing to generate reference image information. The motion prediction / compensation unit 111 supplies the reference image information to the adder 103, and the adder 103 converts the reference image information into a difference signal from the image information. In addition, the motion compensation / prediction unit 111 supplies motion vector information to the lossless encoding unit 106 at the same time.

可逆符号化部106は、量子化部105から供給された量子化された変換係数や量子化スケールや、動き補償・予測部111から供給された動きベクトル情報等から符号化モードを決定し、この符号化モードに対して可変長符号化、又は算術符号化等の可逆符号化を施し、画像符号化単位のヘッダ部に挿入される情報を形成する。符号化された符号化モードを蓄積バッファ107に供給して蓄積させる。この符号化された符号化モードは、画像圧縮情報として出力される   The lossless encoding unit 106 determines the encoding mode from the quantized transform coefficient and quantization scale supplied from the quantization unit 105, the motion vector information supplied from the motion compensation / prediction unit 111, and the like. The encoding mode is subjected to lossless encoding such as variable length encoding or arithmetic encoding to form information to be inserted into the header portion of the image encoding unit. The encoded encoding mode is supplied to the storage buffer 107 and stored. This encoded encoding mode is output as image compression information.

また、可逆符号化部106は、その動きベクトル情報に対して可変長符号化若しくは算術符号化等の可逆符号化処理を施し、画像符号化単位のヘッダ部に挿入される情報を形成する。   Further, the lossless encoding unit 106 performs lossless encoding processing such as variable length encoding or arithmetic encoding on the motion vector information, and forms information to be inserted into the header portion of the image encoding unit.

イントラ符号化と異なり、インター符号化の場合には、直行変換部104に入力される画像情報は、加算器103より得られた差分信号である。   Unlike the intra coding, in the case of inter coding, the image information input to the direct conversion unit 104 is a difference signal obtained from the adder 103.

なお、その他の処理については、イントラ符号化を施される画像圧縮情報と同様であるため、説明を省略する。   The other processing is the same as the image compression information subjected to intra coding, and thus description thereof is omitted.

続いて、上述した画像情報符号化装置100に対応する画像情報復号装置の概略構成を図9に示す。図9に示すように、画像情報復号装置120は、蓄積バッファ121と、可逆復号部122と、逆量子化部123と、逆直交変換部124と、加算器125と、画面並べ替えバッファ126と、D/A変換部127と、動き予測・補償部128と、フレームメモリ129とにより構成されている。   Next, a schematic configuration of an image information decoding apparatus corresponding to the above-described image information encoding apparatus 100 is shown in FIG. As illustrated in FIG. 9, the image information decoding device 120 includes a storage buffer 121, a lossless decoding unit 122, an inverse quantization unit 123, an inverse orthogonal transform unit 124, an adder 125, and a screen rearrangement buffer 126. , A D / A conversion unit 127, a motion prediction / compensation unit 128, and a frame memory 129.

図9において、蓄積バッファ121は、入力された画像圧縮情報を一時的に格納した後、可逆復号部122に転送する。可逆復号部122は、定められた画像圧縮情報のフォーマットに基づき、画像圧縮情報に対して可変長復号若しくは算術復号等の処理を施し、ヘッダ部に格納された符号化モード情報を取得し逆量子化部123等に供給する。同様に、量子化された変換係数を取得し逆量子化部123に供給する。また、可逆復号部122は、当該フレームがインター符号化されたものである場合には、画像圧縮情報のヘッダ部に格納された動きベクトル情報についても復号し、その情報を動き予測・補償部128に供給する。   In FIG. 9, the accumulation buffer 121 temporarily stores input image compression information, and then transfers it to the lossless decoding unit 122. The lossless decoding unit 122 performs processing such as variable length decoding or arithmetic decoding on the compressed image information based on the determined format of the compressed image information, acquires the encoding mode information stored in the header unit, and performs inverse quantum To the control unit 123 and the like. Similarly, the quantized transform coefficient is acquired and supplied to the inverse quantization unit 123. Further, when the frame is inter-coded, the lossless decoding unit 122 also decodes the motion vector information stored in the header portion of the image compression information, and the information is motion prediction / compensation unit 128. To supply.

逆量子化部123は、可逆復号部122から供給された量子化後の変換係数を逆量子化し、変換係数を逆直交変換部124に供給する。逆直交変換部124は、定められた画像圧縮情報のフォーマットに基づき、変換係数に対して逆離散コサイン変換若しくは逆カルーネン・レーベ変換等の逆直交変換を施す。   The inverse quantization unit 123 inversely quantizes the quantized transform coefficient supplied from the lossless decoding unit 122 and supplies the transform coefficient to the inverse orthogonal transform unit 124. The inverse orthogonal transform unit 124 performs inverse orthogonal transform such as inverse discrete cosine transform or inverse Karhunen-Labe transform on the transform coefficient based on the determined format of the image compression information.

ここで、当該フレームがイントラ符号化されたものである場合には、逆直交変換処理が施された画像情報は、画面並べ替えバッファ126に格納され、D/A変換部127におけるD/A変換処理の後に出力される。   Here, if the frame is intra-coded, the image information subjected to the inverse orthogonal transform processing is stored in the screen rearrangement buffer 126 and is subjected to D / A conversion in the D / A conversion unit 127. Output after processing.

一方、当該フレームがインター符号化されたものである場合には、動き予測・補償部128は、可逆復号処理が施された動きベクトル情報とフレームメモリ129に格納された画像情報とに基づいて参照画像を生成し、加算器125に供給する。加算器125は、この参照画像と逆直交変換部124の出力とを合成する。なお、その他の処理については、イントラ符号化されたフレームと同様であるため、説明を省略する。   On the other hand, when the frame is inter-coded, the motion prediction / compensation unit 128 refers to the motion vector information subjected to the lossless decoding process and the image information stored in the frame memory 129. An image is generated and supplied to the adder 125. The adder 125 synthesizes the reference image and the output of the inverse orthogonal transform unit 124. The other processing is the same as that of the intra-encoded frame, and thus description thereof is omitted.

ここで、JVTにおける、可逆符号化部106について詳細に説明する。JVTの可逆符号化部106では、量子化部105や動き予測・補償部111から入力された入力されたモード情報や動き情報、量子化された係数情報といったシンボルに対して、図10に示す様に、CABAC(Context-based Adaptive Binary Arithmetic Coding)と呼ばれる算術符号化(以下、CABAC)、もしくはCAVLC(Context-based Adaptive Variable Length Coding)と呼ばれる可変長符号化(以下、CAVLC)のどちらかの可逆符号化が適用され、画像圧縮情報(ビットストリーム)が出力される。どちらの可逆符号化が適用されるかは図10におけるCABAC/CAVLC選択情報により決められるものであり、このCABAC/CAVLC選択情報は画像情報符号化装置100で決められ、ヘッダ情報としてビットストリームに埋め込まれて出力される。   Here, the lossless encoding unit 106 in JVT will be described in detail. In the JVT lossless encoding unit 106, symbols such as the input mode information, motion information, and quantized coefficient information input from the quantization unit 105 and the motion prediction / compensation unit 111 are processed as shown in FIG. In addition, either lossless of arithmetic coding (hereinafter referred to as CABAC) called CABAC (Context-based Adaptive Binary Arithmetic Coding) or variable length coding (hereinafter referred to as CAVLC) called CAVLC (Context-based Adaptive Variable Length Coding). Encoding is applied and image compression information (bitstream) is output. Which lossless encoding is applied is determined by the CABAC / CAVLC selection information in FIG. 10, and this CABAC / CAVLC selection information is determined by the image information encoding device 100 and embedded in the bitstream as header information. Is output.

まず、図11に可逆符号化部106におけるCABACの構成図を示す。図11では、量子化部105や動き予測・補償部111から入力されたモード情報や動き情報、量子化された変換係数情報が多値シンボルとしてbinarization器131に入力される。binarization器131では、入力された多値シンボルを、あらかじめ決められた一定規則にもとづき任意の長さの2値シンボルの列に変換する。この2値シンボル列はCABAC符号化器133に入力され、CABAC符号化器133では、入力された2値シンボルに対してバイナリシンボル算術符号化が適用され、その結果をビットストリームとして出力し、蓄積バッファ107に入力する。なお、Context演算器132では、binarization器131に入力されたシンボル情報とbinarization器131からの出力である2値シンボルをもとにContextの計算を行い、CABAC符号化器133に入力する。Context演算器132におけるContextメモリ群135には、符号化処理中に随時更新されるContextとリセット時などに用いられるContextの初期状態が保存される。   First, FIG. 11 shows a configuration diagram of CABAC in the lossless encoding unit 106. In FIG. 11, mode information and motion information input from the quantization unit 105 and the motion prediction / compensation unit 111 and quantized transform coefficient information are input to the binarization unit 131 as multilevel symbols. The binarization unit 131 converts the input multilevel symbol into a binary symbol sequence having an arbitrary length based on a predetermined rule. This binary symbol sequence is input to the CABAC encoder 133. The CABAC encoder 133 applies binary symbol arithmetic encoding to the input binary symbols, and outputs the result as a bit stream for storage. Input to the buffer 107. The Context calculator 132 calculates Context based on the symbol information input to the binarization unit 131 and the binary symbol output from the binarization unit 131 and inputs the Context to the CABAC encoder 133. The Context memory group 135 in the Context calculator 132 stores the Context updated at any time during the encoding process and the initial Context state used at the time of resetting.

次に、図12に可逆符号化部106におけるCAVLCの構成図を示す。図12では、量子化部105や動き予測・補償部111から入力されたモード情報や動き情報、量子化された変換係数情報が多値シンボルとしてとしてCAVLC符号化器140に入力される。CAVLC符号化器140では、従来のMPEGなどで採用されている可変長符号化のように、入力された多値シンボルに対して可変長符号テーブルを適用して、ビットストリームを出力する。ここでContext保存器141では、既にCAVLC符号化器140で符号化された情報、例えば、処理中のブロックだけでなく既に処理されたブロックにおける各ブロック内の非0係数の個数や直前に符号化された係数の値などが保存される。CAVLC符号化器140は、このContext保存器141からの情報をもとにシンボルに適用する可変長符号テーブルを切り替えることが可能である。なお、Context保存器141にはリセット時などに用いられるContextの初期状態も保存される。この出力されたビットストリームは、蓄積バッファ107に入力される。   Next, FIG. 12 shows a configuration diagram of CAVLC in the lossless encoding unit 106. In FIG. 12, mode information, motion information, and quantized transform coefficient information input from the quantization unit 105 and the motion prediction / compensation unit 111 are input to the CAVLC encoder 140 as multilevel symbols. The CAVLC encoder 140 outputs a bit stream by applying a variable length code table to the input multi-level symbols as in the variable length encoding employed in the conventional MPEG or the like. Here, the Context storage unit 141 encodes information that has already been encoded by the CAVLC encoder 140, for example, the number of non-zero coefficients in each block in the already processed block as well as the block being processed, and the immediately preceding encoding. The value of the selected coefficient is stored. The CAVLC encoder 140 can switch the variable length code table applied to the symbol based on the information from the context storage unit 141. Note that the Context storage unit 141 also stores the initial Context state used at the time of resetting. This output bit stream is input to the accumulation buffer 107.

同様に、JVTにおける、可逆復号化部122について詳細に説明する。JVTの可逆復号化部122では、可逆符号化部106と同様に、入力されたビットストリームに対して、図13に示す様に、CABAC、もしくはCAVLCのどちらかの可逆復号化が適用される。どちらの可逆復号化が適用されるかは、入力されたビットストリームのヘッダ情報に埋め込まれたCABAC/CAVLC選択情報を読み込むことにより、CABACかCAVLCのどちらかを適用する。   Similarly, the lossless decoding unit 122 in JVT will be described in detail. In the JVT lossless decoding unit 122, as in the lossless encoding unit 106, either CABAC or CAVLC lossless decoding is applied to the input bitstream as shown in FIG. 13. Which lossless decoding is applied applies either CABAC or CAVLC by reading CABAC / CAVLC selection information embedded in the header information of the input bitstream.

図14に可逆復号化部122におけるCABACの構成図を示す。図14では、蓄積バッファ121より入力されたビットストリームに対しCABAC復号化器161においてバイナリシンボル算術復号化が適用され、その結果が2値シンボル列として出力される。この2値シンボル列は、逆binarization器163に入力され、逆binarization器163において、あらかじめ決められた一定規則にもとづき多値シンボルに変換される。この逆binarization器163から出力される多値シンボルは、モード情報や動きベクトル、量子化された係数情報として、逆binarization器163から出力され、逆量子化部123、動き予測・補償部128に入力される。なお、Context演算器162では、逆binarization器163に入力された2値化シンボル列と逆binarization器163からの出力である多値シンボルをもとにContextの計算を行い、CABAC復号化器161に入力する。Context演算器162におけるContextメモリ群165には、復号化処理中に随時更新されるContextとリセット時などに用いられるContextの初期状態が保存される。   FIG. 14 shows a configuration diagram of CABAC in the lossless decoding unit 122. In FIG. 14, the CABAC decoder 161 applies binary symbol arithmetic decoding to the bit stream input from the accumulation buffer 121, and the result is output as a binary symbol string. This binary symbol sequence is input to the inverse binarization unit 163, and is converted into a multi-level symbol by the inverse binarization unit 163 based on a predetermined rule. The multi-level symbols output from the inverse binarization unit 163 are output from the inverse binarization unit 163 as mode information, motion vectors, and quantized coefficient information, and input to the inverse quantization unit 123 and the motion prediction / compensation unit 128. Is done. The Context calculator 162 calculates Context based on the binarized symbol sequence input to the inverse binarization unit 163 and the multilevel symbol output from the inverse binarization unit 163, and the CABAC decoder 161 input. The Context memory group 165 in the Context calculator 162 stores the Context updated at any time during the decoding process and the initial state of the Context used at the time of resetting.

次に、図15に可逆復号化部122におけるCAVLCの構成図を示す。図15では、蓄積バッファ121より入力されたビットストリームがCAVLC復号化器170に入力される。CAVLC復号化器170では、従来のMPEGなどで採用されている可変長復号化のように、入力されたビットストリームに対して可変長復号テーブルを適用して、モード情報や動き情報、量子化された変換係数情報を出力する。これら出力情報は、可逆量子化部123、動き予測・補償部128に入力される。ここでContext保存器171では、既にCAVLC復号化器170で復号化された情報、例えば、処理中のブロックだけでなく既に処理されたブロックにおける各ブロック内の非0係数の個数や直前に復号化された係数の値などが保存される。CAVLC復号化器170は、このContext保存器11からの情報をもとにシンボルに適用する可変長復号テーブルを切り替えることが可能である。なお、Context保存器141にはリセット時などに用いられるContextの初期状態も保存される。   Next, FIG. 15 shows a configuration diagram of CAVLC in the lossless decoding unit 122. In FIG. 15, the bit stream input from the accumulation buffer 121 is input to the CAVLC decoder 170. The CAVLC decoder 170 applies the variable length decoding table to the input bit stream, as in the variable length decoding adopted in the conventional MPEG, etc., and the mode information, motion information, and quantization are performed. Output conversion coefficient information. The output information is input to the reversible quantization unit 123 and the motion prediction / compensation unit 128. Here, the Context storage unit 171 decodes information that has already been decoded by the CAVLC decoder 170, for example, the number of non-zero coefficients in each block in the already processed block as well as the currently processed block, and the previous decoding. The value of the selected coefficient is stored. The CAVLC decoder 170 can switch the variable length decoding table applied to the symbol based on the information from the Context storage unit 11. Note that the Context storage unit 141 also stores the initial Context state used at the time of resetting.

この図11、図14に示すCABACの詳細動作として、以下にFinal Committee Draft ISO/IEC 14496-10:2002(第9.2節)におけるCABACの説明を添付する(例えば、非特許文献1参照。)。   As detailed operations of the CABAC shown in FIGS. 11 and 14, the description of CABAC in Final Commit Draft ISO / IEC 14496-10: 2002 (Section 9.2) is attached below (see, for example, Non-Patent Document 1). ).

9.2Context-based adaptive binary arithmetic coding (CABAC)
9.2.1 Decoding flow and binarization
Binarizationとはnon-binary symbolからbinary列(binと呼ばれる)への変換を行う処理のことであり、9.2.1.1 - 9.2.1.4節において、CABACの為の基本的なbinarization方式が規定される。Decoding flow、及び、全てのsyntax elementに対するbinarization方法は9.2.1.5 - 9.2.1.9 節で規定される。
9.2 Context-based adaptive binary arithmetic coding (CABAC)
9.2.1 Decoding flow and binarization
Binarization is a process that converts a non-binary symbol to a binary string (called bin). Sections 9.2.1.1-9.2.1.4 specify the basic binarization method for CABAC. Decoding flow and binarization method for all syntax elements are specified in 9.2.1.5-9.2.1.9.

9.2.1.1 Unary binarization
Unary codeによるbinalizationの最初の5 symbolに対する表をTable 9-19に示す。
9.2.1.1 Unary binarization
Table 9-19 shows a table for the first 5 symbols of binalization by Unary code.

Code symbol C に対しては、C個の’1’の最後に’0’を付けたbinary列が対応する。Binの最初のbitにはbin number =1が対応し、2番目のbitにはbin number=2、と、最後のbitに行くに従って対応するbin numberは増えていく。   Code symbol C corresponds to a binary string in which “0” is appended to the end of C “1”. Bin number = 1 corresponds to the first bit of Bin, bin number = 2 corresponds to the second bit, and the corresponding bin number increases as going to the last bit.

Figure 2012200012
Figure 2012200012

9.2.1.2 Truncated unary (TU) binarization
Truncated unary (TU) binarizationは有限個のシンボル{0,…,Cmax}に対して適用される。Symbol C<Cmax;に対しては9.2.1.1節で規定されたunnary binarizationを行い、シンボルCmaxにはCmax 個の1を割り当てる。Bin numberの割り振り方はunary binarizationの場合と同じである。
9.2.1.2 Truncated unary (TU) binarization
Truncated unary (TU) binarization is applied to a finite number of symbols {0, ..., C max }. Symbol C <C max; against performs Unnary binarization defined in 9.2.1.1 section assigns a C max number of 1 to symbol C max. Bin number allocation is the same as in unary binarization.

9.2.1.3 Concatenated unary/ kth-order Exp-Golomb (UEGk) binarization
Concatenated unary/kth-order Exp-Golomb (UEGk) binarization は、Cmax=Ucoff (Ucoff:Cut off parameter)としたtruncated unary binarization code (prefix code)とk次のExp-Golomb符号 (suffix code)とが連接されたものが変換後のbinary列となる。Symbol C がC<Ucoffの場合suffix codeは無く、C≧Ucoffの場合suffix codeはsymbol C-Ucoff に対するExp-Golomb符号となる。
9.2.1.3 Concatenated unary / k th -order Exp-Golomb (UEGk) binarization
Concatenated unary / k th -order Exp-Golomb (UEGk) binarization is expressed as follows: truncated unary binarization code (prefix code) with k max = Ucoff (Ucoff: Cut off parameter) and k-th order Exp-Golomb code (suffix code) The concatenated binary sequence is the binary sequence after conversion. If Symbol C is C <Ucoff, there is no suffix code. If C ≧ Ucoff, the suffix code is an Exp-Golomb code for symbol C-Ucoff.

Symbol S に対するk次のExp-Golomb codeは以下のように構成される:
while(1) {
//first unary part of EGk
if (symbol>= (unsigned int)(1<<k)){
put(‘1’);
S = S - (1<<k);
k++;’
}
else
{
put(‘0’); //now terminating zero of unary part of EGk
while (k--) //finally binary part of EGk
put( (S>>k)&0x01 );
break;
}
}
The kth-order Exp-Golomb code for Symbol S is constructed as follows:
while (1) {
// first unary part of EGk
if (symbol> = (unsigned int) (1 << k)) {
put ('1');
S = S-(1 <<k);
k ++; '
}
else
{
put ('0'); // now terminating zero of unary part of EGk
while (k--) // finally binary part of EGk
put ((S >> k) &0x01);
break;
}
}

Bin numberは、unary codeの第1ビット目をbin_num=1として、Exp-Golomb符号のLSBに向かって1づつ増えていく。   The Bin number is incremented by 1 toward the LSB of the Exp-Golomb code with the first bit of the unary code as bin_num = 1.

9.2.1.4 Fixed-length (FL) binarization
有限個のシンボル{0 , …, Cmax} に対し、L-bit (L= log2|Cmax|+1)のbinarizationを適用する。Bin numberはLSBをbin_num=1とし、MSBに向かって増えていく。
9.2.1.4 Fixed-length (FL) binarization
Larbit (L = log 2 | C max | +1) binarization is applied to a finite number of symbols {0,..., C max }. Bin number sets LSB to bin_num = 1 and increases toward MSB.

9.2.1.5 Binarization schemes for macroblock type and sub macroblock typeI slice中のmacroblock typeのbinarization方式はTable 9-20で規定される。ただし、adaptive_block_size_transform_flag==1であった場合には、Table 12-10に従う。   9.2.1.5 Binarization schemes for macroblock type and sub macroblock type I The macroblock type binarization scheme in slice is specified in Table 9-20. However, if adaptive_block_size_transform_flag == 1, follow Table 12-10.

SI slice中のmacroblock typeのbinarization後のbit列はprefixとsuffix部分からなり、prefixはb1= ((mb_type = = SIntra_4x4) ? 0 : 1) で表される1bit、suffixはSintra4x4の場合(suffix無し)を除きTable 9-20に示すbinarization patternに基づく。 Bit block after binarization of macroblock type in SI slice consists of prefix and suffix part, prefix is 1 bit represented by b 1 = ((mb_type = = SIntra_4x4)? 0: 1), and suffix is Sintra4x4 (suffix Based on the binarization pattern shown in Table 9-20.

P, SP, B sliceのbinarizationはTable 9-21で規定される。P, SP slice中のintra macroblock type (mb_type値7〜30に相当)は、Table 9-21に示すprefixとTable 9-20に示すsuffixによってbinarizationが行われる。   The binarization of P, SP, and B slice is specified in Table 9-21. Intra macroblock types (corresponding to mb_type values 7 to 30) in P and SP slices are binarized by prefixes shown in Table 9-21 and suffixes shown in Table 9-20.

B slice中のintra macroblock type (mb_type値23〜47に相当)についても、Table 9-21に示すprefixとTable 9-20に示すsuffixによってbinarizationが行われる。adaptive_block_size_transform_flag==1の場合は、Table 9-21における対応するsliceのprefixと、Table 12-10で規定されるsuffixが用いられる。   For intra macroblock types (corresponding to mb_type values 23 to 47) in B slice, binarization is performed using the prefixes shown in Table 9-21 and the suffixes shown in Table 9-20. When adaptive_block_size_transform_flag == 1, the corresponding slice prefix in Table 9-21 and the suffix specified in Table 12-10 are used.

P, SP, B sliceにおけるsub_mb_typeのbinarizationはTable 9-22で与えられる。   The binarization of sub_mb_type in P, SP, and B slice is given in Table 9-22.

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

9.2.1.6 Decoding flow and assignment of binarization schemes
この節においてcoded_block_pattern, delta_qp 及びreference picture index, motion vector data, Intra4x4 prediction modesそれぞれのsyntax elementのbinarization方式を規定する。
9.2.1.6 Decoding flow and assignment of binarization schemes
In this section, coded_block_pattern, delta_qp, reference picture index, motion vector data, and intra4x4 prediction modes are defined for the binarization method of the syntax element.

基本的にcoded block patternは7.4.6節で規定された関係coded_block_pattern = coded_block_patternY + 16*ncによって復号される。最初にcoded_block_pattern 中のcoded_block_patternYが、Cmax = 15 , L = 4によるfixed-length (FL) binarizationによって復号され、次に、色差のncがCmax = 2のTU binarizationによって復号される。 Basically, the coded block pattern is decoded by the relationship coded_block_pattern = coded_block_patternY + 16 * nc specified in section 7.4.6. First, coded_block_patternY in coded_block_pattern is decoded by fixed-length (FL) binarization with C max = 15, L = 4, and then nc of color difference is decoded by TU binarization with C max = 2.

delta_qp parameterの復号は次に示すように2段階で行われる。最初にunsigned 値wrapped_delta_qp≧0がunary binarizationによって復号され、次に、Table 9-2に示される対応関係によって符号付きの値に直される。   Decoding of the delta_qp parameter is performed in two stages as shown below. First, the unsigned value wrapped_delta_qp ≧ 0 is decoded by unary binarization, and then converted to a signed value by the correspondence shown in Table 9-2.

Intra_4x4, Sintra_4x4のlumaに対するspatial intra prediction modesの復号は次のように規定される。最初にintra_pred_indicatorがCmax = 8のtruncated unary (TU) binarizationによって復号される。もし、intra_pred_indicatorが0であった場合、use_most_probable_mode = 1とし、intra_pred_indicator≧1の場合には、remaining_mode_selector = intra_pred_indicator - 1とする。intra_pred_modeは与えられたmost_probable_mode、remaining_mode_selectorを用い、9.1.5.1節で規定される方法で復号が行われる。復号順序はFigure 9-1 b)に示されるものと同様である。Chromaのintra_chroma_pred_modeに対しては、Cmax=3のtruncated unary (TU) binarizationを用いて復号が行われる。 Decoding spatial intra prediction modes for Luma of Intra_4x4 and Sintra_4x4 is defined as follows. First, intra_pred_indicator is decoded by truncated unary (TU) binarization with C max = 8. If intra_pred_indicator is 0, use_most_probable_mode = 1, and if intra_pred_indicator ≧ 1, maintaining_mode_selector = intra_pred_indicator−1. Intra_pred_mode uses the given most_probable_mode and remaining_mode_selector, and is decoded by the method specified in section 9.1.5.1. The decoding order is the same as that shown in Figure 9-1 b). For Chroma intra_chroma_pred_mode, decoding is performed using truncated unary (TU) binarization of C max = 3.

Reference picture index parameterは9.2.1.1で規定されるunary binarizationを用いて復号される。   Reference picture index parameter is decoded using unary binarization specified in 9.2.1.1.

動きベクトルの符号化された各コンポーネントは、それぞれのコンポーネント毎に復号される。それぞれのコンポーネントは水平、垂直成分を含むが、水平方向に対応するものが最初に復号される。最初に絶対値abs_mvd_comp、次に、符号sign_mvd_compが復号される。abs_mvd_compに適用されるbinarizationはcut-off parameter Ucoff = 9のconcatenated unary/3rd-order Exp-Golomb (UEG3) binarizationである。Exp-Golomb復号の際には、9.2.4.3.5で規定されているDecode_eq_prob処理が適用される。 Each encoded component of the motion vector is decoded for each component. Each component includes horizontal and vertical components, but the one corresponding to the horizontal direction is decoded first. First, the absolute value abs_mvd_comp, and then the code sign_mvd_comp is decoded. The binarization applied to abs_mvd_comp is concatenated unary / 3 rd -order Exp-Golomb (UEG3) binarization with cut-off parameter Ucoff = 9. In Exp-Golomb decoding, the Decode_eq_prob process specified in 9.2.4.3.5 is applied.

9.2.1.7 Decoding flow and binarization of transform coefficients変換係数の復号は3段階からなる。Macroblock levelでのcoded_block_patternによって係数値があることが分かっている場合、それぞれのblockに対するcoded_block_flagが復号されるが、coded_block_flagが0である場合、当該blockに対する以降の情報は復号されない。coded_block_flag != 0の場合、scanの最後の位置を除くそれぞれのscan位置 iに対するsignificant_coeff_flag[i]を復号する。significant_coeff_flag[i] が1であった場合、次にlast_significant_coeff_flag[i]が復号される。last_significant_coeff_flag[i]が1であるということは、scan位置iの係数値がscanパス順で現れる最後の係数であることを意味する。last_significant_coeff_flag[i]が1となった時には、次に、coeff_absolute_value_minus_1をscanの逆順で復号し、同様に、その次coeff_signをscanの逆順で復号する。coeff_absolute_value_minus_1はUCoff=14のunary/zero-order Exp-Golomb (UEG0) binarizationを用いて復号される。動きベクトルの絶対値復号の場合と同様に、Exp-Golomb suffixはDecode_eq_prob処理を用いて復号される。   9.2.1.7 Decoding flow and binarization of transform coefficients Decoding of transform coefficients consists of three stages. When it is known that there is a coefficient value by coded_block_pattern at the Macroblock level, coded_block_flag for each block is decoded, but when coded_block_flag is 0, subsequent information for the block is not decoded. If coded_block_flag! = 0, decode significant_coeff_flag [i] for each scan position i except the last position of scan. If significant_coeff_flag [i] is 1, then last_significant_coeff_flag [i] is decoded. The fact that last_significant_coeff_flag [i] is 1 means that the coefficient value at the scan position i is the last coefficient that appears in the scan pass order. When last_significant_coeff_flag [i] becomes 1, next, coeff_absolute_value_minus_1 is decoded in the reverse order of scan, and similarly, the next coeff_sign is decoded in the reverse order of scan. coeff_absolute_value_minus_1 is decoded using unary / zero-order Exp-Golomb (UEG0) binarization with UCoff = 14. As in the case of the absolute value decoding of the motion vector, the Exp-Golomb suffix is decoded using the Decode_eq_prob process.

9.2.1.8 Decoding of sign information related to motion vector data and transform coefficients
動きベクトルの符号情報sign_mvd_compと係数値の符号情報coeff_signは以下のように復号される。最初に9.2.4.3.5節で規定されるDecode_eq_prob処理を行って得られたsign_indを用い、符号情報sign_infoをsign_info = ((sign_ind = = 0) ? 1 : -1)によって得る。
9.2.1.8 Decoding of sign information related to motion vector data and transform coefficients
The motion vector code information sign_mvd_comp and the coefficient value code information coeff_sign are decoded as follows. First, using sign_ind obtained by performing the Decode_eq_prob process defined in section 9.2.4.3.5, sign information info _ ((sign_ind = = 0)? 1: -1) is obtained.

9.2.1.9 Decoding of macroblock skip flag and end-of-slice flag
mb_skip_flagの復号は以下のように行われる。最初に9.2.2.2節で規定されたcontext modelを用いmb_skip_flag_decodedを復号する。次にmb_skip_flagをmb_skip_flag_decodedを反転する(i.e., mb_skip_flag = mb_skip_flag_decoded ^ 0x01)ことによって得る。
9.2.1.9 Decoding of macroblock skip flag and end-of-slice flag
Decoding of mb_skip_flag is performed as follows. First, mb_skip_flag_decoded is decoded using the context model specified in section 9.2.2.2. Next, mb_skip_flag is obtained by inverting mb_skip_flag_decoded (ie, mb_skip_flag = mb_skip_flag_decoded ^ 0x01).

end_of_slice_flagはState = 63, MPS = 0のfixed, non-adaptive modelによって復号される。この場合、以下に示す理由によって、9.2.4.2に示される確率予測を各復号ステップで行っているにも関わらず、fixed modeとなることが示される。end_of_slice valuesがずっと’0’であった場合、 MPS symbolの観測によってもState=63は確率予測の結果State=63のままとなる。そして、LPS値’1’がend_of_slice_flagの値として復号された場合は、この時点でsliceの終わりに到達していることになるから以降の復号処理には影響しない。以上のような理由でState = 63, MPS = 0に設定することにより、fixed, non-adaptive modelが実現される。   end_of_slice_flag is decoded by a fixed, non-adaptive model with State = 63 and MPS = 0. In this case, for the reason described below, it is indicated that the fixed mode is set even though the probability prediction shown in 9.2.4.2 is performed in each decoding step. When end_of_slice values is always “0”, State = 63 remains as State = 63 as a result of probability prediction even by observation of MPS symbol. When the LPS value “1” is decoded as the value of end_of_slice_flag, it means that the end of the slice has been reached at this point, and the subsequent decoding process is not affected. For these reasons, a fixed, non-adaptive model is realized by setting State = 63 and MPS = 0.

9.2.2 Context definition and assignment
それぞれのbin numberに対して、それまでに復号されたsymbol等を含む諸条件によって決まるcontext variableが定義される。Context variableの値は特定のbin numberに対するcontext modelを定める。それぞれのbin number : bin_num に対して複数のcontext labelが定めらる場合もあるが、1つだけの場合もある。
9.2.2 Context definition and assignment
For each bin number, a context variable is defined that depends on various conditions including the symbol decoded so far. The value of Context variable defines the context model for a specific bin number. There may be multiple context labels for each bin number: bin_num, but there may be only one.

この節ではsyntax elementを符号化する為の一般的なcontext variableの算出法であるcontext templatesを定義し、syntax elementのそれぞれのbin numberに対応するcontext variableを規定する。まず、それぞのれsyntax elementの異なるbin numberに対して与えられるcontext variableを規定する為にcontext identifier: context_idを規定するが、これは、bin number k に対するcontext variableをcontext_id[k]として表すためのものである。このcontext_id[k]は、1≦k≦N (N=max_idx_ctx_id)の範囲で規定される。   This section defines context templates, which is a general method for calculating context variables for encoding syntax elements, and specifies context variables corresponding to each bin number of syntax elements. First, a context identifier: context_id is specified to specify the context variable given to each bin number with a different syntax element. This is because the context variable for bin number k is expressed as context_id [k]. belongs to. This context_id [k] is defined in the range of 1 ≦ k ≦ N (N = max_idx_ctx_id).

Table 9-23にそれぞれのsyntax elementのカテゴリ毎のcontext identifierの概要を示す。   Table 9-23 shows the outline of the context identifier for each category of each syntax element.

対応するcontext variableについてのより詳細な記述は以降の節において記述する。それぞれのcontext identifierはcontext labelの特定の範囲に対応する。macroblock typeの場合はI, SI, P, SP,B.のそれぞれについて別々のcontext identifierが存在しており、個別のcontext labelの範囲を持つが、context labelの範囲自体は重複している。   A more detailed description of the corresponding context variable is given in the following sections. Each context identifier corresponds to a specific range of context labels. In the case of macroblock type, there are separate context identifiers for each of I, SI, P, SP, and B. Each has a context label range, but the context label ranges themselves overlap.

変換係数のcontext identifierの場合、adaptive_block_size_transform_flag==1の時にはTable 12-12に示される追加のcontext label値を用いる。   In the case of the context identifier of the transform coefficient, an additional context label value shown in Table 12-12 is used when adaptive_block_size_transform_flag == 1.

Figure 2012200012
Figure 2012200012

9.2.2.1 Overview of assignment of context labels
Table 9-24, 9-25にcontext identifiersとそのcontext labelの範囲を示す。このcontext label(実際にはoffsetが加算されたものが参照label番号となる)とbin numberの関係によって、どのcontext variableがfixed modelを用い、どのcontext variableが複数のmodelを持つのかが分かる。
9.2.2.1 Overview of assignment of context labels
Tables 9-24 and 9-25 show the range of context identifiers and their context labels. From the relationship between the context label (actually the offset added to the reference label number) and the bin number, it can be understood which context variable uses a fixed model and which context variable has a plurality of models.

Table 9-24の特定のbin number bin_numに複数のcontext labelが割り振られているもの、また、Table 9-25におけるcontext_categoryに対して複数のcontext labelが与えられているものは、複数のmodelからの選択を行う。   Multiple context labels are assigned to specific bin number bin_num in Table 9-24, and multiple context labels are given to context_category in Table 9-25. Make a selection.

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

9.2.2.2 Context templates using two neighbouring symbols
一般的なcontext variableの設定方法を説明するためにFigure 9-2(図22)を用いる。当該block Cに対して隣接する左blockと上blockにおける同一syntax elementのsymbolまたはbinがA,Bとして図示されている。
9.2.2.2 Context templates using two neighbor symbols
Figure 9-2 (Figure 22) is used to explain a general context variable setting method. Symbols or bins of the same syntax element in the left block and the upper block adjacent to the block C are shown as A and B.

Contextを決める式の第一番目は以下の通りとなる。
ctx_var_spat = cond_term(A, B), (9-1)
cond_term(A, B) は隣接symbol A,Bとcontext variableの間の関係を表す関数である。
The first expression that determines Context is as follows.
ctx_var_spat = cond_term (A, B), (9-1)
cond_term (A, B) is a function representing the relationship between adjacent symbols A, B and context variable.

この他に、3つのテンプレートが以下のように定義される。
ctx_var_spat1 = cond_term(A) + cond_term( B), (9-2)
ctx_var_spat2 = cond_term(A) + 2*cond_term( B), (9-3)
ctx_var_spat3 = cond_term(A). (9-4)
Table 9-26 において2つの隣接symbolからのcontext variableの求め方を示す。
ctx_cbp4はTable 9-28に示される6つのblock type(Luma-DC, Luma-AC, Chroma-U-DC, Chroma-V-DC, Chroma-U-AC, Chroma-V-AC)によって決定される。
In addition to this, three templates are defined as follows.
ctx_var_spat1 = cond_term (A) + cond_term (B), (9-2)
ctx_var_spat2 = cond_term (A) + 2 * cond_term (B), (9-3)
ctx_var_spat3 = cond_term (A). (9-4)
Table 9-26 shows how to calculate the context variable from two adjacent symbols.
ctx_cbp4 is determined by the six block types shown in Table 9-28 (Luma-DC, Luma-AC, Chroma-U-DC, Chroma-V-DC, Chroma-U-AC, Chroma-V-AC) .

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

compは水平成分(h)または垂直性分(v)を意味し、A, BはFigure 9-2に示すような隣接blockを意味する。これら隣接blockは異なるmacroblock partitionに属する可能性がある為、以下のような隣接blockを特定する為の方法が規定されている。最初に4x4 blockの動きベクトルはoversampleされている、つまり、対応するblockがより粗くpartitioningされていた場合、quadtreeにおける親blockの動きベクトルを継承しているとみなす。逆に、当該block Cが隣接blockより粗くpartitioningされていた場合、隣接blockの左上のsub-blockの動きベクトルを対応動きベクトルとする。これらの処理によって隣接blockにおける対応する値を求めた後、(9-5)を用いてcontext variableを得る。   comp means horizontal component (h) or vertical component (v), and A and B mean adjacent blocks as shown in Figure 9-2. Since these adjacent blocks may belong to different macroblock partitions, the following method for specifying adjacent blocks is defined. Initially, the motion vector of the 4x4 block is oversampled, that is, if the corresponding block is partitioned more coarsely, it is considered that the motion vector of the parent block in the quadtree is inherited. Conversely, if the block C is partitioned more roughly than the adjacent block, the motion vector of the upper left sub-block of the adjacent block is set as the corresponding motion vector. After obtaining the corresponding value in the adjacent block by these processes, the context variable is obtained using (9-5).

9.2.2.3 Context templates using preceding bin values
(b1, …, bN) がsymbol Cのbinarizationに相当すると仮定した場合、Cのk番目のbinに対応するcontext variableは以下のように規定される。
ctx_var_bin[k] = cond_term(b1,…,bk-1), (9-6)
ただし、1<k≦Nとする。Table 9-27において、この種のcontext variableの与え方の一覧を示す。
9.2.2.3 Context templates using preceding bin values
Assuming that (b 1 ,…, b N ) corresponds to binarization of symbol C, the context variable corresponding to the k-th bin of C is defined as follows.
ctx_var_bin [k] = cond_term (b 1 ,…, b k-1 ), (9-6)
However, 1 <k ≦ N. Table 9-27 shows how to give this kind of context variable.

Figure 2012200012
9.2.2.4 Additional context definitions for information related to transform coefficients
変換係数の条件付けの為には、さらに3つの異なるcontext identifierが追加で用いられる。
Figure 2012200012
9.2.2.4 Additional context definitions for information related to transform coefficients
Three additional context identifiers are additionally used to condition transform coefficients.

これらのcontext identifierはTable 9-28で示されるcontext_categoryに依存して決まる。   These context identifiers depend on the context_category shown in Table 9-28.

Figure 2012200012
Figure 2012200012

adaptive_block_size_transform_flag==1の場合には12.5.2節で規定されるようなcontext categoryがさらに加わる。Context identifier ctx_sigとctx_lastはbinary値を持つSIG とLAST、及び、当該blockのscanning_posによって以下のように与えられる。   When adaptive_block_size_transform_flag == 1, a context category as defined in section 12.5.2 is added. Context identifiers ctx_sig and ctx_last are given as follows according to SIG and LAST having binary values and scanning_pos of the block.

ctx_sig[scanning_pos] = Map_sig( scanning_pos), (9-7)
ctx_last[scanning_pos] = Map_last(scanning_pos). (9-8)
(9-7) と (9-8) にあるMap_sigとMap_lastはblock typeに依存して変わる。
ctx_sig [scanning_pos] = Map_sig (scanning_pos), (9-7)
ctx_last [scanning_pos] = Map_last (scanning_pos). (9-8)
Map_sig and Map_last in (9-7) and (9-8) vary depending on the block type.

まず、context categoryが0-4の場合、それぞれ以下のような恒等写像となる。   First, when the context category is 0-4, the identity maps are as follows.

Map_sig(scanning_pos)=Map_last(scanning_pos) = scanning_pos, if context_category =0,…,4,
scanning_pos はzig-zag scanにおけるscan位置を示す。adaptive_block_size_transform_flag==1の場合のみに使われるcontext category=5 〜7 に対するMap_sig, Map_lastは12.5.2節で与えられる。
Map_sig (scanning_pos) = Map_last (scanning_pos) = scanning_pos, if context_category = 0,…, 4,
scanning_pos indicates the scan position in zig-zag scan. Map_sig and Map_last for context category = 5 to 7 used only when adaptive_block_size_transform_flag == 1 are given in section 12.5.2.

変換係数-1を表すabs_level_m1の復号の際にはctx_abs_levelがcontext identifierとして用いられる。ctx_abs_levelはctx_abs_level[1] とctx_abs_level[2]の2つのcontext variableの値を用いて以下のように求められる。
ctx_abs_lev[1] = ((num_decod_abs_lev_gt1!=0) ? 4: min(3, num_decod_abs_lev_eq1)), (9-9)
ctx_abs_lev[2] = min(4, num_decod_abs_lev_gt1), (9-10)
num_decod_abs_lev_eq1は係数値が1の係数の数を表し、num_decod_abs_lev_gt1は係数値が1より大きな係数の数を表す。Context variable ctx_abs_level[k], k=1,2 を算出する際には当該blockの変換係数のみが必要であり、他の情報は必要とされない。
Ctx_abs_level is used as a context identifier when abs_level_m1 representing transform coefficient-1 is decoded. ctx_abs_level is obtained as follows using the values of two context variables ctx_abs_level [1] and ctx_abs_level [2].
ctx_abs_lev [1] = ((num_decod_abs_lev_gt1! = 0)? 4: min (3, num_decod_abs_lev_eq1)), (9-9)
ctx_abs_lev [2] = min (4, num_decod_abs_lev_gt1), (9-10)
num_decod_abs_lev_eq1 represents the number of coefficients having a coefficient value of 1, and num_decod_abs_lev_gt1 represents the number of coefficients having a coefficient value greater than 1. When calculating Context variable ctx_abs_level [k], k = 1, 2, only the conversion coefficient of the block is required, and no other information is required.

9.2.3 Initialisation of context models
9.2.3.1 Initialisation procedure
Sliceの先頭でstate numberと9.2.4.2で定義されるMPSに対応するシンボルが初期化される。それら2つを合わせて初期状態と呼ぶが、実際の初期状態は量子化パラメータQPによって以下のように定められる。
9.2.3 Initialization of context models
9.2.3.1 Initialization procedure
The symbol corresponding to the MPS defined in state number and 9.2.4.2 is initialized at the beginning of Slice. These two are collectively referred to as the initial state, but the actual initial state is determined by the quantization parameter QP as follows.

pre_stateをpre_state = (( m*(QP-12))>>4) + nによって算出する。
pre_state を P, B sliceの場合[0,101] に、I slice の場合[27,74]にクリップする。処理は以下の通り。
pre_state is calculated by pre_state = ((m * (QP-12)) >> 4) + n.
If pre_state is P, B slice, clip to [0,101], if I slice, clip to [27,74]. Processing is as follows.

pre_state = min (101, max(0,pre_state)) for P- and B-slices and
pre_state = min (74, max(27,pre_state)) for I-slices;
pre_state から {state, MPS} へのmappingを以下の式に従って行う:
if (pre_state <= 50) then {state = 50-pre_state, MPS = 0} else {state = pre_state-51, MPS = 1}
pre_state = min (101, max (0, pre_state)) for P- and B-slices and
pre_state = min (74, max (27, pre_state)) for I-slices;
Perform mapping from pre_state to {state, MPS} according to the following formula:
if (pre_state <= 50) then {state = 50-pre_state, MPS = 0} else {state = pre_state-51, MPS = 1}

9.2.3.2 Initialisation procedure
Tables 9-29−9-34に全てのsyntax elementに対する初期化parameterを示す。初期状態は9.2.3.1節に述べた方法によって得られる。
9.2.3.2 Initialization procedure
Tables 9-29-9-34 show initialization parameters for all syntax elements. The initial state is obtained by the method described in Section 9.2.3.1.

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

9.2.4 Table-based arithmetic coding
注- 算術符号は区間分割を行うことによって符号化を行う。与えられた’0’と’1’の予測確率p(‘0’)とp(‘1’)=1-p(‘0’)を用い、最初に与えられた区間Rはp(‘0’)´RとR-p(‘0’)´R,にそれぞれ分割される。受け取ったbinary値によって、どちらの区間を次の分割対象区間とするのかが決められる。Binary値は’0’,’1’よりも優勢シンボル(MPS)であるか劣勢シンボル(LPS)であるかが重要であり、それぞれのcontext model CTX はLPSの確率pLPSとMPSの種別(‘0’または’1’)によって決定される。
9.2.4 Table-based arithmetic coding
Note-Arithmetic codes are encoded by segmentation. Using the given '0' and '1' prediction probabilities p ('0') and p ('1') = 1-p ('0'), the first interval R given is p ('0 ') ´R and Rp (' 0 ') ´R, respectively. Depending on the received binary value, it is determined which section is the next division target section. Binary value is more dominant symbol (MPS) or inferior symbol (LPS) than '0', '1', each context model CTX has LPS probability p LPS and MPS type (' 0 'or' 1 ').

このRecommendationもしくはInternational Standardにおける算術符号エンジンは以下に示すような3つの特徴を持つ。   The arithmetic code engine in this Recommendation or International Standard has the following three features.

確率予測は64の状態を持つstate machineによって行われる。State machineは64の異なるLPSの発生確率(pLPS)に対応する状態{Pk | 0≦k<64}を表を元にして遷移する。 Probability prediction is performed by a state machine with 64 states. The state machine makes a transition based on the table {P k | 0 ≦ k <64} corresponding to 64 different LPS occurrence probabilities (p LPS ).

分割区間を表す変数 R は新しい分割区間を計算する前に4つの値{Q1,…,Q4}に量子化される。あらかじめQi´ Pkに対応する64x4種類の値を計算して保持しておくことでR´ Pkの乗算処理を省くことができる。
‘0’と’1’の発生確率がほぼ等しいとみなせるsyntax elementについては別の復号処理が適用される。
The variable R representing the division interval is quantized to four values {Q 1 ,..., Q 4 } before calculating a new division interval. By calculating and storing 64 × 4 types of values corresponding to Q i ′ P k in advance, the multiplication processing of R ′ P k can be omitted.
Another decoding process is applied to a syntax element that can be considered that the occurrence probabilities of “0” and “1” are substantially equal.

9.2.4.2 Probability estimation
確率予測はLPSの確率{Pk | 0≦k<64}と遷移法則からなるfinite-state machine (FSM)によって行われる。Table 9-35に与えられたMPSまたはLPSに対する遷移法則を示す。任意のStateからMPSまたはLPSを符号化することによってNext_State_MPS(State)またはNext_State_LPS(State)に遷移する。
9.2.4.2 Probability estimation
Probability prediction is performed by a finite-state machine (FSM) consisting of LPS probabilities {P k | 0 ≦ k <64} and transition laws. Table 9-35 shows the transition law for MPS or LPS given. The MPS or LPS is encoded from an arbitrary State to transit to Next_State_MPS (State) or Next_State_LPS (State).

状態番号はState=0がLPSの発生確率=0.5に対応し、以下、番号が増えるごとにLPSの発生確率が低くなっているものに対応する。I sliceに対しては状態を最初の24個に制限するため、Table 9-35ではその為に用いられるNext_State_MPS_INTRAがある。尚、Next_State_MPS_INTRAとNext_State_MPSが違うのは一箇所だけである。   The state numbers correspond to those in which State = 0 corresponds to the occurrence probability of LPS = 0.5, and the occurrence probability of LPS decreases as the number increases. For I slice, since the state is limited to the first 24, Table 9-35 has Next_State_MPS_INTRA used for that purpose. Note that Next_State_MPS_INTRA and Next_State_MPS differ only in one place.

I sliceの復号の際23より大きな状態への遷移を避けるため、Next_State_MPS(35)=
23を用いる。詳細はTable 9-35を参照のこと。
1シンボルの符号化/復号を行うたびにStateが変わり、その結果確率が更新される。
if(decision = = MPS)
State←Next_State_MPS_INTRA(State)
else
State←Next_State_LPS(State)
and all other
slice types
if(decision = = MPS)
State←Next_State_MPS(State)
else
State← Next_State_LPS(State).
LPSの発生確率が0.5、つまり、State=0の時にさらにLPSが得られた場合、LPSとMPSに対応するシンボル’0’,’1’の交換が行われる。
Next_State_MPS (35) = to avoid transition to a state greater than 23 when decoding I slice
Use 23. See Table 9-35 for details.
Each time one symbol is encoded / decoded, State changes, and as a result, the probability is updated.
if (decision = = MPS)
State ← Next_State_MPS_INTRA (State)
else
State ← Next_State_LPS (State)
and all other
slice types
if (decision = = MPS)
State ← Next_State_MPS (State)
else
State ← Next_State_LPS (State).
When the LPS occurrence probability is 0.5, that is, when another LPS is obtained when State = 0, symbols “0” and “1” corresponding to LPS and MPS are exchanged.

Figure 2012200012
Figure 2012200012

Figure 2012200012
Figure 2012200012

9.2.4.3 Description of the arithmetic decoding engine
算術符号の復号器の状態は、範囲Rの分割区間中を指す値 V によって表される。Figure 9-3に復号処理全体を示す。最初に9.2.4.3.1で規定されるInitDecoder処理を行うことによりVとRが初期化される。1回のdecisionは以下のような2ステップの処理で行われる。最初にcontext model CTXが9.2.2節で示される規則によって生成され、次に与えられたCTXに従って9.2.4.3.2節で規定されるDecode(CTX)が適用されてsymbol S が得られる。
9.2.4.3 Description of the arithmetic decoding engine
The state of the arithmetic code decoder is represented by the value V pointing into the subdivision of range R. Figure 9-3 shows the entire decryption process. First, V and R are initialized by performing the InitDecoder process specified in 9.2.4.3.1. One decision is performed in the following two steps. First, a context model CTX is generated according to the rules shown in Section 9.2.2, and then the Decode (CTX) specified in Section 9.2.4.3.2 is applied according to the given CTX to obtain symbol S.

9.2.4.3.1 Initialisation of the decoding engine
Figure 9-4に示される初期化処理において、Vには9.2.4.3.4節で示されるGetByte処理を用いて得られる2 byteの値が設定され、Rには0x8000が設定される。
9.2.4.3.1 Initialization of the decoding engine
In the initialization process shown in Figure 9-4, V is set to a 2-byte value obtained by using the GetByte process shown in 9.2.4.3.4, and R is set to 0x8000.

9.2.4.3.2 Decoding a decision
Figure 9-5は1つのdecisionを行う処理flowchartを表す。最初のステップではLPSとMPSに対応する区間RLPS とRMPSが以下のように予測される。
与えられた区間の幅Rは、以下に示すように最初にQという値に量子化される。
Q=(R-0x4001)>>12, (9-11)
このQとStateを用いてRTABをindexingすることで以下のようにRLPSが得られる。
RLPS=RTAB[State][Q]. (9-12)
Table 9-36 にRTABを16bitで表現したものを示す。RTABは実際には8bitの精度で与えられているが、6bitの左シフトが施され形で与えられている。これは16bitアーキテクチャでの実装を容易にするためである。
9.2.4.3.2 Decoding a decision
Figure 9-5 shows a process flowchart that performs one decision. In the first step, sections R LPS and R MPS corresponding to LPS and MPS are predicted as follows.
The width R of a given interval is first quantized to a value of Q as shown below.
Q = (R-0x4001) >> 12, (9-11)
By indexing RTAB using Q and State, R LPS can be obtained as follows.
R LPS = RTAB [State] [Q]. (9-12)
Table 9-36 shows the 16-bit representation of RTAB. RTAB is actually given with 8bit precision, but is given with 6bit left shift. This is to facilitate implementation on a 16-bit architecture.

次に、VとMPS区間RMPSとの比較が行われ、VがRMPS 以上であった場合LPSが復号される。同時にVからはRMPSが減ぜられ、RにはRLPSが入る。VがRMPS 未満であった場合、MPSが復号され、RにはRMPSが入る。それぞれのdecoding decisionによって、9.2.4.2節で規定される確率の更新が行われる。新しい区間値Rによっては、9.2.4.3.3節で規定されるrenormalizationが適用される。 Next, V is compared with the MPS interval R MPS, and if V is equal to or greater than R MPS , the LPS is decoded. At the same time, R MPS is reduced from V, and R LPS is inserted into R. If V is less than R MPS , MPS is decoded and R MPS is stored in R. With each decoding decision, the probability specified in 9.2.4.2 is updated. Depending on the new interval value R, the renormalization specified in 9.2.4.3.3 applies.

9.2.4.3.3 Renormalization in the decoding engine (RenormD)
R enormalization処理をFigure 9-6に示す。区間値Rと0x4000の比較が最初に行われるが、Rが0x4000よりも大きかった場合renormalizationは行われず、処理は終了する。そうでない場合、renormalization loopに入る。このloop内ではRの値が2倍、つまり、1bit左にshiftされ、bit-count BGは1減らされる。BG<0となった場合はGetByteによって新たなデータが読み込まれ、Bの最下位ビットがVに設定される。
9.2.4.3.3 Renormalization in the decoding engine (RenormD)
Figure 9-6 shows the renormalization process. The comparison between the interval value R and 0x4000 is performed first, but if R is greater than 0x4000, renormalization is not performed and the process ends. Otherwise, the renormalization loop is entered. Within this loop, the value of R is doubled, that is, shifted to the left by 1 bit, and bit-count BG is decremented by 1. When BG <0, new data is read by GetByte and the least significant bit of B is set to V.

9.2.4.3.4 Input of compressed bytes (GetByte)
Figure 9-7に圧縮データの入力処理を示す。初期化時またはrenormalizationでbit-counter BGが負の値になった場合にこの処理が適用される。最初にbitstream Cから新しいbyteが読み込まれる。次に、bitstream中の位置を示すCLの値が1増やされ、bit-counterの値が7に設定される。
9.2.4.3.4 Input of compressed bytes (GetByte)
Figure 9-7 shows the compressed data input process. This process is applied when the bit-counter BG becomes negative during initialization or renormalization. First, a new byte is read from bitstream C. Next, the value of CL indicating the position in the bitstream is incremented by 1, and the value of bit-counter is set to 7.

9.2.4.3.5 Decoder bypass for decisions with uniform pdf (Decode_eq_prob)
この処理は動きベクトルの符号、及び、変換係数の符号のように符号化symbolが等しい発生確率を持っているとみなされる場合に適用される特別な処理である。そのような場合、symbol Sを復号し、区間を分割するという通常の処理は一回の比較(V>=Rhalf?)のみで行える。RenormalizationはFigure 9-8で示されたものと似ているが以下の2点が異なる。第1点目はrescaling処理R←(R<<1)が不要なことであり、2点目は、最初の比較(R<=0x4000?)が省けることである。
9.2.4.3.5 Decoder bypass for decisions with uniform pdf (Decode_eq_prob)
This process is a special process applied when it is considered that the encoded symbols have the same probability of occurrence, such as the sign of the motion vector and the sign of the transform coefficient. In such a case, the normal process of decoding symbol S and dividing the section can be performed only with one comparison (V> = R half ?). Renormalization is similar to that shown in Figure 9-8, except for the following two points. The first point is that rescaling processing R ← (R << 1) is unnecessary, and the second point is that the first comparison (R <= 0x4000?) Can be omitted.

Final Committee Draft ISO/IEC 14496-10:2002(第9.2節)Final Committee Draft ISO / IEC 14496-10: 2002 (Section 9.2)

ところで、画像情報符号化装置100において、1ピクチャを符号化する際に、その符号化単位を、1ピクチャ、又は、スライス、又は、マクロブロック、又はブロックのいずれとして考えた場合でも、その符号化単位に含まれ、図11のbinarization器131に入力されるシンボルの数は固定ではなく、入力される画像信号や符号化条件によって異なるため、不定である。   By the way, when encoding one picture in the image information encoding apparatus 100, the encoding unit is encoded regardless of whether the encoding unit is considered as one picture, slice, macroblock, or block. The number of symbols included in the unit and input to the binarization unit 131 in FIG. 11 is not fixed, and varies depending on the input image signal and encoding conditions, and is undefined.

また、binarization器131に入力された1シンボルに対して出力される2値データ列の長さは、JVT FCD第9.2.1節の引用でも示した様に、一定の長さにはならない。例えば、JVT FCD第9.2.1.5節 Table9−20にあるように、I sliceにおけるmb_type1Symbolに対する2値データ列の長さは、最小で1(Intra_4x4時)、最大で6となる。このように、1つのSymbolに対するbinazization器131の出力2値データ長も不定である。   Further, the length of the binary data string output for one symbol input to the binarization unit 131 is not a fixed length as shown in the quotation in JVT FCD section 9.2.1. . For example, as described in JVT FCD Section 9.2.1.5 Table 9-20, the length of the binary data string for mb_type1 Symbol in I slice is 1 at the minimum (at Intra_4x4) and 6 at the maximum. Thus, the output binary data length of the binazization unit 131 for one Symbol is also undefined.

このことから、入力画像信号のある符号化単位に含まれるシンボルに対して、binarization器131で出力される2値データの数は固定ではなく不定となり、入力データと符号化条件によっては、非常に大量の2値データがbinarization器131から出力される可能性がある。   For this reason, the number of binary data output by the binarization unit 131 is not fixed with respect to the symbols included in a certain encoding unit of the input image signal, and is very indefinite depending on the input data and encoding conditions. A large amount of binary data may be output from the binarization unit 131.

ここで、binarization器131から出力された2値データは図11のCABAC符号化器133に入力されることになるが、CABAC符号化器133は、入力された1個の2値データを処理するのに実装上1クロック以上の処理時間が必要であるため、CABAC符号化器133に入力される2値データの個数が膨大であると、それだけ処理時間が必要になり、実装した際に、膨大な処理時間がかかることになる。また、上記で述べたように、CABAC符号化器133に入力される2値データの数は不定であるため、処理時間の最悪値を見積もることが困難になってくる。   Here, the binary data output from the binarization unit 131 is input to the CABAC encoder 133 in FIG. 11, and the CABAC encoder 133 processes one input binary data. However, since a processing time of 1 clock or more is necessary for mounting, if the number of binary data input to the CABAC encoder 133 is enormous, the processing time is so much required. Processing time. As described above, since the number of binary data input to the CABAC encoder 133 is indefinite, it becomes difficult to estimate the worst value of the processing time.

このため、画像情報符号化装置100において、実時間処理やある一定の処理速度を保証する必要がある場合には、CABAC符号化器133に入力される2値データの数が膨大であるか、または、不定であると、その保証が不可能となる。   Therefore, in the image information encoding device 100, when it is necessary to guarantee real-time processing or a certain processing speed, whether the number of binary data input to the CABAC encoder 133 is enormous, Or, if it is indefinite, the guarantee is impossible.

また、binarization器131に入力された1シンボルに対して出力された2値データ列に対するCABAC符号化器133の出力ビット長は不定である。これはCABACが入力2値データの発生確率に応じて、出力ビット長を可変にコントロールするからである。このため、CABAC符号化器133に入力された1つの2値データは、その発生確率によって、1ビット以下のビットストリームデータともなり得るし、数ビット以上のビットストリームデータともなり得る。   Further, the output bit length of the CABAC encoder 133 for the binary data string output for one symbol input to the binarization unit 131 is indefinite. This is because CABAC variably controls the output bit length according to the occurrence probability of input binary data. Therefore, one binary data input to the CABAC encoder 133 can be bit stream data of 1 bit or less or bit stream data of several bits or more depending on the occurrence probability.

ここで、CABAC符号化器133は、出力される1個のビットデータを処理するのに実装上1クロック以上の処理時間が必要であるため、CABAC符号化器133から出力されるビットデータが膨大であると、それだけ処理時間が必要になり、実装した際に、膨大な処理時間がかかることになる。また、上記で述べた様に、CABAC符号化器133から出力されるビットデータの数は不定であるため、処理時間の最悪値を見積もることが困難になってくる。   Here, since the CABAC encoder 133 requires a processing time of one clock or more in processing to process one output bit data, the bit data output from the CABAC encoder 133 is enormous. If it is, it will require processing time, and when it is mounted, it will take enormous processing time. Further, as described above, since the number of bit data output from the CABAC encoder 133 is indefinite, it becomes difficult to estimate the worst value of the processing time.

このため、画像情報符号化装置100において、実時間処理やある一定の処理時間を保証する必要がある場合には、CABAC符号化器133から出力されるビットデータの数が膨大であるか、または、不定であると、その保証が不可能となる。   Therefore, in the image information encoding apparatus 100, when it is necessary to guarantee real-time processing or a certain processing time, the number of bit data output from the CABAC encoder 133 is enormous, or If it is indefinite, it cannot be guaranteed.

以上のように、CABAC符号化器133へ入出力される2値データやビットデータの個数が、1ピクチャや、ピクチャ内のスライスや、マクロブロックやブロックといった符号化単位内において、不定であり、その数が膨大になり得るというのは、実装上、その符号化単位で、ある一定の処理時間を保証するのを妨げることになる。   As described above, the number of binary data and bit data input / output to / from the CABAC encoder 133 is indefinite within one picture, a slice in a picture, a coding unit such as a macroblock, and a block. The fact that the number can become enormous hinders guaranteeing a certain processing time in the coding unit in terms of implementation.

続いて、画像情報復号化装置120において、1ピクチャを符号化する際に、その符号化単位を、1ピクチャ、又は、スライス、又は、マクロブロック、又はブロックのいずれとして考えた場合でも、その符号化単位に含まれ、図14のCABAC復号化器161に入力されるビットストリームのビット数は固定ではなく、入力されるビットストリームによって異なるため、不定である。   Subsequently, when one picture is encoded in the image information decoding apparatus 120, the encoding unit can be used regardless of whether the encoding unit is considered as one picture, a slice, a macroblock, or a block. The number of bits of the bit stream included in the encoding unit and input to the CABAC decoder 161 in FIG.

ここで、CABAC復号化器161は、入力される1個のビットデータを処理するのに実装上1クロック以上の処理時間が必要であるため、CABAC復号化器161へ入力されるビットデータが膨大であると、それだけ処理時間が必要になり、実装した際に、膨大な処理時間がかかることになる。また、上記で述べた様に、CABAC復号化器161へ入力されるビットデータの数は不定であるため、処理速度の最悪値を見積もることが困難になってくる。   Here, since the CABAC decoder 161 requires a processing time of one clock or more in processing to process one input bit data, the bit data input to the CABAC decoder 161 is enormous. If it is, it will require processing time, and when it is mounted, it will take enormous processing time. Further, as described above, since the number of bit data input to the CABAC decoder 161 is indefinite, it becomes difficult to estimate the worst value of the processing speed.

このため、画像情報復号化装置120において、実時間処理やある一定の処理時間を保証する必要がある場合には、CABAC復号化器161へ入力されるビットデータの数が膨大であるか、または、不定であると、その保証が不可能となる。特に、画像情報復号化装置120は、画像情報符号化装置100よりも画像情報をリアルタイムで復号化、表示を行わなければならないという要求が高いため、実時間処理を保証できないことは問題となる。   For this reason, in the image information decoding apparatus 120, when it is necessary to guarantee real-time processing or a certain processing time, the number of bit data input to the CABAC decoder 161 is enormous, or If it is indefinite, it cannot be guaranteed. In particular, the image information decoding apparatus 120 is more demanding than the image information encoding apparatus 100 to decode and display image information in real time, so that real-time processing cannot be guaranteed.

かかる課題を解決するため本発明は、非圧縮データを含むビットストリームを復号処理する復号装置において、ビットストリームに対してコンテキストを用いた算術復号処理を行う復号手段と、符号化処理する際の単位であるブロックが非圧縮データのブロックである場合に、非圧縮データのブロックに対してコンテキストを用いた算術符号化処理を行う直前のコンテキスト値を保持して、コンテキストを用いた算術復号処理の終端処理を行うように、復号手段を制御する制御手段と、を有する。
また本発明は、非圧縮データを含むビットストリームを復号処理する復号方法において、ビットストリームに対してコンテキストを用いた算術復号処理を行う復号ステップと、符号化処理する際の単位であるブロックが非圧縮データのブロックである場合に、非圧縮データのブロックに対してコンテキストを用いた算術符号化処理を行う直前のコンテキスト値を保持して、コンテキストを用いた算術復号処理の終端処理を行うように、復号ステップにおける復号処理を制御する制御ステップと、を有する。
In order to solve this problem, the present invention provides a decoding device for decoding a bitstream including uncompressed data, a decoding means for performing arithmetic decoding processing using a context on the bitstream, and a unit for performing the encoding processing If the block is a block of uncompressed data, the context value immediately before performing the arithmetic coding process using the context for the uncompressed data block is retained, and the end of the arithmetic decoding process using the context Control means for controlling the decoding means so as to perform processing.
Further, the present invention provides a decoding method for decoding a bitstream including uncompressed data, wherein a decoding step for performing arithmetic decoding processing using a context on the bitstream and a block that is a unit for the encoding processing are not included. When it is a block of compressed data, the context value immediately before performing the arithmetic coding process using the context for the non-compressed data block is retained, and the arithmetic decoding process using the context is terminated. And a control step for controlling the decoding process in the decoding step.
.

非圧縮データを含むビットストリームに対してコンテキストを用いた算術復号処理を行う際、非圧縮データのブロックに対してコンテキストを用いた算術符号化処理を行う直前のコンテキスト値を保持して、コンテキストを用いた算術復号処理の終端処理を行うことにより、一定の処理時間を保証することができる。   When performing arithmetic decoding using context on a bitstream containing uncompressed data, the context value immediately before performing arithmetic coding using context on the block of uncompressed data is retained, and the context is A certain processing time can be guaranteed by performing the termination process of the used arithmetic decoding process.

本発明のおける画像情報符号化装置の構成例(装置10)Configuration example of image information encoding device according to the present invention (device 10) 本発明のおける画像情報符号化装置の構成例(装置30)Configuration example of image information encoding apparatus according to the present invention (apparatus 30) 本発明のおける画像情報符号化装置の構成例(装置40)Configuration example of image information encoding apparatus according to the present invention (apparatus 40) 本発明のおける画像情報符号化装置の構成例(装置50)Configuration example of image information encoding apparatus according to the present invention (apparatus 50) 本発明のおける画像情報符号化装置の構成例(装置60)Configuration example of image information encoding apparatus according to the present invention (apparatus 60) 本発明のおける画像情報復号化装置の構成例(装置80)Configuration example of image information decoding apparatus according to the present invention (apparatus 80) 本発明のおけるマクロブロック処理部の構成例Configuration example of macroblock processing unit in the present invention 従来の画像情報符号化装置の構成例Configuration example of conventional image information encoding device 従来の画像情報復号化装置の構成例Configuration example of conventional image information decoding apparatus JVT(従来)における可変長符号化器の構成例Configuration example of variable length encoder in JVT (conventional) JVT(従来)におけるCABAC符号化器の構成例Configuration example of CABAC encoder in JVT (conventional) JVT(従来)におけるCAVLC符号化器の構成例Configuration example of CAVLC encoder in JVT (conventional) JVT(従来)における可変長復号化器の構成例Configuration example of variable length decoder in JVT (conventional) JVT(従来)におけるCABAC復号化器の構成例Configuration example of CABAC decoder in JVT (conventional) JVT(従来)におけるCAVLC復号化器の構成例Configuration example of CAVLC decoder in JVT (conventional) Overview of the Decoding ProcessOverview of the Decoding Process Flowchart of initialisation of the decoding engineFlowchart of initialisation of the decoding engine Flowchart for decoding a decisionFlowchart for decoding a decision Flowchart of renormalizationFlowchart of renormalization Flowchart for Input of Compressed BytesFlowchart for Input of Compressed Bytes Flowchart of decoding bypassFlowchart of decoding bypass Illustration of the generic context template using two neighbouringsymbols A and B for conditional coding of a current symbol CIllustration of the generic context template using two neighbors symbols A and B for conditional coding of a current symbol C

以下、本発明の実施例を図面を参照しながら説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1における装置10による実施例の説明
本発明における画像符号化装置の実施例を図1に示す。図1の装置10では符号化されるべき画像信号が入力され、符号化されたビットストリームが出力される。装置10は入力バッファ11と変換処理部12とCABAC処理部13と制限監視器14と出力バッファ15により構成される。入力バッファ11では、入力画像をマクロブロック単位に分割し出力をし、後段においてマクロブロックの処理が終わる毎に、次のマクロブロックを出力する。変換処理部12では、入力されたマクロブロック画像に対して処理を行い、ヘッダ情報や量子化された係数情報をCABAC処理部13に出力する。具体的には、パラメータ設定器16により、マクロブロックのモード情報や動きベクトル情報、量子化パラメータ等のヘッダ情報を設定し、その値(シンボル)を予測器17、DCT器18、量子化器19、及び、CABAC処理部13に出力する。ここで、パラメータ設定器16は、マクロブロックのヘッダ情報のみならず、スライスやピクチャのヘッダ情報も設定し、出力することを可能とするので、ここでは、全てを総称してヘッダ情報と記載する。なお、予測器17では動き補償が、DCT器18ではDCT変換が、量子化器19では量子化処理が、それぞれ、前段からの入力信号に対して、パラメータ設定器16からの入力信号を参照して適用される。
Description of Embodiment by Apparatus 10 in FIG. 1 An embodiment of an image encoding apparatus in the present invention is shown in FIG. In the apparatus 10 of FIG. 1, an image signal to be encoded is input, and an encoded bit stream is output. The apparatus 10 includes an input buffer 11, a conversion processing unit 12, a CABAC processing unit 13, a limit monitor 14, and an output buffer 15. The input buffer 11 divides the input image into units of macroblocks and outputs them, and outputs the next macroblock every time the macroblock processing is completed in the subsequent stage. The conversion processing unit 12 performs processing on the input macroblock image, and outputs header information and quantized coefficient information to the CABAC processing unit 13. Specifically, macro parameter mode information, motion vector information, and header information such as quantization parameters are set by the parameter setting unit 16, and their values (symbols) are set in the predictor 17, DCT unit 18, and quantizer 19. And output to the CABAC processing unit 13. Here, since the parameter setting unit 16 can set and output not only macroblock header information but also slice and picture header information, all are collectively referred to as header information here. . The predictor 17 refers to the input signal from the parameter setting unit 16 for the input signal from the previous stage, the motion compensation for the DCT unit 18, the DCT transform for the DCT unit 18, and the quantization process for the quantizer 19. Applied.

CABAC処理部13には、ヘッダ情報と量子化された係数情報がシンボルデータとして入力され、算術符号化が適用され、ビットデータとして出力される。具体的には、入力されたシンボルデータをbinarization器20によって2値データ列に変換し、その2値データをContext演算器21からのContext情報をもとに、CABAC符号化器22でエントロピー符号化する。Context演算器21では、binarization器20に入力されるシンボルデータと、binarization器20から出力される2値データをもとにContextを更新し、また、そのContext情報をCABAC符号化部22に出力する。   The CABAC processing unit 13 receives header information and quantized coefficient information as symbol data, is applied with arithmetic coding, and is output as bit data. Specifically, the input symbol data is converted into a binary data string by the binarization unit 20, and the binary data is entropy-encoded by the CABAC encoder 22 based on the context information from the context calculator 21. To do. The Context calculator 21 updates the Context based on the symbol data input to the binarization unit 20 and the binary data output from the binarization unit 20, and outputs the Context information to the CABAC encoding unit 22. .

制限監視器14は、CABAC符号化器22に入力される2値データの個数のカウンタと出力されるビットデータの個数のカウンタ(ビットカウンタ25)をそれぞれ独立に持ち、CABAC符号化器22へ2値データが入力されるたびに前者のカウンタを1つずつ増加させ、CABAC符号化器22からビットデータが出力されるたびに後者のカウンタを1つずつ増加させる。このカウンタはそれぞれ、マクロブロックの先頭の処理を開始するたびに0にリセットされる。これにより、各マクロブロックにおける、CABAC符号化器22の入力データと出力データのそれぞれの個数をカウントすることが可能となる。   The limit monitor 14 has a counter for the number of binary data input to the CABAC encoder 22 and a counter for the number of bit data (bit counter 25) to be output to the CABAC encoder 22. Each time value data is input, the former counter is incremented by one, and each time bit data is output from the CABAC encoder 22, the latter counter is incremented by one. Each of these counters is reset to 0 each time processing at the head of the macroblock is started. This makes it possible to count the number of input data and output data of the CABAC encoder 22 in each macroblock.

この制限監視器14では、これらカウンタのうちのどちらか一方でも、あらかじめ設定された閾値を超えてしまった場合、その符号化データは無効であることを示す信号(以下、再符号化信号)を、出力バッファ15とContext演算器21とパラメータ設定器16に対して出力する。この再符号化信号を受け取ったパラメータ設定器16は、再度この閾値を超えない様に注意して符号化パラメータを設定し直し、符号化対象のマクロブロックデータを再符号化処理する。また、Context演算器21は、Contextメモリ群23を有しており、このContextメモリ群23は従来の技術の図103にある従来のContextメモリ群135と同様に、符号化処理中に随時更新されるContextとリセット時などに用いられるContextの初期状態が保存されるが、それと共に、マクロブロックをデータ処理する直前のContextの状態も保存しておくことが可能である。これにより、再符号化信号を受け取ったContext演算器16は、内部のContextの状態を、この新たに付け加えられたメモリに保存されているContextの値に書き換えることにより、符号化対象のマクロブロックのデータによって更新される直前のContextの状態に復元することが可能である。また、再符号化信号を受け取った出力バッファ15は、内部に蓄積された符号化対象マクロブロックのビットデータを全て削除し、新たな符号化パラメータで符号化されたマクロブロックデータの入力を待つ。逆に、対象のマクロブロックの符号化処理を終えた際に、制限監視器14のいずれのカウンタも、あらかじめ設定された閾値を超えていなければ、出力バッファ15内の対象マクロブロックのビットデータをビットストリームとして出力することが可能である。   In the limit monitor 14, if any one of these counters exceeds a preset threshold value, a signal indicating that the encoded data is invalid (hereinafter referred to as a re-encoded signal). And output to the output buffer 15, the context calculator 21, and the parameter setter 16. Receiving this re-encoded signal, the parameter setting unit 16 resets the encoding parameter with care not to exceed the threshold again, and re-encodes the macro block data to be encoded. The Context computing unit 21 has a Context memory group 23, and this Context memory group 23 is updated at any time during the encoding process, like the conventional Context memory group 135 in FIG. 103 of the prior art. The initial state of the context and the context used at the time of resetting are saved, and at the same time, the state of the context immediately before data processing of the macroblock can be saved. As a result, the Context computing unit 16 that has received the re-encoded signal rewrites the state of the internal Context to the value of the Context stored in the newly added memory. It is possible to restore to the state of Context immediately before being updated with data. Further, the output buffer 15 that has received the re-encoded signal deletes all bit data of the encoding target macroblock stored therein, and waits for input of macroblock data encoded with a new encoding parameter. On the other hand, if the counter of the limit monitor 14 does not exceed the preset threshold when the encoding process of the target macroblock is finished, the bit data of the target macroblock in the output buffer 15 is stored. It can be output as a bit stream.

ここまで説明した図1の装置10では、制限監視器14にあるカウンタはマクロブロックの先頭でリセットされることから、これは、マクロブロック単位で、CABAC符号化器22に入力される2値データと、出力されるビットデータの個数を監視し制限することを意味するが、このリセットのタイミングを、マクロブロック内のブロック単位に設定すれば、各ブロック単位での上記データ個数を監視し制限することが可能になる。同様にスライス単位でリセットをすれば、スライス単位で上記データ個数を監視し制限することが可能になるし、ピクチャ単位でリセットすれば、ピクチャ単位で上記データ個数を監視し制限することが可能となる。また、この様に上記データ個数を監視、制限する符号化単位を変える場合には、同時に、Context演算器21におけるContextメモリ群23にはその符号化単位の直前のContext値が保存されるため、Contextの状態復元も、その符号化単位の直前の状態に復元されることになる。また、出力バッファ15のビットデータの削除も同様の符号化単位で行われることになる。   In the apparatus 10 shown in FIG. 1 described so far, the counter in the limit monitor 14 is reset at the head of the macroblock, so this is binary data input to the CABAC encoder 22 in units of macroblocks. This means that the number of output bit data is monitored and limited. If the reset timing is set for each block in the macro block, the number of data in each block is monitored and limited. It becomes possible. Similarly, if reset is performed in units of slices, the number of data can be monitored and limited in units of slices, and if reset is performed in units of pictures, the number of data can be monitored and limited in units of pictures. Become. Further, when changing the encoding unit for monitoring and limiting the number of data in this way, the Context memory group 23 in the Context calculator 21 simultaneously stores the Context value immediately before the encoding unit. Context state restoration is also restored to the state immediately before the coding unit. In addition, the deletion of the bit data of the output buffer 15 is performed in the same encoding unit.

なお、この復元の際には、Contextメモリ23群に保存されている符号化単位の直前のContext値ではなく、同様にContextメモリ群23に保存されているあらかじめ定められた初期値に復元することも可能である。   In this restoration, not the Context value immediately before the coding unit saved in the Context memory 23 group, but the restoration to a predetermined initial value similarly saved in the Context memory group 23. Is also possible.

ここまで説明した図1の装置10では、制限監視器14には2つのカウンタが設定されているが、これらカウンタに設定する閾値は、それぞれ独立に自由な値を設定することが可能であり、また、2つのうちどちらか一方のみに対応するデータカウントのみを監視し、もう片方は無視する、もしくはカウンタ自体を持たない様な構成にすることも可能である。   In the apparatus 10 of FIG. 1 described so far, two counters are set in the limit monitor 14, but the threshold values set in these counters can be set independently as independent values. It is also possible to configure such that only the data count corresponding to only one of the two is monitored and the other is ignored or does not have the counter itself.

この装置10により、1回のマクロブロック処理において、CABAC符号化器に入力、及び出力されるデータ量の上限を制限することができるため、要求されたマクロブロック1回の処理時間を満たすことが可能になる。また、要求された処理時間で復号化処理が可能なビットストリームを出力することが可能になる。   This apparatus 10 can limit the upper limit of the amount of data input to and output from the CABAC encoder in one macroblock process, so that the required processing time for one macroblock can be satisfied. It becomes possible. It is also possible to output a bitstream that can be decoded in the requested processing time.

ここで、今後の説明のために、図1における変換処理部12とCABAC処理部13をまとめて表現した装置、マクロブロック処理部29を図7に示す。今後の記載におけるマクロブロック処理部29は、図1における変換処理部12とCABAC処理部13を直列でつないだ装置として、同様の振る舞いをするものとする。   Here, for future explanation, FIG. 7 shows a macroblock processing unit 29, which is an apparatus that collectively represents the conversion processing unit 12 and the CABAC processing unit 13 in FIG. The macroblock processing unit 29 in the future description will behave in the same manner as a device in which the conversion processing unit 12 and the CABAC processing unit 13 in FIG. 1 are connected in series.

図2における装置30による実施例の説明
図1で示した装置10では、制限監視器14が再符号化信号を出力するたびに、変換処理部12は再度、新たな符号化パラメータを設定して対象マクロブロックの符号化を行わなければならないし、再度設定されたパラメータによって得られたデータにより、再度、制限監視器14のカウンタが閾値を超えてしまうということが繰り返される可能性もある。そのため、1つのマクロブロックに対して複数回、符号化処理を連続的に適用しなければならず、その分、1ピクチャの符号化時間が多くかかってしまう。
Description of Embodiment by Device 30 in FIG. 2 In the device 10 shown in FIG. 1, every time the limit monitor 14 outputs a re-encoded signal, the conversion processing unit 12 sets a new encoding parameter again. The target macroblock must be encoded, and it may be repeated that the counter of the limit monitor 14 exceeds the threshold again due to the data obtained by the reset parameters. For this reason, the encoding process must be continuously applied to a single macroblock a plurality of times, and accordingly, the encoding time for one picture is increased.

ゆえに、本発明における画像符号化装置の別の実施例として、対象マクロブロックに対して異なる符号化パラメータを適用する符号化を並列に実施する例を2番目の実施例として図2に示す。   Therefore, as another embodiment of the image encoding apparatus according to the present invention, an example in which encoding in which different encoding parameters are applied to a target macroblock is performed in parallel is shown in FIG. 2 as a second embodiment.

図2の装置30では、図1の装置10と同様に、符号化されるべき画像信号が入力され、符号化されたビットストリームが出力される。図2の装置30は入力バッファ31と、N個の異なる符号化パラメータによるN段の並列符号化処理を可能とするマクロブロック処理部32−1〜32−Nと、それに対応した出力バッファ33−1〜33−Nと、制限監視・経路選択器34と切替器35により構成される。   In the apparatus 30 in FIG. 2, as in the apparatus 10 in FIG. 1, an image signal to be encoded is input, and an encoded bit stream is output. The apparatus 30 in FIG. 2 includes an input buffer 31, macroblock processing units 32-1 to 32-N that enable N stages of parallel encoding processing using N different encoding parameters, and an output buffer 33- 1 to 33-N, a restriction monitor / route selector 34 and a switch 35.

図2の装置30では、符号化対象のマクロブロックに対して、N個の異なる符号化パラメータを設定し、それぞれの符号化パラメータによる符号化処理をマクロブロック処理部32−1〜32−Nで並列に行い、その出力を出力バッファ33−1〜33−Nに蓄積する。   In the apparatus 30 of FIG. 2, N different encoding parameters are set for a macroblock to be encoded, and encoding processing using the respective encoding parameters is performed by the macroblock processing units 32-1 to 32-N. The outputs are stored in parallel in the output buffers 33-1 to 33-N.

制限監視・経路選択器34は、マクロブロック処理部32−1〜32−Nそれぞれに対応するCABAC符号化器に対する2つの入出力データカウンタ(ビットカウンタ36)を持ち、N段の並列経路のうちから、このカウンタが閾値を超えず、かつ、符号化効率の最も優れた符号化経路を選択し、切替器35により出力する系統を選択する。   The limit monitoring / path selector 34 has two input / output data counters (bit counters 36) for the CABAC encoders corresponding to the macroblock processing units 32-1 to 32-N, and is included in N parallel paths. From this, the counter selects the coding path that does not exceed the threshold and has the best coding efficiency, and selects the system to be output by the switch 35.

図2の装置30におけるその他の詳細な動作、及び符号化単位等のバリエーションは図1の装置10と同様のものとする。   Other detailed operations in the apparatus 30 of FIG. 2 and variations such as a coding unit are the same as those of the apparatus 10 of FIG.

この装置30により、符号化時に置いてCABAC符号化器に入力、及び出力されるデータ量の上限を制限することができるため、要求されたの符号化処理時間を満たすことが可能になる。また、要求された処理時間で復号化処理が可能なビットストリームを出力することが可能になる。   This apparatus 30 can limit the upper limit of the amount of data input to and output from the CABAC encoder at the time of encoding, so that the required encoding processing time can be satisfied. It is also possible to output a bitstream that can be decoded in the requested processing time.

図3における装置40による実施例の説明
次に図3に、また別の本発明における画像符号化装置の実施例を示す。この実施例は、図1の実施例に加えて、非圧縮符号化データ、すなわち、入力されたマクロブロックに対して、圧縮しないRAWデータをそのまま符号化する経路を有している。
3. Description of Embodiment by Apparatus 40 in FIG. 3 Next, FIG. 3 shows another embodiment of the image coding apparatus according to the present invention. In this embodiment, in addition to the embodiment of FIG. 1, there is a path for encoding uncompressed encoded data, that is, RAW data that is not compressed with respect to the input macroblock as it is.

図3の装置40の図1の装置10との違いは、マクロブロック画像データはマクロブロック処理部41のみでなく、非圧縮符号化部43にも入力される。非圧縮符号化部43では、入力された画像情報に対して一切の変換処理とエントロピー符号化をしないデータ、すなわち、RAWデータが出力バッファB44に出力される。制限監視・経路選択器47は、図1における制限監視器14の振る舞いと同様に、ビットカウンタ49によりCABAC符号化器の入出力のデータ量を監視し、かつ、もし、その監視されているデータがあらかじめ設定されている閾値を超えた場合には、切替器46が出力バッファB44からの入力を選択し出力するようにする。逆に、閾値を超えなかった場合には、出力バッファA42、出力バッファB44のどちらの出力でも選択することが可能となっている。   3 differs from the apparatus 10 of FIG. 1 in that the macroblock image data is input not only to the macroblock processing unit 41 but also to the uncompressed encoding unit 43. In the non-compression encoding unit 43, data that is not subjected to any conversion processing and entropy encoding for input image information, that is, RAW data is output to the output buffer B44. The limit monitor / route selector 47 monitors the input / output data amount of the CABAC encoder by the bit counter 49 in the same manner as the behavior of the limit monitor 14 in FIG. When the value exceeds a preset threshold value, the switch 46 selects and outputs the input from the output buffer B44. On the contrary, if the threshold value is not exceeded, it is possible to select either the output of the output buffer A42 or the output buffer B44.

ここで、制限監視・経路選択器45が出力バッファB44、すなわちRAWデータを選択した場合には、その事がマクロブロック処理部41にあるContext演算器にも通知され、Context演算器内のContext値は、Contextメモリ群に保存されたマクロブロックを処理する直前のContextの値を用いて、そのRAWデータとして処理されたマクロブロックを処理する直前の状態に復元される。   Here, when the restriction monitoring / route selector 45 selects the output buffer B44, that is, RAW data, this is also notified to the Context calculator in the macroblock processing unit 41, and the Context value in the Context calculator Is restored to the state immediately before processing the macroblock processed as the RAW data, using the value of Context immediately before processing the macroblock stored in the Context memory group.

なお、マクロブロックがRAWデータとして処理された場合のContextの復元方法としては、あらかじめ決められた初期状態に復元するということも可能である。   Note that, as a method of restoring the Context when the macroblock is processed as RAW data, it is possible to restore to a predetermined initial state.

ここで、マクロブロックがRAWデータとして符号化されたかどうかを示すために、出力されるビットストリームのヘッダ情報には、そのためのデータが埋め込まれる。   Here, in order to indicate whether or not the macroblock is encoded as RAW data, the data for that purpose is embedded in the header information of the output bitstream.

RAWデータが符号化された際には、CABAC符号化部は、RAWデータをビットストリームに出力させる前に、CABACの終端処理をする。   When the RAW data is encoded, the CABAC encoding unit performs CABAC termination processing before outputting the RAW data to the bit stream.

また、非圧縮符号化器45は、RAWデータを出力する非圧縮処理装置のみでなく、DPCM符号化装置などさまざまな圧縮装置に置き換えることが可能である。   The non-compression encoder 45 can be replaced with various compression devices such as a DPCM encoding device as well as an uncompression processing device that outputs RAW data.

図3の装置40におけるその他の詳細な動作、及び符号化単位等のバリエーションは図1の装置10と同様のものとする。   Other detailed operations in the apparatus 40 of FIG. 3 and variations such as a coding unit are the same as those of the apparatus 10 of FIG.

この装置40により、符号化時に置いてCABAC符号化器に入力、及び出力されるデータ量の上限を制限することができるため、要求されたの符号化処理時間を満たすことが可能になる。また、要求された処理時間で復号化処理が可能なビットストリームを出力することが可能になる。   This apparatus 40 can limit the upper limit of the amount of data input to and output from the CABAC encoder at the time of encoding, so that the requested encoding processing time can be satisfied. It is also possible to output a bitstream that can be decoded in the requested processing time.

図4における装置50による実施例の説明
次に図4に、また別の本発明における画像符号化装置の実施例である装置50を示す。この実施例は、図2の装置30に加えて、非圧縮符号化データ、すなわち、入力されたマクロブロックに対して、圧縮しないRAWデータをそのまま符号化する経路を有している。
4. Description of Embodiment by Apparatus 50 in FIG. 4 Next, FIG. 4 shows an apparatus 50 which is another embodiment of the image encoding apparatus according to the present invention. In this embodiment, in addition to the apparatus 30 of FIG. 2, there is a path for encoding uncompressed encoded data, that is, RAW data that is not compressed, as it is for the input macroblock.

図4の装置の図2の装置との共通の部分の動作は、図1の装置とほとんど同じであるため、違いのみを具体的に示すと、マクロブロック画像データはマクロブロック処理部51−1〜51−Nのみでなく、非圧縮符号化部58に入力される。非圧縮符号化部58では、入力された画像情報に対して一切の変換処理とエントロピー符号化をしないデータ、すなわち、RAWデータとして出力バッファB59に出力される。制限監視・経路選択器53は、図2における制限監視・経路選択器34の振る舞いと同様に、ビットカウンタ55を監視し、もし、全ての経路1〜Nにおけるビットカウンタ(2個のうちどちらか)があらかじめ設定されている閾値を超えた場合には、信号選択器54が出力バッファB59からの入力を選択し出力するようにする。逆に、閾値を超えなかった場合には、出力バッファA52−1〜52−N、出力バッファB59のどちらの出力でも選択することが可能となっている。   The operation of the common part of the apparatus of FIG. 4 to that of the apparatus of FIG. 2 is almost the same as that of the apparatus of FIG. 1, so that only the differences are specifically shown, the macroblock image data is the macroblock processing unit 51-1. Is input not only to ˜51-N but also to the uncompressed encoding unit 58. The non-compression encoding unit 58 outputs the input image information to the output buffer B 59 as data that does not undergo any conversion processing and entropy encoding, that is, RAW data. The limit monitor / route selector 53 monitors the bit counter 55 in the same manner as the behavior of the limit monitor / route selector 34 in FIG. ) Exceeds a preset threshold value, the signal selector 54 selects and outputs the input from the output buffer B59. On the contrary, when the threshold value is not exceeded, it is possible to select either output of the output buffers A 52-1 to 52 -N and the output buffer B 59.

なお、出力バッファB59からのRAWデータが信号選択部54で選ばれる場合には、マクロブロック処理部51−1〜51−NにあるContext演算部のContextの状態は、Contextメモリ群で記憶されたマクロブロックを処理する直前のContextの状態に復元される。なお、この復元の際には、図1の装置10でも説明したとおり、あらかじめ定められた初期値に復元することも可能である。   When the RAW data from the output buffer B59 is selected by the signal selection unit 54, the Context state of the Context calculation unit in the macroblock processing units 51-1 to 51-N is stored in the Context memory group. It is restored to the state of Context immediately before processing the macroblock. In this restoration, it is also possible to restore to a predetermined initial value as described in the apparatus 10 of FIG.

逆に、出力バッファからRAWデータでなく、出力バッファA52−1〜52−Nのうちの1つである出力バッファA52−iが信号選択部54で選ばれた場合には、マクロブロック処理部51−iのContext演算部のContextの状態が他のマクロブロック処理部51−1〜51−NにあるContext演算部にコピーされる。これは、その後のマクロブロックの符号化を始めるにあたって、全てのContext演算部のContextの状態が同じでなければならないからである。
ちなみに、非圧縮符号化部58は、RAWデータを出力する非圧縮処理装置のみでなく、DPCM符号化装置などさまざまな圧縮装置に置き換えることが可能である。
Conversely, when the signal selection unit 54 selects the output buffer A52-i, which is one of the output buffers A52-1 to 52-N, instead of the RAW data from the output buffer, the macroblock processing unit 51 The Context state of the -i Context calculation unit is copied to the Context calculation units in the other macroblock processing units 51-1 to 51-N. This is because the Context states of all Context operation units must be the same when starting the encoding of the subsequent macroblock.
Incidentally, the non-compression encoding unit 58 can be replaced with various compression devices such as a DPCM encoding device as well as an uncompression processing device that outputs RAW data.

図4の装置50におけるその他の詳細な動作、及び符号化単位等のバリエーションは図1の装置10と同様のものとする。   Other detailed operations in the apparatus 50 of FIG. 4 and variations such as encoding units are the same as those of the apparatus 10 of FIG.

この装置50により、符号化時に置いてCABAC符号化器に入力、及び出力されるデータ量の上限を制限することができるため、要求されたの符号化処理時間を満たすことが可能になる。また、要求された処理時間で復号化処理が可能なビットストリームを出力することが可能になる。   This apparatus 50 can limit the upper limit of the amount of data input to and output from the CABAC encoder at the time of encoding, so that the requested encoding processing time can be satisfied. It is also possible to output a bitstream that can be decoded in the requested processing time.

図5における装置60による実施例の説明
次に図5に、図100の可逆符号化部106としてCABACではなくCAVLCを適用する装置60を示す。この装置60は図1の装置10のCABAC処理部13をCAVLC処理器63で置き換えたものであり、CAVLC処理器63と制限監視器64以外は同じ振る舞いをするため、ここではCAVLC処理器63と制限監視器64の動作についてのみ説明をする。
FIG. 5 shows an apparatus 60 that applies CAVLC instead of CABAC as the lossless encoding unit 106 of FIG. This apparatus 60 is obtained by replacing the CABAC processing unit 13 of the apparatus 10 in FIG. 1 with a CAVLC processor 63. Since the CAVLC processor 63 and the limit monitor 64 behave in the same manner, the CAVLC processor 63 is used here. Only the operation of the limit monitor 64 will be described.

CAVLC処理器63には、ヘッダ情報と量子化された係数情報がシンボルデータとして入力され、従来のMPEG2などと類似した、可変長テーブルを用いた可変長符号化が適用され、ビットデータとして出力される。ここでCAVLC処理器63は、従来の技術の図104で説明したCAVLC符号化器とContext保存器からなり、従来の保存器と同様に、既にCAVLC符号化器で符号化された情報、例えば、処理中のブロックだけでなく既に処理されたブロックにおける各ブロック内の非0係数の個数や直前に符号化された係数の値などが保存されるのに加えて、本発明におけるCAVLC処理器63では、再符号化信号が来たときにマクロブロックを符号化する直前の状態に戻れる様に、マクロブロックを符号化する直前のContextの状態を保存しておくことが可能である。CAVLC符号化器は、このContext保存器からの情報をもとにシンボルに適用する可変長符号テーブルを切り替えることが可能である。なお、Context保存器にはリセット時などに用いられるContextの初期状態も保存される。   The CAVLC processor 63 receives header information and quantized coefficient information as symbol data, and applies variable-length coding using a variable-length table similar to conventional MPEG2 and outputs the bit data. The Here, the CAVLC processor 63 is composed of the CAVLC encoder and the Context storage unit described with reference to FIG. 104 of the prior art. Like the conventional storage unit, the information already encoded by the CAVLC encoder, for example, In addition to storing the number of non-zero coefficients in each block in the already processed block as well as the block being processed and the value of the coefficient encoded immediately before, the CAVLC processor 63 in the present invention The state of the Context immediately before encoding the macroblock can be saved so that the state immediately before encoding the macroblock can be restored when the re-encoded signal comes. The CAVLC encoder can switch the variable length code table applied to the symbol based on the information from the Context storage. Note that the initial state of the context used at the time of resetting is also saved in the context saver.

制限監視器64は、CAVLC処理器63から出力されるビットデータの個数のカウンタ(ビットカウンタ75)を1つ持ち、CAVLC処理器63からビットデータが出力されるたびにこのカウンタを1つずつ増加させる。このカウンタは、マクロブロックの先頭の処理を開始する時に0にリセットされる。これにより、各マクロブロックにおける、CAVLC処理機63からの出力データの個数をカウントすることが可能となる。   The limit monitor 64 has one counter (bit counter 75) for the number of bit data output from the CAVLC processor 63, and increments this counter by one each time bit data is output from the CAVLC processor 63. Let This counter is reset to 0 when processing at the head of the macroblock is started. Thereby, the number of output data from the CAVLC processor 63 in each macro block can be counted.

この制限監視器64では、このカウンタ75があらかじめ設定された閾値を超えてしまった場合、その符号化データは無効であることを示す信号(以下、再符号化信号)を、出力バッファ65とパラメータ設定器66に対して出力する。この再符号化信号を受け取ったパラメータ設定器66は、再度この閾値を超えない様に注意して符号化パラメータを設定し直し、符号化対象のマクロブロックデータを再符号化処理する。また、再符号化信号を受け取った出力バッファ65は、内部に蓄積された符号化対象マクロブロックのビットデータを全て削除し、新たな符号化パラメータで符号化されたマクロブロックデータの入力を待つ。   In the limit monitor 64, when the counter 75 exceeds a preset threshold value, a signal indicating that the encoded data is invalid (hereinafter, re-encoded signal) is output to the output buffer 65 and the parameter. Output to the setting device 66. Receiving this re-encoded signal, the parameter setting unit 66 sets the encoding parameter again so as not to exceed the threshold again, and re-encodes the macro block data to be encoded. Further, the output buffer 65 that has received the re-encoded signal deletes all bit data of the encoding target macroblock stored therein, and waits for the input of the macroblock data encoded with the new encoding parameter.

図5の装置60におけるその他の詳細な動作、及び符号化単位等のバリエーションは図1の装置10と同様のものとする。   Other detailed operations in the device 60 of FIG. 5 and variations such as a coding unit are the same as those of the device 10 of FIG.

この装置60により、1回のマクロブロック処理において、CAVLC符号化器から出力されるデータ量の上限を制限することができるため、要求されたマクロブロック1回の処理時間を満たすことが可能になる。また、要求された処理時間で復号化処理が可能なビットストリームを出力することが可能になる。   This apparatus 60 can limit the upper limit of the amount of data output from the CAVLC encoder in one macroblock process, so that the required processing time for one macroblock can be satisfied. . It is also possible to output a bitstream that can be decoded in the requested processing time.

また、図1の装置のみでなく、図2〜図4の装置に対しても、CABAC処理部をCAVLC処理部に置き換えることが可能であり、その振る舞いはここで示した実施例と同様なものとする。但し、CAVLC処理器はマクロブロックがRAWデータとして符号化されると、そのマクロブロックのContextを持てなくなるので、その様なときのためにRAWデータが符号化された際のContextの更新の仕方を定義しておく必要がある。この定義の方法は符号化装置と復号化装置間で同期が取れていればどんなものでも良い。例えば、RAWデータとして符号化されたマクロブロック内のブロックに存在している非0係数の個数は15とみなすなどである。その装置により、符号化時においてCAVLC符号化器から出力されるデータ量の上限を制限することができるため、要求されたの符号化処理時間を満たすことが可能になる。また、要求された処理時間で復号化処理が可能なビットストリームを出力することが可能になる。   In addition to the apparatus shown in FIG. 1, it is possible to replace the CABAC processing unit with a CAVLC processing unit for the apparatuses shown in FIGS. 2 to 4, and the behavior is the same as that of the embodiment shown here. And However, when a macroblock is encoded as RAW data, the CAVLC processor cannot have the Context of the macroblock, so for such a case, how to update the Context when the RAW data is encoded. Must be defined. Any method can be used as long as the encoding device and the decoding device are synchronized. For example, the number of non-zero coefficients existing in a block in a macroblock encoded as RAW data is assumed to be 15. The apparatus can limit the upper limit of the amount of data output from the CAVLC encoder at the time of encoding, so that the requested encoding processing time can be satisfied. It is also possible to output a bitstream that can be decoded in the requested processing time.

図6における装置80による実施例の説明
次に、図1〜4の装置に対応した本発明における画像情報復号化装置である装置80を図6を用いて示す。なお、図1、2の装置においては、非圧縮符号化部とその経路がないため、図6の装置80において、非圧縮復号化部88への経路は選択されることはない。この様なことが明らかな場合には、この非圧縮復号化部88とその経路を実装しないことも可能である。
6. Description of Embodiment by Apparatus 80 in FIG. 6 Next, an apparatus 80 which is an image information decoding apparatus in the present invention corresponding to the apparatus in FIGS. 1 and 2, since there is no uncompressed encoding section and its path, the path to the uncompressed decoding section 88 is not selected in the apparatus 80 of FIG. If this is clear, the uncompressed decoding unit 88 and its path can be omitted.

図6の装置80では復号化されるべきビットストリームが入力され、復号化された画像信号が出力される。図6の装置80は経路選択器A81、B85と符号化方式判定器84と逆変換処理部83とCABAC処理部82と制限監視器86と非圧縮復号化器88により構成される。   6 receives a bit stream to be decoded and outputs a decoded image signal. The apparatus 80 shown in FIG. 6 includes path selectors A 81 and B 85, an encoding method determination unit 84, an inverse conversion processing unit 83, a CABAC processing unit 82, a restriction monitor 86, and an uncompressed decoder 88.

まず、各マクロブロックを処理する始めは、経路選択器A81、B85はCABAC処理部82の経路を選択している。CABAC処理部82では、入力されたビットストリームからマクロブロックを復号化する際に、まず、ビットストリームに埋め込まれた、そのマクロブロックがRAWデータかどうかを示すシンボルを復号化し、それが符号化方式判定器84でRAWデータであると判定された場合は、経路選択器A81、B85は非圧縮復号化部88の経路を選択し、非圧縮復号化部88からの出力を、画像信号として出力する様にする。ここで、非圧縮復号化部88では固定長復号化を行い画像データを取得する。この非圧縮符号化部88が選択された場合には、CABAC処理部82のContext演算部92内のContextの状態は変更しなくても構わないし、あるあらかじめ決められた値で初期化しても良いし、その他の法則を用いて変更しても構わず、符号化装置側のCABAC処理部の振る舞いと同期が取れていれば良い。また、この際に、同一ピクチャ内の後で復号化されるマクロブロックの復号化に用いられるプレディクタはあらかじめ決められた値に設定される。例えば、非圧縮復号化されたマクロブロックの動きベクトルは0に設定され、マクロブロックタイプはイントラ符号化と言った様に設定される。このプレディクタの値も符号化器側と同期が取れていればどんな値を設定しても良い。   First, at the beginning of processing each macroblock, the route selectors A 81 and B 85 select the route of the CABAC processing unit 82. When the CABAC processing unit 82 decodes a macroblock from the input bitstream, first, a symbol indicating whether or not the macroblock is RAW data embedded in the bitstream is decoded. When the determination unit 84 determines that the data is RAW data, the path selectors A81 and B85 select the path of the uncompressed decoding unit 88 and output the output from the uncompressed decoding unit 88 as an image signal. Like. Here, the uncompressed decoding unit 88 performs fixed-length decoding and acquires image data. When this uncompressed encoding unit 88 is selected, the Context state in the Context operation unit 92 of the CABAC processing unit 82 may not be changed, and may be initialized with a predetermined value. However, it may be changed by using other laws, and it is only necessary to be synchronized with the behavior of the CABAC processing unit on the encoding device side. At this time, a predictor used for decoding a macroblock decoded later in the same picture is set to a predetermined value. For example, the motion vector of an uncompressed macroblock is set to 0, and the macroblock type is set as “intra coding”. As long as the value of the predictor is synchronized with the encoder side, any value may be set.

逆に、符号化方式判定器84によって、マクロブロックデータがCABAC処理部82で処理されることが選択された場合は、引き続き入力ビットストリームはCABAC処理部82に入力される。   On the other hand, when the encoding method determination unit 84 selects that the macroblock data is to be processed by the CABAC processing unit 82, the input bit stream is continuously input to the CABAC processing unit 82.

CABAC処理部82では、入力ビットストリームから、ヘッダ情報と量子化された係数情報がシンボルデータとして復号化され出力される。具体的には、入力されたビットストリームを、Context演算器92からのContext情報をもとに、CABAC復号化器90でエントロピー復号化し、そこで出力された2値シンボル列を逆binarization器91により、シンボルデータに変換する。Context演算器92では、逆binarization器91に入力される2値データと逆binarization器91から出力されるシンボルデータをもとにContextを更新し、また、そのContext情報をCABAC復号化部90に出力する。このCABAC処理部88の動作は、「従来の技術」で説明したJVT
FCD第9.2節の記述に準ずるものとする。
In the CABAC processing unit 82, header information and quantized coefficient information are decoded and output as symbol data from the input bitstream. Specifically, the input bit stream is entropy-decoded by the CABAC decoder 90 based on the Context information from the Context calculator 92, and the binary symbol sequence output therefrom is converted by the inverse binarization unit 91. Convert to symbol data. The Context calculator 92 updates the Context based on the binary data input to the inverse binarization unit 91 and the symbol data output from the inverse binarization unit 91, and outputs the Context information to the CABAC decoding unit 90. To do. The operation of the CABAC processing unit 88 is the same as the JVT described in “Prior Art”.
It shall conform to the description in FCD Section 9.2.

逆変換処理部83では、入力されたヘッダ情報や量子化された係数情報を、逆量子化、逆DCT、動き補償することにより画像信号を復号化し出力する。   The inverse transform processing unit 83 decodes and outputs an image signal by performing inverse quantization, inverse DCT, and motion compensation on the input header information and quantized coefficient information.

制限監視器86は、CABAC復号化器90へ入力されるビットデータの個数のカウンタと出力される2値データの個数のカウンタ(ビットカウンタ93)をそれぞれ独立に持ち、CABAC復号化器90へビットデータが入力されるたびに前者のカウンタを1つずつ増加させ、CABAC復号化器90から2値データが出力されるたびに後者のカウンタを1つずつ増加させる。このカウンタはそれぞれ、マクロブロックの先頭の処理を開始する時に0にリセットされる。これにより、各マクロブロックにおける、CABAC復号化器90における入力データと出力データのそれぞれの個数をカウントすることが可能となる。   The limit monitor 86 has a counter for the number of bit data input to the CABAC decoder 90 and a counter (bit counter 93) for the number of binary data output to the CABAC decoder 90. Each time data is input, the former counter is incremented by one, and each time binary data is output from the CABAC decoder 90, the latter counter is incremented by one. Each of these counters is reset to 0 when processing of the head of the macroblock is started. This makes it possible to count the number of input data and output data in the CABAC decoder 90 in each macroblock.

この制限監視部86では、これらカウンタのうちのどちらか一方が、あらかじめ設定された閾値を超えてしまった場合、エラー処理を実行する。エラー処理としては、復号化処理をいったん中止し、次のスライスヘッダやピクチャヘッダを待って再度、復号化処理を開始したり、単に警告のみを発するだけで復号化処理は引き続き続けるということが可能である。また、エラー処理をせず、復号化処理を引き続き続けるということも可能である。   The limit monitoring unit 86 executes error processing when one of these counters exceeds a preset threshold value. As an error process, it is possible to stop the decoding process, wait for the next slice header or picture header, start the decoding process again, or simply issue a warning and continue the decoding process. It is. It is also possible to continue the decoding process without performing error processing.

この装置80により、復号化時においてCABAC復号化器90に入力、及び出力されるデータ量を監視することができるため、仮にこの上限を超えるデータ量が入出力されたとしても、要求された復号化処理時間を満たすようにエラー処理等を施すことが可能となる。   This device 80 can monitor the amount of data input to and output from the CABAC decoder 90 at the time of decoding. Therefore, even if a data amount exceeding this upper limit is input / output, the requested decoding is performed. Error processing or the like can be performed so as to satisfy the conversion processing time.

また、実装の方法としては、装置80においては、必ずしも制限監視部86は実装されるとは限らない。その場合には、CABAC符号化器90において入出力されるデータ量は監視されない。   Further, as a mounting method, the restriction monitoring unit 86 is not necessarily mounted in the device 80. In that case, the amount of data input / output in the CABAC encoder 90 is not monitored.

なお、装置80ではエントロピー復号化としてCABACを適用した際の、本発明における画像情報復号化装置の実施例を示したが、既に、画像符号化装置の実施例でも示したとおり、このCABAC処理部はCAVLC処理部で置き換えることが可能であり、その実装方法は符号化装置の実施例でも説明した通り、ほとんど1対1で類似しているため、ここでは説明を割愛する。なお、その符号化装置と同様に、マクロブロックがRAWデータで符号化された際のCAVLCのContextの更新の仕方をあらかじめ定義しておく。   In the apparatus 80, the embodiment of the image information decoding apparatus according to the present invention when CABAC is applied as entropy decoding has been described. However, as already shown in the embodiment of the image encoding apparatus, this CABAC processing unit Can be replaced with a CAVLC processing unit, and the mounting method is almost similar in a one-to-one manner as described in the embodiment of the encoding apparatus. As in the case of the encoding apparatus, a method of updating the CAVLC Context when a macroblock is encoded with RAW data is defined in advance.

本発明におけるビットストリームの実施例の説明
次に、本発明における符号化されたビットストリームの実施例について示す。ここまでの説明でも述べた様に、本発明ではビットストリーム内に圧縮したデータでも、RAWデータでも符号化することが可能である。このために、本発明のビットストリームでは、マクロブロックヘッダにおいて、そのマクロブロックがRAWデータとして符号化されているかそうでないかを明示的に示すヘッダ情報を付加し、そのヘッダ情報の後にRAWデータ、もしくは、圧縮されたビットデータのどちらかを続けている。ここで、RAWデータとして符号化されているかそうでないかを明示的に示すのに、マクロブロックヘッダ情報の1つであるmacroblock typeによって明示する。逆に言うと、本発明におけるビットストリームは、異なる符号化方式をマクロブロック単位で混在させることが可能であるということである。
Description of Embodiments of Bitstream According to the Present Invention Next, embodiments of the encoded bitstream according to the present invention will be described. As described in the above description, in the present invention, it is possible to encode data compressed in a bit stream or RAW data. Therefore, in the bit stream of the present invention, in the macroblock header, header information that explicitly indicates whether or not the macroblock is encoded as RAW data is added, and the RAW data, Alternatively, either the compressed bit data is continued. Here, in order to explicitly indicate whether it is encoded as RAW data or not, it is specified by macroblock type which is one of macroblock header information. In other words, the bitstream in the present invention can mix different encoding methods in units of macroblocks.

またここでは、マクロブロックのヘッダ情報としてそのマクロブロックの符号化方式を指定する情報が組み込まれている場合を示したが、この指定情報を、スライスヘッダやピクチャヘッダに組み込めば、それらの単位で符号化方式の混在と、その指定を行うことが可能となる。   In addition, here, a case has been shown in which information specifying the encoding method of the macroblock is incorporated as header information of the macroblock. However, if this specification information is incorporated into a slice header or a picture header, the unit of the information is specified. It is possible to mix and specify encoding methods.

ここで、本発明におけるビットストリームには、このヘッダ情報(例えば、macroblock type)がCABACで符号化され、続いてRAWデータ(すなわち固定長ビット列)が符号化される場合には、RAWデータを符号化する前に、CABACのの終端処理をされたビットが挿入される。   Here, in the bit stream in the present invention, when this header information (for example, macroblock type) is encoded by CABAC, and then RAW data (that is, a fixed-length bit string) is encoded, the RAW data is encoded. Before conversion, a CABAC terminated bit is inserted.

また、本発明におけるビットストリームはCABACで符号化された場合には、これまでの実施例でも述べた様に、CABAC符号化器、及び復号化器の入力と出力のビットカウンタのどちらか一方でもあらかじめ設定された閾値を超えることのないデータにより構成される。また、CAVLCで符号化された場合には、CAVLC符号化器の出力、及び復号化器の入力のビットカウンタが、あらかじめ設定された閾値を超えることのないデータにより構成される。
これらのことから、本発明におけるビットストリームにより、画像情報符号化器、及び画像情報復号化器に対して、ある一定の復号化処理時間を保証することを可能としている。
In addition, when the bit stream in the present invention is encoded by CABAC, as described in the previous embodiments, either the CABAC encoder or the input / output bit counter of the decoder is used. It is composed of data that does not exceed a preset threshold. In addition, when encoded by CAVLC, the bit counter of the output of the CAVLC encoder and the input of the decoder is composed of data that does not exceed a preset threshold value.
For these reasons, the bit stream in the present invention makes it possible to guarantee a certain decoding processing time for the image information encoder and the image information decoder.

10、30、40、50、60、80……装置、11、61……入力バッファ、12、62……変換処理部、13……CABAC処理部、29、32、41、51……マクロブロック処理部、63……CAVLC処理器。   10, 30, 40, 50, 60, 80 ... Device, 11, 61 ... Input buffer, 12, 62 ... Conversion processing unit, 13 ... CABAC processing unit, 29, 32, 41, 51 ... Macro block Processing unit, 63... CAVLC processor.

Claims (2)

非圧縮データを含むビットストリームを復号処理する復号装置において、
前記ビットストリームに対してコンテキストを用いた算術復号処理を行う復号手段と、
符号化処理する際の単位であるブロックが非圧縮データのブロックである場合に、非圧縮データのブロックに対してコンテキストを用いた算術符号化処理を行う直前のコンテキスト値を保持して、コンテキストを用いた算術復号処理の終端処理を行うように、前記復号手段を制御する制御手段と、
を備える復号装置。
In a decoding device for decoding a bitstream including uncompressed data,
Decoding means for performing arithmetic decoding using context on the bitstream;
If the block that is the unit for the encoding process is a block of uncompressed data, the context value immediately before performing the arithmetic encoding process using the context for the block of uncompressed data is retained, and the context is Control means for controlling the decoding means so as to perform termination processing of the used arithmetic decoding process;
A decoding device comprising:
非圧縮データを含むビットストリームを復号処理する復号方法において、
前記ビットストリームに対してコンテキストを用いた算術復号処理を行う復号ステップと、
符号化処理する際の単位であるブロックが非圧縮データのブロックである場合に、非圧縮データのブロックに対してコンテキストを用いた算術符号化処理を行う直前のコンテキスト値を保持して、コンテキストを用いた算術復号処理の終端処理を行うように、前記復号ステップにおける復号処理を制御する制御ステップと、
を含む復号方法。
In a decoding method for decoding a bitstream including uncompressed data,
A decoding step for performing an arithmetic decoding process using context on the bitstream;
If the block that is the unit for the encoding process is a block of uncompressed data, the context value immediately before performing the arithmetic encoding process using the context for the block of uncompressed data is retained, and the context is A control step for controlling the decoding process in the decoding step so as to perform a termination process of the used arithmetic decoding process;
A decoding method including:
JP2012140526A 2012-06-22 2012-06-22 Decoding device and decoding method Expired - Lifetime JP5057498B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012140526A JP5057498B2 (en) 2012-06-22 2012-06-22 Decoding device and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012140526A JP5057498B2 (en) 2012-06-22 2012-06-22 Decoding device and decoding method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010290300A Division JP5062320B2 (en) 2010-12-27 2010-12-27 Encoding apparatus and encoding method

Publications (2)

Publication Number Publication Date
JP2012200012A true JP2012200012A (en) 2012-10-18
JP5057498B2 JP5057498B2 (en) 2012-10-24

Family

ID=47181682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012140526A Expired - Lifetime JP5057498B2 (en) 2012-06-22 2012-06-22 Decoding device and decoding method

Country Status (1)

Country Link
JP (1) JP5057498B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH099261A (en) * 1995-06-22 1997-01-10 Sony Corp Signal compression device
JPH10108184A (en) * 1996-10-02 1998-04-24 Sony Corp Image data processing unit and its method
JPH10191343A (en) * 1996-12-24 1998-07-21 Sony Corp Device and method for compressing video data
JPH10256917A (en) * 1997-03-14 1998-09-25 Mitsubishi Electric Corp Adaptive encoding method
JP2001230935A (en) * 2000-02-18 2001-08-24 Canon Inc Method and device for arithmetic encoding/decoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH099261A (en) * 1995-06-22 1997-01-10 Sony Corp Signal compression device
JPH10108184A (en) * 1996-10-02 1998-04-24 Sony Corp Image data processing unit and its method
JPH10191343A (en) * 1996-12-24 1998-07-21 Sony Corp Device and method for compressing video data
JPH10256917A (en) * 1997-03-14 1998-09-25 Mitsubishi Electric Corp Adaptive encoding method
JP2001230935A (en) * 2000-02-18 2001-08-24 Canon Inc Method and device for arithmetic encoding/decoding

Also Published As

Publication number Publication date
JP5057498B2 (en) 2012-10-24

Similar Documents

Publication Publication Date Title
JP4240283B2 (en) Decoding device and decoding method
JP4687998B2 (en) Encoding apparatus and encoding method
JP5057497B2 (en) Decoding device and decoding method
JP5041061B2 (en) Decoding device and decoding method
JP5041060B2 (en) Encoding apparatus and encoding method
JP6152889B2 (en) Encoding apparatus, encoding method, and encoding program
JP5892203B2 (en) Decoding device, decoding method, and decoding program
JP5692308B2 (en) Encoding device, encoding method, decoding device, and decoding method
JP5057498B2 (en) Decoding device and decoding method
JP5057495B2 (en) Decoding device and decoding method
JP5057496B2 (en) Encoding apparatus and encoding method
JP5057494B2 (en) Encoding apparatus and encoding method
JP5692172B2 (en) Decoding device, decoding method, and decoding program.
JP5500210B2 (en) Encoding apparatus, encoding method, and encoding program
JP5062320B2 (en) Encoding apparatus and encoding method
JP5041062B2 (en) Decoding device and decoding method

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120713

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120724

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120726

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5057498

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term