(57)【要約】      （修正有）【課題】画質を劣化させずにバッファアンダーフローを防止する。【解決手段】画像復号装置のバツフアにおけるデータ占有量が、各ピクチャタイプの符号発生量が各ピクチャタイプに応じて設定されたしきい値を下回る場合は、現在符号化されている各ピクチャタイプの画像に対する符号化処理を停止させる。また符号化制御部は、ＶＢＶバツフア占有量計算部６２によつてＶＢＶバツフアの占有量を算出し、符号化難易度計算部６３によつて符号化が終了した画像に続く画像の符号化の難易度を表す符号化難易度を求め、１枚の画像の符号化が終了したときに、ＶＢＶバツフアの占有量が所定の占有量判定用しきい値を下回り、かつ符号化難易度が所定の基準に適合する場合に、次に符号化する予定の画像の符号化を停止させる。【選択図】図９
2007028647.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化処理して符号化データを生成する画像符号化装置において、
上記画像データを符号化処理する符号化手段と、
上記符号化手段によつて符号化処理が終了したピクチヤに続く複数枚のピクチヤの符号化難易度の和と複数枚のピクチヤに割り当てるビツトレートとの比率が閾値より大きい場合に、現在実行されている符号化処理を停止するように、上記符号化手段を制御する制御手段と
を備える画像符号化装置。
【請求項２】
上記制御手段は、パラメータｘの値が閾値より大きい場合に、次に符号化処理する予定のピクチヤをスキツプマクロブロツクで構成される画像として符号化処理するように、上記符号化手段を制御する
請求項１に記載の画像符号化装置。
x=ΣDk / G,
G=([ビツトレート］×Ｎ)/[ピクチヤレート]）
Dk：複数枚のピクチヤの符号化難易度の和
Ｎ：符号化処理する予定のピクチヤの枚数
【請求項３】
上記符号化難易度を算出する符号化難易度算出手段を
更に備える請求項１に記載の画像符号化装置。
【請求項４】
上記符号化データを復号する復号手段の入力バツフアに対応する仮想バツフアのデータ占有量を算出する占有量算出手段を更に備え、
上記制御手段は、上記占有量算出手段により算出されたデータ占有量が閾値より小さい場合に、次に符号化処理する予定のピクチヤをスキツプマクロブロツクで構成される画像として符号化処理するように、上記符号化手段を制御する
請求項１に記載の画像符号化装置。
【請求項５】
上記符号化難易度算出手段は、上記符号化手段によつて符号化処理する前の画像データに基づいて上記符号化難易度を算出する
請求項３に記載の画像符号化装置。
【請求項６】
上記符号化難易度算出手段は、上記符号化手段がＩピクチヤとして符号化処理する上記画像データのピクチヤから算出されたフラツトネス又はイントラＡＣに基づいて上記符号化難易度を算出する
請求項５に記載の符号化装置。
【請求項７】
上記符号化難易度算出手段は、上記符号化手段がＰピクチヤ又はＢピクチヤとして符号化処理する上記画像データのピクチヤから算出されたＭＥ残差に基づいて前記符号化難易度を算出する
請求項５に記載の符号化装置。
【請求項８】
上記符号化難易度の変化傾向が減少傾向にある場合には、スキツプを行わないようにして符号化処理するように、上記符号化手段を制御する
請求項１に記載の画像符号化装置。
【請求項９】
画像データを符号化処理して符号化データを生成する画像符号化方法において、
上記画像データを符号化処理する符号化ステツプと、
上記符号化処理が終了したピクチヤに続く複数枚のピクチヤの符号化難易度の和と複数枚のピクチヤに割り当てるビツトレートとの比率が閾値より大きい場合に、次に符号化処理する予定のピクチヤをスキツプマクロブロツクで構成される画像として符号化処理するように、上記符号化処理を制御する制御ステツプと
を含む画像符号化方法。
【請求項１０】
画像データを符号化処理する符号化ステツプと、
上記符号化処理が終了したピクチヤに続く複数枚のピクチヤの符号化難易度の和と複数枚のピクチヤに割り当てるビツトレートとの比率が閾値より大きい場合に、次に符号化処理する予定のピクチヤをスキツプマクロブロツクで構成される画像として符号化処理するように、上記符号化処理を制御する制御ステツプと
を含む処理をコンピュータに実行させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化装置、画像符号化方法及び画像符号化プログラムを記録した記録媒体に関し、特に画像を圧縮符号化して画像復号装置に伝送する場合に適用して好適なものである。
【背景技術】
【０００２】
画像符号化装置側で画像データを符号化・圧縮して伝送すると共に、画像復号化装置側で伝送されて来た画像データを伸張・復号化する通信システムや、画像データを圧縮して記録すると共に、再生時には圧縮された画像データを伸張して出力する圧縮画像記録再生装置等において、画像データの圧縮の方法としては、例えばＭＰＥＧ（Moving Picture Experts Group）規格で採用されている双方向予測符号化方式が用いられている。この双方向予測符号化方式では、双方向予測を用いることで符号化効率を向上させている。双方向予測符号化方式では、フレーム内符号化、フレーム間順方向予測符号化及び双方向予測符号化の３つのタイプの符号化が行われ、各符号化タイプによる画像は、それぞれＩピクチヤ（intra coded picture ）、Ｐピクチヤ（predictive coded picture）及びＢピクチヤ（bidirectionally predictive coded picture）と呼ばれる。
【０００３】
ところで、上述のＭＰＥＧ規格で採用されている双方向予測符号化方式等を用いて画像データを圧縮符号化する画像符号化装置では、圧縮符号化された画像データを伸張する画像復号化装置の持つ入力バツフアの容量を破錠させないことを検証するために、画像復号化装置側の入力バツフアを画像符号化装置側から仮想的に考えた復号化保証用バツフアすなわちＶＢＶ（Video Buffering Verfier）バツフアを想定し、このＶＢＶバツフアのデータ占有量が許容値をオーバフロー又はアンダフローしないように、画像符号化装置におけるデータの発生量を制御している（オーム社発行の「テレビジヨン学会マルチメデイア選書  ＭＰＥＧ」の第１１５ページ参照）。
【０００４】
すなわち画像符号化装置から固定のビツトレートで符号化データを伝送する場合、図１に示すように、指定されたビツトレートで画像データのビツトストリームがＶＢＶバツフアに入力されるときに、このＶＢＶバツフア内のデータ占有量がアンダフロー及びオーバフローしないような状態で、ＶＢＶバツフアから画像データを発生させる。
【０００５】
画像復号装置においては、画像符号化装置から伝送されるビツトストリームをＶＢＶバツフアを通して１フレーム分の画像データを単位として復号化する。かくして画像符号化装置から伝送される符号化データのビツトレートが一定であつても、データ量が異なるピクチヤを確実に復号化できる。例えばフレーム内の画像データを用いて符号化したフレーム（すなわちイントラ符号化されたＩピクチヤは、時間的に前後のフレームから動き補償を用いて符号化されたフレーム（すなわちＰピクチヤ又はＢピクチヤ）に比してフレーム当たりの符号量が多いが、ＶＢＶバツフアアンダフローやオーバフローをしない状態で復号化ができれば、各ピクチヤを確実に復号化できる。
【０００６】
図１において、各線分ｘの傾きは伝送するデータストリームの固定ビツトレートを示し、当該各線分ｘの各位置ｘ１はＶＢＶバツフアにおけるデータ占有量を表している。また線分ｙは１フレーム分のデータがＶＢＶバツフアからＩピクチヤ、Ｂピクチヤ及びＰピクチヤとして読み出されたことにより、ＶＢＶバツフアのデータ占有量が急に減少することを示している。
【０００７】
ところが図２に示すように、所定のデータ占有量の範囲を越えるデータをもつたピクチヤがＶＢＶバツフアから発生したとき、ＶＢＶバツフアにアンダフローが発生する。このことは、目標符号発生量はレート制御によつて設定されてはいるが、伝送されて来た画像の複雑さや、動きの激しさによつて実際の符号発生量が目標符号発生量より大きくなつた場合に当該ピクチヤを復号するためのデータが不足（図中「０」以下の部分に相当）するので画像を復号できないことを意味する。
【０００８】
このＶＢＶバツフアの動作については、ＩＳＯ（International Organization for Standardization）／ＩＥＣ（International Electrotechnical Commission）13818-2（ＭＰＥＧ２のビデオパート）のAnnexＣに記述されているが、ＶＢＶバツフアにアンダフロー及びオーバフローが発生したときの画像復号装置の動作については記述されていない。
【０００９】
ＶＢＶバツフアにアンダフローが発生すること防止する方法として、ＶＢＶバツフアに固定のしきい値を設定し、ＶＢＶバツフア内のデータ占有量がこのしきい値を下回るようなピクチヤについてはスキツプする（画像に対する符号化処理を停止する）ことにより、ＶＢＶバツフアにアンダフローが発生することを防止する方法が提案されている。
【００１０】
ところがこの方法では、どの画像符号化タイプのピクチヤに対しても同じようにスキツプ処理が行われる可能性がある。この場合、特に復号の際の画質上最も重要な画像データを含むＩピクチヤはＰピクチヤ及びＢピクチヤより符号発生量（すなわちデータ量）が多いため、Ｐピクチヤ及びＢピクチヤよりもスキツプ処理される可能性が高くなることが考えられる。このようにＩピクチヤがスキツプされた場合には、スキツプされたＩピクチヤを予測画像とするＰピクチヤ及びＢピクチヤの画質に影響が及ぶため全体の画質が劣化するおそれがあつた。
【００１１】
本発明は以上の点を考慮してなされたもので、画質を劣化させずに復号化保証用バツフアにおけるアンダフローの発生を防止することができる画像符号化装置及び画像符号化方法を提案しようとするものである。
【発明の開示】
【課題を解決するための手段】
【００１２】
かかる課題を解決するため本発明においては、符号化制御手段は、符号化された画像の符号発生量を演算し、当該演算結果に基づき、画像復号装置のバツフアにおける符号化された画像のデータ占有量が、イントラ符号化される第１の画像、並びに順方向予測符号化される第２の画像及び又は双方向予測符号化される第３の画像にそれぞれ対応させて設定された第１、若しくは第２及び又は第３のしきい値のうち、現在符号化されている第１、若しくは第２又は第３の画像に対応する第１、若しくは第２又は第３のしきい値を下回るような符号発生量が発生した場合、現在符号化されている第１、若しくは第２又は第３の画像に対する符号化処理を停止させるように、符号化手段を制御する。
【００１３】
また、現在符号化されている第１、若しくは第２又は第３の画像に対する符号化処理が停止された場合、復号化保証用バツフアにおいては、次の画像のためのバツフア量が確保される。
【００１４】
さらに、第１、並びに第２及び又は第３のしきい値の値を、画像を復号する際の画像符号化タイプの重要度に応じて設定することにより、復号化保証用バツフアにおいては、重要度の高い画像符号化タイプの画像のバツフア量が優先的に確保される。
【００１５】
かくして画質を劣化させずに画像復号装置のバツフアにおけるアンダフローの発生を防止することのできる画像符号化装置及び画像符号化方法を実現することができる。
【００１６】
さらに、符号化手段によつて、入力画像データが画像に画像符号化タイプに応じた符号化方法によつて圧縮符号化され、１枚の画像の符号化が終了したときに、占有量算出手段によつて、画像復号化装置における入力バツフアに対応する仮想的なバツフアのデータ占有量が算出される。また、符号化難易度算出手段によつて、符号化が終了した画像に続く画像の符号化の難易度を表す符号化難易度が算出され、１枚の画像の符号化が終了したときに、画像スキツプ制御手段によつて、占有量算出手段によつて算出されるデータ占有量が所定のデータ占有量判定用しきい値を下回り、かつ符号化難易度算出手段によつて算出される符号化難易度が所定の基準に適合する場合に、次に符号化する予定の画像がスキツプマクロブロツクで構成される画像として符号化される。
【発明の効果】
【００１７】
かくして画質に対する影響を極力抑えながら、画像復号化装置における入力バツフアに対応する仮想的なバツフアのアンダフローを防止することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
（１）第１の実施の形態
図３において、１は全体として画像符号化装置を示し、入力端子Ｗ１から入力した入力画像信号Ｓ１が画像タイプ指定回路２に入力される。
【００１９】
画像タイプ指定回路２は入力される画像信号Ｓ１の各フレームをＩピクチヤ、Ｐピクチヤ又はＢピクチヤのうちのどの画像符号化タイプのピクチヤとして処理するかを指定して画像符号化並替え回路３に送出する。この画像符号化装置１は、例えば15個のフレームをグループ・オブ・ピクチヤ（ＧＯＰ）として、これを１単位として符号化処理を実行する。
【００２０】
画像符号化順序並替え回路３は指定された画像符号化タイプに従つて各フレームを符号化する順番に並び替えて画像信号Ｓ２としてスキヤンコンバータ４に送出すると共に、画像符号化タイプデータＳ３を予測モード決定回路５、動きベクトル検出回路６及び符号化制御回路７に送出する。また画像符号化並替え回路３は現在符号化されているフレームの動きベクトルを検出するために現在画像と、当該現在画像より時間的に過去にある画像（以下、これを過去参照画像と呼ぶ）及び又は現在画像より時間的に未来にある画像（以下、これを未来参照画像と呼ぶ）とを表す画像信号Ｓ４を動きベクトル検出回路６に送出する。
【００２１】
スキヤンコンバータ４は、入力されるフレームをブロツクフオーマツトの信号に変換し、この１フレームの信号を16ラインを１単位としてＮ個のスライスに区分する。各スライスは16×16の画素に対応する輝度信号によつて構成されるＭ個のマクロブロツクに分割される。これら各マクロブロツクにはアドレス（可変長符号（インクリメント値））が付加されており、このアドレスは各マクロブロツクの位置を表すものである。この場合、ピクチヤ中で最初に伝送されるマクロブロツクのアドレスは番号そのものを表し、これに続くマクロブロツクのアドレスは、当該マクロブロツクの絶対アドレスとその１つ前に伝送されたマクロブロツクの絶対アドレスとの差を表している。
【００２２】
動きベクトル検出回路６は画像信号Ｓ２の各フレームに同期した画像符号化タイプデータＳ３に従つて各フレームの画像データをフレーム内符号化によるＩピクチヤ、フレーム間順方向予測符号化によるＰピクチヤ又は双方向予測符号化によるＢピクチヤとして処理する。かくして、Ｉピクチヤとして処理されるフレームの画像データは、動きベクトル検出回路６から過去参照画像を格納する過去参照画像メモリ（図示せず）に格納され、Ｂピクチヤとして処理されるフレームの画像データは現在画像を格納する現在画像メモリ（図示せず）に格納され、Ｐピクチヤとして処理されるフレームの画像データは未来参照画像を格納する未来参照画像メモリ（図示せず）に格納される。
【００２３】
ここで次のタイミングにおいて、Ｂピクチヤ又はＰピクチヤとして処理すべきフレームが動きベクトル検出回路６に入力されたとき、これまでに未来参照画像メモリに格納されていた最初のＰピクチヤの画像データは過去参照画像メモリに格納される。また次のＢピクチヤの画像データは現在画像メモリに格納され、次のＰピクチヤの画像データは未来参照画像メモリに格納される。以降このような動作が順次繰り返される。
【００２４】
動きベクトル検出回路６は順方向予測における動きベクトル及びそのときの動きベクトル推定残差でなる動きベクトルデータＳ５を予測モード決定回路５に送出する。また動きベクトル検出回路６は、Ｂピクチヤの場合には、逆方向予測における動きベクトル及びそのときの動きベクトル推定残差でなる動きベクトルデータＳ５を送出する。
【００２５】
予測モード決定回路５はイントラモード、順方向予測モード、逆方向予測モード又は双方向予測モードのうちどの予測モードを選択するかを決定する。
【００２６】
ここでイントラモードは、符号化対象となるフレームの画像データをそのまま伝送データとして伝送する処理であり、順方向予測モードは、過去参照画像との予測残差と順方向動きベクトルとを伝送する処理である。また逆方向予測モードは、未来参照画像との予測残差と逆方向動きベクトルとを伝送する処理であり、双方向予測モードは、過去参照画像と未来参照画像の２つの予測画像の平均値との予測残差と順方向及び逆方向の２つの動きベクトルとを伝送する処理である。Ｂピクチヤの場合には、これら４種類の予測モードをマクロブロツク単位で切り換える。
【００２７】
予測モード決定回路５は画像符号化並替え回路３から送出される画像符号化タイプデータＳ３に基づいて、Ｉピクチヤの場合にはイントラモードを選択し、Ｐピクチヤの場合にはイントラモード又は順方向予測モードのいずれかの予測モードを選択し、Ｂピクチヤの場合には、イントラモード、順方向予測モード、逆方向予測モード又は双方向予測モードのうちいずれかの予測モードを選択し、選択した予測モードを表す予測モードデータＳ６を演算回路８に送出する。
【００２８】
演算回路８はスキヤンコンバータ４より読み出されたマクロブロツクＳ７に対して、予測モードデータＳ６に基づいてイントラ、順方向予測、逆方向予測又は双方向予測の演算を行う。
【００２９】
演算回路８はマクロブロツクＳ７としてＩピクチヤとして処理すべきフレームの画像データが入力された場合、当該画像データをイントラ符号化してＤＣＴ（Discrete Cosine Transform、離散コサイン変換）変換回路９に送出する。ＤＣＴ変換回路９はイントラ符号化された画像データをＤＣＴ変換係数に変換して量子化回路１０に送出する。
【００３０】
量子化回路１０は各ＤＣＴ変換係数を符号化制御回路７から指定された量子化ステツプで量子化して可変長符号化回路１１及び逆量子化回路１２に送出する。
【００３１】
可変長符号化回路１１は量子化された画像データ、予測モード決定回路５から送出される予測モードデータＳ６及び動きベクトル検出回路６から送出される動きベクトルデータＳ５を例えばハフマン符号などの可変長符号に変換して伝送路（図示せず）を介して画像復号装置１３に伝送すると共に、符号化制御回路７に与える。また可変長符号化回路１１は各マクロブロツクのインクリメント値をカウントする。
【００３２】
逆量子化回路１２は量子化された画像データを量子化時における量子化ステツプに応じて逆量子化して逆ＤＣＴ変換回路１４に送出する。逆ＤＣＴ変換回路１４は逆量子化回路１２からの出力を逆ＤＣＴ変換処理をする。逆ＤＣＴ変換回路１４からの出力は演算器１５を介してフレームメモリ１６内の過去参照画像を格納する過去参照画像記憶部（図示せず）に格納される。
【００３３】
次に演算回路８にスキヤンコンバータ４からＰピクチヤとして処理すべきフレームの画像データが入力され、予測モード決定回路５から送出される予測モードデータＳ６がイントラモードの場合、当該フレームの画像データは、上述のＩピクチヤの場合と同様にイントラ符号化されてＤＣＴ変換回路９、量子化回路１０及び可変長符号化回路１１を介して画像復号装置１３に伝送されると共に、符号化制御回路７に与えられ、さらに逆量子化回路１２、逆ＤＣＴ変換回路１４及び演算器１５を介してフレームメモリ１６内の未来参照画像を格納する未来参照画像記憶部（図示せず）に格納される。
【００３４】
予測モードデータＳ６が順方向予測モードを表している場合には、フレームメモリ１６の過去参照画像記憶部に格納されている画像データ（この場合Ｉピクチヤの画像データ）が読み出されて動き補償回路１７に送出される。
【００３５】
動き補償回路１７はこの画像データを動きベクトル検出回路６から送出される順方向の動きベクトルデータＳ５に対応して動き補償する。
【００３６】
すなわち動き補償回路１７は、順方向予測モードの場合、フレームメモリ１６の過去参照画像記憶部の読出しアドレスを、動きベクトル検出回路６が現在出力しているマクロブロツクの位置に対応する位置から順方向の動きベクトルデータＳ５に対応する分だけずらしてデータを読み出して予測参照画像を生成し、演算回路８及び演算器１５に送出する。
【００３７】
演算回路８はスキヤンコンバータ４から送出される参照画像のマクロブロツクのデータＳ７から、動き補償回路１７から送出された当該マクロブロツクに対応する予測参照画像の画像データを減算して、予測残差としての差分データを得、この差分データをＤＣＴ変換回路９に送出する。この差分データはＤＣＴ変換回路９、量子化回路１０及び可変長符号化回路１１を介して画像復号装置１３に伝送されると共に、符号化制御回路７に与えられる。またこの差分データは逆量子化回路１２及び逆ＤＣＴ変換回路１４によつて局所的に復号されて演算器１５に送出される。
【００３８】
演算器１５は逆ＤＣＴ変換回路１４から送出される差分データに、動き補償回路１７から送出される予測参照画像の画像データを加算する。これにより局所的に復号したＰピクチヤの画像データが得られる。このＰピクチヤの画像データはフレームメモリ１６内の未来参照画像を格納する未来参照画像記憶部に格納される。
【００３９】
次に演算回路８にスキヤンコンバータ４からＢピクチヤとして処理すべきフレームの画像データが入力され、予測モード決定回路５から送出される予測モードデータＳ６がイントラモード又は順方向予測モードの場合、当該フレームの画像データは上述のＰピクチヤの場合と同様に処理される。これに対して予測モードデータＳ６が逆方向予測モードに設定された場合には、フレームメモリ１６の未来参照画像記憶部に格納されている画像データ（この場合Ｐピクチヤの画像データ）が読み出されて動き補償回路１７に送出される。
【００４０】
動き補償回路１７はこの画像データを動きベクトル検出回路６から送出される逆方向の動きベクトルデータＳ５に対応して動き補償する。
【００４１】
すなわち動き補償回路１７は、逆方向予測モードのとき、フレームメモリ１６の未来参照画像記憶部の読出しアドレスを、動きベクトル検出回路６が現在出力しているマクロブロツクの位置に対応する位置から動きベクトルデータＳ５に対応する分だけずらしてデータを読み出して予測参照画像を生成し、演算回路８及び演算器１５に送出する。
【００４２】
演算回路８はスキヤンコンバータ４から送出される参照画像のマクロブロツクのデータから、動き補償回路１７から送出された当該マクロブロツクに対応する予測参照画像の画像データを減算して予測残差としての差分データを得、この差分データをＤＣＴ変換回路９に送出する。
【００４３】
このとき、演算器１５は逆ＤＣＴ変換回路１４から送出される差分データに、動き補償回路１７から送出される予測参照画像の画像データを加算することにより、局所的に復号したＢピクチヤの画像データを得る。
【００４４】
双方向予測モードの場合には、フレームメモリ１６の過去参照画像記憶部に格納されている画像データ（この場合Ｉピクチヤの画像データ）と、未来参照画像記憶部に格納されている画像データ（この場合Ｐピクチヤの画像データ）とが読み出されて動き補償回路１７に送出される。
【００４５】
動き補償回路１７はこの画像データを動きベクトル検出回路６から送出される順方向の動きベクトル及び逆方向の動きベクトルでなる動きベクトルデータＳ５に対応して動き補償する。
【００４６】
すなわち動き補償回路１７は、双方向予測モードの場合、フレームメモリ１６の過去参照画像記憶部と未来参照画像記憶部の読出しアドレスを、動きベクトル検出回路６が現在出力しているマクロブロツクの位置に対応する位置から順方向の動きベクトル及び逆方向の動きベクトルでなる動きベクトルデータＳ５に対応する分だけずらしてデータを読み出して予測参照画像を生成し、演算回路８及び演算器１５に送出する。
【００４７】
演算回路８はスキヤンコンバータ４から送出される参照画像のマクロブロツクのデータから、動き補償回路１７から送出された当該マクロブロツクに対応する予測参照画像の画像データの平均値を減算して予測残差としての差分データを得、この差分データをＤＣＴ変換回路９に送出する。
【００４８】
このとき、演算器１５は逆ＤＣＴ変換回路１４から送出される差分データに、動き補償回路１７から送出される予測参照画像の画像データを加算することにより、局所的に復号したＢピクチヤの画像データを得る。ここでＢピクチヤは他の画像の予測画像として使用されないので、フレームメモリ１６には格納されない。
【００４９】
画像復号装置１３は画像符号化装置１から固定のビツトレートで伝送されるビツトストリームをデコーダバツフア１８に一旦格納した後、所定のタイミングで当該デコーダバツフア１８から１フレーム分の画像データを読み出して復号部１９において順次復号し、復号されたフレームを原画像の順序に並び替えて例えばデイスプレイ上に表示させる。
【００５０】
ここでデコーダバツフア１８は、画像符号化装置１から仮想的に考えた復号化保証用バツフア（すなわちＶＢＶバツフア）を構成し、画像符号化装置１は、復号部１９がデコーダバツフア１８から画像データを読み出すタイミングが分かるようになされている。
【００５１】
この実施例の場合、符号化制御回路７は可変長符号化回路１１から送出される可変長符号化された画像データの符号発生量をマクロブロツク単位で演算すると共にインクリメント値をカウントする。また符号化制御回路７は目標符号化発生量を表す量子化ステツプ制御信号Ｓ８を量子化回路１０に与えることにより１フレーム当たりの符号発生量を制御する。
【００５２】
さらに符号化制御回路７はＶＢＶバツフアとして機能するデコーダバツフア１８におけるデータ占有量のしきい値として、第３のしきい値、第２のしきい値及び第１のしきい値を有する。これら第３、第２及び第１のしきい値は、それぞれＢピクチヤ、Ｐピクチヤ及びＩピクチヤに対応している。またこれらしきい値の値は、画像を復号する際の画像符号化タイプの重要度の低い順に高くなるように、第３のしきい値＞第２のしきい値＞第１のしきい値に設定されている。かくして、符号化制御回路７は、Ｂピクチヤが符号化されているときに、可変長符号化回路１１から送出される画像データの符号発生量に基づき、デコーダバツフア１８よつて形成されるＶＢＶバツフアにおけるデータ占有量が第３のしきい値を下回るような符号量を有する画像データが発生した場合には、量子化回路１０にスキツプ実行信号Ｓ９を送出して、当該符号化中のＢピクチヤのこれ以降の画像データをマクロブロツク単位でスキツプさせその結果データ占有量の傾下を抑えるようになされている。
【００５３】
ここで、スキツプするとは、現在実行されている符号化処理を停止させることをいう。
【００５４】
このような処理をしたとき、データバツフア１８によつて形成されるＶＢＶバツフア１８におけるデータ占有量は、図４に示すように推移する。図４に示す太線部分は、画像データがスキツプされたことを示し、図５及び図６についても同様である。
【００５５】
この場合、量子化回路１０はスキツプ信号Ｓ９を受けると、内部に設けられたスキツプスイツチをオン動作させることにより画像データをスキツプする。この場合、符号化制御回路７はスキツプするマクロブロツクについてのアドレス情報Ｓ１０を可変長符号化回路１１に送出する。量子化回路１０からの符号（ビツト）発生はなくなる。また量子化回路１０は画像データをスキツプしない場合には、スキツプスイツチをオフ動作させることにより画像データを量子化する。
【００５６】
ここで符号化制御回路７は、画像復号装置１３の復号部１９がデコーダバツフア１８からデータを読み出すタイミングを知つており、しかも可変長符号化回路１１からの送出される画像データの符号発生量を演算し、これによりデコーダバツフア１８に現在格納されているデータ量を知ることができる。
【００５７】
可変長符号化回路１１は画像データがスキツプされていない場合には、インクリメント値をカウントすると共にアドレス情報と共に画像データを符号化制御回路７及び画像復号装置１３に伝送する。これに対して可変長符号化回路１１は、画像データがスキツプされた場合には、インクリメント値はカウントするがスキツプされたマクロブロツクについてのアドレス情報は出力せず、行及び列方向に並べられた複数のマクロブロツクの行方向における最初のマクロブロツクのアドレス情報（以下、これを先頭アドレス情報と呼ぶ）と、行方向における最後のマクロブロツクのアドレス情報（以下、これを最終アドレス情報と呼ぶ）だけは可変長符号化して符号化制御回路７及び画像復号装置１３に伝送する。
【００５８】
これにより符号化制御回路７及び画像復号装置１３はどの画像符号化タイプの画像データがスキツプされたかを知ることができる。ここで可変長符号化回路１１に対する先頭アドレス情報及び最終アドレス情報の指定は、符号化制御回路７が指定信号Ｓ１０を可変長符号化回路１１に送出することにより行われる。
【００５９】
また符号化制御回路７は、Ｐピクチヤが符号化されているときに、可変長符号化回路１１から送出される画像データの符号発生量に基づき、デコーダバツフア１８におけるデータ占有量が第２のしきい値を下回るような符号発生量を有する画像データが発生した場合には、量子化回路１０にスキツプ実行信号Ｓ９を送出して、当該符号化中のＰピクチヤのこれ以降の画像データをマクロブロツク単位でスキツプさせる。
【００６０】
ここで符号化制御回路７は、Ｐピクチヤをスキツプさせた場合には、デコーダバツフア１８におけるデータ占有量がそれぞれ対応するしきい値を越えている場合でも、当該スキツプされたＰピクチヤを予測画像として復号化の際に用いるＢピクチヤ及びＰピクチヤは全てスキツプさせるようになされている。これは、図５に示すように、ＰピクチヤＰ３が前のＰピクチヤＰ２を予測画像としているためである。すなわちＰピクチヤＰ２は符号化の途中からスキツプされているため、画像データとしては不十分なものとなり、このＰピクチヤＰ２を用いて復号化される復号後のＰピクチヤＰ３の画質が劣化するからである。このことはＢピクチヤＢ５及びＢピクチヤＢ６についても同様である。従つて次のＩピクチヤの符号化まで画像データがスキツプされている。
【００６１】
また図５において、ＢピクチヤＢ３、ＢピクチヤＢ４、ＰピクチヤＰ３、ＢクピチヤＢ５及びＢピクチヤＢ６がそれぞれスキツプされているのにもかかわらず、データ量が太線の分だけ減つているのは、上述した先頭アドレス情報及び最終アドレス情報が読み出されているからである。このことは図６についても同様である。
【００６２】
さらに符号化制御回路７は、Ｉピクチヤが符号化されているときに、可変長符号化回路１１から送出される画像データの符号発生量に基づき、デコーダバツフア１８におけるデータのバツフア占有量が第３のしきい値を下回るような符号量を有する画像データが発生した場合、量子化回路１０にスキツプ実行信号Ｓ９を送出して、当該符号化中のＩピクチヤのこれ以降の画像データをマクロブロツク単位でＤＣ成分のみのマクロブロツクとして符号化する。この場合、符号化制御回路７は次のＩピクチヤの符号化までＢピクチヤ及びＰピクチヤをスキツプさせるように量子化回路１０を制御する。
【００６３】
これは、図６に示すように、例えばＰピクチヤＰ２は前のＩピクチヤＩ１を予測画像としているためである。すなわちＩピクチヤＩ１は符号化の途中からＤＣ成分のみの符号化とされているため、画像データとしては不十分なものとなり、このＩピクチヤＩ１を用いて復号化される復号後のＰピクチヤＰ２の画質が劣化するからである。このことは、ＩピクチヤＩ１やＰピクチヤＰ２を復号化の際に用いるＢピクチヤＢ２、ＢピクチヤＢ５、ＢピクチヤＢ５及びＢピクチヤＢ６についても同様である。従つて次のＩピクチヤの符号化まで画像データがスキツプされている。
【００６４】
ここで図４〜図６に示す太線は、結果としてスキツプされたマクロブロツク又はＤＣ成分のみのイントラマクロブロツクで構成されることになる。
【００６５】
また符号化制御回路７は、上述のように画像データをスキツプさせた場合、スキツプさせた分だけ、以降の画像データに対する目標符号発生量を多く割り当てるように、目標符号発生量制御信号Ｓ８によつて量子化回路１０を制御する。この場合、符号化制御回路７は画像を復号する際の重要度が高い画像符号化タイプ、すなわちＩピクチヤ、Ｐピクチヤの順に目標符号発生量を多く割り当てる。
【００６６】
画像復号装置１３は、画像符号化装置１でピクチヤがスキツプされた場合でも、伝送されてくるアドレス情報に基づいてどのマクロブロツクがスキツプされたかを判別することができ、これによりスキツプされた場合には、前のフレームをそのまま表示するようになされている。
【００６７】
符号化制御回路７の動作について図７を用いて説明する。
【００６８】
符号化制御回路７は、ステツプＳＰ１より動作を開始して、ステツプＳＰ２において、これから符号化するピクチヤ（以下、これを符号化対象ピクチヤと呼ぶ）がどの画像符号化タイプかを画像符号化並替え回路３から送出される画像符号化タイプデータＳ３に基づいて判定した後、ステツプＳＰ３に進む。
【００６９】
符号化制御回路７は、ステツプＳＰ３において、スキツプ判定フラグがセツトされているピクチヤ（以下、これをスキツプピクチヤと呼ぶ）の画像符号化タイプと、符号化対象ピクチヤの画像符号化タイプとに基づいて、符号化対象ピクチヤをスキツプするか否かを判定する。ここでスキツプ判定フラグは、後述するように、スキツプピクチヤに対して設定されるフラグを表す。
【００７０】
このステツプＳＰ３において、符号化対象ピクチヤをスキツプするか否かを判定するのは、スキツプピクチヤが符号化対象ピクチヤの予測画像であるか否かを判定するためである。すなわち上述したように、符号化対象ピクチヤの予測画像がスキツプされている場合には、この予測画像を用いて復号化されるピクチヤの画質に影響を与えるため、符号化対象ピクチヤを符号化しているときに、デコーダバツフア１８におけるデータ占有量が当該符号化対象ピクチヤの画像符号化タイプに対応するしきい値を下回つていない場合でもスキツプさせる必要があるからである。例えばＰピクチヤＰ３（図５）を符号化対象ピクチヤとした場合、当該ＰピクチヤＰ２の予測画像となるＰピクチヤＰ２はスキツプされているからである。
【００７１】
ステツプＳＰ３において、符号化制御回路７が否定結果を得ると、ステツプＳＰ４に進み、スキツプ判定フラグをリセツトする。ここでスキツプ判定フラグをリセツトするのは、ステツプ判定フラグをセツトしたままであると、スキツプを行つてはならないピクチヤの画像データがスキツプされることを防止するためである。
【００７２】
続いて符号化制御回路７はステツプＳＰ５において目標符号発生量を計算した後、ステツプＳＰ６に進んで符号化対象ピクチヤをマクロブロツク単位で符号化させる。次に符号化制御回路７はステツプＳＰ７において、デコーダバツフア１８における現在のデータ占有量を計算した後、ステツプＳＰ８に進む。
【００７３】
ステツプＳＰ８において、符号化制御回路７は、ステツプＳＰ７において計算したデコーダバツフア１８におけるデータ占有量が符号化対象ピクチヤに対応するしきい値を下回つているか否かを判定し、否定結果を得ると、ステツプＳＰ９に進む。ステツプＳＰ９において、符号化制御回路７は、符号化対象ピクチヤについて１フレーム分符号化されたか否かを判定し、否定結果を得るとステツプＳＰ６に戻つて、ステツプＳＰ６からステツプＳＰ９までの処理ループを実行する。
【００７４】
符号化制御回路７は、ステツプＳＰ３において符号化対象ピクチヤをスキツプさせると判定した場合にはステツプＳＰ１０に進み、先頭アドレス情報及び最終アドレス情報を除いて当該符号化対象ピクチヤをスキツプさせ、符号化対象ピクチヤがＩピクチヤの場合にはＤＣ成分のみのマクロブロツクとして符号化させる。また符号化制御回路７は、ステツプＳＰ８においてデコーダバツフア１８におけるデータ占有量が符号化対象ピクチヤに対応するしきい値を下回つた場合には、これ以降の符号化対象ピクチヤの画像データをマクロブロツク単位でスキツプさせる。
【００７５】
続いて符号化制御回路７は、ステツプＳＰ１１に進んで、符号化対象ピクチヤについて１フレーム分の符号化が終了したか否かを判定する。
【００７６】
符号化制御回路７はステツプＳＰ１１において否定結果を得ると、ステツプＳＰ１０に戻つて、ステツプＳＰ１０及びステツプＳＰ１１の処理ループを実行し、否定結果を得るとステツプＳＰ１２に進む。ステツプＳＰ１２において、符号化制御回路７は、スキツプしたピクチヤに対して、対応するスキツプ判定フラグをセツトした後、ステツプＳＰ２に戻り、画像信号Ｓ１を全て処理するまで上述の動作を繰り返す。
【００７７】
以上の構成において、この画像符号化装置１では、可変長符号化回路１１からの画像データの符号発生量に基づき、Ｂピクチヤを符号化しているときに、デコーダバツフア１８におけるデータ占有量が第３のしきい値を下回るような符号量を有する画像データが発生した場合には、当該符号化中のＢピクチヤのこれ以降の画像データがマクロブロツク単位でスキツプされるので、デコーダバツフア１８において次のＰピクチヤの画像データのためのＶＢＶバツフアのデータ占有量が確保される。
【００７８】
またこの画像符号化装置１では、可変長符号化回路１１からの画像データの符号発生量に基づき、Ｐピクチヤを符号化しているときに、デコーダバツフア１８におけるデータ占有量が第２のしきい値を下回るような符号量を有する画像データが発生した場合には、当該符号化中のＰピクチヤのこれ以降の画像データがマクロブロツク単位でスキツプされるので、デコーダバツフア１８においてＩピクチヤの画像データのためのＶＢＶバツフアのデータ占有量が確保される。
【００７９】
またＰピクチヤがスキツプされた場合には、当該Ｐピクチヤを予測画像とするＰピクチヤ及びＢピクチヤが全てスキツプされるので、画質の劣化を防止することができる。
【００８０】
さらにこの画像符号化装置１では、可変長符号化回路１１からの画像データの符号発生量に基づき、Ｉピクチヤを符号化しているときに、デコーダバツフア１８におけるデータ占有量が第１のしきい値を下回るような符号量を有する画像データが発生した場合には、当該符号化中のＩピクチヤのこれ以降の画像データがマクロブロツク単位でスキツプされるので、デコーダバツフア１８において次のＩピクチヤの画像データのためのＶＢＶバツフアのデータ占有量が確保される。
【００８１】
またＩピクチヤがスキツプされた場合には、次のＩピクチヤの符号化時まで全てのＰピクチヤ及びＢピクチヤがスキツプされるので、画質の劣化を防止することができる。
【００８２】
従つてこの画像符号化装置１では、画像を復号化する際の重要度が低い画像符号化タイプのピクチヤを優先的にスキツプさせているので、デコーダバツフア１８において、次に重要度の高い画像符号化タイプのピクチヤのためのＶＢＶバツフアのデータ占有量を確保することができる。
【００８３】
またこの画像符号化装置１では、画像を復号する際の重要度が低い画像符号化タイプのピクチヤを優先的にスキツプさせているので、画像を復号する際の重要度が高い画像符号化タイプのピクチヤに対してスキツプさせた分だけ目標符号発生量を多く割り当てることができ、画質の劣化を防止し得る。この場合、画像の絵柄が複雑なときには特に有効である。
【００８４】
さらに符号化装置１側で画像復号装置１３側の画像のフリーズ状態を制御することができる。
【００８５】
以上の構成によれば、ＶＢＶバツフアにおけるデータ占有量のしきい値として、Ｂピクチヤ、Ｐピクチヤ及びＩピクチヤにそれぞれ対応させて第３のしきい値、第２のしきい値及び第１のしきい値を設定すると共に、第３のしきい値、第２のしきい値、第１のしきい値の順にしきい値の値が大きくなるようにこれら第３、第２及び第１のしきい値の値を設定することにより、画像を復号する際の重要度の低い画像符号化タイプのピクチヤを優先的にスキツプさせる。
【００８６】
これにより、ＶＢＶバツフアにおいて、画像を復号化する際の重要度が高い画像符号化タイプのピクチヤのデータ占有量を優先的に確保することができ、その結果、画質を劣化させずにＶＢＶバツフアにおけるアンダフローの発生を確実に防止することができる画像符号化装置を実現し得る。
【００８７】
なお上述の第１の実施の形態においては、可変長符号化回路１１における符号化方式としてハフマン符号を用いた場合について述べたが、本発明はこれに限らず、可変長符号化回路１１における符号化としてこの他種々の符号化方式を適用し得る。
【００８８】
また上述の第１の実施の形態においては、例えば15個のフレームをグループ・オブ・ピクチヤ（ＧＯＰ）としこれを１単位として処理するようにした場合について述べたが、本発明はこれに限らず、ＧＯＰを構成するフレームの数としてこの他種々の数でＧＯＰを構成してもよい。
【００８９】
さらに上述の第１の実施の形態においては、各画像をフレーム単位で符号化した場合について述べたが、本発明はこれに限らず、フイールド単位、又はフレーム単位とフイールド単位を混在させて符号化するようにしてもよい。すなわちノンインタレース走査方式に対応させ得るようにしてもよい。
【００９０】
さらに上述の第１の実施の形態においては、符号化対象となる画像の画像符号化タイプを判定する画像符号化タイプ判定手段として、画像符号化並替え回路３及び符号化制御回路７を用いた場合について述べたが、本発明はこれに限らず、画像符号化タイプ判定手段として、この他種々の画像符号化タイプ判定手段を適用し得る。
【００９１】
さらに上述の第１の実施の形態においては、画像符号化タイプ判定手段の出力に基づいて、第１、第２又は第３の画像を符号化する符号化手段として、画像符号化タイプ指定回路２、画像符号化順序並替え回路３、スキヤンコンバータ４、予測モード決定回路５、動きベクトル検出回路６、符号化制御回路７、演算回路８、ＤＣＴ変換回路９、量子化回路１０、可変長符号化回路１１、逆量子化回路１２、逆ＤＣＴ変換回路１４、演算器１５、フレームメモリ１６及び動き補償回路１７を用いた場合について述べたが、本発明はこれに限らず、符号化手段としてこの他種々の第１の符号化手段を適用し得る。
【００９２】
さらに上述の第１の実施の形態においては、符号化された画像の符号発生量を演算し、当該演算結果に基づき、画像復号装置のバツフアにおける符号化された画像のデータ占有量が、第１、第２及び第３の画像にそれぞれ対応させて設定されたデータ占有量の第１、第２及び第３のしきい値のうち、現在符号化されている第１、第２又は第３の画像に対応する第１、第２又は第３のしきい値を下回るような符号発生量が発生した場合、現在符号化されている第１、第２又は第３の画像に対する符号化処理を停止させるように、符号化手段を制御する符号化制御手段として、符号化制御回路７を用いた場合について述べたが、本発明はこれに限らず、符号化制御手段としてこの他種々の符号化制御手段を適用し得る。
【００９３】
さらに上述の第１の実施の形態においては、画像データを３つの符号化タイプ、すなわちＩピクチヤ、Ｐピクチヤ及びＢピクチヤの画像に符号化するようにしたが、本発明はこれに限らず、３つの符号化タイプのうちから２つの符号化タイプ、すなわちＩピクチヤ及びＰピクチヤ、又はＩピクチヤ及びＢピクチヤを用いて画像を符号化するようにしても、上述の第１の実施の形態と同様の効果を得ることができる。
【００９４】
因に、ＶＢＶバツフアにおけるデータ占有量のしきい値として、Ｉピクチヤに対応する第１のしきい値を設定すると共に、Ｐピクチヤ又はＢピクチヤに対応する第２又は第３のしきい値として第１のしきい値より大きい値のしきい値を設定するようにしたことにより、画像を復号化する際にＩピクチヤより重要度の低いＰピクチヤ又はＢピクチヤを優先的にスキツプさせることができる。
【００９５】
これにより、ＶＢＶバツフアにおいて、画像を復号化する際の重要度が高い画像符号化タイプのピクチヤのデータ占有量を優先的に確保することができ、その結果、画質を劣化させずにＶＢＶバツフアにおけるアンダフローの発生を確実に防止することができる画像符号化装置を実現し得る。
【００９６】
（２）第２の実施の形態
図８において、画像符号化装置２５は、入力画像信号Ｓ２５をエンコーダ制御部２６において圧縮符号化のための前処理等の処理をした後、ＦＩＦＯ（先入れ先出し）メモリ２７において出力データを所定時間だけ遅延する。このＦＩＦＯメモリ１２の出力データは符号化手段としてのエンコーダ２８によつて、ピクチヤごとに画像符号化タイプ、すなわちピクチヤタイプに応じた符号化方法によつて圧縮符号化されて、圧縮画像データＳ２６として出力される。
【００９７】
エンコーダ２８には動き検出回路１４によつてエンコーダ制御部１１の出力データに基づいて検出された動きベクトルが与えられ、かくしてエンコーダ１３から出力される発生ビツト量データＳ２７と、エンコーダ制御部２６から出力されるイントラＡＣデータＳ２８と、動き検出回路３０から出力されるＭＥ残差データＳ２９とに基づいて符号化制御部３１によつて制御される。
【００９８】
図８に示す画像符号化装置２５は、圧縮符号化する前の画像データの特徴に基づいて発生符号量の制御を行うフイードフオワード型のレート制御を行うように構成されている。
【００９９】
ここで、ＭＥ残差とは、動き予測誤差をピクチヤ全体について絶対値和あるいは自乗和したものであり、ＭＥ残差データＳ２９は、ＭＥ残差を求めるためのデータである。
【０１００】
符号化制御部３１は、互いにバス３２を介して接続されたＣＰＵ（中央処理装置）３３、ＲＯＭ（read only memory）３４及びＲＡＭ（random access memory）３５を有するコンピユータによつて構成され、ＣＰＵ３３が、ＲＡＭ３５をワーキングエリアとして、ＲＯＭ３４に格納されたプログラムを実行することによつて、符号化制御部３１における各機能を実現する。ＲＯＭ３４は、本発明に係る画像符号化制御用プログラムを記憶したものであり、ＩＣ（集積回路）でも良いし、ハードデイスク、フロツピイデイスク等の磁気デイスクを記録媒体とする記憶装置でも良いし、ＣＤ（コンパクトデイスク）−ＲＯＭ等の光デイスクを記録媒体とする記憶装置でも良いし、その他の種類の記録媒体を用いる記憶装置でも良い。いずれの場合にも、ＩＣや種々の記録媒体は、本発明にかかる画像符号化制御用プログラムを記録した媒体に相当する。
【０１０１】
エンコーダ制御部２６は、図９に示すように、入力画像信号Ｓ２５を入力し、符号化する順番に従つてピクチヤ（Ｉピクチヤ、Ｐピクチヤ、Ｂピクチヤ）の順番を並べ替える画像並べ替え回路４１と、この画像並べ替え回路４１の出力データを入力し、フレーム構造かフイールド構造かを判別し、判別結果に応じた走査変換及び１６×１６画素のマクロブロツク化を行う走査変換・マクロブロツク化回路４２と、この走査変換・マクロブロツク化回路４２の出力データを入力し、ＩピクチヤにおけるイントラＡＣを算出し、イントラＡＣデータＳ２８を符号化制御部３１に送ると共に、走査変換・マクロブロツク化回路４２の出力データをＦＩＦＯメモリ２７及び動き検出回路３０に送るイントラＡＶ演算回路４３とを有する。
【０１０２】
ここで、イントラＡＣは、Ｉピクチヤにおいて、８×８画素のＤＣＴ変換（離散コサイン変換）ブロツク内の各画素の画素値とＤＣＴ変換ブロツク内の画素値の平均値との差分の絶対値の総和として定義され、絵柄の複雑さを表すものである。
【０１０３】
エンコーダ２８は、減算回路４４において、ＦＩＦＯメモリ２７の出力データと予測画素データとの差分をとり、この減算回路４４の出力データに対して、ＤＣＴ変換回路４５においてＤＣＴ変換ブロツク単位でＤＣＴ変換を行うことにより、ＤＣＴ変換係数を出力し、このＤＣＴ変換回路４５の出力データを量子化回路４６によつて量子化した後、可変長符号化回路４７によつて可変長符号化する。この可変長符号化回路４７の出力データはバツフアメモリ４８によつて一旦保持され、一定のビツトレートのビツトストリームからなる圧縮画像データＳ２６として出力される。
【０１０４】
量子化回路４６の出力データは逆量子化回路４９によつて逆量子化され、この逆量子化回路４９の出力データに対して逆ＤＣＴ変換回路５０が逆ＤＣＴ変換を行う。この逆ＤＣＴ変換回路５０の出力データは加算回路５１によつて予測画像データとを加算され、この加算回路５１の出力データを動き補償回路５２において保持し、動き検出回路１４から送られる動きベクトルに応じて動き補償を行つて予測画像データを減算回路４４及び加算回路５１に出力する。
【０１０５】
バツフアメモリ４８は、可変長符号化回路４７より発生されるビツト量を表す発生ビツト量データＳ２７を符号化制御部３１に送るようになつている。
【０１０６】
動き検出回路３０は、エンコーダ制御部２６の出力データに基づいて、圧縮符号化の対象となるピクチヤの注目マクロブロツクと、参照されるピクチヤにおいて注目マクロブロツクとの間の画素値の差分の絶対値和又は自乗和が最小となるマクロブロツクを探して、動きベクトルを検出して動き補償回路５２に送る。また、動き検出回路３０は、動きベクトルを求める際に、最小となつたマクロブロツク間における画素値の差分の絶対値和又は自乗和を、ＭＥ残差データＳ２９として符号化制御部３１に送る。
【０１０７】
符号化制御部３１は、動き検出回路３０からのＭＥ残差データＳ２９をピクチヤ全体について足し合わせた値であるＭＥ残差をＭＥ残差計算部６１において算出し、このＭＥ残差計算部６１によつて算出されたＭＥ残差とイントラＡＣ演算回路４３からのイントラＡＣデータＳ２８とに基づいて、符号化難易度計算部４２によつてピクチヤの符号化の難易度を表す符号化難易度を算出する。バツフアメモリ４８からの発生ビツト量データＳ２７はこの第２の実施の形態に係る画像符号化装置２８によつて圧縮符号化された画像データを伸張する画像復号化装置における入力バツフアに対応する仮想的なバツフアであるＶＢＶバツフアのデータ占有量を、ＶＢＶバツフア占有量計算部６２において算出する。なお、ＭＥ残差は、映像の動きの速さ及び絵柄の複雑さを表す。
【０１０８】
符号化制御部３１は、さらに、符号化難易度計算部６３によつて算出された符号化難易度とＶＢＶバツフア占有量計算部６２によつて算出されたＶＢＶバツフアの占有量とに基づいて目標符号量を決定すると共に、ＶＢＶバツフアのアンダフローを防止するために画像に対する符号化処理を停止するスキツプを行うか否かの判定を行う目標符号量決定部６４を有し、エンコーダ２８における発生符号化量が目標符号量決定部６４によつて決定された目標符号量となるように量子化回路４６における量子化特性値に対応する量子化インデツクスを量子化インデツクス決定部６５において決定して量子化回路４６に送る。かくして目標符号量決定部６４によつてスキツプを行うと判定された場合には、スキツプ制御部６６が量子化回路４６及び可変長符号化回路４７を制御してスキツプを行わせる。
【０１０９】
ここで、符号化難易度について説明する。符号化難易度は、ピクチヤの符号化の難易度を表すものであるが、これは、同じ画質を保つために必要なデータ量の比率と言い換えることができる。符号化難易度を数値化する方法は種々考えられるが、この第２の実施の形態では、ＩピクチヤについてはイントラＡＣを用いて符号化難易度を求め、Ｐピクチヤ及びＢピクチヤについてはＭＥ残差を用いて符号化難易度を求める。前述のように、イントラＡＣは絵柄の複雑さを表し、ＭＥ残差は映像の動きの速さ及び絵柄の複雑さを表し、これらは符号化の難易度と強い相関があるので、イントラＡＣやＭＥ残差を変数とする一次関数等により、イントラＡＣやＭＥ残差から符号化難易度を算出することができる。
【０１１０】
次に、符号化難易度に基づいてＶＢＶバツフアのアンダフローの危険度を判定する方法について説明する。すでに説明したように、ＶＢＶバツフアのアンダフローが発生するのは、目標符号量に対して発生符号量が大きく上回るような場合である。このようなことは、ビツトレートに対して入力画像の符号化難易度が非常に大きい場合に生じる。そこで、ＶＢＶバツフアのアンダフローの危険度を判定するためのパラメータとしては、ビツトレートに対する符号化難易度の比率を用いるのが適当である。また、さらに、ＶＢＶバツフアのアンダフローの危険度を判定するためには、これから符号化する予定の数枚以内のピクチヤにおける、上記ビツトレートに対する符号化難易度の比率を見ることが重要である。これは、符号化難易度は、ピクチヤタイプによつて変動するからである。そこで、この第２の実施の形態では、ＶＢＶバツフアのアンダフローの危険度を判定するためのパラメータとして、次式によつて定義されるパラメータｘを用いる。
【０１１１】
ｘ＝ΣＤｋ／Ｇ                                          ……（１）
【０１１２】
ここで、Ｄｋはピクチヤｋの符号化難易度を表し、ｋはピクチヤの符号化順を表し、次に符号化する予定のピクチヤをｋ＝１とする。Σはｋ＝１からＮ（Ｎは１ＧＯＰ（グループ・オブ・ピクチヤ）分のピクチヤの枚数）までの総和を意味する。また、Ｇは次式、
【０１１３】
Ｇ＝（〔ビツトレート〕×Ｎ）／〔ピクチヤレート〕        ……（２）
【０１１４】
によつて定義される。
【０１１５】
（２）式において、〔ビツトレート〕は、通信回線の伝送容量や記録媒体の記録容量に基づいて決められる１秒当たりのデータ量（ビツト量）を表し、〔ピクチヤレート〕は、１秒当たりのピクチヤの枚数（例えばＮＴＳＣ圏では３０、ＰＡＬ圏では２５）である。従つて、Ｇは、Ｎ枚分のピクチヤに対応する時間に割り当てられるデータ量（ビツト量）を表し、ｘは、Ｎ枚分のピクチヤに対応する時間に割り当てられるデータ量（ビツト量）に対するＮ枚分のピクチヤの符号化難易度Ｄｋの和の比率を表す。
【０１１６】
なお、必ずしもＮ枚分のピクチヤを用いてｘを求める必要はなく、Ｎより大きい数や小さい数の枚数分のピクチヤを用いてｘを求めるようにしても良い。ただし、Ｎよりもあまり大きい数をとるとアンダフローの危険度の判定の精度が落ち、Ｎよりもあまり小さい数をとるとパラメータｘの変動が大きくなることに留意する必要がある。
【０１１７】
次に、第２の実施の形態に係る画像符号化装置２５の動作について説明する。入力画像信号Ｓ２５は、エンコーダ制御部２６に入力される。エンコーダ制御部２６では、まず、画像並べ替え回路４１によつて、符号化する順番に従つてピクチヤ（Ｉピクチヤ、Ｐピクチヤ、Ｂピクチヤ）の順番を並べ替え、次に、走査変換・マクロブロツク化回路４２によつて、フレーム構造かフイールド構造かを判別し、判別結果に応じた走査変換及びマクロブロツク化を行い、次に、Ｉピクチヤの場合には、イントラＡＣ演算回路４３によつてイントラＡＣを算出してイントラＡＣデータＳ２８を符号化制御部３１に送る。また、走査変換、マクロブロツク化回路４２の出力データは、イントラＡＣ演算回路４３を経て、ＦＩＦＯメモリ２７及び動き検出回路３０に送られる。
【０１１８】
ＦＩＦＯメモリ２７は、符号化難易度計算部６３において、符号化が終了したピクチヤに引き続くＮ枚分のピクチヤの符号化難易度を算出するのに必要な時間だけ、入力した画像データを遅延して、エンコーダ２８に出力する。動き検出回路３０は、動きベクトルを検出して動き補償回路５２に送ると共に、ＭＥ残差データＳ２９をＭＥ残差計算部６１に送る。
【０１１９】
Ｉピクチヤの場合には、エンコーダ２８では、減算回路４４において予測画像データとの差分をとることなく、ＦＩＦＯメモリ２７の出力データをそのままＤＣＴ変換回路４５に入力してＤＣＴ変換を行い、量子化回路４６によつてＤＣＴ変換係数を量子化し、可変長符号化回路４７によつて量子化回路４６の出力データを可変長符号化し、バツフアメモリ４８によつて可変長符号化回路４７の出力データを一旦保持し、一定のビツトレートのビツトストリームからなる圧縮画像データＳ２６として出力する。
【０１２０】
また、逆量子化回路４９によつて量子化回路４６の出力データを逆量子化し、逆ＤＣＴ変換回路５０によつて逆量子化回路４９の出力データに対して逆ＤＣＴ変換を行い、逆ＤＣＴ変換回路５０の出力画像データを加算回路５１を介して動き補償回路５２に入力して保持させる。
【０１２１】
Ｐピクチヤの場合には、エンコーダ２８では、動き補償回路５２によつて、保持している過去のＩピクチヤ又はＰピクチヤに対応する画像データと動き検出回路３０からの動きベクトルとに基づいて予測画像データを生成し、予測画像データを減算回路４４及び加算回路５１に出力する。また、減算回路４４によつて、ＦＩＦＯメモリ２７の出力データと動き補償回路５２からの予測画像データとの差分をとり、ＤＣＴ変換回路４５によつてＤＣＴ変換を行い、量子化回路４６によつてＤＣＴ変換係数を量子化し、可変長符号化回路４７によつて量子化回路４６の出力データを可変長符号化し、バツフアメモリ４８によつて可変長符号化回路４７の出力データを一旦保持し圧縮画像データＳ２６として出力する。また、逆量子化回路４９によつて量子化回路４６の出力データを逆量子化し、逆ＤＣＴ変換回路５０によつて逆量子化回路４９の出力データに対して逆ＤＣＴ変換を行い、加算回路５１によつて逆ＤＣＴ変換回路５０の出力データと予測画像データとを加算し、動き補償回路５２に入力して保持させる。
【０１２２】
Ｂピクチヤの場合には、エンコーダ２８では、動き補償回路５２によつて、保持している過去及び未来のＩピクチヤ又はＰピクチヤに対応する２つの画像データと動き検出回路３０からの２つの動きベクトルとに基づいて予測画像データを生成し、予測画像データを減算回路４４及び加算回路５１に出力する。また、減算回路４４によつて、ＦＩＦＯメモリ２７の出力データと動き補償回路５２からの予測画像データとの差分をとり、ＤＣＴ変換回路４５によつてＤＣＴ変換を行い、量子化回路４６によつてＤＣＴ変換係数を量子化し、可変長符号化回路４７によつて量子化回路４６の出力データを可変長符号化し、バツフアメモリ４８によつて可変長符号化回路４７の出力データを一旦保持し、圧縮画像データＳ２６として出力する。なお、Ｂピクチヤは動き補償回路５２に保持させない。
【０１２３】
なお、バツフアメモリ４８は可変長符号化回路４７より発生されるビツト量を表す発生ビツト量データＳ２７を符号化制御部３１に送る。
【０１２４】
次に、図１０のフローチヤートを参照して、符号化制御部３１の動作について説明する。この動作では、まず、符号化難易度計算部６３によつて、イントラＡＣ演算回路４３からのイントラＡＣデータＳ２８とＭＥ残差計算部６１で算出したＭＥ残差より、符号化難易度を計算し、パラメータｘを求める（ステツプＳＰ２１）。なお、パラメータｘは、今から符号化する予定のピクチヤに引き続くＮ枚分のピクチヤの符号化難易度に基づいて算出される。
【０１２５】
次に、スキツプフラグが“１”か否かを判断する（ステツプＳＰ２２）。スキツプフラグは、“１”のとき、今から符号化する予定のピクチヤをスキツプすることを示し、“０”のとき、今から符号化する予定のピクチヤをスキツプしないことを示す。
【０１２６】
スキツプフラグが“０”の場合（ステツプＳＰ２２において否定結果が得られた場合）には、目標符号量決定部６４によつて、パラメータｘとＶＢＶバツフア占有量計算部６２によつて算出されているＶＢＶバツフアの占有量とに基づいて、ピクチヤｊの目標符号量を計算し（ステツプＳＰ２３）、量子化インデツクス決定部６５に送る。なお、ピクチヤｊは、今から符号化するピクチヤを意味する。
【０１２７】
次に、量子化インデツクス決定部６５によつて、エンコーダ２８における発生符号量が目標符号量決定部６４によつて決定された目標符号量となるように量子化回路４６における量子化特定値に対応する量子化インデツクスを決定し、量子化回路４６に送る。これに応じて、ピクチヤｊの符号化が行われる（ステツプＳＰ２４）。
【０１２８】
一方、スキツプフラグ“１”の場合（ステツプＳＰ２２において肯定結果が得られた場合）には、目標符号量決定部６４は、ピクチヤｊをスキツプすることをスキツプ制御部６６に指示し、これに応じて、スキツプ制御部６６は、前のフレームを表示するように処理する（ステツプＳＰ２５）。すなわち、スキツプ制御部６６は、量子化回路４６を制御してマクロブロツク単位でスキツプを行わせると共に、可変長符号化回路４７に対してスキツプするマクロブロツクのアドレス情報を送る。これに応じて、可変長符号化回路４７は、スキツプするための情報を符号化して出力する。このようにして、ピクチヤｊは、スキツプされたマクロブロツクであるスキツプマクロブロツクで構成されるピクチヤとして符号化される。
【０１２９】
ステツプＳＰ２４又はステツプＳＰ２５が終了したら、ＶＢＶバツフア占有量計算部６２によつて、ステツプＳＰ２４又はステツプＳＰ２５による発生ビツト量からＶＢＶバツフアの占有量Ｂｊを計算する（ステツプＳＰ２６）。なお、ＶＢＶバツフアの占有量Ｂｊは、ピクチヤｊの符号化前のＶＢＶバツフアの占有量からピクチヤｊによる発生ビツト量を引き、１ピクチヤ間の時間にＶＢＶバツフアに蓄積されるビツト量を加算することによつて得ることができる。次に、次のピクチヤのピクチヤタイプを判定する（ステツプＳＰ２７）。ピクチヤタイプがＢピクチヤの場合には、ＶＢＶバツフアの占有量ＢｊがＢピクチヤに対する占有量判定用しきい値Ｔｈ（Ｂ）より小さいか否かを判別する（ステツプＳＰ２８）。ピクチヤタイプがＰピクチヤの場合には、ＶＢＶバツフアの占有量ＢｊがＰピクチヤに対する占有量判定用しきい値Ｔｈ（Ｐ）より小さいか否かを判断する（ステツプＳＰ２９）。ピクチヤタイプがＩピクチヤの場合には、ＶＢＶバツフアの占有量ＢｊがＩピクチヤに対する占有量判定用しきい値Ｔｈ（Ｉ）より小さいか否かを判断する（ステツプＳＰ３０）。なお、占有量判定用しきい値は、Ｔｈ（Ｂ）＞Ｔｈ（Ｐ）＞Ｔｈ（Ｉ）となるように設定されている。
【０１３０】
ＢｊがＴｈ（Ｂ）より小さくない場合（ステツプＳＰ２８において否定結果が得られる場合）、ＢｊがＴｈ（Ｐ）より小さくない場合（ステツプＳＰ２９において否定結果が得られた場合）又はＢｊがＴｈ（Ｉ）より小さくない場合（ステツプＳＰ３０において否定結果が得られる場合）は、次のピクチヤをスキツプする必要がないので、スキツプフラグを“０”にする（ステツプＳＰ３１）。
【０１３１】
ＢｊがＴｈ（Ｂ）より小さい場合（ステツプＳＰ２８において肯定結果が得られる場合）、ＢｊがＴｈ（Ｐ）より小さい場合（ステツプＳＰ２９において肯定結果が得られた場合）又はＢｊがＴｈ（Ｉ）より小さい場合（ステツプＳＰ３０において肯定結果が得られた場合）は、パラメータｘが所定の符号化難易度判定用しきい値Ｔｈ（ｘ）を越えているか否かを判断する（ステツプＳＰ３２）。なお、しきい値Ｔｈ（ｘ）は、目標符号量に対して発生符号量が大きく上回つてしまうほど難しい絵柄か否かを判別するためのしきい値である。ｘがＴｈ（ｘ）を越えていない場合（Ｎ）は、絵柄は今後さほど難しくないことを意味し、次のピクチヤをスキツプする必要がないので、スキツプフラグを“０”にする（ステツプＳＰ３１）。逆に、ｘがＴｈ（ｘ）を越えている場合（肯定結果が得られる場合）は、今後も難しい絵柄が続くことを意味するので、この場合はＶＢＶバツフアのアンダフローの危険性が高いと判断して、次のピクチヤをスキツプするために、スキツプフラグを“１”にする（ステツプＳＰ３３）。
【０１３２】
スキツプフラグの設定（ステツプＳＰ３１、ステツプＳＰ３３）が終了したら、次のピクチヤの処理のために、ｊ＋１を新たなｊとして（ステツプＳＰ３４）、メインルーチンにリターンする（ステツプＳＰ３５）。
【０１３３】
以上説明したように、第２の実施の形態に係る画像符号化装置２５によれば、ピクチヤタイプ別にＶＢＶバツフアの占有量判定用しきい値を設定し、Ｂピクチヤ、Ｐピクチヤ、Ｉピクチヤの順に優先的にスキツプするようにすると共に、符号化が終了したピクチヤに引き続く数枚のピクチヤの符号化難易度に基づいてスキツプを行うか否かを判定するようにしたので、入力画像の絵柄が難しくなり、ＶＢＶバツフアのアンダフローが発生しそうな場合に、画質に対する影響の少ないＢピクチヤを優先的にスキツプすると共に、実際にはＶＢＶバツフアのアンダフローが発生しないような場合にはピクチヤのスキツプを行わないようにすることができ、画質に対する影響を極力抑えながら、ＶＢＶバツフアのアンダフローを防止することができる。
【０１３４】
なお、本発明は、上述の第２の実施の形態に限定されず、例えば、符号化難易度に基づいてスキツプを行うか否かを判定する際に、実施の形態で用いたパラメータｘの他に、符号化難易度が増加傾向にあるのか減少傾向にあるのかという変化傾向の情報も加えて判定することで、今後の入力画像の絵柄の難しさの予測精度を更に向上させて、スキツプを行うか否かの判定をより適切に行うことができる。すなわち、例えば、今は符号化難易度が大きくても符号化難易度が減少傾向にある場合にはスキツプを行わなくともＶＢＶバツフアのアンダフローが発生しない場合もあるので、このような場合にはスキツプを行わないようにすることでスキツプを極力少なくすることが可能となる。なお、符号化難易度の変化傾向の情報は、例えば、時系列的に求まつた符号化難易度を最小自乗法等により直線近似し、その傾きから求めることができる。この場合、符号化難易度の変化傾向の情報は、例えば、図９における符号化難易度計算部６３において求める。
【０１３５】
また、上記第２の実施の形態では、図８に示したように、エンコーダ２８の他に別のエンコーダを設けることなく、圧縮符号化する前の画像データの特徴に基づいて発生符号量の制御を行うフイードフオワード型のレート制御を行う構成としたが、本発明は、圧縮符号化後のデータ量を見積もるためにエンコーダ２８とは別の１バス目のエンコーダを設けて、この１バス目のエンコーダによつて圧縮符号化することによつて見積もられたデータ量に基づいて２バス目のエンコーダ２８における発生符号量の制御を行うフイードフオワード型のレート制御を行う構成にも適用することができる。この場合には、１バス目のエンコーダによつて圧縮符号化することによつて得られた発生符号量に基づいて符号化難易度を求めることが可能である。
【０１３６】
更に、本発明は、フイードフオワード型のレート制御を行う構成に限らず、既に圧縮符号化したピクチヤの符号化難易度に基づいて今後のピクチヤの符号化難易度を予測することで、ＭＰＥＧ方式の圧縮アルゴリズムとして有名なＴＭ５（test model 5:ISO/IEC JTC/SC29(1993)）等で代表されるような、過去に圧縮符号化して得られた発生符号量に基づいて発生符号量の制御を行うフイードバツク型のレート制御を行う構成にも適用することができる。この場合、例えば、過去に圧縮符号化したピクチヤのグローバル・コンプレキシテイ（Global Complexity）の傾向を分析し、直線近似等によつて今後の数枚分のピクチヤの符号化難易度を予測し、この予測した符号化難易度に基づいて実施の形態で用いたパラメータｘの値を求め、実施の形態と同様にパラメータｘの値に基づいてスキツプを行うか否かを判定するようにすれば良い。
【０１３７】
なお、グローバル・コンプレキシテイとは、画面の複雑さを示すパラメータであり、符号化の難易度と相関があり、具体的にはピクチヤの圧縮符号化時の発生符号量とピクチヤの圧縮符号化時の平均量子化スケールコード（量子化特性値）との積として求められる（例えば、オーム社発行の「テレビジヨン学会マルチメデイア選書  ＭＰＥＧ」の第１１１ページ参照）。
【０１３８】
また、フイードフオワード型のレート制御を行う構成において直線近似等によつて符号化難易度の変化傾向を求める場合や、フイードバツク型のレート制御を行う構成において直線近似等によつて今後の数枚分のピクチヤの符号化難易度を予測する場合において、シーンチエンジ時には符号化難易度の連続性がなくなるので、シーンチエンジ時には、符号化難易度の変化傾向を求める処理や符号化難易度を予測する処理をシーンチエンジ前までで完結させ、シーンチエンジ後に新たに処理を行うようにすれば、より精度が向上する。
【０１３９】
また、符号化難易度は、実施の形態で挙げたイントラＡＣやＭＥ残差等を用いたものに限らず、ピクチヤの符号化の難易度を表すものであれば、他のパラメータでも良い。
【０１４０】
また、上記第２の実施の形態では、ピクチヤタイプ別にＶＢＶバツフアの占有量判定用しきい値を変えているが、本発明はＶＢＶバツフアの占有量判定用しきい値がピクチヤタイプによらずに一定である場合も含む。
【産業上の利用可能性】
【０１４１】
本発明は、送信側で画像データを圧縮して送信すると共に、受信側で圧縮された画像データを伸張する通信システムや、画像データを圧縮して記録すると共に、再生時には圧縮された画像データを伸張して出力する圧縮画像記録再生装置等に利用できる。
【図面の簡単な説明】
【０１４２】
【図１】ＶＢＶバツフアにおけるデータ占有量の推移の説明に供する略線図である。
【図２】ＶＢＶバツフアにおけるアンダフローの説明に供する略線図である。
【図３】本発明の第１の実施の形態である画像符号化装置及び画像復号装置の概略構成を示すブロツク図である。
【図４】ＶＢＶバツフアにおけるデータ占有量が第１のしきい値を下回つた場合のデータ占有量の推移の説明に供する略線図である。
【図５】ＶＢＶバツフアにおけるデータ占有量が第２のしきい値を下回つた場合のデータ占有量の推移の説明に供する略線図である。
【図６】ＶＢＶバツフアにおけるデータ占有量が第３のしきい値を下回つた場合のデータ占有量の推移の説明に供する略線図である。
【図７】符号化制御回路の動作の説明に供するフローチヤートである。
【図８】本発明の第２の実施の形態である画像符号化装置の概略の構成を示すブロツク図である。
【図９】図８の画像符号化装置の詳細な構成を示すブロツク図である。
【図１０】図９の符号化制御部の動作の説明に供するフローチヤートである。
【符号の説明】
【０１４３】
１……画像符号化装置、２……画像符号化タイプ指定回路、３……画像符号化順序並替え回路、４……スキヤンコンバータ、５……予測モード決定回路、６……動きベクトル検出回路、７……符号化制御回路、８……演算回路、９……ＤＣＴ変換回路、１０……量子化回路、１１……可変長符号化回路、１２……逆量子化回路、１３……画像復号装置、１４……逆ＤＣＴ変換回路、１５……演算器、１６……フレームメモリ、１７……動き補償回路、１８……デコーダバツフア、１９……復号部、２６……エンコーダ制御部、２７……ＦＩＦＯメモリ、２８……エンコーダ、３０……動き検出回路、３１……符号化制御部、３３……ＣＰＵ、３４……ＲＯＭ、３５……ＲＡＭ、４３……イントラＡＣ演算回路、４４……減算回路、４５……ＤＣＴ変換回路、４６……量子化回路、４７……可変長符号化回路、４８……バツフアメモリ、４９……逆量子化回路、５０……逆ＤＣＴ変換回路、５２……動き補償回路、６１……ＭＥ残差計算部、６２……ＶＢＶバツフア占有量計算部、６３……符号化難易度計算部、６４……目標符号量決定部、６５……量子化インデツクス決定部、６６……スキツプ制御部。
【図１】
2007028647.tif 000003
【図２】
2007028647.tif 000004
【図３】
2007028647.tif 000005
【図４】
2007028647.tif 000006
【図５】
2007028647.tif 000007
【図６】
2007028647.tif 000008
【図７】
2007028647.tif 000009
【図８】
2007028647.tif 000010
【図９】
2007028647.tif 000011
【図１０】
2007028647.tif 000012