(57)【要約】【課題】画像回転処理やウィンドウ処理の際、画像データの格納領域が、モードを切り替えるメモリ領域の境界を跨いでいるとモードの切り替えが多発するため、パフォーマンスの低下を招く。【解決手段】それぞれが、制御信号により第１モードと当該第１モードよりも消費電力を低下させた第２モードで動作可能な複数のメモリを含む記憶手段を有し、複数のメモリを複数のグループに分割し、各グループのアドレスを管理し、画像データを複数のバンドに分割し、その管理された各グループのアドレスに基づいて、各バンドに対応する画像データを前記複数のグループの互いに異なるグループに、前記複数のグループの境界を跨がないように格納するように制御する。そして、複数のグループの内、アクセス対象のグループのメモリを前記第１モードで動作させ、アクセス対象でないグループのメモリを前記第２モードで動作させるように前記制御信号を出力して、複数のメモリの消費電力を制御する。【選択図】  図３
2017207825.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが、制御信号により第１モードと当該第１モードよりも消費電力を低下させた第２モードで動作可能な複数のメモリを含む記憶手段と、
前記複数のメモリを複数のグループに分割し、各グループのアドレスを管理する管理手段と、
画像データを複数のバンドに分割し、前記管理手段により管理された各グループのアドレスに基づいて、各バンドに対応する画像データを前記複数のグループの互いに異なるグループに、前記複数のグループの境界を跨がないように格納するように制御する書き込み手段と、
前記複数のグループの内、アクセス対象のグループのメモリを前記第１モードで動作させ、アクセス対象でないグループのメモリを前記第２モードで動作させるように前記制御信号を出力する制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記複数のグループそれぞれに書き込まれた画像データを、書き込み時のアドレスと異なる順序で読み出すことにより前記画像データに対する処理を行う読み出し手段を、更に有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像データに対する処理は、画像データの回転を含むことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像データに対する処理は、画像データのフィルタ処理を含むことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
一つのバンドの画像データのデータ量が前記メモリのメモリ容量よりも小さい場合、前記複数のグループのそれぞれは、前記複数のメモリの少なくとも一つを含むことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
一つのバンドの画像データのデータ量が前記メモリのメモリ容量よりも大きい場合、前記複数のグループのそれぞれは、前記複数のメモリのうちの２つ以上のメモリを含むことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項７】
前記複数のメモリのうちの２つ以上のメモリのアドレスは、連続したアドレスであることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記メモリは、レジュームスタンバイモードを有するＳＲＡＭであることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
それぞれが、制御信号により第１モードと当該第１モードよりも消費電力を低下させた第２モードで動作可能な複数のメモリを含む記憶手段を有する画像処理装置を制御する制御方法であって、
前記複数のメモリを複数のグループに分割し、各グループのアドレスを管理する管理工程と、
画像データを複数のバンドに分割し、前記管理工程で管理された各グループのアドレスに基づいて、各バンドに対応する画像データを前記複数のグループの互いに異なるグループに、前記複数のグループの境界を跨がないように格納するように制御する書き込み工程と、
前記複数のグループの内、アクセス対象のグループのメモリを前記第１モードで動作させ、アクセス対象でないグループのメモリを前記第２モードで動作させるように前記制御信号を出力する制御工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置とその制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
ＳＲＡＭのメモリアレイに記憶された記憶情報を保持しながらその他の周辺回路への電源供給を遮断して、メモリアレイのリーク電流を低減する技術がある。
【０００３】
レジュームスタンバイモード（以下、ＲＳモード）を有するＳＲＡＭをレジュームＳＲＡＭと呼び、大容量化が進むメモリや、又はメモリを有する半導体集積回路の消費電力を削減する技術として期待されている。レジュームＳＲＡＭは、特定の容量以上の領域を同時にＲＳモードから通常モードに復帰させるとラッシュカレント（突入電流）が増大し、低電圧動作における記憶情報の保持を保障するのが困難になるという問題がある。
【０００４】
この問題を解決するために、例えば特許文献１には、レジュームＳＲＡＭを特定の容量以下のグループに分割して、各グループをデイジーチェーンで接続する技術が提案されている。これによれば、各グループをＲＳモードから通常モードに復帰させるタイミングを遅延させることで、複数グループが同時に復帰するのを防止してラッシュカレントのピーク電流を低減させている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２５８４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＲＳモードと通常モード間との間でのモード移行の際に、ＳＲＡＭに入力するクロック信号が動作していると、電源電圧の揺れを引き起こし、ＳＲＡＭの記憶情報を保持することを保障できなくなるという問題がある。よって、モードを切り替える際には、クロック信号を一旦停止して所定の期間が経過した後に、モードの切り替えを行う必要がある。従って、パフォーマンスが要求される処理でレジュームＳＲＡＭを使用しているときに、処理途中でモードの切り替えが発生するとメモリへのアクセスができなくなり、パフォーマンスが低下するという課題がある。
【０００７】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００８】
本発明の目的は、モードの切り替えが発生する回数を少なくして、パフォーマンスの低下を極力抑えることができる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
それぞれが、制御信号により第１モードと当該第１モードよりも消費電力を低下させた第２モードで動作可能な複数のメモリを含む記憶手段と、
前記複数のメモリを複数のグループに分割し、各グループのアドレスを管理する管理手段と、
画像データを複数のバンドに分割し、前記管理手段により管理された各グループのアドレスに基づいて、各バンドに対応する画像データを前記複数のグループの互いに異なるグループに、前記複数のグループの境界を跨がないように格納するように制御する書き込み手段と、
前記複数のグループの内、アクセス対象のグループのメモリを前記第１モードで動作させ、アクセス対象でないグループのメモリを前記第２モードで動作させるように前記制御信号を出力する制御手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、モードの切り替えが発生する回数を少なくして、パフォーマンスの低下を極力抑えることができるという効果がある。
【００１１】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１２】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態に係るＭＦＰの構成を説明するブロック図。
【図２】実施形態に係る画像処理部の機能構成を示すブロック図。
【図３】実施形態に係る画像処理モジュールの構成を示すブロック図。
【図４】実施形態に係るＳＲＡＭの構成を説明するブロック図。
【図５】実施形態に係る画像処理部におけるレジュームＳＲＡＭのモード切り替えのタイミングを説明するタイミングチャート。
【図６】従来技術の課題を説明する図。
【図７】実施形態１に係る画像処理部の画像処理コアがＳＲＡＭを使用して画像データの回転処理を行う際のアドレス制御を説明するフローチャート。
【図８】本実施形態におけるＳＲＡＭグループ管理テーブルの一例を示す図。
【図９】実施形態１に係る画像処理モジュールが、レジュームＳＲＡＭを使用する際のアドレス制御を説明する図。
【図１０】本発明の実施形態２に係る画像処理部の画像処理コアが、ＳＲＡＭを使用して画像データのウィンドウ処理を行う際のアドレス制御を説明するフローチャート。
【図１１】従来の技術を説明する図。
【図１２】実施形態３に係る画像処理コアがＳＲＡＭを使用して回転処理を行う際のアドレス制御処理を説明するフローチャート。
【図１３】実施形態３に係る画像処理モジュールが、レジュームＳＲＡＭを使用する際のアドレス制御を説明する図。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本発明の実施形態に係る機能を備える画像処理装置として、スキャン、プリント、コピーなどの複数の機能を有するＭＦＰ（デジタル複合機）を例に説明する。
【００１４】
図１は、本発明の実施形態に係るＭＦＰの構成を説明するブロック図である。
【００１５】
コントローラ１００は、このＭＦＰの動作を制御しており、スキャナ部１０９とプリンタ部１０８をそれぞれ、スキャナＩＦ部１０６とプリンタＩＦ部１０７を介して接続している。コントローラ１００はこれらデバイスを制御することで、画像の読み取りや印刷を実行できる。コントローラ１００では、ＣＰＵ１０１がシステムバス１１２を介して後述する各部と接続されている。
【００１６】
ＣＰＵ１０１は、画像処理部１０３の設定、スキャナ部１０９から入力される画像データの処理、プリンタ部１０８へ出力する画像データの処理などを行う。またＣＰＵ１０１は、ＨＤＤ（ハードディスクドライブ）１０２からＤＲＡＭ１１１に展開されたＯＳやアプリケーションプログラムを実行する。画像処理部１０３は、各種画像処理を行う回路であり、ＣＰＵ１０１によって設定、制御され各種画像処理を行う。画像処理部１０３の構成の詳細は後述する。ここでの画像処理の一例としては、画像データの回転、変倍、色処理、トリミング・マスキング、２値変換、多値変換、白紙判定等の各種画像処理がある。またプリント画像処理としては、プリント対象の画像データに対して、プリンタ部１０８に応じた画像処理や補正等を行う。スキャン画像処理としては、スキャナ部１０９から入力された画像データに対して、補正、加工、編集等の各種処理を行う。
【００１７】
ＲＯＭＩＦ部１０４は、ブートＲＯＭ１１０にアクセスするためのＩＦモジュールである。ＭＦＰの電源が投入された時に、ＣＰＵ１０１がＲＯＭＩＦ部１０４を介してブートＲＯＭ１１０にアクセスしてブートプログラムを実行し、ＨＤＤ１０２にインストールされているプログラムをＤＲＡＭ１１に展開する。ＤＲＡＭＩＦ部１０５は、ＤＲＡＭ１１１にアクセスするためのＩＦ（インターフェース）部である。ＤＲＡＭＩＦ部１０５は、ＤＲＡＭ１１１の設定や制御を行うためのレジスタを備えており、このレジスタはＣＰＵ１０１からアクセス可能である。操作部ＩＦ部１１３は、ユーザが操作部１１４を操作した操作指示を受け付け、また操作結果を表示するように制御する。ネットワークＩＦ部１１２は、例えばＬＡＮカード等で実現され、図示していないがＬＡＮ等のネットワークに接続して外部装置との間でデバイス情報や画像データの入出力を行う。
【００１８】
図２は、実施形態に係る画像処理部１０３の機能構成を示すブロック図である。
【００１９】
この画像処理部１０３は、画像処理回路である画像処理モジュール２０１〜２０４を有している。尚、実施形態では、４つの画像処理モジュールを有する場合で説明するが、更に多数のモジュール数があっても、或いは少数のモジュール数であってもよい。また本実施形態では、これら画像処理モジュールはハードウェアで構成されているが、ソフトウェアで実現されても良い。
【００２０】
図３は、実施形態に係る画像処理モジュール２０１〜２０４の一つの構成を示すブロック図である。以下、図３を参照して、実施形態に係るＳＲＡＭの低消費電力モード（ＲＳモード）への移行、及び通常モードへの復帰制御とクロック信号の制御を行う構成について説明する。尚、ここで画像処理モジュール２０１〜２０４は同じ構成を有しており、それぞれ、ＲＳ制御部３０１、ＣＧ（クロックゲーティングセル）３０２〜３０５、ＳＲＡＭ３０６〜３０９、及び画像処理回路である画像処理コア３１０を有している。
【００２１】
ここでＳＲＡＭは、前述したように、レジュームスタンバイモードで動作可能なメモリで、制御信号（ＲＳ信号）により第１モード（通常モード）と当該通常モードよりも消費電力を低下させた第２モード（ＲＳモード）で動作可能である。
【００２２】
ＲＳ制御部３０１は、ＳＲＡＭ３０６〜３０９のＲＳ信号（ＲＳ１、ＲＳ２、ＲＳ３、ＲＳ４）とクロック信号（ＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４）を制御する。ＲＳ制御部３０１は、内部に図示しないカウンタ回路を備え、モード移行時における、ＲＳｉ信号とＣＬＫｉ信号を制御している。即ち、カウンタ回路は、通常モードからＲＳモードへ移行する際、ＣＧ３０２〜３０５のクロックゲートイネーブル信号であるＣＧ＿ＥＮｉ（ｉ＝１〜４）に「１」を設定してから、ＲＳｉに「１」（ＲＳモード）を設定するまでのクロック数をカウントする。又、ＲＳモードから通常モードへ移行する際、ＲＳｉ信号に「０」（通常モード）を設定してから、ＣＧ＿ＥＮｉに「０」（クロック発振）を設定するまでのクロック数をカウントする。これらＣＧ＿ＥＮｉ信号、ＲＳｉ信号を設定するタイミングは、画像処理中に、ＳＲＡＭ３０６〜３０９に対して画像データの書き込み、或いは読み出しを行うタイミングに合わせて制御される。
【００２３】
ＣＧ３０２〜３０５は、画像処理モジュール２０１〜２０４の動作クロックであるＣＬＫ信号を入力し、ＣＧ＿ＥＮｉ信号によってＳＲＡＭ３０６〜３０９の動作クロックであるＣＬＫｉの供給・停止を制御する。即ち、クロックゲートイネーブル信号ＣＧ＿ＥＮｉが「１」のときはＣＬＫ信号を遮断し、ＣＧ＿ＥＮｉが「０」のときはＣＬＫ信号をＳＲＡＭに供給する。ＳＲＡＭ３０６〜３０９は、レジュームスタンバイモードを備えるレジュームＳＲＡＭであり、ＲＳｉが「１」のときはＲＳモードに移行し、ＲＳｉが「０」のときは通常モードに移行し、それぞれ画像処理コア３１０へ接続されている。ＳＲＡＭ３０６〜３０９の詳細については後述する。画像処理コア３１０は画像処理回路であり、ＳＲＡＭ３０６〜３０９を画像データのバッファ等として使用して画像処理を行う。画像処理コア３１０は、ＳＲＡＭ３０６〜３０９へのデータ転送機能を有しており、ＳＲＡＭ３０６〜３０９への画像データの書き込み、及びＳＲＡＭ３０６〜３０９からのデータの読み出し制御を行う。
【００２４】
ＳＲＡＭグループ管理部３１１は、レジュームＳＲＡＭのメモリ領域を、ラッシュカレントを抑える特定のメモリ容量以下の単位で分割した各グループ（以下、ＳＲＡＭグループ）のアドレスを管理する。本実施形態では、ＳＲＡＭ３０６〜３０９のそれぞれのＳＲＡＭの１つが、１つのＳＲＡＭグループとなる。尚、本実施形態では、ＳＲＡＭグループは、１つのＳＲＡＭで構成されるものとして説明するが、ＳＲＡＭグループは複数のＳＲＡＭで構成されてもよい。ＳＲＡＭグループ管理部３１１は、画像処理コア３１０よりＳＲＡＭグループのＩＤ情報であるＧ＿ＩＤ信号を受信すると、対応するＳＲＡＭグループの先頭アドレスＧＳＴ＿ＡＤ信号と、終了アドレスＧＥＤ＿ＡＤ信号を画像処理コア３１０へ出力する。これにより、画像処理コア３１０は、アクセスしたいＳＲＡＭグループの先頭アドレスと終了アドレスを取得することができ、それらアドレスに従ってＳＲＡＭにアクセスすることができる。
【００２５】
図４は、実施形態に係るＳＲＡＭ３０６〜３０９の一つの構成を説明するブロック図である。尚、ここでＳＲＡＭ３０６〜３０９は、全て同じ構成である。
【００２６】
入力信号は、チップセレクト信号（ＣＳ）、ライトイネーブル信号（ＷＥ）、アドレス信号（ＡＤＤＲ）、データ入力信号（ＤＩＮ）、クロック信号（ＣＬＫｉ）及びレジュームスタンバイ信号（ＲＳｉ）である。出力信号は、データ出力信号（ＤＯＵＴ）である。ここでｉは１〜４のいずれかの値を取り得る。
【００２７】
制御部４０１は、ＣＳ信号やＷＥ信号よりメモリ動作のタイミング信号を生成するタイミング制御回路を備える。又、ＲＳｉ信号に従って、ワードドライバ部４０２とカラム部４０３への電力供給を遮断する回路を備える。更に、制御部４０１のＲＳ制御以外の部分も、ＲＳｉ信号が「１」の時に電力供給を遮断することが可能である。
【００２８】
ワードドライバ部４０２は、ＡＤＤＲ信号をデコードしてメモリアレイ部４０４のロウアドレスのどの領域を活性させるかを決定する。上述したようにワードドライバ部４０２は、制御部４０１によってＲＳモード時に電力供給が遮断される。カラム部４０３は、ＡＤＤＲ信号をデコードしてメモリアレイ部４０４のカラムアドレスのどの領域を活性させるかを決定する。上述したようにカラム部４０３も、制御部４０１によってＲＳモード時に電力供給が遮断される。メモリアレイ部４０４は、スタティック型のメモリセルをマトリクス状に配置し、ワードドライバ部４０２とカラム部４０３で決定されるメモリセルにデータを保持する。メモリアレイ部４０４は、ＲＳモード時にも電力が供給されており、これによりＲＳモード時であっても、データを保持することができる。
【００２９】
次にレジュームＳＲＡＭのＲＳモード、及び通常モードのモード切り替え制御について説明する。
【００３０】
図５は、実施形態に係る画像処理部１０３におけるレジュームＳＲＡＭのモード切り替えのタイミングを説明するタイミングチャートである。
【００３１】
始めにレジュームＳＲＡＭがＲＳモードに移行するときのシーケンスを説明する。
【００３２】
画像処理部１０３の動作クロックであるＣＬＫ信号は、図示していないクロック生成モジュールから供給される信号で、ＭＦＰの電源がオンの状態で常に供給されている。
【００３３】
いま時間ｔ０において、ＲＳ制御部３０１は、ＣＰＵ１０１もしくは画像処理コア３１０の指示により、ＣＧ＿ＥＮｉ信号をクロック停止状態を示す「１」に設定する。ＣＧ＿ＥＮｉ信号を「１」にするタイミングは、画像処理コア３１０が、ＣＧ＿ＥＮｉ信号に対応するＳＲＡＭ３０６〜３０９へのアクセスを終了したタイミング、或いはソフトウェアが未使用と判断したタイミングである。次に時間ｔ１において、ＣＧ３０２〜３０５は、ＣＧ＿ＥＮｉ信号が「１」の状態でＣＬＫ信号の立ち上がりに同期してＣＬＫｉ信号を停止する。これによりＳＲＡＭ３０６〜３０９への供給されるクロック信号ＣＬＫｉが停止される。
【００３４】
次にＲＳ制御部３０１は、時間ｔ１でＣＧ＿ＥＮｉ信号が「１」となりＣＬＫｉ信号が停止されてからｔ＿ｉｎ時間後の時間ｔ２において、ＲＳｉ信号を「１」にセットする。このようにして、ＳＲＡＭ３０６〜３０９に入力されるＣＬＫｉ信号を停止した状態でＲＳモードへ移行させることにより、ＲＳモードに移行する際の電源の揺れを抑えることができる。これによりＳＲＡＭによるデータの保持を保障することが可能となる。ここでｔ＿ｉｎ時間は、ＣＰＵ１０１がレジスタの設定値を変更することにより、その時間を調整することができる。
【００３５】
次に、ＲＳモードから通常モードへの移行シーケンスについて説明する。
【００３６】
時間ｔ３において、ＲＳ制御部３０１は、ＣＰＵ１０１もしくは画像処理コア３１０の指示により、ＲＳｉ信号を「０」に設定する。このＲＳｉ信号を「０」にするタイミングは、画像処理コア３１０が、ＲＳｉ信号に対応する、アクセス対象であるＳＲＡＭ３０６〜３０９へのアクセスを開始するタイミング、もしくはソフトウェアが使用を開始したと判断したタイミングである。次にＲＳ制御部３０１は、時間ｔ３でＲＳｉ信号が「０」となってから、最初のＣＬＫ信号の立ち上がりタイミングである時間ｔ４からｔ＿ｏｕｔ時間後の時間ｔ５において、ＣＧ＿ＥＮｉ信号を「０」にする。ここでｔ＿ｏｕｔ時間はＣＰＵ１０１が、レジスタの設定値を変更することにより、その時間を調整することができる。次に時間ｔ６において、ＣＧ３０２〜３０５は、ＣＧ＿ＥＮｉ信号が「０」になったことを受けて、ＣＬＫｉ信号をＳＲＡＭ３０６〜３０９に供給して、通常モードへの移行を完了する。
【００３７】
次に本発明の実施形態１を説明する前に、従来の画像回転処理モジュールが、レジュームＳＲＡＭを使用する際のアドレス制御について説明する。
【００３８】
図６は、従来技術の課題を説明する図である。
【００３９】
図６（Ａ）に示す回転前の画像データ６００は、画像回転処理を行う前の画像のイメージで、幅が３００画素、高さが３２画素、データ階調が８ビット、色数はＣＭＹＫの４色の画像データである。この画像データ６００は、使用するメモリ容量を抑えるために、それぞれが幅３００画素×高さ８画素の４つのバンド画像６０１〜６０４に分割されて、バンド画像単位でＳＲＡＭへリード・ライトされる。
【００４０】
図６（Ｂ）は、入力画像（画像データ６００）を時計回り方向に２７０度回転させた後の画像データ６３０を示している。
【００４１】
図６（Ｃ）は、ＳＲＡＭへ書き込まれる画像データ６００のアドレス配置、書き込みアドレスの順序を示す模式図である。図６（Ｃ）において、ＳＲＡＭグループのメモリ領域６１１〜６１４は太線で囲まれた領域で、ラッシュカレントを抑えるために、特定のメモリ容量以下の単位で分割した各グループ（以下、ＳＲＡＭグループ）に対応する領域である。これらＳＲＡＭグループのメモリ領域６１１〜６１４は、先頭アドレスから連続したアドレスで配置されている。
【００４２】
画像回転処理モジュールは、処理を高速化するために、２バンド分の領域を使用し、書き込みを行うバンド領域と、読み出しを行うバンド領域とを、１バンドずつ交互に入れ替えながら処理を行う。そのためＳＲＡＭには、図６（Ｃ）に示すように、バンド画像６０１，６０２の２バンド分の画像データが格納される。ここで従来の場合、ＳＲＡＭへ格納するメモリ領域を節約するために、最初のバンド画像６０１と２バンド目のバンド画像６０２は隣接して記憶される。このため図６（Ｃ）に示すように、２バンド目のバンド画像６０２は、ＳＲＡＭグループのメモリ領域６１１と、ＳＲＡＭグループのメモリ領域６１２の両方のメモリ領域に跨って格納される。
【００４３】
次に画像データの回転処理の場合、書き込み時は横方向（図６（Ｃ）の点線の矢印の方向）にＳＲＡＭへ格納する。そして、レジュームＳＲＡＭを使用する場合は、消費電力を極力抑えるために、アクセス中のＳＲＡＭグループのみを通常モードで使用し、それ以外のＳＲＡＭグループはＲＳモードで使用する。従って、図６（Ｃ）における、２バンド目のバンド画像６０２の画素ＡまではＳＲＡＭグループの領域６１１に書き込み、画素ＢからはＳＲＡＭグループの領域６１２へ書き込むことになる。つまり画素Ａまでは、メモリ領域６１１のＳＲＡＭグループを通常モードで動作させ、メモリ領域６１２〜６１３に対応するＳＲＡＭグループをＲＳモードで動作させる。そして画素Ｂからは、メモリ領域６１２のＳＲＡＭグループを通常モードにし、メモリ領域６１１，６１３，６１４に対応するＳＲＡＭグループをＲＳモードで動作させる。よって、図６（Ｃ）の画像データの書き込み時は、モードの切り替えが１回発生する。
【００４４】
図６（Ｄ）は、図６（Ｃ）で書き込んだ画像データをＳＲＡＭより読み出して、時計回り方向に２７０度回転させたリード画像６３０を得るための読み出しアドレスの順序を説明する模式図である。この画像データの回転処理では、回転角度に応じて、読出しアドレスの順序を、書き込み時のアドレス順序と変更することにより、所望の回転した画像データを生成する。図６（Ｄ）に示す点線の矢印は、回転角度が２７０度の際の読み出しアドレスの順序を示している。２７０度回転の場合には、読み出し時は、縦方向（図６（Ｄ）の点線の矢印の方向）にＳＲＡＭより読み出す。従って、図６（Ｄ）における、２バンド目のバンド画像６０２の１列目では、画素Ｃと画素Ｄの間、そして１列目の最終行目（８行目）の画素Ｅと、２列目の１行目の画素Ｆの間で、それぞれモードの切り替えが発生する。こうして、２バンド目のバンド画像６０２の全ての列で同様のモード切り替えが発生し、この例では、合計６００回のモード切り替えが発生するため、パフォーマンスの大きな低下を引き起こすことになる。
【００４５】
［実施形態１］
次に本発明の実施形態１に係るＭＦＰにおけるレジュームＳＲＡＭのアドレス制御について説明する。
【００４６】
図７は、実施形態１に係る画像処理部１０３の画像処理モジュールの画像処理コア３１０がＳＲＡＭ３０６〜３０９を使用して画像データの回転処理を行う際のアドレス制御を説明するフローチャートである。
【００４７】
図７のフローチャートを参照して、ＤＲＡＭ１１１に格納されている、幅が３００画素、高さが３２画素、データ階調が８ビット、色数がＣＭＹＫの４色の画像データ（図６（Ａ））を時計回り方向に２７０度回転する場合について説明する。
【００４８】
まずＳ７０１で、ジョブで設定された内容に基づいて、必要なバンドバッファ容量、バンド数を算出する。
【００４９】
ここでは例えばユーザが操作部１１４を操作して、回転する画像データの選択と、回転角度を設定してプリント開始を指示することにより、この処理が開始される。まずＣＰＵ１０１は、選択された画像データの情報をＤＲＡＭ１１１より取得する。例えば図６（Ａ）の画像データ６００の場合、ＣＰＵ１０１は、画像データの情報として、幅が３００画素、高さが３２画素、データ階調が８ビット、色数がＣＭＹＫの４色の情報を取得する。そしてＣＰＵ１０１は、これら画像データの幅、高さ、階調、色数の情報を、画像処理コア３１０のレジスタ（不図示）に設定する。
【００５０】
これにより画像処理コア３１０はＳ７０１で、そのレジスタに設定された画像データの情報を基に、必要なバンドバッファの容量、バンド数を算出する。画像処理コア３１０では、バンドバッファの高さの初期値は、８画素に設定されている。バンドバッファの高さを、初期値の８画素の設定のまま使用すると、１バンドのデータ量として、幅３００画素×高さ８画素×階調８ビット×色数４＝２４００（ワード）が得られる。又、バンド数として画像高さ３２画素÷バンド高さ８画素＝４（バンド）が得られる。
【００５１】
次にＳ７０２に進み画像処理コア３１０は、転送するバンド画像が最初のバンド画像か否かを判定する。ここで最初のバンド画像と判定するとＳ７０３へ進み、２番目以降のバンド画像を転送する場合はＳ７０４へ進む。Ｓ７０３で画像処理コア３１０は、先頭のＳＲＡＭグループを、バンドバッファを構成するグループとして選択する。実施形態１では、先頭のＳＲＡＭグループであるＳＲＡＭ３０６をバンドバッファを構成するＳＲＡＭグループとして選択してＳ７０５に進む。
【００５２】
一方、Ｓ７０４で画像処理コア３１０は、次のＳＲＡＭグループをバンドバッファを構成するグループとして選択してＳ７０５に進む。実施形態１では、ＳＲＡＭ３０７、ＳＲＡＭ３０８、ＳＲＡＭ３０９の順番で、バンドバッファを構成するＳＲＡＭグループとして選択する。
【００５３】
Ｓ７０５で画像処理コア３１０は、Ｇ＿ＩＤ信号により、選択したＳＲＡＭ３０６の識別情報をＳＲＡＭグループ管理部３１１に伝える。これにより、ＳＲＡＭグループ管理部３１１からＧＳＴ＿ＡＤ信号とＧＥＤ＿ＡＤ信号が供給され、その選択したＳＲＡＭグループのメモリ領域のアドレス情報を取得して、その選択されたＳＲＡＭグループのメモリ容量を求める。ＳＲＡＭグループ管理部３１１は、ＳＲＡＭグループ毎のメモリ領域（先頭アドレス、終了アドレス）が登録されているＳＲＡＭグループ管理テーブルを備えている。
【００５４】
図８は、実施形態１に係るＳＲＡＭグループ管理テーブルの一例を示す図である。
【００５５】
図８の例では、ＳＲＡＭ３０６〜３０９に対応する、ＳＲＡＭグループ１〜４の４つのＳＲＡＭグループの開始アドレスと終了アドレスが登録されている。ＳＲＡＭグループ１のメモリ領域の開始アドレスは０ｘ００００、終了アドレス０ｘ３ＦＦＣとして登録されている。またＳＲＡＭグループ２のメモリ領域の開始アドレスは０ｘ４０００、終了アドレス０ｘ７ＦＦＣとして登録されている。更にＳＲＡＭグループ３のメモリ領域の開始アドレスは０ｘ８０００、終了アドレス０ｘＢＦＦＣとして登録されている。そしてＳＲＡＭグループ４のメモリ領域の開始アドレスは０ｘＣ０００、終了アドレス０ｘＦＦＦＣとして登録されている。
【００５６】
これによりＳＲＡＭグループ管理部３１１は、画像処理コア３１０からのＧ＿ＩＤにより指定されたＳＲＡＭグループの識別情報に基づいて、ＳＲＡＭグループ管理テーブルより、対応するＳＲＡＭグループのアドレス情報を取得する。いま例えば、選択されているＳＲＡＭグループがＳＲＡＭ３０６であれば、ＳＲＡＭグループ１のアドレス情報として、開始アドレス０ｘ００００、終了アドレス０ｘ３ＦＦＣを取得する。
【００５７】
そして画像処理コア３１０は、その取得したアドレス情報に基づいて、ＳＲＡＭグループのメモリ容量を算出する。図８のＳＲＡＭグループ管理テーブルの例では、ＳＲＡＭグループ１のメモリ容量として、（終了アドレス：０ｘ３ＦＦＣ−開始アドレス：０ｘ００００）÷４バイト＋１＝４０９６（ワード）が求められる。
【００５８】
次にＳ７０６に進み画像処理コア３１０は、バンドの先頭アドレスを、選択したＳＲＡＭグループの開始アドレスに設定する。例えばＳ７０４の処理で、ＳＲＡＭグループ管理部３１１より取得した、選択したＳＲＡＭグループがＳＲＡＭ３０６の場合、その開始アドレスは０ｘ００００である。よってバンド先頭アドレスとして０ｘ００００を設定する。
【００５９】
次にＳ７０７に進み画像処理コア３１０は、設定もしくは算出したバンド先頭アドレスに従ってバンドデータの転送処理を行う。１つ目のバンド画像の場合は、ＳＲＡＭ３０６のアドレス０ｘ００００より画像データを転送し、バンドのデータ量、即ち、前述の２４００ワードが、そのＳＲＡＭ３０６のメモリ領域に対して格納される。次にＳ７０８に進み画像処理コア３１０は、画像データの回転処理を行う。この回転処理は、ＳＲＡＭ３０６へ格納したときのアドレス順序に対して、読み出す際のアドレス順序の方向を変えることにより回転した画像データを生成する。回転角度が０度の場合は、ライト（格納）時のアドレス順序と、同じアドレス順序でリード（読み出し）する。回転角度が９０度の場合は、メモリ領域を行と列の２次元アドレスで見た場合に、ライト時は行方向のアドレス順序に対し、リード時は列方向の下の行から上の行に向かうアドレス順序で、左の列より順番に読み出す。また回転角度が１８０度の場合は、リード時は右の列から左の列に向かうアドレス順序で、下の列より順番に読み出す。また上述のように回転角度が時計回り方向に２７０度の場合は、読み出し時は、列方向の上の行から下の行に向かうアドレスの順序で左の列より順番に読み出す。
【００６０】
次にＳ７０９に進み画像処理コア３１０は、転送するバンド画像がまだ存在するか否かを判定する。まだ転送するバンド画像が存在する場合はＳ７１０へ進むが、転送するバンド画像が存在しないと判定すると、このバンド処理を終了する。Ｓ７１０で画像処理コア３１０は、残りのＳＲＡＭグループのメモリ容量を求める。ここでは、バンド転送前の残りのＳＲＡＭグループのメモリ容量と、バンドのデータ量より、残りのＳＲＡＭグループのメモリ容量の残量を求める。
【００６１】
１バンド目の転送後の場合を例にとり説明すると、ＳＲＡＭグループの残りのメモリ容量である、４０９６ワード（一つのＳＲＡＭグループのメモリ容量）−２４００ワード（バンドデータ量）＝１６９６ワードを求める。そしてＳ７１１に進み画像処理コア３１０は、ＳＲＡＭグループの残りのメモリ容量（１６９６ワード）が、バンドのデータ量以上であるか否かを判定する。ここで、Ｓ７１０で算出したＳＲＡＭグループの残りのメモリ容量が、バンドのデータ量以上であると判定した場合はＳ７１２へ進むが、そうでないときはＳ７０２へ進む。Ｓ７１２で画像処理コア３１０は、現在のバンド先頭アドレスと、バンドのデータ量より、次のバンド画像のバンド先頭アドレスを求める。このＳ７１２では、直前のバンド画像の格納で使用したＳＲＡＭグループの残りのメモリ容量が、次のバンド画像のデータ量以上であるため、同じＳＲＡＭグループに、そのバンド画像を格納する。よってバンド先頭アドレスは、現在のバンド先頭アドレスにバンドのデータ量を加算することにより得られる。そしてＳ７１２の処理が終了するとＳ７０７へ進み、バンドデータの転送処理を実行する。また、Ｓ７１１で画像処理コア３１０は、ＳＲＡＭグループの残りのメモリ容量（１６９６ワード）が、バンドのデータ量以上でない、即ち、現在のＳＲＡＭグループに、そのバンドデータを格納できないときはＳ７０２に進む。そしてＳ７０２からＳ７０４に進み画像処理コア３１０は、次のＳＲＡＭグループとしてＳＲＡＭ３０７を選択してＳ７０５に進む。
【００６２】
図６（Ａ）の画像データ６００を処理する場合、一つのバンド画像の転送後は、どのバンド画像を転送する際も、Ｓ７１１の処理において、現在のＳＲＡＭグループの残りのメモリ容量は、バンドのデータ量よりも小さくなるためＳ７０２へ進む。Ｓ７０２の処理では、最初のバンド画像の転送ではないためＳ７０４へ進む。そしてＳ７０４で、次のＳＲＡＭグループをバンドデータを格納するＳＲＡＭグループとして選択する。よって、２バンド目はＳＲＡＭ３０７、３バンド目はＳＲＡＭ３０８、４バンド目はＳＲＡＭ３０９を選択する。以降、同様の処理を繰り返し、全てのバンド画像に対する処理を終了すると、一連のシーケンス処理を終了する。
【００６３】
図９は、実施形態１に係る画像処理モジュール２０１〜２０４が、レジュームＳＲＡＭを使用する際のアドレス制御を説明する図である。この場合のライト画像６００及びリード画像６３０は、前述の図６（Ａ）（Ｂ）と同じである。
【００６４】
図９（Ａ）はＳＲＡＭ３０６〜３０７へライト画像６００を書き込んだ時のアドレス配置、書き込みアドレスの順序を説明する図である。
【００６５】
図９（Ａ）に示すように、２バンド目のバンド画像６０２は、ＳＲＡＭグループメモリ領域６１２の最初の先頭アドレスから格納される。以降、３〜４バンド目のバンド画像６０３〜６０４も同様に、それぞれＳＲＡＭグループメモリ領域６１３〜６１４の先頭アドレスから格納される。つまり実施形態１に係る画像処理モジュール２０１〜２０４の場合は、バンド画像は、複数のＳＲＡＭグループのメモリ領域を跨がないように、各グループに対応するＳＲＡＭに格納される。
【００６６】
図９（Ｂ）はＳＲＡＭ３０６〜３０７から画像データを読み出して、前述のリード画像６３０を得るときの読み出しアドレス、及びその読出しアドレスの順序を説明する図である。図９（Ｂ）に示すように、１、２バンド目のバンド画像６０１，６０２は、それぞれＳＲＡＭグループ６１１，６１２のメモリ領域に含まれているため、バンド画像をリードする際にモードの切り替えが発生しない。唯一、２バンド目のバンド画像６０２の読み出しを開始するときに、モード切り替えが発生するだけである。従って、モード切り替えの回数を少なくして画像データの回転処理を実行できるため、モード切り替えによるパフォーマンスの低下を抑えることができる。
【００６７】
以上説明したように実施形態１によれば、ＳＲＡＭへの画像データの書き込み時、及びＳＲＡＭからの画像データの読出し時にＲＳモードと通常モードとの切り替えが発生する回数を最小にして画像データを回転させることができる。これにより、モードの切り替えに起因するパフォーマンスの低下を抑えることができる。
【００６８】
［実施形態２］
前述の実施形態１では、画像処理モジュール２０１〜２０４が画像データの回転処理を実行するモジュールであるときの、レジュームＳＲＡＭのアドレス制御について説明した。
【００６９】
これに対して実施形態２では、画像処理モジュール２０１〜２０４がウィンドウ処理を行うモジュールである場合のレジュームＳＲＡＭのアドレス制御について説明する。尚、実施形態２に係るＭＦＰのハードウェア構成等は、前述の実施形態１と同様であるため、その説明を省略する。
【００７０】
画像処理においてフィルタ処理やパターンマッチング処理などでよく使用されるウィンドウ処理においても、画像データの回転処理と同様の問題が発生することが予想される。ウィンドウ処理においても、ウィンドウを形成するメモリ領域が、ＳＲＡＭグループの境界に跨いでいると、着目画素に対するウィンドウ領域の画像データを参照（リード）する毎にモードの切り替えを行う必要がある。ウィンドウ領域の画像データの参照は、画素毎に行われるためモードの切り替えが多発し、パフォーマンスの低下を招く恐れがある。
【００７１】
図１０は、本発明の実施形態２に係る画像処理部の画像処理コア３１０が、ＳＲＡＭを使用して画像データのウィンドウ処理を行う際のアドレス制御を説明するフローチャートである。図１０のフローチャートでは、ＤＲＡＭ１１１に格納されている、幅が３００画素、高さが３２画素、データ階調が８ビット、色数がＣＭＹＫの４色の画像データ（図６（Ａ））に対して、フィルタ処理を行う場合で説明する。尚、フィルタ処理で使用するウィンドウサイズは、幅が５画素、高さが５画素とする。図１０に示すフローチャートは、前述の図７のフローチャートとほぼ同じであるため、それとの差分を中心に説明する。
【００７２】
Ｓ１００１の処理は、実施形態１に係るＳ７０１の処理とほとんど同じであるが、バンドバッファの高さについて、ウィンドウ処理におけるウィンドウサイズを考慮する必要がある。図６（Ａ）に示す３００画素×３２画素の画像データを、３００画素×８画素のバンド画像で縦方向に４つに分割する場合、着目画素がバンド画像の端の列の場合には、ウィンドウ形成には上下の周辺列の画素が必要になる。従って、ウィンドウサイズが５画素×５画素の場合には、上下の２列分の画素データについてもバンド画像と一緒に格納する必要がある。よって、図６（Ａ）に示すように４つのバンド画像に分割する場合は、１バンド目のバンドバッファの高さは、バンド画像の８画素に下方向の２列分の画素を加えた１０画素となる。また２〜３バンド目のバンドバッファの高さは、バンド画像の８画素に上下方向の４列分の画素を加えた１２画素となる。そして、４バンド目のバンドバッファの高さは、バンド画像の８画素に上方向の２列分の画素を加えた１０画素となる。
【００７３】
次にＳ１００２〜Ｓ１００７の処理は、実施形態１に係る図７のＳ７０２〜Ｓ７０７の処理と同じであるため、その説明を割愛する。
【００７４】
Ｓ１００８で画像処理コア３１０はフィルタ処理を行う。このフィルタ処理は、ＳＲＡＭ３０６〜３０９へ格納されたバンド画像データより、５画素×５画素サイズのウィンドウ画像データを、先頭画素より順番に形成する。そして形成したウィンドウ画像データに対して、各ウィンドウの座標毎にレジスタ設定されたフィルタ係数と演算することにより、所望のフィルタ結果を得る。そしてＳ１００９〜Ｓ１０１２の処理は、実施形態１に係る図７のＳ７０９〜Ｓ７１２の処理と同じであるため、その説明を割愛する。そしてＳ１０１２の処理が終了した後はＳ１００７へ進み、次にバンドデータの転送処理を実行する。以降、同様の処理を繰り返し、全てのバンド画像についての処理を終了後、一連のシーケンス処理を終了する。
【００７５】
実施形態２では、前述の実施形態１と同様に、バンド画像は複数のＳＲＡＭグループのメモリ領域を跨がないメモリ領域に格納されるように制御される。これにより、画像データのフィルタ処理におけるモード切り替え回数を少なくできるため、モード切り替えによるパフォーマンスの低下を抑えることができる。
【００７６】
［実施形態３］
前述の実施形態１，２では、レジュームＳＲＡＭに格納するバンドのデータ量が、ＳＲＡＭグループのメモリ容量よりも少ない場合のアドレス制御を説明した。これに対して実施形態３では、レジュームＳＲＡＭに格納するバンドのデータ量が、ＳＲＡＭグループのメモリ容量よりも大きい場合について説明する。尚、実施形態３に係るＭＦＰのハードウェア構成等は、前述の実施形態１と同様であるため、その説明を省略する。
【００７７】
図１１は、従来の技術を説明する図で、ＳＲＡＭグループのメモリ容量よりも大きいバンドデータをレジュームＳＲＡＭに格納する際のアドレス制御を説明する図である。
【００７８】
図１１（Ａ）に示す画像データ１１００は、回転処理を行う前の画像のイメージで、幅が３００画素、高さが３２画素、データ階調が８ビット、色数はＣＭＹＫの４色の画像データである。
【００７９】
この画像データ１１００は、使用するメモリ容量を抑えるために、幅３００画素×高さ１６画素の２つのバンド画像１１０１〜１１０２に分割され、バンド画像単位でＳＲＡＭ３０６〜３０９へリード・ライトされる。
【００８０】
図１１（Ｂ）のリード画像１１３０は、回転処理を行った後の画像のイメージを示し、入力画像データ１１００を時計回り方向に２７０度回転させた後の画像データである。
【００８１】
図１１（Ｃ）は、ＳＲＡＭ３０６〜３０９へ書き込まれる画像データ１１００のアドレス、書き込みアドレス順序を示す模式図である。図１１（Ｃ）において、ＳＲＡＭグループメモリ領域６１１〜６１４は、それぞれＳＲＡＭ３０６〜３０９に対応するメモリ領域である。図１１（Ｃ）に示すようにＳＲＡＭ３０６〜３０９のメモリ領域は、ＳＲＡＭ３０６、ＳＲＡＭ３０７、ＳＲＡＭ３０８、ＳＲＡＭ３０９の順番に先頭アドレスから連続して配置されている。図１１（Ｃ）において、太線で囲まれた枠はＳＲＡＭ３０６〜３０９のメモリ領域６１１〜６１４を示し、細線で区切られた領域は、バンド画像１１０１，１１０２に対応している。
【００８２】
画像処理モジュール２０１〜２０４の回転処理モジュールは、処理を高速化するために２バンド分のメモリ領域を使用して、書き込むバンド領域と、読み出すバンド領域を、１バンドずつ交互に入れ替えながら処理を行う。そのため、ＳＲＡＭ３０６〜３０８には、図１１（Ｃ）に示すように、バンド画像１１０１〜１１０２の２バンド分の画像データが格納される。ここで、従来のＳＲＡＭを使用した場合のアドレス配置は、ＳＲＡＭ３０６〜３０９へ格納するメモリ領域を節約するために、最初のバンド画像１１０１と２バンド目のバンド画像１１０２とは隣接して格納される。
【００８３】
この場合、図１１（Ｃ）に示すように、１バンド目のバンド画像１１０１のメモリ領域は、ＳＲＡＭグループメモリ領域６１１のメモリ領域よりも大きくなる。つまりバンド画像１１０１が、一つのＳＲＡＭグループのメモリ容量に入らないので、ＳＲＡＭグループメモリ領域６１１と、ＳＲＡＭグループメモリ領域６１２の両方のメモリ領域に跨って格納される。よってバンド画像のデータ量が、一つのＳＲＡＭグループのメモリ容量よりも大きい場合には、複数のＳＲＡＭグループを通常モードで使用し、アクセスしないその他のＳＲＡＭグループは、消費電力を抑制するためにＲＳモードで使用する。
【００８４】
従って、図１１（Ｃ）では、２バンド目のバンド画像１１０２の画素Ｇまでは、ＳＲＡＭ３０６〜３０７を通常モードとし、ＳＲＡＭ３０８〜３０９をＲＳモードで使用する。そしてバンド画像１１０２の画素Ｈからは、ＳＲＡＭ３０８〜３０９を通常モード、ＳＲＡＭ３０６〜３０７をＲＳモードで使用するよう制御する。こうして、画像データの回転処理を実行するときの画像データの書き込み時には、図１１（Ｃ）のように、モードの切り替えが１回発生することになる。
【００８５】
図１１（Ｄ）は、画像データを回転させてＳＲＡＭ３０６〜３０８から読み出すときのリード画像１１３０の読み出しアドレスの順序を説明する模式図である。図１１（Ｄ）に示すように、画像データの回転の場合は、その回転角度に応じて、読み出しアドレスの順序を、書き込み時のアドレスの順序と変更することにより、所望の角度だけ回転した画像データを生成することができる。図１１（Ｄ）に示す点線の矢印は、回転角度が２７０度の際の読み出しアドレスの順序を示している。２７０度回転の場合には、読み出し時は縦方向（図６（Ｄ）の点線の矢印の方向）にＳＲＡＭ３０６〜３０８より読み出す。従って、図１１（Ｄ）における、２バンド目のバンド画像１１０２の１列目では、画素Ｉと画素Ｊの間、そして１列目の最終行目（１６行目）の画素Ｋと、２列目の１行目の画素Ｌの間で、それぞれモードの切り替えが発生する。このように、バンド画像１１０２の全ての列について同様のモード切り替えが発生するため、多数（合計６００回）のモード切り替えが発生し、パフォーマンスの大きな低下を引き起こすことになる。
【００８６】
次に実施形態３の特徴であるバンドバッファ容量がＳＲＡＭグループの容量より大きい場合のレジュームＳＲＡＭのアドレス制御について説明する。
【００８７】
図１２は、実施形態３に係る画像処理コア３１０がＳＲＡＭ３０６〜３０９を使用して回転処理を行う際のアドレス制御処理を説明するフローチャートである。
【００８８】
図１２のフローチャートでは、ＤＲＡＭ１１１に格納されている、幅が３００画素、高さが３２画素、データ階調が８ビット、色数がＣＭＹＫの４色の画像データ（図１１（Ａ））を、時計回り方向に２７０度回転する場合について説明する。
【００８９】
まずＳ１２０１で画像処理コア３１０は、ジョブの設定内容より、必要なバンドバッファ容量、バンド数を求める。
【００９０】
ここではユーザが操作部１１４に対して、回転する画像の選択と、その回転角度を指定してプリント開始の指示をすると、ＣＰＵ１０１は選択された画像の情報をＤＲＡＭ１１１より取得する。図１１（Ａ）の画像データ１１００の場合は、ＣＰＵ１０１は、画像の情報として、幅が３００画素、高さが３２画素、データ階調が８ビット、色数がＣＭＹＫの４色の情報を取得する。そしてＣＰＵ１０１は、画像データの幅、高さ、階調、色数の情報を、画像処理コア３１０のレジスタ（不図示）に設定する。これにより、画像処理コア３１０は、そのレジスタに設定された画像データの情報を基に、必要なバンドバッファのデータ量、バンド数を求める。尚、画像処理コア３１０において、バンドバッファの高さの初期値は１６画素に設定されている。このバンドバッファの高さを、初期値の１６画素の設定のままとすると、必要なバンドバッファのデータ量は、幅３００画素×高さ１６画素×階調８ビット×色数４＝４８００（ワード）となる。又、バンド数は、高さ３２画素÷バンド高さ１６画素から、２バンドが得られる。
【００９１】
次にＳ１２０２に進み画像処理コア３１０は、転送するバンド画像が最初のバンド画像か否かを判定する。ここで最初のバンド画像と判定するとＳ１２０３へ進み、先頭のＳＲＡＭグループをバンドバッファを構成する使用候補のＳＲＡＭグループとして登録してＳ１２０５に進む。実施形態３では、先頭のＳＲＡＭグループであるＳＲＡＭ３０６を使用候補のＳＲＡＭグループとして登録する。一方、Ｓ１２０２で２番目以降のバンド画像を転送すると判定したときはＳ１２０４へ進み、次のＳＲＡＭグループをバンドバッファを構成する使用候補のＳＲＡＭグループとして登録してＳ１２０５に進む。実施形態３では、ＳＲＡＭ３０７、ＳＲＡＭ３０８、ＳＲＡＭ３０９の順番で登録する。
【００９２】
Ｓ１２０５で画像処理コア３１０は、ＳＲＡＭグループ管理部３１１より、登録されたＳＲＡＭグループのメモリ領域の情報を取得して、使用候補のＳＲＡＭグループの合計のメモリ容量を求める。このときＳＲＡＭグループ管理部３１１は、画像処理コア３１０が登録したＳＲＡＭグループの情報を取得して、ＳＲＡＭグループ管理テーブルより、対応するＳＲＡＭグループのアドレス情報を取得する。例えば、Ｓ１２０２で登録されているＳＲＡＭグループがＳＲＡＭ３０６の場合、ＳＲＡＭグループ１のアドレス情報として、開始アドレス０ｘ００００、終了アドレス０ｘ３ＦＦＣを取得する。そして画像処理コア３１０は、その取得したアドレス情報に基づいて、ＳＲＡＭグループの合計のメモリ容量を算出する。図８のＳＲＡＭグループ管理テーブルの例では、合計のメモリ容量として、ＳＲＡＭグループ１の容量である（終了アドレス０ｘ３ＦＦＣ−開始アドレス０ｘ００００）÷４バイト＋１＝４０９６（ワード）を求める。
【００９３】
次にＳ１２０６に進み画像処理コア３１０は、転送するバンドバッファのデータ量と、登録された使用候補のＳＲＡＭグループの合計のメモリ容量とを比較する。実施形態３では、Ｓ１２０１で求めたバンドバッファのデータ量の４８００ワードと、Ｓ１２０５で求めた合計のＳＲＡＭグループのメモリ容量（４０９６ワード）とを比較する。そしてＳ１２０７で画像処理コア３１０は、登録された使用候補のＳＲＡＭグループの合計のメモリ容量が、バンドバッファのデータ量以上か否かを判定し、メモリ容量がバンドバッファのデータ量以上の場合はＳ１２０９へ進み、そうでないときはＳ１２０８へ進む。上記例では、バンド画像１１０１のデータ量である４８００ワードは、ＳＲＡＭグループの合計のメモリ容量の４０９６ワードより大きいためＳ１２０８へ進む。
【００９４】
Ｓ１２０８で画像処理コア３１０は、次のＳＲＡＭグループを使用候補のＳＲＡＭグループとして追加登録する。このＳ１２０８では、使用候補として登録しているＳＲＡＭグループだけではメモリ容量が不足するため、次のＳＲＡＭグループを使用候補として登録するものである。従って、ここでは、次のＳＲＡＭグループのＳＲＡＭ３０７も使用候補のＳＲＡＭグループとして登録する。Ｓ１２０８の処理後はＳ１２０５の処理へ進み、再度ＳＲＡＭグループ管理部３１１より、登録されたＳＲＡＭグループのメモリ領域の情報を取得して、使用候補のＳＲＡＭグループの合計のメモリ容量を求める。即ち、ＳＲＡＭグループ管理部３１１は、登録されているＳＲＡＭグループのＳＲＡＭ３０６〜３０７のアドレス情報を取得する。ここではＳＲＡＭ３０６に対応するＳＲＡＭグループ１のアドレス情報として、開始アドレス０ｘ００００、終了アドレス０ｘ３ＦＦＣを取得する。更にＳＲＡＭ３０７に対応するＳＲＡＭグループ２のアドレス情報として、開始アドレス０ｘ４０００、終了アドレス０ｘ７ＦＦＣを取得する。そして画像処理コア３１０は、それら取得したアドレス情報より、ＳＲＡＭグループの合計のメモリ容量を求める。この場合、ＳＲＡＭグループ１のメモリ容量は、（終了アドレス０ｘ３ＦＦＣ−開始アドレス０ｘ００００）÷４バイト＋１＝４０９６ワードである。そして、ＳＲＡＭグループ２のメモリ容量は、（終了アドレス０ｘ７ＦＦＣ−開始アドレス０ｘ４０００）÷４バイト＋１＝４０９６ワードである。よって、合計のメモリ容量として、４０９６（ＳＲＡＭグループ１）＋４０９６（ＳＲＡＭグループ２）＝８１９２（ワード）が得られる。これにより次のＳ１２０６〜Ｓ１２０７における比較判定処理において、合計のメモリ容量である８１９２ワードは、バンドバッファのデータ量である４８００ワード以上となるためＳ１２０９の処理に進む。
【００９５】
Ｓ１２０９で画像処理コア３１０は、登録された使用候補のＳＲＡＭグループをバンドバッファを構成するＳＲＡＭグループとして選択する。つまり、使用候補のＳＲＡＭグループとして登録されているＳＲＡＭ３０６とＳＲＡＭ３０７を、バンドバッファを構成するＳＲＡＭグループとして決定する。次にＳ１２１０に進み画像処理コア３１０は、バンド先頭アドレスを、その選択したＳＲＡＭグループの開始アドレスに設定する。Ｓ１２０５の処理において、ＳＲＡＭグループ管理部３１１より取得した、選択したＳＲＡＭグループであるＳＲＡＭ３０６〜３０７の開始アドレスは０ｘ００００である。よってバンド先頭アドレスとして０ｘ００００を設定する。次にＳ１２１１に進み画像処理コア３１０は、設定もしくは算出したバンドの先頭アドレスに従ってバンドデータの転送処理を行う。１つ目のバンド画像１１０１の場合は、ＳＲＡＭ３０６のアドレス０ｘ００００より、バンドのデータ量が４８００ワード分のメモリ領域に対して格納される。次にＳ１２１２に進み画像処理コア３１０は、画像データの回転処理を行う。この回転処理は、実施形態１におけるＳ７０８の処理と同じであるため、その説明を割愛する。
【００９６】
次にＳ１２１３に進み画像処理コア３１０は、転送するバンド画像がまだ存在するか否かを判定する。まだ転送するバンド画像が存在すると判定した場合はＳ１２１４へ進み、そうでないときは、このバンド転送処理を終了する。Ｓ１２１４で画像処理コア３１０は、選択したＳＲＡＭグループの残りのメモリ容量を求める。ここではバンドデータの転送前のＳＲＡＭグループのメモリ容量とバンドのデータ量とより、選択したＳＲＡＭグループの残りのメモリ容量を求める。
【００９７】
１バンド目の転送後の場合を例にとり説明すると、ＳＲＡＭグループの残りのメモリ容量は、８１９２ワード（転送前のＳＲＡＭグループの合計メモリ容量）−４８００ワード（バンドデータ量）＝３３９２（ワード）が得られる。次にＳ１２０５に進み画像処理コア３１０は、転送するバンドのデータ量と、ＳＲＡＭグループの残りのメモリ容量とを比較する。実施形態３では、Ｓ１２０１で求めたバンドバッファ容量である４８００ワードと、Ｓ１２１４で求めた残りのＳＲＡＭグループのメモリ容量である３３９２ワードとを比較する。
【００９８】
Ｓ１２１６において、ＳＲＡＭグループの残りのメモリ容量は、バンドのデータ量以上であるか否かを判定する。Ｓ１２１４で求めた、ＳＲＡＭグループの残りのメモリ容量が、バンドのデータ量以上であると判定した場合はＳ１２１７へ進み、そうでないと判定した場合はＳ１２０２へ進む。Ｓ１２１７で画像処理コア３１０は、現在のバンド先頭アドレスと、バンドのデータ量より、次のバンド画像の先頭アドレスを求める。このＳ１２１７では、バンドの先頭アドレスを、現在のバンドの先頭アドレスにバンドのデータ量を加算することにより求める。そしてＳ１２１８に進み画像処理コア３１０は、そのバンドの先頭アドレスからバンドデータをＳＲＡＭに転送する処理を開始してＳ１２１１へ進み、バンドデータの転送処理を実行する。
【００９９】
図１１（Ａ）の画像データ１１００を処理する場合、バンド画像の転送後は、どのバンド画像を転送する際も、Ｓ１２１６の処理において、ＳＲＡＭグループの残りのメモリ容量は、バンドのデータ量よりも小さくなるのでＳ１２０２へ進む。Ｓ１２０２では、最初のバンド画像の転送ではないためＳ１２０４へ進む。そしてＳ１２０４〜Ｓ１２１９の処理において、２バンド目では、ＳＲＡＭグループをＳＲＡＭ３０８とＳＲＡＭ３０９を選択することになる。以降、同様の処理を繰り返し、全てのバンド画像に対する処理を終了すると、この画像データを回転する一連のシーケンス処理を終了する。
【０１００】
図１３は、実施形態３に係る画像処理モジュール２０１〜２０４が、レジュームＳＲＡＭを使用する際のアドレス制御を説明する図である。尚、ここでは、図１１（Ａ）に示す回転処理を行う前のライト画像１１００を時計回り方向に２７０度回転した、図１１（Ｂ）に示すリード画像１１３０を得るものとする。
【０１０１】
図１３（Ａ）は、ライト画像１１００のバンド画像１１０１，１１０２をＳＲＡＭ３０６〜３０９に書き込み際の書き込みアドレスの順序を示す模式図である。図１３（Ａ）に示すように、２バンド目のバンド画像１１０２は、二つ目のＳＲＡＭグループに対応するメモリ領域６１３の開始アドレスから格納される。つまり実施形態３の画像処理モジュール２０１〜２０４では、複数のＳＲＡＭグループの境界を跨がないメモリ領域に、バンド画像が格納されるようにアドレス制御する。
【０１０２】
図１３（Ｂ）は、ＳＲＡＭ３０６〜３０９からバンド画像１１０１，１１０２を読み出してリード画像１１３０を得る際の読み出しアドレス順序を説明する模式図である。
【０１０３】
図１３（Ｂ）に示すように、バンド画像１１０１，１１０２を格納するメモリ領域は、それぞれＳＲＡＭグループ６１１，６１２及び６１３，６１４のメモリ領域に含まれているため、バンド画像を読み出す際にはモードの切り替えが発生しない。
【０１０４】
以上説明したように実施形態３によれば、バンドのデータ量がＳＲＡＭのメモリ容量よりも大きい場合でも、ＲＳモードと通常モードとを切り替える回数を少なくして画像で処理を実行できる。これにより、画像処理においてモード切り替えが多発して、パフォーマンスが低下するという事態を防止できる効果がある。
【０１０５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０６】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【０１０７】
１００…コントローラ、１０１…ＣＰＵ、１０３…画像処理部、１１４…操作部、２０１〜２０４…画像処理モジュール、３０１…ＲＳ制御部、３０６〜３０９…ＳＲＡＭ，３１０…画像処理コア、３１１…ＳＲＡＭグループ管理部
【図１】
2017207825.tif 000003
【図２】
2017207825.tif 000004
【図３】
2017207825.tif 000005
【図４】
2017207825.tif 000006
【図５】
2017207825.tif 000007
【図６】
2017207825.tif 000008
【図７】
2017207825.tif 000009
【図８】
2017207825.tif 000010
【図９】
2017207825.tif 000011
【図１０】
2017207825.tif 000012
【図１１】
2017207825.tif 000013
【図１２】
2017207825.tif 000014
【図１３】
2017207825.tif 000015