(57)【要約】【課題】コンテクスト分類に基づく適応エントロピ符号化において，入力画像に応じて適応的に初期化されたコンテクストテーブルを利用可能とし，符号化効率の向上を図る。【解決手段】時空間領域においてマクロブロックを同一の統計的性質を持つクラスに分類し，そのクラス分類情報とコンテクスト情報とをクラス分類情報記憶部１０に記憶しておく。スライスなどの符号化単位の符号化開始時には，コンテクストテーブル初期値設定部１１によって，クラス分類情報記憶部１０を参照し，符号化対象マクロブロックと同一クラスに属するマクロブロックのもつコンテクストテーブルを，コンテクストテーブルの更新に用いる情報として継承して，コンテクストテーブルの初期化を行う。【選択図】図１
2011024001.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象シンボルの条件付き発生確率をモデル化した確率モデル情報を保持するコンテクストテーブルを用いて，符号化対象データをエントロピ符号化するコンテクスト適応エントロピ符号化方法において，
符号化対象となるブロックまたはシンボルの符号化対象データを，あらかじめ定められた分類基準に従って複数のクラスに分類した情報と，符号化済みの符号化対象データに対する確率モデル情報とを記憶するクラス分類情報記憶手段を参照し，ある符号化単位の符号化開始時に，これから符号化する符号化対象データと同一のクラスに属する符号化済みの符号化対象データの確率モデル情報を用いて，コンテクストテーブルを初期化するコンテクストテーブル初期値設定過程と，
前記コンテクストテーブル初期値設定過程によって初期化されたコンテクストテーブルが持つ確率モデル情報に従って符号化対象データを符号化し，その符号化結果に従って前記コンテクストテーブルが持つ確率モデル情報を更新するとともに，その更新された確率モデル情報を前記クラス分類情報記憶手段に書き出す符号化過程とを有する
ことを特徴とするコンテクスト適応エントロピ符号化方法。
【請求項２】
請求項１記載のコンテクスト適応エントロピ符号化方法において，
前記コンテクストテーブル初期値設定過程では，これから符号化する符号化対象データと同一のクラスに属する符号化済みの符号化対象データの確率モデル情報を参照する際に，フレーム間予測で参照が指定されたフレームの参照位置情報が示す位置に対応する符号化対象データの確率モデル情報を参照する
ことを特徴とするコンテクスト適応エントロピ符号化方法。
【請求項３】
符号化対象シンボルの条件付き発生確率をモデル化した確率モデル情報を保持するコンテクストテーブルを用いて，符号化対象データをエントロピ符号化するコンテクスト適応エントロピ符号化装置において，
符号化対象となるブロックまたはシンボルの符号化対象データを，あらかじめ定められた分類基準に従って複数のクラスに分類した情報と，符号化済みの符号化対象データに対する確率モデル情報とを記憶するクラス分類情報記憶手段と，
ある符号化単位の符号化開始時に，前記クラス分類情報記憶手段を参照し，これから符号化する符号化対象データと同一のクラスに属する符号化済みの符号化対象データの確率モデル情報を用いて，コンテクストテーブルを初期化するコンテクストテーブル初期値設定手段と，
前記コンテクストテーブル初期値設定手段によって初期化されたコンテクストテーブルが持つ確率モデル情報に従って符号化対象データを符号化し，その符号化結果に従って前記コンテクストテーブルが持つ確率モデル情報を更新するとともに，その更新された確率モデル情報を前記クラス分類情報記憶手段に書き出す符号化手段とを備える
ことを特徴とするコンテクスト適応エントロピ符号化装置。
【請求項４】
復号対象シンボルの条件付き発生確率をモデル化した確率モデル情報を保持するコンテクストテーブルを用いて，復号対象データをエントロピ復号するコンテクスト適応エントロピ復号方法において，
復号対象となるブロックまたはシンボルの復号対象データを，あらかじめ定められた分類基準に従って複数のクラスに分類した情報と，復号済みの復号対象データに対する確率モデル情報とを記憶するクラス分類情報記憶手段を参照し，ある復号単位の復号開始時に，これから復号する復号対象データと同一のクラスに属する復号済みの復号対象データの確率モデル情報を用いて，コンテクストテーブルを初期化するコンテクストテーブル初期値設定過程と，
前記コンテクストテーブル初期値設定過程によって初期化されたコンテクストテーブルが持つ確率モデル情報に従って復号対象データを復号し，その復号結果に従って前記コンテクストテーブルが持つ確率モデル情報を更新するとともに，その更新された確率モデル情報を前記クラス分類情報記憶手段に書き出す復号過程とを有する
ことを特徴とするコンテクスト適応エントロピ復号方法。
【請求項５】
請求項４記載のコンテクスト適応エントロピ復号方法において，
前記コンテクストテーブル初期値設定過程では，これから復号する復号対象データと同一のクラスに属する復号済みの復号対象データの確率モデル情報を参照する際に，フレーム間予測で参照が指定されたフレームの参照位置情報が示す位置に対応する復号対象データの確率モデル情報を参照する
ことを特徴とするコンテクスト適応エントロピ復号方法。
【請求項６】
復号対象シンボルの条件付き発生確率をモデル化した確率モデル情報を保持するコンテクストテーブルを用いて，復号対象データをエントロピ復号するコンテクスト適応エントロピ復号装置において，
復号対象となるブロックまたはシンボルの復号対象データを，あらかじめ定められた分類基準に従って複数のクラスに分類した情報と，復号済みの復号対象データに対する確率モデル情報とを記憶するクラス分類情報記憶手段と，
ある復号単位の復号開始時に，前記クラス分類情報記憶手段を参照し，これから復号する復号対象データと同一のクラスに属する復号済みの復号対象データの確率モデル情報を用いて，コンテクストテーブルを初期化するコンテクストテーブル初期値設定手段と，
前記コンテクストテーブル初期値設定手段によって初期化されたコンテクストテーブルが持つ確率モデル情報に従って復号対象データを復号し，その復号結果に従って前記コンテクストテーブルが持つ確率モデル情報を更新するとともに，その更新された確率モデル情報を前記クラス分類情報記憶手段に書き出す復号手段とを備える
ことを特徴とするコンテクスト適応エントロピ復号装置。
【請求項７】
請求項１または請求項２記載のコンテクスト適応エントロピ符号化方法を，コンピュータに実行させるためのコンテクスト適応エントロピ符号化プログラム。
【請求項８】
請求項４または請求項５記載のコンテクスト適応エントロピ復号方法を，コンピュータに実行させるためのコンテクスト適応エントロピ復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，高能率画像信号符号化におけるコンテクスト適応エントロピ符号化，復号技術に関するものである。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣ等の代表的な動画像符号化方式に対応した動画像符号化装置では，量子化されたＤＣＴ係数や動きベクトルなどの各種の符号化シンボル（これをシンタックス・エレメントという）を，エントロピ符号化部によりエントロピ符号化する処理が行われる。
【０００３】
動画像復号装置では，動画像符号化装置のエントロピ符号化部によって符号化された符号化データを，エントロピ復号部によってシンタックス・エレメントに復号する。
【０００４】
Ｈ．２６４／ＡＶＣ  では，このエントロピ符号化処理として，ＣＡＢＡＣ（非特許文献１参照）と呼ばれる方式が採用されている。ＣＡＢＡＣ（Context-Adaptive Binary Arithmetic Coding ）は，コンテクスト適応型の算術符号に分類される方式であり，以下の３つの処理から構成される。
（１）binarization：多値のシンタックス・エレメントを２値信号へ変換する処理である。
（２）context modeling：２値信号の符号化のために，符号化対象シンボルの確率モデル（コンテクストテーブル）を選択する処理である。また，コンテスクトテーブルは，符号化済みの２値信号を用いて，更新される。
（３）binary arithmetic coding：選択されたコンテクストテーブルを用いて，２値信号を２値算術符号化する処理である。
【０００５】
コンテクストテーブルは，符号化対象シンボルに対して，周辺シンボルとの条件付き発生確率をモデル化したものである。周辺シンボルによって決定される状態をコンテクストと呼び，さらにコンテクストを細分化（コンテクスト分類と呼ぶ）し，各コンテクストに応じて，適切な確率モデルを付与することで，符号化効率の向上が図られている。
【０００６】
図１１に，ＣＡＢＡＣの構成例を示す。ＣＡＢＡＣ１００は，シンタックス・エレメントである多値信号を２値信号に変換する２値化部１０１と，符号化すべき２値信号の発生確率を周囲の状況に応じて計算・更新するコンテクスト計算部１０２と，コンテクスト計算部１０２から与えられた２値信号発生確率に基づき２値信号を算術符号化する２値算術符号化部１０３からなる。
【０００７】
コンテクスト計算部１０２では，２値信号の発生確率を複数保持しており，現在の符号化対象や周囲の状況に応じて発生確率を切り替えて２値算術符号化部１０３に与える。２値信号の発生確率は，発生確率が高い０，１のいずれかのシンボル（ＭＰＳ：Most Probable Symbol) とその発生確率テーブル（ＭＰＳの発生確率を持つテーブル。番号を指定すると対応した発生確率が得られる) の番号pStateIdx で保持されている（図１１（Ｂ）参照）。
【０００８】
発生確率テーブル番号pStateIdx に対応するＭＰＳの発生確率は，pStateIdexの値が大きくなるほど，ＭＰＳの高い発生確率に対応するようになっている。
【０００９】
ＣＡＢＡＣでは，コンテクスト計算部１０２が１つの符号化動作ごとにpStateIdx を更新することにより，２値信号の発生確率を適応的に切り替える。図１１（Ｃ）は，発生確率テーブル番号の更新値の表を示している。この表では，ＭＰＳ（Most Probable Symbol：０，１のうちで発生確率が高い方のシンボル) を符号化した場合の更新後のpStateIdx の値をtransIdxMPS ，ＬＰＳ（Least Probable Symbol ：０，１のうちで発生確率が低い方のシンボル) を符号化した場合の更新後のpStateIdx の値をtransIdxLPS として示している。この表に従って，ＭＰＳを符号化したか，ＬＰＳを符号化したかによって１符号化動作ごとに，発生確率テーブル番号pStateIdx が更新され，発生確率テーブルが切り替えられる。
【００１０】
この発生確率テーブル番号pStateIdx や，現在のＭＰＳ，符号化状態などの情報を１セットとして，マクロブロック（ＭＢ）タイプ，ＣＢＰ，ＢＣＢＰ，ＭＡＰ，ＭＶＤ等の符号化対象のシンタックス・エレメントごとに切り替えて，ＣＡＢＡＣによるエントロピ符号化が行われる。
【００１１】
符号化対象シンボルに対して，その周辺シンボルによって決定される状態をコンテクストと呼ぶが，このような符号化シンボルの条件付き発生確率をモデル化した確率モデルの情報（ＣＡＢＡＣでは，発生確率テーブル番号pStateIdx や発生確率テーブル，現在のＭＰＳ等の情報）を示すものを，ここではコンテクストテーブルとして説明する。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】D.Marpe, H.Schwarz, and T.Wiegand,“Context-Based Adaptive Binary Arithmetic Coding in the H.264 / AVC Video Compression Standard ”, IEEE trans. CSVT, Vol.13, No.7, pp.620-636, July 2003 ．
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ＣＡＢＡＣは，マクロブロック（ＭＢ）の集合であるスライス(slice) と呼ばれる単位で，コンテクストテーブルの内容を初期化している。すなわち，スライスの符号化開始時に，あらかじめ与えられた固定のテーブル値を初期値として使用している。しかし，スライス内の信号は，必ずしも統計的性質が類似した信号であるとは限らない。例えば，動物体領域と背景領域とが混在する場合，両者は，統計的に異なる性質を有する。
【００１４】
本来，こうした統計的性質の異なる信号は，別のコンテクストへ分類することで，さらに，符号化効率の向上が見込める。つまり，前述のような統計的性質の異なる信号が混在した条件下では，コンテクスト分類による符号化効率の向上には改善の余地が残る。
【００１５】
本発明はかかる事情に鑑みてなされたものであって，コンテクスト分類に基づく適応エントロピ符号化において，マクロブロックを時空間領域においてクラスに分類し，クラス毎にコンテクスト分類に基づく適応処理を行う適応エントロピ符号化方法を確立することを目的とする。
【課題を解決するための手段】
【００１６】
本発明では，時空間領域においてマクロブロック（以下，ＭＢと記すこともある）を，性質の類似した集合（クラスと呼ぶ）に分類する。この分類は，マクロブロックの各符号化シンボルごとに行ってもよい。なお，分類するクラス数Ｍは，符号化器・復号器間で予め取り決めた値を用いるものとする。この値以外を用いる場合には，符号化データの付加情報として，復号器に伝送するものとする。ここで性質の類似した集合に分類するとは，画像の統計的性質が同じであったり，画像における位置がある特定領域であったりというように，あらかじめ定められた何らかの分類基準によって分類することをいう。
【００１７】
スライス等の単位で符号化を開始するときに，コンテクストテーブルの初期設定に用いる情報は，符号化開始時における符号化対象マクロブロックと同一クラスに属する符号化済みのマクロブロックから継承するものとする。この継承元となる符号化済みマクロブロックを参照マクロブロックという。参照マクロブロックはフレーム番号，スライス番号，ＭＢ番号に基づき同定されるものとする。
【００１８】
参照マクロブロックの指定方法は，以下のとおりである。
［フレーム番号の指定方法１］：フレーム番号を指定する情報を付加情報として伝送する。
［フレーム番号の指定方法２］：対象マクロブロックがＰピクチャ（p-picuture）の場合，フレーム間予測の参照フレームを用いる。この場合，参照マクロブロックを指定する情報は，フレーム間予測の情報を共有するため，新たな付加情報は発生しない。
［スライス番号の指定方法１］：スライス番号を指定する情報を付加情報として伝送する。
［スライス番号の指定方法２］：対象マクロブロックがＰピクチャの場合，フレーム間予測の参照フレームにおいて，対象マクロブロックのスライス番号と同一番号のスライスを用いる。この場合，参照マクロブロックを指定する情報は，フレーム間予測の情報を共有するため，新たな付加情報は発生しない。
［スライス番号の指定方法３］：上記の「スライス番号の指定方法１」および「スライス番号の指定方法２」を適宜，切り替える。この方式の場合，切替えは１ビットのフラグで指定する。
［ＭＢ番号の指定方法１］：ＭＢ番号を指定する情報を付加情報として伝送する。
［ＭＢ番号の指定方法２］：対象マクロブロックがＰピクチャの場合，フレーム間予測における参照領域に基づき参照マクロブロックを同定する。参照領域が複数のマクロブロックをまたぐ場合には，最大面積を占めるマクロブロックを参照マクロブロックとする。この場合，参照マクロブロックを指定する情報は，フレーム間予測の情報を共有するため，新たな付加情報は発生しない。
【００１９】
このように本発明では，同一クラス内において情報の継承を行い，コンテクストテーブルの初期設定を行う。クラス分類の基準および具体的な分類方法は，符号化器側で自由に設定できるものとする。クラス分類方法は，符号化効率と演算量のトレードオフがあるため，このトレードオフにどのような解を与えるかは，符号化器側の裁量とし，クラス分類の枠組みを与えることが本発明の目的である。これは，動画像符号化において，動きベクトルの推定が符号化器が一定の自由度をもって設計できるフレームワークと同様の設計思想である。
【００２０】
例えばスライスは，マクロブロックの集合として，Ｈ．２６４に規定されている。本発明では，クラスの一例としてスライスを利用することができる。
【００２１】
復号時にも，スライス等の復号を開始するときに，コンテクストテーブルの初期設定に用いる情報は，復号開始時における復号対象マクロブロックと同一クラスに属する復号済みのマクロブロックから継承し，それによってコンテクストテーブルの初期化を行う。
【発明の効果】
【００２２】
本発明により，同一の統計的性質をもつマクロブロックから構成されるクラスに対して，コンテクストテーブルの初期化が行われるため，クラス内の信号に特化した適応処理が可能となり，符号量削減が期待できる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るコンテクスト適応エントロピ符号化装置の構成例を示す図である。
【図２】コンテクスト適応エントロピ符号化装置による符号化処理のフローチャートである。
【図３】本発明の一実施形態に係るコンテクスト適応エントロピ復号装置の構成例を示す図である。
【図４】コンテクスト適応エントロピ復号装置による復号処理のフローチャートである。
【図５】コンテクストテーブル初期値設定処理（その１）のフローチャートである。
【図６】コンテクストテーブル初期値設定処理（その２）のフローチャートである。
【図７】コンテクストテーブル初期値設定処理（その３）のフローチャートである。
【図８】コンテクストテーブル初期値設定処理（その３の続き）のフローチャートである。
【図９】コンテクストテーブル初期値設定処理（その４）のフローチャートである。
【図１０】ソフトウェアプログラムで実現するときのハードウェア構成例を示す図である。
【図１１】従来のＣＡＢＡＣの説明図である。
【発明を実施するための形態】
【００２４】
以下，図面を用いながら本発明の実施の形態を詳細に説明する。図１は，本発明の一実施形態に係るコンテクスト適応エントロピ符号化装置の構成例を示す。
【００２５】
コンテクスト適応エントロピ符号化装置１は，クラス分類情報記憶部１０，コンテクストテーブル初期値設定部１１，コンテクスト計算部１２，２値化部１４，２値算術符号化部１５を備える。コンテクスト計算部１２は，内部のメモリ領域にコンテクストテーブルを記憶するコンテクストテーブル記憶部１３を有する。
【００２６】
このコンテクスト適応エントロピ符号化装置１は，Ｈ．２６４／ＡＶＣ等の動画像符号化装置において，量子化されたＤＣＴ係数や動きベクトルなどの各種の符号化シンボルをエントロピ符号化するときに用いられる。ここでは，例として主にＣＡＢＡＣをベースに，本発明を組み込む処理例を説明するが，本発明の対象は，ＣＡＢＡＣに限定されるものではなく，コンテクスト適応符号化であれば，他の方式にも同様に適用可能である。
【００２７】
２値化部１４は，図１１に示した従来のＣＡＢＡＣ１００における２値化部１０１と同様に，符号化対象であるシンタックス・エレメントの多値信号を２値信号に変換する処理を行う。なお，符号化対象信号が多値信号でないような場合には，２値化部１４を省略する構成としてもよい。
【００２８】
２値算術符号化部１５は，２値化部１４の出力である２値信号を，コンテクスト計算部１２から与えられた２値信号発生確率に従って算術符号化し，符号化ストリームの符号化ビットを出力する。２値算術符号化部１５についても，図１１に示した従来の２値算術符号化部１０３と同様なものにより構成することができる。
【００２９】
コンテクスト計算部１２も，現在の符号化対象や周囲の状況に応じてコンテクストテーブル記憶部１３に記憶されている発生確率を切り替えて，２値算術符号化部１５に２値信号発生確率を与える処理を行う点に関しては基本的に従来技術と同様である。ただし，スライス符号化開始時などの符号化単位ごとに，コンテクストテーブル初期値設定部１１によって初期化されたコンテクストテーブルを用いる点が従来技術と異なる。
【００３０】
クラス分類情報記憶部１０には，複数フレームもしくは複数スライスについての各符号化済みマクロブロックがどのクラスに分類されているかの情報，また，そのマクロブロックの符号化終了時のコンテクストテーブルの情報（例えば発生確率テーブル番号やＭＰＳ等の情報）が記憶される。
【００３１】
コンテクストテーブル初期値設定部１１は，ある符号化単位，例えばスライスの符号化開始時に，符号化開始時における符号化対象マクロブロックと同一クラスに属する参照マクロブロックのコンテクストテーブルの情報を，クラス分類情報記憶部１０から取得し，その情報をもとにコンテクストテーブル記憶部１３に記憶されたコンテクストテーブルの初期化を行う。例えば，ＣＡＢＡＣの場合，発生確率テーブル番号pStateIdx として，参照マクロブロックの符号化結果によって更新された発生確率テーブル番号pStateIdx を初期値とする設定を行う。
【００３２】
これにより，２値算術符号化部１５では，クラス内の信号に特化した適応符号化が行われることになり，符号化効率が向上することになる。
【００３３】
次に，コンテクスト適応エントロピ符号化装置１の処理の流れについて，図２に示すフローチャートに従って説明する。ここでは，スライスの符号化開始時にコンテクストテーブルを初期化する場合の処理の流れを説明するが，他の符号化単位の開始時にコンテクストテーブルを初期化する実施も同様に可能である。また，符号化対象マクロブロックのクラスが他のクラスに変わったときに，コンテクストテーブルを初期化するようにしてもよい。
【００３４】
［ステップＳ１０］：すべてのスライスについて，以下のステップＳ１１〜Ｓ１１０の処理を繰り返す。
【００３５】
［ステップＳ１１］：符号化対象スライス内の全マクロブロックについて，コンテクスト適応エントロピ符号化の対象となるシンタックス・エレメントを読み込む。これは，例えばＤＣＴ係数，マクロブロックのモード情報，動きベクトル等である。
【００３６】
［ステップＳ１２］：シンタックス・エレメントごとに，コンテクストテーブルの更新に用いる符号化済みスライスにおけるシンタックス・エレメントのコンテクストテーブル情報を指定する。ここでのコンテクストテーブルの更新とは，コンテクストテーブルの初期化を意味し，コンテクストテーブル情報を指定するとは，図１に示すクラス分類情報記憶部１０に記憶されている該当するクラスのコンテクストテーブル情報を指定することを意味する。従来のＣＡＢＡＣでは，シンタックス・エレメントごとに固定のテーブルを用いて，コンテクストテーブルを初期化していたのに対し，本発明では，クラスにチューニングされたコンテクストテーブル情報を用いてコンテクストテーブルを初期化する。このコンテクストテーブル情報を指定する処理の詳細については，後に図５〜図９を用いて説明する。
【００３７】
［ステップＳ１３］：次に，現在のスライス内のすべてのマクロブロック（ＭＢ）ごとに，以下のステップＳ１４〜Ｓ１９の処理を繰り返す。
【００３８】
［ステップＳ１４］：２値化部１４により多値のシンタックス・エレメントを２値信号へ変換する。この２値信号を以降では２値シンボルと呼ぶ。
【００３９】
［ステップＳ１５］：２値シンボルに対して，符号化済みの周辺マクロブロックの同種の２値シンボルの情報を用いて，コンテクストテーブルを選択する。ＣＡＢＡＣを用いる場合には，非特許文献１に示されているＣＡＢＡＣの規定に従う。
【００４０】
［ステップＳ１６］：コンテクストテーブルを同一クラスに属する符号化済みの２値シンボルを用いて更新する。ＣＡＢＡＣを用いる場合には，ＣＡＢＡＣの規定に従う。ＣＡＢＡＣの場合，図１１（Ｃ）に示した発生確率テーブル番号の更新値に従って，発生確率テーブル番号を更新することになる。スライスの先頭では，このコンテクストテーブルの更新を，ステップＳ１２で指定されたコンテクストテーブル情報を用いて行うことになる。
【００４１】
［ステップＳ１７］：更新されたコンテクストテーブルを用いて，符号化対象の２値シンボルを，２値算術符号化部１５によってエントロピ符号化する。
【００４２】
［ステップＳ１８］：更新されたコンテクストテーブルの情報をクラス分類情報記憶部１０のメモリに書き出す。この書き出しは，後段のスライスの符号化開始時に，参照情報として本ＭＢにおいて更新されたコンテクストテーブルを参照するために行われる。なお，スライスのＭＢ集合を１クラスとした場合，すなわち後述する図５のコンテクストテーブル初期値設定処理（その１）の情報の指定方法を用いた場合，コンテクストテーブルの情報の書き出しは，スライス単位で行う。その他の場合には，ＭＢ単位でコンテクストテーブルの情報を書き出す。
【００４３】
［ステップＳ１９，Ｓ１１０］：以上の処理をスライス内のすべてのＭＢに対して繰り返し，さらにすべてのスライスに対して同様に処理を繰り返して，スライスが終了したならば処理を終了する。
【００４４】
図３は，本発明の一実施形態に係るコンテクスト適応エントロピ復号装置の構成例を示す。
【００４５】
コンテクスト適応エントロピ復号装置２は，クラス分類情報記憶部２０，コンテクストテーブル初期値設定部２１，コンテクスト計算部２２，２値算術復号部２４，シンタックス・エレメント変換部２５を備える。コンテクスト計算部２２は，内部のメモリ領域にコンテクストテーブルを記憶するコンテクストテーブル記憶部２３を有する。
【００４６】
このコンテクスト適応エントロピ復号装置２は，Ｈ．２６４／ＡＶＣ等の動画像復号装置において，動画像の符号化ストリームを復号するときに用いられる。ここでも符号化の場合と同様に，ＣＡＢＡＣをベースにした処理例を説明するが，コンテクスト適応復号であれば，他の方式にも同様に適用可能である。
【００４７】
２値算術復号部２４は，復号対象の符号化データを，コンテクスト計算部２２から与えられた２値信号発生確率に従って算術復号し，復号した結果の２値信号（２値シンボル）を出力する。シンタックス・エレメント変換部２５は，算術復号して得られた２値信号を多値のシンタックス・エレメントに変換する。これらは，従来のＣＡＢＡＣにおける復号方法と同様である。
【００４８】
コンテクスト計算部２２も，現在の復号対象や周囲の状況に応じてコンテクストテーブル記憶部２３に記憶されている発生確率を切り替えて，２値算術復号部２４に２値信号発生確率を与える処理を行う点に関しては基本的に従来技術と同様である。ただし，スライス復号開始時などの復号単位ごとに，コンテクストテーブル初期値設定部２１によって初期化されたコンテクストテーブルを用いる点が従来技術と異なる。
【００４９】
クラス分類情報記憶部２０には，複数フレームもしくは複数スライスについての各復号済みマクロブロックがどのクラスに分類されているかの情報，また，そのマクロブロックの復号終了時のコンテクストテーブルの情報（例えば発生確率テーブル番号やＭＰＳ等の情報）が記憶される。
【００５０】
コンテクストテーブル初期値設定部２１は，ある復号単位，例えばスライスの復号開始時に，復号開始時における復号対象マクロブロックと同一クラスに属する参照マクロブロックのコンテクストテーブルの情報を，クラス分類情報記憶部２０から取得し，その情報をもとにコンテクストテーブル記憶部２３に記憶されたコンテクストテーブルの初期化を行う。例えば，ＣＡＢＡＣの場合，発生確率テーブル番号pStateIdx として，参照マクロブロックの復号結果によって更新された発生確率テーブル番号pStateIdx を初期値とする設定を行う。
【００５１】
次に，コンテクスト適応エントロピ復号装置２の処理の流れについて，図４に示すフローチャートに従って説明する。ここでは，スライスの復号開始時にコンテクストテーブルを初期化する場合の処理の流れを説明するが，他の復号単位の開始時にコンテクストテーブルを初期化する実施も同様に可能である。また，復号対象マクロブロックのクラスが他のクラスに変わったときに，コンテクストテーブルを初期化するようにしてもよい。ただし，この初期化の単位は，符号化時の処理と合わせる必要がある。
【００５２】
［ステップＳ２０］：すべてのスライスについて，以下のステップＳ２１〜Ｓ２１０の処理を繰り返す。
【００５３】
［ステップＳ２１］：復号対象スライス内の全マクロブロックについて，コンテクスト適応エントロピ復号の対象となるシンタックス・エレメントの符号化データを読み込む。これは，例えばＤＣＴ係数，マクロブロックのモード情報，動きベクトル等をエントロピ符号化したデータである。
【００５４】
［ステップＳ２２］：シンタックス・エレメントごとに，コンテクストテーブルの更新に用いる復号済みスライスにおけるシンタックス・エレメントのコンテクストテーブル情報を指定する。ここでのコンテクストテーブルの更新とは，コンテクストテーブルの初期化を意味し，コンテクストテーブル情報を指定するとは，図３に示すクラス分類情報記憶部２０に記憶されている該当するクラスのコンテクストテーブル情報を指定することを意味する。従来のＣＡＢＡＣでは，シンタックス・エレメントごとに固定のテーブルを用いて，コンテクストテーブルを初期化していたのに対し，本発明では，クラスにチューニングされたコンテクストテーブル情報を用いてコンテクストテーブルを初期化する。このコンテクストテーブル情報を指定する処理の詳細については，後に図５〜図９を用いて説明する。
【００５５】
［ステップＳ２３］：次に，現在のスライス内のすべてのマクロブロック（ＭＢ）ごとに，以下のステップＳ２４〜Ｓ２９の処理を繰り返す。
【００５６】
［ステップＳ２４］：復号済みの周辺マクロブロックの同種の２値シンボルの情報を用いて，コンテクストテーブルを選択する。ＣＡＢＡＣを用いる場合には，非特許文献１に示されているＣＡＢＡＣの規定に従う。
【００５７】
［ステップＳ２５］：コンテクストテーブルを同一クラスに属する復号済みの２値シンボルを用いて更新する。ＣＡＢＡＣを用いる場合には，ＣＡＢＡＣの規定に従う。スライスの先頭では，このコンテクストテーブルの更新を，ステップＳ２２で指定されたコンテクストテーブル情報を用いて行う。
【００５８】
［ステップＳ２６］：更新されたコンテクストテーブルを用いて，復号対象の２値シンボルを，２値算術復号部２４によってエントロピ復号する。
【００５９】
［ステップＳ２７］：復号された２値シンボルを，シンタックス・エレメント変換部２５によって多値のシンタックス・エレメントに変換し，出力する。
【００６０】
［ステップＳ２８］：更新されたコンテクストテーブルの情報をクラス分類情報記憶部２０のメモリに書き出す。この書き出しは，後段のスライスの復号開始時に，参照情報として本ＭＢにおいて更新されたコンテクストテーブルを参照するために行われる。なお，スライスのＭＢ集合を１クラスとした場合，すなわち後述する図５のコンテクストテーブル初期値設定処理（その１）の情報の指定方法を用いた場合，コンテクストテーブルの情報の書き出しは，スライス単位で行う。その他の場合には，ＭＢ単位でコンテクストテーブルの情報を書き出す。
【００６１】
［ステップＳ２９，Ｓ２１０］：以上の処理をスライス内のすべてのＭＢに対して繰り返し，さらにすべてのスライスに対して同様に処理を繰り返して，スライスが終了したならば処理を終了する。
【００６２】
次に，図２に示すステップＳ１２および図４に示すステップＳ２２の詳細な処理について，いくつかの例を説明する。これらの例の違いは，コンテクストテーブルの更新（初期化）に用いる情報の指定方法の違いであり，どの参照マクロブロックのコンテクストテーブル情報を継承するかの指定の方法の違いである。
【００６３】
参照マクロブロックを指定する場合には，基本的にはフレーム番号，スライス番号，ＭＢ番号を特定する必要があるが，例えば他の情報で特定することができる場合には，番号の指定を省略して符号化における付加情報の発生を抑えることもできる。例えば，フレーム間予測で参照が指定されたフレーム内の情報を用いる場合には，フレーム番号の指定を省略することができる。また，例えば１クラスが１スライスに対応しているような場合には，スライス単位で指定し，マクロブロック単位での指定を省略するような実施も可能である。
【００６４】
図５のコンテクストテーブル初期値設定処理（その１）は，ステップＳ１２（図２）およびステップＳ２２（図４）で行う処理であるが，コンテクストテーブルの更新に用いる情報をスライス単位で指定する方法の場合であり，ＭＢ単位での指定は行わない。
【００６５】
図５の処理では，参照フレーム指定方法フラグＦ１と参照スライス指定方法フラグＦ２を用いる。参照フレーム指定方法フラグＦ１は，“１”のときフレーム番号を指定する情報を付加情報として伝送することを指定し，“０”のときフレーム間予測において参照しているフレーム番号を共有することを指定するフラグである。また，参照スライス指定方法フラグＦ２は，“１”のときスライス番号を指定する情報を付加情報として伝送することを指定し，“０”のとき参照マクロブロックを指定する情報としてフレーム間予測の情報を共有することを指定するフラグである。これらのフラグＦ１，Ｆ２は，どの指定方法を用いるかによってスライスなどの符号化前に事前に設定される。または，符号化の状況に応じて，切り替える実施も可能である。
【００６６】
まず，参照フレーム指定方法フラグＦ１が，“１”かどうかを判定する（ステップＳ５０）。フラグＦ１が“１”の場合，フレーム番号を指定した情報を参照フレームインデックスとして読み込む（ステップＳ５１）。フラグＦ１が“０”の場合，符号化対象ＭＢがフレーム間予測において参照しているフレーム番号を参照フレームインデックスとして読み込む（ステップＳ５２）。
【００６７】
次に，参照スライス指定方法フラグＦ２が，“１”かどうかを判定する（ステップＳ５３）。フラグＦ２が“１”の場合，スライス番号を指定した情報を参照スライスインデックスとして読み込む（ステップＳ５４）。その後，参照フレームインデックスで指定されたフレームにおいて，参照スライスインデックスにより指定されたスライスの最終ＭＢのコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ５５）。フラグＦ２が“０”の場合，参照フレームインデックスで指定されたフレームにおいて，符号化対象ＭＢがフレーム間予測のスライス番号と同一番号のスライスの最終ＭＢのコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ５６）。
【００６８】
図６のコンテクストテーブル初期値設定処理（その２）は，ステップＳ１２（図２）およびステップＳ２２（図４）で行う処理であるが，図５では，スライス単位でコンテクストテーブルの更新に用いる情報を指定したのに対し，図６では，ＭＢ単位で指定する。
【００６９】
図６の例では，前述した参照フレーム指定方法フラグＦ１と参照スライス指定方法フラグＦ２の他に，参照マクロブロック指定方法フラグＦ３を用いる。参照マクロブロック指定方法フラグＦ３は，“１”のときＭＢ番号を指定する情報を付加情報として伝送することを指定し，“０”のときフレーム間予測における動きベクトル情報を利用し，ＭＢ番号を指定する情報として新たな付加情報は用いないことを指定する。
【００７０】
まず，参照フレーム指定方法フラグＦ１が，“１”かどうかを判定する（ステップＳ６０）。フラグＦ１が“１”の場合，フレーム番号を指定した情報を参照フレームインデックスとして読み込む（ステップＳ６１）。フラグＦ１が“０”の場合，符号化対象ＭＢがフレーム間予測において参照しているフレーム番号を参照フレームインデックスとして読み込む（ステップＳ６２）。
【００７１】
次に，参照スライス指定方法フラグＦ２が，“１”かどうかを判定する（ステップＳ６３）。フラグＦ２が“１”の場合，スライス番号を指定した情報を参照スライスインデックスとして読み込む（ステップＳ６４）。フラグＦ２が“０”の場合，参照フレームインデックスで指定されたフレームにおいて，符号化対象ＭＢのスライス番号を参照スライスインデックスとして読み込む（ステップＳ６５）。
【００７２】
次に，参照マクロブロック指定方法フラグＦ３が，“１”かどうかを判定する（ステップＳ６６）。フラグＦ３が“１”の場合，ＭＢ番号を指定した情報を参照ＭＢインデックスとして読み込む（ステップＳ６７）。その後，参照フレームインデックスで指定されたフレームにおける，参照スライスインデックスにより指定されたスライスにおいて，参照ＭＢインデックスにより指定されたＭＢのもつコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ６８）。フラグＦ３が“０”の場合，符号化対象ＭＢに対してフレーム間予測の動きベクトル情報を読み込む（ステップＳ６９）。その後，参照フレームインデックスで指定されたフレームにおける，参照スライスインデックスにより指定されたスライスにおいて，動きベクトルにより，フレーム間予測の参照領域として指定された領域において最大面積を占めるＭＢのもつコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ６１０）。
【００７３】
図７および図８のコンテクストテーブル初期値設定処理（その３）は，図６と同様に，ステップＳ１２（図２）およびステップＳ２２（図４）で行う処理であり，コンテクストテーブルの更新に用いる情報をＭＢ単位で指定する例である。ただし，この例では，スライス番号の指定方法を適宜切り替えることを行う。
【００７４】
まず，参照フレーム指定方法フラグＦ１が，“１”かどうかを判定する（ステップＳ７０）。フラグＦ１が“１”の場合，フレーム番号を指定した情報を参照フレームインデックスとして読み込む（ステップＳ７１）。フラグＦ１が“０”の場合，符号化対象ＭＢがフレーム間予測において参照しているフレーム番号を参照フレームインデックスとして読み込む（ステップＳ７２）。
【００７５】
次に，参照スライス指定方法フラグＦ２が，“１”かどうかを判定する（ステップＳ７３）。フラグＦ２が“１”でない場合，図８のステップＳ７１０へ進む。フラグＦ２が“１”の場合，スライス番号を指定した情報を参照スライスインデックスとして読み込む（ステップＳ７４）。
【００７６】
次に，参照マクロブロック指定方法フラグＦ３が，“１”かどうかを判定する（ステップＳ７５）。フラグＦ３が“１”の場合，ＭＢ番号を指定した情報を参照ＭＢインデックスとして読み込む（ステップＳ７６）。その後，参照フレームインデックスで指定されたフレームにおける，参照スライスインデックスにより指定されたスライスにおいて，参照ＭＢインデックスにより指定されたＭＢのもつコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ７７）。フラグＦ３が“０”の場合，符号化対象ＭＢに対してフレーム間予測の動きベクトル情報を読み込む（ステップＳ７８）。その後，参照フレームインデックスで指定されたフレームにおける，参照スライスインデックスにより指定されたスライスにおいて，動きベクトルにより，フレーム間予測の参照領域として指定された領域において最大面積を占めるＭＢのもつコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ７９）。
【００７７】
参照スライス指定方法フラグＦ２が“０”の場合，次に参照マクロブロック指定方法フラグＦ３が“１”かどうかを判定する（図８のステップＳ７１０）。フラグＦ３が“１”の場合，参照フレームインデックスで指定されたフレームにおいて，符号化対象ＭＢのスライス番号と同一番号を参照スライスインデックスとする（ステップＳ７１１）。また，ＭＢ番号を指定した情報を参照ＭＢインデックスとして読み込む（ステップＳ７１２）。その後，参照フレームインデックスで指定されたフレームにおける，参照スライスインデックスにより指定されたスライスにおいて，参照ＭＢインデックスにより指定されたＭＢのもつコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ７１３）。
【００７８】
ステップＳ７１０の判定におけるフラグＦ３が“０”の場合，符号化対象ＭＢに対してフレーム間予測の動きベクトル情報を読み込む（ステップＳ７１４）。その後，参照フレームインデックスで指定されたフレームにおける，参照スライスインデックスにより指定されたスライスにおいて，動きベクトルにより，フレーム間予測の参照領域として指定された領域において最大面積を占めるＭＢのもつコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ７１５）。
【００７９】
図９のコンテクストテーブル初期値設定処理（その４）は，図６と同様に，ステップＳ１２（図２）およびステップＳ２２（図４）で行う処理であり，コンテクストテーブルの更新に用いる情報をＭＢ単位で指定する例である。ただし，図９の例は，スライス内のＭＢの指定を，フレーム間予測における参照領域に基づき参照マクロブロックを決める方法に固定した方法である。したがって，この例では参照マクロブロック指定方法フラグＦ３は用いない。
【００８０】
まず，参照フレーム指定方法フラグＦ１が，“１”かどうかを判定する（ステップＳ８０）。フラグＦ１が“１”の場合，フレーム番号を指定した情報を参照フレームインデックスとして読み込む（ステップＳ８１）。フラグＦ１が“０”の場合，符号化対象ＭＢがフレーム間予測において参照しているフレーム番号を参照フレームインデックスとして読み込む（ステップＳ８２）。
【００８１】
次に，参照スライス指定方法フラグＦ２が，“１”かどうかを判定する（ステップＳ８３）。フラグＦ２が“１”の場合，スライス番号を指定した情報を参照スライスインデックスとして読み込む（ステップＳ８４）。フラグＦ２が“０”の場合，参照フレームインデックスで指定されたフレームにおいて，符号化対象ＭＢのスライス番号を参照スライスインデックスとして読み込む（ステップＳ８５）。
【００８２】
次に，符号化対象ＭＢに対してフレーム間予測の動きベクトル情報を読み込む（ステップＳ８６）。その後，参照フレームインデックスで指定されたフレームにおける，参照スライスインデックスにより指定されたスライスにおいて，動きベクトルにより，フレーム間予測の参照領域として指定された領域において最大面積を占めるＭＢのもつコンテクストテーブルを読み込み，それをコンテクストテーブルの更新（初期化）に用いる情報として利用する（ステップＳ８７）。
【００８３】
図５〜図９に示す各種の指定方法の例のように，フレーム番号の指定方法，スライス番号の指定方法，ＭＢの指定方法として，どのような指定方法を用いるかをフラグなどにより切り替えてコンテクストテーブルの更新に用いる情報を指定することができる。
【００８４】
どの指定方法を用いるかについては，例えば各種の指定方法の一つに固定する方法，各種の指定方法について，総当りの探索によって符号量を最小化できる指定方法を選択する方法，マクロブロックの指定方法はいずれかに固定し，フレーム番号とスライス番号の指定方法については，総当りの探索によって符号量を最小化できる指定方法を選択する方法などの中から，符号化前または各スライスの符号化開始時に選択するというような実施が可能である。
【００８５】
符号化開始の前に一つの指定方法に固定する場合，例えば符号化前にトレーニング画像を用いて予備実験を行い，その結果，符号量が最も小さくなった指定方法を選択するというようにしてもよい。
【００８６】
以上の各種の参照マクロブロックの指定方法によって定まるマクロブロックのコンテクストテーブルを継承し，コンテクストテーブルを更新（初期化）することによって，適応的にクラスにチューニングされたコンテクストテーブルを用いて，エントロピ符号化を行うことができるようになる。
【００８７】
図１０に，本システムをソフトウェアプログラムを用いて実現する場合のハードウェア構成例を示す。本システムは，プログラムを実行するＣＰＵ３０と，ＣＰＵ３０がアクセスするプログラムやデータが格納されるＲＡＭ等のメモリ３１と，カメラ等からの符号化対象の画像信号を入力する画像信号入力部３２（ディスク装置等による画像信号を記憶する記憶部でもよい）と，ＣＰＵ３０に実行させるソフトウェアプログラムであるＨ．２６４に代表されるような動画像符号化プログラム３４が格納されたプログラム記憶装置３３と，ＣＰＵ３０がメモリ３１にロードされた動画像符号化プログラム３４を実行することにより生成された符号化ストリームを，例えばネットワークを介して出力する符号化ストリーム出力部３６（ディスク装置等による符号化ストリームを記憶する記憶部でもよい）とが，バスで接続された構成になっている。
【００８８】
特に，本実施例に係るコンテクスト適応エントロピ符号化をＣＰＵ３０に実行させるためのコンテクスト適応エントロピ符号化プログラム３５は，動画像符号化プログラム３４の一部として，または動画像符号化プログラム３４とは別に，プログラム記憶装置３３に格納され，符号化時にはメモリ３１にロードされて実行される。
【００８９】
本実施例に係るコンテクスト適応エントロピ復号方法をソフトウェアプログラムによって実現する場合にも，同様なハードウェア構成を用いて実現することが可能である。
【符号の説明】
【００９０】
１    コンテクスト適応エントロピ符号化装置
２    コンテクスト適応エントロピ復号装置
１０，２０  クラス分類情報記憶部
１１，２１  コンテクストテーブル初期値設定部
１２，２２  コンテクスト計算部
１３，２３  コンテクストテーブル記憶部
１４  ２値化部
１５  ２値算術符号化部
２４  ２値算術復号部
２５  シンタックス・エレメント変換部
【図１】
2011024001.tif 000003
【図２】
2011024001.tif 000004
【図３】
2011024001.tif 000005
【図４】
2011024001.tif 000006
【図５】
2011024001.tif 000007
【図６】
2011024001.tif 000008
【図７】
2011024001.tif 000009
【図８】
2011024001.tif 000010
【図９】
2011024001.tif 000011
【図１０】
2011024001.tif 000012
【図１１】
2011024001.tif 000013