以下に、本発明の好ましい実施形態を、添付の図面に基づいて詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、その要旨を逸脱しない範囲において適宜変更可能である。また、以下で説明する図面において、同じ機能を有するものは同一の符号を付し、その説明を省略又は簡潔にすることもある。
[第1実施形態]
本発明の第1実施形態によるメモリ制御装置及びメモリ制御方法について図面を用いて説明する。
本実施形態によるメモリ制御装置は、例えば撮像装置に組み込まれているが、これに限定されるものではない。図1は、本実施形態によるメモリ制御装置を含む撮像装置100の構成を示すブロック図である。撮像部101は、不図示の光学レンズ、絞り等を通過した光学像を電気信号に変換することによって、画像(画像データ、画像信号)を生成する。本実施形態では、撮像部101は、1フレームが水平1920画素×垂直1080画素、60フレーム枚秒(fps)の動画データを出力する。評価値取得部102は、撮像部101によって取得された画像について、領域毎のヒストグラムや積算値を求める。評価値取得部102によって取得された評価値は、撮像装置(カメラ)100における露出制御やホワイトバランス制御等に用いられる。信号処理部103は、撮像部101によって取得された画像に対して、ノイズ除去処理、ガンマ補正処理、補間処理、マトリクス変換処理等の各種画像処理を施す。変倍処理部104は、信号処理部103によって処理が施された画像(画像データ)の解像度(画素数)を、表示用の解像度や記録用の解像度に変換する処理、即ち、変倍処理を行う。圧縮処理部105は、画像データを記録用のデータに圧縮する処理、即ち、圧縮処理を行う。表示部(表示手段、モニタ)106としては、例えば液晶パネル等が用いられる。表示制御部107は、表示用の画像データを表示部106に表示するための制御を行う。記録媒体108は、圧縮された画像データ等を格納するためのものであり、例えばメモリカード等である。記録媒体制御部109は、記録媒体108へのデータの書き込みや読み出しの制御を行う。
メモリ制御部110、即ち、本実施形態によるメモリ制御装置は、撮像部101、評価値取得部102、信号処理部103、変倍処理部104、圧縮処理部105、表示制御部107、又は、記録媒体制御部109との間でデータを入出力する。メモリ制御部110は、これらのデータのメモリ111への書き込みや読み出しの制御を行う。メモリ111は、撮像部101によって取得された画像や、表示用の画像等を一時的に格納する記憶手段であり、例えば、DRAM(Dynamic Random Access Memory)等である。前述のように、評価値取得部102は、1フレームを複数の領域に分け、領域毎に評価値を取得する。また、信号処理部103、変倍処理部104は、水平、垂直方向にそれぞれ複数の画素に対してフィルタ処理を行うため、垂直方向の複数ラインの画像を記憶するためのメモリを持つ。メモリの容量を少なくするため、信号処理部103は、1画面の水平1ラインを複数の領域に分割し、更に、垂直方向にも複数の領域に分割して処理を行う。このように、評価値取得部102、或いは、信号処理部103はそれぞれ、1フレームを複数の領域(ブロック)に分割し、ブロックを単位としてメモリ111にアクセスすることになる。そのため、本実施形態では、1フレームを複数のブロックに分割し、ブロックを単位としてメモリ111に対するデータの書き込み、読み出しを制御する。更に、本実施形態では、処理による遅延を少なくするため、ブロックを単位として、データの書き込みが完了したブロックのデータを読み出す、追いかけ制御を行う。
図2は、本実施形態によるメモリ制御装置の構成を示すブロック図である。書き込み制御部(アクセス手段)201は、メモリ111への書き込みアクセスに関する制御を行うものである。書き込み制御部201は、複数の分割ブロックへの書き込み処理を所定の順序で行う。書き込み制御部201は、画像データ等の書き込みデータWDATAを信号処理部103や変倍処理部104等から受け取ると、書き込みアクセスのリクエストを行うための書き込みリクエスト信号WREQを、メモリアクセス制御部202に対して出力する。書き込み制御部201は、分割ブロック毎の書き込み処理に対応し得るものであり、書き込み処理用の分割ブロックのサイズや、書き込み処理用の分割ブロックに対応するメモリアドレスの管理を行い得る。なお、分割ブロックについては、後に詳述することとする。書き込み制御部201は、所定のブロックの分の書き込み処理がメモリ111に対して完了する毎に、各種のイベントW*ENDをメモリアクセス制御部202に出力する。なお、これらのイベントW*ENDについては、後に詳述することとする。メモリIF(Memory Interface)204は、書き込みリクエスト信号WREQに対する受付信号WACKを書き込み制御部201に出力する。書き込み制御部201は、書き込みアドレスWADRSや書き込みデータWDATAをメモリIF204に出力する。書き込み制御部201は、書き込み処理が完了した際、具体的には、例えば1フレーム分の書き込み処理が完了した際に、書き込み処理完了信号WFINをHighレベルにする。なお、ここでは、1フレーム分の書き込み処理が完了した際に書き込み処理完了信号WFINをHighレベルにする場合を例に説明するが、これに限定されるものではない。例えば、複数フレーム分の書き込み処理が完了した際に、書き込み処理完了信号WFINをHighレベルにするようにしてもよい。
読み出し制御部(アクセス手段)203は、読み出しアクセスに関する制御を行うものである。読み出し制御部203は、複数の分割ブロックからの読み出し処理を所定の順序で行う。読み出し制御部203内に設けられた不図示の画像バッファ(バッファメモリ)に空き容量が存在しており、かつ、読み出し処理が完了していない場合には、読み出し制御部203は、以下のような処理を行う。即ち、読み出し制御部203は、読み出しアクセスのリクエストを行うための読み出しリクエスト信号RREQを、メモリアクセス制御部202に対して出力する。読み出し制御部203は、分割ブロック毎の読み出し処理に対応し得るものであり、読み出し処理用の分割ブロックのサイズや、読み出し処理用の分割ブロックに対応するメモリアドレスの管理を行い得る。読み出し制御部203は、所定のブロックの読み出し処理がメモリ111に対して完了する毎に、メモリアクセス制御部202に対して各種のイベントR*ENDを出力する。なお、これらのイベントR*ENDについては、後に詳述することとする。メモリIF204は、読み出しリクエスト信号RREQに対する受付信号RACKを読み出し制御部203に出力する。読み出し制御部203は、読み出しアドレスRADRSをメモリIF204に出力する。メモリIF204は、読み出しデータRDATAを読み出し制御部203に出力する。読み出し制御部203は、読み出した画像データ等の読み出しデータRDATAを、信号処理部103や変倍処理部104等に出力する。読み出し制御部203は、読み出し処理が完了した際、具体的には、例えば1フレーム分の読み出し処理が完了した際に、読み出し処理完了信号RFINをHighレベルにする。なお、ここでは、1フレーム分の読み出し処理が完了した際に読み出し処理完了信号RFINをHighレベルにする場合を例に説明するが、これに限定されるものではない。例えば、複数フレーム分の読み出し処理が完了した際に、読み出し処理完了信号RFINをHighレベルにするようにしてもよい。
メモリアクセス制御部(メモリアクセス制御手段)202は、分割ブロックへのデータの書き込みが完了し次第、当該分割ブロックからのデータ読み出しを行う制御である追いかけ制御を行う。上述したように、書き込み制御部201からメモリアクセス制御部202へは、書き込みリクエスト信号WREQと、イベント(走査イベント)W*ENDと、書き込み処理完了信号WFINとが入力されるようになっている。また、読み出し制御部203からメモリアクセス制御部202へは、読み出しリクエスト信号RREQと、イベント(走査イベント)R*ENDと、読み出し処理完了信号RFINとが入力されるようになっている。メモリアクセス制御部202は、これらの入力に基づいて、追いかけ制御を行う。即ち、データの書き込みが完了していないメモリアドレスからの読み出しが行われないように、メモリアクセス制御部202は、読み出しリクエスト信号MRREQを適宜マスクする。また、データの読み出しが可能なメモリアドレスからの読み出しが完了した後に、データの書き込みの処理に移行するように、メモリアクセス制御部202は、メモリIF204に対して出力する書き込みリクエスト信号MWREQを適宜マスクする。メモリアクセス制御部202は、これら書き込みリクエスト信号MWREQや読み出しリクエスト信号MRREQを適宜マスクすることによって、追いかけ制御を的確に行う。なお、追いかけ制御については、後に詳述することとする。メモリIF204は、メモリアクセス制御部202からの書き込みリクエスト信号MWREQや読み出しリクエスト信号MRREQに従って、メモリ111への書き込みアクセスや読み出しアクセスを行う。
図3は、書き込みアクセスや読み出しアクセスにおける走査の順序を概念的に示す図である。図3は、画像に対応する仮想的なアドレス空間(アドレス領域)を概念的に示している。図3に示すように、1フレーム分のアドレス領域を複数に分割することによって分割ブロック301a〜301iが画定されている。ここでは、1フレーム分のアドレス領域を水平方向及び垂直方向にそれぞれ3分割し、分割によって画定された矩形の分割ブロック301a〜301iを書き込み処理や読み出し処理の単位として追いかけ制御を行う場合を例に説明する。なお、本明細書においては、個々の分割ブロックについて説明する際には、符号301a〜301iを用い、分割ブロック一般について説明する際には、符号301を用いることとする。1フレーム分の画像の水平方向におけるサイズ(画素数)は3Xであり、1フレーム分の画像の垂直方向における画素数は3Yである。分割ブロック301は、1フレーム分の画像を水平方向及び垂直方向にそれぞれ3分割したものであるため、分割ブロック301の水平方向における画素数はXであり、分割ブロック301の垂直方向における画素数はYである。図3における左側から右側に向かう方向はX方向であり、図3における上側から下側に向かう方向はY方向とする。図3における矢印は、書き込みアクセスや読み出しアクセスにおける走査方向を示している。図3における破線は、走査座標のジャンプを示している。
上述したように、本実施形態では、分割ブロック301を書き込み処理や読み出し処理における単位として追いかけ制御が行われる。具体的には、例えば、図3の左上に位置する分割ブロック301aに対してアクセスが行われる。分割ブロック301aに対してのアクセスが完了した後には、分割ブロック301aの右側に位置する分割ブロック301bに対してのアクセスが行われる。分割ブロック301bに対してのアクセスが完了した後には、分割ブロック301bの右側に位置する分割ブロック301cに対してのアクセスが行われる。このように、第1番目のブロック行に位置する分割ブロック301a〜301cに対してのアクセスが左側から右側へ順次行われる。第1番目のブロック行に位置する分割ブロック301a〜301cに対してのアクセスが完了した後には、第2番目のブロック行に位置する分割ブロック301d〜301fに対してのアクセスが左側から右側へ順次行われる。第2番目のブロック行に位置する分割ブロック301d〜301fに対してのアクセスが完了した後には、第3番目のブロック行に位置する分割ブロック301g〜301iに対してのアクセスが左側から右側へ順次行われる。こうして、全ての分割ブロック301a〜301iに対してのアクセスが順次行われる。
書き込みアクセスや読み出しアクセスにおける走査をより具体的に以下に説明する。まず、分割ブロック301aの第1番目の行に対する走査が行われる。分割ブロック301aの第1番目の行の先頭の座標は(1,1)であり、分割ブロック301aの第1番目の行の末尾の座標は(X,1)である。分割ブロック301aの第1番目の行に対する走査においては、走査座標が(1,1)から(X,1)まで順次変化する。分割ブロック301aの第1番目の行に対する走査が完了した後には、分割ブロック301aの第2番目の行に対する走査が行われる。分割ブロック301aの第2番目の行の先頭の座標は、(1,2)である。従って、分割ブロック301aの第1番目の行に対する走査から分割ブロック301aの第2番目の行に対する走査に移行する際には、走査座標が(X,1)から(1,2)にジャンプする。この後、同様にして、走査座標を順次ジャンプさせつつ、分割ブロック301内に位置する各々の行に対する走査が順次行われる。
分割ブロック301aに対してのアクセスが完了した後には、上述したように、当該分割ブロック301aの右側に位置する分割ブロック301bに対してのアクセスが行われる。分割ブロック301aの最終行である第Y番目の行の末尾の座標は、(X,Y)である。一方、分割ブロック301bの第1番目の行の先頭の座標は、(X+1,1)である。従って、分割ブロック301aに対してのアクセスから分割ブロック301bに対してのアクセスに移行する際には、走査座標が(X,Y)から(X+1,1)にジャンプする。この後、同様にして、分割ブロック301b内に位置する各々の行に対する走査が順次行われる。
分割ブロック301bに対してのアクセスが完了した後には、上述したように、当該分割ブロック301bの右側に位置する分割ブロック301cに対してのアクセスが行われる。分割ブロック301bの最終行である第Y番目の行の末尾の座標は、(2X,Y)である。一方、分割ブロック301cの第1番目の行の先頭の座標は、(2X+1,1)である。従って、分割ブロック301bに対してのアクセスから分割ブロック301cに対してのアクセスに移行する際には、走査座標は、(2X,Y)から(2X+1,1)にジャンプする。この後、同様にして、分割ブロック301c内に位置する各々の行に対しての走査が順次行われる。
第1段目のブロック行に位置する分割ブロック301a〜301cに対しての走査が完了した後には、上述したように、第2段目のブロック行に位置する分割ブロック301d〜301fに対しての走査が順次行われる。分割ブロック301cの最終行である第Y番目の行の末尾の座標は、(3X,Y)である。一方、分割ブロック301dの第1番目の行の先頭の座標は、(1,Y+1)である。従って、分割ブロック301cに対する走査から分割ブロック301dに対する走査に移行する際には、走査座標は(3X,Y)から(1,Y+1)にジャンプする。第2段目のブロック行に位置する分割ブロック301d〜301fに対してのアクセスが完了した後には、上述したように、第3段目のブロック行に位置する分割ブロック301g〜301iに対してのアクセスが順次行われる。分割ブロック301fの最終行である第Y番目の行の末尾の座標は、(3X,2Y)である。一方、分割ブロック301gの第1番目の行の先頭の座標は、(1,2Y+1)である。従って、分割ブロック301fに対する走査から分割ブロック301gに対する走査に移行する際には、走査座標が(3X,2Y)から(1,2Y+1)にジャンプする。こうして、分割ブロック301i内の最終行である第Y番目の行の末尾の座標(3X,3Y)までの走査が行われる。こうして、1フレーム分の画像についての走査が完了する。
なお、ここでは、上記のような順番で各々の分割ブロック301a〜301iに対してのアクセスを行う場合を例に説明したが、これに限定されるものではない。例えば、分割ブロック301aに対してのアクセスが完了した後に、分割ブロック301dに対してのアクセスを行い、この後、分割ブロック301gに対してのアクセスを行うようにしてもよい。そして、分割ブロック301b、分割ブロック301e、分割ブロック301hに対してのアクセスを順次行い、この後、分割ブロック301c、分割ブロック301f、分割ブロック301iに対してのアクセスを順次行うようにしてもよい。
次に、イベントW*END、R*ENDについて、図4を用いて説明する。図4は、各イベントを示す図である。図4(a)は、最小アクセス単位と、最小アクセス単位アクセス完了イベントとを示している。最小アクセス単位401のサイズは、例えば、1ワードのサイズ、又は、1バースト長のサイズに対応している。最小アクセス単位アクセス完了イベントWENDは、アクセスアドレスが各々の最小アクセス単位401の最終アドレスに達した際にそれぞれ発行される。なお、本明細書においては、最小アクセス単位アクセス完了イベントについての一般的な説明の際には符号WENDを用いることとする。一方、具体的な書き込み処理における最小アクセス単位アクセス完了イベントについての説明の際には、符号WWEND(図5参照)を用いる。また、具体的な読み出し処理における最小アクセス単位アクセス完了イベントについての説明の際には、符号RWEND(図5参照)を用いることとする。
図4(b)は、行と、行アクセス完了イベントとを示す図である。1つの行411には、複数の最小アクセス単位401が含まれている。行アクセス完了イベントLENDは、アクセスアドレスが各々の行411の最終アドレスに達した際にそれぞれ発行される。なお、本明細書においては、行アクセス完了イベントについての一般的な説明の際には符号LENDを用いる。一方、具体的な書き込み処理における行アクセス完了イベントの説明の際には符号WLEND(図5参照)を用い、具体的な読み出し処理における行アクセス完了イベントの説明の際には符号RLEND(図5参照)を用いることとする。
図4(c)は、分割ブロックと、分割ブロックアクセス完了イベントとを示す図である。1つの分割ブロック421には、複数の行411が含まれている。分割ブロックアクセス完了イベントBENDは、アクセスアドレスが各々の分割ブロック421の最終アドレスに達した際にそれぞれ発行される。なお、本明細書においては、分割ブロックアクセス完了イベントについての一般的な説明の際には符号BENDを用いることとする。一方、具体的な書き込み処理における分割ブロックアクセス完了イベントの説明の際には符号WBEND(図5参照)を用い、具体的な読み出し処理における分割ブロックアクセス完了イベントの説明の際には符号RBEND(図5参照)を用いることとする。
図4(d)は、ブロック行と、ブロック行アクセス完了イベントとを示す図である。1つのブロック行431には、複数の分割ブロック421が含まれている。ブロック行アクセス完了イベントBLENDは、アクセスアドレスがブロック行431の最終アドレスに達した際にそれぞれ発行される。なお、本明細書においては、ブロック行アクセス完了イベントについての一般的な説明の際には符号BLENDを用いることとする。一方、具体的な書き込み処理におけるブロック行アクセス完了イベントの説明の際には符号WBLEND(図5参照)を用い、具体的な読み出し処理におけるブロック行アクセス完了イベントの説明の際には符号RBLEND(図5参照)を用いることとする。
図4(e)は、フレームと、フレームアクセス完了イベントとを示す図である。1つのフレーム441には、複数のブロック行431が含まれている。フレームアクセス完了イベントVENDは、アクセスアドレスがフレーム441の最終アドレスに達した際に発行される。なお、本明細書においては、フレームアクセス完了イベントについての一般的な説明の際には、符号VENDを用いることとする。一方、具体的な書き込み処理におけるフレームアクセス完了イベントの説明の際には符号WVENDを用い、具体的な読み出し処理におけるフレームアクセス完了イベントの説明の際には符号RVENDを用いることとする。
図5は、メモリアクセス制御部202の構成を示す図である。セレクタ501には、書き込み制御部201から出力されるイベントWWEND、WLEND、WBEND、WBLEND、WVENDが入力される。セレクタ501は、例えばパラメータ設定に基づいて選択を行う。セレクタ501に入力されるこれらのイベントのうちの1つがセレクタ501によって選択され、選択されたイベントが発行される毎にセレクタ501は書き込みイベントWEVENTを出力する。分割ブロック421を単位として追いかけ制御を行う場合には、例えば、分割ブロック421に対しての書き込みアクセスが完了する毎に発せられる分割ブロックアクセス完了イベントWBENDがセレクタ501によって選択される。
セレクタ502には、読み出し制御部203から出力されるイベントRWEND、RLEND、RBEND、RBLEND、RVENDが入力される。セレクタ502は、例えばパラメータ設定に基づいて選択を行う。セレクタ502に入力されるこれらのイベントのうちの1つがセレクタ502によって選択され、選択されたイベントが発行される毎にセレクタ502は読み出しイベントREVENTを出力する。分割ブロック421を単位として追いかけ制御を行う場合には、例えば、分割ブロック421に対しての読み出しアクセスが完了する毎に発せられる分割ブロックアクセス完了イベントRBENDがセレクタ502によって選択される。
アップダウンカウンタ505のカウントアップ端子+Unには、セレクタ501から出力される書き込みイベントWEVENTが入力される。アップダウンカウンタ505のカウントダウン端子−Dnには、セレクタ502から出力される読み出しイベントREVENTが入力される。アップダウンカウンタ505のリセット端子C0には、リセット信号が入力されるようになっている。書き込みイベントWEVENTがアップダウンカウンタ505に入力されると、アップダウンカウンタ505はカウントアップ値Unだけカウントアップする。また、読み出しイベントREVENTがアップダウンカウンタ505に入力されると、アップダウンカウンタ505はカウントダウン値Dnだけカウントダウンする。アップダウンカウンタ505は、カウント値Cを出力する。アップダウンカウンタ505にリセット信号が入力されると、アップダウンカウンタ505はカウント値Cを初期値C0に初期化する。
比較器(比較手段)506は、カウント値Cとカウントアップ値Unとを加算することにより得られる値(C+Un)が閾値Wnより大きいか否かを判定する。即ち、比較器506は、カウント値Cと閾値Wnとに基づいて比較を行う。ここで、閾値Wnは、メモリ111に備えられた画像バッファの容量に応じた値である。比較の結果、加算値(C+Un)が閾値Wnよりも大きい場合には、メモリ111に備えられた画像バッファがFULLの状態であると判定し、メモリ111に対するこれ以上の書き込みアクセスを禁止する。
マスク論理(マスク機能、マスク論理回路、マスク手段)508は、読み出し処理の完了を示す読み出し処理完了信号RFINによって比較器506から出力される信号FULLをマスクするものであり、信号MFULLを出力する。マスク論理508は、読み出し処理が完了した場合、即ち、読み出し処理完了信号RFINがHighレベルの際には、比較器506から出力される信号FULLをマスク(無効化)する。マスク論理510は、書き込み制御部201から出力される書き込みリクエスト信号WREQをマスク論理508から出力される信号MFULLに応じてマスクするものであり、書き込みリクエスト信号MWREQを出力する。マスク論理510は、メモリ111に備えられた画像バッファがFULLの状態である場合には、書き込み制御部201から出力される書き込みリクエスト信号WREQをマスクする。マスク論理510は、書き込みリクエスト信号MWREQをメモリIF204に出力する。このように、マスク論理508,510は、比較器506による比較の結果に基づいて書き込み制御部201によるメモリ111へ書き込み処理のリクエスト(要求)をマスクする。
比較器507は、カウント値Cからカウントダウン値−Dnを減算することによって得られる値(C−Dn)が閾値Rnより小さいか否かを判定する。即ち、比較器507は、カウント値Cと閾値Rnとに基づいて比較を行う。ここで、閾値Rnは、メモリ111に備えられた画像バッファの容量に応じた値である。比較の結果、減算値(C−Dn)が閾値Rnより小さい場合には、メモリ111に備えられた画像バッファがEMPTYであると判定し、メモリ111に対するこれ以上の読み出しアクセスを禁止する。
マスク論理509は、書き込み処理の完了を示す書き込み処理完了信号WFINによって、比較器507から出力される信号EMPTYをマスクするものであり、信号MEMPTYを出力する。マスク論理509は、書き込み処理完了信号WFINがHighレベルの際には、比較器507から出力される信号EMPTYを無効化する。マスク論理511は、読み出し制御部203から出力される読み出しリクエスト信号RREQをマスク論理509から出力される信号MEMPTYによってマスクするものであり、読み出しリクエスト信号MRREQを出力する。マスク論理511は、メモリ111に備えられた画像バッファがEMPTYの状態である場合には、読み出し制御部203から出力される読み出しリクエスト信号RREQをマスクする。マスク論理511は、読み出しリクエスト信号MRREQをメモリIF204に出力する。このように、マスク論理509,511は、比較器507による比較の結果に基づいて読み出し制御部203によるメモリ111へ読み出し処理のリクエストをマスクする。
このように、メモリアクセス制御部202は、書き込み制御部201から発せられるイベントW*END、又は、読み出し制御部203から発せられるイベントR*ENDに基づいてカウント値Cを増減させる。また、メモリアクセス制御部202は、書き込み制御部201から発せられるイベントW*ENDと読み出し制御部203から発せられるイベントR*ENDのそれぞれに応じた増減値でカウント値Cを増減させる。そして、メモリアクセス制御部202は、書き込み制御部201によるメモリ111へのアクセス(書き込み)と読み出し制御部203によるメモリ111へのアクセス(読み出し)とのうちのいずれかを、カウント値Cに基づいて選択的に許可する。
次に、各パラメータについて説明する。ここでは、分割ブロック421(図4(c)参照)へのアクセスが完了する毎に発せられる分割ブロックアクセス完了イベントBEND(WBEND、RBEND)を用いて、分割ブロックを単位として追いかけ制御を行う場合を例に説明する。
メモリアクセス制御部202において用いられるパラメータには、初期値C0と、カウントアップ値Unと、カウントダウン値Dnと、FULLの閾値Wnと、EMPTYの閾値Rnとがある。各々のパラメータの値は、例えば以下のような式(1)〜(5)によって決定される。
Un=RXN ・・・(1)
Dn=WXN ・・・(2)
Wn≧Rn+Buf ・・・(3)
Rn=(WYN−RYN)×Un×WXN(ただし、Rn<0の場合はRn=0) ・・・(4)
Buf=(Dn−1)+Un ・・・(5)
ここで、WXNは、書き込み処理用のブロック分割における水平方向の分割数であり、WYNは、書き込み処理用のブロック分割における垂直方向の分割数である。また、RXNは、読み出し処理用のブロック分割における水平方向の分割数であり、RYNは、読み出し処理用のブロック分割における垂直方向の分割数である。
初期値C0は、分割ブロックが互いにオーバラップするように設定される場合には、0以外に設定される。また、書き込み処理用のブロック分割の態様と読み出し処理用のブロック分割の態様とが互いに異なる場合にも、0以外に設定される場合がある。これらの場合を除き、初期値C0は例えば0に設定される。このように、初期値C0は、フレームの分割の態様に基づいて設定される。
上記のように、増減値Un,Dnは、フレームの分割数に基づいて設定される。なお、ここでは、上述したような式に基づいてパラメータの値を設定したが、これに限定されるものではない。
図6は、ブロック分割の例を概念的に示す図である。図6は、1フレーム分の画像に対応する仮想的なアドレス空間を概念的に示している。図6(a)及び図6(b)は、書き込み処理用のブロック分割の態様と読み出し処理用のブロック分割の態様とが互いに等しい例を示している。例えば、図1において、画像の書き込みを行う処理部と読み出しを行う処理部の分割数、ブロックサイズが同じ場合に該当する。図6(a)は、書き込み処理用のブロック分割を示しており、図6(b)は、読み出し処理用のブロック分割を示している。書き込み処理用のブロック分割と読み出し処理用のブロック分割のいずれにおいても、水平方向における分割数WXN,RXNは3となっており、垂直方向における分割数WYN,RYNは3となっている。書き込み処理用の各々の分割ブロック601a〜601iの水平方向におけるサイズ(画素数)WXと、読み出し処理用の各々の分割ブロック602a〜602iの水平方向におけるサイズRXとは、互いに等しくなっている。また、書き込み処理用の各々の分割ブロック601a〜601iの垂直方向におけるサイズWYと、読み出し処理用の各々の分割ブロック602a〜602iの垂直方向におけるサイズRYとは、互いに等しくなっている。なお、本明細書においては、個々の分割ブロックについて説明する際には、符号601a〜601i、602a〜602iを用い、分割ブロック一般について説明する際には、符号601、602を用いることとする。図6(a)及び図6(b)に示す例においては、各々のパラメータの値は例えば以下のように設定される。即ち、C0=0、Un=3、Dn=3、Wn=5、Rn=0、Buf=5と設定される。
図7(a)は、メモリアクセス制御部202の内部の状態を示すタイムチャートである。図7(a)は、図6(a)及び図6(b)のようにブロック分割した場合に対応している。図7における縦軸はアップダウンカウンタ505から出力されるカウント値Cを示している。図7における横軸は時間軸である。図7における“Full”は、比較器506から出力される信号FULLがHighレベルであることを示しており、図7における“Empty”は、比較器507から出力される信号EMPTYがHighレベルであることを示している。図7におけるWFINは、書き込み制御部201から出力される書き込み処理完了信号がHighレベルであることを示している。図7において矢印を伴って示されたWBEND,RBEND,WVEND,RVENDは、これらのイベントが書き込み制御部201又は読み出し制御部203からメモリアクセス制御部202に出力されるタイミングを示している。
まず、初期状態について説明する。初期状態においては、アップダウンカウンタ505におけるカウント値Cは、初期値C0=0に設定されている。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たし、比較器507から出力される信号EMPTYはHighレベルである。上述したように、書き込み制御部201から出力される書き込み処理完了信号WFINがHighレベルになるのは、例えば1フレーム分の書き込み処理が完了した際である。従って、1フレーム分の書き込み処理が完了するまでは、書き込み処理完了信号WFINはLowレベルのままである。従って、比較器507から出力される信号EMPTYがHighレベルの場合、マスク論理509から出力される信号MEMPTYはHighレベルであり、読み出しリクエスト信号RREQがマスク論理511によってマスクされる。この状態においては、読み出し制御部203からメモリアクセス制御部202に読み出しリクエスト信号RREQが出力された場合であっても、メモリアクセス制御部202から出力される読み出しリクエスト信号MRREQはLowレベルに維持される。即ち、この状態においては、読み出しリクエスト信号RREQが無効化される。このように、信号EMPTYがHighレベルである場合には、読み出しリクエスト信号RREQは無効化される。また、C+Un=3であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。マスク論理508から出力される信号MFULLはLowレベルであり、書き込みリクエスト信号WREQはマスク論理510によってマスクされない。この状態においては、書き込み制御部201からメモリアクセス制御部202に出力される書き込みリクエスト信号WREQに応じて、メモリアクセス制御部202からメモリIF204に書き込みリクエスト信号MWREQが出力される。このように、信号FULLがLowレベルである場合には、書き込みリクエスト信号WREQは有効とされる。書き込みリクエスト信号WREQに応じて、メモリアクセス制御部202からメモリIF204に書き込みリクエスト信号MWREQが出力されるため、書き込み処理用の分割ブロック601に対応するメモリアドレスへのデータの書き込みが行われる。具体的には、この段階では、書き込み処理用の第1番目の分割ブロック601aに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図6(a)及び図6(b)に示す例においては、書き込み処理用の分割ブロックの分割態様と読み出し処理用の分割ブロックの分割態様とが互いに等しくなっている。このため、書き込み処理用の第1番目の分割ブロック601aに対応するメモリアドレスへのデータの書き込みが完了した段階で、読み出し処理用の第1番目の分割ブロック602aに対応する全てのメモリアドレスへのデータの書き込みが完了している。従って、書き込み処理用の第1番目の分割ブロック601aに対応するメモリアドレスへの書き込みが完了した後には、読み出し処理用の第1番目の分割ブロック602aに対応するメモリアドレスからの読み出しを行っても、現在のフレームの画像が書き込まれていないアドレスからの読み出しを行うことがない。従って、書き込み処理用の第1番目の分割ブロック601aに対応するメモリアドレスへのデータの書き込みが完了した後には、以下に示すように、読み出し処理用の第1番目の分割ブロック602aに対応するメモリアドレスからのデータの読み出しが行われる。
即ち、書き込み処理用の第1番目の分割ブロック601aに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=3となる。C+Un=6であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。上述したように、読み出し処理完了信号RFINがHighレベルとなるのは、例えば1フレーム分の読み出し処理が完了した際である。従って、1フレーム分の読み出し処理が完了するまでは、読み出し処理完了信号RFINはLowレベルのままである。従って、比較器506から出力される信号FULLがHighレベルの場合、マスク論理508から出力される信号MFULLはHighレベルであり、書き込みリクエスト信号WREQはマスク論理510によってマスクされる。この状態においては、書き込み制御部201からメモリアクセス制御部202に書き込みリクエスト信号WREQが出力された場合であっても、メモリアクセス制御部202から出力される書き込みリクエスト信号MWREQはLowレベルに維持される。即ち、この状態においては、書き込みリクエスト信号WREQが無効化される。このように、信号FULLがHighレベルである場合には、書き込みリクエスト信号WREQは無効化される。また、C−Dn=0であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。マスク論理509から出力される信号MEMPTYはLowレベルであり、読み出しリクエスト信号RREQはマスク論理511によってマスクされない。この状態においては、読み出し制御部203からメモリアクセス制御部202に出力される読み出しリクエスト信号RREQに応じて、メモリアクセス制御部202からメモリIF204に読み出しリクエスト信号MRREQが出力される。このように、信号EMPTYがLowレベルである場合には、読み出しリクエスト信号RREQは有効とされる。読み出しリクエスト信号RREQに応じて、メモリアクセス制御部202からメモリIF204に読み出しリクエスト信号MRREQが出力されるため、読み出し用の分割ブロック602に対応するメモリアドレスからのデータの読み出しが行われる。具体的には、読み出し処理用の第1番目の分割ブロック602aに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第1番目の分割ブロック602aに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第2番目の分割ブロック602bに対応するメモリアドレスには読み出しの対象となるデータが書き込まれていない。従って、読み出し処理用の第1番目の分割ブロック602aに対応するメモリアドレスからのデータの読み出しが完了した後には、以下に示すように、書き込み処理用の第2番目の分割ブロック601bに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第1番目の分割ブロック602aに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが発行される。これにより、アップダウンカウンタ505は、Dn=3だけカウントダウンし、カウント値C=0となる。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=3であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第2番目の分割ブロック601bに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図6(a)及び図6(b)に示す例においては、書き込み処理用の分割ブロックの分割態様と読み出し処理用の分割ブロックの分割態様とが互いに等しくなっている。従って、書き込み処理用の第2番目の分割ブロック601bに対応するメモリアドレスへの書き込みが完了した後には、読み出し処理用の第2番目の分割ブロック602bに対応するメモリアドレスからの読み出しを行っても、現在のフレームの画像が書き込まれていないアドレスからの読み出しを行うことはない。従って、書き込み処理用の第2番目の分割ブロック601bに対応するメモリアドレスへのデータの書き込みが完了した後には、読み出し処理用の第2番目の分割ブロック602bに対応するメモリアドレスからのデータの読み出しが行われる。
この後も、上記と同様にして、追いかけ制御が順次行われる。アップダウンカウンタ505から出力されるカウント値Cは、図7(a)のように変化する。書き込み処理用の第9番目の分割ブロック601iに対応するメモリアドレスへのデータの書き込みが完了すると、1フレーム分の書き込み処理が完了したことを示すイベントWVENDが出力される。また、1フレーム分の書き込み処理が完了したことを示す書き込み処理完了信号WFINがHighレベルとなる。この後、読み出し処理用の第9番目の分割ブロック602iに対応するメモリアドレスからのデータの読み出しが完了すると、1フレーム分の読み出し処理が完了したことを示すイベントRVENDが出力される。また、1フレーム分の読み出し処理が完了したことを示す読み出し処理完了信号RFINがHighレベルとなる。このように、図6(a)及び図6(b)の例においては、書き込み処理用の分割ブロック601に対応するメモリアドレスへのデータの書き込みと読み出し処理用の分割ブロック602に対応するメモリアドレスからのデータの読み出しとが交互に順次行われる。このように、本実施形態によれば、追いかけ制御を的確に行うことができる。
図6(c)及び図6(d)は、書き込み処理用のブロック分割の態様と読み出し処理用のブロック分割の態様とが互いに異なっている例を示している。例えば、図1において、画像の書き込みを行う処理部と読み出しを行う処理部の分割数、ブロックサイズが異なる場合に該当する。図6(c)は、書き込み処理用のブロック分割を示しており、図6(d)は、読み出し処理用のブロック分割を示している。書き込み処理用のブロック分割においては、水平方向においても垂直方向においても分割数WXN,WYNは3となっている。一方、読み出し処理用のブロック分割においては、水平方向においても垂直方向においても分割数RXN,RYNは4となっている。書き込み処理用の各々の分割ブロック603a〜603iの水平方向におけるサイズWXは、読み出し処理用の各々の分割ブロック604a〜604pの水平方向におけるサイズRXより大きくなっている。また、書き込み処理用の各々の分割ブロック603a〜603iの垂直方向におけるサイズWYは、読み出し処理用の各々の分割ブロック604a〜604pの垂直方向におけるサイズRYより大きくなっている。なお、本明細書においては、個々の分割ブロックについて説明する際には、符号603a〜603i、604a〜604pを用い、分割ブロック一般について説明する際には、符号603、604を用いることとする。図6(c)及び図6(d)に示す例においては、各々のパラメータの値は例えば以下のように設定される。即ち、C0=0、Un=4、Dn=3、Wn=6、Rn=0、Buf=6と設定される。図7(b)は、メモリアクセス制御部202の内部の状態を示すタイムチャートである。図7(b)は、図6(c)及び図6(d)のようにブロック分割した場合に対応している。
まず、初期状態について説明する。初期状態においては、アップダウンカウンタ505のカウント値は、初期値C0=0に設定されている。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=4であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第1番目の分割ブロック603aに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図6(c)及び図6(d)に示す例においては、読み出し処理用の各々の分割ブロック604のサイズは水平方向においても垂直方向においても、書き込み処理用の各々の分割ブロック603のサイズより小さくなっている。従って、書き込み処理用の第1番目の分割ブロック603aに対応するメモリアドレスへの書き込みが完了した後には、読み出し処理用の第1番目の分割ブロック604aに対応するメモリアドレスからの読み出しを行っても、現在のフレームの画像が書き込まれていないアドレスからの読み出しを行うことがない。従って、書き込み処理用の第1番目の分割ブロック603aに対応するメモリアドレスへのデータの書き込みが完了した後には、以下に示すように、読み出し処理用の第1番目の分割ブロック604aに対応するメモリアドレスからのデータの読み出しが行われる。即ち、書き込み処理用の第1番目の分割ブロック603aに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=4だけカウントアップし、カウント値C=4となる。C+Un=8であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。また、C−Dn=1であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。従って、読み出し処理用の第1番目の分割ブロック604aに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第1番目の分割ブロック604aに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第2番目の分割ブロック604bに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。従って、読み出し処理用の第1番目の分割ブロック604aに対応するメモリアドレスからのデータの読み出しが完了した後には、以下に示すように、書き込み処理用の第2番目の分割ブロック603bに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第1番目の分割ブロック604aに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=3だけカウントダウンし、カウント値C=1となる。C−Dn=−2であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=5であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第2番目の分割ブロック603bに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図6(c)及び図6(d)に示す例においては、読み出し処理用の各々の分割ブロック604のサイズは水平方向においても垂直方向においても、書き込み処理用の各々の分割ブロック603のサイズより小さくなっている。従って、書き込み処理用の第2番目の分割ブロック603bに対応するメモリアドレスへの書き込みが完了した後には、読み出し処理用の第2番目の分割ブロック604bに対応するメモリアドレスからの読み出しを行っても、現在のフレームの画像が書き込まれていないアドレスからの読み出しを行うことがない。従って、書き込み処理用の第2番目の分割ブロック603bに対応するメモリアドレスへのデータの書き込みが完了した後には、以下に示すように、読み出し処理用の第2番目の分割ブロック604bに対応するメモリアドレスからのデータの読み出しが行われる。即ち、書き込み処理用の第2番目の分割ブロック603bに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=4だけカウントアップし、カウント値C=5となる。C+Un=9であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。また、C−Dn=2であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。従って、読み出し処理用の第2番目の分割ブロック604bに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第2番目の分割ブロック604bに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第3番目の分割ブロック604cに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。従って、読み出し処理用の第2番目の分割ブロック604bに対応するメモリアドレスからのデータの読み出しが完了した後には、以下に示すように、書き込み処理用の第3番目の分割ブロック603cに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第2番目の分割ブロック604bに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=3だけカウントダウンし、カウント値C=2となる。C−Dn=−1であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=6であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第3番目の分割ブロック603cに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図6(c)及び図6(d)に示す例においては、読み出し処理用の各々の分割ブロック604のサイズは水平方向においても垂直方向においても、書き込み処理用の各々の分割ブロック603のサイズより小さくなっている。従って、書き込み処理用の第3番目の分割ブロック603cに対応するメモリアドレスへの書き込みが完了した後には、読み出し処理用の第3番目の分割ブロック604cに対応するメモリアドレスからの読み出しを行っても、現在のフレームの画像が書き込まれていないアドレスからの読み出しを行うことがない。従って、書き込み処理用の第3番目の分割ブロック603cに対応するメモリアドレスへのデータの書き込みが完了した後には、以下に示すように、読み出し処理用の第3番目の分割ブロック604cに対応するメモリアドレスからのデータの読み出しが行われる。即ち、書き込み処理用の第3番目の分割ブロック603cに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=4だけカウントアップし、カウント値C=6となる。C−Dn=3であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。また、C+Un=10であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。従って、読み出し処理用の第3番目の分割ブロック604cに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第3番目の分割ブロック604cに対応するメモリアドレスからのデータの読み出しが完了した段階で、読み出し処理用の第4番目の分割ブロック604dに対応するメモリアドレスには、現在のフレームの読み出しの対象となるデータが書き込まれている。従って、読み出し処理用の第3番目の分割ブロック604cに対応するメモリアドレスからの読み出しが完了した後には、以下に示すように、読み出し処理用の第4番目の分割ブロック604dに対応するメモリアドレスからの読み出しが行われる。即ち、読み出し処理用の第3番目の分割ブロック604cに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=3だけカウントダウンし、カウント値C=3となる。C−Dn=0であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。また、C+Un=7であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。従って、読み出し処理用の第4番目の分割ブロック604dに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第4番目の分割ブロック604dに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第5番目の分割ブロック604eに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。従って、読み出し処理用の第4番目の分割ブロック604dに対応するメモリアドレスからのデータの読み出しが完了した後には、以下に示すように、書き込み処理用の第4番目の分割ブロック603dに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第4番目の分割ブロック604dに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=3だけカウントダウンし、カウント値C=0となる。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=4であり、Wn=6であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第4番目の分割ブロック603dに対応するメモリアドレスへのデータの書き込みが行われる。
この後も、上記と同様にして、追いかけ制御が順次行われる。アップダウンカウンタ505から出力されるカウント値Cは、図7(b)のように変化する。書き込み処理用の第9番目の分割ブロック601iに対応するメモリアドレスへのデータの書き込みが完了すると、1フレーム分の書き込み処理が完了したことを示すイベントWVENDが出力される。また、1フレーム分の書き込み処理が完了したことを示す書き込み処理完了信号WFINがHighレベルとなる。書き込み処理用の第9番目の分割ブロック603iに対応するメモリアドレスへの書き込みが完了した段階では、読み出し処理用の第11番目〜第16番目までの分割ブロック604k〜604pに対応するメモリアドレスからの読み出しが完了していない。書き込み処理用の第9番目の分割ブロック603iに対応するメモリアドレスへの書き込みが完了した後には、読み出し処理用の第11番目〜第16番目の分割ブロック604k〜604pに対応するメモリアドレスからの読み出しが順次行われる。読み出し処理用の第16番目の分割ブロック604pに対応するメモリアドレスからのデータの読み出しが完了すると、1フレーム分の読み出し処理が完了したことを示すイベントRVENDが出力される。このように、本実施形態によれば、図6(c)及び図6(d)のようにブロック分割した場合であっても、追いかけ制御を的確に行うことができる。
図6(e)及び図6(f)は、書き込み処理におけるブロック分割の態様と読み出し処理におけるブロック分割の態様とが互いに異なっている例を示している。例えば、図1において、画像の書き込みを行う処理部と読み出しを行う処理部の分割数、ブロックサイズが異なる場合に該当する。図6(e)は、書き込み処理用のブロック分割を示しており、図6(f)は、読み出し処理用のブロック分割を示している。書き込み処理用のブロック分割においては、水平方向においても垂直方向においても分割数WXN,WYNは4となっている。一方、読み出し処理用のブロック分割においては、水平方向においても垂直方向においても分割数RXN,RYNは3となっている。書き込み処理用の各々の分割ブロック605a〜605pの水平方向におけるサイズWXは、読み出し処理用の各々の分割ブロック606a〜606iの水平方向におけるサイズRXより小さくなっている。また、書き込み処理用の各々の分割ブロック605a〜605pの垂直方向におけるサイズWYは、読み出し処理用の各々の分割ブロック606a〜606iの垂直方向におけるサイズRYより小さくなっている。なお、本明細書においては、個々の分割ブロックについて説明する際には、符号605a〜605p、606a〜606iを用い、分割ブロック一般について説明する際には、符号605、606を用いることとする。図6(e)及び図6(f)に示す例においては、各々のパラメータの値は例えば以下のように設定される。即ち、C0=0、Un=3、Dn=4、Wn=18、Rn=12、Buf=6と設定される。図7(c)は、メモリアクセス制御部202の内部の状態を示すタイムチャートである。図7(c)は、図6(e)及び図6(f)のようにブロック分割した場合に対応している。
まず、初期状態について説明する。初期状態においては、アップダウンカウンタ505のカウント値は、初期値C0=0に設定されている。C−Dn=−4であり、Rn=12であるため、比較器507における条件式C−Dn<Rnを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=3であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第1番目の分割ブロック605aに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図6(e)及び図6(f)に示す例においては、読み出し処理用の各々の分割ブロック606のサイズは水平方向においても垂直方向においても、書き込み処理用の各々の分割ブロック605のサイズより大きくなっている。書き込み処理用の第1番目の分割ブロック605aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第1番目の分割ブロック605aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第1番目の分割ブロック605aに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第2番目の分割ブロック605bに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第1番目の分割ブロック605aに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=3となる。C−Dn=−1であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=6であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第2番目の分割ブロック605bに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図6(e)及び図6(f)に示す例においては、読み出し処理用の各々の分割ブロック606のサイズは水平方向においても垂直方向においても、書き込み処理用の各々の分割ブロック605のサイズより大きくなっている。書き込み処理用の第2番目の分割ブロック605bに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第2番目の分割ブロック605bに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第2番目の分割ブロック605bに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第3番目の分割ブロック605cに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第2番目の分割ブロック605bに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=6となる。C−Dn=2であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=9であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第3番目の分割ブロック605cに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第3番目の分割ブロック605cに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第3番目の分割ブロック605cに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第3番目の分割ブロック605cに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第4番目の分割ブロック605dに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第3番目の分割ブロック605cに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=9となる。C−Dn=5であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=12であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第4番目の分割ブロック605dに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第4番目の分割ブロック605dに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第4番目の分割ブロック605dに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第4番目の分割ブロック605dに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第5番目の分割ブロック605eに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第4番目の分割ブロック605dに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=12となる。C−Dn=8であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=15であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第5番目の分割ブロック605eに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第5番目の分割ブロック605eに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第5番目の分割ブロック605eに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第5番目の分割ブロック605eに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第6番目の分割ブロック605fに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第5番目の分割ブロック605eに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=15となる。C−Dn=11であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=18であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第6番目の分割ブロック605fに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第6番目の分割ブロック605fに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック606aに対応する全てのメモリアドレスへのデータの書き込みが完了している。このため、書き込み処理用の第6番目の分割ブロック605fに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しが行われる。即ち、書き込み処理用の第6番目の分割ブロック605fに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=18となる。C−Dn=14であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。また、C+Un=21であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。従って、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第2番目の分割ブロック606bに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。従って、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しが完了した後には、以下に示すように、書き込み処理用の第7番目の分割ブロック605gに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第1番目の分割ブロック606aに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=4だけカウントダウンし、カウント値C=14となる。C−Dn=10であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=17であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第7番目の分割ブロック605gに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第7番目の分割ブロック605gに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第2番目の分割ブロック606bに対応する全てのメモリアドレスへのデータの書き込みが完了している。このため、書き込み処理用の第7番目の分割ブロック605gに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、読み出し処理用の第2番目の分割ブロック606bに対応するメモリアドレスからのデータの読み出しが行われる。即ち、書き込み処理用の第7番目の分割ブロック605gに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=17となる。C−Dn=13であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。また、C+Un=20であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。従って、読み出し処理用の第2番目の分割ブロック606bに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第2番目の分割ブロック606bに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第3番目の分割ブロック606cに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。従って、読み出し処理用の第2番目の分割ブロック606bに対応するメモリアドレスからのデータの読み出しが完了した後には、以下に示すように、書き込み処理用の第8番目の分割ブロック605hに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第2番目の分割ブロック606bに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=4だけカウントダウンし、カウント値C=13となる。C−Dn=9であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=16であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第8番目の分割ブロック605hに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第8番目の分割ブロック605hに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第3番目の分割ブロック606cに対応する全てのメモリアドレスへのデータの書き込みが完了している。このため、書き込み処理用の第8番目の分割ブロック605hに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、読み出し処理用の第3番目の分割ブロック606cに対応するメモリアドレスからのデータの読み出しが行われる。即ち、書き込み処理用の第8番目の分割ブロック605hに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=16となる。C−Dn=12であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。また、C+Un=19であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。従って、読み出し処理用の第3番目の分割ブロック606cに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第3番目の分割ブロック606cに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第4番目の分割ブロック606dに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。従って、読み出し処理用の第3番目の分割ブロック606cに対応するメモリアドレスからのデータの読み出しが完了した後には、以下に示すように、書き込み処理用の第9番目の分割ブロック605iに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第3番目の分割ブロック606cに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=4だけカウントダウンし、カウント値C=12となる。C−Dn=8であり、Rn=12であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=15であり、Wn=18であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第9番目の分割ブロック605iに対応するメモリアドレスへのデータの書き込みが行われる。
この後も、上記と同様にして、追いかけ制御が順次行われる。アップダウンカウンタ505から出力されるカウント値Cは、図7(c)のように変化する。書き込み処理用の第16番目の分割ブロック605pに対応するメモリアドレスへのデータの書き込みが完了すると、1フレーム分の書き込み処理が完了したことを示すイベントWVENDが出力される。また、1フレーム分の書き込み処理が完了したことを示す書き込み処理完了信号WFINがHighレベルとなる。読み出し処理用の第9番目の分割ブロック606iに対応するメモリアドレスからのデータの読み出しが完了すると、1フレーム分の読み出し処理が完了したことを示すイベントRVENDが出力される。また、1フレーム分の読み出し処理が完了したことを示す読み出し処理完了信号RFINがHighレベルとなる。このように、本実施形態によれば、図6(e)及び図6(f)のようにブロック分割した場合であっても、追いかけ制御を的確に行うことができる。
図8は、ブロック分割の例を概念的に示す図である。図8(a)及び図8(b)は、水平方向においてオーバラップするように読み出し処理用の分割ブロックが設定されている例を示している。図8(a)は、書き込み処理用のブロック分割を示しており、図8(b)は、読み出し処理用のブロック分割を示している。書き込み処理用のブロック分割と読み出し処理用のブロック分割のいずれにおいても、水平方向における分割数WXN,RXNは3となっており、垂直方向における分割数WYN,RYNは3となっている。読み出し処理用の各々の分割ブロック802a〜802iの水平方向におけるサイズRXは、書き込み処理用の各々の分割ブロック801a〜801iの水平方向におけるサイズWXより大きくなっている。読み出し処理用の分割ブロック802a、802d、802gの右側の部分と、読み出し処理用の分割ブロック802b、802e、802hの左側の部分とが、それぞれ互いにオーバラップしている。読み出し処理用の分割ブロック802b、802e、802hの右側の部分と、読み出し処理用の分割ブロック802c、802f、802iの左側の部分とが、それぞれ互いにオーバラップしている。読み出し処理用の各々の分割ブロック802a〜802iの垂直方向におけるサイズRYと、書き込み処理用の各々の分割ブロック801a〜801iの垂直方向におけるサイズRYとは、互いに等しくなっている。なお、本明細書においては、個々の分割ブロックについて説明する際には、符号801a〜801i、802a〜802iを用い、分割ブロック一般について説明する際には、符号801、802を用いることとする。図8(a)及び図8(b)に示す例においては、各々のパラメータの値は例えば以下のように設定される。即ち、C0=−3、Un=3、Dn=3、Wn=5、Rn=0、Buf=5と設定される。なお、C0を−3に設定しているのは、読み出し処理用の分割ブロック802の水平方向におけるサイズが書き込み処理用の分割ブロック801の水平方向におけるサイズより大きく、読み出し処理を遅らせる必要があるためである。図8(a)及び図8(b)に示す例においては、1回分の書き込み処理の分だけ読み出し処理を遅らせればよい。1回分の書き込み処理に対応するカウントアップ値はUn=RXN=3である。従って、ここでは、C0=−3としている。図9は、メモリアクセス制御部202の内部の状態を示すタイムチャートである。図9は、図8(a)及び図8(b)のようにブロック分割した場合に対応している。
まず、初期状態について説明する。初期状態においては、アップダウンカウンタ505のカウント値は、初期値C0=−3に設定されている。C−Dn=−6であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=0であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第1番目の分割ブロック801aに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図8(a)及び図8(b)に示す例においては、読み出し処理用の各々の分割ブロック802のサイズは、水平方向において、書き込み処理用の各々の分割ブロック801のサイズより大きくなっている。書き込み処理用の第1番目の分割ブロック801aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック802aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第1番目の分割ブロック801aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック802aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第1番目の分割ブロック801aに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第2番目の分割ブロック801bに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第1番目の分割ブロック801aに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=0となる。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=3であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第2番目の分割ブロック801bに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第2番目の分割ブロック801bに対応するメモリアドレスへのデータの書き込みが完了した段階で、読み出し処理用の第1番目の分割ブロック802aに対応する全てのメモリアドレスへのデータの書き込みが完了している。従って、書き込み処理用の第2番目の分割ブロック801bに対応するメモリアドレスへのデータの書き込みが完了した後には、以下に示すように、読み出し処理用の第1番目の分割ブロック802aに対応するメモリアドレスからのデータの読み出しが行われる。即ち、書き込み処理用の第2番目の分割ブロック801bに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=3となる。C−Dn=0であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。また、C+Un=6であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。従って、読み出し処理用の第1番目の分割ブロック802aに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第1番目の分割ブロック802aに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第2番目の分割ブロック802bに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、読み出し処理用の第1番目の分割ブロック802aに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第2番目の分割ブロック802bに対応するメモリアドレスからのデータの読み出しは行われない。読み出し処理用の第1番目の分割ブロック802aに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第3番目の分割ブロック801cに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第1番目の分割ブロック802aに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=3だけカウントダウンし、カウント値C=0となる。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=3であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第3番目の分割ブロック801cに対応するメモリアドレスへのデータの書き込みが行われる。
この後も、上記と同様にして、追いかけ制御が順次行われる。アップダウンカウンタ505から出力されるカウント値Cは、図9のように変化する。書き込み処理用の第9番目の分割ブロック801iに対応するメモリアドレスへのデータの書き込みが完了すると、1フレーム分の書き込み処理が完了したことを示すイベントWVENDが出力される。また、1フレーム分の書き込み処理が完了したことを示す書き込み処理完了信号WFINがHighレベルとなる。この後、読み出し処理用の第9番目の分割ブロック802iに対応するメモリアドレスからのデータの読み出しが完了すると、1フレーム分の読み出し処理が完了したことを示すイベントRVENDが出力される。また、1フレーム分の読み出し処理が完了したことを示す読み出し処理完了信号RFINがHighレベルとなる。このように、図8(a)及び図8(b)のようにブロック分割した場合であっても、追いかけ制御を的確に行うことができる。
図8(c)及び図8(d)は、垂直方向においてオーバラップするように読み出し処理用の分割ブロックが設定されている例を示している。図8(c)は、書き込み処理用のブロック分割を示しており、図8(d)は、読み出し処理用のブロック分割を示している。書き込み処理用のブロック分割と読み出し処理用のブロック分割のいずれにおいても、水平方向における分割数WXN,RXNは3となっており、垂直方向における分割数WYN,RYNは3となっている。読み出し処理用の各々の分割ブロック804a〜804iの水平方向におけるサイズRXと、書き込み処理用の各々の分割ブロック803a〜803iの水平方向におけるサイズとは互いに等しくなっている。読み出し処理用の各々の分割ブロック804a〜804iの垂直方向におけるサイズRYは、書き込み処理用の各々の分割ブロック802a〜802iの垂直方向におけるサイズRYより大きくなっている。読み出し処理用の分割ブロック804a〜804cの下側の部分と、読み出し処理用の分割ブロック804d〜804fの上側の部分とが、それぞれ互いにオーバラップしている。また、読み出し処理用の分割ブロック804d〜804fの下側の部分と、読み出し処理用の分割ブロック804g〜804iの上側の部分とが、それぞれ互いにオーバラップしている。なお、本明細書においては、個々の分割ブロックについて説明する際には、符号803a〜803i、804a〜804iを用い、分割ブロック一般について説明する際には、符号803、804を用いることとする。図8(c)及び図8(d)に示す例においては、各々のパラメータの値は例えば以下のように設定される。即ち、C0=−9、Un=3、Dn=3、Wn=5、Rn=0、Buf=5と設定される。なお、C0を−9に設定しているのは、読み出し処理用の分割ブロック804の垂直方向におけるサイズが書き込み処理用の分割ブロック803の水平方向におけるサイズより大きく、読み出し処理を遅らせる必要があるためである。図8(c)及び図8(d)に示す例においては、3回分の書き込み処理の分だけ読み出し処理を遅らせればよい。3回分の書き込み処理に対応するカウントアップ値はUn×3=RXN×3=9である。従って、ここでは、C0=−9としている。図10は、メモリアクセス制御部202の内部の状態を示すタイムチャートである。図10は、図8(c)及び図8(d)のようにブロック分割した場合に対応している。
まず、初期状態について説明する。初期状態においては、アップダウンカウンタ505のカウント値Cは、初期値C0=−9に設定されている。C−Dn=−12であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=−6であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第1番目の分割ブロック803aに対応するメモリアドレスへのデータの書き込みが行われる。
上述したように、図8(c)及び図8(d)に示す例においては、読み出し処理用の各々の分割ブロック804のサイズは、垂直方向において、書き込み処理用の各々の分割ブロック803のサイズより大きくなっている。書き込み処理用の第1番目の分割ブロック803aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック804aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第1番目の分割ブロック803aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第1番目の分割ブロック803aに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第2番目の分割ブロック803bに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第1番目の分割ブロック803aに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=−6となる。C−Dn=−9であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=−3であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第2番目の分割ブロック803bに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第2番目の分割ブロック803bに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック804aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第2番目の分割ブロック803aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第2番目の分割ブロック803bに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第3番目の分割ブロック803cに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第2番目の分割ブロック803bに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=−3となる。C−Dn=−6であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=0であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第3番目の分割ブロック803cに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第3番目の分割ブロック803cに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック804aに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、書き込み処理用の第3番目の分割ブロック803aに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しは行われない。書き込み処理用の第3番目の分割ブロック803cに対応するメモリアドレスへのデータの書き込みが完了した後には、以下のように、書き込み処理用の第4番目の分割ブロック803dに対応するメモリアドレスへのデータの書き込みが行われる。即ち、書き込み処理用の第3番目の分割ブロック803cに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=0となる。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=3であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第4番目の分割ブロック803dに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第4番目の分割ブロック803dに対応するメモリアドレスへのデータの書き込みが完了した段階では、読み出し処理用の第1番目の分割ブロック804aに対応する全てのメモリアドレスへのデータの書き込みが完了している。このため、書き込み処理用の第4番目の分割ブロック803dに対応するメモリアドレスへの書き込みが完了した後には、以下に示すように、読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからの読み出しが行われる。即ち、書き込み処理用の第4番目の分割ブロック803dに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=3だけカウントアップし、カウント値C=3となる。C−Dn=0であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。また、C+Un=6であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。従って、読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しが行われる。
読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第2番目の分割ブロック804bに対応する全てのメモリアドレスへのデータの書き込みが完了しているわけではない。このため、読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しが完了した段階では、読み出し処理用の第2番目の分割ブロック804bに対応するメモリアドレスからのデータの読み出しは行われない。読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しが完了した後には、以下のように、書き込み処理用の第5番目の分割ブロック803eに対応するメモリアドレスへのデータの書き込みが行われる。即ち、読み出し処理用の第1番目の分割ブロック804aに対応するメモリアドレスからのデータの読み出しが完了すると、分割ブロックアクセス完了イベントRBENDが出力される。これにより、アップダウンカウンタ505は、Dn=3だけカウントダウンし、カウント値C=0となる。C−Dn=−3であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=3であり、Wn=5であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第5番目の分割ブロック803eに対応するメモリアドレスへのデータの書き込みが行われる。
この後も、上記と同様にして、追いかけ制御が順次行われる。アップダウンカウンタ505から出力されるカウント値Cは、図10のように変化する。書き込み処理用の第9番目の分割ブロック803iに対応するメモリアドレスへのデータの書き込みが完了すると、1フレーム分の書き込み処理が完了したことを示すイベントWVENDが出力される。また、1フレーム分の書き込み処理が完了したことを示す書き込み処理完了信号WFINがHighレベルとなる。この後、読み出し処理用の第9番目の分割ブロック804iに対応するメモリアドレスからのデータの読み出しが完了すると、1フレーム分の読み出し処理が完了したことを示すイベントRVENDが出力される。また、1フレーム分の読み出し処理が完了したことを示す読み出し処理完了信号RFINがHighレベルとなる。このように、図8(c)及び図8(d)のようにブロック分割した場合であっても、追いかけ制御を的確に行うことができる。
なお、ここでは、追いかけ制御のパラメータC0、Un、Dn、Wn、Rn、Bufを上記のような値に設定する場合を例に説明したが、これに限定されるものではない。
このように、本実施形態によれば、所定のブロックでの書き込みが完了する毎に第1のイベントが発せられ、所定のブロックでの読み出しが完了する毎に第2のイベントが発せられる。そして、これら第1のイベントや第2のイベントに基づいてアップダウンカウンタがカウントアップやカウントダウンを行い、アップダウンカウンタのカウント値に基づいて読み出し処理又は書き込み処理を選択的に行う。従って、本実施形態によれば、読み出し処理や書き込み処理を的確に行い得る画像処理装置を提供することができる。
[第2実施形態]
第2実施形態によるメモリ制御装置及びメモリ制御方法について図面を用いて説明する。本実施形態によるメモリ制御装置の構成は、第1実施形態によるメモリ制御装置の構成と同様であるため、説明を省略する。図11は、ブロック分割とフレームの例を概念的に示す図である。図11は、1フレームの画像に対応する仮想的なアドレス空間を概念的に示している。図11(a)は、書き込み処理用のブロック分割の態様の例を示している。図11(a)に示すように、書き込み処理用のブロック分割においては、垂直方向における分割数WYNは3となっている。一方、水平方向においては分割されていない。即ち、水平方向における分割数WXNは1となっている。ここでは、信号処理部103や変倍処理部104等によって分割ブロック1101a〜1101cの単位で順次処理される画像が、分割ブロック1101a〜1101cの単位でメモリ111に順次書き込まれる場合を例に説明する。なお、本明細書においては、書き込み処理用の個々の分割ブロックについて説明する際には、符号1101a〜1101cを用い、書き込み処理用の分割ブロック一般について説明する際には、符号1101を用いることとする。図11(a)に示すように、各々の分割ブロック1101a〜1101cに対応するメモリアドレスへのデータの書き込みが完了する毎に、分割ブロックアクセス完了イベントWBENDが出力される。
図11(b)は、読み出し処理されるフレームの例を示している。ここでは、図11(b)に示すように、読み出し処理においてはブロック分割が行われず、1つのフレーム1102を単位として読み出し処理が行われる。即ち、1フレーム分のデータの読み出しが1回の読み出し処理において行われる。なお、1フレーム分のデータ量は比較的小さく設定されている。メモリ111から読み出されたデータに対して評価値取得部102によって評価が行われる。評価値取得部102によって取得される評価値としては、例えば、ヒストグラムや積算値等が挙げられる。図11(b)に示すように、1フレーム分のデータの読み出しが完了する毎に、1フレーム分のデータの読み出しが完了したことを示すイベントRVENDが出力される。
なお、ここでは、分割ブロック1101a〜1101cに対応するメモリアドレスと、フレーム1102に対応するメモリアドレスとが互いに異なっている場合を例に説明するが、これに限定されるものではない。
メモリアクセス制御部202においては、分割ブロックアクセス完了イベントWBENDがセレクタ501によって選択される。また、メモリアクセス制御部202においては、フレーム1102a〜1102cの読み出しが完了したことを示すイベントRVENDがセレクタ502によって選択される。本実施形態では、各々のパラメータの値は例えば以下のように設定される。即ち、C0=0、Un=1、Dn=1、Wn=1、Rn=0と設定される。
図12は、本実施形態によるメモリ制御装置によって行われる書き込み処理及び読み出し処理を示すタイムチャートである。
まず、初期状態について説明する。初期状態においては、アップダウンカウンタ505のカウント値は、初期値C0=0に設定されている。C−Dn=−1であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=1であり、Wn=1であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第1番目の分割ブロック1101aに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第1番目の分割ブロック1101aに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=1だけカウントアップし、カウント値C=1となる。C+Un=2であり、Wn=1であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。また、C−Dn=0であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。従って、フレーム1102に対応するメモリアドレスからのデータの第1回目の読み出しが行われる。
フレーム1102に対応するメモリアドレスからのデータの第1回目の読み出しが完了すると、当該フレーム1102に対応するメモリアドレスからのデータの読み出しが完了したことを示すイベントRVENDが出力される。これにより、アップダウンカウンタ505は、Dn=1だけカウントダウンし、カウント値C=0となる。C−Dn=−1であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=1であり、Wn=1であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第2番目の分割ブロック1101bに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第2番目の分割ブロック1101bに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=1だけカウントアップし、カウント値C=1となる。C+Un=2であり、Wn=1であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。また、C−Dn=0であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。従って、フレーム1102に対応するメモリアドレスからのデータの第2回目の読み出しが行われる。
フレーム1102に対応するメモリアドレスからのデータの第2回目の読み出しが完了すると、当該フレーム1102に対応するメモリアドレスからのデータの読み出しが完了したことを示すイベントRVENDが出力される。これにより、アップダウンカウンタ505は、Dn=1だけカウントダウンし、カウント値C=0となる。C−Dn=−1であり、Rn=0であるため、比較器507における条件式C−Dn<Rを満たし、比較器507から出力される信号EMPTYはHighレベルである。信号EMPTYがHighレベルであるため、読み出しリクエスト信号RREQは無効化される。また、C+Un=1であり、Wn=1であるため、比較器506における条件式C+Un>Wnを満たさず、比較器506から出力される信号FULLはLowレベルである。信号FULLがLowレベルであるため、書き込みリクエスト信号WREQは有効とされる。従って、書き込み処理用の第3番目の分割ブロック1101cに対応するメモリアドレスへのデータの書き込みが行われる。
書き込み処理用の第3番目の分割ブロック1101cに対応するメモリアドレスへのデータの書き込みが完了すると、分割ブロックアクセス完了イベントWBENDが出力される。これにより、アップダウンカウンタ505は、Un=1だけカウントアップし、カウント値C=1となる。C+Un=2であり、Wn=1であるため、比較器506における条件式C+Un>Wnを満たし、比較器506から出力される信号FULLはHighレベルである。信号FULLがHighレベルであるため、書き込みリクエスト信号WREQは無効化される。また、C−Dn=0であり、Rn=0であるため、比較器507における条件式C−Dn<Rnを満たさず、比較器507から出力される信号EMPTYはLowレベルである。信号EMPTYがLowレベルであるため、読み出しリクエスト信号RREQは有効とされる。従って、フレーム1102に対応するメモリアドレスからのデータの第3回目の読み出しが行われる。
このように、1つの周期1201内において、3回の書き込み処理と3回の読み出し処理とが行われる。1つの周期1201に含まれる3回の書き込み処理によって、1フレーム分の画像がメモリ111に書き込まれる。一方、1つの周期1201に含まれる3回の読み出し処理によって、同じ画像データが3回読み出される。こうして読み出された各々の画像データを順次用いて、互いに異なる3種類の評価値が評価値取得部102によって順次取得される。即ち、第1回目の読み出し処理によって読み出された画像データからは、第1の評価値が評価値取得部102によって取得される。第2回目の読み出し処理によって読み出された画像データからは、第1の評価値とは異なる第2の評価値が評価値取得部102によって取得される。第3回目の読み出し処理によって読み出された画像データからは、第1の評価値と第2の評価値のいずれとも異なる第3の評価値が評価値取得部102によって取得される。
この後も、上記と同様の処理が繰り返し行われる。
このように、書き込みにおける単位と読み出しにおける単位とが互いに異なっていてもよく、また、書き込みにおけるアクセスアドレスと読み出しにおけるアクセスアドレスとが互いに異なっていてもよい。本実施形態においても、読み出し処理や書き込み処理を的確に行い得る画像処理装置を提供することができる。
[変形実施形態]
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
例えば、第1実施形態では、分割ブロックアクセス完了イベントBENDに基づいて、アップダウンカウンタ505のカウント値をカウントアップ又はカウントダウンしたが、これに限定されるものではない。例えば、最小アクセス単位アクセス完了イベントWENDに基づいて、アップダウンカウンタ505のカウント値をカウントアップ又はカウントダウンさせてもよい。即ち、最小アクセス単位401が、書き込みアクセスや読み出しアクセスを行う際の単位であるブロックであってもよい。この場合、書き込み処理用の最小アクセス単位401のサイズと読み出し処理用の最小アクセス単位401のサイズとが互いに異なっていてもよい。また、最小アクセス単位401にオーバラップが生じていてもよい。C0,Un,Dn,Wn,Rn等の各パラメータを適宜設定することにより、的確なアクセス制御が可能である。また、行アクセス完了イベントLENDブロックに基づいて、アップダウンカウンタ505のカウント値をカウントアップ又はカウントダウンさせてもよい。即ち、行411が、書き込みアクセスや読み出しアクセスを行う際の単位であるブロックであってもよい。この場合、書き込み処理用の行411のサイズと読み出し処理用の行411のサイズとが互いに異なっていてもよい。また、行411にオーバラップが生じていてもよい。C0,Un,Dn,Wn,Rn等の各パラメータを適宜設定することにより、的確なアクセス制御が可能である。また、ブロック行アクセス完了イベントBLENDに基づいて、アップダウンカウンタ505のカウント値をカウントアップ又はカウントダウンさせてもよい。即ち、ブロック行431が、書き込みアクセスや読み出しアクセスを行う際の単位であるブロックであってもよい。この場合、書き込み処理用のブロック行431のサイズと読み出し処理用のブロック行431のサイズとが互いに異なっていてもよい。また、ブロック行431にオーバラップが生じていてもよい。C0,Un,Dn,Wn,Rn等の各パラメータを適宜設定することにより、的確なアクセス制御が可能である。また、フレームアクセス完了イベントVENDに基づいて、アップダウンカウンタ505のカウント値をカウントアップ又はカウントダウンさせてもよい。即ち、フレーム441が、書き込みアクセスや読み出しアクセスを行う際の単位であるブロックであってもよい。
また、第2実施形態では、書き込み用のブロック分割における分割数を3とし、1つの周期1201内において、分割ブロック1101の書き込み処理と、フレーム1102の読み出し処理とを交互に3回ずつ行う場合を例に説明した。しかし、これに限定されるものではない。例えば、書き込み用のブロック分割における分割数を5とし、1つの周期1201内において、分割ブロックの書き込み処理と、フレームの読み出し処理とを交互に5回ずつ行うようにしてもよい。
また、第2実施形態では、分割ブロックアクセス完了イベントBENDやフレームアクセス完了イベントVENDに基づいてアップダウンカウンタ505がカウントアップやカウントダウンを行う場合を例に説明したが、これに限定されるものではない。例えば、最小アクセス単位アクセス完了イベントWEND、行アクセス完了イベントLEND、又は、ブロック行アクセス完了イベントBLENDに基づいて、アップダウンカウンタ505がカウントアップやカウントダウンを適宜行ってもよい。
また、第2実施形態では、ある画像についての書き込み処理を1つの周期1201内において分割して行い、ある画像についての読み出し処理を1つの周期1201内において複数回行う場合を例に説明したが、これに限定されるものではない。例えば、ある画像についての書き込み処理を1つの周期1201内において複数回行い、ある画像についての読み出し処理を1つの周期1201内において分割して行うようにしてもよい。
また、第2実施形態では、書き込み処理と読み出し処理とを交互に行う場合を例に説明したが、これに限定されるものではない。例えば、第1の画像についての書き込み処理と、第1の画像とは異なる第2の画像についての書き込み処理とを行う際に適用することも可能である。この場合には、読み出し制御部203の代わりに書き込み制御部201が設けられ、複数の書き込み制御部201から発せられる書き込みリクエスト信号MREQのうちのいずれかがメモリアクセス制御部202によって有効とされる。第1の画像の分割ブロックについての書き込み処理と、第2の画像の分割ブロックについての書き込み処理とが、1つの周期1201内において交互に繰り返し行われる。また、第1の画像についての読み出し処理と、第1の画像とは異なる第2の画像についての読み出し処理とを行う際に適用することも可能である。この場合には、書き込み制御部201の代わりに読み出し制御部203が設けられ、複数の読み出し制御部203から発せられる読み出しリクエスト信号RREQのうちのいずれかがメモリアクセス制御部202によって有効とされる。これにより、第1の画像の分割ブロックについての読み出し処理と、第2の画像の分割ブロックについての読み出し処理とが、1つの周期1201内において交互に繰り返し行われる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。