(57)【要約】【課題】ＭＰＥＧ−４のＰ−ＶＯＰのマクロブロックのｎｏｔ＿ｃｏｄｅｄフラグは、その直後に符号化されるＢ−ＶＯＰのｎｏｔ＿ｃｏｄｅｄ判定にも使われるため、Ｂ−ＶＯＰだけ画像に変化がある場合にブロック状のノイズが発生する。【解決手段】動き検出器１での前方動き検出の順序をＶＯＰの入力順に行い、検出した前方動きベクトルに対応するＳＡＤ値をＳＡＤメモリ３で記憶しておく。モード判定器７は、Ｐ−ＶＯＰのマクロブロックについては、参照ＶＯＰからの変化が小さく、かつ、同じＶＯＰを参照するＢ−ＶＯＰの同位置のマクロブロックのＳＡＤ値が小さいものについてのみ、ｎｏｔ＿ｃｏｄｅｄマクロブロックとして符号化するよう判定する。【選択図】  図１
2004166183.tif 000002
【特許請求の範囲】
【請求項１】
フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、
前記前方向予測符号化手段は、
前方向予測フレーム、前記前方向予測フレームの前方動き検出で用いる参照フレーム並びにこれらの間に入力された双方向予測フレームにおいて、各フレーム内で同位置にあるマクロブロック同士の相関が高い場合に、前記前方向予測フレームの当該マクロブロックを「符号化不要」として可変長符号化することを特徴とする動画像符号化装置。
【請求項２】
フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、
前記各符号化手段は、
参照フレームの画像を参照して、各フレームを所定の大きさの領域に分割したマクロブロック毎の前方動きベクトルをブロックマッチングによって検出する前方動き検出手段と、
前記前方動きベクトルに対応するマッチング残差を記憶する手段と、
各マクロブロックの画素情報を直交変換する直交変換手段とを備え、
前方向予測符号化手段は、
前方向予測符号化フレームを構成する各マクロブロックのうち、
量子化直交変換係数の全てと前方動きベクトルとが０であり、
かつ、前方動き検出に用いる参照フレームが前記前方向予測符号化フレームと同じものである全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、
かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックにおける前記マッチング残差が所定の閾値以下である、
という条件を満たすものだけを「符号化不要」として可変長符号化することを特徴とする動画像符号化装置。
【請求項３】
フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、
前記各符号化手段は、
参照フレームの画像を参照して、各フレームのマクロブロック毎の前方動きベクトルをブロックマッチングによって検出する前方動き検出手段と、
前記前方動きベクトルに対応するマッチング残差を記憶する手段と、
各マクロブロックの画素情報を直交変換する直交変換手段とを備え、
前記前方動き検出手段では、
前方向予測符号化フレームと同じ参照フレームを用いて前方動き検出を行う全ての双方向予測符号化フレームの各マクロブロックの前方動き検出を、前記前方向予測符号化フレームの同一位置にあるマクロブロックの可変長符号化処理よりも先行するように行い、
前記前方向予測符号化手段は、
前記前方向予測符号化フレームを構成する各マクロブロックのうち
量子化直交変換係数の全てと前方動きベクトルとが０であり、
かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、
かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックにおける前記マッチング残差が所定の閾値以下である、
という条件を満たすものだけを「符号化不要」として可変長符号化することを特徴とする動画像符号化装置。
【請求項４】
動画像をＭＰＥＧ−４方式で符号化する動画像符号化装置であって、
各フレームを構成するマクロブロック毎の前方動きベクトルを、
前方向予測符号化フレームと同じ参照フレームを用いて前方動き検出を行う全ての双方向予測符号化フレームの同じ位置あるマクロブロックについての前方動き検出が、前記前方向予測符号化フレームの各マクロブロックの可変長符号化処理に対して先行するように求める前方動き検出手段と、
前記動きベクトルに対応するマッチング残差を記憶する手段と、
各フレームの各マクロブロックを可変長符号化する可変長符号化手段とを有し、前記可変長符号化手段では、
前方向予測符号化フレームの各マクロブロックのうち、
当該マクロブロックについての量子化離散コサイン変換係数の全てと前方動きベクトルとが０であり、
かつ、前記前方向予測符号化フレームと同じ参照フレームを使用して前方動き検出を行う全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、
かつ、前記双方向予測符号化フレーム上の同位置にあるマクロブロックについての前記マッチング誤差が所定の閾値以下であるものについてのみ、
その符号化モードを「ｎｏｔ＿ｃｏｄｅｄ」とすることを特徴とする動画像符号化装置。
【請求項５】
動画像を符号化したデータを、第１の符号化方式から第２の符号化方式に変換する動画像符号化方式変換装置であって、
前記第１、第２の符号化方式によって生成された符号化データにはフレーム内符号化フレームと前方向予測符号化フレームと双方向予測符号化フレームとが含まれており、
第２の符号化方式における前方予測符号化フレームを所定の大きさに分割したマクロブロックのうち、符号化モードを「符号化不要」とするのは、
前記第１の符号化方式における当該マクロブロックに相当するマクロブロックの符号化モードが「符号化不要」であり、
そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行った全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの全ての符号化モードが「符号化不要」である場合か、
或いは、そのうえ前記同位置に相当するマクロブロックの全ての前方動きベクトルと各マクロブロックを構成する複数のブロックの中で変化があったものの個数を表すパラメータとが０である場合であることを特徴とする動画像符号化方式変換装置。
【請求項６】
フレーム内符号化画像変換手段と、前方向予測符号化画像変換手段と、双方向予測符号化画像変換手段とを有し、動画像の符号化データを第１の符号化方式から第２の符号化方式に変換する動画像符号化方式変換装置であって、
前記前方向予測符号化画像変換手段は、
第２の符号化方式における前方向予測符号化フレームを所定の大きさに分割したマクロブロックの符号化モードを「符号化不要」とするのは、
前記第１の符号化方式における当該マクロブロックに相当するマクロブロックの符号化モードが「符号化不要」であり、
そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行った全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの全ての符号化モードが「符号化不要」である場合か、
或いは、そのうえ前記同位置に相当するマクロブロックの全ての前方動きベクトルと各マクロブロックを構成する複数のブロックの中で前記参照フレームと比べて変化があったものの個数が０である場合であることを特徴とする動画像符号化方式変換装置。
【請求項７】
動画像を第１の符号化方式で符号化したフレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含むデータを、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む第２の符号化方式のデータに変換する動画像符号化方式変換装置であって、
前記第１の符号化方式で符号化された符号化データに含まれる各マクロブロックのデータから動きベクトル、符号化モード、マクロブロックを構成する複数のブロックの中で変化があったものの個数を表す有意ブロック数の情報を取得する手段と、
前記動きベクトル及び前記符号化モードの情報をもとに、第２の符号化方式で符号化する際の各マクロブロックの符号化モードを判定するモード判定部と、
前記第１の符号化方式で符号化された符号化データを、前記モード判定部の判定結果に従ってマクロブロック毎に第２の符号化方式に変換する手段とを有し、
前記モード判定部は、
前記第２の符号化方式において前方予測符号化フレームのマクロブロックの符号化モードを「符号化不要」と判定するのは、
当該マクロブロックに相当する前記第１の符号化方式による前方向予測符号化フレームにおけるマクロブロックが「符号化不要」として符号化されていて、
そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「符号化不要」である場合か、
或いは、そのうえ前記同位置に相当するマクロブロックの全ての前方動きベクトル及び有意ブロック数とが０である場合であることを特徴とする動画像符号化方式変換装置。
【請求項８】
動画像を第１の符号化方式で符号化したフレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含むデータを、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む第２の符号化方式のデータに変換する動画像符号化方式変換装置であって、
前記第１の符号化方式で符号化された符号化データを復号化する復号化部と、
前記復号化部で第１の符号化データを復号化する際に得られる、各マクロブロックの動きベクトル及び符号化モード及び各マクロブロックを構成する複数のブロックの中で変化があったものの個数を表す有意ブロック数の情報をもとに、第２の符号化方式で符号化する際の各マクロブロックの符号化モードを判定するモード判定部と、
前記復号化部で第１の符号化データを復号化して得られる画像データを、マクロブロック毎に前記モード判定部の判定結果に従って第２の符号化方式で符号化する可変長符号化部とを有し、
前記モード判定部は、
前記第２の符号化方式において前方予測符号化フレームのマクロブロックの符号化モードを「符号化不要」と判定するのは、
当該マクロブロックに相当する前記第１の符号化方式による前方向予測符号化フレームにおけるマクロブロックが「符号化不要」として符号化されていて、
そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「符号化不要」である場合か、
或いは、そのうえ前記同位置に相当するマクロブロックの全ての前方動きベクトル及び有意ブロック数とが０である場合であることを特徴とする動画像符号化方式変換装置。
【請求項９】
動画像の符号化データをＭＰＥＧ−２方式からＭＰＥＧ−４方式に変換する動画像符号化方式変換装置であって、
ＭＰＥＧ−４方式において前方向予測符号化フレームのマクロブロックの符号化モードを「ｎｏｔ＿ｃｏｄｅｄ」とするのは、
当該マクロブロックに相当するＭＰＥＧ−２方式による前方向予測符号化フレームにおけるマクロブロックが「ｓｋｉｐｐｅｄ」として符号化されていて、
そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「ｓｋｉｐｐｅｄ」である場合か、
或いは、そのうえ前期同位置に相当するマクロブロックの前方動きベクトルとＣＢＰとが０である場合であることを特徴とする動画像符号化方式変換装置。
【請求項１０】
入力された動画像信号を符号化して、フレーム内符号化画像と前方向予測符号化画像と双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、
前方向予測符号化フレームの符号化では、
前方向予測フレーム、前記前方向予測フレームの前方動き検出で用いる参照フレーム並びにこれらの間に入力された双方向予測フレームにおいて、各フレーム内で同位置にあるマクロブロック同士の相関が高い場合に、前記前方向予測フレームの当該マクロブロックを「符号化不要」として可変長符号化することを特徴とする動画像符号化方法。
【請求項１１】
入力された動画像信号を符号化して、フレーム内符号化画像と前方向予測符号化画像と双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、
前方向予測符号化フレーム及び双方向予測符号化フレームの符号化では、
符号化対象のフレームを構成するマクロブロック毎に、当該フレームよりも時間的に直前に入力された前方向予測符号化フレーム若しくはフレーム内符号化フレームを参照フレームとして前方動き検出を行い、
各フレームの符号化では、
符号化対象のフレームを構成するマクロブロック毎に、画素値に対する直交変換と、直交変換して得られる係数の量子化とを行い、
前方向予測符号化フレームの符号化では、
符号化対象のフレームを構成する各マクロブロックのうち、
量子化した直交変換係数全てと前方動きベクトルとが０であり、
かつ、同じフレームを参照フレームとして前方動き検出を行う全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、
かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックと前記参照フレーム上の同位置にあるマクロブロックとの間の画素値の差が所定の閾値以下であるものだけを「符号化不要」として可変長符号化することを特徴とする動画像符号化方法。
【請求項１２】
動画像の符号化データをＭＰＥＧ−２方式からＭＰＥＧ−４方式に変換する動画像符号化方式変換方法であって、
ＭＰＥＧ−４方式において前方向予測符号化フレームのマクロブロックの符号化モードを「ｎｏｔ＿ｃｏｄｅｄ」とするのは、
当該マクロブロックに相当するＭＰＥＧ−２方式による前方向予測符号化フレームにおけるマクロブロックが「ｓｋｉｐｐｅｄ」として符号化されていて、
そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「ｓｋｉｐｐｅｄ」である場合か、
或いは、そのうえ前期同位置に相当するマクロブロックの前方動きベクトルとＣＢＰとが０である場合であることを特徴とする動画像符号化方式変換方法。
【請求項１３】
フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、
前記各符号化手段のいずれかにより符号化された第１のフレームの符号化結果から、特定の情報を抽出する手段と、
前記情報に応じて、前記第１のフレームの次に符号化される第２のフレームを符号化する際に、前記フレーム内符号化手段及び前記前方向予測符号化手段のいずれかを使用するように制御する制御手段とを備える動画像符号化装置。
【請求項１４】
前記制御手段は、
前記第１のフレームが前記前方向予測符号化手段で符号化されている場合、及び、
前記第１のフレームが前記双方向予測符号化手段で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前記前方向予測符号化手段で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴とする請求項１３記載の動画像符号化装置。
【請求項１５】
フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、
前記各符号化手段のいずれかで第１のフレームを符号化して得られる符号の符号量を求める手段と、
閾値を記憶する閾値記憶手段と、
前記第１のフレームの符号量と前記閾値とを比較し、前記第１のフレームの符号量が前記閾値より多い場合に、前記第１のフレームの次に符号化される第２のフレームに関しては、前記フレーム内符号化手段及び前記前方向予測符号化手段のいずれかを使用するように制御する制御手段と、
を備える動画像符号化装置。
【請求項１６】
前記制御手段は、
前記第１のフレームの符号量が前記閾値より多い場合に、前記閾値記憶手段に第１の閾値を設定する第１の設定手段と、
前記第１のフレームの符号量が前記閾値より少ない場合に、前記閾値記憶手段に前記第１の閾値より大きい第２の閾値を設定する第２の設定手段と、
を備える請求項１５記載の動画像符号化装置。
【請求項１７】
前記制御手段は、
前記第１のフレームが前記前方向予測符号化手段で符号化されている場合、及び、
前記第１のフレームが前記双方向予測符号化手段で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前記前方向予測符号化手段で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴とする請求項１５記載の動画像符号化装置。
【請求項１８】
フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、
前記各符号化手段のいずれかで第１のフレームを符号化して得られる符号の符号量を求める手段と、
前記符号量を用いて、仮想的な復号化側のバッファであるＶＢＶバッファの占有量を推測する手段と、
前記ＶＢＶバッファの占有量の変化に応じて、前記第１のフレームの次に符号化される第２のフレームでは前記フレーム内符号化手段及び前記前方向予測符号化手段のいずれかを使用するように制御する制御手段と、を備える動画像符号化装置。
【請求項１９】
前記制御手段は、
前記ＶＢＶバッファの占有量が閾値を下回る場合に、
前記制御を行うことを特徴とする請求項１８記載の動画像符号化装置。
【請求項２０】
前記制御手段は、
前記ＶＢＶバッファの占有量が前記第１のフレーム及びそれ以前の複数フレームにわたって減少している場合に、
前記制御を行うことを特徴とする請求項１８記載の動画像符号化装置。
【請求項２１】
前記制御手段は、
前記第１のフレームを符号化した結果が「符号化不要」である場合に、
前記制御を行うことを特徴とする請求項１８記載の動画像符号化装置。
【請求項２２】
前記制御手段は、
前記第１のフレームの符号化データのうち、動きベクトル由来の符号の量が閾値を上回る場合に、
前記制御を行うことを特徴とする請求項１８記載の動画像符号化装置。
【請求項２３】
請求項１８記載の動画像符号化装置であって、さらに、
前記各符号化手段における現在の計算負荷を調べる手段を備え、
前記制御手段は、
前記各符号化手段における現在の計算負荷が閾値を超える場合にも、
抑制することを特徴とする請求項１８記載の動画像符号化装置。
【請求項２４】
前記制御手段は、
前記第１のフレームが前記前方向予測符号化手段で符号化されている場合、及び、
前記第１のフレームが前記双方向予測符号化手段で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前記前方向予測符号化手段で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴とする請求項１８乃至請求項２３記載の動画像符号化装置。
【請求項２５】
入力された動画像の各フレームを符号化して、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、
第１のフレームを符号化して得られる結果から特定の情報を抽出し、
前記情報に応じて、前記第１のフレームの次に符号化される第２のフレームの符号化方式を前方向予測符号化方式及びフレーム内符号化方式のいずれかにするよう制御することを特徴とする動画像符号化方法。
【請求項２６】
請求項２５記載の動画像符号化方法であって、
前記第１のフレームが前方向予測符号化方式で符号化されている場合、及び、
前記第１のフレームが双方向予測符号化方式で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前方向予測符号化方式で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴とする請求項２５記載の動画像符号化方法。
【請求項２７】
入力された動画像の各フレームを符号化して、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、
第１のフレームを符号化した際に発生する符号量を求め、
前記第１のフレームの符号量と閾値とを比較し、
前記第１のフレームの符号量が前記閾値より多い場合には、前記第１のフレームの次に符号化される第２のフレームの符号化方式をフレーム内符号化方式及び前方向予測符号化方式のいずれかを用いるように制御する動画像符号化方法。
【請求項２８】
請求項２７記載の動画像符号化方法であって、
前記第１のフレームの符号量が前記閾値より多い場合には、次に前記比較を行う際の前記閾値として第１の閾値を用い、
前記第１のフレームの符号量が前記閾値より少ない場合には、次に前記比較を行う際の前記閾値として前記第１の閾値より大きい第２の閾値を用いることを特徴とする請求項２７記載の動画像符号化方法。
【請求項２９】
請求項２７記載の動画像符号化方法であって、
前記第１のフレームが前方向予測符号化方式で符号化されている場合、及び、
前記第１のフレームが双方向予測符号化方式で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前方向予測符号化方式で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴とする請求項２７記載の動画像符号化方法。
【請求項３０】
入力された動画像の各フレームを符号化して、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、
第１のフレームを符号化した際に発生する符号量を求め、
前記符号量を用いて、仮想的な復号化側のバッファであるＶＢＶバッファの占有量を推測し、
前記ＶＢＶバッファの占有量の変化に応じて、前記第１のフレームの次に符号化される第２のフレームではフレーム内符号化方式及び前記前方向予測符号化方式のいずれかを使用するように制御する動画像符号化方法。
【請求項３１】
請求項３０記載の動画像符号化方法であって、
前記ＶＢＶバッファの占有量が閾値を下回る場合に、
前記制御を行うことを特徴とする請求項３０記載の動画像符号化方法。
【請求項３２】
請求項３０記載の動画像符号化方法であって、
前記ＶＢＶバッファの占有量が前記第１のフレーム及びそれ以前の複数フレームにわたって減少している場合に、
前記制御を行うことを特徴とする請求項３０記載の動画像符号化方法。
【請求項３３】
請求項３０記載の動画像符号化方法であって、
前記第１のフレームを符号化した結果が「符号化不要」である場合に、
前記制御を行うことを特徴とする請求項３０記載の動画像符号化方法。
【請求項３４】
請求項３０記載の動画像符号化方法であって、
前記第１のフレームの符号化データのうち、動きベクトル由来の符号の量が閾値を上回る場合に、
前記制御を行うことを特徴とする請求項３０記載の動画像符号化方法。
【請求項３５】
請求項３０記載の動画像符号化方法であって、さらに、
現在のフレームの符号化処理の計算負荷を調べ、
前記計算負荷が閾値を超える場合にも、
前記制御を行うことを特徴とする請求項３０記載の動画像符号化装置。
【請求項３６】
請求項３０記載の動画像符号化方法であって、
前記第１のフレームが前方向予測符号化方式で符号化されている場合、及び、
前記第１のフレームが双方向予測符号化方式で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前方向予測符号化方式で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴とする請求項３０記載の動画像符号化方法。
【請求項３７】
動画像をＭＰＥＧ−４方式で符号化する動画像符号化装置であって、
動画像の第１のフレームの符号化結果から特定の情報を抽出する手段と、
前記情報に応じて、前記第１のフレームの次に符号化される第２のフレームを、フレーム内符号化フレーム、前方向予測符号化フレーム及び「符号化不要フレーム」のうちのいずれかとして符号化するように制御する制御手段と、
を備える動画像符号化装置。
【請求項３８】
動画像をＭＰＥＧ−４方式で符号化する動画像符号化装置であって、
動画像の第１のフレームを符号化して得られる符号の符号量を求める手段と、
閾値を記憶する閾値記憶手段と、
前記第１のフレームの符号量と前記閾値とを比較し、前記第１のフレームの符号量が前記閾値より多い場合に、前記第１のフレームの次に符号化される第２のフレームをフレーム内符号化フレーム、前方向予測符号化フレーム及び「符号化不要フレーム」のうちのいずれかとして符号化するように制御する制御手段と、
を備える動画像符号化装置。
【請求項３９】
動画像をＭＰＥＧ−４方式で符号化する動画像符号化装置であって、
動画像の第１のフレームを符号化して得られる符号の符号量を求める手段と、
前記符号量を用いて、仮想的な復号化側のバッファであるＶＢＶバッファの占有量を推測する手段と、
前記ＶＢＶバッファの占有量の変化に応じて、前記第１のフレームの次に符号化される第２のフレームを、フレーム内符号化フレーム、前方向予測符号化フレーム及び「符号化不要フレーム」のうちのいずれかとして符号化するように制御する制御手段と、
を備える動画像符号化装置。
【請求項４０】
入力された動画像の各フレームを符号化してＭＰＥＧ−４符号化データを生成する動画像符号化方法であって、
第１のフレームを符号化して得られる結果から特定の情報を抽出し、
前記情報に応じて、前記第１のフレームの次に符号化される第２のフレームを前方向予測符号化フレーム、フレーム内符号化フレーム及び「符号化不要フレーム」のいずれかで符号化するように制御することを特徴とする動画像符号化方法。
【請求項４１】
入力された動画像の各フレームを符号化してＭＰＥＧ−４符号化データを生成する動画像符号化方法であって、
第１のフレームを符号化した際に発生する符号量を求め、
前記第１のフレームの符号量と閾値とを比較し、
前記第１のフレームの符号量が前記閾値より多い場合には、前記第１のフレームの次に符号化される第２のフレームを前方向予測符号化フレーム、フレーム内符号化フレーム及び「符号化不要フレーム」のいずれかで符号化するように制御することを特徴とする動画像符号化方法。
【請求項４２】
入力された動画像の各フレームを符号化してＭＰＥＧ−４符号化データを生成する動画像符号化方法であって、
第１のフレームを符号化した際に発生する符号量を求め、
前記符号量を用いて、仮想的な復号化側のバッファであるＶＢＶバッファの占有量を推測し、
前記ＶＢＶバッファの占有量の変化に応じて、前記第１のフレームの次に符号化される第２のフレームを前方向予測符号化フレーム、フレーム内符号化フレーム及び「符号化不要フレーム」のいずれかで符号化するように制御することを特徴とする動画像符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は動画像を符号化する装置及び方法、動画像の符号化方式を変換する装置及び方法に関する。
【０００２】
【従来の技術】
ＭＰＥＧ−４符号化方式は、インターネットや携帯機器の普及に伴い, その応用分野を広げつつある動画像符号化方式である。その応用分野は図７に示される携帯機器同士の画像通信に留まらず、図８に示すような既存の映像コンテンツを配信するストリーミング配信など様々な分野に広がっている。
【０００３】
特に、ストリーミング配信においては、ストリーミングに使用されるネットワークのバンド幅やコンテンツホルダー、エンドユーザーの要求に応じて数１０ｋｂｐｓという低いビットレートから高いビットレートによる高品質配信まで様々な要求が潜在的に存在している。特に高いビットレートにおいては、ＭＰＥＧ−４  Ｃｏｒｅ  ＰｒｏｆｉｌｅやＡｄｖａｎｃｅｄ  Ｓｉｍｐｌｅ  Ｐｒｏｆｉｌｅ等のように、ＶＯＰ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｐｌａｎｅ）の符号化に双方向予測を用いた符号化方式が用いられる。
【０００４】
ＶＯＰとは動画像の１コマ１コマの画像のことであり、ＭＰＥＧ−２でフレームあるいはフィールドと呼ばれていたものに相当する。
【０００５】
図９に動き予測の方式を模式的に示した図を示す。まず、図９のＶＯＰ（１）は動き予測を行わないで符号化されるＩ−ＶＯＰまたは後述する前方動き予測を行って符号化されるＰ−ＶＯＰである。ＶＯＰ（１）はＶＯＰ（２）〜ＶＯＰ（４）動き予測の際に参照されるＶＯＰとなる。
【０００６】
ＶＯＰ（４）はＰ−ＶＯＰであり、ＶＯＰ（１）を参照して前方動き予測を行って符号化される。ＶＯＰ（４）はこれ以降に入力されたＶＯＰの動き予測の際に参照される。
【０００７】
ＶＯＰ（２）とＶＯＰ（３）はＢ−ＶＯＰである。これらＢ−ＶＯＰは直前に入力されたＰ−ＶＯＰ（もしくはＩ−ＶＯＰ）であるＶＯＰ（１）を参照して前方動き予測を行い、さらに、直後に入力されたＰ−ＶＯＰであるＶＯＰ（４）を参照して後方動き予測を行って符号化される。すなわち、双方向動き予測を行うＶＯＰとなっている。
【０００８】
Ｂ−ＶＯＰであるＶＯＰ（２）、（３）の前方向動き予測とこれらの直後に入力されたＰ−ＶＯＰであるＶＯＰ（４）の前方向動き予測は、いずれもＶＯＰ（１）を参照して行っている。一方、ＶＯＰ（２）、（３）の後方向動き予測はこれらの直後に入力されたＰ−ＶＯＰであるＶＯＰ（４）を参照して行っている。
【０００９】
Ｂ−ＶＯＰを含むＭＰＥＧ−４ビットストリームを生成する際には、Ｂ−ＶＯＰの符号化に先駆けて当該Ｂ−ＶＯＰの動き予測の際に参照するＩ−ＶＯＰまたはＰ−ＶＯＰの符号化を行っておくことが一般なので、ＶＯＰが入力される順番と符号化される順番とは異なっている。
【００１０】
図１０は、入力されるＶＯＰに対し符号化がどのような順番で行われるかを表す例を示す図である。ＶＯＰが入力される順番はＩ０→Ｐ１→Ｂ２→Ｂ３→Ｐ４→Ｂ５→Ｂ６→Ｐ７・・・であるが、符号化される順番は入力から２ＶＯＰ遅れでＩ０→Ｐ１→Ｐ４→Ｂ２→Ｂ３→Ｐ７→Ｂ５→Ｂ６・・・となっている。Ｂ２やＢ３よりも後に入力されたＰ４の方が先に符号化されている（同様にＢ５やＢ６よりもＰ７が先に符号化されている）のが特徴的である。
【００１１】
一般に、後に入力されるＰ−ＶＯＰ（例えばＰ４）の方がＢ−ＶＯＰ（例えばＢ２、Ｂ３）よりも先に動き検出、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：離散コサイン変換）、量子化、可変長符号化される。そして、Ｂ−ＶＯＰは双方向の動き検出によって時間的に直前と直後のＰ−ＶＯＰとの差分データを算出され、ＤＣＴ、量子化、可変長符号化等を施されて効率的に符号化される。
【００１２】
ＭＰＥＧ−４においてマクロブロックの符号化パラメータひとつに”ｎｏｔ＿ｃｏｄｅｄ”と呼ばれるフラグがある。これは、当該マクロブロックに関する符号化データ（特に量子化ＤＣＴ係数、動きベクトル）が存在するか否かを示すものであり、このフラグが”１”の場合、当該マクロブロックが符号化不要として符号化されていることを示す（例えば、特許文献１）。
【００１３】
一般に、これから符号化しようとするマクロブロックが、参照ＶＯＰに対して変化がないとき、すなわち動きベクトル検出の結果求められた動きベクトルが（０，０）であり、かつ量子化後のＤＣＴ係数がすべて０であった場合には、”ｎｏｔ＿ｃｏｄｅｄ”フラグを１にする。
【００１４】
ＭＰＥＧ−４のデコーダはｎｏｔ＿ｃｏｄｅｄ＝１であるマクロブロックを受け取ると、当該マクロブロックを動きベクトルが（０，０）でＤＣＴ係数がすべて０であるとして復号を行い、参照画面の同位置にあるマクロブロックの情報をそのままコピーして用いる。
【００１５】
すなわち、このｎｏｔ＿ｃｏｄｅｄは「参照画面と同じ」という意味を持ち、ここから派生して動画像の符号化時には「符号化不要」という意味を、復号化時には「参照画面からコピー」という意味を持つ。
【００１６】
【特許文献１】
特開２００２−２１８４７０公報（段落［００６１］〜段落［００６３］）
【００１７】
【発明が解決しようとする課題】
ＭＰＥＧ−４においてｎｏｔ＿ｃｏｄｅｄフラグが存在するのは、Ｐ−ＶＯＰの場合に限られ、Ｂ−ＶＯＰではｎｏｔ＿ｃｏｄｅｄフラグは存在しない。Ｂ−ＶＯＰにおいて、当該マクロブロックが符号化されているか符号化されていないかは、直前に符号化を行ったＰ−ＶＯＰ（ＶＯＰの入力順だと時間的に直後のＰ−ＶＯＰ）のｎｏｔ＿ｃｏｄｅｄフラグの値に依存する。
【００１８】
Ｐ−ＶＯＰのある位置のマクロブロックにおいてｎｏｔ＿ｃｏｄｅｄフラグが１の場合、同一位置にあるＢ−ＶＯＰのマクロブロックは符号化をスキップする。そして、（デコーダで）Ｂ−ＶＯＰを復号化する時には、図１１に示すように参照画面の同位置にあるマクロブロックの情報をそのままコピーして用いる。
【００１９】
このような方式では、Ｂ−ＶＯＰだけが参照ＶＯＰに対して変化が大きい場合には符号化誤差が極端に大きくなる。このような現象が発生する例として、画像に映し出されるフラッシュがあげられる。
【００２０】
図１２に示すように、Ｉ−ＶＯＰとＰ−ＶＯＰにはさまれるＢ−ＶＯＰにおいてフラッシュが焚かれた場合、当該Ｂ−ＶＯＰのシーンは全面的に白色となり、参照ＶＯＰとの間の相関が小さくなる。しかしながら、Ｉ−ＶＯＰとＰ−ＶＯＰの相関は高いため、ｎｏｔ＿ｃｏｄｅｄマクロブロックが生成されてしまう可能性がある。
【００２１】
このような時、Ｐ−ＶＯＰの動き検出結果だけを見てｎｏｔ＿ｃｏｄｅｄマクロブロックを決定すると、フラッシュによって白っぽくなった全体のＶＯＰの中でブロック状の黒い矩形が残るという現象が発生してしまう。
【００２２】
また、ＭＰＥＧ−４規格で採用されている前方向動き予測符号化及び双方向動き予測符号化により生成される符号化データには、動き補償のための動きベクトルと、ＤＣＴ係数とがある。Ｂ−ＶＯＰやＰ−ＶＯＰの場合、ＶＯＰ内における相関及び参照ＶＯＰ間との相関が高い場合には効果的な圧縮が可能となる。
【００２３】
しかしながら、符号化対象となるＶＯＰがＶＯＰ内の相関及び参照ＶＯＰとの相関が低い場合においては、動き予測が的中しないため、ＤＣＴ係数に要する符号量に比べて動きベクトルに要する符号量が増大する。特に、Ｂ−ＶＯＰの場合はＰ−ＶＯＰに比べて約２倍もの符号量を動きベクトルに費やしてしまう場合が存在する。
【００２４】
上述したように（図１０）、一般にはあるＶＯＰがＢ−ＶＯＰ、Ｐ−ＶＯＰ、Ｉ−ＶＯＰのいずれで符号化されるかは、当該ＶＯＰの入力順に応じて決まる。そのため、動き予測が的中しないと分かっている状況下でもＢ−ＶＯＰとして符号化してしまうことが起こる。その結果、動きベクトルに符号量の大半を費やしてしまい、ＤＣＴ係数に十分な符号量を割り当てることができずに画質を劣化させてしまうという問題が起こる。
【００２５】
本発明は上記の点に鑑みてなされたものであり、Ｂ−ＶＯＰが存在するＭＰＥＧ−４符号化において、Ｂ−ＶＯＰの画質を向上させることを目的とする。
【００２６】
【課題を解決するための手段】
上記課題を解決するため、本発明の動画像符号化装置は、フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、前記前方向予測符号化手段は、前方向予測フレーム、前記前方向予測フレームの前方動き検出で用いる参照フレーム並びにこれらの間に入力された双方向予測フレームにおいて、各フレーム内で同位置にあるマクロブロック同士の相関が高い場合に、前記前方向予測フレームの当該マクロブロックを「符号化不要」として可変長符号化することを特徴とする。
【００２７】
本発明の動画像符号化装置は、フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、前記各符号化手段は、参照フレームの画像を参照して、各フレームを所定の大きさの領域に分割したマクロブロック毎の前方動きベクトルをブロックマッチングによって検出する前方動き検出手段と、前記前方動きベクトルに対応するマッチング残差を記憶する手段と、各マクロブロックの画素情報を直交変換する直交変換手段とを備え、前方向予測符号化手段は、前方向予測符号化フレームを構成する各マクロブロックのうち、量子化直交変換係数の全てと前方動きベクトルとが０であり、かつ、前方動き検出に用いる参照フレームが前記前方向予測符号化フレームと同じものである全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックにおける前記マッチング残差が所定の閾値以下である、という条件を満たすものだけを「符号化不要」として可変長符号化することを特徴とする。
【００２８】
本発明の動画像符号化装置は、フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、前記各符号化手段は、参照フレームの画像を参照して、各フレームのマクロブロック毎の前方動きベクトルをブロックマッチングによって検出する前方動き検出手段と、前記前方動きベクトルに対応するマッチング残差を記憶する手段と、各マクロブロックの画素情報を直交変換する直交変換手段とを備え、前記前方動き検出手段では、前方向予測符号化フレームと同じ参照フレームを用いて前方動き検出を行う全ての双方向予測符号化フレームの各マクロブロックの前方動き検出を、前記前方向予測符号化フレームの同一位置にあるマクロブロックの可変長符号化処理よりも先行するように行い、前記前方向予測符号化手段は、前記前方向予測符号化フレームを構成する各マクロブロックのうち量子化直交変換係数の全てと前方動きベクトルとが０であり、かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックにおける前記マッチング残差が所定の閾値以下である、という条件を満たすものだけを「符号化不要」として可変長符号化することを特徴とする。
【００２９】
本発明の動画像符号化装置は、動画像をＭＰＥＧ−４方式で符号化する動画像符号化装置であって、各フレームを構成するマクロブロック毎の前方動きベクトルを、前方向予測符号化フレームと同じ参照フレームを用いて前方動き検出を行う全ての双方向予測符号化フレームの同じ位置あるマクロブロックについての前方動き検出が、前記前方向予測符号化フレームの各マクロブロックの可変長符号化処理に対して先行するように求める前方動き検出手段と、前記動きベクトルに対応するマッチング残差を記憶する手段と、各フレームの各マクロブロックを可変長符号化する可変長符号化手段とを有し、前記可変長符号化手段では、前方向予測符号化フレームの各マクロブロックのうち、当該マクロブロックについての量子化離散コサイン変換係数の全てと前方動きベクトルとが０であり、かつ、前記前方向予測符号化フレームと同じ参照フレームを使用して前方動き検出を行う全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、かつ、前記双方向予測符号化フレーム上の同位置にあるマクロブロックについての前記マッチング誤差が所定の閾値以下であるものについてのみ、その符号化モードを「ｎｏｔ＿ｃｏｄｅｄ」とすることを特徴とする。
【００３０】
本発明の動画像符号化方式変換装置は、動画像を符号化したデータを、第１の符号化方式から第２の符号化方式に変換する動画像符号化方式変換装置であって、前記第１、第２の符号化方式によって生成された符号化データにはフレーム内符号化フレームと前方向予測符号化フレームと双方向予測符号化フレームとが含まれており、前記第１の符号化方式における前方向予測符号化フレームを所定の大きさに分割したマクロブロックのうち、符号化モードが「符号化不要」として符号化されているものは、前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行った全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの全ての符号化モードが「符号化不要」である場合か、或いは、前記同位置に相当するマクロブロックの全ての前方動きベクトルと各マクロブロックを構成する複数のブロックの中で変化があったものの個数を表すパラメータとが０である場合に限り、前記第２の符号化方式においても、当該マクロブロックの符号化モードを「符号化不要」とすることを特徴とする。
【００３１】
本発明の動画像符号化方式変換装置は、フレーム内符号化画像変換手段と、前方向予測符号化画像変換手段と、双方向予測符号化画像変換手段とを有し、動画像の符号化データを第１の符号化方式から第２の符号化方式に変換する動画像符号化方式変換装置であって、前記前方向予測符号化画像変換手段は、前方向予測符号化フレームを所定の大きさに分割したマクロブロックのうち、符号化モードが「符号化不要」となっているものは、前記前方向予測符号化フレームと同じフレームを参照フレームとして前方動き検出を行って符号化された全ての双方向予測符号化フレームにおいて同位置に相当するマクロブロックの全ての前方動きベクトルと、前記同位置に相当するマクロブロックを構成する複数のブロックの中で前記参照フレームと比べて変化があったものの個数が０である場合に限り、第２の符号化方式においても、当該マクロブロックの符号化モードを「符号化不要」とすることを特徴とする。
【００３２】
本発明の動画像符号化方式変換装置は、動画像を第１の符号化方式で符号化したフレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含むデータを、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む第２の符号化方式のデータに変換する動画像符号化方式変換装置であって、前記第１の符号化方式で符号化された符号化データに含まれる各マクロブロックのデータから動きベクトル、符号化モード、マクロブロックを構成する複数のブロックの中で変化があったものの個数を表す有意ブロック数の情報を取得する手段と、前記動きベクトル及び前記符号化モードの情報をもとに、第２の符号化方式で符号化する際の各マクロブロックの符号化モードを判定するモード判定部と、前記第１の符号化方式で符号化された符号化データを、前記モード判定部の判定結果に従ってマクロブロック毎に第２の符号化方式に変換する手段とを有し、前記モード判定部は、前記第２の符号化方式において前方予測符号化フレームのマクロブロックの符号化モードを「符号化不要」と判定するのは、当該マクロブロックに相当する前記第１の符号化方式による前方向予測符号化フレームにおけるマクロブロックが「符号化不要」として符号化されていて、そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「符号化不要」である場合か、或いは、そのうえ前記同位置に相当するマクロブロックの全ての前方動きベクトル及び有意ブロック数とが０である場合であることを特徴とする。
【００３３】
本発明の動画像符号化方式変換装置は、動画像を第１の符号化方式で符号化したフレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含むデータを、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む第２の符号化方式のデータに変換する動画像符号化方式変換装置であって、前記第１の符号化方式で符号化された符号化データを復号化する復号化部と、前記復号化部で第１の符号化データを復号化する際に得られる、各マクロブロックの動きベクトル及び符号化モード及び各マクロブロックを構成する複数のブロックの中で変化があったものの個数を表す有意ブロック数の情報をもとに、第２の符号化方式で符号化する際の各マクロブロックの符号化モードを判定するモード判定部と、前記復号化部で第１の符号化データを復号化して得られる画像データを、マクロブロック毎に前記モード判定部の判定結果に従って第２の符号化方式で符号化する可変長符号化部とを有し、前記モード判定部は、前記第２の符号化方式において前方予測符号化フレームのマクロブロックの符号化モードを「符号化不要」と判定するのは、当該マクロブロックに相当する前記第１の符号化方式による前方向予測符号化フレームにおけるマクロブロックが「符号化不要」として符号化されていて、そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「符号化不要」である場合か、或いは、そのうえ前記同位置に相当するマクロブロックの全ての前方動きベクトル及び有意ブロック数とが０である場合であることを特徴とする。
【００３４】
本発明の動画像符号化方式変換装置は、動画像の符号化データをＭＰＥＧ−２方式からＭＰＥＧ−４方式に変換する動画像符号化方式変換装置であって、ＭＰＥＧ−４方式において前方向予測符号化フレームのマクロブロックの符号化モードを「ｎｏｔ＿ｃｏｄｅｄ」とするのは、当該マクロブロックに相当するＭＰＥＧ−２方式による前方向予測符号化フレームにおけるマクロブロックが「ｓｋｉｐｐｅｄ」として符号化されていて、そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「ｓｋｉｐｐｅｄ」である場合か、或いは、そのうえ前期同位置に相当するマクロブロックの前方動きベクトルとＣＢＰとが０である場合であることを特徴とする。
【００３５】
本発明の動画像符号化方法は、入力された動画像信号を符号化して、フレーム内符号化画像と前方向予測符号化画像と双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、前方向予測符号化フレームの符号化では、前方向予測フレーム、前記前方向予測フレームの前方動き検出で用いる参照フレーム並びにこれらの間に入力された双方向予測フレームにおいて、各フレーム内で同位置にあるマクロブロック同士の相関が高い場合に、前記前方向予測フレームの当該マクロブロックを「符号化不要」として可変長符号化することを特徴とする。
【００３６】
本発明の動画像符号化方法は、入力された動画像信号を符号化して、フレーム内符号化画像と前方向予測符号化画像と双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、前方向予測符号化フレーム及び双方向予測符号化フレームの符号化では、符号化対象のフレームを構成するマクロブロック毎に、当該フレームよりも時間的に直前に入力された前方向予測符号化フレーム若しくはフレーム内符号化フレームを参照フレームとして前方動き検出を行い、各フレームの符号化では、符号化対象のフレームを構成するマクロブロック毎に、画素値に対する直交変換と、直交変換して得られる係数の量子化とを行い、前方向予測符号化フレームの符号化では、符号化対象のフレームを構成する各マクロブロックのうち、量子化した直交変換係数全てと前方動きベクトルとが０であり、かつ、同じフレームを参照フレームとして前方動き検出を行う全ての双方向予測符号化フレーム上の同位置にあるマクロブロックの前方動きベクトルが０であり、かつ、前記全ての双方向予測符号化フレーム上の同位置にあるマクロブロックと前記参照フレーム上の同位置にあるマクロブロックとの間の画素値の差が所定の閾値以下であるものだけを「符号化不要」として可変長符号化する。
【００３７】
本発明の動画像符号化方式変換方法は、動画像の符号化データをＭＰＥＧ−２方式からＭＰＥＧ−４方式に変換する動画像符号化方式変換方法であって、ＭＰＥＧ−４方式において前方向予測符号化フレームのマクロブロックの符号化モードを「ｎｏｔ＿ｃｏｄｅｄ」とするのは、当該マクロブロックに相当するＭＰＥＧ−２方式による前方向予測符号化フレームにおけるマクロブロックが「ｓｋｉｐｐｅｄ」として符号化されていて、そのうえ前記前方向予測符号化フレームと同じフレームを参照して前方動き検出を行って符号化された全ての双方向予測符号化フレームにおける同位置に相当するマクロブロックの符号化モードが「ｓｋｉｐｐｅｄ」である場合か、或いは、そのうえ前期同位置に相当するマクロブロックの前方動きベクトルとＣＢＰとが０である場合であることを特徴とする。
【００３８】
本発明の動画像符号化装置は、フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、前記各符号化手段のいずれかにより符号化された第１のフレームの符号化結果から、特定の情報を抽出する手段と、前記情報に応じて、前記第１のフレームの次に符号化される第２のフレームを符号化する際に、前記フレーム内符号化手段及び前記前方向予測符号化手段のいずれかを使用するように制御する制御手段とを備える。
【００３９】
尚、前記制御手段は、前記第１のフレームが前記前方向予測符号化手段で符号化されている場合、及び、前記第１のフレームが前記双方向予測符号化手段で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前記前方向予測符号化手段で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴としても良い。
【００４０】
本発明の動画像符号化装置は、フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、前記各符号化手段のいずれかで第１のフレームを符号化して得られる符号の符号量を求める手段と、閾値を記憶する閾値記憶手段と、前記第１のフレームの符号量と前記閾値とを比較し、前記第１のフレームの符号量が前記閾値より多い場合に、前記第１のフレームの次に符号化される第２のフレームに関しては、前記フレーム内符号化手段及び前記前方向予測符号化手段のいずれかを使用するように制御する制御手段と、を備える。
【００４１】
尚、前記制御手段は、前記第１のフレームの符号量が前記閾値より多い場合に、前記閾値記憶手段に第１の閾値を設定する第１の設定手段と、前記第１のフレームの符号量が前記閾値より少ない場合に、前記閾値記憶手段に前記第１の閾値より大きい第２の閾値を設定する第２の設定手段とを備えていても良い。
【００４２】
また、前記制御手段は、前記第１のフレームが前記前方向予測符号化手段で符号化されている場合、及び、前記第１のフレームが前記双方向予測符号化手段で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前記前方向予測符号化手段で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴としても良い。
【００４３】
本発明の動画像符号化装置は、フレーム内符号化手段と、前方向予測符号化手段と、双方向予測符号化手段とを備える動画像符号化装置であって、前記各符号化手段のいずれかで第１のフレームを符号化して得られる符号の符号量を求める手段と、前記符号量を用いて、仮想的な復号化側のバッファであるＶＢＶバッファの占有量を推測する手段と、前記ＶＢＶバッファの占有量の変化に応じて、前記第１のフレームの次に符号化される第２のフレームでは前記フレーム内符号化手段及び前記前方向予測符号化手段のいずれかを使用するように制御する制御手段と、を備える。
【００４４】
尚、「前記ＶＢＶバッファの占有量の変化に応じて」とは、
（Ａ）前記ＶＢＶバッファの占有量が閾値を下回る場合
（Ｂ）前記ＶＢＶバッファの占有量が前記第１のフレーム及びそれ以前の複数フレームにわたって減少している場合
（Ｃ）前記第１のフレームを符号化した結果が「符号化不要」である場合
（Ｄ）前記第１のフレームの符号化データのうち、動きベクトル由来の符号の量が閾値を上回る場合
のうちの少なくとも１つの条件を含んでいても良い。
【００４５】
また、さらに、前記各符号化手段における現在の計算負荷を調べる手段を備え、前記制御手段は、前記各符号化手段における現在の計算負荷が閾値を超える場合にも、抑制することを特徴としても良い。
【００４６】
尚、前記制御手段は、前記第１のフレームが前記前方向予測符号化手段で符号化されている場合、及び、前記第１のフレームが前記双方向予測符号化手段で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前記前方向予測符号化手段で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴としても良い。
【００４７】
本発明の動画像符号化方法は、入力された動画像の各フレームを符号化して、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、第１のフレームを符号化して得られる結果から特定の情報を抽出し、前記情報に応じて、前記第１のフレームの次に符号化される第２のフレームの符号化方式を前方向予測符号化方式及びフレーム内符号化方式のいずれかにするよう制御することを特徴とする。
【００４８】
尚、前記第１のフレームが前方向予測符号化方式で符号化されている場合、及び、前記第１のフレームが双方向予測符号化方式で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前方向予測符号化方式で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴としても良い。
【００４９】
本発明の動画像符号化方法は、入力された動画像の各フレームを符号化して、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、第１のフレームを符号化した際に発生する符号量を求め、前記第１のフレームの符号量と閾値とを比較し、前記第１のフレームの符号量が前記閾値より多い場合には、前記第１のフレームの次に符号化される第２のフレームの符号化方式をフレーム内符号化方式及び前方向予測符号化方式のいずれかを用いるように制御する。
【００５０】
また、前記第１のフレームの符号量が前記閾値より多い場合には、次に前記比較を行う際の前記閾値として第１の閾値を用い、前記第１のフレームの符号量が前記閾値より少ない場合には、次に前記比較を行う際の前記閾値として前記第１の閾値より大きい第２の閾値を用いることを特徴としても良い。
【００５１】
また、前記第１のフレームが前方向予測符号化方式で符号化されている場合、及び、前記第１のフレームが双方向予測符号化方式で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前方向予測符号化方式で符号化されている場合、のいずれかに該当する場合に、前記制御を行っても良い。
【００５２】
本発明の動画像符号化方法は、入力された動画像の各フレームを符号化して、フレーム内符号化画像と、前方向予測符号化画像と、双方向予測符号化画像とを含む符号化データを生成する動画像符号化方法であって、第１のフレームを符号化した際に発生する符号量を求め、前記符号量を用いて、仮想的な復号化側のバッファであるＶＢＶバッファの占有量を推測し、前記ＶＢＶバッファの占有量の変化に応じて、前記第１のフレームの次に符号化される第２のフレームではフレーム内符号化方式及び前記前方向予測符号化方式のいずれかを使用するように制御する。
【００５３】
尚、「前記ＶＢＶバッファの占有量の変化に応じて」とは、
（Ａ）前記ＶＢＶバッファの占有量が閾値を下回る場合
（Ｂ）前記ＶＢＶバッファの占有量が前記第１のフレーム及びそれ以前の複数フレームにわたって減少している場合
（Ｃ）前記第１のフレームを符号化した結果が「符号化不要」である場合
（Ｄ）前記第１のフレームの符号化データのうち、動きベクトル由来の符号の量が閾値を上回る場合
のうちの少なくとも１つの条件を含む。
【００５４】
また、さらに、現在のフレームの符号化処理の計算負荷を調べ、前記計算負荷が閾値を超える場合にも、抑制しても良い。
【００５５】
また、前記第１のフレームが前方向予測符号化方式で符号化されている場合、及び、前記第１のフレームが双方向予測符号化方式で符号化されていて、前記第１のフレームの次に入力された第３のフレームが前方向予測符号化方式で符号化されている場合、のいずれかに該当する場合に、前記制御を行うことを特徴としても良い。
【００５６】
【発明の実施の形態】
（第１の実施形態）以下、本発明の第１の実施形態の動画像符号化装置について図面を参照して説明する。
【００５７】
（概要）ＭＰＥＧ−４符号化装置では、入力された動画像の各フレーム（ＶＯＰ）をＩ−ＶＯＰとＰ−ＶＯＰとＢ−ＶＯＰの３種類のいずれかに符号化する。
【００５８】
Ｉ−ＶＯＰは動き検出を行わずにイントラ符号化されたＶＯＰである。また、Ｐ−ＶＯＰは時間的に直前、すなわち入力順で直前のＩ−ＶＯＰ若しくはＰ−ＶＯＰを参照ＶＯＰとして用いて、前方動き検出を行って前方予測符号化したＶＯＰである。そして、Ｂ−ＶＯＰは時間的に直前と直後のＰ−ＶＯＰ（或いはＩ−ＶＯＰ）を参照ＶＯＰとして用いて、前方動き検出と後方動き検出の両方を行う双方向動き検出を行って双方向予測符号化したＶＯＰである。
【００５９】
ＭＰＥＧ−４符号化方式では、動画像の各ＶＯＰは必ずしも入力順には符号化されない。例えば、Ｂ−ＶＯＰの符号化は、時間的に直前と直後のＰ−ＶＯＰの符号化が終わってから実行される。従って、符号化処理の各段階（入力、前方動き検出、後方動き検出、ＤＣＴ／量子化（Ｑ）／逆量子化（ＩＱ）／ＩＤＣＴ／可変長符号化（ＶＬＣ））のタイミングチャートは、例えば図１３のようなものであった。
【００６０】
図１３では、左から右に時間軸をとっている。また、Ｉｎ、Ｐｎ、Ｂｎは、それぞれｎ番目に入力されたＶＯＰで、Ｉ−ＶＯＰ、Ｐ−ＶＯＰ、Ｂ−ＶＯＰとして符号化されるＶＯＰを指す。
【００６１】
図１３によると、ＶＯＰの入力順序はＩ０→Ｐ１→Ｂ２→Ｂ３→Ｐ４→Ｂ５→Ｂ６→Ｐ７・・・となっているが、前方動き検出処理は入力から３ＶＯＰ遅れでＰ１→Ｐ４→Ｂ２→Ｂ３→Ｐ７→Ｂ５→Ｂ６・・・の順で行われる。また、後方動き検出処理は入力から５ＶＯＰ遅れでＢ２→Ｂ３→（処理なし）→Ｂ６→Ｂ５・・・の順で行われ、最終的に符号化処理された符号化データの出力は、入力から２ＶＯＰ遅れでＩ０→Ｐ１→Ｐ４→Ｂ２→Ｂ３→Ｐ７→Ｂ５→Ｂ６・・・の順で行われる。
【００６２】
符号化処理の時系列的な流れは次のようになる。
（１）Ｉ０が入力される。
（２）Ｐ１が入力される。
（３）Ｂ２が入力される時にＩ０の符号化処理を行う。
（４）Ｂ３が入力される時にＩ０を参照してＰ１の前方動き検出処理を行い、Ｐ１を符号化処理する。
（５）Ｐ４が入力される時にＰ１を参照してＰ４の前方動き検出処理を行い、Ｐ４を符号化処理する。
（６）Ｂ５が入力される時にＰ１を参照してＢ２の前方動き検出処理を行うとともにＰ４を参照してＢ２の後方動き検出処理を行い、Ｂ２を符号化処理する。
（７）Ｂ６が入力される時にＰ１を参照してＢ３の前方動き検出処理を行うとともにＰ４を参照してＢ３の後方動き検出処理を行い、Ｂ３を符号化処理する。
（８）Ｐ７が入力される時にＰ４を参照してＰ７の前方動き検出処理を行い、Ｐ７を符号化処理する。
【００６３】
一般に、ＭＰＥＧ−４の符号化処理では、符号化対象のＶＯＰを複数のマクロブロックに分割し、それぞれのマクロブロック毎に符号化処理を繰り返すことにより行われる。尚、ＭＰＥＧ−４ではマクロブロックの大きさは固定であるが、本発明を適用するにあたってはマクロブロックのサイズは可変であっても良い。
【００６４】
前述したように、Ｐ−ＶＯＰの符号化では、Ｐ−ＶＯＰの動き検出で参照ＶＯＰの同位置にあるマクロブロックとの相関が極めて高いと判定されたマクロブロックについては、ｎｏｔ＿ｃｏｄｅｄとして符号化する。そして、Ｐ−ＶＯＰのあるマクロブロックがｎｏｔ＿ｃｏｄｅｄと符号化されると、このＰ−ＶＯＰの動き検出に用いたのと同じ参照ＶＯＰを用いたＢ−ＶＯＰの当該マクロブロックは符号化されない。
【００６５】
Ｂ−ＶＯＰのこのマクロブロックは、図１１のように、復号化時には参照ＶＯＰの同じ位置のマクロブロックがコピーされる。そのため、図１２のようにフラッシュ等の影響でＢ−ＶＯＰのみで画像に大きな変化が生じた場合に画像が乱れる可能性がある。
【００６６】
これを図１３のタイミングチャートを用いて符号化及び動き検出の順を追って説明する。Ｐ４の動き検出をする際はＰ１を参照して行う。ここで、例えばフラッシュ等の影響でＢ２のみにおいて画像に大きな変化が生じた場合を考える。フラッシュは一瞬なので、Ｐ１とＰ４の変化は小さいものとする。
【００６７】
そして、Ｐ１上のマクロブロックの一つと、Ｐ４の同位置にあるマクロブロックとの相関が極めて高いと判断され、符号化時にＰ４の当該マクロブロックがｎｏｔ＿ｃｏｄｅｄになったとする。すると、その影響により、Ｐ４の当該マクロブロックと同位置にあるＢ２とＢ３のマクロブロックは符号化されなくなる。
【００６８】
このようにして生成された符号化データの復号化時には、Ｐ４の当該マクロブロックにはＰ１の同位置にあるマクロブロックの画像情報がコピーされる。そして、Ｐ４の当該マクロブロックと同位置にあるＢ２及びＢ３のマクロブロックにもＰ１の同位置のマクロブロックから画像情報がコピーされる。しかし、Ｐ１にはフラッシュの効果が全く現れていないので、Ｂ２の画像には乱れが生じてしまうのである。
【００６９】
このような画像の乱れを解消するため、本実施形態ではＰ−ＶＯＰの符号化にあたっては、当該Ｐ−ＶＯＰと同じ参照ＶＯＰ用いて前方動き検出処理を行う全てのＢ−ＶＯＰ（すなわち、参照ＶＯＰとＰ−ＶＯＰの間に入力されたＢ−ＶＯＰ）における同位置にあるマクロブロックと参照ＶＯＰ上における同位置にあるマクロブロックとの相関をも考慮するように構成した。
【００７０】
そして、参照ＶＯＰと、Ｐ−ＶＯＰと、その間の全てのＢ−ＶＯＰとの同位置にあるマクロブロック間の相関が高い場合には、当該マクロブロックについては符号化不要、すなわちｎｏｔ＿ｃｏｄｅｄとして符号化するように構成した。
【００７１】
例えば図１３においてＰ４を符号化する際に、Ｐ１とＰ４の相関だけでなくＰ１とＢ２、Ｐ１とＢ３の相関も考慮するようにした。そして、Ｐ１とＢ２、Ｐ１とＢ３、Ｐ１とＰ４の全てで相関が高いと判断されたマクロブロックについてのみ、ｎｏｔ＿ｃｏｄｅｄとして符号化するようにした。
【００７２】
この場合、マクロブロック間の相関が求められるＢ−ＶＯＰでは、前方動き検出が事前に終了していることが望ましい。遅くとも、Ｐ−ＶＯＰで符号化しようとしているマクロブロックと同位置にあるマクロブロックについては前方動き検出が終了していることが望ましい。
【００７３】
そのために、本実施形態では、例えば図２のようなタイミングチャートで符号化を行うようにして、Ｐ４の符号化時にＢ２とＢ３の動き検出を完了させておき、Ｂ２とＢ３の前方動き検出結果を参照して符号化を行うようにした。尚、図２はＰ−ＶＯＰ間あるいはＩ−ＶＯＰとＰ−ＶＯＰ間のＢ−ＶＯＰが２枚の場合におけるタイミングチャートの一例である。
【００７４】
（装置の構成）図１は本発明の第１の実施形態によるＭＰＥＧ−４符号化装置の構成を示すブロック図である。本実施形態の符号化装置は、入力画像をＶＯＰ単位で順次記憶するフレームメモリ１と、動きベクトルを検出する動き検出器２と、動きベクトルに対応するマッチング誤差（マッチング残差）を記憶するＳＡＤ（Ｓｕｍ  Ｏｆ  Ｄｉｆｆｅｒｅｎｃｅ）保存メモリ３とを有する。
【００７５】
さらに、求めた動きベクトルを記憶する動きベクトルメモリ８と、フレームの入力順にフレームの符号化モード（フレーム内符号化、前方予測符号化、双方向予測符号化）を決め、各モードに応じた動き補償を行う動き補償器９と、ローカルデコード画像をＶＯＰ単位で記憶するフレームメモリ１０と、動き補償を行った画像に対してＤＣＴを行う離散コサイン変換器６と、ＤＣＴ係数を量子化する量子化器５と、量子化ＤＣＴ係数及び動きベクトル等から符号化データを生成する可変長符号化器４とを有する。
【００７６】
また、ローカルデコード画像生成用の逆量子化器１２及び逆離散コサイン変換器１１と、加算器１３と、減算器１４と、マクロブロックの符号化モードをｎｏｔ＿ｃｏｄｅｄとするか否かの判定を行うモード判定器７とを有する。
【００７７】
図６は従来のＭＰＥＧ−４符号化装置の構成である。本実施形態のＭＰＥＧ−４符号化装置と大きく異なるのは、本実施形態ではＳＡＤ保存メモリ３と、動きベクトルメモリ８と、モード判定器７とを備える点である。
【００７８】
本装置は外部装置としてカメラ等の画像入力装置を備えたＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）で実行させるためのプログラムとして実現されるが、半導体集積回路などのハードウエアとして実現しても構わない。
【００７９】
図３は本実施形態のプログラムを動作させるためのＰＣやＷＳの一例である。本実施形態で用いるＰＣやＷＳは、ＣＲＴやＬＣＤ等の表示装置３０８と、キーボードやマウス等の入力装置３０９と、デジタルカメラその他の一般的な外部装置３１０とを備える。
【００８０】
また、本実施形態で用いるＰＣやＷＳは、表示装置３０８に画像信号を出力する画像出力部３０５と、入力装置３０９からの信号を受ける入力受付部３０６と、外部装置３１０と信号のやり取りをおこなうインターフェース（例えばＵＳＢ、パラレル・シリアルポート、通信装置等）に相当する出入力部３０７とを備える。
【００８１】
さらに、本実施形態で用いるＰＣやＷＳは、プログラムコードを実行する中央演算装置３０１と、データやプログラムコードを記憶するメモリ３０２と、データやプログラムを格納する磁気ディスクドライブ３０３と、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの光メディアに記録された情報を読み込む光ディスクドライブ３０４とを備える。
【００８２】
本実施形態のプログラムは磁気ディスクドライブ３０３に格納しておき、利用者からの実行の要求を受けてこれを読み出してメモリ３０２に展開し、中央演算装置３０１で実行する。実行結果はメモリ３０２に記憶させるほか、必要に応じて磁気ディスクドライブ３０３に格納したり、あるいは、利用者の要求に応じて出入力部３０７経由で外部装置３１０に出力する。
【００８３】
（動作の概要）本実施形態のＭＰＥＧ−４符号化装置も、一般的なＭＰＥＧ−４符号化装置と同様、入力された動画像を符号化して符号化データを出力する。まず、入力された画像をフレームメモリ１に保存し、入力順から符号化順へ順序の並べ替えを行う。そして、動き検出器２では、フレームメモリ１から出力される符号化対象ＶＯＰの各マクロブロックについて、フレームメモリ１０に記憶されたＩ−ＶＯＰまたはＰ−ＶＯＰを参照ＶＯＰとして動き検出が行われる。
【００８４】
動き検出によって動きベクトルが求められると、動き補償器９はその動きベクトルが指し示す参照ＶＯＰ上のマクロブロック相当の矩形領域のデータを抽出し、その矩形領域のデータと符号化対象マクロブロックとの差分が減算器１４で計算される。差分データは離散コサイン変換器６によってＤＣＴ係数に変換され、量子化器５によって量子化され、可変長符号化器４にてランレングス符号化／可変長符号化されることによってＭＰＥＧ−４ビットストリームが生成される。
【００８５】
符号化対象のＶＯＰがＩ−ＶＯＰまたはＰ−ＶＯＰの場合は、各マクロブロックの量子化後のＤＣＴ係数は逆量子化器１２によって逆量子化され、逆離散コサイン変換器１１によって動き補償フレームとの差分データに変換される。この差分データと動き補償器９から出力されるマクロブロック相当の矩形領域のデータとを加算器１３において足し合わせることにより各マクロブロックは画像情報となる。
【００８６】
これらのマクロブロックを所定の順に並べたものがローカルデコード画像である。ローカルデコード画像はフレームメモリ１０に蓄積されて、動き検出および動き補償時の参照ＶＯＰとして使用される。
【００８７】
（前方動き検出）後方動き検出については、一般的なＭＰＥＧ−４デコーダと同様なので説明を省略し、ここでは前方動き検出処理についてせつめいする。
【００８８】
動き検出器２では、フレームメモリ１が記憶している、直前にＩまたはＰ−ＶＯＰで符号化を行った参照ＶＯＰであるＲｅｆ（ｘ，ｙ）と、これからＢまたはＰ−ＶＯＰとして符号化を行おうとするカレントＶＯＰであるＣｕｒ（ｘ，ｙ）とのデータを参照する（ｘ、ｙはＶＯＰ内における座標のパラメータ）。
【００８９】
尚、時刻ｔにおけるＶＯＰをｆｒ（ｔ）と表す。前方動き検出の場合、参照ＶＯＰはカレントＶＯＰよりも先に入力されているので、Ｒｅｆ（ｘ，ｙ）を時刻ｔ０のＶＯＰとすると、Ｃｕｒ（ｘ，ｙ）は時刻ｔ０＋ｉのＶＯＰとなる。よって、Ｒｅｆ（ｘ，ｙ）はｆｒ（ｔ０）で、Ｃｕｒ（ｘ，ｙ）はｆｒ（ｔ０＋ｉ）と表すことができる。
【００９０】
そして、動き検出器２はこれらのＶＯＰを用いて前方動き検出を行う。本実施形態の前方動き検出の順序は、図２に示すようにＶＯＰの入力順と同一とする。すなわち、
【００９１】
【数１】
2004166183.tif 000003
【００９２】
というアルゴリズムで動き検出を行う。尚、ＭｏｔｉｏｎＥｓｔｉｍａｔｉｏｎ（ｘ，ｙ）は、ＶＯＰｙを参照ＶＯＰとしてＶＯＰｘの動き検出を行う関数である。
【００９３】
カレントＶＯＰの各マクロブロックの動き検出は、ＭＶ０（ｈ，ｖ）＝（ＭＶh，ＭＶv）を用いて次のような計算を行うことにより実現される。
【００９４】
【数２】
2004166183.tif 000004
【００９５】
数２において、ＳＡＤｍｉｎを得られたときの（ｊ，ｋ）がマクロブロックの動きベクトルであるので、これを動きベクトルメモリ８へ格納すると共にＳＡＤｍｉｎをＳＡＤメモリ３へ格納する。動きベクトル探索はマクロブロックのブロックマッチングで行うので、ＳＡＤｍｉｎはマッチング誤差に相当する量である。
【００９６】
尚、本実施形態では前方動き検出の順番とＶＯＰの入力順とを同一にするとしたが、Ｐ−ＶＯＰの符号化時に当該Ｐ−ＶＯＰの前方動き検出時に参照するのと同じＶＯＰを前方動き参照ＶＯＰとするＢ−ＶＯＰの動き検出が終わってさえいれば、必ずしもこの順番にこだわる必要はない。
【００９７】
（動き補償）動き補償器９では、動きベクトルメモリ８から得られた動きベクトルと、フレームメモリ１０から読み出した参照ＶＯＰのローカルデコード画像とを使用して動き補償を行う。
【００９８】
具体的には、減算器１４で、フレームメモリ１から読み出した符号化対象画像の各マクロブロックから、動きベクトルが指す参照ＶＯＰのマクロブロック相当の矩形領域の画像データを、減算することで予測誤差が求められる。
【００９９】
求めた予測誤差は離散コサイン変換器６・量子化器５を通して情報量が削減される。量子化後の離散コサイン変換係数は、モード判定器７に入力され、可変長符号化器４で符号化データに変換される。一方、逆量子化器１２・逆離散コサイン変換器１１・加算器１３を通してローカルデコード画像が作成され、フレームメモリ１０に蓄積される。
【０１００】
（マクロブロックの符号化モード判定・符号化）モード判定器７では、マクロブロックをｎｏｔ＿ｃｏｄｅｄとするかを後述する手順で判定する。そして、可変長符号化器４はモード判定器７の判定結果に従ってそのモードに応じた符号を生成し、ＭＰＥＧ−４ビットストリームとして出力する。
【０１０１】
モード判定器７でマクロブロック毎の符号化モード判定する手順を図４に示す。
（ステップ４０１）現在符号化しているＶＯＰがＩ−ＶＯＰかを調べる。Ｉ−ＶＯＰであれば判定対象のマクロブロックはｎｏｔ＿ｃｏｄｅｄとしない。
（ステップ４０２）現在符号化しているＶＯＰがＢ−ＶＯＰかを調べる。Ｂ−ＶＯＰであれば、（ステップ４０３）直前に符号化したＰ−ＶＯＰの同一位置のマクロブロックがｎｏｔ＿ｃｏｄｅｄかを調べ、同一位置のマクロブロックがｎｏｔ＿ｃｏｄｅｄであるならば判定対象のマクロブロックもｎｏｔ＿ｃｏｄｅｄとする。同一位置のマクロブロックがｎｏｔ＿ｃｏｄｅｄでなければ判定対象のマクロブロックもｎｏｔ＿ｃｏｄｅｄにしない。
(ステップ４０４）現在符号化しているＶＯＰはＰ−ＶＯＰであるので、以下（Ａ）〜（Ｃ）の条件のうちのいずれかを満たす場合はｎｏｔ＿ｃｏｄｅｄとしない。
（Ａ）判定対象のマクロブロックの量子化後の離散コサイン変換係数、前方動きベクトルに０以外の係数が含まれる場合。
（Ｂ）同一の参照ＶＯＰを使用して前方動き検出を行ったＶＯＰ、すなわちｆｒ（ｔ1−ｉ）（ｉ＝１．．．Ｍ−１）において、現在符号化を行っているマクロブロックと同一の位置にあるマクロブロックにおいて検出された動きベクトルの大きさが０よりも大きい場合。
（Ｃ）同一の参照ＶＯＰを使用して動き検出を行ったＶＯＰにおいて、現在符号化を行っているマクロブロックと同一の位置にあるマクロブロックについてのＳＡＤ値の中に、所定の閾値Ｔよりも大きいものが含まれる場合。
【０１０２】
尚、上述（Ｃ）の閾値Ｔは、例えば現在のマクロブロックの量子化係数をｑとしたとき、
【０１０３】
【数３】
2004166183.tif 000005
【０１０４】
という式で求められる。ここで係数ｒは、
【０１０５】
【数４】
2004166183.tif 000006
【０１０６】
として求めることができる。
【０１０７】
以上の判定手順より、Ｐ−ＶＯＰ内のマクロブロックがｎｏｔ＿ｃｏｄｅｄと符号化される条件は、
（α）当該マクロブロックの量子化後の離散コサイン変換係数の全てと動きベクトルとが０である。
（β）同一の参照ＶＯＰを使用して前方動き検出を行った全てのＢ−ＶＯＰにおける、同一位置にあるマクロブロックについて検出された動きベクトルが０である。
（γ）同一の参照ＶＯＰを使用して前方動き検出を行った全てのＢ−ＶＯＰにおける、同一位置にあるマクロブロックについて検出されたＳＡＤ値が所定の閾値Ｔよりも小さい。
の３条件全てを満たした場合である。
【０１０８】
このうち（γ）の条件は「マクロブロックの変化が小さい」という条件であり、前述のようなフラッシュ等によってマクロブロックが一瞬だけ大きく変化していないということを担保するための条件である。
【０１０９】
逆にこれら（α）〜（γ）のいずれか一つでも満たさないＰ−ＶＯＰ内のマクロブロックについては、通常通りの符号化処理を行う。
【０１１０】
Ｂ−ＶＯＰ内のマクロブロックがｎｏｔ＿ｃｏｄｅｄと符号化される条件は従来と同様で、同一の参照ＶＯＰを使用して前方動き検出を行ったＰ−ＶＯＰにおける、同一位置にあるマクロブロックがｎｏｔ＿ｃｏｄｅｄとして符号化されていることである。
【０１１１】
（符号化処理の順序）図２は本実施形態における符号化処理の順序を表すタイミングチャートである。
【０１１２】
図１３と同様に図２も、左から右に時間軸をとっている。また、Ｉｎ、Ｐｎ、Ｂｎは、それぞれｎ番目に入力されたＶＯＰで、Ｉ−ＶＯＰ、Ｐ−ＶＯＰ、Ｂ−ＶＯＰとして符号化されるＶＯＰを指す。
【０１１３】
本実施形態ではＩ０→Ｐ１→Ｂ２→Ｂ３→Ｐ４→Ｂ５→Ｂ６→Ｐ７・・・の順に動画像のＶＯＰが入力されると、前方動き検出処理を入力から１ＶＯＰ遅れでＰ１→Ｂ２→Ｂ３→Ｐ４→Ｂ５→Ｂ６→Ｐ７・・・の順に行われる。また、後方動き検出処理は入力から４ＶＯＰ遅れでＢ３→Ｂ２→（処理なし）→Ｂ６→Ｂ５・・・の順で行い、最終的に符号化処理された符号化データの出力は、入力から２ＶＯＰ遅れでＩ０→Ｐ１→Ｐ４→Ｂ２→Ｂ３→Ｐ７→Ｂ５→Ｂ６・・・の順で行われる。
【０１１４】
符号化処理の時系列的な流れは次のようになる。
（１）Ｉ０が入力される。
（２）Ｐ１の入力を受けて、Ｉ０を参照してＰ１の前方動き検出処理を行う。
（３）Ｂ２の入力を受けて、Ｐ１を参照してＢ２の前方動き検出処理を行うとともに、Ｉ０を符号化処理する。
（４）Ｂ３の入力を受けて、Ｐ１を参照してＢ３の前方動き検出処理を行うとともに、前方動き補償フレームとしてＩ０を用いてＰ１を符号化処理する。
（５）Ｐ４の入力を受けて、Ｐ１を参照してＰ４の前方動き検出処理を行うとともに、Ｐ４を参照してＢ３の後方動き検出処理を行い、Ｐ１を前方動き補償フレームとしてＰ４を符号化処理する。
（６）Ｂ５の入力を受けて、Ｐ４を参照してＢ５の前方動き検出処理を行うとともに、Ｐ４を参照してＢ２の後方動き検出処理を行い、前方動き補償フレームとしてＰ１を用い後方動き補償フレームとしてＰ４を用いてＢ２を符号化処理する。
（７）Ｂ６の入力を受けて、Ｐ４を参照してＢ６の前方動き検出処理を行うとともに、前方動き補償フレームとしてＰ１を用い後方動き補償フレームとしてＰ４を用いてＢ３を符号化処理する。
（８）Ｐ７の入力を受けて、Ｐ４を参照してＰ７の前方動き検出処理を行い、前方動き補償フレームとしてＰ４を用いてＰ７を符号化処理する。
【０１１５】
従来は前方動き検出処理の順序と符号化処理の順序とを同じくしていたが、本実施形態ではこれをＶＯＰの入力順で行うことにより、Ｐ−ＶＯＰの符号化時に当該Ｐ−ＶＯＰと同じＶＯＰ参照して前方動き検出を行うＢ−ＶＯＰの前方動き検出の結果を参酌することが可能となった。
【０１１６】
尚、動き検出の演算量を減らすために前方動き検出にテレスコピックサーチを適用する場合にも、動き検出の順序をこのような順番にすることがある。従って、本発明とテレスコピックサーチとを同時に用いることも可能である。
【０１１７】
テレスコピックサーチを適用した前方動き検出とは、直前に同じＶＯＰを参照ＶＯＰとして行ったＶＯＰについて検出された動きベクトルＭＶ０（ｈ，ｖ）を動きベクトルメモリ８から読み出し、それを探索中心点のオフセット値として水平垂直とも−Ｎ〜Ｎ−１画素のブロックマッチングを行って動きベクトルを求める手法である。
【０１１８】
本実施形態では、このような動き検出の順序を、演算量の削減（高速化）という目的ではなく画質劣化の抑制（画質向上）という目的で使用している。この点が従来とは異なっている。また、一般に処理速度と画質とは相反する要求であることを考慮すると、本実施形態は処理速度の向上と共通する手段を用いて画質の向上を図ることができるので、処理速度向上と画質向上との両方の要求に応えることができ、大変画期的であると言える。
【０１１９】
（本実施形態の効果）以上、本実施形態によれば、Ｐ−ＶＯＰの各マクロブロックの符号化モードを決定するにあたって、当該Ｐ−ＶＯＰと同じＶＯＰを参照して前方動き検出を行うＢ−ＶＯＰについての前方動き検出結果も参酌するので、Ｂ−ＶＯＰだけで画像に急激な変化が生じた場合でも画質の劣化を抑制できる。
【０１２０】
また、Ｐ−ＶＯＰの前方動き検出よりも先に、同じＶＯＰを参照するＢ−ＶＯＰの前方動き検出を行うので、前方動き検出処理にテレスコピックサーチを適用して、動き検出に要する演算量を減らすことが容易になる。
【０１２１】
（第２の実施形態）以下、本発明の第２の実施形態について図面を参照して説明する。
【０１２２】
（装置の構成）図５は本発明の第２の実施形態に係るＭＰＥＧ−２からＭＰＥＧ−４への画像変換装置の構成を示すブロック図である。
【０１２３】
本実施形態の変換装置は、ＭＰＥＧ−２方式のデータを復号して動画像を得るＭＰＥＧ−２デコーダ２０と、解像度の変換を行うスケーリング変換器２１と、ＭＰＥＧ−２デコーダ２０から得られる動きベクトルやマクロブロックの符号化モード等の情報を順次記憶するマクロブロック情報メモリ２５と、解像度変換を行った動画像を１フレーム単位で記憶するフレームメモリ２２とを備える。
【０１２４】
さらに本装置は、ＭＰＥＧ−４の符号化を行うための構成として、動き検出及び動き補償を行う動き検出兼動き補償器２３と、離散コサイン変換器２６と、量子化器２７と、マクロブロック毎に適切な符号化モードを判定するモード判定器２８と、ＭＰＥＧ−４符号化ビットストリームを生成する可変長符号化器２９とを備える。
【０１２５】
また本装置は、ＭＰＥＧ−４の符号化における動き補償及び動き検出に用いるローカルデコード画像を生成するために、逆量子化器３１と、逆離散コサイン変換器３０と、ローカルデコード画像をＶＯＰ単位で順次記憶するフレームメモリ２４と、加算器３３と、減算器３２とを備える。
【０１２６】
本装置は、ＭＰＥＧ−２のビットストリームから、フレームレートが同一で、画像の解像度を落とすことでビットレートを低減したＭＰＥＧ−４のビットストリームを生成するために用いられるものである。本実施形態のＭＰＥＧ−４変換装置は、ＭＰＥＧ−２のビットストリームを入力する手段を備えたＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）上で動作するプログラムとして実現され、第１の実施形態と同様な構成のＰＣやＷＳで実行されるものとするが、例えば半導体集積回路上に本装置の各部を形成したハードウエアとして実現しても良い。
【０１２７】
尚、以下の説明では、入力されるＭＰＥＧ−２ビットストリームが７２０×４８０画素の解像度を持つものとし、生成されるＭＰＥＧ−４ビットストリームは３５２×２４０画素の解像度のものであるとする。
【０１２８】
（動作）本装置に入力されたＭＰＥＧ−２ビットストリームは、ＭＰＥＧ−２デコーダ２０において復号化されて画像が生成される。この時同時に、ＭＰＥＧ−２で符号化された各フレームの各マクロブロックの情報、特に動きベクトルとｓｋｉｐｐｅｄ  ＭＢ情報も生成され、これらのマクロブロックの情報はマクロブロック情報メモリ２５へ蓄積される。
【０１２９】
一方、デコードして得られる７２０×４８０画素の解像度を持つ画像は、スケーリング変換器２１によって３５２×２４０画素に縮小された後にフレームメモリ２２に格納される。なお、スケーリング変換は、水平垂直とも入力画像の半分の解像度である３６０x２４０画素に縮小した後に、画像の右８画素を切り取ることで実現する。
【０１３０】
動き検出兼動き補償器２３では、フレームメモリ２２に保存されている画像を動き補償及び動き検出対象画像とし、フレームメモリ２４に保存されているＭＰＥＧ−４ローカルデコード画像を参照ＶＯＰとして、動き検出と動き補償を行う。動き検出の際には、マクロブロック情報メモリ２５から、ＭＰＥＧ−２で用いられた動きベクトルを参照して、必要な演算量を大きく削減する。
【０１３１】
今、ＭＰＥＧ−４の、あるＶＯＰのマクロブロックＭＢ4（ｈ、ｖ）に対して動き検出を行う場合を考える。この場合、マクロブロックＭＢ4（ｈ、ｖ）と同じ画像を含むＭＰＥＧ−２のマクロブロックＭＢ2（ｘ、ｙ）には、
ＭＢ2（２ｈ、２ｖ）
ＭＢ2（２ｈ＋１、２ｖ）
ＭＢ2（２ｈ、２ｖ＋１）
ＭＢ2（２ｈ＋１、２ｖ＋１）
の４種類が存在する。
【０１３２】
したがって、ＭＢ4（ｈ、ｖ）の動きベクトルの候補としては、上述の４つのマクロブロックの動きベクトルを１／２にスケーリングしたものが想定される。
【０１３３】
また、ＭＰＥＧ−２の動きベクトルは１／２画素精度の粒度を持っているため、この動きベクトルをスケーリングすると１／４画素精度の粒度となる。そこで、これら４つの動きベクトルを探索候補ベクトルとし、それに対し水平垂直±０．５画素の範囲で動き検出を行うことで、動きベクトルを求めることができる。
【０１３４】
以上のようにして求められた動きベクトルを元に動き補償を行い、さらに離散コサイン変換・量子化を行うのは、一般的なＭＰＥＧ−４符号化装置と同様である。また、離散コサイン変換、量子化を行われた画像がＩ−ＶＯＰ若しくはＰ−ＶＯＰの場合は逆量子化、逆離散コサイン変換を行ってローカルデコード画像を生成するのも一般的なＭＰＥＧ−４符号化装置と同様である。
【０１３５】
モード判定器２８では、符号化対象画像がＰ−ＶＯＰの場合に、マクロブロック情報メモリ２５に格納されたＭＰＥＧ−２マクロブロック情報に基づいて、当該符号化対象画像に含まれる各マクロブロックＭＢ4（ｈ、ｖ）それぞれをｎｏｔ＿ｃｏｄｅｄとして符号化するかどうかの判定を行う。
【０１３６】
今、符号化しようとしているマクロブロックＭＢ4（ｈ、ｖ）に属するＰ−ＶＯＰに対応するＭＰＥＧ−２のＰ−ピクチャをｐｉｃ（ｔ）、ｐｉｃ（ｔ）が前方動き補償ピクチャとして参照するピクチャをｐｉｃ（ｔ−Ｍ）（Ｍ＞０）とする。このとき以下の条件をすべて満たす場合にマクロブロックＭＢ4（ｈ、ｖ）をｎｏｔ＿ｃｏｄｅｄと判定する。
（１）ＭＢ2（２ｈ、２ｖ）、ＭＢ2（２ｈ＋１、２ｖ）、ＭＢ2（２ｈ、２ｖ＋１）、ＭＢ2（２ｈ＋１、２ｖ＋１）がすべてｓｋｉｐｐｅｄマクロブロックである。
（２）ｐｉｃ（ｔ−Ｍ）を前方動き補償ピクチャとして参照するすべてのＢ−ピクチャ、すなわちｐｉｃ（ｔ−Ｍ＋１）・・・ｐｉｃ（ｔ−１）において、ＭＢ2（２ｈ、２ｖ）、ＭＢ2（２ｈ＋１、２ｖ）、ＭＢ2（２ｈ、２ｖ＋１）、ＭＢ2（２ｈ＋１、２ｖ＋１）それぞれと同一の位置のマクロブロックがｓｋｉｐｐｅｄマクロブロックであるか、動きベクトルが０かつ符号化パラメータのＣＢＰ（Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎ／マクロブロックに含まれる６個のブロックの中で変化があったブロックの個数と位置を表すパラメータで「有意ブロック・パターン」ともいう。）が０である。
【０１３７】
この判定によってｎｏｔ＿ｃｏｄｅｄマクロブロックと判定された場合には、モード判定器２８は可変長符号化器２９を制御して当該マクロブロックについてはＭＰＥＧ−４におけるｎｏｔ＿ｃｏｄｅｄフラグを１にさせる。
【０１３８】
ＭＰＥＧ−２のＰ−ピクチャでは、ｓｋｉｐｐｅｄマクロブロックの動きベクトルは（０，０）である。しかし、ＭＰＥＧ−２のＢ−ピクチャでは、ｓｋｉｐｐｅｄマクロブロックの動きベクトルは左隣のマクロブロックと同じ動きベクトルを使うことを意味し、必ずしも（０，０）とは限らない。
【０１３９】
しかしながら、上記（１）に示したように同じピクチャを参照するＰ−ピクチャの各マクロブロックが（０，０）の動きベクトルを持っているので、Ｂ−ピクチャのｓｋｉｐｐｅｄマクロブロックの動きベクトルも（０，０）であると考えても差し支えない。
【０１４０】
ｎｏｔ＿ｃｏｄｅｄマクロブロックと判定されなかったマクロブロックについては、通常のＰ−ＶＯＰとしての符号化処理を行う。
【０１４１】
上記の判定を行うことで第１の実施形態と同様に、Ｐ−ＶＯＰのみならず、当該Ｐ−ＶＯＰとその参照ＶＯＰとの間に存在する全てのＢ−ＶＯＰについても、ｎｏｔ＿ｃｏｄｅｄで符号化しても問題ないかを確認したことになる。
【０１４２】
以上、本実施形態によれば、Ｂ−ピクチャだけで一瞬画面に大きな変化が生じ、かつ、直後のＰ−ピクチャにｓｋｉｐｐｅｄと符号化されたマクロブロックを含む動画像のＭＰＥＧ−２ビットストリームからＭＰＥＧ−４ビットストリームに変換する際に、画像の乱れを抑制することができる。
【０１４３】
以上、第１の実施形態、第２の実施形態ではではＭＰＥＧ−４を例に挙げて説明した。しかし、本発明はＭＰＥＧ−４に限られるものではない。
【０１４４】
動画像の各画像を画像内の相関と画像間の相関を利用して符号化する方式であって、ＭＰＥＧ−４でいうところのＢ−ＶＯＰのマクロブロック毎の符号化モードが、直後のＰ−ＶＯＰの符号化モードに依存する符号化方式に対して適用可能である。
【０１４５】
（第３の実施形態）以下、図面を参照して本発明の第３の実施形態について説明する。
【０１４６】
（概要）図１４は本実施形態のＭＰＥＧ−４符号化装置の概要を説明する図である。本実施形態のＭＰＥＧ−４符号化装置はコンピュータで動作させるプログラムである。すなわち、コンピュータにこれから説明する各部の機能を実現させるためのプログラムとして実現される。
【０１４７】
本実施形態の動画像符号化装置は、動画像を符号化する動画像符号化部１４０１と、符号化処理による計算負荷を調べる計算負荷測定部１４０２と、動画像の各ＶＯＰの符号化モードを制御する符号化モード制御部１４０３とを備える。
【０１４８】
動画像符号化部１４０１は、入力された動画像の各ＶＯＰを、フレーム内符号化、前方向予測符号化、双方向予測符号化のいずれかの符号化モードによって符号化し、符号化データを出力する。また、符号化に関する情報を符号化モード制御部１４０３に出力する。符号化に関する情報には、符号化データの量、最後に使用した符号化モードの情報が含まれている。
【０１４９】
計算負荷測定部１４０２は、符号化処理の計算負荷を調べて符号化モード制御部１４０３に通知する。本装置はコンピュータで動作させるプログラムであるので、コンピュータに搭載された中央演算処理装置３０１（図３）の負荷を調べて通知する。
【０１５０】
符号化モード制御部１４０３は、動画像符号化部１４０１からの符号化に関する情報に基づいて、動画像の各フレームの符号化モードを決定し、動画像符号化部１４０１を制御する。
【０１５１】
符号化モード制御部１４０３では、双方向予測符号化が効率よく行えているかを判断する。そして、効率が良くないと判断した場合は、双方向予測符号化の使用を抑制する（なるべく前方向予測符号化を用いる）ように動画像符号化部１４０１に対して制御を行う。
【０１５２】
本実施形態では、符号化の順番によって双方向予測符号化を使用せざるを得ない場合には使用するので「使用抑制」とする。例えば、Ｐ１→Ｂ２→Ｂ３→Ｐ４→Ｂ５→Ｂ６→Ｐ７というＶＯＰがあり、Ｂ２を符号化した際に効率が良くないと判断された場合に、Ｂ３を前方向予測符号化すると符号化処理が破綻してしまう。このような場合は、Ｂ３はＢ−ＶＯＰとして符号化し、Ｂ５以降での双方向予測符号化の使用を停止する。
【０１５３】
尚、「使用禁止」として構成しても良い。「使用禁止」とした場合は、符号化処理が破綻しないように必要に応じて符号化済みのＶＯＰについても符号化をやりなおすようにする。例えば、上述の例で説明すると、Ｂ２を符号化した際に効率が良くないと判断された場合に、強制的にＢ３を前方向予測符号化し、さらに、Ｐ４の符号化もやり直す（参照ＶＯＰをＢ３にする必要があるため）。
【０１５４】
また、符号化モード制御部１４０３では、計算負荷が所定の閾値より高い場合にも、双方向予測符号化の使用を抑制するように制御を行う。
【０１５５】
尚、本実施形態のＭＰＥＧ−４符号化装置は、半導体集積回路等のハードウエアとして実現しても良い。
【０１５６】
（構成）図１５は本実施形態のＭＰＥＧ−４符号化装置の概略構成を説明する図である。
【０１５７】
本実施形態の符号化装置は、入力画像をＶＯＰ単位で順次記憶するフレームメモリ１５０１と、各ＶＯＰの符号化モード（フレーム内符号化、前方予測符号化、双方向予測符号化）を決定し、動きベクトルを検出する動き検出器１５０２と、動きベクトル等からＭＶ符号化データを生成する可変長符号化器１５０９とを備える。
【０１５８】
さらに、各ＶＯＰの符号化モードに応じた動き補償を行う動き補償器１５０４と、ローカルデコード画像をＶＯＰ単位で記憶するフレームメモリ１５０３とを備える。
【０１５９】
また、動き補償を行った画像に対してＤＣＴを行う離散コサイン変換器１５０５と、ＤＣＴ係数を量子化する量子化器１５０６と、量子化ＤＣＴ係数等からＤＣＴ符号化データを生成する可変長符号化器１５１０と、ローカルデコード画像生成用の逆量子化器１５０７及び逆離散コサイン変換器１５０８と、加算器１５１６と、減算器１５１５とを備える。
【０１６０】
また、ＤＣＴ符号化データとＭＶ符号化データとを多重化しビットストリームを生成する多重化器１５１１と、ビットストリームの符号量及び動きベクトル由来の符号の量を計測する出力ビットカウンタ１５１２と、計測された符号量に応じて量子化器１５０６における量子化スケールを制御するレート制御器１５１３とを備える。これまでに述べた構成は、図１４の動画像符号化部１４０１の構成に相当する部分である。
【０１６１】
本実施形態の符号化装置は、さらに、符号化処理の計算負荷を測定する計算負荷測定部１５１７を備える。これは、図１４の計算負荷測定部１４０２に相当する部分である。
【０１６２】
本実施形態の符号化装置は、さらに、上述の出力ビットカウンタ１５１２で計測された符号化データの量、動きベクトル由来の符号化データの量及び上述の計算負荷測定部１５１７で測定された計算負荷に応じて動き検出器１５０２における動き検出モード（前方向予測、双方向予測、予測せず）及び可変長符号化部１５０９における符号化モード（前方向予測符号化、双方向予測符号化、フレーム内符号化）を制御する符号化モード制御部１５１４を備える。これは、図１４の符号化モード制御部１４０３に相当する部分である。
【０１６３】
（動作）符号化対象となる動画像はＶＯＰ毎にフレームメモリ１５０１に順次保存される。動き検出部１５０２では各ＶＯＰの符号化モードを決定し、符号化対象となるＶＯＰをフレームメモリ１５０１から読み出す。そして、Ｐ−ＶＯＰ及びＢ−ＶＯＰとして符号化されるＶＯＰに関しては動き検出により各ＶＯＰを構成するブロック単位で動きベクトルを求める。
【０１６４】
可変長符号化部１５０９では、各ブロックの動きベクトルとそのブロックに隣接するブロックの動きベクトルとの差分を求め、差分を可変長符号化してＭＶ符号化データを生成する。
【０１６５】
周囲のブロックと同様な動きベクトルが検出される場合は差分がほぼ０となり、動きベクトルは可変長符号化によって大変効果的に圧縮することが可能である（図１６（Ａ））。一方、周囲の動きベクトルとの相関が低い場合は差分が大きくなる。その結果、動きベクトルを可変長符号化した場合に発生する符号量は多くなり符号化による圧縮効果が低くなる（図１６（Ｂ））。
【０１６６】
周囲のブロックと同様な動きベクトルが検出される場合は、一般には動き予測が的中している場面、すなわち参照ＶＯＰと符号化対象のＶＯＰとの相関が高い場面であることが多い。一方、周囲の動きベクトルとの相関が低い場合は、一般には動き予測が当たらない場面、すなわち参照ＶＯＰと符号化対象のＶＯＰとの相関が低い場面であることが多い。
【０１６７】
動き補償器１５０４では、動き検出器１５０２で得られた動きベクトルとフレームメモリ１５０３から読み出した参照ＶＯＰとを用いて動き補償を行う。そして、減算器１５１５で、フレームメモリ１５０１から読み出した符号化対象ＶＯＰの各マクロブロックから、動きベクトルが指す参照ＶＯＰのマクロブロック相当の矩形領域の画像データを減算して予測誤差を求める。
【０１６８】
求めた予測誤差は離散コサイン変換器１５０５・量子化器１５０６を通して情報量が削減される。量子化後の離散コサイン変換係数は可変長符号化器１５１０で可変長符号化されてＤＣＴ符号化データに変換される。
【０１６９】
ＤＣＴ符号化データとＭＶ符号化データは多重化器１５１１において多重化され、ビットストリームとして出力される。
【０１７０】
尚、ＤＣＴ符号化データは逆量子化器１５０７にも出力され、逆量子化器１５０７・逆離散コサイン変換器１５０８・加算器１５１６を通してローカルデコード画像となってフレームメモリ１５０３に蓄積される。
【０１７１】
ＭＰＥＧ−４規格にて動画像を符号化する際には、復号化装置の入力バッファを溢れさせたり（オーバーフロー）、逆にデータ不足（アンダーフロー）にさせないように、復号化装置の入力バッファに対応する仮想的なバッファの占有量を考慮する必要がある。
【０１７２】
そこで、出力ビットカウンタ１５１２では、多重化器１５１１から出力される各ＶＯＰの符号化データの符号量を計測し、バッファ占有量を推定する。このバッファをＶＢＶバッファ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ）と呼ぶ。ＶＢＶバッファに関する詳細は後述する。また、出力ビットカウンタ１５１２は各ＶＯＰの動きベクトル由来の符号化データの量も測定する。
【０１７３】
出力ビットカウンタ１５１２は、推定したＶＢＶバッファの占有量を量子化レート制御器１５１３及び符号化モード制御器１５１４に通知する。また、出力ビットカウンタ１５１２は各ＶＯＰの動きベクトル由来の符号化データの量を符号化モード制御器１５１４に通知する。
【０１７４】
量子化レート制御器１５１３はＶＢＶバッファの占有量に応じて量子化器１５０６で用いる量子化スケールを制御して発生する符号量の調整を行う。詳細は後述する。
【０１７５】
計算負荷測定部１５１７では符号化処理による計算負荷を測定し、負荷の大きさを符号化モード制御器１５１４に通知する。
【０１７６】
符号化モード制御器１５１４は負荷の大きさ、ＶＢＶバッファの占有量及び動きベクトル由来の符号化データの量に応じて、双方向予測符号化の使用を抑制するか否かを決定し、動き検出器１５０２及び可変長符号化器１５０９を制御する。符号化モード制御器１５１４に関する詳細は後述する。
【０１７７】
（ＶＢＶバッファ）ＶＢＶバッファとは、復号化装置側のバッファを想定した仮想的なバッファである。
【０１７８】
復号化装置に符号化データが所定のビットレートで入力されることに対応させて、ＶＢＶバッファの占有量を常に所定の速度で増加させる。また、復号化装置において復号化処理が行われて符号化データが使用される（バッファ内のデータが減少する）ことに対応させて、ある一定の時間間隔でＶＢＶバッファの占有量を減少させる。
【０１７９】
ＶＢＶバッファの占有量を減少させるタイミングは、本装置から１つのＶＯＰの符号化データが出力されるタイミングとする。また、ＶＢＶバッファ占有量の減少量は、当該ＶＯＰの符号化データの量（フレームスキップの場合はデータ量を０）とする。
【０１８０】
図１７はＶＢＶバッファの占有量の推移を表したグラフの例である。図１７では、タイミング１７０１〜１７０４において出力された符号量に応じてＶＢＶバッファの占有量を減少させている。各タイミングでは、ＶＯＰの種類とシーン（例えば動きが激しいか否か）に応じて符号量の許容量を決める。例えば、タイミング１７０３での許容量は許容量１７０６と決まったとする。
【０１８１】
しかし、符号化の結果生成される符号の量は必ずしも許容量の範囲内になるとは限らない。例えばタイミング１７０３の許容量は許容量１７０６と決められたが、実際に符号化した結果生成された符号量は符号量１７０５であり、許容量１７０６よりも符号量が多くなっている。
【０１８２】
このような場合は、レート制御器１５１３は量子化器１５０６で用いる量子化スケールを大きくするように制御する。これにより次回に符号化処理されるＶＯＰ（タイミング１７０４若しくはそれ以降のタイミングで符号化されるＶＯＰ）の量子化ＤＣＴ係数の情報量が削減されるため、可変長符号化によって発生する符号量も減少する。
【０１８３】
すなわち、レート制御器１５１３は、量子化器１５０６を制御し、ＶＢＶバッファの占有量に応じて次に符号化されるＶＯＰの量子化スケールを変化させて発生符号量の調節を行う。
【０１８４】
（符号化モード制御器１５１４）前述したように、レート制御器１５１３では、量子化ＤＣＴ係数に由来する符号の量を減少させている。動きベクトルに由来する符号の量に関しては制御を行わない。
【０１８５】
しかし、符号量が許容量より多くなるのは量子化ＤＣＴ係数に由来する符号の量が多いことが原因とは限らない。上述したように、動き予測が当たらない場面では、あるブロックと隣接するブロックとの動きベクトルの差分が大きくなり、動きベクトルに由来する符号の量が多くなる傾向がある。
【０１８６】
また、このような場面では、参照ＶＯＰと符号化対象のＶＯＰとの相関が低いために予測誤差が大きくなり、結果として量子化ＤＣＴ係数に由来する符号の量も多くなる。
【０１８７】
従って、１つのＶＯＰに割り当てられる符号量が予め決まっている場合、動きベクトルの符号量が多くなってしまうと、量子化ＤＣＴ係数に割当て可能な符号量は少なくなってしまい、画質が大幅に劣化する。
【０１８８】
特にＢ−ＶＯＰは双方向予測符号化を行うため、前方向予測符号化のＰ−ＶＯＰに比べて動きベクトルが（単純に）２倍程度になると考えられる。そのため、Ｂ−ＶＯＰでは量子化ＤＣＴ係数に割当て可能な符号量が減少しやすく、Ｐ−ＶＯＰよりも画質が劣化しやすい。
【０１８９】
また、Ｂ−ＶＯＰでは双方向予測符号化を行うため、前方向予測符号化に比べて動きベクトルの探索回数が増え、計算負荷が大きくなる。符号化の処理時間が限られる状況下（例えばリアルタイムの符号化処理）や計算機能力が限られる状況下においては、計算負荷の大きさに応じて動きベクトルの探索範囲を制限する必要性が生じる。探索範囲を狭めると、精度の良い動きベクトルを求めることが難しくなり、画質の劣化を招きやすい。
【０１９０】
そこで、これらの画質の劣化を解消するために、符号化モード制御器１５１４は双方向予測符号化が効果的に機能しない場面を検知し、そのような場面では双方向予測符号化の使用を抑制してフレーム内符号化若しくは前方向予測符号化で符号化を行うように、動き検出器１５０２及び可変長符号化器１５０９を制御する。
【０１９１】
符号化モード制御器１５１４は、計算負荷の大きさ、ＶＢＶバッファの占有量及び動きベクトル由来の符号化データの量を用いて双方向予測符号化の使用を抑制するかを決定する。
【０１９２】
図１８は符号化モード制御器１５１４において、双方向予測符号化の使用を抑制するか否かを決定するフローチャートである。以下、図１８を用いて符号化モード制御器１５１４の処理を説明する。
【０１９３】
（ステップ１８０１）計算負荷測定部１５１７から受け取った現在の計算負荷が、所定の閾値を超えるか調べる。
【０１９４】
所定の閾値を超える場合は、計算負荷を軽減させるため、以後に符号化を行うＶＯＰにおいて双方向予測符号化の使用を抑制するように、動き検出器１５０２及び可変長符号化器１５０９を制御する（ステップ１８０７）。超えない場合はステップ１８０２の処理を行う。
【０１９５】
上記の計算負荷に関する閾値は、処理時間（リアルタイムか否か）及び計算機の性能に応じて設定する。本実施形態では計算負荷としてＣＰＵの負荷を用いるが、これ以外に符号化処理の演算量や、符号化処理が間に合わずに蓄積された入力画像が占めるメモリ量を用いても良い。
【０１９６】
（ステップ１８０２）フレームスキップが発生したか調べる。
【０１９７】
あるＶＯＰを符号化した際にＶＢＶバッファがアンダーフローを起こした場合、当該ＶＯＰは符号化されずにフレームスキップとなる。このような場合は以後のＶＯＰにおいては双方向予測符号化の使用を抑制するように動き検出器１５０２及び可変長符号化器１５０９を制御する（ステップ１８０７）。アンダーフローを起こしていない場合はステップ１８０３の処理を行う。
【０１９８】
図１９はフレームスキップの影響により符号化モードが変更される例を説明する図である。ＶＯＰ１９０１の符号化時にフレームスキップが発生した（ＶＯＰ１９１１）影響により、本来ならば双方向予測符号化によりＢ−ＶＯＰとして符号化される予定であったＶＯＰ１９０２が、前方向予測符号化によりＰ−ＶＯＰとして符号化される（ＶＯＰ１９１２）ように変更されている。
【０１９９】
あるＶＯＰの符号化時にフレームスキップが発生する、すなわちＶＢＶバッファがアンダーフローを起こすということは、当該ＶＯＰだけでなくその前に符号化された数ＶＯＰについても、割り当てられていた符号量よりも多く符号が発生している。つまり、この数ＶＯＰ間は動き予測が当たっていなかったと予測できる。
【０２００】
よって、当該ＶＯＰ以降のＶＯＰについては双方向予測符号化の使用を抑制することにより、動きベクトル由来の符号の量を抑え、量子化ＤＣＴ係数に多くの符号量を割り当てられるようにする。
【０２０１】
（ステップ１８０３）ＶＢＶバッファの占有量が減少傾向にあるかを調べる。
【０２０２】
あるＶＯＰを符号化した時から遡って、過去の数ＶＯＰの間、ＶＢＶバッファの占有量が減少している場合は、以後のＶＯＰにおいては双方向予測符号化の使用を抑制するように動き検出器１５０２及び可変長符号化器１５０９を制御する（ステップ１８０７）。減少傾向でない場合はステップ１８０４の処理を行う。
【０２０３】
図２０はＶＢＶバッファの占有量の推移を表す一例のグラフである。区間２０１２及び区間２０１３ではＶＢＶバッファの占有量が増加しているが、ＶＯＰ２００１から過去の数ＶＯＰにわたる区間２０１１ではＶＢＶバッファの占有量が減少している。
【０２０４】
数ＶＯＰにわたってＶＢＶバッファの占有量が減少しつづけるということは、動き予測が当たらない場面を符号化していると考えられる。そこで、動きベクトル由来の符号の量を減らし、量子化ＤＣＴ係数由来の符号を多くすることで画質が向上させることができる。
【０２０５】
ＶＢＶバッファの占有量の減少傾向の調べ方については、本実施形態では、ＶＢＶバッファの占有量のグラフにおける谷の部分の値（各ＶＯＰの符号量だけＶＢＶバッファを減少させた時の減少後の値）に着目し、各ＶＯＰ間のＶＢＶバッファ占有量の変化率が所定数のＶＯＰにわたって負の値の場合に減少傾向と判断する。ただし、途中でフレーム内符号化を行ったＶＯＰが存在する場合は、変化率が負となるＶＯＰを０から数えなおす。
【０２０６】
（ステップ１８０４）ＶＢＶバッファの占有量が所定の閾値を下回るかを調べる。
【０２０７】
あるＶＯＰを符号化した時にＶＢＶバッファの占有量が所定の閾値を下回った場合は、以後のＶＯＰにおいては双方向予測符号化の使用を抑制するように動き検出器１５０２及び可変長符号化器１５０９を制御する（ステップ１８０７）。所定の閾値を下回らない場合はステップ１８０５の処理を行う。
【０２０８】
本ステップにおける「所定の閾値」は、ＶＢＶバッファの占有量がアンダーフローに近づいているかを判定する性質のものである。従って、所定の閾値を下回るということはアンダーフローに近い状態にあることを意味する。
【０２０９】
このような状態は、動き予測が当たらない場面を符号化していることが原因で発生することが多い。そこで、動きベクトル由来の符号の量を減らし、量子化ＤＣＴ係数に多くの符号量を割り当てられるように制御し、画質向上を図る。
【０２１０】
図２１はＶＢＶバッファの占有量の推移を表すグラフの一例である。ＶＯＰ２１０１を符号化した際に閾値２１０２を下回っている。このような場合、本装置は双方向予測符号化の使用を抑制して、ＶＢＶバッファの占有量が下限２１０３を下回らないようにする（すなわち、アンダーフローを防止する）。
【０２１１】
（ステップ１８０５）各ＶＯＰの符号化データにおいて、動きベクトル由来の符号化データの量が所定の閾値を超えるか調べる。
【０２１２】
あるＶＯＰを符号化した時に当該ＶＯＰの動きベクトル由来の符号化データの量が所定の閾値を超えた場合は、以後のＶＯＰにおいては双方向予測符号化の使用を抑制するように動き検出器１５０２及び可変長符号化器１５０９を制御する（ステップ１８０７）。
【０２１３】
所定の閾値を下回らない場合は双方向予測符号化の使用抑制を解除し、どの符号化モードでも使用可能とする（ステップ１８０６）。
【０２１４】
尚、ステップ１８０５の閾値に関しては２種類用意しておき、双方向予測符号化の使用に関して、使用抑制状態か自由状態かで使い分ける。抑制状態では第１の閾値を用い、自由状態では第１の閾値より大きな値の第２の閾値を用いる。
【０２１５】
抑制状態では、双方向予測符号化は符号化の順番の都合で必要な場合を除いては用いられない。従ってほとんどのＶＯＰは前方向予測符号化で符号化される。
【０２１６】
上述したように、一般に双方向予測符号化では前方向予測符号化の時よりも多く（単純計算で約２倍程度）動きベクトル由来の符号が発生する。従って抑制状態の際に双方向予測符号化を基準にして閾値を設定すると閾値が高すぎてしまい、いつまでも抑制状態のままでいることになってしまう。
【０２１７】
一方、自由状態では全ての符号化モードを何ら制限無く用いることができる。従って、前方向予測符号化を基準にして閾値を小さな値に設定してしまうと、双方向予測符号化を用いる度に「閾値」を超えたと判定されてしまう。
【０２１８】
そこで、上述したように、使用抑制状態では第１の閾値を用い、自由状態では第１の閾値より大きな値の第２の閾値を用いる。
【０２１９】
（ステップ１８０６）全ての符号化モードを使用可能な「自由状態」にする。
【０２２０】
「自由状態」では全ての符号化モードの使用に関して制限をかけない。この状態では、各ＶＯＰに適用される符号化方式はＶＯＰの入力順番に応じて決定されることになる。
【０２２１】
（ステップ１８０７）双方向予測符号化の使用を抑制した「使用抑制状態」にする。
【０２２２】
「使用抑制状態」では、双方向予測符号化は符号化の順番の都合で必要な場合を除いては用いられない。従ってほとんどのＶＯＰは前方向予測符号化で符号化される。符号化方式の変更に伴い、必要に応じて符号化処理の順番の変更も行う。
【０２２３】
例えば、ＭＰＥＧ−４において、ＶＯＰの入力順に応じてＰ１→Ｂ２→Ｂ３→Ｐ４→Ｂ５→Ｂ６→Ｐ７と符号化方式が決まっていたとする。この時、符号化の順番はＰ１→Ｐ４→Ｂ２→Ｂ３→Ｐ７→Ｂ５→Ｂ６となる。
【０２２４】
このうち、Ｂ３を符号化した時にステップ１８０１〜ステップ１８０５のいずれかの条件を満たして「使用抑制状態」となったとする。
【０２２５】
すると、本来ならば次に符号化するのはＰ７であるが、双方向予測符号化の使用を抑制している状態なので、Ｂ５、Ｂ６も前方向予測符号化する必要がある。そこで、Ｂ３→Ｂ５→Ｂ６→Ｐ７の順番で符号化を行うように変更する。
【０２２６】
別の例では、Ｂ２を符号化した時にステップ１８０１〜ステップ１８０５のいずれかの条件を満たした場合、次に符号化するＢ３からは「使用抑制状態」となる。
【０２２７】
しかし、この時点でＢ３の符号化方式を前方向予測符号化に変更することは単純にはできない。なぜならば、既にＰ１を参照ＶＯＰとしてＰ４を前方向予測符号化で符号化しているからである。
【０２２８】
このような場合はＢ３は双方向予測符号化を用いて符号化を行う。そして、Ｂ３→Ｂ５→Ｂ６→Ｐ７の順番で符号化を行うように変更して、Ｂ５以降では前方向予測符号化で符号化を行う。
【０２２９】
尚、リアルタイムの処理を必要としない場合や、超高性能な演算処理装置を利用していて符号化処理能力が十分にある場合ならば、Ｂ３を前方向予測符号化で符号化し、Ｐ４の符号化をＢ３を参照ＶＯＰとしてやり直すように構成しても良い。これは前述の「使用禁止」に対応する構成となる。また、Ｂ３を動きベクトルやＤＣＴ係数を持たない「符号化不要フレーム」として符号化しても良い。
【０２３０】
以上に説明したように、符号化モード制御部１５１４は、上記ステップ１８０１〜１８０７の処理を行って双方向予測符号化の使用抑制状態と自由状態とを決定する。そして、動き検出器１５０２及び量子化器１５０６を制御して符号化モードの制御を行う。
【０２３１】
（本実施形態の効果）本実施形態は、現在の符号化状況をＶＢＶバッファ占有量や動きベクトル由来の符号の量から把握するため、少ない計算コストで画質劣化を抑制することが出来る。
【０２３２】
また、計算負荷が高い場合には計算負荷が少ない符号化モードを採用しているので、リアルタイムな符号化処理においても画質劣化を抑制することが出来る。
【０２３３】
【発明の効果】
以上説明したように、本発明の第１の実施形態によれば、Ｐ−ＶＯＰの符号化におけるｎｏｔ＿ｃｏｄｅｄマクロブロックの可否の判定に、当該Ｐ−ＶＯＰとそのＰ−ＶＯＰが参照する参照ＶＯＰに挟まれるすべてのＶＯＰの動きベクトルとＳＡＤ値を利用することにより、間に挟まれるＢ−ＶＯＰだけ画像に大きな変化があった場合にもｎｏｔ＿ｃｏｄｅｄマクロブロックの発生を抑制することによりＢ−ＶＯＰの画質低下を抑制することができる。
【０２３４】
また、本発明の第２の実施形態によれば、ＭＰＥＧ−２からＭＰＥＧ−４への変換装置において、Ｐ−ＶＯＰの符号化時のｎｏｔ＿ｃｏｄｅｄマクロブロックの可否の判定に、当該Ｐ−ＶＯＰに対応するＰ−ピクチャのｓｋｉｐｐｅｄマクロブロックの有無だけでなく、Ｐ−ピクチャとその参照ピクチャに挟まれるすべてのＢ−ピクチャがｎｏｔ＿ｃｏｄｅｄで符号化しても問題ないかを判断することにより、変換後のＭＰＥＧ−４ビットストリームにおけるＢ−ＶＯＰの画質劣化の発生を抑制することができる。
【０２３５】
また、本発明の第３の実施形態によれば、動き予測が非効率な場面で動きベクトル由来の符号の発生量を抑制し、量子化ＤＣＴ係数に多くの符号量を割り当てることができるので、画質劣化を抑制することが出来る。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態による画像符号化装置を説明するためのブロック図。
【図２】本発明の第１の実施の形態によるＭＰＥＧ−４符号化装置におけるタイミングチャート。
【図３】本発明の各実施形態で使用するＰＣやＷＳの例。
【図４】本発明の第１の実施形態における符号化モード判定手順を説明するフローチャート。
【図５】本発明の第２の実施の形態による画像符号化装置を説明するためのブロック図。
【図６】従来のＭＰＥＧ−４符号化装置の構成を説明する図。
【図７】ＭＰＥＧ−４の応用による携帯通信の例を示した図。
【図８】ＭＰＥＧ−２／４変換によるストリーミング配信の例を示した図。
【図９】双方向予測符号化を説明する図。
【図１０】入力ＶＯＰの順番と符号化される順番とを説明する図。
【図１１】ｎｏｔ＿ｃｏｄｅｄマクロブロックの復号処理。
【図１２】ｎｏｔ＿ｃｏｄｅｄマクロブロックが画質に影響を及ぼす様子を説明する図。
【図１３】従来のＭＰＥＧ−４符号化装置におけるタイミングチャート。
【図１４】第３の実施形態の画像符号化装置の概要を説明する図。
【図１５】第３の実施形態の画像符号化装置の構成を説明する図。
【図１６】（Ａ）動きベクトルを効率的に圧縮できる場合の例。（Ｂ）動きベクトルを効率的に圧縮できない場合の例。
【図１７】ＶＢＶバッファの占有量の推移の一例を表すグラフ。
【図１８】双方向予測符号化を抑制するか否かの判定処理を説明する図。
【図１９】双方向予測符号化が抑制された場合に符号化モードが変わる様子を説明する図。
【図２０】ＶＢＶバッファの占有量の推移の一例を表すグラフ。
【図２１】ＶＢＶバッファの占有量の推移の一例を表すグラフ。
【符号の説明】
１、１０、２２、２４、４０、４７、１５０１、１５０３  フレームメモリ
２、４５、１５０２  動き検出器
３  ＳＡＤメモリ
４、２９、４４、１５０９、１５１０  可変長符号化器
５、２７、４３、１５０６  量子化器
６、２６、４２、１５０５  離散コサイン変換器
７、２８  モード判定器
８  動きベクトルメモリ
９、４６、１５０４  動き補償器
１１、３０、４９、１５０８  逆離散コサイン変換器
１２、３１、５０、１５０７  逆量子化器
１３、３３、４８、１５１６  加算器
１４、３２、４１、１５１５  減算器
２０  ＭＰＥＧ−２デコーダ
２１  スケーリング変換器
２３  動き検出器兼動き補償器
２５  マクロブロック情報メモリ
１５１１  多重化器
１５１２  出力ビットカウンタ
１５１３  レート制御器
１５１４  符号化モード制御器
１５１７  計算負荷測定器
【図１】
2004166183.tif 000007
【図２】
2004166183.tif 000008
【図３】
2004166183.tif 000009
【図４】
2004166183.tif 000010
【図５】
2004166183.tif 000011
【図６】
2004166183.tif 000012
【図７】
2004166183.tif 000013
【図８】
2004166183.tif 000014
【図９】
2004166183.tif 000015
【図１０】
2004166183.tif 000016
【図１１】
2004166183.tif 000017
【図１２】
2004166183.tif 000018
【図１３】
2004166183.tif 000019
【図１４】
2004166183.tif 000020
【図１５】
2004166183.tif 000021
【図１６】
2004166183.tif 000022
【図１７】
2004166183.tif 000023
【図１８】
2004166183.tif 000024
【図１９】
2004166183.tif 000025
【図２０】
2004166183.tif 000026
【図２１】
2004166183.tif 000027