Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3652909B2 - Pseudo multi-port memory device - Google Patents
[go: Go Back, main page]

JP3652909B2 - Pseudo multi-port memory device - Google Patents

Pseudo multi-port memory device Download PDF

Info

Publication number
JP3652909B2
JP3652909B2 JP4060099A JP4060099A JP3652909B2 JP 3652909 B2 JP3652909 B2 JP 3652909B2 JP 4060099 A JP4060099 A JP 4060099A JP 4060099 A JP4060099 A JP 4060099A JP 3652909 B2 JP3652909 B2 JP 3652909B2
Authority
JP
Japan
Prior art keywords
data
pixels
pixel
read
shift register
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 - Lifetime
Application number
JP4060099A
Other languages
Japanese (ja)
Other versions
JP2000242554A (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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP4060099A priority Critical patent/JP3652909B2/en
Publication of JP2000242554A publication Critical patent/JP2000242554A/en
Application granted granted Critical
Publication of JP3652909B2 publication Critical patent/JP3652909B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Image Input (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、多ポートメモリ装置に関し、特に動画像のフレーム間画像符号化処理の動きベクトル探索などで用いられ、複数のデータを連続アドレスに一度に書き込むとともに、複数のデータを関連のないアドレスから同時に読み出せる多ポートメモリ装置に関するものである。
【0002】
【従来の技術】
動画像のフレーム間画像符号化処理などで用いられるベクトル探索では、動きベクトルの検出方法として、通常、ブロックマッチング方法が用いられる。
このブロックマッチング方法では、画面を小さな矩形領域(ブロック)に分割して、ブロックごとに動きを検出するものである。
ブロックのサイズとしては、一般的に横8画素×縦8画素や横16画素×縦16画素などがある。
【0003】
次に、従来の動きベクトル探索方法のうち、もっとも単純かつ高画質の全探索方法について説明する。
図3は従来の全探索方法を示す説明図であり、動きベクトルを求める対象であるテンプレート1と、動きベクトルの探索範囲である探索領域2が模式的に示されている。
【0004】
テンプレート1は、ある画像中の画素ブロックを示し、探索領域2はテンプレート1より大きな他の画像中の画素ブロックである。
また、△3(三角印)はテンプレート1を構成する画素、○4(丸印)は探索領域2を構成する画素である。
図3では、探索領域2の上にテンプレート1が重なって示されており、重なり部分の探索領域中の画素○4は表示されていない。
【0005】
以下では、水平方向の画素数の単位を画素と呼び、垂直方向の画素数の単位をラインと呼ぶ。
これによれば、図3に示すテンプレートは4画素×4ラインと表現され、探索領域2は11画素×11ラインと表現される。
【0006】
この全探索方法では、探索領域2からテンプレート1と同じ大きさの4画素×4ラインの領域(以下、この領域をブロックという)を順次切り出し、この切り出したブロックの各画素の画素値と、テンプレート1の対応する画素の画素値との間で、順次、差分絶対値や差分二乗値などを求める。
そして、求めた値の各画素値についての総和を、切り出したブロックごとに算出する。
【0007】
すなわち、探索領域2において、左上から右下に向かって、ブロックを1画素または1ラインずつずらしていくと、探索領域2は11画素×11ラインであるので、合計8×8=64個のブロックが切り出され、これがテンプレート1との間で演算(差分絶対値和や差分二乗値和などを求める演算)を行う対象となる。そして、演算結果が最小となるブロックから、このテンプレート1が移動してきたものとして動きベクトルを求める。
【0008】
図3において、テンプレート1に対応する位置の画素ブロックの動きベクトルを(0,0)とすると、動きベクトルが取りうる値の範囲は、水平方向および垂直方向とも「−4〜+3」である。
これは、図3に示されているように、テンプレート1が水平方向および垂直方向において、いずれか一方側に4画素(または4ライン)分だけ、またその他方側に3画素(または3ライン)分だけ、それぞれ移動しうることによる。
【0009】
そして、例えばブロック5の演算値(差分絶対値和や差分二乗値和など)が最小であった場合、その動きベクトルは(−2,−2)となる。
以上が、動きベクトルを求める原理説明である。
なお、動きベクトルを求めるための動きベクトル探索方法として、以下では差分絶対値和を用いる場合について説明するが、他の演算式として差分二乗値和などの評価式を用いてもよい。
【0010】
この全探索方法は、差分絶対値和を計算する演算器(以下、PEという)の並列化が容易である。
通常、探索領域中の画素はメモリに記憶されているが、隣接するブロック間のがその重なりを利用することにより、並列化したPE(以下、PEアレイという)とメモリとの間の画素転送量を削減できる。
【0011】
図4はPEアレイの動作を示す説明図である。
ここでは、探索領域6の横の画素数を、
(テンプレートの横の画素数)×2−1
=4×2−1=7
に制限し、ブロック7〜10に対応して4個のPEが設けられる。
これら4つのブロックは、互いに隣接ブロックと4画素×3ライン分ずつ重なっている。
【0012】
このため、メモリから1画素のみ読み出してPEアレイに送り、ブロック7〜10に対応したPEをこの順番に1サイクルずつ遅らせて起動することにより、並列に演算できる。
また、ブロック7とブロック11とは、4画素×3ライン分だけ重なっているため、ブロック11に対応したPEを設けて、探索領域6の2ライン目の画素をPEアレイに送ることにより、ブロック11に対応したPEでも並列演算できる。
【0013】
すなわち、探索領域6中の画素をその領域の左上角の画素から右下角の画素まで連続したアドレスに記憶し、そのメモリから1画素ずつその順番で読み出してPEアレイに送ることにより、PEアレイでの並列演算を実現できる。
この方法により、テンプレートの画素数までのPEの並列化が可能となる。
しかし、メモリから1画素読み出すだけでは、探索領域6の右端において、PEに無効サイクルが生じる。
【0014】
図5は無効サイクルの発生メカニズムを示す説明図である。
同図において、探索領域6の各画素のうち、画素12はブロック8〜10の計算に使われるが、ブロック7とブロック11の計算には使われない。
したがって、画素12をメモリから読み出してPEアレイに送るとき、ブロック7とブロック11の計算に対応したPEでは計算できず、無効サイクルが生じる。
これを回避するためには、画素12と同時に画素13をメモリから読み出し、PEアレイに送る必要がある。
【0015】
また、図3に示した探索領域2の横の画素数は、図4,5で示した探索領域6より多く、その画素数は
(テンプレートの横の画素数)×3−1
=4×3−1=11
である。
【0016】
この場合、図6に示すように、探索領域2を左の探索領域14と右の探索領域15に分けて2回探索することにより、探索領域2から切り出されるすべてのブロックの評価を行うことができる。
図6は並列演算技術を示す説明図である。
この並列演算技術については、例えば「南俊宏,近藤利夫、村主一仁、笠井良太、”一次元シストリックアレー型全探索動きベクトル検出器の提案”、信学論(D−1),vol.J78-D-1,no.12,pp.913-925,Dec.1995」などの文献に述べられている。
【0017】
同文献では、差分絶対値和を計算する演算器(PE)の構成方法を、PEに動きベクトルを対応させるか、あるいはテンプレートに対応させるかという基準、さらに探索領域中の画素をシフトするか、あるいは放送するかという基準の2つの基準に基づき、4種類の基本構成が示されている。
以下、図7を参照して、前述した図4で用いられるPEの構成例として、「動きベクトル対応・探索領域画素放送方式(MMSB…Motion-vector Mapping method with Search-area-pixel Broadcasting)の動作原理について説明する。
【0018】
図7は動きベクトル対応・探索領域画素放送方式を示す説明図であり、(a)はPEのブロック図、(b)は演算過程を示している。
なお、実際には画像は2次元であるが、単純化のために図7では1次元と仮定した場合が示されている。
MMSBでは、探索領域中の画素Xを1画素ずつ全PEに放送するとともに、テンプレート中の画素aをPE間でクロックCKごとにシフトさせる。
【0019】
各PEでは、画素aと画素Xとで差分絶対値a@XがCKごとにそれぞれ算出され、ラッチと加算器により各PE内で累算される。
そして、CKに応じてセレクタで各PEからの出力を選択することにより、図7(b)に示すように、差分絶対値和Sが順次算出され、例えばクロック「3CK」では、
0 =a0 @X0 +a1 @X1 +a2 @X2 +a3 @X3
が算出される。
【0020】
また、図8,9を参照して、前述した図5で用いられるPEの構成例として、上記のMMSBの改良方式の探索領域分割方式の動作原理について説明する。
図8は探索領域分割方式を示す説明図であり、(a)は画素配置例、(b)はPEのブロック図である。
また図9は2次元画像に対するMMSBの計算課程を示す説明図である。
【0021】
前述した図5において、画素12を読み出したとき、画素13を同時に読み出さない場合の差分絶対値計算過程は、図9に示すとおりである。
2次元の画像対応に拡張されたMMSBでは、差分絶対値和S0,0 、S0,1 、S0,2 を計算するPEにおいて、S0,3 の1行目の計算が終了するまで2行目の計算を開始できず、無効サイクル(図中破線領域)が生じることが分かる。
【0022】
この無効サイクルは、図8(a)に示すように、2行目の画素を補充することによりその発生を回避できる。
この場合、画素X0,4 は、差分絶対値和S0,1 ,S0,2 ,S0,3 の計算に使われ、X1,0 はS0,0 の計算に使われる。
したがって、図8(b)に示すように、これら2画素X0,4 ,X1,0 を同時に放送する。
【0023】
そして、S0,0 を計算中の左端のPEではX1,0 を選択するとともに、それ以外のPEではX0,4 をセレクタで選択する。
これにより、4つのPEすべてにおいて計算を続行できる。
すなわち、一度に探索する横方向の動きベクトル数をテンプレートの横方向の画素数と一致させ、探索領域の右端から左端に移るときに発生する無効サイクルは、次の行の画素を補充することにより削除すればよいことになる。
【0024】
また、上記で示した無効サイクルと同様の原因により、探索領域の下端でもPEアレイに無効サイクルが生じる。
これを防ぐためにはメモリから4画素同時に読み出してPEアレイに送ればよい。
例えば、図6に示したように、探索領域14中の画素16と画素17、および探索領域15中の画素18と画素19とをPEアレイに送ることにより、探索領域の下端において無効サイクルの発生を回避できる。
【0025】
この技術については、例えば「M.mizumo,Y.Ooi,N.Hayashi,J.Goto,M.Hozumi,K.Furuta,A.Shibayama,Y.Nakazawa,O.Ohnishi,S.Zhu,Y.Yokoyama,Y.Katayama,H.Tanaka,N.Miki,Y.Senda,I.Tamitani,M.Yamashina;"A 1.5-WSingle-Chip MPEG-2 MP@ML Video Encoder with Low Power Motion Estimation and Clocking" IEEE J.Solid-State Circuits,vol.32,no.11,pp.1807-1816,Nov.1997」などの文献に述べられている。
【0026】
このような方法により無効サイクルの発生を回避するには、4個の画素(データ)を関連のないアドレスから同時に読み出す必要がある。
そのため、4ポートメモリを用いることも考えられるが、4ポートメモリはサイズが大きくかつ低速である。
【0027】
そこで、図10に示すように、1ポートメモリを複数個用いることが考えられる。
図10は複数のメモリを用いた全探索方法(第1の従来技術)を示す説明図である。
このように、同時に読み出される画素を別個の4つのメモリ20〜23に格納することにより、4画素同時読み出しが可能となる。
【0028】
さて、以上の説明から分かるように、全探索法を採用すると、メモリとPEアレイの構造は単純になるが、ブロックサイズおよび探索領域サイズが大きくなるにつれて膨大な演算量が必要になる。
そこで、演算量を削減するために、テレスコピック探索法が提案された。
【0029】
一般に、動画は時間的に連続した複数の画像から構成されており、特に画像符号化処理においては時間的に一枚前の画像だけではなく複数枚前の画像の動きベクトルを求める場合がある。
このような場合は、隣接した画像中の狭い領域で動きベクトルを求め、それを初期値として次の隣接画像中の狭い領域で動きベクトルを求めることを繰り返すことにより、時間的に離れた画像間での動きベクトルが求められる。
【0030】
このテレスコピック探索法について、図11を参照して説明する。
図11はテレスコピック探索法(第2の従来技術)を示す説明図である。
同図において、画像25〜28は時間的に連続した4枚の画像であり、画像28が現在の画像であり、画像25,画像26,画像27はそれぞれ3画面前,2画面前,1画面前の画像である。
矩形ブロック24は、画像25から画像26へ動きベクトルmv1で移動しており、同様に画像26から画像27,画像27から画像28へそれぞれ動きベクトルmv2,mv3で移動している。
【0031】
したがって、画像28から画像25への矩形ブロック24の動きは「mv1+mv2+mv3」となる。
テレスコピック探索法では、画像28から画像25への動きベクトルを求めるために、画像28中の矩形ブロック24をテンプレートとして、最初に画像27中の領域31内を探索して動きベクトルmv3を検出する。
この場合、領域31の中心の動きベクトルは(0,0)である。
【0032】
次に、画像26中の領域30内を探索して動きベクトルmv2を検出する。
矩形ブロック24に関する画像28から画像27への動きベクトルを考量すると、領域30の中心の動きベクトルはmv3となる。
最後に、画像25中への動きベクトルも考量すると、領域29の中心の動きベクトルは「mv3+mv2」となる。
【0033】
また、演算量を削減するための別の技術として、サンプリングによって得られた縮小画像上で動きを評価し、得られた動きベクトルを初期値として、狭い範囲のみでの探索を行う技術も提案されている。
このサンプリング法と上述したテレスコピックタンク法を組み合わせた方法が、例えば、「K.Suguri,T.Minami,H.Matuda,R.Kusaba,T.Kondo,R.Kasai,T.Watanabe,H.Sato,N.Shibata,Y.Tashiro,T.Izuoka,A.Shimiz,H.Kotera,"A real-time motion estimation and compensation LSI with wide search range for MPEG2 video encoding" IEEE J.Solid-State Circuits,vol.31,no.11,pp.1733-1741,Nov.1996」などの文献に述べられている。
【0034】
【発明が解決しようとする課題】
しかしながら、このような一般的な複数個の1ポートメモリを前述した各動きベクトル探索における探索対象画素格納用のメモリ装置として用いようとした場合、それぞれ次のような問題点があった。
まず、同時に読み出される画素を別々のメモリに格納する全探索方法(第1の従来技術:図10参照)で、小容量のメモリを複数用いた場合、大容量のメモリを1個用いる場合と比べて分割損が生じ、チップ面積が増大するという問題点があった。
【0035】
また、テレスコピック探索法(第2の従来技術:図11参照)では、前のフィールドの探索結果に基づき、次のフィールドの探索位置を適応的に決めている。このため、探索領域用メモリにおける探索対象画素のアドレスを予め決めておくことができず、同時に読み出される画素を別々のメモリに格納することができないという問題点があった。
本発明はこのような課題を解決するためのものであり、大容量のメモリを1個または2個用いて、複数のデータを関連のないアドレスから読み出すことができる擬似多ポートメモリ装置を提供することを目的としている。
【0036】
【課題を解決するための手段】
このような目的を達成するために、本発明による擬似多ポートメモリ装置は、データ群を構成する複数のデータを一度に読み書きできるだけの入出力ビット幅を有する2つの1ポートメモリと、これら1ポートメモリから読み出された各データ群を構成するそれぞれのデータから、任意のデータを選択して並び替え新たなデータ群として出力するデータ並び替え手段と、このデータ並び替え手段に対して並列配置されたそれぞれ所定シフト段数を有する複数のシフトレジスタからなるシフトレジスタ群を設け、データ並び替え手段から順次読み出された対応するデータ群を各シフトレジスタで順に保持するとともに、各データ群を構成する複数のデータを1データずつ各シフトレジスタから順次シフト出力することにより、各シフトレジスタから所望のデータを並列して同時に出力するようにしたものである。
【0038】
【発明の実施の形態】
次に、本発明について図面を参照して説明する。
図1は本発明の第1の実施の形態である擬似多ポートメモリ装置のブロック図である。
本実施の形態では、1つの画素群(データ群)を構成する4画素(4データ)を同時に読み出しまたは書き込みできるだけの入出力ビット幅を持ったメモリ32を1個用い、探索領域中の全画素がこのメモリ32に記憶される。
【0039】
ここでは、探索領域の概念を理解しやすくするためにメモリ32を2次元で表しているが実際には1次元のメモリであり、4画素(4データ)が1アドレスに記憶されている。
例えば、メモリ32内の1ライン目における左,真ん中,右の各4画素には、それぞれ0番地,1番地,2番地というアドレスが割り振られている。
また、2ライン目における左,真ん中,右の各4画素には、それぞれ3番地,4番地,5番地というアドレスが割り振られており、同一ラインでは左から右へ連続アドレスが割り振られ、全体としては上から下へ順に割り振られている。
【0040】
なお、メモリ32中の×印は無効データを示している。
前述した図3の探索領域2は水平方向が11画素であるため、1ラインの総画素数が4で割り切れない。
このような場合には、一度に読み書きする4画素が必ず同一ラインの画素のみとなるように無効データを追加する。
【0041】
メモリ32からはCK(クロック)に同期して4画素同時に読み出され、並列に配置されたシフトレジスタ群の各シフトレジスタ37〜40に、「39→40→37→38」の順番で1CKごとにセットされる。
4本の矢印44a〜44dは、メモリ32から読み出される画素群の左端画素から順に各画素にそれぞれ対応しており、メモリ32から読み出された4画素がシフトレジスタにセットされるパス(経路)を表している。
【0042】
シフトレジスタ37〜40は、1CKごとに1画素ずつ右にシフトする。
シフトレジスタ39,40,37,38のシフト段数は、それぞれ7個、5個、5個、3個である。
このように、シフトレジスタのシフト段数に差を設けるのは、本来同時に読み出すべき4つの画素群を4CKにわたって各CKごとに読み出すためである。
【0043】
ここで、画素群34と画素群36は3画素であり、1画素は無効であるため、シフトレジスタ40とシフトレジスタ38のシフト段数は5と3となっている。
なお、画素群34は、図6に示した左の探索領域14に含まれ、領域14中の右側部分に当たるため、3画素となる。
4画素すべてが有効であるような応用では、それぞれ6と4となる。
以下、各シフトレジスタの動作について説明する。
まず、最初のCKで画素18を含む画素群35が読み出されて、シフトレジスタ39にセットされる。
【0044】
そして、後続のCKで順にシフトされ、5番目のCKで画素18がPEアレイ45に出力される。
また2番目のCKでは、画素19を含む画素群36が読み出されて、シフトレジスタ40にセットされ、5番目のCKで画素19がPEアレイ45に出力される。
【0045】
また3番目のCKでは、画素16を含む画素群33が読み出されて、シフトレジスタ37にセットされ、5番目のCKで画素16がPEアレイ45に出力される。
また4番目のCKでは、画素17を含む画素群34が読み出されて、シフトレジスタ38にセットされ、5番目のCKで画素17がPEアレイ45に出力される。
【0046】
したがって、5番目のCKで画素16〜19がPEアレイ45に同時に並列して出力されていることが分かる。
このことから、本実施の形態によれば、図10に示した小容量のメモリを複数用いる場合のように分割損が発生せず、1個のメモリを用いて、複数の画素(データ)を関連のないアドレスから同時に読み出すことが可能な多ポートメモリ装置を構成でき、チップ面積の増大を抑制できる。
【0047】
なお、本実施の形態では、メモリ32で一度に読み書きする画素数を4画素とし、テンプレートの横方向の画素数と一致する場合のみ示したが、これに限定されるものではない。
すなわち、本実施の形態は、複数画素数を一度に読み出し、対応するシフトレジスタに順次セットするとともに、各シフトレジスタでシフトしながら所望の画素を並列的に出力する点が本実施の形態の本質であり、必ずしもメモリから一度に読み出す画素数をテンプレートの横方向の画素数と一致させる必要はない。
【0048】
上記説明では、メモリ32からは4画素同時に読み出され、シフトレジスタ37〜40に1CKごとにセットされる場合について示されている。
しかし、例えば、シフトレジスタのシフト段数をそれぞれ上記の2倍とし、メモリ32からは2CKごとに8画素同時に読み出され、シフトレジスタ37〜40に「39→40→37→38」の順番で2CKごとにセットされるようにしてもよく、これによりPEアレイ45へ4画素同時に送ることができる。
また、メモリは理論的に1個であればよく、複数のメモリであっても連続アドレスが割り振られていればよい。
【0049】
次に、図2を参照して、本発明の第2の実施の形態について説明する。
図2は本発明の第2の実施の形態による擬似多ポートメモリ装置を示すブロック図である。
本実施の形態では、4画素同時に読み書きできる2個のメモリ41,42を一体として動作させ、8画素時に読み出すようにした場合について説明する。
【0050】
図2において、メモリ41の0番地,1番地,2番地,3番地にはそれぞれ番号00〜03,番号08〜11,番号16〜19,番号24〜27の画素が記憶されている。
また、メモリ42の0番地,1番地,2番地,3番地にはそれぞれ番号04〜07,番号12〜15,番号20〜23,番号28〜31の画素が記憶されている。
【0051】
ここで、メモリ41,42にまたがる番号22〜25の画素をシフトレジスタ37〜40のいずれか1個にセットする場合は、まずメモリ41の3番地から番号24〜27の画素を一度に読み出し、メモリ42の2番地から番号20〜23の画素を一度に読み出す。
次に、これら8画素を画素並べ替え回路43で並べ替えて、番号22〜25の画素を選択する。
【0052】
すなわち、読み出すべき8画素中、若い番号の画素がメモリ41に記憶されている場合は、データ群がメモリ41,42の同一アドレスから読み出される。
一方、読み出すべき8画素中、若い番号の画素がメモリ42に記憶されている場合、メモリ41のアドレスは、メモリ42のアドレス+1とする。
【0053】
これにより、任意の番号の画素を先頭として連続した番号の4画素を読み出すことができる。
そして、前述した第1の実施の形態と同様のシフトレジスタ構成により、所望の4画素が並列してPEアレイ45に出力される。
【0054】
このことから、本実施の形態によれば、図10に示した小容量のメモリを複数用いる場合のように分割損が発生せず、2個のメモリを用いて、複数の画素(データ)を関連のないアドレスから同時に読み出すことが可能な多ポートメモリ装置を構成でき、メモリ装置自体のチップ面積の増大を抑制できる。
また、同時に読み出される4画素の先頭を任意の番号とすることができ、図11に示したテレスコピック探索法にも適用できる。
【0055】
なお、本実施の形態では、2個のメモリを用いた場合について説明したが、これに限定されるものではない。
すなわち、本実施の形態は、複数個のメモリを用いてシフトレジスタにセットする画素数より多い画素を読み出し、画素並べ替え回路により任意の番号の画素を先頭として切り出してシフトレジスタにセットし、シフトしながら出力する点が本質である。
【0056】
したがって、必ずしもメモリの数を2個に限る必要はない。
また、個々のメモリから一度に読み出す画素数をテンプレートの横方向の画素数と一致させる必要もない。
【0057】
【発明の効果】
以上説明したように、本発明は、データ群を構成する複数のデータを一度に読み書きできるだけの入出力ビット幅を有する2つの1ポートメモリと、これら1ポートメモリから読み出された各データ群を構成するそれぞれのデータから、任意のデータを選択して並び替え新たなデータ群として出力するデータ並び替え手段と、このデータ並び替え手段に対して並列配置されたそれぞれ所定シフト段数を有する複数のシフトレジスタからなるシフトレジスタ群を設け、データ並び替え手段から順次読み出された対応するデータ群を各シフトレジスタで順に保持するとともに、各データ群を構成する複数のデータを1データずつ各シフトレジスタから順次シフト出力することにより、各シフトレジスタから所望のデータを並列して同時に出力するようにしたものである。
したがって、本発明の擬似多ポートメモリ装置を動きベクトル探索の全探索法に適用することにより、従来の小容量のメモリを複数用いる場合のように分割損が発生せず複数のデータ(画素)を関連のないアドレスから同時に読み出すことができ、メモリ装置自体のチップ面積の増大を抑制できるとともに、同時に読み出される画素を別々のメモリに格納することができ、テレスコピック探索法にも適用できる
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態による擬似多ポートメモリ装置のブロック図である。
【図2】 本発明の第2の実施の形態による擬似多ポートメモリ装置のブロック図である。
【図3】 従来の全探索方法を示す説明図である。
【図4】 PEアレイの動作を示す説明図である。
【図5】 無効サイクルの発生メカニズムを示す説明図である。
【図6】 探索領域分割方式およびその方式における並列演算技術を示す説明図である。
【図7】 動きベクトル対応・探索領域画素放送方式を示す説明図である。
【図8】 2次元画像において無効サイクルの発生回避方法を示す説明図である。
【図9】 2次元画像に対するMMSBの計算課程を示す説明図である。
【図10】 複数のメモリを用いた全探索方法(第1の従来技術)を示す説明図である。
【図11】 テレスコピック探索法(第2の従来技術)を示す説明図である。
【符号の説明】
16〜19…画素、32…メモリ、33〜36…画素群、37〜40…シフトレジスタ、41,42…メモリ、43…画素並べ替え回路、44a〜44d…パス(矢印)、45…PEアレイ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a multi-port memory device, and is particularly used in motion vector search for inter-frame image encoding processing of moving images, and writes a plurality of data to a continuous address at a time and a plurality of data from unrelated addresses. The present invention relates to a multi-port memory device that can be read simultaneously.
[0002]
[Prior art]
In a vector search used in an inter-frame image encoding process of a moving image, a block matching method is usually used as a motion vector detection method.
In this block matching method, the screen is divided into small rectangular areas (blocks), and motion is detected for each block.
Generally, the block size includes 8 horizontal pixels × 8 vertical pixels, 16 horizontal pixels × 16 vertical pixels, and the like.
[0003]
Next, among the conventional motion vector search methods, the simplest and high image quality full search method will be described.
FIG. 3 is an explanatory diagram showing a conventional full search method, schematically showing a template 1 that is a target for obtaining a motion vector and a search region 2 that is a search range of a motion vector.
[0004]
Template 1 shows a pixel block in a certain image, and search area 2 is a pixel block in another image larger than template 1.
Further, Δ3 (triangle mark) is a pixel constituting the template 1, and ○ 4 (circle mark) is a pixel constituting the search area 2.
In FIG. 3, the template 1 is shown overlaid on the search area 2, and the pixel ◯ 4 in the search area of the overlapping portion is not displayed.
[0005]
Hereinafter, the unit of the number of pixels in the horizontal direction is referred to as a pixel, and the unit of the number of pixels in the vertical direction is referred to as a line.
According to this, the template shown in FIG. 3 is expressed as 4 pixels × 4 lines, and the search area 2 is expressed as 11 pixels × 11 lines.
[0006]
In this full search method, an area of 4 pixels × 4 lines having the same size as the template 1 (hereinafter, this area is referred to as a block) is sequentially cut out from the search area 2, the pixel value of each pixel of the cut out block, the template An absolute difference value, a square difference value, and the like are obtained sequentially from the pixel value of one corresponding pixel.
And the sum total about each pixel value of the calculated | required value is calculated for every cut-out block.
[0007]
That is, in the search area 2, if the block is shifted by one pixel or one line from the upper left to the lower right, the search area 2 is 11 pixels × 11 lines, so that a total of 8 × 8 = 64 blocks Are cut out, and this is a target for calculation (calculation for obtaining a sum of absolute differences, a sum of squared differences, etc.) with the template 1. Then, the motion vector is obtained from the block having the smallest calculation result as the template 1 has moved.
[0008]
In FIG. 3, when the motion vector of the pixel block at the position corresponding to the template 1 is (0, 0), the range of values that the motion vector can take is “−4 to +3” in both the horizontal direction and the vertical direction.
This is because, as shown in FIG. 3, the template 1 in the horizontal and vertical directions is equivalent to 4 pixels (or 4 lines) on either side and 3 pixels (or 3 lines) on the other side. Because it can move each minute.
[0009]
For example, when the calculated value of the block 5 (difference absolute value sum, difference square value sum, etc.) is the minimum, the motion vector is (−2, −2).
The above is the principle explanation for obtaining the motion vector.
As a motion vector search method for obtaining a motion vector, a case where a sum of absolute differences is used will be described below, but an evaluation formula such as a sum of squared differences may be used as another arithmetic formula.
[0010]
This full search method makes it easy to parallelize computing units (hereinafter referred to as PE) that calculate the sum of absolute differences.
Normally, the pixels in the search area are stored in the memory, but by using the overlap between adjacent blocks, the pixel transfer amount between the parallelized PE (hereinafter referred to as PE array) and the memory Can be reduced.
[0011]
FIG. 4 is an explanatory diagram showing the operation of the PE array.
Here, the number of pixels beside the search area 6 is
(Number of pixels next to template) × 2-1
= 4 × 2-1 = 7
4 PEs are provided corresponding to the blocks 7 to 10.
These four blocks overlap each other by 4 pixels × 3 lines.
[0012]
Therefore, only one pixel is read out from the memory, sent to the PE array, and the PEs corresponding to the blocks 7 to 10 are activated by delaying each cycle one cycle at a time in this order.
In addition, since the block 7 and the block 11 are overlapped by 4 pixels × 3 lines, the PE corresponding to the block 11 is provided, and the pixels in the second line of the search area 6 are sent to the PE array, so that Parallel processing can be performed even with PEs corresponding to 11.
[0013]
That is, the pixels in the search area 6 are stored in consecutive addresses from the upper left corner pixel to the lower right corner pixel of the area, read out one by one from the memory in that order, and sent to the PE array. The parallel operation can be realized.
By this method, it is possible to parallelize PEs up to the number of pixels of the template.
However, if only one pixel is read from the memory, an invalid cycle occurs in the PE at the right end of the search area 6.
[0014]
FIG. 5 is an explanatory diagram showing the generation mechanism of the invalid cycle.
In the figure, among the pixels in the search area 6, the pixel 12 is used for the calculation of the blocks 8 to 10, but is not used for the calculation of the blocks 7 and 11.
Therefore, when the pixel 12 is read from the memory and sent to the PE array, it cannot be calculated by the PE corresponding to the calculation of the block 7 and the block 11, and an invalid cycle occurs.
In order to avoid this, it is necessary to read the pixel 13 from the memory simultaneously with the pixel 12 and send it to the PE array.
[0015]
Further, the number of horizontal pixels in the search area 2 shown in FIG. 3 is larger than that in the search area 6 shown in FIGS.
(Number of pixels next to template) × 3-1
= 4 × 3-1 = 11
It is.
[0016]
In this case, as shown in FIG. 6, the search area 2 is divided into a left search area 14 and a right search area 15 and is searched twice, so that all blocks cut out from the search area 2 can be evaluated. it can.
FIG. 6 is an explanatory diagram showing a parallel calculation technique.
For example, “Toshihiro Minami, Toshio Kondo, Kazuhito Murashita, Ryota Kasai,“ Proposal of a one-dimensional systolic array-type full search motion vector detector ”, Science theory (D-1), vol. J78-D-1, no.12, pp.913-925, Dec.1995 ".
[0017]
In the same document, the calculation method of the computing unit (PE) for calculating the sum of absolute differences is based on whether the motion vector or the template is associated with the PE, and the pixels in the search region are shifted. Alternatively, four basic configurations are shown based on two criteria of whether to broadcast.
In the following, referring to FIG. 7, as an example of the configuration of the PE used in FIG. 4 described above, “MMSB (Motion-vector Mapping method with Search-area-pixel Broadcasting) operation” The principle will be described.
[0018]
FIG. 7 is an explanatory diagram showing a motion vector correspondence / search area pixel broadcasting system, where (a) shows a block diagram of PE and (b) shows a calculation process.
Note that the image is actually two-dimensional, but for the sake of simplicity, FIG. 7 shows a case where the image is assumed to be one-dimensional.
In MMSB, the pixels X in the search area are broadcast to every PE pixel by pixel, and the pixels a in the template are shifted between the PEs for each clock CK.
[0019]
In each PE, the difference absolute value a @ X is calculated for each CK between the pixel a and the pixel X, and accumulated in each PE by a latch and an adder.
Then, by selecting the output from each PE by the selector according to CK, the difference absolute value sum S is sequentially calculated as shown in FIG. 7B. For example, in the clock “3CK”,
S0 = A0@X0+ A1@X1+ A2@X2+ AThree@XThree
Is calculated.
[0020]
Also, with reference to FIGS. 8 and 9, the operation principle of the search region division method of the above-described improved MMSB method will be described as a configuration example of the PE used in FIG.
FIG. 8 is an explanatory diagram showing a search area dividing method, where (a) is a pixel arrangement example and (b) is a block diagram of PE.
FIG. 9 is an explanatory diagram showing a calculation process of MMSB for a two-dimensional image.
[0021]
In FIG. 5 described above, the difference absolute value calculation process when the pixel 12 is read and the pixel 13 is not read simultaneously is as shown in FIG.
In the MMSB extended to support two-dimensional images, the sum of absolute differences S0,0, S0,1, S0,2In the PE that calculates0,3It can be seen that the calculation of the second line cannot be started until the calculation of the first line is completed, and an invalid cycle (broken line area in the figure) occurs.
[0022]
The invalid cycle can be avoided by supplementing the pixels in the second row as shown in FIG.
In this case, pixel X0,4Is the sum of absolute differences S0,1, S0,2, S0,3Used to calculate X1,0Is S0,0Used to calculate
Therefore, as shown in FIG. 8B, these two pixels X0,4, X1,0Broadcast simultaneously.
[0023]
And S0,0X in the leftmost PE when calculating1,0And select X for other PEs.0,4Select with the selector.
This allows the calculation to continue in all four PEs.
In other words, the invalid cycle that occurs when the number of horizontal motion vectors to be searched at once matches the number of horizontal pixels of the template and moves from the right end to the left end of the search area is obtained by supplementing the pixels in the next row. You can delete it.
[0024]
Further, due to the same cause as the invalid cycle described above, an invalid cycle occurs in the PE array even at the lower end of the search area.
In order to prevent this, it is only necessary to simultaneously read out four pixels from the memory and send them to the PE array.
For example, as shown in FIG. 6, an invalid cycle occurs at the lower end of the search area by sending the pixels 16 and 17 in the search area 14 and the pixels 18 and 19 in the search area 15 to the PE array. Can be avoided.
[0025]
Regarding this technology, for example, `` M. mizumo, Y. Ooi, N. Hayashi, J. Goto, M. Hozumi, K. Furuta, A. Shibayama, Y. Nakazawa, O. Ohnishi, S. Zhu, Y. Yokoyama , Y.Katayama, H.Tanaka, N.Miki, Y.Senda, I.Tamitani, M.Yamashina; "A 1.5-WSingle-Chip MPEG-2 MP @ ML Video Encoder with Low Power Motion Estimation and Clocking" IEEE J .Solid-State Circuits, vol. 32, no. 11, pp. 1807-1816, Nov. 1997 ”.
[0026]
In order to avoid the generation of invalid cycles by such a method, it is necessary to simultaneously read out four pixels (data) from unrelated addresses.
Therefore, it is conceivable to use a 4-port memory, but the 4-port memory is large and slow.
[0027]
Therefore, it is conceivable to use a plurality of 1-port memories as shown in FIG.
FIG. 10 is an explanatory diagram showing a full search method (first prior art) using a plurality of memories.
As described above, by simultaneously storing the pixels to be read out in the four separate memories 20 to 23, it becomes possible to simultaneously read out the four pixels.
[0028]
As can be seen from the above description, when the full search method is adopted, the structure of the memory and the PE array becomes simple, but an enormous amount of calculation is required as the block size and the search area size increase.
Therefore, a telescopic search method has been proposed to reduce the amount of calculation.
[0029]
In general, a moving image is composed of a plurality of images that are temporally continuous. In particular, in an image encoding process, there are cases where motion vectors of a plurality of previous images are obtained in addition to the previous image in time.
In such a case, a motion vector is obtained in a narrow area in an adjacent image, and it is used as an initial value to obtain a motion vector in a narrow area in the next adjacent image. The motion vector at is obtained.
[0030]
This telescopic search method will be described with reference to FIG.
FIG. 11 is an explanatory diagram showing a telescopic search method (second prior art).
In the figure, images 25 to 28 are four images that are temporally continuous, image 28 is the current image, and images 25, 26, and 27 are three screens ago, two screens ago, and one screen respectively. It is the previous image.
The rectangular block 24 moves from the image 25 to the image 26 with the motion vector mv1, and similarly moves from the image 26 to the image 27 and from the image 27 to the image 28 with the motion vectors mv2 and mv3, respectively.
[0031]
Therefore, the movement of the rectangular block 24 from the image 28 to the image 25 is “mv1 + mv2 + mv3”.
In the telescopic search method, in order to obtain a motion vector from the image 28 to the image 25, first, the region 31 in the image 27 is searched by using the rectangular block 24 in the image 28 as a template to detect the motion vector mv3.
In this case, the motion vector at the center of the region 31 is (0, 0).
[0032]
Next, the area 30 in the image 26 is searched to detect the motion vector mv2.
When the motion vector from the image 28 to the image 27 regarding the rectangular block 24 is considered, the motion vector at the center of the region 30 is mv3.
Finally, when the motion vector into the image 25 is also considered, the motion vector at the center of the region 29 is “mv3 + mv2”.
[0033]
As another technique for reducing the amount of calculation, a technique for evaluating a motion on a reduced image obtained by sampling and performing a search only in a narrow range using the obtained motion vector as an initial value is also proposed. ing.
A method combining this sampling method and the above-described telescopic tank method is, for example, `` K. Suguri, T. Minami, H. Matuda, R. Kusaba, T. Kondo, R. Kasai, T. Watanabe, H. Sato, N. Shibata, Y. Tashiro, T. Izuoka, A. Shimiz, H. Kotera, "A real-time motion estimation and compensation LSI with wide search range for MPEG2 video encoding" IEEE J. Solid-State Circuits, vol. 31 , no. 11, pp.1733-1741, Nov. 1996 ”.
[0034]
[Problems to be solved by the invention]
However, when such a plurality of general one-port memories are used as memory devices for storing search target pixels in each motion vector search described above, there are the following problems.
First, in a full search method (first prior art: see FIG. 10) in which pixels read simultaneously are stored in separate memories, when a plurality of small-capacity memories are used, compared to a case where a single large-capacity memory is used. As a result, there is a problem that division loss occurs and the chip area increases.
[0035]
In the telescopic search method (second prior art: see FIG. 11), the search position of the next field is adaptively determined based on the search result of the previous field. For this reason, there is a problem in that the address of the search target pixel in the search area memory cannot be determined in advance, and pixels that are read simultaneously cannot be stored in different memories.
The present invention is to solve such a problem, and provides a pseudo multi-port memory device that can read a plurality of data from unrelated addresses using one or two large-capacity memories. The purpose is that.
[0036]
[Means for Solving the Problems]
  In order to achieve such an object, the pseudo multi-port memory device according to the present invention has an input / output bit width capable of reading and writing a plurality of data constituting a data group at a time.Two1-port memory,Data rearrangement means for selecting and rearranging arbitrary data from each data constituting each data group read from the one-port memory, and outputting as a new data group;thisData sorting meansA shift register group consisting of a plurality of shift registers each having a predetermined number of shift stages arranged in parallel to each other is provided.Data sorting meansThe corresponding data groups sequentially read from each of the shift registers are sequentially held in each shift register, and a plurality of data constituting each data group are sequentially shifted out from each shift register one by one, so that each shift register can obtain a desired data group. Data is output in parallel at the same time.
[0038]
DETAILED DESCRIPTION OF THE INVENTION
Next, the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram of a pseudo multi-port memory device according to a first embodiment of the present invention.
In this embodiment, one memory 32 having an input / output bit width that can read or write simultaneously four pixels (4 data) constituting one pixel group (data group) is used, and all pixels in the search region are used. Is stored in the memory 32.
[0039]
Here, in order to facilitate understanding of the concept of the search area, the memory 32 is represented in two dimensions, but in reality it is a one-dimensional memory, and four pixels (four data) are stored at one address.
For example, addresses of address 0, address 1, and address 2 are assigned to the left, middle, and right four pixels in the first line in the memory 32, respectively.
In addition, the addresses of 3 addresses, 4 addresses, and 5 addresses are assigned to each of the left, middle, and right 4 pixels in the second line, and continuous addresses are assigned from the left to the right on the same line. Are allocated in order from top to bottom.
[0040]
Note that the crosses in the memory 32 indicate invalid data.
Since the search area 2 in FIG. 3 described above has 11 pixels in the horizontal direction, the total number of pixels in one line is not divisible by 4.
In such a case, invalid data is added so that the four pixels to be read and written at a time are always only pixels on the same line.
[0041]
Four pixels are simultaneously read from the memory 32 in synchronization with CK (clock), and each CK is transferred to each shift register 37 to 40 of the shift register group arranged in parallel in the order of “39 → 40 → 37 → 38”. Set to
The four arrows 44a to 44d correspond to the respective pixels in order from the leftmost pixel of the pixel group read from the memory 32, and a path (path) in which the four pixels read from the memory 32 are set in the shift register. Represents.
[0042]
The shift registers 37 to 40 shift one pixel to the right every 1 CK.
The number of shift stages of the shift registers 39, 40, 37, and 38 is 7, 5, 5, and 3, respectively.
Thus, the reason why the difference in the number of shift stages of the shift register is to read out the four pixel groups that should be read out simultaneously for every CK over 4 CKs.
[0043]
Here, since the pixel group 34 and the pixel group 36 are three pixels and one pixel is invalid, the number of shift stages of the shift register 40 and the shift register 38 is five and three.
Note that the pixel group 34 is included in the left search area 14 shown in FIG.
In applications where all 4 pixels are valid, 6 and 4 respectively.
Hereinafter, the operation of each shift register will be described.
First, the pixel group 35 including the pixel 18 is read with the first CK and set in the shift register 39.
[0044]
Then, the subsequent CK sequentially shifts, and the pixel 18 is output to the PE array 45 by the fifth CK.
In the second CK, the pixel group 36 including the pixel 19 is read and set in the shift register 40, and the pixel 19 is output to the PE array 45 in the fifth CK.
[0045]
In the third CK, the pixel group 33 including the pixel 16 is read and set in the shift register 37, and the pixel 16 is output to the PE array 45 in the fifth CK.
In the fourth CK, the pixel group 34 including the pixels 17 is read and set in the shift register 38, and the pixels 17 are output to the PE array 45 in the fifth CK.
[0046]
Therefore, it can be seen that the pixels 16 to 19 are simultaneously output in parallel to the PE array 45 at the fifth CK.
Therefore, according to this embodiment, division loss does not occur as in the case where a plurality of small-capacity memories shown in FIG. 10 are used, and a plurality of pixels (data) are obtained using one memory. A multi-port memory device capable of simultaneously reading from unrelated addresses can be configured, and an increase in chip area can be suppressed.
[0047]
In the present embodiment, the number of pixels that are read and written at a time in the memory 32 is four pixels, and only the case of matching the number of pixels in the horizontal direction of the template is shown. However, the present invention is not limited to this.
In other words, the present embodiment is characterized in that a plurality of pixels are read at a time and are sequentially set in corresponding shift registers, and desired pixels are output in parallel while being shifted by each shift register. Therefore, it is not always necessary to match the number of pixels read from the memory at once with the number of pixels in the horizontal direction of the template.
[0048]
In the above description, the case where four pixels are simultaneously read from the memory 32 and set in the shift registers 37 to 40 every 1 CK is shown.
However, for example, the number of shift stages of the shift register is doubled as described above, and 8 pixels are simultaneously read out from the memory 32 every 2 CK. It may be set every time, so that four pixels can be simultaneously sent to the PE array 45.
Further, the number of memories is theoretically only one, and even if there are a plurality of memories, continuous addresses only need to be allocated.
[0049]
Next, a second embodiment of the present invention will be described with reference to FIG.
FIG. 2 is a block diagram showing a pseudo multi-port memory device according to the second embodiment of the present invention.
In the present embodiment, a case will be described in which two memories 41 and 42 that can simultaneously read and write four pixels are operated as a unit and read at eight pixels.
[0050]
In FIG. 2, pixels of numbers 00 to 03, numbers 08 to 11, numbers 16 to 19, and numbers 24 to 27 are stored at addresses 0, 1, 2, and 3, respectively.
In addition, pixels of numbers 04 to 07, numbers 12 to 15, numbers 20 to 23, and numbers 28 to 31 are stored in addresses 0, 1, 2, and 3 of the memory 42, respectively.
[0051]
Here, when setting the pixels 22 to 25 across the memories 41 and 42 to any one of the shift registers 37 to 40, the pixels 24 to 27 are first read from the address 3 of the memory 41, Pixels 20 to 23 are read from address 2 of the memory 42 at a time.
Next, these 8 pixels are rearranged by the pixel rearrangement circuit 43, and the pixels of numbers 22 to 25 are selected.
[0052]
That is, among the 8 pixels to be read, when a lower-numbered pixel is stored in the memory 41, the data group is read from the same address in the memories 41 and 42.
On the other hand, when a pixel with a lower number among the 8 pixels to be read is stored in the memory 42, the address of the memory 41 is set to the address +1 of the memory 42.
[0053]
As a result, it is possible to read out four pixels having consecutive numbers starting from a pixel having an arbitrary number.
Then, the desired four pixels are output in parallel to the PE array 45 by a shift register configuration similar to that of the first embodiment described above.
[0054]
Therefore, according to the present embodiment, division loss does not occur as in the case where a plurality of small-capacity memories shown in FIG. 10 are used, and a plurality of pixels (data) are obtained using two memories. A multi-port memory device capable of simultaneously reading from unrelated addresses can be configured, and an increase in chip area of the memory device itself can be suppressed.
Also, the top of the four pixels that are read simultaneously can be set to an arbitrary number, and can be applied to the telescopic search method shown in FIG.
[0055]
In the present embodiment, the case where two memories are used has been described, but the present invention is not limited to this.
That is, in this embodiment, a pixel larger than the number of pixels set in the shift register is read out using a plurality of memories, and a pixel rearrangement circuit cuts out a pixel with an arbitrary number as a head and sets it in the shift register. The point of output is essential.
[0056]
Therefore, it is not always necessary to limit the number of memories to two.
Further, it is not necessary to match the number of pixels read from each memory at the same time with the number of pixels in the horizontal direction of the template.
[0057]
【The invention's effect】
  As described above, the present invention has an input / output bit width capable of reading / writing a plurality of data constituting a data group at a time.Two1-port memory,Data rearrangement means for selecting and rearranging arbitrary data from each data constituting each data group read from the one-port memory, and outputting as a new data group;thisData sorting meansA shift register group consisting of a plurality of shift registers each having a predetermined number of shift stages arranged in parallel to each other is provided.Data sorting meansThe corresponding data groups sequentially read from each of the shift registers are sequentially held in each shift register, and a plurality of data constituting each data group are sequentially shifted out from each shift register one by one, so that each shift register can obtain a desired data group. Data is output in parallel at the same time.
  Therefore, by applying the pseudo multi-port memory device of the present invention to the full search method of motion vector search, division loss does not occur as in the case of using a plurality of conventional small-capacity memories.,A plurality of data (pixels) can be read simultaneously from unrelated addresses, and an increase in the chip area of the memory device itself can be suppressed.At the same time, pixels that are read out simultaneously can be stored in different memories, and can be applied to a telescopic search method..
[Brief description of the drawings]
FIG. 1 is a block diagram of a pseudo multi-port memory device according to a first embodiment of the present invention.
FIG. 2 is a block diagram of a pseudo multi-port memory device according to a second embodiment of the present invention.
FIG. 3 is an explanatory diagram showing a conventional full search method.
FIG. 4 is an explanatory diagram showing the operation of a PE array.
FIG. 5 is an explanatory diagram showing an invalid cycle generation mechanism.
FIG. 6 is an explanatory diagram showing a search area dividing method and a parallel operation technique in the method.
FIG. 7 is an explanatory diagram showing a motion vector correspondence / search area pixel broadcasting system;
FIG. 8 is an explanatory diagram illustrating a method for avoiding generation of invalid cycles in a two-dimensional image.
FIG. 9 is an explanatory diagram showing a MMSB calculation process for a two-dimensional image;
FIG. 10 is an explanatory diagram showing a full search method (first prior art) using a plurality of memories.
FIG. 11 is an explanatory diagram showing a telescopic search method (second prior art).
[Explanation of symbols]
16-19 ... Pixel, 32 ... Memory, 33-36 ... Pixel group, 37-40 ... Shift register, 41, 42 ... Memory, 43 ... Pixel rearrangement circuit, 44a-44d ... Path (arrow), 45 ... PE array .

Claims (1)

複数のデータからなるデータ群を連続アドレスに一度に書き込み、そのデータ群を関連のないアドレスから同時に読み出せる多ポートメモリ装置において、
データ群を構成する複数のデータを一度に読み書きできるだけの入出力ビット幅を有する2つの1ポートメモリと、
これら1ポートメモリから読み出された各データ群を構成するそれぞれのデータから、任意のデータを選択して並び替え新たなデータ群として出力するデータ並び替え手段と、
このデータ並び替え手段に対して並列配置されたそれぞれ所定シフト段数を有する複数のシフトレジスタからなり、データ並び替え手段から順次出力された対応するデータ群を各シフトレジスタで順に保持するとともに、各データ群を構成する複数のデータを1データずつ各シフトレジスタから順次シフト出力することにより、各シフトレジスタから所望のデータを並列して同時に出力するシフトレジスタ群とを備えることを特徴とする擬似多ポートメモリ装置。
In a multi-port memory device capable of writing a data group consisting of a plurality of data at a time to a continuous address and reading the data group simultaneously from unrelated addresses,
Two one- port memories having an input / output bit width that can read and write a plurality of data constituting a data group at one time ;
Data rearrangement means for selecting and rearranging arbitrary data from each data constituting each data group read from the one-port memory, and outputting as a new data group;
The respectively arranged parallel to the data rearranging unit comprises a plurality of shift registers having a predetermined number of shift stages, holds the data group corresponding sequentially outputted from the data rearranging unit in order in each shift register, each of the data A pseudo multi-port comprising: a shift register group that simultaneously outputs desired data from each shift register in parallel by sequentially shifting out a plurality of data constituting the group from each shift register one by one Memory device.
JP4060099A 1999-02-18 1999-02-18 Pseudo multi-port memory device Expired - Lifetime JP3652909B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4060099A JP3652909B2 (en) 1999-02-18 1999-02-18 Pseudo multi-port memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4060099A JP3652909B2 (en) 1999-02-18 1999-02-18 Pseudo multi-port memory device

Publications (2)

Publication Number Publication Date
JP2000242554A JP2000242554A (en) 2000-09-08
JP3652909B2 true JP3652909B2 (en) 2005-05-25

Family

ID=12585015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4060099A Expired - Lifetime JP3652909B2 (en) 1999-02-18 1999-02-18 Pseudo multi-port memory device

Country Status (1)

Country Link
JP (1) JP3652909B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4701620B2 (en) * 2004-03-15 2011-06-15 ソニー株式会社 Data storage device, data storage control device, data storage control method, and data storage control program
WO2013137459A1 (en) * 2012-03-16 2013-09-19 国立大学法人奈良先端科学技術大学院大学 Data providing device and data processing device

Also Published As

Publication number Publication date
JP2000242554A (en) 2000-09-08

Similar Documents

Publication Publication Date Title
US8218635B2 (en) Systolic-array based systems and methods for performing block matching in motion compensation
KR100303097B1 (en) Implementation architecture that performs hierarchical motion analysis of video images in real time
US7835441B2 (en) Supporting motion vectors outside picture boundaries in motion estimation process
JPH0865685A (en) Motion vector detecting circuit
US20050238102A1 (en) Hierarchical motion estimation apparatus and method
KR101091054B1 (en) Device for motion search in dynamic image encoding
JP2002304624A (en) Filter processing device and imaging device
CN101156451A (en) Video Processing Using Region-Based Multi-Pass Motion Estimation and Temporal Motion Vector Candidate Update
JP3652909B2 (en) Pseudo multi-port memory device
JPH0846865A (en) Method and device for rendering video conversion programmable
US8135224B2 (en) Generating image data
JP5865696B2 (en) Image processing device
JPH08315151A (en) Method and circuit arrangement for undersampling in case of movement evaluation
JP2010033507A (en) Memory controller and image processing apparatus
US8200032B2 (en) Image processing method and related apparatus for performing image processing operation according to image blocks in horizontal direction
WO2007028323A1 (en) Device and method for loading motion compensation data
JP4101645B2 (en) Motion vector detection device, motion vector detection method, program, and recording medium
JP4165070B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
JP2008060836A (en) Motion vector search method and device
JP4122774B2 (en) Semiconductor memory device, motion vector detection device, and motion compensated prediction encoding device
JP3988522B2 (en) Data processing apparatus and semiconductor device
JP3374014B2 (en) Image correlator
Tanskanen et al. Parallel, memory access schemes for H. 263 encoder
JP3624457B2 (en) Image signal encoding apparatus and image signal decoding apparatus
JP2004200984A (en) Motion vector detection device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050224

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

Free format text: PAYMENT UNTIL: 20080304

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090304

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090304

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100304

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110304

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110304

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120304

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130304

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term