(57)【要約】【課題】ＣＡＢＡＣ復号処理の高速化および高効率化を実現する。【解決手段】二値算術復号装置１であって、コンテキスト変数と、レンジ長と、オフセットとを用いて、符号が劣勢確率符号か優勢確率符号かを判定するLPS/MPS判定部１３と、前記レンジ長および前記オフセットに対して再正規化処理を行う再正規化処理部と、判定結果を用いて前記符号の前記二値データを導出するとともに、判定結果に応じてコンテキスト変数を更新するコンテキスト変数計算部とを備え、再正規化処理部１５は、LPS/MPS判定部１３の判定処理と並行して、符号が劣勢確率符号であるとみなして再正規化処理を行う第１の再正規化部１５１と、LPS/MPS判定部１３の判定処理と並行して、符号が優勢確率符号であるとみなして再正規化処理を行う第２の再正規化部１５２と、判定結果に応じて第１の再正規化部１５１の出力または第２の再正規化部１５２の出力を選択する選択部１５３とを備える。【選択図】図１
2018152816.tif 000002
【特許請求の範囲】
【請求項１】
入力された符号化データを二値データに復号して出力する二値算術復号処理部と、
前記二値算術復号処理部が出力した前記二値データを多値データに多値化して出力する多値化部と、
復号された前記二値データと前記多値データとに基づいてコンテキストインデックスを導出し、前記コンテキストインデックスを前記二値算術復号処理部に出力するコンテキストインデックス計算部と
を備える二値算術復号器であって、
前記二値算術復号処理部は、
前記コンテキストインデックス計算部から出力された前記コンテキストインデックスに基づき、符号生起確率を表す第１の確率状態インデックスと、生起確率の高い第１の優勢確率符号の値とで構成される第１のコンテキスト変数を導出して保持するコンテキスト変数保持部と、
生起確率の実数区間における全体区間長を示すレンジ長と、前記レンジ長における現在の位置を示すオフセットとを保持するレンジ長／オフセット変数保持部と、
前記第１の確率状態インデックスと、前記レンジ長と、前記オフセットとを用いて、第１の二値データの符号が劣勢確率符号か優勢確率符号かを判定し、判定結果を出力する第１のLPS/MPS判定部と、
前記レンジ長および前記オフセットに対して再正規化処理を行う第１の再正規化処理部と、
前記第１のコンテキスト変数と、前記判定結果とを用いて、前記第１の二値データを導出して前記多値化部に出力するコンテキスト変数計算部とを備え、
前記第１の再正規化処理部は、
前記第１のLPS/MPS判定部の判定処理と並行して、前記第１の二値データの符号が前記劣勢確率符号であるとみなして前記レンジ長および前記オフセットを更新し、更新後のレンジ長が所定の区間長以上になるまで、前記更新後の前記レンジ長および前記オフセットに対して第１の再正規化処理を行うとともに、
前記第１のLPS/MPS判定部の判定処理と並行して、前記第１の二値データの符号が前記優勢確率符号であるとみなして前記レンジ長および前記オフセットを更新し、更新後のレンジ長が所定の区間長以上になるまで、前記更新後の前記レンジ長および前記オフセットに対して第２の再正規化処理を行い、
前記判定結果に応じて、前記第１の再正規化処理による再正規化後の前記レンジ長および前記オフセット、あるいは前記第２の再正規化処理による再正規化後の前記レンジ長および前記オフセットのいずれかを選択し、レンジ長／オフセット変数保持部に出力すること
を特徴とする二値算術復号器。
【請求項２】
前記第１の再正規化処理部は、
前記第１の再正規化処理を行う第１の再正規化部と、
前記第２の再正規化処理を行う第２の再正規化部と、
前記第１のLPS/MPS判定部が出力した前記判定結果に応じて、前記第１の再正規化処理による前記再正規化後の前記レンジ長および前記オフセット、あるいは前記第２の再正規化処理による前記再正規化後の前記レンジ長および前記オフセットのいずれかを選択する選択部と、を備えること
を特徴とする請求項１に記載の二値算術復号器。
【請求項３】
前記コンテキスト変数保持部は、前記コンテキストインデックス計算部から出力された前記コンテキストインデックスに基づき、第２の確率状態インデックスと、第２の優勢確率符号の値とで構成される第２のコンテキスト変数を導出して保持し、
前記第２の確率状態インデックスと、前記第１の再正規化部により再正規化された前記レンジ長および前記オフセットとを用いて、前記第１の二値データに連続する第２の二値データの符号が前記劣勢確率符号か前記優勢確率符号かを判定し、判定結果を出力する第２のLPS/MPS判定部と、
前記第２の二値データの符号が前記劣勢確率符号であるとみなして、前記第１の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行うとともに、前記第２の二値データの符号が前記優勢確率符号であるとみなして、前記第１の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行う第２の再正規化処理部と、
前記第２の確率状態インデックスと、前記第２の再正規化部により再正規化された前記レンジ長および前記オフセットとを用いて、前記第２の二値データの符号が前記劣勢確率符号か前記優勢確率符号かを判定し、判定結果を出力する第３のLPS/MPS判定部と、
前記第２の二値データの符号が前記劣勢確率符号であるとみなして、前記第２の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行うとともに、前記第２の二値データの符号が前記優勢確率符号であるとみなして、前記第２の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行う第３の再正規化処理部と、をさらに備え、
前記コンテキスト変数計算部は、前記第１のLPS/MPS判定部の判定結果と、前記第２のLPS/MPS判定部の判定結果または前記第３のLPS/MPS判定部の判定結果とを用いて、前記第２の二値データを導出するとともに、前記第１のLPS/MPS判定部の判定結果と、前記第２のLPS/MPS判定部の判定結果または前記第３のLPS/MPS判定部の判定結果とに応じて、前記第２のコンテキスト変数を更新すること
を特徴とする請求項２記載の二値算術復号器。
【請求項４】
入力された符号化データを二値データに復号して出力する二値算術復号装置であって、
第１のコンテキスト変数と、生起確率の実数区間における全体区間長を示すレンジ長と、前記レンジ長における現在の位置を示すオフセットとを用いて、第１の二値データの符号が劣勢確率符号か優勢確率符号かを判定し、判定結果を出力する第１のLPS/MPS判定部と、
前記レンジ長および前記オフセットに対して再正規化処理を行う第１の再正規化処理部と、
前記判定結果を用いて前記第１の二値データを導出するとともに、前記判定結果に応じて前記第１のコンテキスト変数を更新するコンテキスト変数計算部とを備え、
前記第１の再正規化処理部は、
前記第１のLPS/MPS判定部の判定処理と並行して、第１の二値データの符号が前記劣勢確率符号であるとみなして再正規化処理を行う第１の再正規化部と、
前記第１のLPS/MPS判定部の判定処理と並行して、第１の二値データの符号が前記優勢確率符号であるとみなして再正規化処理を行う第２の再正規化部と、
前記判定結果に応じて前記第１の再正規化部による再正規化後のレンジ長およびオフセット、あるいは前記第２の再正規化部による再正規化後のレンジ長およびオフセットのいずれかを選択して出力する選択部と、を備えること
を特徴とする二値算術復号装置。
【請求項５】
第２のコンテキスト変数と、前記第１の再正規化部により再正規化された前記レンジ長および前記オフセットとを用いて、前記第１の二値データに連続する第２の二値データの符号が前記劣勢確率符号か前記優勢確率符号かを判定し、判定結果を出力する第２のLPS/MPS判定部と、
前記第２の二値データの符号が前記劣勢確率符号であるとみなして、前記第１の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行うとともに、前記第２の二値データの符号が前記優勢確率符号であるとみなして、前記第１の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行う第２の再正規化処理部と、
前記第２のコンテキスト変数と、前記第２の再正規化部により再正規化された前記レンジ長および前記オフセットとを用いて、前記第２の二値データの符号が前記劣勢確率符号か前記優勢確率符号かを判定し、判定結果を出力する第３のLPS/MPS判定部と、
前記第２の二値データの符号が前記劣勢確率符号であるとみなして、前記第２の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行うとともに、前記第２の二値データの符号が前記優勢確率符号であるとみなして、前記第２の再正規化部により再正規化された前記レンジ長および前記オフセットに対して再正規化処理を行う第３の再正規化処理部と、をさらに備え、
前記コンテキスト変数計算部は、前記第１のLPS/MPS判定部の判定結果と、前記第２のLPS/MPS判定部の判定結果または前記第３のLPS/MPS判定部の判定結果とを用いて、前記第２の二値データを導出するとともに、前記第１のLPS/MPS判定部の判定結果と、前記第２のLPS/MPS判定部の判定結果または前記第３のLPS/MPS判定部の判定結果とに応じて、前記第２のコンテキスト変数を更新すること
を特徴とする請求項４記載の二値算術復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテキスト適応型二値算術符号化により符号化された符号化データを復号する技術に関する。
【背景技術】
【０００２】
H.264/AVCやH.265/HEVCといった動画像符号化技術では、エントロピー符号化の一種であるコンテキスト適応型二値算術符号化（Context-Adaptive Binary Arithmetic Coding: CABAC）が用いられている（非特許文献１）。
【０００３】
符号化された映像を復号する復号装置には、CABACにより符号化されたデータを復号処理する二値算術復号器（CABAC復号器）が設けられている（特許文献１、２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１３０４０７号公報
【特許文献２】特表２０１１−５０１８９６号公報
【非特許文献】
【０００５】
【非特許文献１】Recommendation ITU-T H.264「Advanced video coding for generic audiovisual services」, Edition 8.0 (2013/4/13)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
符号化されたデータをより高速に復号処理するためには、ＣＡＢＡＣ復号処理も高速かつ効率的に行われる必要がある。特許文献１、２に記載の従来のＣＡＢＡＣ復号器は、入力された符号のLPS/MPS判定処理を行った後に再正規化処理を行う、というシーケンシャルな処理を行っていた。
【０００７】
再正規化処理は、場合によっては多数の再正規化処理ループを繰り返す処理を行う必要がある。繰り返される再正規化処理ループの回数は、入力された符号化データや復号する時点でのシンボル生起確率を示すインデックス、レンジ長などの値によって変動するが、多いときには７回も繰り返されることになる。そのため、再正規化処理に多くの処理時間を要する可能性があり、復号処理の高速化が困難となっていた。
【０００８】
本発明は上記の課題に鑑みてなされたものであって、本発明は、ＣＡＢＡＣ復号処理の高速化および高効率化を実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、入力された符号化データを二値データに復号して出力する二値算術復号処理部と、前記二値算術復号処理部が出力した前記二値データを多値データに多値化して出力する多値化部と、復号された前記二値データと前記多値データとに基づいてコンテキストインデックスを導出し、前記コンテキストインデックスを前記二値算術復号処理部に出力するコンテキストインデックス計算部とを備える二値算術復号器であって、前記二値算術復号処理部は、前記コンテキストインデックス計算部から出力された前記コンテキストインデックスに基づき、符号生起確率を表す第１の確率状態インデックスと、生起確率の高い第１の優勢確率符号の値とで構成される第１のコンテキスト変数を導出して保持するコンテキスト変数保持部と、生起確率の実数区間における全体区間長を示すレンジ長と、前記レンジ長における現在の位置を示すオフセットとを保持するレンジ長／オフセット変数保持部と、前記第１の確率状態インデックスと、前記レンジ長と、前記オフセットとを用いて、第１の二値データの符号が劣勢確率符号か優勢確率符号かを判定し、判定結果を出力する第１のLPS/MPS判定部と、前記レンジ長および前記オフセットに対して再正規化処理を行う第１の再正規化処理部と、前記第１のコンテキスト変数と、前記判定結果とを用いて、前記第１の二値データを導出して前記多値化部に出力するコンテキスト変数計算部とを備え、前記第１の再正規化処理部は、前記第１のLPS/MPS判定部の判定処理と並行して、前記第１の二値データの符号が前記劣勢確率符号であるとみなして前記レンジ長および前記オフセットを更新し、更新後のレンジ長が所定の区間長以上になるまで、前記更新後の前記レンジ長および前記オフセットに対して第１の再正規化処理を行うとともに、前記第１のLPS/MPS判定部の判定処理と並行して、前記第１の二値データの符号が前記優勢確率符号であるとみなして前記レンジ長および前記オフセットを更新し、更新後のレンジ長が所定の区間長以上になるまで、前記更新後の前記レンジ長および前記オフセットに対して第２の再正規化処理を行い、前記判定結果に応じて、前記第１の再正規化処理による再正規化後の前記レンジ長および前記オフセット、あるいは前記第２の再正規化処理による再正規化後の前記レンジ長および前記オフセットのいずれかを選択し、レンジ長／オフセット変数保持部に出力する。
【００１０】
本発明は、入力された符号化データを二値データに復号して出力する二値算術復号装置であって、第１のコンテキスト変数と、生起確率の実数区間における全体区間長を示すレンジ長と、前記レンジ長における現在の位置を示すオフセットとを用いて、第１の二値データの符号が劣勢確率符号か優勢確率符号かを判定し、判定結果を出力する第１のLPS/MPS判定部と、前記レンジ長および前記オフセットに対して再正規化処理を行う第１の再正規化処理部と、前記判定結果を用いて前記第１の二値データを導出するとともに、前記判定結果に応じて前記第１のコンテキスト変数を更新するコンテキスト変数計算部とを備え、前記第１の再正規化処理部は、前記第１のLPS/MPS判定部の判定処理と並行して、第１の二値データの符号が前記劣勢確率符号であるとみなして再正規化処理を行う第１の再正規化部と、前記第１のLPS/MPS判定部の判定処理と並行して、第１の二値データの符号が前記優勢確率符号であるとみなして再正規化処理を行う第２の再正規化部と、前記判定結果に応じて前記第１の再正規化部による再正規化後のレンジ長およびオフセット、あるいは前記第２の再正規化部による再正規化後のレンジ長およびオフセットのいずれかを選択して出力する選択部と、を備える。
【発明の効果】
【００１１】
本発明によれば、ＣＡＢＡＣ復号処理の高速化および高効率化を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係るＣＡＢＡＣ復号器の構成を示す図である。
【図２】LPS区間長テーブルの一例を示す図である。
【図３】pStateIdx遷移テーブルの一例を示す図である。
【図４】ＣＡＢＡＣ復号器の処理を示す処理フローである。
【図５】図４のステップS3の詳細な処理を説明する処理フローである。
【図６】図５のステップS3a-4LおよびS3a-4Mの詳細な処理を説明する処理フローである。
【図７】第２の実施形態に係るＣＡＢＡＣ復号器の構成を示す図である。
【図８】第２の実施形態の図４のステップS3の詳細な処理を説明する処理フローである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を、図面を用いて説明する。
【００１４】
＜第１の実施形態＞
（ＣＡＢＡＣ復号器の構成）
図１は、本発明の第１の実施形態に係るＣＡＢＡＣ復号器の構成を説明する図である。このＣＡＢＡＣ復号器は、二値算術復号処理部１、多値化部２およびコンテキストインデックス計算部３を備える。
【００１５】
二値算術復号処理部１は、入力された符号化データ（Bit Stream）を二値データ（Bin）に復号し、多値化部２に出力する。多値化部２は、二値算術復号処理部１が出力した二値データを多値データ（シンタックス要素SE: Syntax Element）に多値化して出力する。コンテキストインデックス計算部３は、以前に復号された二値データと、シンタックス要素とを参照してコンテキストインデックス（ctxIdx）を計算し、二値算術復号処理部１に供給する。二値算術復号処理部１は、１つのシンボルを復号する際、コンテキストインデックス計算部３から受け取ったctxIdxに基づいてコンテキスト変数context[ctxIdx]を導出する。そして、二値算術復号処理部１は、導出したcontext[ctxIdx]に基づいてシンボルをBinに復号する。
【００１６】
ここで、コンテキスト変数context[ctxIdx]は、シンボル生起確率を表す確率状態インデックスpStateIdxと、生起確率の高い優勢確率シンボル（MPS: Most Probable Symbol）を表すvalMPSとで構成される。pStateIdxは、このコンテキストにおける劣勢確率シンボル（LPS: Least Probable Symbol）の生起確率の推定値を、予め定義された０から６３までの確率状態によって表す。なお、LPSとMPSの値の関係は、valLPS=1-valMPSである。ここで、valMPSとvalLPSは、いずれも0か1の値である。
【００１７】
図１に示す二値算術復号処理部１は、コンテキスト変数保持部１１と、レンジ長／オフセット変数保持部１２と、LPS/MPS判定部１３と、コンテキスト変数計算部１４と、再正規化処理部１５とを備える。
【００１８】
コンテキスト変数保持部１１は、コンテキストインデックスctxIdxからコンテキスト変数context[ctxIdx]を導出するためのコンテキスト変数変換テーブル備えるとともに、復号に用いるcontext[ctxIdx]を構成するpStateIdxおよびvalMPSの値を保持する。
【００１９】
レンジ長／オフセット変数保持部１２は、復号しようとするBinのシンボルがLPSかMPSかを判定するために用いるレンジ長CurrRangeとオフセットOffsetの値を保持する。なお、レンジ長CurrRangeは、生起確率の実数区間（０から１）における現在の全体区間長を示しており、オフセット（Offset）は、そのレンジ長内における現在の位置を示している。
【００２０】
LPS/MPS判定部１３は、図２に示すLPS区間長テーブルを備え、コンテキスト変数保持部１１が保持しているpStateIdx、レンジ長／オフセット変数保持部１２が保持しているCurrRangeおよびOffsetを用いて、復号しようとするBinのシンボルがLPSかMPSかを判定する。図２に示すLPS区間長テーブルは、CurrRangeの全９ビット[8:0]のうち[7:6]の２ビットqRangeIdx とpStateIdxとから、LPS区間長を導出するためのテーブルである。
【００２１】
LPS/MPS判定部１３は、LPS/MPS判定を行うに際し、LPS区間長テーブルを参照し、取り込んだCurrRangeの全９ビット[8:0]のうち[7:6]の２ビットを示すqRangeIdxとpStateIdxとから、LPS区間長rLPSを導出する。また、LPS/MPS判定部１３は、現時点のレンジ長からLPS区間長を減算（CurrRange-rLPS）して、MPS区間長rMPSを算出する。
【００２２】
本実施形態では、LPS/MPS判定部１３は、LPS/MPS判定に係る判定結果、LPS区間長rLPS、MPS区間長rMPSおよびOffsetを、再正規化処理部１５に出力する。LPS/MPS判定部１３は、LPS/MPS判定結果として、例えば、復号しようとするシンボルがLPSであった場合にビット１を、復号しようとするシンボルがMPSであった場合にビット０を出力する。また、LPS/MPS判定部１３は、LPS/MPS判定結果を、コンテキスト変数計算部１４に出力する。
【００２３】
コンテキスト変数計算部１４は、LPS/MPS判定部１３が出力するLPS/MPS判定結果から二値データBinを導出し、多値化部２へ出力する。コンテキスト変数計算部１４は、図３に示すpStateIdx遷移テーブルを備え、当該pStateIdx遷移テーブルおよびLPS/MPS判定結果に応じて、コンテキスト変数保持部１１が保持しているコンテキスト変数（pStateIdx、valMPS）を更新する。pStateIdx遷移テーブルは、LPSが発生した場合に遷移すべきpStateIdxであるtransIdxLpsと、MPSが発生した場合に遷移すべきpStateIdxであるtransIdxMpsを導出するためのテーブルである。
【００２４】
再正規化処理部１５は、CurrRangeおよびOffsetに対して再正規化処理を行う。すなわち、再正規化処理部１５は、LPS/MPS判定に用いるCurrRangeが所定の区間長以上に維持されるように（CurrRangeが所定の区間長以上になるまで）、CurrRangeおよびOffsetを大きくする。再正規化処理部１５は、Offsetを２倍（１ビット左シフト）するに伴い、符号化データを１ビットずつ取り込む。
【００２５】
本実施形態の再正規化処理部１５は、事前LPS再正規化部１５１、事前MPS再正規化部１５２および選択部１５３を備える。事前LPS再正規化部１５１および事前MPS再正規化部１５２は、LPS/MPS判定部１３が出力したrLPS、rMPSおよびOffsetをそれぞれ取り込む。なお、Offsetは、LPS/MPS判定部１３からでなく、レンジ長／オフセット変数保持部１２から直接取り込むようにしてもよい。また、選択部１５３は、LPS/MPS判定部１３が出力したLPS/MPS判定結果を取り込む。
【００２６】
なお、図２に示したLPS区間長テーブルの全体は、例えば非特許文献１のTable 9-44（Specification of rangeTabLPS depending on pStateIdx and qCodIRangeIdx）に開示されている。また、図３に示したpStateIdx遷移テーブルの全体は、同文献のTable 9-45（State transition table）に開示されている。
【００２７】
（ＣＡＢＡＣ復号器の動作）
図４は、図１に示すＣＡＢＡＣ復号器の処理を示す処理フローである。
【００２８】
[S1]まず、コンテキストインデックス計算部３は、シンタックス要素SEの先頭のコンテキストインデックスctxIdxを算出する。
【００２９】
[S2]二値算術復号処理部１のコンテキスト変数保持部１１は、コンテキストインデックス計算部３からctxIdxを取得し、コンテキスト変数変換テーブルを参照してコンテキスト変数context[ctxIdx]を導出し、当該コンテキスト変数であるpStateIdxとvalMPSの値を保持する。
【００３０】
[S3]二値算術復号処理部１は、導出したcontext[ctxIdx]に基づいて、入力された符号化データを二値データBinに復号する。そして、二値算術復号処理部１は、Binの復号結果に基づいてcontext[ctxIdx]を更新し、更新したcontext[ctxIdx]を保持する。二値算術復号処理部１が行うステップS3の処理については、後ほど詳しく説明する。
【００３１】
[S4]多値化部２は、可変長符号表を参照して、シンタックス要素SEの最後か否かを判定する。[S5]SEの最後ではないと判断された場合、コンテキストインデックス計算部３は次のctxIdxを算出し、ステップS2の処理へ戻る。[S6]SEの最後であると判断された場合、多値化部２はそのSEを多値データとして出力する。
【００３２】
図５は、図４におけるステップS3の詳細な処理を説明する図であり、図１における二値算術復号処理部１の処理フローを説明する図でもある。
【００３３】
［S3a-1］LPS/MPS判定部１３は、レンジ長／オフセット変数保持部１２に保持されている現時点のレンジ長CurrRangeおよびオフセットOffsetを取り込むとともに、コンテキスト変数保持部１１に保持されているpStateIdxを取り込む。LPS/MPS判定部１３は、図２に示すLPS区間長テーブルを参照し、取り込んだCurrRangeの全９ビット[8:0]のうち[7:6]の２ビットを示すqRangeIdxとpStateIdxとから、LPS区間長rLPSを導出する。そして、現時点のレンジ長からLPS区間長を減算（CurrRange-rLPS）して、MPS区間長rMPSを算出する。そして、LPS/MPS判定部１３は、rLPS、rMPSおよびOffsetを再正規化処理部１５に出力する。
【００３４】
［S3a-2］LPS/MPS判定部１３は、MPS区間長rMPSとOffsetの大小関係を比較し、復号しょうとするBinのシンボルがLPSかMPSかの判定処理を行う。rMPSがOffsetより大きい場合、LPS/MPS判定部１３はBinのシンボルがMPSであると判定し、LPS/MPS判定結果としてビット０を再正規化処理部１５の選択部１５３に出力する。一方、rMPSがOffsetより小さいかあるいは等しい場合、LPS/MPS判定部１３はBinのシンボルがLPSであると判定し、LPS/MPS判定結果としてビット１を再正規化処理部１５の選択部１５３に出力する。
【００３５】
［S3a-3L〜S3a-4L］ステップ3a-3Lからステップ3a-4Lの処理は、ステップS3a-2とは独立かつ並列に処理される。ステップ3a-3Lから3a-4Lは、入力された符号がLPSであるものと仮定して再正規化処理を行う処理である。
【００３６】
［S3a-3L］事前LPS再正規化部１５１は、ステップS3a-1でLPS/MPS判定部１３が出力したrLPSの値を取り込んで、更新したレンジ長CurrRange’として設定する。また、事前LPS再正規化部１５１は、ステップS3a-1でLPS/MPS判定部１３が出力したrMPSおよびOffsetの値を取り込んで、OffsetからrMPSを減算した値（Offset-rMPS）を更新したオフセットOffset’として設定する。
【００３７】
［S3a-4L］事前LPS再正規化部１５１は、ステップ3a-3Lで設定されたCurrRange’およびOffset’の値を用いて再正規化処理を行い、再正規化したレンジ長CurrRange’’と再正規化したオフセットOffset’’を算出する。再正規化処理の具体的な処理については、後述する。
【００３８】
［S3a-3M〜S3a-4M］ステップ3a-3Mからステップ3a-4Mの処理は、ステップS3a-2とは独立かつ並列に処理され、また、ステップS3a-3LからステップS3a-4Lの処理とも独立かつ並列に処理される。ステップ3a-3Mから3a-4Mは、入力された符号がMPSであるものと仮定して再正規化処理を行う処理である。
【００３９】
［S3a-3M］事前MPS再正規化部１５２は、ステップS3a-1でLPS/MPS判定部１３が出力したrMPSの値を取り込んで、更新したレンジ長CurrRange’として設定する。また、事前MPS再正規化部１５２は、ステップS3a-1でLPS/MPS判定部１３が出力したOffsetの値を、更新したオフセットOffset’として設定する。
【００４０】
［S3a-3M］事前MPS再正規化部１５２は、ステップ3a-3Mで設定されたCurrRange’およびOffset’の値を用いて再正規化処理を行い、再正規化したレンジ長CurrRange’’と再正規化したオフセットOffset’’を算出する。再正規化処理の具体的な処理については、後述する。
【００４１】
［S3a-5］ステップS3a-2でBinのシンボルがLPSと判定された場合、コンテキスト変数計算部１４は、LPSに対応するシンボルを二値データBinとして出力する。一方、ステップS3a-2で入力シンボルがMPSと判定された場合、コンテキスト変数計算部１４は、MPSに対応するシンボルを二値データBinとして出力する。
【００４２】
［S3a-6］ステップS3a-2でBinのシンボルがLPSと判定された場合、コンテキスト変数計算部１４は、図３に示すpStateIdx遷移テーブルを参照し、コンテキスト変数保持部１１から取り込んだpStateIdxを用いて、LPSに対応するシンボルが発生した場合に遷移すべきpStateIdxであるtransIdxLpsを導出する。そして、コンテキスト変数保持部１１に保持されるpStateIdxの値をtransIdxLpsに更新する。更新後のpStateIdxは、pStateIdx’と表すこととする。
【００４３】
また、コンテキスト変数計算部１４は、BinのシンボルがLPSと判定された場合で、pStateIdxが０の場合は、コンテキスト変数保持部１１に保持されるvalMPSの値をビット反転した値に更新する。更新後のvalMPSはvalMPS'と表すこととする。なお、コンテキスト変数計算部１４は、BinのシンボルがLPSと判定された場合で、pStateIdxが０以外の場合は、valMPS をvalMPS'として設定する。
【００４４】
一方、ステップS3a-2でBinのシンボルがMPSと判定された場合、コンテキスト変数計算部１４は、図３に示すpStateIdx遷移テーブルを参照し、コンテキスト変数保持部１１から取り込んだpStateIdxを用いて、MPSに対応するシンボルが発生した場合に遷移すべきpStateIdxであるtransIdxMpsを導出する。そして、コンテキスト変数保持部１１に保持されるpStateIdxの値をtransIdxMpsに更新する。なお、更新後のpStateIdxは、やはりpStateIdx’と表すこととする。また、コンテキスト変数計算部１４は、BinのシンボルがMPSと判定された場合は、valMPS をvalMPS'として設定する。
【００４５】
［S3a-7］選択部１５３は、ステップS3-2でLPS/MPS判定部１３が出力したLPS/MPS判定結果から、復号しようとするBinのシンボルがLPSかMPSかを判定する。
【００４６】
［S3a-8L］BinのシンボルがLPSと判定された場合（ステップS3a-7のyes）、選択部１５３は、ステップS3a-4Lで算出された再正規化したレンジ長CurrRange’’および再正規化したオフセットOffset’’を、レンジ長／オフセット変数保持部１２に出力して書き戻す（更新する）。
【００４７】
［S3a-8M］BinのシンボルがMPSと判定された場合（ステップS3a-7のno）、選択部１５３は、ステップS3a-4Mで算出された再正規化したレンジ長CurrRange’’および再正規化したオフセットOffset’’を、レンジ長／オフセット変数保持部に出力して書き戻す。
【００４８】
図６は、図５におけるステップS3a-4LおよびS3a-4Mの詳細な処理を説明する処理フロー図である。
【００４９】
[S3a-4-1] 事前LPS再正規化部１５１および事前MPS再正規化部１５２は、図５の［S3a-3L］または［S3a-3M］で更新したCurrRange’が0x100未満（「0x」は、それに続く数字が16進数であることを示している。）か否かを判定する。
【００５０】
[S3a-4-2]CurrRange’ ≧ 0x100の場合（S3a-4-1のno）、事前LPS再正規化部１５１および事前MPS再正規化部１５２は、現時点でのCurrRange’を再正規化したレンジ長CurrRange’’として設定する。また、事前LPS再正規化部１５１および事前MPS再正規化部１５２は、現時点でのOffset’を再正規化したオフセットOffset’’として設定する。すなわち、CurrRange’が0x100以上であった場合は、再正規化処理を行わず、CurrRange’を再正規化したレンジ長CurrRange’’として、Offset’を再正規化したオフセットOffset’’として、選択部１５３に出力し、再正規化処理を終了する。
【００５１】
[S3a-4-3]CurrRange’ ＜ 0x100の場合（S3a-4-1のyes）、事前LPS再正規化部１５１および事前MPS再正規化部１５２は、CurrRange’を１ビット左シフト（２倍する処理に相当）して、CurrRange’を更新する。
【００５２】
[S3a-4-4]また、事前LPS再正規化部１５１および事前MPS再正規化部１５２は、Offset’を１ビット左シフトするとともに、その最下位ビット（LSB：least significant bit）に符号化データを１ビットだけ入力した値で、Offset’を更新する。そして、ステップS3a-4-1の判定処理に戻る。
【００５３】
なお、図６に示すように、再正規化処理部１５は、CurrRange’が0x100以上となるまで、ステップS3a-4-3とS3a-4-4からなる処理ループ（以下、再正規化処理ループとも言う。）を繰り返す処理を行う。繰り返される再正規化処理ループの回数は、入力された符号化データや復号する時点でのpStateIdx、レンジ長CurrRangeなどの値によって変動するが、多いときには７回も繰り返されることになる。例えば、pStateIdx=63の非適応確率状態の場合は、図２からLPS区間長は2となり、再正規化処理ループの回数は７回となる。一方、pStateIdxが0〜62の場合（適応確率状態の場合）は、図２からLPS区間長の最小値は6となり、このときの再正規化処理ループの回数は６回となる。このように、再正規化処理は、多くの処理時間を要する場合がある。
【００５４】
以上説明した第１の本実施形態に係る二値算術復号処理部１の再正規化処理部１５は、事前LPS再正規化部１５１、事前MPS再正規化部１５２および選択部１５３を備える。事前LPS再正規化部１５２は、LPS/MPS判定部１３が行うLPS/MPS判定処理と並行して、BinのシンボルはLPSであるとみなして第１の再正規化処理を行う。また、事前MPS再正規化部１５２は、BinのシンボルはMPSであるとみなして第２の再正規化処理を行う。なお、第１の再正規化処理と第２の再正規化処理は、それぞれ並行して行われる。
【００５５】
そして、LPS/MPS判定部１３がLPS/MPS判定処理を完了した後、選択部１５３がLPS/MPS判定結果に応じて、事前LPS再正規化部１５１からの出力（CurrRange’’、 Offset’’）、または、事前MPS再正規化部１５２からの出力（CurrRange’’、 Offset’’）のいずれかを選択して、レンジ長／オフセット変数保持部１２に出力し、現時点のレンジ長CurrRangeおよびオフセットOffsetとして更新する。
【００５６】
これにより、本実施形態では、多くの処理時間を要する可能性がある再正規化処理を、LPS/MPS判定処理の終了を待つことなく開始することができるようになり、もってＣＡＢＡＣ復号処理の高速化および高効率化を実現することができる。すなわち、シーケンシャルにLPS/MPS判定処理が完了した後に再正規化処理を行う従来のＣＡＢＡＣ復号器と比較して、本実施形態ではＣＡＢＡＣ復号処理を高速化および高効率化することができる。
【００５７】
＜第２の実施形態＞
本発明の第２の実施形態に係るＣＡＢＡＣ復号器は、連続した複数の二値データBin1, Bin2を同時に復号して、多値データ（シンタックス要素SE）に多値化して出力するものである。第２の実施形態に係るＣＡＢＡＣ復号器は、第１の実施形態で開示した構成と同様に、二値算術復号処理部、多値化部およびコンテキストインデックス計算部を備える。
【００５８】
第２の実施形態のＣＡＢＡＣ復号器と、第１の実施形態で開示したＣＡＢＡＣ復号器との相違点は、二値算術復号処理部の構成にある。以下、図面を用いて、第２の実施形態に係るＣＡＢＡＣ復号器が備える二値算術復号処理部の構成について詳述する。
【００５９】
（二値算術復号処理部の構成）
図７は、本発明の第２の実施形態に係るＣＡＢＡＣ復号器が備える二値算術復号処理部１Ａの構成を説明する図である。図７の二値算術復号処理部１Ａは、LPS/MPS判定部(1)１３Ａ、LPM/MPS判定部(2L)１３Ｌ、LPM/MPS判定部(2M)１３Ｌ、再正規化処理部(1)１５Ａ、再正規化処理部(2L)１５Ｌ、再正規化処理部(2M)１５Ｍ、コンテキスト変数計算部１４、コンテキスト変数保持部１１およびレンジ長／オフセット変数保持部１２を備える。
【００６０】
図７におけるレンジ長／オフセット変数保持部１２、コンテキスト変数保持部１１、LPS/MPS判定部(1)１３Ａ、コンテキスト変数計算部１４の構成、処理および接続形態は、第１の実施形態で説明した図１に記載のレンジ長／オフセット変数保持部１２、コンテキスト変数保持部１１、LPS/MPS判定部１３、コンテキスト変数計算部１４とほぼ同様の構成、処理および接続形態である。
【００６１】
ただし、本実施形態のコンテキスト変数保持部１１は、コンテキストインデックス計算部（不図示）が出力した２つの連続したコンテキストインデックスctxIdx1, ctxIdx2が入力され、それぞれに対応するpStateIdx1およびvalMPS1、pStateIdx2およびvalMPS2の値を保持する点で相違する。
【００６２】
また、LPS/MPS判定部(1)１３Ａは、コンテキスト変数保持部１１に保持されているpStateIdx1を用いて、復号しようとする第１の二値データBin1のシンボルがLPSかMPSかの判定処理（LPS/MPS判定）を行う。
【００６３】
また、コンテキスト変数計算部１４は、LPS/MPS判定部(1)１３Ａの判定結果と、LPS/MPS判定部(2L)１３Ｌの判定結果またはLPS/MPS判定部(2M)１３Ｍの判定結果とを用いて、連続した２つの二値データBin1, Bin2を導出するとともに、LPS/MPS判定部(1)１３Ａの判定結果と、LPS/MPS判定部(2L)１３Ｌの判定結果またはLPS/MPS判定部(2M)１３Ｍの判定結果とに応じて、pStateIdx2およびvalMPS2を更新する。
【００６４】
図７における再正規化処理部(1)１５Ａは、図１における再正規化処理部１５と同様に、事前LPS再正規化部(1)１５１、事前MPS再正規化部(1)１５２および選択部(1)１５３を備えるが、これらの接続形態が異なる。具体的には、事前LPS再正規化部(1)１５１の出力（再正規化したレンジ長およびオフセット）は、後述するLPS/MPS判定部(2L)１３Ｌに入力されるように接続される点で、図１の再正規化処理部１５と相違する。また、事前MPS再正規化部(1)１５２の出力（再正規化したレンジ長およびオフセット）は、後述するLPS/MPS判定部(2M)１３Ｍに入力されるように接続される点で、図１の再正規化処理部１５と相違する。さらに、選択部(1)１５３は、後述する再正規化処理部(2L)１５Ｌの出力（再正規化したレンジ長およびオフセット）と、後述する再正規化処理部(2M)１５Ｍの出力（再正規化したレンジ長およびオフセット）とが入力されるように接続される点で、図１の再正規化処理部１５と相違する。
【００６５】
図７におけるLPS/MPS判定部(2L)１３ＬおよびLPS/MPS判定部(2M)１３Ｍは、図１に示すLPS/MPS判定部１３（あるいは、LPS/MPS判定部(1)１３Ａ）と同様の構成であり、同様の処理を行う。具体的には、LPS/MPS判定部(2L)１３Ｌは、コンテキスト変数のpStateIdx2と、事前LPS再正規化部(1)１５１により再正規化されたレンジ長およびオフセットとを用いて、Bin1に引き続く第２の二値データBin2がLPSかMPSかを判定し、判定結果を出力する。LPS/MPS判定部(2M)１３Ｍは、コンテキスト変数のpStateIdx2と、事前MPS再正規化部(1)１５２により再正規化されたレンジ長およびオフセットとを用いて、第２の二値データBin2がLPSかMPSかを判定し、判定結果を出力する。
【００６６】
図７における再正規化処理部(2L)１５Ｌおよび再正規化処理部(2M)１５Ｍは、図１における再正規化処理部１５と同様の構成であり、同様の処理を行う。
【００６７】
具体的には、再正規化処理部(2L)１５Ｌは、事前LPS再正規化部(2L)、事前MPS再正規化部(2L)および選択部(2L)を備える。再正規化処理部(2M)１５Ｍは、事前LPS再正規化部(2M)、事前MPS再正規化部(2M)および選択部(2M)を備える。
【００６８】
事前LPS再正規化部(2L)および事前LPS再正規化部(2M)は、図１における事前LPS再正規化部１５１（あるいは、図７に示す事前LPS再正規化部(1)１５１）と同様の構成であり、同様の処理を行う。すなわち、Bin2のシンボルがLPSとみなして再正規化処理を行う。事前MPS再正規化部(2L)および事前MPS再正規化部(2M)は、図１における事前MPS再正規化部１５２（あるいは、図７に示す事前MPS再正規化部(1)１５２）と同様の構成であり、同様の処理を行う。すなわち、Bin2のシンボルがMPSとみなして再正規化処理を行う。選択部(2L)および選択部(2M)は、図１における選択部１５３（あるいは、図７に示す選択部(1)１５３）と同様の構成であり、同様の処理を行う。
【００６９】
（ＣＡＢＡＣ復号器の動作）
第２の実施形態に係るＣＡＢＡＣ復号器は、図４を用いて説明した第１の実施形態のＣＡＢＡＣ復号器と類似の処理を行う。ただし、二値算術復号処理部１Ａが行うステップS3の処理が異なる。以下、図８を参照して、第２の実施形態に係る二値算術復号部１Ａの処理フローを説明する。
【００７０】
図８は、図４におけるステップS3の詳細な処理を説明する図であり、図７における二値算術復号処理部１Ａの処理フローを説明する図でもある。
【００７１】
＜第１の二値データの判定処理＞
［S3b-1］LPS/MPS判定部(1)１３Ａは、レンジ長／オフセット変数保持部１２に保持されている現時点のレンジ長CurrRangeおよびオフセットOffsetを取り込むとともに、コンテキスト変数保持部１１に保持されているpStateIdx1を取り込む。LPS/MPS判定部(1)１３Ａは、図２に示すLPS区間長テーブルを参照し、取り込んだCurrRangeの全９ビット[8:0]のうち[7:6]の２ビットを示すqRangeIdxとpStateIdx1とから、LPS区間長rLPS1を導出する。そして、現時点のレンジ長からLPS区間長を減算（CurrRange-rLPS1）して、MPS区間長rMPS1を算出する。そして、LPS/MPS判定部(1)１３Ａは、rLPS1、rMPS1およびOffsetを再正規化処理部(1)１５Ａに出力する。
【００７２】
［S3b-2］LPS/MPS判定部(1)１３Ａは、MPS区間長rMPS1とOffsetの大小関係を比較し、復号しようとする第１の二値データBin1のシンボルがLPSかMPSかの判定処理を行う。rMPS1がOffsetより大きい場合、LPS/MPS判定部(1)１３ＡはBin1のシンボルがMPSであると判定し、LPS/MPS判定結果１としてビット０を再正規化処理部(1)１５Ａの選択部(1)１５３に出力する。一方、rMPS1がOffsetより小さいかあるいは等しい場合、LPS/MPS判定部(1)１３ＡはBin1のシンボルがLPSであると判定し、LPS/MPS判定結果1としてビット１を再正規化処理部(1)１５Ａの選択部(1)１５３に出力する。
【００７３】
［S3b-3L〜S3b-4L］ステップ3b-3Lからステップ3b-4Lの処理は、ステップS3b-2とは独立かつ並列に処理される。ステップ3b-3Lから3b-4Lは、Bin1のシンボルがLPSであるものと仮定して再正規化処理を行う処理である。
【００７４】
［S3b-3L］において、事前LPS再正規化部(1)１５１は、ステップS3b-1でLPS/MPS判定部(1)１３Ａが出力したrLPS1の値を取り込んで、更新したレンジ長CurrRange’(L)として設定する。また、事前LPS再正規化部(1)１５１は、ステップS3b-1でLPS/MPS判定部１３が出力したrMPS1およびOffsetの値を取り込んで、OffsetからrMPS1を減算した値（Offset-rMPS1）を更新したオフセットOffset’(L)として設定する。
【００７５】
［S3b-4L］において、事前LPS再正規化部(1)１５１は、ステップ3b-3Lで設定されたCurrRange’(L)およびOffset’(L)の値を用いて再正規化処理を行い、再正規化したレンジ長CurrRange’’(L)と再正規化したオフセットOffset’’(L)を算出する。再正規化処理の具体的な処理フローは、図６の処理と同じである。
【００７６】
［S3b-3M〜S3b-4M］ステップ3b-3Mからステップ3b-4Mの処理は、ステップS3b-2とは独立かつ並列に処理され、また、ステップS3b-3LからステップS3b-4Lの処理とも独立かつ並列に処理される。ステップ3b-3Mから3b-4Mは、Bin1のシンボルがMPSであるものと仮定して再正規化処理を行う処理である。
【００７７】
［S3b-3M］において、事前MPS再正規化部(1)１５２は、ステップS3b-1でLPS/MPS判定部(1)１３Ａが出力したrMPS1の値を取り込んで、更新したレンジ長CurrRange’(M)として設定する。また、事前MPS再正規化部(1)１５２は、ステップS3b-1でLPS/MPS判定部(1)１３Ａが出力したOffsetの値を、更新したオフセットOffset’(M)として設定する。
【００７８】
［S3b-4M］において、事前MPS再正規化部(1)１５２は、ステップ3b-3Mで設定されたCurrRange’(M)およびOffset’(M)の値を用いて再正規化処理を行い、再正規化したレンジ長CurrRange’’(M)と再正規化したオフセットOffset’’(M)を算出する。再正規化処理の具体的な処理フローは、図６の処理と同じである。
【００７９】
＜第２の二値データの判定処理（第１の二値データのシンボルがLPSを想定）＞
LPS/MPS判定部(2L)１３Ｌは、Bin1のシンボルがLPSであることを前提として、それに続く第２の二値データBin2のシンボルのLPS/MPS判定を行う。
【００８０】
［S3c-1］LPS/MPS判定部(2L)１３Ｌは、事前LPS再正規化部(1)１５１が再正規化したレンジ長CurrRange’’(L)およびオフセットOffset’’(L)を取り込むとともに、コンテキスト変数保持部１１に保持されているpStateIdx2を取り込む。LPS/MPS判定部(2L)１３Ｌは、図２に示すLPS区間長テーブルを参照し、取り込んだCurrRange’’(L)の全９ビット[8:0]のうち[7:6]の２ビットを示すqRangeIdxとpStateIdx2とから、LPS区間長rLPS2Lを導出する。そして、現時点のレンジ長からLPS区間長を減算（CurrRange’’(L)-rLPS2L）して、MPS区間長rMPS2Lを算出する。そして、LPS/MPS判定部(2L)１３Ｌは、rLPS2L、rMPS2LおよびOffset’’(L)を再正規化処理部(2L)１５Ｌに出力する。
【００８１】
［S3c-2］LPS/MPS判定部(2L)１３Ｌは、MPS区間長rMPS2LとOffset’’(L)の大小関係を比較し、復号しようとする第２の二値データBin2のシンボルがLPSかMPSかの判定処理を行う。rMPS2LがOffset’’(L)より大きい場合、LPS/MPS判定部(2L)１３ＬはBin2のシンボルがMPSであると判定し、LPS/MPS判定結果2Lとしてビット０を再正規化処理部(2L)１５Ｌの選択部(2L)に出力する。一方、rMPS2LがOffset’’(L)より小さいかあるいは等しい場合、LPS/MPS判定部(2L)１３ＬはBin2のシンボルがLPSであると判定し、LPS/MPS判定結果2Lとしてビット１を再正規化処理部(2L)１５Ｌの選択部(2L)に出力する。LPS/MPS判定部(2L)１３ＬによるBin2のシンボルのMPS/MPS判定結果2Lは、コンテキスト変数計算部１４にも出力される。
【００８２】
［S3c-3L〜S3c-4L］再正規化処理部(2L)１５Ｌは、第１の二値データの判定処理における再正規化処理（ステップS3b-3L〜S3b-4L）と同様の処理を行うものであり、詳細な説明は割愛する。なお、再正規化処理部(2L)１５Ｌは、LPS/MPS判定部(2L)１３Ｌが出力するrLPS2L、rMPS2LおよびOffset’’(L)を用いて、再正規化処理を行う。再正規化処理部(2L)１５Ｌは、再正規化処理したレンジ長CurrRange’’(2L-L)と再正規化したオフセットOffset’’(2L-L)を、再正規化処理部(1)１５Ａが備える選択部(1)１５３に出力する。
【００８３】
［S3c-3M〜S3c-4M］再正規化処理部(2L)１５Ｌは、第１の二値データの判定処理における再正規化処理（ステップS3b-3M〜S3b-4M）と同様の処理を行うものであり、詳細な説明は割愛する。なお、再正規化処理部(2L)１５Ｌは、LPS/MPS判定部(2L)１３Ｌが出力するrLPS2L、rMPS2LおよびOffset’’(L)を用いて、再正規化処理を行う。再正規化処理部(2L)１５Ｌは、再正規化処理したレンジ長CurrRange’’(2L-M)と再正規化したオフセットOffset’’(2L-M)を、再正規化処理部(1)１５Ａが備える選択部(1)１５３に出力する。
【００８４】
＜第２の二値データの判定処理（第１の二値データのシンボルがMPSを想定）＞
LPS/MPS判定部(2M)１３Ｍは、Bin1のシンボルがMPSであることを前提として、それに続く第２の二値データBin2のシンボルのLPS/MPS判定を行う。
【００８５】
［S3d-1］LPS/MPS判定部(2M)１３Ｍは、事前MPS再正規化部(1)１５２が再正規化したレンジ長CurrRange’’(M)およびオフセットOffset’’(M)を取り込むとともに、コンテキスト変数保持部１１に保持されているpStateIdx2を取り込む。LPS/MPS判定部(2M)１３Ｍ    は、図２に示すLPS区間長テーブルを参照し、取り込んだCurrRange’’(M)の全９ビット[8:0]のうち[7:6]の２ビットを示すqRangeIdxとpStateIdx2とから、LPS区間長rLPS2Mを導出する。そして、現時点のレンジ長からLPS区間長を減算（CurrRange’’(M)-rLPS2M）して、MPS区間長rMPS2Mを算出する。そして、LPS/MPS判定部(2M)１３Ｍは、rLPS2M、rMPS2MおよびOffset’’(M)を再正規化処理部(2M)１５Ｍに出力する。
【００８６】
［S3d-2］LPS/MPS判定部(2M)１３Ｍは、MPS区間長rMPS2MとOffset’’(M)の大小関係を比較し、復号しようとする第２の二値データBin2のシンボルがLPSかMPSかの判定処理を行う。rMPS2MがOffset’’(M)より大きい場合、LPS/MPS判定部(2M)１３ＭはBin2のシンボルがMPSであると判定し、LPS/MPS判定結果2Mとしてビット０を再正規化処理部(2M)１５Ｍの選択部(2M)に出力する。一方、rMPS2MがOffset’’(M)より小さいかあるいは等しい場合、LPS/MPS判定部(2M)１３ＭはBin2のシンボルがLPSであると判定し、LPS/MPS判定結果2Mとしてビット１を再正規化処理部(2M)１５Ｍの選択部(2M)に出力する。LPS/MPS判定部(2M)１３ＭによるBin2のシンボルのMPS/MPS判定結果2Mは、コンテキスト変数計算部１４にも出力される。
【００８７】
［S3d-3L〜S3d-4L］再正規化処理部(2M)１５Ｍは、第１の二値データの判定処理における再正規化処理（ステップS3b-3L〜S3b-4L）と同様の処理を行うものであり、詳細な説明は割愛する。なお、再正規化処理部(2M)１５Ｍは、LPS/MPS判定部(2M)１３Ｍが出力するrLPS2M、rMPS2MおよびOffset’’(M)を用いて、再正規化処理を行う。再正規化処理部(2M)１５Ｍは、再正規化処理したレンジ長CurrRange’’(2M-L)と再正規化したオフセットOffset’’(2M-L)を、再正規化処理部(1)１５Ａが備える選択部(1)１５３に出力する。
【００８８】
［S3d-3M〜S3d-4M］再正規化処理部(2M)１５Ｍは、第１の二値データの判定処理における再正規化処理（ステップS3b-3M〜S3b-4M）と同様の処理を行うものであり、詳細な説明は割愛する。なお、再正規化処理部(2M)１５Ｍは、LPS/MPS判定部(2M)１３Ｍが出力するrLPS2M、rMPS2MおよびOffset’’(M)を用いて、再正規化処理を行う。再正規化処理部(2M)１５Ｍは、再正規化処理したレンジ長CurrRange’’(2M-M)と再正規化したオフセットOffset’’(2M-M)を、再正規化処理部(1)１５Ａが備える選択部(1)１５３に出力する。
【００８９】
＜二値データ出力処理＞
［S3b-5］コンテキスト変数計算部１４は、LPS/MPS判定部(1)１３Ａが出力するLPS/MPS判定結果1に基づき、復号しようとする第１の二値データのシンボルがLPSと判定された場合はLPSに対応するシンボルを第１の二値データBin1として出力し、第１の二値データのシンボルがMPSと判定された場合はMPSに対応するシンボルを第１の二値データBin1として出力する。
【００９０】
［S3c-5］コンテキスト変数計算部１４は、LPS/MPS判定結果1がLPSを示している場合は、第２の二値データに対するLPS/MPS判定結果としてLPS/MPS判定結果2Lを採用する。そして、コンテキスト変数計算部１４は、採用されたLPS/MPS判定結果2Lに基づき、復号しようとする第２の二値データのシンボルがLPSと判定された場合はLPSに対応するシンボルを第２の二値データBin2として出力し、第２の二値データのシンボルがMPSと判定された場合はMPSに対応するシンボルを第２の二値データBin2として出力する。
【００９１】
[S3d-5］コンテキスト変数計算部１４は、LPS/MPS判定結果1がMPSを示している場合は、第２の二値データに対するLPS/MPS判定結果としてLPS/MPS判定結果2Mを採用する。そして、コンテキスト変数計算部１４は、採用されたLPS/MPS判定結果2Mに基づき、復号しようとする第２の二値データのシンボルがLPSと判定された場合はLPSに対応するシンボルを第２の二値データBin2として出力し、第２の二値データのシンボルがMPSと判定された場合はMPSに対応するシンボルを第２の二値データBin2として出力する。
【００９２】
＜第１の二値データの変数更新処理＞
［S3b-6］コンテキスト変数計算部１４は、図５におけるステップS3a-6と類似の処理を行う。すなわち、コンテキスト変数計算部１４は、図３に示すpStateIdx遷移テーブルを参照し、第１の二値データのLPS/MPS判定結果1に応じてpStateIdx1をpStateIdx’1に更新するとともに、MPSの値valMPS1をvalMPS’1に更新する。
【００９３】
［S3b-7］再正規化処理部(1)１５Ａの選択部(1)１５３は、LPS/MPS判定部(1)１３Ａが出力したLPS/MPS判定結果1から、第１の二値データのシンボルがLPSかMPSかを判定する。
【００９４】
＜第２の二値データの変数更新処理（第１の二値データのシンボルがLPSの場合）＞
［S3c-6］コンテキスト変数計算部１４は、第１の二値データがLPS の場合、S3b-6と同様に、第２の二値データのLPS/MPS判定結果2Lに応じてpStateIdx2をpStateIdx’2に更新するとともに、MPSの値valMPS2をvalMPS’2に更新する。
【００９５】
［S3c-7］再正規化処理部(2L)１５Ｌの選択部(2L)は、LPS/MPS判定部(2L)１３Ｌが出力したLPS/MPS判定結果2Lから、第２の二値データのシンボルがLPSかMPSかを判定する。
【００９６】
［S3c-8L］第１の二値データのシンボルがLPSと判定された場合であって、第２の二値データのシンボルがLPSと判定された場合、再正規化処理部(1)１５Ａの選択部(1)１５３は、再正規化処理部(2L)１５Ｌの事前LPS再正規化部(2L)で算出された再正規化したレンジ長CurrRange’’(2L-L)と再正規化したオフセットOffset’’(2L-L)を、レンジ長／オフセット変数保持部１２に出力して書き戻す。
【００９７】
［S3c-8M］第１の二値データのシンボルがLPSと判定された場合であって、第２の二値データのシンボルがMPSと判定された場合、再正規化処理部(1)１５Ａの選択部(1)１５３は、再正規化処理部(2L)１５Ｌの事前MPS再正規化部(2L)で算出された再正規化したレンジ長CurrRange’’(2L-M)と再正規化したオフセットOffset’’(2L-M)を、レンジ長／オフセット変数保持部１２に出力して書き戻す。
【００９８】
＜第２の二値データの変数更新処理（第１の二値データのシンボルがMPSの場合）＞
［S3d-6］コンテキスト変数計算部１４は、第１の二値データがMPS の場合、S3b-6と同様に、第２の二値データのLPS/MPS判定結果2Mに応じてpStateIdx2をpStateIdx’2に更新するとともに、MPSの値valMPS2をvalMPS’2に更新する。
【００９９】
［S3d-7］再正規化処理部(2M)１５Ｍの選択部(2M)は、LPS/MPS判定部(2M)１３Ｍが出力したLPS/MPS判定結果2Mから、第２の二値データのシンボルがLPSかMPSかを判定する。
【０１００】
［S3d-8L］第１の二値データのシンボルがMPSと判定された場合であって、第２の二値データのシンボルがLPSと判定された場合、再正規化処理部(1)１５Ａの選択部(1)１５３は、再正規化処理部(2M)１５Ｍの事前LPS再正規化部(2M)で算出された再正規化したレンジ長CurrRange’’(2M-L)と再正規化したオフセットOffset’’(2M-L)を、レンジ長／オフセット変数保持部１２に出力して書き戻す。
【０１０１】
［S3d-8M］第１の二値データのシンボルがMPSと判定された場合であって、第２の二値データのシンボルがMPSと判定された場合、再正規化処理部(1)１５Ａの選択部(1)１５３は、再正規化処理部(2M)１５Ｍの事前MPS再正規化部(2M)で算出された再正規化したレンジ長CurrRange’’(2M-M)と再正規化したオフセットOffset’’(2M-M)を、レンジ長／オフセット変数保持部１２に出力して書き戻す。
【０１０２】
以上説明した本実施形態に係るＣＡＢＡＣ復号器が備える二値算術復号処理部１Ａによれば、復号しようとする第１の二値データに対するLPS/MPS判定処理の終了を待つことなく再正規化処理を始めることができ、第１の二値データに続く第２の二値データに対するLPS/MPS判定処理の終了を待つことなく再正規化処理を始めることができるようになる。すなわち、本実施形態では、連続した複数の二値データを同時に復号して多値データに多値化して出力することにより、ＣＡＢＡＣ復号処理を高速かつ高効率に実施することができる。
【０１０３】
なお、第１の実施形態および第２の実施形態のＣＡＢＡＣ復号器が備える二値算術復号処理部１、１Ａ、多値化部２およびコンテキストインデックス計算部３は、例えば、ＣＰＵと、メモリと、ハードディスク等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、二値算術復号処理部１、１Ａおよび多値化部２およびコンテキストインデックス計算部３の各機能は、二値算術復号処理部１、１Ａ用のプログラムの場合は二値算術復号処理部１、１ＡのＣＰＵが、多値化部２用のプログラムの場合は多値化部２のＣＰＵが、そして、コンテキストインデックス計算部３用のプログラムの場合はコンテキストインデックス計算部３のＣＰＵがそれぞれ実行することにより実現される。また、二値算術復号処理部１、１Ａ用のプログラム、多値化部２用のプログラムおよびコンテキストインデックス計算部３用のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【０１０４】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【０１０５】
１、１Ａ：二値算術復号処理部
１１  ：コンテキスト変数保持部
１２  ：レンジ長／オフセット変数保持部
１３、１３Ａ、１３Ｌ、１３Ｍ：LPS/MPS判定部
１４  ：コンテキスト変数計算部
１５、１５Ａ、１５Ｌ、１５Ｍ  ：再正規化処理部
１５１：事前LPS再正規化部
１５２：事前MPS再正規化部
１５３：選択部
【図１】
2018152816.tif 000003
【図２】
2018152816.tif 000004
【図３】
2018152816.tif 000005
【図４】
2018152816.tif 000006
【図５】
2018152816.tif 000007
【図６】
2018152816.tif 000008
【図７】
2018152816.tif 000009
【図８】
2018152816.tif 000010