"マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から前記算術符号化の前のデータ列を復号する復号装置において、前記数値範囲を記憶する記憶部と、前記データ列の各位置における所定シンボルの発生確率を取得する取得部と、前記取得部によって取得された発生確率の中の、前記データ列を区切った複数のグループのうちの復号対象の位置が属するグループにおける最小の発生確率に基づく前記数値範囲の減少幅を導出する導出部と、前記数値範囲の限界値と前記符号値との差分を、前記導出部によって導出された減少幅によって除算する除算部と、前記除算部によって得られた商が所定値以上である場合に、前記商だけ連続する前記所定シンボルとなる、前記復号対象の位置以降の復号結果を出力する一括復号処理部と、を備えることを特徴とする復号装置。前記商が前記所定値以上である場合に、前記記憶部に記憶された数値範囲の前記限界値を、前記減少幅に前記商を乗じた幅だけ変化させて前記数値範囲を縮小する縮小部を備えることを特徴とする請求項1に記載の復号装置。前記除算部は、前記限界値と前記符号値との差分および前記限界値と所定の閾値との差分のうちの小さい方の差分を前記減少幅によって除算し、前記縮小部によって縮小された数値範囲の幅が前記所定の閾値以上となるように前記数値範囲および前記符号値を正規化する正規化部を備えることを特徴とする請求項2に記載の復号装置。前記導出部は、前記最小の発生確率を特定する特定部と、前記記憶部によって記憶された数値範囲を、前記特定部によって特定された発生確率に相当する割合で縮小した場合における前記数値範囲の減少幅を算出する算出部と、を備えることを特徴とする請求項1~3のいずれか一つに記載の復号装置。前記一括復号処理部によって復号結果が出力された場合に、前記データ列の各位置のうち、前記復号対象の位置から前記商の数だけ先の位置を次の復号対象とすることを特徴とする請求項1~4のいずれか一つに記載の復号装置。前記商が前記所定値未満である場合に、前記記憶部によって記憶された数値範囲と、前記取得部によって取得された発生確率のうち前記復号対象の位置における発生確率と、前記符号値と、に基づく前記復号対象の位置の復号結果を出力する個別復号処理部を備え、前記縮小部は、前記個別復号処理部によって復号結果が出力された場合に、前記個別復号処理部によって出力された復号結果と、前記復号対象の位置における発生確率と、に応じて前記記憶部によって記憶された数値範囲を縮小することを特徴とする請求項2または3に記載の復号装置。前記導出部は、前記グループごとに、前記最小の発生確率に相当する割合による前記所定の数値範囲の減少幅が対応付けられた対応情報に基づいて、前記復号対象の位置が属するグループに対応する前記減少幅を導出することを特徴とする請求項1~3のいずれか一つに記載の復号装置。前記減少幅に前記商を乗じた幅だけ縮小した前記数値範囲が前記符号値以下であり、または前記減少幅に前記商を乗じた幅だけ縮小した前記数値範囲が前記閾値未満である場合に、前記一括復号処理部は、前記商だけ連続する前記所定シンボルとなる復号結果を出力せず、前記個別復号処理部は、前記復号対象の位置を復号した復号結果を出力することを特徴とする請求項6に記載の復号装置。マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から前記算術符号化の前のデータ列を復号する復号方法において、前記数値範囲を記憶し、前記データ列の各位置における所定シンボルの発生確率を取得し、取得した発生確率の中の、前記データ列を区切った複数のグループのうちの復号対象の位置が属するグループにおける最小の発生確率に基づく前記数値範囲の減少幅を導出し、前記数値範囲の限界値と前記符号値との差分を、前記導出した減少幅によって除算し、除算により得た商が所定値以上である場合に、前記商だけ連続する前記所定シンボルとなる、前記復号対象の位置以降の復号結果を出力することを特徴とする復号方法。マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から前記算術符号化の前のデータ列を復号する復号プログラムにおいて、前記数値範囲を記憶し、前記データ列の各位置における所定シンボルの発生確率を取得し、取得した発生確率の中の、前記データ列を区切った複数のグループのうちの復号対象の位置が属するグループにおける最小の発生確率に基づく前記数値範囲の減少幅を導出し、前記数値範囲の限界値と前記符号値との差分を、前記導出した減少幅によって除算し、除算により得た商が所定値以上である場合に、前記商だけ連続する前記所定シンボルとなる、前記復号対象の位置以降の復号結果を出力する処理をコンピュータに実行させることを特徴とする復号プログラム。しかしながら、上述した従来技術では、一括復号するビット数を予め決定しておくことになるため、予め決定された数だけ同一シンボルが連続しない場合は一括復号が実行されない。このため、シンタクスによっては一括復号の発生確率が低くなり、復号の高速化を図ることができないという問題がある。本発明は、上述した従来技術による問題点を解消するため、復号の高速化を図ることができる復号装置、復号方法および復号プログラムを提供することを目的とする。上述した課題を解決し、目的を達成するため、本発明の一側面によれば、マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から前記算術符号化の前のデータ列を復号する復号方法において、前記数値範囲を記憶し、前記データ列の各位置における所定シンボルの発生確率を取得し、取得した発生確率の中の、前記データ列を区切った複数のグループのうちの復号対象の位置が属するグループにおける最小の発生確率に基づく前記数値範囲の減少幅を導出し、前記数値範囲の限界値と前記符号値との差分を、前記導出した減少幅によって除算し、除算により得た商が所定値以上である場合に、前記商だけ連続する前記所定シンボルとなる、前記復号対象の位置以降の復号結果を出力する復号装置、復号方法および復号プログラムが提案される。本発明の一側面によれば、復号の高速化を図ることができるという効果を奏する。以下に添付図面を参照して、本発明にかかる復号装置、復号方法および復号プログラムの実施の形態を詳細に説明する。実施の形態1実施の形態1にかかる復号装置による復号処理図1-1~図1-3は、実施の形態1にかかる復号装置による復号処理の一例を示す図である。実施の形態1にかかる復号装置100たとえば図2-1参照は、マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から、算術符号化の前のデータを復号する。算術符号化は、たとえばレンジコーダである。ここではVP8による復号処理について説明するが、エンコードおよびデコードの方式はVP8に限らない。VP8で使用されている算術符号化はマルチコンテキスト型であるため、シンタクスやシンタクス内のビット位置によって二値0/1の発生確率が変化する。また算術符号化に用いる数直線範囲Rangeは0から255の整数値として扱われる。そして、範囲Rangeの値が128未満になった場合には、範囲Rangeと現在の符号値符号値Valueの値を倍にすること再正規化により、精度を保ったまま符号化および復号が行われる。図1-1に示すデータ列110は、復号装置100によって復号されるデータである。位置x1~x10は、データ列110における各位置たとえばビット位置を示している。復号装置100は、復号処理を行うことによって位置x1~x10における各値を得る。発生確率p1~p10は、それぞれ位置x1~x10における所定シンボルの発生確率以下、単に発生確率とも称する。を示している。所定シンボルは、たとえばデータ列110における優勢シンボルである。また、以下の説明において、データ列110における優勢シンボルは0とする。復号対象位置101は、復号装置100による現在の復号対象の位置を示している。初期状態における復号対象位置101は位置x1である。図1-2に示す数値範囲121は、データ列110が算術符号化により割り当てられた所定の数値範囲たとえば0~255を示している。限界値121aは、数値範囲121の限界値たとえば上限値を示している。符号値102は、数値範囲121に割り当てられた復号対象の符号値を示している。復号装置100は、データ列110の位置x1~x10を複数のグループに分けておく。各グループには連続する複数の位置が含まれる。図1-1に示す例では、位置x1~x10がグループ111~113に分けられている。位置x1~x3はグループ111に含まれている。位置x4~x7はグループ112に含まれている。位置x8~x10はグループ113に含まれている。たとえば、復号装置100は、位置x1~x10を所定数ずつ区切ってグループ分けしてもよいし、位置x1~x10を発生確率p1~p10に基づいて区切ってグループ分けしてもよいたとえば図20参照。復号装置100は、数値範囲121を取得して記憶する。また、復号装置100は、発生確率p1~p10を取得する。そして、復号装置100は、グループ111~113のうちの現在の復号対象位置101が属するグループの各発生確率の中から最小の発生確率を特定する。図1-1に示す例では、復号対象位置101の位置x1はグループ111に属しているため、グループ111に属する位置x1~x3における発生確率p1~p3のうちの最小の発生確率が特定される。また、復号装置100は、特定した発生確率に相当する割合で数値範囲121を縮小した場合における数値範囲121の減少幅を算出する。数値範囲122は、特定した発生確率に相当する割合で数値範囲121を縮小した数値範囲である。減少幅122aは、数値範囲121に対する数値範囲122の減少幅である。たとえば、減少幅122aは、数値範囲121の幅から数値範囲122の幅を減算することによって算出することができる。そして、復号装置100は、数値範囲121の限界値121aと符号値102との差分122bを減少幅122aによって除算した商を算出する。これにより、復号対象位置101以降の復号結果において所定シンボルが連続する最小の回数を算出することができる。図1-2に示す例では、商として2が算出される。つぎに、復号装置100は、算出した商が所定値以上である場合に、算出した商だけ連続する所定シンボルとなる復号結果を出力する。所定値は、連続復号を行うか否かを判定するための所定シンボルの連続数の閾値であり、たとえば1である。図1-2に示した例では商は2であるため、図1-3に示すように、2回連続する所定シンボル0、すなわち00が位置x1,x2の復号結果として出力される。これにより、一括復号による復号結果を得ることができる。また、復号装置100は、一括復号により復号結果を出力した場合に、現在の復号対象位置101から商の数だけ先の位置を次の復号対象位置101とする。図1-1の例では復号対象位置101が位置x1であり、商が2であるため、図1-3に示すように、新たな復号対象位置101は位置x1の2つ先の位置x3となる。復号装置100は、新たな復号対象位置101について再度復号処理を行う。また、復号装置100は、算出した商が所定値以上である場合に、減少幅122aに商を乗じた幅だけ数値範囲121を縮小する。図1-2に示す例では、商が2であるため、減少幅122aの2倍の幅だけ数値範囲121が縮小される。このため、数値範囲121は縮小されて数値範囲123のようになる。また、復号装置100は、縮小した数値範囲123の限界値が閾値たとえば128を下回った場合は、数値範囲123および符号値102を同一比率で増大させる再正規化を行ってもよい。たとえば、復号装置100は、数値範囲123の幅が閾値を下回った場合は、数値範囲123の幅が閾値以上になるまで、数値範囲123および符号値102を倍増する処理を繰り返す。これにより、精度を保ったまま復号処理を行うことができる。再正規化を行う場合は、復号装置100は、数値範囲121の限界値121aと符号値102との差分122bと、数値範囲121の限界値121aと閾値との差分と、のうちの小さい方の差分を減少幅122aによって除算した商を算出する。これにより、復号対象位置101以降の復号結果において所定シンボルが連続し、かつ再正規化が発生しない最小の回数を算出することができる。また、復号装置100は、算出した商が所定値未満たとえば0であった場合に、数値範囲121と、復号対象位置101に対応する発生確率p1と、符号値102と、に基づいて復号対象位置101位置x1を復号した復号結果を出力する。この場合は、復号装置100は、復号結果と、発生確率p1と、に応じて復号対象位置101を縮小する。また、この場合は、復号装置100は、位置x1~x10のうちの現在の復号対象位置101から1つ先の位置を次の復号対象位置101とする。このように、復号装置100によれば、復号データの各位置をグループ分けし、復号対象の位置が属するグループの所定シンボルの最小の発生確率に基づいて所定シンボルの最小の連続数を算出することができる。これにより、一括復号数を予め定めておかなくても、所定シンボルの発生確率に基づいて一括復号数を適応的に変化させて一括復号を行うことができる。このため、一括復号の実施確率を高めて復号の高速化を図ることができる。復号装置のハードウェア構成図2は、復号装置のハードウェア構成の一例を示す図である。図1に示した復号装置100は、たとえば図2に示す情報処理装置200によって実現することができる。情報処理装置200は、CPU210と、メインメモリ220と、補助メモリ230と、ユーザインタフェース240と、通信インタフェース250と、バス201と、を備えている。CPU210、メインメモリ220、補助メモリ230、ユーザインタフェース240および通信インタフェース250は、バス201によって接続されている。CPU210CentralProcessingUnitは、情報処理装置200の全体の制御を司る。また、情報処理装置200はCPU210を複数備えていてもよい。メインメモリ220は、たとえばRAMRandomAccessMemoryである。メインメモリ220は、CPU210のワークエリアとして使用される。補助メモリ230は、たとえば、ハードディスク、光ディスク、フラッシュメモリなどの不揮発メモリである。補助メモリ230には、情報処理装置200を動作させる各種のプログラムが記憶されている。補助メモリ230に記憶されたプログラムは、メインメモリ220にロードされてCPU210によって実行される。ユーザインタフェース240は、たとえば、ユーザからの操作入力を受け付ける入力デバイスや、ユーザへ情報を出力する出力デバイスなどを含む。入力デバイスは、たとえばキーたとえばキーボードやリモコンなどによって実現することができる。出力デバイスは、たとえばディスプレイやスピーカなどによって実現することができる。また、タッチパネルなどによって入力デバイスおよび出力デバイスを実現してもよい。ユーザインタフェース240は、CPU210によって制御される。通信インタフェース250は、たとえば、無線によって情報処理装置200の外部との間で通信を行う通信インタフェースである。たとえば、復号装置100は、算術符号化されたストリームデータを通信インタフェース250によって受信し、受信したストリームデータを復号する。通信インタフェース250は、CPU210によって制御される。シンタクスとグループIDとの対応情報図3-1は、シンタクスとグループIDとの対応情報の一例を示す図である。図3-1に示す対応情報310は、シンタクスとグループIDとを対応付ける対応情報である。対応情報310は、たとえば復号装置100のメインメモリ220や補助メモリ230に記憶されている。対応情報310に示すように、シンタクスSyntax_A~Syntax_Xのそれぞれは、グループIDが0~Yの各グループに分類されている。たとえば、シンタクスSyntax_AはグループID0のグループに属している。シンタクスSyntax_B~Syntax_DはグループID1のグループに属している。図3-1に示す例では、シンタクス単位でグループ分けを行う例について説明したが、グループ分けはシンタクス単位に限らず、シンタクスのビット位置単位など、コンテキスト優勢シンボルの発生確率単位で行ってもよい。グループIDと発生確率の対応情報図3-2は、グループIDと発生確率の対応情報の一例を示す図である。図3-2に示す対応情報320は、グループIDと優勢シンボルの最小の発生確率とを対応付ける対応情報である。対応情報320は、たとえば復号装置100のメインメモリ220や補助メモリ230に記憶されている。対応情報320に示す最小の発生確率probG0~probGYは、それぞれグループID0~Yが示すグループに属する各シンタクスの優勢シンボルの発生確率のうちの最小の発生確率を示している。たとえば、最小の発生確率probG1は、グループID1が示すグループに属するシンタクスSyntax_B~Syntax_Dの優勢シンボルの発生確率のうちの最小の発生確率を示している。復号装置による復号処理図4は、復号装置による復号処理の一例を示すフローチャートである。復号装置100は、復号処理としてたとえば以下の各ステップを実行する。まず、復号装置100は、復号対象のシンタクスを初期化するステップS401。ステップS401において、復号装置100は、たとえば、最初の復号位置におけるシンタクスを、符号化側から予め通知されたシンタクスに設定する。つぎに、復号装置100は、入力されたデータストリームの先頭の8ビットread_bit8を取り出して符号値Valueの初期値として設定するステップS402。また、復号装置100は、数直線を示す範囲Rangeの初期値として255を設定するステップS403。つぎに、復号装置100は、復号対象のシンタクスの各ビットにおける0優勢シンボルの発生確率probを取得するステップS404。つぎに、復号装置100は、一括復号ビット数Nを算出するステップS405。一括復号ビット数Nは、以降の復号結果において優勢シンボルである0が連続する回数である。ステップS405における一括復号ビット数Nの算出処理については後述するたとえば図8参照。つぎに、復号装置100は、ステップS405によって算出した一括復号ビット数Nが0であるか否かを判断するステップS406。一括復号ビット数Nが0でない場合ステップS406:Noは、復号装置100は、Nビット復号処理を行いステップS407、ステップS409へ移行する。Nビット復号処理は、Nビットの0を一括して復号する処理である。ステップS407におけるNビット復号処理については後述たとえば図7参照する。ステップS406において、一括復号ビット数Nが0である場合ステップS406:Yesは、復号装置100は、1ビット復号処理を行いステップS408、ステップS409へ移行する。1ビット復号処理は、次の復号結果が0および1のいずれであるかを判定して復号する処理である。ステップS408における1ビット復号処理については後述たとえば図5参照する。つぎに、復号装置100は、ステップS407のNビット復号処理またはステップS408の1ビット復号処理による復号結果を逆二値化するステップS409。つぎに、復号装置100は、ステップS409の逆二値化の結果に基づいて復号対象のシンタクスを更新するステップS410。つぎに、復号装置100は、復号対象の全てのシンタクスを復号したか否かを判断するステップS411。ステップS411において、全てのシンタクスを復号していない場合ステップS411:Noは、復号装置100は、ステップS404へ戻る。全てのシンタクスを復号した場合ステップS411:Yesは、復号装置100は、ステップS409の逆二値化により得られた復号結果のデータを出力しステップS412、一連の処理を終了する。以上の各ステップにより、入力されたデータストリームの復号結果のデータを得ることができる。1ビット復号処理図5は、1ビット復号処理の一例を示すフローチャートである。復号装置100は、図4に示したステップS408における1ビット復号処理として、たとえば以下の各ステップを実行する。まず、復号装置100は、現在の範囲Rangeと、復号対象の1ビットにおける優勢シンボルの発生確率probに基づいて境界値splitを算出するステップS501。境界値splitは、範囲Rangeにおける0と1の境界値である。優勢シンボルの発生確率probは、復号対象のシンタクスおよびシンタクスのビット位置に基づいて求めることができる。ステップS501において、復号装置100は、たとえば1範囲Range-1prob>>8によって境界値splitを算出することができる。つぎに、復号装置100は、現在の符号値Valueが、ステップS501によって算出された境界値split以上であるか否かを判断するステップS502。現在の符号値Valueが境界値split以上である場合ステップS502:Yesは、復号装置100は、復号値として1を出力するステップS503。つぎに、復号装置100は、範囲Rangeから境界値splitを減算するステップS504。また、復号装置100は、符号値Valueから境界値splitを減算しステップS505、ステップS508へ移行する。ステップS502において、現在の符号値Valueが境界値split未満である場合ステップS502:Noは、復号装置100は、復号値として0を出力するステップS506。つぎに、復号装置100は、範囲Rangeに境界値splitの値を設定しステップS507、ステップS508へ移行する。つぎに、復号装置100は、範囲Rangeが128未満か否かを判断するステップS508。範囲Rangeが128未満である場合ステップS508:Yesは、復号装置100は、再正規化を行う。すなわち、復号装置100は、範囲Rangeの値を1ビット左シフトさせることで2倍にするステップS509。また、復号装置100は、符号値Valueの値を1ビット左シフトさせることで2倍にするステップS510。つぎに、復号装置100は、ストリームデータから1ビットread_bit1を取り出して符号値Valueの最下位ビットとして補充しステップS511、ステップS508へ戻る。このように、復号装置100は、再正規化を実行する度にストリームデータを1ビットずつ読み出す。ステップS508において、範囲Rangeが128以上である場合ステップS508:Noは、復号装置100は、一連の処理を終了する。以上の各ステップにより、復号装置100は、1ビットの復号を行うことができる。また、復号装置100は、1ビットの復号によって範囲Rangeが128未満になった場合は、範囲Rangeおよび符号値Valueを2倍にしてストリームデータを1ビット読み出すことができる。図6は、1ビット復号処理の一例を示す図である。図6においては、図5に示した1ビット復号処理を連続して4回行った場合の例について説明する。1~4回目の1ビット復号処理において、シンタクスの優勢シンボル0の発生確率は、それぞれ204/256,230/256,179/256,204/256と遷移するものとする。まず、初期化処理として、ストリームデータ610から先頭の8ビットのデータ列611が符号値Valueに設定される。データ列611は10101000168とする。また、範囲Rangeに255が設定される。1回目の1ビット復号処理においては、範囲Rangeが255であり、発生確率が204/256であるため、境界値splitは203小数点以下切り捨て。以下同様となる。したがって、符号値Valueの168は境界値split未満であるため、復号値は0となる。また、以降の範囲Rangeは境界値splitの203となる。また、範囲Rangeは128以上であるため、再正規化は発生しない。2回目の1ビット復号処理においては、範囲Rangeが203であり、発生確率が230/256であるため、境界値splitは182となる。したがって、符号値Valueの168は境界値split未満であるため、復号値は0となる。また、以降の範囲Rangeは境界値splitの182となる。また、範囲Rangeは128以上であるため、再正規化は発生しない。3回目の1ビット復号処理においては、範囲Rangeが182であり、発生確率が179/256であるため、境界値splitは127となる。したがって、符号値Valueの168は境界値split以上であるため、復号値は1となる。また、範囲Rangeは境界値splitの127を減算した55となる。また、符号値Valueは境界値splitの127を減算した41となる。また、範囲Rangeが128未満となったため、再正規化が発生する。再正規化により、範囲Rangeは2倍の110となり、符号値Valueも2倍の82となる。そして、ストリームデータ610から新たに読み出した1ビットは1となるため、符号値Valueは83となる。1回目の再正規化後の範囲Rangeはまだ128未満であるため、2回目の再正規化が発生する。2回目の再正規化により、範囲Rangeは2倍の220となり、符号値Valueも2倍の166となる。そして、ストリームデータ610から新たに読み出した1ビットは1となるため、符号値Valueは167となる。2回目の再正規化後の範囲Rangeは128以上であるため、3回目の1ビット復号処理においてはこれ以上の再正規化は発生しない。4回目の1ビット復号処理においては、範囲Rangeが220であり、発生確率が204/256であるため、境界値splitは175となる。したがって、符号値Valueの167は境界値split未満であるため、復号値は0となる。また、以降の範囲Rangeは境界値splitの175となる。1~4回目の1ビット復号処理により、復号値として0010を得ることができる。Nビット復号処理図7は、Nビット復号処理の一例を示すフローチャートである。復号装置100は、図4に示したステップS407におけるNビット復号処理として、たとえば以下の各ステップを実行する。まず、復号装置100は、現在の範囲Rangeおよび優勢シンボルの発生確率probに基づいて境界値splitを算出するステップS701。ステップS701における境界値splitの算出は、図5に示したステップS501と同様である。つぎに、復号装置100は、復号値として優勢シンボルである0を出力するステップS702。つぎに、復号装置100は、範囲Rangeに境界値splitの値を設定するステップS703。また、復号装置100は、一括復号ビット数Nをデクリメント-1するステップS704。つぎに、復号装置100は、優勢シンボルの発生確率probを、次のビット位置の発生確率に更新するステップS705。つぎに、復号装置100は、一括復号ビット数Nが0になったか否かを判断するステップS706。一括復号ビット数Nが0になっていない場合ステップS706:Noは、復号装置100は、ステップS701へ戻る。一括復号ビット数Nが0になった場合ステップS706:Yesは、復号装置100は一連の処理を終了する。以上の各ステップにより、Nビットの復号値0を得ることができる。一括復号ビット数Nの算出処理図8は、一括復号ビット数Nの算出処理の一例を示すフローチャートである。復号装置100は、図4に示したステップS405における一括復号ビット数Nの算出処理として、たとえば以下の各ステップを実行する。図8に示す差分Diffは、再正規化が発生し、または復号値が1となるまでの範囲Rangeの余剰を示す値である。まず、復号装置100は、現在の符号値Valueと再正規化の閾値である128を比較し、符号値Valueが128未満であるか否かを判断するステップS801。符号値Valueが128未満である場合は、復号処理を繰り返した場合に、復号値が1となる以前に再正規化が発生すると判断することができる。このため、ステップS801において符号値Valueが128未満である場合ステップS801:Yesは、復号装置100は、差分Diffに範囲Rangeと128の差分を設定しステップS802、ステップS804へ移行する。これにより、再正規化が発生するまでの範囲Rangeの余剰を差分Diffに設定することができる。符号値Valueが128以上である場合は、復号処理を繰り返した場合に、再正規化が発生する以前に復号値が1となると判断することができる。このため、ステップS801において符号値Valueが128以上である場合ステップS801:Noは、復号装置100は、差分Diffに範囲Rangeと符号値Valueの差分を設定しステップS803、ステップS804へ移行する。これにより、復号値が1となるまでの範囲Rangeの余剰を差分Diffに設定することができる。つぎに、復号装置100は、復号対象のシンタクスに対応するグループIDを対応情報310から取得するステップS804。つぎに、復号装置100は、ステップS804によって取得したグループIDに対応する最小の発生確率probGグループIDを対応情報320から取得するステップS805。つぎに、復号装置100は、復号処理を1回行うことによる範囲Rangeの減少量の最大値である減少値SubValを算出するステップS806。具体的には、復号装置100は、現在の範囲Rangeに、ステップS805によって取得した発生確率probGグループIDを8ビットシフトさせた値を乗算し、乗算結果を現在の範囲Rangeから減算することで減少値SubValを算出する。つぎに、復号装置100は、ステップS806により算出した減少値SubValを除数とし、差分Diffを被除数として除算した商を一括復号ビット数Nとして算出しステップS807、一連の処理を終了する。以上の各ステップにより、復号値が0となりかつ再正規化が発生しない最小の復号処理の回数を一括復号ビット数Nとして算出することができる。Nビット復号処理図9は、Nビット復号処理の一例を示す図である。図9において、範囲Range1~RangeNは、それぞれ1~N回目の復号処理における範囲Rangeを示している。境界値split1~splitNは、それぞれ1~N回目の復号処理における境界値splitを示している。発生確率prob1~Nは、それぞれ1~N回目の復号処理における0の発生確率probである。図9に示すように、1~N回目の復号処理において範囲Rangeは範囲Range1~RangeNのように減少していく。そして、N回目の復号処理の範囲RangeNまで範囲Rangeが符号値Valueより大きければ、1~N回目の復号処理における各復号値は0となる。また、N回目の復号処理の範囲RangeNまで範囲Rangeが128閾値以上であれば、1~N回目の復号処理において再正規化が発生しない。すなわち、復号値がN回連続して0となる条件は範囲RangeN>Valueである。また、N回の復号処理において再正規化が発生しない条件は範囲RangeN≧128である。したがって、範囲RangeN>Valueおよび範囲RangeN≧128を満たす場合はNビット復号処理が可能と判定する。一方、範囲RangeN>Valueおよび範囲RangeN≧128のいずれか一方でも満たさない場合はNビット復号処理は不可と判定することができる。復号装置の構成図10は、復号装置の構成の一例を示す図である。図10に示すように、復号装置100は、シンタクス情報管理FF1001と、確率テーブル部1002と、Range_FF1003と、Value_FF1004と、一括復号ビット数算出部1005と、1ビット復号処理部1006と、Nビット復号処理部1007と、MUX1008と、逆二値化部1009と、次シンタクス判定部1010と、を備えている。復号装置100の復号対象のデータストリームは1ビット復号処理部1006へ入力される。シンタクス情報管理FF1001は、復号対象のシンタクスのステートマシンである。シンタクス情報管理FF1001は、初期状態において、復号対象のシンタクスの初期値を示すシンタクス情報を出力する。また、シンタクス情報管理FF1001は、次シンタクス判定部1010から次の復号対象のシンタクス情報が入力されると、入力されたシンタクス情報を出力する。シンタクス情報管理FF1001から出力されたシンタクス情報は、確率テーブル部1002、一括復号ビット数算出部1005および逆二値化部1009へ入力される。確率テーブル部1002は、シンタクスごとの0の発生確率probを示す確率テーブルを有する。確率テーブル部1002は、シンタクス情報管理FF1001から出力されたシンタクス情報が示すシンタクスに対応する発生確率probを確率テーブルから取得する。そして、確率テーブル部1002は、取得した発生確率probを1ビット復号処理部1006およびNビット復号処理部1007へ出力する。Range_FF1003は、現在の範囲Rangeのステートマシンである。Range_FF1003は、初期状態において、255を現在の範囲Rangeとして出力する。また、Range_FF1003は、MUX1008からNewRange2またはNewRange1が入力されると、入力されたNewRange1またはNewRange2を現在の範囲Rangeとして出力する。Range_FF1003から出力された範囲Rangeは、一括復号ビット数算出部1005、1ビット復号処理部1006およびNビット復号処理部1007へ入力される。Value_FF1004は、現在の符号値Valueのステートマシンである。Value_FF1004は、初期状態において、データストリームの先頭の8ビットを符号値Valueとして出力する。また、Value_FF1004は、1ビット復号処理部1006からNewValueが入力されると、入力されたNewValueを現在の符号値Valueとして出力する。Value_FF1004から出力された符号値Valueは、一括復号ビット数算出部1005、1ビット復号処理部1006およびNビット復号処理部1007へ入力される。一括復号ビット数算出部1005は、シンタクス情報管理FF1001からのシンタクス情報と、Range_FF1003からの範囲Rangeと、Value_FF1004からの符号値Valueと、に基づいて一括復号ビット数Nを算出する。一括復号ビット数算出部1005は、算出した一括復号ビット数Nを、Nビット復号処理部1007、MUX1008および逆二値化部1009へ出力する。一括復号ビット数算出部1005の構成例については後述するたとえば図13参照。1ビット復号処理部1006は、確率テーブル部1002からの発生確率probと、Range_FF1003からの範囲Rangeと、Value_FF1004からの符号値Valueと、に基づいてデータストリームの1ビット復号処理を行う。1ビット復号処理部1006は、1ビット復号処理により得られた復号値1/0を逆二値化部1009へ出力する。また、1ビット復号処理部1006は、1ビット復号処理後の符号値ValueをNewValueとしてValue_FF1004へ出力する。また、1ビット復号処理部1006は、1ビット復号処理後の範囲RangeをNewRange1としてMUX1008へ出力する。Nビット復号処理部1007には、確率テーブル部1002からの発生確率probと、Range_FF1003からの範囲Rangeと、が入力される。また、Nビット復号処理部1007には、一括復号ビット数算出部1005からの一括復号ビット数Nと、Value_FF1004からの符号値Valueと、が入力される。Nビット復号処理部1007は、入力された発生確率prob、範囲Range、一括復号ビット数Nおよび符号値Valueに基づいてデータストリームのNビット復号処理を行う。また、Nビット復号処理部1007は、Nビット復号処理後の範囲RangeをNewRange2としてMUX1008へ出力する。また、Nビット復号処理部1007は、NewRange2>符号値ValueおよびNewRange2≧128の少なくともいずれかを満たさない場合にN_bit_errをMUX1008および逆二値化部1009へ出力してもよい。Nビット復号処理部1007の構成例については後述するたとえば図12参照。MUX1008には、1ビット復号処理部1006からのNewRange1と、Nビット復号処理部1007からのNewRange2と、が入力される。MUX1008は、一括復号ビット数算出部1005から出力された一括復号ビット数Nが0である場合は、1ビット復号処理部1006からのNewRange1をRange_FF1003へ出力する。また、MUX1008は、一括復号ビット数算出部1005から出力された一括復号ビット数Nが1以上である場合は、Nビット復号処理部1007からのNewRange2をRange_FF1003へ出力する。また、MUX1008は、Nビット復号処理部1007からN_bit_errが出力された場合は、一括復号ビット数Nが1以上であっても1ビット復号処理部1006からのNewRange1をRange_FF1003へ出力するようにしてもよい。これにより、Nビットを一括復号するとグループを跨いでしまう場合は、一括復号ビット数Nが1以上であっても1ビット復号結果を用いることができる。逆二値化部1009は、シンタクス情報管理FF1001から出力されるシンタクス情報に基づいて復号値を逆二値化する。具体的には、一括復号ビット数算出部1005から出力された一括復号ビット数Nが0である場合は、1ビット復号処理部1006から出力された復号値を逆二値化する。また、逆二値化部1009は、一括復号ビット数算出部1005から出力された一括復号ビット数Nが1以上である場合は、一括復号ビット数Nだけ連続する0を復号値として逆二値化する。逆二値化部1009は、逆二値化したデータを復号データとして出力する。逆二値化部1009から出力された復号データは、復号結果として復号装置100から出力される。また、復号データは次シンタクス判定部1010へ入力される。また、逆二値化部1009は、Nビット復号処理部1007からN_bit_errが出力された場合は、一括復号ビット数Nが1以上であっても1ビット復号処理部1006から出力された復号値を逆二値化してもよい。これにより、Nビットを一括復号するとグループを跨いでしまう場合は、一括復号ビット数Nが1以上であっても1ビット復号結果を用いることができる。次シンタクス判定部1010は、逆二値化部1009から出力された復号データに基づいて次の復号対象のシンタクスを判定する。次シンタクス判定部1010は、判定したシンタクスを示すシンタクス情報をシンタクス情報管理FF1001へ出力する。このように、マルチコンテキスト型の算術符号に対応する復号装置100において、グループごとに一つの発生確率を用いて一括復号ビット数Nを算出することができる。これにより、一括復号ビット数Nを算出するためにNビット復号処理部1007と同等の回路を設けなくても、一括復号ビット数Nを算出することが可能になり、回路規模を小さくすることができる。図10に示したRange_FF1003は、範囲Range数値範囲を記憶する記憶部である。記憶部は、たとえば図2に示したメインメモリ220、補助メモリ230などによって実現してもよい。確率テーブル部1002は、復号データの各位置における0所定シンボルの発生確率を取得する取得部である。取得部は、たとえば図2に示したCPU210、メインメモリ220、通信インタフェース250などによって実現してもよい。一括復号ビット数算出部1005は、確率テーブル部1002で取得された発生確率のうちの、復号対象の位置が属するグループにおける最小の発生確率を特定する特定部である。また、一括復号ビット数算出部1005は、特定した発生確率に相当する割合で範囲Rangeを縮小した場合における範囲Rangeの減少幅を算出する算出部である。また、一括復号ビット数算出部1005は、範囲Rangeの限界値と符号値Valueとの差分を、算出した減少幅によって除算した商を算出する除算部である。特定部、算出部および除算部は、たとえば図2に示したCPU210によって実現してもよい。Nビット復号処理部1007は、一括復号ビット数算出部1005によって算出された商が1所定値以上である場合に、商だけ連続する0所定シンボルとなる復号結果を出力する一括復号処理部である。一括復号処理部は、たとえば図2に示したCPU210によって実現してもよい。また、Nビット復号処理部1007は、一括復号ビット数算出部1005によって算出された商が1以上である場合に、減少幅に商を乗じた幅だけ範囲Rangeを縮小する縮小部である。縮小部は、たとえば図2に示したCPU210によって実現してもよい。1ビット復号処理部1006は、一括復号ビット数算出部1005によって算出された商が1未満である場合に、範囲Rangeと、復号対象の位置における発生確率と、符号値Valueと、に基づいて復号対象の位置を復号する個別復号処理部である。個別復号処理部は、たとえば図2に示したCPU210によって実現してもよい。また、1ビット復号処理部1006は、復号結果と、復号対象の位置における発生確率と、に応じて範囲Rangeを縮小する縮小部である。また、1ビット復号処理部1006は、縮小した範囲Rangeの限界値が128閾値を下回った場合に、範囲Rangeおよび符号値Valueを同一比率で増大させる再正規化を行う再正規化部である。再正規化部は、たとえば図2に示したCPU210によって実現してもよい。1ビット復号処理部の構成図11は、1ビット復号処理部の構成の一例を示す図である。図11に示すように、1ビット復号処理部1006は、減算部1101と、乗算部1102と、シフト部1103と、加算部1104と、減算部1105,1106と、比較部1107と、MUX1108,1109と、再正規化制御部1110と、シフト部1111,1112と、シフト部1113と、OR部1114と、を備えている。データストリームは、シフト部1113へ入力される。確率テーブル部1002図10参照からの発生確率probは、乗算部1102へ入力される。Range_FF1003図10参照からの範囲Rangeは、減算部1101および減算部1105へ出力される。Value_FF1004図10参照からの符号値Valueは、減算部1106、比較部1107およびMUX1109へ出力される。減算部1101は、Range_FF1003からの範囲Rangeを1で減算し、減算結果を乗算部1102へ出力する。乗算部1102は、確率テーブル部1002からの発生確率probと、減算部1101から出力された値と、を乗算する。乗算部1102は、乗算結果をシフト部1103へ出力する。シフト部1103は、乗算部1102から出力された値を8ビットシフトさせ、8ビットシフトさせた値を加算部1104へ出力する。加算部1104は、シフト部1103から出力された値に1を加算し、加算結果を境界値splitとして出力する。加算部1104から出力された境界値splitは、減算部1105,1106、比較部1107およびMUX1108へ入力される。減算部1105は、Range_FF1003からの範囲Rangeから、加算部1104から出力された境界値splitを減算し、減算結果をMUX1108へ出力する。減算部1106は、Value_FF1004からの符号値Valueから、加算部1104から出力された境界値splitを減算し、減算結果をMUX1108へ出力する。比較部1107は、Value_FF1004からの符号値Valueと、加算部1104から出力された境界値splitと、を比較し、符号値Valueが境界値split以上であるか否かを判断する。比較部1107は、符号値Valueが境界値split以上である場合は1を出力し、符号値Valueが境界値split未満である場合は0を出力する。比較部1107から出力された値はMUX1108,1109へ出力される。また、比較部1107から出力された値は、1ビット復号処理による復号値1/0として逆二値化部1009図10参照へ出力される。MUX1108は、比較部1107から1が出力された場合は減算部1105から出力された値を範囲Rangeとして出力する。また、MUX1108は、比較部1107から0が出力された場合は加算部1104から出力された境界値splitを範囲Rangeとして出力する。MUX1108から出力された範囲Rangeは再正規化制御部1110およびシフト部1111へ出力される。MUX1109は、比較部1107から1が出力された場合は減算部1106からの値を符号値Valueとして出力する。また、MUX1109は、比較部1107から0が出力された場合はValue_FF1004からの符号値Valueを出力する。MUX1109から出力された符号値Valueはシフト部1112へ出力される。再正規化制御部1110Renorm:Renormalizationは、MUX1108から出力された範囲Rangeに基づいて、再正規化を実行する回数を算出する。たとえば再正規化の閾値が128である場合は、再正規化制御部1110は、128を範囲Rangeで除算した商を再正規化を実行する回数として算出する。再正規化制御部1110は、算出した回数をシフト量としてシフト部1111,1112およびシフト部1113へ出力する。シフト部1111は、MUX1108から出力された範囲Rangeを、再正規化制御部1110から出力されたシフト量ビット数だけシフトさせる。シフト部1111は、シフトさせた範囲RangeをNewRange1としてRange_FF1003図10参照へ出力する。シフト部1112は、MUX1109から出力された符号値Valueを、再正規化制御部1110から出力されたシフト量ビット数だけシフトさせ、シフトさせた符号値ValueをOR部1114へ出力する。シフト部1113は、入力されたビットストリームを、再正規化制御部1110から出力されたシフト量ビット数だけ読み出す。そして、シフト部1113は、読み出したビットをOR部1114へ出力する。OR部1114は、シフト部1112から出力された符号値Valueと、シフト部1113から出力されたビットと、の和をNewValueとしてValue_FF1004図10参照へ出力する。Nビット復号装置の構成図12は、Nビット復号装置の構成の一例を示す図である。図12に示すように、Nビット復号処理部1007は、M個M≧NのMUX1211~121Mと、M個の境界値算出部1221~122Mと、範囲チェック部1230と、を備えている。MUX1211~121Mには、それぞれ発生確率prob_1~prob_Mが入力される。発生確率prob_1~prob_Mは、それぞれ1~Mビット目における0の発生確率probである。また、MUX1211~121Mには、それぞれ256の値が入力される。また、MUX1211~121Mには、一括復号ビット数算出部1005から出力された一括復号ビット数Nが入力される。MUX1211~121Mのうちの1~N番目のMUX1211~121Nは、それぞれ入力された発生確率prob_1~prob_Nを発生確率probとしてそれぞれ境界値算出部1221~122Nへ出力する。一方、MUX1211~121MのうちのN1~M番目のMUX121N1~121Mは、入力された256を発生確率probとしてそれぞれ境界値算出部122N1~122Mへ出力する。境界値算出部1221は、Range_FF1003から出力された範囲Rangeと、MUX1211から出力された発生確率probと、に基づいて1ビット目の復号処理後の境界値splitを算出する。境界値算出部1221は、算出した境界値splitを境界値算出部1222へ出力する。境界値算出部1222は、境界値算出部1221から出力された境界値splitを範囲Rangeとし、MUX1212から出力された発生確率probに基づいて2ビット目の復号処理後の境界値splitを算出する。境界値算出部1222は、算出した境界値splitを境界値算出部1223へ出力する。同様に、境界値算出部1223~122Mは、前段の境界値算出部から出力された境界値splitを範囲Rangeとし、MUX1213~121Mから出力された発生確率probに基づいて3~Mビット目の復号処理後の境界値splitを算出する。ここで、境界値算出部122N1~122Mは、入力される発生確率が256となっているため、前段の境界値算出部から出力された境界値splitを変更せずに後段の境界値算出部へ出力することになる。このように、境界値算出部1221~122Mの前段で入力を選択しておくことにより、後段に必要とされる境界値算出部ごとの比較器と、比較結果をまとめるプライオリティエンコーダ、その出力によって最終データの選択を行うMto1セレクタが不要となるため、Nビット復号処理部1007における一括復号処理を高速化することができる。境界値算出部122Mから出力された境界値splitは、NewRange2としてMUX1008図10参照へ出力されるとともに範囲チェック部1230へ入力される。範囲チェック部1230には、Value_FF1004図10参照からの符号値Valueと、128の値と、境界値算出部122Mからの境界値splitと、が入力される。範囲チェック部1230は、NewRange2>符号値ValueおよびNewRange2≧128を満たす場合はN_bit_errを出力しない。また、範囲チェック部1230は、NewRange2>符号値ValueおよびNewRange2≧128の少なくともいずれかを満たさない場合はN_bit_errを出力する。範囲チェック部1230から出力されたN_bit_errは、MUX1008および逆二値化部1009図10参照へ出力される。一括復号ビット数算出部の構成図13は、一括復号ビット数算出部の構成の一例を示す図である。図13に示すように、一括復号ビット数算出部1005は、比較部1301と、減算部1302、減算部1303と、MUX1304と、グループID_LUT部1305と、probG_LUT部1306と、乗算部1307と、シフト部1308と、減算部1309と、除算部1310と、を備えている。比較部1301は、Value_FF1004から出力された符号値Valueと、128の値と、を比較する。比較部1301は、比較結果をMUX1304へ出力する。減算部1302は、Range_FF1003から出力された範囲Rangeから、128の値を減算する。減算部1302は、減算結果をMUX1304へ出力する。減算部1303は、Range_FF1003から出力された範囲Rangeから、Value_FF1004から出力された符号値を減算する。減算部1303は、減算結果をMUX1304へ出力する。MUX1304は、符号値Valueが128未満である旨の比較結果が比較部1301から出力された場合は、減算部1302から出力された減算結果を差分Diffとして出力する。また、MUX1304は、符号値Valueが128以上である旨の比較結果が比較部1301から出力された場合は、減算部1303から出力された減算結果を差分Diffとして除算部1310へ出力する。グループID_LUT部1305LookUpTable:ルックアップテーブルは、シンタクスとグループIDとの対応情報たとえば図3-1の対応情報310を記憶している。グループID_LUT部1305は、シンタクス情報管理FF1001から出力されたシンタクス情報が示すシンタクスに対応するグループIDを対応情報から取得し、取得したグループIDをprobG_LUT部1306へ出力する。probG_LUT部1306は、グループIDと発生確率probGとの対応情報たとえば図3-2の対応情報320を記憶している。probG_LUT部1306は、グループID_LUT部1305から出力されたグループIDが示すシンタクスに対応する最小の発生確率probGグループIDを対応情報から取得し、取得した発生確率probGグループIDを乗算部1307へ出力する。乗算部1307は、Range_FF1003から出力された範囲Rangeと、probG_LUT部1306から出力された発生確率probGグループIDと、を乗算する。乗算部1307は、乗算結果をシフト部1308へ出力する。シフト部1308は、乗算部1307から出力された値を8ビットシフトさせる。シフト部1308は、8ビットシフトさせた値を減算部1309へ出力する。減算部1309は、Range_FF1003から出力された範囲Rangeを、シフト部1308から出力された値で減算する。減算部1309は、減算結果を減少値SubValとして除算部1310へ出力する。除算部1310は、MUX1304から出力された差分Diffを、減算部1309から出力された減少値SubValで除算する。除算部1310は、除算結果の商を一括復号ビット数Nとして出力する。このように、実施の形態1にかかる復号装置100によれば、優勢シンボルの発生確率をグループ分けし、復号対象が属するグループの最小の発生確率に基づいて優勢シンボルの連続数を算出し、算出結果に基づいて一括復号を行うことができる。これにより、一括復号の実施確率を高くし、復号処理の高速化の確率を高めることができる。実施の形態2実施の形態2においては、実施の形態1と異なる部分について説明する。グループIDと減少値の対応情報図14は、グループIDと減少値の対応情報の一例を示す図である。図14に示す対応情報1400は、グループIDと減少値とを対応付ける対応情報である。対応情報1400は、たとえば復号装置100のメインメモリ220や補助メモリ230に記憶されている。対応情報1400に示す最大の減少値SubValG0~SubValGYは、それぞれグループID0~Yが示すグループに属する各シンタクスの復号処理において、範囲Rangeの最大の減少値SubValを示している。実施の形態1においては、図8に示したように、復号処理ごとに変化する範囲Range≦255に基づいて減少値SubValが算出される。これに対して、実施の形態2においては、範囲Rangeが常に255であると仮定して減少値SubValG0~probGYが予め算出され、対応情報1400として記憶されている。この場合は、図3-2に示した対応情報320は復号装置100に記憶されていなくてもよい。このように、実施の形態2においては、シンボル発生確率ではなく、数直線幅に換算した値を直接設定しておく。一括復号ビット数Nの算出処理図15は、一括復号ビット数Nの算出処理の一例を示すフローチャートである。実施の形態2にかかる復号装置100は、図4に示したステップS405における一括復号ビット数Nの算出処理として、たとえば図15に示す各ステップを実行する。図15に示すステップS1501~S1504は、図8に示したステップS801~S804と同様である。ステップS1504のつぎに、復号装置100は、ステップS1504によって取得したグループIDに対応する減少値SubValGグループIDを減少値SubValとして対応情報1400から取得するステップS1505。つぎに、復号装置100は、ステップS1505により算出した減少値SubValを除数とし、差分Diffを被除数として除算した商をNとして算出しステップS1506、一連の処理を終了する。これにより、復号値が0となりかつ再正規化が発生しない最小の復号処理の回数をNとして算出することができる。また、対応情報1400を用いることで、復号処理ごとに減少値SubValを算出しなくても一括復号ビット数Nを算出することができるため、計算量を少なくすることができる。なお、実施の形態2においては、現在の範囲Rangeに基づく減少値SubValの算出を行わず、範囲Rangeの最大値に基づく減少値SubValを用いるため、実施の形態1に比べて一括復号ビット数Nが小さくなる傾向となる。実施の形態2にかかる一括復号ビット数算出部の構成図16は、実施の形態2にかかる一括復号ビット数算出部の構成の一例を示す図である。図16において、図13に示した部分と同様の部分については同一の符号を付して説明を省略する。図16に示すように、実施の形態2にかかる一括復号ビット数算出部1005は、対応情報1400を用いることで復号対象の位置が属するグループに対応する減少幅を導出する導出部である。具体的には、実施の形態2にかかる一括復号ビット数算出部1005は、図13に示したprobG_LUT部1306、乗算部1307、シフト部1308および減算部1309に代えてSubVal_LUT部1601を備えている。SubVal_LUT部1601は、グループIDと減少値probGとの対応情報たとえば図14に示した対応情報1400を記憶している。SubVal_LUT部1601は、シンタクス情報管理FF1001から出力されたシンタクス情報が示すシンタクスに対応する減少値SubValGグループIDを対応情報から取得する。そして、SubVal_LUT部1601は、取得した減少値SubValGグループIDを減少値SubValとして除算部1310へ出力する。除算部1310は、MUX1304から出力された差分Diffを、SubVal_LUT部1601から出力された減少値SubValで除算する。除算部1310は、除算結果の商を一括復号ビット数Nとして出力する。このように、対応情報1400を用いることで、復号処理ごとに減少値SubValを算出しなくても一括復号ビット数Nを算出することができるため、一括復号ビット数算出部1005の回路規模を小さくすることができる。このように、実施の形態2にかかる復号装置100においては、グループごとに、グループにおける最小の発生確率に相当する割合で範囲Rangeを縮小した場合における範囲Rangeの減少幅が対応付けられた対応情報1400を用意しておく。そして、復号装置100は、対応情報1400を用いることで、復号対象の位置が属するグループに対応する減少幅を導出する。これにより、復号処理ごとに減少値を算出しなくても一括復号ビット数Nを算出することができるため、計算量を少なくすることができる。符号化処理図17は、符号化処理の一例を示すフローチャートである。復号装置100の復号対象のビットストリームを生成する符号化装置は、たとえば以下の各ステップを実行する。図17において、下限値lowvalueは範囲Rangeの下限値である。下限値lowvalueの初期値は0とする。範囲Rangeの初期値は255とする。カウント値countの初期値は0とする。まず、符号化装置は、現在の範囲Rangeと、符号化対象の1ビットにおける優勢シンボルの発生確率probに基づいて境界値splitを算出するステップS1701。つぎに、符号化装置は、符号化対象の値が1であるか否かを判断するステップS1702。符号化対象の値が1である場合ステップS1702:Yesは、符号化装置は、ステップS1701によって算出した境界値splitを下限値lowvalueに加算するステップS1703。また、符号化装置は、ステップS1701によって算出した境界値splitを範囲Rangeから減算しステップS1704、ステップS1706へ移行する。ステップS1702において、符号化対象の値が1でない場合ステップS1702:Noは、符号化装置は、ステップS1701によって算出した境界値splitを範囲Rangeに設定しステップS1705、ステップS1706へ移行する。つぎに、符号化装置は、範囲Rangeが128未満であるか否かを判断するステップS1706。範囲Rangeが128以上である場合ステップS1706:Noは、符号化装置は、一連の処理を終了する。範囲Rangeが128未満である場合ステップS1706:Yesは、符号化装置は、再正規化処理を実行しステップS1707、一連の処理を終了する。ステップS1707による再正規化処理については後述するたとえば図18参照。図18は、符号化処理における再正規化処理の一例を示すフローチャートである。符号化装置は、図17に示したステップS1707による再正規化処理として、たとえば図17に示す各ステップを実行する。まず、符号化装置は、範囲Rangeが128以上か否かを判断するステップS1801。ステップS1801において、範囲Rangeが128以上である場合ステップS1801:Yesは、符号化装置は、下限値lowvalueが128未満であるか否かを判断するステップS1802。下限値lowvalueが128未満である場合ステップS1802:Yesは、符号化装置は、引数xを0とするライト処理を実行しステップS1803、ステップS1809へ移行する。ライト処理については後述するたとえば図19参照。ステップS1802において、下限値lowvalueが128以上である場合ステップS1802:Noは、符号化装置は、下限値lowvalueが256以上であるか否かを判断するステップS1804。下限値lowvalueが256未満である場合ステップS1804:Noは、符号化装置は、下限値lowvalueから128を減算するステップS1805。また、符号化装置は、カウント値countに1を加算しステップS1806、ステップS1809へ移行する。ステップS1804において、下限値lowvalueが256以上である場合ステップS1804:Yesは、符号化装置は、下限値lowvalueから256を減算するステップS1807。つぎに、符号化装置は、引数xを1とするライト処理を実行しステップS1808、ステップS1809へ移行する。ライト処理については後述するたとえば図19参照。つぎに、符号化装置は、範囲Rangeを1ビット左シフトさせるステップS1809。また、符号化装置は、下限値lowvalueを1ビット左シフトさせステップS1810、ステップS1801へ戻る。ステップS1801において、範囲Rangeが128未満である場合ステップS1801:Noは、符号化装置は、一連の再正規化処理を終了する。図19は、再正規化処理におけるライト処理の一例を示すフローチャートである。符号化装置は、図18のステップS1803,S1808におけるライト処理として、図19に示す各ステップを実行する。まず、符号化装置は、FirstFlagが0であるか否かを判断するステップS1901。FirstFlagが0である場合ステップS1901:Yesは、符号化装置は、FirstFlagに0を設定しステップS1902、ステップS1904へ移行する。ステップS1901において、FirstFlagが0でない場合ステップS1901:Noは、符号化装置は、符号値として引数xを出力しステップS1903、ステップS1904へ移行する。つぎに、符号化装置は、カウント値countが0より大きいか否かを判断するステップS1904。ステップS1904において、カウント値countが0より大きい場合ステップS1904:Yesは、符号化装置は、符号値として引数1-xを出力するステップS1905。また、符号化装置は、カウント値countをデクリメント-1しステップS1906、ステップS1904へ戻る。ステップS1904において、カウント値countが0より大きくない場合ステップS1904:Noは、符号化装置は、一連の処理を終了する。符号化の具体例ここでは、符号化対象の最初のシンタクスがSyntaxA8ビットであり、SyntaxAの次のシンタクスがSyntaxB8ビットであるとする。SyntaxAの各ビット位置kにおける0の発生確率は、ProbTableA[k]={217,223,245,245,244,242,244,245}とする。SyntaxBの各ビット位置kにおける0の発生確率は、ProbTableB[k]={234,251,244,254,216,199,179,233}とする。split計算式には下記1式を用いるとする。split=1Range-1prob>>8...1また、たとえばSyntaxA=00000010とする。SyntaxAのビット位置00の符号化は下記2式のようになる。split=1255-1217>>8=216Range=split=216...2SyntaxAのビット位置10の符号化は下記3式のようになる。split=1216-1223>>8=188Range=split=188...3SyntaxAのビット位置20の符号化は下記4式のようになる。split=1188-1245>>8=179Range=split=179...4SyntaxAのビット位置30の符号化は下記5式のようになる。split=1179-1245>>8=171Range=split=171...5SyntaxAのビット位置40の符号化は下記6式のようになる。split=1171-1244>>8=163Range=split=163...6SyntaxAのビット位置50の符号化は下記7式のようになる。split=1163-1242>>8=154Range=split=154...7SyntaxAのビット位置61の符号化は下記8式のようになる。split=1154-1244>>8=146lowvalue=split=146Range=Range-split=8...8ここで、範囲Rangeが128未満となったため、1ビット正規化処理が発生し、下記9式のようになる。count=count1=1lowvalue=lowvalue-128=18Range=Range<<1=16lowvalue=lowvalue<<1=36...9範囲Rangeが128未満のままであるため、さらに1ビット正規化処理が発生し、下記10式のようになる。また、count=1により符号値1が出力される。count=count-1=0Range=Range<<1=32lowvalue=lowvalue<<1=72...10範囲Rangeが128未満のままであるため、さらに1ビット正規化処理が発生し、下記11式のようになる。また、count=0により符号値0が出力される。Range=Range<<1=64lowvalue=lowvalue<<1=144...11範囲Rangeが128未満のままであるため、さらに1ビット正規化処理が発生し、下記12式のようになる。また、count=0により符号値0が出力される。count=count1=1lowvalue=lowvalue-128=16Range=Range<<1=128lowvalue=lowvalue<<1=32...12範囲Rangeが128以上となったため、SyntaxAのビット位置70の符号化が実行される。SyntaxAのビット位置70の符号化は下記13式のようになる。split=1128-1245>>8=122Range=split=122...13範囲Rangeが128未満となったため、1ビット正規化処理が発生し、下記14式のようになる。また、count=1により符号値1が出力される。count=count-1=0Range=Range<<1=244lowvalue=lowvalue<<1=64...14これにより、SyntaxAを符号化した時点で符号値1001までが確定したこととなる。以下、SyntaxB以降も同様の処理を行い、符号値1001_0010_1110_0010_xxxx_が得られるとする。復号の具体例ここでは、上記の符号化の具体例によって符号化されたストリームデータ1001_0010_1110_0010_xxxx_を対象とする復号の具体例について説明する。したがって、復号対象の最初のシンタクスはSyntaxA8ビットであり、SyntaxAの次のシンタクスはSyntaxB8ビットである。SyntaxAの各ビット位置kにおける0の発生確率は、ProbTableA[k]={217,223,245,245,244,242,244,245}である。SyntaxBの各ビット位置kにおける0の発生確率は、ProbTableB[k]={234,251,244,254,216,199,179,233}である。また、復号対象のストリームデータの先頭の16ビットは1001_0010_1110_0010となる。図20は、シンタクスのグループ分けの一例を示す図である。復号装置100においては、ProbTableA[k]およびProbTableB[k]の各発生確率が図20のグループ2001~2006のようにグループ分けされているとする。たとえば、復号装置100は、各発生確率を順に読み出し、発生確率を1つ読み出すごとに、読み出した各発生確率の最大値および最小値を算出する。そして、復号装置100は、算出した最大値および最小値の差が所定値を超えない範囲で最大数の各発生確率を1つのグループとする。これにより、各グループにおいて、発生確率の最大値と最小値の差が所定値以下となるようにすることができる。たとえば、図20に示す例は、所定値を25としてグループ分けを行った例である。たとえば、復号装置100は、各発生確率を順に読み出し、3つめの発生確率245を読み出した時点で最大値245と最小値217の差が28となり所定値25を超えるため、1つ目および2つ目の発生確率217,223をグループ2001とする。このように、復号装置100は、復号データの各位置各発生確率を、同一グループ内の各位置における発生確率の最大値と最小値との差が所定値以内になるようにグループ2001~2006に分けておく。これにより、たとえば0の発生確率の高い各位置が同一グループにまとまるため、一括復号の発生確率をさらに高めることができる。ただし、グループ分けの方法はこれに限らない。たとえば、各発生確率を、一定数ずつの各グループに分けてもよい。図21-1は、具体例にかかるシンタクスとグループIDの対応情報を示す図である。図3-1に示した対応情報310は、図20に示したグループ分けの例においては図21-1に示す対応情報2110のようになる。図21-2は、具体例にかかるグループIDと減少値の対応情報を示す図である。図14に示した対応情報1400は、図20に示したグループ分けの例においては図21-2に示す対応情報2120のようになる。まず、復号装置100は、ストリームデータの先頭8ビット1001_0010146を取得してValueに設定する。また、復号装置100は、Rangeの初期値を255とする。復号装置100は、SyntaxA[0]はグループID0のグループに属するため、グループID0に対応するSubVal=39を取得する。そして、図15に示した処理により、一括復号ビット数Nとして2が算出される。したがって、N=2としてNビット復号処理図7参照が実行される。Nビット復号処理においては、境界値splitが下記1式のように算出される。Split=1255-1×217>>8=216Split=1216-1×223>>8=188...1したがって、Nビット復号処理の復号値は00となり、範囲Rangeは188となる。復号装置100は、2ビット復号したため、つぎにSyntaxA[2]の復号を行う。図15に示した処理により、一括復号ビット数Nとして3が算出される。したがって、N=3としてNビット復号処理図7参照が実行される。Nビット復号処理においては、境界値splitが下記2式のように算出される。Split=1188-1×245>>8=179Split=1179-1×245>>8=171Split=1171-1×244>>8=163...2したがって、Nビット復号処理の復号値は000となり、範囲Rangeは163となる。復号装置100は、3ビット復号したため、つぎにSyntaxA[5]の復号を行う。図15に示した処理により、一括復号ビット数Nとして1が算出される。したがって、N=1としてNビット復号処理図7参照が実行される。Nビット復号処理においては、境界値splitが下記3式のように算出される。Split=1163-1×242>>8=154...3したがって、Nビット復号処理の復号値は0となり、範囲Rangeは154となる。復号装置100は、1ビット復号したため、つぎにSyntaxA[6]の復号を行う。図15に示した処理により、一括復号ビット数Nとして0が算出される。したがって、1ビット復号処理図6参照が実行される。1ビット復号処理においては、境界値splitが下記4式のように算出される。Split=1154-1×244>>8=146...4したがって、1ビット復号処理の復号値は1となり、範囲Rangeは8となり、符号値Valueは1となる。範囲Rangeが128未満となったため、復号装置100は再正規化を行う。具体的には、復号装置100は、ストリームデータから4ビット補充してValue=30とする。範囲Rangeは128となる。つぎに、復号装置100は、1ビット復号したため、SyntaxA[7]の復号を行う。図15に示した処理により、一括復号ビット数Nとして0が算出される。したがって、1ビット復号処理図6参照が実行される。1ビット復号処理においては、境界値splitが下記5式のように算出される。Split=1128-1×245>>8=122...5したがって、1ビット復号処理の復号値は0となり、範囲Rangeは122となる。範囲Rangeが128未満となったため、復号装置100は再正規化を行う。具体的には、復号装置100は、ストリームデータから1ビット補充してValue=60とする。範囲Rangeは244となる。これにより、SyntaxAを00000010として復号することができる。SyntaxBについても同様の手順で復号することができる。このように、復号装置100においては、特定の条件を満たす複数のシンタクスまたはシンタクスのビット位置がひとつのグループとして予めまとめられる。そして、あるシンタクスの復号を行う際は、そのシンタクスが含まれているグループ内の最も低い発生確率により優勢シンボルが出力されると仮定した場合の範囲Rangeの減少値減少値SubValが算出される。つぎに、算出された減少値を元に再正規化が発生するまでの最小の連続復号ビット数が算出され、算出されたビット数だけ1サイクルで一括して復号処理が行われる。これにより、予め一括復号ビット数を決定しなくても、シンタクスに応じた復号ビット数を選択することにより、一括復号が実施される割合が高くなり、算術復号処理の高速化を図ることが可能となる。また、連続復号ビット数の計算においては、グループ内でひとつの発生確率を代表して使用するため、マルチコンテキスト型の算術復号においても、多入力の乗算処理を行わなくてもよく、回路規模を小さくすることができる。また、グループの分類をシンタクス単位、またはシンタクスのビット単位と切り替えることにより、一括復号が発生する確率を調整することができる。以上説明したように、復号装置、復号方法および復号プログラムによれば、復号の高速化を図ることができる。なお、各実施の形態で説明した復号方法は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。また、各実施の形態で説明した復号装置100は、スタンダードセルやストラクチャードASICApplicationSpecificIntegratedCircuitなどの特定用途向けIC以下、単にASICと称す。やFPGAなどのPLDProgrammableLogicDeviceによっても実現することができる。具体的には、たとえば、上述した復号装置100の機能をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、復号装置100を製造することができる。上述した各実施の形態に関し、さらに以下の付記を開示する。付記1マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から前記算術符号化の前のデータ列を復号する復号装置において、前記数値範囲を記憶する記憶部と、前記データ列の各位置における所定シンボルの発生確率を取得する取得部と、前記取得部によって取得された発生確率の中の、前記データ列を区切った複数のグループのうちの復号対象の位置が属するグループにおける最小の発生確率に基づく前記数値範囲の減少幅を導出する導出部と、前記数値範囲の限界値と前記符号値との差分を、前記導出部によって導出された減少幅によって除算する除算部と、前記除算部によって得られた商が所定値以上である場合に、前記商だけ連続する前記所定シンボルとなる、前記復号対象の位置以降の復号結果を出力する一括復号処理部と、を備えることを特徴とする復号装置。付記2前記商が前記所定値以上である場合に、前記記憶部に記憶された数値範囲の前記限界値を、前記減少幅に前記商を乗じた幅だけ変化させて前記数値範囲を縮小する縮小部を備えることを特徴とする付記1に記載の復号装置。付記3前記除算部は、前記限界値と前記符号値との差分および前記限界値と所定の閾値との差分のうちの小さい方の差分を前記減少幅によって除算し、前記縮小部によって縮小された数値範囲の幅が前記所定の閾値以上となるように前記数値範囲および前記符号値を正規化する正規化部を備えることを特徴とする付記2に記載の復号装置。付記4前記導出部は、前記最小の発生確率を特定する特定部と、前記記憶部によって記憶された数値範囲を、前記特定部によって特定された発生確率に相当する割合で縮小した場合における前記数値範囲の減少幅を算出する算出部と、を備えることを特徴とする付記1~3のいずれか一つに記載の復号装置。付記5前記一括復号処理部によって復号結果が出力された場合に、前記データ列の各位置のうち、前記復号対象の位置から前記商の数だけ先の位置を次の復号対象とすることを特徴とする付記1~4のいずれか一つに記載の復号装置。付記6前記商が前記所定値未満である場合に、前記記憶部によって記憶された数値範囲と、前記取得部によって取得された発生確率のうち前記復号対象の位置における発生確率と、前記符号値と、に基づく前記復号対象の位置の復号結果を出力する個別復号処理部を備え、前記縮小部は、前記個別復号処理部によって復号結果が出力された場合に、前記個別復号処理部によって出力された復号結果と、前記復号対象の位置における発生確率と、に応じて前記記憶部によって記憶された数値範囲を縮小することを特徴とする付記2または3に記載の復号装置。付記7前記個別復号処理部によって復号結果が出力された場合に、前記データ列の各位置のうち、前記復号対象の1つ先の位置を次の復号対象とすることを特徴とする付記6に記載の復号装置。付記8前記導出部は、前記グループごとに、前記最小の発生確率に相当する割合による前記所定の数値範囲の減少幅が対応付けられた対応情報に基づいて、前記復号対象の位置が属するグループに対応する前記減少幅を導出することを特徴とする付記1~3のいずれか一つに記載の復号装置。付記9前記減少幅に前記商を乗じた幅だけ縮小した前記数値範囲が前記符号値以下であり、または前記減少幅に前記商を乗じた幅だけ縮小した前記数値範囲が前記閾値未満である場合に、前記一括復号処理部は、前記商だけ連続する前記所定シンボルとなる復号結果を出力せず、前記個別復号処理部は、前記復号対象の位置を復号した復号結果を出力することを特徴とする付記6または7に記載の復号装置。付記10前記データ列の各位置は、同一グループ内の各位置における前記発生確率の最大値と最小値との差が所定値以内になるように前記複数のグループに分けられていることを特徴とする付記1~9のいずれか一つに記載の復号装置。付記11マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から前記算術符号化の前のデータ列を復号する復号方法において、前記数値範囲を記憶し、前記データ列の各位置における所定シンボルの発生確率を取得し、取得した発生確率の中の、前記データ列を区切った複数のグループのうちの復号対象の位置が属するグループにおける最小の発生確率に基づく前記数値範囲の減少幅を導出し、前記数値範囲の限界値と前記符号値との差分を、前記導出した減少幅によって除算し、除算により得た商が所定値以上である場合に、前記商だけ連続する前記所定シンボルとなる、前記復号対象の位置以降の復号結果を出力することを特徴とする復号方法。付記12マルチコンテキスト型の算術符号化により所定の数値範囲に割り当てられた符号値から前記算術符号化の前のデータ列を復号する復号プログラムにおいて、前記数値範囲を記憶し、前記データ列の各位置における所定シンボルの発生確率を取得し、取得した発生確率の中の、前記データ列を区切った複数のグループのうちの復号対象の位置が属するグループにおける最小の発生確率に基づく前記数値範囲の減少幅を導出し、前記数値範囲の限界値と前記符号値との差分を、前記導出した減少幅によって除算し、除算により得た商が所定値以上である場合に、前記商だけ連続する前記所定シンボルとなる、前記復号対象の位置以降の復号結果を出力する処理をコンピュータに実行させることを特徴とする復号プログラム。"