(57)【特許請求の範囲】
【請求項１】
メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置において、
前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数を算出する格納画素数算出手段と、
前記格納画素数算出手段により算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、前記メモリに必要なメモリ量を算出するメモリ量算出手段と、
前記メモリ量算出手段により算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定するバンク数設定手段と
を備える設計装置。
【請求項２】
メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置が、
前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数を算出し、
算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、前記メモリに必要なメモリ量を算出し、
算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定する
ステップを含む設計方法。
【請求項３】
メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置において、
前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数が算出され、算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、必要なメモリ量が算出され、算出された前記メモリ量に応じて設定された数のメモリバンクからなるメモリと、
前記データを前記設定された数のメモリバンクに振り分けて格納する際に、前記アクセスパターンおよび前記最大画素数に基づいて、前記アクセス候補間のデータを前記最大画素数だけ同じメモリバンクに格納することにより初期配置するデータ格納処理手段と、
前記設定された数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各メモリバンクからそれぞれ読み出すデータ読み出し格納処理手段とを備え、
前記データ読み出し格納処理手段は、前記メモリバンクから画素のデータを読み出し、前記アクセスパターンのアクセス候補の各位置に基づいて決まる範囲のうち、前記アクセスパターンの移動方向に基づいて決まる１の隣接する範囲の画素のデータが格納されているメモリバンクに読み出した前記画素のデータを格納する
データ格納装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計装置および方法、並びにデータ格納装置に関し、特に、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うことができるようにした設計装置および方法、並びにデータ格納装置に関する。
【０００２】
半導体メモリＭＹは、図１の例に示すように、ワード線ＷＬとビット線ＢＬを指定してメモリセルＭＣをアクセスする構造となっており、指定された１ワード線ＷＬとビット線ＢＬの交差する位置にあるメモリセルＭＣに格納されたデータが読み出される。
【０００３】
このような構造の半導体メモリＭＹでは、複数のワード線ＷＬで同じビット線ＢＬを共有している。したがって、図２の例のように、例えば、２つのワード線ＷＬ１，ＷＬ２を指定するとビット線ＢＬには、これらワード線Ｗｌ１，ＷＬ２のデータが混じり合って出てくるため、異なるワード線のデータには同時アクセスできない。
【０００４】
一方、独立したメモリバンクからは同時にデータを読み出すことが可能であり、図３の例に示すように、半導体メモリＭＹをｎ個のメモリバンクＢＫ０乃至ＢＫｎ−１に分け、それぞれのメモリバンクＢＫ０乃至ＢＫｎ−１に異なるアドレスを指定することで複数のワード線ＷＬのデータに同時アクセスすることができるが、メモリバンク内の異なるワード線ＷＬのデータには同時アクセスできない。すなわち、同時に読み出すことができるのは、各メモリバンクから同一ワード線上に格納されたデータであって、同一メモリバンクにおける異なるワード線上に格納されたデータは同時読み出することができない。
【０００５】
ここで、メモリバンクとは、複数のワード線と複数のビット線からなるメモリにおいて選択されるワード・アドレスが単一であるメモリ単位をいう。
【０００６】
また、従来より、入力データに含まれる特定のデータ配列を認識することにより、例えば画像データのパターン認識等の処理や、動き検出等の処理が行われている。例えば、数ライン画像データを蓄積でき画素単位で出力できるバッファメモリと、数ビット幅データを処理可のプロセッサエレメントの複数を含み複数プロセッサエレメントで同時並行してデータ処理ができるデータ処理器と、マッチング参照データと制御データを格納する制御情報メモリとを備え、データ処理器の各プロセッサエレメントが、バッファメモリが出力した画像データの中の、自己に宛てられた注目画素中心のマトリクスの画像データ群を、閾値を用いて２値化して該プロセッサエレメントが処理可能なシリアル配列のビット幅に区切った対象データに変換し、同形式で制御情報メモリにあった参照データと合致か判定することが行われている（例えば、特許文献１参照）。
【０００７】
また、動画像の処理の分野において、動き、すなわち、時間的に異なる画像中の物体の動き方向と大きさ（または速さ）が用いられており、例えば画像の高能率符号化における動き補償フレーム間符号化や、フレーム間時間領域フィルタによるテレビジョン雑音低減装置における動きによるパラメータ制御等に動きが用いられる。動きを求める動き検出方法としては、ブロックマッチング法が知られている。
【０００８】
本件出願人は、画像信号中の動きを検出する動き検出方法において、（ａ）１画面全体または１画面を複数に分割した比較的大きなブロック毎に、マッチング法によって積算値テーブルを生成し、上記積算値テーブルを用いて、上記１画面全体または１画面を複数に分割した比較的大きなブロック毎に、１または複数の候補ベクトルを抽出するステップと、（ｂ）上記候補ベクトルのみを対象としてマッチングを行い、１画素または比較的小さいブロック毎に動きベクトルを検出するステップとからなる２ステップの動き検出方法を先に提案している。この２ステップの動き検出方法では、画像の動き検出を２ステップ方式の代表点マッチングにより行う代表点マッチング、ベクトル割り当ての２ステップの過程において、いずれも画像内における任意の複数の画素データを同時に読み出す必要がある（例えば、特許文献２参照）。
【０００９】
【特許文献１】特開２００３−２０３２３６号公報
【特許文献２】特開２００１−６１１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、図４の例に示すように、水平または垂直方向に伸びる画素列からなる所定の画像に対して、同時アクセスしたい画素（以下、アクセス候補の画素とも称する）が４個の画素である場合、所望の複数画素を別メモリバンクに格納するための必要最低限のメモリバンク数は４となる。図４の例において、丸は、１画素を示しており、黒丸は、アクセス候補の画素を示している。
【００１１】
この画像上に、縦(ｈ画素）×横（ｗ画素）のサーチエリアＳＲがあり、その中で任意のアクセスしたいｎ個の候補がある場合、その種類は、（ｈ×ｗ）Ｃ（ｎ）個ある。このひとつひとつをアクセスパターンと称する。アクセスパターンとしては、サーチエリアＳＲ内の任意のアクセス候補の数の組み合わせが可能である。すなわち、図４に示される４画素は、１６×８Ｃ４通りの組み合わせの内の１つのアクセスパターンの例を示したものである。
【００１２】
ここで、サーチエリアＳＲがラスタスキャン順に１画素ずつ順に移動し、それに応じて、アクセスパターンのアクセス候補の画素もラスタスキャン順に移動し、その移動した位置がアクセス候補の画素となって、それらのデータを同時に取得する場合を考える。
【００１３】
この場合、初期配置において、アクセスパターンのアクセス候補の画素以外のデータの格納方法にも工夫が必要となる。例えば、この画像のアクセス候補の画素間の画素のデータを、図５の例に示すように、ラスタスキャン順に、４つのメモリバンクに１画素毎に格納するようにしたり、図６の例に示すように、アクセス候補の画素間のデータを、同じメモリバンクに格納することが必要となる。
【００１４】
図５および図６の例において、丸に付された数字は、各画素のデータが格納される４つのメモリバンクＢＫ０乃至メモリバンクＢＫ３を示している。また、白抜き数字の付された黒丸は、アクセス候補の画素を示しており、白抜き数字が示すメモリバンクにデータが格納されていることを表している。
【００１５】
図５の例においては、左上の画素の画素データからラスタスキャン順に、各画素のデータがメモリバンクＢＫ０、メモリバンクＢＫ１、メモリバンクＢＫ２、およびメモリバンクＢＫ３に１画素毎に格納されている。すなわち、左上の画素からラスタスキャン順に１番目のアクセス候補の画素のデータは、メモリバンクＢＫ１に格納され、２番目のアクセス候補の画素のデータは、メモリバンクＢＫ０に格納され、３番目のアクセス候補の画素のデータは、メモリバンクＢＫ２に格納され、４番目のアクセス候補の画素のデータは、メモリバンクＢＫ３に格納されている。
【００１６】
このように格納することで、サーチエリアＳＲがラスタスキャン順に１画素ずつ移動する場合、各アクセス候補の画素も１画素ずつ移動して、例えば、左上の画素からラスタスキャン順に１番目のアクセス候補は、データがメモリバンクＢＫ２に格納されている画素に移動し、２番目のアクセス候補は、データがメモリバンクＢＫ１に格納されている画素に移動し、３番目のアクセス候補は、データがメモリバンクＢＫ３に格納されている画素に移動し、４番目のアクセス候補の画素のデータは、データがメモリバンクＢＫ０に格納されている画素に移動することになるので、サーチエリアＳＲがラスタスキャン順に１画素ずつ移動しても、アクセス候補の画素のデータを同時に取得することができる。
【００１７】
また、図６の例においては、左上の画素からラスタスキャン順に１番目のアクセス候補の画素から、２番目のアクセス候補の１つ手前の画素までのデータがメモリバンクＢＫ０に格納され、２番目のアクセス候補の画素から、３番目のアクセス候補の1つ手前の画素までのデータがメモリバンクＢＫ１に格納され、３番目のアクセス候補の画素から、４番目のアクセス候補の１つ手前の画素までのデータがメモリバンクＢＫ２に格納され、４番目のアクセス候補の画素から、それ以降の画素のデータがメモリバンクＢＫ３に格納されている。
【００１８】
このように格納することで、サーチエリアＳＲがラスタスキャン順に１画素ずつ移動する場合、各アクセス候補の画素も１画素ずつ移動しても、ある一定の区間は、データが格納されているメモリバンクが同じであるので、アクセス候補の画素のデータを同時に取得することができる。しかしながら、図７の例に示されるように、サーチエリアＳＲの移動が、図６に示したサーチエリアＳＲの移動前のアクセス候補間を超えてしまうと、同時に同じメモリバンクの画素にアクセスすることになってしまう。
【００１９】
図７の例においては、図６の例から、サーチエリアＳＲがラスタスキャン順に７画素移動した後のアクセス候補の画素が黒丸で示されている。サーチエリアＳＲがラスタスキャン順に７画素移動したことに対応して、左上の画素からラスタスキャン順に１番目のアクセス候補は、データがメモリバンクＢＫ１に格納されている画素に移動し、２番目のアクセス候補は、データがメモリバンクＢＫ１に格納されている画素に移動し、３番目のアクセス候補は、データがメモリバンクＢＫ２に格納されている画素に移動し、４番目のアクセス候補の画素のデータは、データがメモリバンクＢＫ３に格納されている画素に移動する。
【００２０】
すなわち、サーチエリアＳＲが移動した画素の数７が、サーチエリアＳＲの移動前の１番目および２番目のアクセス候補間の画素の数７になり、１番目および２番目のアクセス候補が、どちらも、データがメモリバンクＢＫ１に格納されている画素に移動しまうため、同時に同じメモリバンクＢＫ１のデータにアクセスすることになってしまう。
【００２１】
一般に、同時に複数データにアクセスが可能なのは、その複数データが異なるメモリバンクに格納されているか、あるいはその複数のデータが同一ワード線上に格納されているかのいずれかである。パターンによっては、格納する場所を上手く選べば同時アクセスできる場合があるが、どのようなパターンでも同時アクセスできるようにするためには、１ メモリバンクが１ワード線だけで構成されるぐらい細かくメモリバンク分割する必要がある。
【００２２】
しかしながら、細かく分割するほどバンク数は多くなり、メモリバンク数が多くなると、（ａ） それぞれのバンクに異なるアドレスを指定するのでアドレスバスが膨大になる、（ｂ）デコーダやセレクタがメモリバンクの数だけ必要なのでチップ面積が大きくなる、（ｃ）同時に複数のメモリバンクが動作するため消費電力が多くなる、（ｄ）１ワード線のデータ数を増やすと、ワード線が長くなり、１ワード線のデータにアクセスするときに時間がかかる、などの恐れがあった。
【００２３】
このように、半導体メモリでは、１メモリバンクにつき１ワード線のみで構成するとデータの同時読み出しは可能であるが、格納すべきデータ量が膨大になるとハードウエアに負担がかかり、現実的でない。
【００２４】
そこで、従来の技術ではデータを読み出し、一時的に記憶するバッファやキャッシュを設け、所望の複数データを複数回に時間的に分割し、バッファやキャッシュに一時記憶し、読み出していた。
【００２５】
しかしながら、所望の複数データの数が増え、かつ、データの入出力が高速になると、データの読み出し処理が時間的に遅れてしまう。また、これを解決するために、一時記憶するバッファやキャッシュを増やすことがなされているが、その領域が大きくなるとハードウエアに負担が生じる。
【００２６】
本発明は、このような状況に鑑みてなされたものであり、ハードウエアに負担を生じることなく、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うことのできるようにするものである。
【課題を解決するための手段】
【００２７】
本発明の第１の側面の設計装置は、メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置において、前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数を算出する格納画素数算出手段と、前記格納画素数算出手段により算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、前記メモリに必要なメモリ量を算出するメモリ量算出手段と、前記メモリ量算出手段により算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定するバンク数設定手段とを備える。
【００３０】
本発明の第１の側面の設計方法は、メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置のパラメータを設計する設計装置が、前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数を算出し、算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、前記メモリに必要なメモリ量を算出し、算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数を設定するステップを含む。
【００３１】
本発明の第２の側面のデータ格納装置は、メモリを構成する複数のメモリバンクに振り分けてデータを格納することで、同時に複数のデータを読み出すデータ格納装置において、前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数が算出され、算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、必要なメモリ量が算出され、算出された前記メモリ量に応じて設定された数のメモリバンクからなるメモリと、前記データを前記設定された数のメモリバンクに振り分けて格納する際に、前記アクセスパターンおよび前記最大画素数に基づいて、前記アクセス候補間のデータを前記最大画素数だけ同じメモリバンクに格納することにより初期配置するデータ格納処理手段と、前記設定された数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各メモリバンクからそれぞれ読み出すデータ読み出し格納処理手段とを備え、前記データ読み出し格納処理手段は、前記メモリバンクから画素のデータを読み出し、前記アクセスパターンのアクセス候補の各位置に基づいて決まる範囲のうち、前記アクセスパターンの移動方向に基づいて決まる１の隣接する範囲の画素のデータが格納されているメモリバンクに読み出した前記画素のデータを格納する。
【００３２】
本発明の第１の側面においては、メモリを構成する複数のメモリバンクに振り分けて格納されるデータを格納することで、同時に複数のデータを読み出すデータ格納装置に格納される前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数が算出される。そして、算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、前記メモリに必要なメモリ量が算出され、算出された前記メモリ量に応じて、前記データ格納装置により前記データが振り分けて格納されるメモリバンクの数が設定される。
【００３３】
本発明の第２の側面においては、前記データの横サイズと前記データのうち１度にアクセス可能な領域の縦サイズとの乗算結果を、設定候補となる複数の候補メモリバンク数と、同時に読み出そうとする所望の複数データを示すアクセスパターンを構成するアクセス候補の数の差分に１を加算した加算結果で除算することで、１つのメモリバンクに格納する最大画素数が算出され、算出された前記最大画素数と前記複数の候補メモリバンク数から１引いた値との乗算結果と、前記データの横サイズと縦サイズとの乗算結果を加算した加算結果から、前記最大画素数と前記複数の候補メモリバンク数から前記アクセス候補の数を引いた値との乗算結果、および前記アクセス候補の数から１引いた値を減算することで、必要なメモリ量が算出され、算出された前記メモリ量に応じて設定された数のメモリバンクからなるメモリのメモリバンクに、前記データを振り分けて格納する際に、前記アクセスパターンおよび前記最大画素数に基づいて、前記アクセス候補間のデータが前記最大画素数だけ同じメモリバンクに格納することにより初期配置される。また、前記設定された数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータが各メモリバンクからそれぞれ読み出される。そして、前記メモリバンクから画素のデータが読み出され、前記アクセスパターンのアクセス候補の各位置に基づいて決まる範囲のうち、前記アクセスパターンの移動方向に基づいて決まる１の隣接する範囲の画素のデータが格納されているメモリバンクに読み出した前記画素のデータが格納される。
【発明の効果】
【００３４】
本発明の第１の側面によれば、データ格納装置のメモリ量を、全体として削減することができる。
【００３５】
本発明の第２の側面によれば、全体としてメモリ量を削減し、全データにおいて所望の複数画素を同時アクセスすることができる。
【発明を実施するための最良の形態】
【００４０】
以下、図を参照して本発明の実施の形態について説明する。
【００４１】
図８は、本発明を適用したデータ格納装置の構成例を表している。
【００４２】
このデータ格納装置１１は、入力端子２１ａ乃至２１ｃ、出力端子２１ｂ、メモリ３１、データ格納制御部３２、およびデータ読み出し格納制御部３３により構成される。
【００４３】
入力端子２１ａから、格納する画像などのデータＤＡがメモリ３１およびデータ格納制御部３２に供給され、入力端子２１ｂから、複数データの同時読み出し対象の位置を示すアクセスパターンＡＰが、データ格納制御部３２に供給され、図示せぬ制御装置から入力端子２１ｃを介して、動作制御用の制御信号ＣＳが、メモリ３１、データ格納制御部３２、およびデータ読み出し格納制御部３３に供給される。
【００４４】
メモリ３１、データ格納制御部３２、およびデータ読み出し格納制御部３３は、入力端子２１ｃを介して入力される制御信号ＣＳに基づいて動作する。
【００４５】
メモリ３１には、初期格納時に、入力端子２１ａから格納すべき画像のデータが入力される。メモリ３１は、複数のメモリバンク（例えば、４個のメモリバンクＢＫ０乃至ＢＫ３）で構成される。
【００４６】
データ格納制御部３２は、入力端子２１ｃからのアクセスパターンＡＰに基づいて、入力端子２１ａから入力されるデータＤＡをメモリ３１に配置（格納）する初期配置処理を行う。すなわち、データ格納制御部３２は、入力端子２１ｃからのアクセスパターンＡＰに基づいて、入力端子２１ａから入力されるデータＤＡをメモリ３１に格納する位置を示す書き込みアドレスを生成し、メモリ３１に入力されるデータを、書き込みアドレスが示すメモリ３１のアドレスに書き込ませる。
【００４７】
データ読み出し格納制御部３３は、メモリ３１からのアドレスに基づいて、読み出しアドレスを生成し、メモリ３１からのデータの読み出しを行うとともに、書き込みアドレスを生成し、メモリ３１への画素の再格納の制御を行う。
【００４８】
図９は、図８のデータ格納制御部３２の構成例を示す図である。
【００４９】
データ格納制御部３２は、カウンタ４１、一致判定部４２、フラグ生成部４３、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、ワード線アドレスカウンタ４６、アドレス生成部４７、および格納制御処理部４８により構成される。
【００５０】
カウンタ４１は、入力端子２１ａから供給されるデータＤＡを計数し、その計数結果を一致判定部４２、およびバンクアドレスカウンタ４４に出力する。一致判定部４２は、入力端子２１ｂからのアクセスパターンＡＰと、カウンタ４１の計数結果との一致判定を行い、その判定結果をフラグ生成部４３に出力する。なお、図示は省略するが、判定結果は、アドレス生成部４７にも出力される。
【００５１】
フラグ生成部４３は、一致判定部４２からの判定結果に応じてフラグを生成し、生成したフラグを、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、およびワード線アドレスカウンタ４６に出力する。
【００５２】
バンクアドレスカウンタ４４は、フラグ生成部４３からのフラグに応じて、カウント値がインクリメントされるカウンタであり、そのカウント値を、アドレス生成部４７に出力する。このバンクアドレスカウンタ４４のカウント値は、メモリバンクの番号を表すバンクアドレスを示す。また、バンクアドレスカウンタ４４は、カウンタ４１の計数結果を受けて、その結果を、ビット線アドレスカウンタ４５に出力する。
【００５３】
ビット線アドレスカウンタ４５は、バンクアドレスカウンタ４４の結果を受けて、カウント値がインクリメントされるカウンタであり、そのカウント値をアドレス生成部４７に出力する。また、ビット線アドレスカウンタ４５は、フラグ生成部４３からのフラグに応じて、カウント値をリセットする。ビット線アドレスカウンタ４５には、ビット線長が記憶されており、そのカウンタ値がビット線長を超えたときには、カウント値はリセットされ、その結果がワード線アドレスカウンタ４６に出力される。
【００５４】
ワード線アドレスカウンタ４６は、ビット線アドレスカウンタ４５の結果を受けて、カウント値がインクリメントされるカウンタであり、そのカウント値をアドレス生成部４７に出力する。また、ワード線アドレスカウンタ４６は、フラグ生成部４３からのフラグに応じて、カウント値をリセットする。
【００５５】
アドレス生成部４７は、一致判定部４２からの判定結果に応じて、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、およびワード線アドレスカウンタ４６が示すカウント値に基づいて、書き込みアドレスＷＡを生成し、格納制御処理部４８に出力する。
【００５６】
格納制御処理部４８は、書き込みアドレスＷＡを用いて、メモリ３１への書き込みを制御する。すなわち、図示しない遅延器によって所定の時間遅延されたデータＤＡは、格納制御処理部４８による書き込みアドレスＷＡが示すメモリ３１のアドレスに格納される。
【００５７】
図１０は、図８のデータ読み出し格納制御部３３の構成例を示す図である。図１０の例においては、メモリ３１が４つのメモリバンク（ＢＫ０乃至ＢＫ３）で構成される場合が示されている。
【００５８】
データ読み出し格納制御部３３は、メモリバンクＢＫ０乃至ＢＫ３毎のデータ読み出し格納制御部５３−０乃至５３−３により構成される。データ読み出し格納制御部５３−０乃至５３−３は、それぞれ、データ読み出し用のビット線アドレスカウンタ５１−０乃至５１−３、ワード線アドレスカウンタ５２−０乃至５２−３、データ格納用のビット線アドレスカウンタ５３−０乃至５３−３、ワード線アドレスカウンタ５４−０乃至５４−３、読み出しアドレスを生成する読み出しアドレス生成部５５−０乃至５５−３、書き込みアドレスを生成する書き込みアドレス生成部５６−０乃至５６−３、読み出し制御処理を行う読み出し制御処理部５７−０乃至５７−３、および書き込み制御処理を行う書き込み制御処理部５８−０乃至５８−３で構成されている。
【００５９】
なお、以下、データ読み出し用のビット線アドレスカウンタ５１−０乃至５１−３、ワード線アドレスカウンタ５２−０乃至５２−３、データ格納用のビット線アドレスカウンタ５３−０乃至５３−３、ワード線アドレスカウンタ５４−０乃至５４−３、読み出しアドレス生成部５５−０乃至５５−３、書き込みアドレス生成部５６−０乃至５６−３、読み出し制御処理部５７−０乃至５７−３、および書き込み制御処理部５８−０乃至５８−３を区別する必要がない場合、それぞれ、読み出しビット線アドレスカウンタ５１、読み出しワード線アドレスカウンタ５２、書き込みビット線アドレスカウンタ５３、書き込みワード線アドレスカウンタ５４、読み出しアドレス生成部５５、書き込みアドレス生成部５６、読み出し制御処理部５７、および書き込み制御処理部５８と適宜称する。
【００６０】
例えば、メモリ３１から読み出された各メモリバンクＢＫの最終読み出しアドレス（Last ＲＡ）は、読み出しビット線アドレスカウンタ５１に入力される。
【００６１】
読み出しビット線アドレスカウンタ５１は、各メモリバンクＢＫの最終読み出しアドレスを受けて、読み出しに応じて、カウント値をインクリメントする。読み出しビット線アドレスカウンタ５１には、ビット線長が記憶されており、カウント値がビット線長を超えた場合、そのカウント値は０にリセットされ、その結果が、読み出しワード線アドレスカウンタ５２に出力される。
【００６２】
読み出しワード線アドレスカウンタ５２は、読み出しビット線アドレスカウンタ５１のカウント値を受けて、読み出しに応じて、カウント値を適宜インクリメントする。また、読み出しワード線アドレスカウンタ５２には、ワード線長が記憶されており、カウント値がワード線長を超えた場合、そのカウント値は０にリセットされる。
【００６３】
読み出しアドレス生成部５５は、各メモリバンクＢＫのバンクアドレス、並びに読み出しビット線アドレスカウンタ５１、および読み出しワード線アドレスカウンタ５２のカウント値に基づき、読み出しアドレスＲＡを生成し、読み出し制御処理部５７に出力する。読み出し制御処理部５７は、読み出しアドレス生成部５５からの読み出しアドレスＲＡに対応するデータをメモリ３１から読み出す。
【００６４】
一方、例えば、メモリ３１から読み出された各メモリバンクＢＫの最終書き込みアドレス（Last ＷＡ）は、書き込みビット線アドレスカウンタ５３に入力される。
【００６５】
書き込みビット線アドレスカウンタ５３は、各メモリバンクＢＫの最終書き込みアドレスを受けて、書き込みに応じて、カウント値をインクリメントする。書き込みビット線アドレスカウンタ５３には、ビット線長が記憶されており、カウント値がビット線長を超えた場合、そのカウント値は０にリセットされ、その結果が、書き込みワード線アドレスカウンタ５４に出力される。
【００６６】
書き込みワード線アドレスカウンタ５４は、書き込みビット線アドレスカウンタ５３の結果を受けて、書き込みに応じてカウント値を適宜インクリメントする。また、書き込みワード線アドレスカウンタ５４には、ワード線長が記憶されており、カウント値がワード線長を超えた場合、そのカウント値は０にリセットされる。
【００６７】
書き込みアドレス生成部５６は、各メモリバンクＢＫのバンクアドレス、書き込みビット線アドレスカウンタ５３、書き込みワード線アドレスカウンタ５４のカウント値に基づき、書き込みアドレスＷＡを生成し、書き込み制御処理部５８に出力する。書き込み制御処理部５８は、他のメモリバンク（例えば１つ後ろのメモリバンク）から読み出されたデータを書き込み制御処理部５８からの書き込みアドレスＷＡが示すメモリ３１の所定の位置に書き込む。
【００６８】
なお、図１０の例においては、メモリ３１から最終読み出しアドレスおよび最終書き込みアドレスを読み出したが、これに限定されるものではなく、データ読み出し格納制御部３３内に記憶しておき、そこから読み出すようにしてもよい。
【００６９】
また、図１０の例においては、読み出し用のビット線およびワード線アドレスカウンタをメモリバンク毎に設けたが、各メモリバンクを読み出す際に、そのビット線およびワード線アドレスカウンタが示すカウント値は同じであるため、これらは適宜共有させてもよい。さらに、１つ後ろのメモリバンクから読み出されたデータを、メモリバンクに書き込むようにしたが、もしメモリバンクＢＫ０で読み出されたデータが再度必要になる場合には、メモリバンクＢＫ０で読み出されたデータをメモリバンクＢＫ３に書き込むように設定にしても構わない。
【００７０】
次に、このような構成のデータ格納装置１１における画像データの各バンクへの初期配置について説明する。
【００７１】
図１１は、アクセスパターンの例を示す図である。
【００７２】
図１１の例においては、縦４０画素×横８０画素（Ｈ×Ｗ）で構成される画像が示されており、画像のうち、縦８画素×横１６画素（ｈ×ｗ）の領域が、データ格納装置１１が１度にアクセス可能な領域であるサーチエリアＳＲとして示されている。
【００７３】
すなわち、この画像に対して、複数の画素を同時にアクセスしたい場合、例えば、サーチエリアＳＲ内に、複数同時にアクセスしたい画素の位置を示すパターンであるアクセスパターンＡＰを設定し、左上からラスタスキャン順に１画素ずつ移動するサーチエリアＳＲの移動とともに、そのアクセスパターンＡＰも移動することで、画像内の全領域に対しても、複数の画素が同時アクセスされる。
【００７４】
また、図１１の例においては、サーチエリアＳＲ内の画素が拡大して示されており、サーチエリアＳＲに示される丸は、１画素を表し、黒丸は、サーチエリアＳＲの画素のうち、複数同時にアクセスしたい画素（以下、アクセス候補とも称する）Ｐ０乃至Ｐ３を表している。すなわち、この場合、４つのメモリバンクのメモリ３１を用いて、４画素を同時アクセスする例が示されている。
【００７５】
図１１のアクセスパターンＡＰは、サーチエリアＳＲの上から３番目の左から４番目（ラスタスキャン順に１番目）の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から３番目の左から１１番目（ラスタスキャン順に２番目）の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から６番目の右から３番目（ラスタスキャン順に最後から２番目）の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から７番目の右から７番目（ラスタスキャン順に最後尾）の画素に設定されたアクセス候補Ｐ３で構成されている。
【００７６】
なお、複数同時アクセスしたい画素に対応するアクセスパターンは、この図１１に示す例に限定されるものではない。例えば、この縦ｈ画素×横ｗ画素のサーチエリアＳＲがあり、その中で任意のアクセスしたいｎ個（図１１の場合、４個）の画素がある場合、その種類は、（ｈ×ｗ）Ｃ（ｎ）個ある。このｎ個のアクセス候補の組み合わせひとつひとつをアクセスパターンＡＰと言う。アクセスパターンＡＰとしては、サーチエリアＳＲ内の任意のアクセス候補の組み合わせが可能である。すなわち、図１１に示される４個のアクセス候補Ｐ０乃至Ｐ３からなるアクセスパターンＡＰは、１６×８Ｃ４（＝10,668,000）通りの組み合わせの内の１つの例である。
【００７７】
また、同時アクセスしたい画素の数をアクセス候補数といい、アクセスパターンを構成するアクセス候補の数に等しい。この例では、４つのアクセス候補Ｐ０乃至Ｐ３からアクセスパターンＡＰが形成されているため、アクセス候補数は４となっている。
【００７８】
図１２および図１３は、画像データの各バンクへの初期配置の例を示す図である。図１２の例においては、図１１のアクセスパターンの場合のデータの初期配置における２次元配列状態が示されており、丸に付された数字は、各画素のデータが格納される各メモリバンクＢＫ０乃至ＢＫ３に対応している。図１３の例においては、図１２の初期配置の各メモリバンクＢＫ０乃至ＢＫ３における１次元配列状態が示されている。
【００７９】
図１２の例の画像においては、各アクセス候補Ｐ０乃至Ｐ３間の画素が、図１３の例に示される、それぞれ同じメモリバンクＢＫに格納されている。
【００８０】
具体的には、図１２の画像におけるアクセス候補Ｐ０から、アクセス候補Ｐ１の１つ手前の画素までの７画素分のデータが、図１３のメモリバンクＢＫ０に格納されている。また、図１２の画像におけるアクセス候補Ｐ１から、アクセス候補Ｐ２の１つ手前の画素までの２３２画素分のデータが図１３のメモリバンクＢＫ１に格納されている。アクセス候補Ｐ２から、アクセス候補Ｐ３の１つ手前の画素までの８４画素分のデータがメモリバンクＢＫ２に格納されており、アクセス候補Ｐ３から以降すべての画素（２７１４画素）分のデータがメモリバンクＢＫ３に格納されている。
【００８１】
すなわち、アクセス候補Ｐ０乃至Ｐ３は、データの初期配置においては、各バンクの先頭にそれぞれ格納される。したがって、以下、データの初期配置におけるアクセス候補Ｐ０乃至Ｐ３を、アクセス開始位置Ｐ０乃至Ｐ３とも称する。
【００８２】
ここで、このデータ格納装置１１においては、画像データが入力された際に、データ格納制御部３２により初期配置処理が行われ、入力された画素（の位置）が、アクセスパターンＡＰが示すアクセス開始位置と一致した場合は、その時点のビット線アドレスカウンタ４５のカウント値とワード線アドレスカウンタ４６のカウント値が対応する、メモリバンクの書き込みが開始される書き込みビット線アドレスと書き込みワード線アドレスとして格納され、バンクアドレスカウンタ４４がインクリメントされて、バンクアドレスカウンタ４４が示すバンクアドレス（すなわち、次のメモリバンクＢＫ）に画素が格納される。
【００８３】
また、画素の位置が、アクセスパターンＡＰが示すアクセス開始位置と一致しない場合は、現在のバンクアドレスにビット線アドレスカウンタ４５のカウント値がインクリメントされたビットアドレス位置に画素が格納され、ビット線アドレスが終了すれば、ビット線アドレスカウンタ４５を０に戻し、ワード線アドレスカウンタ４６のカウント値をインクリメントすることによって、アクセス開始位置間の画素が同じメモリバンクＢＫに格納される。
【００８４】
したがって、図１２の例の場合、画像の左上から１画素ずつバンクＢＫに格納するときに、データ格納制御部３２は、画素の位置が、アクセスパターンＡＰが示すアクセス開始位置と一致する毎にバンクアドレスをインクリメントさせて、メモリバンクＢＫ０の次は、メモリバンクＢＫ１、その次はメモリバンクＢＫ２、その次はメモリバンクＢＫ３と、メモリバンクを変えて、アクセス開始位置（アクセス候補）Ｐ０乃至Ｐ３間の画素を同じバンクに格納する。すなわち、データ格納制御部３２においては、各アクセス開始位置Ｐ０乃至Ｐ３からなるアクセスパターンが設定された状況で、アクセスパターン（アクセス開始位置）に対する画像データの一致／不一致が判定される。
【００８５】
次に、図１４のフローチャートを参照して、データ格納制御部３２の初期配置処理を詳しく説明する。
【００８６】
データ格納制御部３２は、初期配置処理を開始すると、ステップＳ１において、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５およびワード線アドレスカウンタ４６のカウント値を全て「０」に、初期設定を行う。
【００８７】
ステップＳ２において、カウンタ４１は、入力端子２１ａから格納すべき１画素分の画像データを入力する。カウンタ４１は、１画素を計数し、計数結果を一致判定部４２に出力する。
【００８８】
ステップＳ３において、一致判定部４２は、入力端子２１ｂからのアクセスパターンＡＰと、カウンタ４１の計数結果との一致判定を行い、入力された１画素が、アクセスパターンＡＰのアクセス開始位置（アクセス候補）の画素であるか否かを判定する。
【００８９】
ステップＳ３において入力された１画素がアクセス開始位置の画素であると判定された場合、すなわち、その画素がアクセス開始位置の場合には、ステップＳ４において、アドレス生成部４７は、現在のワード線アドレスカウンタ４６とビット線アドレスカウンタ４５のカウント値を、バンクアドレスに対応したメモリバンクの書き込みが開始される書き込みワード線アドレスと書き込みビット線アドレスとして格納する。
【００９０】
ステップＳ５において、バンクアドレスカウンタ４４は、カウント値をインクリメントし、さらに、ワード線アドレスカウンタ４６とビット線アドレスカウンタ４５は、カウント値を「０」にリセットする。
【００９１】
すなわち、ステップＳ３において入力された１画素がアクセス開始位置の画素であると判定された場合、フラグ生成部４３は、一致判定部４２により入力された１画素がアクセス候補の画素であるという判定結果に応じたフラグを生成し、生成したフラグを、バンクアドレスカウンタ４４、ワード線アドレスカウンタ４６、およびビット線アドレスカウンタ４５に出力する。
【００９２】
これに対応して、バンクアドレスカウンタ４４は、カウント値をインクリメントし、インクリメントしたカウント値を、アドレス生成部４７に出力する。また、ワード線アドレスカウンタ４６とビット線アドレスカウンタ４５は、カウント値を「０」にリセットし、リセットしたカウント値を、アドレス生成部４７に出力する。
【００９３】
アドレス生成部４７は、バンクアドレスカウンタ４４のカウント値、およびワード線アドレスカウンタ４６とビット線アドレスカウンタ４５のカウント値「０」で示される書き込みアドレスＷＡを生成するので、ステップＳ６において、格納制御処理部４８は、アドレス生成部４７により生成された書き込みアドレスＷＡで、メモリ３１にその画素の画像データを格納する。
【００９４】
一方、ステップＳ３において入力された１画素がアクセス開始位置の画素ではないと判定された場合、処理は、ステップＳ４およびＳ５をスキップし、ステップＳ６に進む。
【００９５】
この場合、アドレス生成部４７は、現在のバンクアドレスカウンタ４４、ワード線アドレスカウンタ４６、およびビット線アドレスカウンタ４５のカウント値で示される書き込みアドレスＷＡを生成するので、ステップＳ６において、格納制御処理部４８は、アドレス生成部４７により生成された書き込みアドレスＷＡで、メモリ３１にその画素の画像データを格納する。
【００９６】
ステップＳ７において、カウンタ４１は、計数結果を参照して、画像の全データが入力されたか否かを判定する。なお、この判定処理は、実際には、例えば、一致判定部４２などで実行するように構成される。
【００９７】
ステップＳ７において、全データがまだ入力されていないと判定された場合、その計数結果をバンクアドレスカウンタ４４に出力する。バンクアドレスカウンタ４４は、計数結果を受けて、その結果をビット線アドレスカウンタ４５に出力する。
【００９８】
これに対応して、ビット線アドレスカウンタ４５は、ステップＳ８において、カウント値をインクリメントし、ステップＳ９において、ビット線アドレスカウンタ４５のカウント値がビット線長より大きくなったか否かを判定する。なお、この判定処理は、実際には、例えば、アドレス生成部４７などで実行するように構成される。
【００９９】
ステップＳ９において、ビット線アドレスカウンタ４５のカウント値がビット線長より小さいと判定された場合、処理は、ステップＳ２に戻り、次の１画素分の画像データについての格納処理が行われる。
【０１００】
ステップＳ９において、ビット線アドレスカウンタ４５のカウント値がビット線長よりより大きくなったと判定された場合、ビット線アドレスカウンタ４５は、ステップＳ１０において、カウント値を「０」にリセットするとともに、その結果を、ワード線アドレスカウンタ４６に出力する。これに対応して、ワード線アドレスカウンタ４６は、カウント値をインクリメントしてから、処理は、ステップＳ２に戻り、次の１画素分の画像データについての格納処理が行われる。
【０１０１】
ステップＳ７において、全データが入力されたと判定された場合、初期配置処理は終了される。
【０１０２】
次に、アクセスパターンの画素のアクセスの仕方とデータの再格納について説明する。
【０１０３】
このデータ格納装置１１では、図１２を参照して上述したようにメモリ３１上に初期配置した各画素の画像データは、アクセス候補間の画素を同じバンクに格納してあるので、ラスタスキャン順にアクセスパターンが移動しても、ある一定の区間は同時にアクセスできるのであるが図７を参照して上述したように、アクセスパターンの移動がアクセス画素間を超えると、同時に同じバンクの画素にアクセスすることになってしまう。
【０１０４】
そこで、以下に説明するように、アクセスした画素の画像データの再格納位置を工夫することによって、アクセスパターンの移動に対応できるようにしている。
【０１０５】
図１５は、図１２の初期配置時のメモリバンクＢＫ０乃至ＢＫ３におけるワード線及びビット線へのアクセスと再格納の方法を模式的に示す図である。
【０１０６】
図１５の例においては、各メモリバンクＢＫ０乃至ＢＫ３の先頭に配置されたデータにアクセスされる際の例が示されており、黒い部分は、データが格納されていることを示している。また、横太線がそのバンクにおける最終ワード線を表し、縦太線がそのバンクにおける最終ビット線を表しており、各バンク間に示される矢印は、矢印の終端に格納されているデータを、矢印の始端にも格納することを表している。
【０１０７】
したがって、データ格納装置１１においては、図１５の矢印に示されるように、各メモリバンクＢＫ０乃至ＢＫ３の先頭に配置されたデータにアクセスされる際に、あるバンクアドレスが示すメモリバンクＢＫから画素の画像データが読み出され、読み出された画像データが、そのバンクアドレス−１のバンクアドレスが示す１つ前のメモリバンクＢＫの最終書き込みビット線アドレスに１を加算した位置（アドレス）に格納される。
【０１０８】
すなわち、図１５のメモリバンクＢＫ１の先頭アドレス（最上段の１番左側）に格納された画像データが読み出され、その画像データが、バンクＢＫ０の最終ワード線と、最終ビット線の次（＋１）のビット線の位置（最上段の右から４番目）に格納される。また、メモリバンクＢＫ２の先頭アドレス（最上段の１番左側）に格納された画像データが読み出され、その画像データが、メモリバンクＢＫ２の１つ前のバンクＢＫ１の最終ワード線と、最終ビット線の次（＋１）のビット線の位置（上から２段目の左から４番目）に格納される。
【０１０９】
同様に、メモリバンクＢＫ３の先頭アドレス（最上段の１番左側）に格納された画像データが読み出され、その画像データが、メモリバンクＢＫ３の１つ前のメモリバンクＢＫ２の最終ワード線と、最終ビット線の次（＋１）のビット線の位置（上から５段目の左から３番目）に格納される。
【０１１０】
これにより、図１２および図１３のメモリ３１上に初期配置された各画素の画像データの対象のバンクアドレスが示すメモリバンクＢＫから読み出された画素の画像データが、図１６および図１７に示されるように、そのバンクアドレス−１のバンクアドレスが示すメモリバンクＢＫの書き込みワード線アドレス、書き込みビット線アドレスに１を加算した位置に格納される。
【０１１１】
図１６および図１７は、図１２および図１３の画像データの初期配置における各アクセス候補の画素から読み出された画像データを、そのバンクアドレス−１のバンクアドレスが示すメモリバンクＢＫに格納した場合の例を示す図である。
【０１１２】
図１６および図１７の例の場合、図１２および図１３のアクセス候補Ｐ１の画素（すなわち、メモリバンクＢＫ１）から読み出された画像データは、メモリバンクＢＫ０の最終アドレスに＋１加算した位置に格納され、アクセス候補Ｐ２の画素（すなわち、メモリバンクＢＫ２）から読み出された画像データは、メモリバンクＢＫ１の最終アドレスに＋１加算した位置に格納され、アクセス候補Ｐ３の画素（すなわち、メモリバンクＢＫ３）から読み出された画像データは、メモリバンクＢＫ２の最終アドレスに＋１加算した位置に格納されている。
【０１１３】
なお、図１２および図１３におけるアクセス候補Ｐ０の画素から読み出された画像データは、図示せぬバンクアドレス−１のバンクアドレスのメモリバンクＢＫに格納することもできるし、一番後方のメモリバンクＢＫに格納するようにすることもできる。
【０１１４】
そして、次に、ラスタスキャン順に、１画素サーチエリアＳＡが移動し、それに応じて、アクセス候補が初期配置から１画素移動し、図１８に示されるように、１画素移動したアクセス候補の画素から画像データが読み出される。
【０１１５】
図１８の例においては、サーチエリアＳＡをラスタスキャン順（図中右側）に、１画素移動した場合のアクセス候補が示されている。
【０１１６】
サーチエリアＳＡが１画素移動したことで、アクセス候補Ｐ０は、サーチエリアＳＲの上から３番目の左から５番目の画素に移動し、アクセス候補Ｐ１は、サーチエリアＳＲの上から３番目の左から１２番目の画素に移動し、アクセス候補Ｐ２は、サーチエリアＳＲの上から６番目の右から４番目の画素に移動し、アクセス候補Ｐ３は、サーチエリアＳＲの上から７番目の右から８番目の画素に移動している。
【０１１７】
また、図１８の例の場合においては、図１２のアクセス候補Ｐ０から、図１８のアクセス候補Ｐ１の１つ手前の画素までの８画素分のデータが、メモリバンクＢＫ０に格納されている。また、図１２のアクセス候補Ｐ１から、図１８のアクセス候補Ｐ２の１つ手前の画素までの２３３画素分のデータがメモリバンクＢＫ１に格納されている。図１２のアクセス候補Ｐ２から、図１８のアクセス候補Ｐ３の１つ手前の画素までの８５画素分のデータがメモリバンクＢＫ２に格納されており、図１２のアクセス候補Ｐ３から以降すべての画素（２７１４画素）分のデータがメモリバンクＢＫ３に格納されている。
【０１１８】
したがって、図１８に示されるように、サーチエリアＳＡをラスタスキャン順に、１画素移動した場合においても、アクセス候補Ｐ０の画素の画像データが、メモリバンクＢＫ０から読み出され、アクセス候補Ｐ１の画素の画像データが、メモリバンクＢＫ１から読み出され、アクセス候補Ｐ２の画素の画像データが、メモリバンクＢＫ２から読み出され、アクセス候補Ｐ３の画素の画像データが、メモリバンクＢＫ３から読み出される。
【０１１９】
そして、図１９および図２０の例においては、図１６および図１７と場合と同様に、メモリバンクＢＫ１から読み出されたアクセス候補Ｐ１の画素の画像データは、メモリバンクＢＫ０の最終アドレスに１加算した位置に格納され、メモリバンクＢＫ２から読み出されたアクセス候補Ｐ２の画素の画像データは、メモリバンクＢＫ１の最終アドレスに１加算した位置に格納され、メモリバンクＢＫ３から読み出されたアクセス候補Ｐ３の画素の画像データは、メモリバンクＢＫ２の最終アドレスに１加算した位置に格納される。
【０１２０】
このように、サーチエリアＳＡが移動するにつれて、各メモリバンクから読み出すことには変わりないが、アクセス候補であった画素（すなわち、アクセス候補のラスタスキャン順に１つ手前の画素）が存在する次のメモリバンクは次々と入れ替わっていくようになることにより、アクセスパターンＡＰがラスタスキャン順に移動しても同時アクセスを実現することができる。
【０１２１】
具体的には、データ格納装置１１におけるデータ読み出し格納制御部３３は、ビット線アドレスカウンタ５１−０乃至５１−３またはワード線アドレスカウンタ５２−０乃至５２−３のカウント値をインクリメントしながら、そのワード線アドレスおよびビット線アドレス上の画素をメモリバンク数だけ読み出せば、所望の画素が読み出すことができる。なお、用意されているワード線アドレス、ビット線アドレスが終了すれば、それぞれのカウント値は０に戻される。
【０１２２】
なお、メモリバンク番号が最初の場合は最後のメモリバンクに書き込む。あるいは後段の処理に必要であれば後段の処理の際に使用するメモリに書き込む。いずれにせよ、この画素はこの処理においては今後必要とされない。
【０１２３】
次に、図２１のフローチャートを参照して、データ読み出し格納制御部３３のデータ再格納制御処理を説明する。
【０１２４】
データ読み出し格納制御部３３は、ステップＳ２１において、読み出しビット線アドレスカウンタ５１、および読み出しワード線アドレスカウンタ５２の値を全て「０」に、初期設定を行う。
【０１２５】
読み出し制御部５７は、ステップＳ２２において、各メモリバンクの現在の読み出しビット線アドレスカウンタ５１および読み出しワード線アドレスカウンタ５２のカウント値で示される読み出しアドレスＲＡで、メモリ３１から、アクセスパターンＡＰを構成するアクセス候補の画素分の画像データを読み出し、それぞれ読み出されたメモリバンクの１つ前のバンクアドレスの書き込み制御処理部５８に出力する。
【０１２６】
すなわち、読み出しアドレス生成部５５が読み出しビット線アドレスカウンタ５１および読み出しワード線アドレスカウンタ５２のカウント値に応じて、読み出しアドレスＲＡを生成し、読み出し制御部５７に出力する。これに対応して、読み出し制御部５７は、読み出しアドレス生成部５５からの読み出しアドレスＲＡで、メモリ３１から、アクセスパターンＡＰを構成するアクセス候補の画素分の画像データを読み出す。
【０１２７】
書き込みアドレス生成部５６は、ステップＳ２３において、各メモリバンクのバンクアドレスの書き込みワード線アドレスと書き込みビット線アドレスを、例えばメモリ３１から読み出して、書き込みアドレスＷＡを生成し、書き込み制御処理部５８に供給する。
【０１２８】
書き込み制御処理部５８は、ステップＳ２４において、メモリバンクの１つ後のバンクアドレスから読み出された画素の画像データを、書き込みアドレスＷＡに基づいて、対応するメモリバンクのバンクアドレスの書き込みワード線アドレスと書き込みビット線アドレスに格納するとともに、書き込みワード線アドレスと書き込みビット線アドレスを格納する。
【０１２９】
ステップＳ２５において、読み出し制御処理部５７は、読み出された画素数に基づき１画面全てをスキャンしたか否かを判定し、まだ１画面全てをスキャンしていないと判定した場合、処理は、ステップＳ２６に進み、アドレス計算処理を実行する。このアドレス計算処理は、図２２のフローチャートを参照して後述する。
【０１３０】
ステップＳ２６のアドレス計算処理により、各メモリバンクから次に読み出す際に必要となるバンクアドレスの読み出しワード線アドレスとビット線アドレスおよび各メモリバンクに書き込む際に必要となるバンクアドレスの書き込みワード線アドレスとビット線アドレスが計算され、例えばメモリ３１に格納されるので、処理は、ステップＳ２２に戻り、それ以降の処理が繰り返される。
【０１３１】
一方、ステップＳ２５において、読み出された画素数に基づき１画面全てをスキャンしたと判定された場合、データ再格納制御処理は終了される。
【０１３２】
次に、図２２のフローチャートを参照して、図２１のステップＳ２６におけるアドレス計算処理を詳しく説明する。
【０１３３】
図２１のステップＳ２４において、書き込みビット線アドレスカウンタ５３は、メモリバンクの最後に書き込まれた書き込みビット線アドレスＷＡを入力し、ステップＳ３１において、カウント値をインクリメントする。
【０１３４】
ステップＳ３２において、書き込みビット線アドレスカウンタ５３は、そのカウント値がビット線長より大きくなったか否かを判定する。
【０１３５】
ステップＳ３２において、カウント値がビット線長より大きくなったと判定された場合、書き込みビット線アドレスカウンタ５３は、値を「０」にリセットし、その結果を、書き込みワード線アドレスカウンタ５４に出力するので、ステップＳ３３において、書き込みワード線アドレスカウンタ５４は、カウント値をインクリメントする。これにより、図２１のステップＳ２４で対象のメモリバンクの最後に書き込まれた書き込みワード線アドレスがインクリメントされる。
【０１３６】
ステップＳ３４において、書き込みワード線アドレスカウンタ５４は、そのカウンタ値がワード線長より大きくなったか否かを判定する。
【０１３７】
なお、ステップＳ３２およびＳ３４の判定処理は、実際には、例えば、書き込みアドレス生成部５６が実行するように構成される。
【０１３８】
ステップＳ３４において、書き込みワード線アドレスカウンタ５４の値がワード線長より大きくなったと判定された場合、書き込みビット線アドレスカウンタ５３は、カウント値を「０」にリセットする。そして、処理は、図２１のステップＳ２６に戻り、ステップＳ２２に進み、それ以降の処理が繰り返される。
【０１３９】
一方、ステップＳ３４において、書き込みビット線アドレスカウンタ５３の値がビット線長よりまだ小さいと判定された場合、または、書き込みワード線アドレスカウンタ５４の値がワード線長よりまだ小さいと判定された場合、処理は、図２１のステップＳ２６に戻り、ステップＳ２２に進み、それ以降の処理が繰り返される。
【０１４０】
なお、図２１のステップＳ２６における読み出し用のワード線アドレスとビット線アドレスの計算も、同様に行われる。その際、書き込み用のアドレス計算で用いられた書き込みビット線アドレスカウンタ５３（５３−０乃至５３−３）、書き込みワード線アドレスカウンタ５４（５４−０乃至５４−３）は、それぞれ読み出しビット線アドレスカウンタ５１、読み出しワード線アドレスカウンタ５２と読み替えるものとする。
【０１４１】
また、書き込み用のアドレス計算では、ステップＳ３１において、図２１のステップＳ２４で各メモリバンクに最後に書き込まれた書き込みビット線アドレス、ステップＳ３１において、図２１のステップＳ２３で読み出した各メモリバンクに最後に書き込まれた書き込みワード線アドレスが用いられたが、読み出し用のアドレス計算では、ステップＳ３１において、ステップＳ２２で各メモリバンクから最後に読み出した読み出しビット線アドレス、ステップＳ３３において、ステップＳ２２で各メモリバンクから最後に読み出した読み出しワード線アドレスが用いられるものと読み替える。
【０１４２】
なお、上記説明においては、アクセスパターンのアクセス候補間の領域をラスタ方向にスキャンした場合に、メモリバンクＢＫ３のデータはメモリバンクＢＫ２に書き込み、メモリバンクＢＫ２のデータはメモリバンクＢＫ１に書き込み、メモリバンクＢＫ１のデータはメモリバンクＢＫ０に書き込むようになっているが、このメモリバンクアドレスはこれに限られるものでなく、メモリバンクＢＫ３のデータをメモリバンクＢＫ０に、メモリバンクＢＫ０のデータをメモリバンクＢＫ２に、メモリバンクＢＫ２のデータをメモリバンクＢＫ１に書き込むようなあるパターンに従って読み込み・書き込みを行う構造としてもよい。
【０１４３】
またスキャンする方向もラスタスキャン方向に限られるものではなく、ラスタスキャン方向と逆、縦方向、斜め方向等であっても構わない。
【０１４４】
また、上記説明においては、データ読出し格納処理部が、ワード線アドレスとビット線アドレスをインクリメントしながら、そのワード線アドレス、ビット線アドレス上の画素のデータをバンク数だけ読み出したが、本発明はこれに限られるものではなく、あるパターンにしたがって読み出すのであればよい。したがってワード線アドレス、ビット線アドレスをデクリメント、また予め決めた所定のパターンに基づきワード線アドレス、ビット線アドレスの画素を読み出してもよい。
【０１４５】
さらに、上記説明においては、読み出した画素データは、一つ前のメモリバンクの既に書き込まれている領域の後ろに格納されていたが、その代わりに一つ前のメモリバンクの既に読み出されている領域に上書きしていってもよい。つまり一つ前のメモリバンクの先頭から上書きしていってもよい。その際は、書き込まれている領域の後ろに格納していたときと同様に、上書きしたアドレスに続くアドレスに順に上書きしていく必要がある。また、書き込むのは一つ前のメモリバンクには限られない。
【０１４６】
すなわち、上述の如くメモリ３１上に初期配置した各画素の画像データから、図１８を参照して説明したように、あるバンクアドレスが示すメモリバンクから画素の画像データを読み出し、図１９および図２０を参照して上述したように、そのバンクアドレス−１のバンクアドレスが示すバンクアドレスの書き込みワード線アドレス、書き込みビット線アドレスに格納する。
【０１４７】
この場合も、サーチエリアが移動するにつれて、各メモリバンクから読み出すことには変わりないが、アクセスされた画素が書き込まれるメモリバンクは次々と入れ替わっていくようになることにより、パターンがラスタスキャン順に移動しても同時アクセスを実現することができる。
【０１４８】
ところで、上記説明においては、メモリ３１には、アクセス画素分（必要最低限）のメモリバンク数を用意することで、画像をある一定のアクセスパターンで複数同時にアクセスすることを可能であることを説明したが、画像サイズとサーチエリアＳＲのサイズによっては、必要メモリ量が大きくなってしまう場合がある。これは、図２３乃至図２６に示すワーストケースを想定したメモリ量を準備する必要があるからである。
【０１４９】
図２３乃至図２６は、画像サイズが、縦４０画素、横８０画素で、サーチエリアＳＲが縦８画素、横１６画素で、アクセス候補数が４つ（アクセス候補Ｐ０乃至Ｐ３）の場合のアクセスパターンの例を示す図である。この場合、アクセス候補Ｐ０の画素からアクセス候補Ｐ１の手前までの画素のデータは、メモリバンクＢＫ０に格納され、アクセス候補Ｐ１の画素からアクセス候補Ｐ２の手前までの画素のデータは、メモリバンクＢＫ１に格納され、アクセス候補Ｐ２の画素からアクセス候補Ｐ３の手前までの画素のデータは、メモリバンクＢＫ２に格納され、アクセス候補Ｐ３の画素から残りすべての画素のデータは、メモリバンクＢＫ３に格納される。
【０１５０】
図２３の例においては、メモリバンクＢＫ０の必要メモリ量がワーストケース（すなわち、最大）となる場合のアクセスパターンが示されている。すなわち、このアクセスパターンＡＰ０は、サーチエリアＳＲの上から１番目の左から１番目（ラスタスキャン順に１番目）の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から８番目の右から３番目（ラスタスキャン順に最後から３番目）の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から８番目の右から２番目（ラスタスキャン順に最後から２番目）の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目（ラスタスキャン順に最後尾）の画素に設定されたアクセス候補Ｐ３で構成されている。
【０１５１】
したがって、図２３の例の場合、メモリバンクＢＫ０には、アクセス候補Ｐ０の画素から、アクセス候補Ｐ１の１つ手前の画素までの５７３（＝８０×（８−１）＋１６−３）画素のデータが格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ２には、アクセス候補Ｐ２の１画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ３の画素から残りすべての画素である２６２５（＝８０×４０−８０×７−１６＋１）画素が格納されている。
【０１５２】
図２４の例においては、メモリバンクＢＫ１の必要メモリ量がワーストケースとなる場合のアクセスパターンが示されている。すなわち、このアクセスパターンＡＰ１は、サーチエリアＳＲの上から１番目の左から１番目（ラスタスキャン順に１番目）の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から１番目の左から２番目（ラスタスキャン順に２番目）の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から８番目の右から２番目（ラスタスキャン順に最後から２番目）の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目（ラスタスキャン順に最後尾）の画素に設定されたアクセス候補Ｐ３で構成されている。
【０１５３】
したがって、図２４の例の場合、メモリバンクＢＫ０には、アクセス候補Ｐ０の１画素のデータが格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１の画素から、アクセス候補Ｐ２の１つ手前の画素までの５７３（＝８０×（８−２）＋（８０−１）＋１６−２）画素のデータが格納され、メモリバンクＢＫ２には、アクセス候補Ｐ２の１画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ３の画素から残りすべての画素である２６２５画素が格納されている。
【０１５４】
図２５の例においては、メモリバンクＢＫ２の必要メモリ量がワーストケースとなる場合のアクセスパターンが示されている。すなわち、このアクセスパターンＡＰ２は、サーチエリアＳＲの上から１番目の左から１番目（ラスタスキャン順に１番目）の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から１番目の左から２番目（ラスタスキャン順に２番目）の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から１番目の左から３番目（ラスタスキャン順に３番目）の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目（ラスタスキャン順に最後尾）の画素に設定されたアクセス候補Ｐ３で構成されている。
【０１５５】
したがって、図２５の例の場合、メモリバンクＢＫ０には、アクセス候補Ｐ０の１画素のデータが格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ２には、アクセス候補Ｐ２の画素から、アクセス候補Ｐ３の１つ手前の画素までの５７３（＝８０×（８−２）＋（８０−２）＋１６−１）画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ３の画素から残りすべての画素である２６２５画素のデータが格納されている。
【０１５６】
図２６の例においては、メモリバンクＢＫ３の必要メモリ量がワーストケースの場合のアクセスパターンが示されている。すなわち、このアクセスパターンＡＰ３は、サーチエリアＳＲの上から１番目の左から１番目（ラスタスキャン順に１番目）の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から１番目の左から２番目（ラスタスキャン順に２番目）の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から１番目の左から３番目（ラスタスキャン順に３番目）の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から１番目の左から４番目（ラスタスキャン順に４番目）の画素に設定されたアクセス候補Ｐ３で構成されている。
【０１５７】
したがって、図２６の例の場合、メモリバンクＢＫ０には、アクセス候補Ｐ０の１画素のデータが格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ２には、アクセス候補Ｐ２の１画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ３の画素から残りすべての画素である３１９７画素（＝８０×４０−３）のデータが格納されている。
【０１５８】
以上より、各メモリバンクＢＫ０乃至ＢＫ３の必要メモリ量のワーストケースすべてを考慮すると、全体として、４９１６（＝５７３×３＋３１９７×１）画素のデータが格納されることが必要である。したがって、画像サイズ縦４０画素、横８０画素をメモリ量１枚とした場合に、４９１６／（８０×４０）＝略１．５４枚分のメモリ量が必要となる。
【０１５９】
これは、必要最低限のメモリバンク数で構成することで、アクセスパターンにおけるアクセス候補間が離れていることが原因であり、画像サイズとサーチエリアサイズにもよるが、メモリ量の制限が厳しい条件下では、実現が困難な場合がある。そこで、以下においては、必要最低限のメモリバンク数以上のメモリバンク数でメモリを構成する例を説明する。
【０１６０】
図２７は、本発明を適用したデータ格納装置の構成例を表している。
【０１６１】
図２７のデータ格納装置１１１は、入力端子２１ａ乃至２１ｃ、出力端子２１ｂ、メモリ３１、およびデータ読み出し格納制御部３３を備える点が、図８のデータ格納装置１１と共通するが、データ格納制御部３２がデータ格納制御部１２１に入れ替わった点、セレクタ設定部１２２およびセレクタ１２３が追加された点が、図８のデータ格納装置１１と異なる。
【０１６２】
図２７の例のメモリ３１は、後述する図３５の設計装置２０１により予め設計された数のメモリバンク（例えば、８個のメモリバンクＢＫ０乃至ＢＫ７）で構成されている。
【０１６３】
データ格納制御部１２１は、入力端子２１ｃからのアクセスパターンＡＰだけでなく、後述する図３５の設計装置２０１により予め設計された１メモリバンク当たりの最大格納画素数にも基づいて、入力端子２１ａから入力されるデータＤＡをメモリ３１に配置（格納）する初期配置処理を行う。
【０１６４】
すなわち、データ格納制御部１２１は、入力端子２１ａから入力された画素が、入力端子２１ｃからのアクセスパターンＡＰを構成するアクセス候補であるか否かを判定し、アクセス候補ではないと判定された場合、現在格納対象のメモリバンクＢＫに格納されている画素が、最大格納画素数を超えたか否かを判定する。
【０１６５】
そして、入力された画素がアクセス候補であると判定された場合、あるいは、現在格納対象のメモリバンクＢＫに格納されている画素が、最大格納画素数を超えたと判定された場合、データ格納制御部１２１は、格納対象のメモリバンクＢＫを、次のメモリバンクＢＫに変更し、そのメモリバンクＢＫに、対象となる画素のデータを格納させる。また、データ格納制御部１２１は、入力された画素がアクセス候補であると判定された場合のみ、変更されたメモリバンクＢＫからのデータが選択されるようにセレクタ設定部１２２を制御する。
【０１６６】
なお、入力された画素がアクセス候補ではなく、現在格納対象のメモリバンクＢＫに格納されている画素が、まだ最大格納画素数を超えていないと判定された場合、データ格納制御部１２１は、その画素のデータを、現在格納対象のメモリバンクＢＫに格納させる。
【０１６７】
セレクタ設定部１２２は、データ格納制御部１２１の制御のもと、メモリ３１の複数のメモリバンクＢＫのうち、アクセス候補のデータが格納されているメモリバンクＢＫがセレクタ１２３により選択されるように設定する。
【０１６８】
セレクタ１２３は、メモリ３１の複数のメモリバンクＢＫのうち、アクセス候補のデータが格納されているメモリバンクＢＫからのデータを選択して読み出し、読み出したデータを、出力端子２２から出力させる。
【０１６９】
なお、図２７のデータ読み出し格納制御部３３は、メモリ３１のメモリバンク数に対応する数のデータ読み出し格納制御部３３で構成される点が、図１０を参照して上述したデータ読み出し格納制御部３３が４つのメモリバンクＢＫに対応するデータ読み出し格納制御部３３−１乃至３３−４で構成される点と異なるだけであり、基本的な構成は同じであるので、その説明は省略する。
【０１７０】
図２８は、図２７のデータ格納制御部１２１の構成例を示す図である。
【０１７１】
図２８のデータ格納制御部１２１は、カウンタ４１、一致判定部４２、フラグ生成部４３、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、ワード線アドレスカウンタ４６、および格納制御処理部４８を備えた点が図９のデータ格納制御部３２と共通しているが、アドレス生成部４７がアドレス生成部１４２に入れ替わった点、および画素数判定部１４１が追加された点が、図９のデータ格納制御部３２と異なる。
【０１７２】
図２８の一致判定部４２の判定結果は、画素数判定部１４１にも出力される。
【０１７３】
画素数判定部１４１は、図３５の設計装置２０１により予め設計された１メモリバンク当たりの最大格納画素数を記憶しており、一致判定部４２からの判定結果が不一致である場合、ビット線アドレスカウンタ４５とワード線アドレスカウンタ４６のカウント値に基づいて、メモリバンクＢＫに格納される画素数が最大格納画素数を超えたか否かを判定し、その判定結果を、フラグ生成部４３に出力する。なお、図示は省略するが、この判定結果は、アドレス生成部１４２にも出力される。
【０１７４】
図２８のフラグ生成部４３は、一致判定部４２からの判定結果だけでなく、画素数判定部１４１の判定結果に応じても、フラグを生成し、生成したフラグを、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、およびワード線アドレスカウンタ４６に出力する。
【０１７５】
アドレス生成部１４１は、一致判定部４２からの判定結果が一致を示す場合、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、およびワード線アドレスカウンタ４６が示すカウント値に基づいて、書き込みアドレスＷＡを生成し、格納制御処理部４８に出力する。なお、このとき、アドレス生成部１４１は、バンクアドレスカウンタ４４が示すカウント値（すなわち、バンクアドレス）を、セレクタ設定部１２２に出力する。
【０１７６】
また、アドレス生成部１４１は、画素数判定部１４１からの判定結果が最大格納画素数を超えたことを示す場合、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、およびワード線アドレスカウンタ４６が示すカウント値に基づいて、書き込みアドレスＷＡを生成し、格納制御処理部４８に出力する。なお、このときバンクアドレスカウンタ４４が示すカウント値（すなわち、バンクアドレス）は、セレクタ設定部１２２に出力されない。
【０１７７】
図２９は、図２３のアクセスパターンＡＰ０の場合の画像データの各メモリバンクＢＫへの初期配置の例を示す図である。
【０１７８】
すなわち、このアクセスパターンＡＰ０は、図２３の例と同様に、サーチエリアＳＲの上から１番目の左から１番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から８番目の右から３番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から８番目の右から２番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０１７９】
また、図２９の例においては、図３５の設計装置２０１によりメモリバンク数が８に、１メモリバンク当たりの最大格納画素数が１６０画素に設定されている。
【０１８０】
したがって、メモリバンクＢＫ０には、アクセス候補Ｐ０の画素を含めて１６０画素分のデータが格納される。アクセス候補Ｐ０の画素を含めて１６１番目の画素（サーチエリアＳＲの上から３番目の左から１番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ０に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ１に格納される。
【０１８１】
次のメモリバンクＢＫ１には、画素Ｑ０を含めて１６０画素分のデータが格納される。画素Ｑ０を含めて１６１番目の画素（サーチエリアＳＲの上から５番目の左から１番目の画素）Ｑ１については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ１に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ１からのデータは、次のメモリバンクＢＫ２に格納される。
【０１８２】
次のメモリバンクＢＫ２には、画素Ｑ１を含めて１６０画素分のデータが格納される。画素Ｑ１を含めて１６１番目の画素（サーチエリアＳＲの上から７番目の左から１番目の画素）Ｑ２については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ２に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ２からのデータは、次のメモリバンクＢＫ３に格納される。
【０１８３】
次のメモリバンクＢＫ３には、画素Ｑ１から、アクセス候補Ｐ１の１つ手前の画素までの９３（＝８０＋１６−３）画素のデータが格納され、メモリバンクＢＫ４には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ５には、アクセス候補Ｐ２の１画素のデータが格納される。
【０１８４】
メモリバンクＢＫ６には、アクセス候補Ｐ３を含めて１６０画素分のデータが格納される。アクセス候補Ｐ３を含めて１６１番目の画素（サーチエリアＳＲの上から１０番目の左から１６番目の画素）Ｑ３については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ６に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ３からのデータは、次のメモリバンクＢＫ７に格納される。
【０１８５】
そして、メモリバンクＢＫ７には、画素Ｑ３から残りすべての画素である２４６５（＝８０×４０−（８０×９＋１５））画素が格納される。なお、最後のメモリバンクＢＫについては、最大格納画素数は適用されない。
【０１８６】
なお、図２４のアクセスパターンＡＰ１の場合は、基本的に同様であるので、その図示および詳細な説明は省略するが、メモリバンクＢＫ０には、１画素格納され、メモリバンクＢＫ１乃至メモリバンクＢＫ３には、１６０画素格納され、メモリバンクＢＫ４には、９３画素格納され、メモリバンクＢＫ５には、１画素格納され、メモリバンクＢＫ６には、１６０画素格納され、メモリバンクＢＫ７には、２４６５画素格納される。
【０１８７】
同様に、図２５のアクセスパターンＡＰ２の場合は、メモリバンクＢＫ０およびメモリバンクＢＫ１には、１画素格納され、メモリバンクＢＫ２乃至メモリバンクＢＫ４には、１６０画素格納され、メモリバンクＢＫ５には、９３画素格納され、メモリバンクＢＫ６には、１画素格納され、１６０画素格納され、メモリバンクＢＫ７には、２４６５画素格納される。
【０１８８】
すなわち、アクセスパターンＡＰ１およびＡＰ２の場合は、アクセスパターンＡＰ１の場合と、サーチエリアＳＲ内におけるアクセス候補Ｐ１およびＰ２と各画素Ｑ０乃至Ｑ２の位置が異なることで、メモリバンクＢＫ１乃至ＢＫ５に格納される画素数がメモリバンクＢＫ１乃至ＢＫ５内で入れ替わるだけである。
【０１８９】
図３０は、図２６のアクセスパターンＡＰ３の場合の画像データの各メモリバンクＢＫへの初期配置の例を示す図である。
【０１９０】
すなわち、このアクセスパターンＡＰ３は、図２６の例と同様に、サーチエリアＳＲの上から１番目の左から１番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から１番目の左から２番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から１番目の左から３番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から１番目の左から４番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０１９１】
また、図３０の例においても、図３５の設計装置２０１によりメモリバンク数が８に、１メモリバンク当たりの最大格納画素数が１６０画素に設定されている。
【０１９２】
したがって、メモリバンクＢＫ０には、アクセス候補Ｐ０の１画素のデータが格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ２には、アクセス候補Ｐ２の１画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ３の画素を含めて１６０画素分のデータが格納される。
【０１９３】
アクセス候補Ｐ３の画素を含めて１６１番目の画素（サーチエリアＳＲの上から３番目の左から４番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ３に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ４に格納される。
【０１９４】
これにより、メモリバンクＢＫ４には、画素Ｑ０を含めて１６０画素分のデータが格納される。また、画素Ｑ０を含めて１６１番目の画素（サーチエリアＳＲの上から５番目の左から４番目の画素）Ｑ１については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ４に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ１からのデータは、次のメモリバンクＢＫ５に格納される。
【０１９５】
同様に、メモリバンクＢＫ５には、画素Ｑ１を含めて１６０画素分のデータが格納される。画素Ｑ１を含めて１６１番目の画素（サーチエリアＳＲの上から７番目の左から４番目の画素）Ｑ２については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ５に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ２からのデータは、次のメモリバンクＢＫ６に格納される。
【０１９６】
メモリバンクＢＫ６には、画素Ｑ２を含めて１６０画素分のデータが格納される。画素Ｑ２を含めて１６１番目の画素（サーチエリアＳＲの上から９番目の左から４番目の画素）Ｑ２については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ６に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ３からのデータは、次のメモリバンクＢＫ７に格納される。
【０１９７】
そして、メモリバンクＢＫ７には、画素Ｑ３から残りすべての画素である２５５７（＝８０×４０−（８０×８＋３））画素が格納される。
【０１９８】
以上のように、アクセス候補数以上にメモリバンク数と、１つのメモリバンクＢＫに格納される最大格納画素数を設定し、アクセス候補でなくても、メモリバンクＢＫに格納中の画素が、最大格納画素数を超えた場合に、次のメモリバンクＢＫに格納するようにした。
【０１９９】
これにより、各メモリバンクＢＫ０乃至ＢＫ７の必要メモリ量のワーストケースすべてを考慮すると、全体として、３６７７（＝１６０×７＋２５５７）画素のデータが格納されることが必要である。
【０２００】
したがって、画像サイズ縦４０画素、横８０画素をメモリ量１枚とした場合に、３６７７／（８０×４０）＝略１．１５枚分のメモリ量が必要となるだけであり、図２３乃至図２６を参照して上述したアクセス候補数分のメモリバンクＢＫを用いた場合の略１．５４枚分のメモリ量よりもメモリ量が削減される。
【０２０１】
次に、図３１および図３２を参照して、セレクタ１２３のデータ選択方法を説明する。
【０２０２】
図３１は、他のアクセスパターンの場合の画像データの各メモリバンクＢＫへの初期配置の例を示す図である。なお、図示は省略されているが、図３１の例においても、縦４０画素、横８０画素で構成される画像上の縦８画素、横１６画素からなるサーチエリアが示されている。また、この場合も、メモリバンク数が８に、１メモリバンク当たりの最大格納画素数が１６０画素に設定されている。
【０２０３】
図３１に示されるアクセスパターンは、サーチエリアＳＲの上から３番目の左から４番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から３番目の左から１１番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から６番目の左から３番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から７番目の左から７番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０２０４】
したがって、メモリバンクＢＫ０には、アクセス候補Ｐ０から、アクセス候補Ｐ１の１手前の画素までの７画素のデータが格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１を含めて、１６０画素分のデータが格納される。
【０２０５】
アクセス候補Ｐ１の画素を含めて１６１番目の画素（サーチエリアＳＲの上から３番目の左から１１番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ１に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ２に格納される。
【０２０６】
メモリバンクＢＫ２には、画素Ｑ０から、アクセス候補Ｐ２の１手前の画素までの７２画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ２から、アクセス候補Ｐ３の１手前の画素までの８４画素のデータが格納される。メモリバンクＢＫ４には、アクセス候補Ｐ３の画素を含めて、１６０画素分のデータが格納される。
【０２０７】
アクセス候補Ｐ３の画素を含めて１６１番目の画素（サーチエリアＳＲの上から９番目の左から７番目の画素）Ｑ１については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ４に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ１からのデータは、次のメモリバンクＢＫ５に格納される。
【０２０８】
メモリバンクＢＫ５には、画素Ｑ１を含めて１６０画素分のデータが格納される。画素Ｑ１を含めて１６１番目の画素（サーチエリアＳＲの上から１１番目の左から７番目の画素）Ｑ２については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ５に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ２からのデータは、次のメモリバンクＢＫ６に格納される。
【０２０９】
メモリバンクＢＫ６には、画素Ｑ２を含めて１６０画素分のデータが格納される。画素Ｑ２を含めて１６１番目の画素（サーチエリアＳＲの上から１３番目の左から７番目の画素）Ｑ３については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ６に格納されている画素数が、最大格納画素数である１６０画素を超えるので、画素Ｑ３からのデータは、次のメモリバンクＢＫ７に格納される。
【０２１０】
そして、メモリバンクＢＫ７には、画素Ｑ３から残りすべての画素である２２３４（＝８０×４０−（８０×１２＋６））画素が格納される。
【０２１１】
ここで、データ格納装置１１１のデータ読み出し格納制御部３３においては、図２１を参照して上述したデータ再格納制御処理が８個のメモリバンクＢＫ０乃至ＢＫ８に対して実行される。このとき、８個のメモリバンクＢＫ０乃至ＢＫ８に対応した８のデータ読み出し格納制御部３３により、４つのアクセス候補Ｐ０乃至Ｐ３と、４つの画素Ｑ０乃至Ｑ３のデータが読み出され、再格納される。
【０２１２】
すなわち、アクセス候補Ｐ０のデータがメモリバンクＢＫ０から読み出され、アクセス候補Ｐ１のデータがメモリバンクＢＫ１から読み出され、アクセス候補Ｐ２のデータがメモリバンクＢＫ３から読み出され、アクセス候補Ｐ３のデータがメモリバンクＢＫ４から読み出される。また、画素Ｑ０のデータがメモリバンクＢＫ２から読み出され、画素Ｑ１のデータがメモリバンクＢＫ５から読み出され、画素Ｑ２のデータがメモリバンクＢＫ６から読み出され、画素Ｑ３のデータがメモリバンクＢＫ７から読み出される。
【０２１３】
しかしながら、４つの画素Ｑ０乃至Ｑ３は、アクセス候補ではないので、４つの画素Ｑ０乃至Ｑ３のデータは、データ格納装置１１１から出力される必要がない。そこで、図３２に示されるように、セレクタ１２３は、アクセス候補のデータが格納されているメモリバンクＢＫからのデータのみを出力するように選択する。
【０２１４】
図３２は、セレクタの構成を模式的に示す図である。
【０２１５】
図３２の例において、メモリ３１は、メモリバンクＢＫ０乃至ＢＫ７により構成されており、セレクタ１２３は、アクセス候補Ｐ０のデータが格納されているメモリバンクＢＫ０から、アクセス候補Ｐ０のデータを選択して出力しており、アクセス候補Ｐ１のデータが格納されているメモリバンクＢＫ１から、アクセス候補Ｐ１のデータを選択して出力している。
【０２１６】
また、セレクタ１２３は、アクセス候補Ｐ２のデータが格納されているメモリバンクＢＫ３から、アクセス候補Ｐ２のデータを選択して出力しており、アクセス候補Ｐ３のデータが格納されているメモリバンクＢＫ４から、アクセス候補Ｐ３のデータを選択して出力している。
【０２１７】
すなわち、アドレス生成部１４１は、一致判定部４２による判定結果に基づいて、入力される画素がアクセス候補であった場合に、カウント値がインクリメントされたバンクアドレスをセレクタ設定部１２２に出力する。これに対応して、セレクタ設定部１２２は、セレクタ１２３が、そのバンクアドレスが対応するメモリバンクＢＫを選択するように設定する。
【０２１８】
一方、アドレス生成部１４１は、一致判定部４２による判定結果に基づいて、入力される画素がアクセス候補でない場合に、画素数判定部１４１によりメモリバンクＢＫに格納されている画素数が、最大格納画素数を超えていると判定されたときには、バンクアドレスのカウント値をインクリメントしたとしても、そのバンクアドレスをセレクタ設定部１２２に出力しない。
【０２１９】
以上により、セレクタ１２３においては、アクセス候補が格納されているメモリバンクＢＫからのデータだけを選択して出力端子２２から出力することができる。
【０２２０】
次に、図３３のフローチャートを参照して、図２７のデータ格納制御部１２１の初期配置処理を詳しく説明する。なお、図３３のステップＳ１０１乃至Ｓ１０５、並びにステップＳ１１０およびＳ１１１は、図１４のステップＳ１乃至Ｓ５、並びにステップＳ１０８およびＳ１０９と基本的に同様の処理を行うので、その詳細な説明は、繰り返しになるので、適宜省略する。
【０２２１】
データ格納制御部３２は、初期配置処理を開始すると、ステップＳ１０１において、バンクアドレスカウンタ４４、ビット線アドレスカウンタ４５、およびワード線アドレスカウンタ４６のカウント値を全て「０」に、初期設定を行う。
【０２２２】
ステップＳ１０２において、カウンタ４１は、入力端子２１ａから格納すべき１画素分の画像データを入力する。カウンタ４１は、１画素を計数し、計数結果を一致判定部４２に出力する。
【０２２３】
ステップＳ１０３において、一致判定部４２は、入力端子２１ｂからのアクセスパターンＡＰと、カウンタ４１の計数結果との一致判定を行い、入力された１画素が、アクセスパターンＡＰが示すアクセス開始位置（アクセス候補）の画素であるか否かを判定する。
【０２２４】
ステップＳ１０３において入力された１画素がアクセス開始位置の画素であると判定された場合、すなわち、その画素がアクセス開始位置の場合には、ステップＳ１０４において、アドレス生成部１４２は、現在のワード線アドレスカウンタ４６とビット線アドレスカウンタ４５のカウント値を、バンクアドレスに対応したメモリバンクＢＫの書き込みが開始される書き込みワード線アドレスと書き込みビット線アドレスとして格納する。
【０２２５】
ステップＳ１０５において、バンクアドレスカウンタ４４は、カウント値をインクリメントし、さらに、ワード線アドレスカウンタ４６とビット線アドレスカウンタ４５は、カウント値を「０」にリセットする。
【０２２６】
すなわち、フラグ生成部４３は、一致判定部４２により入力された１画素がアクセス候補の画素であるという判定結果に応じたフラグを生成し、生成したフラグを、バンクアドレスカウンタ４４、ワード線アドレスカウンタ４６、およびビット線アドレスカウンタ４５に出力する。
【０２２７】
これに対応して、バンクアドレスカウンタ４４は、カウンタ４１の計数結果を受けて、カウント値をインクリメントし、インクリメントしたカウント値を、アドレス生成部１４２に出力する。また、ワード線アドレスカウンタ４６とビット線アドレスカウンタ４５は、カウント値を「０」にリセットし、リセットしたカウント値を、アドレス生成部１４２に出力する。
【０２２８】
ステップＳ１０６において、アドレス生成部１４２は、バンクアドレスカウンタ４４のカウント値をセレクタ設定部１２２に出力する。これにより、セレクタ設定部１２２は、セレクタ１２３が、そのバンクアドレスが対応するメモリバンク（アクセス候補の画素データが格納されるメモリバンク）ＢＫを選択するように設定する。
【０２２９】
アドレス生成部１４２は、バンクアドレスカウンタ４４のカウント値、およびワード線アドレスカウンタ４６とビット線アドレスカウンタ４５のカウント値「０」で示される書き込みアドレスＷＡを生成するので、その後、ステップＳ１１０において、格納制御処理部４８は、アドレス生成部１４２により生成された書き込みアドレスＷＡで、メモリ３１にその画素の画像データを格納する。
【０２３０】
一方、ステップＳ１０３において入力された１画素がアクセス開始位置の画素ではないと判定された場合、画素数判定部１４１は、ワード線アドレスカウンタ４６、およびビット線アドレスカウンタ４５のカウント値を参照し、対応するメモリバンクＢＫの格納画素数が、図３５の設計装置２０１により設定された１メモリバンク当たりの最大格納画素数を超えたか否かを判定する。なお、この判定処理は、実際には、例えば、一致判定部４２などで実行するように構成される。
【０２３１】
ステップＳ１０７において、対応するメモリバンクＢＫの格納画素数が、１メモリバンク当たりの最大格納画素数を超えたと判定された場合、ステップＳ１０８において、アドレス生成部１４２は、現在のワード線アドレスカウンタ４６とビット線アドレスカウンタ４５のカウント値を、バンクアドレスに対応したメモリバンクＢＫの書き込みが開始される書き込みワード線アドレスと書き込みビット線アドレスとして格納する。
【０２３２】
ステップＳ１０９において、バンクアドレスカウンタ４４は、カウント値をインクリメントし、さらに、ワード線アドレスカウンタ４６とビット線アドレスカウンタ４５は、カウント値を「０」にリセットする。
【０２３３】
すなわち、フラグ生成部４３は、画素数判定部１４１により入力された１画素がアクセス候補の画素であるという判定結果に応じたフラグを生成し、生成したフラグを、バンクアドレスカウンタ４４、ワード線アドレスカウンタ４６、およびビット線アドレスカウンタ４５に出力する。
【０２３４】
これに対応して、バンクアドレスカウンタ４４は、カウンタ４１の計数結果を受けて、カウント値をインクリメントし、インクリメントしたカウント値を、アドレス生成部１４２に出力する。また、ワード線アドレスカウンタ４６とビット線アドレスカウンタ４５は、カウント値を「０」にリセットし、リセットしたカウント値を、アドレス生成部１４２に出力する。
【０２３５】
アドレス生成部１４２は、バンクアドレスカウンタ４４のカウント値、およびワード線アドレスカウンタ４６とビット線アドレスカウンタ４５のカウント値「０」で示される書き込みアドレスＷＡを生成するので、その後、ステップＳ１１０において、格納制御処理部４８は、アドレス生成部１４２により生成された書き込みアドレスＷＡで、メモリ３１にその画素の画像データを格納する。
【０２３６】
ステップＳ１０７において、対応するメモリバンクＢＫの格納画素数が、１メモリバンク当たりの最大格納画素数を超えたと判定された場合、処理は、ステップＳ１０８およびＳ１０９をスキップし、ステップＳ１１０に進む。
【０２３７】
この場合、アドレス生成部１４２は、現在のバンクアドレスカウンタ４４、ワード線アドレスカウンタ４６、およびビット線アドレスカウンタ４５のカウント値で示される書き込みアドレスＷＡを生成するので、ステップＳ１１０において、格納制御処理部４８は、アドレス生成部１４２により生成された書き込みアドレスＷＡで、メモリ３１にその画素の画像データを格納する。
【０２３８】
ステップＳ１１１において、カウンタ４１は、計数結果を参照して、画像の全データが入力されたか否かを判定し、全データがまだ入力されていないと判定した場合、その計数結果をバンクアドレスカウンタ４４に出力する。バンクアドレスカウンタ４４は、計数結果を受けて、その結果をビット線アドレスカウンタ４５に出力する。
【０２３９】
これに対応して、ステップＳ１１２において、初期格納のアドレス計算処理が実行される。この初期格納のアドレス計算処理は、図３４のフローチャートを参照して説明する。なお、図３４のステップＳ１３１乃至Ｓ１３３の処理は、図１４のステップＳ８乃至Ｓ１０の処理と基本的に同様の処理であるので、その詳細な説明は適宜省略する。
【０２４０】
ステップＳ１３１において、ビット線アドレスカウンタ４５は、カウント値をインクリメントし、ステップＳ１３２において、ビット線アドレスカウンタ４５のカウント値がビット線長より大きくなったか否かを判定する。なお、この判定処理は、実際には、例えば、アドレス生成部４７などで実行するように構成される。
【０２４１】
ステップＳ１３２において、カウント値がビット線長より小さいと判定された場合、処理は、図３３のステップＳ１０２に戻り、次の１画素分の画像データについての格納処理が行われる。
【０２４２】
ステップＳ１３２において、カウント値がビット線長よりより大きくなったと判定された場合、処理は、ステップＳ１３３に進み、ビット線アドレスカウンタ４５は、カウント値を「０」にリセットするとともに、その結果を、ワード線アドレスカウンタ４６に出力する。これに対応して、ワード線アドレスカウンタ４６は、カウント値をインクリメントしてから、処理は、図３３のステップＳ１０２に戻り、次の１画素分の画像データについての格納処理が行われる。
【０２４３】
ステップＳ１１１において、全データが入力されたと判定された場合、初期配置処理は終了される。
【０２４４】
以上のように、アクセス候補数以上にメモリバンク数と、１つのメモリバンクに格納される最大格納画素数を設定し、アクセス候補でなくても、格納中のメモリバンクの画素が、最大格納画素数を超えた場合に、次のメモリバンクＢＫに格納するようにしたので、図２３乃至図２６を参照して上述したアクセス候補数分のメモリバンクＢＫを用いた場合のメモリ量よりも、全体として、メモリ３１のメモリ量が削減される。
【０２４５】
次に、上述したデータ格納装置１１１のパラメータである、メモリバンク数と、１つのメモリバンク当たりの最大格納画素数などを設計する設計装置を説明する。
【０２４６】
図３５は、本発明を適用した設計装置のハードウエア構成例を示すブロック図である。
【０２４７】
設計装置２０１は、例えば、図３５に示されるコンピュータなどで構成される。
【０２４８】
CPU(Central Processing Unit)２１１は、ROM(Read Only Memory)２１２、または記憶部４１８に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)２１３には、CPU２１１が実行するプログラムやデータなどが適宜記憶される。CPU２１１、ROM２１２、およびRAM２１３は、バス２１４により相互に接続されている。
【０２４９】
CPU２１１にはまた、バス２１４を介して入出力インタフェース２１５が接続されている。入出力インタフェース２１５には、キーボード、マウス、マイクロホンなどよりなる入力部２１６、ディスプレイ、スピーカなどよりなる出力部２１７が接続されている。CPU２１１は、入力部２１６から入力される指令に対応して各種の処理を実行する。そして、CPU２１１は、処理の結果を出力部２１７に出力する。
【０２５０】
入出力インタフェース２１５に接続されている記憶部２１８は、例えばハードディスクからなり、CPU２１１が実行するプログラムや各種のデータを記憶する。通信部２１９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０２５１】
また、通信部２１９を介してプログラムを取得し、記憶部２１８に記憶してもよい。
【０２５２】
入出力インタフェース２１５に接続されているドライブ２２０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２２１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部２１８に転送され、記憶される。
【０２５３】
なお、上述したデータ格納装置１１および１１１も、図３５に示した設計装置２０１と基本的に同様の構成を有するコンピュータにより構成されるようにすることができる。
【０２５４】
ここで、CPU２１１が、各種のプログラムを実行することにより、図３５のコンピュータは、設計装置２０１、またはデータ格納装置１１および１１１として機能することとなる。この場合、プログラムは、図３５のコンピュータに内蔵されている記録媒体としてのＲＯＭ２１２や記憶部２１８に予め記録しておくことができる。あるいはまた、プログラムは、磁気ディスクや、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブルメディア２２１に、一時的あるいは永続的に格納（記録）し、いわゆるパッケージソフトウェアとして提供することができる。
【０２５５】
なお、プログラムは、上述したようなリムーバブルメディア２１から図３５のコンピュータにインストールする他、ダウンロードサイトから、デジタル衛星放送用の人工衛星を介して、図３５のコンピュータに無線で転送したり、LAN(Local Area Network)、ネットワーク２を介して、図３５のコンピュータに有線で転送してインストールすることもできる。
【０２５６】
図３６は、設計装置２０１の機能構成例を示すブロック図である。図３６に示される機能ブロックは、設計装置２０１のCPU２１１により、所定のプログラムが実行されることで実現される。
【０２５７】
この機能ブロックは、格納画素数算出部２３１、メモリ量算出部２３２、およびバンク数設定部２３３により構成される。
【０２５８】
例えば、設計者は、データ格納装置１１１を設計するための所定のパラメータ（画像サイズ、サーチエリアのサイズ、アクセスパターン数、および利用候補となるメモリバンク数）を、入力部２１６を構成するキーボードなどを操作することで、設計装置２０１に入力する。
【０２５９】
格納画素数算出部２３１は、入力部２１６の操作に対応して、利用候補となるメモリバンク数を仮設定し、画像サイズ、サーチエリアのサイズ、アクセスパターン数、および仮設定されたメモリバンク数に基づいて、１つのメモリバンク当たりの最大格納画素数を算出し、算出した最大格納画素数を、メモリ量算出部２３２に出力する。
【０２６０】
メモリ量算出部２３２は、格納画素数算出部２３１により算出された最大格納画素数、仮設定されたメモリバンク数、画像サイズ、アクセスパターン数に基づいて、その仮設定されたメモリバンク数の場合の必要メモリ量を算出し、算出した必要メモリ量と仮設定されたメモリバンク数をバンク数設定部２３３に出力する。
【０２６１】
バンク数設定部２３３は、複数の仮設定されたメモリバンク数と、それに対応する必要メモリ量に基づいて、データ格納装置１１１で使用されるメモリ量を設定し、設定されたメモリ量に対応するメモリバンク数を、データ格納装置１１１で使用されるメモリバンク数に設定する。
【０２６２】
以下、メモリバンク数の設定方法について具体的に説明する。
【０２６３】
図３７は、図２３のアクセスパターンＡＰ０、仮設定されたメモリバンク数（以下、仮設定メモリバンク数と称する）が５の場合の画像データの各バンクへの初期配置の例を示す図である。
【０２６４】
すなわち、このアクセスパターンＡＰ０は、図２３の例と同様に、サーチエリアＳＲの上から１番目の左から１番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から８番目の右から３番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から８番目の右から２番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０２６５】
また、図３７の例においては、アクセス候補の位置、または、アクセス候補間距離（すなわち、最大格納画素数）が、３２０（＝８０×８／（５−４＋１））画素を超えた時点でメモリバンクＢＫが切り替えられる。この最大格納画素数は、画像の横サイズ×サーチエリアの縦サイズに含まれる画素数を、アクセス候補の位置以外で切り替えられる画素の数（すなわち、仮設定メモリバンク数−アクセス候補数）＋１で割ったものである。具体的には、この最大格納画素数は、次の式（１）で表される。
【０２６６】
最大格納画素数≒  画像の横サイズ×サーチエリアの縦サイズ／
（仮設定メモリバンク数−アクセス候補数＋１）
・・・（１）
【０２６７】
なお、厳密には、最大格納画素数は、アクセス候補Ｐ０とアクセス候補Ｐ１の１つ手前の画素までの画素数を、アクセス候補の位置以外で切り替えられる画素の数＋１で割ることにより求められるが、計算の際に割り切れることを重視し、通常の場合は、上述した式（１）が用いられる。最大格納画素数は、厳密には、式（２）で表される。
【０２６８】
最大格納画素数＝  画像の横サイズ×サーチエリアの縦サイズ−カウント外画素数／
（仮設定メモリバンク数−アクセス候補数＋１）
・・・（２）
【０２６９】
この画像の横サイズ×サーチエリアの縦サイズ−カウント外画素数は、アクセス候補Ｐ０とアクセス候補Ｐ１の１つ手前の画素までの画素数を表しており、カウント外画素数は、横サイズ×サーチエリアの縦サイズのうち、ラスタスキャン順に、アクセス候補Ｐ１以降の画素（３＋６４）を表している。
【０２７０】
すなわち、厳密には、最大格納画素数は、画像の横サイズ×サーチエリアの縦サイズに含まれる画素数を、アクセス候補の位置以外で切り替えられる画素の数＋１で等分したものであり、式（２）を用いて、２８６．５（＝８０×８−（６４＋３）／（５−４＋１））として求められる。
【０２７１】
以上より、メモリバンクＢＫ０には、アクセス候補Ｐ０の画素を含めて３２０画素分のデータが格納される。アクセス候補Ｐ０の画素を含めて３２１番目の画素（サーチエリアＳＲの上から５番目の左から１番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ０に格納されている画素数が、最大格納画素数である３２０画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ１に格納される。
【０２７２】
次のメモリバンクＢＫ１には、画素Ｑ０から、アクセス候補Ｐ１の１つ手前の画素までの２５３（＝８０×３＋１６−３）画素のデータが格納され、メモリバンクＢＫ２には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ２の１画素のデータが格納される。
【０２７３】
メモリバンクＢＫ４には、アクセス候補Ｐ３から残りすべての画素である２６２５（＝８０×４０−（８０×８＋１３））画素が格納される。なお、最後のメモリバンクＢＫについては、最大格納画素数は適用されない。
【０２７４】
図３８は、仮設定メモリバンク数が５の場合の図２４乃至図２６のアクセスパターンの例を示す図である。なお、図３８の例においては、その画素が対応するメモリバンクＢＫの番号は省略される。
【０２７５】
図３８の例においては、左から順に、図２４乃至図２６で示したアクセスパターンＡＰ１乃至ＡＰ３が示されており、仮設定メモリバンク数が５であるので、図３７の例の場合と同様に、アクセス候補の位置、または、アクセス候補間距離（すなわち、最大格納画素数）が、３２０画素を超えた時点でメモリバンクＢＫが切り替えられる。
【０２７６】
まず、アクセスパターンＡＰ１は、図２４の例と同様に、サーチエリアＳＲの上から１番目の左から１番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から１番目の左から２番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から８番目の右から２番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０２７７】
そして、アクセス候補Ｐ０の１画素は、メモリバンクＢＫ０に格納される。アクセス候補Ｐ１を含めて３２０画素分のデータは、メモリバンクＢＫ１に格納される。アクセス候補Ｐ１を含めてラスタスキャン順に３２１番目の画素（サーチエリアＳＲの上から５番目の左から２番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ１に格納されている画素数が、最大格納画素数である３２０画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ２に格納される。
【０２７８】
次のメモリバンクＢＫ２には、画素Ｑ０から、アクセス候補Ｐ２の１つ手前の画素までの２５３（＝８０×３−１＋１６−２）画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ４には、アクセス候補Ｐ３から残りすべての画素である２６２５（＝８０×４０−（８０×８＋１３））画素が格納される。
【０２７９】
次に、アクセスパターンＡＰ２は、図２５の例と同様に、サーチエリアＳＲの上から１番目の左から１番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から１番目の左から２番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から１番目の左から３番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０２８０】
そして、アクセス候補Ｐ０の１画素は、バンクＢＫ０に格納される。アクセス候補Ｐ１の１画素は、メモリバンクＢＫ１に格納される。アクセス候補Ｐ２を含めて３２０画素分のデータは、メモリバンクＢＫ２に格納される。アクセス候補Ｐ２を含めてラスタスキャン順に３２１番目の画素（サーチエリアＳＲの上から５番目の左から３番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ２に格納されている画素数が、最大格納画素数である３２０画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ３に格納される。
【０２８１】
次のメモリバンクＢＫ３には、画素Ｑ０から、アクセス候補Ｐ３の１つ手前の画素までの２５３（＝８０×３−２＋１６−１）画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ４には、アクセス候補Ｐ３から残りすべての画素である２６２５（＝８０×４０−（８０×８＋１３））画素が格納される。
【０２８２】
最後に、アクセスパターンＡＰ３は、図２６の例と同様に、サーチエリアＳＲの上から１番目の左から１番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から１番目の左から２番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から１番目の左から３番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から１番目の左から４番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０２８３】
そして、アクセス候補Ｐ０の１画素は、メモリバンクＢＫ０に格納される。アクセス候補Ｐ１の１画素は、メモリバンクＢＫ１に格納される。アクセス候補Ｐ２の１画素は、メモリバンクＢＫ２に格納される。アクセス候補Ｐ３を含めて３２０画素分のデータは、メモリバンクＢＫ３に格納される。アクセス候補Ｐ３を含めてラスタスキャン順に３２１番目の画素（サーチエリアＳＲの上から５番目の左から４番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ３に格納されている画素数が、最大格納画素数である３２０画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ４に格納される。
【０２８４】
次のメモリバンクＢＫ４には、画素Ｑ０から、残りすべての画素である２８７７（＝８０×４０−（８０×４＋３））画素が格納される。
【０２８５】
以上により、各メモリバンクＢＫ０乃至ＢＫ４の必要メモリ量のワーストケースすべてを考慮すると、全体として、４１５７（＝３２０×４＋２８７７）画素のデータが格納されることが必要である。
【０２８６】
したがって、画像サイズ縦４０画素、横８０画素をメモリ量１枚とした場合に、４１５７／（８０×４０）＝略１．２９枚分のメモリ量が必要となるだけであり、図２３乃至図２６を参照して上述したアクセス候補数のメモリバンクを用いた場合の略１．５４枚分のメモリ量よりもメモリ量が削減される。
【０２８７】
図３９は、図２３のアクセスパターンＡＰ０、仮設定メモリバンク数が６の場合の画像データの各メモリバンクへの初期配置の例を示す図である。すなわち、図３７の例の場合から、仮設定メモリバンク数を１つ増やした場合が示されている。
【０２８８】
すなわち、このアクセスパターンＡＰ０は、図２３の例と同様に、サーチエリアＳＲの上から１番目の左から１番目の画素に設定されたアクセス候補Ｐ０、サーチエリアＳＲの上から８番目の右から３番目の画素に設定されたアクセス候補Ｐ１、サーチエリアＳＲの上から８番目の右から２番目の画素に設定されたアクセス候補Ｐ２、サーチエリアＳＲの上から８番目の右から１番目の画素に設定されたアクセス候補Ｐ３で構成されている。
【０２８９】
また、図３７の例においては、アクセス候補の位置、または、式（１）を用いて求められるアクセス候補間距離（すなわち、最大格納画素数）が、２１３（＝８０×８／（６−４＋１））画素を超えた時点でバンクが切り替えられる。なお、この場合も厳密には、最大格納画素数は、式（２）を用いて、１９１（＝８０×８−（６４＋３）／（６−４＋１））として求められる。
【０２９０】
したがって、メモリバンクＢＫ０には、アクセス候補Ｐ０の画素を含めて２１３画素分のデータが格納される。アクセス候補Ｐ０の画素を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から３番目の左から５３番目の画素）Ｑ０については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ０に格納されている画素数が、最大格納画素数である２１３画素を超えるので、画素Ｑ０からのデータは、次のメモリバンクＢＫ１に格納される。
【０２９１】
次のメモリバンクＢＫ１には、画素Ｑ０を含めて２１３画素分のデータが格納される。画素Ｑ０を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から６番目の左から２６番目の画素）Ｑ１については、アクセス候補と一致しないと判定されても、メモリバンクＢＫ１に格納されている画素数が、最大格納画素数である２１３画素を超えるので、画素Ｑ１からのデータは、次のメモリバンクＢＫ２に格納される。
【０２９２】
次のメモリバンクＢＫ２には、画素Ｑ１から、アクセス候補Ｐ１の１つ手前の画素までの１４８（＝８０×２−２５＋１６−３）画素のデータが格納され、メモリバンクＢＫ３には、アクセス候補Ｐ１の１画素のデータが格納され、メモリバンクＢＫ４には、アクセス候補Ｐ２の１画素のデータが格納される。
【０２９３】
メモリバンクＢＫ５には、アクセス候補Ｐ３から残りすべての画素である２６２５（＝８０×４０−（８０×８＋１３））画素が格納される。
【０２９４】
仮設定メモリバンク数が６の場合のアクセスパターンＡＰ１乃至ＡＰ３の図示は省略するが、簡単にまとめると、アクセスパターンＡＰ１で、仮設定メモリバンク数が６の場合には、メモリバンクＢＫ０には、アクセス候補Ｐ０の１画素が格納され、メモリバンクＢＫ２には、アクセス候補Ｐ１を含めて２１３画素分のデータが格納される。
【０２９５】
メモリバンクＢＫ３には、アクセス候補Ｐ１を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から３番目の左から５４番目の画素）Ｑ０を含めて２１３画素分のデータが格納される。メモリバンクＢＫ４には、画素Ｑ０を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から６番目の左から２７番目の画素）Ｑ１から、アクセス候補Ｐ２の１つ手前の画素までの１４８（＝８０×２−２６＋１６−２）画素のデータが格納される。
【０２９６】
メモリバンクＢＫ４には、アクセス候補Ｐ２の１画素のデータが格納され、メモリバンクＢＫ５には、アクセス候補Ｐ３から残りすべての画素である２６２５（＝８０×４０−（８０×８＋１３））画素が格納される。
【０２９７】
同様に、アクセスパターンＡＰ２で、仮設定メモリバンク数が６の場合には、メモリバンクＢＫ０には、アクセス候補Ｐ０の１画素が格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１の１画素が格納され、メモリバンクＢＫ２には、アクセス候補Ｐ２を含めて２１３画素分のデータが格納される。
【０２９８】
メモリバンクＢＫ３には、アクセス候補Ｐ２を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から３番目の左から５５番目の画素）Ｑ０を含めて２１３画素分のデータが格納される。メモリバンクＢＫ４には、画素Ｑ０を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から６番目の左から２８番目の画素）Ｑ１から、アクセス候補Ｐ３の１つ手前の画素までの１４８（＝８０×２−２７＋１６−１）画素のデータが格納される。
【０２９９】
メモリバンクＢＫ５には、アクセス候補Ｐ３から残りすべての画素である２６２５（＝８０×４０−（８０×８＋１３））画素が格納される。
【０３００】
さらに、アクセスパターンＡＰ３で、仮設定メモリバンク数が６の場合には、メモリバンクＢＫ０には、アクセス候補Ｐ０の１画素が格納され、メモリバンクＢＫ１には、アクセス候補Ｐ１の１画素が格納され、メモリバンクＢＫ２には、アクセス候補Ｐ２の１画素が格納され、メモリバンクＢＫ３には、アクセス候補Ｐ３を含めて２１３画素分のデータが格納される。
【０３０１】
メモリバンクＢＫ４には、アクセス候補Ｐ３を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から３番目の左から５６番目の画素）Ｑ０を含めて２１３画素分のデータが格納される。メモリバンクＢＫ５には、画素Ｑ０を含めてラスタスキャン順に２１４番目の画素（サーチエリアＳＲの上から６番目の左から２９番目の画素）Ｑ１から、残りすべての画素である２７７２（＝８０×４０−（８０×５＋２８））画素が格納される。
【０３０２】
以上により、各メモリバンクＢＫ０乃至ＢＫ５の必要メモリ量のワーストケースすべてを考慮すると、全体として、３８３７（＝２１３×５＋２７７２）画素のデータが格納されることが必要である。
【０３０３】
したがって、画像サイズ縦４０画素、横８０画素をメモリ量１枚とした場合に、３８３７／（８０×４０）＝略１．１９枚分のメモリ量が必要となるだけであり、図２３乃至図２６を参照して上述したアクセス候補数分のメモリバンクＢＫを用いた場合の略１．５４枚分のメモリ量よりもメモリ量が削減される。
【０３０４】
ここで、図３７乃至図３９を参照して上述した例を一般化すると、式（１）により仮設定メモリバンク数の場合の１つのメモリバンクあたりの最大格納画素数が求められ、その際の必要メモリ量は、次の式（３）で表される。
【０３０５】
必要メモリ量≒  最大格納画素数×（仮設定メモリバンク数−１）
＋  画像の横サイズ×画像の縦サイズ
−  １バンクに格納する最大画素数×（仮設定メモリバンク数−アクセス候補数）
−（アクセス候補数−１）                                    ・・・（３）
【０３０６】
以上のようにして、所定数の仮設定されたメモリバンク数に応じて、必要メモリ量を求めることができる。
【０３０７】
図４０は、メモリバンク数と必要メモリ量の関係を示す図である。
【０３０８】
図４０の例において、横軸がメモリバンク数（個）を表しており、縦軸が必要メモリ量（枚：（画像枚数））を表している。
【０３０９】
メモリバンク数が４個の場合は、略１．５４枚分のメモリ量が必要とされており、メモリバンク数が５個の場合は、略１．２９枚分のメモリ量が必要とされており、メモリバンク数が６個の場合は、略１．１９枚分のメモリ量が必要とされている。また、メモリバンク数が７個の場合は、略１．１７枚分のメモリ量が必要とされており、メモリバンク数が８個の場合は、略１．１５枚分のメモリ量が必要とされており、メモリバンク数が９個の場合は、略１．１枚分のメモリ量が必要とされている。以降も、メモリバンク数がサーチエリア画素数（１２８）の場合に、必要となるメモリ量が１となるまで、メモリバンク数が増える毎にだんだん必要となるメモリ量は１に近づいている。
【０３１０】
すなわち、メモリバンク数をむやみに増やしたとしても、アドレスが膨大になったり、チップ面積が大きくなったり、消費電力が多くなったりするだけである半面、必要となるメモリ量の減り方は、次第に少なくなるので、メモリ量の減り方の少なくなったところに、メモリ量を決定することが望ましい。
【０３１１】
そして、メモリバンク数と必要メモリ量は、トレードオフの関係であるため、メモリ量を決定することで、そのときに必要最低限のメモリバンク数が求まる。
【０３１２】
次に、図４１のフローチャートを参照して、設計装置２０１のバンク数設定処理を説明する。
【０３１３】
例えば、設計者は、データ格納装置１１１のパラメータを設計するために必要な所定の値（画像サイズ、サーチエリアのサイズ、アクセスパターン数、および利用候補となるメモリバンク数）を、入力部２１６を構成するキーボードなどを操作することで、設計装置２０１に入力する。なお、利用候補となるメモリバンク数は、複数入力される。
【０３１４】
格納画素数算出部２３１は、入力部２１６の操作に対応して、所定の値を入力するともに、ステップＳ１５１において、利用候補となるメモリバンク数を仮設定し、ステップＳ１５２において、画像サイズ、サーチエリアのサイズ、アクセスパターン数、および仮設定されたメモリバンク数に基づいて、１つのメモリバンク当たりの最大格納画素数を算出し、算出した最大格納画素数を、メモリ量算出部２３２に出力する。
【０３１５】
ステップＳ１５３において、メモリ量算出部２３２は、格納画素数算出部２３１により算出された最大格納画素数、仮設定されたメモリバンク数、画像サイズ、アクセスパターン数に基づいて、その仮設定されたメモリバンク数の場合の必要メモリ量を算出し、算出した必要メモリ量と仮設定されたメモリバンク数をバンク数設定部２３３に出力する。
【０３１６】
ステップＳ１５４において、格納画素数算出部２３１は、すべての候補に対する処理が終了したか否かを判定し、すべての候補に対する処理がまだ終了していないと判定した場合、処理は、ステップＳ１５２に戻り、次の仮設定されたメモリバンク数についての処理が実行される。
【０３１７】
ステップＳ１５４において、すべての候補に対する処理が終了したと判定された場合、ステップＳ１５５において、バンク数設定部２３３は、図４０を参照して上述したように、複数の仮設定されたメモリバンク数と、それに対応する必要メモリ量に基づいて、データ格納装置１１１で使用されるメモリ量を設定し、設定されたメモリ量に対応するメモリバンク数を、データ格納装置１１１で使用されるメモリバンク数に設定する。
【０３１８】
以上のように、画像サイズ、サーチエリアのサイズ、アクセスパターン数、および仮設定されたメモリバンク数に基づいて、１つのメモリバンク当たりの最大格納画素数が算出され、算出された最大格納画素数、仮設定されたメモリバンク数、画像サイズ、アクセスパターン数に基づいて、その仮設定されたメモリバンク数の場合の必要メモリ量が算出され、算出された必要メモリ量の中から、最適なものが決定されて、それに応じて、メモリバンク数も設定される。
【０３１９】
したがって、全体的にメモリ量が削減されたデータ格納装置を設計することができる。
【０３２０】
また、このようにして設計されたデータ格納装置１１１においては、全体としてメモリ量を削減して、全データにおいて所望の複数画素を同時アクセスすることができる。
【０３２１】
本発明によれば、全体としてメモリ量を削減して、全データにおいて所望の複数画素を同時アクセスすることができる。
【０３２２】
なお、本発明は、アクセスパターンのアクセス候補を、開始位置からラスタスキャン順に順次移動した各位置で、アクセスパターンで特定される複数の画素の画素データの同時取得を容易に行い得るものであり、例えば、特定のデータ配列を認識してパターン認識や動き検出などの処理を行う装置に適用できる。
【０３２３】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０３２４】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図３５に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２２１、または、プログラムが一時的もしくは永続的に格納されるROM２１２や、記憶部２１８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部２１９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０３２５】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０３２６】
【図１】一般的な半導体メモリの構造を模式的に示す図である。
【図２】図１の半導体メモリにおいて、同時アクセスできない状態を模式的に示す図である。
【図３】複数メモリバンクのメモリ構成を示す図である。
【図４】ある画像に対して、同時アクセスしたい４画素のパターンを示す図である。
【図５】アクセス候補間の画素を1 画素毎に別メモリバンクに格納した状態を模式的に示す図である。
【図６】アクセス候補間の画素を同じメモリバンクに格納した状態を模式的に示す図である。
【図７】アクセスパターンの移動がアクセス画素間を超えた場合を模式的に示した図である。
【図８】本発明を適用したデータ格納装置の構成例を示すブロック図である。
【図９】図８のデータ格納制御部の構成例を示すブロック図である。
【図１０】図８のデータ読み出し格納制御部の構成例を示すブロック図である。
【図１１】アクセスパターンの例を示す図である。
【図１２】画像データの各メモリバンクへの初期配置における２次元配列状態を示す図である。
【図１３】画像データの各メモリバンクへの初期配置における１次元配列状態を示す図である。
【図１４】図８のデータ格納制御部の初期配置処理を説明するフローチャートである。
【図１５】ワード線およびビット線へのアクセスと再格納の方法を模式的に示す図である。
【図１６】図１２の初期配置におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の２次元配列状態を示す図である。
【図１７】図１３の初期配置におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の１次元配列状態を示す図である。
【図１８】サーチエリアがラスタスキャン順に、１画素移動した場合のアクセス候補を示す図である。
【図１９】図１６におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の２次元配列状態を示す図である。
【図２０】図１７におけるアクセス候補の画素のデータを、次のバンクアドレスに格納した場合の１次元配列状態を示す図である。
【図２１】図８のデータ読み出し格納制御部のデータ再格納制御処理を説明するフローチャートである。
【図２２】図２１のステップＳ２６のアドレス計算処理を説明するフローチャートである。
【図２３】メモリバンクＢＫ０の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。
【図２４】メモリバンクＢＫ１の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。
【図２５】メモリバンクＢＫ２の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。
【図２６】メモリバンクＢＫ３の必要メモリ量がワーストケースとなる場合のアクセスパターンを示す図である。
【図２７】本発明を適用したデータ格納装置の他の構成例を示すブロック図である。
【図２８】図２７のデータ格納制御部の構成例を示すブロック図である。
【図２９】図２９は、図２３のアクセスパターンの場合の画像データの各バンクへの初期配置の例を示す図である。
【図３０】図２９は、図２６のアクセスパターンの場合の画像データの各バンクへの初期配置の例を示す図である。
【図３１】他のアクセスパターンの場合の画像データの各バンクへの初期配置の例を示す図である。
【図３２】図３１のアクセスパターンの場合のセレクタの構成を模式的に示す図である。
【図３３】図２７のデータ格納制御部の初期配置処理フローチャートである。
【図３４】図３３のステップＳ１１２の初期格納のアドレス計算処理を説明するフローチャートである。
【図３５】本発明を適用した設計装置のハードウエア構成例を示すブロック図である。
【図３６】図３５の設計装置の機能構成例を示すブロック図である。
【図３７】図２３のアクセスパターン、仮設定メモリバンク数が５の場合の画像データの各バンクへの初期配置の例を示す図である。
【図３８】仮設定メモリバンク数が５の場合の図２４乃至図２６のアクセスパターンの例を示す図である。
【図３９】図２３のアクセスパターン、仮設定メモリバンク数が６の場合の画像データの各バンクへの初期配置の例を示す図である。
【図４０】メモリバンク数と必要メモリ量の関係を示す図である。
【図４１】図３５の設計装置のバンク数設定処理を説明するフローチャートである。
【符号の説明】
【０３２７】
１１  データ格納装置，  ３１  メモリ，  ３２  データ格納制御部，  ３３  データ読み出し格納制御部，４１  カウンタ，  ４２  一致判定部，  ４３  フラグ生成部，  ４４  バンクアドレスカウンタ，  ４５  ビット線アドレスカウンタ，  ４６  ワード線アドレスカウンタ，  ４７  アドレス生成部，  ４８  格納制御処理部 ，  １１１  データ格納装置，  １２１  データ格納制御部，  １２２  セレクタ設定部，  １２３  セレクタ，  １４１  画素数判定部，  １４２  アドレス生成部，  ２０１  設計装置，  ２１１  CPU，  ２１２  ROM，  ２１３  RAM，  ２１６  入力部，  ２３１  格納画素数算出部，  ２３２  メモリ量算出部，  ２３３  バンク数設定部
【図１】
0004655220.tif 000002
【図２】
0004655220.tif 000003
【図３】
0004655220.tif 000004
【図４】
0004655220.tif 000005
【図５】
0004655220.tif 000006
【図６】
0004655220.tif 000007
【図７】
0004655220.tif 000008
【図８】
0004655220.tif 000009
【図９】
0004655220.tif 000010
【図１０】
0004655220.tif 000011
【図１１】
0004655220.tif 000012
【図１２】
0004655220.tif 000013
【図１３】
0004655220.tif 000014
【図１４】
0004655220.tif 000015
【図１５】
0004655220.tif 000016
【図１６】
0004655220.tif 000017
【図１７】
0004655220.tif 000018
【図１８】
0004655220.tif 000019
【図１９】
0004655220.tif 000020
【図２０】
0004655220.tif 000021
【図２１】
0004655220.tif 000022
【図２２】
0004655220.tif 000023
【図２３】
0004655220.tif 000024
【図２４】
0004655220.tif 000025
【図２５】
0004655220.tif 000026
【図２６】
0004655220.tif 000027
【図２７】
0004655220.tif 000028
【図２８】
0004655220.tif 000029
【図２９】
0004655220.tif 000030
【図３０】
0004655220.tif 000031
【図３１】
0004655220.tif 000032
【図３２】
0004655220.tif 000033
【図３３】
0004655220.tif 000034
【図３４】
0004655220.tif 000035
【図３５】
0004655220.tif 000036
【図３６】
0004655220.tif 000037
【図３７】
0004655220.tif 000038
【図３８】
0004655220.tif 000039
【図３９】
0004655220.tif 000040
【図４０】
0004655220.tif 000041
【図４１】
0004655220.tif 000042