(57)【要約】【課題】ＭＢパイプライン構成の画像符号化装置において、ｎ番目のＭＢの二値化シンボル長をｎ＋１番目のＭＢに対する量子化パラメータに反映させることができるようにして、符号量制御の精度を向上できるようにする。【解決手段】動きベクトル検出手段から出力される動きベクトル信号から、差分動きベクトルの二値化シンボル長を算出する第１の二値符号量算出手段と、前記量子化手段から出力される直交変換係数の二値化シンボル長を算出する第３の二値符号量算出手段と、前記動きベクトル検出手段から出力されるマクロブロック情報から、二値化シンボル列を構成する前記差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長を算出する第２の二値符号量算出手段とを設け、前記符号量制御手段は、前記第１〜第３の二値符号量算出手段において算出される二値化シンボル長に基づいて量子化パラメータを決定して前記量子化手段に出力する。【選択図】  図１
2010109912.tif 000002
【特許請求の範囲】
【請求項１】
量子化手段と、符号量制御手段と、二値化手段と、二値算術符号化手段とを具備する画像符号化装置において、
動きベクトル検出手段から出力される動きベクトル信号から、差分動きベクトルの二値化シンボル長を算出する第１の二値符号量算出手段と、
前記量子化手段から出力される直交変換係数の二値化シンボル長を算出する第３の二値符号量算出手段と、
前記動きベクトル検出手段から出力されるマクロブロック情報から、二値化シンボル列を構成する前記差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長を算出する第２の二値符号量算出手段とを前記二値化手段とはそれぞれ別に有し、
前記符号量制御手段は、前記第１〜第３の二値符号量算出手段により算出される二値化シンボル長に基づいて量子化パラメータを決定して前記量子化手段に出力することを特徴とする画像符号化装置。
【請求項２】
前記第１〜第３の二値符号量算出手段において算出される二値化シンボル長から前記二値算術符号化手段の符号長を推定して前記符号量制御手段に出力する発生符号量推定手段をさらに備えたことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記二値化手段と前記二値算術符号化手段は、ＣＡＢＡＣ方式であることを特徴とする請求項１または２に記載の画像符号化装置。
【請求項４】
量子化工程と、符号量制御工程と、二値化工程と、二値算術符号化工程とを具備する画像符号化方法において、
動きベクトル検出工程において出力される動きベクトル信号から、差分動きベクトルの二値化シンボル長を算出する第１の二値符号量算出工程と、
前記量子化工程において出力される直交変換係数の二値化シンボル長を算出する第３の二値符号量算出工程と、
前記動きベクトル検出工程において出力されるマクロブロック情報から、二値化シンボル列を構成する前記差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長を算出する第２の二値符号量算出工程とを前記二値化工程とはそれぞれ別に有し、
前記符号量制御工程においては、前記第１〜第３の二値符号量算出工程において算出される二値化シンボル長に基づいて量子化パラメータを決定して前記量子化工程に出力することを特徴とする画像符号化方法。
【請求項５】
前記第１〜第３の二値符号量算出工程において算出される二値化シンボル長から前記二値算術符号化工程の符号長を推定して前記符号量制御工程に出力する発生符号量推定工程をさらに備えたことを特徴とする請求項４に記載の画像符号化方法。
【請求項６】
前記二値化工程と前記二値算術符号化工程は、ＣＡＢＡＣ方式であることを特徴とする請求項４または５に記載の画像符号化方法。
【請求項７】
量子化工程と、符号量制御工程と、二値化工程と、二値算術符号化工程とを具備する画像符号化方法をコンピュータに実行させるプログラムにおいて、
動きベクトル検出工程において出力される動きベクトル信号から、差分動きベクトルの二値化シンボル長を算出する第１の二値符号量算出工程と、
前記量子化工程において出力される直交変換係数の二値化シンボル長を算出する第３の二値符号量算出工程と、
前記動きベクトル検出工程において出力されるマクロブロック情報から、二値化シンボル列を構成する前記差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長を算出する第２の二値符号量算出工程とを有し、
前記符号量制御工程においては、前記第１〜第３の二値符号量算出工程において算出される二値化シンボル長に基づいて量子化パラメータを決定して前記量子化工程に出力する画像符号化方法をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化装置及び画像符号化方法に関し、特に、マクロブロック（ＭＢ）パイプライン構成の画像符号化装置に用いて好適な技術に関する。
【背景技術】
【０００２】
近年、ディジタル信号処理、ＬＳＩの高集積化、通信速度の高速化などの進歩により、動画像や静止画像、音声等、大量のディジタル情報を高能率符号化し、記録媒体への記録及び通信媒体による伝送を行うことが可能になってきている。このような技術を応用し、ディジタルハイビジョン放送、地上波ディジタル放送が開始され、またディジタルビデオカメラ等の高性能化が進み、画像の高画質化などが進んでいる。画像符号化の規格として近年、ＩＴＵ−Ｔによって策定された  Ｈ．２６４（非特許文献１）等が注目されている。
【０００３】
Ｈ．２６４をはじめとするこれらの画像符号化の処理は、原画像をブロックと呼ばれる所定の領域に分割し、分割したブロックを単位にして動き補償予測や直交変換処理や量子化処理等の処理を施すものである。
【０００４】
このような画像符号化装置で生成されるストリームの符号長は、画像自体の特性である空間周波数特性やシーン及び量子化スケール値に応じて大きく異なる場合が多い。このような符号化特性を有する画像符号化装置を実現する上で良好な画質の復号画像を得ることができるようにするための重要な技術が符号量制御（レート制御）である。
【０００５】
符号量制御は、ピクチャの発生符号量をピクチャ毎に設定される目標符号量に近づけるために量子化制御を行っている。１６ｘ１６画素をひとつの単位としたマクロブロック（以下、ＭＢ）毎に量子化パラメータを制御し、発生符号長を制御している。この符号量制御のためには、ＭＢの発生符号長を把握しておく必要がある。
【０００６】
Ｈ．２６４では、従来の画像符号化の規格であるＭＰＥＧよりも高能率符号化を実現している。Ｈ．２６４が高能率の符号化を実現させた理由として様々な要因があるが、そのうちの一つとしてエントロピー符号化によるものがある。特に高能率のエントロピー符号化を実現する方式として、Ｈ．２６４では、エントロピー符号化方式としてＣＡＢＡＣが使用可能である。なお、ＣＡＢＡＣとは、Context−based Adaptive Binary Arithmetic Codingである。
【０００７】
ＣＡＢＡＣでは、二値算術符号化を用いてエントロピー符号化を行っている。二値算術符号化に関する先行技術としては、例えば、特許文献１が知られている。
一方、ハードウェアに実装される画像符号化装置では、高精細画像を一定の処理時間内に符号化するためにマクロブロック（ＭＢ）単位のパイプラインを構築し、高速化を図ることが一般的である。ＭＢとは、符号化処理の一つの単位である。
【０００８】
図４を用いて、ＭＢパイプラインの説明を行う。
図４において、縦軸のＭＢ１からＭＢ３は、画像の左上端のＭＢがＭＢ１であり、ＭＢ１の右隣がＭＢ２、ＭＢ２の右隣がＭＢ３であり、符号化はＭＢ１からＭＢ２、ＭＢ３という順序で行われる。ステージは、動きベクトル検出ステージと、直交変換と量子化を行う直交変換量子化ステージと、ＣＡＢＡＣの二値化を行う二値化ステージを示している。
【０００９】
動きベクトル検出ステージにおいて、差分動きベクトルを算出する。また、並列してマクロブロックパーティションの決定、予測モードの決定など行う。差分動きベクトル及びマクロブロックパーティション等の内容は、非特許文献１に記載されているので、ここでは詳細な説明を省略する。
【００１０】
次の直交変換量子化ステージにおいて、直交変換及び量子化を行う。このステージで得られた直交変換係数及び動きベクトル検出ステージで得られた差分動きベクトル、予測モード等を次の二値化ステージにおいて二値化する。二値化ステージの終了時（時刻t1）にＭＢ１の二値化シンボル長が得られる。こうして得られた二値化シンボル長を、時刻t1で符号量制御部（図示せず）に入力する。符号量制御部は、入力された二値化シンボル長に基づいて次のＭＢの量子化パラメータを決定する。
【００１１】
【非特許文献１】ITU−T Recommendation Ｈ．２６４
【特許文献１】特開２００７−１２４１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、ＭＢパイプライン構成の画像符号化装置においては、次のような不都合が発生する。すなわち、符号量制御部がｎ（図４のＭＢ１）番目のＭＢの二値化シンボル長（二値化シンボル長×α）に基づいて、ｎ＋１番目（図４のＭＢ２）以降のＭＢで使用する量子化パラメータを算出しても、ｎ＋１番目のＭＢの量子化処理には間に合わない。
【００１３】
図４を参照しながら説明すると、時刻ｔ１で算出された二値化シンボル長に基づいて符号化制御部が同じ時刻ｔ１で量子化パラメータを算出し、量子化部に出力しても、次のＭＢ２の符号化は既に開始されており、量子化も終了している。このことから、二値化シンボル長に基づいて算出された量子化パラメータは、２ＭＢ後のＭＢの量子化にしか使用できないため、符号量制御の精度が下がってしまうという問題があった。
【００１４】
本発明は前述の問題点に鑑み、ＭＢパイプライン構成の画像符号化装置において、ｎ番目のＭＢの二値化シンボル長をｎ＋１番目のＭＢに対する量子化パラメータに反映させることができるようにして、符号量制御の精度を向上できるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
本発明の画像符号化装置は、量子化手段と、符号量制御手段と、二値化手段と、二値算術符号化手段とを具備する画像符号化装置において、動きベクトル検出手段から出力される動きベクトル信号から、差分動きベクトルの二値化シンボル長を算出する第１の二値符号量算出手段と、前記量子化手段から出力される直交変換係数の二値化シンボル長を算出する第３の二値符号量算出手段と、前記動きベクトル検出手段から出力されるマクロブロック情報から、二値化シンボル列を構成する前記差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長を算出する第２の二値符号量算出手段とを前記二値化手段とはそれぞれ別に有し、前記符号量制御手段は、前記第１〜第３の二値符号量算出手段により算出される二値化シンボル長に基づいて量子化パラメータを決定して前記量子化手段に出力することを特徴とする。
【００１６】
本発明の画像符号化方法は、量子化工程と、符号量制御工程と、二値化工程と、二値算術符号化工程とを具備する画像符号化方法において、動きベクトル検出工程において出力される動きベクトル信号から、差分動きベクトルの二値化シンボル長を算出する第１の二値符号量算出工程と、前記量子化工程において出力される直交変換係数の二値化シンボル長を算出する第３の二値符号量算出工程と、前記動きベクトル検出工程において出力されるマクロブロック情報から、二値化シンボル列を構成する前記差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長を算出する第２の二値符号量算出工程とを前記二値化工程とはそれぞれ別に有し、前記符号量制御工程においては、前記第１〜第３の二値符号量算出工程において算出される二値化シンボル長に基づいて量子化パラメータを決定して前記量子化工程に出力することを特徴とする。
【００１７】
本発明のプログラムは、量子化工程と、符号量制御工程と、二値化工程と、二値算術符号化工程とを具備する画像符号化方法をコンピュータに実行させるプログラムにおいて、動きベクトル検出工程において出力される動きベクトル信号から、差分動きベクトルの二値化シンボル長を算出する第１の二値符号量算出工程と、前記量子化工程において出力される直交変換係数の二値化シンボル長を算出する第３の二値符号量算出工程と、前記動きベクトル検出工程において出力されるマクロブロック情報から、二値化シンボル列を構成する前記差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長を算出する第２の二値符号量算出工程とを有し、前記符号量制御工程においては、前記第１〜第３の二値符号量算出工程において算出される二値化シンボル長に基づいて量子化パラメータを決定して前記量子化工程に出力する画像符号化方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ＭＢの二値データ符号量（二値データ符号量×α）に基づいて算出された量子化パラメータを、符号化順で次のＭＢの量子化で使用することができ、従来方法に比べ、より符号量制御の精度を高める画像符号化装置を実現することができる。
【発明を実施するための最良の形態】
【００１９】
（第１の実施形態）
以下、本発明の実施形態を図面を参照しながら説明する。
図１は、本発明を適応できる画像符号化装置の構成例を示すブロック図である。
本実施形態の画像符号化装置１００について説明する前に、ＣＡＢＡＣの符号化処理、及びＣＡＢＡＣを用いてエントロピー符号化を行った場合の符号量制御の動作を説明する。
まず、図２を用いて、ＣＡＢＡＣの符号化処理を説明する、ＣＡＢＡＣは、二値化部２０１、コンテキスト計算部２０２、コンテキストメモリ２０３、二値算術符号化部２０４で構成されている。
【００２０】
二値化部２０１は、差分動きベクトル、直交変換係数、予測モード等の情報Ｄ２１を入力し、規格によって定められた二値化処理を行い、二値化シンボル列Ｄ２２を生成する。二値化処理の方式は、非特許文献１に説明されているのでここでは詳細な説明を省略する。
【００２１】
コンテキストメモリ２０３には、発生する確率が高いシンボル（most probable symbol 以下、ＭＰＳとする）と、その発生確率がコンテキストインデックス毎に４６０個格納されている。
【００２２】
コンテキスト計算部２０２では、二値化シンボルに基づいて、コンテキストインデックスを算出し、コンテキストインデックスをアドレスとしてコンテキストメモリ２０３からＭＰＳと発生確率を読出し、二値算術符号化部２０４に入力する。
【００２３】
二値算術符号化部２０４では、二値化シンボル、ＭＰＳ、発生確率とに基づいて算術符号化処理を行う。なお、二値算術符号化部２０４は、二値化シンボル毎に算術符号化を行い、その都度コンテキストメモリのＭＰＳと発生確率を更新する必要があるため、処理サイクル数がかかるにもかかわらず、並列化が不可能であることが知られている。
【００２４】
前述したＣＡＢＡＣ方式のエントロピー符号化を用いた符号化装置において、符号量制御を行う場合、ＣＡＢＡＣの特性から発生符号長を早期に符号量制御に返し、反映させることが困難である。そこで、二値化部２０１からの出力である二値化シンボルの符号長から二値算術符号化部２０４の発生符号長を推定する方法が提案されている（例えば、特許文献１を参照）。具体的には、二値化シンボル長に、直前の符号化済みピクチャの二値化シンボル長と算術符号長との比率αを用いて算術符号長を推定する。
【００２５】
次に、図３を用いて、ＣＡＢＡＣを用いてエントロピー符号化を行った場合の符号量制御の動作を説明する。
図３に示すように、直交変換量子化部３０１は、不図示の動き補償部において生成された予測画像と入力画像の差分画像Ｄ３１が入力されると、入力画像に対して直交変換及び量子化を施す。そして、この変換係数と予測モード等のマクロブロック毎の情報（以下、マクロブロック情報）を合わせた情報Ｄ３２を二値化部３０２に出力する。
【００２６】
二値化部３０２は、前述した二値化部２０１と同様の動作を行い、変換係数とマクロブロック情報Ｄ３２を入力として、二値化シンボルＤ３３とマクロブロック（ＭＢ）毎の二値化シンボル長Ｄ３４を生成する。
【００２７】
発生符号長推定部３０４は、二値化部３０２から二値化シンボル長Ｄ３４が入力されると、前述した比率αを用いて推定算術符号長Ｄ３５を算出して、符号量制御部３０５に出力する。
【００２８】
符号量制御部３０５は、発生符号長推定部３０４からＭＢ毎に入力される推定算術符号長Ｄ３５に基づいて、次のＭＢを量子化する際の量子化パラメータを決定し、直交変換量子化部３０１に量子化パラメータＤ３６を出力する。直交変換量子化部３０１は、符号量制御部３０５から入力される量子化パラメータＤ３６に基づいて、直交変換及び量子化を行う。このような構成によって、ＣＡＢＡＣを用いてエントロピー符号化を行った場合の符号量制御を行っている。
【００２９】
次に、図１を参照しながら本実施形態の画像符号化装置１００の構成例を説明する。
本実施形態の画像符号化装置１００は、動きベクトルを検出する動きベクトル検出部１０１を有している。動きベクトル検出部１０１は、動きベクトルと周辺ブロックとを用いて生成された動きベクトル予測値（以下、ｐｍｖ）との差分値を含む動きベクトル信号Ｄ１０を生成して出力する。また、主に予測モード、パーティションパターン、直交変換サイズ、イントラインターフラグ、フィールドフレームフラグ等から構成されるマクロブロック情報Ｄ１１を生成して出力する。動きベクトル検出部１０１から出力される動きベクトル信号Ｄ１０は、直交変換量子化部１０２及び１０３に入力される。
【００３０】
直交変換量子化部１０２は、動きベクトル検出部１０１から供給される動きベクトル信号Ｄ１０の動き補償を行う。そして、予測残差信号に直交変換を施した後、符号量制御部１０６から入力された量子化パラメータＤ１６に基づいて量子化を行い、直交変換係数Ｄ１２を出力する。
【００３１】
二値化部１０３は、入力される動きベクトル信号Ｄ１０、マクロブロック情報Ｄ１１及び直交変換係数Ｄ１２から二値化シンボル列Ｄ１３を生成して出力する。
【００３２】
二値化部１０３から出力される二値化シンボル列Ｄ１３は、算術符号化部１０４に入力される。算術符号化部１０４は、入力される二値化シンボル列Ｄ１３のコンテキスト計算を行い、二値化シンボルと、前述したＭＰＳと、発生確率とを算術符号化器（図示せず）に入力し、算術符号化を行って符号Ｄ１４を出力する。
【００３３】
さらに、発生符号量推定部１０５、符号量制御部１０６、差分動きベクトル二値符号量算出部（第１の二値符号量算出部）１０７を有する。また、マクロブロック情報二値化シンボル長算出部（第２の二値符号量算出部）１０８及び直交変換係数二値化シンボル長算出部（第３の二値符号量算出部）１０９を有する。
【００３４】
差分動きベクトル二値符号量算出部１０７は、動きベクトル検出部１０１から入力された動きベクトル信号Ｄ１０から、ＭＢ毎の差分動きベクトル二値化シンボル長Ｄ１７を算出する。マクロブロック情報二値化シンボル長算出部１０８は、マクロブロック情報Ｄ１１が入力されると、ＭＢ毎のマクロブロック情報二値化シンボル長Ｄ１８を算出して出力する。直交変換係数二値化シンボル長算出部１０９は、直交変換量子化部１０２から出力される直交変換係数Ｄ１２が入力されると、ＭＢ毎の直交変換係数二値化シンボル長Ｄ１９を算出して出力する。
【００３５】
発生符号量推定部１０５は、前述したＭＢ毎の差分動きベクトル二値化シンボル長Ｄ１７、ＭＢ毎のマクロブロック情報二値化シンボル長Ｄ１８、ＭＢ毎の直交変換係数二値化シンボル長Ｄ１９が入力されると、算術符号化後の符号長を推定する。そして、推定符号長Ｄ１５を生成して出力する。また、符号量制御部１０６は、発生符号量推定部１０５から推定符号長Ｄ１５が出力されると、符号化対象ＭＢ毎の量子化ステップ値を定める量子化パラメータＤ１６を算出して出力する。
【００３６】
動きベクトル検出部１０１、直交変換量子化部１０２、二値化部１０３、算術符号化部１０４の動作は、非特許文献１に記載されているので、本実施形態においては詳しい説明は省略する。
【００３７】
差分動きベクトル二値符号量算出部１０７は、非特許文献１に記載されているＣＡＢＡＣ方式の二値化によって発生する二値化シンボル長を算出する。この算出処理は、動きベクトル検出部１０１から出力される差分動きベクトル（差分動きベクトル＝動きベクトル−ｐｍｖ）に対して行われる。すなわち、差分動きベクトルを非特許文献１に記載されているＵＥＧ３方式で二値化した際の二値化シンボル長を算出するものである。ＵＥＧ３方式とは、Concatenated unary／k−th order Exp−Golomb binarizationである。
【００３８】
二値化部１０３で行われる差分動きベクトルの二値化も同様の方式が用いられる。二値化部１０３では、符号を生成するための二値化処理であるので、直交変換係数Ｄ１２をZig−zag scan、もしくはField scanの順序に従ってＵＥＧ３方式で二値化する必要がある。そのため、二値化部１０３では、直交変換係数Ｄ１２を不図示の記憶装置にＭＢ分を保持した後、前述したZig−zag scan、もしくはField scanの順序で直交変換係数を読み出し、ＵＥＧ３方式で二値化する。
【００３９】
一方、差分動きベクトル二値符号量算出部１０７は、二値化部１０３とは異なり、二値化シンボル長のみを算出するため、前述したZig−zag scanもしくは、Field scanの順序を守る必要がない。したがって、記憶装置にＭＢ部の直交変換係数を保持する必要も無い。すなわち、直交変換量子化部１０２から直交変換係数Ｄ１２が出力されれば、二値化シンボル長を即時に算出することが可能である。符号長を算出するために、非特許文献１の「９．３．２．３」に記載されている処理を実現する専用のハードウェアを実装してもよい。また、差分動きベクトルの範囲が予め定まっているのであれば、全ての差分動きベクトル値の符号長をＲＯＭに記録し、差分動きベクトルの値をインデックスとして符号長を即座に算出するようにしてもよい。
【００４０】
マクロブロック情報二値化シンボル長算出部１０８は、非特許文献１に記載されているSyntax Element（以下、ＳＥ）の二値化シンボル長を算出する。Syntax Elementに含まれる要素は、以下の名前を有する。すなわち、mb＿type。 mb＿skip＿flag。 sub＿mb＿type。 ref＿idx＿l0。 ref＿idx＿l1。 mb＿qp＿delta。 intra＿chroma＿pred＿mode。 prev＿intra4x4＿pred＿mode＿flag。 prev＿intra8x8＿pred＿mode＿flag。 rem＿intra4x4＿pred＿mode。 rem＿intra8x8＿pred＿mode。 mb＿field＿decoding＿flag。 coded＿block＿pattern。 end＿of＿slice＿flagという名前を有する。
【００４１】
mb＿typeは、ＭＢタイプを示すＳＥである。符号化するＭＢがイントラ予測の場合、動きベクトル検出部１０１から符号化中のスライスのタイプ（I、P、B）と、直交変換サイズを示すtransform＿size＿8x8＿flagとを入力する。
【００４２】
また、 イントラ予測の場合、予測が４ｘ４なのか、８ｘ８なのか、或いは１６ｘ１６なのかを示す信号を定める。また、イントラ１６ｘ１６予測の予測モードと、Coded Block Pattern Lumaと、Coeded Block Pattern Chroma等のマクロブロック情報を入力し、mb＿typeを定める。そして、mb＿typeが定まれば、非特許文献１のTable9-27に記載されているテーブルを利用して符号長を算出する。
【００４３】
前述した、Coded Block Pattern Lumaと、Coded Block Pattern Chromaは、ＭＢ中の非零直交変換係数の有無から定まるＳＥである。このＳＥの値は、前述した直交変換量子化部１０２からＭＢ中の全ての直交変換係数が出力されたタイミングで定まる。
【００４４】
mb＿skip＿flagは、符号化中のＭＢをスキップ処理する際に、１になるＳＥである。スキップの判定は、符号化するスライスがＰスライス、Ｂスライスの際に全ての直交変換係数の値が０であり、かつＭＶＤが０であるか否かを判断して決める。
【００４５】
符号化するＭＢがイントラ予測の場合、mb＿skip＿flagの二値化シンボル長は０であるが、他の予測の場合では、mb＿skip＿flagの二値化シンボル長は固定長であるため、シンボル長を算出することが可能である。
【００４６】
sub＿mb＿typeは、ＰスライスもしくはＢスライス時に存在するＳＥであり、ＭＢの８ｘ８以下のＭＢタイプを示す。sub＿mb＿typeの二値化シンボル長は、８ｘ８ブロックが何分割されているかを示す信号と各パーティション毎の予測方式と、各パーティションの縦と横のサイズを動きベクトル検出部１０１からマクロブロック情報Ｄ１１として入力する。これにより、非特許文献１に記載されているTable9-29を利用して算出される。
【００４７】
ref＿idx＿l0、 ref＿idx＿l1は、参照ピクチャ番号を示すＳＥである。動きベクトル検出部１０１から参照ピクチャ番号をマクロブロック情報Ｄ１１として入力し、ＳＥの絶対値に対して１を加算した値が二値化シンボル長になる。この理由は、非特許文献１に記載されているので説明は省略する。
【００４８】
mb＿qp＿deltaは、符号化順でみた前後のＭＢの量子化パラメータの差分値を示している。直交変換量子化部１０２、もしくは符号量制御部１０６から量子化パラメータ値を入力し、前回の値との差分値（ＳＥ値）を算出する。そして、code Num（非特許文献１のTable9-3に記載）に変換し、二値化シンボル長を算出する。
【００４９】
intra＿chroma＿pred＿modeは、ＭＢに対する色差信号のイントラ予測モードを示すＳＥである。動きベクトル検出部１０１からマクロブロック情報Ｄ１１として色差信号のイントラ予測モードを入力し、ＳＥ値に応じた二値化シンボル長を算出する。intra＿chroma＿pred＿modeは、二値化部１０３においてTruncated unary cMax=3方式で二値化される。該方式による二値化シンボル長は固定であるので、intra＿chroma＿pred＿modeの二値化シンボル長を算出することが可能である。
【００５０】
prev＿intra4x4＿pred＿mode＿flagは、４ｘ４ブロックのそれぞれに対する画面内予測モードを示すＳＥである。二値化部１０３において、該ＳＥはFixed-length cMax=1方式で二値化される。また、prev＿intra8x8＿pred＿mode＿flagも同様の二値化方式で二値化される。該ＳＥに対する二値化シンボル長は固定値であるので、二値化シンボル長を算出することが可能である。
【００５１】
rem＿intra4x4＿pred＿mode及びrem＿intra8x8＿pred＿modeは、４ｘ４ブロックもしくは８ｘ８ブロックに対する画面内予測モードを示すＳＥである。該ＳＥは、二値化部１０３において、動きベクトル検出部１０１からマクロブロック情報Ｄ１１の中の所定のflagが０の時に二値化される。すなわち、prev＿intra4x4＿pred＿mode＿flag、もしくはprev＿intra8x8＿pred＿mode＿flagが０の時に二値化される。
【００５２】
すなわち、該フラグが１の時には、二値化されないので二値化シンボル長は発生しない。しかし、動きベクトル検出部１０１から１６本のフラグの値を知ることが可能なので、rem＿intra4x4＿pred＿mode及びrem＿intra8x8＿pred＿modeに対する二値化シンボル長も算出可能である。なお、rem＿intra4x4＿pred＿mode及びrem＿intra8x8＿pred＿modeは、二値化部１０３においてFixed-length cMax=7方式で二値化される。したがって、該ＳＥの二値化シンボル長は固定長である。
【００５３】
mb＿field＿decoding＿flagは、上下に隣接しているＭＢを一つのペアと考えるＭＢペアがフィールドモードである時に１となるＳＥである。MB-AFFモードで符号化された場合にのみ二値化部１０３において二値化される。
【００５４】
動きベクトル検出部１０１からマクロブロック情報Ｄ１１に含まれる、MB-AFFモードか否かを示す信号とカレントＭＢのアドレスと符号化順で一つ前のＭＢがスキップであったか否かを示す信号を入力する。そして、二値化する必要があるか否かを判断し、二値化する必要がある場合に二値化シンボル長を算出する。このＳＥは、Fixed-length cMax=1方式で二値化されるので、二値化シンボル長は固定であるので二値化するか否かの判断のみを行えばよい。
【００５５】
coded＿block＿pattern は、ＭＢ中の非零直交変換係数の有無から定まるＳＥである。該ＳＥは、ＳＥの値に関わらず、二値化シンボル長は固定であるので二値化シンボル長を算出することが可能である。
【００５６】
end＿of＿slice＿flagは、ＭＢの二値化シンボル列の最後に現れ、スライスの最後のＭＢの符号化が終わった時に１になるＳＥである。該ＳＥの二値化シンボル長は固定長であるため、ＭＢ毎に固定の二値化シンボル長を出力すればよい。
【００５７】
直交変換係数二値化シンボル長算出部１０９には、直交変換量子化部１０２において直交変換及び量子化された直交変換係数Ｄ１２が入力される。直交変換係数二値化シンボル長算出部１０９では、ＳＥであるcoded＿block＿flagの二値化シンボル長を算出する。また、 significant＿coeff＿flagの二値化シンボル長を算出する。また、 last＿ significant＿coeff＿flagの二値化シンボル長を算出する。また、 coeff＿abs＿level＿minus1、 coeff＿sign＿flagの二値化シンボル長を算出する。
【００５８】
coded＿block＿flagは、４ｘ４ブロックに非零の係数があれば１の値を取るＳＥである。このＳＥの二値化シンボル長は、直交変換量子化部１０２からＭＢ中の全ての係数が出力されたタイミングで算出可能である。例えば、１ＭＢには輝度と色差を合わせて２４個の４ｘ４ブロックが存在する（chroma＿formatが4:2:0の場合）。２４個のブロックのうち、１０個のブロックに非零係数が存在すればcoded＿block＿flagの二値化シンボル長は１０ビットである。
【００５９】
significant＿coeff＿flagは、１つの変換係数が非零であれば１の値を取るＳＥである。last＿ significant＿coeff＿flagは、１つの変換係数が含まれる４ｘ４ブロックの最後の非零変換係数であった場合に１となるＳＥである。二値化部１０３は、二値化後の二値化シンボルを規格に準じた順序で出力する必要があるため、１ＭＢ分の変換係数を記憶装置に一旦保持する必要があるが、直交変換係数二値化シンボル長算出部１０９は、二値化シンボル長を算出するだけでよい。したがって、直交変換量子化部１０２からＭＢ中の全ての係数が出力されたタイミングで算出可能である。
【００６０】
coeff＿abs＿level＿minus1は、直交変換量子化部１０２から出力される直交変換係数Ｄ１２の絶対値から１を引いた値を取るＳＥであり、ＵＥＧｋ方式で二値化される。該ＳＥも直交変換量子化部１０２からＭＢ中の全ての係数が出力されたタイミングで算出可能である。二値化シンボル長は、予めＳＥ値に応じた二値化シンボル長を保持したＲＯＭ等を用意して算出すればよい。
【００６１】
coeff＿sign＿flagは、直交変換量子化部１０２から出力される直交変換係数Ｄ１２の符号を示すＳＥである。この直交変換係数Ｄ１２が非零であった場合に１ビットの二値化シンボル長が生じる。このＳＥの二値化シンボル長も直交変換量子化部１０２からＭＢ中の全ての係数が出力されたタイミングで算出可能である。
【００６２】
次に、前述した本実施形態の画像符号化装置１００の動作手順を図６のフローチャートを参照しながら説明する。
まず、ステップＳ６０１において、動きベクトル検出部１０１により、動きベクトルを検出し、動きベクトル信号Ｄ１０及びマクロブロック情報Ｄ１１を検出結果として生成して出力する。
【００６３】
次に、ステップＳ６０２において、直交変換量子化部１０２により、直交変換及び量子化を行って直交変換係数Ｄ１２を生成して、二値化部１０３及び直交変換係数二値化シンボル長算出部１０９に出力する。
【００６４】
次に、ステップＳ６０３において、差分動きベクトル二値符号量算出部１０７により、ＭＢ毎の差分動きベクトル二値化シンボル長Ｄ１７を算出する。
次に、ステップＳ６０４において、マクロブロック情報二値化シンボル長算出部１０８により、ＭＢ毎のマクロブロック情報二値化シンボル長Ｄ１８を算出する。ＭＢ毎のマクロブロック情報二値化シンボル長Ｄ１８は、二値化シンボル列を構成する差分動きベクトル及び前記直交変換係数を除く信号の二値化シンボル長として算出される。
次に、ステップＳ６０５において、直交変換係数二値化シンボル長算出部１０９により、ＭＢ毎の直交変換係数二値化シンボル長Ｄ１９を算出する。
【００６５】
次に、ステップＳ６０６において、発生符号量推定部１０５により、算術符号化後の符号長を推定する処理を行う。この処理は、前述したＭＢ毎の差分動きベクトル二値化シンボル長Ｄ１７、ＭＢ毎のマクロブロック情報二値化シンボル長Ｄ１８、ＭＢ毎の直交変換係数二値化シンボル長Ｄ１９が入力されると、算術符号化後の符号長を推定して行う。
【００６６】
次に、ステップＳ６０７において、符号量制御部１０６により、符号化対象ＭＢ毎の量子化ステップ値を定める量子化パラメータＤ１６を算出して、直交変換量子化部１０２により行われる量子化動作を制御する。これにより、ＭＢの二値データ符号量（二値データ符号量×α）に基づいて算出された量子化パラメータを、符号化順で次のＭＢの量子化で使用することができる。
【００６７】
次に、ステップＳ６０８において、二値化部１０３により、差分動きベクトルの二値化処理を行う。この処理は、前述したように、符号を生成するための二値化処理であるので、直交変換係数Ｄ１２をZig−zag scan、もしくはField scanの順序に従ってＵＥＧ３方式で二値化する。
次に、ステップＳ６０９において、算術符号化部１０４により二値算術符号化を行って符号Ｄ１４を出力する。
【００６８】
次に、ステップＳ６１０において、処理を終了するか否かを判断する。この判断の結果、処理を終了しない場合にはステップＳ６１０に戻って前述した処理を繰り返し行う。また、ステップＳ６１０の判断の結果、全ての処理を終了する場合にはエンド処理を行う。
【００６９】
以上のように、本実施形態の画像符号化装置１００は、差分動きベクトル二値符号量算出部１０７〜直交変換係数二値化シンボル長算出部１０９（第１〜第３の二値符号量算出部）を備えた。したがって、図５の時点t2のタイミングにおいてＭＢの二値化シンボル長を算出することが可能である。これにより、従来の構成よりも二値化シンボル長を１ＭＢ時間だけ早く符号量制御部３０５に返すことが可能になり、従来よりもより精度の高い符号量制御を実現することができる。
【００７０】
（本発明に係る他の実施形態）
前述した本発明の実施形態における画像符号化装置を構成する各手段は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００７１】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７２】
なお、本発明は、前述した画像符号化方法における各工程を実行するソフトウェアのプログラム（実施形態では図６に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７３】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００７５】
プログラムを供給するための記録媒体としては種々の記録媒体を使用することができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００７６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７７】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行うことによっても前述した実施形態の機能が実現され得る。
【００８０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施形態を示し、画像符号化装置の構成を示すブロック図である。
【図２】Ｈ．２６４におけるＣＡＢＡＣ方式の構成を示すブロック図である。
【図３】従来の画像符号化装置の構成を示すブロック図である。
【図４】従来の画像符号化装置の時間毎の処理内容を示す図である。
【図５】本発明の実施形態を示し、画像符号化装置の時間毎の処理内容を示す図である。
【図６】本発明の実施形態を示し、画像符号化装置の動作手順を説明するフローチャートである。
【符号の説明】
【００８２】
１００  画像符号化装置
１０１  動きベクトル検出部
１０２  直交変換量子化部
１０３  二値化部
１０４  算術符号化部
１０５  発生符号量推定部
１０６  符号量制御部
１０７  差分動きベクトル二値化シンボル長算出部
１０８  マクロブロック情報二値化シンボル長算出部
１０９  直交変換係数二値化シンボル長算出部
２０１  二値化部
２０２  コンテキスト計算部
２０３  コンテキストメモリ
２０４  二値算術符号化部
【図１】
2010109912.tif 000003
【図２】
2010109912.tif 000004
【図３】
2010109912.tif 000005
【図４】
2010109912.tif 000006
【図５】
2010109912.tif 000007
【図６】
2010109912.tif 000008