(57)【特許請求の範囲】
【請求項１】
所定画像の画像データを記憶した記憶手段よりも、データの書き込みおよび読み出しを高速に行う記憶部を有したキャッシュメモリと、
前記所定画像内の或る領域の画像データの転送要求を、前記キャッシュメモリに対して出力する転送要求手段と、
を備え、
前記キャッシュメモリは、
前記転送要求に対応した前記或る領域に含まれる画素行の画像データが、前記キャッシュメモリ内の前記記憶部に記憶されているか否かを前記画素行ごとに判断し、前記記憶部に記憶されていない未記憶の画像データを画素行ごとに当該或る領域を超えて前記記憶手段から読み出させる読出制御手段と、
前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記画素行ごとに格納先を替えて前記記憶部に記憶させる記憶制御手段と、
前記転送要求に対応した或る領域の画像データを前記記憶部から読み出して、前記転送要求手段に出力する出力制御手段と、
を有し、
前記転送要求手段は、前記所定画像の水平方向に並んだ複数の前記或る領域それぞれの画像データの転送要求を、前記水平方向の並び順に順次に行い、
前記記憶部は、前記画素行ごとの画像データを、当該画素行ごとに分けて記憶するための複数の区分記憶領域を有し、
当該複数の区分記憶領域は、ゼロから順にそれぞれ番号付けされ、
前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記所定画像における当該画素行の行番号を前記区分記憶領域の総数で割った余りによって示される区分記憶領域に記憶させ、
前記記憶部は、物理的に異なる第１記憶部と第２記憶部とを用いて構成されており、
前記複数の区分記憶領域は、前記第１記憶部および前記第２記憶部のいずれか一方において、区分記憶領域の番号ごとに交互に設定され、
前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記第１記憶部および前記第２記憶部のいずれか一方に前記画素行ごとに交互に記憶させる、データ転送装置。
【請求項２】
所定画像の画像データを記憶した記憶手段よりも、データの書き込みおよび読み出しを高速に行う記憶部を有したキャッシュメモリと、
前記所定画像内の或る領域の画像データの転送要求を、前記キャッシュメモリに対して出力する転送要求手段と、
を備え、
前記キャッシュメモリは、
前記転送要求に対応した前記或る領域に含まれる画素行の画像データが、前記キャッシュメモリ内の前記記憶部に記憶されているか否かを前記画素行ごとに判断し、前記記憶部に記憶されていない未記憶の画像データを画素行ごとに当該或る領域を超えて前記記憶手段から読み出させる読出制御手段と、
前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記画素行ごとに格納先を替えて前記記憶部に記憶させる記憶制御手段と、
前記転送要求に対応した或る領域の画像データを前記記憶部から読み出して、前記転送要求手段に出力する出力制御手段と、
を有し、
前記転送要求手段は、前記所定画像の水平方向に並んだ複数の前記或る領域それぞれの画像データの転送要求を、前記水平方向の並び順に順次に行い、
前記記憶部は、前記画素行ごとの画像データを、当該画素行ごとに分けて記憶するための複数の区分記憶領域を有し、
当該複数の区分記憶領域は、ゼロから順にそれぞれ番号付けされ、
前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記所定画像における当該画素行の行番号を前記区分記憶領域の総数で割った余りによって示される区分記憶領域に記憶させ、
前記記憶部は、物理的に異なる第１記憶部と第２記憶部とを用いて構成されており、
前記複数の区分記憶領域それぞれは、前記第１記憶部および前記第２記憶部にまたがって設定され、
前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記第１記憶部および前記第２記憶部のいずれか一方に所定のデータ量ずつ交互に記憶させる、データ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの転送技術に関する。
【背景技術】
【０００２】
一般的に、撮像装置等の画像処理装置では、ＣＣＤ等の撮像素子で取得された画像データは、撮像装置内部の記憶部（例えばＤＲＡＭ等）に一旦記憶される。そして、当該記憶部から画像データを読み出して種々の画像処理が施される。
【０００３】
例えば、特許文献１には、画像データを記憶した画像データ記憶部から画像データを読み出して、歪み補正部において、画像の歪みを補正する画像処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１１３２３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の画像処理装置では、歪み補正部からの画像データの転送要求に応じて、ＤＭＡＣ（Direct Memory Access Controller）を用いた画像データの読み出しが行われていたが、この場合、歪み補正の処理速度は、画像データ記憶部の読み出し速度の影響を受けていた。すなわち、画像データ記憶部から歪み補正部への画像データの転送速度が遅いため、歪み補正の処理速度が低下していた。
【０００６】
このような処理速度の低下は、他の画像処理を行う処理部からの転送要求に応じて、画像データを転送する際にも発生しうる。
【０００７】
そこで、本発明は、画像データの転送要求に応じた画像データの転送速度を早めることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るデータ転送装置の第１の態様は、所定画像の画像データを記憶した記憶手段よりも、データの書き込みおよび読み出しを高速に行う記憶部を有したキャッシュメモリと、前記所定画像内の或る領域の画像データの転送要求を、前記キャッシュメモリに対して出力する転送要求手段とを備え、前記キャッシュメモリは、前記転送要求に対応した前記或る領域に含まれる画素行の画像データが、前記キャッシュメモリ内の前記記憶部に記憶されているか否かを前記画素行ごとに判断し、前記記憶部に記憶されていない未記憶の画像データを画素行ごとに当該或る領域を超えて前記記憶手段から読み出させる読出制御手段と、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記画素行ごとに格納先を替えて前記記憶部に記憶させる記憶制御手段と、前記転送要求に対応した或る領域の画像データを前記記憶部から読み出して、前記転送要求手段に出力する出力制御手段とを有し、前記転送要求手段は、前記所定画像の水平方向に並んだ複数の前記或る領域それぞれの画像データの転送要求を、前記水平方向の並び順に順次に行い、前記記憶部は、前記画素行ごとの画像データを、当該画素行ごとに分けて記憶するための複数の区分記憶領域を有し、当該複数の区分記憶領域は、ゼロから順にそれぞれ番号付けされ、前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記所定画像における当該画素行の行番号を前記区分記憶領域の総数で割った余りによって示される区分記憶領域に記憶させ、前記記憶部は、物理的に異なる第１記憶部と第２記憶部とを用いて構成されており、前記複数の区分記憶領域は、前記第１記憶部および前記第２記憶部のいずれか一方において、区分記憶領域の番号ごとに交互に設定され、前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記第１記憶部および前記第２記憶部のいずれか一方に前記画素行ごとに交互に記憶させる。
【０００９】
また、本発明に係るデータ転送装置の第２の態様は、所定画像の画像データを記憶した記憶手段よりも、データの書き込みおよび読み出しを高速に行う記憶部を有したキャッシュメモリと、前記所定画像内の或る領域の画像データの転送要求を、前記キャッシュメモリに対して出力する転送要求手段と、を備え、前記キャッシュメモリは、前記転送要求に対応した前記或る領域に含まれる画素行の画像データが、前記キャッシュメモリ内の前記記憶部に記憶されているか否かを前記画素行ごとに判断し、前記記憶部に記憶されていない未記憶の画像データを画素行ごとに当該或る領域を超えて前記記憶手段から読み出させる読出制御手段と、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記画素行ごとに格納先を替えて前記記憶部に記憶させる記憶制御手段と、前記転送要求に対応した或る領域の画像データを前記記憶部から読み出して、前記転送要求手段に出力する出力制御手段と、を有し、前記転送要求手段は、前記所定画像の水平方向に並んだ複数の前記或る領域それぞれの画像データの転送要求を、前記水平方向の並び順に順次に行い、前記記憶部は、前記画素行ごとの画像データを、当該画素行ごとに分けて記憶するための複数の区分記憶領域を有し、当該複数の区分記憶領域は、ゼロから順にそれぞれ番号付けされ、前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記所定画像における当該画素行の行番号を前記区分記憶領域の総数で割った余りによって示される区分記憶領域に記憶させ、前記記憶部は、物理的に異なる第１記憶部と第２記憶部とを用いて構成されており、前記複数の区分記憶領域それぞれは、前記第１記憶部および前記第２記憶部にまたがって設定され、前記記憶制御手段は、前記読出制御手段によって読み出された前記画素行ごとの未記憶の画像データを、前記第１記憶部および前記第２記憶部のいずれか一方に所定のデータ量ずつ交互に記憶させる。
【発明の効果】
【００１６】
本発明によれば、画像データの転送要求に応じた画像データの転送速度を早めることが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る画像処理装置の構成を示す概略図である。
【図２】歪み補正処理の様子を示す図である。
【図３】歪み補正処理の他の様子を示す図である。
【図４】画像処理装置におけるキャッシュメモリの詳細構成を示す図である。
【図５】記憶部における、画像データの記憶態様を示す図である。
【図６】管理用メモリにおける、記憶内容の管理態様を示す図である。
【図７】キャッシュメモリの動作を示すフローチャートである。
【図８】歪み補正部からの転送要求に応じて、入力画像における読出領域から画像データを読み出す様子を示す図である。
【図９】歪み補正部からの転送要求に応じて、入力画像における読出領域から画像データを読み出す様子を示す図である。
【図１０】歪み補正部からの転送要求に応じて、入力画像における読出領域から画像データを読み出す様子を示す図である。
【図１１】歪み補正部からの転送要求に応じて、入力画像における読出領域から画像データを読み出す様子を示す図である。
【図１２】記憶部内の画像データの記憶態様を示す図である。
【図１３】記憶部内の画像データの記憶態様を示す図である。
【図１４】読出処理で読み出される読出範囲の他の態様を示す図である。
【図１５】記憶部を２つのＳＲＡＭを用いて構成した場合の画像データの記憶態様を示す図である。
【図１６】記憶部を２つのＳＲＡＭを用いて構成した場合の画像データの他の記憶態様を示す図である。
【発明を実施するための形態】
【００１８】
以下、実施形態について図面を参照して説明する。
【００１９】
＜１．実施形態＞
［１−１．構成概要］
図１は、本発明の実施形態に係る画像処理装置１の構成を示す概略図である。当該画像処理装置１には、例えば、撮像素子を有した撮像装置および携帯電話、並びにパーソナルコンピュータ（ＰＣ）および携帯情報端末機等が含まれる。
【００２０】
図１に示されるように、画像処理装置１は、いずれも基板上に集積回路として構成された、第１処理回路２および第２処理回路３を備えている。
【００２１】
第１処理回路２は、レンズデータ記憶部２１と画像データ記憶部２２とを有している。画像データ記憶部２２は、複数の画像データを記憶可能な容量を有するＤＲＡＭ等の記憶手段であり、画像処理装置１に入力された或いは画像処理装置１内の撮像素子で撮像された画像（入力画像）の画像データＧＤを記憶する。レンズデータ記憶部２１には、入力された画像データＧＤを撮像した撮像装置のレンズに関するレンズデータが記憶されている。レンズデータとしては、例えば、レンズの収差に起因した画像の歪みに関する情報（「歪み情報」とも称する）が記憶されている。
【００２２】
第２処理回路３は、画像処理回路として構成され、画像データ記憶部２２に保存された画像データＧＤに対して、各種の画像処理を施す。特に、本実施形態の第２処理回路３は、入力された画像データＧＤに対して、画像の歪みを補正する処理（「歪み補正処理」とも称する）を施す歪み補正部３０を有している。
【００２３】
ここで、歪み補正処理の概略について説明する。図２および図３は、歪み補正処理の様子を示す図であり、図２には、樽型の歪曲収差を有する入力画像ＩＧと、歪み補正処理後の出力画像ＵＧとが示されている。なお、入力画像ＩＧには、歪曲収差による被写体の歪みが破線によって示されている。
【００２４】
図２に示されるように、画像処理装置１で実行される歪み補正処理は、出力画像ＵＧを複数の領域に分割して得られる矩形領域（「画素ブロック」または単に「ブロック」とも称する）ＢＫごとに行われる。例えば、ブロックＢＫ１が歪み補正処理の実行対象のブロック（「実行対象ブロック」とも称する）ＢＲ（図２中のハッチング領域）であるときは、入力画像ＩＧにおいて当該ブロックＢＫ１に対応する対応ブロックＴＢ１付近の画素の画素値（「画素データ」とも称する）を用いて、ブロックＢＫ１の各画素の画素値が算出される。
【００２５】
より詳細には、ブロックＢＫ１に歪み補正処理を施す場合、歪み補正部３０は、対応ブロックＴＢ１を囲む領域（読出領域）ＲＮ１に含まれる各画素の画素値を取得するための転送要求を出力する。そして、歪み補正部３０は、当該転送要求に応じて取得された領域ＲＮ１内の各画素の画素値を用いた補間演算を行うことによって、ブロックＢＫ１（実行対象ブロックＢＲ）の各画素の画素値を算出する。このようにして算出されたブロックＢＫ１の各画素の画素値は、歪み補正後の各画素の画素値となる。
【００２６】
歪み補正処理では、このようなブロックＢＫ単位の歪み補正が、出力画像ＵＧを構成する各ブロックＢＫについて、左上のブロックを開始ブロックとして水平方向に順次に実行される。すなわち、歪み補正部３０は、歪み補正処理の実行に応じて、各ブロックＢＫの各対応ブロックをそれぞれ囲む各読出領域を水平方向に順次に設定し、水平方向に並んで設定された読出領域それぞれに含まれる画像データの転送要求を水平方向の並び順に順次に出力する。そして、歪み補正部３０は、転送要求に応じて取得された読出領域内の画像データを用いて、ブロックＢＫごとにブロック内の各画素の画素値を算出し、最終的に被写体の歪みを補正した出力画像ＵＧを生成する。
【００２７】
また、歪み補正部３０は、歪み補正の実行にあたり、連続して並ぶ複数のブロックを囲む領域（読出領域）ＲＮ１０に含まれる各画素の画素値を一度に取得してもよい。例えば、図３に示されるように、歪み補正部３０は、連続して並ぶ２つのブロックＢＫ１，ＢＫ２それぞれに対応する対応ブロックＴＢ１，ＴＢ２を内包する領域ＲＮ１０に含まれる各画素の画素値を一度に取得し、ブロックＢＫ１，ＢＫ２（実行対象ブロックＢＲ１，ＢＲ２）の各画素の画素値を算出してもよい。この場合、歪み補正部３０からは、領域ＲＮ１０に含まれる各画素の画素値を取得するための転送要求が出力されることになる。
【００２８】
そして、歪み補正部３０は、読出領域ごとに読出領域内の各画素の画素値を順次に取得しつつ、実行対象ブロックごとに歪み補正処理を実行する。
【００２９】
このように、歪み補正部３０は、画像処理としての歪み補正処理を実行するために、入力画像ＩＧの所定領域に含まれる画像データを読み出すための転送要求を出力するデータ転送要求手段として機能する。
【００３０】
なお、ブロックＢＫの大きさは、画像処理装置１によって自動で設定される態様としてもよく、ユーザによって指定可能な態様としてもよい。本実施形態では、ブロックＢＫが縦８画素、横８画素のブロック、すなわち８×８の画素を有するブロックである場合を例にして説明する。
【００３１】
図１の説明に戻って、第２処理回路３は、第１処理回路２と第２処理回路３との間のデータ転送を制御するＤＭＡＣ（ダイレクトメモリアクセスコントローラ）３５，３６と、キャッシュメモリ３７とをさらに有している。画像処理装置１では、第１処理回路２と第２処理回路３との間のバスを介したデータ転送は、ＣＰＵの代わりに当該ＤＭＡＣ３５，３６からの制御信号に基づいて行われる。
【００３２】
具体的には、歪み補正部３０から出力されたレンズデータの読出要求は、ＤＭＡＣ３５に入力される。ＤＭＡＣ３５は、当該読出要求に応じて、バスを介してレンズデータ記憶部２１からレンズデータを読み出す。読み出されたレンズデータは、歪み補正部３０において歪み補正処理に利用される。
【００３３】
また、歪み補正部３０から出力された画像データの転送要求は、キャッシュメモリ３７に入力される。キャッシュメモリ３７は、当該転送要求に応じた画像データがキャッシュメモリ３７内の記憶部に記憶されている場合は、当該記憶部に記憶されているデータを歪み補正部３０に対して出力する。
【００３４】
一方、キャッシュメモリ３７は、当該転送要求に応じた画像データがキャッシュメモリ３７内の記憶部に記憶されていない場合は、記憶部に記憶されていない未記憶データを読み出すための読出要求をＤＭＡＣ３６に対して出力する。ＤＭＡＣ３６は、当該読出要求に応じて、バスを介して画像データ記憶部２２から画像データを読み出す。画像データ記憶部２２から読み出された画像データは、キャッシュメモリ３７に入力され、キャッシュメモリ３７内の記憶部に記憶される。そして、キャッシュメモリ３７は、歪み補正部３０からの転送要求に応じた画像データを、歪み補正部３０に対して出力する。
【００３５】
上記のように、キャッシュメモリ３７は、データ転送要求手段としての歪み補正部３０から出力された画像データの転送要求に応じて、画像データ記憶部２２から不足分の画像データを読み出し、転送要求の対象となっている画像データを歪み補正部３０に転送する。このようなキャッシュメモリ３７を有する画像処理装置１は、「データ転送装置」とも称される。
【００３６】
［１−２．キャッシュメモリの詳細構成］
次に、キャッシュメモリ３７の詳細構成について説明する。図４は、画像処理装置１におけるキャッシュメモリ３７の詳細構成を示す図である。図５は、記憶部３７０における、画像データの記憶態様を示す図である。図６は、管理用メモリにおける、記憶内容の管理態様を示す図である。
【００３７】
図４に示されるように、キャッシュメモリ３７は、記憶部３７０と、記憶内容管理部３７１と、データ取得制御部（読出制御手段）３７２と、記憶制御部３７３と、出力制御部３７４とを有している。
【００３８】
記憶部３７０は、画像データ記憶部２２よりもデータの書き込みおよび読み出しを高速に行うことが可能な記憶部である。このような記憶部３７０としては、例えば、ＳＲＡＭ等が採用され、記憶部３７０には、画像データ記憶部２２から読み出された画像データが記憶される。
【００３９】
ここで、記憶部３７０における画像データの記憶態様について説明する。
【００４０】
記憶部３７０では、入力画像ＩＧにおける水平方向の画素の行（「画素行」とも称する）の画像データが、画素行ごとに異なる記憶領域に区分して記憶される。画素行ごとに区分された記憶領域は、「区分記憶領域」とも称され、ゼロから順次にそれぞれ番号付けされている。これら各区分記憶領域には、所定の規則に従って行番号（ライン番号）に基づいて決定される特定の画素行の画像データが記憶されることになる。
【００４１】
例えば、図５に示されるように、記憶部３７０が、「０」〜「１５」までの１６個の区分記憶領域を有している場合を想定する。そして、入力画像ＩＧ中の各画素行において、最上部の行を行番号「０」とし、当該最上部の行から下に行くに従って１ずつ行番号を増やす手法で各画素行が番号付けされるものとする。この場合、記憶部３７０では、或る画素行の画像データは、当該画素行の行番号を、区分記憶領域の数「１６」で割ったときの余りによって示される区分記憶領域に記憶される。
【００４２】
より詳細には、「０」の区分記憶領域には、行番号を区分記憶領域の数「１６」で割ったときの余りが「０」になる行番号を有する画素行の画像データ（例えば、０行目の画像データ、１６行目の画像データ等）が記憶されることになる。また、「１」の区分記憶領域には、行番号を区分記憶領域の数「１６」で割ったときの余りが「１」になる行番号を有する画素行の画像データ（例えば、１行目の画像データ、１７行目の画像データ等）が記憶されることになる。また、「１５」の区分記憶領域には、行番号を区分記憶領域の数「１６」で割ったときの余りが「１５」になる行番号を有する画素行の画像データ（例えば、１５行目の画像データ、３１行目の画像データ等）が記憶されることになる。
【００４３】
このように、記憶部３７０では、入力画像ＩＧに含まれる各画素行の画像データの保存先が、画素行に基づいて決定される。
【００４４】
キャッシュメモリ３７の構成説明（図４参照）に戻って、記憶内容管理部３７１は、記憶部３７０に記憶されている画像データの記憶内容を管理する機能を有している。具体的には、記憶内容管理部３７１は、ＳＲＡＭ等の管理用メモリを有している。当該管理用メモリは、記憶部３７０の各区分記憶領域に現在記憶されている画像データそれぞれが、入力画像ＩＧ中のどの位置の画像データであるかを示す情報（「記憶内容情報」または単に「記憶内容」とも称する）を保持している。
【００４５】
管理用メモリにおける、記憶内容の管理態様としては、例えば、図６に示される態様を例示することができる。
【００４６】
具体的には、図６に示される管理用メモリでは、アドレス「０」〜「１５」までの記憶領域が確保される。そして、アドレス「０」〜「１５」までの各記憶領域には、記憶部３７０の「０」〜「１５」までの各区分記憶領域に記憶されている画像データのライン番号、先頭アドレス、およびバースト長（詳細には、連続して転送したビット長所定量のデータを先頭アドレスから連続して転送する回数）が、記憶内容としてそれぞれ記憶されている。
【００４７】
例えば、管理用メモリにおけるアドレス「０」の記憶領域には、記憶部３７０の「０」の区分記憶領域の記憶内容が記憶されている。また、管理用メモリにおけるアドレス「１」の記憶領域には、記憶部３７０の「１」の区分記憶領域の記憶内容が記憶されている。また、管理用メモリにおけるアドレス「１５」の記憶領域には、記憶部３７０の「１５」の区分記憶領域の記憶内容が記憶されている。
【００４８】
このように、記憶内容管理部３７１の管理用メモリでは、記憶部３７０の各区分記憶領域の記憶内容が、区分記憶領域ごとに分けて管理されることになる。
【００４９】
キャッシュメモリ３７の構成説明（図４参照）に戻って、データ取得制御部３７２は、歪み補正部３０から画像データの転送要求が入力されると、記憶内容管理部３７１内のＳＲＡＭに保持されている記憶情報を参照して、当該転送要求に対応した画像データが記憶部３７０に記憶されているか否かを判定する。このように、データ取得制御部３７２は、転送要求に対応した画像データが記憶部３７０に記憶されているか否かを判定する判定手段として機能する。
【００５０】
そして、歪み補正部３０からの転送要求に対応した画像データが記憶部３７０に記憶されていない場合、データ取得制御部３７２は、未記憶データを読み出すための読出要求をＤＭＡＣ３６に対して出力する。このように、データ取得制御部３７２は、未記憶データの読み出しを制御する読出制御手段としても機能する。
【００５１】
なお、当該読出要求は、読出領域に含まれる画像データを読み出すための転送要求を拡張したものであり、当該読出要求によれば、読出領域を超えて画像データが読み出されることになる。詳細は、後述する。
【００５２】
一方、歪み補正部３０からの転送要求に対応した画像データが記憶部３７０に記憶されている場合は、データ取得制御部３７２は、読出要求をＤＭＡＣ３６に対して出力しない。
【００５３】
記憶制御部３７３は、画像データ記憶部２２から読み出された画像データを記憶部３７０に記憶する際の格納先のアドレス（「キャッシュアドレス」とも称する）を画素行ごとに決定して、当該キャッシュアドレスを記憶部３７０に出力する。記憶部３７０は、画像データ記憶部２２から読み出された画像データを、キャッシュアドレスで特定される記憶部３７０内の各区分記憶領域に画素行ごとに格納する。
【００５４】
出力制御部３７４は、画像データの転送要求に応じた画像データを、記憶部３７０から出力する出力制御を行う。
【００５５】
［１−３．キャッシュメモリの動作］
次に、キャッシュメモリ３７の動作について詳述する。図７は、キャッシュメモリ３７の動作を示すフローチャートである。図８は、歪み補正部からの転送要求に応じて、入力画像における読出領域から画像データを読み出す様子を示す図である。
【００５６】
図７に示されるように、ステップＳＰ１では、キャッシュメモリ３７は、歪み補正部３０から読出領域に含まれる画像データを読み出すための転送要求を歪み補正部３０から取得する。当該転送要求は、読出領域に含まれる画素の行ごとに読出開始位置の情報と読出終了位置の情報とを含んでいる。
【００５７】
ここで、図８に示されるような、入力画像ＩＧにおいて、連続して並ぶ４つの対応ブロックＴＢ１１〜ＴＢ１４を囲む領域ＲＮを読出領域とした転送要求が、歪み補正部３０からキャッシュメモリ３７に順次に入力される場合を想定する。すなわち、最初の転送要求では、破線ＨＬ１に囲まれた読出領域ＲＮ１１に関する転送要求がキャッシュメモリ３７に入力され、次の転送要求では、破線ＨＬ２に囲まれた読出領域ＲＮ１２に関する転送要求がキャッシュメモリ３７に入力されるものとする。
【００５８】
この場合、各転送要求には、各読出領域ＲＮにおける各画素行の情報と、画素行ごとの読出開始位置の情報および読出終了位置の情報とが含まれている。ここでいう、画素行の情報は、画素行の行番号であり、読出開始位置の情報および読出終了位置の情報はそれぞれ、読出開始アドレスおよび読出終了アドレスである。
【００５９】
ステップＳＰ２では、データ取得制御部３７２によって、転送要求に対応する画像データがキャッシュメモリ３７内の記憶部３７０に存在するか否かが、転送要求に含まれる画素行ごとに判定される。当該判定は、転送要求に含まれる画素行の行番号、画素行ごとの読出開始アドレス、および画素行ごとの読出終了アドレスと、管理用メモリに記憶されている各区分記憶領域の記憶内容とを比較することによって行われる。
【００６０】
当該判定により、転送要求の対象となっている画素行の画像データがキャッシュメモリ３７内の記憶部３７０に存在すると判定された場合、動作工程は、ステップＳＰ３を飛ばしてステップＳＰ４に移行される。
【００６１】
一方、上記判定により、転送要求の対象となっている画素行の画像データがキャッシュメモリ３７内の記憶部３７０に存在しないと判定された場合、動作工程は、ステップＳＰ３に移行される。
【００６２】
ステップＳＰ３では、データ取得制御部３７２の制御に基づいて、転送要求の対象となっている画素行における未記憶データを、画像データ記憶部２２から取得するための読出処理が実行される。
【００６３】
当該読出処理では、未記憶データを構成する各画素の画素データのうち、左端の画素の画素データから、一定の行方向（ここでは右方向）に沿って、各画素の画素データが順次に読み出される。
【００６４】
また、一度の読出処理で読み出される画像データのデータ量（読出データ量）は、読出領域の行方向の最大幅よりも長い画素行の画像データを読み出すことが可能なように設定される。読出データ量は、所定量のデータを連続して転送する回数（バースト長）に依存し、具体的な読出データ量としては、例えば、１２８ビット×１６バースト長を採用することができる。
【００６５】
このように、一度の読出処理で読み出される画像データの読出データ量を、読出領域の行方向の最大幅よりも長い画素行の画像データを読み出すことが可能な量とすれば、一度の読出処理で、読出領域の行方向の最大幅を超えて、画像データを読み出すことになる。
【００６６】
上記のような読出処理によって読み出された画像データは、キャッシュメモリ３７内の記憶部３７０に格納される。
【００６７】
そして、次のステップＳＰ４では、出力制御部３７４によって転送要求に対応する画像データがキャッシュメモリ３７内の記憶部３７０から読み出されて、歪み補正部３０に転送される。
【００６８】
ステップＳＰ５では、転送要求の対象となっている全ての画素行の画像データの転送が完了したか否かが判定される。
【００６９】
ステップＳＰ５において、転送対象の全ての画素行の画像データの転送が完了したと判定された場合、転送要求に応じたキャッシュメモリ３７の動作は終了される。一方、転送対象の全ての画素行の画像データの転送が完了していないと判定された場合、動作工程は、ステップＳＰ２に移行される。そして、転送対象の全ての画素行について画像データの転送が完了するまで、ステップＳＰ２〜ステップＳＰ５の各工程が繰り返し実行される。
【００７０】
このように、キャッシュメモリ３７では、ステップＳＰ１〜ステップＳＰ５の各工程が実行され、歪み補正部３０へのデータ転送が行われる。
【００７１】
ここで、ステップＳＰ３の読出処理で読み出される読出範囲について詳述する。図９は、歪み補正部３０からの転送要求に応じて、入力画像ＩＧにおける読出領域ＲＮ１１から画像データを読み出す様子を示す図である。図１０は、歪み補正部３０からの転送要求に応じて、入力画像ＩＧにおける読出領域ＲＮ１２から画像データを読み出す様子を示す図である。図１１は、歪み補正部３０からの転送要求に応じて、入力画像ＩＧにおける読出領域ＲＮ１１，ＲＮ１２から画像データを読み出す様子を示す図である。図１２および図１３は、記憶部３７０内の画像データの記憶態様を示す図である。
【００７２】
例えば、キャッシュメモリ３７の動作開始後、最初の転送要求として、図９に示されるような読出領域ＲＮ１１に関する転送要求が入力された場合、記憶部３７０には、画像データが存在しないため、読出領域ＲＮ１１に含まれる全ての画素行についてステップＳＰ３の読出処理が実行されることになる。そして、この読出処理では、読出領域ＲＮ１１を拡張した領域ＲＬ１１（砂地ハッチングで示される領域）に含まれる各画素の画素データが読み出される。
【００７３】
さらに、次の転送要求として、図１０に示されるような読出領域ＲＮ１２に関する転送要求が入力された場合、ステップＳＰ３の読出処理では、読出領域ＲＮ１２に含まれる画素行のうち、記憶部３７０に記憶されていない画素行の画像データが読み出されることになる。すなわち、この読出処理では、領域ＲＬ１２に含まれる各画素の画素データが読み出される。
【００７４】
このように、読出処理では、読出領域に含まれる各画素行の画像データが、画素行ごとに一定の行方向に沿って、読出領域を超えた位置まで順次に読み出される。
【００７５】
そして、当該読出処理によって読み出された画像データは、画素行ごとに記憶部３７０内の異なる区分記憶領域に格納されることになるが、記憶部３７０での画像データの格納先は、記憶制御部３７３によって各画素行の行番号に基づいて決定される。
【００７６】
具体的には、図５に示されるように、記憶部３７０が、「０」〜「１５」までの１６個の区分記憶領域を有している場合、記憶制御部３７３は、読出処理によって読み出された或る画素行の画像データの格納先を、区分記憶領域の数「１６」で当該画素行の行番号を割ったときの余りによって表される区分記憶領域に決定する。
【００７７】
例えば、読出領域ＲＮ１１に含まれる各画素行の行番号が、図１１に示されるような行番号であった場合、読出領域ＲＮ１１に関する最初の転送要求に応じた読出処理で取得された画像データは、図１２に示されるような態様で、記憶部３７０内の各区分記憶領域に記憶されることになる。詳細には、読出領域ＲＮ１１に含まれる各画素行の行番号は、「１０」〜「２１」であることから、行番号「１０」〜「２１」までの各画素行の画像データはそれぞれ、記憶部３７０内の「１０」〜「１５」、「０」〜「５」の各区分記憶領域に記憶されることになる（図１２参照）。
【００７８】
そして、読出領域ＲＮ１２に関する次の転送要求に応じた読出処理では、領域ＲＬ１２に含まれる行番号「４」〜「９」の各画素行の画像データが読み出されて、当該各画素行の画像データはそれぞれ、記憶部３７０内の「４」〜「９」の各区分記憶領域に記憶されることになる（図１３参照）。このとき、「４」の区分記憶領域には、最初の転送要求に応じた読出処理で読み出された行番号「２０」の画像データが記憶されているが、当該画像データは消去され、行番号「４」の画像データが上書きして記憶される。同様に「５」の区分記憶領域には、最初の転送要求に応じた読出処理で読み出された行番号「２１」の画像データが記憶されているが、当該画像データは消去され、行番号「５」の画像データが上書きして記憶される。
【００７９】
図１１に示されるように、２回目の転送要求後に実行される歪み補正処理では、読出領域ＲＮ１２に含まれる画像データを用いて歪み補正処理が実行されるため、消去された行番号「２０」、「２１」の画像データは、歪み補正処理に利用されない不要なデータとなっている。このため、行番号「２０」、「２１」の画像データを記憶している区分記憶領域に、行番号「４」、「５」の新しい画像データを上書きして記憶することができる。
【００８０】
歪み補正処理では、各読出領域が、入力画像ＩＧの歪みに応じて行方向に垂直な方向（画像の上方向或いは下方向）に徐々にずらして設定されるため、歪み補正処理が進展すると、記憶部３７０内には不要な画像データを記憶する区分記憶領域が生まれることになる。したがって、行番号に基づいて各画素行の画像データの格納先を決定することによれば、不要な画像データを記憶する区分記憶領域に、新たな画素行の画像データを上書きして記憶していくことが可能になり、歪み補正処理に必要な画像データを消去してしまう可能性を低減することができる。
【００８１】
これに対して、メモリアドレスから一意にキャッシュアドレスを決定するダイレクトマップ方式でキャッシュアドレスを決定して、読出領域に含まれる各画素行の画像データを記憶部３７０に記憶した場合、同一の読出領域に含まれる画像データ同士で、格納先が重なる可能性がある。格納先が重なると、同一の読出領域に含まれる必要な画像データが消去されることになり、再度、消去された当該必要な画像データを読み出すことになる。
【００８２】
なお、或る画素行における画像データの格納先を、区分記憶領域の数「１６」で当該画素行の行番号を割ったときの余りによって表される区分記憶領域とする上記決定手法は、或る画素行の行番号を２進数で表現した値の下位４ビットで表される区分記憶領域を当該画素行の格納先とする決定手法とも表現することができる。
【００８３】
また、記憶部３７０内に設けられる区分記憶領域の数は、読出領域の垂直方向の幅、すなわち読出領域に含まれる画素行の数に応じて自由に変更可能であるが、画像データの格納先を決定する際の演算を容易にするには、区分記憶領域の数を２のべき乗個にすることが好ましい。
【００８４】
ここでさらに、ステップＳＰ３の読出処理で読み出される読出範囲の他の態様について詳述する。図１４は、読出処理で読み出される読出範囲の他の態様を示す図である。
【００８５】
具体的には、図１４に示されるように、キャッシュメモリ３７の動作開始後、読出領域ＲＮ１１に関する最初の転送要求に応じた読出処理によって、領域ＲＬ２１に含まれる各画素行の画像データが読み出された場合を想定する。
【００８６】
この場合、読出領域ＲＮ１２に関する次の転送要求に応じた読出処理では、領域ＲＬ２２に含まれる各画素行の画像データに加えて、領域ＲＬ２３に含まれる各画素行の画像データが読み出されることになる。
【００８７】
このとき、領域ＲＬ２３の画像データは、最初の転送要求に応じた読出処理の際に読み出された、破線ＨＬ３で囲まれる画像データを記憶する各区分記憶領域に記憶されることになるが、当該各区分記憶領域は、破線ＨＬ３の画像データをも保持しつつ、領域ＲＬ２３の画像データをさらに記憶することになる。読出領域ＲＮ１２の画像データを歪み補正部３０に転送するためには、破線ＨＬ３の画像データが必要となるからである。
【００８８】
このように、読出処理によって同一画素行の画像データが読み出された場合、記憶制御部３７３は、既に記憶されている画像データを消去しないように、新たに読み出された画像データの格納先を決定する。
【００８９】
なお、新たに読み出された画像データを記憶する際には、歪み補正部３０からの転送要求に応じた画像データを歪み補正部３０に転送可能な範囲で、既に記憶されている画像データの一部を消去するようにしてもよい。
【００９０】
以上のように、データ転送装置（画像処理装置１）は、入力画像ＩＧの画像データを記憶した画像データ記憶部２２（記憶手段）よりも、データの書き込みおよび読み出しを高速に行うキャッシュメモリ３７と、入力画像ＩＧ内の或る領域の画像データの転送要求を、キャッシュメモリ３７に対して出力するデータ転送要求手段３０とを備えている。そして、キャッシュメモリ３７は、転送要求に対応した読出領域に含まれる画素行の画像データが、キャッシュメモリ３７内の記憶部に記憶されているか否かを画素行ごとに判断し、記憶部に記憶されていない未記憶の画像データを画素行ごとに当該読出領域を超えて画像データ記憶部２２から読み出させるデータ取得制御部３７２と、データ取得制御部３７２によって読み出された画素行ごとの未記憶の画像データを、画素行ごとに格納先を替えてキャッシュメモリ３７内の記憶部に記憶させる記憶制御部３７３と、転送要求に対応した読出領域の画像データをキャッシュメモリ３７内の記憶部から読み出して、データ転送要求手段３０に出力する出力制御部３７４とを有している。また、データ転送要求手段３０は、入力画像ＩＧの水平方向に並んだ複数の読出領域それぞれの画像データの転送要求を、水平方向の並び順に順次に行う。
【００９１】
このように、データ転送装置では、転送要求に対応した読出領域に含まれる画素行の画像データが、キャッシュメモリ３７内の記憶部に記憶されていない場合、未記憶の画像データが画素行ごとに当該読出領域を超えて画像データ記憶部２２から読み出される。そして、画像データの転送要求は、入力画像ＩＧの水平方向に並んだ複数の読出領域それぞれについて、水平方向の並び順に順次に行われる。したがって、データ転送装置は、転送要求に対応した画像データを先に読み出して、データの書き込みおよび読み出しを高速に行うキャッシュメモリ３７内の記憶部に格納しておくことになるので、転送要求に応じた画像データの転送速度を早めることが可能になり、ひいては、画像データの取得に要する時間を短縮することができる。
【００９２】
また、データ転送装置のデータ取得制御部３７２は、画像データ記憶部２２から未記憶の画像データを読み出す場合、画素行ごとに一定の行方向に沿って読出領域を超えた位置まで順次に読み出させる。これによれば、画像データ記憶部２２からのデータ読み出しに際して、行方向に長くアクセスすることが可能になり、メモリの転送効率を高めることができる。
【００９３】
＜２．変形例＞
以上、実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【００９４】
例えば、キャッシュメモリ３７内の記憶部３７０は、１つのＳＲＡＭを用いて構成してもよく、２つのＳＲＡＭを用いて構成してもよい。図１５および図１６は、記憶部３７０を２つのＳＲＡＭ１０１，１０２を用いて構成した場合の画像データの記憶態様を示す図である。
【００９５】
図１５に示されるように、記憶部３７０を２つのＳＲＡＭ１０１，１０２を用いてダブルバッファ構成とした場合、２つのＳＲＡＭ１０１，１０２のうちの一方のＳＲＡＭには画像データの書き込みを行いつつ、他方のＳＲＡＭからは画像データの読み出しを行うことができる。
【００９６】
例えば、図１５に示されるように、画像データ記憶部２２から読み出した画像データを、画素行ごとに交互に２つのＳＲＡＭ１０１，１０２に記憶するようにすれば、一方のＳＲＡＭに画像データの書き込みを行っている間に、他方のＳＲＡＭから画像データの読み出しを行うことが可能になる。
【００９７】
このような画素行ごとの交互記憶は、読み出された画像データの記憶部３７０における格納先のキャッシュアドレスを決定する記憶制御部３７３によって実現される。
【００９８】
具体的には、図１５において、画像幅２０００バイトの画像データから８行分の画像データを画素行ごとに２５６バイトずつ読み出す場合を想定する。また、図１５の画像データを記憶する画像データ記憶部２２は、１メモリアドレスあたり１バイトの画像データを記憶し、ＳＲＡＭのエントリＥＮは、１つにつき１６バイトのデータを記憶可能であるとする。このとき、記憶制御部３７３は、読み出された画素行の行番号を２進数で表現した値の下位４ビットを、キャッシュアドレスの上位４ビットとし、メモリアドレスの下位４ビットを削って得られる値の下位５ビットを、キャッシュアドレスの下位５ビットとして用いて、当該画素行の画像データを格納するキャッシュアドレスを決定する。
【００９９】
このように、記憶部３７０を物理的に異なる２つのＳＲＡＭ１０１，１０２を用いて構成した場合、記憶制御部３７３は、データ取得制御部３７２によって読み出された画素行ごとの未記憶の画像データを、２つのＳＲＡＭ１０１，１０２のいずれか一方に画素行ごとに交互に記憶させる。これによれば、一方のＳＲＡＭに画像データの書き込みを行っている間に、他方のＳＲＡＭから画像データの読み出しを行うことが可能になるので、画像データの転送速度が速くなる。
【０１００】
また、図１６に示されるように、画像データ記憶部２２から読み出した画像データを、２つのＳＲＡＭ１０１，１０２のいずれか一方に所定のデータ量ずつ交互に記憶させるようにしてもよい。図１６では、１つのエントリＥＮずつ、すなわち１６バイトずつ交互に記憶させる態様が例示されている。
【０１０１】
これによれば、所定のデータ量単位で、画像データの書き込みと読み出しとを並行して行うことが可能になるので、画像データの転送速度がさらに速くなる。
【０１０２】
なお、図１６の態様で２つのＳＲＡＭ１０１，１０２に画像データの記憶を行う場合、キャッシュアドレスの決定手法としては、上記図１５の態様と同様の手法を採用することができる。２つのＳＲＡＭ１０１，１０２のうち、どちらのＳＲＡＭに記憶するかについては、決定されたキャッシュアドレスの下位１ビットを用いて判断すればよい。例えば、下位１ビットが「０」の場合は、ＳＲＡＭ１０１に記憶し、下位１ビットが「１」の場合は、ＳＲＡＭ１０２に記憶する。
【０１０３】
また、図１５の態様では、複数の区分記憶領域は、２つのＳＲＡＭ１０１，１０２のいずれか一方において、区分記憶領域の番号ごとに交互に設定されることになる。一方、図１６の態様では、各区分記憶領域は、２つのＳＲＡＭ１０１，１０２にまたがって設定されることになる。
【０１０４】
また、上記実施形態では、データ転送装置としての画像処理装置１に、画像データ記憶部２２が含まれる態様を例示していたが、これに限定されない。すなわち、画像データ記憶部２２が、画像処理装置１の外部に設けられ、画像処理装置１は、外部の画像データ記憶部２２から画像データを取得する態様であってもよい。
【符号の説明】
【０１０５】
１  画像処理装置（データ転送装置）
２  第１処理回路
３  第２処理回路
２２  画像データ記憶部
３０  歪み補正部（データ転送要求手段）
３７  キャッシュメモリ
３７０  記憶部
３７１  記憶内容管理部
３７２  データ取得制御部（読出制御手段）
３７３  記憶制御部
３７４  出力制御部
ＢＫ  ブロック、矩形領域
ＢＲ，ＢＲ１，ＢＲ２  実行対象ブロック
ＩＧ  入力画像
ＵＧ  出力画像
ＲＮ，ＲＮ１，ＲＮ１０，ＲＮ１１，ＲＮ１２  読出領域
【図１】
0006012207.tif 000002
【図２】
0006012207.tif 000003
【図３】
0006012207.tif 000004
【図４】
0006012207.tif 000005
【図５】
0006012207.tif 000006
【図６】
0006012207.tif 000007
【図７】
0006012207.tif 000008
【図８】
0006012207.tif 000009
【図９】
0006012207.tif 000010
【図１０】
0006012207.tif 000011
【図１１】
0006012207.tif 000012
【図１２】
0006012207.tif 000013
【図１３】
0006012207.tif 000014
【図１４】
0006012207.tif 000015
【図１５】
0006012207.tif 000016
【図１６】
0006012207.tif 000017