(57)【要約】【課題】画像からグローバル動きベクトルを適切に抽出できるようにする。【解決手段】クラスタリング部４２は、所定のサイズのブロック単位で求められるローカル動きベクトルLMVと、遅延バッファ４４に格納されている複数のクラスタ毎の代表となる動きベクトルとの距離を求め、距離が最小となる動きベクトルの属するクラスタに、ローカル動きベクトルLMVを分類し、分類したクラスタの情報とローカル動きベクトルLMVとを出力する。平均値算出部４３−１乃至４３−５は、それぞれ自らのクラスタのローカル動きベクトルLMVを蓄積して、その平均となる動きベクトルを算出し、これをクラスタを代表する動きベクトルとして出力する。GMV決定部４５は、クラスタを代表する動きベクトルのうち、要素数の最も多い動きベクトルをグローバル動きベクトルGMVとして出力する。本技術は、画像処理装置に適用することができる。【選択図】図３
2012253482.tif 000002
【特許請求の範囲】
【請求項１】
入力画像のブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部によりクラスタリングされた前記クラスタ毎に、代表となる代表ローカル動きベクトルを設定し、前記所定数のクラスタ毎の代表ローカル動きベクトルから前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置。
【請求項２】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置。
【請求項３】
前記クラスタリング部は、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離を算出する距離算出部を含み、
前記距離算出部により算出された距離が最小となるクラスタに、前記ブロック単位のローカル動きベクトルをクラスタリングする
請求項２に記載の画像処理装置。
【請求項４】
前記代表算出部は、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値を代表ローカル動きベクトルとして算出する
請求項３に記載の画像処理装置。
【請求項５】
前記代表算出部は、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルのアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、代表ローカル動きベクトルとして算出する
請求項４に記載の画像処理装置。
【請求項６】
前記代表算出部により算出された、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルをバッファリングするバッファリング部を含み、
前記クラスタリング部は、前記バッファリング部によりバッファリングされている、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、またはアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、前記クラスタ毎に設定されるベクトルとして、前記ローカル動きベクトルをクラスタリングする
請求項５に記載の画像処理装置。
【請求項７】
前記クラスタリング部によりクラスタリングされた前記クラスタのうち、クラスタ間のベクトル空間内での位置が近いクラスタ同士については、前記クラスタ同士をマージし、前記クラスタ間のベクトル空間内での分散が大きいクラスタについては、複数のクラスタに分割するマージ分割部をさらに含む
請求項６に記載の画像処理装置。
【請求項８】
前記入力画像を低解像度の画像にダウンコンバートする第１のダウンコンバート部と、
前記参照画像を低解像度の画像にダウンコンバートする第２のダウンコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められたブロック単位の前記ローカル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第１のアップコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められた前記グローバル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第２のアップコンバート部と、
前記第１のアップコンバート部により適用されたブロック単位のローカル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和と、前記第２のアップコンバート部により適用されたブロック単位のグローバル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和との比較により、前記入力画像のブロックに対して、前記ローカル動きベクトル、または前記グローバル動きベクトルのいずれかを選択する選択手段とを含む
請求項７に記載の画像処理装置。
【請求項９】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む画像処理方法。
【請求項１０】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、
前記代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記グローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む処理を実行させるプログラム。
【請求項１１】
請求項１０に記載のコンピュータに読み取り可能なプログラムが記録された記録媒体。
【請求項１２】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置。
【請求項１３】
前記オブジェクト毎にクラスタリングされたローカル動きベクトルに基づいて、算出された前記オブジェクト動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部をさらに含む
請求項１２に記載の画像処理装置。
【請求項１４】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部における、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む画像処理方法。
【請求項１５】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記オブジェクト動きベクトル算出部における、前記クラスタリングステップの処理により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む処理を実行させるプログラム。
【請求項１６】
請求項１５に記載のコンピュータに読み取り可能なプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、画像内に複数の異なる動きをするオブジェクトが含まれていても正確に動きベクトルを検出できるようにした画像処理装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
動画像の圧縮は、各フレームよりマクロブロック単位で動きベクトルを検出し、検出した動きベクトルを用いて、圧縮するべきフレーム数を減らすことにより実現されている。このため、動画像より動きベクトルを検出する技術は動画像の圧縮処理においては、必須技術となっている。
【０００３】
動画像から動きベクトルを検出する技術としては、例えば、マクロブロックの動きベクトルをグループ化して、動く物体を含まないグループに含まれる領域の動きベクトルを画面全体の動きベクトルとして検出するというものが提案されている（特許文献１参照）。
【０００４】
また、動きベクトルのヒストグラムを用いて画面全体の動きベクトルを検出し、集中した動きがない場合、画面全体の動きベクトルを使わないようにするというものも提案されている（特許文献２，３参照）。
【０００５】
さらに、主要物体の特徴点領域を用いて画面全体の動きを検出し、これを動きベクトルとして使用するものが提案されている（特許文献４参照）。
【０００６】
また、特徴点を検出し、粗密探索法やk-means法などにより特徴点の動きを求めて、動きベクトルとするものが提案されている（特許文献５参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２３５７６９号公報
【特許文献２】特開２００８−２３６０９８号公報
【特許文献３】特開２０１０−２１３２８７号公報
【特許文献４】特開平１０−２１０４７３号公報
【特許文献５】特開２０１０−１１８８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した手法では、並進以外の動きに対応することができない。また、シーンチェンジや画面全体の動きベクトルの信頼性が低い場合などに、信頼性の低い動きベクトルを除外する機構がないため、誤った動きベクトルを検出することで、符号化処理または復号処理により画像にエラーが発生する恐れがある。
【０００９】
また、上述した手法では、ノイズなどの影響で１フレームのみ集中した動きがない場合に前フレームのベクトルを用いることができず、誤った動きベクトルを検出することで、符号化処理または復号処理により画像にエラーが発生する恐れがある。
【００１０】
さらに、画像から特徴点が求められない場合、画面全体の動きを検出することができないため、動きベクトルそのものが求められず、符号化処理そのものが実施できない恐れがあった。
【００１１】
本技術はこのような状況に鑑みてなされたものであり、特に、画像から動きベクトルを適切に検出できるようにするものである。
【課題を解決するための手段】
【００１２】
本技術の第１の側面の画像処理装置は、入力画像のブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、前記クラスタリング部によりクラスタリングされた前記所定数のクラスタ毎に、代表となる代表ローカル動きベクトルを設定し、前記クラスタ毎の代表ローカル動きベクトルから前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部とを含む。
【００１３】
本技術の第２の側面の画像処理装置は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部とを含む。
【００１４】
前記クラスタリング部には、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離を算出する距離算出部を含ませるようにすることができ、前記距離算出部により算出された距離が最小となるクラスタに、前記ブロック単位のローカル動きベクトルをクラスタリングさせるようにすることができる。
【００１５】
前記代表算出部には、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値を代表ローカル動きベクトルとして算出させるようにすることができる。
【００１６】
前記代表算出部には、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルのアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、代表ローカル動きベクトルとして算出させるようにすることができる。
【００１７】
前記代表算出部により算出された、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルをバッファリングするバッファリング部を含ませるようにすることができ、前記クラスタリング部には、前記バッファリング部によりバッファリングされている、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、前記クラスタ毎に設定されるベクトルとして、前記ローカル動きベクトルをクラスタリングさせるようにすることができる。
【００１８】
前記クラスタリング部によりクラスタリングされた前記クラスタのうち、クラスタ間のベクトル空間内での位置が近いクラスタ同士については、前記クラスタ同士をマージし、前記クラスタ間のベクトル空間内での分散が大きいクラスタについては、複数のクラスタに分割するマージ分割部をさらに含ませるようにすることができる。
【００１９】
前記入力画像を低解像度の画像にダウンコンバートする第１のダウンコンバート部と、前記参照画像を低解像度の画像にダウンコンバートする第２のダウンコンバート部と、前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められたブロック単位の前記ローカル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第１のアップコンバート部と、前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められた前記グローバル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第２のアップコンバート部と、前記第１のアップコンバート部により適用されたブロック単位のローカル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和と、前記第２のアップコンバート部により適用されたブロック単位のグローバル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和との比較により、前記入力画像のブロックに対して、前記ローカル動きベクトル、または前記グローバル動きベクトルのいずれかを選択する選択手段とを含ませるようにすることができる。
【００２０】
本技術の第２の側面の画像処理方法は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップとを含む。
【００２１】
本技術の第２の側面のプログラムは、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部とを含む画像処理装置を制御するコンピュータに、前記ローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、前記代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、前記グローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップとを含む処理を実行させる。
【００２２】
本技術の記録媒体に記録されたプログラムは、請求項１０に記載のコンピュータに読み取り可能なプログラムである。
【００２３】
本技術の第３の側面の画像処理装置は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部とを含む。
【００２４】
前記オブジェクト毎にクラスタリングされたローカル動きベクトルに基づいて、算出された前記オブジェクト動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部をさらに含ませるようにすることができる。
【００２５】
本技術の第３の側面の画像処理方法は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部における、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップとを含む。
【００２６】
本技術の第３の側面のプログラムは、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部とを含む画像処理装置を制御するコンピュータに、前記ローカル動きベクトル検出部における、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、前記オブジェクト動きベクトル算出部における、前記クラスタリングステップの処理により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップとを含む処理を実行させる。
【００２７】
本技術の記録媒体に記録されたプログラムは、請求項１５に記載のコンピュータに読み取り可能なプログラムである。
【００２８】
本技術の第１の側面においては、入力画像のブロック単位のローカル動きベクトルが所定数のクラスタにクラスタリングされ、クラスタリングされた前記クラスタ毎に、代表となる代表ローカル動きベクトルが設定され、前記所定数のクラスタ毎の代表ローカル動きベクトルから前記入力画像のグローバル動きベクトルが選択される。
【００２９】
本技術の第２の側面においては、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルが検出され、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルが所定数のクラスタにクラスタリングされ、分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルが算出され、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルが選択される。
【００３０】
本技術の第３の側面においては、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルが検出され、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルが所定数のオブジェクト毎にクラスタリングされ、分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルが算出される。
【００３１】
本技術の画像処理装置は、独立した装置であっても良いし、画像処理を行うブロックであっても良い。
【発明の効果】
【００３２】
本技術によれば、画像より適切に動きベクトルを検出することが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本技術である画像処理装置を適用した画像符号化装置の第１の実施の形態の構成例を示すブロック図である。
【図２】図１の動きベクトル検出部の構成例を示す図である。
【図３】図１のGMV検出部の構成例を示す図である。
【図４】図１のクラスタリング部の構成例を示す図である。
【図５】図１の平均値算出部の構成例を示す図である。
【図６】図１の画像符号化装置による符号化処理を説明するフローチャートである。
【図７】図１のGMV検出部によるGMV検出処理を説明するフローチャートである。
【図８】クラスタリング部の処理を説明する図である。
【図９】平均値算出部の処理を説明する図である。
【図１０】GMV決定部の処理を説明する図である。
【図１１】マージ分割部の処理を説明する図である。
【図１２】画像符号化装置の第２の実施の形態におけるGMV検出部の構成例を示すブロック図である。
【図１３】図１２のGMV検出部によるGMV検出処理を説明するフローチャートである。
【図１４】フォールバックモードを説明する図である。
【図１５】フォールバックモードを説明する図である。
【図１６】撮像画像が回転する際のグローバル動きベクトルの求め方を説明する図である。
【図１７】画像符号化装置の第３の実施の形態におけるGMV検出部の構成例を示すブロック図である。
【図１８】図１７のGMV検出部によるGMV検出処理を説明するフローチャートである。
【図１９】図１７のGMV検出部のアフィン変換によるGMV検出処理を説明する図である。
【図２０】図１７のGMV検出部のアフィン変換によるGMV検出処理を説明する図である。
【図２１】図１７のGMV検出部のアフィン変換によるGMV検出処理において、動きベクトルの大きさに基づいた重みを付する場合の例を説明する図である。
【図２２】図１７のGMV検出部の射影変換によるGMV検出処理を説明する図である。
【図２３】画像符号化装置の第４の実施の形態の構成例を示すブロック図である。
【図２４】図２３の画像符号化装置による符号化処理を説明するフローチャートである。
【図２５】複数のオブジェクトのそれぞれについて動きベクトルが異なる例を説明する図である。
【図２６】画像符号化装置の第５の実施の形態の構成例を示すブロック図である。
【図２７】図２６のオブジェクトMV検出部の構成例を示す図である。
【図２８】図２６の画像符号化装置による符号化処理を説明するフローチャートである。
【図２９】図２７のオブジェクトMV検出部によるオブジェクトMV検出処理を説明するフローチャートである。
【図３０】画像符号化装置の第６の実施の形態の構成例を示すブロック図である。
【図３１】図３０の画像符号化装置による符号化処理を説明するフローチャートである。
【図３２】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための最良の形態】
【００３４】
以下、本技術を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行なう。
１．第１の実施の形態
２．第２の実施の形態（フォールバックモードありの画像符号化装置）
３．第３の実施の形態（アフィンまたは射影変換対応の画像符号化装置）
４．第４の実施の形態（ゼロベクトルを選択肢に含む選択部を備える画像符号化装置）
５．第５の実施の形態（ゼロベクトルを選択肢に含む選択部を備え、オブジェクト毎に動きベクトルを求める画像符号化装置）
６．第６の実施の形態（オブジェクト毎の動きベクトルにゼロベクトルを選択肢に含む画像符号化装置）
【００３５】
＜１．第１の実施の形態＞
［画像符号化装置］
図１は、本技術である画像処理装置を適用した画像符号化装置のハードウェアの第１の実施の形態の構成例を示している。画像符号化装置１は、動画像の処理対象画像（Cur（Current）画像）、および処理対象画像に対する参照画像（Ref（Reference）画像）の供給を順次受ける。そして、画像符号化装置１は、その処理対象画像、および参照画像を用いて、マクロブロック単位で動きベクトルを求め、求めたマクロブロック単位の動きベクトルを用いて動画像を符号化する。
【００３６】
より詳細には、画像符号化装置１は、動きベクトル検出部１１、および符号化部１２を備えている。動きベクトル検出部１１は、処理対象画像、および参照画像を用いて、処理対象画像よりマクロブロック単位で動きベクトルを検出し、符号化部１２に供給する。
【００３７】
符号化部１２は、動きベクトル検出部１１より供給されてくるマクロブロック単位の動きベクトルと、処理対象画像、および参照画像に基づいて、処理対象画像を符号化し、ビットストリームとして出力する。
【００３８】
［動きベクトル検出部］
次に、図２を参照して、動きベクトル検出部１１の構成例について説明する。
【００３９】
動きベクトル検出部１１は、ダウンコンバート部２１−１，２１−２、ブロックマッチング部２２、GMV（Global Motion Vector）検出部２３、アップコンバート部２４−１，２４−２、および選択部２５を備えている。ダウンコンバート部２１−１，２１−２は、それぞれ、処理対象画像、および参照画像をそれぞれ同様に低解像度化してブロックマッチング部２２に供給する。尚、ダウンコンバート部２１−１，２１−２は、それぞれを区別する必要がない場合、単に、ダウンコンバート部２１と称するものとし、その他の構成についても同様に称するものとする。また、ダウンコンバート部２１における低解像度化の手法としては、画素数を行および列単位で間引くようにしてもよいし、水平方向および垂直方向に数画素単位で間引くようにしてもよいし、さらには、LPF(ローパスフィルタ)を適用後に間引くようにしてもよい。
【００４０】
ブロックマッチング部２２は、処理対象画像および参照画像をそれぞれｍ画素×ｍ画素毎のマクロブロック単位で分割し、処理対象画像における各マクロブロックを、参照画像における各マクロブロックと比較して一致するブロックを検索する。そして、ブロックマッチング部２２は、処理対象画像におけるブロックの位置と、検索された参照画像におけるブロックの位置との関係から導き出されるベクトルを、処理対象画像におけるそのマクロブロックの動きベクトルとして求める。ブロックマッチング部２２は、処理対象画像における全てのマクロブロックに対して同動きベクトルを求め、これをマクロブロック単位のローカル動きベクトル（LMV：Local Motion Vector）としてGMV検出部２３、およびアップコンバート部２４−１に出力する。
【００４１】
また、ブロックマッチング部２２は、SAD（Sum of Absolute Difference：差分絶対値和）算出部２２ａ、シーンチェンジ検出部２２ｂ、およびDR（Dynamic Range）検出部２２ｃを備えている。SAD算出部２２ａは、処理対象画像、および参照画像におけるそれぞれに対応するマクロブロックにおける画素間の差分絶対値和SADを算出する。シーンチェンジ検出部２２ｂは、処理対象画像、および参照画像におけるそれぞれの画素間の差分絶対値和からシーンが切り替わったか否かを検出し、シーンチェンジフラグSCFとして出力する。DR検出部２２ｃは、各ブロックにおける画素の画素値におけるダイナミックレンジDR、すなわち、最小値および最大値の差分絶対値を検出する。ブロックマッチング部２２は、LMV、DR、SAD、およびSCFの情報を各ブロックの座標と、処理対象画像のフレーム番号と共に出力する。尚、以降において、グローバル動きベクトル、ローカル動きベクトル、差分絶対値和、シーンチェンジフラグ、およびダイナミックレンジは、単に、GMV、LMV、SAD、SCF、およびDRとも称するものとする。また、マクロブロックについては、単にブロックとも称するものとし、例えば、ブロック単位と称した場合、マクロブロック単位を意味するものとする。
【００４２】
GMV検出部２３は、ブロックマッチング部２２より供給されてくるブロック単位で求められるLMVに基づいて、処理対象画像全体におけるブロック単位の動きベクトルであるGMVを検出して、アップコンバート部２４−２に供給する。尚、GMV検出部２３については、図３を参照して、詳細な構成について後述する。
【００４３】
アップコンバート部２４−１，２４−２は、それぞれブロック単位で求められたLMVおよびGMVをダウンコンバート部２１−１，２１−２に対応する解像度にアップコンバートした情報に変換して選択部２５に供給する。
【００４４】
選択部２５は、供給されてくるLMVとしてのブロック単位の動きベクトルと、GMVとしてのブロック単位の動きベクトルとを、それぞれにより求められるSATD（Sum of Absolute Transformed Difference：差分絶対値和）、および符号化におけるオーバヘッド部における情報とに基づいて比較して選択し、ブロック単位の動きベクトルとして出力する。ここで、SATDとは、例えば、処理対象画像を動きベクトルに基づいて変換させたブロック単位の画像と、対応する参照画像におけるブロック単位のとの画素間の画素値の予測誤差をアダマール変換し、その絶対値和を算出したものである。
【００４５】
［GMV検出部］
次に、図３を参照して、GMV検出部２３の構成例について説明する。
【００４６】
GMV検出部２３は、ブロック除外判定部４１、クラスタリング部４２、平均値算出部４３−１乃至４３−５、遅延バッファ４４、GMV決定部４５、およびマージ分割部４６を備えている。
【００４７】
ブロック除外判定部４１は、ブロックマッチング部２２よりLMVと共に供給されてくるブロック単位でのDR、SAD、およびブロックの座標の情報に基づいて、LMVとして求める必要のないブロックであるか否かを判定する。より詳細には、ブロック除外判定部４１は、DRが所定のレベルよりも小さく、そのブロックが平坦であるとみなされた場合、LMVを正確に求めることができないブロックであるので、LMVとして求める必要のない除外ブロックであるものとみなす。また、ブロック除外判定部４１は、SADが大きく求められた動きベクトルに基づいて対応するブロックと、参照画像のブロックとの画素間の差分絶対値和が所定の閾値よりも大きく、動きベクトルが正しくないとみなされる場合、除外ブロックであるものとみなす。さらに、ブロック除外判定部４１は、ブロックの座標からフレーム画像の端部付近のブロックである場合、正しく求められない可能性が高いため、除外ブロックであるものとみなす。
【００４８】
従って、ブロック除外判定部４１は、DRが所定のレベルよりも小さい、SADが所定値よりも大きい、または、ブロックの座標がフレーム画像の端部付近であるとき、動きベクトルを求めないブロック、すなわち、除外ブロックとみなし、対応するフラグを出力する。また、ブロック除外判定部４１は、それ以外のブロックについて、除外ブロックではない、すなわち、動きベクトルを求めるべきブロックであることを示すフラグを出力する。尚、ブロック除外判定部４１は、ブロック単位で平坦であるか否かを判定するにあたっては、上述したようにDRの値を用いるようにしてもよいが、平坦であるか否かが判断できればDR以外のパラメータを用いるようにしてもよく、例えば、分散値を用いるようにしてもよいし、DRおよび分散値を併用して判定するようにしてもよい。
【００４９】
クラスタリング部４２は、ブロック除外判定部４１より除外ブロックではないことを示すブロックのLMVと、遅延バッファ４４にバッファリングされてくる所定数のクラスタ毎の代表ベクトルとの距離を算出する。そして、クラスタリング部４２は、求めた距離の情報に基づいて、最も近いベクトルの属するクラスタに動きベクトルをクラスタリング（分類）し、LMVと共に決定したクラスタの情報を平均値算出部４３−１乃至４３−５、並びに、マージ分割部４６に供給する。尚、クラスタリング部４２の構成例については、図４を参照して詳細を後述する。
【００５０】
平均値算出部４３−１乃至４３−５は、それぞれクラスタを示す情報およびLMVを取得すると共に、自らの属するクラスタに対応するLMVのみを記憶する。さらに、平均値算出部４３−１乃至４３−５は、自らのクラスタに属するLMVの平均値を各クラスタの代表ベクトルとして算出し、LMVの要素数の情報を付してGMV決定部４５、および遅延バッファ４４に供給する。尚、平均値算出部４３の構成については、図５を参照して、詳細を後述する。
【００５１】
遅延バッファ４４は、平均値算出部４３より供給されてくるクラスタ毎の平均値からなる代表ベクトルを一旦バッファリングすると共に、次のタイミングにおいて、各クラスタの代表ベクトルとしてクラスタリング部４２に供給する。
【００５２】
GMV決定部４５は、平均値算出部４３−１乃至４３−５よりそれぞれ供給されてくる、各クラスタの平均値、すなわち、代表ベクトルの情報と共に、平均値の算出に使用されたLMVのクラスタ毎の要素数に基づいて、GMVを決定する。そして、GMV決定部４５は、決定したクラスタの代表ベクトルをGMVとして出力する。
【００５３】
マージ分割部４６は、各クラスタ毎のLMVの分散、または共分散などに基づいて、クラスタの要素としてのLMVの分布から複数のクラスタをマージ（結合）したり、または、１のクラスタを複数のクラスタに分割する。マージ分割部４６は、マージ、または分割したクラスタの情報に基づいて、遅延バッファ４４にバッファリングされている各クラスタの代表ベクトルを変更する。すなわち、マージ分割部４６は、分割、またはマージにより発生した新たなクラスタに属するLMVに基づいて平均値を求めて、それぞれのクラスタの代表ベクトルを求めて遅延バッファ４４にバッファリングさせる。尚、クラスタの分割やマージは、必須処理ではないので、マージ分割部４６については、処理負荷を低減し、処理を高速化する必要がある場合、省略する構成とするようにしてもよい。また、マージのみ、または、分割のみを行う構成とするようにしてもよい。
【００５４】
［クラスタリング部］
次に、図４を参照して、クラスタリング部４２の構成例について説明する。クラスタリング部４２は、距離算出部５１−１乃至５１−５、およびクラスタ決定部５２を備えている。距離算出部５１−１乃至５１−５は、それぞれ第１クラスタ乃至第５クラスタの代表値となるベクトルと、供給されてくるLMVとの距離を求めて、クラスタ決定部５２に供給する。
【００５５】
クラスタ決定部５２は、距離算出部５１−１乃至５１−５より供給されてくるLMVと、遅延バッファ４４より供給されてくる第１クラスタ乃至第５クラスタのそれぞれの代表ベクトルとの距離に基づいて、距離が最小となるクラスタにLMVを決定する。そして、クラスタ決定部５２は、決定したクラスタの情報を平均値算出部４３−１乃至４３−５に供給する。
【００５６】
［平均値算出部］
次に、図５を参照して、平均値算出部４３の構成例について説明する。平均値算出部４３は、加算部６１、および除算部６２を備えている。
【００５７】
加算部６１は、供給されてくるLMVのうち、自らのクラスタに分類されているLMVを累積的に加算し、加算結果LMV_sumを除算部６２に供給する。このとき、累積しているLMVの数（クラスタに属するLMVの要素数）の情報も合わせて除算部６２に供給する。除算部６２は、加算結果LMV_sumをLMVの要素数で除することによりクラスタの平均値となる動きベクトルをクラスタにおける代表ベクトル、換言すれば、後述するGMVの候補となる動きベクトルとして求める。そして、除算部６２は、算出した代表ベクトルと、そのクラスタの要素数の情報とをGMV決定部４５、および遅延バッファ４４に供給する。
【００５８】
［符号化処理］
次に、図６のフローチャートを参照して、図１の画像符号化装置１による符号化処理について説明する。
【００５９】
ステップＳ１１において、処理対象となるフレーム番号の画像、およびその参照画像が供給されると、動きベクトル検出部１１のダウンコンバート部２１−１，２１−２は、それぞれの画像を低解像度の画像にダウンコンバートする。尚、処理対象画像に対する参照画像については、ここでは、Ｐ画像（Ｐピクチャ：Predictive Picture）であるものとする。
【００６０】
ステップＳ１２において、ブロックマッチング部２２は、ブロックマッチング処理を実行して、処理対象画像について、マクロブロック単位でLMVを検出し、GMV検出部２３、およびアップコンバート部２４−１に供給する。より詳細には、ブロックマッチング部２２は、処理対象画像を、例えば、x画素×x画素などのマクロブロック単位で分割して順次抽出し、参照画像内のマクロブロックと総当りで照合し、最も類似しており一致しているとみなせるマクロブロックを、その位置と共に求める。そして、ブロックマッチング部２２は、参照画像内のマクロブロックの位置と、求められた参照画像内で最も類似しており、一致しているとみなせるマクロブロックの位置とから処理対象画像におけるマクロブロック単位の動きベクトルを求める。ここで求められたマクロブロック単位の動きベクトルがLMVである。ブロックマッチング部２２は、このような処理を全マクロブロックに対して実行して、各マクロブロックのLMVを検出して、GMV検出部２３、およびアップコンバート部２４−１に供給する。
【００６１】
この際、ブロックマッチング部２２は、SAD算出部２２ａを制御し、処理対象画像の各マクロブロックと、一致した参照画像のマクロブロックとのそれぞれの画素間の画素値の差分絶対値和SADを算出させる。また、ブロックマッチング部２２は、シーンチェンジ検出部２２ｂを制御して、処理対象画像と参照画像との間にシーンチェンジがあるか否かを検出させ、シーンチェンジフラグを生成させる。すなわち、通常、シーンチェンジが発生していれば、画像全体における画素間差分絶対値和は大きく変化するので、シーンチェンジ検出部２２ｂは、画像全体の画素間差分絶対値和と所定の閾値との比較により、所定の閾値よりも高いとき、シーンチェンジが発生したことを示すフラグからなるSCFを生成する。また、それ以外のとき、シーンチェンジ検出部２２ｂは、シーンチェンジが発生していないことを示すSCFを生成する。尚、シーンチェンジフラグSFCについては、撮像装置側から供給される構成とするようにしてもよい。さらに、ブロックマッチング部２２は、DR検出部２２ｃを制御して、処理対象画像の各マクロブロックにおける画素の画素値のダイナミックレンジDRを検出させる。そして、ブロックマッチング部２２は、これらの差分絶対値和SAD、シーンチェンジフラグSCF、およびダイナミックレンジDRを、ローカル動きベクトルLMVに対応付けてGMV検出部２３、およびアップコンバート部２４−１に出力する。
【００６２】
ステップＳ１３において、GMV検出部２３は、GMV検出処理を実行して、ブロックマッチング部２２より供給されてくるLMVに基づいて、GMVを求めてアップコンバート部２４−２に供給する。尚、GMV検出処理については、図７のフローチャートを参照して、詳細を後述する。
【００６３】
ステップＳ１４において、アップコンバート部２４−１，２４−２は、LMV、およびGMVの情報を、入力された処理対象画像、および参照画像の解像度に高解像度化した情報にアップコンバートして選択部２５に供給する。
【００６４】
ステップＳ１５において、選択部２５は、入力された処理対象画像の解像度に対応する各マクロブロック毎のLMV、およびGMVを用いた際のSATDおよびオーバヘッド部の情報をそれぞれ求め、LMV、およびGMVのうち、いずれも最小となるものをマクロブロック毎の動きベクトルに選択して符号化部１２に出力する。
【００６５】
より詳細には、選択部２５は、マクロブロック毎にLMV、およびGMVのそれぞれを用いて、処理対象画像の各マクロブロックを移動させて画像を生成し、参照画像との各画素の差分絶対値和SATDを求めることにより、差分絶対値和SATDを求める。また、選択部２５は、LMV、およびGMVのそれぞれを用いて、オーバヘッド部の情報を構成する。そして、選択部２５は、LMV、およびGMVのそれぞれのSATD、およびオーバヘッド部の情報が最小となる動きベクトルを、処理対象画像におけるマクロブロック単位の動きベクトルとして出力する。
【００６６】
ステップＳ１６において、符号化部１２は、処理対照画像、および参照画像と共に、ブロック単位の動きベクトルを利用して、処理対象画像を符号化する。
【００６７】
以上の処理により、処理対象画像を符号化する。尚、以上においては、ダウンコンバート部２１−１，２１−２、およびアップコンバート部２４−１，２４−２によりLMV、およびGMVを求める際に低解像度化した画像を用いる例について説明してきた。しかしながら、この処理は、処理負荷を軽減させることで、全体として処理速度を向上させるためのものであり、ハードウェアの処理能力に余裕がある限り必ずしも必要な処理ではない。従って、ダウンコンバート部２１−１，２１−２、およびアップコンバート部２４−１，２４−２は上述の処理を実現する上で、必須となる構成ではない。
【００６８】
［GMV検出処理］
次に、図７のフローチャートを参照して、GMV検出処理について説明する。
【００６９】
ステップＳ３１において、ブロック除外判定部４１は、処理対象とする画像のうち、全てのブロックについて処理がなされたか否かを判定する。ステップＳ３１において、例えば、未処理のブロックが存在する場合、処理は、ステップＳ３２に進む。
【００７０】
ステップＳ３２において、ブロック除外判定部４１は、未処理のブロックを処理対象ブロックに設定する。
【００７１】
ステップＳ３３において、ブロック除外判定部４１は、処理対象ブロックが除外対象のマクロブロックであるか否かを判定する。より詳細には、ブロック除外判定部４１は、処理対象ブロックのマクロブロック単位の差分絶対値和SADが所定の閾値よりも大きい、ダイナミックレンジDRが所定の閾値よりも小さい、または、処理対象ブロックの画像内における位置が処理対象画像の端部近傍である場合、除外対象ブロックであるとみなす。すなわち、差分絶対値和SADが所定の閾値よりも大きいということは、動きベクトルの始点のブロックと終点のブロックとの変化が大きいと考えられるため動きベクトルとしては信頼性が低いと考えられるので除外対象ブロックであるとみなされる。また、ダイナミックレンジDRが所定の閾値よりも小さいということは、処理対象画像における処理対象ブロックの画像が平坦であり、ブロックマッチングによる検索には不向きであるので、除外対象ブロックであるものとみなされる。さらに、処理対象ブロックの画像内における位置が処理対象画像における端部近傍である場合、動きベクトルの始点となるブロック、または終端となるブロックが、フレーム外であるようなものである可能性があるため、ブロックマッチングには適していないため、除外対象ブロックであるものとみなされる。
【００７２】
ステップＳ３３において、例えば、処理対象ブロックが、除外対象となるブロックである場合、処理は、ステップＳ３４に進む。
【００７３】
ステップＳ３４において、ブロック除外判定部４１は、処理対象ブロックが除外対象ではないことを示す除外対象フラグをクラスタリング部４２に供給する。クラスタリング部４２は、処理対象ブロックのLMVをクラスタに分類し、クラスタの情報を平均値算出部４３−１乃至４３−５およびマージ分割部４６に供給する。より詳細には、クラスタリング部４２の距離算出部５１−１乃至５１−５は、例えば、図８で示されるように、遅延バッファ４４より供給されてくる５個の黒丸で示される各クラスタ毎の代表ベクトルと、白丸で示される処理対象ブロックのLMVとの距離を、例えば、ユークリッド距離や差分絶対和を用いて計算し、計算した距離の情報をクラスタ決定部５２に供給する。そして、クラスタ決定部５２は、処理対象ブロックのLMVを、各距離算出部５１−１乃至５１−５により計算された距離のうち、最小距離となる代表ベクトルを持つクラスタに分類する。すなわち、図８においては、楕円で囲まれるように、白丸で示される処理対象ブロックのLMVは、距離が最小となる黒丸の代表ベクトルで代表されるクラスタに分類される。尚、最初の処理においては、遅延バッファ４４には、各クラスタの代表ベクトルが存在しないため、クラスタリング部４２は、デフォルトで設定されるクラスタ毎の代表ベクトルを用いて、処理対象ブロックの動きベクトルをクラスタに分類する。
【００７４】
一方、ステップＳ３３において、除外対象ブロックであるとみなされた場合、ブロック除外判定部４１は、処理対象ブロックが除外対象ブロックであることを示すフラグをクラスタリング部４２に供給する。この際、クラスタリング部４２は、処理対象ブロックのLMVに対するクラスタを分類せず、例えば、−１などの除外対象ブロックであることを示す値をクラスタに設定して、平均値算出部４３−１乃至４３−５、およびマージン分割部４６に供給する。
【００７５】
全てのマクロブロックについて処理が終了するまで、ステップＳ３１乃至Ｓ３５の処理が繰り返される。すなわち、全てのマクロブロックは、除外対象ブロックであるか否かが判定されて、除外対象ブロックとはならない全てのマクロブロックが、所定のクラスタのいずれかに分類される処理が繰り返されると、ステップＳ３１において、全てのブロックについて処理がなされたものとみなされて、処理は、ステップＳ３６に進む。
【００７６】
ステップＳ３６において、平均値算出部４３−１乃至４３−５は、それぞれのクラスタに分類されてきたLMVの平均値を算出して、GMV決定部４５に供給する。より詳細には、加算部６１は、供給されてくるLMVのうち、自らのクラスタに分類されているLMVを累積的に加算し、累積しているLMVの要素数の情報と共に、加算結果LMV_sumを除算部６２に供給する。さらに、除算部６２は、加算結果LMV_sumをLMVの要素数で除することによりクラスタの平均値となる動きベクトルをクラスタにおける代表ベクトルとして求める。そして、除算部６２は、各クラスタのLMVの平均値として求めた代表ベクトルと、そのクラスタに分類されたLMVの数である要素数の情報をGMV決定部４５、および遅延バッファ４４に供給する。すなわち、例えば、図９の黒丸で示されるLMVのうち、楕円で囲まれるクラスタ毎に、白丸で示される平均値が代表ベクトルとして求められる。
【００７７】
ステップＳ３７において、GMV決定部４５は、クラスタ毎に供給されてくる各クラスタの平均値となる代表ベクトルと、そのクラスタの要素数の情報を取得し、クラスタの要素数が最も多いクラスタの平均値となる代表ベクトルをGMVとして出力する。例えば、図１０で示されるように、ボールを蹴る人物からなるオブジェクトＢ１、ボールからなるオブジェクトＢ２、帽子を被った人物からなるオブジェクトＢ３、および背景からなるオブジェクトＢ４のそれぞれを含む処理対象画像である場合について考える。図１０の処理対象画像の場合、以上の処理により、オブジェクトＢ１乃至Ｂ４のそれぞれに対応するクラスタにLMVが分類されて、それぞれのクラスタの代表ベクトルが、オブジェクトＢ１乃至Ｂ４に対応する動きベクトルＶ１乃至Ｖ４として求められ、これがGMV決定部４５に供給される。さらに、GMV決定部４５は、各クラスタの代表ベクトルとして求められるオブジェクト毎の動きベクトルＶ１乃至Ｖ４のうち、その要素数の多い動きベクトルをGMVとして決定する。すなわち、GMV決定部４５は、画像内における要素数の多い、すなわち、多くのマクロブロックを含む表面積が広いオブジェクトに対応付けて求められるLMVの平均値である代表ベクトルをGMVとして決定して出力する。
【００７８】
ステップＳ３８において、遅延バッファ４４は、平均値算出部４３−１乃至４３−５より供給されてきた各クラスタのLMVの平均値を、各クラスタの代表ベクトルとして遅延させてバッファリングさせる。すなわち、各クラスタの代表ベクトルは、直前のフレーム画像でクラスタリングされた各クラスタのLMVの平均値とされる。
【００７９】
ステップＳ３９において、マージ分割部４６は、クラスタリング部４２からの各クラスタのLMVの分布から得られる分散、または共分散に基づいて、クラスタをマージする必要があるか否かを判定する。すなわち、例えば、図１１で示されるように、実線で示されるクラスタＣ１乃至Ｃ５に分類される場合、クラスタＣ４，Ｃ５については、分散が小さく、１つのクラスタとみなす必要があるとき、マージが必要であると判定される。ステップＳ３９において、このように複数のクラスタをマージする必要があると判定された場合、処理は、ステップＳ４０に進む。
【００８０】
ステップＳ４０において、マージ分割部４６は、マージが必要と認められた複数のクラスタを１のクラスタにマージする。すなわち、図１１の場合、実線で示されるクラスタＣ４，Ｃ５が、点線で示される１のクラスタＣ６にマージされる。このとき、マージ分割部４６は、これまでのLMVの分類結果であるクラスタＣ４，Ｃ５に属するLMVについてマージして、例えば、図１１の白丸で示される平均値を求め、遅延バッファ４４にバッファリングされている代表ベクトルのうち、クラスタＣ４，Ｃ５に対応する代表ベクトルをクラスタＣ６の代表ベクトルで置換させてバッファリングさせる。従って、図１１の場合、以降においては、クラスタＣ１乃至Ｃ３、およびＣ６の４種類のクラスタに分類されることになる。
【００８１】
尚、ステップＳ３９において、マージの必要がないと判定された場合、ステップＳ４０の処理がスキップされる。
【００８２】
ステップＳ４１において、マージ分割部４６は、クラスタリング部４２からの各クラスタのLMVの分布から得られる分散、または共分散に基づいて、クラスタを分割する必要があるか否かを判定する。すなわち、例えば、図１１で示されるように、クラスタＣ１乃至Ｃ３およびＣ６の合計４種類のクラスタであった場合、クラスタＣ６については、分散が大きく、２つのクラスタにみなす必要があるとき、分割が必要であるとみなされる。ステップＳ４１において、このように１のクラスタを複数のクラスタに分割する必要があると判定された場合、処理は、ステップＳ４２に進む。
【００８３】
ステップＳ４２において、マージ分割部４６は、分割が必要と認められたクラスタを複数のクラスタに分割する。すなわち、図１１の場合、マージ分割部４６は、クラスタＣ６に属するLMVの分布に基づいて、Ｃ６に属していたLMVを、図１１で示されるように、２のクラスタＣ４，Ｃ５に分割する。さらに、マージ分割部４６は、分割されたクラスタＣ４，Ｃ５に属するLMVの平均値を、平均値算出部４３と同様の計算手法で求める。そして、マージ分割部４６は、クラスタＣ６の代表ベクトルに代えて、求めたクラスタＣ４，Ｃ５の代表ベクトルを遅延バッファ４４にバッファリングさせる。
【００８４】
以上の処理により、フレーム画像単位で、順次GMVを求めることが可能となる。このように、マクロブロック毎のLMVをクラスタに分類することにより、実質的にオブジェクト単位で分類し、さらに、クラスタ毎に、すなわちオブジェクト毎に代表ベクトルを求めるようにすることで、GMVの候補となる動きベクトルを求めることが可能となる。そして、それらのGMVの候補となるオブジェクト毎の代表ベクトルのうち、要素数が最も多い、すなわち、画像内における占有面積の多い代表ベクトルがGMVとして選択されて出力される。
【００８５】
結果として、画像内における支配的要素の大きな、すなわち、画像内における占有面積の大きなオブジェクトの動きベクトルを画像におけるグローバル動きベクトルとして求めることが可能となる。尚、以上においては、クラスタ数が５である場合について説明しているが、クラスタ数は、５個に限るものではなく、この他の個数であってもよい。
【００８６】
＜２．第２の実施の形態＞
［フォールバックモードを備えたGMV検出部］
以上においては、クラスタ毎に分類されたLMVの平均値となる代表ベクトルがGMVの候補として算出されて、最も要素数の多いクラスタの代表ベクトルがGMVとして選択される例について説明してきた。しかしながら、処理対象画像と参照画像との間にシーンチェンジが発生していたり、各クラスタの要素がいずれも少ない場合については、求められる代表ベクトルや各クラスタに分類された代表ベクトルなどの信頼性が低いことが予想される。このような場合、処理対象画像において求められたGMVとして、直前の画像のGMVをそのまま用いたり、ゼロベクトルを採用するようにしてもよい。
【００８７】
図１２は、求められたGMVの候補となる代表ベクトルの信頼性が低い場合、直前の画像のGMVやゼロベクトルをGMVに採用するようにしたGMV検出部２３の構成例を示している。尚、この求められたクラスタ毎の代表ベクトルの信頼性が低いモードを、以降においては、フォールバックモードと称するものとする。また、フォールバックモードには、シーンチェンジに伴う第１のパターンと、クラスタ毎の要素数が少ないことに伴う第２のパターンとが存在する。
【００８８】
また、図１２のGMV検出部２３において、図３のGMV検出部２３における構成と同一の機能を備えた構成については、同一の名称および同一の符号を付しており、その説明は適宜省略するものとする。
【００８９】
すなわち、図１２のGMV検出部２３において、図３のGMV検出部２３と異なる点は、GMV決定部４５の後段にフォールバック判定部７１、およびGMV使用判定部７２をさらに設けた点である。
【００９０】
フォールバック判定部７１は、シーンチェンジフラグがシーンチェンジを示す状態であるか否かに基づいて、第１のパターンのフォールバックモードであるか否かを判定する。また、フォールバック判定部７１は、要素数が最大となるクラスタの要素数の、処理対象画像における端部近傍を除いたマクロブロック数に対する割合が所定の閾値よりも大きいか否かを判定し、第２のパターンのフォールバックモードであるか否かを判定する。さらに、フォールバック判定部７１は、平均値算出部４３−１乃至４３−５より供給されてくる各クラスタの代表ベクトル、およびGMV決定部４５より供給されてくるGMVを、それぞれ直前の１フレーム分記憶する。
【００９１】
そして、フォールバック判定部７１は、第１のパターンのフォールバックモードであると判定した場合、第１のパターンのフォールバックモードであることを示す判定結果と共に、ゼロベクトルをGMV使用判定部７２に供給する。このとき、フォールバック判定部７１は、遅延バッファ４４に記憶されているクラスタ毎の代表ベクトルを初期値に設定する。また、フォールバック判定部７１は、フォールバックモードであると判定した場合、第２のパターンであるとき、第２のパターンのフォールバックモードであることを示す判定結果と共に、直前のフレームのGMVをGMV使用判定部７２に供給する。このとき、フォールバック判定部７１は、遅延バッファ４４に記憶しているクラスタ毎の代表ベクトルを、自らが記憶している直前のクラスタ毎の代表ベクトルに設定させる。さらに、フォールバック判定部７１は、フォールバックモードではない場合、フォールバックモードではないことを示す判定結果をGMV使用判定部７２に供給する。
【００９２】
GMV使用判定部７２は、フォールバック判定部７１より供給されてくる判定結果に基づいて、GMV決定部４５より供給されてくるGMV、直前のフレーム画像のGMV、またはゼロベクトルのいずれかを出力する。より詳細には、第１のパターンのフォールバックモードであることを示す判定結果である場合、GMV使用判定部７２は、併せてフォールバック判定部７１より供給されてくるゼロベクトルを、処理対象画像のGMVとして出力する。また、第２のパターンのフォールバックモードであることを示す判定結果である場合、GMV使用判定部７２は、併せてフォールバック判定部７１より供給されてくる、１フレームだけ直前の画像のGMVを、処理対象画像のGMVとして出力する。さらに、フォールバックモードではないことを示す判定結果である場合、GMV使用判定部７２は、GMV決定部４５より供給されてくるGMVを、そのまま処理対象画像のGMVとして出力する。
【００９３】
［GMV算出処理］
次に、図１３のフローチャートを参照して、図１２のGMV検出部２３におけるGMV検出処理について説明する。尚、図１３のフローチャートにおけるステップＳ６１乃至Ｓ６７，Ｓ７０乃至Ｓ７４の処理は、図７のフローチャートを参照して説明したステップＳ３１乃至Ｓ４２の処理と同様であるので、その説明は省略するものとする。
【００９４】
すなわち、ステップＳ６１乃至Ｓ６７において、全てのブロックに対して除外対象ブロックであるか否かが判定されて、除外対象ブロックではないマクロブロックについて、LMVがクラスタリングされ、クラスタ毎に代表ベクトルが求められ、クラスタ毎に最も要素数の多い代表ベクトルがGMVとして選択される。このとき、各クラスタの代表ベクトルが、フォールバック判定部７１に供給される。
【００９５】
そして、ステップＳ６８において、フォールバック判定部７１は、シーンチェンの発生の有無、およびグローバル動きベクトルGMVとして決定されたベクトルのクラスタの要素数に基づいてフォールバックモードであるか否か判定する。ステップＳ６８において、例えば、フォールバックモードであると判定された場合、処理は、ステップＳ７５に進む。
【００９６】
ステップＳ７５において、フォールバック判定部７１は、第１のパターンのフォールバックモードであるか否かを判定する。ステップＳ７５において、例えば、シーンチェンジフラグがシーンチェンジを示すフラグである場合、第１のパターンのフォールバックモードであるものと判定され、処理は、ステップＳ７６に進む。
【００９７】
ステップＳ７６において、フォールバック判定部７１は、GMVとしてゼロベクトルをGMV使用判定部７２に供給する。これに応じて、GMV使用判定部７２は、処理対象画像のGMVとしてゼロベクトルを出力する。すなわち、シーンチェンジが発生しているため、処理対象画像は、動画として連続的に供給される先頭画像であると考えられるので、累積的に求められた画像のローカル動きベクトルとは異なるものである可能性が高いので、動きがないことを前提とした処理とする。
【００９８】
ステップＳ７７において、フォールバック判定部７１は、遅延バッファ４４に記憶されている代表ベクトルを初期値となるベクトルに設定する。すなわち、シーンチェンジが発生しているので、累積的に求められて遅延バッファ４４にバッファリングされている各クラスタの代表ベクトルが一旦破棄されて、初期値となる代表ベクトルが設定される。
【００９９】
一方、ステップＳ７５において、シーンチェンジフラグに基づいて、処理対象画像においてシーンチェンジがないとみなされた場合、GMVとして決定されたベクトルのクラスタの要素数の、画像全体のマクロブロック数から画像端部のマクロブロック数を減算した総数に対する割合が所定の閾値よりも低いために、フォールバックモードになったものとみなされ、処理は、ステップＳ７８に進む。
【０１００】
すなわち、例えば、図１４で示される処理対象画像内にマス目状に設定された各マクロブロックのうち、白色で示されるマクロブロックの代表ベクトルがGMVとして選択されているものとする。この場合、処理対象画像の端部のマクロブロックを除いた総ブロック数に対する、要素数の最も多い図１４の白色で示されたマクロブロックの要素数の割合が所定の閾値よりも低いことになる。すなわち、今の場合、処理対象画像の端部のブロックを除いた総ブロック数に対する、図１４の白色で示された要素数の最も多いブロックの要素数の割合が所定の閾値よりも高くなく、GMVとしての信頼性が低いとみなされ、フォールバックモードであると判定されている。尚、図１４においては、画像全体をマクロブロックに分割したときの配置となるように、マス目が設定されており、各マス目には、対応するマクロブロックが分類されたクラスタ毎の色が付されている。このうち、グレーが付されたマス目に対応するマクロブロックは、除外対象ブロックであることが示されており、白色のマス目に対応するマクロブロックのLMVが、要素数の最も多いクラスタに分類されたことが示されている。
【０１０１】
そこで、ステップＳ７８において、フォールバック判定部７１は、記憶している直前の画像のGMVをGMV使用判定部７２に供給する。これに応じて、GMV使用判定部７２は、処理対象画像のGMVとして、直前の画像におけるGMVを出力する。すなわち、処理対象画像のGMVを決定するには、クラスタに分類される代表ベクトルの要素数が少ないことから信頼性が低いとみなされているので、直前の画像における信頼性の保証されたグローバル動きベクトルGMVを、そのまま使用する。
【０１０２】
ステップＳ７９において、フォールバック判定部７１は、遅延バッファ４４に記憶されている代表ベクトルを、自らが記憶していている直前の画像においてクラスタ毎に求められた代表ベクトルに設定する。すなわち、GMVを決定するには、クラスタに分類される代表ベクトルを決定するための要素数となるLMVが少ないことから信頼性が低いといなされているので、直前の画像で求められている各クラスタの代表ベクトルが、遅延バッファ４４の代表ベクトルとして設定される。
【０１０３】
一方、ステップＳ６８において、フォールバックモードではないと判定された場合、ステップＳ６９において、フォールバック判定部７１は、フォールバックモードではないことを示す判定結果をGMV使用判定部７２に供給する。GMV使用判定部７２は、この判定結果に基づいて、GMV決定部４５より供給されてくるGMVをそのまま出力する。この場合、ステップＳ７０において、遅延バッファ４４は、平均値算出部４３−１乃至４３−５より供給されてきた代表ベクトルを、そのまま記憶する。
【０１０４】
以上の処理により、例えば、動画像が、図１５の上段で示されるように、時刻ｔ０において、「X」で示される画像が供給された後、時刻ｔ１において、画像が供給されるとき、シーンチェンジにより第１のパターンのフォールバックモードであるものとして判定される。この場合、GMVはゼロベクトルとして出力され、遅延バッファ４４には、クラスタ毎の代表ベクトルとして、初期値となる代表ベクトルが設定される。また、時刻ｔ２乃至ｔ８において、図１５の上段の「Ｆ」で示されるように、第２のパターンによりフォールバックモードが連続的に検出される場合、その間は、直前のGMVであるゼロベクトルが出力され続けることになり、また、遅延バッファ４４には、クラスタ毎の代表ベクトルとして初期値となる代表ベクトルが設定され続ける。そして、時刻ｔ９において、図１５の上段の「Ｔ」で示されるように、フォールバックモードが検出されない状態になると、各処理対象画像で求められるGMVが出力され、順次、求められたクラスタ毎の代表ベクトルが、遅延バッファ４４において、各クラスタの代表ベクトルとして記憶される。
【０１０５】
また、例えば、動画像が、図１５の下段で示されるように、時刻ｔ０において「Ｘ」で示される画像が供給された後、時刻ｔ１において画像が供給されるとき、シーンチェンジにより第１のパターンのフォールバックモードであるものとして判定される。この場合、GMVはゼロベクトルとして出力され、遅延バッファ４４には、クラスタ毎の代表ベクトルとして、初期値となる代表ベクトルが設定される。時刻ｔ２乃至ｔ４において、図１５の下段の「Ｔ」で示されるように、フォールバックモードが検出されない状態になると、各処理対象画像で求められるGMVが出力され、順次、求められたクラスタ毎の代表ベクトルが、遅延バッファ４４において、各クラスタの代表ベクトルとして記憶される。さらに、時刻ｔ５乃至ｔ１１において、図１５の下段の「Ｆ」で示されるように、第２のパターンによりフォールバックモードが連続的に検出される場合、その間は、GMVが検出されていた時刻ｔ４において求められたGMVが出力され続けることになり、また、遅延バッファ４４には、クラスタ毎の代表ベクトルとして、時刻ｔ４において求められた各クラスタの代表ベクトルが設定され続ける。
【０１０６】
そして、時刻ｔ１２において、図１５の下段の「Ｔ」で示されるように、フォールバックモードが検出されない状態になると、再び、それ以降において、各処理対象画像で求められるGMVが出力され、順次、求められたクラスタ毎の平均値となる代表ベクトルが、遅延バッファ４４において、各クラスタの代表ベクトルとして記憶される。
【０１０７】
結果として、信頼性の低いGMVについては、シーンチェンジにおいてはゼロベクトルとし、それ以降においては直前の画像におけるグローバル動きベクトルを用いるようにすることができるので、信頼性の高いグローバル動きベクトルGMVを選択することが可能となる。また、信頼性の低いグローバル動きベクトルGMVについては、シーンチェンジにおいては、クラスタ毎の代表ベクトルが初期値に設定され、それ以降においては、直前の画像におけるクラスタ毎の代表ベクトルがそのまま設定されることになるので、信頼性の高い画像が続くとき、累積的にブロック毎のクラスタリングをより正確なものとすることができるので、クラスタ毎のローカル動きベクトルLMVの平均値となるグローバル動きベクトルGMVの候補となる動きベクトルを正確に求めることが可能となる。
【０１０８】
＜３．第３の実施の形態＞
［アフィン変換（射影変換）に対応したGMV検出部］
以上においては、入力される画像が、固定された撮像装置などにより撮像された画像であることが前提となったものであったが、撮像装置が撮像方向や角度を変化させながら撮像する（回転、ズームアップ、ズームアウト、およびあおりなどを含む）と、例えば、図１６で示されるような第１の画像として画像frame#0が撮像された後、第２の画像として画像frame#1が撮像されて、動画像として連続的に供給されてくるような場合、画像frame#0内における(x,y)を基準としたとき、画像frame#1内における(x',y')との対応関係から動きベクトルを表現できるようにしてもよく、このように撮像方向や角度が異なる画像を連続的に処理しつつ、GMVを検出できるようにしてもよい。
【０１０９】
図１７は、撮像方向や角度が異なる画像を連続的に処理しつつ、GMVを検出できるようにしたGMV検出部２３の構成例を示している。尚、図１７のGMV検出部２３の構成において、図３のGMV検出部２３における構成と同一の機能を備えた構成については、同一の名称および同一の符号を付しており、その説明は適宜省略するものとする。図１７のGMV検出部２３において、図３のGMV検出部２３と異なるのは、平均値算出部４３−１乃至４３−５に代えて、最適係数算出部１０１−１乃至１０１−５を備えている点である。
【０１１０】
最適係数算出部１０１−１乃至１０１−５は、図３のGMV検出部２３における平均値算出部４３−１乃至４３−５に対応するものである。すなわち、最適係数算出部１０１−１乃至１０１−５は、ブロック単位で、各クラスタの最適係数(初期値)からブロック座標の並進ベクトルを算出し、当該ブロック座標のLMVとの距離を、例えば、差分絶対値和やユークリッド距離を用いて求め、一番距離が近くなるクラスタに分類する。そして、最適係数算出部１０１−１乃至１０１−５は、最適係数を代表ベクトルを特定する情報として出力する。
【０１１１】
［図１７のGMV検出部によるGMV検出処理］
次に、図１８のフローチャートを参照して、GMV検出処理について説明する。尚、図１８のフローチャートにおけるステップＳ１０１乃至Ｓ１１２のうち、ステップＳ１０６の処理を除く処理については、図７のステップＳ３１乃至Ｓ４２のうち、ステップＳ３６以外の処理と同様であるので、その説明は省略するものとする。
【０１１２】
すなわち、図１８のフローチャートにおいて、図７のフローチャートと異なるのは、ステップＳ３６の平均値を算出する処理に代えて、ステップＳ１０６の最適係数を算出する処理としたことである。
【０１１３】
［アフィン変換による最適係数の算出方法］
ここで、最適係数の算出方法について説明する。
【０１１４】
例えば、図１９の左部で示されるように、画像内の１点を基準点（xn,yn）として考えるとき、この点における動きベクトルが動きベクトル（mvxn,mvyn）であるとすれば、基準点（xn,yn）が動きベクトルにより移動されると、移動点（xn＋mvxn,yn＋mvyn）で表現されることになる。尚、ｎは、各クラスタを識別する識別子である。
【０１１５】
しかしながら、この移動点（xn＋mvxn,yn＋mvyn）はアフィン変換により、図１９の右部で見られるような点線で示される動きベクトルにより変換点（x'n,y'n）に移動しているものと考えられる。ここで、変換点のx座標およびｙ座標は、以下の式（１）で表現される。
【０１１６】
【数１】
2012253482.tif 000003
【０１１７】
ここで、式（１）においては、識別子ｎは表示されておらず、a0,a1,a2,b0,b1,b2は、それぞれ基準点を変換点にアフィン変換するときの係数を示している。尚、図１９の右部においては、識別子ｎを付してアフィン変換するときの座標が示されている。また、a2＝b1＝0、かつ、a1＝b2＝1の場合、並進となる。
【０１１８】
そこで、図２０で示されるように、この移動点（xn＋mvxn,yn＋mvyn）と変換点（x'n,y'n）との誤差Eを以下の式（２）のように定義する。
【０１１９】
【数２】
2012253482.tif 000004
【０１２０】
すなわち、誤差Eは、移動点（xn＋mvxn,yn＋mvyn）と変換点（x'n,y'n）との空間的な距離として求められる。
【０１２１】
さらに、この誤差Eに基づいて、以下の式（３）で示されるようなコストCを定義する。
【０１２２】
【数３】
2012253482.tif 000005
【０１２３】
ここで、「全MB」とは、識別子ｎが、同一のクラスタにおける全てのマクロブロックについての総和であることを示している。
【０１２４】
すなわち、コストCが最小となるときの係数a0,a1,a2,b0,b1,b2が最適な係数となる。
【０１２５】
そこで、式（３）に基づいて、各係数について偏微分したとき、それぞれが０となるように以下の式（４）で示されるような連立方程式が求められる。
【０１２６】
【数４】
2012253482.tif 000006
【０１２７】
さらに、この連立方程式を解くと、以下の式（５）で示されるように最適な係数a0,a1,a2,b0,b1,b2が求められる。
【０１２８】
【数５】
2012253482.tif 000007
【０１２９】
ここで、varは分散を、covは共分散をそれぞれ示している。
【０１３０】
すなわち、ステップＳ１０６において、最適係数算出部１０１−１乃至１０１−５は、以上の手法により係数a0,a1,a2,b0,b1,b2を各クラスタに対して最適係数値として算出する。すなわち、最適係数算出部１０１−１乃至１０１−５は、各ブロック位置のベクトルを最適係数値とブロックの位置(ブロックの座標)から算出し、最適係数値をクラスタの代表値(最適係数)として出力し、遅延バッファ４４にバッファリングさせる。
【０１３１】
［重み付きアフィン変換による最適係数の算出方法］
また、各クラスタの代表ベクトルは、処理対象画像内におけるオブジェクトごとの動きベクトルでもあることは上述した通りである。したがって、上述した処理では、オブジェクト毎に均質な処理により動きベクトルが求められることになる。しかしながら、例えば、図２１の左部で示されるように平坦な画像内に動きのない家からなるオブジェクトHと、動きのある自動車からなるオブジェクトCとが存在するような場合について考える。この場合、これらのオブジェクトに対する処理を均等に処理すると、動きのあるオブジェクトCの代表ベクトルが採用されるとき、動きのないオブジェクトHの画像が動きのあるオブジェクトの代表ベクトルで処理されることにより画像が破綻する恐れがある。そこで、このような場合には、動きの大きさに応じて、代表ベクトルの評価に重みを付するようにして、動きの大きなオブジェクトCの動きベクトルよりも、動きのないオブジェクトHの動きベクトルを優先させるようにしてもよい。
【０１３２】
そこで、図２１で右部においては、クラスタ毎に代表される動きベクトル、すなわち、オブジェクト毎の動きベクトルの大きさに応じて重みを設定するようにした例を示している。すなわち、図２１の右部では、横軸が代表ベクトルMVの長さを、縦軸が重みｗの大きさを表している。これによれば、代表ベクトルの長さMVが０乃至Ｌであるときは、重みｗが１．０に設定され、動きベクトルの長さMVがＬ乃至２Ｌであるときは、重みｗが０．５に設定され、動きベクトルの長さMVが２Ｌ乃至３Ｌであるときは、重みｗが０．２５に設定され、動きベクトルの長さMVが３Ｌ乃至４Ｌであるときは、重みｗが０．１２５に設定されている。すなわち、図２１の左部で示される画像のように、平坦な画像内に動きのない家のオブジェクトHと動きのある車のオブジェクトCとのそれぞれの代表ベクトルについては、上述した手法では、例えば、以下の式（６）で示されるようにコストＣが設定されることになる。
【０１３３】
【数６】
2012253482.tif 000008
【０１３４】
しかしながら、図２１の右部で示されるように重みｗが設定される場合、以下の式（７）で示されるように、コストＣが設定される。
【０１３５】
【数７】
2012253482.tif 000009
【０１３６】
ここで、wｎは、クラスタ毎、すなわち、オブジェクト毎に代表ベクトルの大きさに基づいて設定される重みを示している。
【０１３７】
式（７）の場合においては、コストCを最小とすることにより、以下の式（８）で示されるように係数a0,a1,a2,b0,b1,b2が算出される。
【０１３８】
【数８】
2012253482.tif 000010
【０１３９】
ここで、式（８）における分散、および共分散は、以下の式（９），式（１０）で示されるようにそれぞれ定義される。
【０１４０】
【数９】
2012253482.tif 000011
【０１４１】
【数１０】
2012253482.tif 000012
【０１４２】
このように、クラスタ毎に動きベクトルの大きさに基づいて、コストCに重みを設定して係数を算出することにより、動きの少ないオブジェクトの代表ベクトルが優先的にGMVに作用されることになる。
【０１４３】
［射影変換による最適係数の算出方法］
以上においては、最適係数算出部１０１がアフィン変換により動きベクトルを求める例について説明してきたが、アフィン変換に代えて射影変換とするようにしてもよい。この場合、最適係数算出部１０１は、以下のような処理により射影変換により最適な係数を算出する。
【０１４４】
例えば、図２２の左部で示されるように、画像内の１点を基準点（xn,yn）として考えるとき、この点における動きベクトルが動きベクトル（mvxn,mvyn）であるとすれば、基準点（xn,yn）が動きベクトルにより移動されると、移動点（xn＋mvxn,yn＋mvyn）で表現されることになる。尚、ｎは、各クラスタを識別する識別子である。
【０１４５】
しかしながら、この移動点（xn＋mvxn,yn＋mvyn）は射影変換により、図２２の右部で見られるような点線で示される動きベクトルにより変換点（x'n,y'n）に移動しているものと考えられる。ここで、変換点のx座標およびｙ座標は、以下の式（１１）で表現される。
【０１４６】
【数１１】
2012253482.tif 000013
【０１４７】
ここで、式（１１）においては、識別子ｎは表示されておらず、a0乃至a8は、それぞれ基準点を変換点に射影変換するときの係数を示している。尚、図２２の右部においては、識別子ｎを付して射影変換するときの座標が示されている。
【０１４８】
そこで、クラスタリング部４２によりクラスタ毎に分類されてくる各ブロックの動きベクトル（X1,Y1）,（X2,Y2）,（X3,Y3）,・・・を上述した式（１１）に代入することにより、以下のような式（１２）で示されるような行列式からなる観測方程式が生成される。
【０１４９】
【数１２】
2012253482.tif 000014
【０１５０】
この行列式を以下の式（１３）に変換する。
【０１５１】
【数１３】
2012253482.tif 000015
【０１５２】
ここで、ｑは、式（１２）における左辺であり、Aは式（１２）の左辺の先頭に存在する行列式であり、ｐは、式（１２）における係数a0乃至a8からなる行列式である。
【０１５３】
この式（１３）を以下の式（１４）のように変形して、行列式ｐを構成する係数a0乃至a8の各値が特定されることにより、最適係数が算出される。
【０１５４】
【数１４】
2012253482.tif 000016
【０１５５】
ここで、（ATA）は、以下の式（１５）で示され、ATqは、以下の式（１６）で示される。
【０１５６】
【数１５】
2012253482.tif 000017
【０１５７】
【数１６】
2012253482.tif 000018
【０１５８】
以上のように、最適係数算出部１０１−１乃至１０１−５は、射影変換により各クラスタの代表ベクトルを表現する最適係数を算出することができる。結果として、画像を撮像する際に、回転、ズーム、またはあおりといった撮像状態が連続的に変化するような画像であっても適切な動きベクトルを検出することが可能となる。尚、最適係数算出部１０１−１乃至１０１−５は、図１２のGMV算出部２３においても、平均値算出部４３−１乃至４３−５に代えて適用するようにしてもよい。
【０１５９】
＜４．第４の実施の形態＞
［ゼロベクトルを選択肢とする選択部を含む画像符号化装置］
以上においては、各マクロブロックに、LMVであるか、GMV検出部２３により検出されたGMVであるかを選択する例について説明してきた。しかしながら、平坦部やノイズの影響で、LMVおよびGMVのいずれの動きベクトルでも正確に求められない恐れがある。このような場合、そのいずれかを必ず選択する構成とすると符号化の精度を低減させる恐れがある。そこで、マクロブロック単位の動きベクトルを決定するに当り、LMVおよびGMVに加えて、ゼロベクトルを選択肢にできるようにしてもよい。
【０１６０】
図２３は、マクロブロック単位の動きベクトルとして、LMVおよびGMVに加えて、ゼロベクトルを選択肢にできるようにした動きベクトル検出部１１の構成例が示されている。尚、図２３の動きベクトル検出部１１における構成のうち、図２の動きベクトル検出部１１の構成と同一の機能を備えた構成については、同一の名称、および同一の符号を付しており、その説明は適宜省略するものとする。
【０１６１】
すなわち、図２３の動きベクトル検出部１１において、図２の動きベクトル検出部１１と異なる点は、GMV選択部２０１を新たに設けた点である。
【０１６２】
GMV選択部２０１は、ブロックマッチング部２２より供給されてくるブロック単位のローカル動きベクトルLMVと、GMV検出部２３より供給されてくるGMVを比較し、所定の程度以上に一致しているか否かを判定する。そして、両者の動きベクトルが一致しているとき、GMV選択部２０１は、いずれの動きベクトルの精度も低いものとしてゼロベクトルを選択し、それ以外のとき、GMV検出部２３より供給されてくるGMVを出力する。
【０１６３】
［図２３の動きベクトル検出部を含む画像符号化装置による符号化処理］
次に、図２４のフローチャートを参照して、図２３の動きベクトル検出部１１を含む画像符号化装置１により符号化処理について説明する。尚、図２４のフローチャートにおいて、ステップＳ２０１乃至Ｓ２０９のうち、ステップＳ２０４乃至Ｓ２０６を除く処理については、図６のフローチャートを参照して説明したステップＳ１１乃至Ｓ１６の処理と同様であるので、その説明は省略する。
【０１６４】
すなわち、ステップＳ２０１乃至Ｓ２０３の処理により、ブロックマッチング部２２によりローカル動きベクトルLMVが求められ、さらに、GMV検出部２３によりグローバル動きベクトルGMVが求められると、処理は、ステップＳ２０４に進む。
【０１６５】
ステップＳ２０４において、GMV選択部２０１は、ブロックマッチング部２２より供給されてくるマクロブロック単位のLMVと、GMV検出部２３より供給されてくるGMVとの距離が０または略ゼロであるか否かに基づいて、両者が一致するか否かを判定する。
【０１６６】
ステップＳ２０４において、例えば、ローカル動きベクトルLMVおよびグローバル動きベクトルGMVとの距離が所定の閾値より小さく０であるか、略ゼロに近い値であり、両者が略一致、または一致しているとみなされる場合、処理は、ステップＳ２０５に進む。
【０１６７】
ステップＳ２０５において、GMV選択部２０１は、両者の精度が共に低いものとしてゼロベクトルをGMVとして出力する。
【０１６８】
一方、ステップＳ２０４において、ローカル動きベクトルLMVおよびグローバル動きベクトルGMVとの距離が所定の閾値よりも小さく、略ゼロに近い値でも、０でもなく、すなわち、両者が一致していないとみなされるとき、処理は、ステップＳ２０６に進む。
【０１６９】
ステップＳ２０６において、GMV選択部２０１は、GMV検出部２３より供給されてくるGMVをそのまま出力する。
【０１７０】
以上の処理により、平坦部やノイズの影響などで、LMVやGMVが正しく求められない状態でも、ゼロベクトルがグローバル動きベクトルGMVとして出力されることで、符号化精度を不要に大きく低減するといったことを防止させることが可能となる。
【０１７１】
＜５．第５の実施の形態＞
［ゼロベクトルをGMV選択肢とする選択部を含む、オブジェクト毎に動きベクトルを求める画像符号化装置］
以上においては、画像内に複数のオブジェクトがある場合、撮像方向が変化するとき、各オブジェクトの動きは変わらない例について説明してきた。しかしながら、例えば、図２５で示されるように、各側面に斑模様が設けられているような立方体状の物体を、撮像位置を変えながら撮像するようにする場合、立方体状の物体の各面は異なる動きをするため、斑からなるオブジェクトは、アフィン変換などを利用して求めても、１の動きベクトルでは表現することができない。そこで、GMVに対応する動きベクトルをオブジェクト毎にオブジェクト動きベクトルObjectMV（以降、単にObjectMVとも称するものとする）として出力するようにしてもよい。
【０１７２】
図２６は、画像内に存在するオブジェクト毎にGMVに対応するObjectMVを出力するようにした画像符号化装置１の動きベクトル検出部１１の構成例を示している。尚、図２６の動きベクトル検出部１１における構成のうち、図２の動きベクトル検出部１１の構成と同一の機能を備えた構成については、同一の名称および同一の符号を付しており、その説明は適宜省略するものとする。すなわち、図２６の動きベクトル検出部１１において、図２の動きベクトル検出部１１と異なる点は、新たにオブジェクトMV検出部２２１、およびGMV選択部２２２が設けられている点である。
【０１７３】
オブジェクトMV検出部２２１は、ブロックマッチング部２２より供給されてくるマクロブロック毎のLMVに基づいて、画像内に含まれるオブジェクト毎に、ObjectMVを検出して、ObjectMVを構成するLMVの要素数の情報と共にGMV選択部２２２に供給する。尚、図２６においては、オブジェクト動きベクトルObjectMV1乃至ObjectMV5が出力される例について示されているが、オブジェクト数については、それ以外であってもよいものである。尚、オブジェクトMV検出部２２１の構成については、図２７を参照して、詳細を後述する。
【０１７４】
GMV選択部２２２は、LMVとの比較により、オブジェクトMV検出部２２１より供給されてきたObjectMV1乃至ObjectMV5、並びにゼロベクトルのいずれかをGMVとして出力する。
【０１７５】
［オブジェクトMV検出部］
次に、図２７を参照して、オブジェクトMV検出部２２１の構成例について説明する。尚、図２７のオブジェクトMV検出部２２１において、図３のGMV検出部２３と同一の機能を備えた構成については、同一の名称、および同一の符号を付しており、その説明は省略するものとする。すなわち、図２７のオブジェクトMV検出部２２１は、図３のGMV検出部２３よりGMV決定部４５を削除した構成となっている。したがって、平均値算出部４３−１乃至４３−５のそれぞれより出力される各クラスタを構成するLMVの平均値が、それぞれのObjectMV1乃至ObjectMV5として出力される。
【０１７６】
［図２６の画像符号化装置による画像符号化処理］
次に、図２８のフローチャートを参照して、図２６の画像符号化装置１による画像符号化処理について説明する。尚、図２８のフローチャートにおけるステップＳ２５１乃至Ｓ２５７の処理のうち、ステップＳ２５３乃至Ｓ２５９の処理以外については、図６のフローチャートにおけるステップＳ１１乃至Ｓ１６のうちのステップＳ１３以外の処理と同様であるので、その説明については省略するものとする。
【０１７７】
すなわち、ステップＳ２５３において、オブジェクトMV検出部２２１は、オブジェクトMV算出処理を実行し、オブジェクト毎の動きベクトルであるオブジェクト動きベクトルObjectMV1乃至ObjectMV5を検出してGMV選択部２２２に供給する。
【０１７８】
［オブジェクトMV検出処理］
ここで、図２９のフローチャートを参照して、オブジェクトMV検出処理について説明する。尚、図２９のブローチャートのステップＳ２７１乃至Ｓ２８１の処理については、図７のフローチャートを参照して説明したGMV決定処理のステップＳ３１乃至Ｓ４２の処理のうち、ステップＳ３７の処理を除いた処理であるので、その説明は省略する。すなわち、ここでは、図７のフローチャートを参照して説明したGMV決定処理のうち、GMVが決定されることなく、各クラスタの平均値として求められた代表ベクトルが、ObjectMV1乃至ObjectMV5として検出されて、GMV選択部２２２に供給される。この際、平均値算出部４３−１乃至４３−５は、それぞれに算出した各クラスタの代表ベクトルであるObjectMV1乃至ObjectMV5と共に、それぞれのObjectMV1乃至ObjectMV5の算出に使用したローカル動きベクトルLMVの要素数の情報も併せてGMV選択部２２２に供給する。
【０１７９】
ここで、図２８のフローチャートの説明に戻る。
【０１８０】
ステップＳ２５４において、GMV選択部２２２は、順位をカウントするためのカウンタｉを１に初期化する。
【０１８１】
ステップＳ２５５において、GMV選択部２２２は、ObjectMV1乃至ObjectMV5のうち、要素数が上位ｉ位となるObjectMViと、LMVとの距離を算出して、距離が所定の値よりも小さく、十分に0に近い値であって、両者が一致しているか否かを判定する。ステップＳ２５５において、例えば、ObjectMViと、LMVとの距離が十分にゼロに近い値であって、両者が一致しており、両者の信頼性が低いと判定された場合、処理は、ステップＳ２５６に進む。
【０１８２】
ステップＳ２５６において、GMV選択部２２２は、カウンタｉが最大値である５であるか否かを判定する。ステップＳ２５６において、例えば、カウンタｉが５ではない、すなわち、まだ要素数が下位のObjectMVが存在すると判定された場合、ステップＳ２５７において、GMV選択部２２２は、カウンタｉを１インクリメントして、処理は、ステップＳ２５５に戻る。すなわち、以降において、要素数がより下位となるObjectMViと、LMVとが一致しているか否かが判定され、ステップＳ２５５において、残されたObjectMVについて、上位から１ずつ一致しないとみなされるまで、ステップＳ２５５乃至Ｓ２５８の処理が繰り返される。そして、ステップＳ２５６において、カウンタｉが５である、すなわち、全てのObjectMVとLMVとの比較が完了して、一致しないとみなされるObjectMVが存在しないとみなされた場合、処理は、ステップＳ２５９に進む。
【０１８３】
ステップＳ２５９において、GMV選択部２２２は、ゼロベクトルをGMVとしてアップコンバート部２４−２に供給する。
【０１８４】
一方、ステップＳ２５５において、例えば、ObjectMViとOMVとが一致していなければ、GMV選択部２２２は、ObjectMViをGMVとしてアップコンバート部２４−２出力する。
【０１８５】
すなわち、要素数の上位から順にObjectMViとLMVとが一致するか否かが判定され、LMVと一致しないObjectMViがあれば、そのObjectMViがGMVとして出力される。そして、最終的に、最も要素数の少ないObjectMViとLMVとが一致している場合には、GMV選択部２２２は、ゼロベクトルをグローバル動きベクトルとして出力する。
【０１８６】
結果として、GMVとして、平坦部やノイズの影響などにより誤ったLMVが選択されることがなく、ゼロベクトルが選択されるようになるので、符号化の精度が低減するのを抑制させることが可能となる。また、図２５で示されるような立方体状のものを、撮像方向を変えながら撮像し続けても、その撮像方向毎に適切なオブジェクトのObjectMVがGMVに選択されるので、精度良く画像を符号化させることが可能となる。
【０１８７】
尚、以上においては、複数のObjectMVのうち、要素数の多いものから順にLMVとの距離を求め、近い値ではない、すなわち、ある程度一致していないものである場合に、その順位のObjectMVをGMVとして選択する例について説明してきたが、例えば、両者が所定の距離より遠いほどGMVとして選択するようにしてもよい。また、複数のObjectMVのうち、２以上のObjectMVをGMVの候補として出力させ、選択部２５が最終的に選択するようにしてもよい。また、GMVの選択肢としてObjectMV1乃至ObjectMV5、並びにゼロベクトルである場合について説明してきたが、５種類以上のObjectMVを選択肢とするようにしてもよいし、ゼロベクトルを除いた複数のObjectMVのみとするようにしてもよい。
【０１８８】
＜６．第６の実施の形態＞
［オブジェクト毎の動きベクトルにゼロベクトルを含む画像符号化装置］
以上においては、選択部２５に対して、１のGMVを供給するようにする例について説明してきたが、ObjectMV1乃至ObjectMV5、およびゼロベクトルを、全てGMVの候補として選択部２５に供給し、選択部２５がSATDとオーバヘッド部における情報に基づいて、選択するようにしてもよい。
【０１８９】
図３０は、ObjectMV1乃至ObjectMV5、およびゼロベクトルを、全てGMVの候補として選択部２５に供給するようにした画像符号化装置１の動きベクトル検出部１１の構成例を示している。尚、図３０の動きベクトル検出部１１において、図２６の動きベクトル検出部１１の構成と同一の機能を備える構成については、同一の名称、および同一の符号を付しており、その説明は適宜省略する。すなわち、図３０の動きベクトル検出部１１において、図２６の動きベクトル検出部１１と異なる点は、GMV選択部２２２、アップコンバート部２４−２、および選択部２５に代えて、アップコンバート部２４１、および選択部２４２を備えている点である。
【０１９０】
アップコンバート部２４１は、基本的な機能はアップコンバート部２４−２と同様であるが、オブジェクト動きベクトルObjectMV1乃至ObjectMV5、およびゼロベクトルの全てについてアップコンバートを施して選択部２５に供給する。
【０１９１】
選択部２４２は、基本的な機能は選択部２５と同様であるが、アップコンバートされたLMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルの全てについて、ブロック単位でそれぞれSATDおよびオーバヘッド部の情報を求めて、いずれも最小となる動きベクトルをブロック単位の動きベクトルとして選択する。
【０１９２】
［図３０の動きベクトル検出部を備える画像符号化装置の画像符号化処理］
次に、図３１のフローチャートを参照して、図３０の動きベクトル検出部を備える画像符号化装置の画像符号化処理について説明する。尚、図３１のフローチャートのステップＳ３０１乃至Ｓ３０６のうち、ステップＳ３０４，Ｓ３０５を除く処理については、図６のフローチャートにおけるステップＳ１１乃至Ｓ１６のうちのステップＳ１４，Ｓ１５の処理を除き同一の処理であるので、その説明は省略するものとする。また、図３１のフローチャートにおけるステップＳ３０３の処理は、図２８のフローチャートにおけるステップＳ２５３の処理と同様であるので、その説明も省略するものとする。
【０１９３】
すなわち、ステップＳ３０１乃至Ｓ３０３の処理により、ローカル動きベクトルLMVおよびオブジェクト動きベクトルObjectMV1乃至ObjectMV5が検出されると、処理は、ステップＳ３０４に進む。ステップＳ３０４において、アップコンバート部２４１は、オブジェクト動きベクトルObjectMV1乃至ObjectMV5およびゼロベクトルを、入力された処理対象画像、および参照画像の解像度に高解像度化した情報にアップコンバートして選択部２５に供給する。
【０１９４】
ステップＳ３０５において、選択部２４２は、マクロブロック単位で、入力された処理対象画像の解像度に対応するアップコンバートされたLMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルを、それぞれを用いた際のSATDおよびオーバヘッド部の情報をそれぞれ求め、いずれも小さくなる動きベクトルをブロック毎の動きベクトルに選択して符号化部１２に出力する。
【０１９５】
以上の処理により、LMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルのうち、それぞれを用いた場合のSATDおよびオーバヘッド部の情報が最小となる動きベクトルがブロック単位で選択されることになるので、平坦部やノイズの影響でローカル動きベクトルLMVが誤検出されるようなことがあっても、符号化精度を低減させる事なく、画像を符号化することが可能となる。また、GMVの選択肢としてLMV、ObjectMV1乃至ObjectMV5、並びにゼロベクトルである場合について説明してきたが、５種類以上のObjectMVを選択肢とするようにしてもよいし、ゼロベクトルを除いた複数のLMVおよびObjectMVを選択肢とするようにしてもよい。
【０１９６】
尚、以上においては、全てのObjectMV1乃至ObjectMV5、およびゼロベクトルをアップコンバートして選択部２４２に供給する例について説明してきたが、例えば、要素数が上位ｎ位（ｎ＝１，２，３，or４）までのObjectMV、または、LMVまでの距離が遠い順に上位ｎ位（ｎ＝１，２，３，or４）までのObjectMVにゼロベクトルを加えたものをアップコンバート部２４１に供給するようにしてもよい。また、以上においては、LMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルのうち、それぞれを用いた場合のSATDおよびオーバヘッド部の情報が最小となる動きベクトルがマクロブロック単位の動きベクトルとして選択される例について説明してきたが、SATDおよびオーバヘッド部の情報が小さい順に上位ｎ位までの複数の動きベクトルを処理対象となるマクロブロックの動きベクトルとするようにしてもよい。
【０１９７】
以上によれば、複数のオブジェクトがそれぞれ異なる動きをしていても、オブジェクト毎に適切に動きベクトルを検出することが可能となる。また、適切なGMVを選択して画像を符号化することができるので、符号化効率が向上させることが可能となる。さらに、画像情報をハイフレームレート変換するような場合、補間フレームの品質を向上させることが可能となる。
【０１９８】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１９９】
図３２は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタフェイス１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０２００】
入出力インタフェイス１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０２０１】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１から読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３にはまた、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２０２】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０２０３】
尚、本技術は以下のような構成を取ることができる。
（１）  入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置。
（２）  前記クラスタリング部は、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離を算出する距離算出部を含み、
前記距離算出部により算出された距離が最小となるクラスタに、前記ブロック単位のローカル動きベクトルをクラスタリングする
前記（１）に記載の画像処理装置。
（３）  前記代表算出部は、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値を代表ローカル動きベクトルとして算出する
前記（１）または（２）に記載の画像処理装置。
（４）  前記代表算出部は、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルのアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、代表ローカル動きベクトルとして算出する
前記（１）乃至（３）のいずれかに記載の画像処理装置。
（５）  前記代表算出部により算出された、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルをバッファリングするバッファリング部を含み、
前記クラスタリング部は、前記バッファリング部によりバッファリングされている、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、またはアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、前記クラスタ毎に設定されるベクトルとして、前記ローカル動きベクトルをクラスタリングする
前記（２）乃至（４）のいずれかに記載の画像処理装置。
（６）  前記クラスタリング部によりクラスタリングされた前記クラスタのうち、クラスタ間のベクトル空間内での位置が近いクラスタ同士については、前記クラスタ同士をマージし、前記クラスタ間のベクトル空間内での分散が大きいクラスタについては、複数のクラスタに分割するマージ分割部をさらに含む
前記（１）乃至（５）のいずれかに記載の画像処理装置。
（７）  前記入力画像を低解像度の画像にダウンコンバートする第１のダウンコンバート部と、
前記参照画像を低解像度の画像にダウンコンバートする第２のダウンコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められたブロック単位の前記ローカル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第１のアップコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められた前記グローバル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第２のアップコンバート部と、
前記第１のアップコンバート部により適用されたブロック単位のローカル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和と、前記第２のアップコンバート部により適用されたブロック単位のグローバル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和との比較により、前記入力画像のブロックに対して、前記ローカル動きベクトル、または前記グローバル動きベクトルのいずれかを選択する選択手段とを含む
前記（１）乃至（６）のいずれかに記載の画像処理装置。
（８）  入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む画像処理方法。
（９）  入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリングステップと、
前記代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記グローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む処理を実行させるプログラム。
（１０）  入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置。
（１１）  前記オブジェクト毎にクラスタリングされたローカル動きベクトルに基づいて、算出された前記オブジェクト動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部をさらに含む
前記（１０）に記載の画像処理装置。
（１２）  入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部における、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む画像処理方法。
（１３）  入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記オブジェクト動きベクトル算出部における、前記クラスタリングステップの処理により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む処理を実行させるプログラム。
【符号の説明】
【０２０４】
１  画像符号化装置，  １１  動きベクトル検出部，  １２  符号化部，  ２２  ブロックマッチング部，  ２３  GMV検出部，  ２４，２４−１，２４−２  アップコンバート部，  ２５  選択部，  ４１  ブロック除外判定部，  ４２  クラスタリング部，  ４３，４３−１乃至４３−５  平均値算出部，  ４４  遅延バッファ，  ４５  GMV検出部，  ４６  マージ分割部，  １０１，１０１−１乃至１０１−５  最適係数算出部，  ２０１  GMV選択部，  ２２１  オブジェクトMV検出部，  ２２２  GMV選択部，  ２４１  アップコンバート部，  ２４２  選択部
【図１】
2012253482.tif 000019
【図２】
2012253482.tif 000020
【図３】
2012253482.tif 000021
【図４】
2012253482.tif 000022
【図５】
2012253482.tif 000023
【図６】
2012253482.tif 000024
【図７】
2012253482.tif 000025
【図８】
2012253482.tif 000026
【図９】
2012253482.tif 000027
【図１０】
2012253482.tif 000028
【図１１】
2012253482.tif 000029
【図１２】
2012253482.tif 000030
【図１３】
2012253482.tif 000031
【図１４】
2012253482.tif 000032
【図１５】
2012253482.tif 000033
【図１６】
2012253482.tif 000034
【図１７】
2012253482.tif 000035
【図１８】
2012253482.tif 000036
【図１９】
2012253482.tif 000037
【図２０】
2012253482.tif 000038
【図２１】
2012253482.tif 000039
【図２２】
2012253482.tif 000040
【図２３】
2012253482.tif 000041
【図２４】
2012253482.tif 000042
【図２５】
2012253482.tif 000043
【図２６】
2012253482.tif 000044
【図２７】
2012253482.tif 000045
【図２８】
2012253482.tif 000046
【図２９】
2012253482.tif 000047
【図３０】
2012253482.tif 000048
【図３１】
2012253482.tif 000049
【図３２】
2012253482.tif 000050