"印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成する解析処理、前記描画オブジェクトを最適化する最適化処理、及び前記最適化された描画オブジェクトから印刷画像の生成が可能な中間データを生成する生成処理を含むPDL処理を行う印刷装置であって、少なくとも前記PDLデータのページ記述言語の種類、及び前記PDLデータを生成したアプリケーションプログラムの種類に従って、前記PDL処理に含まれる各処理の処理負荷を特定し、前記PDL処理に含まれる各処理を複数のパイプラインの内の何れのパイプラインに割り当てるかを該特定した各処理の処理負荷に基づき決定する決定手段と、前記PDL処理に含まれる各処理を前記決定に基づき分割する分割処理を行う分割手段と、前記分割手段により分割された各パイプラインにおける処理を実行する複数の実行手段と、を有することを特徴とする印刷装置。前記決定手段は、前記特定した各処理の処理負荷に基づいて、処理量が最大となるパイプラインの処理量が最少となるように、各パイプラインに割り当てる処理を決定する、ことを特徴とする請求項1に記載の印刷装置。前記決定手段は、前記処理量が最大となるパイプラインの処理量が同一の場合には、全てのパイプラインの処理量の合計が最少となるように、各パイプラインに割り当てる処理を決定する、ことを特徴とする請求項2に記載の印刷装置。前記最適化処理を行うアルゴリズムのそれぞれ異なる複数の最適化手段を有し、前記決定手段は、前記特定した各処理の処理負荷に基づいて、前記最適化処理に用いる最適化手段を決定する、ことを特徴とする請求項1乃至3のいずれか1項に記載の印刷装置。前記決定手段は、前記特定した各処理の処理負荷に基づいて、処理量が最大となるパイプラインの処理量が最少となるように、前記最適化処理に用いる最適化手段を決定する、ことを特徴とする請求項4に記載の印刷装置。前記決定手段は、前記処理量が最大となるパイプラインの処理量が同一の場合には、全てのパイプラインの処理量の合計が最少となるように、前記最適化処理に用いる最適化手段を決定する、ことを特徴とする請求項5に記載の印刷装置。前記解析処理を行うそれぞれ異なるページ記述言語の種類に対応した複数の解析手段を有し、前記決定手段は、前記PDLデータのページ記述言語の種類に応じて前記解析処理に用いる解析手段を決定する、ことを特徴とする請求項1乃至6のいずれか1項に記載の印刷装置。前記解析処理の出力と、前記最適化処理の入出力と、前記生成処理の入力と、前記分割処理の入出力とが、全て同一のインタフェースであり、前記決定手段は、前記分割処理を、前記解析処理と前記最適化処理の間、又は前記最適化処理と前記生成処理の間に配置することにより、各パイプラインで行う処理を制御することを特徴とする請求項1乃至7のいずれか1項に記載の印刷装置。前記決定手段は、前記印刷ジョブに各パイプラインに割り当てる処理を指定するデータが含まれる場合、前記各パイプラインに割り当てる処理を指定するデータに従って、各パイプラインに割り当てる処理を決定する、ことを特徴とする請求項1乃至8のいずれか1項に記載の印刷装置。印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成する解析処理、前記描画オブジェクトを最適化する最適化処理、及び前記最適化された描画オブジェクトから印刷画像の生成が可能な中間データを生成する生成処理を含むPDL処理を複数のパイプラインに分割して行う印刷装置に、前記印刷ジョブを送信する情報処理装置であって、前記PDLデータの各ページのデータを、前記印刷装置の各パイプラインで処理した場合の各パイプラインの処理量を算出する処理量算出手段と、前記処理量算出手段の算出した各パイプラインの処理量に基づいて、各パイプラインに割り当てる処理を決定するパイプライン処理決定手段と、前記パイプライン処理決定手段で決定された各パイプラインに割り当てる処理を指定するデータを、ページ毎に前記印刷ジョブに付加する付加手段と、を有することを特徴とする情報処理装置。印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成する解析処理、前記描画オブジェクトを最適化する最適化処理、及び前記最適化された描画オブジェクトから印刷画像の生成が可能な中間データを生成する生成処理を含むPDL処理を複数のパイプラインに分割して行う印刷装置と、前記印刷装置に前記印刷ジョブを送信する情報処理装置とを有する印刷システムであって、前記印刷装置は、前記印刷ジョブに含まれる各パイプラインに割り当てる処理を指定するデータに従って、前記PDL処理に含まれる各処理を複数のパイプラインの内の何れのパイプラインに割り当てるかを決定する決定手段と、前記PDL処理に含まれる各処理を前記決定に基づき分割する分割処理を行う分割手段と、前記分割手段により分割された各パイプラインにおける処理を実行する複数の実行手段と、を有し、前記情報処理装置は、前記PDLデータの各ページのデータを、前記印刷装置の各パイプラインで処理した場合の各パイプラインの処理量を算出する処理量算出手段と、前記処理量算出手段の算出した各パイプラインの処理量に基づいて、各パイプラインに割り当てる処理を決定するパイプライン処理決定手段と、前記パイプライン処理決定手段で決定された各パイプラインに割り当てる処理を指定するデータを、ページ毎に前記印刷ジョブに付加する付加手段と、を有する、ことを特徴とする印刷システム。印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成する解析処理、前記描画オブジェクトを最適化する最適化処理、及び前記最適化された描画オブジェクトから印刷画像の生成が可能な中間データを生成する生成処理を含むPDL処理を行い、前記中間データから印刷画像を生成して印刷を行う印刷装置における印刷制御方法であって、決定手段が、少なくとも前記PDLデータのページ記述言語の種類、及び前記PDLデータを生成したアプリケーションプログラムの種類に従って、前記PDL処理に含まれる各処理の処理負荷を特定し、前記PDL処理に含まれる各処理を複数のパイプラインの内の何れのパイプラインに割り当てるかを該特定した各処理の処理負荷に基づき決定する決定ステップと、分割手段が、前記PDL処理に含まれる各処理を前記決定に基づき分割する分割処理を行う分割ステップと、複数の実行手段が、前記分割ステップで分割された各パイプラインにおける処理を実行する複数の実行ステップと、を有することを特徴とする印刷制御方法。印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成する解析処理、前記描画オブジェクトを最適化する最適化処理、及び前記最適化された描画オブジェクトから印刷画像の生成が可能な中間データを生成する生成処理を含むPDL処理を複数のパイプラインに分割して行う印刷装置に、前記印刷ジョブを送信する情報処理装置における印刷制御方法であって、処理量算出手段が、前記PDLデータの各ページのデータを、前記印刷装置の各パイプラインで処理した場合の各パイプラインの処理量を算出する処理量算出ステップと、パイプライン処理決定手段が、前記処理量算出ステップの算出した各パイプラインの処理量に基づいて、各パイプラインに割り当てる処理を決定するパイプライン処理決定ステップと、付加手段が、前記パイプライン処理決定ステップで決定された各パイプラインに割り当てる処理を示すデータを、ページ毎に前記印刷ジョブに付加する付加ステップと、を有することを特徴とする印刷制御方法。印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成する解析処理、前記描画オブジェクトを最適化する最適化処理、及び前記最適化された描画オブジェクトから印刷画像の生成が可能な中間データを生成する生成処理を含むPDL処理を複数のパイプラインに分割して行う印刷装置と、前記印刷装置に前記印刷ジョブを送信する情報処理装置とを有する印刷システムにおける印刷制御方法であって、前記情報処理装置の処理量算出手段が、前記PDLデータの各ページのデータを、前記印刷装置の各パイプラインで処理した場合の各パイプラインの処理量を算出する処理量算出ステップと、前記情報処理装置のパイプライン処理決定手段が、前記処理量算出ステップで算出した各パイプラインの処理量に基づいて、各パイプラインに割り当てる処理を決定するパイプライン処理決定ステップと、前記情報処理装置の付加手段が、前記パイプライン処理決定ステップで決定された各パイプラインに割り当てる処理を指定するデータを、ページ毎に前記印刷ジョブに付加する付加ステップと、前記印刷装置の決定手段が、前記印刷ジョブに含まれる各パイプラインに割り当てる処理を指定するデータに従って、前記PDL処理に含まれる各処理を複数のパイプラインの内の何れのパイプラインに割り当てるかを決定する決定ステップと、前記印刷装置の分割手段が、前記PDL処理に含まれる各処理を前記決定ステップでの決定に基づき分割する分割処理を行う分割ステップと、前記印刷装置の複数の実行手段が、前記分割ステップで分割された各パイプラインにおける処理を実行する複数の実行ステップと、を有することを特徴とする印刷制御方法。コンピュータを、請求項1乃至9のいずれか1項に記載された印刷装置の手段として機能させるためのプログラム。コンピュータを、請求項10に記載された情報処理装置の手段として機能させるためのプログラム。しかしながら、特許文献1は、ページ単位でRIPする構成が前提であり、単一ページの印刷ジョブが効果的に並列化することが出来ないといった課題がある。また、特許文献2では、描画オブジェクト単位で処理量の算出を行うため、処理量算出のオーバーヘッドが多くなってしまうといった課題がある。本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、描画オブジェクトレベルでのパイプライン並列化を行いつつ、描画オブジェクト単位でのオーバーヘッドの発生なしに、最適な並列化処理を行って印刷装置の生産性を向上させる仕組みを提供することである。本発明は、印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成する解析処理、前記描画オブジェクトを最適化する最適化処理、及び前記最適化された描画オブジェクトから印刷画像の生成が可能な中間データを生成する生成処理を含むPDL処理を行う印刷装置であって、少なくとも前記PDLデータのページ記述言語の種類、及び前記PDLデータを生成したアプリケーションプログラムの種類に従って、前記PDL処理に含まれる各処理の処理負荷を特定し、前記PDL処理に含まれる各処理を複数のパイプラインの内の何れのパイプラインに割り当てるかを該特定した各処理の処理負荷に基づき決定する決定手段と、前記PDL処理に含まれる各処理を前記決定に基づき分割する分割処理を行う分割手段と、前記分割手段により分割された各パイプラインにおける処理を実行する複数の実行手段と、を有することを特徴とする。本発明によれば、描画オブジェクトレベルでのパイプライン並列化を行いつつ、描画オブジェクト単位でのオーバーヘッドの発生なしに、最適な並列化処理を行うことを可能にして、印刷装置の生産性を向上させることができる。以下、本発明を実施するための形態について、図面を参照して説明する。<コントローラハードウェア構成>図1は、本発明の実施例1を示す印刷装置のハードウェア構成の一例を示すブロック図である。図1において、110は印刷装置画像形成装置である。111はパネルUIユーザインタフェースであり、印刷装置110の動作設定を行う。112はCPUであり、図2以降で説明する印刷装置上で動作するソフトウェアは全てこの上で動作する。CPU112は、2つの演算ユニットコアを搭載しており、2つの処理例えば、後述するスレッドA,Bを並列処理可能である。113はRAMであり、CPU112で動作するソフトウェアがデータ保存や自分自身の動作のために使用する。114はROMであり、ソフトウェアプログラムなどをコンピュータ読取可能に保存する。116はネットワークインターフェースネットワークI/Fであり、印刷装置110はこのネットワークインターフェース116を介して、ネットワーク199上の各機器と通信可能である。118はレンダラレンダラであり、RAM113に格納されているディスプレイリストDLを入力として、ラスタイメージ印刷画像を生成する。なお、このディスプレイリストDLは、上述したCPU112上のソフトウェアにより生成されて、RAM113に格納されたものであり、レンダラ118により、印刷画像の生成が可能な中間データである。115はプリンタエンジンであり、上述したCPU112上で動作するソフトウェア及びレンダラ118が作り出すイメージデータの印刷を行う。<コントローラソフトウェア構成>図2は、印刷装置110で動作するソフトウェアモジュールの構成の一例を示すブロック図である。なお、図2中の全てのソフトウェアモジュールは、ROM114上にコンピュータ読取可能に記録されたプログラムを、RAM113をワークメモリとして利用して、CPU112により実行することにより実体化される。以下、各ソフトウェアモジュールについて説明する。ジョブコントロール処理205は、印刷装置110内の各ソフトウェアモジュールを統括し、印刷装置110で発生する印刷ジョブの制御を行う。ネットワーク処理210は、ネットワークインターフェース116を制御することでネットワーク199に接続されている外部機器との通信制御を行う。ネットワーク処理210は、ネットワークインターフェース116を介して、ネットワーク199に接続されている各機器からの制御コマンドやデータを受信すると、その内容をジョブコントロール処理205へ通知する。また、ネットワーク処理210は、ジョブコントロール処理の指示に基づいてデータ例えば印刷ジョブをRAM113上のスプールバッファに格納する。また、ネットワーク処理210は、ジョブコントロール処理205や他のソフトウェアモジュールの指示に基づき、ネットワーク199に接続されている各機器へ制御コマンドやデータの送信を行う。PDL判定処理220は、RAM113上のスプールバッファにスプールされている印刷ジョブを参照して、PDLの種類及びPDLデータを生成したアプリケーション種別や、PDLデータの圧縮の有無等を判定し、判定結果をPDL構成決定処理221へ通知する。PDL構成決定処理221は、PDL判定処理220から通知された情報上述の判定結果とPDL判定処理220の管理するテーブル図8に基づいて、PDL処理を構成する各処理PDL解析処理、描画最適化処理、DL生成処理の処理負荷を特定し、該特定した各処理の処理負荷に基づいて、後述するPDL処理群230に属する各ソフトウェアモジュールの接続構成を決定する。即ち、パイプライン分割処理261により分割される各パイプラインで行う処理を決定する。PDL構成決定処理221の動作については、後ほど詳述する。PDL処理群230は、印刷ジョブに含まれるページ記述言語で記載されたPDLデータを解析して描画オブジェクトを生成するPDLデータ解析処理、描画オブジェクトを最適化する描画最適化処理、及び最適化された描画オブジェクトから、レンダラ118が処理できるディスプレイリストDLを生成するDL生成処理を含むPDL処理を行うために動作するソフトウェアモジュール群である。PDL処理群230は、PDL解析処理群240と、描画最適化処理群250を含む。本実施例では、PDL解析処理群240には、PDLAインタプリタ241と、PDLBインタプリタ242が含まれる。PDLAインタプリタ241及びPDLBインタプリタ242は、PDLの種類に対応したPDLインタプリタモジュールである。各PDLインタプリタは、それぞれのPDLインタプリタ仕様に基づいてPDLデータを解析して描画オブジェクトを生成し、共通描画IF共通描画インタフェースをコールする。共通描画IFは、描画のためのパスの指定、クリップの指定、各ROPラスタオペレーション指定、アルファブレンド指定、ブラシの指定等の画像描画に係る機能を備えている。PDLAインタプリタ241が解析を行うPDLAの言語仕様は、直線のみで描画を指定するポリゴン描画や、イメージ描画、文字描画、ROP指定等、基本的な描画命令だけで構成されるものである。一方、PDLBインタプリタ242の解析を行うPDLBの言語仕様は、上記基本的な描画命令に加え、曲線でのパス指定、複雑なグラデーション指定等の高度な描画命令や、スタック操作や演算命令までを含む、プログラミング言語に近い複雑なものである。このように、PDLAとPDLBはその言語仕様に由来する違いがあり、PDLAインタプリタ241の処理量は、PDLBインタプリタ242の処理量に比べて軽いものとなる。描画最適化処理群250は、共通描画IFで入力される複数の描画オブジェクトを最適化し、より簡単な描画オブジェクトにして、再度、共通描画IFをコールする、ソフトウェアモジュール郡である。本実施例では、描画最適化処理群250には、描画最適化処理A251と描画最適化処理B252が含まれる。描画最適化処理A251、及び描画最適化処理B252はそれぞれ、異なるアルゴリズムで描画オブジェクトの最適化を行う。描画最適化処理群250の各描画最適化処理は、PDL処理群230に属するPDLインタプリタが共通描画IFをコールした内容を解析し最適化したのち、共通描画IFをコールする。DL生成処理260は、入力を共通描画IFとして、レンダラ118用のDLをRAM113へ生成する。DL生成処理260では、各描画オブジェクトをXYソートする等、ソート処理が含まれるので、その処理量はONlogNやON2のオーダとなる。そのため、描画最適化処理群250の処理群で最適化処理を行い、結果としてDL生成処理260に入力される描画オブジェクト数を減らすことは、全体の処理量を減らすことに大きく効果がある。ここで、図3を参照して、最適化処理について説明する。図3は、描画最適化処理A251および描画最適化処理B252の行う最適化処理の一例を示す図である。図3aは、共通描画IFから入力される複数のパスオブジェクトで構成される複雑な図形を検知し、1つのパスオブジェクトに変換して、再度、共通描画IFで出力する処理である。図3aに示す処理では、パスオブジェクトの色値や、ワインディングルール、他のオブジェクトの重なり等を考慮して結合の可否を決定する。結合に関しては、入力された複数のパスオブジェクトをプレレンダリングしてイメージ化し、そのイメージの外形を構成するパスを再構成する。結合の可否のアルゴリズムに関しては、対象とするパスオブジェクトの大きさや、結合後のパスオブジェクトの大きさ、異なる色値のオブジェクト間に入ってきた場合でも結合処理を継続するか等のバリュエーションがある。描画最適化処理A251では、同一色、同一のワインディングルール、及び他のオブジェクトと重なりがないパスオブジェクトが連続して入力されれば結合可能と判断する。また、描画最適化処理A251では、結合対象の各パスのサイズを面積で40000pixelまで、結合後のサイズを250000pixelまでとしている。一方、描画最適化処理B252では、異なる色やワインディングルールのオブジェクトが含まれていても、結合後の描画結果に影響しない場合は結合可能と判断する。また、描画最適化処理B252では、結合対象の各パスのサイズを90000pixelまで、結合後のサイズを1000000pixelまでとする。図3bは、共通描画IFから入力される、色値が異なる複数の矩形オブジェクトを検知し、該矩形オブジェクトがグラデーションを描画していると検知すると、1つのグラデーションオブジェクトに変換し、再度、共通描画IFで出力する処理である。図3bに示す処理では、入力される各矩形オブジェクトが隣接しているか、色値の変化の度合いは一定か否か等を考慮し結合の可否を決定する。結合の可否のアルゴリズムについては、入力される矩形の角度が、0度または90度すなわち横方向や縦方向のグラデーションに限定する、色値の変化が一定でない場合も結合する等の、バリュエーションがある。描画最適化処理A251では、連続して入力される矩形の角度が、0度または90度であり、矩形の幅が均一で、色値の変化が一定であれば、色値が線形に変化するグラデーションオブジェクトに変換可能である。一方、描画最適化処理B252では、矩形の角度に制限はなく、連続して入力される矩形が隣接していればよい。また、色値の変化も一定である必要はなく、色値の変化が非線形なグラデーションオブジェクトへの変換が可能である。図3cは、共通描画IFから入力される、複数の小イメージを検知し、1つの大イメージに変換して、再度、共通描画IFで出力する処理である。描画最適化処理A251では、連続して入力されてくる、小イメージがそれぞれ隣接していれば、結合し、1つの大イメージに変換する。一方、描画最適化処理B252では、連続してくる小イメージが500×500pixelの領域内であれば、隣接していても隣接していなくても結合し、1つの大イメージに変換する。以下、図2の説明に戻る。パイプライン分割処理261は、入力を共通描画IFとし、入力された内容を、そのまま共通描画IFをコールして出力する。パイプライン分割処理261は、入力の共通描画IFをコールしているスレッドとは異なるスレッドで出力の共通描画IFをコールすることにより、パイプラライン分割処理を実現する。ここで、図4を参照してパイプライン分割処理について説明する。図4は、パイプライン分割処理261の構成の一例を示す図である。スレッドAでパイプライン分割処理261の入力側の共通描画IFがコールされると、パイプライン分割処理261は、共通描画IFでコールされた内容を描画オブジェクト化し、描画オブジェクトFIFO401へ登録する。描画オブジェクトFIFO401は、RAM113上に構成されるFIFOファーストインファーストアウトキューである。パイプライン分割処理261は、スレッドAとは異なるスレッドB上のFIFO監視モジュール402で描画オブジェクトFIFO401の中身を監視している。FIFO監視モジュール402は、FIFO401に描画オブジェクトがあることを検知すると、FIFOの先頭から描画オブジェクトを読み出し、共通描画IFをコールする。描画オブジェクトFIFO401の容量は、最低限描画オブジェクト1つ分があれば動作可能であるが、動作の観点から複数の描画オブジェクトをキューイングできるサイズであることが好ましい。ただし、1ページ分の描画オブジェクトに対しては十分に小さな容量で良いことは言うまでもない。以下、図2の説明に戻る。RIP処理270は、レンダラ118を制御することで、PDL処理群230がRAM113に生成したDLをレンダリングしてラスタイメージを生成する。RIP処理270は、生成したラスタイメージをRAM113上に構成されるイメージバッファに格納する。印刷処理280は、プリンタエンジン115を制御し、RIP処理270がRAM113のイメージバッファに格納したラスタイメージを読み出し、用紙上への印刷出力を行う。<PDL印刷処理>ここで、本実施例に係る印刷装置110がネットワーク199上のホストコンピュータから、印刷ジョブを受信し用紙上へ印刷するまでの、PDL印刷処理を図5のフローチャートを参照して説明する。図5は、実施例1におけるPDL印刷処理の一例を示すフローチャートである。このフローチャートの処理は、図2に示したソフトウェアモジュールにより実行されるものである。即ち、このフローチャートの処理は、印刷装置110のCPU112がROM114に記録されたプログラムを実行することにより実現されるものである。印刷装置110のネットワーク処理210は、ネットワークインターフェース116を介して、印刷ジョブを受信すると、その旨をジョブコントロール処理205へ通知する。ジョブコントロール処理205は、印刷ジョブの通知を受けると、印刷ジョブに含まれる制御コマンドを解析してPDLデータを含むか判定し、ネットワーク処理210に指示を行う。ネットワーク処理210は、ジョブコントロール処理205の指示に基づいて、印刷ジョブを順次RAM113上のスプールバッファへスプールしていく。ジョブコントロール処理205は、PDL印刷処理を開始するとS500、PDL判定処理220を起動し、印刷ジョブに関し各種判定を行うS501。PDL判定処理220は、前記スプールバッファに格納されている印刷ジョブを解析し、PDL種別、生成アプリケーションの種別、PDLデータの圧縮の有無等の判定を行う。図6は、スプールバッファに格納されている印刷ジョブの一例を示す図である。図6に示すように、印刷ジョブには、各種タグ情報として、ジョブ種別、PDL種別、作成アプリケーション、ジョブオーナー、作成日時、ドライバーバージョン、圧縮の有無等の情報が含まれており、その後にPDLデータの本体が含まれている。PDL判定処理220は、このタグ情報を解析することにより、容易に各種判定を行うことできる。また、印刷ジョブによっては、タグ情報がなく、PDLデータ中身の一部を解析することで、判定できる場合もある。PDL判定処理220が判定した各種判定結果は、PDL構成決定処理221へ通知される。この通知に基づいて、PDL構成決定処理221は、PDL構成を決定するS502。ここで図7、図8を参照して、PDL構成決定処理221の動作ついて詳述する。PDL構成決定処理221は、PDL処理群230内の各ソフトウェアモジュールの接続順序を制御する処理である。この接続順序を、以下、PDL構成と呼称し記載する。図7は、印刷装置110で取り得るPDL処理群モジュールのPDL構成の一例を示す図である。本実施例では、PDL構成として図7aの構成Aと図7bの構成Bを取り得る。図7aの構成Aでは、PDL解析処理群240のいずれかのPDLインタプリタは、描画最適化処理群250のいずれかの描画最適化処理の共通描画IFをコールする。また、描画最適化処理群250はパイプライン分割処理261の共通描画IFをコールする。さらに、パイプライン分割処理261は、DL生成処理260の共通描画IFをコールするように構成されている。この構成Aの場合、パイプライン分割処理261の上側の処理、すなわちPDL解析処理群240と描画最適化処理群250の処理は同一スレッド図4に示したスレッドA上で動作し、DL生成処理260は前記PDL解析処理群240及び描画最適化処理群250とは異なるスレッド図4に示したスレッドB上で動作する。一方、図7bの構成Bでは、PDL解析処理群240のいずれかのPDLインタプリタは、パイプライン分割処理261の共通描画IFをコールする。また、パイプライン分割処理261は、描画最適化処理群250のいずれかの描画最適化処理の共通描画IFをコールする。さらに、描画最適化処理群250は、DL生成処理260の共通描画IFをコールするように構成されている。この構成Bの場合、パイプライン分割処理の下側、すなわち描画最適化処理群250及びDL生成処理260は同一のスレッド図4に示したスレッドA上で動作するが、PDL解析処理群240は描画最適化処理群250及びDL生成処理260とは異なるスレッド図4に示したスレッドB上で動作する。このようにパイプライン分割処理261の位置により、描画最適化処理群250がどちらのスレッド上で動作するか制御することができる。また、パイプライン分割処理261及び描画最適化処理群は同一の共通描画IFを入出力としているため、容易にソフトウェアモジュールの接続構成を切り替えることが可能となっている。PDL構成決定処理221は、前記PDL構成の決定の他に、PDL構成内のPDL解析処理群240のうち、どのPDLインタプリタすなわち、PDLAインタプリタ241又はPDLBインタプリタ242のいずれかを接続するかを決定する。PDL構成決定処理221は、受信した印刷ジョブのPDL種別がPDLAの場合はPDLAインタプリタ241に、PDLBの場合はPDLBインタプリタ242に決定する。さらに、PDL構成決定処理221は、描画最適化処理群250のうちどの描画最適化処理すなわち描画最適化処理A251及び描画最適化処理B252のいずれかを接続するかを決定する。ここで図8を参照して、PDL構成決定処理221による描画最適化処理群241の描画最適化処理及びPDL構成の決定アルゴリズムについて説明する。PDL構成決定処理221は、図8に例示するテーブルをRAM113上に構成している。図8は、PDL構成決定処理221が構成の決定に利用するテーブルの一例を示す図である。図8のテーブルは、PDL判定処理220の抽出した、PDL種別、生成アプリケーションの種別、PDLデータの圧縮の有無毎に用意されており、描画最適化処理251は、各条件に応じて参照すべきテーブルを切り替える。以下、テーブルの例を示す。図8a-1は、PDL種別がPDLA、作成アプリケーションがCAD、PDLデータの圧縮なしの場合に選択されるテーブルである。また、図8a-2は、PDL種別がPDLA、作成アプリケーションがCAD、PDLデータの圧縮ありの場合に選択されるテーブルである。また、図8b-1は、PDL種別がPDLA、作成アプリケーションがCAD以外、PDLデータの圧縮なしの場合に選択されるテーブルである。また、図8b-2は、PDL種別がPDLA、作成アプリケーションがCAD以外、PDLデータの圧縮ありの場合に選択されるテーブルである。同様に、図8cは、PDL種別がPDLB、作成アプリケーションがCAD、PDLデータの圧縮なしの場合に選択されるテーブルである。また、図8dは、PDL種別がPDLB、作成アプリケーションがCAD以外、PDLデータの圧縮なしの場合に選択されるテーブルである。なお、PDLBの場合は、PDLデータを圧縮してくるドライバ及びアプリケーションは存在しないため、圧縮ありの場合のテーブルを用意していない。もちろん、圧縮ありの場合のテーブルを用意してもよい。各テーブルの各行は、描画最適化処理群250の各描画最適化処理を選択した場合の処理量を示す値が記載されている。また、各テーブルの左側に配置されているテーブルの各列には、PDL解析処理群240と描画最適化処理群250とDL生成処理260の各処理の比率が記載されている。例えば、描画最適化処理Aを選択した701の行の例では、PDLインタプリタA241と描画最適化処理A251とDL生成処理260の処理の比率は4:2:3であること示している。一方、描画最適化処理Bを選択した702の行の例では、PDLインタプリタA241と描画最適化処理B252とDL生成処理260の処理の比率は4:3:3であること示している。また、各テーブルの右側に配置されているテーブルの各列には、各描画最適化処理を選択したときの、並列化処理を行った場合のクリティカルパス最少処理量の処理量及びシーケンシャル処理を行った場合の総合的な処理量、決定すべきPDL構成図7の構成A又は構成Bが記載されている。なお、各テーブルの値は事前に、テストデータセットを用いて測定した結果をもとに決定した値であり、テーブルそのものは、印刷装置110に対してダウンロードで差し替えできるように構成してもよい。PDL構成決定処理221は、図8の右側の情報をもとに、使用する描画最適化処理描画最適化処理A又はBを決定し、決定した描画最適化処理の行のPDL構成を参照して、PDL構成構成A又は構成Bを決定する。使用する描画最適化処理の決定は、クリティカルパスの処理量及び総合的な処理量を参照して行われる。すなわち、使用する描画最適化処理は、クリティカルパスの処理量が小さい方に決定する。クリティカルパスの処理量が同一である場合には、総合的な処理量が小さい方に決定する。即ち、各パイプラインで行う処理のうち、処理量が最大となるパイプラインの処理量が最少となるように、描画最適化処理及び各パイプラインで行う処理を決定する。なお、前記処理量が最大となるパイプラインの処理量が同一の場合には、全てのパイプラインの処理量の合計が最少となるように、描画最適化処理及び各パイプラインで行う処理を決定する。例えば、図5のS501でPDL判定処理220が抽出した情報が、PDL種別がPDLA、作成アプリケーションがCAD、PDLデータの圧縮なしである場合、S502では、図8a-1のテーブルが選択される。続いて、クリティカルパスの処理量では、描画最適化処理Aの方が小さいため、描画最適化処理として描画最適化処理A251が決定される。続いて、決定された描画最適化処理Aの行である701のPDL構成を参照するとBであるため、PDL構成として図7Bの構成Bに決定される。なお、PDL種別がPDLAのため、PDLインタプリタとしてPDLAインタプリタ241が決定される。もう一例をあげると、S501でPDL判定処理220が抽出した情報が、PDL種別がPDLA、作成アプリケーションがCAD以外、PDLデータが圧縮ありである場合、図8b-2のテーブルが選択される。続いて、クリティカルパスで処理量を参照すると、707の行の描画最適化処理Aの場合と708の行の描画最適化処理Bの場合で同一であるため、総合的な処理を参照する。総合的な処理量では、描画最適化処理Bの方が小さいため、描画最適化処理として描画最適化処理B252が決定される。続いて、決定された描画最適化処理Bの行である708のPDL構成を参照するとBであるため、PDL構成として図7Bの構成Bが決定される。なお、PDLAのように基本的な描画命令だけで構成されるPDL種の場合、作成アプリケーションがCAD以外例えば、ワープロソフト、表計算ソフト等の場合、PDL解析処理の比率が低く、DL生成処理の比率が高くなる傾向がある。また、PDLBのように基本的な描画命令に加え高度な描画命令を含むPDL種の場合、作成アプリケーションによらず、PDL解析処理の比率が高くなる傾向がある。また、CADのように、PDLデータはオブジェクト数が大量になるアプリケーションの場合、PDL種によらず、PDL解析処理、及び最適化処理の負荷比率が高くなる傾向がある。また、クラウドやネットワークの帯域が小さいLAN等から投入されたPDLデータのように圧縮されたPDLデータの場合、デコード解凍処理が必要となるため、PDL解析処理の比率が高くなる傾向がある。このような傾向に基づいて、本実施例では、上記図8のような場合分けに対応するテーブルを用いる構成としたが、図8以外の場合分けに対応するテーブルを用いる構成であってもよい。例えば、PDL種及び作成アプリーケーションの組み合わせで場合分けしたテーブルであってもよい。以下、図5のフローチャートの説明に戻る。図5のS502において、PDL構成決定処理221は、PDL構成を決定し、該決定したPDL構成に従って、PDL処理群230内の各ソフトウェアモジュールを接続するように制御する。PDL構成決定処理221がPDL構成を決定すると、ジョブコントロール処理205は、PDL処理群230にPDL処理を開始させるS503。PDL処理では、上記S502で決定されたPDL構成に従ってPDL処理群230の各ソフトウェアモジュールが動作し、RAM113にスプールされている印刷ジョブに含まれるPDLデータを解釈し、ハードウェアレンダラ118の解釈できるDLを生成する。PDL構成Aの場合、描画最適化処理群250の処理とDL生成処理260の処理の間に、パイプライン分割処理261が接続される。また、PDL構成Bの場合、PDL解析処理群240の処理と描画最適化処理群250の処理の間に、パイプライン分割処理261が接続される。なお、PDL解析処理群240の処理、描画最適化処理群250の処理、及びDL生成処理260の処理はパイプライン分割処理261の前後で、実行されるスレッドが分割され図4に示したスレッドA,スレッドBに分割され、それぞれのスレッドの処理はパイプライン的に並列で動作する。それぞれのスレッドの起動は、ジョブコントロール処理205がPDL処理の開始までの任意のタイミングに行うことが可能である。例えばPDL印刷処理の開始時に各スレッドを起動する構成でもよい。なお、各スレッドは、CPU112の異なる演算ユニットコアで並列に実行される。いずれのPDL構成においても、まず、選択されたPDL解析処理群240のPDLインタプリタが、PDLデータを解釈して描画オブジェクト群を生成し、共通描画IFをコールする。また、選択された描画最適化処理群250の描画最適化処理は、共通描画IFから入力された描画オブジェクト群を最適化し、再度、共通描画IFをコールする。さらに、DL生成処理260は、共通描画IFから入力された描画オブジェクト群をDL化する。なお、DL生成処理260は、1ページ分のDLを生成されたところで、ジョブコントロール処理205へDLを生成した旨を通知する。また、PDL解析処理群240の各PDLインタプリタは、RAM113にスプールされた全PDLデータの解釈が終了すると、全ページ分のデータ解釈が終了した旨を、ジョブコントロール処理205へ通知しておく。上記S503で1ページ分のDLが生成されると、ジョブコントロール処理205は、RIP処理270を起動し、生成されたDLのレンダリングを行うS504。詳細には、起動されたRIP処理270が、レンダラ118を制御し、RAM113上に生成されたDLをレンダリングし、ラスタイメージを生成する。生成したラスタイメージは、RAM113上に構成されるイメージバッファに格納される。RIP処理270は、1ページ分のDLのレンダリングが終了し、ラスタイメージをイメージバッファに格納すると、ジョブコントロール処理205へレンダリングが終了した旨を通知する。上記S504でラスタイメージが生成されると、ジョブコントロール処理205は、印刷処理280を起動し、生成されたラスタイメージの指定用紙への印刷出力を行うS505。詳細には、起動された印刷処理280が、プリンタエンジン115を制御し、RAM113のイメージバッファに格納されたラスタイメージの指定用紙上への印刷出力を行う。印刷処理280は、印刷出力を終了すると、その旨をジョブコントロール処理205へ通知する。上記S505で1ページ分の印刷出力が終了すると、S506において、ジョブコントロール処理205は、全ページ分のPDLデータの解釈が終了し、印刷出力が終了したか否かを判定する。そして、まだ全ページの印刷出力が終了していないと判定した場合S506でNo、ジョブコントロール処理205は、S503へ処理を戻し、PDL処理から処理を継続するように制御する。一方、全ページの印刷出力が終了したと判定した場合S506でYes、ジョブコントロール処理205は、PDL印刷処理を終了する。<本実施例の効果>ここで、いくつかの具体例を示し、本実施例によるパフォーマンス向上の効果を説明する。図9は、PDL種がPDLA、作成アプリケーションがCAD以外、PDLデータが圧縮がなしの場合のパフォーマンスのイメージ図であり、それぞれ2ページのPDLデータを処理した場合の例を示している。図9において、801は、PDL構成決定処理221が描画最適化処理A251及びPDL構成Aを選択した場合の図である。この場合、図8b-1の7テーブルの705の行を参照すると、PDLAインタプリタ241と描画最適化処理A251及び、DL生成処理260の処理量の比率は、3:2:5となっている。この各モジュールを構成Aで動作させると、スレッドAでは、PDLAインタプリタ241及び描画最適化処理A251が動作し、スレッドBではDL生成処理260が動作する。この場合、クリティカルパスの処理量はPDLAインタプリタと描画最適化処理A251の比率を足した5となり、図8の表上では705の行のケースとなる。一方、802は、描画最適化処理A251及びPDL構成Bを選択した場合の図である。この各モジュールを構成Bで動作させると、スレッドAでは、PDLAインタプリタ241が動作し、スレッドBでは、描画最適化処理A251及びDL生成処理260が動作する。この場合、スレッドBの処理量が多くなるため、クリティカルパスの処理量は、描画最適化処理A251とDL生成処理260の比率を足した7となる。なお、このケース実施例のテーブルとして搭載していないので、図8のテーブルには存在しない。図9の801と802を参照して分かる通り、クリティカルパスが短い構成を選択する方がトータルの処理時間が短くなることが分かり、描画最適化処理A251を選択した場合には、PDL構成Aを選択すべきであることが分かる。続いて803、804は、描画最適化処理B252を選択した場合の図である。描画最適化処理A251を選択した場合と同様に、クリティカルパスの処理量を計算すると、803、804のケースでは、PDLAインタプリタ241と描画最適化処理B252及び、DL生成処理260の処理量の比率は、図8の706になり、3:4;2となる。PDL構成Aを選択した場合のクリティカルパスの処理量は7となり、PDL構成Bを選択した場合のクリティカルパスの処理量は6であるため、PDL構成Bを選択した804のケース場合が最適である。このときの処理量が、図8の706記載されている。さらに、図8b-1のテーブルに、クリティカルパスの処理量により、描画最適化処理を選択すると、801と804の比較を行うこととなり、クリティカルパスの処理量が小さい、描画最適化処理A251を選択するべきであることが分かる。続いて、性能の比較のために本PDL処理をシングルコアのCPUで動作させた場合の例を図9bに示す。シングルコアCPUで動作させる場合は、パイプライン分割モジュール261で、スレッド分割する必要性が無いため、PDL構成は一意に決まる。すなわち、PDLAインタプリタ241が、描画最適化処理群250のいずれかのソフトウェアモジュールの共通描画IFをコールし、描画最適化処理群の250のソフトウェアモジュールが、DL生成処理260の共通描画IFをコールする構成である。805は、描画最適化処理群250の処理として、描画最適化処理A251を選択し場合の図であり、806は描画最適化処理B252を選択した場合の図である。シングルコア時のクリティカルパスの処理量は、すべてのソフトウェアモジュールの比を足したものとなり、描画最適化処理Aを選択したケースでは10、描画最適化処理Bを選択した場合のケースでは9となる。このため、805、806の図を見ても描画最適化処理B252を選択すべきであることが分かる以上のケースを比較すると、本実施例のデュアルコアCPUの場合は、描画最適化処理として、描画最適化処理A251を選択すべきだが、シングルコアCPUの場合は描画最適化処理B252を選択すべきであり、結果が異なることが分かる。すなわち、本実施例のように、マルチコアの場合には、PDL構成を考慮した処理時間を算出し、描画最適化処理を決定することが望ましいことが分かる。一方で、本実施例では図9aの各ケースを見て分かる通り、複数コアで動作した場合に最適な並列化処理もっとも性能が出る構成となることがわかる。続いて、従来のパイプライン並列化方法との性能の比較を行う。従来のパイプライン並列化方法では、描画オブジェクト毎に、各パイプラインステージスレッドにかかる処理を計算し、描画オブジェクト毎に、どちらのパイプラインステージで動作させるかを決定する方法である。この方法では、各パイプラインスレッド毎の処理量を均一化させることが出来るため、一見最適な並列化処理と考えられる。しかしながら、描画オブジェクト毎、各パイプラインステージの処理量を算出することは多大のオーバーヘッドを伴ってしまう。以下、図10を参照して、従来例との性能の比較を行う。図10は、実施例1における、従来例比較のためのパフォーマンスのイメージ図である。図10aは、本実施例において、PDL種別がPDLB、PDLデータの作成アプリケーションがCAD以外、PDLデータの圧縮なしのデータが入力された例である。この例の場合、PDL構成決定処理221は、図8dのテーブルを参照し、描画最適化処理A251を選択した後、PDL構成をPDL構成Bに決定する。一方で、図10bは、従来の方法で、描画オブジェクト毎に、描画静的化処理をどちらのスレッドで実行するか決定した場合である。この場合、PDL処理S503の処理量全体に対して、約8のオーバーヘッドが発生する図10の黒いエリア。図10を参照すると従来例では、描画最適化の処理が、スレッドA及びスレッドBにうまく分散され、並列化処理そのものはうまくいっている。しかし、aに示す本実施例の場合と比較すると、従来例では、処理スレッドの決定に対してのオーバーヘッドの分、効率化落ちていることが分かる。本実施例の処理では、ジョブ単位でPDL構成を決定するため、ほとんどオーバーヘッドは発生しない。以下、実施例2について説明する。実施例2の説明及び図の中で、実施例1と同一の図番を使用する場合があるが、その場合は、実施例1の図及び説明を参照されたい。<システム構成及びハードウェア構成>図11は、実施例2を示す印刷システムの一例を示すブロック図である。実施例2の印刷システムでは、ホストコンピュータ情報処理装置101と印刷装置110とがネットワーク199を介して接続されており相互に通信可能であるように構成されている。図11において、101はホストコンピュータである。102はCPUであり、図12以降で説明するホストコンピュータ上で動作するソフトウェアは全てこの上で動作する。103はRAMであり、前記CPU102で動作するソフトウェアがデータ保存や自分自身の動作のために使用する。104はハードディスクHDDであり、アプリケーションソフトウェアやアプリケーションデータ等を保存する。105はネットワークインタフェースネットワークI/Fであり、ホストコンピュータ101はこのネットワークI/F105を介して、ネットワーク199上の各機器と通信可能である。印刷装置110のハードウェア構成は、実施例1の図1と同一であるため説明を割愛する。<ホストコンピュータのソフトウェア構成>図12は、ホストコンピュータ101で動作するソフトウェアモジュールの構成の一例を示すブロック図である。なお、図12中の全てのソフトウェアモジュールは、HDD104上にコンピュータ読取可能に記録されたプログラムを、RAM103をワークメモリとして利用して、CPU102により実行することにより実体化される。以下、各ソフトウェアモジュールについて説明する。図12において、290はホストコンピュータ101のOSであり、ホストコンピュータ101で動作する全てのアプリケーションを含めた全てのソフトウェアを管理する。また、OS290は、ファイルシステムへのアクセスやネットワークIF105介したネットワークへの通信サービス等、各種サービスを提供する。OS290のサービスには、プリンタドライバ292からの依頼に基づいて印刷用のデータであるPDLCデータを生成するものがある。291はホストコンピュータ101上で動作するアプリケーションプログラムであり、アプリケーションプログラムから印刷を行う場合、プリンタドライバ292を起動する。プリンタドライバ292は、OS290のサービスを利用して印刷用データであるPDLCデータを生成し、印刷装置110で効果的に処理可能なPDLAデータを含む印刷ジョブに変換し、印刷ジョブスプーラ297にスプールする。プリンタドライバ292は内部に、293~296のソフトウェアモジュールを含んでいる。293はPDLCインタプリタであり、OS290の生成した、PDLCデータを解析し、共通描画IFをコールする。294はコントローラ処理量積算処理であり、プリンタドライバソフトウェアが生成した印刷ジョブを、印刷装置110のコントローラ内の各ソフトウェアモジュールが処理した場合にどの程度の処理量になるか積算する。コントローラ処理量積算処理294は、共通描画IFを入力とし、出力も入力された内容と同じ共通描画IFをコールする。295はPDLAライターであり、共通描画IFを入力として、PDLAデータを生成する。296はコントローラ処理決定処理であり、コントローラ処理量積算処理294の算出した処理量に応じて、印刷装置110で、プリンタドライバ292の生成した印刷ジョブを処理するときの、PDL構成及び使用すべき描画最適化処理を決定する。297は印刷ジョブスプーラであり、プリンタドライバソフトウェア292の作成した印刷ジョブをスプールする。なお、印刷ジョブスプーラ297は、RAM103又はHDD104に構成されている。298はデータ入出力部で、プリンタドライバ292で生成した印刷データを、OS290のサービスを利用することで、ネットワークIF105を介して、印刷装置110へ送信する。<PDL印刷ジョブ生成送信処理>以下、図13のフローチャートを参照して、ホストコンピュータ101のアプリケーション291で印刷装置110へ印刷指示が行われた時の動作を説明する。図13は、ホストコンピュータ101のアプリケーション291で印刷装置110へ印刷指示が行われた時の動作を示すフローチャートである。図13aは、ホストコンピュータ101上でアプリケーション291から印刷装置110へ印刷を行うための、印刷ジョブ生成送信処理の動作印刷制御動作を示すフローチャートである。アプリケーション291で印刷装置110への印刷指示を行うと、アプリケーション291は、プリンタドライバ292を起動して、印刷ジョブ生成送信処理を開始するS1300。プリンタドライバ292が起動すると、OS291へ、アプリケーション291が印刷しようとしているデータの印刷データPDLCを生成するように依頼する。依頼を受けたOS291はPDLCデータを生成し、RAM103に構成される一時バッファにスプールするS1301。プリンタドライバ292は、S1302において、印刷ジョブのタグデータ図14の1401~1404以外の情報を生成し、印刷ジョブとして印刷ジョブスプーラ297へ登録する。図14は、プリンタドライバ292の生成する印刷ジョブの一例を示す図である。S1302で生成されるタグデータには、図14に示す、印刷ジョブのジョブ種別、PDL種別、作成アプリケーション名、ジョブオーナー名、作成日時、プリンタドライバ292のバージョン、PDLデータの圧縮の有無を示すフラグが含まれる。プリンタドライバ292は、S1303~S1305で、293~295のソフトウェアモジュールを起動し、PDLCデータをPDLAへ変換する。さらに、プリンタドライバ292は、S1306で、コントローラ処理決定処理296を起動して、印刷装置110でのPDL構成を決定し、印刷ジョブへ追記する。以下、上記各ステップについて詳細に説明する。S1303では、プリンタドライバ292は、PDLCインタプリタ293を起動し、前記RAM103にスプールされているPDLCデータの解析を行う。PDLCインタプリタ293は、PDLCデータを解析し、PDLCデータの解析結果として、コントローラ処理量積算処理294の共通描画IFをコールする。S1304では、コントローラ処理量積算処理294は、共通描画IFのコールを入力として図13b~cのフローチャートに示す処理を実行する。本処理は、プリンタドライバ292が生成した印刷ジョブを、印刷装置110で処理した場合に、各ソフトウェアモジュールPDLAインタプリタ241,描画最適化処理群250の各モジュール、DL生成処理260の処理量について、ページ毎に積算出力する処理量算出処理。コントローラ処理量積算処理294については後ほど、詳述する。コントローラ処理量積算処理294は、各処理量の積算を行った後、PDLAライター295の共通描画IFをコールする。なお、コントローラ処理量積算処理294は、入力と同一のシーケンス及びパラメータで出力の共通描画IFをコールする。S1305では、PDLAライター295は、入力された共通描画IFの内容を基に、PDLAデータを生成し、RAM103に構成される一時バッファにスプールする。S1306では、コントローラ処理決定処理296は、上記S1304でコントローラ処理量積算処理294が積算した各処理量を参照して、印刷装置110において、現在生成中の印刷ジョブを処理するのに最適な、PDL構成及び使用すべき描画最適化処理を決定するパイプライン処理決定処理。なお、最適なPDL構成及び、描画最適化処理の決定アルゴリズムは後述する。次に、プリンタドライバ292は、S1307において、上記S1306で決定したPDL構成及び描画最適化処理を、ページ情報と共に、構成情報のタグ情報図14の1401,1402等として、印刷ジョブスプーラ297にスプールする。即ち、上記S1307では、上記S1306で決定された各パイプラインで行う処理を指定するデータ構成情報を、ページ毎に印刷ジョブ内に付加する。具体的には、図14の印刷ジョブの例でみると、1ページ目の構成情報は、1401に示されるように、使用すべき描画最適化処理として描画最適化処理Aを指定し、PDL構成としてPDL構成Aを指定している。また、2ページ目の構成情報は、1402に示されるように、使用すべき描画最適化処理として描画最適化処理Aを指定し、PDL構成としてPDL構成Bを指定している。続いて、プリンタドライバ292は、S1308において、RAM103の一時バッファにスプールされているPDLAデータを読み出し、印刷ジョブスプーラ297にスプールする図14の1403,1404等。そして、S1309において、データ入出力298は、印刷ジョブスプーラ297にスプールされた印刷ジョブを順次、印刷装置110へ送信する。1ページ分のPDLCデータの解析、及びPDLAデータのスプール送信が終わると、プリンタドライバ292は、S1310において、PDLCデータの全ページの解析が終了したか否かを判定する。そして、未だPDLCデータの全ページの解析が終了していないと判定した場合S1310でNo、プリンタドライバ292は、S1303に処理を戻し、PDLCデータの解析を継続する。一方、既にPDLCデータの全ページの解析が終了したと判定した場合S1310でYes、プリンタドライバ292は、本フローチャートの処理印刷ジョブ生成生成処理を終了する。<コントローラ処理量積算処理>以下、図13b、cのフローチャートを参照して、コントローラ処理量積算処理294がS1304で行うコントローラ処理量積算処理の説明を行う。コントローラ処理量積算処理294は、入力IFである共通描画IFがコールされる毎に、印刷装置110で、描画最適化処理A251を利用した場合、及び描画最適化処理B252を利用した場合にかかる、各ソフトウェアモジュールの処理量を積算する。まずS1331において、コントローラ処理量積算処理294は、印刷装置110における描画最適化処理A251の処理量、DL生成処理260の処理量を積算し、各処理量をRAM103へ格納する。本処理は、描画最適化処理Aを指定して、後述の処理量積算処理を呼び出すことで行われる。続いて、S1332において、コントローラ処理量積算処理294は、印刷装置110における描画最適化処理B252の処理量、DL生成処理260の処理量を積算し、各処理量をRAM103へ格納する。本処理は、描画最適化処理Bを指定して、後述の処理量積算処理を呼び出すことで行われる。次に、S1333において、コントローラ処理量積算処理294は、PDLAライター295が生成するPDLAデータを、印刷装置110搭載のPDLAインタプリタ241が解析するためにかかる時間を計算し、RAM103へPDLAインタプリタの処理量として積算する。なお、PDLAインタプリタの処理量は、描画オブジェクトの種類及び各描画オブジェクトのパラメータから計算できる。具体的には、描画オブジェクトがパスオブジェクトであれば、パスオブジェクトを処理するための基本処理量と、パスオブジェクトに含まれる点列数に1点当たりの処理量を乗算した値とする。また、描画オブジェクトが、イメージオブジェクトであれば、イメージオブジェクトを処理するための基本処理量と、イメージのサイズに1pixel当たりの処理量を乗算した値とする。次に、S1334において、コントローラ処理量積算処理294は、入力と同一のパラメータでPDLAライター295の入力IFである共通描画IFをコールして、コントローラ処理席背案処理を終了する。<処理量演算処理>続いて、図13cのフローチャートを参照して、S1331及びS1332で行われる各ソフトウェアモジュールの処理量の積算を行う処理量積算処理ついて説明する。なお、S1331及びS1332は対象の描画最適化処理が異なることを除いて同一の処理となる。処理量演算処理を開始すると、コントローラ処理量積算処理294は、S1341において、指定された描画最適化処理の判定アルゴリズムを利用して、コントローラ処理量積算処理294へ入力された描画オブジェクトが結合可能であるかを判定すると共に該結合判定処理にかかる処理量を計測する。処理量の計測に関しては、実際に判定処理の実施に要した、CPUのインストラクション数をカウントすることで行われる。次に、S1342において、コントローラ処理量積算処理294は、上記S1341で計測した結合判定処理の処理量を、指定された描画最適化処理の処理量としてRAM103に構成されるカウンタに積算する。次に、S1343において、コントローラ処理量積算処理294は、上記S1341の結合判定の結果を参照して、入力されたオブジェクトが結合対象か否か判定する。そして、入力されたオブジェクトが結合対象であると判定した場合S1343でYes、コントローラ処理量積算処理294は、S1344へ処理を進める。S1344では、コントローラ処理量積算処理294は、結合対象の描画オブジェクトに対する、指定された描画最適化処理による結合処理すなわち最適化処理にかかる処理量を計算し、描画最適化処理の処理量としてRAM103に構成されるカウンタに積算する。結合処理にかかる処理量は、最適化の種類及び、入力された描画オブジェクトのパラメータから計算する。例えば、上記S1341での判定の結果、図3aに例示する、複雑なパスを結合して1つのパスにする最適化が選択されたとする。この場合は、入力された描画オブジェクトの数、入力された描画オブジェクトに含まれる点列数と、結合により生成されるオブジェクトの面積pixel数から処理量を計算する。また、S1341での判定の結果、図3bに例示する、負数オブジェクトで構成されるグラデーションを1つのオブジェクトにする最適化が選択された場合は、1つのグラデーションオブジェクトを発行するだけの演算量であり、ほぼ0とみなすことが出来る。また、S1341での判定の結果、図3cに例示する、複数のイメージを1つのイメージに結合する最適化が選択された場合には、入力された描画オブジェクトの数と、各描画オブジェクトに含まれるイメージの面積、及び結合により生成されるイメージの面積から、処理量を計算する。上記S1344の処理が完了すると、コントローラ処理量積算処理294は、S1345へ処理を進める。一方、上記S1343において、入力されたオブジェクトが結合対象でないと判定した場合No、コントローラ処理量積算処理294は、そのままS1345へ処理を進める。S1345では、コントローラ処理量積算処理294は、最適化処理後に生成される描画オブジェクトを、共通描画IFを介して印刷装置110のDL生成処理260に入力する場合の、DL生成処理260の処理量を計算し、RAM103上に構成されているDL生成処理量カウンタに積算する。DL生成処理の処理量の計算は、DL生成処理260を簡易シミュレートすることで行う。DL生成処理260は主に、エッジ生成処理、エッジソート処理、レベル生成処理、塗り情報生成処理、メモリ制御処理からなる。DL生成処理の計算では、上記各処理にかかる処理量を計算し合算する。エッジは、パスなどの描画オブジェクトの形状をレンダラ118が解釈できるように、より単純な形に変更したものである。エッジ生成処理の処理量は、入力されたパスの形状をトレースすることにより計算することができる。エッジソート処理は、レンダラ118が処理できるように生成した各エッジをXYソートする処理である。エッジソートの処理量は1ページに含まれるエッジの総数をNとして2.6NlogNで計算する。ここで2.6は予め求めた処理負荷の係数である。レベルは各オブジェクトの重なり情報を示すものであが、レベル生成処理は基本的に入力された描画オブジェクト毎に実行される処理である。そのため、レベル生成処理の処理量は、入力された描画オブジェクト毎に一定の処理量を積算する。塗り情報生成処理の処理量は、入力された描画オブジェクトの種類に依存する。塗り情報生成処理の処理量は、描画オブジェクトがパスオブジェクトや文字オブジェクトであれば、単純に所定の処理量を積算し、イメージオブジェクトであれば、イメージの面積に所定の処理量を乗算した値を積算する。メモリ制御処理にかかる処理量は、使用するメモリ量に依存する処理量であるため、メモリ制御処理以外の各処理で、処理量と同時に、使用メモリ量も積算し、その後、共通描画IFでページ終了が通知されたときに、積算された使用メモリ量の総計を基に処理量を算出し積算する。そして、上記S1345の処理を終了すると、コントローラ処理量積算処理294は、図13cの処理量積算処理を終了する。<コントローラ処理決定処理>次に、図13aのS1306で行われる、コントローラ処理決定処理296について、図13dと図13eのフローチャートを参照して説明する。コントローラ処理決定処理は、コントローラ処理量積算処理でRAM103上に作成されている各処理量を参照し、印刷装置110で、印刷ジョブを処理するのに最適な、PDL構成及び使用すべき描画最適化モジュールを決定する。まず、S1361において、コントローラ処理決定処理296は、上記S1305で生成したPDLAのページを、描画最適化処理A251を使用して処理した場合のクリティカルパス最少処理量とそのクリティカルパスのPDL構成をPDL構成候補として決定する。本処理は、描画最適化処理A251を指定して、後述の図13eに示すクリティカルパス候補決定処理を呼び出すことで行われる。次に、S1362において、コントローラ処理決定処理296は、上記S1305で生成したPDLAのページを、描画最適化処理B252を使用して処理した場合のクリティカルパス最少処理量とそのクリティカルパスのPDL構成をPDL構成候補として決定する。本処理は、描画最適化処理B252を指定して、後述の図13eに示すクリティカルパス候補決定処理を呼び出すことで行われる。次に、S1363において、コントローラ処理決定処理296は、上記S1361で算出したクリティカルパスと上記S1362で算出したクリティカルパスを比較し、小さいほうの描画最適化処理を、使用すべき描画最適化処理として決定し、さらに、該決定した描画最適化処理を使用したクリティカルパスから決定されたPDL構成候補を、最適なPDL構成として決定し、本フローチャートの処理を終了する。<クリティカルパス候補決定処理>以下、図13eのフローチャートを参照して、S1361及びS1362で行われるクリティカルパス候補決定処理について説明する。なお、S1361及びS1362は対象の描画最適化処理が異なることを除いて、同一の処理である。また、本処理の中で参照する各処理量はRAM103上に格納されている。まず、S1371において、コントローラ処理決定処理296は、PDL構成Aのクリティカルパスを算出する。PDL構成Aのクリティカルパスは、PDLAインタプリタの処理量と、指定された描画最適化処理の処理量DL生成処理の処理量の大きい方小さくない方である。なお、PDLAインタプリタの処理量は、図13bのS1333で算出されたものである。また、指定された描画最適化処理の処理量、及び、DL生成処理の処理量は、図13bのS1331又はS1332で算出されたものである。次に、S1372において、コントローラ処理決定処理296は、PDL構成Bのクリティカルパスを算出する。PDL構成Bのクリティカルパスは、PDLAインタプリタの処理量指定された描画最適化処理の処理量と、DL生成処理の処理量の大きい方小さくない方である。次に、S1373において、上記S1371で算出したPDL構成Aのクリティカルパスと、上記S1372で算出したPDL構成Bのクリティカルパスとを比較し、小さい方大きくない方を、指定された描画最適化処理のクリティカルパスとし、該クリティカルパスを実現するPDL構成を、指定された描画最適化処理でPDL構成候補として、本フローチャートの処理を終了する。<PDL印刷処理>次に、本実施例2における、印刷装置110のPDL印刷処理について説明する。即ち、印刷装置110がネットワーク199上のホストコンピュータ101から、図14に例示するPDLAデータを含む印刷ジョブを受信し、用紙上へ印刷するまでの、PDL印刷処理を、図15のフローチャートを参照して説明する。図15は、実施例2におけるPDL印刷処理の一例を示すフローチャートである。このフローチャートの処理は、図2に示したソフトウェアモジュールにより実行されるものである。即ち、このフローチャートの処理は、印刷装置110のCPU112がROM114に記録されたプログラムを実行することにより実現されるものである。印刷装置110のネットワーク処理210は、ネットワークインターフェース116を介して、印刷ジョブを受信すると、ジョブコントロール処理205へ通知する。ジョブコントロール処理205は、印刷ジョブの通知を受けると、印刷ジョブに含まれる制御コマンドを解析しPDLデータを含むか判定する。ネットワーク処理210は、ジョブコントロール処理205の指示に基づいて、印刷ジョブを順次RAM113上のスプールバッファへスプールしていく。ジョブコントロール処理205は、PDL印刷処理を開始するとS1500、PDL判定処理220を起動し、印刷ジョブに関し各種判定を行うS1501。PDL判定処理220は、前記スプールバッファに格納されている印刷ジョブを解析し、PDL種別、生成アプリケーションの種別、PDLデータの圧縮の有無等の判定を行う。PDL判定処理220が判定した各種結果は、PDL構成決定処理221へ通知される。この通知に基づいて、PDL構成決定処理221は、PDL構成を決定するS1502。本実施例2で取りうるPDL構成も図7に示すPDL構成A及びPDL構成Bである。実施例2のPDL構成決定処理221は、印刷ジョブのタグ情報に含まれるページ毎の構成情報図14の1401,1402等を検索し、構成情報が含まれている場合は第一優先で、印刷ジョブに含まれるPDL構成及び描画最適化モジュールを決定する。なお、タグ情報に構成情報図14の1401,1402等が含まれない場合は、実施例1と同様の方法により、PDL構成及び描画最適化モジュールを決定する。そして、PDL構成決定処理221は、決定したPDL構成に従って、PDL処理群230内の各ソフトウェアモジュールを接続するように制御する。PDL構成決定処理221がPDL構成を決定すると、ジョブコントロール処理205は、PDL処理群230にPDL処理を開始させるS1503。PDL処理では、上記S1502で決定されたPDL構成に従ってPDL処理群230の各ソフトウェアモジュールが動作し、RAM113にスプールされている印刷ジョブに含まれるPDLデータを解釈し、ハードウェアレンダラ118の解釈できるDLを生成する。PDL構成Aの場合、描画最適化処理群250の処理とDL生成処理260の処理の間に、パイプライン分割処理261が接続される。また、PDL構成Bの場合、PDL解析処理群240の処理と描画最適化処理群250の処理の間に、パイプライン分割処理261が接続される。なお、PDL解析処理群240の処理、描画最適化処理群250の処理、及びDL生成処理260の処理はパイプライン分割処理261の前後で、実行されるスレッドが分割され図4に示したスレッドA,スレッドBに分割され、それぞれのスレッドの処理はパイプライン的に並列で動作する。それぞれのスレッドの起動は、ジョブコントロール処理205がPDL処理の開始までの任意のタイミングに行うことが可能である。例えばPDL印刷処理の開始時に各スレッドを起動する構成でもよい。なお、各スレッドは、CPU112の異なる演算ユニットコアで並列に実行される。いずれのPDL構成においても、まず、選択されたPDL解析処理群240のPDLインタプリタが、PDLデータを解釈して描画オブジェクト群を生成し、共通描画IFをコールする。また、選択された描画最適化処理群250の描画最適化処理は、共通描画IFから入力された描画オブジェクト群を最適化し、再度、共通描画IFをコールする。さらに、DL生成処理260は、共通描画IFから入力された描画オブジェクト群をDL化する。なお、DL生成処理260は、1ページ分のDLを生成されたところで、ジョブコントロール処理205へDLを生成した旨を通知する。また、PDL解析処理群240の各PDLインタプリタは、RAM113にスプールされた全PDLデータの解釈が終了すると、全ページ分のデータ解釈が終了した旨を、ジョブコントロール処理205へ通知しておく。上記S1503で1ページ分のDLが生成されると、ジョブコントロール処理205は、RIP処理270を起動し、生成されたDLのレンダリングを行うS1504。詳細には、起動されたRIP処理270が、レンダラ118を制御し、RAM113上に生成されたDLをレンダリングし、ラスタイメージを生成する。生成したラスタイメージは、RAM113上に構成されるイメージバッファに格納される。RIP処理270は、1ページ分のDLのレンダリングが終了し、ラスタイメージをイメージバッファに格納すると、ジョブコントロール処理205へレンダリングが終了した旨を通知する。上記S1504でラスタイメージが生成されると、ジョブコントロール処理205は、印刷処理280を起動し、生成されたラスタイメージの指定用紙への印刷出力を行うS1505。詳細には、起動された印刷処理280が、プリンタエンジン115を制御し、RAM113のイメージバッファに格納されたラスタイメージの指定用紙上への印刷出力を行う。印刷処理280は、印刷出力を終了すると、その旨をジョブコントロール処理205へ通知する。上記S1505で1ページ分の印刷出力が終了すると、S506において、ジョブコントロール処理205は、全ページ分のPDLデータの解釈が終了し、印刷出力が終了したか否かを判定する。そして、まだ全ページの印刷出力が終了していないと判定した場合S1506でNo、ジョブコントロール処理205は、S1502へ処理を戻し、PDL処理から処理を継続するように制御する。一方、全ページの印刷出力が終了したと判定した場合S1506でYes、ジョブコントロール処理205は、PDL印刷処理を終了する。本処理により、印刷ジョブにページ毎に異なる構成情報がタグ情報として記載されていれば、ページ毎に異なるPDL構成で動作するようになる。以上示したように、実施例2によれば、ホストコンピュータ100で印刷ジョブ生成時に、ページ単位で、印刷装置110での処理量を計算しながら、最適なPDL構成及び使用すべき描画最適化処理を決定し、印刷ジョブに含めて通知してくる。これにより、印刷装置110では、ページ単位で、もっとも最適なPDL構成に切り替えながら動作することができる。したがって、各ページが異なるアプリケーションで生成されるような複雑な印刷ジョブであっても、印刷装置110では最適な並列化構成をとることができ、高速に印刷出力を行える。なお、ホストコンピュータ100等のパーソナルコンピュータは、一般的に、印刷装置より、高スペック高性能のCPU、豊富なメモリを備える等、コンピュータ資源が豊富である。このため、ホストコンピュータ100上で、コントローラ処理量積算図13aのS1304やコントローラ構成決定図13aのS1306の処理を行っても、オーバーヘッドが発生することなく、スムーズに処理が行われると考えられる。以上示したように、本発明の各実施例によれば、印刷画像生成処理を、PDLの種類、PDLデータを生成したアプリケーションの種類及びPDLデータの圧縮の有無により、パイプライン分割の構成を切り替えることにより、描画オブジェクトレベルでのパイプライン並列化を行いつつ、描画オブジェクト単位でのオーバーヘッドの発生なしに、最適なオブジェクト単位でのパイプライン並列化処理を実現でき、マルチコアCPUを搭載する印刷装置の生産性を向上させることができる。即ち、描画オブジェクトレベルでのパイプライン並列化を行いつつ、描画オブジェクト単位でのオーバーヘッドの発生なしに、最適な並列化処理を行って、印刷装置の生産性を向上可能な印刷環境を構築することができる。なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。他の実施例また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形各実施例の有機的な組合せを含むが可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。"