(57)【要約】【課題】CABACでは処理が終わるまで符号量がわからないので、１MBの規格最大符号量を満たすか事前に判定できなかった。【解決手段】可変長符号化部１００は、動画像に関するデータを量子化後、２値化されたデータを算術符号化する算術符号化部１０５と、算術符号化部１０５による算術符号化データ中で、値が確定したビット数と、値が確定しない桁位置とを計数することにより、発生符号量を算出し、所定単位の画像データに対して算出された発生符号量から、１MBの画像を算術符号化したとき、その画像に対してあらかじめ定められた発生符号量の上限値を超えるか否かを予測する符号量予測部１０６と、上限値を超えると予測される場合、２値化データを、元の値よりビット量の少ない値に書き替える２値化データ書き換え部１０３とを備える。【選択図】図１
2007142637.tif 000002
【特許請求の範囲】
【請求項１】
２値化データを算術符号化して符号列を出力する画像情報符号化装置であって、
動画像に関するデータを量子化後、２値化されたデータを算術符号化する算術符号化手段と、
前記算術符号化手段による算術符号化データ中で、値が確定したビット数と、値が確定しない桁位置とを計数することにより、発生符号量を算出する発生符号量算出手段と、
所定単位の画像データに対して算出された発生符号量から、一定の画像を算術符号化したとき、その画像に対してあらかじめ定められた発生符号量の上限値を超えるか否かを予測する符号量予測手段と、
前記上限値を超えると予測される場合、前記２値化データを、元の値よりビット量の少ない値に書き替える書き替え手段と
を備える画像情報符号化装置。
【請求項２】
前記書き替え手段は、前記２値化データに加えてさらに、前記２値化前の量子化データを書き替える
請求項１記載の画像情報符号化装置。
【請求項３】
前記書き替え手段は、画素の輝度及び色差を表す画素情報の２値化データを変更する
請求項１記載の画像情報符号化装置。
【請求項４】
前記書き替え手段は、画素の輝度及び色差を表す画素情報の２値化データに加えてさらに、前記画素情報の前記２値化前の量子化データを書き替える
請求項１記載の画像情報符号化装置。
【請求項５】
前記書き替え手段は、画素の輝度及び色差を表す画素情報を書き替える際に、色差のAC、輝度のAC、色差のDC、輝度のDCの順に２値化データを書き替える
請求項１記載の画像情報符号化装置。
【請求項６】
前記書き替え手段は、面内符号化が行なわれた一定の画像中の画素について、他のブロックから参照される画素の画素情報を書き替えない
請求項３〜５のいずれか１項に記載の画像情報符号化装置。
【請求項７】
前記算術符号化手段はCABACであって、
前記発生符号量算出手段は、CABAC中の確定した符号値を出力するモジュールと、符号値が確定しない桁のビット数をカウントするBITS OUTSTANDINGとの出力ビット数から現在の発生符号量を算出し、
前記符号量予測手段は、算出された出力ビット数に基づいて、CABACの対象であるマクロブロックについて発生する全符号量が前記上限値を超えるか否かを予測し、
前記書き替え手段は、CABACの入力である２値化データを書き替える
請求項１記載の画素画像情報符号化装置。
【請求項８】
前記書き替え手段は、CABACの入力である２値化データおよび２値化前の量子化データを書き替える
請求項７記載の画像情報符号化装置。
【請求項９】
前記画像情報符号化装置は、さらに、
シンタックス要素ごとに所定サイズのブロックごとにアドレスが割り当てられており、CABACに入力される２値化データを前記ブロックごとに格納する２値化データバッファと、
シンタックス要素ごとに前記サイズのブロックごとにビット量の少ない２値化データをあらかじめ格納している読み替えメモリとを備え、
前記書き換え手段は、書き替えの対象となっている前記ブロックの２値化データを、前記読み替えメモリに格納されている前記２値化データで前記ブロックごと書き替える
請求項８記載の画像情報符号化装置。
【請求項１０】
前記書き替え手段は、前記画素情報以外に、動きベクトルの２値化データを書き替え、書き替えの対象が画素情報であればcoeff_abs_level_minus1の値を書き替え、書き替えの対象が動きベクトルであればmvdの値を書き替える
請求項７記載の画像情報符号化装置。
【請求項１１】
前記書き替え手段は、前記画素情報の２値化データを変更する際にcoeff_abs_level_minus1で示される画素情報を、元の値よりビット量の少ない２値データに書き替え、しかも、last_significant_coeff_flagを変更しないようにする
請求項７記載の画像情報符号化装置。
【請求項１２】
２値化データを算術符号化して符号列を出力する画像情報符号化装置であって、
動画像に関するデータを量子化後、２値化されたデータを算術符号化しながら、値が確定したビット数と、値が確定しない桁位置とを計数し、前記計数結果に基づいて、一定の画像を算術符号化したときあらかじめ定められた発生符号量の上限値を超えるか否かを予測し、前記上限値を超えると予測される場合、前記２値化データを、元の値よりビット量の少ない値に書き替える
画像情報符号化装置。
【請求項１３】
２値化データを算術符号化して符号列を出力する画像情報符号化方法であって、
動画像に関するデータを量子化後、２値化されたデータを算術符号化する算術符号化ステップと、
前記算術符号化中のデータのうち、値が確定したビット数と、値が確定しない桁とを計数することにより、発生符号量を算出する発生符号量算出ステップと、
所定単位の画像データに対して算出された発生符号量から、一定の画像を算術符号化したとき、その画像に対してあらかじめ定められた発生符号量の上限値を超えるか否かを予測する符号量予測ステップと、
前記上限値を超えると予測される場合、前記２値化データを、元の値よりビット量の少ない値に書き替える書き替えステップと
を含む画像情報符号化方法。
【請求項１４】
２値化データを算術符号化して符号列を出力する集積回路であって、
動画像に関するデータを量子化後、２値化されたデータを算術符号化する算術符号化手段と、
前記算術符号化手段による算術符号化データ中で、値が確定したビット数と、値が確定しない桁位置とを計数することにより、発生符号量を算出する発生符号量算出手段と、
所定単位の画像データに対して算出された発生符号量から、一定の画像を算術符号化したとき、その画像に対してあらかじめ定められた発生符号量の上限値を超えるか否かを予測する符号量予測手段と、
前記上限値を超えると予測される場合、前記２値化データを、元の値よりビット量の少ない値に書き替える書き替え手段と
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の画像情報を符号化する画像情報符号化装置に関し、特に量子化されたＤＣＴ係数などを可変長符号化して出力する画像情報符号化装置に関する。
【背景技術】
【０００２】
動画像の符号化技術において、符号化効率の向上が図られている。これにより、携帯電話機で滑らかな動きのテレビ電話を実現したり、高画質な動画像を撮影したりすることも可能になりつつある。このような符号化技術の進展において、最新の動画像圧縮符号化技術の国際基準であるH.264/MPEG-4 AVCでは、ＤＣＴ係数や動きベクトルなど、シンタックスで伝送することが定められているシンタックス要素のエントロピー符号化方式として、単純な表による変換に代わってさらに符号化効率の高い符号化方式が用意されている。すなわち、CAVLC(Context-Adaptive Variable Length Coding)と呼ばれる可変長符号化方式や、CABAC(Context-Adaptive Binary Arithmetic Coding)と呼ばれる算術符号化方式である。これらのうち、CABACのような算術符号化方式は、定常的な信号を理論上、限界まで圧縮することが可能であるといわれている。図９は、CABACによる発生符号量が規格最大符号量を超えた場合の従来の対応処理の一例を示す図である。CABACは、上記のように符号化効率のよさがメリットであるが、処理が終わるまで発生符号量がわからないという欠点がある。H.264/AVCでは、１マクロブロック（以下、MB）あたりの発生符号量が3200bitという上限が設けられているのであるが、CABACでは処理が終わるまで発生符号量がわからないので、発生符号量が規格最大符号量を満たすか否かを事前に判定することができない。そのため、発生符号量が最大符号量を越えた際には、図９（ａ）に示すように、量子化などの符号化条件を変えて、再度CABAC処理をやり直さなければならない。
【０００３】
これに対し、CAVLCでは、発生する符号量が入力される２値化データの量に応じて、予測可能であるため、CABACとCAVLCとを並列的に備えておき、CABACの発生符号量が最大符号量を満たさない場合には、CAVLCによる可変長符号化に切り替えて符号列を出力するという従来技術が開示されている（特許文献１参照。）。
【特許文献１】特開２００４−１３５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、CABACを量子化の段階からやり直すには、時系列で符号の発生確率を計算しながらテーブルを更新しているcontext計算部の状態変移を元に戻すという複雑な作業が伴い、やり直しの都度、多大な計算量を必要とするという課題がある。
【０００５】
また、CABACとCAVLCとを並列的に備えておくというのは、めったに生じない発生符号量の超過に備えて、通常時には不要であるような回路を常時備えておくことになる。これにより、画像情報符号化装置の高コスト化や大型化を招くという課題がある。
【０００６】
上記課題に鑑みて、本発明の目的は、余分な可変長符号化モジュールを備えることなく、より少ない計算量でCABACによる発生符号量が最大符号量を超えないようにすることができる画像情報符号化装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の画像情報符号化装置は、２値化データを算術符号化して符号列を出力する画像情報符号化装置であって、動画像に関するデータを量子化後、２値化されたデータを算術符号化する算術符号化手段と、前記算術符号化手段による算術符号化データ中で、値が確定したビット数と、値が確定しない桁位置とを計数することにより、発生符号量を算出する発生符号量算出手段と、所定単位の画像データに対して算出された発生符号量から、一定の画像を算術符号化したとき、その画像に対してあらかじめ定められた発生符号量の上限値を超えるか否かを予測する符号量予測手段と、前記上限値を超えると予測される場合、前記２値化データを、元の値よりビット量の少ない値に書き替える書き替え手段とを備える。
【０００８】
なお、本発明は、このような画像情報符号化装置として実現することができるだけでなく、このような画像情報符号化装置に備えられる，コンテキスト適応型２値算術符号化装置として実現したり、このような画像情報符号化装置が備える特徴的な手段をステップとする画像情報符号化方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【０００９】
以上のように本発明によれば、CABAC処理をやり直さずに規格で定められた最大符号量以内に発生符号量を抑制することができる。
【発明を実施するための最良の形態】
【００１０】
（実施の形態）
図１は、本実施の形態の可変長符号化部１００の構成を示すブロック図である。可変長符号化部１００は、MBごとのCABAC処理中に１MB分の発生符号量を予測し、H.264規格で１MBに定められた最大符号量3200bitを超えそうになった場合、２値化データの値を、よりbit量の少ない値に書き替える可変長符号化部であって、２値化処理部１０１、２値バッファ１０２、２値化データ書き替え部１０３、コンテキスト計算部１０４、算術符号化部１０５、符号量予測部１０６、２値化データ書き替え制御部１０７及びバッファ１０８を備える。２値化処理部１０１は、例えば、１０進数などの多値で表された量子化データを２値数に変換し、発生した２値データをコンテキスト計算部１０４及び２値バッファ１０２に出力する。２値バッファ１０２は、２値化処理部１０１によって２値化されたデータを蓄積する。２値化データ書き替え部１０３は、後述の２値化データ書き替え制御部１０７の指示により、２値バッファ１０２から２値化データを読み出して、よりbit数の少なくなる値に書き替える。書き替えたデータは、コンテキスト計算部１０４及び算術符号化部１０５に出力する。コンテキスト計算部１０４では、２値化データ書き替え部１０３から入力された２値データの符号の発生確率を計算しなおし、確率テーブルを更新する。算術符号化部１０５は、２値化データ書き替え部１０３から入力された２値データを、コンテキスト計算部１０４によって更新された確率テーブルを参照して算術符号化し、確定した符号をバッファ１０８に出力する。符号量予測部１０６は、算術符号化部１０５からの符号化結果を監視して、MBの符号量が最大符号量を超えるか否かを判定する。２値化データ書き替え制御部１０７は、符号量予測部１０６による予測結果に応じて、２値化データから削減するべき図示しないビット量のリストなどを保持しており、符号量予測部１０６による予測結果により、１MBの最大符号量を超えると判断された場合には、２値化データをよりbit量の少なくなる値に書き替えるよう、２値化データ書き替え部１０３を制御する。
【００１１】
以下、発生符号量の予測について、さらに詳細に説明する。以下では、算術符号化中の符号量を監視し、そのbit量から処理中のMBの符号量を予測する方法について説明する。このとき符号値が決まらない状態が続くことがあるので、Bits_Outstandingと呼ばれるカウンタ値を参照することで、符号量を知ることができる。図２は、図１に破線で囲んで示したコンテキスト計算部１０４及び算術符号化部１０５の詳細な構成であるCABAC（Encode Decision）２００を示すブロック図である。CABACを行なうCABAC（Encode Decision）２００は、区間／確率テーブル更新部２０７と区間再正規化（Renormalization）部２０１と符号値出力処理部２０６とを備える。区間／確率テーブル更新部２０７は、コンテキストインデックスctxidx、と発生確率の比率と発生確率の高いほうのシンボル（0または1）とを対応付けたコンテキスト変数テーブルを格納しており、外部から入力されるコンテキストインデックスctxidxに基づいて、その桁の1と0との発生確率をコンテキスト変数テーブルから読み出す。さらに、下限の座標が0以上で、かつ、上限の座標値が1以下の幅をもつ区間で、入力される２値データについてすでに求められた区間の上限の座標値を表すcodeIRangeと、区間の下限の座標値を表すcodeILowとをRange情報として区間再正規化（Renormalization）部２０１に出力する。区間再正規化（Renormalization）部２０１は、Range判定モジュール２０２、符号値=0を出力するモジュール２０３、符号値＝1を出力するモジュール２０４及びどの桁の符号値が確定していないのかをカウントするカウンタBits_Outstanding２０５を備える。Range判定モジュール２０２には、区間／確率テーブル更新部２０７を介して、0と1との並びである２値データの符号化対象の桁が入力される。さらに、区間の上限の座標値を表すcodeIRangeと、区間の下限の座標値を表すcodeILowとが入力される。Range判定モジュール２０２は、コンテキスト計算部１０４（すなわち、区間／確率テーブル更新部２０７）から与えられる各桁の（0,1）の発生確率のうち実際に発生した方の発生確率を区間の幅に乗算して、乗算結果を下限の座標値に加算又は上限の座標値から減算し、区間の幅を縮めていく。これにより、区間の幅の中で取り得る２進数の値が決定される。すなわち、Range判定モジュール２０２は、実際に発生したビットが0であれば、その桁の0の発生確率を区間の幅（codeIRange - codeILow）に乗算する。この乗算結果を区間の下限codeILowに加算して得られる値を、その区間の新たな上限codeIRangeとする。この場合、下限の座標値codeILowは、そのままとする。逆に、Range判定モジュール２０２は、実際に発生したビットが1であれば、その桁の1の発生確率を区間の幅（codeIRange - codeILow）に乗算して、乗算結果をそのときのcodeIRangeから減算する。この減算結果として得られる値を、区間の新たな下限の座標値codeILowとする。この場合、上限の座標値codeIRangeはそのままとする。このようにして、Range判定モジュール２０２は、入力される２値データの一桁ずつ、すでに発生した0と1との並びに対して与えられる0から1までの実数値の範囲を算出する。この実数値の範囲がある程度以下の幅になると、小数点以下でとりうる２進数の値が0か1か確定する。例えば、区間の下限の座標値codeILowが0.5以上になると、小数点第１位の値が1になることが確定する。Range判定モジュール２０２は、確定した符号値が0であれば、符号値=0を出力するモジュール２０３を選択し、確定した符号値が1であれば、符号値＝1を出力するモジュール２０４を選択する。符号値が確定しないときには、Bits_Outstanding２０５を選択する。確定した符号値は符号値出力処理部を介して符号値として出力される。符号値=0を出力するモジュール２０３、符号値＝1を出力するモジュール２０４、Bits_Outstanding２０５は、それぞれの信号を出力した後、次のビットの符号値を算出するためにRangeを更新するようRange判定モジュール２０２に信号を出力する。そこで、符号量予測部１０６は、図２に示すデータ量の監視位置で監視すれば、符号値（0,1）の確定を待つことなくCABAC後の符号量を知ることができる。
【００１２】
本実施の形態では、CABAC中の符号量の監視において、符号値として確定したものをカウントするのではなく、未確定段階であるBits_Outstanding２０５を監視することでCABAC符号量を監視する。CABACは、確率テーブルにより符号値が決定されるが、確立テーブルの状態により符号値が確定せずにBits_Outstanding２０５にカウントされる。そのため、符号量を知るためには符号値確定を待つ必要はなく、これを監視することで正確な符号量監視が行える。
【００１３】
２値化データ書き替え制御部１０７は、符号量１MBの最大符号量を超えそうなときには、算術符号化の入力データである２値データを変更し、それ以降の算術符号化後の符号量を抑制する。算術符号化後の符号量は、入力時点で未知であるが入力データのbit量が少なければ、出力データのbit量も少なくなる。
【００１４】
図３は、図１の可変長符号化部１００の前段にある図示しない量子化処理まで処理をさかのぼって値を変更する場合の構成例を示す図である。同図に示すように、量子化・２値化処理タイミング制御モジュール３０１は、図２に示したCABAC処理の区間再正規化（Renormalization）部２０１におけるRange判定モジュール２０２の判定結果から、それまでの発生符号量を算出し、1MBの符号量が最大符号量3200bitを超えそうになった場合、２値化処理モジュール３０３で２値化された２値化データを、より小さい値に変更する。また、このとき２値化処理の入力である量子化データまでさかのぼって変更することで算術符号化後の発生符号量を抑制する。このとき、まだ2値化されていないすべての量子化係数または、一部の量子化係数を強制的に小さくすることで、符号量を抑制できる。ここでは、再度、量子化または、再度、２値化をおこなうのではなく、量子化係数に対して直接切り捨て、丸めなどを行う。また、量子化係数もあらかじめ定められた値に書き替えてしまうとしてもよい。
【００１５】
また、一定のシンタックスを入力した時点での符号量を計測し、計測された符号量が一定値以上のときに以降の量子化データまたは２値データの変更を行うことも可能である。図４は、一定のシンタックスを入力した時点で、1MB中の２値データの出力済みデータの割合Ｂと、1MB分の最大符号量に占める発生符号量の割合Ａとを比較して２値化データの変更を判定する一例を示す図である。例えば、同図左側に示すように、２値データバッファから一定のシンタックスsyntaxを先頭として、輝度ＤＣ、輝度ＡＣが出力されたとする。この出力データの割合Ｂが1MB分の２値化データのbit量の５０％であり、1MB分の最大符号量に対してそれらの算術符号化で発生した符号量の割合Ａが７５％であったとする。このとき、２値化データ書き替え制御部１０７は、（Ａ−Ｂ）を計算し、（Ａ−Ｂ）の値が所定の閾値を超える場合には、色差ＤＣ以降の２値化データを変更するよう判定するとしてもよい。また、２値化データ書き替え制御部１０７は、前述のように、一定数のシンタックス要素を入力した時点で、１MB分の発生符号量が最大符号量を超えると判断したとき、以降の２値化を行わず、既定値に置き換えることで２値化処理を省略するとしてもよい。その際、図３に示したように、量子化と２値化のタイミングを制御することで、不要な量子化および２値化をせずに書き替えを行うことができる。
【００１６】
２値データのシンタックス要素には、MBタイプ、動きベクトル、量子化ステップ、画素情報などがある。ここで述べる画素情報とは、符号化処理における予測画像と原画像の差分情報を指す。この画素情報は、輝度ＤＣ、輝度ＡＣ、色差ＤＣ及び色差ＡＣからなる。算術符号化後の符号量は、画素情報及び動きベクトルが支配的である。そのため、画素情報及び動きベクトルを変更することで、算術符号化後の符号量を抑制することができる。なお、２値化データ書き替え部１０３及び量子化・２値化処理タイミング制御モジュール３０１は、算術符号化のBypassと呼ばれる圧縮を行わない処理の対象である２値データを変更しないとしてもよい。係数のsuffixは指数ゴロム符号化され、CABACされない。これをbypassという。もちろん、場合に応じて、算術符号化のbypassと呼ばれる２値データを変更してもよいことは言うまでもない。場合に応じてとは、例えば、大幅な符号量削減が必要であり、ある係数をprefixもsuffixも両方とも0にしてしまうような場合である。
【００１７】
また、上記のようにして画素情報を変更すると画質劣化を引き起こすので、その影響を最小限に抑えるために、画素情報の変更対象に優先順位を設ける。図５（ａ）及び（ｂ）は、図４に示した２値データバッファから算術符号化モジュールに入力される画像情報のシンタックス要素の順と、各シンタックス要素に対する２値化データの変更の優先順位を示す図である。図５（ａ）に示すように、各MBのシンタックス要素は、まず、（１）輝度ＤＣの２値データ、（２）輝度ＡＣの２値データ、（３）色差ＤＣの２値データ及び（４）色差ＡＣの２値データの順に算術符号化モジュールに入力される。これに対し、図５（ｂ）に示すように、画素情報の２値化データの変更対象に、（１）色差のAC成分、（２）輝度のAC成分、（３）色差のDC成分、（４）輝度のDC成分の順に優先順位をつけ変更する。すなわち、ＤＣの２値データはなるべく保護するようにする。そして、優先順位の低い画素情報、例えば、（１）色差成分のAC成分などでは、切り捨てなど大きく値を変更し、優先順位の高い画素情報、例えば、（４）輝度のDC成分などでは、値を変更しないかまたは変更幅を小さくして値を変更する。上記の成分ごとの優先順位と値の変更幅とを組み合わせて変更することで、画質劣化をより目立たなくすることができる。ここでは、画像符号化情報の特徴量などから、変更する周波数成分を選択し変更することも可能である。
【００１８】
優先度の一例としては、優先度の高いものを画素情報の低域成分、優先度の低いものを画素情報の高域成分とする。
【００１９】
同様に、量子化係数の値の変更も、このようにシンタックス要素ごとに優先順位を設けて行うことができる。
【００２０】
上記の優先順位に加えて、２値化データ書き替え制御部１０７は、MB内のブロックの位置に応じて２値データの変更に対する優先順位をつける。
【００２１】
図６は、面内予測の場合で、MB内で２値化データの書き替えからなるべく保護されるべき４×４画素のブロックの位置を輝度ＡＣと色差ＡＣとについて示す図である。面内予測では、16×16画素からなるMBを４×４画素からなる16個の小ブロックまたは、８×８画素からなる４個の小ブロックに分割して予測処理をしている。
【００２２】
変更対象のMBは、隣接する他のMBから参照される可能性がある。他のMB は、H.264の復号時に、現在、変更対象となっているMBの画素情報を参照するため、参照部分の画素情報の２値データが変更されていると、他のMBの復号時に画質劣化が伝播する可能性がある。すなわち、変更対象のMBの右端の１行と最下段の１列の画素情報が参照されるため、その画素を含むブロックの画素情報の変更はＡＣ成分であっても可能な限り行わない。
【００２３】
具体的には、インター予測、イントラ4×4予測では、図６に示すように、輝度ＡＣのブロック番号5,7,10,11,13,14,15の位置の画素情報を極力変更しない。また、色差ＡＣのブロック番号1,2,3の位置の画素情報を極力変更しないようにする。同様に、イントラ8×8、イントラ16×16においてもMBの右端の１行と最下段の１列を含む小ブロックの画素情報を変更しない。
【００２４】
ただし、あらかじめDCT前にどこが参照されるかの情報を取得し保持しておき、ブロック番号5、7、13、15が参照されない場合は、係数変更候補に加える。同様にブロック番号10,11,14,15も参照されない場合は、係数変更候補に加える。色差ＡＣの4ｘ4のブロックでも同様に係数変更候補を変更する。
【００２５】
なお、図４で示した例では、２値化データ書き替え制御部１０７は２値データバッファから出力された２値データの割合Ｂと、出力された２値データを算術符号化して発生した符号量の１MB最大符号量に対する割合Ａとを比較して、ＡとＢとの差分が、あらかじめ定めた閾値を超えた場合に２値化データを変更すると判断した。しかし、本発明は、これに限定されず、他の方法に従って２値化データの変更を判断してもよい。例えば、CABACによる発生符号量の時間変化と、それに対応する２値化データの変更幅とを示したモデル曲線をあらかじめ算出しておき、一定量の２値化データに対する発生符号量の時間変化から２値化データの変更の要否及び変更の程度を判定するようにしてもよい。
【００２６】
図７は、算術符号化対象のMBにおいて、算術符号化済みの符号量からその後の符号量の増加をモデル化された増加曲線を用いて予測する方法を示す図である。図７に示すモデル曲線（１）〜（４）は、実データより計測した符号量の増加曲線からモデル化された増加曲線とする。この予測により、規格最大符号量を超えることが判明した場合に前記手法により２値データを変更する。
【００２７】
すなわち、一定シンタックス要素の算術符号化が終了した時点で、その時点の発生符号量を図７に示すようなモデル曲線と比較する。具体的には、syntaxと輝度ＤＣまたは、syntaxと輝度ＤＣと輝度ＡＣの先頭の１〜３サブブロックに対する算術符号化結果から予測する。これにより、発生符号量の増加率が最も近似するモデル曲線に応じて、２値化データのデータ変更量を決める。例えば、モデル曲線（１）の場合、輝度ＤＣの算術符号化を開始した直後から急激に発生符号量が増加し、符号量危険域に達している。従って、このMBでは、１MBの規格最大符号量を超える超過符号量が大きいと推測できる。そこで、画素情報の変更量を大きく設定する。一例として、符号量危険域に達した以降の画素情報の係数を０にするなどの変更が可能である。逆にモデル（３）の場合などは、１MBの規格最大符号量を超える超過符号量が小さいと推測できるので、画素情報の変更量を小さく設定する。
【００２８】
通常、符号量制御は、量子化パラメータの変更などにより行われるが、本発明では、量子化実行後の２値データを変更し符号量を制御する。算術符号化時には、量子化パラメータが既知であるので、荒い量子化の際には、２値データの変更をおこなっても画質劣化が目立ち難いことを利用し、量子化パラメータに応じて２値データの変更量を決定することも可能である。
【００２９】
２値データを変更する際に、画素情報ではcoeff_abs_level_minus1の値、動きベクトルではmvdの値を変更する。その際に、変更される値がDCT後の係数であるので、符号量制御量に応じて高域成分を優先的に小さくする。なお、２値化データの値を変更する際に、所望の位置のデータを書き替えるために、２値バッファ１０２にアドレスを割り当てて、アドレスと画素情報の位置とが対応するように格納するようにしてもよい。図８（ａ）は、２値データの変更対象となるMB内の４×４画素ブロックの画素情報の位置とアドレスとを対応付けて格納する２値バッファ１０２の状態を示す図である。ここでは、４×４画素ブロックの面間予測の場合を例として、18ビット１ワードのメモリ領域にブロックインデックスごとにsyntaxごとに１ワードを割り当てて格納する。図８（ｂ）は、図示しない読み替えメモリに格納されている４×４画素ブロックの書き替え用２値化データの一例を示す図である。図８（ａ）に示すように、２値バッファ１０２の左端の欄にはsyntaxが示されており、下に向かって、block_index, coded_block_flag, last_significant_flag, coeff_abs_level_minus1_0〜coeff_abs_level_minus1_15の順に２値化データが格納されている。block_indexは、MB内のどのブロックの２値化データであるかを示しており、最上段のblock_indexは0で、図６に示したブロック番号0のブロックであることがわかる。このように、block_indexをデータに付与することで、以下に格納されている２値化データがどのブロックの係数位置であるかを管理することができる。coded_block_flagは、符号化ブロックフラグであり、 last_significant_flagは、最終有意係数フラグである。そして、以下のcoeff_abs_level_minus1は、H.264規格のマクロブロックに関する変数の１要素であり、mvdと同様に２値データを変更することができる。coeff_abs_level_minus1は、量子化後の予測誤差の絶対値から１を引いた値を意味する。coeff_abs_level_minus1では、0-14までの値のときprefixのみとなり、coeff_abs_level_minus1が15以上の値となるとき0-14までがprefixで15以上がsuffixとなる点がmvdと異なる。例えば、coeff_abs_level_minus1=20のとき、prefix=14, suffix= 20 - 14= 6と表され、prefix=14はCABACされる。この場合も、prefix とsuffix との両方を変更する。coeff_abs_level_minus1_0〜coeff_abs_level_minus1_15には当該ブロックの各画素の係数情報である２値化データが格納される。図８（ａ）に示すように２値化データを２値バッファ１０２に格納することで、係数書き替えが起きたときに、該当アドレスの代わりに読み替えアドレスより読み出すことにより、所望のデータ位置の書き替えを効率的におこなうことが可能となる。
【００３０】
図８（ｂ）は、図８（ａ）に示された２値化データを、算術符号化による発生符号量を低減するために、４×４画素のブロックごと、係数を変更するようあらかじめ定められた２値化データの係数列を示している。同図に示すように、読み替えメモリにはcoeff_abs_level_minus1_0〜coeff_abs_level_minus1_15に対して、係数0は格納されていない。係数を0とするとlast_significant_coeff_flagの変更が必要となるのでceff_abs_level_minus1を1以上に変更し、last_significant_coeff_flagの変更を生じないようにする。このようにすることで、変更処理にかかるオーバーヘッドを軽減できるという効果がある。
【００３１】
また、mvdはH.264規格のMBに関する変数の１要素を示している。これは、隣接MBの動きベクトル（ＭＶ）の中央値であるpmvと符号化対象MBのＭＶとの差を表す。すなわち、ｍｖｄ(ｘ, ｙ) ＝ ＭＶ(ｘ, ｙ) − ｐｍｖ(ｘ, ｙ)となる。
【００３２】
このｍｖｄを算術符号化する前処理として、まず、ｍｖｄを２値化する。算術符号化対象であるprefix部と算術符号化対象でないsuffix部とでは２値化の方法が異なる。すなわち、suffix部は圧縮されないことになっている。このため、本実施の形態では、このsuffix部を削除することにより、ＭＶの符号量を削減することが可能となる。例えば、ＭＶの値が９までのときprefixとし、それ以降をsuffixとする。このとき、
（例１）mvd=8のときprefixを8として符号化する。
（例２）mvd=17のときprefixを9、suffixを17-9=8として符号化する。
【００３３】
上記のように、例１はmvdが圧縮されるが、例２ではsuffix部である8に関しては圧縮されない。従って、このsuffix部を削除することにより、算術符号化後の符号量を削減することができる。例２の場合には、suffix部である8を7に変更するとしてもよい。また、例１の場合でも、大幅に符号量を削減する必要がある場合にはprefixを0に変更するとしてもよい。
【００３４】
なお、上記実施の形態では、画素情報を表す２値化データの変更に対して（１）色差のAC成分、（２）輝度のAC成分、（３）色差のDC成分、（４）輝度のDC成分の順に優先順位つけるとしたが、本発明はこの方法に限定されず、まず、色差を表す２値化データを変更し、次に、輝度を表す２値化データを変更するような優先順位を設定してもよい。例えば、（１）色差のAC成分、（２）色差のDC成分、（３）輝度のAC成分、（４）輝度のDC成分の順となるようにしてもよい。
【００３５】
なお、ブロック図（図１、２、３など）の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。（例えばメモリ以外の機能ブロックが１チップ化されていても良い。）
【００３６】
ここでは、LSIとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００３７】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサー を利用しても良い。
【００３８】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【００３９】
また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ１チップ化せずに別構成としても良い。
【産業上の利用可能性】
【００４０】
本発明に係る画像情報符号化装置は、通信機能を備えるパーソナルコンピュータ、ＰＤＡ、ディジタル放送の放送局および携帯電話機などに備えられる画像情報符号化装置として有用である。
【図面の簡単な説明】
【００４１】
【図１】本実施の形態の可変長符号化部の構成を示すブロック図である。
【図２】図１に破線で囲んで示したコンテキスト計算部及び算術符号化部の詳細な構成である算術符号化モジュールを示すブロック図である。
【図３】図１の可変長符号化部の前段にある図示しない量子化処理まで処理をさかのぼって値を変更する場合の構成例を示す図である。
【図４】一定のシンタックスを入力した時点で、1MB中の２値データの出力済みデータの割合Ｂと、1MB分の最大符号量に占める発生符号量の割合Ａとを比較して２値化データの変更を判定する一例を示す図である。
【図５】（ａ）及び（ｂ）は、図４に示した２値データバッファから算術符号化モジュールに入力される画像情報のシンタックス要素の順と、各シンタックス要素に対する２値化データの変更の優先順位を示す図である。
【図６】面内予測の場合で、MB内で２値化データの書き替えからなるべく保護されるべき４×４画素のブロックの位置を輝度ＡＣと色差ＡＣとについて示す図である。
【図７】算術符号化対象のMBにおいて、算術符号化済みの符号量からその後の符号量の増加をモデル化された増加曲線を用いて予測する方法を示す図である。
【図８】（ａ）は、２値データの変更対象となるMB内の４×４画素ブロックの画素情報の位置とアドレスとを対応付けて格納する２値バッファの状態を示す図である。（ｂ）は、図示しない読み替えメモリに格納されている４×４画素ブロックの書き替え用２値化データの一例を示す図である。
【図９】CABACによる発生符号量が規格最大符号量を超えた場合の従来の対応処理の一例を示す図である。
【符号の説明】
【００４２】
１００    可変長符号化部
１０１    ２値化処理部
１０２    ２値バッファ
１０３    ２値化データ書き替え部
１０４    コンテキスト計算部
１０５    算術符号化部
１０６    符号量予測部
１０７    ２値化データ書き替え制御部
１０８    バッファ
２００    CABAC（Encode Decision）
２０１    区間再正規化（Renormalization）部
２０２    Range判定モジュール
２０３    符号値=0を出力するモジュール
２０４    符号値＝1を出力するモジュール
２０５    Bits_Outstanding
２０６    符号値出力処理部
２０７    区間／確率テーブル更新部
３０１    量子化・２値化処理タイミング制御モジュール
３０２    量子化モジュール
３０３    ２値化処理モジュール
【図１】
2007142637.tif 000003
【図２】
2007142637.tif 000004
【図３】
2007142637.tif 000005
【図４】
2007142637.tif 000006
【図５】
2007142637.tif 000007
【図６】
2007142637.tif 000008
【図７】
2007142637.tif 000009
【図８】
2007142637.tif 000010
【図９】
2007142637.tif 000011