JP4536310B2 - Motion vector detection device and motion compensated prediction encoding device - Google Patents

Motion vector detection device and motion compensated prediction encoding device Download PDF

Info

Publication number
JP4536310B2
JP4536310B2 JP2002004957A JP2002004957A JP4536310B2 JP 4536310 B2 JP4536310 B2 JP 4536310B2 JP 2002004957 A JP2002004957 A JP 2002004957A JP 2002004957 A JP2002004957 A JP 2002004957A JP 4536310 B2 JP4536310 B2 JP 4536310B2
Authority
JP
Japan
Prior art keywords
data
semiconductor memory
motion vector
value
reference block
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.)
Expired - Fee Related
Application number
JP2002004957A
Other languages
Japanese (ja)
Other versions
JP2003209846A (en
Inventor
哲二郎 近藤
靖 立平
勉 市川
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 JP2002004957A priority Critical patent/JP4536310B2/en
Publication of JP2003209846A publication Critical patent/JP2003209846A/en
Application granted granted Critical
Publication of JP4536310B2 publication Critical patent/JP4536310B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、動きベクトル検出装置および動き補償予測符号化装置に関する。詳しくは、加算器と相関値テーブル生成用の半導体メモリとを用いて差分絶対値を累積していき、この半導体メモリに、参照ブロックに対する探索範囲に存在する複数の候補ブロックのそれぞれに対応した相関値を得るようにしたことによって、半導体チップの大型化を防止できるようにした動きベクトル検出装置および動き補償予測符号化装置に係るものである。
【0002】
【従来の技術】
画像処理においては、動きベクトル検出は重要な要素の一つであり、その代表的な方法としてブロックマッチング法がある。これは、あるフレームの一部を構成するある画素ブロック(参照ブロック)について、時間の異なるフレームにおける様々な位置での同一形状画素ブロック(候補ブロック)との相関を評価し、その中で相関が最も高い候補ブロックとの間の相対的な位置ずれを、その参照ブロックにおける動きベクトルとみなすものである。
【0003】
ここで、候補ブロックを想定する領域が探索範囲である。相関の評価には、参照ブロックと候補ブロックとの対応する各画素間の画素データの差分絶対値のブロック内各画素についての総和、すなわち差分絶対値和が用いられることが多い。1個の参照ブロックにつき探索範囲内の画素数分の差分絶対値和(相関値)が得られるが、これが相関値テーブルである。この相関値テーブルの中で最も差分絶対値和の小さい、すなわち相関の高いところが、画素を単位とした動きベクトルと見なされる。また実際には、この処理は演算負荷の非常に重いものであり、ブロックの形状や大きさ、あるいは演算に使用する画素位置などについて、様々な工夫が行われている。
【0004】
【発明が解決しようとする課題】
従来のブロックマッチングには、差分絶対値演算器と記憶素子としての複数のレジスタとを組み合わせた、あるいはさらに加算器をも組み合わせたPE(Processing Element)が多く用いられている。アレイ配置したPE間に並列かつパイプライン的にデータを流すことで、複数の差分絶対値和を並列に演算し、または差分絶対値を得た後に加算器によって総和をし、差分絶対値和(相関値)の集まり、すなわち相関値テーブルを生成するのである。
【0005】
この場合、記憶素子としてレジスタを用いるためにその構成素子数が多く占有面積が広くなり、さらに各PEに複数個(例えば2〜3個)のレジスタがあるのでPE全体としても占有面積が広くなる。そのため、半導体チップが大型化するといった問題点があった。
そこで、この発明では、半導体チップの大型化を防止し得る動きベクトル検出装置等を提供することを目的とする。
【0006】
【課題を解決するための手段】
この発明に係る動きベクトル検出装置は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、参照フレームより取り出される参照ブロックの画素データを共通に入力すると共に、上記探索フレームより取り出される、上記参照ブロックに対する探索範囲に存在する複数の候補ブロックの画素データをそれぞれ入力し、上記参照ブロックの画素データと上記候補ブロックの画素データとの差分絶対値を演算する複数の差分絶対値演算器と、複数の加算器と複数の記憶領域を有する相関値テーブル生成用の半導体メモリと、上記複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれを、上記半導体メモリの複数の記憶領域に記憶されていた記憶データのそれぞれに、上記複数の加算器を用いて足し込み、該複数の加算器で得られた足し込みデータのそれぞれを上記半導体メモリの複数の記憶領域に記憶することを所定回数だけ繰り返し、上記半導体メモリの複数の記憶領域に、上記複数の候補ブロックのそれぞれに対応した相関値が得られるように制御するコントローラと、上記半導体メモリの複数の記憶領域に得られた上記複数の候補ブロックのそれぞれに対応した相関値に基づいて、上記参照ブロックに対応した動きベクトルを検出する相関値テーブル評価器とを備え、上記加算器は、上記記憶領域に記憶されている値を読み出し、読み出した値に上記差分絶対値演算器で演算されて得られた差分絶対値を足しんだデータを上記記憶領域に書き戻し、足し込みの演算結果がオーバフローとなる場合、当該加算器に対応した上記半導体メモリの記憶領域に最大値をセットするものである。
【0007】
この発明において、複数の差分絶対値演算器では、複数の候補ブロックのそれぞれの画素データと参照ブロックの画素データの差分絶対値が演算される。そして、複数の加算器は、相関値テーブル生成用の半導体メモリの複数の記憶領域に記憶されている記憶データを読み出す。その後、複数の加算器は、読み出した記憶データに、複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれを足し込む。そして、このように複数の加算器で得られた足し込みデータのそれぞれは半導体メモリの複数の記憶領域に記憶される。ここで、加算器は、足し込みの演算結果がオーバフローとなる場合、当該加算器に対応した半導体メモリの記憶領域に最大値をセットする。これにより、この半導体メモリの記憶領域に誤った小さな値が相関値として記憶される、動きベクトルの検出誤りを生じることを防止できる。
【0008】
上述の差分絶対値演算、加算演算および記憶動作が所定回数、例えばブロックマッチング法の場合には参照ブロックを構成する画素データの個数と等しい回数だけ繰り返されることで、半導体メモリの複数の記憶領域に、参照ブロックに対する探索範囲に存在する複数の候補ブロックのそれぞれに対応した相関値(差分絶対値和)が得られる。そして、相関値テーブル評価器では、このように半導体メモリに得られる複数の候補ブロックのそれぞれに対応した相関値に基づいて、参照ブロックに対応した動きベクトルが検出される。
【0009】
このように、記憶素子としてレジスタよりも小型、高密度な半導体メモリを使用することにより、占有面積を狭くすることが可能となり、半導体チップの大型化を防止できる。
【0010】
なお、少なくとも複数の加算器および半導体メモリが一体化され、加算器を構成するビット単位の複数の加算部が半導体メモリを構成するマトリックス状に配されたメモリセルのカラムのピッチに揃えて配されることで、加算器から半導体メモリへの足し込みデータの供給および半導体メモリから加算器への記憶データの供給が効率的に行われる。
【0011】
また、半導体メモリが、上述の複数の加算部に関連して設けられた書き込みおよび読み出し用の第1のポートと読み出し専用の第2のポートとを有することで、半導体メモリの記憶データ、例えば相関値の読み出しを、足し込みとは別途独立して行うことができる。
【0012】
また、半導体メモリをクリアまたはプリセットするためのデータを生成し、このデータによって半導体メモリをクリアまたはプリセットすることで、外部からクリアまたはプリセットするためのデータを入力することなく、半導体メモリを容易にクリアまたはプリセットすることができ、またプリセットするためのデータを工夫することで、例えば平坦な絵柄の部分においては(0,0)等の特定の動きベクトルが検出されやすくできる。
【0013】
また、加算器を構成する複数の加算部による演算結果がオーバフローとなる場合、複数の加算部に対応した半導体メモリの所定領域に最大値をセットすることで、この半導体メモリの所定領域に誤った小さな値が相関値として記憶されることを防止できる。
【0014】
【発明の実施の形態】
以下、図面を参照しながら、この発明の実施の形態について説明する。
図1は、実施の形態としての動き補償予測符号化装置100の構成を示している。
この符号化装置100は、画像データ(動画像を構成するフレームデータ)Diを入力する入力端子101と、この入力端子101に供給される画像データDiと後述する動き補償回路110から供給される予測画像データとの差分を演算する減算器102と、この減算器102で得られる差分データに対してDCT(離散コサイン変換)を行うDCT回路103と、このDCT回路103で得られるDCT係数に対して量子化を行う量子化回路104と、この量子化回路104で得られた符号化データDoを出力する出力端子105とを有している。
【0015】
また、符号化装置100は、量子化回路104で得られた符号化データDoに対して逆量子化を行う逆量子化回路106と、この逆量子化回路106の出力データに対して逆DCTを行って差分データを得る逆DCT回路107と、この逆DCT回路107で得られる差分データと動き補償回路110で得られる予測画像データとを加算して元の画像データを復元する加算器108と、この加算器108で復元された画像データを記憶するフレームメモリ109とを有している。
【0016】
また、符号化装置100は、フレームメモリ109に記憶された画像データを読み込み、後述する動きベクトル検出回路111からの動きベクトルMVに基づいて動き補償をした後、上述したように減算器102および加算器108に予測画像データとして供給する動き補償回路110と、入力端子101に供給される画像データDiの動きベクトルMVを検出して動き補償回路110に供給する動きベクトル検出回路111とを有している。
【0017】
図1に示す動き補償予測符号化装置100の動作を説明する。
入力端子101に入力される画像データDiは、減算器102および動きベクトル検出回路111に供給される。減算器102では、この画像データDiと動き補償回路110から供給される予測画像データとの差分が演算される。
【0018】
減算器102で得られる差分データはDCT回路103に供給されて離散コサイン変換される。このDCT回路103で得られるDCT係数は量子化回路104に供給されて量子化される。そして、この量子化回路104で得られた符号化データDoが出力端子105に出力される。
【0019】
また、量子化回路104で得られた符号化データDoが逆量子化回路106に供給されて逆量子化され、さらにこの逆量子化回路106の出力データが逆DCT回路107に供給されて逆DCTされ、差分データが復元される。この差分データと動き補償回路110からの予測データとが加算器108で加算されて元の画像データが復元され、この復元された画像データがフレームメモリ109に記憶される。
【0020】
動き補償回路110では、あるフレームにおいては、その前のフレームにフレームメモリ109に記憶された画像データの読み込みが行われて、動きベクトル検出回路111からの動きベクトルMVに基づいて動き補償されて、予測画像データが得られる。この予測画像データは、上述したように、差分データを得るために減算器102に供給されると共に、画像データを復元するために加算器108に供給される。
【0021】
次に、動きベクトル検出回路111の詳細を説明する。
この動きベクトル検出回路111では、ブロックマッチング法により動きベクトルが検出される。これは、図2に示すように、探索フレームの候補ブロックを所定の探索範囲内で移動し、参照フレームの参照ブロックと最も合致している候補ブロックを検出することにより、動きベクトルを求めるものである。
【0022】
ブロックマッチング法では、図3Aに示すように、1枚の画像、例えば水平H画素、垂直Vラインの1フレームの画像が図4Bに示すように、P画素×Qラインのブロックに細分化される。図3Bの例では、P=5、Q=5の例である。cがブロックの中心画素位置である。
【0023】
図4A〜Cは、cを中心画素とする参照ブロックとc´を中心とする候補ブロックの位置関係を示している。cを中心画素とする参照ブロックは、参照フレームの注目しているある参照ブロックであり、それと一致する探索フレームの候補ブロックが探索フレームにおいてc´を中心とするブロックの位置にあるものとしている。ブロックマッチング法では、探索範囲内において、参照ブロックと最も合致する候補ブロックを見出すことによって、動きベクトルを検出する。
【0024】
図4Aの場合では、水平方向に+1画素、垂直方向に+1ライン、すなわち、(+1,+1)の動きベクトルが検出される。図4Bでは、(+3,+3)の動きベクトルMVが検出され、図4Cでは、(+2,−1)の動きベクトルが検出される。動きベクトルは、参照フレームの参照ブロック毎に求められる。
【0025】
動きベクトルを探索する範囲を水平方向で±S画素、垂直方向で±Tラインとすると、参照ブロックは、その中心cに対して、水平に±S、垂直に±Tずれたところに中心c´を有する候補ブロックと比較される必要がある。
【0026】
図5は、参照フレームのある参照ブロックの中心cの位置をRとする時に、比較すべき探索フレームの(2S+1)×(2T+1)個の候補ブロックとの比較が必要なことを示している。すなわち、この図5のます目の位置にc´が存在する候補ブロックの全てが比較対象である。図5は、S=4,T=3とした例である。
【0027】
探索範囲内の比較で得られた評価値(すなわち、フレーム差の絶対値和、このフレーム差の二乗和、あるいはフレーム差の絶対値のn乗和等)の中で、最小値を検出することによって、動きベクトルが検出される。図5の探索範囲は、候補ブロックの中心が位置する領域であり、候補ブロックの全体が含まれる探索範囲の大きさは、(2S+P)×(2T+Q)となる。
【0028】
図6は、動きベクトル検出回路111の構成を示している。
この動きベクトル検出回路111は、回路全体の動作を制御するコントローラ121と、参照フレームの画像データDiが入力される入力端子122と、この画像データDiを探索フレームの画像データとして蓄積するフレームメモリ123とを有している。フレームメモリ123の書き込み、読み出し等の動作は、コントローラ121によって制御される。
【0029】
また、動きベクトル検出回路111は、複数の差分絶対値演算器124-1〜124-Nを有している。ここで、Nは、ある参照ブロック内の1個の参照画素に対する探索範囲に存在する複数の候補ブロックの個数である。複数の演算器124-1〜124-Nは、入力端子122に入力される画像データDiを構成する画素データを、参照ブロックの画素データDrとして共通に入力すると共に、また当該参照ブロックに対する探索範囲に存在する複数の候補ブロックの画素データDc-1〜Dc-Nをそれぞれ入力し、参照ブロックの画素データと候補ブロックの画素データとの差分絶対値を演算するものである。
【0030】
この場合、演算器124-1〜124-Nにおいては、図7に示すように、1個の参照画素とN個の探索範囲画素との1対Nのマッチング演算が行われる。ここで、参照ブロック内における参照画素の位置に応じて、この参照画素に対する探索範囲画素の位置が変化する。例えば、ハッチングして示した位置は、参照ブロックの左上の1個の画素に対するN個の探索範囲画素の位置を示している。
【0031】
また、動きベクトル検出回路111は、複数の加算器125-1〜125-Nと、複数の記憶領域126-1〜126-Nを有する相関値テーブル生成用の半導体メモリ126とを有している。複数の加算器125-1〜125-Nは、複数の演算器124-1〜124-Nで演算されて得られた差分絶対値をそれぞれ入力すると共に、半導体メモリ126の複数の記憶領域126-1〜126-Nに記憶されていた記憶データのそれぞれを入力し、差分絶対値を記憶データに足し込むものである。
【0032】
このように、複数の加算器125-1〜125-Nで得られた足し込みデータのそれぞれは、半導体メモリ126の複数の記憶領域126-1〜126-Nに記憶データとして書き戻される。半導体メモリ126の書き込み、読み出しの動作は、コントローラ121によって制御される。
【0033】
コントローラ121は、参照フレームの各参照ブロックについて、複数の差分絶対値演算器124-1〜124-Nにおける差分絶対値の演算、複数の加算器125-1〜125-Nにおける足し込みの演算、半導体メモリ126の複数の記憶領域126-1〜126-Nへの足し込みデータの書き戻しを、ブロック内画素分だけ行い、半導体メモリ126の複数の記憶領域126-1〜126-Nに、各参照ブロックに対する探索範囲に存在する複数の候補ブロックのそれぞれに対応した相関値が得られるように制御する。
【0034】
なお、入力端子122に入力される画像データDiは各ラインの画素データが連続したものとなっている。そのため、演算器124-1〜124-Nに入力される参照ブロックの画素データDrは、参照ブロック毎に連続したものではなく、複数の参照ブロックの画素データが所定数ずつ連続したものとなっている。例えば、参照ブロックが、図3Bに示すようにP画素×Qラインで構成される場合には、あるラインの画素データは、P画素毎に異なった参照ブロックを構成している。また、ある参照ブロックに着目すると、当該参照ブロックの画素データは、Qラインの画素データが入力されてはじめて、全て入力されることとなる。
【0035】
このように、演算器124-1〜124-Nに入力される参照ブロックの画素データDrは複数の参照ブロックの画素データが所定数ずつ連続したものとなっていることから、上述した複数の差分絶対値演算器124-1〜124-Nにおける差分絶対値の演算、複数の加算器125-1〜125-Nにおける足し込みの演算、半導体メモリ126の複数の記憶領域126-1〜126-Nへの足し込みデータの書き戻しは、複数の参照ブロックに対応して、時分割的に行われる。そして、Qラインの画素データの入力毎に、新たな複数の参照ブロックの処理に移っていく。
【0036】
また、動きベクトル検出回路111は、参照ブロック毎に、半導体メモリ126の複数の記憶領域126-1〜126-Nに得られた、参照ブロックに対する探索範囲に存在する複数の候補ブロックのそれぞれに対応した相関値(差分絶対値和)に基づいて、参照ブロックに対応した動きベクトルMVを検出する相関値テーブル評価器127と、この評価器127で検出された動きベクトルMVを出力する出力端子128とを有している。評価器127では、最小の相関値を発生する候補ブロックの位置を、動きベクトルMVとして検出する。
【0037】
図6に示す動きベクトル検出回路111の動作を説明する。
入力端子122に入力される画像データDiは、参照ブロックの画素データDrとして、複数の差分絶対値演算器124-1〜124-Nに共通に入力される。また、入力端子122に入力される画像データDiはフレームメモリ123に供給され、探索フレームの画像データとして蓄積される。
【0038】
また、フレームメモリ123から当該参照ブロックに対する探索範囲に存在する複数の候補ブロックの画素データDc-1〜Dc-Nが複数の差分絶対値演算器124-1〜124-Nにそれぞれ入力される。この候補ブロックの画素データDc-1〜Dc-Nは、それぞれ参照ブロックの画素データDrに対応した画素位置のものとされる。演算器124-1〜124-Nでは、画素データDrと画素データDc-1〜Dc-Nとの差分絶対値がそれぞれ演算される。
【0039】
また、複数の演算器124-1〜124-Nで演算されて得られた差分絶対値はそれぞれ複数の加算器125-1〜125-Nに入力される。また、この複数の加算器125-1〜125-Nには、半導体メモリ126の複数の記憶領域126-1〜126-Nに記憶されていた記憶データがそれぞれ入力される。後述するように、複数の記憶領域126-1〜126-Nのそれぞれは複数の参照ブロック分の記憶部からなっている。上述したように複数の加算器125-1〜125-Nに入力される記憶データは、画素データDrが含まれる参照ブロックに対応した記憶部より読み出される。
【0040】
複数の加算器125-1〜125-Nでは、それぞれ記憶データに差分絶対値が足し込まれる。そして、このように複数の加算器125-1〜125-Nで得られた足し込みデータのそれぞれは、半導体メモリ126の複数の記憶領域126-1〜126-Nに記憶データとして書き戻される。この場合、画素データDrが含まれる参照ブロックに対応した記憶部に書き戻される。
【0041】
上述した複数の差分絶対値演算器124-1〜124-Nにおける差分絶対値の演算、複数の加算器125-1〜125-Nにおける足し込みの演算、半導体メモリ126の複数の記憶領域126-1〜126-Nへの足し込みデータの書き戻しは、参照フレームの各参照ブロックについて、ブロック内画素分だけ行われる。これにより、半導体メモリ126の複数の記憶領域126-1〜126-Nに、各参照ブロックについて、参照ブロックに対する探索範囲に存在する複数の候補ブロックのそれぞれに対応した相関値(差分絶対値和)が得られる。相関値テーブル評価器127は、半導体メモリ126の複数の記憶領域126-1〜126-Nに得られた、各参照ブロックに対する探索範囲に存在する複数の候補ブロックのそれぞれに対応した相関値は、順次読み出されて相関値テーブル評価器127に供給される。評価器127では、各参照ブロックについて、最小の相関値を発生する候補ブロックの位置が、動きベクトルMVとして検出される。このように、評価器127で検出された各参照ブロックにおける動きベクトルMVは順次出力端子128に出力される。
【0042】
なお、本実施の形態において、複数の加算器125-1〜125-Nと半導体メモリ126は一体化されており、複数の加算器125-1〜125-Nを構成するそれぞれのビット単位の複数の加算部は、半導体メモリ126のカラムのピッチに揃えて配されている。
【0043】
図8は、加算器125-1およびそれに対応した半導体メモリ126の記憶領域126-1の部分の詳細構成を示したものである。なお、説明は省略するが、加算器125-2〜125-Nおよびそれに対応した半導体メモリ126の記憶領域126-2〜126-Nの部分についても同様に構成されている。
【0044】
図8において、記憶領域126-1には、カラム方向にn個、ロウ方向にX+1個のメモリセル(Memory Cell)130がマトリックス状に配されている。この場合、カラム方向に延びる各行のn個のメモリセル130によって、それぞれ1参照ブロック分の記憶部が構成されている。
【0045】
図9は、メモリセル130の構成例を示している。このメモリセル130は、書き込みおよび読み出し用の第1のポートと読み出し専用の第2のポートとを有する2ポート構成のものである。
【0046】
負荷素子である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の各ゲート入力となっている。
【0047】
CMOSインバータ11の記憶ノードN1は、ゲートが端子13に接続されたアクセストランジスタQ5を介して端子14に接続される。一方、CMOSインバータ12の記憶ノードN2は、ゲートが端子13に接続されたアクセストランジスタQ6を介して端子15に接続される。端子13にはワード線WLが接続され、端子14にはビット線BLが接続され、端子15にはビット線/BL(/BLはBLバーを表している)が接続される。
【0048】
また、N型MOSトランジスタQ7,Q8が直列に接続され、その一端は接地され、その他端は端子16に接続される。そして、トランジスタQ7のゲートは記憶ノードN1に接続され、トランジスタQ8のゲートは端子17に接続される。端子16には読み出し専用ビット線BRLが接続され、端子17には読み出し専用ワード線WRLが接続される。
【0049】
このようなメモリセル130において、一対のCMOSインバータ11,12で構成されるメモリセル部に“1”または“0”のデータが記憶される。そして、このメモリセル部とビット線BL,/BLとの間で、アクセストランジスタQ5,Q6を介して、読み出しおよび書き込みのデータ転送が行われる。また、メモリセル部と読み出し専用ビット線BRLとの間で、アクセストランジスタQ8を介して読み出しのデータ転送が行われる。
【0050】
なお、図9に示すメモリセル130の構成例は、SRAM(Static Random Access Memory)セルをベースとしたものであるが、他のメモリセル、例えばDRAM(Dynamic Random Access Memory)、FeRAM(Ferro-electric Random Access Memory)、MRAM(Magnetic Random Access Memory)等におけるメモリセルをベースにして構成してもよい。
【0051】
図8に戻って、カラム方向に並ぶ各行のメモリセル130に沿って、ワード線WL0〜WLX、および読み出し専用ワード線WRL0〜WRLXが配されている。上述したように、ワード線WL0〜WLXはメモリセル130の端子13に接続され、読み出し専用ワード線WRL0〜WRLXはメモリセル130の端子17に接続される。
【0052】
また、ロウ方向に並ぶ各列のメモリセル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に接続される。
【0053】
なお、この読み出し専用ビット線BRL0〜BRLn-1による読み出しモードに入る前には、ビット線BRL0〜BRLn-1をプリチャージすることが必要となる。そのために、ビット線BRL0はP型MOSトランジスタQ41を介して電源に接続される。そして、このトランジスタQ41のゲートには、プリチャージ制御信号/φRPC(/φRPCはφRPCバーを表しており、プリチャージ制御信号φRPCが反転されたものである)が入力される。ビット線BRL1〜BRLn-1に関しても同様に構成されている。
【0054】
また、メモリ領域126-1のロウ方向に並ぶ各列のメモリセル130にそれぞれ対応して、センスアンプSA0〜SAn-1が配されている。各センスアンプSA0〜SAn-1は、それぞれビット線BL0〜BLn-1,/BL0〜/BLn-1に接続されている。これにより、記憶領域126-1のロウ方向に並ぶ各列のメモリセル130から、ビット線対BL0,/BL0〜BLn-1,/BLn-1およびセンスアンプSA0〜SAn-1を介して記憶データMD0〜MDn-1の読み出しが行われる。
【0055】
ここで、センスアンプ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が反転されたものである)が入力される。
【0056】
また、トランジスタQ22のドレインはP型MOSトランジスタQ26,Q27の並列回路を介して電源に接続され、トランジスタQ24のドレインはP型MOSトランジスタQ28,Q29の並列回路を介して電源に接続される。そして、トランジスタQ22のドレインはトランジスタQ29のゲートに接続され、トランジスタQ24のドレインはトランジスタQ27のゲートに接続される。トランジスタQ26,Q28のゲートには、イコライズ制御信号/φEQが入力される。
【0057】
なお、読み出しモードに入る前にはビット線対BL0,/BL0をイコライズ(プリチャージ)することが必要となる。そのために、ビット線BL0はP型MOSトランジスタQ31を介して電源に接続され、ビット線/BL0はP型MOSトランジスタQ32を介して電源に接続され、ビット線BL0,/BL0はP型MOSトランジスタQ33を介して接続される。そして、トランジスタQ31〜Q33のゲートには、イコライズ制御信号/φEQが入力される。
センスアンプSA2〜SAn-1の部分の構成も、上述したセンスアンプSA0の部分の構成と同様とされる。
【0058】
また、上述したように、カラム方向に延びる各行のn個のメモリセル130によって、それぞれ1つの参照ブロックの記憶部が構成されている。所定の記憶部にある参照ブロックの足し込みデータを順次書き込むことを開始する前に、この所定の記憶部を構成するメモリセル130の記憶データをクリアすることが必要となる。そのために、ビット線対BL0,/BL0〜BLn-1,/BLn-1のそれぞれに対応して、“0”のデータを生成し、このデータをメモリセル130に書き込みデータとして供給する構成を備えている。
【0059】
すなわち、ビット線BL0はN型MOSトランジスタQ51を介して接地される。そして、このトランジスタQ51のゲートには、クリア制御信号φCLRが入力される。ビット線対BL1,/BL1〜BLn-1,/BLn-1の部分に関しても同様に構成されている。
【0060】
また、加算器125-1はnビットのそれぞれのビットの加算を行うためのn個の加算部1400〜140n-1からなっており、これらn個の加算部1400〜140n-1はメモリ領域126-1のカラムのピッチに揃えて配されている。
【0061】
加算部1400〜1407のそれぞれのA側の入力端子には、差分絶対値演算器124-1からの8ビットの差分絶対値のビットデータD0〜D7が入力される。また、加算部1408〜140n-1のそれぞれのA側の入力端子は接地され、“0”が入力された状態とされる。一方、加算部1400〜140n-1のそれぞれのB側の入力端子には、これら加算部1400〜140n-1のそれぞれに対応して記憶領域126-1のロウ方向に並ぶメモリセル130から、ビット線対BL0,/BL0〜BLn-1,/BLn-1およびセンスアンプSA0〜SAn-1を介して読み出された記憶データMD0〜MDn-1がそれぞれ入力される。
【0062】
加算部1400の非反転出力端子Sは、N型MOSトランジスタQ11のゲートに接続されている。そして、このトランジスタQ11のドレインは、加算部1400に対応してロウ方向に並ぶメモリセル130に接続されているビット線/BL0に接続される。一方、この加算部1400の反転出力端子/S(/SはSバーを表している)は、N型MOSトランジスタQ12のゲートに接続される。そして、このトランジスタQ12のドレインは、加算部1400に対応してロウ方向に並ぶメモリセル130に接続されているビット線BL0に接続される。
【0063】
トランジスタQ11,Q12の互いのソースは接続され、その接続点はN型MOSトランジスタQ13,Q14の直列回路を介して接地される。そして、トランジスタQ14のゲートには書き込み制御信号φWが入力され、トランジスタQ13のゲートには加算部140n-1のキャリ出力端子COUTに得られるMSB(Most Significant Bit)のキャリ出力CMSBがインバータ141を介して入力される。
加算部1401〜140n-1の出力端子S,/S側の構成も、上述した加算部1400の出力端子S,/S側の構成と同様とされる。
【0064】
また、加算部1400のキャリ入力端子CINは接地され、“0”が入力された状態とされる。また、加算部1400〜140n-2のキャリ出力端子COUTは、それぞれ加算部1401〜140n-1に接続されている。これにより、加算部1400〜140n-1でnビット加算器が構成される。
【0065】
また、ビット線/BL0はN型MOSトランジスタQ61,Q62を介して接地される。そして、トランジスタQ61のゲートにはクリア制御信号/φCLR(/φC LRはφCLRバーを表しており、クリア制御信号φCLRが反転されたものである)が入力され、トランジスタ62のゲートには加算部140n-1のキャリ出力端子COUTに得られるMSBのキャリ出力CMSBが入力される。
【0066】
図8に示す加算器125-1および記憶領域126-1の部分の動作を説明する。
まず、カラム方向に延びる各行のn個のメモリセル130によってそれぞれ1つの参照ブロックの記憶部が構成されているが、所定の記憶部を構成するメモリセル130の記憶データをクリアする動作について説明する。
【0067】
所定の記憶部を構成するメモリセル130の記憶データをクリアする場合、書き込み制御信号φWおよびクリア制御信号φCLRはアクティブ、つまり“1”とされ、読み出し制御信号φRおよびイコライズ制御信号φEQはインアクティブ、つまり“0”とされ、さらにワード線WL0〜WLXのうち、所定の記憶部に対応するワード線が活性化される。
【0068】
この場合、クリア制御信号φCLRがアクティブとされてトランジスタQ51がオンとなる。そのため、“0”のデータが生成され、このデータがビット線BL0〜BLn-1に出力される。したがって、所定の記憶部に対応するワード線を活性化することで、当該所定の記憶部を構成するn個のメモリセル130には“0”のデータが書き込まれ、記憶データのクリアが行われる。
【0069】
次に、所定の記憶部に記憶されている記憶データMD0〜MDn-1に、8ビットの差分絶対値D0〜D7を、加算器125-1(加算部1401〜140n-1)で足し込み、そして加算器125-1で得られた足し込みデータAD0〜ADn-1を、当該所定の記憶部に書き戻す動作について説明する。
【0070】
所定の記憶部に記憶されている記憶データMD0〜MDn-1に、8ビットの差分絶対値D0〜D7を足し込む場合、最初に、イコライズ制御信号φEQはアクティブ、つまり“1”とされ、書き込み制御信号φW、読み出し制御信号φRおよびクリア制御信号φCLRはインアクティブ、つまり“0”とされ、ビット線対BL0,/BL0〜BLn-1,/BLn-1のイコライズ(プリチャージ)が行われる。
【0071】
この場合、ビット線対BL0,/BL0に関しては、イコライズ制御信号φEQがアクティブとされてトランジスタQ31〜Q33の全てがオンとなり、ビット線BL0およびビット線/BL0に電源の電位が印加され、これらビット線BL0およびビット線/BL0は同電位となる。他のビット線対BL1,/BL1〜BLn-1,/BLn-1に関しても同様である。
【0072】
このようにビット線対BL0,/BL0〜BLn-1,/BLn-1のイコライズが行われた状態で、読み出し制御信号φRはアクティブ、つまり“1”とされ、書き込み制御信号φW、イコライズ制御信号φEQおよびクリア制御信号φCLRはインアクティブ、つまり“0”とされ、さらにワード線WL0〜WLXのうち、所定の記憶部に対応するワード線が活性化される。
【0073】
これにより、所定の記憶部を構成するn個のメモリセル130の記憶データMD0〜MDn-1が、それぞれビット線対BL0,/BL0〜BLn-1,/BLn-1およびセンスアンプSA0〜SAn-1を介して読み出され、加算部1400〜140n-1のB側の入力端子にそれぞれ入力される。したがって、所定の記憶部に記憶されている記憶データMD0〜MDn-1に、8ビットの差分絶対値D0〜D7が足し込まれる。
【0074】
そして、加算部1400〜140n-1における加算出力、つまり足し込みデータAD0〜ADn-1が有効になったところで、書き込み制御信号φWはアクティブ、つまり“1”とされ、読み出し制御信号φR、イコライズ制御信号φEQおよびクリア制御信号φCLRはインアクティブ、つまり“0”とされ、さらにワード線WL0〜WLXのうち、所定の記憶部に対応するワード線が活性化される。
【0075】
この場合、加算部1400の部分に関して、足し込みデータS0が“1”である場合には、トランジスタQ11はオン、トランジスタQ12はオフとなり、ビット線/BL0に“0”が出力されることから、所定の記憶部を構成するn個のメモリセル130のうち、当該加算部1400に対応するメモリセル130には、“1”のデータが記憶される。一方、加算部1400の部分に関して、足し込みデータS0が“0”である場合には、トランジスタQ11はオフ、トランジスタQ12はオンとなり、ビット線BL0に“0”が出力されることから、所定の記憶部を構成するn個のメモリセル130のうち、当該加算部1400に対応するメモリセル130には、“0”のデータが記憶される。
【0076】
他の加算部1401〜140n-1の部分に関しても同様である。これにより、加算器125-1で得られた足し込みデータAD0〜ADn-1は、所定の記憶部を構成するn個のメモリセル130に書き戻される。
【0077】
なお、足し込みの動作において、オーバフローとなる場合には、加算部140n-1のキャリ出力端子COUTに得られるMSBのキャリ出力CMSBが“1”となるため、トランジスタQ13はオフとなり、足し込みデータAD0〜ADn-1が、所定の記憶部を構成するn個のメモリセル130に書き込まれることはない。
【0078】
その代わり、この場合、トランジスタQ61がオンとなる他に、トランジスタQ62もオンとなるので、ビット線/BL0〜/BLn-1にそれぞれ“0”の信号が出力される。したがって、所定の記憶部を構成するn個のメモリセル130のそれぞれに“1”のデータが書き込まれる。つまり、この所定の記憶部には最大値が記憶される。
【0079】
次に、所定の記憶部に記憶された、ある参照ブロックに対応した最終的な足し込みデータ、つまり相関値(差分絶対値和)を、読み出す場合の動作を説明する。
最初に、プリチャージ制御信号/φRPCがアクティブ、つまり“1”とされ、読み出し専用ビット線BRL0〜BRLn-1のプリチャージが行われる。この場合、トランジスタQ41はオンとなり、読み出し専用ビット線BRL0〜BRLn-1のそれぞれに電源の電位が印加される。
【0080】
このように読み出し専用ビット線BRL0〜BRLn-1のプリチャージが行われた状態で、読み出し専用ワード線WRL0〜WRLXのうち、所定の記憶部に対応する読み出し専用ワード線が活性化される。これにより、所定の記憶部を構成するn個のメモリセル130の記憶データΣ0〜Σn-1が、それぞれ読み出し専用ビット線BRL0〜BRLn-1に得られる。ここで、記憶データΣ0〜Σn-1は、nビットの相関値(差分絶対値和)を構成している。
【0081】
以上説明したように、本実施の形態においては、加算器125-1〜125-Nと相関値テーブル生成用の半導体メモリ126とを用いて差分絶対値を累積していき、この半導体メモリ126に、参照ブロックに対する探索範囲に存在する複数の候補ブロックのそれぞれに対応した相関値(差分絶対値和)を得るようにしたものであり、従来のように記憶素子としてレジスタを用いるものに比べて、占有面積を小さくでき、半導体チップの大型化を防止することができる。
【0082】
また、加算器125-1〜125-Nおよび相関値テーブル生成用の半導体メモリ126とを一体化し、加算器125-1〜125-Nをそれぞれ構成するビット単位の複数の加算部1400〜140n-1が半導体メモリ126のカラムのピッチに揃えて配されているので(図8参照)、加算器125-1〜125-Nから半導体メモリ126への足し込みデータAD0〜ADn-1の供給および半導体メモリ126から加算器125-1〜125-Nへの記憶データMD0〜MDn-1の供給を効率的に行うことができる。
【0083】
また、半導体メモリ126が、上述の複数の加算部1400〜140n-1に関連して設けられた書き込みおよび読み出し用の第1のポートと、読み出し専用の第2のポートとを有するものであり(図8参照)、半導体メモリ126からのある参照ブロックに対応する相関値Σ0〜Σn-1の読み出しを、足し込みとは別途独立して行うことができる。
【0084】
また、半導体メモリ126の所定の記憶部を構成するメモリセル130の記憶データをクリアする際に、トランジスタQ51をオンとして、クリアするための“0”データを生成し、このデータをメモリセル130に書き込みデータとして供給するものであり、外部からクリアするためのデータを入力することなく、半導体メモリ126を容易にクリアすることができる。
【0085】
また、加算器125-1〜125-Nをそれぞれ構成する複数の加算部1400〜140n-1による演算結果がオーバフローとなる場合、複数の加算部1400〜140n-1に対応した半導体メモリ126の所定の記憶部に最大値を記憶(セット)するものであり、この所定の記憶部に誤った小さな値が相関値として記憶され、動きベクトルの検出誤りが生じることを防止できる。
【0086】
なお、上述実施の形態において、半導体メモリ126の記憶領域126-1〜126-Nでは、ビット線BL0〜BLn-1をトランジスタQ51を介して接地し、このトランジスタQ51のゲートにクリア制御信号/φCLRを入力する構成とし、クリア信号φCLRをアクティブとしたとき所定の記憶部を構成するn個のメモリセル130に“0”のデータが書き込まれてクリアされるものを示した(図8参照)。
【0087】
ここで、図8に破線図示するように、ビット線/BL0〜/BLn-1をトランジスタQ52を介して接地し、このトランジスタQ52のゲートにクリア制御信号/φCLRを入力する構成とした場合、クリア信号φCLRをアクティブとしたとき、トランジスタQ52で“1”のデータが生成され、所定の記憶部を構成するn個のメモリセル130に“1”のデータが書き込まれる。
【0088】
したがって、ビット線対BL0,/BL0〜BLn-1,/BLn-1のそれぞれに対応してトランジスタQ51,Q52を設けておき、それらのいずれかを選択的にビット線に接続し、クリア信号φCLRをアクティブとしたとき所定の記憶部を構成するn個のメモリセル130に、所定のデータをプリセットするようにしてもよい。このプリセットデータを工夫することで、例えば平坦な絵柄の部分においては(0,0)等の特定の動きベクトルが検出されやすくできる。このプリセットの設定は、半導体装置の設計時に予め決めておけばよく、従ってコンタクトレイヤのプログラムなどによって設定することが想定される。
【0089】
また、上述実施の形態においては、加算器125-1〜125-Nおよび相関値テーブル生成用の半導体メモリ126とを一体化したものであるが、さらに差分絶対値演算器124-1〜124-Nや相関値テーブル評価器127をも一体化するようにしてもよい。
【0090】
また、上述実施の形態においては、メモリセル130が2ポート構成のものであったが(図9参照)、メモリセルが2ポート構成でなくてもよく、半導体メモリ126全体として2ポート構成であってもよい。さらには、半導体メモリ126として2ポート構成でなくとも、例えば映像信号におけるブランキング期間に相関値(テーブルデータ)の読み出しを行ったり、同一機能ブロックを複数個有してフィールドまたはフレーム間でインターリーブさせて用いるなど、足し込みと相関値の読み出しとを同一ポートにおいて異なる期間に行ってもよい。
【0091】
また、上述実施の形態においては、加算器125-1〜125-Nおよび半導体メモリ126を用いた足し込みを、動きベクトル検索における差分絶対値の足し込みに適用したものであるが、他の信号処理における同様の足し込みにも適用することができる。
【0092】
また、上述実施の形態においては、加算器125-1〜125-Nおよび相関値テーブル生成用の半導体メモリ126とを一体化したものであるが、減算器、乗算器、除算器などのその他の演算器と半導体メモリとを一体化したものも同様に構成でき、演算器と半導体メモリとの間のデータのやり取りを効率よく行うことができる。
【0093】
また、上述実施の形態においては、動きベクトル検出回路111を動き補償予測符号化装置100に適用したものを示したが、動きベクトルを使用するその他の装置にも同様に適用できることは勿論である。
【0094】
また、上述実施の形態においては、ブロックマッチング法によって動きベクトルを検出するものを示したが、この発明はブロックマッチング法に限定されるものではなく、代表点ブロックマッチング法など他の画素値のマッチングをベースとする方法にも適用可能である。
【0095】
【発明の効果】
この発明によれば、複数の加算器と複数の記憶領域とを有する相関値テーブル生成用の半導体メモリを用いて差分絶対値を累積していき、この半導体メモリの記憶領域に、参照ブロックに対応した探索範囲の複数の候補ブロックのそれぞれに対する相関値(差分絶対値和)を得るものであり、従来のように記憶素子としてレジスタを用いるものに比べて、占有面積を小さくでき、半導体チップの大型化を防止することができる。
【0096】
また、この発明によれば、少なくとも複数の加算器および半導体メモリが一体化され、加算器を構成するビット単位の複数の加算部が半導体メモリを構成するマトリックス状に配されたメモリセルのカラムのピッチに揃えて配されるものであり、加算器から半導体メモリへの足し込みデータの供給および半導体メモリから加算器への記憶データの供給を効率的に行うことができる。
【0097】
また、この発明によれば、半導体メモリが、上述の複数の加算部に関連して設けられた書き込みおよび読み出し用の第1のポートと読み出し専用の第2のポートとを有するものであり、半導体メモリの記憶データ、例えば相関値の読み出しを、足し込みとは別途独立して行うことができる。
【0098】
また、この発明によれば、半導体メモリをクリアまたはプリセットするためのデータを生成し、このデータによって半導体メモリをクリアまたはプリセットすることで、外部からクリアまたはプリセットするためのデータを入力することなく、半導体メモリを容易にクリアまたはプリセットすることができ、またプリセットするためのデータを工夫することで、例えば平坦な絵柄の部分においては(0,0)等の特定の動きベクトルが検出されやすくできる。
【0099】
また、この発明によれば、加算器を構成する複数の加算部による演算結果がオーバフローとなる場合、複数の加算部に対応した半導体メモリの所定領域に最大値をセットするものであり、この半導体メモリの所定領域に誤った小さな値が相関値として記憶される、動きベクトルの検出誤りを生じることを防止できる。
【図面の簡単な説明】
【図1】実施の形態としての動き補償予測符号化装置の構成を示すブロック図である。
【図2】動き検出のためのブロックマッチング法を説明するための図である。
【図3】動き検出のためのブロックマッチング法を説明するための図である。
【図4】動き検出のためのブロックマッチング法を説明するための図である。
【図5】動き検出のためのブロックマッチング法を説明するための図である。
【図6】動きベクトル検出回路の構成を示すブロック図である。
【図7】1個の参照画素とN個の探索範囲画素との1対Nのマッチング演算を説明するための図である。
【図8】半導体メモリと加算器とを一体化した構成を示す図である。
【図9】メモリセルの構成を示す図である。
【符号の説明】
100・・・動き補償予測符号化装置、101・・・入力端子、102・・・減算器、103・・・DCT回路、104・・・量子化回路、105・・・出力端子、106・・・逆量子化回路、107・・・逆DCT回路、108・・・加算器、109・・・フレームメモリ、110・・・動き補償回路、111・・・動きベクトル検出回路、121・・・コントローラ、122・・・入力端子、123・・・フレームメモリ、124-1〜124-N・・・差分絶対値演算器、125-1〜125-N・・・加算器、126・・・相関値テーブル用の半導体メモリ、126-1〜126-N・・・記憶領域、127・・・相関値テーブル評価器、128・・・出力端子、130・・・メモリセル、1400〜140n-1・・・加算部
[0001]
BACKGROUND OF THE INVENTION
  The present invention relates to a motion vector detection device.andMotion compensated predictive coding deviceIn placeRelated. Specifically, the absolute value of the difference is accumulated using an adder and a semiconductor memory for generating a correlation value table, and the correlation corresponding to each of a plurality of candidate blocks existing in the search range for the reference block is stored in this semiconductor memory. The present invention relates to a motion vector detection device and a motion compensation predictive coding device that can prevent an increase in size of a semiconductor chip by obtaining a value.
[0002]
[Prior art]
In image processing, motion vector detection is one of important elements, and a typical method is a block matching method. This is to evaluate the correlation between a certain pixel block (reference block) constituting a part of a certain frame and the same shape pixel block (candidate block) at various positions in a frame at different times. A relative positional shift with the highest candidate block is regarded as a motion vector in the reference block.
[0003]
Here, an area that assumes a candidate block is a search range. For the evaluation of the correlation, the sum total of each pixel in the block of the absolute difference value of the pixel data between the corresponding pixels of the reference block and the candidate block, that is, the sum of absolute differences is often used. A sum of absolute differences (correlation values) corresponding to the number of pixels in the search range is obtained for one reference block, which is a correlation value table. In the correlation value table, the place where the sum of absolute differences is smallest, that is, where the correlation is high is regarded as a motion vector in units of pixels. In practice, this processing has a very heavy calculation load, and various measures are taken with respect to the shape and size of the block, the pixel position used for the calculation, and the like.
[0004]
[Problems to be solved by the invention]
In conventional block matching, a PE (Processing Element) in which a difference absolute value arithmetic unit and a plurality of registers as storage elements are combined, or an adder is further combined is often used. By flowing data between PEs arranged in an array in parallel and in a pipeline, a plurality of difference absolute value sums are calculated in parallel, or after obtaining the difference absolute values, the sum is summed by an adder, and the difference absolute value sum ( A collection of correlation values), that is, a correlation value table is generated.
[0005]
In this case, since a register is used as a storage element, the number of constituent elements is large and the occupation area is widened. Further, since each PE has a plurality of (for example, two to three) registers, the occupation area is widened as a whole PE. . Therefore, there is a problem that the semiconductor chip is increased in size.
Therefore, an object of the present invention is to provide a motion vector detection device and the like that can prevent an increase in the size of a semiconductor chip.
[0006]
[Means for Solving the Problems]
  The motion vector detection device according to the present invention is a motion vector detection device that detects a motion vector from a reference frame and a search frame that move back and forth in time, and commonly inputs pixel data of a reference block extracted from the reference frame. In addition, pixel data of a plurality of candidate blocks existing in the search range for the reference block, which are extracted from the search frame, are respectively input, and an absolute difference value between the pixel data of the reference block and the pixel data of the candidate block is calculated. A plurality of difference absolute value calculators, a semiconductor memory for generating a correlation value table having a plurality of adders and a plurality of storage areas, and a difference absolute value obtained by calculating with the plurality of difference absolute value calculators. Each of the storage data stored in a plurality of storage areas of the semiconductor memory, Adding a plurality of adders and repeatedly storing the addition data obtained by the plurality of adders in a plurality of storage areas of the semiconductor memory a predetermined number of times, A controller for controlling a region to obtain a correlation value corresponding to each of the plurality of candidate blocks, and a correlation value corresponding to each of the plurality of candidate blocks obtained in the plurality of storage regions of the semiconductor memory. And a correlation value table evaluator for detecting a motion vector corresponding to the reference block, and the adder reads a value stored in the storage area and calculates the difference absolute value calculator to the read value. Add the absolute value of the difference obtained byIncludedWrite back the stored data to the above storage areaHowever, when the result of the addition operation overflows, the maximum value is set in the storage area of the semiconductor memory corresponding to the adder.
[0007]
  In the present invention, the plurality of difference absolute value calculators calculate the difference absolute values of the pixel data of the plurality of candidate blocks and the pixel data of the reference block. The plurality of adders read stored data stored in the plurality of storage areas of the semiconductor memory for generating the correlation value table. Thereafter, the plurality of adders add each of the difference absolute values obtained by the calculation by the plurality of difference absolute value calculators to the read storage data. Then, each of the addition data obtained by the plurality of adders is stored in a plurality of storage areas of the semiconductor memory.Here, the adder sets a maximum value in the storage area of the semiconductor memory corresponding to the adder when the result of the addition operation overflows. Thereby, it is possible to prevent a motion vector detection error in which an erroneously small value is stored as a correlation value in the storage area of the semiconductor memory.
[0008]
The above-described difference absolute value calculation, addition calculation, and storage operation are repeated a predetermined number of times, for example, in the case of the block matching method, a number of times equal to the number of pixel data constituting the reference block. Correlation values (sum of absolute differences) corresponding to each of a plurality of candidate blocks existing in the search range for the reference block are obtained. Then, the correlation value table evaluator detects a motion vector corresponding to the reference block based on the correlation value corresponding to each of the plurality of candidate blocks obtained in the semiconductor memory in this way.
[0009]
Thus, by using a semiconductor memory that is smaller and denser than the register as the memory element, the occupied area can be reduced, and the increase in size of the semiconductor chip can be prevented.
[0010]
  It should be noted that at least a plurality of adders and semiconductor memories are integrated, and a plurality of adders in bit units constituting the adder are provided.,Semiconductor memoryMemory cells arranged in a matrixThus, the addition data is supplied from the adder to the semiconductor memory and the storage data is supplied from the semiconductor memory to the adder efficiently.
[0011]
Further, since the semiconductor memory has a first port for writing and reading and a second port dedicated for reading provided in association with the above-described plurality of addition units, data stored in the semiconductor memory, for example, correlation Reading of values can be performed independently of adding.
[0012]
In addition, by generating data for clearing or presetting the semiconductor memory and clearing or presetting the semiconductor memory with this data, the semiconductor memory can be easily cleared without inputting data for clearing or presetting from the outside. Or, it can be preset, and by devising data for presetting, for example, a specific motion vector such as (0, 0) can be easily detected in a flat picture portion.
[0013]
In addition, when the calculation result by a plurality of adders constituting the adder overflows, the maximum value is set in a predetermined area of the semiconductor memory corresponding to the plurality of adders, thereby erroneously setting the predetermined area of the semiconductor memory. It is possible to prevent a small value from being stored as a correlation value.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 shows a configuration of a motion compensated prediction encoding apparatus 100 as an embodiment.
The encoding apparatus 100 has an input terminal 101 for inputting image data (frame data constituting a moving image) Di, image data Di supplied to the input terminal 101, and prediction supplied from a motion compensation circuit 110 described later. A subtractor 102 that calculates a difference with image data, a DCT circuit 103 that performs DCT (discrete cosine transform) on the difference data obtained by the subtractor 102, and a DCT coefficient obtained by the DCT circuit 103 A quantization circuit 104 that performs quantization and an output terminal 105 that outputs encoded data Do obtained by the quantization circuit 104 are provided.
[0015]
The encoding apparatus 100 also performs an inverse quantization circuit 106 that performs inverse quantization on the encoded data Do obtained by the quantization circuit 104, and performs inverse DCT on the output data of the inverse quantization circuit 106. An inverse DCT circuit 107 that obtains difference data, and an adder 108 that adds the difference data obtained by the inverse DCT circuit 107 and the predicted image data obtained by the motion compensation circuit 110 to restore the original image data; A frame memory 109 for storing the image data restored by the adder 108.
[0016]
Also, the encoding apparatus 100 reads the image data stored in the frame memory 109, performs motion compensation based on a motion vector MV from a motion vector detection circuit 111 described later, and then performs the subtractor 102 and the addition as described above. A motion compensation circuit 110 that supplies the image data 108 as predicted image data, and a motion vector detection circuit 111 that detects the motion vector MV of the image data Di supplied to the input terminal 101 and supplies the motion vector MV to the motion compensation circuit 110. Yes.
[0017]
The operation of the motion compensated predictive coding apparatus 100 shown in FIG. 1 will be described.
Image data Di input to the input terminal 101 is supplied to the subtractor 102 and the motion vector detection circuit 111. The subtractor 102 calculates the difference between the image data Di and the predicted image data supplied from the motion compensation circuit 110.
[0018]
The difference data obtained by the subtracter 102 is supplied to the DCT circuit 103 and subjected to discrete cosine transform. The DCT coefficient obtained by the DCT circuit 103 is supplied to the quantization circuit 104 and quantized. The encoded data Do obtained by the quantization circuit 104 is output to the output terminal 105.
[0019]
Also, the encoded data Do obtained by the quantization circuit 104 is supplied to the inverse quantization circuit 106 and inversely quantized, and the output data of the inverse quantization circuit 106 is further supplied to the inverse DCT circuit 107 to perform inverse DCT. The difference data is restored. The difference data and the prediction data from the motion compensation circuit 110 are added by the adder 108 to restore the original image data, and the restored image data is stored in the frame memory 109.
[0020]
In the motion compensation circuit 110, in a certain frame, image data stored in the frame memory 109 is read in the previous frame, and motion compensation is performed based on the motion vector MV from the motion vector detection circuit 111. Predictive image data is obtained. As described above, the predicted image data is supplied to the subtractor 102 to obtain difference data, and is also supplied to the adder 108 to restore the image data.
[0021]
Next, details of the motion vector detection circuit 111 will be described.
In the motion vector detection circuit 111, a motion vector is detected by a block matching method. As shown in FIG. 2, the motion vector is obtained by moving the candidate block of the search frame within a predetermined search range and detecting the candidate block that most closely matches the reference block of the reference frame. is there.
[0022]
In the block matching method, as shown in FIG. 3A, one image, for example, one frame image of horizontal H pixels and vertical V lines is subdivided into blocks of P pixels × Q lines as shown in FIG. 4B. . In the example of FIG. 3B, P = 5 and Q = 5. c is the central pixel position of the block.
[0023]
4A to 4C show the positional relationship between a reference block having c as the central pixel and a candidate block having c ′ as the center. The reference block having c as the central pixel is a reference block of interest in the reference frame, and the candidate block of the search frame that matches the reference block is located at the position of the block centering on c ′ in the search frame. In the block matching method, a motion vector is detected by finding a candidate block that most closely matches a reference block within a search range.
[0024]
In the case of FIG. 4A, motion vectors of +1 pixel in the horizontal direction and +1 line in the vertical direction, that is, (+1, +1) are detected. In FIG. 4B, a motion vector MV of (+3, +3) is detected, and in FIG. 4C, a motion vector of (+2, −1) is detected. The motion vector is obtained for each reference block of the reference frame.
[0025]
Assuming that the motion vector search range is ± S pixels in the horizontal direction and ± T lines in the vertical direction, the reference block has a center c ′ at a position shifted ± S horizontally and ± T vertically from the center c. Need to be compared to a candidate block with
[0026]
FIG. 5 shows that when the position of the center c of a reference block having a reference frame is R, it is necessary to compare with (2S + 1) × (2T + 1) candidate blocks of the search frame to be compared. That is, all candidate blocks in which c ′ exists at the position of the first grid in FIG. 5 are comparison targets. FIG. 5 shows an example in which S = 4 and T = 3.
[0027]
Detecting the minimum value among evaluation values obtained by comparison within the search range (that is, sum of absolute values of frame differences, sum of squares of frame differences, or sum of absolute values of frame differences, etc.) Thus, a motion vector is detected. The search range in FIG. 5 is an area where the center of the candidate block is located, and the size of the search range including the entire candidate block is (2S + P) × (2T + Q).
[0028]
FIG. 6 shows the configuration of the motion vector detection circuit 111.
The motion vector detection circuit 111 includes a controller 121 that controls the operation of the entire circuit, an input terminal 122 that receives image data Di of a reference frame, and a frame memory 123 that accumulates the image data Di as image data of a search frame. And have. Operations such as writing and reading of the frame memory 123 are controlled by the controller 121.
[0029]
In addition, the motion vector detection circuit 111 includes a plurality of difference absolute value calculators 124.-1~ 124-Nhave. Here, N is the number of a plurality of candidate blocks existing in the search range for one reference pixel in a certain reference block. Multiple computing units 124-1~ 124-NThe pixel data constituting the image data Di inputted to the input terminal 122 is commonly inputted as the pixel data Dr of the reference block, and the pixel data Dc of a plurality of candidate blocks existing in the search range for the reference block.-1~ Dc-NAre inputted, and the absolute difference between the pixel data of the reference block and the pixel data of the candidate block is calculated.
[0030]
In this case, the arithmetic unit 124-1~ 124-NIn FIG. 7, a one-to-N matching operation between one reference pixel and N search range pixels is performed. 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, the hatched positions indicate the positions of N search range pixels with respect to one pixel at the upper left of the reference block.
[0031]
The motion vector detection circuit 111 includes a plurality of adders 125.-1~ 125-NAnd a plurality of storage areas 126-1~ 126-NAnd a semiconductor memory 126 for generating a correlation value table. Multiple adders 125-1~ 125-NIs a plurality of computing units 124.-1~ 124-NThe difference absolute values obtained by the calculation are input, and a plurality of storage areas 126 of the semiconductor memory 126 are input.-1~ 126-NEach of the stored data stored in is input and the absolute difference value is added to the stored data.
[0032]
Thus, the plurality of adders 125-1~ 125-NEach of the addition data obtained in the above is stored in a plurality of storage areas 126 of the semiconductor memory 126.-1~ 126-NIs written back as stored data. The writing and reading operations of the semiconductor memory 126 are controlled by the controller 121.
[0033]
For each reference block of the reference frame, the controller 121 calculates a difference absolute value in the plurality of difference absolute value calculators 124-1 to 124-N, and adds a plurality of adders 125.-1~ 125-NOf addition in the plurality of storage areas 126 of the semiconductor memory 126-1~ 126-NThe addition data is written back to the pixels in the block, and a plurality of storage areas 126 in the semiconductor memory 126 are written.-1~ 126-NIn addition, control is performed so that correlation values corresponding to the plurality of candidate blocks existing in the search range for each reference block are obtained.
[0034]
The image data Di input to the input terminal 122 is a series of pixel data of each line. Therefore, the arithmetic unit 124-1~ 124-NThe pixel data Dr of the reference block input to is not continuous for each reference block, but is a predetermined number of pixel data of a plurality of reference blocks. For example, when the reference block is composed of P pixels × Q lines as shown in FIG. 3B, the pixel data of a certain line constitutes a different reference block for each P pixel. Focusing on a reference block, the pixel data of the reference block are all input only after the pixel data of the Q line is input.
[0035]
Thus, the arithmetic unit 124-1~ 124-NSince the pixel data Dr of the reference block input to the reference block is a predetermined number of pieces of pixel data of the plurality of reference blocks, the plurality of difference absolute value calculators 124 described above.-1~ 124-NOf the absolute difference value at, a plurality of adders 125-1~ 125-NOf addition in the plurality of storage areas 126 of the semiconductor memory 126-1~ 126-NThe addition data is written back in a time-sharing manner corresponding to the plurality of reference blocks. Then, each time the pixel data of the Q line is input, the process proceeds to processing of a plurality of new reference blocks.
[0036]
The motion vector detection circuit 111 also has a plurality of storage areas 126 in the semiconductor memory 126 for each reference block.-1~ 126-NA correlation value table evaluator that detects the motion vector MV corresponding to the reference block based on the correlation value (sum of absolute differences) corresponding to each of the plurality of candidate blocks existing in the search range for the reference block obtained in 127 and an output terminal 128 for outputting the motion vector MV detected by the evaluator 127. The evaluator 127 detects the position of the candidate block that generates the minimum correlation value as the motion vector MV.
[0037]
The operation of the motion vector detection circuit 111 shown in FIG. 6 will be described.
The image data Di input to the input terminal 122 is a plurality of absolute difference calculators 124 as pixel data Dr of the reference block.-1~ 124-NAre input in common. The image data Di input to the input terminal 122 is supplied to the frame memory 123 and stored as image data of the search frame.
[0038]
Also, pixel data Dc of a plurality of candidate blocks existing in the search range for the reference block from the frame memory 123.-1~ Dc-NIs a plurality of absolute difference calculators 124-1~ 124-NRespectively. Pixel data Dc of this candidate block-1~ Dc-NAre pixel positions corresponding to the pixel data Dr of the reference block. Calculator 124-1~ 124-NThen, the pixel data Dr and the pixel data Dc-1~ Dc-NThe difference absolute value is calculated.
[0039]
Also, a plurality of computing units 124-1~ 124-NThe difference absolute value obtained by the calculation in step S1 is a plurality of adders 125.-1~ 125-NIs input. The plurality of adders 125-1~ 125-NIncludes a plurality of storage areas 126 of the semiconductor memory 126.-1~ 126-NThe stored data stored in is input respectively. As will be described later, a plurality of storage areas 126-1~ 126-NEach includes a storage unit for a plurality of reference blocks. As described above, the plurality of adders 125-1~ 125-NThe storage data input to is read from the storage unit corresponding to the reference block including the pixel data Dr.
[0040]
Multiple adders 125-1~ 125-NThen, the absolute difference value is added to each stored data. In this way, the plurality of adders 125-1~ 125-NEach of the addition data obtained in the above is stored in a plurality of storage areas 126 of the semiconductor memory 126.-1~ 126-NIs written back as stored data. In this case, the data is written back to the storage unit corresponding to the reference block including the pixel data Dr.
[0041]
The plurality of difference absolute value calculators 124 described above.-1~ 124-NOf the absolute difference value at, a plurality of adders 125-1~ 125-NOf addition in the plurality of storage areas 126 of the semiconductor memory 126-1~ 126-NThe addition data is written back to each reference block of the reference frame by the number of pixels in the block. Thereby, a plurality of storage areas 126 of the semiconductor memory 126 are obtained.-1~ 126-NFor each reference block, a correlation value (sum of absolute differences) corresponding to each of a plurality of candidate blocks existing in the search range for the reference block is obtained. The correlation value table evaluator 127 includes a plurality of storage areas 126 of the semiconductor memory 126.-1~ 126-NThe correlation values corresponding to each of the plurality of candidate blocks existing in the search range for each reference block are sequentially read out and supplied to the correlation value table evaluator 127. In the evaluator 127, the position of the candidate block that generates the minimum correlation value is detected as the motion vector MV for each reference block. As described above, the motion vector MV in each reference block detected by the evaluator 127 is sequentially output to the output terminal 128.
[0042]
In this embodiment, a plurality of adders 125 are used.-1~ 125-NAnd the semiconductor memory 126 are integrated, and a plurality of adders 125 are integrated.-1~ 125-NThe plurality of adders in units of bits constituting the memory are arranged in alignment with the column pitch of the semiconductor memory 126.
[0043]
FIG. 8 shows the adder 125-1And the storage area 126 of the semiconductor memory 126 corresponding thereto-1The detailed structure of the part is shown. Although not described, the adder 125-2~ 125-NAnd the storage area 126 of the semiconductor memory 126 corresponding thereto-2~ 126-NThis part is similarly configured.
[0044]
In FIG. 8, the storage area 126-1In this, n memory cells 130 in the column direction and X + 1 memory cells 130 in the row direction are arranged in a matrix. In this case, a memory unit for one reference block is configured by n memory cells 130 in each row extending in the column direction.
[0045]
FIG. 9 shows 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 dedicated for reading.
[0046]
A P-type MOS transistor Q1 and an N-type MOS transistor Q3, which are load elements, are connected in series between a power source and a ground to form a CMOS inverter 11, and a P-type MOS transistor Q2 and an N-type MOS transistor, which are load elements, A CMOS inverter 12 is formed by connecting the type MOS transistor Q4 in series between the power source and the ground. The outputs of the CMOS inverters 11 and 12, that is, the potentials of the storage nodes N1 and N2, are the inputs of the other CMOS inverters 12 and 11, that is, the gate inputs of the N-type MOS transistors Q4 and Q3.
[0047]
The storage node N1 of the CMOS inverter 11 is connected to the terminal 14 via an access transistor Q5 whose gate is connected to the terminal 13. On the other hand, the storage node N2 of the CMOS inverter 12 is connected to the terminal 15 via an access transistor Q6 whose gate is connected to the terminal 13. The word line WL is connected to the terminal 13, the bit line BL is connected to the terminal 14, and the bit line / BL (/ BL represents BL bar) is connected to the terminal 15.
[0048]
N-type MOS transistors Q7 and Q8 are connected in series, one end thereof is grounded, and the other end is connected to the terminal 16. The gate of transistor Q7 is connected to storage node N1, and the gate of transistor Q8 is connected to terminal 17. A read-only bit line BRL is connected to the terminal 16, and a read-only word line WRL is connected to the terminal 17.
[0049]
In such a memory cell 130, data “1” or “0” is stored in the memory cell portion formed by the 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 portion and the read-only bit line BRL via the access transistor Q8.
[0050]
The configuration example of the memory cell 130 shown in FIG. 9 is based on an SRAM (Static Random Access Memory) cell, but other memory cells such as a DRAM (Dynamic Random Access Memory), an FeRAM (Ferro-electric), and the like. Random Access Memory (Random Access Memory), MRAM (Magnetic Random Access Memory) or the like may be used as a base.
[0051]
Returning to FIG. 8, along the memory cells 130 in each row aligned in the column direction, the word line WL0~ WLX, And read-only word line WRL0~ WRLXIs arranged. As described above, the word line WL0~ WLXAre connected to the terminal 13 of the memory cell 130 and read-only word line WRL.0~ WRLXIs connected to the terminal 17 of the memory cell 130.
[0052]
In addition, the bit lines BL are arranged along the memory cells 130 in each column aligned in the row direction.0~ BLn-1, / BL0~ / BLn-1, And read-only bit line BRL0~ BRLn-1Is arranged. 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-1Are connected to the terminal 15 of the memory cell 130 and read-only bit line BRL.0~ BRLn-1Is connected to the terminal 16 of the memory cell 130.
[0053]
This read-only bit line BRL0~ BRLn-1Before entering the read mode by the bit line BRL0~ BRLn-1Must be precharged. Therefore, the bit line BRL0Are connected to a power source via a P-type MOS transistor Q41. The gate of the transistor Q41 has a precharge control signal / φRPC(/ ΦRPCIs φRPCRepresents the precharge control signal φRPCIs inverted). Bit line BRL1~ BRLn-1It is configured in the same way.
[0054]
In addition, the memory area 126-1Sense amplifier SA corresponding to each column of memory cells 130 arranged in the row direction.0~ SAn-1Is arranged. Each sense amplifier SA0~ SAn-1Are bit lines BL respectively.0~ BLn-1, / BL0~ / BLn-1It is connected to the. As a result, the storage area 126-1Bit line pair BL from memory cells 130 in each column aligned in the row direction0, / BL0~ BLn-1, / BLn-1And sense amplifier SA0~ SAn-1Storage data MD via0~ MDn-1Is read out.
[0055]
Here, the sense amplifier SA0Details of the configuration of this part will be described.
Bit line BL0Is connected to the gate of the N-type MOS transistor Q22 via the P-type MOS transistor Q21. Also, bit line / BL0Is connected to the gate of the N-type MOS transistor Q24 via the 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 the N-type MOS transistor Q25. The gates of the transistors Q21 and Q23 are connected to the read control signal / φ.R(/ ΦRIs φRRepresents the bar, and the read control signal φRAnd the equalization control signal / φ is applied to the gate of the transistor Q25.EQ(/ ΦEQIs φEQRepresents the equalization control signal φEQIs inverted).
[0056]
The drain of the transistor Q22 is connected to a power supply via a parallel circuit of P-type MOS transistors Q26 and Q27, and the drain of the transistor Q24 is connected to a power supply via a parallel circuit of P-type MOS transistors Q28 and Q29. The drain of transistor Q22 is connected to the gate of transistor Q29, and the drain of transistor Q24 is connected to the gate of transistor Q27. The equalization control signal / φ is applied to the gates of the transistors Q26 and Q28.EQIs entered.
[0057]
Before entering the read mode, the bit line pair BL0, / BL0Must be equalized (precharged). Therefore, the bit line BL0Is connected to the power supply via a P-type MOS transistor Q31, and the bit line / BL0Is connected to the power supply via a P-type MOS transistor Q32 and the bit line BL0, / BL0Are connected via a P-type MOS transistor Q33. The equalization control signal / φ is applied to the gates of the transistors Q31 to Q33.EQIs entered.
Sense amplifier SA2~ SAn-1The configuration of this part is also the above-described sense amplifier SA.0This is the same as the configuration of the part.
[0058]
Further, as described above, each of the n memory cells 130 in each row extending in the column direction forms a storage unit for one reference block. Before starting to sequentially write the addition data of the reference block in the predetermined storage unit, it is necessary to clear the storage data of the memory cell 130 constituting the predetermined storage unit. Therefore, the bit line pair BL0, / BL0~ BLn-1, / BLn-1Corresponding to each of the above, data “0” is generated, and this data is supplied to the memory cell 130 as write data.
[0059]
That is, the bit line BL0Are grounded via an N-type MOS transistor Q51. The clear control signal φ is supplied to the gate of the transistor Q51.CLRIs entered. Bit line pair BL1, / BL1~ BLn-1, / BLn-1This part is also configured in the same manner.
[0060]
Also, adder 125-1Are n adders 140 for adding each bit of n bits.0~ 140n-1These n adders 1400~ 140n-1Is the memory area 126-1It is arranged in line with the pitch of the column.
[0061]
Adder 1400~ 1407The difference absolute value calculator 124 is connected to each A-side input terminal.-18-bit difference absolute value bit data from0~ D7Is entered. Also, the adding unit 1408~ 140n-1Each A side input terminal is grounded, and "0" is input. Meanwhile, the adding unit 1400~ 140n-1These adders 140 are connected to the input terminals on the B side.0~ 140n-1Corresponding to each of the storage areas 126-1From the memory cells 130 arranged in the row direction of the bit line pair BL0, / BL0~ BLn-1, / BLn-1And sense amplifier SA0~ SAn-1Data MD read via0~ MDn-1Are entered respectively.
[0062]
Adder 1400The non-inverting output terminal S is connected to the gate of the N-type MOS transistor Q11. The drain of the transistor Q11 is connected to the adding unit 140.0Corresponding to the bit lines / BL connected to the memory cells 130 arranged in the row direction.0Connected to. On the other hand, the adding unit 1400Inverted output terminal / S (/ S represents S bar) is connected to the gate of N-type MOS transistor Q12. The drain of the transistor Q12 is connected to the adding unit 140.0Corresponding to the bit line BL connected to the memory cells 130 arranged in the row direction.0Connected to.
[0063]
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. A write control signal φ is applied to the gate of the transistor Q14.WIs added to the gate of the transistor Q13.n-1Carry output terminal COUTMSB (Most Significant Bit) carry output CMSBIs input via the inverter 141.
Adder 1401~ 140n-1The configuration of the output terminals S, / S side of the adder 140 is also described above.0This is the same as the configuration on the output terminals S, / S side.
[0064]
Also, the adding unit 1400Carry input terminal CINIs grounded and "0" is input. Also, the adding unit 1400~ 140n-2Carry output terminal COUTRespectively, adder 1401~ 140n-1It is connected to the. Thus, the adding unit 1400~ 140n-1Constitutes an n-bit adder.
[0065]
Also, bit line / BL0Are grounded via N-type MOS transistors Q61 and Q62. The clear control signal / φ is applied to the gate of the transistor Q61.CLR(/ ΦC LRIs φCLRRepresents the bar and the clear control signal φCLRIs added to the gate of the transistor 62.n-1Carry output terminal COUTMSB carry output C obtainedMSBIs entered.
[0066]
Adder 125 shown in FIG.-1And storage area 126-1The operation of this part will be described.
First, the memory portion of one reference block is constituted by n memory cells 130 in each row extending in the column direction. The operation of clearing the memory data of the memory cells 130 constituting the predetermined memory portion will be described. .
[0067]
When clearing the storage data of the memory cell 130 constituting the predetermined storage unit, the write control signal φWAnd clear control signal φCLRIs active, that is, “1”, and the read control signal φRAnd equalize control signal φEQIs inactive, ie, “0”, and the word line WL0~ WLXAmong these, a word line corresponding to a predetermined storage unit is activated.
[0068]
In this case, the clear control signal φCLRIs activated and the transistor Q51 is turned on. Therefore, data “0” is generated, and this data is stored in the bit line BL.0~ BLn-1Is output. Therefore, by activating a word line corresponding to a predetermined storage unit, data “0” is written in n memory cells 130 constituting the predetermined storage unit, and the stored data is cleared. .
[0069]
Next, storage data MD stored in a predetermined storage unit0~ MDn-18 bits of absolute difference D0~ D7, Adder 125-1(Adder 1401~ 140n-1) And adder 125-1Addition data AD obtained in0~ ADn-1The operation of writing back to the predetermined storage unit will be described.
[0070]
Storage data MD stored in a predetermined storage unit0~ MDn-18 bits of absolute difference D0~ D7First, equalize control signal φEQIs active, that is, “1”, and the write control signal φWRead control signal φRAnd clear control signal φCLRIs inactive, ie, “0”, and the bit line pair BL0, / BL0~ BLn-1, / BLn-1Is equalized (precharged).
[0071]
In this case, the bit line pair BL0, / BL0Is equalized control signal φEQIs activated, all of the transistors Q31 to Q33 are turned on, and the bit line BL0And bit line / BL0The power supply potential is applied to the bit lines BL.0And bit line / BL0Are at the same potential. Other bit line pairs BL1, / BL1~ BLn-1, / BLn-1The same applies to.
[0072]
In this way, the bit line pair BL0, / BL0~ BLn-1, / BLn-1In the state where equalization is performed, the read control signal φRIs active, that is, “1”, and the write control signal φW, Equalize control signal φEQAnd clear control signal φCLRIs inactive, ie, “0”, and the word line WL0~ WLXAmong these, a word line corresponding to a predetermined storage unit is activated.
[0073]
Thereby, the storage data MD of the n memory cells 130 constituting the predetermined storage unit0~ MDn-1Are bit line pairs BL0, / BL0~ BLn-1, / BLn-1And sense amplifier SA0~ SAn-1And the adder 1400~ 140n-1Are respectively input to the B side input terminals. Therefore, the stored data MD stored in the predetermined storage unit0~ MDn-18 bits of absolute difference D0~ D7Is added.
[0074]
Then, the adding unit 1400~ 140n-1Addition output at, that is, addition data AD0~ ADn-1When becomes effective, write control signal φWIs active, that is, “1”, and the read control signal φR, Equalize control signal φEQAnd clear control signal φCLRIs inactive, ie, “0”, and the word line WL0~ WLXAmong these, a word line corresponding to a predetermined storage unit is activated.
[0075]
In this case, the adding unit 1400The additional data S for the part0Is "1", the transistor Q11 is on, the transistor Q12 is off, and the bit line / BL0Since “0” is output to the memory cell 130, the adding unit 140 out of the n memory cells 130 constituting the predetermined storage unit.0Data “1” is stored in the memory cell 130 corresponding to. Meanwhile, the adding unit 1400The additional data S for the part0Is "0", the transistor Q11 is off, the transistor Q12 is on, and the bit line BL0Since “0” is output to the memory cell 130, the adding unit 140 out of the n memory cells 130 constituting the predetermined storage unit.0Data “0” is stored in the memory cell 130 corresponding to.
[0076]
Other adder 1401~ 140n-1The same applies to the portion of. Thus, the adder 125-1Addition data AD obtained in0~ ADn-1Is written back to n memory cells 130 constituting a predetermined storage unit.
[0077]
In addition, in the case of overflow in the adding operation, the adding unit 140n-1Carry output terminal COUTMSB carry output C obtainedMSBBecomes “1”, the transistor Q13 is turned off, and the additional data AD0~ ADn-1However, the data is not written into the n memory cells 130 constituting the predetermined storage unit.
[0078]
Instead, in this case, in addition to the transistor Q61 being turned on, the transistor Q62 is also turned on, so that the bit line / BL0~ / BLn-1In this case, a signal of “0” is output. Therefore, data “1” is written in each of the n memory cells 130 constituting the predetermined storage unit. That is, the maximum value is stored in the predetermined storage unit.
[0079]
Next, an operation when reading final addition data corresponding to a certain reference block, that is, a correlation value (difference absolute value sum) stored in a predetermined storage unit will be described.
First, precharge control signal / φRPCIs active, ie, “1”, and the read-only bit line BRL0~ BRLn-1Is precharged. In this case, the transistor Q41 is turned on, and the read-only bit line BRL0~ BRLn-1The potential of the power supply is applied to each of the above.
[0080]
In this way, the read-only bit line BRL0~ BRLn-1Read-only word line WRL in the precharge state0~ WRLXAmong these, the read-only word line corresponding to the predetermined storage unit is activated. As a result, the storage data Σ of the n memory cells 130 constituting the predetermined storage unit0~ Σn-1Are read-only bit lines BRL, respectively.0~ BRLn-1Is obtained. Here, the stored data Σ0~ Σn-1Constitutes an n-bit correlation value (difference absolute value sum).
[0081]
As described above, in the present embodiment, the adder 125-1~ 125-NAnd the semiconductor memory 126 for generating the correlation value table, the difference absolute value is accumulated, and the correlation value (difference) corresponding to each of a plurality of candidate blocks existing in the search range for the reference block is stored in the semiconductor memory 126. (Absolute value sum) is obtained, and the occupied area can be made smaller and the size of the semiconductor chip can be prevented from increasing as compared with a conventional case where a register is used as a memory element.
[0082]
Also, adder 125-1~ 125-NAnd the semiconductor memory 126 for generating the correlation value table are integrated into the adder 125.-1~ 125-NA plurality of addition units 140 in bit units constituting each of0~ 140n-1Are arranged in alignment with the column pitch of the semiconductor memory 126 (see FIG. 8).-1~ 125-NData AD from the memory to the semiconductor memory 1260~ ADn-1And the adder 125 from the semiconductor memory 126-1~ 125-NStorage data MD0~ MDn-1Can be efficiently supplied.
[0083]
Further, the semiconductor memory 126 includes the plurality of addition units 140 described above.0~ 140n-1And a correlation value corresponding to a reference block from the semiconductor memory 126, which has a first port for writing and reading and a second port dedicated for reading (see FIG. 8). Σ0~ Σn-1Can be read independently of the addition.
[0084]
Further, when clearing the stored data of the memory cell 130 that constitutes a predetermined storage portion of the semiconductor memory 126, the transistor Q51 is turned on to generate “0” data for clearing, and this data is stored in the memory cell 130. The semiconductor memory 126 is supplied as write data, and the semiconductor memory 126 can be easily cleared without inputting data for clearing from the outside.
[0085]
Also, adder 125-1~ 125-NA plurality of adders 140 respectively constituting0~ 140n-1When the result of calculation by overflows, the plurality of addition units 1400~ 140n-1The maximum value is stored (set) in a predetermined storage unit of the semiconductor memory 126 corresponding to the above, and an erroneously small value is stored as a correlation value in the predetermined storage unit, resulting in a motion vector detection error. Can be prevented.
[0086]
In the above embodiment, the storage area 126 of the semiconductor memory 126 is used.-1~ 126-NThen, the bit line BL0~ BLn-1Is grounded via the transistor Q51, and the clear control signal / φ is applied to the gate of the transistor Q51.CLRThe clear signal φCLRIn FIG. 8, “0” data is written and cleared in n memory cells 130 constituting a predetermined storage section when the signal is activated (see FIG. 8).
[0087]
Here, as shown by the broken line in FIG.0~ / BLn-1Is grounded via the transistor Q52, and the clear control signal / φ is applied to the gate of the transistor Q52.CLRClear signal φCLRWhen “1” is activated, data “1” is generated by the transistor Q52, and data “1” is written in n memory cells 130 constituting a predetermined memory portion.
[0088]
Therefore, the bit line pair BL0, / BL0~ BLn-1, / BLn-1Transistors Q51 and Q52 are provided corresponding to each of these, and one of them is selectively connected to the bit line, and the clear signal φCLRWhen data is activated, predetermined data may be preset in n memory cells 130 constituting a predetermined storage unit. By devising this preset data, for example, a specific motion vector such as (0, 0) can be easily detected in a flat pattern portion. The preset setting may be determined in advance at the time of designing the semiconductor device. Therefore, it is assumed that the preset is set by a contact layer program or the like.
[0089]
In the above-described embodiment, the adder 125-1~ 125-NAnd a semiconductor memory 126 for generating a correlation value table are integrated.-1~ 124-NAlternatively, the correlation value table evaluator 127 may be integrated.
[0090]
In the above embodiment, the memory cell 130 has a 2-port configuration (see FIG. 9). However, the memory cell may not have a 2-port configuration, and the semiconductor memory 126 as a whole has a 2-port configuration. May be. Further, even if the semiconductor memory 126 does not have a two-port configuration, for example, correlation values (table data) are read during a blanking period in a video signal, or a plurality of identical functional blocks are interleaved between fields or frames. For example, the addition and the reading of the correlation value may be performed in different periods in the same port.
[0091]
In the above-described embodiment, the adder 125-1~ 125-NAlthough the addition using the semiconductor memory 126 is applied to the addition of the absolute difference value in the motion vector search, it can be applied to the same addition in other signal processing.
[0092]
In the above-described embodiment, the adder 125-1~ 125-NIn addition, the semiconductor memory 126 for generating the correlation value table is integrated. However, a semiconductor memory integrated with other arithmetic units such as a subtractor, a multiplier, and a divider can be configured in the same manner. Data can be exchanged efficiently between the memory and the semiconductor memory.
[0093]
In the above-described embodiment, the motion vector detection circuit 111 is applied to the motion compensated predictive coding apparatus 100. However, it is needless to say that the present invention can be similarly applied to other apparatuses using motion vectors.
[0094]
In the above-described embodiment, the motion vector is detected by the block matching method. However, the present invention is not limited to the block matching method, and other pixel value matching such as a representative point block matching method. It can also be applied to methods based on.
[0095]
【The invention's effect】
  According to this invention,pluralWith adderAnd having a plurality of storage areasSemiconductor memo for correlation value table generationLiUse this semiconductor memory to accumulate absolute differences usingStorage areaIn addition, a correlation value (sum of absolute differences) for each of a plurality of candidate blocks in the search range corresponding to the reference block is obtained, and the occupied area is reduced compared to the conventional case using a register as a storage element. And an increase in size of the semiconductor chip can be prevented.
[0096]
  According to the present invention, at least a plurality of adders and a semiconductor memory are integrated, and a plurality of adders in bit units constituting the adder are provided.,Semiconductor memoryMemory cells arranged in a matrixThus, the addition data from the adder to the semiconductor memory and the storage data from the semiconductor memory to the adder can be efficiently supplied.
[0097]
According to the invention, the semiconductor memory has the first port for writing and reading and the second port dedicated for reading provided in association with the plurality of addition units described above, and the semiconductor Data stored in the memory, for example, correlation values can be read out independently of addition.
[0098]
Further, according to the present invention, data for clearing or presetting the semiconductor memory is generated, and by clearing or presetting the semiconductor memory with this data, without inputting data for clearing or presetting from the outside, The semiconductor memory can be easily cleared or preset, and by devising data for presetting, for example, a specific motion vector such as (0, 0) can be easily detected in a flat picture portion.
[0099]
Further, according to the present invention, when the calculation result by the plurality of adders constituting the adder overflows, a maximum value is set in a predetermined area of the semiconductor memory corresponding to the plurality of adders. It is possible to prevent a motion vector detection error in which an erroneously small value is stored as a correlation value in a predetermined area of the memory.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a motion compensated prediction encoding apparatus as an embodiment.
FIG. 2 is a diagram for explaining a block matching method for motion detection.
FIG. 3 is a diagram for explaining a block matching method for motion detection.
FIG. 4 is a diagram for explaining a block matching method for motion detection.
FIG. 5 is a diagram for explaining a block matching method for motion detection.
FIG. 6 is a block diagram showing a configuration of a motion vector detection circuit.
FIG. 7 is a diagram for explaining a 1: N matching operation between one reference pixel and N search range pixels;
FIG. 8 is a diagram showing a configuration in which a semiconductor memory and an adder are integrated.
FIG. 9 is a diagram showing a configuration of a memory cell.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 ... Motion compensation prediction encoding apparatus, 101 ... Input terminal, 102 ... Subtractor, 103 ... DCT circuit, 104 ... Quantization circuit, 105 ... Output terminal, 106 ... Inverse quantization circuit 107 ... Inverse DCT circuit 108 ... Adder 109 ... Frame memory 110 ... Motion compensation circuit 111 ... Motion vector detection circuit 121 ... Controller 122, input terminals, 123, frame memory, 124-1~ 124-N... Difference absolute value calculator, 125-1~ 125-N... Adder, 126 ... Semiconductor memory for correlation value table, 126-1~ 126-N... Storage area, 127 ... Correlation value table evaluator, 128 ... Output terminal, 130 ... Memory cell, 1400~ 140n-1... Adding unit

Claims (4)

時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
参照フレームより取り出される参照ブロックの画素データを共通に入力すると共に、上記探索フレームより取り出される、上記参照ブロックに対する探索範囲に存在する複数の候補ブロックの画素データをそれぞれ入力し、上記参照ブロックの画素データと上記候補ブロックの画素データとの差分絶対値を演算する複数の差分絶対値演算器と、
複数の加算器と複数の記憶領域を有する相関値テーブル生成用の半導体メモリと、
上記複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれを、上記半導体メモリの複数の記憶領域に記憶されていた記憶データのそれぞれに、上記複数の加算器を用いて足し込み、該複数の加算器で得られた足し込みデータのそれぞれを上記半導体メモリの複数の記憶領域に記憶することを所定回数だけ繰り返し、上記半導体メモリの複数の記憶領域に、上記複数の候補ブロックのそれぞれに対応した相関値が得られるように制御するコントローラと、
上記半導体メモリの複数の記憶領域に得られた上記複数の候補ブロックのそれぞれに対応した相関値に基づいて、上記参照ブロックに対応した動きベクトルを検出する相関値テーブル評価器とを備え、
上記加算器は、
上記記憶領域に記憶されている値を読み出し、読み出した値に上記差分絶対値演算器で演算されて得られた差分絶対値を足しんだデータを上記記憶領域に書き戻し、
足し込みの演算結果がオーバフローとなる場合、当該加算器に対応した上記半導体メモリの記憶領域に最大値をセットすることを特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector from a reference frame and a search frame that are temporally forward and backward,
The pixel data of the reference block extracted from the reference frame is input in common, and the pixel data of a plurality of candidate blocks existing in the search range for the reference block, which are extracted from the search frame, are input, respectively. A plurality of difference absolute value calculators for calculating a difference absolute value between the data and the pixel data of the candidate block;
A semiconductor memory for generating a correlation value table having a plurality of adders and a plurality of storage areas;
The difference absolute values calculated by the plurality of difference absolute value calculators are added to the storage data stored in the plurality of storage areas of the semiconductor memory using the plurality of adders. And storing each of the addition data obtained by the plurality of adders in the plurality of storage areas of the semiconductor memory a predetermined number of times, and the plurality of candidate blocks in the plurality of storage areas of the semiconductor memory. A controller that controls to obtain a correlation value corresponding to each of the
A correlation value table evaluator that detects a motion vector corresponding to the reference block based on correlation values corresponding to each of the plurality of candidate blocks obtained in the plurality of storage areas of the semiconductor memory;
The above adder
Reading the value stored in the storage area, the read write sum absolute difference value obtained by being calculated by the difference absolute value calculator to the value data to written back into the storage area,
A motion vector detection device , wherein, when an addition operation result overflows, a maximum value is set in a storage area of the semiconductor memory corresponding to the adder .
上記加算器を構成するビット単位の複数の加算部は、上記半導体メモリを構成するマトリックス状に配されたメモリセルのカラムのピッチに揃えて配されていることを特徴とする請求項1に記載の動きベクトル検出装置。  2. The plurality of bit-by-bit addition units constituting the adder are arranged in alignment with a column pitch of memory cells arranged in a matrix constituting the semiconductor memory. Motion vector detection device. RAMメモリセルからなる上記半導体メモリをクリアするためのデータを生成し、該データによって上記半導体メモリをクリアする手段をさらに備えることを特徴とする請求項1に記載の動きベクトル検出装置。  2. The motion vector detecting device according to claim 1, further comprising means for generating data for clearing the semiconductor memory composed of RAM memory cells and clearing the semiconductor memory by the data. 時間的に前後する参照フレームと探索フレームとから動きベクトル検出回路で動きベクトルを検出し、該動きベクトルを用いて動き補償を行う動き補償予測符号化装置であって、
上記動きベクトル検出回路は、
参照フレームより取り出される参照ブロックの画素データを共通に入力すると共に、上記探索フレームより取り出される、上記参照ブロックに対する探索範囲に存在する複数の候補ブロックの画素データをそれぞれ入力し、上記参照ブロックの画素データと上記候補ブロックの画素データとの差分絶対値を演算する複数の差分絶対値演算器と、
複数の加算器と複数の記憶領域を有する相関値テーブル生成用の半導体メモリと、
上記複数の差分絶対値演算器で演算されて得られた差分絶対値のそれぞれを、上記半導体メモリの複数の記憶領域に記憶されていた記憶データのそれぞれに、上記複数の加算器を用いて足し込み、該複数の加算器で得られた足し込みデータのそれぞれを上記半導体メモリの複数の記憶領域に記憶することを所定回数だけ繰り返し、上記半導体メモリの複数の記憶領域に、上記複数の候補ブロックのそれぞれに対応した相関値が得られるように制御するコントローラと、
上記半導体メモリの複数の記憶領域に得られた上記複数の候補ブロックのそれぞれに対応した相関値に基づいて、上記参照ブロックに対応した動きベクトルを検出する相関値テーブル評価器とを備え、
上記加算器は、
上記記憶領域に記憶されている値を読み出し、読み出した値に上記差分絶対値演算器で演算されて得られた差分絶対値を足しんだデータを上記記憶領域に書き戻し、
足し込みの演算結果がオーバフローとなる場合、当該加算器に対応した上記半導体メモリの記憶領域に最大値をセットすることを特徴とする動き補償予測符号化装置。
A motion-compensated predictive coding apparatus that detects a motion vector from a reference frame and a search frame that are temporally moved by a motion vector detection circuit and performs motion compensation using the motion vector,
The motion vector detection circuit is
The pixel data of the reference block extracted from the reference frame is input in common, and the pixel data of a plurality of candidate blocks existing in the search range for the reference block, which are extracted from the search frame, are input, respectively. A plurality of difference absolute value calculators for calculating a difference absolute value between the data and the pixel data of the candidate block;
A semiconductor memory for generating a correlation value table having a plurality of adders and a plurality of storage areas;
The difference absolute values calculated by the plurality of difference absolute value calculators are added to the storage data stored in the plurality of storage areas of the semiconductor memory using the plurality of adders. And storing each of the addition data obtained by the plurality of adders in the plurality of storage areas of the semiconductor memory a predetermined number of times, and the plurality of candidate blocks in the plurality of storage areas of the semiconductor memory. A controller that controls to obtain a correlation value corresponding to each of the
A correlation value table evaluator that detects a motion vector corresponding to the reference block based on correlation values corresponding to each of the plurality of candidate blocks obtained in the plurality of storage areas of the semiconductor memory;
The above adder
Reading the value stored in the storage area, the read write sum absolute difference value obtained by being calculated by the difference absolute value calculator to the value data to written back into the storage area,
A motion-compensated predictive coding apparatus , wherein, when an addition operation result overflows, a maximum value is set in a storage area of the semiconductor memory corresponding to the adder .
JP2002004957A 2002-01-11 2002-01-11 Motion vector detection device and motion compensated prediction encoding device Expired - Fee Related JP4536310B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002004957A JP4536310B2 (en) 2002-01-11 2002-01-11 Motion vector detection device and motion compensated prediction encoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002004957A JP4536310B2 (en) 2002-01-11 2002-01-11 Motion vector detection device and motion compensated prediction encoding device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007304546A Division JP4689659B2 (en) 2007-11-26 2007-11-26 Semiconductor memory and signal processing apparatus

Publications (2)

Publication Number Publication Date
JP2003209846A JP2003209846A (en) 2003-07-25
JP4536310B2 true JP4536310B2 (en) 2010-09-01

Family

ID=27644138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002004957A Expired - Fee Related JP4536310B2 (en) 2002-01-11 2002-01-11 Motion vector detection device and motion compensated prediction encoding device

Country Status (1)

Country Link
JP (1) JP4536310B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004040581A1 (en) * 2002-10-15 2004-05-13 Sony Corporation Memory device, motion vector detection device, and detection method
KR20210094082A (en) * 2018-12-29 2021-07-28 에스지 디제이아이 테크놀러지 코., 엘티디 Video processing methods and devices

Also Published As

Publication number Publication date
JP2003209846A (en) 2003-07-25

Similar Documents

Publication Publication Date Title
US8073058B2 (en) Memory device and device and method for detecting motion vector
KR100927760B1 (en) Memory cell circuit, memory device, motion vector detection device, and motion compensation predictive encoding device
JP3863376B2 (en) Motion estimator
KR0174774B1 (en) Semiconductor memory and method of using the same, column decoder and image processor
KR100450746B1 (en) Apparatus and method for performing mixed motion estimation based on hierarchical Search
KR20090105365A (en) Motion estimation device and Moving image encoding device having the same
JP4536310B2 (en) Motion vector detection device and motion compensated prediction encoding device
JP4932273B2 (en) Arithmetic processing circuit using ferroelectric capacitor and arithmetic method
JP4689659B2 (en) Semiconductor memory and signal processing apparatus
US7777751B2 (en) Tiled memory array for full search motion estimation
CN110213592B (en) Circuit applicable to motion estimation in HEVC standard and working method thereof
JP4165070B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
JP4345301B2 (en) Motion vector detection circuit
JP5182285B2 (en) Decoding method and decoding apparatus
JP2003289545A (en) Semiconductor device
JP4122774B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
JP4238578B2 (en) Motion vector detection device and detection method
US6901027B2 (en) Apparatus for processing data, memory bank used therefor, semiconductor device, and method for reading out pixel data
JP4003529B2 (en) Motion vector detection circuit and motion vector detection method
JP4273695B2 (en) Motion vector detection device
Ndili et al. Fast algorithm and efficient architecture for integer and fractional motion estimation
KR100282614B1 (en) Motion Predictor for Low Bit Rate Video Codecs
US6219455B1 (en) Method and apparatus for detecting motion vectors
Acken et al. An architectural design for parallel fractal compression
JP4543307B2 (en) Memory device and motion vector detection device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041228

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070824

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071205

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080509

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090918

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091102

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: 20100616

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

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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