(57)【要約】【課題】演算コストを大幅に増加させることなく、動き量の検出精度を向上させる。【解決手段】空間傾斜演算部１２１は、入力画像の係数階層化ブロックの空間傾斜成分を演算する。係数階層処理部１１２は、入力画像間で空間傾斜成分についてのマッチングを行い、入力画像間の係数階層における動き量を検出する。評価値算出部１７３は、加算部１６７から供給される入力画像における動き量に基づいて、入力画像間で画素値についてのマッチングを行い、入力画像間の最下位階層における動き量を検出する。加算部１７５は、入力画像における動き量と最下位階層における動き量に基づいて、入力画像間の最終的な動き量を演算する。本発明は、例えば、ブロックマッチングを行う動き量検出装置に適用することができる。【選択図】図８
2009278323.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の所定の画素の範囲における画素値の空間傾斜を演算する空間傾斜演算手段と、
前記入力画像間で前記空間傾斜についてのマッチングを行い、前記入力画像間の第１の動き量を検出する空間傾斜マッチング手段と、
前記第１の動き量に基づいて、前記入力画像間で画素値についてのマッチングを行い、前記入力画像間の第２の動き量を検出する画素値マッチング手段と、
前記第１の動き量と前記第２の動き量に基づいて、前記入力画像間の最終的な動き量を演算する動き量演算手段と
を備える画像処理装置。
【請求項２】
前記空間傾斜演算手段は、さらに、前記所定の画素の範囲における画素値の平均値を演算し、
前記空間傾斜マッチング手段は、前記入力画像間で前記空間傾斜と前記平均値についてのマッチングを行う
請求項１に記載の画像処理装置。
【請求項３】
前記空間傾斜と前記平均値を用いて表される平面で前記所定の画素の範囲における画素値を表す面を近似したときの近似精度を演算する近似精度演算手段
をさらに備え、
前記空間傾斜マッチング手段は、前記入力画像間で、前記空間傾斜、前記平均値、および前記近似精度についてのマッチングを行う
請求項２に記載の画像処理装置。
【請求項４】
前記近似精度演算手段は、前記空間傾斜と前記平均値を用いて表される平面における前記所定の画素の範囲の画素値と、前記入力画像の前記所定の画素の範囲における画素値との差分に基づいて、前記近似精度を演算する
請求項３に記載の画像処理装置。
【請求項５】
前記空間傾斜演算手段は、さらに、前記空間傾斜を用いて表される平面で前記所定の画素の範囲における画素値を表す面を近似したときの前記平面の画素値方向の切片の値を演算し、
前記空間傾斜マッチング手段は、前記入力画像間で前記空間傾斜と前記切片の値についてのマッチングを行う
請求項１に記載の画像処理装置。
【請求項６】
前記空間傾斜と前記切片の値を用いて表される平面で前記所定の画素の範囲における画素値を表す面を近似したときの近似精度を演算する近似精度演算手段
をさらに備え、
前記空間傾斜マッチング手段は、前記入力画像間で、前記空間傾斜、前記切片の値、および前記近似精度についてのマッチングを行う
請求項５に記載の画像処理装置。
【請求項７】
前記近似精度演算手段は、前記空間傾斜と前記切片の値を用いて表される平面における前記所定の画素の範囲の画素値と、前記入力画像の前記所定の画素の範囲における画素値との差分に基づいて、前記近似精度を演算する
請求項６に記載の画像処理装置。
【請求項８】
前記空間傾斜演算手段は、前記入力画像の前記所定の画素の範囲における画素値を表す面を平面で近似し、その平面の空間傾斜を前記所定の画素の範囲における画素値の前記空間傾斜として演算する
請求項１に記載の画像処理装置。
【請求項９】
前記空間傾斜演算手段は、
注目している前記空間傾斜成分である注目成分を１以上のクラスのうちのいずれかのクラスにクラス分けするクラス分類を行うのに用いる、所定の画素の範囲における画素値を、前記入力画像からクラスタップとして抽出するクラスタップ抽出手段と、
前記クラスタップに基づいて、前記注目成分をクラス分類するクラス分類手段と、
前記注目成分を求めるのに用いる、前記所定の画素の範囲における画素値を、前記入力画像から予測タップとして抽出する予測タップ抽出手段と、
前記注目成分に対応する教師値と、前記入力画像の前記所定の画素の範囲における画素値に対応する生徒値とを用いることにより前記クラスごとに学習されたタップ係数を出力する出力手段と、
前記注目成分の前記クラスの前記タップ係数と、前記予測タップとを用いた予測演算により、前記空間傾斜を演算する予測手段と
を備える
請求項１に記載の画像処理装置。
【請求項１０】
入力画像を処理する画像処理装置が、
前記入力画像の所定の画素の範囲における画素値の空間傾斜を演算する空間傾斜演算ステップと、
前記入力画像間で前記空間傾斜についてのマッチングを行い、前記入力画像間の第１の動き量を検出する空間傾斜マッチングステップと、
前記第１の動き量に基づいて、前記入力画像間で画素値についてのマッチングを行い、前記入力画像間の第２の動き量を検出する画素値マッチングステップと、
前記第１の動き量と前記第２の動き量に基づいて、前記入力画像間の最終的な動き量を演算する動き量演算ステップと
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、特に、演算コストを大幅に増加させることなく、動き量の検出精度を向上させることができるようにした画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、動画像の動き量を検出する動き量検出方法として、ブロックマッチング法(例えば、特許文献１参照)が知られている。このブロックマッチング法では、図１に示すように、現在のフレーム１１において動き量の検出対象とする所定のブロックサイズの探索ブロック２１と、過去のフレーム１２において動き量の検出範囲とする探索範囲２２内に設定されるブロックサイズの全ての参照ブロック２３とのマッチングが行われる。
【０００３】
具体的には、ブロックサイズがｈ×ｗの画素のサイズであり、探索範囲２２のサイズがｈｓ×ｗｓの画素のサイズであるとすると、以下の式（１）を用いて、探索範囲２２内の全ての参照ブロック２３について評価値Ｅ(x,y)が求められる。
【０００４】
【数１】
2009278323.tif 000003
【０００５】
なお、式（１）において、ｘは、探索ブロック２１と参照ブロック２３とのｘ方向の距離を表し、ｙは、探索ブロック２１と参照ブロック２３とのｙ方向の距離を表す。また、ｚk（i,j）は、ｋフレーム目の、ブロック内のｘ方向にｉ番目であり、ｙ方向にｊ番目である画素(i,j)の画素値を表している。
【０００６】
そして、最小の評価値Ｅ（x,y）のxがｘ方向の動き量として検出され、ｙがｙ方向の動き量として検出される。
【０００７】
以上のように、ブロックマッチング法では、探索ブロック２１内の各画素の画素値と参照ブロック２３内の各画素の画素値との差分を求める必要があるため、演算量が膨大である。従って、装置が大型化したり、演算が長時間化したりする。
【０００８】
そこで、入力画像から、階層ごとに解像度の異なる複数の階層画像を作成し、その階層画像を用いて解像度の低い上位階層から順次ブロックマッチング法で動き量を検出することにより、演算量を削減する階層化動き量検出方法が提案されている(例えば、特許文献２参照)。
【０００９】
具体的には、この階層化動き量検出方法では、例えば、図２に示すように、階層数が２つである場合、最下位階層の入力画像（原画）の階層化ブロック３１内の複数の画素の画素値ｚi（図２の例では、ｉ=0,1,2,3）の平均値が、以下の式（２）により、最上位階層の階層画像としての平均値画像の１つの画素値３２として求められる。
【００１０】
【数２】
2009278323.tif 000004
【００１１】
そして、解像度の最も低い最上位階層で、ブロックマッチング法により大まかな動き量が検出される。次に、それより１つ下位の最下位階層において、最上位階層で検出された動き量だけ探索ブロックから離れた位置の周辺の画素の範囲だけを探索範囲として、ブロックマッチング法により、最上位階層より細かな動き量が検出される。
【００１２】
以上のように、階層化動き量検出方法では、解像度の低い上位階層で求められた動き量を用いて、それより下位の解像度の高い階層における探索範囲が限定されるので、階層数が多ければ多いほど、演算コストは低下する。
【００１３】
しかしながら、上位階層での動き量の検出結果が、それより下位の階層での動き量の検出に大きく影響を与えるため、上位階層で発生された動き量の検出エラーを下位階層で修正することができない場合が多い。
【００１４】
また、階層化動き量検出方法では、順次平均値化が行われるため、階層数が多ければ多いほど、動き量の検出精度が劣化する。具体的には、階層化動き量検出方法では、下位階層の階層画像の画素値の平均値が上位階層の階層画像の画素値とされるので、下位階層の階層画像が全く異なるものどうしであっても、同一の上位階層の階層画像が生成されてしまう場合がある。
【００１５】
例えば、図２において、階層化ブロック３１の画素値ｚ0乃至ｚ3が全て50である場合の平均値画像の画素値３２と、階層化ブロック３１の画素値ｚ0とｚ1が25であり、画素値ｚ0とｚ3が75である場合の画素値３２は、共に50となってしまう。
【００１６】
このような場合、上位階層で検出される動き量と、下位階層で検出されるべき動き量が対応せず、上位階層で検出された動き量に基づく探索範囲内で、下位階層で検出されるべき動き量が検出されないことがある。
【００１７】
そして、階層数が多ければ多いほど、平均値化が進むため、下位階層の階層画像が全く異なるものどうしから、同一の上位階層の階層画像が生成されてしまう場合が増加し、動き量の検出精度が劣化してしまう。
【００１８】
そこで、階層化ブロックの高周波成分として定義されるアクティビティをマッチングの対象とする特徴量として加えることで、動き量の検出精度を向上させる階層化動き量検出方法も提案されている(例えば、特許文献３参照)。
【００１９】
具体的には、この階層化動き量検出方法では、図３に示すように、画素値３２を含む平均値画像の階層（以下、平均値階層という）と、画素値３２に対応する画素のアクティビティ３３を含む平均値画像の各画素のアクティビティからなるアクティビティ画像の階層（以下、アクティビティ階層という）が設けられる。なお、アクティビティ画像を構成する各画素のアクティビティは、以下の式（３）により求められる。
【００２０】
【数３】
2009278323.tif 000005
【００２１】
そして、アクティビティ階層におけるマッチング結果と、平均値階層におけるマッチング結果とに基づいて、動き量が検出される。従って、平均値化により失われる、階層化ブロック内の各画素の画素値の平均値からの差分の総量も考慮して、動き量を検出することができる。その結果、動き量の検出精度が向上する。
【００２２】
【特許文献１】特公昭５４−１２４９２７号公報
【００２３】
【特許文献２】特開平０７−８７４９５号公報
【００２４】
【特許文献３】特開平０７−２２２１７０号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
しかしながら、図３に示したようにアクティビティ階層が設けられる場合であっても、アクティビティは、階層化ブロック内の各画素の画素値の平均値からの差分をスカラー量で表すため、階層化ブロック内の各画素の画素値の空間的な情報は失われたままである。
【００２６】
即ち、図３に示した階層化動き量検出方法では、階層化ブロック内の各画素の画素値の平均値からの差分の総量は考慮されるが、階層化ブロック内の各画素の画素値の平均値からの差分の変化については考慮されない。
【００２７】
その結果、下位階層の階層画像が全く異なるものどうしであっても、同一の上位階層の階層画像が生成され、これにより、動き量を誤検出してしまう場合がある。
【００２８】
例えば、図４に示すように、３つの異なる４×４の画素からなる入力画像(原画)４１−１乃至４１−３から、２×２の画素の画素値を階層化ブロックとして、２階層分の平均値画像とアクティビティ画像が生成されると、最上位階層において同一の平均値画像とアクティビティ画像が得られる。
【００２９】
具体的には、入力画像４１−１は、上部の２×４の画素の画素値が全て0であり、下部の２×４の画素の画素値が全て200である４×４の画素値からなる。そして、この入力画像４１−１から、上位階層としての第２階層の平均値階層の階層画像として、２×２の画素値からなる平均値画像４２−１が生成されるとともに、第２階層のアクティビティ階層の階層画像として、平均値画像４２−１の各画素のアクティビティからなるアクティビティ画像４４−１が生成される。
【００３０】
この平均値画像４２−１では、上部の１×２の画素の画素値が0となり、下部の１×２の画素の画素値は200となる。また、アクティビティ画像４４−１では、全ての画素のアクティビティが0となる。
【００３１】
次に、平均値画像４２−１から、第２階層の上位階層としての第３階層の平均値階層の階層画像として１×１の画素値からなる平均値画像４３−１が生成されるとともに、第３階層のアクティビティ階層の階層画像として、平均値画像４３−１の画素のアクティビティからなるアクティビティ画像４５−１が生成される。この平均値画像４３−１では、画素値は100となり、アクティビティ画像４５−１では、アクティビティは100となる。
【００３２】
また、入力画像４１−２は、左部の４×２の画素の画素値が全て0であり、右部の４×２の画素の画素値が全て200である４×４の画素値からなる。そして、入力画像４１−１と同様に、この入力画像４１−２から、左部の２×１の画素の画素値が0となり、右部の２×１の画素の画素値が200となる平均値画像４２−２が生成されるとともに、全ての画素のアクティビティが0となるアクティビティ画像４４−２が生成される。
【００３３】
次に、平均値画像４２−１と同様に、平均値画像４２−２から、画素値が100である平均値画像４３−２が生成されるとともに、アクティビティが100であるアクティビティ画像４５−２が生成される。
【００３４】
さらに、入力画像４１−３は、左上の２×２の画素の画素値が全て0であり、右下の２×２の画素の画素値が全て200である４×４の画素の画素値からなる。そして、入力画像４１−１と同様に、この入力画像４１−３から、左上と右下の１×１の画素の画素値が0となり、左下と右上の１×１の画素の画素値が200となる平均値画像４２−３が生成されるとともに、全ての画素のアクティビティが0となるアクティビティ画像４４−３が生成される。
【００３５】
次に、平均値画像４２−１と同様に、平均値画像４２−３から、画素値が100である平均値画像４３−３が生成されるとともに、アクティビティが100であるアクティビティ画像４５−３が生成される。
【００３６】
以上のように、入力画像４１−１乃至４１−３はそれぞれ異なる画像であるが、第３階層においては、入力画像４１−１乃至４１−３を構成する４×４の画素値が１×１の画素値に集約されるため、いずれも、平均値画像４３−１乃至４３−３の画素値が100となり、アクティビティ画像４５−１乃至４５−３のアクティビティが100となる。その結果、動き量が誤検出されてしまうことがある。
【００３７】
本発明は、このような状況に鑑みてなされたものであり、演算コストを大幅に増加させることなく、動き量の検出精度を向上させることができるようにするものである。
【課題を解決するための手段】
【００３８】
本発明の一側面の画像処理装置は、入力画像の所定の画素の範囲における画素値の空間傾斜を演算する空間傾斜演算手段と、前記入力画像間で前記空間傾斜についてのマッチングを行い、前記入力画像間の第１の動き量を検出する空間傾斜マッチング手段と、前記第１の動き量に基づいて、前記入力画像間で画素値についてのマッチングを行い、前記入力画像間の第２の動き量を検出する画素値マッチング手段と、前記第１の動き量と前記第２の動き量に基づいて、前記入力画像間の最終的な動き量を演算する動き量演算手段とを備える画像処理装置である。
【００３９】
本発明の一側面の画像処理方法は、入力画像を処理する画像処理装置が、前記入力画像の所定の画素の範囲における画素値の空間傾斜を演算する空間傾斜演算ステップと、前記入力画像間で前記空間傾斜についてのマッチングを行い、前記入力画像間の第１の動き量を検出する空間傾斜マッチングステップと、前記第１の動き量に基づいて、前記入力画像間で画素値についてのマッチングを行い、前記入力画像間の第２の動き量を検出する画素値マッチングステップと、前記第１の動き量と前記第２の動き量に基づいて、前記入力画像間の最終的な動き量を演算する動き量演算ステップとを含む画像処理方法である。
【００４０】
以上のような本発明の一側面においては、入力画像の所定の画素の範囲における画素値の空間傾斜が演算され、入力画像間で空間傾斜についてのマッチングが行われて、入力画像間の第１の動き量が検出され、第１の動き量に基づいて、入力画像間で画素値についてのマッチングが行われて、入力画像間の第２の動き量が検出され、第１の動き量と第２の動き量に基づいて、入力画像間の最終的な動き量が演算される。
【発明の効果】
【００４１】
以上のように、本発明の一側面によれば、演算コストを大幅に増加させることなく、動き量の検出精度を向上させることができる。
【発明を実施するための最良の形態】
【００４２】
まず、図５を参照して、本発明の動き量検出方法の例について説明する。
【００４３】
本発明の動き量検出方法では、例えば、図５に示すように、入力画像(原画)５１の２×２の画素の画素値を階層化ブロックとして1/4平均化が行われる。そして、その結果得られる２×２の画素の画素値からなる平均値画像５２が、入力画像(最下位階層の階層画像)５１の上位の平均値階層の階層画像として生成される。また、最上位階層としての係数階層において、入力画像５１の４×４の画素の画素値を階層化ブロックとして、階層化ブロックの空間傾斜成分ａおよびｂ並びにオフセットｃが生成される。
【００４４】
そして、最上位階層から順に、より上位の階層における動き量に基づいて動き量が検出され、最終的な動き量が検出される。具体的には、係数階層において動き量が検出され、その動き量に基づいて、係数階層より下位の平均値階層において動き量が検出される。その後、平均値階層における動き量に基づいて、平均値階層より下位の最下位階層において動き量が検出される。そして、全階層における動き量の和が最終的な動き量として検出される。
【００４５】
なお、図５の例では、階層数は３つとされているが、少なくとも最下位階層と係数階層が設けられれば階層数は幾つであってもよい。即ち、平均値階層の階層数は幾つであってもよい。
【００４６】
また、上述した空間傾斜成分ａおよびｂ並びにオフセットｃは、係数階層における階層化ブロック（以下、係数階層化ブロックという）に対応する各画素の係数階層化ブロック内のｘ方向の位置をｘとし、ｙ方向の位置をｙとし、係数階層化ブロックの各画素値をｚとして、係数階層化ブロックごとに、以下の式（４）を最小自乗法により解法することにより得られる。
【００４７】
【数４】
2009278323.tif 000006
【００４８】
例えば、図６に示すように、入力画像が８×１６の画素（１６ピクセル×８ラインの画素）からなる場合、４×４の画素値からなる８個の係数階層化ブロックを表す面を、最小自乗法を用いて式（４）で表される平面でフィッティング（近似）することにより、空間傾斜成分ａおよびｂ並びにオフセットｃが求められる。
【００４９】
なお、図６において、ａiは、８個の係数階層化ブロックのうちのｉ番目の係数階層化ブロックの空間傾斜成分ａを表し、ｂiは、ｉ番目の係数階層化ブロックの空間傾斜成分ｂを表し、ｃiは、ｉ番目のオフセットｃを表している。
【００５０】
以上のように、本発明の動き量検出方法では、係数階層において、空間傾斜成分ａおよびｂが生成されるので、係数階層において、平均値化すると同一の画素値となる係数階層化ブロックであっても、各画素の画素値の変化が異なる場合には区別することができる。
【００５１】
例えば、図７に示すように、入力画像６１のうちの、行ごとにｙ方向（垂直方向）に進むにつれて画素値が大きくなる（明るくなる）係数階層化ブロック６２と、列ごとにx方向（水平方向）に進むにつれて画素値が大きくなる係数階層化ブロック６３は、平均値化されると同一の値となってしまう。
【００５２】
しかしながら、xyz空間における係数階層化ブロック６２を表す面と係数階層化ブロック６３を表す面は、それぞれ異なるため、係数階層化ブロック６２と係数階層化ブロック６３から求められる空間傾斜成分ａおよびｂはそれぞれ異なる値となる。
【００５３】
次に、以上で説明した動き量検出方法で動き量を検出する動き量検出装置（画像処理装置）の構成例を図８に示す。
【００５４】
図８において、動き量検出装置１００は、ブロック抽出部１１１、係数階層処理部１１２、平均値階層処理部１１３、および最下位階層処理部１１４により構成される。
【００５５】
ブロック抽出部１１１は、入力画像を構成する各画素の画素値を、所定の範囲の画素の画素値からなる処理ブロック単位でブロック化する。なお、ここでは、処理ブロックは、８×１６の画素の画素値からなるものとする。ブロック抽出部１１１は、処理ブロックを係数階層処理部１１２、平均値階層処理部１１３、および最下位階層処理部１１４に供給する。
【００５６】
係数階層処理部１１２は、空間傾斜演算部１２１、空間傾斜成分ａ処理部１２２、空間傾斜成分ｂ処理部１２３、オフセット処理部１２４、加算部１２５および１２６、並びに動き量検出部１２７により構成される。
【００５７】
空間傾斜演算部１２１は、ブロック抽出部１１１から入力される処理ブロックを、４×４の画素の画素値からなる係数階層化ブロック単位で抽出する。空間傾斜演算部１２１は、係数階層化ブロックごとに、図６で説明したように、係数階層化ブロックを表す面を、最小自乗法を用いて上述した式（４）で表される平面でフィッティングし、その平面の空間傾斜成分およびオフセットを、係数階層化ブロックの空間傾斜成分ａおよびｂ並びにオフセットｃとして求める。
【００５８】
以下にフィッティングについて具体的に説明する。
【００５９】
いま、係数階層化ブロックの画素数をｎ（本実施の形態では、１６）とすると、フィッティング残差自乗和Ｓは以下の式（５）によって求められることになる。
【００６０】
【数５】
2009278323.tif 000007
【００６１】
但し、式（５）において、ｘi（i=0,1,…,n-1）は、係数階層化ブロック内のｉ番目の画素の係数階層化ブロック内のｘ方向の位置を表し、ｙiは、係数階層化ブロック内のｉ番目の画素の係数階層化ブロック内のｙ方向の位置を表す。また、画素値ｚiは、係数階層化ブロック内のｉ番目の画素の画素値を表している。
【００６２】
ここで、簡単のため、オフセットｃを以下の式（６）で定義すると、フィッティング残差自乗和Ｓを最小化するためには、以下の式（７）の条件を満たせばよい。
【００６３】
【数６】
2009278323.tif 000008
【００６４】
【数７】
2009278323.tif 000009
【００６５】
そこで、式（７）の条件を式（５）に適用すると、空間傾斜成分ａおよびｂを求める方程式は、以下の式（８）で表される。
【００６６】
【数８】
2009278323.tif 000010
【００６７】
ここで、Δを以下の式（９）で定義すると、式（８）は、以下の式（１０）で表される。
【００６８】
【数９】
2009278323.tif 000011
【００６９】
【数１０】
2009278323.tif 000012
【００７０】
なお、コーシ・シュワルツの不等式から式（９）で定義されるΔは、通常の係数階層化ブロックの取り方では必ず正の数になるため、式（１０）において1/Δを定義することができなくなる場合はない。
【００７１】
また、実際上は、フィッティングを行う係数階層化ブロックに対応する画素の範囲の形状は予め決められているため、式（１０）における画素の位置座標の足し込み部分は一意に決まる。従って、以下の式（１１）で定義されるＸ，Ｙ，ＸＹ，Ｘ２，Ｙ２、およびΔは、全て定数となる。
【００７２】
【数１１】
2009278323.tif 000013
【００７３】
従って、上述した式（１０）においてフィッティングのたびに計算する必要がある演算は、以下の式（１２）に示す画素値ｚiに関する演算だけとなる。
【００７４】
【数１２】
2009278323.tif 000014
【００７５】
さらに、係数階層化ブロックに対応する画素が、ｘ方向およびｙ方向のそれぞれに対して対称となり、位置座標の原点が係数階層化ブロックに対応する画素の範囲の中心となるようにすることにより、式（１１）のＸとＹを共に０にすることができる。
【００７６】
従って、この場合、以下の式（１３）により、係数階層化ブロックを表す面にフィットする平面(以下、フィッティング面という)の空間傾斜成分ａおよびｂを求めることができる。
【００７７】
【数１３】
2009278323.tif 000015
【００７８】
以上により、空間傾斜演算部１２１は、係数階層化ブロックごとに、例えば、式（１３）により空間傾斜成分ａおよびｂを求め、式（６）によりオフセットｃを求める。
【００７９】
そして、空間傾斜演算部１２１は、その結果得られる処理ブロック単位の８個の空間傾斜成分ａ、空間傾斜成分ｂ、およびオフセットｃを、それぞれ、空間傾斜成分ａ処理部１２２、空間傾斜成分ｂ処理部１２３、またはオフセット処理部１２４に供給する。
【００８０】
空間傾斜成分ａ処理部１２２は、探索ブロック取得部１３１、フレームメモリ１３２、参照ブロック取得部１３３、および評価値算出部１３４により構成される。
【００８１】
探索ブロック取得部１３１は、空間傾斜演算部１２１から入力される処理ブロック単位の空間傾斜成分ａを、探索ブロックとして取得する。探索ブロック取得部１３１は、その探索ブロックを評価値算出部１３４に供給する。
【００８２】
フレームメモリ１３２は、空間傾斜演算部１２１から処理ブロック単位で入力される空間傾斜成分ａを１フレーム分だけ保持する。フレームメモリ１３２は、保持している１フレーム前の空間傾斜成分ａのうちの、探索ブロックに対応する探索範囲内の全ての空間傾斜成分ａを処理ブロック単位で読み出し、参照ブロック取得部１３３に供給する。
【００８３】
参照ブロック取得部１３３は、フレームメモリ１３２から供給される処理ブロック単位の空間傾斜成分ａを、参照ブロックとして取得する。そして、参照ブロック取得部１３３は、その参照ブロックを評価値算出部１３４に供給する。
【００８４】
評価値算出部１３４は、探索ブロック取得部１３１から供給される探索ブロックとしての空間傾斜成分ａと、参照ブロック取得部１３３から供給される参照ブロックとしての空間傾斜成分ａとに基づいて、空間傾斜成分ａについてのブロックマッチングを行い、探索ブロックと参照ブロックの位置に対応する動き量に対する評価値を算出する。
【００８５】
具体的には、評価値算出部１３４は、動き量検出装置１００に現在入力されている入力画像のフレームをフレームｔとして、以下の式（１４）の演算により、動き量(x,y)に対する評価値Ｅa(x,y)を算出する。
【００８６】
【数１４】
2009278323.tif 000016
【００８７】
なお、式（１４）では、ａt(m,n)は、係数階層における位置(m,n)に対応する探索ブロック内の空間傾斜成分ａを表し、ａt-1(m-x,n-y)は、係数階層における位置(m-x,n-y)に対応する参照ブロック内の空間傾斜成分ａを表している。
【００８８】
評価値算出部１３４は、算出された評価値Ｅaを加算部１２５に供給する。この評価値算出部１３４の詳細は、後述する図９を参照して説明する。
【００８９】
空間傾斜成分ｂ処理部１２３は、探索ブロック取得部１４１、フレームメモリ１４２、参照ブロック取得部１４３、および評価値算出部１４４により構成され、空間傾斜成分ｂについて、空間傾斜成分ａ処理部１２２と同様の処理を行う。
【００９０】
また、オフセット処理部１２４は、探索ブロック取得部１５１、フレームメモリ１５２、参照ブロック取得部１５３、および評価値算出部１５４により構成され、オフセットｃについて、空間傾斜成分ａ処理部１２２と同様の処理を行う。但し、評価値算出部１５４から出力される評価値は、加算部１２６に入力される。
【００９１】
加算部１２５は、空間傾斜成分ａ処理部１２２の評価値算出部１３４から供給される評価値と、空間傾斜成分ｂ処理部１２３の評価値算出部１４４から供給される評価値とを重み付け加算する。加算部１２５は、その結果得られる加算値を加算部１２６に供給する。
【００９２】
加算部１２６は、オフセット処理部１２４の評価値算出部１５４から供給される評価値に重み付けをし、重み付け後の評価値と加算部１２５から供給される加算値とを加算する。これにより、以下の式（１５）に示すように、空間傾斜成分ａおよびｂ並びにオフセットｃについての評価値の和が、係数階層における評価値Ｅcoef(x,y)として求められる。
【００９３】
【数１５】
2009278323.tif 000017
【００９４】
なお、式（１５）において、ｂt(m,n)とｃt(m,n)は、それぞれ、係数階層における位置(m,n)に対応する探索ブロック内の空間傾斜成分ｂとオフセットｃを表し、ｂt-1(m-x,n-y)とｃt-1(m-x,n-y)は、それぞれ、係数階層における位置(m-x,n-y)に対応する参照ブロック内の空間傾斜成分ｂとオフセットｃを表している。また、式（１５）において、Ｗa，Ｗb、およびＷcは予め設定された重み係数を表している。
【００９５】
この係数階層における評価値Ｅcoef(x,y)は、動き量検出部１２７に供給される。動き量検出部１２７は、加算部１２６から供給される評価値Ｅcoef(x,y)に基づいて、係数階層における動き量を検出する。
【００９６】
具体的には、動き量検出部１２７は、探索ブロックに対応する探索範囲内の全ての空間傾斜成分ａおよびｂ並びにオフセットｃを処理ブロック単位で参照ブロックとしたときの評価値Ｅcoef(x,y)のうちの、最小の評価値に対応する（x,y）を係数階層における動き量Ｖcoefとして検出する。そして、動き量検出部１２７は、検出された動き量Ｖcoefを平均値階層処理部１１３に供給する。この動き量検出部１２７の詳細については、後述する図１０を参照して説明する。
【００９７】
平均値階層処理部１１３は、平均値階層化部１６１、探索ブロック取得部１６２、フレームメモリ１６３、参照ブロック取得部１６４、評価値算出部１６５、動き量検出部１６６、および加算部１６７により構成される。
【００９８】
平均値階層化部１６１は、ブロック抽出部１１１から入力される処理ブロックを、２×２の画素の画素値からなる平均値階層の階層化ブロック（以下、平均値階層化ブロックという）単位で抽出する。そして、平均値階層化部１６１は、平均値階層化ブロック単位で処理ブロックを1/4平均化する。
【００９９】
具体的には、一般的に、平均値階層化ブロックがｍ×ｎの画素の画素値からなる場合において、平均値階層の第ｉ階層目の画素の座標(x,y)における画素値zi(x,y)は、以下の式（１６）で求められる。そして、第ｉ階層のｘ方向の画素数は、第ｉ−１階層のｘ方向の画素数の1/mとなり、第ｉ階層のｙ方向の画素数は、第ｉ−１階層のｙ方向の画素数の1/nとなる。
【０１００】
【数１６】
2009278323.tif 000018
【０１０１】
従って、平均値階層化部１６１は、式（５）においてm=n=2とした式を演算し、1/4平均化を行う。そして、平均値階層化部１６１は、その演算の結果、処理ブロックから得られる４×８の平均値を、処理ブロックに対応する平均値画像の４×８の画素の画素値からなるブロック（以下、平均値ブロックという）とする。平均値階層化部１６１は、平均値ブロックを、探索ブロック取得部１６２とフレームメモリ１６３に供給する。
【０１０２】
探索ブロック取得部１６２は、平均値階層化部１６１から供給される平均値ブロックを探索ブロックとして取得する。探索ブロック取得部１６２は、その探索ブロックを評価値算出部１６５に供給する。
【０１０３】
フレームメモリ１６３は、平均値階層化部１６１から平均値ブロック単位で供給される平均値画像の画素値を１フレーム分保持する。フレームメモリ１６３は、係数階層処理部１１２の動き量検出部１２７から供給される動き量Ｖcoefに基づいて、探索ブロックに対応する探索範囲を決定する。即ち、動き量Ｖcoefに基づいて探索範囲が動き補償される。
【０１０４】
そして、フレームメモリ１６３は、保持している１フレーム前の平均値画像の画素値のうちの、探索範囲内の全ての画素値を平均値ブロック単位で読み出し、参照ブロック取得部１６４に供給する。
【０１０５】
参照ブロック取得部１６４は、フレームメモリ１６３から供給される平均値ブロック単位の画素値を、参照ブロックとして取得する。そして、参照ブロック取得部１６４は、その参照ブロックを評価値算出部１６５に供給する。
【０１０６】
評価値算出部１６５は、探索ブロック取得部１６２から供給される探索ブロックとしての平均値画像の画素値と、参照ブロック取得部１６４から供給される参照ブロックとしての平均値画像の画素値とに基づいて、平均値画像の画素値についてのブロックマッチングを行い、探索ブロックと参照ブロックの位置に対応する動き量に対する評価値Ｅ2(x,y)を算出する。
【０１０７】
具体的には、評価値算出部１６５は、上述した式（１４）と同様の式の演算を行うことにより、評価値Ｅ2(x,y)を算出する。この評価値Ｅ2(x,y)は、平均値階層における評価値として動き量検出部１６６に供給される。
【０１０８】
動き量検出部１６６は、評価値算出部１６５から供給される平均値階層における評価値Ｅ2(x,y)に基づいて、探索ブロックに対応する探索範囲内の全ての平均値画像の画素値を参照ブロックとしたときの評価値Ｅ2(x,y)のうちの、最小の評価値に対応する（x,y）を平均値階層における動き量Ｖ2として検出する。そして、動き量検出部１６６は、検出された動き量Ｖ2を加算部１６７に供給する。
【０１０９】
加算部１６７は、係数階層処理部１１２の動き量検出部１２７から出力される係数階層における動き量Ｖcoefを４倍にして、入力画像における動き量に変換する。また、加算部１６７は、動き量検出部１６６から供給される動き量Ｖ2を２倍にして、入力画像における動き量に変換する。そして、加算部１６７は、変換後の動き量４Ｖcoefと動き量２Ｖ2を加算し、その結果得られる入力画像における動き量（４Ｖcoef＋２Ｖ2）を最下位階層処理部１１４に供給する。
【０１１０】
最下位階層処理部１１４は、フレームメモリ１７１、参照ブロック取得部１７２、評価値算出部１７３、動き量検出部１７４、および加算部１７５により構成される。
【０１１１】
フレームメモリ１７１は、ブロック抽出部１１１から入力される処理ブロックを１フレーム分保持する。フレームメモリ１７１は、平均値階層処理部１１３の加算器１６７から供給される動き量（４Ｖcoef＋２Ｖ2）に基づいて、探索ブロックに対応する探索範囲を決定する。そして、フレームメモリ１７１は、保持している１フレーム前の入力画像のうちの、探索範囲内の全ての画素値を処理ブロック単位で読み出し、参照ブロック取得部１７２に供給する。
【０１１２】
参照ブロック取得部１７２は、フレームメモリ１７１から供給される処理ブロックを、参照ブロックとして取得する。そして、参照ブロック取得部１７２は、その参照ブロックを評価値算出部１７３に供給する。
【０１１３】
評価値算出部１７３は、ブロック抽出部１１１から入力される処理ブロックを探索ブロックとして取得する。評価値算出部１７３は、その探索ブロックとしての画素値と、参照ブロック取得部１７２から供給される参照ブロックとしての画素値とに基づいて、入力画像の画素値についてのブロックマッチングを行い、探索ブロックと参照ブロックの位置に対応する動き量に対する評価値Ｅ1(x,y)を算出する。
【０１１４】
具体的には、評価値算出部１７３は、上述した式（１４）と同様の式の演算を行うことにより、評価値Ｅ1(x,y)を算出する。この評価値Ｅ1(x,y)は、最下位階層における評価値として動き量検出部１７４に供給される。
【０１１５】
動き量検出部１７４は、評価値算出部１７３から供給される最下位階層における評価値Ｅ1(x,y)に基づいて、探索ブロックに対応する探索範囲内の入力画像の画素値を参照ブロックとしたときの評価値Ｅ1(x,y)のうちの、最小の評価値に対応する（x,y）を最下位階層における動き量Ｖ1として検出する。そして、動き量検出部１７４は、検出された動き量Ｖ1を加算部１７５に供給する。
【０１１６】
加算部１７５は、平均値階層処理部１１３の加算部１６７から供給される入力画像における動き量（４Ｖcoef＋２Ｖ2）と、動き量検出部１７４から供給される動き量Ｖ1とを加算する。加算部１７５は、その結果得られる動き量Ｖを、探索ブロックの最終的な動き量として出力する。
【０１１７】
即ち、動き量Ｖは、以下の式（１７）で求められる。
【０１１８】
【数１７】
2009278323.tif 000019
【０１１９】
なお、階層数をｎとして動き量Ｖを求める式を一般化すると、式（１８）で表される。
【０１２０】
【数１８】
2009278323.tif 000020
【０１２１】
但し、式（１８）では、最下位階層を最下位から１番目の平均値階層として、最下位からｉ番目の平均値階層における動き量をＶiで表している。
【０１２２】
以上のように、動き量検出装置１００では、最上位階層において空間傾斜成分ａおよびｂを用いて動き量に対する評価が行われるので、最上位階層において、平均値化により失われる、係数階層化ブロック内の各画素の画素値の変化を考慮して動き量を検出することができる。
【０１２３】
その結果、平均値階層のみが設けられる動き量検出方法や平均値階層とアクティビティ階層が設けられる動き量検出方法に比べて、最上位階層での誤検出を防止し、最終的な動き量の検出精度を向上させることができる。
【０１２４】
次に、図９を参照して、図８の評価値算出部１３４の詳細構成例について説明する。
【０１２５】
図９において、評価値算出部１３４は、探索ブロックメモリ１８１、参照ブロックメモリ１８２、メモリコントローラ１８３、レジスタ１８４および１８５、減算部１８６、絶対値化回路１８７、加算部１８８、レジスタ１８９、評価値メモリ１９０、並びに評価値メモリコントローラ１９１により構成される。
【０１２６】
図９において、探索ブロックメモリ１８１は、メモリコントローラ１８３により指定されたアドレスに、探索ブロック取得部１３１から供給される探索ブロックとしての空間傾斜成分ａ（ａt(m,n)）を記憶する。
【０１２７】
また、探索ブロックメモリ１８１は、メモリコントローラ１８３により指定されたアドレスに記憶されている探索ブロックの空間傾斜成分ａ（ａt(m,n)）を順次読み出し、レジスタ１８４に出力する。
【０１２８】
参照ブロックメモリ１８２は、メモリコントローラ１８３により指定されたアドレスに、参照ブロック取得部１３３から供給される各参照ブロックとしての空間傾斜成分ａ（ａt-1(m-x,n-y)）を記憶する。
【０１２９】
また、参照ブロックメモリ１８２は、メモリコントローラ１８３により指定されたアドレスに記憶している参照ブロックの空間傾斜成分ａ（ａt-1(m-x,n-y)）を順次読み出し、レジスタ１８５に出力する。
【０１３０】
メモリコントローラ１８３は、探索ブロックメモリ１８１と参照ブロックメモリ１８２に対する書き込みおよび読み出しを制御する。レジスタ１８４は、探索ブロックメモリ１８１から入力された空間傾斜成分ａ（ａt(m,n)）を保持する。また、レジスタ１８４は、所定のタイミングで、保持している空間傾斜成分ａ（ａt(m,n)）を減算部１８６に供給する。
【０１３１】
レジスタ１８５は、参照ブロックメモリ１８２から入力された空間傾斜成分ａ（ａt-1(m-x,n-y)）を保持する。また、レジスタ１８５は、所定のタイミングで、保持している空間傾斜成分ａ（ａt-1(m-x,n-y)）を減算部１８６に供給する。
【０１３２】
減算部１８６は、レジスタ１８４から供給される空間傾斜成分ａ（ａt(m,n)）から、レジスタ１８５から供給される空間傾斜成分ａ（ａt-1(m-x,n-y)）を減算する。減算部１８６は、その結果得られる減算値（ａt(m,n)−（ａt-1(m-x,n-y)）を絶対値化回路１８７に供給する。
【０１３３】
絶対値化回路１８７は、減算部１８６から供給される減算値（ａt(m,n)−（ａt-1(m-x,n-y)）の絶対値（｜ａt(m,n)−（ａt-1(m-x,n-y)｜）を演算し、加算部１８８に供給する。
【０１３４】
加算部１８８は、絶対値化回路１８７から供給される絶対値と、レジスタ１８９から供給される前回の加算結果とを加算する。加算部１８８は、その加算結果をレジスタ１８９に供給し、レジスタ１８９に保持させる。レジスタ１８９は、所定のタイミングで、保持している加算結果を前回の加算結果として加算部１８８に供給する。なお、レジスタ１８９は、探索ブロック内の空間傾斜成分ａの数である８回ごとに初期化され、レジスタ１８９には初期値として０が保持される。
【０１３５】
評価値メモリ１９０は、評価値メモリコントローラ１９１の制御により、加算部１８８により探索ブロック内の空間傾斜成分ａの数である８回だけ加算が行われた結果得られる加算結果（ΣΣ｜ａt(m,n)−（ａt-1(m-x,n-y)｜）をレジスタ１８９から取得する。評価値メモリ１９０は、その加算結果を評価値Ｅaとして、評価値メモリコントローラ１９１により指定されたアドレスに記憶させる。
【０１３６】
また、評価値メモリ１９０は、評価値メモリコントローラ１９１により指定されたアドレスに記憶されている評価値Ｅaを読み出し、加算部１２５（図８）に出力する。評価値メモリコントローラ１９１は、評価値メモリ１９０に対する書き込みおよび読み出しを制御する。
【０１３７】
なお、図８の評価値算出部１４４，１５４，１６５、および１７３の構成も、図９の評価値算出部１３４の構成と基本的に同様であるので、その説明については省略する。以下においては、図９に示す構成例は、評価値算出部１４４，１５４，１６５、および１７３の構成を説明する場合にも適用する。
【０１３８】
次に、図１０を参照して、図８の動き量検出部１２７の詳細構成例について説明する。
【０１３９】
図１０において、動き量検出部１２７は、評価値メモリ２０１、評価値メモリコントローラ２０２、比較器２０３、並びにレジスタ２０４および２０５により構成される。
【０１４０】
評価値メモリ２０１は、加算部１２６（図８）から供給される係数階層における評価値Ｅcoef(x,y)を、評価値メモリコントローラ２０２により指定された動き量(x,y)に対応するアドレスに記憶する。また、評価値メモリ２０１は、評価値メモリコントローラ２０２により指定されたアドレスに記憶されている評価値Ｅcoef(x,y)を順次読み出し、比較器２０３およびレジスタ２０４に供給する。
【０１４１】
評価値メモリコントローラ２０２は、評価値メモリ２０１に対する書き込みおよび読み出しを制御する。また、評価値メモリコントローラ２０２は、評価値メモリ２０１に読み出しアドレスとして指定したアドレスに対応する動き量(x,y)をレジスタ２０５に供給する。
【０１４２】
比較器２０３は、評価値メモリ２０１から供給される評価値Ｅcoef(x,y)と、レジスタ２０４から供給される評価値Ｅcoef(x,y)を比較する。評価値メモリ２０１から供給される評価値Ｅcoef(x,y)が、レジスタ２０４から供給される評価値Ｅcoef(x,y)より小さい場合、比較器２０３は、レジスタ２０４および２０５に更新を指示する更新信号を送信する。
【０１４３】
レジスタ２０４は、比較器２０３から供給される更新信号に応じて、評価値メモリ２０１から供給される評価値Ｅcoef(x,y)を保持する。また、レジスタ２０４は、所定のタイミングで、保持している評価値Ｅcoef(x,y)を比較器２０３に供給する。
【０１４４】
レジスタ２０５は、比較器２０３から供給される更新信号に応じて、評価値メモリコントローラ２０２から供給される動き量(x,y)を保持する。また、レジスタ２０５は、各探索ブロックに対応する探索範囲内の全ての参照ブロックに対応する評価値Ｅcoef(x,y)についての比較が終了するごとに、保持している動き量(x,y)を係数階層における動き量として出力する。
【０１４５】
なお、図８の動き量検出部１６６および１７４の構成も、図１０の動き量検出部１２７の構成と基本的に同様であるので、その説明については省略する。以下においては、図１０に示す構成例は、動き量検出部１６６および１７４の構成を説明する場合にも適用する。
【０１４６】
次に、図１１のフローチャートを参照して、図８の動き量検出装置１００による動き量検出処理について説明する。この動き量検出処理は、例えば、１フレーム分の入力画像が入力されたとき、開始される。
【０１４７】
ステップＳ１１において、ブロック抽出部１１１は、入力画像を処理ブロック単位でブロック化する。ブロック抽出部１１１は、処理ブロックを係数階層処理部１１２、平均値階層処理部１１３、および最下位階層処理部１１４に供給する。なお、以降のステップＳ１２乃至Ｓ２３の処理は、処理ブロック単位で行われる。
【０１４８】
ステップＳ１２において、フレームメモリ１７１は、ブロック抽出部１１１から入力される処理ブロックを１フレーム分保持する。
【０１４９】
ステップＳ１３において、平均値階層化部１６１は、ブロック抽出部１１１から入力される処理ブロックを、平均値階層化ブロック単位で抽出し、上述した式（２）を用いて平均値階層化ブロック単位で処理ブロックを1/4平均化する。平均値階層化部１６１は、その結果得られる平均値ブロックを、探索ブロック取得部１６２とフレームメモリ１６３に供給する。この平均値ブロックは、探索ブロック取得部１６２により探索ブロックとして取得され、評価値算出部１６５に供給される。
【０１５０】
ステップＳ１４において、フレームメモリ１６３は、平均値階層化部１６１から供給される平均値ブロックを１フレーム分保持する。
【０１５１】
ステップＳ１５において、空間傾斜演算部１２１は、ブロック抽出部１１１から入力される処理ブロックを、係数階層化ブロック単位で抽出し、係数階層化ブロックごとに、式（６）と式（１３）を用いて、空間傾斜成分ａおよびｂ並びにオフセットｃを演算する。そして、空間傾斜演算部１２１は、その結果得られる処理ブロック単位の空間傾斜成分ａ、空間傾斜成分ｂ、およびオフセットｃを、それぞれ、空間傾斜成分ａ処理部１２２、空間傾斜成分ｂ処理部１２３、またはオフセット処理部１２４に供給する。
【０１５２】
この処理ブロック単位の空間傾斜成分ａおよびｂ並びにオフセットｃは、それぞれ、探索ブロック取得部１３１，１４１、または１５１で探索ブロックとして取得され、評価値算出部１３４，１４４、または１５４に供給される。
【０１５３】
ステップＳ１６において、フレームメモリ１３２は、空間傾斜演算部１２１から処理ブロック単位で入力される空間傾斜成分ａを１フレーム分だけ保持する。ステップＳ１７において、フレームメモリ１４２は、空間傾斜演算部１２１から処理ブロック単位で入力される空間傾斜成分ｂを１フレーム分だけ保持する。ステップＳ１８において、フレームメモリ１５２は、空間傾斜演算部１２１から処理ブロック単位で入力されるオフセットｃを１フレーム分だけ保持する。
【０１５４】
ステップＳ１９において、フレームメモリ１６３は、ステップＳ２０の係数階層処理が行われたかどうか、即ち、動き量検出部１２７から動き量Ｖcoefが供給されたかを判定する。
【０１５５】
ステップＳ１９で、まだ係数階層処理が行われていないと判定された場合、ステップＳ２０において、係数階層処理部１１２は、係数階層における動き量Ｖcoefを検出する係数階層処理を行う。この係数階層処理の詳細は、後述する図１２のフローチャートを参照して説明する。ステップＳ２０の処理後、処理はステップＳ１９に戻り、以降の処理が繰り返される。
【０１５６】
一方、ステップＳ１９で、係数階層処理が行われたと判定された場合、ステップＳ２１において、フレームメモリ１７１は、ステップＳ２２の平均値階層処理が行われたかどうか、即ち、加算部１６７から動き量（２Ｖ2＋４Ｖcoef）が供給されたかどうかを判定する。
【０１５７】
ステップＳ２１で、まだ平均値階層処理が行われていないと判定された場合、ステップＳ２２において、平均値階層処理部１１３は、平均値階層における動き量Ｖ2を検出する平均値階層処理を行う。この平均値階層処理の詳細は、後述する図１３のフローチャートを参照して説明する。ステップＳ２２の処理後、処理はステップＳ２１に戻り、以降の処理が行われる。
【０１５８】
一方、ステップＳ２１で、平均値階層処理が行われたと判定された場合、ステップＳ２３において、最下位階層処理部１１４は、最終的な動き量Ｖを検出する最下位階層処理を行う。この最下位階層処理の詳細は、後述する図１４のフローチャートを参照して説明する。
【０１５９】
次に、図１２のフローチャートを参照して、図１１のステップＳ２０の係数階層処理について説明する。
【０１６０】
ステップＳ３１において、係数階層処理部１１２は、探索範囲内の全ての参照ブロックに対応する評価値Ｅcoefが算出されたかどうかを判定する。具体的には、フレームメモリ１３２，１４２、および１５２は、それぞれ、探索範囲内の全ての空間傾斜成分ａ、空間傾斜成分ｂ、またはオフセットｃを処理ブロック単位で参照ブロックとしたかどうかを判定する。
【０１６１】
ステップＳ３１で、探索範囲内の全ての参照ブロックに対応する評価値Ｅcoefがまだ算出されていないと判定された場合、ステップＳ３２において、係数階層処理部１１２は、探索範囲内のまだ参照ブロックとされていない処理ブロック単位の空間傾斜成分ａおよびｂ並びにオフセットｃを参照ブロックとする。
【０１６２】
具体的には、フレームメモリ１３２，１４２、および１５２は、それぞれ、探索範囲内のまだ参照ブロックとされていない同一の処理ブロックに対応する空間傾斜成分ａ、空間傾斜成分ｂ、またはオフセットｃを読み出し、参照ブロック取得部１３３，１４３、または１５３に供給する。これにより、この空間傾斜成分ａ、空間傾斜成分ｂ、およびオフセットｃは参照ブロックとされ、評価値算出部１３４，１４４、または１５４に供給する。
【０１６３】
ステップＳ３３において、評価値算出部１３４は、探索ブロック取得部１３１から供給される探索ブロックとしての空間傾斜成分ａと、参照ブロック取得部１３３から供給される参照ブロックとしての空間傾斜成分ａとに基づいて、上述した式（１４）を用いてブロックマッチングを行い、ステップＳ３２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する評価値Ｅa(x,y)を算出する。
【０１６４】
ステップＳ３４において、評価値算出部１４４は、探索ブロック取得部１４１から供給される探索ブロックとしての空間傾斜成分ｂと、参照ブロック取得部１４３から供給される参照ブロックとしての空間傾斜成分ｂとに基づいて、上述した式（１４）と同様の式を用いてブロックマッチングを行い、ステップＳ３２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する評価値Ｅb(x,y)を算出する。
【０１６５】
ステップＳ３５において、評価値算出部１５４は、探索ブロック取得部１５１から供給される探索ブロックとしてのオフセットｃと、参照ブロック取得部１５３から供給される参照ブロックとしてのオフセットｃとに基づいて、上述した式（１４）と同様の式を用いてブロックマッチングを行い、ステップＳ３２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する評価値Ｅc(x,y)を算出する。
【０１６６】
ステップＳ３６において、係数階層処理部１１２は、ステップＳ３２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する係数階層における評価値Ｅcoef(x,y)を算出する。
【０１６７】
具体的には、加算部１２５は、空間傾斜成分ａ処理部１２２の評価値算出部１３４により求められた評価値Ｅaと、空間傾斜成分ｂ処理部１２３の評価値算出部１４４により求められた評価値Ｅbとを重み付け加算する。加算部１２５は、その結果得られる加算値（ＷaＥa＋ＷbＥb）を加算部１２６に供給する。
【０１６８】
また、加算部１２６は、オフセット処理部１２４の評価値算出部１５４により求められた評価値に重み付けをし、重み付け後の評価値と加算部１２５から供給される加算値とを加算する。その結果、上述した式（１５）で表される係数階層における評価値Ｅcoef(x,y)が算出される。
【０１６９】
この評価値Ｅcoef(x,y)は、動き量検出部１２７の評価値メモリコントローラ２０２（図１０）の制御により、評価値メモリ２０１の所定のアドレスに記憶される。そして、評価値Ｅcoef(x,y)は、評価値メモリコントローラ２０２の制御により読み出され、比較器２０３とレジスタ２０４に供給される。なお、このとき、評価値メモリコントローラ２０２は、読み出しアドレスに対応する動き量Ｖcoefをレジスタ２０５に供給する。
【０１７０】
ステップＳ３７において、比較部２０３は、評価値メモリ２０１から読み出された評価値Ｅcoef(x,y)が、レジスタ２０４から読み出された評価値Ｅcoef(x,y)よりも小さいかどうかを判定する。ステップＳ３７で、評価値メモリ２０１から読み出された評価値Ｅcoef(x,y)が、レジスタ２０４から読み出された評価値Ｅcoef(x,y)よりも小さいと判定された場合、比較器２０３は更新信号をレジスタ２０４と２０５に供給する。
【０１７１】
そして、ステップＳ３８において、レジスタ２０４は、保持している評価値Ｅcoef(x,y)を、ステップＳ３７の処理で用いられた評価値メモリ２０１から読み出された評価値Ｅcoef(x,y)に更新する。ステップＳ３９において、レジスタ２０５は、保持している動き量Ｖcoefを、評価値メモリコントローラ２０２から供給される動き量Ｖcoefに更新する。そして、処理はステップＳ３１に戻り、以降の処理が繰り返される。
【０１７２】
また、ステップＳ３７で、評価値メモリ２０１から読み出された評価値Ｅcoef(x,y)が、レジスタ２０４から読み出された評価値Ｅcoef(x,y)以上であると判定された場合、ステップＳ３８およびＳ３９の処理は行われず、処理はステップＳ３１に戻る。
【０１７３】
一方、ステップＳ３１で探索範囲内の全ての参照ブロックに対応する評価値Ｅcoefが算出されたと判定された場合、ステップＳ４０において、レジスタ２０５は、保持している動き量Ｖcoefを出力する。そして、処理は図１１のステップＳ２０に戻り、ステップＳ１９以降の処理が繰り返される。
【０１７４】
次に、図１３のフローチャートを参照して、図１１のステップＳ２２の平均値階層処理について説明する。
【０１７５】
ステップＳ５１において、フレームメモリ１６３は、係数階層処理部１１２の動き量検出部１２７から供給される動き量Ｖcoefに基づいて、探索ブロックに対応する探索範囲を決定する。
【０１７６】
ステップＳ５２において、フレームメモリ１６３は、図１２のステップＳ３１の処理と同様に、探索範囲内の全ての参照ブロックに対応する評価値Ｅ2が算出されたかどうかを判定する。
【０１７７】
ステップＳ５２で、探索範囲内の全ての参照ブロックに対応する評価値Ｅ2がまだ算出されていないと判定された場合、ステップＳ５３において、参照ブロック取得部１６４は、フレームメモリ１６３から供給される、探索範囲内のまだ参照ブロックとされていない平均値ブロック単位の平均値画像の画素値を参照ブロックとする。そして、参照ブロック取得部１６４は、その参照ブロックを評価値算出部１６５に供給する。
【０１７８】
ステップＳ５４において、評価値算出部１６５は、ステップＳ３３の処理と同様に、探索ブロック取得部１６２から供給される探索ブロックとしての平均値ブロックと、参照ブロック取得部１６４から供給される参照ブロックとしての平均値ブロックとに基づいて、上述した式（１４）と同様の式を用いてブロックマッチングを行い、ステップＳ５２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する評価値Ｅ2(x,y)を算出する。
【０１７９】
この評価値Ｅ2(x,y)は動き量検出部１６６に供給され、評価値メモリコントローラ２０２の制御により記憶され、読み出される。なお、このとき、評価値メモリコントローラ２０２は、読み出しアドレスに対応する動き量Ｖ2をレジスタ２０５に供給する。そして、処理はステップＳ５５に進む。
【０１８０】
ステップＳ５５乃至Ｓ５７の処理は、動き量検出部１６６において、図１２のステップＳ３７乃至Ｓ３９の処理と同様に行われるので説明は省略する。
【０１８１】
一方、ステップＳ５２で、探索範囲内の全ての参照ブロックに対応する評価値Ｅ2が算出されたと判定された場合、ステップＳ５８において、加算部１６７は、係数階層処理部１１２の動き量検出部１２７から出力される係数階層における動き量Ｖcoefの４倍の値と、動き量検出部１６６から供給される動き量Ｖ2の２倍の値を加算して、その結果得られる入力画像における動き量（４Ｖcoef＋２Ｖ2）を出力する。そして、処理は図１１のステップＳ２２に戻り、ステップＳ２１以降の処理が繰り返される。
【０１８２】
次に、図１４のフローチャートを参照して、図１１のステップＳ２３の最下位階層処理について説明する。
【０１８３】
ステップＳ７１において、フレームメモリ１７１は、平均値階層処理部１１３の加算部１６７から供給される入力画像における動き量（４Ｖcoef＋２Ｖ2）に基づいて、探索ブロックに対応する探索範囲を決定する。
【０１８４】
ステップＳ７２において、フレームメモリ１７１は、図１２のステップＳ３１の処理と同様に、探索範囲内の全ての参照ブロックに対応する評価値Ｅ1が算出されたかどうかを判定する。
【０１８５】
ステップＳ７２で、探索範囲内の全ての参照ブロックに対応する評価値Ｅ1がまだ算出されていないと判定された場合、ステップＳ７３において、参照ブロック取得部１７２は、フレームメモリ１７１から供給される、探索範囲内のまだ参照ブロックとされていない処理ブロック単位の入力画像の画素値を参照ブロックとする。そして、参照ブロック取得部１７２は、その参照ブロックを評価値算出部１７３に供給する。
【０１８６】
ステップＳ７４において、評価値算出部１７３は、ステップＳ３３の処理と同様に、ブロック抽出部１１１から供給される探索ブロックとしての処理ブロックと、参照ブロック取得部１７２から供給される参照ブロックとしての処理ブロックとに基づいて、上述した式（１４）と同様の式を用いてブロックマッチングを行い、ステップＳ７２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する評価値Ｅ1(x,y)を算出する。
【０１８７】
この評価値Ｅ1(x,y)は動き量検出部１７４に供給され、評価値メモリコントローラ２０２の制御により記憶され、読み出される。なお、このとき、評価値メモリコントローラ２０２は、読み出しアドレスに対応する動き量Ｖ1をレジスタ２０５に供給する。そして、処理はステップＳ７５に進む。
【０１８８】
ステップＳ７５乃至Ｓ７７の処理は、動き量検出部１７４において、図１２のステップＳ３７乃至Ｓ３９の処理と同様に行われるので説明は省略する。
【０１８９】
一方、ステップＳ７２で、探索範囲内の全ての参照ブロックに対応する評価値Ｅ1が算出されたと判定された場合、ステップＳ７８において、加算部１７５は、上位階層で検出された、平均値階層処理部１１３の加算部１６７から供給される入力画像における動き量（４Ｖcoef＋２Ｖ2）と、動き量検出部１７４から供給される最下位階層における動き量Ｖ1とを加算する。
【０１９０】
ステップＳ７９において、加算部１７５は、ステップＳ７８の処理の結果得られる動き量Ｖを、探索ブロックの最終的な動き量として出力する。そして、処理は図１１のステップＳ２３に戻り、終了する。
【０１９１】
以上のように、図５で説明した動き量検出方法では、最上位階層において、平均値化により失われる、係数階層化ブロック内の各画素の画素値の変化を考慮して動き量が検出されるので、最終的な動き量の検出精度を向上させることができる。
【０１９２】
しかしながら、係数階層化ブロックを表す面が、式（４）で表される平面から大きく乖離している場合、フィッティングの結果得られる空間傾斜成分ａおよびｂ並びにオフセットｃは、係数階層化ブロックに対応しないものとなってしまう。
【０１９３】
例えば、図１５に示すように、係数階層化ブロックを表す面２５１が、平面ではなく、中央が窪んだ面である場合、係数階層化ブロックを表す面２５１を式（４）で表される平面で正確に近似することはできない。従って、図１５に示すように、係数階層化ブロックを表す面２５１は、例えば、ｘｙ平面に平行な式（４）で表される平面２５２にフィッティングされてしまう。その結果、動き量の誤検出が発生する場合がある。
【０１９４】
そこで、このような場合においても精度良く動き量を検出する本発明の動き量検出方法の他の例について、図１６を参照して説明する。
【０１９５】
図１６に示す動き量検出方法では、図５に示した動き量検出方法とは異なり、係数階層において、空間傾斜成分ａおよびｂ並びにオフセットｃの他に、フィッティングの精度を表す特徴量としての残差アクティビティｄが生成される。この残差アクティビティｄは、図１７に示すように、係数階層化ブロックの各画素値のフィッティング面からのズレの平均値である。具体的には、残差アクティビティｄは、以下の式（１９）の演算により求められる。
【０１９６】
【数１９】
2009278323.tif 000021
【０１９７】
なお、式（１９）において、ｎは係数階層化ブロックの画素数である。また、ｘiは、係数階層化ブロック内のｉ番目の画素値に対応する画素のｘ方向の位置であり、ｙiは、係数階層化ブロック内のｉ番目の画素値に対応する画素のｙ方向の位置である。
【０１９８】
次に、図１６で説明した動き量検出方法で動き量を検出する動き検出装置の構成例を図１８に示す。
【０１９９】
図１８において、動き量検出装置３００は、ブロック抽出部１１１、平均値階層処理部１１３、最下位階層処理部１１４、および係数階層処理部３０１により構成される。なお、図１８において、図８と同一のものには同一の符号を付してあり、説明は繰り返しになるので省略する。
【０２００】
係数階層処理部３０１は、図８の係数階層処理部１１２にさらに残差アクティビティ演算部３１１、残差アクティビティ処理部３１２、および加算部３１３を設けることにより構成される。
【０２０１】
残差アクティビティ演算部３１１は、空間傾斜演算部１２１と同様に、ブロック抽出部１１１から入力される処理ブロックを係数階層化ブロック単位で抽出する。残差アクティビティ演算部３１１は、係数階層化ブロックごとに、その係数階層化ブロックと、空間傾斜演算部１２１により演算された空間傾斜成分ａおよびｂ並びにオフセットｃとに基づいて、上述した式（１９）により残差アクティビティｄを算出する。
【０２０２】
そして、残差アクティビティ演算部３１１は、その結果得られる処理ブロック単位の８個の残差アクティビティｄを残差アクティビティ処理部３１２に供給する。
【０２０３】
残差アクティビティ処理部３１２は、探索ブロック取得部３２１、フレームメモリ３２２、参照ブロック取得部３２３、および評価値算出部３２４により構成される。
【０２０４】
探索ブロック取得部３２１は、残差アクティビティ演算部３１１から入力される処理ブロック単位の残差アクティビティｄを、探索ブロックとして取得する。探索ブロック取得部３２１は、その探索ブロックを評価値算出部３２４に供給する。
【０２０５】
フレームメモリ３２２は、残差アクティビティ演算部３１１から処理ブロック単位で入力される残差アクティビティｄを１フレーム分だけ保持する。フレームメモリ３２２は、保持している１フレーム前の残差アクティビティｄのうちの、探索ブロックに対応する探索範囲内の全ての残差アクティビティｄを処理ブロック単位で読み出し、参照ブロック取得部３２３に供給する。
【０２０６】
参照ブロック取得部３２３は、フレームメモリ３２２から供給される処理ブロック単位の残差アクティビティｄを、参照ブロックとして取得する。そして、参照ブロック取得部３２３は、その参照ブロックを評価値算出部３２４に供給する。
【０２０７】
評価値算出部３２４は、探索ブロック取得部３２１から供給される探索ブロックとしての残差アクティビティｄと、参照ブロック取得部３２３から供給される参照ブロックとしての残差アクティビティｄとに基づいて、残差アクティビティｄについてのブロックマッチングを行い、以下の式（２０）により探索ブロックと参照ブロックの位置に対応する動き量(x,y)に対する評価値Ｅd(x,y)を算出する。
【０２０８】
【数２０】
2009278323.tif 000022
【０２０９】
なお、式（２０）では、ｄt(m,n)は、係数階層における位置(m,n)に対応する探索ブロック内の残差アクティビティｄを表し、ｄt-1(m-x,n-y)は、係数階層における位置(m-x,n-y)に対応する参照ブロック内の残差アクティビティｄを表している。
【０２１０】
このようにして算出された評価値Ｅdは加算部３１３に供給される。加算部３１３は、オフセット処理部１２４の評価値算出部１５４から出力される評価値Ｅcと、評価値算出部３２４から供給される評価値Ｅdとを重み付け加算する。加算部１２５は、その結果得られる加算値を加算部１２６に供給する。従って、加算部１２６の加算結果Ｅcoef(x,y)は、以下の式（２１）で表される。
【０２１１】
【数２１】
2009278323.tif 000023
【０２１２】
なお、式（２１）において、Ｗdは予め設定された重み係数を表している。
【０２１３】
次に、図１９のフローチャートを参照して、図１８の動き量検出装置３００による動き量検出処理について説明する。この動き量検出処理は、例えば、１フレーム分の入力画像が入力されたとき、開始される。
【０２１４】
ステップＳ９１乃至Ｓ９８の処理は、図１１のステップＳ１１乃至Ｓ１８の処理と同様であるので、説明は省略する。
【０２１５】
ステップＳ９９において、残差アクティビティ演算部３１１は、空間傾斜演算部１２１と同様に、ブロック抽出部１１１から入力される処理ブロックを係数階層化ブロック単位で抽出し、係数階層化ブロックごとに残差アクティビティｄを算出する。
【０２１６】
具体的には、残差アクティビティ演算部３１１は、係数階層化ブロックと、空間傾斜演算部１２１から供給される空間傾斜成分ａおよびｂ並びにオフセットｃとに基づいて、上述した式（１９）により残差アクティビティｄを算出する。そして、残差アクティビティ演算部３１１は、その結果得られる処理ブロック単位の８個の残差アクティビティｄを残差アクティビティ処理部３１２に供給する。
【０２１７】
ステップＳ１００において、フレームメモリ３２２は、残差アクティビティ演算部３１１から処理ブロック単位で入力される残差アクティビティｄを１フレーム分だけ保持する。ステップＳ１０１において、フレームメモリ３２２は、図１１のステップＳ１９の処理と同様に、ステップＳ１０２の係数階層処理が行われたかどうかを判定する。
【０２１８】
ステップＳ１０１で、まだ係数階層処理が行われていないと判定された場合、ステップＳ１０２において、係数階層処理部３０１は、係数階層における動き量Ｖcoefを検出する係数階層処理を行う。この係数階層処理の詳細は、後述する図２０のフローチャートを参照して説明する。ステップＳ１０２の処理後、処理はステップＳ１０１に戻り、以降の処理が繰り返される。
【０２１９】
ステップＳ１０１で、係数階層処理が行われたと判定された場合、処理はステップＳ１０３に進む。ステップＳ１０３乃至Ｓ１０５の処理は、図１１のステップＳ２１乃至Ｓ２３の処理と同様であるので説明は省略する。
【０２２０】
次に、図２０のフローチャートを参照して、図１９のステップＳ１０２の係数階層処理について説明する。
【０２２１】
ステップＳ１２１において、係数階層処理部３０１は、探索範囲内の全ての参照ブロックに対応する評価値Ｅcoefが算出されたかどうかを判定する。具体的には、フレームメモリ１３２，１４２，１５２、および３２２は、それぞれ、探索範囲内の全ての空間傾斜成分ａ、空間傾斜成分ｂ、オフセットｃ、または残差アクティビティｄを処理ブロック単位で参照ブロックとしたかどうかを判定する。
【０２２２】
ステップＳ１２１で、探索範囲内の全ての参照ブロックに対応する評価値Ｅcoefがまだ算出されていないと判定された場合、ステップＳ１２２において、係数階層処理部１１２は、探索範囲内のまだ参照ブロックとされていない処理ブロック単位の空間傾斜成分ａおよびｂ、オフセットｃ、並びに残差アクティビティｄを参照ブロックとする。
【０２２３】
具体的には、フレームメモリ１３２，１４２，１５２、および３２２は、それぞれ、探索範囲内のまだ参照ブロックとされていない同一の処理ブロックに対応する空間傾斜成分ａ、空間傾斜成分ｂ、オフセットｃ、または残差アクティビティｄを読み出し、参照ブロック取得部１３３，１４３，１５３、または３２３に供給する。これにより、この空間傾斜成分ａ、空間傾斜成分ｂ、オフセットｃ、および残差アクティビティｄは、参照ブロックとされ、評価値算出部１３４，１４４，１５４、または３２４に供給する。
【０２２４】
ステップＳ１２３乃至Ｓ１２５の処理は、図１２のステップＳ３３乃至Ｓ３５の処理と同様であるので説明は省略する。
【０２２５】
ステップＳ１２６において、評価値算出部３２４は、探索ブロック取得部３２１から供給される探索ブロックとしての残差アクティビティｄと、参照ブロック取得部３２３から供給される参照ブロックとしての残差アクティビティｄとに基づいて、上述した式（２０）を用いてブロックマッチングを行い、ステップＳ１２２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する評価値Ｅd(x,y)を算出する。
【０２２６】
ステップＳ１２７において、係数階層処理部３０１は、ステップＳ１２２で決定された参照ブロックの探索ブロックに対する位置に対応する動き量に対する係数階層における評価値Ｅcoef(x,y)を算出する。
【０２２７】
具体的には、加算部１２５は、空間傾斜成分ａ処理部１２２の評価値算出部１３４から供給される評価値Ｅaと、空間傾斜成分ｂ処理部１２３の評価値算出部１４４から供給される評価値Ｅbとを重み付け加算する。加算部１２５は、その結果得られる加算値（ＷaＥa＋ＷbＥb）を加算部１２６に供給する。
【０２２８】
また、加算部３１３は、オフセット処理部１２４の評価値算出部１５４から出力される評価値Ｅcと、残差アクティビティ処理部３１２の評価値算出部３２４から供給される評価値Ｅdとを重み付け加算する。加算部１２５は、その結果得られる加算値（ＷcＥc＋ＷdＥd）を加算部１２６に供給する。
【０２２９】
そして、加算部１２６は、加算部１２５から供給される加算値と、加算部３１３から供給される加算値を加算する。その結果、上述した式（２１）で表される係数階層における評価値Ｅcoef(x,y)が算出される。そして、処理はステップＳ１２８に進む。
【０２３０】
ステップＳ１２８乃至Ｓ１３１の処理は、図１２のステップＳ３７乃至Ｓ４０の処理と同様であるので説明は省略する。
【０２３１】
次に、図２１を参照して、上述した２つの本発明の動き量検出方法による効果について説明する。
【０２３２】
図２１のグラフは、各種の動き量検出方法におけるマッチングコストと１画素当たりのＭＣ残差の関係を示している。なお、図２１において、横軸はマッチングコストを表し、縦軸は１画素当たりのＭＣ残差を表している。
【０２３３】
また、図２１において、マッチングコストとは、階層化せずに原画でのブロックマッチングを行った場合（フルサーチ）のブロックマッチングにおける演算コストを１としたときの、各種の動き量検出方法でのブロックマッチングにおける演算コストである。さらに、ＭＣ残差とは、最小の評価値に対応する探索ブロックと参照ブロックの１画素当たりの画素値の絶対値差分である。
【０２３４】
図２１に示すように、平均値階層だけが設けられる動き量検出方法では、階層数が増えるにしたがってマッチングコストが下がるが、ＭＣ残差は増加する。また、平均値階層とアクティビティ階層が設けられる動き量検出方法では、同数の平均値階層だけが設けられる動き量検出方法に比べてマッチングコストが増加するが、ＭＣ残差は減少する。
【０２３５】
一方、図５や図１６で説明した本発明の動き量検出方法では、同数（３つ）の平均値階層が設けられる動き量検出方法および同数の平均値階層とアクティビティ階層が設けられる動き量検出方法に比べて、マッチングコストが少しだけ増加するが、ＭＣ残差は大きく減少する。
【０２３６】
従って、図５や図１６で説明した本発明の動き量検出方法では、演算コストを大幅に増加させることなく、動き量の検出精度を向上させることができるといえる。
【０２３７】
なお、上述した説明では、係数階層化ブロックは、他の係数階層化ブロックと重なり合わないように生成されたが、図２２に示すように、重なり合うようにすることもできる。
【０２３８】
具体的には、上述した説明では、図２２に示すように、８×１６の画素値からなる処理ブロック３５１に対応する８個の係数階層化ブロックとして、係数階層化ブロックどうしが重なり合わないように、４×４の画素値からなるブロック３６１乃至３６８が抽出されたが、ブロック３６１乃至３６８を中心として含む８×８の画素の画素値からなるブロックが係数階層化ブロックとして抽出されるようにしてもよい。
【０２３９】
この場合、例えば、ブロック３６１に対応する係数階層化ブロック３７１と、そのブロック３６１の右隣のブロック３６２に対応する係数階層化ブロック３７２は重なり合う。また、ブロック３６１に対応する係数階層化ブロック３７１と、そのブロック３６１の下隣のブロック３６５に対応する係数階層化ブロック３７５は重なり合う。
【０２４０】
以上のように、係数階層化ブロックどうしが重なり合うようにした場合、入力画像の前後で発生する位相ズレの悪影響を緩和することができる。
【０２４１】
具体的には、例えば、図２３に示すように、フレームｔ−１の入力画像３８１と、それより１フレーム後のフレームｔの入力画像３８２で、オブジェクトとしての車３８３の相対位置が異なる場合、車３８３の先端の画像は、入力画像３８１では領域３８１Ａに存在するが、入力画像３８２では領域３８１Ｂに存在する。
【０２４２】
従って、例えば、入力画像３８１および３８２において、４×４の係数階層化ブロックが重なり合わないように設けられる場合、領域３８１Ａは、４つの係数階層化ブロック３９１乃至３９４に対応する領域にまたがっており、領域３８１Ｂは、１つの係数階層化ブロック３９５に対応する領域であるため、入力画像３８１において、車３８３の先端の画像に対応する、係数階層化ブロック３９５の性質に似た性質の係数階層化ブロックはない。その結果、係数階層において動き量の誤検出が発生することがある。
【０２４３】
これに対して、係数階層化ブロックが重なり合うように設けられる場合、１つの係数階層化ブロックに含まれる領域３８１Ａの部分が増加し、入力画像３８１および３８２において、車３８３の先端の画像に対応する、似た性質の係数階層化ブロックが存在することになる。その結果、係数階層における動き量の誤検出を防止することができる。
【０２４４】
また、上述した説明では、空間傾斜演算部１２１（図８）は、処理ブロックが入力されるたびにリアルタイムで式（１３）の演算を行い、空間傾斜成分ａおよびｂを求めたが、学習により予め求められている係数を用いて、空間傾斜成分ａおよびｂを求めるようにしてもよい。
【０２４５】
この場合の空間傾斜演算部１２１の詳細構成例を図２４に示す。
【０２４６】
図２４において、空間傾斜演算部１２１は、予測タップ抽出部４０１、オフセット算出部４０２、クラスタップ抽出部４０３、クラス分類部４０４、係数メモリ４０５、および予測部４０６により構成される。
【０２４７】
予測タップ抽出部４０１は、ブロック抽出部１１１（図８）から入力される処理ブロックから得ようとする空間傾斜成分ａおよびｂ（この空間傾斜成分ａおよびｂは、これから求めようとするものであり、現段階では存在しないため、仮想的に想定される）を、順次注目成分とする。また、予測タップ抽出部４０１は、その注目成分を求めるのに用いる係数階層化ブロックを予測タップとして、処理ブロックから抽出する。そして、予測タップ抽出部４０１は、予測タップをオフセット算出部４０２と予測部４０６に供給する。
【０２４８】
オフセット算出部４０２は、予測タップ抽出部４０１から供給される予測タップとしての係数階層化ブロックを用いて、式（６）の演算を行う。そして、オフセット算出部４０２は、その演算の結果得られるオフセットｃを出力する。
【０２４９】
クラスタップ抽出部４０３は、注目成分を、幾つか（複数）のクラスのうちのいずれかのクラスにクラス分けするクラス分類を行うのに用いる、複数の画素の範囲における画素値を、ブロック抽出部１１１から入力される処理ブロックからクラスタップとして抽出する。そして、クラスタップ抽出部４０３は、抽出されたクラスタップをクラス分類部４０４に供給する。
【０２５０】
なお、ここでは、説明を簡単にするために、クラスタップとしては、予測タップとタップ構造が同一の複数の画素の画素値、即ち、係数階層化ブロックを採用することとする。但し、予測タップとクラスタップとは、異なるタップ構造とすることが可能である。
【０２５１】
クラス分類部４０４は、クラスタップ抽出部４０３からのクラスタップに基づいて、注目成分をクラス分類し、その結果得られるクラスに対応するクラスコードを、係数メモリ４０５に供給する。
【０２５２】
ここで、クラス分類を行う方法としては、例えば、ADRC(Adaptive Dynamic Range Coding)等を採用することができる。
【０２５３】
ADRCを用いる方法では、クラスタップを構成する画素の画素値が、ADRC処理され、その結果得られるADRCコードにしたがって、注目成分のクラスが決定される。
【０２５４】
なお、KビットADRCにおいては、例えば、クラスタップを構成する画素の画素値の最大値MAXと最小値MINが検出され、DR=MAX-MINを、クラスタップとしての複数の画素値の集合の局所的なダイナミックレンジとし、このダイナミックレンジDRに基づいて、クラスタップとしての複数の画素値それぞれがKビットに再量子化される。即ち、クラスタップとしての各画素値から、最小値MINが減算され、その減算値がDR/2Kで除算（量子化）される。
【０２５５】
そして、以上のようにして得られる、クラスタップとしてのKビットの各画素値を、所定の順番で並べたビット列が、ADRCコードとして出力される。従って、クラスタップが、例えば、１ビットADRC処理される場合には、そのクラスタップとしての各画素値は、最小値MINが減算された後に、最大値MAXと最小値MINとの差の１／２で除算され（小数点以下切り捨て）、これにより、各画素値が１ビットとされる（２値化される）。そして、その１ビットの画素値を所定の順番で並べたビット列が、ADRCコードとして出力される。
【０２５６】
なお、クラス分類部４０４には、例えば、クラスタップとしての複数の画素値のレベル分布のパターンを、そのままクラスコードとして出力させることも可能である。しかしながら、この場合、クラスタップが、Ｎ個の画素値で構成され、各画素値に、Ｋビットが割り当てられているとすると、クラス分類部４０４が出力するクラスコードの場合の数は、（２N）K通りとなり、画素値のビット数Ｋに指数的に比例した膨大な数となる。
【０２５７】
従って、クラス分類部４０４においては、クラスタップの情報量を、上述のADRC処理や、あるいはベクトル量子化等によって圧縮し、その圧縮結果を用いて、クラス分類を行うのが好ましい。
【０２５８】
係数メモリ４０５は、後述する学習によって予め求められているクラスごとのタップ係数を記憶している。即ち、係数メモリ４０５は、クラス分類部４０４で注目成分がクラス分類されうる複数のクラスそれぞれについて、タップ係数を記憶している。係数メモリ４０５は、クラスごとのタップ係数のうちの、クラス分類部４０４から供給されるクラスコードが表すクラス、つまり、注目成分のクラスのタップ係数を出力する。
【０２５９】
なお、タップ係数は、例えば、ディジタルフィルタにおける、いわゆるタップにおいて入力データと乗算される係数に相当する。
【０２６０】
予測部４０６は、予測タップ抽出部４０１が出力する予測タップと、係数メモリ４０５が出力するタップ係数とを取得し、その予測タップとタップ係数を用いて、注目成分の真値の予測値を求める所定の予測演算を行う。これにより、予測部４０６は、注目成分（の予測値）、即ち、空間傾斜成分ａおよびｂを求めて出力する。
【０２６１】
なお、上述したタップ係数は、例えば、最小自乗法を利用した学習によって求めることができる。
【０２６２】
例えば、いま、所定の予測演算として、例えば、線形１次予測演算を採用することとすると、空間傾斜成分ａおよびｂは、次の線形１次式によって求められることになる。
【０２６３】
【数２２】
2009278323.tif 000024
【０２６４】
但し、式（２２）において、ｚiは、空間傾斜成分ａおよびｂについての予測タップを構成する、ｉ番目の画素（以下、予測タップ画素という）の画素値を表し、ｗaiおよびｗbiは、ｉ番目の予測タップ画素の画素値と乗算されるｉ番目のタップ係数を表す。なお、式（２２）では、予測タップが、複数であるｎ個の予測タップ画素の画素値ｚ0，ｚ1，・・・，ｚn-1で構成されるものとしてある。この場合、タップ係数は、１クラスにつき、ｎ個存在する。
【０２６５】
ここで、空間傾斜成分ａおよびｂは、式（２２）に示した線形１次式ではなく、２次以上の高次の式によって求めるようにすることも可能である。
【０２６６】
いま、あるサンプルの空間傾斜成分ａの真値をａと表すとともに、式（２２）によって得られるその真値ａの予測値をａ'と表すと、その予測誤差ｅaは、次式で表される。
【０２６７】
【数２３】
2009278323.tif 000025
【０２６８】
そして、空間傾斜成分ａと、その空間傾斜成分ａについての予測タップとのセットのサンプル数（学習用のサンプルの数）だけ予測自乗誤差を足し合わせると、その総和Ｅaは以下の式（２４）で表され、この総和Ｅaを最小にすることで最適なタップ係数ｗaiを求めることができる。
【０２６９】
【数２４】
2009278323.tif 000026
【０２７０】
式（２４）の自乗誤差の総和Ｅaの最小値（極小値）は、式（２５）に示すように、総和Ｅaをタップ係数ｗaiで偏微分したものを０とするｗaiによって与えられる。
【０２７１】
【数２５】
2009278323.tif 000027
【０２７２】
そして、これを書き下すと、次式が得られる。
【０２７３】
【数２６】
2009278323.tif 000028
【０２７４】
また、空間傾斜成分ｂについても同様に、次式が得られる。
【０２７５】
【数２７】
2009278323.tif 000029
【０２７６】
そして、式（２６）と式（２７）を行列で書き表すと、次の連立方程式となる。
【０２７７】
【数２８】
2009278323.tif 000030
【０２７８】
式（２８）の連立方程式を、クラスごとにたてて解くことにより、最適なタップ係数（ここでは、自乗誤差の総和ＥaおよびＥbを最小にするタップ係数）ｗaiおよびｗbiを、クラスごとに求めることができる。
【０２７９】
なお、式（２８）の連立方程式が解けないクラスのタップ係数ｗaiおよびｗbiとしては、クラスに関係なく全ての学習用のサンプルを足し込んで求められたタップ係数ｗaiおよびｗbiが用いられる。
【０２８０】
空間傾斜演算部１２１は、以上のようにして求められるクラスごとのタップ係数ｗaiおよびｗbiを用いて、式（２２）の演算を行うことにより、処理ブロックから、空間傾斜成分ａおよびｂを求める。
【０２８１】
次に、図２５は、式（２８）の連立方程式をクラスごとにたてて解くことにより、図２４の係数メモリ４０５に記憶させるクラスごとのタップ係数ｗaiおよびｗbiを求める学習を行う学習装置の構成例を示している。
【０２８２】
図２５において、学習装置４２０は、学習データ記憶部４２１、学習対データ生成部４２２、予測タップ抽出部４２３、クラスタップ抽出部４２４、クラス分類部４２５、連立方程式生成部４２６、およびタップ係数算出部４２７により構成される。
【０２８３】
学習データ記憶部４２１には、タップ係数ｗaiおよびｗbiの学習に用いられる複数（サンプル数）の学習用画像が入力され、学習データ記憶部４２１は、その学習用画像を記憶する。学習データ記憶部４２１は、記憶している学習用画像を学習対データ生成部４２２に供給する。
【０２８４】
学習対データ生成部４２２は、そこに供給される学習用画像から、式（１３）の演算により、係数階層化ブロックごとに、空間傾斜成分ａおよびｂを、学習の教師（真値）となる教師値として求める。そして、学習対データ生成部４２２は、学習用画像を構成する画素値を学習の生徒としての生徒値として、その生徒値から求められた教師値と対応付け、学習対として記憶する。
【０２８５】
また、学習対データ生成部４２２は、記憶している学習対のうちの生徒値を予測タップ抽出部４２３とクラスタップ抽出部４２４に供給し、教師値を連立方程式生成部４２６に供給する。
【０２８６】
予測タップ抽出部４２３は、図２４の予測タップ抽出部４０１と同様に、学習対データ生成部４２２から供給される生徒値から得ようとする空間傾斜成分ａおよびｂを、順次注目成分とする。また、予測タップ抽出部４２３は、その注目成分を求めるのに用いる係数階層化ブロックを予測タップとして、生徒値から抽出する。そして、予測タップ抽出部４２３は、予測タップを連立方程式生成部４２６に供給する。
【０２８７】
クラスタップ抽出部４２４は、クラスタップ抽出部４０３と同様に、注目成分のクラスタップを、生徒値から抽出する。そして、クラスタップ抽出部４２４は、抽出されたクラスタップをクラス分類部４２５に供給する。
【０２８８】
クラス分類部４２５は、クラス分類部４０４と同様に、クラスタップ抽出部４２４からのクラスタップに基づいて、注目成分をクラス分類し、その結果得られるクラスに対応するクラスコードを、連立方程式生成部４２６に供給する。
【０２８９】
連立方程式生成部４２６は、学習対データ生成部４２２から供給される教師値としての空間傾斜成分ａおよびｂ、予測タップ抽出部４２３から供給される予測タップ、並びにクラス分類部４２５から供給されるクラスを用いて、クラスごとに、式（２８）の連立方程式を生成する。
【０２９０】
タップ係数算出部４２７は、連立方程式生成部４２６により生成された連立方程式をクラスごとに解くことにより、クラスごとのタップ係数ｗaiおよびｗaiを求めて出力する。このタップ係数ｗaiおよびｗaiは、図２４の係数メモリ４０５に供給され、記憶される。
【０２９１】
以上のように、図２４の空間傾斜演算部１２１では、係数メモリ４０５に予め記憶されているタップ係数ｗaiおよびｗaiを用いて、式（２２）に示す線形１次式により空間傾斜成分ａおよびｂが算出されるので、処理ブロックが入力されてから短時間で空間傾斜成分ａおよびｂを算出することができる。
【０２９２】
なお、上述した説明では、オフセットｃは、係数階層化ブロックの平均値としたが、空間傾斜成分ａおよびｂと同様に、最小自乗法により求められるようにしてもよい。即ち、式（５）において、オフセットｃも未知数として演算することにより、最小自乗誤差Ｓが最小となる空間傾斜成分ａおよびｂ並びにオフセットｃを得るようにしてもよい。この場合、オフセットｃは、係数階層化ブロックにフィットする平面のｚ方向の切片の値となる。
【０２９３】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２９４】
図２６は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０２９５】
コンピュータにおいて、CPU（Central Processing Unit）５０１，ROM（Read Only Memory）５０２，RAM（Random Access Memory）５０３は、バス５０４により相互に接続されている。
【０２９６】
バス５０４には、さらに、入出力インターフェース５０５が接続されている。入出力インターフェース５０５には、キーボード、マウス、マイクロホン、リモートコントローラから送信されてくる指令を受信する受信部などよりなる入力部５０６、ディスプレイ、スピーカなどよりなる出力部５０７、ハードディスクや不揮発性のメモリなどよりなる記憶部５０８、ネットワークインターフェースなどよりなる通信部５０９、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、または半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア５１１を駆動するドライブ５１０が接続されている。
【０２９７】
以上のように構成されるコンピュータでは、CPU５０１が、例えば、記憶部５０８に記憶されているプログラムを、入出力インターフェース５０５及びバス５０４を介して、RAM５０３にロードして実行することにより、上述した一連の処理が行われる。
【０２９８】
コンピュータのCPU５０１が実行するプログラムは、リムーバブルメディア５１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０２９９】
そして、プログラムは、リムーバブルメディア５１１をドライブ５１０に装着することにより、入出力インターフェース５０５を介して、記憶部５０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部５０９で受信し、記憶部５０８にインストールすることができる。その他、プログラムは、ROM５０２や記憶部５０８に、予めインストールしておくことができる。
【０３００】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０３０１】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０３０２】
【図１】ブロックマッチング法を説明する図である。
【図２】階層化動き量検出方法の一例を説明する図である。
【図３】階層化動き量検出方法の他の一例を説明する図である。
【図４】平均値画像とアクティビティ画像について説明する図である。
【図５】本発明の動き量検出方法の例について説明する図である。
【図６】フィッティングについて説明する図である。
【図７】空間傾斜成分について説明する図である。
【図８】本発明を適用した動き量検出装置の一実施の形態の構成例を示すブロック図である。
【図９】図８の評価値算出部の詳細構成例を示すブロック図である。
【図１０】図８の動き量検出部の詳細構成例を示すブロック図である。
【図１１】図８の動き量検出装置による動き量検出処理について説明するフローチャートである。
【図１２】図１１の係数階層処理について説明するフローチャートである。
【図１３】図１１の平均値階層処理について説明するフローチャートである。
【図１４】図１１の最下位階層処理について説明するフローチャートである。
【図１５】フィッティングに失敗する場合の例について説明する図である。
【図１６】本発明の動き量検出方法の他の例について説明する図である。
【図１７】残差アクティビティについて説明する図である。
【図１８】本発明を適用した動き量検出装置の他の一実施の形態の構成例を示すブロック図である。
【図１９】図１８の動き量検出装置による動き量検出処理について説明するフローチャートである。
【図２０】図１９の係数階層処理について説明するフローチャートである。
【図２１】本発明の動き量検出方法による効果について説明する図である。
【図２２】係数階層化ブロックの構成例を示す図である。
【図２３】図２２の係数階層化ブロックを生成することによる効果を説明する図である。
【図２４】空間傾斜演算部の詳細構成例を示すブロック図である。
【図２５】学習装置の構成例を示すブロック図である。
【図２６】コンピュータの構成例を示すブロック図である。
【符号の説明】
【０３０３】
１００  動き量検出装置，  １１２  係数階層処理部，  １１４  最下位階層処理部，  １２１  空間傾斜演算部，  １７３  評価値算出部，  １７４  動き量検出部，  １７５  加算部，  ３００  動き量検出装置，  ３１１  残差アクティビティ演算部，  ４０３  クラスタップ抽出部，  ４０４  クラス分類部，  ４０５  係数メモリ，  ４０６  予測部
【図１】
2009278323.tif 000031
【図２】
2009278323.tif 000032
【図３】
2009278323.tif 000033
【図４】
2009278323.tif 000034
【図５】
2009278323.tif 000035
【図６】
2009278323.tif 000036
【図７】
2009278323.tif 000037
【図８】
2009278323.tif 000038
【図９】
2009278323.tif 000039
【図１０】
2009278323.tif 000040
【図１１】
2009278323.tif 000041
【図１２】
2009278323.tif 000042
【図１３】
2009278323.tif 000043
【図１４】
2009278323.tif 000044
【図１５】
2009278323.tif 000045
【図１６】
2009278323.tif 000046
【図１７】
2009278323.tif 000047
【図１８】
2009278323.tif 000048
【図１９】
2009278323.tif 000049
【図２０】
2009278323.tif 000050
【図２１】
2009278323.tif 000051
【図２２】
2009278323.tif 000052
【図２３】
2009278323.tif 000053
【図２４】
2009278323.tif 000054
【図２５】
2009278323.tif 000055
【図２６】
2009278323.tif 000056