(57)【特許請求の範囲】
【請求項１】
プロセッサコアである複数の演算部を有し、データの解析処理を当該複数の演算部を用いて並列処理するマルチコアプロセッサにより構成される制御部を備えた画像処理装置において、
複数の記憶装置を備え、
前記制御部は、
前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページを割り当てるとともに、前記解析処理に使用する記憶装置を複数の前記記憶装置の中から割り当て、前記複数の演算部を用いて当該割り当てた記憶装置をそれぞれ使用して前記データの解析処理を並列処理させること、
を特徴とする画像処理装置。
【請求項２】
前記制御部は、
前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数以上となるまで、前記データを複数の前記記憶装置に保存すること、
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数未満であって、前記データを保存した前記記憶装置の数が前記データを構成するページ数以上となるまで、前記データを複数の前記記憶装置に保存すること、
を特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記制御部は、
前記解析処理を実行可能な複数の演算部のうち当該解析処理待ちの演算部それぞれに対して、前記解析処理するページを順次割り当てること、
を特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記制御部は、
前記解析処理を実行可能な前記演算部に対して、
前記データが保存済であるが前記解析処理に使用されていない前記記憶装置を割り当てること、
を特徴とする請求項１から４のいずれか一項に記載の画像処理装置。
【請求項６】
前記制御部は、
前記解析処理を実行可能な前記演算部に対して、
前記データが保存済であるが前記解析処理に使用されていない前記記憶装置がない場合、前記データが保存済みの記憶装置のうち割り当てられた前記演算部の数が最小の記憶装置を割り当てること、
を特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記制御部は、
前記解析処理を実行可能な前記演算部に対して、
前記データが保存済であるが前記解析処理に使用されていない前記記憶装置がない場合であって、前記データが保存済みの記憶装置のうち割り当てられた前記演算部の数が最小の記憶装置の数が複数の場合、
当該複数の記憶装置それぞれに対して、割り当てられているページ番号のうち最もページ番号が小さい最小ページ番号を特定し、当該複数の記憶装置それぞれの最小ページ番号のうち最もページ番号が大きいページ番号が割り当てられている記憶装置を割り当てること、
を特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記演算部は、
前記割り当てられたページの解析処理を、前記割り当てられた記憶装置を使用して実行すること、
を特徴とする請求項１から７のいずれか一項に記載の画像処理装置。
【請求項９】
データの解析処理をプロセッサコアである複数の演算部を用いて並列処理するマルチコアプロセッサにより構成されるコンピュータを、
前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページを割り当てるとともに、前記解析処理に使用する記憶装置を複数の前記記憶装置の中から割り当て、前記複数の演算部を用いて当該割り当てた記憶装置をそれぞれ使用して前記データの解析処理を並列処理させる制御手段、
として機能させるプログラム。
【請求項１０】
複数の演算部を有し、データの解析処理を当該複数の演算部を用いて並列処理する制御部を備えた画像処理装置において、
複数の記憶装置を備え、
前記制御部は、
前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、
前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数未満であって、前記データを保存した前記記憶装置の数が前記データを構成するページ数以上となるまで、前記データを複数の前記記憶装置に保存すること、
を特徴とする画像処理装置。
【請求項１１】
複数の演算部を有し、データの解析処理を当該複数の演算部を用いて並列処理する制御部を備えた画像処理装置において、
複数の記憶装置を備え、
前記制御部は、
前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、
前記解析処理を実行可能な前記演算部に対して、
前記データが保存済であるが前記解析処理に使用されていない前記記憶装置を割り当てること、
を特徴とする画像処理装置。
【請求項１２】
データの解析処理を複数の演算部を用いて並列処理するコンピュータを、
前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な記憶装置の数、前記データを構成するページ数、を取得し、当該取得した前記演算部の数、前記記憶装置の数、前記ページ数、のいずれもが複数である場合には、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、
前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数未満であって、前記データを保存した前記記憶装置の数が前記データを構成するページ数以上となるまで、前記データを複数の前記記憶装置に保存する制御手段、
として機能させるプログラム。
【請求項１３】
データの解析処理を複数の演算部を用いて並列処理するコンピュータを、
前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な記憶装置の数、前記データを構成するページ数、を取得し、当該取得した前記演算部の数、前記記憶装置の数、前記ページ数、のいずれもが複数である場合には、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、
前記解析処理を実行可能な前記演算部に対して、
前記データが保存済であるが前記解析処理に使用されていない前記記憶装置を割り当てる制御手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、プロセッサコア等の演算部（以下、コアと称す）が一つのパッケージ内に複数集積されて構成され、各コアに処理を分散させて並列処理を行うことにより、処理性能を向上させたマルチコアプロセッサが開発されている。
【０００３】
プリンタ、コピー機、ファクシミリ装置又はこれらの複合機等の画像形成装置においては、このマルチコアプロセッサを用いて並列処理を実行することにより、プリント処理の高速化を図ることが提案されている。
【０００４】
このようなマルチコアプロセッサを用いた画像形成装置において、複数ページから構成されるページ記述言語（ＰＤＬ：Page Description Language）形式のデータに対して、各ページのデータそれぞれを各コアに割り当てて並列処理を行う技術がある。
【０００５】
例えば、ホスト装置と複数のプロセッサを有するマルチプロセッサプリンタとを備えたプリントシステムにおいて、ＰＤＬデータをホスト装置がページ単位で分割し、ページ単位で分割されたＰＤＬデータの各ページのデータを、ページの順番でマルチプロセッサプリンタの各プロセッサに割り当てて解析する技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−７３３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、各ページのデータを各プロセッサに割り当てる前に、ＰＤＬデータをページ単位に分割する必要がある。これは、複数のページで構成されたＰＤＬデータ内に各ページのデータがランダムに配置されているからである。
【０００８】
ＰＤＬデータを事前にページ単位に分割せずに、複数のコアで並列処理を行う場合には、一旦、ＰＤＬデータを記憶装置に保存（スプール）する必要がある。そして、ＰＤＬデータがスプールされた記憶装置に複数のコアがアクセスして、各ページの並列処理が行なわれる。しかしながら、一つの記憶装置に複数のコアによるアクセスが集中し、全体の処理速度が低下するという問題が生じる。
【０００９】
本発明の課題は、上記問題に鑑みて、複数の演算部を用いて並列処理を実行する際に生じるアクセス集中を低減し、処理速度の低下を抑制することである。
【課題を解決するための手段】
【００１０】
請求項１に記載の発明は、プロセッサコアである複数の演算部を有し、データの解析処理を当該複数の演算部を用いて並列処理するマルチコアプロセッサにより構成される制御部を備えた画像処理装置において、複数の記憶装置を備え、前記制御部は、前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページを割り当てるとともに、前記解析処理に使用する記憶装置を複数の前記記憶装置の中から割り当て、前記複数の演算部を用いて当該割り当てた記憶装置をそれぞれ使用して前記データの解析処理を並列処理させること、を特徴とする画像処理装置である。
【００１１】
請求項２に記載の発明は、請求項１に記載の画像処理装置において、前記制御部は、前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数以上となるまで、前記データを複数の前記記憶装置に保存すること、を特徴とする。
【００１２】
請求項３に記載の発明は、請求項１又は２に記載の画像処理装置において、前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数未満であって、前記データを保存した前記記憶装置の数が前記データを構成するページ数以上となるまで、前記データを複数の前記記憶装置に保存する、を特徴とする。
【００１３】
請求項４に記載の発明は、請求項１から３のいずれか一項に記載の画像処理装置において、前記制御部は、前記解析処理を実行可能な複数の演算部のうち当該解析処理待ちの演算部それぞれに対して、前記解析処理するページを順次割り当てること、を特徴とする。
【００１４】
請求項５に記載の発明は、請求項１から４のいずれか一項に記載の画像処理装置において、前記制御部は、前記解析処理を実行可能な前記演算部に対して、前記データが保存済であるが前記解析処理に使用されていない前記記憶装置を割り当てること、を特徴とする。
【００１５】
請求項６に記載の発明は、請求項５に記載の画像処理装置において、前記制御部は、前記解析処理を実行可能な前記演算部に対して、前記データが保存済であるが前記解析処理に使用されていない前記記憶装置がない場合、前記データが保存済みの記憶装置のうち割り当てられた前記演算部の数が最小の記憶装置を割り当てること、を特徴とする。
【００１６】
請求項７に記載の発明は、請求項５又は６に記載の画像処理装置において、前記制御部は、前記解析処理を実行可能な前記演算部に対して、前記データが保存済であるが前記解析処理に使用されていない前記記憶装置がない場合であって、前記データが保存済みの記憶装置のうち割り当てられた前記演算部の数が最小の記憶装置の数が複数の場合、当該複数の記憶装置それぞれに対して、割り当てられているページ番号のうち最もページ番号が小さい最小ページ番号を特定し、当該複数の記憶装置それぞれの最小ページ番号のうち最もページ番号が大きいページ番号が割り当てられている記憶装置を割り当てること、を特徴とする。
【００１７】
請求項８に記載の発明は、請求項１から７のいずれか一項に記載の画像処理装置において、前記演算部は、前記割り当てられたページの解析処理を、前記割り当てられた記憶装置を使用して実行すること、を特徴とする。
【００１８】
請求項９に記載の発明は、データの解析処理をプロセッサコアである複数の演算部を用いて並列処理するマルチコアプロセッサにより構成されるコンピュータを、前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページを割り当てるとともに、前記解析処理に使用する記憶装置を複数の前記記憶装置の中から割り当て、前記複数の演算部を用いて当該割り当てた記憶装置をそれぞれ使用して前記データの解析処理を並列処理させる制御手段、として機能させるプログラムである。
請求項１０に記載の発明は、複数の演算部を有し、データの解析処理を当該複数の演算部を用いて並列処理する制御部を備えた画像処理装置において、複数の記憶装置を備え、前記制御部は、前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数未満であって、前記データを保存した前記記憶装置の数が前記データを構成するページ数以上となるまで、前記データを複数の前記記憶装置に保存すること、を特徴とする画像処理装置である。
請求項１１に記載の発明は、複数の演算部を有し、データの解析処理を当該複数の演算部を用いて並列処理する制御部を備えた画像処理装置において、複数の記憶装置を備え、前記制御部は、前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な前記記憶装置の数、前記データを構成するページ数、のいずれもが複数である場合、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、前記解析処理を実行可能な前記演算部に対して、前記データが保存済であるが前記解析処理に使用されていない前記記憶装置を割り当てること、を特徴とする画像処理装置である。
請求項１２に記載の発明は、データの解析処理を複数の演算部を用いて並列処理するコンピュータを、前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な記憶装置の数、前記データを構成するページ数、を取得し、当該取得した前記演算部の数、前記記憶装置の数、前記ページ数、のいずれもが複数である場合には、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、前記データを保存した前記記憶装置の数が前記解析処理を実行可能な前記演算部の数未満であって、前記データを保存した前記記憶装置の数が前記データを構成するページ数以上となるまで、前記データを複数の前記記憶装置に保存する制御手段、として機能させるプログラムである。
請求項１３に記載の発明は、データの解析処理を複数の演算部を用いて並列処理するコンピュータを、前記解析処理を実行可能な前記演算部の数、前記解析処理に使用可能な記憶装置の数、前記データを構成するページ数、を取得し、当該取得した前記演算部の数、前記記憶装置の数、前記ページ数、のいずれもが複数である場合には、複数の前記記憶装置に前記データを保存し、前記演算部毎に、前記解析処理を行うページ及び前記解析処理に使用する前記記憶装置を割り当て、前記複数の演算部を用いて前記データの解析処理を並列処理させるとともに、前記解析処理を実行可能な前記演算部に対して、前記データが保存済であるが前記解析処理に使用されていない前記記憶装置を割り当てる制御手段、として機能させるプログラムである。
【発明の効果】
【００１９】
請求項１、９に記載の発明によれば、複数の演算部を用いて並列処理を実行する際に生じる記憶装置へのアクセス集中を低減でき、処理速度の低下を抑制することができる。
【００２０】
請求項２に記載の発明によれば、請求項１と同様の効果を得られるのは勿論のこと、データを保存した記憶装置の数が解析処理を実行可能な演算部の数以上となるまで、データを複数の記憶装置に保存することができる。
【００２１】
請求項３に記載の発明によれば、請求項１又は２と同様の効果を得られるのは勿論のこと、データを保存した記憶装置の数が解析処理を実行可能な演算部の数未満であって、データを保存した記憶装置の数がデータを構成するページ数以上となるまで、データを複数の記憶装置に保存することができる。
請求項１０、１２に記載の発明によれば、請求項１又は９と同様の効果を得られるのは勿論のこと、データを保存した記憶装置の数が解析処理を実行可能な演算部の数未満であって、データを保存した記憶装置の数がデータを構成するページ数以上となるまで、データを複数の記憶装置に保存することができる。
【００２２】
請求項４に記載の発明によれば、請求項１から３のいずれか一項と同様の効果を得られるのは勿論のこと、解析処理を実行可能な複数の演算部のうち当該解析処理待ちの演算部それぞれに対して、解析処理するページを順次割り当てることができる。
【００２３】
請求項５に記載の発明によれば、請求項１から４のいずれか一項と同様の効果を得られるのは勿論のこと、解析処理を実行可能な演算部に対して、データが保存済であるが解析処理に使用されていない記憶装置を割り当てることができる。
請求項１１、１３に記載の発明によれば、請求項１又は９と同様の効果を得られるのは勿論のこと、解析処理を実行可能な演算部に対して、データが保存済であるが解析処理に使用されていない記憶装置を割り当てることができる。
【００２４】
請求項６に記載の発明によれば、請求項５と同様の効果を得られるのは勿論のこと、解析処理を実行可能な演算部に対して、データが保存済であるが解析処理に使用されていない記憶装置がない場合には、データが保存済みの記憶装置のうち割り当てられた演算部の数が最小の記憶装置を割り当てることができる。
【００２５】
請求項７に記載の発明によれば、請求項５又は６と同様の効果を得られるのは勿論のこと、データが保存済であるが解析処理に使用されていない記憶装置がない場合であって、データが保存済みの記憶装置のうち割り当てられた演算部の数が最小の記憶装置の数が複数の場合、当該複数の記憶装置それぞれに対して、割り当てられているページ番号のうち最もページ番号が小さい最小ページ番号を特定し、当該複数の記憶装置それぞれの最小ページ番号のうち最もページ番号が大きいページ番号が割り当てられている記憶装置を割り当てることができる。
【００２６】
請求項８に記載の発明によれば、請求項１から７のいずれか一項と同様の効果を得られるのは勿論のこと、割り当てられたページの解析処理を、割り当てられた記憶装置を使用して実行することができる。
【図面の簡単な説明】
【００２７】
【図１】画像処理装置の制御ブロック図である。
【図２】起動処理のフローチャートである。
【図３】初期化処理のフローチャートである。
【図４】ＬＳマスターのフローチャートである。
【図５】ＬＳスレーブ分配処理のフローチャートである。
【図６】記憶装置割り当て処理のフローチャートである。
【図７】スレーブ処理状況テーブルの例を示す図である。
【図８】スレーブ処理状況テーブルの例を示す図である。
【図９】ＬＳスレーブのフローチャートである。
【図１０】本実施の形態と従来との解析処理に要する処理時間のイメージを示す図である。
【発明を実施するための形態】
【００２８】
以下、図を参照して本発明の実施の形態を詳細に説明する。
まず、構成を説明する。
図１に、本実施の形態における画像処理装置１の制御ブロック図を示す。
図１に示すように、画像処理装置１は、制御部１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２、複数の記憶装置（ＲＡＭディスク１３ａ、第１記憶部１３ｂ）、操作部１４、表示部１５、画像読取部１６、プリント部１７、通信部１８等を備え、各部はバス１９等により接続されて構成されている。
【００２９】
本実施の形態における画像処理装置１は、読取対象原稿（以下、原稿と称す）から画像を読み取り、読み取った画像を処理対象紙としての枚葉紙等の記録媒体（以下、用紙と称す）に画像形成するコピー機能や、パーソナルコンピュータ等の外部装置からジョブデータを受信し、受信したジョブデータに基づいて用紙上に画像を形成して出力するプリンタ機能等を備えた画像形成装置としての機能も有する。
【００３０】
制御部１０は、マルチコアプロセッサを用いて構成される。なお、制御部１０は、コアに替えて複数のＣＰＵを集合させ、マルチコアプロセッサと同等の機能を発揮するように構成されてもよい。
【００３１】
制御部１０は、ＲＯＭ１１内に格納されている各種処理プログラムやデータをＲＡＭ１２、ＲＡＭディスク１３ａ、第１記憶部１３ｂに展開し、当該プログラムに基づいて画像処理装置１の各部の動作を集中制御する。例えば、操作部１４や通信部１８と接続された外部装置から入力される指示信号に従って、コピーモード、プリントモード、スキャナモードを切り替え、各モードに対する処理プログラムを読み出して、複写、印刷、画像データの読取等の制御を行う。
【００３２】
また、制御部１０は、ＲＯＭ１１、ＲＡＭ１２、ＲＡＭディスク１３ａ、第１記憶部１３ｂとの協働により、例えばＰＳ（PostScript：ポストスクリプト（登録商標））、ＰＣＬ（Printer Control Language）、ＰＤＦ（Portable Document Format）、ＸＰＳ（XML Paper Specification）といったページ記述言語（ＰＤＬ：Page Description Language）の画像データ（以下、ページ記述言語データと称す。）に対して、解析処理を行なう。
【００３３】
解析処理では、ページ記述言語データが解釈され、当該ページ記述言語データとビットマップ形式のデータ（以下、ビットマップデータと称す。）との間の中間言語形式のデータ（以下、中間データと称す。）生成され、当該中間データに基づいてビットマップデータが生成される。
【００３４】
中間データは、ページ記述言語データに含まれるオブジェクト（テキストデータ、グラフィックスデータ、イメージデータ等）の特徴に応じて生成されるデータである。例えば、テキストデータやグラフィックスデータの中間データとしてはベクタ形式のデータ、イメージデータの中間データとしてはイメージ形式のデータ、を挙げることができる。
【００３５】
ＲＯＭ１１は、各種処理を実現させるために必要なプログラムやデータ、各種プログラムで処理されたデータ等を記憶する。ＲＯＭ１１に替えて、例えば、磁気的、光学的記憶媒体又は半導体メモリ等の読み出し可能な不揮発性の記憶媒体を用いてもよい。また、このＲＯＭ１１は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであっても良い。
【００３６】
また、ＲＯＭ１１には、ランゲージマスターサーバ処理（以下、ＬＳマスターと称す）、ランゲージスレーブサーバ処理（以下、ＬＳスレーブと称す）を実行するためのプログラムやデータが記憶されている。
【００３７】
ＬＳマスターでは、解析処理を実行可能なコアの数、解析処理に使用可能な記憶装置の数、ジョブデータを構成するページ数、のいずれもが複数である場合、使用可能な複数の記憶装置にジョブデータが保存（スプール）され、コア毎に、解析処理を行うページ及び解析処理に使用する記憶装置が割り当てられ、複数のコアを用いてジョブデータの解析処理が並列処理される。
【００３８】
ＬＳマスターでは、ジョブデータを保存した記憶装置の数が解析処理を実行可能なコアの数以上となるまで、又は、ジョブデータを保存した記憶装置の数が解析処理を実行可能なコアの数未満であってジョブデータを保存した記憶装置の数がジョブデータを構成するページ数以上となるまで、ジョブデータが複数の記憶装置に保存（スプール）される。
【００３９】
ＬＳスレーブでは、割り当てられた記憶装置を用いて、割り当てられたページの解析処理が実行される。
【００４０】
更に、ＲＯＭ１１には、生成された１ページ分のビットマップデータをプリント部１７に出力して用紙上に画像を形成させ、また、出力されたビットマップデータを記憶装置から消去（解放）する機能を実現させるためのプログラムやデータが記憶されている。
なお、本実施の形態では、ビットマップデータの出力先をプリント部１７として説明するが、これに限らず、例えば、出力先を表示部１５としてビットマップデータに基づく画像を表示部に表示させてもよい。
【００４１】
ＲＡＭ１２は、画像形成に係るデータ等、各種プログラムで処理されたデータ等を一時的に記憶する。ＲＡＭ１２に替えて、読み書き可能な揮発性又は不揮発性記憶媒体を用いてもよく、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものを用いてもよい。
【００４２】
ＲＡＭディスク１３ａは、ＲＡＭ１２の一部を利用して、あたかもＨＤＤ（Hard Disk Drive）等のハードディスク記憶装置であるかのように利用できるものである。
第１記憶部１３ｂは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリ等の読み書き可能な不揮発性の記憶媒体であり、ハードディスク記憶装置として利用できるものである。
以下、読み書き可能なハードディスク記憶装置として独立して利用できるＲＡＭディスク１３ａ、第１記憶部１３ｂを、記憶装置と総称する。
【００４３】
操作部１４は、タッチパネル及びハードキーから構成される。タッチパネルは、ＬＣＤ（Liquid Crystal Display）等から構成される表示部１５に重畳して設けられる。表示部１５には、画像処理装置１の各種操作画面や各種操作案内が表示される。
【００４４】
画像読取部１６は、自動原稿送り部と読取部とを備えて構成されている。
自動原稿送り部は、ＡＤＦ（Auto Document Feeder）と称されるものであり、原稿トレイに積載される原稿を読取部の読取箇所に一枚ずつ搬送する。
読取部は、光源、レンズ、コンタクトガラス、イメージセンサ等が設けられたスキャナを備えて構成され、原稿に照射した光の反射光を結像して光電変換することにより原稿の画像を読み取り、プリント部１７に出力する。ここで、画像とは、図形や写真等のイメージデータに限らず、文字や記号等のテキストデータ等も含む意である。
【００４５】
プリント部１７は、電子写真プロセス等により各種の画像形成を行う公知の画像形成機構から構成されるものであり、各色（例えば、イエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ））毎のビットマップデータに基づく画像を用紙等に形成して出力する。
【００４６】
通信部１８は、画像処理装置１を外部の通信回線と接続させて、外部装置との通信を可能とする。通信部１８は、例えばＮＩＣ（Network Interface Card）等であり、通信回線の種類に応じた接続を可能とする装置を用いることができる。
【００４７】
次に、本実施の形態の動作を説明する。
図２に、本実施の形態における起動処理のフローチャートを示す。
図２に示す起動処理は、制御部１０を構成する複数のコアのうちいずれか一つと画像処理装置内の各部との協働により実行されるものである。
【００４８】
まず、画像処理装置１に電源が供給されると、画像処理装置内の各部が起動され（ステップＳ１）、初期化処理が実行される（ステップＳ２）。初期化処理後、画像処理装置１は、ジョブデータの受信待機状態となり（ステップＳ３）、起動処理が終了される。
【００４９】
図３に、ステップＳ２で実行される初期化処理のフローチャートを示す。
ＬＳマスターを実行するためのプログラムがＲＡＭ１２に展開され、ＬＳマスターが起動する（ステップＳ１１）。起動したＬＳマスターは処理開始のタイミングまで待機状態となる。また、制御部１０に搭載されている全てのコア数の情報がＲＯＭ１１から取得される（ステップＳ１２）。
【００５０】
ＬＳスレーブを実行するためのプログラムがＲＡＭ１２に展開され、ＬＳスレーブが１つ起動する（ステップＳ１３）。起動したＬＳスレーブは、処理開始のタイミングまで待機状態となる。
【００５１】
そして、ステップＳ１２で取得されたコア数がステップＳ１３で起動したＬＳスレーブ数より多いか否かが判別される（ステップＳ１４）。コア数がＬＳスレーブ数よりも多い場合（ステップＳ１４；ＹＥＳ）、ステップＳ１３の処理に進む。コア数がＬＳスレーブ数以下の場合（ステップＳ１４；ＮＯ）、初期化処理が終了される。
【００５２】
即ち、ステップＳ２で実行される初期化処理では、制御部１０が備えるコア数に応じた数のＬＳスレーブを実行するタスクが立ち、当該タスクが実行待ち状態となる。例えば、制御部１０が４つのコアを備えている場合には、ＬＳスレーブを実行するタスクが４つ立つこととなる。なお、ステップＳ１１で起動したＬＳマスターを実行するタスクは、制御部１０が備える複数のコアのうち、いずれか一つのコアで実行される。
【００５３】
図４に、ジョブデータを受信した際に実行されるＬＳマスターのフローチャートを示す。図４に示す処理は、制御部１０を構成する複数のコアのうちいずれか一つと画像処理装置内の各部との協働により実行されるものである。
【００５４】
まず、制御部１０に搭載されている複数のコアのうち、解析処理を実行するために利用可能なコア数（利用可能コア数）が取得され（ステップＳ２１）、利用可能コア数が複数（２個以上）か否かが判別される（ステップＳ２２）。
【００５５】
ステップＳ２１では、制御部１０を構成する複数の各コアの稼動状況を管理するタスクから利用可能なコア数が取得されたり、ＲＡＭ１２内の予め設定された領域に制御部１０を構成する複数の各コアの利用状況を示すデータが保存及び更新されるテーブルを設け、当該テーブルを参照することにより利用可能なコア数が取得されたりする。
【００５６】
利用可能コア数が複数（２個以上）ではない場合（ステップＳ２２；ＮＯ）、即ち、利用可能コア数が１個の場合には、通常の解析処理が実行され（ステップＳ２３）、ステップＳ３３の処理に進む。
【００５７】
ステップＳ２３で実行される通常の解析処理では、ジョブデータを構成する言語に応じて、スプールする必要があるジョブデータ（例えば、ＰＤＦ、ＸＰＳ等）に対しては、当該ジョブデータがいずれかの記憶装置にスプールされた後に解析処理が実行され、スプールする必要がないジョブデータ（ＰＳ、ＰＣＬ等）に対しては、順次解析処理が実行される。
【００５８】
利用可能コア数が複数（２個以上）である場合（ステップＳ２２；ＹＥＳ）、画像処理装置１が備える記憶装置の数が取得され（ステップＳ２４）、取得した記憶装置の数が複数（２個以上）か否かが判別される（ステップＳ２５）。
【００５９】
記憶装置の数が複数（２個以上）ではない場合（ステップＳ２５；ＮＯ）、即ち、記憶装置の数が１個の場合には、ステップＳ２３の処理に進む。
【００６０】
記憶装置の数が複数（２個以上）の場合（ステップＳ２５；ＹＥＳ）、複数の記憶装置のうちいずれか一つの記憶装置にジョブデータがスプールされる（ステップＳ２６）。そして、ステップＳ２６においてスプールしたジョブデータを構成するページ数の判定処理が行なわれる（ステップＳ２７）。
【００６１】
ステップＳ２７で実行されるページ数の判定処理では、例えば、ジョブデータがＰＳで構成されている場合には、showpageコマンドが検索されることによりジョブデータを構成するページ数が判別される。
【００６２】
ページ数が複数（２ページ以上）か否かが判別される（ステップ；Ｓ２８）。ページ数が複数（２ページ以上）ではない場合（ステップＳ２８；ＮＯ）、即ち、ページ数が１ページの場合には、ステップＳ３３の処理に進む。
【００６３】
ページ数が複数（２ページ以上）である場合（ステップＳ２８；ＹＥＳ）、スプール済みのジョブデータ（スプールファイル）を保存するために使用可能な記憶装置、即ち、スプールファイルが保存されていない記憶装置に、ステップＳ２６でジョブデータがスプールされた記憶装置内の当該ジョブデータ（スプールファイル）がコピーされて保存される（ステップＳ２９）。
【００６４】
スプールファイルが保存されていない記憶装置があるか否かが判別される（ステップＳ３０）。スプールファイルが保存されていない記憶装置がない場合（ステップＳ３０；ＮＯ）、ステップＳ３３の処理に進む。
【００６５】
スプールファイルが保存されていない記憶装置がある場合（ステップＳ３０；ＹＥＳ）、利用可能コア数がスプールファイルが保存された記憶装置（使用中の記憶装置）の数よりも多いか否かが判別される（ステップＳ３１）。
【００６６】
利用可能コア数が使用中の記憶装置の数以下の場合（ステップＳ３１；ＮＯ）、即ち、スプールファイルが保存された記憶装置の数が利用可能コア数以上の場合、ステップＳ３３の処理に進む。
【００６７】
利用可能コア数が使用中の記憶装置の数よりも多い場合（ステップＳ３１；ＹＥＳ）、即ち、スプールファイルが保存された記憶装置の数が利用可能コア数未満の場合、ステップＳ２７において判定したページ数が使用中の記憶装置の数よりも多いか否かが判別される（ステップＳ３２）。
【００６８】
ページ数が使用中の記憶装置の数よりも多い場合（ステップＳ３２；ＹＥＳ）、ステップＳ２９の処理に戻る。ページ数が使用中の記憶装置の数以下の場合（ステップＳ３２；ＮＯ）、即ち、スプールファイルが保存された記憶装置の数がページ数以上の場合、ＬＳスレーブ分配処理が実行され（ステップＳ３３）、ＬＳマスターが終了される。
【００６９】
図５に、ステップＳ３３において実行されるＬＳスレーブ分配処理のフローチャートを示す。
まず、初期設定処理が実行される（ステップＳ４１）。初期設定処理では、ページカウンタｎが１に設定される。また、初期設定処理では、制御部１０を構成する複数のコアのうち、ステップＳ２１において取得された利用可能コアそれぞれに対してＬＳスレーブが割り当てられてスレーブ処理状況テーブルが生成される。このスレーブ処理状況テーブルは、ジョブデータ毎に生成されるものである。
【００７０】
ステップＳ４１では、例えば、図３において説明した初期化処理で起動させたＬＳスレーブが４つ（第１〜４ＬＳスレーブ）であり、利用可能コア数が３個（第１〜３コア）である場合には、第１コアに対して第１ＬＳスレーブ、第２コアに対して第２ＬＳスレーブ、第３コアに対して第３ＬＳスレーブが割り当てられる。
【００７１】
図７（Ａ）に、ステップＳ４１の初期設定処理で生成されるスレーブ処理状況テーブルの例を示す。図７（Ａ）に示すスレーブ処理状況テーブルは、各コアに割り当てられたいずれのＬＳスレーブ（第１〜３スレーブ）も起動しておらず、処理ページ及び参照記憶装置の設定も行なわれていない場合の例である。
【００７２】
スレーブ処理状況テーブルは、利用可能コア数に応じて起動するＬＳスレーブ毎に、当該ＬＳスレーブの処理状況、処理ページ、参照記憶装置を管理するものである。処理状況は、ＬＳスレーブによる解析処理が実行中か待機中か否かを示し、「１」の場合には実行中、「０」の場合は待機中を示す。処理ページは、解析処理を行なうページ番号とジョブデータを構成するページ数とを示す。参照記憶装置は、解析処理を実行する際に使用する記憶装置の識別番号と、スプールファイルが保存された記憶装置の総数とを示す。
【００７３】
スレーブ処理状況テーブルが参照され（ステップＳ４２）、待機中のＬＳスレーブがあるか否かが判別される（ステップＳ４３）。待機中のＬＳスレーブがない場合（ステップＳ４３；ＮＯ）、ステップＳ４２の処理に戻る。
【００７４】
待機中のＬＳスレーブがある場合（ステップＳ４３；ＹＥＳ）、待機中のＬＳスレーブにページカウンタｎが示すページ番号のページ（ｎページ）が割り当てられ（ステップＳ４４）、ページカウンタｎがインクリメント（ｎ＝ｎ＋１）される（ステップＳ４５）。
【００７５】
ステップＳ４３において待機中のＬＳスレーブに対する処理ページが、ステップＳ４４において割り当てられたページ番号に書き換えられ、スレーブ処理状況テーブルの更新が行なわれる（ステップＳ４６）。
【００７６】
図７（Ｂ）に、ステップＳ４６において更新されたスレーブ処理状況テーブルの例を示す。図７（Ｂ）に示すスレーブ処理状況テーブルでは、待機中の第１ＬＳスレーブに対して、処理ページが「１−１０」となる。この場合、「１」は、割り当てられたページ番号を示しており、「１０」は、ジョブデータを構成するページ数（全ページ数）を示している。従って、図７（Ｂ）では、第１ＬＳスレーブに対して１０ページ中の１ページ目が割り当てられたことを示している。
【００７７】
ステップＳ４６後、ページ番号が書き換えられたＬＳスレーブの参照記憶装置を設定する記憶装置割り当て処理が実行される（ステップＳ４７）。
【００７８】
ステップＳ４７後、ページ番号及び参照記憶装置が割り当てられたＬＳスレーブに対して、解析処理の開始指示が出力される（ステップＳ４８）。
【００７９】
図７（Ｄ）に、ステップＳ４８において開始指示が出力された際のスレーブ処理状況テーブルの例を示す。図７（Ｄ）に示すスレーブ処理状況テーブルでは、第１ＬＳスレーブに対して、開始指示が出力された場合の例を示す。開始指示が出力されると、開始指示が出力されたＬＳスレーブ（ここでは、第１ＬＳスレーブ）の処理状況が「０」から「１」に更新される。
【００８０】
ページカウンタｎの値がジョブデータを構成するページ数（全ページ数）よりも大きいか否かが判別される（ステップＳ４９）。
【００８１】
ページカウンタｎの値が全ページ数以下の場合（ステップＳ４９；ＮＯ）、ステップＳ４２の処理に戻る。従って、ステップＳ４２〜４９が繰り返されることにより、解析処理を実行可能な複数のコアに割り当てられたＬＳスレーブのうち当該解析処理待ちのスレーブそれぞれに対して、解析処理を行なうページが順次割り当てられ、また、当該ページの解析処理を行なう際に参照する記憶装置が割り当てられる。
【００８２】
ページカウンタｎの値が全ページ数よりも大きい場合（ステップＳ４９；ＹＥＳ）、ＬＳスレーブ分配処理が終了される。
【００８３】
図６に、ステップＳ４７において実行される記憶装置割り当て処理のフローチャートを示す。
まず、スレーブ処理状況テーブルの参照記憶装置の項目欄が参照され（ステップＳ５１）、スプールファイルが保存されている記憶装置のうち、解析処理を実行する際に使用する記憶装置としてスレーブ処理状況テーブルに設定されていない記憶装置（未使用の記憶装置）があるか否かを判別する（ステップＳ５２）。
【００８４】
ステップＳ５２では、例えば、スプールファイルが保存された各記憶装置に１、２、３、・・・、の整数がそれぞれ識別番号として設定された場合、スレーブ処理状況テーブルの参照記憶装置の項目欄において、スプールファイルが保存された記憶装置の総数と一致する識別番号がない場合には、未使用の記憶装置ありと判別される。
【００８５】
スプールファイルが保存されている記憶装置のうち未使用の記憶装置がある場合（ステップＳ５２；ＹＥＳ）、ステップＳ４３において待機中のＬＳスレーブに対して解析処理を実行する際に使用する記憶装置として、未使用の記憶装置が割り当てられ（ステップＳ５３）、ステップＳ５７に進む。
【００８６】
スプールファイルが保存されている記憶装置のうち未使用の記憶装置がない場合（ステップＳ５２；ＮＯ）、スプールファイルが保存されている記憶装置において、割り当てられたＬＳスレーブの数が最小の記憶装置が特定され、特定された記憶装置の数が、複数か否かが判別される（ステップＳ５４）。
【００８７】
割り当てられたＬＳスレーブの数が最小の記憶装置の数が複数ではない場合（ステップＳ５４；ＮＯ）、即ち、割り当てられたＬＳスレーブの数が最小の記憶装置の数が一つの場合には、当該割り当てられたＬＳスレーブの数が最小の記憶装置が、ステップＳ４３において待機中のＬＳスレーブに対して解析処理を実行する際に使用する記憶装置として割り当てられ（ステップＳ５５）、ステップＳ５７に進む。
【００８８】
割り当てられたＬＳスレーブの数が最小の記憶装置の数が複数である場合（ステップＳ５４；ＹＥＳ）、当該複数の記憶装置それぞれに対して、割り当てられているページ番号のうち最もページ番号が小さいページ番号（最小ページ番号）が特定される。そして、当該複数の記憶装置それぞれの最小ページ番号のうち、最もページ番号が大きいページ番号が割り当てられている記憶装置が、ステップＳ４３において待機中のＬＳスレーブに対して解析処理を実行する際に使用する記憶装置として割り当てられ（ステップＳ５６）、ステップＳ５７に進む。
【００８９】
ステップＳ４３において待機中のＬＳスレーブに対する参照記憶装置が、ステップＳ５３、Ｓ５５、Ｓ５６において割り当てられた記憶装置を示す内容に書き換えられ、スレーブ処理状況テーブルの更新が行なわれ（ステップＳ５７）、記憶装置割り当て処理が終了する。
【００９０】
図７（Ｃ）に、ステップＳ５７において更新されたスレーブ処理状況テーブルの例を示す。図７（Ｃ）に示すスレーブ処理状況テーブルでは、待機中の第１ＬＳスレーブに対して、参照記憶装置が「１−２」となる。この場合、「１」は、割り当てられた記憶装置の識別番号を示しており、「２」は、スプールファイルが保存された記憶装置の総数を示している。従って、図７（Ｃ）では、第１ＬＳスレーブに対して識別番号が１の記憶装置が割り当てられたことを示している。
【００９１】
図８に、各利用可能コアに割り当てられた各ＬＳスレーブに対して、処理ページ及び参照記憶装置が設定され、各ＬＳスレーブが解析処理を実行中である場合のスレーブ処理状況テーブルの例を示す。
【００９２】
図８に示すスレーブ処理状況テーブルでは、第１ＬＳスレーブに対して、１０ページ中の１ページ目が割り当てられ、参照記憶装置として識別番号が１の記憶装置（例えば、ＲＡＭディスク１３ａ）が割り当てられている。第２ＬＳスレーブに対しては、１０ページ中の２ページ目が割り当てられ、参照記憶装置として識別番号が２の記憶装置（例えば、第１記憶部１３ｂ）が割り当てられている。第３ＬＳスレーブに対しては、１０ページ中の３ページ目が割り当てられている。
【００９３】
第３ＬＳスレーブの参照記憶装置を割り当てる際、スプールファイルが保存されている記憶装置（例えば、ＲＡＭディスク１３ａ、第１記憶部１３ｂ）には、それぞれ割り当てられたＬＳスレーブの数が１つであるため、割り当てられたＬＳスレーブの数が最も少ない記憶装置の数が２つ（複数）となる。そこで、この割り当てられたＬＳスレーブの数が最も少ない記憶装置（例えば、ＲＡＭディスク１３ａ、第１記憶部１３ｂ）それぞれに対して割り当てられているページ番号が参照され、当該記憶装置毎に最小ページ番号が特定される（例えば、ＲＡＭディスク１３ａの最小ページ番号は「１」、第１記憶部１３ｂの最小ページ番号は「２」と特定される。）。そして、当該複数の記憶装置それぞれの最小ページ番号（例えば、「１」、「２」）のうち、最もページ番号が大きいページ番号（例えば、「２」）が割り当てられている記憶装置（例えば、第１記憶部１３ｂ）が、第３ＬＳスレーブの参照記憶装置として割り当てられる。
【００９４】
図９に、解析処理の開始指示が入力された際に実行されるＬＳスレーブのフローチャートを示す。図９に示す処理は、制御部１０を構成する複数のコアのうち、ステップＳ４１において割り当てられたコアと画像処理装置内の各部との協働により実行されるものとする。
【００９５】
ＬＳマスターから解析処理の開始指示が入力されると、スレーブ処理状況テーブルが参照され、割り当てられたページ番号のページに対しての解析処理が、割り当てられた記憶装置に保存されているスプールファイルが読み出されながら実行される（ステップＳ６１）。
【００９６】
割り当てられたページ番号の解析処理が終了すると、スレーブ処理状況テーブルの処理状況がクリア（例えば、「１」から「０」に更新）され（ステップＳ６２）、ＬＳスレーブが終了される。
【００９７】
図１０に、本実施の形態と従来との解析処理に要する処理時間のイメージを示す。
図１０（Ａ）には、制御部がシングルコアを備えて構成されており一つの記憶装置を用いた従来技術での処理時間の例を示し、図１０（Ｂ）には、制御部が複数のコアを備えて構成されており一つの記憶装置を用いた従来技術での処理時間の例を示し、図１０（Ｃ）には、本実施の形態での処理時間の例を示す。
【００９８】
図１０に示す時間軸に沿って増加する数値は、処理時間単位の目安を示すものであり、解析処理だけに特化した推定値である。実際には、使用する記憶装置の容量やその他のタスクの処理状況等により変化する。図１０では、３ページから構成されるジョブデータの解析処理に要する時間の比較例を示している。
【００９９】
図１０（Ａ）に示す従来の場合では、シングルコアにより一つのＬＳスレーブが実行され、当該ＬＳスレーブによりページ毎に順次処理が実行される。
図１０（Ａ）に示すように、１ページ目の解析処理に要する時間は「８」、２ページ目の解析処理に要する時間は「１０」、３ページ目の解析処理に要する時間は「１２」、となるものとする。
図１０（Ａ）に示した各処理時間を基準に、図１０（Ｂ）、図１０（Ｃ）について説明する。
【０１００】
図１０（Ｂ）に示す従来の場合では、複数のコアと一つの記憶装置を用いているため、一つの記憶装置にジョブデータがスプールされた後、各コアに割り当てられた各ＬＳスレーブの実行により、記憶装置内のジョブデータ（スプールファイル）が参照され、各ページの解析処理が並列して行なわれる。
【０１０１】
複数のＬＳスレーブの並列実行により、一つの記憶装置内のジョブデータへのアクセスが同時に発生すると、データの読み込み速度が低下する。ここで、実行されるＬＳスレーブが一つ増加するごとに処理時間全体の２０％の処理時間低下が起こると仮定する。この仮定によると、図１０（Ｂ）では、３つのＬＳスレーブの実行によってジョブデータへのアクセスが同時に発生し、１〜３ページ目の各処理時間は、図１０（Ａ）に示す場合に比べて４０％の処理時間の低下が起こると想定される。
【０１０２】
従って、図１０（Ｂ）の場合には、１ページ目の解析処理に要する時間は「１１．２」、２ページ目の解析処理に要する時間は「１４」、３ページ目の解析処理に要する時間は「１６．８」、となり、図１０（Ａ）の場合と比べて、ジョブデータ全体の処理完了時間は短縮されるが、各ページの処理時間が長くなるという問題が生じる。特に、１ページ目の処理完了時間が図１０（Ａ）の場合と比べて４０％も長くなるため、１ページ目の用紙が出力されるまでに要する時間が長くなる。
【０１０３】
図１０（Ｃ）に示す本実施の形態では、複数のコアと複数の記憶装置（第１の記憶装置、第２の記憶装置）を用いており、第１、２の記憶装置にジョブデータがそれぞれ保存された後、各コアに割り当てられたＬＳスレーブの実行により各ページの解析処理が並列して行なわれる。
【０１０４】
図１０（Ｃ）では、１ページ目の解析処理を行なうＬＳスレーブの実行によりアクセスされる記憶装置が第１の記憶装置、２ページ目の解析処理を行なうＬＳスレーブ及び３ページ目の解析処理を行なうＬＳスレーブの実行によりアクセスされる記憶装置が第２の記憶装置に割り当てられているものとする。そのため、図１０（Ｃ）では、２つのＬＳスレーブの実行によって第２の記憶装置内のジョブデータへのアクセスが同時に発生し、２、３ページ目の各処理時間は、図１０（Ａ）に示す場合に比べて２０％の処理時間の低下が起こると想定される。
【０１０５】
従って、図１０（Ｃ）の場合には、第１の記憶装置へジョブデータがスプールされる際に要する時間は「１」、第２の記憶装置へジョブデータがスプールされる際に要する時間は「１」、１ページ目の解析処理に要する時間は「８」、２ページ目の解析処理に要する時間は「１２」、３ページ目の解析処理に要する時間は「１４．４」、となる。
【０１０６】
図１０（Ｃ）では、２つの記憶装置にジョブデータを保存する必要があるため、図１０（Ａ）の場合に比べてジョブデータのスプール時間が増加するが、１ページ目の解析処理を行なう際には、一つのＬＳスレーブが第１の記憶装置へのアクセスを独占できるため、図１０（Ｂ）の場合のように、アクセス集中による余計なオーバーヘッド時間は発生しない。
また、２ページ目及び３ページ目の解析処理は、２つのＬＳスレーブの実行によるアクセス集中となるため、図１０（Ｂ）の場合と比べてオーバーヘッド時間を２０％に抑えることができ、２、３ページ目の解析処理の完了時間を短縮することができる。
【０１０７】
以上のように、本実施の形態によれば、各コアに割り当てられたＬＳスレーブ毎に、解析処理を行うページ及び解析処理に使用する記憶装置を割り当てて、複数のＬＳスレーブを用いてデータの解析処理を並列処理させることができる。そのため、複数のコア（ＬＳスレーブ）を用いて並列処理を実行する際に生じる記憶装置へのアクセス集中を低減でき、処理速度の低下を抑制することができる。
【０１０８】
また、ジョブデータを保存（スプール）した記憶装置の数が解析処理を実行可能なコア数以上となるまで、ジョブデータを複数の記憶装置に保存することができる。また、ジョブデータを保存した記憶装置の数が解析処理を実行可能なコアの数未満であって、ジョブデータを保存した記憶装置の数がジョブデータを構成するページ数以上となるまで、ジョブデータを複数の記憶装置に保存することができる。
そのため、ジョブデータを保存する記憶装置の最大個数は、解析処理を実行可能なコア数、又はジョブデータを構成するページ数となる。
【０１０９】
更に、解析処理を実行可能な複数のコア（ＬＳスレーブ）のうち当該解析処理待ちのＬＳスレーブそれぞれに対して、解析処理するページを順次割り当てることができる。
【０１１０】
また、解析処理を実行可能なコア（ＬＳスレーブ）に対して、データが保存済であるが解析処理に使用されていない記憶装置を割り当てることができる。
解析処理を実行可能なコア（ＬＳスレーブ）に対して、データが保存済であるが解析処理に使用されていない記憶装置がない場合には、データが保存済みの記憶装置のうち割り当てられたＬＳスレーブの数が最小の記憶装置を割り当てることができるため、各記憶装置へのアクセス集中を分散することができる。
【０１１１】
更に、ジョブデータが保存済であるが解析処理に使用されていない記憶装置がない場合であって、ジョブデータが保存済みの記憶装置のうち割り当てられたコア（ＬＳスレーブ）の数が最小となる記憶装置の数が複数存在する場合、当該複数の記憶装置それぞれに対して、割り当てられているページ番号のうち最もページ番号が小さい最小ページ番号を特定し、当該複数の記憶装置それぞれの最小ページ番号のうち最もページ番号が大きいページ番号が割り当てられている記憶装置を割り当てることができる。即ち、ページ番号が小さいページの解析処理で用いられる記憶装置へのアクセス集中を低減することができるため、ページ番号が小さいページの処理を優先して実行させることができる。
【０１１２】
また、各ＬＳスレーブでは、割り当てられたページの解析処理を、割り当てられた記憶装置を使用して実行することができる。
【０１１３】
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として、ＲＯＭ１１を使用した例を開示したが、この例に限定されない。
その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ等の不揮発性メモリ、ＣＤ-ＲＯＭ等の可搬型記録媒体を適用することが可能である。
また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【０１１４】
また、本発明は、上記実施の形態の内容に限定されるものではなく、本発明の主旨を逸脱しない範囲で適宜変更可能である。
【符号の説明】
【０１１５】
１  画像処理装置
１０  制御部
１１  ＲＯＭ
１２  ＲＡＭ
１３ａ  ＲＡＭディスク
１３ｂ  第１記憶部
１４  操作部
１５  表示部
１６  画像読取部
１７  プリント部
１８  通信部
１９  バス
【図１】
0005589582.tif 000002
【図２】
0005589582.tif 000003
【図３】
0005589582.tif 000004
【図４】
0005589582.tif 000005
【図５】
0005589582.tif 000006
【図６】
0005589582.tif 000007
【図７】
0005589582.tif 000008
【図８】
0005589582.tif 000009
【図９】
0005589582.tif 000010
【図１０】
0005589582.tif 000011