(57)【要約】  画質劣化の程度が小さく、ピクチャよりも細かい単位での符号量制御が可能であり、ピクチャの符号化完了時間を一定時間に保証できるようにする。シンボル数推定器２０８は、ピクチャを構成する複数マクロブロックのビン総数２０９を推定する。ビン数２０９は、エントロピ符号化選択器２１０は、入力されたビン数２０９を利用してエントロピ符号化モード選択信号２３２をエントロピ符号化器２１５に出力してＣＡＢＡＣ器またはＶＬＣ器を選択させる。ＣＰＵ２７１はプログラム格納部２７２に格納された制御プログラムを実行することで映像符号化を行う。
2008142956.tif 000002
【特許請求の範囲】
【請求項１】
画像ブロックを変換量子化して符号データを生成する符号データ生成手段と、
前記符号データを可変長符号化する可変長符号化手段と、
前記符号データを２値シンボルに変換し２値算術符号化する算術符号化手段と、
複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定手段と、
該２値シンボル数推定手段の推定した総数に応じて、前記可変長符号化手段と前記算術符号化手段のいずれか一方を前記符号データの符号化用に選択する符号化選択手段とを具備することを特徴とする映像符号化装置。
【請求項２】
前記２値シンボル数推定手段は、前記総数を用いて、前記可変長符号化手段を用いて処理可能な符号データ量に対応する量子化ステップと、前記算術符号化手段を用いて処理可能な符号データ量に対応する量子化ステップとを推定し、
前記符号化選択手段は、前記２値シンボル推定手段により推定された量子化ステップサイズがより小さくなる符号化手段を選択することを特徴とする請求項１に記載の映像符号化装置。
【請求項３】
前記２値シンボル数推定手段の推定した２値シンボルの総数を所定の閾値と比較する閾値比較手段を備え、
前記符号化選択手段は、前記閾値比較手段によって前記総数が閾値よりも多いと判別された場合に可変長符号化手段を選択し、その他の場合には算術符号化手段を選択することを特徴とする請求項１に記載の映像符号化装置。
【請求項４】
前記閾値は、前記複数画像ブロックの符号化時間で処理可能な２値シンボルの最大数と、２値シンボル数に対する算術符号化ビット数の圧縮比率を用いて計算された値であることを特徴とする請求項３に記載の映像符号化装置。
【請求項５】
前記２値シンボル数推定手段は、前記複数画像ブロックのアクテビティあるいは標準偏差あるいは分散に基づいて２値シンボル数を推定することを特徴とする請求項１から４のいずれか１項に記載の映像符号化装置。
【請求項６】
前記２値シンボル数推定手段は、前記複数画像ブロックの先行符号化情報を用いて２値シンボル数を推定することを特徴とする請求項１から４のいずれか１項に記載の映像符号化装置。
【請求項７】
画像ブロックを変換量子化して符号データを生成する符号データ生成プロセスと、
複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定プロセスと、
該２値シンボル数推定プロセスで推定した総数に応じて、前記符号データの符号化用の手法を、符号データを可変長符号化する可変長符号化と、符号データを２値シンボルに変換し２値算術符号化する算術符号化から選択する符号化選択プロセス
とを具備することを特徴とする映像符号化方法。
【請求項８】
画像ブロックを変換量子化して符号データを生成する符号データ生成処理と、
複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定処理と、
該２値シンボル数推定処理で推定した総数に応じて、前記符号データの符号化用の手法を、符号データを可変長符号化する可変長符号化と、符号データを２値シンボルに変換し２値算術符号化する算術符号化から選択する符号化選択処理
とをコンピュータに実行させることを特徴とする映像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化技術を使用する映像符号化装置、映像符号化方法および映像符号化プログラムに係わり、特にエントロピ符号化の方式を選択するようにした映像符号化装置、映像符号化方法および映像符号化プログラムに関する。
【背景技術】
【０００２】
映像符号化装置は、外部から入力される映像データを、所定の映像符号化方式に準拠した符号化処理を行い、ビットストリームを生成するようになっている。この符号化処理に使用される映像符号化方式として、Ｈ．２６４／ＡＶＣが存在している（たとえは非特許文献１参照）。これは、ＭＰＥＧ（Moving Picture Experts Group）−４規格書パート１０によるもので、その符号化参照モデルとしてジョイントモデル（Joint Model）方式が知られている。以後、ジョイントモデル方式に基づいた本発明に関連する映像符号化装置を、関連技術の映像符号化装置と呼ぶ。【０００３】
図９は、この関連技術の映像符号化装置の構成を示したものである。関連技術の映像符号化装置１００は、圧縮対象となる映像データ１０１を構成する画像フレームを順次格納する画像フレームバッファ１０２を備えている。この画像フレームバッファ１０２からは、所定のサイズの画像領域単位に区切られたマクロブロック（Macro Block）を単位として映像データ１０３が出力されて、マクロブロック符号化器１０４に入力され、このマクロブロック単位で符号化が行われるようになっている。マクロブロック符号化器１０４には、符号量制御器１０５と、復号ピクチャバッファ１０６が接続されている。マクロブロック符号化器１０４からは符号化されたビットストリーム１０７が出力されるようになっている。なお、マクロブロックおよびピクチャの定義については後に説明する。【０００４】
このような映像符号化装置１００のマクロブロック符号化器１０４は、映像データ１０３を入力するマクロブロックバッファ１１１と、これに接続された予測器１１２と、この予測器１１２の出力でマクロブロックバッファ１１１の出力を引き算する演算器１１３と、この演算器１１３の演算結果を符号量制御器１０５の下で変換して量子化する変換・量子化器１１４と、この変換・量子化器１１４の出力側に設けられたエントロピ符号化器１１５および逆量子化・逆変換器１１６と、逆量子化・逆変換器１１６の出力側に設けられた加算器１１７とによって構成されている。【０００５】
この映像符号化装置１００に入力される映像データ１０１の映像信号フォーマットがＱＣＩＦ（Quarter Common Intermediate Format）であるものとする。ＱＣＩＦは、ＩＴＵ（International Telecommunication Union：国際電気通信連合）の定めた映像信号フォーマットの１つである。【０００６】
図１０は、このＱＣＩＦの映像フォーマットの画像フレームを表わしたものである。ＱＣＩＦの画像フレームは、横１７６個、縦１４４個のマクロブロックからなる。１枚の画像フレームは、順走査の場合に１枚のフレームピクチャで構成される。また、飛び越し走査の場合は２枚のフィールドピクチャで構成される。以後の説明では、これらを単純に「ピクチャ」と呼ぶことにする。【０００７】
ピクチャを構成する単位としてのマクロブロックは、それぞれ１６×１６画素の輝度画素と、８×８画素のＣｒ（色差信号）とＣｂ（色差信号）の色差画素で構成されている。図では、１６×１６画素のマクロブロックを１６分割した場合の４×４の画素ブロックについて輝度位置（ｘ）と色差位置（ｏ）を画素単位で表わしている。【０００８】
図９に示したマクロブロック符号化器１０４は、映像データ１０３をマクロブロックを単位として符号化する。このとき、テレビジョンのラスタスキャンと同様にピクチャの左上から右下方向にラスタスキャンで順に符号化が行われることになる。【０００９】
まず、マクロブロック符号化器１０４のマクロブロックバッファ１１１は、符号化対象の映像データをマクロブロック単位で読み込んで、一時的に蓄積し、これを後段の変換・量子化器１１４に供給する。このとき、演算器１１３はマクロブロックバッファ１１１から読み出されたマクロブロックの画像１２１から、予測器１１２の出力する予測画像１２２を減算する演算を行い、その演算結果としての予測誤差画像１２３を変換・量子化器１１４に供給する。【００１０】
ところで、予測誤差画像１２３には、フレーム間予測に基づいて生成された予測画像と、フレーム内予測に基づいて生成された予測画像の２種類がある。このうちフレーム間予測は、画像フレーム同士の相関を利用して、現在の符号化対象画像フレームと表示時刻が異なる過去に符号化されて再構築された画像フレームの画像を利用して予測画像を生成するものである。また、フレーム内予測は、画像フレーム内の相関を利用して、現在の符号化対象画像フレームと表示時刻が同一の過去に再構築された画像フレームの画像を利用して予測画像を生成するものである。【００１１】
以後、フレーム内予測のみで符号化できるマクロブロックの集合（スライス）をＩスライスと呼ぶ。また、フレーム内予測とフレーム間予測を利用して符号化できるスライスをＰスライスと呼ぶ。更に、１枚の画像フレームの画像だけでなく、２枚の画像フレームの画像を同時に利用できるフレーム間予測を利用して符号化できるスライスをＢスライスと呼ぶ。【００１２】
また、Ｉスライスだけを用いて符号化できるピクチャをＩピクチャと呼び、ＩスライスだけでなくＰスライスを用いて符号化できるピクチャをＰピクチャと呼ぶ。更に、Ｂスライスも用いて符号化できるピクチャをＢピクチャと呼ぶことにする。【００１３】
変換・量子化器１１４は、予測誤差画像１２３をマクロブロックよりも細かいブロックの単位で周波数変換する。そして、予測誤差画像１２３を空間領域から周波数領域に変換する。ＡＶＣ（Advanced Video Coding）規格では、８×８ブロック、もしくは、４×４ブロックの単位での周波数変換が輝度画素に対して利用できる。以後、周波数領域に変換された予測誤差画像を変換係数と呼ぶ。この変換係数は、符号量制御器１０５から供給される量子化パラメータ１２５に基づいて量子化されて、符号データ１２６としてエントロピ符号化器１１５に供給される。本明細書では、この量子化された変換係数を量子化値と呼ぶことにする。【００１４】
符号データ１２６は、逆量子化・逆変換器１１６にも供給される。逆量子化・逆変換器１１６は、変換・量子化器１１４から供給される前記した量子化値を逆量子化し、更に、逆周波数変換して元の空間領域に戻す。そして、空間領域に戻した予測誤差画像に対して、加算器１１７で予測器１１２から供給される予測画像１２２を加えて復号画像１２８を得る。この復号画像１２８は、以後の符号化のために、復号ピクチャバッファ１０６に格納される。【００１５】
エントロピ符号化器１１５は、入力される符号データ１２６をエントロピ符号化して、ビットストリーム１０７を出力する。ここで、エントロピ符号化とは、データの生起確率の高低に応じて異なる長さの符号を割り当てることで圧縮を行うものである。本発明は、エントロピ符号化器１１５に密に関わるので、後にその詳細を説明する。【００１６】
予測器１１２は、予測画像の生成パラメータを、符号データ１２９としてエントロピ符号化器１１５に供給する。ここで予測画像の生成パラメータとしては、たとえば、フレーム間予測やフレーム内予測などの種類示す予測モード、フレーム間予測に用いた復号フレームのインデックス、フレーム間予測に用いた動きベクトル、フレーム内予測に用いたフレーム内予測方向を挙げることができる。【００１７】
復号ピクチャバッファ１０６は、先に説明したように逆量子化・逆変換器１１６から供給される復号画像１２８を格納する。そして、復号画像１２８によって再構成される復号画像ピクチャ（以後、単純に復号ピクチャと呼ぶ）を管理する。【００１８】
符号量制御器１０５は、ピクチャを目標のビット数で符号化するために、エントロピ符号化器１１５が出力するビットストリーム１３１を監視する。そして、出力されるビットストリーム１３１のビット数が目標のビット数よりも多ければ、量子化パラメータ１２５として、量子化ステップサイズを大とするパラメータを出力する。これとは逆に、エントロピ符号化器１１５が出力するビットストリーム１３１のビット数が目標のビット数よりも少なければ、量子化パラメータ１２５として、量子化ステップサイズを小とするパラメータを出力する。【００１９】
エントロピ符号化器１１５は、エントロピ符号化モード選択信号１３２によるエントロピ符号化として、後に詳しく説明するＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）を用いる場合、後に説明する算術符号化器に入力されるシンボル数（ビン数）も監視する。そして、ビット数とビン数の比率が前記したＡＶＣ規格の定める比率を満たすように、量子化パラメータを調整することになる。【００２０】
図１１は、このエントロピ符号化器の構成を具体的に表わしたものである。エントロピ符号化器１１５は、図９に示した変換・量子化器１１４から出力される符号データ１２６を入力する第１のセレクタ１４１と、この第１のセレクタ１４１の一方の出力側に入力側を接続されたＣＡＢＡＣ器１４２と、他方の出力側に入力側を接続されたＶＬＣ（Variable Length Coding）器１４３と、これら２種類のコーディングのためのデバイスとしてのＣＡＢＡＣ器１４２およびＶＬＣ器１４３の出力を択一的に入力する第２のセレクタ１４４を備えている。【００２１】
エントロピ符号化器１１５には、エントロピ符号化モード選択信号１３２が第１のセレクタ１４１と第２のセレクタ１４４にこれらの切替制御ために与えられるようになっている。エントロピ符号化モード選択信号１３２は、ＣＡＢＡＣ器１４２とＶＬＣ器１４３のいずれかを選択させるための信号である。これにより、ＡＶＣ（Advanced Video Coding）規格では、マクロブロックの符号データ１２６に対して、ピクチャ単位でＣＡＢＡＣ器１４２によるコーディングもしくはＶＬＣ器１４３によるコーディングのいずれかを選択してエントロピ符号化を行うことができる。【００２２】
図１１に示したエントロピ符号化器１１５で、ＣＡＢＡＣ器１４２は第１のセレクタ１４１から出力される符号データ１２６1を入力してビットストリーム１０７1を第２のセレクタ１４４に出力する。ＣＡＢＡＣ器１４２からはビン数を表わしたビン数データ１４５も出力される。ＣＡＢＡＣ器１４２の具体的な構成は後に説明する。【００２３】
ＶＬＣ器１４３は、第１のセレクタ１４１から出力される符号データ１２６2を入力してビットストリーム１０７2を第２のセレクタ１４４に出力する。ＶＬＣ器１４３の具体的な構成は後に説明する。第２のセレクタ１４４からはビットストリーム１０７と共にビット数を表わしたビット数データ１４６も出力されることになる。【００２４】
ところで、ＣＡＢＡＣ器１４２は、ＶＬＣ器１４３よりも高い符号化効率を達成する。しかしながら、ＣＡＢＡＣ器１４２はその符号化・復号化の処理量がＶＬＣ器１４３よりも多い。このため、通常では、複雑な処理をサポートする上位プロファイル（たとえばＨｉｇｈ（ハイ）プロファイルやＭａｉｎ（メイン）プロファイル。）でＣＡＢＡＣ器１４２を使う。また、複雑な処理をサポートしない下位プロファイル（たとえば、ベースライン（Ｂａｓｅ−ｌｉｎｅ）プロファイル。）ではＶＬＣ器１４３を用いる。ただし、マクロブロックレイヤよりも上位レイヤの符号データについては、ビットストリームを占める符号データ量が相対的に少ないので、各プロファイルで互換性を持つことを優先してＶＬＣ器１４３が用いられる。【００２５】
図１２は、ＣＡＢＡＣ器の構成を具体的に表わしたものである。ＣＡＢＡＣ器１４２は、図１１に示した第１のセレクタ１４１を経た符号データ１２６1を入力して２値化する２値化器１５１と、２値化器１５１から出力される２進列データ１５２をスイッチングするスイッチ１５３を備えている。スイッチ１５３から出力される２進列のシンボルとしてのビン１５５は、算術符号化器１５６およびコンテキスト計算器１５７に供給されるようになっている。【００２６】
このうち、２値化器１５１はＡＶＣ規格で定められた手順に従って入力される符号データ１２６1を２進列変換して、２進列データ１５２として出力するようになっている。算術符号化器１５６は、コンテキスト計算器１５７から供給される優勢シンボル１５８とステート番号１５９を利用して、スイッチ１５３から逐次供給される２進列のビン１５５を２値算術符号化する。更に、逐次、更新した優勢シンボル１５８とステート番号１５９をコンテキスト計算器１５７に供給する。ここで、ステート番号１５９とは、ＡＶＣ規格の定めた劣勢シンボルの発生確率に対応する値を格納したテーブルの番号である。【００２７】
コンテキスト計算器１５７は、スイッチ１５３から逐次供給されるシンボルとしてのビン１５５に対応する、格納された優勢シンボル１５８とステート番号１５９を算術符号化器１５６に供給する。また、算術符号化器１５６の２値算術符号化によって更新された優勢シンボル１５８とステート番号１５９を格納するようになっている。【００２８】
スイッチ１５３からはＣＡＢＡＣ器１４２の外部にビン数データ１４５が出力される。また、算術符号化器１５６からはＣＡＢＡＣ器１４２の外部にビットストリーム１０７1が出力される。ビットストリーム１０７1は、図１１に示したようにＶＬＣ器１４３から出力されるビットストリーム１０７2と並列に第２のセレクタ１４４に供給されることになる。【００２９】
図１３は、ＶＬＣ器の構成を具体的に表わしたものである。ＶＬＣ器１４３は、図１１に示した第１のセレクタ１４１を経た符号データ１２６2を入力する可変長符号化器１６１およびテーブル選択器１６２を備えている。【００３０】
このうち可変長符号化器１６１は、テーブル選択器１６２で指定されるテーブル１６３に従って、符号データ１２６2を可変長符号化してビットストリーム１０７2を出力する。テーブル選択器１６２は、予測モード、量子化値等の符号データ１２６2の種類に応じた、可変長符号化テーブル（図示せず）を備えている。そして、可変長符号化テーブルの中から選択したテーブル１６３を可変長符号化器１６１に供給するようになっている。【００３１】
以上説明したような本発明に関連する映像符号化装置１００（図９）によれば、エントロピ符号化にＶＬＣ器１４３（図１１）を利用する場合、入力される符号データ量によって、この映像符号化装置１００のピクチャの符号化完了時間が決定する。【００３２】
一方、エントロピ符号化のためのブロックに図１２に示したＣＡＢＡＣ器１４２を利用する場合、算術符号化器１５６へ入力されるビン１５５の数によって、映像符号化装置１００のピクチャの符号化完了時間を決定するようにする。なお、ＣＡＢＡＣ器１４２以外の他のブロックを使用した場合には、入力データ量が有限であるため、処理時間が一定以内に必ず収まる。【００３３】
Ｈ．２６４／ＡＶＣ規格では、復号側でのピクチャ当たりのエントロピ復号化処理量を制限するために、次の２点を符号化側への制約としている。
（ａ）ピクチャのビット数をＨ．２６４／ＡＶＣ規格の定める値以下となるように符号化制御すること。
（ｂ）ピクチャのビット数とビン数の比率がＨ．２６４／ＡＶＣ規格の定める値以下となるように符号化制御すること。【００３４】
図１３に示したＶＬＣ器１４３は、符号データ１２６2の単位で処理が可能であり、図１２に示したＣＡＢＡＣ器１４２よりも処理が単純である。このため、その処理が一定時間以内に必ず収まるものと仮定すると、映像符号化装置１００を、ピクチャのビン数がその処理時間における算術符号化器１５６の最大処理ビン数を超えないように、符号化制御する必要がある。【００３５】
その具体的な符号化制御方法としては、次のような方法がある。
（ｉ）ビン数が多いピクチャについては、マクロブロックの入力画像をそのままビットストリーム出力するようにした、ＰＣＭ（Pulse-Code Modulation）モードを利用して符号化する方法（特許文献１、非特許文献２）。
（ｉｉ）ピクチャの符号データに対してＣＡＢＡＣ器１４２とＶＬＣ器１４３を並列に動作させる。そして、ＣＡＢＡＣ器１４２の処理が所定の時間内に終わった場合には、このＣＡＢＡＣ器１４２の符号化出力を選択して符号化する。それ以外の場合にはＶＬＣ器１４３の符号化出力を選択して符号化するとする方法（非特許文献３）。
【特許文献１】特開２００４−１３５２５１号公報（第０１２１段落〜第０１２４段落、図１）
【非特許文献１】ＩＳＯ/ＩＥＣ  １４４９６−１０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ
【非特許文献２】蝶野ら、"ローカル復号画像を用いたＨ.２６４ ＭＢ上限ビット遵守ＰＣＭ符号化方法," 画像符号化シンポジウム、Ｐ５-１７、２００６年１１月
【非特許文献３】岡本ら、"高解像度用Ｈ.２６４／ＡＶＣにおけるエントロピ符号化手法," 電子情報通信学会総合大会、Ｄ−１１−２、２００７年３月
【発明の開示】
【発明が解決しようとする課題】
【００３６】
このうちの前者のＰＣＭモードを利用する方法は、１つのマクロブロックのビン数を制約する用途において有効である。しかしながら、ピクチャのビン数を制約する用途（すなわち、多数のマクロブロックのビン数を制約する用途）では、画質劣化の課題がある。なぜならば、ＰＣＭモードは出力ビット数が大きいために、ピクチャ内で多用すると前記した（ｉ）の方法を実現するために、ＰＣＭモードを多用した後に符号化されるマクロブロックが粗量子化されるからである。【００３７】
一方、後者の方法としてのＣＡＢＡＣ器１４２とＶＬＣ器１４３を並列に動作させた後に、その符号化出力を選択する方法では、事後選択となる。このため、ピクチャよりも細かい単位での符号量制御ができない、といった映像符号化装置１００としての致命的な問題がある。なぜならば、その選択した符号化出力が分かるまで、エントロピ符号化器１１５に入力された符号データ１２６に対するビット数が分からないからである。【００３８】
なお、特許文献１においても、画像を符号化した符号データのビン数が所定量よりも多い場合、前記した画像を異なる符号化パラメータ（例えば、異なる量子化パラメータ）で、（そのビン数が所定量よりも少なくなるように）別途符号化した符号データのビットストリームを代わりに出力する方法を提案している。しかしながら、この方法も事後選択となるため、前記した致命的な問題が同様に存在する。【００３９】
本発明は、以上説明したような実状に鑑みたものであり、画質劣化の程度が小さく、かつ、ピクチャよりも細かい単位での符号量制御が可能であり、ピクチャの符号化完了時間を一定時間に保証できる映像符号化装置、映像符号化方法および映像符号化プログラムを提供することにある。
【課題を解決するための手段】
【００４０】
本発明では、（イ）画像ブロックを変換量子化して符号データを生成する符号データ生成手段と、（ロ）符号データを可変長符号化する可変長符号化手段と、（ハ）符号データを２値シンボルに変換し２値算術符号化する算術符号化手段と、（ニ）複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定手段と、（ホ）２値シンボル数推定手段の推定した総数に応じて、可変長符号化手段と算術符号化手段のいずれか一方を符号データの符号化用に選択する符号化選択手段とを映像符号化装置に具備させる。【００４１】
すなわち本発明では、符号化対象とするピクチャの画像のビン数を推定し、推定されたビン数および可変長符号化手段と算術符号化手段の圧縮比率を利用してピクチャのエントロピ符号化とピクチャの目標ビット数（割当ピクチャレート）を制御することで、前記した目的を達成している。【００４２】
また本発明では、（イ）画像ブロックを変換量子化して符号データを生成する符号データ生成プロセスと、（ロ）複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定プロセスと、（ハ）２値シンボル数推定プロセスで推定した総数に応じて、符号データの符号化用の手法を、符号データを可変長符号化する可変長符号化と、符号データを２値シンボルに変換し２値算術符号化する算術符号化から選択する符号化選択プロセスとを映像符号化方法に具備させる。【００４３】
すなわち本発明では、前記した映像符号化装置と同様の技術思想をプロセスの推移として表わしている。【００４４】
また本発明では、映像符号化プログラムとして、（イ）画像ブロックを変換量子化して符号データを生成する符号データ生成処理と、（ロ）複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定処理と、（ハ）２値シンボル数推定処理で推定した総数に応じて、符号データの符号化用の手法を、符号データを可変長符号化する可変長符号化と、符号データを２値シンボルに変換し２値算術符号化する算術符号化から選択する符号化選択処理とをコンピュータに実行させることを特徴としている。【００４５】
すなわち本発明では、前記した映像符号化装置と同様の技術思想を、コンピュータの実行するプログラムとして表わしている。
【発明の効果】
【００４６】
以上説明したように本発明は、符号データを可変長符号化する可変長符号化処理と、符号データを２値シンボルに変換し２値算術符号化する算術符号化処理を２値シンボル数推定処理で推定した総数に応じて選択することにした。これにより、画質劣化が小さく、なおかつ、符号量制御が可能で、ピクチャの符号化完了時間を一定時間に保証することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の第１の実施例における映像符号化装置の構成を表わしたブロック図である。
【図２】第１の実施例でピクチャの符号化の開始から終了までの映像符号化装置の動作を示した流れ図である。
【図３】本発明の第２の実施例における映像符号化装置の構成を表わしたブロック図である。
【図４】第２の実施例でピクチャの仮符号化に関する映像符号化装置の動作を示した流れ図である。
【図５】第２の実施例でピクチャ本符号化に関する映像符号化装置の動作を示した流れ図である。
【図６】本発明の第３の実施例における映像符号化装置の構成を表わしたブロック図である。
【図７】第３の実施例でピクチャの仮符号化に関する映像符号化装置の動作を示した流れ図である。
【図８】第３の実施例でピクチャの本符号化に関する映像符号化装置の動作を示した流れ図である。
【図９】本発明の関連技術の映像符号化装置の構成を示したブロック図である。
【図１０】ＱＣＩＦの映像フォーマットの画像フレームを表わした説明図である。
【図１１】図９におけるエントロピ符号化器の構成を具体的に表わしたブロック図である。
【図１２】図１１におけるＣＡＢＡＣ器の構成を具体的に表わしたブロック図である。
【図１３】図１１におけるＶＬＣ器の構成を具体的に表わしたブロック図である。
【符号の説明】
【００４８】
１４２（２４２）  ＣＡＢＡＣ器
１４３（２４３）  ＶＬＣ器
２００、４００、６００  映像符号化装置
２０２  マクロブロックバッファ
２０４  マクロブロック符号化器
２０５、４２２  符号量制御器
２０８、４２４、６０８  シンボル数推定器
２０９  ビン数
２１０、４２５、６０９  エントロピ符号化選択器
２１２  予測器
２１４  変換・量子化器
２１５  エントロピ符号化器
２３２  エントロピ符号化モード選択信号
２７１、４３１、６７１  ＣＰＵ
２７２、４３２、６７２  プログラム格納部
４０４  仮符号化器
４０５  本符号化器
６０４  仮並列符号化器
６０５  本並列符号化器
６１１  仮マクロブロック符号化器
６２１  本マクロブロック符号化器
【発明を実施するための最良の形態】
【００４９】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００５０】
図１は、本発明の第１の実施例における映像符号化装置の構成を表わしたものである。第１の実施例の映像符号化装置２００は、圧縮対象となる映像データ２０１の画像フレームを順次格納する画像フレームバッファ２０２を備えている。この画像フレームバッファ２０２からは、本発明の関連技術の映像符号化装置１００（図９）において説明したマクロブロック単位で映像データ２０３が出力される。この映像データ２０３は、マクロブロック符号化器２０４に入力されて、マクロブロック単位で符号化が行われるようになっている。マクロブロック符号化器２０４には、符号量制御器２０５と、復号ピクチャバッファ２０６が接続されている。【００５１】
画像フレームバッファ２０２には、符号化対象ピクチャのマクロブロックのビン数、すなわちピクチャを構成する複数マクロブロックのビン総数を推定するシンボル数推定器２０８が接続されている。シンボル数推定器２０８は、画像フレームバッファ２０２に格納された符号化対象ピクチャの画像と、符号量制御器２０５における符号化対象ピクチャに対する割当ピクチャレートを読み出して、前記した推定を行うようになっている。【００５２】
シンボル数推定器２０８により推定された符号化対象ピクチャのマクロブロックのビン数２０９は、エントロピ符号化選択器２１０に入力される。エントロピ符号化選択器２１０は、入力されたビン数２０９を利用してエントロピ符号化モードを選択するためのエントロピ符号化モード選択信号２３２を出力するようになっている。【００５３】
マクロブロック符号化器２０４は、図９に示したマクロブロック符号化器１０４と対応する形で、映像データ２０３を入力するマクロブロックバッファ２１１と、これに接続された予測器２１２と、この予測器２１２の出力でマクロブロックバッファ２１１の出力を引き算する演算器２１３と、この演算器２１３の演算結果を符号量制御器２０５の下で変換して量子化する変換・量子化器２１４と、この変換・量子化器２１４の出力側に設けられたエントロピ符号化器２１５および逆量子化・逆変換器２１６および逆量子化・逆変換器２１６の出力側に設けられた加算器２１７によって構成されている。このマクロブロック符号化器２０４からは符号化されたビットストリーム２０７が出力されるようになっている。【００５４】
本実施例の映像符号化装置２００は、ＣＰＵ（Central Processing Unit）２７１と、このＣＰＵ２７１の実行する制御プログラムを格納したハードディスク、光ディスク等のプログラム格納部２７２と、ＣＰＵ２７１がプログラム格納部２７２に格納された制御プログラムを実行するときに一時的に各種のデータを格納する半導体メモリ等の作業用メモリ２７３を備えている。図１に示した各種の装置構成部品の少なくとも一部は、ＣＰＵ２７１がプログラム格納部２７２に格納された制御プログラムを実行することによってソフトウェア的に実現する機能部品で構成することができる。【００５５】
以上のような構成の第１の実施例の映像符号化装置２００で符号量制御器２０５は、エントロピ符号化選択器２１０が設定するエントロピ符号化モード選択信号２３２の指定内容に応じて割当ピクチャレートを設定するようになっている。このため、図９に示した符号量制御器１０５と動作が異なる。すなわち、図９に示した符号量制御器１０５ではマニュアルによる設定が行われ、通常はプロファイルに従って、図１１におけるＣＡＢＡＣ器１４２あるいはＶＬＣ器１４３に対応するＣＡＢＡＣ器２４２あるいはＶＬＣ器２４３の一方を固定的に選択するようになっている。【００５６】
本発明の第１の実施例のマクロブロック符号化器２０４は、マクロブロックバッファ２１１やエントロピ符号化器２１５等の構成部品が図９に示したマクロブロック符号化器２０４と実質的に同一である。したがって、これらの構成部品については、図１１〜図１３をそのまま適用する。また、本実施例では、これらの図の構成部品を表わす数字の１００の位の「１」を「２」に置き換えて説明を行う。【００５７】
ところで、本実施例の映像符号化装置２００は、ピクチャの符号化開始に際して、シンボル数推定器２０８とエントロピ符号化選択器２１０を動作させてエントロピ符号化モード選択信号２３２の信号内容を決定する。エントロピ符号化モード選択信号２３２の信号内容の決定後で、かつ、符号化対象ピクチャ内のマクロブロックの符号化開始前に、本実施例の映像符号化装置２００は、符号量制御器２０５を動作させて、割当ピクチャレートを更新する。割当ピクチャレートの更新後、映像符号化装置２００は、マクロブロック符号化器２０４を動作させて、符号化対象ピクチャ内のマクロブロックを逐次符号化する。そして、ピクチャ内のすべてのマクロブロックを符号化した後、映像符号化装置２００は、所定の処理を行い、次のピクチャの符号化に移るようになっている。【００５８】
図２は、ピクチャの符号化の開始から終了までの本実施例の映像符号化装置の動作を示したものである。図１および図９〜図１３と共に説明を行う。【００５９】
本実施例の映像符号化装置２００は、ピクチャの符号化が開始すると、まずシンボル数推定器２０８を使用してシンボル数推定処理を行う（ステップＳ３０１）。図示しない映像データ供給源から映像データ２０１が送られてくるピクチャ符号化開始に際して、画像フレームバッファ２０２に格納された符号化対象ピクチャの輝度画素データをｓｒｃ[ｙ][ｘ]（ただし０≦ｘ≦ｗｉｄｔｈ−１、０≦ｙ≦ｈｅｉｇｈｔ−１）とする。【００６０】
ここで、「ｘ」はピクチャ内の画素の水平位置であり、「y」はピクチャ内の画素の垂直位置である。また、「ｗｉｄｔｈ」はピクチャの水平画素数であり、「ｈｅｉｇｈｔ」はピクチャの垂直画素数であるとする。【００６１】
ステップＳ３０１のシンボル数推定処理で、シンボル数推定器２０８は、輝度画素データｓｒｃ［ｙ］［ｘ］からビン数を推定する。このために、この輝度画素データｓｒｃ［ｙ］［ｘ］を用いてマクロブロックごとのアクテビティｍｂ＿ａｃｔ［ｉ］を次の（１）式で計算する。【００６２】
【数１】
2008142956.tif 000003
【００６３】
ただし、この（１）式中の「ａｖｅ［ｉ］」は、次の（２）式で表わされる。（１）式から明らかなように、アクティビディはマクロブロックの画素値のばらつきである。よって、アクティビディの代わりに、マクロブロックの画素値の標準偏差あるいは分散を利用することも考えられる。【００６４】
【数２】
2008142956.tif 000004
【００６５】
これら（１）式および（２）式中で、「ｉ」はピクチャ内のラスタスキャン順でのマクロブロックアドレスである。また、「ｍｂｘ（ｉ）」はマクロブロックアドレスｉに対応するマクロブロックのピクチャ内での水平位置であり、「ｍｂｙ（ｉ）」はマクロブロックアドレスｉに対応するマクロブロックのピクチャ内での垂直位置である。【００６６】
ステップＳ３０１のシンボル数推定処理では、続いて、マクロブロックごとのアクテビティ「ｍｂ＿ａｃｔ［ｉ］」を用いて、符号化対象ピクチャの推定ビン数複雑度ｅｐｉｃ＿ｂｉｎ＿ｘを、次の（３）式で計算する。【００６７】
ｅｐｉｃ＿ｂｉｎ＿ｘ＝α×ｐｉｃ＿ａｃｔ＋β    ……（３）【００６８】
ここで、「ｐｉｃ＿ａｃｔ」は、次の（４）式で表わされる。
【数３】
2008142956.tif 000005
【００６９】
これら（３）式および（４）式で、「α」と「β」は、アクテビティに対するＩピクチャビン数複雑度の回帰直線の傾きと切片をそれぞれ表わしている。また、「ｐｉｃ＿ｍｂ＿ｓｉｚｅｓ」は、ピクチャが含むマクロブロックの個数（ｃ＝（ｗｉｄｔｈ＊ｈｅｉｇｈｔ）/２５６））である。ここでＩピクチャビン数複雑度ｐｉｃ＿ｂｉｎ＿ｘとは、符号化対象ピクチャをＩピクチャとして符号化した際の、ピクチャのビン数ｐｉｃ＿ｂｉｎとそのマクロブロックの平均量子化ステップサイズｐｉｃ＿ｑｓの積（ｐｉｃ＿ｂｉｎ＿ｘ＝ｐｉｃ＿ｂｉｎ＊ｐｉｃ＿ｑｓ）である。【００７０】
ステップＳ３０１のシンボル数推定処理の最後では、符号化対象ピクチャの推定ビン数複雑度ｅｐｉｃ＿ｂｉｎ＿ｘと、符号化対象ピクチャに対する割当ピクチャレートｐｉｃ＿ｒａｔｅを用いて、符号化対象ピクチャの推定ビン数ｅｐｉｃ＿ｂｉｎを次の（５）式で計算する。【００７１】
ｅｐｉｃ＿ｂｉｎ＝ｍａｘ（ｅｐｉｃ＿ｂｉｎ＿ｃｐｌｘ／ｑｓ＿ｒｃ，γ×ｐｉｃ＿ｒａｔｅ）    ……（５）【００７２】
ここで、「ｑｓ＿ｒｃ」は、次の（６）式で表わされる。【００７３】
ｑｓ＿ｒｃ＝ｐｉｃ＿ｘ／ｐｉｃ＿ｒａｔｅ    ……（６）【００７４】
これら（５）式および（６）式で、ピクチャ複雑度ｐｉｃ＿ｘは、後に説明する符号化対象ピクチャと同じピクチャタイプであり、最後に符号化されたピクチャの発生ピクチャレートｌａｓｔ＿ｐｉｃ＿ｒａｔｅとそのマクロブロックの平均量子化ステップサイズｌａｓｔ＿ｐｉｃ＿ｑｓの積である。また、「γ」は、シンボル数ビンとそのビット数ビットの比率（γ＝ビン／ビット）である。ただし、「γ」は１よりも大きな数である。「γ」はピクチャタイプ別の統計的な比率であってもよいし、最後に符号化したピクチャのデータからピクチャタイプ別に計算した比率であってもよい。【００７５】
以上のようにしてステップＳ３０１のシンボル数推定処理が終了したら、次にエントロピ符号化選択処理が行われる（ステップＳ３０２）。このステップＳ３０２で、エントロピ符号化選択器２１０は、符号化対象ピクチャの推定ビン数ｅｐｉｃ＿ｂｉｎを利用してエントロピ符号化モード選択信号２３２を選択する。そして、ＣＡＢＡＣ器２４２（図１２参照）を用いて該当のピクチャを符号化した際の、平均量子化ステップサイズｑｓ＿ｃａｂａｃを次の（７）式を用いて計算する。【００７６】
ｑｓ＿ｃａｂａｃ＝γ×ｐｉｃ＿ｘ／ｍｉｎ（ｅｐｉｃ＿ｂｉｎ，ｐｐｉｃ＿ｂｉｎ）    ……（７）【００７７】
ここで、「ｐｐｉｃ＿ｂｉｎ」は、次の（８）式で表わされる。【００７８】
ｐｐｉｃ＿ｂｉｎ＝ｐｍｂ＿ｂｉｎ×ｐｉｃ＿ｓｉｚｅ＿ｍｂｓ    ……（８）【００７９】
これら（７）式および（８）式で、「ｐｍｂ＿ｂｉｎ」は、エントロピ符号化器２１５のＣＡＢＡＣ器２４２内の算術符号化器２５６（図１２参照）が１マクロブロックの符号化時間で処理できるビン数である。このことから、平均量子化ステップサイズｑｓ＿ｃａｂａｃは、所定時間内に処理できるビン数によって上限ビット数を課した条件下での、ＣＡＢＡＣ器２４２による映像品質となる。平均量子化ステップサイズｑｓ＿ｃａｂａｃは、その値が小さいほど、映像品質がよくなる。【００８０】
ステップＳ３０２のエントロピ符号化選択処理では、続いてＶＬＣ器２４３を用いて該当するピクチャを符号化した際の、平均量子化ステップサイズｑｓ＿ｖｌｃを、次の（９）式を用いて計算する。【００８１】
ｑｓ＿ｖｌｃ＝λ×ｐｉｃ＿ｘ／ｐｉｃ＿ｒａｔｅ    ……（９）【００８２】
この（９）式で、「λ」は、ピクチャの符号データをＶＬＣ器２４３で処理した際のビット数ｖｌｃ＿ｂｉｔと算術符号化した際のビット数ｃａｂａｃ＿ｂｉｔの圧縮比率（λ＝ｖｌｃ＿ｂｉｔ/ｃａｂａｃ＿ｂｉｔ）である。また、「λ」は１よりも大きな数であり、ピクチャタイプ別の統計的な比率である。「λ」の定義から了解されるように、平均量子化ステップサイズｑｓ＿ｖｌｃは、ＶＬＣ器２４３による圧縮効率低下を課した条件下での、ＶＬＣ器２４３による映像品質となる。【００８３】
ステップＳ３０２のエントロピ符号化選択処理の最後では、平均量子化ステップサイズｑｓ＿ｃａｂａｃと平均量子化ステップサイズｑｓ＿ｖｌｃを用いて、次の（１０）式でエントロピ符号化モード選択信号２３２（ｍｏｄｅ）を決定する。【００８４】
【数４】
2008142956.tif 000006
【００８５】
以上のようにしてステップＳ３０２のエントロピ符号化選択処理を終了したら、次にピクチャレート設定処理を実行する（ステップＳ３０３）。このピクチャレート設定で符号量制御器２０５は、エントロピ符号化モード選択信号２３２（ｍｏｄｅ）に基づいて符号化対象の割当ピクチャレートｐｉｃ＿ｒａｔｅを、次の（１１）式を用いて更新する。【００８６】
【数５】
2008142956.tif 000007
【００８７】
なお、割当ピクチャレートｐｉｃ＿ｒａｔｅを達成するための量子化ステップサイズｑｓ＿ｒｃは、次の（１２）式を用いて計算することができる。【００８８】
【数６】
2008142956.tif 000008
【００８９】
以上のようにしてステップＳ３０３のピクチャレート設定処理を終了したら、続いてマクロブロック符号化処理を実行する（ステップＳ３０４）。このマクロブロック符号化処理で、マクロブロック符号化器２０４は、決定したエントロピ符号化モード選択信号２３２を用いて符号化対象ピクチャの１つのマクロブロックを符号化する。【００９０】
このとき、符号量制御器２０５は、図９に示した映像符号化装置１００の符号量制御器１０５と同様に、エントロピ符号化器２１５が出力するビットストリーム２０７を監視する。そして、エントロピ符号化器２１５から出力されるビットストリーム２０７のビット数が割当ピクチャレートよりも多くなれば、量子化ステップサイズを大とする量子化パラメータを出力する。この一方で、符号量制御器２０５は、ビットストリーム２０７のビット数が割当ピクチャレートよりも少なくなれば、量子化ステップサイズを小とする量子化パラメータを出力する。【００９１】
このようにしてステップＳ３０４のマクロブロック符号化処理が行われたら、次のステップＳ３０５に処理が進む。ステップＳ３０５では、符号化対象ピクチャのすべてのマクロブロックの符号化が完了したか否かを判断する。完了していなければ（Ｎ）、ステップＳ３０４に戻って処理を行う。符号化対象ピクチャのすべてのマクロブロックの符号化が完了した場合には（ステップＳ３０５：Ｙ）、ピクチャ符号化の終了に際して、決定したエントロピ符号化モード選択信号２３２（ｍｏｄｅ）に応じて、ピクチャ複雑度ｐｉｃ＿ｘを次の（１３）式を用いて更新して（ステップＳ３０６）、これにより一連のピクチャ符号化処理を終了することになる（エンド）。【００９２】
【数７】
2008142956.tif 000009
【００９３】
ここで、「ｐｉｃ＿ａｃｔ＿ｒａｔｅ」は、現在符号化したピクチャの発生ビット数である。また、「ｑｓ＿ｐｉｃ」は、現在符号化したピクチャのマクロブロックの平均量子化ステップサイズである。すでに説明したように、ピクチャ複雑度ｐｉｃ＿ｘは、ピクチャタイプごとにその値を記憶しておくものとする。【００９４】
以上説明したように、本発明の第１の実施例の映像符号化装置２００は、図２に示したピクチャの符号化に関する処理を外部から入力される映像データ２０１に対して逐次適用することで、ビットストリーム２０７を生成することができる。すなわち本実施例の映像符号化装置２００で各ピクチャは、次のような符号化処理を行うことになる。【００９５】
（ａ）ステップＳ３０３以前の処理において、割当ピクチャレートに対応する推定シンボル数が、算術符号化器２５６が所定の時間で処理できるシンボル数以下である場合。
この場合には、通常通りエントロピ符号化器２１５で、ＣＡＢＡＣ器２４２を用いた符号化が行われる。【００９６】
（ｂ）ステップＳ３０３以前の処理において、割当ピクチャレートに対応する推定シンボル数が、算術符号化器２５６が所定の時間で処理できるシンボル数より多く、なおかつ、算術符号化器２５６が所定の時間で処理できるシンボル数に対応するビット数で制限したＣＡＢＡＣ器２４２による映像品質がＶＬＣ器２４３による映像品質よりも良い場合。【００９７】
この場合には、算術符号化器２５６が所定の時間で処理できるシンボル数に対応する割当ピクチャレートで制限されたＣＡＢＡＣ器２４２によって符号化される。【００９８】
（ｃ）その他の場合、すなわちステップＳ３０３以前の処理において、割当ピクチャレートに対応する推定シンボル数が、算術符号化器２５６が所定の時間で処理できるシンボル数より多く、なおかつ、算術符号化器２５６が所定の時間で処理できるシンボル数に対応するビット数で制限したＣＡＢＡＣ器２４２による映像品質がＶＬＣ器２４３による映像品質よりも悪い場合。
この場合には、ＶＬＣ器２４３によって符号化される。【００９９】
このように本実施例の映像符号化装置２００では、符号化の制御を行うことで、画質劣化が小さく、なおかつ、ピクチャよりも細かい単位での符号量制御が可能であり、ピクチャの符号化完了時間を一定時間に保証できる映像符号化の実現が可能になる。
【実施例２】
【０１００】
図３は、本発明の第２の実施例における映像符号化装置の構成を表わしたものである。第２の実施例の映像符号化装置４００は、圧縮対象となる映像データ４０１の画像フレームを順次格納する第１の画像フレームバッファ４０２1を備えている。この画像フレームバッファ４０２1から出力されるマクロブロック単位の第１の映像データ４０３1は、仮符号化器４０４と第２の画像フレームバッファ４０２2に入力されるようになっている。第２の画像フレームバッファ４０２2から出力されるマクロブロック単位の第２の映像データ４０３2は、本符号化器４０５に入力されるようになっている。【０１０１】
仮符号化器４０４は、第１の映像データ４０３1を入力する仮マクロブロック符号化器４１１と、これに接続された仮符号量制御器４１２を備えている。また、仮符号化器４０４の外部には、仮マクロブロック符号化器４１１と接続された復号ピクチャバッファ４１３が配置されている。また、仮マクロブロック符号化器４１１には、ＶＬＣ器選択信号４１４が供給されるようになっている。【０１０２】
本符号化器４０５は、マクロブロック符号化器４２１と、これに接続された符号量制御器４２２を備えている。本符号化器４０５の外部には、マクロブロック符号化器４２１と接続された復号ピクチャバッファ４２３と、符号量制御器４２２に接続されたシンボル数推定器４２４およびエントロピ符号化選択器４２５が配置されている。マクロブロック符号化器４２１からは、符号化されたビットストリーム４２６が出力されるようになっている。【０１０３】
第２の実施例の映像符号化装置４００は、ＣＰＵ４３１と、このＣＰＵ４３１の実行する制御プログラムを格納したハードディスク、光ディスク等のプログラム格納部４３２と、ＣＰＵ４３１がプログラム格納部４３２に格納された制御プログラムを実行するときに一時的に各種のデータを格納する半導体メモリ等の作業用メモリ４３３を備えている。図３に示した各種の装置構成部品の少なくとも一部は、ＣＰＵ４３１がプログラム格納部４３２に格納された制御プログラムを実行することによってソフトウェア的に実現する機能部品で構成することができる。【０１０４】
このような第２の実施例の映像符号化装置４００は、図９に示した映像符号化装置１００と本発明の第１の実施例における映像符号化装置２００を組み合わせた回路構成となっている。すなわち、仮マクロブロック符号化器４１１は図９に示したマクロブロック符号化器１０４と同一の回路構成となっている。具体的には、図３における第１の画像フレームバッファ４０２1から出力される第１の映像データ４０３1は、仮マクロブロック符号化器４１１内の、図９に示すマクロブロックバッファ１１１と同一の回路（図示しないマクロブロックバッファ１１１Ａ）に供給される。仮符号量制御器４１２は、図９における符号量制御器１０５と同一の回路となっており、図９に示す変換・量子化器１１４（図示しない変換・量子化器１１４Ａ）およびエントロピ符号化器１１５（図示しないエントロピ符号化器１１５Ａ）と接続されている。また、図９に示すエントロピ符号化器１１５（図示しないエントロピ符号化器１１５Ａ）から出力される符号化されたビットストリーム１０７と同一に符号化されたビットストリーム４４１が仮マクロブロック符号化器４１１から外部に出力され、シンボル数推定器４２４に入力されるようになっている。更に、図９に示す復号ピクチャバッファ１０６と同一の復号ピクチャバッファ４１３は、加算器１１７および予測器１１２とそれぞれ同一の回路（図示しない加算器１１７Ａおよび予測器１１２Ａ）と接続されるようになっている。【０１０５】
ただし、図９に示したエントロピ符号化器１１５にはエントロピ符号化モード選択信号１３２が供給されるが、本実施例の場合にはエントロピ符号化器１１５ＡにＶＬＣ器選択信号４１４が供給される点が相違する。このように本実施例の仮符号化器４０４の場合には、そのエントロピ符号化の処理時間が一定以内に必ず収まるＶＬＣ器１４３（図１１）に対応する図示しないＶＬＣ器２４３Ａが選択されるような設定を行うようにしている。なお、ＶＬＣ器２４３Ａを選択せずに、代わりにＣＡＢＡＣ器１４２（図１２）に対応する図示しないＣＡＢＡＣ器２４２Ａを選択するような設定も可能である。ただし、この場合にはビン数を監視して、所定の処理時間で算術符号化が終了するように符号量の制御を行うことになる。【０１０６】
一方、本符号化器４０５のマクロブロック符号化器４２１は、図１に示したマクロブロック符号化器２０４と同一構成となっている。すなわち、第２の画像フレームバッファ４０２2から出力される第２の映像データ４０３2は、図１におけるマクロブロック単位で映像データ２０３と同様に図１に示すマクロブロックバッファ２１１に対応する図示しないマクロブロックバッファ２１１Ａに入力される。また、符号量制御器４２２は、図１に示す符号量制御器２０５と同様に、変換・量子化器２１４に対応する図示しない変換・量子化器２１４Ａと、エントロピ符号化器２１５に対応する図示しないエントロピ符号化器２１５Ａに接続されている。更に、復号ピクチャバッファ４２３は図１に示す復号ピクチャバッファ２０６と同様に、予測器２１２に対応する図示しない予測器２１２Ａと、逆量子化・逆変換器２１６に対応する図示しない逆量子化・逆変換器２１６Ａに接続されている。そして、図１に示すエントロピ符号化器２１５に対応するエントロピ符号化器２１５Ａから、図１のビットストリーム２０７に対応するビットストリーム４２６が出力されることになる。【０１０７】
このような構成の本実施例の映像符号化装置４００では、仮符号化器４０４が第１の画像フレームバッファ４０２1から出力される符号化対象のピクチャのマクロブロックを逐次符号化してビットストリーム４４１を出力する。仮符号化器４０４が出力するビットストリーム４４１のビット数を先行符号化情報と呼ぶことにする。【０１０８】
復号ピクチャバッファ４１３は、仮符号化器４０４の復号画像を格納し、この復号画像によって再構成される復号画像ピクチャを管理することになる。【０１０９】
図１のシンボル数推定器２０８と同一構成のシンボル数推定器４２４は、仮符号化器４０４から供給されるビットストリーム４４１のビット数を計測する。そして、仮符号化器４０４がすべてのマクロブロックを符号化（仮符号化）し終えたとき、この計測したビット数に基づいて符号化対象ピクチャのマクロブロックのビン数、すなわちピクチャを構成する複数マクロブロックのビン総数を推定する。【０１１０】
図１に示すエントロピ符号化選択器２１０と同一構成のエントロピ符号化選択器４２５は、シンボル数推定器４２４の推定した前記したビン数を利用してエントロピ符号化モード選択信号４２８をいずれか一方に選択する。符号量制御器４２２は、エントロピ符号化選択器４２５が設定するエントロピ符号化モード選択信号４２８に基づいて割当ピクチャレートを設定する。【０１１１】
第２の画像フレームバッファ４０２2は、仮符号化器４０４がすべてのマクロブロックを符号化し終えたとき、第１の画像フレームバッファ４０２1から符号化対象画像を読み込んで、符号化対象ピクチャの符号化（本符号化）開始に備える。【０１１２】
マクロブロック符号化器４２１および符号量制御器４２２からなる本符号化器４０５は、第２の画像フレームバッファ４０２2の符号化対象ピクチャのマクロブロックを逐次符号化し、ビットストリーム４２６を出力することになる。【０１１３】
次に第２の実施例の映像符号化装置４００の全体の動作を簡単に述べる。【０１１４】
ピクチャの符号化開始に際して、映像符号化装置４００は、第１の画像フレームバッファ４０２1と仮符号化器４１１を動作させて、符号化対象ピクチャを仮符号化する。符号化対象ピクチャの仮符号化の後、映像符号化装置４００は、シンボル数推定器４２４とエントロピ符号化選択器４２５を動作させてエントロピ符号化モード選択信号４２８を決定する。エントロピ符号化モード選択信号４２８の決定後で、かつ、符号化対象ピクチャ内のマクロブロックの本符号化開始前、映像符号化装置４００は、符号量制御器４２２を動作させて、割当ピクチャレートを更新する。割当ピクチャレートの更新後、映像符号化装置４００は、第２の画像フレームバッファ４０２2と本符号化器４０５を動作させて、符号化対象ピクチャ内を本符号化する。前記したピクチャ内のすべてのマクロブロックを符号化した後、映像符号化装置４００は、所定の処理を行い、次のピクチャの符号化に移ることになる。【０１１５】
図４は、ピクチャの仮符号化に関する映像符号化装置の動作を示したものである。図３と共に説明する。【０１１６】
ピクチャの仮符号化が開始すると、まず、仮符号量制御器４１２にピクチャ仮符号化の割当ピクチャレートｐｒｅ＿ｐｉｃ＿ｒａｔｅを設定する（ステップＳ５０１）。この割当ピクチャレートｐｒｅ＿ｐｉｃ＿ｒａｔｅを達成するための量子化ステップサイズｑｓ＿ｒｃは、次の（１４）式で計算することができる。【０１１７】
ｑｓ＿ｒｃ＝λ×ｐｉｃ＿ｘ／ｐｒｅ＿ｐｉｃ＿ｒａｔｅ    ……（１４）【０１１８】
パラメータの設定がこのようにして終了したら、次に仮符号化器４０４は、エントロピ符号化モードとしてＶＬＣ器１４３（図１１）に対応する前記したＶＬＣ器２４３Ａを用いて符号化対象ピクチャの１つのマクロブロックを仮符号化する（ステップＳ５０２）。次に仮符号化器４０４は、符号化対象ピクチャのすべてのマクロブロックの仮符号化が完了したか否かを判断する（ステップＳ５０３）。仮符号化が完了していなければ（Ｎ）、ステップＳ５０２に戻り、マクロブロックの仮符号化を続行する。【０１１９】
これに対して、仮符号化が完了していれば（ステップＳ５０３：Ｙ）、仮符号化ピクチャ複雑度ｐｒｅ＿ｐｉｃ＿ｘを次の式（１５）で更新して（ステップＳ５０４）、ピクチャ仮符号化を終了する（エンド）。【０１２０】
ｐｒｅ＿ｐｉｃ＿ｘ＝ｐｉｃ＿ａｃｔ＿ｒａｔｅ×ｑｓ＿ｐｉｃ    ……（１５）【０１２１】
ここで、「ｐｉｃ＿ａｃｔ＿ｒａｔｅ」は現在仮符号化したピクチャの発生ビット数、「ｑｓ＿ｐｉｃ」は現在仮符号化したピクチャのマクロブロックの平均量子化ステップサイズである。【０１２２】
図５は、ピクチャ本符号化に関する映像符号化装置の動作を示したものである。図３と共に説明する。【０１２３】
ピクチャ本符号化開始に際して、第２の画像フレームバッファ４０２2は、第１の画像フレームバッファ４０２1に格納された符号化対象ピクチャを読み込んでいる。シンボル数推定器４２４は、図４のステップＳ５０４で更新した仮符号化ピクチャ複雑度ｐｒｅ＿ｐｉｃ＿ｘを用いて、符号化対象ピクチャの推定ビン数を、次の（１６）式で計算する（ステップＳ５２１）。前記したように、仮符号化器４０４から供給されるビットストリーム４４１のビット数をマクロブロックごとに計測して、前記した（１５）式で再計算してもよい。【０１２４】
【数８】
2008142956.tif 000010
【０１２５】
ここで「ｑｓ＿ｒｃ」は、次の（１７）式で求められる。【０１２６】
ｑｓ＿ｒｃ＝ｐｉｃ＿ｘ／ｐｉｃ＿ｒａｔｅ    ……（１７）【０１２７】
以上のようにしてシンボル数の推定が行われたら、エントロピ符号化選択器４２５は、符号化対象ピクチャの推定ビン数ｅｐｉｃ＿ｂｉｎを利用してエントロピ符号化モードを選択する（ステップＳ５２２）。【０１２８】
まず、ＣＡＢＡＣ器（図１２）１４２に対応する図示しないＣＡＢＡＣ器２４２Ａを用いて、該当するピクチャを符号化した際の、平均量子化ステップサイズｑｓ＿ｃａｂａｃを、前記した（７）式で計算する。【０１２９】
ここで「ｑｓ＿ｃａｂａｃ」は、第１の実施例と同様に、所定時間内に処理できるビン数によって上限ビット数を課した条件下での、ＣＡＢＡＣ器２４２Ａによる映像品質である。この「ｑｓ＿ｃａｂａｃ」の値が小さいほど、映像品質がよい。【０１３０】
続いて、ＶＬＣ器２４３Ａを用いて該当するピクチャを符号化した際の、平均量子化ステップサイズｑｓ＿ｖｌｃを前記した（９）式で計算する。この（９）式で「ｑｓ＿ｖｌｃ」は、第１の実施例の場合と同様に、ＶＬＣ器２４３Ａの圧縮効率低下を課した条件下での、ＶＬＣ器２４３Ａによる映像品質である。【０１３１】
最後に、平均量子化ステップサイズｑｓ＿ｃａｂａｃと平均量子化ステップサイズｑｓ＿ｖｌｃを使用し、（１０）式を用いてエントロピ符号化モード選択信号４２８（ｍｏｄｅ）を決定する。【０１３２】
以上のようにしてステップＳ５２２の処理が終了したら、符号量制御器４２２は、エントロピ符号化モード選択信号４２８（ｍｏｄｅ）に基づいて符号化対象の割当ピクチャレートｐｉｃ＿ｒａｔｅを、前記した（１１）式を用いて更新する（ステップＳ５２３）。【０１３３】
なお、割当ピクチャレートｐｉｃ＿ｒａｔｅを達成するための量子化ステップサイズｑｓ＿ｒｃは、前記した（１２）式を用いることで計算できる。【０１３４】
このようにしてステップＳ５２３の処理が終了したら、本符号化器４０５は、決定したエントロピ符号化モード選択信号４２８（ｍｏｄｅ）を用いて符号化対象ピクチャの１つのマクロブロックを本符号化する（ステップＳ５２４）。【０１３５】
このとき、符号量制御器４２２は、第１の実施例の場合と同様に、図９に示すエントロピ符号化器１１５に対応する前記したエントロピ符号化器２１５Ａが出力するビットストリーム１０７Ａ（図示せず）を監視する。そして、出力されるビットストリーム１０７Ａのビット数が割当ピクチャレートよりも多くなれば量子化ステップサイズを大とする量子化パラメータを出力する。また、出力されるビットストリーム１０７Ａのビット数が割当ピクチャレートよりも少なくなれば量子化ステップサイズを小とする量子化パラメータを出力する。【０１３６】
以上のようにしてステップＳ５２４の処理が終了したら、本符号化器４０５は、本符号化対象ピクチャのすべてのマクロブロックの符号化が完了したか否かを判断する（ステップＳ５２５）。完了していなければステップＳ５２４に戻ってマクロブロックの本符号化を続行する。【０１３７】
これに対して、本符号化対象ピクチャのすべてのマクロブロックの符号化が完了していれば（ステップＳ５２５：Ｙ）、決定したエントロピ符号化モード選択信号４２８（ｍｏｄｅ）に応じて、ピクチャ複雑度ｐｉｃ＿ｘを前記した（１３）式で更新して（ステップＳ５２６）、ピクチャ本符号化処理を終了する（エンド）。【０１３８】
ここで、（１３）式における「ｐｉｃ＿ａｃｔ＿ｒａｔｅ」は現在符号化したピクチャの発生ビット数、「ｑｓ＿ｐｉｃ」は現在符号化したピクチャのマクロブロックの平均量子化ステップサイズである。すでに説明したように、ピクチャ複雑度ｐｉｃ＿ｘは、ピクチャタイプごとにその値を記憶しておくものとする。
このように本発明の第２の実施例の映像符号化装置４００は、ピクチャ符号化処理を外部から入力される映像データ４０１に逐次適用することで、これを符号化してビットストリーム４２６を生成することができる。しかも、ＶＬＣを利用する仮符号化器４０４を利用した事前情報を用いることで、本符号化器４０５が符号化対象とするピクチャの画像のビン数を第１の実施例の場合よりも高精度に推定できる。これにより、第１の実施例の映像符号化装置２００よりも画質劣化が小さく、ピクチャの符号化完了時間を一定時間に保証できる映像符号化の実現が可能になる。
【実施例３】
【０１３９】
図６は、本発明の第３の実施例における映像符号化装置の構成を表わしたものである。先に説明した第２の実施例では、図３に示したように１組の仮マクロブロック符号化器４１１とマクロブロック符号器４２１を用いて、１ピクチャを符号化する例を示した。本発明の第３の実施例の映像符号化装置６００では、複数組の仮マクロブロック符号化器とマクロブロック符号器を使用して１ピクチャを符号化するようになっている。【０１４０】
図６はこの具体的な一例を表わしたものであり、３組の仮マクロブロック符号化器とマクロブロック符号器を使用して１ピクチャを符号化するようになっている。この映像符号化装置６００は、圧縮対象となる映像データ６０１の画像フレームを順次格納する第１の画像フレームバッファ６０２１を備えている。この画像フレームバッファ６０２１から出力されるマクロブロック単位の第１の映像データ６０３１は、仮並列符号化器６０４と第２の画像フレームバッファ６０２２に入力されるようになっている。第２の画像フレームバッファ６０２２から出力されるマクロブロック単位の第２の映像データ６０３２は、本並列符号化器６０５に入力されるようになっている。【０１４１】
仮並列符号化器６０４は、第２の実施例における仮マクロブロック符号化器４１１と同一構成の第１〜第３の仮マクロブロック符号化器６１１１〜６１１３と、第２の実施例における仮符号量制御器４１２に対応してこれと同一の動作を行う仮符号量制御器６１２を備えている。第１の画像フレームバッファ６０２１から出力されるマクロブロック単位の第１の映像データ６０３１は、仮並列符号化器６０４内の第１〜第３の仮マクロブロック符号化器６１１１〜６１１３に並列に入力されるようになっている。これら第１〜第３の仮マクロブロック符号化器６１１１〜６１１３は、仮並列符号化器６０４の外に配置され、第２の実施例の復号ピクチャバッファ４１３に対応した復号ピクチャバッファ６０６と接続されている。【０１４２】
本並列符号化器６０５は、第２の実施例における本マクロブロック符号化器４２５と同一構成で同一の動作を行う第１〜第３の本マクロブロック符号化器６２１１〜６２１３と、第２の実施例における符号量制御器４２２に対応する符号量制御器６２２を備えている。第２の画像フレームバッファ６０２２から出力されるマクロブロック単位の第２の映像データ６０３２は、本並列符号化器６０５内の第１〜第３の本マクロブロック符号化器６２１１〜６２１３に並列に入力されるようになっている。これら第１〜第３の本マクロブロック符号化器６２１１〜６２１３は、本並列符号化器６０５の外に配置され、第２の実施例の復号ピクチャバッファ４２３に対応した復号ピクチャバッファ６０７と接続されている。【０１４３】
仮並列符号化器６０４内の第１〜第３の仮マクロブロック符号化器６１１１〜６１１３からそれぞれ出力される符号化されたビットストリーム６３１１〜６３１３は、第２の実施例におけるシンボル数推定器４２４に対応するシンボル数推定器６０８に入力され、シンボル数推定処理が行われるようになっている。シンボル数推定器６０８によって得られた推定されたビン数は、第２の実施例におけるエントロピ符号化選択器４２５に対応するエントロピ符号化選択器６０９に入力され、これから出力されるビットストリームが符号量制御器６２２に供給されるようになっている。【０１４４】
また、本並列符号化器６０５内の第１〜第３の本マクロブロック符号化器６２１１〜６２１３からそれぞれ対応して出力される第１〜第３のビットストリーム６３３1〜６３３3は、多重化器６１０に入力さる。多重化器６１０は第１〜第３のビットストリーム６３３1〜６３３3を多重して、ビットストリーム６３４として出力するようになっている。【０１４５】
この第３の実施例の映像符号化装置６００は、ＣＰＵ６７１と、このＣＰＵ６７１の実行する制御プログラムを格納したハードディスク、光ディスク等のプログラム格納部６７２と、ＣＰＵ６７１がプログラム格納部６７２に格納された制御プログラムを実行するときに一時的に各種のデータを格納する半導体メモリ等の作業用メモリ６７３を備えている。図６に示した各種の装置構成部品の少なくとも一部は、ＣＰＵ６７１がプログラム格納部６７２に格納された制御プログラムを実行することによってソフトウェア的に実現する機能部品で構成することができる。【０１４６】
第１〜第３の仮マクロブロック符号化器６１１１〜６１１３は、第１の画像フレームバッファ６０２１の符号化対象ピクチャを３分割した後の分割画像を１つずつ分担して符号化するようになっている。たとえば、符号化対象ピクチャの映像信号フォーマットが前記したＱＣＩＦであるとする。この場合、第１の仮マクロブロック符号化器６１１１は、（ラスタスキャン順で）連続する最初の３３マクロブロックを符号化する。また、第２の仮マクロブロック符号化器６１１２は続く３３マクロブロックを、更に第３の仮マクロブロック符号化器６１１３は最後の３３マクロブロックを符号化することになる。【０１４７】
仮並列符号化器６０４は、第１の画像フレームバッファ６０２１の符号化対象ピクチャを３マクロブロックずつ並列に符号化する。そして、第１〜第３の仮マクロブロック符号化器６１１１〜６１１３からビットストリーム６３１１〜６３１３を出力する。ここで仮並列符号化器６０４には、そのエントロピ符号化の処理時間が一定以内に必ず収まるＶＬＣ器（図示せず）をエントロピ符号化モードで設定するようにしている。ＶＬＣ器を使用する代わりに図示しないＣＡＢＡＣ器を設定して使用してもよい。ただし、この場合には、第１〜第３の仮マクロブロック符号化器６１１１〜６１１３のそれぞれのビン数を監視して、これら第１〜第３の仮マクロブロック符号化器６１１１〜６１１３が共に所定の処理時間で算術符号化が終了するように符号量制御する必要がある。【０１４８】
なお、仮並列符号化器６０４が出力するビットストリームのビット数を先行符号化情報と呼ぶ。また、復号ピクチャバッファ６０６は、仮並列符号化器６０４の復号画像を格納し、復号画像によって再構成される復号画像ピクチャを管理する。【０１４９】
シンボル数推定器６０８は、仮並列符号化器６０４から供給される第１〜第３の仮マクロブロック符号化器６１１１〜６１１３のビットストリーム６３１１〜６３１３のビット数を計測する。そして、仮並列符号化器６０４がすべてのマクロブロックを符号化し終えたとき、すなわち仮符号化が終了したときに、各ビット数に基づいて、対応する第１〜第３の本マクロブロック符号化器６２１１〜６２１３が符号化対象とする分割画像のビン数を推定することになる。先に示した例では、第１〜第３の本マクロブロック符号化器６２１１〜６２１３が３３マクロブロックずつのビン数を推定する。これは、一般には、分割画像を構成する複数マクロブロックのビン総数を推定することになる。【０１５０】
エントロピ符号化選択器６０９は、シンボル数推定器６０８の推定した各ビン数を利用してエントロピ符号化モードを選択する。符号量制御器６２２は、エントロピ符号化選択器６０９が設定するエントロピ符号化モード選択信号６２８に基づいて割当ピクチャレートを設定する。また、後に計算式と共に詳しく説明するが、第１〜第３の本マクロブロック符号化器６２１１〜６２１３のそれぞれが所定の時間内でエントロピ符号化を完了するように、マクロブロック最小量子化パラメータ（後に示すマクロブロック最小ＱＰ）を計算することになる。【０１５１】
第２の画像フレームバッファ６０２２は、仮並列符号化器６０４がすべてのマクロブロックを符号化し終えたとき、第１の画像フレームバッファ６０２１から符号化対象画像を読み込んで、符号化対象ピクチャの符号化開始に備える。【０１５２】
第１の本マクロブロック符号化器６２１１は、第１の仮マクロブロック符号化器６１１１と対応して第２の画像フレームバッファ６０２２における画像の分割画像を符号化するようになっている。同様に第２の本マクロブロック符号化器６２１２は、第２の仮マクロブロック符号化器６１１２と対応して第２の画像フレームバッファ６０２２における画像の分割画像を符号化し、第３の本マクロブロック符号化器６２１３は、第３の仮マクロブロック符号化器６１１３と対応して第２の画像フレームバッファ６０２２における画像の分割画像を符号化する。【０１５３】
本並列符号化器６０５は、第２の画像フレームバッファ６０２２の符号化対象ピクチャ３マクロブロックずつ並列に符号化する。そして、第１〜第３の本マクロブロック符号化器６２１１〜６２１３それぞれのビットストリームとして第１〜第３のビットストリーム６３３1〜６３３3を出力する。ただし、第１〜第３の本マクロブロック符号化器６２１１〜６２１３は、符号量制御器６２２を経由して設定されるエントロピ符号化モードによって符号データをエントロピ符号化する。また、第１〜第３の本マクロブロック符号化器６２１１〜６２１３は、符号量制御器６２２を経由して設定されるマクロブロック最小ｑｐを利用して、この符号量制御器６２２から供給される量子化パラメータを補正しながら符号化を行う。多重化器６１０は、第１〜第３の本マクロブロック符号化器６２１１〜６２１３から出力される第１〜第３のビットストリーム６３３1〜６３３3を多重化して、外部に出力することになる。【０１５４】
このような第３の実施例の映像符号化装置６００について全体の動作を簡単に述べる。ピクチャの符号化開始に際して、映像符号化装置６００は、第１の画像フレームバッファ６０２１と仮並列符号化器６０４を動作させて、符号化対象ピクチャを仮符号化する。符号化対象ピクチャの仮符号化の後、映像符号化装置６００は、シンボル数推定器６０８とエントロピ符号化選択器６０９を動作させてエントロピ符号化モード選択信号６２８によってエントロピ符号化モードを決定する。エントロピ符号化モードの決定後で、かつ、符号化対象ピクチャ内のマクロブロックの本符号化開始前、映像符号化装置６００は、符号量制御器６２２を動作させて、割当ピクチャレートを更新し、更にマクロブロック最小ｑｐを計算する。割当ピクチャレートの更新後、映像符号化装置６００は、第２の画像フレームバッファ６０２２と本並列符号化器６０５を動作させて、符号化対象ピクチャ内を本符号化する。ピクチャ内のすべてのマクロブロックを符号化した後、映像符号化装置６００は、所定の処理を行い、次のピクチャの符号化に移ることになる。【０１５５】
図７は、ピクチャの仮符号化に関する映像符号化装置の動作を示したものである。図６と共に説明する。【０１５６】
ピクチャの仮符号化が開始すると、まず、仮並列符号化器６０４にピクチャ仮符号化の割当ピクチャレートｐｒｅ＿ｐｉｃ＿ｒａｔｅを設定する（ステップＳ７０１）。割当ピクチャレートｐｒｅ＿ｐｉｃ＿ｒａｔｅを達成するための量子化ステップサイズｑｓ＿ｒｃは、前記した（１４）式を用いて計算することができる。【０１５７】
パラメータの設定がこのようにして終了したら、次に仮並列符号化器６０４は、エントロピ符号化モードとしてＶＬＣ器１４３（図１１）に対応する前記したＶＬＣ器２４３Ａを用いて符号化対象ピクチャの３つのマクロブロックを仮符号化する（ステップＳ７０２）。次に仮並列符号化器６０４は、符号化対象ピクチャのすべてのマクロブロックの仮符号化が完了したか否かを判断する（ステップＳ７０３）。仮符号化が完了していなければ（Ｎ）、ステップＳ７０２に戻り、マクロブロックの仮符号化を続行する。これに対して、仮符号化が完了していれば（ステップＳ７０３：Ｙ）、ピクチャ仮符号化を終了する（エンド）。【０１５８】
図８は、ピクチャの本符号化に関する映像符号化装置の動作を示したものである。図６と共に説明する。【０１５９】
ピクチャ本符号化開始に際して、第２の画像フレームバッファ６０２２は、第１の画像フレームバッファ６０２１に格納された符号化対象ピクチャを読み込んでいる。シンボル数推定器６０８は、第１〜第３の仮マクロブロック符号化器６１１１〜６１１３のビットストリーム６３１１〜６３１３のビット数（ｐｒｅ＿ｒａｔｅ[ｉ],０≦ｉ≦２）を用いて、第１〜第３の本マクロブロック符号化器６２１１〜６２１３が符号化対象とする分割画像の推定ビン数（ｅ＿ｂｉｎ[ｉ],０≦ｉ≦２）を次の（１８）式を用いて計算する。【０１６０】
【数９】
2008142956.tif 000011
【０１６１】
ここで「ｑｓ＿ｒｃ」は、前記した（１７）式で求められる。【０１６２】
以上のようにしてシンボル数の推定が行われたら（ステップＳ７２１）、エントロピ符号化選択器６０９は、第１〜第３の本マクロブロック符号化器６２１１〜６２１３が符号化対象とする分割画像の推定ビン数ｅ＿ｂｉｎ[ｉ]を利用してエントロピ符号化モードを決定する（ステップＳ７２２）。【０１６３】
まず、ＣＡＢＡＣ器（図１２）１４２に対応する前記したＣＡＢＡＣ器２４２Ａを用いて、該当するピクチャを符号化した際の、平均量子化ステップサイズｑｓ＿ｃａｂａｃを、前記した（７）式で計算する。【０１６４】
ここで「ｅｐｉｃ＿ｂｉｎ」は、次の（１９）式で表わされる。【０１６５】
【数１０】
2008142956.tif 000012
【０１６６】
また、「ｐｐｉｃ＿ｂｉｎ」は、前記した（８）式で表わされる。【０１６７】
これら（７）式、（１９）式および（８）式より、「ｑｓ＿ｃａｂａｃ」は、所定時間内に処理できる平均的なビン数によって上限ビット数を課した条件下での、ＣＡＢＡＣ器２４２Ａによる映像品質となる。【０１６８】
続いて、前記したＶＬＣ器２４３Ａを用いて該当するピクチャを符号化した際の、平均量子化ステップサイズｑｓ＿ｖｌｃを（９）式で計算する。【０１６９】
ここで「ｑｓ＿ｖｌｃ」は、第２の実施例の場合と同様に、ＶＬＣ器２４３Ａの圧縮効率低下を課した条件下での、ＶＬＣ器２４３Ａによる映像品質である。【０１７０】
最後に、平均量子化ステップサイズｑｓ＿ｃａｂａｃと平均量子化ステップサイズｑｓ＿ｖｌｃを用いて、（１０）式でエントロピ符号化モード選択信号６２８をいずれか一方に選択する。以上でステップＳ７２２の処理を終了する。【０１７１】
次のステップＳ７２３で符号量制御器６２２は、エントロピ符号化モード選択信号６２８に基づいて符号化対象の割当ピクチャレートｐｉｃ＿ｒａｔｅを（１１）式を用いて更新する。【０１７２】
なお、割当ピクチャレートｐｉｃ＿ｒａｔｅを達成するための量子化ステップサイズｑｓ＿ｒｃは、（１２）式で計算することができる。【０１７３】
以上のようにしてステップＳ７２３の処理を終了したら、次のステップＳ７２４で符号量制御器６２２は、マクロブロック最小ｑｐ（ｍｂ＿ｍｉｎ＿ｑｐ）を次の（２０）式で計算する。【０１７４】
【数１１】
2008142956.tif 000013
【０１７５】
ここで「ｑｓ」、「ｍａｘ＿ｅｍｂ＿ｂｉｎ」、「ｍ＿ｅｍｂ＿ｂｉｎ」および「ｅｍｂ＿ｂｉｎ［ｉ］」は、次の（２１）〜（２４）式で表わされる。【０１７６】
【数１２】
2008142956.tif 000014
【０１７７】
【数１３】
2008142956.tif 000015
【０１７８】
【数１４】
2008142956.tif 000016
【０１７９】
ｅｍｂ＿ｂｉｎ［ｉ］＝ｅｂｉｎ＿ｒａｔｅ［ｉ］／ｓ＿ｍｂｓ    ……（２４）【０１８０】
また、関数ｑｓ２ｑｐ(ｘ)は量子化ステップサイズｘに対応する量子化パラメータを計算する関数であり、「ｍｉｎ＿ｑｓ」は最小量子化パラメータ（ｑｐ=０）に対応する量子化ステップサイズである。（２０）式の計算によって、第１〜第３の本マクロブロック符号化器６２１１〜６２１３が所定時間内に処理できるビン数を超えないように制限するための、マクロブロック最小ｑｐが得られる。【０１８１】
以上のようにしてステップＳ７２４による処理を終了したら、次のステップＳ７２５で本並列符号化器６０５は、決定したエントロピ符号化モード選択信号６２８を用いて符号化対象ピクチャの３つのマクロブロックを本符号化する。【０１８２】
符号量制御器６２２は、第２の実施例の場合と同様に、図９に示すエントロピ符号化器１１５に対応する前記したエントロピ符号化器２１５Ａ（図示せず）が出力するビットストリームを監視し、出力されるビットストリームのビット数が割当ピクチャレートよりも多くなれば、量子化ステップサイズを大とする量子化パラメータを出力する。また、エントロピ符号化器２１５Ａが出力するビットストリームのビット数が割当ピクチャレートよりも少なくなれば、量子化ステップサイズを小とする量子化パラメータを出力する。【０１８３】
ただし、第１〜第３の本マクロブロック符号化器６２１１〜６２１３は、符号量制御器６２２を経由して設定されるマクロブロック最小ｑｐを利用して、符号量制御器６２２から供給される量子化パラメータｍｂ＿ｑｐを、次の（２５）式で補正しながら符号化を行う。【０１８４】
【数１５】
2008142956.tif 000017
【０１８５】
この補正によって、目立つ画質劣化を伴うことなく、第１〜第３の本マクロブロック符号化器６２１１〜６２１３に入力されるビン数が所定時間内に処理できるように制御される。【０１８６】
このようにしてステップＳ７２５のマクロブロックの符号化処理が終了したら、これによって本符号化対象ピクチャのすべてのマクロブロックの符号化が完了したか否かを判断する（ステップＳ７２６）。マクロブロックの符号化が完了していない場合には、ステップＳ７２５に戻ってその処理を行う。【０１８７】
すべてのマクロブロックの符号化が完了した場合には、決定したエントロピ符号化モードｍｏｄｅに応じて、ピクチャ複雑度ｐｉｃ＿ｘを（１３）式で更新して（ステップＳ７２７）、ピクチャ本符号化処理を終了する（エンド）。【０１８８】
ここで、（１３）式における「ｐｉｃ＿ａｃｔ＿ｒａｔｅ」は現在符号化したピクチャの発生ビット数、つまり、第１〜第３の本マクロブロック符号化器６２１１〜６２１３の出力ビット数の和であり、「ｑｓ＿ｐｉｃ」は現在符号化したピクチャのマクロブロックの平均量子化ステップサイズである。ステップＳ７２７のピクチャ複雑度ｐｉｃ＿ｘは、ピクチャタイプごとにその値を記憶しておくものとする。【０１８９】
以上説明した第３の実施例の映像符号化装置４００によれば、仮並列符号化器Ｅ６０４の第１〜第３の仮マクロブロック符号化器６１１１〜６１１３のビットストリームのビット数に基づいて、本並列符号化器６０５の平均的なエントロピ符号化の処理性能で達成できるエントロピ符号化モードとピクチャレートを設定することができる。また、第１〜第３の仮マクロブロック符号化器６１１１〜６１１３のビットストリームのビット数から計算したマクロブロック最小ｑｐに基づいて第１〜第３の本マクロブロック符号化器６２１１〜６２１３の量子化パラメータを補正することで、これら第１〜第３の本マクロブロック符号化器６２１１〜６２１３に入力されるビン数が所定時間内に処理できるように制御される。これにより、１ピクチャを画面分割して複数のマクロブロック符号化器を利用して並列符号化する場合においても、映像符号化装置４００では、画質劣化が小さく、ピクチャの符号化完了時間が一定時間に収まることが保証される。【０１９０】
本発明は、以上説明した第１〜第３の実施例に限定されるものではなく、各種の変形を行うことができる。たとえば、第２の実施例で、仮符号化器４０４がＣＡＢＡＣ器２４２Ａ（図示せず）を利用してエントロピ符号化を行う場合、ビット数の代わりにそのビン数を利用しても、本発明としての効果が得られることはいうまでもない。
【産業上の利用の可能性】
【０１９１】
本発明は、例えば、映像符号化技術、特にエントロピ符号化の方式を選択するようにした映像符号化装置に利用される。
【図１】
2008142956.tif 000018
【図２】
2008142956.tif 000019
【図３】
2008142956.tif 000020
【図４】
2008142956.tif 000021
【図５】
2008142956.tif 000022
【図６】
2008142956.tif 000023
【図７】
2008142956.tif 000024
【図８】
2008142956.tif 000025
【図９】
2008142956.tif 000026
【図１０】
2008142956.tif 000027
【図１１】
2008142956.tif 000028
【図１２】
2008142956.tif 000029
【図１３】
2008142956.tif 000030
【手続補正書】
【提出日】平成20年9月26日(2008.9.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像ブロックを変換量子化して符号データを生成する符号データ生成手段と、
前記符号データを可変長符号化する可変長符号化手段と、
前記符号データを２値シンボルに変換し２値算術符号化する算術符号化手段と、
複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定手段と、
該２値シンボル数推定手段の推定した総数に応じて、前記可変長符号化手段と前記算術符号化手段のいずれか一方を前記符号データの符号化用に選択する符号化選択手段とを具備することを特徴とする映像符号化装置。
【請求項２】
前記２値シンボル数推定手段は、前記総数を用いて、前記可変長符号化手段を用いて処理可能な符号データ量に対応する量子化ステップと、前記算術符号化手段を用いて処理可能な符号データ量に対応する量子化ステップとを推定し、
前記符号化選択手段は、前記２値シンボル推定手段により推定された量子化ステップサイズがより小さくなる符号化手段を選択することを特徴とする請求項１に記載の映像符号化装置。
【請求項３】
前記２値シンボル数推定手段の推定した２値シンボルの総数を所定の閾値と比較する閾値比較手段を備え、
前記符号化選択手段は、前記閾値比較手段によって前記総数が閾値よりも多いと判別された場合に可変長符号化手段を選択し、その他の場合には算術符号化手段を選択することを特徴とする請求項１に記載の映像符号化装置。
【請求項４】
前記閾値は、前記複数画像ブロックの符号化時間で処理可能な２値シンボルの最大数と、２値シンボル数に対する算術符号化ビット数の圧縮比率を用いて計算された値であることを特徴とする請求項３に記載の映像符号化装置。
【請求項５】
前記２値シンボル数推定手段は、前記複数画像ブロックのアクテビティあるいは標準偏差あるいは分散に基づいて２値シンボル数を推定することを特徴とする請求項１から４のいずれか１項に記載の映像符号化装置。
【請求項６】
前記２値シンボル数推定手段は、前記複数画像ブロックの先行符号化情報を用いて２値シンボル数を推定することを特徴とする請求項１から４のいずれか１項に記載の映像符号化装置。
【請求項７】
画像ブロックを変換量子化して符号データを生成する符号データ生成プロセスと、
複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定プロセスと、
該２値シンボル数推定プロセスで推定した総数に応じて、前記符号データの符号化用の手法を、符号データを可変長符号化する可変長符号化と、符号データを２値シンボルに変換し２値算術符号化する算術符号化から選択する符号化選択プロセス
とを具備することを特徴とする映像符号化方法。
【請求項８】
画像ブロックを変換量子化して符号データを生成する符号データ生成処理と、
複数画像ブロックから生成される符号データを２値シンボルに変換した２値シンボルの総数を推定する２値シンボル数推定処理と、
該２値シンボル数推定処理で推定した総数に応じて、前記符号データの符号化用の手法を、符号データを可変長符号化する可変長符号化と、符号データを２値シンボルに変換し２値算術符号化する算術符号化から選択する符号化選択処理
とをコンピュータに実行させることを特徴とする映像符号化プログラム。
【請求項９】
前記２値シンボル数推定プロセスは、前記総数を用いて、前記可変長符号化手法を用いて処理可能な符号データ量に対応する量子化ステップと、前記算術符号化手法を用いて処理可能な符号データ量に対応する量子化ステップとを推定し、
前記符号化選択プロセスは、前記２値シンボル推定プロセスで推定された量子化ステップサイズがより小さくなる符号化手法を選択することを特徴とする請求項７記載の映像符号化方法。
【請求項１０】
前記２値シンボル数推定プロセスで推定された２値シンボルの総数を所定の閾値と比較する閾値比較プロセスをさらに具備し、
前記符号化選択プロセスは、前記閾値比較プロセスによって前記総数が閾値よりも多いと判別された場合に可変長符号化手法を選択し、その他の場合には算術符号化手法を選択することを特徴とする請求項７記載の映像符号化方法。
【請求項１１】
前記閾値は、前記複数画像ブロックの符号化時間で処理可能な２値シンボルの最大数と、２値シンボル数に対する算術符号化ビット数の圧縮比率を用いて計算された値であることを特徴とする請求項１０記載の映像符号化方法。
【請求項１２】
前記２値シンボル数推定プロセスは、前記複数画像ブロックのアクテビティあるいは標準偏差あるいは分散に基づいて２値シンボル数を推定することを特徴とする請求項７、請求項９〜請求項１１のいずれかに記載の映像符号化方法。
【請求項１３】
前記２値シンボル数推定プロセスは、前記複数画像ブロックの先行符号化情報を用いて２値シンボル数を推定することを特徴とする請求項７、請求項９〜請求項１１のいずれかに記載の映像符号化方法。
【請求項１４】
前記２値シンボル数推定処理は、前記総数を用いて、前記可変長符号化手法を用いて処理可能な符号データ量に対応する量子化ステップと、前記算術符号化手法を用いて処理可能な符号データ量に対応する量子化ステップとを推定し、
前記符号化選択処理は、前記２値シンボル推定処理で推定された量子化ステップサイズがより小さくなる符号化手法を選択することを特徴とする請求項８記載の映像符号化プログラム。
【請求項１５】
前記２値シンボル数推定処理で推定された２値シンボルの総数を所定の閾値と比較する閾値比較処理をさらにコンピュータに実行させ、
前記符号化選択処理は、前記閾値比較処理によって前記総数が閾値よりも多いと判別された場合に可変長符号化手法を選択し、その他の場合には算術符号化手法を選択することを特徴とする請求項８記載の映像符号化プログラム。
【請求項１６】
前記閾値は、前記複数画像ブロックの符号化時間で処理可能な２値シンボルの最大数と、２値シンボル数に対する算術符号化ビット数の圧縮比率を用いて計算された値であることを特徴とする請求項１５記載の映像符号化プログラム。
【請求項１７】
前記２値シンボル数推定処理は、前記複数画像ブロックのアクテビティあるいは標準偏差あるいは分散に基づいて２値シンボル数を推定することを特徴とする請求項８、請求項１４〜請求項１６のいずれかに記載の映像符号化プログラム。
【請求項１８】
前記２値シンボル数推定処理は、前記複数画像ブロックの先行符号化情報を用いて２値シンボル数を推定することを特徴とする請求項８、請求項１４〜請求項１６のいずれかに記載の映像符号化プログラム。
【国際調査報告】
2008142956.tif 000031
2008142956.tif 000032
2008142956.tif 000033
2008142956.tif 000034