(57)【要約】【課題】２つの算術復号部によりシンボルを同時に出力させることを可能とし、復号処理の高速化を図る。【解決手段】入力された符号化データを、状態変数とコンテキスト変数を用いてシンボルデータに算術復号する復号装置は、状態変数とコンテキスト変数を用いて算術復号処理を実行し、第１のシンボルデータを出力するとともに、当該算術復号処理により更新された状態変数とコンテキスト変数を、第１の状態変数及び第１のコンテキスト変数として出力する第１復号部と、第１の状態変数と第１のコンテキスト変数を用いて算術復号処理を実行し、第２のシンボルデータを出力するとともに、当該算術復号処理により更新された第１の状態変数と第１のコンテキスト変数を、第２の状態変数及び第２のコンテキスト変数として出力する第２復号部を有する。そして、第１の状態変数の値に基づいて、第２のシンボルデータを復号結果として採用するか否かを判定する。【選択図】  図１
2008118304.tif 000002
【特許請求の範囲】
【請求項１】
入力された符号化データを、状態変数とコンテキスト変数を用いてシンボルデータに算術復号する復号装置であって、
状態変数とコンテキスト変数を用いて算術復号処理を実行し、第１シンボルデータを出力するとともに、当該算術復号処理により更新された前記状態変数と前記コンテキスト変数を、第１状態変数及び第１コンテキスト変数として出力する第１復号手段と、
前記第１状態変数と前記第１コンテキスト変数を用いて算術復号処理を実行し、第２シンボルデータを出力するとともに、当該算術復号処理により更新された前記第１状態変数と前記第１コンテキスト変数を、第２状態変数及び第２コンテキスト変数として出力する第２復号手段と、
前記第１状態変数の値に基づいて、前記第２シンボルデータを復号結果として採用するか否かを判定する判定手段とを備えることを特徴とする復号装置。
【請求項２】
状態変数及びコンテキスト変数を記憶し、それらを前記第１復号手段に提供する記憶手段と、
前記符号化データと前記第１状態変数を用いて再正規化処理を行い、第１更新状態変数を出力する第１再正規化手段と、
前記符号化データと前記第２状態変数を用いて再正規化処理を行い、第２更新状態変数を出力する第２再正規化手段と、
前記第１コンテキスト変数及び第２コンテキスト変数から、前記記憶手段へ保存すべきコンテキスト変数を選択する第１選択手段と、
前記第１更新状態変数及び第２更新状態変数から、前記記憶手段へ保存すべき状態変数を選択する第２選択手段とを更に備え、
前記第１選択手段及び第２選択手段は、前記判定手段の判定結果に応じて選択を行うことを特徴とする請求項１に記載の復号装置。
【請求項３】
前記判定手段は、前記第１再正規化手段において再正規化する際に前記第１状態変数に対するシフト量が０である場合に、前記第２シンボルデータを復号結果として採用すると判定することを特徴とする請求項２に記載の復号装置。
【請求項４】
入力された符号化データを、状態変数とコンテキスト変数を用いてシンボルデータに算術復号する復号方法であって、
状態変数とコンテキスト変数を用いて算術復号処理を実行し、第１シンボルデータを出力するとともに、当該算術復号処理により更新された前記状態変数と前記コンテキスト変数を、第１状態変数及び第１コンテキスト変数として出力する第１復号工程と、
前記第１状態変数と前記第１コンテキスト変数を用いて算術復号処理を実行し、第２シンボルデータを出力するとともに、当該算術復号処理により更新された前記第１状態変数と前記第１コンテキスト変数を、第２状態変数及び第２コンテキスト変数として出力する第２復号工程と、
前記第１状態変数の値に基づいて、前記第２シンボルデータを復号結果として採用するか否かを判定する判定工程とを備えることを特徴とする復号方法。
【請求項５】
前記符号化データと前記第１状態変数を用いて再正規化処理を行い、第１更新状態変数を出力する第１再正規化工程と、
前記符号化データと前記第２状態変数を用いて再正規化処理を行い、第２更新状態変数を出力する第２再正規化工程と、
前記第１コンテキスト変数及び第２コンテキスト変数の一方を選択し、前記第１復号工程で利用される状態変数及びコンテキスト変数を記憶するための記憶手段へ保存する第１選択工程と、
前記第１更新状態変数及び第２更新状態変数の一方を選択し、前記記憶手段へ保存する第２選択工程とを更に備え、
前記第１選択工程及び第２選択工程は、前記判定工程の判定結果に応じて選択を行うことを特徴とする請求項４に記載の復号方法。
【請求項６】
前記判定工程は、前記第１再正規化工程において再正規化する際に前記第１状態変数に対するシフト量が０である場合に、前記第２シンボルデータを復号結果として採用すると判定することを特徴とする請求項５に記載の復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置及び復号方法に関する。特に、本発明は、動画像或いは静止画像の符号化に用いられる圧縮方式の一つであるエントロピー符号化／復号処理の高速化に関するものである。更に、本発明は、特にエントロピー復号方法として算術復号処理に好適なものである。
【背景技術】
【０００２】
高能率動画符号化方式として、近年ＪＶＴにおいてＨ．２６４（ITU-T Rec.H.264｜ISO/IEC  14496-10  AVC）符号化方式が標準化された。Ｈ．２６４では、静止画の符号化方式として知られるＪＰＥＧや、動画符号化方式として知られるＭＰＥＧ−２或いはＭＰＥＧ−４（version 2）と同様に、画像情報はデジタルとして取り扱われる。特に、動画像符号化方式においては、効率の高い情報の伝送、蓄積を目的とし、画面間（時間方向）の冗長情報の削減と、画面内（空間方向）の画素がもつ冗長情報の削減を行うハイブリット符号化を用いた圧縮が行われる。このハイブリット符号化においては、離散コサイン変換等の直交変換及び動き補償と共に、エントロピー符号化が用いられている。エントロピー符号化は、情報の偏りを利用して可変長符号化を行う技術である。
【０００３】
Ｈ．２６４において用いられるエントロピー符号化は、プロファイルに応じてハフマン符号化を用いるＣＡＶＬＣ方式、或いは算術符号化を用いるＣＡＢＡＣ方式が規定されている。通信アプリケーション向けに処理の複雑度が低い符号化ツール群から構成されるベースライン・プロファイルにおいてはＣＡＶＬＣ方式が選択される。また、符号化効率を重視したメイン・プロファイル或いはハイ・プロファイルにおいてはＣＡＢＡＣ方式が選択されている。
【０００４】
ところで、一般的に算術符号はソフトウエア或いはハードウエアで実装を試みた場合に、ハフマン符号或いはGolomb符号等の可変長符号化方式と比較して高速化が困難であることが知られている。例えば非特許文献１のＨ．２６４勧告書（ITU-T  Rec.H.264｜ISO/IEC  14496-10  AVC）に記載されているＣＡＢＡＣ復号処理のフローチャートを図１０に示す。この復号化処理の高速化の困難さは、図１０のCABACParsing(SE)処理において、処理ループ２１３が１ビット毎（シンボル）であることに起因している。また、図１１、図１２には、非特許文献２に開示されている算術復号処理と、再正規化処理を示す。なお、DecodeBin(ctxIdx)の処理（図１０のＳ２０８）は算術符号化処理であるDecodeDecision(ctxIdx)及び固定長符号化であるDecodeBypass処理からなる。但し、ここでは単純な処理であるDecodeBypass処理は省略する。図１１、図１２に示される処理は、DecodeDecision(ctxIdx)である。図１２に示すＣＡＢＡＣ方式の再正規化処理においては、図１１に示す算術復号処理後に得られた状態変数の値を用いて、新たに状態変数自体の値を更新すると共に、入力される符号化データの先頭から除去するビット数を求める。すなわち、現在対象としているシンボルに対して、図１１及び図１２で示されるすべての処理が終了しなければ、次のシンボルの復号を開始するこは出来ない。
【０００５】
更には、ＣＡＢＡＣ方式においては、符号化対象となるシンタックス要素を予め２値化することによって生成された１シンボルを符号化及び復号化の処理単位としている。すなわち、ＣＡＢＡＣ方式においては、１シンタックス要素が１シンボルに対応しているハフマン符号と異なり、１シンタックス要素から複数シンボルが生成される。このため、ＣＡＢＡＣ方式においては、ハフマン符号を用いたＣＡＶＬＣと比較して、符号化／復号処理に莫大な処理時間を要する。
【０００６】
特許文献１及び特許文献２にはハードウエアで算術復号化装置を実現した技術が開示されている。これらの技術によれば、状態を保持するコンテキストメモリへのアドレスの発生と算術符号化の演算を、パイプライン動作させることにより、クロック毎に滞りなくシンボルデータを算術符号化する技術が示されている。
【特許文献１】特開平１１−１０３２５７号公報
【特許文献２】特開平２００５−１３００９９号公報
【非特許文献１】ITU-T  Rec.H.264｜ISO/IEC  14496-10  AVC
【非特許文献２】H.264 Reference Software Joint Model ver9.0
【発明の開示】
【発明が解決しようとする課題】
【０００７】
画像のハイビジョン化に代表される高解像度化が近年急速に進むに従い、高速に処理する符号化装置及び復号装置が必要とされている。Ｈ．２６４に代表されるハイブリット符号化においては、特にエントロピー復号装置の高速化が復号装置全体の処理速度を決定する要因の一つである。
【０００８】
しかしながら、前述の特許文献１及び特許文献２に開示される技術を用いた場合でも、最高でも１サイクルで復号可能なシンボル数は１つであり、それ以上に高速な復号処理を行うことは困難である。
【０００９】
更には、例えば算術復号部を２つ並行に動作させることにより高速化を試みようとしても、上述した復号処理に従えば、始めのシンボルの復号が完全に終了しなければ次のシンボルの復号を開始することは出来ない。従って、それら２つの算術復号部を１サイクルで実行させることは困難である。
【００１０】
本発明は、上記の課題に鑑みてなされたものであり、２つの算術復号部によりシンボルを同時に出力させることを可能な構成を提供し、復号処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明の一態様による復号装置は以下の構成を備える。即ち、
入力された符号化データを、状態変数とコンテキスト変数を用いてシンボルデータに算術復号する復号装置であって、
状態変数とコンテキスト変数を用いて算術復号処理を実行し、第１シンボルデータを出力するとともに、当該算術復号処理により更新された前記状態変数と前記コンテキスト変数を、第１状態変数及び第１コンテキスト変数として出力する第１復号手段と、
前記第１状態変数と前記第１コンテキスト変数を用いて算術復号処理を実行し、第２シンボルデータを出力するとともに、当該算術復号処理により更新された前記第１状態変数と前記第１コンテキスト変数を、第２状態変数及び第２コンテキスト変数として出力する第２復号手段と、
前記第１状態変数の値に基づいて、前記第２シンボルデータを復号結果として採用するか否かを判定する判定手段とを備える。
【００１２】
また、上記の目的を達成するための本発明の他の態様による復号方法は、
入力された符号化データを、状態変数とコンテキスト変数を用いてシンボルデータに算術復号する復号方法であって、
状態変数とコンテキスト変数を用いて算術復号処理を実行し、第１シンボルデータを出力するとともに、当該算術復号処理により更新された前記状態変数と前記コンテキスト変数を、第１状態変数及び第１コンテキスト変数として出力する第１復号工程と、
前記第１状態変数と前記第１コンテキスト変数を用いて算術復号処理を実行し、第２シンボルデータを出力するとともに、当該算術復号処理により更新された前記第１状態変数と前記第１コンテキスト変数を、第２状態変数及び第２コンテキスト変数として出力する第２復号工程と、
前記第１状態変数の値に基づいて、前記第２シンボルデータを復号結果として採用するか否かを判定する判定工程とを備える。
【発明の効果】
【００１３】
本発明によれば、２つの算術復号部によりシンボルを同時に出力させることが可能となり、復号処理の高速化を達成できる。
【発明を実施するための最良の形態】
【００１４】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１５】
図１は、本実施形態によるエントロピー復号装置（算術復号装置）の構成を示すブロック図である。本実施形態の算術復号装置は、Ｈ．２６４符号化方式のエントロピー符号化であるＣＡＢＡＣ符号化によって得られた符号化データをエントロピー復号処理する。
【００１６】
コンテキスト変数記憶部１０４には、Ｈ．２６４勧告書（非特許文献１）において規定されるコンテキストインデックスに対応するコンテキスト変数である優勢シンボルの値MPS及び確率状態を表すpStateIdxが保存されている。また、状態変数記憶部１０９には復号エンジン状態変数（以下、状態変数という）であるcodlRange及びcodlOffsetが保存されている。これらコンテキスト変数及び状態変数は第１算術復号部１０２に入力される。
【００１７】
Ｈ．２６４勧告書に記載される第１算術復号部１０２が担う処理は、図１１のフローチャートに示したとおりである。また、第１算術復号部１０２をハードウエアとして構成した場合の、ブロック構成例を図２に示す。また、図３は、図２中の各ブロックと図１１中の処理ステップとの対応を示す。
【００１８】
codlRange更新部５０１は、状態変数記憶部１０９からの状態変数codlRangeとコンテキスト変数記憶部１０４からのコンテキスト変数pStateIdxを用いて、codlRangeを更新し、codlRange_tmpとして出力する。より具体的には、codlRange更新部５０１は、入力されたcoldRangeの７，８ビット目の値によりテーブル（rangeTableLPS）からcodlRangeLPSを取得する。そして、codlRange更新部５０１は、入力されたcodlRangeから取得したcodlRangeLPSを差し引いて更新されたcodlRange、即ちcodlRange_tmpを取得し、出力する。以上の処理は図１１のステップＳ４０２に対応する。
【００１９】
比較部５０２は、更新されたcodlRange（codlRange_tmp）の値と、第１算術復号部１０２に入力された状態変数codlOffsetとの大小比較を行い、その結果を選択部５０５に送る（ステップＳ４０３）。より具体的には、比較部５０２は、codlOffset＜codlRange_tmpであった場合はＭＰＳ信号を、codlOffset≧codlRange_tmpであった場合はＬＰＳ信号を選択部５０５に送る。
【００２０】
一方、ＬＰＳ処理部５０３は、更新された状態変数codlRange_tmpと、第１算術復号部１０２に入力された状態変数codlOffsetに基づいて更新されたcodlOffset'を取得する。より具体的には、ＬＳＰ処理部５０３は、codlOffset−codlRange_tmpにより更新されたcodlOffset'を取得し、これを選択部５０５へ出力する。また、ＬＰＳ処理部５０３は、codlRange更新部５０１からcodlRangeLPSを取得し、これを更新されたcodlRange'として選択部５０５に出力する。また、ＬＰＳ処理部５０３は、確立状態を更新するためのテーブルtransidxLPSから、入力されたpStateIdxに対応するpStateIdxを取得し、更新されたpStateIdx'として出力する。更に、ＬＰＳ処理部５０３は、入力された優勢シンボルMPSを反転して!MPSとし、これを第１のシンボルデータとして出力する。以上の、ＬＰＳ処理部５０３による処理はステップＳ４０５、Ｓ４０８に対応する。
【００２１】
また、ＭＰＳ処理部５０４は、codlRange更新部５０１からのcodlRange_tmpと、第１算術復号部１０２に入力されたcodlOffsetをそのままcodlRange'及びcodlOffset'として選択部５０５に出力する。また、ＭＳＰ処理部５０４は、確立状態を更新するためのテーブルtransidxMPSから、入力されたpStateIdxに対応するpStateIdxを取得し、更新されたpStateIdx'として出力する。更に、ＭＳＰ処理部５０４は、入力された優勢シンボルMPSをそのまま第１のシンボルデータとして選択部５０５に出力する。以上の処理は、ステップＳ４０４に対応する。
【００２２】
選択部５０５は、比較部５０２からの比較結果出力がＭＰＳ信号であった場合は、ＭＰＳ処理部５０４から出力されるcodlRange'、codlOffset'、pStateIdx'及び第１のシンボルデータ（MPS）を選択し、出力する。他方、選択部５０５は、比較部５０２からの比較結果出力がＬＰＳ信号であった場合は、ＬＰＳ処理部５０３から出力されるcodlRange'、codlOffset'、pStateIdx'及び第１のシンボルデータ（!MPS）を選択し、出力する。尚、選択部５０５から出力されるcodlRange'、codlOffset'を第１の状態変数と称する。以上の処理が、ステップＳ４０３〜Ｓ４０８の処理となる。
【００２３】
以上の動作によれば、codlOffset≧codlRange_tmpである場合には、ステップＳ４０５において、入力されたMPSの値を反転した値（!MPS）が変数binValにセットされ、第１のシンボルデータとして出力される。また、codlOffset＜codlRange_tmpである場合には、ステップＳ４０４において、入力されたMPSの値がそのまま変数binValにセットされ、第１のシンボルデータとして出力される。
【００２４】
更に、選択部５０６は、入力されたMPSと反転器５０７により反転されたMPSのいずれかを、入力されたpStateIdx及び比較部５０２の比較結果出力に基づいて選択する。まず、比較部５０２からの比較結果出力がＭＰＳ信号であった場合は、選択部５０６はMPSを選択し、MPS'として出力する。一方、比較部５０２からの比較結果出力がＬＰＳ信号であった場合は、選択部５０６は、pStateIdxの値に応じて選択を切り替える。選択部５０６は、比較部５０２からの比較結果出力がＬＰＳ信号で且つpStateIdxが０の場合には、反転器５０７の出力信号（反転されたMPS）を選択し、MPS'として出力する。また、選択部５０６は、比較部５０２からの比較結果出力がＬＰＳ信号で且つpStateIdxが０でない場合には、反転されていないMPSを選択し、MPS'として出力する。
【００２５】
尚、選択部５０５から出力されるpStateIdx'と、選択部５０６から出力されるMPS'を第１のコンテキスト変数と称する。
【００２６】
第２算術復号部１０１の内部構成は、図２に示した構成と同一である。ただし、第２算術復号部１０１は、第１算術復号部１０２が出力した第１のコンテキスト変数（pStateIdx'、MPS'）と第１の状態変数（codlRange'、codlOffset'）を入力として用いる。そして、第２のシンボルデータ、第２の状態変数及び第２のコンテキスト変数を出力する。
【００２７】
次に、第１再正規化部１０７について説明する。図４は本実施形態の第１再正規化部１０７の構成を示すブロック図である。第１再正規化部１０７は、第１復号演算部１０２が出力した第１の状態変数と符号化データを入力し、第１の更新状態変数を出力する。
【００２８】
シフト量検出部７０１は、入力されたcodlRange'から、第１シフト部７０２、第２シフト部７０３、切り出し部７０４に供給すべきシフト量を検出する。シフト量検出部７０１は、入力される９ビットのcodlRange'のＭＳＢからＬＳＢに向けて始めにビット値１が出現したビット位置を検出することによってシフト量を検出する。図５は、シフト量検出部７０１の処理を説明する図である。表中のＸで示されたビットの値は０或いは１のどちらでも良いことを表す。
【００２９】
第１シフト部７０２は、入力されたcodlRange'を、シフト量検出部７０１より出力されたシフト量だけ左ビットシフトし、その結果をcodlRange''として出力する。第２シフト部７０３は、入力されたcodlOffset'を、シフト量検出部７０１より出力されたシフト量だけ左ビットシフトした結果を出力する。
【００３０】
切り出し部８０４は、入力される符号化データ（Cin）に対して、シフト量検出部７０１より出力されたシフト量で指示されるビット数分をMSBから切り出し、その左側（上位側）に０を付加して得られる９ビットのデータを出力する。この様子を図６に示す。図６において、例えばCin[7:0]は、入力される符号化データのＭＳＢから８ビットのデータを表す。そして、この８ビットのデータの左側に１つの"０"を追加することにより９ビットデータが生成され、出力される。
【００３１】
切り出し部７０４からの９ビットデータと、第２シフト部７０３からのcodlOffset'が左シフトされた信号との論理和が論理和演算部７０５により演算され、その結果がcodlOffset''として出力される。
【００３２】
以上の、第１再正規化部１０７から出力されるcodlRange''とcodlOffset''は、図１に示される第１の更新状態変数である。
【００３３】
一方、第２再正規化部１０５の内部構成は、図４で示した第１再正規化部１０７の構成と同一である。ただし、第２再正規化部１０５は、第２算術復号部１０１から出力される第２の状態変数を入力とし、第２の更新状態変数を生成し、出力する。
【００３４】
次に状態判定部１０６について説明する。図７は、状態判定部１０６の内部構成を示す図である。第１の状態変数であるcodlRange'のMSBビットが入力され、値"１"との論理積がＡＮＤ回路１００１により演算される。ＭＳＢビットが１である場合には、第２のシンボルデータが有効であることを示す値"１"が出力される。これは、図５に示したように、第１再正規化部１０７においてシフト量が０の場合に相当する。
【００３５】
また、図８は状態判定部１０６の別の実装形態を示す。図８の構成では、比較部１１０１は、第１の状態変数であるcodlRange'と定数値"0x0100"とを比較する。比較部１１０１は、codlRange'が"0x0100"以上である判定した場合には、第２のシンボルデータが有効であることを示す値"１"を出力する。これも、図５に示したように、第１再正規化部１０７においてシフト量が０の場合に相当する。
【００３６】
以上のように、図７及び図８のいずれの実装形態においても、図１２で示した再正規化処理（RenormD）において、ステップＳ３０３のビットシフト処理が行われない場合に、第２のシンボルデータが有効であることを示す値が出力される。尚、符号化データのＭＳＢをそのまま状態判定部１０６の第２のシンボルデータ有効通知に用いても良い。
【００３７】
図９には、本実施形態によるエントロピー復号装置のタイミングチャートを示す。サイクル１においては、第１の状態変数codlRange'の値が0x0100以上であるので、状態判定部１０６は第２の算術復号部１０１から出力される第２のシンボルデータが有効であることを示す信号を出力する。次にサイクル２においては、第１の状態変数codlRange'の値が0x0100より小さいので、状態判定部１０６は、第２のシンボルデータが無効であることを示す信号を出力する。
【００３８】
状態判定部１０６が第２のシンボルデータが有効である旨の信号を出力すると、第１選択部１０３は第２算術復号部１０１から出力された第２のコンテキスト変数を選択して、コンテキスト変数記憶部１０４に書込む。一方、状態判定部１０６が第２のシンボルデータが無効である旨の信号を出力すると、第１選択部１０３は第１算術復号部１０２から出力された第１のコンテキスト変数を選択して、コンテキスト変数記憶部１０４に書込む。同様に、状態判定部１０６が第２のシンボルデータが有効である旨の信号を出力すると、第２選択部１０８は第２再正規化部１０５から出力された第２の更新状態変数を選択して、状態変数記憶部１０９に書込む。また、状態判定部１０６が第２のシンボルデータが無効である旨の信号を出力すると、第２選択部１０８は第１再正規化部１０７から出力された第１の更新状態変数を選択して、状態変数記憶部１０９に書込む。
【００３９】
以上の復号処理をシンタックス要素内のすべてのシンボルデータに対して繰り返し行うことで、高速な復号化処理が可能となる。
【００４０】
尚、以上のように、本実施形態の復号装置には、第１算術復号部１０２及び第１再正規化部１０７を有する第１系統と、第２算術復号部１０１及び第２再正規化部１０５を有する第２系統との２つの系統が存在する。そして、第１系統及び第２系統には同じ符号化データがそれぞれ同時、並行に入力される。ここで、第１系統が前段、第２系統が後段とすると、前段は先頭のビット列から復号処理を行い、後段は、先頭のビット列から、前段の結果から得られたシフト量分ビットをずらした位置を先頭として復号処理を行うことになる。復号化を待つか否かはそれぞれ、codlRangeの値により判断される。
【００４１】
以上のように、図１に示される本実施形態の復号装置は、入力された符号化データ（Cin）を、状態変数とコンテキスト変数を用いてシンボルデータに算術復号する装置であり、第１算術復号部１０２と第２算術復号部１０１の２つの復号部を有する。第１算術復号部１０２は、状態変数記憶部１０９とコンテキスト変数記憶部１０４に記憶されている状態変数とコンテキスト変数を用いて算術復号処理を実行する。そして、第１のシンボルデータを出力するとともに、当該算術復号処理により更新された状態変数とコンテキスト変数を、第１の状態変数及び第１のコンテキスト変数として出力する。また、第２算術復号部１０１は、第１算術復号部１０２から出力された第１の状態変数と第１のコンテキスト変数を用いて算術復号処理を実行する。そして、第２のシンボルデータを出力するとともに、当該算術復号処理により更新された第１の状態変数と第１のコンテキスト変数を、第２の状態変数及び第２のコンテキスト変数として出力する。そして、状態判定部１０６は、第１算術復号部１０２からの第１の状態変数の値に基づいて、第２算術復号部１０１の出力を採用するか否かを判定する。例えば、状態判定部１０６は、第２のシンボルデータを復号結果として採用するか否かを判定する。
【００４２】
上述の構成において、第２算術復号処理部１０１は、第１算術復号処理部１０２からの第１の状態変数及び第１のコンテキスト変数を用いて復号処理を行っている。即ち、第２算術復号処理部１０１は、第１の状態変数に関して、再正規化処理による第１の更新状態変数の出力を待つことなく、復号処理を開始することができる。即ち、第１再正規化部１０７による再正規化処理と、第２算術復号部１０１による復号処理を並列に実行させることができる。そして、状態判定部１０６によって第２のシンボルデータが有効と判定された場合には、第１算術復号処理部１０２と第２算術復号処理部１０１の両方の復号結果を利用するので、復号処理速度が向上する。
【００４３】
また、上記実施形態では、状態変数及びコンテキスト変数を記憶してそれらを第１算術復号部１０２に提供する状態変数記憶部１０９及びコンテキスト変数記憶部１０４が設けられている。また、第１再正規化部１０７は、符号化データと第１の状態変数を用いて再正規化処理を行い、第１の更新状態変数を出力し、第２再正規化部１０５は、符号化データと第２の状態変数を用いて再正規化処理を行い、第２の更新状態変数を出力する。そして、第１選択部１０３は、状態判定部１０６の判定結果に基づいて、第１のコンテキスト変数と第２のコンテキスト変数のいずれかを選択してコンテキスト変数記憶部１０４に記録する。また、第２選択部１０８は、状態判定部１０６の判定結果に基づいて、第１の更新状態変数と第２の更新状態変数のいずれかを選択して状態変数記憶部１０９に記録する。このように、状態判定部１０６の判定結果に応じて、第２算術復号部１０１と第２再正規化部１０５からなる処理系によって得られた変数やシンボルデータを破棄するか否かを一括して決定するので、復号装置の構成が簡素化される。
【００４４】
また、状態判定部１０６は、第１の状態変数codlRange'のＭＳＢが"１"の場合、即ち、第１再正規化部１０７においてシフト量が０の場合に、第２算術復号部１０１から出力される第２のシンボルデータが有効であると判定する。従って、状態判定部１０６は、図７や図８に示すようなきわめて簡単な構成で実現でき、復号装置の構成が簡素化される。
【００４５】
以上説明したように、本実施形態は、第２算術復号部１０１及び第１算術復号部１０２を並列動作（１クロック周期内で並列処理）させる。そして、第１算術復号部１０２から出力される第１の状態変数を用いて第２算術復号部１０１から出力されるシンボルが有効か否かを判定する。このため、高速な動作周波数で動作し、かつ２シンボル同時に復号可能（１サイクルで２シンボルを出力可能）なエントロピー復号装置を実現することが出来る。
【００４６】
＜他の実施形態＞
なお、上記では、ハードウエア構成による算術復号装置を説明したが、ソフトウエアを利用して算術復号装置を構成するようにしてもよい。その場合、上述した並列動作をマルチスレッド（マルチプロセッサ）で実現すればよい。
【００４７】
従って、本発明の目的は前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体に格納されたプログラムコードを、コンピュータ（又はＣＰＵ、ＭＰＵ）が読み出し実行することによっても、達成されることは言うまでもない。例えば、上記記録媒体はシステム或いは装置に供給され、そのシステム或いは装置のコンピュータが記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４８】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００４９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られるものではない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれ、ＣＰＵなどにより実行される場合も含まれる。この場合、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００５１】
【図１】実施形態によるエントロピー復号装置（算術復号装置）の構成例を示すブロック図である。
【図２】第１算術復号部１０２をハードウエアとして構成した場合の、ブロック構成例を示す図である。
【図３】図２中の各ブロックと図１１中の処理ステップとの対応を示す図である。
【図４】実施形態の第１再正規化部の構成を示すブロック図である。
【図５】実施形態によるシフト量検出部の処理を説明する図である。
【図６】シフト量に応じた符号化データの切り出し処理を説明する図である。
【図７】状態判定部の内部構成例を示したブロック図である。
【図８】状態判定部の他の内部構成を示したブロック図である。
【図９】実施形態によるエントロピー復号装置のタイミングチャートである。
【図１０】ＣＡＢＡＣ復号処理CABACParsing（）を示すフローチャートである。
【図１１】ＣＡＢＡＣ復号処理における、DecodeDecision（）のフローチャートである。
【図１２】ＣＡＢＡＣ復号処理における、RenormD（）のフローチャートである。
【図１】
2008118304.tif 000003
【図２】
2008118304.tif 000004
【図３】
2008118304.tif 000005
【図４】
2008118304.tif 000006
【図５】
2008118304.tif 000007
【図６】
2008118304.tif 000008
【図７】
2008118304.tif 000009
【図８】
2008118304.tif 000010
【図９】
2008118304.tif 000011
【図１０】
2008118304.tif 000012
【図１１】
2008118304.tif 000013
【図１２】
2008118304.tif 000014