JP2007074648A - Cabac復号化装置 - Google Patents

Cabac復号化装置 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
English (en)
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/ja
Publication of JP2007074648A publication Critical patent/JP2007074648A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】 復号化回路を複数有することなく、単位時間当たりの出力データ量を増加させるためのCABAC復号化装置を提供する。
【解決手段】 コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する装置であって、符号化されたデータである符号化データを複数取得する入力セレクタ116と、複数の符号化データのそれぞれに対応付けられたコンテキスト変数テーブル105a、コンテキスト変数テーブル105b、およびコンテキスト変数テーブル105cと、複数の符号化データを、それぞれに対応付けられたコンテキスト変数テーブルを用いて復号化する復号化部103とを備える。
【選択図】 図1

Description

本発明は、CABACにより算術符号化されたデータを復号化するCABAC復号化装置に関する。
デジタル技術の発展と共に、映像を符号化する技術も進化、発展してきている。しかし、映像情報、特に動画像の情報は、そのデータ量が非常に大きく、デジタル映像を符号化したものを放送やDVD等のメディアで転送する場合、転送量が非常に大きくなってしまう。得に、最近実用化されているハイビジョン放送では、従来のSD(Standard Definition)映像と比べて、6倍のデータ量となっている。
デジタル映像技術の発展と共に、増大するデータ量を処理するために、データを圧縮する技術がデジタル映像データに使用され、発展してきている。その発展は、映像データの特性を生かした映像データに特化した圧縮技術となって現れている。また、コンピュータやその他機器の情報処理能力の向上に伴い、圧縮技術における複雑な演算も可能となり、映像データの圧縮率は大幅に高められてきている。例えば、衛星、地上波デジタルハイビジョン放送で採用されている圧縮技術はMPEG2と呼ばれる方式であるが、MPEG2の次の映像圧縮技術としてAVC/H.264が国際電気通信連合(ITU)の電気通信標準化部門であるITU−Tにより規格化されている。
AVC/H.264は、MPEG2の2倍前後の圧縮率を実現する規格である。AVC/H.264では、多くの圧縮化技術を実装し、それらを組み合わせることで高い圧縮率を実現している。そのため、演算量も大幅に増加している。
AVC/H.264で実装されている圧縮化技術の一つにエントロピー符号化(可変長符号化)がある。エントロピー符号化の方式として、CAVLCとCABACという2つの方式が用意されている。CAVLCは、Context−Adaptive Variable Length Coding(コンテキスト適応型可変長符号化方式)の略であり、DCT係数を符号化する際、連続する0の長さであるランとレベルを可変長符号化テーブルを用いてスキャンの方向と反対の方向から符号化を行なう方式である。
CABACは、Context−based Adaptive Binary Arithmetic Coding(コンテキスト適応型2値算術符号化方式)の略であり、時間とともに変化する符号化対象の出現頻度を変化させる方式である。また、一般に算術符号化と呼ばれる方式である。CABACでは、通常の算術符号化のほかに、圧縮すべき符号ごとにコンテキストインデックス(ctxIdx)を付け、そのctxIdxごとに出現頻度の変更を行なっている。
CABACでの符号化は主に2つの処理に分けられる。1つ目は、シンタクス(Syntax)と呼ばれる符号化すべき多値情報を2値データに変換する2値化(binarization)と呼ばれる処理である。2つ目は、2値化によって得られた2値データに対してコンテキストを算出し算術符号化を行なう処理である。
CABACにより符号化されたデータ(以下、「符号化データ」という。)を復号化する処理も、符号化の場合と同様に2つの処理に分けられる。符号化データに対して算術復号化を行なって2値データを出力する処理と、2値データをSyntaxに変換する多値化を行なう処理である。
図8は従来のCABAC復号化装置の機能的な構成の一例を示す図である。図8に示すCABAC復号化装置200は、ビットストリームを入力とし、2値データを出力する装置である。なお、入力されるビットストリームは、1つのピクチャ内の1つ以上のマクロブロックの集合であるスライス単位で処理される。マクロブロックとは16×16画素からなる画像のデータである。また、出力される2値データの各ビットをbinValという。
CABAC復号化装置200は、フリップフロップ回路(FF)201と、FF202と、復号化部203と、ctxIdx計算部204と、コンテキスト変数テーブル205とを備える。
以下に、CABAC復号化装置200における算術復号化の処理の概要を説明する。
算術復号化の処理は、まず、ctxtIdxを求めることから始められる。ctxtIdxは、復号しようとしている1ビットの2値データのSyntaxと、Syntax内の2値データの位置を示すbinIdxとから演算して求められる。また、これらSyntaxとbinIdxとはすでに復号化されたマクロブロックの2値データの値であるbinValより演算して求められる。
これら演算は、ctxIdx計算部204で行なわれる。また、初回の演算では、初期値として与えられたSyntaxと、binidx=“0”とが用いられる。
次に、求められたctxtIdxを用いて、コンテキスト変数テーブル205からそのctxtIdxに現在割り当てられている発生確率pStateIdxと、発生確率の高いシンボルを表す情報valMPSとを取り出す。
コンテキスト変数テーブルとは、ctxtIdxとpStateIdxとvalMPSとが対応付けられ記憶されているテーブルである。
読み出されたpStateIdxとvalMPSとは、FF201を介し復号化部203に取得される。復号化部203は、更に、FF202から算術符号化で用いられる区間情報であるcodIRangeとcodIOffsetとを読み出し、pStateIdxとvalMPSとを入力としてcodIRangeとcodIOffsetと共に演算を行う。この演算により2値データを1ビット出力する。この出力された1ビットがbinValである。
このとき、codIRangeとcodIOffsetが更新され、次のbinValの演算に用いられる。また、出力されたbinValの値に応じて、発生確率pStateIdxと、発生確率の高いシンボルを表す情報valMPSとを更新し、コンテキスト変数テーブル205に書き戻す作業を行なう。
以上のように、入力されたビットストリームから、2値データの1ビットであるbinValが算術復号化により出力される。また、出力されたbinValの値によって、次のSyntax、binIdxの値が決定し、次のbinValの出力のための復号化処理が開始される。
図9は、従来のCABAC復号化装置における復号化処理のタイムチャートの一例である。図9の“An”(n=0、1、2、・・・)のそれぞれは、n+1個目のbinValの出力に関わる各種の値の存在を示す記号である。また、横軸は時間であり、“T1、T2、・・・”のそれぞれは、1クロックごとのサイクルを示す記号である。
例えば、サイクルT1では、2つ目のbinValの出力のためのデータ入力[A1]があり、pStateIdxおよびvalMPSは1つ目のbinValを演算するための値[A0]である。また、それらpStateIdxとvalMPSとから1つ目のbinVal[A0]が算出される。なお、タイムチャート上には表現されていないが、コンテキスト変数テーブルが、算出されたbinValに応じて更新される。
また、算出されたbinValから次のbinValを出力するためのSyntaxおよびbinIdxが決定され、ctxIdx[A1]が算出される。算出されたctxIdx[A1]を用いて、2個目のbinValを出力するためのpStateIdx[A1]とvalMPS[A1]とがコンテキスト変数テーブルから読み出される。読み出されたそれらの値は次のサイクルT2に用いられる。
処理対象のデータを変更しながら上記動作が1クロックごとに繰り返され、入力されたビットストリームから1クロックごとに2値データの1ビットであるbinValが1つ出力される。
このような、CABACの符号化および復号化についての技術も開示されている(例えば、特許文献1)。
特開2004−135251号公報
上述のようにCABACの復号化において、2値データ1ビットを出力するために最初に行なわれるSyntaxとbinIdxの特定は、1つ前に出力された2値データの1ビットの値によって決められる。つまり、その時点で行なっている復号化処理で出力される2値データの値が0であるか1であるかが決定しないと、次の2値データを求める処理を行なうことはできない。
また、ctxIdxより求められるpStateIdxとvalMPSの値は、出力された2値データの値によって変更され、コンテキスト変数テーブルに書き戻されるため、これらの処理が終わるまで、次の2値データ1ビットの復号化に必要な動作であるコンテキスト変数テーブルの参照を行なうことができない。
つまり、CABAC復号化装置における復号化のための回路は、出力される2値データ1ビット毎の大きなループ回路になっており、このループにかかる時間がCABAC復号化装置から1ビットの出力データを得るために必要な時間となる。
通常、回路のスループットを上げるときは、回路内にフリップフロップ回路(FF)を挿入することで処理をパイプライン化し、周波数を上げることが行なわれる。しかしながら、上記従来のCABAC復号化装置においては、1回のループで2値データ1ビットが出力されるので、そのループをFFで区切ってパイプライン化し周波数を上げても、1クロック毎の処理量が減るだけであり、スループットを上げることはできない。これにより例えば、復号化処理が画像の再生に追い付かず、再生映像が途切れる可能性すら存在する。
このように、従来のCABAC復号化装置は出力データのスループット、つまり単位時間当たりのbinValの出力数を上げることが困難である。もちろん復号化回路を並列に複数用意すれば、スループットを向上させることは可能であるが、この場合、例えば製造コストの上昇を招くこととなる。
本発明は、上記問題に鑑みてなされたものであり、復号化回路を複数有することなく、単位時間当たりの出力データ量を増加させるためのCABAC復号化装置を提供することを目的とする。
上記課題を解決し上記目的を達成するために、本発明のCABAC復号化装置は、コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する装置であって、符号化されたデータである符号化データを複数取得する取得手段と、複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルと、複数の前記符号化データを、それぞれに対応付けられた前記コンテキスト変数テーブルを用いて復号化する復号化手段とを備える。
このように、本発明のCABAC復号化装置は、複数の符号化データを取得し、それら複数の符号化データに対応する、複数のコンテキスト変数テーブルを備える。この構成により、複数の符号化データをそれぞれ独立に並行して復号化することを可能とし、結果として、復号化されたデータの単位時間当たりの出力量を向上させることができる。
また、本発明のCABAC復号化装置は、前記復号化手段、および複数の前記コンテキスト変数テーブルは、複数の前記符号化データそれぞれをパイプライン処理するために用いられ、前記コンテキスト変数テーブルの数は、前記パイプライン処理におけるパイプラインステージ数と同じであるとしてもよく、更に、複数の前記符号化データそれぞれは、互いに異なる一連のデータ列のそれぞれに含まれており、複数の前記一連のデータ列の数は前記パイプラインステージ数と同じ数であり、前記複数のコンテキスト変数テーブルは、複数の前記一連のデータ列のそれぞれと対応付けられることで、複数の前記符号化データのそれぞれに対応付けられており、前記取得手段は、複数の前記一連のデータ列の中から1サイクルごとに所定の順序で1つの前記一連のデータ列を選択することにより、選択された前記一連のデータ列に含まれる符号化データを取得するとしてもよい。
このように、本発明のCABAC復号化装置は、復号化処理をパイプライン化することで、動作周波数を向上させることができ、ひいては単位時間当たりの出力データ量を増加させることができる。
また、入力されるデータ列の数をパイプラインのステージ数と同じ数とすることにより、効率よくパイプライン処理の隙間を埋めることができ、処理効率が向上する。また、復号化処理の対象となる符号化データは、複数の符号化データのそれぞれが含まれる複数の一連のデータ列が所定の順序で選択されることによりCABAC復号化装置に入力される。
例えば、CABAC復号化装置のパイプラインステージが、3段で構成されているとき、データ列の入力は、A,B,Cの3つ用意する。各データ列に対応するコンテキスト変数テーブルもa,b,cと3つ用意する。サイクルT0で、CABAC復号化装置への入力として、データ列Aが選択された場合、次のサイクルT1では、データ列Bが選択され、次のサイクルT2では、データ列Cが選択される。さらに次のサイクルT3では、データ列Aが再び選択され、以後B→C→A→B→‥‥と1サイクル毎にデータ列の入力を変更して装置を動作させることができる。
コンテキスト変数テーブルa,b,cは、3つのデータ列A,B,Cにそれぞれ対応付けられる。従って、データ列Aが入力として選択されたときは、コンテキスト変数テーブルaが参照、更新され、データ列Bのときは、コンテキスト変数テーブルb、データ列Cのときは、コンテキスト変数テーブルcがそれぞれ参照、更新される。結果として、コンテキスト変数テーブルは、データ入力に対応し、1サイクルごとにa、b、cの順番に参照され、必要な情報が読み出される。また、参照された順番で更新される。
このように、本発明のCABAC復号化装置は、効率よく復号化処理を進行させることができ、単位時間当たりの出力データ量を増加させることができる。
更に、本発明は、本発明のCABAC復号化装置の特徴的な構成部をステップとする方法として実現したり、それらのステップを含むプログラムとして実現したり、そのプログラムが格納された、CD−ROM等の記憶媒体として実現したり、集積回路として実現することもできる。プログラムは、通信ネットワーク等の伝送媒体を介して流通させることもできる。
本発明は、復号化回路を複数有することなく、単位時間当たりの出力データ量を増加させるためのCABAC復号化装置を提供することができる。
具体的には、本発明のCABAC復号化装置は符号化データを複数取得することができ、それぞれを独立して処理することができる構成をとる。これより、複数の符号化データを並行して処理することが可能となる。また、1クロックあたりの処理負荷が軽減されることにより、回路の動作周波数を上げることができる。
例えば、動作周波数を向上させるために回路をパイプライン化した場合、通常であれば、パイプラインのステージ数分のクロックごとにしか出力1ビットが得られないが、本発明を実施することにより、1クロック毎に出力1ビットを得ることが可能となる。
結果として、本発明により、復号化回路を複数有することなく単位時間当たりの出力データ量を増加させることのできるCABAC復号化装置を提供することが可能となる。
以下に、本発明を実施するための最良の形態について、図面を参照して説明する。
まず、図1および図2を用いて、本発明の実施の形態であるCABAC復号化装置の構成を説明する。
図1は、本発明の実施の形態であるCABAC復号化装置の機能的な構成を示す機能ブロック図である。
CABAC復号化装置100は、入力される3つのスライスに対し並行して復号化処理を行い、それぞれのスライスに対応した2値データを出力する装置である。また、パイプライン処理は3つのパイプラインステージに分かれている。
CABAC復号化装置100は、FF101と、FF102と、復号化部103と、ctxIdx計算部104と、3つのコンテキスト変数テーブル(コンテキスト変数テーブル105a、コンテキスト変数テーブル105b、コンテキスト変数テーブル105c)と、入力するスライスを選択する入力セレクタ116と、pStateIdxおよびvalMPSを、その時点での処理対象データに対応するコンテキスト変数テーブルから読み出すテーブルセレクタ117と、各パイプラインステージを接続するためのFF(FF111〜FF115)と、復号化部103により得られたbinValを一時的に格納する出力バッファ118とを備える。
なお、復号化部103は、本発明のCABAC復号化装置における復号手段の一例であり、入力セレクタ116は取得手段の一例である。また、ctxIdx計算部104は、本発明のCABAC復号化装置におけるctxIdx算出手段の一例であり、テーブルセレクタは読出し手段の一例である。
本実施の形態のCABAC復号化装置100における、1つのスライスに対する復号化処理の方法は従来のCABAC復号化装置100と同じである。しかしながら、従来のCABAC復号化装置とは異なり、3つのスライスを並行にパイプライン処理する装置である。そのため、それぞれのスライスの処理に対応するためのコンテキスト変数テーブルを備えている。
本実施の形態では、入力される3つのスライスそれぞれを、sliceA、sliceB、sliceCとし、入力セレクタ116に選択されることにより、選択されたスライスのスライスデータがCABAC復号化装置100に入力される。
また、コンテキスト変数テーブル105a、コンテキスト変数テーブル105b、コンテキスト変数テーブル105cはそれぞれのスライスの復号化処理に対応するコンテキスト変数テーブルである。なお、これらコンテキスト変数テーブルは具体的には1つ以上のSRAM(Static Random Access Memory)に保持されている。
ctxIdx計算部104は、先に復号化されたbinValを用い、SyntaxとbinIdxとを求め、その2つの情報からctxIdxを算出する処理部である。
復号化部103は、入力されたスライスデータから1ビットの2値データであるbinValを算出する処理部である。復号化部103内には、binValを算出するのに用いられるデータテーブル1032がある。また、算出されたbinValに応じてどのようにコンテキスト変数テーブルを更新するかを決定するためのデータテーブル1031を有している。
具体的には、データテーブル1031はAVC/H.264に規定されたState transition tableであり、データテーブル1032は、同じくAVC/H.264に規定されたSpecification of rangeTabLPS depending on pStateIdx and qCodIRangeIdxである。
出力バッファ118は、復号化部103により求められたbinValをスライスデータごとに蓄積するバッファである。
図2は、コンテキスト変数テーブルのデータ構成の一例を示す図である。
図2に示すように、コンテキスト変数テーブルは、ctxIdxによりpStateIdxとvalMPSとを特定するためのテーブルである。例えば、ctxIdx計算部104によりctxIdx=“0”が出力された場合、pStateIdx=“50”およびvalMPS=“0”が特定される。これらpStateIdxおよびvalMPSの値はテーブルセレクタ117によって読み出される。更に、FF101を介し、復号化部103により取得され、binValを算出するために用いられる。
コンテキスト変数テーブル105a〜コンテキスト変数テーブル105cのそれぞれは、図2に示すようなデータ構成を有している。
次に、CABAC復号化装置100の動作を図3〜図5を用いて説明する。
図3は、CABAC復号化装置100における復号化処理の流れを示すフローチャートである。図3を用いて、あるスライスデータの入力から、そのスライスデータについての最初のbinValが算出され、次のbinValを算出するための処理を行うまでのCABAC復号化装置100における処理の流れを説明する。
まず、binValを求めるための各種初期値が設定される(S10)。具体的には、codIRangeおよびcodIOffsetの初期値は、それぞれ予め所定の値がFF102に保持されている。Syntaxの初期値は、スライスヘッダや、PPS(ピクチャパラメータセット)などで設定されるスライスの符号化条件により求められ、その初期値がctxIdxに与えられる。また、初回の復号化処理であり、Syntax内の2値データの位置を示すbinIdxは“0”とされる。
図4は、スライスデータのデータ構成の一例を示す図である。図4に示すように、スライスデータは、ヘッダ部分と実体データ部分とを有しヘッダ部分にはスライス設定データが存在する。Syntaxの初期値はスライス設定データによって定められる。実体データ部分には、復号化部103の復号化処理の対象である符号化データが1つ以上存在する。
なお、スライスデータは本発明のCABAC復号化装置における一連のデータ列の一例である。
初期値設定の後、ctxIdx計算部104は、SyntaxとbinIdxとからctxIdxを算出する(S11)。初回の算出には上述のSyntaxの初期値とbinIdx=“0”とが用いられる。
ctxIdxが算出されると、コンテキスト変数テーブルからそのctxIdxに対応付けられたpStateIdxとvalMPSとが求められる(S12)。例えば、sliceAのスライスデータを処理する際に得られるctxIdxは、コンテキスト変数テーブル105aと照合され、そのctxIdxに対応するpStateIdxとvalMPSとが求められる。
復号化部103は、求められたpStateIdxとvalMPSと、FF102から読み出したcodIRangeおよびcodIOffsetとを用いて、binValを算出する(S13)。
また、同じスライスについての次のbinValを算出するためのcodIRange(new_codIRange)およびcodIOffset(new_codIOffset)を算出する(S14)。
また、算出されたbinValとデータテーブル1031とから新たなpStateIdx(new_pStateIdx)と新たなvalMPS(new_valMPS)とが算出される。算出されたそれら値により、対応するコンテキスト変数テーブルが更新される(S15)。
ctxIdx計算部104は、復号化部103により算出されたbinValに基づき同じスライスについての次のctxIdxの算出に必要なSyntaxとbinIdxとを求める(S16)。SyntaxとbinIdxとが求められると、ctxIdxの算出(S11)に戻り、上記動作が繰り返される。
図5は、CABAC復号化装置100における復号化処理のタイムチャートの一例である。図4の中で“An”(n=0、1、2・・・)とは、sliceAのスライスデータを復号化して得られる2値データ1ビットのn+1個目、つまり、n+1個目のbinValの出力に関わる各種の値の存在を示す記号である。また、横軸は時間であり、“T1、T2、・・・”のそれぞれは、1クロックごとのサイクルを示す記号である。
例えば、サイクルT4においてpStateIdxとvalMPSとが“A1”であるとは、サイクルT4において、sliceAのスライスデータからの2個目のbinValを得るためのpStateIdxとvalMPSとを用いた処理が行なわれることを示す。“Bn”、“Cn”についても同様である。
図5のタイムチャートにおいて、sliceAの入力データから2番目のbinVal[A1]が得られる処理の流れをサイクルごとに説明する。
サイクルT2において、すでに求められているbinVal[A0]を用いて次のctxIdx[A1]が求められる。
サイクルT3において、サイクルT2で求められたctxIdx[A1]を用いてpStateIdx[A1]およびvalMPS[A1]の値が求められる。これと同時に、入力データとして、sliceAのデータ[A1]が選択される。また、binVal[A0]を求めるのに使用したcodIRange[A0]や入力データ[A1]等の値から、binVal[A1]を求めるためのcodIRange[A1]およびcodIOffset[A1]が求められる。
サイクルT4において、pStateIdx[A1]、valMPS[A1]、codIRange[A1]およびcodIOffset[A1]を用いて、binVal[A1]が求められる。
また、タイムチャートには表現されていないが、binVal[A1]の値に応じ、pStateIdx[A1]およびvalMPS[A1]の値を変更することで、それぞれの新たな値であるnew_pStateIdxおよびnew_valMPSが求められる。
サイクルT5において、binVal[A1]が出力バッファ118に出力される。このときnew_pStateIdxおよびnew_valMPSによりコンテキスト変数テーブル105aが更新され、次のサイクルT6からbinVal[A2]を出力するための処理が開始される。
このように、サイクルT3においてbinVal[A1]を得るためのデータ[A1]が入力され、サイクルT5でbinVal[A1]が出力されることとなる。つまり、sliceAについてのみ着目すると、3クロックに1回のタイミングでbinValが出力されることとなる。
しかし、CABAC復号化装置100は、上述のように、3つのスライスデータについて3つのパイプラインステージで並列に復号化処理を行なう。本実施の形態ではsliceA、sliceB、sliceC、の順に入力データが選択され、並列に処理される。処理の結果、1クロック毎に入力と同じ順番で各スライスのbinVal1ビットが出力される。
例えば、図5に示すタイムチャートのサイクルT6において各パイプラインステージで並行して行われる処理の内容は以下のようになる。
<パイプラインステージ0>
FF102にセットされていたcodIRange[C1]およびcodIOffset[C1]と、パイプラインステージ2においてコンテキスト変数テーブル105cから求められたpStateIdx[C1]、valMPS[C1]とを用い、復号化部103がbinVal[C1]およびnew_codIRange[C2]とnew_codIOffset[C2]とを求める。
binVal[C1]はFF111にセットされ、new_codIRange[C2]とnew_codIOffset[C2]とはFF113にセットされる。
また、pStateIdx[C1]およびvalMPS[C1]を、求められたbinVal[C1]とデータテーブル1031を用いて得られる値によって変更する。変更されたそれぞれの値は、コンテキスト変数テーブル105cを更新するnew_pStateIdxおよびnew_valMPSとしてFF112にセットされる。
<パイプラインステージ1>
パイプラインステージ0において復号化部103により求められFF111にセットされていたbinVal[B1]が出力バッファ118に出力される。またbinVal[B1]を用いて、ctxIdx計算部104にて次のctxIdx[B2]が算出され、FF115にセットされる。
また、パイプラインステージ0において復号化部103により求められ、FF112にセットされていたnew_pStateIdx,new_valMPSが、sliceBに対応するコンテキスト変数テーブル105bに書き込まれる。つまりコンテキスト変数テーブル105bが更新される。
<パイプラインステージ2>
パイプラインステージ1においてctxIdx計算部104によって求められFF115にセットされていたctxIdx[A2]を用い、コンテキスト変数テーブル105aを参照して、ctxIdx[A2]に対応するpStateIdx[A2]およびvalMPS[A2]が求められる。
求められたpStateIdx[A2]およびvalMPS[A2]はテーブルセレクタ117に読み出され、FF101にセットされる。また、FF114から出力されるnew_codIRange[A2]およびnew_codIOffset[A2]と入力[A2]により、codIRange[A2]とcodIOffset[A2]が作成され、FF102にセットされる。
このように、本発明の実施の形態のCABAC復号化装置100は、復号化回路をパイプライン化することにより動作周波数を向上させている。
ここで、CABACの復号化処理において、1つのbinVal、つまり2値データの1ビットを得るためにはその前の1ビットが算出されている必要がある。そのため、回路にFFを挿入し、単に動作周波数を向上させても、単位時間当たりの処理結果の出力量を増加させることはできない。
例えば図6に示すように、従来の復号化回路に複数のFFを挿入し、動作周波数を向上させた場合を想定する。
図6は、従来のCABAC復号化装置に複数のFFを挿入し、動作周波数を向上させることを可能とする構成とした一例を示す図である。
図6に示すCABAC復号化装置150は、本発明の実施の形態のCABAC復号化装置100と同様に複数のFFを備え、3つのパイプラインステージからなるパイプライン処理が可能である。これにより1クロックごとの処理負荷を減らし、動作周波数を向上させることができる。
図7は、CABAC復号化装置150における復号化処理のタイムチャートの一例である。
図7に示すように、動作周波数が向上することにより処理サイクルの速度も向上するが、この場合においても、復号化処理のループが1回りするごとに1ビットの出力結果が得られることに変わりない。
例えば、100MHzで動作していた従来の回路を、3つのステージに分け、3倍の300MHzで動作させたとしても、1ビットの出力が得られるのは3サイクルに1回だけである。つまり、従来の回路と同じ出力レートしか得ることはできない。
しかしながら、本発明の実施の形態のCABAC復号化装置100は、単にFFを挿入し、処理を複数のステージに分けて、動作周波数を向上させるだけでなく、3つのスライスデータを一定の順序で入力データとして取り込むことにより、3つのパイプラインステージを最も効率よく稼動させることができる。
具体的には、3つのスライスデータのそれぞれは、独立して処理することができるため、あるスライスデータの処理とは関係なく、他のスライスデータの処理を進行することができる。つまり、本実施の形態のように、sliceA、sliceB、sliceCのそれぞれのデータをA、B、Cの順番に取り込むことにより、3つあるパイプラインステージを効率的に隙間なく稼動させることができる。
また、3つのスライスデータを並行して処理するために、それぞれのスライスデータの復号化処理に対応する3つのコンテキスト変換テーブルを有している。これら3つのコンテキスト変換テーブルは互いに独立して存在し、各スライスデータの処理結果に応じて更新され、参照される。
このように、本発明の実施の形態のCABAC復号化装置100は、パイプライン処理により動作周波数を向上させ、かつ、効率的にパイプライン処理を行なうために3つのスライスデータを一定の順序で取り込む。取り込まれた3つのスライスデータのそれぞれは3つのパイプラインステージにより並行に処理されるため、結果として、単位時間当たりの出力データ量を増加させることができる。
なお、本実施の形態では、CABAC復号化装置100のパイプライン処理におけるステージ数は3であり、入力されるスライスデータは3つであるとした。しかしながら、パイプラインステージ数と、入力されるスライスデータ数とは3でなくてもよい。
例えば、それらの数がともに4でもよく、また、パイプラインステージ数が3で、入力されるスライスデータの数が5でもよい。つまり、パイプラインステージ数よりも入力されるスライスデータ数が多ければ、パイプライン処理の隙間が生じることがなく効率よく処理が行なわれることとなる。
また、例えば、本実施の形態のCABAC復号化装置において、更にsliceDを復号化処理の対象とした場合、入力データを入力セレクタ116が選択する順序は、sliceA〜sliceDが繰り返される順序でなくてもよい。例えば、sliceA、sliceB、sliceC、sliceDと選択した後に、sliceB、sliceAと選択してもよい。
つまり、パイプラインステージ数が3である場合、1つのbinValが出力されるのは3サイクルごとである。よって、あるスライスが選択される間隔が3サイクル以上あいていれば算出済みのbinValに基づき新たなbinValを算出し出力することができるからである。従って、あるスライスが選択される間隔は、パイプラインステージ数以上のサイクル数であればbinValの算出を効率よく行うことができる。
また、例えば、パイプラインステージ数が3であり、入力されるスライスデータ数が2である場合、パイプライン処理に隙間が生じることとなる。しかしながら、単位時間当たりの出力データ量は、少なくとも従来のCABAC復号化装置よりも多くなる。
1つの出力データを得るために複数の処理工程が行われる場合、時系列において少しでも並行して処理が行なわれている部分があれば、複数の処理工程が完全に直列して行なわれている場合よりも、処理に必要な時間が減少するからである。
つまり、複数のパイプラインステージ数に対し、入力されるスライスデータの数も複数であれば、少なくとも従来のCABAC復号化装置よりも単位時間当たりの出力データ量を増加させることができる。
また、CABAC復号化装置100は、図1に示すように、復号化処理により得られたbinValを蓄積する出力バッファ118を備えるが、出力バッファを複数備えていてもよい。例えば、本実施の形態のように、3つのスライスデータを並列処理の対象とした場合、各スライスデータに対応するように、3つの出力バッファを備えていてもよい。
本発明は、CABACにより符号化されたデータを復号化する復号化装置に利用することができる。具体的には、AVC/H.264に規定されたデータ圧縮技術により符号化されたハイビジョン映像などを再生するための復号化装置として最適である。
本発明の実施の形態のCABAC復号化装置の機能的な構成を示す機能ブロック図である。 コンテキスト変数テーブルのデータ構成の一例を示す図である。 本発明の実施の形態のCABAC復号化装置の復号化処理の流れを示すフローチャートである。 スライスデータのデータ構成の一例を示す図である。 本発明の実施の形態のCABAC復号化装置における復号化処理のタイムチャートの一例である。 従来のCABAC復号化装置に複数のFFを挿入し、動作周波数を向上させることを可能とする構成とした一例を示す図である。 図6に示すCABAC復号化装置における復号化処理のタイムチャートの一例である。 従来のCABAC復号化装置の機能的な構成の一例を示す図である。 従来のCABAC復号化装置における復号化処理のタイムチャートの一例である。
符号の説明
100 CABAC復号化装置
103 復号化部
104 ctxIdx計算部
105a、105b、105c コンテキスト変数テーブル
101、102、111、112、113、114、115 フリップフロップ回路
116 入力セレクタ
117 テーブルセレクタ
118 出力バッファ
1031、1032 データテーブル

Claims (8)

  1. コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する装置であって、
    符号化されたデータである符号化データを複数取得する取得手段と、
    複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルと、
    複数の前記符号化データを、それぞれに対応付けられた前記コンテキスト変数テーブルを用いて復号化する復号化手段と
    を備えるCABAC復号化装置。
  2. 複数の前記符号化データのそれぞれは、互いに異なる一連のデータ列のそれぞれに含まれており、
    前記複数のコンテキスト変数テーブルは、複数の前記一連のデータ列のそれぞれと対応付けられることで、複数の前記符号化データのそれぞれに対応付けられており、
    前記取得手段は、複数の前記一連のデータ列の中から所定の順序で1つの前記一連のデータ列を選択することにより、選択された前記一連のデータ列に含まれる符号化データを取得する
    請求項1記載のCABAC復号化装置。
  3. 前記復号化手段は、前記符号化データを復号化して得られる2値データを1ビットずつ出力し、
    前記CABAC復号化装置は、更に、
    前記復号化手段から出力された1ビットに基づき、前記符号化データから得られる次の1ビットである次ビットの種類についての情報であるコンテキストインデックス(ctxIdx)を算出するctxIdx算出手段と、
    前記符号化データに対応する前記コンテキスト変数テーブルを参照し、前記ctxIdx算出手段により算出されたctxIdxに対応する前記次ビットが0であるか1であるかの確率についての情報である確率情報を読み出して前記復号化手段に渡す読み出し手段とを備え、
    前記復号化手段、前記ctxIdx算出手段、および前記読出し手段の少なくとも2つは、互いに異なる符号化データについての処理を並行して行なう
    請求項1記載のCABAC復号化装置。
  4. 前記復号化手段、および複数の前記コンテキスト変数テーブルは、複数の前記符号化データそれぞれをパイプライン処理するために用いられ、
    前記コンテキスト変数テーブルの数は、前記パイプライン処理におけるパイプラインステージ数と同じである
    請求項1記載のCABAC復号化装置。
  5. 複数の前記符号化データそれぞれは、互いに異なる一連のデータ列のそれぞれに含まれており、
    複数の前記一連のデータ列の数は前記パイプラインステージ数と同じ数であり、
    前記複数のコンテキスト変数テーブルは、複数の前記一連のデータ列のそれぞれと対応付けられることで、複数の前記符号化データのそれぞれに対応付けられており、
    前記取得手段は、複数の前記一連のデータ列の中から1サイクルごとに所定の順序で1つの前記一連のデータ列を選択することにより、選択された前記一連のデータ列に含まれる符号化データを取得する
    請求項4記載のCABAC復号化装置。
  6. 前記復号化手段は、前記符号化データを復号化して得られる2値データを1サイクルごとに1ビットずつ出力し、
    前記CABAC復号化装置は、更に、
    前記復号化手段が出力する2値データの1ビットを、復号化される前の符号化データごとに蓄積する出力バッファを備える
    請求項4記載のCABAC復号化装置。
  7. コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する方法であって、
    符号化されたデータである符号化データを複数取得する取得ステップと、
    複数の前記符号化データを、複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルを用いて復号化する復号化ステップと
    を含む復号化方法。
  8. コンテキスト適応型2値算術符号化方式(CABAC)により符号化されたデータを復号化する集積回路であって、
    符号化されたデータである符号化データを複数取得する取得手段と、
    複数の前記符号化データのそれぞれに対応付けられた複数のコンテキスト変数テーブルと、
    複数の前記符号化データを、それぞれに対応付けられた前記コンテキスト変数テーブルを用いて復号化する復号化手段と
    を備える集積回路。
JP2005262154A 2005-09-09 2005-09-09 Cabac復号化装置 Pending JP2007074648A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005262154A JP2007074648A (ja) 2005-09-09 2005-09-09 Cabac復号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005262154A JP2007074648A (ja) 2005-09-09 2005-09-09 Cabac復号化装置

Publications (1)

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

Family

ID=37935661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005262154A Pending JP2007074648A (ja) 2005-09-09 2005-09-09 Cabac復号化装置

Country Status (1)

Country Link
JP (1) JP2007074648A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008289125A (ja) * 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
US7956776B2 (en) 2008-11-28 2011-06-07 Sony Corporation Arithmetic decoding apparatus
WO2013046504A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 算術復号装置、画像復号装置、および算術復号方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002033925A (ja) * 2000-07-18 2002-01-31 Matsushita Graphic Communication Systems Inc 算術符号化・復号化方法および算術符号化・復号化装置
JP2002175283A (ja) * 2000-12-05 2002-06-21 Matsushita Electric Ind Co Ltd シストリックアレイ型演算器
JP2004135251A (ja) * 2002-10-10 2004-04-30 Sony Corp 画像情報符号化方法及び画像情報復号方法
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2005223533A (ja) * 2004-02-04 2005-08-18 Victor Co Of Japan Ltd 算術復号化装置、および算術復号化プログラム
JP2005229218A (ja) * 2004-02-10 2005-08-25 Sanyo Electric Co Ltd 画像復号装置
JP2006054865A (ja) * 2004-08-02 2006-02-23 Samsung Electronics Co Ltd パイプライン方式の二進算術デコーディング装置及び方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002033925A (ja) * 2000-07-18 2002-01-31 Matsushita Graphic Communication Systems Inc 算術符号化・復号化方法および算術符号化・復号化装置
JP2002175283A (ja) * 2000-12-05 2002-06-21 Matsushita Electric Ind Co Ltd シストリックアレイ型演算器
JP2004135251A (ja) * 2002-10-10 2004-04-30 Sony Corp 画像情報符号化方法及び画像情報復号方法
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP2005223533A (ja) * 2004-02-04 2005-08-18 Victor Co Of Japan Ltd 算術復号化装置、および算術復号化プログラム
JP2005229218A (ja) * 2004-02-10 2005-08-25 Sanyo Electric Co Ltd 画像復号装置
JP2006054865A (ja) * 2004-08-02 2006-02-23 Samsung Electronics Co Ltd パイプライン方式の二進算術デコーディング装置及び方法

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 (ja) * 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
US7956776B2 (en) 2008-11-28 2011-06-07 Sony Corporation Arithmetic decoding apparatus
WO2013046504A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 算術復号装置、画像復号装置、および算術復号方法
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
KR100648258B1 (ko) 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
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 (ko) 중간 형식으로 변환하는 2단계 산술 복호
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 (ko) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
KR100276037B1 (ko) 가변 길이 해독기 및 클럭 사이클마다 2개의 코드를 해독하는 방법
KR20090007301A (ko) 산술 디코딩 방법 및 디바이스
US10070127B2 (en) Method and apparatus for arithmetic coding and termination
JP2009152990A (ja) 画像符号化装置及び画像復号化装置
JP2010178319A (ja) 画像符号化装置及び画像符号化方法
US8660188B2 (en) Variable length coding apparatus, and method and integrated circuit of the same
JP4865509B2 (ja) 復号装置及び復号方法
US7751636B2 (en) Method for decoding transform coefficients corresponding to an image
JP2007074648A (ja) Cabac復号化装置
JP2005101731A (ja) 可変長符号復号化装置および可変長符号復号化方法
JP6280266B2 (ja) 復号装置、及び復号方法
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