(57)【要約】【課題】二値算術符号化処理を高速化することができる二値算術符号化装置を提供する。【解決手段】コンテキスト情報とシンボルからシンボル生起確率状態の状態遷移値とＭＰＳ／ＬＰＳ情報を算出するコンテキスト更新部と、シンボル生起確率状態の状態遷移値、ＭＰＳ／ＬＰＳ情報とレンジ値から再正規化シフト量を算出すると同時にレンジ値を更新するレンジ更新処理部と、再正規化シフト量、ＭＰＳ／ＬＰＳ情報、更新されたレンジ値とロー値からロー値を更新するロー値更新部と、更新されたロー値を用いてビットストリームを生成するビットストリーム生成部とを備える二値算術符号化装置であって、コンテキスト更新部は、１ｂｉｎ目の生起確率状態から、２ｂｉｎ目の生起確率状態を同時に決定する際に生起確率状態テーブルを参照して複数のｂｉｎを並列処理する。【選択図】図１
2015115665.tif 000002
【特許請求の範囲】
【請求項１】
コンテキスト情報とシンボルからシンボル生起確率状態の状態遷移値とＭＰＳ／ＬＰＳ情報を算出するコンテキスト更新部と、
前記シンボル生起確率状態の状態遷移値、前記ＭＰＳ／ＬＰＳ情報とレンジ値から再正規化シフト量を算出すると同時にレンジ値を更新するレンジ更新処理部と、
前記再正規化シフト量、前記ＭＰＳ／ＬＰＳ情報、前記更新されたレンジ値とロー値からロー値を更新するロー値更新部と、
前記更新されたロー値を用いてビットストリームを生成するビットストリーム生成部とを備える二値算術符号化装置であって、
前記コンテキスト更新部は、１ｂｉｎ目の生起確率状態から、２ｂｉｎ目の生起確率状態を同時に決定する際に生起確率状態テーブルを参照して複数のｂｉｎを並列処理することを特徴とする二値算術符号化装置。
【請求項２】
前記レンジ更新処理部は、１ｂｉｎ目と２ｂｉｎ目の生起確率状態を用いてＬＰＳ区間長テーブルの値を読み出し、前記レンジ値を用いて前記読み出された値の中から複数の値を選択し、前記レンジ値の更新及び再正規化シフト量の算出を行うことを特徴とする請求項１に記載の二値算術符号化装置。
【請求項３】
前記ロー値更新部は、前記ＭＰＳ／ＬＰＳ情報、前記再正規化シフト量、更新された前記レンジ値を複数受け取り、前記ロー値と前記再正規化シフト量の累積加算を行い、当該累積加算の結果が指定された閾値を超えた場合には、前記ビットストリーム生成部へデータを出力すると共に、前記ロー値および前記出力したデータのビット数分だけ前記累積加算の結果から減ずることを特徴とする請求項２に記載の二値算術符号化装置。
【請求項４】
前記ビットストリーム生成部は、桁上がり処理を行うために、一時的に受け取ったデータを保持し、桁上がりを生じる可能性が有る場合は出力せず、受け取ったデータ量のみを加算し、桁上がりを生じないことが確認された場合に、桁上がり処理を行い保持したデータをビットストリームとして出力し、受け取ったデータ量が１になるまで桁上がり処理の結果により１あるいは０を出力し続け、確認に用いたデータを再度一時的に保持することを特徴とする請求項３に記載の二値算術符号化装置。
【請求項５】
コンテキスト情報とシンボルからシンボル生起確率状態の状態遷移値とＭＰＳ／ＬＰＳ情報を算出するコンテキスト更新部と、
前記シンボル生起確率状態の状態遷移値、前記ＭＰＳ／ＬＰＳ情報とレンジ値から再正規化シフト量を算出すると同時にレンジ値を更新するレンジ更新処理部と、
前記再正規化シフト量、前記ＭＰＳ／ＬＰＳ情報、前記更新されたレンジ値とロー値からロー値を更新するロー値更新部と、
前記更新されたロー値を用いてビットストリームを生成するビットストリーム生成部とを備える二値算術符号化装置が行う二値算術符号化方法であって、
前記コンテキスト更新部が、１ｂｉｎ目の生起確率状態から、２ｂｉｎ目の生起確率状態を同時に決定する際に生起確率状態テーブルを参照して複数のｂｉｎを並列処理することを特徴とする二値算術符号化方法。
【請求項６】
コンピュータを、請求項１から４のいずれか１項に記載の二値算術符号化装置として機能させるための二値算術符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二値算術符号化処理を高速化する二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラムに関する。
【背景技術】
【０００２】
ＨＥＶＣ／Ｈ．２６５での圧縮後の画像符号化データは、統計的性質を有する。二値算術符号化処理は、この統計的性質を利用してさらに冗長度を削減するために、エントロピー符号化の一種であるＣＡＢＡＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）が用いられる。ＣＡＢＡＣ処理は大きく二進数系列化処理、コンテキストモデリング、二値算術符号化処理の３つの処理が実施される。映像符号化処理により符号化された動きベクトルや変換係数といったデータは、シンボルと呼ばれ、それぞれのシンボルの性質に応じて定められている方法で二進数系列化され、シンボルからｂｉｎ（二進数）列に変換される。その二進数に対する生起確率モデルを、処理対象ブロック近傍のシンボルの状態などに応じて、動的に決定し（コンテキストモデリング処理）、その二進数はコンテキストモデリング処理で決定された生起確率モデルに従って二値算術符号化される。
【０００３】
これらの処理の中で、二値算術符号化部は、ｂｉｎと呼ぶ二進数系列化された値毎にコンテキストの生起確率を変更し、その変更された生起確率を次のｂｉｎ処理時に用いることが有る。また、レンジ値やロー値といった変数もｂｉｎ毎に更新されるため、データ依存性が存在する。そのため、並列処理等により複数のｂｉｎを同時に処理することは困難であり、二値算術符号化処理を高速化するためには、動作周波数を上げることが必要となる。動作周波数の高速化には限界が存在するのに加え、動作周波数の高速化によりシステムの消費電力を増加させるため、動作周波数の高速化の適用は限定的である。
【０００４】
一方で、アルゴリズム的に並列化させてＣＡＢＡＣ処理を行う方式が提案されている（例えば、特許文献１参照）。これは、一つの画面をいくつかの領域（スライス）に分割し、各々のスライスにおいて独立してＣＡＢＡＣ処理を行うものである。ＣＡＢＡＣ処理は各スライス処理の開始時点で内部状態を初期化して実行されるので、各々完全に独立させて動作させると、符号化効率が低下する。そこで、画面内の最初のスライスのＣＡＢＡＣ処理がある程度進んだ後に、その内部状態を初期値として用いて次のスライスのＣＡＢＡＣ処理を開始することで、符号化効率を維持しつつＣＡＢＡＣ処理を並列化させている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１３４７５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方式にあっては、符号化装置、復号化装置がこの機能に対応している必要が有ること、スライス分割せずに実行した場合の圧縮性能より劣ること、さらに、ＣＡＢＡＣ後のビット数も含めた符号化モードの決定を行う場合、コンテキスト単位での高速化が求められることから、本方式の適用も限定的である。このような理由から、スライス分割による並列処理を用いず、二値算術符号化部に入力されるｂｉｎに対する並列処理を実現し、二値算術符号化処理を高速化する必要がある。
【０００７】
本発明は、このような事情に鑑みてなされたもので、二値算術符号化処理を高速化することができる二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、コンテキスト情報とシンボルからシンボル生起確率状態の状態遷移値とＭＰＳ／ＬＰＳ情報を算出するコンテキスト更新部と、前記シンボル生起確率状態の状態遷移値、前記ＭＰＳ／ＬＰＳ情報とレンジ値から再正規化シフト量を算出すると同時にレンジ値を更新するレンジ更新処理部と、前記再正規化シフト量、前記ＭＰＳ／ＬＰＳ情報、前記更新されたレンジ値とロー値からロー値を更新するロー値更新部と、前記更新されたロー値を用いてビットストリームを生成するビットストリーム生成部とを備える二値算術符号化装置であって、前記コンテキスト更新部は、１ｂｉｎ目の生起確率状態から、２ｂｉｎ目の生起確率状態を同時に決定する際に生起確率状態テーブルを参照して複数のｂｉｎを並列処理することを特徴とする。
【０００９】
本発明は、前記レンジ更新処理部は、１ｂｉｎ目と２ｂｉｎ目の生起確率状態を用いてＬＰＳ区間長テーブルの値を読み出し、前記レンジ値を用いて前記読み出された値の中から複数の値を選択し、前記レンジ値の更新及び再正規化シフト量の算出を行うことを特徴とする。
【００１０】
本発明は、前記ロー値更新部は、前記ＭＰＳ／ＬＰＳ情報、前記再正規化シフト量、更新された前記レンジ値を複数受け取り、前記ロー値と前記再正規化シフト量の累積加算を行い、当該累積加算の結果が指定された閾値を超えた場合には、前記ビットストリーム生成部へデータを出力すると共に、前記ロー値および前記出力したデータのビット数分だけ前記累積加算の結果から減ずることを特徴とする。
【００１１】
本発明は、前記ビットストリーム生成部は、桁上がり処理を行うために、一時的に受け取ったデータを保持し、桁上がりを生じる可能性が有る場合は出力せず、受け取ったデータ量のみを加算し、桁上がりを生じないことが確認された場合に、桁上がり処理を行い保持したデータをビットストリームとして出力し、受け取ったデータ量が１になるまで桁上がり処理の結果により１あるいは０を出力し続け、確認に用いたデータを再度一時的に保持することを特徴とする。
【００１２】
本発明は、コンテキスト情報とシンボルからシンボル生起確率状態の状態遷移値とＭＰＳ／ＬＰＳ情報を算出するコンテキスト更新部と、前記シンボル生起確率状態の状態遷移値、前記ＭＰＳ／ＬＰＳ情報とレンジ値から再正規化シフト量を算出すると同時にレンジ値を更新するレンジ更新処理部と、前記再正規化シフト量、前記ＭＰＳ／ＬＰＳ情報、前記更新されたレンジ値とロー値からロー値を更新するロー値更新部と、前記更新されたロー値を用いてビットストリームを生成するビットストリーム生成部とを備える二値算術符号化装置が行う二値算術符号化方法であって、前記コンテキスト更新部が、１ｂｉｎ目の生起確率状態から、２ｂｉｎ目の生起確率状態を同時に決定する際に生起確率状態テーブルを参照して複数のｂｉｎを並列処理することを特徴とする。
【００１３】
本発明は、コンピュータを、前記二値算術符号化装置として機能させるための二値算術符号化プログラムである。
【発明の効果】
【００１４】
本発明によれば、スライス分割などアルゴリズムレベルでの並列化を行わなくとも、複数ｂｉｎ列を並列処理することにより二値算術符号化処理を高速化することができるという効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の基本構成を示すブロック図である。
【図２】図１に示すコンテキスト更新部１の処理動作を示すフローチャートである。
【図３】図１に示すレンジ更新部２の処理動作を示すフローチャートである。
【図４】図１に示すロー更新部３の処理動作を示すフローチャートである。
【図５】２並列の二値算術符号処理の構成を示すブロック図である。
【図６】二値算術符号化処理を高速化するための装置構成を示すブロック図である。
【図７】状態遷移テーブルの内容を示す図である。
【図８】２並列処理のための状態遷移テーブル内容の構成を示す図である。
【図９】更新値の選択動作を示すフローチャートである。
【図１０】２並列の処理を行う図６に示すコンテキスト更新部２１の構成を示すブロック図である。
【図１１】選択信号生成器の論理を示す図である。
【図１２】選択信号生成器の論理を示す図である。
【図１３】２並列コンテキスト更新処理の流れを示す図である。
【図１４】２並列の処理を行う図６に示すレンジ更新部２２の構成を示すブロック図である。
【図１５】２並列の処理を行う図６に示すロー更新部２３の構成を示すブロック図である。
【図１６】ロー更新値の処理例を示す図である。
【図１７】図６に示すビットストリーム生成部２４構成を示す図である。
【図１８】ビットストリーム生成処理ステートマシンの例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の一実施形態による二値算術符号化装置の基本構成を説明する。図１は同実施形態における二値算術符号化部の基本構成を示すブロック図である。二値算術符号化処理は、コンテキスト更新処理、レンジ値更新処理、ロー値更新処理の大きく３つの処理に分かれている。ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）では、これらの処理は一つの処理ループで実装されており、各々の更新処理は、３つの処理が完了しなければ、次のｂｉｎに対する更新ができないようになっている。
【００１７】
しかしながら、各更新処理間で適切な変数を受け渡すことで、各々の更新処理は独立して動作させることが可能となる。これは、各更新処理を、依存性を持つために並列に実行できなかった処理をパイプライン処理で並列して処理可能になることを表している。図１に示すように、コンテキスト更新部１は、入力するシンボルとコンテキストに依存する。レンジ更新部２は、コンテキスト、レンジ値、コンテキスト更新部１から出力されるシンボルが優勢シンボル（ＭＰＳ）か劣性シンボル（ＬＰＳ）かの情報に依存する。ロー更新部３は、ＭＰＳかＬＰＳかの情報、更新されたレンジ値と再正規化された場合、その正規化量を表すビットシフト量、そして、ロー値に依存する。
【００１８】
この構成により、コンテキスト更新、レンジ更新、ロー更新をパイプライン処理化可能である。また、コンテキスト更新のみ実施し、その出力をメモリに蓄えておき、コンテキスト更新処理終了後にまとめてレンジ値更新を連続して行い、その出力もメモリに蓄えておきレンジ値更新終了後、ロー値更新を連続して行うといった処理形態をとることも可能になる。
【００１９】
また、ＨＥＶＣでは、生起確率の推定が困難なｂｉｎについて、０と１の生起確率を０．５に固定し、算術符号処理の一部を省いて処理を行うバイパス処理が行われる。このバイパス処理は、ロー値の更新のみが行われるため、各更新処理を独立化させることで、コンテキスト更新部１とレンジ更新部２を動作させることなく、符号化処理を実行することが可能となる。また、ロー値更新は、レンジ更新部１においてレンジ値が小さくなった場合（２５６未満）に実行される再正規化が行われた場合に実行されるので、その状況になるまでロー更新部３を停止させることができる。これらの観点からも各更新部を独立に動作させられる本方式は有効である。
【００２０】
次に、図２を参照して、図１に示すコンテキスト更新部１の処理動作を説明する。図２は、図１に示すコンテキスト更新部１の処理動作を示すフローチャートである。コンテキスト更新部１は、コンテキスト情報（符号化パラメータとＭＰＳシンボル値）とシンボルを入力し、符号化パラメータに対応するシンボル生成確率の状態遷移値と符号化パラメータに対応するＭＰＳのシンボル値を読み出す（ステップＳ１、Ｓ２）。そして、その値をアドレスとして状態遷移テーブルをアクセスし、入力されるシンボルがＭＰＳかＬＰＳになった場合の値を読み出す（ステップＳ３）。そして、ＭＰＳシンボル値との比較により（ステップＳ４）、シンボル値がＭＰＳかＬＰＳかを判断し（ステップＳ５）、先の読み出した値の適した方の値を符号化パラメータに対応するシンボル生起確率の状態遷移値を格納しているテーブルに、その値を更新値として格納する（ステップＳ６）。そして、入力されたシンボル値がＭＰＳかＬＰＳかの情報と更新前のシンボル生起確率を表すシンボル生起確率の状態遷移値を出力する。
【００２１】
次に、図３を参照して、図１に示すレンジ更新部２の処理動作を説明する。図３は、図１に示すレンジ更新部２の処理動作を示すフローチャートである。レンジ更新部２は、受け取ったシンボル生起確率の状態遷移値をアドレスとして、ＬＰＳ区間長をｒＬＰＳテーブル４から読み出す（ステップＳ１１）。読み出されるＬＰＳ区間長は、受け取ったレンジ値の上位２ビットにより値が異なるため、ｒＬＰＳテーブル４からは、４つの値を同時に読み出し、レンジ値に従い１つの値を選択する（ステップＳ１２）。レンジ値そのものは、受け取ったＬＰＳ／ＭＰＳ情報により、ＬＰＳの場合は、読み出し、選択されたｒＬＰＳテーブルの値を、ＭＰＳの場合は、受け取ったレンジ値から選択されたｒＬＰＳテーブルの値を減じた値を選択し（ステップＳ１３）、その値が２５６未満である場合、２５６以上、５１２未満になるように左シフトする（ステップＳ１４）。このシフトが再正規化と呼ばれる処理である。このようにしてレンジ値は更新される。そして、ロー値更新に必要となるＬＰＳ／ＭＰＳ情報と再正規化時に得た左シフト量、そして、レンジ値から選択されたｒＬＰＳテーブルの値を減じた値を出力する。
【００２２】
次に、図４を参照して、図１に示すロー更新部３の処理動作を説明する。図４は、図１に示すロー更新部３の処理動作を示すフローチャートである。ロー更新部３は、ＬＰＳ／ＭＰＳ情報により、ＭＰＳの場合、レンジ更新部から受け取ったシフト量分ロー値を左シフトして更新する（ステップＳ２１）。ＬＰＳの場合、ロー値に、レンジ更新部２から受け取ったレンジ値から選択されたｒＬＰＳテーブル４の値を減じた値を減じ、受け取ったシフト量分左シフトして更新する（ステップＳ２２）。この時、ロー値のＭＳＢ側から確定したビット分をビットストリームとして出力し、残りのビットを最終的に更新されたロー値とする（ステップＳ２３）。このようにして、二値算術符号処理は実行される。
【００２３】
次に、二値算術符号化処理をカスケード化することによる並列処理を行う構成について説明する。二値算術符号化処理を高速化させるために、複数ｂｉｎを各更新部で同時に処理することを考えると、図１に示す処理ブロックを例えば、２並列に配置し、図５に示すように２つのｂｉｎ（シンボル）を同時に読み込み、各々の更新部では処理をカスケードし処理結果を次段の更新部に渡すことで、並列処理が可能となる。図５は、２並列の二値算術符号処理の構成を示すブロック図である。
【００２４】
コンテキスト更新は、コンテキストＡとコンテキストＢが異なる場合は、コンテキストＡとシンボルＡによるコンテキスト更新部５と、コンテキストＢとシンボルＢによるコンテキスト更新部６とによって独立して行われる。
【００２５】
しかしながら、コンテキストＡとコンテキストＢが同じ場合、コンテキストＢの情報は用いず、更新されたコンテキストＡの情報を用いてコンテキストＢの更新がなされる。コンテキスト更新は、確定している符号化パラメータに対応するシンボル生成確率の状態遷移値をアドレスとして、状態遷移テーブルからＬＰＳ／ＭＰＳ情報に従い実行される。通常状態遷移テーブルは、メモリで構成されるため、コンテキストＡの更新のためにメモリ読み出しを行い、更新後の値で、コンテキストＢの更新のためのメモリ読み出しを行う必要が有る。一般にメモリアクセス速度は遅いので、２ｂｉｎ分を同時にコンテキスト更新するために費やされる時間が長くなる。そのため、並列処理のメリットが削減してしまう。状態遷移テーブルの内容は、書き換わらないため、コンテキストＢの状態遷移テーブルをメモリではなく、組合せ回路で構成することも考えられるが、回路規模の増大などのデメリットを生じる。
【００２６】
そこで、状態遷移テーブル内容の構成に着目し、コンテキストＡの状態遷移テーブルとコンテキストＢの状態遷移テーブルをコンテキストＡのコンテキスト更新値が確定していない状態であっても同時アクセスして処理時間を短縮する。図６は、二値算術符号化処理を高速化するための装置構成を示すブロック図である。コンテキスト更新部２１、レンジ更新部２２、ロー更新部２３、ビットストリーム生成器２４はそれぞれ図６に示すように接続されており、入力されたコンテキストＡとコンテキストＢは同時に処理され、２ｂｉｎ／ｃｙｃｌｅが実現可能となり、二値算術符号化処理の高速化が実現できる。
【００２７】
図７は、状態遷移テーブルの内容を示す図である。図７に示すように、状態遷移テーブルには更新前のコンテキストの状態値によって、受け取ったシンボルがＬＰＳあるいはＭＰＳであった場合の更新値が格納されている。例えば、現在の状態値が３１であった場合、シンボルがＬＰＳであれば２４に、シンボルがＭＰＳであれば３２に状態値が更新される。図７から明らかなように、現在の状態が３１であった場合、とり得る状態値は２４あるいは、３２なので、その次のコンテキスト更新でとり得る状態値は、現在の更新値が２４の場合、１９あるいは２５であり、現在の更新値が３２である場合、２４あるいは３３である。すなわち、テーブル内容としては冗長になるが、現在の状態値が３１の場合、最初のコンテキスト更新でとり得る２４と３２を格納しておき、その次のコンテキスト更新でとり得る１９、２５、２４、３３も格納しておくことで、一度にコンテキストの次々更新時に必要となる状態値を得ることが可能になる（図８参照）。図８は、２並列処理のための状態遷移テーブル内容の構成を示す図である。
【００２８】
ここで、図９を参照して、更新値の選択処理について説明する。図９は、更新値の選択動作を示すフローチャートである。まず、コンテキストＡとコンテキストＢが同一であるか否かを判定する（ステップＳ３１）。この判定の結果、同一でなければ、コンテキストＡのＬＰＳ／ＭＰＳ情報がＬＰＳであるか否かを判定する（ステップＳ３２）。この判定の結果、ＬＰＳであれば更新値としてＬＰＳを選択し、ＭＰＳであれば更新値としてＭＰＳを選択する。
【００２９】
一方、コンテキストＡとコンテキストＢが同一であれば、コンテキストＡのＬＰＳ／ＭＰＳ情報がＬＰＳであるか否かを判定する（ステップＳ３３）。この判定の結果、ＬＰＳであれば、さらにコンテキストＢのＬＰＳ／ＭＰＳ情報がＬＰＳであるか否かを判定する（ステップＳ３４）。この判定の結果、ＬＰＳであれば更新値としてＬＰＳＬＰＳを選択し、ＭＰＳであれば、更新値としてＬＰＳＭＰＳを選択する。
【００３０】
ステップＳ３３の判定の結果、ＭＰＳであれば、さらに、コンテキストＢのＬＰＳ／ＭＰＳ情報がＬＰＳであるか否かを判定する（ステップＳ３５）。この判定の結果、ＬＰＳであれば更新値としてＭＰＳＬＰＳを選択し、ＭＰＳであれば、更新値としてＭＰＳＭＰＳを選択する。
【００３１】
次に、図１０を参照して、２並列の処理を行うコンテキスト更新処理について説明する。図１０は、２並列の処理を行う図６に示すコンテキスト更新部２１の構成を示すブロック図である。コンテキスト更新部２１は、コンテキストＡのシンボルの値を処理に合わせて一時的に記憶しておくレジスタｂｉｎＶａｌＡ３１、ｂｉｎＶａｌＡ’３２を備える。また、コンテキストＢのシンボルの値を処理に合わせて記憶しておくレジスタｂｉｎＶａｌＢ３３、ｂｉｎＶａｌＢ’３４を備える。また、コンテキストＡのコンテキスト情報を示すコンテキスト番号を一時的に記憶しておくレジスタｃｔｘＩｄｘＡ３５、ｃｔｘＩｄｘＡ’３６を備える。また、コンテキストＢのコンテキスト番号を一時的に記憶しておくレジスタｃｔｘＩｄｘＢ３７、ｃｔｘＩｄｘＢ’３８を備える。また、各コンテキストに対する優勢シンボル値を記憶しておくメモリｖａｌＭｐｓ［］３９、コンテキストに対する現在の確率状態を記憶しておくメモリｐＳｔａｔｅＩｄｘ［］４０を備える。また、各々のコンテキスト更新処理に用いるｖａｌＭｐｓをｃｔｘＩｄｘＡ３５やｃｔｘＩｄｘＢ３７を用いてｖａｌＭｐｓ［］３９から、あるいは、更新処理中の値から選択するセレクタＳｅｌ１・４１、Ｓｅｌ５・４２を備える。
【００３２】
また、各々のコンテキスト更新処理に用いるｐＳｔａｔｅＩｄｘをｃｔｘＩｄｘＡやｃｔｘＩｄｘＢを用いてｐＳｔａｔｅＩｄｘ［］４０から、あるいは、更新処理中の値から選択するセレクタＳｅｌ２・４３、Ｓｅｌ６・４４を備える。また、コンテキストＡ、コンテキストＢの更新処理に用いる優勢シンボルを一時的に記憶しておくレジスタｖａｌＭｐｓＡ４５、ｖａｌＭｐｓＢ４６、コンテキストＡ、コンテキストＢの更新処理に用いるコンテキスト番号を一時的に記憶しておくレジスタｐＳｔａｔｅＩｄｘＡ４７、ｐＳｔａｔｅＩｄｘＢ４８を備える。また、シンボル生起確率の状態遷移テーブルであるｔｒａｎｓＩｄｘ［］４９、コンテキストＡ、コンテキストＢの優勢シンボル値の更新値を選択するＳｅｌ３・５０、Ｓｅｌ１１・５１、コンテキストＡのシンボル生起確率の状態の更新値を選択するＳｅｌ４・５２、コンテキストＢのシンボル生起確率の状態の更新値を選択するＳｅｌ７・５３、Ｓｅｌ１０・５４、Ｓｅｌ１２・５５を備える。
【００３３】
また、コンテキストＢの優勢シンボル値としてコンテキストＡの更新された優勢シンボルを使用するかコンテキストＢの優勢シンボルを一時的に蓄積しているｖａｌＭｐｓＢ４６の値を使用するか選択するＳｅｌ８・５６、コンテキストＢのシンボル生起確率の状態値として、コンテキストＡの更新されたシンボル生起確率の状態値を用いるか、コンテキストＢのシンボル生起確率の状態を一時的に蓄積しているｐＳｔａｔｅＩｄｘＢ４８の値を用いるか選択するＳｅｌ９・５７、Ｓｅｌ１・４１、Ｓｅｌ２・４３の選択信号を生成する選択信号生成器５８を備える。また、Ｓｅｌ５・４２、Ｓｅｌ６・４４の選択信号を生成する選択信号生成器５９を備える。
【００３４】
また、コンテキストＡ、コンテキストＢそれぞれのシンボルが優勢シンボルか劣性シンボルかを生成するＬＰＳ／ＭＰＳ生成器６０、６１、Ｓｅｌ３・５０、Ｓｅｌ１１・５１の選択信号を生成する選択信号生成器６２、６３を備える。そして、コンテキストＡとＢが同じ場合、コンテキストＡの情報を用いるようにＳｅｌ８・５６、Ｓｅｌ９・５７に指示し、Ｓｅｌ１０・５４に生起確率状態遷移情報のＬＰＳＬＰＳあるいは、ＬＰＳＭＰＳ、ＭＰＳＬＰＳ、ＭＰＳＭＰＳの選択を指示し、コンテキストに対する優勢シンボル値と生起確率状態値の書込みが衝突しないよう、コンテキストＡにおける優勢シンボル値と生起確率状態値をメモリに書き戻さないように指示する信号を生成する同一コンテキスト信号発生器６４を備える。
【００３５】
選択信号発生器５８は、図１１示す論理、選択信号発生器５９は、図１２に示す論理により選択信号を生成する。図１１、図１２の中で、Ａ＝＝Ａ’？の列で〇がついている状態は、ｃｔｘＩｄｘＡ３５の値とｃｔｘＩｄｘＡ’３６の値が同一であることを示しており、選択信号００１は、図１０におけるＳｅｌ１・４１、Ｓｅｌ２・４３に接続される入力の右の値を選択することを意味しており、例えば、これが１００である場合、左の値を選択することを意味している。これにより、コンテキストＡとＢが異なる場合、各々のコンテキストの優勢シンボルや生起確率状態は独立して更新され、コンテキストＡとＢが同一である場合、コンテキストＡにおける優勢シンボルや生起確率状態値の更新値を用いてコンテキストＢのコンテキスト更新処理が可能となる。
【００３６】
ＬＰＳ／ＭＰＳ生成器６０、６１は、コンテキストＡあるいはコンテキストＢのシンボルと優勢シンボルの比較をし、同一である場合、１を出力しＭＰＳであることを示し、異なる場合、０を出力しＬＰＳであることを示す。
【００３７】
選択信号発生器６２、６３は、コンテキストＡあるいはコンテキストＢのＬＰＳ／ＭＰＳ生成器６０、６１からの出力信号がＬＰＳでありかつ、生起確率状態値が０の場合、当該コンテキストの優勢シンボル値を反転させるようＳｅｌ３・５０、Ｓｅｌ１１・５１に選択信号を送る。
【００３８】
同一コンテキスト信号発生器６４は、先に説明したようにコンテキストＡとＢが同一であるか判別するため、ｃｔｘＩｄｘＡ’３６とｃｔｘＩｄｘＢ’３８の値を比較し、同じ場合、コンテキストＡとＢが同一であると判断し、コンテキストＡ側の処理におけるメモリ書込みを禁止するとともに、コンテキストＡ側のコンテキスト情報をコンテキストＢ側で用いるようにする。
【００３９】
また、図９に示す更新値の選択処理動作は、Ｓｅｌ７・５３、Ｓｅｌ１０・５４、Ｓｅｌ１２・５５で実現される。
【００４０】
ここで、各コンテキストの優勢シンボルや生起確率状態を蓄積しているｖａｌＭｐｓ［］３９やｐＳｔａｔｅＩｄｘ［］４０は、図１０の中で読み出し側と書きこみ側、さらにコンテキストＡ側とＢ側に個別に描かれているが、蓄積内容の同一性が必要なため、現実的には、読み出し２ポート、書込み２ポートの４ポートメモリが必要となる。また、メモリに限ることなくレジスタ等他の多ポート記憶装置であれば適用可能である。さらに、状態遷移テーブルであるｔｒａｎｓＩｄｘ［］４９は、コンテキストＡ、Ｂで個別に実装しても、一つのＲＯＭ等で実装しても構わない。その場合、コンテキストＡ側については、ｔｒａｎｓＬＰＳとｔｒａｎｓＭＰＳの値だけを出力するようにして、回路規模を削減する等が適用できる。
【００４１】
コンテキスト更新部を図１０のように構成することで、図１３に示すパイプライン処理が可能となり、１サイクルごとに２ｂｉｎ分のコンテキスト更新が実行される。図１３は、２、３、４、６ｂｉｎ目が同一のコンテキストで、１ｂｉｎ目と５ｂｉｎ目が異なるコンテキストであるとした場合の処理の流れを矢印で示したものである。１ｂｉｎ目と５ｂｉｎ目は独立してＲ→Ｅｘ→Ｗと処理が実行されることを表している。ここで、Ｒ、Ｅｘ、Ｗはそれぞれ、データの読出し、処理実行、更新データの書込みを表している。３ｂｉｎ目と６ｂｉｎ目は、２ｂｉｎ目と４ｂｉｎ目で更新値をメモリに書込む値を、読み出した値の代わりに用いることを表している。また、４ｂｉｎ目は、３ｂｉｎ目の更新値を読み出した値の代わりに用いることを表している。このように、連続するコンテキストや独立したコンテキストが混在している状態であってもコンテキスト更新処理が実行可能である。
【００４２】
次に、図１４を参照して、２並列の処理を行うレンジ更新処理について説明する。図１４は、２並列の処理を行う図６に示すレンジ更新部２２の構成を示すブロック図である。レンジ更新部２２は、コンテキストＡのＬＰＳ／ＭＰＳ情報を一時的に記憶するレジスタＬＰＳ／ＭＰＳＡ７１、ＬＰＳ／ＭＰＳＡ’７２、コンテキストＢのＬＰＳ／ＭＰＳ情報を一時的に記憶するレジスタＬＰＳ／ＭＰＳＢ７３、ＬＰＳ／ＭＰＳＢ’７４、を備える。また、コンテキストＡの生起確率状態値を一時的に記憶するｐＳｔａｔｅＩｄｘＡ７５、コンテキストＢの生起確率状態値を一時的に記憶するｐＳｔａｔｅＩｄｘＢ７６、ＬＰＳ区間長を記憶するメモリあるいは、レジスタ、組合せ回路で実現されるｒＬＰＳ［］７７、ｐＳｔａｔｅＩｄｘＡ７５やｐＳｔａｔｅＩｄｘＢ７６をアドレスとして読み出されたｒＬＰＳ［］７７の値を一時的に記憶しておくレジスタ群７８、７９を備える。
【００４３】
また、レンジ値の初期値を一時的に記憶するレジスタｍ＿ｕｉＲａｎｇｅＡ８０、レンジ値の更新値を記憶するレジスタｍ＿ｕｉＲａｎｇｅＡ’８１、コンテキストＡに対応するＬＰＳ／ＭＰＳ情報や生起確率状態を用いてレンジ値を更新するかを指定する信号を一時的に記憶しておくレジスタｖａｌｉｄＡ８２、ｖａｌｉｄＡ’８３を備える。また、同様にコンテキストＢに対応するＬＰＳ／ＭＰＳ情報や生起確率状態を用いてレンジ値を更新するか指定する信号を一時的に記憶しておくレジスタｖａｌｉｄＢ８４、ｖａｌｉｄＢ’８５を備える。
【００４４】
また、レンジ値を更新するために必要な加算器８６、８７、ｒＬＰＳ［］７７から読み出されたＬＰＳ区間長を一時的に記憶しておくレジスタ群７８、７９の中からレンジ値に適した値を選択するコンテキストＡに対応するＳｅｌ２・８６、コンテキストＢに対応するＳｅｌ５・８７を備える。また、ＬＰＳ／ＭＰＳ信号により更新されたレンジ値を選択するコンテキストＡに対応するＳｅｌ３・８８、コンテキストＢに対応するＳｅｌ６・８９、選択されたＲａｇｎｅ値を２５６以上５１２未満に再正規化するためのコンテキストＡ用のプライオリティエンコーダ（ｐｒｉｏＥｎｃｏｄｅｒ）９０と左シフタ９１と、コンテキストＢ用のプライオリティエンコーダ（ｐｒｉｏＥｎｃｏｄｅｒ）９４と左シフタ９５を備える。また、コンテキストＡおよびコンテキストＢに対する情報が有効か無効かの状態により、レンジ値を更新する値を選択するＳｅｌ４・９２、コンテキストＡおよびコンテキストＢの有効か無効化の情報からＳｅｌ４の入力を選択する信号を生成する選択信号発生器９３からなる。
【００４５】
このような構成をとることで、２ｂｉｎ目のＬＰＳ区間長を格納しているｒＬＰＳ［］７７の読み出しアドレスは、１ｂｉｎ目の更新されたレンジ値に依存しなくなり、コンテキスト更新部から出力される生起確率状態値を受け取ると直ちにＬＰＳ区間長の候補を読み出すことが出来るため、１ｂｉｎ目と２ｂｉｎ目のｒＬＰＳ［］７７のアクセスを同時に行えるようになる。これにより、２ｂｉｎ目のｒＬＰＳ［］７７のメモリアクセス時間分処理時間が削減され、レンジ値更新が高速化される。
【００４６】
また、レンジ更新において、処理タイミングの関係から常に２ｂｉｎ分の情報が入力されるのではなく、１ｂｉｎ分の情報のみが入力される、あるいは、何も入力されないことも考えられる。そこで、各コンテキストに対応する情報が有効か示すために、ｖａｌｉｄ信号を用いる。ｖａｌｉｄＡ’８３とｖａｌｉｄＢ’８５が共に有効な場合、２ｂｉｎ分の処理を行う必要がるため、コンテキストＡとコンテキストＢ情報に対する２段のレンジ値更新が行われたのちの値でレンジ値を更新するために、Ｓｅｌ４・９２の右側の信号が出力されるように選択信号発生器９３は、選択信号を生成する。
【００４７】
ｖａｌｉｄＡ’８３のみ有効な場合、１ｂｉｎ分の処理を行うため、コンテキストＡ情報に対する１段のレンジ更新が行われた後の値で、レンジ値を更新するために、Ｓｅｌ４の真ん中の信号が出力されるように選択信号発生器９３は、選択信号を生成する。いずれも無効な場合、現在のレンジ値を保持し続けるために、Ｓｅｌ４・９２の左の信号が出力されるように選択信号発生器９３は、選択信号を生成する。
【００４８】
ロー値更新に必要な各コンテキストのＬＰＳ／ＭＰＳ（ＬＰＳ／ＭＰＳＡ、ＬＰＳ／ＭＰＳＢ）、再正規化するために必要としたシフト量（ｎｕｍｂｉｔｙｓＡ、  ｎｕｍｂｉｔｓＢ）、レンジ値からＬＰＳ区間長を減じた値（ｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＡ、  ｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＢ）、そして、それぞれのコンテキストが出力する情報が有効かを示す信号（ｖａｌｉｄＡ、ｖａｌｉｄＢ）を出力する。
【００４９】
次に、図１５を参照して、２並列の処理を行うロー更新処理について説明する。図１５は、２並列の処理を行う図６に示すロー更新部２３の構成を示すブロック図である。ロー更新部２３は、コンテキストＡとコンテキストＢに対するＬＰＳ／ＭＰＳ信号を一時的に記憶するレジスタＬＰＳ／ＭＰＳＡ１０１とＬＰＳ／ＭＰＳＡ’１０２、ＬＰＳ／ＭＰＳＢ１０３とＬＰＳ／ＭＰＳＢ’１０４を備える。また、コンテキストＡとコンテキストＢに対する再正規化により必要となるビットシフト量を一時的に記憶しておくレジスタｎｕｍＢｉｔｓＡ１０５とｎｕｍＢｉｔｓＡ’１０６、ｎｕｍＢｉｔｓＢ１０７とｎｕｍＢｉｔｓＢ’１０８を備える。
【００５０】
また、コンテキストＡとコンテキストＢに対するレンジ値からＬＰＳ区間長を減じた値を一時的に記憶するレジスタｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＡ１０９とｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＡ’１１０、ｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＢ１１１とｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＢ’１１２を備える。また、コンテキストＡとコンテキストＢそれぞれに対するロー更新を行うか否かを指定する信号を一時的に記憶しておくレジスタｖａｌｉｄＡ１１３とｖａｌｉｄＡ’１１４、ｖａｌｉｄＢ１１５とｖａｌｉｄＢ’１１６を備える。
【００５１】
また、ロー値の初期値を一時的に記憶しておくレジスタｍ＿ｕｉＬｏｗ１１７、Ｌｏｗの更新値であるレジスタｍ＿ｕｉＬｏｗ’１１８、現在のローに対する再正規化処理によるシフト量の総和の初期値を一時的に記憶しておくレジスタａｃｃ＿ｓｈｉｆｔ１１９、現在のローに対する再正規化処理によるシフト量を記憶しておくレジスタａｃｃ＿ｓｈｉｆｔ’１２０を備える。また、初期化時に、ｍ＿ｕｉＬｏｗ’１１８とａｃｃ＿ｓｈｉｆｔ’１２０にｍ＿ｕｉＬｏｗ１１７とａｃｃ＿ｓｈｉｆｔ１１９を設定し、それ以外では更新されたローと同じく更新された現在のローに対する再正規化処理によるシフト量の総和を設定するＳｅｌ１・１２１、Ｓｅｌ４・１２２を備える。
【００５２】
また、コンテキストＡとコンテキストＢそれぞれのＬＰＳ／ＭＰＳ信号がＬＰＳの場合、ｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＡ’１１０あるいは、ｃｕｒｒ＿ｍ＿ｕｉＲａｎｇｅＢ’１１２にｍ＿ｕｉＬｏｗ’１１８の値あるいは、更新されたｍ＿ｕｉＬｏｗ１１７の値を加えた値を選択し、ＬＰＳ／ＭＰＳ信号がＭＰＳの場合、更新されていないローを選択するセレクタＳｅｌ２・１２３、Ｓｅｌ７・１２４を備える。
【００５３】
また、コンテキストＢに対する情報が無効である場合、コンテキストＢに対するロー値更新を行わないようにするため、ＬＰＳ／ＭＰＳ信号をＭＰＳとし、再正規化のシフト量を０とし、コンテキストＢに対する情報が有効である場合、ロー更新を行うため、受け取ったコンテキストＢに対するＬＰＳ／ＭＰＳ信号と再正規化のシフト量を用いるように選択するセレクタＳｅｌ５・１２５、Ｓｅｌ６・１２６を備える。また、コンテキストＡとコンテキストＢそれぞれに対する再正規化によるシフト量によりＳｅｌ２・１２３やＳｅｌ７・１２４で選択された更新されたロー値を左シフトするｌシフタ１・１２７、ｌシフタ２・１２８を備える。
【００５４】
また、受け取ったコンテキストＡとＢに対する再正規化のシフト量を加算する加算器１２９、その加算された値とａｃｃ＿ｓｈｉｆｔ’値を加算する加算器１３０、その加算された値が、予め指定される値を超えるか否か判定する判定器１３１、コンテキストＡ、コンテキストＢのいずれかあるいは、双方が有効である場合、有効と判定する判定器１３２を備える。また、判定器１３２の出力が有効かつ、判定器１３１が有る閾値を超えたと判定した場合、ビットストリーム生成器に有効であることを示すためｖａｌｉｄを１にする論理積部１３３を備える。
【００５５】
また、判定器１３１で閾値を超えたと判断されたときに、加算器１３０の出力から減じた（ここでは８とする）シフト量を渡し、閾値を超えていないと判断された時には、先の加算器１３０の出力を選択する選択器Ｓｅｌ９・１３４を備える。ここでは８ビット分づつビットストリーム生成器にビットを渡すことを想定し、加算器１３０の出力に２を加えたビット数分、ｌシフタ２・１２８によって求められた値を右シフトして、ビットストリーム生成器に出力するｒシフタ４・１３５、ｌシフタ２・１２８の出力からｒシフタ４・１３５によってビットストリーム生成器に出力されなかった値を一時的に求めておくためのマスク値を例えば３２ビット演算器であれば、加算器１３０の出力である累積されたシフト量を３０から減じた値分０ｘｆｆｆｆｆｆｆｆを右シフトして生成するｒシフタ３・１３６を備える。
【００５６】
また、ビットストリーム生成器にデータを送る場合、ローの更新値としてビットストリーム生成器に渡したビットを除いたデータを、ビットストリーム生成器にデータを送らない場合、ｌシフタ２・１２８から出力されるこれまで累積されたロー値をロー値の更新候補値として選択するＳｅｌ８・１３７を備える。また、コンテキストＡとコンテキストＢ共に有効でない場合、現在のロー値を保持し続け、いずれか一つでも有効であれば、Ｓｅｌ８・１３７の出力である更新候補値をローの更新値とするＳｅｌ３・１３８を備える。
【００５７】
前述した説明は、閾値が８の場合について説明した。それぞれのシフト量は、図１６に示すようになっており、ハードウェアで構成する場合、マスク等使用せずともバレルシフタ等で実現することができる。ビットストリーム生成器への出力値は、図１６から明らかなように、ａｃｃ＿ｓｈｉｆｔ−８＋１０であるため、ａｃｃ＿ｓｈｉｆｔに２を加えた値で、ｌシフタ２・１２８の出力を右シフトした。また、マスク値も図１６から明らかなようにａｃｃ＿ｓｈｉｆｔ＋２分ビット１を立てる必要が有るため、３２−（ａｃｃ＿ｓｈｉｆｔ＋２）すなわち、３０−ａｃｃ＿ｓｈｉｆｔ分オール１の値を右にシフトする必要が有る。あるいは、ハードウェアで構成する場合容易に左シフトあるいは組合せ回路で容易にマスク値を生成できるので、ａｃｃ＿ｓｈｉｆｔ＋２ビット分ＬＳＢ側から１を立てるようにしてもよい。
【００５８】
このような構成をとることで、１ｂｉｎ目と２ｂｉｎ目に対するロー値の更新を２並列で実行可能となるとともに、再正規化によるロー値のシフトに合わせ、ロー値更新に直接関与しなくなったビット分をビットストリーム生成処理部に送ることができ、ロー値更新を行う演算器のビット数が削減される。このビット数の削減により演算処理速度が向上し、並列動作時のロー値更新が高速化される。
【００５９】
次に、ロー更新部から８ビット単位でデータを受け取る場合のビットストリーム生成処理の例を説明する。図１７は、図６に示すビットストリーム生成部２４構成を示す図である。ビットストリーム生成部２４は、出力するビットストリームを一時的に記憶しておくｏｕｔＢｙｔｅ＿ｒ１５０、ｏｕｔＢｙｔｅ＿ｒ１５０の値を保持し続けるか、新たなデータを受け取るかをステートマシンの指示により選択するセレクタＳｅｌ１・１５１、受け取ったデータのキャリをｏｕｔＢｙｔｅ＿ｒ１５０に加算する必要が有る場合にキャリを加算する加算器１５２、ビットストリームとして出力する値を、ｏｕｔＢｙｔｅ＿ｒとするか、０ｘｆｆとするか、０ｘ００とするかをステートマシンの指示により選択するＳｅｌ４・１５３を備える。
【００６０】
また、ステートマシン１５４が使用するカウント値を初期化するか、更新値を用いて更新するかを選択するＳｅｌ２・１５５、ステートマシン１５４が使用するこのビットストリーム生成器からまだ出力していないデータ数をカウントするカウンタｃｎｔ＿ｒ１５６、ステートマシン１５４の指示により、ｃｎｔ＿ｒ１５６をインクリメントするかデクリメントするか保持するかを選択するＳｅｌ３・１５７を備える。ステートマシンは、受け取ったデータとそのデータの有効情報、ｃｎｔ＿ｒ１５６の値により、状態を図１８に示すようにＩｄｌｅ、Ｓｔｏｒｅ、Ｏｕｔ１、Ｏｕｔ２のいずれかに遷移させる。
【００６１】
基本的には、ロー更新部から受け取った値をビットストリームとして出力するが、受け取ったデータが０ｘｆｆである場合、次のデータにキャリビットが立っていると、０ｘｆｆが０ｘ００に反転し、０ｘｆｆの前のデータにそのキャリは伝搬する。そのため、一時的に受け取ったデータを保持し、次のデータが０ｘＦＦか否かを調べ、０ｘＦＦでなければ、先に保持しておいたデータをビットストリームとして出力し、新たに受け取ったデータをレジスタに保持することを繰り返す。もし、次のデータが０ｘＦＦの場合、次々と０ｘＦＦが続いたとしても、０ｘＦＦでないデータがキャリを持っていればそれらはすべて０ｘ００となり、先に記述したように０ｘＦＦが続く前のデータにキャリが伝搬する。
【００６２】
そのため、次のデータが０ｘＦＦの場合、ｏｕｔＢｙｔｅ＿ｒのデータを保持し続け、ｏｕｔＢｙｔｅ＿ｒの分も合わせてデータ数をカウントに加える。これは、インクリメント等で対応可能である。０ｘＦＦが続いたのち、０ｘＦＦでないデータを受け取った場合、キャリが有るか確認し、有る場合、ｏｕｔＢｙｔｅ＿ｒにキャリが加わるので、Ｓｅｌ４・１５３の左のデータを選択し出力する。そして、カウンタをデクリメントする。カウンタが１を超えている場合、超えた分０ｘＦＦのデータが有ることを示しているので、先のキャリが有る場合、０ｘ００をカウンタが１になるまで出力し続けカウンタをデクリメントする、ない場合０ｘＦＦを出力し続けカウンタが１になるまで、カウンタをデクリメントする。１になった場合、受け取ったデータをｏｕｔＢｙｔｅ＿ｒに保持する。
【００６３】
このようにして、ビットストリーム生成処理は実行され、受け取ったロー値からビットストリームを生成する。
【００６４】
以上説明したように、二値算術符号化部の内部状態を表す、各コンテキストのシンボル生成確率の状態、レンジ値、ロー値を独立させて更新するのに加え、シンボル生起確率の状態の依存性を利用し、一度に複数ｂｉｎに対する生起確率を読み出し、更新処理を行うことで、高速化を実現することができる。
【００６５】
前述した実施形態における二値算術符号化装置をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００６６】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【産業上の利用可能性】
【００６７】
スライス分割などアルゴリズムレベルでの並列化を行わなくとも、複数ｂｉｎ列を並列処理することにより二値算術符号化処理を高速化することが不可欠な用途に適用できる。
【符号の説明】
【００６８】
１、５、６、２１・・・コンテキスト更新部、２、７、８、２２・・・レンジ更新部、３、９、１０、２３・・・ロー更新部、４、１１、１２・・・ｒＬＰＳテーブル、２４・・・ビットストリーム生成部
【図１】
2015115665.tif 000003
【図２】
2015115665.tif 000004
【図３】
2015115665.tif 000005
【図４】
2015115665.tif 000006
【図５】
2015115665.tif 000007
【図６】
2015115665.tif 000008
【図７】
2015115665.tif 000009
【図８】
2015115665.tif 000010
【図９】
2015115665.tif 000011
【図１０】
2015115665.tif 000012
【図１１】
2015115665.tif 000013
【図１２】
2015115665.tif 000014
【図１３】
2015115665.tif 000015
【図１４】
2015115665.tif 000016
【図１５】
2015115665.tif 000017
【図１６】
2015115665.tif 000018
【図１７】
2015115665.tif 000019
【図１８】
2015115665.tif 000020