JP4655220B2 - DESIGN DEVICE AND METHOD, AND DATA STORAGE DEVICE - Google Patents

DESIGN DEVICE AND METHOD, AND DATA STORAGE DEVICE Download PDF

Info

Publication number
JP4655220B2
JP4655220B2 JP2005309334A JP2005309334A JP4655220B2 JP 4655220 B2 JP4655220 B2 JP 4655220B2 JP 2005309334 A JP2005309334 A JP 2005309334A JP 2005309334 A JP2005309334 A JP 2005309334A JP 4655220 B2 JP4655220 B2 JP 4655220B2
Authority
JP
Japan
Prior art keywords
data
pixel
memory
access
pixels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005309334A
Other languages
Japanese (ja)
Other versions
JP2007122122A (en
Inventor
直己 武田
哲二郎 近藤
健治 高橋
浩 佐藤
勉 市川
正樹 半田
弘樹 鉄川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005309334A priority Critical patent/JP4655220B2/en
Publication of JP2007122122A publication Critical patent/JP2007122122A/en
Application granted granted Critical
Publication of JP4655220B2 publication Critical patent/JP4655220B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、設計装置および方法、並びにデータ格納装置に関し、特に、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うことができるようにした設計装置および方法、並びにデータ格納装置に関する。   The present invention relates to a design apparatus and method, and a data storage apparatus, and in particular, a design apparatus and a design apparatus that can store all data in a memory composed of a plurality of memory banks and simultaneously read a desired plurality of data. The present invention relates to a method and a data storage device.

半導体メモリMYは、図1の例に示すように、ワード線WLとビット線BLを指定してメモリセルMCをアクセスする構造となっており、指定された1ワード線WLとビット線BLの交差する位置にあるメモリセルMCに格納されたデータが読み出される。   As shown in the example of FIG. 1, the semiconductor memory MY has a structure in which the word line WL and the bit line BL are designated to access the memory cell MC, and the designated one word line WL and the bit line BL intersect. Data stored in the memory cell MC at the position to be read is read out.

このような構造の半導体メモリMYでは、複数のワード線WLで同じビット線BLを共有している。したがって、図2の例のように、例えば、2つのワード線WL1,WL2を指定するとビット線BLには、これらワード線Wl1,WL2のデータが混じり合って出てくるため、異なるワード線のデータには同時アクセスできない。   In the semiconductor memory MY having such a structure, a plurality of word lines WL share the same bit line BL. Therefore, as shown in the example of FIG. 2, for example, when two word lines WL1 and WL2 are designated, the data of these word lines W11 and WL2 are mixedly output on the bit line BL. Cannot be accessed simultaneously.

一方、独立したメモリバンクからは同時にデータを読み出すことが可能であり、図3の例に示すように、半導体メモリMYをn個のメモリバンクBK0乃至BKn−1に分け、それぞれのメモリバンクBK0乃至BKn−1に異なるアドレスを指定することで複数のワード線WLのデータに同時アクセスすることができるが、メモリバンク内の異なるワード線WLのデータには同時アクセスできない。すなわち、同時に読み出すことができるのは、各メモリバンクから同一ワード線上に格納されたデータであって、同一メモリバンクにおける異なるワード線上に格納されたデータは同時読み出することができない。   On the other hand, data can be read simultaneously from independent memory banks. As shown in the example of FIG. 3, the semiconductor memory MY is divided into n memory banks BK0 to BKn-1, and each memory bank BK0 to By specifying different addresses for BKn−1, data on a plurality of word lines WL can be accessed simultaneously, but data on different word lines WL in the memory bank cannot be accessed simultaneously. That is, data that can be read simultaneously is data stored on the same word line from each memory bank, and data stored on different word lines in the same memory bank cannot be read simultaneously.

ここで、メモリバンクとは、複数のワード線と複数のビット線からなるメモリにおいて選択されるワード・アドレスが単一であるメモリ単位をいう。   Here, the memory bank refers to a memory unit having a single word address selected in a memory composed of a plurality of word lines and a plurality of bit lines.

また、従来より、入力データに含まれる特定のデータ配列を認識することにより、例えば画像データのパターン認識等の処理や、動き検出等の処理が行われている。例えば、数ライン画像データを蓄積でき画素単位で出力できるバッファメモリと、数ビット幅データを処理可のプロセッサエレメントの複数を含み複数プロセッサエレメントで同時並行してデータ処理ができるデータ処理器と、マッチング参照データと制御データを格納する制御情報メモリとを備え、データ処理器の各プロセッサエレメントが、バッファメモリが出力した画像データの中の、自己に宛てられた注目画素中心のマトリクスの画像データ群を、閾値を用いて2値化して該プロセッサエレメントが処理可能なシリアル配列のビット幅に区切った対象データに変換し、同形式で制御情報メモリにあった参照データと合致か判定することが行われている(例えば、特許文献1参照)。   Conventionally, for example, processing such as pattern recognition of image data and processing such as motion detection have been performed by recognizing a specific data array included in input data. For example, a buffer memory that can store several lines of image data and output in pixel units, a data processor that includes multiple processor elements that can process several bits of width data, and that can process data simultaneously in multiple processor elements, and matching A control information memory for storing reference data and control data, and each processor element of the data processor selects a group of image data in a matrix centered on a target pixel addressed to itself among the image data output from the buffer memory. Then, it is binarized using a threshold value, converted into target data divided into serial array bit widths that can be processed by the processor element, and it is determined whether it matches the reference data in the control information memory in the same format. (For example, refer to Patent Document 1).

また、動画像の処理の分野において、動き、すなわち、時間的に異なる画像中の物体の動き方向と大きさ(または速さ)が用いられており、例えば画像の高能率符号化における動き補償フレーム間符号化や、フレーム間時間領域フィルタによるテレビジョン雑音低減装置における動きによるパラメータ制御等に動きが用いられる。動きを求める動き検出方法としては、ブロックマッチング法が知られている。   Also, in the field of moving image processing, motion, that is, the motion direction and size (or speed) of an object in a temporally different image is used. For example, a motion compensation frame in high-efficiency encoding of an image Motion is used for inter-coding, parameter control by motion in a television noise reduction device using an inter-frame time domain filter, and the like. A block matching method is known as a motion detection method for obtaining motion.

本件出願人は、画像信号中の動きを検出する動き検出方法において、(a)1画面全体または1画面を複数に分割した比較的大きなブロック毎に、マッチング法によって積算値テーブルを生成し、上記積算値テーブルを用いて、上記1画面全体または1画面を複数に分割した比較的大きなブロック毎に、1または複数の候補ベクトルを抽出するステップと、(b)上記候補ベクトルのみを対象としてマッチングを行い、1画素または比較的小さいブロック毎に動きベクトルを検出するステップとからなる2ステップの動き検出方法を先に提案している。この2ステップの動き検出方法では、画像の動き検出を2ステップ方式の代表点マッチングにより行う代表点マッチング、ベクトル割り当ての2ステップの過程において、いずれも画像内における任意の複数の画素データを同時に読み出す必要がある(例えば、特許文献2参照)。   In the motion detection method for detecting motion in an image signal, the applicant of the present application generates (a) an integrated value table by a matching method for each relatively large block obtained by dividing the entire screen or a screen into a plurality of blocks. A step of extracting one or a plurality of candidate vectors for each relatively large block obtained by dividing the entire one screen or a plurality of one screen by using an integrated value table; and (b) matching only for the candidate vectors. A two-step motion detection method has been proposed which includes a step of detecting a motion vector for each pixel or each relatively small block. In this two-step motion detection method, any two or more pixel data in the image are simultaneously read out in the two-step process of representative point matching and vector assignment in which the motion detection of the image is performed by the two-step representative point matching. There is a need (see, for example, Patent Document 2).

特開2003−203236号公報JP 2003-203236 A 特開2001−61152号公報JP 2001-61152 A

ところで、図4の例に示すように、水平または垂直方向に伸びる画素列からなる所定の画像に対して、同時アクセスしたい画素(以下、アクセス候補の画素とも称する)が4個の画素である場合、所望の複数画素を別メモリバンクに格納するための必要最低限のメモリバンク数は4となる。図4の例において、丸は、1画素を示しており、黒丸は、アクセス候補の画素を示している。   By the way, as shown in the example of FIG. 4, when there are four pixels to be simultaneously accessed (hereinafter also referred to as access candidate pixels) with respect to a predetermined image composed of pixel rows extending in the horizontal or vertical direction. The minimum necessary number of memory banks for storing a desired plurality of pixels in another memory bank is 4. In the example of FIG. 4, a circle indicates one pixel, and a black circle indicates an access candidate pixel.

この画像上に、縦(h画素)×横(w画素)のサーチエリアSRがあり、その中で任意のアクセスしたいn個の候補がある場合、その種類は、(h×w)C(n)個ある。このひとつひとつをアクセスパターンと称する。アクセスパターンとしては、サーチエリアSR内の任意のアクセス候補の数の組み合わせが可能である。すなわち、図4に示される4画素は、16×8C4通りの組み合わせの内の1つのアクセスパターンの例を示したものである。   If there is a vertical (h pixel) × horizontal (w pixel) search area SR on this image, and there are n candidates to be arbitrarily accessed, the type is (h × w) C (n There are pieces. Each of these is called an access pattern. As an access pattern, a combination of any number of access candidates in the search area SR is possible. That is, the four pixels shown in FIG. 4 show an example of one access pattern in 16 × 8C4 combinations.

ここで、サーチエリアSRがラスタスキャン順に1画素ずつ順に移動し、それに応じて、アクセスパターンのアクセス候補の画素もラスタスキャン順に移動し、その移動した位置がアクセス候補の画素となって、それらのデータを同時に取得する場合を考える。   Here, the search area SR moves one pixel at a time in the raster scan order, and accordingly, the access pattern access candidate pixels also move in the raster scan order, and the moved position becomes the access candidate pixel. Consider the case of acquiring data simultaneously.

この場合、初期配置において、アクセスパターンのアクセス候補の画素以外のデータの格納方法にも工夫が必要となる。例えば、この画像のアクセス候補の画素間の画素のデータを、図5の例に示すように、ラスタスキャン順に、4つのメモリバンクに1画素毎に格納するようにしたり、図6の例に示すように、アクセス候補の画素間のデータを、同じメモリバンクに格納することが必要となる。   In this case, in the initial arrangement, it is necessary to devise a method for storing data other than the access candidate pixels of the access pattern. For example, the pixel data between the access candidate pixels of this image may be stored in four memory banks in the raster scan order for each pixel as shown in the example of FIG. 5, or as shown in the example of FIG. As described above, it is necessary to store data between access candidate pixels in the same memory bank.

図5および図6の例において、丸に付された数字は、各画素のデータが格納される4つのメモリバンクBK0乃至メモリバンクBK3を示している。また、白抜き数字の付された黒丸は、アクセス候補の画素を示しており、白抜き数字が示すメモリバンクにデータが格納されていることを表している。   In the examples of FIGS. 5 and 6, the numbers attached to the circles indicate the four memory banks BK <b> 0 to BK <b> 3 in which the data of each pixel is stored. A black circle with a white numeral indicates an access candidate pixel, and indicates that data is stored in the memory bank indicated by the white numeral.

図5の例においては、左上の画素の画素データからラスタスキャン順に、各画素のデータがメモリバンクBK0、メモリバンクBK1、メモリバンクBK2、およびメモリバンクBK3に1画素毎に格納されている。すなわち、左上の画素からラスタスキャン順に1番目のアクセス候補の画素のデータは、メモリバンクBK1に格納され、2番目のアクセス候補の画素のデータは、メモリバンクBK0に格納され、3番目のアクセス候補の画素のデータは、メモリバンクBK2に格納され、4番目のアクセス候補の画素のデータは、メモリバンクBK3に格納されている。   In the example of FIG. 5, the data of each pixel is stored in the memory bank BK0, the memory bank BK1, the memory bank BK2, and the memory bank BK3 for each pixel in the raster scan order from the pixel data of the upper left pixel. That is, the data of the first access candidate pixel from the upper left pixel in the raster scan order is stored in the memory bank BK1, and the data of the second access candidate pixel is stored in the memory bank BK0, and the third access candidate. The pixel data is stored in the memory bank BK2, and the fourth access candidate pixel data is stored in the memory bank BK3.

このように格納することで、サーチエリアSRがラスタスキャン順に1画素ずつ移動する場合、各アクセス候補の画素も1画素ずつ移動して、例えば、左上の画素からラスタスキャン順に1番目のアクセス候補は、データがメモリバンクBK2に格納されている画素に移動し、2番目のアクセス候補は、データがメモリバンクBK1に格納されている画素に移動し、3番目のアクセス候補は、データがメモリバンクBK3に格納されている画素に移動し、4番目のアクセス候補の画素のデータは、データがメモリバンクBK0に格納されている画素に移動することになるので、サーチエリアSRがラスタスキャン順に1画素ずつ移動しても、アクセス候補の画素のデータを同時に取得することができる。   By storing in this way, when the search area SR moves one pixel at a time in the raster scan order, each access candidate pixel also moves one pixel at a time. For example, the first access candidate from the upper left pixel in the raster scan order , The data is moved to the pixel stored in the memory bank BK2, the second access candidate is moved to the pixel where the data is stored in the memory bank BK1, and the third access candidate is transferred to the memory bank BK3. Since the data of the pixel of the fourth access candidate is moved to the pixel in which the data is stored in the memory bank BK0, the search area SR is moved one pixel at a time in the raster scan order. Even if it moves, it is possible to simultaneously acquire the data of access candidate pixels.

また、図6の例においては、左上の画素からラスタスキャン順に1番目のアクセス候補の画素から、2番目のアクセス候補の1つ手前の画素までのデータがメモリバンクBK0に格納され、2番目のアクセス候補の画素から、3番目のアクセス候補の1つ手前の画素までのデータがメモリバンクBK1に格納され、3番目のアクセス候補の画素から、4番目のアクセス候補の1つ手前の画素までのデータがメモリバンクBK2に格納され、4番目のアクセス候補の画素から、それ以降の画素のデータがメモリバンクBK3に格納されている。   In the example of FIG. 6, data from the first access candidate pixel to the pixel immediately before the second access candidate from the upper left pixel in raster scan order is stored in the memory bank BK0. Data from the access candidate pixel to the pixel immediately before the third access candidate is stored in the memory bank BK1, and the data from the third access candidate pixel to the pixel immediately before the fourth access candidate is stored. Data is stored in the memory bank BK2, and data of the subsequent pixels from the fourth access candidate pixel is stored in the memory bank BK3.

このように格納することで、サーチエリアSRがラスタスキャン順に1画素ずつ移動する場合、各アクセス候補の画素も1画素ずつ移動しても、ある一定の区間は、データが格納されているメモリバンクが同じであるので、アクセス候補の画素のデータを同時に取得することができる。しかしながら、図7の例に示されるように、サーチエリアSRの移動が、図6に示したサーチエリアSRの移動前のアクセス候補間を超えてしまうと、同時に同じメモリバンクの画素にアクセスすることになってしまう。   By storing in this way, when the search area SR moves one pixel at a time in the raster scan order, even if each access candidate pixel also moves one pixel at a time, a certain interval is a memory bank in which data is stored. Therefore, the data of the access candidate pixels can be acquired simultaneously. However, as shown in the example of FIG. 7, when the movement of the search area SR exceeds the access candidates before the movement of the search area SR shown in FIG. 6, the pixels in the same memory bank are accessed simultaneously. Become.

図7の例においては、図6の例から、サーチエリアSRがラスタスキャン順に7画素移動した後のアクセス候補の画素が黒丸で示されている。サーチエリアSRがラスタスキャン順に7画素移動したことに対応して、左上の画素からラスタスキャン順に1番目のアクセス候補は、データがメモリバンクBK1に格納されている画素に移動し、2番目のアクセス候補は、データがメモリバンクBK1に格納されている画素に移動し、3番目のアクセス候補は、データがメモリバンクBK2に格納されている画素に移動し、4番目のアクセス候補の画素のデータは、データがメモリバンクBK3に格納されている画素に移動する。   In the example of FIG. 7, the access candidate pixels after the search area SR has moved 7 pixels in the raster scan order from the example of FIG. 6 are indicated by black circles. Corresponding to the movement of the search area SR by 7 pixels in the raster scan order, the first access candidate from the upper left pixel in the raster scan order moves to the pixel in which the data is stored in the memory bank BK1, and the second access The candidate moves to the pixel whose data is stored in the memory bank BK1, the third access candidate moves to the pixel whose data is stored in the memory bank BK2, and the data of the pixel of the fourth access candidate is , The data moves to the pixel stored in the memory bank BK3.

すなわち、サーチエリアSRが移動した画素の数7が、サーチエリアSRの移動前の1番目および2番目のアクセス候補間の画素の数7になり、1番目および2番目のアクセス候補が、どちらも、データがメモリバンクBK1に格納されている画素に移動しまうため、同時に同じメモリバンクBK1のデータにアクセスすることになってしまう。   That is, the number of pixels 7 that the search area SR has moved to becomes the number 7 of pixels between the first and second access candidates before the movement of the search area SR, and the first and second access candidates are both Since the data moves to the pixels stored in the memory bank BK1, the data in the same memory bank BK1 is accessed at the same time.

一般に、同時に複数データにアクセスが可能なのは、その複数データが異なるメモリバンクに格納されているか、あるいはその複数のデータが同一ワード線上に格納されているかのいずれかである。パターンによっては、格納する場所を上手く選べば同時アクセスできる場合があるが、どのようなパターンでも同時アクセスできるようにするためには、1 メモリバンクが1ワード線だけで構成されるぐらい細かくメモリバンク分割する必要がある。   In general, a plurality of data can be accessed at the same time either in a plurality of data stored in different memory banks or in a plurality of data stored on the same word line. Depending on the pattern, simultaneous access may be possible if the storage location is selected appropriately. However, in order to allow simultaneous access to any pattern, the memory bank is configured so that one memory bank consists of only one word line. It is necessary to divide.

しかしながら、細かく分割するほどバンク数は多くなり、メモリバンク数が多くなると、(a) それぞれのバンクに異なるアドレスを指定するのでアドレスバスが膨大になる、(b)デコーダやセレクタがメモリバンクの数だけ必要なのでチップ面積が大きくなる、(c)同時に複数のメモリバンクが動作するため消費電力が多くなる、(d)1ワード線のデータ数を増やすと、ワード線が長くなり、1ワード線のデータにアクセスするときに時間がかかる、などの恐れがあった。   However, the smaller the number of banks, the larger the number of banks. When the number of memory banks increases, (a) the address bus becomes enormous because different addresses are designated for each bank, and (b) the decoder and selector have the number of memory banks. (C) Power consumption increases because a plurality of memory banks operate simultaneously. (D) When the number of data for one word line is increased, the word line becomes longer. There was a fear that it would take time to access the data.

このように、半導体メモリでは、1メモリバンクにつき1ワード線のみで構成するとデータの同時読み出しは可能であるが、格納すべきデータ量が膨大になるとハードウエアに負担がかかり、現実的でない。   As described above, in a semiconductor memory, data can be read simultaneously if it is configured with only one word line per memory bank. However, if the amount of data to be stored becomes enormous, the hardware is burdened, which is not practical.

そこで、従来の技術ではデータを読み出し、一時的に記憶するバッファやキャッシュを設け、所望の複数データを複数回に時間的に分割し、バッファやキャッシュに一時記憶し、読み出していた。   Therefore, in the conventional technique, a buffer or cache for reading data and temporarily storing it is provided, and a plurality of desired data is divided into a plurality of times in time, temporarily stored in the buffer or cache, and read.

しかしながら、所望の複数データの数が増え、かつ、データの入出力が高速になると、データの読み出し処理が時間的に遅れてしまう。また、これを解決するために、一時記憶するバッファやキャッシュを増やすことがなされているが、その領域が大きくなるとハードウエアに負担が生じる。   However, when the number of desired plural data increases and the data input / output speeds up, the data read processing is delayed in time. In order to solve this problem, the number of buffers and caches to be temporarily stored has been increased. However, if the area becomes large, a burden is imposed on hardware.

本発明は、このような状況に鑑みてなされたものであり、ハードウエアに負担を生じることなく、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うことのできるようにするものである。   The present invention has been made in view of such a situation, and stores all data in a memory composed of a plurality of memory banks and simultaneously reads a desired plurality of data without causing a burden on hardware. To be able to do that.

本発明の第1の側面の設計装置は、メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置において、前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数を算出する格納画素数算出手段と、前記格納画素数算出手段により算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、前記メモリに必要なメモリ量を算出するメモリ量算出手段と、前記メモリ量算出手段により算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定するバンク数設定手段とを備える。 According to a first aspect of the present invention, there is provided a design apparatus that designs parameters of a data storage device that reads data at the same time by distributing data to a plurality of memory banks constituting a memory and storing the data. access pattern showing a plurality of desired data to be horizontal size and the multiplication result of the vertical size of the accessible area at a time of the data, the number of the plurality of candidate memory banks to be set candidates, be read simultaneously Divided by the addition result obtained by adding 1 to the difference in the number of access candidates constituting the storage pixel, and the storage pixel number calculation means for calculating the maximum number of pixels stored in one memory bank and the storage pixel number calculation means the multiplication result between 1 minus from said maximum the plurality of candidate memory bank number and number of pixels that have been, multiplication of the horizontal size and the vertical size of the data From the addition result obtained by adding the results, the maximum number of pixels and the plurality of candidates from the memory bank number of a value obtained by subtracting the number of the access candidates multiplication result, and subtracting the value minus 1. from the number of the access candidates And a memory amount calculating means for calculating a memory amount necessary for the memory, and a memory bank in which the data is distributed and stored by the data storage device according to the memory amount calculated by the memory amount calculating means. Bank number setting means for setting the number.

本発明の第1の側面の設計方法は、メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置が、前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数を算出し、算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、前記メモリに必要なメモリ量を算出し、算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定するステップを含む。 According to a first aspect of the present invention, there is provided a design apparatus for designing a parameter of a data storage device that reads a plurality of data at the same time by allocating data to a plurality of memory banks constituting a memory and storing the data. access pattern showing a plurality of desired data to be horizontal size and the multiplication result of the vertical size of the accessible area at a time of the data, the number of the plurality of candidate memory banks to be set candidates, be read simultaneously The maximum number of pixels to be stored in one memory bank is calculated by dividing the difference of the number of access candidates constituting the number by the addition result obtained by adding 1, and the calculated maximum number of pixels and the plurality of candidate memory banks the multiplication result between 1 minus a few, the addition results obtained by adding the multiplication result between the horizontal size and the vertical size of the data, said plurality of climate and the maximum number of pixels Multiplication result between the value obtained by subtracting the number of the access candidates from the number of memory banks, and by subtracting the value minus 1. from the number of the access candidate, calculates the amount of memory required for the memory, the calculated the The method includes a step of setting the number of memory banks in which the data is distributed and stored by the data storage device according to the amount of memory.

本発明の第2の側面のデータ格納装置は、メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置において、前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数が算出され、算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、必要なメモリ量が算出され、算出された前記メモリ量に応じて設定された数のメモリバンクからなるメモリと、前記データを前記設定された数のメモリバンクに振り分けて格納する際に、前記アクセスパターンおよび前記最大画素数に基づいて、前記アクセス候補間のデータを前記最大画素数だけ同じメモリバンクに格納することにより初期配置するデータ格納処理手段と、前記設定された数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各メモリバンクからそれぞれ読み出すデータ読み出し格納処理手段とを備え、前記データ読み出し格納処理手段は、前記メモリバンクから画素のデータを読み出し、前記アクセスパターンのアクセス候補の各位置に基づいて決まる範囲のうち、前記アクセスパターンの移動方向に基づいて決まる1の隣接する範囲の画素のデータが格納されているメモリバンクに読み出した前記画素のデータを格納する。 A data storage device according to a second aspect of the present invention is a data storage device that stores data by allocating data to a plurality of memory banks constituting a memory, thereby simultaneously reading out a plurality of data, wherein the horizontal size of the data and the data vertical size and the result of the multiplication, and a plurality of candidate number memory banks to be set candidates, access candidates for configuring the access pattern showing a plurality of desired data to be read simultaneously in the accessible area once among The maximum number of pixels stored in one memory bank is calculated by dividing by the addition result obtained by adding 1 to the number difference, and the calculated maximum pixel number and the value obtained by subtracting 1 from the plurality of candidate memory banks multiplication result from the addition result obtained by adding the multiplication result between the horizontal size and the vertical size of the data, the plurality of candidate number memory bank and the maximum number of pixels of the Multiplication result between the value obtained by subtracting the number of al the access candidate, and by subtracting the value minus 1. from the number of the access candidate, the calculated amount of memory required, set in accordance with the memory amount calculated A memory composed of a predetermined number of memory banks, and when storing the data in the set number of memory banks, the data between the access candidates is stored based on the access pattern and the maximum number of pixels. Data storage processing means for initial placement by storing the same number of pixels in the same memory bank, and for data initially placed on a memory composed of the set number of memory banks, pixel data is stored from each memory bank. Data read storage processing means for reading out each of the data, and the data read storage processing means for reading out pixel data from the memory bank. Read out to a memory bank in which data of pixels in one adjacent range determined based on the moving direction of the access pattern out of the range determined based on each position of the access candidate of the access pattern is read Stores pixel data.

本発明の第1の側面においては、メモリを構成する複数のメモリバンクに振り分けて格納されるデータを格納することで、同時に複数のデータを読み出すデータ格納装置に格納される前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数が算出される。そして、算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、前記メモリに必要なメモリ量が算出され、算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数が設定される。 In the first aspect of the present invention, the horizontal size of the data stored in the data storage device that reads the plurality of data at the same time by storing the data distributed and stored in the plurality of memory banks constituting the memory , access to configure the multiplication result of the vertical size of the accessible area at a time of the data, a plurality of candidate number memory banks to be set candidates, the desired access pattern showing a plurality data to be read simultaneously The maximum number of pixels stored in one memory bank is calculated by dividing by the addition result obtained by adding 1 to the difference in the number of candidates. Then, from the addition result obtained by adding the multiplication result of the calculated maximum pixel count and the value obtained by subtracting 1 from the plurality of candidate memory banks, and the multiplication result of the horizontal size and vertical size of the data , the maximum pixel The amount of memory required for the memory is calculated by subtracting the value obtained by subtracting the number obtained by subtracting the number of access candidates from the number of candidate memory banks and the value obtained by subtracting 1 from the number of access candidates. In accordance with the calculated amount of memory, the data storage device sets the number of memory banks in which the data is distributed and stored.

本発明の第2の側面においては、前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数が算出され、算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、必要なメモリ量が算出され、算出された前記メモリ量に応じて設定された数のメモリバンクからなるメモリのメモリバンクに、前記データを振り分けて格納する際に、前記アクセスパターンおよび前記最大画素数に基づいて、前記アクセス候補間のデータが前記最大画素数だけ同じメモリバンクに格納することにより初期配置される。また、前記設定された数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータが各メモリバンクからそれぞれ読み出される。そして、前記メモリバンクから画素のデータが読み出され、前記アクセスパターンのアクセス候補の各位置に基づいて決まる範囲のうち、前記アクセスパターンの移動方向に基づいて決まる1の隣接する範囲の画素のデータが格納されているメモリバンクに読み出した前記画素のデータが格納される。 In the second aspect of the present invention, the multiplication result of the horizontal size of the data and the vertical size of the area that can be accessed at once is read simultaneously with the number of candidate memory banks as setting candidates. The maximum number of pixels stored in one memory bank is calculated by dividing by the addition result obtained by adding 1 to the difference in the number of access candidates constituting an access pattern indicating desired multiple data to be output. the multiplication result of 1 and minus from said maximum the plurality of candidate memory bank number and the number of pixels, the addition result obtained by adding the multiplication result between the horizontal size and the vertical size of the data, the maximum number of pixels as the plurality were multiplication result from the candidate memory bank number of a value obtained by subtracting the number of the access candidate, and by subtracting the value minus 1. from the number of the access candidate, the amount of memory required is calculated Based on the access pattern and the maximum number of pixels, when the data is distributed and stored in a memory bank of a memory having a number of memory banks set according to the calculated memory amount, Are stored in the same memory bank by the maximum number of pixels. Further, pixel data is read from each memory bank with respect to data initially arranged on the memory including the set number of memory banks. Then, pixel data is read from the memory bank, and data of pixels in one adjacent range determined based on the movement direction of the access pattern out of the range determined based on each position of the access pattern access candidate The pixel data read out is stored in the memory bank in which is stored.

本発明の第1の側面によれば、データ格納装置のメモリ量を、全体として削減することができる。   According to the first aspect of the present invention, the memory capacity of the data storage device can be reduced as a whole.

本発明の第2の側面によれば、全体としてメモリ量を削減し、全データにおいて所望の複数画素を同時アクセスすることができる。   According to the second aspect of the present invention, it is possible to reduce the amount of memory as a whole and to simultaneously access a desired plurality of pixels in all data.

以下、図を参照して本発明の実施の形態について説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図8は、本発明を適用したデータ格納装置の構成例を表している。   FIG. 8 shows a configuration example of a data storage device to which the present invention is applied.

このデータ格納装置11は、入力端子21a乃至21c、出力端子21b、メモリ31、データ格納制御部32、およびデータ読み出し格納制御部33により構成される。   The data storage device 11 includes input terminals 21a to 21c, an output terminal 21b, a memory 31, a data storage control unit 32, and a data read / storage control unit 33.

入力端子21aから、格納する画像などのデータDAがメモリ31およびデータ格納制御部32に供給され、入力端子21bから、複数データの同時読み出し対象の位置を示すアクセスパターンAPが、データ格納制御部32に供給され、図示せぬ制御装置から入力端子21cを介して、動作制御用の制御信号CSが、メモリ31、データ格納制御部32、およびデータ読み出し格納制御部33に供給される。   Data DA such as an image to be stored is supplied from the input terminal 21a to the memory 31 and the data storage control unit 32, and an access pattern AP indicating a position to be simultaneously read out of a plurality of data is input from the input terminal 21b to the data storage control unit 32. The control signal CS for operation control is supplied from the control device (not shown) to the memory 31, the data storage control unit 32, and the data read / store control unit 33 via the input terminal 21c.

メモリ31、データ格納制御部32、およびデータ読み出し格納制御部33は、入力端子21cを介して入力される制御信号CSに基づいて動作する。   The memory 31, the data storage control unit 32, and the data read / storage control unit 33 operate based on a control signal CS input via the input terminal 21c.

メモリ31には、初期格納時に、入力端子21aから格納すべき画像のデータが入力される。メモリ31は、複数のメモリバンク(例えば、4個のメモリバンクBK0乃至BK3)で構成される。   Data of an image to be stored is input to the memory 31 from the input terminal 21a at the time of initial storage. The memory 31 includes a plurality of memory banks (for example, four memory banks BK0 to BK3).

データ格納制御部32は、入力端子21cからのアクセスパターンAPに基づいて、入力端子21aから入力されるデータDAをメモリ31に配置(格納)する初期配置処理を行う。すなわち、データ格納制御部32は、入力端子21cからのアクセスパターンAPに基づいて、入力端子21aから入力されるデータDAをメモリ31に格納する位置を示す書き込みアドレスを生成し、メモリ31に入力されるデータを、書き込みアドレスが示すメモリ31のアドレスに書き込ませる。   Based on the access pattern AP from the input terminal 21c, the data storage control unit 32 performs an initial arrangement process of arranging (storing) the data DA input from the input terminal 21a in the memory 31. That is, the data storage control unit 32 generates a write address indicating a position where the data DA input from the input terminal 21 a is stored in the memory 31 based on the access pattern AP from the input terminal 21 c, and is input to the memory 31. Data is written to the address of the memory 31 indicated by the write address.

データ読み出し格納制御部33は、メモリ31からのアドレスに基づいて、読み出しアドレスを生成し、メモリ31からのデータの読み出しを行うとともに、書き込みアドレスを生成し、メモリ31への画素の再格納の制御を行う。   The data read / store control unit 33 generates a read address based on the address from the memory 31, reads data from the memory 31, generates a write address, and controls re-storing of pixels in the memory 31. I do.

図9は、図8のデータ格納制御部32の構成例を示す図である。   FIG. 9 is a diagram illustrating a configuration example of the data storage control unit 32 of FIG.

データ格納制御部32は、カウンタ41、一致判定部42、フラグ生成部43、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、ワード線アドレスカウンタ46、アドレス生成部47、および格納制御処理部48により構成される。   The data storage control unit 32 includes a counter 41, a match determination unit 42, a flag generation unit 43, a bank address counter 44, a bit line address counter 45, a word line address counter 46, an address generation unit 47, and a storage control processing unit 48. Is done.

カウンタ41は、入力端子21aから供給されるデータDAを計数し、その計数結果を一致判定部42、およびバンクアドレスカウンタ44に出力する。一致判定部42は、入力端子21bからのアクセスパターンAPと、カウンタ41の計数結果との一致判定を行い、その判定結果をフラグ生成部43に出力する。なお、図示は省略するが、判定結果は、アドレス生成部47にも出力される。   The counter 41 counts the data DA supplied from the input terminal 21 a and outputs the count result to the coincidence determination unit 42 and the bank address counter 44. The coincidence determination unit 42 performs coincidence determination between the access pattern AP from the input terminal 21 b and the count result of the counter 41, and outputs the determination result to the flag generation unit 43. Although illustration is omitted, the determination result is also output to the address generation unit 47.

フラグ生成部43は、一致判定部42からの判定結果に応じてフラグを生成し、生成したフラグを、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、およびワード線アドレスカウンタ46に出力する。   The flag generation unit 43 generates a flag according to the determination result from the coincidence determination unit 42, and outputs the generated flag to the bank address counter 44, the bit line address counter 45, and the word line address counter 46.

バンクアドレスカウンタ44は、フラグ生成部43からのフラグに応じて、カウント値がインクリメントされるカウンタであり、そのカウント値を、アドレス生成部47に出力する。このバンクアドレスカウンタ44のカウント値は、メモリバンクの番号を表すバンクアドレスを示す。また、バンクアドレスカウンタ44は、カウンタ41の計数結果を受けて、その結果を、ビット線アドレスカウンタ45に出力する。   The bank address counter 44 is a counter whose count value is incremented according to the flag from the flag generation unit 43, and outputs the count value to the address generation unit 47. The count value of the bank address counter 44 indicates a bank address representing a memory bank number. Further, the bank address counter 44 receives the count result of the counter 41 and outputs the result to the bit line address counter 45.

ビット線アドレスカウンタ45は、バンクアドレスカウンタ44の結果を受けて、カウント値がインクリメントされるカウンタであり、そのカウント値をアドレス生成部47に出力する。また、ビット線アドレスカウンタ45は、フラグ生成部43からのフラグに応じて、カウント値をリセットする。ビット線アドレスカウンタ45には、ビット線長が記憶されており、そのカウンタ値がビット線長を超えたときには、カウント値はリセットされ、その結果がワード線アドレスカウンタ46に出力される。   The bit line address counter 45 is a counter in which the count value is incremented in response to the result of the bank address counter 44, and outputs the count value to the address generation unit 47. Further, the bit line address counter 45 resets the count value according to the flag from the flag generation unit 43. The bit line address counter 45 stores the bit line length. When the counter value exceeds the bit line length, the count value is reset and the result is output to the word line address counter 46.

ワード線アドレスカウンタ46は、ビット線アドレスカウンタ45の結果を受けて、カウント値がインクリメントされるカウンタであり、そのカウント値をアドレス生成部47に出力する。また、ワード線アドレスカウンタ46は、フラグ生成部43からのフラグに応じて、カウント値をリセットする。   The word line address counter 46 is a counter in which the count value is incremented in response to the result of the bit line address counter 45, and outputs the count value to the address generation unit 47. The word line address counter 46 resets the count value in accordance with the flag from the flag generation unit 43.

アドレス生成部47は、一致判定部42からの判定結果に応じて、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、およびワード線アドレスカウンタ46が示すカウント値に基づいて、書き込みアドレスWAを生成し、格納制御処理部48に出力する。   The address generation unit 47 generates the write address WA based on the count values indicated by the bank address counter 44, the bit line address counter 45, and the word line address counter 46 according to the determination result from the match determination unit 42, The data is output to the storage control processing unit 48.

格納制御処理部48は、書き込みアドレスWAを用いて、メモリ31への書き込みを制御する。すなわち、図示しない遅延器によって所定の時間遅延されたデータDAは、格納制御処理部48による書き込みアドレスWAが示すメモリ31のアドレスに格納される。   The storage control processing unit 48 controls writing to the memory 31 using the write address WA. That is, the data DA delayed for a predetermined time by a delay unit (not shown) is stored at the address of the memory 31 indicated by the write address WA by the storage control processing unit 48.

図10は、図8のデータ読み出し格納制御部33の構成例を示す図である。図10の例においては、メモリ31が4つのメモリバンク(BK0乃至BK3)で構成される場合が示されている。   FIG. 10 is a diagram illustrating a configuration example of the data read / store control unit 33 of FIG. In the example of FIG. 10, a case where the memory 31 is configured by four memory banks (BK0 to BK3) is shown.

データ読み出し格納制御部33は、メモリバンクBK0乃至BK3毎のデータ読み出し格納制御部53−0乃至53−3により構成される。データ読み出し格納制御部53−0乃至53−3は、それぞれ、データ読み出し用のビット線アドレスカウンタ51−0乃至51−3、ワード線アドレスカウンタ52−0乃至52−3、データ格納用のビット線アドレスカウンタ53−0乃至53−3、ワード線アドレスカウンタ54−0乃至54−3、読み出しアドレスを生成する読み出しアドレス生成部55−0乃至55−3、書き込みアドレスを生成する書き込みアドレス生成部56−0乃至56−3、読み出し制御処理を行う読み出し制御処理部57−0乃至57−3、および書き込み制御処理を行う書き込み制御処理部58−0乃至58−3で構成されている。   The data read / store control unit 33 includes data read / store control units 53-0 to 53-3 for the memory banks BK0 to BK3. The data read / storage control units 53-0 to 53-3 include data read bit line address counters 51-0 to 51-3, word line address counters 52-0 to 52-3, and data storage bit lines, respectively. Address counters 53-0 to 53-3, word line address counters 54-0 to 54-3, read address generation units 55-0 to 55-3 for generating read addresses, and write address generation unit 56- for generating write addresses 0 to 56-3, read control processing units 57-0 to 57-3 for performing read control processing, and write control processing units 58-0 to 58-3 for performing write control processing.

なお、以下、データ読み出し用のビット線アドレスカウンタ51−0乃至51−3、ワード線アドレスカウンタ52−0乃至52−3、データ格納用のビット線アドレスカウンタ53−0乃至53−3、ワード線アドレスカウンタ54−0乃至54−3、読み出しアドレス生成部55−0乃至55−3、書き込みアドレス生成部56−0乃至56−3、読み出し制御処理部57−0乃至57−3、および書き込み制御処理部58−0乃至58−3を区別する必要がない場合、それぞれ、読み出しビット線アドレスカウンタ51、読み出しワード線アドレスカウンタ52、書き込みビット線アドレスカウンタ53、書き込みワード線アドレスカウンタ54、読み出しアドレス生成部55、書き込みアドレス生成部56、読み出し制御処理部57、および書き込み制御処理部58と適宜称する。   Hereinafter, data read bit line address counters 51-0 to 51-3, word line address counters 52-0 to 52-3, data storage bit line address counters 53-0 to 53-3, word lines Address counters 54-0 to 54-3, read address generation units 55-0 to 55-3, write address generation units 56-0 to 56-3, read control processing units 57-0 to 57-3, and write control processing When it is not necessary to distinguish the units 58-0 to 58-3, the read bit line address counter 51, the read word line address counter 52, the write bit line address counter 53, the write word line address counter 54, and the read address generation unit, respectively. 55, a write address generation unit 56, a read control processing unit 57 And appropriately referred to as a write control processing unit 58.

例えば、メモリ31から読み出された各メモリバンクBKの最終読み出しアドレス(Last RA)は、読み出しビット線アドレスカウンタ51に入力される。   For example, the last read address (Last RA) of each memory bank BK read from the memory 31 is input to the read bit line address counter 51.

読み出しビット線アドレスカウンタ51は、各メモリバンクBKの最終読み出しアドレスを受けて、読み出しに応じて、カウント値をインクリメントする。読み出しビット線アドレスカウンタ51には、ビット線長が記憶されており、カウント値がビット線長を超えた場合、そのカウント値は0にリセットされ、その結果が、読み出しワード線アドレスカウンタ52に出力される。   The read bit line address counter 51 receives the final read address of each memory bank BK and increments the count value according to the read. The bit line length is stored in the read bit line address counter 51. When the count value exceeds the bit line length, the count value is reset to 0, and the result is output to the read word line address counter 52. Is done.

読み出しワード線アドレスカウンタ52は、読み出しビット線アドレスカウンタ51のカウント値を受けて、読み出しに応じて、カウント値を適宜インクリメントする。また、読み出しワード線アドレスカウンタ52には、ワード線長が記憶されており、カウント値がワード線長を超えた場合、そのカウント値は0にリセットされる。   The read word line address counter 52 receives the count value of the read bit line address counter 51, and appropriately increments the count value according to the read. The read word line address counter 52 stores the word line length, and when the count value exceeds the word line length, the count value is reset to zero.

読み出しアドレス生成部55は、各メモリバンクBKのバンクアドレス、並びに読み出しビット線アドレスカウンタ51、および読み出しワード線アドレスカウンタ52のカウント値に基づき、読み出しアドレスRAを生成し、読み出し制御処理部57に出力する。読み出し制御処理部57は、読み出しアドレス生成部55からの読み出しアドレスRAに対応するデータをメモリ31から読み出す。   The read address generation unit 55 generates a read address RA based on the bank address of each memory bank BK and the count values of the read bit line address counter 51 and the read word line address counter 52 and outputs the read address RA to the read control processing unit 57. To do. The read control processing unit 57 reads data corresponding to the read address RA from the read address generation unit 55 from the memory 31.

一方、例えば、メモリ31から読み出された各メモリバンクBKの最終書き込みアドレス(Last WA)は、書き込みビット線アドレスカウンタ53に入力される。   On the other hand, for example, the last write address (Last WA) of each memory bank BK read from the memory 31 is input to the write bit line address counter 53.

書き込みビット線アドレスカウンタ53は、各メモリバンクBKの最終書き込みアドレスを受けて、書き込みに応じて、カウント値をインクリメントする。書き込みビット線アドレスカウンタ53には、ビット線長が記憶されており、カウント値がビット線長を超えた場合、そのカウント値は0にリセットされ、その結果が、書き込みワード線アドレスカウンタ54に出力される。   The write bit line address counter 53 receives the final write address of each memory bank BK and increments the count value according to the write. The bit line length is stored in the write bit line address counter 53. When the count value exceeds the bit line length, the count value is reset to 0, and the result is output to the write word line address counter 54. Is done.

書き込みワード線アドレスカウンタ54は、書き込みビット線アドレスカウンタ53の結果を受けて、書き込みに応じてカウント値を適宜インクリメントする。また、書き込みワード線アドレスカウンタ54には、ワード線長が記憶されており、カウント値がワード線長を超えた場合、そのカウント値は0にリセットされる。   The write word line address counter 54 receives the result of the write bit line address counter 53 and appropriately increments the count value according to the write. The write word line address counter 54 stores the word line length, and when the count value exceeds the word line length, the count value is reset to zero.

書き込みアドレス生成部56は、各メモリバンクBKのバンクアドレス、書き込みビット線アドレスカウンタ53、書き込みワード線アドレスカウンタ54のカウント値に基づき、書き込みアドレスWAを生成し、書き込み制御処理部58に出力する。書き込み制御処理部58は、他のメモリバンク(例えば1つ後ろのメモリバンク)から読み出されたデータを書き込み制御処理部58からの書き込みアドレスWAが示すメモリ31の所定の位置に書き込む。   The write address generator 56 generates a write address WA based on the bank address of each memory bank BK, the write bit line address counter 53 and the count value of the write word line address counter 54, and outputs the write address WA to the write control processor 58. The write control processing unit 58 writes data read from another memory bank (for example, the next memory bank) to a predetermined position in the memory 31 indicated by the write address WA from the write control processing unit 58.

なお、図10の例においては、メモリ31から最終読み出しアドレスおよび最終書き込みアドレスを読み出したが、これに限定されるものではなく、データ読み出し格納制御部33内に記憶しておき、そこから読み出すようにしてもよい。   In the example of FIG. 10, the final read address and the final write address are read from the memory 31. However, the present invention is not limited to this, and is stored in the data read storage control unit 33 and read from there. It may be.

また、図10の例においては、読み出し用のビット線およびワード線アドレスカウンタをメモリバンク毎に設けたが、各メモリバンクを読み出す際に、そのビット線およびワード線アドレスカウンタが示すカウント値は同じであるため、これらは適宜共有させてもよい。さらに、1つ後ろのメモリバンクから読み出されたデータを、メモリバンクに書き込むようにしたが、もしメモリバンクBK0で読み出されたデータが再度必要になる場合には、メモリバンクBK0で読み出されたデータをメモリバンクBK3に書き込むように設定にしても構わない。   In the example of FIG. 10, a read bit line and word line address counter is provided for each memory bank. However, when reading each memory bank, the count values indicated by the bit line and word line address counter are the same. Therefore, these may be shared as appropriate. Further, the data read from the next memory bank is written to the memory bank. If the data read from the memory bank BK0 is necessary again, the data is read from the memory bank BK0. The data may be set to be written to the memory bank BK3.

次に、このような構成のデータ格納装置11における画像データの各バンクへの初期配置について説明する。   Next, an initial arrangement of image data in each bank in the data storage device 11 having such a configuration will be described.

図11は、アクセスパターンの例を示す図である。   FIG. 11 is a diagram illustrating an example of an access pattern.

図11の例においては、縦40画素×横80画素(H×W)で構成される画像が示されており、画像のうち、縦8画素×横16画素(h×w)の領域が、データ格納装置11が1度にアクセス可能な領域であるサーチエリアSRとして示されている。   In the example of FIG. 11, an image composed of 40 vertical pixels × 80 horizontal pixels (H × W) is shown, and among the images, an area of 8 vertical pixels × 16 horizontal pixels (h × w) The data storage device 11 is shown as a search area SR that is an area that can be accessed at one time.

すなわち、この画像に対して、複数の画素を同時にアクセスしたい場合、例えば、サーチエリアSR内に、複数同時にアクセスしたい画素の位置を示すパターンであるアクセスパターンAPを設定し、左上からラスタスキャン順に1画素ずつ移動するサーチエリアSRの移動とともに、そのアクセスパターンAPも移動することで、画像内の全領域に対しても、複数の画素が同時アクセスされる。   That is, when it is desired to simultaneously access a plurality of pixels with respect to this image, for example, an access pattern AP that is a pattern indicating the positions of a plurality of pixels that are desired to be simultaneously accessed is set in the search area SR. Along with the movement of the search area SR that moves pixel by pixel, the access pattern AP also moves, so that a plurality of pixels are simultaneously accessed in all areas in the image.

また、図11の例においては、サーチエリアSR内の画素が拡大して示されており、サーチエリアSRに示される丸は、1画素を表し、黒丸は、サーチエリアSRの画素のうち、複数同時にアクセスしたい画素(以下、アクセス候補とも称する)P0乃至P3を表している。すなわち、この場合、4つのメモリバンクのメモリ31を用いて、4画素を同時アクセスする例が示されている。   In the example of FIG. 11, the pixels in the search area SR are enlarged, the circle shown in the search area SR represents one pixel, and the black circle is a plurality of pixels in the search area SR. The pixels (hereinafter also referred to as access candidates) P0 to P3 that are desired to be accessed simultaneously are shown. That is, in this case, an example in which four pixels are simultaneously accessed using the memories 31 of four memory banks is shown.

図11のアクセスパターンAPは、サーチエリアSRの上から3番目の左から4番目(ラスタスキャン順に1番目)の画素に設定されたアクセス候補P0、サーチエリアSRの上から3番目の左から11番目(ラスタスキャン順に2番目)の画素に設定されたアクセス候補P1、サーチエリアSRの上から6番目の右から3番目(ラスタスキャン順に最後から2番目)の画素に設定されたアクセス候補P2、サーチエリアSRの上から7番目の右から7番目(ラスタスキャン順に最後尾)の画素に設定されたアクセス候補P3で構成されている。   The access pattern AP in FIG. 11 is the access candidate P0 set to the fourth pixel from the third left from the top of the search area SR (first in the raster scan order), and the third from the left from the top of the search area SR. Access candidate P1 set for the second (second in raster scan order) pixel, access candidate P2 set for the sixth pixel from the top right in the search area SR (second last from the raster scan order), The search area SR is composed of the access candidate P3 set to the seventh pixel from the top right (the last pixel in the raster scan order).

なお、複数同時アクセスしたい画素に対応するアクセスパターンは、この図11に示す例に限定されるものではない。例えば、この縦h画素×横w画素のサーチエリアSRがあり、その中で任意のアクセスしたいn個(図11の場合、4個)の画素がある場合、その種類は、(h×w)C(n)個ある。このn個のアクセス候補の組み合わせひとつひとつをアクセスパターンAPと言う。アクセスパターンAPとしては、サーチエリアSR内の任意のアクセス候補の組み合わせが可能である。すなわち、図11に示される4個のアクセス候補P0乃至P3からなるアクセスパターンAPは、16×8C4(=10,668,000)通りの組み合わせの内の1つの例である。   Note that the access pattern corresponding to a plurality of pixels to be accessed simultaneously is not limited to the example shown in FIG. For example, when there is a search area SR of vertical h pixels × horizontal w pixels, and there are n (4 in the case of FIG. 11) pixels to be accessed, the type is (h × w) There are C (n). Each combination of the n access candidates is called an access pattern AP. As the access pattern AP, any combination of access candidates in the search area SR is possible. That is, the access pattern AP including the four access candidates P0 to P3 shown in FIG. 11 is an example of 16 × 8C4 (= 10,668,000) combinations.

また、同時アクセスしたい画素の数をアクセス候補数といい、アクセスパターンを構成するアクセス候補の数に等しい。この例では、4つのアクセス候補P0乃至P3からアクセスパターンAPが形成されているため、アクセス候補数は4となっている。   The number of pixels that are desired to be accessed simultaneously is referred to as the number of access candidates, and is equal to the number of access candidates that constitute the access pattern. In this example, since the access pattern AP is formed from the four access candidates P0 to P3, the number of access candidates is four.

図12および図13は、画像データの各バンクへの初期配置の例を示す図である。図12の例においては、図11のアクセスパターンの場合のデータの初期配置における2次元配列状態が示されており、丸に付された数字は、各画素のデータが格納される各メモリバンクBK0乃至BK3に対応している。図13の例においては、図12の初期配置の各メモリバンクBK0乃至BK3における1次元配列状態が示されている。   12 and 13 are diagrams showing examples of initial arrangement of image data in each bank. In the example of FIG. 12, the two-dimensional arrangement state in the initial arrangement of data in the case of the access pattern of FIG. 11 is shown, and the numbers attached to the circles are the memory banks BK0 in which the data of each pixel is stored. To BK3. In the example of FIG. 13, a one-dimensional arrangement state in each of the memory banks BK0 to BK3 in the initial arrangement of FIG. 12 is shown.

図12の例の画像においては、各アクセス候補P0乃至P3間の画素が、図13の例に示される、それぞれ同じメモリバンクBKに格納されている。   In the image in the example of FIG. 12, the pixels between the access candidates P0 to P3 are stored in the same memory bank BK shown in the example of FIG.

具体的には、図12の画像におけるアクセス候補P0から、アクセス候補P1の1つ手前の画素までの7画素分のデータが、図13のメモリバンクBK0に格納されている。また、図12の画像におけるアクセス候補P1から、アクセス候補P2の1つ手前の画素までの232画素分のデータが図13のメモリバンクBK1に格納されている。アクセス候補P2から、アクセス候補P3の1つ手前の画素までの84画素分のデータがメモリバンクBK2に格納されており、アクセス候補P3から以降すべての画素(2714画素)分のデータがメモリバンクBK3に格納されている。   Specifically, data for seven pixels from the access candidate P0 in the image of FIG. 12 to the pixel immediately before the access candidate P1 is stored in the memory bank BK0 of FIG. Further, data for 232 pixels from the access candidate P1 in the image of FIG. 12 to the pixel immediately before the access candidate P2 is stored in the memory bank BK1 of FIG. Data for 84 pixels from the access candidate P2 to the pixel immediately before the access candidate P3 is stored in the memory bank BK2, and data for all the pixels (2714 pixels) from the access candidate P3 thereafter is stored in the memory bank BK3. Stored in

すなわち、アクセス候補P0乃至P3は、データの初期配置においては、各バンクの先頭にそれぞれ格納される。したがって、以下、データの初期配置におけるアクセス候補P0乃至P3を、アクセス開始位置P0乃至P3とも称する。   That is, access candidates P0 to P3 are stored at the head of each bank in the initial arrangement of data. Therefore, hereinafter, the access candidates P0 to P3 in the initial arrangement of data are also referred to as access start positions P0 to P3.

ここで、このデータ格納装置11においては、画像データが入力された際に、データ格納制御部32により初期配置処理が行われ、入力された画素(の位置)が、アクセスパターンAPが示すアクセス開始位置と一致した場合は、その時点のビット線アドレスカウンタ45のカウント値とワード線アドレスカウンタ46のカウント値が対応する、メモリバンクの書き込みが開始される書き込みビット線アドレスと書き込みワード線アドレスとして格納され、バンクアドレスカウンタ44がインクリメントされて、バンクアドレスカウンタ44が示すバンクアドレス(すなわち、次のメモリバンクBK)に画素が格納される。   Here, in this data storage device 11, when image data is input, an initial arrangement process is performed by the data storage controller 32, and the input pixel (position) starts access indicated by the access pattern AP. If the position matches, the count value of the bit line address counter 45 and the count value of the word line address counter 46 at that time correspond to the write bit line address and the write word line address at which writing to the memory bank is started. Then, the bank address counter 44 is incremented, and the pixel is stored in the bank address indicated by the bank address counter 44 (that is, the next memory bank BK).

また、画素の位置が、アクセスパターンAPが示すアクセス開始位置と一致しない場合は、現在のバンクアドレスにビット線アドレスカウンタ45のカウント値がインクリメントされたビットアドレス位置に画素が格納され、ビット線アドレスが終了すれば、ビット線アドレスカウンタ45を0に戻し、ワード線アドレスカウンタ46のカウント値をインクリメントすることによって、アクセス開始位置間の画素が同じメモリバンクBKに格納される。   If the pixel position does not match the access start position indicated by the access pattern AP, the pixel is stored at the bit address position where the count value of the bit line address counter 45 is incremented to the current bank address, and the bit line address Is completed, the bit line address counter 45 is returned to 0 and the count value of the word line address counter 46 is incremented, whereby the pixels between the access start positions are stored in the same memory bank BK.

したがって、図12の例の場合、画像の左上から1画素ずつバンクBKに格納するときに、データ格納制御部32は、画素の位置が、アクセスパターンAPが示すアクセス開始位置と一致する毎にバンクアドレスをインクリメントさせて、メモリバンクBK0の次は、メモリバンクBK1、その次はメモリバンクBK2、その次はメモリバンクBK3と、メモリバンクを変えて、アクセス開始位置(アクセス候補)P0乃至P3間の画素を同じバンクに格納する。すなわち、データ格納制御部32においては、各アクセス開始位置P0乃至P3からなるアクセスパターンが設定された状況で、アクセスパターン(アクセス開始位置)に対する画像データの一致/不一致が判定される。   Therefore, in the case of the example of FIG. 12, when storing one pixel at a time from the upper left of the image in the bank BK, the data storage control unit 32 sets the bank every time the pixel position matches the access start position indicated by the access pattern AP. By incrementing the address, the memory bank BK0 is followed by the memory bank BK1, the next is the memory bank BK2, the next is the memory bank BK3, and the memory bank is changed to change between the access start positions (access candidates) P0 to P3. Store the pixels in the same bank. That is, the data storage control unit 32 determines whether the image data matches or does not match the access pattern (access start position) in a situation where an access pattern including the access start positions P0 to P3 is set.

次に、図14のフローチャートを参照して、データ格納制御部32の初期配置処理を詳しく説明する。   Next, the initial arrangement processing of the data storage control unit 32 will be described in detail with reference to the flowchart of FIG.

データ格納制御部32は、初期配置処理を開始すると、ステップS1において、バンクアドレスカウンタ44、ビット線アドレスカウンタ45およびワード線アドレスカウンタ46のカウント値を全て「0」に、初期設定を行う。   When the data storage control unit 32 starts the initial arrangement process, in step S1, the count values of the bank address counter 44, the bit line address counter 45, and the word line address counter 46 are all initialized to “0”.

ステップS2において、カウンタ41は、入力端子21aから格納すべき1画素分の画像データを入力する。カウンタ41は、1画素を計数し、計数結果を一致判定部42に出力する。   In step S2, the counter 41 inputs image data for one pixel to be stored from the input terminal 21a. The counter 41 counts one pixel and outputs the count result to the coincidence determination unit 42.

ステップS3において、一致判定部42は、入力端子21bからのアクセスパターンAPと、カウンタ41の計数結果との一致判定を行い、入力された1画素が、アクセスパターンAPのアクセス開始位置(アクセス候補)の画素であるか否かを判定する。   In step S3, the coincidence determination unit 42 performs a coincidence determination between the access pattern AP from the input terminal 21b and the count result of the counter 41, and one input pixel is an access start position (access candidate) of the access pattern AP. It is determined whether it is a pixel.

ステップS3において入力された1画素がアクセス開始位置の画素であると判定された場合、すなわち、その画素がアクセス開始位置の場合には、ステップS4において、アドレス生成部47は、現在のワード線アドレスカウンタ46とビット線アドレスカウンタ45のカウント値を、バンクアドレスに対応したメモリバンクの書き込みが開始される書き込みワード線アドレスと書き込みビット線アドレスとして格納する。   If it is determined in step S3 that one input pixel is a pixel at the access start position, that is, if the pixel is at the access start position, in step S4, the address generation unit 47 determines the current word line address. The count values of the counter 46 and the bit line address counter 45 are stored as a write word line address and a write bit line address at which writing to the memory bank corresponding to the bank address is started.

ステップS5において、バンクアドレスカウンタ44は、カウント値をインクリメントし、さらに、ワード線アドレスカウンタ46とビット線アドレスカウンタ45は、カウント値を「0」にリセットする。   In step S5, the bank address counter 44 increments the count value, and the word line address counter 46 and the bit line address counter 45 reset the count value to “0”.

すなわち、ステップS3において入力された1画素がアクセス開始位置の画素であると判定された場合、フラグ生成部43は、一致判定部42により入力された1画素がアクセス候補の画素であるという判定結果に応じたフラグを生成し、生成したフラグを、バンクアドレスカウンタ44、ワード線アドレスカウンタ46、およびビット線アドレスカウンタ45に出力する。   That is, when it is determined that one pixel input in step S3 is a pixel at the access start position, the flag generation unit 43 determines that one pixel input by the match determination unit 42 is a pixel of an access candidate. And the generated flag is output to the bank address counter 44, the word line address counter 46, and the bit line address counter 45.

これに対応して、バンクアドレスカウンタ44は、カウント値をインクリメントし、インクリメントしたカウント値を、アドレス生成部47に出力する。また、ワード線アドレスカウンタ46とビット線アドレスカウンタ45は、カウント値を「0」にリセットし、リセットしたカウント値を、アドレス生成部47に出力する。   In response to this, the bank address counter 44 increments the count value and outputs the incremented count value to the address generation unit 47. The word line address counter 46 and the bit line address counter 45 reset the count value to “0” and output the reset count value to the address generation unit 47.

アドレス生成部47は、バンクアドレスカウンタ44のカウント値、およびワード線アドレスカウンタ46とビット線アドレスカウンタ45のカウント値「0」で示される書き込みアドレスWAを生成するので、ステップS6において、格納制御処理部48は、アドレス生成部47により生成された書き込みアドレスWAで、メモリ31にその画素の画像データを格納する。   Since the address generation unit 47 generates the write address WA indicated by the count value of the bank address counter 44 and the count values “0” of the word line address counter 46 and the bit line address counter 45, the storage control process is performed in step S6. The unit 48 stores the image data of the pixel in the memory 31 with the write address WA generated by the address generation unit 47.

一方、ステップS3において入力された1画素がアクセス開始位置の画素ではないと判定された場合、処理は、ステップS4およびS5をスキップし、ステップS6に進む。   On the other hand, if it is determined in step S3 that one input pixel is not the pixel at the access start position, the process skips steps S4 and S5 and proceeds to step S6.

この場合、アドレス生成部47は、現在のバンクアドレスカウンタ44、ワード線アドレスカウンタ46、およびビット線アドレスカウンタ45のカウント値で示される書き込みアドレスWAを生成するので、ステップS6において、格納制御処理部48は、アドレス生成部47により生成された書き込みアドレスWAで、メモリ31にその画素の画像データを格納する。   In this case, the address generation unit 47 generates the write address WA indicated by the count values of the current bank address counter 44, the word line address counter 46, and the bit line address counter 45. Therefore, in step S6, the storage control processing unit A write address WA generated by the address generation unit 47 stores image data of the pixel in the memory 31.

ステップS7において、カウンタ41は、計数結果を参照して、画像の全データが入力されたか否かを判定する。なお、この判定処理は、実際には、例えば、一致判定部42などで実行するように構成される。   In step S7, the counter 41 refers to the count result and determines whether or not all the image data has been input. Note that this determination processing is actually configured to be executed by, for example, the match determination unit 42 or the like.

ステップS7において、全データがまだ入力されていないと判定された場合、その計数結果をバンクアドレスカウンタ44に出力する。バンクアドレスカウンタ44は、計数結果を受けて、その結果をビット線アドレスカウンタ45に出力する。   If it is determined in step S7 that all data has not yet been input, the count result is output to the bank address counter 44. The bank address counter 44 receives the count result and outputs the result to the bit line address counter 45.

これに対応して、ビット線アドレスカウンタ45は、ステップS8において、カウント値をインクリメントし、ステップS9において、ビット線アドレスカウンタ45のカウント値がビット線長より大きくなったか否かを判定する。なお、この判定処理は、実際には、例えば、アドレス生成部47などで実行するように構成される。   Correspondingly, the bit line address counter 45 increments the count value in step S8, and determines in step S9 whether or not the count value of the bit line address counter 45 has become larger than the bit line length. This determination process is actually configured to be executed by, for example, the address generation unit 47.

ステップS9において、ビット線アドレスカウンタ45のカウント値がビット線長より小さいと判定された場合、処理は、ステップS2に戻り、次の1画素分の画像データについての格納処理が行われる。   If it is determined in step S9 that the count value of the bit line address counter 45 is smaller than the bit line length, the process returns to step S2, and the storage process for the next one pixel of image data is performed.

ステップS9において、ビット線アドレスカウンタ45のカウント値がビット線長よりより大きくなったと判定された場合、ビット線アドレスカウンタ45は、ステップS10において、カウント値を「0」にリセットするとともに、その結果を、ワード線アドレスカウンタ46に出力する。これに対応して、ワード線アドレスカウンタ46は、カウント値をインクリメントしてから、処理は、ステップS2に戻り、次の1画素分の画像データについての格納処理が行われる。   If it is determined in step S9 that the count value of the bit line address counter 45 has become larger than the bit line length, the bit line address counter 45 resets the count value to “0” in step S10 and the result thereof. Is output to the word line address counter 46. Correspondingly, the word line address counter 46 increments the count value, and then the process returns to step S2, and the storage process for the image data for the next one pixel is performed.

ステップS7において、全データが入力されたと判定された場合、初期配置処理は終了される。   If it is determined in step S7 that all data has been input, the initial arrangement process is terminated.

次に、アクセスパターンの画素のアクセスの仕方とデータの再格納について説明する。   Next, how to access the pixels of the access pattern and data re-storage will be described.

このデータ格納装置11では、図12を参照して上述したようにメモリ31上に初期配置した各画素の画像データは、アクセス候補間の画素を同じバンクに格納してあるので、ラスタスキャン順にアクセスパターンが移動しても、ある一定の区間は同時にアクセスできるのであるが図7を参照して上述したように、アクセスパターンの移動がアクセス画素間を超えると、同時に同じバンクの画素にアクセスすることになってしまう。   In this data storage device 11, as described above with reference to FIG. 12, the image data of each pixel initially arranged on the memory 31 stores the pixels between the access candidates in the same bank. Even if the pattern moves, a certain interval can be accessed simultaneously. However, as described above with reference to FIG. 7, when the movement of the access pattern exceeds the access pixels, the pixels in the same bank are accessed simultaneously. Become.

そこで、以下に説明するように、アクセスした画素の画像データの再格納位置を工夫することによって、アクセスパターンの移動に対応できるようにしている。   Therefore, as described below, the movement of the access pattern can be accommodated by devising the re-storage position of the image data of the accessed pixel.

図15は、図12の初期配置時のメモリバンクBK0乃至BK3におけるワード線及びビット線へのアクセスと再格納の方法を模式的に示す図である。   FIG. 15 is a diagram schematically showing a method of accessing and restoring the word lines and bit lines in the memory banks BK0 to BK3 in the initial arrangement of FIG.

図15の例においては、各メモリバンクBK0乃至BK3の先頭に配置されたデータにアクセスされる際の例が示されており、黒い部分は、データが格納されていることを示している。また、横太線がそのバンクにおける最終ワード線を表し、縦太線がそのバンクにおける最終ビット線を表しており、各バンク間に示される矢印は、矢印の終端に格納されているデータを、矢印の始端にも格納することを表している。   In the example of FIG. 15, an example in which data arranged at the head of each of the memory banks BK0 to BK3 is accessed is shown, and the black portion indicates that data is stored. The horizontal thick line represents the last word line in the bank, the vertical thick line represents the last bit line in the bank, and the arrows shown between the banks indicate the data stored at the end of the arrows. It also represents storing at the beginning.

したがって、データ格納装置11においては、図15の矢印に示されるように、各メモリバンクBK0乃至BK3の先頭に配置されたデータにアクセスされる際に、あるバンクアドレスが示すメモリバンクBKから画素の画像データが読み出され、読み出された画像データが、そのバンクアドレス−1のバンクアドレスが示す1つ前のメモリバンクBKの最終書き込みビット線アドレスに1を加算した位置(アドレス)に格納される。   Therefore, in the data storage device 11, when accessing the data arranged at the head of each of the memory banks BK0 to BK3, as shown by the arrows in FIG. 15, the pixel of the memory bank BK indicated by a certain bank address is accessed. Image data is read out, and the read image data is stored at a position (address) obtained by adding 1 to the last write bit line address of the previous memory bank BK indicated by the bank address −1. The

すなわち、図15のメモリバンクBK1の先頭アドレス(最上段の1番左側)に格納された画像データが読み出され、その画像データが、バンクBK0の最終ワード線と、最終ビット線の次(+1)のビット線の位置(最上段の右から4番目)に格納される。また、メモリバンクBK2の先頭アドレス(最上段の1番左側)に格納された画像データが読み出され、その画像データが、メモリバンクBK2の1つ前のバンクBK1の最終ワード線と、最終ビット線の次(+1)のビット線の位置(上から2段目の左から4番目)に格納される。   That is, the image data stored in the top address (the leftmost 1 in the uppermost stage) of the memory bank BK1 in FIG. 15 is read, and the image data is the next (+1) of the last word line and the last bit line of the bank BK0. ) Bit line position (fourth from the right in the top row). Also, the image data stored at the top address (first leftmost) of the memory bank BK2 is read out, and the image data is read from the last word line of the bank BK1 immediately before the memory bank BK2 and the last bit. Stored at the position of the bit line next to the line (+1) (fourth from the left in the second row from the top).

同様に、メモリバンクBK3の先頭アドレス(最上段の1番左側)に格納された画像データが読み出され、その画像データが、メモリバンクBK3の1つ前のメモリバンクBK2の最終ワード線と、最終ビット線の次(+1)のビット線の位置(上から5段目の左から3番目)に格納される。   Similarly, the image data stored in the top address (first leftmost) of the memory bank BK3 is read, and the image data is read from the last word line of the memory bank BK2 immediately before the memory bank BK3, Stored at the position of the bit line next to the last bit line (+1) (third from the left in the fifth row from the top).

これにより、図12および図13のメモリ31上に初期配置された各画素の画像データの対象のバンクアドレスが示すメモリバンクBKから読み出された画素の画像データが、図16および図17に示されるように、そのバンクアドレス−1のバンクアドレスが示すメモリバンクBKの書き込みワード線アドレス、書き込みビット線アドレスに1を加算した位置に格納される。   Accordingly, the pixel image data read from the memory bank BK indicated by the target bank address of the image data of each pixel initially arranged on the memory 31 of FIGS. 12 and 13 is shown in FIGS. 16 and 17. As shown, the bank address of the bank address-1 is stored at a position obtained by adding 1 to the write word line address and write bit line address of the memory bank BK.

図16および図17は、図12および図13の画像データの初期配置における各アクセス候補の画素から読み出された画像データを、そのバンクアドレス−1のバンクアドレスが示すメモリバンクBKに格納した場合の例を示す図である。   16 and 17 show a case where the image data read from each access candidate pixel in the initial arrangement of the image data in FIGS. 12 and 13 is stored in the memory bank BK indicated by the bank address of the bank address-1 It is a figure which shows the example of.

図16および図17の例の場合、図12および図13のアクセス候補P1の画素(すなわち、メモリバンクBK1)から読み出された画像データは、メモリバンクBK0の最終アドレスに+1加算した位置に格納され、アクセス候補P2の画素(すなわち、メモリバンクBK2)から読み出された画像データは、メモリバンクBK1の最終アドレスに+1加算した位置に格納され、アクセス候補P3の画素(すなわち、メモリバンクBK3)から読み出された画像データは、メモリバンクBK2の最終アドレスに+1加算した位置に格納されている。   In the case of the examples of FIGS. 16 and 17, the image data read from the pixel of the access candidate P1 (that is, the memory bank BK1) of FIGS. The image data read from the pixel of the access candidate P2 (ie, the memory bank BK2) is stored at a position obtained by adding +1 to the final address of the memory bank BK1, and the pixel of the access candidate P3 (ie, the memory bank BK3). The image data read from is stored at a position obtained by adding +1 to the final address of the memory bank BK2.

なお、図12および図13におけるアクセス候補P0の画素から読み出された画像データは、図示せぬバンクアドレス−1のバンクアドレスのメモリバンクBKに格納することもできるし、一番後方のメモリバンクBKに格納するようにすることもできる。   Note that the image data read from the pixel of the access candidate P0 in FIGS. 12 and 13 can be stored in the memory bank BK at the bank address -1 (not shown), or the rearmost memory bank. It can also be stored in the BK.

そして、次に、ラスタスキャン順に、1画素サーチエリアSAが移動し、それに応じて、アクセス候補が初期配置から1画素移動し、図18に示されるように、1画素移動したアクセス候補の画素から画像データが読み出される。   Next, the one-pixel search area SA moves in the raster scan order, and accordingly, the access candidate moves one pixel from the initial arrangement, and from the access candidate pixel moved by one pixel, as shown in FIG. Image data is read out.

図18の例においては、サーチエリアSAをラスタスキャン順(図中右側)に、1画素移動した場合のアクセス候補が示されている。   In the example of FIG. 18, access candidates are shown when the search area SA is moved by one pixel in the raster scan order (right side in the figure).

サーチエリアSAが1画素移動したことで、アクセス候補P0は、サーチエリアSRの上から3番目の左から5番目の画素に移動し、アクセス候補P1は、サーチエリアSRの上から3番目の左から12番目の画素に移動し、アクセス候補P2は、サーチエリアSRの上から6番目の右から4番目の画素に移動し、アクセス候補P3は、サーチエリアSRの上から7番目の右から8番目の画素に移動している。   As the search area SA moves by one pixel, the access candidate P0 moves to the fifth pixel from the third left from the top of the search area SR, and the access candidate P1 has the third left from the top of the search area SR. From the top to the search area SR, the access candidate P2 moves from the top right to the fourth pixel from the top right, and the access candidate P3 goes from the top right to the seventh right from the top right of the search area SR. Moved to the second pixel.

また、図18の例の場合においては、図12のアクセス候補P0から、図18のアクセス候補P1の1つ手前の画素までの8画素分のデータが、メモリバンクBK0に格納されている。また、図12のアクセス候補P1から、図18のアクセス候補P2の1つ手前の画素までの233画素分のデータがメモリバンクBK1に格納されている。図12のアクセス候補P2から、図18のアクセス候補P3の1つ手前の画素までの85画素分のデータがメモリバンクBK2に格納されており、図12のアクセス候補P3から以降すべての画素(2714画素)分のデータがメモリバンクBK3に格納されている。   In the case of the example in FIG. 18, data for 8 pixels from the access candidate P0 in FIG. 12 to the pixel immediately before the access candidate P1 in FIG. 18 is stored in the memory bank BK0. Further, data for 233 pixels from the access candidate P1 of FIG. 12 to the pixel immediately before the access candidate P2 of FIG. 18 is stored in the memory bank BK1. Data for 85 pixels from the access candidate P2 in FIG. 12 to the pixel immediately before the access candidate P3 in FIG. 18 is stored in the memory bank BK2, and all the pixels (2714) from the access candidate P3 in FIG. Data) is stored in the memory bank BK3.

したがって、図18に示されるように、サーチエリアSAをラスタスキャン順に、1画素移動した場合においても、アクセス候補P0の画素の画像データが、メモリバンクBK0から読み出され、アクセス候補P1の画素の画像データが、メモリバンクBK1から読み出され、アクセス候補P2の画素の画像データが、メモリバンクBK2から読み出され、アクセス候補P3の画素の画像データが、メモリバンクBK3から読み出される。   Therefore, as shown in FIG. 18, even when the search area SA is moved by one pixel in the raster scan order, the image data of the pixel of the access candidate P0 is read from the memory bank BK0 and the pixel of the access candidate P1 is read. The image data is read from the memory bank BK1, the image data of the pixel of the access candidate P2 is read from the memory bank BK2, and the image data of the pixel of the access candidate P3 is read from the memory bank BK3.

そして、図19および図20の例においては、図16および図17と場合と同様に、メモリバンクBK1から読み出されたアクセス候補P1の画素の画像データは、メモリバンクBK0の最終アドレスに1加算した位置に格納され、メモリバンクBK2から読み出されたアクセス候補P2の画素の画像データは、メモリバンクBK1の最終アドレスに1加算した位置に格納され、メモリバンクBK3から読み出されたアクセス候補P3の画素の画像データは、メモリバンクBK2の最終アドレスに1加算した位置に格納される。   In the example of FIGS. 19 and 20, similarly to FIGS. 16 and 17, the image data of the pixel of the access candidate P1 read from the memory bank BK1 is incremented by 1 to the final address of the memory bank BK0. The image data of the pixel of the access candidate P2 stored at the read position and read from the memory bank BK2 is stored at the position obtained by adding 1 to the final address of the memory bank BK1, and the access candidate P3 read from the memory bank BK3. Is stored at a position obtained by adding 1 to the last address of the memory bank BK2.

このように、サーチエリアSAが移動するにつれて、各メモリバンクから読み出すことには変わりないが、アクセス候補であった画素(すなわち、アクセス候補のラスタスキャン順に1つ手前の画素)が存在する次のメモリバンクは次々と入れ替わっていくようになることにより、アクセスパターンAPがラスタスキャン順に移動しても同時アクセスを実現することができる。   As described above, as the search area SA moves, reading from each memory bank is not changed, but the next pixel that is an access candidate (that is, one pixel before the access candidate in the raster scan order) exists. By changing the memory bank one after another, simultaneous access can be realized even if the access pattern AP moves in the raster scan order.

具体的には、データ格納装置11におけるデータ読み出し格納制御部33は、ビット線アドレスカウンタ51−0乃至51−3またはワード線アドレスカウンタ52−0乃至52−3のカウント値をインクリメントしながら、そのワード線アドレスおよびビット線アドレス上の画素をメモリバンク数だけ読み出せば、所望の画素が読み出すことができる。なお、用意されているワード線アドレス、ビット線アドレスが終了すれば、それぞれのカウント値は0に戻される。   Specifically, the data read / storage control unit 33 in the data storage device 11 increments the count value of the bit line address counters 51-0 to 51-3 or the word line address counters 52-0 to 52-3, If the pixels on the word line address and the bit line address are read by the number of memory banks, a desired pixel can be read. When the prepared word line address and bit line address are completed, the respective count values are returned to zero.

なお、メモリバンク番号が最初の場合は最後のメモリバンクに書き込む。あるいは後段の処理に必要であれば後段の処理の際に使用するメモリに書き込む。いずれにせよ、この画素はこの処理においては今後必要とされない。   If the memory bank number is the first, it is written to the last memory bank. Alternatively, if necessary for the subsequent process, the data is written in a memory used for the subsequent process. In any case, this pixel is no longer needed in this process.

次に、図21のフローチャートを参照して、データ読み出し格納制御部33のデータ再格納制御処理を説明する。   Next, the data re-storing control process of the data reading / storing control unit 33 will be described with reference to the flowchart of FIG.

データ読み出し格納制御部33は、ステップS21において、読み出しビット線アドレスカウンタ51、および読み出しワード線アドレスカウンタ52の値を全て「0」に、初期設定を行う。   In step S <b> 21, the data read / store control unit 33 initializes all the values of the read bit line address counter 51 and the read word line address counter 52 to “0”.

読み出し制御部57は、ステップS22において、各メモリバンクの現在の読み出しビット線アドレスカウンタ51および読み出しワード線アドレスカウンタ52のカウント値で示される読み出しアドレスRAで、メモリ31から、アクセスパターンAPを構成するアクセス候補の画素分の画像データを読み出し、それぞれ読み出されたメモリバンクの1つ前のバンクアドレスの書き込み制御処理部58に出力する。   In step S22, the read control unit 57 configures an access pattern AP from the memory 31 with the read address RA indicated by the count values of the current read bit line address counter 51 and the read word line address counter 52 of each memory bank. The image data for the access candidate pixels is read and output to the write control processing unit 58 for the bank address immediately preceding the read memory bank.

すなわち、読み出しアドレス生成部55が読み出しビット線アドレスカウンタ51および読み出しワード線アドレスカウンタ52のカウント値に応じて、読み出しアドレスRAを生成し、読み出し制御部57に出力する。これに対応して、読み出し制御部57は、読み出しアドレス生成部55からの読み出しアドレスRAで、メモリ31から、アクセスパターンAPを構成するアクセス候補の画素分の画像データを読み出す。   That is, the read address generation unit 55 generates a read address RA according to the count values of the read bit line address counter 51 and the read word line address counter 52 and outputs the read address RA to the read control unit 57. In response to this, the read control unit 57 reads image data for the access candidate pixels constituting the access pattern AP from the memory 31 by using the read address RA from the read address generation unit 55.

書き込みアドレス生成部56は、ステップS23において、各メモリバンクのバンクアドレスの書き込みワード線アドレスと書き込みビット線アドレスを、例えばメモリ31から読み出して、書き込みアドレスWAを生成し、書き込み制御処理部58に供給する。   In step S 23, the write address generation unit 56 reads the write word line address and the write bit line address of the bank address of each memory bank, for example, from the memory 31, generates the write address WA, and supplies the write address WA to the write control processing unit 58. To do.

書き込み制御処理部58は、ステップS24において、メモリバンクの1つ後のバンクアドレスから読み出された画素の画像データを、書き込みアドレスWAに基づいて、対応するメモリバンクのバンクアドレスの書き込みワード線アドレスと書き込みビット線アドレスに格納するとともに、書き込みワード線アドレスと書き込みビット線アドレスを格納する。   In step S24, the write control processing unit 58 uses the write word line address of the bank address of the corresponding memory bank based on the write address WA as the pixel image data read from the bank address immediately after the memory bank. And the write word line address and the write bit line address.

ステップS25において、読み出し制御処理部57は、読み出された画素数に基づき1画面全てをスキャンしたか否かを判定し、まだ1画面全てをスキャンしていないと判定した場合、処理は、ステップS26に進み、アドレス計算処理を実行する。このアドレス計算処理は、図22のフローチャートを参照して後述する。   In step S25, the read control processing unit 57 determines whether or not all one screen has been scanned based on the number of read pixels, and if it is determined that all one screen has not been scanned yet, the process proceeds to step S25. Proceeding to S26, address calculation processing is executed. This address calculation process will be described later with reference to the flowchart of FIG.

ステップS26のアドレス計算処理により、各メモリバンクから次に読み出す際に必要となるバンクアドレスの読み出しワード線アドレスとビット線アドレスおよび各メモリバンクに書き込む際に必要となるバンクアドレスの書き込みワード線アドレスとビット線アドレスが計算され、例えばメモリ31に格納されるので、処理は、ステップS22に戻り、それ以降の処理が繰り返される。   By the address calculation processing in step S26, the read word line address and bit line address of the bank address required for the next read from each memory bank, and the write word line address of the bank address required for writing to each memory bank Since the bit line address is calculated and stored in the memory 31, for example, the process returns to step S22, and the subsequent processes are repeated.

一方、ステップS25において、読み出された画素数に基づき1画面全てをスキャンしたと判定された場合、データ再格納制御処理は終了される。   On the other hand, if it is determined in step S25 that the entire screen has been scanned based on the number of read pixels, the data re-storing control process is terminated.

次に、図22のフローチャートを参照して、図21のステップS26におけるアドレス計算処理を詳しく説明する。   Next, the address calculation process in step S26 of FIG. 21 will be described in detail with reference to the flowchart of FIG.

図21のステップS24において、書き込みビット線アドレスカウンタ53は、メモリバンクの最後に書き込まれた書き込みビット線アドレスWAを入力し、ステップS31において、カウント値をインクリメントする。   In step S24 of FIG. 21, the write bit line address counter 53 receives the write bit line address WA written at the end of the memory bank, and increments the count value in step S31.

ステップS32において、書き込みビット線アドレスカウンタ53は、そのカウント値がビット線長より大きくなったか否かを判定する。   In step S32, the write bit line address counter 53 determines whether or not the count value has become larger than the bit line length.

ステップS32において、カウント値がビット線長より大きくなったと判定された場合、書き込みビット線アドレスカウンタ53は、値を「0」にリセットし、その結果を、書き込みワード線アドレスカウンタ54に出力するので、ステップS33において、書き込みワード線アドレスカウンタ54は、カウント値をインクリメントする。これにより、図21のステップS24で対象のメモリバンクの最後に書き込まれた書き込みワード線アドレスがインクリメントされる。   If it is determined in step S32 that the count value has become larger than the bit line length, the write bit line address counter 53 resets the value to “0” and outputs the result to the write word line address counter 54. In step S33, the write word line address counter 54 increments the count value. As a result, the write word line address written at the end of the target memory bank in step S24 of FIG. 21 is incremented.

ステップS34において、書き込みワード線アドレスカウンタ54は、そのカウンタ値がワード線長より大きくなったか否かを判定する。   In step S34, the write word line address counter 54 determines whether or not the counter value is larger than the word line length.

なお、ステップS32およびS34の判定処理は、実際には、例えば、書き込みアドレス生成部56が実行するように構成される。   Note that the determination processing in steps S32 and S34 is actually configured to be executed by the write address generation unit 56, for example.

ステップS34において、書き込みワード線アドレスカウンタ54の値がワード線長より大きくなったと判定された場合、書き込みビット線アドレスカウンタ53は、カウント値を「0」にリセットする。そして、処理は、図21のステップS26に戻り、ステップS22に進み、それ以降の処理が繰り返される。   If it is determined in step S34 that the value of the write word line address counter 54 has become larger than the word line length, the write bit line address counter 53 resets the count value to “0”. Then, the process returns to step S26 in FIG. 21, proceeds to step S22, and the subsequent processes are repeated.

一方、ステップS34において、書き込みビット線アドレスカウンタ53の値がビット線長よりまだ小さいと判定された場合、または、書き込みワード線アドレスカウンタ54の値がワード線長よりまだ小さいと判定された場合、処理は、図21のステップS26に戻り、ステップS22に進み、それ以降の処理が繰り返される。   On the other hand, if it is determined in step S34 that the value of the write bit line address counter 53 is still smaller than the bit line length, or if the value of the write word line address counter 54 is still smaller than the word line length, The process returns to step S26 in FIG. 21 and proceeds to step S22, and the subsequent processes are repeated.

なお、図21のステップS26における読み出し用のワード線アドレスとビット線アドレスの計算も、同様に行われる。その際、書き込み用のアドレス計算で用いられた書き込みビット線アドレスカウンタ53(53−0乃至53−3)、書き込みワード線アドレスカウンタ54(54−0乃至54−3)は、それぞれ読み出しビット線アドレスカウンタ51、読み出しワード線アドレスカウンタ52と読み替えるものとする。   The calculation of the read word line address and bit line address in step S26 of FIG. 21 is performed in the same manner. At this time, the write bit line address counter 53 (53-0 to 53-3) and the write word line address counter 54 (54-0 to 54-3) used in the write address calculation respectively read the read bit line address. It will be read as a counter 51 and a read word line address counter 52.

また、書き込み用のアドレス計算では、ステップS31において、図21のステップS24で各メモリバンクに最後に書き込まれた書き込みビット線アドレス、ステップS31において、図21のステップS23で読み出した各メモリバンクに最後に書き込まれた書き込みワード線アドレスが用いられたが、読み出し用のアドレス計算では、ステップS31において、ステップS22で各メモリバンクから最後に読み出した読み出しビット線アドレス、ステップS33において、ステップS22で各メモリバンクから最後に読み出した読み出しワード線アドレスが用いられるものと読み替える。   Further, in the address calculation for writing, in step S31, the write bit line address last written in each memory bank in step S24 of FIG. 21, and in step S31, the last read in each memory bank in step S23 of FIG. The write word line address written in is used, but in the read address calculation, in step S31, the last read bit line address read from each memory bank in step S22, and in step S33, each memory in step S22. The read word line address read last from the bank is used.

なお、上記説明においては、アクセスパターンのアクセス候補間の領域をラスタ方向にスキャンした場合に、メモリバンクBK3のデータはメモリバンクBK2に書き込み、メモリバンクBK2のデータはメモリバンクBK1に書き込み、メモリバンクBK1のデータはメモリバンクBK0に書き込むようになっているが、このメモリバンクアドレスはこれに限られるものでなく、メモリバンクBK3のデータをメモリバンクBK0に、メモリバンクBK0のデータをメモリバンクBK2に、メモリバンクBK2のデータをメモリバンクBK1に書き込むようなあるパターンに従って読み込み・書き込みを行う構造としてもよい。   In the above description, when the area between the access candidates of the access pattern is scanned in the raster direction, the data in the memory bank BK3 is written in the memory bank BK2, the data in the memory bank BK2 is written in the memory bank BK1, and the memory bank The data of BK1 is written to the memory bank BK0, but this memory bank address is not limited to this, the data of the memory bank BK3 is stored in the memory bank BK0, and the data of the memory bank BK0 is stored in the memory bank BK2. A structure may be adopted in which data is read / written according to a certain pattern in which data in the memory bank BK2 is written into the memory bank BK1.

またスキャンする方向もラスタスキャン方向に限られるものではなく、ラスタスキャン方向と逆、縦方向、斜め方向等であっても構わない。   Further, the scanning direction is not limited to the raster scanning direction, and may be opposite to the raster scanning direction, the vertical direction, the oblique direction, or the like.

また、上記説明においては、データ読出し格納処理部が、ワード線アドレスとビット線アドレスをインクリメントしながら、そのワード線アドレス、ビット線アドレス上の画素のデータをバンク数だけ読み出したが、本発明はこれに限られるものではなく、あるパターンにしたがって読み出すのであればよい。したがってワード線アドレス、ビット線アドレスをデクリメント、また予め決めた所定のパターンに基づきワード線アドレス、ビット線アドレスの画素を読み出してもよい。   In the above description, the data read storage processing unit reads the pixel data on the word line address and the bit line address by the number of banks while incrementing the word line address and the bit line address. However, the present invention is not limited to this, and it is sufficient if reading is performed according to a certain pattern. Therefore, the word line address and bit line address may be decremented, and the pixels of the word line address and bit line address may be read based on a predetermined pattern.

さらに、上記説明においては、読み出した画素データは、一つ前のメモリバンクの既に書き込まれている領域の後ろに格納されていたが、その代わりに一つ前のメモリバンクの既に読み出されている領域に上書きしていってもよい。つまり一つ前のメモリバンクの先頭から上書きしていってもよい。その際は、書き込まれている領域の後ろに格納していたときと同様に、上書きしたアドレスに続くアドレスに順に上書きしていく必要がある。また、書き込むのは一つ前のメモリバンクには限られない。   Furthermore, in the above description, the read pixel data is stored behind the already written area of the previous memory bank. Instead, the read pixel data is already read from the previous memory bank. May be overwritten on the existing area. In other words, it may be overwritten from the beginning of the previous memory bank. In this case, it is necessary to sequentially overwrite the address following the overwritten address in the same manner as when the data is stored behind the written area. Further, writing is not limited to the previous memory bank.

すなわち、上述の如くメモリ31上に初期配置した各画素の画像データから、図18を参照して説明したように、あるバンクアドレスが示すメモリバンクから画素の画像データを読み出し、図19および図20を参照して上述したように、そのバンクアドレス−1のバンクアドレスが示すバンクアドレスの書き込みワード線アドレス、書き込みビット線アドレスに格納する。   That is, as described above with reference to FIG. 18, the pixel image data is read from the memory bank indicated by a certain bank address from the image data of each pixel initially arranged on the memory 31 as described above. As described above with reference to FIG. 4, the data is stored in the write word line address and write bit line address of the bank address indicated by the bank address −1.

この場合も、サーチエリアが移動するにつれて、各メモリバンクから読み出すことには変わりないが、アクセスされた画素が書き込まれるメモリバンクは次々と入れ替わっていくようになることにより、パターンがラスタスキャン順に移動しても同時アクセスを実現することができる。   Also in this case, as the search area moves, reading from each memory bank does not change, but the memory banks to which accessed pixels are written are changed one after another, so that the pattern moves in the raster scan order. Even at the same time, simultaneous access can be realized.

ところで、上記説明においては、メモリ31には、アクセス画素分(必要最低限)のメモリバンク数を用意することで、画像をある一定のアクセスパターンで複数同時にアクセスすることを可能であることを説明したが、画像サイズとサーチエリアSRのサイズによっては、必要メモリ量が大きくなってしまう場合がある。これは、図23乃至図26に示すワーストケースを想定したメモリ量を準備する必要があるからである。   By the way, in the above description, it is explained that a plurality of images can be simultaneously accessed with a certain access pattern by preparing the memory 31 with the number of memory banks corresponding to the access pixels (minimum necessary). However, depending on the image size and the size of the search area SR, the required memory amount may increase. This is because it is necessary to prepare a memory amount assuming the worst case shown in FIGS.

図23乃至図26は、画像サイズが、縦40画素、横80画素で、サーチエリアSRが縦8画素、横16画素で、アクセス候補数が4つ(アクセス候補P0乃至P3)の場合のアクセスパターンの例を示す図である。この場合、アクセス候補P0の画素からアクセス候補P1の手前までの画素のデータは、メモリバンクBK0に格納され、アクセス候補P1の画素からアクセス候補P2の手前までの画素のデータは、メモリバンクBK1に格納され、アクセス候補P2の画素からアクセス候補P3の手前までの画素のデータは、メモリバンクBK2に格納され、アクセス候補P3の画素から残りすべての画素のデータは、メモリバンクBK3に格納される。   23 to 26, the access is performed when the image size is 40 pixels vertically and 80 pixels horizontally, the search area SR is 8 pixels vertically and 16 pixels horizontally, and the number of access candidates is 4 (access candidates P0 to P3). It is a figure which shows the example of a pattern. In this case, the pixel data from the access candidate P0 pixel to the access candidate P1 is stored in the memory bank BK0, and the pixel data from the access candidate P1 pixel to the access candidate P2 is stored in the memory bank BK1. The stored pixel data from the pixel of the access candidate P2 to the front of the access candidate P3 is stored in the memory bank BK2, and the data of all the remaining pixels from the pixel of the access candidate P3 is stored in the memory bank BK3.

図23の例においては、メモリバンクBK0の必要メモリ量がワーストケース(すなわち、最大)となる場合のアクセスパターンが示されている。すなわち、このアクセスパターンAP0は、サーチエリアSRの上から1番目の左から1番目(ラスタスキャン順に1番目)の画素に設定されたアクセス候補P0、サーチエリアSRの上から8番目の右から3番目(ラスタスキャン順に最後から3番目)の画素に設定されたアクセス候補P1、サーチエリアSRの上から8番目の右から2番目(ラスタスキャン順に最後から2番目)の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目(ラスタスキャン順に最後尾)の画素に設定されたアクセス候補P3で構成されている。   In the example of FIG. 23, an access pattern in the case where the required memory amount of the memory bank BK0 is the worst case (ie, maximum) is shown. That is, the access pattern AP0 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR (the first pixel in the raster scan order), and the third from the right from the top of the search area SR. Access candidate P1 set for the th (third from the last in the raster scan order) pixel, access candidate set for the eighth pixel from the top right in the search area SR (second from the last in the raster scan order) P2 is composed of the access candidate P3 set in the eighth pixel from the top right in the search area SR and the first pixel from the right (the last pixel in the raster scan order).

したがって、図23の例の場合、メモリバンクBK0には、アクセス候補P0の画素から、アクセス候補P1の1つ手前の画素までの573(=80×(8−1)+16−3)画素のデータが格納され、メモリバンクBK1には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK2には、アクセス候補P2の1画素のデータが格納され、メモリバンクBK3には、アクセス候補P3の画素から残りすべての画素である2625(=80×40−80×7−16+1)画素が格納されている。   Therefore, in the example of FIG. 23, the memory bank BK0 includes data of 573 (= 80 × (8-1) + 16-3) pixels from the pixel of the access candidate P0 to the pixel immediately before the access candidate P1. Is stored in the memory bank BK1, the data of one pixel of the access candidate P1 is stored in the memory bank BK2, the data of one pixel of the access candidate P2 is stored in the memory bank BK2, and the access candidate P3 is stored in the memory bank BK3. 2625 (= 80 × 40−80 × 7−16 + 1) pixels that are all remaining pixels from the pixel are stored.

図24の例においては、メモリバンクBK1の必要メモリ量がワーストケースとなる場合のアクセスパターンが示されている。すなわち、このアクセスパターンAP1は、サーチエリアSRの上から1番目の左から1番目(ラスタスキャン順に1番目)の画素に設定されたアクセス候補P0、サーチエリアSRの上から1番目の左から2番目(ラスタスキャン順に2番目)の画素に設定されたアクセス候補P1、サーチエリアSRの上から8番目の右から2番目(ラスタスキャン順に最後から2番目)の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目(ラスタスキャン順に最後尾)の画素に設定されたアクセス候補P3で構成されている。   In the example of FIG. 24, an access pattern in the case where the required memory amount of the memory bank BK1 is the worst case is shown. In other words, the access pattern AP1 includes the access candidate P0 set to the first pixel from the first left from the top of the search area SR (the first pixel in the raster scan order) and the first two from the left from the top of the search area SR. Access candidate P1 set for the second (second in raster scan order) pixel, access candidate P2 set for the eighth pixel from the top right in search area SR (second last from raster scan order), The search area SR is composed of access candidates P3 set to the eighth pixel from the top right (the last pixel in the raster scan order).

したがって、図24の例の場合、メモリバンクBK0には、アクセス候補P0の1画素のデータが格納され、メモリバンクBK1には、アクセス候補P1の画素から、アクセス候補P2の1つ手前の画素までの573(=80×(8−2)+(80−1)+16−2)画素のデータが格納され、メモリバンクBK2には、アクセス候補P2の1画素のデータが格納され、メモリバンクBK3には、アクセス候補P3の画素から残りすべての画素である2625画素が格納されている。   Therefore, in the example of FIG. 24, data of one pixel of the access candidate P0 is stored in the memory bank BK0, and from the pixel of the access candidate P1 to the pixel immediately before the access candidate P2 in the memory bank BK1. 573 (= 80 × (8−2) + (80−1) + 16−2) pixel data is stored, one pixel data of the access candidate P2 is stored in the memory bank BK2, and the memory bank BK3 is stored. Stores 2625 pixels which are all remaining pixels from the pixel of the access candidate P3.

図25の例においては、メモリバンクBK2の必要メモリ量がワーストケースとなる場合のアクセスパターンが示されている。すなわち、このアクセスパターンAP2は、サーチエリアSRの上から1番目の左から1番目(ラスタスキャン順に1番目)の画素に設定されたアクセス候補P0、サーチエリアSRの上から1番目の左から2番目(ラスタスキャン順に2番目)の画素に設定されたアクセス候補P1、サーチエリアSRの上から1番目の左から3番目(ラスタスキャン順に3番目)の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目(ラスタスキャン順に最後尾)の画素に設定されたアクセス候補P3で構成されている。   In the example of FIG. 25, an access pattern in the case where the required memory amount of the memory bank BK2 is the worst case is shown. In other words, the access pattern AP2 includes the access candidate P0 set to the first pixel from the top left (first in the raster scan order) from the top of the search area SR, and the top left from the top left of the search area SR. Access candidate P1 set for the second (second in raster scan order) pixel, access candidate P2 set for the third pixel from the left (third in raster scan order) from the top of the search area SR, search area The access candidate P3 is set to the eighth pixel from the top right of SR and the first pixel from the right (last in the raster scan order).

したがって、図25の例の場合、メモリバンクBK0には、アクセス候補P0の1画素のデータが格納され、メモリバンクBK1には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK2には、アクセス候補P2の画素から、アクセス候補P3の1つ手前の画素までの573(=80×(8−2)+(80−2)+16−1)画素のデータが格納され、メモリバンクBK3には、アクセス候補P3の画素から残りすべての画素である2625画素のデータが格納されている。   Therefore, in the example of FIG. 25, the data of one pixel of the access candidate P0 is stored in the memory bank BK0, the data of one pixel of the access candidate P1 is stored in the memory bank BK1, and the memory bank BK2 is stored in the memory bank BK2. , 573 (= 80 × (8−2) + (80−2) + 16−1) pixel data from the pixel of the access candidate P2 to the pixel immediately before the access candidate P3 is stored in the memory bank BK3. Stores data of 2625 pixels, which are all remaining pixels from the pixel of the access candidate P3.

図26の例においては、メモリバンクBK3の必要メモリ量がワーストケースの場合のアクセスパターンが示されている。すなわち、このアクセスパターンAP3は、サーチエリアSRの上から1番目の左から1番目(ラスタスキャン順に1番目)の画素に設定されたアクセス候補P0、サーチエリアSRの上から1番目の左から2番目(ラスタスキャン順に2番目)の画素に設定されたアクセス候補P1、サーチエリアSRの上から1番目の左から3番目(ラスタスキャン順に3番目)の画素に設定されたアクセス候補P2、サーチエリアSRの上から1番目の左から4番目(ラスタスキャン順に4番目)の画素に設定されたアクセス候補P3で構成されている。   In the example of FIG. 26, an access pattern in the case where the required memory amount of the memory bank BK3 is the worst case is shown. In other words, the access pattern AP3 includes the access candidate P0 set to the first pixel from the first left from the top of the search area SR (first in the raster scan order), and the first two from the left from the top of the search area SR. Access candidate P1 set for the second (second in raster scan order) pixel, access candidate P2 set for the third pixel from the left (third in raster scan order) from the top of the search area SR, search area The access candidate P3 is set to the fourth pixel from the left from the top of the SR (fourth in the raster scan order).

したがって、図26の例の場合、メモリバンクBK0には、アクセス候補P0の1画素のデータが格納され、メモリバンクBK1には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK2には、アクセス候補P2の1画素のデータが格納され、メモリバンクBK3には、アクセス候補P3の画素から残りすべての画素である3197画素(=80×40−3)のデータが格納されている。   Therefore, in the example of FIG. 26, the data of one pixel of the access candidate P0 is stored in the memory bank BK0, the data of one pixel of the access candidate P1 is stored in the memory bank BK1, and the memory bank BK2 is stored in the memory bank BK2. The data of one pixel of the access candidate P2 is stored, and the memory bank BK3 stores data of 3197 pixels (= 80 × 40−3) which are all remaining pixels from the pixel of the access candidate P3.

以上より、各メモリバンクBK0乃至BK3の必要メモリ量のワーストケースすべてを考慮すると、全体として、4916(=573×3+3197×1)画素のデータが格納されることが必要である。したがって、画像サイズ縦40画素、横80画素をメモリ量1枚とした場合に、4916/(80×40)=略1.54枚分のメモリ量が必要となる。   From the above, considering all the worst cases of the required memory amounts of the memory banks BK0 to BK3, it is necessary to store data of 4916 (= 573 × 3 + 3197 × 1) pixels as a whole. Accordingly, when the image size is 40 pixels in the vertical direction and 80 pixels in the horizontal direction, the memory amount is 4916 / (80 × 40) = approximately 1.54 sheets.

これは、必要最低限のメモリバンク数で構成することで、アクセスパターンにおけるアクセス候補間が離れていることが原因であり、画像サイズとサーチエリアサイズにもよるが、メモリ量の制限が厳しい条件下では、実現が困難な場合がある。そこで、以下においては、必要最低限のメモリバンク数以上のメモリバンク数でメモリを構成する例を説明する。   This is due to the fact that access candidates in the access pattern are separated by configuring with the minimum number of memory banks, and depending on the image size and search area size, there are severe restrictions on the amount of memory. Below, it may be difficult to achieve. Therefore, in the following, an example will be described in which the memory is configured with the number of memory banks equal to or greater than the minimum number of memory banks.

図27は、本発明を適用したデータ格納装置の構成例を表している。   FIG. 27 shows a configuration example of a data storage device to which the present invention is applied.

図27のデータ格納装置111は、入力端子21a乃至21c、出力端子21b、メモリ31、およびデータ読み出し格納制御部33を備える点が、図8のデータ格納装置11と共通するが、データ格納制御部32がデータ格納制御部121に入れ替わった点、セレクタ設定部122およびセレクタ123が追加された点が、図8のデータ格納装置11と異なる。   The data storage device 111 of FIG. 27 is common to the data storage device 11 of FIG. 8 in that it includes input terminals 21a to 21c, an output terminal 21b, a memory 31, and a data read / store control unit 33. 8 differs from the data storage device 11 of FIG. 8 in that 32 is replaced with the data storage control unit 121 and a selector setting unit 122 and a selector 123 are added.

図27の例のメモリ31は、後述する図35の設計装置201により予め設計された数のメモリバンク(例えば、8個のメモリバンクBK0乃至BK7)で構成されている。   The memory 31 in the example of FIG. 27 includes a number of memory banks (for example, eight memory banks BK0 to BK7) designed in advance by the design device 201 of FIG.

データ格納制御部121は、入力端子21cからのアクセスパターンAPだけでなく、後述する図35の設計装置201により予め設計された1メモリバンク当たりの最大格納画素数にも基づいて、入力端子21aから入力されるデータDAをメモリ31に配置(格納)する初期配置処理を行う。   The data storage control unit 121 uses not only the access pattern AP from the input terminal 21c but also the input terminal 21a based on the maximum number of stored pixels per memory bank designed in advance by the design device 201 in FIG. Initial arrangement processing for arranging (storing) input data DA in the memory 31 is performed.

すなわち、データ格納制御部121は、入力端子21aから入力された画素が、入力端子21cからのアクセスパターンAPを構成するアクセス候補であるか否かを判定し、アクセス候補ではないと判定された場合、現在格納対象のメモリバンクBKに格納されている画素が、最大格納画素数を超えたか否かを判定する。   That is, when the data storage control unit 121 determines whether the pixel input from the input terminal 21a is an access candidate constituting the access pattern AP from the input terminal 21c, and determines that the pixel is not an access candidate Then, it is determined whether or not the number of pixels currently stored in the memory bank BK to be stored exceeds the maximum number of stored pixels.

そして、入力された画素がアクセス候補であると判定された場合、あるいは、現在格納対象のメモリバンクBKに格納されている画素が、最大格納画素数を超えたと判定された場合、データ格納制御部121は、格納対象のメモリバンクBKを、次のメモリバンクBKに変更し、そのメモリバンクBKに、対象となる画素のデータを格納させる。また、データ格納制御部121は、入力された画素がアクセス候補であると判定された場合のみ、変更されたメモリバンクBKからのデータが選択されるようにセレクタ設定部122を制御する。   When it is determined that the input pixel is an access candidate, or when it is determined that the pixel currently stored in the memory bank BK to be stored exceeds the maximum storage pixel number, the data storage control unit 121 changes the memory bank BK to be stored to the next memory bank BK, and stores the data of the target pixel in the memory bank BK. Further, the data storage control unit 121 controls the selector setting unit 122 so that the data from the changed memory bank BK is selected only when it is determined that the input pixel is an access candidate.

なお、入力された画素がアクセス候補ではなく、現在格納対象のメモリバンクBKに格納されている画素が、まだ最大格納画素数を超えていないと判定された場合、データ格納制御部121は、その画素のデータを、現在格納対象のメモリバンクBKに格納させる。   If it is determined that the input pixel is not an access candidate and the pixel currently stored in the memory bank BK to be stored does not exceed the maximum storage pixel number, the data storage control unit 121 The pixel data is stored in the memory bank BK that is currently stored.

セレクタ設定部122は、データ格納制御部121の制御のもと、メモリ31の複数のメモリバンクBKのうち、アクセス候補のデータが格納されているメモリバンクBKがセレクタ123により選択されるように設定する。   The selector setting unit 122 is set so that, under the control of the data storage control unit 121, the memory bank BK storing access candidate data among the plurality of memory banks BK of the memory 31 is selected by the selector 123. To do.

セレクタ123は、メモリ31の複数のメモリバンクBKのうち、アクセス候補のデータが格納されているメモリバンクBKからのデータを選択して読み出し、読み出したデータを、出力端子22から出力させる。   The selector 123 selects and reads data from the memory bank BK storing access candidate data among the plurality of memory banks BK of the memory 31 and outputs the read data from the output terminal 22.

なお、図27のデータ読み出し格納制御部33は、メモリ31のメモリバンク数に対応する数のデータ読み出し格納制御部33で構成される点が、図10を参照して上述したデータ読み出し格納制御部33が4つのメモリバンクBKに対応するデータ読み出し格納制御部33−1乃至33−4で構成される点と異なるだけであり、基本的な構成は同じであるので、その説明は省略する。   27 is configured by the number of data read / store control units 33 corresponding to the number of memory banks of the memory 31, the data read / store control unit described above with reference to FIG. 10. 33 is different from the data read / storage control units 33-1 to 33-4 corresponding to the four memory banks BK, and the basic configuration is the same, and the description thereof is omitted.

図28は、図27のデータ格納制御部121の構成例を示す図である。   FIG. 28 is a diagram illustrating a configuration example of the data storage control unit 121 of FIG.

図28のデータ格納制御部121は、カウンタ41、一致判定部42、フラグ生成部43、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、ワード線アドレスカウンタ46、および格納制御処理部48を備えた点が図9のデータ格納制御部32と共通しているが、アドレス生成部47がアドレス生成部142に入れ替わった点、および画素数判定部141が追加された点が、図9のデータ格納制御部32と異なる。   The data storage control unit 121 of FIG. 28 includes a counter 41, a match determination unit 42, a flag generation unit 43, a bank address counter 44, a bit line address counter 45, a word line address counter 46, and a storage control processing unit 48. 9 is common to the data storage control unit 32 of FIG. 9, but the point that the address generation unit 47 is replaced with the address generation unit 142 and the point that the pixel number determination unit 141 is added are the data storage control unit of FIG. 32.

図28の一致判定部42の判定結果は、画素数判定部141にも出力される。   The determination result of the coincidence determination unit 42 in FIG. 28 is also output to the pixel number determination unit 141.

画素数判定部141は、図35の設計装置201により予め設計された1メモリバンク当たりの最大格納画素数を記憶しており、一致判定部42からの判定結果が不一致である場合、ビット線アドレスカウンタ45とワード線アドレスカウンタ46のカウント値に基づいて、メモリバンクBKに格納される画素数が最大格納画素数を超えたか否かを判定し、その判定結果を、フラグ生成部43に出力する。なお、図示は省略するが、この判定結果は、アドレス生成部142にも出力される。   The pixel number determination unit 141 stores the maximum number of pixels stored per memory bank designed in advance by the design device 201 of FIG. 35, and when the determination result from the match determination unit 42 is inconsistent, the bit line address Based on the count values of the counter 45 and the word line address counter 46, it is determined whether or not the number of pixels stored in the memory bank BK exceeds the maximum number of stored pixels, and the determination result is output to the flag generation unit 43. . Although not shown, this determination result is also output to the address generation unit 142.

図28のフラグ生成部43は、一致判定部42からの判定結果だけでなく、画素数判定部141の判定結果に応じても、フラグを生成し、生成したフラグを、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、およびワード線アドレスカウンタ46に出力する。   The flag generation unit 43 in FIG. 28 generates a flag not only according to the determination result from the coincidence determination unit 42 but also according to the determination result from the pixel number determination unit 141, and the generated flag is stored in the bank address counter 44, bit The data is output to the line address counter 45 and the word line address counter 46.

アドレス生成部141は、一致判定部42からの判定結果が一致を示す場合、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、およびワード線アドレスカウンタ46が示すカウント値に基づいて、書き込みアドレスWAを生成し、格納制御処理部48に出力する。なお、このとき、アドレス生成部141は、バンクアドレスカウンタ44が示すカウント値(すなわち、バンクアドレス)を、セレクタ設定部122に出力する。   When the determination result from the match determination unit 42 indicates a match, the address generation unit 141 generates the write address WA based on the count values indicated by the bank address counter 44, the bit line address counter 45, and the word line address counter 46. And output to the storage control processing unit 48. At this time, the address generation unit 141 outputs the count value (that is, the bank address) indicated by the bank address counter 44 to the selector setting unit 122.

また、アドレス生成部141は、画素数判定部141からの判定結果が最大格納画素数を超えたことを示す場合、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、およびワード線アドレスカウンタ46が示すカウント値に基づいて、書き込みアドレスWAを生成し、格納制御処理部48に出力する。なお、このときバンクアドレスカウンタ44が示すカウント値(すなわち、バンクアドレス)は、セレクタ設定部122に出力されない。   In addition, when the determination result from the pixel number determination unit 141 indicates that the maximum storage pixel number is exceeded, the address generation unit 141 counts the bank address counter 44, the bit line address counter 45, and the word line address counter 46. Based on the value, a write address WA is generated and output to the storage control processing unit 48. At this time, the count value (that is, the bank address) indicated by the bank address counter 44 is not output to the selector setting unit 122.

図29は、図23のアクセスパターンAP0の場合の画像データの各メモリバンクBKへの初期配置の例を示す図である。   FIG. 29 is a diagram showing an example of an initial arrangement of image data in each memory bank BK in the case of the access pattern AP0 of FIG.

すなわち、このアクセスパターンAP0は、図23の例と同様に、サーチエリアSRの上から1番目の左から1番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から8番目の右から3番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から8番目の右から2番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目の画素に設定されたアクセス候補P3で構成されている。   That is, as in the example of FIG. 23, this access pattern AP0 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR and the eighth right from the top of the search area SR. The access candidate P1 set for the third pixel, the access candidate P2 set for the second pixel from the right from the top of the search area SR, and the eighth pixel from the top right of the search area SR It is comprised by the access candidate P3 set to.

また、図29の例においては、図35の設計装置201によりメモリバンク数が8に、1メモリバンク当たりの最大格納画素数が160画素に設定されている。   In the example of FIG. 29, the number of memory banks is set to 8 and the maximum number of stored pixels per memory bank is set to 160 pixels by the design apparatus 201 of FIG.

したがって、メモリバンクBK0には、アクセス候補P0の画素を含めて160画素分のデータが格納される。アクセス候補P0の画素を含めて161番目の画素(サーチエリアSRの上から3番目の左から1番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK0に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q0からのデータは、次のメモリバンクBK1に格納される。   Therefore, data for 160 pixels including the pixel of the access candidate P0 is stored in the memory bank BK0. The 161st pixel (the third pixel from the top left of the search area SR, the first pixel from the left) Q0 including the pixel of the access candidate P0 is stored in the memory bank BK0 even if it is determined not to match the access candidate. Since the number of pixels exceeds the maximum storage pixel number of 160 pixels, the data from the pixel Q0 is stored in the next memory bank BK1.

次のメモリバンクBK1には、画素Q0を含めて160画素分のデータが格納される。画素Q0を含めて161番目の画素(サーチエリアSRの上から5番目の左から1番目の画素)Q1については、アクセス候補と一致しないと判定されても、メモリバンクBK1に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q1からのデータは、次のメモリバンクBK2に格納される。   The next memory bank BK1 stores data for 160 pixels including the pixel Q0. For the 161st pixel (the 5th pixel from the top left in the search area SR) including the pixel Q0, the pixel stored in the memory bank BK1 even if it is determined not to match the access candidate Since the number exceeds 160 pixels, which is the maximum storage pixel number, the data from the pixel Q1 is stored in the next memory bank BK2.

次のメモリバンクBK2には、画素Q1を含めて160画素分のデータが格納される。画素Q1を含めて161番目の画素(サーチエリアSRの上から7番目の左から1番目の画素)Q2については、アクセス候補と一致しないと判定されても、メモリバンクBK2に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q2からのデータは、次のメモリバンクBK3に格納される。   The next memory bank BK2 stores data for 160 pixels including the pixel Q1. For the 161st pixel (the 7th pixel from the top left in the search area SR) including the pixel Q1, the pixel stored in the memory bank BK2 even if it is determined not to match the access candidate Since the number exceeds 160 pixels which is the maximum storage pixel number, the data from the pixel Q2 is stored in the next memory bank BK3.

次のメモリバンクBK3には、画素Q1から、アクセス候補P1の1つ手前の画素までの93(=80+16−3)画素のデータが格納され、メモリバンクBK4には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK5には、アクセス候補P2の1画素のデータが格納される。   The next memory bank BK3 stores data of 93 (= 80 + 16-3) pixels from the pixel Q1 to the pixel immediately before the access candidate P1, and the memory bank BK4 stores one pixel of the access candidate P1. Data is stored, and data of one pixel of the access candidate P2 is stored in the memory bank BK5.

メモリバンクBK6には、アクセス候補P3を含めて160画素分のデータが格納される。アクセス候補P3を含めて161番目の画素(サーチエリアSRの上から10番目の左から16番目の画素)Q3については、アクセス候補と一致しないと判定されても、メモリバンクBK6に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q3からのデータは、次のメモリバンクBK7に格納される。   The memory bank BK6 stores data for 160 pixels including the access candidate P3. The 161st pixel (the 10th pixel from the top left in the search area SR, the 16th pixel from the left) Q3 including the access candidate P3 is stored in the memory bank BK6 even if it is determined not to match the access candidate. Since the number of pixels exceeds the maximum storage pixel number of 160 pixels, the data from the pixel Q3 is stored in the next memory bank BK7.

そして、メモリバンクBK7には、画素Q3から残りすべての画素である2465(=80×40−(80×9+15))画素が格納される。なお、最後のメモリバンクBKについては、最大格納画素数は適用されない。   The memory bank BK7 stores 2465 (= 80 × 40− (80 × 9 + 15)) pixels which are all the remaining pixels from the pixel Q3. Note that the maximum number of stored pixels is not applied to the last memory bank BK.

なお、図24のアクセスパターンAP1の場合は、基本的に同様であるので、その図示および詳細な説明は省略するが、メモリバンクBK0には、1画素格納され、メモリバンクBK1乃至メモリバンクBK3には、160画素格納され、メモリバンクBK4には、93画素格納され、メモリバンクBK5には、1画素格納され、メモリバンクBK6には、160画素格納され、メモリバンクBK7には、2465画素格納される。   Note that the access pattern AP1 in FIG. 24 is basically the same, and thus illustration and detailed description thereof are omitted. However, one pixel is stored in the memory bank BK0 and stored in the memory banks BK1 to BK3. 160 pixels are stored, 93 pixels are stored in the memory bank BK4, 1 pixel is stored in the memory bank BK5, 160 pixels are stored in the memory bank BK6, and 2465 pixels are stored in the memory bank BK7. The

同様に、図25のアクセスパターンAP2の場合は、メモリバンクBK0およびメモリバンクBK1には、1画素格納され、メモリバンクBK2乃至メモリバンクBK4には、160画素格納され、メモリバンクBK5には、93画素格納され、メモリバンクBK6には、1画素格納され、160画素格納され、メモリバンクBK7には、2465画素格納される。   Similarly, in the case of the access pattern AP2 in FIG. 25, one pixel is stored in the memory bank BK0 and the memory bank BK1, 160 pixels are stored in the memory banks BK2 to BK4, and 93 pixels are stored in the memory bank BK5. One pixel is stored in the memory bank BK6, 160 pixels are stored in the memory bank BK6, and 2465 pixels are stored in the memory bank BK7.

すなわち、アクセスパターンAP1およびAP2の場合は、アクセスパターンAP1の場合と、サーチエリアSR内におけるアクセス候補P1およびP2と各画素Q0乃至Q2の位置が異なることで、メモリバンクBK1乃至BK5に格納される画素数がメモリバンクBK1乃至BK5内で入れ替わるだけである。   That is, the access patterns AP1 and AP2 are stored in the memory banks BK1 to BK5 because the access candidates P1 and P2 and the positions of the pixels Q0 to Q2 in the search area SR are different from the access pattern AP1. Only the number of pixels is changed in the memory banks BK1 to BK5.

図30は、図26のアクセスパターンAP3の場合の画像データの各メモリバンクBKへの初期配置の例を示す図である。   FIG. 30 is a diagram illustrating an example of initial arrangement of image data in each memory bank BK in the case of the access pattern AP3 of FIG.

すなわち、このアクセスパターンAP3は、図26の例と同様に、サーチエリアSRの上から1番目の左から1番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から1番目の左から2番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から1番目の左から3番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から1番目の左から4番目の画素に設定されたアクセス候補P3で構成されている。   That is, as in the example of FIG. 26, the access pattern AP3 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR and the first left from the top of the search area SR. The access candidate P1 set to the second pixel, the access candidate P2 set to the third pixel from the left from the top of the search area SR, and the first pixel from the left to the top of the search area SR It is comprised by the access candidate P3 set to.

また、図30の例においても、図35の設計装置201によりメモリバンク数が8に、1メモリバンク当たりの最大格納画素数が160画素に設定されている。   Also in the example of FIG. 30, the number of memory banks is set to 8 and the maximum number of stored pixels per memory bank is set to 160 pixels by the design device 201 of FIG.

したがって、メモリバンクBK0には、アクセス候補P0の1画素のデータが格納され、メモリバンクBK1には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK2には、アクセス候補P2の1画素のデータが格納され、メモリバンクBK3には、アクセス候補P3の画素を含めて160画素分のデータが格納される。   Therefore, one pixel data of the access candidate P0 is stored in the memory bank BK0, one pixel data of the access candidate P1 is stored in the memory bank BK1, and one pixel of the access candidate P2 is stored in the memory bank BK2. The data for 160 pixels including the pixel of the access candidate P3 is stored in the memory bank BK3.

アクセス候補P3の画素を含めて161番目の画素(サーチエリアSRの上から3番目の左から4番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK3に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q0からのデータは、次のメモリバンクBK4に格納される。   The 161st pixel (the third pixel from the top left of the search area SR, the fourth pixel from the left) Q0 including the pixel of the access candidate P3 is stored in the memory bank BK3 even if it is determined not to match the access candidate. Since the number of pixels exceeds the maximum storage pixel number of 160 pixels, the data from the pixel Q0 is stored in the next memory bank BK4.

これにより、メモリバンクBK4には、画素Q0を含めて160画素分のデータが格納される。また、画素Q0を含めて161番目の画素(サーチエリアSRの上から5番目の左から4番目の画素)Q1については、アクセス候補と一致しないと判定されても、メモリバンクBK4に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q1からのデータは、次のメモリバンクBK5に格納される。   As a result, data for 160 pixels including the pixel Q0 is stored in the memory bank BK4. The 161st pixel (the 5th pixel from the top left of the search area SR, the 4th pixel from the left) Q1 including the pixel Q0 is stored in the memory bank BK4 even if it is determined not to match the access candidate. Since the number of pixels exceeds the maximum storage pixel number of 160 pixels, the data from the pixel Q1 is stored in the next memory bank BK5.

同様に、メモリバンクBK5には、画素Q1を含めて160画素分のデータが格納される。画素Q1を含めて161番目の画素(サーチエリアSRの上から7番目の左から4番目の画素)Q2については、アクセス候補と一致しないと判定されても、メモリバンクBK5に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q2からのデータは、次のメモリバンクBK6に格納される。   Similarly, data for 160 pixels including the pixel Q1 is stored in the memory bank BK5. For the 161st pixel (the 7th pixel from the top left in the search area SR, the 4th pixel from the left) Q2 including the pixel Q1, the pixel stored in the memory bank BK5 even if it is determined not to match the access candidate Since the number exceeds 160 pixels, which is the maximum storage pixel number, the data from the pixel Q2 is stored in the next memory bank BK6.

メモリバンクBK6には、画素Q2を含めて160画素分のデータが格納される。画素Q2を含めて161番目の画素(サーチエリアSRの上から9番目の左から4番目の画素)Q2については、アクセス候補と一致しないと判定されても、メモリバンクBK6に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q3からのデータは、次のメモリバンクBK7に格納される。   The memory bank BK6 stores data for 160 pixels including the pixel Q2. For the 161st pixel (the 9th pixel from the top left in the search area SR), including the pixel Q2, the pixel stored in the memory bank BK6 even if it is determined not to match the access candidate Since the number exceeds 160 pixels, which is the maximum storage pixel number, the data from the pixel Q3 is stored in the next memory bank BK7.

そして、メモリバンクBK7には、画素Q3から残りすべての画素である2557(=80×40−(80×8+3))画素が格納される。   The memory bank BK7 stores 2557 (= 80 × 40− (80 × 8 + 3)) pixels which are all the remaining pixels from the pixel Q3.

以上のように、アクセス候補数以上にメモリバンク数と、1つのメモリバンクBKに格納される最大格納画素数を設定し、アクセス候補でなくても、メモリバンクBKに格納中の画素が、最大格納画素数を超えた場合に、次のメモリバンクBKに格納するようにした。   As described above, the number of memory banks and the maximum number of pixels stored in one memory bank BK are set more than the number of access candidates, and even if the number of pixels stored in the memory bank BK is not the access candidate, When the number of stored pixels is exceeded, the data is stored in the next memory bank BK.

これにより、各メモリバンクBK0乃至BK7の必要メモリ量のワーストケースすべてを考慮すると、全体として、3677(=160×7+2557)画素のデータが格納されることが必要である。   Accordingly, in consideration of all the worst cases of the required memory amounts of the memory banks BK0 to BK7, it is necessary to store data of 3777 (= 160 × 7 + 2557) pixels as a whole.

したがって、画像サイズ縦40画素、横80画素をメモリ量1枚とした場合に、3677/(80×40)=略1.15枚分のメモリ量が必要となるだけであり、図23乃至図26を参照して上述したアクセス候補数分のメモリバンクBKを用いた場合の略1.54枚分のメモリ量よりもメモリ量が削減される。   Therefore, when the image size is 40 pixels in the vertical direction and 80 pixels in the horizontal direction, the memory amount is only 3677 / (80 × 40) = 1.15. 26, the amount of memory is reduced from the amount of memory corresponding to approximately 1.54 when the number of memory banks BK corresponding to the number of access candidates described above is used.

次に、図31および図32を参照して、セレクタ123のデータ選択方法を説明する。   Next, a data selection method of the selector 123 will be described with reference to FIG. 31 and FIG.

図31は、他のアクセスパターンの場合の画像データの各メモリバンクBKへの初期配置の例を示す図である。なお、図示は省略されているが、図31の例においても、縦40画素、横80画素で構成される画像上の縦8画素、横16画素からなるサーチエリアが示されている。また、この場合も、メモリバンク数が8に、1メモリバンク当たりの最大格納画素数が160画素に設定されている。   FIG. 31 is a diagram illustrating an example of an initial arrangement of image data in each memory bank BK in the case of another access pattern. Although not shown, the example of FIG. 31 also shows a search area consisting of 8 vertical pixels and 16 horizontal pixels on an image composed of 40 vertical pixels and 80 horizontal pixels. Also in this case, the number of memory banks is set to 8, and the maximum number of stored pixels per memory bank is set to 160 pixels.

図31に示されるアクセスパターンは、サーチエリアSRの上から3番目の左から4番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から3番目の左から11番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から6番目の左から3番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から7番目の左から7番目の画素に設定されたアクセス候補P3で構成されている。   The access pattern shown in FIG. 31 is set to the access candidate P0 set at the third pixel from the top left from the top of the search area SR and the eleventh pixel from the top left at the top of the search area SR. Access candidate P1, access candidate P2 set to the third pixel from the top left in the search area SR, access candidate P3 set to the seventh pixel from the top left in the search area SR It consists of

したがって、メモリバンクBK0には、アクセス候補P0から、アクセス候補P1の1手前の画素までの7画素のデータが格納され、メモリバンクBK1には、アクセス候補P1を含めて、160画素分のデータが格納される。   Therefore, the memory bank BK0 stores 7-pixel data from the access candidate P0 to the pixel immediately before the access candidate P1, and the memory bank BK1 stores data for 160 pixels including the access candidate P1. Stored.

アクセス候補P1の画素を含めて161番目の画素(サーチエリアSRの上から3番目の左から11番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK1に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q0からのデータは、次のメモリバンクBK2に格納される。   The 161st pixel (the third pixel from the top left of the search area SR and the eleventh pixel from the left) Q0 including the pixel of the access candidate P1 is stored in the memory bank BK1 even if it is determined not to match the access candidate. Since the number of pixels exceeds the maximum storage pixel number of 160 pixels, the data from the pixel Q0 is stored in the next memory bank BK2.

メモリバンクBK2には、画素Q0から、アクセス候補P2の1手前の画素までの72画素のデータが格納され、メモリバンクBK3には、アクセス候補P2から、アクセス候補P3の1手前の画素までの84画素のデータが格納される。メモリバンクBK4には、アクセス候補P3の画素を含めて、160画素分のデータが格納される。   The memory bank BK2 stores data of 72 pixels from the pixel Q0 to the pixel immediately before the access candidate P2, and the memory bank BK3 stores 84 data from the access candidate P2 to the pixel immediately before the access candidate P3. Pixel data is stored. The memory bank BK4 stores data for 160 pixels including the pixel of the access candidate P3.

アクセス候補P3の画素を含めて161番目の画素(サーチエリアSRの上から9番目の左から7番目の画素)Q1については、アクセス候補と一致しないと判定されても、メモリバンクBK4に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q1からのデータは、次のメモリバンクBK5に格納される。   The 161st pixel (the ninth pixel from the top left of the search area SR, the seventh pixel from the left) Q1 including the pixel of the access candidate P3 is stored in the memory bank BK4 even if it is determined not to match the access candidate. Since the number of pixels exceeds the maximum storage pixel number of 160 pixels, the data from the pixel Q1 is stored in the next memory bank BK5.

メモリバンクBK5には、画素Q1を含めて160画素分のデータが格納される。画素Q1を含めて161番目の画素(サーチエリアSRの上から11番目の左から7番目の画素)Q2については、アクセス候補と一致しないと判定されても、メモリバンクBK5に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q2からのデータは、次のメモリバンクBK6に格納される。   The memory bank BK5 stores data for 160 pixels including the pixel Q1. For the 161st pixel (the seventh pixel from the top left in the search area SR, the seventh pixel from the left) Q2 including the pixel Q1, the pixel stored in the memory bank BK5 even if it is determined not to match the access candidate Since the number exceeds 160 pixels, which is the maximum storage pixel number, the data from the pixel Q2 is stored in the next memory bank BK6.

メモリバンクBK6には、画素Q2を含めて160画素分のデータが格納される。画素Q2を含めて161番目の画素(サーチエリアSRの上から13番目の左から7番目の画素)Q3については、アクセス候補と一致しないと判定されても、メモリバンクBK6に格納されている画素数が、最大格納画素数である160画素を超えるので、画素Q3からのデータは、次のメモリバンクBK7に格納される。   The memory bank BK6 stores data for 160 pixels including the pixel Q2. For the 161st pixel including the pixel Q2 (the 13th pixel from the 13th left from the top of the search area SR) Q3, even if it is determined not to match the access candidate, the pixel stored in the memory bank BK6 Since the number exceeds 160 pixels, which is the maximum storage pixel number, the data from the pixel Q3 is stored in the next memory bank BK7.

そして、メモリバンクBK7には、画素Q3から残りすべての画素である2234(=80×40−(80×12+6))画素が格納される。   The memory bank BK7 stores 2234 (= 80 × 40− (80 × 12 + 6)) pixels, which are all the remaining pixels from the pixel Q3.

ここで、データ格納装置111のデータ読み出し格納制御部33においては、図21を参照して上述したデータ再格納制御処理が8個のメモリバンクBK0乃至BK8に対して実行される。このとき、8個のメモリバンクBK0乃至BK8に対応した8のデータ読み出し格納制御部33により、4つのアクセス候補P0乃至P3と、4つの画素Q0乃至Q3のデータが読み出され、再格納される。   Here, in the data read / store control unit 33 of the data storage device 111, the data re-store control process described above with reference to FIG. 21 is executed for the eight memory banks BK0 to BK8. At this time, the data of the four access candidates P0 to P3 and the data of the four pixels Q0 to Q3 are read and re-stored by the eight data read / store control units 33 corresponding to the eight memory banks BK0 to BK8. .

すなわち、アクセス候補P0のデータがメモリバンクBK0から読み出され、アクセス候補P1のデータがメモリバンクBK1から読み出され、アクセス候補P2のデータがメモリバンクBK3から読み出され、アクセス候補P3のデータがメモリバンクBK4から読み出される。また、画素Q0のデータがメモリバンクBK2から読み出され、画素Q1のデータがメモリバンクBK5から読み出され、画素Q2のデータがメモリバンクBK6から読み出され、画素Q3のデータがメモリバンクBK7から読み出される。   That is, the data of the access candidate P0 is read from the memory bank BK0, the data of the access candidate P1 is read from the memory bank BK1, the data of the access candidate P2 is read from the memory bank BK3, and the data of the access candidate P3 is Read from the memory bank BK4. Further, the data of the pixel Q0 is read from the memory bank BK2, the data of the pixel Q1 is read from the memory bank BK5, the data of the pixel Q2 is read from the memory bank BK6, and the data of the pixel Q3 is read from the memory bank BK7. Read out.

しかしながら、4つの画素Q0乃至Q3は、アクセス候補ではないので、4つの画素Q0乃至Q3のデータは、データ格納装置111から出力される必要がない。そこで、図32に示されるように、セレクタ123は、アクセス候補のデータが格納されているメモリバンクBKからのデータのみを出力するように選択する。   However, since the four pixels Q0 to Q3 are not access candidates, the data of the four pixels Q0 to Q3 need not be output from the data storage device 111. Therefore, as shown in FIG. 32, the selector 123 selects to output only the data from the memory bank BK storing the access candidate data.

図32は、セレクタの構成を模式的に示す図である。   FIG. 32 is a diagram schematically showing the configuration of the selector.

図32の例において、メモリ31は、メモリバンクBK0乃至BK7により構成されており、セレクタ123は、アクセス候補P0のデータが格納されているメモリバンクBK0から、アクセス候補P0のデータを選択して出力しており、アクセス候補P1のデータが格納されているメモリバンクBK1から、アクセス候補P1のデータを選択して出力している。   In the example of FIG. 32, the memory 31 includes memory banks BK0 to BK7, and the selector 123 selects and outputs the data of the access candidate P0 from the memory bank BK0 in which the data of the access candidate P0 is stored. The data of the access candidate P1 is selected and output from the memory bank BK1 in which the data of the access candidate P1 is stored.

また、セレクタ123は、アクセス候補P2のデータが格納されているメモリバンクBK3から、アクセス候補P2のデータを選択して出力しており、アクセス候補P3のデータが格納されているメモリバンクBK4から、アクセス候補P3のデータを選択して出力している。   Further, the selector 123 selects and outputs the data of the access candidate P2 from the memory bank BK3 in which the data of the access candidate P2 is stored, and from the memory bank BK4 in which the data of the access candidate P3 is stored. The data of the access candidate P3 is selected and output.

すなわち、アドレス生成部141は、一致判定部42による判定結果に基づいて、入力される画素がアクセス候補であった場合に、カウント値がインクリメントされたバンクアドレスをセレクタ設定部122に出力する。これに対応して、セレクタ設定部122は、セレクタ123が、そのバンクアドレスが対応するメモリバンクBKを選択するように設定する。   That is, based on the determination result by the match determination unit 42, the address generation unit 141 outputs the bank address with the incremented count value to the selector setting unit 122 when the input pixel is an access candidate. In response to this, the selector setting unit 122 sets the selector 123 so as to select the memory bank BK corresponding to the bank address.

一方、アドレス生成部141は、一致判定部42による判定結果に基づいて、入力される画素がアクセス候補でない場合に、画素数判定部141によりメモリバンクBKに格納されている画素数が、最大格納画素数を超えていると判定されたときには、バンクアドレスのカウント値をインクリメントしたとしても、そのバンクアドレスをセレクタ設定部122に出力しない。   On the other hand, the address generation unit 141 stores the maximum number of pixels stored in the memory bank BK by the pixel number determination unit 141 when the input pixel is not an access candidate based on the determination result by the match determination unit 42. When it is determined that the number of pixels is exceeded, even if the count value of the bank address is incremented, the bank address is not output to the selector setting unit 122.

以上により、セレクタ123においては、アクセス候補が格納されているメモリバンクBKからのデータだけを選択して出力端子22から出力することができる。   As described above, the selector 123 can select only the data from the memory bank BK in which the access candidates are stored and output it from the output terminal 22.

次に、図33のフローチャートを参照して、図27のデータ格納制御部121の初期配置処理を詳しく説明する。なお、図33のステップS101乃至S105、並びにステップS110およびS111は、図14のステップS1乃至S5、並びにステップS108およびS109と基本的に同様の処理を行うので、その詳細な説明は、繰り返しになるので、適宜省略する。   Next, the initial arrangement processing of the data storage control unit 121 in FIG. 27 will be described in detail with reference to the flowchart in FIG. Note that steps S101 to S105 and steps S110 and S111 in FIG. 33 perform basically the same processing as steps S1 to S5 and steps S108 and S109 in FIG. 14, and thus detailed description thereof will be repeated. Therefore, it is omitted as appropriate.

データ格納制御部32は、初期配置処理を開始すると、ステップS101において、バンクアドレスカウンタ44、ビット線アドレスカウンタ45、およびワード線アドレスカウンタ46のカウント値を全て「0」に、初期設定を行う。   When the data storage control unit 32 starts the initial arrangement process, in step S101, the count values of the bank address counter 44, the bit line address counter 45, and the word line address counter 46 are all initialized to “0”.

ステップS102において、カウンタ41は、入力端子21aから格納すべき1画素分の画像データを入力する。カウンタ41は、1画素を計数し、計数結果を一致判定部42に出力する。   In step S102, the counter 41 inputs image data for one pixel to be stored from the input terminal 21a. The counter 41 counts one pixel and outputs the count result to the coincidence determination unit 42.

ステップS103において、一致判定部42は、入力端子21bからのアクセスパターンAPと、カウンタ41の計数結果との一致判定を行い、入力された1画素が、アクセスパターンAPが示すアクセス開始位置(アクセス候補)の画素であるか否かを判定する。   In step S103, the coincidence determination unit 42 performs a coincidence determination between the access pattern AP from the input terminal 21b and the count result of the counter 41, and one input pixel is an access start position (access candidate) indicated by the access pattern AP. ) Is determined.

ステップS103において入力された1画素がアクセス開始位置の画素であると判定された場合、すなわち、その画素がアクセス開始位置の場合には、ステップS104において、アドレス生成部142は、現在のワード線アドレスカウンタ46とビット線アドレスカウンタ45のカウント値を、バンクアドレスに対応したメモリバンクBKの書き込みが開始される書き込みワード線アドレスと書き込みビット線アドレスとして格納する。   If it is determined in step S103 that one input pixel is the pixel at the access start position, that is, if the pixel is at the access start position, in step S104, the address generator 142 determines the current word line address. The count values of the counter 46 and the bit line address counter 45 are stored as a write word line address and a write bit line address at which writing to the memory bank BK corresponding to the bank address is started.

ステップS105において、バンクアドレスカウンタ44は、カウント値をインクリメントし、さらに、ワード線アドレスカウンタ46とビット線アドレスカウンタ45は、カウント値を「0」にリセットする。   In step S105, the bank address counter 44 increments the count value, and the word line address counter 46 and the bit line address counter 45 reset the count value to “0”.

すなわち、フラグ生成部43は、一致判定部42により入力された1画素がアクセス候補の画素であるという判定結果に応じたフラグを生成し、生成したフラグを、バンクアドレスカウンタ44、ワード線アドレスカウンタ46、およびビット線アドレスカウンタ45に出力する。   That is, the flag generation unit 43 generates a flag according to a determination result that one pixel input by the match determination unit 42 is an access candidate pixel, and uses the generated flag as the bank address counter 44 and the word line address counter. 46 and the bit line address counter 45.

これに対応して、バンクアドレスカウンタ44は、カウンタ41の計数結果を受けて、カウント値をインクリメントし、インクリメントしたカウント値を、アドレス生成部142に出力する。また、ワード線アドレスカウンタ46とビット線アドレスカウンタ45は、カウント値を「0」にリセットし、リセットしたカウント値を、アドレス生成部142に出力する。   In response to this, the bank address counter 44 receives the count result of the counter 41, increments the count value, and outputs the incremented count value to the address generation unit 142. The word line address counter 46 and the bit line address counter 45 reset the count value to “0” and output the reset count value to the address generation unit 142.

ステップS106において、アドレス生成部142は、バンクアドレスカウンタ44のカウント値をセレクタ設定部122に出力する。これにより、セレクタ設定部122は、セレクタ123が、そのバンクアドレスが対応するメモリバンク(アクセス候補の画素データが格納されるメモリバンク)BKを選択するように設定する。   In step S <b> 106, the address generation unit 142 outputs the count value of the bank address counter 44 to the selector setting unit 122. Thereby, the selector setting unit 122 sets the selector 123 so as to select the memory bank (memory bank in which the pixel data of the access candidate) corresponding to the bank address is selected.

アドレス生成部142は、バンクアドレスカウンタ44のカウント値、およびワード線アドレスカウンタ46とビット線アドレスカウンタ45のカウント値「0」で示される書き込みアドレスWAを生成するので、その後、ステップS110において、格納制御処理部48は、アドレス生成部142により生成された書き込みアドレスWAで、メモリ31にその画素の画像データを格納する。   Since the address generation unit 142 generates the write address WA indicated by the count value of the bank address counter 44 and the count values “0” of the word line address counter 46 and the bit line address counter 45, the storage is performed in step S110. The control processing unit 48 stores the image data of the pixel in the memory 31 with the write address WA generated by the address generation unit 142.

一方、ステップS103において入力された1画素がアクセス開始位置の画素ではないと判定された場合、画素数判定部141は、ワード線アドレスカウンタ46、およびビット線アドレスカウンタ45のカウント値を参照し、対応するメモリバンクBKの格納画素数が、図35の設計装置201により設定された1メモリバンク当たりの最大格納画素数を超えたか否かを判定する。なお、この判定処理は、実際には、例えば、一致判定部42などで実行するように構成される。   On the other hand, if it is determined in step S103 that one input pixel is not the pixel at the access start position, the pixel number determination unit 141 refers to the count values of the word line address counter 46 and the bit line address counter 45, and It is determined whether or not the number of stored pixels in the corresponding memory bank BK exceeds the maximum number of stored pixels per memory bank set by the design device 201 in FIG. Note that this determination processing is actually configured to be executed by, for example, the match determination unit 42 or the like.

ステップS107において、対応するメモリバンクBKの格納画素数が、1メモリバンク当たりの最大格納画素数を超えたと判定された場合、ステップS108において、アドレス生成部142は、現在のワード線アドレスカウンタ46とビット線アドレスカウンタ45のカウント値を、バンクアドレスに対応したメモリバンクBKの書き込みが開始される書き込みワード線アドレスと書き込みビット線アドレスとして格納する。   If it is determined in step S107 that the number of stored pixels in the corresponding memory bank BK exceeds the maximum number of stored pixels per memory bank, the address generator 142 determines that the current word line address counter 46 and The count value of the bit line address counter 45 is stored as a write word line address and a write bit line address at which writing to the memory bank BK corresponding to the bank address is started.

ステップS109において、バンクアドレスカウンタ44は、カウント値をインクリメントし、さらに、ワード線アドレスカウンタ46とビット線アドレスカウンタ45は、カウント値を「0」にリセットする。   In step S109, the bank address counter 44 increments the count value, and the word line address counter 46 and the bit line address counter 45 reset the count value to “0”.

すなわち、フラグ生成部43は、画素数判定部141により入力された1画素がアクセス候補の画素であるという判定結果に応じたフラグを生成し、生成したフラグを、バンクアドレスカウンタ44、ワード線アドレスカウンタ46、およびビット線アドレスカウンタ45に出力する。   That is, the flag generation unit 43 generates a flag according to the determination result that one pixel input by the pixel number determination unit 141 is an access candidate pixel, and uses the generated flag as the bank address counter 44 and the word line address. The data is output to the counter 46 and the bit line address counter 45.

これに対応して、バンクアドレスカウンタ44は、カウンタ41の計数結果を受けて、カウント値をインクリメントし、インクリメントしたカウント値を、アドレス生成部142に出力する。また、ワード線アドレスカウンタ46とビット線アドレスカウンタ45は、カウント値を「0」にリセットし、リセットしたカウント値を、アドレス生成部142に出力する。   In response to this, the bank address counter 44 receives the count result of the counter 41, increments the count value, and outputs the incremented count value to the address generation unit 142. The word line address counter 46 and the bit line address counter 45 reset the count value to “0” and output the reset count value to the address generation unit 142.

アドレス生成部142は、バンクアドレスカウンタ44のカウント値、およびワード線アドレスカウンタ46とビット線アドレスカウンタ45のカウント値「0」で示される書き込みアドレスWAを生成するので、その後、ステップS110において、格納制御処理部48は、アドレス生成部142により生成された書き込みアドレスWAで、メモリ31にその画素の画像データを格納する。   Since the address generation unit 142 generates the write address WA indicated by the count value of the bank address counter 44 and the count values “0” of the word line address counter 46 and the bit line address counter 45, the storage is performed in step S110. The control processing unit 48 stores the image data of the pixel in the memory 31 with the write address WA generated by the address generation unit 142.

ステップS107において、対応するメモリバンクBKの格納画素数が、1メモリバンク当たりの最大格納画素数を超えたと判定された場合、処理は、ステップS108およびS109をスキップし、ステップS110に進む。   If it is determined in step S107 that the number of stored pixels in the corresponding memory bank BK exceeds the maximum number of stored pixels per memory bank, the process skips steps S108 and S109 and proceeds to step S110.

この場合、アドレス生成部142は、現在のバンクアドレスカウンタ44、ワード線アドレスカウンタ46、およびビット線アドレスカウンタ45のカウント値で示される書き込みアドレスWAを生成するので、ステップS110において、格納制御処理部48は、アドレス生成部142により生成された書き込みアドレスWAで、メモリ31にその画素の画像データを格納する。   In this case, the address generation unit 142 generates the write address WA indicated by the count values of the current bank address counter 44, the word line address counter 46, and the bit line address counter 45. Therefore, in step S110, the storage control processing unit Reference numeral 48 denotes a write address WA generated by the address generation unit 142, which stores image data of the pixel in the memory 31.

ステップS111において、カウンタ41は、計数結果を参照して、画像の全データが入力されたか否かを判定し、全データがまだ入力されていないと判定した場合、その計数結果をバンクアドレスカウンタ44に出力する。バンクアドレスカウンタ44は、計数結果を受けて、その結果をビット線アドレスカウンタ45に出力する。   In step S111, the counter 41 refers to the counting result to determine whether or not all the data of the image has been input. If it is determined that all the data has not yet been input, the counter result is used as the bank address counter 44. Output to. The bank address counter 44 receives the count result and outputs the result to the bit line address counter 45.

これに対応して、ステップS112において、初期格納のアドレス計算処理が実行される。この初期格納のアドレス計算処理は、図34のフローチャートを参照して説明する。なお、図34のステップS131乃至S133の処理は、図14のステップS8乃至S10の処理と基本的に同様の処理であるので、その詳細な説明は適宜省略する。   Correspondingly, in step S112, an initial storage address calculation process is executed. This initial storage address calculation process will be described with reference to the flowchart of FIG. Note that the processing in steps S131 through S133 in FIG. 34 is basically the same as the processing in steps S8 through S10 in FIG. 14, and therefore detailed description thereof will be omitted as appropriate.

ステップS131において、ビット線アドレスカウンタ45は、カウント値をインクリメントし、ステップS132において、ビット線アドレスカウンタ45のカウント値がビット線長より大きくなったか否かを判定する。なお、この判定処理は、実際には、例えば、アドレス生成部47などで実行するように構成される。   In step S131, the bit line address counter 45 increments the count value. In step S132, the bit line address counter 45 determines whether or not the count value of the bit line address counter 45 has become larger than the bit line length. This determination process is actually configured to be executed by, for example, the address generation unit 47.

ステップS132において、カウント値がビット線長より小さいと判定された場合、処理は、図33のステップS102に戻り、次の1画素分の画像データについての格納処理が行われる。   If it is determined in step S132 that the count value is smaller than the bit line length, the process returns to step S102 in FIG. 33, and the storage process for the next one pixel of image data is performed.

ステップS132において、カウント値がビット線長よりより大きくなったと判定された場合、処理は、ステップS133に進み、ビット線アドレスカウンタ45は、カウント値を「0」にリセットするとともに、その結果を、ワード線アドレスカウンタ46に出力する。これに対応して、ワード線アドレスカウンタ46は、カウント値をインクリメントしてから、処理は、図33のステップS102に戻り、次の1画素分の画像データについての格納処理が行われる。   If it is determined in step S132 that the count value has become larger than the bit line length, the process proceeds to step S133, and the bit line address counter 45 resets the count value to “0” and the result is The data is output to the word line address counter 46. Correspondingly, the word line address counter 46 increments the count value, and then the process returns to step S102 in FIG. 33, and the storage process for the next one pixel of image data is performed.

ステップS111において、全データが入力されたと判定された場合、初期配置処理は終了される。   If it is determined in step S111 that all data has been input, the initial arrangement process is terminated.

以上のように、アクセス候補数以上にメモリバンク数と、1つのメモリバンクに格納される最大格納画素数を設定し、アクセス候補でなくても、格納中のメモリバンクの画素が、最大格納画素数を超えた場合に、次のメモリバンクBKに格納するようにしたので、図23乃至図26を参照して上述したアクセス候補数分のメモリバンクBKを用いた場合のメモリ量よりも、全体として、メモリ31のメモリ量が削減される。   As described above, the number of memory banks and the maximum number of stored pixels stored in one memory bank are set more than the number of access candidates, and the pixels in the memory bank being stored are the maximum stored pixels even if they are not access candidates. When the number exceeds the number, the number of memory banks BK is stored in the next memory bank BK. As a result, the memory capacity of the memory 31 is reduced.

次に、上述したデータ格納装置111のパラメータである、メモリバンク数と、1つのメモリバンク当たりの最大格納画素数などを設計する設計装置を説明する。   Next, a design apparatus for designing the number of memory banks and the maximum number of pixels stored per memory bank, which are parameters of the data storage device 111 described above, will be described.

図35は、本発明を適用した設計装置のハードウエア構成例を示すブロック図である。   FIG. 35 is a block diagram illustrating a hardware configuration example of a design apparatus to which the present invention is applied.

設計装置201は、例えば、図35に示されるコンピュータなどで構成される。   The design apparatus 201 is composed of, for example, a computer shown in FIG.

CPU(Central Processing Unit)211は、ROM(Read Only Memory)212、または記憶部418に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)213には、CPU211が実行するプログラムやデータなどが適宜記憶される。CPU211、ROM212、およびRAM213は、バス214により相互に接続されている。   A CPU (Central Processing Unit) 211 executes various processes according to a program stored in a ROM (Read Only Memory) 212 or a storage unit 418. A RAM (Random Access Memory) 213 appropriately stores programs executed by the CPU 211 and data. The CPU 211, ROM 212, and RAM 213 are connected to each other by a bus 214.

CPU211にはまた、バス214を介して入出力インタフェース215が接続されている。入出力インタフェース215には、キーボード、マウス、マイクロホンなどよりなる入力部216、ディスプレイ、スピーカなどよりなる出力部217が接続されている。CPU211は、入力部216から入力される指令に対応して各種の処理を実行する。そして、CPU211は、処理の結果を出力部217に出力する。   An input / output interface 215 is also connected to the CPU 211 via the bus 214. The input / output interface 215 is connected to an input unit 216 including a keyboard, a mouse, and a microphone, and an output unit 217 including a display and a speaker. The CPU 211 executes various processes in response to commands input from the input unit 216. Then, the CPU 211 outputs the processing result to the output unit 217.

入出力インタフェース215に接続されている記憶部218は、例えばハードディスクからなり、CPU211が実行するプログラムや各種のデータを記憶する。通信部219は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。   The storage unit 218 connected to the input / output interface 215 includes, for example, a hard disk, and stores programs executed by the CPU 211 and various data. The communication unit 219 communicates with an external device via a network such as the Internet or a local area network.

また、通信部219を介してプログラムを取得し、記憶部218に記憶してもよい。   A program may be acquired via the communication unit 219 and stored in the storage unit 218.

入出力インタフェース215に接続されているドライブ220は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア221が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部218に転送され、記憶される。   The drive 220 connected to the input / output interface 215 drives a removable medium 221 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, and drives the programs and data recorded therein. Get etc. The acquired program and data are transferred to and stored in the storage unit 218 as necessary.

なお、上述したデータ格納装置11および111も、図35に示した設計装置201と基本的に同様の構成を有するコンピュータにより構成されるようにすることができる。   Note that the data storage devices 11 and 111 described above can also be configured by a computer having basically the same configuration as the design device 201 shown in FIG.

ここで、CPU211が、各種のプログラムを実行することにより、図35のコンピュータは、設計装置201、またはデータ格納装置11および111として機能することとなる。この場合、プログラムは、図35のコンピュータに内蔵されている記録媒体としてのROM212や記憶部218に予め記録しておくことができる。あるいはまた、プログラムは、磁気ディスクや、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブルメディア221に、一時的あるいは永続的に格納(記録)し、いわゆるパッケージソフトウェアとして提供することができる。   Here, when the CPU 211 executes various programs, the computer in FIG. 35 functions as the design device 201 or the data storage devices 11 and 111. In this case, the program can be recorded in advance in a ROM 212 or a storage unit 218 as a recording medium built in the computer of FIG. Alternatively, the program can be stored (recorded) temporarily or permanently in a removable medium 221 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, and provided as so-called package software.

なお、プログラムは、上述したようなリムーバブルメディア21から図35のコンピュータにインストールする他、ダウンロードサイトから、デジタル衛星放送用の人工衛星を介して、図35のコンピュータに無線で転送したり、LAN(Local Area Network)、ネットワーク2を介して、図35のコンピュータに有線で転送してインストールすることもできる。   The program is installed on the computer shown in FIG. 35 from the removable medium 21 as described above, or transferred from the download site via the digital satellite broadcasting artificial satellite to the computer shown in FIG. It is also possible to install the program by transferring it to the computer shown in FIG.

図36は、設計装置201の機能構成例を示すブロック図である。図36に示される機能ブロックは、設計装置201のCPU211により、所定のプログラムが実行されることで実現される。   FIG. 36 is a block diagram illustrating a functional configuration example of the design apparatus 201. The functional blocks shown in FIG. 36 are realized by a predetermined program being executed by the CPU 211 of the design apparatus 201.

この機能ブロックは、格納画素数算出部231、メモリ量算出部232、およびバンク数設定部233により構成される。   This functional block includes a storage pixel number calculation unit 231, a memory amount calculation unit 232, and a bank number setting unit 233.

例えば、設計者は、データ格納装置111を設計するための所定のパラメータ(画像サイズ、サーチエリアのサイズ、アクセスパターン数、および利用候補となるメモリバンク数)を、入力部216を構成するキーボードなどを操作することで、設計装置201に入力する。   For example, the designer sets predetermined parameters (image size, search area size, number of access patterns, and number of memory banks to be used) for designing the data storage device 111, a keyboard constituting the input unit 216, and the like. Is input to the design apparatus 201.

格納画素数算出部231は、入力部216の操作に対応して、利用候補となるメモリバンク数を仮設定し、画像サイズ、サーチエリアのサイズ、アクセスパターン数、および仮設定されたメモリバンク数に基づいて、1つのメモリバンク当たりの最大格納画素数を算出し、算出した最大格納画素数を、メモリ量算出部232に出力する。   The storage pixel number calculation unit 231 temporarily sets the number of memory banks that are candidates for use in response to the operation of the input unit 216, and sets the image size, the size of the search area, the number of access patterns, and the temporarily set number of memory banks. Based on the above, the maximum number of pixels stored per memory bank is calculated, and the calculated maximum number of pixels stored is output to the memory amount calculator 232.

メモリ量算出部232は、格納画素数算出部231により算出された最大格納画素数、仮設定されたメモリバンク数、画像サイズ、アクセスパターン数に基づいて、その仮設定されたメモリバンク数の場合の必要メモリ量を算出し、算出した必要メモリ量と仮設定されたメモリバンク数をバンク数設定部233に出力する。   In the case of the temporarily set memory bank number based on the maximum storage pixel number calculated by the storage pixel number calculating unit 231, the temporarily set memory bank number, the image size, and the access pattern number, the memory amount calculating unit 232 The required memory amount is calculated, and the calculated required memory amount and the temporarily set memory bank number are output to the bank number setting unit 233.

バンク数設定部233は、複数の仮設定されたメモリバンク数と、それに対応する必要メモリ量に基づいて、データ格納装置111で使用されるメモリ量を設定し、設定されたメモリ量に対応するメモリバンク数を、データ格納装置111で使用されるメモリバンク数に設定する。   The bank number setting unit 233 sets the memory amount used in the data storage device 111 based on a plurality of temporarily set memory bank numbers and the corresponding required memory amount, and corresponds to the set memory amount. The number of memory banks is set to the number of memory banks used in the data storage device 111.

以下、メモリバンク数の設定方法について具体的に説明する。   A method for setting the number of memory banks will be specifically described below.

図37は、図23のアクセスパターンAP0、仮設定されたメモリバンク数(以下、仮設定メモリバンク数と称する)が5の場合の画像データの各バンクへの初期配置の例を示す図である。   FIG. 37 is a diagram showing an example of the initial arrangement of image data in each bank when the access pattern AP0 of FIG. 23 and the temporarily set memory bank number (hereinafter referred to as the temporarily set memory bank number) is 5. .

すなわち、このアクセスパターンAP0は、図23の例と同様に、サーチエリアSRの上から1番目の左から1番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から8番目の右から3番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から8番目の右から2番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目の画素に設定されたアクセス候補P3で構成されている。   That is, as in the example of FIG. 23, this access pattern AP0 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR and the eighth right from the top of the search area SR. The access candidate P1 set for the third pixel, the access candidate P2 set for the second pixel from the right from the top of the search area SR, and the eighth pixel from the top right of the search area SR It is comprised by the access candidate P3 set to.

また、図37の例においては、アクセス候補の位置、または、アクセス候補間距離(すなわち、最大格納画素数)が、320(=80×8/(5−4+1))画素を超えた時点でメモリバンクBKが切り替えられる。この最大格納画素数は、画像の横サイズ×サーチエリアの縦サイズに含まれる画素数を、アクセス候補の位置以外で切り替えられる画素の数(すなわち、仮設定メモリバンク数−アクセス候補数)+1で割ったものである。具体的には、この最大格納画素数は、次の式(1)で表される。   In the example of FIG. 37, when the position of the access candidate or the distance between the access candidates (that is, the maximum number of stored pixels) exceeds 320 (= 80 × 8 / (5-4 + 1)) pixels, the memory is stored. Bank BK is switched. The maximum number of pixels to be stored is the number of pixels that can be switched from the horizontal size of the image × the vertical size of the search area other than the position of the access candidate (that is, the number of temporarily set memory banks−the number of access candidates) +1. Divided. Specifically, the maximum number of stored pixels is expressed by the following equation (1).

最大格納画素数≒ 画像の横サイズ×サーチエリアの縦サイズ/
(仮設定メモリバンク数−アクセス候補数+1)
・・・(1)
Maximum number of storage pixels ≒ Image horizontal size x Search area vertical size /
(Temporary setting memory bank number-number of access candidates + 1)
... (1)

なお、厳密には、最大格納画素数は、アクセス候補P0とアクセス候補P1の1つ手前の画素までの画素数を、アクセス候補の位置以外で切り替えられる画素の数+1で割ることにより求められるが、計算の際に割り切れることを重視し、通常の場合は、上述した式(1)が用いられる。最大格納画素数は、厳密には、式(2)で表される。   Strictly speaking, the maximum number of pixels to be stored can be obtained by dividing the number of pixels up to the pixel immediately before the access candidate P0 and the access candidate P1 by the number of pixels that can be switched outside the access candidate position + 1. In the normal case, the above-described equation (1) is used. Strictly speaking, the maximum number of stored pixels is expressed by Expression (2).

最大格納画素数= 画像の横サイズ×サーチエリアの縦サイズ−カウント外画素数/
(仮設定メモリバンク数−アクセス候補数+1)
・・・(2)
Maximum number of storage pixels = horizontal size of image x vertical size of search area-number of pixels outside count /
(Temporary setting memory bank number-number of access candidates + 1)
... (2)

この画像の横サイズ×サーチエリアの縦サイズ−カウント外画素数は、アクセス候補P0とアクセス候補P1の1つ手前の画素までの画素数を表しており、カウント外画素数は、横サイズ×サーチエリアの縦サイズのうち、ラスタスキャン順に、アクセス候補P1以降の画素(3+64)を表している。   The horizontal size of the image × the vertical size of the search area−the number of pixels outside the count represents the number of pixels up to the pixel immediately before the access candidate P0 and the access candidate P1, and the number of pixels outside the count is the horizontal size × search. Of the vertical size of the area, the pixels (3 + 64) after the access candidate P1 are represented in the raster scan order.

すなわち、厳密には、最大格納画素数は、画像の横サイズ×サーチエリアの縦サイズに含まれる画素数を、アクセス候補の位置以外で切り替えられる画素の数+1で等分したものであり、式(2)を用いて、286.5(=80×8−(64+3)/(5−4+1))として求められる。   That is, strictly speaking, the maximum number of stored pixels is obtained by equally dividing the number of pixels included in the horizontal size of the image × the vertical size of the search area by the number of pixels to be switched other than the access candidate position + 1. Using (2), it is obtained as 286.5 (= 80 × 8− (64 + 3) / (5-4 + 1)).

以上より、メモリバンクBK0には、アクセス候補P0の画素を含めて320画素分のデータが格納される。アクセス候補P0の画素を含めて321番目の画素(サーチエリアSRの上から5番目の左から1番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK0に格納されている画素数が、最大格納画素数である320画素を超えるので、画素Q0からのデータは、次のメモリバンクBK1に格納される。   As described above, the data for 320 pixels including the pixel of the access candidate P0 is stored in the memory bank BK0. The 321st pixel (the 5th pixel from the top left of the search area SR) including the access candidate P0 Q0 is stored in the memory bank BK0 even if it is determined not to match the access candidate. Since the number of pixels exceeds the maximum storage pixel number of 320 pixels, the data from the pixel Q0 is stored in the next memory bank BK1.

次のメモリバンクBK1には、画素Q0から、アクセス候補P1の1つ手前の画素までの253(=80×3+16−3)画素のデータが格納され、メモリバンクBK2には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK3には、アクセス候補P2の1画素のデータが格納される。   The next memory bank BK1 stores data of 253 (= 80 × 3 + 16−3) pixels from the pixel Q0 to the pixel immediately before the access candidate P1, and the memory bank BK2 stores 1 of the access candidate P1. Pixel data is stored, and data for one pixel of the access candidate P2 is stored in the memory bank BK3.

メモリバンクBK4には、アクセス候補P3から残りすべての画素である2625(=80×40−(80×8+13))画素が格納される。なお、最後のメモリバンクBKについては、最大格納画素数は適用されない。   The memory bank BK4 stores 2625 (= 80 × 40− (80 × 8 + 13)) pixels, which are all remaining pixels from the access candidate P3. Note that the maximum number of stored pixels is not applied to the last memory bank BK.

図38は、仮設定メモリバンク数が5の場合の図24乃至図26のアクセスパターンの例を示す図である。なお、図38の例においては、その画素が対応するメモリバンクBKの番号は省略される。   FIG. 38 is a diagram illustrating an example of the access patterns of FIGS. 24 to 26 when the number of temporarily set memory banks is 5. In the example of FIG. 38, the number of the memory bank BK corresponding to the pixel is omitted.

図38の例においては、左から順に、図24乃至図26で示したアクセスパターンAP1乃至AP3が示されており、仮設定メモリバンク数が5であるので、図37の例の場合と同様に、アクセス候補の位置、または、アクセス候補間距離(すなわち、最大格納画素数)が、320画素を超えた時点でメモリバンクBKが切り替えられる。   In the example of FIG. 38, the access patterns AP1 to AP3 shown in FIG. 24 to FIG. 26 are shown in order from the left, and the number of temporarily set memory banks is 5. Therefore, as in the example of FIG. The memory bank BK is switched when the position of the access candidate or the distance between the access candidates (that is, the maximum number of stored pixels) exceeds 320 pixels.

まず、アクセスパターンAP1は、図24の例と同様に、サーチエリアSRの上から1番目の左から1番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から1番目の左から2番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から8番目の右から2番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目の画素に設定されたアクセス候補P3で構成されている。   First, as in the example of FIG. 24, the access pattern AP1 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR, and the second from the first left from the top of the search area SR. The access candidate P1 set to the th pixel, the access candidate P2 set to the second pixel from the right from the top of the search area SR, and the eighth pixel from the right to the first pixel from the top of the search area SR The access candidate P3 is set.

そして、アクセス候補P0の1画素は、メモリバンクBK0に格納される。アクセス候補P1を含めて320画素分のデータは、メモリバンクBK1に格納される。アクセス候補P1を含めてラスタスキャン順に321番目の画素(サーチエリアSRの上から5番目の左から2番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK1に格納されている画素数が、最大格納画素数である320画素を超えるので、画素Q0からのデータは、次のメモリバンクBK2に格納される。   One pixel of the access candidate P0 is stored in the memory bank BK0. Data for 320 pixels including the access candidate P1 is stored in the memory bank BK1. The 321st pixel (the fifth pixel from the top left of the search area SR from the left) Q0 including the access candidate P1 is stored in the memory bank BK1 even if it is determined not to match the access candidate. Since the number of processed pixels exceeds the maximum number of stored pixels of 320, the data from the pixel Q0 is stored in the next memory bank BK2.

次のメモリバンクBK2には、画素Q0から、アクセス候補P2の1つ手前の画素までの253(=80×3−1+16−2)画素のデータが格納され、メモリバンクBK3には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK4には、アクセス候補P3から残りすべての画素である2625(=80×40−(80×8+13))画素が格納される。   The next memory bank BK2 stores data of 253 (= 80 × 3-1 + 16-2) pixels from the pixel Q0 to the pixel immediately before the access candidate P2, and the memory bank BK3 stores the access candidate P1. 1 pixel data is stored, and 2625 (= 80 × 40− (80 × 8 + 13)) pixels which are all remaining pixels from the access candidate P3 are stored in the memory bank BK4.

次に、アクセスパターンAP2は、図25の例と同様に、サーチエリアSRの上から1番目の左から1番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から1番目の左から2番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から1番目の左から3番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目の画素に設定されたアクセス候補P3で構成されている。   Next, as in the example of FIG. 25, the access pattern AP2 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR, and the first left from the top of the search area SR. The access candidate P1 set for the second pixel, the access candidate P2 set for the third pixel from the left from the top of the search area SR, and the eighth pixel from the right for the eighth from the top of the search area SR It is comprised by the access candidate P3 set to.

そして、アクセス候補P0の1画素は、バンクBK0に格納される。アクセス候補P1の1画素は、メモリバンクBK1に格納される。アクセス候補P2を含めて320画素分のデータは、メモリバンクBK2に格納される。アクセス候補P2を含めてラスタスキャン順に321番目の画素(サーチエリアSRの上から5番目の左から3番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK2に格納されている画素数が、最大格納画素数である320画素を超えるので、画素Q0からのデータは、次のメモリバンクBK3に格納される。   One pixel of the access candidate P0 is stored in the bank BK0. One pixel of the access candidate P1 is stored in the memory bank BK1. The data for 320 pixels including the access candidate P2 is stored in the memory bank BK2. The 321st pixel (third pixel from the top left in the search area SR) Q0 including the access candidate P2 in the raster scan order is stored in the memory bank BK2 even if it is determined not to match the access candidate. Since the number of pixels that are stored exceeds the maximum number of stored pixels of 320, the data from the pixel Q0 is stored in the next memory bank BK3.

次のメモリバンクBK3には、画素Q0から、アクセス候補P3の1つ手前の画素までの253(=80×3−2+16−1)画素のデータが格納され、メモリバンクBK3には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK4には、アクセス候補P3から残りすべての画素である2625(=80×40−(80×8+13))画素が格納される。   The next memory bank BK3 stores data of 253 (= 80 × 3-2 + 16-1) pixels from the pixel Q0 to the pixel immediately before the access candidate P3, and the memory bank BK3 stores the access candidate P1. 1 pixel data is stored, and 2625 (= 80 × 40− (80 × 8 + 13)) pixels which are all remaining pixels from the access candidate P3 are stored in the memory bank BK4.

最後に、アクセスパターンAP3は、図26の例と同様に、サーチエリアSRの上から1番目の左から1番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から1番目の左から2番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から1番目の左から3番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から1番目の左から4番目の画素に設定されたアクセス候補P3で構成されている。   Finally, as in the example of FIG. 26, the access pattern AP3 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR and the first left from the top of the search area SR. The access candidate P1 set to the second pixel, the access candidate P2 set to the third pixel from the left from the top of the search area SR, and the first pixel from the left to the top of the search area SR It is comprised by the access candidate P3 set to.

そして、アクセス候補P0の1画素は、メモリバンクBK0に格納される。アクセス候補P1の1画素は、メモリバンクBK1に格納される。アクセス候補P2の1画素は、メモリバンクBK2に格納される。アクセス候補P3を含めて320画素分のデータは、メモリバンクBK3に格納される。アクセス候補P3を含めてラスタスキャン順に321番目の画素(サーチエリアSRの上から5番目の左から4番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK3に格納されている画素数が、最大格納画素数である320画素を超えるので、画素Q0からのデータは、次のメモリバンクBK4に格納される。   One pixel of the access candidate P0 is stored in the memory bank BK0. One pixel of the access candidate P1 is stored in the memory bank BK1. One pixel of the access candidate P2 is stored in the memory bank BK2. The data for 320 pixels including the access candidate P3 is stored in the memory bank BK3. The 321st pixel (the 5th pixel from the top left of the search area SR from the left) Q0 including the access candidate P3 is stored in the memory bank BK3 even if it is determined not to match the access candidate. Since the number of processed pixels exceeds 320, which is the maximum number of stored pixels, data from the pixel Q0 is stored in the next memory bank BK4.

次のメモリバンクBK4には、画素Q0から、残りすべての画素である2877(=80×40−(80×4+3))画素が格納される。   In the next memory bank BK4, 2877 (= 80 × 40− (80 × 4 + 3)) pixels, which are all the remaining pixels, are stored from the pixel Q0.

以上により、各メモリバンクBK0乃至BK4の必要メモリ量のワーストケースすべてを考慮すると、全体として、4157(=320×4+2877)画素のデータが格納されることが必要である。   As described above, considering all the worst cases of the required memory amounts of the memory banks BK0 to BK4, it is necessary to store data of 4157 (= 320 × 4 + 2877) pixels as a whole.

したがって、画像サイズ縦40画素、横80画素をメモリ量1枚とした場合に、4157/(80×40)=略1.29枚分のメモリ量が必要となるだけであり、図23乃至図26を参照して上述したアクセス候補数のメモリバンクを用いた場合の略1.54枚分のメモリ量よりもメモリ量が削減される。   Therefore, when the image size is 40 pixels in the vertical direction and 80 pixels in the horizontal direction, the memory amount is only 4157 / (80 × 40) = 1.29. Therefore, FIG. 23 to FIG. 26, the amount of memory is reduced from the amount of memory corresponding to about 1.54 when the number of memory banks having the number of access candidates described above is used.

図39は、図23のアクセスパターンAP0、仮設定メモリバンク数が6の場合の画像データの各メモリバンクへの初期配置の例を示す図である。すなわち、図37の例の場合から、仮設定メモリバンク数を1つ増やした場合が示されている。   FIG. 39 is a diagram illustrating an example of an initial arrangement of image data in each memory bank when the access pattern AP0 of FIG. That is, the case where the number of temporarily set memory banks is increased by one from the case of the example of FIG. 37 is shown.

すなわち、このアクセスパターンAP0は、図23の例と同様に、サーチエリアSRの上から1番目の左から1番目の画素に設定されたアクセス候補P0、サーチエリアSRの上から8番目の右から3番目の画素に設定されたアクセス候補P1、サーチエリアSRの上から8番目の右から2番目の画素に設定されたアクセス候補P2、サーチエリアSRの上から8番目の右から1番目の画素に設定されたアクセス候補P3で構成されている。   That is, as in the example of FIG. 23, this access pattern AP0 is the access candidate P0 set to the first pixel from the first left from the top of the search area SR and the eighth right from the top of the search area SR. The access candidate P1 set for the third pixel, the access candidate P2 set for the second pixel from the right from the top of the search area SR, and the eighth pixel from the top right of the search area SR It is comprised by the access candidate P3 set to.

また、図37の例においては、アクセス候補の位置、または、式(1)を用いて求められるアクセス候補間距離(すなわち、最大格納画素数)が、213(=80×8/(6−4+1))画素を超えた時点でバンクが切り替えられる。なお、この場合も厳密には、最大格納画素数は、式(2)を用いて、191(=80×8−(64+3)/(6−4+1))として求められる。   In the example of FIG. 37, the position of the access candidate or the distance between access candidates (that is, the maximum number of stored pixels) obtained using Expression (1) is 213 (= 80 × 8 / (6-4 + 1). )) Banks are switched when the number of pixels is exceeded. In this case as well, strictly speaking, the maximum number of pixels to be stored is obtained as 191 (= 80 × 8− (64 + 3) / (6-4 + 1)) using Expression (2).

したがって、メモリバンクBK0には、アクセス候補P0の画素を含めて213画素分のデータが格納される。アクセス候補P0の画素を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から3番目の左から53番目の画素)Q0については、アクセス候補と一致しないと判定されても、メモリバンクBK0に格納されている画素数が、最大格納画素数である213画素を超えるので、画素Q0からのデータは、次のメモリバンクBK1に格納される。   Therefore, the memory bank BK0 stores data for 213 pixels including the pixel of the access candidate P0. Even if it is determined that the 214th pixel (the third pixel from the top third in the search area SR from the left) Q0 including the pixel of the access candidate P0 in the raster scan order does not match the access candidate, the memory bank BK0 Since the number of pixels stored in exceeds the maximum number of stored pixels of 213, the data from the pixel Q0 is stored in the next memory bank BK1.

次のメモリバンクBK1には、画素Q0を含めて213画素分のデータが格納される。画素Q0を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から6番目の左から26番目の画素)Q1については、アクセス候補と一致しないと判定されても、メモリバンクBK1に格納されている画素数が、最大格納画素数である213画素を超えるので、画素Q1からのデータは、次のメモリバンクBK2に格納される。   The next memory bank BK1 stores data for 213 pixels including the pixel Q0. The 214th pixel (the sixth pixel from the top left in the search area SR and the 26th pixel from the left) Q1 including the pixel Q0 is stored in the memory bank BK1 even if it is determined that it does not match the access candidate. Since the number of pixels exceeds 213 pixels, which is the maximum storage pixel number, the data from the pixel Q1 is stored in the next memory bank BK2.

次のメモリバンクBK2には、画素Q1から、アクセス候補P1の1つ手前の画素までの148(=80×2−25+16−3)画素のデータが格納され、メモリバンクBK3には、アクセス候補P1の1画素のデータが格納され、メモリバンクBK4には、アクセス候補P2の1画素のデータが格納される。   The next memory bank BK2 stores data of 148 (= 80 × 2-25 + 16-3) pixels from the pixel Q1 to the pixel immediately before the access candidate P1, and the memory bank BK3 stores the access candidate P1. 1 pixel data is stored, and the memory bank BK4 stores 1 pixel data of the access candidate P2.

メモリバンクBK5には、アクセス候補P3から残りすべての画素である2625(=80×40−(80×8+13))画素が格納される。   The memory bank BK5 stores 2625 (= 80 × 40− (80 × 8 + 13)) pixels, which are all remaining pixels from the access candidate P3.

仮設定メモリバンク数が6の場合のアクセスパターンAP1乃至AP3の図示は省略するが、簡単にまとめると、アクセスパターンAP1で、仮設定メモリバンク数が6の場合には、メモリバンクBK0には、アクセス候補P0の1画素が格納され、メモリバンクBK2には、アクセス候補P1を含めて213画素分のデータが格納される。   Although the illustration of the access patterns AP1 to AP3 when the number of temporarily set memory banks is 6 is omitted, in summary, when the number of temporarily set memory banks is 6 in the access pattern AP1, the memory bank BK0 includes One pixel of the access candidate P0 is stored, and data for 213 pixels including the access candidate P1 is stored in the memory bank BK2.

メモリバンクBK3には、アクセス候補P1を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から3番目の左から54番目の画素)Q0を含めて213画素分のデータが格納される。メモリバンクBK4には、画素Q0を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から6番目の左から27番目の画素)Q1から、アクセス候補P2の1つ手前の画素までの148(=80×2−26+16−2)画素のデータが格納される。   The memory bank BK3 stores data for 213 pixels including the 214th pixel (the third pixel from the left from the top of the search area SR) Q0 in the raster scan order including the access candidate P1. The memory bank BK4 includes 148 pixels from the 214th pixel (sixth pixel from the top left of the search area SR to the 27th pixel from the left) Q1 including the pixel Q0 to the pixel immediately before the access candidate P2. (= 80 × 2−26 + 16−2) Pixel data is stored.

メモリバンクBK4には、アクセス候補P2の1画素のデータが格納され、メモリバンクBK5には、アクセス候補P3から残りすべての画素である2625(=80×40−(80×8+13))画素が格納される。   The memory bank BK4 stores data for one pixel of the access candidate P2, and the memory bank BK5 stores 2625 (= 80 × 40− (80 × 8 + 13)) pixels that are all the remaining pixels from the access candidate P3. Is done.

同様に、アクセスパターンAP2で、仮設定メモリバンク数が6の場合には、メモリバンクBK0には、アクセス候補P0の1画素が格納され、メモリバンクBK1には、アクセス候補P1の1画素が格納され、メモリバンクBK2には、アクセス候補P2を含めて213画素分のデータが格納される。   Similarly, in the access pattern AP2, when the number of temporarily set memory banks is 6, one pixel of the access candidate P0 is stored in the memory bank BK0, and one pixel of the access candidate P1 is stored in the memory bank BK1. The memory bank BK2 stores data for 213 pixels including the access candidate P2.

メモリバンクBK3には、アクセス候補P2を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から3番目の左から55番目の画素)Q0を含めて213画素分のデータが格納される。メモリバンクBK4には、画素Q0を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から6番目の左から28番目の画素)Q1から、アクセス候補P3の1つ手前の画素までの148(=80×2−27+16−1)画素のデータが格納される。   The memory bank BK3 stores data for 213 pixels including the 214th pixel (third pixel from the top left of the search area SR from the left) Q0 in the raster scan order including the access candidate P2. The memory bank BK4 includes 148 pixels from the 214th pixel (the 6th pixel from the top left of the search area SR to the 28th pixel from the left) Q1 including the pixel Q0 to the pixel immediately before the access candidate P3. Data of (= 80 × 2-27 + 16-1) pixels is stored.

メモリバンクBK5には、アクセス候補P3から残りすべての画素である2625(=80×40−(80×8+13))画素が格納される。   The memory bank BK5 stores 2625 (= 80 × 40− (80 × 8 + 13)) pixels, which are all remaining pixels from the access candidate P3.

さらに、アクセスパターンAP3で、仮設定メモリバンク数が6の場合には、メモリバンクBK0には、アクセス候補P0の1画素が格納され、メモリバンクBK1には、アクセス候補P1の1画素が格納され、メモリバンクBK2には、アクセス候補P2の1画素が格納され、メモリバンクBK3には、アクセス候補P3を含めて213画素分のデータが格納される。   Further, in the access pattern AP3, when the temporarily set memory bank number is 6, one pixel of the access candidate P0 is stored in the memory bank BK0, and one pixel of the access candidate P1 is stored in the memory bank BK1. The memory bank BK2 stores one pixel of the access candidate P2, and the memory bank BK3 stores data of 213 pixels including the access candidate P3.

メモリバンクBK4には、アクセス候補P3を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から3番目の左から56番目の画素)Q0を含めて213画素分のデータが格納される。メモリバンクBK5には、画素Q0を含めてラスタスキャン順に214番目の画素(サーチエリアSRの上から6番目の左から29番目の画素)Q1から、残りすべての画素である2772(=80×40−(80×5+28))画素が格納される。   The memory bank BK4 stores data for 213 pixels including the 214th pixel (the third pixel from the top left of the search area SR, the 56th pixel from the left) Q0 in the raster scan order including the access candidate P3. The memory bank BK5 includes all the remaining pixels 2772 (= 80 × 40) from the 214th pixel (the sixth pixel from the top left in the search area SR to the 29th pixel) Q1 in the raster scan order including the pixel Q0. − (80 × 5 + 28)) pixels are stored.

以上により、各メモリバンクBK0乃至BK5の必要メモリ量のワーストケースすべてを考慮すると、全体として、3837(=213×5+2772)画素のデータが格納されることが必要である。   As described above, considering all the worst cases of the required memory amounts of the memory banks BK0 to BK5, it is necessary to store data of 3837 (= 213 × 5 + 2772) pixels as a whole.

したがって、画像サイズ縦40画素、横80画素をメモリ量1枚とした場合に、3837/(80×40)=略1.19枚分のメモリ量が必要となるだけであり、図23乃至図26を参照して上述したアクセス候補数分のメモリバンクBKを用いた場合の略1.54枚分のメモリ量よりもメモリ量が削減される。   Therefore, when the image size is 40 pixels vertically and 80 pixels horizontally, the memory amount is only 3837 / (80 × 40) = 1.19 sheets. 26, the amount of memory is reduced from the amount of memory corresponding to approximately 1.54 when the number of memory banks BK corresponding to the number of access candidates described above is used.

ここで、図37乃至図39を参照して上述した例を一般化すると、式(1)により仮設定メモリバンク数の場合の1つのメモリバンクあたりの最大格納画素数が求められ、その際の必要メモリ量は、次の式(3)で表される。   Here, when the example described above with reference to FIG. 37 to FIG. 39 is generalized, the maximum number of pixels stored per memory bank in the case of the temporarily set memory bank number is obtained by Expression (1). The required memory amount is expressed by the following equation (3).

必要メモリ量≒ 最大格納画素数×(仮設定メモリバンク数−1)
+ 画像の横サイズ×画像の縦サイズ
− 1バンクに格納する最大画素数×(仮設定メモリバンク数−アクセス候補数)
−(アクセス候補数−1) ・・・(3)
Necessary memory ≒ Maximum storage pixel number x (Temporary setting memory bank number-1)
+ Image horizontal size x Image vertical size-Maximum number of pixels stored in one bank x (Number of temporarily set memory banks-Number of access candidates)
-(Number of access candidates-1) (3)

以上のようにして、所定数の仮設定されたメモリバンク数に応じて、必要メモリ量を求めることができる。   As described above, the required memory amount can be obtained according to the predetermined number of temporarily set memory banks.

図40は、メモリバンク数と必要メモリ量の関係を示す図である。   FIG. 40 is a diagram showing the relationship between the number of memory banks and the required memory amount.

図40の例において、横軸がメモリバンク数(個)を表しており、縦軸が必要メモリ量(枚:(画像枚数))を表している。   In the example of FIG. 40, the horizontal axis represents the number of memory banks (pieces), and the vertical axis represents the required memory amount (sheets: (number of images)).

メモリバンク数が4個の場合は、略1.54枚分のメモリ量が必要とされており、メモリバンク数が5個の場合は、略1.29枚分のメモリ量が必要とされており、メモリバンク数が6個の場合は、略1.19枚分のメモリ量が必要とされている。また、メモリバンク数が7個の場合は、略1.17枚分のメモリ量が必要とされており、メモリバンク数が8個の場合は、略1.15枚分のメモリ量が必要とされており、メモリバンク数が9個の場合は、略1.1枚分のメモリ量が必要とされている。以降も、メモリバンク数がサーチエリア画素数(128)の場合に、必要となるメモリ量が1となるまで、メモリバンク数が増える毎にだんだん必要となるメモリ量は1に近づいている。   If the number of memory banks is 4, approximately 1.54 memory is required, and if the number of memory banks is 5, approximately 1.29 memory is required. If the number of memory banks is 6, approximately 1.19 memory amounts are required. In addition, when the number of memory banks is 7, approximately 1.17 memory is required, and when the number of memory banks is 8, approximately 1.15 memory is required. In the case where the number of memory banks is 9, approximately 1.1 memory is required. Thereafter, when the number of memory banks is the number of search area pixels (128), the required memory amount gradually approaches 1 as the number of memory banks increases until the required memory amount becomes 1.

すなわち、メモリバンク数をむやみに増やしたとしても、アドレスが膨大になったり、チップ面積が大きくなったり、消費電力が多くなったりするだけである半面、必要となるメモリ量の減り方は、次第に少なくなるので、メモリ量の減り方の少なくなったところに、メモリ量を決定することが望ましい。   In other words, even if the number of memory banks is increased unnecessarily, the address becomes enormous, the chip area increases, and the power consumption increases, but on the other hand, how to reduce the required amount of memory gradually Since the amount of memory decreases, it is desirable to determine the amount of memory where the amount of memory decreases.

そして、メモリバンク数と必要メモリ量は、トレードオフの関係であるため、メモリ量を決定することで、そのときに必要最低限のメモリバンク数が求まる。   Since the number of memory banks and the necessary memory amount are in a trade-off relationship, the minimum necessary memory bank number can be obtained at that time by determining the memory amount.

次に、図41のフローチャートを参照して、設計装置201のバンク数設定処理を説明する。   Next, the bank number setting process of the design apparatus 201 will be described with reference to the flowchart of FIG.

例えば、設計者は、データ格納装置111のパラメータを設計するために必要な所定の値(画像サイズ、サーチエリアのサイズ、アクセスパターン数、および利用候補となるメモリバンク数)を、入力部216を構成するキーボードなどを操作することで、設計装置201に入力する。なお、利用候補となるメモリバンク数は、複数入力される。   For example, the designer inputs predetermined values (image size, search area size, number of access patterns, and number of memory banks that are use candidates) necessary for designing parameters of the data storage device 111 to the input unit 216. An operation is performed on a keyboard or the like to be input to the design apparatus 201. Note that a plurality of memory banks as use candidates are input.

格納画素数算出部231は、入力部216の操作に対応して、所定の値を入力するともに、ステップS151において、利用候補となるメモリバンク数を仮設定し、ステップS152において、画像サイズ、サーチエリアのサイズ、アクセスパターン数、および仮設定されたメモリバンク数に基づいて、1つのメモリバンク当たりの最大格納画素数を算出し、算出した最大格納画素数を、メモリ量算出部232に出力する。   The storage pixel number calculation unit 231 inputs a predetermined value in response to the operation of the input unit 216, and temporarily sets the number of memory banks that are candidates for use in step S151. In step S152, the image size and search Based on the size of the area, the number of access patterns, and the temporarily set number of memory banks, the maximum number of stored pixels per memory bank is calculated, and the calculated maximum number of stored pixels is output to the memory amount calculation unit 232. .

ステップS153において、メモリ量算出部232は、格納画素数算出部231により算出された最大格納画素数、仮設定されたメモリバンク数、画像サイズ、アクセスパターン数に基づいて、その仮設定されたメモリバンク数の場合の必要メモリ量を算出し、算出した必要メモリ量と仮設定されたメモリバンク数をバンク数設定部233に出力する。   In step S153, the memory amount calculation unit 232 determines the temporarily set memory based on the maximum storage pixel number calculated by the storage pixel number calculation unit 231, the temporarily set memory bank number, the image size, and the access pattern number. The required memory amount in the case of the number of banks is calculated, and the calculated required memory amount and the temporarily set memory bank number are output to the bank number setting unit 233.

ステップS154において、格納画素数算出部231は、すべての候補に対する処理が終了したか否かを判定し、すべての候補に対する処理がまだ終了していないと判定した場合、処理は、ステップS152に戻り、次の仮設定されたメモリバンク数についての処理が実行される。   In step S154, the stored pixel number calculation unit 231 determines whether or not the processing for all candidates has been completed. If it is determined that the processing for all candidates has not yet been completed, the processing returns to step S152. Then, the process for the next temporarily set memory bank number is executed.

ステップS154において、すべての候補に対する処理が終了したと判定された場合、ステップS155において、バンク数設定部233は、図40を参照して上述したように、複数の仮設定されたメモリバンク数と、それに対応する必要メモリ量に基づいて、データ格納装置111で使用されるメモリ量を設定し、設定されたメモリ量に対応するメモリバンク数を、データ格納装置111で使用されるメモリバンク数に設定する。   If it is determined in step S154 that the processing for all candidates has been completed, in step S155, the bank number setting unit 233 sets the plurality of temporarily set memory bank numbers as described above with reference to FIG. Based on the required amount of memory corresponding thereto, the amount of memory used in the data storage device 111 is set, and the number of memory banks corresponding to the set memory amount is set to the number of memory banks used in the data storage device 111. Set.

以上のように、画像サイズ、サーチエリアのサイズ、アクセスパターン数、および仮設定されたメモリバンク数に基づいて、1つのメモリバンク当たりの最大格納画素数が算出され、算出された最大格納画素数、仮設定されたメモリバンク数、画像サイズ、アクセスパターン数に基づいて、その仮設定されたメモリバンク数の場合の必要メモリ量が算出され、算出された必要メモリ量の中から、最適なものが決定されて、それに応じて、メモリバンク数も設定される。   As described above, based on the image size, the size of the search area, the number of access patterns, and the temporarily set number of memory banks, the maximum number of stored pixels per memory bank is calculated, and the calculated maximum number of stored pixels Based on the temporarily set memory bank number, image size, and access pattern number, the required memory amount for the temporarily set memory bank number is calculated, and the optimal one of the calculated required memory amounts is calculated. And the number of memory banks is set accordingly.

したがって、全体的にメモリ量が削減されたデータ格納装置を設計することができる。   Therefore, it is possible to design a data storage device in which the memory amount is reduced as a whole.

また、このようにして設計されたデータ格納装置111においては、全体としてメモリ量を削減して、全データにおいて所望の複数画素を同時アクセスすることができる。   Further, in the data storage device 111 designed in this way, it is possible to simultaneously access a desired plurality of pixels in all data by reducing the memory amount as a whole.

本発明によれば、全体としてメモリ量を削減して、全データにおいて所望の複数画素を同時アクセスすることができる。   According to the present invention, it is possible to reduce the amount of memory as a whole and simultaneously access a desired plurality of pixels in all data.

なお、本発明は、アクセスパターンのアクセス候補を、開始位置からラスタスキャン順に順次移動した各位置で、アクセスパターンで特定される複数の画素の画素データの同時取得を容易に行い得るものであり、例えば、特定のデータ配列を認識してパターン認識や動き検出などの処理を行う装置に適用できる。   The present invention can easily simultaneously acquire the pixel data of a plurality of pixels specified by the access pattern at each position where the access pattern access candidates are sequentially moved from the start position in the raster scan order. For example, the present invention can be applied to an apparatus that recognizes a specific data array and performs processing such as pattern recognition and motion detection.

上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。   The series of processes described above can be executed by hardware or can be executed by software. When a series of processing is executed by software, a program constituting the software executes various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed from a program recording medium in a general-purpose personal computer or the like.

コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図35に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア221、または、プログラムが一時的もしくは永続的に格納されるROM212や、記憶部218を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部219を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。   As shown in FIG. 35, a program recording medium for storing a program that is installed in a computer and is ready to be executed by the computer is a magnetic disk (including a flexible disk), an optical disk (CD-ROM (Compact Disc-Read Only). Memory, DVD (Digital Versatile Disc), a magneto-optical disk, a removable medium 221 that is a package medium made of a semiconductor memory, a ROM 212 in which a program is temporarily or permanently stored, and a storage unit 218 It is comprised by the hard disk etc. which comprise. The program is stored in the program recording medium using a wired or wireless communication medium such as a local area network, the Internet, or digital satellite broadcasting via a communication unit 219 which is an interface such as a router or a modem as necessary. Done.

なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。   In the present specification, the step of describing the program stored in the program recording medium is not limited to the processing performed in time series in the order described, but is not necessarily performed in time series. Or the process performed separately is also included.

一般的な半導体メモリの構造を模式的に示す図である。It is a figure which shows typically the structure of a general semiconductor memory. 図1の半導体メモリにおいて、同時アクセスできない状態を模式的に示す図である。FIG. 2 is a diagram schematically showing a state where simultaneous access is not possible in the semiconductor memory of FIG. 1. 複数メモリバンクのメモリ構成を示す図である。It is a figure which shows the memory structure of a several memory bank. ある画像に対して、同時アクセスしたい4画素のパターンを示す図である。It is a figure which shows the pattern of 4 pixels which want to access simultaneously with respect to a certain image. アクセス候補間の画素を1 画素毎に別メモリバンクに格納した状態を模式的に示す図である。It is a figure which shows typically the state which stored the pixel between access candidates in another memory bank for every pixel. アクセス候補間の画素を同じメモリバンクに格納した状態を模式的に示す図である。It is a figure which shows typically the state which stored the pixel between access candidates in the same memory bank. アクセスパターンの移動がアクセス画素間を超えた場合を模式的に示した図である。It is the figure which showed typically the case where the movement of an access pattern exceeded between access pixels. 本発明を適用したデータ格納装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data storage apparatus to which this invention is applied. 図8のデータ格納制御部の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data storage control part of FIG. 図8のデータ読み出し格納制御部の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data read-out storage control part of FIG. アクセスパターンの例を示す図である。It is a figure which shows the example of an access pattern. 画像データの各メモリバンクへの初期配置における2次元配列状態を示す図である。It is a figure which shows the two-dimensional arrangement | sequence state in the initial arrangement | positioning to each memory bank of image data. 画像データの各メモリバンクへの初期配置における1次元配列状態を示す図である。It is a figure which shows the one-dimensional arrangement | sequence state in the initial arrangement | positioning to each memory bank of image data. 図8のデータ格納制御部の初期配置処理を説明するフローチャートである。It is a flowchart explaining the initial arrangement | positioning process of the data storage control part of FIG. ワード線およびビット線へのアクセスと再格納の方法を模式的に示す図である。It is a figure which shows typically the method of access to a word line and a bit line, and a re-storing. 図12の初期配置におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の2次元配列状態を示す図である。It is a figure which shows the two-dimensional arrangement | sequence state at the time of storing the data of the pixel of the access candidate in the initial arrangement | positioning of FIG. 12 in the next bank address. 図13の初期配置におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の1次元配列状態を示す図である。It is a figure which shows the one-dimensional arrangement | sequence state at the time of storing the data of the pixel of the access candidate in the initial arrangement | positioning of FIG. 13 in the next bank address. サーチエリアがラスタスキャン順に、1画素移動した場合のアクセス候補を示す図である。It is a figure which shows the access candidate when a search area moves 1 pixel in the raster scan order. 図16におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の2次元配列状態を示す図である。It is a figure which shows the two-dimensional arrangement | sequence state at the time of storing the data of the pixel of the access candidate in FIG. 16 in the next bank address. 図17におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の1次元配列状態を示す図である。It is a figure which shows the one-dimensional arrangement | sequence state at the time of storing the data of the pixel of the access candidate in FIG. 17 in the next bank address. 図8のデータ読み出し格納制御部のデータ再格納制御処理を説明するフローチャートである。It is a flowchart explaining the data re-storing control process of the data read-out storage control part of FIG. 図21のステップS26のアドレス計算処理を説明するフローチャートである。It is a flowchart explaining the address calculation process of step S26 of FIG. メモリバンクBK0の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。It is a figure which shows an access pattern in case the required memory amount of memory bank BK0 becomes a worst case. メモリバンクBK1の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。It is a figure which shows an access pattern in case the required memory amount of memory bank BK1 becomes a worst case. メモリバンクBK2の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。It is a figure which shows the access pattern in case the required memory amount of memory bank BK2 becomes a worst case. メモリバンクBK3の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。It is a figure which shows an access pattern in case the required memory amount of memory bank BK3 becomes a worst case. 本発明を適用したデータ格納装置の他の構成例を示すブロック図である。It is a block diagram which shows the other structural example of the data storage apparatus to which this invention is applied. 図27のデータ格納制御部の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data storage control part of FIG. 図29は、図23のアクセスパターンの場合の画像データの各バンクへの初期配置の例を示す図である。FIG. 29 is a diagram showing an example of initial arrangement of image data in each bank in the case of the access pattern of FIG. 図29は、図26のアクセスパターンの場合の画像データの各バンクへの初期配置の例を示す図である。FIG. 29 is a diagram showing an example of initial arrangement of image data in each bank in the case of the access pattern of FIG. 他のアクセスパターンの場合の画像データの各バンクへの初期配置の例を示す図である。It is a figure which shows the example of the initial arrangement | positioning to each bank of the image data in the case of another access pattern. 図31のアクセスパターンの場合のセレクタの構成を模式的に示す図である。FIG. 32 is a diagram schematically showing a configuration of a selector in the case of the access pattern of FIG. 31. 図27のデータ格納制御部の初期配置処理フローチャートである。It is an initial arrangement processing flowchart of the data storage control unit of FIG. 図33のステップS112の初期格納のアドレス計算処理を説明するフローチャートである。It is a flowchart explaining the address calculation process of the initial storage of step S112 of FIG. 本発明を適用した設計装置のハードウエア構成例を示すブロック図である。It is a block diagram which shows the hardware structural example of the design apparatus to which this invention is applied. 図35の設計装置の機能構成例を示すブロック図である。FIG. 36 is a block diagram illustrating a functional configuration example of the design apparatus of FIG. 35. 図23のアクセスパターン、仮設定メモリバンク数が5の場合の画像データの各バンクへの初期配置の例を示す図である。FIG. 24 is a diagram illustrating an example of initial arrangement of image data in each bank when the access pattern in FIG. 23 and the number of temporarily set memory banks are five. 仮設定メモリバンク数が5の場合の図24乃至図26のアクセスパターンの例を示す図である。FIG. 27 is a diagram illustrating an example of access patterns in FIGS. 24 to 26 when the number of temporarily set memory banks is five. 図23のアクセスパターン、仮設定メモリバンク数が6の場合の画像データの各バンクへの初期配置の例を示す図である。FIG. 24 is a diagram showing an example of initial arrangement of image data in each bank when the access pattern of FIG. 23 and the number of temporarily set memory banks are six. メモリバンク数と必要メモリ量の関係を示す図である。It is a figure which shows the relationship between the number of memory banks, and a required memory amount. 図35の設計装置のバンク数設定処理を説明するフローチャートである。It is a flowchart explaining the bank number setting process of the design apparatus of FIG.

符号の説明Explanation of symbols

11 データ格納装置, 31 メモリ, 32 データ格納制御部, 33 データ読み出し格納制御部,41 カウンタ, 42 一致判定部, 43 フラグ生成部, 44 バンクアドレスカウンタ, 45 ビット線アドレスカウンタ, 46 ワード線アドレスカウンタ, 47 アドレス生成部, 48 格納制御処理部 , 111 データ格納装置, 121 データ格納制御部, 122 セレクタ設定部, 123 セレクタ, 141 画素数判定部, 142 アドレス生成部, 201 設計装置, 211 CPU, 212 ROM, 213 RAM, 216 入力部, 231 格納画素数算出部, 232 メモリ量算出部, 233 バンク数設定部   DESCRIPTION OF SYMBOLS 11 Data storage device, 31 Memory, 32 Data storage control part, 33 Data read-out storage control part, 41 Counter, 42 Match determination part, 43 Flag production | generation part, 44 Bank address counter, 45 Bit line address counter, 46 Word line address counter , 47 address generation unit, 48 storage control processing unit, 111 data storage device, 121 data storage control unit, 122 selector setting unit, 123 selector, 141 pixel number determination unit, 142 address generation unit, 201 design device, 211 CPU, 212 ROM, 213 RAM, 216 input unit, 231 storage pixel number calculation unit, 232 memory amount calculation unit, 233 bank number setting unit

Claims (3)

メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置において、
前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数を算出する格納画素数算出手段と、
前記格納画素数算出手段により算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、前記メモリに必要なメモリ量を算出するメモリ量算出手段と、
前記メモリ量算出手段により算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定するバンク数設定手段と
を備える設計装置。
In a design device for designing parameters of a data storage device that reads out a plurality of data at the same time by allocating data to a plurality of memory banks constituting the memory and storing the data,
The multiplication result of the vertical size of the accessible area at a time of the horizontal size and the data of the data shows a plurality of candidate number memory banks to be set candidates, a plurality of desired data to be read simultaneously Storage pixel number calculating means for calculating the maximum number of pixels stored in one memory bank by dividing by the addition result obtained by adding 1 to the difference in the number of access candidates constituting the access pattern;
Multiplication result and the addition result obtained by adding the multiplication result between the horizontal size and the vertical size of the data of one minus the number of the maximum pixel calculated from the plurality of candidate memory bank number by the stored pixel number finding means Is necessary for the memory by subtracting the result of multiplying the maximum number of pixels by the value obtained by subtracting the number of access candidates from the number of candidate memory banks and the value obtained by subtracting 1 from the number of access candidates. A memory amount calculating means for calculating a correct memory amount;
A design apparatus comprising: a bank number setting unit configured to set the number of memory banks in which the data is distributed and stored by the data storage device according to the memory amount calculated by the memory amount calculation unit.
メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置が
前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数を算出し、
算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、前記メモリに必要なメモリ量を算出し、
算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定する
ステップを含む設計方法。
A design device for designing parameters of a data storage device that reads out a plurality of data simultaneously by distributing data to a plurality of memory banks constituting a memory and storing the data,
The multiplication result of the vertical size of the accessible area at a time of the horizontal size and the data of the data shows a plurality of candidate number memory banks to be set candidates, a plurality of desired data to be read simultaneously By dividing by the addition result obtained by adding 1 to the difference in the number of access candidates constituting the access pattern, the maximum number of pixels stored in one memory bank is calculated,
Number calculated the maximum pixel and the multiplication result of 1 and minus from said plurality of candidate memory bank number, from the addition result obtained by adding the multiplication result between the horizontal size and the vertical size of the data, the maximum number of pixels and By subtracting the result obtained by subtracting the number of access candidates from the number of candidate memory banks and the value obtained by subtracting 1 from the number of access candidates, the amount of memory required for the memory is calculated,
A design method including a step of setting the number of memory banks in which the data is distributed and stored by the data storage device according to the calculated amount of memory.
メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置において、
前記データのサイズと前記データのうち1度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に1を加算した加算結果で除算することで、1つのメモリバンクに格納する最大画素数が算出され、算出された前記最大画素数前記複数の候補メモリバンク数から1引いた値との乗算結果と、前記データのサイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から1引いた値を減算することで、必要なメモリ量が算出され、算出された前記メモリ量に応じて設定された数のメモリバンクからなるメモリと、
前記データを前記設定された数のメモリバンクに振り分けて格納する際に、前記アクセスパターンおよび前記最大画素数に基づいて、前記アクセス候補間のデータを前記最大画素数だけ同じメモリバンクに格納することにより初期配置するデータ格納処理手段と、
前記設定された数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各メモリバンクからそれぞれ読み出すデータ読み出し格納処理手段とを備え、
前記データ読み出し格納処理手段は、前記メモリバンクから画素のデータを読み出し、前記アクセスパターンのアクセス候補の各位置に基づいて決まる範囲のうち、前記アクセスパターンの移動方向に基づいて決まる1の隣接する範囲の画素のデータが格納されているメモリバンクに読み出した前記画素のデータを格納する
データ格納装置。
In a data storage device that reads out a plurality of data simultaneously by allocating data to a plurality of memory banks constituting the memory,
The multiplication result of the vertical size of the accessible area at a time of the horizontal size and the data of the data shows a plurality of candidate number memory banks to be set candidates, a plurality of desired data to be read simultaneously The maximum number of pixels to be stored in one memory bank is calculated by dividing the difference of the number of access candidates constituting the access pattern by the addition result of 1, and the calculated maximum pixel number and the plurality of candidates From the multiplication result of the value obtained by subtracting 1 from the number of memory banks and the addition result obtained by adding the multiplication result of the horizontal size and vertical size of the data, the access candidate is calculated from the maximum number of pixels and the plurality of candidate memory banks. multiplication result between the value obtained by subtracting the number, and by subtracting the value minus 1. from the number of the access candidate, the calculated amount of memory required, depending on the amount of memory that is calculated And a memory consisting of a set number of memory banks,
When distributing the data to the set number of memory banks and storing the data, the data between the access candidates is stored in the same memory bank by the maximum number of pixels based on the access pattern and the maximum number of pixels. Data storage processing means to be initially arranged by
A data read storage processing means for reading out pixel data from each memory bank for data initially arranged on a memory composed of the set number of memory banks,
The data read storage processing unit reads pixel data from the memory bank, and one adjacent range determined based on a moving direction of the access pattern among ranges determined based on each position of access candidates of the access pattern A data storage device for storing the read pixel data in a memory bank in which the pixel data is stored.
JP2005309334A 2005-10-25 2005-10-25 DESIGN DEVICE AND METHOD, AND DATA STORAGE DEVICE Expired - Fee Related JP4655220B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005309334A JP4655220B2 (en) 2005-10-25 2005-10-25 DESIGN DEVICE AND METHOD, AND DATA STORAGE DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005309334A JP4655220B2 (en) 2005-10-25 2005-10-25 DESIGN DEVICE AND METHOD, AND DATA STORAGE DEVICE

Publications (2)

Publication Number Publication Date
JP2007122122A JP2007122122A (en) 2007-05-17
JP4655220B2 true JP4655220B2 (en) 2011-03-23

Family

ID=38145939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005309334A Expired - Fee Related JP4655220B2 (en) 2005-10-25 2005-10-25 DESIGN DEVICE AND METHOD, AND DATA STORAGE DEVICE

Country Status (1)

Country Link
JP (1) JP4655220B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182384A (en) * 2003-12-18 2005-07-07 Seiko Epson Corp Image processor, microcomputer and electronic device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182384A (en) * 2003-12-18 2005-07-07 Seiko Epson Corp Image processor, microcomputer and electronic device

Also Published As

Publication number Publication date
JP2007122122A (en) 2007-05-17

Similar Documents

Publication Publication Date Title
US8493400B2 (en) Memory device and memory control for controlling the same
EP3494542B1 (en) Method and system for correcting a distorted input image
CN108346131A (en) A kind of digital image scaling method, device and display equipment
US7979622B2 (en) Memory access method
US20050232027A1 (en) Data storage device, data storage control apparatus, data storage control method, and data storage control program
JP4586627B2 (en) DATA ACCESS DEVICE, DATA ACCESS METHOD, PROGRAM, AND RECORDING MEDIUM
JP4655220B2 (en) DESIGN DEVICE AND METHOD, AND DATA STORAGE DEVICE
EP1575298B1 (en) Data storage apparatus, data storage control apparatus, data storage control method, and data storage control program
JP3464621B2 (en) Bank variable memory
CN115035128A (en) Image overlapping sliding window segmentation method and system based on FPGA
JP4506256B2 (en) Data storage device, data storage control device, data storage control method, and data storage control program
US8416252B2 (en) Image processing apparatus and memory access method thereof
JP4534488B2 (en) Data storage device, data storage control device, data storage control method, and data storage control program
JP4487568B2 (en) Data storage device, data storage control device, data storage control method, and data storage control program
JP4687108B2 (en) Data storage device, data storage control device, data storage control method, and data storage control program
JP4735008B2 (en) Data storage device, data storage control device, data storage control method, and data storage control program
CN111831212B (en) Data writing and reading method, device and equipment
JP4635687B2 (en) DATA ACCESS DEVICE, DATA ACCESS METHOD, PROGRAM, AND RECORDING MEDIUM
CN113542770B (en) DCT conversion method and DCT conversion circuit system
JP5605225B2 (en) MEMORY CONTROL DEVICE, MEMORY MAPPING METHOD, AND PROGRAM
JP2006309602A (en) Data access device, data access method, program and recording medium
JP6708127B2 (en) Image processing apparatus, image processing method, and program
CN115861027A (en) DDR-based 4K image rotation method on SOC platform

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101105

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101208

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

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees