JP4122774B2 - Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device - Google Patents

Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device Download PDF

Info

Publication number
JP4122774B2
JP4122774B2 JP2002004956A JP2002004956A JP4122774B2 JP 4122774 B2 JP4122774 B2 JP 4122774B2 JP 2002004956 A JP2002004956 A JP 2002004956A JP 2002004956 A JP2002004956 A JP 2002004956A JP 4122774 B2 JP4122774 B2 JP 4122774B2
Authority
JP
Japan
Prior art keywords
calculation
memory
data
unit
cell
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
JP2002004956A
Other languages
Japanese (ja)
Other versions
JP2003208303A (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 JP2002004956A priority Critical patent/JP4122774B2/en
Publication of JP2003208303A publication Critical patent/JP2003208303A/en
Application granted granted Critical
Publication of JP4122774B2 publication Critical patent/JP4122774B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、半導体メモリ装置、動きベクトル検出装置および動き補償予測符号化装置に関する。詳しくは、メモリセルが記憶データと参照データ入力部からの参照データとを用いた論理演算を行う演算機能部を備えると共に、このメモリセルの演算データ出力部から出力された演算データを用いた数値演算を行う演算補助セルを有する構成とすることによって、幅の広いデータ・バスを用いて処理回路にデータを伝送することなく、高速かつ効率的に所望の演算処理を行わせることができる半導体メモリ装置等に係るものである。
【0002】
【従来の技術】
従来の半導体メモリ装置における機能は入力データの記憶であり、データの演算、処理は他の半導体装置によって行われていた。これに対して、記憶機能と演算、処理機能とを1個の半導体装置中に併せ持つことにより、より高速な演算、処理が可能となる可能性がある。
【0003】
その一つに、メモリと論理回路とを1個の半導体チップ上に併置したSOC(System On Chip)がある。また、これとはやや異なり、メモリ自身に演算機能を持たせたものに、例えばCAM(Content Addressable Memory)等の機能メモリがある。
【0004】
【発明が解決しようとする課題】
前者は、依然として旧来のノイマン・アーキテクチャに基づくものであり、メモリと論理回路とを1チップ化したことで、これらの間のバス幅を拡げることとクロックの高速化とにより、処理の高速化を図るものである。いわゆる、フォンノイマン・ボトルネックを力で抑制するといった側面があり、必ずしも優れた解決あるいは回避の方法であるとはいえない。
【0005】
これに対して後者では、SIMD(Single Instruction stream Multiple Data stream)形式の並列処理により、全データを同時に処理することで高速化が図られる。全データが揃うまでの待ち時間が生じたり、部分データ毎に異なる処理は行えない等の問題となる場合もある。また、多くの場合、1ビット毎の繰り返し演算の積み重ねによって、データを構成するビット全体の演算すなわちデータ全体の処理が行われる。
【0006】
これらは必ずしも明確に分離されるものではなく、良いところを組み合わせることで、より適切な処理が行える可能性も考えられる。例えば、ある処理に必要なデータが全体のうちの一部分であれば、全データが揃うのを待つことなく、それらが揃ったところでそれらのデータのみを対象とした部分的な並列処理を実行すればよい。
【0007】
またここで、メモリあるいはメモリ・セル自身が必要な演算機能を有することにより、幅の広いデータ・バスを用いてメモリから処理回路までデータを伝送させることもなく、その場で、また全ビット同時に、演算を行わせることも考えられる。さらには、記憶データの書き込みおよび読み出しと記憶データに基づいた演算、処理とを独立にすることで、全体としてより柔軟で効率的な処理を行わせることも期待できる。
そこで、この発明では、高速かつ効率的に所望の演算処理を行わせることができる半導体メモリ装置等を提供することを目的とする。
【0008】
【課題を解決するための手段】
この発明に係る半導体メモリ装置は、演算補助セルおよびマトリックス状に配された複数のメモリセルを有する、1個または2個以上のメモリブロックからなる半導体メモリ装置であって、メモリセルは、"1"または"0"のデータを記憶するメモリセル部と、参照データを入力するための参照データ入力部と、メモリセル部に記憶されている記憶データと参照データ入力部からの参照データとの論理演算を行う演算機能部と、演算機能部で演算されて得られた演算データを出力する演算データ出力部と、セル選択信号を入力するためのセル選択信号入力部と、このセル選択信号入力部に入力されるセル選択信号に基づいて、演算機能部からの演算データを演算データ出力部に出力する出力制御部とを備え、演算補助セルは、メモリセルの演算データ出力部に出力された演算データを入力するための演算データ入力部と、この演算データ入力部に入力された演算データを用いた数値演算を行う演算部と、この演算部で演算されて得られた演算データを出力する演算データ出力部とを備え、マトリックス状に配された複数のメモリセルの領域は、複数の分割領域からなり、上記メモリブロックは、活性化対象の分割領域に属するメモリセルの上記セル選択信号入力部が上記セル選択信号を入力するように、当該メモリセルを制御する切り換え機構を有するものである。
【0009】
また、この発明に係る半導体メモリ装置は、それぞれメモリセルおよび演算補助セルを有する、1個または2個以上のメモリブロックからなる半導体メモリ装置であって、メモリブロックは、データを転送するための複数のビット線と、この複数のビット線に直交する複数のワード線と、複数のビット線に平行する、参照データを入力するための参照データ入力線と、複数のビット線に平行する、演算データを出力するための演算データ出力線と、複数のワード線に平行する、セル選択信号を入力するためのセル選択線と、ビット線、ワード線、参照データ入力線、演算データ出力線およびセル選択線に接続され、マトリックス状に配された複数のメモリセルと、複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行う複数の演算補助セルとを有し、メモリセルは、ビット線およびワード線に接続され、"1"または"0"のデータを記憶するメモリセル部と参照データ入力線に接続され、参照データを入力するための参照データ入力部と、メモリセル部に記憶されている記憶データと参照データ入力部からの参照データとの論理演算を行う演算機能部と、演算データ出力線に接続され、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部と、セル選択線に接続され、セル選択信号を入力するためのセル選択信号入力部と、セル選択信号入力部に入力されるセル選択信号に基づいて、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部とを備え、マトリックス状に配された複数のメモリセルの領域は、上記ワード線に沿う方向に分割された複数の分割領域からなり、上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有するものである。
【0010】
また、この発明に係る半導体メモリ装置は、それぞれメモリセルおよび演算補助セルを有する、1個または2個以上のメモリブロックからなる半導体メモリ装置であって、メモリブロックは、データを転送するための複数のビット線と、この複数のビット線に直交する複数のワード線と、複数のビット線に直交する、参照データを入力するための参照データ入力線と、複数のビット線に直交する、演算データを出力するための演算データ出力線と、複数のワード線に直交する、セル選択信号を入力するためのセル選択線と、ビット線、ワード線、参照データ入力線、演算データ出力線およびセル選択線に接続され、マトリックス状に配された複数のメモリセルと、複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行う複数の演算補助セルとを有し、メモリセルは、ビット線およびワード線に接続され、"1"または"0"のデータを記憶するメモリセル部と、参照データ入力線に接続され、参照データを入力するための参照データ入力部と、メモリセル部に記憶されている記憶データと参照データ入力部からの参照データとの論理演算を行う演算機能部と、演算データ出力線に接続され、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部と、セル選択線に接続され、セル選択信号を入力するためのセル選択信号入力部と、セル選択信号入力部に入力されるセル選択信号に基づいて、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部とを備え、マトリックス状に配された複数のメモリセルの領域は、上記ビット線に沿う方向に分割された複数の分割領域からなり、上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有するものである。
【0011】
また、この発明に係る動きベクトル検出装置は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、参照フレームを構成する複数の画素データを記憶する第1のメモリ部と、探索フレームを構成する複数の画素データを記憶する第2のメモリ部と、第1のメモリ部より参照ブロックの複数の画素データを読み出して第2のメモリ部に参照データとして供給すると共に、第2のメモリ部において、参照ブロックに対応した複数の候補ブロックのそれぞれに対し、この候補ブロックの画素データを読み出し、この候補ブロックと参照ブロックとの画素データ毎の差分を演算するように制御するメモリ制御部と、第2のメモリ部より出力される複数の候補ブロックのそれぞれに対する画素データ毎の差分に基づいて、参照ブロックに対応した動きベクトルを検出する動きベクトル検出部とを備え、第2のメモリ部は、演算補助セルおよびマトリックス状に配された複数のメモリセルを有する、1個または2個以上の半導体メモリブロックで構成され、メモリセルは、"1"または"0"のデータを記憶するメモリセル部と、参照データを入力するための参照データ入力部と、メモリセル部に記憶されている記憶データと参照データ入力部からの参照データとの論理演算を行う演算機能部と、この演算機能部で演算されて得られた演算データを出力する演算データ出力部と、セル選択信号を入力するためのセル選択信号入力部と、このセル選択信号入力部に入力されるセル選択信号に基づいて、演算機能部からの演算データを演算データ出力部に出力する出力制御部とを備え、演算補助セルは、メモリセルの演算データ出力部に出力された演算データを入力するための演算データ入力部と、この演算データ入力部に入力された演算データを用いた数値演算を行って差分を得る演算部とを備え、マトリックス状に配された複数のメモリセルの領域は、複数の分割領域からなり、上記メモリブロックは、活性化対象の分割領域に属するメモリセルの上記セル選択信号入力部が上記セル選択信号を入力するように、当該メモリセルを制御する切り換え機構を有するものである。
【0012】
また、この発明に係る動きベクトル検出装置は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、参照フレームを構成する複数の画素データを記憶する第1のメモリ部と、探索フレームを構成する複数の画素データを記憶する第2のメモリ部と、第1のメモリ部より参照ブロックの複数の画素データを読み出して第2のメモリ部に参照データとして供給すると共に、第2のメモリ部において、参照ブロックに対応した複数の候補ブロックのそれぞれに対し、この候補ブロックの画素データを読み出し、この候補ブロックと参照ブロックとの画素データ毎の差分を演算するように制御するメモリ制御部と、第2のメモリ部より出力される複数の候補ブロックのそれぞれに対する画素データ毎の差分に基づいて、参照ブロックに対応した動きベクトルを検出する動きベクトル検出部とを備え、第2のメモリ部は、それぞれ1個または2個以上の半導体メモリブロックで構成され、半導体メモリブロックは、データを転送するための複数のビット線と、この複数のビット線に直交する複数のワード線と、複数のビット線に平行する、参照データを入力するための参照データ入力線と、複数のビット線に平行する、演算データを出力するための演算データ出力線と、複数のワード線に平行する、セル選択信号を入力するためのセル選択線と、ビット線、ワード線、参照データ入力線、演算データ出力線およびセル選択線に接続され、マトリックス状に配された複数のメモリセルと、複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行って差分を得る複数の演算補助セルとを有し、メモリセルは、ビット線およびワード線に接続され、"1"または"0"のデータを記憶するメモリセル部と参照データ入力線に接続され、参照データを入力するための参照データ入力部と、メモリセル部に記憶されている記憶データと参照データ入力部からの参照データとの論理演算を行う演算機能部と、演算データ出力線に接続され、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部と、セル選択線に接続され、セル選択信号を入力するためのセル選択信号入力部と、セル選択信号入力部に入力されるセル選択信号に基づいて、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部とを備え、マトリックス状に配された複数のメモリセルの領域は、上記ワード線に沿う方向に分割された複数の分割領域からなり、上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有するものである。
【0013】
また、この発明に係る動きベクトル検出装置は、時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、参照フレームを構成する複数の画素データを記憶する第1のメモリ部と、探索フレームを構成する複数の画素データを記憶する第2のメモリ部と、第1のメモリ部より参照ブロックの複数の画素データを読み出して第2のメモリ部に参照データとして供給すると共に、第2のメモリ部において、参照ブロックに対応した複数の候補ブロックのそれぞれに対し、この候補ブロックの画素データを読み出し、この候補ブロックと参照ブロックとの画素データ毎の差分を演算するように制御するメモリ制御部と、第2のメモリ部より出力される複数の候補ブロックのそれぞれに対する画素データ毎の差分に基づいて、参照ブロックに対応した動きベクトルを検出する動きベクトル検出部とを備え、第2のメモリ部は、それぞれ1個または2個以上の半導体メモリブロックで構成され、半導体メモリブロックは、データを転送するための複数のビット線と、この複数のビット線に直交する複数のワード線と、複数のビット線に直交する、参照データを入力するための参照データ入力線と、複数のビット線に直交する、演算データを出力するための演算データ出力線と、複数のワード線に直交する、セル選択信号を入力するためのセル選択線と、ビット線、ワード線、参照データ入力線、演算データ出力線およびセル選択線に接続され、マトリックス状に配された複数のメモリセルと、複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行って差分を得る複数の演算補助セルとを有し、メモリセルは、ビット線およびワード線に接続され、"1"または"0"のデータを記憶するメモリセル部と参照データ入力線に接続され、参照データを入力するための参照データ入力部と、メモリセル部に記憶されている記憶データと参照データ入力部からの参照データとの論理演算を行う演算機能部と、演算データ出力線に接続され、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部と、セル選択線に接続され、セル選択信号を入力するためのセル選択信号入力部と、このセル選択信号入力部に入力されるセル選択信号に基づいて、演算機能部で演算されて得られた演算データを演算データ出力線に出力するための演算データ出力部とを備え、マトリックス状に配された複数のメモリセルの領域は、上記ビット線に沿う方向に分割された複数の分割領域からなり、上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有するものである。
【0014】
また、この発明に係る動き補償予測符号化装置は、上述した動きベクトル検出装置で検出された動きベクトルを用いて動き補償を行うものである。
【0015】
この発明において、半導体メモリ装置は、それぞれメモリセルおよび演算補助セルを有する、1個または2個以上のメモリブロックからなっている。メモリセルの演算機能部では、メモリセル部に記憶されている“1”または“0”の記憶データと参照データ入力部からの参照データとを用いた論理演算が行われ、セル選択信号入力部にセル選択信号が入力されることで、この演算機能部で演算されて得られた演算データが演算データ出力部に出力される。また、演算補助セルでは、メモリセルの演算データ出力部に出力された演算データを用いた数値演算が行われ、その演算データが演算データ出力部に出力される。
【0016】
例えば、メモリセルの演算機能部では複数の論理演算が並行して行われると共に、演算補助セルの演算部では複数の論理演算によって得られた複数の演算データを用いた数値演算が行われる。
【0017】
また例えば、演算補助セルは、第1の演算補助セル部と第2の演算補助セル部とから構成され、第1の補助セル部では、メモリセルの演算機能部で演算されて得られた演算データを用いた第1の数値演算が行われると共に、第2の演算補助セル部では、複数の第1の補助セル部で演算されて得られた演算データを用いた第2の数値演算が行われる。この場合、第1の数値演算が減算であり、第2の数値演算が絶対値演算であるとき、演算補助セルより出力される演算データとして差分絶対値が得られる。
【0018】
このように、メモリブロックを構成するメモリセルに論理演算を行う演算機能部が含まれ、さらにこのメモリブロックに演算データを用いて数値演算を行うための演算補助セルを有するものであり、幅の広いデータ・バスを用いて処理回路にデータを伝送することなく、メモリブロック内で、高速かつ効率的に所望の演算処理を行わせることができる。
【0019】
例えば、メモリブロックは、データを転送するための複数のビット線と、この複数のビット線に直交する複数のワード線と、複数のビット線に平行または直交する、参照データを入力するための参照データ入力線および演算データを出力するための演算データ出力線と、複数のワード線に平行または直交する、セル選択信号を入力するためのセル選択線とが配されており、これらビット線、ワード線、参照データ入力線、演算データ出力線およびセル選択線に、マトリックス状に配された複数のメモリセルのそれぞれが接続されている。そして、複数の演算補助セルで、複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算が行われる。
【0020】
この場合、記憶データの書き込み、読み出しは、複数のビット線、複数のワード線を用いて行われる。一方、演算データの出力は、複数の参照データ入力線、複数の演算データ出力線および複数のセル選択線を用いて行われる。これにより、記憶データの書き込み、読み出しと、演算データの出力とを独立して行うことができ、全体としてより柔軟で効率的な処理が可能となる。
【0021】
例えば、マトリックス状に配された複数のメモリセルの領域は、セル選択線に沿う方向に分割された複数の分割領域からなり、複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなっている。そして、メモリブロックは、各分割領域で同時に活性化される分割セル選択線を切り換えるための切り換え機構を有している。これにより、マトリックス状に配された複数のメモリセルのセル選択線に沿う方向に、分割セル選択線単位で階段状に並ぶ複数のメモリセルの演算データを演算データ出力線に出力して、演算補助セルで処理することが可能となる。
【0022】
この場合、画像データを構成する画素データをマトリックス状に配された複数のメモリセルに適切に配置しておくことで、矩形または十字形等の任意の形状の画素ブロックを構成する複数の画素データに対応した演算データを同時に複数の演算データ出力線に出力でき、これらを用いた数値演算を複数の演算補助セルで一括、同時に行うことができ、データ処理効率の大幅な向上が図られる。また、当該画素ブロックの位置を容易に変更可能となる。
【0023】
例えば、1つの分割セル選択線に対応する複数のメモリセルに、画像データを構成する垂直方向または水平方向の整数列分の画素データが記憶されることにより、上述の画素ブロックを水平方向または垂直方向に整数画素単位で移動させることができ、一方それと直交する方向に1画素単位で移動させることができる。
【0024】
上述した1個または2個以上のメモリブロックの他に、メモリブロックより出力される演算データに基づく処理を行う回路ブロックを有する半導体メモリ装置においては、さらに処理の高速化、効率化を図ることが可能となる。
【0025】
なお、上述した半導体メモリ装置を、動きベクトル検出装置、あるいは動き補償予測符号化装置の動きベクトル検出回路のメモリ部に用いることで、動きベクトル検出のための処理の高速化、効率化が図られる。
【0026】
【発明の実施の形態】
以下、図面を参照しながら、この発明の実施の形態について説明する。
図1は、実施の形態としての動き補償予測符号化装置100の構成を示している。
この符号化装置100は、画像データ(動画像を構成するフレームデータ)Diを入力する入力端子101と、この入力端子101に供給される画像データDiと後述する動き補償回路110から供給される予測画像データとの差分を演算する減算器102と、この減算器102で得られる差分データに対してDCT(離散コサイン変換)を行うDCT回路103と、このDCT回路103で得られるDCT係数に対して量子化を行う量子化回路104と、この量子化回路104で得られた符号化データDoを出力する出力端子105とを有している。
【0027】
また、符号化装置100は、量子化回路104で得られた符号化データDoに対して逆量子化を行う逆量子化回路106と、この逆量子化回路106の出力データに対して逆DCTを行って差分データを得る逆DCT回路107と、この逆DCT回路107で得られる差分データと動き補償回路110で得られる予測画像データとを加算して元の画像データを復元する加算器108と、この加算器108で復元された画像データを記憶するフレームメモリ109とを有している。
【0028】
また、符号化装置100は、フレームメモリ109に記憶された画像データを読み込み、後述する動きベクトル検出回路111からの動きベクトルMVに基づいて動き補償をした後、上述したように減算器102および加算器108に予測画像データとして供給する動き補償回路110と、入力端子101に供給される画像データDiの動きベクトルMVを検出して動き補償回路110に供給する動きベクトル検出回路111とを有している。
【0029】
図1に示す動き補償予測符号化装置100の動作を説明する。
入力端子101に入力される画像データDiは、減算器102および動きベクトル検出回路111に供給される。減算器102では、この画像データDiと動き補償回路110から供給される予測画像データとの差分が演算される。
【0030】
減算器102で得られる差分データはDCT回路103に供給されて離散コサイン変換される。このDCT回路103で得られるDCT係数は量子化回路104に供給されて量子化される。そして、この量子化回路104で得られた符号化データDoが出力端子105に出力される。
【0031】
また、量子化回路104で得られる符号化データDoが逆量子化回路106に供給されて逆量子化され、さらにこの逆量子化回路106の出力データが逆DCT回路107に供給されて逆DCTされ、差分データが復元される。この差分データと動き補償回路110からの予測データとが加算器108で加算されて元の画像データが復元され、この復元された画像データがフレームメモリ109に記憶される。
【0032】
動き補償回路110では、あるフレームにおいては、その前のフレームにフレームメモリ109に記憶された画像データの読み込みが行われて、動きベクトル検出回路111からの動きベクトルMVに基づいて動き補償されて、予測画像データが得られる。この予測画像データは、上述したように、差分データを得るために減算器102に供給されると共に、画像データを復元するために加算器108に供給される。
【0033】
次に、動きベクトル検出回路111の詳細を説明する。
この動きベクトル検出回路111では、ブロックマッチング法により動きベクトルが検出される。これは、図2に示すように、探索フレームの候補ブロックを所定の探索範囲内で移動し、参照フレームの参照ブロックと最も合致している候補ブロックを検出することにより、動きベクトルを求めるものである。
【0034】
ブロックマッチング法では、図3Aに示すように、1枚の画像、例えば水平H画素、垂直Vラインの1フレームの画像が図4Bに示すように、P画素×Qラインのブロックに細分化される。図3Bの例では、P=5、Q=5の例である。cがブロックの中心画素位置である。
【0035】
図4A〜Cは、cを中心画素とする参照ブロックとc´を中心とする候補ブロックの位置関係を示している。cを中心画素とする参照ブロックは、参照フレームの注目しているある参照ブロックであり、それと一致する探索フレームの候補ブロックが探索フレームにおいてc´を中心とするブロックの位置にあるものとしている。ブロックマッチング法では、探索範囲内において、参照ブロックと最も合致する候補ブロックを見出すことによって、動きベクトルを検出する。
【0036】
図4Aの場合では、水平方向に+1画素、垂直方向に+1ライン、すなわち、(+1,+1)の動きベクトルが検出される。図4Bでは、(+3,+3)の動きベクトルMVが検出され、図4Cでは、(+2,−1)の動きベクトルが検出される。動きベクトルは、参照フレームの参照ブロック毎に求められる。
【0037】
動きベクトルを探索する範囲を水平方向で±S画素、垂直方向で±Tラインとすると、参照ブロックは、その中心cに対して、水平に±S、垂直に±Tずれたところに中心c´を有する候補ブロックと比較される必要がある。
【0038】
図5は、参照フレームのある参照ブロックの中心cの位置をRとする時に、比較すべき探索フレームの(2S+1)×(2T+1)個の候補ブロックとの比較が必要なことを示している。すなわち、この図5のます目の位置にc´が存在する候補ブロックの全てが比較対象である。図5は、S=4,T=3とした例である。
【0039】
探索範囲内の比較で得られた評価値(すなわち、フレーム差の絶対値和、このフレーム差の二乗和、あるいはフレーム差の絶対値のn乗和等)の中で、最小値を検出することによって、動きベクトルが検出される。図5の探索範囲は、候補ブロックの中心が位置する領域であり、候補ブロックの全体が含まれる探索範囲の大きさは、(2S+P)×(2T+Q)となる。
【0040】
図6は、動きベクトル検出回路111の構成を示している。
この動きベクトル検出回路111は、回路全体の動作を制御するコントローラ121と、画像データDiが入力される入力端子122と、参照フレームの画像データを蓄積するフレームメモリ123と、探索フレームの画像データを蓄積するフレームメモリ124とを有している。これらフレームメモリ123,124の書き込み、読み出し等の動作は、コントローラ121によって制御される。
【0041】
入力端子122からあるフレームの画像データがフレームメモリ123に供給されて書き込まれる際に、このフレームメモリ123に記憶されていた1フレーム前の画像データが読み出されてフレームメモリ124に供給されて書き込まれる。
【0042】
コントローラ121の制御に基づき、フレームメモリ124には、フレームメモリ123から参照ブロックの画素データが供給され、そしてこのフレームメモリ124は、この参照ブロックに対応した探索範囲の複数の候補ブロックのそれぞれに対し、この候補ブロックの画素データと参照ブロックの画素データとの差分絶対値を、対応する画素データ毎に演算して出力する。
【0043】
また、動きベクトル検出回路111は、フレームメモリ124より出力される、複数の候補ブロックのそれぞれに対応する画素データ毎の差分絶対値を累積する累積器126と、この累積器126で得られる複数の候補ブロックのそれぞれに対する累積値を相関値として格納する相関値テーブル127とを有している。
【0044】
また、動きベクトル検出回路111は、相関値テーブル127に格納された複数の候補ブロックのそれぞれに対する相関値に基づいて動きベクトルMVを検出する判断回路128と、この判断回路128で検出された動きベクトルMVを出力する出力端子129とを有している。判断回路128では、最小の相関値を発生する候補ブロックの位置を、動きベクトルMVとして検出する。
【0045】
図6に示す動きベクトル検出回路111の動作を説明する。
入力端子122に入力される画像データDiはフレームメモリ123に供給され、参照フレームの画像データとして蓄積される。またこの際、フレームメモリ123に記憶されていた1フレーム前の画像データは、読み出されてフレームメモリ124に供給され、探索フレームの画像データとして蓄積される。
【0046】
フレームメモリ123からフレームメモリ124には、参照ブロックの画像データが供給される。フレームメモリ124では、この参照ブロックに対応した探索範囲の複数の候補ブロックのそれぞれに対し、この候補ブロックの画素データと参照ブロックの画素データとの差分絶対値が、対応する画素データ毎に演算されて出力される。この場合、参照ブロックおよび候補ブロックがP画素×Qラインで構成されている場合には(図3B参照)、複数の候補ブロックのそれぞれに対し、P×Q個の差分絶対値が得られる。
【0047】
このように、フレームメモリ124より出力される、複数の候補ブロックのそれぞれに対応する画素データ毎の差分絶対値は累積器126に順次供給されて累積される。この累積器126からの複数の候補ブロックのそれぞれに対する累積値は、相関値テーブル127に供給され、相関値として格納される。そして、判断回路128では、このように相関値テーブル127に格納された複数の候補ブロックのそれぞれに対する相関値に基づき、最小の相関値を発生する候補ブロックの位置が動きベクトルMVとして検出される。
【0048】
フレームメモリ123からフレームメモリ124には、参照フレーム内の複数の参照ブロックの画像データが順次供給される。したがって、各参照ブロックに対応して、フレームメモリ124、累積器126、相関値テーブル127および判断回路128では上述した動作が繰り返され、従って判断回路128では、各参照ブロックに対応した動きベクトルMVが順次検出される。このように、判断回路128で検出された動きベクトルMVは出力端子129に出力される。
【0049】
次に、フレームメモリ124の詳細を説明する。
図7に示すように、本実施の形態において、フレームメモリ124は、4個のメモリブロック125a〜125dから構成されているが、フレームメモリ124を構成するメモリブロックの個数は4個に限定されるものではない。メモリブロック125a〜125dには、それぞれ、データ入力部、データ出力部、参照データ入力部、演算データ出力部が備えられている。これら、メモリブロック125a,125b,125c,125dには、それぞれ、探索フレームの左上、右上、左下、右下の各部分の画素データが記憶される。
【0050】
所定の候補ブロックの中心画素の範囲が、探索フレームの左上、右上、左下、右下の各部分にある場合には、それぞれメモリブロック125a,125b,125c,125dのみを活性化させればよく、消費電力を少なく抑えることができる。
【0051】
この場合、メモリブロック125a〜125dのそれぞれには、探索フレームの左上、右上、左下、右下の各部分の境界付近の画素データが重複して記憶される。このように、メモリブロック125a〜125dに画素データを重複して記憶しておくのは、中心画素が境界付近となる候補ブロックの画素データには、その境界を越えた位置の画素データも必要となるからである。
【0052】
図8は、メモリブロック125a,125b,125c,125dにそれぞれ記憶される探索フレームの左上、右上、左下、右下の各部分Fa,Fb,Fc,Fdを示している。メモリブロック125a,125bには水平方向に重複した画素データha,hbが記憶され、メモリブロック125c,125dには水平方向に重複した画素データhc,hdが記憶され、メモリブロック125a,125cには垂直方向に重複した画素データva,vbが記憶され、メモリブロック125b,125dには垂直方向に重複した画素データvb,vdが記憶される。この画素データの水平方向および垂直方向の重複画素数は、候補ブロックの水平方向および垂直方向の大きさが大きい程大きくなる。
【0053】
図9は、メモリブロック125(125a〜125d)の構成例を示している。
メモリブロック125は、複数のメモリセルがマトリックス状に配されたメモリ・セル・アレイ131と、記憶データ入出力用ポート(カラム・アドレス・デコーダなどを含む)132と、記憶データ用ロウ・アドレス・デコーダ133と、参照データ入力用ポート&演算補助セル(カラム・アドレス・デコーダなどを含む)134と、参照データ用ロウ・アドレス・デコーダ135とを有している。
【0054】
メモリ・セル・アレイ131は、ロウ方向に延びるデータを転送するための複数のビット線BL,/BL(/BLはBLバーを表している)と、カラム方向に延びる、複数のビット線BL,/BLに直交する複数のワード線WLと、複数のビット線BL,/BLに平行する、参照データを入力するための参照データ入力線RDL,/RDL(/RDLはRDLバーを表している)と、複数のビット線BL,/BLに平行する、演算データを出力するための演算データ出力線DAL,DBLと、ワード線WLに平行する、セル選択信号を入力するためのセル選択線WLFと、これらビット線BL,/BL、ワード線WL、参照データ入力線RDL,/RDL、演算データ出力線DAL,DBLおよびセル選択線WLFに接続され、マトリックス状に配された複数のメモリセル140とからなっている。
【0055】
図10は、図9に示したメモリブロック125のメモリ・セル・アレイ131以外の部分の構成を詳細に示したものである。
記憶データ用カラム・アドレス・デコーダ132a、アドレスバッファ132bおよびI/Oバッファ132cは、図9における記憶データ入出力用ポート132を構成している。カラム・アドレス・デコーダ132aには、I/Oゲート(カラム・スイッチ)やセンスアンプ等が含まれている。カラム・アドレス・デコーダ132aには、アドレス・バッファ132bを介してカラム・アドレスが入力される。
【0056】
カラム・アドレス・デコーダ132aは、アドレス・バッファ132bを介して供給されるカラム・アドレスに対応して、メモリ・セル・アレイ131のカラム方向の所定の複数のメモリセル140に接続される複数のビット線BL,/BLとの接続を確保し、I/Oバッファ132cおよびカラム・アドレス・デコーダ132aを通じて、当該カラム方向の所定のメモリセルに対する、記憶データの書き込み、読み出しが可能となるようにする。
【0057】
また、記憶データ用ロウ・アドレス・デコーダ133には、アドレス・バッファ133aを介してロウ・アドレスが入力される。ロウ・アドレス・デコーダ133は、アドレス・バッファ133aを介して供給されるロウ・アドレスに対応して、メモリ・セル・アレイ131のロウ方向の所定のメモリセル140に接続されるワード線WLを活性化し、I/Oバッファ132cおよびカラム・アドレス・デコーダ132aを通じて、当該ロウ方向の所定のメモリセル140に対する、記憶データの書き込み、読み出しが可能となるようにする。
【0058】
また、参照データ用カラム・アドレス・デコーダ134a、アドレス・バッファ134b、I/Oバッファ134cおよび演算補助セル134dは、図9における参照データ入力用ポート&演算補助セル134を構成している。カラム・アドレス・デコーダ134aには、I/Oゲート(カラム・スイッチ)やセンスアンプ等が含まれている。カラム・アドレス・デコーダ134aには、アドレス・バッファ134bを介してカラム・アドレスが入力される。
【0059】
カラム・アドレス・デコーダ134aは、アドレス・バッファ134bを介して供給されるカラム・アドレスに対応して、メモリ・セル・アレイ131のカラム方向の所定の複数のメモリセル140に接続される、複数の演算データ出力線DAL,DBLおよび複数の参照データ入力線RDL,/RDLとの接続を確保する。これにより、I/Oバッファ134cおよびカラム・アドレス・デコーダ134aを介して、当該カラム方向の所定の複数のメモリセル140に参照データを入力し、また当該カラム方向の所定の複数のメモリセル140からの演算データを演算補助セル134dに供給することが可能となる。
【0060】
また、参照データ用ロウ・アドレス・デコーダ135には、アドレス・バッファ135aを介してロウ・アドレスが入力される。ロウ・アドレス・デコーダ135は、アドレス・バッファ135aを介して供給されるロウ・アドレスに対応して、メモリ・セル・アレイ131のロウ方向の所定のメモリセル140に接続されるセル選択線WLFにセル選択信号を供給して活性化する。これにより、I/Oバッファ134cおよびカラム・アドレス・デコーダ134aを通じて、当該ロウ方向の所定のメモリセル140に参照データを入力し、さらにはカラム・アドレス・デコーダ134aおよびI/Oバッファ134cを通じて当該ロウ方向の所定のメモリセル140からの演算データを演算補助セル134dに供給することが可能となる。
【0061】
また、制御回路136は、メモリブロック125の上述した各回路の動作を、制御入力に基づいて制御する。なお、後述するが、メモリ・セル・アレイ131にマトリックス状に配された複数のメモリセル140の領域はセル選択線WLFに沿う方向に分割された複数の分割領域からなり、複数のセル選択線WLFは、それぞれ複数の分割領域に対応して分割された複数の分割セル選択線からなっており、メモリ・セル・アレイ131には、各分割領域で同時に活性化される分割セル線を切り換えるための切り換え機構が配されている。この切り換え機構の制御も、制御回路136によって行われる。
【0062】
図11は、メモリブロック125(125a〜125d)の他の構成例を示している。この図11において、図9と対応する部分には同一符号を付して示している。この図11に示すメモリブロック125の構成では、図9に示すメモリブロック125の構成に対して、参照データ入力線RDL,/RDL、演算データ出力線DAL,DBL、セル選択線WLFの方向が異なっている。
【0063】
メモリブロック125は、複数のメモリセルがマトリックス状に配されたメモリ・セル・アレイ131と、記憶データ入出力用ポート(カラム・アドレス・デコーダなどを含む)132と、記憶データ用ロウ・アドレス・デコーダ133と、参照データ入力用ポート&演算補助セル(カラム・アドレス・デコーダなどを含む)134と、参照データ用ロウ・アドレス・デコーダ135とを有している。
【0064】
メモリ・セル・アレイ131は、ロウ方向に延びるデータを転送するための複数のビット線BL,/BLと、カラム方向に延びる、複数のビット線BL,/BLに直交する複数のワード線WLと、複数のビット線BL,/BLに直交する、参照データを入力するための参照データ入力線RDL,/RDLと、複数のビット線BL,/BLに直交する、演算データを出力するためのDAL,DBLと、ワード線WLに直交する、セル選択信号を入力するためのセル選択線WLFと、これらビット線BL,/BL、ワード線WL、参照データ入力線RDL,/RDL、演算データ出力線DAL,DBLおよびセル選択線WLFに接続され、マトリックス状に配された複数のメモリセル140とからなっている。
【0065】
図12は、図11に示したメモリブロック125のメモリ・セル・アレイ131以外の部分の構成を詳細に示したものである。この図12において、図10と対応する部分には同一符号を付して示している。
【0066】
記憶データ用カラム・アドレス・デコーダ132a、アドレスバッファ132bおよびI/Oバッファ132cは、図11における記憶データ入出力用ポート132を構成している。カラム・アドレス・デコーダ132aには、I/Oゲート(カラム・スイッチ)やセンスアンプ等が含まれている。カラム・アドレス・デコーダ132aには、アドレス・バッファ132bを介してカラム・アドレスが入力される。
【0067】
カラム・アドレス・デコーダ132aは、アドレス・バッファ132bを介して供給されるカラム・アドレスに対応して、メモリ・セル・アレイ131のカラム方向の所定の複数のメモリセル140に接続される複数のビット線BL,/BLとの接続を確保し、I/Oバッファ132cおよびカラム・アドレス・デコーダ132aを通じて、当該カラム方向の所定のメモリセルに対する、記憶データの書き込み、読み出しが可能となるようにする。
【0068】
また、記憶データ用ロウ・アドレス・デコーダ133には、アドレス・バッファ133aを介してロウ・アドレスが入力される。ロウ・アドレス・デコーダ133は、アドレス・バッファ133aを介して供給されるロウ・アドレスに対応して、メモリ・セル・アレイ131のロウ方向の所定のメモリセル140に接続されるワード線WLを活性化し、I/Oバッファ132cおよびカラム・アドレス・デコーダ132aを通じて、当該ロウ方向の所定のメモリセル140に対する、記憶データの書き込み、読み出しが可能となるようにする。
【0069】
また、参照データ用カラム・アドレス・デコーダ134a、アドレス・バッファ134b、I/Oバッファ134cおよび演算補助セル134dは、図11における参照データ入力用ポート&演算補助セル134を構成している。カラム・アドレス・デコーダ134aには、I/Oゲート(カラム・スイッチ)やセンスアンプ等が含まれている。カラム・アドレス・デコーダ134aには、アドレス・バッファ134bを介してカラム・アドレスが入力される。
【0070】
カラム・アドレス・デコーダ134aは、アドレス・バッファ134bを介して供給されるカラム・アドレスに対応して、メモリ・セル・アレイ131のロウ方向の所定の複数のメモリセル140に接続される、複数の演算データ出力線DAL,DBLおよび複数の参照データ入力線RDL,/RDLとの接続を確保する。これにより、I/Oバッファ134cおよびカラム・アドレス・デコーダ134aを介して、当該ロウ方向の所定の複数のメモリセル140に参照データを入力し、また当該ロウ方向の所定の複数のメモリセル140からの演算データを演算補助セル134dに供給することが可能となる。
【0071】
また、参照データ用ロウ・アドレス・デコーダ135には、アドレス・バッファ135aを介してロウ・アドレスが入力される。ロウ・アドレス・デコーダ135は、アドレス・バッファ135aを介して供給されるロウ・アドレスに対応して、メモリ・セル・アレイ131のカラム方向の所定のメモリセル140に接続されるセル選択線WLFにセル選択信号を供給して活性化する。これにより、I/Oバッファ134cおよびカラム・アドレス・デコーダ134aを通じて、当該カラム方向の所定のメモリセル140に参照データを入力し、さらにはカラム・アドレス・デコーダ134aおよびI/Oバッファ134cを通じて当該カラム方向の所定のメモリセル140からの演算データを演算補助セル134dに供給することが可能となる。
【0072】
また、制御回路136は、メモリブロック125の上述した各回路の動作を、制御入力に基づいて制御する。なお、後述するが、メモリ・セル・アレイ131にマトリックス状に配された複数のメモリセル140の領域はセル選択線WLFに沿う方向に分割された複数の分割領域からなり、複数のセル選択線WLFは、それぞれ複数の分割領域に対応して分割された複数の分割セル選択線からなっており、メモリ・セル・アレイ131には、各分割領域で同時に活性化される分割セル線を切り換えるための切り換え機構が配されている。この切り換え機構の制御も、制御回路136によって行われる。
【0073】
次に、メモリセル140について説明する。
まず、従来周知のSRAM(Static Random Access Memory)セルおよびDRAM(Dynamic Random Access Momory)セルを説明する。
図13は、SRAMセルの一例の構成を示している。負荷素子である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の各ゲート入力となっている。
【0074】
CMOSインバータ11の記憶ノードN1は、ワード線WLにゲートが接続されたアクセストランジスタQ5を介してビット線BLに接続されている。一方、CMOSインバータ12の記憶ノードN2は、ワード線WLにゲートが接続されたアクセストランジスタQ6を介してビット線/BLに接続されている。
【0075】
このような構成のSRAMセルにおいて、一対のCMOSインバータ11,12で構成されるメモリセル部13に“1”または“0”のデータが記憶される。そして、このメモリセル部13とビット線BL,/BLとの間で、アクセストランジスタQ5,Q6を介して、読み出しおよび書き込みのデータ転送が行われる。
【0076】
図14は、DRAMセルの一例の構成を示している。キャパシタC1,C2が直列に接続され、互いの中点PにはVcc/2(Vccは電源電圧)が与えられている。キャパシタC1の中点Pとは反対側が記憶ノードN1とされ、この記憶ノードN1はワード線WLにゲートが接続されたアクセストランジスタQ7を介してビット線BLに接続されている。また、キャパシタC2の中点Pとは反対側が記憶ノードN2とされ、この記憶ノードN2はワード線WLにゲートが接続されたアクセストランジスタQ8を介してビット線/BLに接続されている。
【0077】
このような構成のDRAMセルにおいて、一対のキャパシタC1,C2で構成されるメモリセル部14に“1”または“0”のデータが記憶される。そして、このメモリセル部14とビット線BL,/BLとの間で、アクセストランジスタQ7,Q8を介して、読み出しおよび書き込みのデータ転送が行われる。
【0078】
図15は、本実施の形態におけるメモリセル140の構成を示している。
メモリセル部141の記憶ノードN1はワード線WLにゲートが接続されたアクセストランジスタQ11を介してビット線BLに接続されている。一方、メモリセル部141の記憶ノードN2はワード線WLにゲートが接続されたアクセストランジスタQ12を介してビット線/BLに接続されている。
【0079】
ここで、メモリセル部141は、メモリセル140がSRAMセルをベースとするものでは例えば図13に示すSRAMセルのメモリセル部13と同様に構成され、メモリセル140がDRAMセルをベースとするものであるときは例えば図14に示すDRAMセルのメモリセル部14と同様に構成される。
【0080】
この場合、メモリセル部141に“1”または“0”のデータが記憶される。そして、このメモリセル部141とビット線BL,/BLとの間で、アクセストランジスタQ11,Q12を介して、読み出しおよび書き込みのデータ転送が行われる。すなわち、メモリセル部141からの記憶データの読み出し、このメモリセル部141への記憶データの書き込みについては、図13、図14に示すメモリセルと同様に行われる。
【0081】
また、メモリセル部141の記憶ノードN1,N2にそれぞれゲートが接続されたN型MOSトランジスタQ13,Q14の互いのドレインが接続され、MOSトランジスタQ13のソースは参照データRDが入力される入力端子142aに接続され、MOSトランジスタQ14のソースは接地されている。また、メモリセル部141の記憶ノードN1,N2にそれぞれゲートが接続されたN型MOSトランジスタQ15,Q16の互いのドレインが接続され、MOSトランジスタQ15のソースは入力端子142aに接続され、MOSトランジスタQ16のソースは参照データ/RD(/RDはRDバーを表しており、RDが反転されたものである)が入力される入力端子142bに接続されている。
【0082】
入力端子142aは上述した参照データ入力線RDLに接続され、この参照データ入力線RDLを通じて参照データRDが入力される。一方、入力端子142bは上述した参照データ入力線/RDLに接続され、この参照データ入力線/RDLを通じて参照データ/RDが入力される。
【0083】
ここで、MOSトランジスタQ13〜Q18により、メモリセル部141に記憶されている記憶データと参照データRDとの排他的論理和の反転(ExNOR)および論理積(AND)を得る演算機能部が構成されている。そして、MOSトランジスタQ15,Q16の接続点PaにはExNOR出力が得られ、MOSトランジスタQ13,Q14の接続点PbにはAND出力が得られる。
【0084】
また、N型MOSトランジスタQ17のドレインはMOSトランジスタQ15,Q16の接続点Paに接続され、このMOSトランジスタQ17のソースは演算データDAを出力するための出力端子143に接続される。また、N型MOSトランジスタQ18のドレインはMOSトランジスタQ13,Q14の接続点Pbに接続され、このMOSトランジスタQ18のソースは演算データDBを出力するための出力端子144に接続される。そして、これらMOSトランジスタQ17,Q18のゲートはセル選択信号CSが入力される入力端子145に接続されている。
【0085】
出力端子143は上述した演算データ出力線DALに接続され、この演算データ出力線DALに演算データDAが供給される。一方、出力端子143は上述した演算データ出力線DBLに接続され、この演算データ出力線DBLに演算データDBが供給される。さらに、入力端子145は上述したセル選択線WLFに接続され、このセル選択線WLFを通じてセル選択信号CSが入力される。
【0086】
ここで、MOSトランジスタQ17,Q18は出力制御部としてのトランスファーゲートを構成しており、入力端子145に“1”のセル選択信号CSが供給されるとき、導通する。そしてこの場合、接続点Paに得られているExNOR出力がMOSトランジスタQ17を通じて演算データDAとして出力端子143に出力される。同様に、接続点Pbに得られているAND出力がMOSトランジスタQ18を通じて演算データDBとして出力端子144に出力される。
【0087】
このように、メモリセル部141の記憶データと参照データRDとの演算および演算データDA,DBの出力は、記憶データの書き込みや読み出しとは独立に行うことができ、この記憶データに影響を及ぼすことはない。
【0088】
上述したメモリセルブロック125を構成するメモリセル140としては図15に示す構成のものが用いられるが、同様の演算機能部を備えるその他のメモリセルも同様に構成可能である。図16〜図18は他のメモリセルの一例を示している。これら図16〜図18において、図15と対応する部分には同一符号を付して示している。
【0089】
図16に示すメモリセルは、ExNOR演算に係る演算機能部および出力制御部を有するものである。図17に示すメモリセルは、AND演算に係る演算機能部および出力制御部を有するものである。
図18に示すメモリセルは、論理和の反転(NOR)の演算に係る演算機能部および出力制御部を有するものである。
【0090】
メモリセル部141の記憶ノードN1,N2にそれぞれゲートが接続されたN型MOSトランジスタQ19,Q20の互いのドレインが接続され、MOSトランジスタQ19のソースは接地され、MOSトランジスタQ20のソースは参照データ/RDが入力される入力端子142bに接続されている。MOSトランジスタQ19,Q20により、メモリセル部141に記憶されている記憶データと参照データRDとの論理和の反転(NOR)を得る演算機能部が構成されており、MOSトランジスタQ19,Q20の接続点PbにはNOR出力が得られる。
【0091】
また、N型MOSトランジスタQ21のドレインはMOSトランジスタQ19,Q20の接続点Pcに接続され、このMOSトランジスタQ21のソースは演算データDCを出力するための出力端子146に接続される。そして、MOSトランジスタQ21のゲートはセル選択信号CSが入力される入力端子145に接続されている。MOSトランジスタQ21は出力制御部としてのトランスファーゲートを構成しており、入力端子145に“1”のセル選択信号CSが供給されるとき、導通する。そしてこの場合、接続点Pcに得られているNOR出力がMOSトランジスタQ21を通じて演算データDCとして出力端子146に出力される。
【0092】
次に、上述のメモリブロック125を構成する演算補助セル134dを説明する。
本実施の形態では、演算補助セル134dの部分に、図19に示す加算、減算用の演算補助セル150と、図20に示す差分絶対値演算用の演算補助セル170とが、それぞれ複数個使用される。
【0093】
メモリ・セル・アレイ131にマトリックス状に配された複数のメモリセル140のうち、アドレス・バッファ135aに入力されるロウ・アドレスおよびアドレス・バッファ134bに入力されるカラム・アドレスによって(図10,図12参照)、候補ブロックを構成する複数の画素データをビット毎に記憶しているm×n個のメモリセル140が同時に選択される。mは候補ブロックを構成する画素データの個数を示し、nは画素データのビット数を示している。演算補助セル134dには、このm×n個のメモリセル140の各出力端子143,144に出力される演算データDA,DBが、m×n対の演算データ出力線DAL,DBLをそれぞれ介して同時に供給される。
【0094】
まず、演算補助セル150について説明する。演算補助セル134dの部分には、上述したm×n個のメモリセル140にそれぞれ対応してm×n個の演算補助セル150が設けられる。図19は、候補ブロックの所定の画素データのi番目のビットデータに対応する演算補助セル150を示している。ここで、i=0,1,・・・,n−1であり、0番目のビットデータはLSB(Least Significant Bit)であり、n−1番目のビットデータはMSB(Most Significant Bit)である。
【0095】
図19において、N型MOSトランジスタQ31,Q32の互いのドレインが接続されている。また、N型MOSトランジスタQ33,Q34の互いのドレインが接続されており、MOSトランジスタQ34のソースは接地されている。対応するメモリセル140からの演算データDA(ExNOR出力)が演算データDAiとして入力される入力端子151はインバータIN1,IN2の直列回路を介してMOSトランジスタQ32,Q34のそれぞれのゲートに接続されると共に、インバータIN1,IN2の接続点はMOSトランジスタQ31,Q33のそれぞれのゲートに接続されている。
【0096】
また、下位からのキャリ出力/Ci-1(/Ci-1はCi-1バーを表しており、キャリ出力Ci-1が反転されたものである)が入力される入力端子152は、MOSトランジスタQ32のソースに接続されると共に、インバータIN3を介して、MOSトランジスタQ31,Q33のそれぞれのソースに接続されている。
【0097】
また、対応するメモリセル140からの演算データDB(AND出力)が演算データDBiとして入力される入力端子153はNORゲート154の入力側に接続されている。また、MOSトランジスタQ33,Q34の接続点がNORゲート154の入力側に接続されている。そして、このNORゲート154の出力側は上位へのキャリ出力/Ci(/CiはCiバーを表しており、キャリ出力Ciが反転されたものである)が出力される出力端子155に接続される。また、MOSトランジスタQ31,Q32の接続点はインバータIN4を介して、演算データSiが出力される出力端子156に接続されている。
【0098】
ここで、候補ブロックの所定の画素データ(nビット)に対応するn個の演算補助セル150により、当該候補ブロックの所定の画素データと対応する参照ブロックの画素データとの減算値出力が得られる。すなわち、候補ブロックの所定の画素データをXi(i=0,1,・・・,n-1)、対応する参照ブロックの画素データをYi(i=0,1,・・・,n-1)とそれぞれ表し、上述したメモリセル140の参照データRDとして/Yi(/YiはYiバーを表しており、Yiが反転されたものである)を供給し、C-1=1とすることで、演算出力Siおよびキャリ出力Ciは、それぞれ(1)式、(2)式のように得られ、減算値出力が得られる。この減算値出力は、キャリ出力Cn-1が正負の符号を示すオフセットバイナリで得られる。
【0099】
【数1】

Figure 0004122774
【0100】
なお、本実施の形態では、上述した減算値出力を使用するものであるが、メモリセル140の参照データRDとしてYiを供給し、C-1=0とすることで、演算出力Siおよびキャリ出力Ciは、それぞれ(3)式、(4)式のように得られ、加算値出力を得ることができる。
【0101】
【数2】
Figure 0004122774
【0102】
次に、演算補助セル170について説明する。メモリブロック125の演算補助セル134dの部分には、上述したように候補ブロックおよび参照ブロックの対応する画素データの減算値出力を得るためのn個の演算補助セル150毎に、演算補助セル170が設けられる。すなわち、演算補助セル134dの部分には、候補ブロックを構成する画素データの個数と等しいm個の演算補助セル170が設けられる。図20は、m個の演算補助セル170のうちk番目(k=0,1,・・・,m−1)の演算補助セル170を示している。
【0103】
図20において、n個の演算補助セル150の演算出力Si(i=0,1,・・・,n-1)がそれぞれ入力される入力端子1710,1711,・・・,171n-1は、それぞれイクスクルーシブORゲート(ExORゲート)1710,1711,・・・,171n-1に入力側に接続される。
【0104】
また、n−1番目の演算補助セル150のキャリ出力/Cn-1が入力される入力端子173は、ExORゲート1710,1711,・・・,171n-1に共通に接続される。そして、このExORゲート1710,1711,・・・,171n-1の出力側はそれぞれnビット全加算器174の、入力端子a0,a1,・・・,an-1に接続される。
【0105】
また、nビット全加算器174の入力端子b0は上述の入力端子173に接続されると共に、このnビット全加算器174のb1,・・・,bn-1は接地される。そして、このnビット全加算器174の出力端子o0,o1,・・・,on-1は、それぞれ差分絶対値Dk(Dk0〜Dkn-1)を出力する出力端子1750,1751,・・・,175n-1に接続される。
【0106】
図20に示す演算補助セル170においては、Cn-1が1で演算出力Si(i=0,1,・・・,n-1)が正であるときは、この演算出力Si(i=0,1,・・・,n-1)がそのまま差分絶対値Dk(i=0,1,・・・,n-1)として得られ、一方Cn-1が0で演算出力Si(i=0,1,・・・,n-1)が負であるときは、この演算出力Si(i=0,1,・・・,n-1)の全てのビットがExORゲート1710,1711,・・・,171n-1で反転され、その後nビット全加算器174でLSBに1が加算されて演算出力Si(i=0,1,・・・,n-1)の絶対値が算出され、これが差分絶対値Dk(i=0,1,・・・,n-1)として得られる。
【0107】
図21は、候補ブロックを構成するk番目の画素データに対応する差分絶対値Dk(i=0,1,・・・,n-1)を得るための演算補助セル134dの一部構成を示しており、n個の演算補助セル150と、1個の演算補助セル170で構成される。演算補助セル134dの部分には、この図21に示す構成が、候補ブロックを構成する画素データの個数と等しいm個だけ存在することになる。
【0108】
上述したように、メモリ・セル・アレイ131にマトリックス状に配された複数のメモリセル140のうち、アドレス・バッファ135aに入力されるロウ・アドレスおよびアドレス・バッファ134bに入力されるカラム・アドレスによって、候補ブロックを構成するm個の画素データをビット毎に記憶しているm×n個のメモリセル140が同時に選択されることで、演算補助セル134dではm個の画素データに対応する減算や差分絶対演算を同時並行的に行うことができる。
【0109】
以下、このように、候補ブロックを構成するm個の画素データをビット毎に記憶しているm×n個のメモリセル140を同時に選択可能とするための構成について説明する。
【0110】
図22Aは、探索フレームメモリ124を構成する1つのメモリブロック125に記憶される画素データを模式的に示したものである。説明を簡単にするため、1つのメモリブロック125に記憶される画素データは、水平方向に15画素、垂直方向に10ラインの画素データであり、各画素データは1ビットデータであるとする。
【0111】
図22Bは、各画素データのメモリ・セル・アレイ131内の記憶位置を示している。ここでは、升目のそれぞれがメモリセル140に対応している。メモリ・セル・アレイ131は、参照データのカラム方向(図10のメモリブロック125の構成では、記憶データのカラム方向と同じ、図12のメモリブロック125の構成では、記憶データのロウ方向と同じ)に50個のメモリセル140が並べられた構成となっている。そして、メモリ・セル・アレイ131内の複数のメモリセル140は、カラム方向に分割され、5つの分割領域131a〜131eが形成されている。
【0112】
ここで、分割領域131aの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「00」〜「90」、「05」〜「95」および「0a」〜「9a」が記憶される。また、分割領域131bの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「01」〜「91」、「06」〜「96」および「0b」〜「9b」が記憶される。また、分割領域131cの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「02」〜「92」、「07」〜「97」および「0c」〜「9c」が記憶される。
【0113】
また、分割領域131dの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「03」〜「93」、「08」〜「98」および「0d」〜「9d」が記憶される。さらに、分割領域131eの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「04」〜「94」、「09」〜「99」および「0e」〜「9e」が記憶される。
【0114】
上述した複数のセル選択線WLF(図9、図11参照)は、それぞれ各分割領域131a〜131eに対応して分割された5本の分割セル選択線WLFa〜WLFe(図22Bには図示せず)からなっている。そして、メモリ・セル・アレイ131には、各分割領域131a〜131eで同時に活性化される分割セル選択線を切り換えるための切り換え機構が配されている。例えば、図22Bに示すように、各分割領域131a〜131eの間に切り換え機構180が配されている。
【0115】
図23は、切り換え機構180の構成例を示している。この切り換え機構180はN型MOSトランジスタとP型MOSトランジスタとが並列接続されてなるCMOSトランスファーゲートが使用されて構成される。この切り換え機構180は、同一行の分割セル選択線の間に配され、それらを接続するためのトランスファーゲートTG1と、隣接行の分割セル選択線の間に配され、それらを接続するためのトランスファーゲートTG2とからなっている。
【0116】
そして、トランスファーゲートTG1のN型MOSトランジスタのゲートおよびトランスファーゲートTG2のP型MOSトランジスタのゲートには切り換え制御信号φが供給され、トランスファーゲートTG1のP型MOSトランジスタのゲートおよびトランスファーゲートTG2のN型MOSトランジスタのゲートには切り換え制御信号/φ(/φはφバーを表し、切り換え制御信号φが反転されたものである)が供給される。なお、各分割領域131a〜131eの間に配される切り換え機構180には、それぞれ独立して切り換え制御信号φ,/φが供給される。
【0117】
切り換え機構180の動作を説明する。φ=1で、/φ=0であるとき、トランスファーゲートTG1が導通し、同一行の分割セル選択線同士が接続される状態となる。一方、φ=0で、/φ=1であるとき、トランスファーゲートTG2が導通し、隣接行の分割セル選択線同士が接続される状態となる。
【0118】
メモリ・セル・アレイ131の各分割領域131a〜131eの間に、上述したような切り換え機構180が配されていることから、任意の候補ブロックを構成する全画素データをビット毎に記憶している複数のメモリセル140を同時に選択できる。
【0119】
例えば、図22Aにハッチングをして示した範囲の候補ブロックに対しては、切り換え機構180によって図22Bに破線で示すように接続された各分割領域131a〜131eの分割セル選択線WLFa〜WLFeに、参照データ用ロウ・アドレス・デコーダ135(図10、図12参照)から“1”のセル選択信号を供給して活性化すると共に、参照データ用カラム・アドレス・デコーダ134a(図10、図12参照)のI/Oゲート(カラム・スイッチ)により、図22Bでハッチングをして示したメモリセル140を選択すればよい。
【0120】
また例えば、図24Aにハッチングをして示した範囲の候補ブロックに対しては、切り換え機構180により図24Bに破線で示すように接続された各分割領域131a〜131eの分割セル選択線WLFa〜WLFeに、参照データ用ロウ・アドレス・デコーダ135から“1”のセル選択信号を供給して活性化すると共に、参照データ用カラム・アドレス・デコーダ134aのI/Oゲート(カラム・スイッチ)により、図24Bでハッチングをして示したメモリセル140を選択すればよい。
【0121】
このように、I/Oゲート(カラム・スイッチ)によるメモリセル140の選択により、矩形または十字形等の任意の形状の候補ブロックに対処することができる。また、1つの分割セル選択線に対応する複数のメモリセル140に、画像データを構成する垂直方向の1列分の画素データを記憶しているので、切り換え機構180とI/Oゲート(カラム・スイッチ)の共働により、候補ブロックの位置を水平、垂直の双方向に1画素単位で動かすことができる。
【0122】
なお、上述では説明を簡単にするため各画素データは1ビットデータであるとして説明したが、各画素データがnビットデータ(例えばn=8)である場合には、各画素データを記憶するためにn個のメモリセル140が必要となり、それらn個のメモリセル140は例えばカラム方向に連続して配される。
【0123】
また、上述した図22B、図24Bの例では、各分割セル選択線WLFa〜WLFeにそれぞれ対応した複数のメモリセル140にそれぞれ垂直方向の1列分の画素データが記憶されるものを示したが、各分割セル選択線WLFa〜WLFeにそれぞれ対応した複数のメモリセル140にそれぞれ水平方向の1列分の画素データが記憶されるようにしてもよい。
【0124】
また、各分割セル選択線WLFa〜WLFeにそれぞれ対応した複数のメモリセル140に、それぞれ画像データを構成する水平方向または垂直方向のm列分(mは2以上の整数)の画素データが記憶されるようにしてもよい。この場合、候補ブロックの位置は、水平方向のm列分の画素データが記憶されるときには垂直方向にはm画素単位で移動でき、また、垂直方向のm列分の画素データが記憶されるときには水平方向にはm画素単位で移動可能となる。
【0125】
図25Aは、探索フレームメモリ124を構成する1つのメモリブロック125に記憶される画素データを模式的に示したものである。説明を簡単にするため、1つのメモリブロック125に記憶される画素データは、水平方向に10画素、垂直方向に10ラインの画素データであり、各画素データは1ビットデータであるとする。
【0126】
図25Bは、各画素データのメモリ・セル・アレイ131内の記憶位置を示している。ここでは、升目のそれぞれがメモリセル140に対応している。メモリ・セル・アレイ131は、参照データのカラム方向(図10のメモリブロック125の構成では、記憶データのカラム方向と同じ、図12のメモリブロック125の構成では、記憶データのロウ方向と同じ)に50個のメモリセル140が並べられた構成となっている。そして、メモリ・セル・アレイ131内の複数のメモリセル140は、カラム方向に分割され、5つの分割領域131a〜131eが形成されている。
【0127】
ここで、分割領域131aの連続する第1の行および第2の行のそれぞれの10個のメモリセルには、それぞれ水平方向の1列分の画素データ「00」〜「09」および「50」〜「59」が記憶される。また、分割領域131bの連続する第1の行および第2の行のそれぞれの10個のメモリセルには、それぞれ水平方向の1列分の画素データ「10」〜「19」および「60」〜「69」が記憶される。また、分割領域131cの連続する第1の行および第2の行のそれぞれの10個のメモリセルには、それぞれ水平方向の1列分の画素データ「20」〜「29」および「70」〜「79」が記憶される。
【0128】
また、分割領域131dの連続する第1の行および第2の行のそれぞれの10個のメモリセルには、それぞれ水平方向の1列分の画素データ「30」〜「39」および「80」〜「89」が記憶される。さらに、分割領域131eの連続する第1の行および第2の行のそれぞれの10個のメモリセルには、それぞれ水平方向の1列分の画素データ「40」〜「49」および「90」〜「99」が記憶される。
【0129】
上述した複数のセル選択線WLF(図9、図11参照)は、それぞれ各分割領域131a〜131eに対応して分割された5本の分割セル選択線WLFa〜WLFe(図25Bには図示せず)からなっている。そして、メモリ・セル・アレイ131には、各分割領域131a〜131eで同時に活性化される分割セル選択線を切り換えるための切り換え機構180(図23参照)が配されている。
【0130】
このように、各分割セル選択線WLFa〜WLFeにそれぞれ対応した複数のメモリセル140にそれぞれ水平方向の1列分の画素データが記憶されるものにあっても、メモリ・セル・アレイ131の各分割領域131a〜131eの間に切り換え機構180が配されていることから、任意の候補ブロックを構成する全画素データをビット毎に記憶している複数のメモリセル140を同時に選択できる。
【0131】
例えば、図25Aにハッチングをして示した範囲の候補ブロックに対しては、切り換え機構180によって図25Bに破線で示すように接続された各分割領域131a〜131eの分割セル選択線WLFa〜WLFeに、参照データ用ロウ・アドレス・デコーダ135(図10、図12参照)から“1”のセル選択信号を供給して活性化すると共に、参照データ用カラム・アドレス・デコーダ134a(図10、図12参照)のI/Oゲート(カラム・スイッチ)により、図25Bでハッチングをして示したメモリセル140を選択すればよい。
【0132】
また例えば、図26Aにハッチングをして示した範囲の候補ブロックに対しては、切り換え機構180により図26Bに破線で示すように接続された各分割領域131a〜131eの分割セル選択線WLFa〜WLFeに、参照データ用ロウ・アドレス・デコーダ135から“1”のセル選択信号を供給すると共に、参照データ用カラム・アドレス・デコーダ134aのI/Oゲート(カラム・スイッチ)により、図26Bでハッチングをして示したメモリセル140を選択すればよい。
【0133】
また、上述では、メモリ・セル・アレイ131の各分割領域131a〜131eで同時に活性化される分割セル選択線を切り換えるために、各分割領域131a〜131eの間に切り換え機構180(図23参照)が配されるものを示したが、この切り換え機構は他の構成であってもよい。
【0134】
図27は、切り換え機構の他の構成例を示している。この切り換え機構180Aは、各分割領域131a〜131eに対応して配される。図27には、分割領域131b,131cの部分のみ示している。
【0135】
この切り換え機構180Aを使用する場合、各セル選択線WLF(分割セル選択線WLFa〜WLFeで構成される)に平行する、セル選択信号を入力するためのグローバル選択線/GWL(/GWLはGWLバーを表し、セル選択信号として“0”が入力される)が必要となる。
【0136】
切り換え機構180Aは、ノアゲートおよびアンドゲートが使用されて構成される。すなわち、ロウ方向の奇数行に対しては、入力側がグローバル選択線/GWLに接続され、その出力側が対応する分割セル選択線に接続されるノアゲートNGが配され、一方ロウ方向の偶数行に対しては、入力側がグローバル選択線/GWLに接続され、その出力側が対応する分割セル選択線に接続されるオアゲートOGが配される。そして、ノアゲートNGおよびオアゲートOGの入力側には切り換え制御信号/φ(/φはφバーを表し、切り換え制御信号φが反転されたものである)が供給される。なお、各分割領域131a〜131eに対応して配される切り換え機構180Aには、それぞれ独立して切り換え制御信号/φが供給される。
【0137】
切り換え機構180Aを使用した、各分割領域131a〜131eにおけるセル選択線の選択動作について説明する。
例えば、図27において、分割領域131bでは第2の行の分割セル選択線WLFbを選択し、分割領域131cでは第1の行の分割セル選択線WLFcを選択するものとする。
【0138】
この場合、第1、第2の行のグローバル選択線/GWLi,/GWLi+1にそれぞれセル選択信号として“0”が供給される。また、分割領域131bの切り換え機構180Aに供給される切り換え制御信号/φjとして“1”が供給される。これにより、第2の行のオアゲートOGの出力側には“1”が出力されるため、第2の行の分割セル選択線WLFbが活性化された状態となる。
【0139】
一方、分割領域131cの切り換え機構180Aに供給される切り換え制御信号/φjとして“0”が供給される。これにより、第1の行のノアゲートNGの出力側には“1”が出力されるため、第1の行の分割セル選択線WLFcが活性化された状態となる。
【0140】
このように、メモリ・セル・アレイ131の各分割領域131a〜131eに対して、上述したような切り換え機構180Aが配される場合においても、各分割領域131a〜131eの間に上述した切り換え機構180が配される場合と同様に、各分割領域131a〜131eで同時に活性化される分割セル選択線の切り換えを行うことができ、任意の候補ブロックを構成する全画素データをビット毎に記憶している複数のメモリセル140を同時に選択できる。
【0141】
また、この切り換え機構180Aを使用する場合、セル選択信号の伝送路にトランスファーゲートが配されるものではなく、切り換え機構180におけるように、複数のトランスファーゲートTG1,TG2が伝送路に配されるもののような、セル選択信号の伝送遅延を回避することができる。
【0142】
図28は、切り換え機構のさらに他の構成例を示している。この切り換え機構180Bも、各分割領域131a〜131eに対応して配される。図28には、分割領域131b,131cの部分のみ示している。
【0143】
この切り換え機構180Bを使用する場合、各セル選択線WLF(分割セル選択線WLFa〜WLFeで構成される)に平行する、セル選択信号を入力するためのグローバル選択線GWL(セル選択信号として“1”が入力される)が必要となる。
【0144】
切り換え機構180Bは、CMOSトランスファーゲートが使用されて構成される。すなわち、ロウ方向の奇数行に対しては、グローバル選択線GWLと各分割セル選択線WLFa〜WLFeとを接続するためのトランスファーゲートTG3が配され、一方ロウ方向の偶数行に対しては、グローバル選択線GWLと各分割セル選択線WLFa〜WLFeとを接続するためのトランスファーゲートTG4が配される。
【0145】
そして、トランスファーゲートTG3のN型MOSトランジスタのゲートおよびトランスファーゲートTG4のP型MOSトランジスタのゲートには切り換え制御信号φが供給され、トランスファーゲートTG3のP型MOSトランジスタのゲートおよびトランスファーゲートTG4のN型MOSトランジスタのゲートには切り換え制御信号/φ(/φはφバーを表し、切り換え制御信号φが反転されたものである)が供給される。なお、各分割領域131a〜131eに対応して配される切り換え機構180Bには、それぞれ独立して切り換え制御信号φ,/φが供給される。
【0146】
切り換え機構180Bを使用した、各分割領域131a〜131eにおけるセル選択線の選択動作について説明する。
例えば、図28において、分割領域131bでは第2の行の分割セル選択線WLFbを選択し、分割領域131cでは第1の行の分割セル選択線WLFcを選択するものとする。
【0147】
この場合、第1、第2の行のグローバル選択線GWLi,GWLi+1にそれぞれセル選択信号として“1”が供給される。また、分割領域131bの切り換え機構180Bに供給される切り換え制御信号φ,/φjとしてそれぞれ“0”,“1”が供給される。これにより、第2の行のトランスファーゲートTG4が導通し、グローバル選択線GWLi+1から分割セル選択線WLFcに“1”のセル選択信号が供給されるため、第2の行の分割セル選択線WLFbが活性化された状態となる。
【0148】
一方、分割領域131cの切り換え機構180Bに供給される切り換え制御信号φ,/φjとして“1”,“0”が供給される。これにより、第1の行のトランスファーゲートTG3が導通し、グローバル選択線GWLiから分割セル選択線WLFcに“1”のセル選択信号が供給されるため、第1の行の分割セル選択線WLFcが活性化された状態となる。
【0149】
このように、メモリ・セル・アレイ131の各分割領域131a〜131eに対して、上述したような切り換え機構180Bが配される場合においても、各分割領域131a〜131eの間に上述した切り換え機構180が配される場合と同様に各分割領域131a〜131eで同時に活性化される分割セル選択線の切り換えを行うことができ、任意の候補ブロックを構成する全画素データをビット毎に記憶している複数のメモリセル140を同時に選択できる。
【0150】
また、この切り換え機構180Bを使用する場合、セル選択信号の伝送路に配されるトランスファーゲートは1個だけとなるため、切り換え機構180におけるように、複数のトランスファーゲートTG1,TG2が伝送路に配されるものに比べて、セル選択信号の伝送遅延を軽減することができる。
【0151】
次に、参照フレームの画像データを蓄積するフレームメモリ123(図6参照)を説明する。
図29に示すように、フレームメモリ123も、上述したフレームメモリ124と同様に、例えば4個のメモリブロック191a〜191dから構成されている。メモリブロック191a〜191dには、それぞれ、データ入力部、データ出力部が備えられている。データ入力部より画像データDiが入力され、データ出力部から画像データDoが出力される。これら、メモリブロック191a,191b,191c,191dには、それぞれ、参照フレームの左上、右上、左下、右下の各部分の画素データが記憶される。
【0152】
所定の参照ブロックの中心画素の範囲が、参照フレームの左上、右上、左下、右下の各部分にある場合には、それぞれメモリブロック191a,191b,191c,191dのみを活性化させればよく、消費電力を少なく抑えることができる。
【0153】
この場合、メモリブロック191a〜191dには、上述したフレームメモリ124のメモリブロック125a〜125dと同様に、参照フレームの左上、右上、左下、右下の各部分の境界部に対応して、重複して画素データが記憶される。このように、メモリブロック191a〜191dに重複した画素データを記憶しておくのは、中心画素が境界付近となる参照ブロックの画素データには、その境界部を越えた位置の画素データも必要となるからである。
【0154】
図30は、メモリブロック191(191a〜191d)の構成例を示している。
メモリブロック191は、複数のメモリセルがマトリックス状に配されたメモリ・セル・アレイ201と、記憶データ入出力用ポート(カラム・アドレス・デコーダなどを含む)202と、記憶データ用ロウ・アドレス・デコーダ203とを有している。
【0155】
メモリ・セル・アレイ201は、ロウ方向に延びるデータを転送するための複数のビット線BL,/BL(/BLはBLバーを表している)と、カラム方向に延びる、複数のビット線BL,/BLに直交する複数のワード線WLと,これらビット線BL,/BLおよびワード線WLに接続され、マトリックス状に配された複数のメモリセル210とからなっている。
【0156】
図31は、図30に示したメモリブロック191のメモリ・セル・アレイ201以外の部分の構成を詳細に示したものである。
【0157】
記憶データ用カラム・アドレス・デコーダ202a、アドレスバッファ202bおよびI/Oバッファ202cは、図30における記憶データ入出力用ポート202を構成している。カラム・アドレス・デコーダ202aには、I/Oゲート(カラム・スイッチ)やセンスアンプ等が含まれている。カラム・アドレス・デコーダ202aには、アドレス・バッファ202bを介してカラム・アドレスが入力される。
【0158】
カラム・アドレス・デコーダ202aは、アドレス・バッファ202bを介して供給されるカラム・アドレスに対応して、メモリ・セル・アレイ201のカラム方向の所定の複数のメモリセル210に接続される複数のビット線BL,/BLとの接続を確保し、I/Oバッファ202cおよびカラム・アドレス・デコーダ202aを通じて、当該カラム方向の所定のメモリセルに対する、記憶データの書き込み、読み出しが可能となるようにする。
【0159】
また、記憶データ用ロウ・アドレス・デコーダ203には、アドレス・バッファ203aを介してロウ・アドレスが入力される。ロウ・アドレス・デコーダ203は、アドレス・バッファ203aを介して供給されるロウ・アドレスに対応して、メモリ・セル・アレイ201のロウ方向の所定のメモリセル210に接続されるワード線WLを活性化し、I/Oバッファ202cおよびカラム・アドレス・デコーダ202aを通じて、当該ロウ方向の所定のメモリセル210に対する、記憶データの書き込み、読み出しが可能となるようにする。
【0160】
また、制御回路204は、メモリブロック191の上述した各回路の動作を、制御入力に基づいて制御する。なお、後述するが、メモリ・セル・アレイ201にマトリックス状に配された複数のメモリセルの領域はワード線WLに沿う方向(カラム方向)に分割された複数の分割領域からなり、複数のワード線WLは、それぞれ複数の分割領域に対応して分割された複数の分割ワード線からなっており、メモリ・セル・アレイ201には、各分割領域で同時に活性化される分割ワード線を切り換えるための切り換え機構が配されている。この切り換え機構の制御も、制御回路204によって行われる。
【0161】
なお、メモリセル210は、上述したメモリブロック125のメモリセル140とは異なり、演算機能部を持っていない。詳細説明は省略するが、このメモリセル210は、例えば、上述の図13に示すSRAMセル、あるいは上述の図14に示すDRAMセルと同様の構成とされる。
【0162】
メモリブロック191は、任意の参照ブロックを構成する全画素データをビット毎に記憶している複数のメモリセル210を同時に選択可能とされている。以下、そのための構成について説明する。
【0163】
図32Aは、参照フレームメモリ123を構成する1つのメモリブロック191に記憶される画素データを模式的に示したものである。説明を簡単にするため、1つのメモリブロック191に記憶される画素データは、水平方向に15画素、垂直方向に10ラインの画素データであり、各画素データは1ビットデータであるとする。
【0164】
図32Bは、各画素データのメモリ・セル・アレイ201内の記憶位置を示している。ここでは、升目のそれぞれがメモリセル210に対応している。メモリ・セル・アレイ201は、カラム方向に50個のメモリセル210が並べられた構成となっている。そして、メモリ・セル・アレイ201内の複数のメモリセル210は、カラム方向に分割され、5つの分割領域201a〜201eが形成されている。
【0165】
ここで、分割領域201aの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「00」〜「90」、「05」〜「95」および「0a」〜「9a」が記憶される。また、分割領域201bの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「01」〜「91」、「06」〜「96」および「0b」〜「9b」が記憶される。また、分割領域201cの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「02」〜「92」、「07」〜「97」および「0c」〜「9c」が記憶される。
【0166】
また、分割領域201dの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「03」〜「93」、「08」〜「98」および「0d」〜「9d」が記憶される。さらに、分割領域201eの連続する第1の行、第2の行および第3の行のそれぞれの10個のメモリセルには、それぞれ垂直方向の1列分の画素データ「04」〜「94」、「09」〜「99」および「0e」〜「9e」が記憶される。
【0167】
上述した複数のワード線WL(図30参照)は、それぞれ各分割領域201a〜201eに対応して分割された5本の分割ワード線WLa〜WLe(図32Bには図示せず)からなっている。そして、メモリ・セル・アレイ201には、各分割領域201a〜201eで同時に活性化される分割ワード線を切り換えるための切り換え機構が配されている。例えば、図32Bに示すように、各分割領域201a〜201eの間に切り換え機構220が配されている。
【0168】
図33は、切り換え機構220の構成例を示している。この切り換え機構220は、上述したメモリブロック125のメモリ・セル・アレイ131内に配された切り換え機構180(図23参照)と同様に構成されている。
【0169】
この切り換え機構220は、N型MOSトランジスタとP型MOSトランジスタとが並列接続されてなるCMOSトランスファーゲートが使用されて構成される。この切り換え機構220は、同一行の分割ワード線の間に配され、それらを接続するためのトランスファーゲートTG1と、隣接行の分割ワード線の間に配され、それらを接続するためのトランスファーゲートTG2とからなっている。
【0170】
そして、トランスファーゲートTG1のN型MOSトランジスタのゲートおよびトランスファーゲートTG2のP型MOSトランジスタのゲートには切り換え制御信号φが供給され、トランスファーゲートTG1のP型MOSトランジスタのゲートおよびトランスファーゲートTG2のN型MOSトランジスタのゲートには切り換え制御信号/φ(/φはφバーを表し、切り換え制御信号φが反転されたものである)が供給される。なお、各分割領域201a〜201eの間に配される切り換え機構220には、それぞれ独立して切り換え制御信号φ,/φが供給される。
【0171】
切り換え機構220の動作を説明する。φ=1で、/φ=0であるとき、トランスファーゲートTG1が導通し、同一行の分割ワード線同士が接続される状態となる。一方、φ=0で、/φ=1であるとき、トランスファーゲートTG2が導通し、隣接行の分割ワード線同士が接続される状態となる。
【0172】
メモリ・セル・アレイ201の各分割領域201a〜201eの間に、上述したような切り換え機構220が配されていることから、任意の参照ブロックを構成する全画素データをビット毎に記憶している複数のメモリセル210を同時に選択できる。これにより、参照フレームメモリ123から探索フレームメモリ124に、参照ブロックを構成する全画素データのビットデータを参照データとして同時に供給することが可能となる。
【0173】
例えば、図32Aにハッチングをして示した範囲の候補ブロックに対しては、切り換え機構220によって図32Bに破線で示すように接続された各分割領域201a〜201eの分割ワード線WLa〜WLeに、記憶データ用ロウ・アドレス・デコーダ203(図31参照)から“1”の信号を供給して活性化すると共に、記憶データ用カラム・アドレス・デコーダ202a(図31参照)のI/Oゲート(カラム・スイッチ)により、図22Bでハッチングをして示したメモリセル210を選択すればよい。
【0174】
このように、I/Oゲート(カラム・スイッチ)によるメモリセル210の選択により、矩形または十字形等の任意の形状の参照ブロックに対処することができる。また、1つの分割ワード線に対応する複数のメモリセル210に、画像データを構成する垂直方向の1列分の画素データを記憶しているので、切り換え機構220とI/Oゲート(カラム・スイッチ)の共働により、参照ブロックの位置を水平、垂直の双方向に1画素単位で動かすことができる。
【0175】
なお、上述では説明を簡単にするため各画素データは1ビットデータであるとして説明したが、各画素データがnビットデータ(例えばn=8)である場合には、各画素データを記憶するためにn個のメモリセル210が必要となり、それらn個のメモリセル210は例えばカラム方向に連続して配される。
【0176】
また、上述した図32Bの例では、各分割ワード線WLa〜WLeにそれぞれ対応した複数のメモリセル210にそれぞれ垂直方向の1列分の画素データが記憶されるものを示したが、上述したメモリブロック125のメモリ・セル・アレイ131の場合と同様に、各分割ワード線WLa〜WLeにそれぞれ対応した複数のメモリセル210にそれぞれ水平方向の1列分の画素データが記憶されるようにしてもよい。
【0177】
また、各分割ワード線WLa〜WLeにそれぞれ対応した複数のメモリセル210に、それぞれ画像データを構成する水平方向または垂直方向のm列分(mは2以上の整数)の画素データが記憶されるようにしてもよい。この場合、参照ブロックの位置は、水平方向のm列分の画素データが記憶されるときには垂直方向にはm画素単位で移動でき、また、垂直方向のm列分の画素データが記憶されるときには水平方向にはm画素単位で移動可能となる。
【0178】
また、上述では、メモリ・セル・アレイ201の各分割領域201a〜201eで同時に活性化される分割ワード線を切り換えるために、各分割領域201a〜201eの間に切り換え機構220(図33参照)が配されるものを示したが、この切り換え機構220の代わりに、上述したメモリブロック125のメモリ・セル・アレイ131の場合と同様に、図27に示す切り換え機構180A、あるいは図28に示す切り換え機構180Bと同様の構成を採用することもできる。ただしこの場合には、メモリ・セル・アレイ201は、各ワード線WL(分割ワード線WLa〜WLeで構成される)に平行する、セル選択信号を入力するグローバルワード線を備えている必要がある。
【0179】
なお、詳細説明は省略するが、上述したメモリブロック191の構成を、上述したメモリブロック125の記憶データ側にも採用してもよい。これにより、任意のブロックを構成する全画素データをビット毎に記憶している複数のメモリセル140を同時に選択して当該ブロックを構成する全画素データの同時読み出し、または同時書き込みを行うことが可能となる。
【0180】
以上説明したように、本実施の形態においては、メモリブロック125を構成するメモリセル140に論理演算を行う演算機能部が含まれていると共に(図15参照)、このメモリブロック125に演算データを用いて数値演算を行うための演算補助セル134d(図10,図12参照)を有するものであり、幅の広いデータ・バスを用いて処理回路にデータを伝送することなく、高速かつ効率的に所望の演算処理を行わせることができる。
【0181】
また、メモリブロック125において、記憶データの書き込み、読み出しは、複数のビット線BL,/BL、複数のワード線WLを用いて行われるのに対して、演算データD0〜Dm-1の出力は、複数の参照データ入力線RDL,/RDL、複数の演算データ出力線DAL,DBLおよび複数のセル選択線WLFを用いて行われるものであり(図9、図11参照)、記憶データの書き込み、読み出しと、演算データの出力とを独立して行うことができ、全体としてより柔軟で効率的な処理を行うことができる。
【0182】
また、探索フレームメモリ124を構成するメモリブロック125において、メモリ・セル・アレイ131のマトリックス状に配された複数のメモリセル140の領域が、セル選択線WLFに沿う方向に分割された複数の分割領域131a〜131eからなり、複数のセル選択線WLFが、それぞれ、複数の分割領域131a〜131eに対応して分割された複数の分割セル選択線WLFa〜WLFeからなり、各分割領域131a〜131eで同時に活性化される分割セル選択線を切り換えるための切り換え機構180,180A,180Bが配されるものであり(図22、図23、図27、図28参照)、分割セル選択線単位で階段状に並ぶ複数のメモリセル140の演算データを複数の演算データ出力線DAL,DBLに出力して、演算補助セル134dで処理できる。
【0183】
この場合、1つの分割セル選択線に対応する複数のメモリセル140に、画像データを構成する垂直方向または水平方向の整数列分(1列分またはm列分(mは2以上の整数))の画素データが記憶されるものであり、候補ブロックを構成する複数の画素データに対応した演算データを、同時に複数の演算データ出力線DAL,DBLに出力でき、これらを用いた数値演算を複数の演算補助セル150,170(図19、図20参照)で同時並行的に行うことができる。したがって、動きベクトルMVを求めるための所定の候補ブロックの複数の画素データに係る複数の差分絶対値D0〜Dm-1を同時に得ることができ、データ処理効率を大幅に向上できる。
【0184】
また、メモリブロック125の参照データ用カラム・アドレス・デコーダ134aのI/Oゲート(カラム・スイッチ)によるメモリセル140の選択により、矩形または十字形等の任意の形状の候補ブロックに対処できる。また、1つの分割セル選択線に対応する複数のメモリセル140に、画像データを構成する垂直方向または水平方向の整数列分の画素データを記憶しているので、切り換え機構180(180A,180B)とI/Oゲート(カラム・スイッチ)の共働により、候補ブロックの位置を水平、垂直の双方向に容易に移動できる。
【0185】
また、参照フレームメモリ123を構成するメモリブロック191において、メモリ・セル・アレイ201のマトリックス状に配された複数のメモリセル210の領域が、ワード線に沿う方向に分割された複数の分割領域201a〜201eからなり、複数のワード線WLが、それぞれ、複数の分割領域201a〜201eに対応して分割された複数の分割ワード線WLa〜WLeからなり、各分割領域201a〜201eで同時に選択される分割セル選択線を切り換えるための切り換え機構220が配されるものであり(図32,図33参照)、分割ワード線単位で階段状に並ぶ複数のメモリセル210を同時に選択できる。
【0186】
この場合、1つの分割ワード線に対応する複数のメモリセル140に、画像データを構成する垂直方向または水平方向の整数列分(1列分またはm列分(mは2以上の整数))の画素データが記憶されるものであり、参照ブロックを構成する複数の画素データを同時に読み出すことができ、それを探索フレームメモリ124に同時に供給でき、処理の高速化を図ることができる。
【0187】
また、メモリブロック191の記憶データ用カラム・アドレス・デコーダ202aのI/Oゲート(カラム・スイッチ)によるメモリセル210の選択により、矩形または十字形等の任意の形状の参照ブロックに対処できる。また、1つの分割ワード線に対応する複数のメモリセル210に、画像データを構成する垂直方向または水平方向の整数列分の画素データを記憶しているので、切り換え機構220とI/Oゲート(カラム・スイッチ)の共働により、参照ブロックの位置を水平、垂直の双方向に容易に移動できる。
【0188】
また、探索フレームメモリ124は、複数、例えば4個のメモリブロック125a〜125dで構成され、これらには探索フレームの左上、右上、左下、右下の各部分の境界部に対応して重複した画素データが記憶されるものであり、所定の候補ブロックの中心画素の範囲が、探索フレームの左上、右上、左下、右下の各部分にある場合には、それぞれメモリブロック125a,125b,125c,125dのみを活性化させればよく、消費電力を少なく抑えることができる。
【0189】
また、参照フレームメモリ123は、複数、例えば4個のメモリブロック191a〜191dで構成され、これらには参照フレームの左上、右上、左下、右下の各部分の境界部に対応して重複した画素データが記憶されるものであり、所定の参照ブロックの中心画素の範囲が、参照フレームの左上、右上、左下、右下の各部分にある場合には、それぞれメモリブロック191a,191b,191c,191dのみを活性化させればよく、消費電力を少なく抑えることができる。
【0190】
このように、探索フレームメモリ124,参照フレームメモリ123においては、それぞれ候補ブロックの画素データに係る演算データ、参照ブロックの画素データを得るために、いずれか1個のメモリブロックのみを活性化すればよく、従って他のメモリブロックに関しては他の処理のために使用することも可能となる。これにより、複雑な処理を効率よく行うことが可能となる。
【0191】
また、上述した参照フレームメモリ123、探索フレームメモリ124を使用して構成される動きベクトル検出回路111および動き補償予測符号化装置100では、動きベクトルMVの検出のための処理の高速化、効率化を図ることができる。
【0192】
なお、上述実施の形態において、探索フレームメモリ124はメモリブロック125a〜125dからなり、これらのメモリブロック125a〜125dからの差分絶対値D0〜Dm-1をそのまま出力するものであるが、この探索フレームメモリ124に、これら差分絶対値D0〜Dm-1を累積する回路、累積値を格納する回路、さらには累積値から動きベクトルMVを検出する回路等の回路ブロックを一体的に有する構成とすることも考えられる。これにより、さらに処理の高速化、効率化を図ることができる。
【0193】
また、上述実施の形態においては、フレームメモリ123,124を構成する4個のメモリブロックには、それぞれ左上、右上、左下、右下の各部分の画素データが記憶されるものを示したが、それぞれに記憶される画素データを、データ入力順、あるいは画素位置に応じた複数の位相に対応させてもよい。
【0194】
また、上述実施の形態においては、動きベクトル検出回路111では、判断回路128で、差分絶対値の累積値(絶対値和)に基づいて動きベクトルMVを検出するものであったが、二乗和または絶対値のn乗和などに基づいて動きベクトルを検出するものも同様に構成することができる。その場合、図6に示す動きベクトル検出回路111では、フレームメモリ124から直接、差分の二乗値あるいは差分のn乗値を得るようにすればよい。
【0195】
また、上述実施の形態においては、この発明に係る半導体メモリ装置を、動きベクトル検出回路111、動き補償予測符号化装置100に適用したものを示したが、その他の装置にも同様に適用できることは勿論である。
【0196】
【発明の効果】
この発明に係る半導体メモリ装置によれば、メモリブロックを構成するメモリセルに論理演算を行う演算機能部が含まれていると共に、このメモリブロックに演算データを用いて数値演算を行うための演算補助セルを有するものであり、幅の広いデータ・バスを用いて処理回路にデータを伝送することなく、高速かつ効率的に所望の演算処理を行わせることができる。
【0197】
また、この発明に係る半導体メモリ装置によれば、記憶データの書き込み、読み出しは、複数のビット線、複数のワード線を用いて行われ、演算データの出力は、複数の参照データ入力線、複数の演算データ出力線および複数のセル選択線を用いて行われるものであり、記憶データの書き込み、読み出しと、演算データの出力とを独立して行うことができ、全体としてより柔軟で効率的な処理が可能となる。
【0198】
また、この発明に係る半導体メモリ装置によれば、マトリックス状に配された複数のメモリセルの領域は、セル選択線に沿う方向に分割された複数の分割領域からなり、複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、メモリブロックは、各分割領域で同時に活性化される分割セル選択線を切り換えるための切り換え機構を有するものであり、マトリックス状に配された複数のメモリセルのセル選択線に沿う方向に、分割セル選択線単位で階段状に並ぶ複数のメモリセルの演算データを演算データ出力線に出力して、演算補助セルで処理することが可能となる。
【0199】
この場合、画像データを構成する画素データをマトリックス状に配された複数のメモリセルに適切に配置しておくことで、矩形または十字形等の任意の形状の画素ブロックを構成する複数の画素データに対応した演算データを同時に複数の演算データ出力線に出力でき、これらを用いた数値演算を複数の演算補助セルで一括、同時に行うことができ、データ処理効率の大幅な向上を図ることができ、また当該画素ブロックの位置を容易に変更可能となる。例えば、1つの分割セル選択線に対応する複数のメモリセルに、画像データを構成する垂直方向または水平方向の整数列分の画素データが記憶されることにより、上述の画素ブロックを水平方向または垂直方向に整数画素単位で移動させることができ、一方それと直交する方向に1画素単位で移動させることができる。
【0200】
また、この発明に係る半導体メモリ装置によれば、複数のメモリブロックで構成されることで、必要なメモリブロックのみを活性化させて使用でき、消費電力を少なく抑えることができる。
【0201】
また、この発明に係る半導体メモリ装置によれば、1個または2個以上のメモリブロックの他に、メモリブロックより出力される演算データに基づく処理を行う回路ブロックを有するものであり、さらに処理の高速化、効率化を図ることが可能となる。
【0202】
また、この発明に係る動きベクトル検出装置および動き補償予測符号化装置は、この発明に係る半導体メモリ装置を用いるものであり、動きベクトル検出のための処理の高速化、効率化を図ることができる。
【図面の簡単な説明】
【図1】実施の形態としての動き補償予測符号化装置の構成を示すブロック図である。
【図2】動き検出のためのブロックマッチング法を説明するための図である。
【図3】動き検出のためのブロックマッチング法を説明するための図である。
【図4】動き検出のためのブロックマッチング法を説明するための図である。
【図5】動き検出のためのブロックマッチング法を説明するための図である。
【図6】動きベクトル検出回路の構成を示すブロック図である。
【図7】探索フレームの画像データを蓄積するフレームメモリ(探索フレームメモリ)の構成を示す図である。
【図8】探索フレームメモリを構成する各メモリブロック間の画素データの重複を説明するための図である。
【図9】探索フレームメモリを構成するメモリブロックの構成例を示す図である。
【図10】探索フレームメモリを構成するメモリブロックの構成例を示す図である。
【図11】探索フレームメモリを構成するメモリブロックの他の構成例を示す図である。
【図12】探索フレームメモリを構成するメモリブロックの他の構成例を示す図である。
【図13】SRAMセルの構成を示す図である。
【図14】DRAMセルの構成を示す図である。
【図15】演算機能部を有するメモリセルの構成を示す図である。
【図16】演算機能部を有する他のメモリセルの構成を示す図である。
【図17】演算機能部を有する他のメモリセルの構成を示す図である。
【図18】演算機能部を有するさらに他のメモリセルの構成を示す図である。
【図19】加算、減算用の演算補助セルの構成を示す図である。
【図20】差分絶対値演算用の演算補助セルの構成を示す図である。
【図21】差分絶対値を得るための演算補助セル(1画素データ分)の構成を示す図である。
【図22】探索フレームの画素データとメモリ・セル・アレイ内の記憶位置を示す図である。
【図23】分割セル選択線の切り換え機構の構成例を示す図である。
【図24】探索フレームの画素データとメモリ・セル・アレイ内の記憶位置を示す図である。
【図25】探索フレームの画素データとメモリ・セル・アレイ内の記憶位置を示す図である。
【図26】探索フレームの画素データとメモリ・セル・アレイ内の記憶位置を示す図である。
【図27】分割セル選択線の切り換え機構の他の構成例を示す図である。
【図28】分割セル選択線の切り換え機構のさらに他の構成例を示す図である。
【図29】参照フレームの画像データを蓄積するフレームメモリ(参照フレームメモリ)の構成を示す図である。
【図30】参照フレームメモリを構成するメモリブロックの構成例を示す図である。
【図31】参照フレームメモリを構成するメモリブロックの構成例を示す図である。
【図32】参照フレームの画素データとメモリ・セル・アレイ内の記憶位置を示す図である。
【図33】分割ワード線の切り換え機構の構成例を示す図である。
【符号の説明】
100・・・動き補償予測符号化装置、101・・・入力端子、102・・・減算器、103・・・DCT回路、104・・・量子化回路、105・・・出力端子、106・・・逆量子化回路、107・・・逆DCT回路、108・・・加算器、109・・・フレームメモリ、110・・・動き補償回路、111・・・動きベクトル検出回路、121・・・コントローラ、122・・・入力端子、123,124・・・フレームメモリ、125,125a〜125d・・・メモリブロック、126・・・累積器、127・・・相関値テーブル、128・・・判断回路、129・・・出力端子、131・・・メモリ・セル・アレイ、131a〜131e・・・分割領域、132・・・記憶データ入出力用ポート、132a・・・記憶データ用カラム・アドレス・デコーダ、132b・・・I/Oバッファ、132c・・・アドレス・バッファ、133・・・記憶データ用ロウ・アドレス・デコーダ、133a・・・アドレス・バッファ、134・・・参照データ入力用ポート&演算補助セル、134a・・・参照データ用カラム・アドレス・デコーダ、134b・・・アドレス・バッファ、134c・・・I/Oバッファ、134d・・・演算補助セル、135・・・参照データ用ロウ・アドレス・デコーダ、135a・・・アドレス・バッファ、136・・・制御回路、140・・・メモリセル、141・・・メモリセル部、150・・・演算補助セル、170・・・演算補助セル、180,180A,180B・・・切り換え機構、191,191a〜191e・・・メモリブロック、201・・・メモリ・セル・アレイ、202・・・記憶データ入出力用ポート、203・・・記憶データ用ロウ・アドレス・デコーダ、204・・・制御回路、210・・・メモリセル、220・・・切り換え機構[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a semiconductor memory device, a motion vector detection device, and a motion compensated prediction encoding device. Specifically, the memory cell includes a calculation function unit that performs a logical operation using the stored data and the reference data from the reference data input unit, and a numerical value using the calculation data output from the calculation data output unit of the memory cell. A semiconductor memory capable of performing desired arithmetic processing at high speed and efficiently without transmitting data to a processing circuit using a wide data bus by using a configuration having an arithmetic auxiliary cell for performing arithmetic operations. It relates to the device.
[0002]
[Prior art]
The function of the conventional semiconductor memory device is storage of input data, and the calculation and processing of data are performed by other semiconductor devices. On the other hand, by having a memory function, a calculation function, and a processing function in one semiconductor device, there is a possibility that higher-speed calculation and processing can be performed.
[0003]
One example is an SOC (System On Chip) in which a memory and a logic circuit are juxtaposed on a single semiconductor chip. In contrast to this, there is a functional memory such as a CAM (Content Addressable Memory), for example, which has a calculation function in the memory itself.
[0004]
[Problems to be solved by the invention]
The former is still based on the old Neumann architecture, and the memory and logic circuit are integrated into a single chip, which increases the bus width between them and speeds up the clock to speed up processing. It is intended. There is an aspect of suppressing the so-called von Neumann bottleneck with force, and it is not necessarily an excellent solution or avoidance method.
[0005]
On the other hand, in the latter, high speed can be achieved by processing all data simultaneously by parallel processing in SIMD (Single Instruction Stream Multiple Data Stream) format. There may be a problem that a waiting time is required until all data is collected, or that different processing cannot be performed for each partial data. In many cases, the calculation of the entire bits constituting the data, that is, the processing of the entire data, is performed by accumulating repeated operations for each bit.
[0006]
These are not necessarily separated clearly, and there is a possibility that more appropriate processing can be performed by combining good points. For example, if the data required for a certain process is a part of the whole, if you execute partial parallel processing only for those data when they are complete, without waiting for all the data to be complete Good.
[0007]
In addition, since the memory or the memory cell itself has a necessary arithmetic function, data is not transmitted from the memory to the processing circuit using a wide data bus, and all bits can be simultaneously transmitted on the spot. It is also conceivable to perform an operation. Furthermore, by making the writing and reading of the stored data independent of the calculation and processing based on the stored data, it can be expected that more flexible and efficient processing can be performed as a whole.
Therefore, an object of the present invention is to provide a semiconductor memory device or the like that can perform desired arithmetic processing efficiently at high speed.
[0008]
[Means for Solving the Problems]
A semiconductor memory device according to the present invention includes: Computational auxiliary cells and multiple memory cells arranged in a matrix A semiconductor memory device including one or two or more memory blocks, each of which has a memory cell portion that stores data of “1” or “0”, and a reference for inputting reference data A data input unit, a calculation function unit that performs logical calculation of the stored data stored in the memory cell unit and the reference data from the reference data input unit, and calculation data obtained by calculation in the calculation function unit are output. A calculation data output unit, a cell selection signal input unit for inputting a cell selection signal, and a calculation data output unit for calculating calculation data from the calculation function unit based on the cell selection signal input to the cell selection signal input unit And an output control unit for outputting to the calculation data cell, the calculation auxiliary cell includes a calculation data input unit for inputting calculation data output to the calculation data output unit of the memory cell, and an input to the calculation data input unit. A calculation unit that performs numerical calculation using the input calculation data, and a calculation data output unit that outputs calculation data obtained by the calculation unit A plurality of memory cell regions arranged in a matrix form is composed of a plurality of divided regions, and the memory block is configured such that the cell selection signal input unit of the memory cell belonging to the divided region to be activated receives the cell selection signal. Has a switching mechanism to control the memory cell to input Is.
[0009]
The semiconductor memory device according to the present invention is a semiconductor memory device including one or two or more memory blocks each having a memory cell and an operation auxiliary cell, and the memory block includes a plurality of memory blocks for transferring data. Bit lines, a plurality of word lines orthogonal to the plurality of bit lines, a reference data input line for inputting reference data parallel to the plurality of bit lines, and an operation data parallel to the plurality of bit lines Calculation data output line for outputting a cell, a cell selection line for inputting a cell selection signal parallel to a plurality of word lines, a bit line, a word line, a reference data input line, a calculation data output line and a cell selection A number using a plurality of memory cells connected to a line and arranged in a matrix, and at least a part of operation data output from a plurality of operation data output lines A plurality of operation auxiliary cells for performing an operation, the memory cell being connected to a bit line and a word line, connected to a memory cell portion storing data of “1” or “0” and a reference data input line; A reference data input unit for inputting reference data, an arithmetic function unit for performing logical operation of the stored data stored in the memory cell unit and the reference data from the reference data input unit, and an arithmetic data output line A calculation data output unit for outputting calculation data obtained by calculation in the calculation function unit to a calculation data output line; a cell selection signal input unit for inputting a cell selection signal connected to the cell selection line; A calculation data output unit for outputting calculation data obtained by calculation in the calculation function unit to a calculation data output line based on the cell selection signal input to the cell selection signal input unit. The regions of the plurality of memory cells arranged in a matrix form are composed of a plurality of divided regions divided in the direction along the word line, and the plurality of cell selection lines correspond to the plurality of divided regions, respectively. The memory block has a switching mechanism for switching the divided cell selection lines activated simultaneously in each divided region. Is.
[0010]
The semiconductor memory device according to the present invention is a semiconductor memory device including one or two or more memory blocks each having a memory cell and an operation auxiliary cell, and the memory block includes a plurality of memory blocks for transferring data. Bit lines, a plurality of word lines orthogonal to the plurality of bit lines, a reference data input line for inputting reference data, orthogonal to the plurality of bit lines, and operation data orthogonal to the plurality of bit lines Operation data output line for outputting, cell selection line for inputting a cell selection signal orthogonal to a plurality of word lines, bit line, word line, reference data input line, operation data output line and cell selection A number using a plurality of memory cells connected to a line and arranged in a matrix, and at least a part of operation data output from a plurality of operation data output lines A plurality of operation auxiliary cells for performing an operation, and the memory cell is connected to a bit line and a word line, and is connected to a memory cell portion for storing data of “1” or “0” and a reference data input line A reference data input unit for inputting reference data, an arithmetic function unit for performing a logical operation of the stored data stored in the memory cell unit and the reference data from the reference data input unit, and a calculation data output line A calculation data output unit for outputting calculation data obtained by calculation in the calculation function unit to a calculation data output line, and a cell selection signal input unit for inputting a cell selection signal connected to the cell selection line And a calculation data output unit for outputting calculation data obtained by calculation by the calculation function unit to the calculation data output line based on the cell selection signal input to the cell selection signal input unit. The regions of the plurality of memory cells arranged in a matrix form are composed of a plurality of divided regions divided in the direction along the bit line, and the plurality of cell selection lines correspond to the plurality of divided regions, respectively. The memory block has a switching mechanism for switching the divided cell selection lines activated simultaneously in each divided region. Is.
[0011]
A 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 stores a plurality of pixel data constituting the reference frame. 1 memory unit, a second memory unit that stores a plurality of pixel data constituting a search frame, and a plurality of pixel data of a reference block is read out from the first memory unit and used as reference data in the second memory unit. In addition, in the second memory unit, the pixel data of the candidate block is read for each of the plurality of candidate blocks corresponding to the reference block, and the difference for each pixel data between the candidate block and the reference block is calculated. And a pixel for each of a plurality of candidate blocks output from the second memory unit Based on the difference for each over data, motion vector corresponding to the reference block and a motion vector detecting section for detecting a second memory portion, Computational auxiliary cells and multiple memory cells arranged in a matrix The memory cell includes a memory cell portion that stores data of “1” or “0”, a reference data input portion for inputting reference data, and , An arithmetic function unit for performing a logical operation between the stored data stored in the memory cell unit and the reference data from the reference data input unit, and an arithmetic data output for outputting the arithmetic data obtained by the arithmetic function unit Unit, a cell selection signal input unit for inputting a cell selection signal, and based on the cell selection signal input to the cell selection signal input unit, the calculation data from the calculation function unit is output to the calculation data output unit The operation auxiliary cell includes an operation data input unit for inputting operation data output to the operation data output unit of the memory cell, and an operation input to the operation data input unit. And an arithmetic unit that obtains a difference by performing a numerical operation using data A plurality of memory cell regions arranged in a matrix form is composed of a plurality of divided regions, and the memory block is configured such that the cell selection signal input unit of the memory cell belonging to the divided region to be activated receives the cell selection signal. Has a switching mechanism to control the memory cell to input Is.
[0012]
A 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 stores a plurality of pixel data constituting the reference frame. 1 memory unit, a second memory unit that stores a plurality of pixel data constituting a search frame, and a plurality of pixel data of a reference block is read out from the first memory unit and used as reference data in the second memory unit. In addition, in the second memory unit, the pixel data of the candidate block is read for each of the plurality of candidate blocks corresponding to the reference block, and the difference for each pixel data between the candidate block and the reference block is calculated. And a pixel for each of a plurality of candidate blocks output from the second memory unit And a motion vector detection unit that detects a motion vector corresponding to the reference block based on a difference for each data, and each of the second memory units is composed of one or more semiconductor memory blocks. The memory block includes a plurality of bit lines for transferring data, a plurality of word lines orthogonal to the plurality of bit lines, and a reference data input line for inputting reference data parallel to the plurality of bit lines. Parallel operation data output lines for outputting operation data, cell selection lines for inputting cell selection signals, bit lines, word lines, reference parallel to a plurality of bit lines Calculation data output from a plurality of memory cells connected to the data input line, calculation data output line, and cell selection line and arranged in a matrix, and a plurality of calculation data output lines And a plurality of operation auxiliary cells that obtain a difference by performing a numerical operation using at least a part of the memory cell, and the memory cell is connected to the bit line and the word line and stores data of “1” or “0” Connected to the memory cell portion and the reference data input line, and performs a logical operation on the reference data input portion for inputting reference data, the stored data stored in the memory cell portion, and the reference data from the reference data input portion. Calculation function unit, connected to calculation data output line, calculation data output unit for outputting calculation data obtained by calculation in calculation function unit to calculation data output line, cell selection line, cell selection Based on the cell selection signal input unit for inputting a signal and the cell selection signal input to the cell selection signal input unit, the calculation data obtained by calculation in the calculation function unit is output to the calculation data output line. And an arithmetic data output unit of the order The regions of the plurality of memory cells arranged in a matrix form are composed of a plurality of divided regions divided in the direction along the word line, and the plurality of cell selection lines correspond to the plurality of divided regions, respectively. The memory block has a switching mechanism for switching the divided cell selection lines activated simultaneously in each divided region. Is.
[0013]
A 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 stores a plurality of pixel data constituting the reference frame. 1 memory unit, a second memory unit that stores a plurality of pixel data constituting a search frame, and a plurality of pixel data of a reference block is read out from the first memory unit and used as reference data in the second memory unit. In addition, in the second memory unit, the pixel data of the candidate block is read for each of the plurality of candidate blocks corresponding to the reference block, and the difference for each pixel data between the candidate block and the reference block is calculated. And a pixel for each of a plurality of candidate blocks output from the second memory unit And a motion vector detection unit that detects a motion vector corresponding to the reference block based on a difference for each data, and each of the second memory units is composed of one or more semiconductor memory blocks. The memory block includes a plurality of bit lines for transferring data, a plurality of word lines orthogonal to the plurality of bit lines, and a reference data input line for inputting reference data orthogonal to the plurality of bit lines. , Operation data output lines for outputting operation data orthogonal to a plurality of bit lines, cell selection lines for inputting cell selection signals orthogonal to a plurality of word lines, bit lines, word lines, reference Calculation data output from a plurality of memory cells connected to the data input line, calculation data output line, and cell selection line and arranged in a matrix, and a plurality of calculation data output lines And a plurality of operation auxiliary cells that obtain a difference by performing a numerical operation using at least a part of the memory cell, and the memory cell is connected to the bit line and the word line and stores data of “1” or “0” Connected to the memory cell portion and the reference data input line, and performs a logical operation on the reference data input portion for inputting reference data, the stored data stored in the memory cell portion, and the reference data from the reference data input portion. Calculation function unit, connected to calculation data output line, calculation data output unit for outputting calculation data obtained by calculation in calculation function unit to calculation data output line, cell selection line, cell selection Based on the cell selection signal input unit for inputting signals and the cell selection signal input to the cell selection signal input unit, the operation data obtained by the operation of the operation function unit is output to the operation data output line. And a because of the operation data output unit The regions of the plurality of memory cells arranged in a matrix form are composed of a plurality of divided regions divided in the direction along the bit line, and the plurality of cell selection lines correspond to the plurality of divided regions, respectively. The memory block has a switching mechanism for switching the divided cell selection lines activated simultaneously in each divided region. Is.
[0014]
The motion compensated predictive coding apparatus according to the present invention performs motion compensation using the motion vector detected by the motion vector detecting apparatus described above.
[0015]
In the present invention, a semiconductor memory device is composed of one or more memory blocks each having a memory cell and an operation auxiliary cell. In the arithmetic function unit of the memory cell, a logical operation is performed using the stored data “1” or “0” stored in the memory cell unit and the reference data from the reference data input unit, and the cell selection signal input unit When the cell selection signal is input to the operation data, the operation data obtained by the operation by the operation function unit is output to the operation data output unit. In the operation auxiliary cell, a numerical operation using the operation data output to the operation data output unit of the memory cell is performed, and the operation data is output to the operation data output unit.
[0016]
For example, the arithmetic function unit of the memory cell performs a plurality of logical operations in parallel, and the arithmetic unit of the operation auxiliary cell performs a numerical operation using a plurality of arithmetic data obtained by the plurality of logical operations.
[0017]
In addition, for example, the calculation auxiliary cell includes a first calculation auxiliary cell unit and a second calculation auxiliary cell unit. In the first auxiliary cell unit, a calculation obtained by calculation in the calculation function unit of the memory cell. The first numerical calculation using the data is performed, and the second numerical calculation cell using the calculation data obtained by the calculation in the plurality of first auxiliary cell units is performed in the second calculation auxiliary cell unit. Is called. In this case, when the first numerical calculation is subtraction and the second numerical calculation is an absolute value calculation, an absolute difference value is obtained as calculation data output from the calculation auxiliary cell.
[0018]
As described above, the memory cell constituting the memory block includes an arithmetic function unit for performing a logical operation, and the memory block further includes an arithmetic auxiliary cell for performing a numerical operation using the arithmetic data. It is possible to perform desired arithmetic processing at high speed and efficiently in the memory block without transmitting data to the processing circuit using a wide data bus.
[0019]
For example, the memory block has a plurality of bit lines for transferring data, a plurality of word lines orthogonal to the plurality of bit lines, and a reference for inputting reference data parallel to or orthogonal to the plurality of bit lines. A data input line and a calculation data output line for outputting calculation data and a cell selection line for inputting a cell selection signal that is parallel or orthogonal to a plurality of word lines are arranged. These bit lines and words A plurality of memory cells arranged in a matrix are connected to the line, the reference data input line, the operation data output line, and the cell selection line. Then, numerical calculations are performed in at least some of the calculation data output from the plurality of calculation data output lines in the plurality of calculation auxiliary cells.
[0020]
In this case, writing and reading of stored data are performed using a plurality of bit lines and a plurality of word lines. On the other hand, calculation data is output using a plurality of reference data input lines, a plurality of calculation data output lines, and a plurality of cell selection lines. As a result, writing and reading of stored data and output of calculation data can be performed independently, and as a whole, more flexible and efficient processing is possible.
[0021]
For example, a plurality of memory cell regions arranged in a matrix form include a plurality of divided regions divided in a direction along the cell selection line, and each of the plurality of cell selection lines corresponds to the plurality of divided regions. It consists of a plurality of divided cell selection lines. The memory block has a switching mechanism for switching divided cell selection lines that are activated simultaneously in each divided region. As a result, operation data of a plurality of memory cells arranged in a stepwise manner in divided cell selection line units in the direction along the cell selection line of the plurality of memory cells arranged in a matrix is output to the operation data output line. It is possible to process in the auxiliary cell.
[0022]
In this case, a plurality of pixel data constituting a pixel block of an arbitrary shape such as a rectangle or a cross shape by appropriately arranging the pixel data constituting the image data in a plurality of memory cells arranged in a matrix. Can be simultaneously output to a plurality of operation data output lines, and numerical operations using these can be performed simultaneously in a plurality of operation auxiliary cells, thereby greatly improving the data processing efficiency. In addition, the position of the pixel block can be easily changed.
[0023]
For example, pixel data for integer columns in the vertical direction or horizontal direction constituting the image data is stored in a plurality of memory cells corresponding to one divided cell selection line, so that the above-described pixel block is horizontally or vertically aligned. It can be moved in units of integer pixels in the direction, while it can be moved in units of one pixel in a direction orthogonal thereto.
[0024]
In addition to the above-described one or more memory blocks, a semiconductor memory device having a circuit block that performs processing based on operation data output from the memory block can further increase the processing speed and efficiency. It becomes possible.
[0025]
Note that the semiconductor memory device described above is used in the memory unit of the motion vector detection circuit of the motion vector detection device or motion compensation predictive coding device, so that the processing for motion vector detection can be speeded up and made efficient. .
[0026]
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.
[0027]
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.
[0028]
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 and supplies the motion vector MV of the image data Di supplied to the input terminal 101 to the motion compensation circuit 110. Yes.
[0029]
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.
[0030]
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.
[0031]
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 and subjected to inverse DCT. The differential 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.
[0032]
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.
[0033]
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.
[0034]
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.
[0035]
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.
[0036]
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.
[0037]
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
[0038]
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.
[0039]
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).
[0040]
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 to which image data Di is input, a frame memory 123 that stores image data of a reference frame, and image data of a search frame. And a frame memory 124 for accumulation. Operations such as writing and reading of these frame memories 123 and 124 are controlled by the controller 121.
[0041]
When image data of a certain frame is supplied from the input terminal 122 to the frame memory 123 and written, the image data of the previous frame stored in the frame memory 123 is read and supplied to the frame memory 124 for writing. It is.
[0042]
Based on the control of the controller 121, the frame memory 124 is supplied with the pixel data of the reference block from the frame memory 123, and the frame memory 124 receives each of the plurality of candidate blocks in the search range corresponding to the reference block. The difference absolute value between the pixel data of the candidate block and the pixel data of the reference block is calculated and output for each corresponding pixel data.
[0043]
Further, the motion vector detection circuit 111 accumulates an absolute difference value for each pixel data corresponding to each of a plurality of candidate blocks output from the frame memory 124, and a plurality of values obtained by the accumulator 126. A correlation value table 127 that stores the cumulative value for each candidate block as a correlation value;
[0044]
The motion vector detection circuit 111 also detects a motion vector MV based on the correlation value for each of the plurality of candidate blocks stored in the correlation value table 127, and the motion vector detected by the determination circuit 128. And an output terminal 129 for outputting MV. The determination circuit 128 detects the position of the candidate block that generates the minimum correlation value as the motion vector MV.
[0045]
The operation of the motion vector detection circuit 111 shown in FIG. 6 will be described.
Image data Di input to the input terminal 122 is supplied to the frame memory 123 and stored as image data of a reference frame. At this time, the image data of the previous frame stored in the frame memory 123 is read out, supplied to the frame memory 124, and stored as image data of the search frame.
[0046]
Image data of the reference block is supplied from the frame memory 123 to the frame memory 124. In the frame memory 124, for each of a plurality of candidate blocks in the search range corresponding to the reference block, an absolute difference value between the pixel data of the candidate block and the pixel data of the reference block is calculated for each corresponding pixel data. Is output. In this case, when the reference block and the candidate block are configured by P pixels × Q lines (see FIG. 3B), P × Q difference absolute values are obtained for each of the plurality of candidate blocks.
[0047]
As described above, the absolute difference value for each pixel data corresponding to each of the plurality of candidate blocks output from the frame memory 124 is sequentially supplied to the accumulator 126 and accumulated. The accumulated value for each of the plurality of candidate blocks from the accumulator 126 is supplied to the correlation value table 127 and stored as a correlation value. Then, the determination circuit 128 detects the position of the candidate block that generates the minimum correlation value as the motion vector MV based on the correlation value for each of the plurality of candidate blocks stored in the correlation value table 127 in this way.
[0048]
Image data of a plurality of reference blocks in the reference frame is sequentially supplied from the frame memory 123 to the frame memory 124. Therefore, the above-described operation is repeated in the frame memory 124, the accumulator 126, the correlation value table 127, and the determination circuit 128 corresponding to each reference block. Therefore, in the determination circuit 128, the motion vector MV corresponding to each reference block is obtained. Sequentially detected. Thus, the motion vector MV detected by the determination circuit 128 is output to the output terminal 129.
[0049]
Next, details of the frame memory 124 will be described.
As shown in FIG. 7, in the present embodiment, the frame memory 124 is composed of four memory blocks 125a to 125d, but the number of memory blocks constituting the frame memory 124 is limited to four. It is not a thing. Each of the memory blocks 125a to 125d includes a data input unit, a data output unit, a reference data input unit, and a calculation data output unit. In these memory blocks 125a, 125b, 125c, and 125d, pixel data of respective upper left, upper right, lower left, and lower right portions of the search frame are stored.
[0050]
When the range of the center pixel of the predetermined candidate block is in each of the upper left, upper right, lower left, and lower right portions of the search frame, only the memory blocks 125a, 125b, 125c, and 125d may be activated. Power consumption can be reduced.
[0051]
In this case, in each of the memory blocks 125a to 125d, pixel data near the boundaries of the upper left, upper right, lower left, and lower right portions of the search frame are stored redundantly. As described above, the pixel data is stored redundantly in the memory blocks 125a to 125d because the pixel data of the candidate block whose center pixel is in the vicinity of the boundary also needs pixel data at a position beyond the boundary. Because it becomes.
[0052]
FIG. 8 shows the upper left, upper right, lower left, and lower right portions Fa, Fb, Fc, and Fd of the search frames stored in the memory blocks 125a, 125b, 125c, and 125d, respectively. The memory blocks 125a and 125b store pixel data ha and hb that are overlapped in the horizontal direction, the memory blocks 125c and 125d store pixel data hc and hd that are overlapped in the horizontal direction, and the memory blocks 125a and 125c are vertical. Pixel data va and vb overlapping in the direction are stored, and pixel data vb and vd overlapping in the vertical direction are stored in the memory blocks 125b and 125d. The number of overlapping pixels in the horizontal and vertical directions of this pixel data increases as the size of the candidate block in the horizontal and vertical directions increases.
[0053]
FIG. 9 shows a configuration example of the memory block 125 (125a to 125d).
The memory block 125 includes a memory cell array 131 in which a plurality of memory cells are arranged in a matrix, a storage data input / output port (including a column address decoder) 132, a storage data row address, It has a decoder 133, a reference data input port & operation auxiliary cell (including a column address decoder) 134, and a reference data row address decoder 135.
[0054]
The memory cell array 131 includes a plurality of bit lines BL, / BL (/ BL represents a BL bar) for transferring data extending in the row direction, and a plurality of bit lines BL, Reference data input lines RDL and / RDL for inputting reference data parallel to the plurality of word lines WL orthogonal to / BL and the plurality of bit lines BL and / BL (/ RDL represents an RDL bar) And parallel operation data output lines DAL and DBL for outputting operation data parallel to the plurality of bit lines BL and / BL, and a cell selection line WLF for inputting a cell selection signal parallel to the word line WL. These bit lines BL, / BL, word lines WL, reference data input lines RDL, / RDL, operation data output lines DAL, DBL, and cell selection lines WLF are connected in a matrix. It consists of a number of memory cell 140..
[0055]
FIG. 10 shows in detail the configuration of the memory block 125 shown in FIG. 9 other than the memory cell array 131.
The storage data column address decoder 132a, the address buffer 132b, and the I / O buffer 132c constitute the storage data input / output port 132 in FIG. The column address decoder 132a includes an I / O gate (column switch), a sense amplifier, and the like. A column address is input to the column address decoder 132a via the address buffer 132b.
[0056]
The column address decoder 132a corresponds to the column address supplied via the address buffer 132b, and a plurality of bits connected to a plurality of predetermined memory cells 140 in the column direction of the memory cell array 131. The connection with the lines BL and / BL is secured, and the storage data can be written to and read from a predetermined memory cell in the column direction through the I / O buffer 132c and the column address decoder 132a.
[0057]
A row address is input to the stored data row address decoder 133 via the address buffer 133a. The row address decoder 133 activates a word line WL connected to a predetermined memory cell 140 in the row direction of the memory cell array 131 corresponding to the row address supplied via the address buffer 133a. The stored data can be written to and read from the predetermined memory cell 140 in the row direction through the I / O buffer 132c and the column address decoder 132a.
[0058]
Further, the reference data column address decoder 134a, the address buffer 134b, the I / O buffer 134c, and the operation auxiliary cell 134d constitute the reference data input port & operation auxiliary cell 134 in FIG. The column address decoder 134a includes an I / O gate (column switch), a sense amplifier, and the like. The column address is input to the column address decoder 134a via the address buffer 134b.
[0059]
The column address decoder 134a is connected to a plurality of predetermined memory cells 140 in the column direction of the memory cell array 131 corresponding to the column address supplied via the address buffer 134b. Connections between the operation data output lines DAL and DBL and the plurality of reference data input lines RDL and / RDL are secured. As a result, reference data is input to the predetermined plurality of memory cells 140 in the column direction via the I / O buffer 134c and the column address decoder 134a, and from the predetermined plurality of memory cells 140 in the column direction. The calculation data can be supplied to the calculation auxiliary cell 134d.
[0060]
Further, the row address is input to the reference data row address decoder 135 via the address buffer 135a. The row address decoder 135 is connected to a cell selection line WLF connected to a predetermined memory cell 140 in the row direction of the memory cell array 131 corresponding to the row address supplied via the address buffer 135a. A cell selection signal is supplied and activated. As a result, reference data is input to a predetermined memory cell 140 in the row direction through the I / O buffer 134c and the column address decoder 134a, and further, the row data is input through the column address decoder 134a and the I / O buffer 134c. It is possible to supply the operation data from the predetermined memory cell 140 in the direction to the operation auxiliary cell 134d.
[0061]
The control circuit 136 controls the operation of each circuit of the memory block 125 based on the control input. As will be described later, the region of the plurality of memory cells 140 arranged in a matrix in the memory cell array 131 includes a plurality of divided regions divided in the direction along the cell selection line WLF, and includes a plurality of cell selection lines. The WLF is composed of a plurality of divided cell selection lines divided corresponding to a plurality of divided regions, and the memory cell array 131 switches the divided cell lines activated simultaneously in each divided region. Switching mechanism is arranged. Control of this switching mechanism is also performed by the control circuit 136.
[0062]
FIG. 11 shows another configuration example of the memory block 125 (125a to 125d). In FIG. 11, parts corresponding to those in FIG. 9 are given the same reference numerals. The configuration of the memory block 125 shown in FIG. 11 differs from the configuration of the memory block 125 shown in FIG. 9 in the directions of the reference data input lines RDL and / RDL, the operation data output lines DAL and DBL, and the cell selection line WLF. ing.
[0063]
The memory block 125 includes a memory cell array 131 in which a plurality of memory cells are arranged in a matrix, a storage data input / output port (including a column address decoder) 132, a storage data row address, It has a decoder 133, a reference data input port & operation auxiliary cell (including a column address decoder) 134, and a reference data row address decoder 135.
[0064]
The memory cell array 131 includes a plurality of bit lines BL and / BL for transferring data extending in the row direction, and a plurality of word lines WL extending in the column direction and orthogonal to the plurality of bit lines BL and / BL. Reference data input lines RDL, / RDL for inputting reference data orthogonal to the plurality of bit lines BL, / BL, and DAL for outputting operation data orthogonal to the plurality of bit lines BL, / BL , DBL, a cell selection line WLF orthogonal to the word line WL for inputting a cell selection signal, these bit lines BL, / BL, word line WL, reference data input lines RDL, / RDL, operation data output line The memory cell 140 includes a plurality of memory cells 140 arranged in a matrix connected to the DAL and DBL and the cell selection line WLF.
[0065]
FIG. 12 shows in detail the configuration of a portion other than the memory cell array 131 of the memory block 125 shown in FIG. In FIG. 12, parts corresponding to those in FIG. 10 are given the same reference numerals.
[0066]
The storage data column address decoder 132a, the address buffer 132b, and the I / O buffer 132c constitute the storage data input / output port 132 in FIG. The column address decoder 132a includes an I / O gate (column switch), a sense amplifier, and the like. A column address is input to the column address decoder 132a via the address buffer 132b.
[0067]
The column address decoder 132a corresponds to the column address supplied via the address buffer 132b, and a plurality of bits connected to a plurality of predetermined memory cells 140 in the column direction of the memory cell array 131. The connection with the lines BL and / BL is secured, and the storage data can be written to and read from a predetermined memory cell in the column direction through the I / O buffer 132c and the column address decoder 132a.
[0068]
A row address is input to the stored data row address decoder 133 via the address buffer 133a. The row address decoder 133 activates a word line WL connected to a predetermined memory cell 140 in the row direction of the memory cell array 131 corresponding to the row address supplied via the address buffer 133a. The stored data can be written to and read from the predetermined memory cell 140 in the row direction through the I / O buffer 132c and the column address decoder 132a.
[0069]
The reference data column address decoder 134a, the address buffer 134b, the I / O buffer 134c, and the operation auxiliary cell 134d constitute the reference data input port & operation auxiliary cell 134 in FIG. The column address decoder 134a includes an I / O gate (column switch), a sense amplifier, and the like. The column address is input to the column address decoder 134a via the address buffer 134b.
[0070]
The column address decoder 134a is connected to a plurality of predetermined memory cells 140 in the row direction of the memory cell array 131 corresponding to the column address supplied via the address buffer 134b. Connections between the operation data output lines DAL and DBL and the plurality of reference data input lines RDL and / RDL are secured. Thus, reference data is input to the predetermined plurality of memory cells 140 in the row direction via the I / O buffer 134c and the column address decoder 134a, and from the predetermined plurality of memory cells 140 in the row direction. The calculation data can be supplied to the calculation auxiliary cell 134d.
[0071]
Further, the row address is input to the reference data row address decoder 135 via the address buffer 135a. The row address decoder 135 is connected to a cell selection line WLF connected to a predetermined memory cell 140 in the column direction of the memory cell array 131 corresponding to the row address supplied via the address buffer 135a. A cell selection signal is supplied and activated. As a result, the reference data is input to the predetermined memory cell 140 in the column direction through the I / O buffer 134c and the column address decoder 134a, and further, the column is transmitted through the column address decoder 134a and the I / O buffer 134c. It is possible to supply the operation data from the predetermined memory cell 140 in the direction to the operation auxiliary cell 134d.
[0072]
The control circuit 136 controls the operation of each circuit of the memory block 125 based on the control input. As will be described later, the region of the plurality of memory cells 140 arranged in a matrix in the memory cell array 131 includes a plurality of divided regions divided in the direction along the cell selection line WLF, and includes a plurality of cell selection lines. The WLF is composed of a plurality of divided cell selection lines divided corresponding to a plurality of divided regions, and the memory cell array 131 switches the divided cell lines activated simultaneously in each divided region. Switching mechanism is arranged. Control of this switching mechanism is also performed by the control circuit 136.
[0073]
Next, the memory cell 140 will be described.
First, a well-known SRAM (Static Random Access Memory) cell and DRAM (Dynamic Random Access Momory) cell will be described.
FIG. 13 shows an exemplary configuration of the SRAM cell. 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.
[0074]
The storage node N1 of the CMOS inverter 11 is connected to the bit line BL via an access transistor Q5 whose gate is connected to the word line WL. On the other hand, the storage node N2 of the CMOS inverter 12 is connected to the bit line / BL via an access transistor Q6 whose gate is connected to the word line WL.
[0075]
In the SRAM cell having such a configuration, data “1” or “0” is stored in the memory cell unit 13 including the pair of CMOS inverters 11 and 12. Then, read and write data transfer is performed between the memory cell portion 13 and the bit lines BL and / BL via the access transistors Q5 and Q6.
[0076]
FIG. 14 shows an exemplary configuration of a DRAM cell. Capacitors C1 and C2 are connected in series, and Vcc / 2 (Vcc is a power supply voltage) is applied to the middle point P of each other. The side opposite to the middle point P of the capacitor C1 is a storage node N1, and this storage node N1 is connected to the bit line BL via an access transistor Q7 whose gate is connected to the word line WL. The side opposite to the middle point P of the capacitor C2 is a storage node N2. This storage node N2 is connected to the bit line / BL via an access transistor Q8 whose gate is connected to the word line WL.
[0077]
In the DRAM cell having such a configuration, data “1” or “0” is stored in the memory cell portion 14 including the pair of capacitors C1 and C2. Then, read and write data transfer is performed between the memory cell portion 14 and the bit lines BL and / BL via the access transistors Q7 and Q8.
[0078]
FIG. 15 shows a configuration of the memory cell 140 in the present embodiment.
The storage node N1 of the memory cell portion 141 is connected to the bit line BL via an access transistor Q11 whose gate is connected to the word line WL. On the other hand, the storage node N2 of the memory cell portion 141 is connected to the bit line / BL via an access transistor Q12 whose gate is connected to the word line WL.
[0079]
Here, when the memory cell 140 is based on the SRAM cell, the memory cell unit 141 is configured in the same manner as the memory cell unit 13 of the SRAM cell shown in FIG. 13, for example, and the memory cell 140 is based on the DRAM cell. For example, the memory cell portion 14 of the DRAM cell shown in FIG.
[0080]
In this case, “1” or “0” data is stored in the memory cell portion 141. Then, read and write data transfer is performed between the memory cell portion 141 and the bit lines BL and / BL via the access transistors Q11 and Q12. That is, the reading of the storage data from the memory cell unit 141 and the writing of the storage data to the memory cell unit 141 are performed in the same manner as the memory cells shown in FIGS.
[0081]
The drains of N-type MOS transistors Q13 and Q14 whose gates are connected to the storage nodes N1 and N2 of the memory cell unit 141 are connected to each other, and the source of the MOS transistor Q13 is an input terminal 142a to which reference data RD is input. And the source of the MOS transistor Q14 is grounded. The drains of the N-type MOS transistors Q15 and Q16 whose gates are connected to the storage nodes N1 and N2 of the memory cell portion 141 are connected to each other, the source of the MOS transistor Q15 is connected to the input terminal 142a, and the MOS transistor Q16 Is connected to an input terminal 142b to which reference data / RD (/ RD represents an RD bar and RD is inverted) is input.
[0082]
The input terminal 142a is connected to the reference data input line RDL described above, and the reference data RD is input through the reference data input line RDL. On the other hand, the input terminal 142b is connected to the above-described reference data input line / RDL, and the reference data / RD is input through the reference data input line / RDL.
[0083]
Here, the MOS transistors Q13 to Q18 constitute an arithmetic function unit for obtaining exclusive OR inversion (ExNOR) and logical product (AND) of the storage data stored in the memory cell unit 141 and the reference data RD. ing. An ExNOR output is obtained at the connection point Pa between the MOS transistors Q15 and Q16, and an AND output is obtained at the connection point Pb between the MOS transistors Q13 and Q14.
[0084]
The drain of the N-type MOS transistor Q17 is connected to the connection point Pa between the MOS transistors Q15 and Q16, and the source of the MOS transistor Q17 is connected to the output terminal 143 for outputting the operation data DA. The drain of the N-type MOS transistor Q18 is connected to the connection point Pb of the MOS transistors Q13 and Q14, and the source of the MOS transistor Q18 is connected to the output terminal 144 for outputting the operation data DB. The gates of these MOS transistors Q17 and Q18 are connected to an input terminal 145 to which a cell selection signal CS is input.
[0085]
The output terminal 143 is connected to the calculation data output line DAL described above, and the calculation data DA is supplied to the calculation data output line DAL. On the other hand, the output terminal 143 is connected to the arithmetic data output line DBL described above, and arithmetic data DB is supplied to the arithmetic data output line DBL. Further, the input terminal 145 is connected to the cell selection line WLF described above, and the cell selection signal CS is input through the cell selection line WLF.
[0086]
Here, the MOS transistors Q17 and Q18 constitute a transfer gate as an output control unit, and are turned on when the cell selection signal CS of “1” is supplied to the input terminal 145. In this case, the ExNOR output obtained at the connection point Pa is output to the output terminal 143 as the operation data DA through the MOS transistor Q17. Similarly, the AND output obtained at the connection point Pb is output to the output terminal 144 as the operation data DB through the MOS transistor Q18.
[0087]
As described above, the calculation of the storage data of the memory cell unit 141 and the reference data RD and the output of the calculation data DA and DB can be performed independently of the writing and reading of the storage data, and this storage data is affected. There is nothing.
[0088]
As the memory cell 140 constituting the memory cell block 125 described above, the memory cell having the configuration shown in FIG. 15 is used, but other memory cells having the same arithmetic function unit can be similarly configured. 16 to 18 show examples of other memory cells. In FIGS. 16 to 18, portions corresponding to those in FIG. 15 are denoted by the same reference numerals.
[0089]
The memory cell shown in FIG. 16 has a calculation function unit and an output control unit related to ExNOR calculation. The memory cell shown in FIG. 17 has an arithmetic function unit and an output control unit related to an AND operation.
The memory cell shown in FIG. 18 includes a calculation function unit and an output control unit related to a logical sum inversion (NOR) calculation.
[0090]
The drains of N-type MOS transistors Q19 and Q20 whose gates are connected to the storage nodes N1 and N2 of the memory cell portion 141 are connected, the source of the MOS transistor Q19 is grounded, and the source of the MOS transistor Q20 is the reference data / The RD is connected to the input terminal 142b. The MOS transistor Q19, Q20 constitutes an arithmetic function unit for obtaining the logical sum (NOR) of the stored data stored in the memory cell unit 141 and the reference data RD, and the connection point of the MOS transistors Q19, Q20. A NOR output is obtained for Pb.
[0091]
The drain of the N-type MOS transistor Q21 is connected to the connection point Pc of the MOS transistors Q19 and Q20, and the source of the MOS transistor Q21 is connected to the output terminal 146 for outputting the operation data DC. The gate of the MOS transistor Q21 is connected to an input terminal 145 to which a cell selection signal CS is input. The MOS transistor Q21 forms a transfer gate as an output control unit, and is turned on when the cell selection signal CS of “1” is supplied to the input terminal 145. In this case, the NOR output obtained at the connection point Pc is output to the output terminal 146 as the operation data DC through the MOS transistor Q21.
[0092]
Next, the arithmetic auxiliary cell 134d constituting the memory block 125 will be described.
In the present embodiment, a plurality of calculation auxiliary cells 150 for addition and subtraction shown in FIG. 19 and a plurality of calculation auxiliary cells 170 for difference absolute value calculation shown in FIG. Is done.
[0093]
Of the plurality of memory cells 140 arranged in a matrix in the memory cell array 131, the row address input to the address buffer 135a and the column address input to the address buffer 134b (FIG. 10, FIG. 12), m × n memory cells 140 storing a plurality of pixel data constituting the candidate block for each bit are simultaneously selected. m represents the number of pixel data constituting the candidate block, and n represents the number of bits of the pixel data. In the operation auxiliary cell 134d, operation data DA and DB output to the output terminals 143 and 144 of the m × n memory cells 140 are respectively connected via m × n pairs of operation data output lines DAL and DBL. Supplied at the same time.
[0094]
First, the calculation auxiliary cell 150 will be described. In the portion of the operation auxiliary cell 134d, m × n operation auxiliary cells 150 are provided corresponding to the m × n memory cells 140 described above. FIG. 19 shows an operation auxiliary cell 150 corresponding to the i-th bit data of predetermined pixel data of the candidate block. Here, i = 0, 1,..., N−1, the 0th bit data is LSB (Least Significant Bit), and the n−1th bit data is MSB (Most Significant Bit). .
[0095]
In FIG. 19, the drains of N-type MOS transistors Q31 and Q32 are connected. The drains of the N-type MOS transistors Q33 and Q34 are connected to each other, and the source of the MOS transistor Q34 is grounded. An input terminal 151 to which the operation data DA (ExNOR output) from the corresponding memory cell 140 is input as operation data DAi is connected to the gates of the MOS transistors Q32 and Q34 via a series circuit of inverters IN1 and IN2. The connection points of the inverters IN1 and IN2 are connected to the gates of the MOS transistors Q31 and Q33.
[0096]
The input terminal 152 to which the carry output / Ci-1 (/ Ci-1 represents the Ci-1 bar and the carry output Ci-1 is inverted) from the lower order is input to the MOS transistor In addition to being connected to the source of Q32, it is connected to the respective sources of MOS transistors Q31 and Q33 via an inverter IN3.
[0097]
The input terminal 153 to which the operation data DB (AND output) from the corresponding memory cell 140 is input as the operation data DBi is connected to the input side of the NOR gate 154. The connection point of the MOS transistors Q33 and Q34 is connected to the input side of the NOR gate 154. The output side of the NOR gate 154 is connected to the output terminal 155 from which the carry output / Ci (/ Ci represents the Ci bar and the carry output Ci is inverted) to the higher order is output. . The connection point of the MOS transistors Q31 and Q32 is connected to an output terminal 156 from which the operation data Si is output via an inverter IN4.
[0098]
Here, the subtraction value output between the predetermined pixel data of the candidate block and the pixel data of the reference block corresponding to the predetermined pixel data of the candidate block is obtained by the n arithmetic auxiliary cells 150 corresponding to the predetermined pixel data (n bits) of the candidate block. . That is, the predetermined pixel data of the candidate block is Xi (i = 0, 1,..., N−1), and the pixel data of the corresponding reference block is Yi (i = 0, 1,..., N−1). ) And / Yi (/ Yi represents Yi bar and Yi is inverted) is supplied as the reference data RD of the memory cell 140 described above, and C -1 By setting = 1, the operation output Si and the carry output Ci are obtained as shown in the equations (1) and (2), respectively, and a subtraction value output is obtained. This subtraction value output is obtained as an offset binary in which the carry output Cn-1 indicates a positive or negative sign.
[0099]
[Expression 1]
Figure 0004122774
[0100]
In this embodiment, the above-described subtraction value output is used, but Yi is supplied as reference data RD of the memory cell 140, and C -1 By setting = 0, the operation output Si and the carry output Ci are obtained as shown in the equations (3) and (4), respectively, and an added value output can be obtained.
[0101]
[Expression 2]
Figure 0004122774
[0102]
Next, the calculation auxiliary cell 170 will be described. In the portion of the operation auxiliary cell 134d of the memory block 125, the operation auxiliary cell 170 is provided for each of the n operation auxiliary cells 150 for obtaining the subtraction value output of the pixel data corresponding to the candidate block and the reference block as described above. Provided. In other words, in the portion of the calculation auxiliary cell 134d, m number of calculation auxiliary cells 170 equal to the number of pixel data constituting the candidate block are provided. FIG. 20 shows the kth (k = 0, 1,..., M−1) arithmetic auxiliary cell 170 among the m arithmetic auxiliary cells 170.
[0103]
In FIG. 20, input terminals 171 to which the operation outputs Si (i = 0, 1,..., N−1) of n operation auxiliary cells 150 are respectively input. 0 , 171 1 ,..., 171 n-1 Are exclusive OR gates (ExOR gates) 171 respectively. 0 , 171 1 ,..., 171 n-1 Connected to the input side.
[0104]
The input terminal 173 to which the carry output / Cn-1 of the (n-1) th auxiliary cell 150 is input is an ExOR gate 171. 0 , 171 1 ,..., 171 n-1 Connected in common. And this ExOR gate 171 0 , 171 1 ,..., 171 n-1 Are respectively connected to the input terminal a of the n-bit full adder 174. 0 , A 1 , ..., a n-1 Connected to.
[0105]
Also, the input terminal b of the n-bit full adder 174 0 Is connected to the input terminal 173 and b of the n-bit full adder 174 1 , ..., b n-1 Is grounded. The output terminal o of the n-bit full adder 174 0 , O 1 , ..., o n-1 Is the difference absolute value Dk (Dk 0 ~ Dk n-1 ) To output the output terminal 175 0 175 1 , ..., 175 n-1 Connected to.
[0106]
In the computation auxiliary cell 170 shown in FIG. 20, when Cn-1 is 1 and the computation output Si (i = 0, 1,..., N-1) is positive, this computation output Si (i = 0). , 1,..., N-1) are directly obtained as differential absolute values Dk (i = 0, 1,..., N-1), while Cn-1 is 0 and the computation output Si (i = 0). , 1,..., N−1) are negative, all bits of the operation output Si (i = 0, 1,..., N−1) are converted to ExOR gates 171. 0 , 171 1 ,..., 171 n-1 And then 1 is added to LSB by the n-bit full adder 174 to calculate the absolute value of the operation output Si (i = 0, 1,..., N−1), which is the difference absolute value Dk ( i = 0,1, ..., n-1).
[0107]
FIG. 21 shows a partial configuration of the operation auxiliary cell 134d for obtaining the absolute difference value Dk (i = 0, 1,..., N−1) corresponding to the kth pixel data constituting the candidate block. It is composed of n calculation auxiliary cells 150 and one calculation auxiliary cell 170. In the part of the arithmetic auxiliary cell 134d, there are m pieces of the configuration shown in FIG. 21 equal to the number of pixel data constituting the candidate block.
[0108]
As described above, among the plurality of memory cells 140 arranged in a matrix in the memory cell array 131, the row address input to the address buffer 135a and the column address input to the address buffer 134b are used. Since the m × n memory cells 140 storing the m pixel data constituting the candidate block for each bit are selected at the same time, the arithmetic auxiliary cell 134d performs subtraction or the like corresponding to the m pixel data. The absolute difference calculation can be performed concurrently.
[0109]
Hereinafter, a configuration for enabling m × n memory cells 140 storing m pixel data constituting a candidate block for each bit in this manner will be described.
[0110]
FIG. 22A schematically shows pixel data stored in one memory block 125 constituting the search frame memory 124. For simplicity of explanation, it is assumed that pixel data stored in one memory block 125 is pixel data of 15 pixels in the horizontal direction and 10 lines in the vertical direction, and each pixel data is 1-bit data.
[0111]
FIG. 22B shows the storage position of each pixel data in the memory cell array 131. Here, each cell corresponds to the memory cell 140. The memory cell array 131 is in the column direction of the reference data (same as the column direction of the stored data in the configuration of the memory block 125 in FIG. 10, and the same as the row direction of the stored data in the configuration of the memory block 125 in FIG. 12). 50 memory cells 140 are arranged side by side. The plurality of memory cells 140 in the memory cell array 131 are divided in the column direction to form five divided regions 131a to 131e.
[0112]
Here, in each of the ten memory cells in the first row, the second row, and the third row in the divided region 131a, the pixel data “00” to “90” for one column in the vertical direction is provided. ”,“ 05 ”to“ 95 ”and“ 0a ”to“ 9a ”are stored. In addition, in each of the ten memory cells in the first row, the second row, and the third row in the divided region 131b, pixel data “01” to “91” corresponding to one column in the vertical direction, respectively. , “06” to “96” and “0b” to “9b” are stored. In addition, in each of the ten memory cells in the first row, the second row, and the third row in the divided region 131c, pixel data “02” to “92” for one column in the vertical direction, respectively. , “07” to “97” and “0c” to “9c” are stored.
[0113]
In addition, in each of the ten memory cells in the first row, the second row, and the third row in the divided region 131d, the pixel data “03” to “93” for one column in the vertical direction, respectively. , “08” to “98” and “0d” to “9d” are stored. Further, each of the ten memory cells in the first row, the second row, and the third row of the divided region 131e has pixel data “04” to “94” for one column in the vertical direction. , “09” to “99” and “0e” to “9e” are stored.
[0114]
The plurality of cell selection lines WLF (see FIGS. 9 and 11) described above are divided into five divided cell selection lines WLFa to WLFe (not shown in FIG. 22B) corresponding to the divided regions 131a to 131e, respectively. ). The memory cell array 131 is provided with a switching mechanism for switching the divided cell selection lines that are simultaneously activated in the divided regions 131a to 131e. For example, as shown in FIG. 22B, a switching mechanism 180 is disposed between the divided regions 131a to 131e.
[0115]
FIG. 23 shows a configuration example of the switching mechanism 180. This switching mechanism 180 is configured using a CMOS transfer gate in which an N-type MOS transistor and a P-type MOS transistor are connected in parallel. This switching mechanism 180 is arranged between the divided cell selection lines in the same row and is arranged between the transfer gate TG1 for connecting them and the divided cell selection lines in the adjacent rows, and is a transfer for connecting them. It consists of a gate TG2.
[0116]
A switching control signal φ is supplied to the gate of the N-type MOS transistor of the transfer gate TG1 and the gate of the P-type MOS transistor of the transfer gate TG2, and the gate of the P-type MOS transistor of the transfer gate TG1 and the N-type of the transfer gate TG2 The gate of the MOS transistor is supplied with a switching control signal / φ (/ φ represents φ bar and is an inverted version of the switching control signal φ). Note that the switching control signals φ and / φ are independently supplied to the switching mechanism 180 disposed between the divided regions 131a to 131e.
[0117]
The operation of the switching mechanism 180 will be described. When φ = 1 and / φ = 0, the transfer gate TG1 becomes conductive, and the divided cell selection lines in the same row are connected to each other. On the other hand, when φ = 0 and / φ = 1, the transfer gate TG2 becomes conductive, and the divided cell selection lines in adjacent rows are connected to each other.
[0118]
Since the switching mechanism 180 as described above is arranged between the divided regions 131a to 131e of the memory cell array 131, all pixel data constituting an arbitrary candidate block is stored for each bit. A plurality of memory cells 140 can be selected simultaneously.
[0119]
For example, for the candidate blocks in the range indicated by hatching in FIG. 22A, the switching mechanism 180 applies the divided cell selection lines WLFa to WLFe of the divided regions 131a to 131e connected as shown by the broken lines in FIG. 22B. The cell selection signal “1” is supplied from the reference data row address decoder 135 (see FIGS. 10 and 12) for activation, and the reference data column address decoder 134a (see FIGS. 10 and 12) is activated. The memory cell 140 shown by hatching in FIG. 22B may be selected by the I / O gate (column switch) of (see).
[0120]
Further, for example, for the candidate blocks in the range shown by hatching in FIG. 24A, the divided cell selection lines WLFa to WLFe of the divided regions 131a to 131e connected by the switching mechanism 180 as shown by the broken lines in FIG. 24B. In addition, a cell selection signal of “1” is supplied from the reference data row address decoder 135 to be activated, and the I / O gate (column switch) of the reference data column address decoder 134a is used to activate the cell. The memory cell 140 indicated by hatching at 24B may be selected.
[0121]
Thus, by selecting the memory cell 140 by the I / O gate (column switch), it is possible to deal with a candidate block having an arbitrary shape such as a rectangle or a cross. Further, since the pixel data for one vertical column constituting the image data is stored in the plurality of memory cells 140 corresponding to one divided cell selection line, the switching mechanism 180 and the I / O gate (column By cooperating with the switch), the position of the candidate block can be moved in units of one pixel in both horizontal and vertical directions.
[0122]
In the above description, each pixel data is described as 1-bit data in order to simplify the description. However, when each pixel data is n-bit data (for example, n = 8), each pixel data is stored. N memory cells 140 are required, and these n memory cells 140 are continuously arranged in the column direction, for example.
[0123]
In the example of FIGS. 22B and 24B described above, the pixel data for one column in the vertical direction is stored in each of the plurality of memory cells 140 corresponding to each of the divided cell selection lines WLFa to WLFe. The pixel data for one column in the horizontal direction may be stored in the plurality of memory cells 140 corresponding to the divided cell selection lines WLFa to WLFe, respectively.
[0124]
Further, pixel data of m columns (m is an integer of 2 or more) in the horizontal direction or the vertical direction constituting the image data is stored in the plurality of memory cells 140 respectively corresponding to the divided cell selection lines WLFa to WLFe. You may make it do. In this case, the position of the candidate block can be moved in units of m pixels in the vertical direction when pixel data for m columns in the horizontal direction is stored, and when the pixel data for m columns in the vertical direction is stored. It can move in units of m pixels in the horizontal direction.
[0125]
FIG. 25A schematically shows pixel data stored in one memory block 125 constituting the search frame memory 124. For simplicity of explanation, it is assumed that pixel data stored in one memory block 125 is pixel data of 10 pixels in the horizontal direction and 10 lines in the vertical direction, and each pixel data is 1-bit data.
[0126]
FIG. 25B shows the storage position of each pixel data in the memory cell array 131. Here, each cell corresponds to the memory cell 140. The memory cell array 131 is in the column direction of the reference data (same as the column direction of the stored data in the configuration of the memory block 125 in FIG. 10, and the same as the row direction of the stored data in the configuration of the memory block 125 in FIG. 12). 50 memory cells 140 are arranged side by side. The plurality of memory cells 140 in the memory cell array 131 are divided in the column direction to form five divided regions 131a to 131e.
[0127]
Here, each of the ten memory cells in the first row and the second row in the divided region 131a has pixel data “00” to “09” and “50” for one column in the horizontal direction, respectively. ~ "59" is stored. In addition, each of the ten memory cells in the first row and the second row in the divided region 131b includes pixel data “10” to “19” and “60” to one column in the horizontal direction, respectively. “69” is stored. The ten memory cells in each of the first row and the second row in the divided region 131c have pixel data “20” to “29” and “70” to “70” to one column in the horizontal direction, respectively. “79” is stored.
[0128]
The ten memory cells in each of the first row and the second row in the divided region 131d have pixel data “30” to “39” and “80” to one column in the horizontal direction, respectively. “89” is stored. Further, each of the ten memory cells in the first row and the second row in the divided region 131e has pixel data “40” to “49” and “90” to “90” to one column in the horizontal direction, respectively. “99” is stored.
[0129]
The plurality of cell selection lines WLF (see FIGS. 9 and 11) described above are divided into five divided cell selection lines WLFa to WLFe (not shown in FIG. 25B) corresponding to the divided regions 131a to 131e, respectively. ). The memory cell array 131 is provided with a switching mechanism 180 (see FIG. 23) for switching divided cell selection lines that are simultaneously activated in the divided regions 131a to 131e.
[0130]
As described above, even in the case where pixel data for one column in the horizontal direction is stored in each of the plurality of memory cells 140 corresponding to each of the divided cell selection lines WLFa to WLFe, each of the memory cell array 131 Since the switching mechanism 180 is arranged between the divided areas 131a to 131e, a plurality of memory cells 140 storing all pixel data constituting an arbitrary candidate block for each bit can be selected simultaneously.
[0131]
For example, for the candidate blocks in the range shown by hatching in FIG. 25A, the switching mechanism 180 applies the divided cell selection lines WLFa to WLFe of the divided regions 131a to 131e connected as shown by the broken lines in FIG. 25B. The cell selection signal “1” is supplied from the reference data row address decoder 135 (see FIGS. 10 and 12) for activation, and the reference data column address decoder 134a (see FIGS. 10 and 12) is activated. The memory cell 140 shown by hatching in FIG. 25B may be selected by the I / O gate (column switch) of (see).
[0132]
Further, for example, for the candidate blocks in the range shown by hatching in FIG. 26A, the divided cell selection lines WLFa to WLFe of the divided regions 131a to 131e connected as shown by the broken line in FIG. In addition, a cell selection signal of “1” is supplied from the reference data row address decoder 135, and hatching is performed in FIG. 26B by the I / O gate (column switch) of the reference data column address decoder 134a. The memory cell 140 shown in FIG.
[0133]
In the above description, the switching mechanism 180 (see FIG. 23) is used between the divided regions 131a to 131e in order to switch the divided cell selection lines that are simultaneously activated in the divided regions 131a to 131e of the memory cell array 131. However, this switching mechanism may have other configurations.
[0134]
FIG. 27 shows another configuration example of the switching mechanism. The switching mechanism 180A is arranged corresponding to each of the divided areas 131a to 131e. FIG. 27 shows only the portions of the divided areas 131b and 131c.
[0135]
When this switching mechanism 180A is used, a global selection line / GWL (/ GWL is a GWL bar) for inputting a cell selection signal parallel to each cell selection line WLF (configured by divided cell selection lines WLFa to WLFe). And “0” is input as the cell selection signal).
[0136]
The switching mechanism 180A is configured using a NOR gate and an AND gate. In other words, for odd rows in the row direction, a NOR gate NG is arranged whose input side is connected to the global selection line / GWL and whose output side is connected to the corresponding divided cell selection line. In this case, an OR gate OG whose input side is connected to the global selection line / GWL and whose output side is connected to the corresponding divided cell selection line is arranged. Then, the switching control signal / φ (/ φ represents φ bar, and the switching control signal φ is inverted) is supplied to the input side of the NOR gate NG and the OR gate OG. Note that the switching control signal / φ is independently supplied to the switching mechanism 180A arranged corresponding to each of the divided regions 131a to 131e.
[0137]
A cell selection line selection operation in each of the divided regions 131a to 131e using the switching mechanism 180A will be described.
For example, in FIG. 27, the divided cell selection line WLFb in the second row is selected in the divided region 131b, and the divided cell selection line WLFc in the first row is selected in the divided region 131c.
[0138]
In this case, “0” is supplied as the cell selection signal to the global selection lines / GWLi and / GWLi + 1 in the first and second rows. Further, “1” is supplied as the switching control signal / φj supplied to the switching mechanism 180A of the divided region 131b. As a result, “1” is output to the output side of the OR gate OG in the second row, so that the divided cell selection line WLFb in the second row is activated.
[0139]
On the other hand, “0” is supplied as the switching control signal / φj supplied to the switching mechanism 180A of the divided region 131c. As a result, “1” is output to the output side of the NOR gate NG in the first row, so that the divided cell selection line WLFc in the first row is activated.
[0140]
Thus, even when the switching mechanism 180A as described above is arranged for each of the divided regions 131a to 131e of the memory cell array 131, the switching mechanism 180 described above between the divided regions 131a to 131e. As in the case where is arranged, the divided cell selection lines that are simultaneously activated in each of the divided regions 131a to 131e can be switched, and all pixel data constituting an arbitrary candidate block can be stored for each bit. A plurality of memory cells 140 can be selected simultaneously.
[0141]
When this switching mechanism 180A is used, a transfer gate is not arranged in the transmission path of the cell selection signal, but a plurality of transfer gates TG1 and TG2 are arranged in the transmission path as in the switching mechanism 180. Such a transmission delay of the cell selection signal can be avoided.
[0142]
FIG. 28 shows still another configuration example of the switching mechanism. This switching mechanism 180B is also arranged corresponding to each of the divided areas 131a to 131e. FIG. 28 shows only the portions of the divided areas 131b and 131c.
[0143]
When this switching mechanism 180B is used, a global selection line GWL (cell selection signal “1” is inputted in parallel with each cell selection line WLF (configured by divided cell selection lines WLFa to WLFe) for inputting a cell selection signal. ”Is input).
[0144]
The switching mechanism 180B is configured using a CMOS transfer gate. That is, a transfer gate TG3 for connecting the global selection line GWL and each of the divided cell selection lines WLFa to WLFe is provided for the odd-numbered rows in the row direction, while the global rows are provided for the even-numbered rows in the row direction. A transfer gate TG4 for connecting the selection line GWL and each divided cell selection line WLFa to WLFe is arranged.
[0145]
Then, a switching control signal φ is supplied to the gate of the N-type MOS transistor of the transfer gate TG3 and the gate of the P-type MOS transistor of the transfer gate TG4, and the N-type of the P-type MOS transistor of the transfer gate TG3 and the transfer gate TG4. The gate of the MOS transistor is supplied with a switching control signal / φ (/ φ represents φ bar and is an inverted version of the switching control signal φ). Note that the switching control signals φ and / φ are independently supplied to the switching mechanisms 180B arranged corresponding to the respective divided regions 131a to 131e.
[0146]
A cell selection line selection operation in each of the divided regions 131a to 131e using the switching mechanism 180B will be described.
For example, in FIG. 28, the divided cell selection line WLFb of the second row is selected in the divided region 131b, and the divided cell selection line WLFc of the first row is selected in the divided region 131c.
[0147]
In this case, “1” is supplied as the cell selection signal to the global selection lines GWLi and GWLi + 1 of the first and second rows. Further, “0” and “1” are supplied as the switching control signals φ and / φj supplied to the switching mechanism 180B of the divided region 131b, respectively. As a result, the transfer gate TG4 in the second row becomes conductive, and a cell selection signal of “1” is supplied from the global selection line GWLi + 1 to the division cell selection line WLFc, so that the division cell selection line in the second row WLFb is activated.
[0148]
On the other hand, “1” and “0” are supplied as the switching control signals φ and / φj supplied to the switching mechanism 180B of the divided region 131c. As a result, the transfer gate TG3 in the first row is turned on, and a cell selection signal of “1” is supplied from the global selection line GWLi to the division cell selection line WLFc, so that the division cell selection line WLFc in the first row is It becomes an activated state.
[0149]
Thus, even when the switching mechanism 180B as described above is arranged for each of the divided regions 131a to 131e of the memory cell array 131, the switching mechanism 180 described above between the divided regions 131a to 131e. As in the case of the arrangement, the divided cell selection lines activated simultaneously in each of the divided regions 131a to 131e can be switched, and all pixel data constituting an arbitrary candidate block is stored for each bit. A plurality of memory cells 140 can be selected simultaneously.
[0150]
In addition, when this switching mechanism 180B is used, only one transfer gate is arranged on the transmission path of the cell selection signal. Therefore, as in the switching mechanism 180, a plurality of transfer gates TG1 and TG2 are arranged on the transmission path. Compared to what is done, the transmission delay of the cell selection signal can be reduced.
[0151]
Next, the frame memory 123 (see FIG. 6) that stores the image data of the reference frame will be described.
As shown in FIG. 29, the frame memory 123 is also composed of, for example, four memory blocks 191a to 191d, similarly to the frame memory 124 described above. Each of the memory blocks 191a to 191d includes a data input unit and a data output unit. Image data Di is input from the data input unit, and image data Do is output from the data output unit. In these memory blocks 191a, 191b, 191c, and 191d, pixel data of respective upper left, upper right, lower left, and lower right portions of the reference frame are stored.
[0152]
When the range of the center pixel of a predetermined reference block is in the upper left, upper right, lower left, and lower right portions of the reference frame, only the memory blocks 191a, 191b, 191c, and 191d may be activated. Power consumption can be reduced.
[0153]
In this case, like the memory blocks 125a to 125d of the frame memory 124 described above, the memory blocks 191a to 191d overlap corresponding to the boundary portions of the upper left, upper right, lower left, and lower right portions of the reference frame. Pixel data is stored. In this way, the overlapping pixel data is stored in the memory blocks 191a to 191d because the pixel data of the reference block whose center pixel is near the boundary also needs pixel data at a position beyond the boundary. Because it becomes.
[0154]
FIG. 30 shows a configuration example of the memory block 191 (191a to 191d).
The memory block 191 includes a memory cell array 201 in which a plurality of memory cells are arranged in a matrix, a storage data input / output port (including a column address decoder, etc.) 202, a storage data row address, And a decoder 203.
[0155]
The memory cell array 201 includes a plurality of bit lines BL, / BL (/ BL represents a BL bar) for transferring data extending in the row direction, and a plurality of bit lines BL, It consists of a plurality of word lines WL orthogonal to / BL and a plurality of memory cells 210 connected to these bit lines BL, / BL and word lines WL and arranged in a matrix.
[0156]
FIG. 31 shows in detail the configuration of the memory block 191 shown in FIG. 30 other than the memory cell array 201.
[0157]
The stored data column address decoder 202a, the address buffer 202b, and the I / O buffer 202c constitute the stored data input / output port 202 in FIG. The column address decoder 202a includes an I / O gate (column switch), a sense amplifier, and the like. The column address is input to the column address decoder 202a via the address buffer 202b.
[0158]
The column address decoder 202a corresponds to a column address supplied via the address buffer 202b, and a plurality of bits connected to a plurality of predetermined memory cells 210 in the column direction of the memory cell array 201. The connection to the lines BL and / BL is secured, and the storage data can be written to and read from a predetermined memory cell in the column direction through the I / O buffer 202c and the column address decoder 202a.
[0159]
Further, the row address is input to the stored data row address decoder 203 via the address buffer 203a. The row address decoder 203 activates a word line WL connected to a predetermined memory cell 210 in the row direction of the memory cell array 201 corresponding to the row address supplied via the address buffer 203a. Thus, the storage data can be written to and read from the predetermined memory cell 210 in the row direction through the I / O buffer 202c and the column address decoder 202a.
[0160]
The control circuit 204 controls the operation of each circuit of the memory block 191 based on the control input. As will be described later, the area of the plurality of memory cells arranged in a matrix in the memory cell array 201 is composed of a plurality of divided areas divided in the direction (column direction) along the word line WL. The line WL is composed of a plurality of divided word lines each divided corresponding to a plurality of divided regions, and the memory cell array 201 is switched to switch divided word lines activated simultaneously in each divided region. Switching mechanism is arranged. This switching mechanism is also controlled by the control circuit 204.
[0161]
Note that, unlike the memory cell 140 of the memory block 125 described above, the memory cell 210 does not have an arithmetic function unit. Although detailed description is omitted, the memory cell 210 has the same configuration as, for example, the SRAM cell shown in FIG. 13 or the DRAM cell shown in FIG.
[0162]
The memory block 191 can simultaneously select a plurality of memory cells 210 that store all pixel data constituting an arbitrary reference block for each bit. Hereinafter, a configuration for that purpose will be described.
[0163]
FIG. 32A schematically shows pixel data stored in one memory block 191 constituting the reference frame memory 123. In order to simplify the description, it is assumed that the pixel data stored in one memory block 191 is pixel data of 15 pixels in the horizontal direction and 10 lines in the vertical direction, and each pixel data is 1-bit data.
[0164]
FIG. 32B shows the storage position of each pixel data in the memory cell array 201. Here, each cell corresponds to the memory cell 210. The memory cell array 201 has a configuration in which 50 memory cells 210 are arranged in the column direction. A plurality of memory cells 210 in the memory cell array 201 are divided in the column direction to form five divided regions 201a to 201e.
[0165]
Here, in each of the ten memory cells in the first row, the second row, and the third row in the divided region 201a, the pixel data “00” to “90” for one column in the vertical direction respectively. ”,“ 05 ”to“ 95 ”and“ 0a ”to“ 9a ”are stored. In addition, in each of the ten memory cells in the first row, the second row, and the third row in the divided region 201b, the pixel data “01” to “91” for one column in the vertical direction, respectively. , “06” to “96” and “0b” to “9b” are stored. In addition, in each of the ten memory cells in the first row, the second row, and the third row in the divided region 201c, the pixel data “02” to “92” for one column in the vertical direction, respectively. , “07” to “97” and “0c” to “9c” are stored.
[0166]
In addition, in each of the ten memory cells in the first row, the second row, and the third row in the divided area 201d, the pixel data “03” to “93” for one column in the vertical direction, respectively. , “08” to “98” and “0d” to “9d” are stored. Further, each of the ten memory cells in the first row, the second row, and the third row in the divided region 201e has pixel data “04” to “94” for one column in the vertical direction. , “09” to “99” and “0e” to “9e” are stored.
[0167]
The plurality of word lines WL (see FIG. 30) described above are composed of five divided word lines WLa to WLe (not shown in FIG. 32B) divided corresponding to the divided regions 201a to 201e, respectively. . The memory cell array 201 is provided with a switching mechanism for switching the divided word lines that are simultaneously activated in the divided regions 201a to 201e. For example, as shown in FIG. 32B, a switching mechanism 220 is disposed between the divided areas 201a to 201e.
[0168]
FIG. 33 shows a configuration example of the switching mechanism 220. The switching mechanism 220 is configured in the same manner as the switching mechanism 180 (see FIG. 23) arranged in the memory cell array 131 of the memory block 125 described above.
[0169]
The switching mechanism 220 is configured using a CMOS transfer gate in which an N-type MOS transistor and a P-type MOS transistor are connected in parallel. The switching mechanism 220 is arranged between the divided word lines in the same row and is connected to the transfer gate TG1 for connecting them, and the transfer gate TG2 is arranged between the divided word lines in the adjacent row and is connected to them. It is made up of.
[0170]
A switching control signal φ is supplied to the gate of the N-type MOS transistor of the transfer gate TG1 and the gate of the P-type MOS transistor of the transfer gate TG2, and the gate of the P-type MOS transistor of the transfer gate TG1 and the N-type of the transfer gate TG2 The gate of the MOS transistor is supplied with a switching control signal / φ (/ φ represents φ bar and is an inverted version of the switching control signal φ). Note that switching control signals φ and / φ are independently supplied to the switching mechanism 220 arranged between the divided regions 201a to 201e.
[0171]
The operation of the switching mechanism 220 will be described. When φ = 1 and / φ = 0, the transfer gate TG1 becomes conductive, and the divided word lines in the same row are connected to each other. On the other hand, when φ = 0 and / φ = 1, transfer gate TG2 becomes conductive, and the divided word lines in adjacent rows are connected.
[0172]
Since the switching mechanism 220 as described above is arranged between the divided areas 201a to 201e of the memory cell array 201, all pixel data constituting an arbitrary reference block is stored for each bit. A plurality of memory cells 210 can be selected simultaneously. As a result, the bit data of all the pixel data constituting the reference block can be simultaneously supplied from the reference frame memory 123 to the search frame memory 124 as reference data.
[0173]
For example, for the candidate blocks in the range indicated by hatching in FIG. 32A, the divided word lines WLa to WLe of the divided regions 201 a to 201 e connected as shown by the broken line in FIG. A signal “1” is supplied from the stored data row address decoder 203 (see FIG. 31) to be activated, and the I / O gate (column) of the stored data column address decoder 202a (see FIG. 31) is activated. The memory cell 210 shown hatched in FIG. 22B may be selected by the switch).
[0174]
As described above, by selecting the memory cell 210 by the I / O gate (column switch), it is possible to deal with a reference block having an arbitrary shape such as a rectangle or a cross. Further, since the pixel data for one column in the vertical direction constituting the image data is stored in the plurality of memory cells 210 corresponding to one divided word line, the switching mechanism 220 and the I / O gate (column switch ), The position of the reference block can be moved in units of one pixel in both horizontal and vertical directions.
[0175]
In the above description, each pixel data is described as 1-bit data in order to simplify the description. However, when each pixel data is n-bit data (for example, n = 8), each pixel data is stored. N memory cells 210 are required, and these n memory cells 210 are continuously arranged in the column direction, for example.
[0176]
In the example of FIG. 32B described above, the pixel data for one column in the vertical direction is stored in the plurality of memory cells 210 respectively corresponding to the divided word lines WLa to WLe. As in the case of the memory cell array 131 of the block 125, pixel data for one column in the horizontal direction may be stored in the plurality of memory cells 210 respectively corresponding to the divided word lines WLa to WLe. Good.
[0177]
Also, pixel data of m columns (m is an integer of 2 or more) in the horizontal direction or the vertical direction constituting the image data is stored in the plurality of memory cells 210 respectively corresponding to the divided word lines WLa to WLe. You may do it. In this case, the position of the reference block can be moved in units of m pixels in the vertical direction when pixel data for m columns in the horizontal direction is stored, and when the pixel data for m columns in the vertical direction is stored. It can move in units of m pixels in the horizontal direction.
[0178]
In the above description, the switching mechanism 220 (see FIG. 33) is provided between the divided regions 201a to 201e in order to switch the divided word lines activated simultaneously in the divided regions 201a to 201e of the memory cell array 201. However, instead of the switching mechanism 220, the switching mechanism 180A shown in FIG. 27 or the switching mechanism shown in FIG. 28 is used in the same manner as the memory cell array 131 of the memory block 125 described above. A configuration similar to 180B may be employed. However, in this case, the memory cell array 201 needs to include a global word line for inputting a cell selection signal, which is parallel to each word line WL (configured by divided word lines WLa to WLe). .
[0179]
Although not described in detail, the configuration of the memory block 191 described above may also be employed on the storage data side of the memory block 125 described above. As a result, a plurality of memory cells 140 storing all pixel data constituting an arbitrary block for each bit can be simultaneously selected, and all pixel data constituting the block can be simultaneously read or written. It becomes.
[0180]
As described above, in the present embodiment, the memory cell 140 constituting the memory block 125 includes an arithmetic function unit that performs a logical operation (see FIG. 15), and arithmetic data is stored in the memory block 125. And has a calculation auxiliary cell 134d (see FIGS. 10 and 12) for performing a numerical operation using the wide data bus without transmitting data to the processing circuit at high speed and efficiently. Desired arithmetic processing can be performed.
[0181]
In the memory block 125, writing and reading of storage data are performed using a plurality of bit lines BL and / BL and a plurality of word lines WL, whereas operation data D 0 ~ D m-1 Are output using a plurality of reference data input lines RDL, / RDL, a plurality of operation data output lines DAL, DBL, and a plurality of cell selection lines WLF (see FIGS. 9 and 11), and stored data Can be independently written and read out, and the operation data can be output, so that more flexible and efficient processing can be performed as a whole.
[0182]
In the memory block 125 constituting the search frame memory 124, a plurality of divisions in which the areas of the plurality of memory cells 140 arranged in a matrix of the memory cell array 131 are divided in the direction along the cell selection line WLF. Each of the plurality of cell selection lines WLF includes a plurality of divided cell selection lines WLFa to WLFe divided corresponding to the plurality of divided regions 131a to 131e. Switching mechanisms 180, 180A, and 180B for switching the divided cell selection lines that are activated simultaneously are arranged (see FIGS. 22, 23, 27, and 28), and are stepped in units of divided cell selection lines. Are output to a plurality of operation data output lines DAL and DBL to perform the operation. It can be processed by the auxiliary cell 134d.
[0183]
In this case, in the plurality of memory cells 140 corresponding to one divided cell selection line, the vertical or horizontal integer columns (one column or m columns (m is an integer of 2 or more)) constituting the image data. Pixel data is stored, and calculation data corresponding to a plurality of pixel data constituting a candidate block can be simultaneously output to a plurality of calculation data output lines DAL and DBL, and numerical calculations using these can be performed. It can be performed in parallel in the operation auxiliary cells 150 and 170 (see FIGS. 19 and 20). Therefore, a plurality of difference absolute values D relating to a plurality of pixel data of a predetermined candidate block for obtaining the motion vector MV 0 ~ D m-1 Can be obtained simultaneously, and the data processing efficiency can be greatly improved.
[0184]
Further, by selecting the memory cell 140 by the I / O gate (column switch) of the reference address column address decoder 134a of the memory block 125, a candidate block having an arbitrary shape such as a rectangle or a cross can be dealt with. In addition, since a plurality of memory cells 140 corresponding to one divided cell selection line store pixel data for integer columns in the vertical direction or horizontal direction constituting the image data, the switching mechanism 180 (180A, 180B). And the I / O gate (column switch) can easily move the position of the candidate block in both the horizontal and vertical directions.
[0185]
Further, in the memory block 191 constituting the reference frame memory 123, a plurality of divided areas 201a in which the areas of the plurality of memory cells 210 arranged in a matrix of the memory cell array 201 are divided in the direction along the word line. The plurality of word lines WL are each composed of a plurality of divided word lines WLa to WLe divided corresponding to the plurality of divided regions 201a to 201e, and are simultaneously selected in each of the divided regions 201a to 201e. A switching mechanism 220 for switching the divided cell selection lines is provided (see FIGS. 32 and 33), and a plurality of memory cells 210 arranged in a stepwise manner can be selected in units of divided word lines.
[0186]
In this case, a plurality of memory cells 140 corresponding to one divided word line are stored in integer columns (one column or m columns (m is an integer of 2 or more)) in the vertical or horizontal direction constituting the image data. Pixel data is stored, and a plurality of pixel data constituting the reference block can be read out simultaneously and supplied to the search frame memory 124 at the same time, so that the processing speed can be increased.
[0187]
Further, by selecting the memory cell 210 by the I / O gate (column switch) of the storage data column address decoder 202a of the memory block 191, a reference block having an arbitrary shape such as a rectangle or a cross can be dealt with. Further, since the pixel data for the integer columns in the vertical direction or the horizontal direction constituting the image data is stored in the plurality of memory cells 210 corresponding to one divided word line, the switching mechanism 220 and the I / O gate ( By cooperating with the column switch, the position of the reference block can be easily moved in both the horizontal and vertical directions.
[0188]
The search frame memory 124 is composed of a plurality of, for example, four memory blocks 125a to 125d, which include overlapping pixels corresponding to the boundary portions of the upper left, upper right, lower left, and lower right portions of the search frame. When data is stored and the range of the center pixel of a predetermined candidate block is in the upper left, upper right, lower left, and lower right portions of the search frame, memory blocks 125a, 125b, 125c, and 125d, respectively. The power consumption can be suppressed to a low level.
[0189]
The reference frame memory 123 includes a plurality of, for example, four memory blocks 191a to 191d, which include overlapping pixels corresponding to the boundary portions of the upper left, upper right, lower left, and lower right portions of the reference frame. When data is stored and the range of the center pixel of a predetermined reference block is in the upper left, upper right, lower left, and lower right portions of the reference frame, the memory blocks 191a, 191b, 191c, and 191d, respectively. The power consumption can be suppressed to a low level.
[0190]
As described above, in the search frame memory 124 and the reference frame memory 123, only one of the memory blocks is activated in order to obtain calculation data related to the pixel data of the candidate block and pixel data of the reference block, respectively. Therefore, other memory blocks can be used for other processing. Thereby, complicated processing can be performed efficiently.
[0191]
Further, in the motion vector detection circuit 111 and the motion compensated prediction encoding apparatus 100 configured using the reference frame memory 123 and the search frame memory 124 described above, the processing for detecting the motion vector MV is speeded up and efficient. Can be achieved.
[0192]
In the above-described embodiment, the search frame memory 124 includes the memory blocks 125a to 125d, and the difference absolute value D from these memory blocks 125a to 125d. 0 ~ D m-1 Are output as they are, but the difference absolute value D is stored in the search frame memory 124. 0 ~ D m-1 It is also conceivable to have a circuit block such as a circuit for accumulating the signal, a circuit for storing the accumulated value, and a circuit for detecting the motion vector MV from the accumulated value. This can further increase the processing speed and efficiency.
[0193]
In the above-described embodiment, the four memory blocks constituting the frame memories 123 and 124 are shown in which the pixel data of each of the upper left, upper right, lower left, and lower right parts is stored. The pixel data stored in each may correspond to a plurality of phases according to the data input order or pixel position.
[0194]
In the above embodiment, in the motion vector detection circuit 111, the determination circuit 128 detects the motion vector MV based on the accumulated value (absolute value sum) of the difference absolute values. A device that detects a motion vector based on the sum of absolute values of the nth power or the like can be similarly configured. In this case, the motion vector detection circuit 111 shown in FIG. 6 may obtain the square value of the difference or the n-th power value of the difference directly from the frame memory 124.
[0195]
In the above-described embodiment, the semiconductor memory device according to the present invention is applied to the motion vector detection circuit 111 and the motion compensated prediction encoding device 100. However, the present invention can be applied to other devices as well. Of course.
[0196]
【The invention's effect】
According to the semiconductor memory device of the present invention, the memory cell that constitutes the memory block includes the arithmetic function unit that performs the logical operation, and the memory block includes the arithmetic assist unit for performing the numerical operation using the arithmetic data. It has a cell and can perform desired arithmetic processing efficiently at high speed without transmitting data to a processing circuit using a wide data bus.
[0197]
According to the semiconductor memory device of the present invention, the storage data is written and read using a plurality of bit lines and a plurality of word lines, and the operation data is output from a plurality of reference data input lines and a plurality of data lines. The calculation data output line and a plurality of cell selection lines are used, and storage data can be written and read independently, and calculation data output can be performed independently, making the overall more flexible and efficient. Processing is possible.
[0198]
According to the semiconductor memory device of the present invention, the region of the plurality of memory cells arranged in a matrix is composed of a plurality of divided regions divided in the direction along the cell selection line, and the plurality of cell selection lines are Each comprising a plurality of divided cell selection lines divided corresponding to the plurality of divided regions, and the memory block has a switching mechanism for switching divided cell selection lines activated simultaneously in each divided region The operation data of a plurality of memory cells arranged in a stepwise manner in units of divided cell selection lines in the direction along the cell selection line of the plurality of memory cells arranged in a matrix is output to the operation data output line. It is possible to process in the auxiliary cell.
[0199]
In this case, a plurality of pixel data constituting a pixel block of an arbitrary shape such as a rectangle or a cross shape by appropriately arranging the pixel data constituting the image data in a plurality of memory cells arranged in a matrix. Can be output simultaneously to multiple operation data output lines, and numerical operations using these can be performed simultaneously in multiple operation auxiliary cells, greatly improving data processing efficiency. In addition, the position of the pixel block can be easily changed. For example, pixel data for integer columns in the vertical direction or horizontal direction constituting the image data is stored in a plurality of memory cells corresponding to one divided cell selection line, so that the above-described pixel block is horizontally or vertically aligned. It can be moved in units of integer pixels in the direction, while it can be moved in units of one pixel in a direction orthogonal thereto.
[0200]
In addition, according to the semiconductor memory device of the present invention, since it is composed of a plurality of memory blocks, only necessary memory blocks can be activated and used, and power consumption can be reduced.
[0201]
According to the semiconductor memory device of the present invention, in addition to one or two or more memory blocks, the semiconductor memory device has a circuit block that performs processing based on operation data output from the memory block. It is possible to increase speed and efficiency.
[0202]
The motion vector detection device and motion compensation predictive coding device according to the present invention use the semiconductor memory device according to the present invention, and can increase the processing speed and efficiency of motion vector detection. .
[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 illustrating a configuration of a frame memory (search frame memory) that stores image data of a search frame.
FIG. 8 is a diagram for explaining duplication of pixel data between memory blocks constituting a search frame memory;
FIG. 9 is a diagram illustrating a configuration example of a memory block configuring a search frame memory.
FIG. 10 is a diagram illustrating a configuration example of a memory block configuring a search frame memory.
FIG. 11 is a diagram illustrating another configuration example of a memory block configuring the search frame memory.
FIG. 12 is a diagram illustrating another configuration example of a memory block configuring the search frame memory.
FIG. 13 is a diagram showing a configuration of an SRAM cell.
FIG. 14 is a diagram showing a configuration of a DRAM cell.
FIG. 15 is a diagram showing a configuration of a memory cell having an arithmetic function unit.
FIG. 16 is a diagram showing a configuration of another memory cell having an arithmetic function unit.
FIG. 17 is a diagram showing a configuration of another memory cell having an arithmetic function unit.
FIG. 18 is a diagram showing a configuration of still another memory cell having an arithmetic function unit.
FIG. 19 is a diagram showing a configuration of an operation auxiliary cell for addition and subtraction.
FIG. 20 is a diagram illustrating a configuration of a calculation auxiliary cell for calculating a difference absolute value.
FIG. 21 is a diagram illustrating a configuration of a calculation auxiliary cell (for one pixel data) for obtaining a difference absolute value.
FIG. 22 is a diagram showing pixel data of a search frame and storage positions in the memory cell array.
FIG. 23 is a diagram illustrating a configuration example of a switching mechanism for a divided cell selection line.
FIG. 24 is a diagram showing pixel data of a search frame and storage positions in the memory cell array.
FIG. 25 is a diagram showing pixel data of a search frame and storage positions in the memory cell array.
FIG. 26 is a diagram showing pixel data of a search frame and storage positions in the memory cell array.
FIG. 27 is a diagram illustrating another configuration example of a switching mechanism for a divided cell selection line.
FIG. 28 is a diagram illustrating still another configuration example of a switching mechanism for a divided cell selection line.
FIG. 29 is a diagram illustrating a configuration of a frame memory (reference frame memory) that stores image data of a reference frame.
FIG. 30 is a diagram illustrating a configuration example of a memory block configuring a reference frame memory.
FIG. 31 is a diagram illustrating a configuration example of a memory block configuring a reference frame memory.
FIG. 32 is a diagram showing pixel data of a reference frame and a storage position in the memory cell array.
FIG. 33 is a diagram illustrating a configuration example of a switching mechanism of divided word lines.
[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, 124, frame memory, 125, 125 a to 125 d, memory block, 126, accumulator, 127, correlation value table, 128, determination circuit, 129: Output terminal, 131: Memory cell array, 131a to 131e ... Divided area, 132 ... Port for storage data input / output, 132a ... Memory for storage data Address decoder, 132b ... I / O buffer, 132c ... address buffer, 133 ... row address decoder for stored data, 133a ... address buffer, 134 ... reference data Input port & operation auxiliary cell, 134a ... reference data column address decoder, 134b ... address buffer, 134c ... I / O buffer, 134d ... operation auxiliary cell, 135 ... Reference data row address decoder, 135a ... Address buffer, 136 ... Control circuit, 140 ... Memory cell, 141 ... Memory cell section, 150 ... Auxiliary cell, 170 ...・ Auxiliary operation cells, 180, 180A, 180B... Switching mechanism, 191, 191a to 191e. 201 ... Memory cell array, 202 ... Storage data input / output port, 203 ... Storage data row address decoder, 204 ... Control circuit, 210 ... Memory cell, 220 ... switching mechanism

Claims (25)

演算補助セルおよびマトリックス状に配された複数のメモリセルを有する、1個または2個以上のメモリブロックを備えてなる半導体メモリ装置であって、
上記メモリセルは、
"1"または"0"のデータを記憶するメモリセル部と、
参照データを入力するための参照データ入力部と、
上記メモリセル部に記憶されている記憶データと上記参照データ入力部からの参照データとを用いた論理演算を行う演算機能部と、
上記演算機能部で演算されて得られた演算データを出力する演算データ出力部と、
セル選択信号を入力するためのセル選択信号入力部と、
上記セル選択信号入力部に入力されるセル選択信号に基づいて、上記演算機能部からの演算データを上記演算データ出力部に出力する出力制御部とを備え、
上記演算補助セルは、
上記メモリセルの演算データ出力部に出力された演算データを入力するための演算データ入力部と、
上記演算データ入力部に入力された演算データを用いた数値演算を行う演算部と、
上記演算部で演算されて得られた演算データを出力する演算データ出力部とを備え
上記マトリックス状に配された複数のメモリセルの領域は、複数の分割領域からなり、
上記メモリブロックは、
活性化対象の分割領域に属するメモリセルの上記セル選択信号入力部が上記セル選択信号を入力するように、当該メモリセルを制御する切り換え機構を有する
ことを特徴とする半導体メモリ装置。
A semiconductor memory device comprising one or two or more memory blocks, each having an arithmetic auxiliary cell and a plurality of memory cells arranged in a matrix ,
The memory cell
A memory cell portion for storing data of “1” or “0”;
A reference data input unit for inputting reference data;
An arithmetic function unit for performing a logical operation using the storage data stored in the memory cell unit and the reference data from the reference data input unit;
A calculation data output unit for outputting calculation data obtained by calculation in the calculation function unit;
A cell selection signal input unit for inputting a cell selection signal;
Based on the cell selection signal input to the cell selection signal input unit, an output control unit that outputs the calculation data from the calculation function unit to the calculation data output unit,
The calculation auxiliary cell is
A calculation data input unit for inputting calculation data output to the calculation data output unit of the memory cell;
A calculation unit that performs numerical calculation using the calculation data input to the calculation data input unit;
A calculation data output unit for outputting calculation data obtained by calculation in the calculation unit ,
The area of the plurality of memory cells arranged in a matrix is composed of a plurality of divided areas.
The memory block
A semiconductor memory device comprising: a switching mechanism for controlling a memory cell so that the cell selection signal input unit of the memory cell belonging to the activation target divided region inputs the cell selection signal .
上記メモリセルの演算機能部は、複数の論理演算を並行して行うと共に、
上記演算補助セルの演算部は、上記複数の論理演算によって得られた複数の演算データを用いた数値演算を行う
ことを特徴とする請求項1に記載の半導体メモリ装置。
The arithmetic function unit of the memory cell performs a plurality of logical operations in parallel,
2. The semiconductor memory device according to claim 1, wherein the operation unit of the operation auxiliary cell performs a numerical operation using a plurality of operation data obtained by the plurality of logic operations.
上記演算補助セルは、第1の演算補助セル部と第2の演算補助セル部とから構成され、
上記第1の演算補助セル部は、上記メモリセルの演算機能部で演算されて得られた演算データを用いた第1の数値演算を行うと共に、
上記第2の演算補助セル部は、複数の上記第1の演算補助セル部で演算されて得られた演算データを用いた第2の数値演算を行う
ことを特徴とする請求項1に記載の半導体メモリ装置。
The calculation auxiliary cell is composed of a first calculation auxiliary cell unit and a second calculation auxiliary cell unit,
The first calculation auxiliary cell unit performs a first numerical calculation using calculation data obtained by calculation in the calculation function unit of the memory cell,
The said 2nd operation auxiliary cell part performs 2nd numerical calculation using the operation data obtained by calculating in the said some said 1st operation auxiliary cell part. Semiconductor memory device.
上記第1の数値演算は減算であり、上記第2の数値演算は絶対値演算である
ことを特徴とする請求項3に記載の半導体メモリ装置。
The semiconductor memory device according to claim 3, wherein the first numerical calculation is subtraction, and the second numerical calculation is an absolute value calculation.
上記1個または2個以上のメモリブロックより出力される演算データに基づく処理を行う回路ブロックをさらに備える
ことを特徴とする請求項1に記載の半導体メモリ装置。
The semiconductor memory device according to claim 1, further comprising a circuit block that performs processing based on operation data output from the one or more memory blocks.
1個または2個以上のメモリブロックを備えてなる半導体メモリ装置であって、
上記メモリブロックは、
複数のビット線と、
上記複数のビット線に直交する複数のワード線と、
上記複数のビット線に平行する、参照データを入力するための参照データ入力線と、
上記複数のビット線に平行する、演算データを出力するための演算データ出力線と、
上記複数のワード線に平行する、セル選択信号を入力するためのセル選択線と、
上記ビット線、上記ワード線、上記参照データ入力線、上記演算データ出力線および上記セル選択線に接続され、マトリックス状に配された複数のメモリセルと、
上記複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行う演算補助セルとを有し、
上記メモリセルは、
"1"または"0"のデータを記憶するメモリセル部と、
上記参照データ入力線に接続され、上記参照データを入力するための参照データ入力部と、
上記メモリセル部に記憶されている記憶データと上記参照データ入力部からの参照データとを用いた論理演算を行う演算機能部と、
上記演算データ出力線に接続され、上記演算機能部で演算されて得られた演算データを上記演算データ出力線に出力するための演算データ出力部と、
上記セル選択線に接続され、上記セル選択信号を入力するためのセル選択信号入力部と、
上記セル選択信号入力部に入力されるセル選択信号に基づいて、上記演算機能部で演算されて得られた演算データを上記演算データ出力部に出力する出力制御部とを備え
上記マトリックス状に配された複数のメモリセルの領域は、上記ワード線に沿う方向に分割された複数の分割領域からなり、
上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、
上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有する
ことを特徴とする半導体メモリ装置。
A semiconductor memory device comprising one or more memory blocks,
The memory block
Multiple bit lines,
A plurality of word lines orthogonal to the plurality of bit lines;
A reference data input line for inputting reference data parallel to the plurality of bit lines;
A calculation data output line for outputting calculation data parallel to the plurality of bit lines;
A cell selection line for inputting a cell selection signal parallel to the plurality of word lines;
A plurality of memory cells arranged in a matrix and connected to the bit line, the word line, the reference data input line, the arithmetic data output line, and the cell selection line;
A calculation auxiliary cell that performs numerical calculation using at least a part of the calculation data output from the plurality of calculation data output lines,
The memory cell
A memory cell portion for storing data of “1” or “0”;
A reference data input unit connected to the reference data input line for inputting the reference data;
An arithmetic function unit for performing a logical operation using the storage data stored in the memory cell unit and the reference data from the reference data input unit;
A calculation data output unit connected to the calculation data output line and outputting the calculation data obtained by calculation in the calculation function unit to the calculation data output line;
A cell selection signal input unit connected to the cell selection line for inputting the cell selection signal;
Based on the cell selection signal input to the cell selection signal input unit, an output control unit that outputs the calculation data obtained by calculation in the calculation function unit to the calculation data output unit ,
The area of the plurality of memory cells arranged in the matrix form is composed of a plurality of divided areas divided in the direction along the word line,
Each of the plurality of cell selection lines includes a plurality of divided cell selection lines divided corresponding to the plurality of divided regions,
2. The semiconductor memory device according to claim 1, wherein the memory block has a switching mechanism for switching the divided cell selection lines that are simultaneously activated in each divided region .
上記メモリセルの演算機能部は複数の論理演算を並行して行うものであり、
上記メモリセルは、上記複数の論理演算によって得られた複数の演算データをそれぞれ出力するための複数の上記演算データ出力線に接続されている
ことを特徴とする請求項6に記載の半導体メモリ装置。
The arithmetic function unit of the memory cell performs a plurality of logical operations in parallel,
The semiconductor memory device according to claim 6, wherein the memory cell is connected to a plurality of the operation data output lines for outputting a plurality of operation data obtained by the plurality of logic operations, respectively. .
上記演算補助セルは、
上記複数のセル選択線のうち選択された所定のセル選択線に対応した複数のメモリセルから出力される上記演算データを用いてそれぞれ第1の数値演算を行う複数の第1の演算補助セルと、
上記複数の第1の演算補助セルの所定個毎に、該所定個毎の第1の演算補助セルで演算されて得られた演算データを用いてそれぞれ第2の数値演算を行う複数の第2の演算補助セルとからなる
ことを特徴とする請求項6に記載の半導体メモリ装置。
The calculation auxiliary cell is
A plurality of first calculation auxiliary cells each performing a first numerical calculation using the calculation data output from a plurality of memory cells corresponding to a predetermined cell selection line selected among the plurality of cell selection lines; ,
For each predetermined number of the plurality of first calculation auxiliary cells, a plurality of second calculation units that respectively perform a second numerical calculation using calculation data obtained by calculation in the first calculation auxiliary cell for each predetermined number. The semiconductor memory device according to claim 6, further comprising:
上記第1の数値演算は減算であり、
上記第2の数値演算は絶対値演算である
ことを特徴とする請求項8に記載の半導体メモリ装置。
The first numerical operation is subtraction,
The semiconductor memory device according to claim 8, wherein the second numerical calculation is an absolute value calculation.
上記切り換え機構は、
隣接する第1の分割領域と第2の分割領域との間に配され、
上記第1の分割領域の第1の分割セル選択線を、該第1の分割領域に隣接する第2の分割領域の、上記第1の分割セル選択線に対して上記ビット線に沿う方向に同一位置または隣接位置の第2の分割セル選択線に、選択的に接続するスイッチ回路を有してなる
ことを特徴とする請求項に記載の半導体メモリ装置。
The switching mechanism is
Arranged between the adjacent first divided region and the second divided region,
The first divided cell selection line of the first divided region is arranged in a direction along the bit line with respect to the first divided cell selection line of the second divided region adjacent to the first divided region. The semiconductor memory device according to claim 6 , further comprising a switch circuit that is selectively connected to the second divided cell selection line at the same position or an adjacent position.
上記メモリブロックは、上記ワード線に沿う方向に並ぶ複数の分割セル選択線毎に、上記ワード線に平行する、上記セル選択信号を入力するためのグローバル選択線をさらに有し、
上記切り換え機構は、
各分割領域にそれぞれ対応して配され、ビット線に沿う方向に隣接する第1および第2の分割セル選択線のうちいずれかに、上記グローバル選択線から上記セル選択信号を選択的に供給するゲート回路を有してなる
ことを特徴とする請求項に記載の半導体メモリ装置。
The memory block further includes a global selection line for inputting the cell selection signal parallel to the word line for each of a plurality of divided cell selection lines arranged in a direction along the word line,
The switching mechanism is
The cell selection signal is selectively supplied from the global selection line to any one of the first and second division cell selection lines that are arranged corresponding to the respective divided regions and are adjacent in the direction along the bit line. The semiconductor memory device according to claim 6 , further comprising a gate circuit.
上記各分割領域の1つの分割セル選択線に対応する複数のメモリセルには、画像データを構成する垂直方向または水平方向の整数列分の画素データが記憶される
ことを特徴とする請求項に記載の半導体メモリ装置。
It claims that the plurality of memory cells corresponding to one divided cell select line for each of the divided regions, characterized in that the vertical or horizontal integer column of the pixel data constituting the image data is stored 6 The semiconductor memory device described in 1.
上記1個または2個以上のメモリブロックより出力される演算データに基づく処理を行う回路ブロックをさらに備える
ことを特徴とする請求項6に記載の半導体メモリ装置。
The semiconductor memory device according to claim 6, further comprising a circuit block that performs processing based on operation data output from the one or more memory blocks.
1個または2個以上のメモリブロックを備えてなる半導体メモリ装置であって、
上記メモリブロックは、
複数のビット線と、
上記複数のビット線に直交する複数のワード線と、
上記複数のビット線に直交する、参照データを入力するための参照データ入力線と、
上記複数のビット線に直交する、演算データを出力するための演算データ出力線と、
上記複数のワード線に直交する、セル選択信号を入力するためのセル選択線と、
上記ビット線、上記ワード線、上記参照データ入力線、上記演算データ出力線および上記セル選択線に接続され、マトリックス状に配された複数のメモリセルと、
上記複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行う演算補助セルとを有し、
上記メモリセルは、
"1"または"0"のデータを記憶するメモリセル部と、
上記参照データ入力線に接続され、上記参照データを入力するための参照データ入力部と、
上記メモリセル部に記憶されている記憶データと上記参照データ入力部からの参照データとを用いた論理演算を行う演算機能部と、
上記演算データ出力線に接続され、上記演算機能部で演算されて得られた演算データを上記演算データ出力線に出力するための演算データ出力部と、
上記セル選択線に接続され、上記セル選択信号を入力するためのセル選択信号入力部と、
上記セル選択信号入力部に入力されるセル選択信号に基づいて、上記演算機能部で演算されて得られた演算データを上記演算データ出力部に出力する出力制御部とを備え
上記マトリックス状に配された複数のメモリセルの領域は、上記ビット線に沿う方向に分割された複数の分割領域からなり、
上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、
上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有する
ことを特徴とする半導体メモリ装置。
A semiconductor memory device comprising one or more memory blocks,
The memory block
Multiple bit lines,
A plurality of word lines orthogonal to the plurality of bit lines;
A reference data input line for inputting reference data orthogonal to the plurality of bit lines;
An operation data output line for outputting operation data orthogonal to the plurality of bit lines;
A cell selection line for inputting a cell selection signal orthogonal to the plurality of word lines;
A plurality of memory cells arranged in a matrix and connected to the bit line, the word line, the reference data input line, the arithmetic data output line, and the cell selection line;
A calculation auxiliary cell that performs numerical calculation using at least a part of the calculation data output from the plurality of calculation data output lines,
The memory cell
A memory cell portion for storing data of “1” or “0”;
A reference data input unit connected to the reference data input line for inputting the reference data;
An arithmetic function unit for performing a logical operation using the storage data stored in the memory cell unit and the reference data from the reference data input unit;
A calculation data output unit connected to the calculation data output line and outputting the calculation data obtained by calculation in the calculation function unit to the calculation data output line;
A cell selection signal input unit connected to the cell selection line for inputting the cell selection signal;
Based on the cell selection signal input to the cell selection signal input unit, an output control unit that outputs the calculation data obtained by calculation in the calculation function unit to the calculation data output unit ,
The area of the plurality of memory cells arranged in a matrix is composed of a plurality of divided areas divided in the direction along the bit line,
Each of the plurality of cell selection lines includes a plurality of divided cell selection lines divided corresponding to the plurality of divided regions,
2. The semiconductor memory device according to claim 1, wherein the memory block has a switching mechanism for switching the divided cell selection lines that are simultaneously activated in each divided region .
上記メモリセルの演算機能部は複数の論理演算を並行して行うものであり、
上記メモリセルは、上記複数の論理演算によって得られた複数の演算データをそれぞれ出力するための複数の上記演算データ出力線に接続されている
ことを特徴とする請求項14に記載の半導体メモリ装置。
The arithmetic function unit of the memory cell performs a plurality of logical operations in parallel,
The semiconductor memory device according to claim 14 , wherein the memory cell is connected to a plurality of the operation data output lines for outputting a plurality of operation data obtained by the plurality of logic operations, respectively. .
上記演算補助セルは、
上記複数のセル選択線のうち選択された所定のセル選択線に対応した複数のメモリセルから出力される上記演算データを用いてそれぞれ第1の数値演算を行う複数の第1の演算補助セルと、
上記複数の第1の演算補助セルの所定個毎に、該所定個毎の第1の演算補助セルで演算されて得られた演算データを用いてそれぞれ第2の数値演算を行う複数の第2の演算補助セルとからなる
ことを特徴とする請求項14に記載の半導体メモリ装置。
The calculation auxiliary cell is
A plurality of first calculation auxiliary cells each performing a first numerical calculation using the calculation data output from a plurality of memory cells corresponding to a predetermined cell selection line selected among the plurality of cell selection lines; ,
For each predetermined number of the plurality of first calculation auxiliary cells, a plurality of second calculation units that respectively perform a second numerical calculation using calculation data obtained by calculation in the first calculation auxiliary cell for each predetermined number. The semiconductor memory device according to claim 14 , further comprising:
上記第1の数値演算は減算であり、
上記第2の数値演算は絶対値演算である
ことを特徴とする請求項16に記載の半導体メモリ装置。
The first numerical operation is subtraction,
The semiconductor memory device according to claim 16 , wherein the second numerical calculation is an absolute value calculation.
上記切り換え機構は、
隣接する第1の分割領域と第2の分割領域との間に配され、
上記第1の分割領域の第1の分割セル選択線を、該第1の分割領域に隣接する第2の分割領域の、上記第1の分割セル選択線に対して上記ワード線に沿う方向に同一位置または隣接位置の第2の分割セル選択線に、選択的に接続するスイッチ回路を有してなる
ことを特徴とする請求項14に記載の半導体メモリ装置。
The switching mechanism is
Arranged between the adjacent first divided region and the second divided region,
The first divided cell selection line of the first divided region is arranged in a direction along the word line with respect to the first divided cell selection line of the second divided region adjacent to the first divided region. The semiconductor memory device according to claim 14 , further comprising a switch circuit that is selectively connected to a second divided cell selection line at the same position or an adjacent position.
上記メモリブロックは、上記ビット線に沿う方向に並ぶ複数の分割セル選択線毎に、上記ビット線に平行する、上記セル選択信号を入力するためのグローバル選択線をさらに有し、
上記切り換え機構は、
各分割領域にそれぞれ対応して配され、ワード線に沿う方向に隣接する第1および第2の分割セル選択線のうちいずれかに、上記グローバル選択線から上記セル選択信号を選択的に供給するゲート回路を有してなる
ことを特徴とする請求項14に記載の半導体メモリ装置。
The memory block further includes a global selection line for inputting the cell selection signal parallel to the bit line for each of a plurality of divided cell selection lines arranged in a direction along the bit line,
The switching mechanism is
The cell selection signal is selectively supplied from the global selection line to either one of the first and second divided cell selection lines that are arranged corresponding to the respective divided regions and are adjacent in the direction along the word line. The semiconductor memory device according to claim 14 , further comprising a gate circuit.
上記各分割領域の1つの分割セル選択線に対応する複数のメモリセルには、画像データを構成する垂直方向または水平方向の整数列分の画素データが記憶される
ことを特徴とする請求項14に記載の半導体メモリ装置。
The plurality of memory cells corresponding to one divided cell select line for each of the divided regions, claim vertical or horizontal integer column of the pixel data constituting the image data is characterized in that it is stored 14 The semiconductor memory device described in 1.
上記1個または2個以上のメモリブロックより出力される演算データに基づく処理を行う回路ブロックをさらに備える
ことを特徴とする請求項14に記載の半導体メモリ装置。
The semiconductor memory device according to claim 14 , further comprising a circuit block that performs processing based on operation data output from the one or more memory blocks.
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記参照フレームを構成する複数の画素データを記憶する第1のメモリ部と、
上記探索フレームを構成する複数の画素データを記憶する第2のメモリ部と、
上記第1のメモリ部より参照ブロックの画素データを読み出して上記第2のメモリ部に参照データとして供給すると共に、上記第2のメモリ部において、上記参照ブロックに対応した探索範囲の複数の候補ブロックのそれぞれに対し、該候補ブロックの画素データと上記参照ブロックの画素データとの差分を、対応する画素データ毎に演算するように制御するメモリ制御部と、
上記第2のメモリ部で演算された複数の候補ブロックのそれぞれに対する画素データ毎の差分に基づいて、上記参照ブロックに対応した動きベクトルを検出する動きベクトル検出部とを備え、
上記第2のメモリ部は、演算補助セルおよびマトリックス状に配された複数のメモリセルを有する、1個または2個以上の半導体メモリブロックで構成され、
上記メモリセルは、
"1"または"0"のデータを記憶するメモリセル部と、
上記参照データを入力するための参照データ入力部と、
上記メモリセル部に記憶されている記憶データと上記参照データ入力部からの参照データとを用いた論理演算を行う演算機能部と、
上記演算機能部で演算されて得られた演算データを出力する演算データ出力部と、
セル選択信号を入力するためのセル選択信号入力部と、
上記セル選択信号入力部に入力されるセル選択信号に基づいて、上記演算機能部で演算されて得られた演算データを上記演算データ出力部に出力する出力制御部とを備え、
上記演算補助セルは、
上記メモリセルの演算データ出力部に出力された演算データを入力するための演算データ入力部と、
上記演算データ入力部に入力された演算データを用いた数値演算を行って上記差分を得る演算部とを備え
上記マトリックス状に配された複数のメモリセルの領域は、複数の分割領域からなり、
上記メモリブロックは、
活性化対象の分割領域に属するメモリセルの上記セル選択信号入力部が上記セル選択信号を入力するように、当該メモリセルを制御する切り換え機構を有する
ことを特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector from a reference frame and a search frame that are temporally forward and backward,
A first memory unit for storing a plurality of pixel data constituting the reference frame;
A second memory unit for storing a plurality of pixel data constituting the search frame;
The pixel data of the reference block is read from the first memory unit and supplied to the second memory unit as reference data, and a plurality of candidate blocks in the search range corresponding to the reference block in the second memory unit A memory control unit that controls the difference between the pixel data of the candidate block and the pixel data of the reference block to be calculated for each corresponding pixel data,
A motion vector detection unit that detects a motion vector corresponding to the reference block based on a difference for each pixel data with respect to each of the plurality of candidate blocks calculated in the second memory unit;
The second memory unit includes one or two or more semiconductor memory blocks having a plurality of auxiliary cells and a plurality of memory cells arranged in a matrix .
The memory cell
A memory cell portion for storing data of “1” or “0”;
A reference data input unit for inputting the reference data;
An arithmetic function unit for performing a logical operation using the storage data stored in the memory cell unit and the reference data from the reference data input unit;
A calculation data output unit for outputting calculation data obtained by calculation in the calculation function unit;
A cell selection signal input unit for inputting a cell selection signal;
Based on the cell selection signal input to the cell selection signal input unit, an output control unit that outputs the calculation data obtained by calculation in the calculation function unit to the calculation data output unit,
The calculation auxiliary cell is
A calculation data input unit for inputting calculation data output to the calculation data output unit of the memory cell;
A calculation unit that obtains the difference by performing a numerical calculation using the calculation data input to the calculation data input unit ,
The area of the plurality of memory cells arranged in a matrix is composed of a plurality of divided areas.
The memory block
A motion vector detection device comprising a switching mechanism for controlling a memory cell so that the cell selection signal input unit of the memory cell belonging to the division region to be activated inputs the cell selection signal .
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記参照フレームを構成する複数の画素データを記憶する第1のメモリ部と、
上記探索フレームを構成する複数の画素データを記憶する第2のメモリ部と、
上記第1のメモリ部より参照ブロックの画素データを読み出して上記第2のメモリ部に参照データとして供給すると共に、上記第2のメモリ部において、上記参照ブロックに対応した探索範囲の複数の候補ブロックのそれぞれに対し、該候補ブロックの画素データと上記参照ブロックの画素データとの差分を、対応する画素データ毎に演算するように制御するメモリ制御部と、
上記第2のメモリ部で演算された複数の候補ブロックのそれぞれに対する画素データ毎の差分に基づいて、上記参照ブロックに対応した動きベクトルを検出する動きベクトル検出部とを備え、
上記第2のメモリ部は、それぞれ1個または2個以上の半導体メモリブロックで構成され、
上記半導体メモリブロックは、
複数のビット線と、
上記複数のビット線に直交する複数のワード線と、
上記複数のビット線に平行する、上記参照データを入力するための参照データ入力線と、
上記複数のビット線に平行する、演算データを出力するための演算データ出力線と、
上記複数のワード線に平行する、セル選択信号を入力するためのセル選択線と、
上記ビット線、上記ワード線、上記参照データ入力線、上記演算データ出力線および上記セル選択線に接続され、マトリックス状に配された複数のメモリセルと、
上記複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行って上記差分を得る演算補助セルとを有し、
上記メモリセルは、
"1"または"0"のデータを記憶するメモリセル部と
上記参照データ入力線に接続され、上記参照データを入力するための参照データ入力部と、
上記メモリセル部に記憶されている記憶データと上記参照データ入力部からの参照データとを用いた論理演算を行う演算機能部と、
上記演算データ出力線に接続され、上記演算機能部で演算されて得られた演算データを上記演算データ出力線に出力するための演算データ出力部と、
上記セル選択線に接続され、上記セル選択信号を入力するためのセル選択信号入力部と、
上記セル選択信号入力部に入力されるセル選択信号に基づいて、上記演算機能部で演算されて得られた演算データを上記演算データ出力部に出力する出力制御部とを備え
上記マトリックス状に配された複数のメモリセルの領域は、上記ワード線に沿う方向に分割された複数の分割領域からなり、
上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、
上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有する
ことを特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector from a reference frame and a search frame that are temporally forward and backward,
A first memory unit for storing a plurality of pixel data constituting the reference frame;
A second memory unit for storing a plurality of pixel data constituting the search frame;
The pixel data of the reference block is read from the first memory unit and supplied to the second memory unit as reference data, and a plurality of candidate blocks in the search range corresponding to the reference block in the second memory unit A memory control unit that controls the difference between the pixel data of the candidate block and the pixel data of the reference block to be calculated for each corresponding pixel data,
A motion vector detection unit that detects a motion vector corresponding to the reference block based on a difference for each pixel data with respect to each of the plurality of candidate blocks calculated in the second memory unit;
Each of the second memory units is composed of one or more semiconductor memory blocks,
The semiconductor memory block is
Multiple bit lines,
A plurality of word lines orthogonal to the plurality of bit lines;
A reference data input line for inputting the reference data parallel to the plurality of bit lines;
A calculation data output line for outputting calculation data parallel to the plurality of bit lines;
A cell selection line for inputting a cell selection signal parallel to the plurality of word lines;
A plurality of memory cells arranged in a matrix and connected to the bit line, the word line, the reference data input line, the arithmetic data output line, and the cell selection line;
A calculation auxiliary cell that obtains the difference by performing a numerical calculation using at least a part of the calculation data output from the plurality of calculation data output lines,
The memory cell
A memory cell portion for storing data of “1” or “0”, a reference data input portion connected to the reference data input line for inputting the reference data,
An arithmetic function unit for performing a logical operation using the storage data stored in the memory cell unit and the reference data from the reference data input unit;
A calculation data output unit connected to the calculation data output line and outputting the calculation data obtained by calculation in the calculation function unit to the calculation data output line;
A cell selection signal input unit connected to the cell selection line for inputting the cell selection signal;
Based on the cell selection signal input to the cell selection signal input unit, an output control unit that outputs the calculation data obtained by calculation in the calculation function unit to the calculation data output unit ,
The area of the plurality of memory cells arranged in the matrix form is composed of a plurality of divided areas divided in the direction along the word line,
Each of the plurality of cell selection lines includes a plurality of divided cell selection lines divided corresponding to the plurality of divided regions,
The motion vector detecting device , wherein the memory block has a switching mechanism for switching the divided cell selection lines activated simultaneously in each divided region .
時間的に前後する参照フレームと探索フレームとから動きベクトルを検出する動きベクトル検出装置であって、
上記参照フレームを構成する複数の画素データを記憶する第1のメモリ部と、
上記探索フレームを構成する複数の画素データを記憶する第2のメモリ部と、
上記第1のメモリ部より参照ブロックの画素データを読み出して上記第2のメモリ部に参照データとして供給すると共に、上記第2のメモリ部において、上記参照ブロックに対応した探索範囲の複数の候補ブロックのそれぞれに対し、該候補ブロックの画素データと上記参照ブロックの画素データとの差分を、対応する画素データ毎に演算するように制御するメモリ制御部と、
上記第2のメモリ部で演算された複数の候補ブロックのそれぞれに対する画素データ毎の差分に基づいて、上記参照ブロックに対応した動きベクトルを検出する動きベクトル検出部とを備え、
上記第2のメモリ部は、それぞれ1個または2個以上の半導体メモリブロックで構成され、
上記半導体メモリブロックは、
複数のビット線と、
上記複数のビット線に直交する複数のワード線と、
上記複数のビット線に直交する、上記参照データを入力するための参照データ入力線と、
上記複数のビット線に直交する、演算データを出力するための演算データ出力線と、
上記複数のワード線に直交する、セル選択信号を入力するためのセル選択線と、
上記ビット線、上記ワード線、上記参照データ入力線、上記演算データ出力線および上記セル選択線に接続され、マトリックス状に配された複数のメモリセルと、
上記複数の演算データ出力線で出力される演算データの少なくとも一部を用いて数値演算を行って上記差分を得る演算補助セルとを有し、
上記メモリセルは、
"1"または"0"のデータを記憶するメモリセル部と
上記参照データ入力線に接続され、上記参照データを入力するための参照データ入力部と、
上記メモリセル部に記憶されている記憶データと上記参照データ入力部からの参照データとを用いた論理演算を行う演算機能部と、
上記演算データ出力線に接続され、上記演算機能部で演算されて得られた演算データを上記演算データ出力線に出力するための演算データ出力部と、
上記セル選択線に接続され、上記セル選択信号を入力するためのセル選択信号入力部と、
上記セル選択信号入力部に入力されるセル選択信号に基づいて、上記演算機能部で演算されて得られた演算データを上記演算データ出力部に出力する出力制御部とを備え
上記マトリックス状に配された複数のメモリセルの領域は、上記ビット線に沿う方向に分割された複数の分割領域からなり、
上記複数のセル選択線は、それぞれ、上記複数の分割領域に対応して分割された複数の分割セル選択線からなり、
上記メモリブロックは、各分割領域で同時に活性化される上記分割セル選択線を切り換えるための切り換え機構を有する
ことを特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector from a reference frame and a search frame that are temporally forward and backward,
A first memory unit for storing a plurality of pixel data constituting the reference frame;
A second memory unit for storing a plurality of pixel data constituting the search frame;
The pixel data of the reference block is read from the first memory unit and supplied to the second memory unit as reference data, and a plurality of candidate blocks in the search range corresponding to the reference block in the second memory unit A memory control unit that controls the difference between the pixel data of the candidate block and the pixel data of the reference block to be calculated for each corresponding pixel data,
A motion vector detection unit that detects a motion vector corresponding to the reference block based on a difference for each pixel data with respect to each of the plurality of candidate blocks calculated in the second memory unit;
Each of the second memory units is composed of one or more semiconductor memory blocks,
The semiconductor memory block is
Multiple bit lines,
A plurality of word lines orthogonal to the plurality of bit lines;
A reference data input line for inputting the reference data orthogonal to the plurality of bit lines;
An operation data output line for outputting operation data orthogonal to the plurality of bit lines;
A cell selection line for inputting a cell selection signal orthogonal to the plurality of word lines;
A plurality of memory cells arranged in a matrix and connected to the bit line, the word line, the reference data input line, the arithmetic data output line, and the cell selection line;
A calculation auxiliary cell that obtains the difference by performing a numerical calculation using at least a part of the calculation data output from the plurality of calculation data output lines,
The memory cell
A memory cell portion for storing data of “1” or “0”, a reference data input portion connected to the reference data input line for inputting the reference data,
An arithmetic function unit for performing a logical operation using the storage data stored in the memory cell unit and the reference data from the reference data input unit;
A calculation data output unit connected to the calculation data output line and outputting the calculation data obtained by calculation in the calculation function unit to the calculation data output line;
A cell selection signal input unit connected to the cell selection line for inputting the cell selection signal;
Based on the cell selection signal input to the cell selection signal input unit, an output control unit that outputs the calculation data obtained by calculation in the calculation function unit to the calculation data output unit ,
The area of the plurality of memory cells arranged in a matrix is composed of a plurality of divided areas divided in the direction along the bit line,
Each of the plurality of cell selection lines includes a plurality of divided cell selection lines divided corresponding to the plurality of divided regions,
The motion vector detecting device , wherein the memory block has a switching mechanism for switching the divided cell selection lines activated simultaneously in each divided region .
時間的に前後する参照フレームと探索フレームとから動きベクトル検出回路で動きベクトルを検出し、該動きベクトルを用いて動き補償を行う動き補償予測符号化装置であって、
上記動きベクトル検出回路は、
上記参照フレームを構成する複数の画素データを記憶する第1のメモリ部と、
上記探索フレームを構成する複数の画素データを記憶する第2のメモリ部と、
上記第1のメモリ部より参照ブロックの画素データを読み出して上記第2のメモリ部に参照データとして供給すると共に、上記第2のメモリ部において、上記参照ブロックに対応した探索範囲の複数の候補ブロックのそれぞれに対し、該候補ブロックの画素データと上記参照ブロックの画素データとの差分を、対応する画素データ毎に演算するように制御するメモリ制御部と、
上記第2のメモリ部で演算された複数の候補ブロックのそれぞれに対する画素データ毎の差分に基づいて、上記参照ブロックに対応した動きベクトルを検出する動きベクトル検出部とを備え、
上記第2のメモリ部は、演算補助セルおよびマトリックス状に配された複数のメモリセルを有する、1個または2個以上の半導体メモリブロックで構成され、
上記メモリセルは、
"1"または"0"のデータを記憶するメモリセル部と、
上記参照データを入力するための参照データ入力部と、
上記メモリセル部に記憶されている記憶データと上記参照データ入力部からの参照データとを用いた論理演算を行う演算機能部と、
上記演算機能部で演算されて得られた演算データを出力する演算データ出力部と、
セル選択信号を入力するためのセル選択信号入力部と、
上記セル選択信号入力部に入力されるセル選択信号に基づいて、上記演算機能部で演算されて得られた演算データを上記演算データ出力部に出力する出力制御部とを備え、
上記演算補助セルは、
上記メモリセルの演算データ出力部に出力された演算データを入力するための演算データ入力部と、
上記演算データ入力部に入力された演算データを用いた数値演算を行って上記差分を得る演算部とを備え
上記マトリックス状に配された複数のメモリセルの領域は、複数の分割領域からなり、
上記メモリブロックは、
活性化対象の分割領域に属するメモリセルの上記セル選択信号入力部が上記セル選択信号を入力するように、当該メモリセルを制御する切り換え機構を有する
ことを特徴とする動き補償予測符号化装置。
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
A first memory unit for storing a plurality of pixel data constituting the reference frame;
A second memory unit for storing a plurality of pixel data constituting the search frame;
The pixel data of the reference block is read from the first memory unit and supplied to the second memory unit as reference data, and a plurality of candidate blocks in the search range corresponding to the reference block in the second memory unit A memory control unit that controls the difference between the pixel data of the candidate block and the pixel data of the reference block to be calculated for each corresponding pixel data,
A motion vector detection unit that detects a motion vector corresponding to the reference block based on a difference for each pixel data with respect to each of the plurality of candidate blocks calculated in the second memory unit;
The second memory unit includes one or two or more semiconductor memory blocks having a plurality of auxiliary cells and a plurality of memory cells arranged in a matrix .
The memory cell
A memory cell portion for storing data of “1” or “0”;
A reference data input unit for inputting the reference data;
An arithmetic function unit for performing a logical operation using the storage data stored in the memory cell unit and the reference data from the reference data input unit;
A calculation data output unit for outputting calculation data obtained by calculation in the calculation function unit;
A cell selection signal input unit for inputting a cell selection signal;
Based on the cell selection signal input to the cell selection signal input unit, an output control unit that outputs the calculation data obtained by calculation in the calculation function unit to the calculation data output unit,
The calculation auxiliary cell is
A calculation data input unit for inputting calculation data output to the calculation data output unit of the memory cell;
A calculation unit that obtains the difference by performing a numerical calculation using the calculation data input to the calculation data input unit ,
The area of the plurality of memory cells arranged in a matrix is composed of a plurality of divided areas.
The memory block
A motion-compensated predictive coding apparatus comprising: a switching mechanism for controlling a memory cell so that the cell selection signal input unit of the memory cell belonging to the division area to be activated inputs the cell selection signal .
JP2002004956A 2002-01-11 2002-01-11 Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device Expired - Fee Related JP4122774B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002004956A JP4122774B2 (en) 2002-01-11 2002-01-11 Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002004956A JP4122774B2 (en) 2002-01-11 2002-01-11 Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device

Publications (2)

Publication Number Publication Date
JP2003208303A JP2003208303A (en) 2003-07-25
JP4122774B2 true JP4122774B2 (en) 2008-07-23

Family

ID=27644137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002004956A Expired - Fee Related JP4122774B2 (en) 2002-01-11 2002-01-11 Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device

Country Status (1)

Country Link
JP (1) JP4122774B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100966129B1 (en) 2002-10-15 2010-06-25 소니 주식회사 Memory device
JP4846306B2 (en) 2005-09-09 2011-12-28 富士通セミコンダクター株式会社 Semiconductor memory device, semiconductor integrated circuit system using the same, and method for controlling semiconductor memory device
KR100871385B1 (en) 2007-07-31 2008-12-02 주식회사 하이닉스반도체 Setup/hold time control circuit

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100927760B1 (en) Memory cell circuit, memory device, motion vector detection device, and motion compensation predictive encoding device
JP4989900B2 (en) Parallel processing unit
US20080133881A1 (en) Array of processing elements with local registers
KR101017688B1 (en) Semiconductor device, image data processing apparatus and method
JP4932273B2 (en) Arithmetic processing circuit using ferroelectric capacitor and arithmetic method
JP4122774B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
JP4165070B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
KR930001734B1 (en) Partical random access memory
US20190103141A1 (en) Element value comparison in memory
CN115831185A (en) Storage and calculation integrated chip, operation method, manufacturing method and electronic equipment
JP4003529B2 (en) Motion vector detection circuit and motion vector detection method
US6901027B2 (en) Apparatus for processing data, memory bank used therefor, semiconductor device, and method for reading out pixel data
JP2003208789A5 (en)
JP5261694B2 (en) Image processing memory
JP4536310B2 (en) Motion vector detection device and motion compensated prediction encoding device
US8115874B2 (en) Memory optimization for video processing
US6049235A (en) Semiconductor device, signal processing system using the same, and calculation method therefor
JP4689659B2 (en) Semiconductor memory and signal processing apparatus
JP4238578B2 (en) Motion vector detection device and detection method
JP2000242554A (en) Pseudo multiport memory device
KR102443742B1 (en) A monolithic 3D based scratchpad memory
JP2003289545A (en) Semiconductor device
JP3988522B2 (en) Data processing apparatus and semiconductor device
JP4273695B2 (en) Motion vector detection device
JP2000076845A (en) Storage device and control method therefor

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071130

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

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

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

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