(57)【要約】【課題】演算量を抑制しつつ精度良く動きベクトルを検出する。【解決手段】動きベクトル検出装置１０は、符号化対象のフレーム画像を分割したマクロブロック毎に、符号化対象のフレーム画像から縮小画像を生成した場合に発生するノイズに関する特徴量を算出する。動きベクトル検出装置１０は、特徴量に応じて、原寸画像を縮小した縮小画像を参照画像として用いる第１の動きベクトル検出処理、又は、縮小画像よりも縮小の度合いが小さい画像を参照画像として用いる第２の動きベクトル検出処理を実行する。【選択図】図１
2014121051.tif 000002
【特許請求の範囲】
【請求項１】
動画像に含まれるフレーム画像を縮小した縮小画像を生成する縮小画像生成処理部と、
符号化対象の前記フレーム画像を分割したマクロブロック毎に、前記符号化対象の前記フレーム画像から前記縮小画像を生成した場合に発生するノイズに関する特徴量を算出する特徴量算出部と、
前記特徴量に応じて、前記符号化対象の前記フレーム画像に対応する原寸サイズの参照フレーム画像を縮小した第１の画像を参照画像として動きベクトルを検出する第１の動きベクトル検出処理、又は、前記原寸サイズの参照フレーム画像を縮小した前記縮小画像よりも縮小の度合いが小さい第２の画像を参照画像として動きベクトルを検出する第２の動きベクトル検出処理を実行する動きベクトル検出部と、
を含む動きベクトル検出装置。
【請求項２】
前記動きベクトル検出部は、前記ノイズが発生しない特徴量を有する前記マクロブロックについては、前記第１の動きベクトル検出処理を実行し、前記ノイズが発生する特徴量を有するマクロブロックについては、前記第２の動きベクトル検出処理を実行する
請求項１記載の動きベクトル検出装置。
【請求項３】
前記動きベクトル検出部は、前記ノイズが発生しない特徴量を有する前記マクロブロックについては、前記第１の動きベクトル検出処理を実行し、前記ノイズが発生する特徴量を有するマクロブロックのうち、前記ノイズが発生する特徴量を有するマクロブロックが予め定めた処理方向に連続する連続領域が存在する場合は、前記連続領域の先頭のマクロブロックについては、前記第２の動きベクトル検出処理を実行し、前記連続領域の先頭のマクロブロック以外のマクロブロックであって前記先頭のマクロブロックから前記処理方向において予め定めた距離内のマクロブロックについては、前記第１の動きベクトル検出処理を実行する
請求項１記載の動きベクトル検出装置。
【請求項４】
前記動きベクトル検出部は、
前記特徴量に応じて前記処理対象マクロブロックのベクトル信頼度を設定するベクトル信頼度設定部と、
前記特徴量に基づいて、前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択する選択部と、
処理対象の処理対象マクロブロックの画像と前記選択部により選択された前記参照画像に設定された探索範囲内のマクロブロックの画像との相関の度合いを表す画像相関値と、前記処理対象マクロブロックの動きベクトルと前記処理対象マクロブロックに隣接する隣接マクロブロックの動きベクトルとの相関の度合いを表すベクトル相関値と、前記ベクトル相関値の重みを調整する重み係数と、をパラメータとして含む評価値を算出する評価値算出部と、
前記隣接マクロブロックの前記ベクトル信頼度に応じて前記重み係数を設定する重み係数設定部と、
前記処理対象の前記マクロブロックの位置と、前記評価値が最小となる前記探索範囲内のマクロブロックの位置と、に基づいて、動きベクトルを演算する動きベクトル演算部と、
を備えた請求項２記載の動きベクトル検出装置。
【請求項５】
前記動きベクトル検出部は、
前記特徴量に応じて前記処理対象マクロブロックのベクトル信頼度を設定するベクトル信頼度設定部と、
前記特徴量及び前記処理対象マクロブロックに隣接する隣接マクロブロックの前記ベクトル信頼度に基づいて、前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択する選択部と、
処理対象の処理対象マクロブロックの画像と前記選択部により選択された前記参照画像に設定された探索範囲内のマクロブロックの画像との相関の度合いを表す画像相関値と、前記処理対象マクロブロックの動きベクトルと前記隣接マクロブロックの動きベクトルとの相関の度合いを表すベクトル相関値と、前記ベクトル相関値の重みを調整する重み係数と、をパラメータとして含む評価値を算出する評価値算出部と、
前記隣接マクロブロックの前記ベクトル信頼度及び前記特徴量に応じて前記重み係数を設定する重み係数設定部と、
前記処理対象の前記マクロブロックの位置と、前記評価値が最小となる前記探索範囲内のマクロブロックの位置と、に基づいて、動きベクトルを演算する動きベクトル演算部と、
を備えた請求項３記載の動きベクトル検出装置。
【請求項６】
前記ベクトル信頼度設定部は、前記連続領域の先頭のマクロブロックについては、予め定めた最大のベクトル信頼度を設定し、前記連続領域の先頭のマクロブロック以外のマクロブロックであって前記先頭のマクロブロックから前記処理方向において予め定めた距離内のマクロブロックについては、前記最大のベクトル信頼度から徐々に小さくなるように前記ベクトル信頼度を設定する
請求項５記載の動きベクトル検出装置。
【請求項７】
前記特徴量算出部は、前記特徴量のヒストグラムを算出すると共に、前記第１の動きベクトル検出処理の処理時間、前記第２の動きベクトル検出処理の処理時間、前記フレーム画像に含まれる前記マクロブロックの数、及び前記フレーム画像の目標処理時間に基づいて、前記第２の動きベクトル検出処理が可能なマクロブロックの限界数を算出し、前記ヒストグラムと前記限界数とに基づいて、前記選択部が前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択する際の閾値を設定する
請求項４〜６の何れか１項に記載の動きベクトル検出装置。
【請求項８】
前記特徴量算出部は、前記マクロブロックについて動きベクトルを検出する毎に、前記閾値を設定する
請求項７記載の動きベクトル検出装置。
【請求項９】
動画像に含まれるフレーム画像を縮小した縮小画像を生成し、
符号化対象の前記フレーム画像を分割したマクロブロック毎に、前記符号化対象の前記フレーム画像から前記縮小画像を生成した場合に発生するノイズに関する特徴量を算出し、
前記特徴量に応じて、前記符号化対象の前記フレーム画像に対応する原寸サイズの参照フレーム画像を縮小した第１の画像を参照画像として動きベクトルを検出する第１の動きベクトル検出処理、又は、前記原寸サイズの参照フレーム画像を縮小した前記縮小画像よりも縮小の度合いが小さい第２の画像を参照画像として動きベクトルを検出する第２の動きベクトル検出処理を実行する
ことを含む動きベクトル検出方法。
【請求項１０】
コンピュータに、
動画像に含まれるフレーム画像を縮小した縮小画像を生成し、
符号化対象の前記フレーム画像を分割したマクロブロック毎に、前記符号化対象の前記フレーム画像から前記縮小画像を生成した場合に発生するノイズに関する特徴量を算出し、
前記特徴量に応じて、前記符号化対象の前記フレーム画像に対応する原寸サイズの参照フレーム画像を縮小した第１の画像を参照画像として動きベクトルを検出する第１の動きベクトル検出処理、又は、前記原寸サイズの参照フレーム画像を縮小した前記縮小画像よりも縮小の度合いが小さい第２の画像を参照画像として動きベクトルを検出する第２の動きベクトル検出処理を実行する
ことを含む処理を実行させるための動きベクトル検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、動きベクトル検出装置、動きベクトル検出方法、及び動きベクトル検出プログラムに関する。
【背景技術】
【０００２】
動画像の圧縮符号化方式として、ＩＳＯ／ＩＥＣによって標準化されたＭＰＥＧ（Moving Picture Experts Group）やＩＴＵ−Ｔによって標準化されたＨ．２６１、Ｈ．２６２、Ｈ．２６４等が知られている。これらの圧縮符号化方式は、動き補償（Motion Compensation；MC）と呼ばれる技術を取り入れている。
【０００３】
動き補償では、符号化対象のフレーム画像を分割したマクロブロック（ＭＢ）毎に、符号化対象のフレーム画像と時間的に前後関係にある参照フレーム画像とを、いわゆるブロックマッチングにより比較する。そして、ブロックマッチングの結果に基づいて動きベクトルを検出し（Motion Estimation；ME）、検出された動きベクトルで動き補償された参照フレーム画像と符号化対象のフレーム画像との差分を算出し、算出した差分と動きベクトルを符号化する。
【０００４】
原寸サイズの参照フレーム画像（原寸画像）を用いて動きベクトルを検出する場合、演算量が多くなるため、原寸画像を縮小した縮小画像を用いて動きベクトルを検出する技術がある。縮小画像を用いて動きベクトルを検出する場合、演算量及びメモリ容量が少なくて済むため、原寸画像を用いて動きベクトルを検出する場合と比較して、ブロックマッチングの際に探索範囲を広く設定できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３２８２９号公報
【特許文献２】特開平９−１８２０８４号公報
【特許文献３】特開２０１０−２０１００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、縮小画像は、原寸画像から予め定めた間隔で画素をサンプリングすることにより生成するため、サンプリング周波数の半分以上の周波数成分は、折り返しノイズによるモアレ等のノイズ成分となる。これを軽減するためには、サンプリングの前に原寸画像にローパスフィルタをかければよいが、理想的なローパスフィルタの実現は困難である。例えば、強いローパスフィルタでは、必要な情報も除去され画像がボケ過ぎしてしまう可能性があり、弱いローパスフィルタでは、折り返しノイズが発生してしまう。
【０００７】
折り返しノイズが発生すると、本来画像に含まれていないモアレ等が縮小画像上に現れる。特に、折り返しノイズが発生した部分で画像に動きがある場合、本来の画像の動きと、折り返しノイズによるモアレパターンの動きが異なるため、精度良く動きベクトルを検出することができない。
【０００８】
開示の技術は、一つの側面として、演算量を抑制しつつ精度良く動きベクトルを検出することが目的である。
【課題を解決するための手段】
【０００９】
開示の技術は、縮小画像生成処理部は、動画像に含まれるフレーム画像を縮小した縮小画像を生成する。特徴量算出部は、符号化対象の前記フレーム画像を分割したマクロブロック毎に、前記符号化対象の前記フレーム画像から前記縮小画像を生成した場合に発生するノイズに関する特徴量を算出する。動きベクトル検出部は、前記特徴量に応じて、第１の動きベクトル検出処理、又は、第２の動きベクトル検出処理を実行する。第１の動きベクトル検出処理は、前記符号化対象の前記フレーム画像に対応する原寸サイズの参照フレーム画像を縮小した第１の画像を参照画像として動きベクトルを検出する処理である。第２の動きベクトル検出処理は、前記原寸サイズの参照フレーム画像を縮小した前記縮小画像よりも縮小の度合いが小さい第２の画像を参照画像として動きベクトルを検出する処理である。
【発明の効果】
【００１０】
開示の技術は、一つの側面として、演算量を抑制しつつ精度良く動きベクトルを検出することができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る動画像通信システムの構成図である。
【図２】ベクトル信頼度の演算について説明するための図である。
【図３】動きベクトル検出装置として機能するコンピュータのブロック図である。
【図４】第１実施形態に係るメイン処理の流れを示すフローチャートである。
【図５】第１実施形態に係る動きベクトル検出処理の流れを示すフローチャートである。
【図６】（Ａ）はフレーム画像の一例を示す図、（Ｂ）は折り返しノイズ判定結果の一例を示す図である。
【図７】第１実施形態に係る折り返しノイズ判定結果及び隣接マクロブロックのベクトル信頼度に対応した動作及び出力を示す表である。
【図８】（Ａ）は折り返しノイズ判定結果の一例を示す図、（Ｂ）はベクトル信頼度の一例を示す図である。
【図９】第２実施形態に係る動画像通信システムの構成図である。
【図１０】第２実施形態に係る動きベクトル検出処理の流れを示すフローチャートである。
【図１１】第２実施形態に係る折り返しノイズ判定結果及び隣接マクロブロックのベクトル信頼度に対応した動作及び出力を示す表である。
【図１２】（Ａ）は折り返しノイズ判定結果の一例を示す図、（Ｂ）はベクトル信頼度の一例を示す図である。
【図１３】第３実施形態に係る動きベクトル検出処理の流れを示すフローチャートである。
【図１４】第３実施形態に係る折り返しノイズ判定結果及び隣接マクロブロックのベクトル信頼度に対応した動作及び出力を示す表である。
【図１５】（Ａ）は折り返しノイズ判定結果の一例を示す図、（Ｂ）はベクトル信頼度の一例を示す図である。
【図１６】第４実施形態に係る特徴量算出処理の流れを示すフローチャートである。
【図１７】特徴量のヒストグラムの一例を示す図である。
【図１８】第５実施形態に係る特徴量算出処理の流れを示すフローチャートである。
【図１９】原寸画像及び縮小画像について説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１３】
（第１実施形態）
図１には、本実施形態に係る動きベクトル検出装置１０が示されている。動きベクトル検出装置１０は、特徴量算出部１２、縮小画像生成処理部１４、動きベクトル検出部１６、及びメモリ１８を備えている。
【００１４】
動きベクトル検出装置１０には、動画像に含まれる原寸サイズのフレーム画像（原寸画像）が入力され、メモリ１８に記憶される。
【００１５】
特徴量算出部１２は、原寸画像を予め定めた処理単位で分割したマクロブロック（ＭＢ）毎に特徴量を算出し、メモリ１８に記憶する。特徴量は、原寸画像を縮小した縮小画像を生成した場合に発生するノイズに関する特徴量であり、例えば折り返しノイズによるモアレ等が発生するか否かを判定することが可能な特徴量である。
【００１６】
具体的には、特徴量算出部１２は、例えばマクロブロック毎に離散コサイン変換（Discrete Cosine Transform:DCT）処理を実行し、高周波成分の合計値と低周波成分の合計値の比率を特徴量として算出する。なお、特徴量の算出方法はこれに限られるものではなく、例えばアダマール変換等の直交変換を用いて特徴量を算出してもよいし、上記特許文献１に記載されたように、エッジ情報を特徴量として算出してもよい。
【００１７】
縮小画像生成処理部１４は、原寸画像を予め定めた縮小率で縮小した縮小画像を生成し、メモリ１８に記憶する。縮小率は、例えば（１／４）×（１／４）の縮小率とすることができるが、これに限られるものではない。
【００１８】
動きベクトル検出部１６は、画像相関値演算部２０Ａ、２０Ｂ、選択部３０、コスト算出処理部３２、ベクトル信頼度設定部３４、動きベクトル記憶部３６、動きベクトル演算部３８、周辺ベクトル記憶部４０を備えている。また、動きベクトル検出部１６は、ベクトル相関値演算部４２、及びベクトルコスト重み係数設定部４４を備えている。
【００１９】
画像相関値演算部２０Ａは、縮小ＭＢ記憶部２２Ａ、参照画像記憶部２４Ａ、及び縮小画像相関値演算部２６Ａを備えている。
【００２０】
縮小ＭＢ記憶部２２Ａには、メモリ１８から読み出された縮小画像の処理対象マクロブロックが記憶される。
【００２１】
参照画像記憶部２４Ａには、メモリ１８から読み出された縮小サイズの参照画像が記憶される。参照画像は、本実施形態では、一例として一つ前のフレーム画像（いわゆるＰピクチャ）とする。
【００２２】
縮小画像相関値演算部２６Ａは、縮小ＭＢ記憶部２２Ａに記憶された縮小画像の処理対象マクロブロックと参照画像記憶部２４Ａに記憶された縮小サイズの参照画像とに基づいて、画像の相関の度合いを表す画像相関値ＳＡＤを演算する。画像相関値ＳＡＤは例えば次の（１）式により演算される。
【００２３】
【数１】
2014121051.tif 000003
・・・（１）
【００２４】
ここで、Ｎはマクロブロック内の画素数、ｉは画素位置、Ｐｏｒｇ（ｉ）は処理対象マクロブロックの画素の画素値、Ｐｒｅｆ（ｉ）は参照画像の探索範囲内のマクロブロックの画素の画素値である。
【００２５】
画像相関値演算部２０Ｂは、原寸ＭＢ記憶部２２Ｂ、参照画像記憶部２４Ｂ、及び原寸画像相関値演算部２６Ｂを備えている。
【００２６】
原寸ＭＢ記憶部２２Ｂには、メモリ１８から読み出された原寸画像の処理対象マクロブロックが記憶される。
【００２７】
参照画像記憶部２４Ｂには、メモリ１８から読み出された原寸サイズの参照画像が記憶される。参照画像は、本実施形態では一例としてＰピクチャとする。
【００２８】
原寸画像相関値演算部２６Ｂは、原寸ＭＢ記憶部２２Ｂに記憶された原寸画像の処理対象マクロブロックと参照画像記憶部２４Ｂに記憶された原寸サイズの参照画像とに基づいて、画像の相関の度合いを表す画像相関値ＳＡＤを演算する。画像相関値ＳＡＤは、上記（１）式により算出される。
【００２９】
選択部３０は、メモリ１８から処理対象マクロブロックの特徴量を読み出す。そして、選択部３０は、読み出した特徴量に基づいて、縮小画像相関値演算部２６Ａから出力された画像相関値ＳＡＤ又は原寸画像相関値演算部２６Ｂから出力された画像相関値ＳＡＤをコスト算出処理部３２に出力する。
【００３０】
具体的には、選択部３０は、特徴量が予め定めた閾値未満の場合は、縮小画像による動きベクトル検出処理（縮小ＭＥ）を実行すべきと判定し、縮小画像相関値演算部２６Ａから出力された画像相関値ＳＡＤを選択してコスト算出処理部３２に出力する。また、選択部３０は、特徴量が予め定めた閾値以上の場合は、原寸画像による動きベクトル検出処理（原寸ＭＥ）を実行すべきと判定し、原寸画像相関値演算部２６Ｂから出力された画像相関値ＳＡＤを選択してコスト算出処理部３２に指示する。ここで、閾値は、この値以上であれば、原寸画像から縮小画像を生成した場合にノイズが発生する虞があると判断できる値に設定される。
【００３１】
ベクトル信頼度設定部３４は、メモリ１８に記憶された処理対象マクロブロックの特徴量を読み出し、読み出した処理対象マクロブロックの特徴量に応じて処理対象マクロブロックのベクトル信頼度を設定する。ベクトル信頼度は、検出された動きベクトルの信頼度を表す。本実施形態では、特徴量が予め定めた閾値以上、すなわち原寸画像から縮小画像を生成した場合にノイズが発生する虞がある場合は、原寸画像を用いた原寸ＭＥが実行される。原寸ＭＥにより検出された動きベクトルの信頼度は、縮小画像を用いた縮小ＭＥにより検出された動きベクトルよりも信頼度が高いと言える。
【００３２】
従って、ベクトル信頼度設定部３４は、特徴量が閾値以上の場合、すなわち原寸ＭＥが実行された場合には、検出された動きベクトルの信頼度が高いことを表す値として「１」をベクトル信頼度に設定する。一方、特徴量が閾値未満の場合、すなわち縮小ＭＥが実行された場合は、検出された動きベクトルの信頼度が低いことを表す値として「０」をベクトル信頼度に設定する。
【００３３】
動きベクトル記憶部３６には、後述するように動きベクトル演算部３８で演算された処理対象マクロブロックの動きベクトルがメモリ１８から読み出されて記憶される。周辺ベクトル記憶部４０には、処理対象マクロブロックの周辺の周辺マクロブロックの動きベクトルがメモリ１８から読み出されて記憶される。
【００３４】
マクロブロックの符号化は、フレーム画像の左上から順に行われるため、図２に示すように、処理対象マクロブロックＭＢ１の左上、真上、右上、左側に位置する周辺マクロブロックＭＢ２〜ＭＢ５については、既に動きベクトルが検出されている。本実施形態では、周辺マクロブロックＭＢ２〜ＭＢ５のうち、処理対象マクロブロックＭＢ１の真上、右上、左側に位置する周辺マクロブロックＭＢ３〜ＭＢ５について既に検出された動きベクトルが周辺ベクトル記憶部４０に記憶される。
【００３５】
ベクトル相関値演算部４２は、動きベクトル記憶部３６に記憶された処理対象マクロブロックＭＢ１の動きベクトルと、周辺ベクトル記憶部４０に記憶された周辺マクロブロックＭＢ３〜ＭＢ５の動きベクトルと、をメモリ１８から読み出す。そして、ベクトル相関値演算部４２は、周辺マクロブロックＭＢ３〜ＭＢ５の動きベクトルに基づいて、周辺ベクトル（ＭＶＰｘ、ＭＶＰｙ）を次の（２）、（３）式により演算する。
ＭＶＰｘ＝ｍｅｄｉａｎ（ＭＶｘ［ｂ］、ＭＶｘ［ｃ］、ＭＶｘ［ｄ］）  ・・・（２）
ＭＶＰｙ＝ｍｅｄｉａｎ（ＭＶｙ［ｂ］、ＭＶｙ［ｃ］、ＭＶｙ［ｄ］）  ・・・（３）
【００３６】
すなわち、周辺ベクトル（ＭＶＰｘ、ＭＶＰｙ）は、周辺マクロブロックＭＢ３〜ＭＢ５の動きベクトルのｍｅｄｉａｎ（中間値）である。なお、周辺ベクトル（ＭＶＰｘ、ＭＶＰｙ）は、周辺マクロブロックＭＢ３〜ＭＢ５の動きベクトルの中間値に限られるものではなく、例えば平均値としてもよい。
【００３７】
ベクトル相関値演算部４２は、読み出した処理対象マクロブロックＭＢ１の動きベクトル（ＭＶｘ、ＭＶｙ）と周辺ベクトル（ＭＶＰｘ、ＭＶＰｙ）とに基づいて、動きベクトルとの相関の度合いを表すベクトル相関値Ｖｄｉｆｆを次の（４）式により演算する。
Ｖｄｉｆｆ＝｜ＭＶｘ−ＭＶＰｘ｜＋｜ＭＶｙ−ＭＶＰｙ｜      ・・・（４）
【００３８】
コスト算出処理部３２は、選択部３０から出力された画像相関値ＳＡＤとベクトル相関値演算部４２から出力されたベクトル相関値Ｖｄｉｆｆとに基づいて、評価値Ｃｏｓｔを算出する。評価値Ｃｏｓｔは、処理対象マクロブロックと参照画像の探索範囲のマクロブロックとの一致度の度合いを表し、次の（５）式により算出される。
Ｃｏｓｔ＝ＳＡＤ＋α×Ｖｄｉｆｆ      ・・・（５）
【００３９】
ここで、αはベクトルコストの重み係数であり、ベクトルコスト重み係数設定部４４により設定される。この重み係数αが大きいほど、評価値Ｃｏｓｔのベクトル相関値の重要度が高くなる。従って、重み係数αが大きいほど、評価値Ｃｏｓｔによりブロックマッチングを行う際に、ベクトルが一致するマクロブロックを探索する傾向が強くなる。
【００４０】
ベクトルコスト重み係数設定部４４は、周辺マクロブロックのベクトル信頼度及び特徴量に応じて重み係数αを設定する。本実施形態では、周辺マクロブロックのベクトル信頼度が、検出された動きベクトルの信頼度が低いことを表す値の場合には、重み係数を予め定めた通常の値に設定する。一方、周辺マクロブロックのベクトル信頼度が、検出された動きベクトルの信頼度が高いことを表す値の場合には、重み係数を予め定めた通常の値よりも大きい値に設定する。
【００４１】
コスト算出処理部３２は、処理対象マクロブロックと、参照画像の探索範囲に含まれる複数のマクロブロックの各々と、について評価値Ｃｏｓｔを各々算出する。
【００４２】
動きベクトル演算部３８は、コスト算出処理部３２により算出された処理対象マクロブロックと参照画像の探索範囲に含まれる複数のマクロブロックの各々とについての評価値Ｃｏｓｔのうち、最小値となる評価値Ｃｏｓｔを検出する。
【００４３】
そして、動きベクトル演算部３８は、最小値の評価値Ｃｏｓｔが算出された参照画像のマクロブロックの位置と処理対象マクロブロックの位置とに基づいて動きベクトルを演算し、メモリ１８に記憶する。
【００４４】
動きベクトル検出装置１０は、例えば図３に示すコンピュータ７０で実現することができる。コンピュータ７０はＣＰＵ７２、メモリ７４、及び不揮発性の記憶部７６を備え、これらはバス７８を介して互いに接続されている。
【００４５】
また、記憶部７６はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。記録媒体としての記憶部７６には、コンピュータ７０を動きベクトル検出装置１０として機能させるための動きベクトル検出プログラム８０が記憶されている。ＣＰＵ７２は、動きベクトル検出プログラム８０を記憶部７６から読み出してメモリ７４に展開し、動きベクトル検出プログラム８０が有するプロセスを順次実行する。
【００４６】
動きベクトル検出プログラム８０は、特徴量算出プロセス８２、縮小画像生成処理プロセス８４、及び動きベクトル検出プロセス８６を有する。
【００４７】
ＣＰＵ７２は、特徴量算出プロセス８２を実行することで、図１に示す特徴量算出部１２として動作する。また、ＣＰＵ７２は、縮小画像生成処理プロセス８４を実行することで、図１に示す縮小画像生成処理部１４として動作する。また、ＣＰＵ７２は、動きベクトル検出プロセス８６を実行することで、図１に示す動きベクトル検出部１６として動作する。
【００４８】
これにより、動きベクトル検出プログラム８０を実行したコンピュータ７０が、動きベクトル検出装置１０として機能することになる。なお、動きベクトル検出プログラム８０は開示の技術における動きベクトル検出プログラムの一例である。
【００４９】
なお、動きベクトル検出装置１０は、例えば半導体集積回路、より詳しくはＡＳＩＣ(Application Specific Integrated Circuit)等で実現することも可能である。
【００５０】
次に本実施形態の作用を説明する。本実施形態に係る動きベクトル検出装置１０では、撮影カメラ等により撮影された動画像を構成する原寸サイズのフレーム画像（原寸画像）が入力されると、図４に示す動きベクトル検出処理を実行する。入力された原寸画像は、メモリ１８に記憶されると共に、特徴量算出部１２及び縮小画像生成処理部１４に入力される。
【００５１】
ステップ１００では、特徴量算出部１２が、入力された原寸画像を分割したマクロブロック毎にＤＣＴ処理を実行し、高周波成分の合計値と低周波成分の合計値の比率を特徴量として算出する。そして、特徴量算出部１２は、算出したマクロブロック毎の特徴量をメモリ１８に記憶する。
【００５２】
ステップ１０２では、縮小画像生成処理部１４が、原寸画像を予め定めた縮小率、例えば（１／４）×（１／４）で縮小した縮小画像を生成し、メモリ１８に記憶する。
【００５３】
ステップ１０４では、動きベクトル検出部１６が、図５に示す動きベクトル検出処理を実行する。
【００５４】
図５のステップ２００では、縮小画像相関値演算部２６Ａが、縮小ＭＢ記憶部２２Ａに記憶された縮小画像の処理対象マクロブロックと参照画像記憶部２４Ａに記憶された縮小サイズの参照画像とに基づいて、画像の相関の度合いを表す画像相関値ＳＡＤを演算する。また、ステップ２００では、原寸画像相関値演算部２６Ｂが、原寸ＭＢ記憶部２２Ｂに記憶された原寸画像の処理対象マクロブロックと参照画像記憶部２４Ｂに記憶された原寸サイズの参照画像とに基づいて、画像の相関の度合いを表す画像相関値ＳＡＤを演算する。
【００５５】
ステップ２０２では、ベクトル相関値演算部４２が、処理対象マクロブロックＭＢ１の動きベクトル（ＭＶｘ、ＭＶｙ）と周辺ベクトル（ＭＶＰｘ、ＭＶＰｙ）とに基づいて、動きベクトルとの相関の度合いを表すベクトル相関値Ｖｄｉｆｆを演算する。
【００５６】
ステップ２０４では、ベクトルコスト重み係数設定部４４が、入力された原寸画像の処理対象マクロブロックに隣接する隣接マクロブロックのベクトル信頼度をメモリ１８から読み出し、読み出したベクトル信頼度が「０」であるか否かを判断する。なお、本実施形態では、隣接マクロブロックとは、処理対象マクロブロックの左側に隣接するマクロブロック及び処理対象マクロブロックの真上に隣接するマクロブロックをいう。従って、処理対象マクロブロックの左側に隣接するマクロブロック及び処理対象マクロブロックの真上に隣接するマクロブロックの少なくとも一方のベクトル信頼度が「０」であれば、ステップ２０４の判断は肯定される。
【００５７】
そして、隣接マクロブロックのベクトル信頼度が「０」の場合はステップ２０６へ移行し、隣接マクロブロックのベクトル信頼度が「１」の場合はステップ２０８へ移行する。
【００５８】
ステップ２０６では、ベクトルコスト重み係数設定部４４が、予め定めた値Ａをベクトルコスト重み係数αに設定する。
【００５９】
一方、ステップ２０８では、ベクトルコスト重み係数設定部４４が、予め定めた値Ａに予め定めた係数ＶＷ１を乗算した値をベクトルコスト重み係数αに設定する。
【００６０】
ステップ２１０では、選択部３０が、処理対象マクロブロックの特徴量が予め定めた閾値未満であるか否か、すなわち、縮小画像に折り返しノイズが発生する虞がないか否かを判断する。そして、処理対象マクロブロックの特徴量が予め定めた閾値未満であればステップ２１２へ移行し、予め定めた閾値以上であればステップ２１６へ移行する。
【００６１】
例えば入力された原寸画像が図６（Ａ）に示すような画像の場合、特徴量が予め定めた閾値以上となり、縮小画像に折り返しノイズが発生する虞があるマクロブロックは、図６（Ｂ）に示すハッチングで示したマクロブロックＭＢａとなる。
【００６２】
ステップ２１２では、縮小画像を用いた第１の動きベクトル検出処理が実行される。具体的には、選択部３０が、縮小画像相関値演算部２６Ａから出力された画像相関値ＳＡＤを選択してコスト算出処理部３２に出力する。
【００６３】
次に、コスト算出処理部３２が、選択部３０から出力された画像相関値ＳＡＤ、ベクトル相関値演算部４２から出力されたベクトル相関値Ｖｄｉｆｆ、及びベクトルコスト重み係数設定部４４により設定された重み係数αに基づいて、評価値Ｃｏｓｔを算出する。コスト算出処理部３２は、処理対象マクロブロックと、参照画像の探索範囲に含まれる複数のマクロブロックの各々と、について評価値Ｃｏｓｔを各々算出し、動きベクトル演算部３８に出力する。
【００６４】
動きベクトル演算部３８は、コスト算出処理部３２により算出された処理対象マクロブロックと参照画像の探索範囲に含まれる複数のマクロブロックの各々とについての評価値Ｃｏｓｔのうち、最小値となる評価値Ｃｏｓｔを検出する。そして、動きベクトル演算部３８は、最小値の評価値Ｃｏｓｔが算出された参照画像のマクロブロックの位置と処理対象マクロブロックの位置とに基づいて動きベクトルを求め、メモリ１８に記憶する。
【００６５】
ステップ２１４では、ベクトル信頼度設定部３４が、処理対象マクロブロックのベクトル信頼度として「０」をメモリ１８に記憶する。
【００６６】
一方、ステップ２１６では、原寸画像を用いた第２の動きベクトル検出処理が実行される。具体的には、選択部３０が、原寸画像相関値演算部２６Ｂから出力された画像相関値ＳＡＤを選択してコスト算出処理部３２に出力する。以下、ステップ２１２と同様の処理により動きベクトルを演算し、メモリ１８に記憶する。
【００６７】
ステップ２１８では、ベクトル信頼度設定部３４が、処理対象マクロブロックのベクトル信頼度として「１」をメモリ１８に記憶する。
【００６８】
ステップ２２０では、フレーム画像内の全てのマクロブロックについて上記の処理を終了したか否かを判断し、全てのマクロブロックについて上記の処理が終了していない場合はステップ２００へ戻って上記と同様の処理を繰り返す。一方、全てのマクロブロックについて上記の処理が終了した場合には、本ルーチンを終了する。
【００６９】
図７には、入力された処理対象マクロブロックの特徴量に基づき判断された折り返しノイズの有無及び隣接マクロブロックのベクトル信頼度、ベクトルコストの重み係数及び動きベクトル検出に用いられる画像サイズ、出力されるベクトル信頼度の関係を示した。なお、ベクトルコストの重み係数が「通常」の場合は、予め定めた値Ａが重み係数αとして設定された場合を、ベクトルコスト係数が「大」の場合は、予め定めた値Ａに予め定めた係数ＶＷ１を乗算した値が重み係数αに設定された場合を示す。なお、値Ａ、係数ＶＷ１は、１より大きい正の値が設定される。
【００７０】
また、図８（Ａ）には、入力された原寸画像が図６（Ａ）に示す画像の場合に、縮小画像に折り返しノイズが発生する虞があるマクロブロックを「１」、折り返しノイズが発生する虞がないマクロブロックを「０」で示した折り返しノイズ判定結果を示した。
【００７１】
図８（Ｂ）には、入力された原寸画像が図６（Ａ）に示す画像の場合における各マクロブロックのベクトル信頼度を示した。なお、本実施形態では、図７に示すように、折り返しノイズの有無とベクトル信頼度の結果は一致する。従って、ステップ２１４、２１８でベクトル信頼度をメモリ１８に記憶するのではなく、折り返しノイズの有無を記憶するようにし、ステップ２０４は隣接マクロブロックのベクトル信頼度に代えて折り返しノイズの有無で判断してもよい。
【００７２】
さらに、図８（Ｂ）には、原寸ＭＥが「通常」の重み係数で実行されるマクロブロック、縮小ＭＥが「通常」の重み係数で実行されるマクロブロックをマクロブロックＭＢ１１、ＭＢ１２で示した。また、原寸ＭＥが「大」の重み係数で実行されるマクロブロック、縮小ＭＥが「大」の重み係数で実行されるマクロブロックをマクロブロックＭＢ１３、ＭＢ１４で示した。
【００７３】
このように、本実施形態では、縮小画像に折り返しノイズが発生する虞がある場合は原寸画像を用いて原寸ＭＥを実行し、縮小画像に折り返しノイズが発生する虞がない場合は縮小画像を用いて縮小ＭＥを実行する。このため、演算量を抑制しつつ精度良く動きベクトルを検出することができる。
【００７４】
（第２実施形態）
次に開示の技術の第２実施形態について説明する。なお、第１実施形態と同一の部分には同一の符号を付して説明を省略し、第１実施形態と異なる部分を中心に説明する。
【００７５】
図９には、第２実施形態に係る動きベクトル検出装置１０Ａを示した。
【００７６】
動きベクトル検出装置１０Ａが第１実施形態に係る動きベクトル検出装置１０と異なるのは、選択部３０による原寸ＭＥ及び縮小ＭＥの何れを実行すべきかの判定処理とベクトルコスト重み係数設定部４４によるベクトルコストの重み係数αの設定処理である。
【００７７】
次に第２実施形態の作用を説明する。第２実施形態では、図４のステップ１００，１０２の処理は第１実施形態と同様であるため、図４のステップ１０４の動きベクトル検出処理についてのみ説明する。
【００７８】
図４のステップ１０４では、図１０に示す動きベクトル検出処理が動きベクトル検出部１６によって実行される。
【００７９】
ステップ３００、３０２の処理は、図５のステップ２００、２０２の処理と同様であるので、説明を省略する。
【００８０】
ステップ３０４では、図５のステップ２１０と同様に、選択部３０が、処理対象マクロブロックの特徴量が予め定めた閾値未満であるか否かを判断する。そして、処理対象マクロブロックの特徴量が予め定めた閾値未満であればステップ３０６へ移行し、予め定めた閾値以上であればステップ３１６へ移行する。
【００８１】
ステップ３０６〜３１０の処理は、図５のステップ２０４〜２０８の処理と同様であるので、説明を省略する。また、ステップ３１２、３１４の処理は、図５のステップ２１２、２１４の処理と同様であるので、説明を省略する。
【００８２】
ステップ３１６では、図５のステップ２０４と同様に、ベクトルコスト重み係数設定部４４が、隣接マクロブロックのベクトル信頼度をメモリ１８から読み出し、読み出したベクトル信頼度が「０」であるか否かを判断する。そして、隣接マクロブロックのベクトル信頼度が「０」の場合はステップ３１８へ移行し、隣接マクロブロックのベクトル信頼度が「０」でない場合はステップ３２４へ移行する。
【００８３】
ステップ３１８は、図５のステップ２０８と同様である。また、ステップ３２０、３２２は、図５のステップ２１６、２１８と同様である。
【００８４】
一方、ステップ３２４では、ベクトルコスト重み係数設定部４４が、予め定めた値Ａに予め定めた係数ＶＷ２を乗算した値をベクトルコスト重み係数αに設定する。なお、ＶＷ１＜ＶＷ２である。
【００８５】
このように、処理対象マクロブロックの特徴量が閾値未満の場合は、ベクトルコストの重み係数はαには予め定めた値Ａが設定される。また、処理対象マクロブロックの特徴量が閾値以上で且つ隣接マクロブロックのベクトル信頼度が「０」の場合は、ベクトルコストの重み係数αには予め定めた値Ａに係数ＶＷ１を乗算した値が設定される。また、処理対象マクロブロックの特徴量が閾値以上で且つ隣接マクロブロックのベクトル信頼度が「０」でない場合は、ベクトルコストの重み係数αには予め定めた値Ａに係数ＶＷ１より大きい係数ＶＷ２を乗算した値が設定される。
【００８６】
ステップ３２８は、図５のステップ２２０と同様の処理である。
【００８７】
図１１には、入力された処理対象マクロブロックの特徴量に基づき判断された折り返しノイズの有無及び隣接マクロブロックのベクトル信頼度、ベクトルコストの重み係数及び動きベクトル検出に用いられる画像サイズ、出力されるベクトル信頼度の関係を示した。なお、ベクトルコストの重み係数が「特大」の場合は、予め定めた値Ａに予め定めた係数ＶＷ２を乗算した値が重み係数αに設定された場合を示す。
【００８８】
図１１で図７と異なるのは、折り返しノイズが「有」で且つ隣接マクロブロックのベクトル信頼度が「０」の場合に、ベクトルコストの重み係数αが「大」となる点である。また、折り返しノイズが「有」で且つ隣接マクロブロックのベクトル信頼度が「１」の場合に、ベクトルコストの重み係数αが「特大」となり、原寸ＭＥではなく縮小ＭＥが実行される点である。
【００８９】
また、図１２（Ａ）には、図８（Ａ）と同様に折り返しノイズが発生する虞があるか否かの判定結果を示した。また、図１２（Ａ）には、入力された原寸画像が図６（Ａ）に示す画像の場合に、縮小画像に折り返しノイズが発生する虞があるマクロブロックを「１」、折り返しノイズが発生する虞がないマクロブロックを「０」で示した折り返しノイズ判定結果を示した。
【００９０】
図１２（Ｂ）には、入力された原寸画像が図６（Ａ）に示す画像の場合の各マクロブロックのベクトル信頼度を示した。なお、本実施形態では、図１１に示すように、折り返しノイズの有無とベクトル信頼度の結果は一致する。従って、ステップ３１４、３２２でベクトル信頼度をメモリ１８に記憶するのではなく、折り返しノイズの有無を記憶するようにし、ステップ３０４は隣接マクロブロックのベクトル信頼度に代えて折り返しノイズの有無で判断してもよい。
【００９１】
さらに、図１２（Ｂ）には、原寸ＭＥが「大」の重み係数で実行されるマクロブロック、縮小ＭＥが「通常」の重み係数で実行されるマクロブロックをマクロブロックＭＢ１１Ａ、ＭＢ１２で示した。また、縮小ＭＥが「特大」の重み係数で実行されるマクロブロック、縮小ＭＥが「大」の重み係数で実行されるマクロブロックをマクロブロックＭＢ１３Ａ、ＭＢ１４で示した。
【００９２】
このように、第２実施形態では、折り返しノイズが「有」で且つ隣接マクロブロックのベクトル信頼度が「１」の場合に、原寸ＭＥではなく縮小ＭＥを実行するので、動きベクトル検出の際の演算量を抑制することができる。また、この場合、ベクトルコストの重み係数αを「特大」として評価値Ｃｏｓｔのベクトル相関値の重みを大きくするので、精度良く動きベクトルを検出することができる。
【００９３】
（第３実施形態）
次に開示の技術の第３実施形態について説明する。なお、第２実施形態と同一の部分には同一の符号を付して説明を省略し、第２実施形態と異なる部分を中心に説明する。
【００９４】
第３実施形態に係る動きベクトル検出装置の構成は、第２実施形態に係る動きベクトル検出装置１０Ａと同一の構成であるため、構成の説明を省略する。
【００９５】
次に第３実施形態の作用を説明する。第３実施形態では、図１３に示す動きベクトルの検出処理において、ステップ３２１，３２７以外の処理は第２実施形態で説明した処理と同一であるため、説明を省略する。
【００９６】
図１３のステップ３２１では、ベクトル信頼度設定部３４が、処理対象マクロブロックのベクトル信頼度として予め定めた値Ｘ１をメモリ１８に記憶する。また、ステップ３２７では、ベクトル信頼度設定部３４が、処理対象マクロブロックのベクトル信頼度Ｘ２を次の（６）式により演算してメモリ１８に記憶する。
Ｘ２＝Ｙ−１  ・・・（６）
【００９７】
ここで、Ｙは隣接マクロブロックのベクトル信頼度である。従って、特徴量が閾値以上のマクロブロックが連続する場合、ベクトル信頼度は徐々に小さくなっていく。
【００９８】
このように、第３実施形態では、処理対象マクロブロックの特徴量が閾値以上で且つ隣接マクロブロックのベクトル信頼度が「０」の場合は、ベクトル信頼度に予め定めた値Ｘ１が設定される。また、処理対象マクロブロックの特徴量が閾値以上で且つ隣接マクロブロックのベクトル信頼度が「０」でない場合、すなわち「１」以上の場合は、ベクトル信頼度にＸ２が設定される。
【００９９】
図１４には、入力された処理対象マクロブロックの特徴量に基づき判断された折り返しノイズの有無及び隣接マクロブロックのベクトル信頼度、ベクトルコストの重み係数及び動きベクトル検出に用いられる画像サイズ、出力されるベクトル信頼度の関係を示した。
【０１００】
図１４で図１１と異なるのは、折り返しノイズが「有」の場合におけるベクトル信頼度の設定である。本実施形態では、折り返しノイズが「有」で且つ隣接マクロブロックのベクトル信頼度が「０」の場合は、ベクトル信頼度をＸ１に設定し、折り返しノイズが「有」で且つ隣接マクロブロックのベクトル信頼度が「１」の場合は、ベクトル信頼度をＸ２に設定する。
【０１０１】
図１５（Ａ）には、図８（Ａ）と同様に折り返しノイズが発生する虞があるか否かの判定結果を示した。
【０１０２】
また、図１５（Ｂ）には、入力された原寸画像が図６（Ａ）に示す画像の場合の各マクロブロックのベクトル信頼度を示した。
【０１０３】
さらに、図１５（Ｂ）には、原寸ＭＥが「大」の重み係数で実行されるマクロブロック、縮小ＭＥが「通常」の重み係数で実行されるマクロブロックをマクロブロックＭＢ１１Ａ、ＭＢ１２で示した。また、縮小ＭＥが「特大」の重み係数で実行されるマクロブロック、縮小ＭＥが「大」の重み係数で実行されるマクロブロックをマクロブロックＭＢ１３、ＭＢ１４で示した。
【０１０４】
図１５（Ｂ）で図１２（Ｂ）と異なるのは、折り返しノイズが発生する虞があるマクロブロックが連続する連続領域におけるベクトル信頼度の値である。図１５（Ｂ）に示すように、本実施形態では、前記連続領域においては、原寸ＭＥが実行されたマクロブロックからの距離が長くなるに従って、ベクトル信頼度は徐々に小さくなっていく。そして、連続領域においてベクトル信頼度が「０」になると、再びベクトル信頼度がＸ１となり、原寸ＭＥが実行される。これにより、動きベクトル検出の際の演算量を抑制しつつ、精度良く動きベクトルを検出することができる。
【０１０５】
（第４実施形態）
次に開示の技術の第４実施形態について説明する。上記各実施形態では、特徴量の判定に用いられる閾値が固定値の場合について説明したが、第４実施形態では、各マクロブロックの特徴量に基づいて原寸ＭＥを実行可能な性能限界個数を求め、求めた性能限界個数に応じた閾値を設定する場合について説明する。なお、動きベクトル検出装置の構成は上記実施形態で説明した動きベクトル検出装置と同一の構成であるので、構成の説明は省略する。
【０１０６】
第４実施形態では、図４のステップ１００の特徴量算出処理として図１６に示す処理が実行される。その他の処理は上記実施形態で説明した処理と同様であるので、説明は省略する。
【０１０７】
図１６に示すステップ４００では、特徴量算出部１２が、入力された原寸画像を分割したマクロブロック毎にＤＣＴ処理を実行し、高周波成分の合計値と低周波成分の合計値の比率を特徴量として算出する。そして、特徴量算出部１２は、算出したマクロブロック毎の特徴量をメモリ１８に記憶する。
【０１０８】
ステップ４０２では、特徴量算出部１２が、特徴量のヒストグラムを算出する。すなわち、図１７に示すような特徴量とのマクロブロック数との関係を算出する。
【０１０９】
ステップ４０４では、特徴量算出部１２が、原寸ＭＥを実行可能な性能限界個数Ｎを算出する。具体的には、次の（７）式を満たすような性能限界個数Ｎを算出する。
Ｔｆ＞Ｔｓ×（ＭＢｎ−Ｎ）＋Ｔｂ×Ｎ      ・・・（７）
【０１１０】
ここで、Ｔｆは１フレーム画像の目標処理時間、Ｔｓは１つのマクロブロックに対して縮小ＭＥを実行する場合の処理時間、ＭＢｎは１フレーム画像に含まれるマクロブロック数、Ｔｂは１つのマクロブロックに対して原寸ＭＥを実行する場合の処理時間である。なお、参照画像の種類（Ｐピクチャ、Ｂピクチャなど）に応じてＴｆ、Ｔｓ、Ｔｂ等の値を設定し、参照画像の種類に応じて異なる性能限界個数Ｎを算出してもよい。
【０１１１】
ステップ４０６では、特徴量算出部１２が、ステップ４０２で算出した特徴量のヒストグラム及びステップ４０４で算出した性能限界個数Ｎに基づいて閾値を設定する。具体的には、図１７に示すように、特徴量が大きい方から順にマクロブロック数を加算していき、合計の数が性能限界個数Ｎを越えない範囲で最大の数に対応する特徴量を閾値として設定する。
【０１１２】
これにより、原寸ＭＥが実行されるマクロブロックの数が性能限界個数Ｎ以下となるため、必要以上に原寸ＭＥが実行されて演算量が増加してしまうのを防ぐことができる。
【０１１３】
（第５実施形態）
次に開示の技術の第５実施形態について説明する。第４実施形態では、特徴量の判定に用いられる閾値を、原寸ＭＥを実行可能な性能限界個数Ｎに基づいて設定した場合について説明したが、第２、第３実施形態の場合、特徴量が閾値以上であっても原寸ＭＥが実行されないマクロブロックが存在する。そこで、第５実施形態では、実際の原寸ＭＥが実行されるマクロブロック数に基づいて閾値を設定する場合について説明する。なお、動きベクトル検出装置の構成は第２、第３実施形態で説明した動きベクトル検出装置の構成と同一であるので、構成の説明は省略する。
【０１１４】
第５実施形態では、図４のステップ１００の特徴量算出処理として図１８に示す処理が実行される。なお、図１６と同一の処理を行うステップについては同一の符号を付し、説明は省略する。
【０１１５】
図１８に示すステップ４００〜４０６では、図１６のステップ４００〜４０６と同一の処理を実行する。
【０１１６】
ステップ４０８では、特徴量算出部１２が、原寸ＭＥが実行されるマクロブロックの数を算出する。第２、第３実施形態で説明したように、原寸ＭＥが実行されるか縮小ＭＥが実行されるかは、折り返しノイズが発生する虞の有無、隣接マクロブロックのベクトル信頼度により決定される。また、第２実施形態の場合、図１１に示すように、ベクトル信頼度は、折り返しノイズが発生する虞の有無に応じて「０」又は「１」が設定される。従って、第２実施形態の場合、折り返しノイズが発生する虞の有無及び隣接マクロブロックのベクトル信頼度から原寸ＭＥが実行されるマクロブロックの数を算出することができる。
【０１１７】
また、第３実施形態の場合、図１４、図１５（Ｂ）に示すように、折り返しノイズが発生する虞が「有」のマクロブロックが連続する連続領域では、原寸ＭＥが実行されるマクロブロックからの距離に応じてベクトル信頼度が「０」になるまで徐々に減少する。また、折り返しノイズが発生する虞が「有」で且つ隣接マクロブロックのベクトル信頼度が「０」の場合に原寸ＭＥが実行されるマクロブロックであると判定することができる。このため、前記連続領域では、原寸ＭＥが実行されるマクロブロックからの距離に基づいて、原寸ＭＥが実行されるマクロブロックの数を算出することができる。
【０１１８】
ステップ４１０では、特徴量算出部１２が、閾値をデクリメントする。
【０１１９】
ステップ４１２では、特徴量算出部１２が、ステップ４０８で算出した原寸ＭＥが実行されるマクロブロックの数が性能限界個数Ｎを越えるか否かを判断する。そして、原寸ＭＥが実行されるマクロブロックの数が性能限界個数Ｎを越える場合はステップ４１４へ移行し、性能限界個数Ｎ以下の場合はステップ４１０へ戻って上記と同様の処理を繰り返す。
【０１２０】
ステップ４１４では、閾値をインクリメントして本ルーチンを終了する。
【０１２１】
このように、第５実施形態では、特徴量が閾値以上であっても原寸ＭＥが実行されないマクロブロックの数を除外して原寸ＭＥが実行されるマクロブロックの数を求めて閾値を設定するので、適切に閾値を設定することができる。
【０１２２】
なお、第４、第５実施形態では、図４のステップ１００の特徴量算出処理において閾値を設定する場合について説明した。すなわち、第４、第５実施形態では、フレーム画像の先頭のマクロブロックについて動きベクトル検出処理が実行される前に閾値を設定する場合について説明したが、閾値を設定するタイミングはこれに限られない。例えば、各マクロブロックについて動きベクトル検出処理が実行される毎に閾値を設定する処理を実行するようにしてもよい。
【０１２３】
具体的には、図５のステップ２２０で否定判定された後や図１０のステップ３２８で否定判定された後に、図１６のステップ４０４、４０６の処理や図１８のステップ４０４〜４１４の処理を実行するようにしてもよい。
【０１２４】
この場合、ステップ４０４では、今後の処理で原寸ＭＥを実行可能な性能限界個数Ｎｒを算出する。具体的には、次の（８）式を満たすような性能限界個数Ｎｒを算出する。
Ｔｆ−Ｔｃ＞Ｔｓ×（ＭＢｒ−Ｎ）＋Ｔｂ×Ｎｒ      ・・・（８）
【０１２５】
ここで、Ｔｃは、先頭から現在のマクロブロックの処理に要した時間、ＭＢｒは、残りのマクロブロックの数であり、その他のパラメータは上記（７）式と同様である。
【０１２６】
ステップ４０６以降は、第４、第５実施形態で説明した処理と同様の処理を実行する。
【０１２７】
このように、１つのマクロブロックの処理が終了する毎に閾値を設定することにより、画像によって原寸ＭＥや縮小ＭＥの処理時間にばらつきが生じた場合でも、一つのフレーム画像の処理が目標処理時間を越えてしまうのを防ぐことができる。
【０１２８】
なお、上記では図１９（Ａ）に示すように、原寸画像Ｇ１を（１／４）×（１／４）のサイズに縮小した縮小画像Ｇ２と原寸画像Ｇ１を用いて第２の動きベクトル検出処理を実行する場合について説明したが、これに限られるものではない。
【０１２９】
例えば、図１９（Ｂ）に示すように、原寸画像Ｇ１に代えて、縮小画像Ｇ２よりも縮小の度合いが小さい縮小画像、例えば原寸画像Ｇ１を（１／２）×（１／２）のサイズに縮小した縮小画像Ｇ３を用いて第２の動きベクトル検出処理を実行するようにしてもよい。
【０１３０】
また、上記では開示の技術に係る動きベクトル検出プログラムの一例である動きベクトル検出プログラム８０が記憶部７６に予め記憶（インストール）されている態様を説明したが、これに限定されるものではない。開示の技術に係る動きベクトル検出プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【０１３１】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１３２】
以上の実施形態に関し、更に以下の付記を開示する。
【０１３３】
（付記１）
動画像に含まれるフレーム画像を縮小した縮小画像を生成する縮小画像生成処理部と、
符号化対象の前記フレーム画像を分割したマクロブロック毎に、前記符号化対象の前記フレーム画像から前記縮小画像を生成した場合に発生するノイズに関する特徴量を算出する特徴量算出部と、
前記特徴量に応じて、前記符号化対象の前記フレーム画像に対応する原寸サイズの参照フレーム画像を縮小した第１の画像を参照画像として動きベクトルを検出する第１の動きベクトル検出処理、又は、前記原寸サイズの参照フレーム画像を縮小した前記縮小画像よりも縮小の度合いが小さい第２の画像を参照画像として動きベクトルを検出する第２の動きベクトル検出処理を実行する動きベクトル検出部と、
を含む動きベクトル検出装置。
【０１３４】
（付記２）
前記動きベクトル検出部は、前記ノイズが発生しない特徴量を有する前記マクロブロックについては、前記第１の動きベクトル検出処理を実行し、前記ノイズが発生する特徴量を有するマクロブロックについては、前記第２の動きベクトル検出処理を実行する
付記１記載の動きベクトル検出装置。
【０１３５】
（付記３）
前記動きベクトル検出部は、前記ノイズが発生しない特徴量を有する前記マクロブロックについては、前記第１の動きベクトル検出処理を実行し、前記ノイズが発生する特徴量を有するマクロブロックのうち、前記ノイズが発生する特徴量を有するマクロブロックが予め定めた処理方向に連続する連続領域が存在する場合は、前記連続領域の先頭のマクロブロックについては、前記第２の動きベクトル検出処理を実行し、前記連続領域の先頭のマクロブロック以外のマクロブロックであって前記先頭のマクロブロックから前記処理方向において予め定めた距離内のマクロブロックについては、前記第１の動きベクトル検出処理を実行する
付記１記載の動きベクトル検出装置。
【０１３６】
（付記４）
前記動きベクトル検出部は、
前記特徴量に応じて前記処理対象マクロブロックのベクトル信頼度を設定するベクトル信頼度設定部と、
前記特徴量に基づいて、前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択する選択部と、
処理対象の処理対象マクロブロックの画像と前記選択部により選択された前記参照画像に設定された探索範囲内のマクロブロックの画像との相関の度合いを表す画像相関値と、前記処理対象マクロブロックの動きベクトルと前記処理対象マクロブロックに隣接する隣接マクロブロックの動きベクトルとの相関の度合いを表すベクトル相関値と、前記ベクトル相関値の重みを調整する重み係数と、をパラメータとして含む評価値を算出する評価値算出部と、
前記隣接マクロブロックの前記ベクトル信頼度に応じて前記重み係数を設定する重み係数設定部と、
前記処理対象の前記マクロブロックの位置と、前記評価値が最小となる前記探索範囲内のマクロブロックの位置と、に基づいて、動きベクトルを演算する動きベクトル演算部と、
を備えた付記２記載の動きベクトル検出装置。
【０１３７】
（付記５）
前記動きベクトル検出部は、
前記特徴量に応じて前記処理対象マクロブロックのベクトル信頼度を設定するベクトル信頼度設定部と、
前記特徴量及び前記処理対象マクロブロックに隣接する隣接マクロブロックの前記ベクトル信頼度に基づいて、前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択する選択部と、
処理対象の処理対象マクロブロックの画像と前記選択部により選択された前記参照画像に設定された探索範囲内のマクロブロックの画像との相関の度合いを表す画像相関値と、前記処理対象マクロブロックの動きベクトルと前記隣接マクロブロックの動きベクトルとの相関の度合いを表すベクトル相関値と、前記ベクトル相関値の重みを調整する重み係数と、をパラメータとして含む評価値を算出する評価値算出部と、
前記隣接マクロブロックの前記ベクトル信頼度及び前記特徴量に応じて前記重み係数を設定する重み係数設定部と、
前記処理対象の前記マクロブロックの位置と、前記評価値が最小となる前記探索範囲内のマクロブロックの位置と、に基づいて、動きベクトルを演算する動きベクトル演算部と、
を備えた付記３記載の動きベクトル検出装置。
【０１３８】
（付記６）
前記ベクトル信頼度設定部は、前記連続領域の先頭のマクロブロックについては、予め定めた最大のベクトル信頼度を設定し、前記連続領域の先頭のマクロブロック以外のマクロブロックであって前記先頭のマクロブロックから前記処理方向において予め定めた距離内のマクロブロックについては、前記最大のベクトル信頼度から徐々に小さくなるように前記ベクトル信頼度を設定する
付記５記載の動きベクトル検出装置。
【０１３９】
（付記７）
前記特徴量算出部は、前記特徴量のヒストグラムを算出すると共に、前記第１の動きベクトル検出処理の処理時間、前記第２の動きベクトル検出処理の処理時間、前記フレーム画像に含まれる前記マクロブロックの数、及び前記フレーム画像の目標処理時間に基づいて、前記第２の動きベクトル検出処理が可能なマクロブロックの限界数を算出し、前記ヒストグラムと前記限界数とに基づいて、前記選択部が前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択する際の閾値を設定する
付記４〜６の何れかに記載の動きベクトル検出装置。
【０１４０】
（付記８）
前記特徴量算出部は、前記マクロブロックについて動きベクトルを検出する毎に、前記閾値を設定する
付記７記載の動きベクトル検出装置。
【０１４１】
（付記９）
動画像に含まれるフレーム画像を縮小した縮小画像を生成し、
符号化対象の前記フレーム画像を分割したマクロブロック毎に、前記符号化対象の前記フレーム画像から前記縮小画像を生成した場合に発生するノイズに関する特徴量を算出し、
前記特徴量に応じて、前記符号化対象の前記フレーム画像に対応する原寸サイズの参照フレーム画像を縮小した第１の画像を参照画像として動きベクトルを検出する第１の動きベクトル検出処理、又は、前記原寸サイズの参照フレーム画像を縮小した前記縮小画像よりも縮小の度合いが小さい第２の画像を参照画像として動きベクトルを検出する第２の動きベクトル検出処理を実行する
ことを含む動きベクトル検出方法。
【０１４２】
（付記１０）
前記ノイズが発生しない特徴量を有する前記マクロブロックについては、前記第１の動きベクトル検出処理を実行し、前記ノイズが発生する特徴量を有するマクロブロックについては、前記第２の動きベクトル検出処理を実行する
付記９記載の動きベクトル検出方法。
【０１４３】
（付記１１）
前記ノイズが発生しない特徴量を有する前記マクロブロックについては、前記第１の動きベクトル検出処理を実行し、前記ノイズが発生する特徴量を有するマクロブロックのうち、前記ノイズが発生する特徴量を有するマクロブロックが予め定めた処理方向に連続する連続領域が存在する場合は、前記連続領域の先頭のマクロブロックについては、前記第２の動きベクトル検出処理を実行し、前記連続領域の先頭のマクロブロック以外のマクロブロックであって前記先頭のマクロブロックから前記処理方向において予め定めた距離内のマクロブロックについては、前記第１の動きベクトル検出処理を実行する
付記９記載の動きベクトル検出方法。
【０１４４】
（付記１２）
前記特徴量に応じて前記処理対象マクロブロックのベクトル信頼度を設定し、
前記特徴量に基づいて、前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択し、
処理対象の処理対象マクロブロックの画像と選択された前記参照画像に設定された探索範囲内のマクロブロックの画像との相関の度合いを表す画像相関値と、前記処理対象マクロブロックの動きベクトルと前記処理対象マクロブロックに隣接する隣接マクロブロックの動きベクトルとの相関の度合いを表すベクトル相関値と、前記ベクトル相関値の重みを調整する重み係数と、をパラメータとして含む評価値を算出し、
前記隣接マクロブロックの前記ベクトル信頼度に応じて前記重み係数を設定し、
前記処理対象の前記マクロブロックの位置と、前記評価値が最小となる前記探索範囲内のマクロブロックの位置と、に基づいて、動きベクトルを演算する
付記１０記載の動きベクトル検出方法。
【０１４５】
（付記１３）
前記特徴量に応じて前記処理対象マクロブロックのベクトル信頼度を設定し、
前記特徴量及び前記処理対象マクロブロックに隣接する隣接マクロブロックの前記ベクトル信頼度に基づいて、前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択し、
処理対象の処理対象マクロブロックの画像と選択された前記参照画像に設定された探索範囲内のマクロブロックの画像との相関の度合いを表す画像相関値と、前記処理対象マクロブロックの動きベクトルと前記隣接マクロブロックの動きベクトルとの相関の度合いを表すベクトル相関値と、前記ベクトル相関値の重みを調整する重み係数と、をパラメータとして含む評価値を算出し、
前記隣接マクロブロックの前記ベクトル信頼度及び前記特徴量に応じて前記重み係数を設定し、
前記処理対象の前記マクロブロックの位置と、前記評価値が最小となる前記探索範囲内のマクロブロックの位置と、に基づいて、動きベクトルを演算する
を備えた付記１１記載の動きベクトル検出方法。
【０１４６】
（付記１４）
前記連続領域の先頭のマクロブロックについては、予め定めた最大のベクトル信頼度を設定し、前記連続領域の先頭のマクロブロック以外のマクロブロックであって前記先頭のマクロブロックから前記処理方向において予め定めた距離内のマクロブロックについては、前記最大のベクトル信頼度から徐々に小さくなるように前記ベクトル信頼度を設定する
付記１３記載の動きベクトル検出方法。
【０１４７】
（付記１５）
前記特徴量のヒストグラムを算出すると共に、前記第１の動きベクトル検出処理の処理時間、前記第２の動きベクトル検出処理の処理時間、前記フレーム画像に含まれる前記マクロブロックの数、及び前記フレーム画像の目標処理時間に基づいて、前記第２の動きベクトル検出処理が可能なマクロブロックの限界数を算出し、前記ヒストグラムと前記限界数とに基づいて、前記第１の画像及び前記第２の画像の何れを前記参照画像とするかを選択する際の閾値を設定する
付記１２〜１４の何れかに記載の動きベクトル検出方法。
【０１４８】
（付記１６）
前記マクロブロックについて動きベクトルを検出する毎に、前記閾値を設定する
付記１５記載の動きベクトル検出方法。
【０１４９】
（付記１７）
コンピュータに、
動画像に含まれるフレーム画像を縮小した縮小画像を生成し、
符号化対象の前記フレーム画像を分割したマクロブロック毎に、前記符号化対象の前記フレーム画像から前記縮小画像を生成した場合に発生するノイズに関する特徴量を算出し、
前記特徴量に応じて、前記符号化対象の前記フレーム画像に対応する原寸サイズの参照フレーム画像を縮小した第１の画像を参照画像として動きベクトルを検出する第１の動きベクトル検出処理、又は、前記原寸サイズの参照フレーム画像を縮小した前記縮小画像よりも縮小の度合いが小さい第２の画像を参照画像として動きベクトルを検出する第２の動きベクトル検出処理を実行する
ことを含む処理を実行させるための動きベクトル検出プログラム。
【符号の説明】
【０１５０】
１０、１０Ａ  動きベクトル検出装置
１２   特徴量算出部
１４   縮小画像生成処理部
１６   ベクトル検出部
１８   メモリ
２０Ａ、２０Ｂ       画像相関値演算部
３０   選択部
３２   コスト算出処理部
３４   ベクトル信頼度設定部
３８   動きベクトル演算部
４２   ベクトル相関値演算部
４４   ベクトルコスト重み係数設定部
７０   コンピュータ
【図１】
2014121051.tif 000004
【図２】
2014121051.tif 000005
【図３】
2014121051.tif 000006
【図４】
2014121051.tif 000007
【図５】
2014121051.tif 000008
【図６】
2014121051.tif 000009
【図７】
2014121051.tif 000010
【図８】
2014121051.tif 000011
【図９】
2014121051.tif 000012
【図１０】
2014121051.tif 000013
【図１１】
2014121051.tif 000014
【図１２】
2014121051.tif 000015
【図１３】
2014121051.tif 000016
【図１４】
2014121051.tif 000017
【図１５】
2014121051.tif 000018
【図１６】
2014121051.tif 000019
【図１７】
2014121051.tif 000020
【図１８】
2014121051.tif 000021
【図１９】
2014121051.tif 000022