JP2010004284A - Image decoder, and image decoding method - Google Patents
Image decoder, and image decoding method Download PDFInfo
- 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
Links
Images
Abstract
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では処理速度を向上できるが、並列化するときに参照テーブルが大きくなるという問題がある。
そこで、本発明は上記の問題に鑑み、デコードする際に並列化処理を用いて処理速度を向上させることができ、しかも回路規模の増大を防ぐことができる画像復号装置及び画像復号方法を提供することを目的とするものである。 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
図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
図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
非ゼロ係数のビットストリームを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
ここでは、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
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
選択回路105では、CD列13から得られた非ゼロ係数列(level)に対して、levelの有無を示すcoeff_flagを参照してゼロ(0)係数を含めた係数列(level)を生成する際に、ゼロ係数を含めた係数列の生成と共にその生成した係数列に対応したインデックス(係数列マトリックス16を得るのに必要な順番を示す番号)を生成(決定)する。
When the
図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
動画フォーマット規格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
従って、マクロブロック(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
なお、図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
First, when receiving significant_coeff_flag, last_significant_coeff_flag, and maxNumCoeff decoded by the
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
なお、levelデコード回路102では、シンタックスデコーダ101から出力されたC列及びD列のcoeff_abs_level_minus1及びcoeff_sign_flagから非ゼロ係数(level)のデコードが行われ、そのデコードされた非ゼロ係数(level)がlevelバッファ103へ格納されているものとする。
In the
次に、非ゼロ係数の有無を表す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
テーブルにより、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
ゼロ係数、非ゼロ係数の格納位置がテーブルにより決定されたら、対応する位置へ上位側/下位側係数選択回路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)lの個数だけlevelバッファ103をインクリメントし、出力側のcoeffバッファ106のbankを切り替えるための判定をする。
Finally, for the next processing, the
図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,
符号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が使用される。
符号22は下位側(又は上位側)の4ビット分の係数の個数の内の非ゼロ係数の個数を示している。
図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
図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
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
図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
また、図4(c)の上位側のcoeff_bufで使用するlevelバッファ103のbankには下位側のcoeff_bufの非ゼロ係数の個数(ここでは図4(b)の下位側に示す“3”)が上位側のlevel_bufのIndexを表すためのオフセット(加算値)として付けられる(図4中の(b)から(c)への細い実線の矢印がそれを示している)。
Also, the bank of the
図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
図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
同様に、図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
第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
このような構成においては、バイパス選択回路110は、last_significant_coeff_flagデコード回路104の結果を入力として、処理単位(例として4画素2並列=8画素)中に非ゼロ係数が1つも含まれない場合を判定(判定結果をbypath_flagとする)して出力する。ゼロ選択回路111は、bypath_flag が非ゼロ係数が無い場合を示した場合にcoeffバッファ106へ処理画素(処理単位、この場合は8画素分)をゼロとして出力する。
In such a configuration, the
バイパス選択回路110およびゼロ選択回路111の付加により、係数選択テーブル108a,108bおよび係数選択回路105a,105bは処理単位中に非ゼロ係数が含まれない場合は活性化されない。
By the addition of the
このことにより、処理単位中に非ゼロ係数が1つも含まれない場合(即ちゼロ係数のみの場合)には係数選択テーブル108a,108b、及び係数選択回路105a,105bを停止することができ、処理電力を低減できる利点がある。
As a result, the coefficient selection tables 108a and 108b and the
第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.
100A,100B…画像復号装置
101…シンタックスデコーダ
102…levelデコード回路
103…levelバッファ(入力側バッファ)
104…last_significant_coeff_flagデコード回路
105a…上位側係数選択回路
105b…下位側係数選択回路
106…coeffバッファ(出力側バッファ)
107…ジクザクスキャン回路
108a…上位側係数選択テーブル
108b…下位側係数選択テーブル
110…バイパス選択回路
111…ゼロ選択回路
DESCRIPTION OF
104 ...
DESCRIPTION OF
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に記載の画像復号装置。 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:
前記非ゼロ係数列の間にゼロ係数を挿入する位置を示すパラメータを所定の処理単位に分割し、
この分割した複数の処理単位毎に設けられた複数のテーブルに対して、前記非ゼロ係数列が格納された入力側バッファの非ゼロ係数列の格納位置と、再現される係数列に対応するインデックス決定後の出力側バッファの係数列の格納位置とをテーブル参照し、
ゼロ係数を含めた再現される係数列に対応するインデックスを同時に算出することを特徴とする画像復号方法。 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.
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)
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 |
-
2008
- 2008-06-19 JP JP2008160765A patent/JP2010004284A/en active Pending
Cited By (5)
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 |