JP2010004284A - Image decoder, and image decoding method - Google Patents

Image decoder, and image decoding method Download PDF

Info

Publication number
JP2010004284A
JP2010004284A JP2008160765A JP2008160765A JP2010004284A JP 2010004284 A JP2010004284 A JP 2010004284A JP 2008160765 A JP2008160765 A JP 2008160765A JP 2008160765 A JP2008160765 A JP 2008160765A JP 2010004284 A JP2010004284 A JP 2010004284A
Authority
JP
Japan
Prior art keywords
coefficient
zero
zero coefficient
coeff
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008160765A
Other languages
Japanese (ja)
Inventor
Satoshi Takegawa
智 竹川
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008160765A priority Critical patent/JP2010004284A/en
Publication of JP2010004284A publication Critical patent/JP2010004284A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image decoder and an image decoding method which enhance a processing rate by concurrent decoding, and moreover prevent an increase in circuit scale. <P>SOLUTION: An input buffer 103 stores a non-zero coefficient string not containing a zero coefficient. A means for generating parameters generates a plurality of parameters which indicate a zero coefficient inserting position and are divided into a plurality of parts for each predetermined process unit. An output buffer 106 stores a coefficient string containing a zero coefficient. A plurality of tables 108a, 108b are provided for each of a plurality of process units to output the positions of a zero coefficient and a non-zero coefficient and the number of non-zero coefficients at the output buffer in correspondence to the plurality of parameters. A plurality of coefficient selecting circuits 105a, 105b are provided for each of the plurality of process units to determine the indexes of the zero and non-zero coefficients in the coefficient string to be regenerated by outputs of the plurality of tables, transfer the non-zero coefficient to the output buffer, and write the zero coefficient to the output buffer. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、画像復号装置及び画像復号方法に係り、特に動画フォーマットH.264におけるCABAC符号化されたデータを復号する画像復号装置及び画像復号方法に関する。   The present invention relates to an image decoding apparatus and an image decoding method. The present invention relates to an image decoding apparatus and an image decoding method for decoding CABAC encoded data in H.264.

オーディオ・ビジュアル(AV)・マルチメディア・システムの分野において、高度動画像圧縮符号化標準(AVC:Advanced Video Coding)は、H.264/AVCと呼ばれている。   In the field of audio-visual (AV) multimedia systems, Advanced Video Coding (AVC) is an H.264 standard. H.264 / AVC.

H.264/AVCでは、離散コサイン変換(DCT:Discrete Cosine Transform)係数や動きベクトルなど、シンタックスで伝送することが規定されている情報である、シンタックス要素のエントロピー符号化(可変長符号化)方式として、単純な表による変換の他に高効率な符号化方式が用意されており、高い符号化効率が必要とされるDCT係数の符号化時などに適用される。   H. In H.264 / AVC, syntax element entropy coding (variable length coding), which is information specified to be transmitted in syntax, such as discrete cosine transform (DCT) coefficients and motion vectors. In addition to conversion using a simple table, a highly efficient encoding method is prepared, which is applied when encoding DCT coefficients that require high encoding efficiency.

このような高効率な符号化方式として、コンテキスト適応型2値算術符号化方式(CABAC:Context Adaptive Binary Arithmetic Coding)と呼ばれる方式がある。   As such a highly efficient coding method, there is a method called context adaptive binary arithmetic coding (CABAC).

CABAC方式の符号化装置は、通常の2値算術符号化器と、多値信号(例えば、−3或いは+6などの信号)を2値信号(0と1の信号)に変換するための2値化部と、符号化すべき2値信号の発生確率を周囲の状況に応じて計算・更新するコンテキスト計算部を備えている。2値化部は、入力された多値シンタックス要素を可変長の2値シンボル列に変換するものである。CABAC符号化装置では、2値化シンボルの1ビットごとに、コンテキスト情報に基づいて適応的に確率モデルを切り替えながら算術符号化を行う。   The CABAC encoding apparatus includes a normal binary arithmetic encoder and a binary for converting a multilevel signal (for example, a signal of -3 or +6) into a binary signal (a signal of 0 and 1). And a context calculator that calculates / updates the occurrence probability of the binary signal to be encoded according to the surrounding situation. The binarization unit converts the input multi-value syntax element into a variable-length binary symbol string. In the CABAC encoding apparatus, arithmetic encoding is performed for each bit of the binary symbol while adaptively switching the probability model based on the context information.

本願明細書においては、動画フォーマットH.264上での残差ブロックCABAC(residual_block_cabac)符号化されたシンタックス要素の画素データ係数列をデコードする際に適用されるCABACデコーダについて説明する。   In the present specification, the moving image format H.264 is used. A CABAC decoder applied when decoding a pixel data coefficient sequence of a syntax element encoded with a residual block CABAC (residual_block_cabac) on H.264 will be described.

動画フォーマットH.264において、シンタックス要素coeff_abs_level_minus1[]、coeff_sign_flag[]([]内には係数列の各係数に対応する番号を示すインデックス(Index)が、0以上の整数で入る)から求めたcoeffLevel(係数列の各係数)のIndex(coeffLevelの各係数に対応した番号を示す指標)をデコードする際、そのIndexはsignificant_coeff_flag[]、last_significant_coeff_flag[]により決定される。規格書に記載されている順序/方法でcoeffLevelに対するIndexのデコードを行うと、あるcoeffLevelのIndexを決定した後に次のcoeffLevelのIndexを決定することとなる。つまり、1つのcoeffLevelのIndexを決定してから次のcoeffLevelのIndexを決定する処理に移る。   Movie format In H.264, coeffLevel (coefficient sequence) obtained from syntax elements coeff_abs_level_minus1 [] and coeff_sign_flag [] ([] indicates an index (Index) indicating a number corresponding to each coefficient in the coefficient sequence is an integer of 0 or more). When decoding an index (an index indicating a number corresponding to each coefficient of coeffLevel), the index is determined by significant_coeff_flag [] and last_significant_coeff_flag []. When the index for the coeffLevel is decoded by the order / method described in the standard document, the index of the next coeffLevel is determined after the index of a certain coeffLevel is determined. That is, after determining the index of one coeffLevel, the process proceeds to the process of determining the index of the next coeffLevel.

その結果、マクロブロック(MB)内に係数が少ない場合はデコード処理が早く終わるが、係数が多く存在する場合、その分デコード処理に時間がかかり、ワーストケースでは係数の数(384係数)サイクル+レイテンシの時間を要する。   As a result, when there are few coefficients in the macroblock (MB), the decoding process ends early, but when there are many coefficients, the decoding process takes time, and in the worst case, the number of coefficients (384 coefficients) cycle + It takes time for latency.

ところで、このように係数列をデコードする際に、順次にIndexのデコードを行うと、significant_coeff_flag[]、last_significant_coeff_flag[]を1シンボルずつ処理するので、処理サイクル数が多くなり、処理時間が膨大なるという問題がある。   By the way, when decoding the coefficient sequence in this way, if the index is decoded sequentially, significant_coeff_flag [] and last_significant_coeff_flag [] are processed one symbol at a time, which increases the number of processing cycles and increases the processing time. There's a problem.

この問題を解消する方法として、本出願人はsignificant_coeff_flag[]、last_significant_coeff_flag[]を参照テーブルから同時引き(並列化)することによってデコード処理を高速化させるという提案をしている(例えば、特許文献1参照)。   As a method for solving this problem, the present applicant has proposed to speed up the decoding process by simultaneously retrieving (parallelizing) significant_coeff_flag [] and last_significant_coeff_flag [] from a reference table (for example, Patent Document 1). reference).

しかしながら、特許文献1では処理速度を向上できるが、並列化するときに参照テーブルが大きくなるという問題がある。
特開2006−166344号公報
However, although patent document 1 can improve processing speed, there exists a problem that a reference table becomes large when parallelizing.
JP 2006-166344 A

そこで、本発明は上記の問題に鑑み、デコードする際に並列化処理を用いて処理速度を向上させることができ、しかも回路規模の増大を防ぐことができる画像復号装置及び画像復号方法を提供することを目的とするものである。   Therefore, in view of the above problems, the present invention provides an image decoding apparatus and an image decoding method that can improve processing speed by using parallel processing when decoding and can prevent an increase in circuit scale. It is for the purpose.

本願発明の一態様によれば、所定の動画フォーマットのゼロ係数を含まない非ゼロ係数列を入力し、デコードして、ゼロ係数を含めた元の係数列を再現する画像復号装置であって、インデックスが決定される前の前記非ゼロ係数列を格納する入力側バッファと、前記非ゼロ係数列の間にゼロ係数を挿入する位置を示すパラメータの生成手段であって、所定の処理単位ごとに複数に分割して用いられる複数のパラメータを生成する手段と、インデックスが決定されたゼロ係数を含む係数列を格納する出力側バッファと、分割した前記複数の処理単位毎に設けられ、分割した前記複数のパラメータによる複数の入力に対応して、前記出力側バッファにおけるゼロ係数及び非ゼロ係数の位置と非ゼロ係数の個数を出力することが可能な複数のテーブルと、分割した前記複数の処理単位毎に設けられ、前記複数のテーブルの出力に応じて、再現される係数列のゼロ係数及び非ゼロ係数のインデックスを決定し、前記入力側バッファから前記出力側バッファへ非ゼロ係数を転送し、前記出力側バッファへゼロ係数を書き込む複数の係数選択回路と、を具備し、ゼロ係数を含めた再現される係数列に対するインデックスを同時に決定することを特徴とする画像復号装置が提供される。   According to one aspect of the present invention, there is provided an image decoding apparatus for inputting a non-zero coefficient sequence that does not include a zero coefficient of a predetermined moving image format, decoding, and reproducing the original coefficient sequence including the zero coefficient, An input side buffer for storing the non-zero coefficient sequence before an index is determined, and a parameter generating means for indicating a position at which a zero coefficient is inserted between the non-zero coefficient sequences, for each predetermined processing unit Means for generating a plurality of parameters used by dividing into a plurality, an output side buffer for storing a coefficient sequence including a zero coefficient for which an index is determined, and provided for each of the plurality of divided processing units. A plurality of tables capable of outputting the positions of the zero and non-zero coefficients and the number of non-zero coefficients in the output buffer in response to a plurality of inputs by a plurality of parameters. Provided for each of the plurality of divided processing units, and determining the zero coefficient and non-zero coefficient indexes of the coefficient sequence to be reproduced according to the output of the plurality of tables, and from the input side buffer to the output side A plurality of coefficient selection circuits for transferring a non-zero coefficient to a buffer and writing the zero coefficient to the output-side buffer, and simultaneously determining an index for a reproduced coefficient sequence including the zero coefficient. An image decoding device is provided.

本願発明の他の態様によれば、所定の動画フォーマットのゼロ係数を含まない非ゼロ係数列を入力し、デコードして、ゼロ係数を含めた元の係数列を再現する画像復号方法であって、前記非ゼロ係数列の間にゼロ係数を挿入する位置を示すパラメータを所定の処理単位に分割し、この分割した複数の処理単位毎に設けられた複数のテーブルに対して、前記非ゼロ係数列が格納された入力側バッファの非ゼロ係数列の格納位置と、再現される係数列に対応するインデックス決定後の出力側バッファの係数列の格納位置とをテーブル参照し、ゼロ係数を含めた再現される係数列に対応するインデックスを同時に算出することを特徴とする画像復号方法が提供される。   According to another aspect of the present invention, there is provided an image decoding method for inputting a non-zero coefficient sequence that does not include a zero coefficient in a predetermined moving image format, and decoding the original coefficient string including the zero coefficient. , A parameter indicating a position where a zero coefficient is inserted between the non-zero coefficient sequences is divided into predetermined processing units, and the non-zero coefficient is applied to a plurality of tables provided for each of the divided processing units. Refer to the table for the storage location of the non-zero coefficient sequence in the input buffer where the column is stored and the storage location of the coefficient sequence in the output buffer after index determination corresponding to the coefficient sequence to be reproduced. There is provided an image decoding method characterized by simultaneously calculating an index corresponding to a reproduced coefficient sequence.

本発明によれば、デコードする際に並列化処理を用いて処理速度を向上させることができ、しかも回路規模の増大を防ぐことができる画像復号装置及び画像復号方法を提供できる。   According to the present invention, it is possible to provide an image decoding apparatus and an image decoding method that can improve the processing speed by using parallel processing when decoding and can prevent an increase in circuit scale.

発明の実施の形態について図面を参照して説明する。
本発明の実施形態を図1乃至図6を参照して説明する前に、図7及び図8を参照して本発明の関連技術を説明する。
Embodiments of the invention will be described with reference to the drawings.
Prior to describing the embodiment of the present invention with reference to FIGS. 1 to 6, the related art of the present invention will be described with reference to FIGS.

図7に示す画像復号装置100は、外部より送信されてくる非ゼロの画素データ係数列(ビットストリーム)を入力し、入力パラメータ(coeff_abs_level_minus1、coeff_sign_flag、numCoeff、significant_coeff_flag、last_significant_coeff_flagおよびmaxNumCoeff)を作成するシンタックスデコーダ101と、対応するシンタックス(syntax)からインデックス(index)が決定される前の係数列の係数(level)をデコードするlevelデコード回路102と、デコードされたlevelを格納するlevelバッファ103と、last_significant_coeff_flagをsignificant_coeff_flagへ反映させlevelの有無(非ゼロ,ゼロ)をデコードするlast_significant_coeff_flag回路104と、係数毎にIndexを決定する選択回路105と、Indexが決定されたlevelを格納するcoeffバッファ106と、ジグザクスキャン(ZigZagScan)処理を行うジグザクスキャン回路107とを備えている。   The image decoding apparatus 100 illustrated in FIG. 7 receives a non-zero pixel data coefficient sequence (bitstream) transmitted from the outside, and generates input parameters (coeff_abs_level_minus1, coeff_sign_flag, numCoeff, significant_coeff_flag, last_significant_coeff_flag, and maxNumCoeff). A tax decoder 101, a level decoding circuit 102 that decodes the coefficient (level) of the coefficient sequence before the index is determined from the corresponding syntax, and a level buffer 103 that stores the decoded level The last_significant_coeff_flag is reflected in the significant_coeff_flag, the last_significant_coeff_flag circuit 104 that decodes the presence / absence (non-zero, zero) of the level, the selection circuit 105 that determines the Index for each coefficient, the coeff buffer 106 that stores the level at which the Index is determined, Zigzag scan times to perform zigzag scan (ZigZagScan) processing And a 107.

図8は図7の関連技術のデコード方法を説明する模式図であって、(a)はCABACデコード後の2値係数列を示す図、(b)は係数列パラメータA,B,C,Dの説明図、(c)はデコード方法の処理フロー図を示している。   8A and 8B are schematic diagrams for explaining the decoding method of the related art of FIG. 7, wherein FIG. 8A is a diagram showing a binary coefficient sequence after CABAC decoding, and FIG. 8B is a coefficient sequence parameter A, B, C, D. FIG. 4C is a processing flowchart of the decoding method.

このような構成において、シンタックスデコーダ101には、図示しない送信側(画像符号装置側)よりゼロ(0)係数を除いた非ゼロ係数のみの係数列のビットストリーム(bitstream)データが送信される。このような非ゼロ係数のみのストリームとなっているのは、ゼロ係数を除いた非ゼロ係数のみを集めて圧縮した方が伝送効率がよいためである。送信されてきたデータはビットストリーム格納部10に格納される。CABACデコーダ11では、図8(a)のような2値係数列がデコードされる。CABACデコード後の2値係数列は2値係数列格納部12に格納される。   In such a configuration, the bit stream (bitstream) data of the coefficient sequence of only non-zero coefficients excluding the zero (0) coefficient is transmitted to the syntax decoder 101 from a transmission side (image coding apparatus side) (not shown). . The reason for this stream of only non-zero coefficients is that transmission efficiency is better when only non-zero coefficients excluding zero coefficients are collected and compressed. The transmitted data is stored in the bitstream storage unit 10. The CABAC decoder 11 decodes a binary coefficient sequence as shown in FIG. The binary coefficient string after CABAC decoding is stored in the binary coefficient string storage unit 12.

図8(b)は係数列パラメータA,B,C,Dの定義を表しており、Aは非ゼロ係数であれば“1”と表示される値であることを意味する。Bは最後の非ゼロ係数であれば“1”と表示される値であることを意味する。Cは係数の絶対値マイナス1の値が表示されることを意味する。Dは係数の符号として“0”でプラスを表示し、“1”でマイナスを表示することを意味する。   FIG. 8B shows the definition of the coefficient sequence parameters A, B, C, and D, which means that A is a value displayed as “1” if it is a non-zero coefficient. If B is the last non-zero coefficient, it means that the value is displayed as “1”. C means that the absolute value of the coefficient minus 1 is displayed. D means that “0” is displayed as a sign of a coefficient, and “1” is displayed as a minus sign.

非ゼロ係数のビットストリームをCABACデコーダ11でデコードすると、C列の部分が数値になる。C列には数値から1引いた値が入っていて、これと組み合わせてD列に符号が入っている。+か−かの符号である。D列で1ならば−、0ならば+ということになる。C列の上から2番目をみると、“7”となっている。C列には、係数の絶対値−1が入っているので、本当の係数値は+1して“8”である。しかもD列の同じ上から2番目が“1”なので、“−8”という値になる。同様にして、C列,D列の1番目は“9”,“0”なので“+10”になる。   When the bit stream of non-zero coefficients is decoded by the CABAC decoder 11, the portion of the C column becomes a numerical value. The C column contains a value obtained by subtracting 1 from the numerical value, and in combination with this, the D column contains a code. It is a sign of + or-. If it is 1 in the D column, it is-, and if it is 0, it is +. Looking at the second column from the top, it is “7”. Since the absolute value of the coefficient −1 is entered in the C column, the true coefficient value is incremented by “8”. Moreover, since the second from the top in the D column is “1”, the value is “−8”. Similarly, since the first of the C column and the D column is “9” and “0”, it becomes “+10”.

ここでは、C列,D列は既にデコードされた係数値があるとします。問題とするのは、A列とB列を組み合わせて如何に、C列,D列をデコードしたゼロ係数を含まない非ゼロ係数列の間にゼロ係数を挟むかという点である。A列,B列のパラメータによって非ゼロ係数列の何処にゼロ係数を挟んだよいのか、言い換えるとゼロ係数列の何処に非ゼロ係数を配置したらよいのかが分かるようになっている。   Here, it is assumed that C and D columns have already decoded coefficient values. The problem is how to combine the A column and the B column and put the zero coefficient between the non-zero coefficient columns that do not include the zero coefficient obtained by decoding the C column and the D column. According to the parameters of the A column and the B column, it is possible to know where the zero coefficient should be sandwiched in the non-zero coefficient column, in other words, where to place the non-zero coefficient in the zero coefficient column.

アルファベッドで書かれた用語の意味を説明する。
maxNumCoeff…処理を行うblock内にあるデコードされる残差(係数)の最大個数。ここで はcoded_block_flagの存在と、係数のゼロ埋めに使用される。図8(c)の係数列マトリックス16の例では、4×4=16個が係数の最大個数であり、maxNumCoeff=16である。
Explain the meaning of terms written in Alphabed.
maxNumCoeff ... Maximum number of residuals (coefficients) to be decoded in the block to be processed. Here, it is used for the presence of coded_block_flag and zero padding of coefficients. In the example of the coefficient string matrix 16 in FIG. 8C, 4 × 4 = 16 is the maximum number of coefficients, and maxNumCoeff = 16.

significant coeff flag…非ゼロ係数の有無を示すフラグ。1の場合には以下のことが言える。(1) 対応する位置にある係数がゼロではない。(2) 同じIndexのlast_significant_coeff_flagが意味を成す。   significant coeff flag: Flag indicating the presence or absence of non-zero coefficient. In the case of 1, the following can be said. (1) The coefficient at the corresponding position is not zero. (2) Last_significant_coeff_flag with the same Index makes sense.

last_significant_coeff_flag…最終非ゼロ係数であることを示すフラグ。対応するsignificant_coeff_flagが1の時にのみ 意味をなす。このフラグが1の場合は処理block内で最終非ゼロ係数となる。また、最終非ゼロ係数=最終Indexの場合にはゼロの場合がある。   last_significant_coeff_flag: Flag indicating that it is the last non-zero coefficient. It only makes sense when the corresponding significant_coeff_flag is 1. When this flag is 1, it becomes the final non-zero coefficient in the processing block. Further, when the final non-zero coefficient = the final index, it may be zero.

coeffLevel[]…ooeff_level_abs_minus1より再現される係数列。残差(residual)とも呼ばれる。残差自身のデコードは非ゼロ係数のみ行われ、処理block内の非ゼロ係数の場所はsignificant_coeff_flag / last_significant_coeff_flagにより決定される。   coeffLevel [] ... Coefficient sequence reproduced from ooeff_level_abs_minus1. Also called residual. Only the non-zero coefficient is decoded in the residual itself, and the location of the non-zero coefficient in the processing block is determined by significant_coeff_flag / last_significant_coeff_flag.

level…デコード順の非ゼロ係数列。 coeffLevelロに並べ替えられる前の状態をさすことが多い。   level: Non-zero coefficient sequence in decoding order. It often refers to the state before being sorted into coeffLevel.

index…配列の添え字。coeffLevel□の添え字として説明している場合が多い。   index ... The array index. It is often explained as a subscript of coeffLevel □.

図8(c)に示すように、ビットストリーム格納部10に格納されたビットストリーム中からH.264の係数データを取り出しデコードする際、ビットストリームはCABACデコーダ11においてCABACデコード(復号)され、一旦、図8(a)に示すような2値係数列(bin string列)となり、2値係数列格納部12に格納される。また、2値係数列格納部12に接続されたlast_significant_coeff_flagデコード回路104において、CABACデコード後の2値係数列が非ゼロ係数であるかを示すパラメータ(A列のsignificant_coeff_flag)を、最終非ゼロ係数であるかを示すパラメータ(B列のlast_significant_coeff_flag)へ反映させlevel(非ゼロ係数)の有無をデコードする。   As shown in FIG. 8 (c), the H.264 from the bitstream stored in the bitstream storage unit 10. When the H.264 coefficient data is extracted and decoded, the CABAC decoder 11 performs CABAC decoding (decoding) of the bit stream to temporarily form a binary coefficient string (bin string string) as shown in FIG. It is stored in the storage unit 12. Further, in the last_significant_coeff_flag decoding circuit 104 connected to the binary coefficient sequence storage unit 12, a parameter (significant_coeff_flag of the A column) indicating whether the binary coefficient sequence after CABAC decoding is a non-zero coefficient is a final non-zero coefficient. The presence / absence of level (non-zero coefficient) is decoded by reflecting it in a parameter (last_significant_coeff_flag in column B) indicating whether or not there is.

選択回路105では、CD列13から得られた非ゼロ係数列(level)に対して、levelの有無を示すcoeff_flagを参照してゼロ(0)係数を含めた係数列(level)を生成する際に、ゼロ係数を含めた係数列の生成と共にその生成した係数列に対応したインデックス(係数列マトリックス16を得るのに必要な順番を示す番号)を生成(決定)する。   When the selection circuit 105 generates a coefficient sequence (level) including zero (0) coefficients with reference to coeff_flag indicating the presence / absence of level for the non-zero coefficient sequence (level) obtained from the CD sequence 13 In addition, a coefficient sequence including zero coefficients is generated and an index corresponding to the generated coefficient sequence (a number indicating the order necessary to obtain the coefficient sequence matrix 16) is generated (determined).

図8(a)に示すCABACデコード後の2値係数列の中から、CD列13の内容のデータ部分(非ゼロ係数の数値)が生成される。2値係数列データをデコードしゼロ係数を含んだ元通りの係数列を得るには、図8(c)に示すように、予めCD列13に基づいて生成された非ゼロ係数列(ゼロ係数を含まない)と、AB列14に基づいて生成された非ゼロ係数の有無を示すパラメータとを用いて、係数列15を作成し、結果として係数列マトリックス16を得ることができる。   From the binary coefficient sequence after CABAC decoding shown in FIG. 8 (a), the data portion (the numerical value of the non-zero coefficient) of the content of the CD sequence 13 is generated. In order to decode the binary coefficient string data and obtain the original coefficient string including the zero coefficient, as shown in FIG. 8 (c), a non-zero coefficient string (zero coefficient coefficient) previously generated based on the CD string 13 is obtained. And a parameter indicating whether or not there is a non-zero coefficient generated based on the AB sequence 14, the coefficient sequence 15 is created, and as a result, the coefficient sequence matrix 16 can be obtained.

動画フォーマット規格H.264において、CD列13のcoeff_abs_level_minus1[]、coeff_sign_flag[]に基づいて再現される係数列(coeffLevel)のIndexをデコードする際、そのIndexは選択回路105でAB列14のsignificant_coeff_flag[]、last_significant_coeff_flag[]に基づいて決定される。規格書に記載されている順序/方法で再現される係数列(coeffLevel)に対するIndexのデコードを行うと、あるlevelのIndexを決定した後に次のlevelのIndexを決定することとなる。   In the video format standard H.264, when the index of the coefficient sequence (coeffLevel) reproduced based on coeff_abs_level_minus1 [] and coeff_sign_flag [] of the CD sequence 13 is decoded, the index is selected by the selection circuit 105 and significant_coeff_flag [ ], Last_significant_coeff_flag []. When the index is decoded for the coefficient sequence (coeffLevel) reproduced in the order / method described in the standard, the index of the next level is determined after the index of a certain level is determined.

従って、マクロブロック(MacroBlock)内に係数(level)が多く存在する場合、その分処理に時間がかかり、ワーストケースでは係数の個数(例えば384係数)サイクル+レイテンシの時間を要する。   Accordingly, when there are many coefficients (level) in a macroblock (MacroBlock), the processing takes time, and in the worst case, the number of coefficients (for example, 384 coefficients) cycle + latency is required.

そこで、本発明の実施形態では、デコードされたlevel(Indexが決定される前のcoeffLevel)に対してIndexを決定する際に、非ゼロ係数列を所定の処理単位(例えば4画素単位)に分割し、この分割した複数の処理単位ごとに複数のテーブルを設け、ゼロ係数を挿入する位置を示すパラメータ(last_significant_coeff_flagを反映させたsignificant_coeff_flag)で複数のテーブルを一度に引くようすることにより、一度に複数のIndexを決定することによって、テーブルを増大させることなく処理速度を向上させることを可能とした。   Therefore, in the embodiment of the present invention, when determining the Index with respect to the decoded level (coeffLevel before the Index is determined), the non-zero coefficient sequence is divided into predetermined processing units (for example, 4 pixel units). By providing a plurality of tables for each of the plurality of divided processing units and drawing a plurality of tables at a time with a parameter (significant_coeff_flag reflecting the last_significant_coeff_flag) indicating the position where the zero coefficient is inserted, By determining the index, it is possible to improve the processing speed without increasing the table.

[第1の実施形態]
図1は本発明の第1の実施形態の画像復号装置のブロック図を示している。本第1の実施形態として、4画素2並列 計8画素単位で処理を行う例を示す。
[First Embodiment]
FIG. 1 shows a block diagram of an image decoding apparatus according to the first embodiment of the present invention. As the first embodiment, an example is shown in which processing is performed in units of 8 pixels in total of 4 pixels and 2 parallels.

図1に示す画像復号装置100Aは、外部より送信されてくる非ゼロ係数の画素データ係数列(ビットストリーム)を入力し、パラメータcoeff_abs_level_minus1、coeff_sign_flag、numCoeff、significant_coeff_flag、last_significant_coeff_flagおよびmaxNumCoeffを作成するシンタックスデコーダ101と、対応するシンタックス(syntax)データからインデックス(Index)が決定される前の非ゼロ係数(level)をデコードするlevelデコード回路102と、デコードされた非ゼロ係数(level)を格納する入力側バッファとしてのlevelバッファ103と、パラメータlast_significant_coeff_flagをsignificant_coeff_flagへ反映させlevelの有無をデコードし、coeff_flagとして出力するlast_significant_coeff_flagデコード回路104と、coeff_flag(デコード回路104の出力)の上位4bitを参照し、coeffバッファ106に対するlevelバッファ103のIndex、及び非ゼロ係数の個数(coeff_num_up)を得るテーブルであって、8画素単位で処理した場合の、4から7番目の画素を処理する上位側係数選択テーブル108aと、coeff_flag(デコード回路104の出力)の下位4bitを参照し、coeffバッファ106に対するlevelバッファ103のIndex、及び非ゼロ係数の個数(coeff_num_lw)を得るテーブルであって、8画素単位で処理した場合の、0から3番目の画素を処理する下位側係数選択テーブル108bと、上位側の非ゼロ係数の個数(coeff_num_up)と下位側の非ゼロ係数の個数(coeff_num_lw)とを加算し、非ゼロ係数の総数を算出する加算器109と、上位側係数選択テーブル108aの出力(index_pattern_up)に応じて、levelバッファ103から非ゼロ係数(level)を読み出し、係数毎にIndexを決定し、coeffバッファ106へ格納する上位側係数選択回路105aと、下位側係数選択テーブル108bの出力(index_pattern_lw)に応じて、levelバッファ103から非ゼロ係数(level)を読み出し、係数毎にIndexを決定し、coeffバッファ106へ格納する下位側係数選択回路105bと、Indexが決定された係数列(level)を格納するバッファであって、8画素単位で8bank構成の出力側バッファとしてのcoeffバッファ106と、Indexが決定された係数列(level)をIndex順にジグザクスキャン(ZigZagScan)処理を行うジグザクスキャン回路107とを備えている。   The image decoding apparatus 100A illustrated in FIG. 1 receives a non-zero coefficient pixel data coefficient sequence (bitstream) transmitted from the outside, and generates a syntax decoder that generates parameters coeff_abs_level_minus1, coeff_sign_flag, numCoeff, significant_coeff_flag, last_significant_coeff_flag, and maxNumCoeff. 101, a level decoding circuit 102 for decoding a non-zero coefficient (level) before an index (Index) is determined from corresponding syntax data, and an input for storing the decoded non-zero coefficient (level) The level buffer 103 as a side buffer, the parameter last_significant_coeff_flag is reflected in significant_coeff_flag, the presence / absence of level is decoded, the last_significant_coeff_flag decoding circuit 104 that outputs as coeff_flag, and the upper 4 bits of coeff_flag (output of the decoding circuit 104) are referenced, and the coeff buffer Leve for 106 l A table for obtaining the index of the buffer 103 and the number of non-zero coefficients (coeff_num_up), and when processing in units of 8 pixels, the upper coefficient selection table 108a for processing the fourth to seventh pixels, and coeff_flag ( This is a table for obtaining the index of the level buffer 103 with respect to the coeff buffer 106 and the number of non-zero coefficients (coeff_num_lw) with reference to the lower 4 bits of the output of the decoding circuit 104). Calculate the total number of non-zero coefficients by adding the lower-side coefficient selection table 108b that processes the third pixel, the number of non-zero coefficients on the upper side (coeff_num_up) and the number of non-zero coefficients on the lower side (coeff_num_lw) The non-zero coefficient (level) is read from the level buffer 103 in accordance with the adder 109 and the output (index_pattern_up) of the higher coefficient selection table 108a, the index is determined for each coefficient, and the coeff buffer The non-zero coefficient (level) is read from the level buffer 103 in accordance with the output (index_pattern_lw) of the higher-order coefficient selection circuit 105a and the lower-order coefficient selection table 108b to be stored in the fa 106, the Index is determined for each coefficient, and coeff A low-order coefficient selection circuit 105b to be stored in the buffer 106, a buffer for storing a coefficient sequence (level) for which the Index is determined, and a coeff buffer 106 as an output-side buffer having an 8-bank configuration in units of 8 pixels, and an Index A zigzag scan circuit 107 that performs a zigzag scan (ZigZagScan) process on the determined coefficient sequence (level) in the order of Index is provided.

なお、図1中の表記で、例えば、第0から第7ビットの8ビットのデータを[7:0]と表している。[7:4]は第4から第7ビットの上位4ビットのデータを、[3:0]は第0から第3ビットの下位4ビットのデータを表している。   In the notation in FIG. 1, for example, 8-bit data from 0th to 7th bits is represented as [7: 0]. [7: 4] represents the upper 4 bits of the 4th to 7th bits, and [3: 0] represents the lower 4 bits of the 0th to 3rd bits.

図2は図1のlast_significant_coeff_flagデコード回路104におけるlast_significant_coeff_flag/significant_coeff_flagのデコード動作を説明している。
まず、シンタックスデコーダ101によりデコードされたsignificant_coeff_flag、last_significant_coeff_flagおよびmaxNumCoeffを受け取る際に、last_significant_coeff_flagデコード回路104によりsignificant_coeff_flagへlast_significant_coeff_flagを反映させたcoeff_flagを生成する。coeff_flagには対応するbit位置に非ゼロ係数がある場合は“1”、ゼロ係数の場合は“0”が格納されている。
FIG. 2 explains the decoding operation of last_significant_coeff_flag / significant_coeff_flag in the last_significant_coeff_flag decoding circuit 104 of FIG.
First, when receiving significant_coeff_flag, last_significant_coeff_flag, and maxNumCoeff decoded by the syntax decoder 101, the last_significant_coeff_flag decoding circuit 104 generates coeff_flag in which last_significant_coeff_flag is reflected in significant_coeff_flag. In coeff_flag, “1” is stored when there is a non-zero coefficient at the corresponding bit position, and “0” is stored when there is a zero coefficient.

last_significant_coeff_flagは、significant_coeff_flagが"1"で且つlast_significant_coeff_flagが“1”のときのみに意味をなすので、図2で*印の値は任意の数であってもよい。   Since last_significant_coeff_flag is meaningful only when significant_coeff_flag is “1” and last_significant_coeff_flag is “1”, the value of * in FIG. 2 may be an arbitrary number.

last_significant_coeff_flagデコード回路104の出力であるcoeff_flagは、A列及びB列を組み合わせて生成される非ゼロ係数の有無、即ちゼロ係数及び非ゼロ係数を含んだ最大個数の係数を有する係数列について、ゼロ係数がどの位置にあるか、或いは非ゼロ係数がどの位置にあるかを示していると言える。   coeff_flag which is the output of the last_significant_coeff_flag decoding circuit 104 is the presence or absence of a non-zero coefficient generated by combining the A column and the B column, that is, the zero coefficient for the coefficient sequence having the maximum number of coefficients including the zero coefficient and the non-zero coefficient. It can be said that indicates the position where the non-zero coefficient exists.

なお、levelデコード回路102では、シンタックスデコーダ101から出力されたC列及びD列のcoeff_abs_level_minus1及びcoeff_sign_flagから非ゼロ係数(level)のデコードが行われ、そのデコードされた非ゼロ係数(level)がlevelバッファ103へ格納されているものとする。   In the level decoding circuit 102, non-zero coefficient (level) is decoded from coeff_abs_level_minus1 and coeff_sign_flag of the C column and D column output from the syntax decoder 101, and the decoded non-zero coefficient (level) is level. Assume that the data is stored in the buffer 103.

次に、非ゼロ係数の有無を表すcoeff_flagを使い、再現される係数列(coeffLevel[])に対する非ゼロ係数格納用levelバッファ103内での位置、および非ゼロ係数の個数を上位側/下位側係数選択テーブル108a/108bによりテーブル引きする。本実施形態では、4画素ずつ2並列に計8画素単位で処理を行うことから、8ビットのcoeff_flag[7:0]を上位側4ビット(coeff_flag[7:4])と下位側4ビット(coeff_flag[3:0])に分割し、それぞれに対して4画素用の2つのテーブル108a,108bを同時に引く構成になる。ここで、上位側係数選択テーブル108aと下位側係数選択テーブル108bとは全く同じ構成の4画素用のテーブルを2つ用意するだけでよい。このように2並列にして係数選択テーブルを2つ用いることにより、並列化せずに8画素用テーブルを1つだけ用いる場合に比べて係数選択テーブルの規模を小さくすることができる。しかも同じ構成の小さいテーブルを2つ用意すればよい。勿論、8ビットのcoeff_flag[7:0]を4分割し、それぞれに4つの係数選択テーブルを一度に用いてテーブル引きしてもよい。   Next, using coeff_flag indicating the presence / absence of non-zero coefficients, the position in the level buffer 103 for storing non-zero coefficients with respect to the reproduced coefficient sequence (coeffLevel []) and the number of non-zero coefficients are set to the upper side / lower side. The table is looked up by the coefficient selection table 108a / 108b. In this embodiment, since processing is performed in units of 8 pixels in parallel in units of 4 pixels, 8 bits of coeff_flag [7: 0] are converted to 4 bits of upper side (coeff_flag [7: 4]) and 4 bits of lower side ( coeff_flag [3: 0]), and two tables 108a and 108b for four pixels are simultaneously drawn for each. Here, the upper coefficient selection table 108a and the lower coefficient selection table 108b need only have two tables for four pixels having the same configuration. Thus, by using two coefficient selection tables in parallel, it is possible to reduce the scale of the coefficient selection table compared to the case where only one 8-pixel table is used without parallelization. In addition, two small tables having the same configuration may be prepared. Of course, the 8-bit coeff_flag [7: 0] may be divided into four, and the table may be looked up using four coefficient selection tables at a time.

テーブルにより、coeffLevel[]用バッファ(coeffバッファ106)のどの位置にlevelバッファ103のどの係数が当てはまるか、coeffLevel[]用バッファ(coeffバッファ106)のどの位置にゼロ係数が当てはまるか、当てはまる非ゼロ係数の数が決定される。   According to the table, to which position of the coeffLevel [] buffer (coeff buffer 106) which coefficient of the level buffer 103 is applied, to which position of the coeffLevel [] buffer (coeff buffer 106), the zero coefficient is applied, or non-zero to be applied The number of coefficients is determined.

ゼロ係数、非ゼロ係数の格納位置がテーブルにより決定されたら、対応する位置へ上位側/下位側係数選択回路105a/105bによりlevelバッファ103からcoeffバッファ106へ非ゼロ係数が転送される。ゼロ係数の場合はcoeffバッファ106へゼロ書き込みが行われる。このとき、上位側の係数選択回路105aでは下位側の係数選択テーブル108bによりテーブル引きされた非ゼロ係数(level)の個数分だけ、levelバッファ103から読み込むbankの位置をずらす。   When the storage positions of the zero coefficient and the non-zero coefficient are determined by the table, the non-zero coefficient is transferred from the level buffer 103 to the coeff buffer 106 by the upper / lower coefficient selection circuit 105a / 105b to the corresponding position. In the case of a zero coefficient, zero writing to the coeff buffer 106 is performed. At this time, the higher-order coefficient selection circuit 105a shifts the position of the bank to be read from the level buffer 103 by the number of non-zero coefficients (level) drawn by the lower-order coefficient selection table 108b.

最後に、次の処理のために、評価済み(デコード済み)の非ゼロ係数(level)lの個数だけlevelバッファ103をインクリメントし、出力側のcoeffバッファ106のbankを切り替えるための判定をする。   Finally, for the next processing, the level buffer 103 is incremented by the number of evaluated (decoded) non-zero coefficients (level) l, and a determination for switching the bank of the output coeff buffer 106 is made.

図3は4画素単位での上位側又は下位側の係数選択テーブル108a又は108bを示している。
図3において、符号20はlast_significant_coeff_flagデコード回路104の8ビット出力(AB列から得られた非ゼロ係数の有無を表すcoeff_flag)の内の上位側4ビットのcoeff_flag[7:4]又は下位側4ビットのcoeff_flag[3:0]を示している。
FIG. 3 shows the upper or lower coefficient selection table 108a or 108b in units of four pixels.
In FIG. 3, reference numeral 20 indicates coeff_flag [7: 4] of the upper 4 bits or the lower 4 bits of the 8-bit output of the last_significant_coeff_flag decoding circuit 104 (coeff_flag indicating the presence / absence of the non-zero coefficient obtained from the AB sequence). Of coeff_flag [3: 0].

符号21はcoeffバッファ106の下位側(又は上位側)4ビット分のIndex No.(正確にはバンク(bank)のIndex No.))を示している。4ビット分のIndex_patternの内、右上がりハッチングにて示すzの部分はゼロ係数を表し、右下がりハッチングにて示す部分は非ゼロ係数の位置(levelバッファ103のIndex No.)を表している。coeffバッファ106は再現される8ビット分のデータ(ゼロ係数と非ゼロ係数を含むデータ)が全て8ビット分のbankへ詰めて格納されるので、8ビット分のbankを全て使うとは限らず非ゼロ係数の個数(下位側と上位側の非ゼロ係数の総和)分だけのbankが使用される。   Reference numeral 21 indicates the lower 4 (or higher) Index No. of the coeff buffer 106 (more precisely, the index No. of the bank). Of the 4-bit Index_pattern, the z portion indicated by right-upward hatching represents the zero coefficient, and the portion indicated by right-downward hatching represents the position of the non-zero coefficient (Index No. of the level buffer 103). The coeff buffer 106 stores all 8-bit data to be reproduced (data including zero coefficient and non-zero coefficient) in a bank of 8 bits, and therefore, the bank of 8 bits is not always used. As many banks as the number of non-zero coefficients (the sum of the non-zero coefficients on the lower side and upper side) are used.

符号22は下位側(又は上位側)の4ビット分の係数の個数の内の非ゼロ係数の個数を示している。   Reference numeral 22 indicates the number of non-zero coefficients among the number of coefficients of 4 bits on the lower side (or higher side).

図3に示す係数選択テーブルを引くということは、このテーブルで入力(IN)側のlevelバッファ103のバンク(bank)と出力(OUT)側のcoeffバッファ106のバンク(bank)の対応付けを引くことを意味している。   The drawing of the coefficient selection table shown in FIG. 3 means that the bank of the level buffer 103 on the input (IN) side and the bank of the coeff buffer 106 on the output (OUT) side are drawn in this table. It means that.

図4はlast_significant_coeff_flagデコード回路104の出力であるcoeff_flagを入力として図3のテーブルを引き、再現される係数列のインデックス(Index)を決定する処理例を示している。
図4(a)はlast_significant_coeff_flagデコード回路104からのデコード出力(last_significant_coeff_flagをsignificant_coeff_flagに反映させた非ゼロ係数の有無を示す1又は0のデータ)、例えば8ビットのcoeff_flag[7:0]を示している。
FIG. 4 shows a processing example in which the table in FIG. 3 is drawn with the coeff_flag output from the last_significant_coeff_flag decoding circuit 104 as an input, and the index (Index) of the coefficient sequence to be reproduced is determined.
FIG. 4A shows a decoding output from the last_significant_coeff_flag decoding circuit 104 (1 or 0 data indicating the presence or absence of a non-zero coefficient in which last_significant_coeff_flag is reflected in significant_coeff_flag), for example, 8-bit coeff_flag [7: 0]. .

図4(b)は図4(a)の8ビットのcoeff_flag[7:0]を4ビットずつ上位側,下位側に分割したcoeff_flag[7:4]=0011,coeff_flag[3:0]=1101をそれぞれ、図3の係数選択テーブル108a,108bのの入力ビットとしたときの、ゼロ係数を含めて再現されるcoeffバッファ106の4ビット分のインデックス(Index)[3]〜[0]を、levelバッファ103のbankのIndex(index_pattern_up,index_pattern_lw)として示している。coeff_num_up,coeff_num_lwはそれぞれ、index_pattern_up又はindex_pattern_lw中の非ゼロ係数の個数を示している。   FIG. 4B shows the coeff_flag [7: 4] = 0011, coeff_flag [3: 0] = 1101 obtained by dividing the 8-bit coeff_flag [7: 0] of FIG. 3 is the 4-bit index (Index) [3] to [0] of the coeff buffer 106 reproduced including the zero coefficient when the input bits of the coefficient selection tables 108a and 108b in FIG. This is indicated as the index (index_pattern_up, index_pattern_lw) of the bank of the level buffer 103. coeff_num_up and coeff_num_lw indicate the number of non-zero coefficients in index_pattern_up or index_pattern_lw, respectively.

図4(c)はゼロ係数を含めて再現されるcoeffバッファ106の係数列(図8の符号15示すものに相当する)に対応したIndex[0]〜[7]を示している。Index[1],[6],[7]にはゼロ係数が設定され、Index[0],[2],[3]にはそれぞれlevelバッファ103のIndexに相当するlevel_buf[0],[1],[2]の各bankに格納された係数が設定されることを意味している。   FIG. 4C shows Index [0] to [7] corresponding to the coefficient sequence (corresponding to the reference numeral 15 in FIG. 8) of the coeff buffer 106 reproduced including the zero coefficient. Zero coefficients are set for Index [1], [6], and [7], and level_buf [0] and [1] corresponding to Index of the level buffer 103 are assigned to Index [0], [2], and [3], respectively. ], [2] means that the coefficient stored in each bank is set.

また、図4(c)の上位側のcoeff_bufで使用するlevelバッファ103のbankには下位側のcoeff_bufの非ゼロ係数の個数(ここでは図4(b)の下位側に示す“3”)が上位側のlevel_bufのIndexを表すためのオフセット(加算値)として付けられる(図4中の(b)から(c)への細い実線の矢印がそれを示している)。   Also, the bank of the level buffer 103 used in the upper coeff_buf in FIG. 4C has the number of non-zero coefficients of the lower coeff_buf (here, “3” shown on the lower side in FIG. 4B). It is added as an offset (addition value) for representing the index of the upper level level_buf (the thin solid arrow from (b) to (c) in FIG. 4 indicates this).

図5は図3の係数選択テーブルを引くことが、levelバッファ103を入力側(IN)のbankとし、coeffバッファ106を出力側(OUT)のbankとしたとき、INとOUTのbankの対応付け引くことを意味しているので、INとOUTの関係を、AB列から得られた非ゼロ係数の有無を表すcoeff_flag[7:0]の2つの実例について説明する。つまり、AB列に基づいて生成されるゼロ係数(又は非ゼロ係数)の挿入位置を示すパラメータを用いて、CD列よりデコードされた非ゼロ係数の間に、如何にしてゼロ係数(又は非ゼロ係数)が挿入されるかを説明する。   FIG. 5 shows that when the coefficient selection table of FIG. 3 is drawn, when the level buffer 103 is an input side (IN) bank and the coeff buffer 106 is an output side (OUT) bank, the IN and OUT banks are associated. The relationship between IN and OUT will be described with reference to two examples of coeff_flag [7: 0] representing the presence or absence of a non-zero coefficient obtained from the AB sequence. In other words, using the parameter indicating the insertion position of the zero coefficient (or non-zero coefficient) generated based on the AB sequence, the zero coefficient (or non-zero) is determined between the non-zero coefficients decoded from the CD sequence. A description will be given of whether the coefficient is inserted.

図5(a)はcoeff_flag[7:0]=0011101の場合におけるINとOUTの関係を示している。
IN側のlevelバッファ103の□の各bank0〜7にはゼロを含まない非ゼロ係数の値としてa〜hが入っている。OUT側のcoeffバッファ106の□の各bank0〜7には図4で説明したことから、coeffバッファ106のbank1,6,7にゼロ係数が入る結果、coeffバッファ106の各bank0〜7にはa,0,b,c,d,e,0,0が入り、ゼロ係数を含んだ係数列が再現される。
FIG. 5A shows the relationship between IN and OUT when coeff_flag [7: 0] = 0011101.
The banks 0 to 7 in the squares of the IN side level buffer 103 contain a to h as non-zero coefficient values that do not include zero. Since the bank 0 to 7 of the □ of the coeff buffer 106 on the OUT side has been described with reference to FIG. 4, as a result of zero coefficient entering the banks 1, 6 and 7 of the coeff buffer 106, , 0, b, c, d, e, 0, 0 are entered, and a coefficient sequence including a zero coefficient is reproduced.

同様に、図5(b)はcoeff_flag[7:0]=0011111の場合におけるINとOUTの関係を示している。
IN側のlevelバッファ103の□の各bank0〜7にはゼロを含まない非ゼロ係数の値としてa〜hが入っている。OUT側のcoeffバッファ106のbank6,7にゼロ係数が入る結果、coeffバッファ106の□の各bank0〜7にはa,b,c,d,e,f,0,0が入り、ゼロ係数を含んだ係数列が再現される。
Similarly, FIG. 5B shows the relationship between IN and OUT when coeff_flag [7: 0] = 0011111.
The banks 0 to 7 in the squares of the IN side level buffer 103 contain a to h as non-zero coefficient values that do not include zero. As a result of zero coefficients entering banks 6 and 7 of the coeff buffer 106 on the OUT side, a, b, c, d, e, f, 0, and 0 are entered in the respective banks 0 to 7 of the coeff buffer 106, and zero coefficients are set. The included coefficient sequence is reproduced.

第1の実施形態によれば、デコードする際に並列化処理を用いて処理速度を向上させることができ、しかもテーブルを小さくして回路規模の増大を防ぐことができる。   According to the first embodiment, it is possible to improve the processing speed by using parallel processing when decoding, and to reduce the table and prevent the circuit scale from increasing.

[第2の実施形態]
図6は本発明の第2の実施形態の画像復号装置のブロック図を示している。本第2の実施形態として、4画素2並列 計8画素単位で処理を行う例を示す。
[Second Embodiment]
FIG. 6 shows a block diagram of an image decoding apparatus according to the second embodiment of the present invention. As the second embodiment, an example is shown in which processing is performed in units of 8 pixels in total of 4 pixels and 2 parallels.

図6に示す画像復号装置100Bで、図1の回路構成と異なる点は、last_significant_coeff_flagデコード回路104の結果を入力として、処理単位中に非ゼロ係数が1つも含まれない場合(即ちゼロ係数のみの場合)を判定してbypath_flag として出力するバイパス選択回路110と、bypath_flag が非ゼロ係数が無い場合(即ちゼロ係数のみの場合)を示した場合にcoeffバッファへ処理画素(処理単位の画素)をゼロとして出力するゼロ選択回路111とを設けたものである。   The image decoding apparatus 100B shown in FIG. 6 is different from the circuit configuration of FIG. 1 in that the result of the last_significant_coeff_flag decoding circuit 104 is input and no non-zero coefficient is included in the processing unit (that is, only the zero coefficient is included). If the bypass selection circuit 110 indicates that there is no non-zero coefficient (that is, only the zero coefficient), the processing pixel (processing unit pixel) is zeroed to the coeff buffer. And a zero selection circuit 111 for outputting as follows.

このような構成においては、バイパス選択回路110は、last_significant_coeff_flagデコード回路104の結果を入力として、処理単位(例として4画素2並列=8画素)中に非ゼロ係数が1つも含まれない場合を判定(判定結果をbypath_flagとする)して出力する。ゼロ選択回路111は、bypath_flag が非ゼロ係数が無い場合を示した場合にcoeffバッファ106へ処理画素(処理単位、この場合は8画素分)をゼロとして出力する。   In such a configuration, the bypass selection circuit 110 receives the result of the last_significant_coeff_flag decoding circuit 104 as an input, and determines that no non-zero coefficient is included in the processing unit (for example, 4 pixels 2 parallel = 8 pixels). (Judgment result is bypath_flag) and output. The zero selection circuit 111 outputs the processing pixel (processing unit, in this case, 8 pixels) as zero to the coeff buffer 106 when the bypath_flag indicates that there is no non-zero coefficient.

バイパス選択回路110およびゼロ選択回路111の付加により、係数選択テーブル108a,108bおよび係数選択回路105a,105bは処理単位中に非ゼロ係数が含まれない場合は活性化されない。   By the addition of the bypass selection circuit 110 and the zero selection circuit 111, the coefficient selection tables 108a and 108b and the coefficient selection circuits 105a and 105b are not activated when a non-zero coefficient is not included in the processing unit.

このことにより、処理単位中に非ゼロ係数が1つも含まれない場合(即ちゼロ係数のみの場合)には係数選択テーブル108a,108b、及び係数選択回路105a,105bを停止することができ、処理電力を低減できる利点がある。 As a result, the coefficient selection tables 108a and 108b and the coefficient selection circuits 105a and 105b can be stopped when no non-zero coefficient is included in the processing unit (that is, only zero coefficients are included). There is an advantage that power can be reduced.

第2の実施形態によれば、処理単位中に非ゼロ係数が1つも含まれない場合には、これを判定して、係数選択テーブルおよび係数選択回路を停止することで、処理電力を低減することができる。   According to the second embodiment, when no non-zero coefficient is included in the processing unit, this is determined and the processing power is reduced by stopping the coefficient selection table and the coefficient selection circuit. be able to.

以上述べたように本発明によれば、並列化による処理サイクル数の削減、ワーストケースのサイクル数の削減、処理の固定レイテンシ化による制御の簡単化を実現することが可能となる。   As described above, according to the present invention, it is possible to realize a reduction in the number of processing cycles by parallelization, a reduction in the number of worst-case cycles, and simplification of control by a fixed latency of processing.

本発明の第1の実施形態の画像復号装置を示すブロック図。The block diagram which shows the image decoding apparatus of the 1st Embodiment of this invention. 図1のlast_significant_coeff_flagデコード回路におけるlast_significant_coeff_flag/significant_coeff_flagのデコード動作を説明する図。The figure explaining the decoding operation | movement of last_significant_coeff_flag / significant_coeff_flag in the last_significant_coeff_flag decoding circuit of FIG. 4画素単位での上位側又は下位側の係数選択テーブルを示す図。The figure which shows the coefficient selection table of the high-order side or low-order side in a 4-pixel unit. 図3の係数選択テーブルを引くことで、再現される係数列のインデックスを決定する処理例を示す図。The figure which shows the process example which determines the index of the coefficient row | line | column reproduced by drawing the coefficient selection table of FIG. AB列から得られた非ゼロ係数の有無を表すパラメータの2つの実例について、levelバッファのbankとcoeffバッファのbankの関係を説明する図。The figure explaining the relationship between the bank of a level buffer and the bank of a coeff buffer about two examples of the parameter showing the presence or absence of the non-zero coefficient obtained from AB sequence. 本発明の第2の実施形態の画像復号装置を示すブロック図。The block diagram which shows the image decoding apparatus of the 2nd Embodiment of this invention. 本発明の関連技術の画像復号装置を示すブロック図。The block diagram which shows the image decoding apparatus of the related technology of this invention. 図7の関連技術のデコード方法を説明する模式図。FIG. 8 is a schematic diagram illustrating a decoding method according to the related technology in FIG. 7.

符号の説明Explanation of symbols

100A,100B…画像復号装置
101…シンタックスデコーダ
102…levelデコード回路
103…levelバッファ(入力側バッファ)
104…last_significant_coeff_flagデコード回路
105a…上位側係数選択回路
105b…下位側係数選択回路
106…coeffバッファ(出力側バッファ)
107…ジクザクスキャン回路
108a…上位側係数選択テーブル
108b…下位側係数選択テーブル
110…バイパス選択回路
111…ゼロ選択回路
DESCRIPTION OF SYMBOLS 100A, 100B ... Image decoding apparatus 101 ... Syntax decoder 102 ... Level decoding circuit 103 ... Level buffer (input side buffer)
104 ... last_significant_coeff_flag decoding circuit 105a ... upper coefficient selection circuit 105b ... lower coefficient selection circuit 106 ... coeff buffer (output buffer)
DESCRIPTION OF SYMBOLS 107 ... Zigzag scan circuit 108a ... Upper side coefficient selection table 108b ... Lower side coefficient selection table 110 ... Bypass selection circuit 111 ... Zero selection circuit

Claims (5)

所定の動画フォーマットのゼロ係数を含まない非ゼロ係数列を入力し、デコードして、ゼロ係数を含めた元の係数列を再現する画像復号装置であって、
インデックスが決定される前の前記非ゼロ係数列を格納する入力側バッファと、
前記非ゼロ係数列の間にゼロ係数を挿入する位置を示すパラメータの生成手段であって、所定の処理単位ごとに複数に分割して用いられる複数のパラメータを生成する手段と、
インデックスが決定されたゼロ係数を含む係数列を格納する出力側バッファと、
分割した前記複数の処理単位毎に設けられ、分割した前記複数のパラメータによる複数の入力に対応して、前記出力側バッファにおけるゼロ係数及び非ゼロ係数の位置と非ゼロ係数の個数を出力することが可能な複数のテーブルと、
分割した前記複数の処理単位毎に設けられ、前記複数のテーブルの出力に応じて、再現される係数列のゼロ係数及び非ゼロ係数のインデックスを決定し、前記入力側バッファから前記出力側バッファへ非ゼロ係数を転送し、前記出力側バッファへゼロ係数を書き込む複数の係数選択回路と、を具備し、
ゼロ係数を含めた再現される係数列に対するインデックスを同時に決定することを特徴とする画像復号装置。
An image decoding device that inputs a non-zero coefficient sequence that does not include a zero coefficient of a predetermined video format, decodes, and reproduces the original coefficient sequence including the zero coefficient,
An input buffer for storing the non-zero coefficient sequence before an index is determined;
Means for generating a parameter indicating a position where a zero coefficient is inserted between the non-zero coefficient sequences, and generating a plurality of parameters used by being divided into a plurality for each predetermined processing unit;
An output buffer for storing a coefficient sequence including the zero coefficient whose index is determined;
Provided for each of the plurality of divided processing units, and corresponding to a plurality of inputs by the plurality of divided parameters, outputs the positions of zero coefficients and non-zero coefficients and the number of non-zero coefficients in the output buffer. Multiple tables that can
Provided for each of the plurality of divided processing units, and according to the output of the plurality of tables, determine the zero coefficient and non-zero coefficient indexes of the coefficient sequence to be reproduced, from the input side buffer to the output side buffer A plurality of coefficient selection circuits that transfer non-zero coefficients and write zero coefficients to the output side buffer;
An image decoding apparatus characterized by simultaneously determining an index for a reproduced coefficient sequence including a zero coefficient.
前記パラメータを入力として、前記処理単位中に非ゼロ係数が1つも含まれない場合を判定して判定信号として出力するバイパス選択回路と、
前記判定信号が非ゼロ係数が無い場合を示した場合に前記出力側バッファへ前記処理単位の係数列をゼロとして出力するゼロ選択回路と、
を更に具備したことを特徴とする請求項1に記載の画像復号装置。
A bypass selection circuit that receives the parameter as an input, determines when no non-zero coefficient is included in the processing unit, and outputs a determination signal;
A zero selection circuit that outputs the coefficient sequence of the processing unit as zero to the output side buffer when the determination signal indicates that there is no non-zero coefficient;
The image decoding apparatus according to claim 1, further comprising:
前記パラメータは、非ゼロ係数の有無を示す第1のフラグと、最終非ゼロ係数であることを示す第2のフラグとを用いて生成される、第2のフラグを反映させた第1のフラグであることを特徴とする請求項1又は2に記載の画像復号装置。   The parameter is generated by using a first flag indicating the presence or absence of a non-zero coefficient and a second flag indicating a final non-zero coefficient, and a first flag reflecting the second flag The image decoding device according to claim 1, wherein the image decoding device is an image decoding device. 前記複数のテーブルが上位ビット側の第1の係数選択テーブルと下位ビット側の第2の係数選択テーブルで構成され、前記複数の係数選択回路が上位ビット側の第1の係数選択回路と下位ビット側の第2の係数選択回路で構成される場合、前記第1の係数選択回路では前記第2の係数選択テーブルによりテーブル引きされた非ゼロ係数の値分だけ、読み込む入力側バッファの格納位置をずらすことを特徴とする請求項1乃至3のいずれか1つに記載の画像復号装置。   The plurality of tables include a first coefficient selection table on the upper bit side and a second coefficient selection table on the lower bit side, and the plurality of coefficient selection circuits include the first coefficient selection circuit on the upper bit side and the lower bit. In the first coefficient selection circuit, the storage position of the input buffer to be read by the value of the non-zero coefficient table-drawn by the second coefficient selection table is set in the first coefficient selection circuit. The image decoding device according to claim 1, wherein the image decoding device is shifted. 所定の動画フォーマットのゼロ係数を含まない非ゼロ係数列を入力し、デコードして、ゼロ係数を含めた元の係数列を再現する画像復号方法であって、
前記非ゼロ係数列の間にゼロ係数を挿入する位置を示すパラメータを所定の処理単位に分割し、
この分割した複数の処理単位毎に設けられた複数のテーブルに対して、前記非ゼロ係数列が格納された入力側バッファの非ゼロ係数列の格納位置と、再現される係数列に対応するインデックス決定後の出力側バッファの係数列の格納位置とをテーブル参照し、
ゼロ係数を含めた再現される係数列に対応するインデックスを同時に算出することを特徴とする画像復号方法。
An image decoding method for inputting a non-zero coefficient sequence that does not include a zero coefficient of a predetermined video format, decoding, and reproducing the original coefficient sequence including the zero coefficient,
Dividing a parameter indicating a position for inserting a zero coefficient between the non-zero coefficient sequences into predetermined processing units;
For the plurality of tables provided for each of the plurality of divided processing units, the storage position of the non-zero coefficient sequence of the input side buffer storing the non-zero coefficient sequence and the index corresponding to the reproduced coefficient sequence Refer to the table for the storage position of the coefficient sequence of the output buffer after the decision,
An image decoding method characterized by simultaneously calculating an index corresponding to a reproduced coefficient sequence including a zero coefficient.
JP2008160765A 2008-06-19 2008-06-19 Image decoder, and image decoding method Pending JP2010004284A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008160765A JP2010004284A (en) 2008-06-19 2008-06-19 Image decoder, and image decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008160765A JP2010004284A (en) 2008-06-19 2008-06-19 Image decoder, and image decoding method

Publications (1)

Publication Number Publication Date
JP2010004284A true JP2010004284A (en) 2010-01-07

Family

ID=41585615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008160765A Pending JP2010004284A (en) 2008-06-19 2008-06-19 Image decoder, and image decoding method

Country Status (1)

Country Link
JP (1) JP2010004284A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014501084A (en) * 2010-11-16 2014-01-16 クゥアルコム・インコーポレイテッド Parallel context computation in video coding
WO2014167730A1 (en) * 2013-04-12 2014-10-16 富士通株式会社 Compression device, compression method, and compression program
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US11330272B2 (en) 2010-12-22 2022-05-10 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014501084A (en) * 2010-11-16 2014-01-16 クゥアルコム・インコーポレイテッド Parallel context computation in video coding
US9497472B2 (en) 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US11330272B2 (en) 2010-12-22 2022-05-10 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
WO2014167730A1 (en) * 2013-04-12 2014-10-16 富士通株式会社 Compression device, compression method, and compression program

Similar Documents

Publication Publication Date Title
CN103748886B (en) Support the entropy code of pattern switching
KR100425615B1 (en) Encoding method and encoding apparatus and decoding method and decoding apparatus
US7817864B2 (en) Coding apparatus and decoding apparatus
JP4878262B2 (en) Entropy encoding device
CN105103549A (en) Encoding and decoding of significant coefficients in dependence upon a parameter of the significant coefficients
CN105379283A (en) Data encoding and decoding
TW201342919A (en) Data encoding and decoding
KR100717055B1 (en) Method of decoding bin values using pipeline architecture, and decoding apparatus therefor
WO2007129508A1 (en) Dynamic image processing method, program for the dynamic image processing method, recording medium containing the program for the dynamic image processing method, dynamic image processing device
JP4442891B2 (en) Variable length coding apparatus and variable length coding method
CN103262534A (en) Method and apparatus for improved entropy encoding and decoding
CN100423582C (en) Method and device for binary coding wait coding data
US20150264355A1 (en) Method And Apparatus For Efficient Information Coding
JP2010004284A (en) Image decoder, and image decoding method
IL235057A (en) Video quantization-parameter encoding method, video quantization-parameter decoding method, device and program
US20100052956A1 (en) Apparatus and method for lossless coding and decoding
JP4061104B2 (en) Memory access and skipping based on run / skip count by context model
JP2013016897A (en) Variable-length code decoder, code system and variable-length code decoding method
JP2006166344A (en) Variable length coding decoder and decoding method
US8798139B1 (en) Dual-pipeline CABAC encoder architecture
CN101458679B (en) Unification inverse discrete cosine transform (IDCT) microcode processor engine
CN112449186B (en) Encoding method, decoding method, corresponding devices, electronic equipment and storage medium
KR100207428B1 (en) Variable length coding apparatus and method adaptive to changes of the hoffman codes
CN112073729B (en) Model updating method, device, electronic equipment and computer readable storage medium
JP2012253420A (en) Variable length code decoding device, decoding system and variable length code decoding method