JP2007074648A - Cabac decoding apparatus - Google Patents

Cabac decoding apparatus Download PDF

Info

Publication number
JP2007074648A
JP2007074648A JP2005262154A JP2005262154A JP2007074648A JP 2007074648 A JP2007074648 A JP 2007074648A JP 2005262154 A JP2005262154 A JP 2005262154A JP 2005262154 A JP2005262154 A JP 2005262154A JP 2007074648 A JP2007074648 A JP 2007074648A
Authority
JP
Japan
Prior art keywords
data
decoding
encoded data
cabac
encoded
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
JP2005262154A
Other languages
Japanese (ja)
Inventor
Takuma Chiba
琢麻 千葉
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005262154A priority Critical patent/JP2007074648A/en
Publication of JP2007074648A publication Critical patent/JP2007074648A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a CABAC decoding apparatus for increasing an output data amount per unit time without including a plurality of decoder circuits. <P>SOLUTION: The present invention relates to an apparatus for decoding data encoded by context-based adaptive binary arithmetic coding (CABAC) and the apparatus comprises: an input selector 116 for acquiring a plurality of coded data that are encoded data; a context parameter table 105a, context parameter table 105b and context parameter table 105c corresponding to each of the plurality of coded data; and a decoding section 103 for decoding the plurality of coded data using the context parameter tables corresponding to each of the data. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、CABACにより算術符号化されたデータを復号化するCABAC復号化装置に関する。   The present invention relates to a CABAC decoding apparatus that decodes data that has been arithmetically encoded by CABAC.

デジタル技術の発展と共に、映像を符号化する技術も進化、発展してきている。しかし、映像情報、特に動画像の情報は、そのデータ量が非常に大きく、デジタル映像を符号化したものを放送やDVD等のメディアで転送する場合、転送量が非常に大きくなってしまう。得に、最近実用化されているハイビジョン放送では、従来のSD(Standard Definition)映像と比べて、6倍のデータ量となっている。   Along with the development of digital technology, the technology for encoding video has also evolved and developed. However, the amount of data of video information, particularly moving image information, is very large. When a digital video encoded data is transferred by a medium such as a broadcast or a DVD, the transfer amount becomes very large. In particular, in high-definition broadcasting that has recently been put into practical use, the data amount is six times that of conventional SD (Standard Definition) video.

デジタル映像技術の発展と共に、増大するデータ量を処理するために、データを圧縮する技術がデジタル映像データに使用され、発展してきている。その発展は、映像データの特性を生かした映像データに特化した圧縮技術となって現れている。また、コンピュータやその他機器の情報処理能力の向上に伴い、圧縮技術における複雑な演算も可能となり、映像データの圧縮率は大幅に高められてきている。例えば、衛星、地上波デジタルハイビジョン放送で採用されている圧縮技術はMPEG2と呼ばれる方式であるが、MPEG2の次の映像圧縮技術としてAVC/H.264が国際電気通信連合(ITU)の電気通信標準化部門であるITU−Tにより規格化されている。   With the development of digital video technology, in order to process the increasing amount of data, a technology for compressing data is used and developed for digital video data. The development has emerged as a compression technique specialized for video data that takes advantage of the characteristics of video data. In addition, with the improvement of information processing capabilities of computers and other devices, complex computations in compression techniques are possible, and the compression rate of video data has been greatly increased. For example, a compression technique employed in satellite and terrestrial digital high-definition broadcasting is a method called MPEG2, but AVC / H. H.264 is standardized by ITU-T, a telecommunications standardization department of the International Telecommunication Union (ITU).

AVC/H.264は、MPEG2の2倍前後の圧縮率を実現する規格である。AVC/H.264では、多くの圧縮化技術を実装し、それらを組み合わせることで高い圧縮率を実現している。そのため、演算量も大幅に増加している。   AVC / H. H.264 is a standard that realizes a compression rate about twice that of MPEG2. AVC / H. H.264 implements many compression technologies and combines them to achieve a high compression ratio. For this reason, the amount of calculation is also greatly increased.

AVC/H.264で実装されている圧縮化技術の一つにエントロピー符号化(可変長符号化)がある。エントロピー符号化の方式として、CAVLCとCABACという2つの方式が用意されている。CAVLCは、Context−Adaptive Variable Length Coding(コンテキスト適応型可変長符号化方式)の略であり、DCT係数を符号化する際、連続する0の長さであるランとレベルを可変長符号化テーブルを用いてスキャンの方向と反対の方向から符号化を行なう方式である。   AVC / H. One compression technique implemented in H.264 is entropy coding (variable length coding). Two systems, CAVLC and CABAC, are prepared as entropy encoding systems. CAVLC is an abbreviation for Context-Adaptive Variable Length Coding (context-adaptive variable-length coding system). When encoding DCT coefficients, CAVLC uses a variable-length coding table for a run and a level that are consecutive zeros. In this method, encoding is performed from the direction opposite to the scanning direction.

CABACは、Context−based Adaptive Binary Arithmetic Coding(コンテキスト適応型2値算術符号化方式)の略であり、時間とともに変化する符号化対象の出現頻度を変化させる方式である。また、一般に算術符号化と呼ばれる方式である。CABACでは、通常の算術符号化のほかに、圧縮すべき符号ごとにコンテキストインデックス(ctxIdx)を付け、そのctxIdxごとに出現頻度の変更を行なっている。   CABAC is an abbreviation for Context-based Adaptive Binary Arithmetic Coding (context-adaptive binary arithmetic coding system), and is a system that changes the appearance frequency of an encoding target that changes with time. Moreover, it is a method generally called arithmetic coding. In CABAC, in addition to normal arithmetic coding, a context index (ctxIdx) is attached to each code to be compressed, and the appearance frequency is changed for each ctxIdx.

CABACでの符号化は主に2つの処理に分けられる。1つ目は、シンタクス(Syntax)と呼ばれる符号化すべき多値情報を2値データに変換する2値化(binarization)と呼ばれる処理である。2つ目は、2値化によって得られた2値データに対してコンテキストを算出し算術符号化を行なう処理である。   The encoding in CABAC is mainly divided into two processes. The first is a process called binarization that converts multi-value information to be encoded, called syntax, into binary data. The second is a process of calculating a context and performing arithmetic coding on binary data obtained by binarization.

CABACにより符号化されたデータ(以下、「符号化データ」という。)を復号化する処理も、符号化の場合と同様に2つの処理に分けられる。符号化データに対して算術復号化を行なって2値データを出力する処理と、2値データをSyntaxに変換する多値化を行なう処理である。   The process of decoding data encoded by CABAC (hereinafter referred to as “encoded data”) is also divided into two processes as in the case of encoding. This is a process of performing arithmetic decoding on the encoded data and outputting binary data, and a process of performing multi-value conversion for converting the binary data into Syntax.

図8は従来のCABAC復号化装置の機能的な構成の一例を示す図である。図8に示すCABAC復号化装置200は、ビットストリームを入力とし、2値データを出力する装置である。なお、入力されるビットストリームは、1つのピクチャ内の1つ以上のマクロブロックの集合であるスライス単位で処理される。マクロブロックとは16×16画素からなる画像のデータである。また、出力される2値データの各ビットをbinValという。   FIG. 8 is a diagram illustrating an example of a functional configuration of a conventional CABAC decoding apparatus. The CABAC decoding apparatus 200 shown in FIG. 8 is an apparatus that receives a bit stream and outputs binary data. Note that the input bit stream is processed in units of slices, which are a set of one or more macroblocks in one picture. A macroblock is image data composed of 16 × 16 pixels. Each bit of the output binary data is referred to as binVal.

CABAC復号化装置200は、フリップフロップ回路(FF)201と、FF202と、復号化部203と、ctxIdx計算部204と、コンテキスト変数テーブル205とを備える。   The CABAC decoding apparatus 200 includes a flip-flop circuit (FF) 201, an FF 202, a decoding unit 203, a ctxIdx calculation unit 204, and a context variable table 205.

以下に、CABAC復号化装置200における算術復号化の処理の概要を説明する。   The outline of arithmetic decoding processing in the CABAC decoding apparatus 200 will be described below.

算術復号化の処理は、まず、ctxtIdxを求めることから始められる。ctxtIdxは、復号しようとしている1ビットの2値データのSyntaxと、Syntax内の2値データの位置を示すbinIdxとから演算して求められる。また、これらSyntaxとbinIdxとはすでに復号化されたマクロブロックの2値データの値であるbinValより演算して求められる。   The arithmetic decoding process is started by first obtaining ctxtIdx. ctxtIdx is obtained by calculation from the syntax of 1-bit binary data to be decoded and binIdx indicating the position of the binary data in the syntax. Also, these Syntax and binIdx are obtained by calculation from binVal, which is the binary data value of a macroblock that has already been decoded.

これら演算は、ctxIdx計算部204で行なわれる。また、初回の演算では、初期値として与えられたSyntaxと、binidx=“0”とが用いられる。   These calculations are performed by the ctxIdx calculation unit 204. In the first calculation, the syntax given as the initial value and binidx = “0” are used.

次に、求められたctxtIdxを用いて、コンテキスト変数テーブル205からそのctxtIdxに現在割り当てられている発生確率pStateIdxと、発生確率の高いシンボルを表す情報valMPSとを取り出す。   Next, using the obtained ctxtIdx, an occurrence probability pStateIdx currently assigned to the ctxtIdx and information valMPS representing a symbol with a high occurrence probability are extracted from the context variable table 205.

コンテキスト変数テーブルとは、ctxtIdxとpStateIdxとvalMPSとが対応付けられ記憶されているテーブルである。   The context variable table is a table in which ctxtIdx, pStateIdx, and valMPS are stored in association with each other.

読み出されたpStateIdxとvalMPSとは、FF201を介し復号化部203に取得される。復号化部203は、更に、FF202から算術符号化で用いられる区間情報であるcodIRangeとcodIOffsetとを読み出し、pStateIdxとvalMPSとを入力としてcodIRangeとcodIOffsetと共に演算を行う。この演算により2値データを1ビット出力する。この出力された1ビットがbinValである。   The read pStateIdx and valMPS are acquired by the decoding unit 203 via the FF 201. The decoding unit 203 further reads out codIRRange and codIOoffset, which are section information used in arithmetic coding, from the FF 202, and inputs pStateIdx and valMPS as inputs and performs an operation with codIRrange and codIOoffset. One bit of binary data is output by this calculation. The outputted 1 bit is binVal.

このとき、codIRangeとcodIOffsetが更新され、次のbinValの演算に用いられる。また、出力されたbinValの値に応じて、発生確率pStateIdxと、発生確率の高いシンボルを表す情報valMPSとを更新し、コンテキスト変数テーブル205に書き戻す作業を行なう。   At this time, codIRange and codIOoffset are updated and used for the next binVal operation. Also, according to the output binVal value, the occurrence probability pStateIdx and the information valMPS representing the symbol with a high occurrence probability are updated and written back to the context variable table 205.

以上のように、入力されたビットストリームから、2値データの1ビットであるbinValが算術復号化により出力される。また、出力されたbinValの値によって、次のSyntax、binIdxの値が決定し、次のbinValの出力のための復号化処理が開始される。   As described above, binVal, which is one bit of binary data, is output from the input bit stream by arithmetic decoding. Also, the next Syntax and binIdx values are determined by the output binVal value, and the decoding process for the next binVal output is started.

図9は、従来のCABAC復号化装置における復号化処理のタイムチャートの一例である。図9の“An”(n=0、1、2、・・・)のそれぞれは、n+1個目のbinValの出力に関わる各種の値の存在を示す記号である。また、横軸は時間であり、“T1、T2、・・・”のそれぞれは、1クロックごとのサイクルを示す記号である。   FIG. 9 is an example of a time chart of the decoding process in the conventional CABAC decoding apparatus. Each of “An” (n = 0, 1, 2,...) In FIG. 9 is a symbol indicating the existence of various values related to the output of the (n + 1) th binVal. The horizontal axis represents time, and each of “T1, T2,...” Is a symbol indicating a cycle for each clock.

例えば、サイクルT1では、2つ目のbinValの出力のためのデータ入力[A1]があり、pStateIdxおよびvalMPSは1つ目のbinValを演算するための値[A0]である。また、それらpStateIdxとvalMPSとから1つ目のbinVal[A0]が算出される。なお、タイムチャート上には表現されていないが、コンテキスト変数テーブルが、算出されたbinValに応じて更新される。   For example, in cycle T1, there is a data input [A1] for outputting the second binVal, and pStateIdx and valMPS are values [A0] for calculating the first binVal. Also, the first binVal [A0] is calculated from the pStateIdx and valMPS. Although not represented on the time chart, the context variable table is updated according to the calculated binVal.

また、算出されたbinValから次のbinValを出力するためのSyntaxおよびbinIdxが決定され、ctxIdx[A1]が算出される。算出されたctxIdx[A1]を用いて、2個目のbinValを出力するためのpStateIdx[A1]とvalMPS[A1]とがコンテキスト変数テーブルから読み出される。読み出されたそれらの値は次のサイクルT2に用いられる。   In addition, Syntax and binIdx for outputting the next binVal are determined from the calculated binVal, and ctxIdx [A1] is calculated. Using the calculated ctxIdx [A1], pStateIdx [A1] and valMPS [A1] for outputting the second binVal are read from the context variable table. Those values read out are used in the next cycle T2.

処理対象のデータを変更しながら上記動作が1クロックごとに繰り返され、入力されたビットストリームから1クロックごとに2値データの1ビットであるbinValが1つ出力される。   The above operation is repeated every clock while changing the data to be processed, and one binVal, which is one bit of binary data, is output every clock from the input bit stream.

このような、CABACの符号化および復号化についての技術も開示されている(例えば、特許文献1)。
特開2004−135251号公報
Techniques for encoding and decoding such CABAC are also disclosed (for example, Patent Document 1).
JP 2004-135251 A

上述のようにCABACの復号化において、2値データ1ビットを出力するために最初に行なわれるSyntaxとbinIdxの特定は、1つ前に出力された2値データの1ビットの値によって決められる。つまり、その時点で行なっている復号化処理で出力される2値データの値が0であるか1であるかが決定しないと、次の2値データを求める処理を行なうことはできない。   As described above, in the CABAC decoding, the identification of the syntax and binIdx that is first performed to output one bit of binary data is determined by the value of one bit of the binary data output one time before. That is, unless the binary data output by the decoding process performed at that time is determined to be 0 or 1, the process for obtaining the next binary data cannot be performed.

また、ctxIdxより求められるpStateIdxとvalMPSの値は、出力された2値データの値によって変更され、コンテキスト変数テーブルに書き戻されるため、これらの処理が終わるまで、次の2値データ1ビットの復号化に必要な動作であるコンテキスト変数テーブルの参照を行なうことができない。   In addition, the values of pStateIdx and valMPS obtained from ctxIdx are changed according to the output binary data value and written back to the context variable table. Therefore, until these processes are completed, the next binary data is decoded by 1 bit. It is not possible to refer to the context variable table, which is an operation required for conversion.

つまり、CABAC復号化装置における復号化のための回路は、出力される2値データ1ビット毎の大きなループ回路になっており、このループにかかる時間がCABAC復号化装置から1ビットの出力データを得るために必要な時間となる。   In other words, the circuit for decoding in the CABAC decoding device is a large loop circuit for each bit of binary data to be output, and the time taken for this loop is to output 1-bit output data from the CABAC decoding device. It will be the time required to get.

通常、回路のスループットを上げるときは、回路内にフリップフロップ回路(FF)を挿入することで処理をパイプライン化し、周波数を上げることが行なわれる。しかしながら、上記従来のCABAC復号化装置においては、1回のループで2値データ1ビットが出力されるので、そのループをFFで区切ってパイプライン化し周波数を上げても、1クロック毎の処理量が減るだけであり、スループットを上げることはできない。これにより例えば、復号化処理が画像の再生に追い付かず、再生映像が途切れる可能性すら存在する。   Usually, when increasing the throughput of a circuit, a flip-flop circuit (FF) is inserted in the circuit to pipeline the process and increase the frequency. However, in the above-mentioned conventional CABAC decoding apparatus, 1 bit of binary data is output in one loop, so even if the loop is partitioned by FF to increase the frequency, the processing amount per clock Only decreases, and the throughput cannot be increased. Thereby, for example, the decoding process does not catch up with the reproduction of the image, and there is even a possibility that the reproduced video is interrupted.

このように、従来のCABAC復号化装置は出力データのスループット、つまり単位時間当たりのbinValの出力数を上げることが困難である。もちろん復号化回路を並列に複数用意すれば、スループットを向上させることは可能であるが、この場合、例えば製造コストの上昇を招くこととなる。   Thus, it is difficult for the conventional CABAC decoding device to increase the throughput of output data, that is, the number of binVal outputs per unit time. Of course, if a plurality of decoding circuits are prepared in parallel, the throughput can be improved, but in this case, for example, the manufacturing cost increases.

本発明は、上記問題に鑑みてなされたものであり、復号化回路を複数有することなく、単位時間当たりの出力データ量を増加させるためのCABAC復号化装置を提供することを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to provide a CABAC decoding apparatus for increasing the amount of output data per unit time without having a plurality of decoding circuits.

上記課題を解決し上記目的を達成するために、本発明のCABAC復号化装置は、コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する装置であって、符号化されたデータである符号化データを複数取得する取得手段と、複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルと、複数の前記符号化データを、それぞれに対応付けられた前記コンテキスト変数テーブルを用いて復号化する復号化手段とを備える。   In order to solve the above problems and achieve the above object, a CABAC decoding apparatus according to the present invention is an apparatus for decoding data encoded by a context adaptive binary arithmetic coding system (CABAC), Acquisition means for acquiring a plurality of encoded data, which are encoded data, a plurality of context variable tables associated with each of the plurality of encoded data, and a plurality of the encoded data, respectively. And decoding means for decoding using the context variable table.

このように、本発明のCABAC復号化装置は、複数の符号化データを取得し、それら複数の符号化データに対応する、複数のコンテキスト変数テーブルを備える。この構成により、複数の符号化データをそれぞれ独立に並行して復号化することを可能とし、結果として、復号化されたデータの単位時間当たりの出力量を向上させることができる。   Thus, the CABAC decoding apparatus of the present invention includes a plurality of context variable tables that acquire a plurality of encoded data and correspond to the plurality of encoded data. With this configuration, a plurality of pieces of encoded data can be decoded independently and in parallel, and as a result, the output amount per unit time of the decoded data can be improved.

また、本発明のCABAC復号化装置は、前記復号化手段、および複数の前記コンテキスト変数テーブルは、複数の前記符号化データそれぞれをパイプライン処理するために用いられ、前記コンテキスト変数テーブルの数は、前記パイプライン処理におけるパイプラインステージ数と同じであるとしてもよく、更に、複数の前記符号化データそれぞれは、互いに異なる一連のデータ列のそれぞれに含まれており、複数の前記一連のデータ列の数は前記パイプラインステージ数と同じ数であり、前記複数のコンテキスト変数テーブルは、複数の前記一連のデータ列のそれぞれと対応付けられることで、複数の前記符号化データのそれぞれに対応付けられており、前記取得手段は、複数の前記一連のデータ列の中から1サイクルごとに所定の順序で1つの前記一連のデータ列を選択することにより、選択された前記一連のデータ列に含まれる符号化データを取得するとしてもよい。   Further, in the CABAC decoding apparatus according to the present invention, the decoding means, and the plurality of context variable tables are used to pipeline each of the plurality of encoded data, and the number of the context variable tables is: The number of pipeline stages may be the same as the number of pipeline stages in the pipeline processing, and each of the plurality of encoded data is included in each of a series of different data strings. The number is the same as the number of pipeline stages, and the plurality of context variable tables are associated with each of the plurality of encoded data by being associated with each of the plurality of series of data strings. And the acquisition means has a predetermined order for each cycle among the series of data strings. By selecting one of said series of data strings, may acquire the encoded data included in said selected set of data strings.

このように、本発明のCABAC復号化装置は、復号化処理をパイプライン化することで、動作周波数を向上させることができ、ひいては単位時間当たりの出力データ量を増加させることができる。   As described above, the CABAC decoding apparatus according to the present invention can improve the operating frequency by pipelining the decoding process, and thus can increase the amount of output data per unit time.

また、入力されるデータ列の数をパイプラインのステージ数と同じ数とすることにより、効率よくパイプライン処理の隙間を埋めることができ、処理効率が向上する。また、復号化処理の対象となる符号化データは、複数の符号化データのそれぞれが含まれる複数の一連のデータ列が所定の順序で選択されることによりCABAC復号化装置に入力される。   Also, by setting the number of input data strings to be the same as the number of pipeline stages, it is possible to efficiently fill the gaps in the pipeline processing, and the processing efficiency is improved. Also, the encoded data to be subjected to the decoding process is input to the CABAC decoding apparatus by selecting a plurality of series of data strings including each of the plurality of encoded data in a predetermined order.

例えば、CABAC復号化装置のパイプラインステージが、3段で構成されているとき、データ列の入力は、A,B,Cの3つ用意する。各データ列に対応するコンテキスト変数テーブルもa,b,cと3つ用意する。サイクルT0で、CABAC復号化装置への入力として、データ列Aが選択された場合、次のサイクルT1では、データ列Bが選択され、次のサイクルT2では、データ列Cが選択される。さらに次のサイクルT3では、データ列Aが再び選択され、以後B→C→A→B→‥‥と1サイクル毎にデータ列の入力を変更して装置を動作させることができる。   For example, when the pipeline stage of the CABAC decoding apparatus is composed of three stages, three data string inputs A, B, and C are prepared. Three context variable tables corresponding to each data string, a, b, and c, are also prepared. When data string A is selected as an input to the CABAC decoding apparatus in cycle T0, data string B is selected in the next cycle T1, and data string C is selected in the next cycle T2. Further, in the next cycle T3, the data string A is selected again, and thereafter, the apparatus can be operated by changing the input of the data string every cycle of B → C → A → B →.

コンテキスト変数テーブルa,b,cは、3つのデータ列A,B,Cにそれぞれ対応付けられる。従って、データ列Aが入力として選択されたときは、コンテキスト変数テーブルaが参照、更新され、データ列Bのときは、コンテキスト変数テーブルb、データ列Cのときは、コンテキスト変数テーブルcがそれぞれ参照、更新される。結果として、コンテキスト変数テーブルは、データ入力に対応し、1サイクルごとにa、b、cの順番に参照され、必要な情報が読み出される。また、参照された順番で更新される。   The context variable tables a, b, and c are associated with the three data strings A, B, and C, respectively. Therefore, when the data string A is selected as an input, the context variable table a is referenced and updated. When the data string B is selected, the context variable table b is referenced. When the data string C is selected, the context variable table c is referenced. Updated. As a result, the context variable table corresponds to data input, and is referred to in order of a, b, and c for each cycle, and necessary information is read out. Also, it is updated in the order of reference.

このように、本発明のCABAC復号化装置は、効率よく復号化処理を進行させることができ、単位時間当たりの出力データ量を増加させることができる。   As described above, the CABAC decoding apparatus according to the present invention can efficiently perform the decoding process, and can increase the output data amount per unit time.

更に、本発明は、本発明のCABAC復号化装置の特徴的な構成部をステップとする方法として実現したり、それらのステップを含むプログラムとして実現したり、そのプログラムが格納された、CD−ROM等の記憶媒体として実現したり、集積回路として実現することもできる。プログラムは、通信ネットワーク等の伝送媒体を介して流通させることもできる。   Furthermore, the present invention can be realized as a method using the characteristic components of the CABAC decoding apparatus of the present invention as steps, or as a program including those steps, or a CD-ROM in which the program is stored. It can also be realized as a storage medium such as an integrated circuit. The program can also be distributed via a transmission medium such as a communication network.

本発明は、復号化回路を複数有することなく、単位時間当たりの出力データ量を増加させるためのCABAC復号化装置を提供することができる。   The present invention can provide a CABAC decoding apparatus for increasing the amount of output data per unit time without having a plurality of decoding circuits.

具体的には、本発明のCABAC復号化装置は符号化データを複数取得することができ、それぞれを独立して処理することができる構成をとる。これより、複数の符号化データを並行して処理することが可能となる。また、1クロックあたりの処理負荷が軽減されることにより、回路の動作周波数を上げることができる。   Specifically, the CABAC decoding apparatus according to the present invention can acquire a plurality of pieces of encoded data and can process each of them independently. This makes it possible to process a plurality of encoded data in parallel. In addition, since the processing load per clock is reduced, the operating frequency of the circuit can be increased.

例えば、動作周波数を向上させるために回路をパイプライン化した場合、通常であれば、パイプラインのステージ数分のクロックごとにしか出力1ビットが得られないが、本発明を実施することにより、1クロック毎に出力1ビットを得ることが可能となる。   For example, when a circuit is pipelined in order to improve the operating frequency, normally, one output bit can be obtained only for every clock corresponding to the number of stages of the pipeline, but by implementing the present invention, It is possible to obtain 1 output bit per clock.

結果として、本発明により、復号化回路を複数有することなく単位時間当たりの出力データ量を増加させることのできるCABAC復号化装置を提供することが可能となる。   As a result, according to the present invention, it is possible to provide a CABAC decoding apparatus that can increase the amount of output data per unit time without having a plurality of decoding circuits.

以下に、本発明を実施するための最良の形態について、図面を参照して説明する。   The best mode for carrying out the present invention will be described below with reference to the drawings.

まず、図1および図2を用いて、本発明の実施の形態であるCABAC復号化装置の構成を説明する。   First, the configuration of the CABAC decoding apparatus according to the embodiment of the present invention will be described with reference to FIG. 1 and FIG.

図1は、本発明の実施の形態であるCABAC復号化装置の機能的な構成を示す機能ブロック図である。   FIG. 1 is a functional block diagram showing a functional configuration of a CABAC decoding apparatus according to an embodiment of the present invention.

CABAC復号化装置100は、入力される3つのスライスに対し並行して復号化処理を行い、それぞれのスライスに対応した2値データを出力する装置である。また、パイプライン処理は3つのパイプラインステージに分かれている。   The CABAC decoding apparatus 100 is an apparatus that performs decoding processing on three input slices in parallel and outputs binary data corresponding to each slice. Pipeline processing is divided into three pipeline stages.

CABAC復号化装置100は、FF101と、FF102と、復号化部103と、ctxIdx計算部104と、3つのコンテキスト変数テーブル(コンテキスト変数テーブル105a、コンテキスト変数テーブル105b、コンテキスト変数テーブル105c)と、入力するスライスを選択する入力セレクタ116と、pStateIdxおよびvalMPSを、その時点での処理対象データに対応するコンテキスト変数テーブルから読み出すテーブルセレクタ117と、各パイプラインステージを接続するためのFF(FF111〜FF115)と、復号化部103により得られたbinValを一時的に格納する出力バッファ118とを備える。   The CABAC decoding apparatus 100 inputs the FF 101, the FF 102, the decoding unit 103, the ctxIdx calculation unit 104, and three context variable tables (context variable table 105a, context variable table 105b, and context variable table 105c). An input selector 116 that selects a slice, a table selector 117 that reads pStateIdx and valMPS from the context variable table corresponding to the data to be processed at that time, and an FF (FF111 to FF115) for connecting each pipeline stage The output buffer 118 temporarily stores binVal obtained by the decoding unit 103.

なお、復号化部103は、本発明のCABAC復号化装置における復号手段の一例であり、入力セレクタ116は取得手段の一例である。また、ctxIdx計算部104は、本発明のCABAC復号化装置におけるctxIdx算出手段の一例であり、テーブルセレクタは読出し手段の一例である。   The decoding unit 103 is an example of a decoding unit in the CABAC decoding apparatus of the present invention, and the input selector 116 is an example of an acquisition unit. The ctxIdx calculation unit 104 is an example of a ctxIdx calculation unit in the CABAC decoding apparatus of the present invention, and the table selector is an example of a reading unit.

本実施の形態のCABAC復号化装置100における、1つのスライスに対する復号化処理の方法は従来のCABAC復号化装置100と同じである。しかしながら、従来のCABAC復号化装置とは異なり、3つのスライスを並行にパイプライン処理する装置である。そのため、それぞれのスライスの処理に対応するためのコンテキスト変数テーブルを備えている。   In the CABAC decoding apparatus 100 of the present embodiment, the decoding processing method for one slice is the same as that of the conventional CABAC decoding apparatus 100. However, unlike the conventional CABAC decoding apparatus, it is an apparatus that pipelines three slices in parallel. For this reason, a context variable table is provided for handling each slice.

本実施の形態では、入力される3つのスライスそれぞれを、sliceA、sliceB、sliceCとし、入力セレクタ116に選択されることにより、選択されたスライスのスライスデータがCABAC復号化装置100に入力される。   In the present embodiment, each of the three input slices is set as sliceA, sliceB, and sliceC, and is selected by the input selector 116, whereby the slice data of the selected slice is input to the CABAC decoding apparatus 100.

また、コンテキスト変数テーブル105a、コンテキスト変数テーブル105b、コンテキスト変数テーブル105cはそれぞれのスライスの復号化処理に対応するコンテキスト変数テーブルである。なお、これらコンテキスト変数テーブルは具体的には1つ以上のSRAM(Static Random Access Memory)に保持されている。   Further, the context variable table 105a, the context variable table 105b, and the context variable table 105c are context variable tables corresponding to the decoding processing of each slice. Note that these context variable tables are specifically held in one or more SRAMs (Static Random Access Memory).

ctxIdx計算部104は、先に復号化されたbinValを用い、SyntaxとbinIdxとを求め、その2つの情報からctxIdxを算出する処理部である。   The ctxIdx calculation unit 104 is a processing unit that obtains a Syntax and a binIdx using the previously decoded binVal, and calculates ctxIdx from the two pieces of information.

復号化部103は、入力されたスライスデータから1ビットの2値データであるbinValを算出する処理部である。復号化部103内には、binValを算出するのに用いられるデータテーブル1032がある。また、算出されたbinValに応じてどのようにコンテキスト変数テーブルを更新するかを決定するためのデータテーブル1031を有している。   The decoding unit 103 is a processing unit that calculates binVal, which is 1-bit binary data, from the input slice data. Within the decryption unit 103 is a data table 1032 that is used to calculate binVal. In addition, it has a data table 1031 for determining how to update the context variable table according to the calculated binVal.

具体的には、データテーブル1031はAVC/H.264に規定されたState transition tableであり、データテーブル1032は、同じくAVC/H.264に規定されたSpecification of rangeTabLPS depending on pStateIdx and qCodIRangeIdxである。   Specifically, the data table 1031 is AVC / H. H.264 is a state transition table, and the data table 1032 is also an AVC / H. H.264 specification of rangeTabLPS dependent on pStateIdx and qCodIrangeIdx.

出力バッファ118は、復号化部103により求められたbinValをスライスデータごとに蓄積するバッファである。   The output buffer 118 is a buffer that accumulates binVal obtained by the decoding unit 103 for each slice data.

図2は、コンテキスト変数テーブルのデータ構成の一例を示す図である。   FIG. 2 is a diagram illustrating an example of a data configuration of the context variable table.

図2に示すように、コンテキスト変数テーブルは、ctxIdxによりpStateIdxとvalMPSとを特定するためのテーブルである。例えば、ctxIdx計算部104によりctxIdx=“0”が出力された場合、pStateIdx=“50”およびvalMPS=“0”が特定される。これらpStateIdxおよびvalMPSの値はテーブルセレクタ117によって読み出される。更に、FF101を介し、復号化部103により取得され、binValを算出するために用いられる。   As illustrated in FIG. 2, the context variable table is a table for specifying pStateIdx and valMPS by ctxIdx. For example, when ctxIdx = “0” is output by the ctxIdx calculation unit 104, pStateIdx = “50” and valMPS = “0” are specified. The values of pStateIdx and valMPS are read by the table selector 117. Furthermore, it is acquired by the decoding unit 103 via the FF 101 and used to calculate binVal.

コンテキスト変数テーブル105a〜コンテキスト変数テーブル105cのそれぞれは、図2に示すようなデータ構成を有している。   Each of the context variable table 105a to the context variable table 105c has a data configuration as shown in FIG.

次に、CABAC復号化装置100の動作を図3〜図5を用いて説明する。   Next, the operation of the CABAC decoding apparatus 100 will be described with reference to FIGS.

図3は、CABAC復号化装置100における復号化処理の流れを示すフローチャートである。図3を用いて、あるスライスデータの入力から、そのスライスデータについての最初のbinValが算出され、次のbinValを算出するための処理を行うまでのCABAC復号化装置100における処理の流れを説明する。   FIG. 3 is a flowchart showing a flow of decoding processing in the CABAC decoding apparatus 100. The flow of processing in the CABAC decoding apparatus 100 from the input of certain slice data until the first binVal for that slice data is calculated and the processing for calculating the next binVal is performed will be described using FIG. .

まず、binValを求めるための各種初期値が設定される(S10)。具体的には、codIRangeおよびcodIOffsetの初期値は、それぞれ予め所定の値がFF102に保持されている。Syntaxの初期値は、スライスヘッダや、PPS(ピクチャパラメータセット)などで設定されるスライスの符号化条件により求められ、その初期値がctxIdxに与えられる。また、初回の復号化処理であり、Syntax内の2値データの位置を示すbinIdxは“0”とされる。   First, various initial values for obtaining binVal are set (S10). Specifically, the initial values of codIRange and codIOoffset are previously held in the FF 102 in advance. The initial value of Syntax is obtained from the slice coding conditions set by the slice header, PPS (picture parameter set), etc., and the initial value is given to ctxIdx. Also, this is the first decoding process, and binIdx indicating the position of binary data in the Syntax is set to “0”.

図4は、スライスデータのデータ構成の一例を示す図である。図4に示すように、スライスデータは、ヘッダ部分と実体データ部分とを有しヘッダ部分にはスライス設定データが存在する。Syntaxの初期値はスライス設定データによって定められる。実体データ部分には、復号化部103の復号化処理の対象である符号化データが1つ以上存在する。   FIG. 4 is a diagram illustrating an example of a data configuration of slice data. As shown in FIG. 4, the slice data has a header portion and a substance data portion, and slice setting data exists in the header portion. The initial value of Syntax is determined by slice setting data. The entity data portion includes one or more pieces of encoded data that is a target of decoding processing by the decoding unit 103.

なお、スライスデータは本発明のCABAC復号化装置における一連のデータ列の一例である。   The slice data is an example of a series of data strings in the CABAC decoding apparatus according to the present invention.

初期値設定の後、ctxIdx計算部104は、SyntaxとbinIdxとからctxIdxを算出する(S11)。初回の算出には上述のSyntaxの初期値とbinIdx=“0”とが用いられる。   After setting the initial value, the ctxIdx calculation unit 104 calculates ctxIdx from the Syntax and binIdx (S11). For the first calculation, the above-mentioned initial value of Syntax and binIdx = “0” are used.

ctxIdxが算出されると、コンテキスト変数テーブルからそのctxIdxに対応付けられたpStateIdxとvalMPSとが求められる(S12)。例えば、sliceAのスライスデータを処理する際に得られるctxIdxは、コンテキスト変数テーブル105aと照合され、そのctxIdxに対応するpStateIdxとvalMPSとが求められる。   When ctxIdx is calculated, pStateIdx and valMPS associated with the ctxIdx are obtained from the context variable table (S12). For example, ctxIdx obtained when processing slice data of sliceA is collated with the context variable table 105a, and pStateIdx and valMPS corresponding to the ctxIdx are obtained.

復号化部103は、求められたpStateIdxとvalMPSと、FF102から読み出したcodIRangeおよびcodIOffsetとを用いて、binValを算出する(S13)。   The decryption unit 103 calculates binVal using the obtained pStateIdx and valMPS, and codIRange and codIOoffset read from the FF 102 (S13).

また、同じスライスについての次のbinValを算出するためのcodIRange(new_codIRange)およびcodIOffset(new_codIOffset)を算出する(S14)。   Also, codIRrange (new_codIRrange) and codIOoffset (new_codIOoffset) for calculating the next binVal for the same slice are calculated (S14).

また、算出されたbinValとデータテーブル1031とから新たなpStateIdx(new_pStateIdx)と新たなvalMPS(new_valMPS)とが算出される。算出されたそれら値により、対応するコンテキスト変数テーブルが更新される(S15)。   Also, a new pStateIdx (new_pStateIdx) and a new valMPS (new_valMPS) are calculated from the calculated binVal and the data table 1031. The corresponding context variable table is updated with the calculated values (S15).

ctxIdx計算部104は、復号化部103により算出されたbinValに基づき同じスライスについての次のctxIdxの算出に必要なSyntaxとbinIdxとを求める(S16)。SyntaxとbinIdxとが求められると、ctxIdxの算出(S11)に戻り、上記動作が繰り返される。   The ctxIdx calculation unit 104 obtains the Syntax and binIdx necessary for calculating the next ctxIdx for the same slice based on the binVal calculated by the decoding unit 103 (S16). When Syntax and binIdx are obtained, the process returns to the calculation of ctxIdx (S11) and the above operation is repeated.

図5は、CABAC復号化装置100における復号化処理のタイムチャートの一例である。図4の中で“An”(n=0、1、2・・・)とは、sliceAのスライスデータを復号化して得られる2値データ1ビットのn+1個目、つまり、n+1個目のbinValの出力に関わる各種の値の存在を示す記号である。また、横軸は時間であり、“T1、T2、・・・”のそれぞれは、1クロックごとのサイクルを示す記号である。   FIG. 5 is an example of a time chart of the decoding process in the CABAC decoding apparatus 100. In FIG. 4, “An” (n = 0, 1, 2,...) Means n + 1th bit of binary data 1 bit obtained by decoding sliceA slice data, that is, n + 1th binVal. Is a symbol indicating the existence of various values related to the output of. The horizontal axis represents time, and each of “T1, T2,...” Is a symbol indicating a cycle for each clock.

例えば、サイクルT4においてpStateIdxとvalMPSとが“A1”であるとは、サイクルT4において、sliceAのスライスデータからの2個目のbinValを得るためのpStateIdxとvalMPSとを用いた処理が行なわれることを示す。“Bn”、“Cn”についても同様である。   For example, the fact that pStateIdx and valMPS are “A1” in cycle T4 means that processing using pStateIdx and valMPS to obtain the second binVal from the slice data of slice A is performed in cycle T4. Show. The same applies to “Bn” and “Cn”.

図5のタイムチャートにおいて、sliceAの入力データから2番目のbinVal[A1]が得られる処理の流れをサイクルごとに説明する。   In the time chart of FIG. 5, the flow of processing for obtaining the second binVal [A1] from the input data of sliceA will be described for each cycle.

サイクルT2において、すでに求められているbinVal[A0]を用いて次のctxIdx[A1]が求められる。   In cycle T2, the next ctxIdx [A1] is obtained using binVal [A0] already obtained.

サイクルT3において、サイクルT2で求められたctxIdx[A1]を用いてpStateIdx[A1]およびvalMPS[A1]の値が求められる。これと同時に、入力データとして、sliceAのデータ[A1]が選択される。また、binVal[A0]を求めるのに使用したcodIRange[A0]や入力データ[A1]等の値から、binVal[A1]を求めるためのcodIRange[A1]およびcodIOffset[A1]が求められる。   In cycle T3, the values of pStateIdx [A1] and valMPS [A1] are obtained using ctxIdx [A1] obtained in cycle T2. At the same time, the slice A data [A1] is selected as input data. Also, codIRrange [A1] and codIOoffset [A1] for obtaining binVal [A1] are obtained from the values of codIRRange [A0] and input data [A1] used to obtain binVal [A0].

サイクルT4において、pStateIdx[A1]、valMPS[A1]、codIRange[A1]およびcodIOffset[A1]を用いて、binVal[A1]が求められる。   In cycle T4, binVal [A1] is obtained using pStateIdx [A1], valMPS [A1], codIRange [A1] and codIOoffset [A1].

また、タイムチャートには表現されていないが、binVal[A1]の値に応じ、pStateIdx[A1]およびvalMPS[A1]の値を変更することで、それぞれの新たな値であるnew_pStateIdxおよびnew_valMPSが求められる。   Although not expressed in the time chart, new values new_pStateIdx and new_valMPS are obtained by changing the values of pStateIdx [A1] and valMPS [A1] according to the value of binVal [A1]. It is done.

サイクルT5において、binVal[A1]が出力バッファ118に出力される。このときnew_pStateIdxおよびnew_valMPSによりコンテキスト変数テーブル105aが更新され、次のサイクルT6からbinVal[A2]を出力するための処理が開始される。   In cycle T5, binVal [A1] is output to the output buffer 118. At this time, the context variable table 105a is updated by new_pStateIdx and new_valMPS, and processing for outputting binVal [A2] is started from the next cycle T6.

このように、サイクルT3においてbinVal[A1]を得るためのデータ[A1]が入力され、サイクルT5でbinVal[A1]が出力されることとなる。つまり、sliceAについてのみ着目すると、3クロックに1回のタイミングでbinValが出力されることとなる。   Thus, data [A1] for obtaining binVal [A1] is input in cycle T3, and binVal [A1] is output in cycle T5. That is, when focusing on only slice A, binVal is output at a timing of once every three clocks.

しかし、CABAC復号化装置100は、上述のように、3つのスライスデータについて3つのパイプラインステージで並列に復号化処理を行なう。本実施の形態ではsliceA、sliceB、sliceC、の順に入力データが選択され、並列に処理される。処理の結果、1クロック毎に入力と同じ順番で各スライスのbinVal1ビットが出力される。   However, as described above, the CABAC decoding apparatus 100 performs decoding processing on three slice data in parallel at three pipeline stages. In the present embodiment, input data is selected in the order of sliceA, sliceB, and sliceC, and processed in parallel. As a result of processing, the binVal1 bit of each slice is output in the same order as the input every clock.

例えば、図5に示すタイムチャートのサイクルT6において各パイプラインステージで並行して行われる処理の内容は以下のようになる。   For example, the contents of processing performed in parallel at each pipeline stage in cycle T6 of the time chart shown in FIG. 5 are as follows.

<パイプラインステージ0>
FF102にセットされていたcodIRange[C1]およびcodIOffset[C1]と、パイプラインステージ2においてコンテキスト変数テーブル105cから求められたpStateIdx[C1]、valMPS[C1]とを用い、復号化部103がbinVal[C1]およびnew_codIRange[C2]とnew_codIOffset[C2]とを求める。
<Pipeline stage 0>
The decoding unit 103 uses binVal [C1] and codIOOffset [C1] set in the FF 102 and pStateIdx [C1] and valMPS [C1] obtained from the context variable table 105c in the pipeline stage 2. C1] and new_codIRrange [C2] and new_codIOOffset [C2].

binVal[C1]はFF111にセットされ、new_codIRange[C2]とnew_codIOffset[C2]とはFF113にセットされる。   binVal [C1] is set in FF111, and new_codIRrange [C2] and new_codIOOffset [C2] are set in FF113.

また、pStateIdx[C1]およびvalMPS[C1]を、求められたbinVal[C1]とデータテーブル1031を用いて得られる値によって変更する。変更されたそれぞれの値は、コンテキスト変数テーブル105cを更新するnew_pStateIdxおよびnew_valMPSとしてFF112にセットされる。   Also, pStateIdx [C1] and valMPS [C1] are changed according to the values obtained using the obtained binVal [C1] and the data table 1031. The changed values are set in the FF 112 as new_pStateIdx and new_valMPS for updating the context variable table 105c.

<パイプラインステージ1>
パイプラインステージ0において復号化部103により求められFF111にセットされていたbinVal[B1]が出力バッファ118に出力される。またbinVal[B1]を用いて、ctxIdx計算部104にて次のctxIdx[B2]が算出され、FF115にセットされる。
<Pipeline stage 1>
In pipeline stage 0, binVal [B1] obtained by the decoding unit 103 and set in the FF 111 is output to the output buffer 118. Also, using binVal [B1], the ctxIdx calculation unit 104 calculates the next ctxIdx [B2] and sets it in the FF 115.

また、パイプラインステージ0において復号化部103により求められ、FF112にセットされていたnew_pStateIdx,new_valMPSが、sliceBに対応するコンテキスト変数テーブル105bに書き込まれる。つまりコンテキスト変数テーブル105bが更新される。   Also, new_pStateIdx and new_valMPS obtained by the decoding unit 103 in the pipeline stage 0 and set in the FF 112 are written into the context variable table 105b corresponding to sliceB. That is, the context variable table 105b is updated.

<パイプラインステージ2>
パイプラインステージ1においてctxIdx計算部104によって求められFF115にセットされていたctxIdx[A2]を用い、コンテキスト変数テーブル105aを参照して、ctxIdx[A2]に対応するpStateIdx[A2]およびvalMPS[A2]が求められる。
<Pipeline stage 2>
CtxIdx [A2] and valMPS [A2] corresponding to ctxIdx [A2] are referred to the context variable table 105a using ctxIdx [A2] obtained by the ctxIdx calculation unit 104 and set in the FF 115 in the pipeline stage 1 Is required.

求められたpStateIdx[A2]およびvalMPS[A2]はテーブルセレクタ117に読み出され、FF101にセットされる。また、FF114から出力されるnew_codIRange[A2]およびnew_codIOffset[A2]と入力[A2]により、codIRange[A2]とcodIOffset[A2]が作成され、FF102にセットされる。   The obtained pStateIdx [A2] and valMPS [A2] are read by the table selector 117 and set in the FF101. Also, codIRrange [A2] and codIOoffset [A2] are created and set in FF102 by new_codIRrange [A2] and new_codIOOffset [A2] and input [A2] output from FF114.

このように、本発明の実施の形態のCABAC復号化装置100は、復号化回路をパイプライン化することにより動作周波数を向上させている。   As described above, the CABAC decoding apparatus 100 according to the embodiment of the present invention improves the operating frequency by pipelining the decoding circuit.

ここで、CABACの復号化処理において、1つのbinVal、つまり2値データの1ビットを得るためにはその前の1ビットが算出されている必要がある。そのため、回路にFFを挿入し、単に動作周波数を向上させても、単位時間当たりの処理結果の出力量を増加させることはできない。   Here, in the CABAC decoding process, in order to obtain one binVal, that is, one bit of binary data, the previous one bit needs to be calculated. Therefore, even if an FF is inserted in the circuit and the operating frequency is simply improved, the output amount of the processing result per unit time cannot be increased.

例えば図6に示すように、従来の復号化回路に複数のFFを挿入し、動作周波数を向上させた場合を想定する。   For example, as shown in FIG. 6, it is assumed that a plurality of FFs are inserted into a conventional decoding circuit to improve the operating frequency.

図6は、従来のCABAC復号化装置に複数のFFを挿入し、動作周波数を向上させることを可能とする構成とした一例を示す図である。   FIG. 6 is a diagram showing an example in which a plurality of FFs are inserted into a conventional CABAC decoding device to improve the operating frequency.

図6に示すCABAC復号化装置150は、本発明の実施の形態のCABAC復号化装置100と同様に複数のFFを備え、3つのパイプラインステージからなるパイプライン処理が可能である。これにより1クロックごとの処理負荷を減らし、動作周波数を向上させることができる。   Similar to the CABAC decoding apparatus 100 according to the embodiment of the present invention, the CABAC decoding apparatus 150 shown in FIG. 6 includes a plurality of FFs and can perform pipeline processing including three pipeline stages. As a result, the processing load for each clock can be reduced and the operating frequency can be improved.

図7は、CABAC復号化装置150における復号化処理のタイムチャートの一例である。   FIG. 7 is an example of a time chart of the decoding process in the CABAC decoding apparatus 150.

図7に示すように、動作周波数が向上することにより処理サイクルの速度も向上するが、この場合においても、復号化処理のループが1回りするごとに1ビットの出力結果が得られることに変わりない。   As shown in FIG. 7, the processing cycle speed is improved by improving the operating frequency. However, even in this case, a 1-bit output result is obtained every time the decoding processing loop is completed. Absent.

例えば、100MHzで動作していた従来の回路を、3つのステージに分け、3倍の300MHzで動作させたとしても、1ビットの出力が得られるのは3サイクルに1回だけである。つまり、従来の回路と同じ出力レートしか得ることはできない。   For example, even if a conventional circuit operating at 100 MHz is divided into three stages and operated at 300 MHz, which is three times as much, a 1-bit output can be obtained only once every three cycles. That is, only the same output rate as that of the conventional circuit can be obtained.

しかしながら、本発明の実施の形態のCABAC復号化装置100は、単にFFを挿入し、処理を複数のステージに分けて、動作周波数を向上させるだけでなく、3つのスライスデータを一定の順序で入力データとして取り込むことにより、3つのパイプラインステージを最も効率よく稼動させることができる。   However, the CABAC decoding apparatus 100 according to the embodiment of the present invention not only simply inserts FFs and divides the processing into a plurality of stages to improve the operating frequency, but also inputs three slice data in a certain order. By capturing as data, the three pipeline stages can be operated most efficiently.

具体的には、3つのスライスデータのそれぞれは、独立して処理することができるため、あるスライスデータの処理とは関係なく、他のスライスデータの処理を進行することができる。つまり、本実施の形態のように、sliceA、sliceB、sliceCのそれぞれのデータをA、B、Cの順番に取り込むことにより、3つあるパイプラインステージを効率的に隙間なく稼動させることができる。   Specifically, since each of the three slice data can be processed independently, the processing of other slice data can proceed regardless of the processing of certain slice data. That is, as in the present embodiment, the three pipeline stages can be efficiently operated without gaps by fetching the data of sliceA, sliceB, and sliceC in the order of A, B, and C.

また、3つのスライスデータを並行して処理するために、それぞれのスライスデータの復号化処理に対応する3つのコンテキスト変換テーブルを有している。これら3つのコンテキスト変換テーブルは互いに独立して存在し、各スライスデータの処理結果に応じて更新され、参照される。   In addition, in order to process three slice data in parallel, three context conversion tables corresponding to decoding processing of each slice data are provided. These three context conversion tables exist independently of each other, and are updated and referred to according to the processing result of each slice data.

このように、本発明の実施の形態のCABAC復号化装置100は、パイプライン処理により動作周波数を向上させ、かつ、効率的にパイプライン処理を行なうために3つのスライスデータを一定の順序で取り込む。取り込まれた3つのスライスデータのそれぞれは3つのパイプラインステージにより並行に処理されるため、結果として、単位時間当たりの出力データ量を増加させることができる。   As described above, the CABAC decoding apparatus 100 according to the embodiment of the present invention captures three slice data in a certain order in order to improve the operating frequency by pipeline processing and efficiently perform pipeline processing. . Since each of the acquired three slice data is processed in parallel by the three pipeline stages, as a result, the output data amount per unit time can be increased.

なお、本実施の形態では、CABAC復号化装置100のパイプライン処理におけるステージ数は3であり、入力されるスライスデータは3つであるとした。しかしながら、パイプラインステージ数と、入力されるスライスデータ数とは3でなくてもよい。   In the present embodiment, it is assumed that the number of stages in the pipeline processing of the CABAC decoding apparatus 100 is 3, and the input slice data is 3. However, the number of pipeline stages and the number of input slice data need not be three.

例えば、それらの数がともに4でもよく、また、パイプラインステージ数が3で、入力されるスライスデータの数が5でもよい。つまり、パイプラインステージ数よりも入力されるスライスデータ数が多ければ、パイプライン処理の隙間が生じることがなく効率よく処理が行なわれることとなる。   For example, the number may be four, the number of pipeline stages may be three, and the number of input slice data may be five. In other words, if the number of input slice data is larger than the number of pipeline stages, the processing is performed efficiently without causing a gap in pipeline processing.

また、例えば、本実施の形態のCABAC復号化装置において、更にsliceDを復号化処理の対象とした場合、入力データを入力セレクタ116が選択する順序は、sliceA〜sliceDが繰り返される順序でなくてもよい。例えば、sliceA、sliceB、sliceC、sliceDと選択した後に、sliceB、sliceAと選択してもよい。   Further, for example, in the CABAC decoding apparatus according to the present embodiment, when sliceD is further subjected to decoding processing, the order in which the input selector 116 selects input data may not be the order in which sliceA to sliceD are repeated. Good. For example, after selecting sliceA, sliceB, sliceC, and sliceD, you may select sliceB and sliceA.

つまり、パイプラインステージ数が3である場合、1つのbinValが出力されるのは3サイクルごとである。よって、あるスライスが選択される間隔が3サイクル以上あいていれば算出済みのbinValに基づき新たなbinValを算出し出力することができるからである。従って、あるスライスが選択される間隔は、パイプラインステージ数以上のサイクル数であればbinValの算出を効率よく行うことができる。   That is, when the number of pipeline stages is 3, one binVal is output every three cycles. Therefore, if a certain slice is selected at an interval of 3 cycles or more, a new binVal can be calculated and output based on the calculated binVal. Accordingly, binVal can be calculated efficiently if the interval at which a slice is selected is the number of cycles equal to or greater than the number of pipeline stages.

また、例えば、パイプラインステージ数が3であり、入力されるスライスデータ数が2である場合、パイプライン処理に隙間が生じることとなる。しかしながら、単位時間当たりの出力データ量は、少なくとも従来のCABAC復号化装置よりも多くなる。   For example, when the number of pipeline stages is 3 and the number of input slice data is 2, a gap is generated in the pipeline processing. However, the amount of output data per unit time is larger than at least the conventional CABAC decoding device.

1つの出力データを得るために複数の処理工程が行われる場合、時系列において少しでも並行して処理が行なわれている部分があれば、複数の処理工程が完全に直列して行なわれている場合よりも、処理に必要な時間が減少するからである。   When a plurality of processing steps are performed in order to obtain one output data, a plurality of processing steps are completely performed in series if there is a portion where processing is performed in parallel in the time series even a little. This is because the time required for processing is reduced compared to the case.

つまり、複数のパイプラインステージ数に対し、入力されるスライスデータの数も複数であれば、少なくとも従来のCABAC復号化装置よりも単位時間当たりの出力データ量を増加させることができる。   In other words, if the number of input slice data is plural for a plurality of pipeline stages, at least the amount of output data per unit time can be increased as compared with the conventional CABAC decoding apparatus.

また、CABAC復号化装置100は、図1に示すように、復号化処理により得られたbinValを蓄積する出力バッファ118を備えるが、出力バッファを複数備えていてもよい。例えば、本実施の形態のように、3つのスライスデータを並列処理の対象とした場合、各スライスデータに対応するように、3つの出力バッファを備えていてもよい。   As shown in FIG. 1, the CABAC decoding apparatus 100 includes an output buffer 118 that accumulates binVal obtained by the decoding process, but may include a plurality of output buffers. For example, when three slice data are targeted for parallel processing as in the present embodiment, three output buffers may be provided so as to correspond to each slice data.

本発明は、CABACにより符号化されたデータを復号化する復号化装置に利用することができる。具体的には、AVC/H.264に規定されたデータ圧縮技術により符号化されたハイビジョン映像などを再生するための復号化装置として最適である。   The present invention can be used in a decoding apparatus that decodes data encoded by CABAC. Specifically, AVC / H. H.264 is optimal as a decoding device for reproducing high-definition video encoded by a data compression technique defined in H.264.

本発明の実施の形態のCABAC復号化装置の機能的な構成を示す機能ブロック図である。It is a functional block diagram which shows the functional structure of the CABAC decoding apparatus of embodiment of this invention. コンテキスト変数テーブルのデータ構成の一例を示す図である。It is a figure which shows an example of a data structure of a context variable table. 本発明の実施の形態のCABAC復号化装置の復号化処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the decoding process of the CABAC decoding apparatus of embodiment of this invention. スライスデータのデータ構成の一例を示す図である。It is a figure which shows an example of a data structure of slice data. 本発明の実施の形態のCABAC復号化装置における復号化処理のタイムチャートの一例である。It is an example of the time chart of the decoding process in the CABAC decoding apparatus of embodiment of this invention. 従来のCABAC復号化装置に複数のFFを挿入し、動作周波数を向上させることを可能とする構成とした一例を示す図である。It is a figure which shows an example made into the structure which inserts several FF in the conventional CABAC decoding apparatus and makes it possible to improve an operating frequency. 図6に示すCABAC復号化装置における復号化処理のタイムチャートの一例である。7 is an example of a time chart of a decoding process in the CABAC decoding apparatus shown in FIG. 6. 従来のCABAC復号化装置の機能的な構成の一例を示す図である。It is a figure which shows an example of a functional structure of the conventional CABAC decoding apparatus. 従来のCABAC復号化装置における復号化処理のタイムチャートの一例である。It is an example of the time chart of the decoding process in the conventional CABAC decoding apparatus.

符号の説明Explanation of symbols

100 CABAC復号化装置
103 復号化部
104 ctxIdx計算部
105a、105b、105c コンテキスト変数テーブル
101、102、111、112、113、114、115 フリップフロップ回路
116 入力セレクタ
117 テーブルセレクタ
118 出力バッファ
1031、1032 データテーブル
DESCRIPTION OF SYMBOLS 100 CABAC decoding apparatus 103 Decoding part 104 ctxIdx calculation part 105a, 105b, 105c Context variable table 101, 102, 111, 112, 113, 114, 115 Flip-flop circuit 116 Input selector 117 Table selector 118 Output buffer 1031, 1032 Data table

Claims (8)

コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する装置であって、
符号化されたデータである符号化データを複数取得する取得手段と、
複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルと、
複数の前記符号化データを、それぞれに対応付けられた前記コンテキスト変数テーブルを用いて復号化する復号化手段と
を備えるCABAC復号化装置。
An apparatus for decoding data encoded by a context adaptive binary arithmetic coding scheme (CABAC),
Obtaining means for obtaining a plurality of pieces of encoded data that is encoded data;
A plurality of context variable tables associated with each of the plurality of encoded data;
A CABAC decoding device comprising: decoding means for decoding a plurality of encoded data using the context variable table associated with each of the encoded data.
複数の前記符号化データのそれぞれは、互いに異なる一連のデータ列のそれぞれに含まれており、
前記複数のコンテキスト変数テーブルは、複数の前記一連のデータ列のそれぞれと対応付けられることで、複数の前記符号化データのそれぞれに対応付けられており、
前記取得手段は、複数の前記一連のデータ列の中から所定の順序で1つの前記一連のデータ列を選択することにより、選択された前記一連のデータ列に含まれる符号化データを取得する
請求項1記載のCABAC復号化装置。
Each of the plurality of encoded data is included in each of a series of different data strings,
The plurality of context variable tables are associated with each of the plurality of encoded data by being associated with each of the plurality of the series of data strings,
The acquisition unit acquires encoded data included in the selected series of data strings by selecting the series of data strings in a predetermined order from a plurality of the series of data strings. Item 5. The CABAC decoding device according to Item 1.
前記復号化手段は、前記符号化データを復号化して得られる2値データを1ビットずつ出力し、
前記CABAC復号化装置は、更に、
前記復号化手段から出力された1ビットに基づき、前記符号化データから得られる次の1ビットである次ビットの種類についての情報であるコンテキストインデックス(ctxIdx)を算出するctxIdx算出手段と、
前記符号化データに対応する前記コンテキスト変数テーブルを参照し、前記ctxIdx算出手段により算出されたctxIdxに対応する前記次ビットが0であるか1であるかの確率についての情報である確率情報を読み出して前記復号化手段に渡す読み出し手段とを備え、
前記復号化手段、前記ctxIdx算出手段、および前記読出し手段の少なくとも2つは、互いに異なる符号化データについての処理を並行して行なう
請求項1記載のCABAC復号化装置。
The decoding means outputs binary data obtained by decoding the encoded data bit by bit,
The CABAC decoding device further includes:
CtxIdx calculating means for calculating a context index (ctxIdx) that is information about the type of the next bit, which is the next 1 bit obtained from the encoded data, based on 1 bit output from the decoding means;
With reference to the context variable table corresponding to the encoded data, read out probability information which is information about the probability of whether the next bit corresponding to ctxIdx calculated by the ctxIdx calculating means is 0 or 1 Reading means for passing to the decoding means,
The CABAC decoding apparatus according to claim 1, wherein at least two of the decoding unit, the ctxIdx calculating unit, and the reading unit perform processing on different encoded data in parallel.
前記復号化手段、および複数の前記コンテキスト変数テーブルは、複数の前記符号化データそれぞれをパイプライン処理するために用いられ、
前記コンテキスト変数テーブルの数は、前記パイプライン処理におけるパイプラインステージ数と同じである
請求項1記載のCABAC復号化装置。
The decoding means and the plurality of context variable tables are used to pipeline each of the plurality of encoded data,
The CABAC decoding apparatus according to claim 1, wherein the number of the context variable tables is the same as the number of pipeline stages in the pipeline processing.
複数の前記符号化データそれぞれは、互いに異なる一連のデータ列のそれぞれに含まれており、
複数の前記一連のデータ列の数は前記パイプラインステージ数と同じ数であり、
前記複数のコンテキスト変数テーブルは、複数の前記一連のデータ列のそれぞれと対応付けられることで、複数の前記符号化データのそれぞれに対応付けられており、
前記取得手段は、複数の前記一連のデータ列の中から1サイクルごとに所定の順序で1つの前記一連のデータ列を選択することにより、選択された前記一連のデータ列に含まれる符号化データを取得する
請求項4記載のCABAC復号化装置。
Each of the plurality of encoded data is included in each of a series of different data strings,
The number of the plurality of series of data strings is the same as the number of pipeline stages,
The plurality of context variable tables are associated with each of the plurality of encoded data by being associated with each of the plurality of the series of data strings,
The acquisition unit selects one of the series of data strings in a predetermined order for each cycle from the plurality of series of data strings, thereby including encoded data included in the selected series of data strings. The CABAC decoding apparatus according to claim 4.
前記復号化手段は、前記符号化データを復号化して得られる2値データを1サイクルごとに1ビットずつ出力し、
前記CABAC復号化装置は、更に、
前記復号化手段が出力する2値データの1ビットを、復号化される前の符号化データごとに蓄積する出力バッファを備える
請求項4記載のCABAC復号化装置。
The decoding means outputs binary data obtained by decoding the encoded data, one bit per cycle,
The CABAC decoding device further includes:
The CABAC decoding apparatus according to claim 4, further comprising an output buffer that accumulates one bit of the binary data output by the decoding means for each encoded data before being decoded.
コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する方法であって、
符号化されたデータである符号化データを複数取得する取得ステップと、
複数の前記符号化データを、複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルを用いて復号化する復号化ステップと
を含む復号化方法。
A method for decoding data encoded by a context adaptive binary arithmetic coding scheme (CABAC),
An acquisition step of acquiring a plurality of encoded data that are encoded data;
A decoding method comprising: a decoding step of decoding the plurality of encoded data using a plurality of context variable tables associated with each of the plurality of encoded data.
コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する集積回路であって、
符号化されたデータである符号化データを複数取得する取得手段と、
複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルと、
複数の前記符号化データを、それぞれに対応付けられた前記コンテキスト変数テーブルを用いて復号化する復号化手段と
を備える集積回路。
An integrated circuit for decoding data encoded by a context adaptive binary arithmetic coding scheme (CABAC),
Obtaining means for obtaining a plurality of pieces of encoded data that is encoded data;
A plurality of context variable tables associated with each of the plurality of encoded data;
An integrated circuit comprising: decoding means for decoding a plurality of the encoded data using the context variable table associated with each of the encoded data.
JP2005262154A 2005-09-09 2005-09-09 Cabac decoding apparatus Pending JP2007074648A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005262154A JP2007074648A (en) 2005-09-09 2005-09-09 Cabac decoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005262154A JP2007074648A (en) 2005-09-09 2005-09-09 Cabac decoding apparatus

Publications (1)

Publication Number Publication Date
JP2007074648A true JP2007074648A (en) 2007-03-22

Family

ID=37935661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005262154A Pending JP2007074648A (en) 2005-09-09 2005-09-09 Cabac decoding apparatus

Country Status (1)

Country Link
JP (1) JP2007074648A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008289125A (en) * 2007-04-20 2008-11-27 Panasonic Corp Arithmetic decoding apparatus and method thereof
US7956776B2 (en) 2008-11-28 2011-06-07 Sony Corporation Arithmetic decoding apparatus
WO2013046504A1 (en) * 2011-09-29 2013-04-04 パナソニック株式会社 Arithmetic decoding device, image decoding device, and arithmetic decoding method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002033925A (en) * 2000-07-18 2002-01-31 Matsushita Graphic Communication Systems Inc Method arithmetic encoding and decoding, and apparatus for arithmetic encoding and decoding
JP2002175283A (en) * 2000-12-05 2002-06-21 Matsushita Electric Ind Co Ltd Systolic array type computing unit
JP2004135251A (en) * 2002-10-10 2004-04-30 Sony Corp Method of encoding image information, and method of decoding the image information
JP2005130099A (en) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd Arithmetic decoding device, arithmetic encoding device, arithmetic encoding/decoding device, portable terminal equipment, moving image photographing device, and moving image recording/reproducing device
JP2005223533A (en) * 2004-02-04 2005-08-18 Victor Co Of Japan Ltd Arithmetic decoding apparatus and arithmetic decoding program
JP2005229218A (en) * 2004-02-10 2005-08-25 Sanyo Electric Co Ltd Image decoding apparatus
JP2006054865A (en) * 2004-08-02 2006-02-23 Samsung Electronics Co Ltd Binary arithmetic decoding apparatus and methods using pipelined structure

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002033925A (en) * 2000-07-18 2002-01-31 Matsushita Graphic Communication Systems Inc Method arithmetic encoding and decoding, and apparatus for arithmetic encoding and decoding
JP2002175283A (en) * 2000-12-05 2002-06-21 Matsushita Electric Ind Co Ltd Systolic array type computing unit
JP2004135251A (en) * 2002-10-10 2004-04-30 Sony Corp Method of encoding image information, and method of decoding the image information
JP2005130099A (en) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd Arithmetic decoding device, arithmetic encoding device, arithmetic encoding/decoding device, portable terminal equipment, moving image photographing device, and moving image recording/reproducing device
JP2005223533A (en) * 2004-02-04 2005-08-18 Victor Co Of Japan Ltd Arithmetic decoding apparatus and arithmetic decoding program
JP2005229218A (en) * 2004-02-10 2005-08-25 Sanyo Electric Co Ltd Image decoding apparatus
JP2006054865A (en) * 2004-08-02 2006-02-23 Samsung Electronics Co Ltd Binary arithmetic decoding apparatus and methods using pipelined structure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIAN-WEN CHEN,CHENG-RU CHANG,YOUN-LONG LIN: "A Hardware Accelerator for Context-Based Adaptive Binary Arithmetic Decoding in H.264/AVC", CIRCUITS AND SYSTEMS,2005.ISCAS 2005.IEEE INTERNATIONAL SYMPOSIUM ON, vol. 5, JPN6010016542, May 2005 (2005-05-01), pages 4525 - 4528, XP010817170, ISSN: 0001577048, DOI: 10.1109/ISCAS.2005.1465638 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008289125A (en) * 2007-04-20 2008-11-27 Panasonic Corp Arithmetic decoding apparatus and method thereof
US7956776B2 (en) 2008-11-28 2011-06-07 Sony Corporation Arithmetic decoding apparatus
WO2013046504A1 (en) * 2011-09-29 2013-04-04 パナソニック株式会社 Arithmetic decoding device, image decoding device, and arithmetic decoding method
US9532044B2 (en) 2011-09-29 2016-12-27 Panasonic Intellectual Property Management Co., Ltd. Arithmetic decoding device, image decoding apparatus and arithmetic decoding method

Similar Documents

Publication Publication Date Title
US8018996B2 (en) Arithmetic decoding apparatus and method
US7769088B2 (en) Context adaptive binary arithmetic code decoding engine
US7817864B2 (en) Coding apparatus and decoding apparatus
US6014095A (en) Variable length encoding system
US7898445B2 (en) Entropy coding apparatus
US7702013B2 (en) Method and arrangement for coding transform coefficients in picture and/or video coders and decoders and a corresponding computer program and a corresponding computer-readable storage medium
KR100648258B1 (en) Context-based adaptive binary arithmetic decoder of pipeline structure for high speed decoding operation
US6587057B2 (en) High performance memory efficient variable-length coding decoder
US6219457B1 (en) Method and system for decoding data encoded in a variable length code word
KR101208233B1 (en) Two step arithmetic decoding with conversion into an intermediate format
US7411529B2 (en) Method of decoding bin values using pipeline architecture and decoding device therefor
US20140286417A1 (en) Data encoding and decoding
US7528749B2 (en) Decoding apparatus and decoding method
KR102123620B1 (en) Method and apparatus for entropy encoding or entropy decoding of video signals for large-scale parallel processing
KR100276037B1 (en) Variable length decoding and method for decoding two codes per clock cycle
KR20090007301A (en) Arithmetic decoding method and device
US10070127B2 (en) Method and apparatus for arithmetic coding and termination
JP2009152990A (en) Image encoding device and image decoding device
US8660188B2 (en) Variable length coding apparatus, and method and integrated circuit of the same
JP4865509B2 (en) Decoding device and decoding method
US7751636B2 (en) Method for decoding transform coefficients corresponding to an image
JP2007074648A (en) Cabac decoding apparatus
JP2005101731A (en) Variable length code decoder and variable length code decoding method
JP6280266B2 (en) Decoding device and decoding method
Park et al. Area efficient fast Huffman decoder for multimedia applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100720