(57)【要約】【課題】可変ブロックサイズ動き補償においては、予測誤差情報と付加伝送情報はトレードオフの関係にあるため、符号化効率と処理時間とを両立させることは困難であった。【解決手段】  ブロック及びサブブロックごとに、相関値ＳＡＤ_0〜ＳＡＤ_4、及び探索ベクトルＭＶ_0〜ＭＶ_4を保持する保持手段（１０６_0〜１０６_4，１０７_0〜１０７_4）を備える。ある探索精度において、該保持された相関値に基づいてブロックの分割構成を決定し（１０９）、さらに該保持された相関値と探索ベクトルに基づいて、より小さい探索精度における探索ベクトルを決定する。この処理を最終精度まで繰り返し、最終的な動きベクトルを得る。これにより、可変ブロックサイズ動き補償処理において、符号化効率を低下させることなく、短い処理時間でブロックの分割構成の決定及び動きベクトルの探索処理が可能となる。【選択図】  図１
2010016697.tif 000002
【特許請求の範囲】
【請求項１】
動画像のフレームをブロックに分割し、該ブロック、もしくは該ブロックを構成する複数種類のサイズのサブブロックを単位とした可変ブロックサイズ動き補償を行う動きベクトル探索装置であって、
現処理対象ブロックと、前記ブロック及び前記サブブロックに対応する全ての予測ブロックとの相関を示す相関値を保持する相関値保持手段と、
前記現処理対象ブロックについて、前記全ての予測ブロックに対する探索ポイントを示す動きベクトルを探索ベクトルとして保持する動きベクトル保持手段と、
現処理対象ブロックと、前記ブロック及び前記サブブロックに対応する全ての予測ブロックとの相関を示す相関値を算出する相関値算出手段と、
前記全ての予測ブロックのそれぞれについて、前記相関値算出手段が出力した相関値と、前記相関値保持手段に保持された相関値のうち、より高い相関を示すほうを選択して前記相関値保持手段に保持する選択手段と、
前記相関値保持手段に保持された相関値に応じて、前記ブロックを前記サブブロックに分割する際の分割構成を決定するブロック分割決定手段と、
前記相関値保持手段に保持された相関値と、前記動きベクトル保持手段に保持された前記探索ベクトルに応じて、前記ブロック分割決定手段で決定されたブロック分割構成に対応する予測ブロックに対する探索ベクトルを決定して前記動きベクトル保持手段に保持する動きベクトル決定手段と、を有し、
前記各手段は、前記予測ブロックにおける探索の精度が徐々に高くなるように繰り返し動作し、最終精度において前記動きベクトル決定手段により決定される探索ベクトルが、当該予測ブロックに対する最終的な動きベクトルとして決定されることを特徴とする動きベクトル探索装置。
【請求項２】
前記動きベクトル決定手段は、ある探索の精度において、前記相関値が最も高い相関を示す探索ポイントを示す動きベクトルを、当該予測ブロックに対する探索ベクトルとして決定することを特徴とする請求項１に記載の動きベクトル探索装置。
【請求項３】
ある探索の精度において、前記動きベクトル決定手段により決定された探索ベクトルが重複するブロック及びサブブロック同士でグループを形成し、
次の探索の精度においては、前記各手段は前記グループごとに実行されることを特徴とする請求項２に記載の動きベクトル探索装置。
【請求項４】
前記ブロック分割決定手段は、前記相関値保持手段に保持された相関値のうち、前記ブロックに対応する相関値と、該ブロックを構成する前記サブブロックに対応する相関値の総和と、の差分をとり、該差分値と予め設定した閾値との比較結果に応じて、前記分割構成を決定することを特徴とする請求項１乃至３のいずれか１項に記載の動きベクトル探索装置。
【請求項５】
前記閾値は、前記動きベクトル保持手段に保持された探索ベクトルに応じて決定されることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項６】
前記閾値は、フレーム内での累積処理時間に応じて決定されることを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項７】
前記相関値は、現処理対象ブロックと予測ブロックとの差分の絶対値和を示す値であることを特徴とする請求項１乃至６のいずれか１項に記載の動きベクトル探索装置。
【請求項８】
動画像のフレームをブロックに分割し、該ブロック、もしくは該ブロックを構成する複数種類のサイズのサブブロックを単位とした可変ブロックサイズ動き補償を行うために、現処理対象ブロックと、前記ブロック及び前記サブブロックに対応する全ての予測ブロックとの相関を示す相関値を保持する相関値保持手段と、前記現処理対象ブロックについて、前記全ての予測ブロックに対する探索ポイントを示す動きベクトルを探索ベクトルとして保持する動きベクトル保持手段と、を有する動きベクトル探索装置の制御方法であって、
現処理対象ブロックと、前記ブロック及び前記サブブロックに対応する全ての予測ブロックとの相関を示す相関値を算出する相関値算出ステップと、
前記全ての予測ブロックのそれぞれについて、前記相関値算出ステップにおいて出力された相関値と、前記相関値保持手段に保持された相関値のうち、より高い相関を示すほうを選択して前記相関値保持手段に保持する選択ステップと、
前記相関値保持手段に保持された相関値に応じて、前記ブロックを前記サブブロックに分割する際の分割構成を決定するブロック分割決定ステップと、
前記相関値保持手段に保持された相関値と、前記動きベクトル保持手段に保持された前記探索ベクトルに応じて、前記ブロック分割決定ステップにおいて決定されたブロック分割構成に対応する予測ブロックに対する探索ベクトルを決定して前記動きベクトル保持手段に保持する動きベクトル決定ステップと、を有し、
前記各ステップは、前記予測ブロックにおける探索の精度が徐々に高くなるように繰り返し実行され、最終精度において前記動きベクトル決定ステップにおいて決定される探索ベクトルが、当該予測ブロックに対する最終的な動きベクトルとして決定されることを特徴とする動きベクトル探索装置の制御方法。
【請求項９】
コンピュータを請求項１乃至７のいずれか１項に記載の動きベクトル探索装置として機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したコンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル動画像における動きベクトルを探索する動きベクトル探索装置及びその制御方法に関する。
【背景技術】
【０００２】
近年、ＭＰＥＧ（Moving Picture Experts Group）の国際標準動画像符号化方式に代表されるような、動画像圧縮符号化方式が普及している。この動画像圧縮符号化方式においては、現フレームの入力信号ブロックと動き補償により得られた参照フレームの局部復号信号ブロックとのフレーム間予測誤差信号を、ＤＣＴ変換によって符号化しているため、動き補償予測符号化方式と呼ばれる。動き補償予測符号化方式においては、動画像のフレームをブロックに分割し、該ブロック単位でのマッチングを行う、所謂ブロックマッチング法により動きベクトルの探索が行なわれる。
【０００３】
また、分割するブロックをさらにサブブロックに分割し、該ブロックの単位あるいは該サブブロックの単位で動き補償を行う方法がある。これは可変ブロックサイズ動き補償などと呼ばれ、動き補償の単位となるブロックサイズを固定したやり方より、より高い符号化効率が期待できる方法として知られる（例えば、特許文献１参照）。
【０００４】
可変ブロックサイズ動き補償においては、ブロックサイズを細かくすることによって予測誤差は小さくなるものの、ブロックの分割情報や動きベクトル等の付加伝送情報が増大する傾向にある。一方、ブロックサイズを大きくすれば付加伝送情報は少なくてすむものの、予測誤差情報はブロックサイズを小さくとった場合に比べ多くなってしまう。このように、可変ブロックサイズ動き補償において、予測誤差情報と付加伝送情報はトレードオフの関係にある。このため、動きの激しい領域においてはブロックを細分化し、そうでない背景などの静止領域にはブロックサイズを大きくとる、等の調整を行う必要があった。
【０００５】
ここで図７に、従来の可変ブロックサイズ動き補償における探索・ブロック分割処理の一例を示す。まずステップＳ７０１において、予め定められた探索アルゴリズムに従い、全てのブロック・サブブロック候補について、ＭＶ（Motion Vector；動きベクトル）を探索する。その際、それぞれのＭＶにおけるＳＡＤ（Sum of Absolute Difference；差分絶対値和）を求める。このＳＡＤは、現フレームの処理対象ブロックと、参照ブロック間における相関を示す値として用いられ、その値が小さいほど相関が高いと評価される。次にステップＳ７０２において、ステップＳ７０１で求めたそれぞれのＳＡＤ及びＭＶに基いて、ブロックの構成を決定する。続いてステップＳ７０３において、ステップＳ７０２で決定したブロックの構成に対応するブロック若しくはサブブロックのＭＶを選択し、決定する。
【０００６】
また図８に、上述した図７とは異なる処理例を示す。まずステップＳ８０１において、全てのブロック・サブブロック候補について、参照フレームとのＳＡＤを求める。次にステップＳ８０２において、ステップＳ８０１で求めたそれぞれのＳＡＤに基いて、ブロックの構成を決定する。続いてステップＳ８０３において、ステップＳ８０２で決定したブロックの構成に対応するブロック若しくはサブブロックに対してのみ、予め定められた探索アルゴリズムに従ってＭＶを探索し、決定する。
【特許文献１】特登録02716703号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記図７に示した可変ブロックサイズ動き補償における探索処理によれば、全てのブロック・サブブロック候補についてＭＶ探索を行うため、正確なブロック分割結果が得られる反面、ＭＶ探索処理において無駄が多い。したがって、結果として処理時間が増大してしまうという欠点があった。
【０００８】
また、図８に示した可変ブロックサイズ動き補償によれば、図７に示した処理よりも処理時間の面では有利である。しかしながら、参照フレームとのＳＡＤのみを用いてブロック構成を決定しているため、誤ったブロック分割がなされる確率が高くなり、符号化効率の面では不利になってしまうという欠点があった。
【０００９】
このように、従来の可変ブロックサイズ動き補償においては、符号化効率と処理時間とを両立させることは困難であった。
【００１０】
本発明は上述した問題を解決するためになされたものであり、以下のような機能を有する動きベクトル探索装置及びその制御方法を提供することを目的とする。すなわち、可変ブロックサイズ動き補償処理において、符号化効率を低下させることなく、短い処理時間でブロックの分割構成の決定及び動きベクトルの探索処理を可能とする。
【課題を解決するための手段】
【００１１】
上記問題を解決するための一手段として、本発明の動きベクトル探索装置は以下の構成を備える。
【００１２】
すなわち、動画像のフレームをブロックに分割し、該ブロック、もしくは該ブロックを構成する複数種類のサイズのサブブロックを単位とした可変ブロックサイズ動き補償を行う動きベクトル探索装置であって、現処理対象ブロックと、前記ブロック及び前記サブブロックに対応する全ての予測ブロックとの相関を示す相関値を保持する相関値保持手段と、前記現処理対象ブロックについて、前記全ての予測ブロックに対する探索ポイントを示す動きベクトルを探索ベクトルとして保持する動きベクトル保持手段と、現処理対象ブロックと、前記ブロック及び前記サブブロックに対応する全ての予測ブロックとの相関を示す相関値を算出する相関値算出手段と、前記全ての予測ブロックのそれぞれについて、前記相関値算出手段が出力した相関値と、前記相関値保持手段に保持された相関値のうち、より高い相関を示すほうを選択して前記相関値保持手段に保持する選択手段と、前記相関値保持手段に保持された相関値に応じて、前記ブロックを前記サブブロックに分割する際の分割構成を決定するブロック分割決定手段と、前記相関値保持手段に保持された相関値と、前記動きベクトル保持手段に保持された前記探索ベクトルに応じて、前記ブロック分割決定手段で決定されたブロック分割構成に対応する予測ブロックに対する探索ベクトルを決定して前記動きベクトル保持手段に保持する動きベクトル決定手段と、を有し、前記各手段は、前記予測ブロックにおける探索の精度が徐々に高くなるように繰り返し動作し、最終精度において前記動きベクトル決定手段により決定される探索ベクトルが、当該予測ブロックに対する最終的な動きベクトルとして決定されることを特徴とする。
【発明の効果】
【００１３】
以上の構成からなる本発明によれば、可変ブロックサイズ動き補償処理において、符号化効率を低下させることなく、短い処理時間でブロックの分割構成の決定及び動きベクトルの探索処理を可能とする。
【発明を実施するための最良の形態】
【００１４】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１５】
＜第１実施形態＞
●システム構成
図１は、本実施形態における動きベクトル探索装置の構成を示すブロック図である。本実施形態の動きベクトル探索装置においては、複数種類のブロックサイズによる可変ブロックサイズ動き補償を行うが、許容される可変ブロックサイズ例を図２に示す。すなわち本実施形態においては、図２に示すような１６×１６画素サイズのブロック０と、８×８画素サイズのサブブロック１〜４のみに対応する例として説明する。すなわち、１６×１６画素サイズのブロック０の単位で動き補償を行う場合と、該ブロックを更に分割した８×８画素サイズの４つのサブブロック１〜４毎に動き補償を行う場合と、のいずれかを選択して動き補償を行う例を示す。なお、より多くのブロックサイズにも対応するように、本実施形態を変形することも可能であり、１６×１６画素サイズと８×８画素サイズに限定されるものではない。
【００１６】
図１において、ＳＡＤ算出部１０１は、本実施形態における相関値算出手段として機能する。ＳＡＤ算出部１０１には、現フレームにおいて動き補償の対象となる入力ブロック（現処理対象ブロック）と、動き補償部１０２より出力される、参照フレームより動き補償されて切り出された参照ブロック（すなわち動き予測用の予測ブロック）が入力される。そして、該入力ブロックと参照ブロックとの相関を示す値として、図２に示すブロック０及びサブブロック１〜４のそれぞれに対応する差分絶対値和（ＳＡＤ）を、ＳＡＤ_0，ＳＡＤ_1，...，ＳＡＤ_4、として算出する。このＳＡＤ値は、その値が小さいほど相関が高いと評価される。
【００１７】
動き補償部１０２は、後述する制御部１１０より随時出力される探索ベクトルを入力し、参照フレームより該探察ベクトルの示す位置のブロックを切り出し、参照ブロックとしてＳＡＤ算出部１０１へ出力する。この際、ＳＡＤ算出部１０１の入力ブロックの入力タイミングと同期して参照ブロックが出力されるよう、制御される。以下、探索ベクトルを探索ＭＶ（ＭＶ：Motion Vector；動きベクトル）と表記する。
【００１８】
比較器１０３_0〜１０３_4はそれぞれ、ＳＡＤ算出部１０１が出力するＳＡＤ_0〜ＳＡＤ_4と、ＳＡＤ保持部１０６_0〜１０６_4の出力するＳＡＤmin_0〜ＳＡＤmin_4と、を入力する。そして、それらの比較結果を選択信号_0〜選択信号_4として、それぞれ選択器１０４_0〜１０４_4及び１０５_0〜１０５_4へと出力する。
【００１９】
選択器１０４_0〜１０４_4はそれぞれ、ＳＡＤ算出部１０１が出力するＳＡＤ_0〜ＳＡＤ_4と、ＳＡＤ保持部１０６_0〜１０６_4の出力するＳＡＤmin_0〜ＳＡＤmin_4を入力する。そして、比較器１０３_0〜１０３_4の出力する選択信号_0〜選択信号_4のタイミングに従って、それぞれが値の小さい方を選択してＳＡＤ保持部１０６_0〜１０６_4へと出力することにより、相関値を更新する。
【００２０】
選択器１０５_0〜１０５_4はそれぞれ、制御部１１０の出力する探索ＭＶと、ＭＶ保持部１０７_0〜１０７_4の出力するＭＶ_0〜ＭＶ_4を入力する。そして、そのいずれか一方を、比較器１０３_0〜１０３_4の出力する選択信号_0〜選択信号_4に従ってそれぞれ選択し、ＭＶ保持部１０７_0〜１０７_4へと出力する。
【００２１】
ＳＡＤ保持部１０６_0〜１０６_4は、本実施形態における相関値保持手段として機能する。ＳＡＤ保持部１０６_0は、選択器１０４_0の出力を入力とし、その値を保持してＳＡＤmin_0として、比較器１０３_0と選択器１０４_0、制御部１１０、ブロック分割決定部１０９へと出力する。また、制御部１１０の出力する初期化要求信号に従って初期化される。またＳＡＤ保持部１０６_1〜１０６_4はそれぞれ、選択器１０４_1〜１０４_4の出力を入力とし、その値をＳＡＤmin_1〜ＳＡＤmin_4として保持する。そして、該相関値を比較器１０３_1〜１０３_4と選択器１０４_1〜１０４_4、制御部１１０及び加算器１０８へと出力する。また、制御部１１０の出力する初期化要求信号に従って、それぞれが初期化される。すなわち、ＳＡＤ保持部１０６_0〜１０６_4に保持されるＳＡＤ値は、ＳＡＤ算出部１０１より順次出力されるＳＡＤ値が、それ以前に出力されたＳＡＤ値以下であった場合に更新される。そしてブロック若しくはサブブロックの単位で動き探索が終了した時点で、適宜制御部１１０より初期化信号がアサートされ、それぞれの値が初期化される。なお、この初期化の際には、ＳＡＤ値としてとり得る最大値が初期値として用いられる。
【００２２】
ＭＶ保持部１０７_0〜１０７_4は、本実施形態における動きベクトル保持手段として機能する。ＭＶ保持部１０７_0は、選択器１０５_0の出力を入力とし、その値を保持してＭＶ_0として、制御部１１０へ出力する。また、制御部１１０の出力する初期化要求信号に従って初期化される。またＭＶ保持部１０７_1〜１０７_4はそれぞれ、選択器１０５_1〜１０５_4の出力を入力とし、その値を保持してＭＶ_1〜ＭＶ_4として、それぞれ選択器１０５_1〜１０５_4及び制御部１１０へ出力する。また、制御部１１０の出力する初期化要求信号に従って、それぞれが初期化される。すなわち、ＭＶ保持部１０７_0〜１０７_4はそれぞれ、対応するＳＡＤ保持部１０６_0〜１０６_4の更新がなされる際の探索ＭＶ値で更新される。
【００２３】
加算器１０８は、ＳＡＤ保持部１０６_1〜１０６_4がそれぞれ出力するＳＡＤmin_1〜ＳＡＤmin_4を入力とし、これら各サブブロックの持つＳＡＤの最小値を合計した合計値ＳＡＤsumを、ブロック分割決定部１０９へ出力する。
【００２４】
ブロック分割決定部１０９は、ＳＡＤ保持部１０６_0の出力するＳＡＤmin_0と、加算器１０８の出力するＳＡＤsum、及び制御部１１０の出力するブロック分割閾値レベルを入力する。そして、ＳＡＤmin_0とＳＡＤsum、すなわち、ブロック０のＳＡＤ最小値と各サブブロックのＳＡＤ最小値の合計とを比較して、ブロック分割閾値レベルに基いてブロックを分割するか否かを判定する。該判定結果をブロック分割情報として、制御部１１０及び外部へと出力する。
【００２５】
制御部１１０は、本実施形態におけるベクトル決定手段として機能する。制御部１１０は、ＭＶ保持部１０７_0〜１０７_4の出力するＭＶ_0〜ＭＶ_4と、ＳＡＤ保持部１０６_0〜１０６_4の出力するＳＡＤmin_0〜ＳＡＤmin_4、及びブロック分割決定部１０９の出力するブロック分割情報を入力とする。そして、外部へＭＶを出力するとともに、ＳＡＤ保持部１０６_0〜１０６_4及びＭＶ保持部１０７_0〜１０７_4に対して、初期化要求信号を出力する。また、動き補償部１０２及び選択器１０５_0〜１０５_4に探索ＭＶを出力する。また、ブロック分割決定部１０９に対して、予め定められたブロック分割閾値レベルを出力する。
【００２６】
制御部１１０ではすなわち、予め定められた動き探索アルゴリズムに従って、ブロック若しくはサブブロックを単位とした探索シーケンスを実行する。該探索シーケンスにおいては、探索ポイントを定めてブロック及びサブブロックのＳＡＤを取得し、該取得結果に応じて次の探索ポイントを決定して出力する、といった動作を、動きベクトルが定まるまで繰り返す。そして動きベクトルが決定したら、該動きベクトルを外部へ出力し、次のブロック若しくはサブブロックの動き探索のために初期化要求信号をアサートする。また、動き探索シーケンスを行う際に、ブロック分割決定部１０９と連携して、ブロック及びサブブロックのＳＡＤ及びＭＶ情報を基に、ブロック分割の単位を決定する。
【００２７】
●探索処理（概要）
以下、本実施形態の動きベクトル探索装置における探索処理について、まずその概要を説明する。
【００２８】
本実施形態の探索アルゴリズムとしては、図３に示すように、階層毎（第１レイヤ，第２レイヤ，第３レイヤ，・・・）に徐々に細かく探索を行っていく方式を説明する。すなわち、第１レイヤにおいては探索範囲内で探索ポイントがなるべく均等に散らばるように選択して粗い探索を行い、最もＳＡＤ値が小さかった探索ポイントを、次の第２レイヤにおける探索ポイントの中心に設定する。そして第２レイヤにおいては、第１レイヤよりも探索ポイント同士の距離を小さくしてより細かい精度での探索を行い、その中で最もＳＡＤ値が小さかった探索ポイントを、次の第３レイヤにおける探索ポイントの中心に設定する。このような各レイヤの設定を、探索を行うことのできる最も細かい精度になるまで繰り返す。そして、最終精度である最後のレイヤにおいて最もＳＡＤ値の小さかった探索ポイントを、動きベクトルとして決定する。
【００２９】
なお、本発明は図３に示した探索アルゴリズムに限定されるものではない。すなわち、、探索をある単位で区切って、各探索単位毎に次の探索の起点となるポイントを決定し、その起点を中心に次の単位の探索を行っていく方式の探索アルゴリズムであれば、本発明に適用可能である。また、本実施形態では説明の便宜上、以下で探索範囲を(-4,-4)〜(+3,+3)として説明するが、本発明はもちろん、この探索範囲に限定されない。
【００３０】
図４は、本実施形態における探索・ブロック分割処理を示すフローチャートである。
【００３１】
まずステップＳ４０１において、動き探索の第１段階において探索を行う全ての探索ポイントのＳＡＤを、全てのブロック・サブブロック候補について取得する。ここで、動き探索の第１段階とは、図３で示した第１レイヤでの探索に相当する。
【００３２】
次にステップＳ４０２において、ステップＳ４０１で求めたＳＡＤに基づいてブロック分割を決定するとともに、それぞれのブロック若しくはサブブロックの、次の探索段階で行う探索の起点を決定する。すなわち、図３で示した探索アルゴリズムであれば、第１レイヤで探索した全ての探索ポイントのうち、最小のＳＡＤを持つ探索ポイントが当該起点、すなわち第２レイヤにおける探索ポイントの中心に相当する。
【００３３】
次にステップＳ４０３において、ステップＳ４０２で決定したブロック分割の構成から求まる全てのブロック・サブブロックのうち、次の探索段階で行う探索の起点が同じもの同士でグループを作成する。
【００３４】
次にステップＳ４０４において、ステップＳ４０３で求めたグループ毎に、次の探索段階の全探索ポイントのＳＡＤを、当該グループに属する全てのブロック・サブブロックについて算出する。
【００３５】
そしてステップＳ４０５において、当該探索段階が最終階層であるか否かを判定する。なお、最終階層であるか否かの判定は、制御部１１０に予め設定された階層情報に基づいて行われる。最終段階である場合はステップＳ４０７に進み、ステップＳ４０４で求めたＳＡＤに基づいて各ブロック・サブブロックの動きベクトルを決定する。本実施形態では第２レイヤが最終段階であるため、ステップＳ４０５からステップＳ４０７へ進み、最終的な動きベクトルが決定される。一方、最終階層でない場合はステップＳ４０６に進み、ステップＳ４０４で求めたＳＡＤに基いて次の探索段階で行う探索の起点を各ブロック・サブブロックについて決定し、ステップＳ４０１へと移行する。
【００３６】
●探索処理（詳細）
以下、上述した図４に示す本実施形態の探索処理について、さらに詳細に説明する。
【００３７】
図５に、本実施形態において、あるブロック・サブブロックの動き探索及びブロック分割決定にいたる過程の、探索ポイントの軌跡を示す。同図において、各円は全ての探索ポイントとなりうる候補を表し、最も上の行に示す-4〜3の数字は水平方向の動きベクトル成分を表し、最も左の列に示す-4〜3の数字は垂直方向の動きベクトル成分を表している。また、各円内の数字は、本探索ポイントの推移例における探索の順序を表しており、以下、これを探索No.と称する。例えば、同図に示す探索No.１〜９のポイントは、図３における第１レイヤで探索するポイントに対応し、探索No.１０〜１７及び１８〜２５のポイントは、第２レイヤで探索するポイントに対応している。
【００３８】
また図６は、図１に示すベクトル探索装置の構成において、図５に示した探索シーケンスによる各値（ＳＡＤ_0〜ＳＡＤ_4，ＳＡＤmin_0〜ＳＡＤmin_4，及びＭＶ_0〜ＭＶ_4）の推移を示した表である。同図において、「探索No.」は図５における探索No.に対応し、「探索ポイント」は対応する探索ポイントの位置を（水平成分，垂直成分）の座標形式で表している。
【００３９】
図６によれば、ＳＡＤmin_0〜ＳＡＤmin_4の各値は、それぞれＳＡＤ_0〜ＳＡＤ_4の各値がそれ以前に現れたＳＡＤ_0〜ＳＡＤ_4の各値以下になったタイミングで、当該ＳＡＤ値で更新されることが分かる。また、このような更新が行われる際には、対応するＭＶ_0〜ＭＶ_4の値も、そのときの探索ポイントの値で更新される。
【００４０】
上述したように探索No.１〜９は、図３における第１レイヤでの探索に相当する。この第１レイヤの探索において、ブロック０におけるＳＡＤ値（ＳＡＤ_0）は、探索ポイント（-2,0）において最小であったため、探索No.４においてＳＡＤmin_0及びＭＶ_0の値は、それぞれ４０，(-2,0)に更新されている。
【００４１】
また、同じく第１レイヤの探索において、ブロック１におけるＳＡＤ値（ＳＡＤ_1）は探索ポイント(2,2)において最小であったため、探索No.３においてＳＡＤmin_1及びＭＶ_1の値は、それぞれ９，(2,2)に更新されている。
【００４２】
同じく第１レイヤの探索において、ブロック２におけるＳＡＤ値（ＳＡＤ_2）は探索ポイント(-2,0)において最小であったため、探索No.４においてＳＡＤmin_2及びＭＶ_2の値は、それぞれ９，(-2,0)に更新されている。
【００４３】
同じく第１レイヤの探索において、ブロック３におけるＳＡＤ値（ＳＡＤ_3）は探索ポイント(-2,0)において最小であったため、探索No.４においてＳＡＤmin_3及びＭＶ_3の値は、それぞれ１０，(-2,0)に更新されている。
【００４４】
同じく第１レイヤの探索において、ブロック４におけるＳＡＤ値（ＳＡＤ_4）は探索ポイント(2,2)において最小であったため、探索No.３においてＳＡＤmin_4及びＭＶ_4の値は、それぞれ８，(2,2)に更新されている。
【００４５】
また、ＳＡＤsumはＳＡＤmin_1〜ＳＡＤmin_4の合計値であって、それらのいずれかが更新されたタイミングでＳＡＤsumも更新される。図５に示すシーケンス例であれば、第１レイヤにおいては探索No.４において最後の更新がなされ、その際の値は３６である。これらＳＡＤsum及びＳＡＤmin_1〜ＳＡＤmin_4の値は当然、探索シーケンスが進むに従って小さくなっていく。
【００４６】
図４のステップＳ４０１では、以上のように第１レイヤにおける全ての探索ポイント（探索No.１〜９）が評価される。すると次に、図４のステップＳ４０２に示したブロックの分割構成の決定がなされる。該決定は、少なくともその時点におけるＳＡＤmin_0の値、ＳＡＤsumの値、及び制御部１１０の出力するブロック分割閾値レベル、に基いて行われる。すなわち、ＳＡＤmin_0とＳＡＤsumの差分と、ブロック分割閾値レベルとの比較により、ブロックの分割構成が決定される。図６に示す例によれば、この時点ではＳＡＤmin_0の値は４０、ＳＡＤsumの値は３６であるため、その差分は４である。ここで、ブロック分割閾値レベルの単位をＳＡＤに合わせるものとし、その値が例えば２であったとすると、当該差分値（４）はブロック分割閾値レベル値（２）よりも大きいため、ブロック分割を行うという決定がなされる。このように、本実施形態におけるブロック構成決定にあたっては、ブロックのＳＡＤ値と、サブブロックのＳＡＤ値の総和との差分をとり、該差分値を所定の閾値と比較することによって、ブロック分割の粒度を調整可能とする。
【００４７】
なお、本実施形態におけるブロック分割要の閾値レベルは、状況に応じて変化させても良い。例えば、該閾値レベルをＭＶ_0〜ＭＶ_4の値に応じて適応的に変化させることにより、ＭＶ値に応じてブロック分割の粒度を調整することが可能となる。また、該閾値レベルをその時点におけるフレーム内で消費した累積処理時間に応じて変化させることにより、ブロック分割の粒度を変化させて処理時間を調整することが可能となる。
【００４８】
図４のステップＳ４０２では、上述したブロック分割構成の決定と同時に、それぞれのブロック・サブブロックの次の探索段階の起点が決定されるが、当該起点としては、その時点におけるＭＶ_0〜ＭＶ_4の値がそのまま対応する。但し図６に示した例では、上述したブロック分割の決定処理においてサブブロック分割を行う決定がなされたため、これ以降のＭＶ_0の値は、制御部１１０より初期化要求信号がアサートされるまで使用されない。
【００４９】
次に、図４のステップＳ４０３に示したように、４つのサブブロックで起点が同じもの同士でグループを作成する。この場合、ＭＶ_1とＭＶ_4、ＭＶ_2とＭＶ_3がそれぞれ等しい値となっているので、サブブロック１と４、サブブロック２と３、という２つのグループが作成される。
【００５０】
次に、図４のステップＳ４０４に示したように、上述したように作成された２つのグループ単位での探索を行う。サブブロック１と４で構成されるグループにおける第２レイヤの探索は探索No.１０〜１７に該当し、サブブロック２と３で構成されるグループにおける第２レイヤの探索は探索No.１８〜２５に該当する。
【００５１】
図６に示されるように、サブブロック１，４の最小ＳＡＤ値であるＳＡＤmin_1，ＳＡＤmin_4の値はそれぞれ７，６に更新され、対応するＭＶ_1，ＭＶ_4はそれぞれ(1,1)，(3,2)に更新される。そして、サブブロック２，３の最小ＳＡＤ値であるＳＡＤmin_2，ＳＡＤmin_3の値はそれぞれ８，８に更新され、対応するＭＶ_2，ＭＶ_3はそれぞれ(-1,1)，(-3,-1)に更新される。
【００５２】
次に、本実施形態では当該第２レイヤが最終レイヤであるため、図４のステップＳ４０７へと移行し、各サブブロックに対する最終的な動きベクトルがＭＶ_1〜ＭＶ_4の値に決定され、制御部１１０よりＭＶとして出力される。
【００５３】
この後、次のブロック・サブブロックの動きベクトルを求めるために、制御部１１０は初期化要求信号をアサートして、ＳＡＤ保持部１０６_0〜１０６_4及びＭＶ保持部１０７_0〜１０７_4の初期化を行う。
【００５４】
以上の動作を、フレーム内の画像データを全て処理するまで繰り返し行うことにより、最適な動きベクトルが検出される。
【００５５】
以上説明したように本実施形態によれば、各ブロック・サブブロックに対応するＳＡＤ及びＭＶを保持し、それらをＭＶ探索及びブロック構成決定の両工程で共有し、かつ該両工程を並行して行う。さらに、ブロック構成決定には、参照フレームとのＳＡＤ値のみならず動き補償された参照ブロック・サブブロックとのＳＡＤ値を用いる。これにより、良好なブロック分割結果を短時間で得ることが可能となる。
【００５６】
また、探索ポイントが重複するブロック及びサブブロック同士でグループを形成し、該グループごとに重複する探索ポイントのＳＡＤ値の算出を一括して同一期間内に行うことで、より処理の効率化を図ることが可能となる。
【００５７】
＜他の実施形態＞
本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮影装置、webアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００５８】
本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したコンピュータ可読のプログラムである。
【００５９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【００６１】
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM，DVD-R)などである。
【００６２】
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【００６３】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
【００６４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００６５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明に係る一実施形態における動きベクトル探索装置の構成例を示すブロック図である。
【図２】本実施形態におけるブロック及びサブブロックの構成例を示す図である。
【図３】本実施形態における探索アルゴリズムの概念を示す図である。
【図４】本実施形態における探索・ブロック分割処理を示すフローチャートである。
【図５】本実施形態における探索ポイントの推移例を示す図である。
【図６】図５の推移例に対応する各ＳＡＤ値及びＭＶ値の推移例を示す表である。
【図７】従来の探索・ブロック分割処理の一例を示すフローチャートである。
【図８】従来の探索・ブロック分割処理の一例を示すフローチャートである。
【図１】
2010016697.tif 000003
【図２】
2010016697.tif 000004
【図３】
2010016697.tif 000005
【図４】
2010016697.tif 000006
【図５】
2010016697.tif 000007
【図６】
2010016697.tif 000008
【図７】
2010016697.tif 000009
【図８】
2010016697.tif 000010