説明

画像処理装置および方法、記録媒体、並びにプログラム

【課題】画像からグローバル動きベクトルを適切に抽出できるようにする。
【解決手段】クラスタリング部42は、所定のサイズのブロック単位で求められるローカル動きベクトルLMVと、遅延バッファ44に格納されている複数のクラスタ毎の代表となる動きベクトルとの距離を求め、距離が最小となる動きベクトルの属するクラスタに、ローカル動きベクトルLMVを分類し、分類したクラスタの情報とローカル動きベクトルLMVとを出力する。平均値算出部43−1乃至43−5は、それぞれ自らのクラスタのローカル動きベクトルLMVを蓄積して、その平均となる動きベクトルを算出し、これをクラスタを代表する動きベクトルとして出力する。GMV決定部45は、クラスタを代表する動きベクトルのうち、要素数の最も多い動きベクトルをグローバル動きベクトルGMVとして出力する。本技術は、画像処理装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、画像内に複数の異なる動きをするオブジェクトが含まれていても正確に動きベクトルを検出できるようにした画像処理装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【0002】
動画像の圧縮は、各フレームよりマクロブロック単位で動きベクトルを検出し、検出した動きベクトルを用いて、圧縮するべきフレーム数を減らすことにより実現されている。このため、動画像より動きベクトルを検出する技術は動画像の圧縮処理においては、必須技術となっている。
【0003】
動画像から動きベクトルを検出する技術としては、例えば、マクロブロックの動きベクトルをグループ化して、動く物体を含まないグループに含まれる領域の動きベクトルを画面全体の動きベクトルとして検出するというものが提案されている(特許文献1参照)。
【0004】
また、動きベクトルのヒストグラムを用いて画面全体の動きベクトルを検出し、集中した動きがない場合、画面全体の動きベクトルを使わないようにするというものも提案されている(特許文献2,3参照)。
【0005】
さらに、主要物体の特徴点領域を用いて画面全体の動きを検出し、これを動きベクトルとして使用するものが提案されている(特許文献4参照)。
【0006】
また、特徴点を検出し、粗密探索法やk-means法などにより特徴点の動きを求めて、動きベクトルとするものが提案されている(特許文献5参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−235769号公報
【特許文献2】特開2008−236098号公報
【特許文献3】特開2010−213287号公報
【特許文献4】特開平10−210473号公報
【特許文献5】特開2010−118862号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した手法では、並進以外の動きに対応することができない。また、シーンチェンジや画面全体の動きベクトルの信頼性が低い場合などに、信頼性の低い動きベクトルを除外する機構がないため、誤った動きベクトルを検出することで、符号化処理または復号処理により画像にエラーが発生する恐れがある。
【0009】
また、上述した手法では、ノイズなどの影響で1フレームのみ集中した動きがない場合に前フレームのベクトルを用いることができず、誤った動きベクトルを検出することで、符号化処理または復号処理により画像にエラーが発生する恐れがある。
【0010】
さらに、画像から特徴点が求められない場合、画面全体の動きを検出することができないため、動きベクトルそのものが求められず、符号化処理そのものが実施できない恐れがあった。
【0011】
本技術はこのような状況に鑑みてなされたものであり、特に、画像から動きベクトルを適切に検出できるようにするものである。
【課題を解決するための手段】
【0012】
本技術の第1の側面の画像処理装置は、入力画像のブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、前記クラスタリング部によりクラスタリングされた前記所定数のクラスタ毎に、代表となる代表ローカル動きベクトルを設定し、前記クラスタ毎の代表ローカル動きベクトルから前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部とを含む。
【0013】
本技術の第2の側面の画像処理装置は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部とを含む。
【0014】
前記クラスタリング部には、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離を算出する距離算出部を含ませるようにすることができ、前記距離算出部により算出された距離が最小となるクラスタに、前記ブロック単位のローカル動きベクトルをクラスタリングさせるようにすることができる。
【0015】
前記代表算出部には、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値を代表ローカル動きベクトルとして算出させるようにすることができる。
【0016】
前記代表算出部には、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルのアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、代表ローカル動きベクトルとして算出させるようにすることができる。
【0017】
前記代表算出部により算出された、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルをバッファリングするバッファリング部を含ませるようにすることができ、前記クラスタリング部には、前記バッファリング部によりバッファリングされている、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、前記クラスタ毎に設定されるベクトルとして、前記ローカル動きベクトルをクラスタリングさせるようにすることができる。
【0018】
前記クラスタリング部によりクラスタリングされた前記クラスタのうち、クラスタ間のベクトル空間内での位置が近いクラスタ同士については、前記クラスタ同士をマージし、前記クラスタ間のベクトル空間内での分散が大きいクラスタについては、複数のクラスタに分割するマージ分割部をさらに含ませるようにすることができる。
【0019】
前記入力画像を低解像度の画像にダウンコンバートする第1のダウンコンバート部と、前記参照画像を低解像度の画像にダウンコンバートする第2のダウンコンバート部と、前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められたブロック単位の前記ローカル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第1のアップコンバート部と、前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められた前記グローバル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第2のアップコンバート部と、前記第1のアップコンバート部により適用されたブロック単位のローカル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和と、前記第2のアップコンバート部により適用されたブロック単位のグローバル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和との比較により、前記入力画像のブロックに対して、前記ローカル動きベクトル、または前記グローバル動きベクトルのいずれかを選択する選択手段とを含ませるようにすることができる。
【0020】
本技術の第2の側面の画像処理方法は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップとを含む。
【0021】
本技術の第2の側面のプログラムは、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部とを含む画像処理装置を制御するコンピュータに、前記ローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、前記代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、前記グローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップとを含む処理を実行させる。
【0022】
本技術の記録媒体に記録されたプログラムは、請求項10に記載のコンピュータに読み取り可能なプログラムである。
【0023】
本技術の第3の側面の画像処理装置は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部とを含む。
【0024】
前記オブジェクト毎にクラスタリングされたローカル動きベクトルに基づいて、算出された前記オブジェクト動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部をさらに含ませるようにすることができる。
【0025】
本技術の第3の側面の画像処理方法は、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部における、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップとを含む。
【0026】
本技術の第3の側面のプログラムは、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部とを含む画像処理装置を制御するコンピュータに、前記ローカル動きベクトル検出部における、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、前記オブジェクト動きベクトル算出部における、前記クラスタリングステップの処理により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップとを含む処理を実行させる。
【0027】
本技術の記録媒体に記録されたプログラムは、請求項15に記載のコンピュータに読み取り可能なプログラムである。
【0028】
本技術の第1の側面においては、入力画像のブロック単位のローカル動きベクトルが所定数のクラスタにクラスタリングされ、クラスタリングされた前記クラスタ毎に、代表となる代表ローカル動きベクトルが設定され、前記所定数のクラスタ毎の代表ローカル動きベクトルから前記入力画像のグローバル動きベクトルが選択される。
【0029】
本技術の第2の側面においては、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルが検出され、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルが所定数のクラスタにクラスタリングされ、分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルが算出され、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルが選択される。
【0030】
本技術の第3の側面においては、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルが検出され、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルが所定数のオブジェクト毎にクラスタリングされ、分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルが算出される。
【0031】
本技術の画像処理装置は、独立した装置であっても良いし、画像処理を行うブロックであっても良い。
【発明の効果】
【0032】
本技術によれば、画像より適切に動きベクトルを検出することが可能となる。
【図面の簡単な説明】
【0033】
【図1】本技術である画像処理装置を適用した画像符号化装置の第1の実施の形態の構成例を示すブロック図である。
【図2】図1の動きベクトル検出部の構成例を示す図である。
【図3】図1のGMV検出部の構成例を示す図である。
【図4】図1のクラスタリング部の構成例を示す図である。
【図5】図1の平均値算出部の構成例を示す図である。
【図6】図1の画像符号化装置による符号化処理を説明するフローチャートである。
【図7】図1のGMV検出部によるGMV検出処理を説明するフローチャートである。
【図8】クラスタリング部の処理を説明する図である。
【図9】平均値算出部の処理を説明する図である。
【図10】GMV決定部の処理を説明する図である。
【図11】マージ分割部の処理を説明する図である。
【図12】画像符号化装置の第2の実施の形態におけるGMV検出部の構成例を示すブロック図である。
【図13】図12のGMV検出部によるGMV検出処理を説明するフローチャートである。
【図14】フォールバックモードを説明する図である。
【図15】フォールバックモードを説明する図である。
【図16】撮像画像が回転する際のグローバル動きベクトルの求め方を説明する図である。
【図17】画像符号化装置の第3の実施の形態におけるGMV検出部の構成例を示すブロック図である。
【図18】図17のGMV検出部によるGMV検出処理を説明するフローチャートである。
【図19】図17のGMV検出部のアフィン変換によるGMV検出処理を説明する図である。
【図20】図17のGMV検出部のアフィン変換によるGMV検出処理を説明する図である。
【図21】図17のGMV検出部のアフィン変換によるGMV検出処理において、動きベクトルの大きさに基づいた重みを付する場合の例を説明する図である。
【図22】図17のGMV検出部の射影変換によるGMV検出処理を説明する図である。
【図23】画像符号化装置の第4の実施の形態の構成例を示すブロック図である。
【図24】図23の画像符号化装置による符号化処理を説明するフローチャートである。
【図25】複数のオブジェクトのそれぞれについて動きベクトルが異なる例を説明する図である。
【図26】画像符号化装置の第5の実施の形態の構成例を示すブロック図である。
【図27】図26のオブジェクトMV検出部の構成例を示す図である。
【図28】図26の画像符号化装置による符号化処理を説明するフローチャートである。
【図29】図27のオブジェクトMV検出部によるオブジェクトMV検出処理を説明するフローチャートである。
【図30】画像符号化装置の第6の実施の形態の構成例を示すブロック図である。
【図31】図30の画像符号化装置による符号化処理を説明するフローチャートである。
【図32】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための最良の形態】
【0034】
以下、本技術を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行なう。
1.第1の実施の形態
2.第2の実施の形態(フォールバックモードありの画像符号化装置)
3.第3の実施の形態(アフィンまたは射影変換対応の画像符号化装置)
4.第4の実施の形態(ゼロベクトルを選択肢に含む選択部を備える画像符号化装置)
5.第5の実施の形態(ゼロベクトルを選択肢に含む選択部を備え、オブジェクト毎に動きベクトルを求める画像符号化装置)
6.第6の実施の形態(オブジェクト毎の動きベクトルにゼロベクトルを選択肢に含む画像符号化装置)
【0035】
<1.第1の実施の形態>
[画像符号化装置]
図1は、本技術である画像処理装置を適用した画像符号化装置のハードウェアの第1の実施の形態の構成例を示している。画像符号化装置1は、動画像の処理対象画像(Cur(Current)画像)、および処理対象画像に対する参照画像(Ref(Reference)画像)の供給を順次受ける。そして、画像符号化装置1は、その処理対象画像、および参照画像を用いて、マクロブロック単位で動きベクトルを求め、求めたマクロブロック単位の動きベクトルを用いて動画像を符号化する。
【0036】
より詳細には、画像符号化装置1は、動きベクトル検出部11、および符号化部12を備えている。動きベクトル検出部11は、処理対象画像、および参照画像を用いて、処理対象画像よりマクロブロック単位で動きベクトルを検出し、符号化部12に供給する。
【0037】
符号化部12は、動きベクトル検出部11より供給されてくるマクロブロック単位の動きベクトルと、処理対象画像、および参照画像に基づいて、処理対象画像を符号化し、ビットストリームとして出力する。
【0038】
[動きベクトル検出部]
次に、図2を参照して、動きベクトル検出部11の構成例について説明する。
【0039】
動きベクトル検出部11は、ダウンコンバート部21−1,21−2、ブロックマッチング部22、GMV(Global Motion Vector)検出部23、アップコンバート部24−1,24−2、および選択部25を備えている。ダウンコンバート部21−1,21−2は、それぞれ、処理対象画像、および参照画像をそれぞれ同様に低解像度化してブロックマッチング部22に供給する。尚、ダウンコンバート部21−1,21−2は、それぞれを区別する必要がない場合、単に、ダウンコンバート部21と称するものとし、その他の構成についても同様に称するものとする。また、ダウンコンバート部21における低解像度化の手法としては、画素数を行および列単位で間引くようにしてもよいし、水平方向および垂直方向に数画素単位で間引くようにしてもよいし、さらには、LPF(ローパスフィルタ)を適用後に間引くようにしてもよい。
【0040】
ブロックマッチング部22は、処理対象画像および参照画像をそれぞれm画素×m画素毎のマクロブロック単位で分割し、処理対象画像における各マクロブロックを、参照画像における各マクロブロックと比較して一致するブロックを検索する。そして、ブロックマッチング部22は、処理対象画像におけるブロックの位置と、検索された参照画像におけるブロックの位置との関係から導き出されるベクトルを、処理対象画像におけるそのマクロブロックの動きベクトルとして求める。ブロックマッチング部22は、処理対象画像における全てのマクロブロックに対して同動きベクトルを求め、これをマクロブロック単位のローカル動きベクトル(LMV:Local Motion Vector)としてGMV検出部23、およびアップコンバート部24−1に出力する。
【0041】
また、ブロックマッチング部22は、SAD(Sum of Absolute Difference:差分絶対値和)算出部22a、シーンチェンジ検出部22b、およびDR(Dynamic Range)検出部22cを備えている。SAD算出部22aは、処理対象画像、および参照画像におけるそれぞれに対応するマクロブロックにおける画素間の差分絶対値和SADを算出する。シーンチェンジ検出部22bは、処理対象画像、および参照画像におけるそれぞれの画素間の差分絶対値和からシーンが切り替わったか否かを検出し、シーンチェンジフラグSCFとして出力する。DR検出部22cは、各ブロックにおける画素の画素値におけるダイナミックレンジDR、すなわち、最小値および最大値の差分絶対値を検出する。ブロックマッチング部22は、LMV、DR、SAD、およびSCFの情報を各ブロックの座標と、処理対象画像のフレーム番号と共に出力する。尚、以降において、グローバル動きベクトル、ローカル動きベクトル、差分絶対値和、シーンチェンジフラグ、およびダイナミックレンジは、単に、GMV、LMV、SAD、SCF、およびDRとも称するものとする。また、マクロブロックについては、単にブロックとも称するものとし、例えば、ブロック単位と称した場合、マクロブロック単位を意味するものとする。
【0042】
GMV検出部23は、ブロックマッチング部22より供給されてくるブロック単位で求められるLMVに基づいて、処理対象画像全体におけるブロック単位の動きベクトルであるGMVを検出して、アップコンバート部24−2に供給する。尚、GMV検出部23については、図3を参照して、詳細な構成について後述する。
【0043】
アップコンバート部24−1,24−2は、それぞれブロック単位で求められたLMVおよびGMVをダウンコンバート部21−1,21−2に対応する解像度にアップコンバートした情報に変換して選択部25に供給する。
【0044】
選択部25は、供給されてくるLMVとしてのブロック単位の動きベクトルと、GMVとしてのブロック単位の動きベクトルとを、それぞれにより求められるSATD(Sum of Absolute Transformed Difference:差分絶対値和)、および符号化におけるオーバヘッド部における情報とに基づいて比較して選択し、ブロック単位の動きベクトルとして出力する。ここで、SATDとは、例えば、処理対象画像を動きベクトルに基づいて変換させたブロック単位の画像と、対応する参照画像におけるブロック単位のとの画素間の画素値の予測誤差をアダマール変換し、その絶対値和を算出したものである。
【0045】
[GMV検出部]
次に、図3を参照して、GMV検出部23の構成例について説明する。
【0046】
GMV検出部23は、ブロック除外判定部41、クラスタリング部42、平均値算出部43−1乃至43−5、遅延バッファ44、GMV決定部45、およびマージ分割部46を備えている。
【0047】
ブロック除外判定部41は、ブロックマッチング部22よりLMVと共に供給されてくるブロック単位でのDR、SAD、およびブロックの座標の情報に基づいて、LMVとして求める必要のないブロックであるか否かを判定する。より詳細には、ブロック除外判定部41は、DRが所定のレベルよりも小さく、そのブロックが平坦であるとみなされた場合、LMVを正確に求めることができないブロックであるので、LMVとして求める必要のない除外ブロックであるものとみなす。また、ブロック除外判定部41は、SADが大きく求められた動きベクトルに基づいて対応するブロックと、参照画像のブロックとの画素間の差分絶対値和が所定の閾値よりも大きく、動きベクトルが正しくないとみなされる場合、除外ブロックであるものとみなす。さらに、ブロック除外判定部41は、ブロックの座標からフレーム画像の端部付近のブロックである場合、正しく求められない可能性が高いため、除外ブロックであるものとみなす。
【0048】
従って、ブロック除外判定部41は、DRが所定のレベルよりも小さい、SADが所定値よりも大きい、または、ブロックの座標がフレーム画像の端部付近であるとき、動きベクトルを求めないブロック、すなわち、除外ブロックとみなし、対応するフラグを出力する。また、ブロック除外判定部41は、それ以外のブロックについて、除外ブロックではない、すなわち、動きベクトルを求めるべきブロックであることを示すフラグを出力する。尚、ブロック除外判定部41は、ブロック単位で平坦であるか否かを判定するにあたっては、上述したようにDRの値を用いるようにしてもよいが、平坦であるか否かが判断できればDR以外のパラメータを用いるようにしてもよく、例えば、分散値を用いるようにしてもよいし、DRおよび分散値を併用して判定するようにしてもよい。
【0049】
クラスタリング部42は、ブロック除外判定部41より除外ブロックではないことを示すブロックのLMVと、遅延バッファ44にバッファリングされてくる所定数のクラスタ毎の代表ベクトルとの距離を算出する。そして、クラスタリング部42は、求めた距離の情報に基づいて、最も近いベクトルの属するクラスタに動きベクトルをクラスタリング(分類)し、LMVと共に決定したクラスタの情報を平均値算出部43−1乃至43−5、並びに、マージ分割部46に供給する。尚、クラスタリング部42の構成例については、図4を参照して詳細を後述する。
【0050】
平均値算出部43−1乃至43−5は、それぞれクラスタを示す情報およびLMVを取得すると共に、自らの属するクラスタに対応するLMVのみを記憶する。さらに、平均値算出部43−1乃至43−5は、自らのクラスタに属するLMVの平均値を各クラスタの代表ベクトルとして算出し、LMVの要素数の情報を付してGMV決定部45、および遅延バッファ44に供給する。尚、平均値算出部43の構成については、図5を参照して、詳細を後述する。
【0051】
遅延バッファ44は、平均値算出部43より供給されてくるクラスタ毎の平均値からなる代表ベクトルを一旦バッファリングすると共に、次のタイミングにおいて、各クラスタの代表ベクトルとしてクラスタリング部42に供給する。
【0052】
GMV決定部45は、平均値算出部43−1乃至43−5よりそれぞれ供給されてくる、各クラスタの平均値、すなわち、代表ベクトルの情報と共に、平均値の算出に使用されたLMVのクラスタ毎の要素数に基づいて、GMVを決定する。そして、GMV決定部45は、決定したクラスタの代表ベクトルをGMVとして出力する。
【0053】
マージ分割部46は、各クラスタ毎のLMVの分散、または共分散などに基づいて、クラスタの要素としてのLMVの分布から複数のクラスタをマージ(結合)したり、または、1のクラスタを複数のクラスタに分割する。マージ分割部46は、マージ、または分割したクラスタの情報に基づいて、遅延バッファ44にバッファリングされている各クラスタの代表ベクトルを変更する。すなわち、マージ分割部46は、分割、またはマージにより発生した新たなクラスタに属するLMVに基づいて平均値を求めて、それぞれのクラスタの代表ベクトルを求めて遅延バッファ44にバッファリングさせる。尚、クラスタの分割やマージは、必須処理ではないので、マージ分割部46については、処理負荷を低減し、処理を高速化する必要がある場合、省略する構成とするようにしてもよい。また、マージのみ、または、分割のみを行う構成とするようにしてもよい。
【0054】
[クラスタリング部]
次に、図4を参照して、クラスタリング部42の構成例について説明する。クラスタリング部42は、距離算出部51−1乃至51−5、およびクラスタ決定部52を備えている。距離算出部51−1乃至51−5は、それぞれ第1クラスタ乃至第5クラスタの代表値となるベクトルと、供給されてくるLMVとの距離を求めて、クラスタ決定部52に供給する。
【0055】
クラスタ決定部52は、距離算出部51−1乃至51−5より供給されてくるLMVと、遅延バッファ44より供給されてくる第1クラスタ乃至第5クラスタのそれぞれの代表ベクトルとの距離に基づいて、距離が最小となるクラスタにLMVを決定する。そして、クラスタ決定部52は、決定したクラスタの情報を平均値算出部43−1乃至43−5に供給する。
【0056】
[平均値算出部]
次に、図5を参照して、平均値算出部43の構成例について説明する。平均値算出部43は、加算部61、および除算部62を備えている。
【0057】
加算部61は、供給されてくるLMVのうち、自らのクラスタに分類されているLMVを累積的に加算し、加算結果LMV_sumを除算部62に供給する。このとき、累積しているLMVの数(クラスタに属するLMVの要素数)の情報も合わせて除算部62に供給する。除算部62は、加算結果LMV_sumをLMVの要素数で除することによりクラスタの平均値となる動きベクトルをクラスタにおける代表ベクトル、換言すれば、後述するGMVの候補となる動きベクトルとして求める。そして、除算部62は、算出した代表ベクトルと、そのクラスタの要素数の情報とをGMV決定部45、および遅延バッファ44に供給する。
【0058】
[符号化処理]
次に、図6のフローチャートを参照して、図1の画像符号化装置1による符号化処理について説明する。
【0059】
ステップS11において、処理対象となるフレーム番号の画像、およびその参照画像が供給されると、動きベクトル検出部11のダウンコンバート部21−1,21−2は、それぞれの画像を低解像度の画像にダウンコンバートする。尚、処理対象画像に対する参照画像については、ここでは、P画像(Pピクチャ:Predictive Picture)であるものとする。
【0060】
ステップS12において、ブロックマッチング部22は、ブロックマッチング処理を実行して、処理対象画像について、マクロブロック単位でLMVを検出し、GMV検出部23、およびアップコンバート部24−1に供給する。より詳細には、ブロックマッチング部22は、処理対象画像を、例えば、x画素×x画素などのマクロブロック単位で分割して順次抽出し、参照画像内のマクロブロックと総当りで照合し、最も類似しており一致しているとみなせるマクロブロックを、その位置と共に求める。そして、ブロックマッチング部22は、参照画像内のマクロブロックの位置と、求められた参照画像内で最も類似しており、一致しているとみなせるマクロブロックの位置とから処理対象画像におけるマクロブロック単位の動きベクトルを求める。ここで求められたマクロブロック単位の動きベクトルがLMVである。ブロックマッチング部22は、このような処理を全マクロブロックに対して実行して、各マクロブロックのLMVを検出して、GMV検出部23、およびアップコンバート部24−1に供給する。
【0061】
この際、ブロックマッチング部22は、SAD算出部22aを制御し、処理対象画像の各マクロブロックと、一致した参照画像のマクロブロックとのそれぞれの画素間の画素値の差分絶対値和SADを算出させる。また、ブロックマッチング部22は、シーンチェンジ検出部22bを制御して、処理対象画像と参照画像との間にシーンチェンジがあるか否かを検出させ、シーンチェンジフラグを生成させる。すなわち、通常、シーンチェンジが発生していれば、画像全体における画素間差分絶対値和は大きく変化するので、シーンチェンジ検出部22bは、画像全体の画素間差分絶対値和と所定の閾値との比較により、所定の閾値よりも高いとき、シーンチェンジが発生したことを示すフラグからなるSCFを生成する。また、それ以外のとき、シーンチェンジ検出部22bは、シーンチェンジが発生していないことを示すSCFを生成する。尚、シーンチェンジフラグSFCについては、撮像装置側から供給される構成とするようにしてもよい。さらに、ブロックマッチング部22は、DR検出部22cを制御して、処理対象画像の各マクロブロックにおける画素の画素値のダイナミックレンジDRを検出させる。そして、ブロックマッチング部22は、これらの差分絶対値和SAD、シーンチェンジフラグSCF、およびダイナミックレンジDRを、ローカル動きベクトルLMVに対応付けてGMV検出部23、およびアップコンバート部24−1に出力する。
【0062】
ステップS13において、GMV検出部23は、GMV検出処理を実行して、ブロックマッチング部22より供給されてくるLMVに基づいて、GMVを求めてアップコンバート部24−2に供給する。尚、GMV検出処理については、図7のフローチャートを参照して、詳細を後述する。
【0063】
ステップS14において、アップコンバート部24−1,24−2は、LMV、およびGMVの情報を、入力された処理対象画像、および参照画像の解像度に高解像度化した情報にアップコンバートして選択部25に供給する。
【0064】
ステップS15において、選択部25は、入力された処理対象画像の解像度に対応する各マクロブロック毎のLMV、およびGMVを用いた際のSATDおよびオーバヘッド部の情報をそれぞれ求め、LMV、およびGMVのうち、いずれも最小となるものをマクロブロック毎の動きベクトルに選択して符号化部12に出力する。
【0065】
より詳細には、選択部25は、マクロブロック毎にLMV、およびGMVのそれぞれを用いて、処理対象画像の各マクロブロックを移動させて画像を生成し、参照画像との各画素の差分絶対値和SATDを求めることにより、差分絶対値和SATDを求める。また、選択部25は、LMV、およびGMVのそれぞれを用いて、オーバヘッド部の情報を構成する。そして、選択部25は、LMV、およびGMVのそれぞれのSATD、およびオーバヘッド部の情報が最小となる動きベクトルを、処理対象画像におけるマクロブロック単位の動きベクトルとして出力する。
【0066】
ステップS16において、符号化部12は、処理対照画像、および参照画像と共に、ブロック単位の動きベクトルを利用して、処理対象画像を符号化する。
【0067】
以上の処理により、処理対象画像を符号化する。尚、以上においては、ダウンコンバート部21−1,21−2、およびアップコンバート部24−1,24−2によりLMV、およびGMVを求める際に低解像度化した画像を用いる例について説明してきた。しかしながら、この処理は、処理負荷を軽減させることで、全体として処理速度を向上させるためのものであり、ハードウェアの処理能力に余裕がある限り必ずしも必要な処理ではない。従って、ダウンコンバート部21−1,21−2、およびアップコンバート部24−1,24−2は上述の処理を実現する上で、必須となる構成ではない。
【0068】
[GMV検出処理]
次に、図7のフローチャートを参照して、GMV検出処理について説明する。
【0069】
ステップS31において、ブロック除外判定部41は、処理対象とする画像のうち、全てのブロックについて処理がなされたか否かを判定する。ステップS31において、例えば、未処理のブロックが存在する場合、処理は、ステップS32に進む。
【0070】
ステップS32において、ブロック除外判定部41は、未処理のブロックを処理対象ブロックに設定する。
【0071】
ステップS33において、ブロック除外判定部41は、処理対象ブロックが除外対象のマクロブロックであるか否かを判定する。より詳細には、ブロック除外判定部41は、処理対象ブロックのマクロブロック単位の差分絶対値和SADが所定の閾値よりも大きい、ダイナミックレンジDRが所定の閾値よりも小さい、または、処理対象ブロックの画像内における位置が処理対象画像の端部近傍である場合、除外対象ブロックであるとみなす。すなわち、差分絶対値和SADが所定の閾値よりも大きいということは、動きベクトルの始点のブロックと終点のブロックとの変化が大きいと考えられるため動きベクトルとしては信頼性が低いと考えられるので除外対象ブロックであるとみなされる。また、ダイナミックレンジDRが所定の閾値よりも小さいということは、処理対象画像における処理対象ブロックの画像が平坦であり、ブロックマッチングによる検索には不向きであるので、除外対象ブロックであるものとみなされる。さらに、処理対象ブロックの画像内における位置が処理対象画像における端部近傍である場合、動きベクトルの始点となるブロック、または終端となるブロックが、フレーム外であるようなものである可能性があるため、ブロックマッチングには適していないため、除外対象ブロックであるものとみなされる。
【0072】
ステップS33において、例えば、処理対象ブロックが、除外対象となるブロックである場合、処理は、ステップS34に進む。
【0073】
ステップS34において、ブロック除外判定部41は、処理対象ブロックが除外対象ではないことを示す除外対象フラグをクラスタリング部42に供給する。クラスタリング部42は、処理対象ブロックのLMVをクラスタに分類し、クラスタの情報を平均値算出部43−1乃至43−5およびマージ分割部46に供給する。より詳細には、クラスタリング部42の距離算出部51−1乃至51−5は、例えば、図8で示されるように、遅延バッファ44より供給されてくる5個の黒丸で示される各クラスタ毎の代表ベクトルと、白丸で示される処理対象ブロックのLMVとの距離を、例えば、ユークリッド距離や差分絶対和を用いて計算し、計算した距離の情報をクラスタ決定部52に供給する。そして、クラスタ決定部52は、処理対象ブロックのLMVを、各距離算出部51−1乃至51−5により計算された距離のうち、最小距離となる代表ベクトルを持つクラスタに分類する。すなわち、図8においては、楕円で囲まれるように、白丸で示される処理対象ブロックのLMVは、距離が最小となる黒丸の代表ベクトルで代表されるクラスタに分類される。尚、最初の処理においては、遅延バッファ44には、各クラスタの代表ベクトルが存在しないため、クラスタリング部42は、デフォルトで設定されるクラスタ毎の代表ベクトルを用いて、処理対象ブロックの動きベクトルをクラスタに分類する。
【0074】
一方、ステップS33において、除外対象ブロックであるとみなされた場合、ブロック除外判定部41は、処理対象ブロックが除外対象ブロックであることを示すフラグをクラスタリング部42に供給する。この際、クラスタリング部42は、処理対象ブロックのLMVに対するクラスタを分類せず、例えば、−1などの除外対象ブロックであることを示す値をクラスタに設定して、平均値算出部43−1乃至43−5、およびマージン分割部46に供給する。
【0075】
全てのマクロブロックについて処理が終了するまで、ステップS31乃至S35の処理が繰り返される。すなわち、全てのマクロブロックは、除外対象ブロックであるか否かが判定されて、除外対象ブロックとはならない全てのマクロブロックが、所定のクラスタのいずれかに分類される処理が繰り返されると、ステップS31において、全てのブロックについて処理がなされたものとみなされて、処理は、ステップS36に進む。
【0076】
ステップS36において、平均値算出部43−1乃至43−5は、それぞれのクラスタに分類されてきたLMVの平均値を算出して、GMV決定部45に供給する。より詳細には、加算部61は、供給されてくるLMVのうち、自らのクラスタに分類されているLMVを累積的に加算し、累積しているLMVの要素数の情報と共に、加算結果LMV_sumを除算部62に供給する。さらに、除算部62は、加算結果LMV_sumをLMVの要素数で除することによりクラスタの平均値となる動きベクトルをクラスタにおける代表ベクトルとして求める。そして、除算部62は、各クラスタのLMVの平均値として求めた代表ベクトルと、そのクラスタに分類されたLMVの数である要素数の情報をGMV決定部45、および遅延バッファ44に供給する。すなわち、例えば、図9の黒丸で示されるLMVのうち、楕円で囲まれるクラスタ毎に、白丸で示される平均値が代表ベクトルとして求められる。
【0077】
ステップS37において、GMV決定部45は、クラスタ毎に供給されてくる各クラスタの平均値となる代表ベクトルと、そのクラスタの要素数の情報を取得し、クラスタの要素数が最も多いクラスタの平均値となる代表ベクトルをGMVとして出力する。例えば、図10で示されるように、ボールを蹴る人物からなるオブジェクトB1、ボールからなるオブジェクトB2、帽子を被った人物からなるオブジェクトB3、および背景からなるオブジェクトB4のそれぞれを含む処理対象画像である場合について考える。図10の処理対象画像の場合、以上の処理により、オブジェクトB1乃至B4のそれぞれに対応するクラスタにLMVが分類されて、それぞれのクラスタの代表ベクトルが、オブジェクトB1乃至B4に対応する動きベクトルV1乃至V4として求められ、これがGMV決定部45に供給される。さらに、GMV決定部45は、各クラスタの代表ベクトルとして求められるオブジェクト毎の動きベクトルV1乃至V4のうち、その要素数の多い動きベクトルをGMVとして決定する。すなわち、GMV決定部45は、画像内における要素数の多い、すなわち、多くのマクロブロックを含む表面積が広いオブジェクトに対応付けて求められるLMVの平均値である代表ベクトルをGMVとして決定して出力する。
【0078】
ステップS38において、遅延バッファ44は、平均値算出部43−1乃至43−5より供給されてきた各クラスタのLMVの平均値を、各クラスタの代表ベクトルとして遅延させてバッファリングさせる。すなわち、各クラスタの代表ベクトルは、直前のフレーム画像でクラスタリングされた各クラスタのLMVの平均値とされる。
【0079】
ステップS39において、マージ分割部46は、クラスタリング部42からの各クラスタのLMVの分布から得られる分散、または共分散に基づいて、クラスタをマージする必要があるか否かを判定する。すなわち、例えば、図11で示されるように、実線で示されるクラスタC1乃至C5に分類される場合、クラスタC4,C5については、分散が小さく、1つのクラスタとみなす必要があるとき、マージが必要であると判定される。ステップS39において、このように複数のクラスタをマージする必要があると判定された場合、処理は、ステップS40に進む。
【0080】
ステップS40において、マージ分割部46は、マージが必要と認められた複数のクラスタを1のクラスタにマージする。すなわち、図11の場合、実線で示されるクラスタC4,C5が、点線で示される1のクラスタC6にマージされる。このとき、マージ分割部46は、これまでのLMVの分類結果であるクラスタC4,C5に属するLMVについてマージして、例えば、図11の白丸で示される平均値を求め、遅延バッファ44にバッファリングされている代表ベクトルのうち、クラスタC4,C5に対応する代表ベクトルをクラスタC6の代表ベクトルで置換させてバッファリングさせる。従って、図11の場合、以降においては、クラスタC1乃至C3、およびC6の4種類のクラスタに分類されることになる。
【0081】
尚、ステップS39において、マージの必要がないと判定された場合、ステップS40の処理がスキップされる。
【0082】
ステップS41において、マージ分割部46は、クラスタリング部42からの各クラスタのLMVの分布から得られる分散、または共分散に基づいて、クラスタを分割する必要があるか否かを判定する。すなわち、例えば、図11で示されるように、クラスタC1乃至C3およびC6の合計4種類のクラスタであった場合、クラスタC6については、分散が大きく、2つのクラスタにみなす必要があるとき、分割が必要であるとみなされる。ステップS41において、このように1のクラスタを複数のクラスタに分割する必要があると判定された場合、処理は、ステップS42に進む。
【0083】
ステップS42において、マージ分割部46は、分割が必要と認められたクラスタを複数のクラスタに分割する。すなわち、図11の場合、マージ分割部46は、クラスタC6に属するLMVの分布に基づいて、C6に属していたLMVを、図11で示されるように、2のクラスタC4,C5に分割する。さらに、マージ分割部46は、分割されたクラスタC4,C5に属するLMVの平均値を、平均値算出部43と同様の計算手法で求める。そして、マージ分割部46は、クラスタC6の代表ベクトルに代えて、求めたクラスタC4,C5の代表ベクトルを遅延バッファ44にバッファリングさせる。
【0084】
以上の処理により、フレーム画像単位で、順次GMVを求めることが可能となる。このように、マクロブロック毎のLMVをクラスタに分類することにより、実質的にオブジェクト単位で分類し、さらに、クラスタ毎に、すなわちオブジェクト毎に代表ベクトルを求めるようにすることで、GMVの候補となる動きベクトルを求めることが可能となる。そして、それらのGMVの候補となるオブジェクト毎の代表ベクトルのうち、要素数が最も多い、すなわち、画像内における占有面積の多い代表ベクトルがGMVとして選択されて出力される。
【0085】
結果として、画像内における支配的要素の大きな、すなわち、画像内における占有面積の大きなオブジェクトの動きベクトルを画像におけるグローバル動きベクトルとして求めることが可能となる。尚、以上においては、クラスタ数が5である場合について説明しているが、クラスタ数は、5個に限るものではなく、この他の個数であってもよい。
【0086】
<2.第2の実施の形態>
[フォールバックモードを備えたGMV検出部]
以上においては、クラスタ毎に分類されたLMVの平均値となる代表ベクトルがGMVの候補として算出されて、最も要素数の多いクラスタの代表ベクトルがGMVとして選択される例について説明してきた。しかしながら、処理対象画像と参照画像との間にシーンチェンジが発生していたり、各クラスタの要素がいずれも少ない場合については、求められる代表ベクトルや各クラスタに分類された代表ベクトルなどの信頼性が低いことが予想される。このような場合、処理対象画像において求められたGMVとして、直前の画像のGMVをそのまま用いたり、ゼロベクトルを採用するようにしてもよい。
【0087】
図12は、求められたGMVの候補となる代表ベクトルの信頼性が低い場合、直前の画像のGMVやゼロベクトルをGMVに採用するようにしたGMV検出部23の構成例を示している。尚、この求められたクラスタ毎の代表ベクトルの信頼性が低いモードを、以降においては、フォールバックモードと称するものとする。また、フォールバックモードには、シーンチェンジに伴う第1のパターンと、クラスタ毎の要素数が少ないことに伴う第2のパターンとが存在する。
【0088】
また、図12のGMV検出部23において、図3のGMV検出部23における構成と同一の機能を備えた構成については、同一の名称および同一の符号を付しており、その説明は適宜省略するものとする。
【0089】
すなわち、図12のGMV検出部23において、図3のGMV検出部23と異なる点は、GMV決定部45の後段にフォールバック判定部71、およびGMV使用判定部72をさらに設けた点である。
【0090】
フォールバック判定部71は、シーンチェンジフラグがシーンチェンジを示す状態であるか否かに基づいて、第1のパターンのフォールバックモードであるか否かを判定する。また、フォールバック判定部71は、要素数が最大となるクラスタの要素数の、処理対象画像における端部近傍を除いたマクロブロック数に対する割合が所定の閾値よりも大きいか否かを判定し、第2のパターンのフォールバックモードであるか否かを判定する。さらに、フォールバック判定部71は、平均値算出部43−1乃至43−5より供給されてくる各クラスタの代表ベクトル、およびGMV決定部45より供給されてくるGMVを、それぞれ直前の1フレーム分記憶する。
【0091】
そして、フォールバック判定部71は、第1のパターンのフォールバックモードであると判定した場合、第1のパターンのフォールバックモードであることを示す判定結果と共に、ゼロベクトルをGMV使用判定部72に供給する。このとき、フォールバック判定部71は、遅延バッファ44に記憶されているクラスタ毎の代表ベクトルを初期値に設定する。また、フォールバック判定部71は、フォールバックモードであると判定した場合、第2のパターンであるとき、第2のパターンのフォールバックモードであることを示す判定結果と共に、直前のフレームのGMVをGMV使用判定部72に供給する。このとき、フォールバック判定部71は、遅延バッファ44に記憶しているクラスタ毎の代表ベクトルを、自らが記憶している直前のクラスタ毎の代表ベクトルに設定させる。さらに、フォールバック判定部71は、フォールバックモードではない場合、フォールバックモードではないことを示す判定結果をGMV使用判定部72に供給する。
【0092】
GMV使用判定部72は、フォールバック判定部71より供給されてくる判定結果に基づいて、GMV決定部45より供給されてくるGMV、直前のフレーム画像のGMV、またはゼロベクトルのいずれかを出力する。より詳細には、第1のパターンのフォールバックモードであることを示す判定結果である場合、GMV使用判定部72は、併せてフォールバック判定部71より供給されてくるゼロベクトルを、処理対象画像のGMVとして出力する。また、第2のパターンのフォールバックモードであることを示す判定結果である場合、GMV使用判定部72は、併せてフォールバック判定部71より供給されてくる、1フレームだけ直前の画像のGMVを、処理対象画像のGMVとして出力する。さらに、フォールバックモードではないことを示す判定結果である場合、GMV使用判定部72は、GMV決定部45より供給されてくるGMVを、そのまま処理対象画像のGMVとして出力する。
【0093】
[GMV算出処理]
次に、図13のフローチャートを参照して、図12のGMV検出部23におけるGMV検出処理について説明する。尚、図13のフローチャートにおけるステップS61乃至S67,S70乃至S74の処理は、図7のフローチャートを参照して説明したステップS31乃至S42の処理と同様であるので、その説明は省略するものとする。
【0094】
すなわち、ステップS61乃至S67において、全てのブロックに対して除外対象ブロックであるか否かが判定されて、除外対象ブロックではないマクロブロックについて、LMVがクラスタリングされ、クラスタ毎に代表ベクトルが求められ、クラスタ毎に最も要素数の多い代表ベクトルがGMVとして選択される。このとき、各クラスタの代表ベクトルが、フォールバック判定部71に供給される。
【0095】
そして、ステップS68において、フォールバック判定部71は、シーンチェンの発生の有無、およびグローバル動きベクトルGMVとして決定されたベクトルのクラスタの要素数に基づいてフォールバックモードであるか否か判定する。ステップS68において、例えば、フォールバックモードであると判定された場合、処理は、ステップS75に進む。
【0096】
ステップS75において、フォールバック判定部71は、第1のパターンのフォールバックモードであるか否かを判定する。ステップS75において、例えば、シーンチェンジフラグがシーンチェンジを示すフラグである場合、第1のパターンのフォールバックモードであるものと判定され、処理は、ステップS76に進む。
【0097】
ステップS76において、フォールバック判定部71は、GMVとしてゼロベクトルをGMV使用判定部72に供給する。これに応じて、GMV使用判定部72は、処理対象画像のGMVとしてゼロベクトルを出力する。すなわち、シーンチェンジが発生しているため、処理対象画像は、動画として連続的に供給される先頭画像であると考えられるので、累積的に求められた画像のローカル動きベクトルとは異なるものである可能性が高いので、動きがないことを前提とした処理とする。
【0098】
ステップS77において、フォールバック判定部71は、遅延バッファ44に記憶されている代表ベクトルを初期値となるベクトルに設定する。すなわち、シーンチェンジが発生しているので、累積的に求められて遅延バッファ44にバッファリングされている各クラスタの代表ベクトルが一旦破棄されて、初期値となる代表ベクトルが設定される。
【0099】
一方、ステップS75において、シーンチェンジフラグに基づいて、処理対象画像においてシーンチェンジがないとみなされた場合、GMVとして決定されたベクトルのクラスタの要素数の、画像全体のマクロブロック数から画像端部のマクロブロック数を減算した総数に対する割合が所定の閾値よりも低いために、フォールバックモードになったものとみなされ、処理は、ステップS78に進む。
【0100】
すなわち、例えば、図14で示される処理対象画像内にマス目状に設定された各マクロブロックのうち、白色で示されるマクロブロックの代表ベクトルがGMVとして選択されているものとする。この場合、処理対象画像の端部のマクロブロックを除いた総ブロック数に対する、要素数の最も多い図14の白色で示されたマクロブロックの要素数の割合が所定の閾値よりも低いことになる。すなわち、今の場合、処理対象画像の端部のブロックを除いた総ブロック数に対する、図14の白色で示された要素数の最も多いブロックの要素数の割合が所定の閾値よりも高くなく、GMVとしての信頼性が低いとみなされ、フォールバックモードであると判定されている。尚、図14においては、画像全体をマクロブロックに分割したときの配置となるように、マス目が設定されており、各マス目には、対応するマクロブロックが分類されたクラスタ毎の色が付されている。このうち、グレーが付されたマス目に対応するマクロブロックは、除外対象ブロックであることが示されており、白色のマス目に対応するマクロブロックのLMVが、要素数の最も多いクラスタに分類されたことが示されている。
【0101】
そこで、ステップS78において、フォールバック判定部71は、記憶している直前の画像のGMVをGMV使用判定部72に供給する。これに応じて、GMV使用判定部72は、処理対象画像のGMVとして、直前の画像におけるGMVを出力する。すなわち、処理対象画像のGMVを決定するには、クラスタに分類される代表ベクトルの要素数が少ないことから信頼性が低いとみなされているので、直前の画像における信頼性の保証されたグローバル動きベクトルGMVを、そのまま使用する。
【0102】
ステップS79において、フォールバック判定部71は、遅延バッファ44に記憶されている代表ベクトルを、自らが記憶していている直前の画像においてクラスタ毎に求められた代表ベクトルに設定する。すなわち、GMVを決定するには、クラスタに分類される代表ベクトルを決定するための要素数となるLMVが少ないことから信頼性が低いといなされているので、直前の画像で求められている各クラスタの代表ベクトルが、遅延バッファ44の代表ベクトルとして設定される。
【0103】
一方、ステップS68において、フォールバックモードではないと判定された場合、ステップS69において、フォールバック判定部71は、フォールバックモードではないことを示す判定結果をGMV使用判定部72に供給する。GMV使用判定部72は、この判定結果に基づいて、GMV決定部45より供給されてくるGMVをそのまま出力する。この場合、ステップS70において、遅延バッファ44は、平均値算出部43−1乃至43−5より供給されてきた代表ベクトルを、そのまま記憶する。
【0104】
以上の処理により、例えば、動画像が、図15の上段で示されるように、時刻t0において、「X」で示される画像が供給された後、時刻t1において、画像が供給されるとき、シーンチェンジにより第1のパターンのフォールバックモードであるものとして判定される。この場合、GMVはゼロベクトルとして出力され、遅延バッファ44には、クラスタ毎の代表ベクトルとして、初期値となる代表ベクトルが設定される。また、時刻t2乃至t8において、図15の上段の「F」で示されるように、第2のパターンによりフォールバックモードが連続的に検出される場合、その間は、直前のGMVであるゼロベクトルが出力され続けることになり、また、遅延バッファ44には、クラスタ毎の代表ベクトルとして初期値となる代表ベクトルが設定され続ける。そして、時刻t9において、図15の上段の「T」で示されるように、フォールバックモードが検出されない状態になると、各処理対象画像で求められるGMVが出力され、順次、求められたクラスタ毎の代表ベクトルが、遅延バッファ44において、各クラスタの代表ベクトルとして記憶される。
【0105】
また、例えば、動画像が、図15の下段で示されるように、時刻t0において「X」で示される画像が供給された後、時刻t1において画像が供給されるとき、シーンチェンジにより第1のパターンのフォールバックモードであるものとして判定される。この場合、GMVはゼロベクトルとして出力され、遅延バッファ44には、クラスタ毎の代表ベクトルとして、初期値となる代表ベクトルが設定される。時刻t2乃至t4において、図15の下段の「T」で示されるように、フォールバックモードが検出されない状態になると、各処理対象画像で求められるGMVが出力され、順次、求められたクラスタ毎の代表ベクトルが、遅延バッファ44において、各クラスタの代表ベクトルとして記憶される。さらに、時刻t5乃至t11において、図15の下段の「F」で示されるように、第2のパターンによりフォールバックモードが連続的に検出される場合、その間は、GMVが検出されていた時刻t4において求められたGMVが出力され続けることになり、また、遅延バッファ44には、クラスタ毎の代表ベクトルとして、時刻t4において求められた各クラスタの代表ベクトルが設定され続ける。
【0106】
そして、時刻t12において、図15の下段の「T」で示されるように、フォールバックモードが検出されない状態になると、再び、それ以降において、各処理対象画像で求められるGMVが出力され、順次、求められたクラスタ毎の平均値となる代表ベクトルが、遅延バッファ44において、各クラスタの代表ベクトルとして記憶される。
【0107】
結果として、信頼性の低いGMVについては、シーンチェンジにおいてはゼロベクトルとし、それ以降においては直前の画像におけるグローバル動きベクトルを用いるようにすることができるので、信頼性の高いグローバル動きベクトルGMVを選択することが可能となる。また、信頼性の低いグローバル動きベクトルGMVについては、シーンチェンジにおいては、クラスタ毎の代表ベクトルが初期値に設定され、それ以降においては、直前の画像におけるクラスタ毎の代表ベクトルがそのまま設定されることになるので、信頼性の高い画像が続くとき、累積的にブロック毎のクラスタリングをより正確なものとすることができるので、クラスタ毎のローカル動きベクトルLMVの平均値となるグローバル動きベクトルGMVの候補となる動きベクトルを正確に求めることが可能となる。
【0108】
<3.第3の実施の形態>
[アフィン変換(射影変換)に対応したGMV検出部]
以上においては、入力される画像が、固定された撮像装置などにより撮像された画像であることが前提となったものであったが、撮像装置が撮像方向や角度を変化させながら撮像する(回転、ズームアップ、ズームアウト、およびあおりなどを含む)と、例えば、図16で示されるような第1の画像として画像frame#0が撮像された後、第2の画像として画像frame#1が撮像されて、動画像として連続的に供給されてくるような場合、画像frame#0内における(x,y)を基準としたとき、画像frame#1内における(x',y')との対応関係から動きベクトルを表現できるようにしてもよく、このように撮像方向や角度が異なる画像を連続的に処理しつつ、GMVを検出できるようにしてもよい。
【0109】
図17は、撮像方向や角度が異なる画像を連続的に処理しつつ、GMVを検出できるようにしたGMV検出部23の構成例を示している。尚、図17のGMV検出部23の構成において、図3のGMV検出部23における構成と同一の機能を備えた構成については、同一の名称および同一の符号を付しており、その説明は適宜省略するものとする。図17のGMV検出部23において、図3のGMV検出部23と異なるのは、平均値算出部43−1乃至43−5に代えて、最適係数算出部101−1乃至101−5を備えている点である。
【0110】
最適係数算出部101−1乃至101−5は、図3のGMV検出部23における平均値算出部43−1乃至43−5に対応するものである。すなわち、最適係数算出部101−1乃至101−5は、ブロック単位で、各クラスタの最適係数(初期値)からブロック座標の並進ベクトルを算出し、当該ブロック座標のLMVとの距離を、例えば、差分絶対値和やユークリッド距離を用いて求め、一番距離が近くなるクラスタに分類する。そして、最適係数算出部101−1乃至101−5は、最適係数を代表ベクトルを特定する情報として出力する。
【0111】
[図17のGMV検出部によるGMV検出処理]
次に、図18のフローチャートを参照して、GMV検出処理について説明する。尚、図18のフローチャートにおけるステップS101乃至S112のうち、ステップS106の処理を除く処理については、図7のステップS31乃至S42のうち、ステップS36以外の処理と同様であるので、その説明は省略するものとする。
【0112】
すなわち、図18のフローチャートにおいて、図7のフローチャートと異なるのは、ステップS36の平均値を算出する処理に代えて、ステップS106の最適係数を算出する処理としたことである。
【0113】
[アフィン変換による最適係数の算出方法]
ここで、最適係数の算出方法について説明する。
【0114】
例えば、図19の左部で示されるように、画像内の1点を基準点(xn,yn)として考えるとき、この点における動きベクトルが動きベクトル(mvxn,mvyn)であるとすれば、基準点(xn,yn)が動きベクトルにより移動されると、移動点(xn+mvxn,yn+mvyn)で表現されることになる。尚、nは、各クラスタを識別する識別子である。
【0115】
しかしながら、この移動点(xn+mvxn,yn+mvyn)はアフィン変換により、図19の右部で見られるような点線で示される動きベクトルにより変換点(x'n,y'n)に移動しているものと考えられる。ここで、変換点のx座標およびy座標は、以下の式(1)で表現される。
【0116】
【数1】

【0117】
ここで、式(1)においては、識別子nは表示されておらず、a0,a1,a2,b0,b1,b2は、それぞれ基準点を変換点にアフィン変換するときの係数を示している。尚、図19の右部においては、識別子nを付してアフィン変換するときの座標が示されている。また、a2=b1=0、かつ、a1=b2=1の場合、並進となる。
【0118】
そこで、図20で示されるように、この移動点(xn+mvxn,yn+mvyn)と変換点(x'n,y'n)との誤差Eを以下の式(2)のように定義する。
【0119】
【数2】

【0120】
すなわち、誤差Eは、移動点(xn+mvxn,yn+mvyn)と変換点(x'n,y'n)との空間的な距離として求められる。
【0121】
さらに、この誤差Eに基づいて、以下の式(3)で示されるようなコストCを定義する。
【0122】
【数3】

【0123】
ここで、「全MB」とは、識別子nが、同一のクラスタにおける全てのマクロブロックについての総和であることを示している。
【0124】
すなわち、コストCが最小となるときの係数a0,a1,a2,b0,b1,b2が最適な係数となる。
【0125】
そこで、式(3)に基づいて、各係数について偏微分したとき、それぞれが0となるように以下の式(4)で示されるような連立方程式が求められる。
【0126】
【数4】

【0127】
さらに、この連立方程式を解くと、以下の式(5)で示されるように最適な係数a0,a1,a2,b0,b1,b2が求められる。
【0128】
【数5】

【0129】
ここで、varは分散を、covは共分散をそれぞれ示している。
【0130】
すなわち、ステップS106において、最適係数算出部101−1乃至101−5は、以上の手法により係数a0,a1,a2,b0,b1,b2を各クラスタに対して最適係数値として算出する。すなわち、最適係数算出部101−1乃至101−5は、各ブロック位置のベクトルを最適係数値とブロックの位置(ブロックの座標)から算出し、最適係数値をクラスタの代表値(最適係数)として出力し、遅延バッファ44にバッファリングさせる。
【0131】
[重み付きアフィン変換による最適係数の算出方法]
また、各クラスタの代表ベクトルは、処理対象画像内におけるオブジェクトごとの動きベクトルでもあることは上述した通りである。したがって、上述した処理では、オブジェクト毎に均質な処理により動きベクトルが求められることになる。しかしながら、例えば、図21の左部で示されるように平坦な画像内に動きのない家からなるオブジェクトHと、動きのある自動車からなるオブジェクトCとが存在するような場合について考える。この場合、これらのオブジェクトに対する処理を均等に処理すると、動きのあるオブジェクトCの代表ベクトルが採用されるとき、動きのないオブジェクトHの画像が動きのあるオブジェクトの代表ベクトルで処理されることにより画像が破綻する恐れがある。そこで、このような場合には、動きの大きさに応じて、代表ベクトルの評価に重みを付するようにして、動きの大きなオブジェクトCの動きベクトルよりも、動きのないオブジェクトHの動きベクトルを優先させるようにしてもよい。
【0132】
そこで、図21で右部においては、クラスタ毎に代表される動きベクトル、すなわち、オブジェクト毎の動きベクトルの大きさに応じて重みを設定するようにした例を示している。すなわち、図21の右部では、横軸が代表ベクトルMVの長さを、縦軸が重みwの大きさを表している。これによれば、代表ベクトルの長さMVが0乃至Lであるときは、重みwが1.0に設定され、動きベクトルの長さMVがL乃至2Lであるときは、重みwが0.5に設定され、動きベクトルの長さMVが2L乃至3Lであるときは、重みwが0.25に設定され、動きベクトルの長さMVが3L乃至4Lであるときは、重みwが0.125に設定されている。すなわち、図21の左部で示される画像のように、平坦な画像内に動きのない家のオブジェクトHと動きのある車のオブジェクトCとのそれぞれの代表ベクトルについては、上述した手法では、例えば、以下の式(6)で示されるようにコストCが設定されることになる。
【0133】
【数6】

【0134】
しかしながら、図21の右部で示されるように重みwが設定される場合、以下の式(7)で示されるように、コストCが設定される。
【0135】
【数7】

【0136】
ここで、wは、クラスタ毎、すなわち、オブジェクト毎に代表ベクトルの大きさに基づいて設定される重みを示している。
【0137】
式(7)の場合においては、コストCを最小とすることにより、以下の式(8)で示されるように係数a0,a1,a2,b0,b1,b2が算出される。
【0138】
【数8】

【0139】
ここで、式(8)における分散、および共分散は、以下の式(9),式(10)で示されるようにそれぞれ定義される。
【0140】
【数9】

【0141】
【数10】

【0142】
このように、クラスタ毎に動きベクトルの大きさに基づいて、コストCに重みを設定して係数を算出することにより、動きの少ないオブジェクトの代表ベクトルが優先的にGMVに作用されることになる。
【0143】
[射影変換による最適係数の算出方法]
以上においては、最適係数算出部101がアフィン変換により動きベクトルを求める例について説明してきたが、アフィン変換に代えて射影変換とするようにしてもよい。この場合、最適係数算出部101は、以下のような処理により射影変換により最適な係数を算出する。
【0144】
例えば、図22の左部で示されるように、画像内の1点を基準点(xn,yn)として考えるとき、この点における動きベクトルが動きベクトル(mvxn,mvyn)であるとすれば、基準点(xn,yn)が動きベクトルにより移動されると、移動点(xn+mvxn,yn+mvyn)で表現されることになる。尚、nは、各クラスタを識別する識別子である。
【0145】
しかしながら、この移動点(xn+mvxn,yn+mvyn)は射影変換により、図22の右部で見られるような点線で示される動きベクトルにより変換点(x'n,y'n)に移動しているものと考えられる。ここで、変換点のx座標およびy座標は、以下の式(11)で表現される。
【0146】
【数11】

【0147】
ここで、式(11)においては、識別子nは表示されておらず、a0乃至a8は、それぞれ基準点を変換点に射影変換するときの係数を示している。尚、図22の右部においては、識別子nを付して射影変換するときの座標が示されている。
【0148】
そこで、クラスタリング部42によりクラスタ毎に分類されてくる各ブロックの動きベクトル(X1,Y1),(X2,Y2),(X3,Y3),・・・を上述した式(11)に代入することにより、以下のような式(12)で示されるような行列式からなる観測方程式が生成される。
【0149】
【数12】

【0150】
この行列式を以下の式(13)に変換する。
【0151】
【数13】

【0152】
ここで、qは、式(12)における左辺であり、Aは式(12)の左辺の先頭に存在する行列式であり、pは、式(12)における係数a0乃至a8からなる行列式である。
【0153】
この式(13)を以下の式(14)のように変形して、行列式pを構成する係数a0乃至a8の各値が特定されることにより、最適係数が算出される。
【0154】
【数14】

【0155】
ここで、(ATA)は、以下の式(15)で示され、ATqは、以下の式(16)で示される。
【0156】
【数15】

【0157】
【数16】

【0158】
以上のように、最適係数算出部101−1乃至101−5は、射影変換により各クラスタの代表ベクトルを表現する最適係数を算出することができる。結果として、画像を撮像する際に、回転、ズーム、またはあおりといった撮像状態が連続的に変化するような画像であっても適切な動きベクトルを検出することが可能となる。尚、最適係数算出部101−1乃至101−5は、図12のGMV算出部23においても、平均値算出部43−1乃至43−5に代えて適用するようにしてもよい。
【0159】
<4.第4の実施の形態>
[ゼロベクトルを選択肢とする選択部を含む画像符号化装置]
以上においては、各マクロブロックに、LMVであるか、GMV検出部23により検出されたGMVであるかを選択する例について説明してきた。しかしながら、平坦部やノイズの影響で、LMVおよびGMVのいずれの動きベクトルでも正確に求められない恐れがある。このような場合、そのいずれかを必ず選択する構成とすると符号化の精度を低減させる恐れがある。そこで、マクロブロック単位の動きベクトルを決定するに当り、LMVおよびGMVに加えて、ゼロベクトルを選択肢にできるようにしてもよい。
【0160】
図23は、マクロブロック単位の動きベクトルとして、LMVおよびGMVに加えて、ゼロベクトルを選択肢にできるようにした動きベクトル検出部11の構成例が示されている。尚、図23の動きベクトル検出部11における構成のうち、図2の動きベクトル検出部11の構成と同一の機能を備えた構成については、同一の名称、および同一の符号を付しており、その説明は適宜省略するものとする。
【0161】
すなわち、図23の動きベクトル検出部11において、図2の動きベクトル検出部11と異なる点は、GMV選択部201を新たに設けた点である。
【0162】
GMV選択部201は、ブロックマッチング部22より供給されてくるブロック単位のローカル動きベクトルLMVと、GMV検出部23より供給されてくるGMVを比較し、所定の程度以上に一致しているか否かを判定する。そして、両者の動きベクトルが一致しているとき、GMV選択部201は、いずれの動きベクトルの精度も低いものとしてゼロベクトルを選択し、それ以外のとき、GMV検出部23より供給されてくるGMVを出力する。
【0163】
[図23の動きベクトル検出部を含む画像符号化装置による符号化処理]
次に、図24のフローチャートを参照して、図23の動きベクトル検出部11を含む画像符号化装置1により符号化処理について説明する。尚、図24のフローチャートにおいて、ステップS201乃至S209のうち、ステップS204乃至S206を除く処理については、図6のフローチャートを参照して説明したステップS11乃至S16の処理と同様であるので、その説明は省略する。
【0164】
すなわち、ステップS201乃至S203の処理により、ブロックマッチング部22によりローカル動きベクトルLMVが求められ、さらに、GMV検出部23によりグローバル動きベクトルGMVが求められると、処理は、ステップS204に進む。
【0165】
ステップS204において、GMV選択部201は、ブロックマッチング部22より供給されてくるマクロブロック単位のLMVと、GMV検出部23より供給されてくるGMVとの距離が0または略ゼロであるか否かに基づいて、両者が一致するか否かを判定する。
【0166】
ステップS204において、例えば、ローカル動きベクトルLMVおよびグローバル動きベクトルGMVとの距離が所定の閾値より小さく0であるか、略ゼロに近い値であり、両者が略一致、または一致しているとみなされる場合、処理は、ステップS205に進む。
【0167】
ステップS205において、GMV選択部201は、両者の精度が共に低いものとしてゼロベクトルをGMVとして出力する。
【0168】
一方、ステップS204において、ローカル動きベクトルLMVおよびグローバル動きベクトルGMVとの距離が所定の閾値よりも小さく、略ゼロに近い値でも、0でもなく、すなわち、両者が一致していないとみなされるとき、処理は、ステップS206に進む。
【0169】
ステップS206において、GMV選択部201は、GMV検出部23より供給されてくるGMVをそのまま出力する。
【0170】
以上の処理により、平坦部やノイズの影響などで、LMVやGMVが正しく求められない状態でも、ゼロベクトルがグローバル動きベクトルGMVとして出力されることで、符号化精度を不要に大きく低減するといったことを防止させることが可能となる。
【0171】
<5.第5の実施の形態>
[ゼロベクトルをGMV選択肢とする選択部を含む、オブジェクト毎に動きベクトルを求める画像符号化装置]
以上においては、画像内に複数のオブジェクトがある場合、撮像方向が変化するとき、各オブジェクトの動きは変わらない例について説明してきた。しかしながら、例えば、図25で示されるように、各側面に斑模様が設けられているような立方体状の物体を、撮像位置を変えながら撮像するようにする場合、立方体状の物体の各面は異なる動きをするため、斑からなるオブジェクトは、アフィン変換などを利用して求めても、1の動きベクトルでは表現することができない。そこで、GMVに対応する動きベクトルをオブジェクト毎にオブジェクト動きベクトルObjectMV(以降、単にObjectMVとも称するものとする)として出力するようにしてもよい。
【0172】
図26は、画像内に存在するオブジェクト毎にGMVに対応するObjectMVを出力するようにした画像符号化装置1の動きベクトル検出部11の構成例を示している。尚、図26の動きベクトル検出部11における構成のうち、図2の動きベクトル検出部11の構成と同一の機能を備えた構成については、同一の名称および同一の符号を付しており、その説明は適宜省略するものとする。すなわち、図26の動きベクトル検出部11において、図2の動きベクトル検出部11と異なる点は、新たにオブジェクトMV検出部221、およびGMV選択部222が設けられている点である。
【0173】
オブジェクトMV検出部221は、ブロックマッチング部22より供給されてくるマクロブロック毎のLMVに基づいて、画像内に含まれるオブジェクト毎に、ObjectMVを検出して、ObjectMVを構成するLMVの要素数の情報と共にGMV選択部222に供給する。尚、図26においては、オブジェクト動きベクトルObjectMV1乃至ObjectMV5が出力される例について示されているが、オブジェクト数については、それ以外であってもよいものである。尚、オブジェクトMV検出部221の構成については、図27を参照して、詳細を後述する。
【0174】
GMV選択部222は、LMVとの比較により、オブジェクトMV検出部221より供給されてきたObjectMV1乃至ObjectMV5、並びにゼロベクトルのいずれかをGMVとして出力する。
【0175】
[オブジェクトMV検出部]
次に、図27を参照して、オブジェクトMV検出部221の構成例について説明する。尚、図27のオブジェクトMV検出部221において、図3のGMV検出部23と同一の機能を備えた構成については、同一の名称、および同一の符号を付しており、その説明は省略するものとする。すなわち、図27のオブジェクトMV検出部221は、図3のGMV検出部23よりGMV決定部45を削除した構成となっている。したがって、平均値算出部43−1乃至43−5のそれぞれより出力される各クラスタを構成するLMVの平均値が、それぞれのObjectMV1乃至ObjectMV5として出力される。
【0176】
[図26の画像符号化装置による画像符号化処理]
次に、図28のフローチャートを参照して、図26の画像符号化装置1による画像符号化処理について説明する。尚、図28のフローチャートにおけるステップS251乃至S257の処理のうち、ステップS253乃至S259の処理以外については、図6のフローチャートにおけるステップS11乃至S16のうちのステップS13以外の処理と同様であるので、その説明については省略するものとする。
【0177】
すなわち、ステップS253において、オブジェクトMV検出部221は、オブジェクトMV算出処理を実行し、オブジェクト毎の動きベクトルであるオブジェクト動きベクトルObjectMV1乃至ObjectMV5を検出してGMV選択部222に供給する。
【0178】
[オブジェクトMV検出処理]
ここで、図29のフローチャートを参照して、オブジェクトMV検出処理について説明する。尚、図29のブローチャートのステップS271乃至S281の処理については、図7のフローチャートを参照して説明したGMV決定処理のステップS31乃至S42の処理のうち、ステップS37の処理を除いた処理であるので、その説明は省略する。すなわち、ここでは、図7のフローチャートを参照して説明したGMV決定処理のうち、GMVが決定されることなく、各クラスタの平均値として求められた代表ベクトルが、ObjectMV1乃至ObjectMV5として検出されて、GMV選択部222に供給される。この際、平均値算出部43−1乃至43−5は、それぞれに算出した各クラスタの代表ベクトルであるObjectMV1乃至ObjectMV5と共に、それぞれのObjectMV1乃至ObjectMV5の算出に使用したローカル動きベクトルLMVの要素数の情報も併せてGMV選択部222に供給する。
【0179】
ここで、図28のフローチャートの説明に戻る。
【0180】
ステップS254において、GMV選択部222は、順位をカウントするためのカウンタiを1に初期化する。
【0181】
ステップS255において、GMV選択部222は、ObjectMV1乃至ObjectMV5のうち、要素数が上位i位となるObjectMViと、LMVとの距離を算出して、距離が所定の値よりも小さく、十分に0に近い値であって、両者が一致しているか否かを判定する。ステップS255において、例えば、ObjectMViと、LMVとの距離が十分にゼロに近い値であって、両者が一致しており、両者の信頼性が低いと判定された場合、処理は、ステップS256に進む。
【0182】
ステップS256において、GMV選択部222は、カウンタiが最大値である5であるか否かを判定する。ステップS256において、例えば、カウンタiが5ではない、すなわち、まだ要素数が下位のObjectMVが存在すると判定された場合、ステップS257において、GMV選択部222は、カウンタiを1インクリメントして、処理は、ステップS255に戻る。すなわち、以降において、要素数がより下位となるObjectMViと、LMVとが一致しているか否かが判定され、ステップS255において、残されたObjectMVについて、上位から1ずつ一致しないとみなされるまで、ステップS255乃至S258の処理が繰り返される。そして、ステップS256において、カウンタiが5である、すなわち、全てのObjectMVとLMVとの比較が完了して、一致しないとみなされるObjectMVが存在しないとみなされた場合、処理は、ステップS259に進む。
【0183】
ステップS259において、GMV選択部222は、ゼロベクトルをGMVとしてアップコンバート部24−2に供給する。
【0184】
一方、ステップS255において、例えば、ObjectMViとOMVとが一致していなければ、GMV選択部222は、ObjectMViをGMVとしてアップコンバート部24−2出力する。
【0185】
すなわち、要素数の上位から順にObjectMViとLMVとが一致するか否かが判定され、LMVと一致しないObjectMViがあれば、そのObjectMViがGMVとして出力される。そして、最終的に、最も要素数の少ないObjectMViとLMVとが一致している場合には、GMV選択部222は、ゼロベクトルをグローバル動きベクトルとして出力する。
【0186】
結果として、GMVとして、平坦部やノイズの影響などにより誤ったLMVが選択されることがなく、ゼロベクトルが選択されるようになるので、符号化の精度が低減するのを抑制させることが可能となる。また、図25で示されるような立方体状のものを、撮像方向を変えながら撮像し続けても、その撮像方向毎に適切なオブジェクトのObjectMVがGMVに選択されるので、精度良く画像を符号化させることが可能となる。
【0187】
尚、以上においては、複数のObjectMVのうち、要素数の多いものから順にLMVとの距離を求め、近い値ではない、すなわち、ある程度一致していないものである場合に、その順位のObjectMVをGMVとして選択する例について説明してきたが、例えば、両者が所定の距離より遠いほどGMVとして選択するようにしてもよい。また、複数のObjectMVのうち、2以上のObjectMVをGMVの候補として出力させ、選択部25が最終的に選択するようにしてもよい。また、GMVの選択肢としてObjectMV1乃至ObjectMV5、並びにゼロベクトルである場合について説明してきたが、5種類以上のObjectMVを選択肢とするようにしてもよいし、ゼロベクトルを除いた複数のObjectMVのみとするようにしてもよい。
【0188】
<6.第6の実施の形態>
[オブジェクト毎の動きベクトルにゼロベクトルを含む画像符号化装置]
以上においては、選択部25に対して、1のGMVを供給するようにする例について説明してきたが、ObjectMV1乃至ObjectMV5、およびゼロベクトルを、全てGMVの候補として選択部25に供給し、選択部25がSATDとオーバヘッド部における情報に基づいて、選択するようにしてもよい。
【0189】
図30は、ObjectMV1乃至ObjectMV5、およびゼロベクトルを、全てGMVの候補として選択部25に供給するようにした画像符号化装置1の動きベクトル検出部11の構成例を示している。尚、図30の動きベクトル検出部11において、図26の動きベクトル検出部11の構成と同一の機能を備える構成については、同一の名称、および同一の符号を付しており、その説明は適宜省略する。すなわち、図30の動きベクトル検出部11において、図26の動きベクトル検出部11と異なる点は、GMV選択部222、アップコンバート部24−2、および選択部25に代えて、アップコンバート部241、および選択部242を備えている点である。
【0190】
アップコンバート部241は、基本的な機能はアップコンバート部24−2と同様であるが、オブジェクト動きベクトルObjectMV1乃至ObjectMV5、およびゼロベクトルの全てについてアップコンバートを施して選択部25に供給する。
【0191】
選択部242は、基本的な機能は選択部25と同様であるが、アップコンバートされたLMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルの全てについて、ブロック単位でそれぞれSATDおよびオーバヘッド部の情報を求めて、いずれも最小となる動きベクトルをブロック単位の動きベクトルとして選択する。
【0192】
[図30の動きベクトル検出部を備える画像符号化装置の画像符号化処理]
次に、図31のフローチャートを参照して、図30の動きベクトル検出部を備える画像符号化装置の画像符号化処理について説明する。尚、図31のフローチャートのステップS301乃至S306のうち、ステップS304,S305を除く処理については、図6のフローチャートにおけるステップS11乃至S16のうちのステップS14,S15の処理を除き同一の処理であるので、その説明は省略するものとする。また、図31のフローチャートにおけるステップS303の処理は、図28のフローチャートにおけるステップS253の処理と同様であるので、その説明も省略するものとする。
【0193】
すなわち、ステップS301乃至S303の処理により、ローカル動きベクトルLMVおよびオブジェクト動きベクトルObjectMV1乃至ObjectMV5が検出されると、処理は、ステップS304に進む。ステップS304において、アップコンバート部241は、オブジェクト動きベクトルObjectMV1乃至ObjectMV5およびゼロベクトルを、入力された処理対象画像、および参照画像の解像度に高解像度化した情報にアップコンバートして選択部25に供給する。
【0194】
ステップS305において、選択部242は、マクロブロック単位で、入力された処理対象画像の解像度に対応するアップコンバートされたLMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルを、それぞれを用いた際のSATDおよびオーバヘッド部の情報をそれぞれ求め、いずれも小さくなる動きベクトルをブロック毎の動きベクトルに選択して符号化部12に出力する。
【0195】
以上の処理により、LMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルのうち、それぞれを用いた場合のSATDおよびオーバヘッド部の情報が最小となる動きベクトルがブロック単位で選択されることになるので、平坦部やノイズの影響でローカル動きベクトルLMVが誤検出されるようなことがあっても、符号化精度を低減させる事なく、画像を符号化することが可能となる。また、GMVの選択肢としてLMV、ObjectMV1乃至ObjectMV5、並びにゼロベクトルである場合について説明してきたが、5種類以上のObjectMVを選択肢とするようにしてもよいし、ゼロベクトルを除いた複数のLMVおよびObjectMVを選択肢とするようにしてもよい。
【0196】
尚、以上においては、全てのObjectMV1乃至ObjectMV5、およびゼロベクトルをアップコンバートして選択部242に供給する例について説明してきたが、例えば、要素数が上位n位(n=1,2,3,or4)までのObjectMV、または、LMVまでの距離が遠い順に上位n位(n=1,2,3,or4)までのObjectMVにゼロベクトルを加えたものをアップコンバート部241に供給するようにしてもよい。また、以上においては、LMV、ObjectMV1乃至ObjectMV5、およびゼロベクトルのうち、それぞれを用いた場合のSATDおよびオーバヘッド部の情報が最小となる動きベクトルがマクロブロック単位の動きベクトルとして選択される例について説明してきたが、SATDおよびオーバヘッド部の情報が小さい順に上位n位までの複数の動きベクトルを処理対象となるマクロブロックの動きベクトルとするようにしてもよい。
【0197】
以上によれば、複数のオブジェクトがそれぞれ異なる動きをしていても、オブジェクト毎に適切に動きベクトルを検出することが可能となる。また、適切なGMVを選択して画像を符号化することができるので、符号化効率が向上させることが可能となる。さらに、画像情報をハイフレームレート変換するような場合、補間フレームの品質を向上させることが可能となる。
【0198】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0199】
図32は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェイス1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
【0200】
入出力インタフェイス1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
【0201】
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0202】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【0203】
尚、本技術は以下のような構成を取ることができる。
(1) 入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置。
(2) 前記クラスタリング部は、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離を算出する距離算出部を含み、
前記距離算出部により算出された距離が最小となるクラスタに、前記ブロック単位のローカル動きベクトルをクラスタリングする
前記(1)に記載の画像処理装置。
(3) 前記代表算出部は、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値を代表ローカル動きベクトルとして算出する
前記(1)または(2)に記載の画像処理装置。
(4) 前記代表算出部は、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルのアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、代表ローカル動きベクトルとして算出する
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記代表算出部により算出された、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルをバッファリングするバッファリング部を含み、
前記クラスタリング部は、前記バッファリング部によりバッファリングされている、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、またはアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、前記クラスタ毎に設定されるベクトルとして、前記ローカル動きベクトルをクラスタリングする
前記(2)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記クラスタリング部によりクラスタリングされた前記クラスタのうち、クラスタ間のベクトル空間内での位置が近いクラスタ同士については、前記クラスタ同士をマージし、前記クラスタ間のベクトル空間内での分散が大きいクラスタについては、複数のクラスタに分割するマージ分割部をさらに含む
前記(1)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記入力画像を低解像度の画像にダウンコンバートする第1のダウンコンバート部と、
前記参照画像を低解像度の画像にダウンコンバートする第2のダウンコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められたブロック単位の前記ローカル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第1のアップコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められた前記グローバル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第2のアップコンバート部と、
前記第1のアップコンバート部により適用されたブロック単位のローカル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和と、前記第2のアップコンバート部により適用されたブロック単位のグローバル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和との比較により、前記入力画像のブロックに対して、前記ローカル動きベクトル、または前記グローバル動きベクトルのいずれかを選択する選択手段とを含む
前記(1)乃至(6)のいずれかに記載の画像処理装置。
(8) 入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む画像処理方法。
(9) 入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、所定数のクラスタにクラスタリングするクラスタリングステップと、
前記代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記グローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む処理を実行させるプログラム。
(10) 入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置。
(11) 前記オブジェクト毎にクラスタリングされたローカル動きベクトルに基づいて、算出された前記オブジェクト動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部をさらに含む
前記(10)に記載の画像処理装置。
(12) 入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部における、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む画像処理方法。
(13) 入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記オブジェクト動きベクトル算出部における、前記クラスタリングステップの処理により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む処理を実行させるプログラム。
【符号の説明】
【0204】
1 画像符号化装置, 11 動きベクトル検出部, 12 符号化部, 22 ブロックマッチング部, 23 GMV検出部, 24,24−1,24−2 アップコンバート部, 25 選択部, 41 ブロック除外判定部, 42 クラスタリング部, 43,43−1乃至43−5 平均値算出部, 44 遅延バッファ, 45 GMV検出部, 46 マージ分割部, 101,101−1乃至101−5 最適係数算出部, 201 GMV選択部, 221 オブジェクトMV検出部, 222 GMV選択部, 241 アップコンバート部, 242 選択部

【特許請求の範囲】
【請求項1】
入力画像のブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部によりクラスタリングされた前記クラスタ毎に、代表となる代表ローカル動きベクトルを設定し、前記所定数のクラスタ毎の代表ローカル動きベクトルから前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置。
【請求項2】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置。
【請求項3】
前記クラスタリング部は、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離を算出する距離算出部を含み、
前記距離算出部により算出された距離が最小となるクラスタに、前記ブロック単位のローカル動きベクトルをクラスタリングする
請求項2に記載の画像処理装置。
【請求項4】
前記代表算出部は、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値を代表ローカル動きベクトルとして算出する
請求項3に記載の画像処理装置。
【請求項5】
前記代表算出部は、前記入力画像に対応したアフィン変換、または射影変換により求められる、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルのアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、代表ローカル動きベクトルとして算出する
請求項4に記載の画像処理装置。
【請求項6】
前記代表算出部により算出された、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、または、アフィンパラメタ、または射影変換のパラメタにより特定されるベクトルをバッファリングするバッファリング部を含み、
前記クラスタリング部は、前記バッファリング部によりバッファリングされている、前記クラスタ毎に前記クラスタリング部により分類されたローカル動きベクトルの平均値、またはアフィンパラメタ、または射影変換のパラメタにより特定されるベクトルを、前記クラスタ毎に設定されるベクトルとして、前記ローカル動きベクトルをクラスタリングする
請求項5に記載の画像処理装置。
【請求項7】
前記クラスタリング部によりクラスタリングされた前記クラスタのうち、クラスタ間のベクトル空間内での位置が近いクラスタ同士については、前記クラスタ同士をマージし、前記クラスタ間のベクトル空間内での分散が大きいクラスタについては、複数のクラスタに分割するマージ分割部をさらに含む
請求項6に記載の画像処理装置。
【請求項8】
前記入力画像を低解像度の画像にダウンコンバートする第1のダウンコンバート部と、
前記参照画像を低解像度の画像にダウンコンバートする第2のダウンコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められたブロック単位の前記ローカル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第1のアップコンバート部と、
前記低解像度の画像を入力画像の解像度にしたとき、前記低解像度の画像より求められた前記グローバル動きベクトルを、前記入力画像の解像度に戻したときのブロック単位で適用する第2のアップコンバート部と、
前記第1のアップコンバート部により適用されたブロック単位のローカル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和と、前記第2のアップコンバート部により適用されたブロック単位のグローバル動きベクトルを前記入力画像に適用したブロック、および前記ブロックに対応する参照画像のブロックとの画素間差分絶対値和との比較により、前記入力画像のブロックに対して、前記ローカル動きベクトル、または前記グローバル動きベクトルのいずれかを選択する選択手段とを含む
請求項7に記載の画像処理装置。
【請求項9】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む画像処理方法。
【請求項10】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出部と、
前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のクラスタ毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のクラスタにクラスタリングするクラスタリングステップと、
前記代表算出部における、前記クラスタリングステップの処理により分類されたクラスタ毎に前記クラスタを代表する代表ローカル動きベクトルを算出する代表算出ステップと、
前記グローバル動きベクトル選択部における、前記クラスタ毎にクラスタリングされるローカル動きベクトルの要素数に基づいて、前記クラスタ毎の代表ローカル動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択ステップと
を含む処理を実行させるプログラム。
【請求項11】
請求項10に記載のコンピュータに読み取り可能なプログラムが記録された記録媒体。
【請求項12】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置。
【請求項13】
前記オブジェクト毎にクラスタリングされたローカル動きベクトルに基づいて、算出された前記オブジェクト動きベクトルから、前記入力画像のグローバル動きベクトルを選択するグローバル動きベクトル選択部をさらに含む
請求項12に記載の画像処理装置。
【請求項14】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部における、前記入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部における、前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む画像処理方法。
【請求項15】
入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出部と、
前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリング部と、
前記クラスタリング部により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出部と
を含む画像処理装置を制御するコンピュータに、
前記ローカル動きベクトル検出部における、入力画像および参照画像よりブロックマッチングによりブロック単位でローカル動きベクトルを検出するローカル動きベクトル検出ステップと、
前記クラスタリング部における、前記ブロック単位のローカル動きベクトルと所定数のオブジェクト毎に設定されるベクトルとの距離に基づいて、前記ブロック単位のローカル動きベクトルを所定数のオブジェクト毎にクラスタリングするクラスタリングステップと、
前記オブジェクト動きベクトル算出部における、前記クラスタリングステップの処理により分類されたオブジェクト毎のローカル動きベクトルに基づいて、オブジェクト動きベクトルを算出するオブジェクト動きベクトル算出ステップと
を含む処理を実行させるプログラム。
【請求項16】
請求項15に記載のコンピュータに読み取り可能なプログラムが記録された記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate


【公開番号】特開2012−253482(P2012−253482A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−123193(P2011−123193)
【出願日】平成23年6月1日(2011.6.1)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】