(57)【要約】【課題】符号化効率を良好にするとともに、コンテキストメモリを簡単に初期化できるようにする。【解決手段】コンテキスト毎の優勢シンボル（valMPS）及びその発生確率（pStateIdx）との情報を格納するコンテキストメモリ１１４をスライス毎に初期化する際に、３つのテーブルから算出したコンテキスト毎のvalMPS及びpStateIdxの組み合わせと、コンテキストメモリ１１４に格納されている前回のスライスの符号化終了時のコンテキスト毎のvalMPS及びpStateIdxの組み合わせとを比較して評価値を生成する。そして、生成された評価値のうち、最も良好な評価値となるvalMPS及びpStateIdxの組み合わせを初期値として決定する。【選択図】図１
2010171655.tif 000002
【特許請求の範囲】
【請求項１】
コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化装置であって、
前記コンテキスト毎の優勢シンボル及び発生確率の複数の組み合わせの情報を格納する記憶手段と、
前記記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価手段と、
前記評価手段によって生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定手段とを有することを特徴とする算術符号化装置。
【請求項２】
前記初期値決定手段は、前記記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせのうち、前記評価値が最も良好である組み合わせを前記コンテキストメモリに格納する初期値として決定することを特徴とする請求項１に記載の算術符号化装置。
【請求項３】
前記評価手段は、前記記憶手段に記憶された前記優勢シンボルの発生確率と、前回のスライスの符号化終了時の優勢シンボルの発生確率との差分絶対値を算出し、前記算出した差分絶対値に基づいて評価値を生成することを特徴とする請求項１又は２に記載の算術符号化装置。
【請求項４】
前記評価手段は、前記優勢シンボル及び発生確率の比較の結果に応じて評価値に重みを付加することを特徴とする請求項１に記載の算術符号化装置。
【請求項５】
前記評価手段は、前回に符号化したスライスのタイプと次に符号化するスライスのタイプとが異なる場合は、時間的に最も近い同じタイプであるスライスの優勢シンボル及び発生確率を用いて評価値を生成することを特徴とする請求項１に記載の算術符号化装置。
【請求項６】
前記評価手段は、前回に符号化したスライスと次に符号化するスライスとの間にシーンチェンジが存在する場合には、評価値を生成しないようにすることを特徴とする請求項１に記載の算術符号化装置。
【請求項７】
コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化方法であって、
記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、
前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とを有することを特徴とする算術符号化方法。
【請求項８】
コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化方法の各工程をコンピュータに実行させるプログラムであって、
記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、
前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とをコンピュータに実行させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は算術符号化装置、算術符号化方法、プログラム及び記憶媒体に関し、特に、コンテキストメモリの初期化を行うために用いて好適な技術に関する。
【背景技術】
【０００２】
近年、ディジタル信号処理や、ＬＳＩの高集積化、高速化などの進歩により、動画像や静止画像、音声などの大量のディジタル情報を高能率に符号化し、記録媒体へ記録したり、通信媒体による伝送を行ったりすることが可能になった。このような技術を応用して、最近ではディジタルハイビジョン放送や、地上波ディジタル放送が開始された。また、ディジタルビデオカメラ等の高性能化が進み、撮影画像が高画質化されている。
【０００３】
画像符号化の規格としては、近年、ＩＴＵ−Ｔによって策定されたＨ．２６４等が注目されている（例えば、非特許文献１参照）。このＨ．２６４では、従来の映像符号化の規格であるＭＰＥＧよりも高能率に符号化を実現している。Ｈ．２６４において高能率に符号化を実現させたものの一つとしてエントロピー符号化がある。高能率のエントロピー符号化を実現する方式としてＨ．２６４では、算術符号化を用いたＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）が使用可能である。
【０００４】
しかし、ＣＡＢＡＣ方式では、スライスの先頭において、０から４５９までのアドレスを持ち、１アドレス７ビットのデータを保持するコンテキストメモリと呼ばれる記憶装置の初期化を行う必要がある。なお、１スライスの符号化が終了した時点で、コンテキストメモリが初期化されるので、スライスの先頭においては、符号化中の画像の性質を反映させた符号化ができない。
【０００５】
コンテキストメモリを初期化する方法としては、例えば３つの初期化変数テーブルを用いてコンテキストメモリを初期化することが行われている。例えば、特許文献１に記載の算術符号化装置では、初期化変数テーブルを適切に選択して使用することによって符号化効率を上げている。具体的には、まず、第１の初期化変数テーブルの初期化変数を用いて初期化を行い、所定のビット数が発生するまで符号化を行う。次に、第２の初期化変数テーブルの初期化変数を用いて初期化を行い、同様に所定のビット数が発生するまで符号化を行う。最後に、第３の初期化変数テーブルの初期化変数を用いて初期化を行い、同様に所定のビット数が発生するまで符号化を行い、最も効率が良い初期化変数テーブルを選択して、１スライス分の符号化を行っている。
【０００６】
【特許文献１】特開２００６−２７９３３３号公報
【非特許文献１】ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の算術符号化装置では、３つの初期化変数テーブルそれぞれに対して、所定のビット数分だけ符号化を行っているため、多くの処理時間を要するという問題があった。
【０００８】
本発明は前述の問題点に鑑み、符号化効率を良好にするとともに、コンテキストメモリを簡単に初期化できるようにすることを目的としている。
【課題を解決するための手段】
【０００９】
本発明の算術符号化装置は、コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化装置であって、前記コンテキスト毎の優勢シンボル及び発生確率の複数の組み合わせの情報を格納する記憶手段と、前記記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価手段と、前記評価手段によって生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定手段とを有することを特徴とする。
【００１０】
本発明の算術符号化方法は、コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化方法であって、記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とを有することを特徴とする。
【００１１】
本発明のプログラムは、コンテキスト毎の優勢シンボルと前記優勢シンボルの発生確率との情報を格納するコンテキストメモリをスライス毎に初期化するとともに、前記コンテキストメモリに格納された優勢シンボル及び発生確率の情報を用いて二値データの算術符号化を行う算術符号化方法の各工程をコンピュータに実行させるプログラムであって、記憶手段に記憶された優勢シンボル及び発生確率の複数の組み合わせと、前回のスライスの符号化終了時のコンテキスト毎の優勢シンボル及び発生確率の組み合わせとを比較して評価値を生成する評価工程と、前記評価工程において生成された評価値に基づいて、初期化の際に前記コンテキストメモリに格納するための優勢シンボル及び発生確率の初期値を決定する初期値決定工程とをコンピュータに実行させることを特徴とする。
【００１２】
本発明の記憶媒体は、前記に記載のプログラムを記憶したことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、コンテキストメモリの初期化を行う際に、符号化効率を良好にするとともに、符号化を行う手間を不要にしてコンテキストメモリを簡単に初期化することができる。
【発明を実施するための最良の形態】
【００１４】
（第１の実施形態）
以下、本発明の実施形態について図面を参照しながら説明する。
まず、図２を参照しながら、ＣＡＢＡＣの符号化処理について説明する。図２は、本実施形態におけるＣＡＢＡＣ方式の算術符号化装置２００の構成例を示すブロック図である。
図２において、ＣＡＢＡＣ方式の算術符号化装置２００は、二値化部２０１、コンテキスト計算部２０２、コンテキストメモリ２０３、二値算術符号化部２０４、及びコンテキストメモリ初期化部２０５により構成されている。
【００１５】
二値化部２０１は、差分動きベクトルや、直交変換係数、予測モード等の情報Ｄ２１を入力し、規格によって定められた二値化処理を行い、二値化シンボル（二値データ）Ｄ２２を生成する。なお、二値化処理の詳細については、非特許文献１に記載されている。
【００１６】
コンテキストメモリ２０３には、発生確率が高い優勢シンボル（most probable symbol、以下、valMPS）とその優勢シンボルの発生確率（以下、pStateIdx）との情報がコンテキストインデックス毎に４６０個格納されている。コンテキスト計算部２０２は、二値化シンボルＤ２２に基づいて、コンテキストインデックスＤ２３を算出する。そして、コンテキストインデックスＤ２３をアドレスとしてコンテキストメモリ２０３からvalMPS及びpStateIdxの情報Ｄ２４を読み出し、二値算術符号化部２０４に出力する。
【００１７】
コンテキストメモリ初期化部２０５は、コンテキストインデックスＤ２３を入力してコンテキストメモリ２０３の初期化を行うためのものである。コンテキストメモリ２０３の初期化については、図１の説明において後述する。
【００１８】
二値算術符号化部２０４は、二値化シンボルＤ２２と、valMPS及びpStateIdxの情報Ｄ２４とに基づいて算術符号化処理を行い、その結果Ｄ２６を外部に出力する。二値算術符号化部２０４は、二値化シンボル毎に算術符号化を行い、その都度、コンテキストメモリ２０３にvalMPS及びpStateIdxの情報Ｄ２５を出力して更新する。これにより、符号化中の画像の性質にあった符号化を実現している。
【００１９】
次に、図３を参照しながら、二値算術符号化部２０４の動作をより詳細に説明する。
図３において、二値算術符号化部２０４は、領域を指定するcodIRange及びcodILowと呼ばれる変数を用いて算術符号化の処理を行う。算術符号化では、シンボルが取り得る値の個数分で数直線を分割する。ここでは二値算術符号化なので、数直線を２分割する。分割する際の各領域の大きさは各シンボルの発生確率に基づいて決定する。
【００２０】
図２に示した例によれば、まず、コンテキストインデックスＤ２３に基づいてコンテキストメモリ２０３から読み出されたvalMPS及びpStateIdxの情報Ｄ２４を入力する。この時、入力されたpStateIdxの情報に基づいてcodIRangeの幅を決定する。図３に示す時刻ｔ１の領域のcodIRangeは、発生確率が高いシンボルの領域の幅を示しており、codILowは、領域の下限値を示している。なお、pStateIdxは、０から６３までの値を取り、値が６３に近い程、codIRangeの幅が大きくなる。
【００２１】
時刻ｔ１において、二値化部２０１から出力された二値化シンボルＤ２２を１ビットずつ入力する。このとき、入力した二値化シンボルと、valMPSとが一致していた場合は、時刻ｔ２における全領域をcodIRangeの幅の分に設定する。
【００２２】
次に、時刻ｔ２において、新たなpStateIdx及びvalMPSの情報Ｄ２４を入力し、同じように領域を分割する。図３に示す例では、領域３０１が時刻ｔ２におけるcodIRangeになり、下限３０２が時刻ｔ２におけるcodILowとなる。次の二値化シンボルを同様に１ビットずつ入力し、二値化シンボルとvalMPSとが異なっていた場合は、領域３０３を時刻ｔ３における全領域として選択する。時刻ｔ３でも同様にpStateIdxに基づいて領域を分割する。下限３０４が時刻ｔ３におけるcodILowであり、領域３０５が時刻ｔ３におけるcodIRangeとなる。
【００２３】
このように分割を繰り返して二値算術符号化を進めていくと、領域が狭くなり領域を表現できなくなる。そこでＣＡＢＡＣ方式では、codIRangeの幅が0x100より小さくなると正規化処理（以下、Renorm処理）を行い、表現精度を保っている。また、Renorm処理を行う際に、codILowの値に基づいて符号を出力する。なお、この動作の詳細については、非特許文献１に記載されている。
【００２４】
二値算術符号化において、valMPSと二値化シンボルとが一致せずcodIRangeが急速に縮小すると、その分Renorm処理の発生頻度が高くなり、符号も多く発生してしまう。したがって、valMPSと二値化シンボルとが一致する頻度が高いと、Renorm処理の発生頻度が低くなり、符号の発生も抑えられ、符号化効率が良くなる。そこでＣＡＢＡＣ方式では、二値化シンボルの１ビットを符号化する毎にvalMPS及びpStateIdxを更新することにより、符号化を進めていくに従ってvalMPSと二値化シンボルとが一致しやすくしている。この結果、符号化効率が良好になる。
【００２５】
次に、コンテキストメモリの初期化の動作について図４及び図５を参照しながら説明する。
図４は、非特許文献１に記載されているコンテキストメモリの初期化に用いる変数（ｍ，ｎ）と、コンテキストインデックス（以下、ctxIdx）と、cabac＿init＿idcとの関係を示す図である。なお、図４においては、ctxIdxは１１から２３までを示しているが、ctxIdxは０から４５９まで定義されている。
【００２６】
cabac＿init＿idcは、スライスヘッダに含まれており、コンテキストメモリの初期化の時に使用されるものである。例えば、スライスの先頭において、スライスヘッダのcabac＿init＿idcの値が０だった場合は、図４において、cabac＿init＿idcが０である行のｍとｎとを用いて初期化する。
【００２７】
ここで、従来のコンテキストメモリの初期化の動作について図５を参照しながら説明する。図５は、従来のコンテキストメモリの初期化を行うための構成例を示すブロック図である。
図５において、コンテキストメモリの初期化を行う際には、第１の初期化変数テーブル５１１と、第２の初期化変数テーブル５１２と、第３の初期化変数テーブル５１３と、選択部５０１と、初期値生成部５０２と、コンテキストメモリ５０３とを用いている。
【００２８】
第１の初期化変数テーブルには、cabac＿init＿idcが０の場合の初期化変数ｍ及びｎの情報がctxIdx分保持されている。また、第２の初期化変数テーブルにはcabac＿init＿idcが１の場合の初期化変数ｍ及びｎの情報がctxIdx分保持されている。同様に第３の初期化変数テーブルにはcabac＿init＿idcが２の場合の初期化変数ｍ及びｎの情報がctxIdx分格納されている。
【００２９】
ctxIdx生成部５０４は、０から４５９の信号を生成し、第１の初期化変数テーブル５１１と、第２の初期化変数テーブル５１２と、第３の初期化変数テーブル５１３とに出力する。第１の初期化変数テーブル５１１と、第２の初期化変数テーブル５１２と、第３の初期化変数テーブル５１３とにctxIdxが入力されると、選択部５０１は、ctxIdxをアドレスとして初期化変数ｍ及びｎの情報を各テーブルから読み出す。ここで、Ｄ５０は第１の初期化変数テーブル５１１から出力される初期化変数ｍ及びｎの情報であり、Ｄ５１は第２の初期化変数テーブル５１２から出力される初期化変数ｍ及びｎの情報である。また、Ｄ５２は第３の初期化変数テーブル５１３から出力される初期化変数ｍ及びｎの情報である。
【００３０】
初期化変数ｍ及びｎの情報Ｄ５０〜Ｄ５２を選択部５０１が入力すると、スライスヘッダに含まれるcabac＿init＿idcの値に従って所定の値に対応する初期化変数の情報Ｄ５３を初期値生成部５０２に出力する。なお、スライスヘッダのcabac＿init＿idcの値に対応した初期化変数テーブルのみにctxIdxを供給するようにしてもよい。
【００３１】
初期値生成部５０２は、入力した初期化変数ｍ及びｎの情報Ｄ５３から、ｍ及びｎの値を以下の数１に示す式に入力し、さらに以下の数２に示す式を用いてコンテキストメモリに格納するためのvalMPS及びpStateIdxの値を算出する。
【００３２】
【数１】
2010171655.tif 000003
【００３３】
【数２】
2010171655.tif 000004
【００３４】
ここで、Ｃｌｉｐ３（ｘ，ｙ，ｚ）は、ｚ＜ｘの時はＣｌｉｐ３（ｘ，ｙ，ｚ）＝ｘであり、ｚ＞ｙの時はＣｌｉｐ３（ｘ，ｙ，ｚ）＝ｙであり、それ以外の時は、Ｃｌｉｐ３（ｘ，ｙ，ｚ）＝ｚである。また、スライス毎に異なる不図示の量子化パラメータ（SliceQPy）を入力し、初期値を生成する。
【００３５】
以上のようにvalMPS及びpStateIdxの値をctxIdx４６０個分算出し、valMPS及びpStateIdxの情報Ｄ５４を０から４５９までのアドレスを持ち、１アドレス７ビットのデータを保持するコンテキストメモリ５０３に出力する。さらに、ctxIdx（コンテキストインデックス）Ｄ５５をコンテキストメモリ５０３のライトアドレスとして出力する。以上の処理によってコンテキストメモリの初期化を行う。
【００３６】
以上説明したコンテキストメモリの初期化動作は、スライスの先頭で必ず行われる。ここで、第１の初期化変数テーブルから第３の初期化変数テーブルのうち、どの初期化変数テーブルを用いてコンテキストメモリを初期化するかについては様々な方法が考えられる。例えば、特許文献１に記載の方法を用いて初期化変数テーブルを選択すると、所定のビット数分だけ符号化を行っているため、多くの処理時間を要してしまう。そこで本実施形態では、より簡単に好適な初期化変数テーブルを決定する手順について説明する。
【００３７】
図１は、本実施形態に係るコンテキストメモリ初期化部２０５の構成例を示すブロック図である。
図１において、コンテキストメモリ初期化部２０５は、第１の初期化変数テーブル１０１と、第２の初期化変数テーブル１０２と、第３の初期化変数テーブル１０３とを備えている。そして、それぞれの初期化変数テーブル１０１〜１０３には、ctxIdxとcabac＿init＿idc毎の初期化変数ｍ及びｎの情報とが格納されている。
【００３８】
第１の初期値生成部１０４は、スライス毎に異なる量子化パラメータ（SliceQPy）と、第１の初期化変数テーブル１０１からコンテキストインデックス（ctxIdx）毎に初期化変数ｍ及びｎの情報Ｄ１１とを入力する。また、第２の初期値生成部１０５は、量子化パラメータ（SliceQPy）と、第２の初期化変数テーブル１０２からコンテキストインデックス（ctxIdx）毎に初期化変数ｍ及びｎの情報Ｄ１２とを入力する。同様に、第３の初期値生成部１０６は、量子化パラメータ（SliceQPy）と、第３の初期化変数テーブル１０３からコンテキストインデックス（ctxIdx）毎に初期化変数ｍ及びｎの情報Ｄ１３とを入力する。
【００３９】
そして、第１の初期値生成部１０４は、数１及び数２に示した式を用いてctxIdx毎にvalMPS及びpStateIdxを算出し、valMPS及びpStateIdxの情報Ｄ１４を第１の初期値記憶部１０７に出力して記憶する。第２の初期値生成部１０５及び第３の初期値生成部１０６も同様に算出して、それぞれvalMPS及びpStateIdxの情報Ｄ１５、Ｄ１６をそれぞれ第２の初期値記憶部１０８、第３の初期値記憶部１０９に出力して記憶する。
【００４０】
第１の評価部１１０は、前スライスの符号化が終了した時点でのコンテキストメモリ１１４に記憶されたvalMPS及びpStateIdxの情報Ｄ２５を入力する。さらに、第１の初期値記憶部１０７からvalMPS及びpStateIdxの情報Ｄ１７を読み出す。次に、前スライスの符号化が終了した時点でのvalMPS及びpStateIdxと、第１の初期値記憶部１０７に記憶されたvalMPS及びpStateIdxとの差分絶対値をそれぞれctxIdx毎に取る。そして、差分絶対値に基づく評価値を決定し、評価値の情報Ｄ２０を初期値決定部１１３に出力する。また、第２の評価部１１１及び第３の評価部１１２も同様に、それぞれvalMPS及びpStateIdxの情報Ｄ１８、Ｄ１９を読み出し、それぞれが決定した評価値の情報Ｄ２１、Ｄ２２を初期値決定部１１３に出力する。
【００４１】
初期値決定部１１３は、入力された３つの評価値の中から最も評価が高い評価値の初期値（valMPS及びpStateIdx）を選択する。そして、選択した初期値の情報Ｄ２３とそれに対応するctxIdxＤ２４とをコンテキストメモリ１１４に出力する。
【００４２】
第１の初期化変数テーブル１０１〜第３の初期化変数テーブル１０３は、ＲＯＭなどの記憶装置で実現させるものである。また、図４に示したように、cabac＿init＿idcにおける０、１、２の何れかの値と、０から４５９の中のctxIdxの値とが与えられると、cabac＿init＿idcとctxIdxとに対応した初期化変数ｍ及びｎの情報が読み出される。
【００４３】
第１の評価部１１０〜第３の評価部１１２は、前回のスライスの最後もしくは、今回のスライスの先頭において、まず、コンテキストメモリ１１４に保持されているctxIdxの値が０のvalMPS及びpStateIdxの情報を入力する。そして、第１の初期値記憶部１０７〜第３の初期値記憶部１０９のそれぞれに記憶されているctxIdxの値が０のvalMPS及びpStateIdxの情報をそれぞれ入力する。なお、コンテキストメモリ１１４に保持されているvalMPS及びpStateIdxは、前スライスの符号化が終了した時点でのvalMPS及びpStateIdxである。
【００４４】
次に、第１の評価部１１０は、入力された２つのpStateIdxの差分絶対値を算出する。同時に第２の評価部１１１及び第３の評価部１１２も同様の差分絶対値を算出する。そして、３つの差分絶対値のうち、値が大きい順にポイントを付加していく。ここで、付加するポイントはペナルティとしての減点方式の評価値であり、評価値が大きいと初期値と前スライスの最終状態との差が大きいことを示している。ただし、valMPSが異なる場合は、ある所定のポイントを付加するようにする。このような評価をctxIdxの値が０から４５９まで行い、それぞれのcabac＿init＿idcの評価値の情報Ｄ２０〜Ｄ２２を初期値決定部１１３に出力する。
【００４５】
初期値決定部１１３は、評価値の情報Ｄ２０〜Ｄ２２を入力し、最終的に評価値が最も小さい（良好な）valMPS及びpStateIdxの初期値を生成した初期化変数テーブルのvalMPS及びpStateIdxの初期値を選択する。そして、その初期値を用いてコンテキストメモリ１１４の初期化を行う。具体的には、最も評価値が良好なcabac＿init＿idcを用いたvalMPS及びpStateIdxの初期値の情報Ｄ２３をctxIdxＤ２４とともに出力し、コンテキストメモリ１１４に格納していく。これにより、前スライスにおいて更新してきたvalMPS及びpStateIdxに最も近い値を継承することができ、画像の性質にあった符号化がスライスの先頭から可能となる。また、各cabac＿init＿idcの初期値を用いて符号化しないようにしたので最適なcabac＿init＿idcを選択する時間も低減される。
【００４６】
図６は、本実施形態に係るコンテキストメモリ初期化部２０５のコンテキスト毎の動作手順の一例を示すフローチャートである。
まず、ステップＳ６１において、第１の評価部１１０は、スライスの先頭であるか否かを判断する。スライスの先頭であるか否かを判断する際には、スライスごとに異なるSliceQPyの値に変化があった場合に、スライスの先頭であるものと判断するようにしてもよい。この判断の結果、スライスの先頭である場合は、ステップＳ６２に遷移する。一方、ステップＳ６１の判断の結果、スライスの先頭でない場合はそのまま待機する。なお、第２の評価部１１１及び第３の評価部１１２においても同様の処理を行う。
【００４７】
次に、ステップＳ６２において、第１の評価部１１０は、第１の初期化変数テーブル１０１から算出された優勢シンボル（valMPS）及びその発生確率（pStateIdx）の初期値の情報を第１の初期値記憶部１０７から読み出す。そして、コンテキストメモリ１１４に記憶された前スライスの符号化終了時における優勢シンボル（valMPS）及びその発生確率（pStateIdx）の情報を入力する。そして、２つのpStateIdxを比較し、その差分絶対値を算出する。なお、第２の評価部１１１及び第３の評価部１１２においても同様の処理を行う。
【００４８】
次に、ステップＳ６３において、第１の評価部１１０〜第３の評価部１１２は、ステップＳ６２で算出した差分絶対値に基づいて評価値を決定する。具体的には、第１の評価部１１０〜第３の評価部１１２のそれぞれにおいて算出された３つの差分絶対値を比較して、最も大きかったものに対して評価値としてペナルティを加算する。また、その次に差分評価値が大きいものに対してもペナルティを加算する。そして、このようにして算出した評価値を一旦保持しておき、次のステップＳ６４に遷移する。
【００４９】
次に、ステップＳ６４において、ctxIdxの値が４５９までカウントされたか否かを判断する。これはctxIdxにおける全ての評価値を算出するために必要なステップである。この判断の結果、ctxIdxが４５９に満たない場合はステップＳ６５に遷移し、ctxIdxが４５９になった場合はステップＳ６６に遷移する。
【００５０】
次に、ステップＳ６５において、ctxIdxの値をインクリメントし、ステップＳ６２の処理に遷移する。一方、ステップＳ６６においては、初期値決定部１１３は、ステップＳ６１からステップＳ６５までの処理で得られたcabac＿init＿idc毎の評価値のうち、最も低い（最も良好な）評価値を選択する。そして、選択した評価値のcabac＿init＿idcを用いて優勢シンボル（valMPS）及びその発生確率（pStateIdx）の初期化を行い、初期化処理を終了する。
【００５１】
なお、第１の初期値生成部１０４がcabac＿init＿idc毎の優勢シンボルと発生確率との初期値を算出するタイミングとしては、ステップＳ６２において行ってもよく、スライスの先頭になる前に予め保持しておいてもよい。
【００５２】
以上のように本実施形態によれば、各テーブルから評価値を算出して最も良好な組み合わせを選択するようにしたので、前スライスの最終状態に近い優勢シンボルと発生確率との初期値が得られる。これにより、前スライスにおいて更新してきたvalMPS及びpStateIdxに最も近い値を継承することができ、画像の性質にあった符号化がスライスの先頭から可能となる。
【００５３】
なお、本実施形態では、初期化の際に、前スライスの最終状態に近い優勢シンボルと発生確率との初期値を用いるようにしたが、シーンチェンジが存在する場合には、画像の性質が前スライスの最終状態とは大きく異なることが考えられる。そこで、シーンチェンジを検出した場合には、本実施形態における処理を停止し、従来の方法により初期値を決定するようにしてもよい。
【００５４】
また、本実施形態においては、初期化の際に、前スライスの最終状態に近い優勢シンボルと発生確率との初期値を用いるようにしたが、タイプが異なる前スライスよりもタイプが同じ前々スライスを用いた方がよい場合もある。この場合、符号化の対象となるスライスが例えばＰスライスである場合、時間的に最も近い同じタイプであるＰスライスの優勢シンボル及び発生確率を用いてもよい。
【００５５】
（本発明に係る他の実施形態）
前述した本発明の実施形態における算術符号化装置を構成する各手段、並びに算術符号化方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記憶したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【００５６】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００５７】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図６に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００５８】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００５９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００６０】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００６１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。
【００６２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００６３】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００６４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００６５】
さらに、その他の方法として、まず記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態に係るコンテキストメモリ初期化部の構成例を示すブロック図である。
【図２】本発明の実施形態におけるＣＡＢＡＣ方式の算術符号化装置の構成例を示すブロック図である。
【図３】二値算術符号化の動作の一例を示す概念図である。
【図４】コンテキストメモリの初期化に用いる変数（ｍ，ｎ）と、コンテキストインデックスと、cabac＿init＿idcとの関係を示す図である。
【図５】従来のコンテキストメモリの初期化を行うための構成例を示すブロック図である。
【図６】本発明の実施形態に係るコンテキストメモリ初期化部の動作手順の一例を示すフローチャートである。
【符号の説明】
【００６７】
１０１  第１の初期化変数テーブル
１０２  第２の初期化変数テーブル
１０３  第３の初期化変数テーブル
１０４  第１の初期値生成部
１０５  第２の初期値生成部
１０６  第３の初期値生成部
１０７  第１の初期値記憶部
１０８  第２の初期値記憶部
１０９  第３の初期値記憶部
１１０  第１の評価部
１１１  第２の評価部
１１２  第３の評価部
１１３  初期値決定部
１１４  コンテキストメモリ
２０１  二値化部
２０２  コンテキスト計算部
２０３  コンテキストメモリ
２０４  二値算術符号化部
２０５  コンテキストメモリ初期化部
【図１】
2010171655.tif 000005
【図２】
2010171655.tif 000006
【図３】
2010171655.tif 000007
【図４】
2010171655.tif 000008
【図５】
2010171655.tif 000009
【図６】
2010171655.tif 000010