(57)【要約】【課題】  出力結果の差異を抑制しつつ、各印刷ジョブの画像生成を高速に行う。【解決手段】  処理対象のジョブデータを所定の単位で分割した分割ジョブデータそれぞれに対して実行する処理内容を特定する。特定された処理内容に基づいて、分割ジョブデータそれぞれを、グループに分類する。複数の画像処理部において分類されたグループで使用する機能に差異があるか判定する。その判定結果に基づいて、複数の画像処理部から各分割ジョブデータを処理する画像処理部を決定する。【選択図】  図２
2015199223.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像処理部の内の少なくとも１つを用いて、ジョブデータを画像処理する処理装置であって、
処理対象のジョブデータを所定の単位で分割した分割ジョブデータそれぞれに対して実行する処理内容を特定する特定する特定手段と、
前記特定手段により特定された処理内容に基づいて、前記分割ジョブデータそれぞれを、グループに分類する分類手段と、
前記複数の画像処理部において前記分類手段により分類されたグループで使用する機能に差異があるか判定する判定手段と、
前記判定手段の判定結果に基づいて、前記複数の画像処理部から各分割ジョブデータを処理する画像処理部を決定する決定手段と
を備えることを特徴とする処理装置。
【請求項２】
処理対象のジョブデータを所定の単位に分割する分割手段を更に備える
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記複数の画像処理部は、当該処理装置の動作を制御するコントロール部に内蔵される内部の画像処理部と、前記コントロール部と通信部を介して通信接続される少なくとも１つの外部の画像処理部を含む
ことを特徴とする請求項１に記載の処理装置。
【請求項４】
前記決定手段は、前記判定手段により処理対象のグループで使用する機能に差異があると判定された場合、当該グループに属する分割ジョブデータで使用する画像処理部は同一の画像処理部に決定する
ことを特徴とする請求項１〜３のいずれか１項に記載の処理装置。
【請求項５】
前記決定手段は、各画像処理部のバージョンに基づいて、前記複数の画像処理部から各分割ジョブデータを処理する画像処理部を決定する
ことを特徴とする請求項１〜４のいずれか１項に記載の処理装置。
【請求項６】
前記決定手段は、各画像処理部の処理負荷に基づいて、前記複数の画像処理部から各分割ジョブデータを処理する画像処理部を決定する
ことを特徴とする請求項１〜５のいずれか１項に記載の処理装置。
【請求項７】
前記決定手段は、各分割ジョブデータのサイズに基づいて、前記複数の画像処理部から各分割ジョブデータを処理する画像処理部を決定する
ことを特徴とする請求項１〜５のいずれか１項に記載の処理装置。
【請求項８】
前記画像処理部により処理された分割ジョブデータに基づいて印刷を実行する印刷部を更に備える
ことを特徴とする請求項１〜７のいずれか１項に記載の処理装置。
【請求項９】
複数の画像処理部の内の少なくとも１つを用いて、ジョブデータを画像処理する処理方法であって、
処理対象のジョブデータを所定の単位で分割した分割ジョブデータそれぞれに対して実行する処理内容を特定する特定する特定工程と、
前記特定工程において特定された処理内容に基づいて、前記分割ジョブデータそれぞれを、グループに分類する分類工程と、
前記複数の画像処理部において前記分類工程において分類されたグループで使用する機能に差異があるか判定する判定工程と、
前記判定工程の判定結果に基づいて、前記複数の画像処理部から各分割ジョブデータを処理する画像処理部を決定する決定工程と、
を備えることを特徴とする処理方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の処理装置の各手段として機能させるための、または請求項９に記載の処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のレンダリング部の少なくとも１つを用いて、外部装置から受信するジョブデータをレンダリング処理する処理技術に関するものである。
【背景技術】
【０００２】
プリンタ等に代表される印刷装置において、ジョブに含まれる印刷情報を分割して複数の描画装置に順次並列的に割り当て、該複数の描画装置において同時に画像生成を行い、これにより描画処理時間を短縮する技術がある。
【０００３】
特許文献１は、最も高速に描画処理ができる描画プロセッサの台数を判断し、描画プロセッサに描画処理を割り振ることで、高速に描画する構成を開示している。
【０００４】
特許文献２は、複数の印刷ジョブを並列処理する場合、印刷ジョブを画像処理優先度に対応して複数の描画モジュールの中のいずれか１つの描画モジュールに振り分ける構成を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３２２３９４号公報
【特許文献２】特開２００２−２１５３５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数の描画装置を備える印刷装置では、製品出荷後に性能向上のため新しい描画装置を後付けするケースが存在する。その場合、描画装置のバージョンの新旧や、描画装置が動作する環境の差異によって、描画処理内容が変わり描画装置によって描画結果に差異が出ることがある。
【０００７】
ところが、特許文献１では、複数の描画装置がそれぞれ異なる結果を出力することを想定しておらず、使用する描画装置の組み合わせによっては、同一の文字や画像がページ間で異なる印刷結果になるという可能性を含んでいる。一方、特許文献２では、複数の印刷ジョブを受け付けた場合にジョブを受け付けた順に印刷を開始するものであり、１つの印刷ジョブの処理時間を高速化することはできない。
【０００８】
本発明は上記の課題を解決するためになされたものであり、出力結果の差異を抑制しつつ、各印刷ジョブの画像生成を高速に行う処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明による処理装置は以下の構成を備える。即ち、
複数の画像処理部の内の少なくとも１つを用いて、ジョブデータを画像処理する処理装置であって、
処理対象のジョブデータを所定の単位で分割した分割ジョブデータそれぞれに対して実行する処理内容を特定する特定する特定手段と、
前記特定手段により特定された処理内容に基づいて、前記分割ジョブデータそれぞれを、グループに分類する分類手段と、
前記複数の画像処理部において前記分類手段により分類されたグループで使用する機能に差異があるか判定する判定手段と、
前記判定手段の判定結果に基づいて、前記複数の画像処理部から各分割ジョブデータを処理する画像処理部を決定する決定手段と
を備える。
【発明の効果】
【００１０】
本発明によれば、出力結果の差異を抑制しつつ、各印刷ジョブの画像生成を高速に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】画像形成装置の全体構成を示す断面図である。
【図２】画像形成装置における制御構成を示すブロック図である。
【図３】コントロール部の全体処理を示すフローチャートである。
【図４】図３のＳ１２２の詳細を示すフローチャートである。
【図５】ジョブデータの分割例と分割ジョブデータのグループ化例を示す図である。
【図６】図３のＳ１２３の詳細を示すフローチャートである。
【図７】各レンダリング部の画像処理機能の一例を示す図である。
【図８】グループ化したデータが使用する機能例を示す図である。
【図９】グループ化したデータを同一レンダリング部で処理するか否を説明するための一例を図である。
【図１０】図８のＳ８０４の詳細を示すフローチャートである。
【図１１】図３のＳ１２４の詳細を示すフローチャートである。
【図１２】プリンタエンジン部の処理を示すフローチャートである。
【図１３】各レンダリング部の画像処理機能の一例を示す図である。
【図１４】グループ化したデータを同一レンダリング部で処理するか否を説明するための一例を図である。
【図１５】図３のＳ１２３の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１３】
＜実施形態１＞
以下、添付図面を参照して本発明の好適な実施形態を例示的に詳細に説明する。但し、この実施形態に記載されている構成要素の相対配置、装置形状等は、あくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１４】
本明細書において、「印刷装置」とは、印刷機能に特化した専用機に限らず、印刷機能とその他の機能を複合した複合機や、記録紙上に画像やパターンを形成する製造装置等の装置も含むものとする。
【００１５】
図１は、記憶媒体であるロールシート（搬送方向において印刷単位の長さよりも長い連続した連続シート）を用いる画像形成装置１００の全体構成断面図である。印刷装置として機能する画像形成装置１００は、ロールシートユニット１０１、搬送ユニット１０２、搬送用エンコーダ１０３、回転ローラ１０４、ヘッドユニット１０５、印刷ヘッド１０６、スキャナユニット１０７、制御装置１０８、インクタンク１０９、カッタユニット１１０、裏面印刷ユニット１１１、乾燥ユニット１１２、シート巻取りユニット１１３、仕分けユニット１１４、操作部ユニット１１５を備え、これらの各種構成要素が画像形成装置１００の筐体内に配置されている。
【００１６】
制御装置１０８は、コントローラやユーザインタフェース、各種Ｉ／Ｏインタフェースを備えた制御部を内蔵し、装置全体の各種制御を司る。詳しくは、制御装置１０８は、内部に、ＣＰＵ、ＲＡＭ、ＲＯＭを備える。ＲＯＭには、後述するフローチャートで示す処理を含む各種処理を実行するためのプログラムが格納されており、ＣＰＵは、ＲＯＭに格納されているプログラムをＲＡＭ上に読み出し実行することで、各種処理を実行する。
【００１７】
ロールシートユニット１０１は、上段シートカセット１０１ａと下段シートカセット１０１ｂの２基のカセットユニットを備える。ユーザは、ロールシート（以下、シート）をマガジンに装着して、画像形成装置１００本体に正面から挿入して装着する。上段シートカセット１０１ａから引き出されたシートは図中ａ方向に、下段シートカセット１０１ｂから引き出されたシートは図中ｂ方向に搬送される。いずれのカセットユニットからのシートも図中ｃ方向に進行して搬送ユニット１０２に到達する。搬送ユニット１０２は、複数の回転ローラ１０４を通して印刷中にシートを図中ｄ方向（水平方向）に搬送する。
【００１８】
搬送ユニット１０２の上方にはヘッドユニット１０５が対向して配置されている。ヘッドユニット１０５では複数色（実施形態では、７色）分の独立した印刷ヘッド１０６がシートの搬送方向に沿って保持されている。搬送ユニット１０２によるシートの搬送に同期して、印刷ヘッド１０６からインクを吐出してシート上に画像を形成する。これら搬送ユニット１０２、ヘッドユニット１０５、印刷ヘッド１０６で印刷ユニットが構成されている。
【００１９】
インクタンク１０９は、各色のインクを独立して貯蔵する。インクタンク１０９からはチューブによって各色に対応して設けられたサブタンクまでインクが供給され、サブタンクから各印刷ヘッド１０６までチューブでインクが供給される。印刷ヘッド１０６は、印刷時の搬送方向ｄ方向に沿って各色（実施形態では、７色）のラインヘッドが並んでいる。各色のラインヘッドは、継ぎ目無く単一のノズルチップで形成されたものであってもよいし、分割されたノズルチップが一列又は千鳥配列のように規則的に並べられたものであってもよい。本実施形態では、使用する最大シートの印刷幅をカバーする範囲にノズルが並んでいる所謂フルマルチヘッドである。ノズルからインクを吐出するインクジェット方式は、発熱素子を用いた方式、ピエゾ素子を用いた方式、静電素子を用いた方式、ＭＥＭＳ素子を用いた方式等を採用することができる。印刷データに基づいて各印刷ヘッド１０６のノズルからインクが吐出され、吐出のタイミングは搬送用エンコーダ１０３の出力信号によって決定される。
【００２０】
尚、図１のプリンタとして機能する画像形成装置１００は、インクジェット方式のプリンタに限定されず、サーマルプリンタ（昇華型、熱転写型等）、ドットインパクトプリンタ、ＬＥＤプリンタ、レーザープリンタ等、様々な印刷方式に適用可能である。
【００２１】
シートに画像形成後、そのシートを搬送ユニット１０２からスキャナユニット１０７まで搬送する。スキャナユニット１０７では、印刷画像や特殊パターンを読み取って印刷画像に問題がないかの確認や装置の状態確認を行う。本実施形態では、画像の確認方法において、印刷ヘッド１０６の状態を確認するパターンを読み込む方法でもよいし、元画像との比較を行う方法等を選択することが可能である。
【００２２】
スキャナユニット１０７から搬送されたシートはｅ方向に搬送され、カッタユニット１１０に導入される。カッタユニット１１０では、シートを所定の印刷単位の長さ毎に切断する。印刷する画像サイズに応じて所定の印刷単位の長さは異なる。例えば、Ｌ版写真では搬送方向の長さは１３５ｍｍ、Ａ４サイズでは搬送方向の長さは２９７ｍｍとなる。
【００２３】
カッタユニット１１０から搬送されたシートは、図中ｆ方向に搬送され、裏面印刷ユニット１１１に搬送される。裏面印刷ユニット１１１は、印刷画像毎の情報（例えば、オーダー管理用番号等）を印刷させるためのユニットである。
【００２４】
裏面印刷ユニット１１１から搬送される乾燥ユニット１１２は、インクが付与されたシートを短時間で乾燥させるために、図中ｇ方向に通過するシートを温風で加熱する。印刷単位長さに切断されたシートは１枚ずつ乾燥ユニット１１２内を通過して、図中ｈ方向に搬送されて仕分けユニット１１４に搬送される。仕分けユニット１１４では、図中ｉ方向に通過するシートを、センサで確認しながら印刷画像毎に設定されたトレー番号に積載する。仕分けユニット１１４では、複数の給紙段であるトレー（実施形態では、２２段）を保持しており、印刷単位の長さに応じて積載先のトレーを分別する。また、仕分けユニット１１４では、積載中や積載完了等の状態表示を用いて行う（例えば、ＬＥＤで表示）。仕分けユニット１１４の詳細については後述する。
【００２５】
シート巻取りユニット１１３は、両面印刷の際に、まず、表面画像形成から行い、カッタユニット１１０で切断せず、図中ｊ方向に通過するシートを、シート巻取りユニット１１３で巻き取る。シート巻取りユニット１１３は、すべての表面画像形成終了後、再度、巻き取ったシートを、図中ｋ方向に搬送して裏面画像形成を行わせる。
【００２６】
操作部ユニット１１５は、画像形成装置１００の各種操作の指示を受け付けるためのユーザインタフェースを提供し、このユーザインタフェースに対するユーザからの指示によって各種処理を実行する。この操作部ユニット１１５は、例えば、タッチパネルディスプレイで構成される。ユーザは、この操作部ユニット１１５により、指定のオーダー画像はどこのトレーに積載されているか、あるいは印刷中、印刷終了等のオーダー毎の印刷状況の確認、インク残量や紙の残量等の装置状態の確認、ヘッドクリーニング等の装置メンテナンスの実施を行うための操作／確認を行うことができる。
【００２７】
図２は画像形成装置１００における制御構成を示すブロック図である。画像を形成（印刷）する画像形成装置１００においては、ＰＣ等の情報処理装置からなる外部装置２０１からのジョブデータを処理し、記憶媒体に印刷を行う。ここで、ジョブデータは、ＰＤＬ等のデータ記述言語で記述されたデータであり、レンダリング処理によって画像が生成される。ここで、レンダリング処理とは、データを構成するデータ記述言語を解釈して画像を生成する処理である。
【００２８】
画像形成装置１００では、その制御を行うための主要な構成として、コントロール部２０３、外部レンダリング部２０４、ユーザインタフェース部２０５、及びプリンタエンジン部２０６を含んでいる。これらの構成要素はそれぞれ、例えば、図１の制御装置１０８に実装されるハードウェアとして実現されても良いし、ハードウェアとソフトウェアと協働して実現されても良い。
【００２９】
コントロール部２０３は、受信部２０７と、ジョブ管理部２０８と、レンダリング管理部２０９と、通信部２１０と、スプール部２１１と、ジョブ解析部２１４と、ユーザ・インタフェース制御部２１５と、内部レンダリング部２１６とを含む。画像形成装置１００の動作を制御するコントロール部２０３は、外部装置２０１からの受信データであるジョブデータを解析し、その解析結果やユーザインタフェース部２０５からの指示に基づきコマンドやデータを作成する。そして、コントロール部２０３は、作成したコマンドやデータを、内部レンダリング部２１６及び外部レンダリング部２０４の少なくとも一方に送信し、レンダリング部からレンダリング後のデータを受信する。その後、コントロール部２０３は、受信したレンダリング後のデータをプリンタエンジン部２０６へ送信して印刷を行う。
【００３０】
上述したように、コントロール部２０３は、自身に内蔵する内部レンダリング部２１６と、通信部２１０を介して通信接続される外部レンダリング部２０４を備え、これらを適応的に選択することで、画像処理の１つであるレンダリング処理を実現する処理装置として機能する。内部レンダリング部２１６と外部レンダリング部２０４との間では、コントロール部２０３との通信コストが、内部レンダリング部２１６に比べて、外部レンダリング部２０４のほうが高い関係となっている。
【００３１】
内部レンダリング部２１６は、コントロール部２０３が作成したコマンドやデータに基づきレンダリング処理を行い、印刷用ビットマップデータを生成する。その後、内部レンダリング部２１６は、印刷用ビットマップデータをスプール部２１１に格納する。
【００３２】
画像形成装置１００は、１又は複数の外部レンダリング部２０４を含む。この外部レンダリング部２０４は、追加することが可能であり、例えば、画像形成装置１００の製品出荷後に性能向上等のために後付けすることができる。各外部レンダリング部２０４は、通信部２１２及び変換処理部２１３を含み、コントロール部２０３から送信されたコマンドやデータに基づきレンダリング処理を行い、印刷用ビットマップデータを生成する。その後、外部レンダリング部２０４は、通信部２１２を経て印刷用ビットマップデータをコントロール部２０３へ送信する。
【００３３】
ユーザインタフェース部２０５は、操作指示の受付や装置状態の表示を行う。プリンタエンジン部２０６は、コントロール部２０３から送信されたビットマップデータに対して色変換等の画像処理を施した後、記憶媒体への印刷（画像形成）を行う印刷部である。
【００３４】
コントロール部２０３において、受信部２０７は、外部装置２０１からのジョブデータを受信し格納する。ジョブ管理部２０８は、受信したジョブデータを内部レンダリング部２１６もしくは外部レンダリング部２０４に指示する単位（例えば、ページ単位）に分割して分割ジョブデータを生成し、その印刷順序を決定する。このように、本実施形態では、１つの印刷ジョブ（ジョブデータ）を分割して、複数のレンダリング部（画像処理部）でレンダリング処理をすることにより、１つの印刷ジョブの処理時間を短縮することができる。
【００３５】
ジョブ解析部２１４は、その分割ジョブデータが必要とする処理内容を解析し、ジョブ管理部２０８に通知する。レンダリング管理部２０９は、ジョブ管理部２０８により指示された印刷順序に従って各レンダリング部にレンダリングの指示を行う。この際、レンダリング管理部２０９では、各レンダリング部のレンダリング処理内容一覧を有し、どのレンダリング部にレンダリングの指示を行うかを決定する。その決定方法については後述する。通信部２１０は、レンダリング管理部２０９の指示に基づき、外部レンダリング部２０４に対して分割ジョブデータを作成し送信する。
【００３６】
外部レンダリング部２０４は、コントロール部２０３から送信された分割ジョブデータを通信部２１２で受信し、変換処理部２１３でレンダリング処理を行う。変換処理部２１３は、画像補正処理部２１７及びＰＤＬラスタライズ処理部２１８を含み、受信した分割ジョブデータに対して画像補正処理、ＰＤＬラスタライズ処理等の画像処理を行う。画像補正処理部２１７は、分割ジョブデータ中の画像データに対してコマンドで指定された画像補正処理を行う。ＰＤＬラスタライズ処理部２１８は、ＰＤＬを解釈して論理描画等を行い、ビットマップデータを作成する。
【００３７】
変換処理部２１３は、作成したビットマップデータを、通信部２１２からコントロール部２０３の通信部２１０へ送信される。同時に、変換処理部２１３は、そのビットマップデータに関するステータス情報を作成して、コントロール部２０３へ送信する。ステータス情報は、ジョブデータが正常にレンダリングされたか、エラーが発生したか等を示す情報であり、ユーザインタフェース部２０５上のジョブステータス表示に使用する。例えば、外部レンダリング部２０４の変換処理部２１３においてエラーが発生した場合は、通信部２１２及び通信部２１０を介してエラーのステータス情報がコントロール部２０３に通知される。
【００３８】
内部レンダリング部２１６は、変換処理部２１９を有する。変換処理部２１９は、外部レンダリング部２０４の変換処理部２１３と同様の変換処理部であり、変換処理部２１３と同様の処理を行うことができる。詳細は後述するが、変換処理部２１３と変換処理部２１９は、同様の処理を行うことができるが、異なる機能等を備えるものである。例えば、変換処理部２１３と変換処理部２１９とでバージョンの新旧が異なる場合や、動作する環境に差異がある場合（例えば、Ｌｉｎｕｘ(登録商標)版とＷｉｎｄｏｗｓ(登録商標)版）や、画像処理の各種設定値（パラメータ）が異なる場合が挙げられる。尚、外部レンダリング部２１６を複数備える場合は、外部レンダリング部２１６の変換処理部２１３のそれぞれが異なる性能・機能等を備えていてもよい。
【００３９】
ユーザインタフェース制御部２１５は、各ジョブデータのステータスをユーザインタフェース部２０５に表示するための制御を行う。
【００４０】
コントロール部２０３は、通信部２１０で受信したビットマップデータ及び内部レンダリング部２１６で作成したビットマップデータをスプール部２１１に格納させる。コントロール部２０３は、スプール部２１１内のビットマップデータを、印刷されるべき順序でプリンタエンジン部２０６へ送信させる。
【００４１】
プリンタエンジン部２０６は、受信したビットマップデータに対して、プリンタエンジン部２０６の扱う色空間であるＣＭＹＫ等の色データに色変換処理を行い、更に必要に応じて２値化処理を行う。プリンタエンジン部２０６は、色変換処理後のデータを記憶媒体に印刷する。
【００４２】
次に、コントロール部２０３の全体処理を図３のフローチャートを用いて説明する。
【００４３】
尚、図３に示すフローチャートに示す処理に対応するプログラムが制御装置１０８のＲＯＭに格納されており、コントロール部２０３が制御装置１０８のＲＡＭ上でこのプログラムを実行することで、図３に示す処理が実現される。
【００４４】
まず、Ｓ１２１で、コントロール部２０３は、外部装置２０１からジョブデータを受信する。Ｓ１２２で、コントロール部２０３は、ジョブ解析部２１４でそのジョブデータを解析する。Ｓ１２３で、コントロール部２０３は、レンダリング管理部２０９でどのレンダリング部でレンダリングを行うか決定する。Ｓ１２４で、コントロール部２０３は、内部レンダリング部２１６及び外部レンダリング部２０４の内、決定したレンダリング部に対してレンダリング指示を発行し、レンダリング処理を行わせる。Ｓ１２５で、コントロール部２０３は、レンダリング処理の結果であるビットマップデータをプリンタエンジン部２０６へ送信し、印刷を指示する。Ｓ１２６で、コントロール部２０３は、ユーザインタフェース制御部２１５を介してユーザインタフェース部２０５のジョブステータスを出力中状態に更新する。Ｓ１２２、Ｓ１２３、Ｓ１２４に関して、処理内容の詳細を、以下、順番に説明する。
【００４５】
図４は図３のＳ１２２の詳細を示すフローチャートであり、受信したジョブデータを解析する処理である。
【００４６】
まず、Ｓ７０１で、コントロール部２０３は、ジョブ管理部２０８においてレンダリング部が処理しやすい単位へのジョブデータ分割処理を行う。分割の単位としては、例えば、ページ単位やページをさらに分割したバンド単位が挙げられる。Ｓ７０２で、コントロール部２０３は、ジョブ管理部２０８によって生成された分割ジョブデータの処理順序を決定する。レンダリング管理部２０９は、ここで決定された処理順序に従ってレンダリング部に処理を指示する。処理順序の決定方法としては、例えば、先頭ページから印刷を行う場合はページの昇順、最終ページから印刷を行う場合はページの降順、等がある。Ｓ７０３で、コントロール部２０３は、ジョブ解析部２１４で分割ジョブデータの解析処理を行う。解析処理では、分割ジョブデータにはどんなレンダリング処理が必要であるか、換言すれば、レンダリング処理の内容を解析することによって、分割ジョブデータをグループ化する。レンダリング処理の内容としては、例えば、フォントレンダリング、ＰＤＬレンダリング、人物等の顔を含む画像処理が必要なもの、細線処理が必要なもの等が挙げられる。ジョブ管理部２０８は、グループ化された分割ジョブデータをレンダリング管理部２０９に渡す。
【００４７】
図５は、レンダリング管理部２０９がジョブ管理部２０８から渡される分割ジョブデータの例を示している。ここでは、分割の単位をページ単位として説明する。分割ジョブデータは、図５（ａ）のように、Ｐａｇｅ１〜Ｐａｇｅ８の複数ページで構成されている。そして、ジョブ解析部２１４によって、それぞれのページが必要とする処理内容の種類によってページ（分割ジョブデータ）をグループに分類したものが図５（ｂ）である。実施形態１では、Ｐａｇｅ１〜Ｐａｇｅ８の分割ジョブデータの内、フォントレンダリングが必要なフォントデータグループ４０１（Ｐａｇｅ１〜Ｐａｇｅ３）、ＰＤＬレンダリングが必要なＧｒａｐｈｉｃ  Ａｒｔグループ４０２（Ｐａｇｅ３、Ｐａｇｅ４、及びＰａｇｅ６）、顔を含む画像処理が必要な顔を含む画像グループ４０３（Ｐａｇｅ５及びＰａｇｅ７）、ＣＡＤデータのような細線処理が必要なＣＡＤグループ４０４（Ｐａｇｅ８）に分類している。
【００４８】
図６は図３のＳ１２３の詳細を示すフローチャートであり、分割ジョブデータをどのレンダリング部に割り振るかを決定する処理である。
【００４９】
まず、Ｓ８０１で、コントロール部２０３は、レンダリング管理部２０９が管理する内部レンダリング部２１６と１以上の外部レンダリング部２０４のそれぞれの画像処理機能を参照し、それぞれのレンダリング部の機能に差異があるかどうかを判定する。そして、この判定結果を、レンダリング管理部２０９で管理する。尚、画像レンダリング部２０４が複数ある場合は、それぞれの画像処理機能を参照する。
【００５０】
レンダリング部の画像処理機能の例を、図７を用いて説明する。レンダリング管理部２０９は、図７に示すような画像処理機能の機能一覧である画像処理機能リストを、各レンダリング部に対して管理している。ここでは、画像処理機能として、ＰＤＬレンダラ、コーデック、フォントエンジン、赤目補正、細線設定等がある。ＰＤＬレンダラは、ＰＤＬデータをレンダリングする機能である。コーデックは、画像データをレンダリングする機能である。フォントエンジンは、フォントデータをレンダリングする機能である。赤目補正は、フラッシュ撮影などで発生した赤目現象に対して、顔画像を認識し赤目を補正する機能である。細線設定は、画像に含まれる非常に細い線に対して、線と見なすかノイズと見なすかの閾値を設定する機能である。
【００５１】
図７では、外部レンダリング部３０１と内部レンダリング部３０２は、ＰＤＬレンダラは、いずれもＧｈｏｓｔＳｃｒｉｐｔ（バージョン８．６３）であり、コーデックＬｉｂｊｐｅｇ（バージョン９）は同じである。しかしながら、外部レンダリング部３０１と内部レンダリング部３０２は、フォトエンジンは処理モジュールが異なり、赤目補正はバージョンが異なり、細線は設定値が異なる。このように、レンダリング管理部２０９が管理する画像処理機能の差異とは、レンダリング部が有する処理モジュールの差異であったり、処理モジュールのバージョンの差異であったり、処理のパラメータの差異であったりする。図７の例では、レンダリング管理部２０９は、内部レンダリング部２１６の画像処理機能リスト３０２と、一つの外部レンダリング部２０４の画像処理機能リスト３０１を管理している。ここで、外部レンダリング部は複数存在しても良く、その場合、レンダリング管理部２０９は、異なる外部レンダリング部毎に、画像処理機能リストを別途管理する。
【００５２】
図６の説明に戻る。Ｓ８０１において、レンダリング管理部２０９は、例えば、図７に示すようなレンダリング部の画像処理機能リストを比較し、それぞれのレンダリング部で機能に差異があるかどうかを分析する。図７を例にとって説明すると、内部レンダリング部と外部レンダリング部は、フォントエンジンの名称が異なり、赤目補正のバージョンが異なり、細線設定の設定値が異なっているため、それぞれ出力に差異があると判断する。ＰＤＬレンダラとコーデックに関しては名称もバージョンも同一であるため、出力は同一であると判断する。ここでは、Ｓ８０１で各レンダリング部の機能の取得、差異分析を行っているが、レンダリング管理部２０９において差異を静的に登録しておいても良い。また、内部レンダリング部２１６、外部レンダリング部２０４が接続された際に各レンダリング部に処理内容を問い合わせてから分析を行っても良い。
【００５３】
次に、Ｓ８０２で、コントロール部２０３は、レンダリング管理部２０９において、ジョブ管理部２０８から渡された分割ジョブデータを分析し、分割ジョブデータがどんなパターンでグループ化されていて、各分割ジョブデータが属するグループと、各グループが各レンダリング部で使用する機能とを関連付ける。図５（ｂ）と図７を例にして、図８のような分析結果を得ることを想定する。
【００５４】
まず、図５（ｂ）では、分割ジョブデータは、ページ単位で分割され、グループ化されているので、各ページが属するグループの内、フォントデータグループ４０１のレンダリングには、フォントレンダリングを行う必要があるため、フォントデータグループ４０１とフォントエンジンを関連付ける。Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２のレンダリングには、ＰＤＬレンダリングを行う必要があるため、Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２とＰＤＬレンダラを関連付ける。顔を含む画像グループ４０３のレンダリングには、画像のレンダリングと赤目補正を行う必要があるため、顔を含む画像グループ４０３とコーデック及び赤目補正を関連付ける。ＣＡＤグループ４０４のレンダリングには、ＰＤＬレンダリングを行い、また、非常に細かい細線描画が必要であるため、ＣＡＤグループ４０４とＰＤＬレンダラ及び細線設定を関連付ける。
【００５５】
次に、Ｓ８０３で、コントロール部２０３は、レンダリング管理部２０９において、分割ジョブデータをレンダリング部に依頼する単位に分割する。ここで、図８のように、ページ単位で、分割ジョブデータの各グループがレンダリング部の各機能と関連付けられている場合に、Ｓ８０３の処理によって図９に示す割り振り結果が得られることを例にとって説明する。
【００５６】
図９は、Ｓ８０１の機能の差異の分析結果と、各グループが使用する機能の差異とを示す図である。ページ単位の分割ジョブデータのグループの内、フォントデータグループ４０１は、フォントエンジンを使用するが、レンダリング部のフォントエンジンに差異があると分析されているため、同一のレンダリング部に処理を依頼することを決定する。Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２は、ＰＤＬレンダラを使用するが、レンダリング部のＰＤＬレンダラに差異は無いと分析されているため、同一グループ内のページ毎に異なるレンダリング部に処理を依頼して構わない。但し、フォントデータグループ４０１にもＧｒａｐｈｉｃ  Ａｒｔグループ４０２にも属するＰａｇｅ３に関しては、差異があると判断されたフォントデータグループ４０１の分析を優先する。顔を含む画像グループ４０３は、コーデック及び赤目補正を使用するが、赤目補正に差異があると分析されているため、同一のレンダリング部に処理を依頼することを決定する。ＣＡＤグループ４０４は、細線設定に差異があると分析されているため、同一のレンダリング部に処理を依頼することを決定する。
【００５７】
最後に、Ｓ８０４で、コントロール部２０３は、各グループ及び各グループに含まれるデータ（例えばページ）に処理を依頼（処理を指示）するレンダリング部を決定する。この処理の詳細を図１０を用いて説明する。
【００５８】
図１０は図６のＳ８０４の詳細を示すフローチャートであり、分割ジョブデータを割り振るレンダリング部を決定する処理である。ここでは、図５（ａ）に示す複数ページからなる分割ジョブデータを、図５（ｂ）のように、グループ化した場合を例に挙げて説明する。
【００５９】
まず、Ｓ９０１で、コントロール部２０３は、全てのグループに対してループ処理を実行するための初期設定を行う。初期設定としては、処理済のグループの数を計数するための変数ｇに０を設定する。尚、ループ処理が完了する毎に、変数ｇの値と、処理対象のグループの総数とを比較し、変数ｇの値が、グループの総数を超えたら処理を終了する。
【００６０】
ここで、全てのグループとは、処理対象のジョブデータが属するグループの全てであり、図５（ｂ）の場合、全てのグループは、フォントデータグループ４０１、Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２、顔を含む画像グループ４０３、及びＣＡＤグループ４０４のことである。
【００６１】
Ｓ９０２で、コントロール部２０３は、処理対象のグループに対して、図９に示す割り振り結果から、同一のレンダリング部で処理する必要があるか否かを判定する。同一のレンダリング部で処理する必要がある場合（Ｓ９０２でＹＥＳ）、Ｓ９０３で、コントロール部２０３は、そのグループのレンダリング処理に必要な機能を有するレンダリング部の間でバージョンに差があるか否かを判定する。この判定は、図７のレンダリング部の画像処理機能リストを参照して判定する。例えば、グループがフォントデータグループ４０１である場合、レンダリング処理に必要な機能はフォントエンジンであり、バージョンは内部レンダリング部と外部レンダリング部ともに「８．６３」を取得する。従って、この場合は、バージョンに差がないと判定されることになる。
【００６２】
Ｓ９０３の判定において、バージョンに差がある場合（Ｓ９０３でＹＥＳ）、Ｓ９０４で、コントロール部２０３は、より新しいバージョンのレンダリング部で処理することを決定する。より具体的には、内部レンダリング部２１６のバージョンがより新しい場合は、処理対象のグループを内部レンダリング部２１６で処理することを決定する。一方、外部レンダリング部２０４のバージョンがより新しい場合は、処理対象のグループを外部レンダリング部２０４で処理することを決定する。処理に使用するレンダリング部を決定した後は、Ｓ９０１のループ処理に戻り、次のグループの処理に移行する。
【００６３】
一方、バージョンに差がない場合（Ｓ９０３でＮＯ）、Ｓ９０５で、コントロール部２０３は、処理対象のグループに属するページの平均サイズを算出し、その平均サイズが所定閾値以上であるか否かを判定する。図５の例の場合、この平均サイズとは、グループに属する各ページのサイズにおける平均サイズを算出し、例えば、データサイズ（Ｂｙｔｅ）で表現される。平均サイズが所定閾値以上である場合（Ｓ９０５でＹＥＳ）、Ｓ９０６で、コントロール部２０３は、処理対象のグループを内部レンダリング部２１６で処理することを決定する。また、コントロール部２０３は、この処理に使用するレンダリング部についての情報をレンダリング管理部２０９において管理する。
【００６４】
一方、平均サイズが所定閾値未満である場合（Ｓ９０５でＮＯ）、Ｓ９０７で、コントロール部２０３は、処理対象のグループを外部レンダリング部２０４で処理することを決定する。また、コントロール部２０３は、この処理に使用するレンダリング部についての情報をレンダリング管理部２０９において管理する。処理に使用するレンダリング部を決定した後は、Ｓ９０１のループ処理に戻り、変数ｇの値を１インクリメントして、次のグループの処理に移行する。
【００６５】
Ｓ９０２の判定において、同一のレンダリング部で処理する必要がない場合（Ｓ９０２でＮＯ）、Ｓ９０８で、コントロール部２０３は、処理対象のグループに含まれる全てのページに対してループ処理を実行する。このループ処理を実行するにあたり、処理済のページの数を計数するための変数ｐに０を設定する。また、ループ処理が完了する毎に、変数ｐの値と、処理対象のページの総数とを比較し、変数ｐの値が、ページの総数を超えたら処理を終了する。
【００６６】
Ｓ９０９で、コントロール部２０３は、処理対象のページが、処理対象のグループ以外の他のグループにも属していて、その他のグループとして処理するか否かを判定する。図５（ｂ）を例にとって説明すると、Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２に含まれるＰａｇｅ３は、フォントデータグループ４０１にもＧｒａｐｈｉｃ  Ａｒｔグループ４０２にも含まれている。図９に示す割り振り結果から、Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２は同一のグループでなくてもよく、フォントデータグループ４０１は同一のレンダリング部で処理することがわかる。従って、Ｐａｇｅ３はＧｒａｐｈｉｃ  Ａｒｔグループ４０２ではなくフォントデータグループ４０１として処理することを決定する。
【００６７】
Ｓ９０９において、他のグループとして処理する場合（Ｓ９０９でＹＥＳ）、Ｓ９０８のループ処理に戻る。一方、他のグループとして処理しない場合（Ｓ９０９でＮＯ）、Ｓ９１０で、コントロール部２０３は、処理対象のページのサイズが所定閾値以上であるか否かを判定する。サイズが所定閾値以上である場合（Ｓ９１０でＹＥＳ）、Ｓ９１１で、コントロール部２０３は、処理対象のページを内部レンダリング部２１６で処理することを決定する。また、コントロール部２０３は、この処理に使用するレンダリング部についての情報をレンダリング管理部２０９において管理する。
【００６８】
一方、サイズが所定閾値未満である場合（Ｓ９１０でＮＯ）、Ｓ９１２で、コントロール部２０３は、処理対象のページを外部レンダリング部２０４で処理することを決定する。また、コントロール部２０３は、この処理に使用するレンダリング部についての情報をレンダリング管理部２０９において管理する。処理に使用するレンダリング部で決定した後は、Ｓ９０８のループ処理に戻り、変数ｐの値を１インクリメントして、次のページの処理に移行する。
【００６９】
Ｓ９０８のループ処理を経て、全ページの処理を終了したら、Ｓ９０１のループ処理に戻り、変数ｐの値を１インクリメントして、次のグループの処理に移行する。
【００７０】
このように、実施形態１では、グループを処理する機能のバージョンがより新しいレンダリング部で、グループを処理することを決定する。これは、バージョンが新しい方がより高品質の出力を行えるものと想定されるからである。即ち、この構成により、処理対象のグループは、より性能の高いレンダリング部で処理されるように決定することができる。また、グループ及びページのそれぞれのサイズが所定閾値以上である場合は内部レンダリング部２１６で処理することを決定し、所定閾値未満である場合は外部レンダリング部２０４で処理することを決定する。これは処理対象のページやグループのサイズが大きい場合、外部レンダリング部にページを送信する際の通信コストがかかるためである。この構成により、処理対象のグループをより高速に処理をすることができる。
【００７１】
他の選択肢として、安定性を重視してバージョンの古い方に優先して処理させるようにしてもよいし、ジョブデータの種類、例えば、写真印刷であるかアルバム印刷であるかどうか等に基づいて、特定の設定を施したレンダリング部で処理することを決定するようにしても良い。また、実施形態１では、外部レンダリング部２０４が１つの場合を例に挙げて説明しているが、複数の外部レンダリング部を使用することもあり得る。その場合も、レンダリング部の間でそれぞれのバージョンの新旧や通信距離の長さ等の条件に従って、処理に使用する外部レンダリング部を選択し、決定する。
【００７２】
尚、Ｐａｇｅ３のようにあるＰａｇｅが２つ以上のグループに属しており、且つ、各グループで使用する機能がいずれもレンダリング部毎に出力差異がある場合、２つ以上のグループは同じレンダリング部で処理するように決定する。
【００７３】
図１１は図３のＳ１２４の詳細を示すフローチャートであり、決定したレンダリング部に処理の実行を指示する処理である。
【００７４】
Ｓ１０１で、コントロール部２０３は、レンダリング管理部２０９において、分割ジョブデータを内部レンダリング部２１６で処理するか外部レンダリング部２０４で処理するかを指示するかを図９の処理結果に従って決定する。内部レンダリング部２１６で処理する場合（Ｓ１０１でＹＥＳ）、Ｓ１０２で、コントロール部２０３は、内部レンダリング部２１６に処理の実行を指示する。
【００７５】
一方、外部レンダリング部２０４で処理する場合（Ｓ１０１でＮＯ）、Ｓ１０３で、コントロール部２０３は、外部レンダリング部２０４に分割ジョブデータを送信する。その後、Ｓ１０４で、コントロール部２０３は、外部レンダリング部２０４でレンダリングによって得られるビットマップデータを受信する。
【００７６】
Ｓ１０５で、コントロール部２０３は、レンダリング部によるレンダリングによって得られるビットマップデータをスプール部２１１に格納する。内部レンダリング部２１６でレンダリングした場合は、通信が発生しないため直接、内部レンダリング部２１６がスプール部２１１にビットマップデータを格納する。一方、外部レンダリング部２０４でレンダリングした場合は、コントロール部２０３が、通信部２１０を介してＳ１０４で受信したビットマップデータをスプール部２１１に格納する。
【００７７】
次に、プリンタエンジン部２０６の処理について図１２のフローチャートを用いて説明する。
【００７８】
まず、Ｓ１１１で、プリンタエンジン部２０６は、コントロール部２０３からビットマップデータを受信する。Ｓ１１２で、プリンタエンジン部２０６は、受信したビットマップデータに対して色変換処理を行う。色変換処理とは、ビットマップデータを、プリンタエンジン部２０６の扱う色空間である、例えば、ＣＭＹＫ色空間のデータに変換し、更に必要に応じて２値化処理を行うことである。Ｓ１１３で、プリンタエンジン部２０６は、色変換処理後のデータを印刷ユニットへ送信して、そのデータに基づく画像をシート上に印刷する。
【００７９】
以上説明したように、実施形態１によれば、１つの印刷ジョブを複数の描画装置で処理することにより、各印刷ジョブの処理の高速化を実現することができる。さらに、複数の描画装置（レンダリング部）の処理内容の差を管理し、描画装置によって処理結果に差が出ないようにジョブデータを分割して描画装置に割り振る。その結果、同一の文字や画像がページ間で同一の印刷結果となる印刷物を提供することができる。
【００８０】
＜実施形態２＞
実施形態２では、外部レンダリング部２０４が２つ、それぞれ外部レンダリング部１と外部レンダリング部２がある場合の構成について説明する。その他の構成は実施形態１と同じであるため説明を省略する。
【００８１】
実施形態２は、実施形態１の図３のＳ１２３の処理内容（レンダリング部の決定方法）が異なる。そこで、実施形態２における図３のＳ１２３の処理にについて、図８を用いて詳細に説明する。尚、実施形態２の構成の場合、レンダリング管理部２０９は、図１３に示すような画像処理機能リストを各レンダリング部に対して管理している。
【００８２】
Ｓ８０１で、コントロール部２０３は、レンダリング管理部２０９が管理する内部レンダリング部２１６と外部レンダリング部２０４（外部レンダリング部１と外部レンダリング部２）のそれぞれの画像処理機能を参照し、それぞれのレンダリング部の機能に差異があるかどうかを分析する。そして、この分析結果を、レンダリング管理部２０９で管理する。
【００８３】
Ｓ８０１では、レンダリング管理部２０９は、例えば、図１３に示すようなレンダリング部の機能一覧を比較し、それぞれのレンダリング部で出力に差異があるかどうかを分析する。図１３では、レンダリング管理部２０９は、内部レンダリング部２１６の画像処理機能リスト１３１と、外部レンダリング部２０４である外部レンダリング部１の画像処理リスト１３２と、外部レンダリング部２の画像処理機能リスト１３３とを管理している。図１３を例にとって説明すると、ＰＤＬレンダラ、コーデックに関しては全てのレンダリング部で名称もバージョンも同一であるため、出力は同一であると判断する。フォントエンジンは外部レンダリング部１と外部レンダリング部２で同一の出力であるが、内部レンダリング部とは異なる出力であると判断する。赤目補正は内部レンダリング部と外部レンダリング部１で同一の出力であるが、外部レンダリング部２とは異なる出力であると判断する。細線設定は全てのレンダリング部で設定値が異なるため、全てのレンダリング部で出力に差異があると判断する。
【００８４】
図８のＳ８０２の処理は、実施形態１と同様のため説明を割愛する。
【００８５】
Ｓ８０３で、コントロール部２０３は、レンダリング管理部２０９において、分割ジョブデータをレンダリング部に依頼する単位に分割する。ここで、図８のように、ページ単位で、分割ジョブデータの各グループがレンダリング部の各機能と関連付けられ、また、図１３のように、各レンダリング部の画像処理機能リストが管理されている場合に、Ｓ８０３の処理によって図１４に示す割り振り結果が得られることを例にとって説明する。
【００８６】
ページ単位の分割ジョブデータのグループの内、フォントデータグループ４０１は、外部レンダリング部１と外部レンダリング部２に分散させて並行して処理を依頼することができる。Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２は、全てのページを異なるレンダリング部に処理を依頼して構わない。但し、フォントデータグループ４０１にもＧｒａｐｈｉｃ  Ａｒｔグループ４０２にも属するＰａｇｅ３に関しては、より分散範囲が厳しいフォントデータグループ４０１の分析を優先する。顔を含む画像グループ４０３は、赤目補正機能の分析結果から内部レンダリング部と外部レンダリング部１に分散させて並行して処理を依頼することができる。ＣＡＤグループ４０４は、全てのレンダリング部で処理結果に差異があるため、同一のレンダリング部に処理を依頼することを決定する。
【００８７】
最後に、Ｓ８０４で、コントロール部２０３は、各グループ及び各グループに含まれるデータ（例えば、ページ）に処理を依頼（処理を指示）するレンダリング部を決定する。この処理の詳細を図１５を用いて説明する。
【００８８】
図１５は図６のＳ８０４の詳細を示すフローチャートであり、分割ジョブデータを割り振るレンダリング部を決定する処理である。ここでは、図５（ａ）に示す複数ページからなる分割ジョブデータを、図５（ｂ）のように、グループ化した場合を例にとって説明する。尚、図１５は、実施形態１の図１０の応用例であり、共通の処理内容については適宜割愛する。
【００８９】
まず、Ｓ１５０１で、コントロール部２０３は、各レンダリング部Ｎ（Ｎは、画像形成装置が備えるレンダリング部（内部レンダリング部２１６及び外部レンダリング部２０４）の数）それぞれで処理するページ数ＰａｇｅＮｕｍ［Ｎ］を定義する。Ｓ１５０２で、コントロール部２０３は、全てのグループに対してループ処理を実行するための初期設定を行う。尚、このＳ１５０２は、図１０のＳ９０１に対応する。
【００９０】
Ｓ１５０３で、コントロール部２０３は、処理対象のグループに対して、図１４に示す図１４の割り振り結果から、そのグループに属するページの処理を複数のレンダリング部に分散可能であるか否かを判定する。換言すれば、同一のレンダリング部でレンダリングする必要がないか判定する。
【００９１】
分散可能でない場合（Ｓ１５０３でＮＯ）、即ち、同一のレンダリング部でレンダリングする必要がある場合、Ｓ１５０４で、コントロール部２０３は、処理対象のグループに属するページの平均サイズを算出し、その平均サイズが所定閾値以上であるか否かを判定する。
【００９２】
尚、分散可能でない場合とは、例えば、図１４に示す割り振り結果から、図５のＣＡＤグループ４０４は、細線設定が全てのレンダリング部で異なることから、分散可能でないと判定される。
【００９３】
平均サイズが所定閾値以上である場合（Ｓ１５０４でＹＥＳ）、Ｓ１５０５で、コントロール部２０３は、処理対象のグループを内部レンダリング部２１６で処理することを決定する。Ｓ１５０６で、コントロール部２０３は、内部レンダリング部２１６に対するページ数ＰａｇｅＮｕｍの値を、そのグループに属するページ数分インクリメントする。
【００９４】
一方、平均サイズが所定閾値未満である場合（Ｓ１５０４でＮＯ）、Ｓ１５０７で、コントロール部２０３は、処理対象のグループを、外部レンダリング部の内、ページ数ＰａｇｅＮｕｍの値が一番少ないレンダリング部Ｍで処理することを決定する。Ｓ１５０８で、コントロール部２０３は、そのレンダリング部Ｍに対するページ数ＰａｇｅＮｕｍの値を、そのグループに属するページ数分インクリメントする。処理に使用するレンダリング部を決定した後は、Ｓ１５０２のループ処理に戻り、変数ｇの値を１インクリメントして、次のグループの処理に移行する。
【００９５】
Ｓ１５０３において、分散可能である場合（Ｓ１５０３でＹＥＳ）、即ち、同一のレンダリング部でレンダリングする必要がない場合、Ｓ１５０９で、コントロール部２０３は、処理対象のグループに含まれる全てのページに対してループ処理を実行する。尚、このＳ１５０３は、図１０のＳ９０８に対応する。出力差異が無いレンダリング部が２以上ある場合、即ち、図１４に示す割り振り結果で２以上の○がある場合、分散可能であると判断する。例えば、図１４に示す割り振り結果を例にとると、フォントデータグループ４０１、Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２、顔を含む画像グループ４０３は分散可能であると判定される。
【００９６】
Ｓ１５１０で、コントロール部２０３は、処理対象のページが、処理対象のグループ以外の他のグループにも属していて、その他のグループとして処理するか否かを判定する。尚、このＳ１５１０は、図１０のＳ９０９に対応する。
【００９７】
他のグループとして処理する場合（Ｓ１５１０でＹＥＳ）、Ｓ１５０９のループ処理に戻る。一方、他のグループとして処理しない場合（Ｓ１５１０でＮＯ）、Ｓ１５１１で、コントロール部２０３は、処理対象のグループに属するページの処理を内部レンダリング部２１６と外部レンダリング部２０４に分散可能であるか否かを判定する。分散可能である場合（Ｓ１５１１でＹＥＳ）、Ｓ１５１４で、コントロール部２０３は、処理対象のページのサイズが所定閾値以上であるか否かを判定する。サイズが所定閾値以上である場合（Ｓ１５１４でＹＥＳ）、Ｓ１５１５で、コントロール部２０３は、処理対象のページを内部レンダリング部２１６で処理することを決定する。また、コントロール部２０３は、この処理に使用するレンダリング部についての情報をレンダリング管理部２０９において管理する。
【００９８】
ここで、例えば、図１４に示す割り振り結果を例にとると、Ｇｒａｐｈｉｃ  Ａｒｔグループ４０２、顔を含む画像グループ４０３は、内部レンダリング部２１６と外部レンダリング部２０４で分散可能であると判定される。
【００９９】
サイズが所定閾値以上である場合（Ｓ１５１５でＹＥＳ）、Ｓ１５１５で、コントロール部２０３は、処理対象のページを内部レンダリング部２１６で処理することを決定する。Ｓ１５１６で、コントロール部２０３は、内部レンダリング部２１６に対するページ数ＰａｇｅＮｕｍを１インクリメントする。
【０１００】
一方、サイズが所定閾値未満である場合（Ｓ１５１５でＮＯ）、もしくは、分散可能でない場合（Ｓ１５１１でＮＯ）、Ｓ１５１２で、コントロール部２０３は、処理対象のページを、外部レンダリング部の内、ページ数ＰａｇｅＮｕｍが一番少ないレンダリング部Ｍで処理することを決定する。Ｓ１５１３で、コントロール部２０３は、そのレンダリング部Ｍに対するページ数ＰａｇｅＮｕｍを１インクリメントする。ここで、内部レンダリング部２１６と外部レンダリング部２０４で分散可能でない場合とは、図１４に示す割り振り結果を例にとると、フォントデータグループ４０１が相当し、内部レンダリング部２１６と外部レンダリング部２０４で出力に差があるので、分散可能でないと判定される。処理に使用するレンダリング部を決定した後は、Ｓ１５０９のループ処理に戻り、変数ｐの値を１インクリメントして、次のページの処理に移行する。
【０１０１】
Ｓ１５０９のループ処理を経て、全ページの処理を終了したら、Ｓ１５０２のループ処理に戻り、変数ｐの値を１インクリメントして、次のグループの処理に移行する。
【０１０２】
以上説明したように、実施形態２によれば、１つの印刷ジョブを複数の描画装置で処理することにより、各印刷ジョブの処理の高速化を実現することができる。さらに、複数の描画装置（レンダリング部）の処理内容の差を管理し、描画装置によって処理結果に差が出ないようにジョブデータを分割して描画装置に割り振る。その結果、同一の文字や画像がページ間で同一の印刷結果となる印刷物を提供することができる。
【０１０３】
また、実施形態２では、グループ及びそれに属するページの処理を、内部レンダリング部と外部レンダリング部で分散できる場合は、グループ及びページをそのサイズが所定閾値以上である場合は内部レンダリング部２１６で処理することを決定し、所定閾値未満である場合、外部レンダリング部２０４で処理することを決定している。これはサイズが大きいと外部レンダリング部に通信する際に通信コストがかかるためである。この構成により、処理対象のグループをより高速に処理をすることができる。
【０１０４】
尚、ここでは、外部レンダリング部１と２の間の通信コストは同一であると想定している。また、複数の外部レンダリング部に処理を分散可能である場合は、処理するページ数が少ない（処理負荷が一番小さい）外部レンダリング部に処理を割り振ることを決定している。
【０１０５】
また、複数の外部レンダリング部に処理を分散可能である場合において、処理するページ数が少ない外部レンダリング部に処理を割り振るのではなく、各外部レンダリング部の処理負荷の比率に応じて、各外部レンダリング部に処理を割り振るようにしても良い。
【０１０６】
以上説明したように、実施形態２によれば、実施形態１で説明した効果に加えて、複数の外部の描画装置（レンダリング部）を効率的に使用して、かつ良好な印刷結果を高速に提供することができる。
【０１０７】
上述した実施形態では、内部レンダリング部で処理するか外部レンダリング部で処理するかを、グループ及びページのそれぞれのサイズが所定の閾値以上であるか否かの判断に基づいて決定したが、これに限定されるものではない。例えば、１つのジョブデータに含まれる複数の分割ジョブデータの処理の割当てに応じて、レンダリング部が選択されるようにしてもよい。より具体的には、例えば、割当てられているページ数が少ないレンダリング部が選択されるようにしてもよいし、割当てられているデータ量が少ないレンダリング部が選択されるようにしてもよいし、レンダリング部のメモリの空き容量が大きいレンダリング部が選択されるようにしてもよい。これにより、１つの印刷ジョブをより高速に処理をすることができる。
【０１０８】
また、レンダリング部の決定方法は、上述したものに限定されるものではない。例えば、実施形態１では、Ｓ９０３においてバージョンに差があるか否かを判定したが、例えば、使用する機能毎に優先的に使用するレンダリング部を予め設定しておき、その設定に基づいて決定してもよい。
【０１０９】
尚、以上の実施形態の機能は以下の構成によっても実現することができる。つまり、本実施形態の処理を行うためのプログラムコードをシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がプログラムコードを実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することとなり、またそのプログラムコードを記憶した記憶媒体も本実施形態の機能を実現することになる。
【０１１０】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【０１１１】
１００：画像形成装置、２０３：コントロール部、２０４：外部レンダリング部、２０５：ユーザインタフェース部、２０６：プリンタエンジン部
【図１】
2015199223.tif 000003
【図２】
2015199223.tif 000004
【図３】
2015199223.tif 000005
【図４】
2015199223.tif 000006
【図５】
2015199223.tif 000007
【図６】
2015199223.tif 000008
【図７】
2015199223.tif 000009
【図８】
2015199223.tif 000010
【図９】
2015199223.tif 000011
【図１０】
2015199223.tif 000012
【図１１】
2015199223.tif 000013
【図１２】
2015199223.tif 000014
【図１３】
2015199223.tif 000015
【図１４】
2015199223.tif 000016
【図１５】
2015199223.tif 000017