(57)【要約】【課題】  動きベクトル検出装置において、従来の方式に比べて極値の探索を高速化することができ、サブサンプリングされた画像データに対してもパイプライン処理を可能にする。【解決手段】  対象となる基準ブロックと同一位置の参照画像ブロックを中心位置として相対的に決められる探索範囲の各探索位置について、複数の相関演算器１０３を用いてパイプライン方式で並列処理により相関演算を行い、前記相関演算の結果に応じて所定の探索位置設定基準に基づき順次中心位置を移動させながら相関極値を探索する。また、探索位置に応じた複数系統のサブサンプリング画像データを探索位置に応じた複数系統のメモリ１０２に保持し、探索位置について複数の相関演算器１０３を用いてパイプライン方式で並列処理により相関演算を行う。【選択図】  図７
2006013873.tif 000002
【特許請求の範囲】
【請求項１】
基準画像の着目する基準ブロックと参照画像の画像ブロックとの相関演算を行うブロックマッチング方式により動きベクトルを検出する動きベクトル検出装置であって、
前記参照画像における前記基準ブロックと同一位置の画像ブロックを中心位置として相対的に決められる探索範囲の各探索位置について、パイプライン方式で並列処理により相関演算を行う複数の相関演算器と、
前記相関演算の結果に応じて所定の探索位置設定基準に基づき順次中心位置を移動させながら相関極値を探索する探索手段と、
を備える動きベクトル検出装置。
【請求項２】
前記基準画像および前記参照画像のサブサンプリングされた画像データを前記検索位置に応じて複数系統生成するサブサンプリング画像生成手段を備える請求項１記載の動きベクトル検出装置。
【請求項３】
前記所定の探索位置設定基準は、中心位置を１回移動させた後に相関極値判定が可能なように前記探索範囲を決定するもの、あるいは中心位置の移動を２回行った後に相関極値判定が可能なように前記探索範囲を決定するものである請求項１または２記載の動きベクトル検出装置。
【請求項４】
前記所定の探索位置設定基準は、前記探索範囲が前記参照画像上に矩形で表現される場合に、現在の相関最小値位置が矩形の辺の中央であった場合は、該位置が次の探索範囲の辺の中央となり、かつ未探索の探索位置を最大数含むように探索範囲を設定し、現在の相関最小値位置が矩形の隅であった場合は、該位置を次の探索範囲の中央になるように探索範囲を設定する請求項３記載の動きベクトル検出装置。
【請求項５】
前記所定の探索位置設定基準は、前記探索範囲が前記参照画像上に矩形で表現される場合に、現在の相関最小値位置が矩形の辺の中央であった場合は、該位置が次の探索範囲の辺の中央となり、かつ未探索の探索位置を最大数含むように探索範囲を設定し、現在の相関最小値位置が矩形の隅であった場合は、該位置を含み最大限に移動させた探索範囲を設定する請求項３記載の動きベクトル検出装置。
【請求項６】
前記所定の探索位置設定基準は、現在の相関最小値位置が前記矩形の隅であって該位置を含み最大限に移動させた探索範囲を設定した後の相関最小値位置が同一位置であった場合に、前記相関最小値位置を中心とする探索範囲を設定する請求項４記載の動きベクトル検出装置。
【請求項７】
相関演算回数が所定の回数を超えたときは前記探索位置設定基準を取り替えて新たな探索範囲を設定する請求項３から６のうちいずれかに記載の動きベクトル検出装置。
【請求項８】
相関最小値が所定値を下回ったときは前記探索位置設定基準を取り替えて新たな探索範囲を設定する請求項３から６のいずれか一項に記載の動きベクトル検出装置。
【請求項９】
現在の基準ブロックに隣接する基準ブロックの動きベクトル検出結果が使用可能な場合は、前記隣接する基準ブロックの動きベクトルを使用するか否かの評価に応じて前記探索位置設定基準を選択して探索範囲を設定する請求項３から６のいずれか一項に記載の動きベクトル検出装置。
【請求項１０】
探索済みの探索位置については相関演算を禁止するように制御する請求項１から９のいずれか一項に記載の動きベクトル検出装置。
【請求項１１】
逐次最大相関を示す相関最小値を記憶する相関係数メモリと、相関演算の進行に伴って最大相関を示す相関最小値と探索位置を検出する比較手段と、最大相関を示した探索位置に応じて次の探索範囲を決定する演算範囲設定手段と、最大相関位置の相関最小値が相関極値に達したことを判定する探索終了判定手段と、を備える請求項１から９のいずれか一項に記載の動きベクトル検出装置。
【請求項１２】
画像フレームにおける参照画素のアドレスと前記参照画素からの隣接範囲Ｎを指定するステップと、
前記参照画素を中心とする（２Ｎ＋１）＾２個のブロックについてＭ（１≦Ｍ≦Ｎ）個ずらしたブロックとの相関を演算するステップと、
得られた（２Ｎ＋１）＾２個のブロックとの相関のうち最も相関が大きいブロックを選択するステップと、
前記選択されたブロックにおける中心画素のアドレスを出力するステップと、
を備える動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像圧縮符号化装置等に用いられる動きベクトル検出装置および方法に関する。
【背景技術】
【０００２】
動きのある対象について、異なる２枚の画像から一部領域の一致する部分を探索し、その動きベクトルを検出するブロックマッチング型動き検出方式は、一般的な画像監視等において重要な技術であるが、近年は特に動画像の高能率符号化を行うＭＰＥＧ等の動画像圧縮符号化技術における基礎技術となっている。動きベクトル検出は膨大な演算が必要な処理であるため、その高速化と効率化を目指して従来多くの技術開発がなされている（例えば特許文献１参照）。
【０００３】
従来、図１のブロック図に示すような相関演算手段を一つ備えた動きベクトル検出装置があった。参照画像メモリ１０２に保持された前フレーム（以下、参照画像）と、入力画像メモリ１０１に保持された現フレーム（以下、入力画像）において、入力画像の注目する領域（以下、入力ブロック）の動きベクトルを検出する場合に、図２の探索範囲の概念図に示すように、参照画像における同一位置を探索開始の基準位置として、その上下左右位置にある入力ブロックと同じ大きさの画像領域（以下、参照ブロック）について、両ブロックの相関係数を相関演算器１０３により求め、相関係数メモリ１０４に記憶する。
【０００４】
各入力ブロックにおける相関係数は比較器１０５により比較され、相関が最大（相関係数が最小）となった位置へ探索基準位置を移動し、まだ相関係数を演算していない方向にある参照ブロックについての相関演算を行いながら、探索基準位置の相関が最大となる位置を探索していく。
【０００５】
図３は上記方法を具体例で説明する図であり、Ｏｎｅ  ａｔ  ａ  ｔｉｍｅ方式と呼ばれるものである。図３により、従来のＯｎｅ  ａｔ  ａ  ｔｉｍｅ方式を説明する。まず、探索を開始する探索位置１の相関係数を算出する。次いで、左右の探索位置２、３の相関係数を時系列的に算出し、比較器が探索位置１〜３の相関係数の中から最小値を見出す。ここでは探索位置３の相関係数が最小であったものとすると、探索位置３の左（探索位置４）の相関係数を算出し、探索位置３と４の相関係数の大小を比較器によって判定する。ここで、（探索位置４の相関係数）＜（探索位置３の相関係数）であったものとする。
【０００６】
以下同様に探索位置７までの相関係数を算出した場合に、（探索位置６の相関係数）＜（探索位置７の相関係数）であれば（左右の相関係数が中心の相関係数よりも大きい）、相関演算器１０３により探索位置６を中心に上下の探索位置８、９の相関係数を時系列的に求め、探索位置６、８、９の相関係数の最小値を比較器１０４によって判定する。ここでは、探索位置８の相関係数が最小であったものとすると、再び、探索位置８を中心に左右の探索位置１０、１１の相関係数を算出し、その最小値を比較器１０３により判定する。
【０００７】
以降同様に左右の探索位置の相関係数を求め、より相関の高い（相関係数が小さい）探索位置を探索の中心にする。左右に対して中心が最大相関ならば、上下の相関を探索し、より相関の高い方向へ基準を変更する。最終的に上下左右に対して中心の相関が最大となる位置の探索を進めることで、最大相関を示した探索位置を動きベクトルとして検出する。このように、従来の方式では逐次処理的に隣接する探索位置の相関係数の算出と最大相関位置の判定を行っていた。
【０００８】
ここで、一般的な相関演算方法は参照画像と入力画像の差の絶対値を加算するものである。この相関係数算出式を数１に示す。
【数１】
2006013873.tif 000003
【０００９】
上式に示す通り、相関演算には多くの演算処理が必要である。そこで、図４に示すように偶数位置と奇数位置にブロックを分割することで画像データをあらかじめ間引いておき（以下、サブサンプリング）、相関演算に要する計算回数を減らす処理方法が一般に行われている。
【特許文献１】特開平１−２９５３７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記説明した従来の方法では、相関演算手段をひとつしか持たないため、最大相関位置の探索に非常に時間がかかることが問題であった。例えば、図３に示した例では、１５回の相関演算の実行が必要となっていた。
【００１１】
また一般に相関係数の算出には時間がかかるため、基準ブロックと参照ブロックの画像データをサブサンプリングして時間を短縮する方法においては、図４に示すように、参照ブロックの偶数位置と奇数位置ではサブサンプリングした後の画像データが異なる。
【００１２】
例えば、図４において、１段目の演算に必要なサブサンプリング画像データと２段目の演算に必要なサブサンプリング画像データは異なる。結局、サブサンプリングのためにパイプライン処理が実行不可能となり、パイプライン処理で演算する場合と比較して相関演算に要する時間が長くなるという問題があった。
【００１３】
本発明は、動画像圧縮符号化装置等に用いられる動きベクトル検出において、従来のＯｎｅ  ａｔ  ａ  ｔｉｍｅ方式に比べて極値の探索を高速化することができる動きベクトル検出装置および方法を提供することを目的とする。さらに本発明は、サブサンプリングされた画像データに対してもパイプライン処理を可能にする動きベクトル検出装置および方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の動きベクトル検出装置は、基準画像の着目する基準ブロックと参照画像の画像ブロックとの相関演算を行うブロックマッチング方式により動きベクトルを検出する動きベクトル検出装置であって、前記参照画像における前記基準ブロックと同一位置の画像ブロックを中心位置として相対的に決められる探索範囲の各探索位置について、パイプライン方式で並列処理により相関演算を行う複数の相関演算器と、前記相関演算の結果に応じて所定の探索位置設定基準に基づき順次中心位置を移動させながら相関極値を探索する探索手段と、を備える。
【００１５】
上記構成によれば、複数の相関演算器を用いてパイプライン方式で相関演算を並列処理するため、従来のＯｎｅ  ａｔ  ａ  ｔｉｍｅ方式に比べて極値の探索を高速化することができる。さらに、所定の探索位置設定基準に基づき中心位置を移動させながら相関極値を探索するため、効率よく極値の探索を行うことができる。
【００１６】
本発明は、さらに、前記基準画像および前記参照画像のサブサンプリングされた画像データを前記検索位置に応じて複数系統生成するサブサンプリング画像生成手段を備える。
【００１７】
上記構成によれば、複数系統のサブサンプリング画像データを相関演算に使用するため、サブサンプリングによるパイプラインの効率の悪化を回避し、動きベクトルの探索に要する時間の削減、あるいは所定時間内での動きベクトルの探索範囲の拡張を達成することができ、動きの早い被写体の動きベクトルの探索が可能となる。
【００１８】
本発明において、前記所定の探索位置設定基準は、中心位置を１回移動させた後に相関極値判定が可能なように前記探索範囲を決定するもの、あるいは中心位置の移動を２回行った後に相関極値判定が可能なように前記探索範囲を決定するものである。
【００１９】
上記構成によれば、所定の探索位置設定基準を適用することで、探索範囲の中心位置の１回の移動、あるいは最悪でも２回の移動の後に相関極値判定が可能になる。
【００２０】
本発明において、前記所定の探索位置設定基準は、前記探索範囲が前記参照画像上に矩形で表現される場合に、現在の相関最小値位置が矩形の辺の中央であった場合は、該位置が次の探索範囲の辺の中央となり、かつ未探索の探索位置を最大数含むように探索範囲を設定し、現在の相関最小値位置が矩形の隅であった場合は、該位置を次の探索範囲の中央になるように探索範囲を設定するものである。
【００２１】
上記構成によれば、上記第１の探索位置設定基準による探索位置を全て含むように探索範囲を設定することで、次回の探索終了時点で現在の最小相関係数が極値か否かが判断できるようになる。
【００２２】
本発明において、前記所定の探索位置設定基準は、前記探索範囲が前記参照画像上に矩形で表現される場合に、現在の相関最小値位置が矩形の辺の中央であった場合は、該位置が次の探索範囲の辺の中央となり、かつ未探索の探索位置を最大数含むように探索範囲を設定し、現在の相関最小値位置が矩形の隅であった場合は、該位置を含み最大限に移動させた探索範囲を設定するものである。
【００２３】
上記構成によれば、斜め方向移動時に最大限の移動を可能にするため、請求項４の探索位置設定基準による探索範囲の設定では斜め方向移動時に探索終了までの時間が増加するという欠点を回避することができる。
【００２４】
本発明において、前記所定の探索位置設定基準は、現在の相関最小値位置が前記矩形の隅であって該位置を含み最大限に移動させた探索範囲を設定した後の相関最小値位置が同一位置であった場合に、前記相関最小値位置を中心とする探索範囲を設定するものである。
【００２５】
上記構成によれば、斜め方向への探索速度を確保しながら、少なくとも２回の移動後には現在の最小値が極値となることを判断することができるため、動きの早い被写体への追尾を可能にするとともに、演算の無駄を削減することで消費電流の削減効果を得ることができる。
【００２６】
本発明において、相関演算回数が所定の回数を超えたときは前記探索位置設定基準を取り替えて新たな探索範囲を設定するものである。
【００２７】
上記構成によれば、相関演算回数が多くなったときに探索位置設定基準を取り替えて新たな探索範囲を設定することができるため、探索開始当初と探索が進行したときとで探索範囲の設定を変えることができる。これにより、すばやく相関係数の極値近傍までの探索を進めることができ、極地近傍の探索の速やかな収束が期待できる。
【００２８】
本発明において、相関最小値が所定値を下回ったときは前記探索位置設定基準を取り替えて新たな探索範囲を設定するものである。
【００２９】
上記構成によれば、相関最小値が所定値を下回ったときに探索位置設定基準を取り替えて新たな探索範囲を設定することができるため、探索開始当初と探索が進行したときとで探索範囲の設定を変えることができる。これにより、すばやく相関係数の極値近傍までの探索を進めることができ、極地近傍の探索の速やかな収束が期待できる。
【００３０】
本発明において、現在の基準ブロックに隣接する基準ブロックの動きベクトル検出結果が使用可能な場合は、前記隣接する基準ブロックの動きベクトルを使用するか否かの評価に応じて前記探索位置設定基準を選択して探索範囲を設定するものである。
【００３１】
上記構成によれば、隣接する基準ブロックの動きベクトルを使用するときに探索位置設定基準を取り替えて新たな探索範囲を設定することができるため、探索開始当初と探索が進行したときとで探索範囲の設定を変えることができる。これにより、すばやく相関係数の極値近傍までの探索を進めることができ、極地近傍の探索の速やかな収束が期待できる。
【００３２】
本発明において、探索済みの探索位置については相関演算を禁止するように制御するものである。
【００３３】
上記構成によれば、探索済みの探索位置については相関演算を禁止することにより、演算の無駄を削減することで消費電流の削減効果を得ることができる。
【００３４】
本発明は、さらに、逐次最大相関を示す相関最小値を記憶する相関係数メモリと、相関演算の進行に伴って最大相関を示す相関最小値と探索位置を検出する比較手段と、最大相関を示した探索位置に応じて次の探索範囲を決定する演算範囲設定手段と、最大相関位置の相関最小値が相関極値に達したことを判定する探索終了判定手段と、を備えるものである。
【００３５】
本発明の動きベクトル検出方法は、画像フレームにおける参照画素のアドレスと前記参照画素からの隣接範囲Ｎを指定するステップと、前記参照画素を中心とする（２Ｎ＋１）＾２個のブロックについてＭ（１≦Ｍ≦Ｎ）個ずらしたブロックとの相関を演算するステップと、得られた（２Ｎ＋１）＾２個のブロックとの相関のうち最も相関が大きいブロックを選択するステップと、前記選択されたブロックにおける中心画素のアドレスを出力するステップと、を備えるものである。
【発明の効果】
【００３６】
本発明によれば、従来のＯｎｅ  ａｔ  ａ  ｔｉｍｅ方式に比べて極値の探索を高速化することができる。さらに、所定の探索位置設定基準に基づき中心位置を移動させながら相関極値を探索するため、効率よく極値の探索を行うことができ、探索範囲の中心位置の１回の移動、あるいは最悪でも２回の移動の後に相関極値判定が可能になる。
【００３７】
さらに本発明によれば、サブサンプリングによるパイプラインの効率の悪化を回避することができ、動きベクトルの探索に要する時間の削減、あるいは所定時間内での動きベクトルの探索範囲の拡張を達成することができる。
【００３８】
また、演算に要する時間が短いということは、結果的に、この処理に必要となる消費電力が削減され、本装置を搭載した携帯機器の小型化と電池による長時間駆動が可能となるものである。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施の形態について図面を参照しながら説明する。
（実施の形態１）
図６は本発明の実施の形態１に係る動きベクトル検出装置の構成を示すブロック図である。本実施の形態は、ある探索基準位置を中心に上下左右斜めの８方向（全９位置）の相関演算をパイプライン（もしくは並列）処理可能なように相関演算装置を構成するものである。
【００４０】
図６において、１０１は入力画像を保持する入力画像メモリ、１０２は参照画像を保持する参照画像メモリ、１０３は相関係数を計算する複数の相関演算器（相関演算器１〜相関演算器９）、１０４は最小相関係数メモリ、１０５は比較器、１０６は最小相関係数位置メモリ、１０７は動きベクトル設定装置、１０８は図示しないラインメモリのアドレスを順次生成するアドレス生成器、１０９は探索終了判定手段、１１０は演算範囲設定手段、１１１は探索済み位置メモリ、１１２は相関演算制御手段である。相関演算器は内部に入力画像と参照画像の差を計算する差分器と、その絶対値化を行う回路と、その結果を加算する加算器とを有する。
【００４１】
次に、図５および図６により、探索基準位置を中心にした９位置の相関係数を算出するまでのパイプライン処理の詳細を説明する。ここでは、入力画像と参照画像に対するサブサンプリングは行わないものとする。図５（ａ）は、図６に示す相関演算器１〜相関演算器９が、中心位置と周辺８方向（全９位置）の相関係数を算出するタイミングを示した図である。
【００４２】
また、図５（ｂ）は、全９位置の相関演算を行う場合に必要な入力画像データと参照画像データの構成を示す図である。１６×１６画素の基準ブロックに対して、上下左右各１画素分広い１８×１８画素の参照画像が必要となる。
【００４３】
図５（ａ）において、１列目は基準位置の左上位置（位置ｌ）に対応する相関演算を行う相関演算器１の動作タイミングである。２列目以降も同様に、位置Ｔから位置ｒに対応した相関演算器２から９の動作タイミングである。
【００４４】
まず、入力画像メモリ１０１から基準ブロック（１６画素）のライン１の画像データと、参照画像メモリ１０２から参照画像（１８画素）のライン１の画像データを、ラインメモリ１（不図示）とラインメモリ２（不図示）へそれぞれ読み込む。相関演算器１は、アドレス生成器１０８が順次生成するアドレスによりラインメモリ１とラインメモリ２から画素データを読み出し、差分器により画素データの差を計算し、その絶対値を加算することでライン１に対する相関係数ｌを算出する。
【００４５】
相関演算器２の差分器は相関演算器１の差分器に対して１クロック遅れて動作を開始し、同じくラインメモリ１とラインメモリ２から読み出した画素データの差を計算し、その絶対値を加算することでライン１に対する相関係数Ｔを算出する。
【００４６】
相関演算器３の差分器は相関演算器１の差分器に対して２クロック遅れて動作を開始し、同じくラインメモリ１とラインメモリ２から読み出した画素データの差を計算し、その絶対値を加算することでライン１に対する相関係数ｔを算出する。
【００４７】
相関演算器１〜相関演算器３がラインメモリ１とラインメモリ２内の画素データに対する計算を終了（１８クロック経過）すると、ラインメモリ２に参照画像（１８画素）のライン２の画像データを読み込み、ラインメモリ１に基準ブロックのライン２のデータを読み込み、ラインメモリ３（不図示）に基準ブロックのライン１のデータを読み込む。このとき、ラインメモリ３のデータはラインメモリ１のデータを転送してもよい。
【００４８】
相関演算器１〜相関演算器３はラインメモリ１とラインメモリ２に対して再び同じ動作を行い、それぞれライン２に対する相関係数ｌ、相関係数Ｔ、相関係数ｔの算出を続ける。相関演算器４〜相関演算器６もラインメモリ１とラインメモリ３に対して相関演算器１〜相関演算器３と同様の動作を行い、相関係数Ｌ、相関係数Ｃ、相関係数Ｒの算出を行う。
【００４９】
相関演算器１〜相関演算器６の上記動作が終了（１８クロック経過）すると、ラインメモリ１、ラインメモリ３、ラインメモリ４（不図示）に、それぞれ基準ブロックのライン３、ライン２、ライン１に対応するが画素データを読み込み、ラインメモリ２には参照画像のライン３に対応する画素データを読み込む。
【００５０】
以降、相関演算器１〜相関演算器６はラインメモリのデータを更新しながら前述の動作を繰り返し、相関演算器７〜相関演算器９もラインメモリ４とラインメモリ２に対して相関演算器１〜相関演算器３と同様の動作を繰り返す。
【００５１】
以降同様にして、各相関演算器が基準ブロックのライン１〜１６に対する相関係数の算出を終了するまで、ラインメモリへのデータ格納と相関演算を繰り返す。ここで、相関係数の演算が終わった探索位置は、順次探索済み位置メモリ１１１に記憶される。（位置を記憶しなくても位置に対応したフラグをセットする方法でもよい。）
【００５２】
なお、ここでは、図示しないラインメモリを使用して相関演算を実行したが、アドレス生成器が直接入力画像メモリと参照画像メモリの各ラインのアドレスを指示して画素データを読み出し、ラインメモリを使用しない構成も可能であり、その効果は上記と同様である。
【００５３】
従来は左右上下の相関係数算出のために図１に示す相関演算器１０３が時系列で動作するため、１画素の絶対値差の算出に１クロック必要なものとすると、１０２４クロック（１６画素×１６画素×４ステップ）が必要であったものに対して、本実施の形態によるパイプライン処理を行うことで、図６に示す相関演算器１〜相関演算器９が並列に動作することで、９方向の相関係数の算出に必要な演算サイクルは３２４サイクル（（１６＋２）×（１６＋２））で済む。
【００５４】
図６における相関演算の基本動作として、相関演算を実行した結果で中心の相関係数が最小、すなわち周辺８方向の相関係数が全て大となるならば、その中心位置を探索結果として終了する。
【００５５】
比較器１０５は、相関極値を探索するために、入力ブロックとその周辺のブロックを合わせた全９位置の相関演算が終了すると、最小相関係数メモリ１０４に記憶されている最小相関係数と今回の相関係数の中から最小相関係数を探索する。
【００５６】
探索終了判定手段１０９は、最小相関係数位置の周辺８方向が全て探索済みであるならば、探索終了の判断と探索結果の記憶を行い、以降の探索を終了する。このようにすることで、常時最小の相関係数を探索することが可能となり、例えば、漸減していた相関係数がＮ＋１回目に逆転して増加した場合にも、即時にＮ回目の探索結果が極値であると判断することができる。
【００５７】
ここで、探索が終了しなかった場合で上下左右の辺のいずれか位置が最小値であった場合は、演算範囲設定手段１１０は探索位置設定基準１（図８（ａ）、（ｂ））により探索範囲（探索基準位置）を設定する。
【００５８】
探索位置設定基準１は、現在の最小値位置が辺の中央（図８（ａ））であった場合は、その位置が次の探索範囲の辺の中央になり、かつ、未探索の探索位置（図８（ａ）の白抜き部）を最大数含むように探索範囲（探索基準位置）を設定する。また、現在の最小値位置が隅（図８（ｂ））であった場合は、その位置が次の探索範囲の中央になるように探索範囲を設定する。図８（ａ）では右方向の探索基準位置のみを記載しているが、上下左右ともに同じである。
【００５９】
この探索位置設定基準１による探索位置を全て含むように探索範囲を設定することで、次回の探索終了時点で現在の最小相関係数が極値か否かが判断できるようになる。探索基準位置は現在の相関係数の最小位置の周辺８方向の探索位置の中から設定されている。これは次回の探索で現在の最小相関位置に対して極値判定を行うためである。
【００６０】
斜め方向のいずれかが最小値であった場合は、図８（ｂ）の探索位置設定基準１による探索位置を全て含み、かつ、これ以外の未探索位置を最大数含むように探索基準位置が設定される。この理由も上下左右が最小であった場合と同じで、次回の探索終了時点で現在の最小値を極値と判断できるようにするためである。また、すでに現在の探索位置の中に探索済みの位置が含まれる場合は、その部分の相関演算を禁止してもよい。
【００６１】
以上説明した探索の具体例を図９に示す。また、探索進行のフローチャートを図１４に示す。図９では、まず図６の相関演算器１〜相関演算器９による相関演算の実行で位置１ｌ〜１ｒで示される演算範囲１の相関係数が算出され、比較器１０５により最小相関位置を判定する。ここでは位置１Ｌが最小相関位置であったものとする。
【００６２】
演算範囲設定手段１１０は、探索位置設定基準１（図９では、２ｔ、２Ｒ、２ｒ）を含み、未探索の領域が最大となるように演算範囲２（位置２ｌ〜２ｒ）を設定する。この演算範囲２に対して演算範囲１と同様に相関演算と最大相関位置の判定を行う。ここでは、位置２ｌが最小であったものとする。
【００６３】
演算範囲設定手段１１０は、図８（ｂ）に従い探索位置設定基準１による探索位置を含むように、演算範囲３（位置３ｌ〜３ｒ）を設定し、相関演算を実施する。以下同様に相関演算を実行し、周辺８方向の中心で最小の相関係数（最大相関）を示す位置が見つかるまで探索を続ける。図９のイメージ図には、画面上での参照ブロックの大きさを概念的に示している。
【００６４】
以上の動作を図１４のフローチャートにより説明する。
ステップ２０１：探索開始位置を設定し、初回の演算範囲を指定する。
ステップ２０２：相関係数メモリをクリアする。
ステップ２０３：演算範囲設定手段１１０により、演算範囲内の探索位置に対応する基準ブロックおよび参照ブロックの画像データを指定する。
ステップ２０４：パイプライン処理により各探索位置の相関係数を算出する。
ステップ２０５：比較器１０５により演算範囲内での最小相関係数を決定する。
ステップ２０６：ステップ２０５で決定された最小相関係数とメモリ内の最小相関係数を比較し、必要ならばステップ２０７でメモリ内の最小相関係数を更新する。
ステップ２０８：メモリ内の最小相関係数の探索位置の周辺８画素が探索済みでなければステップ２０３へ戻る。
ステップ２０９：メモリ内の最小相関係数と位置を元に動きベクトルを決定する。
【００６５】
（実施の形態２）
実施の形態１においては、探索位置決定手段は、常時次回の探索で極値を判断できるように探索基準位置を決定してきた。しかしながら、この方法では、斜め方向移動時には４箇所の探索位置が既に探索済みであるため、動きの早い被写体の場合には探索終了までの時間（演算回数）が増加してしまう。そのため、演算にかかる消費電流の増加、所定時間（ビデオフレームレート）内での動きベクトルの探索が終了しない、といった問題が発生する。
【００６６】
上下左右方向では未探索の部分を含まずに極値の判断が可能である。そこで、探索位置設定基準２として、斜め方向に限っては、次回の探索基準位置で極値を判断できる領域を設けないで、最大限に移動を可能とする。ただし、今回の探索基準位置との重なりを持たないように設定すると、誤った極値を探索してしまう可能性があるので、図８（ｃ）に示すように最低でも１箇所の重なりを持つようにする。
【００６７】
しかしながら、この場合は仮に最小相関位置が再度同じであったとしても極値であるとの判定ができない。そこで、探索位置設定基準３として、図８（ｃ）に示すように極値判定のために必要となる位置を加え、再度同じであった最小相関位置が中心に来るように探索範囲を設定し、相関係数を演算する。
【００６８】
以降も、次々回には現在の最小値が極値との判断ができるようにするために、図８（ｃ）の未探索の探索位置設定基準２を必ず含み、かつ、探索位置設定基準２のうち一箇所でも探索済みであれば探索位置設定基準３を含み、かつ、その他の未探索位置を最大数含むように設定する。
【００６９】
図８（ｄ１）〜（ｄ３）にその例を示す。探索基準位置は、現在の相関係数の最小位置の周辺８方向の探索基準位置の中から設定されている。これは次々回の探索で現在の最小相関位置に対して極値判定を行うためである。
【００７０】
このように探索基準位置を設定することで、斜め方向への探索速度を確保しながら、少なくとも２回の移動後には現在の最小値が極値となることを判断することができ、動きの早い被写体への追尾を可能にするとともに、演算の無駄を削減し、結果的に消費電流の削減効果を得ることができる。
【００７１】
本実施の形態における探索の具体例を図１０に示す。図１０の２ステップ目では、１ステップ目で位置１ｌが最小であったため、探索位置設定基準２を含み未探索領域が最大となる演算範囲として、位置２Ｃを中心とする領域を演算範囲設定手段１１０が設定していることが示されている。
【００７２】
図８（ｄ１）〜（ｄ３）では、探索終了直近の演算領域（探索範囲）の動作の様子を示している。ここで、枠内の数値は演算の進行ステップ、枠内の表示ａはすでに探索が終了している探索位置を模式的に示したものである。
【００７３】
図８（ｄ１）は、黒抜き部が最大相関である場合に３ステップで探索が終了する様子を示している。２ステップ目では、１ステップ目で見つかった最大相関位置（黒抜き部）に対して、探索位置設定基準２による探索位置を含む演算範囲２に対する相関演算を行った結果、やはり黒抜き部が最大相関を示す場合に、残る探索位置設定基準３を含むように演算領域３が設定されていることを示している。
【００７４】
図８（ｄ２）は、枠内に表示ａで示す探索位置がすでに相関演算実施済みであった場合に黒抜き部の最大相関を検出する様子を示しており、２ステップ目で演算済み領域をさけて演算領域が設定されている。その結果、３ステップ目に入った時点で探索位置設定基準２の全てと探索位置設定基準３の一部がすでに演算済みとなっており、３ステップ目で探索位置設定基準３を含むように演算範囲が設定されている。
【００７５】
図８（ｄ３）も、枠内に表示ａで示す探索位置がすでに相関演算実施済みであったが、２ステップ目に入った時点で探索位置設定基準２の一部がすでに演算済みとなっているので、２ステップ目で残りの探索位置設定基準２と３を含むように演算範囲が設定されている。
【００７６】
図８（ｅ）では、３ステップ目で横方向の探索範囲を設定する場合に、１ステップ目に相関演算が終了している部分と重なりを持たないように、すなわち未探索の位置が最大となるように演算範囲を設定している例である。
【００７７】
（実施の形態３）
実施の形態１、２では探索位置が３×３の９位置である場合について述べたが、探索位置がそれ以上に増えても全く同じ考え方ができる。ただし、上下左右方向に対しては、より効率的に極値を探索するために、最小相関係数の検出位置に応じて探索位置の設定位置を変更する。３×３の探索範囲では上下左右では１方向に延長する形で探索位置を設定したが、例えば５×５の探索位置を持つ場合には、図１１に示すように、最小値の検出位置に応じて、やや上より、やや下より、真横の３方向を設定可能とする。
【００７８】
図１１（ａ１）、（ａ２）は図８（ａ）に対応し、上下左右方向に対しては、真横、上横、下横（不図示）の３箇所の探索位置設定基準１が生じることを示している。図１１（ｂ）、（ｃ）はそれぞれ図８（ｂ）、（ｃ）に対応し、実施の形態１、２に対応した動作が可能となる探索位置設定基準１〜３を示している。特に、図１１（ｃ）は最小相関係数位置が検索範囲の４隅であった場合の探索位置設定基準２および探索位置設定基準３の設定方法を示した図である。
【００７９】
実施の形態１に対応した動作では、未探索の探索位置設定基準１を全て含み、かつ、未探索の探索位置（図１１の白抜き部）を最大数含むように次ステップの探索範囲設定を設定することで、最小相関係数位置を探索するものである。
【００８０】
実施の形態２に対応した動作では、４隅のうちのいずれかが最小相関係数であった場合に、未探索の探索位置設定基準２を全て含み、かつ、探索位置設定基準２のうち一箇所でも探索済みであれば探索位置設定基準３を含み、かつ、その他の未探索位置を最大数含むように次ステップの探索範囲設定を設定し、最小相関係数位置を探索するものである。
【００８１】
図１１（ｄ１）、（ｄ２）に、探索位置設定基準２および探索位置設定基準３を使用した場合の探索範囲の移動の様子を示す。図１１（ｄ１）は最大相関位置（黒抜き部）を３ステップで決定する様子を示している。２ステップ目では探索位置設定基準２を全て含むように探索範囲が設定され、３ステップ目では、探索位置設定基準２が全て探索済みなため、探索位置設定基準２および探索位置設定基準３を全て含むように探索範囲が設定されている。
【００８２】
図１１（ｄ２）は、枠内に表示ａで示す探索位置がすでに相関演算実施済みであった場合に、最大相関位置を決定するまでの直近の２ステップを示している。ここで示す２ステップ目では、探索位置設定基準２が一部、直近２ステップまでに探索済みであるために、探索位置設定基準２および探索位置設定基準３を全て含むように探索範囲を設定している。
【００８３】
（実施の形態４）
本実施の形態は、実施の形態１に示した探索位置設定手段と、実施の形態２に示した探索位置設定手段とを適応的に切り替えるものである。探索開始当初は実施の形態２に従って探索範囲を設定し、探索が進行したときに実施の形態１に従って探索範囲を設定する。こうすることで、すばやく相関係数の極値近傍までの探索を進めることができ、極地近傍の探索の速やかな収束が期待できる。
【００８４】
また、相関係数に応じて実施の形態１と実施の形態２の方法を切り替えてもよい。相関係数が所定以上の大きさであれば実施の形態２の方法に従い、所定以下になれば実施の形態１の方法に従って探索範囲を設定することで、同様の効果が期待できる。
【００８５】
図１５〜１８は本実施の形態の探索手順を示すフローチャートである。図１５〜１７は図１４におけるステップ３の演算範囲設定のみを示したものである。
【００８６】
図１５においては、探索回数すなわち現ブロックの相関演算実施回数が所定の回数を超えたときに、探索位置設定基準を切り替えるようにしている。また、図１６においては、現ブロックの相関係数の大きさが所定値を下回ったときに、探索位置設定基準を切り替えるようにしている。
【００８７】
また、探索開始に当たって、現在計算する基準ブロックではなく、これに隣接する基準ブロックの動きベクトルがすでに検出されている場合に、その結果を使用して探索開始位置を決定することにより、相関係数の極値近傍までの探索を早めることが期待できる。
【００８８】
探索開始位置を制御するために、本実施の形態の動きベクトル検出装置においては、後述する図７の構成図において、開始位置設定手段１１３を備えている。
【００８９】
図１８は、隣接する基準ブロックの動きベクトルが使用できる場合に、それによる探索開始位置を採用するか否かを決定する手順を示すフローチャートであり、図１７においては、その決定に応じて探索位置設定基準を切り替えるようにしている。
【００９０】
（実施の形態５）
相関演算では多くの計算を必要とする。例えば、１６×１６画素の基準ブロックに対して相関演算を行う場合は２５６回の引き算と２５６回の足し算が必要である。そこで、基準ブロック内の偶数画素のみを使用する等、図４や図１３に示すようなサブサンプリングが一般に行われている。
【００９１】
このとき、探索位置によってサブサンプリングを行う位置が変化する。このことを図１３を用いて説明する。図１３（ａ）は１６×１６画素の基準ブロックをサブサンプリングしている様子を示している。図において使用する画素を灰色で示す。
【００９２】
図１３（ｂ）、（ｃ）、（ｄ）は、探索基準位置の参照ブロックを示す。ここで、図１３（ｅ）に示す探索位置ｌ、Ｔ、ｔのそれぞれの参照ブロックを、図１３（ｂ）、（ｃ）、（ｄ）の太線枠で示す。図１３（ｂ）と（ｃ）の比較で分かるように、探索位置が１画素ずれると、参照ブロックのサブサンプリング位置が変化する。なお、他の探索位置は図示しないが、それぞれ太枠内で示される参照ブロックを１ラインずつ下にずらしたものである。
【００９３】
そのため、サブサンプリングを行うと、図５で示されるパイプライン処理の１、３、４、６、７、９ライン目（探索位置Ｔ、Ｃ、Ｂ以外）と２、５、８ライン目（探索位置Ｔ、Ｃ、Ｂ）を同時に実行することができない。あるいは、前者用と後者用に独立したパイプライン処理を用意する必要がある。
【００９４】
そこで、本実施の形態では、参照画像をサブサンプリングした画像データを２系統用意し、探索位置Ｔ、Ｃ、Ｂ以外の相関演算と探索位置Ｔ、Ｃ、Ｂの相関演算とに分離された参照ブロックの画像メモリを使用することで、パイプライン処理を可能にする。
【００９５】
なお、図示しないが、サブサンプリングを１画素おきではなく、２画素おき、３画素おきとしても、同様にサブサンプリングした参照ブロックの画像メモリを増やしていけばよい。例えば、２画素おきであるならば、探索位置ｔ、Ｌ、ｂは参照画像メモリ１、探索位置Ｔ、Ｃ、Ｂは参照画像メモリ２、その他は参照画像メモリ３とすれば同様の効果が得られる。
【００９６】
図７は本発明の実施の形態５に係る動きベクトル検出装置の構成を示すブロック図である。図７においては、図６に示した実施の形態１の構成に対して、参照画像メモリ１０２がサブサンプリング方法に応じてｎ個に増やされている。
【００９７】
なお、参照画像メモリ１０２は物理的に分割する必要はなく、同時にアクセスできればよいので、例えば、同一アドレスの上位を参照画像メモリ１、下位を参照画像メモリ２としてもよい（さらに複数に分けてもよい）。
【００９８】
図１２は、１画素おきのサブサンプリングを行った場合の相関演算器１〜相関演算器９が相関係数を算出するタイミングを、図５と同様に示した図である。基本的な動作は、図５に示した場合と同じであるが、相関演算器に対応する参照画像メモリが異なっている。
【００９９】
以上のように、本実施の形態ではサブサンプリング方法に応じて複数の参照画像メモリを使用可能にするため、サブサンプリングによるパイプラインの効率の悪化を回避し、動きベクトルの探索に要する時間の削減、あるいは所定時間内の動きベクトルの探索範囲の拡大ができるようになり、動きの早い被写体の動きベクトル探索が可能になる。
【産業上の利用可能性】
【０１００】
本発明の動きベクトル検出装置および方法は、従来のＯｎｅ  ａｔ  ａ  ｔｉｍｅ方式に比べて極値の探索を高速化することができる。さらに、所定の探索位置設定基準に基づき中心位置を移動させながら相関極値を探索するため、効率よく極値の探索を行うことができ、探索範囲の中心位置の１回の移動、あるいは最悪でも２回の移動の後に相関極値判定が可能になるという効果を有し、動画像圧縮符号化装置等に用いられる動きベクトル検出技術等として有用である。
【図面の簡単な説明】
【０１０１】
【図１】従来の動きベクトル検出装置の構成例を示すブロック図。
【図２】動きベクトル検出のための参照画像における探索範囲の概念図。
【図３Ａ】従来の動きベクトル検出のＯｎｅ ａｔ ａ ｔｉｍｅ方式の動作概念図。
【図３Ｂ】従来の動きベクトル検出のＯｎｅ ａｔ ａ ｔｉｍｅ方式の動作概念図。
【図４】サブサンプリングした基準ブロックと参照ブロックの例を示す図。
【図５】本発明の実施の形態１〜４に係る動きベクトル検出装置における相関演算器のパイプライン処理のタイミングを示す図。
【図６】本発明の実施の形態１〜４に係る動きベクトル検出装置の構成を示すブロック図。
【図７】本発明の実施の形態５に係る動きベクトル検出装置の構成を示すブロック図。
【図８】現在の最小相関係数位置から探索位置設定基準による次の探索範囲の設定方法を示す図。
【図９】本発明の実施の形態１に従った最小相関係数位置探索の具体例を示す図。
【図１０】本発明の実施の形態２に従った最小相関係数位置探索の具体例を示す図。
【図１１】本発明の実施の形態３に従った最小相関係数位置探索の具体例を示す図。
【図１２】本発明の実施の形態５に係る動きベクトル検出装置における相関演算器のパイプライン処理のタイミングを示す図。
【図１３】探索位置によりサブサンプリングを行う位置が変化する様子を説明する図。
【図１４】本発明の実施の形態１〜４に従った最小相関係数位置探索のフローチャート。
【図１５】本発明の実施の形態４に従った最小相関係数位置探索における探索領域設定のフローチャート。
【図１６】本発明の実施の形態４に従った最小相関係数位置探索における探索領域設定のフローチャート。
【図１７】本発明の実施の形態４に従った最小相関係数位置探索における探索領域設定のフローチャート。
【図１８】隣接する基準ブロックの動きベクトルが使用できる場合の探索開始位置を決定する手順を示すフローチャート。
【符号の説明】
【０１０２】
１０１  入力画像メモリ
１０２  参照画像メモリ
１０３  相関演算器
１０４  最小相関係数メモリ
１０５  比較器
１０６  最小相関係数位置メモリ
１０７  動きベクトル設定装置
１０８  アドレス生成器
１０９  探索終了判定手段
１１０  演算範囲設定手段
１１１  探索済み位置メモリ
１１２  相関演算制御手段
１１３  開始位置設定手段
２０１〜２０９  最小相関係数位置探索のステップ
【図１】
2006013873.tif 000004
【図２】
2006013873.tif 000005
【図３Ａ】
2006013873.tif 000006
【図３Ｂ】
2006013873.tif 000007
【図４】
2006013873.tif 000008
【図５】
2006013873.tif 000009
【図６】
2006013873.tif 000010
【図７】
2006013873.tif 000011
【図８】
2006013873.tif 000012
【図９】
2006013873.tif 000013
【図１０】
2006013873.tif 000014
【図１１】
2006013873.tif 000015
【図１２】
2006013873.tif 000016
【図１３】
2006013873.tif 000017
【図１４】
2006013873.tif 000018
【図１５】
2006013873.tif 000019
【図１６】
2006013873.tif 000020
【図１７】
2006013873.tif 000021
【図１８】
2006013873.tif 000022