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