(57)【要約】  【課題】  被写体が高速かつランダムに画面を移動している場合でも、少ない演算量で精度の高い動き検出を可能とする動き検出方法を提供する。  【解決手段】  間引きブロックマッチングにおいては、重み付け手段１３はフレーム期待ベクトル、フィールド期待ベクトル、静止期待ベクトル、局所期待ベクトルから一致度または静止度を基に少なくとも１つ以上の期待ベクトルを選択し、選択した期待ベクトルＶｅｘｐが示す位置と現在の動きベクトルが示す位置との画面距離に対応した重み係数ｋと、メモリ１１のブロックマッチング結果とを乗算したものを評価値ＥＳＴとする。【選択図】  図２
2005204203.tif 000002
【特許請求の範囲】
【請求項１】
動き検出の対象となる処理ブロックと参照範囲内から作成した候補ブロックとのブロックマッチングにより動きベクトルを求める動き検出方法であって、
あらかじめ算出した複数種類の期待ベクトルから任意の期待ベクトルを少なくとも１つ以上選択し、前記選択した期待ベクトルを基に処理ブロックの動きベクトルを検出することを特徴とする動き検出方法。
【請求項２】
前記複数種類の期待ベクトルの選択は、前記処理ブロック単位に行うことを特徴とする請求項１に記載の動き検出方法。
【請求項３】
前記複数種類の期待ベクトルは、フレーム画像全体の動きから求めたフレーム期待ベクトルを含むことを特徴とする請求項１または請求項２に記載の動き検出方法。
【請求項４】
前記複数種類の期待ベクトルは、フィールド画像全体の動きから求めたフィールド期待ベクトルを含むことを特徴とする請求項１から請求項３までのいずれかに記載の動き検出方法。
【請求項５】
前記複数種類の期待ベクトルは、着目している処理ブロック近辺の動きから求めた局所期待ベクトルを含むことを特徴とする請求項１から請求項４までのいずれかに記載の動き検出方法。
【請求項６】
前記複数種類の期待ベクトルは、静止していることを表す静止期待ベクトルを含むことを特徴とする請求項１から請求項５までのいずれかに記載の動き検出方法。
【請求項７】
前記動きベクトルの検出は、前記処理ブロックと前記候補ブロックとのブロックマッチング結果に、前記選択した期待ベクトルが示す位置と前記候補ブロックの位置との画面距離に対応した重み付けを行ったものを評価値とすることを特徴とする請求項１から請求項６までのいずれかに記載の動き検出方法。
【請求項８】
前記画面距離に対した重み付けの比率は、前記選択した期待ベクトル毎に異なる比率で設定することを特徴とする請求項７に記載の動き検出方法。
【請求項９】
前記動きベクトルの検出は、少なくとも１つ以上の前記選択した期待ベクトルに対応した評価値全ての中から最良の結果を示した評価値に基づいて決定することを特徴とする請求項７または請求項８に記載の動き検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の高能率符号化等に用いられる動き検出方法に関する。
【背景技術】
【０００２】
近年、動画像の高能率符号化方法として、ＭＰＥＧ２等で採用されている動き補償予測方式が用いられている。動き補償予測方式は、符号化の対象となる処理フレームの輝度データをｍ×ｎ画素のブロック（処理ブロック）に分割し、各処理ブロックについて時間的に異なる他フレーム（参照フレーム）の輝度データにおけるｍ×ｎ画素のブロック（候補ブロック）との対応画素間における差分絶対値総和を評価値とし、その評価値が最小となる候補ブロック（予測ブロック）を参照範囲内で検索し、その位置への動き量（動きベクトル）と、対応する色差データ同士の差分も含めた画素差分を出力するものである。このような動き検出方法をブロックマッチング方式という。ここで、評価値は差分絶対値総和以外のものでもよく、例えば差分二乗総和を評価値としてもよい。動き補償予測手段により出力された動きベクトルは隣接マクロのベクトルとの差分演算処理、ベクトル用可変長符号化処理等（以上をベクトル符号化処理と総称する）が施される。また、画素差分は直交変換処理、量子化処理、可変長符号化処理等（以上を符号化処理と総称する）が施される。動き補償予測方式を用いると、画素差分を符号化するため、高能率な符号化が可能となる。
【０００３】
動き検出においては、高速ズームや高速パーン等のように処理フレーム中の被写体または背景等の動きが速い場合でも高画質を実現するために、広い参照範囲における検出が必要となる。しかし、広い参照範囲における動き検出を行うには、莫大な演算量が必要となり、ハードで実現する場合には回路規模やメモリバンド幅が増大し、また、ソフトで実現する場合には高速なＣＰＵを使用してもリアルタイム処理は非常に困難となる。
【０００４】
これを解決する第１の方法として、参照フレーム全体に対する処理フレーム全体の動きベクトルを求めることによって、大まかなフレームの動きベクトルを検出し、その後、個別の処理ブロック毎にフレーム全体の動きベクトルが示す画面位置を中心として詳細に動き検出を行う方式がある。つまり、フレーム全体の動きベクトルが示す画面位置を中心として比較的狭い参照範囲を検索するだけで、仮想的に広い参照範囲を検索したときと同じ効果を得ようというものである。これは、処理ブロックと広い参照範囲中の各候補ブロックとのブロックマッチングを行うことで評価値を求め、この処理を比較的少ない複数の処理ブロックに対して同様に行い、その後、処理ブロックに対する相対位置が一致する候補ブロックの評価値を累算し、その累算値が最小となる位置からフレーム全体の動きベクトルを求めるものである。以後は、各処理ブロックにおいてフレーム全体の動きベクトルが示す位置を中心に狭い参照範囲を検索していくことによって、少ない演算量で広い参照範囲における動き検出を可能としたものである。
【０００５】
また、前記課題を解決する第２の方法としては、処理ブロックも候補ブロックも輝度データを間引いたデータを使用する方式がある。この例としては、ｍ×ｎ画素の処理ブロックを間引いたｉ×ｊ画素（ｉ＜ｍ、ｊ＜ｎ）の間引き処理ブロックと、同様に間引いた候補ブロックとのブロックマッチングにより動きベクトルを検出するものであり、１つのブロックを構成する画素数が間引き率に対応して少なくなるため、演算量が減少する。また、高画質を実現するために広い参照範囲において動き検出をする場合にも、間引き率に対応して演算量が激減する。通常、間引き処理ブロックによって間引いた参照範囲内で動きベクトルが検索されると、その動きベクトルが示す画面位置を中心とする狭い参照範囲内を間引きしていないｍ×ｎ画素のブロックで詳細に動き検出を行う。つまり、間引きデータによって広い参照範囲内を動き検出することで大まかな動きベクトルを検出し、その後、大まかな動きベクトルが示す位置を中心に狭い範囲を検索していくことによって、少ない演算量で広い参照範囲における動き検出を実現しようというものである。
【特許文献１】特許第３１７１２４９号公報（第３−５頁、第１−３図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら従来の第１の動き検出方法では、パーン画像や被写体が一様に画面を移動している場合には効果が得られるが、ズーム画像や被写体がランダムに移動している場合には、フレーム全体の動きベクトルと処理ブロックの実際の動きベクトルが一致せずに、その後、動き検出が行われる狭い参照範囲内に最適な予測ブロックがなくなってしまうという課題がある。この場合には画質に著しい劣化が発生することになる。
【０００７】
また、従来の第２の動き検出方法では、間引きした処理ブロックと間引きした候補ブロックとをブロックマッチングすることにより、画像によっては特徴点が間引かれたためにブロックマッチング結果が悪くなり、本来検出されるべき動きベクトルが検出できなくなるという課題がある。これを図５の概念図に基づいて説明する。
【０００８】
図５において（ａ）は処理ブロック、（ｂ）は候補ブロック、（ｃ）は処理ブロック（ａ）の間引きデータ、（ｄ）は候補ブロック（ｂ）の間引きデータを示す概念図である。図５（ｃ）及び（ｄ）においては、それぞれ（ａ）及び（ｂ）の水平画素を１／２に間引いた例としている。間引きデータを作成する場合、通常はフレームまたはフィールドに対して間引きを行う。そのため、フレームまたはフィールドに対する相対位置が処理ブロックと候補ブロックで異なると、図５のように、全画素を使ったブロックマッチング（ａとｂとのブロックマッチング）では一致するものが、間引き画像を使ったブロックマッチング（ｃとｄとのブロックマッチング）では一致しない場合が発生する。この場合には、動き検出で本来検出されるべき候補ブロックではなく、他の候補ブロックを予測ブロックとして符号化するため、画質に著しい劣化が発生することになる。
【０００９】
本発明は上記課題を解決し、被写体が高速かつランダムに画面を移動している場合でも、少ない演算量で精度の高い動き検出を可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記の課題を解決するために次のような手段を講じる。
【００１１】
本発明による動き検出方法は、動き検出の対象となる処理ブロックと参照範囲内から作成した候補ブロックとのブロックマッチングにより動きベクトルを求める動き検出方法であって、あらかじめ算出した複数種類の期待ベクトルから任意の期待ベクトルを少なくとも１つ以上選択し、前記選択した期待ベクトルを基に処理ブロックの動きベクトルを検出することを特徴とするものである。
【００１２】
複数種類の期待ベクトルは、ズーム画像や被写体が高速、ランダムに移動していてフレーム全体の動きベクトルと処理ブロックの実際の動きベクトルが一致しなくなるような場合を含めて、多様な動きを捕捉するために設定されるものである。複数種類の期待ベクトルの詳細は後述する。
【００１３】
すなわち、複数種類の期待ベクトルから処理ブロックの本来の動きに対応した期待ベクトルを選択し、選択した期待ベクトルを基に処理ブロックの動きベクトルを検出するので、被写体がフレーム内およびフレーム間で様々な動きをしている場合にも適応的に期待ベクトルを設定することができる。つまり、まずは広い参照範囲で期待ベクトルを用いて間引きブロックマッチングでの粗い動きの動きベクトルを検出し、得られた動きベクトルから狭い参照範囲を設定し、全画素でのブロックマッチングで精度の高いブロックマッチングを行って高精度に動きベクトルを検出する。これにより、少ない演算量で精度の高い真の動きベクトルの検出が可能になるという顕著な効果が得られる。
【００１４】
上記の動き検出方法において、複数種類の期待ベクトルの算出を処理ブロック単位に行うように構成すれば、フレーム内の複数の被写体がランダムに動いている場合でも適応的に期待ベクトルを設定することができ、少ない演算量で精度の高い動き検出が可能になるというという顕著な効果が得られる。
【００１５】
また、上記の動き検出方法において、複数種類の期待ベクトルの中にフレーム画像全体の動きから求めたフレーム期待ベクトルを含むように構成すれば、高速パーン等のフレーム全体が均一に動いている場合にも少ない演算量で精度の高い動き検出が可能になるという顕著な効果が得られる。
【００１６】
また、上記の動き検出方法において、複数種類の期待ベクトルの中にフィールド画像全体の動きから求めたフィールド期待ベクトルを含むように構成すれば、フィールド毎に動き量が異なるような高速パーン等の場合にも少ない演算量で精度の高い動き検出が可能になるという顕著な効果が得られる。
【００１７】
また、上記の動き検出方法において、複数種類の期待ベクトルの中に着目している処理ブロック近辺の動きから求めた局所期待ベクトルを含むように構成すれば、処理フレーム中の複数の被写体がランダムに動いている場合でも少ない演算量で精度の高い動き検出が可能になるという顕著な効果が得られる。
【００１８】
また、上記の動き検出方法において、複数種類の期待ベクトルの中に静止していることを表す静止期待ベクトルを含むことで、フレーム全体や一部の被写体が静止している場合でも少ない演算量で精度の高い動き検出が可能になるという顕著な効果が得られる。
【００１９】
また、上記の動き検出方法において、動きベクトルの検出は、処理ブロックと候補ブロックとのブロックマッチング結果に、選択した期待ベクトルが示す位置と候補ブロックの位置との画面距離に対応した重み付けを行ったものを評価値とするように構成すれば、期待ベクトルに類似した動きベクトルを持つ候補ブロックを選びやすくなり、被写体が高速かつランダムに画面を移動している場合でも、少ない演算量で精度の高い動き検出が可能になるという顕著な効果が得られる。
【００２０】
また、上記の動き検出方法において、画面距離に対した重み付けの比率は、選択した期待ベクトル毎に異なる比率で設定するように構成すれば、複数種類の期待ベクトルの中から２つ以上の期待ベクトルを選択して動きベクトルを検出する場合に、特定の期待ベクトルが選ばれやすくなるように意図的に差別化することができ、少ない演算量で更に精度の高い動き検出が可能になるという顕著な効果が得られる。
【００２１】
また、上記の動き検出方法において、動きベクトルの検出は、少なくとも１つ以上の選択した期待ベクトルに対応した評価値全ての中から最良の結果を示した評価値に基づいて決定するように構成すれば、少ない演算量で更に精度の高い動き検出が可能になるという顕著な効果が得られる。
【発明の効果】
【００２２】
以上のように本発明の動き検出方法によれば、あらかじめ算出した複数種類の期待ベクトルから処理ブロックの本来の動きに対応した任意の期待ベクトルを少なくとも１つ以上選択し、選択した期待ベクトルを基に処理ブロックの動きベクトルを検出するので、被写体がフレーム内およびフレーム間で様々な動きをしている場合にも適応的に期待ベクトルを設定することができ、少ない演算量で精度の高い動き検出が可能になるという顕著な効果が得られる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明にかかわる動き検出方法の実施の形態を図面に基づいて詳細に説明する。
【００２４】
図１は本発明の動き検出方法を用いた動き検出装置の一実施例を示したものである。図１において、１は処理フレームを入力し、動き検出を行う対象であるｍ×ｎ画素の処理ブロック及び対応する色差データを出力すると共にフレームにおける処理ブロックの座標位置（以下、画面位置）を出力する処理ブロック生成手段、２は参照フレームを入力し、参照範囲内からｍ×ｎ画素の候補ブロック及び対応する色差データを出力すると共に候補ブロックの画面位置を出力する候補ブロック生成手段、３は候補ブロック生成手段２が出力する画面位置から処理ブロック生成手段１が出力する画面位置を減算して動きベクトルを算出する減算器、４は減算器３が出力する動きベクトルを一時的に格納するメモリ、５はメモリ４に格納されている動きベクトルから局所期待ベクトル（処理ブロック近辺の動きに対応）を算出する局所期待ベクトル算出手段、６は端子ｗ側に切り換えているときには処理ブロック生成手段１が出力する輝度データを出力し、端子ｚ側に切り換えているときには処理ブロック生成手段１が出力する輝度データ及び対応する色差データ（総称して画素データ）を出力するスイッチ、７は端子ｗ側に切り換えているときには候補ブロック生成手段２が出力する輝度データを出力し、端子ｚ側に切り換えているときには候補ブロック生成手段２が出力する画素データ（輝度データ及び対応する色差データ）を出力するスイッチ、８はスイッチ７を介して入力した候補ブロックの輝度データからスイッチ６を介して入力した処理ブロックの輝度データを減算する減算器、９は減算器８の出力を絶対値演算するＡＢＳ演算器、１０はＡＢＳ演算器９の出力とメモリ１１の出力を加算する加算器、１１は加算器１０の出力を一時的に格納するメモリ、１２はＷＩＥＧＨＴ信号のＯＮ／ＯＦＦによりメモリ１１の出力（ブロックマッチング結果）を重み付け手段１３または比較器１４のいずれかに出力するスイッチ、１３は局所期待ベクトル算出手段５の局所期待ベクトルと減算器３の動きベクトルとメモリ１１の出力を入力し評価値を出力する重み付け手段、１４はメモリ１１または重み付け手段１３の出力とメモリ１５の格納データとを比較し、重み付け手段１３の出力の方が小さい場合に暫定最小評価値としてメモリ１５へ出力する比較器、１５は比較器１４が出力する暫定最小評価値を一時的に格納するメモリ、１６はＯＵＴ信号が入力されるとメモリ４の動きベクトルをベクトル符号化手段へ出力するスイッチ、１７はスイッチ７を介して入力した候補ブロックの画素データからスイッチ６を介して入力した処理ブロックの画素データを減算し、画素差分を算出する減算器である。
【００２５】
処理ブロック生成手段１は、処理ブロックを構成する輝度データを規則的に間引き、残った輝度データで構成される間引き処理ブロックを生成してスイッチ６へ出力すると共に、同じ規則で間引いた処理フレーム（以下、間引き処理フレーム）に対する間引き処理ブロックの画面位置を減算器３に出力する機能を有する。また、候補ブロック生成手段２は、間引き処理ブロックを生成したときと同じ規則で参照フレームの輝度データを間引き、残った輝度データで構成される間引き参照フレームにおいて、参照範囲に対応する範囲内から間引き候補ブロックを生成してスイッチ７へ出力すると共に、間引き参照フレームに対する間引き候補ブロックの画面位置を減算器３に出力する機能を有する。
【００２６】
以上のように構成された動き検出装置について、以下にその動作を述べる。
【００２７】
本装置は、まず広い参照範囲内において間引き処理ブロックと間引き候補ブロックとのブロックマッチング（以下、間引きブロックマッチング）により評価し、評価値が最小となる候補ブロックを中心として、次に狭い参照範囲内において全画素を用いた処理ブロックと候補ブロックとのブロックマッチング（以下、単にブロックマッチング）により評価し、評価値が最小となる候補ブロックを動き検出の検出結果とする手順で処理する。
【００２８】
ここで、説明の都合上、間引き方法は水平方向及び垂直方向において２画素につき１画素ずつを等間隔に間引くものとする。つまり、水平及び垂直方向の画素数は１／２（ｍ／２×ｎ／２画素のブロック）になる。また、間引き方法については本発明の範囲を限定するものではなく、間引き方法を変更しても問題ない。
【００２９】
まず、広い参照範囲内における間引きブロックマッチングが行われる。このときには、スイッチ６及びスイッチ７は端子ｗ側に切り換えられ、スイッチ１２はＷＥＩＧＨＴ信号が入力されているため端子ｗ側に切り換えられている。また、ＯＵＴ信号は解除されているためスイッチ１６はＯＦＦ動作をしている。
【００３０】
処理ブロック生成手段１は、入力した処理フレームから符号化の対象となる処理ブロックに対応した間引き処理ブロックを生成すると共に、間引き処理ブロックの画面位置を出力する。また、候補ブロック生成手段２は、入力した参照フレームから間引き参照フレームを生成し、参照範囲に対応した範囲内から間引き候補ブロックを生成すると共に、間引き候補ブロックの画面位置を出力する。ここで、間引き率は水平及び垂直方向が１／２であるので、間引き処理ブロック及び間引き候補ブロックの画面位置のｘ座標及びｙ座標は、処理ブロック及び候補ブロックのｘ座標及びｙ座標の各々１／２の値となる。減算器３では候補ブロック生成手段２が出力した間引き候補ブロックの画面位置から処理ブロック生成手段１が出力した間引き処理ブロックの画面位置を減算することで動きベクトルを算出する。
【００３１】
一方、処理ブロック生成手段１で生成した間引き処理ブロックは１画素ずつ出力され、スイッチ６を介して減算器８へ供給される。また、候補ブロック生成手段２で生成した間引き候補ブロックも処理ブロック生成手段１から出力される間引き処理ブロックの画素に対応して１画素ずつ出力され、スイッチ７を介して減算器８へ供給される。減算器８は、間引き候補ブロックの画素の輝度データから間引き処理ブロックの画素の輝度データを減算し、ＡＢＳ演算器９で絶対値演算を行う。ＡＢＳ演算器９の出力は加算器１０においてメモリ１１の出力と加算され、再びメモリ１１へ格納される。
【００３２】
以上をｍ／２×ｎ／２画素全てについて繰り返すことにより、メモリ１１には間引き候補ブロックと間引き処理ブロックとの差分絶対値総和ＤＭＣが格納される。以上の処理は（式１）を行ったことになる。
【００３３】
【数１】
2005204203.tif 000003
ここで、（式１）において、（ｘ，ｙ）は間引き候補ブロックまたは間引き処理ブロックの先頭画素からの相対的な画素位置を、Ｙｒ（ｘ，ｙ）は間引き候補ブロックにおける画素位置（ｘ，ｙ）の輝度データを、Ｙｔ（ｘ，ｙ）は間引き処理ブロックにおける画素位置（ｘ，ｙ）の輝度データを表している。
【００３４】
重み付け手段１３は、スイッチ１２を介して入力したメモリ１１の差分絶対値総和ＤＭＣに重み係数ｋを乗算することで評価値ＥＳＴを算出する。以上の処理は（式２）を行ったことになる。
【００３５】
【数２】
2005204203.tif 000004
重み付け手段１３の一例を図２に示す。図２において、２０１は処理フレームと参照フレームを入力し、フレーム期待ベクトルとフレーム一致度を算出するフレーム期待ベクトル算出手段、２０２はフレーム期待ベクトル算出手段２０１からのフレーム期待ベクトルと減算器３からの動きベクトルとを演算する演算器、２０３は処理フレームと参照フレームを入力し、フィールド期待ベクトルとフィールド一致度を算出するフィールド期待ベクトル算出手段、２０４はフィールド期待ベクトル算出手段２０３からのフィールド期待ベクトルと減算器３からの動きベクトルとを演算する演算器、２０５は着目している処理ブロック及び同位置の参照ブロックを入力し静止度を算出する静止度算出手段、２０６は減算器３からの動きベクトルを演算する演算器、２０７は局所期待ベクトル算出手段５からの局所期待ベクトルと減算器３からの動きベクトルとを演算する演算器、２０８はメモリ１１からのブロックマッチング結果に重み付け係数ｋを乗算し評価値を算出する評価値算出手段である。
【００３６】
以下に重み付け手段１３の動作について説明する。
【００３７】
フレーム期待ベクトル算出手段２０１は、処理フレーム全体に対し参照フレーム全体の動き量を求めることによってフレーム期待ベクトルを算出する。また、処理フレームと動き量で補正した参照フレームとのフレーム一致度を算出する。
【００３８】
ここで、フレーム期待ベクトルおよびフレーム一致度の算出は様々の方法が考えられるが、その一例を説明する。処理フレームの輝度データから複数の小ブロックを切り出し、それぞれについて参照フレームの輝度データとブロックマッチングを行う。ブロックマッチングによりフレーム動きベクトルが算出されると、複数の小ブロックの動きベクトルを平均し、フレーム期待ベクトルを算出する。また、ブロックマッチングで求められた複数の小ブロック毎の評価値を総和することでフレーム一致度を算出する。つまり、ブロックマッチングの評価値は小ブロックと参照フレームの小ブロックとが類似する程に値が０に近くなる。よって評価値の総和が小さい程フレーム一致度は高いということが言える。上記は一例であり、別の方法を使用しても構わない。
【００３９】
フィールド期待ベクトル算出手段２０３は、処理フィールド全体に対し参照フィールド全体の動き量を求めることによってフィールド期待ベクトルを算出する。また、処理フィールドと動き量で補正した参照フィールドとのフィールド一致度を算出する。
【００４０】
ここで、フィールド期待ベクトルおよびフィールド一致度の算出も様々な方法が考えられるが、その一例を説明する。まず、入力した処理フレームおよび参照フレームの輝度データを第１および第２フィールドに分離する。その後、分離された各フィールド毎に小ブロックを切り出し、フレーム期待ベクトル算出手段２０１と同様にして、フィールド期待ベクトルとフィールド一致度を算出する。フィールドの場合には、処理フレームと参照フレームのそれぞれに第１、第２フィールドがあるため、その組み合わせで４つのフィールド期待ベクトルとフィールド一致度が算出されることになる。上記は一例であり、別の方法を使用しても構わない。
【００４１】
上記フレーム期待ベクトル算出手段２０１とフィールド期待ベクトル算出手段２０３は、１フレームにつき一度だけ処理すれば良いことになる。
【００４２】
静止度算出手段２０５は、現在着目している処理ブロック及びそれと同位置の参照ブロックを入力し、静止度を算出する。静止度の算出方法としては、同様にブロックマッチングによる評価値を静止度とすることができるが、別の方法でも構わない。
【００４３】
演算器２０２，２０４，２０７は、減算器３の動きベクトルからフレーム期待ベクトル、フィールド期待ベクトル、局所期待ベクトルをそれぞれ演算することで、今回の間引き候補ブロックが各期待ベクトルからどれだけ離れているかを示すオフセット距離Ｌを算出する。オフセット距離は（式３）で求まる。
【００４４】
【数３】
2005204203.tif 000005
ここで、Ｖｘ，Ｖｙは現在着目している間引き候補ブロックと間引き処理ブロックによる求まった動きベクトルのｘ成分、ｙ成分であり、Ｖｅｘｐｘ，Ｖｅｘｐｙは期待ベクトルのｘ成分、ｙ成分を示している。
【００４５】
また、演算器２０６は、静止期待ベクトルに対する間引き候補ブロックのオフセット距離を算出するのであるが、静止期待ベクトルは常に０であるため、このオフセット距離Ｌは（式４）で求まる。
【００４６】
【数４】
2005204203.tif 000006
評価値算出手段２０８は、フレーム一致度、４つのフィールド一致度、静止度がそれぞれについて規定された基準値より小さい場合にフレーム期待ベクトル用のオフセット距離、フィールド期待ベクトル用のオフセット距離、静止期待ベクトル用のオフセット距離に応じた重み係数ｋをそれぞれ決定する。ここで、重み係数ｋは、各期待ベクトルと動きベクトルが類似している程に小さい値（通常、０＜ｋ≦１）となるように設定されている。各一致度または静止度が基準値より小さい場合とは、フレーム期待ベクトル、フィールド期待ベクトル、静止期待ベクトルが真の動きベクトルである可能性が大きいことを示しており、真の動きベクトルの可能性が高く、動き検出において選ばれやすくなる。逆に、基準値より大きい場合には、求めた各期待ベクトルが真の動きベクトルである可能性が低いため、重み係数を乗じない。これにより、真の動きベクトルでない偶然の極小点を間違って検出してしまうことがなくなる。
【００４７】
この重み係数ｋは、評価値算出手段２０８に内蔵するＲＯＭテーブルで生成されるか、あるいはオフセット距離Ｌを演算することで得ることができる。また、局所期待ベクトル用のオフセット距離に応じた重み係数ｋも決定される。以上の各重み係数の内、最小となる重み係数ｋを選定し、メモリ１１からのブロックマッチング結果に乗算し、評価値ＥＳＴとして比較器１４へ出力する。
【００４８】
ここで、フィールド期待ベクトルおよびフィールド一致度は処理フレーム、参照フレームそれぞれについて第１、第２フィールドの組み合わせで４通りずつ算出されるが、ＭＰＥＧ２等ではフィールド単位で動き予測補償を行うフィールド予測モードが存在するため、このモード時に処理ブロックのフィールドと候補ブロックのフィールドとが一致した組み合わせを４通りの中から１つ選択して使用することになる。
【００４９】
上記において、評価値ＥＳＴは、フレーム期待ベクトル用の重み係数、フィールド期待ベクトル用の重み係数、静止期待ベクトル用の重み係数、局所期待ベクトル用の重み係数の中から最小のものを１つ選定して算出するとしたが、複数の重み係数を使用して複数の評価値ＥＳＴを比較器１４に出力するように構成しても構わない。この場合には、後述する通り、比較器１４で最小の評価値を選定するため効果は同じことになる。
【００５０】
また、重み係数ｋはフレーム期待ベクトル用、フィールド期待ベクトル用、静止期待ベクトル用、局所期待ベクトル用でオフセット距離に対応して同じ比率、もしくは同じ係数値にする必要はなく、例えば、一致度または静止度に応じて適応的に比率や係数値を変えることにより、より高精度な動き検出が可能になる。これを説明する概念図を図３に示す。
【００５１】
図３においては、重み係数の種類が（ａ），（ｂ），（ｃ），（ｄ）の４種類存在する場合の図で、上記の比率は傾きに一致し、また、上記の係数値は最小点を基準にして同距離における値を示す。図３では（ｃ）が選ばれやすく設定されている例である。
【００５２】
また、期待ベクトルの種類は上記で説明したもの以外でもよく、本発明は複数種類の期待ベクトルから適応的に真の動きベクトルを検出するものである。
【００５３】
比較器１４ではメモリ１５に格納されている前回までの暫定最小評価値を入力し、今回の評価値ＥＳＴと比較評価する。今回の評価値ＥＳＴの方が小さいと判断した場合には今回の評価値を暫定最小評価値としてメモリ１５を更新すると共に、候補ブロック生成手段２とメモリ４へ今回の評価値が最小であったことを伝えるＭＩＮ信号を出力する。
【００５４】
候補ブロック生成手段２は、比較器１４からＭＩＮ信号を受け取ると、現在の間引き候補ブロックを動き検出の有力候補とする。メモリ４はＭＩＮ信号を受け取ると、減算器３から出力されている現在の動きベクトルを一時的に記憶する。
【００５５】
候補ブロック生成手段２は、参照範囲内において１画素ずつずらしながら間引き候補ブロックを順次出力し、上記処理を繰り返すことにより、メモリ１５には参照範囲内における最小評価値が格納される。
【００５６】
広い参照範囲内の全ての間引き候補ブロックを処理すると、候補ブロック生成手段２にＥＮＤ信号が入力され、候補ブロック生成手段２は、引き続き、最小評価値を導き出した候補ブロックを中心とする狭い参照範囲内において全画素を用いたブロックマッチングを開始する。最小評価値を導き出した候補ブロックの位置は間引き候補ブロックのｘ座標とｙ座標を各々２倍することで容易に換算できる。また、全画素を用いたブロックマッチングの開始時点では、スイッチ６及びスイッチ７は端子ｗ側のままであり、スイッチ１２はＷＥＩＧＨＴ信号が解除されるため端子ｚ側に切り換えられ、スイッチ１６はＯＵＴ信号が解除されているためＯＦＦ動作をしている。
【００５７】
処理ブロック生成手段１は、符号化の対象となる処理ブロックをスイッチ６を介して減算器８へ１画素ずつ出力すると共に、処理ブロックの画面位置を減算器３へ出力する。また、候補ブロック生成手段２は、間引きブロックマッチングで検出された候補ブロックを中心として、新たに狭い参照範囲を設定し、参照範囲内から候補ブロックを生成する。候補ブロック生成手段２は、生成した候補ブロックをスイッチ７を介して減算器８へ１画素ずつ出力すると共に、候補ブロックの画面位置を減算器３へ出力する。減算器３では候補ブロックの画面位置から処理ブロックの画面位置を減算することで動きベクトルを算出する。一方、減算器８では候補ブロックの画素の輝度データから処理ブロックの画素の輝度データを減算し、ＡＢＳ演算器９で絶対値演算を行う。ＡＢＳ演算器９の出力は加算器１０においてメモリ１１の出力と加算され、再びメモリ１１へ格納される。
【００５８】
以上をｍ×ｎ画素全てについて繰り返すことにより、メモリ１１には候補ブロックと処理ブロックとの差分絶対値総和ＤＭＣが格納される。以上の処理は（式５）を行ったことになる。
【００５９】
【数５】
2005204203.tif 000007
ここで、（式５）において、（ｘ，ｙ）は候補ブロックまたは処理ブロックの先頭画素からの相対的な画素位置を、Ｙｒ（ｘ，ｙ）は候補ブロックにおける画素位置（ｘ，ｙ）の輝度データを、Ｙｔ（ｘ，ｙ）は処理ブロックにおける画素位置（ｘ，ｙ）の輝度データを表している。
【００６０】
スイッチ１２は端子ｚ側に切り換えられているため、メモリ１１の差分絶対値総和ＤＭＣはそのまま評価値ＥＳＴとして比較器１４に出力される。以上の処理は（式６）を行ったことになる。
【００６１】
【数６】
2005204203.tif 000008
比較器１４ではメモリ１５に格納されている前回までの暫定最小評価値を入力し、今回の評価値ＥＳＴと比較評価する。今回の評価値ＥＳＴの方が小さいと判断した場合には今回の評価値ＥＳＴを暫定最小評価値としてメモリ１５を更新すると共に、候補ブロック生成手段２とメモリ４へ今回の評価値ＥＳＴが最小であったことを伝えるＭＩＮ信号を出力する。候補ブロック生成手段２は、比較器１４からＭＩＮ信号を受け取ると、現在の候補ブロックを予測ブロックの有力候補とする。メモリ４はＭＩＮ信号を受け取ると、減算器３から出力されている現在の動きベクトルを一時的に記憶する。
【００６２】
候補ブロック生成手段２は、参照範囲内において１画素ずつずらしながら候補ブロックを順次出力し、上記処理を繰り返すことにより、メモリ１５には参照範囲内における最小評価値が格納される。
【００６３】
参照範囲内の全ての候補ブロックを処理するとＯＵＴ信号が入力されるため、スイッチ６及びスイッチ７は端子ｚ側へ切り換え、スイッチ１６はＯＮ動作を行う。候補ブロック生成手段２はＯＵＴ信号を入力すると、ＭＩＮ信号が最後に入力された候補ブロックを予測ブロックとして最終決定する。そして、候補ブロック生成手段２は予測ブロックの画素データを、処理ブロック生成手段１は処理ブロックの画素データを各々１画素ずつスイッチ７またはスイッチ６を介して順次減算器１７へ出力する。減算器１７では予測ブロックの画素データから処理ブロックの画素データを減算することで画素差分を作成し、符号化処理を実行する符号化手段へ出力する。また、メモリ４はＯＵＴ信号を入力すると、ＭＩＮ信号が最後に入力されたときに格納した動きベクトルを、スイッチ１６を介してベクトル符号化処理を実行するベクトル符号化手段へ出力する。この動きベクトルは画素差分を算出した候補ブロックと処理ブロックの画面位置から作成したものである。
【００６４】
以上で、今回の動き検出の対象である処理ブロックにおける動き検出は終了する。他の未処理の処理ブロックについても同様に処理していく。
【００６５】
ここで、局所期待ベクトル算出手段５について図４を用いて一例を説明する。図４において、４０１はメモリ４に格納されている動きベクトルから単位期待ベクトルを算出する単位期待ベクトル算出手段、４０２は単位期待ベクトル算出手段４０１が出力する単位期待ベクトルを一時的に格納するメモリ、４０３はメモリ４０２に格納された単位期待ベクトルから局所期待ベクトルを算出する期待ベクトル算出手段、４０４はメモリ１５から最小評価値を入力し、相場評価値算出手段４０５へ送出すると共に、最小評価値とメモリ４０６の出力を比較し、最小評価値の方が小さい場合に単位期待ベクトル算出手段４０１へ更新要求のＣＡＬＣ信号を出力する比較器、４０５は比較器４０４の出力とメモリ４０６の出力を演算することによって相場評価値を算出する相場評価値算出手段、４０６は相場評価値算出手段４０５からの相場評価値を一時的に格納するメモリである。
【００６６】
局所期待ベクトル算出手段５は、ＷＥＩＧＨＴ信号が入力されているときのみ機能している。つまり、前述した間引き処理ブロックと参照範囲内における間引き候補ブロックとのブロックマッチングのときに動作を行う。ここで、説明の都合上、メモリ４０２には前回までに算出した単位期待ベクトルが格納されており、メモリ４０６には前回までに算出した相場評価値が格納されているものとする。単位期待ベクトルと相場評価値の詳細については後述する。
【００６７】
参照範囲内の全ての間引き候補ブロックを処理するとＥＮＤ信号が入力される。比較器４０４はＥＮＤ信号を入力すると、メモリ１５に格納されている参照範囲内における最小評価値ＥＳＴ［ｐ］を入力し、メモリ４０６に格納されている相場評価値ＥＳＴｐｒ［ｐ］と比較する。最小評価値ＥＳＴ［ｐ］が相場評価値ＥＳＴｐｒ［ｐ］以下の場合には、比較器４０４は単位期待ベクトル算出手段４０１へ単位期待ベクトルＶｅｘｐｕを更新するように要求するＣＡＬＣ信号を出力する。また、比較器４０４は相場評価値算出手段４０５へ最小評価値ＥＳＴ［ｐ］を出力する。相場評価値算出手段４０５は、最小評価値ＥＳＴ［ｐ］とメモリ４０６からの相場評価値ＥＳＴｐｒ［ｐ］とから、次回の動き検出時に使用する相場評価値ＥＳＴｐｒ［ｐ＋１］を（式７）のように算出する。
【００６８】
【数７】
2005204203.tif 000009
ここで、相場評価値ＥＳＴｐｒとは、過去に動き検出を行った間引き処理ブロックにおける最小評価値の相場を示した指標であり、ｐは今回動き検出を行う間引き処理ブロックの番号を示し、ＥＳＴ［ｐ］、ＥＳＴｐｒ［ｐ］は今回の間引き処理ブロックにおける最小評価値と今回使用した相場評価値であり、ＥＳＴｐｒ［ｐ＋１］は次回の間引き処理ブロックに使用する相場評価値を示している。また、（式７）において、係数ｃ及び係数ｄは、ｃ＋ｄ＝１の関係を持つ定数である。つまり、相場評価値ＥＳＴｐｒは過去に動き検出を行った間引き処理ブロックにおける最小評価値ＥＳＴを平滑化したものである。係数ｃと係数ｄは、今回の間引き処理ブロックから遠い過去の最小評価値ＥＳＴの影響を受け過ぎず、また最適な間引き候補ブロックがなく特異的に大きくなった過去の最小評価値ＥＳＴの影響を受けないように、統計的に決定される値である。
【００６９】
単位期待ベクトル算出手段４０１は比較器４０４からＣＡＬＣ信号を入力すると、最小評価値を算出したときの動きベクトルをメモリ４から入力し、単位動きベクトルＶｕ［ｐ］を求め、（式８）に従って次回の動き検出時に使用する単位期待ベクトルＶｅｘｐｕ［ｐ＋１］を算出し、メモリ４０２に記憶しておく。つまり、間引き処理ブロックの最小評価値ＥＳＴが相場評価値ＥＳＴｐｒ以下の場合に限って、今回の動きベクトルを加味した単位期待ベクトルＶｅｘｐｕに更新する。間引き処理ブロックの最小評価値ＥＳＴが相場評価値ＥＳＴｐｒ以下の場合とは、今回のブロックマッチング結果が信頼性の高いものであることを意味している。
【００７０】
【数８】
2005204203.tif 000010
ここで、（式８）に示した単位期待ベクトルＶｅｘｐｕは、間引き処理ブロックが１フィールド当たりに移動する画面距離を推定したものであり、Ｖｅｐｘｕ［ｐ］は今回の間引き処理ブロックに使用した単位期待ベクトル、Ｖｕ［ｐ］は今回の間引き処理ブロックにおける動きベクトルを１フィールド当たりに換算した単位動きベクトル、Ｖｅｐｘｕ［ｐ＋１］は次回の間引き処理ブロックに使用する単位期待ベクトルである。また、係数ａ及び係数ｂは、ａ＋ｂ＝１の関係を持つ定数である。つまり、単位期待ベクトルＶｅｘｐｕは過去に動き検出を行った間引き処理ブロックにおける単位動きベクトルＶｕを平滑化したものである。係数ａと係数ｂは、今回の間引き処理ブロックから遠い過去の単位動きベクトルの影響を受け過ぎず、またランダムに動いているような特異的な過去の単位動きベクトルの影響を受けないように、統計的に決定される値である。
【００７１】
期待ベクトル算出手段４０３は、着目している間引き処理ブロックに関して、参照フレームから処理フレームへ移動した画面距離を推定する局所期待ベクトルＶｅｘｐを（式９）のように算出する。
【００７２】
【数９】
2005204203.tif 000011
但し、ＤＩＳＴは参照フレームと処理フレームとの時間距離をフィールド数で表したものである。
【００７３】
以上のようにして、局所期待ベクトル算出手段５において局所期待ベクトルを算出し、重み付け手段１３に供給するのであるが、本発明はこれに限定するものではなく、局所的な期待ベクトルを算出できる方法であれば、別の方法でも構わない。
【００７４】
以上のように、本発明を実施するための最良の形態である動き検出装置は、まず広い参照範囲内において、粗い動き検出（間引きブロックマッチング）を行う。間引きブロックマッチングにおいては、重み付け手段１３はフレーム期待ベクトル、フィールド期待ベクトル、静止期待ベクトル、局所期待ベクトルから一致度または静止度を基に少なくとも１つ以上の期待ベクトルを選択し、選択した期待ベクトルＶｅｘｐが示す位置と現在の動きベクトルが示す位置との画面距離に対応した重み係数ｋと、メモリ１１の差分絶対値総和ＤＭＣ（ブロックマッチング結果）とを乗算したものを評価値ＥＳＴとする。候補ブロック生成手段２は、比較器１４での比較評価から評価値ＥＳＴが最小となる候補ブロックを検出する。その後、間引きブロックマッチングで最小評価値を導き出した候補ブロックの画面位置を中心とする狭い参照範囲内において、候補ブロックを順次生成し、詳細の動き検出（全画素を用いたブロックマチング）を行うことにより動きベクトルを決定する。
【００７５】
これにより、広範囲における動き検出を行うことができるため、被写体が高速かつランダムに画面を移動している場合でも、少ない演算量で精度の高い動き検出が可能となる。
【００７６】
なお、以上の説明では、広い参照範囲内におけるブロックマッチングは間引き画像で行う場合について説明をしたが、間引きしていない全画素を使った画像で行っても良い。この場合、各処理ブロックの動きベクトルが同じ値に揃いやすくなり、ベクトル符号化手段におけるベクトル差分が小さくなるため、符号化効率がよくなる。また、この場合、変形をしながら移動しているような処理ブロックについても正確な動き検出が可能になるという効果がある。
【００７７】
また、以上の説明では、ブロックマッチング結果は差分絶対値総和ＤＭＣで求めるとしたが、差分二乗総和で求めても構わない。
【００７８】
また、以上の説明では、局所期待ベクトルＶｅｘｐの算出、単位期待ベクトルＶｅｘｐｕの算出、相場評価値ＥＳＴｐｒの算出は処理ブロックがフレームデータで構成した場合について算出するようにしたが、第１のフィールドデータのみで構成する場合、第２のフィールドデータのみで構成する場合、参照方向が正または負の方向の場合で区別して算出するようにすれば、より動き検出の精度が向上する。
【００７９】
また、以上の説明では、重み係数ｋはオフセット距離を基に決定するとしたが、例えばベクトルオフセットのｘ成分とｙ成分の二次元テーブルによって取得する構成とする等、オフセット距離に類似するパラメータなら他のものを使用してもよい。
【００８０】
また、以上の説明では、重み付け手段１３において、メモリ１１に格納しているブロックマッチング結果である差分絶対値総和ＤＭＣに重み係数ｋを乗算するとしたが、加算やその他の演算を施すことでも実現できる。
【００８１】
また、以上の説明では、ハードウェアで本発明を実施した場合の一例について説明したが、ソフトウェアで実施しても同じ効果が得られるのは明らかである。
【産業上の利用可能性】
【００８２】
本発明にかかる動き検出方法は、時間軸方向に相関性を持つ動画や、同一時間内のフレーム画像において細分化されたブロック間に相関性を持つ静止画像において、類似性を検出する方法として有用であり、特に演算量を削減するために情報量を落とした画像における類似性検出や、元画像自体に情報量が少ない画像における類似性検出等に適している。
【図面の簡単な説明】
【００８３】
【図１】本発明の動き検出方法の実施の形態である動き検出装置の構成を示すブロック図
【図２】本発明の実施の形態における動き検出装置の重み付け手段の構成を示すブロック図
【図３】本発明の実施の形態における複数種類の期待ベクトルから算出される重み係数を示す概念図
【図４】本発明の実施の形態における動き検出装置の局所期待ベクトル算出手段の構成を示すブロック図
【図５】従来の動き検出装置における課題を示す概念図
【符号の説明】
【００８４】
１  処理ブロック生成手段
２  候補ブロック生成手段
３，８，１７  減算器
４，１１，１５  メモリ
５  局所期待ベクトル算出手段
６，７，１２，１６  スイッチ
９  ＡＢＳ演算器
１０  加算器
１３  重み付け手段
１４  比較器
２０１  フレーム期待ベクトル算出手段
２０２，２０４，２０６，２０７  演算器
２０３  フィールド期待ベクトル算出手段
２０５  静止度算出手段
２０８  評価値算出手段
４０１  単位期待ベクトル算出手段
４０２，４０６  メモリ
４０３  期待ベクトル算出手段
４０４  比較器
４０５  相場評価値算出手段
【図１】
2005204203.tif 000012
【図２】
2005204203.tif 000013
【図３】
2005204203.tif 000014
【図４】
2005204203.tif 000015
【図５】
2005204203.tif 000016