JP2004206638A - Detection device and detection method of motion vector - Google Patents

Detection device and detection method of motion vector Download PDF

Info

Publication number
JP2004206638A
JP2004206638A JP2002378129A JP2002378129A JP2004206638A JP 2004206638 A JP2004206638 A JP 2004206638A JP 2002378129 A JP2002378129 A JP 2002378129A JP 2002378129 A JP2002378129 A JP 2002378129A JP 2004206638 A JP2004206638 A JP 2004206638A
Authority
JP
Japan
Prior art keywords
motion vector
pixel data
reference block
count value
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002378129A
Other languages
Japanese (ja)
Other versions
JP4238578B2 (en
JP2004206638A5 (en
Inventor
Tetsujiro Kondo
哲二郎 近藤
Tsutomu Ichikawa
勉 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002378129A priority Critical patent/JP4238578B2/en
Publication of JP2004206638A publication Critical patent/JP2004206638A/en
Publication of JP2004206638A5 publication Critical patent/JP2004206638A5/ja
Application granted granted Critical
Publication of JP4238578B2 publication Critical patent/JP4238578B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To successfully carry out detection of a motion vector even if a plurality of objects different in motion are mixed in a reference block. <P>SOLUTION: A detection device creates a discrete value table which allots a value other than zero as a discrete value to each pixel data constituting a reference block based on a result of matching operation when a matching degree is higher than its threshold, and allots zero as the discrete value in other cases. The device makes each discrete value of the discrete value table corresponding to all pixel data of #1-#M constituting the reference block as frequencies, adds these frequencies for each pixel position of a search extent, and creates a histogram table in which cumulative values of frequencies corresponding to pixel positions in the search extent allotted. The motion vectors of the reference block is detected based on a local maximum value or a local minimum value of frequencies of the histogram table. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は、動きベクトルの検出装置および検出方法に関する。詳しくは、この発明は、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、マッチングの度合いが閾値より高いときは計数値として0以外の値を配し、マッチングの度合いが閾値以下のときは計数値として0を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値または極小値に基づいて参照ブロックの動きベクトルを検出することによって、参照ブロック内に動きの異なるものが複数混在する場合であっても、動きベクトルを正しく検出できるようにした動きベクトルの検出装置および検出方法に係るものである。
【0002】
【従来の技術】
画像処理においては、動きベクトル検出は重要な要素の一つであり、その代表的な方法として、図36に示すブロックマッチング法がある。これは、参照フレームにおけるブロック形状の画素データ群である参照ブロックが、探索フレームの所定の探索範囲内で任意の位置に取り得る参照ブロックと同一ブロック形状の画素データ群である候補ブロックのどれと最も相関が高くてマッチングがとれたものであるかを探索するものである。参照ブロックとマッチングのとれた候補ブロックとの間の相対的な位置ずれがすなわち動きベクトルであり、参照ブロック毎に1個の動きベクトルが求められる。
【0003】
【発明が解決しようとする課題】
しかし、上述したブロックマッチング法においては、例えば図37に示すように、参照ブロック内に動きの異なるものが複数混在する場合に、動きベクトルを正しく検出できないといった問題があった。すなわち、検出された動きベクトル自体が不正確なものであったり、あるいはどれか一つの動きについては正しく検出されるとしても他の残りの動きベクトルについては検出できない等というものである。
【0004】
この発明の目的は、参照ブロック内に動きの異なるものが複数混在する場合であっても、動きベクトルを正しく検出できるようにした動きベクトルの検出装置および検出方法を提供することにある。
【0005】
【課題を解決するための手段】
この発明に係る動きベクトル検出装置は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、参照ブロックを構成する各画素データ分行うマッチング演算手段と、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として0以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として0を配した計数値テーブルを生成する計数値テーブル生成手段と、各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んで、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、このヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルを検出する動きベクトル検出手段とを備えるものである。
【0006】
また、この発明に係る動きベクトル検出方法は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出方法であって、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、参照ブロックを構成する各画素データ分行うマッチング演算ステップと、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より大きいときは計数値として0以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として0を配した計数値テーブルを生成する計数値テーブル生成ステップと、各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んで、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成ステップと、ヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルを検出する動きベクトル検出ステップとを備えるものである。
【0007】
この発明においては、参照フレームの所定の参照ブロックを構成する画素データと、この画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算が、参照ブロックを構成する各画素データ分行われる。例えば、このマッチング演算は差分絶対値あるいは差分二乗値等のマッチングの度合いを判定する情報を得る処理である。
【0008】
また、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として0以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として0を配した計数値テーブルが生成される。
【0009】
また、各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込むことで、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが生成される。
【0010】
例えば、複数の差分絶対値演算器では、探索フレームの画素データと、その画素データを探索範囲に含む参照フレームの所定の参照ブロックの画素データとの差分絶対値が演算される。そして、複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して計数値が生成される。この場合、差分絶対値がその閾値より小さいときは0以外の所定値とし、一方差分絶対値がその閾値以上であるときは0とするように計数値が生成される。
【0011】
この複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれに対応して生成された計数値は、第1の記憶手段のこの計数値に係る差分絶対値演算器および参照ブロックを構成する画素データに対応した計数値記憶領域に書き込まれる。これにより、第1の記憶手段に、参照ブロックを構成する各画素データ毎の計数値テーブルが得られる。この計数値テーブルは、探索範囲の各画素位置に対応して計数値が配されたものである。
【0012】
そして、複数の加算器で、第1の記憶手段に得られた計数値テーブルの複数の計数値をそれぞれ度数とし、この複数の度数のそれぞれが、第2の記憶手段の複数の記憶領域に記憶されていた記憶データに足し込まれる。このように複数の加算器で得られた足し込みデータのそれぞれは第2の記憶手段の複数の記憶領域に書き込まれる。
【0013】
この加算演算および記憶動作が、第1の記憶手段に得られた参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返されることで、第2の記憶手段に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られる。
【0014】
この場合、第2の記憶手段が半導体メモリであって、少なくとも複数の加算器および半導体メモリが一体化され、加算器を構成するビット単位の複数の加算部が、半導体メモリのカラムのピッチに揃えて配されることで、加算器から半導体メモリへの加算データの供給および半導体メモリから加算器への記憶データの供給が効率的に行われる。
【0015】
またこの場合、第2の記憶手段が半導体メモリであって、この半導体メモリが、複数の加算器に関連して設けられた書き込みおよび読み出し用の第1のポートと、度数の累積値を読み出すための読み出し専用の第2のポートとを有することで、半導体メモリの記憶データの読み出しを、加算器による演算とは別個独立して行うことができる。
【0016】
また、半導体メモリのカラム方向に延びる各ワード線は、複数の記憶領域にそれぞれ対応して分割された複数の分割ワード線からなり、半導体メモリは任意のワード線を構成する複数の分割ワード線のうち任意の分割ワード線を選択的に活性化させるためのロウデコード手段を有することで、半導体メモリにはカラム方向には分割ワード線単位で独立してアクセスすることが可能となる。
【0017】
例えば、各ワード線は、連続したグローバルワード線と、複数の記憶領域に対応して分割され、それぞれ所定数のメモリセルに接続された複数のセクションワード線とから構成される。そして、ロウデコード手段は、各ワード線を構成するグローバルワード線のうち任意のグローバルワード線を選択的に活性化させるメインロウデコード手段と、メインロウデコード手段で活性化されたグローバルワード線に対応した複数のセクションワード線のうち任意のセクションワード線を選択的に活性化させるサブロウデコード手段とからなるものである。
【0018】
この場合、半導体メモリの複数の記憶領域がそれぞれ複数の参照ブロックに係る計数値を記憶するための複数のブロック領域がロウ方向に配列されてなるものとし、メインロウデコード手段は、所定数の連続するブロック領域に対応した所定数のグローバルワード線を同時に活性化させ、サブロウデコード手段は、所定数のグローバルワード線に対応してそれぞれ活性化させるセクションワード線を、互いに異なる記憶領域に対応したセクションワード線とすることで、複数の差分絶対値演算器で複数の参照ブロックに関係する差分絶対値演算が並行して行われても、計数値生成手段で生成された計数値を参照ブロック毎にロウ方向の異なるワード線位置に振り分けて書き込むことが可能となり、半導体メモリに参照ブロック別に、計数値テーブルを得ることができる。
【0019】
また例えば、複数の差分絶対値演算器で、参照フレームより取り出される参照ブロックの画素データと、その画素データの探索範囲に存在する探索フレームの画素データとの差分絶対値が演算される。そして、参照ブロックを構成する各画素データ毎に、複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して計数値が生成され、探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られる。この場合、差分絶対値がその閾値より小さいときは0以外の所定値とし、一方差分絶対値がその閾値以上であるときは0とするように計数値が生成される。
【0020】
そして、複数の加算器で、計数値テーブルの複数の計数値をそれぞれ度数とし、この複数の度数のそれぞれが、記憶手段の複数の記憶領域に記憶されていた記憶データに足し込まれる。このように複数の加算器で得られた足し込みデータのそれぞれは記憶手段の複数の記憶領域に書き込まれる。
【0021】
この加算演算および記憶動作が、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返されることで、記憶手段に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られる。
【0022】
またこの場合、記憶手段が半導体メモリであって、少なくとも複数の加算器および半導体メモリが一体化され、加算器を構成するビット単位の複数の加算部が、半導体メモリのカラムのピッチに揃えて配されることで、加算器から半導体メモリへの加算データの供給および半導体メモリから加算器への記憶データの供給が効率的に行われる。
【0023】
またこの場合、記憶手段が半導体メモリであって、この半導体メモリが、複数の加算器に関連して設けられた書き込みおよび読み出し用の第1のポートと、度数の累積値を読み出すための読み出し専用の第2のポートとを有することで、半導体メモリの記憶データの読み出しを、加算器による演算とは別個独立して行うことができる。
【0024】
上述したように生成されたヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルが検出される。ここで、マッチングの度合いが高いときに配する計数値が正の値であるときは極大値であり、一方その計数値が負の値であるときは極小値である。このヒストグラムテーブルにおける度数の極大値または極小値の位置は、参照ブロック内に存在する動きに対応した動きベクトルを表している。
【0025】
上述したようにマッチングの度合いが高いときのみ計数値として0以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値または極小値が明瞭に分離して示され易くなる。したがって、参照ブロックの動きベクトルを正しく検出できる。
【0026】
なお、マッチングの度合いが高いときに配する計数値を一定値とするのではなく、マッチングの度合いが高い程、絶対値の大きな値とすることで、ヒストグラムテーブルの度数の分布を一層先鋭化できる。
【0027】
また、参照ブロックを構成する各画素データ毎にアクティビティを求め、この各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得て、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数を掛けて補正することで、アクティビティによるマッチングの度合いの変化による不具合を軽減できる。
【0028】
また、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値を得る際に使用される、マッチングの度合いの閾値を、それぞれこの各画素データに対応したアクティビティに基づいて、アクティビティが大きい程閾値が低くなるように変更することで、アクティビティによるマッチングの度合いの変化による不具合を軽減できる。
【0029】
参照ブロックを構成する画素データのアクティビティが高い場合、すなわちその画素データとその周囲にある画素データとの値の違いが大きい場合(信号波形としてみた場合に波形振幅が大きい場合)、本来正しいとすべき動きベクトルの位置においてもマッチングの度合いが低くなってしまう。これは、一般的には1画素よりも小さな動き量の成分があり、そのため周囲画素データとの値の違いが大きいほど、マッチングすべき位置においても画素データ値間の差分が大きくなってしまうことによる。
【0030】
また、検出された参照ブロックの動きベクトルに基づいて、参照ブロックを構成する各画素データの動きベクトルを特定できる。この場合、参照ブロックを構成する画素データとこの画素データの画素位置を基準として、検出された参照ブロックの1個または複数個の動きベクトルに対応した探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルをこの参照ブロックを構成する画素データの動きベクトルとするものである。この場合の相関情報は、例えば差分絶対値、差分二乗値等である。上述したように参照ブロックの動きを正しく検出できるので、各画素データに対応した動きベクトルも良好に特定できる。
【0031】
また、このように特定される参照ブロックを構成する各画素データの動きベクトルから孤立点を除去することで、この各画素データの動きベクトルの精度を高めることができる。
【0032】
【発明の実施の形態】
最初に、図1を参照して、この発明に係る動きベクトル検出方法について説明する。
従来のブロックマッチング法は、参照ブロックと各候補ブロックとの間の対応する画素データ間の差分絶対値をブロックについて全て加算した差分絶対値和を相関値として得、これによって生成される探索範囲に対応した大きさの相関値テーブルにおいて、テーブルの中心位置と相関値が最小である位置とのずれをその参照ブロックにおける動きベクトルとするものである。
【0033】
この方法においては、マッチングのとれていない情報をも全て含めて相関値テーブルを生成しており、相関値の分布は広がったものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、各々の動きを示す相関値の最小値が他の動きにおける分布に埋もれ、誤った位置に最小値が生じることもある。
【0034】
ここで、従来のブロックマッチング法の処理手順を説明する。図1の中央列に示すように、参照ブロックを構成する画素データと、これに対応する探索範囲内の各画素データとの間で1対Nのマッチング演算、例えば差分絶対値演算を行って、暫定的な相関値テーブルを得る。そして、参照ブロックを構成する#1〜#Mの全画素データに対応した暫定相関値テーブルの各差分絶対値を、探索範囲の画素位置毎に足し込んで、相関値テーブルを生成する。そして、この相関値テーブルに基づいて参照ブロックの動きベクトルを検出する。
【0035】
これに対して、この発明に係る動きベクトル検出方法では、図1の右列に示すように、参照ブロックを構成する各画素データ毎に、マッチング演算の結果に基づき、マッチングの度合いがその閾値より高いときは計数値として0以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として0を配した計数値テーブルを生成する。
【0036】
図示の計数値テーブルにおいては、最もマッチングの度合いが高い画素位置に○を記し、次にマッチングの度合いが高い画素値に△を記し、またその次にマッチングの度合いが高い画素位置に×を記している。そして、計数値としては、○が「+3」、△が「+2」、×が「+1」、印のない画素位置は「0」などとする。例えば、表1に示すように、マッチング演算結果としての例えば差分絶対値が0,1,2のときは、それぞれ計数値として「+3」,「+2」,「+1」を生成し、一方その差分絶対値が3以上であるときは計数値として「0」を生成する。
【0037】
【表1】

Figure 2004206638
【0038】
そして、参照ブロックを構成する#1〜#Mの全画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んで、探索範囲の画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成する。そして、このヒストグラムテーブルの度数の極大値または極小値に基づいて、参照ブロックの動きベクトルを検出する。
【0039】
ここで、マッチングの度合いが高いときに配する計数値が正の値であるときは極大値であり、一方その計数値が負の値であるときは極小値である。このヒストグラムテーブルにおける度数の極大値または極小値の位置は、参照ブロック内に存在する動きに対応した動きベクトルを表すものとなる。
【0040】
この発明に係る動きベクトル検出方法によれば、マッチングの度合いが高いときのみ計数値として0以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値または極小値が明瞭に分離して示され易くなる。したがって、参照ブロックの一個または複数個の動きベクトルを正しく検出できる。
【0041】
参照ブロック内に異なる2つの動きがある場合について、従来のブロックマッチング法における相関値テーブルおよびこの発明の動きベクトル検出方法におけるヒスとグラムテーブルの一例を、それぞれ図2および図3に示す。図2に示す相関値テーブルは、この発明に係るヒストグラムテーブルとの比較を容易にするため、相関値の大小関係を入れ換えて表示している。すなわち、いずれにおいても、最大値あるいは極大値の位置が動きベクトルを表す。
【0042】
図2に示す相関値テーブルに基づいて動きベクトルを検出する従来のブロックマッチング法では、より支配的な方の動きを示す動きベクトルは検出されるが、他方の動きを示す動きは埋もれてしまって、その動きを示す動きベクトルの検出は困難である。これに対して、図3に示すヒストグラムテーブルに基づいて動きベクトルを検出するこの発明の動きベクトル検出方法では、ヒストグラムテーブルに明瞭に分離して2個の極大値が現れており、2つの動きをそれぞれ示す2個の動きベクトルを容易に検出できる。
【0043】
なお、上述では、マッチングの度合いを上位3位とそれ以外との4種類に分類したが、これに限る必要はなく、3種類以下あるいは5種類以上であっても構わない。また、上述では、各計数値をマッチングの度合いに応じて小さい方から「0」,「+1」,「+2」,「+3」としたが、これについてもこの計数値の用い方に限るものではなく、例えば○〜×については全て「+1」とし、それ以外を「0」としてもよい。ただし、マッチングの度合いがその閾値より高いときに配する計数値を一定値とするのではなく、マッチングの度合いが高い程、絶対値の大きな値とすることで、ヒストグラムテーブルの度数の分布を一層先鋭化できる利益がある。
【0044】
ところで、参照ブロックを構成する画素データの周囲におけるアクティビティが高い場合、すなわちその画素データとその周囲にある画素データとの値の違いが大きい場合(信号波形としてみた場合に波形振幅が大きい場合)、本来正しいとすべき動きベクトルの位置においてもマッチングの度合いが低くなってしまう。これは、一般的には1画素よりも小さな動き量の成分があり、そのため周囲画素データとの値の違いが大きいほど、マッチングすべき位置においても画素データ値間の差分が大きくなってしまうことによる。
【0045】
この場合の対処方法として、周囲におけるアクティビティが大きな参照ブロックに対応した計数値テーブルの計数値に関しては、その計数値の絶対値が大きくなるように設定することが有効である。
【0046】
具体的には、まず、参照ブロックを構成する各画素データ毎に、アクティビティAをそれぞれ求める。例えば、図4に示すように、アクティビティAを求める対象の画素データをaとし、その周囲の4個の画素データをb〜dとし、(1)式により、アクティビティAを算出する。
A=|a-b|+|a-c|+|a-d|+|a-e| ・・・(1)
【0047】
そして、参照ブロックを構成する各画素データ毎に、アクティビティAの最大アクティビティA_maxに対する割合が高い程大きな値を補正係数kとして得るようにする。表2は、補正係数kの設定例を示している。この表2において、A_norは、アクティビティAを最大アクティビティA_maxで割って正規化したアクティビティであって、アクティビティAの最大アクティビティA_maxに対する割合を示すものである。
【0048】
【表2】
Figure 2004206638
【0049】
そして、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数kを掛けて補正する(表1の「補正した計数値」の項参照)。
【0050】
なお、上述したように、補正係数kを求め、この補正係数kを計数値に掛けて補正する代わりに、マッチングの度合いに応じて計数値を生成する際に用いられる閾値を、アクティビティが大きい程低くなるように変更してもよい。
【0051】
例えば、上述の表1の例では、差分絶対値が閾値3より小さいときは計数値を0以外の値(+3〜+1)とし、一方差分絶対値が閾値3以上のときは計数値を0としたが、この閾値をアクティビティが大きい程大きくなるように変更する。この場合、差分絶対値の閾値を大きくするということは、マッチングの度合いの閾値を低くすることを意味している。
【0052】
このように、閾値を変更する場合にあっても、上述した計数値を補正係数kで補正する場合と同様に、周囲におけるアクティビティが大きな参照ブロックの画素データに対応した計数値テーブルの計数値に関しては、その絶対値が大きくなる。これにより、アクティビティによるマッチングの度合いの変化による不具合を軽減できる。
【0053】
上述したように、この発明に係る動きベクトル検出方法では、ヒストグラムテーブルに基づいて、参照ブロックの1個または複数個の動きベクトルを検出できる。なお、このように検出された動きベクトルに基づいて、さらに参照ブロックを構成する各画素データの動きベクトルを特定することができる。
【0054】
その場合、参照ブロックを構成する画素データと、この画素データの画素位置を基準として上述したように検出された動きベクトルに対応した探索フレームの画素位置の画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値等を求め、最も相関が高くなる場合の動きベクトルを、その参照ブロックを構成する画素データの動きベクトルとする。
【0055】
上述したように、参照ブロックの動きベクトルを正しく検出できることから、その動きベクトルに基づいて特定される各画素データの動きベクトルも精度の高いものとなる。なお、このように特定される参照ブロックを構成する各画素データの動きベクトルから孤立した動きベクトルを除去することで、この各画素データの動きベクトルの精度をさらに高めることができる。
【0056】
ここで、孤立した動きベクトルとは、ある画素データの動きベクトルがその周囲の画素データの動きベクトルと異なっている場合のそのある画素データの動きベクトルを意味している。そして、孤立した動きベクトルの除去とは、そのある画素データの動きベクトルをその周囲の画素データの動きベクトルに置き換えることを意味している。
【0057】
次に、この発明に係る動きベクトル検出装置の第1の実施の形態について説明する。図5は、第1実施の形態としての動きベクトル検出装置100の構成を示している。この動きベクトル検出装置100では、探索フレームに対して参照フレームは過去のフレームであり、入力フレームが探索フレームである。
【0058】
この動きベクトル検出装置100は、装置全体の動作を制御するシステムコントローラ101と、探索フレームとしての入力フレームの画像データDiが入力される入力端子102と、この画像データDiを、次フレームの参照フレームの画像データとして蓄積する参照フレームメモリ103とを有している。フレームメモリ103の書き込み、読み出し等の動作は、システムコントローラ101によって制御される。
【0059】
また、動きベクトル検出装置100は、マッチング演算としての差分絶対値演算を行う差分絶対値演算器104-1〜104-Nを有している。複数の演算器104-1〜104-Nは、入力端子102に入力される画像データDiを構成する画素データを探索フレームの画素データDcとして共通に入力すると共に、この画素データDcを探索範囲に含む参照フレームの所定の参照ブロック(同一タイミングでは最大2個)の画素データDr-1〜Dr-Nをそれぞれ入力し、画素データDcと画素データDr-1〜Dr-Nとの差分絶対値を演算するものである。
【0060】
この場合、図6に示すように、探索フレーム内の入力画素とマッチング演算をするべき参照フレーム内の参照画素は、その探索範囲内に入力画素が位置する複数の参照画素である。その複数の参照画素の位置する範囲は、ある参照画素の索範囲と表裏一体の関係にあり、入力画素を仮に参照画素と見なした場合の探索範囲を左右および上下で反転したものとなる。
【0061】
従って、これらの複数の参照画素は、多くの場合は複数の参照ブロックにわたって位置し、また1個の参照ブロックにおける画素数も1個から全てと一定ではない。また、これら参照ブロックの組み合わせおよび1個の参照ブロックにおける画素の組み合わせは、入力画素の位置によっても異なる。
【0062】
また、図5に戻って、動きベクトル検出装置100は、複数の演算器104-1〜104-Nで演算されて得られた複数の差分絶対値のそれぞれに対応して、計数値を生成する計数値生成部105を有している。この計数値生成部105は、計数値として、差分絶対値がその閾値より小さいときは、マッチングの度合いがその閾値より高いとして0以外の所定値を生成し、一方差分絶対値がその閾値以上のときは、マッチングの度合いがその閾値以下であるとして0を生成する。例えば、計数値生成部105は、上述した表1に示すように、差分絶対値が0,1,2のときは、それぞれ計数値として「+3」,「+2」,「+1」を生成し、一方その差分絶対値が3以上であるときは計数値として「0」を生成する。この場合、閾値は3である。
【0063】
また、動きベクトル検出装置100は、複数の演算器104-1〜104-Nにそれぞれ対応した記憶領域106-1〜106-Nを有する、計数値テーブル生成用の記憶手段としての半導体メモリ106を有している。半導体メモリ106の書き込み、読み出しの動作は、システムコントローラ101によって制御される。
【0064】
システムコントローラ101は、複数の演算器104-1〜104-Nで得られた差分絶対値にそれぞれ対応して計数値生成部105で生成された計数値を、その計数値に係る演算器および参照ブロックの画素位置に対応した半導体メモリ106の計数値記憶領域に書き込み、この半導体メモリ106に、参照ブロックを構成する各画素データに対応した計数値テーブルが得られるように制御する。ここで、計数値テーブルは、探索範囲の各画素位置に対応して計数値が配されたものである。
【0065】
本実施の形態においては、図7に示すように、参照ブロックの大きさは8×8画素、探索範囲は(−3〜+4)×(−3〜+4)画素とされる。参照ブロックの探索範囲には、(3+4+1)×(3+4+1)=64個の候補ブロックが存在する。そのため、N=64とされる。つまり、複数の演算器104-1〜104-N、半導体メモリ106の複数の記憶領域106-1〜106-Nは、それぞれ64個である。
【0066】
複数の演算器104-1〜104-Nは、各参照ブロックについて、それぞれ1個の候補ブロックに対応した差分絶対値を求める演算を担当する。また、半導体メモリ106の複数の記憶領域106-1〜106-Nは、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域は、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。
【0067】
なお、本実施の形態において、画像データDiはプログレッシブ方式によるものとする。入力端子102に入力される画像データDiは各ラインの画素データが連続したものとなっている。
【0068】
図7に示すように、探索範囲は(−3〜+4)×(−3〜+4)画素であり、また参照ブロックの大きさは8×8画素である。そのため、ある参照ブロックに対する探索範囲の最も上の入力画素が含まれるラインを1ライン目とすると、この探索範囲の最も下の入力画素が含まれるラインは15ライン目となる。したがって、ある参照ブロックを構成する各画素データに対応した計数値テーブルを得るためには、15ラインの画素データが必要となる。なお、図7には、1個の参照ブロックのみを示しているが、上述の15ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。
【0069】
また、動きベクトル検出装置100は、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティAを求め、この各画素データ毎にアクティビティAの最大アクティビティA_maxに対する割合が高い程大きな値を補正係数kとして得る補正係数取得部107を有している。
【0070】
補正係数取得部107は、例えば以下のようにして、参照ブロックを構成する各画素データにそれぞれ対応した補正係数kを取得する。まず、例えば図4に示すように、アクティビティAを求める対象の画素データをaとし、その周囲の4個の画素データをb〜dとし、上述した(1)式により、参照ブロックを構成する各画素データ毎に、アクティビティAを求める。次に、参照ブロックを構成する各画素データ毎に、アクティビティAを最大アクティビティA_maxで割って正規化したアクティビティA_norを求め、例えば上述した表2のように補正係数kを設定する。
【0071】
また、動きベクトル検出装置100は、上述した半導体メモリ106より読み出され、後述する複数の加算器109-1〜109-Nに供給される、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部107で取得された各画素データに対応した補正係数kを掛けて補正する計数値補正部108を有している。
【0072】
また、動きベクトル検出装置100は、複数の加算器109-1〜109-Nと、複数の記憶領域110-1〜110-Nを有するヒストグラムテーブル生成用の記憶手段としての半導体メモリ110とを有している。複数の加算器109-1〜109-Nは、半導体メモリ106より読み出され、計数値補正部108で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値をそれぞれ度数として入力すると共に、半導体メモリ110の複数の記憶領域110-1〜110-Nに記憶されていた記憶データのそれぞれを入力し、度数を記憶データに足し込むものである。
【0073】
このように、複数の加算器109-1〜109-Nで得られた足し込みデータのそれぞれは、半導体メモリ110の複数の記憶領域110-1〜110-Nに記憶データとして書き戻される。半導体メモリ110の書き込み、読み出しの動作は、システムコントローラ101によって制御される。
【0074】
システムコントローラ101は、半導体メモリ106からの計数値テーブルの計数値の読み出し、複数の加算器109-1〜109-Nにおける足し込みの演算、半導体メモリ110の複数の記憶領域110-1〜110-Nへの足し込みデータの書き戻しを、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、半導体メモリ110に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する。
【0075】
また、動きベクトル検出装置100は、参照ブロック毎に、半導体メモリ110に得られたヒストグラムテーブルにおける極大値に基づいて、動きベクトルを検出する動きベクトル検出部111を有している。ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示されることとなり、動きベクトル検出部111では複数個の動きベクトルが検出される。
【0076】
また、動きベクトル検出装置100は、動きベクトル検出部111で検出された、参照ブロックの一個または複数個の動きベクトルMV1〜MVn(nは1以上の整数)に基づいて、その参照ブロックを構成する各画素データの動きベクトルMVを特定する動きベクトル特定部112と、この動きベクトル特定部112で特定された各画素データの動きベクトルMVを出力する出力端子113とを有している。
【0077】
動きベクトル特定部112は、参照ブロックを構成する画素データとこの画素データの画素位置を基準として、動きベクトル検出部111で検出された各動きベクトルMV1〜MVnに対応した探索フレームの画素位置の画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値を求め、最も相関が高くなる場合の動きベクトルをこの画素データの動きベクトルMVとする。
【0078】
図8は、動きベクトル特定部112の具体的な構成を示している。
この動きベクトル特定部112は、全体の動作を制御するためのコントローラ121を有している。このコントローラ121には、入力端子102(図5参照)に入力される入力フレーム(探索フレーム)の画像データDiが供給され、この画像データDiは探索画素用のメモリ122に蓄積される。また、このコントローラ121には、動きベクトル検出部111(図5参照)で検出される動きベクトルMV1〜MVnが供給される。
【0079】
また、動きベクトル特定部112は、相関演算部123-1〜123-nを有している。この相関演算部123-1〜123-nには、参照ブロックを構成する画素データ(参照画素データ)が、コントローラ121の制御によって、参照フレームメモリ103から読み出されて共通に供給される。また、この相関演算部123-1〜123-nには、それぞれ、その参照ブロックを構成する画素データの画素位置を基準として動きベクトルMV1〜MVnに対応した探索フレームの画素位置の画素データ(探索画素データ)が、コントローラ121の制御によって、メモリ122から読み出されて供給される。相関演算部123-1〜123-nは、それぞれ、参照画素データと探索画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値等を求める。
【0080】
また、動きベクトル特定部112は、動きベクトル仮特定部124を有している。この仮特定部124には、動きベクトル検出部111で検出される動きベクトルMV1〜MVnが供給される。また、この仮特定部124には、相関演算部123-1〜123-nで求められた相関情報が供給される。この仮特定部124は、相関演算部123-1〜123-nで求められた相関情報に基づいて、最も相関が高くなる場合の動きベクトルを、上述の参照画素データの動きベクトルMVとして特定する。
【0081】
なお、この場合、どの動きベクトルMV1〜MVnについても相関が充分でない場合には、動きベクトルMVを出力する代わりに、動きが不定である旨の情報を出力する。この動きが不定である参照画素データとしては、ノイズが重畳した画素データあるいは動きのない部分の画素データが考えられる。
【0082】
また、動きベクトル特定部112は、仮特定部124で特定された参照ブロックを構成する各画素データの動きベクトルMVから孤立した動きベクトルを除去する等の補正処理を行う動きベクトル補正部125を有している。ここで、孤立した動きベクトルとは、上述したように、ある画素データの動きベクトルがその周囲の画素データの動きベクトルと異なっている場合のそのある画素データの動きベクトルを意味している。そして、孤立した動きベクトルの除去とは、そのある画素データの動きベクトルをその周囲の画素データの動きベクトルに置き換えることを意味している。
【0083】
図8に示す動きベクトル特定部112の動作を説明する。
動きベクトル検出部111で検出された、所定の参照ブロックの動きベクトルMV1〜MVnが、コントローラ121および動きベクトル仮特定部124に供給される。
【0084】
相関演算部123-1〜123-nには、上述した所定の参照ブロックを構成する画素データ(参照画素データ)が参照フレームメモリ103から読み出されて共通に供給される。また、この相関演算部123-1〜123-nには、それぞれその参照ブロックを構成する画素データの画素位置を基準として動きベクトルMV1〜MVnに対応した探索フレームの画素位置の画素データ(探索画素データ)がメモリ122から読み出されて供給される。そして、相関演算部123-1〜123-nでは、それぞれ、参照画素データと探索画素データとの間の相関情報が求められる。
【0085】
相関演算部123-1〜123-nで求められた相関情報は仮特定部124に供給される。この仮特定部124では、相関情報に基づいて、最も相関が高くなる場合の動きベクトルが、参照画素データの動きベクトルMVとして特定される。この場合、どの動きベクトルMV1〜MVnについても相関が充分でない場合には、動きベクトルMVの代わりに、動きが不定である旨の情報が出力される。
【0086】
以上の動作が、参照ブロックを構成する各画素データの全てに対して行われることで、この各画素データの動きベクトルMVが特定される。このように仮特定部124で特定された参照ブロックを構成する各画素データの動きベクトルMV(動き不定情報も含む)は、動きベクトル補正部125で孤立した動きベクトルの除去(孤立点除去)等の補正処理が行われた後、順次あるいは同時に出力される。
【0087】
なお、図8に示す動きベクトル特定部112では、動きベクトルMVを1画素データ分ずつ得るものであるが、相関演算部123-1〜123-nおよび動きベクトル仮特定部124の組を複数組備えて、動きベクトルMVを複数画素データ分並行して得るようにしてもよい。これにより、例えば、参照ブロックを構成する全ての画素データ分を並行して得ることができる。
【0088】
図5に示す動きベクトル検出装置100の動作を説明する。
入力端子102に入力される画像データDiを構成する画素データは、探索フレーム(入力フレーム)の画素データDcとして、複数の差分絶対値演算器104-1〜104-Nに共通に入力される。また、この画像データDiは、フレームメモリ103に供給され、次フレームで使用する参照フレームの画像データとして蓄積される。
【0089】
また、複数の演算器104-1〜104-Nには、フレームメモリ103から、画素データDcを探索範囲に含む、参照フレームの所定の参照ブロックの画素データDr-1〜Dr-Nがそれぞれ入力される。そして、複数の演算器104-1〜104-Nでは、画素データDcと画素データDr-1〜Dr-Nとの差分絶対値がそれぞれ演算される。この場合、複数の演算器104-1〜104-Nでは、各参照ブロックについて、それぞれ1個の候補ブロックに対応した差分絶対値を求める演算が行われる。
【0090】
複数の演算器104-1〜104-Nで得られた差分絶対値はそれぞれ計数値生成部105に供給される。計数値生成部105では、差分絶対値のそれぞれに対応して、差分絶対値がその閾値より小さいときは0以外の所定値を生成し、一方差分絶対値がその閾値以上のときは0を生成する(表1参照)。
【0091】
複数の演算器104-1〜104-Nで得られた差分絶対値に対応して計数値生成部105で生成された計数値は、それぞれ計数値テーブル生成用の半導体メモリ106の記憶領域106-1〜106-Nに書き込みデータとして供給される。
【0092】
上述したように、各記憶領域106-1〜106-Nには、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域には、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。
【0093】
複数の演算器104-1〜104-Nで得られた差分絶対値にそれぞれ対応して計数値生成部105で生成された計数値は、その計数値に係る演算器および参照ブロックの画素位置に対応した、半導体メモリ106の記憶領域に書き込まれる。これにより、半導体メモリ106の各ブロック領域に、参照ブロックを構成する各画素データに対応した、探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られる。
【0094】
補正係数取得部107では、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティAが求められ、そしてこの各画素データ毎にアクティビティAの最大アクティビティA_maxに対する割合が高い程大きな値が補正係数kとして取得される(図4、表2参照)。
【0095】
半導体メモリ106に得られる参照ブロックを構成する各画素データに対応した計数値テーブルの計数値(N個)は順次読み出され、計数値補正部108を介して、複数の加算器109-1〜109-Nに供給される。計数値補正部108では、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部107で取得された各画素データに対応した補正係数kが掛算されて補正が行われる。
【0096】
複数の加算器109-1〜109-Nには、半導体メモリ106より読み出され、計数値補正部108で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値がそれぞれ度数として入力され、また半導体メモリ110の複数の記憶領域110-1〜110-Nに記憶されていた記憶データのそれぞれが入力される。
【0097】
そして、複数の加算器109-1〜109-Nでは、度数が記憶データに足し込まれる。複数の加算器109-1〜109-Nで得られた足し込みデータのそれぞれは、半導体メモリ110の複数の記憶領域110-1〜110-Nに記憶データとして書き戻される。
【0098】
半導体メモリ106からの計数値テーブルの計数値の読み出し、複数の加算器109-1〜109-Nにおける足し込みの演算、半導体メモリ110の複数の記憶領域110-1〜110-Nへの足し込みデータの書き戻しは、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し行われる。これにより、半導体メモリ110に、探索範囲の各画素位置に対応して度数の累積値が配された、当該参照ブロックに対応したヒストグラムテーブルが得られる。
【0099】
動きベクトル検出部111では、半導体メモリ110に得られる各参照ブロックに対応したヒストグラムにおける極大値に基づいて、各参照ブロックの動きベクトルMV1〜MVnが検出される。上述したように、ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示され、従って動きベクトル検出部111では複数個の動きベクトルが検出される。
【0100】
このように動きベクトル検出部111で検出される、参照ブロックの動きベクトルMV1〜MVnは動きベクトル特定部112に供給される。この動きベクトル特定部112では、動きベクトルMV1〜MVnに基づいて、その参照ブロックを構成する各画素データの動きベクトルMVが特定される。そして、この各画素データの動きベクトルMVは出力端子113に出力される。
【0101】
なお、上述したように、15ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。この場合、この15ラインの画素データの後半側のラインの画素データは参照フレームの次の横一行分の参照ブロックについての演算処理にも使用される。そのため、その後半側のラインの画素データの入力時には、次の横一行分の参照ブロックについての演算処理も並行して行う必要がある。したがって、実際には、図5に示す動きベクトル検出装置100における、差分絶対値演算器104-1〜104-N、計数値生成部105、半導体メモリ106、計数値補正部108、加算器109-1〜109-N、半導体メモリ110の部分は、少なくとも2系統設けられることとなる。
【0102】
次に、差分絶対値演算器104-1〜104-Nに関してさらに説明する。図9Aは、入力画素データと演算器104-1〜104-N((0,0)〜(7,7))の演算対称範囲の配置を示している。図9Bは、参照ブロックを構成する8×8個の画素データ(a,a)〜(h,h)を示している。
【0103】
入力画素データと差分絶対値演算をすべき参照ブロックの画素データの位置する範囲(演算対象範囲)は、各演算器(0,0)〜(7,7)が担当する範囲に分けられる。各演算器(0,0)〜(7,7)の担当範囲は1画素である。
【0104】
図10に示すように、入力画素データが参照ブロックの探索範囲の1ライン目にあり、その演算対象範囲が参照ブロックの画素データ(a,a)にかかるとき、当該参照ブロックを構成する8×8個の画素データに対応する計数値テーブルを得るための演算が始まる。このとき、演算器(7,7)にはフレームメモリ103(図5に図示)から画素データ(a,a)が入力される。そして、この演算器(7,7)で、入力画素データと画素データ(a,a)との差分絶対値が求められる。
【0105】
次に、図11に示すように、1画素期間後には、入力画素データが1画素だけ右のものに移り、入力画素データの演算対象範囲が参照ブロックの画素データ(b,a)にかかる。このとき、演算器(7,7)にはフレームメモリ103から画素データ(b,a)が入力される。そして、この演算器(7,7)で、入力画素データと画素データ(b,a)と差分絶対値が求められる。
【0106】
このとき並行して、演算器(6,7)にはフレームメモリ103から画素データ(a,a)が入力される。そして、この演算器(6,7)で、入力画素データと画素データ(a,a)との差分絶対値が求められる。
【0107】
以下、1ライン目については、入力画素データが右隣のものに順次移っていき、担当範囲に参照ブロックの画素データを含む演算器では、それぞれ入力画素データと参照ブロックの画素データとの演算が並行して行われる。
【0108】
図12は、7画素期間後の状態を示している。この状態では、入力画素データが7画素だけ右のものに移り、入力画素データの演算対象範囲が参照ブロックの画素データ(h,a)までかかる。このとき、演算器(7,7)〜(0,7)には、それぞれフレームメモリ103から画素データ(h,a)〜(a,a)が入力される。そして、この演算器(7,7)〜(0,7)で、それぞれ入力画素データと画素データ(h,a)〜(a,a)との差分絶対値が求められる。
【0109】
また、図13に示すように、入力画素データが参照ブロックに対する探索範囲の2ライン目にあり、その演算対象範囲が参照ブロックの画素データ(a,a),(a,b)にかかるとき、演算器(7,7)にはフレームメモリ103から画素データ(a,b)が入力される。そして、この演算器(7,7)で、入力画素データと画素データ(a,b)との差分絶対値が求められる。
【0110】
このとき並行して、演算器(7,6)にはフレームメモリ103から画素データ(a,a)が入力される。そして、この演算器(7,6)で、入力画素データと画素データ(a,a)との差分絶対値が求められる。
【0111】
以下、2ライン目については、入力画素データが右隣のものに順次移っていき、担当範囲に参照ブロックの画素データを含む演算器では、それぞれ入力画素データと参照ブロックの画素データとの演算が並行して行われる。
【0112】
以下の3ライン目〜15ライン目についても同様であり、入力画素データが右隣のものに順次移っていき、担当範囲に参照ブロックの画素データを含む演算器では、それぞれ入力画素データと参照ブロックの画素データとの演算が並行して行われる。
【0113】
図14は、入力画素データが参照ブロックに対する探索範囲の8ライン目にあり、その演算対象範囲が参照ブロックの画素データ(a,a)〜(a,h)までの8個の画素データにかかった状態を示している。この状態では、演算器(7,7)〜(7,0)には、フレームメモリ103から画素データ(a,h)〜(a,a)が入力される。そして、この演算器(7,7)〜(7,0)で、入力画素データと画素データ(a,h)〜(a,a)との差分絶対値が求められる。
【0114】
図15は、入力画素データが参照ブロックに対する探索範囲の15ライン目にあり、その演算対象範囲が参照ブロックの左下の画素データ(a,h)にかかっている状態を示している。この状態では、演算器(7,0)には、フレームメモリ103から画素データ(a,h)が入力される。そして、この演算器(7,0)で、入力画素データと画素データ(a,h)との差分絶対値が求められる。
【0115】
図16は、上述した各演算器104-1〜104-N((0,0)〜(7,7))における各ラインの差分絶対値演算の過程を示している。この図16において、1〜64の数字はそれぞれ入力画素データと参照ブロックの画素データ(a,a)〜(h,h)との演算を示している。
【0116】
各演算器(0,0)〜(7,7)では、ある参照ブロックに関連して、それぞれ、入力画素データと参照ブロックを構成する64個の画素データ(a,a)〜(h,h)との差分絶対値演算が行われる。つまり、各演算器(0,0)〜(7,7)では、それぞれ、ある参照ブロックとその参照ブロックに対する探索範囲に存在する1個の候補ブロックとの間の、対応する画素データ同士による64個の差分絶対値演算が行われる。図17は、一例として、演算器(7,7)における演算過程を示している。
【0117】
図18は、動きベクトル(1個の参照画素に対する探索範囲の座標)を示している。参照ブロックの探索範囲には、動きベクトル(x,y)のそれぞれに対応した64個の候補ブロックが存在する。そして、参照ブロックを構成する各画素データに対応した計数値テーブルは、それぞれ、動きベクトル(x,y)のそれぞれに対応した64個の計数値からなっている。
【0118】
図19は、半導体メモリ106のある1個の参照ブロックに対応した領域における、その参照ブロックを構成する各画素データ((a,a)〜(h,h))に対応した計数値テーブルにおける64個の計数値(それぞれ動きベクトル(+4,+4)〜(-3,-3)に対応している)が、どの計数値記憶領域(アドレス)に記録されるかを示している。
【0119】
またこの図19は、各演算器(0,0)〜(7,7)のそれぞれにおける演算によって、どの動きベクトルに対応した計数値を生成するための差分絶対値が得られるかを示している。すなわち、演算器(0,0)では、(+4,+4)の動きベクトルに対応した計数値を生成するための差分絶対値が求められる。同様に、演算器(1,0)〜(7,7)では、それぞれ(+3,+4)〜(-3,-3)の動きベクトルに対応した計数値を生成するための差分絶対値が求められる。
【0120】
なお、ある参照ブロックに対応して各演算器104-1〜104-N((0,0)〜(7,7))では上述したように演算が行われるが、ある参照ブロックに関する演算と並行して、このある参照ブロック(参照ブロックP)に対して水平方向の前後に隣接する参照ブロックに関する演算も行われる。すなわち、図16から明らかなように、参照ブロックPに関する演算とその前後の参照ブロックP−1,P+1に関する演算とが、時間的にだぶって行われていることがわかる。
【0121】
例えば、参照ブロックPに関する演算は各ラインの15画素を用いて行われる。1〜7番目の画素を用いるときは、参照ブロックPに関する演算が行われると共に、これと並行して参照ブロックP−1に関する演算が行われる。同様に、9〜15番目の画素を用いるときは、参照ブロックPに関する演算が行われると共に、これと並行して参照ブロックP+1に関する演算が行われる。なお、8番目の画素を用いるときは、参照ブロックPに関する演算のみが行われる。
【0122】
例えば、1ライン目で、1番目の画素を用いるとき、演算器(7,7)では参照ブロックPに関する演算が行われるが、演算器(6,7)〜(0,7)では参照ブロックP−1に関する演算が行われる。また例えば、1ライン目で、9番目の画素を用いるときは、演算器(6,7)〜(0,7)では参照ブロックPに関する演算が行われるが、演算器(7,7)では参照ブロックP+1に関する演算が行われる。
【0123】
上述したように半導体メモリ106の複数の記憶領域106-1〜106-Nには、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域には、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。そして、複数の演算器104-1〜104-Nで得られた差分絶対値にそれぞれ対応して計数値生成部105で生成された計数値は、その計数値に係る演算器および参照ブロックの画素位置に対応した半導体メモリ106の計数値記憶領域に書き込まれる。このことから、半導体メモリ106は、カラム方向には、複数の演算器104-1〜104-Nのそれぞれに対応した所定メモリセル単位で、独立してアクセス可能に構成される。
【0124】
次に、半導体メモリ106の詳細構成について説明する。図20は、半導体メモリ106の全体構成を示している。半導体メモリ106は、8個のメモリ部150-1〜150-8から構成されている。各メモリ部150-1〜150-8は、それぞれ読み出し用のロウデコーダ151と、8個の記憶領域と、書き込み用のメインロウデコーダ153と、書き込み用のサブロウデコーダ154とから構成されている。
【0125】
メモリ部150-1,150-2,150-3,150-4,150-5,150-6,150-7,150-8の8個の記憶領域は、それぞれ、演算器104-1〜104-8,104-9〜104-16,104-17〜104-24,104-25〜104-32,104-33〜104-40,104-41〜104-48,104-49〜104-56,104-57〜104-64にそれぞれ対応した、記憶領域106-1〜106-8,106-9〜106-16,106-17〜106-24,106-25〜106-32,106-33〜106-40,106-41〜106-48,106-49〜106-56,106-57〜106-64(N=64)である。
【0126】
また、上述したように、64個の記憶領域106-1〜106-64は、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域BMを有している。さらに、各ブロック記憶領域BMには、参照ブロックを構成する画素データの個数分、本実施の形態では64個の計数値記憶領域を有している。
【0127】
図21は、上述した64個の記憶領域106-1〜106-64をさらに詳細に示したものである。各メモリ部150-1〜150-8の8個の記憶領域(例えば、106-1〜106-8)は、それぞれ、ロウ方向に64m個(mは横一行の参照ブロック数)、カラム方向に8n(nは計数値生成部105からの計数値の出力ビット数)のメモリセルがマトリックス状に配置されて構成されている。
【0128】
上述したように、ある参照ブロック(参照ブロックP)に関する差分絶対値演算は1ライン目〜15ライン目の画素データを用いて行われる。例えば、1ライン目の画素データを用いて演算が行われるときは、記憶領域106-57〜106-64の記憶位置に書き込みが行われる。1ライン目で4画素目の画素データを用いた演算が行われるとき、演算器(7,7)〜(4,7)で行われる演算は参照ブロックPに関する演算であり、演算器(3,7)〜(0,7)で行われる演算は参照ブロックP−1に関する演算である。そのため、記憶領域106-57〜106-64の、例えば図21(1ライン目)に格子縞で示した記憶位置に計数値の書き込みが行われる。
【0129】
また例えば8ライン目の画素データを用いて演算が行われるときは、記憶領域106-1〜106-64の記憶位置に書き込みが行われる。8ライン目で6画素目の画素データを用いた演算が行われるとき、演算器(7,7)〜(2,7)、(7,6)〜(2,6)、(7,5)〜(2,5)、(7,4)〜(2,4)、(7,3)〜(2,3)、(7,2)〜(2,2)、(7,1)〜(2,1)、(7,0)〜(2,0)で行われる演算は参照ブロックPに関する演算であり、演算器(1,7)〜(0,7)、(1,6)〜(0,6)、(1,5)〜(0,5)、(1,4)〜(0,4)、(1,3)〜(0,3)、(1,2)〜(0,2)、(1,1)〜(0,1)、(1,0)〜(0,0)で行われる演算は参照ブロックP−1に関する演算である。そのため、記憶領域106-1〜106-64の、例えば図21(8ライン目)に格子縞で示した記憶位置に計数値の書き込みが行われる。
【0130】
次に、メモリ部150-1〜150-8における書き込み用のメインロウデコーダ153およびサブロウデコーダ154についてさらに説明する。
【0131】
上述したように、メモリ部150-1においては、カラム方向に並ぶ複数のメモリセルを、差分絶対値演算器104-1〜104-8((0,0)〜(7,0))のそれぞれに対応したn個毎のセクションを独立してアクセスする必要がある。そのため、メモリ部150-1においては、メインロウデコーダ153によりアクセスすべきロウ位置が指定され、サブロウデコーダ154によりその指定されたロウ位置にある8個のセクションのうちアクセスすべきセクションが指定される。
【0132】
また、上述したように、メモリ部150-1においては、2個の参照ブロックに対応したブロック記憶領域BMに存在する2つのロウ位置を同時にアクセスする必要がある。またその場合、2つのロウ位置では、カラム方向に互いに異なるセクションをアクセスする必要がある。そのため、メモリ部150-1においては、メインロウデコーダ153によりアクセスすべき2つのロウ位置が同時に指定され、サブロウデコーダ154によりその指定された2つのロウ位置でカラム方向に互いに異なるセクションが指定される。
【0133】
以上のことは、メモリ部150-2〜150-8においても同様である。以下、メモリ部150-1を例にとり、図22を参照して、メインロウデコーダ153およびサブロウデコーダ154、さらにはワード線構成の具体例を説明する。ここでは、参照ブロックPに対応した記憶領域およびこれに隣接した参照ブロックP+1に対応した記憶領域を中心に説明するが、その他の参照ブロックに対応した記憶領域はそれらの記憶領域を繰り返した構成となっている。
【0134】
図において、カラム方向に連続したグローバルワード線WLi,WLi+1,WLi+2,WLi+3,・・・は参照ブロックPに対応した記憶領域に配設されたものである。グローバルワード線WLi,WLi+1,WLi+2,WLi+3,・・・のそれぞれに対応して、セクション毎に分割された分割ワード線としてのセクションワード線WLs0,WLs1,WLs2,・・・,WLs7(WLs0,WLs1,WLs2のみ図示)が配設されている。
【0135】
また、カラム方向に連続したグローバルワード線WLi+64,WLi+65,WLi+66,WLi+67,・・・は参照ブロックP+1に対応した記憶領域に配設されたものである。グローバルワード線WLi+64,WLi+65,WLi+66,WLi+67,・・・のそれぞれに対応して、セクション毎に分割された分割ワード線としてのセクションワード線WLs0,WLs1,WLs2,・・・,WLs7(WLs0,WLs1,WLs2のみ図示)が配設されている。
【0136】
ここで、1本のセクションワード線は、上述したあるブロック記憶領域BMに存在する1個の計数値記憶領域に対応している。この1本のセクションワード線には、カラム方向に並ぶn個のメモリセル131が接続されている。また、セクションワード線WLs0,WLs1,WLs2,・・・,WLs7の部分は、それぞれ記憶領域106-1,106-2,106-3,・・・,106-8に対応している。
【0137】
また、メインロウデコーダ153は、ロウデコーダRDECと、各グローバルワード線に対応して配設されたオア(OR)ゲートおよびノア(NOR)ゲートからなっている。
【0138】
参照ブロックPに対応した記憶領域のグローバルワード線WLi,WLi+1,WLi+2,WLi+3,・・・に対応してオアゲートGTi,GTi+1,GTi+2,GTi+3,・・・が配設されている。これらオアゲートGTi,GTi+1,GTi+2,GTi+3,・・・の出力側は、それぞれグローバルワード線WLi,WLi+1,WLi+2,WLi+3,・・・に接続されている。
【0139】
参照ブロックP+1に対応した記憶領域のグローバルワード線WLi+64,WLi+65,WLi+66,WLi+67,・・・に対応してノアゲートGTi+64,GTi+65,GTi+66,GTi+67,・・・が配設されている。これらノアゲートGTi+64,GTi+65,GTi+66,GTi+67,・・・の出力側は、それぞれそれぞれグローバルワード線WLi+64,WLi+65,WLi+66,WLi+67,・・・に接続されている。
【0140】
ロウデコーダRDECには、各グローバルワード線に対応した信号出力端子、反転信号出力端子を備えている。グローバルワード線WLi,WLi+1,WLi+2,WLi+3,・・・に対応した信号出力端子に出力される信号(“1”または“0”)は、それぞれオアゲートGTi,GTi+1,GTi+2,GTi+3,・・・の一方の入力側に供給される。これらオアゲートGTi,GTi+1,GTi+2,GTi+3,・・・の他方の入力側には、それぞれ参照ブロックP−1に対応した記憶領域のグローバルワード線に対応したロウデコーダRDECの反転信号出力端子に出力される信号が反転されて供給される。
【0141】
また、グローバルワード線WLi+64,WLi+65,WLi+66,WLi+67,・・・に対応した反転信号出力端子に出力される信号(“1”または“0”)は、それぞれノアゲートGTi+64,GTi+65,GTi+66,GTi+67,・・・の一方の入力側に反転されて供給される。これらノアゲートGTi+64,GTi+65,GTi+66,GTi+67,・・・の他方の入力側には、それぞれ参照ブロックPに対応した記憶領域のグローバルワード線WLi,WLi+1,WLi+2,WLi+3,・・・に対応したロウデコーダRDECの信号出力端子に出力される信号がそのまま供給される。
【0142】
また、サブロウデコーダ154は、各セクションワード線に対応して配設されたアンド(AND)ゲートからなっている。各アンドゲートの出力側はそれぞれ対応するセクションワード線に接続されている。参照ブロックPに対応した記憶領域の各セクションワード線に対応しては、それぞれアンドゲートAGPが配設されている。各アンドゲートAGPの一方の入力側には、対応するグローバルワード線に得られる信号(“1”または“0”)が供給される。参照ブロックP+1に対応した記憶領域の各セクションワード線に対応しては、それぞれアンドゲートAGP+1が配設されている。各アンドゲートAGP+1の一方の入力側には、対応するグローバルワード線に得られる信号(“1”または“0”)が反転されて供給される。
【0143】
また、ロウ方向に並ぶアンドゲートAGP,AGP+1には、バッファBF0,BF1,BF2,・・・,BF7(BF0,BF1,BF2のみ図示)を介して共通の制御信号(“1”または“0”)が供給される。この場合、この制御信号は、アンドゲートAGPにはそのまま供給されるが、アンドゲートAGP+1には反転して供給される。
【0144】
以上の構成において、参照ブロックP,P+1に対応した記憶領域の所定のグローバルワード線、例えばWLi+2,WLi+66を活性化し、そしてグローバルワード線WLi+2に対応したセクションワード線WLs0,WLs1を活性化すると共に、グローバルワード線WLi+66に対応したセクションワード線WLs2〜WLs7を活性化する場合の動作について説明する。
【0145】
この場合、ロウデコーダRDECは、グローバルワード線WLi,WLi+1,WLi+2,WLi+3,・・・に対応した信号出力端子のうち、グローバルワード線WLi+2に対応した信号出力端子には“1”を出力し、その他の信号出力端子には“0”を出力する。また、ロウデコーダRDECは、グローバルワード線WLi+64,WLi+65,WLi+66,WLi+67,・・・に対応した信号出力端子の全てに“1”を出力する。またこの場合、参照ブロックP−1に対応した記憶領域のグローバルワード線に対応した信号出力端子の全てに“1”を出力する。
【0146】
これにより、オアゲートGTi+2の出力側に“1”が得られ、このオアゲートGTi+2の出力側に接続されているグローバルワード線WLi+2は活性化される。また同時に、ノアゲートのGTi+66の出力側に“0”が得られ、このノアゲートGTi+66の出力側に接続されているグローバルワード線WLi+66は活性化される。
【0147】
また、セクションワード線WLs0,WLs1に対応して、それぞれロウ方向に並ぶアンドゲートAGP,AGP+1にそれぞれ制御信号として“1”を入力する。また、セクションワード線WLs2〜WLs7に対応して、それぞれロウ方向に並ぶアンドゲートAGP,AGP+1にそれぞれ制御信号として“0”を入力する。
【0148】
これにより、グローバルワード線WLi+2に対応した8本のセクションワード線のうち、セクションワード線WLs0,WLs1のみ“1”が印加された状態となって活性化される。また同時に、グローバルワード線WLi+66に対応した8本のセクションワード線のうち、セクションワード線WLs2〜WLs7のみ“1”が印加された状態となって活性化される。
【0149】
以上は、参照ブロックP,P+1に対応した記憶領域の2つのロウ位置にあるグローバルワード線(セクションワード線)を同時に活性化する動作を説明したが、その他の2つの参照ブロックに対応した記憶領域の2つのロウ位置にあるグローバルワード線(セクションワード線)を同時に活性化する場合にも同様の動作によって行うことができる。
【0150】
例えば、参照ブロックP+1,P+2に対応した記憶領域の2つのロウ位置にあるグローバルワード線(セクションワード線)を同時に活性化する場合、ロウデコーダRDECは、参照ブロックP+1に対応した記憶領域の8本のグローバルワード線のうち、活性化すべきグローバルワード線に対応した反転信号出力端子に“0”を出力し、その他の反転信号出力端子に“1”を出力する。また、ロウデコーダRDECは、参照ブロックP+2の記憶領域の8本のグローバルワード線に対応した信号出力端子の全てに“0”を出力する。また、この場合、ロウデコーダRDECは、参照ブロックPの記憶領域の8本のグローバルワード線に対応した信号出力端子の全てに“0”を出力する。
【0151】
次に、複数の加算器109-1〜109-Nおよびヒストグラムテーブル生成用の半導体メモリ110の詳細を説明する。本実施の形態において、複数の加算器109-1〜109-Nと半導体メモリ110は一体化されており、複数の加算器109-1〜109-Nを構成するそれぞれのビット単位の複数の加算部は、半導体メモリ110のカラムのピッチに揃えて配されている。
【0152】
図23は、加算器109-1およびそれに対応した半導体メモリ110の記憶領域110-1の部分の詳細構成を示したものである。なお、説明は省略するが、加算器109-2〜109-Nおよびそれに対応した半導体メモリ110の記憶領域110-2〜110-Nの部分についても同様に構成されている。
【0153】
図23において、記憶領域110-1には、カラム方向にn個、ロウ方向に1個のメモリセル(Memory Cell)130が配されている。この場合、カラム方向に並ぶn個のメモリセル130によって、1つの度数記憶領域が構成されている。
【0154】
図24は、メモリセル130の構成例を示している。このメモリセル130は、書き込みおよび読み出し用の第1のポートと読み出し専用の第2のポートとを有する2ポート構成のものである。
【0155】
負荷素子であるP型MOSトランジスタQ1とN型MOSトランジスタQ3とが電源と接地との間に直列に接続されてCMOSインバータ11が形成されていると共に、負荷素子であるP型MOSトランジスタQ2とN型MOSトランジスタQ4とが電源と接地との間に直列に接続されてCMOSインバータ12が形成されている。そして、これらCMOSインバータ11,12の各出力、すなわち記憶ノードN1,N2の各電位が互いに他のCMOSインバータ12,11の入力、すなわちN型MOSトランジスタQ4,Q3の各ゲート入力となっている。
【0156】
CMOSインバータ11の記憶ノードN1は、ゲートが端子13に接続されたアクセストランジスタQ5を介して端子14に接続される。一方、CMOSインバータ12の記憶ノードN2は、ゲートが端子13に接続されたアクセストランジスタQ6を介して端子15に接続される。端子13にはワード線WLが接続され、端子14にはビット線BLが接続され、端子15にはビット線/BL(/BLはBLバーを表している)が接続される。
【0157】
また、N型MOSトランジスタQ7,Q8が直列に接続され、その一端は接地され、その他端は端子16に接続される。そして、トランジスタQ7のゲートは記憶ノードN1に接続され、トランジスタQ8のゲートは端子17に接続される。端子16には読み出し専用ビット線BRLが接続され、端子17には読み出し専用ワード線WRLが接続される。
【0158】
このようなメモリセル130において、一対のCMOSインバータ11,12で構成されるメモリセル部に“1”または“0”のデータが記憶される。そして、このメモリセル部とビット線BL,/BLとの間で、アクセストランジスタQ5,Q6を介して、読み出しおよび書き込みのデータ転送が行われる。また、メモリセル部と読み出し専用ビット線BRLとの間で、アクセストランジスタQ8を介して読み出しのデータ転送が行われる。
【0159】
なお、図24に示すメモリセル130の構成例は、SRAM(Static Random Access Memory)セルをベースとしたものであるが、他のメモリセル、例えばDRAM(Dynamic Random Access Memory)、FeRAM(Ferro-electric Random Access Memory)、MRAM(Magnetic Random Access Memory)等におけるメモリセルをベースにして構成してもよい。
【0160】
図23に戻って、カラム方向に並ぶメモリセル130に沿って、ワード線WL、および読み出し専用ワード線WRLが配されている。上述したように、ワード線WLはメモリセル130の端子13に接続され、読み出し専用ワード線WRLはメモリセル130の端子17に接続される。
【0161】
また、カラム方向に並ぶn個のメモリセル130に、それぞれビット線BL0〜BLn-1,/BL0〜/BLn-1、および読み出し専用ビット線BRL0〜BRLn- 1が接続されている。上述したように、ビット線BL0〜BLn-1はメモリセル130の端子14に接続され、ビット線/BL0〜/BLn-1はメモリセル130の端子15に接続され、読み出し専用ビット線BRL0〜BRLn-1はメモリセル130の端子16に接続される。
【0162】
なお、この読み出し専用ビット線BRL0〜BRLn-1による読み出しモードに入る前には、ビット線BRL0〜BRLn-1をプリチャージすることが必要となる。そのために、ビット線BRL0はP型MOSトランジスタQ41を介して電源に接続される。そして、このトランジスタQ41のゲートには、プリチャージ制御信号/φRPC(/φRPCはφRPCバーを表しており、プリチャージ制御信号φRPCが反転されたものである)が入力される。ビット線BRL1〜BRLn-1に関しても同様に構成されている。
【0163】
また、カラム方向に並ぶn個のメモリセル130にそれぞれ対応して、センスアンプSA0〜SAn-1が配されている。各センスアンプSA0〜SAn-1は、それぞれビット線BL0〜BLn-1,/BL0〜/BLn-1に接続されている。これにより、n個のメモリセル130から、ビット線対BL0,/BL0〜BLn-1,/BLn-1およびセンスアンプSA0〜SAn-1を介して記憶データMD0〜MDn-1の読み出しが行われる。
【0164】
ここで、センスアンプSA0の部分の構成の詳細を説明する。
ビット線BL0は、P型MOSトランジスタQ21を介してN型MOSトランジスタQ22のゲートに接続される。また、ビット線/BL0は、P型MOSトランジスタQ23を介してN型MOSトランジスタQ24のゲートに接続される。そして、トランジスタQ22,Q24の互いのソースは接続され、その接続点はN型MOSトランジスタQ25を介して接地される。そして、トランジスタQ21,Q23のゲートには、読み出し制御信号/φR(/φRはφRバーを表しており、読み出し制御信号φRが反転されたものである)が入力され、トランジスタQ25のゲートには、イコライズ制御信号/φEQ(/φEQはφEQバーを表しており、イコライズ制御信号φEQが反転されたものである)が入力される。
【0165】
また、トランジスタQ22のドレインはP型MOSトランジスタQ26,Q27の並列回路を介して電源に接続され、トランジスタQ24のドレインはP型MOSトランジスタQ28,Q29の並列回路を介して電源に接続される。そして、トランジスタQ22のドレインはトランジスタQ29のゲートに接続され、トランジスタQ24のドレインはトランジスタQ27のゲートに接続される。トランジスタQ26,Q28のゲートには、イコライズ制御信号/φEQが入力される。
【0166】
なお、読み出しモードに入る前にはビット線対BL0,/BL0をイコライズ(プリチャージ)することが必要となる。そのために、ビット線BL0はP型MOSトランジスタQ31を介して電源に接続され、ビット線/BL0はP型MOSトランジスタQ32を介して電源に接続され、ビット線BL0,/BL0はP型MOSトランジスタQ33を介して接続される。そして、トランジスタQ31〜Q33のゲートには、イコライズ制御信号/φEQが入力される。
【0167】
センスアンプSA2〜SAn-1の部分の構成も、上述したセンスアンプSA0の部分の構成と同様とされる。
【0168】
また、上述したように、カラム方向に並ぶn個のメモリセル130によって1個の度数記憶領域が構成されている。この度数記憶領域に、度数としての計数値の足し込みデータを順次書き込むことを開始する前に、この度数記憶領域を構成するメモリセル130の記憶データをクリアすることが必要となる。そのために、ビット線対BL0,/BL0〜BLn-1,/BLn-1のそれぞれに対応して、“0”のデータを生成し、このデータをメモリセル130に書き込みデータとして供給する構成を備えている。
【0169】
すなわち、ビット線BL0はN型MOSトランジスタQ51を介して接地される。そして、このトランジスタQ51のゲートには、クリア制御信号φCLRが入力される。ビット線対BL1,/BL1〜BLn-1,/BLn-1の部分に関しても同様に構成されている。
【0170】
また、加算器125-1はnビットのそれぞれのビットの加算を行うためのn個の加算部1400〜140n-1からなっており、これらn個の加算部1400〜140n-1はメモリ領域110-1のカラムのピッチに揃えて配されている。
【0171】
加算部1400〜1407のそれぞれのA側の入力端子には、計数値補正部108から8ビットの計数値のビットデータD0〜D7が入力される。また、加算部1408〜140n-1のそれぞれのA側の入力端子は接地され、“0”が入力された状態とされる。一方、加算部1400〜140n-1のそれぞれのB側の入力端子には、これら加算部1400〜140n-1のそれぞれに対応して記憶領域110-1のカラム方向に並ぶn個のメモリセル130から、ビット線対BL0,/BL0〜BLn-1,/BLn-1およびセンスアンプSA0〜SAn-1を介して読み出された記憶データMD0〜MDn-1がそれぞれ入力される。
【0172】
加算部1400の非反転出力端子Sは、N型MOSトランジスタQ11のゲートに接続されている。そして、このトランジスタQ11のドレインは、加算部1400に対応したメモリセル130に接続されているビット線/BL0に接続される。一方、この加算部1400の反転出力端子/S(/SはSバーを表している)は、N型MOSトランジスタQ12のゲートに接続される。そして、このトランジスタQ12のドレインは、加算部1400に対応したメモリセル130に接続されているビット線BL0に接続される。
【0173】
トランジスタQ11,Q12の互いのソースは接続され、その接続点はN型MOSトランジスタQ13,Q14の直列回路を介して接地される。そして、トランジスタQ14のゲートには書き込み制御信号φWが入力され、トランジスタQ13のゲートには加算部140n-1のキャリ出力端子COUTに得られるMSB(Most Significant Bit)のキャリ出力CMSBがインバータ141を介して入力される。
【0174】
加算部1401〜140n-1の出力端子S,/S側の構成も、上述した加算部1400の出力端子S,/S側の構成と同様とされる。
【0175】
また、加算部1400のキャリ入力端子CINは接地され、“0”が入力された状態とされる。また、加算部1400〜140n-2のキャリ出力端子COUTは、それぞれ加算部1401〜140n-1に接続されている。これにより、加算部1400〜140n-1でnビット加算器が構成される。
【0176】
また、ビット線/BL0はN型MOSトランジスタQ61,Q62を介して接地される。そして、トランジスタQ61のゲートにはクリア制御信号/φCLR(/φCLRはφCLRバーを表しており、クリア制御信号φCLRが反転されたものである)が入力され、トランジスタ62のゲートには加算部140n-1のキャリ出力端子COUTに得られるMSBのキャリ出力CMSBが入力される。
【0177】
図23に示す加算器109-1および記憶領域110-1の部分の動作を説明する。
まず、カラム方向に並ぶn個のメモリセル130によって1個の度数記憶領域が構成されているが、このn個のメモリセル130の記憶データをクリアする動作について説明する。
【0178】
度数記憶領域を構成するn個のメモリセル130の記憶データをクリアする場合、書き込み制御信号φWおよびクリア制御信号φCLRはアクティブ、つまり“1”とされ、読み出し制御信号φRおよびイコライズ制御信号φEQはインアクティブ、つまり“0”とされ、さらにワード線WLがワード線が活性化される。
【0179】
この場合、クリア制御信号φCLRがアクティブとされてトランジスタQ51がオンとなる。そのため、“0”のデータが生成され、このデータがビット線BL0〜BLn-1に出力される。したがって、ワード線WLを活性化することで、度数記憶領域を構成するn個のメモリセル130には“0”のデータが書き込まれ、記憶データのクリアが行われる。
【0180】
次に、度数記憶領域(n個のメモリセル130)に記憶されている記憶データMD0〜MDn-1に、8ビットの計数値D0〜D7を、加算器109-1(加算部1401〜140n-1)で足し込み、そして加算器109-1で得られた足し込みデータAD0〜ADn-1を、当該度数記憶領域に書き戻す動作について説明する。
【0181】
所定の度数記憶領域に記憶されている記憶データMD0〜MDn-1に、8ビットの計数値D0〜D7を足し込む場合、最初に、イコライズ制御信号φEQはアクティブ、つまり“1”とされ、書き込み制御信号φW、読み出し制御信号φRおよびクリア制御信号φCLRはインアクティブ、つまり“0”とされ、ビット線対BL0,/BL0〜BLn-1,/BLn-1のイコライズ(プリチャージ)が行われる。
【0182】
この場合、ビット線対BL0,/BL0に関しては、イコライズ制御信号φEQがアクティブとされてトランジスタQ31〜Q33の全てがオンとなり、ビット線BL0およびビット線/BL0に電源の電位が印加され、これらビット線BL0およびビット線/BL0は同電位となる。他のビット線対BL1,/BL1〜BLn-1,/BLn-1に関しても同様である。
【0183】
このようにビット線対BL0,/BL0〜BLn-1,/BLn-1のイコライズが行われた状態で、読み出し制御信号φRはアクティブ、つまり“1”とされ、書き込み制御信号φW、イコライズ制御信号φEQおよびクリア制御信号φCLRはインアクティブ、つまり“0”とされ、さらにワード線WLが活性化される。
【0184】
これにより、度数記憶領域を構成するn個のメモリセル130の記憶データMD0〜MDn-1が、それぞれビット線対BL0,/BL0〜BLn-1,/BLn-1およびセンスアンプSA0〜SAn-1を介して読み出され、加算部1400〜140n-1のB側の入力端子にそれぞれ入力される。したがって、度数記憶領域に記憶されている記憶データMD0〜MDn-1に、8ビットの計数値D0〜D7が足し込まれる。
【0185】
そして、加算部1400〜140n−1における加算出力、つまり足し込みデータAD0〜ADn−1が有効になったところで、書き込み制御信号φWはアクティブ、つまり“1”とされ、読み出し制御信号φR、イコライズ制御信号φEQおよびクリア制御信号φCLRはインアクティブ、つまり“0”とされ、さらにワード線WLが活性化される。
【0186】
この場合、加算部1400の部分に関して、足し込みデータS0が“1”である場合には、トランジスタQ11はオン、トランジスタQ12はオフとなり、ビット線/BL0に“0”が出力されることから、度数記憶領域を構成するn個のメモリセル130のうち、当該加算部1400に対応するメモリセル130には、“1”のデータが記憶される。一方、加算部1400の部分に関して、足し込みデータS0が“0”である場合には、トランジスタQ11はオフ、トランジスタQ12はオンとなり、ビット線BL0に“0”が出力されることから、度数記憶領域を構成するn個のメモリセル130のうち、当該加算部1400に対応するメモリセル130には、“0”のデータが記憶される。
【0187】
他の加算部1401〜140n−1の部分に関しても同様である。これにより、加算器109−1で得られた足し込みデータAD0〜ADn−1は、度数記憶領域を構成するn個のメモリセル130に書き戻される。
【0188】
なお、足し込みの動作において、オーバフローとなる場合には、加算部140n−1のキャリ出力端子COUTに得られるMSBのキャリ出力CMSBが“1”となるため、トランジスタQ13はオフとなり、足し込みデータAD0〜ADn−1が、度数記憶領域を構成するn個のメモリセル130に書き込まれることはない。
【0189】
その代わり、この場合、トランジスタQ61がオンとなる他に、トランジスタQ62もオンとなるので、ビット線/BL0〜/BLn−1にそれぞれ“0”の信号が出力される。したがって、度数記憶領域を構成するn個のメモリセル130のそれぞれに“1”のデータが書き込まれる。つまり、この度数記憶領域には最大値が記憶される。
【0190】
次に、度数記憶領域に記憶された、度数(計数値)の累積値を、読み出す場合の動作を説明する。
最初に、プリチャージ制御信号/φRPCがアクティブ、つまり“1”とされ、読み出し専用ビット線BRL0〜BRLn−1のプリチャージが行われる。この場合、トランジスタQ41はオンとなり、読み出し専用ビット線BRL0〜BRLn−1のそれぞれに電源の電位が印加される。
【0191】
このように読み出し専用ビット線BRL0〜BRLn−1のプリチャージが行われた状態で、読み出し専用ワード線WRLが活性化される。これにより、度数記憶領域を構成するn個のメモリセル130の記憶データΣ0〜Σn−1が、それぞれ読み出し専用ビット線BRL0〜BRLn−1に得られる。ここで、記憶データΣ0〜Σn−1は、nビットの度数の累積値を構成している。
【0192】
以上説明したように、図5に示す動きベクトル検出装置100においては、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間の差分絶対値演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、差分絶対値がその閾値より小さいときは計数値として0以外の値を配し、差分絶対値がその閾値以上のときは計数値として0を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値に基づいて参照ブロックの動きベクトルMV1〜MVnを検出するものである。
【0193】
この場合、このヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。マッチング度合いが高く差分絶対値がその閾値より小さいときのみ計数値として0以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値が明瞭に分離して示され易くなる。したがって、参照ブロックの一個または複数個の動きベクトルMV1〜MVnを正しく検出できる。
【0194】
なお、差分絶対値がその閾値より小さいときに配する計数値を正の値としているが(表1参照)、これを負の値としてもよい。その場合、ヒストグラムテーブルには、参照ブロック内に存在する動きに対応した動きベクトルを表す度数の極小値が示される。この場合であっても、上述した実施の形態と同様に、ヒストグラムテーブルに基づいて、参照ブロックの動きベクトルを正しく検出できる。
【0195】
また、マッチング度合いが高く差分絶対値がその閾値より小さいときに配する計数値を一定値とするのではなく、差分絶対値が小さい程、つまりマッチングの度合いが高い程、絶対値の大きな値としているので、ヒストグラムテーブルの度数の分布を一層先鋭化できる利益がある。
【0196】
また、補正係数取得部107では、参照ブロックを構成する各画素データ毎にアクティビティAを求め、この各画素データ毎に、アクティビティAの最大アクティビティA_maxに対する割合が高い程大きな値を補正係数kとして得て、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数kを掛けて補正するものであり、アクティビティAによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【0197】
なお、補正係数取得部107で補正係数kを求め、計数値補正部108でこの補正係数kを計数値に掛けて補正するものであったが、この代わりに、計数値生成部105で差分絶対値に対応して計数値を生成する際に用いられる閾値を、アクティビティが大きい程大きくするように変更してもよい。この場合、計数値を補正係数kで補正する場合と同様に、周囲におけるアクティビティが大きな参照ブロックの画素データに対応した計数値テーブルの計数値に関しては、その絶対値が大きくなる。これにより、アクティビティによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【0198】
また、探索フレームとしての入力フレームを次フレームの参照フレームとして格納する参照フレームメモリ103を備え、複数の差分絶対値演算器104−1〜104−Nで、入力フレームの画素データが入力される都度、その画素データと、フレームメモリ103より読み出される、その画素データを探索範囲に含む参照フレームの所定の参照ブロックの画素データとの差分絶対値を演算するものであり、探索フレームを一旦フレームメモリに記憶し、その後に改めて処理のために読み出すといった無駄な動作を排除できる。
【0199】
また、半導体メモリ106のカラム方向に延びる各ワード線は、複数の記憶領域106−1〜106−Nにそれぞれ対応して分割された複数のセクションワード線からなり、半導体メモリ106は任意のワード線を構成する複数のセクションワード線のうち任意のセクションワード線を選択的に活性化させるためのロウデコード手段としてのメインロウデコーダ153およびサブロウデコーダ154を有するものであり、半導体メモリ106には、カラム方向にセクションワード線単位で独立してアクセスできる。
【0200】
また、半導体メモリ106の複数の記憶領域106−1〜106−Nは、それぞれ複数の参照ブロックに係る計数値を記憶するための複数のブロック領域BMがロウ方向に配列されてなり、メインロウデコーダ153は2つの連続するブロック領域BMに対応したグローバルワード線を活性化させ、サブロウデコーダ154はその2つのグローバルワード線に対応してそれぞれ活性化させるセクションワード線を互いに異なる記憶領域に対応したセクションワード線とするものである。
【0201】
したがって、複数の差分絶対値演算器104−1〜104−Nで2つの参照ブロックに関係する差分絶対値演算が並行して行われても、計数値生成部105で生成された計数値を参照ブロック毎にロウ方向の異なるワード線位置に振り分けて書き込むことが可能となり、半導体メモリ106に参照ブロック別に、計数値テーブルを得ることができる。
【0202】
また、加算器109−1〜109−Nおよび半導体メモリ110が一体化され、加算器を構成するビット単位の複数の加算部1400〜140n−1が、半導体メモリ110のカラムのピッチに揃えて配されるものである(図23参照)。したがって、加算器109−1〜109−Nから半導体メモリ110への足し込みデータの供給および半導体メモリ110から加算器109−1〜109−Nへの記憶データの供給を効率的に行うことができる。
【0203】
また、半導体メモリ110が、複数の加算器に関連して設けられた書き込みおよび読み出し用の第1のポートと、度数の累積値を読み出すための読み出し専用の第2のポートとを有するものである(図23参照)。したがって、半導体メモリ110の記憶データの読み出しを、加算器109−1〜109−Nによる演算とは別個独立して行うことができる。
【0204】
また、動きベクトル検出部111で検出された参照ブロックの動きベクトルMV1〜MVnに基づいて、動きベクトル特定部112で、その参照ブロックを構成する各画素データの動きベクトルMVを特定することができる。上述したように、参照ブロックの動きベクトルを正しく検出できることから、その動きベクトルに基づいて特定される各画素データの動きベクトルもより精度の高いものとなる。
【0205】
さらに、動きベクトル特定部112では、このように特定される参照ブロックを構成する各画素データの動きベクトルMVから孤立した動きベクトルを除去する等の補正処理を行うので、この各画素データの動きベクトルの精度をさらに高めることができる。
【0206】
なお、図5の動きベクトル検出装置100においては、半導体メモリ106は、2つの参照ブロックに対応した記憶領域に存在する2つのロウ位置のグローバルワード線(セクションワード線)を活性化させるものを示したが、同様の構成によって、2つ以上の参照ブロックに対応した記憶領域に存在する3つ以上のロウ位置のグローバルワード線(セクションワード線)を活性化させることもできる。参照ブロック内の1個の参照画素に対する探索範囲によっては、複数の差分絶対値演算器において、3つ以上の参照ブロックに係る演算が行われることも想定される。その場合には、3つ以上のロウ位置のグローバルワード線(セクションワード線)を活性化させることが必要となる。
【0207】
また、図5の動きベクトル検出装置100においては、半導体メモリ110を構成するメモリセル130が2ポート構成のものであったが(図24参照)、メモリセルが2ポート構成でなくてもよく、半導体メモリ110の全体として2ポート構成であってもよい。さらには、半導体メモリ110として2ポート構成でなくとも、例えば映像信号におけるブランキング期間に度数(テーブルデータ)の読み出しを行ったり、同一機能ブロックを複数個有してフィールドまたはフレーム間でインターリーブさせて用いるなど、足し込みと度数の読み出しとを同一ポートにおいて異なる期間に行ってもよい。
【0208】
次に、この発明に係る動きベクトル検出装置の第2の実施の形態について説明する。図25は、第2実施の形態としての動きベクトル検出装置200の構成を示している。この動きベクトル検出装置200では、参照フレームに対して探索フレームは過去のフレームであり、入力フレームが参照フレームである。
【0209】
この動きベクトル検出装置200は、装置全体の動作を制御するシステムコントローラ201と、参照フレームとしての入力フレームの画像データDiが入力される入力端子202と、この画像データDiを、次フレームの探索フレームの画像データとして蓄積するフレームメモリ203とを有している。フレームメモリ203の書き込み、読み出し等の動作は、システムコントローラ201によって制御される。
【0210】
また、動きベクトル検出装置200は、マッチング演算としての差分絶対値演算を行う差分絶対値演算器204−1〜204−Nを有している。ここで、Nは、ある参照ブロック内の1個の画素データに対する探索範囲に存在する複数の画素データの個数である。換言すれば、Nは、ある参照ブロックに対する探索範囲に存在する複数の候補ブロックの個数である。例えば、上述の図7に示すように、探索範囲が(−3〜+4)×(−3〜+4)画素であるとき、N=64である。
【0211】
複数の演算器204−1〜204−Nは、入力端子202に入力される画像データDiを構成する画素データを、参照フレームの所定の参照ブロックの画素データDrとして共通に入力すると共に、その画素データDrに対する探索範囲に存在する複数の画素データDc−1〜Dc−Nをそれぞれ入力し、画素データDrと画素データDc−1〜Dc−Nとの差分絶対値を演算するものである。
【0212】
この場合、演算器204−1〜204−Nにおいては、図26に示すように、1個の参照画素とN個の探索範囲画素との1対Nのマッチング演算が行われる。ここで、参照ブロック内における参照画素の位置に応じて、この参照画素に対する探索範囲画素の位置が変化する。例えば、ハッチングして示した位置は、参照ブロックの左上の1個の画素に対するN個の探索範囲画素の位置を示している。
【0213】
また、動きベクトル検出装置200は、複数の演算器204−1〜204−Nで演算されて得られた複数の差分絶対値のそれぞれに対応して計数値を生成し、画素データDrに対応した計数値テーブルを得る、計数値テーブル生成手段としての計数値生成部205を有している。この計数値テーブルは、画素データDrの探索範囲の各画素位置に対応して計数値が配されたものである。
【0214】
計数値生成部205は、計数値として、差分絶対値がその閾値より小さいときは、マッチングの度合いがその閾値より高いとして0以外の所定値を生成し、一方差分絶対値がその閾値以上のときは、マッチングの度合いがその閾値以下であるとして0を生成する。例えば、計数値生成部205は、上述した表1に示すように、差分絶対値が0,1,2のときは、それぞれ計数値として「+3」,「+2」,「+1」を生成し、一方その差分絶対値が3以上であるときは計数値として「0」を生成する。
【0215】
また、動きベクトル検出装置200は、計数値生成部205で順次得られた計数値テーブルを一時的に記憶するためのバッファメモリ206を有している。このバッファメモリ206は、複数の演算器204−1〜204−Nにそれぞれ対応した記憶領域206−1〜206−Nを有している。バッファメモリ206の複数の記憶領域206−1〜206−Nは、それぞれ参照フレームの横一行の参照ブロック数に対応した個数のブロック記憶領域を有している。さらに、各ブロック記憶領域は、参照ブロックを構成する画素データの個数分の計数値記憶領域を有している。
【0216】
そのため、このバッファメモリ206が有する計数値記憶領域と、上述した図5の動きベクトル検出装置100の半導体メモリ106が有する計数値記憶領域とは一対一に対応している。したがって、バッファメモリ206のある1個の参照ブロックに対応した領域において、その参照ブロックを構成する各画素データに対応した計数値テーブルの、探索範囲の各画素位置((-3,-3)〜(+4,+4))に対応した計数値が、どの記憶領域(アドレス)に記憶されるかは、上述した図19で示される。
【0217】
ただし、本実施の形態においては、参照ブロックのある画素データに対応した計数値テーブルの各計数値が計数値生成部205から同じタイミングで得られるので、計数値記憶領域毎にアクセスする必要はなく、半導体メモリ106におけるような特殊なロウ制御(図20〜図22参照)は不要である。
【0218】
なお、本実施の形態において、画像データDiはプログレッシブ方式によるものとする。入力端子202に入力される画像データDiは各ラインの画素データが連続したものとなっている。参照ブロックの大きさが8×8画素である場合、ある参照ブロックを構成する各画素データに対応した計数値テーブルを得るためには、8ラインの画素データが必要となる。この場合、この8ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。
【0219】
また、動きベクトル検出装置200は、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティAを求め、この各画素データ毎にアクティビティAの最大アクティビティA_maxに対する割合が高い程大きな値を補正係数kとして得る補正係数取得部207を有している。
【0220】
この補正係数取得部207は、図5の動きベクトル検出装置100における補正係数取得部107と同様に構成されているので、その詳細説明は省略する。ただし、この補正係数取得部207では、探索フレームメモリ203に記憶されているフレームの画素データを用いて参照ブロックを構成する各画素データのアクティビティAを得るものであって、参照ブロックを構成する各画素データにそれぞれ対応した補正係数kの取得タイミングが、計数値生成部205における各画素データに対応した計数値テーブルの生成タイミングより遅くなる。このタイミングの遅れは、上述したバッファメモリ206で吸収される。
【0221】
また、動きベクトル検出装置200は、上述したバッファメモリ206より読み出され、後述する複数の加算器209−1〜209−Nに供給される、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部207で取得された各画素データに対応した補正係数kを掛けて補正する計数値補正部208を有している。
【0222】
また、動きベクトル検出装置200は、複数の加算器209−1〜209−Nと、複数の記憶領域210−1〜210−Nを有するヒストグラムテーブル生成用の記憶手段としての半導体メモリ210とを有している。複数の加算器209−1〜209−Nは、バッファメモリ206より読み出され、計数値補正部208で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値(N個)をそれぞれ度数として入力すると共に、半導体メモリ210の複数の記憶領域210−1〜210−Nに記憶されていた記憶データのそれぞれを入力し、度数を記憶データに足し込むものである。この複数の加算器209−1〜209−Nおよび半導体メモリ210は、図5の動きベクトル検出装置100における複数の加算器109−1〜109−Nおよび半導体メモリ110と同様に構成される。
【0223】
このように、複数の加算器209−1〜209−Nで得られた足し込みデータのそれぞれは、半導体メモリ210の複数の記憶領域210−1〜210−Nに記憶データとして書き戻される。半導体メモリ210の書き込み、読み出しの動作は、システムコントローラ201によって制御される。
【0224】
システムコントローラ201は、バッファメモリ206からの計数値テーブルの計数値の読み出し、複数の加算器209−1〜209−Nにおける足し込みの演算、半導体メモリ210の複数の記憶領域210−1〜210−Nへの足し込みデータの書き戻しを、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、半導体メモリ210に、探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する。
【0225】
また、動きベクトル検出装置200は、参照ブロック毎に、半導体メモリ210に得られたヒストグラムテーブルにおける極大値に基づいて、動きベクトルを検出する動きベクトル検出部211を有している。ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示されることとなり、動きベクトル検出部211では複数個の動きベクトルを検出される。この動きベクトル検出部211は、図5の動きベクトル検出装置100における動きベクトル検出部111と同様に構成される。
【0226】
また、動きベクトル検出装置200は、動きベクトル検出部211で検出された、参照ブロックの一個または複数個の動きベクトルMV1〜MVn(nは1以上の整数)に基づいて、その参照ブロックを構成する各画素データの動きベクトルMVを特定する動きベクトル特定部212と、この動きベクトル特定部212で特定された各画素データの動きベクトルMVを出力する出力端子213とを有している。
【0227】
動きベクトル特定部212は、参照ブロックを構成する画素データとこの画素データの画素位置を基準として、動きベクトル検出部211で検出された各動きベクトルMV1〜MVnに対応した探索フレームの画素位置の画素データとの間の相関情報、例えば差分絶対値あるいは差分二乗値等を求め、最も相関が高くなる場合の動きベクトルをこの画素データの動きベクトルMVとする。
【0228】
この動きベクトル特定部212は、図5の動きベクトル検出装置100における動きベクトル特定部112(図8参照)と同様に構成される。ただし、探索画素用のメモリ122に代わりに参照画素用のメモリを設ける必要がある。
【0229】
図25に示す動きベクトル検出装置100の動作を説明する。
入力端子202に入力される画像データDiを構成する画素データは、参照フレーム(入力フレーム)の画素データDrとして、複数の差分絶対値演算器204−1〜204−Nに共通に入力される。また、この画像データDiは、フレームメモリ203に供給され、次フレームで使用する探索フレームの画像データとして蓄積される。
【0230】
また、複数の演算器204−1〜204−Nには、フレームメモリ203から、画素データDrに対応する探索範囲に存在する複数の画素データDc−1〜Dc−Nがそれぞれ入力される。そして、複数の演算器204−1〜204−Nでは、画素データDrと画素データDc−1〜Dc−Nとの差分絶対値がそれぞれ演算される。
【0231】
複数の演算器204−1〜204−Nで得られた差分絶対値はそれぞれ計数値生成部205に供給される。計数値生成部205では、差分絶対値のそれぞれに対応して、差分絶対値がその閾値より小さいときは0以外の所定値を生成し、一方差分絶対値がその閾値以上のときは0を生成する(表1参照)。これにより、計数値生成部205では、画素データDrに対応した、その探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られる。計数値生成部205で順次得られた計数値テーブルは、バッファメモリ206に供給されて一時的に記憶される。
【0232】
図27は、入力画素データと探索範囲と演算器204−1〜204−N((0,0)〜(7,7))との関係を示している。すなわち、入力画素データに対する演算範囲は、水平方向に−3〜+4の範囲にあり、垂直方向に−3〜+4の範囲にある。また、演算器204−1〜204−N((0,0)〜(7,7))では、それぞれ入力画素データとその探索範囲に存在する(+4,+4)〜(−3,−3)の位置にある画素データとの差分絶対値演算が行われる。
【0233】
図28は、参照ブロックを構成する8×8個の画素データ(a,a)〜(h,h)を示している。この場合、ある参照ブロックを構成する各画素データに対応した計数値テーブルを得るためには、8ラインの画素データが必要となる。なお、この8ラインの画素データに基づいて、横一行分の全参照ブロックについて、それを構成する各画素データに対応した計数値テーブルを得ることができる。バッファメモリ206のある1個の参照ブロックに対応した領域には、その参照ブロックを構成する各画素データに対応した計数値テーブルの、探索範囲の各画素位置((-3,-3)〜(+4,+4))に対応した計数値が、図19に示すように、記憶される。
【0234】
補正係数取得部207では、参照ブロックを構成する各画素データ毎に周囲におけるアクティビティAが求められ、この各画素データ毎にアクティビティAの最大アクティビティA_maxに対する割合が高い程大きな値が補正係数kとして取得される(図4、表2参照)。
【0235】
バッファメモリ206に記憶されている参照ブロックを構成する各画素データに対応した計数値テーブルの計数値(N個)は順次読み出され、計数値補正部208を介して、複数の加算器209−1〜209−Nに供給される。計数値補正部208では、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ補正係数取得部207で取得された各画素データに対応した補正係数kが掛算されて補正が行われる。
【0236】
複数の加算器209−1〜209−Nには、バッファメモリ206より読み出され、計数値補正部208で補正された、参照ブロックを構成する所定の画素データに対応した計数値テーブルの計数値がそれぞれ度数として入力され、また半導体メモリ210の複数の記憶領域210−1〜210−Nに記憶されていた記憶データのそれぞれが入力される。
【0237】
そして、複数の加算器209−1〜209−Nでは、度数が記憶データに足し込まれる。複数の加算器209−1〜209−Nで得られた足し込みデータのそれぞれは、半導体メモリ210の複数の記憶領域210−1〜210−Nに記憶データとして書き戻される。
【0238】
バッファメモリ206からの計数値テーブルの計数値の読み出し、複数の加算器209−1〜209−Nにおける足し込みの演算、半導体メモリ210の複数の記憶領域210−1〜210−Nへの足し込みデータの書き戻しは、参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し行われる。これにより、半導体メモリ210に、探索範囲の各画素位置に対応して度数の累積値が配された、当該参照ブロックに対応したヒストグラムテーブルが得られる。
【0239】
動きベクトル検出部211では、半導体メモリ210に得られる各参照ブロックに対応したヒストグラムにおける極大値に基づいて、各参照ブロックの動きベクトルMV1〜MVnが検出される。上述したように、ヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。そのため、参照ブロック内に動きの異なるものが複数混在する場合にはヒストグラムテーブルに複数個の極大値が示され、従って動きベクトル検出部211では複数個の動きベクトルが検出される。
【0240】
このように動きベクトル検出部211で検出される、参照ブロックの動きベクトルMV1〜MVnは動きベクトル特定部212に供給される。この動きベクトル特定部212では、動きベクトルMV1〜MVnに基づいて、その参照ブロックを構成する各画素データの動きベクトルMVが特定される。そして、この各画素データの動きベクトルMVは出力端子213に出力される。
【0241】
以上説明したように、図25の動きベクトル検出装置200においても、上述した図5に示す動きベクトル検出装置100と同様に、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間の差分絶対値演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、差分絶対値がその閾値より小さいときは計数値として0以外の値を配し、差分絶対値がその閾値以上のときは計数値として0を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値に基づいて参照ブロックの動きベクトルMV1〜MVnを検出するものである。
【0242】
この場合、このヒストグラムテーブルにおける度数の極大値は、参照ブロック内に存在する動きに対応した動きベクトルを表している。マッチング度合いが高く差分絶対値がその閾値より小さいときのみ計数値として0以外の値を配して計数値テーブルを生成するものであって、ヒストグラムテーブルはマッチング度合いが高いもののみによって生成されることとなり、その度数の分布はより先鋭化されたものとなる。そのため、参照ブロック内に動きの異なるものが複数混在する場合には、ヒストグラムテーブルに複数個の極大値が明瞭に分離して示され易くなる。したがって、参照ブロックの一個または複数個の動きベクトルを正しく検出できる。
【0243】
また、図5の動きベクトル検出装置100と同様に、マッチング度合いが高く差分絶対値がその閾値より小さいときに配する計数値を一定値とするのではなく、差分絶対値が小さい程、つまりマッチングの度合いが高い程、絶対値の大きな値としているので、ヒストグラムテーブルの度数の分布を一層先鋭化できる利益がある。
【0244】
また、図5の動きベクトル検出装置100と同様に、補正係数取得部207では、参照ブロックを構成する各画素データ毎にアクティビティAを求め、この各画素データ毎に、アクティビティAの最大アクティビティA_maxに対する割合が高い程大きな値を補正係数kとして得て、参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれこの各画素データに対応した補正係数kを掛けて補正するものであり、アクティビティAによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【0245】
なお、補正係数取得部207で補正係数kを求め、計数値補正部208でこの補正係数kを計数値に掛けて補正するものであったが、この代わりに、計数値生成部205で差分絶対値に対応して計数値を生成する際に用いられる閾値を、アクティビティが大きい程大きくするように変更してもよい。この場合、計数値を補正係数kで補正する場合と同様に、周囲におけるアクティビティが大きな参照ブロックの画素データに対応した計数値テーブルの計数値に関しては、その絶対値が大きくなる。これにより、アクティビティによるマッチングの度合い、つまり差分絶対値の変化による不具合を軽減できる。
【0246】
また、参照フレームとしての入力フレームを次フレームの探索フレームとして格納する探索フレームメモリ203を備え、複数の差分絶対値演算器204−1〜204−Nで、入力フレームの画素データが入力される都度、その画素データと、フレームメモリ203より読み出される、その画素データの探索範囲に含まれる探索フレームの複数の画素データとの差分絶対値を演算するものであり、参照フレームを一旦フレームメモリに記憶し、その後に改めて処理のために読み出すといった無駄な動作を排除できる。
【0247】
また、加算器209−1〜209−Nおよび半導体メモリ210の部分は、図5の動きベクトル検出装置100における加算器109−1〜109−Nおよび半導体メモリ110と同様に構成されるものであり、同様の効果を得ることができる。
【0248】
また、図25の動きベクトル検出装置200においては、図5の動きベクトル検出装置100と同様に、動きベクトル検出部211で検出された参照ブロックの動きベクトルMV1〜MVnに基づいて、動きベクトル特定部212で、その参照ブロックを構成する各画素データの動きベクトルMVを特定することができる。上述したように、参照ブロックの動きベクトルを正しく検出できることから、その動きベクトルに基づいて特定される各画素データの動きベクトルもより精度の高いものとなる。
【0249】
さらに、動きベクトル特定部212では、このように特定される参照ブロックを構成する各画素データの動きベクトルMVから孤立点を除去する等の補正処理を行うので、この各画素データの動きベクトルの精度をさらに高めることができる。
【0250】
次に、この発明に係る動きベクトル検出装置の第3の実施の形態について説明する。図29は、第3実施の形態としての動きベクトル検出装置300の構成を示している。
【0251】
この動きベクトル検出装置300は、装置全体の動作を制御するシステムコントローラ301と、画像データDiが入力される入力端子302と、この入力端子302に入力された画像データDiを蓄積するためのフレームメモリ303,304とを有している。
【0252】
また、動きベクトル検出装置300は、入力端子302に対する、フレームメモリ303,304の直列接続関係を切り換える接続切り換え部305を有している。この接続切り換え部305は、入力端子302→フレームメモリ303→フレームメモリ304の順に接続する第1の接続状態と、入力端子302→フレームメモリ304→フレームメモリ303の順に接続する第2の接続状態とを、切り換える。
【0253】
また、動きベクトル検出装置300は、フレームメモリ303に記憶されるフレームを探索フレームまたは参照フレームとすると共に、フレーム304に記憶されるフレームを参照フレームまたは探索フレームとして、参照ブロックの各画素データの動きベクトルMVを得る処理をする動きベクトル検出処理部306と、この動きベクトルMVを出力する出力端子307とを有している。なお、動きベクトル検出処理部306には、接続切り換え部305から、参照ブロックを構成する各画素データの周囲におけるアクティビティAを検出する際に必要とする参照フレームの画素データDrefが供給される。
【0254】
動きベクトル検出処理部306は、図5の動きベクトル検出装置100における差分絶対値演算器104−1〜104−N、計数値生成部105、計数値テーブル生成用の半導体メモリ106、補正係数取得部107、計数値補正部108、加算器109−1〜109−N、ヒストグラムテーブル生成用の半導体メモリ110、動きベクトル検出部111および動きベクトル特定部112と同様の構成(第1の構成)、あるいは図25の動きベクトル検出装置200における差分絶対値演算器204−1〜204−N、計数値生成部205、バッファメモリ206、補正係数取得部207、計数値補正部208、加算器209−1〜209−N、ヒストグラムテーブル生成用の半導体メモリ210、動きベクトル検出部211および動きベクトル特定部212と同様の構成(第2の構成)とされる。
【0255】
この動きベクトル検出装置300においては、接続切り換え部305による接続状態の切り換えや、複数の差分絶対値演算器への共通入力画素データを探索フレームの画素データとするか参照フレームの画素データとするかによって、図30A〜Dに示す構成を実現できる。図30A,Cの構成を採る場合、動きベクトル検出処理部306は第1の構成をとり、図5の動きベクトル検出装置100と同様の動作によって、動きベクトルMVを検出する。一方、図30B,Dの構成を採る場合、動きベクトル検出処理部306は第2の構成をとり、図25の動きベクトル検出装置200と同様の動作によって、動きベクトルMVを検出する。
【0256】
この図29に示す動きベクトル検出装置300によっても、上述した図5の動きベクトル検出装置100、図25の動きベクトル検出装置200と同様の作用効果を得ることができる。
【0257】
次に、この発明に係る動きベクトル検出装置の第4の実施の形態について説明する。図31は、第4実施の形態としての動きベクトル検出装置400の構成を示している。
【0258】
この動きベクトル検出装置400は、装置全体の動作を制御するシステムコントローラ401と、画像データDiが入力される入力端子402と、この入力端子402に入力された画像データDiを蓄積する直列接続されたフレームメモリ403,404とを有している。
【0259】
また、動きベクトル検出装置400は、フレームメモリ403,404に記憶されたフレームの画素データを、後述する動きベクトル検出処理部406に、探索フレームおよび参照フレームの画素データとして選択的に供給するための接続切り換え部405を有している。
【0260】
また、動きベクトル検出装置400は、接続切り換え部405より供給される探索フレームおよび参照フレームの画素データを用いて、参照ブロックの各画素データの動きベクトルMVを得る処理をする動きベクトル検出処理部406と、この動きベクトルMVを出力する出力端子407とを有している。なお、動きベクトル検出処理部406には、接続切り換え部405から、参照ブロックを構成する各画素データの周囲におけるアクティビティAを検出する際に必要とする参照フレームの画素データDrefが供給される。
【0261】
動きベクトル検出処理部406は、図5の動きベクトル検出装置100における差分絶対値演算器104−1〜104−N、計数値生成部105、計数値テーブル生成用の半導体メモリ106、補正係数取得部107、計数値補正部108、加算器109−1〜109−N、ヒストグラムテーブル生成用の半導体メモリ110、動きベクトル検出部111および動きベクトル特定部112と同様の構成(第1の構成)、あるいは図25の動きベクトル検出装置200における差分絶対値演算器204−1〜204−N、計数値生成部205、バッファメモリ206、補正係数取得部207、計数値補正部208、加算器209−1〜209−N、ヒストグラムテーブル生成用の半導体メモリ210、動きベクトル検出部211および動きベクトル特定部212と同様の構成(第2の構成)とされる。
【0262】
この動きベクトル検出装置400においては、接続切り換え部405による参照フレーム、探索フレームの切り換えや、複数の差分絶対値演算器への共通入力画素データを探索フレームの画素データとするか参照フレームの画素データとするかによって、上述した動きベクトル検出装置300で実現された図30A〜Dに示す構成と同様の構成を実現できる。そして、図30A,Cと同様の構成を採る場合、動きベクトル検出処理部406は第1の構成をとり、図5の動きベクトル検出装置100と同様の動作によって、動きベクトルMVを検出する。一方、図30B,Dと同様の構成を採る場合、動きベクトル検出処理部406は第2の構成をとり、図25の動きベクトル検出装置200と同様の動作によって、動きベクトルMVを検出する。
【0263】
この図31に示す動きベクトル検出装置400によっても、上述した図5の動きベクトル検出装置100、図25の動きベクトル検出装置200と同様の作用効果を得ることができる。
【0264】
上述した図5の動きベクトル検出装置100および図25の動きベクトル検出装置200等はハード的に動きベクトルMVを検出するものを示したが、ソフト的に同様の動きベクトルMVを検出することもできる。
【0265】
図32のフローチャートは、その場合における動きベクトルの検出処理を示している。
【0266】
まず、ステップST1で、検出処理を開始し、ステップST2で、参照ブロックの画素データ(参照画素)とそれに対応した探索範囲の複数の画素データ(探索画素)との間のマッチング演算、例えば差分絶対値演算を、参照ブロックを構成する各参照画素分行い、その結果に基づき、その各参照画素に対応した計数値テーブルを生成し、各計数値テーブルを足し込んでヒストグラムテーブルを得る。
【0267】
次に、ステップST3で、ヒストグラムの極大値または極小値に基づき、参照ブロックの動きベクトルMV1〜MVnを検出する。そして、ステップST4で、参照ブロックの動きベクトルMV1〜MVnに基づいて、参照ブロックを構成する各参照画素の動きベクトルMVを特定し、その後ステップST5で処理を終了する。
【0268】
図33のフローチャートは、図32のステップST2におけるヒストグラム生成処理の一例を示している。この生成処理例は、図5の動きベクトル検出装置100における処理に対応したものである。
【0269】
まず、ステップST11で、生成処理を開始し、ステップST12で、N=1に設定する。そして、ステップST13で、参照ブロックに対応した探索範囲のN番目の画素データ(探索画素)とそれを探索範囲に含む所定の参照ブロックを構成する画素データ(参照画素)との間の1対Nのマッチング演算をする。
【0270】
次に、ステップST14で、各参照画素に対応した計数値テーブルを生成する。そして、ステップST15で、N=Nmaxであるか否かを判定する。ここで、Nmaxは、参照ブロックに対応した探索範囲に含まれる画素データの個数である。N=Nmaxでないときは、ステップST16でNをインクリメントし、その後にステップST13に戻って、次の探索画素についての処理に移る。
【0271】
一方、ステップST15でN=Nmaxであるときは、各参照画素に対応した計数値テーブルが完成しているので、ステップST17に進む。ステップST17では、各参照画素に対応したアクティビティAを求め、各参照画素データに対応した補正係数kを求める。
【0272】
そして、ステップST18で、参照ブロックを構成する各参照画素に対応した計数値テーブルの計数値に補正係数kを掛けて補正し、探索範囲の画素位置毎に足し込み、ヒストグラムテーブルを生成する。その後に、ステップST19で、生成処理を終了する。
【0273】
また、図34のフローチャートも、図32のステップST2におけるヒストグラム生成処理の一例を示している。この生成処理例は、図25の動きベクトル検出装置200における処理に対応したものである。
【0274】
まず、ステップST21で、生成処理を開始し、ステップST22で、N=1に設定する。そして、ステップST23で、参照ブロックを構成するN番目の画素データ(参照画素)とそれに対応した探索範囲の複数の画素データ(探索画素)との間の1対Nのマッチング演算をする。
【0275】
次に、ステップST24で、N番目の参照画素に対応した計数値テーブルを生成する。そして、ステップST25で、N番目の参照画素に対応したアクティビティAを求め、その参照画素に対応した補正係数kを求める。
【0276】
次に、ステップST26で、N番目の参照画素に対応した計数値テーブルの計数値に補正係数kを掛けて補正する。そして、ステップST27で、N番目の参照画素に対応した計数値テーブルの計数値を、ヒストグラムテーブルに、探索範囲の画素位置毎に足し込む。
【0277】
次に、ステップST28で、N=Nmaxであるか否かを判定する。ここで、Nmaxは、参照ブロックを構成する画素データ(参照画素)の個数である。N=Nmaxでないときは、ステップST29でNをインクリメントし、その後にステップST23に戻って、次の参照画素についての処理に移る。一方、ステップST28でN=Nmaxであるときは、ヒストグラムテーブルが完成しているので、ステップST30で、生成処理を終了する。
【0278】
図35のフローチャートは、図32のステップST4における動きベクトル特定処理の一例を示している。
【0279】
まず、ステップST41で、特定処理を開始し、ステップST42で、N=1に設定する。そして、ステップST43で、参照ブロックを構成するN番目の画素データ(参照画素)を選択する。
【0280】
次に、ステップST44で、M=1に設定し、ステップST45で、図32のステップST3で検出された参照ブロックの動きベクトルのMV1〜MVnのうちM番目の動きベクトルを選択する。そして、ステップST46で、N番目の参照画素と、M番目の動きベクトルで示す探索フレームの探索画素との間の相関情報、例えば差分絶対値あるいは差分二乗値等を求める。
【0281】
次に、ステップST47で、M=Mmaxであるか否かを判定する。ここで、Mmaxは、検出された参照ブロックの動きベクトルの個数であって、Mmax=nである。M=Mmaxでないときは、ステップST48で、Mをインクリメントし、その後にステップST45に戻って、次の動きベクトルに対応した相関情報の演算処理に移る。
【0282】
一方、M=Mmaxであるときは、ステップST49で、各動きベクトルMV1〜MVnに対応した相関情報に基づいて、最も相関が高くなる場合の動きベクトルを、N番目の参照画素の動きベクトルMVとして特定する。
【0283】
次に、ステップST50で、N=Nmaxであるか否かを判定する。ここで、Nmaxは、参照ブロックを構成する画素データ(参照画素)の個数である。N=Nmaxでないときは、ステップST51で、Nをインクリメントし、その後にステップST43に戻って、次の参照画素の処理に移る。
【0284】
一方、N=Nmaxであるときは、ステップST52に進む。このステップST52では、参照ブロックを構成する各参照画素に対応して特定された動きベクトルMVから、孤立した動きベクトルを除去する等の補正処理を行って、各各参照画素に対応した動きベクトルMVを最終的に特定する。その後、ステップST53で、特定処理を終了する。
【0285】
なお、上述実施の形態においては、通常のブロックマッチング法によって動きベクトルを検出するものを示したが、この発明は代表点ブロックマッチング法によって動きベクトルを検出するものにも、同様に適用できることは勿論である。
【0286】
【発明の効果】
この発明によれば、参照フレームの所定の参照ブロックを構成する画素データとこの画素データに対応した探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を行い、参照ブロックを構成する各画素データ毎に、探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として0以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として0を配した計数値テーブルを生成し、参照ブロックを構成する各画素データに対応した計数値テーブルの各計数値を度数とし、この度数を探索範囲の画素位置毎に足し込んでヒストグラムテーブルを生成し、このヒストグラムテーブルの度数の極大値または極小値に基づいて参照ブロックの動きベクトルを検出するものであり、参照ブロック内に動きの異なるものが複数混在する場合であっても、動きベクトルを正しく検出できる。
【図面の簡単な説明】
【図1】本発明による動きベクトル検出方法の概略を説明するための図である。
【図2】相関値テーブルの一例(2つの動きがある場合)を示す図である。
【図3】ヒストグラムテーブルの一例(2つの動きがある場合)を示す図である。
【図4】アクティビティを求めるための画素データ例を示す図である。
【図5】第1の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図6】入力フレームが探索フレームであって過去フレームが参照フレームである場合における、動きベクトル検出のためのマッチング演算を説明するための図である。
【図7】参照ブロックと探索範囲との関係を示す図である。
【図8】動きベクトル特定部の構成を示すブロック図である。
【図9】入力画素データと参照ブロックと演算器との関係を示す図である。
【図10】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図11】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図12】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図13】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図14】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図15】入力画素データの演算対象範囲と参照ブロックとの位置関係を示す図である。
【図16】所定の参照ブロックを構成する各画素データに対応した計数値テーブルを得る際の、複数の差分絶対値演算器における演算過程を示す図である。
【図17】演算器(7,7)における演算過程を示す図である。
【図18】動きベクトル(1参照画素の探索範囲の座標)を示す図である。
【図19】動きベクトルと計数値テーブル生成用メモリにおける記憶位置との対応関係を示す図である。
【図20】半導体メモリの全体構成を示す図である。
【図21】半導体メモリの記憶領域の構成を示す図である。
【図22】メモリ部のメイン・サブロウデコーダとワード線の構成を示す図である。
【図23】半導体メモリと加算器とを一体化した構成を示す図である。
【図24】メモリセルの構成を示す図である。
【図25】第2の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図26】1個の参照画素とN個の探索範囲画素との1対Nのマッチング演算を説明するための図である。
【図27】入力画素データと探索範囲と演算器との関係を示す図である。
【図28】参照ブロックを示す図である。
【図29】第3の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図30】切り換えられる構成の種類を示す図である。
【図31】第4の実施の形態としての動きベクトル検出装置の構成を示すブロック図である。
【図32】動きベクトル検出処理を示すフローチャートである。
【図33】ヒストグラムテーブルの生成処理の一例を示すフローチャートである。
【図34】ヒストグラムテーブルの生成処理の一例を示すフローチャートである。
【図35】各参照画素の動きベクトルの特定処理を示すフローチャートである。
【図36】ブロックマッチング法を説明するための図である。
【図37】ブロックマッチング法の問題点(複数の動きがある場合)を説明するための図である。
【符号の説明】
100,200,300,400・・・動きベクトル検出装置、101,201,301,401・・・システムコントローラ、102,202,302,403・・・入力端子、103・・・参照フレームメモリ、104−1〜104−N,204−1〜204−N・・・差分絶対値演算器、105,205・・・計数値生成部、106・・・計数値テーブル生成用の半導体メモリ、107,207・・・補正係数取得部、108,208・・・計数値補正部、109−1〜109−N,209−1〜209−N・・・加算器、110,210・・・ヒストグラムテーブル生成用の半導体メモリ、111,211・・・動きベクトル検出部、112,212・・・動きベクトル特定部、113,213,307,407・・・出力端子、121・・・コントローラ、122・・・探索画素用のメモリ、123−1〜123−n・・・相関演算部、124・・・動きベクトル仮特定部、125・・・動きベクトル補正部、150−1〜150−8・・・メモリ部、151・・・読み出し用のロウデコーダ、153・・・書き込み用のメインロウデコーダ、154・・・書き込み用のサブロウデコーダ、203・・・探索フレームメモリ、206・・・バッファメモリ、303,304,403,404・・・フレームメモリ、305,405・・・接続切り換え部、306,406・・・動きベクトル検出処理部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a motion vector detecting device and a motion vector detecting method. Specifically, the present invention performs a matching operation between pixel data constituting a predetermined reference block of a reference frame and a plurality of pixel data present in a search range of a search frame corresponding to the pixel data, and A value other than 0 is allocated as a count value when the degree of matching is higher than the threshold value, and a count value is set when the degree of matching is equal to or less than the threshold value, corresponding to each pixel position in the search range for each pixel data to be configured. A count value table in which 0 is arranged is generated, and each count value of the count value table corresponding to each pixel data forming the reference block is set as a frequency, and this frequency is added for each pixel position in the search range to generate a histogram table. Generate and detect the motion vector of the reference block based on the local maximum value or local minimum value of this histogram table, Even if the motion of different in the lock of a plurality mixed, but according to the detection apparatus and the detection method of the motion vector to correctly detect a motion vector.
[0002]
[Prior art]
In image processing, motion vector detection is one of important factors, and a typical method is a block matching method shown in FIG. This is because the reference block, which is a block-shaped pixel data group in the reference frame, is a candidate block that is the same block-shaped pixel data group as the reference block that can be located at an arbitrary position within a predetermined search range of the search frame. A search is performed to determine whether or not the correlation is the highest and the matching is obtained. The relative displacement between the reference block and the matched candidate block is a motion vector, and one motion vector is obtained for each reference block.
[0003]
[Problems to be solved by the invention]
However, in the above-described block matching method, as shown in FIG. 37, for example, when a plurality of reference blocks having different motions coexist, there is a problem that a motion vector cannot be correctly detected. That is, the detected motion vector itself is incorrect, or even if one of the motions is correctly detected, the other motion vectors cannot be detected.
[0004]
An object of the present invention is to provide a motion vector detecting device and a detecting method capable of correctly detecting a motion vector even when a plurality of reference blocks having different motions are mixed.
[0005]
[Means for Solving the Problems]
A motion vector detection device according to the present invention is a motion vector detection device that detects a motion vector from a temporally preceding and succeeding reference frame and a search frame, and includes a pixel data forming a predetermined reference block of the reference frame, A matching operation between a plurality of pixel data present in the search range of the search frame corresponding to the data, a matching operation means for performing each pixel data constituting the reference block, and for each pixel data constituting the reference block, Based on the result of the matching operation, a value other than 0 is arranged as a count value when the degree of matching is higher than the threshold value, and when the degree of matching is equal to or less than the threshold value, the total value is calculated for each pixel position in the search range. Count value table generating means for generating a count value table in which 0 is arranged as a numerical value, and a count value corresponding to each pixel data A histogram table generating means for generating a histogram table in which cumulative values of frequencies are arranged corresponding to each pixel position in the search range by adding each frequency to each pixel position in the search range by setting each count value of the table as a frequency; And a motion vector detecting means for detecting a motion vector of the reference block based on the local maximum value or the local minimum value of the histogram table.
[0006]
Further, the motion vector detection method according to the present invention is a motion vector detection method for detecting a motion vector from a temporally preceding and succeeding reference frame and a search frame, and includes a pixel data forming a predetermined reference block of the reference frame. A matching calculation step of performing a matching calculation between a plurality of pixel data present in the search range of the search frame corresponding to the pixel data for each pixel data forming the reference block; and a matching calculation step for each pixel data forming the reference block. On the basis of the result of the matching operation, a value other than 0 is arranged as a count value when the degree of matching is larger than the threshold value, corresponding to each pixel position in the search range, and when the degree of matching is equal to or less than the threshold value. Is a count value table generating step of generating a count value table in which 0 is allocated as a count value, and each pixel data Each count value of the corresponding count value table is set as a frequency, and this frequency is added for each pixel position in the search range to generate a histogram table in which the cumulative value of the frequency is arranged corresponding to each pixel position in the search range. The method includes a histogram table generating step and a motion vector detecting step of detecting a motion vector of a reference block based on a local maximum value or a local minimum value of the histogram table.
[0007]
In the present invention, a matching operation between pixel data constituting a predetermined reference block of a reference frame and a plurality of pixel data present in a search range of a search frame corresponding to the pixel data constitutes a reference block. This is performed for each pixel data. For example, this matching operation is a process of obtaining information for determining the degree of matching such as a difference absolute value or a difference square value.
[0008]
Further, based on the result of the matching operation, for each pixel data constituting the reference block, a value other than 0 is allocated as a count value when the degree of matching is higher than the threshold value, corresponding to each pixel position in the search range. When the degree of matching is equal to or less than the threshold value, a count value table in which 0 is assigned as the count value is generated.
[0009]
In addition, each count value of the count value table corresponding to each pixel data is defined as a frequency, and the frequency is added to each pixel position in the search range, so that the cumulative value of the frequency is distributed corresponding to each pixel position in the search range. The generated histogram table is generated.
[0010]
For example, a plurality of difference absolute value calculators calculate a difference absolute value between pixel data of a search frame and pixel data of a predetermined reference block of a reference frame including the pixel data in a search range. Then, a count value is generated corresponding to each of the plurality of difference absolute values calculated by the plurality of difference absolute value calculators. In this case, when the difference absolute value is smaller than the threshold value, the count value is set to a predetermined value other than 0, while when the difference absolute value is equal to or larger than the threshold value, the count value is set to 0.
[0011]
The count value corresponding to each of the difference absolute values calculated by the plurality of difference absolute value calculators is stored in the first storage means in accordance with the difference absolute value calculator and the reference block relating to the count value. Is written to the count value storage area corresponding to the pixel data constituting Thus, a count value table for each pixel data constituting the reference block is obtained in the first storage unit. In this count value table, count values are arranged corresponding to each pixel position in the search range.
[0012]
Then, the plurality of adders are used by the plurality of count values of the count value table obtained in the first storage means as frequencies, and the plurality of counts are stored in the plurality of storage areas of the second storage means. Is added to the stored data. Each of the addition data obtained by the plurality of adders as described above is written to the plurality of storage areas of the second storage means.
[0013]
The addition operation and the storage operation are repeated by the number of the plurality of count value tables corresponding to the respective pixel data constituting the reference block obtained in the first storage means, so that the search in the second storage means is performed. A histogram table is obtained in which the cumulative value of the frequency is arranged corresponding to each pixel position in the range.
[0014]
In this case, the second storage means is a semiconductor memory, and at least a plurality of adders and the semiconductor memory are integrated, and a plurality of bit-by-bit adders forming the adder are aligned with the column pitch of the semiconductor memory. With this arrangement, the supply of the addition data from the adder to the semiconductor memory and the supply of the storage data from the semiconductor memory to the adder are efficiently performed.
[0015]
Further, in this case, the second storage means is a semiconductor memory, and the semiconductor memory reads the first port for writing and reading provided in association with the plurality of adders and the cumulative value of the frequency. And the read-only second port, the reading of the data stored in the semiconductor memory can be performed independently of the operation by the adder.
[0016]
Further, each word line extending in the column direction of the semiconductor memory is composed of a plurality of divided word lines divided corresponding to a plurality of storage areas, respectively, and the semiconductor memory is provided with a plurality of divided word lines constituting an arbitrary word line. The provision of the row decode means for selectively activating any of the divided word lines enables the semiconductor memory to be independently accessed in the column direction in units of divided word lines.
[0017]
For example, each word line includes a continuous global word line and a plurality of section word lines divided corresponding to a plurality of storage areas and connected to a predetermined number of memory cells, respectively. The row decoding means corresponds to a main row decoding means for selectively activating any of the global word lines constituting each word line, and a global word line activated by the main row decoding means. And a sub-row decode means for selectively activating any one of the plurality of section word lines.
[0018]
In this case, it is assumed that a plurality of storage areas of the semiconductor memory are arranged in a row direction in which a plurality of block areas for storing count values related to a plurality of reference blocks are provided. The sub-row decode means simultaneously activates a predetermined number of global word lines corresponding to the block areas to be activated, and sets the section word lines to be activated corresponding to the predetermined number of global word lines to sections corresponding to different storage areas. By using the word line, even if the difference absolute value calculation related to the plurality of reference blocks is performed in parallel by the plurality of difference absolute value calculators, the count value generated by the count value generation unit is used for each reference block. Writing can be distributed to different word line positions in the row direction, and the count value table can be stored in the semiconductor memory for each reference block. It is possible to obtain a bull.
[0019]
Further, for example, a plurality of difference absolute value calculators calculate a difference absolute value between pixel data of a reference block extracted from a reference frame and pixel data of a search frame existing in a search range of the pixel data. Then, for each pixel data constituting the reference block, a count value is generated corresponding to each of the plurality of difference absolute values calculated by the plurality of difference absolute value calculators, and each pixel position in the search range is calculated. Is obtained, a count value table in which count values are arranged corresponding to. In this case, when the difference absolute value is smaller than the threshold value, the count value is set to a predetermined value other than 0, while when the difference absolute value is equal to or larger than the threshold value, the count value is set to 0.
[0020]
Then, the plurality of adders add the plurality of count values in the count value table to frequencies, and each of the plurality of frequencies is added to the storage data stored in the plurality of storage areas of the storage means. Each of the addition data obtained by the plurality of adders as described above is written to the plurality of storage areas of the storage means.
[0021]
The addition operation and the storage operation are repeated by the number of the plurality of count value tables corresponding to the respective pixel data constituting the reference block, so that the storage means can accumulate the frequency corresponding to each pixel position in the search range. A histogram table with the values is obtained.
[0022]
Further, in this case, the storage means is a semiconductor memory, and at least a plurality of adders and the semiconductor memory are integrated, and a plurality of bit-by-bit adders constituting the adder are arranged at the same column pitch of the semiconductor memory. Thus, the supply of the addition data from the adder to the semiconductor memory and the supply of the storage data from the semiconductor memory to the adder are efficiently performed.
[0023]
Further, in this case, the storage means is a semiconductor memory, and the semiconductor memory is provided with a first port for writing and reading provided in association with the plurality of adders, and a read-only port for reading the cumulative value of the frequency. And the second port can read data stored in the semiconductor memory independently of the operation by the adder.
[0024]
The motion vector of the reference block is detected based on the maximum value or the minimum value of the frequency of the histogram table generated as described above. Here, when the count value provided when the degree of matching is high is a positive value, the count value is a local maximum value, and when the count value is a negative value, the count value is a local minimum value. The position of the maximum value or the minimum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block.
[0025]
As described above, a count value table is generated by arranging a value other than 0 as a count value only when the degree of matching is high, and the histogram table is generated only by a high degree of matching. The frequency distribution becomes sharper. Therefore, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maximum values or local minimum values are easily separated and shown in the histogram table. Therefore, the motion vector of the reference block can be correctly detected.
[0026]
It should be noted that the distribution of the frequency in the histogram table can be further sharpened by setting the count value to be distributed when the degree of matching is high, instead of a constant value, as the degree of matching is high, and the absolute value is increased. .
[0027]
In addition, an activity is obtained for each pixel data constituting the reference block, and for each pixel data, a larger value is obtained as a correction coefficient as the ratio of the activity to the maximum activity is higher, and the value is obtained for each pixel data constituting the reference block. By multiplying the corresponding count value in the corresponding count value table by a correction coefficient corresponding to each of the pixel data and correcting the value, it is possible to reduce a problem caused by a change in the degree of matching due to the activity.
[0028]
Further, the activity in the surroundings is obtained for each pixel data constituting the reference block, and a threshold value of the degree of matching, which is used when obtaining the count value of the count value table corresponding to each pixel data constituting the reference block, By changing the threshold value to be lower as the activity is larger based on the activity corresponding to each of the pixel data, it is possible to reduce problems caused by a change in the degree of matching due to the activity.
[0029]
If the activity of the pixel data forming the reference block is high, that is, if the difference between the pixel data and the surrounding pixel data is large (when the waveform amplitude is large when viewed as a signal waveform), it is assumed that the pixel data is originally correct. Even at the position of the power motion vector, the degree of matching is low. This generally means that there is a component having a motion amount smaller than one pixel, and therefore, the larger the difference between the pixel data and the surrounding pixel data is, the larger the difference between pixel data values is at the position to be matched. by.
[0030]
Further, a motion vector of each pixel data constituting the reference block can be specified based on the detected motion vector of the reference block. In this case, with reference to the pixel data constituting the reference block and the pixel position of the search frame corresponding to one or a plurality of motion vectors of the detected reference block with reference to the pixel position of the pixel data. The correlation information is obtained, and the motion vector having the highest correlation is used as the motion vector of the pixel data forming the reference block. The correlation information in this case is, for example, a difference absolute value, a difference square value, or the like. As described above, since the motion of the reference block can be correctly detected, the motion vector corresponding to each pixel data can also be specified well.
[0031]
In addition, by removing isolated points from the motion vector of each pixel data constituting the reference block specified as described above, the accuracy of the motion vector of each pixel data can be improved.
[0032]
BEST MODE FOR CARRYING OUT THE INVENTION
First, a motion vector detecting method according to the present invention will be described with reference to FIG.
The conventional block matching method obtains, as a correlation value, a sum of absolute difference values obtained by adding all the absolute difference values between corresponding pixel data between a reference block and each candidate block for the block, and the search range generated by the sum is calculated as a correlation value. In a correlation value table of a corresponding size, a deviation between the center position of the table and the position where the correlation value is minimum is used as a motion vector in the reference block.
[0033]
In this method, the correlation value table is generated including all information that has not been matched, and the distribution of the correlation values is widened. Therefore, when a plurality of reference blocks having different motions coexist, the minimum value of the correlation value indicating each motion may be buried in the distribution of another motion, and the minimum value may occur at an incorrect position.
[0034]
Here, a processing procedure of the conventional block matching method will be described. As shown in the center column of FIG. 1, a 1: N matching operation, for example, a difference absolute value operation is performed between pixel data forming a reference block and each pixel data within a search range corresponding thereto. Obtain a provisional correlation value table. Then, the absolute value of each difference of the provisional correlation value table corresponding to all the pixel data of # 1 to #M forming the reference block is added for each pixel position in the search range to generate a correlation value table. Then, a motion vector of the reference block is detected based on the correlation value table.
[0035]
On the other hand, in the motion vector detection method according to the present invention, as shown in the right column of FIG. 1, the degree of matching is set to be smaller than the threshold based on the result of the matching operation for each pixel data forming the reference block. When the value is high, a value other than 0 is allocated as the count value, and when the degree of matching is equal to or less than the threshold value, a count value table is generated in which 0 is allocated as the count value.
[0036]
In the illustrated count value table, a circle is marked on the pixel position with the highest matching degree, a triangle is marked on the pixel value with the highest matching degree, and an x is marked on the pixel position with the next highest matching degree. ing. As the count value, ○ is “+3”, Δ is “+2”, X is “+1”, and the pixel position without a mark is “0”. For example, as shown in Table 1, when the absolute value of the difference as a result of the matching operation is 0, 1, 2, for example, “+3”, “+2”, and “+1” are generated as the count values, respectively. When the absolute value is 3 or more, “0” is generated as the count value.
[0037]
[Table 1]
Figure 2004206638
[0038]
Then, each count value of the count value table corresponding to all the pixel data of # 1 to #M constituting the reference block is set as a frequency, and the frequency is added for each pixel position of the search range, and the frequency is added to the pixel position of the search range. A histogram table in which the cumulative value of the frequency is arranged is generated. Then, the motion vector of the reference block is detected based on the local maximum value or the local minimum value of the histogram table.
[0039]
Here, when the count value provided when the degree of matching is high is a positive value, the count value is a local maximum value, and when the count value is a negative value, the count value is a local minimum value. The position of the maximum value or the minimum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block.
[0040]
According to the motion vector detection method of the present invention, a count value table is generated by arranging a value other than 0 as a count value only when the degree of matching is high. , And the frequency distribution becomes sharper. Therefore, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maximum values or local minimum values are easily separated and shown in the histogram table. Therefore, one or more motion vectors of the reference block can be correctly detected.
[0041]
FIGS. 2 and 3 show an example of a correlation value table in the conventional block matching method and an example of a hiss and a gram table in the motion vector detection method of the present invention when there are two different motions in the reference block. The correlation value table shown in FIG. 2 is displayed by exchanging the magnitude relation of the correlation values in order to facilitate comparison with the histogram table according to the present invention. That is, in each case, the position of the maximum value or the maximum value represents the motion vector.
[0042]
In the conventional block matching method for detecting a motion vector based on the correlation value table shown in FIG. 2, a motion vector indicating a more dominant motion is detected, but a motion indicating the other motion is buried. However, it is difficult to detect a motion vector indicating the motion. On the other hand, in the motion vector detecting method of the present invention in which a motion vector is detected based on the histogram table shown in FIG. 3, two maximum values appear clearly and separately in the histogram table. The two motion vectors shown respectively can be easily detected.
[0043]
In the above description, the degree of matching is classified into the top three and the other four types, but the present invention is not limited to this, and three or less or five or more types may be used. In the above description, each count value is set to “0”, “+1”, “+2”, “+3” in ascending order according to the degree of matching. However, this is not limited to the use of this count value. Instead, for example, all of 〜 to × may be set to “+1”, and the others may be set to “0”. However, the count value to be distributed when the degree of matching is higher than the threshold is not a fixed value, but the higher the degree of matching, the larger the absolute value is. There are benefits that can be sharpened.
[0044]
By the way, when the activity around the pixel data constituting the reference block is high, that is, when the difference between the pixel data and the pixel data around the pixel data is large (when the waveform amplitude is large when viewed as a signal waveform), Even at the position of the motion vector that should be correct, the degree of matching is low. This generally means that there is a component having a motion amount smaller than one pixel, and therefore, the larger the difference between the pixel data and the surrounding pixel data is, the larger the difference between pixel data values is at the position to be matched. by.
[0045]
As a countermeasure in this case, it is effective to set the absolute value of the count value of the count value table corresponding to the reference block whose surrounding activity is large so that the absolute value of the count value becomes large.
[0046]
Specifically, first, an activity A is obtained for each pixel data constituting the reference block. For example, as shown in FIG. 4, the pixel data for which the activity A is to be obtained is represented by a, the surrounding four pixel data are represented by b to d, and the activity A is calculated by the equation (1).
A = | a-b | + | a-c | + | a-d | + | a-e | (1)
[0047]
Then, for each pixel data constituting the reference block, a larger value is obtained as the correction coefficient k as the ratio of the activity A to the maximum activity A_max is higher. Table 2 shows a setting example of the correction coefficient k. In Table 2, A_nor is an activity normalized by dividing the activity A by the maximum activity A_max, and indicates the ratio of the activity A to the maximum activity A_max.
[0048]
[Table 2]
Figure 2004206638
[0049]
Then, correction is performed by multiplying the count value of the count value table corresponding to each pixel data constituting the reference block by a correction coefficient k corresponding to each pixel data (see the section “Corrected Count Value” in Table 1). ).
[0050]
As described above, instead of obtaining the correction coefficient k and multiplying the correction coefficient k by the count value to correct the count value, the threshold value used when generating the count value according to the degree of matching is set to the larger the activity, You may change so that it may become low.
[0051]
For example, in the example of Table 1 described above, when the difference absolute value is smaller than the threshold value 3, the count value is set to a value other than 0 (+3 to +1). However, this threshold value is changed so that it becomes larger as the activity becomes larger. In this case, increasing the threshold value of the absolute difference value means lowering the threshold value of the degree of matching.
[0052]
As described above, even when the threshold value is changed, similarly to the case where the above-described count value is corrected by the correction coefficient k, the count value of the count value table corresponding to the pixel data of the reference block having a large activity in the surrounding area is obtained. Has a larger absolute value. As a result, it is possible to reduce problems caused by a change in the degree of matching due to the activity.
[0053]
As described above, in the motion vector detection method according to the present invention, one or more motion vectors of the reference block can be detected based on the histogram table. Note that, based on the motion vectors detected in this way, it is possible to further specify the motion vector of each pixel data forming the reference block.
[0054]
In this case, correlation information, for example, a difference between pixel data constituting the reference block and pixel data at a pixel position of the search frame corresponding to the motion vector detected as described above with reference to the pixel position of this pixel data. An absolute value or a difference squared value is obtained, and a motion vector having the highest correlation is set as a motion vector of pixel data constituting the reference block.
[0055]
As described above, since the motion vector of the reference block can be correctly detected, the motion vector of each pixel data specified based on the motion vector also has high accuracy. In addition, by removing the isolated motion vector from the motion vector of each pixel data constituting the reference block specified as described above, the accuracy of the motion vector of each pixel data can be further improved.
[0056]
Here, the isolated motion vector means a motion vector of a certain pixel data when a motion vector of the certain pixel data is different from a motion vector of surrounding pixel data. The removal of the isolated motion vector means that the motion vector of the certain pixel data is replaced with the motion vector of the surrounding pixel data.
[0057]
Next, a first embodiment of the motion vector detecting device according to the present invention will be described. FIG. 5 shows a configuration of the motion vector detection device 100 according to the first embodiment. In the motion vector detecting device 100, the reference frame is a past frame with respect to the search frame, and the input frame is the search frame.
[0058]
The motion vector detecting device 100 includes a system controller 101 that controls the operation of the entire device, an input terminal 102 to which image data Di of an input frame serving as a search frame is input, and this image data Di And a reference frame memory 103 for storing as image data. Operations such as writing and reading of the frame memory 103 are controlled by the system controller 101.
[0059]
Further, the motion vector detection device 100 includes a difference absolute value calculator 104 for performing a difference absolute value calculation as a matching calculation.-1~ 104-Nhave. Multiple arithmetic units 104-1~ 104-NInput common pixel data constituting the image data Di input to the input terminal 102 as the pixel data Dc of the search frame, and a predetermined reference block (the same timing) of the reference frame including the pixel data Dc in the search range. Pixel data Dr at the maximum)-1~ Dr-NRespectively, and pixel data Dc and pixel data Dr-1~ Dr-NAnd the absolute value of the difference is calculated.
[0060]
In this case, as shown in FIG. 6, the reference pixels in the reference frame to be matched with the input pixels in the search frame are a plurality of reference pixels whose input pixels are located within the search range. The range in which the plurality of reference pixels are located is in a front-to-back relationship with the search range of a certain reference pixel, and is obtained by inverting the search range when the input pixel is temporarily regarded as the reference pixel in the left, right, up and down directions.
[0061]
Therefore, the plurality of reference pixels are often located over a plurality of reference blocks, and the number of pixels in one reference block is not constant from one to all. The combination of these reference blocks and the combination of pixels in one reference block also differ depending on the position of the input pixel.
[0062]
Returning to FIG. 5, the motion vector detecting device 100-1~ 104-NAnd a count value generation unit 105 that generates a count value corresponding to each of the plurality of difference absolute values obtained by the calculation. When the difference absolute value is smaller than the threshold value, the count value generation unit 105 generates a predetermined value other than 0 assuming that the degree of matching is higher than the threshold value, while the difference absolute value is equal to or greater than the threshold value. At this time, 0 is generated assuming that the degree of matching is equal to or less than the threshold. For example, as shown in Table 1 above, when the difference absolute values are 0, 1, and 2, the count value generation unit 105 generates “+3”, “+2”, and “+1” as count values, respectively. On the other hand, when the absolute value of the difference is 3 or more, “0” is generated as the count value. In this case, the threshold is 3.
[0063]
Further, the motion vector detecting device 100 includes a plurality of-1~ 104-NStorage areas 106 respectively corresponding to-1~ 106-NAnd a semiconductor memory 106 as storage means for generating a count value table. Writing and reading operations of the semiconductor memory 106 are controlled by the system controller 101.
[0064]
The system controller 101 includes a plurality of arithmetic units 104-1~ 104-NThe count value generated by the count value generation unit 105 corresponding to each of the difference absolute values obtained in (1) is stored in the count value storage area of the semiconductor memory 106 corresponding to the arithmetic unit relating to the count value and the pixel position of the reference block. Control is performed so that a count value table corresponding to each pixel data forming the reference block is obtained in the semiconductor memory 106. Here, the count value table is a table in which count values are arranged corresponding to each pixel position in the search range.
[0065]
In the present embodiment, as shown in FIG. 7, the size of the reference block is 8 × 8 pixels, and the search range is (−3 to +4) × (−3 to +4) pixels. In the reference block search range, there are (3 + 4 + 1) × (3 + 4 + 1) = 64 candidate blocks. Therefore, N = 64. That is, the plurality of arithmetic units 104-1~ 104-NA plurality of storage areas 106 of the semiconductor memory 106-1~ 106-NAre 64 in each case.
[0066]
Multiple arithmetic units 104-1~ 104-NIs in charge of calculating an absolute difference value corresponding to one candidate block for each reference block. Further, the plurality of storage areas 106 of the semiconductor memory 106-1~ 106-NHave block storage areas of a number corresponding to the number of reference blocks in one horizontal row of the reference frame. Furthermore, each block storage area has a count value storage area for the number of pixel data constituting the reference block.
[0067]
In the present embodiment, the image data Di is based on a progressive system. The image data Di input to the input terminal 102 is a series of pixel data of each line.
[0068]
As shown in FIG. 7, the search range is (−3 to +4) × (−3 to +4) pixels, and the size of the reference block is 8 × 8 pixels. Therefore, assuming that the line including the input pixel at the top of the search range for a certain reference block is the first line, the line including the input pixel at the bottom of the search range is the fifteenth line. Therefore, in order to obtain a count value table corresponding to each pixel data constituting a certain reference block, 15 lines of pixel data are required. FIG. 7 shows only one reference block. However, based on the above-described 15 lines of pixel data, all reference blocks for one horizontal row correspond to a total number corresponding to each pixel data constituting the reference block. You can get a numerical table.
[0069]
In addition, the motion vector detecting apparatus 100 obtains the activity A in the surroundings for each pixel data constituting the reference block, and sets a larger value as the ratio of the activity A to the maximum activity A_max is higher for each pixel data as the correction coefficient k. It has a correction coefficient acquisition unit 107 for obtaining.
[0070]
The correction coefficient acquisition unit 107 acquires a correction coefficient k corresponding to each pixel data constituting the reference block, for example, as follows. First, as shown in FIG. 4, for example, a is the pixel data for which the activity A is to be obtained, and four surrounding pixel data are b to d. Activity A is obtained for each pixel data. Next, for each pixel data constituting the reference block, the activity A is divided by the maximum activity A_max to obtain a normalized activity A_nor, and for example, a correction coefficient k is set as shown in Table 2 described above.
[0071]
Further, the motion vector detecting device 100 reads out from the above-described semiconductor memory 106 and-1~ 109-N, Which is corrected by multiplying the count value of the count value table corresponding to each pixel data constituting the reference block by the correction coefficient k corresponding to each pixel data acquired by the correction coefficient acquisition unit 107. It has a correction unit 108.
[0072]
Further, the motion vector detecting device 100 includes a plurality of adders 109.-1~ 109-NAnd a plurality of storage areas 110-1~ 110-NAnd a semiconductor memory 110 as storage means for generating a histogram table. Multiple adders 109-1~ 109-NAre input as counts in the count value table corresponding to the predetermined pixel data constituting the reference block, read out from the semiconductor memory 106 and corrected by the count value correction unit 108, respectively. Multiple storage areas 110-1~ 110-NIs input and the frequency is added to the stored data.
[0073]
Thus, the plurality of adders 109-1~ 109-NAre added to the plurality of storage areas 110 of the semiconductor memory 110.-1~ 110-NIs written back as stored data. The writing and reading operations of the semiconductor memory 110 are controlled by the system controller 101.
[0074]
The system controller 101 reads the count value of the count value table from the semiconductor memory 106,-1~ 109-NOf addition in a plurality of storage areas 110 of the semiconductor memory 110-1~ 110-NIs repeated by the number of count value tables corresponding to each pixel data constituting the reference block, and the semiconductor memory 110 accumulates the frequency corresponding to each pixel position in the search range. Control is performed to obtain a histogram table in which values are arranged.
[0075]
In addition, the motion vector detection device 100 has a motion vector detection unit 111 that detects a motion vector based on the local maximum value in the histogram table obtained in the semiconductor memory 110 for each reference block. The local maximum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block. Therefore, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maxima are shown in the histogram table, and the motion vector detecting unit 111 detects a plurality of motion vectors.
[0076]
In addition, the motion vector detecting device 100 detects one or more motion vectors MV of the reference block detected by the motion vector detecting unit 111.1~ MVn(N is an integer of 1 or more), a motion vector specifying unit 112 for specifying a motion vector MV of each pixel data constituting the reference block, and a motion of each pixel data specified by the motion vector specifying unit 112 And an output terminal 113 for outputting the vector MV.
[0077]
The motion vector identification unit 112 determines each of the motion vectors MV detected by the motion vector detection unit 111 based on the pixel data forming the reference block and the pixel position of the pixel data.1~ MVn, Correlation information between the pixel data at the pixel position of the search frame corresponding to, for example, a difference absolute value or a difference square value is obtained, and the motion vector having the highest correlation is set as the motion vector MV of this pixel data.
[0078]
FIG. 8 shows a specific configuration of the motion vector specifying unit 112.
The motion vector specifying unit 112 has a controller 121 for controlling the entire operation. The controller 121 is supplied with image data Di of an input frame (search frame) input to the input terminal 102 (see FIG. 5), and the image data Di is stored in a memory 122 for search pixels. Also, the controller 121 includes a motion vector MV detected by the motion vector detection unit 111 (see FIG. 5).1~ MVnIs supplied.
[0079]
Further, the motion vector specifying unit 112 includes a correlation calculating unit 123-1~ 123-nhave. This correlation operation unit 123-1~ 123-nThe pixel data (reference pixel data) constituting the reference block is read from the reference frame memory 103 under the control of the controller 121 and supplied in common. Also, the correlation operation unit 123-1~ 123-nRespectively, the motion vector MV based on the pixel position of the pixel data constituting the reference block.1~ MVnIs read from the memory 122 and supplied from the memory 122 under the control of the controller 121. Correlation calculator 123-1~ 123-nCalculates correlation information between reference pixel data and search pixel data, for example, a difference absolute value or a difference squared value.
[0080]
Further, the motion vector specifying unit 112 includes a temporary motion vector specifying unit 124. The temporary specifying unit 124 includes a motion vector MV detected by the motion vector detecting unit 111.1~ MVnIs supplied. Further, the temporary specifying unit 124 includes a correlation calculating unit 123-1~ 123-nIs supplied. The provisional specifying unit 124 includes a correlation calculating unit 123-1~ 123-nBased on the correlation information obtained in (1), the motion vector having the highest correlation is specified as the motion vector MV of the above-described reference pixel data.
[0081]
In this case, which motion vector MV1~ MVnIf the correlation is not sufficient, the information indicating that the motion is indefinite is output instead of outputting the motion vector MV. As the reference pixel data whose movement is uncertain, pixel data on which noise is superimposed or pixel data of a portion where there is no movement can be considered.
[0082]
Further, the motion vector specifying unit 112 includes a motion vector correcting unit 125 that performs a correction process such as removing an isolated motion vector from the motion vector MV of each pixel data configuring the reference block specified by the temporary specifying unit 124. are doing. Here, as described above, an isolated motion vector means a motion vector of a certain pixel data when the motion vector of the certain pixel data is different from the motion vectors of the surrounding pixel data. The removal of the isolated motion vector means that the motion vector of the certain pixel data is replaced with the motion vector of the surrounding pixel data.
[0083]
The operation of the motion vector specifying unit 112 shown in FIG. 8 will be described.
The motion vector MV of a predetermined reference block detected by the motion vector detection unit 1111~ MVnIs supplied to the controller 121 and the motion vector provisional specifying unit 124.
[0084]
Correlation calculator 123-1~ 123-n, Pixel data (reference pixel data) constituting the above-described predetermined reference block is read from the reference frame memory 103 and supplied in common. Also, the correlation operation unit 123-1~ 123-n, The motion vector MV based on the pixel position of the pixel data constituting the reference block.1~ MVnThe pixel data (search pixel data) at the pixel position of the search frame corresponding to is read from the memory 122 and supplied. Then, the correlation operation unit 123-1~ 123-nIn each case, correlation information between the reference pixel data and the search pixel data is obtained.
[0085]
Correlation calculator 123-1~ 123-nIs supplied to the temporary specifying unit 124. In the provisional specifying unit 124, the motion vector having the highest correlation is specified as the motion vector MV of the reference pixel data based on the correlation information. In this case, which motion vector MV1~ MVnIf also the correlation is not sufficient, information indicating that the motion is undefined is output instead of the motion vector MV.
[0086]
The above operation is performed on all the pixel data constituting the reference block, whereby the motion vector MV of each pixel data is specified. As described above, the motion vector MV (including the motion indefinite information) of each pixel data constituting the reference block specified by the provisional specifying unit 124 is obtained by removing a motion vector isolated by the motion vector correction unit 125 (isolated point removal) or the like. Are outputted sequentially or simultaneously.
[0087]
Although the motion vector specifying unit 112 shown in FIG. 8 obtains the motion vector MV for each pixel data, the correlation operation unit 123-1~ 123-nA plurality of sets of the motion vector provisional specifying unit 124 may be provided so that the motion vectors MV are obtained in parallel for a plurality of pixel data. Thus, for example, all the pixel data constituting the reference block can be obtained in parallel.
[0088]
The operation of the motion vector detection device 100 shown in FIG. 5 will be described.
The pixel data constituting the image data Di input to the input terminal 102 is a plurality of difference absolute value calculators 104 as pixel data Dc of a search frame (input frame).-1~ 104-NIs commonly input to. The image data Di is supplied to the frame memory 103 and stored as image data of a reference frame used in the next frame.
[0089]
Further, a plurality of arithmetic units 104-1~ 104-NThe pixel data Dr of the predetermined reference block of the reference frame including the pixel data Dc in the search range from the frame memory 103-1~ Dr-NAre respectively input. Then, the plurality of arithmetic units 104-1~ 104-NNow, the pixel data Dc and the pixel data Dr-1~ Dr-NAre calculated respectively. In this case, the plurality of arithmetic units 104-1~ 104-NThen, for each reference block, an operation is performed to determine the absolute difference value corresponding to one candidate block.
[0090]
Multiple arithmetic units 104-1~ 104-NAre supplied to the count value generating unit 105. The count value generation unit 105 generates a predetermined value other than 0 when the difference absolute value is smaller than the threshold value, and generates 0 when the difference absolute value is equal to or greater than the threshold value, for each of the difference absolute values. (See Table 1).
[0091]
Multiple arithmetic units 104-1~ 104-NThe count values generated by the count value generation unit 105 in correspondence with the absolute difference values obtained in Steps 1 and 2 are stored in a storage area 106 of the semiconductor memory 106 for generating a count value table.-1~ 106-NIs supplied as write data.
[0092]
As described above, each storage area 106-1~ 106-NHas a number of block storage areas corresponding to the number of reference blocks in one horizontal row of the reference frame. Further, each block storage area has a count value storage area for the number of pixel data constituting the reference block.
[0093]
Multiple arithmetic units 104-1~ 104-NThe count value generated by the count value generation unit 105 corresponding to each of the difference absolute values obtained in (1) is written to the storage area of the semiconductor memory 106 corresponding to the arithmetic unit and the pixel position of the reference block related to the count value. It is. As a result, a count value table is obtained in each block area of the semiconductor memory 106, in which count values are arranged corresponding to each pixel position in the search range corresponding to each pixel data forming the reference block.
[0094]
In the correction coefficient acquisition unit 107, the activity A in the surroundings is obtained for each pixel data forming the reference block, and the larger the ratio of the activity A to the maximum activity A_max for each pixel data, the larger the value is set as the correction coefficient k. (See FIG. 4, Table 2).
[0095]
The count values (N) of the count value table corresponding to the respective pixel data constituting the reference block obtained in the semiconductor memory 106 are sequentially read out, and a plurality of adders 109 are output via the count value correction unit 108.-1~ 109-NSupplied to The count value correction unit 108 multiplies the count value of the count value table corresponding to each pixel data constituting the reference block by the correction coefficient k corresponding to each pixel data acquired by the correction coefficient acquisition unit 107, and performs correction. Is performed.
[0096]
Multiple adders 109-1~ 109-NThe count values of the count value table read from the semiconductor memory 106 and corrected by the count value correction unit 108 and corresponding to predetermined pixel data forming the reference block are input as frequencies, respectively. A plurality of storage areas 110-1~ 110-NIs input.
[0097]
Then, a plurality of adders 109-1~ 109-NThen, the frequency is added to the stored data. Multiple adders 109-1~ 109-NAre added to the plurality of storage areas 110 of the semiconductor memory 110.-1~ 110-NIs written back as stored data.
[0098]
Reading of the count value of the count value table from the semiconductor memory 106, a plurality of adders 109-1~ 109-NOf addition in a plurality of storage areas 110 of the semiconductor memory 110-1~ 110-NThe write-back of the added data to is repeated by the number of count value tables corresponding to each pixel data constituting the reference block. As a result, a histogram table corresponding to the reference block in which the cumulative value of the frequency is arranged corresponding to each pixel position in the search range is obtained in the semiconductor memory 110.
[0099]
The motion vector detection unit 111 calculates the motion vector MV of each reference block based on the local maximum value in the histogram corresponding to each reference block obtained in the semiconductor memory 110.1~ MVnIs detected. As described above, the local maximum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block. For this reason, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maxima are shown in the histogram table, and thus the motion vector detecting unit 111 detects a plurality of motion vectors.
[0100]
Thus, the motion vector MV of the reference block detected by the motion vector detection unit 1111~ MVnIs supplied to the motion vector specifying unit 112. In the motion vector specifying unit 112, the motion vector MV1~ MVn, A motion vector MV of each pixel data constituting the reference block is specified. Then, the motion vector MV of each pixel data is output to the output terminal 113.
[0101]
As described above, a count value table corresponding to each pixel data constituting the reference block for one horizontal row can be obtained based on the pixel data of 15 lines based on the pixel data of 15 lines. In this case, the pixel data of the latter half line of the pixel data of the 15 lines is also used for the arithmetic processing for the reference block of the next horizontal row of the reference frame. Therefore, when the pixel data of the latter half line is input, it is necessary to also perform the arithmetic processing for the next horizontal reference block. Therefore, in practice, in the motion vector detecting device 100 shown in FIG.-1~ 104-N, Count value generation unit 105, semiconductor memory 106, count value correction unit 108, adder 109-1~ 109-NThe semiconductor memory 110 is provided with at least two systems.
[0102]
Next, the difference absolute value calculator 104-1~ 104-NWill be further described. FIG. 9A shows input pixel data and arithmetic unit 104.-1~ 104-NThe arrangement of the operation symmetric range of ((0,0) to (7,7)) is shown. FIG. 9B shows 8 × 8 pieces of pixel data (a, a) to (h, h) constituting the reference block.
[0103]
The range in which the pixel data of the reference block to be subjected to the absolute difference calculation with the input pixel data (the calculation target range) is divided into ranges handled by the arithmetic units (0, 0) to (7, 7). Each arithmetic unit (0,0) to (7,7) covers one pixel.
[0104]
As shown in FIG. 10, when the input pixel data is on the first line of the search range of the reference block and its calculation target range is over the pixel data (a, a) of the reference block, the 8 × The operation for obtaining the count value table corresponding to the eight pixel data starts. At this time, pixel data (a, a) is input to the computing units (7, 7) from the frame memory 103 (shown in FIG. 5). Then, an absolute difference between the input pixel data and the pixel data (a, a) is obtained by the arithmetic unit (7, 7).
[0105]
Next, as shown in FIG. 11, after one pixel period, the input pixel data shifts to the right one by one pixel, and the calculation target range of the input pixel data covers the pixel data (b, a) of the reference block. At this time, the pixel data (b, a) is input from the frame memory 103 to the computing unit (7, 7). Then, the arithmetic unit (7, 7) calculates the absolute value of the difference between the input pixel data and the pixel data (b, a).
[0106]
At the same time, pixel data (a, a) is input from the frame memory 103 to the computing units (6, 7). Then, the arithmetic units (6, 7) calculate the absolute value of the difference between the input pixel data and the pixel data (a, a).
[0107]
In the following, for the first line, the input pixel data sequentially shifts to the one on the right, and in the arithmetic unit whose assigned range includes the pixel data of the reference block, the calculation of the input pixel data and the pixel data of the reference block is performed. It takes place in parallel.
[0108]
FIG. 12 shows a state after seven pixel periods. In this state, the input pixel data shifts to the right one by seven pixels, and the calculation target range of the input pixel data extends to the pixel data (h, a) of the reference block. At this time, pixel data (h, a) to (a, a) are input from the frame memory 103 to the arithmetic units (7, 7) to (0, 7), respectively. Then, the arithmetic units (7, 7) to (0, 7) calculate the absolute differences between the input pixel data and the pixel data (h, a) to (a, a).
[0109]
Further, as shown in FIG. 13, when the input pixel data is on the second line of the search range for the reference block and the calculation target range is over the pixel data (a, a), (a, b) of the reference block, Pixel data (a, b) is input from the frame memory 103 to the arithmetic units (7, 7). Then, the arithmetic unit (7, 7) calculates the absolute value of the difference between the input pixel data and the pixel data (a, b).
[0110]
At the same time, pixel data (a, a) is input from the frame memory 103 to the computing units (7, 6). Then, the arithmetic units (7, 6) determine the absolute value of the difference between the input pixel data and the pixel data (a, a).
[0111]
In the following, for the second line, the input pixel data sequentially shifts to the right one. In the arithmetic unit including the pixel data of the reference block in the responsible area, the calculation of the input pixel data and the pixel data of the reference block are performed respectively. It takes place in parallel.
[0112]
The same applies to the following third to fifteenth lines, in which the input pixel data sequentially shifts to the one on the right, and in the arithmetic unit whose assigned range includes the pixel data of the reference block, the input pixel data and the reference block Is performed in parallel with the pixel data.
[0113]
FIG. 14 shows that the input pixel data is located on the eighth line of the search range for the reference block, and the calculation target range is over the eight pixel data (a, a) to (a, h) of the reference block. It shows the state where it was turned on. In this state, pixel data (a, h) to (a, a) are input from the frame memory 103 to the arithmetic units (7, 7) to (7, 0). Then, the arithmetic units (7, 7) to (7, 0) calculate the absolute difference between the input pixel data and the pixel data (a, h) to (a, a).
[0114]
FIG. 15 shows a state in which the input pixel data is on the fifteenth line of the search range for the reference block, and the calculation target range is over the pixel data (a, h) at the lower left of the reference block. In this state, the pixel data (a, h) is input from the frame memory 103 to the computing unit (7, 0). Then, the arithmetic unit (7, 0) calculates the absolute difference between the input pixel data and the pixel data (a, h).
[0115]
FIG. 16 is a block diagram of each of the arithmetic units 104 described above.-1~ 104-N9 shows a process of calculating a difference absolute value of each line in ((0, 0) to (7, 7)). In FIG. 16, numerals 1 to 64 indicate operations of input pixel data and pixel data (a, a) to (h, h) of the reference block, respectively.
[0116]
In each of the arithmetic units (0, 0) to (7, 7), the input pixel data and 64 pixel data (a, a) to (h, h) constituting the reference block are respectively associated with a certain reference block. ) Is calculated. In other words, each of the arithmetic units (0, 0) to (7, 7) has 64 bits of corresponding pixel data between a certain reference block and one candidate block existing in the search range for the reference block. Are calculated. FIG. 17 shows, as an example, the operation process in the operation units (7, 7).
[0117]
FIG. 18 shows a motion vector (the coordinates of the search range for one reference pixel). In the search range of the reference block, there are 64 candidate blocks corresponding to the respective motion vectors (x, y). Then, the count value table corresponding to each pixel data constituting the reference block includes 64 count values corresponding to each of the motion vectors (x, y).
[0118]
FIG. 19 shows a count value table 64 corresponding to each pixel data ((a, a) to (h, h)) constituting a reference block in an area corresponding to a certain reference block in the semiconductor memory 106. It shows in which count value storage area (address) the number of count values (corresponding to the motion vectors (+4, +4) to (-3, -3), respectively) is recorded.
[0119]
Further, FIG. 19 shows which motion vector yields a difference absolute value for generating a count value corresponding to a motion vector by calculation in each of the arithmetic units (0, 0) to (7, 7). . That is, the arithmetic unit (0,0) calculates the absolute difference value for generating the count value corresponding to the (+ 4, + 4) motion vector. Similarly, in the arithmetic units (1, 0) to (7, 7), difference absolute values for generating count values corresponding to the motion vectors of (+3, +4) to (-3, -3), respectively. Is required.
[0120]
It should be noted that each computing unit 104 corresponds to a certain reference block.-1~ 104-NIn ((0,0) to (7,7)), the calculation is performed as described above. In parallel with the calculation relating to a certain reference block, the calculation is performed before and after the certain reference block (reference block P) in the horizontal direction. Is also performed on the reference block adjacent to. That is, as is clear from FIG. 16, it can be seen that the operation relating to the reference block P and the operations relating to the reference blocks P−1 and P + 1 before and after it are performed in a timely manner.
[0121]
For example, the calculation regarding the reference block P is performed using 15 pixels of each line. When the first to seventh pixels are used, the operation regarding the reference block P is performed, and in parallel with this, the operation regarding the reference block P-1 is performed. Similarly, when the ninth to fifteenth pixels are used, the operation regarding the reference block P is performed, and in parallel with this, the operation regarding the reference block P + 1 is performed. When the eighth pixel is used, only the operation related to the reference block P is performed.
[0122]
For example, when the first pixel is used in the first line, the arithmetic unit (7, 7) performs an operation on the reference block P, but the arithmetic units (6, 7) to (0, 7) perform the operation on the reference block P An operation relating to -1 is performed. Further, for example, when the ninth pixel is used in the first line, the arithmetic units (6, 7) to (0, 7) perform an operation on the reference block P, but the arithmetic units (7, 7) perform the reference. The operation related to the block P + 1 is performed.
[0123]
As described above, the plurality of storage areas 106 of the semiconductor memory 106-1~ 106-NHas a number of block storage areas corresponding to the number of reference blocks in one horizontal row of the reference frame. Further, each block storage area has a count value storage area for the number of pixel data constituting the reference block. Then, the plurality of arithmetic units 104-1~ 104-NThe count value generated by the count value generation unit 105 corresponding to each of the difference absolute values obtained in the above is stored in a count value storage area of the semiconductor memory 106 corresponding to the arithmetic unit relating to the count value and the pixel position of the reference block. Written. For this reason, the semiconductor memory 106 stores a plurality of arithmetic units 104 in the column direction.-1~ 104-NAre configured to be independently accessible in a predetermined memory cell unit corresponding to each of the above.
[0124]
Next, a detailed configuration of the semiconductor memory 106 will be described. FIG. 20 shows the overall configuration of the semiconductor memory 106. The semiconductor memory 106 includes eight memory units 150-1~ 150-8It is composed of Each memory unit 150-1~ 150-8Is composed of a row decoder 151 for reading, eight storage areas, a main row decoder 153 for writing, and a sub-row decoder 154 for writing.
[0125]
Memory unit 150-1, 150-2, 150-3, 150-Four, 150-Five, 150-6, 150-7, 150-8Are stored in the arithmetic units 104, respectively.-1~ 104-8, 104-9~ 104-16, 104-17~ 104-twenty four, 104-twenty five~ 104-32, 104-33~ 104-40, 104-41~ 104-48, 104-49~ 104-56, 104-57~ 104-64Storage areas 106 corresponding to-1~ 106-8, 106-9~ 106-16, 106-17~ 106-twenty four, 106-twenty five~ 106-32, 106-33~ 106-40, 106-41~ 106-48, 106-49~ 106-56, 106-57~ 106-64(N = 64).
[0126]
Further, as described above, the 64 storage areas 106-1~ 106-64Have a number of block storage areas BM corresponding to the number of reference blocks in one horizontal row of the reference frame. Furthermore, each block storage area BM has 64 count value storage areas in the present embodiment for the number of pixel data constituting the reference block.
[0127]
FIG. 21 shows the above-mentioned 64 storage areas 106.-1~ 106-64Are shown in more detail. Each memory unit 150-1~ 150-88 storage areas (for example, 106-1~ 106-8), 64m (m is the number of reference blocks in one horizontal row) in the row direction and 8n (n is the number of output bits of the count value from the count value generation unit 105) memory cells in the column direction are arranged in a matrix. It is configured.
[0128]
As described above, the difference absolute value calculation for a certain reference block (reference block P) is performed using the pixel data of the first to fifteenth lines. For example, when the calculation is performed using the pixel data of the first line, the storage area 106-57~ 106-64Is written to the storage location. When the calculation using the pixel data of the fourth pixel is performed on the first line, the calculation performed by the calculation units (7, 7) to (4, 7) is a calculation regarding the reference block P, and the calculation unit (3, The operations performed in 7) to (0, 7) are operations relating to the reference block P-1. Therefore, the storage area 106-57~ 106-64For example, the count value is written to the storage position indicated by the lattice pattern in FIG. 21 (first line).
[0129]
For example, when the calculation is performed using the pixel data of the eighth line, the storage area 106-1~ 106-64Is written to the storage location. When an operation using the pixel data of the sixth pixel is performed on the eighth line, the arithmetic units (7, 7) to (2, 7), (7, 6) to (2, 6), (7, 5) ~ (2,5), (7,4) ~ (2,4), (7,3) ~ (2,3), (7,2) ~ (2,2), (7,1) ~ ( The operations performed in (2, 1) and (7, 0) to (2, 0) are operations relating to the reference block P, and are performed by the operation units (1, 7) to (0, 7) and (1, 6) to (1, 6). 0,6), (1,5)-(0,5), (1,4)-(0,4), (1,3)-(0,3), (1,2)-(0, 2) The operations performed in (1,1) to (0,1) and (1,0) to (0,0) are operations relating to the reference block P-1. Therefore, the storage area 106-1~ 106-64For example, the count value is written to the storage position indicated by the lattice pattern in FIG. 21 (8th line).
[0130]
Next, the memory unit 150-1~ 150-8The main row decoder 153 and sub-row decoder 154 for writing will be further described.
[0131]
As described above, the memory unit 150-1In the above, a plurality of memory cells arranged in the column direction-1~ 104-8It is necessary to independently access every n sections corresponding to each of ((0,0) to (7,0)). Therefore, the memory unit 150-1In, the row position to be accessed is designated by the main row decoder 153, and the section to be accessed is designated by the sub-row decoder 154 among the eight sections at the designated row position.
[0132]
Further, as described above, the memory unit 150-1In, it is necessary to simultaneously access two row positions existing in the block storage area BM corresponding to the two reference blocks. In this case, it is necessary to access different sections in the column direction at the two row positions. Therefore, the memory unit 150-1In, two row positions to be accessed are simultaneously specified by the main row decoder 153, and sections different from each other in the column direction are specified by the specified two row positions by the sub-row decoder 154.
[0133]
The above is described in the memory unit 150.-2~ 150-8The same applies to. Hereinafter, the memory unit 150-1With reference to FIG. 22, a specific example of the main row decoder 153, the sub row decoder 154, and the word line configuration will be described. Here, the storage area corresponding to the reference block P and the storage area corresponding to the reference block P + 1 adjacent thereto will be mainly described, but the storage areas corresponding to the other reference blocks have a configuration in which those storage areas are repeated. Has become.
[0134]
In the figure, global word lines WL continuous in the column directioni, WLi + 1, WLi + 2, WLi + 3,... Are arranged in a storage area corresponding to the reference block P. Global word line WLi, WLi + 1, WLi + 2, WLi + 3,... Corresponding to each of the section word lines WLs as divided word lines divided into sections.0, WLs1, WLsTwo, ..., WLs7(WLs0, WLs1, WLsTwo(Only shown).
[0135]
In addition, global word lines WL continuous in the column directioni + 64, WLi + 65, WLi + 66, WLi + 67,... Are arranged in a storage area corresponding to the reference block P + 1. Global word line WLi + 64, WLi + 65, WLi + 66, WLi + 67,... Corresponding to each of the section word lines WLs as divided word lines divided into sections.0, WLs1, WLsTwo, ..., WLs7(WLs0, WLs1, WLsTwo(Only shown).
[0136]
Here, one section word line corresponds to one count value storage area existing in a certain block storage area BM described above. To this one section word line, n memory cells 131 arranged in the column direction are connected. Also, the section word lines WLs0, WLs1, WLsTwo, ..., WLs7Are the storage areas 106-1, 106-2, 106-3, ..., 106-8It corresponds to.
[0137]
The main row decoder 153 includes a row decoder RDEC and an OR (OR) gate and a NOR (NOR) gate provided corresponding to each global word line.
[0138]
Global word line WL in the storage area corresponding to reference block Pi, WLi + 1, WLi + 2, WLi + 3OR gate GT corresponding to ...i, GTi + 1, GTi + 2, GTi + 3,... Are provided. These OR gates GTi, GTi + 1, GTi + 2, GTi + 3,... Are connected to the global word lines WL, respectively.i, WLi + 1, WLi + 2, WLi + 3,···It is connected to the.
[0139]
Global word line WL in the storage area corresponding to reference block P + 1i + 64, WLi + 65, WLi + 66, WLi + 67, ... corresponding to NOR gate GTi + 64, GTi + 65, GTi + 66, GTi + 67,... Are provided. These NOR gate GTi + 64, GTi + 65, GTi + 66, GTi + 67,... Are connected to the global word lines WL, respectively.i + 64, WLi + 65, WLi + 66, WLi + 67,···It is connected to the.
[0140]
The row decoder RDEC has a signal output terminal and an inverted signal output terminal corresponding to each global word line. Global word line WLi, WLi + 1, WLi + 2, WLi + 3,... Output to the signal output terminals corresponding to “1” or “0”i, GTi + 1, GTi + 2, GTi + 3,... Are supplied to one input side. These OR gates GTi, GTi + 1, GTi + 2, GTi + 3,... Are supplied to the inverted signal output terminal of the row decoder RDEC corresponding to the global word line in the storage area corresponding to the reference block P-1 in an inverted manner. .
[0141]
Also, the global word line WLi + 64, WLi + 65, WLi + 66, WLi + 67,... (“1” or “0”) output to the inverted signal output terminals corresponding to the NOR gates GT, respectively.i + 64, GTi + 65, GTi + 66, GTi + 67,... Are supplied inverted. These NOR gate GTi + 64, GTi + 65, GTi + 66, GTi + 67, Are connected to the global word lines WL in the storage areas corresponding to the reference blocks P, respectively.i, WLi + 1, WLi + 2, WLi + 3,... Are supplied as they are to the signal output terminals of the row decoders RDEC.
[0142]
The sub-row decoder 154 is composed of an AND gate provided corresponding to each section word line. The output side of each AND gate is connected to a corresponding section word line. An AND gate AG corresponds to each section word line in the storage area corresponding to the reference block P.PAre arranged. Each AND gate AGPA signal ("1" or "0") obtained on a corresponding global word line is supplied to one input side of the. An AND gate AG corresponds to each section word line of the storage area corresponding to the reference block P + 1.P + 1Are arranged. Each AND gate AGP + 1A signal ("1" or "0") obtained on the corresponding global word line is supplied to one input side of the inversion.
[0143]
Also, AND gates AG arranged in the row directionP, AGP + 1Has a buffer BF0, BF1, BFTwo, ..., BF7(BF0, BF1, BFTwoOnly a common control signal (“1” or “0”) is supplied via the control signal (shown only). In this case, this control signal is supplied to the AND gate AGPIs supplied as it is, and And Gate AGP + 1Are supplied inverted.
[0144]
In the above configuration, a predetermined global word line, for example, WL in a storage area corresponding to the reference blocks P and P + 1.i + 2, WLi + 66And global word line WLi + 2Section word line WLs corresponding to0, WLs1At the same time as the global word line WLi + 66Section word line WLs corresponding toTwo~ WLs7The operation when activating is described.
[0145]
In this case, the row decoder RDEC is connected to the global word line WLi, WLi + 1, WLi + 2, WLi + 3,... Among the signal output terminals corresponding to the global word line WLi + 2"1" is output to the signal output terminal corresponding to "1", and "0" is output to the other signal output terminals. The row decoder RDEC is connected to the global word line WLi + 64, WLi + 65, WLi + 66, WLi + 67,... Are output as "1" to all of the signal output terminals. In this case, "1" is output to all signal output terminals corresponding to the global word lines in the storage area corresponding to the reference block P-1.
[0146]
Thereby, the OR gate GTi + 2"1" is obtained at the output side of the OR gate GT.i + 2Word line WL connected to the output side ofi + 2Is activated. At the same time, the GTi + 66"0" is obtained on the output side of the NOR gate GT.i + 66Word line WL connected to the output side ofi + 66Is activated.
[0147]
Also, the section word lines WLs0, WLs1AND gates AG arranged in the row direction in response toP, AGP + 1, "1" is input as a control signal. Also, the section word lines WLsTwo~ WLs7AND gates AG arranged in the row direction in response toP, AGP + 1Is input as a control signal.
[0148]
Thereby, the global word line WLi + 2Of the eight section word lines corresponding to section word line WLs0, WLs1Only "1" is applied and activated. At the same time, the global word line WLi + 66Of the eight section word lines corresponding to section word line WLsTwo~ WLs7Only "1" is applied and activated.
[0149]
The operation of simultaneously activating global word lines (section word lines) at two row positions in the storage areas corresponding to the reference blocks P and P + 1 has been described above. However, the storage areas corresponding to the other two reference blocks have been described. The same operation can be performed when simultaneously activating the global word lines (section word lines) at the two row positions.
[0150]
For example, when simultaneously activating the global word lines (section word lines) at two row positions in the storage areas corresponding to the reference blocks P + 1 and P + 2, the row decoder RDEC includes eight storage areas corresponding to the reference block P + 1. Of these global word lines, "0" is output to the inverted signal output terminal corresponding to the global word line to be activated, and "1" is output to the other inverted signal output terminals. The row decoder RDEC outputs "0" to all signal output terminals corresponding to the eight global word lines in the storage area of the reference block P + 2. In this case, the row decoder RDEC outputs “0” to all of the signal output terminals corresponding to the eight global word lines in the storage area of the reference block P.
[0151]
Next, a plurality of adders 109-1~ 109-NThe details of the semiconductor memory 110 for generating a histogram table will be described. In the present embodiment, a plurality of adders 109-1~ 109-NAnd the semiconductor memory 110 are integrated, and a plurality of adders 109 are provided.-1~ 109-NAre arranged so as to be aligned with the column pitch of the semiconductor memory 110.
[0152]
FIG.-1And storage area 110 of semiconductor memory 110 corresponding thereto-12 shows a detailed configuration of the part. Although the description is omitted, the adder 109 is used.-2~ 109-NAnd storage area 110 of semiconductor memory 110 corresponding thereto-2~ 110-NIs similarly configured.
[0153]
In FIG. 23, the storage area 110-1Is provided with n memory cells 130 in the column direction and one memory cell in the row direction. In this case, one frequency storage area is configured by n memory cells 130 arranged in the column direction.
[0154]
FIG. 24 illustrates a configuration example of the memory cell 130. The memory cell 130 has a two-port configuration having a first port for writing and reading and a second port for reading only.
[0155]
A P-type MOS transistor Q1 as a load element and an N-type MOS transistor Q3 are connected in series between a power supply and ground to form a CMOS inverter 11, and a P-type MOS transistor Q2 as a load element and an N-type MOS transistor Q3. The type MOS transistor Q4 is connected in series between the power supply and the ground to form the CMOS inverter 12. The outputs of the CMOS inverters 11, 12, ie, the potentials of the storage nodes N1, N2, are the inputs of the other CMOS inverters 12, 11, ie, the gate inputs of the N-type MOS transistors Q4, Q3.
[0156]
The storage node N1 of the CMOS inverter 11 is connected to the terminal 14 via the access transistor Q5 whose gate is connected to the terminal 13. On the other hand, storage node N2 of CMOS inverter 12 is connected to terminal 15 via access transistor Q6 whose gate is connected to terminal 13. The terminal 13 is connected to a word line WL, the terminal 14 is connected to a bit line BL, and the terminal 15 is connected to a bit line / BL (/ BL represents a BL bar).
[0157]
N-type MOS transistors Q7 and Q8 are connected in series, one end of which is grounded, and the other end of which is connected to terminal 16. Then, the gate of transistor Q7 is connected to storage node N1, and the gate of transistor Q8 is connected to terminal 17. The terminal 16 is connected to a read-only bit line BRL, and the terminal 17 is connected to a read-only word line WRL.
[0158]
In such a memory cell 130, data of "1" or "0" is stored in a memory cell portion including a pair of CMOS inverters 11 and 12. Then, read and write data transfer is performed between the memory cell portion and the bit lines BL and / BL via the access transistors Q5 and Q6. Further, read data transfer is performed between the memory cell section and the read-only bit line BRL via the access transistor Q8.
[0159]
Although the configuration example of the memory cell 130 shown in FIG. 24 is based on an SRAM (Static Random Access Memory) cell, other memory cells, such as a DRAM (Dynamic Random Access Memory) and a FeRAM (Ferro-electric A configuration may be made based on memory cells in a random access memory (MRAM), a magnetic random access memory (MRAM), or the like.
[0160]
Returning to FIG. 23, a word line WL and a read-only word line WRL are arranged along the memory cells 130 arranged in the column direction. As described above, the word line WL is connected to the terminal 13 of the memory cell 130, and the read-only word line WRL is connected to the terminal 17 of the memory cell 130.
[0161]
Further, the n memory cells 130 arranged in the column direction are respectively provided with bit lines BL.0~ BLn-1, / BL0~ / BLn-1, And read-only bit line BRL0~ BRLn- 1Is connected. As described above, the bit line BL0~ BLn-1Is connected to the terminal 14 of the memory cell 130, and the bit line / BL0~ / BLn-1Is connected to the terminal 15 of the memory cell 130 and the read-only bit line BRL0~ BRLn-1Is connected to the terminal 16 of the memory cell 130.
[0162]
The read-only bit line BRL0~ BRLn-1Before the read mode by the bit line BRL0~ BRLn-1Need to be precharged. Therefore, the bit line BRL0Is connected to a power supply via a P-type MOS transistor Q41. The gate of the transistor Q41 has a precharge control signal / φRPC(/ ΦRPCIs φRPCRepresents a bar, and a precharge control signal φRPCIs inverted). Bit line BRL1~ BRLn-1Is similarly configured.
[0163]
The sense amplifiers SA correspond to the n memory cells 130 arranged in the column direction, respectively.0~ SAn-1Is arranged. Each sense amplifier SA0~ SAn-1Are bit lines BL0~ BLn-1, / BL0~ / BLn-1It is connected to the. Thereby, the bit line pair BL from the n memory cells 130 is0, / BL0~ BLn-1, / BLn-1And sense amplifier SA0~ SAn-1Via the storage data MD0~ MDn-1Is read.
[0164]
Here, the sense amplifier SA0The configuration of the portion will be described in detail.
Bit line BL0Is connected to the gate of an N-type MOS transistor Q22 via a P-type MOS transistor Q21. Also, the bit line / BL0Is connected to the gate of an N-type MOS transistor Q24 via a P-type MOS transistor Q23. The sources of the transistors Q22 and Q24 are connected to each other, and the connection point is grounded via an N-type MOS transistor Q25. The read control signal / φ is applied to the gates of the transistors Q21 and Q23.R(/ ΦRIs φRIndicates a read control signal φ.RIs inverted), and an equalizing control signal / φ is applied to the gate of the transistor Q25.EQ(/ ΦEQIs φEQRepresents an equalizing control signal φEQIs inverted).
[0165]
The drain of the transistor Q22 is connected to a power supply through a parallel circuit of P-type MOS transistors Q26 and Q27, and the drain of the transistor Q24 is connected to a power supply through a parallel circuit of P-type MOS transistors Q28 and Q29. The drain of the transistor Q22 is connected to the gate of the transistor Q29, and the drain of the transistor Q24 is connected to the gate of the transistor Q27. The gates of the transistors Q26 and Q28 have an equalizing control signal / φEQIs entered.
[0166]
Before entering the read mode, the bit line pair BL0, / BL0Must be equalized (precharged). Therefore, the bit line BL0Is connected to a power supply via a P-type MOS transistor Q31, and the bit line / BL0Is connected to a power supply via a P-type MOS transistor Q32, and the bit line BL0, / BL0Are connected via a P-type MOS transistor Q33. The equalizing control signal / φ is applied to the gates of the transistors Q31 to Q33.EQIs entered.
[0167]
Sense amplifier SATwo~ SAn-1Of the sense amplifier SA described above.0The configuration is the same as that of the portion.
[0168]
In addition, as described above, one frequency storage area is configured by the n memory cells 130 arranged in the column direction. Before starting to sequentially write the addition data of the count value as a frequency into the frequency storage area, it is necessary to clear the storage data of the memory cells 130 constituting the frequency storage area. Therefore, the bit line pair BL0, / BL0~ BLn-1, / BLn-1, Data of "0" is generated and supplied to the memory cell 130 as write data.
[0169]
That is, the bit line BL0Are grounded via an N-type MOS transistor Q51. The clear control signal φ is applied to the gate of the transistor Q51.CLRIs entered. Bit line pair BL1, / BL1~ BLn-1, / BLn-1Is similarly configured.
[0170]
The adder 125-1Are n adders 140 for adding each of the n bits0~ 140n-1And the n adders 1400~ 140n-1Is the memory area 110-1Are arranged at the pitch of the column.
[0171]
Adder 1400~ 1407Are input to the respective A-side input terminals from the count value corrector 108 to output the bit data D of the 8-bit count value.0~ D7Is entered. Also, the addition unit 1408~ 140n-1Are input to the ground, and "0" is input. On the other hand, the addition unit 1400~ 140n-1Are connected to the respective input terminals on the B side.0~ 140n-1Storage area 110 corresponding to each of-1From the n memory cells 130 arranged in the column direction, the bit line pair BL0, / BL0~ BLn-1, / BLn-1And sense amplifier SA0~ SAn-1Storage data MD read through0~ MDn-1Are respectively input.
[0172]
Adder 1400Is connected to the gate of the N-type MOS transistor Q11. The drain of the transistor Q11 is connected to the adder 1400/ BL connected to the memory cell 130 corresponding to0Connected to. On the other hand, the addition unit 1400(/ S represents S bar) is connected to the gate of the N-type MOS transistor Q12. The drain of the transistor Q12 is connected to the adder 1400Bit line BL connected to memory cell 130 corresponding to0Connected to.
[0173]
The sources of the transistors Q11 and Q12 are connected to each other, and the connection point is grounded via a series circuit of N-type MOS transistors Q13 and Q14. The write control signal φ is applied to the gate of the transistor Q14.WIs input to the gate of the transistor Q13.n-1Carry output terminal COUTMSB (Most Significant Bit) carry output CMSBIs input via the inverter 141.
[0174]
Adder 1401~ 140n-1Of the output terminals S and / S side of the0Of the output terminals S, / S side.
[0175]
Also, the addition unit 1400Carry input terminal CINAre grounded, and "0" is input. Also, the addition unit 1400~ 140n-2Carry output terminal COUTIs the addition unit 1401~ 140n-1It is connected to the. Thereby, the adding unit 1400~ 140n-1Form an n-bit adder.
[0176]
Also, the bit line / BL0Are grounded through N-type MOS transistors Q61 and Q62. The clear control signal / φ is applied to the gate of the transistor Q61.CLR(/ ΦCLRIs φCLRRepresents the bar and the clear control signal φCLRIs inverted), and the adder 140 is added to the gate of the transistor 62.n-1Carry output terminal COUTMSB carry output CMSBIs entered.
[0177]
Adder 109 shown in FIG.-1And storage area 110-1The operation of the section will be described.
First, one frequency storage area is formed by the n memory cells 130 arranged in the column direction. The operation of clearing the storage data of the n memory cells 130 will be described.
[0178]
When clearing the storage data of the n memory cells 130 forming the frequency storage area, the write control signal φWAnd clear control signal φCLRIs active, that is, “1”, and the read control signal φRAnd equalizing control signal φEQAre inactive, that is, set to “0”, and the word line WL is activated.
[0179]
In this case, the clear control signal φCLRIs activated, and the transistor Q51 is turned on. Therefore, data of “0” is generated, and this data is0~ BLn-1Is output to Therefore, by activating the word line WL, data “0” is written in the n memory cells 130 constituting the frequency storage area, and the storage data is cleared.
[0180]
Next, the storage data MD stored in the frequency storage area (n memory cells 130)0~ MDn-1And the 8-bit count value D0~ D7To adder 109-1(Adder 1401~ 140n-1) And adder 109-1Addition data AD obtained by0~ ADn-1Is written back to the frequency storage area.
[0181]
Storage data MD stored in a predetermined frequency storage area0~ MDn-1And the 8-bit count value D0~ D7, First, the equalization control signal φEQIs active, ie, “1”, and the write control signal φW, Read control signal φRAnd clear control signal φCLRIs inactive, that is, “0”, and the bit line pair BL0, / BL0~ BLn-1, / BLn-1(Precharge) is performed.
[0182]
In this case, the bit line pair BL0, / BL0For the equalization control signal φEQIs activated, all of the transistors Q31 to Q33 are turned on, and the bit line BL0And bit line / BL0The potential of the power supply is applied to the bit lines BL0And bit line / BL0Have the same potential. Other bit line pair BL1, / BL1~ BLn-1, / BLn-1The same applies to.
[0183]
Thus, the bit line pair BL0, / BL0~ BLn-1, / BLn-1In the state where the read control signal φRIs active, ie, “1”, and the write control signal φW, Equalizing control signal φEQAnd clear control signal φCLRAre made inactive, that is, “0”, and the word line WL is activated.
[0184]
Thereby, storage data MD of n memory cells 130 forming the frequency storage area0~ MDn-1Are the bit line pairs BL0, / BL0~ BLn-1, / BLn-1And sense amplifier SA0~ SAn-1Via the adder 1400~ 140n-1Are input to the input terminals on the B side. Therefore, the storage data MD stored in the frequency storage area0~ MDn-1And the 8-bit count value D0~ D7Is added.
[0185]
Then, when the addition outputs in the adders 1400 to 140n−1, that is, the added data AD0 to ADn−1 become valid, the write control signal φW becomes active, that is, “1”, and the read control signal φR and the equalize control The signal φEQ and the clear control signal φCLR are inactive, that is, set to “0”, and the word line WL is activated.
[0186]
In this case, when the addition data S0 is “1” for the adder 1400, the transistor Q11 is turned on, the transistor Q12 is turned off, and “0” is output to the bit line / BL0. Data of “1” is stored in the memory cell 130 corresponding to the adder 1400 among the n memory cells 130 forming the frequency storage area. On the other hand, when the addition data S0 is "0" for the adder 1400, the transistor Q11 is turned off, the transistor Q12 is turned on, and "0" is output to the bit line BL0. Data of “0” is stored in the memory cell 130 corresponding to the adder 1400 among the n memory cells 130 forming the region.
[0187]
The same applies to the other adders 1401 to 140n-1. Thereby, the addition data AD0 to ADn-1 obtained by the adder 109-1 are written back to the n memory cells 130 forming the frequency storage area.
[0188]
If an overflow occurs in the adding operation, the carry output CMSB of the MSB obtained at the carry output terminal COUT of the adder 140n-1 becomes "1", so that the transistor Q13 is turned off and the added data AD0 to ADn-1 are not written to the n memory cells 130 forming the frequency storage area.
[0189]
Instead, in this case, in addition to turning on the transistor Q61, the transistor Q62 is also turned on, so that a signal of "0" is output to each of the bit lines / BL0 to / BLn-1. Therefore, data of “1” is written into each of the n memory cells 130 forming the frequency storage area. That is, the maximum value is stored in this frequency storage area.
[0190]
Next, an operation for reading out the cumulative value of the count (count value) stored in the count storage area will be described.
First, the precharge control signal / φRPC is activated, that is, “1”, and the read-only bit lines BRL0 to BRLn−1 are precharged. In this case, the transistor Q41 is turned on, and the potential of the power supply is applied to each of the read-only bit lines BRL0 to BRLn-1.
[0191]
The read-only word line WRL is activated in the state where the read-only bit lines BRL0 to BRLn-1 have been precharged in this manner. As a result, storage data # 0 to # n-1 of n memory cells 130 forming the frequency storage area are obtained in read-only bit lines BRL0 to BRLn-1, respectively. Here, the stored data # 0 to # n-1 form an accumulated value of the frequency of n bits.
[0192]
As described above, in the motion vector detecting device 100 shown in FIG. 5, pixel data constituting a predetermined reference block of a reference frame and a plurality of pixel data existing in a search range of a search frame corresponding to the pixel data are obtained. Is performed, and for each pixel data constituting the reference block, a value other than 0 is counted as a count value when the difference absolute value is smaller than the threshold value, corresponding to each pixel position in the search range. If the absolute value of the difference is equal to or greater than the threshold value, a count value table in which 0 is assigned as the count value is generated, and each count value of the count value table corresponding to each pixel data forming the reference block is defined as a frequency. The histogram is generated by adding the frequency for each pixel position in the search range, and the motion vector of the reference block is calculated based on the maximum value of the frequency in the histogram table. It is intended to detect the V1~MVn.
[0193]
In this case, the maximum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block. A count value table is generated by allocating a value other than 0 as a count value only when the matching degree is high and the difference absolute value is smaller than the threshold value, and the histogram table is generated only by the high matching degree. , And the frequency distribution becomes sharper. Therefore, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maximum values are easily separated and shown in the histogram table. Therefore, one or more motion vectors MV1 to MVn of the reference block can be correctly detected.
[0194]
Although the count value to be arranged when the difference absolute value is smaller than the threshold value is a positive value (see Table 1), it may be a negative value. In that case, the histogram table shows the minimum value of the frequency representing the motion vector corresponding to the motion existing in the reference block. Even in this case, similarly to the above-described embodiment, the motion vector of the reference block can be correctly detected based on the histogram table.
[0195]
Also, instead of setting the count value provided when the matching degree is high and the difference absolute value is smaller than the threshold value to a constant value, the smaller the difference absolute value, that is, the higher the matching degree, the larger the absolute value. Therefore, there is an advantage that the frequency distribution of the histogram table can be further sharpened.
[0196]
Further, the correction coefficient acquisition unit 107 obtains the activity A for each pixel data constituting the reference block, and obtains a larger value as the correction coefficient k increases as the ratio of the activity A to the maximum activity A_max increases for each pixel data. The correction is performed by multiplying the count value of the count value table corresponding to each pixel data constituting the reference block by a correction coefficient k corresponding to each pixel data. Problems caused by changes in the absolute value can be reduced.
[0197]
It should be noted that the correction coefficient k is obtained by the correction coefficient acquisition unit 107 and the correction value k is multiplied by the count value by the count value correction unit 108, and the count value is corrected by the count value generation unit 105. The threshold value used when generating the count value corresponding to the value may be changed so as to increase as the activity increases. In this case, similarly to the case where the count value is corrected by the correction coefficient k, the absolute value of the count value in the count value table corresponding to the pixel data of the reference block having a large surrounding activity becomes large. As a result, it is possible to reduce a problem caused by a change in the degree of matching by the activity, that is, a change in the absolute value of the difference.
[0198]
In addition, a reference frame memory 103 for storing an input frame as a search frame as a reference frame of the next frame is provided, and a plurality of absolute difference value calculators 104-1 to 104-N each time pixel data of the input frame is input. Calculating the absolute value of the difference between the pixel data and the pixel data of a predetermined reference block of a reference frame that includes the pixel data in the search range and is read from the frame memory 103, and temporarily stores the search frame in the frame memory. Useless operations such as storing the data and reading it out again for processing can be eliminated.
[0199]
Each word line extending in the column direction of the semiconductor memory 106 is composed of a plurality of section word lines divided corresponding to the plurality of storage areas 106-1 to 106-N, respectively. Has a main row decoder 153 and a sub-row decoder 154 as row decoding means for selectively activating an arbitrary section word line among a plurality of section word lines constituting the semiconductor memory 106. Access can be made independently in the direction in section word line units.
[0200]
The plurality of storage areas 106-1 to 106-N of the semiconductor memory 106 include a plurality of block areas BM for storing count values related to a plurality of reference blocks, which are arranged in a row direction. 153 activates global word lines corresponding to two consecutive block areas BM, and sub-row decoder 154 activates section word lines corresponding to the two global word lines to sections corresponding to different storage areas. It is a word line.
[0201]
Therefore, even when the plurality of difference absolute value calculators 104-1 to 104-N perform the difference absolute value calculations related to the two reference blocks in parallel, the count value generated by the count value generation unit 105 is referred to. Writing can be performed separately to different word line positions in the row direction for each block, and a count value table can be obtained in the semiconductor memory 106 for each reference block.
[0202]
In addition, the adders 109-1 to 109-N and the semiconductor memory 110 are integrated, and a plurality of bit-wise adders 1400 to 140n-1 forming the adder are arranged at the same column pitch of the semiconductor memory 110. (See FIG. 23). Therefore, it is possible to efficiently supply the additional data from the adders 109-1 to 109-N to the semiconductor memory 110 and supply the storage data from the semiconductor memory 110 to the adders 109-1 to 109-N. .
[0203]
Further, the semiconductor memory 110 has a first port for writing and reading provided in association with the plurality of adders, and a second port for reading only for reading the cumulative value of the frequency. (See FIG. 23). Therefore, the reading of the storage data of the semiconductor memory 110 can be performed independently of the operation by the adders 109-1 to 109-N.
[0204]
Further, based on the motion vectors MV1 to MVn of the reference block detected by the motion vector detection unit 111, the motion vector specification unit 112 can specify the motion vector MV of each pixel data forming the reference block. As described above, since the motion vector of the reference block can be correctly detected, the motion vector of each pixel data specified based on the motion vector has higher accuracy.
[0205]
Further, the motion vector specifying unit 112 performs a correction process such as removing an isolated motion vector from the motion vector MV of each pixel data constituting the reference block specified as described above. Can be further improved.
[0206]
In the motion vector detecting device 100 shown in FIG. 5, the semiconductor memory 106 activates global word lines (section word lines) at two row positions existing in storage areas corresponding to two reference blocks. However, with the same configuration, it is also possible to activate global word lines (section word lines) at three or more row positions existing in storage areas corresponding to two or more reference blocks. Depending on the search range for one reference pixel in the reference block, it may be assumed that a plurality of difference absolute value calculators perform calculations on three or more reference blocks. In that case, it is necessary to activate global word lines (section word lines) at three or more row positions.
[0207]
Further, in the motion vector detecting device 100 of FIG. 5, the memory cell 130 constituting the semiconductor memory 110 has a two-port configuration (see FIG. 24). However, the memory cell may not have a two-port configuration. The semiconductor memory 110 may have a two-port configuration as a whole. Further, even if the semiconductor memory 110 does not have a two-port configuration, for example, the frequency (table data) is read out during a blanking period in a video signal, or the semiconductor memory 110 has a plurality of identical functional blocks and is interleaved between fields or frames. For example, the addition and the frequency reading may be performed in the same port at different periods.
[0208]
Next, a second embodiment of the motion vector detecting device according to the present invention will be described. FIG. 25 shows the configuration of a motion vector detection device 200 according to the second embodiment. In the motion vector detection device 200, the search frame is a past frame with respect to the reference frame, and the input frame is the reference frame.
[0209]
The motion vector detecting device 200 includes a system controller 201 for controlling the operation of the entire device, an input terminal 202 to which image data Di of an input frame as a reference frame is input, and And a frame memory 203 for storing as image data. Operations such as writing and reading of the frame memory 203 are controlled by the system controller 201.
[0210]
Further, the motion vector detection device 200 includes difference absolute value calculators 204-1 to 204-N that perform difference absolute value calculation as matching calculation. Here, N is the number of a plurality of pixel data present in a search range for one pixel data in a certain reference block. In other words, N is the number of a plurality of candidate blocks existing in the search range for a certain reference block. For example, as shown in FIG. 7, when the search range is (−3 to +4) × (−3 to +4) pixels, N = 64.
[0211]
The plurality of arithmetic units 204-1 to 204-N commonly input pixel data constituting the image data Di input to the input terminal 202 as pixel data Dr of a predetermined reference block of the reference frame, and A plurality of pixel data Dc-1 to Dc-N existing in a search range for the data Dr are input, and absolute difference values between the pixel data Dr and the pixel data Dc-1 to Dc-N are calculated.
[0212]
In this case, the arithmetic units 204-1 to 204-N perform a 1: N matching operation between one reference pixel and N search range pixels as shown in FIG. Here, the position of the search range pixel with respect to this reference pixel changes according to the position of the reference pixel in the reference block. For example, hatched positions indicate the positions of N search range pixels with respect to one upper left pixel of the reference block.
[0213]
Further, the motion vector detection device 200 generates a count value corresponding to each of the plurality of difference absolute values calculated by the plurality of calculators 204-1 to 204-N, and corresponds to the pixel data Dr. A count value generation unit 205 is provided as count value table generation means for obtaining a count value table. In this count value table, count values are arranged corresponding to each pixel position in the search range of the pixel data Dr.
[0214]
When the difference absolute value is smaller than the threshold value, the count value generation unit 205 generates a predetermined value other than 0 assuming that the degree of matching is higher than the threshold value. Generates 0 assuming that the degree of matching is equal to or less than the threshold. For example, as shown in Table 1 above, when the difference absolute values are 0, 1, and 2, the count value generation unit 205 generates “+3”, “+2”, and “+1” as count values, respectively. On the other hand, when the absolute value of the difference is 3 or more, “0” is generated as the count value.
[0215]
Further, the motion vector detection device 200 has a buffer memory 206 for temporarily storing the count value tables sequentially obtained by the count value generation unit 205. The buffer memory 206 has storage areas 206-1 to 206-N respectively corresponding to the plurality of arithmetic units 204-1 to 204-N. Each of the plurality of storage areas 206-1 to 206-N of the buffer memory 206 has a number of block storage areas corresponding to the number of reference blocks in one horizontal row of the reference frame. Furthermore, each block storage area has a count value storage area for the number of pixel data constituting the reference block.
[0216]
Therefore, the count value storage area of the buffer memory 206 and the count value storage area of the semiconductor memory 106 of the motion vector detection device 100 in FIG. Therefore, in the area corresponding to one reference block in the buffer memory 206, each pixel position ((−3, −3) to (−3, −3)) of the search range in the count value table corresponding to each pixel data forming the reference block. Which storage area (address) stores the count value corresponding to (+4, +4)) is shown in FIG. 19 described above.
[0217]
However, in the present embodiment, since each count value of the count value table corresponding to certain pixel data of the reference block is obtained at the same timing from the count value generation unit 205, it is not necessary to access every count value storage area. Special row control as in the semiconductor memory 106 (see FIGS. 20 to 22) is unnecessary.
[0218]
In the present embodiment, the image data Di is based on a progressive system. The image data Di input to the input terminal 202 is a series of pixel data of each line. When the size of the reference block is 8 × 8 pixels, eight lines of pixel data are required to obtain a count value table corresponding to each pixel data forming a certain reference block. In this case, based on the eight lines of pixel data, it is possible to obtain a count value table corresponding to each pixel data constituting all the reference blocks for one horizontal row.
[0219]
Further, the motion vector detection device 200 obtains the activity A in the surroundings for each pixel data constituting the reference block, and sets a larger value as the correction coefficient k as the ratio of the activity A to the maximum activity A_max is higher for each pixel data. It has a correction coefficient acquisition unit 207 to obtain.
[0220]
Since the correction coefficient acquisition unit 207 is configured in the same manner as the correction coefficient acquisition unit 107 in the motion vector detection device 100 in FIG. 5, detailed description thereof will be omitted. However, the correction coefficient acquisition unit 207 obtains the activity A of each pixel data constituting the reference block using the pixel data of the frame stored in the search frame memory 203, and obtains the activity A of each pixel constituting the reference block. The acquisition timing of the correction coefficient k corresponding to each pixel data is later than the generation timing of the count value table corresponding to each pixel data in the count value generation unit 205. This timing delay is absorbed by the buffer memory 206 described above.
[0221]
In addition, the motion vector detecting device 200 reads the count value corresponding to each pixel data constituting the reference block, which is read from the buffer memory 206 described above and supplied to a plurality of adders 209-1 to 209 -N described later. There is a count value correction unit 208 that corrects by multiplying the count value in the table by a correction coefficient k corresponding to each pixel data acquired by the correction coefficient acquisition unit 207.
[0222]
Further, the motion vector detection device 200 has a plurality of adders 209-1 to 209-N and a semiconductor memory 210 as a storage means for generating a histogram table having a plurality of storage areas 210-1 to 210-N. are doing. The plurality of adders 209-1 to 209 -N are read from the buffer memory 206 and corrected by the count correction unit 208, and are counted in the count table corresponding to predetermined pixel data forming the reference block ( N) is input as a frequency, and each of the storage data stored in the plurality of storage areas 210-1 to 210-N of the semiconductor memory 210 is input, and the frequency is added to the storage data. The plurality of adders 209-1 to 209-N and the semiconductor memory 210 are configured in the same manner as the plurality of adders 109-1 to 109-N and the semiconductor memory 110 in the motion vector detection device 100 in FIG.
[0223]
In this way, each of the addition data obtained by the plurality of adders 209-1 to 209 -N is written back as storage data to the plurality of storage areas 210-1 to 210 -N of the semiconductor memory 210. Writing and reading operations of the semiconductor memory 210 are controlled by the system controller 201.
[0224]
The system controller 201 reads out the count value of the count value table from the buffer memory 206, calculates the addition in the plurality of adders 209-1 to 209-N, and stores the plurality of storage areas 210-1 to 210- in the semiconductor memory 210. The write-back of the addition data to N is repeated by the number of the plurality of count value tables corresponding to the respective pixel data constituting the reference block, and the semiconductor memory 210 stores the frequency corresponding to each pixel position in the search range. Control is performed so that a histogram table in which the accumulated values are arranged is obtained.
[0225]
In addition, the motion vector detection device 200 has a motion vector detection unit 211 that detects a motion vector based on the local maximum value in the histogram table obtained in the semiconductor memory 210 for each reference block. The local maximum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block. Therefore, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maximum values are indicated in the histogram table, and the motion vector detecting unit 211 detects a plurality of motion vectors. The motion vector detection unit 211 is configured in the same manner as the motion vector detection unit 111 in the motion vector detection device 100 in FIG.
[0226]
Further, the motion vector detection device 200 configures the reference block based on one or more motion vectors MV1 to MVn (n is an integer of 1 or more) detected by the motion vector detection unit 211. It has a motion vector specifying unit 212 that specifies a motion vector MV of each pixel data, and an output terminal 213 that outputs the motion vector MV of each pixel data specified by the motion vector specifying unit 212.
[0227]
The motion vector specifying unit 212 determines a pixel at a pixel position of a search frame corresponding to each of the motion vectors MV1 to MVn detected by the motion vector detection unit 211 with reference to pixel data constituting the reference block and a pixel position of the pixel data. Correlation information with the data, for example, a difference absolute value or a difference square value, is obtained, and a motion vector having the highest correlation is set as a motion vector MV of this pixel data.
[0228]
The motion vector specifying unit 212 has the same configuration as the motion vector specifying unit 112 (see FIG. 8) in the motion vector detecting device 100 in FIG. However, it is necessary to provide a memory for reference pixels instead of the memory 122 for search pixels.
[0229]
The operation of the motion vector detection device 100 shown in FIG. 25 will be described.
Pixel data constituting the image data Di input to the input terminal 202 is commonly input to the plurality of absolute difference value calculators 204-1 to 204-N as pixel data Dr of a reference frame (input frame). The image data Di is supplied to the frame memory 203 and stored as image data of a search frame used in the next frame.
[0230]
Further, a plurality of pixel data Dc-1 to Dc-N existing in a search range corresponding to the pixel data Dr are input from the frame memory 203 to the plurality of arithmetic units 204-1 to 204-N, respectively. Then, the plurality of arithmetic units 204-1 to 204-N calculate the absolute differences between the pixel data Dr and the pixel data Dc-1 to Dc-N, respectively.
[0231]
The absolute difference values obtained by the plurality of arithmetic units 204-1 to 204-N are respectively supplied to the count value generation unit 205. The count value generation unit 205 generates a predetermined value other than 0 when the difference absolute value is smaller than the threshold value, and generates 0 when the difference absolute value is equal to or greater than the threshold value, for each of the difference absolute values. (See Table 1). As a result, the count value generation unit 205 obtains a count value table in which count values are arranged corresponding to each pixel position in the search range corresponding to the pixel data Dr. The count value table sequentially obtained by the count value generation unit 205 is supplied to the buffer memory 206 and is temporarily stored.
[0232]
FIG. 27 shows a relationship between input pixel data, a search range, and arithmetic units 204-1 to 204-N ((0, 0) to (7, 7)). That is, the calculation range for the input pixel data is in the range of -3 to +4 in the horizontal direction, and is in the range of -3 to +4 in the vertical direction. Further, in the arithmetic units 204-1 to 204-N ((0, 0) to (7, 7)), the input pixel data and (+4, +4) to (-3, -3) exist in the search range thereof. Is calculated with respect to the pixel data at the position of.
[0233]
FIG. 28 shows 8 × 8 pieces of pixel data (a, a) to (h, h) forming a reference block. In this case, in order to obtain a count value table corresponding to each pixel data constituting a certain reference block, eight lines of pixel data are required. Note that, based on the eight lines of pixel data, it is possible to obtain a count value table corresponding to each pixel data constituting the reference blocks for one horizontal row. In an area corresponding to one reference block in the buffer memory 206, each pixel position ((−3, −3) to (−3, −3) to (−3) in the search range of the count value table corresponding to each pixel data forming the reference block. +4, +4)) are stored as shown in FIG.
[0234]
In the correction coefficient acquisition unit 207, the activity A in the surroundings is obtained for each pixel data constituting the reference block, and the higher the ratio of the activity A to the maximum activity A_max is for each pixel data, the larger the value is obtained as the correction coefficient k. (See FIG. 4, Table 2).
[0235]
The count values (N) of the count value table corresponding to each pixel data forming the reference block stored in the buffer memory 206 are sequentially read out, and are output to the plurality of adders 209-via the count value correction unit 208. 1 to 209-N. The count value correction unit 208 multiplies the count value of the count value table corresponding to each pixel data forming the reference block by the correction coefficient k corresponding to each pixel data acquired by the correction coefficient acquisition unit 207, and performs correction. Is performed.
[0236]
The plurality of adders 209-1 to 209 -N read count values of a count value table read from the buffer memory 206 and corrected by the count value correction unit 208 and corresponding to predetermined pixel data forming a reference block. Is input as a frequency, and each of the storage data stored in the plurality of storage areas 210-1 to 210-N of the semiconductor memory 210 is input.
[0237]
Then, in the plurality of adders 209-1 to 209-N, the frequency is added to the stored data. Each of the addition data obtained by the plurality of adders 209-1 to 209 -N is written back as storage data to the plurality of storage areas 210-1 to 210 -N of the semiconductor memory 210.
[0238]
Reading of the count value of the count value table from the buffer memory 206, calculation of addition in the plurality of adders 209-1 to 209-N, addition to the plurality of storage areas 210-1 to 210-N of the semiconductor memory 210 The data write-back is repeated by the number of count value tables corresponding to each pixel data constituting the reference block. As a result, a histogram table corresponding to the reference block in which the cumulative value of the frequency is arranged corresponding to each pixel position in the search range is obtained in the semiconductor memory 210.
[0239]
The motion vector detection unit 211 detects the motion vectors MV1 to MVn of each reference block based on the local maximum value in the histogram corresponding to each reference block obtained in the semiconductor memory 210. As described above, the local maximum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block. Therefore, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maximum values are shown in the histogram table, and thus the motion vector detecting unit 211 detects a plurality of motion vectors.
[0240]
The motion vectors MV1 to MVn of the reference block detected by the motion vector detecting unit 211 in this way are supplied to the motion vector specifying unit 212. In the motion vector specifying unit 212, the motion vector MV of each pixel data forming the reference block is specified based on the motion vectors MV1 to MVn. Then, the motion vector MV of each pixel data is output to the output terminal 213.
[0241]
As described above, in the motion vector detection device 200 of FIG. 25, similarly to the motion vector detection device 100 shown in FIG. 5, the pixel data forming the predetermined reference block of the reference frame and the The difference absolute value between the plurality of pixel data present in the search range of the search frame obtained is calculated, and for each pixel data constituting the reference block, the difference absolute value is calculated corresponding to each pixel position in the search range. When the difference value is smaller than the threshold value, a value other than 0 is allocated. When the difference absolute value is equal to or larger than the threshold value, a count value table in which 0 is allocated as the count value is generated. Each count value of the corresponding count value table is defined as a frequency, and the frequency is added for each pixel position in the search range to generate a histogram table. Motion vector MV1~MVn of the reference block on the basis of the maximum value of the frequency of those detected.
[0242]
In this case, the maximum value of the frequency in the histogram table represents a motion vector corresponding to a motion existing in the reference block. A count value table is generated by allocating a value other than 0 as a count value only when the matching degree is high and the difference absolute value is smaller than the threshold value, and the histogram table is generated only by the high matching degree. , And the frequency distribution becomes sharper. Therefore, when a plurality of blocks having different motions are mixed in the reference block, a plurality of local maximum values are easily separated and shown in the histogram table. Therefore, one or more motion vectors of the reference block can be correctly detected.
[0243]
Further, similarly to the motion vector detection device 100 of FIG. 5, the count value provided when the matching degree is high and the difference absolute value is smaller than the threshold value is not a constant value. The higher the degree, the larger the absolute value, so that the distribution of the frequencies in the histogram table can be further sharpened.
[0244]
Further, similarly to the motion vector detection device 100 of FIG. 5, the correction coefficient acquisition unit 207 obtains an activity A for each pixel data constituting the reference block, and determines, for each pixel data, an activity A corresponding to the maximum activity A_max of the activity A. A larger value is obtained as the correction coefficient k as the ratio is higher, and the correction is performed by multiplying the count value of the count value table corresponding to each pixel data constituting the reference block by the correction coefficient k corresponding to each pixel data. Therefore, it is possible to reduce a problem caused by a change in the degree of matching by the activity A, that is, a change in the absolute difference value.
[0245]
Note that the correction coefficient k is obtained by the correction coefficient obtaining unit 207, and the correction value k is multiplied by the correction coefficient by the count value correction unit 208. The threshold value used when generating the count value corresponding to the value may be changed so as to increase as the activity increases. In this case, similarly to the case where the count value is corrected by the correction coefficient k, the absolute value of the count value in the count value table corresponding to the pixel data of the reference block having a large surrounding activity becomes large. As a result, it is possible to reduce a problem caused by a change in the degree of matching by the activity, that is, a change in the absolute value of the difference.
[0246]
In addition, a search frame memory 203 for storing an input frame as a reference frame as a search frame for the next frame is provided, and a plurality of absolute difference value calculators 204-1 to 204-N each time pixel data of the input frame is input. Calculates the absolute value of the difference between the pixel data and a plurality of pixel data of the search frame included in the search range of the pixel data read from the frame memory 203, and temporarily stores the reference frame in the frame memory. Useless operation such as reading out for processing again after that can be eliminated.
[0247]
The portions of the adders 209-1 to 209-N and the semiconductor memory 210 are configured in the same manner as the adders 109-1 to 109-N and the semiconductor memory 110 in the motion vector detecting device 100 of FIG. The same effect can be obtained.
[0248]
Further, in the motion vector detection device 200 of FIG. 25, similarly to the motion vector detection device 100 of FIG. 5, based on the motion vectors MV1 to MVn of the reference block detected by the motion vector detection unit 211, the motion vector identification unit At 212, the motion vector MV of each pixel data constituting the reference block can be specified. As described above, since the motion vector of the reference block can be correctly detected, the motion vector of each pixel data specified based on the motion vector has higher accuracy.
[0249]
Further, the motion vector specifying unit 212 performs a correction process such as removing an isolated point from the motion vector MV of each pixel data constituting the reference block specified as described above. Can be further enhanced.
[0250]
Next, a third embodiment of the motion vector detecting device according to the present invention will be described. FIG. 29 shows the configuration of a motion vector detection device 300 according to the third embodiment.
[0251]
The motion vector detecting device 300 includes a system controller 301 for controlling the operation of the entire device, an input terminal 302 for inputting image data Di, and a frame memory for storing the image data Di input to the input terminal 302. 303 and 304.
[0252]
In addition, the motion vector detection device 300 includes a connection switching unit 305 that switches a series connection relationship between the frame memories 303 and 304 with respect to the input terminal 302. The connection switching unit 305 includes a first connection state in which the connection is performed in the order of the input terminal 302 → the frame memory 303 → the frame memory 304, and a second connection state in which the connection is performed in the order of the input terminal 302 → the frame memory 304 → the frame memory 303. Is switched.
[0253]
In addition, the motion vector detecting device 300 sets the frame stored in the frame memory 303 as a search frame or a reference frame, and sets the frame stored in the frame 304 as a reference frame or a search frame. It has a motion vector detection processing unit 306 that performs a process of obtaining the vector MV, and an output terminal 307 that outputs the motion vector MV. The connection switching unit 305 supplies the motion vector detection processing unit 306 with the pixel data Dref of the reference frame required when detecting the activity A around each pixel data forming the reference block.
[0254]
The motion vector detection processing unit 306 includes the absolute difference calculators 104-1 to 104-N, the count value generation unit 105, the semiconductor memory 106 for generating the count value table, and the correction coefficient acquisition unit in the motion vector detection device 100 in FIG. 107, the same configuration as the count value correction unit 108, the adders 109-1 to 109-N, the semiconductor memory 110 for generating a histogram table, the motion vector detection unit 111 and the motion vector identification unit 112 (first configuration), or The difference absolute value calculators 204-1 to 204-N, the count value generation unit 205, the buffer memory 206, the correction coefficient acquisition unit 207, the count value correction unit 208, and the adders 209-1 to 209-1 in the motion vector detection device 200 in FIG. 209-N, a semiconductor memory 210 for generating a histogram table, a motion vector detection unit 211, and a motion vector It is the same configuration (second configuration) and Le specification unit 212.
[0255]
In the motion vector detecting device 300, the connection switching unit 305 switches the connection state, and determines whether the common input pixel data to the plurality of difference absolute value calculators is the pixel data of the search frame or the pixel data of the reference frame. Thereby, the configuration shown in FIGS. 30A to 30D can be realized. When the configuration of FIGS. 30A and 30C is adopted, the motion vector detection processing unit 306 has the first configuration, and detects the motion vector MV by the same operation as the motion vector detection device 100 of FIG. On the other hand, when adopting the configurations of FIGS. 30B and 30D, the motion vector detection processing unit 306 adopts the second configuration, and detects the motion vector MV by the same operation as the motion vector detection device 200 of FIG.
[0256]
With the motion vector detecting device 300 shown in FIG. 29, the same operation and effect as those of the above-described motion vector detecting device 100 of FIG. 5 and the motion vector detecting device 200 of FIG. 25 can be obtained.
[0257]
Next, a fourth embodiment of the motion vector detecting device according to the present invention will be described. FIG. 31 shows a configuration of a motion vector detection device 400 according to the fourth embodiment.
[0258]
The motion vector detecting device 400 is connected in series with a system controller 401 that controls the operation of the entire device, an input terminal 402 to which image data Di is input, and an image data Di input to the input terminal 402. It has frame memories 403 and 404.
[0259]
Further, the motion vector detection device 400 selectively supplies pixel data of a frame stored in the frame memories 403 and 404 to a motion vector detection processing unit 406 described later as pixel data of a search frame and a reference frame. A connection switching unit 405 is provided.
[0260]
Further, the motion vector detection device 400 uses the search frame and the reference frame pixel data supplied from the connection switching unit 405 to obtain a motion vector MV of each pixel data of the reference block. And an output terminal 407 for outputting the motion vector MV. Note that the connection switching unit 405 supplies the motion vector detection processing unit 406 with the pixel data Dref of the reference frame required when detecting the activity A around each pixel data forming the reference block.
[0261]
The motion vector detection processing unit 406 includes the absolute difference calculators 104-1 to 104-N, the count value generation unit 105, the semiconductor memory 106 for generating the count value table, and the correction coefficient acquisition unit in the motion vector detection device 100 in FIG. 107, the same configuration as the count value correction unit 108, the adders 109-1 to 109-N, the semiconductor memory 110 for generating a histogram table, the motion vector detection unit 111 and the motion vector identification unit 112 (first configuration), or The difference absolute value calculators 204-1 to 204-N, the count value generation unit 205, the buffer memory 206, the correction coefficient acquisition unit 207, the count value correction unit 208, and the adders 209-1 to 209-1 in the motion vector detection device 200 in FIG. 209-N, a semiconductor memory 210 for generating a histogram table, a motion vector detection unit 211, and a motion vector It is the same configuration (second configuration) and Le specification unit 212.
[0262]
In the motion vector detecting device 400, the connection switching unit 405 switches between the reference frame and the search frame, and the common input pixel data to the plurality of absolute difference calculators is used as the pixel data of the search frame or the pixel data of the reference frame. Thus, the same configuration as the configuration shown in FIGS. 30A to 30D realized by the above-described motion vector detection device 300 can be realized. 30A and C, the motion vector detection processing unit 406 takes the first configuration, and detects the motion vector MV by the same operation as the motion vector detection device 100 in FIG. On the other hand, when adopting the same configuration as in FIGS. 30B and D, the motion vector detection processing unit 406 adopts the second configuration, and detects the motion vector MV by the same operation as the motion vector detection device 200 in FIG.
[0263]
With the motion vector detecting device 400 shown in FIG. 31, the same operation and effect as those of the motion vector detecting device 100 shown in FIG. 5 and the motion vector detecting device 200 shown in FIG. 25 can be obtained.
[0264]
Although the motion vector detecting device 100 shown in FIG. 5 and the motion vector detecting device 200 shown in FIG. 25 described above detect the motion vector MV in hardware, the same motion vector MV can be detected in software. .
[0265]
The flowchart of FIG. 32 shows the motion vector detection processing in that case.
[0266]
First, in step ST1, a detection process is started. In step ST2, a matching operation between pixel data (reference pixel) of a reference block and a plurality of pixel data (search pixels) in a search range corresponding thereto, for example, absolute difference The value calculation is performed for each reference pixel constituting the reference block. Based on the result, a count value table corresponding to each reference pixel is generated, and the count value tables are added to obtain a histogram table.
[0267]
Next, in step ST3, the motion vectors MV1 to MVn of the reference block are detected based on the maximum value or the minimum value of the histogram. Then, in step ST4, the motion vector MV of each reference pixel forming the reference block is specified based on the motion vectors MV1 to MVn of the reference block, and then the process ends in step ST5.
[0268]
The flowchart in FIG. 33 illustrates an example of the histogram generation process in step ST2 in FIG. This generation processing example corresponds to the processing in the motion vector detection device 100 in FIG.
[0269]
First, in step ST11, generation processing is started, and in step ST12, N = 1 is set. Then, in step ST13, a one-to-N relationship between the N-th pixel data (search pixel) in the search range corresponding to the reference block and the pixel data (reference pixel) forming a predetermined reference block including the N-th pixel data in the search range. Is performed.
[0270]
Next, in step ST14, a count value table corresponding to each reference pixel is generated. Then, in step ST15, it is determined whether or not N = Nmax. Here, Nmax is the number of pixel data included in the search range corresponding to the reference block. If N is not equal to Nmax, N is incremented in step ST16, and thereafter, the process returns to step ST13 and proceeds to the process for the next search pixel.
[0271]
On the other hand, if N = Nmax in step ST15, the count value table corresponding to each reference pixel has been completed, and the process proceeds to step ST17. In step ST17, an activity A corresponding to each reference pixel is obtained, and a correction coefficient k corresponding to each reference pixel data is obtained.
[0272]
Then, in step ST18, the count value of the count value table corresponding to each reference pixel constituting the reference block is corrected by multiplying the count value by the correction coefficient k, and added for each pixel position in the search range to generate a histogram table. Thereafter, in step ST19, the generation processing ends.
[0273]
The flowchart in FIG. 34 also shows an example of the histogram generation process in step ST2 in FIG. This generation processing example corresponds to the processing in the motion vector detection device 200 in FIG.
[0274]
First, in step ST21, generation processing is started, and in step ST22, N = 1 is set. Then, in step ST23, a one-to-N matching operation is performed between the N-th pixel data (reference pixel) constituting the reference block and a plurality of pixel data (search pixels) in the search range corresponding thereto.
[0275]
Next, in step ST24, a count value table corresponding to the N-th reference pixel is generated. Then, in step ST25, an activity A corresponding to the Nth reference pixel is obtained, and a correction coefficient k corresponding to the reference pixel is obtained.
[0276]
Next, in step ST26, the correction is performed by multiplying the count value in the count value table corresponding to the N-th reference pixel by the correction coefficient k. Then, in step ST27, the count value of the count value table corresponding to the Nth reference pixel is added to the histogram table for each pixel position in the search range.
[0277]
Next, in step ST28, it is determined whether or not N = Nmax. Here, Nmax is the number of pixel data (reference pixels) constituting the reference block. If N is not equal to Nmax, N is incremented in step ST29, and thereafter, the process returns to step ST23 to proceed to the processing for the next reference pixel. On the other hand, if N = Nmax in step ST28, the histogram table has been completed, and the generation process ends in step ST30.
[0278]
The flowchart in FIG. 35 illustrates an example of the motion vector specifying process in step ST4 in FIG.
[0279]
First, in step ST41, a specific process is started, and in step ST42, N = 1 is set. Then, in step ST43, the N-th pixel data (reference pixel) constituting the reference block is selected.
[0280]
Next, in step ST44, M = 1 is set, and in step ST45, the Mth motion vector is selected from the motion vectors MV1 to MVn of the reference block detected in step ST3 of FIG. Then, in step ST46, correlation information between the Nth reference pixel and the search pixel of the search frame indicated by the Mth motion vector, for example, a difference absolute value or a difference square value is obtained.
[0281]
Next, in step ST47, it is determined whether or not M = Mmax. Here, Mmax is the number of detected motion vectors of the reference block, and Mmax = n. If M is not equal to Mmax, M is incremented in step ST48, and thereafter, the process returns to step ST45 to proceed to a process of calculating correlation information corresponding to the next motion vector.
[0282]
On the other hand, when M = Mmax, the motion vector with the highest correlation is set as the motion vector MV of the Nth reference pixel based on the correlation information corresponding to each of the motion vectors MV1 to MVn in step ST49. Identify.
[0283]
Next, in step ST50, it is determined whether or not N = Nmax. Here, Nmax is the number of pixel data (reference pixels) constituting the reference block. If N is not equal to Nmax, N is incremented in step ST51, and thereafter, the process returns to step ST43 and proceeds to processing of the next reference pixel.
[0284]
On the other hand, if N = Nmax, the process proceeds to step ST52. In this step ST52, a correction process such as removal of an isolated motion vector from the motion vector MV specified corresponding to each reference pixel constituting the reference block is performed, and the motion vector MV corresponding to each reference pixel is performed. Is finally identified. Thereafter, in step ST53, the specifying process ends.
[0285]
In the above-described embodiment, the case where the motion vector is detected by the ordinary block matching method has been described. However, the present invention is naturally applicable to the case where the motion vector is detected by the representative point block matching method. It is.
[0286]
【The invention's effect】
According to the present invention, a matching operation is performed between pixel data constituting a predetermined reference block of a reference frame and a plurality of pixel data existing in a search range of a search frame corresponding to the pixel data to form a reference block. A value other than 0 is allocated as a count value when the degree of matching is higher than the threshold value, and when the degree of matching is equal to or less than the threshold value, a total value is assigned to each pixel data item corresponding to each pixel position in the search range. A count value table in which 0 is arranged as a numerical value is generated, and each count value of the count value table corresponding to each pixel data forming the reference block is set as a frequency, and the frequency is added for each pixel position in the search range to obtain a histogram table. And a motion vector of the reference block is detected based on the local maximum value or the local minimum value of the histogram table. Even if those different movements in the block are a plurality mixed correctly it detect a motion vector.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining an outline of a motion vector detection method according to the present invention.
FIG. 2 is a diagram illustrating an example of a correlation value table (when there are two movements).
FIG. 3 is a diagram showing an example of a histogram table (when there are two movements).
FIG. 4 is a diagram showing an example of pixel data for obtaining an activity.
FIG. 5 is a block diagram illustrating a configuration of a motion vector detection device according to the first embodiment.
FIG. 6 is a diagram illustrating a matching operation for detecting a motion vector when an input frame is a search frame and a past frame is a reference frame.
FIG. 7 is a diagram illustrating a relationship between a reference block and a search range.
FIG. 8 is a block diagram illustrating a configuration of a motion vector specifying unit.
FIG. 9 is a diagram illustrating a relationship between input pixel data, a reference block, and a computing unit.
FIG. 10 is a diagram illustrating a positional relationship between a calculation target range of input pixel data and a reference block.
FIG. 11 is a diagram illustrating a positional relationship between a calculation target range of input pixel data and a reference block.
FIG. 12 is a diagram illustrating a positional relationship between a calculation target range of input pixel data and a reference block.
FIG. 13 is a diagram illustrating a positional relationship between a calculation target range of input pixel data and a reference block.
FIG. 14 is a diagram illustrating a positional relationship between a calculation target range of input pixel data and a reference block.
FIG. 15 is a diagram illustrating a positional relationship between a calculation target range of input pixel data and a reference block.
FIG. 16 is a diagram showing a calculation process in a plurality of difference absolute value calculators when obtaining a count value table corresponding to each pixel data forming a predetermined reference block.
FIG. 17 is a diagram showing a calculation process in the calculators (7, 7).
FIG. 18 is a diagram illustrating a motion vector (the coordinates of a search range of one reference pixel).
FIG. 19 is a diagram showing a correspondence relationship between a motion vector and a storage position in a count value table generation memory.
FIG. 20 is a diagram showing an overall configuration of a semiconductor memory.
FIG. 21 is a diagram showing a configuration of a storage area of a semiconductor memory.
FIG. 22 is a diagram showing a configuration of a main / sub row decoder and a word line in a memory unit.
FIG. 23 is a diagram showing a configuration in which a semiconductor memory and an adder are integrated.
FIG. 24 is a diagram showing a configuration of a memory cell.
FIG. 25 is a block diagram illustrating a configuration of a motion vector detection device according to a second embodiment.
FIG. 26 is a diagram illustrating a one-to-N matching operation between one reference pixel and N search range pixels.
FIG. 27 is a diagram illustrating a relationship between input pixel data, a search range, and a computing unit.
FIG. 28 is a diagram showing a reference block.
FIG. 29 is a block diagram illustrating a configuration of a motion vector detection device according to a third embodiment.
FIG. 30 is a diagram illustrating types of configurations that can be switched.
FIG. 31 is a block diagram illustrating a configuration of a motion vector detection device according to a fourth embodiment.
FIG. 32 is a flowchart showing a motion vector detection process.
FIG. 33 is a flowchart illustrating an example of a histogram table generation process.
FIG. 34 is a flowchart illustrating an example of a histogram table generation process.
FIG. 35 is a flowchart showing a process of specifying a motion vector of each reference pixel.
FIG. 36 is a diagram for describing a block matching method.
FIG. 37 is a diagram for describing a problem (when there are a plurality of movements) of the block matching method.
[Explanation of symbols]
100, 200, 300, 400: motion vector detecting device, 101, 201, 301, 401: system controller, 102, 202, 302, 403: input terminal, 103: reference frame memory, 104 -1 to 104-N, 204-1 to 204-N: Difference absolute value calculator, 105, 205: Count value generator, 106: Semiconductor memory for generating a count value table, 107, 207 ··· Correction coefficient acquisition units, 108, 208 ··· Count value correction units, 109-1 to 109-N, 209-1 to 209-N ··· Adders, 110, 210 ··· For histogram table generation , 211, 211... Motion vector detecting unit, 112, 212... Motion vector specifying unit, 113, 213, 307, 407. DESCRIPTION OF SYMBOLS 1 ... Controller, 122 ... Memory for search pixels, 123-1 ... 123-n ... Correlation calculation part, 124 ... Temporary motion vector specification part, 125 ... Motion vector correction part, 150 -1 to 150-8: memory unit, 151: row decoder for reading, 153: main row decoder for writing, 154: sub-row decoder for writing, 203: search frame memory , 206: buffer memory, 303, 304, 403, 404: frame memory, 305, 405: connection switching unit, 306, 406: motion vector detection processing unit

Claims (32)

時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記参照フレームの所定の参照ブロックを構成する画素データと該画素データに対応した上記探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、上記参照ブロックを構成する各画素データ分行うマッチング演算手段と、
上記参照ブロックを構成する各画素データ毎に、上記マッチング演算の結果に基づき、上記探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として0以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として0を配した計数値テーブルを生成する計数値テーブル生成手段と、
上記各画素データに対応した計数値テーブルの各計数値をそれぞれ度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出手段と
を備えることを特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector from a reference frame and a search frame that are temporally before and after,
A matching operation between pixel data constituting a predetermined reference block of the reference frame and a plurality of pixel data present in a search range of the search frame corresponding to the pixel data is performed by each pixel data constituting the reference block. Matching calculation means for performing
For each pixel data constituting the reference block, based on the result of the matching operation, corresponding to each pixel position in the search range, when the degree of matching is higher than the threshold, a value other than 0 is used as a count value. A count value table generating means for generating a count value table in which 0 is set as a count value when the degree of matching is equal to or less than the threshold value;
Each count value of the count value table corresponding to each pixel data is defined as a frequency, and the frequency is added for each pixel position in the search range, and the cumulative value of the frequency is calculated for each pixel position in the search range. A histogram table generating means for generating an arranged histogram table;
A motion vector detecting device, comprising: a motion vector detecting unit that detects a motion vector of the reference block based on a local maximum value or a local minimum value of the histogram table.
上記計数値テーブル生成手段は、
上記マッチングの度合いがその閾値より高いときは、該マッチングの度合いが高い程絶対値の大きな値を上記計数値として配する
ことを特徴とする請求項1に記載の動きベクトル検出装置。
The counting value table generating means includes:
2. The motion vector detecting device according to claim 1, wherein when the degree of the matching is higher than the threshold value, a larger absolute value is assigned as the count value as the degree of the matching is higher.
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得手段と、
上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正手段とをさらに備える
ことを特徴とする請求項1に記載の動きベクトル検出装置。
Correction coefficient obtaining means for obtaining the surrounding activity for each pixel data constituting the reference block, and for each pixel data, obtaining a larger value as the correction coefficient as the ratio of the activity to the maximum activity is higher,
The apparatus according to claim 1, further comprising: a count value correction unit configured to multiply the count value of the count value table corresponding to each pixel data configuring the reference block by a correction coefficient corresponding to each pixel data to correct the count value. 2. The motion vector detection device according to 1.
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出手段と、
上記計数値テーブル生成手段で上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更手段とをさらに備え、
上記閾値変更手段は、アクティビティが大きい程上記閾値を低くする
ことを特徴とする請求項1に記載の動きベクトル検出装置。
Activity calculation means for obtaining an activity in the surroundings for each pixel data constituting the reference block;
The threshold value used when the count value table generating means obtains the count value of the count value table corresponding to each pixel data constituting the reference block is changed based on the activity corresponding to each pixel data. Further comprising a threshold changing means,
2. The motion vector detecting device according to claim 1, wherein the threshold changing unit decreases the threshold as the activity increases.
上記動きベクトル検出手段で検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定手段をさらに備え、
上記動きベクトル特定手段は、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出手段で検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項1に記載の動きベクトル検出装置。
A motion vector identifying unit that identifies a motion vector of each pixel data forming the reference block based on the motion vector detected by the motion vector detecting unit;
The motion vector specifying means includes:
The correlation information between the pixel data constituting the reference block and the pixel data at the pixel position of the search frame corresponding to each motion vector detected by the motion vector detection means with reference to the pixel position of the pixel data is obtained, The motion vector detecting device according to claim 1, wherein the motion vector having the highest correlation is set as the motion vector of the pixel data forming the reference block.
上記動きベクトル特定手段で特定される上記参照ブロックを構成する各画素データの動きベクトルより孤立した動きベクトルを除去する孤立点除去手段をさらに備える
ことを特徴とする請求項5に記載の動きベクトル検出装置。
6. The motion vector detection according to claim 5, further comprising an isolated point removing unit that removes a motion vector isolated from a motion vector of each pixel data constituting the reference block specified by the motion vector specifying unit. apparatus.
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記探索フレームより取り出される画素データを共通に入力すると共に、上記参照フレームより取り出される、上記画素データを探索範囲に含む所定の参照ブロックの画素データとの差分絶対値を演算する複数の差分絶対値演算器と、
上記複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して、該差分絶対値がその閾値より小さいときは0以外の所定値とし、該差分絶対値がその閾値以上のときは0とするように計数値を生成する計数値生成手段と、
上記複数の差分絶対値演算器にそれぞれ対応した複数の記憶領域を有する計数値テーブル生成用の第1の記憶手段と、
上記複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれに対応して上記計数値生成手段で生成された計数値を、上記第1の記憶手段の該計数値に係る上記差分絶対値演算器および上記参照ブロックの画素位置に対応した記憶領域内の計数値記憶領域に書き込み、上記第1の記憶手段に、上記参照ブロックを構成する各画素データに対応した、上記探索範囲の各画素位置に対応して計数値が配された計数値テーブルが得られるように制御する書き込み制御手段と、
上記第1の記憶手段に得られた上記参照ブロックを構成する各画素データにそれぞれ対応した計数値テーブルの各計数値をそれぞれ度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出手段と
を備えることを特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector from a reference frame and a search frame that are temporally before and after,
A plurality of differential absolute values for commonly inputting pixel data extracted from the search frame and calculating absolute differences between the pixel data of a predetermined reference block extracted from the reference frame and including the pixel data in a search range. A computing unit,
For each of the plurality of difference absolute values calculated by the plurality of difference absolute value calculators, when the difference absolute value is smaller than the threshold, a predetermined value other than 0 is set. A count value generating means for generating a count value so as to be 0 when the value is equal to or more than the threshold value;
First storage means for generating a count value table having a plurality of storage areas respectively corresponding to the plurality of difference absolute value calculators;
The count value generated by the count value generation means corresponding to each of the difference absolute values calculated by the plurality of difference absolute value calculators is stored in the first storage means according to the count value. The difference absolute value calculator and the count value storage area in the storage area corresponding to the pixel position of the reference block are written to the first storage means, and the search range corresponding to each pixel data constituting the reference block is stored in the first storage means. Writing control means for controlling so as to obtain a count value table in which count values are arranged corresponding to each pixel position,
Each count value of the count value table corresponding to each pixel data constituting the reference block obtained in the first storage means is set as a frequency, and the frequency is added for each pixel position in the search range, Histogram table generating means for generating a histogram table in which the cumulative value of the frequency is arranged corresponding to each pixel position in the search range,
A motion vector detecting device, comprising: a motion vector detecting unit that detects a motion vector of the reference block based on a local maximum value or a local minimum value of the histogram table.
上記ヒストグラムテーブル生成手段は、
上記探索範囲の画素数に対応した複数の加算器と、
上記複数の加算器にそれぞれ対応した複数の記憶領域を有する第2の記憶手段と、
上記第1の記憶手段に得られた計数値テーブルの複数の計数値をそれぞれ度数とし、該複数の度数のそれぞれを、上記第2の記憶手段の複数の記憶領域に記憶されていた記憶データのそれぞれに、上記複数の加算器を用いて足し込み、該複数の加算器で得られた足し込みデータのそれぞれを上記第2の記憶手段の複数の記憶領域に記憶することを、上記第1の記憶手段に得られた上記参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、上記第2の記憶手段に、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する制御手段とを有する
ことを特徴とする請求項7に記載の動きベクトル検出装置。
The histogram table generating means includes:
A plurality of adders corresponding to the number of pixels in the search range;
Second storage means having a plurality of storage areas respectively corresponding to the plurality of adders;
Each of a plurality of count values of the count value table obtained in the first storage means is a frequency, and each of the plurality of frequencies is stored in the storage data of the plurality of storage areas of the second storage means. Each of the first and second adders uses the first adder to store the added data obtained by the plurality of adders in a plurality of storage areas of the second storage unit. It is repeated by the number of count value tables corresponding to the respective pixel data constituting the reference block obtained in the storage means, and stored in the second storage means in correspondence with each pixel position in the search range. 8. The motion vector detecting device according to claim 7, further comprising control means for controlling so as to obtain a histogram table in which the accumulated values are arranged.
上記第2の記憶手段は半導体メモリであって、少なくとも上記複数の加算器および上記半導体メモリは一体化されており、
上記加算器を構成するビット単位の複数の加算部は、上記半導体メモリのカラムのピッチに揃えて配されている
ことを特徴とする請求項8に記載の動きベクトル検出装置。
The second storage means is a semiconductor memory, and at least the plurality of adders and the semiconductor memory are integrated,
9. The motion vector detecting device according to claim 8, wherein the plurality of bit-by-bit adders constituting the adder are arranged at a pitch of a column of the semiconductor memory.
上記第2の記憶手段は半導体メモリであって、
該半導体メモリは上記複数の加算器に関連して設けられた書き込みおよび読み出し用の第1のポートと、上記度数の累積値を読み出すための読み出し専用の第2のポートとを有する
ことを特徴とする請求項8に記載の動きベクトル検出装置。
The second storage means is a semiconductor memory,
The semiconductor memory has a first port for writing and reading provided in association with the plurality of adders, and a second port dedicated for reading for reading the cumulative value of the frequencies. The motion vector detecting device according to claim 8, wherein
上記計数値生成手段は、
上記差分絶対値がその閾値より小さいときは、該差分絶対値が小さい程絶対値の大きな値を上記計数値とする
ことを特徴とする請求項7に記載の動きベクトル検出装置。
The count value generation means includes:
8. The motion vector detecting device according to claim 7, wherein when the difference absolute value is smaller than the threshold value, the smaller the difference absolute value is, the larger the absolute value is set as the count value.
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得手段と、
上記第1の記憶手段に得られた上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正手段とをさらに備える
ことを特徴とする請求項7に記載の動きベクトル検出装置。
Correction coefficient obtaining means for obtaining the surrounding activity for each pixel data constituting the reference block, and for each pixel data, obtaining a larger value as the correction coefficient as the ratio of the activity to the maximum activity is higher,
Count value correction means for correcting the count value of the count value table corresponding to each pixel data constituting the reference block obtained in the first storage means by multiplying the count value by a correction coefficient corresponding to each pixel data; The motion vector detecting device according to claim 7, further comprising:
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出手段と、
上記計数値生成手段で上記参照ブロックを構成する各画素データに対応した計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更手段とをさらに備え、
上記閾値変更手段は、アクティビティが大きい程上記閾値を大きくする
ことを特徴とする請求項7に記載の動きベクトル検出装置。
Activity calculation means for obtaining an activity in the surroundings for each pixel data constituting the reference block;
Threshold value changing means for changing the threshold value used when obtaining the count value corresponding to each pixel data constituting the reference block by the count value generating means, based on the activity corresponding to each pixel data. In addition,
8. The motion vector detecting device according to claim 7, wherein the threshold changing unit increases the threshold as the activity increases.
上記動きベクトル検出手段で検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定手段をさらに備え、
上記動きベクトル特定手段は、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出手段で検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項7に記載の動きベクトル検出装置。
A motion vector identifying unit that identifies a motion vector of each pixel data forming the reference block based on the motion vector detected by the motion vector detecting unit;
The motion vector specifying means includes:
The correlation information between the pixel data constituting the reference block and the pixel data at the pixel position of the search frame corresponding to each motion vector detected by the motion vector detection means with reference to the pixel position of the pixel data is obtained, The motion vector detecting device according to claim 7, wherein the motion vector having the highest correlation is set as the motion vector of the pixel data constituting the reference block.
上記動きベクトル特定手段で特定される上記参照ブロックを構成する各画素データの動きベクトルより孤立した動きベクトルを除去する孤立点除去手段をさらに備える
ことを特徴とする請求項14に記載の動きベクトル検出装置。
15. The motion vector detection according to claim 14, further comprising an isolated point removing unit that removes a motion vector isolated from a motion vector of each pixel data forming the reference block specified by the motion vector specifying unit. apparatus.
上記第1の記憶手段は半導体メモリであって、
上記半導体メモリのカラム方向に延びる各ワード線は、上記複数の記憶領域に対応して分割された複数の分割ワード線からなっており、
上記半導体メモリは、任意のワード線を構成する上記複数の分割ワード線のうち任意の分割ワード線を選択的に活性化させるためのロウデコード手段を有している
ことを特徴とする請求項7に記載の動きベクトル検出装置。
The first storage means is a semiconductor memory,
Each word line extending in the column direction of the semiconductor memory includes a plurality of divided word lines divided corresponding to the plurality of storage regions,
8. The semiconductor memory according to claim 7, wherein the semiconductor memory has a row decoding means for selectively activating an arbitrary divided word line among the plurality of divided word lines constituting an arbitrary word line. 4. The motion vector detection device according to 1.
上記カラム方向に延びる各ワード線は、連続したグローバルワード線と、上記複数の記憶領域に対応して分割され、それぞれ所定数のメモリセルに接続された複数のセクションワード線とから構成され、
上記ロウデコード手段は、
上記各ワード線を構成するグローバルワード線のうち任意のグローバルワード線を選択的に活性化させるメインロウデコード手段と、上記メインロウデコード手段で活性化されたグローバルワード線に対応した複数のセクションワード線のうち任意のセクションワード線を選択的に活性化させるサブロウデコード手段とからなる
ことを特徴とする請求項16に記載の動きベクトル検出装置。
Each word line extending in the column direction includes a continuous global word line, and a plurality of section word lines that are divided corresponding to the plurality of storage areas and are connected to a predetermined number of memory cells, respectively.
The row decoding means includes:
Main row decoding means for selectively activating an arbitrary global word line among the global word lines constituting each of the word lines; and a plurality of section words corresponding to the global word lines activated by the main row decoding means. 17. The motion vector detecting device according to claim 16, further comprising sub-row decoding means for selectively activating an arbitrary section word line among the lines.
上記半導体メモリの複数の記憶領域は、それぞれ複数の参照ブロックに係る計数値を記憶するための複数のブロック領域がロウ方向に配列されてなり、
上記メインロウデコード手段は、所定数の連続するブロック領域に対応した所定数のグローバルワード線を同時に活性化させ、
上記サブロウデコード手段は、上記所定数のグローバルワード線に対応してそれぞれ活性化させるセクションワード線を、互いに異なる上記記憶領域に対応したセクションワード線とする
ことを特徴とする請求項17に記載の動きベクトル検出装置。
The plurality of storage areas of the semiconductor memory are configured such that a plurality of block areas for storing count values related to a plurality of reference blocks are arranged in a row direction,
The main row decoding means simultaneously activates a predetermined number of global word lines corresponding to a predetermined number of continuous block areas,
18. The method according to claim 17, wherein the sub-row decoding means activates section word lines corresponding to the predetermined number of global word lines, respectively, as section word lines corresponding to the different storage areas. Motion vector detection device.
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記参照フレームより取り出される所定の参照ブロックを構成する画素データを共通に入力すると共に、上記探索フレームより取り出される、上記参照ブロックを構成する画素データの探索範囲に存在する複数の画素データとの差分絶対値を演算する複数の差分絶対値演算器と、
上記参照ブロックを構成する各画素データ毎に、上記複数の差分絶対値演算器で演算されて得られた複数の差分絶対値のそれぞれに対応して、該差分絶対値がその閾値より小さいときは0以外の所定値とし、該差分絶対値がその閾値以上のときは0とするように計数値を生成し、上記探索範囲の各画素位置に対応して計数値が配された計数値テーブルを得る計数値テーブル生成手段と、
上記計数値テーブル生成手段で得られた上記参照ブロックを構成する各画素データにそれぞれ対応した計数値テーブルの各計数値をそれぞれ度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成手段と、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出手段と
を備えることを特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector from a reference frame and a search frame that are temporally before and after,
The pixel data constituting the predetermined reference block extracted from the reference frame is commonly input, and the difference between the pixel data included in the search range of the pixel data constituting the reference block extracted from the search frame and the difference from the plurality of pixel data existing in the search range is determined. A plurality of difference absolute value calculators for calculating an absolute value;
For each pixel data constituting the reference block, corresponding to each of the plurality of difference absolute values calculated by the plurality of difference absolute value calculators, when the difference absolute value is smaller than the threshold value, A count value is generated so as to be a predetermined value other than 0, and to be 0 when the absolute value of the difference is equal to or larger than the threshold value, and a count value table in which the count value is arranged corresponding to each pixel position in the search range is obtained. Means for generating a count value table,
Each count value of the count value table corresponding to each pixel data constituting the reference block obtained by the count value table generating means is a frequency, and the frequency is added for each pixel position in the search range, Histogram table generating means for generating a histogram table in which the cumulative value of the frequency is arranged corresponding to each pixel position in the search range,
A motion vector detecting device, comprising: a motion vector detecting unit that detects a motion vector of the reference block based on a local maximum value or a local minimum value of the histogram table.
上記ヒストグラムテーブル生成手段は、
上記探索範囲の画素数に対応した複数の加算器と、
上記複数の加算器にそれぞれ対応した複数の記憶領域を有する記憶手段と、
上記計数値テーブル生成手段で得られた計数値テーブルの複数の計数値をそれぞれ度数とし、該複数の度数のそれぞれを、上記記憶手段の複数の記憶領域に記憶されていた記憶データのそれぞれに、上記複数の加算器を用いて足し込み、該複数の加算器で得られた足し込みデータのそれぞれを上記記憶手段の複数の記憶領域に記憶することを、上記計数値テーブル生成手段で得られる上記参照ブロックを構成する各画素データに対応した複数の計数値テーブルの個数分だけ繰り返し、上記記憶手段に、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルが得られるように制御する制御手段とを有する
ことを特徴とする請求項19に記載の動きベクトル検出装置。
The histogram table generating means includes:
A plurality of adders corresponding to the number of pixels in the search range;
Storage means having a plurality of storage areas respectively corresponding to the plurality of adders;
Each of a plurality of count values of the count value table obtained by the count value table generation unit is a frequency, and each of the plurality of frequencies is stored in each of the storage data stored in the plurality of storage areas of the storage unit. The addition using the plurality of adders, and storing each of the addition data obtained by the plurality of adders in a plurality of storage areas of the storage means, wherein the counting value table generation means obtains By repeating the same number of times as the number of the count value tables corresponding to the respective pixel data constituting the reference block, a histogram table in which the cumulative value of the frequency is arranged in the storage means corresponding to each pixel position in the search range is obtained. 20. The motion vector detection device according to claim 19, further comprising control means for controlling the motion vector detection.
上記記憶手段は半導体メモリであって、少なくとも上記複数の加算器および上記半導体メモリは一体化されており、
上記加算器を構成するビット単位の複数の加算部は、上記半導体メモリのカラムのピッチに揃えて配されている
ことを特徴とする請求項20に記載の動きベクトル検出装置。
The storage means is a semiconductor memory, at least the plurality of adders and the semiconductor memory are integrated,
21. The motion vector detecting device according to claim 20, wherein the plurality of bit-by-bit adders constituting the adder are arranged at a pitch of a column of the semiconductor memory.
上記記憶手段は半導体メモリであって、
該半導体メモリは上記複数の加算器に関連して設けられた書き込みおよび読み出し用の第1のポートと、上記度数の累積値を読み出すための読み出し専用の第2のポートとを有する
ことを特徴とする請求項20に記載の動きベクトル検出装置。
The storage means is a semiconductor memory,
The semiconductor memory has a first port for writing and reading provided in association with the plurality of adders, and a second port exclusively for reading for reading the cumulative value of the frequencies. The motion vector detecting device according to claim 20, wherein
上記計数値テーブル生成手段は、
上記差分絶対値がその閾値より小さいときは、該差分絶対値が小さい程絶対値の大きな値を上記計数値とする
ことを特徴とする請求項19に記載の動きベクトル検出装置。
The counting value table generating means includes:
20. The motion vector detecting device according to claim 19, wherein when the difference absolute value is smaller than the threshold value, the smaller the difference absolute value, the larger the absolute value is set as the count value.
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティの最大アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得手段と、
上記計数値テーブル生成手段で得られた上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正手段とをさらに備える
ことを特徴とする請求項19に記載の動きベクトル検出装置。
Correction coefficient obtaining means for obtaining the surrounding activity for each pixel data constituting the reference block, and for each pixel data, obtaining a larger value as the correction coefficient as the ratio of the activity to the maximum activity is higher,
Count value correction means for correcting by multiplying the count value of the count value table corresponding to each pixel data constituting the reference block obtained by the count value table generation means by a correction coefficient corresponding to each pixel data, 20. The motion vector detecting device according to claim 19, further comprising:
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出手段と、
上記計数値テーブル生成手段で上記参照ブロックを構成する各画素データに対応した計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更手段とをさらに備え、
上記閾値変更手段は、アクティビティが大きい程上記閾値を大きくする
ことを特徴とする請求項19に記載の動きベクトル検出装置。
Activity calculation means for obtaining an activity in the surroundings for each pixel data constituting the reference block;
Threshold value changing means for changing the threshold value used when obtaining the count value corresponding to each pixel data constituting the reference block by the count value table generating means, based on the activity corresponding to each pixel data, Further comprising
20. The motion vector detecting device according to claim 19, wherein the threshold value changing unit increases the threshold value as the activity increases.
上記動きベクトル検出手段で検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定手段をさらに備え、
上記動きベクトル特定手段は、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出手段で検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項19に記載の動きベクトル検出装置。
A motion vector identifying unit that identifies a motion vector of each pixel data forming the reference block based on the motion vector detected by the motion vector detecting unit;
The motion vector specifying means includes:
The correlation information between the pixel data constituting the reference block and the pixel data at the pixel position of the search frame corresponding to each motion vector detected by the motion vector detection means with reference to the pixel position of the pixel data is determined. 20. The motion vector detecting device according to claim 19, wherein the motion vector having the highest correlation is set as the motion vector of the pixel data forming the reference block.
上記動きベクトル特定手段で特定される上記参照ブロックを構成する各画素データの動きベクトルより孤立した動きベクトルを除去する孤立点除去手段をさらに備える
ことを特徴とする請求項26に記載の動きベクトル検出装置。
27. The motion vector detection according to claim 26, further comprising an isolated point removing unit that removes a motion vector isolated from a motion vector of each pixel data constituting the reference block specified by the motion vector specifying unit. apparatus.
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出方法であって、
上記参照フレームの所定の参照ブロックを構成する画素データと該画素データに対応した上記探索フレームの探索範囲に存在する複数の画素データとの間のマッチング演算を、上記参照ブロックを構成する各画素データ分行うマッチング演算ステップと、
上記参照ブロックを構成する各画素データ毎に、上記マッチング演算の結果に基づき、上記探索範囲の各画素位置に対応して、マッチングの度合いがその閾値より高いときは計数値として0以外の値を配し、マッチングの度合いがその閾値以下のときは計数値として0を配した計数値テーブルを生成する計数値テーブル生成ステップと、
上記各画素データに対応した計数値テーブルの各計数値を度数とし、該度数を上記探索範囲の画素位置毎に足し込んで、上記探索範囲の各画素位置に対応して度数の累積値が配されたヒストグラムテーブルを生成するヒストグラムテーブル生成ステップと、
上記ヒストグラムテーブルの度数の極大値または極小値に基づいて、上記参照ブロックの動きベクトルを検出する動きベクトル検出ステップと
を備えることを特徴とする動きベクトル検出方法。
A motion vector detection method for detecting a motion vector from a reference frame and a search frame that are temporally successive,
A matching operation between pixel data constituting a predetermined reference block of the reference frame and a plurality of pixel data existing in a search range of the search frame corresponding to the pixel data is performed by each pixel data constituting the reference block. A matching calculation step to perform
For each pixel data constituting the reference block, based on the result of the matching operation, a value other than 0 is used as a count value when the degree of matching is higher than the threshold value, corresponding to each pixel position in the search range. A counting value table generating step of generating a counting value table in which 0 is allocated as a counting value when the degree of matching is equal to or less than the threshold value;
Each count value of the count value table corresponding to each of the pixel data is set as a frequency, and the frequency is added for each pixel position in the search range, so that the cumulative value of the frequency is distributed according to each pixel position in the search range. A histogram table generating step of generating the generated histogram table;
A motion vector detecting step of detecting a motion vector of the reference block based on a local maximum value or a local minimum value of the histogram table.
上記計数値テーブル生成ステップでは、
上記マッチングの度合いが高いときは、該マッチングの度合いが高い程絶対値の大きな値を上記計数値として配する
ことを特徴とする請求項28に記載の動きベクトル検出方法。
In the above count value table generation step,
29. The motion vector detecting method according to claim 28, wherein when the degree of matching is high, a value having a larger absolute value is assigned as the count value as the degree of matching is higher.
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求め、該各画素データ毎に、アクティビティに対する割合が高い程大きな値を補正係数として得る補正係数取得ステップと、
上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値に、それぞれ該各画素データに対応した補正係数を掛けて補正する計数値補正ステップとをさらに備える
ことを特徴とする請求項28に記載の動きベクトル検出方法。
A correction coefficient obtaining step of obtaining a surrounding activity for each pixel data constituting the reference block and obtaining a larger value as a correction coefficient as the ratio to the activity is higher for each pixel data;
The method according to claim 11, further comprising: a count value correcting step of multiplying the count value of the count value table corresponding to each pixel data constituting the reference block by a correction coefficient corresponding to each pixel data. 29. The motion vector detection method according to 28.
上記参照ブロックを構成する各画素データ毎に周囲におけるアクティビティを求めるアクティビティ算出ステップと、
上記計数値テーブル生成ステップで上記参照ブロックを構成する各画素データに対応した計数値テーブルの計数値を得る際に使用される上記閾値を、それぞれ該各画素データに対応したアクティビティに基づいて変更する閾値変更ステップとをさらに備え、
上記閾値変更ステップでは、アクティビティが大きい程上記閾値を低くする
ことを特徴とする請求項28に記載の動きベクトル検出方法。
An activity calculating step of obtaining an activity in the surroundings for each pixel data constituting the reference block;
The threshold value used in obtaining the count value of the count value table corresponding to each pixel data forming the reference block in the count value table generation step is changed based on the activity corresponding to each pixel data. And a threshold changing step,
29. The motion vector detection method according to claim 28, wherein in the threshold value changing step, the threshold value is set lower as the activity is larger.
上記動きベクトル検出ステップで検出された動きベクトルに基づいて、上記参照ブロックを構成する各画素データの動きベクトルを特定する動きベクトル特定ステップをさらに備え、
上記動きベクトル特定ステップでは、
参照ブロックを構成する画素データと該画素データの画素位置を基準として上記動きベクトル検出ステップで検出された各動きベクトルに対応した上記探索フレームの画素位置の画素データとの間の相関情報を求め、最も相関が高くなる場合の動きベクトルを該参照ブロックを構成する画素データの動きベクトルとする
ことを特徴とする請求項28に記載の動きベクトル検出方法。
A motion vector identification step of identifying a motion vector of each pixel data constituting the reference block based on the motion vector detected in the motion vector detection step;
In the above motion vector identification step,
The correlation information between the pixel data constituting the reference block and the pixel data at the pixel position of the search frame corresponding to each motion vector detected in the motion vector detection step based on the pixel position of the pixel data is obtained, 29. The motion vector detecting method according to claim 28, wherein the motion vector having the highest correlation is set as the motion vector of the pixel data forming the reference block.
JP2002378129A 2002-12-26 2002-12-26 Motion vector detection device and detection method Expired - Fee Related JP4238578B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002378129A JP4238578B2 (en) 2002-12-26 2002-12-26 Motion vector detection device and detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002378129A JP4238578B2 (en) 2002-12-26 2002-12-26 Motion vector detection device and detection method

Publications (3)

Publication Number Publication Date
JP2004206638A true JP2004206638A (en) 2004-07-22
JP2004206638A5 JP2004206638A5 (en) 2006-01-19
JP4238578B2 JP4238578B2 (en) 2009-03-18

Family

ID=32815096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002378129A Expired - Fee Related JP4238578B2 (en) 2002-12-26 2002-12-26 Motion vector detection device and detection method

Country Status (1)

Country Link
JP (1) JP4238578B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442856C (en) * 2004-10-29 2008-12-10 扬智科技股份有限公司 High-frequency and low-frequency forecast arithmetic device and method for high-speed image signal
US8160151B2 (en) 2008-11-05 2012-04-17 Sony Corporation Motion vector detection apparatus, motion vector processing method and program
CN105263026A (en) * 2015-10-12 2016-01-20 西安电子科技大学 Global vector acquisition method based on probability statistics and image gradient information

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442856C (en) * 2004-10-29 2008-12-10 扬智科技股份有限公司 High-frequency and low-frequency forecast arithmetic device and method for high-speed image signal
US8160151B2 (en) 2008-11-05 2012-04-17 Sony Corporation Motion vector detection apparatus, motion vector processing method and program
CN101742310B (en) * 2008-11-05 2013-01-23 索尼株式会社 Motion vector detection apparatus, motion vector processing method
CN105263026A (en) * 2015-10-12 2016-01-20 西安电子科技大学 Global vector acquisition method based on probability statistics and image gradient information
CN105263026B (en) * 2015-10-12 2018-04-17 西安电子科技大学 Global vector acquisition methods based on probability statistics and image gradient information

Also Published As

Publication number Publication date
JP4238578B2 (en) 2009-03-18

Similar Documents

Publication Publication Date Title
US20090154566A1 (en) Memory cell circuit, memory device, motion vector detector, and motion compensation predictive encoder
KR0174774B1 (en) Semiconductor memory and method of using the same, column decoder and image processor
US20100111446A1 (en) Image processing apparatus and method
US20100037013A1 (en) Memory access method
JP4224876B2 (en) Storage device, writing method and reading method
JP4238578B2 (en) Motion vector detection device and detection method
US5555033A (en) Method and device for estimating motion of objects in successive animated images subdivided into tow-dimensional blocks of pixels
US8559518B2 (en) System and method for motion estimation of digital video using multiple recursion rules
JPH06223099A (en) Signal processing system provided with reduced memory space
JP4345301B2 (en) Motion vector detection circuit
US7756363B2 (en) System and method for image processing
JP4165070B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
JP2003289545A (en) Semiconductor device
JP4536310B2 (en) Motion vector detection device and motion compensated prediction encoding device
US5930403A (en) Method and apparatus for half pixel SAD generation utilizing a FIFO based systolic processor
JP4122774B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
US8115874B2 (en) Memory optimization for video processing
JP4506256B2 (en) Data storage device, data storage control device, data storage control method, and data storage control program
JP4689659B2 (en) Semiconductor memory and signal processing apparatus
CN111787333B (en) Motion search method and device for video coding
US20230179731A1 (en) Image processing apparatus
JP4003529B2 (en) Motion vector detection circuit and motion vector detection method
JP2003208789A5 (en)
JP4735008B2 (en) Data storage device, data storage control device, data storage control method, and data storage control program
JP2005222530A (en) Data storing device, data storing controller, data storing control method, and data storing control program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051130

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees