(57)【要約】【課題】シーンチェンジで初期化された仮想バッファ容量を参照せずに量子化インデックスデータを決定する。【解決手段】ステップＳ２１でＭＥ残差情報ＭＥ＿ｉｎｆｏが取得され、ステップＳ２２でＭＥ＿ｉｎｆｏ−ａｖｇ＞Ｄであるか否かが判断され、閾値Ｄより大きいと判断された場合、ステップＳ２３で仮想バッファの初期バッファ容量が更新される。ステップＳ２２で算出された値は閾値Ｄより小さいと判断された場合、ステップＳ２４で、処理中のピクチャは、シーンチェンジの次のピクチャであるか、または、シーンチェンジ発生のピクチャと同じタイプの次のピクチャであるか否か（ＴＭ５）が判断され、シーンチェンジの次、または、同じタイプの次のピクチャであると判断された場合、ステップＳ２５で初期バッファ容量が算出されて更新される。ステップＳ２６でＭＥ残差情報の平均値ａｖｇが更新される。本発明はビデオエンコーダに適用できる。【選択図】      図７
2004274236.tif 000002
【特許請求の範囲】
【請求項１】
フレーム画像データを符号化する符号化装置において、
現在処理中の第１のフレーム画像データに対して、以前に符号化された所定の第２のフレーム画像データの符号化処理に関する情報を用いて量子化インデックスデータを決定するか、または、仮想バッファの初期バッファ容量の値を初期化し、初期化された前記仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定手段と、
前記決定手段により決定された前記量子化インデックスデータを基に、前記第１のフレーム画像データの量子化を実行する量子化手段と、
前記量子化手段により量子化された前記第１のフレーム画像データに対応する量子化係数データを符号化する符号化手段と
を備え、
前記決定手段は、前記第１のフレーム画像データが所定の条件に合致した場合、および、前記第２のフレーム画像データが、前記所定の条件に合致していたために前記仮想バッファの初期バッファ容量の値が初期化されていた場合、前記仮想バッファの初期バッファ容量の値を初期化する
ことを特徴とする符号化装置。
【請求項２】
前記第２のフレーム画像データは、前記第１のフレーム画像データに対して、１フレーム前に符号化されたフレーム画像データである
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記第２のフレーム画像データは、前記第１のフレーム画像データと同一のピクチャタイプであり、かつ、前記同一のピクチャタイプの前記フレーム画像データのうち、前記第１のフレーム画像データより１つ前に符号化されたフレーム画像データである
ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
１つ前のフレーム画像データと次に符号化処理するフレーム画像データとの、絵柄の変化を検出する検出手段を更に備え、
前記決定手段は、前記検出手段による検出結果を基に、前記第１のフレーム画像データと、前記第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生したと判断した場合、前記所定の条件に合致したと判断して、前記仮想バッファの初期バッファ容量の値を初期化する
ことを特徴とする請求項１に記載の符号化装置。
【請求項５】
前記決定手段は、前記第１のフレーム画像データと、前記第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生したことを示す情報を取得した場合、前記所定の条件に合致したと判断して、前記仮想バッファの初期バッファ容量の値を初期化する
ことを特徴とする請求項１に記載の符号化装置。
【請求項６】
１つ前のフレーム画像データと次に符号化処理するフレーム画像データとの、絵柄の変化を検出する第１の検出手段と、
前記フレーム画像データの符号化の難易度を検出する第２の検出手段と
を更に備え、
前記決定手段は、
前記第１の検出手段による検出結果を基に、前記第１のフレーム画像データと、前記第１のフレーム画像データよりも１フレーム前に符号化されたフレー
ム画像データとの間でシーンチェンジが発生したか否かを判断し、
前記第２の検出結果による検出結果を基に、前記シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであるのか、または、
符号化が難しい画像から符号化が簡単な画像へのシーンチェンジであるのかを
判断する
ことを特徴とする請求項１に記載の符号化装置。
【請求項７】
前記決定手段は、前記第１のフレーム画像データと、前記第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生し、かつ、前記シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断した場合、前記所定の条件に合致したと判断して、前記仮想バッファの初期バッファ容量の値を初期化する
ことを特徴とする請求項６に記載の符号化装置。
【請求項８】
前記決定手段は、前記第１のフレーム画像データと、前記第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生したと判断した場合、更に、前記シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断したとき、または、前記シーンチェンジは、符号化が難しい画像から符号化が簡単な画像へ所定の値以上の変化量で変化したシーンチェンジであると判断し、かつ、前記シーンチェンジ後の画像の符号化難易度が所定の値以上であると判断したとき、前記所定の条件に合致したと判断して、前記仮想バッファの初期バッファ容量の値を初期化する
ことを特徴とする請求項６に記載の符号化装置。
【請求項９】
前記第１の検出手段は、１つ前のフレーム画像データの絵柄と次に符号化処理するフレーム画像データの絵柄との差分を示す第１の指標を算出する第１の算出手段を備え、前記第１の算出手段により算出された前記第１の指標を基に、絵柄の変化を検出し、
前記第２の検出手段は、前記フレーム画像データの符号化難易度を示す第２の指標を算出する第２の算出手段を備え、前記第２の算出手段により算出された第２の指標を基に、前記フレーム画像データの符号化難易度を検出する
ことを特徴とする請求項６に記載の符号化装置。
【請求項１０】
前記第１の算出手段により算出された前記第１の指標の平均値を算出する第３の算出手段を更に備え、
前記決定手段は、前記第１の算出手段により算出された前記第１のフレーム画像に対する前記第１の指標から、前記第３の算出手段により、前記第１のフレーム画像データよりも１つ前のフレーム画像データ以前に符号化されたフレーム画像データの情報を用いて算出された前記第１の指標の平均値を減算した値が、所定の閾値以上であり、かつ、前記第２の算出手段により算出された、前記第１のフレーム画像データよりも１つ前のフレーム画像データに対応する第２の指標が、前記第１のフレーム画像データに対応する第２の指標より小さかった場合に、前記所定の条件に合致したと判断して、前記仮想バッファの初期バッファ容量の値を初期化する
ことを特徴とする請求項９に記載の符号化装置。
【請求項１１】
前記所定の閾値は、１つ前のフレーム画像データから次に符号化処理するフレーム画像データの間でシーンチェンジが発生したか否かを判断するために設定される閾値であり、
前記決定手段は、前記第２の算出手段により算出された、１つ前のフレーム画像データに対応する第２の指標が、次に符号化処理するフレーム画像データに対応する第２の指標より小さかった場合、前記シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断する
ことを特徴とする請求項１０に記載の符号化装置。
【請求項１２】
前記第１の算出手段により算出された前記第１の指標の平均値を算出する第３の算出手段を更に備え、
前記決定手段は、
前記第１の算出手段により算出された前記第１のフレーム画像データに対する前記第１の指標から、前記第３の算出手段により、前記第１のフレーム画像データよりも１つ前のフレーム画像データ以前に符号化されたフレーム画像データの情報を用いて算出された前記第１の指標の平均値を減算した値が第１の
閾値以上である場合、
前記第２の算出手段により算出された、前記第１のフレーム画像データよりも１つ前のフレーム画像データに対応する第２の指標が、前記第１のフレーム
画像データに対応する第２の指標より小さいとき、
または、
前記第２の算出手段により算出された、前記第１のフレーム画像データよりも１つ前のフレーム画像データに対応する第２の指標から、前記第１のフレーム画像に対応する第２の指標を減算した値が第２の閾値以上であり、かつ、前
記第１のフレーム画像に対応する第２の指標が第３の閾値以上であるとき、
前記所定の条件に合致したと判断して、前記仮想バッファの初期バッファ容量の値を初期化する
ことを特徴とする請求項９に記載の符号化装置。
【請求項１３】
前記第１の閾値は、１つ前のフレーム画像データから次に符号化処理するフレーム画像データの間でシーンチェンジが発生したか否かを判断するために設定される閾値であり、
前記決定手段は、前記第２の算出手段により算出された、前記１つ前のフレーム画像データに対応する第２の指標が、前記次に符号化処理するフレーム画像データに対応する第２の指標より小さかった場合、前記シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断し、
前記第２の閾値は、前記シーンチェンジによる画像の変化量が大きいか否かを判断するために設定される閾値であり、
前記第３の閾値は、前記シーンチェンジ後の画像の符号化難易度が高いか否かを判断するために設定される閾値である
ことを特徴とする請求項１２に記載の符号化装置。
【請求項１４】
前記フレーム画像データは、全て、フレーム間順方向予測符号化画像データである
ことを特徴とする請求項１に記載の符号化装置。
【請求項１５】
フレーム画像データを符号化する符号化装置の符号化方法において、
現在処理中の第１のフレーム画像データが所定の条件に合致するか否かを判断する第１の判断ステップと、
前記第１の判断ステップの処理により、前記第１のフレーム画像データが所定の条件に合致すると判断された場合、仮想バッファの初期バッファ容量の値を初期化して更新する第１の更新ステップと、
前記第１の判断ステップの処理により、前記第１のフレーム画像データが前記所定の条件に合致しないと判断された場合、以前に符号化された所定の第２のフレーム画像データが前記所定の条件に合致していたために、前記仮想バッファの初期バッファ容量の値が初期化されたか否かを判断する第２の判断ステップと、前記第１の判断ステップの処理により、前記第２のフレーム画像データが前記所定の条件に合致していたために、前記仮想バッファの初期バッファ容量の値が初期化されたと判断された場合、前記仮想バッファを初期化して更新する第２の更新ステップと
を含むことを特徴とする符号化方法。
【請求項１６】
前記第２のフレーム画像データは、前記第１のフレーム画像データに対して、１フレーム前に符号化されたフレーム画像データである
ことを特徴とする請求項１５に記載の符号化方法。
【請求項１７】
前記第２のフレーム画像データは、前記第１のフレーム画像データと同一のピクチャタイプであり、かつ、前記同一のピクチャタイプの前記フレーム画像データのうち、前記第１のフレーム画像データより１つ前に符号化されたフレーム画像データである
ことを特徴とする請求項１５に記載の符号化方法。
【請求項１８】
フレーム画像データを符号化する処理をコンピュータに実行させるプログラムであって、
現在処理中の第１のフレーム画像データが所定の条件に合致するか否かを判断する第１の判断ステップと、
前記第１の判断ステップにより、前記第１のフレーム画像データが所定の条件に合致すると判断された場合、仮想バッファの初期バッファ容量の値を初期化して更新する第１の更新ステップと、
前記第１の判断ステップの処理により、前記第１のフレーム画像データが前記所定の条件に合致しないと判断された場合、以前に符号化された所定の第２のフレーム画像データが前記所定の条件に合致していたために、前記仮想バッファの初期バッファ容量の値が初期化されたか否かを判断する第２の判断ステップと、前記第１の判断ステップの処理により、前記第２のフレーム画像データが前記所定の条件に合致していたために、前記仮想バッファの初期バッファ容量の値が初期化されたと判断された場合、前記仮想バッファを初期化して更新する第２の更新ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１９】
フレーム画像データを符号化する処理をコンピュータに実行させるプログラムであって、
現在処理中の第１のフレーム画像データが所定の条件に合致するか否かを判断する第１の判断ステップと、
前記第１の判断ステップにより、前記第１のフレーム画像データが所定の条件に合致すると判断された場合、仮想バッファの初期バッファ容量の値を初期化して更新する第１の更新ステップと、
前記第１の判断ステップの処理により、前記第１のフレーム画像データが前記所定の条件に合致しないと判断された場合、以前に符号化された所定の第２のフレーム画像データが前記所定の条件に合致していたために、前記仮想バッファの初期バッファ容量の値が初期化されたか否かを判断する第２の判断ステップと、前記第１の判断ステップの処理により、前記第２のフレーム画像データが前記所定の条件に合致していたために、前記仮想バッファの初期バッファ容量の値が初期化されたと判断された場合、前記仮想バッファを初期化して更新する第２の更新ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化装置および符号化方法、プログラム、並びに記録媒体に関し、特に、ＶＢＶバッファ破綻を回避するためのレート制御が行われる場合に用いて好適な、符号化装置および符号化方法、プログラム、並びに記録媒体に関する。
【０００２】
【従来の技術】
近年、映像データおよび音声データを圧縮して情報量を減らす方法として、種々の圧縮符号化方法が提案されており、その代表的なものにＭＰＥＧ２（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ｐｈａｓｅ  ２）がある。ＭＰＥＧ２において、フィードバック型の量子化制御が行われる場合、通常、αフレーム目の符号化において用いられたＱスケールを用いて、（α＋１）フレーム目の符号化において最適な量子化ステップサイズが決定される。
【０００３】
しかしながら、図１に示されるように、画像の符号化難易度が低い画像１に続いて、画像の符号化難易度が高い画像２が存在した場合、従来の量子化制御方法では、符号化難易度が低く、エンコードが容易な画像１における小さなＱスケールを用いて、それに続く、符号化難易度が高い画像２に対してエンコードが開始されてしまう。このため、符号化時に、画面２の途中までで、与えられたビット量を消費してしまい、画像２の符号化が画像の途中までしか正しく行われないという現象が発生する。
【０００４】
例えば、ＭＰＥＧ２では、遅延時間を１５０［ｍｓ］以下に短縮するローディレイコーディング（Ｌｏｗ  Ｄｅｌａｙ  Ｃｏｄｉｎｇ）と呼ばれる手法が規格によって用意されている。ローディレイコーディングにおいては、リオーダリングディレイの原因となるＢピクチャ、および、発生符号量の多いＩピクチャを使用せずに、Ｐピクチャのみを使用し、このＰピクチャを、数スライスからなるイントラスライスと、残り全てのスライスからなるインタースライスとに区切ることにより、リオーダリングなしに符号化することができるようになされている。
【０００５】
例えば、図１の画像１および画像２が、ローディレイコーディングされている場合、画像の符号化難易度が低い画像１に続いて、画像の符号化難易度が高い画像２がコーディングされると、符号化難易度が高い画像２に対して、小さなＱスケールでエンコードが開始されてしまうため、画像２の画面下端のスライスの一部に前のピクチャが残ってしまうという現象が発生する。この現象は、イントラスライスが、次に問題発生箇所に現れるまで、影響を及ぼしてしまう。
【０００６】
この課題を解決するために、ローディレイモードにおいて、復号器側で高画質な画像を再生できるような符号化データを生成し得る、符号化装置および符号化方法が提案されている（例えば、特許文献１参照）。
【０００７】
【特許文献１】
特開平１１−２０５８０３号公報
【０００８】
すなわち、通常のフィードバック型の量子化制御を行ってイントラスライスおよびインタースライスごとに最適な量子化ステップサイズを決定して量子化制御を行う場合において、次のピクチャが１つ前のピクチャと絵柄の大きく異なるシーンチェンジが検出されるようにし、シーンチェンジ発生時には、１つ前のピクチャを基に算出された量子化インデックスデータＱ（ｊ＋１）を用いるのではなく、これから符号化しようとするピクチャのＭＥ残差情報に基づいて、仮想バッファの初期バッファ容量ｄ（０）を更新することにより、新たに量子化インデックスデータＱ（ｊ＋１）が算出し直されるようにする。これにより、シーンチェンジが起きた場合でも、イントラスライスおよびインタースライスごとに最適な量子化ステップサイズが決定されて、量子化制御が行われる。
【０００９】
ＭＥ残差とは、ピクチャ単位で算出されるものであり、１つ前のピクチャと次のピクチャにおける輝度の差分値の合計値である。したがってＭＥ残差情報が大きな値を示すときには、１つ前のピクチャの絵柄と次に符号化処理するピクチャの絵柄が大きく異なっている（いわゆるシーンチェンジ）ことを表している。
【００１０】
この符号化方法について、図２のフローチャートを参照して説明する。
【００１１】
ステップＳ１において、例えば、動きベクトルを検出するときに得られるＭＥ残差情報が取得される。ここで取得されたＭＥ残差情報をＭＥ＿ｉｎｆｏとする。
【００１２】
ステップＳ２において、取得されたＭＥ残差情報から、ＭＥ残差情報の平均値ａｖｇが減算されて、算出された値が、所定の閾値Ｄよりも大きいか否かが判断される。ＭＥ残差情報の平均値ａｖｇは、後述するステップＳ４において更新される値であり、次の式（１）で示される。
【００１３】
ａｖｇ＝１／２（ａｖｇ＋ＭＥ＿ｉｎｆｏ）・・・（１）
【００１４】
ステップＳ２において、算出された値は、所定の閾値Ｄより小さいと判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差があまりない、すなわちシーンチェンジがなかったと判断されるので、処理はステップＳ４に進む。
【００１５】
ステップＳ２において、算出された値は、所定の閾値Ｄより大きいと判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差が大きい、すなわち、シーンチェンジがあったと判断されるので、ステップＳ３において、式（２）、式（３）、式（４）および式（５）に基づいて、仮想バッファの初期バッファ容量ｄ（０）が算出されて、仮想バッファが更新される。
【００１６】
ピクチャ単位の画像の難しさＧＣ（Ｇｌｏｂａｌ  Ｃｏｍｐｌｅｘｉｔｙ）を表すＸは、次の式（２）で表される。
Ｘ＝Ｔ×Ｑ・・・（２）
ただし、Ｔは、ピクチャ単位の発生符号量であり、Ｑは、ピクチャ単位の量子化ステップサイズの平均値である。
【００１７】
そして、ピクチャ単位の画像の難しさＸを、ＭＥ残差情報ＭＥ＿ｉｎｆｏと等しいとした場合、すなわち、次の式（３）が満たされている場合、ピクチャ全体の量子化インデックスデータＱは、式（４）で示される。
【００１８】
Ｘ＝ＭＥ＿ｉｎｆｏ・・・（３）
Ｑ＝｛ｄ（０）×３１｝／｛２×（ｂｒ／ｐｒ）｝・・・（４）
ただし、ｂｒは、ビットレートであり、ｐｒは、ピクチャレートである。
【００１９】
そして、式（４）における仮想バッファの初期バッファ容量ｄ（０）は、次の式（５）で示される。
ｄ（０）＝２×｛（ＭＥ＿ｉｎｆｏ×ｂｒ／ｐｒ）／３１×Ｔ｝・・・（５）
【００２０】
この仮想バッファの初期バッファ容量ｄ（０）を、再度、式（４）に代入することにより、ピクチャ全体の量子化インデックスデータＱが算出される。
【００２１】
ステップＳ２において、算出された値は、所定の閾値Ｄより小さいと判断された場合、もしくは、ステップＳ３の処理の終了後、ステップＳ４において、次に供給されるピクチャに備えて、ＭＥ残差情報の平均値ａｖｇが、上述した式（１）により計算されて更新され、処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。
【００２２】
図２のフローチャートを用いて説明した処理により、次のピクチャが１つ前のピクチャと絵柄の大きく異なるシーンチェンジが起きた場合には、これから符号化しようとするピクチャのＭＥ残差情報ＭＥ＿ｉｎｆｏに基づいて、仮想バッファの初期バッファ容量ｄ（０）が更新され、この値を基に、新たに量子化インデックスデータＱ（ｊ＋１）が算出されるので、シーンチェンジに対応して、イントラスライスおよびインタースライスごとに最適な量子化ステップサイズが決定される。
【００２３】
【発明が解決しようとする課題】
図３を用いて、図２を用いて説明した処理が実行された場合における、それぞれのピクチャの最初の符号化位置のマクロブロックと最後の符号化位置のマクロブロックにおける、仮想バッファ容量の変化について説明する。図３のピクチャ２１乃至ピクチャ２５においては、図中左側のピクチャが、時間的に前に符号化されるピクチャであるものとする。また、ここでは、ピクチャ２１乃至ピクチャ２５は、それぞれ、ｎ＋１個のマクロブロックで構成されるものとして説明する。
【００２４】
例えば、ピクチャ２１とピクチャ２２との絵柄の大きく異なる場合、すなわち、シーンチェンジが起きた場合、ピクチャ２２の符号化時に、図２を用いて説明した処理が実行される。したがって、ピクチャ２２の先頭の符号化位置における仮想バッファ容量ｄ１＿０は、ピクチャ２１の最後の符号化位置における仮想バッファ容量ｄ０＿ｎよりも大きな値が設定されるので、ピクチャ２２の符号化時に、画面の途中までで、与えられたビット量を消費してしまうことを防ぐことができる。
【００２５】
そして、ピクチャ２３乃至ピクチャ２５において、シーンチェンジが検出されなかった場合、ピクチャ２３の先頭の符号化位置における仮想バッファ容量ｄ２＿０は、ピクチャ２２の最後の符号化位置における仮想バッファ容量ｄ１＿ｎと近似した値となり、ピクチャ２４の先頭の符号化位置における仮想バッファ容量ｄ３＿０は、ピクチャ２３の最後の符号化位置における仮想バッファ容量ｄ２＿ｎと近似した値となり、ピクチャ２５の先頭の符号化位置における仮想バッファ容量ｄ４＿０は、ピクチャ２４の最後の符号化位置における仮想バッファ容量ｄ３＿ｎと近似した値となる。
【００２６】
このように、一般的に行われるレート制御では、マクロブロック単位でフィードバックすることにより、仮想バッファ容量、すなわち、量子化値を決定するため、シーンチェンジにおいて量子化値が大きな値となった場合、その後のピクチャに対しては、フィードバックにより量子化値が絵柄に適切な値に落ち着くまで、シーンチェンジのように大幅に絵柄が変化しないにも関わらず、必要以上に大きな量子化値を用いて符号化が行われる。このため、シーンチェンジ後の数ピクチャの画質が大幅に劣化してしまっていた。
【００２７】
更に、ローディレイコーディングのみならず、他の方法における符号化処理においても、例えば、シーンチェンジのために発生符号量が増大することによるＶＢＶバッファ破綻を回避するために、量子化値を大きくするような制御が行われているような場合、フィードバックにより量子化値が絵柄に適切な値に落ち着くまでの期間、必要以上に大きな量子化値を用いて符号化が行われることにより、画質劣化が発生してしまう。
【００２８】
また、ＭＰＥＧ−２  ＴＭ５（Ｔｅｓｔ  Ｍｏｄｅｌ  ５）においては、ピクチャタイプに応じたレート制御が行われるため、符号化対象ピクチャの仮想バッファの初期値に１つ前の同じピクチャタイプの仮想バッファの値を用いるようになされている。したがって、ＴＭ５が適用されている画像においては、シーンチェンジ対策などにより量子化値を大きくしたピクチャと同じピクチャタイプの次のピクチャにおいて、同様にして、画質劣化を引き起こす。
【００２９】
本発明はこのような状況に鑑みてなされたものであり、シーンチェンジ発生時などに仮想バッファが更新された場合においても、それに続く数ピクチャの画質劣化を防ぐことができるようにするものである。
【００３０】
【課題を解決するための手段】
本発明の符号化装置は、現在処理中の第１のフレーム画像データに対して、以前に符号化された所定の第２のフレーム画像データの符号化処理に関する情報を用いて量子化インデックスデータを決定するか、または、仮想バッファの初期バッファ容量の値を初期化し、初期化された仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定手段と、決定手段により決定された量子化インデックスデータを基に、第１のフレーム画像データの量子化を実行する量子化手段と、量子化手段により量子化された第１のフレーム画像データに対応する量子化係数データを符号化する符号化手段とを備え、決定手段は、第１のフレーム画像データが所定の条件に合致した場合、および、第２のフレーム画像データが、所定の条件に合致していたために仮想バッファの初期バッファ容量の値が初期化されていた場合、仮想バッファの初期バッファ容量の値を初期化することを特徴とする。
【００３１】
第２のフレーム画像データは、第１のフレーム画像データに対して、１フレーム前に符号化されたフレーム画像データであるものとすることができる。
【００３２】
第２のフレーム画像データは、第１のフレーム画像データと同一のピクチャタイプであり、かつ、同一のピクチャタイプのフレーム画像データのうち、第１のフレーム画像データより１つ前に符号化されたフレーム画像データであるものとすることができる。
【００３３】
１つ前のフレーム画像データと次に符号化処理するフレーム画像データとの、絵柄の変化を検出する検出手段を更に備えさせるようにすることができ、決定手段には、検出手段による検出結果を基に、第１のフレーム画像データと、第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生したと判断した場合、所定の条件に合致したと判断して、仮想バッファの初期バッファ容量の値を初期化させるようにすることができる。
【００３４】
決定手段には、第１のフレーム画像データと、第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生したことを示す情報を取得した場合、所定の条件に合致したと判断して、仮想バッファの初期バッファ容量の値を初期化させるようにすることができる。
【００３５】
１つ前のフレーム画像データと次に符号化処理するフレーム画像データとの、絵柄の変化を検出する第１の検出手段と、フレーム画像データの符号化の難易度を検出する第２の検出手段とを更に備えさせるようにすることができ、決定手段には、第１の検出手段による検出結果を基に、第１のフレーム画像データと、第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生したか否かを判断させるようにすることができ、第２の検出結果による検出結果を基に、シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであるのか、または、符号化が難しい画像から符号化が簡単な画像へのシーンチェンジであるのかを判断させるようにすることができる。
【００３６】
決定手段には、第１のフレーム画像データと、第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生し、かつ、シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断した場合、所定の条件に合致したと判断して、仮想バッファの初期バッファ容量の値を初期化させるようにすることができる。
【００３７】
決定手段には、第１のフレーム画像データと、第１のフレーム画像データよりも１フレーム前に符号化されたフレーム画像データとの間でシーンチェンジが発生したと判断した場合、更に、シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断したとき、または、シーンチェンジは、符号化が難しい画像から符号化が簡単な画像へ所定の値以上の変化量で変化したシーンチェンジであると判断し、かつ、シーンチェンジ後の画像の符号化難易度が所定の値以上であると判断したとき、所定の条件に合致したと判断して、仮想バッファの初期バッファ容量の値を初期化させるようにすることができる。
【００３８】
第１の検出手段には、１つ前のフレーム画像データの絵柄と次に符号化処理するフレーム画像データの絵柄との差分を示す第１の指標を算出する第１の算出手段を備えさせるようにすることができ、第１の算出手段により算出された第１の指標を基に、絵柄の変化を検出させるようにすることができ、第２の検出手段には、フレーム画像データの符号化難易度を示す第２の指標を算出する第２の算出手段を備えさせるようにすることができ、第２の算出手段により算出された第２の指標を基に、フレーム画像データの符号化難易度を検出させるようにすることができる。
【００３９】
第１の算出手段により算出された第１の指標の平均値を算出する第３の算出手段を更に備えさせるようにすることができ、決定手段には、第１の算出手段により算出された第１のフレーム画像に対する第１の指標から、第３の算出手段により、第１のフレーム画像データよりも１つ前のフレーム画像データ以前に符号化されたフレーム画像データの情報を用いて算出された第１の指標の平均値を減算した値が、所定の閾値以上であり、かつ、第２の算出手段により算出された、第１のフレーム画像データよりも１つ前のフレーム画像データに対応する第２の指標が、第１のフレーム画像データに対応する第２の指標より小さかった場合に、所定の条件に合致したと判断して、仮想バッファの初期バッファ容量の値を初期化させるようにすることができる。
【００４０】
所定の閾値は、１つ前のフレーム画像データから次に符号化処理するフレーム画像データの間でシーンチェンジが発生したか否かを判断するために設定される閾値であるものとすることができ、決定手段には、第２の算出手段により算出された、１つ前のフレーム画像データに対応する第２の指標が、次に符号化処理するフレーム画像データに対応する第２の指標より小さかった場合、シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断させるようにすることができる。
【００４１】
第１の算出手段により算出された第１の指標の平均値を算出する第３の算出手段を更に備えさせるようにすることができ、決定手段には、第１の算出手段により算出された第１のフレーム画像に対する第１の指標から、第３の算出手段により、第１のフレーム画像データよりも１つ前のフレーム画像データ以前に符号化されたフレーム画像データの情報を用いて算出された第１の指標の平均値を減算した値が第１の閾値以上である場合、第２の算出手段により算出された、第１のフレーム画像データよりも１つ前のフレーム画像データに対応する第２の指標が、第１のフレーム画像データに対応する第２の指標より小さいとき、または、第２の算出手段により算出された、第１のフレーム画像データよりも１つ前のフレーム画像データに対応する第２の指標から、第１のフレーム画像に対応する第２の指標を減算した値が第２の閾値以上であり、かつ、第１のフレーム画像に対応する第２の指標が第３の閾値以上であるとき、所定の条件に合致したと判断して、仮想バッファの初期バッファ容量の値を初期化させるようにすることができる。
【００４２】
第１の閾値は、１つ前のフレーム画像データから次に符号化処理するフレーム画像データの間でシーンチェンジが発生したか否かを判断するために設定される閾値であるものとすることができ、決定手段には、第２の算出手段により算出された、１つ前のフレーム画像データに対応する第２の指標が、次に符号化処理するフレーム画像データに対応する第２の指標より小さかった場合、シーンチェンジは、符号化が簡単な画像から符号化が難しい画像へのシーンチェンジであると判断させるようにすることができ、第２の閾値は、シーンチェンジによる画像の変化量が大きいか否かを判断するために設定される閾値であるものとすることができ、第３の閾値は、シーンチェンジ後の画像の符号化難易度が高いか否かを判断するために設定される閾値であるものとすることができる。
【００４３】
フレーム画像データは、全て、フレーム間順方向予測符号化画像データであるものとすることができる。
【００４４】
本発明の符号化装置においては、現在処理中の第１のフレーム画像データに対して、以前に符号化された所定の第２のフレーム画像データの符号化処理に関する情報を用いて量子化インデックスデータが決定されるか、または、仮想バッファの初期バッファ容量の値が初期化され、初期化された仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータが決定され、量子化インデックスデータを基に、第１のフレーム画像データが量子化され、量子化された第１のフレーム画像データに対応する量子化係数データが符号化され、第１のフレーム画像データが所定の条件に合致した場合、および、第２のフレーム画像データが、所定の条件に合致していたために仮想バッファの初期バッファ容量の値が初期化されていた場合、仮想バッファの初期バッファ容量の値が初期化される。
【００４５】
本発明の符号化方法は、現在処理中の第１のフレーム画像データが所定の条件に合致するか否かを判断する第１の判断ステップと、第１の判断ステップの処理により、第１のフレーム画像データが所定の条件に合致すると判断された場合、仮想バッファの初期バッファ容量の値を初期化して更新する第１の更新ステップと、第１の判断ステップの処理により、第１のフレーム画像データが所定の条件に合致しないと判断された場合、以前に符号化された所定の第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたか否かを判断する第２の判断ステップと、第１の判断ステップの処理により、第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたと判断された場合、仮想バッファを初期化して更新する第２の更新ステップとを含むことを特徴とする。
【００４６】
第２のフレーム画像データは、第１のフレーム画像データに対して、１フレーム前に符号化されたフレーム画像データであるものとすることができる。
【００４７】
第２のフレーム画像データは、第１のフレーム画像データと同一のピクチャタイプであり、かつ、同一のピクチャタイプのフレーム画像データのうち、第１のフレーム画像データより１つ前に符号化されたフレーム画像データであるものとすることができる。
【００４８】
本発明の記録媒体に記録されているプログラムは、現在処理中の第１のフレーム画像データが所定の条件に合致するか否かを判断する第１の判断ステップと、第１の判断ステップにより、第１のフレーム画像データが所定の条件に合致すると判断された場合、仮想バッファの初期バッファ容量の値を初期化して更新する第１の更新ステップと、第１の判断ステップの処理により、第１のフレーム画像データが所定の条件に合致しないと判断された場合、以前に符号化された所定の第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたか否かを判断する第２の判断ステップと、第１の判断ステップの処理により、第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたと判断された場合、仮想バッファを初期化して更新する第２の更新ステップとを含むことを特徴とする。
【００４９】
本発明のプログラムは、現在処理中の第１のフレーム画像データが所定の条件に合致するか否かを判断する第１の判断ステップと、第１の判断ステップにより、第１のフレーム画像データが所定の条件に合致すると判断された場合、仮想バッファの初期バッファ容量の値を初期化して更新する第１の更新ステップと、第１の判断ステップの処理により、第１のフレーム画像データが所定の条件に合致しないと判断された場合、以前に符号化された所定の第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたか否かを判断する第２の判断ステップと、第１の判断ステップの処理により、第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたと判断された場合、仮想バッファを初期化して更新する第２の更新ステップとを含むことを特徴とする。
【００５０】
本発明の符号化方法およびプログラムにおいては、現在処理中の第１のフレーム画像データが所定の条件に合致するか否かが判断され、第１のフレーム画像データが所定の条件に合致すると判断された場合、仮想バッファの初期バッファ容量の値が初期化されて更新され、第１のフレーム画像データが所定の条件に合致しないと判断された場合、以前に符号化された所定の第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたか否かが判断され、第２のフレーム画像データが所定の条件に合致していたために、仮想バッファの初期バッファ容量の値が初期化されたと判断された場合、仮想バッファが初期化されて更新される。
【００５１】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【００５２】
図４は、本発明を適用した、ビデオエンコーダ６１の構成を示すブロック図である。
【００５３】
ビデオエンコーダ６１は、例えば、全てＰピクチャを用いたローディレイコーディング方式によって、画像データを符号化するようになされていてもよいし、例えば、１５フレームを１ＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｃｏｎｔｅｎｔｓ）として、フレーム内符号化画像データ（以下、Ｉピクチャと称する）、フレーム間順方向予測符号化画像データ（以下、Ｐピクチャと称する）、もしくは、双方向予測符号化画像データ（以下、Ｂピクチャと称する）の３つの画像タイプ（ピクチャタイプ）のうちのいずれの画像タイプとして処理するかを指定し、指定されたフレーム画像の画像タイプ（Ｉピクチャ、Ｐピクチャ、もしくは、Ｂピクチャ）に応じて、フレーム画像を符号化するようになされていてもよい。
【００５４】
前処理部７１は、順次入力される画像データの各フレーム画像を、必要に応じて、並べ替えたり、１６画素×１６ラインの輝度信号、および輝度信号に対応する色差信号によって構成されるマクロブロックに分割したマクロブロックデータを生成して、演算部７２、動きベクトル検出部７３、および、量子化制御部８３のイントラＡＣ算出部９１に供給する。
【００５５】
動きベクトル検出部７３は、マクロブロックデータの入力を受け、各マクロブロックの動きベクトルを、マクロブロックデータ、および、フレームメモリ８４に記憶されている参照画像データを基に算出し、動きベクトルデータとして、動き補償部８１に送出する。
【００５６】
演算部７２は、前処理部７１から供給されたマクロブロックデータについて、各マクロブロックの画像タイプに基づいた動き補償を行う。具体的には、演算部７２は、供給された画像データが、例えば、ローディレイコーディング方式によって符号化される場合、イントラスライスに対してはイントラモードで、インタースライスに対しては順方向予測モードで動き補償を行うようになされており、供給された画像データが、Ｉピクチャ、Ｐピクチャ、および、Ｂピクチャのいずれかのピクチャタイプに符号化されて、ＧＯＰを形成するようになされている場合、Ｉピクチャに対してはイントラモードで動き補償を行い、Ｐピクチャに対しては、順方向予測モードで動き補償を行い、Ｂピクチャに対しては、双方向予測モードで動き補償を行うようになされている。
【００５７】
ここでイントラモードとは、符号化対象となるフレーム画像をそのまま伝送データとする方法であり、順方向予測モードとは、符号化対象となるフレーム画像と過去参照画像との予測残差を伝送データとする方法であり、双方向予測モードとは、符号化対象となるフレーム画像と、過去と将来の参照画像との予測残差を伝送データとする方法である。
【００５８】
まず、マクロブロックデータが、イントラスライス、もしくは、イントラフレーム（Ｉピクチャ）、のうちの１つ、または、イントラマクロブロックであった場合、マクロブロックデータはイントラモードで処理される。すなわち、演算部７２は、入力されたマクロブロックデータを、そのまま演算データとしてＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ  ：離散コサイン変換）部７４に送出する。ＤＣＴ部７４は、入力された演算データに対しＤＣＴ変換処理を行うことによりＤＣＴ係数化し、これをＤＣＴ係数データとして、量子化部７５に送出する。
【００５９】
量子化部７５は、発生符号量制御部９２から供給される量子化インデックスデータＱ（ｊ＋１）に基づいて、入力されたＤＣＴ係数データに対して量子化処理を行い、量子化ＤＣＴ係数データとしてＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ；可変長符号化）部７７および逆量子化部７８に送出する。ここで、量子化部７５は、発生符号量制御部９２から供給される量子化インデックスデータＱ（ｊ＋１）に応じて、量子化処理における量子化ステップサイズを調整することにより、発生する符号量を制御するようになされている。
【００６０】
逆量子化部７８に送出された量子化ＤＣＴ係数データは、量子化部７５と同じ量子化ステップサイズによる逆量子化処理を受け、ＤＣＴ係数データとして、逆ＤＣＴ部７９に送出される。逆ＤＣＴ部７９は、供給されたＤＣＴ係数データに逆ＤＣＴ処理を施し、生成された演算データは、演算部８０に送出され、参照画像データとしてフレームメモリ８４に記憶される。
【００６１】
そして、マクロブロックデータがインタースライス、もしくは、インターフレームのうちの１つ、または、非イントラマクロブロックであった場合、演算部７２はマクロブロックデータについて、順方向予測モード、または、双方向予測モードによる動き補償処理を行う。
【００６２】
動き補償部８１は、フレームメモリ８４に記憶されている参照画像データを、動きベクトルデータに応じて動き補償し、順方向予測画像データ、または、双方向予測画像データを算出する。演算部７２は、マクロブロックデータについて、動き補償部８１より供給される順方向予測画像データ、または、双方向予測画像データを用いて減算処理を実行する。
【００６３】
すなわち、順方向予測モードにおいて、動き補償部８１は、フレームメモリ８４の読み出しアドレスを、動きベクトルデータに応じてずらすことによって、参照画像データを読み出し、これを順方向予測画像データとして演算部７２および演算部８０に供給する。演算部７２は、供給されたマクロブロックデータから、順方向予測画像データを減算して、予測残差としての差分データを得る。そして、演算部７２は、差分データをＤＣＴ部７４に送出する。
【００６４】
演算部８０には、動き補償部８１より順方向予測画像データが供給されており、演算部８０は、逆ＤＣＴ部から供給された演算データに、順方向予測画像データを加算することにより、参照画像データを局部再生し、フレームメモリ８４に出力して記憶させる。
【００６５】
また、双方向予測モードにおいて、動き補償部８１は、フレームメモリ８４の読み出しアドレスを、動きベクトルデータに応じてずらすことによって、参照画像データを読み出し、これを双方向予測画像データとして演算部７２および演算部８０に供給する。演算部７２は、供給されたマクロブロックデータから、双方向予測画像データを減算して、予測残差としての差分データを得る。そして、演算部７２は、差分データをＤＣＴ部７４に送出する。
【００６６】
演算部８０には、動き補償部８１より双方向予測画像データが供給されており、演算部８０は、逆ＤＣＴ部から供給された演算データに、双方向予測画像データを加算することにより、参照画像データを局部再生し、フレームメモリ８４に出力して記憶させる。
【００６７】
かくして、ビデオエンコーダ６１に入力された画像データは、動き補償予測処理、ＤＣＴ処理および量子化処理を受け、量子化ＤＣＴ係数データとして、ＶＬＣ部７７に供給される。ＶＬＣ部７７は、量子化ＤＣＴ係数データに対し、所定の変換テーブルに基づく可変長符号化処理を行い、その結果得られる可変長符号化データをバッファ８２に送出するとともに、マクロブロックごとの符号化発生ビット数を表す発生符号量データＢ（ｊ）を、量子化制御部８３の発生符号量制御部９２、およびＧＣ（Ｇｌｏｂａｌ  Ｃｏｍｐｌｅｘｉｔｙ）算出部９３にそれぞれ送出する。
【００６８】
ＧＣ算出部９３は、発生符号量データＢ（ｊ）を、マクロブロックごとに順次蓄積し、１ピクチャ分の発生符号量データＢ（ｊ）が全て蓄積された時点で、全マクロブロック分の発生符号量データＢ（ｊ）を累積加算することにより、１ピクチャ分の発生符号量を算出する。
【００６９】
そしてＧＣ算出部９３は、次の式（６）を用いて、１ピクチャのうちの、イントラスライス部分の発生符号量と、イントラスライス部分における量子化ステップサイズの平均値との積を算出することにより、イントラスライス部分の画像の難しさ（以下、これをＧＣと称する）を表すＧＣデータＸｉを求め、これを目標符号量算出部９４に供給する。
【００７０】
Ｘｉ＝（Ｔｉ／Ｎｉ）×Ｑｉ・・・（６）
ここで、Ｔｉは、イントラスライスの発生符号量、Ｎｉは、イントラスライス数、そして、Ｑｉは、イントラスライスの量子化ステップサイズの平均値である。
【００７１】
ＧＣ算出部９３は、これと同時に、次に示す式（７）を用いて、１ピクチャのうちの、インタースライス部分の発生符号量と、このインタースライス部分における量子化ステップサイズの平均値との積を算出することにより、インタースライス部分におけるＧＣデータＸｐを求め、これを目標符号量算出部９４に供給する。
【００７２】
Ｘｐ＝（Ｔｐ／Ｎｐ）×Ｑｐ・・・（７）
ここで、Ｔｐは、インタースライスの発生符号量、Ｎｐは、インタースライス数、Ｑｐは、インタースライスの量子化ステップサイズの平均値である。
【００７３】
目標符号量算出部９４は、ＧＣ算出部９３から供給されるＧＣデータＸｉを基に、次の式（８）を用いて、次のピクチャにおけるイントラスライス部分の目標発生符号量データＴｐｉを算出するとともに、ＧＣ算出部９３から供給されるＧＣデータＸｐを基に、次の式（９）を基に、次のピクチャにおけるインタースライス部分の目標発生符号量データＴｐｐを算出し、算出した目標発生符号量データＴｐｉおよびＴｐｐを発生符号量制御部９２にそれぞれ送出する。
【００７４】
Ｔｐｉ＝｛（Ｎｉ×Ｘｉ）／（Ｎｐ×Ｘｐ）＋（Ｎｐ×Ｘｉ）｝×Ｘｐ・・・（８）
【００７５】
Ｔｐｐ＝｛（Ｎｐ×Ｘｐ）／（Ｎｐ×Ｘｐ）＋（Ｎｉ×Ｘｉ）｝×Ｘｐ・・・（９）
【００７６】
ＭＥ残差算出部９５は、入力されるマクロブロックデータを基に、ＭＥ残差情報ＭＥ＿ｉｎｆｏを算出して、発生符号量制御部９２に出力する。ここで、ＭＥ残差情報ＭＥ＿ｉｎｆｏとは、ピクチャ単位で算出されるものであり、１つ前のピクチャと次のピクチャにおける輝度の差分値の合計値である。したがって、ＭＥ残差情報ＭＥ＿ｉｎｆｏが大きな値を示すときには、１つ前のピクチャの絵柄と、次に符号化処理するピクチャの絵柄とが大きく異なっている（いわゆるシーンチェンジ）ことを表している。
【００７７】
すなわち、１つ前のピクチャの絵柄と次に符号化処理するピクチャの絵柄が異なっているということは、１つ前のピクチャの画像データを用いて算出した目標発生符号量データＴｐｉおよびＴｐｐを基に生成した量子化インデックスデータＱ（ｊ＋１）によって、量子化部７５の量子化ステップサイズを決定することは適切ではない。したがって、シーンチェンジが起こった場合は、目標発生符号量データＴｐｉおよびＴｐｐは、新たに算出されなおされるようにしても良い。
【００７８】
イントラＡＣ算出部９１は、イントラＡＣ（ｉｎｔｒａ  ＡＣ）を算出し、現在のイントラＡＣの値を示すｍａｄ＿ｉｎｆｏと、１つ前のイントラＡＣの値を示すｐｒｅｖ＿ｍａｄ＿ｉｎｆｏとを、発生符号量制御部９２に出力する。
【００７９】
イントラＡＣは、ＭＰＥＧ方式におけるＤＣＴ処理単位のＤＣＴブロックごとの映像データとの分散値の総和として定義されるパラメータであって、映像の複雑さを指標し、映像の絵柄の難しさおよび圧縮後のデータ量と相関性を有する。すなわち、イントラＡＣとは、ＤＣＴブロック単位で、それぞれの画素の画素値から、ブロックごとの画素値の平均値を引いたものの絶対値和の、画面内における総和である。イントラＡＣ（ＩｎｔｒａＡＣ）は、次の式（１０）で示される。
【００８０】
【数１】
2004274236.tif 000003
【００８１】
また、式（１０）において、式（１１）が成り立つ。
【数２】
2004274236.tif 000004
【００８２】
イントラＡＣ算出部９１は、画像の難易度を示す値である、イントラＡＣを算出し、現在のイントラＡＣの値を示すｍａｄ＿ｉｎｆｏと、１つ前のイントラＡＣの値を示すｐｒｅｖ＿ｍａｄ＿ｉｎｆｏとを、発生符号量制御部９２に出力する。
【００８３】
発生符号量制御部９２は、ＭＥ残差算出部９５から供給された、ＭＥ残差情報ＭＥ＿ｉｎｆｏと、上述した式（１）によって算出される、ＭＥ残差情報の平均値ａｖｇを基に、シーンチェンジが発生したか否かを判断する。
【００８４】
そして、発生符号量制御部９２は、シーンチェンジ発生などの所定の条件を基に、仮想バッファの初期バッファ容量を更新して、それを基に、量子化ステップサイズを決定するか、もしくは、以前に符号化されたピクチャ（例えば、ＴＭ５が適用されている場合は、以前に符号化された同じピクチャタイプのピクチャであり、ＴＭ５が適用されていない場合は、１つ前のピクチャなどである）のバッファ占有量を基に、量子化ステップサイズを決定することができるようになされている。
【００８５】
発生符号量制御部９２は、シーンチェンジが発生したか否かなどの所定の条件が合致したことにより、仮想バッファの初期バッファ容量ｄ（０）の更新が行われた場合にアクティブ状態となり、次のピクチャ（ＴＭ５では、次の同じタイプのピクチャ）において、再度、初期バッファ容量ｄ（０）の更新が行われた場合にインアクティブ状態となるフラグを内部に有する。なお、発生符号量制御部９２は、ＴＭ５が適用されている場合、初期バッファ容量ｄ（０）の更新が行われたピクチャのピクチャタイプの情報を保持することが可能である。
【００８６】
なお、図４を用いた説明では、あるピクチャを符号化する場合に、１つ前のピクチャに関する情報を参照して、量子化ステップサイズを決定する場合について説明するが、例えば、ピクチャタイプに応じたレート制御が行われるＴＭ５が適用されている場合、同じピクチャタイプで、１つ前に符号化されたピクチャに関する情報を参照して、量子化ステップサイズが決定される。
【００８７】
すなわち、発生符号量制御部９２は、バッファ８２に格納される可変長符号化データの蓄積状態を常時監視しており、仮想バッファの初期バッファ容量が初期化されて更新されない場合においては、蓄積状態を表す占有量情報を基に量子化ステップサイズを決定するようになされている。
【００８８】
発生符号量制御部９２は、イントラスライス、イントラフレーム、または、イントラマクロブロックに対応する部分の目標発生符号量データＴｐｉよりも実際に発生したマクロブロックの発生符号量データＢ（ｊ）が多い場合、発生符号量を減らすために量子化ステップサイズを大きくし、また目標発生符号量データＴｐｉよりも実際の発生符号量データＢ（ｊ）が少ない場合、発生符号量を増やすために量子化ステップサイズを小さくするようになされている。
【００８９】
更に、発生符号量制御部９２は、インタースライス、インターフレーム、または、非イントラマクロブロックに対応する部分における場合も同様に、目標発生符号量データＴｐｐよりも実際に発生したマクロブロックの発生符号量データＢ（ｊ）が多い場合、発生符号量を減らすために量子化ステップサイズを大きくし、また目標発生符号量データＴｐｐよりも実際の発生符号量データＢ（ｊ）が少ない場合、発生符号量を増やすために量子化ステップサイズを小さくするようになされている。
【００９０】
すなわち、発生符号量制御部９２は、デコーダ側に設けられたＶＢＶバッファに格納された可変長符号化データの蓄積状態の推移を想定することにより、図５に示されるように、ｊ番目のマクロブロックにおける仮想バッファのバッファ占有量ｄ（ｊ）を次の式（１２）によって表し、また、ｊ＋１番目のマクロブロックにおける仮想バッファのバッファ占有量ｄ（ｊ＋１）を次の式（１３）によって表し、（１２）式から（１３）式を減算することにより、ｊ＋１番目のマクロブロックにおける仮想バッファのバッファ占有量ｄ（ｊ＋１）を次の式（１４）として変形することができる。
【００９１】
ｄ（ｊ）＝ｄ（０）＋Ｂ（ｊ−１）−｛Ｔ×（ｊ−１）／ＭＢｃｎｔ｝・・・（１２）
【００９２】
ここで、ｄ（０）は初期バッファ容量、Ｂ（ｊ）は、ｊ番目のマクロブロックにおける符号化発生ビット数、ＭＢｃｎｔは、ピクチャ内のマクロブロック数、そして、Ｔは、ピクチャ単位の目標発生符号量である。
【００９３】
ｄ（ｊ＋１）＝ｄ（０）＋Ｂ（ｉ）−（Ｔ×ｊ）／ＭＢｃｎｔ・・・（１３）
【００９４】
ｄ（ｊ＋１）＝ｄ（ｊ）＋｛Ｂ（ｊ）−Ｂ（ｊ−１）｝−Ｔ／ＭＢｃｎｔ・・・（１４）
【００９５】
続いて、発生符号量制御部９２は、例えば、ローディレイコーディングが行われている場合においては、ピクチャ内のマクロブロックがイントラスライス部分とインタースライス部分とに分かれているため、図６に示されるように、イントラスライス部分のマクロブロックとインタースライス部分の各マクロブロックに割り当てる目標発生符号量ＴｐｉおよびＴｐｐをそれぞれ個別に設定する。
【００９６】
グラフにおいて、マクロブロックのカウント数が０乃至ｓ、および、ｔ乃至ｅｎｄの間にあるとき、次の式（１５）に、インタースライスの目標発生符号量Ｔｐｐを代入することにより、インタースライス部分におけるバッファ占有量ｄ（ｊ＋１）を得ることができる。
【００９７】
ｄ（ｊ＋１）
＝ｄ（ｊ）＋｛Ｂ（ｊ）−Ｂ（ｊ−１）｝−Ｔｐｐ／｛ＭＢｃｎｔ−（ｔ−ｓ）｝・・・（１５）
【００９８】
また、マクロブロックのカウント数がｓ乃至ｔの間にあるときに、次の式（１６）に、イントラスライスの目標発生符号量Ｔｐｉを代入することにより、イントラスライス部分におけるバッファ占有量ｄ（ｊ＋１）を得ることができる。
【００９９】
ｄ（ｊ＋１）＝ｄ（ｊ）＋｛Ｂ（ｊ）−Ｂ（ｊ−１）｝−Ｔｐｉ／（ｔ−ｓ）・・・（１６）
【０１００】
したがって、発生符号量制御部９２は、イントラスライス部分およびインタースライス部分におけるバッファ占有量ｄ（ｊ＋１）、および、式（１７）に示される定数ｒを、式（１８）に代入することにより、マクロブロック（ｊ＋１）の量子化インデックスデータＱ（ｊ＋１）を算出し、これを量子化部７５に供給する。
【０１０１】
ｒ＝（２×ｂｒ）／ｐｒ  ・・・（１７）
Ｑ（ｊ＋１）＝ｄ（ｊ＋１）×（３１／ｒ）  ・・・（１８）
ここで、ｂｒは、ビットレートであり、ｐｒは、ピクチャレートである。
【０１０２】
なお、発生符号量制御部９２は、ローディレイコーディング以外における場合でも、同様にして、イントラ部分とインター部分のそれぞれのバッファ占有量ｄ（ｊ＋１）、および、量子化インデックスデータＱ（ｊ＋１）を算出することができる。
【０１０３】
量子化部７５は、量子化インデックスデータＱ（ｊ＋１）に基づいて、次のマクロブロックにおける量子化ステップサイズを決定し、量子化ステップサイズによってＤＣＴ係数データを量子化する。
【０１０４】
これにより、量子化部７５は、１つ前のピクチャにおける実際の発生符号量データＢ（ｊ）に基づいて算出された、次のピクチャの目標発生符号量ＴｐｐおよびＴｐｉにとって最適な量子化ステップサイズによって、ＤＣＴ係数データを量子化することができる。
【０１０５】
かくして、量子化部７５では、バッファ８２のデータ占有量に応じて、バッファ８２がオーバーフローまたはアンダーフローしないように量子化し得るとともに、デコーダ側のＶＢＶバッファがオーバーフロー、またはアンダーフローしないように量子化した量子化ＤＣＴ係数データを生成することができる。
【０１０６】
例えば、従来の技術として上述した、特願平１１−２０５８０３では、通常のフィードバック型の量子化制御を行いながら、次に符号化処理するピクチャの絵柄が大きく変化する場合、すなわち、シーンチェンジが発生した場合には、フィードバック型の量子化制御を止め、ＭＥ残差情報に基づいて、仮想バッファの初期バッファ容量ｄ（０）を初期化し、新たな初期バッファ容量ｄ（０）を基に、イントラスライスおよびインタースライスごとに量子化インデックスデータＱ（ｊ＋１）を新たに算出するようになされている。
【０１０７】
これに対して、本発明を適用したビデオエンコーダ６１においては、通常のフィードバック型の量子化制御を行いながら、次に符号化処理するピクチャの絵柄が大きく変化する場合、すなわち、シーンチェンジが発生した場合に加えて、シーンチェンジが発生したピクチャの次のピクチャ（ＴＭ５においては、次の同じタイプのピクチャ）においても、フィードバック型の量子化制御を止め、ＭＥ残差算出部９５から供給されるＭＥ残差情報に基づいて、仮想バッファの初期バッファ容量ｄ（０）を初期化し、新たな初期バッファ容量ｄ（０）を基に、イントラ部分およびインター部分ごとに量子化インデックスデータＱ（ｊ＋１）を新たに算出するようになされている。
【０１０８】
このことにより、バッファの破綻を防ぐためにバッファ容量の更新が行われて、大きな量子化値を用いて符号化されたピクチャに続くピクチャにおいて、必要以上に大きな量子化値を用いて符号化を行うことを防ぐことができ、シーンチェンジ後の数ピクチャの画質が劣化してしまうことを防ぐことが可能となる。
【０１０９】
次に、図７のフローチャートを参照して、シーンチェンジ検出によって、仮想バッファが更新された場合、その次のピクチャ（ＴＭ５においては、次の同じタイプのピクチャ）で、再度、仮想バッファの調整が実行されるようになされている、仮想バッファ更新処理１について説明する。
【０１１０】
ステップＳ２１において、発生符号量制御部９２は、ＭＥ残差算出部９５から、ＭＥ残差情報ＭＥ＿ｉｎｆｏを取得する。
【０１１１】
ステップＳ２２において、発生符号量制御部９２は、取得されたＭＥ残差情報から、ＭＥ残差情報の平均値ａｖｇを減算し、ＭＥ＿ｉｎｆｏ−ａｖｇ＞Ｄであるか否か、すなわち、算出された値が、所定の閾値Ｄよりも大きいか否かを判断する。ＭＥ残差情報の平均値ａｖｇは、後述するステップＳ２６において更新される値であり、上述した式（１）で示される。なお、所定の閾値Ｄは、画質を検討しながらチューニングされる性質の値である。
【０１１２】
ステップＳ２２において、算出された値は、所定の閾値Ｄより小さいと判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差があまりない、すなわちシーンチェンジがなかったと判断されるので、処理はステップＳ２４に進む。
【０１１３】
ステップＳ２２において、算出された値は、所定の閾値Ｄより大きいと判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差が大きい、すなわち、シーンチェンジがあったと判断されるので、ステップＳ２３において、発生符号量制御部９２は、上述した、式（２）、式（３）、式（４）および式（５）に基づいて、仮想バッファの初期バッファ容量ｄ（０）を算出し、仮想バッファを更新して、仮想バッファが更新されたことを示すフラグをアクティブにする。
【０１１４】
ステップＳ２２において、算出された値は、所定の閾値Ｄより小さいと判断された場合、ステップＳ２４において、発生符号量制御部９２は、内部に有する、仮想バッファが更新されたことを示すフラグを参照して、処理中のピクチャは、シーンチェンジが発生したピクチャの次のピクチャであるか、または、ＴＭ５が適用されている場合においては、シーンチェンジが発生したピクチャと同じタイプの次のピクチャであるか否かを判断する。ステップＳ２４において、処理中のピクチャは、シーンチェンジの次のピクチャ、または、ＴＭ５では同じタイプの次のピクチャではないと判断された場合、処理は、後述するステップＳ２６に進む。
【０１１５】
ステップＳ２４において、処理中のピクチャは、シーンチェンジの次のピクチャ、または、ＴＭ５では同じタイプの次のピクチャであると判断された場合、ステップＳ２５において、発生符号量制御部９２は、上述した、式（２）、式（３）、式（４）および式（５）に基づいて、仮想バッファの初期バッファ容量ｄ（０）を算出し、仮想バッファを更新して、仮想バッファが更新されたことを示すフラグをインアクティブにする。
【０１１６】
ステップＳ２３の処理の終了後、ステップＳ２４において、処理中のピクチャは、シーンチェンジの次のピクチャではないと判断された場合、もしくは、ステップＳ２５の処理の終了後、ステップＳ２６において、発生符号量制御部９２は、次に供給されるピクチャに備えて、ＭＥ残差情報の平均値ａｖｇを、上述した式（１）により計算して更新し、処理は、ステップＳ２１に戻り、それ以降の処理が繰り返される。
【０１１７】
このような処理により、シーンチェンジが発生した場合に加えて、シーンチェンジが発生したピクチャの次のピクチャ、または、ＴＭ５ではシーンチェンジが発生したピクチャと同じタイプの次のピクチャにおいても、フィードバック型の量子化制御が実行されるのではなく、ＭＥ残差算出部９５から供給されるＭＥ残差情報に基づいて、仮想バッファの初期バッファ容量ｄ（０）が初期化され、新たな初期バッファ容量ｄ（０）を基に、イントラ部分およびインター部分ごとに量子化インデックスデータＱ（ｊ＋１）が新たに算出される。このことにより、バッファの破綻を防ぐためにバッファ容量の更新が行われて、大きな量子化値を用いて符号化されたピクチャに続くピクチャ（ＴＭ５の場合は、次の同じタイプのピクチャ）において、必要以上に大きな量子化値を用いて符号化を行うことを防ぐことができ、シーンチェンジ後の数ピクチャの画質が劣化してしまうことを防ぐことが可能となる。
【０１１８】
図８を用いて、本発明を適用した場合における、それぞれのピクチャの最初の符号化位置のマクロブロックと、最後の符号化位置のマクロブロックとの、仮想バッファ容量について説明する。
【０１１９】
図８のピクチャ１１１乃至ピクチャ１１５は、図３のピクチャ２１乃至ピクチャ２５と同様に、図中左側のピクチャが、時間的に前のピクチャであり、それぞれ、ｎ＋１個のマクロブロックで構成されるものとして説明する。また、図８におけるピクチャ１１１乃至ピクチャ１１５の符号化には、ＴＭ５が適用されていないものとする。
【０１２０】
例えば、ピクチャ１１１とピクチャ１１２との絵柄の大きく異なる場合、すなわち、シーンチェンジが起きた場合、ピクチャ１１２の符号化時に、仮想バッファ容量が更新される（図７のステップＳ２３の処理）。したがって、ピクチャ１１２の先頭の符号化位置における仮想バッファ容量ｄ１＿０は、ピクチャ１１１の最後の符号化位置における仮想バッファ容量ｄ０＿ｎよりも大きな値が設定されるので、ピクチャ１１２の符号化時に、画面の途中までで、与えられたビット量を消費してしまうことを防ぐことができる。
【０１２１】
そして、ピクチャ１１３乃至ピクチャ１１５においては、シーンチェンジは検出されないが、ピクチャ１１３においては、シーンチェンジの次のピクチャであると判断されるので、ピクチャ１１３の符号化時に、仮想バッファ容量が更新される（図７のステップＳ２５の処理）。したがって、ピクチャ１１３の先頭の符号化位置における仮想バッファ容量ｄ２＿０は、ピクチャ２２の最後の符号化位置における仮想バッファ容量ｄ１＿ｎより小さな値に設定される。
【０１２２】
そして、ピクチャ１１４の先頭の符号化位置における仮想バッファ容量ｄ３＿０は、ピクチャ１１３の最後の符号化位置における仮想バッファ容量ｄ２＿ｎと近似した値となり、ピクチャ１１５の先頭の符号化位置における仮想バッファ容量ｄ４＿０は、ピクチャ１１４の最後の符号化位置における仮想バッファ容量ｄ３＿ｎと近似した値となる。したがって、ピクチャ１１３以降のピクチャの符号化時に、必要以上に大きな量子化値を用いて符号化を行うことを防ぐことができ、シーンチェンジ後の数ピクチャの画質が劣化してしまうことを防ぐことが可能となる。
【０１２３】
なお、図８におけるピクチャ１１１乃至ピクチャ１１５の符号化には、ＴＭ５が適用されていないものとして説明したが、ＴＭ５が適用されていた場合においても、前のピクチャとの絵柄の差が大きい、すなわち、シーンチェンジが起きたと判断されたピクチャの符号化時に、仮想バッファ容量が更新され（図７のステップＳ２３の処理）、シーンチェンジが起きたピクチャと同じタイプの次のピクチャの仮想バッファ容量が更新される（図７のステップＳ２５の処理）ので、シーンチェンジが起きたピクチャと同じタイプの次のピクチャにおいて、必要以上に大きな量子化値を用いて符号化を行うことにより発生する画質の劣化を防ぐことができる。
【０１２４】
ところで、図７を用いて説明したように、ＭＥ残差のみで仮想バッファ調整を行うか否かを判定してしまうと、画像の符号化難易度が易しいものから難しいものへのシーンチェンジ、および、難しいものから易しいものへのシーンチェンジの、双方に対して仮想バッファ調整を行ってしまうため、難しいものから易しいものへのシーンチェンジでは、エンコードに余裕があるはずの易画像においてわざわざ画質を悪くしてしまう結果となる場合がある。しかしながら、ＭＥ残差情報のみでは、シーンチェンジの有無を判定することはできるが、シーンチェンジの内容が、易しいものから難しいものへのシーンチェンジであるか、もしくは、難しいものから易しいものへのシーンチェンジであるかを判定することができない。
【０１２５】
そこで、図４のビデオエンコーダ６１においては、例えば、イントラＡＣ算出部９１によって算出されるイントラＡＣなどの情報を用いて、画像難易度が易しいものから難しいものに変わるシーンチェンジの時にのみ、仮想バッファ調整を行うようにすることにより、簡単な画像での画質の劣化を防ぐようにすることができる。
【０１２６】
すなわち、イントラＡＣ算出部９１は、イントラＡＣを算出し、現在のイントラＡＣの値を示すｍａｄ＿ｉｎｆｏと、１つ前のイントラＡＣの値を示すｐｒｅｖ＿ｍａｄ＿ｉｎｆｏとを、発生符号量制御部９２に出力する。発生符号量制御部９２は、通常のフィードバック型の量子化制御を行いながら、次に符号化処理するピクチャの絵柄が大きく変化する場合には、ＭＥ残差算出部９５から供給されるＭＥ残差情報ＭＥ＿ｉｎｆｏ、並びに、イントラＡＣ算出部９１から供給される、ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏおよびｍａｄ＿ｉｎｆｏを基に、仮想バッファの初期バッファ容量ｄ（０）を初期化するか否かを判断し、仮想バッファの初期バッファ容量ｄ（０）を初期化する場合は、ＭＥ残差算出部９５から供給されるＭＥ残差情報ＭＥ＿ｉｎｆｏに基づいて、仮想バッファの初期バッファ容量ｄ（０）を初期化する。仮想バッファの初期バッファ容量ｄ（０）を初期化については、式（２）乃至式（５）を用いて説明した従来における場合と同様である。
【０１２７】
そして、発生符号量制御部９１は、新たな初期バッファ容量ｄ（０）を基に、イントラスライスやインタースライスなどのイントラ部分およびインター部分ごとに、式（１２）乃至式（１８）を用いて、量子化インデックスデータＱ（ｊ＋１）を新たに算出し、量子化部７５に供給する。
【０１２８】
このようにすることにより、エンコードに余裕があるはずの易画像においてわざわざ画質を悪くしてしまうことを防ぐようにすることができる。本発明は、このように、画像難易度が易しいものから難しいものに変わるシーンチェンジの時にのみ、仮想バッファ調整を行うようになされている場合においても適用することが可能である。
【０１２９】
図９のフローチャートを参照して、イントラＡＣなどの画像難易度情報を用いて、シーンチェンジは、簡単な画像から難しい画像への変化であるか否かの判定を導入して仮想バッファの調整を行うようになされているビデオエンコーダ６１において、シーンチェンジが検出されて、簡単な画像から難しい画像への変化であると判断されて、仮想バッファが更新された場合、その次のピクチャ（ＴＭ５においては、次の同じタイプのピクチャ）で、再度、仮想バッファの調整が実行されるようになされている、仮想バッファ更新処理２について説明する。
【０１３０】
ステップＳ４１およびステップＳ４２において、図７のステップＳ２１およびステップＳ２２と同様の処理が実行される。すなわち、発生符号量制御部９２は、ＭＥ残差算出部９５から、ＭＥ残差情報ＭＥ＿ｉｎｆｏ  を取得し、取得されたＭＥ残差情報から、ＭＥ残差情報の平均値ａｖｇを減算し、ＭＥ＿ｉｎｆｏ−ａｖｇ＞Ｄであるか否か、すなわち、算出された値が、所定の閾値Ｄよりも大きいか否かを判断する。ＭＥ残差情報の平均値ａｖｇは、後述するステップＳ４７において更新される値であり、上述した式（１）で示される。なお、所定の閾値Ｄは、画質を検討しながらチューニングされる性質の値である。
【０１３１】
ステップＳ４２において、算出された値は、所定の閾値Ｄより小さいと判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差があまりない、すなわちシーンチェンジがなかったと判断されるので、処理はステップＳ４５に進む。
【０１３２】
ステップＳ４２において、算出された値は、所定の閾値Ｄより大きいと判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差が大きい、すなわち、シーンチェンジがあったと判断されるので、ステップＳ４３において、発生符号量制御部９２は、イントラＡＣ算出部９１から取得される、このシーンチェンジの後のイントラＡＣの値であるｍａｄ＿ｉｎｆｏと、このシーンチェンジの前のイントラＡＣの値であるｐｒｅｖ＿ｍａｄ＿ｉｎｆｏとを比較し、ｍａｄ＿ｉｎｆｏ＞ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏであるか否かを判断する。
【０１３３】
ステップＳ４３において、ｍａｄ＿ｉｎｆｏ＞ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、処理は、ステップＳ４７に進む。
【０１３４】
ステップＳ４３において、ｍａｄ＿ｉｎｆｏ＞ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏであると判断された場合、このシーンチェンジは、簡単な画像から、難しい画像へのシーンチェンジであるので、ステップＳ４４において、発生符号量制御部９２は、従来における場合と同様の処理により、仮想バッファの初期バッファ容量ｄ（０）の更新を行うとともに、シーンチェンジなどの所定の条件が合致したことにより、仮想バッファの初期バッファ容量ｄ（０）の更新が行われたことを示すフラグをアクティブにする。
【０１３５】
すなわち、発生符号量制御部９２は、上述した式（２）、式（３）、式（４）および式（５）に基づいて、仮想バッファの初期バッファ容量ｄ（０）を算出し、仮想バッファを更新する。
【０１３６】
ステップＳ４２において、算出された値は、所定の閾値Ｄより小さいと判断された場合、ステップＳ４５において、発生符号量制御部９２は、内部に有する、仮想バッファが更新されたことを示すフラグを参照して、処理中のピクチャは、シーンチェンジなどの所定の条件が合致したことにより、仮想バッファの初期バッファ容量ｄ（０）の更新が行われたピクチャの次のピクチャであるか、または、ＴＭ５では同じタイプの次のピクチャであるか否かを判断する。
【０１３７】
ステップＳ４５において、仮想バッファの初期バッファ容量ｄ（０）の更新が行われたピクチャの次のピクチャであるか、または、ＴＭ５では同じタイプの次のピクチャであると判断された場合、ステップＳ４６において、図７のステップＳ２５と、同様の処理が実行される。すなわち、発生符号量制御部９２は、上述した、式（２）、式（３）、式（４）および式（５）に基づいて、仮想バッファの初期バッファ容量ｄ（０）を算出して、仮想バッファを更新し、仮想バッファが更新されたことを示すフラグをインアクティブにする。
【０１３８】
ステップＳ４３において、ｍａｄ＿ｉｎｆｏ＞ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏではないと判断された場合、ステップＳ４４の処理の終了後、ステップＳ４５において、処理中のピクチャは、仮想バッファが更新されたピクチャの次のピクチャまたは次の同じタイプのピクチャではないと判断された場合、もしくは、ステップＳ４６の処理の終了後、ステップＳ４７において、発生符号量制御部９２は、次に供給されるピクチャに備えて、ＭＥ残差情報の平均値ａｖｇを、上述した式（１）により更新し、処理は、ステップＳ４１に戻り、それ以降の処理が繰り返される。
【０１３９】
図９のフローチャートを用いて説明した処理により、イントラＡＣを用いて、画像難易度が易しいものから難しいものに変更されるシーンチェンジの時にのみ仮想バッファ調整を行うようにしたので、エンコードに余裕があるはずの簡単な画像において、更に画質を悪くしてしまうことを防ぐことができるとともに、画像難易度が易しいものから難しいものに変更されるシーンチェンジが検出されて、仮想バッファ調整が行われたピクチャの次のピクチャ（ＴＭ５の場合は、次の同じタイプのピクチャ）においても、仮想バッファ調整を行うようにすることができる。このことにより、シーンチェンジの発生によるバッファの破綻を防ぐためにバッファ容量の更新が行われたピクチャに続くピクチャ（ＴＭ５の場合は、次の同じタイプのピクチャ）において、必要以上に大きな量子化値を用いて符号化を行うことを防ぐことができ、シーンチェンジ後の数ピクチャの画質が劣化してしまうことを防ぐことが可能となる。
【０１４０】
しかしながら、図９を用いて説明した処理のように、難しい画像から易しい画像へシーンが変わる場合全てについて、仮想バッファ調整を行わないようにしてしまうと、その変化がある一定レベル以上であり、かつ、変化後の画像（変化前の画像よりも簡単な画像と判断されている画像）の難易度も一定レベル以上の場合、すなわち、非常に難易度の高い画像から、ある程度難易度の高い画像へのシーンチェンジが発生した場合、シーンチェンジによる画質劣化の弊害が生じてしまう。
【０１４１】
これは、簡単な画像と判断される画像が、一定レベル以上の難易度であると、直前の難画像における仮想バッファの振る舞い次第によっては、簡単な画像から難易度の高い画像へシーンチェンジする場合と同様の問題を生じる可能性があるからである。
【０１４２】
そこで、難しい画像から易しい画像へシーンが変わる場合の変化量が、ある一定レベル以上である場合には、変化後の画像難易度が一定レベル以上であるか否かを判定し、変化後の画像難易度が一定レベル以上である場合には仮想バッファの調整を行うようにすることができる。
【０１４３】
図１０を用いて、難しい画像から易しい画像へシーンが変わる場合の変化がある一定レベル以上であり、かつ、変化後の画像難易度が一定レベル以上である場合にも仮想バッファの初期化を行うようにしたときに、仮想バッファの初期化が行われたピクチャの次のピクチャ（ＴＭ５においては、同じピクチャタイプの次のピクチャ）に対しても、仮想バッファの初期化が行われるようにした、仮想バッファ更新処理３について説明する。
【０１４４】
ステップＳ６１乃至ステップＳ６３において、図９のステップＳ４１乃至ステップＳ４３と同様の処理が実行される。
【０１４５】
すなわち、ステップＳ６１において、ＭＥ残差算出部９５から、ＭＥ残差情報ＭＥ＿ｉｎｆｏ  が取得され、ステップＳ６２において、取得されたＭＥ残差情報から、ＭＥ残差情報の平均値ａｖｇが減算されて、ＭＥ＿ｉｎｆｏ−ａｖｇ＞Ｄであるか否かが判断される。ＭＥ＿ｉｎｆｏ−ａｖｇ＞Ｄではないと判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差があまりない、すなわちシーンチェンジがなかったと判断されるので、処理はステップＳ６７に進む。
【０１４６】
ＭＥ＿ｉｎｆｏ−ａｖｇ＞Ｄであると判断された場合、現在のピクチャにおける絵柄と、１つ前のピクチャにおける絵柄との差が大きい、すなわち、シーンチェンジがあったと判断されるので、ステップＳ６３において、イントラＡＣ算出部９１から取得される、このシーンチェンジの後のイントラＡＣの値であるｍａｄ＿ｉｎｆｏと、このシーンチェンジの前のイントラＡＣの値であるｐｒｅｖ＿ｍａｄ＿ｉｎｆｏとが比較されて、ｍａｄ＿ｉｎｆｏ＞ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏであるか否かが判断される。
【０１４７】
ステップＳ６３において、ｍａｄ＿ｉｎｆｏ＞ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、ステップＳ６４において、発生符号量制御部９２は、このシーンチェンジの前のイントラＡＣの値であるｐｒｅｖ＿ｍａｄ＿ｉｎｆｏからこのシーンチェンジの後のイントラＡＣの値であるｍａｄ＿ｉｎｆｏを減算した値、すなわち、符号化難易度の変化量を算出し、この値と、所定の閾値Ｄ１とを比較し、ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏ−ｍａｄ＿ｉｎｆｏ＞Ｄ１であるか否かを判断する。
【０１４８】
ここで、所定の閾値Ｄ１とは、シーンチェンジの前後において、符号化難易度の変化量が大きいか小さいかを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【０１４９】
ステップＳ６４において、ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏ−ｍａｄ＿ｉｎｆｏ＞Ｄ１ではないと判断された場合、シーンチェンジの前後において、符号化難易度の変化量が小さいのであるから、処理は、ステップＳ６９に進む。
【０１５０】
ステップＳ６４において、ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏ−ｍａｄ＿ｉｎｆｏ＞Ｄ１であると判断された場合、シーンチェンジの前後において、符号化難易度の変化量が大きいので、ステップＳ６５において、発生符号量制御部９２は、このシーンチェンジの後のイントラＡＣの値であるｍａｄ＿ｉｎｆｏと、所定の閾値Ｄ２を比較し、ｍａｄ＿ｉｎｆｏ＞Ｄ２であるか否かを判断する。
【０１５１】
ここで、所定の閾値Ｄ２とは、シーンチェンジの後の画像が、ある程度の符号化難易度を有するか否かを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【０１５２】
ステップＳ６５において、ｍａｄ＿ｉｎｆｏ＞Ｄ２ではないと判断された場合、シーンチェンジの後の画像は、ある程度簡単な画像であるので、処理は、ステップＳ６９に進む。一方、ステップＳ６５において、ｍａｄ＿ｉｎｆｏ＞Ｄ２であると判断された場合、シーンチェンジの後の画像は、ある程度の符号化難易度を有するものであるので、処理は、ステップＳ６６に進む。
【０１５３】
ステップＳ６３において、ｍａｄ＿ｉｎｆｏ＞ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏであると判断された場合、もしくは、ステップＳ６５において、ｍａｄ＿ｉｎｆｏ＞Ｄ２であると判断された場合、ステップＳ６６において、発生符号量制御部９２は、従来における場合と同様の処理により、仮想バッファの初期バッファ容量ｄ（０）の更新を行うとともに、仮想バッファが更新されたことを示すフラグをアクティブにする。
【０１５４】
すなわち、発生符号量制御部９２は、上述した式（２）、式（３）、式（４）および式（５）に基づいて、仮想バッファの初期バッファ容量ｄ（０）を算出し、仮想バッファを更新する。
【０１５５】
ステップＳ６２において、算出された値は、所定の閾値Ｄより小さいと判断された場合、ステップＳ６７およびステップＳ６８において、図９のステップＳ４５およびステップＳ４６と、同様の処理が実行される。すなわち、発生符号量制御部９２は、内部に有する、仮想バッファが更新されたことを示すフラグを参照して、処理中のピクチャは、シーンチェンジなどの所定の条件が合致したことにより、仮想バッファが更新されたピクチャの次のピクチャであるか、または、ＴＭ５では同じタイプの次のピクチャであるか否かを判断し、仮想バッファが更新されたピクチャの次のピクチャである、または、ＴＭ５では同じタイプの次のピクチャであると判断した場合、上述した、式（２）、式（３）、式（４）および式（５）に基づいて、仮想バッファの初期バッファ容量ｄ（０）を算出して、仮想バッファを更新し、仮想バッファが更新されたことを示すフラグをインアクティブにする。
【０１５６】
ステップＳ６４において、ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏ−ｍａｄ＿ｉｎｆｏ＞Ｄ１ではないと判断された場合、ステップＳ６５において、ｍａｄ＿ｉｎｆｏ＞Ｄ２ではないと判断された場合、ステップＳ６６の処理の終了後、ステップＳ６７において、処理中のピクチャは、仮想バッファが更新されたピクチャの次のピクチャまたは同じタイプの次のピクチャではないと判断された場合、もしくは、ステップＳ６８の処理の終了後、ステップＳ６９において、発生符号量制御部９２は、次に供給されるピクチャに備えて、ＭＥ残差情報の平均値ａｖｇを、上述した式（１）により更新し、処理は、ステップＳ６１に戻り、それ以降の処理が繰り返される。
【０１５７】
図１０を用いて説明した処理により、ｐｒｅｖ＿ｍａｄ＿ｉｎｆｏとｍａｄ＿ｉｎｆｏを用いて、難易度の変化（難しい画像からやさしい画像への変化）がある一定レベル以上であり、かつ変化後の難易度も一定レベル以上の場合を判定し、その場合には仮想バッファの調整を行うようにしたので、シーンチェンジによる画質劣化の弊害の発生を、より正確に防止することができるとともに、このような処理により仮想バッファの調整が行われたピクチャの次のピクチャ（ＴＭ５の場合は、次の同じタイプのピクチャ）においても、仮想バッファ調整が行われるようにすることができる。このことにより、シーンチェンジによるバッファの破綻を防ぐためにバッファ容量の更新が行われたピクチャに続くピクチャ（ＴＭ５の場合は、次の同じタイプのピクチャ）において、必要以上に大きな量子化値を用いて符号化を行うことを防ぐことができ、シーンチェンジ後の数ピクチャの画質が劣化してしまうことを防ぐことが可能となる。
【０１５８】
なお、図４乃至図１０を用いて説明したビデオエンコーダ６１の処理においては、ＭＥ残差算出部９５の処理により算出されるＭＥ残差を基に、シーンチェンジが発生したか否かを検出するものとして説明したが、発生符号量制御部９２は、外部の他の情報処理装置から、シーンチェンジの発生位置を示す情報を取得し、その情報を基に、シーンチェンジの有無を判断するようにしても良い。また、供給される映像データに、シーンチェンジ位置を示す情報を含ませるようにし、発生符号量制御部９２は、供給される映像データにシーンチェンジ位置を示す情報が含まれているか否かを基に、シーンチェンジの有無を判断するようにしても良い。
【０１５９】
また、本発明は、ローディレイコーディングとして各フレーム画像を全てＰピクチャとし、例えば、横４５マクロブロック、縦２４マクロブロックの画枠サイズの中でフレーム画像の上段から縦２マクロブロックおよび横４５マクロブロック分の領域を１つのイントラスライス部分、他を全てインタースライス部分として設定するようにした場合においても、イントラスライス部分を縦１マクロブロック、横４５マクロブロック分の領域とするなど、他の種々の大きさの領域で形成するようにした場合においても適用可能である。
【０１６０】
以上説明したように、本発明は、例えば、ローディレイエンコードを行う場合においても、１５フレームを、フレーム内符号化画像データ（Ｉピクチャ）、フレーム間順方向予測符号化画像データ（Ｐピクチャ）、もしくは、双方向予測符号化画像データ（Ｂピクチャ）の３つの画像タイプのうちのいずれの画像タイプとして処理するかを指定し、指定されたフレーム画像の画像タイプ（Ｉピクチャ、Ｐピクチャ、もしくは、Ｂピクチャ）に応じて、フレーム画像を符号化するような場合にも適用可能である。
【０１６１】
更に、上述の実施の形態においては、本発明をＭＰＥＧ方式によって圧縮符号化する符号化装置としてのビデオエンコーダ６１に適用するようにした場合について述べたが、本発明はこれに限らず、他の種々の画像圧縮方式による符号化装置に適用するようにしても良い。
【０１６２】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。この場合、例えば、ビデオエンコーダ６１は、図１１に示されるようなパーソナルコンピュータ１５１により構成される。
【０１６３】
図１１において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１６１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１６２に記憶されているプログラム、または記憶部１６８からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６３にロードされたプログラムに従って、各種の処理を実行する。ＲＡＭ１６３にはまた、ＣＰＵ１６１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１６４】
ＣＰＵ１６１、ＲＯＭ１６２、およびＲＡＭ１６３は、バス１６４を介して相互に接続されている。このバス１６４にはまた、入出力インタフェース１６５も接続されている。
【０１６５】
入出力インタフェース１６５には、キーボード、マウスなどよりなる入力部１６６、ディスプレイやスピーカなどよりなる出力部１６７、ハードディスクなどより構成される記憶部１６８、モデム、ターミナルアダプタなどより構成される通信部１６９が接続されている。通信部１６９は、インターネットを含むネットワークを介しての通信処理を行う。
【０１６６】
入出力インタフェース１６５にはまた、必要に応じてドライブ１７０が接続され、磁気ディスク１８１、光ディスク１８２、光磁気ディスク１８３、もしくは、半導体メモリ１８４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部１６８にインストールされる。
【０１６７】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１６８】
この記録媒体は、図１１に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク１８１（フロッピディスクを含む）、光ディスク１８２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク１８３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）（商標）を含む）、もしくは半導体メモリ１８４などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているＲＯＭ１６２や、記憶部１６８に含まれるハードディスクなどで構成される。
【０１６９】
なお、本明細書において、記録媒体に記憶されるプログラムを記述するステップは、含む順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的もしくは個別に実行される処理をも含むものである。
【０１７０】
【発明の効果】
このように、本発明によれば、フレーム画像を符号化することができる。特に、シーンチェンジが検出されるなどの所定の条件に合致したフレーム画像において仮想バッファの調整がなされた場合の仮想バッファ容量を参照することなく、量子化インデックスデータを決定することができる。
【図面の簡単な説明】
【図１】シーンチェンジにおいて発生する画質劣化について説明する図である。
【図２】従来の仮想バッファ更新処理について説明するフローチャートである。
【図３】図２を用いて説明した処理が実行された場合の、ピクチャごとの、仮想バッファ容量の変化について説明するための図である。
【図４】本発明を適用したビデオエンコーダの構成を示すブロック図である。
【図５】仮想バッファのバッファ占有量について説明する図である。
【図６】イントラスライスおよびインタースライスごとの、仮想バッファのバッファ占有量について説明する図である。
【図７】本発明を適用した仮想バッファ更新処理１について説明するフローチャートである。
【図８】図７を用いて説明した処理が実行された場合の、ピクチャごとの、仮想バッファ容量の変化について説明するための図である。
【図９】本発明を適用した仮想バッファ更新処理２について説明するフローチャートである。
【図１０】本発明を適用した仮想バッファ更新処理３について説明するフローチャートである。
【図１１】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
６１  ビデオエンコーダ，  ７１  前処理部，  ７２  演算部，  ７３  動きベクトル検出部，  ７４  ＤＣＴ部，  ７５  量子化部，  ７７  ＶＬＣ部，  ７８  逆量子化部，  ７９  逆ＤＣＴ部，  ８０  演算部，  ８１  動き補償部，  ８２  バッファ，  ８３  量子化制御部，  ８４  フレームメモリ，  ９１イントラＡＣ算出部，  ９２  発生符号量制御部，  ９３  ＧＣ算出部，  ９４  目標符号量算出部，  ９５  ＭＥ残差算出部
【図１】
2004274236.tif 000005
【図２】
2004274236.tif 000006
【図３】
2004274236.tif 000007
【図４】
2004274236.tif 000008
【図５】
2004274236.tif 000009
【図６】
2004274236.tif 000010
【図７】
2004274236.tif 000011
【図８】
2004274236.tif 000012
【図９】
2004274236.tif 000013
【図１０】
2004274236.tif 000014
【図１１】
2004274236.tif 000015