(57)【特許請求の範囲】
【請求項１】
複数行複数列の画素の配列を表す画像データを記憶可能な複数のメモリバンクを有するメモリを用いて、当該画像データを複数種類の画像処理のいずれかを実行する画像処理装置に供給するために行うメモリ制御方法であって、
入力された前記画像データの第１の行を決められた分割単位で分割してなる複数列の分割画像データの各々を、連続する分割画像データが前記メモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込む第１のステップと、
前記入力された画像データの前記第１の行と隣り合う第２の行を前記分割単位で分割してなる複数列の分割画像データの各々を、前記第１の行において同列に相当する分割画像データが記憶されたメモリバンクと異なるメモリバンクに記憶され、かつ、連続する分割画像データが互いに異なるメモリバンクにそれぞれ記憶されるように書き込む第２のステップと、
前記第１および第２のステップにおいて前記メモリに書き込まれた分割画像データを、前記複数の画像処理のうちの前記画像処理装置が実行する画像処理に応じた順序で読み出して供給するステップであって、前記第１の行において行方向に連続する複数の前記分割画像データのうちの前記画像処理装置が実行する画像処理に応じたものを読み出した後に、当該読み出した前記第１の行の前記分割画像データと同列に相当する前記第２の行の前記分割画像データを読み出す第３のステップと
を有することを特徴とするメモリ制御方法。
【請求項２】
複数行複数列の画素の配列を表す画像データを記憶可能な複数のメモリバンクを有するメモリを介して、当該画像データを複数種類の画像処理のいずれかを実行する画像処理装置に供給するためのメモリ制御装置であって、
前記メモリに前記画像データを書き込む書込手段と、
前記書込手段により前記メモリに書き込まれた画像データを、前記複数の画像処理のうちの前記画像処理装置が実行する画像処理に応じた順序で読み出す読出手段と、
前記読出手段により前記メモリから読み出された画像データを供給する供給手段とを備え、
前記書込手段は、
入力された前記画像データの第１の行を決められた分割単位で分割してなる複数列の分割画像データの各々を、連続する分割画像データが前記メモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込むとともに、当該画像データの前記第１の行と隣り合う第２の行を前記分割単位で分割してなる複数列の分割画像データの各々を、前記第１の行において同列に相当する分割画像データが記憶されたメモリバンクと異なるメモリバンクに記憶され、かつ、連続する分割画像データが互いに異なるメモリバンクにそれぞれ記憶されるように書き込み、
前記読出手段は、
前記第１の行において行方向に連続する複数の前記分割画像データのうちの前記画像処理装置が実行する画像処理に応じたものを読み出した後に、当該読み出した前記第１の行の前記分割画像データと同列に相当する前記第２の行の前記分割画像データを読み出す
ことを特徴とするメモリ制御装置。
【請求項３】
複数行複数列の画素の配列を表す画像データを記憶可能な複数のメモリバンクを有する第１のメモリと、
前記第１のメモリに記憶された画像データを記憶可能な第２のメモリと、
前記第２のメモリに記憶された画像データに複数種類の画像処理のいずれかを行う画像処理手段と、
前記第１のメモリに画像データを書き込む第１の書込手段と、
前記第１の書込手段により前記第１のメモリに書き込まれた画像データを、前記複数の画像処理のうちの実行する画像処理に応じた順序で読み出す第１の読出手段と、
前記第１の読出手段により前記第１のメモリから読み出された画像データを前記第２のメモリに書き込む第２の書込手段と、
前記第２の書込手段により前記第２のメモリに書き込まれた画像データを供給する第２の読出手段とを備え、
前記第１の書込手段は、
入力された前記画像データの第１の行を決められた分割単位で分割してなる複数列の分割画像データの各々を、連続する分割画像データが前記第１のメモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込むとともに、当該画像データの前記第１の行と隣り合う第２の行を前記分割単位で分割してなる複数列の分割画像データの各々を、前記第１の行において同列に相当する分割画像データが記憶されたメモリバンクと異なるメモリバンクに記憶され、かつ、連続する分割画像データが前記第１のメモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込み、
前記第１の読出手段は、
前記第１の行において行方向に連続する複数の前記分割画像データのうちの実行する画像処理に応じたものを読み出した後に、当該読み出した前記第１の行の前記分割画像データと同列に相当する前記第２の行の前記分割画像データを読み出す
ことを特徴とする画像処理装置。
【請求項４】
前記第１のメモリは４以上のメモリバンクを有するメモリであって、
前記第１の書込手段は、前記第１の行の分割画像データを書き込むメモリバンクと前記第２の行の分割画像データを書き込むメモリバンクとを互いに異ならせる
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第１のメモリは前記第２のメモリよりも多くのデータを記憶可能であり、
前記第２のメモリは前記第１のメモリよりも高速にデータの書き込みおよび読み出しが可能である
ことを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記第１のメモリがＤＲＡＭであることを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記分割単位が前記第１のメモリのバースト長に相当することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第２のメモリがＳＲＡＭであることを特徴とする請求項３に記載の画像処理装置。
【請求項９】
コンピュータが、複数行複数列の画素の配列を表す画像データを記憶可能な複数のメモリバンクを有するメモリを用いて、当該画像データを複数種類の画像処理のいずれかを実行する画像処理装置に供給するためのプログラムであって、
前記コンピュータに、
入力された前記画像データの第１の行を決められた分割単位で分割してなる複数列の分割画像データの各々を、連続する分割画像データが前記メモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込む第１の機能と、
前記入力された画像データの前記第１の行と隣り合う第２の行を前記分割単位で分割してなる複数列の分割画像データの各々を、前記第１の行において同列に相当する分割画像データが記憶されたメモリバンクと異なるメモリバンクに記憶され、かつ、連続する分割画像データが互いに異なるメモリバンクにそれぞれ記憶されるように書き込む第２の機能と、
前記第１および第２の機能により前記メモリに書き込まれた分割画像データを、前記複数の画像処理のうちの前記画像処理装置が実行する画像処理に応じた順序で読み出して供給する機能であって、前記第１の行において行方向に連続する複数の前記分割画像データのうちの前記画像処理装置が実行する画像処理に応じたものを読み出した後に、当該読み出した前記第１の行の前記分割画像データと同列に相当する前記第２の行の前記分割画像データを読み出す第３のステップと
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、小容量のメモリで高速に画像処理を行うための技術に関する。
【背景技術】
【０００２】
画像処理には、例えばフィルタ処理やブロック処理のように、複数行複数列の画素からなるブロックに対して処理を行うものがある。このような画像処理を行う画像処理装置は、画像データを行（ライン）方向について記憶するラインメモリを備える構成が一般的である。例えば、５×５画素のブロック単位で画像処理を行う画像処理装置であれば、４個のラインメモリで画像データの４ライン分のデータを保持すれば十分である。このような画像処理装置に画像データを転送する際には、ＤＲＡＭ（Dynamic Random Access Memory）がよく用いられる。これは、ＤＲＡＭはアドレスが連続するデータを高速に転送することができるため、ラインメモリへのデータ転送に適しているからである。しかも、ＤＲＡＭはＳＲＡＭ（Static Random Access Memory）等よりも安価で構造も比較的簡素であるため、回路規模やコストという観点からも有利であると言える。
【特許文献１】特開平１０−１６２１３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上述の画像処理装置においては、各ラインメモリは必ずしも画像データのライン全体を保持する必要はない。例えば、上述した例であれば、各ラインメモリは５画素分のデータを保持できれば十分である。しかしながら、ＤＲＡＭは複数ラインに渡る小容量のデータの読み出しには適していないため、従来は処理対象のブロック以外の画像データについてもまとめて読み出し、これをラインメモリに保持させる構成が一般的であった。そのため、ラインメモリのメモリ容量を大きくせざるを得ず、画像処理装置が複雑かつ高価になってしまうという不都合があった。かといって、単にラインメモリを削減し、ＤＲＡＭからは必要な画像データのみを読み出したのでは、読み出し動作がボトルネックとなって処理速度が低下してしまうという不都合があった。
【０００４】
このような不都合を解消するためには、特許文献１に記載の技術を適用することもある程度は有効である。しかし、特許文献１に記載の技術は水平方向（行方向）の連続アクセスと特定の矩形領域の連続アクセスを高速に行うことのみが可能であるために汎用性が低く、種々多様な画像処理に適用することは困難である。
【０００５】
本発明はかかる事情に鑑みてなされたものであり、その目的は、ラインメモリを用いる種々の画像処理装置において、少ないメモリ容量で高速な処理を可能にするための技術を提供することにある。
【課題を解決するための手段】
【０００６】
上述の目的を達成するために、本発明は、複数行複数列の画素の配列を表す画像データを記憶可能な複数のメモリバンクを有するメモリを介して、当該画像データを複数種類の画像処理のいずれかを実行する画像処理装置に供給するためのメモリ制御装置であって、前記メモリに前記画像データを書き込む書込手段と、前記書込手段により前記メモリに書き込まれた画像データを、前記複数の画像処理のうちの前記画像処理装置が実行する画像処理に応じた順序で読み出す読出手段と、前記読出手段により前記メモリから読み出された画像データを供給する供給手段とを備え、前記書込手段は、入力された前記画像データの第１の行を決められた分割単位で分割してなる複数列の分割画像データの各々を、連続する分割画像データが前記メモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込むとともに、当該画像データの前記第１の行と隣り合う第２の行を前記分割単位で分割してなる複数列の分割画像データの各々を、前記第１の行において同列に相当する分割画像データが記憶されたメモリバンクと異なるメモリバンクに記憶され、かつ、連続する分割画像データが互いに異なるメモリバンクにそれぞれ記憶されるように書き込み、前記読出手段は、前記第１の行において行方向に連続する複数の前記分割画像データのうちの前記画像処理装置が実行する画像処理に応じたものを読み出した後に、当該読み出した前記第１の行の前記分割画像データと同列に相当する前記第２の行の前記分割画像データを読み出すメモリ制御装置を提供する。
【０００７】
また、本発明は、複数行複数列の画素の配列を表す画像データを記憶可能な複数のメモリバンクを有する第１のメモリと、前記第１のメモリに記憶された画像データを記憶可能な第２のメモリと、前記第２のメモリに記憶された画像データに複数種類の画像処理のいずれかを行う画像処理手段と、前記第１のメモリに画像データを書き込む第１の書込手段と、前記第１の書込手段により前記第１のメモリに書き込まれた画像データを、前記複数の画像処理のうちの実行する画像処理に応じた順序で読み出す第１の読出手段と、前記第１の読出手段により前記第１のメモリから読み出された画像データを前記第２のメモリに書き込む第２の書込手段と、前記第２の書込手段により前記第２のメモリに書き込まれた画像データを供給する第２の読出手段とを備え、前記第１の書込手段は、入力された前記画像データの第１の行を決められた分割単位で分割してなる複数列の分割画像データの各々を、連続する分割画像データが前記第１のメモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込むとともに、当該画像データの前記第１の行と隣り合う第２の行を前記分割単位で分割してなる複数列の分割画像データの各々を、前記第１の行において同列に相当する分割画像データが記憶されたメモリバンクと異なるメモリバンクに記憶され、かつ、連続する分割画像データが前記第１のメモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込み、前記第１の読出手段は、前記第１の行において行方向に連続する複数の前記分割画像データのうちの実行する画像処理に応じたものを読み出した後に、当該読み出した前記第１の行の前記分割画像データと同列に相当する前記第２の行の前記分割画像データを読み出す画像処理装置を提供する。
なお、この画像処理装置において、前記第１のメモリは前記第２のメモリよりも多くのデータを記憶可能であり、前記第２のメモリは前記第１のメモリよりも高速にデータの書き込みおよび読み出しが可能である構成であることが望ましい。さらに、前記第１のメモリがＤＲＡＭであり、前記第２のメモリがＳＲＡＭであることが望ましい。
【０００８】
このようなメモリ制御装置や画像処理装置によれば、行方向および列方向に連続的に読み出される分割画像データが、互いに異なるメモリバンクに記憶される。そのため、行方向および列方向のいずれについても効率的に画像データの読み出しが可能となり、いわゆる「横読み（行方向の連続読み出し）」と「縦読み（列方向の連続読み出し）」の双方を高速に行うことができる。また、このメモリ制御装置や画像処理装置は、画像処理を実行するブロックの単位が特に限定されないので、実行する画像処理が異なるさまざまな画像処理装置に対して適用可能である。
なお、上述のメモリ制御装置および画像処理装置においては、前記画像データにおいて行方向または列方向に連続する前記分割画像データを連続的に読み出す、とあるが、行方向または列方向に連続する分割画像データの全てを１回で読み出すとは限らず、例えば、第１の行の行方向に連続する２つの分割画像データを連続的に読み出し、その後、第２の行の行方向に連続する２つの分割画像データを連続的に読み出す、といった動作であってもよい。
【０００９】
さらに、本発明は、メモリ制御装置が画像処理装置に画像データを供給するためのメモリ制御方法や、この方法を実現するためのプログラムとしても提供され得るものである。すなわち、本発明は、メモリ制御装置が、複数行複数列の画素の配列を表す画像データを記憶可能な複数のメモリバンクを有するメモリを用いて、当該画像データを複数種類の画像処理のいずれかを実行する画像処理装置に供給するために行うメモリ制御方法であって、入力された前記画像データの第１の行を決められた分割単位で分割してなる複数列の分割画像データの各々を、連続する分割画像データが前記メモリの互いに異なるメモリバンクにそれぞれ記憶されるように書き込む第１のステップと、前記入力された画像データの前記第１の行と隣り合う第２の行を前記分割単位で分割してなる複数列の分割画像データの各々を、前記第１の行において同列に相当する分割画像データが記憶されたメモリバンクと異なるメモリバンクに記憶され、かつ、連続する分割画像データが互いに異なるメモリバンクにそれぞれ記憶されるように書き込む第２のステップと、前記第１および第２のステップにおいて前記メモリに書き込まれた分割画像データを、前記複数の画像処理のうちの前記画像処理装置が実行する画像処理に応じた順序で読み出して供給するステップであって、前記第１の行において行方向に連続する複数の前記分割画像データのうちの前記画像処理装置が実行する画像処理に応じたものを読み出した後に、当該読み出した前記第１の行の前記分割画像データと同列に相当する前記第２の行の前記分割画像データを読み出す第３のステップとを有するメモリ制御方法や、この方法を実現するためのプログラムとしても特定され得るものである。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下に示す実施形態においては、「画像データ」は点順次形式で入力される１画素当たり３２ビットのデータであるとする。この画像データは、上位８ビットは画像処理装置が行う画像処理とは無関係なダミーデータ等のデータ（以下「０データ」という。）であり、残りの２４ビットは、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色についての８ビットの色成分（以下、それぞれ「Ｒデータ」、「Ｇデータ」および「Ｂデータ」という。）であるとする。また、以下に示す実施形態においては、１ワードは１６ビットであるとする。
【００１１】
［構成］
図１は、本発明の一実施形態である画像処理装置１００の構成を概略的に示したブロック図である。同図に示すように、画像処理装置１００は、ＤＲＡＭ１０と、ＳＲＡＭ２０と、画像処理部３０と、ＳＲＡＭ４０と、ＤＲＡＭ５０と、メモリ制御部６０とを備える。なお、同図において、破線で示した矢印は画像データの転送経路を示している。画像データは、図示せぬ上位装置から図示せぬ入出力インターフェースを介して入力される。
【００１２】
ＤＲＡＭ１０および５０は、それぞれ、物理的あるいは論理的に４個に区分されるメモリセルアレイを有するいわゆる４バンク構成のメモリである。ＤＲＡＭ１０および５０のそれぞれのメモリセルは、キャパシタに蓄積された電荷により２値情報を保持する。ＤＲＡＭ１０および５０はその位置が異なるのみであって、具体的な構成に差異はない。なお、本実施形態においては、説明の便宜上、ＤＲＡＭ１０および５０はクロック信号に同期して動作するＳＤＲＡＭ（Synchronous DRAM）であり、そのバースト長は「８（ワード）」であるとする。また、以下においては、物理的あるいは論理的に区分されるメモリセルアレイのそれぞれを「（メモリ）バンク」といい、「バンク０」、「バンク１」、「バンク２」、「バンク３」と記載して各メモリバンクを区別する。
【００１３】
ＳＲＡＭ２０および４０は、それぞれフリップフロップにより２値情報を保持するメモリである。ＳＲＡＭ２０および４０は上述のＤＲＡＭ１０および５０よりも高速にデータを読み出し、あるいは書き込むことが可能であるが、その容量はＤＲＡＭ１０および５０よりも小さく構成されている。なお、ＳＲＡＭ２０および４０はその位置が異なるのみであって、具体的な構成に差異はない。
【００１４】
画像処理部３０は、複数のラインメモリと、フィルタ処理やブロック処理等の所定の画像処理を実行するためのＡＳＩＣ（Application Specific Integrated Circuit）とを備える。画像処理部３０が行う画像処理は任意であり、ラインメモリの数は画像処理部３０が行う画像処理の態様に応じて異なるが、本実施形態においては、画像処理部３０は５×５画素の画像データを用いたフィルタ処理を行うものとし、４ライン分のラインメモリを有するとする。
【００１５】
メモリ制御部６０は、上述のＤＲＡＭ１０、５０およびＳＲＡＭ２０、４０の読み出しと書き込みに関する動作を制御するＬＳＩ（Large Scale Integration）等を備える。メモリ制御部６０は読み出しあるいは書き込みを行うデータのアドレスを所定の演算により発生させ、各メモリ間のデータ転送を制御する。
【００１６】
［動作］
以上の構成のもと、画像処理装置１００は図示せぬ外部装置から入力された画像データにフィルタ処理を行い、処理後の画像データを出力する。画像データは図１において破線で示した矢印に沿って転送されるので、ＤＲＡＭ１０およびＳＲＡＭ２０には処理前の画像データが記憶され、ＳＲＡＭ４０およびＤＲＡＭ５０には処理後の画像データが記憶されることになる。以下では、画像処理装置１００が実行する各種動作について具体的に説明する。
【００１７】
なお、本実施形態の画像処理装置１００は、いわゆるバンディングにより画像処理を行う。ここでバンディングとは、画像データを所定の矩形領域（バンド）で分割し、分割した領域毎に画像処理を実行する方式のことである。ここでは、バンドの行方向のサイズ（以下「バンド長さ」という。）は画像データの行方向のサイズに一致するものとし、バンドの列方向のサイズ（以下「バンド高さ」という。）は「５（画素）」であるとする。
【００１８】
（１）ＤＲＡＭ１０への書き込み動作
はじめに、画像処理装置１００のメモリ制御部６０がＤＲＡＭ１０に画像データを書き込むときの動作を説明する。図２は、メモリ制御部６０が画像データをＤＲＡＭ１０に書き込むために生成するアドレスを説明するために示した画像データの模式図である。同図に示すように、メモリ制御部６０は、画像データの奇数行目のデータについてはバンク０とバンク１を指定するアドレスを交互に生成し、偶数行目のデータについてはバンク２とバンク３を指定するアドレスを交互に生成する。本実施形態においてはバースト長が「８」であるから、１回の書き込み動作で８ワード分の画像データが書き込まれる。画像データは各画素が３２ビット、すなわち２ワード分に相当するので、バンク０には１回のバースト転送で４画素分の画像データが順次記憶され、バンク１にはバンク０に直前に書き込まれた画像データに連続する４画素分の画像データが順次記憶される。また、同様の要領で、バンク２およびバンク３にも４画素分の画像データが順次記憶される。なお、画像データが各メモリバンクに記憶されるときの具体的なアドレスは特に限定されないが、順次記憶される画像データがメモリバンク内において互いに連続するように記憶されるのが望ましい。
【００１９】
このようにしてメモリ制御部６０は画像データの１行目から順次アドレスを生成し、このアドレスにより特定される記憶領域に画像データを記憶させる。その結果、画像データは４画素（すなわち８ワード）毎に分割されてＤＲＡＭ１０のメモリバンクに記憶される。このバースト長に相当する単位で構成された画像データのことを、以下では「分割画像データ」という。図２に示されているように、隣り合う分割画像データは、いずれも、行方向と列方向のいずれについても同一のメモリバンクに記憶されないようになっている。このように分割画像データを記憶するのは、後述する読み出し動作を高速に行うことを可能にするためである。
【００２０】
（２）ＤＲＡＭ１０からの読み出し動作
続いて、画像処理装置１００のメモリ制御部６０がＤＲＡＭ１０に記憶された画像データを読み出すときの動作を説明する。メモリ制御部６０は、各メモリバンクに記憶された分割画像データの連続する８ワード分（すなわち４画素分）を１回のバースト転送で読み出し、この動作をもとの画像データの５行分について行う、という処理を１サイクルとし、このサイクルを繰り返すことにより画像データ全体を読み出す。
【００２１】
図３は、このときメモリ制御部６０が行う読み出し動作と従来の読み出し動作とを示したタイミングチャートである。また、図４は、図３（ａ）に示したタイミングチャートに従って読み出される分割画像データのもとの画像データにおける位置を示した図である。なお、この読み出し動作において、ＣＡＳレイテンシは「２．５」であるとする。また、図３において、「CLK」はクロック信号、「Command」は入力されるコマンド、「Address」は選択されたアドレス、「Data」は読み出されるデータをそれぞれ示している。そして、図３（ａ）に示した矢印はメモリバンクの切り替えタイミングを表している。例えば、図３（ａ）の６クロック目に示した矢印は、選択するメモリバンクをバンク０からバンク１に切り替えていることを表している。つまり、この切り替えの前後では、バンク０に対するリード・コマンド（read）の入力後に選択するメモリバンクをバンク１に切り替え、バンク１に対するアクティブ・コマンド（ACT）を入力する、という動作が行われる。
【００２２】
図３（ａ）に示すように、バンク０の行アドレス（ROW0）と列アドレス（COL0）とを選択してバンク０の分割画像データを読み出す旨のコマンド（read）を入力し、その直後に、メモリバンクを切り替えてバンク１に対して同様の動作を行うと、バンク０に記憶されたデータ（00〜07）を読み出した直後にバンク１に記憶されたデータ（10〜17）を読み出すことができる。また、同様の要領で、バンク１に記憶されたデータ（10〜17）を読み出した直後にバンク２に記憶されたデータ（20〜27）を読み出し、バンク２に記憶されたデータ（20〜27）を読み出した直後にバンク３に記憶されたデータ（30〜37）を読み出すことができる。これにより、図４に示すように、もとの画像データの２行分に相当する分割画像データが連続的に読み出されることとなる。
【００２３】
そして、図５において矢印で示すように、この動作を１行目のバンク０→１行目のバンク１→２行目のバンク２→２行目のバンク３→３行目のバンク０→…→５行目のバンク１、といった具合にバンド高さに相当するだけ繰り返すと、フィルタ処理に必要な画素を含む分割画像データを全て読み出すことができる。図５から明らかなように、分割画像データの読み出しに際しては、同一のメモリバンクの分割画像データを繰り返し読み出すことなく、読み出すメモリバンクを順次切り替えることが可能となっている。そのため、データの読み出しが行われない時間を生じさせることなく、必要なデータを効率的に読み出すことが可能となっている。これに対して、図３（ｂ）に示すようにメモリバンクを切り替えずに他の行のデータを読み出そうとすると、データの読み出しが連続的にならず、遅延が生じる。これは、同一のメモリバンク内で異なる行のメモリセルにアクセスしようとした場合には、プリチャージ・コマンド（図示しない）を入力するまでは新たなアクティブ・コマンドを入力することができないからである。
【００２４】
（３）ＳＲＡＭ２０への書き込み・読み出し動作
続いて、画像処理装置１００のメモリ制御部６０がＤＲＡＭ１０から読み出された画像データをＳＲＡＭ２０に書き込み、これを読み出すときの動作を説明する。まず、メモリ制御部６０は、画像データをＤＲＡＭ１０から読み出した順に逐次ＳＲＡＭ２０に記憶させる。すなわち、メモリ制御部６０は、読み出された画像データが順次ＳＲＡＭ２０に記憶されるようなアドレスを演算により発生させる。
【００２５】
図６は、このときＳＲＡＭ２０に記憶されるデータを示した模式図である。なお、同図において、各データに付された「00」、「01」、「02」等の番号は図３（ａ）や図４に示したデータとの対応を示すものであり、各データはそれぞれ１ワード分のデータ容量を有している。画像データが点順次形式で入力される３２ビットのデータであることから、各データは「０データとＲデータ」あるいは「ＧデータとＢデータ」の１つのまとまりを構成している。つまり、データ「00」と「01」で１つの画素を構成し、以下同様に、連続する２ワード分のデータが１つの画素を構成している。
【００２６】
また、画像処理部３０は、各色の色成分毎に画像処理を行う。すなわち、Ｒデータ、ＧデータおよびＢデータのそれぞれを５×５画素分用いて３回のフィルタ処理を行うことで、このブロックに対する処理を行う。そのため、メモリ制御部６０は、各色の色成分毎に５×５画素分のデータを順次画像処理部３０に供給するべくＳＲＡＭ２０からデータを読み出す。
【００２７】
図７は、メモリ制御部６０がＳＲＡＭ２０からデータを読み出す手順を説明するための図である。同図において、図７（ａ）、（ｂ）および（ｃ）は、それぞれ、Ｒデータ、ＧデータおよびＢデータを読み出す手順を示している。図７（ａ）に示すように、Ｒデータを読み出す場合には、メモリ制御部６０はデータ「00」のうちのＲデータに相当するデータを読み出す。すなわち、このときメモリ制御部６０はデータ「00」の下位８ビットを読み出すべくアドレスを発生させる。そして、メモリ制御部６０は、直前に読み出すために指定したアドレスに２４ビット分を加算したアドレスを指定することにより、隣接する次の画素に相当するＲデータ、すなわちデータ「02」の下位８ビットを読み出す。メモリ制御部６０は同様の動作を第１行に相当する５画素分のＲデータについて行い、５画素分のＲデータを読み出す。その後、メモリ制御部６０は第２行〜第５行のＲデータを同様の要領で読み出し、最終的に５×５画素分のＲデータを画像処理部３０に供給する。そして、画像処理部３０はこのＲデータをラインメモリに格納するなどし、フィルタ処理を実行する。
【００２８】
続いて、メモリ制御部６０はＧデータおよびＢデータをＳＲＡＭ２０から読み出す動作を実行する。これらの動作も、上述したＲデータの読み出し動作とほぼ同様の手順にて行われる。しかしながら、図７（ｂ）および（ｃ）に示すように、データの読み出しに際して指定するアドレスは当然異なる。メモリ制御部６０は、Ｇデータを読み出すときには、データ「01」、「03」、「05」等の上位８ビットを読み出すためのアドレスを指定し、Ｂデータを読み出すときには、データ「01」、「03」、「05」等の下位８ビットを読み出すためのアドレスを指定する。そして、このようにして読み出された５×５画素分のＧデータとＢデータとを、それぞれ画像処理部３０に供給する。
【００２９】
（４）画像処理の実行後の動作
続いて、画像処理部３０がフィルタ処理を行った後の画像データの取り扱いを説明する。画像処理部３０が出力したデータは、ＳＲＡＭ４０に書き込まれ、その後、ＤＲＡＭ５０に書き込まれる。このときメモリ制御部６０が行う読み出し・書き込み動作については、画像データが画像処理装置１００から出力された後に行われる後段の処理に応じて決定すればよい。例えば、画像データを画像処理装置１００に入力されたときと同じ形式で出力するのであれば、ＤＲＡＭ１０およびＳＲＡＭ２０において行った動作を逆の手順で行うことによって、フィルタ処理後の画像データをＤＲＡＭ１０に記憶された形式と同一の形式でＤＲＡＭ５０に記憶させることが可能である。もっとも、メモリ制御部６０の読み出し・書き込み動作は特に上述の例に限定されるものではなく、画像処理装置１００からの出力の態様に適合するようなものであればよい。
【００３０】
［効果］
以上に説明したように、本実施形態の画像処理装置１００によれば、隣り合う分割画像データのそれぞれがいずれも同一のメモリバンクに記憶されないように分割画像データを書き込むことにより、分割画像データを連続的に読み出すことを可能としている。これにより、画像処理装置１００は、画像処理部３０に効率的にデータを供給することが可能となる。また、この画像処理装置１００によれば、ある行の画像データ全体を読み出すときであっても、２つメモリバンクを切り替えながら順次読み出すことができるので、いわゆる横読みを高速に行うことが可能である。さらに、この画像処理装置１００によれば、画像データの複数行の読み出しをそれらの行全体を読み出すことなく、かつ高速に行うことができる。そのため、この画像処理装置１００によれば、主としてＤＲＡＭを用いた比較的安価な構成であっても、いわゆる縦読みを高速に行うことが可能である。
【００３１】
また、本実施形態の画像処理装置１００は、ＤＲＡＭ１０からの読み出し動作を変更することにより、種々の画像処理に適用することが可能である。例えば、画像処理部３０が行う処理が３×３画素の画像データを用いたフィルタ処理であるとすれば、図８に矢印で示すように３行分の分割画像データを列方向に連続的に読み出せばよい。また、例えば、画像処理部３０が行う処理が８×８画素の画像データを用いたブロック処理であるとすれば、図９に矢印で示すように、もとの画像データにおいて行方向に連続する２つの分割画像データを連続的に読み出す動作を８行分行えばよい。
【００３２】
［変形例］
以上の説明においては、本発明の一の好適な実施形態を例示したが、本発明は上述の実施形態に限定されるものではなく、その他の種々の態様にて実施することが可能である。本発明においては、例えば、上述した実施形態に対して以下のような変形を適用することができる。なお、これらの変形は、各々を適宜に組み合わせることも可能である。
【００３３】
上述の実施形態においては、説明の便宜上、ワード長やバースト長等を限定したが、本発明は上述した例に限らず、画像処理装置やこれを搭載するコンピュータの仕様に応じた種々の値を用いることが可能である。また、画像データも３２ビットのいわゆるＲＧＢデータに限らず、上述の０データを含まない２４ビットのＲＧＢデータであってもよいし、輝度成分（Ｙ）のみからなる画像データや、輝度成分と色差成分（Ｃｂ、Ｃｒ）からなる画像データであってもよい。また、画像データは点順次形式に限らず、面順次形式であってもよい。
【００３４】
また、上述の実施形態においては、ＤＲＡＭ１０および５０をシンクロナスＤＲＡＭ（ＳＤＲＡＭ）であるとしたが、非同期のＤＲＡＭを用いることも可能である。非同期のＤＲＡＭを用いる場合、制御信号の論理レベルの組み合わせにより上述のコマンドに相当する機能を実現することができる。
【００３５】
また、上述の実施形態においては、ＤＲＡＭ１０と画像処理部３０の間にＳＲＡＭ２０を設けたが、本発明はこのＳＲＡＭ２０を設けない構成においても適用できる場合がある。つまり、画像データの形式や画像処理装置１００各部の仕様次第では、ＤＲＡＭ１０から読み出された画像データをその読み出された順序で画像処理部３０に供給することも可能である。例えば、画像処理部が供給された画像データを展開して必要なデータを選択可能な構成であれば、ＳＲＡＭ２０に相当するメモリは不要となる。
【００３６】
また、上述の実施形態においては、ＤＲＡＭ１０を４バンク構成としたが、メモリバンクの数は２以上であればいくつであってもよい。例えば、ＤＲＡＭがバンク０とバンク１の２バンク構成であるとすれば、図１０に示すように、連続する分割画像データが互いに異なるメモリバンクに記憶され、かつ、もとの画像データにおいて、隣り合う行において同列に相当する分割画像データが互いに異なるメモリバンクに記憶されるように画像データを書き込むことにより、もとの画像データの行方向と列方向のいずれについても連続的に読み出すことができ、複数行に渡る分割画像データの集合を高速に読み出すことが可能となる。
【００３７】
また、上述の実施形態においては、メモリ制御部６０はＬＳＩ等により構成されると説明したが、メモリ制御部６０に相当する機能を実現するプログラムによってこのメモリ制御部を構成することも可能である。すなわち、本発明は、上述の画像処理装置やメモリ制御部（メモリ制御装置）としてのみならず、メモリ制御部の機能を実現するプログラムとしても特定され得るものである。また、同様に、本発明はメモリ制御部が行うメモリの制御方法としても特定され得るものである。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施形態である画像処理装置の構成を示したブロック図である。
【図２】画像処理装置のメモリ制御部が画像データをＤＲＡＭに書き込むために生成するアドレスを説明するための図である。
【図３】画像処理装置のメモリ制御部が行う読み出し動作と従来の読み出し動作とを示したタイミングチャートである。
【図４】図３（ａ）に示したタイミングチャートに従って読み出される分割画像データのもとの画像データにおける位置を示した図である。
【図５】画像処理装置が分割画像データを読み出す順序を説明するための図である。
【図６】画像処理装置のＳＲＡＭに記憶されるデータを示した模式図である。
【図７】画像処理装置のメモリ制御部がＳＲＡＭからデータを読み出す手順を説明するための図である。
【図８】画像処理装置が行う読み出し動作の変形例を示した図である。
【図９】画像処理装置が行う読み出し動作の変形例を示した図である。
【図１０】画像処理装置が行う書き込み動作の変形例を示した図である。
【符号の説明】
【００３９】
１００…画像処理装置、１０、５０…ＤＲＡＭ、２０、４０…ＳＲＡＭ、３０…画像処理部、６０…メモリ制御部
【図１】
0004821410.tif 000002
【図２】
0004821410.tif 000003
【図３】
0004821410.tif 000004
【図４】
0004821410.tif 000005
【図５】
0004821410.tif 000006
【図６】
0004821410.tif 000007
【図７】
0004821410.tif 000008
【図８】
0004821410.tif 000009
【図９】
0004821410.tif 000010
【図１０】
0004821410.tif 000011