JP2011061878A - Encoding device, encoding method, decoding device, decoding method and recording medium - Google Patents
Encoding device, encoding method, decoding device, decoding method and recording medium Download PDFInfo
- Publication number
- JP2011061878A JP2011061878A JP2010290300A JP2010290300A JP2011061878A JP 2011061878 A JP2011061878 A JP 2011061878A JP 2010290300 A JP2010290300 A JP 2010290300A JP 2010290300 A JP2010290300 A JP 2010290300A JP 2011061878 A JP2011061878 A JP 2011061878A
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- unit
- context
- decoding
- cabac
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
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). Image information encoding method used when receiving (bitstream) via network media such as satellite broadcasting, cable TV or the Internet, or processing on storage media such as optical discs, magnetic discs or flash memories The present invention relates to an apparatus and program thereof, an image information decoding method, an apparatus and program thereof, and an image information encoding and decoding method.
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する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
図8において、A/D変換部101は、入力された画像信号をデジタル信号に変換する。そして、画面並べ替えバッファ102は、A/D変換部101から供給された画像圧縮情報のGOP(Group of Pictures)構造に応じて、フレームの並べ替えを行う。ここで、画面並び替えバッファ102は、イントラ(画像内)符号化が行われる画像に関しては、フレーム全体の画像情報を直交変換部104に供給する。直交変換部104は、画像情報に対して離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換を施し、変換係数を量子化部105に供給する。量子化部105は、直交変換部104から供給された変換係数に対して量子化処理を施す。
In FIG. 8, an A /
可逆符号化部106は、量子化部105から供給された量子化された変換係数や量子化スケール等から符号化モードを決定し、この符号化モードに対して可変長符号化、又は算術符号化等の可逆符号化を施し、画像符号化単位のヘッダ部に挿入される情報を形成する。符号化された符号化モードを蓄積バッファ107に供給して蓄積させる。この符号化された符号化モードは、画像圧縮情報として出力される。
The
また、可逆符号化部106は、量子化された変換係数に対して可変長符号化、若しくは算術符号化等の可逆符号化を施し、符号化された変換係数を蓄積バッファ107に供給して蓄積させる。この符号化された変換係数は、画像圧縮情報として出力される。
In addition, the
量子化部105の挙動は、レート制御部112によって制御される。また、量子化部105は、量子化後の変換係数を逆量子化部108に供給し、逆量子化部108は、その変換係数を逆量子化する。逆直交変換部109は、逆量子化された変換係数に対して逆直交変換処理を施して復号画像情報を生成し、その情報をフレームメモリ110に供給して蓄積させる。
The behavior of the
一方、画面並び替えバッファ102は、インター(画像間)符号化が行われる画像に関しては、画像情報を動き予測・補償部111に供給する。動き予測・補償部111は、同時に参照される画像情報をフレームメモリ110より取り出し、動き予測・補償処理を施して参照画像情報を生成する。動き予測・補償部111は、この参照画像情報を加算器103に供給し、加算器103は、参照画像情報を当該画像情報との差分信号に変換する。また、動き補償・予測部111は、同時に動きベクトル情報を可逆符号化部106に供給する。
On the other hand, the
可逆符号化部106は、量子化部105から供給された量子化された変換係数や量子化スケールや、動き補償・予測部111から供給された動きベクトル情報等から符号化モードを決定し、この符号化モードに対して可変長符号化、又は算術符号化等の可逆符号化を施し、画像符号化単位のヘッダ部に挿入される情報を形成する。符号化された符号化モードを蓄積バッファ107に供給して蓄積させる。この符号化された符号化モードは、画像圧縮情報として出力される
The
また、可逆符号化部106は、その動きベクトル情報に対して可変長符号化若しくは算術符号化等の可逆符号化処理を施し、画像符号化単位のヘッダ部に挿入される情報を形成する。
Further, the
イントラ符号化と異なり、インター符号化の場合には、直行変換部104に入力される画像情報は、加算器103より得られた差分信号である。
Unlike the intra coding, in the case of inter coding, the image information input to the
なお、その他の処理については、イントラ符号化を施される画像圧縮情報と同様であるため、説明を省略する。 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
図9において、蓄積バッファ121は、入力された画像圧縮情報を一時的に格納した後、可逆復号部122に転送する。可逆復号部122は、定められた画像圧縮情報のフォーマットに基づき、画像圧縮情報に対して可変長復号若しくは算術復号等の処理を施し、ヘッダ部に格納された符号化モード情報を取得し逆量子化部123等に供給する。同様に、量子化された変換係数を取得し逆量子化部123に供給する。また、可逆復号部122は、当該フレームがインター符号化されたものである場合には、画像圧縮情報のヘッダ部に格納された動きベクトル情報についても復号し、その情報を動き予測・補償部128に供給する。
In FIG. 9, the
逆量子化部123は、可逆復号部122から供給された量子化後の変換係数を逆量子化し、変換係数を逆直交変換部124に供給する。逆直交変換部124は、定められた画像圧縮情報のフォーマットに基づき、変換係数に対して逆離散コサイン変換若しくは逆カルーネン・レーベ変換等の逆直交変換を施す。
The
ここで、当該フレームがイントラ符号化されたものである場合には、逆直交変換処理が施された画像情報は、画面並べ替えバッファ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
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償部128は、可逆復号処理が施された動きベクトル情報とフレームメモリ129に格納された画像情報とに基づいて参照画像を生成し、加算器125に供給する。加算器125は、この参照画像と逆直交変換部124の出力とを合成する。なお、その他の処理については、イントラ符号化されたフレームと同様であるため、説明を省略する。
On the other hand, when the frame is inter-coded, the motion prediction /
ここで、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
まず、図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
次に、図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
同様に、JVTにおける、可逆復号化部122について詳細に説明する。JVTの可逆復号化部122では、可逆符号化部106と同様に、入力されたビットストリームに対して、図13に示す様に、CABAC、もしくはCAVLCのどちらかの可逆復号化が適用される。どちらの可逆復号化が適用されるかは、入力されたビットストリームのヘッダ情報に埋め込まれたCABAC/CAVLC選択情報を読み込むことにより、CABACかCAVLCのどちらかを適用する。
Similarly, the
図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
次に、図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
この図11、図14に示すCABACの詳細動作として、以下にFinal Committee Draft ISO/IEC 14496-10:2002(第9.2節)におけるCABACの説明を添付する(例えば、非特許文献1参照。)。 As detailed operations of the CABAC shown in FIG. 11 and FIG. 14, the explanation of CABAC in Final Commit Draft ISO / IEC 14496-10: 2002 (Section 9.2) is attached (for example, refer to 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.
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 calculated 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に基づく。 The bit string after binarization of macroblock type in SI slice consists of prefix and suffix part, where 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
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.
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.
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.
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 that represents the relationship between adjacent symbols A and B and the 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) .
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.
変換係数の条件付けの為には、さらに3つの異なるcontext identifierが追加で用いられる。
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.
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.
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) = 23 is used to avoid a transition to a state larger than 23 when decoding I slice. 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.
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.
ところで、画像情報符号化装置100において、1ピクチャを符号化する際に、その符号化単位を、1ピクチャ、又は、スライス、又は、マクロブロック、又はブロックのいずれとして考えた場合でも、その符号化単位に含まれ、図11のbinarization器131に入力されるシンボルの数は固定ではなく、入力される画像信号や符号化条件によって異なるため、不定である。
By the way, when encoding one picture in the image
また、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器131で出力される2値データの数は固定ではなく不定となり、入力データと符号化条件によっては、非常に大量の2値データがbinarization器131から出力される可能性がある。
For this reason, the number of binary data output by the
ここで、binarization器131から出力された2値データは図11のCABAC符号化器133に入力されることになるが、CABAC符号化器133は、入力された1個の2値データを処理するのに実装上1クロック以上の処理時間が必要であるため、CABAC符号化器133に入力される2値データの個数が膨大であると、それだけ処理時間が必要になり、実装した際に、膨大な処理時間がかかることになる。また、上記で述べたように、CABAC符号化器133に入力される2値データの数は不定であるため、処理時間の最悪値を見積もることが困難になってくる。
Here, the binary data output from the
このため、画像情報符号化装置100において、実時間処理やある一定の処理速度を保証する必要がある場合には、CABAC符号化器133に入力される2値データの数が膨大であるか、または、不定であると、その保証が不可能となる。
Therefore, in the image
また、binarization器131に入力された1シンボルに対して出力された2値データ列に対するCABAC符号化器133の出力ビット長は不定である。これはCABACが入力2値データの発生確率に応じて、出力ビット長を可変にコントロールするからである。このため、CABAC符号化器133に入力された1つの2値データは、その発生確率によって、1ビット以下のビットストリームデータともなり得るし、数ビット以上のビットストリームデータともなり得る。
Further, the output bit length of the
ここで、CABAC符号化器133は、出力される1個のビットデータを処理するのに実装上1クロック以上の処理時間が必要であるため、CABAC符号化器133から出力されるビットデータが膨大であると、それだけ処理時間が必要になり、実装した際に、膨大な処理時間がかかることになる。また、上記で述べた様に、CABAC符号化器133から出力されるビットデータの数は不定であるため、処理時間の最悪値を見積もることが困難になってくる。
Here, since the
このため、画像情報符号化装置100において、実時間処理やある一定の処理時間を保証する必要がある場合には、CABAC符号化器133から出力されるビットデータの数が膨大であるか、または、不定であると、その保証が不可能となる。
Therefore, in the image
以上のように、CABAC符号化器133へ入出力される2値データやビットデータの個数が、1ピクチャや、ピクチャ内のスライスや、マクロブロックやブロックといった符号化単位内において、不定であり、その数が膨大になり得るというのは、実装上、その符号化単位で、ある一定の処理時間を保証するのを妨げることになる。
As described above, the number of binary data and bit data input / output to / from the
続いて、画像情報復号化装置120において、1ピクチャを符号化する際に、その符号化単位を、1ピクチャ、又は、スライス、又は、マクロブロック、又はブロックのいずれとして考えた場合でも、その符号化単位に含まれ、図14のCABAC復号化器161に入力されるビットストリームのビット数は固定ではなく、入力されるビットストリームによって異なるため、不定である。
Subsequently, when one picture is encoded in the image
ここで、CABAC復号化器161は、入力される1個のビットデータを処理するのに実装上1クロック以上の処理時間が必要であるため、CABAC復号化器161へ入力されるビットデータが膨大であると、それだけ処理時間が必要になり、実装した際に、膨大な処理時間がかかることになる。また、上記で述べた様に、CABAC復号化器161へ入力されるビットデータの数は不定であるため、処理速度の最悪値を見積もることが困難になってくる。
Here, since the
このため、画像情報復号化装置120において、実時間処理やある一定の処理時間を保証する必要がある場合には、CABAC復号化器161へ入力されるビットデータの数が膨大であるか、または、不定であると、その保証が不可能となる。特に、画像情報復号化装置120は、画像情報符号化装置100よりも画像情報をリアルタイムで復号化、表示を行わなければならないという要求が高いため、実時間処理を保証できないことは問題となる。
For this reason, in the image
かかる課題を解決するため本発明は、変換手段が画像データをブロック毎に分割し、該分割されたブロック毎に変換処理を施す変換ステップと、変換処理の結果に対してエントロピー符号化手段がCABAC符号化処理若しくはCAVLC符号化処理を施すエントロピー符号化ステップとを含み、エントロピー符号化された結果として生成される出力ビットストリームのヘッダに対して、CABAC符号化処理若しくはCAVLC符号化処理のどちらの符号化処理が施されたかを示す選択情報を埋め込み、変換手段によってブロック毎に分割された画像データに対して、変換処理もエントロピー符号化処理も行わない場合に、変換処理及びエントロピー符号化処理を行わない出力ビットストリームのヘッダにブロックタイプを示す情報を埋め込むようにする。 In order to solve such a problem, the present invention provides a conversion step in which the conversion means divides the image data into blocks and performs conversion processing for each divided block, and the entropy encoding means performs CABAC on the result of the conversion processing. An entropy encoding step for performing an encoding process or a CAVLC encoding process, and the code of either the CABAC encoding process or the CAVLC encoding process for the header of the output bitstream generated as a result of the entropy encoding The selection information indicating whether or not the conversion process has been performed is embedded, and the conversion process and the entropy encoding process are performed when neither the conversion process nor the entropy encoding process is performed on the image data divided for each block by the conversion unit. Fill the header of no output bitstream with information indicating the block type To useless.
計算量が大きく圧縮効果も高いCABACと、計算量は大きくないが圧縮効果もそれ程高くないCAVLCとで、その用途および期待する効果により、二つのエントロピー符号化手段(CABAC/CAVLC)を使い分けることができ、また、要求された処理時間で復号化処理が可能なビットストリームを出力することを、無駄な符号化処理を実行せずに実現することが可能となる。 CABAC, which has a large amount of calculation and a high compression effect, and CAVLC, which does not have a large amount of calculation but a compression effect is not so high, can use two entropy coding means (CABAC / CAVLC) depending on the use and expected effect. In addition, outputting a bitstream that can be decoded in the requested processing time can be realized without executing useless encoding processing.
以下、本発明の実施例を図面を参照しながら説明する。 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
CABAC処理部13には、ヘッダ情報と量子化された係数情報がシンボルデータとして入力され、算術符号化が適用され、ビットデータとして出力される。具体的には、入力されたシンボルデータをbinarization器20によって2値データ列に変換し、その2値データをContext演算器21からのContext情報をもとに、CABAC符号化器22でエントロピー符号化する。Context演算器21では、binarization器20に入力されるシンボルデータと、binarization器20から出力される2値データをもとにContextを更新し、また、そのContext情報をCABAC符号化部22に出力する。
The
制限監視器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
この制限監視器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
ここまで説明した図1の装置10では、制限監視器14にあるカウンタはマクロブロックの先頭でリセットされることから、これは、マクロブロック単位で、CABAC符号化器22に入力される2値データと、出力されるビットデータの個数を監視し制限することを意味するが、このリセットのタイミングを、マクロブロック内のブロック単位に設定すれば、各ブロック単位での上記データ個数を監視し制限することが可能になる。同様にスライス単位でリセットをすれば、スライス単位で上記データ個数を監視し制限することが可能になるし、ピクチャ単位でリセットすれば、ピクチャ単位で上記データ個数を監視し制限することが可能となる。また、この様に上記データ個数を監視、制限する符号化単位を変える場合には、同時に、Context演算器21におけるContextメモリ群23にはその符号化単位の直前のContext値が保存されるため、Contextの状態復元も、その符号化単位の直前の状態に復元されることになる。また、出力バッファ15のビットデータの削除も同様の符号化単位で行われることになる。
In the
なお、この復元の際には、Contextメモリ23群に保存されている符号化単位の直前のContext値ではなく、同様にContextメモリ群23に保存されているあらかじめ定められた初期値に復元することも可能である。
In this restoration, not the Context value immediately before the coding unit saved in the
ここまで説明した図1の装置10では、制限監視器14には2つのカウンタが設定されているが、これらカウンタに設定する閾値は、それぞれ独立に自由な値を設定することが可能であり、また、2つのうちどちらか一方のみに対応するデータカウントのみを監視し、もう片方は無視する、もしくはカウンタ自体を持たない様な構成にすることも可能である。
In the
この装置10により、1回のマクロブロック処理において、CABAC符号化器に入力、及び出力されるデータ量の上限を制限することができるため、要求されたマクロブロック1回の処理時間を満たすことが可能になる。また、要求された処理時間で復号化処理が可能なビットストリームを出力することが可能になる。
This
ここで、今後の説明のために、図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
図2における装置30による実施例の説明
図1で示した装置10では、制限監視器14が再符号化信号を出力するたびに、変換処理部12は再度、新たな符号化パラメータを設定して対象マクロブロックの符号化を行わなければならないし、再度設定されたパラメータによって得られたデータにより、再度、制限監視器14のカウンタが閾値を超えてしまうということが繰り返される可能性もある。そのため、1つのマクロブロックに対して複数回、符号化処理を連続的に適用しなければならず、その分、1ピクチャの符号化時間が多くかかってしまう。
Description of Embodiment by Device 30 in FIG. 2 In the
ゆえに、本発明における画像符号化装置の別の実施例として、対象マクロブロックに対して異なる符号化パラメータを適用する符号化を並列に実施する例を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
図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 /
図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
この装置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
ここで、制限監視・経路選択器45が出力バッファB44、すなわちRAWデータを選択した場合には、その事がマクロブロック処理部41にあるContext演算器にも通知され、Context演算器内のContext値は、Contextメモリ群に保存されたマクロブロックを処理する直前のContextの値を用いて、そのRAWデータとして処理されたマクロブロックを処理する直前の状態に復元される
Here, when the restriction monitoring /
なお、マクロブロックが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
図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
この装置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
なお、出力バッファ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
逆に、出力バッファから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
図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
この装置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
CAVLC処理器63には、ヘッダ情報と量子化された係数情報がシンボルデータとして入力され、従来のMPEG2などと類似した、可変長テーブルを用いた可変長符号化が適用され、ビットデータとして出力される。ここでCAVLC処理器63は、従来の技術の図104で説明したCAVLC符号化器とContext保存器からなり、従来の保存器と同様に、既にCAVLC符号化器で符号化された情報、例えば、処理中のブロックだけでなく既に処理されたブロックにおける各ブロック内の非0係数の個数や直前に符号化された係数の値などが保存されるのに加えて、本発明におけるCAVLC処理器63では、再符号化信号が来たときにマクロブロックを符号化する直前の状態に戻れる様に、マクロブロックを符号化する直前のContextの状態を保存しておくことが可能である。CAVLC符号化器は、このContext保存器からの情報をもとにシンボルに適用する可変長符号テーブルを切り替えることが可能である。なお、Context保存器にはリセット時などに用いられるContextの初期状態も保存される。
The
制限監視器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
この制限監視器64では、このカウンタ75があらかじめ設定された閾値を超えてしまった場合、その符号化データは無効であることを示す信号(以下、再符号化信号)を、出力バッファ65とパラメータ設定器66に対して出力する。この再符号化信号を受け取ったパラメータ設定器66は、再度この閾値を超えない様に注意して符号化パラメータを設定し直し、符号化対象のマクロブロックデータを再符号化処理する。また、再符号化信号を受け取った出力バッファ65は、内部に蓄積された符号化対象マクロブロックのビットデータを全て削除し、新たな符号化パラメータで符号化されたマクロブロックデータの入力を待つ。
In the
図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
この装置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
図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
まず、各マクロブロックを処理する始めは、経路選択器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
また、実装の方法としては、装置80においては、必ずしも制限監視部86は実装されるとは限らない。その場合には、CABAC符号化器90において入出力されるデータ量は監視されない。
Further, as a mounting method, the restriction monitoring unit 86 is not necessarily mounted in the
なお、装置80ではエントロピー復号化としてCABACを適用した際の、本発明における画像情報復号化装置の実施例を示したが、既に、画像符号化装置の実施例でも示したとおり、このCABAC処理部はCAVLC処理部で置き換えることが可能であり、その実装方法は符号化装置の実施例でも説明した通り、ほとんど1対1で類似しているため、ここでは説明を割愛する。なお、その符号化装置と同様に、マクロブロックがRAWデータで符号化された際のCAVLCのContextの更新の仕方をあらかじめ定義しておく。
In the
本発明におけるビットストリームの実施例の説明
次に、本発明における符号化されたビットストリームの実施例について示す。ここまでの説明でも述べた様に、本発明ではビットストリーム内に圧縮したデータでも、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 and the input / output bit counter of the decoder are 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 (1)
変換手段が上記画像データをブロック毎に分割し、該分割されたブロック毎に変換処理を施す変換ステップと、
上記変換処理の結果に対してエントロピー符号化手段がCABAC符号化処理若しくはCAVLC符号化処理を施すエントロピー符号化ステップとを含み、
上記エントロピー符号化された結果として生成される出力ビットストリームのヘッダに対して、上記CABAC符号化処理若しくはCAVLC符号化処理のどちらの符号化処理が施されたかを示す選択情報を埋め込み、
上記変換手段によってブロック毎に分割された画像データに対して、上記変換処理も上記エントロピー符号化処理も行わない場合に、上記変換処理及び上記エントロピー符号化処理を行わない出力ビットストリームのヘッダにブロックタイプを示す情報を埋め込む
ことを特徴とする符号化方法。 In an encoding method for encoding input image data,
A conversion step in which the conversion means divides the image data into blocks, and performs conversion processing for each of the divided blocks;
An entropy encoding step in which an entropy encoding means performs a CABAC encoding process or a CAVLC encoding process on the result of the conversion process,
Embedding selection information indicating whether the CABAC encoding process or the CAVLC encoding process has been performed on the header of the output bitstream generated as a result of the entropy encoding,
When neither the conversion process nor the entropy encoding process is performed on the image data divided into blocks by the conversion unit, a block is provided in the header of the output bit stream that is not subjected to the conversion process and the entropy encoding process. An encoding method characterized by embedding information indicating a type.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010290300A JP5062320B2 (en) | 2010-12-27 | 2010-12-27 | Encoding apparatus and encoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010290300A JP5062320B2 (en) | 2010-12-27 | 2010-12-27 | Encoding apparatus and encoding method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007241628A Division JP4687998B2 (en) | 2007-09-18 | 2007-09-18 | Encoding apparatus and encoding method |
Related Child Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012140523A Division JP5057497B2 (en) | 2012-06-22 | 2012-06-22 | Decoding device and decoding method |
JP2012140526A Division JP5057498B2 (en) | 2012-06-22 | 2012-06-22 | Decoding device and decoding method |
JP2012140521A Division JP5057495B2 (en) | 2012-06-22 | 2012-06-22 | Decoding device and decoding method |
JP2012140522A Division JP5057496B2 (en) | 2012-06-22 | 2012-06-22 | Encoding apparatus and encoding method |
JP2012140525A Division JP5692172B2 (en) | 2012-06-22 | 2012-06-22 | Decoding device, decoding method, and decoding program. |
JP2012140520A Division JP5057494B2 (en) | 2012-06-22 | 2012-06-22 | Encoding apparatus and encoding method |
JP2012140524A Division JP5500210B2 (en) | 2012-06-22 | 2012-06-22 | Encoding apparatus, encoding method, and encoding program |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011061878A true JP2011061878A (en) | 2011-03-24 |
JP2011061878A5 JP2011061878A5 (en) | 2012-07-12 |
JP5062320B2 JP5062320B2 (en) | 2012-10-31 |
Family
ID=43948862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010290300A Expired - Lifetime JP5062320B2 (en) | 2010-12-27 | 2010-12-27 | Encoding apparatus and encoding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5062320B2 (en) |
Citations (5)
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 |
-
2010
- 2010-12-27 JP JP2010290300A patent/JP5062320B2/en not_active Expired - Lifetime
Patent Citations (5)
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 |
---|---|
JP5062320B2 (en) | 2012-10-31 |
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 | |
JP5057496B2 (en) | Encoding apparatus and encoding method | |
JP5692172B2 (en) | Decoding device, decoding method, and decoding program. | |
JP5057494B2 (en) | Encoding apparatus and encoding method | |
JP5057495B2 (en) | Decoding device and decoding method | |
JP5062320B2 (en) | Encoding apparatus and encoding method | |
JP5500210B2 (en) | Encoding apparatus, encoding method, and encoding program | |
JP5041062B2 (en) | Decoding device and decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120528 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20120528 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20120606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120622 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120710 |
|
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: 20120723 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5062320 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150817 Year of fee payment: 3 |
|
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 |