(57)【要約】【課題】メモリに格納された複数のデータブロックから読出し単位を所定の順序に従って読出していくことが可能なダイレクトメモリアクセスコントローラ及び画像処理装置を提供する。【解決手段】ダイレクトメモリアクセス（ＤＭＡ）コントローラ４は、アドレス管理部７がアドレス指定制御部５に対して読出すべき読出し単位ＲＵの先頭アドレスを順次供給していくことで、読出し単位ＲＵを継続的に読出していくことができる。【選択図】図５
2008033713.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対して、読出すべきデータが格納されているアドレスを順次指定するアドレス指定部と、
前記メモリから、前記アドレス指定部が指定したアドレスに格納されているデータを読出すデータ読出部と、
前記メモリに格納された複数のデータブロックについて、該データブロックを構成する読出し単位をそれぞれのデータブロックから順に読出していく場合に、読出していく読出し単位の先頭アドレスを保持し、現在読出し中の読出し単位の読出しが完了したときに、次に読出すべき読出し単位の先頭アドレスを前記アドレス指定部に供給するアドレス管理部と、
を備えることを特徴とするダイレクトメモリアクセスコントローラ。
【請求項２】
請求項１に記載のダイレクトメモリアクセスコントローラであって、
前記アドレス管理部は、読出していく読出し単位の先頭アドレスが記述されたテーブルを有し、現在読出し中の読出し単位の読出しが完了する前までに、当該テーブルにおいて、次に読出すべき読出し単位の先頭アドレスを更新することを特徴とするダイレクトメモリアクセスコントローラ。
【請求項３】
請求項１または２に記載のダイレクトメモリアクセスコントローラと、画像データが表す画像をタイル状に分割して得られる複数のタイル画像データが格納されるメモリと、を備え、
前記アドレス管理部は、前記複数のタイル画像データを読出す所定の順序に従って、該タイル画像データの読出し方向の幅分に対応する読出し単位の先頭アドレスを、前記アドレス指定部に供給していくことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記アドレス管理部は、前記複数のタイル画像データのうち一部のタイル画像データの読出し単位の先頭アドレスを、異なるタイル画像データの読出し単位の先頭アドレスと置換して、前記アドレス指定部に供給することを特徴とする画像処理装置。
【請求項５】
請求項３に記載の画像処理装置であって、
前記アドレス管理部は、前記複数のタイル画像データのうち一部のタイル画像データを読出す所定の順序に従って、当該一部のタイル画像データの読出し単位の先頭アドレスを、前記アドレス指定部に選択的に供給していくことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセスコントローラ及び画像処理装置に関する。
【背景技術】
【０００２】
近年、プリンタ等の画像処理装置には、画像データに対して置換や合成などの種々の画像処理を部分的に施すような機能が求められることがある。このような部分的な画像処理を施す場合、処理速度の向上や作業領域の削減を目的として、特許文献１のように、画像データが表す画像を複数のタイル状に分割した上で画像処理を施す手法が存在する。
【特許文献１】特開平０８−０４４８５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、画像データを複数のタイル状に分割した場合、分割されたそれぞれのデータブロックは、画像メモリに格納され、そこからダイレクトメモリアクセス（ＤＭＡ）転送などによって読出されて、印刷に供されることになるが、この際、データを効率良く読出すことが困難であるという問題がある。
【０００４】
すなわち、画像データを復元するためには、データブロックを構成する読出し単位（例えば、タイルの読出し方向の１ライン）をそれぞれのデータブロックから順に読出していく必要があるが、これらの読出し単位は画像メモリ上で不連続であるため、一つの読出し単位を読出す度に次に読出すべき読出し単位のアドレスを計算しなければならず、アドレス計算が煩雑である。また、一つの読出し単位を読出す度に、ダイレクトメモリアクセス（ＤＭＡ）コントローラを起動させなければならない。
【０００５】
本発明は、上記問題に鑑みて為されたものであり、メモリに格納された複数のデータブロックから読出し単位を所定の順序に従って読出していくことが可能なダイレクトメモリアクセスコントローラ及び画像処理装置を提供することをその目的の一つとする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のダイレクトメモリアクセスコントローラは、メモリに対して、読出すべきデータが格納されているアドレスを順次指定するアドレス指定部と、前記メモリから、前記アドレス指定部が指定したアドレスに格納されているデータを読出すデータ読出部と、前記メモリに格納された複数のデータブロックについて、該データブロックを構成する読出し単位をそれぞれのデータブロックから順に読出していく場合に、読出していく読出し単位の先頭アドレスを保持し、現在読出し中の読出し単位の読出しが完了したときに、次に読出すべき読出し単位の先頭アドレスを前記アドレス指定部に供給するアドレス管理部と、を備えることを特徴とする。
【０００７】
また、本発明のダイレクトメモリアクセスコントローラにおいて、前記アドレス管理部は、読出していく読出し単位の先頭アドレスが記述されたテーブルを有し、現在読出し中の読出し単位の読出しが完了する前までに、当該テーブルにおいて、次に読出すべき読出し単位の先頭アドレスを更新することを特徴とする。
【０００８】
次に、本発明の画像処理装置は、上記ダイレクトメモリアクセスコントローラと、画像データが表す画像をタイル状に分割して得られる複数のタイル画像データが格納されるメモリと、を備え、前記アドレス管理部は、前記複数のタイル画像データを読出す所定の順序に従って、該タイル画像データの読出し方向の幅分に対応する読出し単位の先頭アドレスを、前記アドレス指定部に供給していくことを特徴とする。
【０００９】
また、本発明の画像処理装置において、前記アドレス管理部は、前記複数のタイル画像データのうち一部のタイル画像データの読出し単位の先頭アドレスを、異なるタイル画像データの読出し単位の先頭アドレスと置換して、前記アドレス指定部に供給することを特徴とする。
【００１０】
また、本発明の画像処理装置において、前記アドレス管理部は、前記複数のタイル画像データのうち一部のタイル画像データを読出す所定の順序に従って、当該一部のタイル画像データの読出し単位の先頭アドレスを、前記アドレス指定部に選択的に供給していくことを特徴とする。
【発明の効果】
【００１１】
上記本発明によると、メモリに格納された複数のデータブロックから読出し単位を所定の順序に従って読出していくことができる。
【発明を実施するための最良の形態】
【００１２】
本発明の実施形態について、図面を参照しながら説明する。
【００１３】
図１は、画像処理装置１０の構成を表すブロック図である。画像処理装置１０は、プリンタコントローラとして構成されており、パーソナルコンピュータ（ＰＣ）１００等からなる上流の印刷指令部から受けた印刷指令に基づいて印刷すべき画像データを生成し、プリンタ２００等からなる下流の印刷機へ出力する。
【００１４】
画像処理装置１０は、ＣＰＵ１と、ＲＯＭ２１と、ＲＡＭ２２と、通信部２４と、プリンタインターフェイス（Ｉ／Ｆ）２５と、画像メモリ３と、ダイレクトメモリアクセス（ＤＭＡ）コントローラ４とを備えており、これらはバス２３に接続されている。
【００１５】
ＣＰＵ１は、画像処理装置１０の動作を司る。ＲＯＭ２１は、ＣＰＵ１の動作に必要なプログラムやデータを格納している。ＲＡＭ２２は、ＣＰＵの作業領域とされる。
【００１６】
通信部２４は、ネットワークを介してＰＣ１００に接続されて通信を制御する。このＰＣ１００は、画像処理装置１０に対し、印刷指令とともに画像データを供給する。
【００１７】
プリンタＩ／Ｆ２５は、プリンタ２００に接続されて通信を制御する。このプリンタ２００は、画像処理装置１０が生成した出力画像を受けると、この出力画像を用紙に印刷する。
【００１８】
画像メモリ３は、ＲＡＭ等で構成されており、後述するように、画像データを分割した複数のデータブロック（タイル画像データ）が格納される。
【００１９】
ＤＭＡコントローラ４は、画像メモリ３に格納されたデータをダイレクトメモリアクセス（ＤＭＡ）転送により読出す。ここで、ＤＭＡコントローラ４は、制御系を有しており、この制御系の動作によって複数のタイル画像データから間断なくデータを読出していき、画像データを復元する。詳細な構成については後述する。
【００２０】
画像処理装置１０の動作について説明する。ＣＰＵ１は、ＰＣ１００から供給された画像データを複数のタイル画像データに分割して、これらを画像メモリ３に格納する。また、ＣＰＵ１は、画像メモリ３に格納したそれぞれのタイル画像データの先頭アドレスを管理しており、これら先頭アドレスをＤＭＡコントローラ４に与える。
【００２１】
図２に、画像データの分割例を示す。画像データＩＭＧは、該画像データＩＭＧが表す画像を区分けした複数のタイルのそれぞれに対応するデータブロックに分割されており、このデータブロックをタイル画像データと称している。この図では、画像データＩＭＧが表す画像を３×３のタイルに分割した例について示している。また、図３に示すように、分割されたそれぞれのタイル画像データは、アドレスにより一次元化されたメモリ空間を有する画像メモリ３に格納される。
【００２２】
このようにして分割されたタイル画像データは、図２に示すように、データの読出し方向（Ｘ方向）のタイル幅分の画素に相当する読出し単位（読出しライン）ＲＵが高さ方向（Ｙ方向）に多数配列して構成されている（図では、一部の読出し単位ＲＵのみを示している）。また、この読出し単位ＲＵは、図３に示すように、画像メモリ３の一次元メモリ空間において、先頭アドレスからタイル幅分のアドレスずつ区切られた各領域に対応する。
【００２３】
このように複数のタイル画像データが格納された画像メモリ３からデータを読出して画像データＩＭＧを復元するためには、図２に示すように、画像データＩＭＧが表す画像上において読出し方向に連続して配列している読出し単位ＲＵを順に読出していき、端の読出し単位ＲＵまで読出したら、次の行についても同様に読出していき、これを繰り返していくといった読出し順序に従って読出しを行う必要がある。
【００２４】
図２及び図３により具体的に説明すると、まず、Tile_1-1の先頭アドレス（Adr1）からタイル幅（width）に相当する読出し単位ＲＵを読出すと、次に、Tile_1-1と読出し方向（Ｘ方向）に隣接するTile_2-1の先頭アドレス（Adr2）から読出し単位ＲＵを読出し、同様にTile_3-1の先頭アドレス（Adr3）から読出し単位ＲＵを読出す。そして、読出し方向の先側に位置するTile_3-1から読出し単位ＲＵの読出しが完了すると、読出し方向の後側に位置するTile_1-1に戻り、次行の読出し単位ＲＵ、すなわちアドレス（Adr1+width）から読出し単位ＲＵを読出す。このような読出しを繰り返していくことにより、画像データＩＭＧの全体を読出すことができる。
【００２５】
ＤＭＡコントローラ４は、このような読出し順序で、画像メモリ３に格納されたタイル画像データから読出し単位ＲＵを継続的に読出していく。以下、ＤＭＡコントローラ４の構成例について説明する。
【００２６】
図５は、ＤＭＡコントローラ４の構成例を表すブロック図である。ＤＭＡコントローラ４は、アドレス指定制御部（DMA Address Control）５と、データ読出制御部（DMA DataRead Control）６と、アドレス管理部（TileAddress Table）７と、を備える。
【００２７】
アドレス指定制御部５は、画像メモリ３に対してデータを読出すアドレスの指定信号（DMA_Address）を順次出力していく。データ読出制御部６は、画像メモリ３にリード信号（Read）を出力して、アドレス指定制御部５が指定したアドレスに格納されているデータを取得し（R_data）、取得したデータを後段へ出力する（DMA_DataOUT）。
【００２８】
また、アドレス指定制御部５は、アドレス管理部７との連携により、画像メモリ３に格納されたそれぞれのタイル画像データから上述したような読出し順序に従って読出し単位ＲＵを継続的に読み出すように、指定信号（DMA_Address）を出力していく。
【００２９】
なお、ＤＭＡコントローラ４は、レジスタによって、タイル状に分割された画像データのＸ方向タイル数αおよびＹ方向タイル数βや、各タイルのタイル幅Widthおよびタイル高さHeightなどのパラメータを保持している。これらのレジスタ値は、ＣＰＵ１によって与えられる。
【００３０】
図６は、アドレス指定制御部５の詳細な構成を表すブロック図である。アドレス指定制御部５は、カウンタ制御部５１と、ＤＭＡアドレスカウンタ５２と、Ｘ方向画素カウンタ５３と、タイル内Ｘ方向画素数チェック部５４と、Ｘ方向タイルカウンタ５５と、Ｘ方向タイル数チェック部５６と、Ｙ方向タイルカウンタ５７と、タイル内エンドアドレスチェック部５８と、終了タイル検知部５９と、を有する。
【００３１】
カウンタ制御部５１は、ＣＰＵ１からの起動信号（DMA_Start）により起動し、ＤＭＡアドレスカウンタ５２、Ｘ方向画素カウンタ５３、Ｘ方向タイルカウンタ５５およびＹ方向タイルカウンタ５７のそれぞれの制御を行う。
【００３２】
ＤＭＡアドレスカウンタ５２は、カウンタ制御部５１からカウント開始信号（DMA_AD_EN）を受け、アドレス管理部７から供給されたアドレス（LoadData）を指定開始のアドレスとして更新すると、このアドレスからカウント動作を開始して、アドレスの指定信号（DMA_Address）を順次出力していく。ここで、アドレス管理部７から供給されるアドレス（LoadData）は、次に読出す読出し単位ＲＵの先頭アドレスである。
【００３３】
Ｘ方向画素カウンタ５３は、タイル画像データから読出し方向（Ｘ方向）のタイル幅分（すなわち、読出し単位ＲＵ）を読出したことを確認するためのカウンタであり、Ｘ方向に読出した画素数をカウントする。読出し単位ＲＵを読出す毎に、カウンタ制御部５１によってクリアされ（X_PIXCNT_CLR）、カウント動作を再開する。
【００３４】
タイル内Ｘ方向画素数チェック部５４は、Ｘ方向画素カウンタ５３がカウントしている画素数と、レジスタが有するタイル幅Widthと、を比較するコンパレータ回路で構成され、読出し単位ＲＵが読出されたか否かを判定する。読出し単位ＲＵが読出されると、それを表す信号（Pix_Width_match）をカウンタ制御部５１へ出力する。
【００３５】
Ｘ方向タイルカウンタ５５は、現在読出し中のタイル画像データのＸ方向のタイル数を管理するためのカウンタである。読出し単位ＲＵを読出す毎に、カウンタ制御部５１からカウント信号（X_TILECNT_EN）を受けて、Ｘ方向のタイル数をカウントする。また、Ｘ方向のタイル数がＸ方向タイル数αに達したときは、カウンタ制御部５１からクリア信号（X_TILECNT_CLR）を受けて、Ｘ方向のタイル数をクリアする。このＸ方向タイルカウンタ５５は、アドレス管理部７に対して現在読出し中のタイル画像データのＸ方向のタイル数を出力する（X_tile_Number）。
【００３６】
Ｘ方向タイル数チェック部５６は、Ｘ方向タイルカウンタ５５がカウントしているＸ方向のタイル数と、レジスタが有するＸ方向タイル数αと、を比較するコンパレータ回路で構成され、Ｘ方向のタイル数がＸ方向タイル数αに達したか否かを判定する。Ｘ方向タイル数αに達すると、それを表す信号（Tile_Width_match）をカウンタ制御部５１へ出力する。
【００３７】
Ｙ方向タイルカウンタ５７は、現在読出し中のタイル画像データのＹ方向のタイル数を管理するためのカウンタである。Ｘ方向タイル数αの読出し単位ＲＵを読出し、かつ、タイル画像データを最後まで読出したときに、カウンタ制御部５１からカウント信号（Y_TILECNT_EN）を受けて、Ｙ方向のタイル数をカウントする。このＹ方向タイルカウンタ５７は、アドレス管理部７に対して現在読出し中のタイル画像データのＹ方向のタイル数を出力する（Y_tile_Number）。
【００３８】
タイル内エンドアドレスチェック部５８は、ＤＭＡアドレスカウンタ５２がカウントしているアドレスと、アドレス管理部７から供給されるタイル画像データの最終アドレス（EndAddress）と、を比較するコンパレータ回路で構成され、タイル画像データを最後まで読出したか否かを判定する。タイル画像データを最後まで読出すと、それを表す信号（Tile_END_AD_match）をカウンタ制御部５１へ出力する。
【００３９】
終了タイル検知部５９は、最終のタイル画像データを読出したことを検知する。例えば、アドレス管理部７から供給されたアドレス（LoadData）により最終のタイル画像データか否かを判定する。または、Ｘ方向のタイル数（X_tile_Number）とＹ方向のタイル数（Y_tile_Number）を乗算した値と、レジスタが有するＸ方向タイル数αとＹ方向タイル数βを乗算した値と、を比較することで判定する。この終了タイル検知部５９は、最終のタイル画像データを読出したことを検知すると、それを表す信号（EOT_DETECT）をカウンタ制御部５１へ出力する。
【００４０】
カウンタ制御部５１の具体的な動作を、以下に述べる。カウンタ制御部５１は、ＣＰＵ１から起動信号（DMA_Start）を受けると、アドレス管理部７へアドレス要求信号（Load）を出力して、ＤＭＡアドレスカウンタ５２の指定開始のアドレスを更新させるとともに、ＤＭＡアドレスカウンタ５２にカウント開始信号（DMA_AD_EN）を出力してカウント動作を開始させる。
【００４１】
また、カウンタ制御部５１は、タイル内Ｘ方向画素数チェック部５４から読出し単位ＲＵを読出したことを表す信号（Pix_Width_match）を受けると、アドレス管理部７へアドレス要求信号（Load）を出力して、ＤＭＡアドレスカウンタ５２の指定開始のアドレスを更新させるとともに、ＤＭＡアドレスカウンタ５２にカウント開始信号（DMA_AD_EN）を出力してカウント動作を開始させる。また、Ｘ方向画素カウンタ５３にクリア信号（X_PIXCNT_CLR）を出力して、カウント値をクリアさせる。また、Ｘ方向タイルカウンタ５５にカウント信号（X_TILECNT_EN）を出力して、Ｘ方向のタイル数をカウントさせる（なお、X_TILECNT_CLRが出力される場合は、そちらを優先する）。
【００４２】
また、カウンタ制御部５１は、Ｘ方向タイル数チェック部５６からＸ方向タイル数αに達したことを表す信号（Tile_Width_match）を受けると、Ｘ方向タイルカウンタ５５にクリア信号（X_TILECNT_CLR）を出力して、Ｘ方向のタイル数をクリアさせる。
【００４３】
また、カウンタ制御部５１は、Ｘ方向タイル数チェック部５６からＸ方向タイル数αに達したことを表す信号（Tile_Width_match）を受け、かつ、タイル内エンドアドレスチェック部５８からタイル画像データを最後まで読出したことを表す信号（Tile_END_AD_match）を受けると、Ｙ方向タイルカウンタ５７にカウント信号（Y_TILECNT_EN）を出力して、Ｙ方向のタイル数をカウントさせる。
【００４４】
また、カウンタ制御部５１は、終了タイル検知部５９から最終のタイル画像データを読出したことを表す検知信号（EOT_DETECT）を受けると、ＣＰＵ１に終了信号（DMA_END）を返して動作を終了する。
【００４５】
図７は、アドレス管理部７の詳細な構成を表すブロック図である。アドレス管理部７は、カレントアドレステーブル（CurrentAddress Table）７１と、スタートアドレステーブル（StartAddress Table）７２とを有する。
【００４６】
これらのカレントアドレステーブル７１とスタートアドレステーブル７２には、画像メモリ３に格納されているそれぞれのタイル画像データの先頭アドレスがＣＰＵ１によって書込まれる。これらは、２次元のレジスタファイルで構成されており、それぞれのタイル画像データの先頭アドレスは、Ｘ方向のタイル数とＹ方向のタイル数に対応する領域に格納されている。なお、カレントアドレステーブル７１に格納されているアドレスは、読出し単位ＲＵが読出される毎にタイル幅分（Width）が加算されて更新されていく。
【００４７】
スタートアドレステーブル７２は、アドレス指定制御部５から現在読出し中のタイル画像データに係るＸ方向のタイル数（X_tile_Number）とＹ方向のタイル数（Y_tile_Number）が入力されると、これらにより指定された領域に格納されている当該タイル画像データの先頭アドレスを出力する。この出力された先頭アドレスには、レジスタが有するタイル幅Widthとタイル高さHeightを乗算器７６により乗算した値が、加算器７５によって加算され、これにより得られた値がタイル画像データの最終アドレス（EndAddress）としてアドレス指定制御部５へ出力される。
【００４８】
カレントアドレステーブル７１は、読出していく読出し単位ＲＵの先頭アドレスをカレントアドレス（CurrentAddress）として保持しており、現在読出し中の読出し単位ＲＵの読出しが完了し、アドレス指定制御部５からアドレス要求信号（Load）を受け、また、更新されたＸ方向のタイル数（X_tile_Number）とＹ方向のタイル数（Y_tile_Number）が入力されると、これらにより指定された領域に格納されているカレントアドレスを、次に読出すべき読出し単位ＲＵの先頭アドレスとしてアドレス指定制御部５に供給する（LoadData）。
【００４９】
また、カレントアドレステーブル７１は、このようにアドレス指定制御部５に対してカレントアドレスを供給するとともに、アドレス要求信号（Load）による切替器７３の動作により、加算器７４がそのカレントアドレスに対してレジスタが有するタイル幅Widthを加算して、その領域内を更新する。
【００５０】
これにより、カレントアドレステーブル７１に格納されているカレントアドレスは、タイル画像データの先頭アドレスを初期値として、読出し単位ＲＵを読出す度にタイル幅Widthが加算されていくので、次に同じタイル画像データから続きの読出し単位ＲＵを読出す際に、その読出し単位ＲＵの先頭アドレスが既に保持されていることになる。
【００５１】
図４は、画像データを３×３のタイルに分割した場合のアドレス管理部７の動作について説明するためのテーブルである。このうち、スタートアドレス（StartAddress）はスタートアドレステーブル７２に格納され、カレントアドレス（CurrentAddress）はカレントアドレステーブル７１に格納される。また、エンドアドレス（EndAddress）は、タイル画像データの最終アドレスを表し、スタートアドレスに対して、タイル幅Widthとタイル高さHeightを乗算器７６により乗算した値を加算器７５によって加えた値である。
【００５２】
なお、ネクストアドレス（NextAddress）は、次に読出すタイル画像データを表すものであり、参考のために記載している。上記の構成例では、アドレス指定制御部５からＸ方向のタイル数（X_tile_Number）とＹ方向のタイル数（Y_tile_Number）が入力されることによって、次に読出すタイル画像データが指定される。
【００５３】
アドレス管理部７は、読出しを開始する際にまず、Tile_1-1のカレントアドレス（Adr1）をアドレス指定制御部５に供給するとともに、タイル幅（width）を加算してカレントアドレスを更新する（Adr1+Width）。次に、X_tile_NumberがカウントアップされてTile_2-1に移り、Tile_2-1のカレントアドレス（Adr2）をアドレス指定制御部５に供給するとともに、タイル幅（width）を加算してカレントアドレスを更新する（Adr2+Width）。そして、X_tile_NumberがカウントアップされてTile_3-1に移り、Tile_3-1についても同様に供給と更新を行うと、次に、X_tile_NumberがクリアされてTile_1-1に戻り、以前に更新したTile_1-1のカレントアドレス（Adr1+Width）をアドレス指定制御部５に供給するとともに、タイル幅（width）を加算してカレントアドレスを更に更新する（Adr1+2Width）。そして、このような供給と更新を繰り返していく。
【００５４】
また、Tile_3-1の最後の読出し単位ＲＵが読出されると、Y_tile_Numberがカウントアップされて下段左端のTile_1-2へ移る。また、Tile_3-2についても同様に、Tile_3-2の最後の読出し単位ＲＵが読出されると、Y_tile_Numberがカウントアップされて下段左端のTile_1-3へ移る。
【００５５】
以上のように、アドレス管理部７がアドレス指定制御部５に対して読出すべき読出し単位ＲＵの先頭アドレスを順次供給していくことで、ＤＭＡコントローラ４は、読出し単位ＲＵを継続的に読出していくことができる。
【００５６】
なお、上記の構成例では、ハードウェア的に構成されたＤＭＡコントローラ４について説明したが、これに限らず、アドレス管理部７についての構成、或いは、ＤＭＡコントローラ４全体の構成をＣＰＵ１の動作によってソフトウェア的に実現することもできる。この場合、上記のようなテーブルを有することで、一つの読出し単位ＲＵを読出す度にアドレスを計算する必要がなく、処理の負荷が軽減される。ここで、アドレス管理部７をソフトウェア的に構成する場合、図４に示したネクストアドレス（NextAddress）をテーブルに持たせておき、現在読出し中の読出し単位ＲＵの読出しが完了したら、このネクストアドレスを参照することで、次に読出すタイル画像データを指定させるようにすることができる。
【００５７】
次に、複数のタイル画像データのうち一部のタイル画像データを異なるタイル画像データと置換する場合の動作について説明する。図８は、一部のタイルを置換した画像データの例を示す図である。また、図９は、この場合のタイル画像データの格納例を示す図であり、図１０は、この場合のアドレス管理部７の動作について説明するためのテーブルである。なお、これらの図は、Tile_2-2がSub_Tile2-2に置換された場合についての例である。
【００５８】
ＣＰＵ１は、画像メモリ３に格納された複数のタイル画像データのうち、Tile_2-2のタイル画像データに対してバリアブルプリントにおける合成などの画像処理を行うと、それにより生成した新たなタイル画像データ（Sub_Tile_2-2）を画像メモリ３に格納する。
【００５９】
そして、ＣＰＵ１は、図１０に示すように、アドレス管理部７が有するカレントアドレステーブル７１とスタートアドレステーブル７２において、Tile_2-2のタイル画像データのアドレスをSub_Tile_2-2のタイル画像データのアドレスと置換する書き換えを行う。
【００６０】
このような書換えを行うことにより、アドレス管理部７は、図８及び図９に示すように、Tile_1-2の読出し単位ＲＵが読出されると、X_tile_NumberのカウントアップによりSub_Tile_1-2に移り、Sub_Tile_2-2のカレントアドレスをアドレス指定制御部５に供給する。その後、Sub_Tile_2-2の読出し単位ＲＵが読出されると、X_tile_NumberのカウントアップによりTile_3-2に移るといったような読出しを繰り返していく。これにより、図８に示すようなTile_2-2がSub_Tile_2-2に置換された画像データＩＭＧ１を読出すことができる。
【００６１】
以上のように、ＤＭＡコントローラ４のアドレス管理部７が有するテーブル７１、７２を一部書き換えることで、一部のタイル画像データを置換した場合であっても、ＤＭＡコントローラ４は、読出し単位ＲＵを継続的に読出していくことができる。
【００６２】
次に、複数のタイル画像データのうち一部のタイル画像データを選択的に読出す場合の動作について説明する。図１１は、一部のタイルを選択的に読出す場合の例を示す図である。また、図１２は、この場合のタイル画像データの格納例を示す図であり、図１３は、この場合のアドレス管理部７の動作について説明するためのテーブルである。なお、これらの図は、Tile_2-2、Tile_3-2、Tile_2-3及びTile_3-3を選択的に読出す場合についての例である。
【００６３】
ＣＰＵ１は、図１３に示すように、アドレス管理部７が有するカレントアドレステーブル７１とスタートアドレステーブル７２において、Tile_2-2、Tile_3-2、Tile_2-3及びTile_3-3を含む２×２のタイルからなる画像データの読出しに変換する書き換えを行う。また、これに伴い、ＤＭＡコントローラ４が有するレジスタのうちＸ方向タイル数αおよびＹ方向タイル数βの値を変更する。
【００６４】
このような書換えを行うことにより、アドレス管理部７は、図１１及び図１２に示すように、読出しを開始する際にまず、Tile_2-2（変換後は1-1）のカレントアドレス（Adr5）をアドレス指定制御部５に供給し、次に、X_tile_NumberがカウントアップされてTile_3-2（変換後は2-1）に移り、Tile_3-2のカレントアドレス（Adr6）をアドレス指定制御部５に供給する。そして、X_tile_NumberがクリアされてTile_2-2（変換後は1-1）に戻り、以前に更新したTile_2-2のカレントアドレス（Adr5+Width）をアドレス指定制御部５に供給するといったような動作を繰り返していく。また、Tile_3-2（変換後は2-1）の最後の読出し単位ＲＵが読出されると、Y_tile_Numberがカウントアップされて下段左端のTile_2-3（変換後は1-2）へ移り、同様の動作を繰り返していく。これにより、図１１に示すようなTile_2-2、Tile_3-2、Tile_2-3及びTile_3-3を含む２×２のタイルからなる画像データＩＭＧ２を読出すことができる。
【００６５】
以上のように、ＤＭＡコントローラ４のアドレス管理部７が有するテーブル７１、７２やレジスタを一部書き換えることで、一部のタイル画像データを選択的に読出す場合であっても、ＤＭＡコントローラ４は、読出し単位ＲＵを継続的に読出していくことができる。
【図面の簡単な説明】
【００６６】
【図１】画像処理装置の構成を表すブロック図である。
【図２】タイル画像データの説明図である。
【図３】図２の場合の画像メモリを表す図である。
【図４】図２の場合のテーブルを表す図である。
【図５】ダイレクトメモリアクセス（ＤＭＡ）コントローラの構成を表すブロック図である。
【図６】ＤＭＡコントローラの要部構成を表すブロック図である。
【図７】ＤＭＡコントローラの要部構成を表すブロック図である。
【図８】一部が置換されたタイル画像データの説明図である。
【図９】図８の場合の画像メモリを表す図である。
【図１０】図８の場合のテーブルを表す図である。
【図１１】一部のタイル画像データを読出すときの説明図である。
【図１２】図１１の場合の画像メモリを表す図である。
【図１３】図１１の場合のテーブルを表す図である。
【符号の説明】
【００６７】
１  ＣＰＵ、２１  ＲＯＭ、２２  ＲＡＭ、２３  バス、２４  通信部、２５  プリンタＩ／Ｆ、３  画像メモリ、４  ＤＭＡコントローラ、５  アドレス指定制御部、５１  カウンタ制御部、５２  ＤＭＡアドレスカウンタ、５３  Ｘ方向画素カウンタ、５５  Ｘ方向タイルカウンタ、５７  Ｙ方向タイルカウンタ、６  データ読出制御部、７  アドレス管理部、７１  カレントアドレステーブル、７２  スタートアドレステーブル、１０  画像処理装置、１００  ＰＣ、２００  プリンタ。
【図１】
2008033713.tif 000003
【図２】
2008033713.tif 000004
【図３】
2008033713.tif 000005
【図４】
2008033713.tif 000006
【図５】
2008033713.tif 000007
【図６】
2008033713.tif 000008
【図７】
2008033713.tif 000009
【図８】
2008033713.tif 000010
【図９】
2008033713.tif 000011
【図１０】
2008033713.tif 000012
【図１１】
2008033713.tif 000013
【図１２】
2008033713.tif 000014
【図１３】
2008033713.tif 000015