(57)【要約】【課題】参照ブロック内に動きの異なるものが複数混在する場合であっても、動きベクトルを正しく検出する。【解決手段】参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、マッチングの度合いがその閾値より高いときは計数値として０以外の値を配し、それ以外では計数値として０を配した計数値テーブルを生成する。参照ブロックを構成する＃１〜＃Ｍの全画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んで、探索範囲の画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成する。このヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルを検出する。【選択図】        図１
2004206638.tif 000002
【特許請求の範囲】
【請求項１】
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記参照フレームの所定の参照ブロックを構成する画素データと該画素データに対応した上記探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、上記参照ブロックを構成する各画素データ分行うマッチング演算手段と、
上記参照ブロックを構成する各画素データ毎に、上記マッチング演算の結果に基づき、上記探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として０以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として０を配した計数値テーブルを生成する計数値テーブル生成手段と、
上記各画素データに対応した計数値テーブルの各計数値をそれぞれ度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出手段と
を備えることを特徴とする動きベクトル検出装置。
【請求項２】
上記計数値テーブル生成手段は、
上記マッチングの度合いがその閾値より高いときは、該マッチングの度合いが高い程絶対値の大きな値を上記計数値として配する
ことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得手段と、
上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正手段とをさらに備える
ことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項４】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出手段と、
上記計数値テーブル生成手段で上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更手段とをさらに備え、
上記閾値変更手段は、アクティビティが大きい程上記閾値を低くする
ことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項５】
上記動きベクトル検出手段で検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定手段をさらに備え、
上記動きベクトル特定手段は、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出手段で検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項６】
上記動きベクトル特定手段で特定される上記参照ブロックを構成する各画素データの動きベクトルより孤立した動きベクトルを除去する孤立点除去手段をさらに備える
ことを特徴とする請求項５に記載の動きベクトル検出装置。
【請求項７】
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記探索フレームより取り出される画素データを共通に入力すると共に、上記参照フレームより取り出される、上記画素データを探索範囲に含む所定の参照ブロックの画素データとの差分絶対値を演算する複数の差分絶対値演算器と、
上記複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して、該差分絶対値がその閾値より小さいときは０以外の所定値とし、該差分絶対値がその閾値以上のときは０とするように計数値を生成する計数値生成手段と、
上記複数の差分絶対値演算器にそれぞれ対応した複数の記憶領域を有する計数値テーブル生成用の第１の記憶手段と、
上記複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれに対応して上記計数値生成手段で生成された計数値を、上記第１の記憶手段の該計数値に係る上記差分絶対値演算器および上記参照ブロックの画素位置に対応した記憶領域内の計数値記憶領域に書き込み、上記第１の記憶手段に、上記参照ブロックを構成する各画素データに対応した、上記探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られるように制御する書き込み制御手段と、
上記第１の記憶手段に得られた上記参照ブロックを構成する各画素データにそれぞれ対応した計数値テーブルの各計数値をそれぞれ度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出手段と
を備えることを特徴とする動きベクトル検出装置。
【請求項８】
上記ヒストグラムテーブル生成手段は、
上記探索範囲の画素数に対応した複数の加算器と、
上記複数の加算器にそれぞれ対応した複数の記憶領域を有する第２の記憶手段と、
上記第１の記憶手段に得られた計数値テーブルの複数の計数値をそれぞれ度数とし、該複数の度数のそれぞれを、上記第２の記憶手段の複数の記憶領域に記憶されていた記憶データのそれぞれに、上記複数の加算器を用いて足し込み、該複数の加算器で得られた足し込みデータのそれぞれを上記第２の記憶手段の複数の記憶領域に記憶することを、上記第１の記憶手段に得られた上記参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、上記第２の記憶手段に、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する制御手段とを有する
ことを特徴とする請求項７に記載の動きベクトル検出装置。
【請求項９】
上記第２の記憶手段は半導体メモリであって、少なくとも上記複数の加算器および上記半導体メモリは一体化されており、
上記加算器を構成するビット単位の複数の加算部は、上記半導体メモリのカラムのピッチに揃えて配されている
ことを特徴とする請求項８に記載の動きベクトル検出装置。
【請求項１０】
上記第２の記憶手段は半導体メモリであって、
該半導体メモリは上記複数の加算器に関連して設けられた書き込みおよび読み出し用の第１のポートと、上記度数の累積値を読み出すための読み出し専用の第２のポートとを有する
ことを特徴とする請求項８に記載の動きベクトル検出装置。
【請求項１１】
上記計数値生成手段は、
上記差分絶対値がその閾値より小さいときは、該差分絶対値が小さい程絶対値の大きな値を上記計数値とする
ことを特徴とする請求項７に記載の動きベクトル検出装置。
【請求項１２】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得手段と、
上記第１の記憶手段に得られた上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正手段とをさらに備える
ことを特徴とする請求項７に記載の動きベクトル検出装置。
【請求項１３】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出手段と、
上記計数値生成手段で上記参照ブロックを構成する各画素データに対応した計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更手段とをさらに備え、
上記閾値変更手段は、アクティビティが大きい程上記閾値を大きくする
ことを特徴とする請求項７に記載の動きベクトル検出装置。
【請求項１４】
上記動きベクトル検出手段で検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定手段をさらに備え、
上記動きベクトル特定手段は、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出手段で検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項７に記載の動きベクトル検出装置。
【請求項１５】
上記動きベクトル特定手段で特定される上記参照ブロックを構成する各画素データの動きベクトルより孤立した動きベクトルを除去する孤立点除去手段をさらに備える
ことを特徴とする請求項１４に記載の動きベクトル検出装置。
【請求項１６】
上記第１の記憶手段は半導体メモリであって、
上記半導体メモリのカラム方向に延びる各ワード線は、上記複数の記憶領域に対応して分割された複数の分割ワード線からなっており、
上記半導体メモリは、任意のワード線を構成する上記複数の分割ワード線のうち任意の分割ワード線を選択的に活性化させるためのロウデコード手段を有している
ことを特徴とする請求項７に記載の動きベクトル検出装置。
【請求項１７】
上記カラム方向に延びる各ワード線は、連続したグローバルワード線と、上記複数の記憶領域に対応して分割され、それぞれ所定数のメモリセルに接続された複数のセクションワード線とから構成され、
上記ロウデコード手段は、
上記各ワード線を構成するグローバルワード線のうち任意のグローバルワード線を選択的に活性化させるメインロウデコード手段と、上記メインロウデコード手段で活性化されたグローバルワード線に対応した複数のセクションワード線のうち任意のセクションワード線を選択的に活性化させるサブロウデコード手段とからなる
ことを特徴とする請求項１６に記載の動きベクトル検出装置。
【請求項１８】
上記半導体メモリの複数の記憶領域は、それぞれ複数の参照ブロックに係る計数値を記憶するための複数のブロック領域がロウ方向に配列されてなり、
上記メインロウデコード手段は、所定数の連続するブロック領域に対応した所定数のグローバルワード線を同時に活性化させ、
上記サブロウデコード手段は、上記所定数のグローバルワード線に対応してそれぞれ活性化させるセクションワード線を、互いに異なる上記記憶領域に対応したセクションワード線とする
ことを特徴とする請求項１７に記載の動きベクトル検出装置。
【請求項１９】
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記参照フレームより取り出される所定の参照ブロックを構成する画素データを共通に入力すると共に、上記探索フレームより取り出される、上記参照ブロックを構成する画素データの探索範囲に存在する複数の画素データとの差分絶対値を演算する複数の差分絶対値演算器と、
上記参照ブロックを構成する各画素データ毎に、上記複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して、該差分絶対値がその閾値より小さいときは０以外の所定値とし、該差分絶対値がその閾値以上のときは０とするように計数値を生成し、上記探索範囲の各画素位置に対応して計数値が配された計数値テーブルを得る計数値テーブル生成手段と、
上記計数値テーブル生成手段で得られた上記参照ブロックを構成する各画素データにそれぞれ対応した計数値テーブルの各計数値をそれぞれ度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出手段と
を備えることを特徴とする動きベクトル検出装置。
【請求項２０】
上記ヒストグラムテーブル生成手段は、
上記探索範囲の画素数に対応した複数の加算器と、
上記複数の加算器にそれぞれ対応した複数の記憶領域を有する記憶手段と、
上記計数値テーブル生成手段で得られた計数値テーブルの複数の計数値をそれぞれ度数とし、該複数の度数のそれぞれを、上記記憶手段の複数の記憶領域に記憶されていた記憶データのそれぞれに、上記複数の加算器を用いて足し込み、該複数の加算器で得られた足し込みデータのそれぞれを上記記憶手段の複数の記憶領域に記憶することを、上記計数値テーブル生成手段で得られる上記参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、上記記憶手段に、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する制御手段とを有する
ことを特徴とする請求項１９に記載の動きベクトル検出装置。
【請求項２１】
上記記憶手段は半導体メモリであって、少なくとも上記複数の加算器および上記半導体メモリは一体化されており、
上記加算器を構成するビット単位の複数の加算部は、上記半導体メモリのカラムのピッチに揃えて配されている
ことを特徴とする請求項２０に記載の動きベクトル検出装置。
【請求項２２】
上記記憶手段は半導体メモリであって、
該半導体メモリは上記複数の加算器に関連して設けられた書き込みおよび読み出し用の第１のポートと、上記度数の累積値を読み出すための読み出し専用の第２のポートとを有する
ことを特徴とする請求項２０に記載の動きベクトル検出装置。
【請求項２３】
上記計数値テーブル生成手段は、
上記差分絶対値がその閾値より小さいときは、該差分絶対値が小さい程絶対値の大きな値を上記計数値とする
ことを特徴とする請求項１９に記載の動きベクトル検出装置。
【請求項２４】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得手段と、
上記計数値テーブル生成手段で得られた上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正手段とをさらに備える
ことを特徴とする請求項１９に記載の動きベクトル検出装置。
【請求項２５】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出手段と、
上記計数値テーブル生成手段で上記参照ブロックを構成する各画素データに対応した計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更手段とをさらに備え、
上記閾値変更手段は、アクティビティが大きい程上記閾値を大きくする
ことを特徴とする請求項１９に記載の動きベクトル検出装置。
【請求項２６】
上記動きベクトル検出手段で検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定手段をさらに備え、
上記動きベクトル特定手段は、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出手段で検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項１９に記載の動きベクトル検出装置。
【請求項２７】
上記動きベクトル特定手段で特定される上記参照ブロックを構成する各画素データの動きベクトルより孤立した動きベクトルを除去する孤立点除去手段をさらに備える
ことを特徴とする請求項２６に記載の動きベクトル検出装置。
【請求項２８】
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出方法であって、
上記参照フレームの所定の参照ブロックを構成する画素データと該画素データに対応した上記探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、上記参照ブロックを構成する各画素データ分行うマッチング演算ステップと、
上記参照ブロックを構成する各画素データ毎に、上記マッチング演算の結果に基づき、上記探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として０以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として０を配した計数値テーブルを生成する計数値テーブル生成ステップと、
上記各画素データに対応した計数値テーブルの各計数値を度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成ステップと、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出ステップと
を備えることを特徴とする動きベクトル検出方法。
【請求項２９】
上記計数値テーブル生成ステップでは、
上記マッチングの度合いが高いときは、該マッチングの度合いが高い程絶対値の大きな値を上記計数値として配する
ことを特徴とする請求項２８に記載の動きベクトル検出方法。
【請求項３０】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得ステップと、
上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正ステップとをさらに備える
ことを特徴とする請求項２８に記載の動きベクトル検出方法。
【請求項３１】
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出ステップと、
上記計数値テーブル生成ステップで上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更ステップとをさらに備え、
上記閾値変更ステップでは、アクティビティが大きい程上記閾値を低くする
ことを特徴とする請求項２８に記載の動きベクトル検出方法。
【請求項３２】
上記動きベクトル検出ステップで検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定ステップをさらに備え、
上記動きベクトル特定ステップでは、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出ステップで検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項２８に記載の動きベクトル検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、動きベクトルの検出装置および検出方法に関する。詳しくは、この発明は、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、マッチングの度合いが閾値より高いときは計数値として０以外の値を配し、マッチングの度合いが閾値以下のときは計数値として０を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値または極小値に基づいて参照ブロックの動きベクトルを検出することによって、参照ブロック内に動きの異なるものが複数混在する場合であっても、動きベクトルを正しく検出できるようにした動きベクトルの検出装置および検出方法に係るものである。
【０００２】
【従来の技術】
画像処理においては、動きベクトル検出は重要な要素の一つであり、その代表的な方法として、図３６に示すブロックマッチング法がある。これは、参照フレームにおけるブロック形状の画素データ群である参照ブロックが、探索フレームの所定の探索範囲内で任意の位置に取り得る参照ブロックと同一ブロック形状の画素データ群である候補ブロックのどれと最も相関が高くてマッチングがとれたものであるかを探索するものである。参照ブロックとマッチングのとれた候補ブロックとの間の相対的な位置ずれがすなわち動きベクトルであり、参照ブロック毎に１個の動きベクトルが求められる。
【０００３】
【発明が解決しようとする課題】
しかし、上述したブロックマッチング法においては、例えば図３７に示すように、参照ブロック内に動きの異なるものが複数混在する場合に、動きベクトルを正しく検出できないといった問題があった。すなわち、検出された動きベクトル自体が不正確なものであったり、あるいはどれか一つの動きについては正しく検出されるとしても他の残りの動きベクトルについては検出できない等というものである。
【０００４】
この発明の目的は、参照ブロック内に動きの異なるものが複数混在する場合であっても、動きベクトルを正しく検出できるようにした動きベクトルの検出装置および検出方法を提供することにある。
【０００５】
【課題を解決するための手段】
この発明に係る動きベクトル検出装置は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、参照ブロックを構成する各画素データ分行うマッチング演算手段と、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として０以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として０を配した計数値テーブルを生成する計数値テーブル生成手段と、各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んで、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、このヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルを検出する動きベクトル検出手段とを備えるものである。
【０００６】
また、この発明に係る動きベクトル検出方法は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出方法であって、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、参照ブロックを構成する各画素データ分行うマッチング演算ステップと、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より大きいときは計数値として０以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として０を配した計数値テーブルを生成する計数値テーブル生成ステップと、各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んで、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成ステップと、ヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルを検出する動きベクトル検出ステップとを備えるものである。
【０００７】
この発明においては、参照フレームの所定の参照ブロックを構成する画素データと、この画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算が、参照ブロックを構成する各画素データ分行われる。例えば、このマッチング演算は差分絶対値あるいは差分二乗値等のマッチングの度合いを判定する情報を得る処理である。
【０００８】
また、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として０以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として０を配した計数値テーブルが生成される。
【０００９】
また、各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込むことで、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが生成される。
【００１０】
例えば、複数の差分絶対値演算器では、探索フレームの画素データと、その画素データを探索範囲に含む参照フレームの所定の参照ブロックの画素データとの差分絶対値が演算される。そして、複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して計数値が生成される。この場合、差分絶対値がその閾値より小さいときは０以外の所定値とし、一方差分絶対値がその閾値以上であるときは０とするように計数値が生成される。
【００１１】
この複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれに対応して生成された計数値は、第１の記憶手段のこの計数値に係る差分絶対値演算器および参照ブロックを構成する画素データに対応した計数値記憶領域に書き込まれる。これにより、第１の記憶手段に、参照ブロックを構成する各画素データ毎の計数値テーブルが得られる。この計数値テーブルは、探索範囲の各画素位置に対応して計数値が配されたものである。
【００１２】
そして、複数の加算器で、第１の記憶手段に得られた計数値テーブルの複数の計数値をそれぞれ度数とし、この複数の度数のそれぞれが、第２の記憶手段の複数の記憶領域に記憶されていた記憶データに足し込まれる。このように複数の加算器で得られた足し込みデータのそれぞれは第２の記憶手段の複数の記憶領域に書き込まれる。
【００１３】
この加算演算および記憶動作が、第１の記憶手段に得られた参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返されることで、第２の記憶手段に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られる。
【００１４】
この場合、第２の記憶手段が半導体メモリであって、少なくとも複数の加算器および半導体メモリが一体化され、加算器を構成するビット単位の複数の加算部が、半導体メモリのカラムのピッチに揃えて配されることで、加算器から半導体メモリへの加算データの供給および半導体メモリから加算器への記憶データの供給が効率的に行われる。
【００１５】
またこの場合、第２の記憶手段が半導体メモリであって、この半導体メモリが、複数の加算器に関連して設けられた書き込みおよび読み出し用の第１のポートと、度数の累積値を読み出すための読み出し専用の第２のポートとを有することで、半導体メモリの記憶データの読み出しを、加算器による演算とは別個独立して行うことができる。
【００１６】
また、半導体メモリのカラム方向に延びる各ワード線は、複数の記憶領域にそれぞれ対応して分割された複数の分割ワード線からなり、半導体メモリは任意のワード線を構成する複数の分割ワード線のうち任意の分割ワード線を選択的に活性化させるためのロウデコード手段を有することで、半導体メモリにはカラム方向には分割ワード線単位で独立してアクセスすることが可能となる。
【００１７】
例えば、各ワード線は、連続したグローバルワード線と、複数の記憶領域に対応して分割され、それぞれ所定数のメモリセルに接続された複数のセクションワード線とから構成される。そして、ロウデコード手段は、各ワード線を構成するグローバルワード線のうち任意のグローバルワード線を選択的に活性化させるメインロウデコード手段と、メインロウデコード手段で活性化されたグローバルワード線に対応した複数のセクションワード線のうち任意のセクションワード線を選択的に活性化させるサブロウデコード手段とからなるものである。
【００１８】
この場合、半導体メモリの複数の記憶領域がそれぞれ複数の参照ブロックに係る計数値を記憶するための複数のブロック領域がロウ方向に配列されてなるものとし、メインロウデコード手段は、所定数の連続するブロック領域に対応した所定数のグローバルワード線を同時に活性化させ、サブロウデコード手段は、所定数のグローバルワード線に対応してそれぞれ活性化させるセクションワード線を、互いに異なる記憶領域に対応したセクションワード線とすることで、複数の差分絶対値演算器で複数の参照ブロックに関係する差分絶対値演算が並行して行われても、計数値生成手段で生成された計数値を参照ブロック毎にロウ方向の異なるワード線位置に振り分けて書き込むことが可能となり、半導体メモリに参照ブロック別に、計数値テーブルを得ることができる。
【００１９】
また例えば、複数の差分絶対値演算器で、参照フレームより取り出される参照ブロックの画素データと、その画素データの探索範囲に存在する探索フレームの画素データとの差分絶対値が演算される。そして、参照ブロックを構成する各画素データ毎に、複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して計数値が生成され、探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られる。この場合、差分絶対値がその閾値より小さいときは０以外の所定値とし、一方差分絶対値がその閾値以上であるときは０とするように計数値が生成される。
【００２０】
そして、複数の加算器で、計数値テーブルの複数の計数値をそれぞれ度数とし、この複数の度数のそれぞれが、記憶手段の複数の記憶領域に記憶されていた記憶データに足し込まれる。このように複数の加算器で得られた足し込みデータのそれぞれは記憶手段の複数の記憶領域に書き込まれる。
【００２１】
この加算演算および記憶動作が、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返されることで、記憶手段に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られる。
【００２２】
またこの場合、記憶手段が半導体メモリであって、少なくとも複数の加算器および半導体メモリが一体化され、加算器を構成するビット単位の複数の加算部が、半導体メモリのカラムのピッチに揃えて配されることで、加算器から半導体メモリへの加算データの供給および半導体メモリから加算器への記憶データの供給が効率的に行われる。
【００２３】
またこの場合、記憶手段が半導体メモリであって、この半導体メモリが、複数の加算器に関連して設けられた書き込みおよび読み出し用の第１のポートと、度数の累積値を読み出すための読み出し専用の第２のポートとを有することで、半導体メモリの記憶データの読み出しを、加算器による演算とは別個独立して行うことができる。
【００２４】
上述したように生成されたヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルが検出される。ここで、マッチングの度合いが高いときに配する計数値が正の値であるときは極大値であり、一方その計数値が負の値であるときは極小値である。このヒストグラムテーブルにおける度数の極大値または極小値の位置は、参照ブロック内に存在する動きに対応した動きベクトルを表している。
【００２５】
上述したようにマッチングの度合いが高いときのみ計数値として０以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値または極小値が明瞭に分離して示され易くなる。したがって、参照ブロックの動きベクトルを正しく検出できる。
【００２６】
なお、マッチングの度合いが高いときに配する計数値を一定値とするのではなく、マッチングの度合いが高い程、絶対値の大きな値とすることで、ヒストグラムテーブルの度数の分布を一層先鋭化できる。
【００２７】
また、参照ブロックを構成する各画素データ毎にアクティビティを求め、この各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得て、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数を掛けて補正することで、アクティビティによるマッチングの度合いの変化による不具合を軽減できる。
【００２８】
また、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値を得る際に使用される、マッチングの度合いの閾値を、それぞれこの各画素データに対応したアクティビティに基づいて、アクティビティが大きい程閾値が低くなるように変更することで、アクティビティによるマッチングの度合いの変化による不具合を軽減できる。
【００２９】
参照ブロックを構成する画素データのアクティビティが高い場合、すなわちその画素データとその周囲にある画素データとの値の違いが大きい場合（信号波形としてみた場合に波形振幅が大きい場合）、本来正しいとすべき動きベクトルの位置においてもマッチングの度合いが低くなってしまう。これは、一般的には１画素よりも小さな動き量の成分があり、そのため周囲画素データとの値の違いが大きいほど、マッチングすべき位置においても画素データ値間の差分が大きくなってしまうことによる。
【００３０】
また、検出された参照ブロックの動きベクトルに基づいて、参照ブロックを構成する各画素データの動きベクトルを特定できる。この場合、参照ブロックを構成する画素データとこの画素データの画素位置を基準として、検出された参照ブロックの１個または複数個の動きベクトルに対応した探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルをこの参照ブロックを構成する画素データの動きベクトルとするものである。この場合の相関情報は、例えば差分絶対値、差分二乗値等である。上述したように参照ブロックの動きを正しく検出できるので、各画素データに対応した動きベクトルも良好に特定できる。
【００３１】
また、このように特定される参照ブロックを構成する各画素データの動きベクトルから孤立点を除去することで、この各画素データの動きベクトルの精度を高めることができる。
【００３２】
【発明の実施の形態】
最初に、図１を参照して、この発明に係る動きベクトル検出方法について説明する。
従来のブロックマッチング法は、参照ブロックと各候補ブロックとの間の対応する画素データ間の差分絶対値をブロックについて全て加算した差分絶対値和を相関値として得、これによって生成される探索範囲に対応した大きさの相関値テーブルにおいて、テーブルの中心位置と相関値が最小である位置とのずれをその参照ブロックにおける動きベクトルとするものである。
【００３３】
この方法においては、マッチングのとれていない情報をも全て含めて相関値テーブルを生成しており、相関値の分布は広がったものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、各々の動きを示す相関値の最小値が他の動きにおける分布に埋もれ、誤った位置に最小値が生じることもある。
【００３４】
ここで、従来のブロックマッチング法の処理手順を説明する。図１の中央列に示すように、参照ブロックを構成する画素データと、これに対応する探索範囲内の各画素データとの間で１対Ｎのマッチング演算、例えば差分絶対値演算を行って、暫定的な相関値テーブルを得る。そして、参照ブロックを構成する＃１〜＃Ｍの全画素データに対応した暫定相関値テーブルの各差分絶対値を、探索範囲の画素位置毎に足し込んで、相関値テーブルを生成する。そして、この相関値テーブルに基づいて参照ブロックの動きベクトルを検出する。
【００３５】
これに対して、この発明に係る動きベクトル検出方法では、図１の右列に示すように、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、マッチングの度合いがその閾値より高いときは計数値として０以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として０を配した計数値テーブルを生成する。
【００３６】
図示の計数値テーブルにおいては、最もマッチングの度合いが高い画素位置に○を記し、次にマッチングの度合いが高い画素値に△を記し、またその次にマッチングの度合いが高い画素位置に×を記している。そして、計数値としては、○が「＋３」、△が「＋２」、×が「＋１」、印のない画素位置は「０」などとする。例えば、表１に示すように、マッチング演算結果としての例えば差分絶対値が０，１，２のときは、それぞれ計数値として「＋３」，「＋２」，「＋１」を生成し、一方その差分絶対値が３以上であるときは計数値として「０」を生成する。
【００３７】
【表１】
2004206638.tif 000003
【００３８】
そして、参照ブロックを構成する＃１〜＃Ｍの全画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んで、探索範囲の画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成する。そして、このヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルを検出する。
【００３９】
ここで、マッチングの度合いが高いときに配する計数値が正の値であるときは極大値であり、一方その計数値が負の値であるときは極小値である。このヒストグラムテーブルにおける度数の極大値または極小値の位置は、参照ブロック内に存在する動きに対応した動きベクトルを表すものとなる。
【００４０】
この発明に係る動きベクトル検出方法によれば、マッチングの度合いが高いときのみ計数値として０以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値または極小値が明瞭に分離して示され易くなる。したがって、参照ブロックの一個または複数個の動きベクトルを正しく検出できる。
【００４１】
参照ブロック内に異なる２つの動きがある場合について、従来のブロックマッチング法における相関値テーブルおよびこの発明の動きベクトル検出方法におけるヒスとグラムテーブルの一例を、それぞれ図２および図３に示す。図２に示す相関値テーブルは、この発明に係るヒストグラムテーブルとの比較を容易にするため、相関値の大小関係を入れ換えて表示している。すなわち、いずれにおいても、最大値あるいは極大値の位置が動きベクトルを表す。
【００４２】
図２に示す相関値テーブルに基づいて動きベクトルを検出する従来のブロックマッチング法では、より支配的な方の動きを示す動きベクトルは検出されるが、他方の動きを示す動きは埋もれてしまって、その動きを示す動きベクトルの検出は困難である。これに対して、図３に示すヒストグラムテーブルに基づいて動きベクトルを検出するこの発明の動きベクトル検出方法では、ヒストグラムテーブルに明瞭に分離して２個の極大値が現れており、２つの動きをそれぞれ示す２個の動きベクトルを容易に検出できる。
【００４３】
なお、上述では、マッチングの度合いを上位３位とそれ以外との４種類に分類したが、これに限る必要はなく、３種類以下あるいは５種類以上であっても構わない。また、上述では、各計数値をマッチングの度合いに応じて小さい方から「０」，「＋１」，「＋２」，「＋３」としたが、これについてもこの計数値の用い方に限るものではなく、例えば○〜×については全て「＋１」とし、それ以外を「０」としてもよい。ただし、マッチングの度合いがその閾値より高いときに配する計数値を一定値とするのではなく、マッチングの度合いが高い程、絶対値の大きな値とすることで、ヒストグラムテーブルの度数の分布を一層先鋭化できる利益がある。
【００４４】
ところで、参照ブロックを構成する画素データの周囲におけるアクティビティが高い場合、すなわちその画素データとその周囲にある画素データとの値の違いが大きい場合（信号波形としてみた場合に波形振幅が大きい場合）、本来正しいとすべき動きベクトルの位置においてもマッチングの度合いが低くなってしまう。これは、一般的には１画素よりも小さな動き量の成分があり、そのため周囲画素データとの値の違いが大きいほど、マッチングすべき位置においても画素データ値間の差分が大きくなってしまうことによる。
【００４５】
この場合の対処方法として、周囲におけるアクティビティが大きな参照ブロックに対応した計数値テーブルの計数値に関しては、その計数値の絶対値が大きくなるように設定することが有効である。
【００４６】
具体的には、まず、参照ブロックを構成する各画素データ毎に、アクティビティＡをそれぞれ求める。例えば、図４に示すように、アクティビティＡを求める対象の画素データをａとし、その周囲の４個の画素データをｂ〜ｄとし、（１）式により、アクティビティＡを算出する。
Ａ＝|a-b|+|a-c|+|a-d|+|a-e|        ・・・（１）
【００４７】
そして、参照ブロックを構成する各画素データ毎に、アクティビティＡの最大アクティビティＡ_maxに対する割合が高い程大きな値を補正係数ｋとして得るようにする。表２は、補正係数ｋの設定例を示している。この表２において、Ａ_norは、アクティビティＡを最大アクティビティＡ_maxで割って正規化したアクティビティであって、アクティビティＡの最大アクティビティＡ_maxに対する割合を示すものである。
【００４８】
【表２】
2004206638.tif 000004
【００４９】
そして、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数ｋを掛けて補正する（表１の「補正した計数値」の項参照）。
【００５０】
なお、上述したように、補正係数ｋを求め、この補正係数ｋを計数値に掛けて補正する代わりに、マッチングの度合いに応じて計数値を生成する際に用いられる閾値を、アクティビティが大きい程低くなるように変更してもよい。
【００５１】
例えば、上述の表１の例では、差分絶対値が閾値３より小さいときは計数値を０以外の値（＋３〜＋１）とし、一方差分絶対値が閾値３以上のときは計数値を０としたが、この閾値をアクティビティが大きい程大きくなるように変更する。この場合、差分絶対値の閾値を大きくするということは、マッチングの度合いの閾値を低くすることを意味している。
【００５２】
このように、閾値を変更する場合にあっても、上述した計数値を補正係数ｋで補正する場合と同様に、周囲におけるアクティビティが大きな参照ブロックの画素データに対応した計数値テーブルの計数値に関しては、その絶対値が大きくなる。これにより、アクティビティによるマッチングの度合いの変化による不具合を軽減できる。
【００５３】
上述したように、この発明に係る動きベクトル検出方法では、ヒストグラムテーブルに基づいて、参照ブロックの１個または複数個の動きベクトルを検出できる。なお、このように検出された動きベクトルに基づいて、さらに参照ブロックを構成する各画素データの動きベクトルを特定することができる。
【００５４】
その場合、参照ブロックを構成する画素データと、この画素データの画素位置を基準として上述したように検出された動きベクトルに対応した探索フレームの画素位置の画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値等を求め、最も相関が高くなる場合の動きベクトルを、その参照ブロックを構成する画素データの動きベクトルとする。
【００５５】
上述したように、参照ブロックの動きベクトルを正しく検出できることから、その動きベクトルに基づいて特定される各画素データの動きベクトルも精度の高いものとなる。なお、このように特定される参照ブロックを構成する各画素データの動きベクトルから孤立した動きベクトルを除去することで、この各画素データの動きベクトルの精度をさらに高めることができる。
【００５６】
ここで、孤立した動きベクトルとは、ある画素データの動きベクトルがその周囲の画素データの動きベクトルと異なっている場合のそのある画素データの動きベクトルを意味している。そして、孤立した動きベクトルの除去とは、そのある画素データの動きベクトルをその周囲の画素データの動きベクトルに置き換えることを意味している。
【００５７】
次に、この発明に係る動きベクトル検出装置の第１の実施の形態について説明する。図５は、第１実施の形態としての動きベクトル検出装置１００の構成を示している。この動きベクトル検出装置１００では、探索フレームに対して参照フレームは過去のフレームであり、入力フレームが探索フレームである。
【００５８】
この動きベクトル検出装置１００は、装置全体の動作を制御するシステムコントローラ１０１と、探索フレームとしての入力フレームの画像データＤｉが入力される入力端子１０２と、この画像データＤｉを、次フレームの参照フレームの画像データとして蓄積する参照フレームメモリ１０３とを有している。フレームメモリ１０３の書き込み、読み出し等の動作は、システムコントローラ１０１によって制御される。
【００５９】
また、動きベクトル検出装置１００は、マッチング演算としての差分絶対値演算を行う差分絶対値演算器１０４-1〜１０４-Nを有している。複数の演算器１０４-1〜１０４-Nは、入力端子１０２に入力される画像データＤｉを構成する画素データを探索フレームの画素データＤｃとして共通に入力すると共に、この画素データＤｃを探索範囲に含む参照フレームの所定の参照ブロック（同一タイミングでは最大２個）の画素データＤｒ-1〜Ｄｒ-Nをそれぞれ入力し、画素データＤｃと画素データＤｒ-1〜Ｄｒ-Nとの差分絶対値を演算するものである。
【００６０】
この場合、図６に示すように、探索フレーム内の入力画素とマッチング演算をするべき参照フレーム内の参照画素は、その探索範囲内に入力画素が位置する複数の参照画素である。その複数の参照画素の位置する範囲は、ある参照画素の索範囲と表裏一体の関係にあり、入力画素を仮に参照画素と見なした場合の探索範囲を左右および上下で反転したものとなる。
【００６１】
従って、これらの複数の参照画素は、多くの場合は複数の参照ブロックにわたって位置し、また１個の参照ブロックにおける画素数も１個から全てと一定ではない。また、これら参照ブロックの組み合わせおよび１個の参照ブロックにおける画素の組み合わせは、入力画素の位置によっても異なる。
【００６２】
また、図５に戻って、動きベクトル検出装置１００は、複数の演算器１０４-1〜１０４-Nで演算されて得られた複数の差分絶対値のそれぞれに対応して、計数値を生成する計数値生成部１０５を有している。この計数値生成部１０５は、計数値として、差分絶対値がその閾値より小さいときは、マッチングの度合いがその閾値より高いとして０以外の所定値を生成し、一方差分絶対値がその閾値以上のときは、マッチングの度合いがその閾値以下であるとして０を生成する。例えば、計数値生成部１０５は、上述した表１に示すように、差分絶対値が０，１，２のときは、それぞれ計数値として「＋３」，「＋２」，「＋１」を生成し、一方その差分絶対値が３以上であるときは計数値として「０」を生成する。この場合、閾値は３である。
【００６３】
また、動きベクトル検出装置１００は、複数の演算器１０４-1〜１０４-Nにそれぞれ対応した記憶領域１０６-1〜１０６-Nを有する、計数値テーブル生成用の記憶手段としての半導体メモリ１０６を有している。半導体メモリ１０６の書き込み、読み出しの動作は、システムコントローラ１０１によって制御される。
【００６４】
システムコントローラ１０１は、複数の演算器１０４-1〜１０４-Nで得られた差分絶対値にそれぞれ対応して計数値生成部１０５で生成された計数値を、その計数値に係る演算器および参照ブロックの画素位置に対応した半導体メモリ１０６の計数値記憶領域に書き込み、この半導体メモリ１０６に、参照ブロックを構成する各画素データに対応した計数値テーブルが得られるように制御する。ここで、計数値テーブルは、探索範囲の各画素位置に対応して計数値が配されたものである。
【００６５】
本実施の形態においては、図７に示すように、参照ブロックの大きさは８×８画素、探索範囲は（−３〜＋４）×（−３〜＋４）画素とされる。参照ブロックの探索範囲には、（３＋４＋１）×（３＋４＋１）＝６４個の候補ブロックが存在する。そのため、Ｎ＝６４とされる。つまり、複数の演算器１０４-1〜１０４-N、半導体メモリ１０６の複数の記憶領域１０６-1〜１０６-Nは、それぞれ６４個である。
【００６６】
複数の演算器１０４-1〜１０４-Nは、各参照ブロックについて、それぞれ１個の候補ブロックに対応した差分絶対値を求める演算を担当する。また、半導体メモリ１０６の複数の記憶領域１０６-1〜１０６-Nは、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域は、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。
【００６７】
なお、本実施の形態において、画像データＤｉはプログレッシブ方式によるものとする。入力端子１０２に入力される画像データＤｉは各ラインの画素データが連続したものとなっている。
【００６８】
図７に示すように、探索範囲は（−３〜＋４）×（−３〜＋４）画素であり、また参照ブロックの大きさは８×８画素である。そのため、ある参照ブロックに対する探索範囲の最も上の入力画素が含まれるラインを１ライン目とすると、この探索範囲の最も下の入力画素が含まれるラインは１５ライン目となる。したがって、ある参照ブロックを構成する各画素データに対応した計数値テーブルを得るためには、１５ラインの画素データが必要となる。なお、図７には、１個の参照ブロックのみを示しているが、上述の１５ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。
【００６９】
また、動きベクトル検出装置１００は、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティＡを求め、この各画素データ毎にアクティビティＡの最大アクティビティＡ_maxに対する割合が高い程大きな値を補正係数ｋとして得る補正係数取得部１０７を有している。
【００７０】
補正係数取得部１０７は、例えば以下のようにして、参照ブロックを構成する各画素データにそれぞれ対応した補正係数ｋを取得する。まず、例えば図４に示すように、アクティビティＡを求める対象の画素データをａとし、その周囲の４個の画素データをｂ〜ｄとし、上述した（１）式により、参照ブロックを構成する各画素データ毎に、アクティビティＡを求める。次に、参照ブロックを構成する各画素データ毎に、アクティビティＡを最大アクティビティＡ_maxで割って正規化したアクティビティＡ_norを求め、例えば上述した表２のように補正係数ｋを設定する。
【００７１】
また、動きベクトル検出装置１００は、上述した半導体メモリ１０６より読み出され、後述する複数の加算器１０９-1〜１０９-Nに供給される、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部１０７で取得された各画素データに対応した補正係数ｋを掛けて補正する計数値補正部１０８を有している。
【００７２】
また、動きベクトル検出装置１００は、複数の加算器１０９-1〜１０９-Nと、複数の記憶領域１１０-1〜１１０-Nを有するヒストグラムテーブル生成用の記憶手段としての半導体メモリ１１０とを有している。複数の加算器１０９-1〜１０９-Nは、半導体メモリ１０６より読み出され、計数値補正部１０８で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値をそれぞれ度数として入力すると共に、半導体メモリ１１０の複数の記憶領域１１０-1〜１１０-Nに記憶されていた記憶データのそれぞれを入力し、度数を記憶データに足し込むものである。
【００７３】
このように、複数の加算器１０９-1〜１０９-Nで得られた足し込みデータのそれぞれは、半導体メモリ１１０の複数の記憶領域１１０-1〜１１０-Nに記憶データとして書き戻される。半導体メモリ１１０の書き込み、読み出しの動作は、システムコントローラ１０１によって制御される。
【００７４】
システムコントローラ１０１は、半導体メモリ１０６からの計数値テーブルの計数値の読み出し、複数の加算器１０９-1〜１０９-Nにおける足し込みの演算、半導体メモリ１１０の複数の記憶領域１１０-1〜１１０-Nへの足し込みデータの書き戻しを、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、半導体メモリ１１０に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する。
【００７５】
また、動きベクトル検出装置１００は、参照ブロック毎に、半導体メモリ１１０に得られたヒストグラムテーブルにおける極大値に基づいて、動きベクトルを検出する動きベクトル検出部１１１を有している。ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示されることとなり、動きベクトル検出部１１１では複数個の動きベクトルが検出される。
【００７６】
また、動きベクトル検出装置１００は、動きベクトル検出部１１１で検出された、参照ブロックの一個または複数個の動きベクトルＭＶ1〜ＭＶn（ｎは１以上の整数）に基づいて、その参照ブロックを構成する各画素データの動きベクトルＭＶを特定する動きベクトル特定部１１２と、この動きベクトル特定部１１２で特定された各画素データの動きベクトルＭＶを出力する出力端子１１３とを有している。
【００７７】
動きベクトル特定部１１２は、参照ブロックを構成する画素データとこの画素データの画素位置を基準として、動きベクトル検出部１１１で検出された各動きベクトルＭＶ1〜ＭＶnに対応した探索フレームの画素位置の画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値を求め、最も相関が高くなる場合の動きベクトルをこの画素データの動きベクトルＭＶとする。
【００７８】
図８は、動きベクトル特定部１１２の具体的な構成を示している。
この動きベクトル特定部１１２は、全体の動作を制御するためのコントローラ１２１を有している。このコントローラ１２１には、入力端子１０２（図５参照）に入力される入力フレーム（探索フレーム）の画像データＤｉが供給され、この画像データＤｉは探索画素用のメモリ１２２に蓄積される。また、このコントローラ１２１には、動きベクトル検出部１１１（図５参照）で検出される動きベクトルＭＶ1〜ＭＶnが供給される。
【００７９】
また、動きベクトル特定部１１２は、相関演算部１２３-1〜１２３-nを有している。この相関演算部１２３-1〜１２３-nには、参照ブロックを構成する画素データ（参照画素データ）が、コントローラ１２１の制御によって、参照フレームメモリ１０３から読み出されて共通に供給される。また、この相関演算部１２３-1〜１２３-nには、それぞれ、その参照ブロックを構成する画素データの画素位置を基準として動きベクトルＭＶ1〜ＭＶnに対応した探索フレームの画素位置の画素データ（探索画素データ）が、コントローラ１２１の制御によって、メモリ１２２から読み出されて供給される。相関演算部１２３-1〜１２３-nは、それぞれ、参照画素データと探索画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値等を求める。
【００８０】
また、動きベクトル特定部１１２は、動きベクトル仮特定部１２４を有している。この仮特定部１２４には、動きベクトル検出部１１１で検出される動きベクトルＭＶ1〜ＭＶnが供給される。また、この仮特定部１２４には、相関演算部１２３-1〜１２３-nで求められた相関情報が供給される。この仮特定部１２４は、相関演算部１２３-1〜１２３-nで求められた相関情報に基づいて、最も相関が高くなる場合の動きベクトルを、上述の参照画素データの動きベクトルＭＶとして特定する。
【００８１】
なお、この場合、どの動きベクトルＭＶ1〜ＭＶnについても相関が充分でない場合には、動きベクトルＭＶを出力する代わりに、動きが不定である旨の情報を出力する。この動きが不定である参照画素データとしては、ノイズが重畳した画素データあるいは動きのない部分の画素データが考えられる。
【００８２】
また、動きベクトル特定部１１２は、仮特定部１２４で特定された参照ブロックを構成する各画素データの動きベクトルＭＶから孤立した動きベクトルを除去する等の補正処理を行う動きベクトル補正部１２５を有している。ここで、孤立した動きベクトルとは、上述したように、ある画素データの動きベクトルがその周囲の画素データの動きベクトルと異なっている場合のそのある画素データの動きベクトルを意味している。そして、孤立した動きベクトルの除去とは、そのある画素データの動きベクトルをその周囲の画素データの動きベクトルに置き換えることを意味している。
【００８３】
図８に示す動きベクトル特定部１１２の動作を説明する。
動きベクトル検出部１１１で検出された、所定の参照ブロックの動きベクトルＭＶ1〜ＭＶnが、コントローラ１２１および動きベクトル仮特定部１２４に供給される。
【００８４】
相関演算部１２３-1〜１２３-nには、上述した所定の参照ブロックを構成する画素データ（参照画素データ）が参照フレームメモリ１０３から読み出されて共通に供給される。また、この相関演算部１２３-1〜１２３-nには、それぞれその参照ブロックを構成する画素データの画素位置を基準として動きベクトルＭＶ1〜ＭＶnに対応した探索フレームの画素位置の画素データ（探索画素データ）がメモリ１２２から読み出されて供給される。そして、相関演算部１２３-1〜１２３-nでは、それぞれ、参照画素データと探索画素データとの間の相関情報が求められる。
【００８５】
相関演算部１２３-1〜１２３-nで求められた相関情報は仮特定部１２４に供給される。この仮特定部１２４では、相関情報に基づいて、最も相関が高くなる場合の動きベクトルが、参照画素データの動きベクトルＭＶとして特定される。この場合、どの動きベクトルＭＶ1〜ＭＶnについても相関が充分でない場合には、動きベクトルＭＶの代わりに、動きが不定である旨の情報が出力される。
【００８６】
以上の動作が、参照ブロックを構成する各画素データの全てに対して行われることで、この各画素データの動きベクトルＭＶが特定される。このように仮特定部１２４で特定された参照ブロックを構成する各画素データの動きベクトルＭＶ（動き不定情報も含む）は、動きベクトル補正部１２５で孤立した動きベクトルの除去（孤立点除去）等の補正処理が行われた後、順次あるいは同時に出力される。
【００８７】
なお、図８に示す動きベクトル特定部１１２では、動きベクトルＭＶを１画素データ分ずつ得るものであるが、相関演算部１２３-1〜１２３-nおよび動きベクトル仮特定部１２４の組を複数組備えて、動きベクトルＭＶを複数画素データ分並行して得るようにしてもよい。これにより、例えば、参照ブロックを構成する全ての画素データ分を並行して得ることができる。
【００８８】
図５に示す動きベクトル検出装置１００の動作を説明する。
入力端子１０２に入力される画像データＤｉを構成する画素データは、探索フレーム（入力フレーム）の画素データＤｃとして、複数の差分絶対値演算器１０４-1〜１０４-Nに共通に入力される。また、この画像データＤｉは、フレームメモリ１０３に供給され、次フレームで使用する参照フレームの画像データとして蓄積される。
【００８９】
また、複数の演算器１０４-1〜１０４-Nには、フレームメモリ１０３から、画素データＤｃを探索範囲に含む、参照フレームの所定の参照ブロックの画素データＤｒ-1〜Ｄｒ-Nがそれぞれ入力される。そして、複数の演算器１０４-1〜１０４-Nでは、画素データＤｃと画素データＤｒ-1〜Ｄｒ-Nとの差分絶対値がそれぞれ演算される。この場合、複数の演算器１０４-1〜１０４-Nでは、各参照ブロックについて、それぞれ１個の候補ブロックに対応した差分絶対値を求める演算が行われる。
【００９０】
複数の演算器１０４-1〜１０４-Nで得られた差分絶対値はそれぞれ計数値生成部１０５に供給される。計数値生成部１０５では、差分絶対値のそれぞれに対応して、差分絶対値がその閾値より小さいときは０以外の所定値を生成し、一方差分絶対値がその閾値以上のときは０を生成する（表１参照）。
【００９１】
複数の演算器１０４-1〜１０４-Nで得られた差分絶対値に対応して計数値生成部１０５で生成された計数値は、それぞれ計数値テーブル生成用の半導体メモリ１０６の記憶領域１０６-1〜１０６-Nに書き込みデータとして供給される。
【００９２】
上述したように、各記憶領域１０６-1〜１０６-Nには、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域には、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。
【００９３】
複数の演算器１０４-1〜１０４-Nで得られた差分絶対値にそれぞれ対応して計数値生成部１０５で生成された計数値は、その計数値に係る演算器および参照ブロックの画素位置に対応した、半導体メモリ１０６の記憶領域に書き込まれる。これにより、半導体メモリ１０６の各ブロック領域に、参照ブロックを構成する各画素データに対応した、探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られる。
【００９４】
補正係数取得部１０７では、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティＡが求められ、そしてこの各画素データ毎にアクティビティＡの最大アクティビティＡ_maxに対する割合が高い程大きな値が補正係数ｋとして取得される（図４、表２参照）。
【００９５】
半導体メモリ１０６に得られる参照ブロックを構成する各画素データに対応した計数値テーブルの計数値（Ｎ個）は順次読み出され、計数値補正部１０８を介して、複数の加算器１０９-1〜１０９-Nに供給される。計数値補正部１０８では、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部１０７で取得された各画素データに対応した補正係数ｋが掛算されて補正が行われる。
【００９６】
複数の加算器１０９-1〜１０９-Nには、半導体メモリ１０６より読み出され、計数値補正部１０８で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値がそれぞれ度数として入力され、また半導体メモリ１１０の複数の記憶領域１１０-1〜１１０-Nに記憶されていた記憶データのそれぞれが入力される。
【００９７】
そして、複数の加算器１０９-1〜１０９-Nでは、度数が記憶データに足し込まれる。複数の加算器１０９-1〜１０９-Nで得られた足し込みデータのそれぞれは、半導体メモリ１１０の複数の記憶領域１１０-1〜１１０-Nに記憶データとして書き戻される。
【００９８】
半導体メモリ１０６からの計数値テーブルの計数値の読み出し、複数の加算器１０９-1〜１０９-Nにおける足し込みの演算、半導体メモリ１１０の複数の記憶領域１１０-1〜１１０-Nへの足し込みデータの書き戻しは、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し行われる。これにより、半導体メモリ１１０に、探索範囲の各画素位置に対応して度数の累積値が配された、当該参照ブロックに対応したヒストグラムテーブルが得られる。
【００９９】
動きベクトル検出部１１１では、半導体メモリ１１０に得られる各参照ブロックに対応したヒストグラムにおける極大値に基づいて、各参照ブロックの動きベクトルＭＶ1〜ＭＶnが検出される。上述したように、ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示され、従って動きベクトル検出部１１１では複数個の動きベクトルが検出される。
【０１００】
このように動きベクトル検出部１１１で検出される、参照ブロックの動きベクトルＭＶ1〜ＭＶnは動きベクトル特定部１１２に供給される。この動きベクトル特定部１１２では、動きベクトルＭＶ1〜ＭＶnに基づいて、その参照ブロックを構成する各画素データの動きベクトルＭＶが特定される。そして、この各画素データの動きベクトルＭＶは出力端子１１３に出力される。
【０１０１】
なお、上述したように、１５ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。この場合、この１５ラインの画素データの後半側のラインの画素データは参照フレームの次の横一行分の参照ブロックについての演算処理にも使用される。そのため、その後半側のラインの画素データの入力時には、次の横一行分の参照ブロックについての演算処理も並行して行う必要がある。したがって、実際には、図５に示す動きベクトル検出装置１００における、差分絶対値演算器１０４-1〜１０４-N、計数値生成部１０５、半導体メモリ１０６、計数値補正部１０８、加算器１０９-1〜１０９-N、半導体メモリ１１０の部分は、少なくとも２系統設けられることとなる。
【０１０２】
次に、差分絶対値演算器１０４-1〜１０４-Nに関してさらに説明する。図９Ａは、入力画素データと演算器１０４-1〜１０４-N（（０，０）〜（７，７））の演算対称範囲の配置を示している。図９Ｂは、参照ブロックを構成する８×８個の画素データ（ａ，ａ）〜（ｈ，ｈ）を示している。
【０１０３】
入力画素データと差分絶対値演算をすべき参照ブロックの画素データの位置する範囲（演算対象範囲）は、各演算器（０，０）〜（７，７）が担当する範囲に分けられる。各演算器（０，０）〜（７，７）の担当範囲は１画素である。
【０１０４】
図１０に示すように、入力画素データが参照ブロックの探索範囲の１ライン目にあり、その演算対象範囲が参照ブロックの画素データ（ａ，ａ）にかかるとき、当該参照ブロックを構成する８×８個の画素データに対応する計数値テーブルを得るための演算が始まる。このとき、演算器（７，７）にはフレームメモリ１０３（図５に図示）から画素データ（ａ，ａ）が入力される。そして、この演算器（７，７）で、入力画素データと画素データ（ａ，ａ）との差分絶対値が求められる。
【０１０５】
次に、図１１に示すように、１画素期間後には、入力画素データが１画素だけ右のものに移り、入力画素データの演算対象範囲が参照ブロックの画素データ（ｂ，ａ）にかかる。このとき、演算器（７，７）にはフレームメモリ１０３から画素データ（ｂ，ａ）が入力される。そして、この演算器（７，７）で、入力画素データと画素データ（ｂ，ａ）と差分絶対値が求められる。
【０１０６】
このとき並行して、演算器（６，７）にはフレームメモリ１０３から画素データ（ａ，ａ）が入力される。そして、この演算器（６，７）で、入力画素データと画素データ（ａ，ａ）との差分絶対値が求められる。
【０１０７】
以下、１ライン目については、入力画素データが右隣のものに順次移っていき、担当範囲に参照ブロックの画素データを含む演算器では、それぞれ入力画素データと参照ブロックの画素データとの演算が並行して行われる。
【０１０８】
図１２は、７画素期間後の状態を示している。この状態では、入力画素データが７画素だけ右のものに移り、入力画素データの演算対象範囲が参照ブロックの画素データ（ｈ，ａ）までかかる。このとき、演算器（７，７）〜（０，７）には、それぞれフレームメモリ１０３から画素データ（ｈ，ａ）〜（ａ，ａ）が入力される。そして、この演算器（７，７）〜（０，７）で、それぞれ入力画素データと画素データ（ｈ，ａ）〜（ａ，ａ）との差分絶対値が求められる。
【０１０９】
また、図１３に示すように、入力画素データが参照ブロックに対する探索範囲の２ライン目にあり、その演算対象範囲が参照ブロックの画素データ（ａ，ａ），（ａ，ｂ）にかかるとき、演算器（７，７）にはフレームメモリ１０３から画素データ（ａ，ｂ）が入力される。そして、この演算器（７，７）で、入力画素データと画素データ（ａ，ｂ）との差分絶対値が求められる。
【０１１０】
このとき並行して、演算器（７，６）にはフレームメモリ１０３から画素データ（ａ，ａ）が入力される。そして、この演算器（７，６）で、入力画素データと画素データ（ａ，ａ）との差分絶対値が求められる。
【０１１１】
以下、２ライン目については、入力画素データが右隣のものに順次移っていき、担当範囲に参照ブロックの画素データを含む演算器では、それぞれ入力画素データと参照ブロックの画素データとの演算が並行して行われる。
【０１１２】
以下の３ライン目〜１５ライン目についても同様であり、入力画素データが右隣のものに順次移っていき、担当範囲に参照ブロックの画素データを含む演算器では、それぞれ入力画素データと参照ブロックの画素データとの演算が並行して行われる。
【０１１３】
図１４は、入力画素データが参照ブロックに対する探索範囲の８ライン目にあり、その演算対象範囲が参照ブロックの画素データ（ａ，ａ）〜（ａ，ｈ）までの８個の画素データにかかった状態を示している。この状態では、演算器（７，７）〜（７，０）には、フレームメモリ１０３から画素データ（ａ，ｈ）〜（ａ，ａ）が入力される。そして、この演算器（７，７）〜（７，０）で、入力画素データと画素データ（ａ，ｈ）〜（ａ，ａ）との差分絶対値が求められる。
【０１１４】
図１５は、入力画素データが参照ブロックに対する探索範囲の１５ライン目にあり、その演算対象範囲が参照ブロックの左下の画素データ（ａ，ｈ）にかかっている状態を示している。この状態では、演算器（７，０）には、フレームメモリ１０３から画素データ（ａ，ｈ）が入力される。そして、この演算器（７，０）で、入力画素データと画素データ（ａ，ｈ）との差分絶対値が求められる。
【０１１５】
図１６は、上述した各演算器１０４-1〜１０４-N（（０，０）〜（７，７））における各ラインの差分絶対値演算の過程を示している。この図１６において、１〜６４の数字はそれぞれ入力画素データと参照ブロックの画素データ（ａ，ａ）〜（ｈ，ｈ）との演算を示している。
【０１１６】
各演算器（０，０）〜（７，７）では、ある参照ブロックに関連して、それぞれ、入力画素データと参照ブロックを構成する６４個の画素データ（ａ，ａ）〜（ｈ，ｈ）との差分絶対値演算が行われる。つまり、各演算器（０，０）〜（７，７）では、それぞれ、ある参照ブロックとその参照ブロックに対する探索範囲に存在する１個の候補ブロックとの間の、対応する画素データ同士による６４個の差分絶対値演算が行われる。図１７は、一例として、演算器（７，７）における演算過程を示している。
【０１１７】
図１８は、動きベクトル（１個の参照画素に対する探索範囲の座標）を示している。参照ブロックの探索範囲には、動きベクトル（ｘ，ｙ）のそれぞれに対応した６４個の候補ブロックが存在する。そして、参照ブロックを構成する各画素データに対応した計数値テーブルは、それぞれ、動きベクトル（ｘ，ｙ）のそれぞれに対応した６４個の計数値からなっている。
【０１１８】
図１９は、半導体メモリ１０６のある１個の参照ブロックに対応した領域における、その参照ブロックを構成する各画素データ（(a,a)〜(h,h)）に対応した計数値テーブルにおける６４個の計数値（それぞれ動きベクトル（+4,+4）〜（-3,-3）に対応している）が、どの計数値記憶領域（アドレス）に記録されるかを示している。
【０１１９】
またこの図１９は、各演算器（０，０）〜（７，７）のそれぞれにおける演算によって、どの動きベクトルに対応した計数値を生成するための差分絶対値が得られるかを示している。すなわち、演算器（０，０）では、（+4,+4）の動きベクトルに対応した計数値を生成するための差分絶対値が求められる。同様に、演算器（１，０）〜（７，７）では、それぞれ（+3,+4）〜（-3,-3）の動きベクトルに対応した計数値を生成するための差分絶対値が求められる。
【０１２０】
なお、ある参照ブロックに対応して各演算器１０４-1〜１０４-N（（０，０）〜（７，７））では上述したように演算が行われるが、ある参照ブロックに関する演算と並行して、このある参照ブロック（参照ブロックＰ）に対して水平方向の前後に隣接する参照ブロックに関する演算も行われる。すなわち、図１６から明らかなように、参照ブロックＰに関する演算とその前後の参照ブロックＰ−１，Ｐ＋１に関する演算とが、時間的にだぶって行われていることがわかる。
【０１２１】
例えば、参照ブロックＰに関する演算は各ラインの１５画素を用いて行われる。１〜７番目の画素を用いるときは、参照ブロックＰに関する演算が行われると共に、これと並行して参照ブロックＰ−１に関する演算が行われる。同様に、９〜１５番目の画素を用いるときは、参照ブロックＰに関する演算が行われると共に、これと並行して参照ブロックＰ＋１に関する演算が行われる。なお、８番目の画素を用いるときは、参照ブロックＰに関する演算のみが行われる。
【０１２２】
例えば、１ライン目で、１番目の画素を用いるとき、演算器（７，７）では参照ブロックＰに関する演算が行われるが、演算器（６，７）〜（０，７）では参照ブロックＰ−１に関する演算が行われる。また例えば、１ライン目で、９番目の画素を用いるときは、演算器（６，７）〜（０，７）では参照ブロックＰに関する演算が行われるが、演算器（７，７）では参照ブロックＰ＋１に関する演算が行われる。
【０１２３】
上述したように半導体メモリ１０６の複数の記憶領域１０６-1〜１０６-Nには、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域には、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。そして、複数の演算器１０４-1〜１０４-Nで得られた差分絶対値にそれぞれ対応して計数値生成部１０５で生成された計数値は、その計数値に係る演算器および参照ブロックの画素位置に対応した半導体メモリ１０６の計数値記憶領域に書き込まれる。このことから、半導体メモリ１０６は、カラム方向には、複数の演算器１０４-1〜１０４-Nのそれぞれに対応した所定メモリセル単位で、独立してアクセス可能に構成される。
【０１２４】
次に、半導体メモリ１０６の詳細構成について説明する。図２０は、半導体メモリ１０６の全体構成を示している。半導体メモリ１０６は、８個のメモリ部１５０-1〜１５０-8から構成されている。各メモリ部１５０-1〜１５０-8は、それぞれ読み出し用のロウデコーダ１５１と、８個の記憶領域と、書き込み用のメインロウデコーダ１５３と、書き込み用のサブロウデコーダ１５４とから構成されている。
【０１２５】
メモリ部１５０-1，１５０-2，１５０-3，１５０-4，１５０-5，１５０-6，１５０-7，１５０-8の８個の記憶領域は、それぞれ、演算器１０４-1〜１０４-8，１０４-9〜１０４-16，１０４-17〜１０４-24，１０４-25〜１０４-32，１０４-33〜１０４-40，１０４-41〜１０４-48，１０４-49〜１０４-56，１０４-57〜１０４-64にそれぞれ対応した、記憶領域１０６-1〜１０６-8，１０６-9〜１０６-16，１０６-17〜１０６-24，１０６-25〜１０６-32，１０６-33〜１０６-40，１０６-41〜１０６-48，１０６-49〜１０６-56，１０６-57〜１０６-64（Ｎ＝６４）である。
【０１２６】
また、上述したように、６４個の記憶領域１０６-1〜１０６-64は、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域ＢＭを有している。さらに、各ブロック記憶領域ＢＭには、参照ブロックを構成する画素データの個数分、本実施の形態では６４個の計数値記憶領域を有している。
【０１２７】
図２１は、上述した６４個の記憶領域１０６-1〜１０６-64をさらに詳細に示したものである。各メモリ部１５０-1〜１５０-8の８個の記憶領域（例えば、１０６-1〜１０６-8）は、それぞれ、ロウ方向に６４ｍ個（ｍは横一行の参照ブロック数）、カラム方向に８ｎ（ｎは計数値生成部１０５からの計数値の出力ビット数）のメモリセルがマトリックス状に配置されて構成されている。
【０１２８】
上述したように、ある参照ブロック（参照ブロックＰ）に関する差分絶対値演算は１ライン目〜１５ライン目の画素データを用いて行われる。例えば、１ライン目の画素データを用いて演算が行われるときは、記憶領域１０６-57〜１０６-64の記憶位置に書き込みが行われる。１ライン目で４画素目の画素データを用いた演算が行われるとき、演算器（７，７）〜（４，７）で行われる演算は参照ブロックＰに関する演算であり、演算器（３，７）〜（０，７）で行われる演算は参照ブロックＰ−１に関する演算である。そのため、記憶領域１０６-57〜１０６-64の、例えば図２１（１ライン目）に格子縞で示した記憶位置に計数値の書き込みが行われる。
【０１２９】
また例えば８ライン目の画素データを用いて演算が行われるときは、記憶領域１０６-1〜１０６-64の記憶位置に書き込みが行われる。８ライン目で６画素目の画素データを用いた演算が行われるとき、演算器（７，７）〜（２，７）、（７，６）〜（２，６）、（７，５）〜（２，５）、（７，４）〜（２，４）、（７，３）〜（２，３）、（７，２）〜（２，２）、（７，１）〜（２，１）、（７，０）〜（２，０）で行われる演算は参照ブロックＰに関する演算であり、演算器（１，７）〜（０，７）、（１，６）〜（０，６）、（１，５）〜（０，５）、（１，４）〜（０，４）、（１，３）〜（０，３）、（１，２）〜（０，２）、（１，１）〜（０，１）、（１，０）〜（０，０）で行われる演算は参照ブロックＰ−１に関する演算である。そのため、記憶領域１０６-1〜１０６-64の、例えば図２１（８ライン目）に格子縞で示した記憶位置に計数値の書き込みが行われる。
【０１３０】
次に、メモリ部１５０-1〜１５０-8における書き込み用のメインロウデコーダ１５３およびサブロウデコーダ１５４についてさらに説明する。
【０１３１】
上述したように、メモリ部１５０-1においては、カラム方向に並ぶ複数のメモリセルを、差分絶対値演算器１０４-1〜１０４-8（（０，０）〜（７，０））のそれぞれに対応したｎ個毎のセクションを独立してアクセスする必要がある。そのため、メモリ部１５０-1においては、メインロウデコーダ１５３によりアクセスすべきロウ位置が指定され、サブロウデコーダ１５４によりその指定されたロウ位置にある８個のセクションのうちアクセスすべきセクションが指定される。
【０１３２】
また、上述したように、メモリ部１５０-1においては、２個の参照ブロックに対応したブロック記憶領域ＢＭに存在する２つのロウ位置を同時にアクセスする必要がある。またその場合、２つのロウ位置では、カラム方向に互いに異なるセクションをアクセスする必要がある。そのため、メモリ部１５０-1においては、メインロウデコーダ１５３によりアクセスすべき２つのロウ位置が同時に指定され、サブロウデコーダ１５４によりその指定された２つのロウ位置でカラム方向に互いに異なるセクションが指定される。
【０１３３】
以上のことは、メモリ部１５０-2〜１５０-8においても同様である。以下、メモリ部１５０-1を例にとり、図２２を参照して、メインロウデコーダ１５３およびサブロウデコーダ１５４、さらにはワード線構成の具体例を説明する。ここでは、参照ブロックＰに対応した記憶領域およびこれに隣接した参照ブロックＰ＋１に対応した記憶領域を中心に説明するが、その他の参照ブロックに対応した記憶領域はそれらの記憶領域を繰り返した構成となっている。
【０１３４】
図において、カラム方向に連続したグローバルワード線ＷＬi，ＷＬi+1，ＷＬi+2，ＷＬi+3，・・・は参照ブロックＰに対応した記憶領域に配設されたものである。グローバルワード線ＷＬi，ＷＬi+1，ＷＬi+2，ＷＬi+3，・・・のそれぞれに対応して、セクション毎に分割された分割ワード線としてのセクションワード線ＷＬs0，ＷＬs1，ＷＬs2，・・・，ＷＬs7（ＷＬs0，ＷＬs1，ＷＬs2のみ図示）が配設されている。
【０１３５】
また、カラム方向に連続したグローバルワード線ＷＬi+64，ＷＬi+65，ＷＬi+66，ＷＬi+67，・・・は参照ブロックＰ＋１に対応した記憶領域に配設されたものである。グローバルワード線ＷＬi+64，ＷＬi+65，ＷＬi+66，ＷＬi+67，・・・のそれぞれに対応して、セクション毎に分割された分割ワード線としてのセクションワード線ＷＬs0，ＷＬs1，ＷＬs2，・・・，ＷＬs7（ＷＬs0，ＷＬs1，ＷＬs2のみ図示）が配設されている。
【０１３６】
ここで、１本のセクションワード線は、上述したあるブロック記憶領域ＢＭに存在する１個の計数値記憶領域に対応している。この１本のセクションワード線には、カラム方向に並ぶｎ個のメモリセル１３１が接続されている。また、セクションワード線ＷＬs0，ＷＬs1，ＷＬs2，・・・，ＷＬs7の部分は、それぞれ記憶領域１０６-1，１０６-2，１０６-3，・・・，１０６-8に対応している。
【０１３７】
また、メインロウデコーダ１５３は、ロウデコーダＲＤＥＣと、各グローバルワード線に対応して配設されたオア（ＯＲ）ゲートおよびノア（ＮＯＲ）ゲートからなっている。
【０１３８】
参照ブロックＰに対応した記憶領域のグローバルワード線ＷＬi，ＷＬi+1，ＷＬi+2，ＷＬi+3，・・・に対応してオアゲートＧＴi，ＧＴi+1，ＧＴi+2，ＧＴi+3，・・・が配設されている。これらオアゲートＧＴi，ＧＴi+1，ＧＴi+2，ＧＴi+3，・・・の出力側は、それぞれグローバルワード線ＷＬi，ＷＬi+1，ＷＬi+2，ＷＬi+3，・・・に接続されている。
【０１３９】
参照ブロックＰ＋１に対応した記憶領域のグローバルワード線ＷＬi+64，ＷＬi+65，ＷＬi+66，ＷＬi+67，・・・に対応してノアゲートＧＴi+64，ＧＴi+65，ＧＴi+66，ＧＴi+67，・・・が配設されている。これらノアゲートＧＴi+64，ＧＴi+65，ＧＴi+66，ＧＴi+67，・・・の出力側は、それぞれそれぞれグローバルワード線ＷＬi+64，ＷＬi+65，ＷＬi+66，ＷＬi+67，・・・に接続されている。
【０１４０】
ロウデコーダＲＤＥＣには、各グローバルワード線に対応した信号出力端子、反転信号出力端子を備えている。グローバルワード線ＷＬi，ＷＬi+1，ＷＬi+2，ＷＬi+3，・・・に対応した信号出力端子に出力される信号（“１”または“０”）は、それぞれオアゲートＧＴi，ＧＴi+1，ＧＴi+2，ＧＴi+3，・・・の一方の入力側に供給される。これらオアゲートＧＴi，ＧＴi+1，ＧＴi+2，ＧＴi+3，・・・の他方の入力側には、それぞれ参照ブロックＰ−１に対応した記憶領域のグローバルワード線に対応したロウデコーダＲＤＥＣの反転信号出力端子に出力される信号が反転されて供給される。
【０１４１】
また、グローバルワード線ＷＬi+64，ＷＬi+65，ＷＬi+66，ＷＬi+67，・・・に対応した反転信号出力端子に出力される信号（“１”または“０”）は、それぞれノアゲートＧＴi+64，ＧＴi+65，ＧＴi+66，ＧＴi+67，・・・の一方の入力側に反転されて供給される。これらノアゲートＧＴi+64，ＧＴi+65，ＧＴi+66，ＧＴi+67，・・・の他方の入力側には、それぞれ参照ブロックＰに対応した記憶領域のグローバルワード線ＷＬi，ＷＬi+1，ＷＬi+2，ＷＬi+3，・・・に対応したロウデコーダＲＤＥＣの信号出力端子に出力される信号がそのまま供給される。
【０１４２】
また、サブロウデコーダ１５４は、各セクションワード線に対応して配設されたアンド（ＡＮＤ）ゲートからなっている。各アンドゲートの出力側はそれぞれ対応するセクションワード線に接続されている。参照ブロックＰに対応した記憶領域の各セクションワード線に対応しては、それぞれアンドゲートＡＧPが配設されている。各アンドゲートＡＧPの一方の入力側には、対応するグローバルワード線に得られる信号（“１”または“０”）が供給される。参照ブロックＰ＋１に対応した記憶領域の各セクションワード線に対応しては、それぞれアンドゲートＡＧP+1が配設されている。各アンドゲートＡＧP+1の一方の入力側には、対応するグローバルワード線に得られる信号（“１”または“０”）が反転されて供給される。
【０１４３】
また、ロウ方向に並ぶアンドゲートＡＧP，ＡＧP+1には、バッファＢＦ0，ＢＦ1，ＢＦ2，・・・，ＢＦ7（ＢＦ0，ＢＦ1，ＢＦ2のみ図示）を介して共通の制御信号（“１”または“０”）が供給される。この場合、この制御信号は、アンドゲートＡＧPにはそのまま供給されるが、アンドゲートＡＧP+1には反転して供給される。
【０１４４】
以上の構成において、参照ブロックＰ，Ｐ＋１に対応した記憶領域の所定のグローバルワード線、例えばＷＬi+2，ＷＬi+66を活性化し、そしてグローバルワード線ＷＬi+2に対応したセクションワード線ＷＬs0，ＷＬs1を活性化すると共に、グローバルワード線ＷＬi+66に対応したセクションワード線ＷＬs2〜ＷＬs7を活性化する場合の動作について説明する。
【０１４５】
この場合、ロウデコーダＲＤＥＣは、グローバルワード線ＷＬi，ＷＬi+1，ＷＬi+2，ＷＬi+3，・・・に対応した信号出力端子のうち、グローバルワード線ＷＬi+2に対応した信号出力端子には“１”を出力し、その他の信号出力端子には“０”を出力する。また、ロウデコーダＲＤＥＣは、グローバルワード線ＷＬi+64，ＷＬi+65，ＷＬi+66，ＷＬi+67，・・・に対応した信号出力端子の全てに“１”を出力する。またこの場合、参照ブロックＰ−１に対応した記憶領域のグローバルワード線に対応した信号出力端子の全てに“１”を出力する。
【０１４６】
これにより、オアゲートＧＴi+2の出力側に“１”が得られ、このオアゲートＧＴi+2の出力側に接続されているグローバルワード線ＷＬi+2は活性化される。また同時に、ノアゲートのＧＴi+66の出力側に“０”が得られ、このノアゲートＧＴi+66の出力側に接続されているグローバルワード線ＷＬi+66は活性化される。
【０１４７】
また、セクションワード線ＷＬs0，ＷＬs1に対応して、それぞれロウ方向に並ぶアンドゲートＡＧP，ＡＧP+1にそれぞれ制御信号として“１”を入力する。また、セクションワード線ＷＬs2〜ＷＬs7に対応して、それぞれロウ方向に並ぶアンドゲートＡＧP，ＡＧP+1にそれぞれ制御信号として“０”を入力する。
【０１４８】
これにより、グローバルワード線ＷＬi+2に対応した８本のセクションワード線のうち、セクションワード線ＷＬs0，ＷＬs1のみ“１”が印加された状態となって活性化される。また同時に、グローバルワード線ＷＬi+66に対応した８本のセクションワード線のうち、セクションワード線ＷＬs2〜ＷＬs7のみ“１”が印加された状態となって活性化される。
【０１４９】
以上は、参照ブロックＰ，Ｐ＋１に対応した記憶領域の２つのロウ位置にあるグローバルワード線（セクションワード線）を同時に活性化する動作を説明したが、その他の２つの参照ブロックに対応した記憶領域の２つのロウ位置にあるグローバルワード線（セクションワード線）を同時に活性化する場合にも同様の動作によって行うことができる。
【０１５０】
例えば、参照ブロックＰ＋１，Ｐ＋２に対応した記憶領域の２つのロウ位置にあるグローバルワード線（セクションワード線）を同時に活性化する場合、ロウデコーダＲＤＥＣは、参照ブロックＰ＋１に対応した記憶領域の８本のグローバルワード線のうち、活性化すべきグローバルワード線に対応した反転信号出力端子に“０”を出力し、その他の反転信号出力端子に“１”を出力する。また、ロウデコーダＲＤＥＣは、参照ブロックＰ＋２の記憶領域の８本のグローバルワード線に対応した信号出力端子の全てに“０”を出力する。また、この場合、ロウデコーダＲＤＥＣは、参照ブロックＰの記憶領域の８本のグローバルワード線に対応した信号出力端子の全てに“０”を出力する。
【０１５１】
次に、複数の加算器１０９-1〜１０９-Nおよびヒストグラムテーブル生成用の半導体メモリ１１０の詳細を説明する。本実施の形態において、複数の加算器１０９-1〜１０９-Nと半導体メモリ１１０は一体化されており、複数の加算器１０９-1〜１０９-Nを構成するそれぞれのビット単位の複数の加算部は、半導体メモリ１１０のカラムのピッチに揃えて配されている。
【０１５２】
図２３は、加算器１０９-1およびそれに対応した半導体メモリ１１０の記憶領域１１０-1の部分の詳細構成を示したものである。なお、説明は省略するが、加算器１０９-2〜１０９-Nおよびそれに対応した半導体メモリ１１０の記憶領域１１０-2〜１１０-Nの部分についても同様に構成されている。
【０１５３】
図２３において、記憶領域１１０-1には、カラム方向にｎ個、ロウ方向に１個のメモリセル(Memory Cell)１３０が配されている。この場合、カラム方向に並ぶｎ個のメモリセル１３０によって、１つの度数記憶領域が構成されている。
【０１５４】
図２４は、メモリセル１３０の構成例を示している。このメモリセル１３０は、書き込みおよび読み出し用の第１のポートと読み出し専用の第２のポートとを有する２ポート構成のものである。
【０１５５】
負荷素子であるＰ型ＭＯＳトランジスタＱ１とＮ型ＭＯＳトランジスタＱ３とが電源と接地との間に直列に接続されてＣＭＯＳインバータ１１が形成されていると共に、負荷素子であるＰ型ＭＯＳトランジスタＱ２とＮ型ＭＯＳトランジスタＱ４とが電源と接地との間に直列に接続されてＣＭＯＳインバータ１２が形成されている。そして、これらＣＭＯＳインバータ１１，１２の各出力、すなわち記憶ノードＮ１，Ｎ２の各電位が互いに他のＣＭＯＳインバータ１２，１１の入力、すなわちＮ型ＭＯＳトランジスタＱ４，Ｑ３の各ゲート入力となっている。
【０１５６】
ＣＭＯＳインバータ１１の記憶ノードＮ１は、ゲートが端子１３に接続されたアクセストランジスタＱ５を介して端子１４に接続される。一方、ＣＭＯＳインバータ１２の記憶ノードＮ２は、ゲートが端子１３に接続されたアクセストランジスタＱ６を介して端子１５に接続される。端子１３にはワード線ＷＬが接続され、端子１４にはビット線ＢＬが接続され、端子１５にはビット線/ＢＬ（/ＢＬはＢＬバーを表している）が接続される。
【０１５７】
また、Ｎ型ＭＯＳトランジスタＱ７，Ｑ８が直列に接続され、その一端は接地され、その他端は端子１６に接続される。そして、トランジスタＱ７のゲートは記憶ノードＮ１に接続され、トランジスタＱ８のゲートは端子１７に接続される。端子１６には読み出し専用ビット線ＢＲＬが接続され、端子１７には読み出し専用ワード線ＷＲＬが接続される。
【０１５８】
このようなメモリセル１３０において、一対のＣＭＯＳインバータ１１，１２で構成されるメモリセル部に“１”または“０”のデータが記憶される。そして、このメモリセル部とビット線ＢＬ，/ＢＬとの間で、アクセストランジスタＱ５，Ｑ６を介して、読み出しおよび書き込みのデータ転送が行われる。また、メモリセル部と読み出し専用ビット線ＢＲＬとの間で、アクセストランジスタＱ８を介して読み出しのデータ転送が行われる。
【０１５９】
なお、図２４に示すメモリセル１３０の構成例は、ＳＲＡＭ(Static Random Access Memory)セルをベースとしたものであるが、他のメモリセル、例えばＤＲＡＭ(Dynamic Random Access Memory)、ＦｅＲＡＭ(Ferro-electric Random Access Memory)、ＭＲＡＭ(Magnetic Random Access Memory)等におけるメモリセルをベースにして構成してもよい。
【０１６０】
図２３に戻って、カラム方向に並ぶメモリセル１３０に沿って、ワード線ＷＬ、および読み出し専用ワード線ＷＲＬが配されている。上述したように、ワード線ＷＬはメモリセル１３０の端子１３に接続され、読み出し専用ワード線ＷＲＬはメモリセル１３０の端子１７に接続される。
【０１６１】
また、カラム方向に並ぶｎ個のメモリセル１３０に、それぞれビット線ＢＬ0〜ＢＬn-1，/ＢＬ0〜/ＢＬn-1、および読み出し専用ビット線ＢＲＬ0〜ＢＲＬn-1が接続されている。上述したように、ビット線ＢＬ0〜ＢＬn-1はメモリセル１３０の端子１４に接続され、ビット線/ＢＬ0〜/ＢＬn-1はメモリセル１３０の端子１５に接続され、読み出し専用ビット線ＢＲＬ0〜ＢＲＬn-1はメモリセル１３０の端子１６に接続される。
【０１６２】
なお、この読み出し専用ビット線ＢＲＬ0〜ＢＲＬn-1による読み出しモードに入る前には、ビット線ＢＲＬ0〜ＢＲＬn-1をプリチャージすることが必要となる。そのために、ビット線ＢＲＬ0はＰ型ＭＯＳトランジスタＱ４１を介して電源に接続される。そして、このトランジスタＱ４１のゲートには、プリチャージ制御信号/φRPC（/φRPCはφRPCバーを表しており、プリチャージ制御信号φRPCが反転されたものである）が入力される。ビット線ＢＲＬ1〜ＢＲＬn-1に関しても同様に構成されている。
【０１６３】
また、カラム方向に並ぶｎ個のメモリセル１３０にそれぞれ対応して、センスアンプＳＡ0〜ＳＡn-1が配されている。各センスアンプＳＡ0〜ＳＡn-1は、それぞれビット線ＢＬ0〜ＢＬn-1，/ＢＬ0〜/ＢＬn-1に接続されている。これにより、ｎ個のメモリセル１３０から、ビット線対ＢＬ0，/ＢＬ0〜ＢＬn-1，/ＢＬn-1およびセンスアンプＳＡ0〜ＳＡn-1を介して記憶データＭＤ0〜ＭＤn-1の読み出しが行われる。
【０１６４】
ここで、センスアンプＳＡ0の部分の構成の詳細を説明する。
ビット線ＢＬ0は、Ｐ型ＭＯＳトランジスタＱ２１を介してＮ型ＭＯＳトランジスタＱ２２のゲートに接続される。また、ビット線/ＢＬ0は、Ｐ型ＭＯＳトランジスタＱ２３を介してＮ型ＭＯＳトランジスタＱ２４のゲートに接続される。そして、トランジスタＱ２２，Ｑ２４の互いのソースは接続され、その接続点はＮ型ＭＯＳトランジスタＱ２５を介して接地される。そして、トランジスタＱ２１，Ｑ２３のゲートには、読み出し制御信号/φR（/φRはφRバーを表しており、読み出し制御信号φRが反転されたものである）が入力され、トランジスタＱ２５のゲートには、イコライズ制御信号/φEQ（/φEQはφEQバーを表しており、イコライズ制御信号φEQが反転されたものである）が入力される。
【０１６５】
また、トランジスタＱ２２のドレインはＰ型ＭＯＳトランジスタＱ２６，Ｑ２７の並列回路を介して電源に接続され、トランジスタＱ２４のドレインはＰ型ＭＯＳトランジスタＱ２８，Ｑ２９の並列回路を介して電源に接続される。そして、トランジスタＱ２２のドレインはトランジスタＱ２９のゲートに接続され、トランジスタＱ２４のドレインはトランジスタＱ２７のゲートに接続される。トランジスタＱ２６，Ｑ２８のゲートには、イコライズ制御信号/φEQが入力される。
【０１６６】
なお、読み出しモードに入る前にはビット線対ＢＬ0，/ＢＬ0をイコライズ（プリチャージ）することが必要となる。そのために、ビット線ＢＬ0はＰ型ＭＯＳトランジスタＱ３１を介して電源に接続され、ビット線/ＢＬ0はＰ型ＭＯＳトランジスタＱ３２を介して電源に接続され、ビット線ＢＬ0，/ＢＬ0はＰ型ＭＯＳトランジスタＱ３３を介して接続される。そして、トランジスタＱ３１〜Ｑ３３のゲートには、イコライズ制御信号/φEQが入力される。
【０１６７】
センスアンプＳＡ2〜ＳＡn-1の部分の構成も、上述したセンスアンプＳＡ0の部分の構成と同様とされる。
【０１６８】
また、上述したように、カラム方向に並ぶｎ個のメモリセル１３０によって１個の度数記憶領域が構成されている。この度数記憶領域に、度数としての計数値の足し込みデータを順次書き込むことを開始する前に、この度数記憶領域を構成するメモリセル１３０の記憶データをクリアすることが必要となる。そのために、ビット線対ＢＬ0，/ＢＬ0〜ＢＬn-1，/ＢＬn-1のそれぞれに対応して、“０”のデータを生成し、このデータをメモリセル１３０に書き込みデータとして供給する構成を備えている。
【０１６９】
すなわち、ビット線ＢＬ0はＮ型ＭＯＳトランジスタＱ５１を介して接地される。そして、このトランジスタＱ５１のゲートには、クリア制御信号φCLRが入力される。ビット線対ＢＬ1，/ＢＬ1〜ＢＬn-1，/ＢＬn-1の部分に関しても同様に構成されている。
【０１７０】
また、加算器１２５-1はｎビットのそれぞれのビットの加算を行うためのｎ個の加算部１４０0〜１４０n-1からなっており、これらｎ個の加算部１４０0〜１４０n-1はメモリ領域１１０-1のカラムのピッチに揃えて配されている。
【０１７１】
加算部１４０0〜１４０7のそれぞれのＡ側の入力端子には、計数値補正部１０８から８ビットの計数値のビットデータＤ0〜Ｄ7が入力される。また、加算部１４０8〜１４０n-1のそれぞれのＡ側の入力端子は接地され、“０”が入力された状態とされる。一方、加算部１４０0〜１４０n-1のそれぞれのＢ側の入力端子には、これら加算部１４０0〜１４０n-1のそれぞれに対応して記憶領域１１０-1のカラム方向に並ぶｎ個のメモリセル１３０から、ビット線対ＢＬ0，/ＢＬ0〜ＢＬn-1，/ＢＬn-1およびセンスアンプＳＡ0〜ＳＡn-1を介して読み出された記憶データＭＤ0〜ＭＤn-1がそれぞれ入力される。
【０１７２】
加算部１４０0の非反転出力端子Ｓは、Ｎ型ＭＯＳトランジスタＱ１１のゲートに接続されている。そして、このトランジスタＱ１１のドレインは、加算部１４０0に対応したメモリセル１３０に接続されているビット線/ＢＬ0に接続される。一方、この加算部１４０0の反転出力端子/Ｓ（/ＳはＳバーを表している）は、Ｎ型ＭＯＳトランジスタＱ１２のゲートに接続される。そして、このトランジスタＱ１２のドレインは、加算部１４０0に対応したメモリセル１３０に接続されているビット線ＢＬ0に接続される。
【０１７３】
トランジスタＱ１１，Ｑ１２の互いのソースは接続され、その接続点はＮ型ＭＯＳトランジスタＱ１３，Ｑ１４の直列回路を介して接地される。そして、トランジスタＱ１４のゲートには書き込み制御信号φWが入力され、トランジスタＱ１３のゲートには加算部１４０n-1のキャリ出力端子ＣOUTに得られるＭＳＢ(Most Significant Bit)のキャリ出力ＣMSBがインバータ１４１を介して入力される。
【０１７４】
加算部１４０1〜１４０n-1の出力端子Ｓ，/Ｓ側の構成も、上述した加算部１４０0の出力端子Ｓ，/Ｓ側の構成と同様とされる。
【０１７５】
また、加算部１４０0のキャリ入力端子ＣINは接地され、“０”が入力された状態とされる。また、加算部１４０0〜１４０n-2のキャリ出力端子ＣOUTは、それぞれ加算部１４０1〜１４０n-1に接続されている。これにより、加算部１４０0〜１４０n-1でｎビット加算器が構成される。
【０１７６】
また、ビット線/ＢＬ0はＮ型ＭＯＳトランジスタＱ６１，Ｑ６２を介して接地される。そして、トランジスタＱ６１のゲートにはクリア制御信号/φCLR（/φCLRはφCLRバーを表しており、クリア制御信号φCLRが反転されたものである）が入力され、トランジスタ６２のゲートには加算部１４０n-1のキャリ出力端子ＣOUTに得られるＭＳＢのキャリ出力ＣMSBが入力される。
【０１７７】
図２３に示す加算器１０９-1および記憶領域１１０-1の部分の動作を説明する。
まず、カラム方向に並ぶｎ個のメモリセル１３０によって１個の度数記憶領域が構成されているが、このｎ個のメモリセル１３０の記憶データをクリアする動作について説明する。
【０１７８】
度数記憶領域を構成するｎ個のメモリセル１３０の記憶データをクリアする場合、書き込み制御信号φWおよびクリア制御信号φCLRはアクティブ、つまり“１”とされ、読み出し制御信号φRおよびイコライズ制御信号φEQはインアクティブ、つまり“０”とされ、さらにワード線ＷＬがワード線が活性化される。
【０１７９】
この場合、クリア制御信号φCLRがアクティブとされてトランジスタＱ５１がオンとなる。そのため、“０”のデータが生成され、このデータがビット線ＢＬ0〜ＢＬn-1に出力される。したがって、ワード線ＷＬを活性化することで、度数記憶領域を構成するｎ個のメモリセル１３０には“０”のデータが書き込まれ、記憶データのクリアが行われる。
【０１８０】
次に、度数記憶領域（ｎ個のメモリセル１３０）に記憶されている記憶データＭＤ0〜ＭＤn-1に、８ビットの計数値Ｄ0〜Ｄ7を、加算器１０９-1（加算部１４０1〜１４０n-1）で足し込み、そして加算器１０９-1で得られた足し込みデータＡＤ0〜ＡＤn-1を、当該度数記憶領域に書き戻す動作について説明する。
【０１８１】
所定の度数記憶領域に記憶されている記憶データＭＤ0〜ＭＤn-1に、８ビットの計数値Ｄ0〜Ｄ7を足し込む場合、最初に、イコライズ制御信号φEQはアクティブ、つまり“１”とされ、書き込み制御信号φW、読み出し制御信号φRおよびクリア制御信号φCLRはインアクティブ、つまり“０”とされ、ビット線対ＢＬ0，/ＢＬ0〜ＢＬn-1，/ＢＬn-1のイコライズ（プリチャージ）が行われる。
【０１８２】
この場合、ビット線対ＢＬ0，/ＢＬ0に関しては、イコライズ制御信号φEQがアクティブとされてトランジスタＱ３１〜Ｑ３３の全てがオンとなり、ビット線ＢＬ0およびビット線/ＢＬ0に電源の電位が印加され、これらビット線ＢＬ0およびビット線/ＢＬ0は同電位となる。他のビット線対ＢＬ1，/ＢＬ1〜ＢＬn-1，/ＢＬn-1に関しても同様である。
【０１８３】
このようにビット線対ＢＬ0，/ＢＬ0〜ＢＬn-1，/ＢＬn-1のイコライズが行われた状態で、読み出し制御信号φRはアクティブ、つまり“１”とされ、書き込み制御信号φW、イコライズ制御信号φEQおよびクリア制御信号φCLRはインアクティブ、つまり“０”とされ、さらにワード線ＷＬが活性化される。
【０１８４】
これにより、度数記憶領域を構成するｎ個のメモリセル１３０の記憶データＭＤ0〜ＭＤn-1が、それぞれビット線対ＢＬ0，/ＢＬ0〜ＢＬn-1，/ＢＬn-1およびセンスアンプＳＡ0〜ＳＡn-1を介して読み出され、加算部１４０0〜１４０n-1のＢ側の入力端子にそれぞれ入力される。したがって、度数記憶領域に記憶されている記憶データＭＤ0〜ＭＤn-1に、８ビットの計数値Ｄ0〜Ｄ7が足し込まれる。
【０１８５】
そして、加算部１４００〜１４０ｎ−１における加算出力、つまり足し込みデータＡＤ０〜ＡＤｎ−１が有効になったところで、書き込み制御信号φＷはアクティブ、つまり“１”とされ、読み出し制御信号φＲ、イコライズ制御信号φＥＱおよびクリア制御信号φＣＬＲはインアクティブ、つまり“０”とされ、さらにワード線ＷＬが活性化される。
【０１８６】
この場合、加算部１４００の部分に関して、足し込みデータＳ０が“１”である場合には、トランジスタＱ１１はオン、トランジスタＱ１２はオフとなり、ビット線/ＢＬ０に“０”が出力されることから、度数記憶領域を構成するｎ個のメモリセル１３０のうち、当該加算部１４００に対応するメモリセル１３０には、“１”のデータが記憶される。一方、加算部１４００の部分に関して、足し込みデータＳ０が“０”である場合には、トランジスタＱ１１はオフ、トランジスタＱ１２はオンとなり、ビット線ＢＬ０に“０”が出力されることから、度数記憶領域を構成するｎ個のメモリセル１３０のうち、当該加算部１４００に対応するメモリセル１３０には、“０”のデータが記憶される。
【０１８７】
他の加算部１４０１〜１４０ｎ−１の部分に関しても同様である。これにより、加算器１０９−１で得られた足し込みデータＡＤ０〜ＡＤｎ−１は、度数記憶領域を構成するｎ個のメモリセル１３０に書き戻される。
【０１８８】
なお、足し込みの動作において、オーバフローとなる場合には、加算部１４０ｎ−１のキャリ出力端子ＣＯＵＴに得られるＭＳＢのキャリ出力ＣＭＳＢが“１”となるため、トランジスタＱ１３はオフとなり、足し込みデータＡＤ０〜ＡＤｎ−１が、度数記憶領域を構成するｎ個のメモリセル１３０に書き込まれることはない。
【０１８９】
その代わり、この場合、トランジスタＱ６１がオンとなる他に、トランジスタＱ６２もオンとなるので、ビット線/ＢＬ０〜/ＢＬｎ−１にそれぞれ“０”の信号が出力される。したがって、度数記憶領域を構成するｎ個のメモリセル１３０のそれぞれに“１”のデータが書き込まれる。つまり、この度数記憶領域には最大値が記憶される。
【０１９０】
次に、度数記憶領域に記憶された、度数（計数値）の累積値を、読み出す場合の動作を説明する。
最初に、プリチャージ制御信号/φＲＰＣがアクティブ、つまり“１”とされ、読み出し専用ビット線ＢＲＬ０〜ＢＲＬｎ−１のプリチャージが行われる。この場合、トランジスタＱ４１はオンとなり、読み出し専用ビット線ＢＲＬ０〜ＢＲＬｎ−１のそれぞれに電源の電位が印加される。
【０１９１】
このように読み出し専用ビット線ＢＲＬ０〜ＢＲＬｎ−１のプリチャージが行われた状態で、読み出し専用ワード線ＷＲＬが活性化される。これにより、度数記憶領域を構成するｎ個のメモリセル１３０の記憶データΣ０〜Σｎ−１が、それぞれ読み出し専用ビット線ＢＲＬ０〜ＢＲＬｎ−１に得られる。ここで、記憶データΣ０〜Σｎ−１は、ｎビットの度数の累積値を構成している。
【０１９２】
以上説明したように、図５に示す動きベクトル検出装置１００においては、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間の差分絶対値演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、差分絶対値がその閾値より小さいときは計数値として０以外の値を配し、差分絶対値がその閾値以上のときは計数値として０を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値に基づいて参照ブロックの動きベクトルＭＶ１〜ＭＶｎを検出するものである。
【０１９３】
この場合、このヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。マッチング度合いが高く差分絶対値がその閾値より小さいときのみ計数値として０以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値が明瞭に分離して示され易くなる。したがって、参照ブロックの一個または複数個の動きベクトルＭＶ１〜ＭＶｎを正しく検出できる。
【０１９４】
なお、差分絶対値がその閾値より小さいときに配する計数値を正の値としているが（表１参照）、これを負の値としてもよい。その場合、ヒストグラムテーブルには、参照ブロック内に存在する動きに対応した動きベクトルを表す度数の極小値が示される。この場合であっても、上述した実施の形態と同様に、ヒストグラムテーブルに基づいて、参照ブロックの動きベクトルを正しく検出できる。
【０１９５】
また、マッチング度合いが高く差分絶対値がその閾値より小さいときに配する計数値を一定値とするのではなく、差分絶対値が小さい程、つまりマッチングの度合いが高い程、絶対値の大きな値としているので、ヒストグラムテーブルの度数の分布を一層先鋭化できる利益がある。
【０１９６】
また、補正係数取得部１０７では、参照ブロックを構成する各画素データ毎にアクティビティＡを求め、この各画素データ毎に、アクティビティＡの最大アクティビティＡ_maxに対する割合が高い程大きな値を補正係数ｋとして得て、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数ｋを掛けて補正するものであり、アクティビティＡによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【０１９７】
なお、補正係数取得部１０７で補正係数ｋを求め、計数値補正部１０８でこの補正係数ｋを計数値に掛けて補正するものであったが、この代わりに、計数値生成部１０５で差分絶対値に対応して計数値を生成する際に用いられる閾値を、アクティビティが大きい程大きくするように変更してもよい。この場合、計数値を補正係数ｋで補正する場合と同様に、周囲におけるアクティビティが大きな参照ブロックの画素データに対応した計数値テーブルの計数値に関しては、その絶対値が大きくなる。これにより、アクティビティによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【０１９８】
また、探索フレームとしての入力フレームを次フレームの参照フレームとして格納する参照フレームメモリ１０３を備え、複数の差分絶対値演算器１０４−１〜１０４−Ｎで、入力フレームの画素データが入力される都度、その画素データと、フレームメモリ１０３より読み出される、その画素データを探索範囲に含む参照フレームの所定の参照ブロックの画素データとの差分絶対値を演算するものであり、探索フレームを一旦フレームメモリに記憶し、その後に改めて処理のために読み出すといった無駄な動作を排除できる。
【０１９９】
また、半導体メモリ１０６のカラム方向に延びる各ワード線は、複数の記憶領域１０６−１〜１０６−Ｎにそれぞれ対応して分割された複数のセクションワード線からなり、半導体メモリ１０６は任意のワード線を構成する複数のセクションワード線のうち任意のセクションワード線を選択的に活性化させるためのロウデコード手段としてのメインロウデコーダ１５３およびサブロウデコーダ１５４を有するものであり、半導体メモリ１０６には、カラム方向にセクションワード線単位で独立してアクセスできる。
【０２００】
また、半導体メモリ１０６の複数の記憶領域１０６−１〜１０６−Ｎは、それぞれ複数の参照ブロックに係る計数値を記憶するための複数のブロック領域ＢＭがロウ方向に配列されてなり、メインロウデコーダ１５３は２つの連続するブロック領域ＢＭに対応したグローバルワード線を活性化させ、サブロウデコーダ１５４はその２つのグローバルワード線に対応してそれぞれ活性化させるセクションワード線を互いに異なる記憶領域に対応したセクションワード線とするものである。
【０２０１】
したがって、複数の差分絶対値演算器１０４−１〜１０４−Ｎで２つの参照ブロックに関係する差分絶対値演算が並行して行われても、計数値生成部１０５で生成された計数値を参照ブロック毎にロウ方向の異なるワード線位置に振り分けて書き込むことが可能となり、半導体メモリ１０６に参照ブロック別に、計数値テーブルを得ることができる。
【０２０２】
また、加算器１０９−１〜１０９−Ｎおよび半導体メモリ１１０が一体化され、加算器を構成するビット単位の複数の加算部１４００〜１４０ｎ−１が、半導体メモリ１１０のカラムのピッチに揃えて配されるものである（図２３参照）。したがって、加算器１０９−１〜１０９−Ｎから半導体メモリ１１０への足し込みデータの供給および半導体メモリ１１０から加算器１０９−１〜１０９−Ｎへの記憶データの供給を効率的に行うことができる。
【０２０３】
また、半導体メモリ１１０が、複数の加算器に関連して設けられた書き込みおよび読み出し用の第１のポートと、度数の累積値を読み出すための読み出し専用の第２のポートとを有するものである（図２３参照）。したがって、半導体メモリ１１０の記憶データの読み出しを、加算器１０９−１〜１０９−Ｎによる演算とは別個独立して行うことができる。
【０２０４】
また、動きベクトル検出部１１１で検出された参照ブロックの動きベクトルＭＶ１〜ＭＶｎに基づいて、動きベクトル特定部１１２で、その参照ブロックを構成する各画素データの動きベクトルＭＶを特定することができる。上述したように、参照ブロックの動きベクトルを正しく検出できることから、その動きベクトルに基づいて特定される各画素データの動きベクトルもより精度の高いものとなる。
【０２０５】
さらに、動きベクトル特定部１１２では、このように特定される参照ブロックを構成する各画素データの動きベクトルＭＶから孤立した動きベクトルを除去する等の補正処理を行うので、この各画素データの動きベクトルの精度をさらに高めることができる。
【０２０６】
なお、図５の動きベクトル検出装置１００においては、半導体メモリ１０６は、２つの参照ブロックに対応した記憶領域に存在する２つのロウ位置のグローバルワード線（セクションワード線）を活性化させるものを示したが、同様の構成によって、２つ以上の参照ブロックに対応した記憶領域に存在する３つ以上のロウ位置のグローバルワード線（セクションワード線）を活性化させることもできる。参照ブロック内の１個の参照画素に対する探索範囲によっては、複数の差分絶対値演算器において、３つ以上の参照ブロックに係る演算が行われることも想定される。その場合には、３つ以上のロウ位置のグローバルワード線（セクションワード線）を活性化させることが必要となる。
【０２０７】
また、図５の動きベクトル検出装置１００においては、半導体メモリ１１０を構成するメモリセル１３０が２ポート構成のものであったが（図２４参照）、メモリセルが２ポート構成でなくてもよく、半導体メモリ１１０の全体として２ポート構成であってもよい。さらには、半導体メモリ１１０として２ポート構成でなくとも、例えば映像信号におけるブランキング期間に度数（テーブルデータ）の読み出しを行ったり、同一機能ブロックを複数個有してフィールドまたはフレーム間でインターリーブさせて用いるなど、足し込みと度数の読み出しとを同一ポートにおいて異なる期間に行ってもよい。
【０２０８】
次に、この発明に係る動きベクトル検出装置の第２の実施の形態について説明する。図２５は、第２実施の形態としての動きベクトル検出装置２００の構成を示している。この動きベクトル検出装置２００では、参照フレームに対して探索フレームは過去のフレームであり、入力フレームが参照フレームである。
【０２０９】
この動きベクトル検出装置２００は、装置全体の動作を制御するシステムコントローラ２０１と、参照フレームとしての入力フレームの画像データＤｉが入力される入力端子２０２と、この画像データＤｉを、次フレームの探索フレームの画像データとして蓄積するフレームメモリ２０３とを有している。フレームメモリ２０３の書き込み、読み出し等の動作は、システムコントローラ２０１によって制御される。
【０２１０】
また、動きベクトル検出装置２００は、マッチング演算としての差分絶対値演算を行う差分絶対値演算器２０４−１〜２０４−Ｎを有している。ここで、Ｎは、ある参照ブロック内の１個の画素データに対する探索範囲に存在する複数の画素データの個数である。換言すれば、Ｎは、ある参照ブロックに対する探索範囲に存在する複数の候補ブロックの個数である。例えば、上述の図７に示すように、探索範囲が（−３〜＋４）×（−３〜＋４）画素であるとき、Ｎ＝６４である。
【０２１１】
複数の演算器２０４−１〜２０４−Ｎは、入力端子２０２に入力される画像データＤｉを構成する画素データを、参照フレームの所定の参照ブロックの画素データＤｒとして共通に入力すると共に、その画素データＤｒに対する探索範囲に存在する複数の画素データＤｃ−１〜Ｄｃ−Ｎをそれぞれ入力し、画素データＤｒと画素データＤｃ−１〜Ｄｃ−Ｎとの差分絶対値を演算するものである。
【０２１２】
この場合、演算器２０４−１〜２０４−Ｎにおいては、図２６に示すように、１個の参照画素とＮ個の探索範囲画素との１対Ｎのマッチング演算が行われる。ここで、参照ブロック内における参照画素の位置に応じて、この参照画素に対する探索範囲画素の位置が変化する。例えば、ハッチングして示した位置は、参照ブロックの左上の１個の画素に対するＮ個の探索範囲画素の位置を示している。
【０２１３】
また、動きベクトル検出装置２００は、複数の演算器２０４−１〜２０４−Ｎで演算されて得られた複数の差分絶対値のそれぞれに対応して計数値を生成し、画素データＤｒに対応した計数値テーブルを得る、計数値テーブル生成手段としての計数値生成部２０５を有している。この計数値テーブルは、画素データＤｒの探索範囲の各画素位置に対応して計数値が配されたものである。
【０２１４】
計数値生成部２０５は、計数値として、差分絶対値がその閾値より小さいときは、マッチングの度合いがその閾値より高いとして０以外の所定値を生成し、一方差分絶対値がその閾値以上のときは、マッチングの度合いがその閾値以下であるとして０を生成する。例えば、計数値生成部２０５は、上述した表１に示すように、差分絶対値が０，１，２のときは、それぞれ計数値として「＋３」，「＋２」，「＋１」を生成し、一方その差分絶対値が３以上であるときは計数値として「０」を生成する。
【０２１５】
また、動きベクトル検出装置２００は、計数値生成部２０５で順次得られた計数値テーブルを一時的に記憶するためのバッファメモリ２０６を有している。このバッファメモリ２０６は、複数の演算器２０４−１〜２０４−Ｎにそれぞれ対応した記憶領域２０６−１〜２０６−Ｎを有している。バッファメモリ２０６の複数の記憶領域２０６−１〜２０６−Ｎは、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域は、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。
【０２１６】
そのため、このバッファメモリ２０６が有する計数値記憶領域と、上述した図５の動きベクトル検出装置１００の半導体メモリ１０６が有する計数値記憶領域とは一対一に対応している。したがって、バッファメモリ２０６のある１個の参照ブロックに対応した領域において、その参照ブロックを構成する各画素データに対応した計数値テーブルの、探索範囲の各画素位置（(-3,-3)〜(+4,+4)）に対応した計数値が、どの記憶領域（アドレス）に記憶されるかは、上述した図１９で示される。
【０２１７】
ただし、本実施の形態においては、参照ブロックのある画素データに対応した計数値テーブルの各計数値が計数値生成部２０５から同じタイミングで得られるので、計数値記憶領域毎にアクセスする必要はなく、半導体メモリ１０６におけるような特殊なロウ制御（図２０〜図２２参照）は不要である。
【０２１８】
なお、本実施の形態において、画像データＤｉはプログレッシブ方式によるものとする。入力端子２０２に入力される画像データＤｉは各ラインの画素データが連続したものとなっている。参照ブロックの大きさが８×８画素である場合、ある参照ブロックを構成する各画素データに対応した計数値テーブルを得るためには、８ラインの画素データが必要となる。この場合、この８ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。
【０２１９】
また、動きベクトル検出装置２００は、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティＡを求め、この各画素データ毎にアクティビティＡの最大アクティビティＡ_maxに対する割合が高い程大きな値を補正係数ｋとして得る補正係数取得部２０７を有している。
【０２２０】
この補正係数取得部２０７は、図５の動きベクトル検出装置１００における補正係数取得部１０７と同様に構成されているので、その詳細説明は省略する。ただし、この補正係数取得部２０７では、探索フレームメモリ２０３に記憶されているフレームの画素データを用いて参照ブロックを構成する各画素データのアクティビティＡを得るものであって、参照ブロックを構成する各画素データにそれぞれ対応した補正係数ｋの取得タイミングが、計数値生成部２０５における各画素データに対応した計数値テーブルの生成タイミングより遅くなる。このタイミングの遅れは、上述したバッファメモリ２０６で吸収される。
【０２２１】
また、動きベクトル検出装置２００は、上述したバッファメモリ２０６より読み出され、後述する複数の加算器２０９−１〜２０９−Ｎに供給される、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部２０７で取得された各画素データに対応した補正係数ｋを掛けて補正する計数値補正部２０８を有している。
【０２２２】
また、動きベクトル検出装置２００は、複数の加算器２０９−１〜２０９−Ｎと、複数の記憶領域２１０−１〜２１０−Ｎを有するヒストグラムテーブル生成用の記憶手段としての半導体メモリ２１０とを有している。複数の加算器２０９−１〜２０９−Ｎは、バッファメモリ２０６より読み出され、計数値補正部２０８で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値（Ｎ個）をそれぞれ度数として入力すると共に、半導体メモリ２１０の複数の記憶領域２１０−１〜２１０−Ｎに記憶されていた記憶データのそれぞれを入力し、度数を記憶データに足し込むものである。この複数の加算器２０９−１〜２０９−Ｎおよび半導体メモリ２１０は、図５の動きベクトル検出装置１００における複数の加算器１０９−１〜１０９−Ｎおよび半導体メモリ１１０と同様に構成される。
【０２２３】
このように、複数の加算器２０９−１〜２０９−Ｎで得られた足し込みデータのそれぞれは、半導体メモリ２１０の複数の記憶領域２１０−１〜２１０−Ｎに記憶データとして書き戻される。半導体メモリ２１０の書き込み、読み出しの動作は、システムコントローラ２０１によって制御される。
【０２２４】
システムコントローラ２０１は、バッファメモリ２０６からの計数値テーブルの計数値の読み出し、複数の加算器２０９−１〜２０９−Ｎにおける足し込みの演算、半導体メモリ２１０の複数の記憶領域２１０−１〜２１０−Ｎへの足し込みデータの書き戻しを、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、半導体メモリ２１０に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する。
【０２２５】
また、動きベクトル検出装置２００は、参照ブロック毎に、半導体メモリ２１０に得られたヒストグラムテーブルにおける極大値に基づいて、動きベクトルを検出する動きベクトル検出部２１１を有している。ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示されることとなり、動きベクトル検出部２１１では複数個の動きベクトルを検出される。この動きベクトル検出部２１１は、図５の動きベクトル検出装置１００における動きベクトル検出部１１１と同様に構成される。
【０２２６】
また、動きベクトル検出装置２００は、動きベクトル検出部２１１で検出された、参照ブロックの一個または複数個の動きベクトルＭＶ１〜ＭＶｎ（ｎは１以上の整数）に基づいて、その参照ブロックを構成する各画素データの動きベクトルＭＶを特定する動きベクトル特定部２１２と、この動きベクトル特定部２１２で特定された各画素データの動きベクトルＭＶを出力する出力端子２１３とを有している。
【０２２７】
動きベクトル特定部２１２は、参照ブロックを構成する画素データとこの画素データの画素位置を基準として、動きベクトル検出部２１１で検出された各動きベクトルＭＶ１〜ＭＶｎに対応した探索フレームの画素位置の画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値等を求め、最も相関が高くなる場合の動きベクトルをこの画素データの動きベクトルＭＶとする。
【０２２８】
この動きベクトル特定部２１２は、図５の動きベクトル検出装置１００における動きベクトル特定部１１２（図８参照）と同様に構成される。ただし、探索画素用のメモリ１２２に代わりに参照画素用のメモリを設ける必要がある。
【０２２９】
図２５に示す動きベクトル検出装置１００の動作を説明する。
入力端子２０２に入力される画像データＤｉを構成する画素データは、参照フレーム（入力フレーム）の画素データＤｒとして、複数の差分絶対値演算器２０４−１〜２０４−Ｎに共通に入力される。また、この画像データＤｉは、フレームメモリ２０３に供給され、次フレームで使用する探索フレームの画像データとして蓄積される。
【０２３０】
また、複数の演算器２０４−１〜２０４−Ｎには、フレームメモリ２０３から、画素データＤｒに対応する探索範囲に存在する複数の画素データＤｃ−１〜Ｄｃ−Ｎがそれぞれ入力される。そして、複数の演算器２０４−１〜２０４−Ｎでは、画素データＤｒと画素データＤｃ−１〜Ｄｃ−Ｎとの差分絶対値がそれぞれ演算される。
【０２３１】
複数の演算器２０４−１〜２０４−Ｎで得られた差分絶対値はそれぞれ計数値生成部２０５に供給される。計数値生成部２０５では、差分絶対値のそれぞれに対応して、差分絶対値がその閾値より小さいときは０以外の所定値を生成し、一方差分絶対値がその閾値以上のときは０を生成する（表１参照）。これにより、計数値生成部２０５では、画素データＤｒに対応した、その探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られる。計数値生成部２０５で順次得られた計数値テーブルは、バッファメモリ２０６に供給されて一時的に記憶される。
【０２３２】
図２７は、入力画素データと探索範囲と演算器２０４−１〜２０４−Ｎ（（０，０）〜（７，７））との関係を示している。すなわち、入力画素データに対する演算範囲は、水平方向に−３〜＋４の範囲にあり、垂直方向に−３〜＋４の範囲にある。また、演算器２０４−１〜２０４−Ｎ（（０，０）〜（７，７））では、それぞれ入力画素データとその探索範囲に存在する（＋４，＋４）〜（−３，−３）の位置にある画素データとの差分絶対値演算が行われる。
【０２３３】
図２８は、参照ブロックを構成する８×８個の画素データ（ａ，ａ）〜（ｈ，ｈ）を示している。この場合、ある参照ブロックを構成する各画素データに対応した計数値テーブルを得るためには、８ラインの画素データが必要となる。なお、この８ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。バッファメモリ２０６のある１個の参照ブロックに対応した領域には、その参照ブロックを構成する各画素データに対応した計数値テーブルの、探索範囲の各画素位置（(-3,-3)〜(+4,+4)）に対応した計数値が、図１９に示すように、記憶される。
【０２３４】
補正係数取得部２０７では、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティＡが求められ、この各画素データ毎にアクティビティＡの最大アクティビティＡ_maxに対する割合が高い程大きな値が補正係数ｋとして取得される（図４、表２参照）。
【０２３５】
バッファメモリ２０６に記憶されている参照ブロックを構成する各画素データに対応した計数値テーブルの計数値（Ｎ個）は順次読み出され、計数値補正部２０８を介して、複数の加算器２０９−１〜２０９−Ｎに供給される。計数値補正部２０８では、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部２０７で取得された各画素データに対応した補正係数ｋが掛算されて補正が行われる。
【０２３６】
複数の加算器２０９−１〜２０９−Ｎには、バッファメモリ２０６より読み出され、計数値補正部２０８で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値がそれぞれ度数として入力され、また半導体メモリ２１０の複数の記憶領域２１０−１〜２１０−Ｎに記憶されていた記憶データのそれぞれが入力される。
【０２３７】
そして、複数の加算器２０９−１〜２０９−Ｎでは、度数が記憶データに足し込まれる。複数の加算器２０９−１〜２０９−Ｎで得られた足し込みデータのそれぞれは、半導体メモリ２１０の複数の記憶領域２１０−１〜２１０−Ｎに記憶データとして書き戻される。
【０２３８】
バッファメモリ２０６からの計数値テーブルの計数値の読み出し、複数の加算器２０９−１〜２０９−Ｎにおける足し込みの演算、半導体メモリ２１０の複数の記憶領域２１０−１〜２１０−Ｎへの足し込みデータの書き戻しは、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し行われる。これにより、半導体メモリ２１０に、探索範囲の各画素位置に対応して度数の累積値が配された、当該参照ブロックに対応したヒストグラムテーブルが得られる。
【０２３９】
動きベクトル検出部２１１では、半導体メモリ２１０に得られる各参照ブロックに対応したヒストグラムにおける極大値に基づいて、各参照ブロックの動きベクトルＭＶ１〜ＭＶｎが検出される。上述したように、ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示され、従って動きベクトル検出部２１１では複数個の動きベクトルが検出される。
【０２４０】
このように動きベクトル検出部２１１で検出される、参照ブロックの動きベクトルＭＶ１〜ＭＶｎは動きベクトル特定部２１２に供給される。この動きベクトル特定部２１２では、動きベクトルＭＶ１〜ＭＶｎに基づいて、その参照ブロックを構成する各画素データの動きベクトルＭＶが特定される。そして、この各画素データの動きベクトルＭＶは出力端子２１３に出力される。
【０２４１】
以上説明したように、図２５の動きベクトル検出装置２００においても、上述した図５に示す動きベクトル検出装置１００と同様に、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間の差分絶対値演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、差分絶対値がその閾値より小さいときは計数値として０以外の値を配し、差分絶対値がその閾値以上のときは計数値として０を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値に基づいて参照ブロックの動きベクトルＭＶ１〜ＭＶｎを検出するものである。
【０２４２】
この場合、このヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。マッチング度合いが高く差分絶対値がその閾値より小さいときのみ計数値として０以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値が明瞭に分離して示され易くなる。したがって、参照ブロックの一個または複数個の動きベクトルを正しく検出できる。
【０２４３】
また、図５の動きベクトル検出装置１００と同様に、マッチング度合いが高く差分絶対値がその閾値より小さいときに配する計数値を一定値とするのではなく、差分絶対値が小さい程、つまりマッチングの度合いが高い程、絶対値の大きな値としているので、ヒストグラムテーブルの度数の分布を一層先鋭化できる利益がある。
【０２４４】
また、図５の動きベクトル検出装置１００と同様に、補正係数取得部２０７では、参照ブロックを構成する各画素データ毎にアクティビティＡを求め、この各画素データ毎に、アクティビティＡの最大アクティビティＡ_maxに対する割合が高い程大きな値を補正係数ｋとして得て、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数ｋを掛けて補正するものであり、アクティビティＡによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【０２４５】
なお、補正係数取得部２０７で補正係数ｋを求め、計数値補正部２０８でこの補正係数ｋを計数値に掛けて補正するものであったが、この代わりに、計数値生成部２０５で差分絶対値に対応して計数値を生成する際に用いられる閾値を、アクティビティが大きい程大きくするように変更してもよい。この場合、計数値を補正係数ｋで補正する場合と同様に、周囲におけるアクティビティが大きな参照ブロックの画素データに対応した計数値テーブルの計数値に関しては、その絶対値が大きくなる。これにより、アクティビティによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【０２４６】
また、参照フレームとしての入力フレームを次フレームの探索フレームとして格納する探索フレームメモリ２０３を備え、複数の差分絶対値演算器２０４−１〜２０４−Ｎで、入力フレームの画素データが入力される都度、その画素データと、フレームメモリ２０３より読み出される、その画素データの探索範囲に含まれる探索フレームの複数の画素データとの差分絶対値を演算するものであり、参照フレームを一旦フレームメモリに記憶し、その後に改めて処理のために読み出すといった無駄な動作を排除できる。
【０２４７】
また、加算器２０９−１〜２０９−Ｎおよび半導体メモリ２１０の部分は、図５の動きベクトル検出装置１００における加算器１０９−１〜１０９−Ｎおよび半導体メモリ１１０と同様に構成されるものであり、同様の効果を得ることができる。
【０２４８】
また、図２５の動きベクトル検出装置２００においては、図５の動きベクトル検出装置１００と同様に、動きベクトル検出部２１１で検出された参照ブロックの動きベクトルＭＶ１〜ＭＶｎに基づいて、動きベクトル特定部２１２で、その参照ブロックを構成する各画素データの動きベクトルＭＶを特定することができる。上述したように、参照ブロックの動きベクトルを正しく検出できることから、その動きベクトルに基づいて特定される各画素データの動きベクトルもより精度の高いものとなる。
【０２４９】
さらに、動きベクトル特定部２１２では、このように特定される参照ブロックを構成する各画素データの動きベクトルＭＶから孤立点を除去する等の補正処理を行うので、この各画素データの動きベクトルの精度をさらに高めることができる。
【０２５０】
次に、この発明に係る動きベクトル検出装置の第３の実施の形態について説明する。図２９は、第３実施の形態としての動きベクトル検出装置３００の構成を示している。
【０２５１】
この動きベクトル検出装置３００は、装置全体の動作を制御するシステムコントローラ３０１と、画像データＤｉが入力される入力端子３０２と、この入力端子３０２に入力された画像データＤｉを蓄積するためのフレームメモリ３０３，３０４とを有している。
【０２５２】
また、動きベクトル検出装置３００は、入力端子３０２に対する、フレームメモリ３０３，３０４の直列接続関係を切り換える接続切り換え部３０５を有している。この接続切り換え部３０５は、入力端子３０２→フレームメモリ３０３→フレームメモリ３０４の順に接続する第１の接続状態と、入力端子３０２→フレームメモリ３０４→フレームメモリ３０３の順に接続する第２の接続状態とを、切り換える。
【０２５３】
また、動きベクトル検出装置３００は、フレームメモリ３０３に記憶されるフレームを探索フレームまたは参照フレームとすると共に、フレーム３０４に記憶されるフレームを参照フレームまたは探索フレームとして、参照ブロックの各画素データの動きベクトルＭＶを得る処理をする動きベクトル検出処理部３０６と、この動きベクトルＭＶを出力する出力端子３０７とを有している。なお、動きベクトル検出処理部３０６には、接続切り換え部３０５から、参照ブロックを構成する各画素データの周囲におけるアクティビティＡを検出する際に必要とする参照フレームの画素データＤrefが供給される。
【０２５４】
動きベクトル検出処理部３０６は、図５の動きベクトル検出装置１００における差分絶対値演算器１０４−１〜１０４−Ｎ、計数値生成部１０５、計数値テーブル生成用の半導体メモリ１０６、補正係数取得部１０７、計数値補正部１０８、加算器１０９−１〜１０９−Ｎ、ヒストグラムテーブル生成用の半導体メモリ１１０、動きベクトル検出部１１１および動きベクトル特定部１１２と同様の構成（第１の構成）、あるいは図２５の動きベクトル検出装置２００における差分絶対値演算器２０４−１〜２０４−Ｎ、計数値生成部２０５、バッファメモリ２０６、補正係数取得部２０７、計数値補正部２０８、加算器２０９−１〜２０９−Ｎ、ヒストグラムテーブル生成用の半導体メモリ２１０、動きベクトル検出部２１１および動きベクトル特定部２１２と同様の構成（第２の構成）とされる。
【０２５５】
この動きベクトル検出装置３００においては、接続切り換え部３０５による接続状態の切り換えや、複数の差分絶対値演算器への共通入力画素データを探索フレームの画素データとするか参照フレームの画素データとするかによって、図３０Ａ〜Ｄに示す構成を実現できる。図３０Ａ，Ｃの構成を採る場合、動きベクトル検出処理部３０６は第１の構成をとり、図５の動きベクトル検出装置１００と同様の動作によって、動きベクトルＭＶを検出する。一方、図３０Ｂ，Ｄの構成を採る場合、動きベクトル検出処理部３０６は第２の構成をとり、図２５の動きベクトル検出装置２００と同様の動作によって、動きベクトルＭＶを検出する。
【０２５６】
この図２９に示す動きベクトル検出装置３００によっても、上述した図５の動きベクトル検出装置１００、図２５の動きベクトル検出装置２００と同様の作用効果を得ることができる。
【０２５７】
次に、この発明に係る動きベクトル検出装置の第４の実施の形態について説明する。図３１は、第４実施の形態としての動きベクトル検出装置４００の構成を示している。
【０２５８】
この動きベクトル検出装置４００は、装置全体の動作を制御するシステムコントローラ４０１と、画像データＤｉが入力される入力端子４０２と、この入力端子４０２に入力された画像データＤｉを蓄積する直列接続されたフレームメモリ４０３，４０４とを有している。
【０２５９】
また、動きベクトル検出装置４００は、フレームメモリ４０３，４０４に記憶されたフレームの画素データを、後述する動きベクトル検出処理部４０６に、探索フレームおよび参照フレームの画素データとして選択的に供給するための接続切り換え部４０５を有している。
【０２６０】
また、動きベクトル検出装置４００は、接続切り換え部４０５より供給される探索フレームおよび参照フレームの画素データを用いて、参照ブロックの各画素データの動きベクトルＭＶを得る処理をする動きベクトル検出処理部４０６と、この動きベクトルＭＶを出力する出力端子４０７とを有している。なお、動きベクトル検出処理部４０６には、接続切り換え部４０５から、参照ブロックを構成する各画素データの周囲におけるアクティビティＡを検出する際に必要とする参照フレームの画素データＤrefが供給される。
【０２６１】
動きベクトル検出処理部４０６は、図５の動きベクトル検出装置１００における差分絶対値演算器１０４−１〜１０４−Ｎ、計数値生成部１０５、計数値テーブル生成用の半導体メモリ１０６、補正係数取得部１０７、計数値補正部１０８、加算器１０９−１〜１０９−Ｎ、ヒストグラムテーブル生成用の半導体メモリ１１０、動きベクトル検出部１１１および動きベクトル特定部１１２と同様の構成（第１の構成）、あるいは図２５の動きベクトル検出装置２００における差分絶対値演算器２０４−１〜２０４−Ｎ、計数値生成部２０５、バッファメモリ２０６、補正係数取得部２０７、計数値補正部２０８、加算器２０９−１〜２０９−Ｎ、ヒストグラムテーブル生成用の半導体メモリ２１０、動きベクトル検出部２１１および動きベクトル特定部２１２と同様の構成（第２の構成）とされる。
【０２６２】
この動きベクトル検出装置４００においては、接続切り換え部４０５による参照フレーム、探索フレームの切り換えや、複数の差分絶対値演算器への共通入力画素データを探索フレームの画素データとするか参照フレームの画素データとするかによって、上述した動きベクトル検出装置３００で実現された図３０Ａ〜Ｄに示す構成と同様の構成を実現できる。そして、図３０Ａ，Ｃと同様の構成を採る場合、動きベクトル検出処理部４０６は第１の構成をとり、図５の動きベクトル検出装置１００と同様の動作によって、動きベクトルＭＶを検出する。一方、図３０Ｂ，Ｄと同様の構成を採る場合、動きベクトル検出処理部４０６は第２の構成をとり、図２５の動きベクトル検出装置２００と同様の動作によって、動きベクトルＭＶを検出する。
【０２６３】
この図３１に示す動きベクトル検出装置４００によっても、上述した図５の動きベクトル検出装置１００、図２５の動きベクトル検出装置２００と同様の作用効果を得ることができる。
【０２６４】
上述した図５の動きベクトル検出装置１００および図２５の動きベクトル検出装置２００等はハード的に動きベクトルＭＶを検出するものを示したが、ソフト的に同様の動きベクトルＭＶを検出することもできる。
【０２６５】
図３２のフローチャートは、その場合における動きベクトルの検出処理を示している。
【０２６６】
まず、ステップＳＴ１で、検出処理を開始し、ステップＳＴ２で、参照ブロックの画素データ（参照画素）とそれに対応した探索範囲の複数の画素データ（探索画素）との間のマッチング演算、例えば差分絶対値演算を、参照ブロックを構成する各参照画素分行い、その結果に基づき、その各参照画素に対応した計数値テーブルを生成し、各計数値テーブルを足し込んでヒストグラムテーブルを得る。
【０２６７】
次に、ステップＳＴ３で、ヒストグラムの極大値または極小値に基づき、参照ブロックの動きベクトルＭＶ１〜ＭＶｎを検出する。そして、ステップＳＴ４で、参照ブロックの動きベクトルＭＶ１〜ＭＶｎに基づいて、参照ブロックを構成する各参照画素の動きベクトルＭＶを特定し、その後ステップＳＴ５で処理を終了する。
【０２６８】
図３３のフローチャートは、図３２のステップＳＴ２におけるヒストグラム生成処理の一例を示している。この生成処理例は、図５の動きベクトル検出装置１００における処理に対応したものである。
【０２６９】
まず、ステップＳＴ１１で、生成処理を開始し、ステップＳＴ１２で、Ｎ＝１に設定する。そして、ステップＳＴ１３で、参照ブロックに対応した探索範囲のＮ番目の画素データ（探索画素）とそれを探索範囲に含む所定の参照ブロックを構成する画素データ（参照画素）との間の１対Ｎのマッチング演算をする。
【０２７０】
次に、ステップＳＴ１４で、各参照画素に対応した計数値テーブルを生成する。そして、ステップＳＴ１５で、Ｎ＝Ｎmaxであるか否かを判定する。ここで、Ｎmaxは、参照ブロックに対応した探索範囲に含まれる画素データの個数である。Ｎ＝Ｎmaxでないときは、ステップＳＴ１６でＮをインクリメントし、その後にステップＳＴ１３に戻って、次の探索画素についての処理に移る。
【０２７１】
一方、ステップＳＴ１５でＮ＝Ｎmaxであるときは、各参照画素に対応した計数値テーブルが完成しているので、ステップＳＴ１７に進む。ステップＳＴ１７では、各参照画素に対応したアクティビティＡを求め、各参照画素データに対応した補正係数ｋを求める。
【０２７２】
そして、ステップＳＴ１８で、参照ブロックを構成する各参照画素に対応した計数値テーブルの計数値に補正係数ｋを掛けて補正し、探索範囲の画素位置毎に足し込み、ヒストグラムテーブルを生成する。その後に、ステップＳＴ１９で、生成処理を終了する。
【０２７３】
また、図３４のフローチャートも、図３２のステップＳＴ２におけるヒストグラム生成処理の一例を示している。この生成処理例は、図２５の動きベクトル検出装置２００における処理に対応したものである。
【０２７４】
まず、ステップＳＴ２１で、生成処理を開始し、ステップＳＴ２２で、Ｎ＝１に設定する。そして、ステップＳＴ２３で、参照ブロックを構成するＮ番目の画素データ（参照画素）とそれに対応した探索範囲の複数の画素データ（探索画素）との間の１対Ｎのマッチング演算をする。
【０２７５】
次に、ステップＳＴ２４で、Ｎ番目の参照画素に対応した計数値テーブルを生成する。そして、ステップＳＴ２５で、Ｎ番目の参照画素に対応したアクティビティＡを求め、その参照画素に対応した補正係数ｋを求める。
【０２７６】
次に、ステップＳＴ２６で、Ｎ番目の参照画素に対応した計数値テーブルの計数値に補正係数ｋを掛けて補正する。そして、ステップＳＴ２７で、Ｎ番目の参照画素に対応した計数値テーブルの計数値を、ヒストグラムテーブルに、探索範囲の画素位置毎に足し込む。
【０２７７】
次に、ステップＳＴ２８で、Ｎ＝Ｎmaxであるか否かを判定する。ここで、Ｎmaxは、参照ブロックを構成する画素データ（参照画素）の個数である。Ｎ＝Ｎmaxでないときは、ステップＳＴ２９でＮをインクリメントし、その後にステップＳＴ２３に戻って、次の参照画素についての処理に移る。一方、ステップＳＴ２８でＮ＝Ｎmaxであるときは、ヒストグラムテーブルが完成しているので、ステップＳＴ３０で、生成処理を終了する。
【０２７８】
図３５のフローチャートは、図３２のステップＳＴ４における動きベクトル特定処理の一例を示している。
【０２７９】
まず、ステップＳＴ４１で、特定処理を開始し、ステップＳＴ４２で、Ｎ＝１に設定する。そして、ステップＳＴ４３で、参照ブロックを構成するＮ番目の画素データ（参照画素）を選択する。
【０２８０】
次に、ステップＳＴ４４で、Ｍ＝１に設定し、ステップＳＴ４５で、図３２のステップＳＴ３で検出された参照ブロックの動きベクトルのＭＶ１〜ＭＶｎのうちＭ番目の動きベクトルを選択する。そして、ステップＳＴ４６で、Ｎ番目の参照画素と、Ｍ番目の動きベクトルで示す探索フレームの探索画素との間の相関情報、例えば差分絶対値あるいは差分二乗値等を求める。
【０２８１】
次に、ステップＳＴ４７で、Ｍ＝Ｍmaxであるか否かを判定する。ここで、Ｍmaxは、検出された参照ブロックの動きベクトルの個数であって、Ｍmax＝ｎである。Ｍ＝Ｍmaxでないときは、ステップＳＴ４８で、Ｍをインクリメントし、その後にステップＳＴ４５に戻って、次の動きベクトルに対応した相関情報の演算処理に移る。
【０２８２】
一方、Ｍ＝Ｍmaxであるときは、ステップＳＴ４９で、各動きベクトルＭＶ１〜ＭＶｎに対応した相関情報に基づいて、最も相関が高くなる場合の動きベクトルを、Ｎ番目の参照画素の動きベクトルＭＶとして特定する。
【０２８３】
次に、ステップＳＴ５０で、Ｎ＝Ｎmaxであるか否かを判定する。ここで、Ｎmaxは、参照ブロックを構成する画素データ（参照画素）の個数である。Ｎ＝Ｎmaxでないときは、ステップＳＴ５１で、Ｎをインクリメントし、その後にステップＳＴ４３に戻って、次の参照画素の処理に移る。
【０２８４】
一方、Ｎ＝Ｎmaxであるときは、ステップＳＴ５２に進む。このステップＳＴ５２では、参照ブロックを構成する各参照画素に対応して特定された動きベクトルＭＶから、孤立した動きベクトルを除去する等の補正処理を行って、各各参照画素に対応した動きベクトルＭＶを最終的に特定する。その後、ステップＳＴ５３で、特定処理を終了する。
【０２８５】
なお、上述実施の形態においては、通常のブロックマッチング法によって動きベクトルを検出するものを示したが、この発明は代表点ブロックマッチング法によって動きベクトルを検出するものにも、同様に適用できることは勿論である。
【０２８６】
【発明の効果】
この発明によれば、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として０以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として０を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値または極小値に基づいて参照ブロックの動きベクトルを検出するものであり、参照ブロック内に動きの異なるものが複数混在する場合であっても、動きベクトルを正しく検出できる。
【図面の簡単な説明】
【図１】本発明による動きベクトル検出方法の概略を説明するための図である。
【図２】相関値テーブルの一例（２つの動きがある場合）を示す図である。
【図３】ヒストグラムテーブルの一例（２つの動きがある場合）を示す図である。
【図４】アクティビティを求めるための画素データ例を示す図である。
【図５】第１の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図６】入力フレームが探索フレームであって過去フレームが参照フレームである場合における、動きベクトル検出のためのマッチング演算を説明するための図である。
【図７】参照ブロックと探索範囲との関係を示す図である。
【図８】動きベクトル特定部の構成を示すブロック図である。
【図９】入力画素データと参照ブロックと演算器との関係を示す図である。
【図１０】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図１１】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図１２】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図１３】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図１４】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図１５】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図１６】所定の参照ブロックを構成する各画素データに対応した計数値テーブルを得る際の、複数の差分絶対値演算器における演算過程を示す図である。
【図１７】演算器（７，７）における演算過程を示す図である。
【図１８】動きベクトル（１参照画素の探索範囲の座標）を示す図である。
【図１９】動きベクトルと計数値テーブル生成用メモリにおける記憶位置との対応関係を示す図である。
【図２０】半導体メモリの全体構成を示す図である。
【図２１】半導体メモリの記憶領域の構成を示す図である。
【図２２】メモリ部のメイン・サブロウデコーダとワード線の構成を示す図である。
【図２３】半導体メモリと加算器とを一体化した構成を示す図である。
【図２４】メモリセルの構成を示す図である。
【図２５】第２の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図２６】１個の参照画素とＮ個の探索範囲画素との１対Ｎのマッチング演算を説明するための図である。
【図２７】入力画素データと探索範囲と演算器との関係を示す図である。
【図２８】参照ブロックを示す図である。
【図２９】第３の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図３０】切り換えられる構成の種類を示す図である。
【図３１】第４の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図３２】動きベクトル検出処理を示すフローチャートである。
【図３３】ヒストグラムテーブルの生成処理の一例を示すフローチャートである。
【図３４】ヒストグラムテーブルの生成処理の一例を示すフローチャートである。
【図３５】各参照画素の動きベクトルの特定処理を示すフローチャートである。
【図３６】ブロックマッチング法を説明するための図である。
【図３７】ブロックマッチング法の問題点（複数の動きがある場合）を説明するための図である。
【符号の説明】
１００，２００，３００，４００・・・動きベクトル検出装置、１０１，２０１，３０１，４０１・・・システムコントローラ、１０２，２０２，３０２，４０３・・・入力端子、１０３・・・参照フレームメモリ、１０４−１〜１０４−Ｎ，２０４−１〜２０４−Ｎ・・・差分絶対値演算器、１０５，２０５・・・計数値生成部、１０６・・・計数値テーブル生成用の半導体メモリ、１０７，２０７・・・補正係数取得部、１０８，２０８・・・計数値補正部、１０９−１〜１０９−Ｎ，２０９−１〜２０９−Ｎ・・・加算器、１１０，２１０・・・ヒストグラムテーブル生成用の半導体メモリ、１１１，２１１・・・動きベクトル検出部、１１２，２１２・・・動きベクトル特定部、１１３，２１３，３０７，４０７・・・出力端子、１２１・・・コントローラ、１２２・・・探索画素用のメモリ、１２３−１〜１２３−ｎ・・・相関演算部、１２４・・・動きベクトル仮特定部、１２５・・・動きベクトル補正部、１５０−１〜１５０−８・・・メモリ部、１５１・・・読み出し用のロウデコーダ、１５３・・・書き込み用のメインロウデコーダ、１５４・・・書き込み用のサブロウデコーダ、２０３・・・探索フレームメモリ、２０６・・・バッファメモリ、３０３，３０４，４０３，４０４・・・フレームメモリ、３０５，４０５・・・接続切り換え部、３０６，４０６・・・動きベクトル検出処理部
【図１】
2004206638.tif 000005
【図２】
2004206638.tif 000006
【図３】
2004206638.tif 000007
【図４】
2004206638.tif 000008
【図５】
2004206638.tif 000009
【図６】
2004206638.tif 000010
【図７】
2004206638.tif 000011
【図８】
2004206638.tif 000012
【図９】
2004206638.tif 000013
【図１０】
2004206638.tif 000014
【図１１】
2004206638.tif 000015
【図１２】
2004206638.tif 000016
【図１３】
2004206638.tif 000017
【図１４】
2004206638.tif 000018
【図１５】
2004206638.tif 000019
【図１６】
2004206638.tif 000020
【図１７】
2004206638.tif 000021
【図１８】
2004206638.tif 000022
【図１９】
2004206638.tif 000023
【図２０】
2004206638.tif 000024
【図２１】
2004206638.tif 000025
【図２２】
2004206638.tif 000026
【図２３】
2004206638.tif 000027
【図２４】
2004206638.tif 000028
【図２５】
2004206638.tif 000029
【図２６】
2004206638.tif 000030
【図２７】
2004206638.tif 000031
【図２８】
2004206638.tif 000032
【図２９】
2004206638.tif 000033
【図３０】
2004206638.tif 000034
【図３１】
2004206638.tif 000035
【図３２】
2004206638.tif 000036
【図３３】
2004206638.tif 000037
【図３４】
2004206638.tif 000038
【図３５】
2004206638.tif 000039
【図３６】
2004206638.tif 000040
【図３７】
2004206638.tif 000041