JP3652909B2 - Pseudo multi-port memory device - Google Patents
Pseudo multi-port memory device Download PDFInfo
- 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
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」では、
S0 =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
[0004]
Further, Δ3 (triangle mark) is a pixel constituting the
In FIG. 3, the
[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
[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
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
[0008]
In FIG. 3, when the motion vector of the pixel block at the position corresponding to the
This is because, as shown in FIG. 3, the
[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
[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
Therefore, when the
In order to avoid this, it is necessary to read the
[0015]
Further, the number of horizontal pixels in the
(Number of pixels next to template) × 3-1
= 4 × 3-1 = 11
It is.
[0016]
In this case, as shown in FIG. 6, the
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
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
[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
[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,
The
[0031]
Therefore, the movement of the
In the telescopic search method, in order to obtain a motion vector from the
In this case, the motion vector at the center of the
[0032]
Next, the
When the motion vector from the
Finally, when the motion vector into the
[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
[0039]
Here, in order to facilitate understanding of the concept of the search area, the
For example, addresses of
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
Since the
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
The four
[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
Note that the
In applications where all 4 pixels are valid, 6 and 4 respectively.
Hereinafter, the operation of each shift register will be described.
First, the
[0044]
Then, the subsequent CK sequentially shifts, and the
In the second CK, the
[0045]
In the third CK, the
In the fourth CK, the
[0046]
Therefore, it can be seen that the
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
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
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
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
[0050]
In FIG. 2, pixels of
In addition, pixels of
[0051]
Here, when setting the
Next, these 8 pixels are rearranged by the pixel rearrangement circuit 43, and the pixels of
[0052]
That is, among the 8 pixels to be read, when a lower-numbered pixel is stored in the
On the other hand, when a pixel with a lower number among the 8 pixels to be read is stored in the
[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
[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.
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)
| 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 |
-
1999
- 1999-02-18 JP JP4060099A patent/JP3652909B2/en not_active Expired - Lifetime
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 |