(57)【特許請求の範囲】
【請求項１】
複数のデータからなるデータ群を連続アドレスに一度に書き込み、そのデータ群を関連のないアドレスから同時に読み出せる多ポートメモリ装置において、
データ群を構成する複数のデータを一度に読み書きできるだけの入出力ビット幅を有する２つの１ポートメモリと、
これら１ポートメモリから読み出された各データ群を構成するそれぞれのデータから、任意のデータを選択して並び替え新たなデータ群として出力するデータ並び替え手段と、
このデータ並び替え手段に対して並列配置されたそれぞれ所定シフト段数を有する複数のシフトレジスタからなり、データ並び替え手段から順次出力された対応するデータ群を各シフトレジスタで順に保持するとともに、各データ群を構成する複数のデータを１データずつ各シフトレジスタから順次シフト出力することにより、各シフトレジスタから所望のデータを並列して同時に出力するシフトレジスタ群とを備えることを特徴とする擬似多ポートメモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多ポートメモリ装置に関し、特に動画像のフレーム間画像符号化処理の動きベクトル探索などで用いられ、複数のデータを連続アドレスに一度に書き込むとともに、複数のデータを関連のないアドレスから同時に読み出せる多ポートメモリ装置に関するものである。
【０００２】
【従来の技術】
動画像のフレーム間画像符号化処理などで用いられるベクトル探索では、動きベクトルの検出方法として、通常、ブロックマッチング方法が用いられる。
このブロックマッチング方法では、画面を小さな矩形領域（ブロック）に分割して、ブロックごとに動きを検出するものである。
ブロックのサイズとしては、一般的に横８画素×縦８画素や横１６画素×縦１６画素などがある。
【０００３】
次に、従来の動きベクトル探索方法のうち、もっとも単純かつ高画質の全探索方法について説明する。
図３は従来の全探索方法を示す説明図であり、動きベクトルを求める対象であるテンプレート１と、動きベクトルの探索範囲である探索領域２が模式的に示されている。
【０００４】
テンプレート１は、ある画像中の画素ブロックを示し、探索領域２はテンプレート１より大きな他の画像中の画素ブロックである。
また、△３（三角印）はテンプレート１を構成する画素、○４（丸印）は探索領域２を構成する画素である。
図３では、探索領域２の上にテンプレート１が重なって示されており、重なり部分の探索領域中の画素○４は表示されていない。
【０００５】
以下では、水平方向の画素数の単位を画素と呼び、垂直方向の画素数の単位をラインと呼ぶ。
これによれば、図３に示すテンプレートは４画素×４ラインと表現され、探索領域２は１１画素×１１ラインと表現される。
【０００６】
この全探索方法では、探索領域２からテンプレート１と同じ大きさの４画素×４ラインの領域（以下、この領域をブロックという）を順次切り出し、この切り出したブロックの各画素の画素値と、テンプレート１の対応する画素の画素値との間で、順次、差分絶対値や差分二乗値などを求める。
そして、求めた値の各画素値についての総和を、切り出したブロックごとに算出する。
【０００７】
すなわち、探索領域２において、左上から右下に向かって、ブロックを１画素または１ラインずつずらしていくと、探索領域２は１１画素×１１ラインであるので、合計８×８＝６４個のブロックが切り出され、これがテンプレート１との間で演算（差分絶対値和や差分二乗値和などを求める演算）を行う対象となる。そして、演算結果が最小となるブロックから、このテンプレート１が移動してきたものとして動きベクトルを求める。
【０００８】
図３において、テンプレート１に対応する位置の画素ブロックの動きベクトルを（０，０）とすると、動きベクトルが取りうる値の範囲は、水平方向および垂直方向とも「−４〜＋３」である。
これは、図３に示されているように、テンプレート１が水平方向および垂直方向において、いずれか一方側に４画素（または４ライン）分だけ、またその他方側に３画素（または３ライン）分だけ、それぞれ移動しうることによる。
【０００９】
そして、例えばブロック５の演算値（差分絶対値和や差分二乗値和など）が最小であった場合、その動きベクトルは（−２，−２）となる。
以上が、動きベクトルを求める原理説明である。
なお、動きベクトルを求めるための動きベクトル探索方法として、以下では差分絶対値和を用いる場合について説明するが、他の演算式として差分二乗値和などの評価式を用いてもよい。
【００１０】
この全探索方法は、差分絶対値和を計算する演算器（以下、ＰＥという）の並列化が容易である。
通常、探索領域中の画素はメモリに記憶されているが、隣接するブロック間のがその重なりを利用することにより、並列化したＰＥ（以下、ＰＥアレイという）とメモリとの間の画素転送量を削減できる。
【００１１】
図４はＰＥアレイの動作を示す説明図である。
ここでは、探索領域６の横の画素数を、
（テンプレートの横の画素数）×２−１
＝４×２−１＝７
に制限し、ブロック７〜１０に対応して４個のＰＥが設けられる。
これら４つのブロックは、互いに隣接ブロックと４画素×３ライン分ずつ重なっている。
【００１２】
このため、メモリから１画素のみ読み出してＰＥアレイに送り、ブロック７〜１０に対応したＰＥをこの順番に１サイクルずつ遅らせて起動することにより、並列に演算できる。
また、ブロック７とブロック１１とは、４画素×３ライン分だけ重なっているため、ブロック１１に対応したＰＥを設けて、探索領域６の２ライン目の画素をＰＥアレイに送ることにより、ブロック１１に対応したＰＥでも並列演算できる。
【００１３】
すなわち、探索領域６中の画素をその領域の左上角の画素から右下角の画素まで連続したアドレスに記憶し、そのメモリから１画素ずつその順番で読み出してＰＥアレイに送ることにより、ＰＥアレイでの並列演算を実現できる。
この方法により、テンプレートの画素数までのＰＥの並列化が可能となる。
しかし、メモリから１画素読み出すだけでは、探索領域６の右端において、ＰＥに無効サイクルが生じる。
【００１４】
図５は無効サイクルの発生メカニズムを示す説明図である。
同図において、探索領域６の各画素のうち、画素１２はブロック８〜１０の計算に使われるが、ブロック７とブロック１１の計算には使われない。
したがって、画素１２をメモリから読み出してＰＥアレイに送るとき、ブロック７とブロック１１の計算に対応したＰＥでは計算できず、無効サイクルが生じる。
これを回避するためには、画素１２と同時に画素１３をメモリから読み出し、ＰＥアレイに送る必要がある。
【００１５】
また、図３に示した探索領域２の横の画素数は、図４，５で示した探索領域６より多く、その画素数は
（テンプレートの横の画素数）×３−１
＝４×３−１＝１１
である。
【００１６】
この場合、図６に示すように、探索領域２を左の探索領域１４と右の探索領域１５に分けて２回探索することにより、探索領域２から切り出されるすべてのブロックの評価を行うことができる。
図６は並列演算技術を示す説明図である。
この並列演算技術については、例えば「南俊宏，近藤利夫、村主一仁、笠井良太、”一次元シストリックアレー型全探索動きベクトル検出器の提案”、信学論（Ｄ−１）,vol.J78-D-1,no.12,pp.913-925,Dec.1995」などの文献に述べられている。
【００１７】
同文献では、差分絶対値和を計算する演算器（ＰＥ）の構成方法を、ＰＥに動きベクトルを対応させるか、あるいはテンプレートに対応させるかという基準、さらに探索領域中の画素をシフトするか、あるいは放送するかという基準の２つの基準に基づき、４種類の基本構成が示されている。
以下、図７を参照して、前述した図４で用いられるＰＥの構成例として、「動きベクトル対応・探索領域画素放送方式（ＭＭＳＢ…Motion-vector Mapping method with Search-area-pixel Broadcasting）の動作原理について説明する。
【００１８】
図７は動きベクトル対応・探索領域画素放送方式を示す説明図であり、（ａ）はＰＥのブロック図、（ｂ）は演算過程を示している。
なお、実際には画像は２次元であるが、単純化のために図７では１次元と仮定した場合が示されている。
ＭＭＳＢでは、探索領域中の画素Ｘを１画素ずつ全ＰＥに放送するとともに、テンプレート中の画素ａをＰＥ間でクロックＣＫごとにシフトさせる。
【００１９】
各ＰＥでは、画素ａと画素Ｘとで差分絶対値ａ＠ＸがＣＫごとにそれぞれ算出され、ラッチと加算器により各ＰＥ内で累算される。
そして、ＣＫに応じてセレクタで各ＰＥからの出力を選択することにより、図７（ｂ）に示すように、差分絶対値和Ｓが順次算出され、例えばクロック「３ＣＫ」では、
Ｓ0 ＝ａ0 ＠Ｘ0 ＋ａ1 ＠Ｘ1 ＋ａ2 ＠Ｘ2 ＋ａ3 ＠Ｘ3 
が算出される。
【００２０】
また、図８，９を参照して、前述した図５で用いられるＰＥの構成例として、上記のＭＭＳＢの改良方式の探索領域分割方式の動作原理について説明する。
図８は探索領域分割方式を示す説明図であり、（ａ）は画素配置例、（ｂ）はＰＥのブロック図である。
また図９は２次元画像に対するＭＭＳＢの計算課程を示す説明図である。
【００２１】
前述した図５において、画素１２を読み出したとき、画素１３を同時に読み出さない場合の差分絶対値計算過程は、図９に示すとおりである。
２次元の画像対応に拡張されたＭＭＳＢでは、差分絶対値和Ｓ0,0 、Ｓ0,1 、Ｓ0,2 を計算するＰＥにおいて、Ｓ0,3 の１行目の計算が終了するまで２行目の計算を開始できず、無効サイクル（図中破線領域）が生じることが分かる。
【００２２】
この無効サイクルは、図８（ａ）に示すように、２行目の画素を補充することによりその発生を回避できる。
この場合、画素Ｘ0,4 は、差分絶対値和Ｓ0,1 ，Ｓ0,2 ，Ｓ0,3 の計算に使われ、Ｘ1,0 はＳ0,0 の計算に使われる。
したがって、図８（ｂ）に示すように、これら２画素Ｘ0,4 ，Ｘ1,0 を同時に放送する。
【００２３】
そして、Ｓ0,0 を計算中の左端のＰＥではＸ1,0 を選択するとともに、それ以外のＰＥではＸ0,4 をセレクタで選択する。
これにより、４つのＰＥすべてにおいて計算を続行できる。
すなわち、一度に探索する横方向の動きベクトル数をテンプレートの横方向の画素数と一致させ、探索領域の右端から左端に移るときに発生する無効サイクルは、次の行の画素を補充することにより削除すればよいことになる。
【００２４】
また、上記で示した無効サイクルと同様の原因により、探索領域の下端でもＰＥアレイに無効サイクルが生じる。
これを防ぐためにはメモリから４画素同時に読み出してＰＥアレイに送ればよい。
例えば、図６に示したように、探索領域１４中の画素１６と画素１７、および探索領域１５中の画素１８と画素１９とをＰＥアレイに送ることにより、探索領域の下端において無効サイクルの発生を回避できる。
【００２５】
この技術については、例えば「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」などの文献に述べられている。
【００２６】
このような方法により無効サイクルの発生を回避するには、４個の画素（データ）を関連のないアドレスから同時に読み出す必要がある。
そのため、４ポートメモリを用いることも考えられるが、４ポートメモリはサイズが大きくかつ低速である。
【００２７】
そこで、図１０に示すように、１ポートメモリを複数個用いることが考えられる。
図１０は複数のメモリを用いた全探索方法（第１の従来技術）を示す説明図である。
このように、同時に読み出される画素を別個の４つのメモリ２０〜２３に格納することにより、４画素同時読み出しが可能となる。
【００２８】
さて、以上の説明から分かるように、全探索法を採用すると、メモリとＰＥアレイの構造は単純になるが、ブロックサイズおよび探索領域サイズが大きくなるにつれて膨大な演算量が必要になる。
そこで、演算量を削減するために、テレスコピック探索法が提案された。
【００２９】
一般に、動画は時間的に連続した複数の画像から構成されており、特に画像符号化処理においては時間的に一枚前の画像だけではなく複数枚前の画像の動きベクトルを求める場合がある。
このような場合は、隣接した画像中の狭い領域で動きベクトルを求め、それを初期値として次の隣接画像中の狭い領域で動きベクトルを求めることを繰り返すことにより、時間的に離れた画像間での動きベクトルが求められる。
【００３０】
このテレスコピック探索法について、図１１を参照して説明する。
図１１はテレスコピック探索法（第２の従来技術）を示す説明図である。
同図において、画像２５〜２８は時間的に連続した４枚の画像であり、画像２８が現在の画像であり、画像２５，画像２６，画像２７はそれぞれ３画面前，２画面前，１画面前の画像である。
矩形ブロック２４は、画像２５から画像２６へ動きベクトルｍｖ１で移動しており、同様に画像２６から画像２７，画像２７から画像２８へそれぞれ動きベクトルｍｖ２，ｍｖ３で移動している。
【００３１】
したがって、画像２８から画像２５への矩形ブロック２４の動きは「ｍｖ１＋ｍｖ２＋ｍｖ３」となる。
テレスコピック探索法では、画像２８から画像２５への動きベクトルを求めるために、画像２８中の矩形ブロック２４をテンプレートとして、最初に画像２７中の領域３１内を探索して動きベクトルｍｖ３を検出する。
この場合、領域３１の中心の動きベクトルは（０，０）である。
【００３２】
次に、画像２６中の領域３０内を探索して動きベクトルｍｖ２を検出する。
矩形ブロック２４に関する画像２８から画像２７への動きベクトルを考量すると、領域３０の中心の動きベクトルはｍｖ３となる。
最後に、画像２５中への動きベクトルも考量すると、領域２９の中心の動きベクトルは「ｍｖ３＋ｍｖ２」となる。
【００３３】
また、演算量を削減するための別の技術として、サンプリングによって得られた縮小画像上で動きを評価し、得られた動きベクトルを初期値として、狭い範囲のみでの探索を行う技術も提案されている。
このサンプリング法と上述したテレスコピックタンク法を組み合わせた方法が、例えば、「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」などの文献に述べられている。
【００３４】
【発明が解決しようとする課題】
しかしながら、このような一般的な複数個の１ポートメモリを前述した各動きベクトル探索における探索対象画素格納用のメモリ装置として用いようとした場合、それぞれ次のような問題点があった。
まず、同時に読み出される画素を別々のメモリに格納する全探索方法（第１の従来技術：図１０参照）で、小容量のメモリを複数用いた場合、大容量のメモリを１個用いる場合と比べて分割損が生じ、チップ面積が増大するという問題点があった。
【００３５】
また、テレスコピック探索法（第２の従来技術：図１１参照）では、前のフィールドの探索結果に基づき、次のフィールドの探索位置を適応的に決めている。このため、探索領域用メモリにおける探索対象画素のアドレスを予め決めておくことができず、同時に読み出される画素を別々のメモリに格納することができないという問題点があった。
本発明はこのような課題を解決するためのものであり、大容量のメモリを１個または２個用いて、複数のデータを関連のないアドレスから読み出すことができる擬似多ポートメモリ装置を提供することを目的としている。
【００３６】
【課題を解決するための手段】
このような目的を達成するために、本発明による擬似多ポートメモリ装置は、データ群を構成する複数のデータを一度に読み書きできるだけの入出力ビット幅を有する２つの１ポートメモリと、これら１ポートメモリから読み出された各データ群を構成するそれぞれのデータから、任意のデータを選択して並び替え新たなデータ群として出力するデータ並び替え手段と、このデータ並び替え手段に対して並列配置されたそれぞれ所定シフト段数を有する複数のシフトレジスタからなるシフトレジスタ群を設け、データ並び替え手段から順次読み出された対応するデータ群を各シフトレジスタで順に保持するとともに、各データ群を構成する複数のデータを１データずつ各シフトレジスタから順次シフト出力することにより、各シフトレジスタから所望のデータを並列して同時に出力するようにしたものである。
【００３８】
【発明の実施の形態】
次に、本発明について図面を参照して説明する。
図１は本発明の第１の実施の形態である擬似多ポートメモリ装置のブロック図である。
本実施の形態では、１つの画素群（データ群）を構成する４画素（４データ）を同時に読み出しまたは書き込みできるだけの入出力ビット幅を持ったメモリ３２を１個用い、探索領域中の全画素がこのメモリ３２に記憶される。
【００３９】
ここでは、探索領域の概念を理解しやすくするためにメモリ３２を２次元で表しているが実際には１次元のメモリであり、４画素（４データ）が１アドレスに記憶されている。
例えば、メモリ３２内の１ライン目における左，真ん中，右の各４画素には、それぞれ０番地，１番地，２番地というアドレスが割り振られている。
また、２ライン目における左，真ん中，右の各４画素には、それぞれ３番地，４番地，５番地というアドレスが割り振られており、同一ラインでは左から右へ連続アドレスが割り振られ、全体としては上から下へ順に割り振られている。
【００４０】
なお、メモリ３２中の×印は無効データを示している。
前述した図３の探索領域２は水平方向が１１画素であるため、１ラインの総画素数が４で割り切れない。
このような場合には、一度に読み書きする４画素が必ず同一ラインの画素のみとなるように無効データを追加する。
【００４１】
メモリ３２からはＣＫ（クロック）に同期して４画素同時に読み出され、並列に配置されたシフトレジスタ群の各シフトレジスタ３７〜４０に、「３９→４０→３７→３８」の順番で１ＣＫごとにセットされる。
４本の矢印４４ａ〜４４ｄは、メモリ３２から読み出される画素群の左端画素から順に各画素にそれぞれ対応しており、メモリ３２から読み出された４画素がシフトレジスタにセットされるパス（経路）を表している。
【００４２】
シフトレジスタ３７〜４０は、１ＣＫごとに１画素ずつ右にシフトする。
シフトレジスタ３９，４０，３７，３８のシフト段数は、それぞれ７個、５個、５個、３個である。
このように、シフトレジスタのシフト段数に差を設けるのは、本来同時に読み出すべき４つの画素群を４ＣＫにわたって各ＣＫごとに読み出すためである。
【００４３】
ここで、画素群３４と画素群３６は３画素であり、１画素は無効であるため、シフトレジスタ４０とシフトレジスタ３８のシフト段数は５と３となっている。
なお、画素群３４は、図６に示した左の探索領域１４に含まれ、領域１４中の右側部分に当たるため、３画素となる。
４画素すべてが有効であるような応用では、それぞれ６と４となる。
以下、各シフトレジスタの動作について説明する。
まず、最初のＣＫで画素１８を含む画素群３５が読み出されて、シフトレジスタ３９にセットされる。
【００４４】
そして、後続のＣＫで順にシフトされ、５番目のＣＫで画素１８がＰＥアレイ４５に出力される。
また２番目のＣＫでは、画素１９を含む画素群３６が読み出されて、シフトレジスタ４０にセットされ、５番目のＣＫで画素１９がＰＥアレイ４５に出力される。
【００４５】
また３番目のＣＫでは、画素１６を含む画素群３３が読み出されて、シフトレジスタ３７にセットされ、５番目のＣＫで画素１６がＰＥアレイ４５に出力される。
また４番目のＣＫでは、画素１７を含む画素群３４が読み出されて、シフトレジスタ３８にセットされ、５番目のＣＫで画素１７がＰＥアレイ４５に出力される。
【００４６】
したがって、５番目のＣＫで画素１６〜１９がＰＥアレイ４５に同時に並列して出力されていることが分かる。
このことから、本実施の形態によれば、図１０に示した小容量のメモリを複数用いる場合のように分割損が発生せず、１個のメモリを用いて、複数の画素（データ）を関連のないアドレスから同時に読み出すことが可能な多ポートメモリ装置を構成でき、チップ面積の増大を抑制できる。
【００４７】
なお、本実施の形態では、メモリ３２で一度に読み書きする画素数を４画素とし、テンプレートの横方向の画素数と一致する場合のみ示したが、これに限定されるものではない。
すなわち、本実施の形態は、複数画素数を一度に読み出し、対応するシフトレジスタに順次セットするとともに、各シフトレジスタでシフトしながら所望の画素を並列的に出力する点が本実施の形態の本質であり、必ずしもメモリから一度に読み出す画素数をテンプレートの横方向の画素数と一致させる必要はない。
【００４８】
上記説明では、メモリ３２からは４画素同時に読み出され、シフトレジスタ３７〜４０に１ＣＫごとにセットされる場合について示されている。
しかし、例えば、シフトレジスタのシフト段数をそれぞれ上記の２倍とし、メモリ３２からは２ＣＫごとに８画素同時に読み出され、シフトレジスタ３７〜４０に「３９→４０→３７→３８」の順番で２ＣＫごとにセットされるようにしてもよく、これによりＰＥアレイ４５へ４画素同時に送ることができる。
また、メモリは理論的に１個であればよく、複数のメモリであっても連続アドレスが割り振られていればよい。
【００４９】
次に、図２を参照して、本発明の第２の実施の形態について説明する。
図２は本発明の第２の実施の形態による擬似多ポートメモリ装置を示すブロック図である。
本実施の形態では、４画素同時に読み書きできる２個のメモリ４１，４２を一体として動作させ、８画素時に読み出すようにした場合について説明する。
【００５０】
図２において、メモリ４１の０番地，１番地，２番地，３番地にはそれぞれ番号００〜０３，番号０８〜１１，番号１６〜１９，番号２４〜２７の画素が記憶されている。
また、メモリ４２の０番地，１番地，２番地，３番地にはそれぞれ番号０４〜０７，番号１２〜１５，番号２０〜２３，番号２８〜３１の画素が記憶されている。
【００５１】
ここで、メモリ４１，４２にまたがる番号２２〜２５の画素をシフトレジスタ３７〜４０のいずれか１個にセットする場合は、まずメモリ４１の３番地から番号２４〜２７の画素を一度に読み出し、メモリ４２の２番地から番号２０〜２３の画素を一度に読み出す。
次に、これら８画素を画素並べ替え回路４３で並べ替えて、番号２２〜２５の画素を選択する。
【００５２】
すなわち、読み出すべき８画素中、若い番号の画素がメモリ４１に記憶されている場合は、データ群がメモリ４１，４２の同一アドレスから読み出される。
一方、読み出すべき８画素中、若い番号の画素がメモリ４２に記憶されている場合、メモリ４１のアドレスは、メモリ４２のアドレス＋１とする。
【００５３】
これにより、任意の番号の画素を先頭として連続した番号の４画素を読み出すことができる。
そして、前述した第１の実施の形態と同様のシフトレジスタ構成により、所望の４画素が並列してＰＥアレイ４５に出力される。
【００５４】
このことから、本実施の形態によれば、図１０に示した小容量のメモリを複数用いる場合のように分割損が発生せず、２個のメモリを用いて、複数の画素（データ）を関連のないアドレスから同時に読み出すことが可能な多ポートメモリ装置を構成でき、メモリ装置自体のチップ面積の増大を抑制できる。
また、同時に読み出される４画素の先頭を任意の番号とすることができ、図１１に示したテレスコピック探索法にも適用できる。
【００５５】
なお、本実施の形態では、２個のメモリを用いた場合について説明したが、これに限定されるものではない。
すなわち、本実施の形態は、複数個のメモリを用いてシフトレジスタにセットする画素数より多い画素を読み出し、画素並べ替え回路により任意の番号の画素を先頭として切り出してシフトレジスタにセットし、シフトしながら出力する点が本質である。
【００５６】
したがって、必ずしもメモリの数を２個に限る必要はない。
また、個々のメモリから一度に読み出す画素数をテンプレートの横方向の画素数と一致させる必要もない。
【００５７】
【発明の効果】
以上説明したように、本発明は、データ群を構成する複数のデータを一度に読み書きできるだけの入出力ビット幅を有する２つの１ポートメモリと、これら１ポートメモリから読み出された各データ群を構成するそれぞれのデータから、任意のデータを選択して並び替え新たなデータ群として出力するデータ並び替え手段と、このデータ並び替え手段に対して並列配置されたそれぞれ所定シフト段数を有する複数のシフトレジスタからなるシフトレジスタ群を設け、データ並び替え手段から順次読み出された対応するデータ群を各シフトレジスタで順に保持するとともに、各データ群を構成する複数のデータを１データずつ各シフトレジスタから順次シフト出力することにより、各シフトレジスタから所望のデータを並列して同時に出力するようにしたものである。
したがって、本発明の擬似多ポートメモリ装置を動きベクトル探索の全探索法に適用することにより、従来の小容量のメモリを複数用いる場合のように分割損が発生せず、複数のデータ（画素）を関連のないアドレスから同時に読み出すことができ、メモリ装置自体のチップ面積の増大を抑制できるとともに、同時に読み出される画素を別々のメモリに格納することができ、テレスコピック探索法にも適用できる。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態による擬似多ポートメモリ装置のブロック図である。
【図２】  本発明の第２の実施の形態による擬似多ポートメモリ装置のブロック図である。
【図３】  従来の全探索方法を示す説明図である。
【図４】  ＰＥアレイの動作を示す説明図である。
【図５】  無効サイクルの発生メカニズムを示す説明図である。
【図６】  探索領域分割方式およびその方式における並列演算技術を示す説明図である。
【図７】  動きベクトル対応・探索領域画素放送方式を示す説明図である。
【図８】  ２次元画像において無効サイクルの発生回避方法を示す説明図である。
【図９】  ２次元画像に対するＭＭＳＢの計算課程を示す説明図である。
【図１０】  複数のメモリを用いた全探索方法（第１の従来技術）を示す説明図である。
【図１１】  テレスコピック探索法（第２の従来技術）を示す説明図である。
【符号の説明】
１６〜１９…画素、３２…メモリ、３３〜３６…画素群、３７〜４０…シフトレジスタ、４１，４２…メモリ、４３…画素並べ替え回路、４４ａ〜４４ｄ…パス（矢印）、４５…ＰＥアレイ。
【図１】
0003652909.tif 000002
【図２】
0003652909.tif 000003
【図３】
0003652909.tif 000004
【図４】
0003652909.tif 000005
【図５】
0003652909.tif 000006
【図６】
0003652909.tif 000007
【図７】
0003652909.tif 000008
【図９】
0003652909.tif 000009
【図８】
0003652909.tif 000010
【図１０】
0003652909.tif 000011
【図１１】
0003652909.tif 000012