(57)【特許請求の範囲】
【請求項１】
ページ記述言語形式のデータと印刷データとの間の中間言語形式のデータと、当該中間言語形式のデータに基づいて生成される前記印刷データと、が一時的に記憶される領域と、前記中間言語形式のデータに基づいて前記印刷データが生成されるラスタライズ処理が実行される際に使用されるラスタライズ領域と、を含む記憶部と、
複数の演算部を有する制御部を備え、
前記制御部は、
１ページ分の前記ページ記述言語形式のデータを解析することにより、１ページ分を構成する複数のバンド単位の中間言語形式のデータを生成し、
前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについて、前記複数の演算部の使用状況と前記記憶部の空き領域の状況とに基づいて、前記ラスタライズ処理を実行する演算部を設定し、
当該設定した演算部毎に前記ラスタライズ処理を実行することにより前記印刷データを生成し、
前記設定した演算部がバンド単位の前記ラスタライズ処理を並列で実行しているときに前記記憶部内の空き領域が不足した場合、
前記設定した演算部のうち所定の演算部のラスタライズ処理を終了し、
前記所定の演算部に対応する前記ラスタライズ領域を解放し、
前記設定した演算部のうちの前記所定の演算部以外の他の演算部により、前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについての前記ラスタライズ処理を実行すること、
を特徴とする印刷データ生成装置。
【請求項２】
前記制御部は、
前記演算部毎にラスタライズ処理の実行時間を計時しており、
前記ラスタライズ処理を実行する複数の演算部のうち、前記実行時間が最小の演算部によるラスタライズ処理を終了して、前記ラスタライズ処理を実行する演算部の数を削減すること、
を特徴とする請求項１に記載の印刷データ生成装置。
【請求項３】
前記制御部は、
前記演算部の使用状況が、アイドル、又は、前記ラスタライズ処理よりも予め設定された優先度が低い処理を実行中である演算部を選出し、前記記憶部の空き領域の状況が、前記ラスタライズ領域を確保可能な領域がある場合、前記選出した演算部に対して、前記ラスタライズ処理を実行する演算部としての設定、及び、前記ラスタライズ処理を実行するラスタライズ領域の設定を行なうこと、
を特徴とする請求項１または２に記載の印刷データ生成装置。
【請求項４】
前記制御部は、
前記１ページ分を構成する全バンドのラスタライズ処理が完了していない場合、前記演算部の使用状況と前記記憶部の空き領域の状況とに基づいて、前記ラスタライズ処理を実行する演算部を追加設定し、当該追加設定した演算部と前記設定した演算部それぞれによる前記ラスタライズ処理を実行すること、
を特徴とする請求項１〜３の何れか一項に記載の印刷データ生成装置。
【請求項５】
複数の演算部を用いて、ページ記述言語形式のデータと印刷データとの間の中間言語形式のデータに基づいて前記印刷データが生成されるラスタライズ処理を行なう印刷データ生成方法において、
１ページ分の前記ページ記述言語形式のデータを解析することにより、１ページ分を構成する複数のバンド単位の中間言語形式のデータを生成する工程と、
前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについて、前記複数の演算部の使用状況と、前記ラスタライズ処理が実行される際に使用されるラスタライズ領域を含む記憶部の空き領域の状況と、に基づいて、前記ラスタライズ処理を実行する演算部を設定する工程と、
当該設定した演算部毎に前記ラスタライズ処理を実行することにより前記印刷データを生成する工程と、
を含み、
前記ラスタライズ処理を実行する工程は、
前記設定した演算部がバンド単位の前記ラスタライズ処理を並列で実行しているときに前記記憶部内の空き領域が不足した場合、
前記設定した演算部のうち所定の演算部のラスタライズ処理を終了し、
前記所定の演算部に対応する前記ラスタライズ領域を解放し、
前記設定した演算部のうちの前記所定の演算部以外の他の演算部により、前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについての前記ラスタライズ処理を実行すること、
を特徴とする印刷データ生成方法。
【請求項６】
前記演算部毎にラスタライズ処理の実行時間を計時する工程を含み、
前記ラスタライズ処理を実行する工程は、
前記ラスタライズ処理を実行する複数の演算部のうち、前記実行時間が最小の演算部によるラスタライズ処理を終了して、前記ラスタライズ処理を実行する演算部の数を削減すること、
を特徴とする請求項５に記載の印刷データ生成方法。
【請求項７】
前記演算部を設定する工程は、
前記演算部の使用状況が、アイドル、又は、前記ラスタライズ処理よりも予め設定された優先度が低い処理を実行中である演算部を選出し、前記記憶部の空き領域の状況が、前記ラスタライズ領域を確保可能な領域がある場合、前記選出した演算部に対して、前記ラスタライズ処理を実行する演算部としての設定を行うこと、
を特徴とする請求項５または６に記載の印刷データ生成方法。
【請求項８】
前記演算部を設定する工程は、
前記１ページ分を構成する全バンドのラスタライズ処理が完了していない場合、前記演算部の使用状況と前記記憶部の空き領域の状況とに基づいて、前記ラスタライズ処理を実行する演算部を追加設定し、
前記ラスタライズ処理を実行する工程は、
当該追加設定した演算部と前記設定した演算部それぞれによる前記ラスタライズ処理を実行すること、
を特徴とする請求項５〜７の何れか一項に記載の印刷データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データ生成装置及び印刷データ生成方法に関する。
【背景技術】
【０００２】
近年、プロセッサコア等の演算部（以下、コアと称す）が一つのパッケージ内に複数集積されて構成され、各コアに処理を分散させて並列処理を行うことにより処理性能を向上させたマルチコアプロセッサが開発されている。
【０００３】
特に、ＭＦＰ（Multi Function Printer）やプリンタ等の画像形成装置においては、このマルチコアプロセッサを用いて、ページ記述言語（ＰＤＬ；Page Description Language）形式のデータを解析して中間言語（ＤＬ；Display List）形式のデータを生成する解析処理、中間言語形式のデータからビットマップ形式のデータを生成するラスタライズ処理、ビットマップ形式のデータを印刷データとしてプリント部に転送して画像形成する処理等を各コアに割り当てて並列的に処理を実行することにより、プリント出力に係る一連の処理の高速化を図ることが提案されている。
【０００４】
例えば、複数のプロセッサを用いて並列的にラスタライズを行う場合、処理待ちのプロセッサを検出して、当該処理待ちのプロセッサに未処理のバンド領域のラスタライズ処理を割り当てる技術（特許文献１参照）や、ページ単位でＰＤＬデータあるいは中間データあるいはディスプレイリストを複数のＣＰＵ（Central Processing Unit）に振り分ける技術（特許文献２参照）が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−５１０１９号公報
【特許文献２】特開２００６−１５９７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、プロセッサの状況判断のみでラスタライズするバンドを割り当てているため、ラスタライズ処理で使用するメモリ領域の不足が発生した場合には、処理が一時的に停止してしまう。また、特許文献２では、ＣＰＵはページ単位で処理を行なうため、複数ページの合計処理時間の短縮を図ることはできるが、１ページあたりの処理時間の短縮を図ることはできず、また、データを振り分ける際に、データを展開するメモリ領域の状況について考慮しておらず、振り分けられたデータの処理が停止するおそれがある。このように、複数の演算部を備えている場合でも、演算部の状況やメモリ領域の状況に応じて、各演算部が有効に活用されていないという問題が生じている。
【０００７】
本発明の課題は、上記問題に鑑みて、複数の演算部及びメモリ領域の有効活用を図り、印刷データの生成効率を向上させることである。
【課題を解決するための手段】
【０００８】
請求項１に記載の発明は、ページ記述言語形式のデータと印刷データとの間の中間言語形式のデータと、当該中間言語形式のデータに基づいて生成される前記印刷データと、が一時的に記憶される領域と、前記中間言語形式のデータに基づいて前記印刷データが生成されるラスタライズ処理が実行される際に使用されるラスタライズ領域と、を含む記憶部と、複数の演算部を有する制御部を備え、前記制御部は、１ページ分の前記ページ記述言語形式のデータを解析することにより、１ページ分を構成する複数のバンド単位の中間言語形式のデータを生成し、前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについて、前記複数の演算部の使用状況と前記記憶部の空き領域の状況とに基づいて、前記ラスタライズ処理を実行する演算部を設定し、当該設定した演算部毎に前記ラスタライズ処理を実行することにより前記印刷データを生成し、前記設定した演算部がバンド単位の前記ラスタライズ処理を並列で実行しているときに前記記憶部内の空き領域が不足した場合、前記設定した演算部のうち所定の演算部のラスタライズ処理を終了し、前記所定の演算部に対応する前記ラスタライズ領域を解放し、前記設定した演算部のうちの前記所定の演算部以外の他の演算部により、前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについての前記ラスタライズ処理を実行する印刷データ生成装置である。
【００１０】
請求項２に記載の発明は、請求項１に記載の印刷データ生成装置において、前記制御部は、前記演算部毎にラスタライズ処理の実行時間を計時しており、前記ラスタライズ処理を実行する複数の演算部のうち、前記実行時間が最小の演算部によるラスタライズ処理を終了して、前記ラスタライズ処理を実行する演算部の数を削減すること、を特徴とする。
【００１１】
請求項３に記載の発明は、請求項１または２に記載の印刷データ生成装置において、前記制御部は、前記演算部の使用状況が、アイドル、又は、前記ラスタライズ処理よりも予め設定された優先度が低い処理を実行中である演算部を選出し、前記記憶部の空き領域の状況が、前記ラスタライズ領域を確保可能な領域がある場合、前記選出した演算部に対して、前記ラスタライズ処理を実行する演算部としての設定、及び、前記ラスタライズ処理を実行するラスタライズ領域の設定を行なうこと、を特徴とする。
【００１３】
請求項４に記載の発明は、請求項１〜３の何れか一項に記載の印刷データ生成装置において、前記制御部は、前記１ページ分を構成する全バンドのラスタライズ処理が完了していない場合、前記演算部の使用状況と前記記憶部の空き領域の状況とに基づいて、前記ラスタライズ処理を実行する演算部を追加設定し、当該追加設定した演算部と前記設定した演算部それぞれによる前記ラスタライズ処理を実行すること、を特徴とする。
【００１４】
請求項５に記載の発明は、複数の演算部を用いて、ページ記述言語形式のデータと印刷データとの間の中間言語形式のデータに基づいて前記印刷データが生成されるラスタライズ処理を行なう印刷データ生成方法において、１ページ分の前記ページ記述言語形式のデータを解析することにより、１ページ分を構成する複数のバンド単位の中間言語形式のデータを生成する工程と、前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについて、前記複数の演算部の使用状況と、前記ラスタライズ処理が実行される際に使用されるラスタライズ領域を含む記憶部の空き領域の状況と、に基づいて、前記ラスタライズ処理を実行する演算部を設定する工程と、当該設定した演算部毎に前記ラスタライズ処理を実行することにより前記印刷データを生成する工程と、を含み、前記ラスタライズ処理を実行する工程は、前記設定した演算部がバンド単位の前記ラスタライズ処理を並列で実行しているときに前記記憶部内の空き領域が不足した場合、前記設定した演算部のうち所定の演算部のラスタライズ処理を終了し、前記所定の演算部に対応する前記ラスタライズ領域を解放し、前記設定した演算部のうちの前記所定の演算部以外の他の演算部により、前記１ページ分を構成する複数のバンド単位の中間言語形式のデータについての前記ラスタライズ処理を実行する印刷データ生成方法である。
また、請求項６に記載の発明は、請求項５に記載の印刷データ生成方法において、前記演算部毎にラスタライズ処理の実行時間を計時する工程を含み、前記ラスタライズ処理を実行する工程は、前記ラスタライズ処理を実行する複数の演算部のうち、前記実行時間が最小の演算部によるラスタライズ処理を終了して、前記ラスタライズ処理を実行する演算部の数を削減すること、を特徴とする。
また、請求項７に記載の発明は、請求項５または６に記載の印刷データ生成方法において、前記演算部を設定する工程は、前記演算部の使用状況が、アイドル、又は、前記ラスタライズ処理よりも予め設定された優先度が低い処理を実行中である演算部を選出し、前記記憶部の空き領域の状況が、前記ラスタライズ領域を確保可能な領域がある場合、前記選出した演算部に対して、前記ラスタライズ処理を実行する演算部としての設定を行うこと、を特徴とする。
また、請求項８に記載の発明は、請求項５〜７の何れか一項に記載の印刷データ生成方法において、前記演算部を設定する工程は、前記１ページ分を構成する全バンドのラスタライズ処理が完了していない場合、前記演算部の使用状況と前記記憶部の空き領域の状況とに基づいて、前記ラスタライズ処理を実行する演算部を追加設定し、前記ラスタライズ処理を実行する工程は、当該追加設定した演算部と前記設定した演算部それぞれによる前記ラスタライズ処理を実行すること、を特徴とする。
【発明の効果】
【００１５】
請求項１、７に記載の発明によれば、複数の演算部及びメモリ領域を有効に活用でき、ラスタライズ処理の効率化を図ることができるため、印刷データの生成効率を向上させることができる。
【００１６】
請求項２に記載の発明によれば、請求項１と同様の効果を得られるのは勿論のこと、記憶部内の空き領域が不足した場合には、ラスタライズ処理を実行する演算部の数を削減して当該ラスタライズ処理を実行するために使用されるラスタライズ領域を削減することにより、新たな空き領域が発生することとなり、空き領域不足によるラスタライズ処理の停止を防止できる。
【００１７】
請求項３に記載の発明によれば、請求項２と同様の効果を得られるのは勿論のこと、ラスタライズ処理の実行時間が最小の演算部によるラスタライズ処理を終了して、新たな空き領域を発生させることができる。
【００１８】
請求項４に記載の発明によれば、請求項１から３のいずれか一項と同様の効果を得られるのは勿論のこと、アイドル、又は、ラスタライズ処理よりも予め設定された優先度が低い処理を実行中である演算部に対して、ラスタライズ処理を実行する演算部としての設定、及び、ラスタライズ処理を実行するラスタライズ領域の設定を行なうことができる。
【００１９】
請求項５に記載の発明によれば、請求項１から４のいずれか一項と同様の効果を得られるのは勿論のこと、ラスタライズ処理を実行する演算部に対して、ラスタライズ処理を実行するバンドを割り当て、ラスタライズ処理をバンド単位で実行することができるため、１ページあたりの処理時間の短縮を図ることができる。
【００２０】
請求項６に記載の発明によれば、請求項５と同様の効果を得られるのは勿論のこと、１ページ分を構成する全バンドのラスタライズ処理が完了していない場合には、ラスタライズ処理を実行する演算部を追加設定することができ、当該追加設定した演算部と設定した演算部それぞれによるラスタライズ処理を実行することができるため、更にラスタライズ処理の効率化を図ることができる。
【図面の簡単な説明】
【００２１】
【図１】画像形成システムのシステム構成例を示す図である。
【図２】外部装置の構成を示す図である。
【図３】画像形成装置の構成を示す図である。
【図４】画像形成処理の概念図を示す図である。
【図５】画像形成処理のフローチャートである。
【図６】解析処理のフローチャートである。
【図７】ＲＡＳマスターのフローチャートである。
【図８】（ａ）は、ステップＳ２１でのバンド状態監視テーブルの例、（ｂ）は、ステップＳ２１でのＲＡＳスレーブ状態監視テーブルの例、を示す図である。
【図９】バンド状態監視テーブルの更新処理のフローチャートである。
【図１０】（ａ）は、バンド状態監視テーブルの更新処理が終了したときのバンド状態監視テーブルの例、（ｂ）は、バンド状態監視テーブルの更新処理が終了したときのＲＡＳスレーブ状態監視テーブルの例、を示す図である。
【図１１】ＲＡＳスレーブのフローチャートである。
【図１２】ＲＡＳスレーブ番号が１のスレーブにおいて、ステップＳ５７の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例を示す図である。
【図１３】ＲＡＳスレーブ番号が１のスレーブにおいて、ステップＳ６２の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例を示す図である。
【図１４】ＲＡＳスレーブ番号が４のスレーブにおいて、（ａ）は、ステップＳ５５；ＹＥＳ後のステップＳ６６の処理が終了したときのバンド状態監視テーブルの例、（ｂ）は、ステップＳ６７の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例、を示す図である。
【図１５】ＲＡＳスレーブ番号が１のスレーブにおいて、（ａ）は、ＲＡＳスレーブ番号が４のスレーブが削除された後にステップＳ６４の処理が終了したときのバンド状態監視テーブルの例、（ｂ）は、ステップＳ６５の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例、を示す図である。
【図１６Ａ】共有保存領域内のイメージ図である。
【図１６Ｂ】共有保存領域内のイメージ図である。
【図１６Ｃ】共有保存領域内のイメージ図である。
【図１７】ＲＡＳマスターの変形例のフローチャートである。
【図１８】ＲＡＳマスターの変形例のフローチャートである（図１７の続き）。
【発明を実施するための形態】
【００２２】
以下、図を参照して本発明の実施の形態を詳細に説明する。
まず、構成を説明する。
図１に、本実施の形態における画像形成システムＡのシステム構成例を示す。
図１に示すように、画像形成システムＡは、例えば、画像形成装置１と外部装置２とを備えて構成されている。画像形成装置１及び外部装置２の各装置は、ＬＡＮ（Local Area Network）等の通信ネットワーク３を介して、データ通信可能に接続されている。
【００２３】
画像形成装置１は、コピー機能、画像読取機能、プリンタ機能を備えた、所謂ＭＦＰ（Multi-Function Peripheral）である。この画像形成装置１は、例えば、ＣＭＹＫの色毎に感光体ドラムを有し、感光体ドラムへの画像形成と同時に用紙を搬送して印刷を行うタンデム式の画像処理装置が適用できる。また、画像形成装置１は、単色の感光体ドラムのみ有するモノクロの画像を形成する画像処理装置であってもよい。画像形成装置１は、外部装置２から送信されるプリントジョブデータや、画像形成装置１に備えられているスキャナ等の画像読取部から読み込んだ画像データ等に基づき、用紙に画像を形成する。
【００２４】
外部装置２は、所謂パーソナルコンピュータであり、画像形成装置１にプリントジョブデータを送信する機能を有する。外部装置２には、プリンタドライバプログラム（以下、単にプリンタドライバと称することがある。）がインストールされている。外部装置２は、このプリンタドライバの機能を用いて画像形成時に適用されるプリント条件のデータ（印刷要求データ等）、ページ印刷用制御データ（画像データ等）等を含んだプリントジョブデータを生成し画像形成装置１に送信する。プリントジョブデータは、例えばＰＳ（PostScript：ポストスクリプト（登録商標））や、ＰＣＬ（Printer Control Language）、ＰＤＦ（Portable Document Format）、ＸＰＳ（XML Paper Specification）といったページ記述言語（ＰＤＬ：Page Description Language）形式のデータ（以下、ＰＤＬデータとも称す）である。また、プリント条件のデータは、ＰＪＬ（Printer Job Language）等の形式によりプリントチケットとしてプリントジョブデータに含まれていてもよい。
【００２５】
図２に、外部装置２の構成を示す。
図２に示すように、外部装置２は、例えば、ＣＰＵ（Central Processing Unit）２０、ＲＡＭ（Random Access Memory）２１、ＨＤＤ（Hard Disk Drive）２２、操作部２３、表示部２４、通信部２５を備えて構成されている。
【００２６】
ＣＰＵ２０は、操作部２３から入力される操作信号（指示信号）又は通信部２５により受信される指示信号に応じて、ＨＤＤ２２に記憶されている各種処理プログラムを読み出し、ＲＡＭ２１内に形成されたワーク領域に展開し、当該プログラムとの協働により各種処理を行う。
【００２７】
また、ＣＰＵ２０は、ＨＤＤ２２からプリンタドライバプログラム２２ａを読み出してＲＡＭ２１に展開し、当該プログラムとの協働により、画像形成装置１にプリントジョブデータを送信する。
【００２８】
ＲＡＭ２１は、ＣＰＵ２０により実行される各種処理プログラム及びこれらプログラムに係るデータを一時的に記憶するワーク領域を形成する。
【００２９】
ＨＤＤ２２は、各種プログラム、各種設定データ、画像データ等を記憶する。また、ＨＤＤ２２は、プリンタドライバプログラム２２ａを記憶している。
【００３０】
操作部２３は、カーソルキー、数字入力キー、及び各種機能キー等を備えたキーボードや、マウスなどのポインティングデバイス等を備えて構成され、キーボードに対するキー操作やマウス操作により入力された指示信号をＣＰＵ２０に出力する。
【００３１】
表示部２４は、ＬＣＤ（Liquid Crystal Display）等により構成され、ＣＰＵ２０から入力される表示信号の指示に従って、操作部２３からの入力指示やデータ等を表示する。
【００３２】
通信部２５は、ＬＡＮアダプタ、ルータ、ＴＡ（Terminal Adapter）等を備え、通信ネットワーク３を介して接続された画像形成装置１等の他の装置との間でデータの送受信を行う。
【００３３】
図３に、画像形成装置１の構成を示す。
図３に示すように、画像形成装置１は、制御部１０、ＲＡＭ１１、ＲＯＭ（Read Only Memory）１２、ＨＤＤ１３、操作部１４、表示部１５、画像読取部１６、プリント部１７、通信部１８等を備え、各部はバスにより電気的に接続されている。
【００３４】
制御部１０は、操作部１４から入力される操作信号（指示信号）又は通信部１８により受信される指示信号に応じて、ＲＯＭ１２に記憶されている各種処理プログラムを読み出し、ＲＡＭ１１内に形成されたワーク領域に展開し、当該プログラムとの協働により各種処理を行う。また、制御部１０は、画像形成に関する一連の処理（画像形成処理）を行う。
【００３５】
画像形成処理では、通信部１８により外部装置２から受信されたＰＤＬデータが解析され、中間言語（ＤＬ；Display List）形式のデータ（以下、ディスプレイリストとも称す）が生成される。そして、ディスプレイリストに基づいてラスタライズ処理が行われ印刷データとしてのビットマップ形式のデータ（以下、ビットマップデータとも称す）が生成される。そして、生成されたビットマップデータがプリント部１７へ出力される。
従って、画像形成処理の実行により印刷データとしてのビットマップデータを生成する制御部を備えた画像形成装置１は、印刷データ生成装置として実現される。
【００３６】
本実施の形態の制御部１０は、プロセッサコア等の演算部（以下、コアと称す）を複数備えて構成されたマルチコアプロセッサを用いて構成され、複数の処理を並列で行うことができる。本実施の形態の各コアには、識別番号（コア番号）が予め設定されているものとする。なお、制御部１０は、コアに替えてＣＰＵ（Central Processing Unit）を集合させ、マルチコアプロセッサと同等の機能を発揮するように構成されてもよい。
【００３７】
ＲＡＭ１１は、ワーク領域、スプール領域、共有保存領域を形成し、記憶部として機能する。ワーク領域には、制御部１０により実行される各種プログラム及びこれらプログラムに係るデータ等が一時的に展開され、各種プログラムで処理されたデータ等が一時的に記憶される。スプール領域には、外部装置２や画像読取部１６により入力されたＰＤＬデータ等の各種データが記憶される。
【００３８】
共有保存領域は、後述する解析処理及びラスタライズ処理が実行される際に使用される領域であり、解析処理によって生成されたディスプレイリスト、ラスタライズ処理によって生成されたビットマップデータ等が一時的に保存される。共有保存領域には、ラスタライズ処理が実行される過程で使用されるラスタライズ領域が含まれる。
【００３９】
ラスタライズ領域には、ラスタライズ処理で使用する変数、データ等を一時的に保存する領域、画像を重ね合わせる透過処理や非圧縮のビットマップデータを展開するための領域等が含まれる。ラスタライズ領域は、予め共有保存領域に設定されている固定ラスタライズ領域と、適宜追加される追加ラスタライズ領域と、がある。固定ラスタライズ領域及び追加ラスタライズ領域は、予め定められたサイズの領域である。
【００４０】
なお、ＲＡＭ１１は、読み書き可能な記憶媒体であればよく、ＨＤＤ（Hard Disk Drive）、ＭＲＡＭ（Magnetic Random Access Memory）又はフラッシュメモリなどで構成されていても良く、この限りではない。また、このＲＡＭ１１は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであっても良い。
【００４１】
ＲＯＭ１２は、制御部１０で実行される各種処理プログラム、各種データ等を記憶する。これらの各種プログラムは、読み取り可能なプログラムコードの形態で格納され、制御部１０は、当該プログラムコードに従った動作を逐次実行する。また、ＲＯＭ１２は、プリンタコントローラプログラム１２ａ等を記憶している。
【００４２】
ＨＤＤ１３は、画像読取部１６により読み取られた画像データや、各種初期設定データ等を記憶する。
【００４３】
操作部１４は、数字キーやスタートキー、リセットキー等の各種キーを有し、押下されたキーの押下信号を制御部１０に出力する。また、操作部１４は、表示部１５と一体的に形成されたタッチパネルを備えており、ユーザの指先やタッチペン等により当接されたタッチパネル上の位置を検出して、位置信号を制御部１０に出力する。
【００４４】
表示部１５は、タッチパネルに覆われるように設けられたＬＣＤ（Liquid Crystal Display）等から構成されており、制御部１０から入力される表示信号に従って、各種設定条件を入力するための各種設定画面や各種処理結果等を表示する。
【００４５】
画像読取部１６は、原稿画像を読み取って画像データを生成する所謂スキャナであり、原稿を載置するプラテンガラス、プラテンガラス上の原稿画像を走査し、これをＣＣＤイメージセンサ上に結像する走査光学系を備えている。画像読取部１６は、ＣＣＤイメージセンサで読み取った原稿画像に基づいて生成された画像信号をＡ／Ｄ変換して画像信号を生成する。
【００４６】
プリント部１７は、電子写真方式、静電記録方式、熱転写方式等の作像プロセスを利用して画像を形成するために必要な構成要素を含む機能部である。例えば、プリント部１７は、露光ユニット、現像ユニット、感光体ドラム等を有する画像形成ユニット、定着ユニット、給紙ユニット、搬送ユニット、排紙ユニット、駆動制御装置等を備える。プリント部１７は、制御部１０の指示に従い、画像読取部１６により生成された画像データ又は通信部１８により受信されたプリントジョブデータ等に基づいて、給紙ユニットから供給された用紙に画像を形成し、排紙ユニットに搬送する。
【００４７】
通信部１８は、ＬＡＮアダプタ、ルータ、ＴＡ等を備え、通信ネットワーク３を介して接続された外部装置２等の外部機器との間でデータの送受信を行う。例えば、通信部１８は、外部装置２からＰＬＤデータを受信する。
【００４８】
次に、本実施の形態の動作を説明する。
以上のように構成される画像形成装置１の制御部１０がＲＡＭ１１やＲＯＭ１２等の各部との協働によって実行する画像形成処理について、図４及び図５を参照しながら説明する。図４には、画像形成処理の概念図を示し、図５には、画像形成処理のフローチャートを示す。本実施の形態では、制御部１０が取得するデータとして、ＰＤＬデータにのみ着目している。
【００４９】
制御部１０は、外部装置２から送信されたＰＤＬデータを、通信部１８を介して取得し、取得したＰＤＬデータをスプールデータとしてＲＡＭ１１のスプール領域に一時的に記憶（スプール）させる（ステップＳ１）。
【００５０】
制御部１０は、スプールデータ、即ちＰＤＬデータをＲＡＭ１１のスプール領域から読み出し、解析処理を実行する（ステップＳ２）。解析処理では、読み出された１ページ分のＰＤＬデータが複数ラインのバンドに分割され、この分割されたバンド単位で、ＰＤＬデータとビットマップデータとの間の言語形式のディスプレイリストが生成される。制御部１０は、生成したディスプレイリストを、ＲＡＭ１１の共有保存領域に一時的に記憶させる。
【００５１】
ディスプレイリストは、ＰＤＬデータに含まれるオブジェクト（テキストデータ、グラフィックスデータ、イメージデータ等）の特徴に応じて生成されるデータである。例えば、テキストデータやグラフィックスデータのディスプレイリストとしてはベクタ形式のデータ、イメージデータのディスプレイリストとしてはイメージ形式のデータ、を挙げることができる。
【００５２】
制御部１０は、１ページ分のディスプレイリストが完成した時点で、ＲＡＭ１１からディスプレイリストを読み出し、読み出したディスプレイリストに基づいてラスタライズ処理を実行する（ステップＳ３）。ラスタライズ処理では、バンド単位に分割されたビットマップデータが生成され、圧縮される。圧縮されたビットマップデータ（圧縮ビットマップデータとも称す）は、ＲＡＭ１１の共有保存領域に順次保存される。
【００５３】
制御部１０は、１バンド分のビットマップデータが完成すると、プリント部１７を起動させてプリント処理を開始させた後、ビットマップデータ出力処理を実行する（ステップＳ４）。ビットマップデータ出力処理では、ＲＡＭ１１に保存された１バンド目の圧縮ビットマップデータが伸張され、プリント部１７に出力される。また、制御部１０は、一方で、２バンド目以降のビットマップデータの生成及びＲＡＭ１１への保存を引き続き行う。
【００５４】
プリント部１７では、入力されたビットマップデータに基づいて、用紙に画像が形成される。制御部１０は、ＲＡＭ１１に保存されたバンド単位の圧縮ビットマップデータを、所定のタイミング毎に順次プリント部１７に出力する。
【００５５】
なお、図５に示すステップＳ１〜Ｓ４により実現される処理モジュールは、マルチタスクで動作するため、複数ページを並行して処理可能であるが、説明の都合上、これらステップＳ１〜Ｓ４を時系列的に記載し、１ページ分の画像が用紙上に形成されるまでの処理を説明する。即ち、ステップＳ２〜Ｓ４の処理（解析処理、ラスタライズ処理、ビットマップデータ出力処理）は、説明の便宜により図示された手順に沿って説明しているが、各処理は並行して実行され得るものとする。
【００５６】
次に、解析処理（ステップＳ２）の具体的な処理内容について図６を用いて説明する。図６に、解析処理のフローチャートを示す。
図６に示す解析処理は、制御部１０を構成する複数のコアのうちの何れかのコアにより実行される。
【００５７】
まず、ＲＡＭ１１から読み出したＰＤＬデータに含まれるオブジェクトが解析され、１ページが複数ラインのバンドに分割され、バンド単位でディスプレイリストが生成される（ステップＳ１１）。そして、生成されたディスプレイリストがＲＡＭ１１に一時的に保存される。
【００５８】
次に、１ページ分のＰＤＬデータに含まれる全てのオブジェクトの解析が完了したか否かが判定される（ステップＳ１２）。全てのオブジェクトの解析が完了した場合（ステップＳ１２：ＹＥＳ）、解析処理が終了される。一方、全てのオブジェクトの解析が完了していない場合（ステップＳ１２：ＮＯ）、ステップＳ１１の処理に戻り、１ページ分のＰＤＬデータに含まれる次のオブジェクトの解析が行われる。
【００５９】
次に、ラスタライズ処理（ステップＳ３）の具体的な処理内容について説明する。ラスタライズ処理は、各バンドのディスプレイリストに基づいてラスタライズ処理を実行してビットマップデータを生成するタスク（ＲＡＳスレーブと称す）と、ＲＡＳスレーブを管理して各バンドのラスタライズ処理をＲＡＳスレーブに割り当てるタスク（ＲＡＳマスターと称す）からなる。ＲＡＳマスターは、予め設定されたコア（本実施の形態では、コア番号が１のコア）に予め割り当てられている。また、ＲＡＳスレーブには、識別番号（ＲＡＳスレーブ番号）が割り当てられる。なお、ＲＡＳスレーブ番号が１のＲＡＳスレーブを固定ＲＡＳスレーブとも称す。
【００６０】
図７に、ＲＡＳマスターのフローチャートを示す。
まず、ＲＡＳマスターの処理が実行される前、例えば、画像形成装置１の電源ＯＮ時に実行される初期化処理において、予め設定されたコア番号が１のコア（コア１）に対して、ＲＡＳマスターが割り当てられ、当該ＲＡＳマスターが使用する固定ラスタライズ領域が設定される。
【００６１】
その後、１ページ分のディスプレイリストが完成すると、バンド状態監視テーブル及びＲＡＳスレーブ状態監視テーブルが作成され初期化される（ステップＳ２１）。
なお、バンド状態監視テーブル及びＲＡＳスレーブ状態監視テーブルは、ラスタライズ処理を行うページ毎に新規に作成される。
【００６２】
図８（ａ）に、ステップＳ２１でのバンド状態監視テーブルの例、図８（ｂ）に、ステップＳ２１でのＲＡＳスレーブ状態監視テーブルの例、を示す。
【００６３】
図８（ａ）に示すように、バンド状態監視テーブルには、バンド番号と、バンド番号に対応するバンド状態からなる。バンド番号は、解析処理により分割された各バンドを識別するための識別番号である。バンド状態は、バンド番号が示すバンドの状態を「ビットマップ未生成」、「ＲＡＳスレーブｎに割り当て」、「ビットマップ生成済み」の３つの状態のうちいずれかで示されている。
「ビットマップ未作成」は、ビットマップデータが未生成であることを示す。「ＲＡＳスレーブｎに割り当て」は、バンド番号が示すバンドのラスタライズ処理をＲＡＳスレーブ番号がｎ（ｎはＲＡＳスレーブ番号）のＲＡＳスレーブに割り当て済みであることを示す。「ビットマップ生成済み」は、ビットマップデータが生成済みであることを示す。
ステップＳ２１では、全てのバンドのバンド状態が「ビットマップ未生成」に初期化される。
【００６４】
図８（ｂ）に示すように、ＲＡＳスレーブ状態監視テーブルは、コア番号に対するＲＡＳスレーブ番号、ラスタライズ処理時間、削除指示フラグからなる。
コア番号は、制御部１０を構成する各コアを識別する識別番号である。ＲＡＳスレーブ番号は、コア番号が示すコアに対して割り当てられたＲＡＳスレーブを示す識別番号である。ラスタライズ処理時間は、ＲＡＳスレーブ番号が示すＲＡＳスレーブにおけるラスタライズ処理の実行時間である。削除指示フラグは、コア番号が示すコアに対して割り当てられたＲＡＳスレーブを削除する指示の有無を示すフラグであり、「ＹＥＳ」の場合には削除する指示があることを示している。
ステップＳ２１では、コア番号１のコア（コア１）に、ＲＡＳスレーブ番号が１のＲＡスレーブ（固定ＲＡＳスレーブ）が予め設定されている以外は、全ての項目は初期値が設定される。
【００６５】
ステップＳ２１後、制御部１０を構成する複数のコアの使用状況が検出され（ステップＳ２２）、ＲＡＳスレーブを割り当て可能なコアがあるか否かが判別される（ステップＳ２３）。
【００６６】
ステップＳ２３では、アイドル状態のコアは、ＲＡＳスレーブを割り当て可能なコアと判別される。また、ＲＡＳスレーブの処理よりも予め設定された優先度が低い処理を実行中のコアは、当該コアで実行されている処理を停止させることでＲＡＳスレーブを割り当て可能なコアであると判別される。
なお、ＦＡＸ処理等のＲＡＳスレーブの処理よりも優先度が高い処理を実行しているコアは、継続して処理を実行させることとし、ＲＡＳスレーブを割り当て可能なコアではないと判別される。
【００６７】
ＲＡＳスレーブを割り当て可能なコアがある場合（ステップＳ２３；ＹＥＳ）、ＲＡＭ内の共有保存領域内において空き領域のサイズが検出され（ステップＳ２４）、当該空き領域のサイズがラスタライズ領域を確保可能なサイズであるか否かが判別される（ステップＳ２５）。
【００６８】
空き領域のサイズがラスタライズ領域を確保可能なサイズである場合（ステップＳ２５；ＹＥＳ）、ＲＡＳスレーブが追加生成され、当該追加生成されたＲＡＳスレーブ（追加ＲＡＳスレーブ）が使用するラスタライズ領域（追加ラスタライズ領域）が共有保存領域内において確保される（ステップＳ２６）。そして、ＲＡＳスレーブ状態監視テーブルが更新され（ステップＳ２７）、ステップＳ２２の処理に戻る。
ステップＳ２７では、ステップＳ２３において判別されたＲＡＳスレーブが割り当て可能なコアのコア番号に対するＲＡＳスレーブ番号に、ステップＳ２６において追加生成したＲＡＳスレーブの識別番号が割り当てられる。
【００６９】
ＲＡＳスレーブを割り当て可能なコアがない場合（ステップＳ２３；ＮＯ）、又は、空き領域のサイズがラスタライズ領域を確保可能なサイズでない場合（ステップＳ２５；ＮＯ）、バンド状態監視テーブルの更新処理（図９参照）が実行される（ステップＳ２８）。
ステップＳ２８で実行されるバンド状態監視テーブルの更新処理では、各ＲＡＳスレーブに対してバンドが一つ割り当てられる。
【００７０】
ステップＳ２８後、ＲＡＳスレーブが割り当てられたコアに対して、ＲＡＳスレーブの実行指示が出力される（ステップＳ２９）。そして、いずれかのＲＡＳスレーブからエラーが検出されたか否かが判別される（ステップＳ３０）。
ステップＳ３０では、いずれかのＲＡＳスレーブが後述する「エラーの設定」を行った場合、エラーが検出される。
【００７１】
エラーが検出された場合（ステップＳ３０；ＹＥＳ）、全てのバンドの処理が中断されてエラー処理が実行され（ステップＳ３１）、ＲＡＳマスターの処理が終了される。
エラー処理とは、追加生成したＲＡＳスレーブの削除、当該追加生成したＲＡＳスレーブに対応して確保したラスタライズ領域（追加ラスタライズ領域）の解放等であり、ＲＡＳマスターの処理開始前の状態に戻す処理である。
【００７２】
エラーが検出されない場合（ステップＳ３０；ＮＯ）、１ページを構成する全バンドのビットマップデータの生成が完了したか否か判別される（ステップＳ３２）。全バンドのビットマップデータの生成が完了していない場合（ステップＳ３２；ＮＯ）、ステップＳ２８の処理に戻り、全バンドのビットマップデータの生成が完了した場合（ステップＳ３２；ＹＥＳ）、ＲＡＳマスターの処理が終了される。
【００７３】
図９に、ステップＳ２８において実行されるバンド状態監視テーブルの更新処理のフローチャートを示す。
まず、ＲＡＳスレーブ状態監視テーブルのＲＡＳスレーブ番号のうち参照するＲＡＳスレーブ番号ｎが１に設定される（ステップＳ４１）。また、バンド状態監視テーブルが参照され、ビットマップ未生成のバンドがあるか否かが判別され（ステップＳ４２）、ビットマップ未生成のバンドがない場合（ステップＳ４２；ＮＯ）、バンド状態監視テーブルの更新処理が終了される。
【００７４】
ビットマップ未生成のバンドがある場合（ステップＳ４２；ＹＥＳ）、ＲＡＳスレーブ番号がｎのＲＡＳスレーブ（以下、ＲＡＳスレーブｎ）が使用可能か否かが判別される（ステップＳ４３）。
ステップＳ４３では、ＲＡＳスレーブｎが割り当てられたコアがアイドル状態である場合、ＲＡＳスレーブの処理よりも優先度が低い処理を行なっており当該コアで実行されている処理を停止させることでＲＡＳスレーブの実行が可能である場合、使用可能と判別される。
【００７５】
ＲＡＳスレーブｎが使用可能である場合（ステップＳ４３；ＹＥＳ）、ＲＡＳスレーブｎにビットマップ未生成のバンドが割り当てられ（ステップＳ４４）、バンド状態監視テーブルが更新される（ステップＳ４５）。
【００７６】
ＲＡＳスレーブｎが使用可能でない場合（ステップＳ４３；ＮＯ）、又は、ステップＳ４５後、ＲＡＳスレーブｎのＲＡＳスレーブ番号ｎがＲＡＳスレーブ最大番号Ｎと一致するか否かが判別される（ステップＳ４６）。なお、ＲＡＳスレーブ最大番号Ｎは、追加生成したＲＡＳスレーブ数と固定ＲＡＳスレーブの数との加算値である。
【００７７】
ＲＡＳスレーブ番号ｎがＲＡＳスレーブ最大番号Ｎと一致しない場合（ステップＳ４６；ＮＯ）、ＲＡＳスレーブ番号ｎがインクリメントされ（ｎ＝ｎ＋１）（ステップＳ４７）、ステップＳ４２の処理に戻る。
【００７８】
ＲＡＳスレーブ番号ｎがＲＡＳスレーブ最大番号Ｎと一致する場合（ステップＳ４６；ＹＥＳ）、バンド状態監視テーブルが参照され、ＲＡＳスレーブが割り当てられたバンドがあるか否かが判別される（ステップＳ４８）。
【００７９】
ＲＡＳスレーブが割り当てられたバンドがない場合（ステップＳ４８；ＮＯ）、ステップＳ４１の処理に戻り、ＲＡＳスレーブが割り当てられたバンドがある場合（ステップＳ４８；ＹＥＳ）、バンド状態監視テーブルの更新処理が終了される。
【００８０】
図１０（ａ）に、バンド状態監視テーブルが終了したときのバンド状態監視テーブルの例、図１０（ｂ）に、バンド状態監視テーブルの更新処理が終了したときのＲＡＳスレーブ状態監視テーブルの例、を示す。
【００８１】
図１０（ｂ）に示すように、コア番号が１のコアには、ＲＡＳスレーブ番号が１のＲＡＳスレーブが割り当てられ、図１０（ａ）に示すように、当該ＲＡＳスレーブ番号が１のＲＡＳスレーブ（ＲＡＳスレーブ１）は、バンド番号が１のバンドに割り当てられる。同様に、図１０（ｂ）に示すように、コア番号が２、４のコアには、ＲＡＳスレーブ番号が２、３のＲＡＳスレーブがそれぞれ割り当てられ、図１０（ａ）に示すように、当該ＲＡＳスレーブ番号が２、３のＲＡＳスレーブ（ＲＡＳスレーブ２、ＲＡＳスレーブ３）は、バンド番号が２、３のバンドに割り当てられる。
なお、図１０（ａ）では、バンド番号が３のバンドに対してＲＡＳスレーブを割り当てた段階で、使用可能なＲＡＳスレーブがなくなるため、バンド番号が４以降のバンドにはＲＡＳスレーブは割り当てられず、バンド状態が「ビットマップ未生成」のままとなる。
【００８２】
図１１に、ＲＡＳスレーブのフローチャートを示す。
図１１に示す処理は、ＲＡＳマスターから実行指示を受けたＲＡＳスレーブが個々に実行するものであり、ＲＡＳマスターから実行指示を受けたタイミングで開始される。また、ＲＡＳスレーブの処理は、当該ＲＡＳスレーブに設定されているＲＡＳスレーブ番号を含むＲＡＳスレーブ状態監視テーブルのレコードと、バンド状態監視テーブルのレコードとが参照されて実行される。
【００８３】
ＲＡＳマスターから実行指示を受けると、バンド状態監視テーブルに割り当てられたバンドのビットマップデータの生成開始から終了までのラスタライズ処理の実行時間の計時が開始される（ステップＳ５１）。そして、割り当てられたバンド内の１つのオブジェクトのディスプレイリストがビットマップデータに変換される（ステップＳ５２）。
【００８４】
ステップＳ５２後、ＲＡＳスレーブ状態監視テーブルのラスタライズ処理時間が、ステップＳ５２のオブジェクトの変換終了時の計時時間に更新される（ステップＳ５３）。そして、ＲＡＳスレーブ状態監視テーブルの削除指示フラグが参照され（ステップＳ５４）、削除指示があるか否かが判別される（ステップＳ５５）。
【００８５】
削除指示がない場合（ステップＳ５５；ＮＯ）、割り当てられたバンド内の全てのオブジェクトに対してビットマップデータへの変換が完了したか否かが判別され（ステップＳ５６）、バンド内の全オブジェクトのビットマップデータへの変換が完了していない場合（ステップＳ５６；ＮＯ）、ステップＳ５２の処理に戻る。
【００８６】
バンド内の全オブジェクトのビットマップデータへの変換が完了した場合（ステップＳ５６；ＹＥＳ）、計時が終了される（ステップＳ５７）。
【００８７】
図１２に、ＲＡＳスレーブ番号が１のスレーブにおいて、ステップＳ５７の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例を示す。
図１２に示すように、ＲＡＳスレーブが１のスレーブでは、割り当てられたバンドのラスタライズ処理に要した時間が１０〔ｍｓ〕であったことがわかる。
【００８８】
ステップＳ５７後、生成した１バンド分のビットマップデータが圧縮され、当該圧縮されたビットマップデータ（圧縮ビットマップデータ）を保存可能な空き領域がＲＡＭ内の共有保存領域内にあるか否かが判別される（ステップＳ５８）。
【００８９】
圧縮ビットマップデータを保存可能な空き領域がＲＡＭ内の共有保存領域内になく不足している場合（ステップＳ５８；ＮＯ）、追加ＲＡＳスレーブがあるか否かが判別される（ステップＳ５９）。追加ＲＡＳスレーブとは、ＲＡＳスレーブ番号が１以外のＲＡＳスレーブであり、ステップＳ５９では、ＲＡＳスレーブ状態監視テーブル内のＲＡＳスレーブ番号の項目が参照され、ＲＡＳスレーブ番号が１を除くＲＡＳスレーブ（追加ＲＡＳスレーブ）があるか否かが判別される。なお、ＲＡＳスレーブ番号が１のＲＡＳスレーブは、固定ＲＡＳスレーブである。
【００９０】
追加ＲＡＳスレーブがない場合（ステップＳ５９；ＮＯ）、空き領域の不足によりこれ以上のラスタライズ処理の継続が不可能であるため、エラーが発生したことが設定され（ステップＳ６０）、ＲＡＳスレーブの処理が中断されて終了する。
【００９１】
追加ＲＡＳスレーブがある場合（ステップＳ５９；ＹＥＳ）、追加ＲＡＳスレーブそれぞれのラスタライズ処理時間が比較され（ステップＳ６１）、ラスタライズ処理時間が最小の追加ＲＡＳスレーブを削除することが決定され、当該追加ＲＡＳスレーブの削除指示フラグが「ＹＥＳ」に設定され（ステップＳ６２）、ステップＳ５８の処理に戻る。
【００９２】
図１３に、ＲＡＳスレーブ番号が１のスレーブにおいて、ステップＳ６２の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例を示す。
図１３に示すように、ＲＡＳスレーブ番号が２の追加ＲＡＳスレーブとＲＡＳスレーブ番号が３の追加ＲＡＳスレーブとでは、ＲＡＳスレーブ番号が３の追加ＲＡＳスレーブの方がＲＡＳスレーブ番号が２の追加ＲＡＳスレーブよりもラスタライズ処理時間が短い。従って、ＲＡＳスレーブ番号が３の追加ＲＡＳスレーブの削除指示フラグが「ＹＥＳ」に設定される。削除フラグが「ＹＥＳ」に設定された追加ＲＡＳスレーブは、この後に削除され、当該追加ＲＡＳスレーブに割り当てられていたラスタライズ領域が解放されることにより、新たな空き領域が発生することとなる。
【００９３】
圧縮ビットマップデータを保存可能な空き領域がＲＡＭ内の共有保存領域内にある場合（ステップＳ５８；ＹＥＳ）、圧縮ビットマップデータが共有保存領域内に保存される（ステップＳ６３）。そして、バンド状態監視テーブルのバンド状態が「ビットマップ生成済み」に変更され（ステップＳ６４）、ＲＡＳスレーブ状態監視テーブル内の当該ＲＡＳスレーブのレコードのうちラスタライズ処理時間及び削除指示フラグの情報がクリア（初期化）され（ステップＳ６５）、ＲＡＳスレーブの処理が終了される。
【００９４】
一方、削除指示がある場合（ステップＳ５５；ＹＥＳ）、バンド状態監視テーブルのバンド状態が「ビットマップ未生成」に変更され（ステップＳ６６）、ＲＡＳスレーブ状態監視テーブル内の当該ＲＡＳスレーブのＲＡＳスレーブ番号、ラスタライズ処置時間、削除指示フラグの全項目の情報がクリア（初期化）される（ステップＳ６７）。
なお、ステップＳ６８において、ＲＡＳスレーブ番号が１の固定ＲＡＳスレーブの場合、ＲＡＳスレーブ番号はクリアされず１の状態を維持する。
【００９５】
ステップＳ６７後、終了処理が実行され（ステップＳ６８）、ＲＡＳスレーブの処理が終了される。終了処理では、生成途中のビットマップデータの削除、割り当てられていたラスタライズ領域の解放、ＲＡＳスレーブ自身の削除等が行なわれる。
【００９６】
ＲＡＳスレーブ番号が３のスレーブにおいて、図１４（ａ）に、ステップＳ５５；ＹＥＳ後のステップＳ６６の処理が終了したときのバンド状態監視テーブルの例、図１４（ｂ）に、ステップＳ６７の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例、を示す。
【００９７】
図１４（ａ）に示すように、バンド状態監視テーブルのバンド番号が３に対するバンド状態が「ＲＡＳスレーブ３に割り当て」（図１０（ｂ）参照）から「ビットマップ未生成」に変更される。
また、図１４（ｂ）に示すように、ＲＡＳスレーブ状態監視テーブルのコア番号が４のコアに対して割り当てられていたＲＡＳスレーブ番号が３のＲＡＳスレーブに係る情報（ＲＡＳスレーブ番号、ラスタライズ処置時間、削除指示フラグ）がクリア（初期化）される。
【００９８】
ＲＡＳスレーブ番号が１のスレーブにおいて、図１５（ａ）に、ＲＡＳスレーブ番号が３のスレーブが削除された後にステップＳ６４の処理が終了したときのバンド状態監視テーブルの例、図１５（ｂ）に、ステップＳ６５の処理が終了したときのＲＡＳスレーブ状態監視テーブルの例、を示す。
【００９９】
図１５（ａ）に示すように、バンド状態監視テーブルのバンド番号が１に対するバンド状態が「ＲＡＳスレーブ１に割り当て」（図１４（ａ）参照）から「ビットマップ生成済」に変更される。
また、図１５（ｂ）に示すように、ＲＡＳスレーブ状態監視テーブル内の当該ＲＡＳスレーブ１（ＲＡＳスレーブ番号が１）のレコードのうちラスタライズ処理時間及び削除指示フラグの情報がクリア（初期化）される。
【０１００】
図１６Ａ、図１６Ｂ、図１６Ｃに、共有保存領域内のイメージ図を示し、ラスタライズ処理が実行される際のラスタライズ領域の追加、削除について説明する。
【０１０１】
ラスタライズ処理が開始されたとき、共有保存領域１１ａには、１ページ分のディスプレイリストＤＬ１〜ＤＬｍが保存された領域と、固定ＲＡＳスレーブ（ＲＡＳスレーブ１）が使用する固定ラスタライズ領域Ｒ１が存在している（図１６Ａ（ａ）参照）。
【０１０２】
次に、コアの使用状況、空き領域Ｅのサイズに基づいてＲＡＳスレーブが追加生成されると共に、追加生成されたＲＡＳスレーブが使用する追加ラスタライズ領域が共有保存領域内に確保される。共有保存領域１１ａには、追加ＲＡＳスレーブ（ＲＡＳスレーブ２、３）が使用する追加ラスタライズ領域Ｒ２、Ｒ３が確保されている（図１６Ａ（ｂ）参照）。
【０１０３】
その後、各ＲＡＳスレーブに対して実行指示が出力されると、各ＲＡＳスレーブにおいて、割り当てられたバンドのディスプレイリストがビットマップデータに変換され、１バンド分の圧縮ビットマップデータＢ１、Ｂ２、Ｂ３が生成されて共有保存領域に保存される（図１６Ａ（ｃ）参照）。
【０１０４】
圧縮ビットマップデータを保存する際に、当該圧縮ビットマップを保存する空き領域Ｅが不足した場合（図１６Ａ（ｄ）参照）、追加ＲＡＳスレーブのうちラスタライズ時間が最小の追加ＲＡＳスレーブが削除されると共に、当該削除される追加ＲＡＳスレーブが使用していた追加ラスタライズ領域Ｒ３が解放され、空き領域Ｅのサイズが拡張される（図１６Ｂ（ｅ）参照）。そして、追加ラスタライズ領域Ｒ３が解放されたことにより拡張された空き領域Ｅに、圧縮ビットマップデータが保存されることとなる（図１６Ｂ（ｆ）参照）。
【０１０５】
再度、空き領域の不足が発生した場合には（図１６Ｂ（ｇ）参照）、上述したように追加ＲＡＳスレーブの削除に伴って追加ラスタライズ領域Ｒ２が解放されることにより、空き領域Ｅのサイズが拡張され（図１６Ｂ（ｈ）参照）、拡張された空き領域Ｅに、圧縮ビットマップデータが保存されることとなる（図１６Ｃ（ｉ）参照）。
【０１０６】
その後、空き領域が不足しても削除する追加ＲＡＳスレーブがない場合には（図１６Ｃ（ｊ）参照）、これ以上のラスタライズ処理の継続が不可能であるため、エラー処理が実行され終了する。
【０１０７】
以上のように、本実施の形態によれば、コアの使用状況とＲＡＭ内の共有保存領域の空き領域の状況とに基づいて、ＲＡＳスレーブによりラスタライズ処理を実行するコアを設定し、設定したコア毎にラスタライズ処理を実行することができるため、複数のコア及びＲＡＭ内のメモリ領域を有効に活用でき、ラスタライズ処理の効率化を図ることができるため、印刷データの生成効率を向上させることができる。
【０１０８】
更に、共有保存領域内の空き領域が不足した場合には、ＲＡＳスレーブによりラスタライズ処理を実行するコアの数を削減して当該ラスタライズ処理を実行するために使用されるラスタライズ領域を削減（解放）することにより、新たな空き領域が発生することとなり、空き領域不足によるラスタライズ処理の停止を防止できる。
【０１０９】
特に、ラスタライズ処理の実行時間が最小のコアによるＲＡＳスレーブを削除して、当該ラスタライズ処理を実行するために使用されるラスタライズ領域を削減（解放）することにより、新たな空き領域を発生させることができるため、ラスタライズ処理の実行無駄を最小限に留めることができ、ラスタライズ処理を実行するＲＡＳスレーブの削減によるラスタライズ処理の効率化への影響を低減することができる。
【０１１０】
また、アイドル、又は、ラスタライズ処理よりも予め設定された優先度が低い処理を実行中であるコアに対して、ＲＡＳスレーブを実行するコアとしての設定、及び、ラスタライズ処理を実行するラスタライズ領域の設定を行なうことができる。
【０１１１】
また、ＲＡＳスレーブによるラスタライズ処理を実行するコアに対して、ラスタライズ処理を実行するバンドを割り当て、ラスタライズ処理をバンド単位で実行することができるため、１ページのラスタライズ処理をバンド単位で並列して実行することができ、１ページあたりの印刷データの生成処理時間の短縮を図ることができ、印刷データの生成効率を向上させることができる。
【０１１２】
〔変形例〕
図１７、図１８に、ＲＡＳマスターの変形例のフローチャートを示す。
図１７、図１８に示すＲＡＳマスターの処理は、１ページを構成する全バンドのビットマップの生成処理が完了するまで、ＲＡＳスレーブの追加を行なうことが可能な点が図７に示すＲＡＳマスターの処理と異なる点である。
【０１１３】
ステップＳ７１〜Ｓ８２は、図７に示すステップＳ２１〜３２と同様であるため、説明は省略する。
【０１１４】
全バンドのビットマップの生成処理が完了していない場合（ステップＳ８２；ＮＯ）、制御部１０を構成する複数のコアの使用状況が検出され（ステップＳ８３）、ＲＡＳスレーブを割り当て可能なコアがあるか否かが判別される（ステップＳ８４）。
なお、ステップＳ８３、Ｓ８４は、図７に示すステップＳ２２、Ｓ２３と同様であるため、詳細な説明は省略する。
【０１１５】
ＲＡＳスレーブを割り当て可能なコアがある場合（ステップＳ８４；ＹＥＳ）、ＲＡＭ内の共有保存領域内において空き領域のサイズが検出され（ステップＳ８５）、当該空き領域のサイズがラスタライズ領域を確保可能なサイズであるか否かが判別される（ステップＳ８６）。
【０１１６】
空き領域のサイズがラスタライズ領域を確保可能なサイズである場合（ステップＳ８６；ＹＥＳ）、ＲＡＳスレーブが追加生成され、当該追加生成されたＲＡＳスレーブ（追加ＲＡＳスレーブ）が使用するラスタライズ領域（追加ラスタライズ領域）が共有保存領域内において確保される（ステップＳ８７）。そして、ＲＡＳスレーブ状態監視テーブルが更新され（ステップＳ８８）、ステップＳ７８の処理に戻り、バンド状態監視テーブルの更新処理が実行される。
【０１１７】
ＲＡＳスレーブを割り当て可能なコアがない場合（ステップＳ８４；ＮＯ）、又は、空き領域のサイズがラスタライズ領域を確保可能なサイズでない場合（ステップＳ８６；ＮＯ）、ステップＳ７８の処理に戻り、バンド状態監視テーブルの更新処理が実行される。
【０１１８】
図１７、図１８に示すＲＡＳマスターの処理によって、ＲＡＳスレーブに対して実行指示を出力した後に、先行して処理されているページの印刷が完了する等して共有保存領域内に空き領域が発生した場合には、ＲＡＳスレーブを更に追加生成することができる。また、空き領域の不足によってＲＡＳスレーブを削除した場合であっても、再度、空き領域が発生した場合には、再度、ＲＡＳスレーブを追加することができる。従って、１ページのラスタライズ処理の処理効率の向上を更に図ることができる。
【０１１９】
従って、変形例によれば、１ページ分を構成する全バンドのラスタライズ処理が完了していない場合には、ＲＡＳスレーブによるラスタライズ処理を実行するコアを追加設定することができ、当該追加設定したコアと、事前に設定したコアそれぞれによるラスタライズ処理を実行することができるため、更にラスタライズ処理の効率化を図ることができる。
【０１２０】
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として、ＲＯＭを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ等の不揮発性メモリ、ＣＤ-ＲＯＭ等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ（搬送波）も本発明に適用される。
【０１２１】
また、本発明は、上記実施の形態の内容に限定されるものではなく、本発明の主旨を逸脱しない範囲で適宜変更可能である。
【符号の説明】
【０１２２】
１  画像形成装置
２  外部装置
３  通信ネットワーク
１０  制御部
１１  ＲＡＭ
１１ａ  共有保存領域
１２  ＲＯＭ
１２ａ  プリンタコントローラプログラム
１３  ＨＤＤ
１４  操作部
１５  表示部
１６  画像読取部
１７  プリント部
１８  通信部
２０  ＣＰＵ
２１  ＲＡＭ
２２  ＨＤＤ
２２ａ  プリンタドライバプログラム
２３  操作部
２４  表示部
２５  通信部
Ａ  画像形成システム
【図１】
0005716367.tif 000002
【図２】
0005716367.tif 000003
【図３】
0005716367.tif 000004
【図４】
0005716367.tif 000005
【図５】
0005716367.tif 000006
【図６】
0005716367.tif 000007
【図７】
0005716367.tif 000008
【図８】
0005716367.tif 000009
【図９】
0005716367.tif 000010
【図１０】
0005716367.tif 000011
【図１１】
0005716367.tif 000012
【図１２】
0005716367.tif 000013
【図１３】
0005716367.tif 000014
【図１４】
0005716367.tif 000015
【図１５】
0005716367.tif 000016
【図１６Ａ】
0005716367.tif 000017
【図１６Ｂ】
0005716367.tif 000018
【図１６Ｃ】
0005716367.tif 000019
【図１７】
0005716367.tif 000020
【図１８】
0005716367.tif 000021