JP2008311803A - 算術復号方法、算術復号装置及び算術復号プログラム - Google Patents

算術復号方法、算術復号装置及び算術復号プログラム Download PDF

Info

Publication number
JP2008311803A
JP2008311803A JP2007155880A JP2007155880A JP2008311803A JP 2008311803 A JP2008311803 A JP 2008311803A JP 2007155880 A JP2007155880 A JP 2007155880A JP 2007155880 A JP2007155880 A JP 2007155880A JP 2008311803 A JP2008311803 A JP 2008311803A
Authority
JP
Japan
Prior art keywords
decoding
width
bit
decoded
context
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
JP2007155880A
Other languages
English (en)
Inventor
Toru Kumakura
徹 熊倉
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan 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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2007155880A priority Critical patent/JP2008311803A/ja
Publication of JP2008311803A publication Critical patent/JP2008311803A/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

【課題】QM−Coderにおいては良好な性能を示す従来の算術復号装置は、LPS幅の算出には、直前の領域幅Rangeを使用するという点と、復号処理により状態が変化するという点より、CABAC復号装置に適用することは不可能である。
【解決手段】2ビット領域分割部112と領域分割部113とからなる復号手段は2ビットの一括復号を行う。領域分割部111と領域分割部113とからなる復号手段は1ビット毎の逐次復号を行う。領域選択部104、コンテキストテーブル106、2ビットLPS幅テーブル108、境界テーブル109及び状態更新テーブル115からなる文脈計算手段は、ある時点の復号に使用する文脈から2ビット先の文脈を算出する。この算出した文脈により2ビット復号判定部110は一括復号又は逐次復号に切り替える。これにより、CABACにおいて、復号ビット系列の2ビット一括復号を可能にする。
【選択図】図1

Description

本発明は算術復号方法、算術復号装置及び算術復号プログラムに係り、特に動画像符号化信号の復号時の文脈に応じ、随時シンボルの発生確率を変動させるマルチコンテキスト型二値算術復号方法、算術復号装置及び算術復号プログラムに関する。
算術符号化は、エントロピー符号化の一つであり、効率的な符号化が可能であるということが知られている。算術符号化は、符号化を行うシンボル系列を0以上1未満の値をもつ符号化系列に対応させることにより符号化する手法である。一方、算術復号では符号化系列の値を辿ることにより復号化を行う。発生確率の高いシンボル系列や短いシンボル系列に対する符号化系列を表現するためのビット数は少なくてよいが、発生確率の低いシンボル系列や長いシンボル系列に対しては、符号化系列を表現するビット数は大きくなる。
算術符号化は、画像圧縮や音声圧縮等に用いられており、符号化すべきシンボル系列が特徴の異なる複数のシンボル系列の列からなる場合がある。このような場合、予め複数の確率モデルを用意しておき、今符号化する系列の特徴に合う確率モデルを順次切り替えることにより、符号化効率を高めることができるということが知られている。
ここで、予め用意しておく確率モデル群をコンテキストとよぶ。一般にコンテキストは、優勢シンボル(MPS:Most Probable Symbol)と、MPSの発生確率を求めるために必要となる状態変数とから構成される。複数のコンテキストを予め用意しておき、符号化するシンボル、復号化するビットによりコンテキストを切り替えるような算術符号化をマルチコンテキスト型算術符号化と呼ぶ。
ところで、動画像符号化標準の一つであるMPEG−4 AVC/H.264では、エントロピー符号化として、CABAC(Context-based Adaptive Binary Arithmetic Coding:コンテキスト適応型2値算術符号化)とCAVLC(Context-based Adaptive Variable Length Coding:コンテキスト適応型可変長符号化)という2種類のエントロピー符号化が用意されている。CABACはマルチコンテキスト型算術符号化であり、CAVLCはハフマン符号化である。CABACはCAVLCに比べ、符号化・復号に要する演算量、または回路規模が増大するが、符号化効率が10%程度向上するという大きな優位性があることが知られている。
ここで、マルチコンテキスト型2値算術符号化法であるCABACの復号処理について図5、図6、図7と共に説明する。図5は、CABAC復号装置の一例の構成図を示す。図6は、図5のCABAC復号装置の動作を説明するためのフローチャートである。また、図7は、CABAC復号動作の処理過程を説明するための図である。図5に示すように、CABAC復号装置は、ビットストリーム入力端子201、コンテキストインデックス入力端子202、復号ビット系列バッファ203、領域選択部204、復号ビット系列更新/正規化部205、領域幅正規化部206、領域格納部207、LPS幅テーブル208、領域分割部209、コンテキストテーブル210、状態更新テーブル211、復号ビット出力端子212から構成される。
ビットストリーム入力端子201は復号すべきビット系列(以下、復号ビット系列ともいう)を入力する端子である。コンテキストインデックス入力端子202は復号に使用するコンテキストインデックスctxIdxを入力する端子である。復号ビット出力端子212は、復号したビットを出力する端子である。
復号ビット系列バッファ203は、領域選択部204と接続し、復号ビット系列codIOffsetを格納すると共に、それを領域選択部204へ出力する機能を有する。また、復号ビット系列バッファ203は、復号ビット系列更新/正規化部205と接続している。MPEG−4 AVC/H.264規格では復号ビット系列は、9ビットレジスタが規定されており、入力ビットストリーム入力端子201から受信したビット系列を9ビット分格納する。
領域選択部204は、復号ビットがMPS(Most Probably Symbol;優勢シンボル)であるか、LPS(Least Probably Symbol;劣勢シンボル)であるかを決定し、復号ビット出力端子212を通し、外部へ出力する機能を有する。MPSは出現確率が高い方のシンボルであり、LPSは出現確率が低い方のシンボルである。また、領域選択部204は、復号ビット系列バッファ203から、復号ビット系列codIOffsetを取得する。また、領域分割部209から、MPS幅codIRangeMPSとcodIRangeLPSとを取得する。また、領域選択部204は、状態更新テーブル211に、状態更新要求信号を出力する。また、コンテキストテーブル210よりvalMPSを取得する。
領域選択部204は、復号ビット系列バッファ203より取得した復号ビット系列codIOffsetと、領域分割部209より取得したcodIRangeMPSとの大きさを比較する。その比較結果がcodIRangeMPS≧codIOffsetのときは、復号ビットはMPSであると判断し、コンテキストテーブル210より受信したvalMPSを選択して復号ビット出力端子212へ送る。また、領域選択部204は、codIRangeMPSを領域幅正規化部206に出力すると共に、状態更新テーブル211にMPS復号信号を出力する。
一方、上記の比較結果がcodIRangeMPS<codIOffsetのときは、領域選択部204は、復号ビットはLPSであると判断し、コンテキストテーブル210より取得したvalMPSを反転し、復号ビット出力端子212へ送る。また、領域選択部204は、codIRangeLPSを領域幅正規化部206に出力すると共に、状態更新テーブル211にLPS復号信号を出力する。更に、領域選択部204は、復号ビット系列更新/正規化部205に復号ビット系列更新要求とcodIRangeMPSを出力する。上記のMPS復号信号、LPS復号信号は、コンテキストテーブルの更新を行うための信号である。
また、領域選択部204は、復号ビット系列更新/正規化部205と接続し、復号ビット系列更新要求と正規化要求を出力し、領域幅正規化部206と接続し、正規化要求を出力する機能を有する。正規化は、領域選択部204で選択された領域幅(codIRangeMPSもしくはcodIRangeLPS)が、所定値256(=0x100)を下回った場合に発生する。これは、領域幅qCodIRangeが所定値0x100以上を常に確保することを保証する処理であり、qCodIRangeが所定値0x100以上になるまで左シフトを繰り返すという操作である。上記の領域幅qCodIRangeと所定値0x100とを比較し、左シフトするビット数を算出し、これを正規化要求とする。上記の領域幅qCodIRangeが所定値0x100以上である場合は、正規化要求は0となる。
復号ビット系列更新/正規化部205は、復号ビット系列バッファ203の更新および正規化を行う機能を有する。また、復号ビット系列更新/正規化部205は、領域選択部204から更新要求を受信したときに更新処理を行う。この更新処理では、復号ビット系列codIOffsetから、更新要求とともに受信したqCodIRangeMPSを減算し、新たなcodIOffsetとする。
また、復号ビット系列更新/正規化部205は、領域選択部204から正規化要求を受信したとき復号ビット系列codIOffsetの正規化処理を行う。この正規化処理では、正規化要求で示されたビット分、復号ビット系列codIOffsetの左シフト操作を行うと共に、シフトしたビットだけ入力ビットストリーム入力端子201よりビットを読み出した後、それらを足し合わせるという操作を行う。左シフトによりレジスタから溢れたビットは捨てられる。
領域幅正規化部206は、領域選択部204より、正規化要求を受信したときに正規化処理を行う。この正規化処理では、領域選択部204より取得した、復号後の領域幅qCodIRangeを正規化要求で示されたビット数分、左シフトする。正規化後のqCodIRangeは領域格納部207へ出力される。
領域格納部207は、領域分割部209からCABAC復号装置の内部状態を示す復号後の領域幅qCodIRangeを取得して格納する機能と、LPS幅テーブル208に対し、格納したqCodIRangeに出力する機能とを有する。CABACでは、上記の復号後の領域幅qCodIRangeは、9ビットレジスタで構成され、0(=0x000)から510(=0x1FE)までの値をとりうる。初期状態は510(=0x1FE)である。ここで、0xqqqは16進表現を表す。
LPS幅テーブル208は、LPS領域の領域幅codIRangeLPSを求めるためのテーブルである。LPS幅テーブル208の一部を図8に示す。図8に示すテーブルは、MPEG−4 AVC/H.264規格として標準化されたテーブルである。LPS幅テーブル208は、領域格納部207から取得した領域幅qCodIRangeと、コンテキストテーブル210から取得したpStateIdxとに基づいて、LPS領域の領域幅codIRangeLPSを決定する。このcodIRangeLPSは図8で示したテーブルにおいて、9ビットのqCodIRangeの上位2ビット目と3ビット目の2ビットで算出されるインデックスqCodIRangeIdxと、コンテキストインデックスpStateIdxとにより、codIRangeLPSを得る。
領域分割部209は、現在の領域を、領域幅codIRangeMPSを持つMPS領域と、領域幅codIRangeLPSを持つLPS領域とに分割する機能を有する。すなわち、領域分割部209は、LPS幅テーブル208からLPS幅codIRangeLPSを取得すると共に、領域格納部207から現在の領域幅codIRangeを取得し、次式
codIRangeMPS=codIRange−codIRangeLPS
により、MPS領域の領域幅codIRangeMPSを算出する。そして、領域分割部209は、codIRangeMPSとcodIRangeLPSとを領域選択部204へ出力する。
コンテキストテーブル210は、復号に使用するコンテキストを取得するためのテーブルである。コンテキストテーブル210の一部を図9に示す。このコンテキストテーブル210の各コンテキストは状態変数pStateIdxとMPS値valMPSとからなる。
上記の状態変数pStateIdxは、LPS幅テーブル208からLPS幅codlRangeを取得するためのインデックスである。MPEG−4 AVC/H.264では、状態変数pStateIdxは”0”から”63”までの値をとる。状態変数pStateIdxの大きさが大まかなMPSとLPSの発生頻度を表すものであり、pStateIdxが大きいときはMPSの発生頻度が大きいことを表し、pStateIdxが小さいときはLPSの発生頻度が大きい(=MPSとLPSの発生頻度が殆ど変わらない)ことを表す。
また、上記のMPS値valMPSは、MPSの値を記憶する変数であり、”0”もしくは”1”のどちらかを取る。このMPS値valMPSは、コンテキストテーブル210から領域選択部204に供給され、復号ビットの決定に使用される。領域選択部204では、復号ビットがMPSであるか、LPSであるかの判定を行い、MPSであればvalMPSを、LPSであればvalMPSの反転値をそれぞれ復号ビットとする。
また、コンテキストテーブル210は、コンテキストインデックス入力端子202より、コンテキストインデックスctxIdxを取得すると、図9に示したテーブルから対応するpStateIdxとvalMPSを参照し、pStateIdxをLPS幅テーブル208へ出力し、valMPSを領域選択部204へ出力する。上記のコンテキストインデックスctxIdxはMPEG−4 AVC/H.264の構文要素、周辺情報により特定されるインデックスである。コンテキストテーブル210の内容は、復号結果により更新される。領域選択部204において、復号ビットがMPSであった場合は、状態更新テーブル211にMPS復号信号が、復号ビットがLPSであった場合は、LPS復号信号が出力される。
状態更新テーブル211は、入力された信号に応じて、状態変数pStateIdxの更新値を参照し、コンテキストテーブル210のコンテキストインデックスctxIdxで示された内容を更新する。コンテキストテーブル210は状態更新テーブル211で決定した更新値nextStateIdxを取得し、pStateIdx[ctxIdx]=nextStateIdxとして更新する。
状態更新テーブル211は、コンテキストテーブル210の内容を更新するためのテーブルである。状態更新テーブル211を図10に示す。図10に示す状態更新テーブル211はMPEG−4 AVC/H.264規格として標準化されたテーブルである。この状態更新テーブル211は、領域選択部204よりMPS復号信号、もしくはLPS復号信号どちらかを取得すると共に、コンテキストテーブル208より状態変数pStateIdxを取得する。そして、取得したMPS/LPS復号信号、pStateIdxより、次の状態であるnextSteIdxを参照する。MPS復号信号を取得した場合の次の状態nextStateIdxは、図10にてtransIdxMPSで与えられるものである。LPS復号信号を取得した場合の次の状態nextStateIdxは、図10で、transIdxLPSで与えられるものである。状態更新テーブル211は、nextStateIdxを決定すると、コンテキストテーブル210にnextStateIdxを出力する。以上が図5の算術復号装置の構成の説明である。
次に、図5の算術復号装置の動作を図6のフローチャートを用いて説明する。コンテキストインデックス入力端子202より、コンテキストインデックスctxIdxがコンテキストテーブル210に送られる。コンテキストテーブル210では、入力したctxIdxから図9に示したテーブルから対応するpStateIdxとvalMPSを参照し、pStateIdxをLPS幅テーブル208へ出力し、valMPSを領域選択部204へ出力する。
LPS幅テーブル208では、領域格納部207より領域幅qCodIRangeを取得し、
qCodIRapgeIdx=(qCodIRange>>6)&0x03
という計算により、qCodIRangeIdxを算出する。続いて、LPS幅テーブル208は、コンテキストテーブル210より取得したpStateIdxと、算出した上記のqCodIRangeIdxとより、図8に示したLPS幅テーブルを参照し、LPS領域の領域幅codIRangeLPSを取得し、その取得したcodIRangeLPSを領域分割部209へ送る。
領域分割部209は、LPS幅テーブル208から取得したLPS領域の領域幅codIRangeLPSと、領域格納部207から取得したqCodIRangeとより、次式
codIRangeMPS=qCodIRange−codIRangeLPS
により、MPS領域の領域幅codIRangeMPSを算出する。続いて、領域分割部209は、算出したcodIRangeMPSと、取得したcodIRangeLPSとを領域選択部204に送る(以上、ステップS21)。
領域選択部204は、領域分割部209より取得したMPS領域の領域幅codIRangeMPSと、復号ビット系列バッファ203より取得した復号ビット系列codIOffsetとを比較し、その比較結果がcodIRangeMPS≧codIOffsetのときは、復号ビットはMPSであると判断し、その比較結果がcodIRangeMPS<codIOffsetのときは、復号ビットはLPSと判断する(ステップS22)。
領域選択部204は復号ビットがMPSである(LPSでない)と判断したときは、コンテキストテーブル210より取得したvalMPSを復号ビットに設定してMPS値として復号ビット出力端子212へ出力する(ステップS24)。また、このとき領域選択部204は、codIRange=codIRangeMPSと設定した後、codIRangeと所定値0x100を比較し、正規化要求信号を算出して、codIRangeと正規化要求信号を領域幅正規化部206へ出力する。また、領域選択部204は正規化要求信号を復号ビット系列更新/正規化部205に供給する一方、状態更新テーブル211へMPS復号信号を供給して、ステップS25へ進む。
一方、領域選択部204は復号ビットがLPSであると判断したときは、コンテキストテーブル210より取得したvalMPSを反転し、その値をLPS値に設定し、復号ビット出力端子212へ出力する(ステップS23)。また、このとき領域選択部204は、codIRange=codIRangeLPSと設定すると共に、codIOffset=codIOffset−codIRangeと設定する。更に、領域選択部204は、codIRangeと所定値0x100を比較し、正規化要求信号を算出した後、codIRangeと算出した正規化要求信号とを領域幅正規化部206へ出力すると共に、更新信号と共にcodIOffsetと正規化要求信号とを復号ビット系列更新/正規化部205に出力する。また、領域選択部204は、状態更新テーブル211へLPS復号信号を送り、ステップS25へ進む。
ステップS25では、図10に示す状態更新テーブル211が、領域選択部204からのMPS復号信号又はLPS復号信号と、コンテキストテーブル208からの状態変数pStateIdxとより、nextStateIdx=transIdxLPS/MPS[pStateIdx]により次のコンテキスト状態nextSteIdxを参照する。参照して得られた次のコンテキスト状態nextStateIdxはpStateIdxとして、コンテキストテーブル210へ送られる。また、復号ビットがLPSであった場合、すなわち復号ビット系列更新/正規化部205に更新信号、codIOffsetが送られた場合は、復号ビット系列更新/正規化部205のcodIOffsetを復号ビット系列バッファ203へ送り、復号ビット系列の更新を行う(ステップS25)。
続いて、正規化処理が行われる(ステップS26)。このステップS26では、領域幅正規化部206に正規化要求とcodIRangeとが供給され、qCodIRangeを正規化要求で示されたビット分だけ左シフトを行う正規化処理がなされ、得られた正規化後のqCodIRangeが領域格納部207へ出力されて、領域幅の更新を行う。また、復号ビット系列更新/正規化部205に正規化要求が送られ、復号ビット系列バッファ203の正規化を行う。この正規化処理は正規化要求で示されたビット分、復号ビット系列の左シフト操作を行うと共に、シフトしたビットだけビットストリーム入力端子201よりビットストリームを読み出した後、それらを足し合わせる。左シフトによりレジスタから溢れたビットは捨てられる。以上が図5の算術復号装置の動作の説明である。
ここまでの処理過程を改めて説明する。図7はCABAC復号動作の処理過程を説明するための図である。図7(a)は初期状態を示す。この初期状態ではqCodIRangeの幅を持つ領域1002は、正規化判定のための所定値1001(0x100)に対して図示の関係にあるものとする。なお、1003は復号ビット系列codIOffsetである。
図7(b)は領域分割を行ったところを示す。図6のフローチャートのステップS21に対応する。初期領域1002を、LPSに対応する領域1004とMPSに対応する領域1005とに分割する。LPS領域1004はcodIRangeLPSの領域幅を持ち、MPS領域1005はCodIRangeMPSの領域幅を持つ。
図7(c)は領域の選択を行った部分を示す。図6のフローチャートのステップS22に対応する。MPS領域1005の領域幅codIRangeMPSと、1003で示す復号ビット系列codIOffsetとを比較すると、codIRangeMPS≧codIOffsetであるため、復号ビットはMPSであることが確定する。新しいMPS領域をqCodIRange=codIRangeMPSとする。ここで新しいMPS領域qCodIRangeは正規化判定のための所定値1001より小であるため、正規化を行う。
図7(d)は正規化を行ったところである。図6のフローチャートのステップS26に対応する。まず、新しいMPS領域1005に対し左シフト操作を行い、正規化後領域1007を生成する。そして、同じビット数分だけ復号ビット系列1003に対しても左シフト操作を行い、かつ、同ビット数分のビットの取得を行い、復号ビット系列1006を生成する。次のビットの復号は、領域1007と復号ビット系列1006に対し同様の操作を行うことにより、復号処理とする。
上記のCABACは2値算術符号化・復号方式であるため、多値信号を扱う場合は、2値表現に変換して符号化・復号するという手続きをとる(例えば、特許文献1参照)。この特許文献1では、CABACの量子化係数レベル、MVDの2値化を示している。これらは、ビットストリームの中でも特に多くの情報を占めるものである。図11は量子化係数レベルの2値化を示したものである。量子化係数レベルは単項部分とExp−Golomb(指数ゴロム)成分の2段階に分けられ、レベルが14までは単項部分のみを使用し、それ以上の場合はExp−Golomb成分を追加するという形態をとる。前半の単項部分は同一コンテキストインデックスを使用する。
ところで、算術復号装置としては、2値画像符号化の国際標準JBIG(Joint Bi-level Image Experts Group;ITU勧告T.82)で採用されているQM−Coderと呼ばれるものも存在する。図12はQM−Coderの算術復号装置の一例の構成図を示す。QM−Coderの算術復号装置は、図12に示すように、ビットストリーム入力端子301、コンテキストインデックス入力端子302、復号ビット系列バッファ303、領域選択部304、復号ビット系列更新/正規化部305、領域幅正規化部306、領域格納部307、領域分割部308、LPS幅テーブル309、コンテキストテーブル310、復号ビット出力端子311より構成される。
図12のQM−Coderの算術復号装置は、図5のCABAC復号装置とほぼ同様の構成であるが、状態更新テーブル211に対応するブロックがない点、LPS幅テーブル309への入力に領域格納部307からの入力がない点が大きく異なる。これは、QM−Coderは、同じコンテキストインデックスを用いている限り、qStateIdxが変化しないこと、codIRangeLPSの算出に関しては、qStateIdx、もしくはctxIdxのみを使用することを意味する。
以下図12のQM−Coder復号装置の構成要素について説明する。復号ビット系列バッファ303は、入力端子301からの復号ビット系列codIOffsetを格納する機能と、格納した復号ビット系列codIOffsetを領域選択部304に出力する機能とを有する。また、復号ビット系列バッファ303は、復号ビット系列更新/正規化部305と接続している。
領域選択部304は、復号ビットがMPSであるか、LPSであるかを決定し、復号ビット出力端子309を通し、外部へ出力する機能を有する。領域選択部304は、復号ビット系列バッファ303から、復号ビット系列codIOffsetを取得し、領域分割部308から、MPS幅codIRangeMPS、LPS幅codIRangeLPSを取得すると共に、コンテキストテーブル310よりvalMPSを取得する。
領域選択部304は、復号ビット系列バッファ303より入力されるcodIOffsetと、領域分割部308より入力されるcodIRangeMPSとの大きさを比較し、その比較結果がcodIRangeMPS≧codIOffsetのときは、復号ビットはMPSであると判断し、コンテキストテーブル310より取得したvalMPSを復号ビット出力端子311へ出力する。そして、codIRangeMPSを領域正規化部306に供給する。
一方、領域選択部304は、上記の比較結果がcodIRangeMPS<codIOffsetのときは、復号ビットはLPSであると判断し、コンテキストテーブル310より取得したvalMPSを反転した値を復号ビット出力端子311へ出力する。そして、codIRangeLPSを領域幅正規化部306に供給する。そして、復号ビット系列更新/正規化部305に復号ビット系列更新要求とcodIRangeMPSを供給する。
また、領域選択部304は、復号ビット系列更新/正規化部305に対し、更新要求と正規化要求を供給し、領域幅正規化部306に対し、正規化要求を供給する機能を有する。正規化は、領域選択部304で選択された領域幅(codIRangeMPSもしくはcodIRangeLPS)が、所定値を下回った場合に発生する。この正規化は領域幅qCodIRangeが所定値以上を常に確保することを保証する処理であり、qCodIRangeが所定値以上になるまで左シフトを繰り返すという操作である。qCodIRangeと所定値とを比較し、左シフトするビット数を算出し、これを正規化要求とする。qCodIRangeが所定値以上である場合は、正規化要求は0となる。
復号ビット系列更新/正規化部305は、復号ビット系列バッファ303の更新および正規化を行う機能を有する。復号ビット系列正規化部305は、領域選択部304より更新要求を受信したときに更新処理を行う。この更新処理は、codIOffsetから、更新要求と共に受信したqCodIRangeMPSを減算し、新たなcodIOffsetとする処理である。また復号ビット系列正規化部305は、領域選択部304から正規化要求を受信したときに、codIOffsetの正規化を行う。この正規化処理は、正規化要求で示されたビット分、左シフト操作を行い、シフトしたビットだけ入力ビットストリーム入力端子301よりビットを読み出し、足し合わせるという操作を行う。左シフトによりレジスタから溢れたビットは捨てられる。
領域幅正規化部306は、領域選択部304より、正規化要求を受信したときに正規化処理を行う。この正規化処理では復号後の領域幅qCodIRangeと、正規化要求で示されたビット数分の左シフト操作を行う。そして正規化後のqCodIRangeを領域格納部307へ送信する。
領域格納部307は、QM−Coder復号装置の内部状態qCodIRangeを格納する機能を有する。領域格納部307は、領域分割部308と接続し、qCodIRangeの送受信を行う機能を有する。
領域分割部308は、現在の領域を、領域幅codIRangeMPSを持つMPS領域と、領域幅codIRangeLPSを持つLPS領域に分割する機能を有する。領域分割部308は、LPS幅テーブル309からLPS幅codIRangeLPSを取得し、また、領域格納部307から現在の領域codIRangeを取得する。
領域分割部308は、codIRangeとcodIRangeLPSを取得すると、
次式
codIRangeMPS=codIRange−codIRangeLPS
により、MPS領域の領域幅codIRangeMPSを算出する。そして、領域分割部308は、codIRangeMPSとcodIRangeLPSを領域選択部304へ出力する。
LPS幅テーブル309は、LPS領域の領域幅codIRangeLPSを求めるためのテーブルである。テーブルはJBIG(ITU勧告T.82)で採用されているものである。LPS幅テーブル309は、コンテキストテーブル310から、pStateIdxを受信し、テーブル参照によりcodIRangeLPSを決定する。
コンテキストテーブル310は、復号に使用するコンテキストを取得するためのテーブルである。テーブルはJBIG(ITU勧告T.82)で採用されているものである。pStateIdxは、LPS幅テーブル309からLPS幅codIRangeを取得するためのインデックスである。valMPSは、MPSの値を記憶する変数であり、0もしくは1のどちらかを取る。valMPSは、領域選択部304に出力され、復号ビットの決定に使用される。領域選択部304では、復号ビットがMPSであるか、LPSであるかの判定を行い、MPSであればvalMPSを、LPSであればvalMPSの反転値をそれぞれ復号ビットとする。
コンテキストテーブル310は、コンテキストインデックス入力端子302より、コンテキストインデックスctxIdxが入力されると、対応するpStateIdxとvalMPSを参照し、pStateIdxをLPS幅テーブル309へ送信し、valMPSを領域選択部304へ送信する。コンテキストテーブル310の内容は固定値である。ここが図5と大きく違う点の一つである。以上が図12の算術復号装置の構成の説明である。
次に、図12の算術復号装置の動作を、図6のフローチャートを用いて説明する。コンテキストインデックス入力端子302より、コンテキストインデックスctxIdxがコンテキストテーブル310に供給される。コンテキストテーブル310では、入力したctxIdxからpStateIdx=pStateIdx[ctxIdx]と、valMPSvalMPS[ctxIdx]を取得し、取得したpStateIdxをLPS幅テーブル309へ、取得したvalMPSを領域選択部303へそれぞれ出力する。
LPS幅テーブル309では、コンテキストテーブル310より取得したpStateIdxによりLPS幅テーブル309を参照し、codIRangeLPSを取得して、そのcodIRangeLPSを領域分割部308へ送る。領域分割部308は、LPS幅テーブル309から取得したcodIRangeLPSと、領域格納部307より取得したqCodIRangeとより、次式
codIRangeMPS=qCodIRange−codIRangeLPS
により、codIRangeMPSを算出する。領域分割部308は、算出したcodIRangeMPSと、codIRangeLPSとを領域選択部304に送る(以上、ステップS21)。
次に、領域選択部304は、領域分割部308よりのcodIRangeMPSと、復号ビット系列バッファ303よりの復号ビット系列codIOffsetとを比較し、その比較結果がcodIRangeMPS≧codIOffsetのときは、復号ビットはMPSであると判断し、その比較結果がcodIRangeMPS<codIOffsetのときは、復号ビットはLPSと判断する(ステップS22)。
領域選択部304は復号ビットがMPSである(LPSでない)と判断したときは、コンテキストテーブル310より取得したvalMPSを復号ビットに設定してMPS値として復号ビット出力端子311へ出力する(ステップS24)。また、このとき領域選択部304は、codIRange=codIRangeMPSと設定した後、codIRangeと所定値0x100を比較し、正規化要求信号を算出して、codIRangeと正規化要求信号を領域幅正規化部306へ出力する。また、領域選択部304は正規化要求信号を復号ビット系列更新/正規化部305に供給して、ステップS25へ進む。
一方、領域選択部304は復号ビットがLPSであると判断したときは、コンテキストテーブル310より取得したvalMPSを反転し、その値をLPS値に設定し、復号ビット出力端子311へ出力する(ステップS23)。また、このとき領域選択部304は、codIRange=codIRangeLPSと設定すると共に、codIOffset=codIOffset−codIRangeと設定する。更に、領域選択部304は、codIRangeと所定値0x100を比較し、正規化要求信号を算出した後、codIRangeと算出した正規化要求信号とを領域幅正規化部306へ出力すると共に、更新信号と共にcodIOffsetと正規化要求信号とを復号ビット系列更新/正規化部305に出力して、ステップS25へ進む。
ステップS25では、復号ビットがLPSであった場合、すなわち復号ビット系列更新/正規化部305に更新信号、codIOffsetが送られた場合は、復号ビット系列更新/正規化部305のcodIOffsetを復号ビット系列バッファ303へ送り、復号ビット系列の更新を行う(ステップS25)。
続いて、正規化処理が行われる(ステップS26)。このステップS26では、領域幅正規化部306に正規化要求とcodIRangeとが供給され、qCodIRangeを正規化要求で示されたビット分だけ左シフトを行う正規化処理がなされ、得られた正規化後のqCodIRangeが領域格納部307へ出力されて、領域幅の更新を行う。また、復号ビット系列更新/正規化部305に正規化要求が送られ、復号ビット系列バッファ303の正規化を行う。この正規化処理は正規化要求で示されたビット分、左シフト操作を行い、シフトしたビットだけビットストリーム入力端子301よりビットストリームを読み出し、足し合わせる。左シフトによりレジスタから溢れたビットは捨てられる。以上が図12の算術復号装置の動作の説明である。
図12の算術復号装置に対して、処理の高速化を実現する方法が従来知られている(例えば、特許文献2参照)。図13は、特許文献2により開示された算術復号装置の2ビット一括復号を備えた装置の一例の構成図を示す。同図中、図12と同一構成部分には同一符号を付し、その説明を省略する。図13に示す算術復号装置は、図12に示した算術符号装置に、2ビット復号判定部401、領域分割部402、LPS幅シフト部403、2ビット領域分割部404、復号ビット数出力端子405を追加すると共に、領域分割部308を削除した構成である。
以下図13の構成要素について説明する。2ビット復号判定部401は、2ビットの一括復号が可能であるかどうかを判定する機能を有する。2ビット復号判定部401は領域格納部307、LPS幅テーブル309、復号ビット系列バッファ303からそれぞれ、qCodIRange、codIRangeLPS、codIOffsetを取得する。そして、次の不等式
qCodIRange−2・codIRangeLPS≧max(codIOffset,正規化所定値)
が成立した場合は2ビット復号可能、そうでない場合は2ビット復号不可能と判定する。2ビット復号可能であると判定した場合は、2ビット復号判定部401は、LPS幅シフト部403に分割要求とCodIRangeLPSとを供給する。2ビット復号不可能であると判定した場合は、2ビット復号判定部401は、領域分割部402に分割要求とCodIRangeLPSとを供給する。そして、復号ビット数を復号ビット数出力端子405に出力する。
領域分割部402は、現在の領域を、領域幅codIRangeMPSを持つMPS領域と、領域幅codIRangeLPSを持つLPS領域とに分割する機能を有する。また、領域分割部402は、2ビット復号判定部401から分割要求とLPS幅codIRangeLPSを取得し、また、領域格納部307から現在の領域幅codIRangeを取得する。領域分割部402は、分割要求とともにcodIRangeとcodIRangeLPSを取得すると、次式
codIRangeMPS=codIRange−codIRangeLPS
に基づいて、MPS領域codIRangeMPSを算出する。そして、領域分割部402は、算出したcodIRangeMPSと取得したcodIRangeLPSとを領域選択部304へ出力する。領域分割部402は、1ビットの復号処理に対応するブロックである。
LPS幅シフト部403は、2ビット分のLPS幅を算出する機能を有する。LPS幅シフト部403は、2ビット復号判定部401より、分割要求とCodIRangeLPSを取得すると、CodIRangeLPSに対して1ビットの左シフト処理を行い、2ビット分のLPS幅を算出する。そして算出後のcodIRangeLPSを2ビット領域分割部404に送る。
2ビット領域分割部404は、現在の領域を、領域幅codIRangeMPSを持つMPS領域と、2ビット分のLPS幅codIRangeLPSを持つ2ビットLPS領域とに分割する機能を有する。領域分割部404は、LPS幅シフト部403から1ビット分のLPS幅codIRangeLPSを取得し、また、領域格納部307から現在の領域幅codIRangeを取得する。2ビット領域分割部404は、分割要求と共にcodIRangeとcodIRangeLPSを取得すると、次式
codIRangeMPS=codIRange−codIRangeLPS
に基づいて、MPS領域codIRangeMPSを算出する。そして、算出したcodIRangeMPSを領域選択部304へ出力する。この領域分割部404は、2ビットの復号処理に対応するブロックである。
領域選択部304は、復号ビットがMPSであるか、LPSであるかを決定し、復号ビット出力端子311を通し、外部へ出力する機能を有する。領域選択部304は、復号ビット系列バッファ303から、復号ビット系列codIOffsetを取得し、また、領域分割部402、もしくは2ビット領域分割部404から、MPS幅codIRangeMPS、codIRangeLPSを取得する。また、コンテキストテーブル310よりvalMPSを受信する。
領域選択部304は、復号ビット系列バッファ303より取得したcodIOffsetと、領域分割部402より取得したcodIRangeMPSのそれぞれの大きさを比較し、その比較結果が、codIRangeMPS≧codIOffsetのときは、復号ビットはMPSであると判断し、コンテキストテーブル310より取得したvalMPSを復号ビット出力端子311へ送る。そして、codIRangeMPSを領域幅正規化部306に供給する。
一方、上記の比較結果がcodIRangeMPS<codIOffSetのときは、領域選択部304は復号ビットはLPSであると判断し、コンテキストテーブル310より受信したvalMPSを反転した値を、復号ビット出力端子311へ出力する。そして、codIRangeLPSを領域幅正規化部306に供給する。そして、復号ビット系列更新/正規化部305に復号ビット系列更新要求とcodIRangeMPSを送る。
また、領域選択部304は、復号ビット系列バッファ303より取得した復号ビット系列codIOffsetと、2ビット領域分割部404より取得したcodIRangeMPSとを用いて、2ビット分MPSを復号して、コンテキストテーブル310より取得したvalMPSを2ビット分、復号ビット出力端子311へ出力する。そして、codIRangeMPSを領域幅正規化部306に供給する。以上が図13の算術復号装置の構成の説明である。
次に、図13の算術復号装置の動作を、図14のフローチャートを用いて説明する。コンテキストテーブル310は、コンテキストインデックス入力端子302より入力したコンテキストインデックスctxIdxからコンテキストテーブルを参照してpStateIdx=pStateIdx[ctxIdx]と、valMPS=valMPS[ctxIdx]を取得する。pStateIdxはLPS幅テーブル309へ供給され、valMPSは領域選択部304へ供給される。LPS幅テーブル309では、コンテキストテーブル310より取得したpStateIdxによりテーブルを参照してcodIRangeLPSを取得し、取得したcodIRangeLPSを2ビット復号判定部401へ供給する。
2ビット復号判定部401は、領域格納部307、LPS幅テーブル309、復号ビット系列バッファ303からそれぞれ取得したqCodIRange、codIRangeLPS、codIOffsetより、次の不等式
qCodIRange−2・codIRangeLPS≧max(codIOffset,正規化所定値)
が成立するかどうか判定し、成立する場合は2ビット復号可能、成立しない場合は2ビット復号不可能と判定する(図14のステップS31)。
2ビット復号判定部401は、2ビット復号可能であると判定した場合は、LPS幅シフト部403に分割要求とcodIRangeLPSを供給すると共に、復号ビット数出力端子405へ復号ビット数2を出力する。LPS幅シフト部403は、2ビット復号判定部401より供給された分割要求とcodIRangeLPSとに基づき、codIRangeLPSに対し、1ビットの左シフト操作を行い、2ビット分のLPS幅を算出する(図14のステップS32)。算出した2ビット分のLPS幅codIRangeLPSは2ビット領域分割部404に供給される。
2ビット領域分割部404は、LPS幅シフト部403から取得したcodIRangeLPSと、領域格納部307より取得したqCodIRangeとより、次式
codIRangeMPS=qCodIRange−codIRangeLPS
に基づいて、codIRangeMPSを算出し、算出したcodIRangeMPSを領域選択部304に供給する。
領域選択部304は、2ビット領域分割部404よりcodIRangeMPSを取得する。そしてコンテキストテーブル310より取得したvalMPSを復号ビットとして出力端子311へ出力する(図14のステップS33)。復号ビットは2ビットであり、valMPSが連続した形となる。
また、ステップS33では以下の正規化処理も行われる。領域選択部304は、codIRange=codIRangeMPSと設定し、更に、codIRangeと所定値0x100を比較し、正規化要求信号を算出する。そして、codIRangeと正規化要求信号を領域幅正規化部306へ供給する。また、正規化要求信号を復号ビット系列更新/正規化部305に供給する。
領域幅正規化部306は正規化要求とcodIRangeとを入力として受けると、qCodIRangeを正規化要求で示されたビット分だけ左シフトを行う正規化処理を行う。正規化後のqCodIRangeを領域格納部307へ送り、領域幅の更新を行う。また、復号ビット系列更新/正規化部305に正規化要求が送られ、復号ビット系列バッファ303の正規化を行う。この正規化処理は、正規化要求で示されたビット分、左シフト操作を行い、シフトしたビットだけ入力ビットストリーム入力端子301よりビットを読み出し、足し合わせる。左シフトによりレジスタからあふれたビットは捨てられ処理を終了する。
一方、2ビット復号判定部401は、ステップS31で2ビット復号可能であると判定した場合は、領域分割部402に分割要求とcodIRangeLPSとを供給し、復号ビット数1を復号ビット数出力端子405へ供給し、ステップS34へ進む。ステップS34では、領域分割部402は、2ビット復号判定部401より、分割要求とcodIRangeLPSを取得した後、図6のステップS22以下と同様の処理を行う。以上が図13の算術復号装置の動作の説明である。
特開2005−237004号公報 特許第3350482号公報
特許文献2に開示されている方式は算術復号装置の一括ビット復号方式に関するものであり、同一コンテキストが連続し、途中で正規化が発生しないことを条件に、予めMPSが連続するビット数を計算し、複数ビット分を一括して領域分割することにより、復号にかかる演算量を削減し、処理の高速化をする方法である。すなわち、一括復号開始時の領域幅がRange、LPS幅がRangeLPSであった場合、
Range−n・RangeLPS≧所定値
という条件より、一括復号ビット数を算出するというものである。
しかしながら、特許文献2に開示されている方式はQM−Coderにおいては良好な性能を示すが、LPS幅の算出には、直前の領域幅Rangeを使用するという点と、復号処理により状態が変化するという点より、上記の従来の方式をCABAC復号装置に適用することは不可能である。
本発明は上記の点に鑑みなされたもので、復号途中で、現在の領域幅に応じてLPS幅が随時切り替わるCABACにおいて、複数ビット一括復号を可能にし、高速な復号処理を行い得る算術復号方法、算術復号装置及び算術復号プログラムを提供することを目的とする。
上記の目的を達成するため、本発明の算術復号方法は、入力される復号すべきビット系列の文脈に応じ、符号化された二値のシンボルの発生確率の高い方の優勢シンボルと発生確率の低い方の劣勢シンボルとのうち、劣勢シンボルの領域幅を随時変動させて復号を行うマルチコンテキスト型の算術復号方法において、復号すべきビット系列のある時点の復号に使用する文脈から、複数ビット先の文脈を算出する第1のステップと、第1のステップにより算出した複数ビット先の文脈により、復号すべきビット系列の複数ビットの一括復号と、復号すべきビット系列の1ビット毎の逐次復号とのうち一方の復号を選択する第2のステップと、第2のステップにより選択された一括復号又は逐次復号で復号したビット数を外部に伝送する第3のステップとを含むことを特徴とする。
また、上記の目的を達成するため、本発明の算術復号装置は、入力される復号すべきビット系列の文脈に応じ、符号化された二値のシンボルの発生確率の高い方の優勢シンボルと発生確率の低い方の劣勢シンボルとのうち、劣勢シンボルの領域幅を随時変動させて復号を行うマルチコンテキスト型の算術復号装置において、復号すべきビット系列の複数ビットの一括復号を行う第1の復号手段と、復号すべきビット系列の1ビット毎の逐次復号を行う第2の復号手段と、復号すべきビット系列のある時点の復号に使用する文脈から、複数ビット先の文脈を算出する文脈計算手段と、文脈計算手段により算出した複数ビット先の文脈により、第1の復号手段と第2の復号手段の一方の出力信号を選択するように切り替える復号手段切替手段と、復号手段切替手段により選択された第1又は第2の復号手段が復号したビット数を外部に伝送するための復号ビット数伝送手段とを有することを特徴とする。
更に、上記の目的を達成するため、本発明の算術復号プログラムは、入力される復号すべきビット系列の文脈に応じ、符号化された二値のシンボルの発生確率の高い方の優勢シンボルと発生確率の低い方の劣勢シンボルとのうち、劣勢シンボルの領域幅を随時変動させてマルチコンテキスト型の算術復号をコンピュータに行わせる算術復号プログラムであって、上記コンピュータを、
復号すべきビット系列の複数ビットの一括復号を行う第1の復号手段と、復号すべきビット系列の1ビット毎の逐次復号を行う第2の復号手段と、復号すべきビット系列のある時点の復号に使用する文脈から、複数ビット先の文脈を算出する文脈計算手段と、文脈計算手段により算出した複数ビット先の文脈により、第1の復号手段と第2の復号手段の一方の出力信号を選択するように切り替える復号手段切替手段と、復号手段切替手段により選択された第1又は第2の復号手段が復号したビット数を外部に伝送するための復号ビット数伝送手段として機能させることを特徴とする。
また、本発明は、復号すべきビット系列のある時点の復号に使用する文脈から算出したシンボルの発生確率を示す状態変数と、復号装置の内部状態を示す領域幅から算出した領域幅インデックスとをインデックスとして参照されることにより、複数ビット先の劣勢シンボルの領域幅のすべての可能性を算出するための、予め作成された複数ビットLPS幅テーブルと、
状態変数と領域幅インデックスとをインデックスとして参照されることにより、複数ビットLPS幅テーブルが示す複数ビット先の劣勢シンボルの領域幅のうち正しい領域幅を算出するために、劣勢シンボルの領域幅と優勢シンボルの領域幅との境界値を算出するための境界テーブルとを参照して複数ビット先の文脈を算出することを特徴とする。
本発明によれば、復号途中で、現在の領域幅に応じてLPS幅が随時切り替わる(復号時の文脈に応じて随時シンボルの発生確率が変動する)マルチコンテキスト型の算術復号(CABAC)において、復号ビット系列の複数ビット一括復号を可能にし、復号処理の演算量削減と高速な復号処理とを実現できる。
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。図1は本発明になる算術復号装置の一実施例のブロック図を示す。同図に示すように、この算術復号装置は、ビットストリーム入力端子101、コンテキストインデックス入力端子102、復号ビット系列バッファ103、領域選択部104、復号ビット系列更新/正規化部105、コンテキストテーブル106、LPS幅テーブル107、2ビットLPS幅テーブル108、境界テーブル109、2ビット復号判定部110、領域分割部111、2ビット領域分割部112、領域格納部113、領域幅正規化部114、状態更新テーブル115、復号ビット出力端子116及び復号ビット数出力端子117より構成される。
以下、図1の構成要素について説明する。復号ビット系列バッファ103は、ビットストリーム入力端子101から入力された復号すべきビット系列(以下、復号ビット系列ともいう)codIOffsetを格納する機能と、格納した復号ビット系列codIOffsetを読み出して領域選択部104へ出力する機能とを有する。また、復号ビット系列バッファ103は、復号ビット系列更新/正規化部105と接続している。
領域選択部104は、復号ビットがMPSであるか、LPSであるかを決定し、復号ビット出力端子116を通し、外部へ復号ビットを出力する機能を有する。また、領域選択部104は、復号ビット系列バッファ103から、復号ビット系列codIOffsetを取得し、領域分割部111、もしくは2ビット領域分割部112から、MPS領域の領域幅(以下、MPS幅ともいう)codIRangeMPSと、LPS領域の領域幅(以下、LPS幅ともいう)codIRangeLPSとを取得し、また、コンテキストテーブル106より変数valMPSを取得する。
そして、領域選択部104は、復号ビット系列バッファ103より取得した復号ビット系列codIOffsetと、領域分割部111より取得したcodIRangeMPSのそれぞれの大きさを比較し、その比較結果がcodIRangeMPS≧codIOffsetのときは、復号ビットはMPSであると判断してコンテキストテーブル106より取得した変数valMPSを復号ビット出力端子116へ出力し、また、MPS復号信号を状態更新テーブル115に出力し、更にcodIRangeMPSを領域幅正規化部114に出力する。
また、領域選択部104は、上記の比較結果がcodIRangeMPS<codIOffsetのときは、復号ビットはLPSであると判断してコンテキストテーブル106より取得した変数valMPSを反転して、その反転した値を復号ビット出力端子116へ出力し、また、codIRangeLPSを領域幅正規化部114に供給すると共に、LPS復号信号を状態更新テーブル115に出力する。更に、領域選択部104は、復号ビット系列更新/正規化部105に復号ビット系列更新要求とcodIRangeMPSを供給する。
また、領域選択部104は、復号ビット系列バッファ103より復号ビット系列codIOffsetを取得し、2ビット領域分割部112よりcodIRangeMPSを取得して2ビット分MPSを復号し、その2ビットMPS復号信号を状態更新テーブル115へ出力すると共に、コンテキストテーブル106より取得した変数valMPSを2ビット分、復号ビット出力端子116へ出力する。また、領域選択部104は、2ビット領域分割部112より取得したcodIRangeMPSを領域幅正規化部114に供給する。
更に、領域選択部104は、復号ビット系列更新/正規化部105に対し、更新要求と正規化要求を供給し、領域幅正規化部114に対し、正規化要求を供給する。上記の正規化要求は、領域選択部104で選択された領域幅(codIRangeMPSもしくはcodIRangeLPS)が、所定値を下回った場合に発生する。正規化は領域幅qCodlRangeが所定値以上を常に確保することを保証する処理であり、qCodIRangeが所定値以上になるまで左シフトを繰り返すという操作である。qCodIRangeと所定値とを比較し、左シフトするビット数を算出し、これを正規化要求とする。qCodIRangeが所定値以上である場合は、正規化要求は0となる。
復号ビット系列更新/正規化部105は、復号ビット系列バッファ103の更新および正規化を行う機能を有する。復号ビット系列更新/正規化部105は、領域選択部104より更新要求を取得したときに更新処理を行う。更新要求を取得すると、復号ビット系列更新/正規化部105は、復号ビット系列codIOffsetから、更新要求と共に取得したqcodIRangeMPSを減算し、新たなcodIOffsetとする。また、領域選択部104から正規化要求を取得したときに復号ビット系列codIOffsetの正規化を行う。
上記の正規化処理は、正規化要求で示されたビット分、復号ビット系列更新/正規化部105を構成する所定ビット数のシフトレジスタにより復号ビット系列codIOffsetの左シフト操作を行った後、その左シフトしたビットだけ入力ビットストリーム入力端子101よりビットを読み出した後、そのビットを左シフトによって0となっているcodIOffsetのLSBを含むシフト後のビット位置に足し合わせるという操作で実現する。なお、左シフトにより上記のシフトレジスタから溢れた復号ビット系列codIOffsetのMSB側のビットは捨てられる。
コンテキストテーブル106は、復号に使用するコンテキストを取得するための図9のようなテーブルである。コンテキストテーブル106は、コンテキストインデックス入力端子102より、コンテキストインデックスctxIdxが入力されると、対応する状態変数pStateIdxと変数valMPSとを参照し、状態変数pStateIdxをLPS幅テーブル107と、2ビットLPS幅テーブル108と、境界テーブル109へ出力し、変数valMPSを領域選択部104へ出力する。
上記の状態変数pStateIdxは、LPS幅テーブル107からLPS幅codIRangeを取得するためのインデックスである。また、上記の変数valMPSは、MPSの値を記憶する変数であり、”0”もしくは”1”のどちらかの値をとる。この変数valMPSは、領域選択部104において復号ビットの決定に使用される。領域選択部104では、復号ビットがMPSであるか、LPSであるかの判定を行い、MPSであればvalMPSを、LPSであればvalMPSの反転値をそれぞれ復号ビットとする。
コンテキストテーブル106の内容は、復号結果により更新される。領域選択部104において、復号ビットが1ビットのMPSであった場合はMPS復号信号が、復号ビットが1ビットLPSであった場合はLPS復号信号が、状態更新テーブル115に供給される。また、復号ビットが2ビットのMPSであった場合は、2ビットMPS復号信号が状態更新テーブル115に供給される。
状態更新テーブル115は、受信した信号に応じ、状態変数pStateIdxの更新値を参照し、コンテキストテーブル106のコンテキストインデックスctxIdxで示された内容を更新する。コンテキストテーブル106は状態更新テーブル115で決定した更新値nextStateIdxを取得し、pStateIdx[ctxIdx]=nextStateIdxとして更新する。
LPS幅テーブル107は、LPS幅codIRangeLPSを求めるためのテーブルである。LPS幅テーブル107は、領域格納部113から領域幅qCodIRangeを取得し、また、コンテキストテーブル106から、状態変数pStateIdxを取得し、これらからcodIRangeLPSを決定する。すなわち、LPS幅テーブル107は、図8で示したテーブルにおいて、9ビットのqCodIRangeの上位2ビット目と上位3ビット目の計2ビットで算出される領域幅インデックス(qCodIRangeIdx)と、取得した状態変数pStateIdxとにより、codIRangeLPSを得る。そして、生成したcodIRangeLPSを領域分割部111に出力する。
2ビットLPS幅テーブル108は、2ビット分のLPS幅を算出するためのテーブルであり、ある時点の復号に使用する文脈から算出したシンボルの発生確率を示す状態変数(pStateIdx)と、復号装置の内部状態である領域幅から算出した領域幅インデックス(qCodIRangeIdx)とをインデックスとして2ビット先の劣勢シンボルの領域幅(LPS幅)のすべての可能性を算出するための、図2に示すテーブルである。
次に、この2ビットLPS幅テーブル108の内容及び構成法について図2と共に説明する。今、ある状態変数pStateIdxと、領域幅qCodIRangeとが与えられたとする。これらより、規格上で定められている図8のLPS幅テーブルを前述した方法により参照してLPS領域の領域幅codIRangeLPSが算出される。そして、算出したcodIRangeLPSと上記の領域幅qCodIRangeとから次式
codIRangeMPS=qCodIRange−codIRangeLPS
により、MPS領域の領域幅codIRangeMPSが算出される。ここで、復号ビット系列がMPSである場合、次のビットを復号するための領域幅qCodIrangeは
qCodIRange=codIRangeMPS
となる。また、次のビットを復号するための状態変数pStateIdxは、状態更新テーブル115で一回だけtransIdxMPSで更新された値である。これらが次のビットを復号するために必要なものである。
さて、状態変数pStateIdxに関しては、MPSが発生した結果は常にtransIdxMPSを1回行ったもので、次の状態が確定する。それに対し、領域幅qCodIRangeの値により、次の領域幅インデックスqCodIRangeIdxの値が変わり、次のLPS領域の領域幅codIRangeLPSはqCodIRangeとpStateIdxとからは一意には定まらない。
そこで、本実施例では、現在の状態変数pStateIdxと領域幅インデックスqCodIRangeIdxとから2ビット分のLPS領域の領域幅codIRangeLPSを全て列挙した図2の2ビットLPS幅テーブル108を予め用意する。この図2に示す2ビットLPS幅テーブル108は、テーブル中の同じ値のqCodIRangeIdxに2つの値が記述されているが、そのうち左側の値をcodIRangeLPS1として、右側の値をcodIRangeLPS2として、2ビット復号判定部110へ出力する。例えば、pStateIdx=40、qCodIRangeIdx=3のときは、2ビット分のLPS幅は、”55”もしくは”58”のどちらかの値をとり、”55” をcodIRangeLPS1として、”58”をcodIRangeLPS2として、2ビット復号判定部110へそれぞれ出力する。なお、図2の2ビットLPS幅テーブル中、”0”が入っているところは1ビット復号後に正規化処理が入るため、2ビットのMPS復号ができない場合である。
境界テーブル109は、2ビット分のLPS幅を確定するためのLPS幅とMPS幅との境界値を取得するためのテーブルで、2ビットLPS幅テーブル108から正しいLPS幅を算出するためのテーブルである。境界テーブル109で取得した境界値は、2ビット復号判定部110へ送られる。図3は境界テーブル109の内容を示す。図3に示すように境界テーブル109は、状態変数pStateIdxと領域幅インデックスqCodIRangeIdxとに対応付けられて境界値が格納されたテーブルである。なお、この境界テーブル109において、”0”が入っているところは、1ビット復号後に正規化処理が入るため、2ビットのMPS復号ができない場合である。
2ビット復号判定部110は、2ビットの一括復号が可能であるかどうかを判定する機能を有する。2ビット復号判定部110は、復号ビット系列バッファ103から復号ビット系列codIOffsetを、コンテキストテーブル106から状態変数pStateIdxを、2ビットLPS幅テーブル108からcodIRangeLPS1とcodIRangeLPS2を、境界テーブル109から境界値を、領域格納部113から領域幅qCodIRangeをそれぞれ取得する。
そして、2ビット復号判定部110は、qCodIRange<境界値の場合、codIRangeLPS=codIRangeLPS1とする。そうでない場合、codIRangeLPS=codIRangeLPS2とする。また、境界値>0、かつ、codIRangeLPS>0のときは、2ビット復号可能と判定し、2ビット領域分割部112に分割要求とcodIRangeLPSを送る一方、復号ビット数出力端子117へ復号ビット数2を出力する。また、2ビット復号判定部110は、境界値>0、かつ、codIRangeLPS>0でないときは、2ビット復号不可能と判定して、領域分割部111に分割要求を送る一方、復号ビット数出力端子117へ復号ビット数1を出力する。
領域分割部111は、現在の領域を、領域幅codIRangeMPSを持つMPS領域と、領域幅codIRangeLPSを持つLPS領域に分割する機能を有する。領域分割部111は、2ビット復号判定部110から分割要求を取得し、領域格納部113から現在の領域幅codIRangeを取得し、LPS幅テーブル107から1ビットのLPS幅codIRangeLPSを取得する。
領域分割部111は、上記の分割要求とcodIRangeとcodIRangeLPSとを取得すると、次式
codIRadgeMPS=codIRange−codIRangeLPS
に基づいて、MPS領域の領域幅codIRangeMPSを算出する。そして、領域分割部111は、上式により算出したcodIRangeMPSと、取得したcodIRangeLPSとを領域選択部104へ出力する。この領域分割部111は、1ビットの復号処理に対応するブロックである。
2ビット領域分割部112は、現在の領域を、領域幅codIRangeMPSを持つMPS領域と、2ビット分のLPS幅codIRangeLPSを持つ2ビットLPS領域とに分割する機能を有する。2ビット領域分割部112は、2ビット復号判定部110から分割要求と2ビット分のLPS幅codIRangeLPSとを取得し、また、領域格納部113から現在の領域codIRangeを取得する。
そして、2ビット領域分割部112は、分割要求と共に上記のcodIRangeと2ビット分のLPS幅codIRangeLPSを取得すると、次式
codIRangeMPS=codIRange−codIRangeLPS
に基づいて、MPS領域codIRangeMPSを算出する。そして、2ビット領域分割部112は、上式により算出したcodIRangeMPSを領域選択部104へ供給する。この2ビット領域分割部112は、2ビットの復号処理に対応するブロックである。
領域格納部113は、CABAC復号装置の内部状態である領域幅qCodIRangeを格納する機能を有する。また、領域格納部113は、領域分割部111、2ビット領域分割部112と接続し、領域幅qCodIRangeの送受信を行う機能を有する。
領域幅正規化部114は、領域選択部104より、正規化要求を受信したときに正規化処理を行う。この正規化処理は、領域選択部104より取得した、復号後の領域幅qCodIRangeを、正規化要求で示されたビット数分の左シフト操作する処理である。領域幅正規化部114は、正規化後の領域幅qCodIRangeを領域格納部113へ出力する。
状態更新テーブル115は、領域選択部104よりMPS復号信号、もしくはLPS復号信号、もしくは2ビットMPS復号信号のどれかを取得し、更にコンテキストテーブル106より状態変数pStateIdxを取得する。そして、状態更新テーブル115は、取得したMPS/LPS復号信号または2ビットMPS復号信号、状態変数pStateIdxより、次の状態変数nextStateIdxを決定する。
MPS復号信号を取得した場合の次の状態変数nextStateIdxは、図10において、transIdxMPSで与えられるものである。LPS復号信号を取得した場合の次の状態変数nextStateIdxは、図10において、transIdxLPSで与えられるものである。2ビットMPS復号信号を取得した場合の次の状態変数nextStateIdxは、nextStateIdx=min(pStateIdx,62)で与えられる。状態更新テーブル115は、次の状態変数nextStateIdxを決定すると、そのnextStateIdxをコンテキストテーブル106に供給する。
このようにして復号したビットは領域選択部104から復号ビット出力端子116を介して外部へ出力される。また、その際の復号ビット数は、2ビット復号判定部110から復号ビット数出力端子117を介して外部へ出力される。以上が図1の算術復号装置の構成の説明である。
次に、図1の算術復号装置の動作を、図4のフローチャートを用いて説明する。まず、コンテキストテーブル106は、コンテキストインデックス入力端子102より入力したコンテキストインデックスctxIdxから図9のコンテキストテーブルを参照してpStateIdx=pStateIdx[ctxIdx]と、valMPS=valMPS[ctxIdx]を取得する。取得された状態変数pStateIdxはLPS幅テーブル107と2ビットLPS幅テーブル108と境界テーブル109とにそれぞれ供給され、取得された変数ValMPSは領域選択部104に供給される。
LPS幅テーブル107では、コンテキストテーブル106より取得した状態変数pStateIdxにより、LPS幅codIRangeLPSを取得する。取得したcodIRangeLPSは領域分割部111へ供給される。図3の構成の境界テーブル109は、領域格納部113より取得した領域幅qCodIRangeと、コンテキストテーブル106より取得した状態変数pStateIdxとより境界値を取得し、2ビット復号判定部110へ供給する。
図2の構成の2ビットLPS幅テーブル108は、領域格納部113より取得した領域幅qCodIRangeと、コンテキストテーブル106より取得した状態変数pStateIdxとよりLPS幅CodIRangeLPS1とcodIRangeLPS2とを取得し、2ビット復号判定部110へ供給する。
2ビット復号判定部110は、復号ビット系列バッファ103から復号ビット系列codIOffsetを、コンテキストテーブル106から状態変数pStateIdxを、2ビットLPS幅テーブル108からcodIRangeLPS1とcodIRangeLPS2を、境界テーブル109から境界値を、領域格納部113から領域幅qCodIRangeをそれぞれ取得して、これらに基づいて2ビット復号可能かどうか判定する(図4のステップS11)。
すなわち、ステップS11では、2ビット復号判定部110は、qCodIRange<境界値の場合、codIRangeLPS=codIRangeLPS1とする。そうでない場合、codIRangeLPS=codIRangeLPS2とする。また、境界値>0、かつ、codIRangeLPS>0のときは、2ビット復号可能と判定し、2ビット領域分割部112に分割要求とcodIRangeLPSを送る一方、復号ビット数出力端子117へ復号ビット数2を出力する。
2ビット復号判定部110が、2ビット復号可能と判定した場合(ステップS11のYes)は、2ビット領域分割部112が、現在の領域を、領域幅codIRangeMPSを持つMPS領域と2ビット分のLPS幅codIRangeLPSを持つ2ビットLPS領域とに分割するため、領域格納部113より取得した領域qCodIRangeを用いて、次式
codIRangeMPS=qCodIRange−codIRangeLPS
に基づいて、MPS幅codIRangeMPSを算出し、そのcodIRangeMPSを領域選択部104へ供給する。
領域選択部104は、2ビット領域分割部112よりcodIRangeMPSを取得すると、コンテキストテーブル106より取得した変数valMPSを復号ビットとして出力端子116へ出力する(ステップS12)。復号ビットは2ビットであり、変数valMPSが連続した形となる。
また、ステップS12では以下の正規化処理も行われる。領域選択部104は、2ビット領域分割部112より取得したcodIRangeMPSを領域幅codIRangeとして設定した後、この設定したcodIRangeと所定値0x100とを比較し、正規化要求信号を算出する。そして、領域選択部104は、上記の設定したcodIRangeと算出した正規化要求信号とを領域幅正規化部114へ供給する一方、算出した正規化要求信号を復号ビット系列更新/正規化部105にも供給する。
領域幅正規化部114は正規化要求信号と領域幅codIRangeとが入力されると、入力されたqCodIRangeを正規化要求信号で示されたビット分だけ左シフトする正規化処理を行う。そして、正規化処理された後の領域幅qCodIRangeは領域格納部113へ供給されて、領域幅の更新を行う。
また、復号ビット系列更新/正規化部105は正規化要求信号が入力されると、復号ビット系列バッファ103の正規化を行う。この正規化処理は、正規化要求信号で示されたビット分、復号ビット系列codIOffsetの左シフト操作を行うと共に、その左シフトしたビット分だけビットストリーム入力端子101より入力ビットストリームのビットを読み出して左シフトした後の復号ビット系列codIOffsetに足し合わせることで行われる。この左シフトにより所定のビット数のレジスタから溢れた復号ビット系列codIOffsetのビットは捨てられ処理を終了する。
他方、図4のステップS11において、2ビット復号判定部110は、境界値>0、かつ、codIRangeLPS>0でないときは、2ビット復号不可能と判定して(ステップS11のNo)、領域分割部111に分割要求を出力する一方、復号ビット数出力端子117へ復号ビット数1を出力する。また、LPS幅テーブル107より領域分割部111へLPS幅codIRangeLPSが供給される。
上記の2ビット復号不可能判定により領域分割部111は、2ビット復号判定部110から分割要求を取得し、LPS幅テーブル107よりLPS幅codIRangeLPSを取得すると、前記図6のステップS22以下と同様の処理を行う。図6のステップS22以下の処理は既に説明したため、説明は省略する。以上が図1の算術復号装置の動作の説明である。
このように、本実施例では、2ビット領域分割部112と領域分割部113とからなる第1の復号手段で2ビットの一括復号を行い、領域分割部111と領域分割部113とからなる第2の復号手段で1ビット毎の逐次復号を行い、領域選択部104、コンテキストテーブル106、2ビットLPS幅テーブル108、境界テーブル109及び状態更新テーブル115からなる文脈計算手段により、ある時点の復号に使用する文脈から、2ビット先の文脈を算出し、この算出した文脈により第1及び第2の復号手段を2ビット復号判定部110による切替手段により切り替え、復号したビット数を出力端子117から外部へ出力する構成としたため、復号途中で、現在の領域幅に応じてLPS幅が随時切り替わる(復号時の文脈に応じて随時シンボルの発生確率が変動する)CABACにおいて、復号ビット系列の2ビット一括復号を可能にし、復号処理の演算量削減と高速な復号処理とを実現できる。
また、本実施例によれば、CABACに対しても2ビットの一括復号が可能となるため、MPEG−4 AVC/H.264において、特に復号処理の演算量が大きい量子化係数レベルや、MVD(動きベクトルの差分値)の復号に適応でき、解像度が大きく、高画質なビットストリームのリアルタイム復号に大きな威力を発揮する。
なお、本発明は上記の実施例に限定されるものではなく、例えば上記と同様の構成により、3ビット以上の一括復号装置を構成することも可能である。また、上記の実施例は、1ビット復号後に正規化処理が入らないという条件の下で、2ビットの一括復号を行うものであるが、1ビット復号後に正規化処理が入っても一括復号を行う構成をとることも可能である。この場合は、
(1)2ビットLPS幅テーブル108の”0”が入っている部分に、1ビット正規化を考慮した2ビットLPS幅を入れること
(2)2ビットLPS幅テーブル108で2通りある2ビットLPS幅の候補を3通りに増やすこと、
(3)境界テーブルの更新+サイズ拡張
(4)1ビット後正規化発生有無を算出するための手段を追加すること
が必要となる。
更に、本発明は図1の構成をコンピュータのソフトウェアにより実現する算術復号プログラムも包含するものである。この算術復号プログラムは、記録媒体に記録されてコンピュータに取り込まれてもよいし、ネットワークを介してコンピュータに取り込まれてもよく、更にはファームウェアとしてコンピュータに組み込まれていてもよい。
本発明の算術復号装置の一実施例の構成を示すブロック図である。 図1の算術復号装置で使用する2ビットLPS幅テーブルの一例の内容を示す図である。 図1の算術復号装置で使用する境界テーブルの一例の内容を示す図である。 本発明の算術復号方法の一実施例のフローチャートである。 一般的なCABAC算術復号装置の一例の構成図である。 図5の算術復号装置の動作を説明するためのフローチャートである。 図5の算術復号処理の動作の処理過程を説明するためのフローチャートである。 CABACのLPS幅を決定するためのLPS幅参照テーブルの一例の内容を示す図である。 CABACのコンテキストテーブルの一例の内容を示す図である。 CABACの状態更新テーブルの一例の内容を示す図である。 CABACの量子化係数の二値化テーブルの一例を示す図である。 従来の算術復号装置一例の構成を示すブロック図である。 従来の算術復号装置の他の例の構成を示すブロック図である。 図13の算術復号装置の動作を説明するためのフローチャートである。
符号の説明
101 ビットストリーム入力端子
102 コンテキストインデックス入力端子
103 復号ビット系列バッファ
104 領域選択部
105 復号ビット系列更新/正規化部
106 コンテキストテーブル
107 LPS幅テーブル
108 2ビットLPS幅テーブル
109 境界テーブル
110 2ビット復号判定部
111 領域分割部
112 2ビット領域分割部
113 領域格納部
114 領域幅正規化部
115 状態更新テーブル
116 復号ビット出力端子
117 復号ビット数出力端子
1001 正規化閾値
1002 領域
1003 復号ビット系列
1004 LPS領域
1005 MPS領域
1006 復号ビット系列
1007 新領域
1008 復号ビット系列
1009 正規化後領域
1010 正規化後復号系列

Claims (9)

  1. 入力される復号すべきビット系列の文脈に応じ、符号化された二値のシンボルの発生確率の高い方の優勢シンボルと前記発生確率の低い方の劣勢シンボルとのうち、前記劣勢シンボルの領域幅を随時変動させて復号を行うマルチコンテキスト型の算術復号方法において、
    前記復号すべきビット系列のある時点の復号に使用する文脈から、複数ビット先の文脈を算出する第1のステップと、
    前記第1のステップにより算出した前記複数ビット先の文脈により、前記復号すべきビット系列の複数ビットの一括復号と、前記復号すべきビット系列の1ビット毎の逐次復号とのうち一方の復号を選択する第2のステップと、
    前記第2のステップにより選択された前記一括復号又は逐次復号で復号したビット数を外部に伝送する第3のステップと
    を含むことを特徴とする算術復号方法。
  2. 前記第1のステップは、予め作成された第1及び第2のテーブルを参照して前記複数ビット先の文脈を算出するステップであり、
    前記第1のテーブルは、前記復号すべきビット系列のある時点の復号に使用する文脈から算出したシンボルの発生確率を示す状態変数と、復号装置の内部状態を示す領域幅から算出した領域幅インデックスとをインデックスとして参照されることにより、複数ビット先の前記劣勢シンボルの領域幅のすべての可能性を算出するための複数ビットLPS幅テーブルであり、
    前記第2のテーブルは、前記状態変数と前記領域幅インデックスとをインデックスとして参照されることにより、前記複数ビットLPS幅テーブルが示す複数ビット先の前記劣勢シンボルの領域幅のうち正しい領域幅を算出するために、前記劣勢シンボルの領域幅と前記優勢シンボルの領域幅との境界値を算出するための境界テーブルであることを特徴とする請求項1記載の算術復号方法。
  3. 前記一括復号中に、前記劣勢シンボルの領域幅又は前記優勢シンボルの領域幅を所定値と比較し、前記所定値を下回ったことを示す比較結果が得られたときに、その比較結果に応じたビット数分の正規化処理を行わせる正規化要求を発生する第4のステップと、
    前記第4のステップによる前記正規化要求を受信したときは、前記第4のステップで取得した復号後の領域幅を、前記正規化要求で示されたビット数分左シフト操作する正規化処理を行い、その正規化後の領域幅を前記復号を行うために出力する第5のステップと
    を更に含むことを特徴とする請求項1又は2記載の算術復号方法。
  4. 入力される復号すべきビット系列の文脈に応じ、符号化された二値のシンボルの発生確率の高い方の優勢シンボルと前記発生確率の低い方の劣勢シンボルとのうち、前記劣勢シンボルの領域幅を随時変動させて復号を行うマルチコンテキスト型の算術復号装置において、
    前記復号すべきビット系列の複数ビットの一括復号を行う第1の復号手段と、
    前記復号すべきビット系列の1ビット毎の逐次復号を行う第2の復号手段と、
    前記復号すべきビット系列のある時点の復号に使用する文脈から、複数ビット先の文脈を算出する文脈計算手段と、
    前記文脈計算手段により算出した前記複数ビット先の文脈により、前記第1の復号手段と前記第2の復号手段の一方の出力信号を選択するように切り替える復号手段切替手段と、
    前記復号手段切替手段により選択された前記第1又は第2の復号手段が復号したビット数を外部に伝送するための復号ビット数伝送手段と
    を有することを特徴とする算術復号装置。
  5. 前記文脈計算手段は、予め作成された第1及び第2のテーブルを参照して前記複数ビット先の文脈を算出する手段であり、
    前記第1のテーブルは、前記復号すべきビット系列のある時点の復号に使用する文脈から算出したシンボルの発生確率を示す状態変数と、復号装置の内部状態を示す領域幅から算出した領域幅インデックスとをインデックスとして参照されることにより、複数ビット先の前記劣勢シンボルの領域幅のすべての可能性を算出するための複数ビットLPS幅テーブルであり、
    前記第2のテーブルは、前記状態変数と前記領域幅インデックスとをインデックスとして参照されることにより、前記複数ビットLPS幅テーブルが示す複数ビット先の前記劣勢シンボルの領域幅のうち正しい領域幅を算出するために、前記劣勢シンボルの領域幅と前記優勢シンボルの領域幅との境界値を算出するための境界テーブルであることを特徴とする請求項4記載の算術復号装置。
  6. 前記第1の復号手段による前記一括復号中に、前記劣勢シンボルの領域幅又は前記優勢シンボルの領域幅を所定値と比較し、前記所定値を下回ったことを示す比較結果が得られたときに、その比較結果に応じたビット数分の正規化処理を行わせる正規化要求を発生する正規化要求発生手段と、
    前記正規化要求発生手段より前記正規化要求を受信したときは、前記正規化要求発生手段より取得した復号後の領域幅を、前記正規化要求で示されたビット数分左シフト操作する正規化処理を行い、その正規化後の領域幅を前記第1及び第2の復号手段へ出力する正規化手段と
    を更に有することを特徴とする請求項4又は5記載の算術復号装置。
  7. 入力される復号すべきビット系列の文脈に応じ、符号化された二値のシンボルの発生確率の高い方の優勢シンボルと前記発生確率の低い方の劣勢シンボルとのうち、前記劣勢シンボルの領域幅を随時変動させてマルチコンテキスト型の算術復号をコンピュータに行わせる算術復号プログラムであって、
    前記コンピュータを、
    前記復号すべきビット系列の複数ビットの一括復号を行う第1の復号手段と、
    前記復号すべきビット系列の1ビット毎の逐次復号を行う第2の復号手段と、
    前記復号すべきビット系列のある時点の復号に使用する文脈から、複数ビット先の文脈を算出する文脈計算手段と、
    前記文脈計算手段により算出した前記複数ビット先の文脈により、前記第1の復号手段と前記第2の復号手段の一方の出力信号を選択するように切り替える復号手段切替手段と、
    前記復号手段切替手段により選択された前記第1又は第2の復号手段が復号したビット数を外部に伝送するための復号ビット数伝送手段と
    して機能させることを特徴とする算術復号プログラム。
  8. 前記文脈計算手段は、予め作成された第1及び第2のテーブルを参照して前記複数ビット先の文脈を算出する手段であり、
    前記第1のテーブルは、前記復号すべきビット系列のある時点の復号に使用する文脈から算出したシンボルの発生確率を示す状態変数と、復号装置の内部状態を示す領域幅から算出した領域幅インデックスとをインデックスとして参照されることにより、複数ビット先の前記劣勢シンボルの領域幅のすべての可能性を算出するための複数ビットLPS幅テーブルであり、
    前記第2のテーブルは、前記状態変数と前記領域幅インデックスとをインデックスとして参照されることにより、前記複数ビットLPS幅テーブルが示す複数ビット先の前記劣勢シンボルの領域幅のうち正しい領域幅を算出するために、前記劣勢シンボルの領域幅と前記優勢シンボルの領域幅との境界値を算出するための境界テーブルであることを特徴とする請求項7記載の算術復号プログラム。
  9. 前記第1の復号手段による前記一括復号中に、前記劣勢シンボルの領域幅又は前記優勢シンボルの領域幅を所定値と比較し、前記所定値を下回ったことを示す比較結果が得られたときに、その比較結果に応じたビット数分の正規化処理を行わせる正規化要求を発生する正規化要求発生手段と、
    前記正規化要求発生手段より前記正規化要求を受信したときは、前記正規化要求発生手段より取得した復号後の領域幅を、前記正規化要求で示されたビット数分左シフト操作する正規化処理を行い、その正規化後の領域幅を前記第1及び第2の復号手段へ出力する正規化手段と
    を更に有することを特徴とする請求項7又は8記載の算術復号プログラム。
JP2007155880A 2007-06-13 2007-06-13 算術復号方法、算術復号装置及び算術復号プログラム Pending JP2008311803A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007155880A JP2008311803A (ja) 2007-06-13 2007-06-13 算術復号方法、算術復号装置及び算術復号プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007155880A JP2008311803A (ja) 2007-06-13 2007-06-13 算術復号方法、算術復号装置及び算術復号プログラム

Publications (1)

Publication Number Publication Date
JP2008311803A true JP2008311803A (ja) 2008-12-25

Family

ID=40239041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007155880A Pending JP2008311803A (ja) 2007-06-13 2007-06-13 算術復号方法、算術復号装置及び算術復号プログラム

Country Status (1)

Country Link
JP (1) JP2008311803A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012105267A1 (ja) * 2011-02-03 2012-08-09 パナソニック株式会社 画像符号化方法
WO2013001795A1 (ja) * 2011-06-29 2013-01-03 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、および画像復号装置
WO2013046504A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 算術復号装置、画像復号装置、および算術復号方法
US8525708B2 (en) 2011-12-15 2013-09-03 Kabushiki Kaisha Toshiba Decoding device and coding method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012105267A1 (ja) * 2011-02-03 2012-08-09 パナソニック株式会社 画像符号化方法
WO2013001795A1 (ja) * 2011-06-29 2013-01-03 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、および画像復号装置
WO2013046504A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 算術復号装置、画像復号装置、および算術復号方法
US20140205010A1 (en) * 2011-09-29 2014-07-24 Panasonic Corporation Arithmetic decoding device, image decoding apparatus 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
US8525708B2 (en) 2011-12-15 2013-09-03 Kabushiki Kaisha Toshiba Decoding device and coding method

Similar Documents

Publication Publication Date Title
KR102160647B1 (ko) 움직임 벡터 차분값의 엔트로피 코딩
US8018996B2 (en) Arithmetic decoding apparatus and method
JP4540585B2 (ja) 符号化装置及び復号化装置
JP4295356B1 (ja) 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
US7365660B2 (en) Method and device for decoding syntax element in CABAC decoder
KR101208233B1 (ko) 중간 형식으로 변환하는 2단계 산술 복호
JP4717780B2 (ja) 符号化装置及びその制御方法
US9819358B2 (en) Entropy encoding based on observed frequency
JP2007166039A (ja) 画像符号化装置
KR20060012093A (ko) 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
EP2362658A1 (en) Encoding and decoding methods and devices employing dual codesets
DK3079261T3 (en) METHOD AND APPARATUS FOR ARITHMETIC DECODATION
JP5231243B2 (ja) 符号化装置及び符号化方法
JP2008311803A (ja) 算術復号方法、算術復号装置及び算術復号プログラム
KR20060038189A (ko) 컨텍스트 기반 적응형 이진 산술 복부호화 방법 및 장치
US11234023B2 (en) Features of range asymmetric number system encoding and decoding
JP5632328B2 (ja) 符号量予測装置及びプログラム
Kim et al. Parallel decoding of context-based adaptive binary arithmetic codes based on most probable symbol prediction
EP2362547B1 (en) Encoding and decoding methods and devices using a secondary codeword indicator
JP4936574B2 (ja) 符号化装置及びその制御方法
JP6707045B2 (ja) 二値算術復号器および二値算術復号装置
KR102109768B1 (ko) Uhd 영상의 고속 처리를 위한 cabac 이진 산술 부호화기
JP2008131526A (ja) 動画像符号化装置及び動画像符号化プログラム
JP2010166170A (ja) 画像符号化装置、画像復号化装置、画像符号化方法及び画像復号化方法
JP2008219648A (ja) 算術符号化装置