(57)【特許請求の範囲】
【請求項１】
動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判断する有効画素判断手段と、
前記演算ブロック内の画素のうち、前記有効画素判断手段により前記動きベクトルの検出に有効であると判断された画素のみを用いて、前記勾配法演算を行う勾配法演算手段と
を備え、
前記有効画素判断手段は、
前記動きベクトルを検出する対象の第１のフレーム、および、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出手段と、
前記時間差分算出手段により算出された前記時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断手段と
を備え、
前記時間差分判断手段により前記時間方向の画素差分が所定のしきい値より小さいと判断された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判断する
ことを特徴とする画像処理装置。
【請求項２】
前記有効画素判断手段は、
前記動きベクトルを検出する対象の第１のフレーム上の前記演算ブロック内の画素の第１の空間方向の画素差分を算出する第１の空間差分算出手段と、
前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の第２の空間方向の画素差分を算出する第２の空間差分算出手段と、
前記第１のフレームおよび前記第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出手段と、
前記第１および第２の空間差分算出手段、並びに、前記時間差分算出手段により算出された前記第１および第２空間方向、並びに、前記時間方向の画素差分に基づく、前記画素の勾配の類似性が所定のしきい値よりも小さいか否かを判断する勾配類似性判断手段と
をさらに備え、
前記勾配類似性判断手段により前記画素の勾配の類似性が所定のしきい値よりも小さいと判断された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判断する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記勾配類似性判断手段は、前記第１および第２空間方向、並びに、前記時間方向の画素差分に基づく、前記画素の水平方向の勾配の類似性、垂直方向の勾配の類似性、および水平垂直方向の勾配の類似性が所定のしきい値よりも小さいか否かを判断し、前記画素の水平方向の勾配の類似性、垂直方向の勾配の類似性、および水平垂直方向の勾配の類似性の少なくとも一方が所定のしきい値よりも小さいと判断した場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判断する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記勾配類似性判断手段は、前記第１および第２空間方向、並びに、前記時間方向の画素差分に基づく、前記画素の水平方向の勾配の類似性、および垂直方向の勾配の類似性が所定のしきい値よりも小さいか否かを判断し、前記画素の水平方向の勾配の類似性、および垂直方向の勾配の類似性の両方が所定のしきい値よりも小さいと判断した場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判断する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記演算ブロックにおける、前記有効画素判断手段により前記動きベクトルの検出に有効であると判断された前記画素の数が所定の数より少ないか否かを判断する画素数判断手段と、
前記画素数判断手段による判断結果を基に、前記有効画素判断手段または前記勾配法演算手段の処理を制御する演算制御手段とを
さらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記画素数判断手段により、前記演算ブロックにおける、前記動きベクトルの検出に有効であると判断された前記画素の数が所定の数より少ないと判断された場合、前記演算制御手段は、前記勾配法演算手段による勾配法演算を停止させる制御を行う
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記演算制御手段により前記勾配法演算手段による勾配法演算を停止させる制御が行われた結果、検出される動きベクトルには、０ベクトルが割り当てられる
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記演算ブロックは、ブロック単位で前記動きベクトルを検出する場合の第１の演算ブロック、および、画素単位で前記動きベクトルを検出する場合の第２の演算ブロックにより構成され、
前記有効画素判断手段は、前記第１の演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判断し、
前記画素数判断手段は、前記第１の演算ブロックにおける、前記有効画素判断手段により前記動きベクトルの検出に有効であると判断された前記画素の数が所定の数より少ないか否かを判断し、
前記演算制御手段は、前記画素数判断手段により、前記第１の演算ブロックにおいて、前記動きベクトルの検出に有効であると判断された前記画素の数が所定の数より少ないと判断された場合、前記第１の演算ブロックを対象とした処理を、前記第２の演算ブロックを対象とした処理に切り替えさせるように、前記有効画素判断手段および前記勾配法演算手段の処理を制御する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項９】
前記演算ブロックは、ブロック単位で前記動きベクトルを検出する場合の第１の演算ブロック、および、画素単位で前記動きベクトルを検出する場合の第２の演算ブロックにより構成され、
前記有効画素判断手段は、前記第１の演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判断し、
前記画素数判断手段は、前記第１の演算ブロックにおける、前記有効画素判断手段により前記動きベクトルの検出に有効であると判断された前記画素の数が所定の数より少ないか否かを判断し、
前記演算制御手段は、前記画素数判断手段により、前記第１の演算ブロックにおいて、前記動きベクトルの検出に有効であると判断された前記画素の数が所定の数より多いと判断された場合、前記有効画素判断手段により前記動きベクトルの検出に有効ではないと判断された画素に対して、前記第１の演算ブロックを対象とした処理を、前記第２の演算ブロックを対象とした処理に切り替えさせるように、前記有効画素判断手段および前記勾配法演算手段の処理を制御する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項１０】
動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判断する有効画素判断ステップと、
前記演算ブロック内の画素のうち、前記有効画素判断ステップの処理により前記動きベクトルの検出に有効であると判断された画素のみを用いて、前記勾配法演算を行う勾配法演算ステップと
を含み、
前記有効画素判断ステップは、
前記動きベクトルを検出する対象の第１のフレーム、および、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、
前記時間差分算出ステップの処理により算出された前記時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断ステップと
を含み、
前記時間差分判断ステップの処理により前記時間方向の画素差分が所定のしきい値より小さいと判断された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判断する
ことを特徴とする画像処理方法。
【請求項１１】
動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判断する有効画素判断ステップと、
前記演算ブロック内の画素のうち、前記有効画素判断ステップの処理により前記動きベクトルの検出に有効であると判断された画素のみを用いて、前記勾配法演算を行う勾配法演算ステップと
を含み、
前記有効画素判断ステップは、
前記動きベクトルを検出する対象の第１のフレーム、および、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、
前記時間差分算出ステップの処理により算出された前記時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断ステップと
を含み、
前記時間差分判断ステップの処理により前記時間方向の画素差分が所定のしきい値より小さいと判断された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判断する
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１２】
動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、前記動きベクトルの検出に有効であるか否かを判断する有効画素判断ステップと、
前記演算ブロック内の画素のうち、前記有効画素判断ステップの処理により前記動きベクトルの検出に有効であると判断された画素のみを用いて、前記勾配法演算を行う勾配法演算ステップと
を含み、
前記有効画素判断ステップは、
前記動きベクトルを検出する対象の第１のフレーム、および、前記第１のフレームの次の第２のフレーム上の前記演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、
前記時間差分算出ステップの処理により算出された前記時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断ステップと
を含み、
前記時間差分判断ステップの処理により前記時間方向の画素差分が所定のしきい値より小さいと判断された場合、前記演算ブロック内の画素が、前記動きベクトルの検出に有効であると判断する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、動きベクトル検出の精度を向上することができるようにした画像処理装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
画像のフレーム周波数を変換する画像処理装置において、着目ブロックの動きベクトルを検出する１つの方法として、特許文献１に示されるような勾配法が用いられる。この勾配法は、簡単な演算で画素以下の動きを検出できる特徴がある一方、画素単位の検出では、精度が悪いため、通常の場合、ブロック単位で値を積算して、動きベクトル検出が行われることが多い。【０００３】
したがって、従来においては、動きベクトルを検出する対象となる着目画素、または、着目ブロックの周辺に設定した演算ブロック内すべての画素を用いて勾配法演算が行われていた。理想的には、この演算ブロック内部の画素がほぼ同等な動きを持っている場合には、確からしい動きベクトルが検出される。
【特許文献１】特開昭６０−１５８７８６公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、この演算ブロックに、着目画素または着目ブロックのものとは異なる動きを持つオブジェクトの画素が混入する場合があり、この場合には、確からしくない動きベクトルが検出されることが多く、動きベクトルの検出精度が著しく悪くなるといった課題があった。また、この結果得られた動きベクトルを用いて、フレーム周波数変換を行った画像は、特に、そのオブジェクトの境界付近に、ノイズが生じたり、不連続になってしまうなど、著しい視覚劣化をもたらす課題があった。【０００５】
本発明は、このような状況に鑑みてなされたものであり、勾配法による動きベクトルの検出精度を向上することができるようにするものである。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断する有効画素判断手段と、演算ブロック内の画素のうち、有効画素判断手段により動きベクトルの検出に有効であると判断された画素のみを用いて、勾配法演算を行う勾配法演算手段とを備え、有効画素判断手段は、動きベクトルを検出する対象の第１のフレーム、および、第１のフレームの次の第２のフレーム上の演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出手段と、時間差分算出手段により算出された時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断手段とを備え、時間差分判断手段により時間方向の画素差分が所定のしきい値より小さいと判断された場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断することを特徴とする。
【０００９】
有効画素判断手段は、動きベクトルを検出する対象の第１のフレーム上の演算ブロック内の画素の第１の空間方向の画素差分を算出する第１の空間差分算出手段と、第１のフレームの次の第２のフレーム上の演算ブロック内の画素の第２の空間方向の画素差分を算出する第２の空間差分算出手段と、第１のフレームおよび第２のフレーム上の演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出手段と、第１および第２の空間差分算出手段、並びに、時間差分算出手段により算出された第１および第２空間方向、並びに、時間方向の画素差分に基づく、画素の勾配の類似性が所定のしきい値よりも小さいか否かを判断する勾配類似性判断手段とをさらに備え、勾配類似性判断手段により画素の勾配の類似性が所定のしきい値よりも小さいと判断された場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断するようにすることができる。
【００１１】
勾配類似性判断手段は、第１および第２空間方向、並びに、時間方向の画素差分に基づく、画素の水平方向の勾配の類似性、垂直方向の勾配の類似性、および水平垂直方向の勾配の類似性が所定のしきい値よりも小さいか否かを判断し、画素の水平方向の勾配の類似性、垂直方向の勾配の類似性、および水平垂直方向の勾配の類似性の少なくとも一方が所定のしきい値よりも小さいと判断した場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断するようにすることができる。【００１２】
勾配類似性判断手段は、第１および第２空間方向、並びに、時間方向の画素差分に基づく、画素の水平方向の勾配の類似性、および垂直方向の勾配の類似性が所定のしきい値よりも小さいか否かを判断し、画素の水平方向の勾配の類似性、および垂直方向の勾配の類似性の両方が所定のしきい値よりも小さいと判断した場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断するようにすることができる。【００１３】
演算ブロックにおける、有効画素判断手段により動きベクトルの検出に有効であると判断された画素の数が所定の数より少ないか否かを判断する画素数判断手段と、画素数判断手段による判断結果を基に、有効画素判断手段または勾配法演算手段の処理を制御する演算制御手段とをさらに備えるようにすることができる。【００１４】
画素数判断手段により、演算ブロックにおける、動きベクトルの検出に有効であると判断された画素の数が所定の数より少ないと判断された場合、演算制御手段は、勾配法演算手段による勾配法演算を停止させる制御を行うようにすることができる。【００１５】
演算制御手段により勾配法演算手段による勾配法演算を停止させる制御が行われた結果、検出される動きベクトルには、０ベクトルが割り当てられるようにすることができる。【００１６】
演算ブロックは、ブロック単位で動きベクトルを検出する場合の第１の演算ブロック、および、画素単位で動きベクトルを検出する場合の第２の演算ブロックにより構成され、有効画素判断手段は、第１の演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断し、画素数判断手段は、第１の演算ブロックにおける、有効画素判断手段により動きベクトルの検出に有効であると判断された画素の数が所定の数より少ないか否かを判断し、演算制御手段は、画素数判断手段により、第１の演算ブロックにおいて、動きベクトルの検出に有効であると判断された画素の数が所定の数より少ないと判断された場合、第１の演算ブロックを対象とした処理を、第２の演算ブロックを対象とした処理に切り替えさせるように、有効画素判断手段および勾配法演算手段の処理を制御するようにすることができる。【００１７】
演算ブロックは、ブロック単位で動きベクトルを検出する場合の第１の演算ブロック、および、画素単位で動きベクトルを検出する場合の第２の演算ブロックにより構成され、有効画素判断手段は、第１の演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断し、画素数判断手段は、第１の演算ブロックにおける、有効画素判断手段により動きベクトルの検出に有効であると判断された画素の数が所定の数より少ないか否かを判断し、演算制御手段は、画素数判断手段により、第１の演算ブロックにおいて、動きベクトルの検出に有効であると判断された画素の数が所定の数より多いと判断された場合、有効画素判断手段により動きベクトルの検出に有効ではないと判断された画素に対して、第１の演算ブロックを対象とした処理を、第２の演算ブロックを対象とした処理に切り替えさせるように、有効画素判断手段および勾配法演算手段の処理を制御するようにすることができる。【００１８】
本発明の画像処理方法は、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断する有効画素判断ステップと、演算ブロック内の画素のうち、有効画素判断ステップの処理により動きベクトルの検出に有効であると判断された画素のみを用いて、勾配法演算を行う勾配法演算ステップとを含み、有効画素判断ステップは、動きベクトルを検出する対象の第１のフレーム、および、第１のフレームの次の第２のフレーム上の演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、時間差分算出ステップの処理により算出された時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断ステップとを含み、時間差分判断ステップの処理により時間方向の画素差分が所定のしきい値より小さいと判断された場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断することを特徴とする。
【００１９】
本発明の記録媒体に記録されているプログラムは、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断する有効画素判断ステップと、演算ブロック内の画素のうち、有効画素判断ステップの処理により動きベクトルの検出に有効であると判断された画素のみを用いて、勾配法演算を行う勾配法演算ステップとを含み、有効画素判断ステップは、動きベクトルを検出する対象の第１のフレーム、および、第１のフレームの次の第２のフレーム上の演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、時間差分算出ステップの処理により算出された時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断ステップとを含み、時間差分判断ステップの処理により時間方向の画素差分が所定のしきい値より小さいと判断された場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断することを特徴とする。
【００２０】
本発明のプログラムは、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断する有効画素判断ステップと、演算ブロック内の画素のうち、有効画素判断ステップの処理により動きベクトルの検出に有効であると判断された画素のみを用いて、勾配法演算を行う勾配法演算ステップとを含み、有効画素判断ステップは、動きベクトルを検出する対象の第１のフレーム、および、第１のフレームの次の第２のフレーム上の演算ブロック内の画素の時間方向の画素差分を算出する時間差分算出ステップと、時間差分算出ステップの処理により算出された時間方向の画素差分が所定のしきい値より小さいか否かを判断する時間差分判断ステップとを含み、時間差分判断ステップの処理により時間方向の画素差分が所定のしきい値より小さいと判断された場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断することを特徴とする。
【００２１】
本発明においては、動きベクトルを検出するための勾配法演算の対象となる演算ブロック内の画素が、動きベクトルの検出に有効であるか否かが判断される。そして、演算ブロック内の画素のうち、有動きベクトルの検出に有効であると判断された画素のみを用いて、勾配法演算が行われる。さらに、動きベクトルを検出する対象の第１のフレーム、および、第１のフレームの次の第２のフレーム上の演算ブロック内の画素の時間方向の画素差分が算出され、その算出された時間方向の画素差分が所定のしきい値より小さいか否かが判断される。そして、時間方向の画素差分が所定のしきい値より小さいと判断された場合、演算ブロック内の画素が、動きベクトルの検出に有効であると判断される。
【発明の効果】
【００２２】
本発明によれば、勾配法による動きベクトルの検出精度を向上させることができる。さらに、本発明によれば、生成される画像の、特に、動きのある境界付近における著しい視覚劣化を抑制することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の信号処理装置の構成例を示すブロック図である。
【図２】信号処理装置の構成を示すブロック図である。
【図３】本発明の処理の原理を説明する図である。
【図４】本発明の処理を具体的に説明する図である。
【図５】信号処理装置において用いられる動きベクトルの評価値を説明する図である。
【図６】信号処理装置のフレーム周波数変換処理を説明するフローチャートである。
【図７】画像補間部の構成を示すブロック図である。
【図８】画像補間処理を説明するフローチャートである。
【図９】ベクトル検出部の構成を示すブロック図である。
【図１０】ベクトル検出部で用いられる勾配法を説明する図である。
【図１１】初期ベクトルを用いた反復勾配法を説明する図である。
【図１２】動きベクトル検出処理を説明するフローチャートである。
【図１３】シフト初期ベクトル割付部の構成を示すブロック図である。
【図１４】シフト初期ベクトルの概念を説明する図である。
【図１５】シフト初期ベクトルを具体的に説明する図である。
【図１６】シフト初期ベクトルを具体的に説明する図である。
【図１７】シフト初期ベクトルの決定方法を説明する図である。
【図１８】シフト初期ベクトルの割り付けの例を説明する図である。
【図１９】動きベクトルが競合する場合のシフト初期ベクトルの例を説明する図である。
【図２０】シフト初期ベクトル割付処理を説明するフローチャートである。
【図２１】初期ベクトル選択部の構成を示すブロック図である。
【図２２】初期ベクトルの周辺領域を示す図である。
【図２３】初期ベクトルの候補ブロックを示す図である。
【図２４】初期ベクトル選択処理を説明するフローチャートである。
【図２５】反復勾配法演算部の構成を示すブロック図である。
【図２６】有効画素判定部の構成を示すブロック図である。
【図２７】勾配法演算部の構成を示すブロック図である。
【図２８】動きベクトルの検出対象ブロックと演算ブロックを説明する図である。
【図２９】検出対象ブロックにおけるオブジェクトの動きを説明する図である。
【図３０】同じ動きのオブジェクトを有する検出対象ブロックにおける輝度の状態を説明する図である。
【図３１】異なる動きのオブジェクトを有する検出対象ブロックにおける輝度の状態を説明する図である。
【図３２】画素単位処理の演算ブロックの例を説明する図である。
【図３３】図２９の検出対象ブロックにおける画素単位処理を説明する図である。
【図３４Ａ】反復勾配法演算処理の例を説明するフローチャートである。
【図３４Ｂ】反復勾配法演算処理の他の例を説明するフローチャートである。
【図３４Ｃ】反復勾配法演算処理のさらに他の例を説明するフローチャートである。
【図３５】有効画素判定処理を説明するフローチャートである。
【図３６】勾配法演算処理を説明するフローチャートである。
【図３７】画素単位の反復勾配法演算処理を説明するフローチャートである。
【図３８】有効画素判定部の他の構成を示すブロック図である。
【図３９】勾配法演算部の他の構成を示すブロック図である。
【図４０】検出対象ブロックと演算ブロックの他の例を説明する図である。
【図４１】図３８の有効画素判定方法を説明する図である。
【図４２】演算ブロックにおける有効画素の構成を説明する図である。
【図４３】有効画素判定処理の他の処理を説明するフローチャートである。
【図４４】有効画素判定処理の他の処理を説明するフローチャートである。
【図４５】ベクトル割付部の構成を示すブロック図である。
【図４６】本発明の４点補間処理の概念を説明する図である。
【図４７】ベクトル割付処理の概要を説明する図である。
【図４８】動きベクトルと内挿フレームの交点の近傍画素の例を説明する図である。
【図４９】割付候補の動きベクトルの評価方法を説明する図である。
【図５０】ベクトル割付における４点補間の例を説明する図である。
【図５１】ベクトル割付処理を説明するフローチャートである。
【図５２】画素位置演算処理を説明するフローチャートである。
【図５３】割付ベクトル評価処理を説明するフローチャートである。
【図５４】割付補償部の構成を示すブロック図である。
【図５５】ベクトル補償部の構成を示すブロック図である。
【図５６】割付補償処理の原理を説明する図である。
【図５７】動き相関の原理を説明する図である。
【図５８】着目画素の周囲画素の構成例を説明する図である。
【図５９】着目画素の動きベクトルの補償候補ベクトルの例を説明する図である。
【図６０】着目画素の動きベクトルの補償候補ベクトルの例を説明する図である。
【図６１】着目画素の動きベクトルの補償候補ベクトルの例を説明する図である。
【図６２】補償候補ベクトルを評価する例を説明する図である。
【図６３】補償候補ベクトルを評価する例を説明する図である。
【図６４】補償候補ベクトルを評価する例を説明する図である。
【図６５】補償候補ベクトルを着目画素の動きベクトルとして選択する例を説明する図である。
【図６６】割付補償処理を説明するフローチャートである。
【図６７】ベクトル補償処理を説明するフローチャートである。
【符号の説明】
【００２４】
１  信号処理装置，１１  ＣＰＵ，１２  ＲＯＭ，１３  ＲＡＭ，３１  磁気ディスク，３２  光ディスク，３３  光磁気ディスク，３４  半導体メモリ，５１  フレームメモリ，５２  ベクトル検出部，５３  検出ベクトルメモリ，５４  ベクトル割付部，５５  割付ベクトルメモリ，５６  割付フラグメモリ，５７  割付補償部，５８  画像補間部，１０１  初期ベクトル選択部，１０３  反復勾配法演算部，１０４  ベクトル評価部，１０５  シフト初期ベクトル割付部，１０６  評価値メモリ，１０７  シフト初期ベクトルメモリ，２０１  割付対象位置演算部，２０２  評価値比較部，２０３  シフト初期ベクトル置換部，２０４  評価値置換部，２５１  候補ベクトル位置演算部，２５２  検出ベクトル取得部，２５３  シフト初期ベクトル取得部，２５４  オフセット位置演算部，２５５  評価値演算部，２５６  評価値比較部，２５７  最適候補格納用レジスタ，４０１  モード選択部，４０２  セレクタ，４０３  有効画素判定部，４０４  勾配法演算部，４０５  遅延部，４１１  時間画素差分算出部，４１２  画素差分値判定部，４１３  有効画素数カウンタ，４１４  勾配法継続判定部，４２１  時間画素差分算出部，４２２  画素差分値判定部，４２３  水平垂直画素差分算出部，４２４  勾配積算部，４２５  ベクトル算出部，５０１  第１空間勾配画素差分算出部，５０２  第２空間勾配画素差分算出部，５０３  時間方向画素差分算出部，５０４  演算判定部，５２１  第１空間勾配画素差分算出部，５２２  第２空間勾配画素差分算出部，５２３  時間方向画素差分算出部，５２４  演算判定部，７０１  画素情報演算部，７０２  評価値演算部，７０３  着目画素差分演算部，７０４  ベクトル評価部，７０５  ベクトル選択部，７１１  画素差分判断部，７１２  評価値判断部，８０１  割付ベクトル判定部，８０２  ベクトル割付部，８１１  補償処理部，８１２  評価値演算部，８２１  メモリ
【発明を実施するための最良の形態】
【００２５】
以下、図を参照して本発明の実施の形態について説明する。【００２６】
図１は、本発明を適用した信号処理装置１の構成例を表している。信号処理装置１は、例えば、パーソナルコンピュータなどで構成される。図１において、ＣＰＵ（Central Processing Unit）１１は、ＲＯＭ（Read Only Memory）１２、または記憶部１８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）１３には、ＣＰＵ１１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ１１、ＲＯＭ１２、およびＲＡＭ１３は、バス１４により相互に接続されている。【００２７】
ＣＰＵ１１にはまた、バス１４を介して入出力インタフェース１５が接続されている。入出力インタフェース１５には、キーボード、マウス、マイクロフォンなどよりなる入力部１６、ディスプレイ、スピーカなどよりなる出力部１７が接続されている。ＣＰＵ１１は、入力部１６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ１１は、処理の結果、得られた画像や音声等を出力部１７に出力する。【００２８】
入出力インタフェース１５に接続されている記憶部１８は、例えばハードディスクなどで構成され、ＣＰＵ１１が実行するプログラムや各種のデータを記憶する。通信部１９は、インターネット、その他のネットワークを介して外部の装置と通信する。また、通信部１９を介してプログラムを取得し、記憶部１８に記憶してもよい。【００２９】
入出力インタフェース１５に接続されているドライブ２０は、磁気ディスク３１、光ディスク３２、光磁気ディスク３３、或いは半導体メモリ３４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部１８に転送され、記憶される。【００３０】
なお、信号処理装置１は、例えば、テレビジョン受像機、光ディスクプレーヤなど、または、それらの信号処理部とすることもできる。【００３１】
図２は、信号処理装置１を示すブロック図である。【００３２】
なお、信号処理装置１の各機能をハードウェアで実現するか、ソフトウェアで実現するかは問わない。つまり、本明細書の各ブロック図は、ハードウェアのブロック図と考えても、ソフトウェアによる機能ブロック図と考えてもよい。【００３３】
図２に構成を示す信号処理装置１においては、例えば、フレーム周波数２４Ｈｚのプログレッシブ画像信号（以下、２４Ｐ信号と称する）の画像が入力され、入力された画像（入力画像）が、フレーム周波数６０Ｈｚのプログレッシブ画像信号（以下、６０Ｐ信号と称する）の画像に変換されて、出力される。すなわち、図２は、画像処理装置である信号処理装置の構成を示す図である。【００３４】
信号処理装置１に入力された２４Ｐ信号の入力画像は、フレームメモリ５１、ベクトル検出部５２、ベクトル割付部５４、割付補償部５７、および画像補間部５８に供給される。フレームメモリ５１は、入力画像をフレーム単位で記憶する。フレームメモリ５１は、時刻ｔ＋１の入力画像の１つ前の時刻ｔのフレームを記憶する。フレームメモリ５１に記憶される時刻ｔのフレームは、ベクトル検出部５２、ベクトル割付部５４、割付補償部５７、および画像補間部５８に供給される。なお、以下、フレームメモリ５１上の時刻ｔのフレームをフレームｔと称し、時刻ｔ＋１の入力画像のフレームを、フレームｔ＋１と称する。【００３５】
ベクトル検出部５２は、フレームメモリ５１上のフレームｔの着目ブロックと、入力画像のフレームｔ＋１の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを、検出ベクトルメモリ５３に記憶する。この２フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング法などが用いられる。ベクトル検出部５２の構成の詳細は、後述する。検出ベクトルメモリ５３は、フレームｔにおいて、ベクトル検出部５２により検出された動きベクトルを記憶する。【００３６】
ベクトル割付部５４は、２４Ｐ信号のフレームｔ上において求められた動きベクトルを、割付ベクトルメモリ５５上の、補間する６０Ｐ信号のフレーム（以下、６０Ｐ信号のフレームは、２４Ｐ信号のフレームと区別するため、内挿フレームとも称する）上の画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグを１(True)に書き換える。ベクトル割付部５４の構成の詳細は、後述する。【００３７】
割付ベクトルメモリ５５は、ベクトル割付部５４により割り付けられた動きベクトルを、内挿フレームの各画素に対応させて記憶する。割付フラグメモリ５６は、内挿フレームの画素毎に、割り付けられる動きベクトルの有無を示す割付フラグを記憶している。例えば、True(1)である割付フラグは、対応する画素に動きベクトルが割り付けられていることを示し、False(0)である割付フラグは、対応する画素に動きベクトルが割り付けられていないことを示す。【００３８】
割付補償部５７は、割付フラグメモリ５６の割付フラグを参照し、ベクトル割付部５４により動きベクトルが割り付けられなかった着目画素に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメモリ５５の内挿フレーム上に割り付ける。このとき、割付補償部５７は、動きベクトルを割り付けた着目画素の割付フラグを１(True)に書き換える。割付補償部５７の構成の詳細は、後述する。【００３９】
画像補間部５８は、割付ベクトルメモリ５５の内挿フレームに割り付けられた動きベクトルと、フレームｔおよび次のフレームｔ＋１の画素値を用いて、内挿フレームの画素値を補間生成する。そして、画像補間部５８は、生成された内挿フレームを出力し、その次に、必要に応じて、フレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力する。なお、以下においては、画素値を、適宜、輝度値とも称する。【００４０】
図３は、本発明に係る信号処理装置１における処理の原理を説明する図である。図３の例においては、点線が、信号処理装置１に入力される、時刻ｔ，ｔ＋１，およびｔ＋２における２４Ｐ信号のフレームを表しており、実線が、入力された２４Ｐ信号から信号処理装置１により、生成される時刻ｔ，ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，ｔ＋１．６，およびｔ＋２における６０Ｐ信号の内挿フレームを表している。【００４１】
一般に、２４Ｐ信号を、６０Ｐ信号に変換するためには、５／２倍のフレームが必要になる。すなわち、２枚の２４Ｐ信号の画像から５枚の６０Ｐ信号の画像が生成されなければならない。このとき、生成される６０Ｐ信号の内挿フレームは、そのフレーム間隔を等しくするために、２４Ｐ信号上での時間位相が０．０，０．４，０．８，１．２，および１．６となる位置に配置される。この中で、時間位相が０．０である時刻ｔの１フレームを除く４フレーム（ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，およびｔ＋１．６のフレーム）は、２４Ｐ信号上には存在しない画像である。したがって、信号処理装置１は、２４Ｐ信号の画像が入力されると、２４Ｐ信号の時刻ｔおよび時刻ｔ＋１の２枚のフレームから、４つの内挿フレームを生成する。したがって、信号処理装置１からは、時刻ｔ，ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，およびｔ＋１．６の５枚のフレームからなる６０Ｐ信号の画像が出力される。【００４２】
以上のようにして、信号処理装置１は、２４Ｐ信号の画像から６０Ｐ信号の画像に、フレーム周波数を変換する処理を実行する。【００４３】
なお、原理的には、上述したように、２４Ｐ信号の時刻ｔおよび時刻ｔ＋１の２枚のフレームから、時刻ｔ，ｔ＋０．４，ｔ＋０．８，ｔ＋１．２，およびｔ＋１．６の５枚の６０Ｐ信号のフレームが新しく生成されるが、実際には、図３の例の場合、２４Ｐ信号の時刻ｔおよび時刻ｔ＋１の２枚のフレームに基づいて、ｔ，ｔ＋０．４，ｔ＋０．８の６０Ｐ信号のフレームが生成され、２４Ｐ信号の時刻ｔ＋１およびｔ＋２の２枚のフレームに基づいて、ｔ＋１．２，ｔ＋１．６，およびｔ＋２の６０Ｐ信号のフレームが生成される。【００４４】
図４は、本発明の処理をより具体的に説明する図である。図４の例においては、太線矢印は、各状態への遷移を表しており、矢印Ｔは、状態８１乃至８５における時間の経過方向を表している。また、状態８１乃至８５は、信号処理装置１を構成する各部への入出力時の、２４Ｐ信号の時刻ｔのフレームｔ、時刻ｔの次の時刻ｔ＋１のフレームｔ＋１、または、フレームｔおよびフレームｔ＋１の間に生成される６０Ｐ信号の内挿フレームＦの状態を概念的に表している。すなわち、実際には、例えば、状態８２に示されるような動きベクトルが検出されたフレームは入力されず、フレームと動きベクトルは、別々に入力される。【００４５】
状態８１は、ベクトル検出部５２に入力される、２４Ｐ信号のフレームｔおよびフレームｔ＋１の状態を表している。状態８１のフレームｔ上の黒点は、フレームｔ上の画素を表している。ベクトル検出部５２は、状態８１のフレームｔ上の画素が、次の時刻のフレームｔ＋１において、どの位置に移動するかを検出し、その動きを、状態８２のフレームｔ上に示されるように、各画素に対応する動きベクトルとして出力する。この２フレーム間の動きベクトルの検出方法には、ブロックマッチング法または勾配法などが用いられる。なお、このとき、画素に複数の動きベクトルが検出された場合、ベクトル検出部５２は、各動きベクトルについて、後述する評価値を求め、その評価値に基づいて動きベクトルを選択する。【００４６】
状態８２は、ベクトル割付部５４に入力される、フレームｔおよびフレームｔ＋１の状態を表している。状態８２において、フレームｔの各画素の矢印は、ベクトル検出部５２により検出された動きベクトルを表している。【００４７】
ベクトル割付部５４は、状態８２のフレームｔの各画素に対して検出された動きベクトルを、次のフレームｔ＋１まで延長させ、予め設定されている時間位相（例えば、図３のｔ＋０．４）にある内挿フレームＦ上のどの位置を通過するかを求める。これは、フレームｔおよびフレームｔ＋１の間が一定動きであると仮定すると、動きベクトルが内挿フレームＦを通過した点が、そのフレームでの画素位置となるためである。したがって、ベクトル割付部５４は、この通過する動きベクトルを、状態８３の内挿フレームＦ上の近傍４画素に割り付ける。また、このとき、内挿フレームの画素によっては、動きベクトルが存在しない場合、あるいは、複数の動きベクトルが、割付候補となりうる場合がある。後者のような場合には、ベクトル割付部５４は、ベクトル検出部５２と同様に、各動きベクトルについての評価値を求め、その評価値に基づいて割り付ける動きベクトルを選択する。【００４８】
状態８３は、割付補償部５７に入力される、フレームｔおよびフレームｔ＋１、並びに動きベクトルが割り付けられた内挿フレームＦの状態を表している。状態８３の内挿フレームＦにおいては、ベクトル割付部５４により動きベクトルが割り付けられている画素と、動きベクトルが割り付けられなかった画素が示されている。【００４９】
割付補償部５７は、状態８３の動きベクトルが割り付けられていない画素に対して、その画素の周辺画素に割り付けられている動きベクトルを用いて補う。これは、ある着目画素の近傍領域が同じ動きであるという仮定が成り立つならば、着目画素の周辺画素の動きベクトルと、その着目画素の動きベクトルは似たものであるからである。これにより、動きベクトルが割り付けられなかった画素にも、ある程度正確な動きベクトルが与えられ、状態８４の内挿フレームＦ上のすべての画素に動きベクトルが割り付けられる。なお、この場合にも、複数の周辺画素の動きベクトルが候補として存在するため、割付補償部５７は、ベクトル割付部５４と同様に、各動きベクトルについての評価値を求め、その評価値に基づいて割り付ける動きベクトルを選択する。【００５０】
状態８４は、画像補間部５８に入力される、フレームｔおよびフレームｔ＋１、並びに、すべての画素に動きベクトルが割り付けられた内挿フレームＦの状態を表している。これらのすべての画素に割り付けられた動きベクトルにより、画像補間部５８は、内挿フレームＦ上の画素と、２枚のフレームｔおよびフレームｔ＋１の画素の位置関係を決定することができる。したがって、画像補間部５８は、内挿フレームＦ上に割り付けられた動きベクトルと、フレームｔおよびフレームｔ＋１の画素値を用いて、状態８５の内挿フレームＦの黒点に示されるように、内挿フレームＦ上の画素値を補間生成する。そして、画像補間部５８は、生成された内挿フレームを出力し、その次に、必要に応じて、フレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力する。【００５１】
次に、図５を参照して、本発明に係る信号処理装置１において用いられる動きベクトルの評価値を説明する。図４を参照して上述したように、信号処理装置１の各部（ベクトル検出部５２、ベクトル割付部５４、および割付補償部５７）において、後段の処理に最適な動きベクトルが選択される。このとき、信号処理装置１の各部においては、動きベクトルに対する評価値として、２つのフレームの注目するベクトル量分ずらしたブロック間の相関値を表す差分絶対値和（ＤＦＤ(Displaced Frame Difference)）が用いられる。【００５２】
図５の例においては、時刻ｔのフレームｔ上の画素位置ｐを中心としたｍ×ｎのブロック、および、時刻ｔ＋１のフレームｔ＋１上の画素位置ｐから注目する動きベクトルｖのベクトル量分ずらした画素位置ｐ＋ｖを中心としたｍ×ｎのブロックの２つのブロックが示されている。これら２つのブロック間において求められる差分絶対値和ＤＦＤt（ｐ）は、次の式（１）で表される。【００５３】
【数１】
0004692845.tif 000002
・・・（１）【００５４】
ここで、Ｆt（ｐ）は、時刻ｔにおける画素位置ｐの輝度値を表しており、ｍ×ｎは、差分絶対値和を求めるためのＤＦＤ演算範囲（ブロック）を表している。この差分絶対値和は、２つのフレームにおけるＤＦＤ演算範囲（ブロック）間の相関値を表しているため、一般的には、この差分絶対値和が小さいほどフレーム間のブロックの波形が一致しており、差分絶対値和が小さいほど、動きベクトルｖの信頼度が高いと判定される。これにより、この差分絶対値和は、複数の候補の中から、最も確からしい動きベクトルを選ぶ場合などに用いられる。【００５５】
したがって、以降、信号処理装置１の各部（ベクトル検出部５２、ベクトル割付部５４、および割付補償部５７）においては、動きベクトルが選択される場合の評価値として、特に言及しない場合には、差分絶対値和（以下、評価値ＤＦＤと称する）が用いられることとする。【００５６】
次に、図６のフローチャートを参照して、信号処理装置１のフレーム周波数を変換する処理を説明する。【００５７】
ステップＳ１において、ベクトル検出部５２は、時刻ｔ＋１の入力画像のフレームｔ＋１と、フレームメモリ５１の入力画像の１つ前の時刻ｔのフレームｔの画素値を入力し、ステップＳ２に進む。なお、このとき、ベクトル割付部５４、割付補償部５７および画像補間部５８は、時刻ｔ＋１の入力画像のフレームｔ＋１と、フレームメモリ５１の入力画像の１つ前の時刻ｔのフレームｔの画素値を入力する。【００５８】
ステップＳ２において、ベクトル検出部５２は、動きベクトル検出処理を実行し、ステップＳ３に進む。すなわち、ベクトル検出部５２は、フレームメモリ５１上のフレームｔの着目ブロックと、入力画像である次のフレームｔ＋１の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを、検出ベクトルメモリ５３に記憶し、ステップＳ３に進む。この２フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング法などが用いられる。また、動きベクトルの候補が複数ある場合には、各動きベクトルに対して、評価値ＤＦＤが求められ、求められた評価値ＤＦＤに基づいた信頼度の高い動きベクトルが検出される。すなわち、この場合、動きベクトルを検出する着目ブロックにおいて、最も確からしい動きベクトルが選択され、検出される。ステップＳ２における、動きベクトル検出処理の詳細は、後述する。【００５９】
ステップＳ３において、ベクトル割付部５４は、ベクトル割付処理を実行し、ステップＳ４に進む。すなわち、ベクトル割付部５４は、ステップＳ３において、フレームｔ上において求められた動きベクトルを、割付ベクトルメモリ５５上の、補間する内挿フレーム上の着目画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグを１(True)に書き換える。例えば、Trueである割付フラグは、対応する画素に動きベクトルが割り付けられていることを示し、Falseである割付フラグは、対応する画素に動きベクトルが割り付けられていないことを示す。なお、各画素において、動きベクトルの候補が複数ある場合には、各動きベクトルに対して、評価値ＤＦＤが求められ、求められた評価値ＤＦＤに基づいた信頼度の高い動きベクトルが割り付けられる。すなわち、この場合、動きベクトルを割り付ける着目画素において、最も確からしい動きベクトルが選択され、割り付けられる。ステップＳ３における、ベクトル割付処理の詳細は、後述する。【００６０】
ステップＳ４において、割付補償部５７は、割付補償処理を実行し、ステップＳ５に進む。すなわち、割付補償部５７は、ステップＳ４において、割付フラグメモリ５６の割付フラグを参照し、ベクトル割付部５４により動きベクトルが割り付けられなかった着目画素に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメモリ５５の内挿フレーム上に割り付ける。このとき、割付補償部５７は、動きベクトルを補い、割付けた着目画素の割付フラグを１(True)に書き換える。なお、周辺画素の動きベクトルが複数ある場合には、各動きベクトルに対して、評価値ＤＦＤが求められ、求められた評価値ＤＦＤに基づいた、信頼度の高い動きベクトルが割り付けられる。すなわち、この場合、動きベクトルを割り付ける着目画素において、最も確からしい動きベクトルが選択され、割り付けられる。ステップＳ４における、割付補償処理の詳細は、後述する。【００６１】
ステップＳ５において、画像補間部５８は、画像補間処理を実行する。すなわち、画像補間部５８は、ステップＳ５において、割付ベクトルメモリ５５の内挿フレームに割り付けられた動きベクトルと、フレームｔおよびフレームｔ＋１の画素値を用いて、内挿フレームの画素値を補間生成し、ステップＳ６に進む。ステップＳ５における、画像補間処理の詳細は後述する。画像補間部５８は、ステップＳ６において、生成された内挿フレームを出力し、その次に、必要に応じて、フレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力し、ステップＳ７に進む。【００６２】
ステップＳ７において、ベクトル検出部５２は、すべてのフレームの処理が終了したか否かを判断し、すべてのフレームの処理が終了していないと判断した場合、ステップＳ１に戻り、それ以降の処理を繰り返す。一方、ベクトル検出部５２は、ステップＳ７において、すべてのフレームの処理が終了したと判断した場合、フレーム周波数を変換する処理を終了する。【００６３】
以上のように、本発明に係る信号処理装置１は、２４Ｐ信号の入力画像のフレームから動きベクトルを検出し、検出した動きベクトルを、６０Ｐ信号のフレーム上の画素に割付け、割付けられた動きベクトルに基づいて、６０Ｐ信号のフレーム上の画素値を生成する。このとき、信号処理装置１は、各処理において、評価値ＤＦＤ（差分絶対値和）に基づく、より信頼度の高い動きベクトルを選択し、後段に出力する。したがって、信号処理装置１においては、動きが破綻することなどが抑制され、より精度のよい画像を生成することができる。【００６４】
次に、画像補間部５８の構成の詳細について説明する。【００６５】
図７は、画像補間部５８の構成を示すブロック図である。図７に構成を示す画像補間部５８は、割付ベクトルメモリ５５の内挿フレームに割り付けられた動きベクトルと、フレームｔおよびフレームｔ＋１の画素値を用いて、内挿フレームの画素値を補間生成し、６０Ｐ信号の画像を出力する処理を行う。【００６６】
図７の例において、時刻ｔの画像のフレームｔは、空間フィルタ９２−１に入力され、時刻ｔ＋１の画像のフレームｔ＋１は、空間フィルタ９２−２およびバッファ９５に入力される。【００６７】
補間制御部９１は、割付ベクトルメモリ５５の内挿フレームの画素を選択し、選択した画素に割り付けられている動きベクトルに基づいて、内挿フレーム上の画素と、２枚のフレームｔおよびフレームｔ＋１の画素との位置関係（空間シフト量）をそれぞれ求める。すなわち、補間制御部９１は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ上の位置と、内挿フレームの画素に対応するフレームｔ上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−１に供給する。同様に、補間制御部９１は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ＋１上の位置と、内挿フレームの画素に対応するフレームｔ＋１上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−２に供給する。【００６８】
また、補間制御部９１は、予め設定されている内挿フレームの時間位相（時刻）に基づいて、フレームｔとフレームｔ＋１の間における補間重みを求め、求めた補間重みを、乗算器９３−１および９３−２に設定する。例えば、内挿フレームの時刻が、フレームｔ＋１の時刻ｔ＋１から「ｋ」離れた時刻で、かつ、フレームｔの時刻ｔから「１−ｋ」離れた時刻である場合（すなわち、内挿フレームが時刻ｔと時刻ｔ＋１を「１−ｋ」：「ｋ」に内分する時刻に生成される場合）、補間制御部９１は、乗算器９３−１に「１−ｋ」の補間重みを設定し、乗算器９３−２に「ｋ」の補間重みを設定する。【００６９】
空間フィルタ９２−１および９２−２は、例えば、キュービックフィルタなどにより構成される。空間フィルタ９２−１は、入力されるフレームｔ上の画素の画素値と、補間制御部９１から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、フレームｔ上の画素値を求め、求めた画素値を乗算器９３−１に出力する。空間フィルタ９２−２は、入力されるフレームｔ＋１上の画素の画素値と、補間制御部９１から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、フレームｔ＋１上の画素値を求め、求めた画素値を乗算器９３−２に出力する。【００７０】
なお、内挿フレームの画素の位置が、フレームｔまたはフレームｔ＋１上の画素の位置と一致しない場合（すなわち、内挿フレームの画素の位置が、フレームｔまたはフレームｔ＋１において画素以下成分である場合）、空間フィルタ９２−１および９２−２は、フレームｔまたはフレームｔ＋１における内挿フレームの画素の位置の周辺４画素の画素値を用いて、周辺４画素の距離の逆比の和を求めることにより、内挿フレームの画素に対応するフレーム上の画素値を求める。すなわち、画素以下位置の画素値は、周辺４画素との距離を基にした線形補間で値が求められる（その詳細は後述する）。【００７１】
乗算器９３−１は、空間フィルタ９２−１から入力されるフレームｔ上の画素値に、補間制御部９１により設定された補間重み「１−ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。乗算器９３−２は、空間フィルタ９２−２から入力されるフレームｔ＋１上の画素値に、補間制御部９１により設定された補間重み「ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。【００７２】
加算器９４は、乗算器９３−１から入力される画素値と、乗算器９３−２から入力される画素値を加算することにより、内挿フレームの画素の画素値を生成し、生成された内挿フレームの画素値を、バッファ９５に出力する。バッファ９５は、入力されたフレームｔ＋１をバッファしている。バッファ９５は、生成された内挿フレームを出力し、その次に、予め設定されている６０Ｐフレームの時間位相（時刻）に基づいて、必要に応じて、バッファしているフレームｔ＋１を出力することにより、６０Ｐ信号の画像を、図示せぬ後段に出力する。【００７３】
以上のように構成される画像補間部５８の画像補間処理の詳細を、図８のフローチャートを参照して説明する。【００７４】
補間制御部９１は、ステップＳ５１において、処理する内挿フレームの時間位相に基づいて、フレームｔとフレームｔ＋１の間における内挿フレームの補間重み（例えば、「ｋ」および「１−ｋ」）を求め、求められた補間重みを、乗算器９３−１および９３−２にそれぞれ設定し、ステップＳ５２に進む。補間制御部９１は、ステップＳ５２において、割付ベクトルメモリ５５の内挿フレームの画素を選択し、ステップＳ５３に進む。なお、内挿フレーム上の画素は、フレームの左上の画素からラスタスキャン順に選択される。【００７５】
補間制御部９１は、ステップＳ５３において、選択した画素に割り付けられている動きベクトルに基づいて、内挿フレーム上の画素と、２枚のフレームｔおよびフレームｔ＋１の画素との位置関係（空間シフト量）をそれぞれ求め、求められた空間シフト量を、それぞれ空間フィルタ９２−１および９２−２に供給し、ステップＳ５４に進む。具体的には、補間制御部９１は、ステップＳ５３において、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ上の位置と、内挿フレームの画素に対応するフレームｔ上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−１に供給する。同様に、補間制御部９１は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームｔ＋１上の位置と、内挿フレームの画素に対応するフレームｔ＋１上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ９２−２に供給する。【００７６】
時刻ｔの画像のフレームｔの画素値は、空間フィルタ９２−１に入力され、時刻ｔ＋１の画像のフレームｔ＋１の画素値は、空間フィルタ９２−２に入力されている。ステップＳ５４において、空間フィルタ９２−１および９２−２は、入力されるフレームｔおよびｔ＋１上の画素の画素値と、補間制御部９１から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、各フレーム上の画素値を求め、求めた画素値を乗算器９３−１および９３−２にそれぞれ出力し、ステップＳ５５に進む。【００７７】
乗算器９３−１および９３−２は、ステップＳ５５において、空間フィルタ９２−１または９２−２から入力される各フレーム上の画素値に、補間制御部９１により設定された補間重みを重み付けし、重み付けされた画素値を、加算器９４に出力し、ステップＳ５６に進む。すなわち、乗算器９３−１は、空間フィルタ９２−１から入力されるフレームｔ上の画素値に、補間制御部９１により設定された補間重み「１−ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。乗算器９３−２は、空間フィルタ９２−２から入力されるフレームｔ＋１上の画素値に、補間制御部９１により設定された補間重み「ｋ」を乗算し、重み付けされた画素値を、加算器９４に出力する。【００７８】
加算器９４は、ステップＳ５６において、乗算器９３−１により重み付けされた画素値と、乗算器９３−２により重み付けされた画素値を加算することにより、内挿フレームの画素の画素値を生成し、生成された画素値を、バッファ９５に出力し、ステップＳ５７に進む。補間制御部９１は、ステップＳ５７において、内挿フレーム上のすべての画素についての処理が終了したか否かを判断し、内挿フレーム上のすべての画素についての処理が終了していないと判断した場合、ステップＳ５２に戻り、それ以降の処理を繰り返す。補間制御部９１は、ステップＳ５７において、内挿フレーム上のすべての画素についての処理が終了したと判断した場合、画像補間処理を終了する。【００７９】
以上のように、内挿フレームに割り付けられた動きベクトルに基づいて、内挿フレームの画素値が生成され、上述した図６のステップＳ６において、バッファ９５により、内挿フレームが出力され、その次に、必要に応じて、フレームｔ＋１が出力されることにより、６０Ｐ信号の画像が、後段に出力される。したがって、内挿フレームの画素に、最も確からしい動きベクトルが割り付くので、精度のよい内挿フレームを生成することができる。【００８０】
次に、ベクトル検出部５２の構成の詳細について説明する。【００８１】
図９は、ベクトル検出部５２の構成を示すブロック図である。図９に構成を示すベクトル検出部５２は、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、フレームｔ上の動きベクトルを検出する。この動きベクトルを検出する処理は、複数の画素からなる所定のブロック毎に実行される。【００８２】
初期ベクトル選択部１０１は、所定のブロック毎に、過去の動きベクトルの検出結果から求められる信頼度が高い動きベクトルを、勾配法に用いられる初期値となる初期ベクトルＶ０として、反復勾配法演算部１０３に出力する。具体的には、初期ベクトル選択部１０１は、検出ベクトルメモリ５３に記憶される過去に求められた周辺のブロックの動きベクトルや、シフト初期ベクトルメモリ１０７に記憶されるシフト初期ベクトルを、初期ベクトルの候補ベクトルとして選択する。そして、初期ベクトル選択部１０１は、フレームｔとフレームｔ＋１を用いて、候補ベクトルの評価値ＤＦＤを求め、候補ベクトルの中から、求められた評価値ＤＦＤに基づく、最も信頼度が高いものを選択し、初期ベクトルＶ０として出力する。なお、初期ベクトル選択部１０１の構成の詳細は、後述する。【００８３】
プリフィルタ１０２−１および１０２−２は、ローパスフィルタやガウシアンフィルタにより構成され、それぞれ、入力される画像のフレームｔおよびフレームｔ＋１のノイズ成分を除去し、反復勾配法演算部１０３に出力する。【００８４】
反復勾配法演算部１０３は、初期ベクトル選択部１０１から入力された初期ベクトルＶ０と、プリフィルタ１０２−１および１０２−２を介して入力されるフレームｔおよびフレームｔ＋１を用いて、所定のブロック毎に、勾配法により、動きベクトルＶｎを算出する。反復勾配法演算部１０３は、初期ベクトルＶ０と、算出された動きベクトルＶｎをベクトル評価部１０４に出力する。また、反復勾配法演算部１０３は、ベクトル評価部１０４による動きベクトルの評価結果に基づいて、勾配法の演算を繰り返し行い、動きベクトルＶｎを算出する。なお、反復勾配法演算部１０３の構成の詳細は、後述する。【００８５】
ベクトル評価部１０４は、反復勾配法演算部１０３からの動きベクトルＶｎ−１（または初期ベクトルＶ０）と、動きベクトルＶｎの評価値ＤＦＤを求め、求められた評価値ＤＦＤに基づいて、反復勾配法演算部１０３を制御し、勾配法の演算を繰り返し実行させ、最終的に、評価値ＤＦＤに基づく、信頼性の高いものを選択し、動きベクトルＶとして、検出ベクトルメモリ５３に記憶する。このとき、ベクトル評価部１０４は、動きベクトルＶとともに、その動きベクトルＶに対して求められた評価値ＤＦＤを、シフト初期ベクトル割付部１０５に供給する。【００８６】
シフト初期ベクトル割付部１０５は、ベクトル評価部１０４より動きベクトルＶおよびその評価値ＤＦＤが供給されると、次のフレーム上の着目ブロックを通過する動きベクトルを、その着目ブロックにシフトさせた、シフト初期ベクトルとして設定する。換言すると、シフト初期ベクトル割付部１０５は、動きベクトルＶの終点のブロックと同じ位置の次のフレーム上の着目ブロックを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトルを、シフト初期ベクトルとして設定する。そして、シフト初期ベクトル割付部１０５は、設定したシフト初期ベクトルを、着目ブロックに対応させて、シフト初期ベクトルメモリ１０７に割り付ける。【００８７】
具体的には、シフト初期ベクトル割付部１０５は、シフト初期ベクトルとして割り付けられた動きベクトルＶの評価値ＤＦＤを、着目ブロックに対応させて、評価値メモリ１０６に記憶させておき、同じ着目ブロックを通過する（すなわち、着目ブロックと同じ位置の過去のフレームのブロックを終点とする）他の動きベクトルＶの評価値ＤＦＤと比較する。そして、シフト初期ベクトル割付部１０５は、評価値ＤＦＤに基づく、信頼度が高いとされた動きベクトルＶを、着目ブロックにシフトさせ、着目ブロックのシフト初期ベクトルとして、シフト初期ベクトルメモリ１０７に割り付ける。なお、シフト初期ベクトル割付部１０５の構成の詳細は、後述する。【００８８】
次に、ベクトル検出部５２において用いられる勾配法の原理について説明する。まず、動画像中において、水平、垂直、時間軸を用いた座標（ｘ，ｙ，ｔ）で表される画素の輝度値をｇ（ｘ，ｙ，ｔ）とする。ここで、着目画素（ｘ0，ｙ0，ｔ0）が、微小時間中に、（ｄｘ，ｄｙ，ｄｔ）だけ変位したとき、水平、垂直、時間軸の勾配（差分差）を、それぞれｇｘ（ｘ0，ｙ0，ｔ0），ｇｙ（ｘ0，ｙ0，ｔ0），ｇｔ（ｘ0，ｙ0，ｔ0）と表すと、変位後の画素の輝度値は、Taylor展開近似を用いて、次の式（２）で表される。【００８９】
ｇ（ｘ0＋ｄｘ，ｙ0＋ｄｙ，ｔ0＋ｄｔ）
≒  ｇ（ｘ0，ｙ0，ｔ0）＋ｇｘ（ｘ0，ｙ0，ｔ0）ｄｘ
＋  ｇｙ（ｘ0，ｙ0，ｔ0）ｄｙ＋ｇｔ（ｘ0，ｙ0，ｔ0）ｄｔ
・・・（２）【００９０】
ここで、動画像中のある着目画素が１フレーム後に水平ｖｘ，垂直ｖｙだけ移動した場合（以降、（ｖｘ，ｖｙ）と表す）、その画素の輝度値は、次の式（３）で表される。【００９１】
ｇ（ｘ0＋ｖｘ，ｙ0＋ｖｙ，ｔ0＋１）  ＝  ｇ（ｘ0，ｙ0，ｔ0）
・・・（３）【００９２】
式（２）を式（３）に代入すると、次の式（４）で表される。【００９３】
ｇｘ（ｘ0，ｙ0，ｔ0）ｖｘ＋ｇｙ（ｘ0，ｙ0，ｔ0）ｖｙ
＋ｇｔ（ｘ0，ｙ0，ｔ0）  ＝  ０
・・・（４）【００９４】
式（４）は、ｖｘ，ｖｙの２変数の式であるので、着目１画素に対する単独の式では、その解を求めることができない。そこで、次に説明するように、着目画素の周辺領域であるブロックを１つの処理単位として考え、ブロック（周辺領域）内の全画素が同じ動き（ｖｘ，ｖｙ）をすると仮定し、各画素について同様の式を立てる。仮定が前提となるが、２変数に対して周辺画素の個数の式が得られる。したがって、それらの式を連立させ、ブロック内全画素の動き補償フレーム差分の自乗和が最小になるような（ｖｘ，ｖｙ）を求める。【００９５】
画素（ｘ，ｙ，ｔ）が１フレーム間に（ｖｘ，ｖｙ）だけ移動したとき、その動き補償フレーム間差分dは、次の式（５）で表される。【００９６】
ｄ  ＝  ｇ（ｘ＋ｖｘ，ｙ＋ｖｙ，ｔ＋１）−ｇ（ｘ，ｙ，ｔ）
＝  Δｘｖｘ＋Δｙｖｙ＋Δｔ
・・・（５）【００９７】
式（５）において、Δｘ=ｇｘ（ｘ，ｙ，ｔ）であり、水平方向の勾配を表し、Δｙ＝ｇｙ（ｘ，ｙ，ｔ）であり、垂直方向の勾配を表し、Δｔ＝ｇｔ（ｘ，ｙ，ｔ）であり、時間方向の勾配を表す。これらを用いて、動き補償フレーム間差分の自乗和をＥとすると、式（６）で表される。【００９８】
Ｅ  ＝  Σｄ2
＝  Σ（Δｘ2ｖｘ2＋Δｙ2ｖｙ2＋２ΔｘΔｙｖｘｖｙ
＋２ΔｘΔｔｖｘ＋２ΔｙΔｔｖｙ＋Δｔ2）
＝ｖｘ2ΣΔｘ2＋ｖｙ2ΣΔｙ2＋２ｖｘｖｙΣΔｘΔｙ
＋２ｖｘΣΔｘΔｔ＋２ｖｙΣΔｙΔｔ＋ΣΔｔ2
・・・（６）【００９９】
ここで、Ｅが最小となる（ｖｘ，ｖｙ）は、各変数における偏微分値が０になるとき、すなわち、δＥ／δｖｘ＝δＥ／δｖｙ＝０の条件が成立するときなので、式（６）から、次の式（７）および式（８）となる。【０１００】
ｖｘΣΔｘ2＋ｖｙΣΔｘΔｙ＋ΣΔｘΔｔ  ＝  ０
・・・（７）
ｖｙΣΔｙ2＋ｖｘΣΔｘΔｙ＋ΣΔｙΔｔ  ＝  ０
・・・（８）【０１０１】
これらの式（７）および式（８）から、求めたい動きである（ｖｘ，ｖｙ）は、次の式（９）を演算することにより求めることができる。【０１０２】
【数２】
0004692845.tif 000003
・・・（９）【０１０３】
ここで、図１０を参照して、具体的に説明する。図１０の例において、矢印Ｘは、水平方向を示しており、矢印Ｙは、垂直方向を示している。また、矢印Ｔは、図中、右奥の時刻ｔのフレームｔから、左手前の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。なお、図１０の例においては、各フレームは、着目画素ｐの周辺領域（ブロック）として、勾配法演算に用いられる８画素×８画素の領域のみ示されている。【０１０４】
フレームｔにおいて、左上の画素から下に５番目、右に５番目の画素である着目画素ｐの動きベクトルＶ（ｖｘ，ｖｙ）を、上述した勾配法を用いて求める場合、動きベクトルＶ（ｖｘ，ｖｙ）は、着目画素ｐのｘ，ｙ方向のそれぞれについて求められる隣接画素ｐｘおよびｐｙとの輝度の差分差（すなわち、勾配）ΔｘおよびΔｙ、フレームｔ＋１において求められる着目画素ｐの同位相に位置する画素ｑとの時間方向の輝度の差分差（勾配）Δｔを、着目画素ｐの周辺領域（８画素×８画素）のすべての画素について求め、それらの差分差を、式（９）を用いて演算することにより、求めることができる。【０１０５】
すなわち、勾配法とは、２フレーム間において、勾配Δｘ，Δｙ，およびΔｔを求め、求められたΔｘ，Δｙ，およびΔｔから、差分自乗和を用いて、統計的に、動きベクトルＶ（ｖｘ，ｖｙ）を算出するものである。【０１０６】
一般的に、このような勾配法を用いた動きベクトル検出方法においては、微小動きに対して精度の高い結果が得られる。しかしながら、実際の動画像の中で動きを求めようとするとする場合、この勾配法は、その動き量が大きすぎるため実用的とはいえない。これに対応して、この勾配法を複数回反復する方法が考えられる。勾配法を反復して実行することにより、各演算で求められる動き量が収束するため、徐々に正しい動きが求められる。【０１０７】
しかしながら、ただ、勾配法を反復するだけでは、リアルタイム処理を行おうとした場合、演算時間の面から実用的ではない。そこで、ベクトル検出部５２においては、過去フレームと現在フレームでの周辺画素の動きに基づいて求められる初期ベクトルを、初期値として用いることで、勾配法の繰り返し回数を軽減している。すなわち、動きの起点となる着目画素から、初期ベクトルが指す先へオフセットを予め加えることで大まかな動きを算出し、オフセットが加えられたその位置から勾配法を用いた演算を行うようにすれば、画素以下動きを含めた微調整を行うことができる。これにより、演算時間を増大させることなく、精度のよい動きベクトルを検出することができる。【０１０８】
図１１は、初期ベクトルを用いて実行される反復勾配法について具体的に説明する図である。図１１の例においては、矢印Ｔは、図中、左手前の時刻ｔのフレームｔから、右奥の時刻ｔ＋１のフレームｔ＋１への時間の経過を示している。なお、各画素ｐ，ｑ０，ｑ１，ｑ２，およびｑ３を中心としたブロックは、その画素の、勾配法演算に用いられる周辺領域（ブロック）を表している。【０１０９】
図１１の例の場合、フレームｔにおける着目画素ｐに対して、フレームｔ＋１においては、着目画素ｐの同位相に位置する画素ｑ０ではなく、予め求めておいた初期ベクトルｖ０をオフセット（移動）して計算した位置（画素）ｑ１を開始点として１回目の勾配法演算が行われ、その結果、動きベクトルｖ１が得られる。【０１１０】
次に、画素ｑ０からｖ０＋ｖ１をオフセットして計算した位置（画素）ｑ２を開始点として、２回目の勾配法演算が行われ、その結果、動きベクトルｖ２が得られる。これにより、最終的に動きベクトルＶは、式（１０）として求められる。【０１１１】
Ｖ  ＝  ｖ０＋ｖ１＋ｖ２
・・・（１０）【０１１２】
以上のようにして、初期ベクトルを用いて、反復勾配法の演算を実行することにより、演算時間を短縮させつつ、精度の高い動きベクトルを求めることができる。【０１１３】
次に、図１２のフローチャートを参照して、動きベクトル検出処理の詳細について説明する。ベクトル検出部５２には、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１が入力される。【０１１４】
初期ベクトル選択部１０１は、ステップＳ１０１において、フレームｔ上の処理の対象となるブロックを、着目ブロックとして選択し、ステップＳ１０２に進む。なお、フレーム上においては、左上のブロックからラスタスキャン順に処理が実行される。【０１１５】
ステップＳ１０２において、初期ベクトル選択部１０１は、初期ベクトル選択処理を実行する。初期ベクトル選択部１０１は、ステップＳ１０１において、所定のブロック毎に、過去の動きベクトルの検出結果から、信頼度が高い動きベクトルを選択し、選択した動きベクトルを、勾配法に用いられる初期値となる初期ベクトルＶ０として、反復勾配法演算部１０３に出力し、ステップＳ１０３に進む。【０１１６】
すなわち、初期ベクトル選択部１０１は、過去の勾配法演算評価処理（後述するステップＳ１０３）において求められ、検出ベクトルメモリ５３に記憶された周辺ブロックの動きベクトルや、過去のシフト初期ベクトル割付処理（後述するステップＳ１０４）においてシフト初期ベクトルメモリ１０７に記憶されたシフト初期ベクトルを、初期ベクトルの候補ベクトルとして選択する。そして、初期ベクトル選択部１０１は、フレームｔとフレームｔ＋１を用いて、候補ベクトルの評価値ＤＦＤを求め、候補ベクトルの中から、求められた評価値ＤＦＤに基づいた信頼度が高いものを選択し、選択された候補ベクトルを、初期ベクトルＶ０として出力する。なお、ステップＳ１０２における、初期ベクトル選択処理の詳細は、後述する。【０１１７】
ステップＳ１０３において、反復勾配法演算部１０３およびベクトル評価部１０４は、反復勾配法演算評価処理（なお、反復勾配法演算処理とも称する）を実行し、ステップＳ１０４に進む。具体的には、ステップＳ１０３において、反復勾配法演算部１０３は、初期ベクトル選択部１０１から入力された初期ベクトルＶ０と、プリフィルタ１０２−１および１０２−２を介して入力されるフレームｔおよびフレームｔ＋１を用いて、ベクトル評価部１０４による動きベクトルの評価結果に基づいて、勾配法の演算を繰り返し行い、動きベクトルＶｎを算出する。また、ベクトル評価部１０４は、反復勾配法演算部１０３からの動きベクトルＶｎ−１と、動きベクトルＶｎの評価値ＤＦＤを求め、求められた評価値ＤＦＤに基づく、最も信頼性の高いものを選択し、動きベクトルＶとして、検出ベクトルメモリ５３に記憶する。このとき、ベクトル評価部１０４は、動きベクトルＶとともに、その動きベクトルＶに対して求めた評価値ＤＦＤを、シフト初期ベクトル割付部１０５に供給する。なお、ステップＳ１０３における、反復勾配法演算処理の詳細は、後述する。【０１１８】
ステップＳ１０４において、シフト初期ベクトル割付部１０５は、シフト初期ベクトル割付処理を実行し、ステップＳ１０５に進む。シフト初期ベクトル割付部１０５は、ベクトル評価部１０４より動きベクトルＶおよびその評価値ＤＦＤが供給されると、ステップＳ１０４において、次のフレーム上の着目ブロックを通過する動きベクトルを、その着目ブロックにシフトさせた、シフト初期ベクトルとして設定する。すなわち、換言すると、動きベクトルＶの終点のブロックと同じ位置の次のフレーム上の着目ブロックを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトルが、シフト初期ベクトルとして設定される。そして、シフト初期ベクトル割付部１０５は、設定したシフト初期ベクトルを、着目ブロックに対応させて、シフト初期ベクトルメモリ１０７に割り付ける。【０１１９】
なお、具体的には、シフト初期ベクトル割付部１０５は、シフト初期ベクトルとして割り付けられた動きベクトルＶの評価値ＤＦＤを、着目ブロックに対応させて、評価値メモリ１０６に記憶させておき、同じ着目ブロックを通過する（すなわち、着目ブロックと同じ位置の過去のフレームのブロックを終点とする）他の動きベクトルＶの評価値ＤＦＤと比較し、評価値ＤＦＤに基づく、信頼度が高いとされた動きベクトルＶを、そのブロックにシフトさせてシフト初期ベクトルと設定し、シフトさせたブロックに対応させて、シフト初期ベクトルメモリ１０７に割り付ける。なお、シフト初期ベクトル割付部１０５の構成の詳細は、後述する。【０１２０】
ステップＳ１０５において、初期ベクトル選択部１０１は、フレームｔにおいて、すべてのブロックの処理が終了したか否かを判断し、すべてのブロックの処理が終了していないと判断した場合、ステップＳ１０１に戻り、それ以降の処理を繰り返す。また、ステップＳ１０５において、初期ベクトル選択部１０１は、フレームｔにおいて、すべてのブロックの処理が終了したと判断した場合、すなわち、フレームｔ上のすべてのブロックにおいて、動きベクトルＶが検出されたと判断し、動きベクトル検出処理を終了する。【０１２１】
以上のように、過去に検出された動きベクトルから初期ベクトルが選択され、選択された初期ベクトルに基づいて、反復勾配法の演算が用いられて、繰り返し動きベクトルが算出され、算出された動きベクトルの中から、評価値ＤＦＤに基づく、信頼度が高い（すなわち、最も確からしい）動きベクトルが検出される。この結果、検出ベクトルメモリ５３に、フレームｔ上のすべてのブロックに対応する動きベクトルＶが記憶される。【０１２２】
次に、シフト初期ベクトル割付部１０５の構成の詳細について説明する。【０１２３】
図１３は、シフト初期ベクトル割付部１０５の構成を示すブロック図である。図１３に構成を示すシフト初期ベクトル割付部１０５は、前（過去）フレームにおいて、ベクトル評価部１０４より検出された動きベクトルＶに基づいて、初期ベクトルの候補ベクトルとなるシフト初期ベクトルを設定し、シフト初期ベクトルメモリ１０７に割り付ける処理を行う。シフト初期ベクトル割付部１０５には、ベクトル評価部１０４より検出された動きベクトルＶ、および、その動きベクトルＶの評価値ＤＦＤが入力される。【０１２４】
割付対象位置演算部２０１は、ベクトル評価部１０４より検出された動きベクトルＶが、次の時刻のフレーム上において通過するブロックの位置（すなわち、現在のフレーム上において検出された動きベクトルＶの終点のブロックと同じ位置にある次のフレーム上のブロックの位置）を演算し、演算されたブロックの位置を、評価値メモリ１０６およびシフト初期ベクトル置換部２０３に供給する。【０１２５】
評価値比較部２０２は、動きベクトルＶ、および、その動きベクトルＶの評価値ＤＦＤが入力されると、割付対象位置演算部２０１からのブロックの位置の評価値ＤＦＤを、評価値メモリ１０６から読み出す。そして、評価値比較部２０２は、評価値メモリ１０６から読み出された評価値ＤＦＤと、ベクトル評価部１０４により検出された動きベクトルＶの評価値ＤＦＤとを比較判断し、検出された動きベクトルＶの評価値ＤＦＤの方が小さい（すなわち、信頼度が高い）と判断した場合、シフト初期ベクトル置換部２０３を制御し、シフト初期ベクトルメモリ１０７の、シフト初期ベクトル割付部１０５により供給されたブロックの位置のシフト初期ベクトルを、評価値ＤＦＤに基づく、信頼度が高いと判断した動きベクトルＶで書き換えさせる。また、それと同時に、評価値比較部２０２は、評価値置換部２０４を制御し、評価値メモリ１０６において、割付対象位置演算部２０１により選択されたブロックの位置の評価値ＤＦＤを、動きベクトルＶの評価値ＤＦＤで書き換えさせる。【０１２６】
シフト初期ベクトル置換部２０３は、シフト初期ベクトルメモリ１０７の、割付対象位置演算部２０１により供給されたブロックの位置のシフト初期ベクトルを、評価値比較部２０２から供給される動きベクトルＶ（すなわち、動きベクトルＶと同じ大きさで同じ向きの動きベクトル）で書き換える。評価値置換部２０４は、評価値比較部２０２の制御のもと、評価値メモリ１０６において、割付対象位置演算部２０１により選択されたブロックの位置の評価値ＤＦＤを、動きベクトルＶの評価値ＤＦＤで書き換える。【０１２７】
評価値メモリ１０６は、次のフレーム上における、各ブロックに割り当てられるシフト初期ベクトル候補の評価値ＤＦＤをブロック毎に記憶する。シフト初期ベクトルメモリ１０７は、次のフレームにおける各ブロックにおいて最も評価値ＤＦＤが小さい（すなわち、最も信頼度がある）動きベクトルを、シフト初期ベクトルとして、そのブロックに対応させて記憶する。【０１２８】
図１４は、シフト初期ベクトル割付部１０５により割り付けられるシフト初期ベクトルを１次元的に説明する図である。図１４の例においては、上から順に、時刻Ｔ＝ｔ−１のフレームｔ−１、時刻Ｔ＝ｔのフレームｔ、および、時刻Ｔ＝ｔ＋１のフレームｔ＋１が示されており、各フレーム上の仕切りは、各フレームにおけるブロックの境界を示している。【０１２９】
図１４の例の場合、フレームｔ−１上のブロックＢにおいて検出される動きベクトルを、動きベクトルＶ（図中、実線矢印）とし、ブロックＢを始点とする動きベクトルＶによるフレームｔ上の動き補償先（以下、オフセット先とも称する）を、ブロックＢｔとする。また、フレームｔ−１上の動きベクトルＶをフレームｔ上のブロックＢｔにシフトした動きベクトルを、シフト初期ベクトルＳＶ（図中、点線矢印）とする。なお、この場合、オフセット先とは、フレームｔ−１上において検出された動きベクトルＶの終点のブロックと同じ位置にあるフレームｔ上のブロックＢｔのことを表しており、シフトとは、フレームｔ−１上において検出された動きベクトルＶと同じ大きさで同じ向きの動きベクトルの始点を、フレームｔ−１上の動きベクトルＶの終点のブロックと同じ位置にあるフレームｔ上のブロックＢｔとすることをいう。すなわち、シフト初期ベクトルＳＶは、フレームｔ−１上において検出された動きベクトルＶの終点のブロックと同じ位置にあるフレームｔ上のブロックＢｔを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトルのことである。【０１３０】
一般的に、連続するフレーム間では、動物体の動き量にある程度の連続性があり、その動き量の変化が小さいとされるので、図１４の例においては、ブロックＢ上の物体が等速かそれに近い動きをする場合、ブロックＢｔにおける動きベクトルも、動きベクトルＶかそれに近い動きのベクトルになることが多い。【０１３１】
したがって、このシフト初期ベクトルＳＶを、フレームｔ上の着目ブロックＢｔの動きベクトルを検出する場合に、勾配法演算に与える初期ベクトルの候補として用いることにより、周辺ブロックの動きベクトルだけを初期ベクトルの候補として用いる場合よりも、勾配法演算による動きベクトル検出に、より適切な初期ベクトルを得ることができる。【０１３２】
以上のことを、図１５および図１６を参照して、具体的に説明する。なお、図１５および図１６においては、各フレーム上には、９つのブロックが示されている。【０１３３】
図１５は、大きな動きの物体が通過しているブロックと、その周辺ブロックの動きベクトルの例を表している。図１５の例の場合、１ブロックからなる、ある物体Ｏ１の画像オブジェクトは、大きな動きの動きベクトルＶ１で、フレームｔ−１上の最右端（左から９番目）のブロックから、フレームｔ上の左から５番目のブロックを経由して、フレームｔ＋１上の最左端のブロックへ移動している。一方、４ブロックからなる物体Ｏ２の画像オブジェクトは、動きベクトルＶ１よりも小さな動きの動きベクトルＶ２で、フレームｔ−１上の左から３乃至６番目の４ブロックから、フレームｔ上の左から４乃至７番目の４ブロックを経由して、フレームｔ＋１上の左から５乃至８番目の４ブロックへ移動している。すなわち、フレームｔ上の左から５番目のブロックにおいて、物体Ｏ１の画像オブジェクトと物体Ｏ２の画像オブジェクトは、物体Ｏ１の画像オブジェクトを手前にして交差している。【０１３４】
このとき、フレームｔ上において、物体Ｏ１の画像オブジェクトが動きベクトルＶ１で通過する、左から５番目のブロックの動きベクトルを検出するために、周辺ブロックの動きから初期ベクトルを抽出しようとしても、周辺ブロック（左から４または６番目のブロック）に、物体Ｏ２の画像オブジェクトが、物体Ｏ１の画像オブジェクトとは異なる動きベクトルＶ２で通過しているため、適切な動きベクトルは、存在しない。一方、シフト初期ベクトルＳＶ１（図中、点線矢印）は、このような場合であっても、過去のフレームＴ−１上で検出された動きベクトルＶ１を、そのフレームｔ上の左から５番目のブロックにシフトした動きベクトル（すなわち、フレームｔ−１上において検出された動きベクトルＶ１の終点のブロックと同じ位置にあるフレームｔ上のブロックを始点とした、動きベクトルＶ１と同じ大きさで同じ向きの動きベクトル）であるので、確実に取得することができる。【０１３５】
図１６は、動物体の境界のブロックと、その周辺ブロックの動きベクトルの例を表している。図１６の例の場合、１ブロックからなる、ある物体Ｏ３の画像オブジェクトは、動きベクトルＶ３で、フレームｔ−１上の左から６番目のブロックから、フレームｔ上の左から５番目のブロックを経由して、フレームｔ＋１上の左から４番目のブロックへ移動している。一方、９ブロック以上からなる物体Ｏ４の画像オブジェクトは、動きベクトルＶ１とは異なる動きベクトルＶ４で、フレームｔ−１上の全９ブロックから、フレームｔ上の左から２乃至９番目の８ブロックを経由して、フレームｔ＋１上の左から３乃至９番目の７ブロックへ移動している。すなわち、物体Ｏ３の画像オブジェクトは、フレームｔ−１の左から６番目のブロック、フレームｔ上の左から５番目のブロック、およびフレームｔ＋１左から４番目のブロックにおいて、物体Ｏ４の画像オブジェクトの手前を通過している。【０１３６】
このとき、フレームｔ上において、物体Ｏ３の画像オブジェクトが動きベクトルＶ３で通過する、左から５番目のブロックの動きベクトルを検出するために、周辺ブロックの動きから初期ベクトルを抽出しようとしても、周辺ブロック（左から４または６番目のブロック）に、物体Ｏ４の画像オブジェクトが、物体Ｏ３の画像オブジェクトとは異なる動きベクトルＶ４で通過しているため、適切な動きベクトルは、存在しない。しかしながら、この場合においても、図１５の場合と同様に、シフト初期ベクトルＳＶ３（図中、点線矢印）は、過去のフレームＴ−１上で検出された動きベクトルＶ３を、そのフレームｔ上の右から５番目のブロックにシフトしたベクトル（すなわち、フレームｔ−１上において検出された動きベクトルＶ３の終点のブロックと同じ位置にあるフレームｔ上のブロックを始点とした、動きベクトルＶ３と同じ大きさで同じ向きの動きベクトル）であるので、確実に取得することができる。【０１３７】
以上のように、図１５に示されるような大きな動きを持つ物体や、図１６に示されるように動いている物体の境界においては、動きベクトルを検出しようとする着目ブロックの初期ベクトルの候補となる周辺ブロックに、着目ブロックの初期ベクトルとして最適な動きベクトルが存在しない場合が多く存在する。これに対して、シフト初期ベクトルは、過去のフレームｔ−１上において検出された動きベクトルの終点のブロックと同じ位置にあるフレームｔ上のブロックを始点とした、動きベクトルと同じ大きさで同じ向きの動きベクトルであるので、ブロック間の空間距離に依存しないため、周辺ブロックに、着目ブロックの初期ベクトルとして適切な動きベクトルが存在しない場合にも、確実に取得することができ、初期ベクトルの最適な候補として用いることができる。【０１３８】
ここで、一旦、図１４に戻り、シフト初期ベクトルの決定方法について説明する。図１４の例において、動きベクトル検出処理を行うフレームｔ上の着目ブロックＢｔを基準として、フレームｔ−１から、着目ブロックＢｔを通過する動きベクトル（すなわち、フレームｔ上のブロックＢｔと同じ位置にあるフレームｔ−１のブロックを終点とする動きベクトル）を探索しようとすると、フレームｔ−１上の全ブロックの動きベクトルを検索しなければならず、処理が膨大になってしまう。したがって、この場合、動きベクトル検出時に、膨大な処理分の演算量をこなさなければならず、その実現（ハードウェア化）が困難であった。【０１３９】
そこで、シフト初期ベクトル割付部１０５は、フレームｔ−１における動きベクトル検出の際に、着目ブロックＢｔにおいて検出された動きベクトルＶが、次の時刻のフレームｔ上で通過するブロックの位置（すなわち、動きベクトルＶの終点のブロックと同じ位置のフレームｔ上のブロック）を求め、その動きベクトルＶを、ブロックＢｔに対するシフト初期ベクトルＳＶとして、予め割り付けておく。これにより、フレームｔ上での動きベクトル検出の際に必要となるシフト初期ベクトルを探索する演算量を削減することができ、ハードウェア化が実現できるようになり、現実的に、シフト初期ベクトルを、初期ベクトルの候補として用いることが可能になる。【０１４０】
図１７を参照して、シフト初期ベクトル割付部１０５によるシフト初期ベクトルの決定方法を具体的に説明する。図１７の例においては、矢印Ｔは、図中、左手前の時刻ｔ−１のフレームｔ−１から、右奥の時刻ｔのフレームｔへの時間の経過を示している。また、各フレーム上の丸は、画素を表している。【０１４１】
フレームｔ−１上において、ブロックＢ０は、４×４画素により構成される。ブロックＢ０において検出された動きベクトルＶｂとすると、ブロックＢ０をフレームｔ上にオフセット（動き補償）したオフセット先（ブロックＢ０の動きベクトルＶｂの終点のブロックと同じ位置のフレームｔ上のブロック）Ａ０は、一般的には、フレームｔ上の４×４画素により構成される４つのブロックＢｔ１乃至Ｂｔ４と重なりを持つ。したがって、図１７の例の場合においては、このオフセット先Ａ０と重なりを持つ４つのブロックＢｔ１乃至Ｂｔ４のすべてが、動きベクトルＶｂを、シフト初期ベクトルとして割り付ける対象ブロックとされる。【０１４２】
以上のようにして前のフレームにおいて検出された動きベクトルを、シフト初期ベクトルとして割り付ける。この場合、割り付けられる対象となるブロックの位置は、動きベクトルの大きさと向きによる。このため、フレームｔ−１上で検出される動きベクトルの分布によっては、図１８に示されるように、フレームｔ上において、複数のシフト初期ベクトルが割り付ける対象となり競合するブロックや、逆に、シフト初期ベクトルの割り付けが起こらないブロックが発生してしまう。【０１４３】
図１８は、シフト初期ベクトルの割り付けの例を示している。図１８の例において、各フレームの仕切りは、ブロックの境界を示しており、フレームｔ−１上には、図中左から、ブロックＢ１乃至Ｂ５により構成され、フレームｔ上には、図中左から、ブロックＢｔ１乃至Ｂｔ５が示されている。【０１４４】
ブロックＢ１においては、動きベクトルＶ１が検出され、ブロックＢ１のオフセット先Ａ１は、フレームｔ上のブロックＢｔ１およびＢｔ２と重なりを持つ。ブロックＢ２においては、動きベクトルＶ２が検出され、ブロックＢ２のオフセット先Ａ２は、フレームｔ上のブロックＢｔ１およびＢｔ２と重なりを持つ。ブロックＢ３おいては、動きベクトルＶ３が検出され、ブロックＢ３のオフセット先Ａ３は、フレームｔ上のブロックＢｔ４およびＢｔ５と重なりを持つ。ブロックＢ４においては、動きベクトルＶ４が検出され、ブロックＢ４のオフセット先Ａ４は、フレームｔ上のブロックＢｔ４およびＢｔ５と重なりを持つ。ブロックＢ５においては、動きベクトルＶ５が検出され、ブロックＢ５のオフセット先Ａ５は、フレームｔ上のブロックＢｔ５および図示せぬ隣接ブロックと重なりを持つ。【０１４５】
すなわち、図１８の例においては、フレームｔ上のブロックＢｔ１およびＢｔ２には、動きベクトルＶ１またはＶ２のどちらか一方がシフト初期ベクトルとして割り付けられる。また、フレームｔ上のブロックＢｔ４には、動きベクトルＶ３およびＶ４のどちらか一方がシフト初期ベクトルとして割り付けられ、フレームｔ上のブロックＢｔ５には、動きベクトルＶ３、Ｖ４、およびＶ５のうちのいずれかがシフト初期ベクトルとして割り付けられる。しかしながら、フレームｔ上のブロックＢｔ３には、シフト初期ベクトルの候補となる動きベクトルが存在せず、シフト初期ベクトルは割り付けられない。【０１４６】
したがって、シフト初期ベクトル割付部１０５は、ブロックＢｔ３のように、シフト初期ベクトルの割り付けが起こらないブロックに対して、０ベクトルをシフト初期ベクトルとして割り付ける。一方、シフト初期ベクトル割付部１０５は、ブロックＢｔ１，Ｂｔ２，Ｂｔ４，およびＢｔ５のように、複数の動きクトルが競合するブロックに対して、上述した評価値ＤＦＤに基づく、信頼度が高い動きベクトルを選択し、選択した動きベクトルを、シフト初期ベクトルとしてそれぞれのブロックに割り付ける。【０１４７】
なお、図１８の例においては、説明の便宜上、オフセット先Ａは、フレームｔ上から少しずらして示されている。【０１４８】
図１９は、競合する動きベクトルの例を示す図である。図１９の例においては、フレームｔ−１上のブロックＢ１およびＢ２から、それぞれにおいて検出された動きベクトルＶ１およびＶ２が、フレームｔ上のブロックＢｔを通過している。すなわち、ブロックＢｔは、動きベクトルＶ１のフレームｔ−１上の終点と同じ位置のフレームｔ上のブロックであり、動きベクトルＶ２のフレームｔ−１上の終点と同じ位置のフレームｔ上のブロックである。このように、複数の動きベクトルが同じブロックに対して競合する場合には、動きベクトルＶ１に対する評価値ＤＦＤ１と、動きベクトルＶ２に対する評価値ＤＦＤ２の値が比較され、評価値ＤＦＤが小さい方（すなわち、信頼度が高い方）がブロックＢｔに対応するシフト初期ベクトルＳＶ２として選択される。これにより、評価値ＤＦＤに基づく、信頼度の高いシフト初期ベクトルを得ることができる。【０１４９】
次に、図２０のフローチャートを参照して、シフト初期ベクトル割り付け処理の詳細について説明する。前段において、ベクトル評価部１０４は、フレームｔ−１上の着目ブロックの動きベクトルＶを検出すると、検出された動きベクトルＶとともに、その動きベクトルＶに対して求めた評価値ＤＦＤを、シフト初期ベクトル割付部１０５に供給する。【０１５０】
ステップＳ２０１において、評価値比較部２０２は、ベクトル評価部１０４から、動きベクトルＶとともに、その動きベクトルＶの評価値ＤＦＤを入力する。また、このとき、割付対象位置演算部２０１も、動きベクトルＶを入力し、ステップＳ２０２に進む。割付対象位置演算部２０１は、動きベクトルＶのフレームｔにおけるオフセット（動き補償）先の割付対象ブロックの位置を求める。すなわち、割付対象位置演算部２０１は、フレームｔ−１上において検出された動きベクトルＶの終点のブロックと同じ位置にあるフレームｔ上のブロックの位置を求め、ステップＳ２０３に進む。割付対象位置演算部２０１は、ステップＳ２０３において、求められた割付対象ブロックのうち、１つの割付対象ブロックを選択し、選択した割り付け対象ブロックの位置を、評価値メモリ１０６およびシフト初期ベクトル置換部２０３に供給し、ステップＳ２０４に進む。なお、ステップＳ２０３においては、割付対象ブロックのうち、フレームｔ上において左上のブロックから順に選択される。【０１５１】
ステップＳ２０４において、評価値比較部２０２は、評価値メモリ１０６から、割付対象位置演算部２０１により選択された割付対象ブロックの評価値ＤＦＤを取得し、ステップＳ２０５に進み、ステップＳ２０１において入力された動きベクトルＶの評価値ＤＦＤが、評価値メモリ１０６の評価値ＤＦＤよりも小さいか否か（すなわち、動きベクトルＶの評価値ＤＦＤが、評価値メモリ１０６の評価値ＤＦＤよりも信頼度が高いか否か）を判断し、動きベクトルＶの評価値ＤＦＤが、評価値メモリ１０６の評価値ＤＦＤよりも小さいと判断された場合、ステップＳ２０６に進む。【０１５２】
評価値比較部２０２は、ステップＳ２０６において、シフト初期ベクトル置換部２０３を制御し、割付対象位置演算部２０１により選択されたシフト初期ベクトルメモリ１０７の割付対象ブロックのシフト初期ベクトルを、動きベクトルＶ（すなわち、動きベクトルＶと同じ大きさで同じ向きの動きベクトル）に書き換えさせ、ステップＳ２０７に進み、評価値置換部２０４を制御し、割付対象位置演算部２０１により選択された割付対象ブロックの評価値ＤＦＤを、動きベクトルＶの評価値ＤＦＤで書き換えさせ、ステップＳ２０８に進む。【０１５３】
また、評価値比較部２０２は、ステップＳ２０５において、ステップＳ２０１において入力された動きベクトルＶの評価値ＤＦＤが、評価値メモリ１０６に記憶される評価値ＤＦＤよりも小さくないと判断した場合、ステップＳ２０６およびＳ２０７の処理をスキップし、ステップＳ２０８に進む。すなわち、この場合、評価値メモリ１０６の評価値ＤＦＤが、動きベクトルＶの評価値ＤＦＤよりも信頼度が高いと判断されるので、評価値メモリ１０６およびシフト初期ベクトルメモリ１０７の値は、書き換えられることはない。【０１５４】
割付対象位置演算部２０１は、ステップＳ２０８において、動きベクトルＶの割り付け対象ブロックすべての処理が終了したか否かを判断し、割り付け対象ブロックすべての処理が終了していないと判断した場合、ステップＳ２０３に戻り、それ以降の処理を繰り返す。また、割付対象位置演算部２０１は、ステップＳ２０８において、動きベクトルＶの割り付け対象ブロックすべての処理が終了したと判断した場合、シフト初期ベクトル割付処理を終了する。【０１５５】
なお、初回の処理においては、選択された割付対象ブロックに対応するシフト初期ベクトルが、シフト初期ベクトルメモリ１０７にまだ記憶されていない。したがって、そのシフト初期ベクトルの評価値ＤＦＤが、評価値メモリ１０６の対応する割付対象ブロックに、まだ記憶されていない場合には、ステップＳ２０４において、選択された割付対象ブロックから評価値ＤＦＤは、取得されないので、ステップＳ２０５においてはＹｅｓと判断されることとし、ステップＳ２０６およびＳ２０７の処理が実行される。【０１５６】
以上のように、着目ブロックの動きベクトルの検出を処理する際に、連続するフレーム間において動物体の動き量にはある程度の連続性があり、動き量の変化が小さいことに基づいて、前の時刻（過去）のフレームから、次の時刻のフレームの着目ブロックを通過する動きベクトル（すなわち、過去のフレーム上において検出された動きベクトルＶの終点のブロックと同じ位置にある次のフレーム上のブロックを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトル）であるシフト初期ベクトルを、初期ベクトルの候補ベクトルとすることにより、従来のように、周辺ブロックにおいて過去に求められている動きベクトルのみを初期ベクトルの候補ベクトルとする場合よりも、特に、動いている物体の境界においては、勾配法演算の初期値として適切な動きベクトルを与えることができ、これにより、勾配法の演算による動きベクトル検出の精度を向上させることができる。【０１５７】
また、シフト初期ベクトルを求める際に、前の時刻のフレームにおいて検出された動きベクトルが次の時刻のフレームにおいて通過するブロック（すなわち、フレームｔ−１上において検出された動きベクトルＶの終点のブロックと同じ位置にあるフレームｔ上のブロック）を求め、次の時刻のフレーム上の着目ブロックにおけるシフト初期ベクトルとして割り付けるようにしたので、着目ブロックを通過する動きベクトルを、前の時刻のフレームの全ブロックの動きベクトルから探索する場合よりも、処理の演算量が削減されるため、膨大な演算量により実現が困難であったハードウェア化を実現することができる。【０１５８】
次に、初期ベクトル選択部１０１の構成の詳細について説明する。【０１５９】
図２１は、初期ベクトル選択部１０１の構成を示すブロック図である。図２１に構成を示す初期ベクトル選択部１０１は、前（過去）フレームにおいて検出された動きベクトルや、シフト初期ベクトルなどの候補ベクトル（以下、初期候補ベクトルとも称する）から、信頼度の高い動きベクトルを、初期ベクトルとして選択する処理を行う。初期ベクトル選択部１０１には、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１が入力される。【０１６０】
候補ベクトル位置演算部２５１は、フレームｔが入力されると、フレームｔ上の処理の対象となる着目ブロックを選択し、着目ブロックの周辺領域から、着目ブロックの初期候補ベクトルを取得する候補ブロックの位置、初期候補ベクトルとなる動きベクトルの種類および優先順位を求め、求められた優先順位の順に、候補ブロックの位置情報および初期候補ベクトルの種類情報を、検出ベクトル取得部２５２およびシフト初期ベクトル取得部２５３に供給する。また、候補ベクトル位置演算部２５１は、候補ブロックの位置情報を、オフセット位置演算部２５４にも供給する。【０１６１】
なお、信号処理装置１においては、初期候補ベクトルの数は、初期ベクトルの精度と、ハードウェア能力の兼ね合いなどに基づいて所定数に設定されており、さらに、候補ブロックの位置、初期候補ベクトルの種類、および優先順位も、例えば、図２３を参照して後述するように、予め設定されている。また、初期候補ベクトルの種類としては、過去フレームにおいて、所定のブロックを通過する動きベクトルを、その所定のブロックにシフトさせた動きベクトル（すなわち、過去フレーム上において検出された動きベクトルの終点のブロックと同じ位置にある次のフレーム上のブロックを始点とした、動きベクトルＶと同じ大きさで同じ向きの動きベクトル）であるシフト初期ベクトルＳＶ、過去フレームにおいて検出された動きベクトル（以下、過去ベクトルＰＶとも称する）、現在のフレームにおいて着目ブロックより手前のブロックにおいて検出された動きベクトル（現在ベクトルＣＶとも称する）、および０ベクトルがある。【０１６２】
したがって、候補ベクトル位置演算部２５１は、予め設定された初期候補ベクトルの種類が過去ベクトルまたは現在ベクトルであった場合、候補ブロックの位置情報および初期候補ベクトルの種類情報を、検出ベクトル取得部２５２に供給し、求めた初期候補ベクトルの種類がシフト初期ベクトルであった場合、候補ブロックの位置情報および初期候補ベクトルの種類情報を、シフト初期ベクトル取得部２５３に供給し、そのどちらでもなかった場合（例えば、初期候補ベクトルの種類が、０ベクトルである場合）、０ベクトルを設定し、０ベクトルと共に、候補ブロックの位置情報を、オフセット位置演算部２５４に供給する。【０１６３】
検出ベクトル取得部２５２は、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報および初期候補ベクトルの種類情報に応じた動きベクトルを、検出ベクトルメモリ５３より取得し、取得した動きベクトルを、初期候補ベクトルとして、オフセット位置演算部２５４に出力する。【０１６４】
シフト初期ベクトル取得部２５３は、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報および初期候補ベクトルの種類情報に応じて、候補ブロックの位置情報に対応したシフト初期ベクトルを、シフト初期ベクトルメモリ１０７から取得し、初期候補ベクトルとしてオフセット位置演算部２５４に出力する。また、シフト初期ベクトル取得部２５３は、候補ベクトル位置演算部２５１により指示されたブロックの位置に、シフト初期ベクトルが割り付けられていない場合、０ベクトルを、オフセット位置演算部２５４に出力する。なお、シフト初期ベクトルが割り付けられていない場合には、０ベクトルが、シフト初期ベクトルメモリ１０７に予め記憶されているようにしてもよい。【０１６５】
オフセット位置演算部２５４は、検出ベクトル取得部２５２またはシフト初期ベクトル取得部２５３から初期候補ベクトル（あるいは候補ベクトル位置演算部２５１からの０ベクトル）を入力すると、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報に基づいて、各初期候補ベクトルに対して、フレームｔの着目ブロックを、フレームｔ＋１にオフセット（動き補償）させたオフセット先のブロック位置を演算する。そして、オフセット位置演算部２５４は、初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を、評価値演算部２５５に出力する。【０１６６】
評価値演算部２５５は、オフセット位置演算部２５４より初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を入力すると、フレームｔとフレームｔ＋１を用いて、初期候補ベクトルの評価値ＤＦＤを求める。そして、評価値演算部２５５は、初期候補ベクトルとともに、求められた評価値ＤＦＤを、評価値比較部２５６に出力する。【０１６７】
評価値比較部２５６は、評価値演算部２５５により入力された評価値ＤＦＤと、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ＤＦＤを比較し、評価値演算部２５５により入力された初期候補ベクトルの評価値ＤＦＤが、最適候補ベクトルの評価値ＤＦＤよりも小さい、すなわち、初期候補ベクトルが最適候補ベクトルよりも信頼度が高いと判断された場合、最適候補格納用レジスタ２５７の最適候補ベクトルおよびその評価値ＤＦＤを、信頼度が高いとされた初期候補ベクトルおよびその評価値ＤＦＤで置き換える。そして、最終的に、評価値比較部２５６は、最適候補格納用レジスタ２５７を制御し、すべての候補ベクトルの中から、評価値ＤＦＤに基づく、信頼度が最も高いと判断された最適候補ベクトルを、初期ベクトルＶ０として、反復勾配法演算部１０３に出力させる。【０１６８】
最適候補格納用レジスタ２５７は、評価値比較部２５６により評価値ＤＦＤが小さい（信頼度が高い）とされた初期候補ベクトルが、最適候補ベクトルとして、その評価値ＤＦＤとともに記憶されている。そして、最適候補格納用レジスタ２５７は、評価値比較部２５６の制御のもと、最終的に記憶されている最適候補ベクトルを、初期ベクトルＶ０として、反復勾配法演算部１０３に出力する。【０１６９】
図２２は、初期ベクトルの候補ブロックとなり得る周辺領域を示している。図２２の例において、矢印Ｔは、図中、左手前の時刻ｔ−１の過去（前）フレームｔ−１から、右奥の時刻ｔの現在フレームｔへの時間の経過方向を示している。なお、図２２の例においては、初期ベクトルの候補となり得る周辺領域は、着目のブロックＢｔを中心とした７ブロック×７ブロックにより構成され、各ブロックは、画素数が４画素×４画素により構成されている。【０１７０】
動きベクトル検出処理は、上述したように、フレームの左上のブロックからラスタスキャン順に実行される。したがって、初期ベクトル選択部１０１は、現在フレームｔの着目ブロックＢｔの動きベクトル検出処理の際には、その直前のブロックまでの動きベクトル検出の結果を、初期ベクトルの候補とすることができる。【０１７１】
すなわち、着目ブロックＢｔの周辺領域は、着目ブロックＢｔよりも手前に処理されるブロックＣＶＢ、および着目ブロックＢｔよりも後に処理されるブロックＰＶＢにより構成されている。したがって、着目ブロックＢｔの初期ベクトルを求める場合、初期候補ベクトルは、ブロックＣＶＢの現在フレームｔ上で検出された動きベクトル（現在ベクトルＣＶ）、および、ブロックＰＶＢの過去フレームｔ−１上で検出された動きベクトル（過去ベクトルＰＶ）の中から選択することができる。なお、このとき、同じ周辺領域のブロックに割り付けられるシフト初期ベクトルも、初期候補ベクトルの候補となりうる。【０１７２】
図２３は、候補ベクトル位置演算部２５１において設定される初期ベクトルの候補ブロックの例を示している。図２３の例においては、着目ブロックＢｔの周辺領域のうち、「英字／数字」のシンボルがそれぞれ示されている８個の所定のブロックが、初期候補ベクトルが取得される候補ブロックとして設定されている。これらの８個の所定のブロックに示されている斜線の前後のシンボルは、「初期候補ベクトルの種類」と「優先順位」をそれぞれ表している。なお、初期候補ベクトルの種類のうち、Ｐは、過去フレームｔ−１で検出された過去ベクトルＰＶを表しており、Ｃは、現在フレームｔで検出された現在ベクトルを表しており、Ｓは、シフト初期ベクトルＳＶを表している。【０１７３】
着目ブロックＢｔの「Ｓ／１」は、着目ブロックＢｔに割り付けられたシフト初期ベクトルＳＶが初期候補ベクトルとして、優先順位「１」番目に用いられることを表している。着目ブロックＢｔの左隣のブロックの「Ｃ／２」は、現在フレームｔにおいて検出されたそのブロックの現在ベクトルＣＶが初期候補ベクトルとして、優先順位「２」番目に用いられることを表している。着目ブロックＢｔの右上のブロックの「Ｃ／３」は、現在フレームｔにおいて検出されたそのブロックの現在ベクトルＣＶが、優先順位「３」番目に初期候補ベクトルとして用いられることを表している。着目ブロックＢｔの右下のブロックの「Ｐ／４」は、過去フレームｔ−１において検出されたそのブロックの過去ベクトルＰＶが、優先順位「４」番目に初期候補ベクトルとして用いられることを表している。【０１７４】
周辺領域７×７の左上隅の右下のブロックの「Ｃ／６」は、現在フレームｔにおいて検出されたそのブロックの現在ベクトルＣＶが、優先順位「６」番目に初期候補ベクトルとして用いられることを表している。周辺領域７×７の右上隅の左下のブロックの「Ｃ／５」は、現在フレームｔにおいて検出されたそのブロックの現在ベクトルＣＶが、優先順位「５」番目に初期候補ベクトルとして用いられることを表している。周辺領域７×７の左下隅の右上のブロックの「Ｐ／７」は、過去フレームｔ−１において検出されたそのブロックの過去ベクトルＰＶが、優先順位「７」番目に初期候補ベクトルとして用いられることを表している。周辺領域７×７の右下隅の左上のブロックの「Ｐ／８」は、過去フレームｔ−１において検出されたそのブロックの過去ベクトルＰＶが、優先順位「８」番目に初期候補ベクトルとして用いられることを表している。【０１７５】
以上のように、図２３の例において、初期候補ベクトルは、着目ブロックＢｔを含む、着目ブロックＢｔに隣接するブロックのうち、着目ブロックＢｔ、着目ブロックＢｔの左隣、右上、および右下のブロックとされ、着目ブロックＢｔに隣接していないブロックのうち、周辺領域７×７の四隅から、それぞれ内側に１つ入った位置のブロックから選択される。【０１７６】
すなわち、図２３の例の場合、着目ブロックＢｔに隣接するブロック（空間的にも時間的にも近いブロック）のほうが少し離れたブロックよりも優先順位が高く、現在フレームｔで検出された現在ベクトルのほうが、過去フレームｔ−１で検出された過去ベクトルよりも優先順位が高く設定されている。なお、これらの初期ベクトルの候補の位置、種類、および優先度は、できるだけ少ない候補数で、確かな初期候補ベクトルを得ることができるように、着目ブロックＢｔの近傍だけでなく、少し離れた位置のブロックも含め、また、偏りのないようになど、空間的な相関や時間的な相関などに基づいて設定されたものである。したがって、このように、予め設定された所定のブロックの動きベクトルを初期候補ベクトルとして用いることにより、初期候補ベクトル数が多くなってしまい、処理の演算量が膨大になってしまうことが抑制される。【０１７７】
なお、候補ブロックの種類と候補ブロックの位置は、図２３の例に限定されるものではなく、他の種類のベクトルや、ブロックの位置を用いてもよい。また、周辺のブロックに、最適なベクトルが存在しない場合を考慮して、そのような場合に劣化を抑制する、０ベクトルを用いてもよい。また、候補ブロックの数も８個より多くても少なくてもよい。【０１７８】
次に、図２４のフローチャートを参照して、初期ベクトル選択処理の詳細について説明する。【０１７９】
候補ベクトル位置演算部２５１は、ステップＳ２５１において、選択された着目ブロックの周辺領域から、予め設定されている着目ブロックの初期候補ベクトルを取得する候補ブロックの位置、初期候補ベクトルの種類および優先順位を求め、ステップＳ２５２において、求められた優先順位の順に、候補ブロックの初期候補ベクトルの種類が、過去ベクトルまたは現在ベクトルであるか否かを判断する。ステップＳ２５２において、候補ベクトル位置演算部２５１は、候補ブロックの初期候補ベクトルの種類が、過去ベクトルまたは現在ベクトルであると判断した場合、ステップＳ２５３に進み、候補ブロックの位置情報および初期候補ベクトルの種類情報を、検出ベクトル取得部２５２に供給し、検出ベクトル取得部２５２に、候補ブロックの位置情報および初期候補ベクトルの種類情報に応じた動きベクトル（過去ベクトルＰＶまたは現在ベクトルＣＶ）を、検出ベクトルメモリ５３から取得させ、取得させた動きベクトルを、オフセット位置演算部２５４に出力させ、ステップＳ２５７に進む。【０１８０】
ステップＳ２５２において、候補ベクトル位置演算部２５１は、候補ブロックの初期候補ベクトルの種類が、過去ベクトルまたは現在ベクトルでないと判断した場合、ステップＳ２５４に進み、候補ベクトル位置演算部２５１は、候補ブロックの初期候補ベクトルの種類が、シフト初期ベクトルであるか否かを判断する。ステップＳ２５４において、候補ベクトル位置演算部２５１は、候補ブロックの初期候補ベクトルの種類が、シフト初期ベクトルであると判断した場合、ステップＳ２５５に進み、候補ブロックの位置情報および初期候補ベクトルの種類情報を、シフト初期ベクトル取得部２５３に供給し、シフト初期ベクトル取得部２５３に、候補ブロックの位置情報に対応したシフト初期ベクトルを、シフト初期ベクトルメモリ１０７から取得させ、取得させたシフト初期ベクトルを、オフセット位置演算部２５４に出力させ、ステップＳ２５７に進む。【０１８１】
ステップＳ２５４において、候補ベクトル位置演算部２５１は、候補ブロックの初期候補ベクトルの種類が、シフト初期ベクトルではないと判断した場合（すなわち、候補ブロックの初期候補ベクトルの種類が、０ベクトルであると判断した場合）、ステップＳ２５６に進み、初期候補ベクトルに０ベクトルを設定し、０ベクトルと共に、候補ブロックの位置情報を、オフセット位置演算部２５４に供給し、ステップＳ２５７に進む。なお、ステップＳ２５３およびＳ２５５においても、候補ベクトル位置演算部２５１は、候補ブロックの位置情報を、オフセット位置演算部２５４に供給している。【０１８２】
オフセット位置演算部２５４は、ステップＳ２５７において、検出ベクトル取得部２５２またはシフト初期ベクトル取得部２５３から初期候補ベクトルを入力すると、候補ベクトル位置演算部２５１により供給された候補ブロックの位置情報に基づいて、各初期候補ベクトルに対して、フレームｔの着目ブロックを、フレームｔ＋１にオフセットさせたオフセット先のブロック位置を演算する。そして、オフセット位置演算部２５４は、初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を、評価値演算部２５５に出力し、ステップＳ２５８に進む。【０１８３】
評価値演算部２５５は、オフセット位置演算部２５４より初期候補ベクトルとともに、候補ブロックの位置情報、およびオフセット先ブロック位置の情報を入力すると、ステップＳ２５８において、フレームｔとフレームｔ＋１を用いて、初期候補ベクトルの評価値ＤＦＤを求め、初期候補ベクトルとともに、求められた評価値ＤＦＤを、評価値比較部２５６に出力し、Ｓ２５９に進む。【０１８４】
評価値比較部２５６は、ステップＳ２５９において、評価値演算部２５５により求められた評価値ＤＦＤが、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ＤＦＤより小さいか否かを判断し、評価値演算部２５５により求められた評価値ＤＦＤが、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ＤＦＤより小さい、すなわち、初期候補ベクトルが最適候補ベクトルよりも信頼度が高いと判断された場合、ステップＳ２６０において、最適候補格納用レジスタ２５７の最適候補ベクトルおよびその評価値ＤＦＤを、信頼度が高いとされた初期候補ベクトルおよびその評価値ＤＦＤで書き換え、ステップＳ２６１に進む。【０１８５】
また、ステップＳ２５９において、評価値比較部２５６は、評価値演算部２５５により求められた評価値ＤＦＤが、最適候補格納用レジスタ２５７に格納されている最適候補ベクトルの評価値ＤＦＤより小さくないと判断した場合、ステップＳ２６０の処理をスキップし、ステップＳ２６１に進む。【０１８６】
ステップＳ２６１において、候補ベクトル位置演算部２５１は、すべての初期候補ベクトル（図２３の例の場合、８ベクトル）の処理が終了したか否かを判断し、すべての初期候補ベクトルの処理が終了していないと判断した場合、ステップＳ２５２に戻り、それ以降の処理を繰り返す。【０１８７】
ステップＳ２６１において、すべての初期候補ベクトルの処理が終了したと判断された場合、処理は、ステップＳ２６２に進み、評価値比較部２５６は、最適候補格納用レジスタ２５７を制御し、すべての初期候補ベクトルの中から、評価値ＤＦＤに基づく、信頼度が最も高いとされた最適候補ベクトルを、初期ベクトルＶ０として反復勾配法演算部１０３に出力させ、初期ベクトル選択処理を終了する。【０１８８】
以上のように、着目ブロックにおいて、複数の初期候補ベクトルの評価値ＤＦＤを求め、評価値ＤＦＤが最も小さい、すなわち、信頼度が最も高いとされる初期候補ベクトルを、初期ベクトルとして選択するようにしたので、後段の動きベクトル検出に最適な初期ベクトルを与えることができ、その結果、後段の動きベクトル検出の精度を向上させることができる。また、予め定められた所定のブロックの動きベクトルを、初期候補ベクトルとして用いるようにしたので、初期候補ベクトル数が多くなってしまい、処理の演算量が膨大になってしまうことが抑制される。【０１８９】
さらに、連続するフレーム間において動物体の動き量にはある程度の連続性があり、動き量の変化が小さいことに基づいて、前フレームから着目ブロックを通過する動きベクトルであるシフト初期ベクトルを、初期ベクトルの候補とするようにしたので、従来のように、周辺ブロックにおいて過去に求められている動きベクトルのみを初期ベクトルの候補とする場合よりも、精度の高い動き検出を行うことができる。これは、特に、動いている物体の境界において、効果的である。【０１９０】
次に、反復勾配法演算部１０３の構成の詳細について説明する。【０１９１】
図２５は、反復勾配法演算部１０３の構成を示すブロック図である。図２５に構成を示す反復勾配法演算部１０３は、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、最適な動きベクトルを検出する処理を行う。この動きベクトルを検出する処理は、複数の画素からなる所定のブロック毎に実行される処理であり、反復勾配法演算部１０３は、各ブロックにおいて、ブロック単位毎、または、画素単位毎に、勾配法を用いた演算を繰り返し実行することにより、評価値ＤＦＤに基づく、信頼度が高い、最適な動きベクトルを出力する。【０１９２】
反復勾配法演算部１０３には、プリフィルタ１０２−１および１０２−２を介して、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１が入力され、また、初期ベクトル選択部１０２からの初期ベクトルＶ０が入力される。【０１９３】
モード選択部４０１は、有効画素判定部４０３からの制御のもと、所定のブロック毎に、勾配法演算の処理モードを選択し、初期ベクトル選択部１０２からの初期ベクトルＶ０をセレクタ４０２およびベクトル評価部１０４に出力する。勾配法演算の処理モードは、動きベクトルの検出対象がブロックであるブロック単位処理モードと、動きベクトルの検出対象が画素である画素単位処理モードにより構成され、初期値としてブロック単位処理モードが選択される。セレクタ４０２は、ベクトル評価部１０４からの制御のもと、モード選択部４０１からの初期ベクトルＶ０、または勾配法演算部４０４から出力された動きベクトルＶｎのどちらかを、勾配法演算の初期値として用いる動きベクトル（以下、オフセットベクトルと称する）として、有効画素判定部４０３および勾配法演算部４０４に出力する。【０１９４】
有効画素判定部４０３は、セレクタ４０２により選択されたオフセットベクトルを入力すると、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、オフセットベクトルをオフセットして計算した位置を開始点として、各単位処理モードの演算ブロックに、勾配法の演算に有効な画素の数がしきい値より多いか否かを判断し、その結果に応じて処理方法を切り換える。すなわち、有効画素判定部４０３は、勾配法の演算に有効な画素の数がしきい値以下であると判断した場合、モード選択部４０１を制御し、その所定のブロックに対しての処理モードを、画素単位処理モードに変更させたり、演算を中止させる。有効画素判定部４０３は、各単位処理モードの演算ブロックに、勾配法の演算に有効な画素の数がしきい値より多いと判断した場合、勾配法演算部４０４を制御し、各処理単位での勾配法演算処理を実行させる。【０１９５】
勾配法演算部４０４は、セレクタ４０２から入力されたオフセットベクトルを入力すると、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、セレクタ４０２からのオフセットベクトルをオフセットして計算した位置を開始点として、各単位処理モードの勾配法演算を実行し、算出された動きベクトルＶｎを、遅延部４０５およびベクトル評価部１０４に出力する。【０１９６】
遅延部４０５は、勾配法演算部４０４から出力された動きベクトルＶｎを、有効画素判定部４０３および勾配法演算部４０４の次の処理のサイクルまで保持しており、セレクタ４０２の制御に応じて、保持する動きベクトルＶｎを有効画素判定部４０３に出力する。【０１９７】
図２６は、有効画素判定部４０３の詳細な構成を示すブロック図である。図２６の例において、有効画素判定部４０３は、時間画素差分算出部４１１、画素差分値判定部４１２、有効画素カウンタ４１３、および勾配法継続判定部４１４により構成される。【０１９８】
時間画素差分算出部４１１は、セレクタ４０２により選択されたオフセットベクトルを入力すると、ブロック単位の演算ブロックにおいて、画素を選択し、オフセットベクトル、並びに、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔ、および時刻ｔ＋１の画像のフレームｔ＋１を用いて、選択された画素の時間方向の画素差分Δｔを算出し、算出された時間方向の画素差分Δｔを、画素差分値判定部４１２に出力する。【０１９９】
画素差分値判定部４１２は、時間画素差分算出部４１１により算出された時間方向の画素差分Δｔが、所定のしきい値（以下、画素差分値と称する）よりも小さいか否かを判断し、時間方向の画素差分Δｔが、所定の画素差分値よりも小さいと判断した場合には、有効画素数カウンタ４１３の有効画素の数を１つカウントする。有効画素数カウンタ４１３は、演算ブロック毎に画素差分値判定部４１２により有効であると判断された画素分の値をカウントする。また、有効画素数カウンタ４１３は、演算ブロック毎に値がリセットされる。【０２００】
勾配法継続判定部４１４は、各単位処理モードの演算ブロックに、勾配法の演算に有効な画素の数がしきい値より多いか否かを判断し、各単位処理モードの演算ブロックに、勾配法の演算に有効な画素の数がしきい値より多いと判断した場合、勾配法演算部４０４に、各単位処理モードの勾配法演算を実行させるフラグ(flg＝１)を出力する。勾配法継続判定部４１４は、各単位処理モードの演算ブロックに、勾配法の演算に有効な画素の数がしきい値より少ないと判断した場合、モード選択部４０１を制御し、他の単位処理モードを選択させたり、勾配法演算部４０４に勾配法演算を打ち切るフラグ(flg＝０)を出力する。【０２０１】
図２７は、勾配法演算部４０４の詳細な構成を示すブロック図である。図２７の例において、勾配法演算部４０４は、時間画素差分算出部４２１、画素差分値判定部４２２、水平垂直画素差分算出部４２３、勾配積算部４２４、およびベクトル算出部４２５により構成される。【０２０２】
時間画素差分算出部４２１は、有効画素判定部４０３から入力されるフラグに基づいて、勾配法演算部４０４の各部を制御する。すなわち、時間画素差分算出部４２１は、フラグが１を示す(flg＝１)場合には、勾配法演算部４０４の各部に、勾配法演算の処理を実行させる。具体的には、時間画素差分算出部４２１は、有効画素判定部４０３からフラグを入力すると、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、セレクタ４０２からのオフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素を選択し、選択された画素の時間方向の画素差分Δｔを算出し、算出された時間方向の画素差分Δｔおよびオフセットベクトルを、画素差分値判定部４２２に出力する。また、時間画素差分算出部４２１は、演算ブロック内の画素の処理が終了した場合に、オフセットベクトルを、ベクトル算出部４２５に出力し、ベクトル算出部４２５を制御し、検出対象ブロックの動きベクトルを算出させる。【０２０３】
一方、フラグが０を示す(flg＝０)場合には、時間画素差分算出部４２１は、演算ブロック内の画素の時間方向の画素差分Δｔを算出しないので、勾配法演算部４０４の各部では、勾配法演算の処理が実行されず、処理は打ち切られる。なお、このとき、時間画素差分算出部４２１は、ベクトル算出部４２５を制御し、動きベクトルＶを０ベクトルに設定させる。【０２０４】
画素差分値判定部４２２は、時間画素差分算出部４２１により算出された時間方向の画素差分Δｔが、所定のしきい値（以下、画素差分値と称する）よりも小さいか否かを判断し、時間方向の画素差分Δｔが、所定の画素差分値よりも小さいと判断した場合、その画素を、勾配法の演算対象とし、時間方向の画素差分Δｔおよびオフセットベクトルを水平垂直画素差分算出部４２３に出力する。すなわち、所定の画素差分値よりも小さいと判断された画素差分Δｔの画素は、水平垂直画素差分算出部４２３および勾配積算部４２４において、演算対象とされる。また、画素差分値判定部４２２は、時間方向の画素差分Δｔが、所定の画素差分値以上であると判断した場合、水平垂直画素差分算出部４２３および勾配積算部４２４に、その画素の処理を禁止させる。【０２０５】
水平垂直画素差分算出部４２３は、画素差分値判定部４２２から入力されたオフセットベクトルを入力すると、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内において、時間方向の画素差分Δｔが、所定の画素差分値よりも小さいと判断された画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出する。また、水平垂直画素差分算出部４２３は、時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、垂直方向の画素差分Δｙを勾配積算部４２４に出力する。勾配積算部４２４は、時間方向の画素差分Δｔが、所定の画素差分値よりも小さいと判断された画素の勾配を積算する。すなわち、勾配積算部４２４は、時間画素差分算出部４２１により算出された時間方向の画素差分Δｔ、水平垂直画素差分算出部４２３により算出された水平方向の画素差分Δｘ、および、垂直方向の画素差分Δｙを積算し、積算された勾配の値を、ベクトル算出部４２５に出力する。【０２０６】
ベクトル算出部４２５は、時間画素差分算出部４２１からオフセットベクトルが入力されると、勾配積算部４２４により積算された勾配の値、および上述した式（９）の最小自乗和を用いて、動きベクトルｖｎを算出する。また、ベクトル算出部４２５は、時間画素差分算出部４２１からのオフセットベクトルを、算出した動きベクトルｖｎに加算して、動きベクトルＶｎを求め、ベクトル評価部１０４および遅延部４０５に出力する。【０２０７】
次に、動きベクトルの検出対象ブロックと演算ブロックについて説明する。画像内のオブジェクトの動きを考えた場合、同じオブジェクトであれば、大方同じ動きをしていることが多い。したがって、動きベクトルを検出する検出処理の単位は、通常、図２８に示されるように、ブロック単位で行うことが多い。【０２０８】
図２８の例において、矢印Ｘは、水平方向を示しており、矢印Ｙは、垂直方向を示している。また、矢印Ｔは、図中、右奥の時刻ｔのフレームｔから、左手前の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。【０２０９】
図２８の例の場合、各フレームの検出対象ブロックＫとして、８画素×８画素のブロック（以下、８×８ブロックと称する）が示されている。この検出対象ブロックＫとは、８×８ブロックに関して動きベクトルの検出を行ったときに、その８×８ブロックに対して同じ動きが求まるブロックのことをいう。【０２１０】
一方、勾配法による動きベクトルの検出（すなわち、演算）は、画素毎に動きベクトルを検出できる特徴を有している。しかしながら、画素単位での動きベクトルの演算を行うと、統計的な解法である最小自乗法を用いる勾配法では、検出精度が著しく低下する欠点がある。したがって、通常、ブロック毎だけでなく、画素毎の処理単位であっても、動きベクトルを演算する場合には、勾配法の演算に用いられる画素は、ブロック（演算ブロック）単位で構成されることが多い。【０２１１】
以上のように、勾配法の演算に用いられる画素は、８×８ブロックの演算ブロックの画素とされる。すなわち、図２８の例においては、演算ブロック（８×８）を用いて、勾配法演算を行った結果得られる動きベクトルは、検出対象ブロックＫ（８×８）のすべての画素に対応する動きベクトルということになる。【０２１２】
しかしながら、上述したように勾配法の演算に用いられる画素を、演算ブロック単位に扱う際に発生する問題として、図２９に示されるように、検出対象ブロックを構成する画素の中に、異なる動きを持つオブジェクトの画素が混在する場合が挙げられる。【０２１３】
図２９の例においては、８×８画素（６４画素）により構成される検出対象ブロック（＝演算ブロック）Ｋにおいて、左上の画素から２８画素（太線丸）が、矢印Ａに示される斜め左上への動きを有しており、８×８の検出対象ブロックＫにおいて、右下の画素から３６画素（細線丸）が、矢印Ｂに示される右横への動きを有している。【０２１４】
したがって、検出対象ブロックＫにおいて、上述したような大方同じ動きであるという仮定が崩れてしまい、動きの異なる画素を含んだままの演算ブロックを用いて、勾配法の演算を行うと、著しく、動きベクトルの検出精度が低下してしまう。すなわち、これは、異なる動きを持つオブジェクト同士の境界に発生する、オブジェクトの消滅領域（カバードバックグラウンド領域）および発生領域(アンカバードバックグラウンド領域)に関する検出精度低下問題である。消滅領域は、前景領域に対して、前景のオブジェクトの進行方向の全端部に対応する位置の混合領域であり、時間の経過に対応して背景成分が前景に覆い隠される領域をいう。これに対して、発生領域は、前景領域に対して、前景のオブジェクトの進行方向の後端部に対応する位置の混合領域であり、時間の経過に対応して背景成分が現れる領域をいう。【０２１５】
図３０は、同じオブジェクトである場合の検出対象ブロックの輝度の状態を説明する図である。図中左側においては、矢印Ｘは、水平方向を示しており、矢印Ｙは、垂直方向を示している。また、矢印Ｔは、図中、右奥の時刻ｔのフレームｔから、左手前の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。また、図中右側においては、矢印Ｘは、水平方向を示しており、矢印Ｌは、輝度値を示している。すなわち、図中右側の輝度値Ｌｐ１，Ｌｐ２，Ｌｐ３，…，Ｌｐｉ（３＜ｉ＜７），…，Ｌｐ７は、図中左側のフレームｔの８×８の検出対象ブロックにおいて、例えば、左上の画素から下に５番目の行の画素ｐ１，ｐ２，ｐ３，…，ｐｉ（３＜ｉ＜７），…，ｐ７，…の輝度値を表しており、同様に、輝度値Ｌｑ１，Ｌｑ２，Ｌｑ３，…，Ｌｑｉ（３＜ｉ＜７），…，Ｌｑ７は、図中左側のフレームｔ＋１の８×８の検出対象ブロックにおいて、画素ｐ１，ｐ２，ｐ３，…，ｐｉ（３＜ｉ＜７），…，ｐ７，…とそれぞれ同位相に位置する画素である、左上の画素から下に５番目の行の画素ｑ１，ｑ２，ｑ３，…，ｑｉ（３＜ｉ＜７），…，ｑ７，…の輝度値を表している。また、輝度値Ｌｐ１乃至Ｌｐ７およびＬｑ１乃至Ｌｑ７間の矢印は、フレームｔ上の画素とフレームｔ＋１上の画素の時間方向差分Δｔを示している。【０２１６】
したがって、図３０の例においては、画素ｐ１と画素ｑ１の時間方向差分Δｔは、輝度値Ｌｐ１と輝度値Ｌｑ１の差で表され、画素ｐ２と画素ｑ２の時間方向差分Δｔは、輝度値Ｌｐ２と輝度値Ｌｑ２の差で表され、画素ｐ３と画素ｑ３の時間方向差分Δｔは、輝度値Ｌｐ３と輝度値Ｌｑ３の差で表され、画素ｐｉと画素ｑｉの時間方向差分Δｔは、輝度値Ｌｐｉと輝度値Ｌｑｉの差で表され、画素ｐ７と画素ｑ７の時間方向差分Δｔは、輝度値Ｌｐ７と輝度値Ｌｑ７の差で表され、各輝度値の差は、輝度値Ｌｐ１乃至Ｌｐ７を結んだ曲線と、輝度値Ｌｑ１乃至Ｌｑ７を結んだ曲線の形状がほぼ同形状で示されるように、輝度変化が小さい。【０２１７】
以上のように、検出対象ブロックの中の画素が、同じオブジェクトである（すなわち、同一動きである）場合には、時間方向の対応画素について、輝度変化は、あまり大きくない。【０２１８】
図３１は、異なる動きを持つオブジェクトの画素が混在する場合の検出対象ブロックの輝度の状態を説明する図である。なお、図３０において、図３１における場合と対応する部分には対応する符号を付してあり、その説明は繰り返しになるので省略するが、図３１の例においては、フレームｔ上の画素ｐ７が、他の画素と異なる動きを有している。【０２１９】
例えば、フレームｔ上の画素ｐ７が、他の画素と同じ動きを有している場合には、フレームｔ＋１上において、画素ｐ７と同位相に位置する画素ｑ７の輝度値は、輝度値Ｌｑ７−１で表されるはずであるが、図３１の例においては、画素ｐ７は、他の画素と異なる動きを有しているため、画素ｑ７の輝度値は、輝度値Ｌｑ７−２に示されるように、輝度値Ｌｑ７−１よりも図中下側に大きく変化している。したがって、画素ｐ７と画素ｑ７の時間方向差分Δｔ（輝度値Ｌｐ７と、輝度値Ｌｑ７−２の差）は、大きくなってしまう。【０２２０】
このように、例えば、検出対象ブロック内に、上述したオブジェクトの消滅、発生、または変形などにより、異なる動きを有するオブジェクトの画素が混在する場合には、対応する画素の輝度値が大きく変化することが多く、このことが、動きの乱れにつながってしまう恐れがある。そこで、有効画素判定部４０３において、輝度変化が小さい画素は、動きベクトル検出に用いても有効であり、逆に、輝度変化が大きい画素は、動きベクトル検出に用いると、有効ではないと判断するようにする。すなわち、輝度変化の大小という要素に着目し、輝度変化の大小でその画素が有効か無効かを判断することにより、輝度変化が小さい画素は、動きベクトル検出に用い、逆に、輝度変化が大きい画素は、動きベクトル検出に用いないようにすることができる。これにより、動きベクトル検出の精度を高くすることができる。【０２２１】
具体的に説明すると、有効画素判定部４０３は、演算ブロック内の各画素について、時間方向の画素差分Δｔに所定の画素差分値（しきい値）を設定し、時間方向の画素差分Δｔが、設定された所定の画素差分値よりも小さい場合には、その画素は、動きベクトル検出に寄与する（有効である）と判定し、動きベクトルを検出する際の勾配法の演算に用いるが、時間方向の画素差分Δｔが、設定された所定の画素差分値以上である場合には、その画素は、動きの乱れを発生させる恐れがあるとして、動きベクトルを検出する際の勾配法の演算から除外する。これにより、異なる動きが混入することが抑制され、より安定した勾配法演算が実行され、その結果、確からしい動きベクトルが検出される。【０２２２】
ただし、上述したように、勾配法演算は、統計的な解法である最小自乗法に基づいた演算であるため、勾配法演算に用いる画素と用いない画素を切り分けることにより、勾配法演算に用いられる画素が極端に少なくなり、これらの極端に少ない画素数で勾配法演算が行われてしまうと、逆に、演算の信頼性が低下してしまい、動きベクトル検出の精度が低下してしまう恐れがある。【０２２３】
そこで、有効画素判定部４０３は、勾配法演算に用いられる画素数が少ない場合には、この検出対象ブロック（８×８）の処理単位での演算は不安定であるとし、図３２に示されるように、８×８ブロック内の画素（６４個）毎の演算単位に切り替えて処理を行う。【０２２４】
図３２は、画素単位処理における演算ブロックの例を示している。図３２の例においては、フレーム上の検出対象ブロック（ブロック単位の演算ブロック）Ｋ（８×８）が画素単位処理に切り替えられた場合の、検出対象ブロックＫの左上の画素ｐの演算ブロックＥ（図３２の例の場合、９×９）を示している。【０２２５】
すなわち、画素ｐの動きベクトルを求める際には、画素ｐを中心とした演算ブロックＥ（図３２の例の場合、９×９）が用いられる。また、例えば、画素ｐの右隣の画素の動きベクトルを求める場合には、画素ｐの右隣の画素を中心とした演算ブロック９×９（図示せず）が用いられる。【０２２６】
したがって、例えば、検出対象ブロックＫにおいて、大半が画素ｐと異なる動きをしていたとしても、検出対象ブロックＫ（８×８）において、勾配法演算に用いられる画素数が計数され、その数が少ない場合には、画素単位処理に切り替えられるので、図３２に示されるように、画素単位処理での演算ブロックＥを用いて勾配法の演算を実行することができる。【０２２７】
このように、勾配法演算に用いる画素と用いない画素を切り分け、勾配法演算に用いられる画素が極端に少なくなった場合に、検出対象ブロックＫ（８×８）ブロック内すべての画素について動きベクトルの検出をやめるのではなく、画素単位処理に切り替えて、画素毎に、演算ブロックＥ（９×９）の画素を変えて勾配法演算するようにすることで、演算に用いられない画素の混在を少しでも防ぎ、画素によっては、より高精度の動きベクトルの検出を行うことができる。【０２２８】
図３３は、図２９の検出対象ブロック（演算ブロック）Ｋの画素に、画素単位処理を適用する例を示す図である。図３３の例においては、矢印Ａに示される斜め左上への動きを有する画素（太線丸）と、矢印Ｂに示される右横への動きの２つの異なる動きを有する画素（細線丸）からなる図２９の検出対象ブロックＫ（８×８）において、画素単位での処理が行われる。この場合において、検出対象ブロックＫの左上の検出対象画素ｐの動きベクトルを検出するとき、検出対象画素ｐを中心とした演算ブロックＥ（図３３の例の場合、９×９）が用いられる。【０２２９】
演算ブロックＥ内の画素は、矢印Ｂに示される右横への動きを有する右下の３画素（細線丸）以外を除いて、矢印Ａに示される斜め左上への動きを有している。ここで、上述したブロック単位処理の場合と同様に、演算ブロックＥ内の各画素について、時間方向画素差分Δｔに所定のしきい値（画素差分値）を設定し、時間方向画素差分Δｔが、設定された所定の画素差分値よりも小さい場合には、その画素は、動きベクトル検出に寄与する（有効である）と判定し、動きベクトルを検出する際の勾配法演算に用いるが、時間方向画素差分Δｔが、設定された所定の画素差分値よりも大きい場合には、その画素は、動きの乱れを発生させる恐れがあるとして、動きベクトルを検出する際の勾配法演算に用いない。【０２３０】
すなわち、図３３の例においては、演算ブロックＥにおいて、右下の３画素（細線丸）を除いた画素（太線丸）が、検出対象画素ｐの勾配法演算に有効な画素であるとされ、その有効な画素が用いられて勾配法演算が実行されるため、図２９の検出対象ブロックＫ（８×８）を、演算ブロックとして用いて実行されるブロック単位処理の勾配法演算よりも、より安定した勾配法演算が実行され、その結果、確からしい動きベクトルが検出される。【０２３１】
なお、この画素毎の演算ブロックにおいても、勾配法演算に用いる画素と用いない画素を切り分けることにより、勾配法演算に用いられる画素が極端に少なくなってしまう場合には、動きベクトルを検出することが危険であるとし、演算は、打ち切られる。すなわち、動きベクトル検出が不安定であるにもかかわらす、何かしらの大きさを有する動きが検出されたことにしてしまうと、実際の画像内のオブジェクトの動きにそぐわない（確からしくない）動きベクトルになってしまう恐れがあるからである。このような確からしくない動きベクトルを用いた上で、以降の処理（例えば、ベクトル割付処理またはベクトル補償処理）が実行され、生成された画像は、動きが不連続になってしまったり、ブロックノイズが発生してしまうなどの大きな視覚劣化を及ぼしてしまう場合が多い。【０２３２】
したがって、画素単位の勾配法演算に用いられる画素が極端に少なくなってしまう場合、検出される動きベクトルは、例えば、０ベクトル（すなわち、静止状態）が用いられる。これにより、以降の処理において、この動きベクトルが、悪影響を及ぼすことが抑制され、生成される画像の大きな視覚劣化を抑制することができる。【０２３３】
次に、図３４Ａ乃至図３４Ｃのフローチャートを参照して、反復勾配法演算処理の詳細を説明する。図３４Ａの例は、ブロック単位、画素単位、および０ベクトルの処理モードの組み合わせからなるブロック基準の反復勾配法演算処理を示している。なお、ブロック基準とは、有効画素数が所定のしきい値より多いと判断された場合のブロック単位処理モードの演算ブロックにおける有効画素ではない画素に対して、ブロック単位処理モードの演算ブロックが、画素単位処理モードの演算ブロックに切り換えられない（すなわち、ブロック単位処理モードの演算ブロックにおいて有効画素ではない画素に対しても、ブロック単位処理モードの演算が行われる）ことを表わしている。図３４Ｂの例は、ブロック単位と０ベクトルの処理モードの組み合わせからなる反復勾配法演算処理を示している。【０２３４】
図３４Ｃの例は、ブロック単位、画素単位、および０ベクトルの処理モードの組み合わせからなる画素基準の反復勾配法演算処理を示している。なお、画素基準とは、有効画素数が所定のしきい値より多いと判断された場合のブロック単位処理モードの演算ブロックにおいて有効画素ではない画素に対して、ブロック単位処理モードの演算ブロックが、画素単位処理モードの検出対象ブロックに切り換えられる、すなわち、ブロック単位処理モードの演算ブロックにおいて有効画素ではない画素に対しては、画素単位処理モードの演算が行われることを表わしている。【０２３５】
最初に、図３４Ａのフローチャートを参照して、反復勾配法演算処理の例を説明する。前段よりモード選択部４０１に初期ベクトルＶ０が入力される。【０２３６】
モード選択部４０１は、ステップＳ４０１において、ブロック単位処理モードを選択し、フレームｔ上のブロックを、検出対象ブロック（演算ブロック）とし、検出対象ブロックの初期ベクトルＶ０をセレクタ４０２およびベクトル評価部１０４に出力し、ステップＳ４０２に進む。これにより、反復勾配法演算部１０３の各部においては、ブロック単位での処理が実行される。ステップＳ４０２において、セレクタ４０２は、ベクトル評価部１０４からの制御に応じて、モード選択部４０１から入力された初期ベクトルＶ０をオフセットベクトルとして選択し、選択したオフセットベクトルを、時間画素差分算出部４１１および時間画素差分算出部４２１に出力し、ステップＳ４０３に進む。【０２３７】
ステップＳ４０３において、時間画素差分算出部４１１および画素差分値判定部４１２は、選択されたオフセットベクトルを用いて（いまの場合、初期ベクトルＶ０をオフセットして）、ブロック単位の有効画素判定処理を実行し、ステップＳ４０４に進む。この有効画素判定処理の詳細は、図３５を参照して後述するが、この有効画素判定処理により、有効画素数カウンタ４１３には、ブロック単位の演算ブロック内において、画素差分値が所定の画素差分値よりも小さいと判定された（すなわち、後段の勾配法演算で有効な画素であると判定された）画素の数がカウントされている。【０２３８】
勾配法継続判定部４１４は、ステップＳ４０４において、有効画素数カウンタ４１３にカウントされている画素数（有効画素数）が所定のしきい値αより多いか否かを判断し、有効画素数が所定のしきい値αより多いと判断した場合、勾配法演算部４０４に、ブロック単位で、勾配法演算を実行させるフラグ(flg＝１)を出力し、ステップＳ４０５に進む。【０２３９】
ステップＳ４０５において、勾配法演算部４０４は、勾配法継続判定部４１４からのフラグに基づいて、セレクタ４０２からのオフセットベクトル（いまの場合、初期ベクトルＶ０）を用いて、ブロック単位の勾配法演算処理を実行し、ステップＳ４０６に進む。この勾配法演算処理の詳細は、図３６を参照して後述するが、この勾配法演算処理により、動きベクトルＶｎが求められ、ベクトル評価部１０４および遅延部４０５に出力される。なお、動きベクトルＶｎは、１回目の勾配法演算により算出された動きベクトルｖｎに、オフセットベクトルＶｎ−１が加算されたもの（Ｖｎ＝Ｖｎ−１＋ｖｎ）である。例えば、動きベクトルＶ１は、１回目の勾配法演算により算出された動きベクトルｖ１に、オフセットベクトル（初期ベクトルＶ０）が加算されたもの（Ｖ１＝Ｖ０＋ｖ１）である。【０２４０】
ステップＳ４０６において、ベクトル評価部１０４は、勾配法演算処理により求められた動きベクトルＶｎの評価値ＤＦＤ（ｎ）と、オフセットベクトルとして用いられた動きベクトルＶｎ−１の評価値ＤＦＤ（ｎ−１）を求め、評価値ＤＦＤ（ｎ−１）よりも評価値ＤＦＤ（ｎ）が小さいか否か、すなわち、オフセットベクトルとして用いられた動きベクトルＶｎ−１よりも勾配法演算処理により求められた動きベクトルＶｎの信頼度が高いか否かを判断する。具体的には、例えば、１回目の処理においては、求められた動きベクトルＶ１の評価値ＤＦＤ（１）と、オフセットベクトルとして用いられた初期ベクトルＶ０の評価値ＤＦＤ（０）が比較され、２回目の処理においては、求められた動きベクトルＶ２の評価値ＤＦＤ（２）と、オフセットベクトルとして用いられた動きベクトルＶ１の評価値ＤＦＤ（１）が比較される。【０２４１】
ベクトル評価部１０４は、ステップＳ４０６において、評価値ＤＦＤ（ｎ−１）よりも評価値ＤＦＤ（ｎ）が小さいと判断した場合、すなわち、動きベクトルＶｎ−１よりも動きベクトルＶｎの信頼度が高いと判断された場合、ステップＳ４０７において、算出された動きベクトルＶｎ（１回目の場合、動きベクトルＶ１、２回目の場合、動きベクトルＶ２）を、検出対象ブロックの動きベクトルＶに設定して、ステップＳ４０８に進む。ベクトル評価部１０４は、ステップＳ４０８において、反復回数ｎを１つカウントし、ステップＳ４０９に進み、反復回数ｎが設定された最大反復回数（例えば、２回）になったか否かを判断し、まだ、反復回数ｎが設定された最大反復回数ではないと判断した場合、セレクタ４０２を制御し、ステップＳ４０２に戻り、それ以降の処理を繰り返させる。【０２４２】
すなわち、ステップＳ４０２において、セレクタ４０２は、ベクトル算出部４２５から出力され、遅延部４０５に保持された動きベクトルＶ１を、オフセットベクトルとして選択し、ステップＳ４０３において、時間画素差分算出部４１１および画素差分値判定部４１２は、動きベクトルＶ１をオフセットベクトルとして用いて、ブロック単位の有効画素判定処理を実行し、それ以降の処理を繰り返す。したがって、ステップＳ４０５において算出される動きベクトルＶ２は、２回目の勾配法演算により算出された動きベクトルｖ２に、オフセットベクトルとして用いられた動きベクトルＶ１が加算されたもの（すなわち、Ｖ２＝Ｖ１＋ｖ２＝Ｖ０＋ｖ１＋ｖ２）となる。【０２４３】
ベクトル評価部１０４は、ステップＳ４０６において、評価値ＤＦＤ（ｎ−１）よりも評価値ＤＦＤ（ｎ）が小さくないと判断した場合、すなわち、動きベクトルＶｎ−１の方が、動きベクトルＶｎよりも信頼度が高いと判断した場合、ステップＳ４１０に進み、勾配法演算のオフセットとしたベクトルＶｎ−１（１回目の場合、初期ベクトルＶ０、２回目の場合、動きベクトルＶ１）を、検出対象ブロックの動きベクトルＶに設定して、ステップＳ４１１に進む。また、ベクトル評価部１０４は、ステップＳ４０９において、反復回数ｎが設定された最大反復回数になったと判断した場合、ステップＳ４１１に進む。【０２４４】
ベクトル評価部１０４は、ステップＳ４１１において、動きベクトルＶが、動きベクトルを検出する範囲として予め設定されたサーチエリア内であるか否かを判断し、動きベクトルＶが、サーチエリア内であると判断した場合、ステップＳ４１５に進み、動きベクトルＶを、検出対象ブロックに対応させて、検出ベクトルメモリ５３に記憶し、反復勾配法処理を終了する。【０２４５】
また、ベクトル評価部１０４は、ステップＳ４１１において、動きベクトルＶが、サーチエリア内ではないと判断した場合、ステップＳ４１２に進み、動きベクトルＶを０ベクトルに設定し、ステップＳ４１５に進み、動きベクトルＶ（０ベクトル）を、検出対象ブロックに対応させて、検出ベクトルメモリ５３に記憶し、反復勾配法処理を終了する。【０２４６】
一方、勾配法継続判定部４１４は、ステップＳ４０４において、有効画素数カウンタ４１３の有効画素数が所定のしきい値α以下であると判断した場合、ステップＳ４１３に進み、モード選択部４０１を制御し、画素単位処理モードを選択させ、ステップＳ４１４に進む。これにより、反復勾配法演算部１０３の各部においては、画素単位での処理が実行される。モード選択部４０１は、ステップＳ４１４において、画素単位の反復勾配法演算処理を実行し、ステップＳ４１５に進む。この画素単位処理モードの反復勾配法演算処理の詳細は、図３７を参照して後述するが、画素単位処理モードの反復勾配法演算処理により、検出対象ブロック内の全画素の動きベクトルＶが求められるので、ベクトル評価部１０４は、ステップＳ４１５において、動きベクトルＶを、検出対象ブロックの各画素に対応させて、検出ベクトルメモリ５３に記憶し、反復勾配法処理を終了する。【０２４７】
なお、上述したステップＳ４０６においては、動きベクトルの信頼度の評価を、勾配法処理により求められた動きベクトルＶｎの評価値ＤＦＤ（ｎ）と、オフセットベクトルとして用いられた動きベクトルＶｎ−１の評価値ＤＦＤ（ｎ−１）を比較することで判断したが、評価値ＤＦＤの比較判断と同時に、勾配法演算により求められた動きベクトル（オフセットベクトルが加算される前の動きベクトル）ｖｎのノルムの値（｜ｖｎ｜）が所定の大きさ（演算ブロック８×８の場合、例えば、１６）よりも小さいことも判断するようにしてもよい。【０２４８】
ここで、ノルムとは、あるベクトル空間におけるベクトルの大きさを表し、例えば、原点（０，０）を起点とした（ｘ，ｙ）へのベクトルｖのノルムは、次の式（１１）で表される。【０２４９】
【数３】
0004692845.tif 000004
・・・（１１）【０２５０】
すなわち、勾配法演算においては、一般的に、微小動きに対して、精度の高い結果が得られるが、勾配法演算により求められた動きベクトルのノルム値｜ｖｎ｜が所定の大きさを超えてしまうと、その大きい動きベクトルｖｎに対して精度の高い結果が得られているとは限らない。したがって、評価値ＤＦＤと並行して、勾配法演算により求められた動きベクトルのノルム値｜ｖｎ｜が所定の大きさを超えたか否かを判断し、ノルム値｜ｖｎ｜が所定の大きさを超えた動きベクトルを除外することにより、この勾配法演算においては、微小動きに対しても、大きい動きに対しても、精度の高い結果を得ることができ、さらに、動きベクトル検出の精度を向上させることができる。【０２５１】
なお、この評価値ＤＦＤの判断とノルム値による判断の場合には、ステップＳ４０６において、｜ｖｎ｜≦１６である場合で、かつ、評価値ＤＦＤ（ｎ−１）＞評価値ＤＦＤ（ｎ）である場合には、ステップＳ４０７に進み、Ｖ＝Ｖｎに設定され、ステップＳ４０６において、｜ｖｎ｜＞１６である場合で、または、評価値ＤＦＤ（ｎ−１）≦評価値ＤＦＤ（ｎ）である場合には、ステップＳ４１０に進み、Ｖ＝Ｖｎ−１に設定される。【０２５２】
次に、図３５のフローチャートを参照して、有効画素判定処理の詳細を説明する。なお、図３５は、図３４ＡのステップＳ４０３の有効画素判定処理の例を示している。【０２５３】
セレクタ４０２から、オフセットベクトルが入力されると、時間画素差分算出部４１１は、ステップＳ４３１において、画素差分値判定部４１２を制御し、有効画素数カウンタ４１３をリセットさせ、ステップＳ４３２に進み、ブロック単位の演算ブロックにおいて、画素を選択し、ステップＳ４３３に進む。なお、画素は、演算ブロックの左上の画素からラスタスキャン順に選択される。【０２５４】
時間画素差分算出部４１１は、ステップＳ４３３において、オフセットベクトル、並びに、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔ、および時刻ｔ＋１の画像のフレームｔ＋１を用いて、選択された画素の時間方向の画素差分Δｔを算出し、算出された時間方向の画素差分Δｔを画素差分値判定部４１２に出力し、ステップＳ４３４に進む。【０２５５】
画素差分値判定部４１２は、ステップＳ４３４において、時間画素差分算出部４１１により算出された時間方向の画素差分Δｔが、所定の画素差分値よりも小さいか否かを判断し、すなわち、後段の勾配法演算に有効な画素であるか否かを判断し、時間方向の画素差分Δｔが、所定の画素差分値よりも小さいと判断した場合、ステップＳ４３５に進み、有効画素数カウンタ４１３の有効画素の数を１つカウントし、ステップＳ４３６に進む。また、画素差分値判定部４１２は、ステップＳ４３４において、時間方向の画素差分Δｔが、所定の画素差分値以上であると判断した場合、すなわち、後段の勾配法演算に有効な画素ではないと判断し、ステップＳ４３５の処理をスキップし、ステップＳ４３６に進む。【０２５６】
時間画素差分算出部４１１は、ステップＳ４３６において、演算ブロック内のすべての画素の処理が終了したか否かを判断し、演算ブロック内のすべての画素の処理が終了していないと判断した場合、ステップＳ４３２に戻り、次の画素を選択し、それ以降の処理を繰り返す。一方、時間画素差分算出部４１１は、ステップＳ４３６において、演算ブロック内のすべての画素の処理が終了したと判断した場合、有効画素判定処理を終了し、図３４ＡのステップＳ４０４に戻る。【０２５７】
以上の処理により、有効画素カウンタ４１３には、演算ブロック内において、その画素差分Δｔが所定の画素差分値より小さく、後段の勾配法演算において有効であると判断された画素の数がカウントされている。したがって、勾配法継続判断部４１４は、図３４ＡのステップＳ４０４において、この有効画素カウンタ４１３の画素の数を参照することにより、ブロック単位の勾配法演算を行うか、画素単位の勾配法演算を行うかを判断することができる。【０２５８】
上記説明においては、図３４Ａを参照して、ブロック単位、画素単位、および０ベクトルの処理モードの組み合わせからなるブロック基準の反復勾配法演算処理を説明した。【０２５９】
次に、図３４Ｂのフローチャートを参照して、ブロック単位と０ベクトルの処理モードの組み合わせからなる反復勾配法演算処理を説明する。なお、図３４Ｂの反復勾配法演算処理は、図３４ＡのステップＳ４１３およびＳ４１４が、ステップＳ４１６に置き換えられた点が異なるだけであり、その他の処理は、図３４Ａの反復勾配法演算処理と基本的に同様の処理を行うため、その説明は繰り返しになるので省略する。【０２６０】
すなわち、図３４Ｂの例の場合、ステップＳ４０４において、有効画素数カウンタ４１３の有効画素数が所定のしきい値α以下であると判断された場合、ベクトル評価部１０４は、ステップＳ４１６に進み、動きベクトルＶを０ベクトルに設定し、ステップＳ４１５に進み、動きベクトルＶ（０ベクトル）を、検出対象ブロックに対応させて、検出ベクトルメモリ５３に記憶し、反復勾配法処理を終了する。【０２６１】
以上のようにして、有効画素数が所定のしきい値α以下である場合に、動きベクトルＶ（０ベクトル）が設定されるという簡単な演算処理である図３４Ｂの反復勾配法演算処理が実現される。【０２６２】
次に、図３４Ｃのフローチャートを参照して、ブロック単位、画素単位、および０ベクトルの処理モードの組み合わせからなる画素基準の反復勾配法演算処理を説明する。なお、図３４Ｃの反復勾配法演算処理は、図３４ＡのステップＳ４０４とＳ４０５の間に、ステップＳ４１７が追加されている点が異なるだけであり、その他の処理は、図３４Ａの反復勾配法演算処理と基本的に同様の処理を行うため、その説明は繰り返しになるので省略する。【０２６３】
特に、図３４Ｃの例の場合、ステップＳ４１３およびＳ４１４の処理は、ステップＳ４０４において、有効画素数カウンタ４１３の有効画素数が所定のしきい値αより多いと判断された場合の演算ブロック内の有効画素ではない画素に対して実行される。そして、ステップＳ４１４において演算ブロック内の有効画素ではない画素に対して得られた動きベクトルは、ステップＳ４１１またはＳ４１２において演算ブロック内の有効画素に対して得られた動きベクトルとともに、ステップＳ４１５において検出ベクトルメモリ５３に記憶される。【０２６４】
なお、このステップＳ４１３およびＳ４１４の処理は、図３４Ａの場合と同様に、ステップＳ４０４において、有効画素数カウンタ４１３の有効画素数が所定のしきい値α以下であると判断された場合の演算ブロック（検出対象ブロック）の各画素についても実行される。【０２６５】
具体的に説明すると、図３４ＣのステップＳ４０４において、有効画素数カウンタ４１３の有効画素数が所定のしきい値αより多いと判断された場合、処理は、ステップＳ４１７に進む。ここで、演算ブロックは、有効な画素であると判定された有効画素で構成される有効画素群および有効な画素ではないと判定された無効画素群のうち、少なくとも一方の画素群で構成されている。したがって、勾配法継続判定部４１４は、ステップＳ４１７において、ブロック単位の演算ブロック内の画素群が、有効画素群であるか否かを判断する。【０２６６】
勾配法継続判定部４１４は、ステップＳ４１７において、ブロック単位の演算ブロック内の画素群が、有効画素群であると判断した場合、ステップＳ４０５に進み、勾配法演算部４０４に、演算ブロック内の有効画素群に対してのみ、ブロック単位の勾配法演算処理を実行させる。なお、ステップＳ４０６乃至Ｓ４１２の処理は、図３４Ａと基本的に同様であるため、その説明は省略する。【０２６７】
一方、勾配法継続判定部４１４は、ステップＳ４１７において、ブロック単位の演算ブロック内の画素群が、有効画素群ではないと判断した場合、モード選択部４０１を制御し、ステップＳ４１３に進み、画素単位処理モードを選択させ、ステップＳ４１４に進み、無効画素群に対してのみ、画素単位の反復勾配法演算処理を実行させる。なお、ステップＳ４１３およびＳ４１４の処理は、図３４Ａと基本的に同様であるため、その説明は省略する。【０２６８】
以上の処理により、演算ブロック内の有効画素群に対しては、ステップＳ４１１またはＳ４１２において動きベクトルが設定され、演算ブロック内の無効画素群に対しては、ステップＳ４１４において動きベクトルが設定される。そして、演算ブロック内の有効画素群に対して設定された動きベクトル、および無効画素群に対して設定された動きベクトルは、ステップＳ４１５においてベクトル検出メモリ５３に記憶され、反復勾配法処理は、終了される。【０２６９】
以上のように、図３４Ｃの例における、ブロック単位、画素単位、および０ベクトルの処理モードの組み合わせからなる画素基準の反復勾配法演算処理は、複雑な判断処理を有する反面、図３４Ａや図３４Ｂの例の勾配法演算処理において対応しきれない、ブロック単位処理モードのブロックにおける非有効画素に対応することができるので、より精度の高い動きベクトルを提供する。【０２７０】
また、図３４Ｂの例における、ブロック単位と０ベクトルの処理モードの組み合わせからなる反復勾配法演算処理は、簡単な構成であるため、図３４Ａ乃至図３４Ｃに示した例の中では、演算処理への負荷が最も低いが、それでもやはり、勾配法演算処理においてマイナス要因を与えてしまう画素を制限し、それらの画素を動きベクトルに用いないようにすることで動きベクトル検出の精度を増加させることができる。【０２７１】
そして、図３４Ａの例における、ブロック単位、画素単位、および０ベクトルの処理モードの組み合わせからなるブロック基準の反復勾配法演算処理は、図３４Ｂと図３４Ｃの処理と比較して中庸のレベルの演算処理を提供し、特にブロック単位処理モードのブロックにおいて有効画素数が所定のしきい値よりも小さいときに、図３４Ｂに示すようなブロック単位処理モードだけでは対応されないブロックの画素に対応することができる。【０２７２】
次に、図３６のフローチャートを参照して、ブロック単位の勾配法演算処理の詳細を説明する。なお、図３６は、図３４ＡのステップＳ４０５のブロック単位の勾配法演算処理の例を示している。したがって、図３６の例においては、時間画素差分算出部４２１には、勾配法継続判定部４１４から、勾配法演算を実行させるフラグ(flg＝１)が入力される。【０２７３】
勾配法継続判定部４１４からフラグ(flg＝１)が入力されると、時間画素差分算出部４２１は、ステップＳ４５１において、ブロック単位の演算ブロックにおいて、画素を選択し、ステップＳ４５２に進む。なお、画素は、演算ブロックの左上の画素からラスタスキャン順に選択される。【０２７４】
時間画素差分算出部４２１は、ステップＳ４５２において、セレクタ４０２からのオフセットベクトル、並びに、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔ、および時刻ｔ＋１の画像のフレームｔ＋１を用いて、選択された画素の時間方向の画素差分Δｔを算出し、算出された時間方向の画素差分Δｔおよびオフセットベクトルを、画素差分値判定部４２２に出力し、ステップＳ４５３に進む。【０２７５】
画素差分値判定部４２２は、ステップＳ４５３において、時間画素差分算出部４２１により算出された時間方向の画素差分Δｔが、所定の画素差分値よりも小さいか否かを判断し、すなわち、後段の勾配法演算に有効な画素であるか否かを判断し、時間方向の画素差分Δｔが、所定の画素差分値よりも小さいと判断した場合、ステップＳ４５４に進み、垂直水平画素差分算出部４２３を制御し、有効であると判断した画素の水平方向の画素差分Δｘを算出させる。なお、画素差分値判定部４２２における所定の画素差分値は、画素差分値判定部４１２における所定の画素差分値と同じ値であってもよいし、異なる値であってもよい。また、このとき、画素差分値判定部４２２は、時間画素差分算出部４２１により算出された時間方向の画素差分Δｔおよびオフセットベクトルを、垂直水平画素差分算出部４２３に出力する。【０２７６】
垂直水平画素差分算出部４２３は、ステップＳ４５４において、オフセットベクトル、並びに、プリフィルタ１０２−１および１０２−２を介して入力される時刻ｔの画像のフレームｔ、および時刻ｔ＋１の画像のフレームｔ＋１を用いて、有効であると判断された画素の水平方向の画素差分Δｘを算出し、ステップＳ４５５に進み、有効であると判断された画素の垂直方向の画素差分Δｙを算出し、時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、および垂直方向の画素差分Δｙを、勾配積算部４２４に出力し、ステップＳ４５６に進む。勾配積算部４２４は、ステップＳ４５６において、垂直水平画素差分算出部４２３からの時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、および垂直方向の画素差分Δｙを積算し、積算した結果をベクトル算出部４２５に出力し、ステップＳ４５７に進む。【０２７７】
画素差分値判定部４２２は、ステップＳ４５３において、時間方向の画素差分Δｔが、所定の画素差分値以上であると判断した場合、ステップＳ４５４乃至Ｓ４５６の処理をスキップし、ステップＳ４５７に進む。すなわち、この画素の各画素差分（勾配）は、後段の勾配法演算に有効な画素ではないので、演算に用いられない。【０２７８】
ステップＳ４５７において、時間画素差分算出部４２１は、演算ブロック内のすべての画素の処理が終了したか否かを判断し、演算ブロック内のすべての画素の処理が終了していないと判断した場合、ステップＳ４５１に戻り、次の画素を選択し、それ以降の処理を繰り返す。一方、時間画素差分算出部４２１は、ステップＳ４５７において、演算ブロック内のすべての画素の処理が終了したと判断した場合、ベクトル算出部４２５にオフセットベクトルを出力し、ステップＳ４５８に進む。ベクトル算出部４２５は、時間画素差分算出部４２１からオフセットベクトルが入力されると、勾配積算部４２４からの勾配の積算結果と、上述した式（９）の最小自乗和を用いて、動きベクトルｖｎを算出し、ステップＳ４５９に進み、時間画素差分算出部４２１からのオフセットベクトルに、算出された動きベクトルｖｎを加算した、動きベクトルＶｎを求めて、求められた動きベクトルＶｎをベクトル評価部１０４に出力し、勾配法演算処理を終了し、図３４ＡのステップＳ４０６に戻る。【０２７９】
以上のように、時間方向の画素差分Δｔが、設定された所定の画素差分値以上の場合には、その画素は、動きの乱れを発生させる恐れがあるとして、動きベクトルを検出する際の勾配法の演算から除外するようにしたので、より安定した勾配法演算が実行され、その結果、確からしい動きベクトルが検出され、これにより、動きベクトル検出の精度が向上される。【０２８０】
次に、図３７のフローチャートを参照して、画素単位の反復勾配法演算処理の詳細を説明する。図３７は、図３４ＡのステップＳ４１４の画素単位の反復勾配法演算処理の例を示している。なお、この処理は、検出対象ブロック内の各画素について実行される。【０２８１】
モード選択部４０１は、画素単位処理モードを設定すると、ステップＳ４７１において、検出対象ブロックの画素を検出対象画素として選択し、その画素の演算ブロック（例えば、９×９）の初期ベクトルＶ０を、セレクタ４０２およびベクトル評価部１０４に出力し、ステップＳ４７２に進む。なお、画素は、検出対象ブロックの左上の画素からラスタスキャン順に選択される。ステップＳ４７２において、セレクタ４０２は、ベクトル評価部１０４からの制御に応じて、モード選択部４０１から入力された初期ベクトルＶ０をオフセットベクトルとして選択し、選択したオフセットベクトルを、時間画素差分算出部４１１および時間画素差分算出部４２１に出力し、ステップＳ４７３に進む。【０２８２】
ステップＳ４７３において、時間画素差分算出部４１１および画素差分値判定部４１２は、選択されたオフセットベクトルを用いて（いまの場合、初期ベクトルＶ０をオフセットとして）、画素単位の有効画素判定処理を実行し、ステップＳ４７４に進む。この有効画素判定処理の詳細は、図３５を参照して上述したブロック単位の有効画素判定処理と、対象となる演算ブロック（ブロック範囲や、ブロックを構成する画素）が異なる以外、基本的に同様の処理を行うため、その詳細な説明を省略するが、この有効画素判定処理により、有効画素数カウンタ４１３には、画素単位の演算ブロック内において、画素差分値が所定の画素差分値よりも小さいと判定された（すなわち、後段の勾配法演算で有効な画素であると判定された）画素の数がカウントされている。なお、画素単位の有効画素判定を行う所定の画素差分値は、ブロック単位の場合と同じ値としてもよいし、異なる値を設定するようにしてもよい。【０２８３】
勾配法継続判定部４１４は、ステップＳ４７４において、有効画素数カウンタ４１３にカウントされている画素数（有効画素数）が所定のしきい値βより多いか否かを判断し、有効画素数が所定のしきい値βより多いと判断した場合、勾配法演算部４０４に、勾配法演算を実行させるフラグ(flg＝１)を出力し、ステップＳ４７５に進む。なお、しきい値βも、ブロック単位の場合のしきい値αと同じ値としてもよいし、異なる値を設定するようにしてもよい。【０２８４】
ステップＳ４７５において、勾配法演算部４０４は、勾配法継続判定部４１４からのフラグに基づいて、セレクタ４０２からのオフセットベクトル（初期ベクトルＶ０）を用いて、画素単位の勾配法演算処理を実行し、ステップＳ４７６に進む。この勾配法演算処理の詳細は、図３６を参照して上述したブロック単位の勾配法演算処理と、対象となる演算ブロック（範囲や、ブロックを構成する画素）が異なる以外、基本的に同様の処理を行うため、その詳細な説明を省略するが、この勾配法演算処理により、検出対象画素の動きベクトルＶｎが求められ、ベクトル評価部１０４および遅延部４０５に出力される。なお、動きベクトルＶｎは、１回目の勾配法演算により求められた動きベクトルｖｎに、オフセットベクトルが加算されたもの（Ｖｎ＝Ｖｎ−１＋ｖｎ）となる。【０２８５】
ステップＳ４７６において、ベクトル評価部１０４は、勾配法処理により算出された動きベクトルＶｎの評価値ＤＦＤ（ｎ）と、オフセットとして用いられた動きベクトルＶｎ−１の評価値ＤＦＤ（ｎ−１）を求め、評価値ＤＦＤ（ｎ−１）よりも評価値ＤＦＤ（ｎ）が小さいか否か、すなわち、オフセットとして用いられた動きベクトルＶｎ−１よりも勾配法処理により算出された動きベクトルＶｎの信頼度が高いか否かを判断する。【０２８６】
ベクトル評価部１０４は、ステップＳ４７６において、評価値ＤＦＤ（ｎ−１）よりも評価値ＤＦＤ（ｎ）が小さいと判断された場合、すなわち、動きベクトルＶｎ−１よりも動きベクトルＶｎの信頼度が高いと判断された場合、ステップＳ４７７において、算出された動きベクトルＶｎ（１回目の場合、動きベクトルＶ１、２回目の場合、動きベクトルＶ２）を、検出対象画素の動きベクトルＶに設定して、ステップＳ４７８に進む。ベクトル評価部１０４は、ステップＳ４７８において、反復回数ｎを１つカウントし、ステップＳ４７９に進み、反復回数ｎが設定された最大反復回数（例えば、２回）になったか否かを判断し、まだ、反復回数ｎが設定された最大反復回数ではないと判断した場合、セレクタ４０２を制御し、ステップＳ４７２に戻り、それ以降の処理を繰り返させる。【０２８７】
すなわち、ステップＳ４７２において、セレクタ４０２は、ベクトル算出部４２５から出力され遅延部４０５に保持された動きベクトルＶ１を、オフセットベクトルとして選択し、ステップＳ４７３において、時間画素差分算出部４１１および画素差分値判定部４１２は、オフセットベクトルである動きベクトルＶ１をオフセットして、画素単位の有効画素判定処理を実行し、それ以降の処理を繰り返す。したがって、ステップＳ４７５において求められる動きベクトルＶ２は、２回目の勾配法演算により算出された動きベクトルｖ２に、オフセットとなる動きベクトルＶ１が加算されたもの（すなわち、Ｖ２＝Ｖ０＋ｖ１＋ｖ２）である。【０２８８】
ベクトル評価部１０４は、ステップＳ４７６において、評価値ＤＦＤ（ｎ−１）よりも評価値ＤＦＤ（ｎ）が大きいと判断した場合、すなわち、動きベクトルＶｎ−１の方が、動きベクトルＶｎよりも信頼度が高いと判断された場合、ステップＳ４８０に進み、勾配法演算のオフセットとしたベクトルＶｎ−１（１回目の場合、初期ベクトルＶ０、２回目の場合、動きベクトルＶ１）を、検出対象ブロックの動きベクトルＶに設定して、ステップＳ４８１に進む。また、ベクトル評価部１０４は、ステップＳ４７９において、反復回数ｎが設定された最大反復回数になったと判断した場合、ステップＳ４８１に進む。【０２８９】
ベクトル評価部１０４は、ステップＳ４８１において、動きベクトルＶが、動きベクトルを検出する範囲として予め設定されたサーチエリア内であるか否かを判断し、動きベクトルＶが、サーチエリア内であると判断した場合、ステップＳ４８３に進む。また、ベクトル評価部１０４は、ステップＳ４８１において、動きベクトルＶが、サーチエリア内であると判断しなかった場合、ステップＳ４８２に進み、動きベクトルＶを０ベクトルに設定し、ステップＳ４８３に進む。【０２９０】
一方、ステップＳ４７４において、勾配法継続判定部４１４は、有効画素数カウンタ４１３の有効画素数が所定のしきい値βより少ないと判断した場合、勾配法演算部４０４に勾配法演算を打ち切るフラグ(flg＝０)を出力し、ステップＳ４８２に進む。時間画素差分算出部４２１は、フラグに基づいて、ベクトル算出部４２５を制御し、動きベクトルＶを０ベクトルに設定させ、ステップＳ４８３に進む。【０２９１】
モード選択部４０１は、ステップＳ４８３において、検出対象ブロック内のすべての画素の処理が終了したか否かを判断し、検出対象ブロック内のすべての画素の処理が終了していないと判断した場合、ステップＳ４７１に戻り、検出対象ブロックの次の画素を、検出対象画素として、それ以降の処理を繰り返す。モード選択部４０１は、ステップＳ４８３において、検出対象ブロック内のすべての画素の処理が終了したと判断した場合、画素単位の反復勾配法演算処理を終了し、図３４ＡのステップＳ４１５に戻る。すなわち、画素単位の反復勾配法演算処理により、検出対象ブロック内すべての画素について動きベクトルＶが求められるので、図３４ＡのステップＳ４１５に戻り、ベクトル評価部１０４は、動きベクトルＶを、検出対象ブロックの各画素に対応させて、検出ベクトルメモリ５３に記憶し、反復勾配法処理を終了する。【０２９２】
なお、ステップＳ４７６の動きベクトルの信頼度の評価も、ステップＳ４０６の場合と同様に、評価値ＤＦＤの判断とノルム値による判断を併用するようにしてもよい。【０２９３】
以上のように、演算ブロック内の画素差分が所定の画素差分値よりも小さい画素のみ勾配法演算に用いるようにすることで、異なる動きを有する画素を演算対象から除くことができ、勾配法演算により求められる動きベクトルの確からしさが向上し、動きベクトル検出の精度が向上する。【０２９４】
また、演算ブロック内の画素差分が所定の画素差分値よりも大きく、勾配法演算に用いられない画素数が、所定のしきい値よりも多かった場合に、適応的に、勾配法演算の処理を制御するようにしたので、特に、オブジェクトの動きの境界などにおいて、さらに、動きベクトル検出の精度を向上させることができ、その結果、求められる動きベクトルもより確からしいものとすることができる。【０２９５】
具体的には、演算ブロック内の画素差分が所定の画素差分値よりも大きく、勾配法演算に用いられない画素数が、所定のしきい値よりも多かった場合に、ブロック単位モードから画素単位モードに変更し、検出対象ブロックの画素毎に演算ブロックを設定し、有効判定処理および勾配法演算処理を行うようにしたので、画素によっては、より高精度な動きベクトルを検出することができる。また、演算ブロック内の画素差分が所定の画素差分値よりも大きく、勾配法演算に用いられない画素数が、所定のしきい値よりも多かった場合に、勾配法演算処理の処理を打ち切り、０ベクトルとするようにしたので、暴れた動きベクトルの検出を抑制し、より安全な動きベクトルを検出することができる。【０２９６】
次に、有効画素判定部４０３および勾配法演算部４０４の他の構成について説明する。【０２９７】
以下に説明する有効画素判定部４０３および勾配法演算部４０４においては、時間方向の画素差分だけでなく、空間方向の画素差分にも基づいて、演算ブロック内の画素が動きベクトル検出に有効であるか否かが求められる。【０２９８】
図３８は、有効画素判定部４０３の詳細な構成を示すブロック図である。なお、図３８の有効画素判定部４０３は、図２５の有効画素判定部４０３の他の構成例を示すものであり、図３８において、図２６における場合と対応する部分には対応する符号を付してあり、その説明は繰り返しになるので省略する。【０２９９】
図３８の例において、有効画素判定部４０３は、第１空間勾配画素差分算出部５０１、第２空間勾配画素差分算出部５０２、時間方向画素差分算出部５０３、演算判定部５０４、有効画素数カウンタ４１３、および勾配法継続判定部４１４により構成される。【０３００】
プリフィルタ１０２−１を介して入力される時刻ｔ＋１の画像のフレームｔ＋１は、第１空間勾配画素差分算出部５０１および時間方向画素差分算出部５０３に入力される。プリフィルタ１０２−２を介して入力される時刻ｔの画像のフレームｔは、第２空間勾配画素差分算出部５０２および時間方向画素差分算出部５０３に入力される。また、セレクタ４０２により選択されたオフセットベクトル（例えば、Ｖ０またはＶｎ−１）は、第１空間勾配画素差分算出部５０１、第２空間勾配画素差分算出部５０２、および時間方向画素差分算出部５０３に入力される。【０３０１】
第１空間勾配画素差分算出部５０１は、セレクタ４０２により選択されたオフセットベクトルを入力すると、プリフィルタ１０２−１を介して入力されるフレームｔ＋１における、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５０４に出力する。【０３０２】
第２空間勾配画素差分算出部５０２は、セレクタ４０２により選択されたオフセットベクトルを入力すると、プリフィルタ１０２−２を介して入力されるフレームｔにおける画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５０４に出力する。【０３０３】
時間方向画素差分算出部５０３は、セレクタ４０２により選択されたオフセットベクトルを入力すると、プリフィルタ１０２−１およびプリフィルタ１０２−２を介して入力されるフレームｔ＋１およびフレームｔ間の、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の時間方向の画素差分Δｔを算出し、算出されたフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを、演算判定部５０４に出力する。【０３０４】
演算判定部５０４は、第１空間勾配画素差分算出部５０１からのフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、第２空間勾配画素差分算出部５０２からのフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、時間方向画素差分算出部５０３からのフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを用いて、所定の論理演算を行い、その所定の論理演算に基づいて、演算ブロック内の画素が、動きベクトルの検出（すなわち、後段の勾配法演算部４０４の演算）に有効であるか否かを判断する。なお、演算判定部５０４の有効画素判定方法である、所定の論理演算の詳細は、図４１を参照して後述する。【０３０５】
また、演算判定部５０４は、動きベクトルの検出に有効であると判断した場合、有効画素数カウンタ４１３の有効画素の数を１つカウントする。有効画素数カウンタ４１３は、演算ブロック毎に演算判定部５０４により動きベクトルの検出に有効であると判断された画素分の値をカウントする。【０３０６】
図３９は、勾配法演算部４０４の詳細な構成を示すブロック図である。なお、図３８の有効画素判定部４０３は、図２５の勾配法演算部４０４の他の構成例を示すものであり、図３９において、図２７における場合と対応する部分には対応する符号を付してあり、その説明は繰り返しになるので省略する。【０３０７】
図３９の例において、勾配法演算部４０４は、第１空間勾配画素差分算出部５２１、第２空間勾配画素差分算出部５２２、時間方向画素差分算出部５２３、演算判定部５２４、勾配積算部４２４、およびベクトル算出部４２５により構成される。【０３０８】
プリフィルタ１０２−１を介して入力される時刻ｔ＋１の画像のフレームｔ＋１は、第１空間勾配画素差分算出部５２１および時間方向画素差分算出部５２３に入力される。プリフィルタ１０２−２を介して入力される時刻ｔの画像のフレームｔは、第２空間勾配画素差分算出部５２２および時間方向画素差分算出部５２３に入力される。また、セレクタ４０２により選択されたオフセットベクトルは、第１空間勾配画素差分算出部５２１、第２空間勾配画素差分算出部５２２、時間方向画素差分算出部５２３および演算判定部５２４に入力される。有効画素判定部４０３から入力されるフラグは、演算判定部５２４に入力される。【０３０９】
第１空間勾配画素差分算出部５２１は、セレクタ４０２により選択されたオフセットベクトルを入力すると、プリフィルタ１０２−１を介して入力されるフレームｔ＋１における、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５２４に出力する。【０３１０】
第２空間勾配画素差分算出部５２２は、セレクタ４０２により選択されたオフセットベクトルを入力すると、プリフィルタ１０２−２を介して入力されるフレームｔにおける画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５２４に出力する。【０３１１】
時間方向画素差分算出部５２３は、セレクタ４０２により選択されたオフセットベクトルを入力すると、プリフィルタ１０２−１およびプリフィルタ１０２−２を介して入力されるフレームｔ＋１およびフレームｔ間の、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の時間方向の画素差分Δｔを算出し、算出されたフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを、演算判定部５２４に出力する。【０３１２】
演算判定部５２４は、有効画素判定部４０３から入力されるフラグに基づいて、勾配積算部４２４およびベクトル算出部４２５を制御する。すなわち、演算判定部５２４は、フラグが１を示す(flg＝１)場合には、第１空間勾配画素差分算出部５２１からのフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、第２空間勾配画素差分算出部５２２からのフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、時間方向画素差分算出部５２３からのフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを用いて、演算判定部５０４と同様の所定の論理演算を行い、その所定の論理演算に基づいて、演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断し、動きベクトルの検出に有効であると判断された画素を、勾配法の演算対象とし、その画素の水平方向の画素差分Δｘ、垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔを、勾配積算部４２４に供給する。また、演算判定部５２４は、演算ブロック内の画素が、動きベクトルの検出に有効ではないと判断した場合、勾配積算部４２４に、その画素の処理を禁止させる。【０３１３】
一方、フラグが０を示す(flg＝０)場合には、演算判定部５２４は、所定の論理演算を実行せず、演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断しないので、勾配積算部４２４も、積算処理を実行せず、処理は打ち切られる。なお、このとき、演算判定部５２４は、ベクトル算出部４２５を制御し、動きベクトルＶを０ベクトルに設定させる。また、演算判定部５２４は、演算ブロック内の画素の処理が終了した場合に、オフセットベクトルを、ベクトル算出部４２５に出力し、ベクトル算出部４２５を制御し、検出対象ブロックの動きベクトルを算出させる。【０３１４】
勾配積算部４２４は、演算判定部５２４より供給された時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、および、垂直方向の画素差分Δｙを積算し、積算された勾配の値を、ベクトル算出部４２５に出力する。【０３１５】
ベクトル算出部４２５は、演算判定部５２４からオフセットベクトルが入力されると、勾配積算部４２４により積算された勾配の値、および上述した式（９）の最小自乗和を用いて、動きベクトルｖｎを算出する。また、ベクトル算出部４２５は、演算判定部５２４からのオフセットベクトルを、算出した動きベクトルｖｎに加算して、動きベクトルＶｎを求め、ベクトル評価部１０４および遅延部４０５に出力する。【０３１６】
図４０は、動きベクトルの検出対象となる検出対象ブロックと、その検出対象ブロックに対応する、勾配法演算の対象となる演算ブロックの他の例を示している。なお、図４０の例においては、フレームｔが示されており、フレームｔ上の丸は、画素を表している。【０３１７】
図４０の例の場合、フレームｔ上において、４画素×４画素からなる検出対象ブロックＫ１乃至Ｋ３と、検出対象ブロックＫ１乃至Ｋ３をそれぞれ中心とした８画素×８画素の各演算ブロックＥ１乃至Ｅ３が示されている。なお、各演算ブロックＥ１乃至Ｅ３は、それぞれ隣接する演算ブロックと、構成する画素半分がオーバーラップしている。【０３１８】
ベクトル検出部５２においては、フレーム上の左上の検出対象ブロックからラスタスキャン順に、動きベクトルの検出が実行される。したがって、フレームｔ上において、検出対象ブロックＫ１、検出対象ブロックＫ２、および、検出対象ブロックＫ３が順々に、動きベクトルの検出対象ブロックとなる。そして、これに対応して、勾配法の演算ブロックは、演算ブロックＥ１、演算ブロックＥ２、および、演算ブロックＥ３となる。すなわち、図４０の例の検出対象ブロックと演算ブロックの場合には、各演算ブロックＥ１乃至Ｅ３は、隣の演算ブロックと、構成される画素半分がオーバーラップすることになる。【０３１９】
なお、以降においては、このように構成される検出対象ブロックと演算ブロックを用いて、図３８の有効画素判定部４０３および図３９の勾配法演算部４０４を説明するが、これらの構成の検出対象ブロックおよび演算ブロックには限定されず、図３８の有効画素判定部４０３および図３９の勾配法演算部４０４において、図２８を参照して上述した検出対象ブロックおよび演算ブロックを用いるようにしてもよいし、その他の検出対象ブロックおよび演算ブロックを用いるようにしてもよい。【０３２０】
次に、図４１を参照して、演算判定部５０４の有効画素判定方法を説明する。図４１の例においては、矢印Ｔは、図中、左手前の時刻ｔのフレームｔから、右奥の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。【０３２１】
フレームｔ上においては、動きベクトルの検出の対象となる４画素×４画素からなる検出対象ブロックＫｔ（図中黒丸）と、検出対象ブロックＫｔを中心とした（検出対象ブロックの周囲の）８画素×８画素からなる演算ブロックＥｔが示されている。一方、フレームｔ＋１上においては、検出対象ブロックＫｔに対応する４画素×４画素からなる検出対象ブロックＫｔ＋１（図中黒丸）と、演算ブロックＥｔに対応する８画素×８画素からなる演算ブロックＥｔ＋１が示されている。なお、フレームｔ＋１上の点線のブロックは、検出対象ブロックＫｔと同位相のブロックを表しており、フレームｔ＋１上において、動きベクトルＶ（Ｖｘ，Ｖｙ）が初期ベクトルとして与えられた分だけ、点線のブロックからシフト（移動）された位置の演算ブロックＥｔ＋１が勾配法の演算の対象として用いられる。【０３２２】
ここで、フレームｔ上の演算ブロックＥｔの画素ｐ１とフレームｔ＋１上の演算ブロックＥｔ＋１間の同位置の画素ｐ２における時間方向の画素差分（フレーム差分）をΔｔとし、このときの画枠をｗとすると、演算ブロックＥｔの画素ｐ１の水平方向の画素差分Δｘ１、垂直方向の画素差分Δｙ１、および時間方向の画素差分Δｔは、式（１２）乃至式（１４）で求められる。【０３２３】
Δｘ１  ＝  Ｙｔ（ｋ＋１）−Ｙｔ（ｋ）                          ・・・（１２）
Δｙ１  ＝  Ｙｔ（ｋ＋ｗ）−Ｙｔ（ｋ）                          ・・・（１３）
Δｔ    ＝  Ｙｔ＋１（ｋ）−Ｙｔ（ｋ）                          ・・・（１４）【０３２４】
なお、Ｙｔ＋１は、時刻ｔ＋１における画素値を表し、Ｙｔは、時刻ｔにおける画素値を表し、ｋ＋１およびｋは、アドレス（位置）を表す。また、画素ｐ１に対応する演算ブロックＥｔ＋１の画素ｐ２の水平方向の画素差分Δｘ２、および垂直方向の画素差分Δｙ２も同様に求められる。【０３２５】
演算判定部５０４は、これらの値を用いて、論理演算を行い、その結果に基づいて、有効画素判定を行う。すなわち、演算判定部５０４は、演算ブロックＥｔの画素のうち、次の３つの条件式（１５）乃至（１７）のいずれかを満たす（すなわち、式（１８）を満たす）か否かを求めることにより、その画素が動きベクトル検出に有効な画素であるか否かを判定する。【０３２６】
Δｘ１≠０  ＆＆  Δｘ２≠０  ＆＆
｜Δｘ１｜＞ｔｈ１・｜Δｙ１｜  ＆＆  ｜Δｔ／Δｘ１−Δｔ／Δｘ２｜＜ｔｈ２
・・・（１５）【０３２７】
Δｙ１≠０  ＆＆  Δｙ２≠０  ＆＆
｜Δｙ１｜＞ｔｈ１・｜Δｘ１｜  ＆＆  ｜Δｔ／Δｙ１−Δｔ／Δｙ２｜＜ｔｈ２
・・・（１６）【０３２８】
Δｘ１≠０  ＆＆  Δｘ２≠０  ＆＆  Δｙ１≠０  ＆＆  Δｙ２≠０  ＆＆
｜Δｔ／Δｘ１−Δｔ／Δｘ２｜＜ｔｈ２  ＆＆
｜Δｔ／Δｙ１−Δｔ／Δｙ２｜＜ｔｈ２
・・・（１７）【０３２９】
式（１５）‖式（１６）‖式（１７）                              ・・・（１８）【０３３０】
ここで、‖は、論理和、＆＆は、論理積、・は、乗算、ｔｈ１およびｔｈ２は、それぞれ所定のしきい値を表している。なお、ｔｈ１は、例えば、１，１．５，または２とされ、ｔｈ２は、例えば、４とされる。【０３３１】
したがって、式（１５）において、Δｘ１≠０  ＆＆  Δｘ２≠０は、画素ｐ１および画素ｐ２の水平勾配が平坦ではない（水平方向に勾配を有する）ことを表す。｜Δｘ１｜＞ｔｈ１・｜Δｙ１｜は、水平勾配が垂直勾配よりもある程度大きいことを表す。｜Δｔ／Δｘ１−Δｔ／Δｘ２｜＜ｔｈ２は、画素単位の勾配法による（正規化した場合の）水平方向の動きが、所定のしきい値ｔｈ２より小さい、すなわち、水平方向の動きに、類似性があることを表す。以上により、式（１５）は、水平方向に着目した条件を表しており、これら全てを満たした画素は、水平方向の動きに類似性があると判断され、後段の勾配法に用いて有効であると判定される。【０３３２】
また、式（１６）において、Δｙ１≠０  ＆＆  Δｙ２≠０は、垂直勾配が平坦ではない（垂直方向に勾配を有する）ことを表す。｜Δｙ１｜＞ｔｈ１・｜Δｘ１｜は、垂直勾配が水平勾配よりもある程度大きいことを表す。｜Δｔ／Δｙ１−Δｔ／Δｙ２｜＜ｔｈ２は、画素単位の勾配法による（正規化した場合の）垂直方向の動きに類似性があることを表す。以上により、式（１６）は、垂直方向に着目した条件を表しており、これら全てを満たした画素は、垂直方向の動きに類似性があると判断され、後段の勾配法に用いて有効であると判定される。【０３３３】
同様に、式（１７）において、Δｘ１≠０  ＆＆  Δｘ２≠０  ＆＆  Δｙ１≠０  ＆＆  Δｙ２≠０は、垂直および水平勾配が平坦ではない（垂直および水平方向に勾配を有する）ことを表す。｜Δｔ／Δｘ１−Δｔ／Δｘ２｜＜ｔｈ２  ＆＆  ｜Δｔ／Δｙ１−Δｔ／Δｙ２｜＜ｔｈ２は、画素単位の勾配法による（正規化した場合の）垂直方向および水平方向の動きに類似性があることを表す。以上により、式（１７）は、式（１５）および（１６）を満たしていないものに対しての水平および垂直の両方向（斜め方向）に着目した条件を表しており、これら全てを満たした画素は、水平および垂直方向の動きに類似性があると判断され、後段の勾配法に用いて有効であると判定される。【０３３４】
すなわち、演算判定部５０４は、式（１８）を用いて、演算ブロックＥｔ内の各画素について、水平方向、垂直方向、または斜め方向のいずれかの動きに対して類似性があるか否かを判断し、水平方向、垂直方向、または斜め方向のどの動きに対しても類似性がないと判断した画素を、図４２に示されるように、勾配法演算の対象から外す。【０３３５】
図４２は、演算ブロックにおける画素の構成例を示している。図４２の例においては、４画素×４画素からなる検出対象ブロックＫを中心とする８画素×８画素（６４画素）からなる演算ブロックＥ内において、上述した式（１８）を満たし、有効画素として判定された画素（図中白丸）と、式（１８）を満たさず、勾配法の演算対象とされない画素（図中黒丸）が示されている。【０３３６】
したがって、勾配法演算部４０４は、演算ブロックＥ内において、有効画素として判定された画素のみ（３４画素）を用いて、勾配法演算を行う。これにより、水平方向、垂直方向、または斜め方向のいずれかの動きに対して類似性がある画素のみで、勾配法演算が実行されるため、異なる動きが混入することが抑制され、より安定した勾配法演算が実行され、その結果、確からしい動きベクトルが検出される。【０３３７】
しかしながら、演算ブロック内に有効画素として判定された画素が少ない場合には、上述したように、勾配法演算が不安定になってしまう場合がある。そこで、勾配法継続判定部４１４は、有効画素として判定された画素の数が、５０％であるか（全６４画素中３２画素より多いか）否かを判断し、有効画素として判定された画素が５０％以下の場合は、検出対象ブロックＫのブロック単位処理での演算は不安定であるとし、図３３を参照して上述したように、検出対象ブロックＫ内の画素毎の演算に切り替えて処理を行ったり、あるいは、演算を打ち切る処理を行う。なお、有効画素カウンタのしきい値を５０％としたが、この値は、もちろん他の値であってもよい。【０３３８】
これにより、類似性があまりなく、異なる動きの画素の混在を少しでも防ぐことができるので、安定した勾配法演算を行うことができる。この結果、勾配法演算により求められる動きベクトルの確からしさが向上し、動きベクトル検出の精度が向上する。【０３３９】
なお、演算判定部５０４における有効画素判定方法としては、次の条件式（１９）および（２０）を用いることもできる。すなわち、演算判定部５０４は、演算ブロックＥｔの画素のうち、次の２つの条件式（１９）および（２０）の両方を満たす（すなわち、式（２１）を満たす）か否かを求めることにより、その画素が有効画素であるか否かを判定するようにしてもよい。【０３４０】
Δｘ１≠０  ＆＆  Δｘ２≠０  ＆＆  ｜Δｔ／Δｘ１−Δｔ／Δｘ２｜＜ｔｈ３
・・・（１９）【０３４１】
Δｙ１≠０  ＆＆  Δｙ２≠０  ＆＆  ｜Δｔ／Δｙ１−Δｔ／Δｙ２｜＜ｔｈ３
・・・（２０）【０３４２】
式（１９）  ＆＆  式（２０）                                    ・・・（２１）【０３４３】
ここで、＆＆は、論理積、ｔｈ３は、所定のしきい値を表している。なお、ｔｈ３≠ｔｈ２とされる。例えば、ｔｈ３は、１６とされるが、ｔｈ２より小さい値であってもよい。【０３４４】
すなわち、式（２１）の場合は、水平方向および垂直方向の両方の動きに対して類似性が判断される。したがって、演算判定部５０４は、式（１８）を用いて、演算ブロックＥｔ内の各画素について、水平方向および垂直方向の両方の動きに対して類似性があるか否かを判断し、水平方向および垂直方向の少なくとも一方の動きに対して類似性がないと判断した画素を、勾配法演算の対象から外す。【０３４５】
次に、図４３のフローチャートを参照して、図３８の有効画素判定部４０３の有効画素判定処理の詳細を説明する。なお、図４３は、図３４ＡのステップＳ４０３の有効画素判定処理の例を示している。【０３４６】
セレクタ４０２からオフセットベクトルが入力されると、時間方向画素差分算出部５０３は、ステップＳ５１１において、演算判定部５０４を制御し、有効画素数カウンタ４１３をリセットさせ、ステップＳ５１２に進み、ブロック単位の演算ブロックにおいて、画素を選択し、ステップＳ５１３に進む。なお、画素は、演算ブロックの左上の画素からラスタスキャン順に選択される。【０３４７】
時間方向画素差分算出部５０３は、ステップＳ５１３において、プリフィルタ１０２−１およびプリフィルタ１０２−２を介して入力されるフレームｔ＋１およびフレームｔ間の、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の時間方向の画素差分Δｔを算出し、算出されたフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを、演算判定部５０４に出力し、ステップＳ５１４に進む。【０３４８】
第１空間勾配画素差分算出部５０１は、セレクタ４０２により選択されたオフセットベクトルを入力すると、ステップＳ５１４において、プリフィルタ１０２−１を介して入力されるフレームｔ＋１における、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５０４に出力し、ステップＳ５１５に進む。【０３４９】
第２空間勾配画素差分算出部５０２は、セレクタ４０２により選択されたオフセットベクトルを入力すると、ステップＳ５１５において、プリフィルタ１０２−２を介して入力されるフレームｔにおける画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５０４に出力し、ステップＳ５１６に進む。【０３５０】
演算判定部５０４は、ステップＳ５１６において、第１空間勾配画素差分算出部５０１からのフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、第２空間勾配画素差分算出部５０２からのフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、時間方向画素差分算出部５０３からのフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを用いて、式（１８）の論理演算を行い、ステップＳ５１７乃至Ｓ５１９において、その所定の論理演算に基づいて、演算ブロック内の画素が、動きベクトルの検出（すなわち、後段の勾配法演算部４０４の演算）に有効であるか否かを判断する。【０３５１】
すなわち、演算判定部５０４は、ステップＳ５１６において、水平方向の着目条件である式（１５）、垂直方向の着目条件である式（１６）、および、水平垂直方向の着目条件である式（１７）を演算し、ステップＳ５１７において、演算ブロック内の画素が水平方向の着目条件である式（１５）を満たしているか否かを判断し、演算ブロック内の画素が水平方向の着目条件を満たしていると判断した場合、ステップＳ５２０に進み、有効画素数カウンタ４１３の有効画素の数を１つカウントし、ステップＳ５２１に進む。【０３５２】
演算判定部５０４は、ステップＳ５１７において、演算ブロック内の画素が水平方向の着目条件を満たしていないと判断した場合、ステップＳ５１８に進み、演算ブロック内の画素が垂直方向の着目条件である式（１６）を満たしているか否かを判断し、演算ブロック内の画素が垂直方向の着目条件を満たしていると判断した場合には、ステップＳ５２０に進み、有効画素数カウンタ４１３の有効画素の数を１つカウントし、ステップＳ５２１に進む。【０３５３】
演算判定部５０４は、ステップＳ５１８において、演算ブロック内の画素が垂直方向の着目条件を満たしていないと判断した場合、ステップＳ５１９に進み、演算ブロック内の画素が水平垂直方向（斜め方向）の着目条件である式（１７）を満たしているか否かを判断し、演算ブロック内の画素が水平垂直方向の着目条件を満たしていると判断した場合には、ステップＳ５２０に進み、有効画素数カウンタ４１３の有効画素の数を１つカウントし、ステップＳ５２１に進む。演算判定部５０４は、ステップＳ５１９において、演算ブロック内の画素が水平垂直方向の着目条件を満たしていないと判断した場合、ステップＳ５２０の処理をスキップし、ステップＳ５２１に進む。すなわち、この画素は、水平方向の動き、垂直方向の動き、および、水平垂直方向の動きのいずれにも類似性がないと判断され、後段の勾配法演算に有効ではない画素として、除外される。【０３５４】
時間方向画素差分算出部５０３は、ステップＳ５２０において、演算ブロック内のすべての画素の処理が終了したか否かを判断し、演算ブロック内のすべての画素の処理が終了していないと判断した場合、ステップＳ５１２に戻り、それ以降の処理を繰り返す。一方、時間方向画素差分算出部５０３は、ステップＳ５２０において、演算ブロック内のすべての画素の処理が終了したと判断した場合、有効画素判定処理を終了し、図３４ＡのステップＳ４０４に戻る。【０３５５】
以上の処理により、有効画素カウンタ４１３には、演算ブロック内において、水平方向着目条件、垂直方向着目条件、および、水平垂直方向着目条件の少なくとも１つを満たし、後段の勾配法演算において有効であると判断された画素の数がカウントされている。したがって、勾配法継続判断部４１４は、図３４ＡのステップＳ４０４において、この有効画素カウンタ４１３の画素の数を参照することにより、ブロック単位の勾配法演算を行うか、画素単位の勾配法演算を行うかを判断することができる。【０３５６】
次に、図４４のフローチャートを参照して、図３９の勾配法演算部４０４の勾配法演算処理の詳細を説明する。なお、図４４は、図３４ＡのステップＳ４０５のブロック単位の勾配法演算処理の例を示している。【０３５７】
セレクタ４０２からオフセットベクトルが入力されると、時間方向画素差分算出部５２３は、ステップＳ５５１において、ブロック単位の演算ブロックにおいて、画素を選択し、ステップＳ５５２に進む。なお、画素は、演算ブロックの左上の画素からラスタスキャン順に選択される。【０３５８】
時間方向画素差分算出部５２３は、ステップＳ５５２において、プリフィルタ１０２−１およびプリフィルタ１０２−２を介して入力されるフレームｔ＋１およびフレームｔ間の、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の時間方向の画素差分Δｔを算出し、算出されたフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを、演算判定部５２４に出力し、ステップＳ５５３に進む。【０３５９】
第１空間勾配画素差分算出部５２１は、セレクタ４０２により選択されたオフセットベクトルを入力すると、ステップＳ５５３において、プリフィルタ１０２−１を介して入力されるフレームｔ＋１における、オフセットベクトルをオフセットして計算した画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５２４に出力し、ステップＳ５５４に進む。【０３６０】
第２空間勾配画素差分算出部５２２は、セレクタ４０２により選択されたオフセットベクトルを入力すると、ステップＳ５５４において、プリフィルタ１０２−２を介して入力されるフレームｔにおける画素を中心とした、各単位処理モードの演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを算出し、算出されたフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙを、演算判定部５２４に出力し、ステップＳ５５５に進む。【０３６１】
演算判定部５２４は、ステップＳ５５５において、第１空間勾配画素差分算出部５２１からのフレームｔ＋１における演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、第２空間勾配画素差分算出部５２２からのフレームｔにおける演算ブロック内の画素の水平方向の画素差分Δｘおよび垂直方向の画素差分Δｙ、並びに、時間方向画素差分算出部５２３からのフレームｔ＋１およびフレームｔ間の演算ブロック内の画素の時間方向の画素差分Δｔを用いて、式（１８）の論理演算を行い、ステップＳ５５６乃至Ｓ５５８において、その所定の論理演算に基づいて、演算ブロック内の画素が、動きベクトルの検出に有効であるか否かを判断する。【０３６２】
すなわち、演算判定部５２４は、ステップＳ５５５において、水平方向の着目条件である式（１５）、垂直方向の着目条件である式（１６）、および、水平垂直方向の着目条件である式（１７）を演算し、ステップＳ５５６において、演算ブロック内の画素が水平方向の着目条件である式（１５）を満たしているか否かを判断し、演算ブロック内の画素が水平方向の着目条件を満たしていると判断した場合、動きベクトルの検出に有効であると判断された画素を、勾配法の演算対象とし、その画素の水平方向の画素差分Δｘ、垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔを、勾配積算部４２４に供給し、ステップＳ５５９に進む。【０３６３】
演算判定部５２４は、ステップＳ５５６において、演算ブロック内の画素が水平方向の着目条件を満たしていないと判断した場合、ステップＳ５５７に進み、演算ブロック内の画素が垂直方向の着目条件である式（１６）を満たしているか否かを判断し、演算ブロック内の画素が垂直方向の着目条件を満たしていると判断した場合には、動きベクトルの検出に有効であると判断された画素を、勾配法の演算対象とし、その画素の水平方向の画素差分Δｘ、垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔを、勾配積算部４２４に供給し、ステップＳ５５９に進む。【０３６４】
演算判定部５２４は、ステップＳ５５７において、演算ブロック内の画素が垂直方向の着目条件を満たしていないと判断した場合、ステップＳ５５８に進み、演算ブロック内の画素が水平垂直方向（斜め方向）の着目条件である式（１７）を満たしているか否かを判断し、演算ブロック内の画素が水平垂直方向の着目条件を満たしていると判断した場合には、動きベクトルの検出に有効であると判断された画素を、勾配法の演算対象とし、その画素の水平方向の画素差分Δｘ、垂直方向の画素差分Δｙ、および時間方向の画素差分Δｔを、勾配積算部４２４に供給し、ステップＳ５５９に進む。演算判定部５２４は、ステップＳ５５８において、演算ブロック内の画素が水平垂直方向の着目条件を満たしていないと判断した場合、ステップＳ５５９の処理をスキップし、ステップＳ５６０に進む。すなわち、この画素は、水平方向の動き、垂直方向の動き、および、水平垂直方向の動きのいずれにも類似性がないと判断され、勾配法演算に有効ではない画素として、除外される。【０３６５】
勾配積算部４２４は、ステップＳ５５９において、演算判定部５２４より供給された時間方向の画素差分Δｔ、水平垂直画素差分算出部４２３により算出された水平方向の画素差分Δｘ、および、垂直方向の画素差分Δｙを積算し、積算された勾配の値を、ベクトル算出部４２５に出力し、ステップＳ５６０に進む。【０３６６】
演算判定部５２４は、ステップＳ５６０において、演算ブロック内のすべての画素の処理が終了したか否かを判断し、演算ブロック内のすべての画素の処理が終了していないと判断した場合、ステップＳ５５１に戻り、それ以降の処理を繰り返す。一方、演算判定部５２４は、ステップＳ５６０において、演算ブロック内のすべての画素の処理が終了したと判断した場合、ベクトル算出部４２５にオフセットベクトルを出力し、ステップＳ５６１に進む。ベクトル算出部４２５は、ステップＳ５６１において、演算判定部５２４からオフセットベクトルが入力されると、勾配積算部４２４からの勾配の積算結果と、上述した式（９）の最小自乗和を用いて、動きベクトルｖｎを算出し、ステップＳ５６２に進み、演算判定部５２４からのオフセットベクトルに、算出された動きベクトルｖｎを加算した、動きベクトルＶｎを求めて、求められた動きベクトルＶｎをベクトル評価部１０４に出力し、勾配法演算処理を終了し、図３４ＡのステップＳ４０６に戻る。【０３６７】
以上のように、時間方向の画素差分Δｔ、水平方向の画素差分Δｘ、垂直方向の画素差分Δｙを用いて、演算ブロック内の画素の水平方向に着目した勾配の類似性、垂直方向に着目した勾配の類似性、および、水平方向および垂直方向に着目した勾配の類似性が所定のしきい値よりも小さいか否かを判断し、どの方向の勾配についても類似性が所定のしきい値よりも大きい（すなわち、動きの類似性があまりない）と判断された場合には、その画素は、動きの乱れを発生させる恐れがあるとして、動きベクトルを検出する際の勾配法の演算から除外するようにしたので、より安定した勾配法演算が実行され、その結果、確からしい動きベクトルが検出され、これにより、動きベクトル検出の精度が向上される。【０３６８】
以上のように、演算ブロック内の画素の動きが勾配法の演算において有効であるか否かを求め、有効であると判断された画素のみ勾配法演算に用いるようにすることで、異なる動きを有する画素を演算対象から除くことができ、勾配法演算により求められる動きベクトルの確からしさが向上し、動きベクトル検出の精度が向上する。【０３６９】
また、勾配法演算に用いられない画素数が、所定のしきい値よりも多かった場合に、適応的に、勾配法演算の処理を制御するようにしたので、特に、オブジェクトの動きの境界などにおいて、さらに、動きベクトル検出の精度を向上させることができ、その結果、求められる動きベクトルもより確からしいものとすることができる。【０３７０】
なお、上記説明においては、有効画素判定部４０３および勾配法演算部４０４に、有効画素を判定する時間画素差分算出部および素差分判定部、もしくは、第１空間勾配画素差分算出部、第２空間勾配画素差分算出部、時間方向画素差分算出部、および演算判定部を設けるようにしたが、それらをひとつにまとめて設置するようにしてもよい。【０３７１】
また、上記説明においては、有効画素判定部４０３の有効画素判定を、演算ブロック内の画素の時間方向の差分を求めることにより判定する場合、または、演算ブロック内の画素の水平方向、垂直方向、または斜め方向の画素差分を求めることにより判定する場合を説明したが、他の方法を用いて、演算ブロック内の画素が勾配法演算に有効な画素であるか否かを判定するようにしてもよい。【０３７２】
次に、ベクトル割付部５４の構成の詳細について説明する。【０３７３】
図４５は、ベクトル割付部５４の構成を示すブロック図である。図４５に構成を示すベクトル割付部５４は、２４Ｐ信号の入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、フレームｔ上において検出された動きベクトルを、割付ベクトルメモリ５５上の、補間する６０Ｐ信号の内挿フレーム上の画素に割り付ける処理を行う。【０３７４】
図４５の例において、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１は、画素情報演算部７０１、評価値演算部７０２、および着目画素差分演算部７０３に入力される。【０３７５】
画素情報演算部７０１は、検出ベクトルメモリ５３のフレームｔ上の画素に検出された動きベクトルを、左上の画素からラスタスキャン順に取得し、取得した動きベクトルを、次の時刻のフレームｔ＋１方向に延ばし、延ばした動きベクトルと、内挿フレームとの交点を算出する。そして、画素情報演算部７０１は、算出された動きベクトルと内挿フレームとの交点から、内挿フレーム上において、その動きベクトルの割付対象となる画素（以下、割付対象画素と称する）を設定し、動きベクトルおよび割付対象画素の位置の情報を、ベクトル選択部７０５に出力する。また、画像情報演算部７０１は、割付対象画素と、動きベクトルで対応付けられるフレームｔの位置Ｐおよびフレームｔ＋１上の位置Ｑを算出し、算出されたフレームｔおよびフレームｔ＋１上の位置情報を、評価値演算部７０２、および着目画素差分演算部７０３に出力する。【０３７６】
評価値演算部７０２は、画素情報演算部７０１から、割付対象画素と、動きベクトルで対応付けられるフレームｔおよびフレームｔ＋１上の位置情報を入力すると、フレームｔの位置Ｐおよびフレームｔ＋１の位置Ｑの評価値ＤＦＤを演算するため、位置Ｐおよび位置Ｑを中心とした一定範囲のＤＦＤ演算範囲（ｍ×ｎ）をそれぞれ設定し、それらのＤＦＤ演算範囲が画枠内にあるか否かを判断する。評価値演算部７０２は、ＤＦＤ演算範囲が画枠内にあると判断した場合、このＤＦＤ演算範囲を用いて演算することにより、動きベクトルに対する割付対象画素の評価値ＤＦＤを求め、求めた評価値ＤＦＤを、ベクトル評価部７０４に出力する。【０３７７】
着目画素差分演算部７０３は、画素情報演算部７０１から、割付対象画素と、動きベクトルで対応付けられるフレームｔおよびフレームｔ＋１上の位置情報を入力すると、フレームｔの位置Ｐおよびフレームｔ＋１の位置Ｑを用いて、割付対象画素に対する輝度差分絶対値を求め、求めた輝度差分絶対値を、ベクトル評価部７０４に出力する。【０３７８】
ベクトル評価部７０４は、画素差分判断部７１１および評価値判断部７１２により構成される。画素差分判断部７１１は、着目画素差分演算部７０３から入力された割付対象画素に対する輝度差分絶対値が所定のしきい値よりも小さいか否かを判断する。評価値判断部７１２は、画素差分判断部７１１により着目画素差分演算部７０３から入力された割付対象画素に対する輝度差分絶対値が所定のしきい値よりも小さいと判断された場合に、評価値演算部７０２から入力された割付対象画素の評価値ＤＦＤが、ベクトル選択部７０５が有するＤＦＤテーブルの最小評価値より小さいか否かを判断する。そして、評価値判断部７１２は、割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルの最小評価値より小さいと判断した場合に、割付対象画素が対応する動きベクトルの信頼度が高いと判断し、ベクトル選択部７０５に、割付対象画素の評価値ＤＦＤを出力する。【０３７９】
ベクトル選択部７０５は、内挿フレーム上の各画素における最小評価値を保持するＤＦＤテーブルを有しており、内挿フレーム上の各画素に対して、０ベクトルを割り付けた場合の評価値ＤＦＤ０を、内挿フレーム上の各画素における最小評価値としてＤＦＤテーブルに予め保持している。ベクトル選択部７０５は、ベクトル評価部７０４からの割付対象画素の評価値ＤＦＤを入力すると、画素情報演算部７０１からの割付対象画素の位置の情報に基づいて、割付フラグメモリ５６のフラグを１(true)に書き換え、割付対象画素のＤＦＤテーブルの最小評価値を、その割付対象画素の評価値ＤＦＤに書き換える。また、ベクトル選択部７０５は、画素情報演算部７０１からの割付対象画素の位置の情報に基づいて、割付ベクトルメモリ５５の割付対象画素に、画素情報演算部７０１からの動きベクトルを割り付ける。【０３８０】
次に、動きベクトルの画素以下精度を説明する。上述した式（１）で表されるＤＦＤ評価の演算においては、フレームｔの画素位置ｐをベクトルｖ量分ずらした先のフレームｔ＋１上の位相ｐ＋ｖは、実際には、２４ｐ信号のフレームｔ＋１上の画素位置と一致しない場合が多く、その場合の輝度値は定義されていない。したがって、画素以下精度を有する動きベクトルｖに対する評価値ＤＦＤの演算を行うためには、画素以下の位相における輝度値を何らかの方法で生成しなければならない。【０３８１】
これに対応して、フレームｔの画素位置ｐをベクトルｖ量分ずらした先のフレームｔ＋１上の位相ｐ＋ｖに最も近い画素の輝度値をそのまま用いる方法がある。しかしながら、この方法では、評価する動きベクトルの画素以下成分を丸めてしまうため、動きベクトルの画素以下成分を捨てていることになり、これにより求められた評価値ＤＦＤの信頼度は、低くなってしまう。【０３８２】
そこで、本発明においては、周辺４画素の輝度値による４点補間処理を用いている。図４６は、本発明の４点補間処理の概念を示す図である。図４６においては、矢印Ｘが、フレームｔ＋１における水平方向を示しており、矢印Ｙが、フレームｔ＋１における垂直方向を示している。このフレームｔ＋１において、白丸は、フレームｔ＋１上の画素位置を表しており、黒点は、画素以下の位置を表している。また、フレームｔ＋１上における最左上の黒点ｐ＋ｖとその周辺４画素は、ウインドウＥに拡大して示されている。ウインドウＥにおいて、白丸内のアルファベットは、周辺４画素の輝度値を示している。【０３８３】
このフレームｔ＋１における最左上の黒点ｐ＋ｖが、フレームｔの画素位置ｐをベクトルｖ量分ずらした先の位相ｐ＋ｖとすると、位相ｐ＋ｖの輝度値Ｆt+1（ｐ＋ｖ）は、位相ｐ＋ｖの水平方向の画素以下成分αおよび垂直方向の画素以下成分β、並びに、位相ｐ＋ｖの周辺４画素の輝度値Ｌ０乃至Ｌ４を用いて、周辺４画素の距離の逆比の和で求められる。すなわち、輝度値Ｆt+1（ｐ＋ｖ）は、次の式（２２）で表される。【０３８４】
Ｆt+1（ｐ＋ｖ）  ＝  （１―α）（１−β）Ｌ０＋α（１−β）Ｌ１
＋（１−α）βＬ２＋αβＬ３  ・・・（２２）【０３８５】
以上のように、４点補間処理により求められる輝度値Ｆt+1（ｐ＋ｖ）を用いて、ＤＦＤ評価の演算を行うことにより、ハードウェア実装上のコストを引き上げることなく、評価値ＤＦＤの信頼度の低下を抑制することができる。なお、以下においては、ベクトル割付の際の評価値ＤＦＤや輝度差分絶対値などの演算において、この４点補間を適用した例を説明するが、もちろん、上述した初期ベクトル選択処理やベクトル検出処理、または、後述する割付補償処理などのベクトルを評価する場合の評価値ＤＦＤの演算においても、この４点補間は適用される。【０３８６】
次に、ベクトル割付処理の概念を説明する。例えば、２４Ｐ信号上でオブジェクトが速度ｖで動いており、任意の２フレーム間で、このオブジェクトの動きについて等速仮定が成り立つと仮定した場合に、２４Ｐ信号のフレーム間に、新しくフレームを内挿することを考える。この場合、２４Ｐ信号のオブジェクトから動きベクトルｖを延ばすと、動きベクトルｖと内挿フレームとの交点は、同じオブジェクトであり、同じ速度ｖを有する。【０３８７】
したがって、ベクトル検出部５３で検出された２４Ｐ信号のフレーム（以下、内挿フレームに対して、元フレームとも称する）の動きベクトルを、その動きベクトルと、内挿する６０Ｐ信号の内挿フレーム上との交点に割り付けることで、内挿フレーム上の各画素の動きを求めることができる。また、逆に、割り付けられた動きベクトルから、内挿フレーム上の画素が２４Ｐ信号フレーム上でどの位置から動いたものなのかを求めることができる。【０３８８】
図４７は、２４Ｐ信号の元フレームで検出された動きベクトルと、６０Ｐ信号の内挿フレーム上の画素の例を１次元で示している。図４７の例においては、２つの２４Ｐ信号の時刻ｔのフレームｔおよび時刻ｔ＋１のフレームｔ＋１の間に、例えば、時刻ｔ＋０．４の内挿フレームＦ１、および時刻ｔ＋０．８の内挿フレームＦ２が２つ挿入されている。なお、この内挿フレームの位置は、上述したように、２４Ｐ信号上での時間位相が０．０，０．４，０．８，１．２，および１．６となる位置に、６０Ｐ信号のフレームが置かれることから、信号処理装置１において予め設定されている。【０３８９】
各フレーム上の丸は、各画素を示している。前段のベクトル検出部５２によりフレームｔにおいて検出された動きベクトルｖ１、ｖ２、およびｖ３が、フレームｔ＋１方向に延ばされている。これらの動きベクトルを内挿フレームＦ１およびＦ２の各画素に割り付ける場合、内挿フレーム上の各画素の近傍を通る動きベクトルは、その画素に割り付けられる候補ベクトル（以下、割付候補ベクトルとも称する）とされる。【０３９０】
したがって、フレームｔの左側の画素から、フレームｔ＋１の左から４，５番目の画素近傍への動きベクトルｖ１は、内挿フレームＦ１上の左から２番目と３番目の画素の間、内挿フレームＦ２上の左から３番目と４番目の画素の間を通っている。したがって、動きベクトルｖ１は、動きベクトルｖ１が内挿フレームＦ１およびＦ２を交差する点の近傍Ｎ１に含まれる画素（内挿フレームＦ１の左から２番目と３番目の画素および内挿フレームＦ２の左から３番目と４番目の画素）に割り付けられる割付候補ベクトルとなる。【０３９１】
また、フレームｔの左から３番目の画素から、フレームｔ＋１の左から２，３番目の画素近傍への動きベクトルｖ２は、内挿フレームＦ１上の左から２番目と３番目の画素の間、内挿フレームＦ２上の左から２番目と３番目の画素の間を通っている。したがって、動きベクトルｖ２は、動きベクトルｖ２が内挿フレームＦ１およびＦ２を交差する点の近傍領域Ｎ２に含まれる画素（内挿フレームＦ１の左から２番目と３番目の画素および内挿フレームＦ２の左から２番目と３番目の画素）に割り付けられる割付候補ベクトルとなる。【０３９２】
さらに、フレームｔの左から５番目の画素から、フレームｔ＋１の左から４，５番目の画素近傍への動きベクトルｖ３は、内挿フレームＦ１上の左から４番目と５番目の画素の間、内挿フレームＦ２上の左から４番目と５番目の画素の間を通っている。したがって、動きベクトルｖ３は、動きベクトルｖ３が内挿フレームＦ１およびＦ２を交差する点の近傍領域Ｎ３に含まれる画素（内挿フレームＦ１の左から４番目と５番目の画素および内挿フレームＦ２の左から４番目と５番目の画素）に割り付けられる割付候補ベクトルとなる。【０３９３】
すなわち、内挿フレームＦ２の左から２番目の画素の割付候補ベクトルは、動きベクトルｖ２であり、内挿フレームＦ１上の左から２番目および３番目の画素、並びに内挿フレームＦ２の左から３番目の画素の割付候補ベクトルは、動きベクトルｖ１およびｖ２である。また、内挿フレームＦ２の左から４番目の画素の割付候補ベクトルは、動きベクトルｖ１およびｖ３であり、内挿フレームＦ１上の左から４番目および５番目の画素、並びに内挿フレームＦ２の左から５番目の画素の割付候補ベクトルは、動きベクトルｖ３である。【０３９４】
以上のように、元フレームにおいて検出された動きベクトルの中から、内挿フレーム上の各画素に割り付けられる割付候補ベクトルが求められる。なお、内挿フレームＦ１およびＦ２の左端の画素および右端の画素（図中黒丸）においては、近傍を通る動きベクトルは、示されていない。すなわち、内挿フレームＦ１およびＦ２の左端の画素および右端の画素には、割り付けられる割付候補ベクトルが存在しない。したがって、これらの画素については、後述する後段の割付補償部５７において割付補償処理が実行される。【０３９５】
さらに、図４８を参照して、元フレームで検出された動きベクトルと、６０Ｐ信号の内挿フレーム上の画素について詳しく説明する。図４８の例において、矢印Ｔは、図中、左前の時刻ｔのフレームｔから、右奥の時刻ｔ＋１のフレームｔ＋１への時間の経過方向を示している。また、時刻ｔと時刻ｔ＋１の間の時刻ｔ＋ｐｏｓtに内挿フレームＦ１が置かれている。【０３９６】
図４８の例の場合、フレームｔ上の画素（ｘa，ｙa）で検出された動きベクトルｖa（ｘva，ｙva）をフレームｔ＋１方向に延ばし、内挿フレームＦ１との交点（ｘia，ｙia）を演算する。交点は、２４Ｐ信号のフレームｔ上の動きベクトルｖaの端点にあたる画素が移動した点であると考えられるので、具体的には、式（２３）および式（２４）のように表される。【０３９７】
ｘia  ＝  ｘa＋ｐｏｓtｘva                                    ・・・（２３）
ｙia  ＝  ｙa＋ｐｏｓtｙva                                    ・・・（２４）【０３９８】
ここで、上述したように、動きベクトルｖaが画素以下精度を有する場合には、動きベクトルｖaの交点と、内挿フレームＦ１上の画素位置は、一致するとは限らない。一致しない場合、図４８に示されるように、動きベクトルｖaは、内挿フレームＦ１上の交点の近傍４画素Ｇ１乃至Ｇ４に対して割り付けられる。すなわち、動きベクトルｖaは、近傍の各画素Ｇ１乃至Ｇ４上にシフト（平行移動）されて、それぞれの画素に対して割り付けられる割付候補ベクトルとされ、割付補償処理が実行される。【０３９９】
なお、このように、１つの動きベクトルが、近傍４画素に対して割り付けられる候補となることもあるため、画素によっては、複数の動きベクトルが割付候補ベクトルとされる。この場合、ベクトル割付部５４は、各動きベクトルについて、内挿フレーム上の画素と、その動きベクトルで対応付けられる元フレーム上の交点を算出し、その交点を用いて、各動きベクトルを評価することにより、最終的に、内挿フレーム上の画素に、割り付ける動きベクトルを決定する。【０４００】
図４９を参照して、ベクトル割付部５４における動きベクトルの評価について説明する。図４９は、下から、図４８の時刻ｔのフレームｔ、時刻ｔ＋ｐｏｓtの内挿フレームＦ１、および、時刻ｔ＋１のフレームｔ＋１を、１次元的に示している。【０４０１】
図４９の例において、動きベクトルｓｖaは、フレームｔ上の画素（ｘa，ｙa）において検出された動きベクトルｖaが、近傍の画素Ｇ４の割付候補ベクトルとして、画素Ｇ４上にシフト（平行移動）されたものである。ここで、画素Ｇ４上にシフトされた動きベクトルｓｖaと、フレームｔおよびフレームｔ＋１との交点を、それぞれ点Ｐおよび点Ｑとする。【０４０２】
ベクトル割付部５４は、動きベクトルｓｖaの第１の評価として、まず、点Ｐおよび点Ｑを中心としたＤＦＤ演算範囲をそれぞれ求め、求めたＤＦＤ演算範囲が画枠をはみ出してしまうか否かを判断する。したがって、点Ｐおよび点Ｑを中心としたＤＦＤ演算範囲が画枠をはみ出てしまった場合には、動きベクトルｓｖaは、候補から除外される。【０４０３】
また、この点Ｐおよび点Ｑが、例えば、異なるオブジェクトに属する場合、点Ｐの輝度値Ｆt（Ｐ）と、点Ｑの輝度値Ｆt+1（Ｑ）の差は、大きくなってしまう。したがって、ベクトル割付部５４は、動きベクトルｓｖaの第２の評価として、点Ｐと点Ｑを用いて、画素Ｇ４における輝度差分絶対値ｄｐを求め、輝度差分絶対値ｄｐが所定の値より大きいか否かを判断する。輝度差分絶対値ｄｐが所定の値より大きいと判断された場合には、画素Ｇ４における動きベクトルｓｖaの信頼度が低いとされ、動きベクトルｓｖaは、候補から除外される。なお、輝度差分絶対値ｄｐは、次の式（２５）で表される。【０４０４】
ｄｐ  ＝  ｜Ｆt（Ｐ）―  Ｆt+1（Ｑ）｜                          ・・・（２５）【０４０５】
そして、動きベクトルｓｖaの第３の評価として、ベクトル割付部５４は、点Ｐおよび点Ｑを中心としたＤＦＤ演算範囲の相関値を表す差分絶対値による評価判断を行う。すなわち、ベクトル割付部５４は、点Ｐおよび点Ｑを中心としたＤＦＤ演算範囲を用いて、画素Ｇ４における動きベクトルｓｖaの評価値ＤＦＤ（差分絶対値）を求め、求められた評価値ＤＦＤがＤＦＤテーブルの最小評価値よりも小さいか否かを判断する。以上の評価の結果、ベクトル割付部５４は、求められた評価値ＤＦＤの中で最小の評価値ＤＦＤを有する動きベクトルを、画素Ｇ４に割り付ける。【０４０６】
以上のように、内挿フレームの画素における割付候補の動きベクトルを、割付対象画素の評価値ＤＦＤだけでなく、割付対象画素における輝度差分絶対値を用いて評価するようにしたので、従来の評価値ＤＦＤを用いるだけの場合よりも、確からしい動きベクトルを、割付対象画素に割り付けることができる。この結果、ベクトル割付の精度が向上する。【０４０７】
なお、上述したように内挿フレームの画素における割付候補の動きベクトルを評価するためには、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元フレーム上の位置が用いられるが、輝度差分絶対値ｄｐおよび評価値ＤＦＤを求める際に、割付候補の動きベクトルは、内挿フレームの画素位置を基準に延長するため、動きベクトルと元フレーム上の交点は、元フレームの画素位置と一致しないことがあり、このままでは画素値を求めることができない。このような場合に、図４６を参照して上述した４点補間処理が実行される。【０４０８】
図５０は、ベクトル割付処理における４点補間の例を示している。図５０において、図４８および図４９における場合と対応する部分には対応する符号を付してあり、その説明は繰り返しになるので省略する。【０４０９】
図５０の例においては、割付候補の動きベクトルｓｖaは、内挿フレームＦ１の画素位置Ｇ４を基準に延長されているため、動きベクトルｓｖaとフレームｔとの交点Ｐは、フレームｔ上の画素位置（フレームｔ上の白丸）と一致しておらず、また、動きベクトルｓｖaとフレームｔ＋１との交点Ｑも、フレームｔ＋１上の画素位置（フレームｔ上の白丸）と一致していない。したがって、フレームｔおよびフレームｔ＋１においては、それぞれ交点Ｐおよび交点Ｑを中心とした近傍Ｅの４画素（フレームｔおよびフレームｔ＋１上の白丸）を用いて、上述した４点補間演算が行なわれ、交点Ｐおよび交点Ｑの画素値が求められる。【０４１０】
このように、本発明のベクトル割付処理においては、４点補間処理により求められる交点Ｐおよび交点Ｑの画素値が用いられて、輝度差分絶対値ｄｐおよび評価値ＤＦＤが演算されるので、従来の画素以下成分を丸めてしまう方法よりも、輝度差分絶対値ｄｐや評価値ＤＦＤを精度よく求めることができる。【０４１１】
次に、図５１のフローチャートを参照して、ベクトル割付処理の詳細を説明する。２４Ｐ信号の元フレームである、時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１は、画素情報演算部７０１、評価値演算部７０２、および着目画素差分演算部７０３に入力される。【０４１２】
画素情報演算部７０１は、新しい元フレームが入力されると、ベクトル選択部７０５を制御し、ステップＳ７０１において、割付フラグメモリ５６の割付フラグを０(False)で初期化させ、ステップＳ７０２に進み、割付ベクトルメモリ５５を０ベクトルで初期化させ、ステップＳ７０３に進む。これにより、結果的に、動きベクトルが割り付けられない画素に、０ベクトルが割り付けられる。【０４１３】
また、画素情報演算部７０１は、ステップＳ７０３において、評価値演算部７０２を制御し、内挿フレーム上のすべての画素に対して、０ベクトルを用いて評価値ＤＦＤ０を算出させ、ベクトル選択部７０５を制御し、評価値演算部７０２により算出された０ベクトルの評価値ＤＦＤ０を、内挿フレームの各画素に対する最小評価値としてＤＦＤテーブルに記憶させ、ステップＳ７０４に進む。すなわち、ステップＳ７０３において、評価値演算部７０２は、内挿フレームすべての画素に対して、０ベクトルを用いて評価値ＤＦＤ０を算出し、算出した評価値ＤＦＤ０を、ベクトル評価部７０４を介して、ベクトル選択部７０５に出力する。そして、ベクトル選択部７０５は、ベクトル評価部７０４を介して入力された評価値ＤＦＤ０を、ＤＦＤテーブルの対応する画素の最小評価値として記憶する。【０４１４】
画素情報演算部７０１は、ステップＳ７０４において、検出ベクトルメモリ５３上の元フレームから画素を選択し、ステップＳ７０５に進む。なお、この場合、フレームの左上からラスタスキャン順に画素が選択される。【０４１５】
画素情報演算部７０１は、ステップＳ７０５において、画素位置演算処理を実行し、ステップＳ７０６に進む。この画素位置演算処理の詳細は、図５２を参照して後述するが、この画素位置演算処理により、ステップＳ７０４において選択された画素において検出された動きベクトルが割り付けられる対象となる内挿フレーム上の割付対象画素が算出され、算出された割付対象画素を基準に、その動きベクトルで対応付けられる元フレーム上の位置が算出される。【０４１６】
画素情報演算部７０１は、ステップＳ７０６において、算出された割付対象画素を選択し、選択した割付対象画素と、その動きベクトルを、ベクトル選択部７０５に出力し、ステップＳ７０７に進む。このとき、同時に、画素情報演算部７０１は、選択した割付対象画素を基準に、その動きベクトルで対応付けられる元フレーム上の位置の情報を、評価値演算部７０２および着目画素演算部７０３に出力する。なお、ステップＳ７０６において、画素情報演算部７０１は、割付対象画素が複数存在する場合には、左上の画素から選択する。【０４１７】
ステップＳ７０７において、画素情報演算部７０１は、選択された割付対象画素に関して、割付ベクトル評価処理を実行し、ステップＳ７０８に進む。この割付ベクトル評価処理の詳細は、図５３を参照して後述するが、この割付ベクトル評価処理により、割付対象画素における動きベクトルの評価値ＤＦＤおよび輝度差分絶対値が求められ、割付対象画素における動きベクトルの信頼度が判断され、これらの判断の結果、信頼度が高いとされた動きベクトルで、割付ベクトルメモリ５５の動きベクトルが書き換えられる。【０４１８】
画素情報演算部７０１は、ステップＳ７０８において、すべての割付対象画素の処理が終了したか否かを判断し、まだ、すべての割付対象画素の処理が終了していないと判断した場合には、ステップＳ７０６に戻り、次の割付対象画素を選択し、それ以降の処理を繰り返す。【０４１９】
ステップＳ７０８において、すべての割付対象画素の処理が終了したと判断された場合、画素情報演算部７０１は、ステップＳ７０９において、検出ベクトルメモリ５３上の元フレームのすべての画素の処理を終了したか否かを判断する。画素情報演算部７０１は、ステップＳ７０９において、検出ベクトルメモリ５３上の元フレームのすべての画素の処理を終了していないと判断した場合、ステップＳ７０４に戻り、検出ベクトルメモリ５３上の元フレームの次の画素を選択し、それ以降の処理を繰り返す。また、画素情報演算部７０１は、ステップＳ７０９において、検出ベクトルメモリ５３のすべての画素についての処理を終了したと判断した場合、ベクトル割付処理を終了する。【０４２０】
次に、図５２のフローチャートを参照して、画素位置演算処理の詳細を説明する。なお、図５２は、図５１のステップＳ７０５の画素位置演算処理の例を示している。【０４２１】
ステップＳ７２１において、画素情報演算部７０１は、ステップＳ７０４の処理により選択された画素で検出された動きベクトルを、検出メモリベクトル５３から取得し、ステップＳ７２２に進む。なお、選択された画素の動きベクトルが０ベクトルである場合、割付ベクトルメモリ５５には、初期値として０ベクトルが予め記憶されているので、以降のステップＳ７２２乃至Ｓ７２４、および、図５１のステップＳ７０６乃至Ｓ７０８の処理はスキップされ、処理は、ステップＳ７０９に進む。【０４２２】
画素情報演算部７０１は、ステップＳ７２２において、取得された動きベクトルと内挿フレームの交点を算出する。すなわち、画素情報演算部７０１は、取得した動きベクトルを、次フレームｔ＋１方向に延ばし、延ばした動きベクトルと、内挿フレームとの交点を算出し、ステップＳ７２３に進む。【０４２３】
画素情報演算部７０１は、ステップＳ７２３において、動きベクトルと内挿フレームから算出された交点から、割付対象画素を設定し、ステップＳ７２４に進む。このとき、画素情報演算部７０１は、交点が内挿フレーム上の画素位置に一致する場合には、交点を、割付対象画素に設定する。一方、画素情報演算部７０１は、交点が内挿フレーム上の画素位置に一致しない場合には、上述したように、内挿フレーム上の交点の近傍４画素を、割付対象画素に設定する。【０４２４】
ステップＳ７２４において、画素情報演算部７０１は、評価値演算部７０２および着目画素差分演算部７０３が評価値ＤＦＤおよび輝度差分絶対値を求める上で必要である、各割付対象画素を基準に、取得された動きベクトルで対応付けた元フレーム上の位置を算出する。具体的には、画素情報演算部７０１は、ステップＳ７２４において、取得された動きベクトルを、設定された割付対象画素にシフト（平行移動）し、シフトされた動きベクトルと、元フレーム上の交点の位置を求め、画素位置演算処理を終了し、図５０のステップＳ７０６に戻る。【０４２５】
次に、図５３のフローチャートを参照して、割付ベクトル評価処理の詳細を説明する。なお、図５３は、図５１のステップＳ７０７の割付ベクトル評価処理の例を示している。【０４２６】
図５１のステップＳ７０６において、画素情報演算部７０１により、選択した割付対象画素を基準に、その動きベクトルで対応付けられる元フレーム上の位置が求められ、求められた元フレーム上の位置の情報が、評価値演算部７０２および着目画素差分演算部７０３に入力される。【０４２７】
評価値演算部７０２は、画素情報演算部７０１から、元フレーム上の位置の情報が入力されると、ステップＳ７４１において、割付対象画素における動きベクトルの評価値ＤＦＤを求めるために、フレームｔおよびフレームｔ＋１上の位置を中心としたＤＦＤ演算範囲（ｍ×ｎ）をそれぞれ求め、ステップＳ７４２に進み、求められたＤＦＤ演算範囲が画枠内にあるか否かを判断する。評価値演算部７０２は、ステップＳ７４２において、ＤＦＤ演算範囲が画枠からはみ出していると判断した場合、その動きベクトルは、割付対象画素に割り付ける割付候補ベクトルにはならないと判断し、ステップＳ７４３乃至Ｓ７４９の処理をスキップし、割付ベクトル評価処理を終了し、図５１のステップＳ７０８に戻る。【０４２８】
評価値演算部７０２は、ステップＳ７４２において、求められたＤＦＤ演算範囲が画枠内にあると判断した場合、ステップＳ７４３に進み、画枠内にあると判断されたＤＦＤ演算範囲を用いて、割付対象画素の評価値ＤＦＤを演算し、求められた評価値ＤＦＤを、評価値判断部７１２に出力し、ステップＳ７４４に進む。なお、このとき、元フレーム上の位置が画素以下であった場合には、上述した４点補間を用いて、元フレーム上の交点の輝度値を求めることにより、割付対象画素の評価値ＤＦＤが演算される。【０４２９】
一方、着目画素差分演算部７０３は、画素情報演算部７０１から、元フレーム上の位置の情報が入力されると、ステップＳ７４４において、割付対象画素における輝度差分絶対値ｄｐを求め、求められた輝度差分絶対値ｄｐを、画素差分判断部７１１に出力し、ステップＳ７４５に進む。なお、このときも、元フレーム上の位置が画素以下であった場合には、着目画素差分演算部７０３は、上述した４点補間を用いて、元フレーム上の交点の輝度値を求めることにより、割付対象画素における輝度差分絶対値ｄｐを演算する。【０４３０】
画素差分判断部７１１は、ステップＳ７４５において、着目画素差分演算部７０３からの割付対象画素の輝度差分絶対値ｄｐが、所定のしきい値以下であるか否かを判断し、割付対象画素の輝度差分絶対値ｄｐが、所定のしきい値より大きいと判断した場合、フレームｔおよびフレームｔ＋１の交点がそれぞれ異なるオブジェクトに属する可能性が高いと判断し、すなわち、その動きベクトルは、割付対象画素における信頼度が低く、割付対象画素に割り付ける割付候補ベクトルにはならないと判断し、ステップＳ７４６乃至Ｓ７４９の処理をスキップし、割付ベクトル評価処理を終了し、図５１のステップＳ７０８に戻る。【０４３１】
画素差分判断部７１１は、ステップＳ７４５において、割付対象画素の輝度差分絶対値ｄｐが、所定のしきい値以下であると判断した場合、ステップＳ７４６に進む。評価値判断部７１２は、ステップＳ７４６において、ベクトル選択部７０５のＤＦＤテーブルを参照し、評価値演算部７０２からの割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルに記憶されている割付対象画素の最小評価値（いまの場合、０ベクトルの評価値ＤＦＤ０）よりも小さいか否かを判断し、評価値演算部７０２からの割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルに記憶されている割付対象画素の最小評価値以上であると判断した場合、その動きベクトルは、割付対象画素において、信頼度が高くないと判断し、ステップＳ７４７乃至Ｓ７４９の処理をスキップし、割付ベクトル評価処理を終了し、図５１のステップＳ７０８に戻る。【０４３２】
一方、評価値判断部７１２は、ステップＳ７４６において、評価値演算部７０２からの割付対象画素の評価値ＤＦＤが、ＤＦＤテーブルに記憶されている割付対象画素の最小評価値よりも小さいと判断した場合、その動きベクトルは、割付対象画素において、いままで比較した動きベクトルの中で最も、評価値ＤＦＤに基づく信頼度が高いと判断し、信頼度が高いと判断された割付対象画素の評価値ＤＦＤを、ベクトル選択部７０５に出力し、ステップＳ７４７に進む。【０４３３】
ベクトル選択部７０５は、評価値判断部７１２からの割付対象画素の評価値ＤＦＤを入力すると、ステップＳ７４７において、割付フラグメモリ５６の割付対象画素の割付フラグを１(True)に書き換え、ステップＳ７４８に進み、ＤＦＤテーブルの割付対象画素が対応する最小評価値を、評価値判断部７１２により信頼度が高いと判断された評価値ＤＦＤに書き換え、ステップＳ７４９に進む。【０４３４】
ベクトル選択部７０５には、ステップＳ７０６において、画素情報演算部７０１から選択した割付対象画素とその動きベクトルが入力されている。したがって、ベクトル選択部７０５は、ステップＳ７４９において、割付ベクトルメモリ５５の割付対象画素に割り付けられている動きベクトルを、信頼度が高いと判断された評価値ＤＦＤに対応する動きベクトルで書き換え、割付ベクトル評価処理を終了し、図５１のステップＳ７０８に戻る。【０４３５】
以上のように、内挿フレームの割付対象画素に割り付けられる動きベクトルを選ぶときに、評価値ＤＦＤだけでなく、割付対象画素を基準に動きベクトルで対応付けた元フレーム上の位置に基づいて求められる、割付対象画素の輝度差分絶対値を別扱いにし、評価するようにしたので、従来の評価値ＤＦＤを用いるだけの場合よりも、割付候補ベクトルの中から、最も確からしい動きベクトルを選んで、割付対象画素に割り付けることができる。これにより、ベクトル割付の精度が向上し、後段の画像補間処理において生成される画像の不連続性などを抑制することができ、画像の品質を向上させることができる。【０４３６】
さらに、評価値ＤＦＤや輝度差分絶対値を求める際などに、画素以下位置の画素値が必要な場合に、その画素以下位置の近傍４画素との距離を基にした線形補間で値を求めるようにしたので、画素以下位置精度の処理が可能になり、さらに、従来の画素以下成分を丸めてしまう方法よりも、輝度差分絶対値ｄｐや評価値ＤＦＤを精度よく求めることができ、これにより、割付候補ベクトルの中から、着目画素により確からしい動きベクトルを割り付けることができる。すなわち、ベクトル割付処理の精度が向上する。【０４３７】
また、０ベクトルによる評価値ＤＦＤを初期値として、ＤＦＤテーブルに予め保持しておき、動きベクトルを順次処理している間に、ある動きベクトルによる評価値ＤＦＤがその時点で最小評価値となった場合に、ＤＦＤテーブルの最小評価値と、割付ベクトルメモリ５５に割り付けられている動きベクトルを、随時更新するようにしたので、時間とリソースを効率的に使用することができる。【０４３８】
次に、割付補償部５７の構成の詳細について説明する。【０４３９】
図５４は、割付補償部５７の構成を示すブロック図である。図５４に構成を示す割付補償部５７は、割付ベクトル判定部８０１およびベクトル補償部８０２により構成され、ベクトル割付部５４により動きベクトルが割り付けられなかった６０Ｐ信号の内挿フレーム上の画素に、その周辺画素の動きベクトルを補って割り付ける処理を行う。【０４４０】
前段のベクトル割付部５４により、割付ベクトルメモリ５５上の内挿フレームの画素には動きベクトルが割り付けられている。また、ベクトル割付部５４により動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグには、１(True)が書き込まれており、動きベクトルが割り付けられなかった画素の割付フラグメモリ５６の割付フラグには、０(False)が書き込まれている。【０４４１】
割付ベクトル判定部８０１は、割付フラグメモリ５６の割付フラグを参照し、着目画素に、ベクトル割付部５４により動きベクトルが割り付けられているか否かを判定する。そして、割付ベクトル判定部８０１は、ベクトル割付部５４により動きベクトルが割り付けられなかった着目画素を選択し、選択した着目画素に対して、ベクトル補償部８０２を制御し、その着目画素の周辺画素の動きベクトルを選択して、割付ベクトルメモリ５５の内挿フレーム上に割り付けさせる。【０４４２】
ベクトル補償部８０２は、割付ベクトルメモリ５５から、着目画素の周辺画素に割り付けられている動きベクトルを取得し、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、取得した動きベクトルの評価値ＤＦＤを求めて比較することにより、着目画素の周辺画素に割り付けられた動きベクトルのうち、評価値ＤＦＤに基づく、最も信頼度が高い動きベクトルを、割付ベクトルメモリ５５の着目画素に割り付ける。また、ベクトル補償部８０２は、動きベクトルが割り付けられた着目画素の割付フラグを１(True)に書き換える。【０４４３】
図５５は、ベクトル補償部８０２の構成を示すブロック図である。図５５に構成を示すベクトル補償部８０２は、補償処理部８１１および評価値演算部８１２により構成される。【０４４４】
補償処理部８１１は、最小評価値ＤＦＤと、最小評価値ＤＦＤの動きベクトルを候補ベクトル（以下、補償候補ベクトルとも称する）として記憶するメモリ８２１を有しており、割付ベクトル判定部８０１により選択された着目画素の初期値として、０ベクトルの評価値ＤＦＤを最小評価値としてメモリ８２１に記憶し、０ベクトルを、補償候補ベクトルとしてメモリ８２１に記憶する。補償処理部８１１は、割付フラグメモリ５６を参照して、着目画素の周辺画素の動きベクトルの有無を判断し、割付ベクトルメモリ５５から、周辺画素に割り付けられている動きベクトルを取得し、評価値演算部８１２を制御し、その動きベクトルの評価値ＤＦＤを演算させる。【０４４５】
また、補償処理部８１１は、評価値演算部８１２により演算された評価値ＤＦＤがメモリ８２１に記憶されている最小評価値よりも小さいか否かを判断し、演算された評価値ＤＦＤが最小評価値よりも小さいと判断した場合、メモリ８２１の補償候補ベクトルと最小評価値を、演算された評価値ＤＦＤとその動きベクトルに書き換え、最終的に、評価値ＤＦＤが最も小さいと判断された周辺画素の動きベクトル（補償候補ベクトル）を、着目画素の動きベクトルとして、割付ベクトルメモリ５５の着目画素に割り付ける。さらに、補償処理部８１１は、動きベクトルが割り付けられた着目画素の割付フラグメモリ５６の割付フラグを１(True)に書き換える。【０４４６】
評価値演算部８１２は、割付ベクトルメモリ５５から周辺画素の動きベクトルを取得すると、入力される時刻ｔの２４Ｐ信号の画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、割付ベクトルメモリ５５からの動きベクトルの評価値ＤＦＤを演算し、演算した評価値ＤＦＤを補償処理部８１１に出力する。【０４４７】
図５６は、割付補償処理の原理を説明する図である。図５６の例においては、内挿フレーム上の各画素が示されている。画素から出力される矢印は、各画素に割り付けられている動きベクトルを表しており、矢印がない画素は、動きベクトルが割り付けられていない画素を表している。【０４４８】
ここで、前段のベクトル割付部５４により動きベクトルの割り付けられなかった中央の着目画素Ｐに対して、着目画素Ｐの近傍の周辺画素に割り付けられている動きベクトルの中から、評価値ＤＦＤに基づく、信頼度が高いものを選択して割り付ける。図５６の例の場合、着目画素Ｐには、着目画素Ｐの上の画素の動きベクトル（太線矢印）が選択され、割り付けられている。これは、次に説明する動き相関に基づいて実行される処理である。【０４４９】
図５７は、動き相関の原理について説明する図である。図５７の例においては、あるフレーム上を動きｖ１で動くオブジェクトＯ１と、動きｖ２で動くオブジェクトＯ２が示されている。オブジェクトＯ１に属している着目画素Ｐ１とその近傍Ｋ１は、オブジェクトＯ１とほぼ同一動きｖ１を有している。また、オブジェクトＯ２に属している着目画素Ｐ２とその近傍Ｋ２は、オブジェクトＯ２とほぼ同じ動きｖ２を有している。【０４５０】
このように、動き相関とは、ある同じ時間における空間内（同一フレーム内）において、あるオブジェクトに属する画素の動きは、ほぼ同一動きをしていることが多いということを表すものである。したがって、動きベクトルを割り付けることができなかった画素に対しては、ある同じ時間における空間内（同一フレーム内）において、このような動き相関があることを利用して、周辺画素の動きベクトルから、その画素の対応する動きベクトルを選択することができる。なお、説明は省略するが、時間方向の相関も同様である。【０４５１】
次に、図５８乃至図６４を参照して、動き相関に基づいて実行される動きベクトルの補償処理について説明する。すなわち、周辺画素の動きベクトルから、動きベクトルを選択し、着目画素の動きベクトルとして補う処理である。図５８の例においては、白丸は、内挿フレーム上の画素を表しており、動きベクトルを求めようとしている着目画素Ｐの周辺に、周辺８画素が示されている。この着目画素Ｐの動きベクトルは、この周辺８画素の動きベクトルを参照して求められる。【０４５２】
図５９の例においては、着目画素Ｐの周辺８画素の中で、左上画素、右上画素、および、右下画素（黒丸）に、前段の処理（例えば、上述したベクトル割付処理）などにより求められた動きベクトル（矢印）が示されている。すなわち、この場合の着目画素Ｐの補償候補ベクトルは、左上画素、右上画素、および、右下画素の動きベクトルとされる。なお、フレーム上において、動きベクトルは、フレーム上の左上の画素からラスタスキャン順に求められていくため、周辺８画素のうち、まだ動きベクトルの求められていない画素も存在する可能性もあるが、まだ動きベクトルは求められていないため、補償候補ベクトルにはできない。【０４５３】
ここで、図６０の例に示されるように、周辺８画素の中には、前段の処理において求められた動きベクトルを有する画素（黒丸）の他に、本処理により求められた動きベクトルを有する画素（ハッチングされた丸）も存在する。すなわち、本処理においては、本処理自体の前段の結果も利用される。したがって、図６０の例の場合の着目画素Ｐの補償候補ベクトルは、動きベクトルがすでに存在する画素（黒丸）の動きベクトルと、前段の本処理により求められた動きベクトルを有する画素（ハッチングされた丸）の動きベクトルにより構成されている。【０４５４】
また、図６１の例に示されるように、動き量を０とした０ベクトル（静止ベクトル）Ｓ０も補償候補ベクトルとして利用することができる。なお、図６０の例においては、本処理により求められた動きベクトルを有する画素と、動きベクトルがすでに存在する画素を別々に表したが、どちらも動きベクトルを有するという点で同じであるので、図６１乃至図６４においては、本処理により求められた動きベクトルを有する画素も、動きベクトルがすでに存在する画素（黒丸）に含まれることとする。したがって、図６１の例の場合、着目画素Ｐの補償候補ベクトルは、動きベクトルがすでに存在する画素（黒丸）の動きベクトルおよび０ベクトルＳ０により構成されている。【０４５５】
以上のようにして構成される補償候補ベクトルの信頼度（確からしさ）を比較するために、動きベクトルの評価方法である評価値ＤＦＤは、以降の図６２乃至図６４に示されるようにして求められる。図６２は、補償候補ベクトルとして、０ベクトルＳ０が用いられる例を示している。図６３は、補償候補ベクトルとして、周辺８画素の左上画素の動きベクトルＶＫ１が用いられる例を示している。図６４は、補償候補ベクトルとして、周辺８画素の上中央画素の動きベクトルＶＫ２が用いられる例を示している。【０４５６】
図６２の例においては、図中左側に示される着目画素Ｐの補償候補ベクトルの中から、０ベクトルＳ０が選択され、選択された０ベクトルＳ０の評価値ＤＦＤを求める例が示されている。すなわち、０ベクトルＳ０に対する評価値ＤＦＤは、着目画素Ｐ（６０Ｐ信号の内挿フレーム）を挟む、２４Ｐ信号のフレームｔとフレームｔ＋１上において、内挿フレーム上の着目画素Ｐを基準にして、選択された０ベクトルＳ０が対応付けられる交点を求め、この交点を中心として所定の範囲（ｍ×ｎ）のＤＦＤ演算範囲Ｄ１−１およびＤ１−２を算出し、算出されたＤＦＤ演算範囲Ｄ１−１およびＤ１−２を用いて、上述した式（１）を演算することにより求められる。【０４５７】
図６３の例においては、図中左側に示される着目画素Ｐの補償候補ベクトルの中から、周辺８画素の左上画素の動きベクトルＶＫ１が選択され、選択された動きベクトルＶＫ１の評価値ＤＦＤを求める例が示されている。すなわち、周辺８画素の左上画素の動きベクトルＶＫ１に対する評価値ＤＦＤは、着目画素Ｐ（内挿フレーム）を挟むフレームｔとフレームｔ＋１上において、内挿フレーム上の着目画素Ｐを基準にして、選択された動きベクトルＶＫ１が対応付けられる交点を求め、この交点を中心として所定の範囲（ｍ×ｎ）のＤＦＤ演算範囲Ｄ２−１およびＤ２−２を算出し、算出されたＤＦＤ演算範囲Ｄ２−１およびＤ２−２を用いて、上述した式（１）を演算することにより求められる。【０４５８】
図６４の例においては、図中左側に示される着目画素Ｐの補償候補ベクトルの中から、補償候補ベクトルとして、周辺８画素の上中央画素の動きベクトルＶＫ２が選択され、選択された動きベクトルＶＫ２の評価値ＤＦＤを求める例が示されている。すなわち、周辺８画素の上中央画素の動きベクトルＶＫ２に対する評価値ＤＦＤは、着目画素Ｐ（内挿フレーム）を挟むフレームｔとフレームｔ＋１上において、内挿フレーム上の着目画素Ｐを基準にして、選択された動きベクトルＶＫ２が対応付けられる交点を求め、この交点を中心として所定の範囲（ｍ×ｎ）のＤＦＤ演算範囲Ｄ３−１およびＤ３−２を算出し、算出されたＤＦＤ演算範囲Ｄ３−１およびＤ３−２を用いて、上述した式（１）を演算することにより求められる。【０４５９】
なお、図中左側に示される他の補償候補ベクトルについても、基本的に同様の処理であるため、その説明は省略するが、以上のようにして、着目画素Ｐの周辺画素の補償候補ベクトルすべての評価値ＤＦＤが求められ、求められたそれらの評価値ＤＦＤが比較され、その中で、最も評価値ＤＦＤが最小となる補償候補ベクトルが、図６５に示されるように、着目画素Ｐに割り付けられる最も信頼度がある、確からしい動きベクトルとして選択される。【０４６０】
図６５の例の場合、着目画素Ｐの周辺画素の補償候補ベクトルの中から、周辺８画素の左上画素の動きベクトルＶＫ１の評価値ＤＦＤが最も小さいとして判断され、動きベクトルＶＫ１が、着目画素Ｐの動きベクトルとして選択され、割り付けられている。【０４６１】
以上のように、ベクトル割付部５４において割り付けることができなかった画素の動きベクトルを、動き相関を利用して、周辺画素の動きベクトルから補償するようにしたので、動きベクトルが割り付けられず、例えば、０ベクトルが割り付けられていたような場合よりも、動きの乱れを抑制することができる。また、このようにして補償された画素の動きベクトルも、他の画素の補償候補ベクトルとして再度利用することができる。すなわち、空間方向の近傍の動きベクトルだけでなく、時間方向の近傍の動きベクトルも、補償候補ベクトルに用いることができるので、オブジェクト内でほぼ同じ動きをする画素には、ほぼ同一の動きベクトルが選択され、誤りの少ない安定した動きベクトルを得ることができる。これにより、ベクトル割付の精度が向上する。【０４６２】
次に、図６６のフローチャートを参照して、割付補償処理の詳細を説明する。前段のベクトル割付部５４により、割付ベクトルメモリ５５上の内挿フレームの画素には動きベクトルが割り付けられている。また、ベクトル割付部５４により動きベクトルが割り付けられた画素の割付フラグメモリ５６の割付フラグには、１(True)が書き込まれており、動きベクトルが割り付けられなかった画素の割付フラグメモリ５６の割付フラグには、０(False)が書き込まれている。【０４６３】
割付ベクトル判定部８０１は、ステップＳ８０１において、割付フラグメモリ５６の内挿フレームの画素を、着目画素として選択し、ステップＳ８０２に進む。このとき、割付ベクトル判定部８０１は、フレームの左上の画素からラスタスキャン順に画素を選択する。【０４６４】
割付ベクトル判定部８０１は、ステップＳ８０２において、割付フラグメモリ５６内の着目画素の割付フラグが、０(False)であるか否かを判断し、割付フラグメモリ５６内の着目画素の割付フラグが、０(False)であると判断した場合、動きベクトルが割り付けられていないと判定し、ステップＳ８０３に進み、補償処理部８１１を制御し、ベクトル補償処理を実行させ、ステップＳ８０４に進む。このベクトル補償処理の詳細は、図６７を参照して後述するが、このベクトル補償処理により、周辺画素に割り付けられた動きベクトルの中から、評価値ＤＦＤの最小の動きベクトルが補償候補ベクトルとしてメモリ８２１に記憶される。【０４６５】
補償処理部８１１は、ステップＳ８０４において、メモリ８２１の補償候補ベクトルを、着目画素の動きベクトルとして、割付ベクトルメモリ５５に割り付け、ステップＳ８０５に進み、割付フラグメモリ５６の着目画素の割り付けフラグを、１(True)に書き換え、ステップＳ８０６に進む。【０４６６】
一方、ステップＳ８０２において、割付ベクトル判定部８０１は、割付フラグメモリ５６内の着目画素の割付フラグが、１(True)であると判断した場合、その着目画素にはすでに動きベクトルが割り付けられていると判定して、ステップＳ８０３乃至Ｓ８０５の処理をスキップし、ステップＳ８０６に進む。【０４６７】
割付ベクトル判定部８０１は、ステップＳ８０６において、割付フラグメモリ５６の内挿フレームのすべての画素の処理を終了したか否かを判断し、すべての画素の処理を終了していないと判断した場合、ステップＳ８０１に戻り、割付フラグメモリ５６の内挿フレームの次の画素を、着目画素として選択し、それ以降の処理を実行する。ステップＳ８０６において、割付フラグメモリ５６の内挿フレームのすべての画素の処理を終了したと判断した場合、割付補償処理を終了する。【０４６８】
次に、図６７のフローチャートを参照して、ベクトル補償処理の詳細を説明する。なお、図６７は、図６６のステップＳ８０３のベクトル補償処理の例を示している。【０４６９】
補償処理部８１１は、ステップＳ８２１において、評価値演算部８１２を制御し、０ベクトルを用いて評価値ＤＦＤ０を算出させ、ステップＳ８２２に進む。具体的には、評価値演算部８１２は、ステップＳ８２１において、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、例えば、図６２を参照して上述したように、着目画素について、０ベクトルでの評価値ＤＦＤ０を演算し、演算した評価値ＤＦＤ０を補償処理部８１１に出力する。【０４７０】
ステップＳ８２２において、補償処理部８１１は、評価値ＤＦＤ０を最小評価値としてメモリ８２１に記憶し、ステップＳ８２３に進み、０ベクトルを補償候補ベクトルとして、メモリ８２１に記憶し、ステップＳ８２４に進む。補償処理部８１１は、ステップＳ８２４において、割付ベクトル判定部８０１により選択された着目画素の周辺８画素のうち、１つの周辺画素を選択し、ステップＳ８２５に進む。このとき、補償処理部８１１は、周辺８画素のうち、左上の画素からラスタスキャン順に周辺画素を選択する。【０４７１】
補償処理部８１１は、ステップＳ８２５において、割付フラグメモリ５６を参照し、選択した周辺画素の動きベクトルが存在するか否かを判断する。割付フラグメモリ５６の周辺画素の割付フラグが１(True)であれば、補償処理部８１１は、ステップＳ８２５において、選択した周辺画素に割り付けられている動きベクトルが存在すると判断し、ステップＳ８２６に進み、割付ベクトルメモリ５５から、周辺画素の動きベクトルを取得し、ステップＳ８２７に進む。このとき、割付ベクトルメモリ５５から評価値演算部８１２にも周辺画素の動きベクトルが出力される。【０４７２】
評価値演算部８１２は、割付ベクトルメモリ５５から周辺画素の動きベクトルが入力されると、ステップＳ８２７において、入力される時刻ｔの画像のフレームｔと、時刻ｔ＋１の画像のフレームｔ＋１を用いて、着目画素について、割付ベクトルメモリ５５からの動きベクトルの評価値ＤＦＤを演算し、演算した評価値ＤＦＤを、補償処理部８１１に出力し、ステップＳ８２８に進む。【０４７３】
補償処理部８１１は、評価値演算部８１２から評価値ＤＦＤが入力されると、ステップＳ８２８において、評価値ＤＦＤが、メモリ８２１に記憶されている着目画素の最小評価値よりも小さいか否かを判断し、評価値ＤＦＤが、メモリ８２１に記憶されている着目画素の最小評価値よりも小さいと判断した場合、ステップＳ８２９に進み、メモリ８２１の最小評価値を、最小評価値よりも小さいと判断された評価値ＤＦＤに書き換え、ステップＳ８３０に進み、メモリ８２１の補償候補ベクトルを、その最小評価値の動きベクトルに書き換え、ステップＳ８３１に進む。【０４７４】
一方、ステップＳ８２５において、割付フラグメモリ５６の周辺画素の割付フラグが０(False)であると、補償処理部８１１は、選択した周辺画素に割り付けられている動きベクトルがないと判断し、ステップＳ８２６乃至Ｓ８３０の処理をスキップし、ステップＳ８３１に進む。また、ステップＳ８２８において、補償処理部８１１は、評価値ＤＦＤが、メモリ８２１に記憶されている着目画素の最小評価値以上であると判断した場合、ステップＳ８２９およびＳ８３０の処理をスキップし、ステップＳ８３１に進む。【０４７５】
補償処理部８１１は、ステップＳ８３１において、着目画素の周辺８画素すべてに対して処理が終了したか否かを判断し、着目画素の周辺８画素すべてに対して処理が終了していないと判断した場合、ステップＳ８２４に戻り、次の周辺画素を選択し、それ以降の処理を繰り返す。また、補償処理部８１１は、ステップＳ８３１において、着目画素の周辺８画素すべてに対して処理が終了したと判断した場合、ベクトル補償処理を終了し、図６６のステップＳ８０４に戻る。【０４７６】
以上のように、ベクトル割付処理において、割り付けることができなかった画素に関しても、動き相関があることを利用して、その画素の周辺の動きベクトルの中から、評価値ＤＦＤに基づく、最も信頼度がある、確からしい動きベクトルを得ることができる。これにより、ベクトルが割り付けられず、０ベクトルなどを割り付けておく場合よりも、ベクトル割付の精度が向上し、後段の画像補間処理において生成される画像の不連続性を抑制することができる。【０４７７】
また、上述した割付補償処理により動きベクトルが割り付けられた画素の割付フラグを１(True)に書き換えるようにし、割付補償処理により割り付けられた動きベクトルも、次の画素の補償候補ベクトルとして用いるようにしたので、オブジェクト内でほぼ同じ動きをする画素には、ほぼ同一の動きベクトルが選択されるようになり、誤りの少ない安定した動きベクトルを得ることができる。その結果、後段において生成される画像のブロックノイズや粉状ノイズなどを抑制し、品質を向上させることができる。【０４７８】
また、動きベクトルを求める着目画素について、０ベクトルの評価値ＤＦＤを予め算出し、最小評価値としてメモリに保持しておくことにより、すべての補償候補ベクトル評価値ＤＦＤを一度に算出し、その中から最小の評価値ＤＦＤを選択する場合よりも、時間とリソースを効率的に使用することができる。【０４７９】
なお、上記説明においては、ベクトル割付部５４において割り付けられなかった画素に対してベクトル補償処理を行っているが、ベクトル検出部５２において検出されなかった（０ベクトルが検出された）画素など、何らかの処理において動きベクトルが求められなかった画素に対してベクトル補償処理を行うようにしてもよい。また、さらに、検出された動きベクトル、または、割り付けられた動きベクトルが確からしくない（信頼度が低い）とされる画素に対してベクトル補償処理を行うようにしてもよい。【０４８０】
本実施の形態においては、動きベクトルを選択する際の評価値として、差分絶対値和である評価値ＤＦＤを用いて説明したが、評価値ＤＦＤに限定されず、動きベクトルの信頼度を評価するものであれば、他のものを用いるようにしてもよい。【０４８１】
また、本実施の形態においては、各処理を行うブロックを、例えば、８画素×８画素や９画素×９画素などにより構成するようにして説明したが、これらは、一例であり、各処理を行うブロックを構成する画素は、上記画素数に限定されない。【０４８２】
さらに、本実施の形態においては、２４Ｐ信号から６０Ｐ信号への信号変換を例に、説明を行ったが、本発明は、例えば、動画像のフレーム周波数変換として、インターレース信号や、他のフレームレート変換にも適用することができる。【０４８３】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。【０４８４】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図１に示されるように、磁気ディスク３１（フレキシブルディスクを含む）、光ディスク３２（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク３３（MD(Mini-Disc)（商標）を含む）、もしくは半導体メモリ３４などよりなるリムーバブル記録媒体（パッケージメディア）、または、プログラムが一時的もしくは永続的に格納されるＲＯＭ１２などにより構成される。【０４８５】
なお、本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図１】
0004692845.tif 000005
【図２】
0004692845.tif 000006
【図３】
0004692845.tif 000007
【図４】
0004692845.tif 000008
【図５】
0004692845.tif 000009
【図６】
0004692845.tif 000010
【図７】
0004692845.tif 000011
【図８】
0004692845.tif 000012
【図９】
0004692845.tif 000013
【図１０】
0004692845.tif 000014
【図１１】
0004692845.tif 000015
【図１２】
0004692845.tif 000016
【図１３】
0004692845.tif 000017
【図１４】
0004692845.tif 000018
【図１５】
0004692845.tif 000019
【図１６】
0004692845.tif 000020
【図１７】
0004692845.tif 000021
【図１８】
0004692845.tif 000022
【図１９】
0004692845.tif 000023
【図２０】
0004692845.tif 000024
【図２１】
0004692845.tif 000025
【図２２】
0004692845.tif 000026
【図２３】
0004692845.tif 000027
【図２４】
0004692845.tif 000028
【図２５】
0004692845.tif 000029
【図２６】
0004692845.tif 000030
【図２７】
0004692845.tif 000031
【図２８】
0004692845.tif 000032
【図２９】
0004692845.tif 000033
【図３０】
0004692845.tif 000034
【図３１】
0004692845.tif 000035
【図３２】
0004692845.tif 000036
【図３３】
0004692845.tif 000037
【図３４Ａ】
0004692845.tif 000038
【図３４Ｂ】
0004692845.tif 000039
【図３４Ｃ】
0004692845.tif 000040
【図３５】
0004692845.tif 000041
【図３６】
0004692845.tif 000042
【図３７】
0004692845.tif 000043
【図３８】
0004692845.tif 000044
【図３９】
0004692845.tif 000045
【図４０】
0004692845.tif 000046
【図４１】
0004692845.tif 000047
【図４２】
0004692845.tif 000048
【図４３】
0004692845.tif 000049
【図４４】
0004692845.tif 000050
【図４５】
0004692845.tif 000051
【図４６】
0004692845.tif 000052
【図４７】
0004692845.tif 000053
【図４８】
0004692845.tif 000054
【図４９】
0004692845.tif 000055
【図５０】
0004692845.tif 000056
【図５１】
0004692845.tif 000057
【図５２】
0004692845.tif 000058
【図５３】
0004692845.tif 000059
【図５４】
0004692845.tif 000060
【図５５】
0004692845.tif 000061
【図５６】
0004692845.tif 000062
【図５７】
0004692845.tif 000063
【図５８】
0004692845.tif 000064
【図５９】
0004692845.tif 000065
【図６０】
0004692845.tif 000066
【図６１】
0004692845.tif 000067
【図６２】
0004692845.tif 000068
【図６３】
0004692845.tif 000069
【図６４】
0004692845.tif 000070
【図６５】
0004692845.tif 000071
【図６６】
0004692845.tif 000072
【図６７】
0004692845.tif 000073