(57)【特許請求の範囲】
【請求項１】
Ｎ個（Ｎは２以上の整数）の画像処理回路と、
印刷対象文書のＮページごとに、当該Ｎページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、１ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Ｎページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Ｎページのための並列方式として選択する選択手段と、
前記選択手段が選択した並列方式に従って、前記Ｎ個の画像処理回路に対して当該Ｎページについての画像処理の割り当てを行う割当手段と、
を備え、
前記選択手段は、
ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Ｎページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Ｎページの画像処理に要する所要時間と推定し、
前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Ｎページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Ｎページの画像処理に要する所要時間と推定する、
ことを特徴とする印刷画像処理装置。
【請求項２】
前記選択手段は、当該割当手段の機能を記述したプログラムをコンピュータに実行させることにより実現されたものであり、
前記選択手段は、前記Ｎ個の画像処理回路が前記Ｎページについて前記割当手段から割り当てられた画像処理を実行している間に、次のＮページについての並列方式を選択する、
ことを特徴とする請求項１に記載の印刷画像処理装置。
【請求項３】
前記選択手段は、前記ページ並列方式において、前記Ｎページのうちページ順が後のページについての画像処理の所要時間が、ページ順が前のページについての画像処理の所要時間よりも閾値以上短い場合には、前記ページ並列方式の方が当該Ｎページの画像処理に要する所要時間が短くても、前記ページごとオブジェクト並列方式を、当該Ｎページについての並列方式として選択する、ことを特徴とする請求項１又は２に記載の印刷画像処理装置。
【請求項４】
前記選択手段は、印刷対象文書のページのうち、前記画像処理回路の処理対象となるオブジェクトを１つも含まないページについては、前記Ｎページごとの単位には含めず、前記処理対象となるオブジェクトを１以上含んだ後続のページをその単位に含める、ことを特徴とする請求項１から３のいずれか１項に記載の印刷画像処理装置。
【請求項５】
前記印刷対象文書の第１ページに含まれる各オブジェクトを前記各画像処理回路に割り当てて並列に処理させる第１ページ並列処理手段を更に備え、
前記選択手段は、前記印刷対象文書の第２ページ以降についてＮページごとに前記並列方式の選択を行う、
ことを特徴とする請求項１から４のいずれか１項に記載の印刷画像処理装置。
【請求項６】
Ｎ個（Ｎは２以上の整数）の画像処理回路に接続されたコンピュータを、
印刷対象文書のＮページごとに、当該Ｎページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、１ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Ｎページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Ｎページのための並列方式として選択する選択手段、
前記選択手段が選択した並列方式に従って、前記Ｎ個の画像処理回路に対して当該Ｎページについての画像処理の割り当てを行う割当手段、
として機能させるためのプログラムであって、
前記選択手段は、
ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Ｎページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Ｎページの画像処理に要する所要時間と推定し、
前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Ｎページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Ｎページの画像処理に要する所要時間と推定する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
デジタル印刷装置は、ページ記述言語で記述された印刷データをページごとのビットマップ画像（ラスター画像とも呼ばれる）に変換し、それら各ページのビットマップ画像データをプリントエンジンに供給して用紙への印刷を行わせる。各ページのビットマップ画像の生成処理においては、途中段階の画像に対して、必要に応じて、色空間変換や回転、拡大・縮小、回転、ハーフトーン処理等の、ビットマップ画像処理が行われる。このような画像処理はソフトウエアでも実装可能であるが、処理速度の観点から専用のハードウエア画像処理回路として実装される場合が多い。
【０００３】
また、処理速度向上のために、画像処理回路を複数設け、それら複数の画像処理回路に並列処理を行わせるシステムも存在する。この種のシステムでの並列処理の方式としては、各画像処理回路に対してページ単位で処理を割り当てるページ並列方式がある。
【０００４】
特許文献１には、１ページを構成するバンドの中に展開処理時間が画像形成プロセスに間に合わないバンドがある場合でも連続画像形成を可能にするために、印刷データをＣＰＵが解析して、バンド展開スケジュールをあらかじめ予測される展開処理時間に基づいて最適化する装置が開示されている。
【０００５】
特許文献２には、仕事量の予測可能な複数の単位ジョブを非対称な複数プロセッサに振分けるシステムが開示されている。このシステムでは、各単位ジョブを複数のプロセッサに割り当てる際の参照情報となる単位ジョブリストを作成し、そのリストより、各単位ジョブの実行順序とそれら単位ジョブ割り当て先プロセッサとを決定する単位ジョブスケジュールを作成している。
【０００６】
特許文献３には、印刷処理の高速化を図るためのハードウエア機能可変印刷装置が開示されている。この装置では、プリンタは、中間印刷データの処理に必要なモジュールを判定し、ハードウエア回路のハードウエア領域を複数に区分し、その判定結果に基づいて、区分領域ごとにモジュールの実行順序を規定した再構成スケジュールを作成する。そして、必要なリコンフィギュアラブルデータを記憶装置から読み出し、読み出したリコンフィギュアラブルデータおよび再構成スケジュールに基づいてハードウエア回路のハードウエア領域を再構成する。
【０００７】
特許文献４に記載された装置は、並列に展開処理が可能でそれぞれが動的に再構成可能なプロセッサからなる複数の展開手段を有し、オブジェクト記述言語で記述されたデータを受信して解析し、各描画オブジェクト毎に中間データに変換するステップと、展開処理を実行する前に、中間データに基づいて前記複数の展開処理における各々の処理時間を見積り、プロセッサの再構成のスケジューリングデータを生成するステップと、スケジューリングデータに基づいてプロセッサを再構成しながら、複数の展開手段によって中間データに基づいてビットマップデータに展開するステップとを有する。スケジューリングデータに基づく前記複数の展開手段の各々の処理時間を判定するステップと、複数の展開手段の処理時間が略同じとなるように、スケジューリングデータを修正するステップとを更に有する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１６８１４８号公報
【特許文献２】特開２００４−２５２９００号公報
【特許文献３】特開２００５−２０２６６７号公報
【特許文献４】特開２００６−０８８４３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、複数の画像処理回路にページ単位で処理を割り振って並列処理を行う方式（以下、ページ並列方式と呼ぶ）では、ページ順が前のページの処理負荷が後のページの処理負荷よりも大きい場合、それら両ページを並列処理すると後のページの処理結果の方が先に得られることとなる。ところが、印刷はページ順に行われるため、このような「追い越し」が生じると、先に処理が終了している後のページが、前のページの処理完了を待つこととなる。このような待機があまりに大きいと、処理の無駄が大きくなる。
【００１０】
これに対する対策として、ページごとに、そのページ内の複数のオブジェクトを複数の画像処理回路に振り分けて並列処理する「ページごとオブジェクト並列方式」が考えられる。ページごとオブジェクト並列方式では、ページ順に処理結果が得られ、またオブジェクト単位で並列処理するので文書の１ページ目の印刷が早くなる。しかし、オブジェクト数が画像処理回路の数より少ないページでは、使用されない画像処理回路が生じてしまうため、そのようなページが多いと、処理速度が得られなくなる。
【００１１】
本発明は、ページ並列方式又はページごとオブジェクト並列方式のどちらかを常に採用する装置よりも処理速度の早い印刷画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
請求項１に係る発明は、Ｎ個（Ｎは２以上の整数）の画像処理回路と、印刷対象文書のＮページごとに、当該Ｎページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、１ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Ｎページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Ｎページのための並列方式として選択する選択手段と、前記選択手段が選択した並列方式に従って、前記Ｎ個の画像処理回路に対して当該Ｎページについての画像処理の割り当てを行う割当手段と、を備え、前記選択手段は、ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Ｎページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Ｎページの画像処理に要する所要時間と推定し、前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Ｎページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Ｎページの画像処理に要する所要時間と推定する、ことを特徴とする印刷画像処理装置である。
【００１３】
請求項２に係る発明は、前記選択手段は、当該割当手段の機能を記述したプログラムをコンピュータに実行させることにより実現されたものであり、前記選択手段は、前記Ｎ個の画像処理回路が前記Ｎページについて前記割当手段から割り当てられた画像処理を実行している間に、次のＮページについての並列方式を選択する、ことを特徴とする請求項１に記載の印刷画像処理装置である。
【００１４】
請求項３に係る発明は、前記選択手段は、前記ページ並列方式において、前記Ｎページのうちページ順が後のページについての画像処理の所要時間が、ページ順が前のページについての画像処理の所要時間よりも閾値以上短い場合には、前記ページ並列方式の方が当該Ｎページの画像処理に要する所要時間が短くても、前記ページごとオブジェクト並列方式を、当該Ｎページについての並列方式として選択する、ことを特徴とする請求項１又は２に記載の印刷画像処理装置である。
【００１５】
請求項４に係る発明は、前記選択手段は、印刷対象文書のページのうち、前記画像処理回路の処理対象となるオブジェクトを１つも含まないページについては、前記Ｎページごとの単位には含めず、前記処理対象となるオブジェクトを１以上含んだ後続のページをその単位に含める、ことを特徴とする請求項１から３のいずれか１項に記載の印刷画像処理装置である。
【００１６】
請求項５に係る発明は、前記印刷対象文書の第１ページに含まれる各オブジェクトを前記各画像処理回路に割り当てて並列に処理させる第１ページ並列処理手段を更に備え、前記選択手段は、前記印刷対象文書の第２ページ以降についてＮページごとに前記並列方式の選択を行う、ことを特徴とする請求項１から４のいずれか１項に記載の印刷画像処理装置である。
【００１７】
請求項６に係る発明は、Ｎ個（Ｎは２以上の整数）の画像処理回路に接続されたコンピュータを、印刷対象文書のＮページごとに、当該Ｎページについての画像処理を前記各画像処理回路に対してページ単位で割り当てて並列処理させるページ並列方式と、１ページごとにオブジェクト単位で割り当てて並列処理させるページごとオブジェクト並列方式と、とのそれぞれについて当該Ｎページの画像処理に要する所要時間を推定し、前記ページ並列方式と前記ページごとオブジェクト並列方式とのうち推定した所要時間が短い方の方式を当該Ｎページのための並列方式として選択する選択手段、前記選択手段が選択した並列方式に従って、前記Ｎ個の画像処理回路に対して当該Ｎページについての画像処理の割り当てを行う割当手段、として機能させるためのプログラムであって、前記選択手段は、ページごとに当該ページに含まれるオブジェクトの画像処理の推定所要時間を総和することで当該ページについての画像処理の推定所要時間を求め、前記Ｎページの各ページについての画像処理の推定所要時間のうちの最長のものを、前記ページ並列方式での前記Ｎページの画像処理に要する所要時間と推定し、前記画像処理回路ごとに当該画像処理回路に割り当てられたオブジェクトの画像処理の推定所要時間の和を保持し、ページ内のオブジェクトを画像処理回路に割り当てるごとに当該オブジェクトの画像処理の推定所要時間を当該画像処理装置に対応する前記和に対して加算し、ページ内のすべてのオブジェクトを割り当て終えたときの各画像処理回路についての前記和のうちの最大値を当該ページについての画像処理の推定所要時間とし、前記Ｎページの各ページについての画像処理の推定所要時間の総和を、前記ページごとオブジェクト並列方式での前記Ｎページの画像処理に要する所要時間と推定する、ことを特徴とするプログラムである。
【発明の効果】
【００１８】
請求項１又は６に係る発明によれば、ページ並列方式又はページごとオブジェクト並列方式のどちらかを常に採用する装置よりも処理速度の早い印刷画像処理装置を提供することができる。
【００１９】
請求項２に係る発明によれば、印刷対象文書全体にわたってＮページごとの単位に適用する並列方式を、画像処理回路による画像処理を開始する前にすべて決めてしまう方式と比べて、処理に要する時間を短縮できる。
【００２０】
請求項３に係る発明によれば、ページ順が後のページの画像処理の完了が前のページの画像処理の完了よりも大幅に早くなることでページ順の維持のための制御が複雑になること、を防ぐことができる。
【００２１】
請求項４に係る発明によれば、Ｎページの各ページがすべて画像処理回路の処理対象のオブジェクトを含み、ページ並列方式を選択した場合でも画像処理回路が遊休状態となることがない。
【００２２】
請求項５に係る発明によれば、印刷対象文書の印刷指示から、その文書の第１ページが印刷出力されるまでに時間を短くしつつも、印刷対象文書全体としての処理に要する所要時間を短くすることができる。
【図面の簡単な説明】
【００２３】
【図１】実施形態の印刷画像処理装置の構成例を示す図である。
【図２】印刷文書データ２００の分析結果（オブジェクトテーブル）の一例を示す図である。
【図３】ＤＲＰステータスレジスタのデータ内容の一例を示す図である。
【図４】動的スケジューラの全体的な処理手順の一例を示すフローチャートである。
【図５】セクション分割処理の手順の一例を示すフローチャートである。
【図６】並列方式決定処理の手順の一例を示すフローチャートである。
【図７】セクション単位でのページ並列方式のセクションあたりの所要時間の算出手順の一例を示すフローチャートである。
【図８】ページごとオブジェクト並列方式のセクションあたりの所要時間の算出手順の一例を示すフローチャートである。
【図９】セクション単位でのページ並列方式によるページ群の処理の進行の仕方を説明するための図である。
【図１０】ページごとオブジェクト並列方式によるページ群の処理の進行の仕方を説明するための図である。
【図１１】有するオブジェクト数が異なる複数のページの例を示す図である。
【図１２】図１１に例示したページ群についての生成されるオブジェクトテーブルの例を示す図である。
【図１３Ａ】図１１に例示したページ群をセクション単位でのページ並列方式で処理した場合の処理の進行の仕方を説明するための図である。
【図１３Ｂ】図１１に例示したページ群をページごとオブジェクト並列方式で処理した場合の処理の進行の仕方を説明するための図である。
【図１３Ｃ】図１１に例示したページ群を実施形態の方式で処理した場合の処理の進行の仕方を説明するための図である。
【発明を実施するための形態】
【００２４】
図１を参照して、実施形態の印刷システムの装置構成の例を説明する。
【００２５】
図１に例示する印刷システムは、ホストＣＰＵ１００，メモリ１２０，ＲＩＰアクセラレータ１３０及びプリントエンジン１４０を備える。
【００２６】
ホストＣＰＵ１００は、ページ記述言語（ＰＤＬ：Page Description Language）で記述された印刷文書データ２００を処理して、各ページの画像データを生成する処理を行うＣＰＵ（中央演算装置）である。ＰＤＬは、印刷等の出力処理の対象となる各ページの画像を記述する言語又はフォーマットであり、例えば、ＰｏｓｔＳｃｒｉｐｔ（登録商標）やＰＤＦ( Portable Data Format: ISO 32000-1)などがその一例である。最終的に生成する各ページの画像データは、プリントエンジン１４０にて取扱可能な形式の画像データであり、典型的にはビットマップ画像データである。印刷文書データ２００は、図示を省略したＬＡＮ（ローカルエリアネットワーク）などのデータ通信経路を介して、クライアントコンピュータからホストＣＰＵ１００に送られる。また、ホストＣＰＵ１００は、それら各ページの画像データの生成のための処理やこの処理のためのＲＩＰアクセラレータ１３０の制御、及び生成した画像データをプリントエンジン１４０に供給して印刷させる印刷制御などを行う。ホストＣＰＵ１００は、図示しない記憶装置（例えばＲＯＭ（Read Only Memory）やＥＥＰＲＯＭ（Electronically Erasable Programmable ROM）、ハードディスクなど）に記憶された制御プログラムを実行することにより、これらの機能を実現する。なお、ホストＣＰＵ１００が実現する機能の詳細については、後で更に詳しく説明する。
【００２７】
メモリ１２０は、ホストＣＰＵ１００が処理を実行する際に用いる作業用の記憶領域を提供するハードウエアデバイスであり、例えばＲＡＭ（Random Access Memory）などから構成される。メモリ１２０は、例えば、ホストＣＰＵ１００が生成する各ページの画像データや、各種制御のための制御情報を一時的に保持したりするために用いられる。
【００２８】
ＲＩＰアクセラレータ１３０は、ホストＣＰＵ１００による印刷文書データ２００からの画像データの生成処理のうちの、特定の画像処理を実行するためのハードウエア装置である。ＲＩＰアクセラレータ１３０が実行する「特定の画像処理」は、例えば、画像データの圧縮・伸張、画像の縮小・拡大、回転、色空間変換、ハーフトーン処理（或いは誤差拡散）などである。もちろん、これらのうちの１つに限られるものではなく、２以上をあらかじめ定めた順序で行う複合的な画像処理も含まれる。また、上に例示した以外の画像処理を行うものであってもよい。ＲＩＰアクセラレータ１３０が取り扱う画像データは、ビットマップ形式に限るものではなく、ＪＰＥＧ（Joint Photographic Experts Group）形式その他の形式（フォーマット）の場合もあり得る。このような特定の画像処理は、ハードウエア回路による処理の方がソフトウエア処理よりも高速であるので、ホストＣＰＵ１００は、印刷文書データ２００から各ページの画像データを生成する処理（ＲＩＰ処理と呼ばれる。ＲＩＰはRaster Image Processingの略称）のうち、上述のような特定の画像処理については、ＲＩＰアクセラレータ１３０に処理を依頼する。
【００２９】
ＲＩＰアクセラレータ１３０は、Ｎ個（Ｎは２以上の整数）のＤＲＰ（Dynamically Reconfigurable Processor）１３２−１，１３２−２，・・・１３２−Ｎ（以下、区別する必要のない場合はＤＲＰ１３２と総称する）を備える。
【００３０】
ＤＲＰ１３２は、内部の回路構成を動的に書き換え（例えば１クロックの間に書き換えるなど）可能なプロセッサである。ＤＲＰ１３２としては、例えば、特開２００９−３７６５号公報に紹介されているＤＡＰＤＮＡ（Digital Application Processor / Distributed Network Architecture）アーキテクチャのプロセッサを用いてもよい（ただし、これに限られるわけではない）。このアーキテクチャのＤＲＰ１３２は、論理回路を構成するための複数の回路要素（ＰＥ：プロセッサエレメント）とそれらＰＥ間の接続を構成するための配線リソースとを備え、それらＰＥの設定やＰＥ間の接続構成を変えることにより、様々な構成の論理回路として動作することができる。また、ＤＲＰ１３２は、複数のコンフィギュレーションメモリを備えている。１つのコンフィギュレーションメモリには、１つのコンフィギュレーションを定義するコンフィギュレーションデータが記憶される。ここでは、コンフィギュレーションという用語は、１つのＤＲＰ１３２上に同時に存在する論理回路のことを意味するものとして用いる。ＤＲＰ１３２では、複数のコンフィギュレーションメモリのうちの１つが有効（アクティブ）とされると、そのメモリ内に保持されるデータに従ってＰＥの設定やＰＥ間の配線の組み替えが行われ、これによりそのコンフィギュレーションの回路が構成される。１つの時点では１つのコンフィギュレーションメモリのみがアクティブであり、別のコンフィギュレーションメモリをアクティブにすることにより、ＤＲＰ１３２のコンフィギュレーションが切り替えられる。例えば、順番に切り替えるべきコンフィギュレーションデータをそれぞれ別のコンフィギュレーションメモリにロードしておき、それらを順にアクティブにしていくことで、それら一連のコンフィギュレーションによるパイプライン処理を実現することができる。あるコンフィギュレーションメモリをアクティブにしている間に、別のコンフィギュレーションメモリにデータをロードすることで、ロードに要する時間が隠蔽される。
【００３１】
Ｎ個のＤＲＰ１３２は、同じ画像処理を行う。すなわち、これらＮ個のＤＲＰ１３２は、それぞれ同じ画像処理を並列的に実行し得る。なお、ＤＲＰ１３２の数Ｎは、ＲＩＰアクセラレータ１３０が備えるＤＲＰ１３２のうち、「特定の画像処理」に対して割当可能なＤＲＰ１３２の総数である。すなわち、ＲＩＰアクセラレータ１３０がＮ＋ｋ（ｋは１以上の整数）個のＤＲＰ１３２を搭載していたとしても、そのうちのｋ個が「特定の画像処理」以外の処理のために予約されている場合、「特定の画像処理」に対して割当可能なＤＲＰ１３２の数はＮ個である。
【００３２】
例えば、印刷文書データ２００中のＪＰＥＧ圧縮された画像オブジェクトをＪＰＥＧ伸張する処理、伸張結果のビットマップ画像を予め定められた画像サイズに縮小する処理、縮小結果の画像を色空間変換する処理、色空間変換結果の画像を誤差拡散により二値化する処理、二値化結果の画像を後の処理までの間の一時的保存のために可逆圧縮する処理、等といった一連の画像処理を、各ＤＲＰ１３２がそれぞれ実行する。すなわち、各ＤＲＰ１３２は、自身のコンフィギュレーションを、それら一連の画像処理を構成する各処理のためのコンフィギュレーションに順に切り替えながら、それら各処理を順に実行する。
【００３３】
ホストＣＰＵ１００から依頼される個々の画像処理（例えばページ単位、或いはオブジェクト単位の画像処理）は、それらＮ個のＤＲＰ１３２のいずれかに割り振られる。Ｎ個のＤＲＰ１３２が、異なるページ又はオブジェクトの画像処理をそれぞれ実行することで、並列処理が実現される。ＲＩＰアクセラレータ１３０は、例えば、１枚又は複数枚のボード上に合計Ｎ個のＤＲＰチップを搭載したものとして構成してもよく、この場合、各ボードがホストＣＰＵ１００の搭載されたマザーボード上のスロットに接続されることで、図示のような装置構成が実現される。
【００３４】
プリントエンジン１４０は、ホストＣＰＵ１００から供給される各ページの画像データを、紙などのシート状媒体に印刷する。
【００３５】
次に、ホストＣＰＵ１００が実現する機能構成の一例を説明する。図１の例では、ホストＣＰＵ１００は、機能モジュールとして、ＰＤＬ解釈部１０２，メモリ・ＩＯ（入出力）制御部１０４，ＤＲＰ制御部１０６，オブジェクト・ページ情報抽出部１０８，動的スケジューラ１１０及びＤＲＰステータスレジスタ１１２を備える。ＰＤＬ解釈部１０２は、ＰＤＬで記述された印刷文書データ２００を解釈して画像をメモリ上に描画する処理を行う機能モジュールであり、インタプリタ又はデコンボーザなどとも呼ばれる。メモリ・ＩＯ制御部１０４は、メモリ１２０、及びプリントエンジン１４０等の周辺機器との間のデータの入出力を制御する機能モジュールである。ＤＲＰ制御部１０６は、ＲＩＰアクセラレータ１３０を制御して画像処理を実行させる機能モジュールである。ＤＲＰ制御部１０６は、動的スケジューラ１１０が決定した各ＤＲＰ１３２への画像処理対象のページ又はオブジェクトの割当に従って、ＲＩＰアクセラレータ１３０内の各ＤＲＰ１３２に対してページ又はオブジェクトの画像処理を依頼する。
【００３６】
オブジェクト・ページ情報抽出部１０８は、ＰＤＬ解釈部１０２による印刷文書データ２００の解釈により得られる各ページ及び各ページ内の各オブジェクトの情報を抽出して、オブジェクトテーブルを生成する。
【００３７】
このオブジェクトテーブルのデータ内容の一例を、図２に示す。図２の例では、オブジェクトテーブルには、ページごとに、そのページの番号、及びそのページ内のオブジェクトごとの情報を含む。図示例では、オブジェクトごとの情報には、当該オブジェクトのデータサイズ、ＤＲＰ１３２で処理させる際に要する所要時間の推定値（「推定所要時間」）、及びデータサイズとあらかじめ定めた閾値との比較結果（「閾値サイズ比較」）が含まれる。ＤＲＰ１３２上に構成される１つのコンフィギュレーションが１つのオブジェクトを処理するのに要する時間は、例えば、そのコンフィギュレーションにて１画素のデータを処理するのに要する時間（レイテンシ）に当該オブジェクトのデータサイズを乗算し、ＤＲＰ１３２の動作クロックの周波数で除することにより計算される。
【００３８】
「データサイズ」は、例えば当該オブジェクトをビットマップに展開した時の画像のデータサイズを示す値である。印刷文書データ２００内のオブジェクトについての記述には、当該オブジェクトのデータサイズの情報が含まれている（例えば画像オブジェクト（後述）の場合）ので、その情報をオブジェクトテーブルに登録すればよい。また、画像オブジェクト以外の種類のオブジェクトについては、ＰＤＬの解釈の際などに、ビットマップ画像に展開した時のデータサイズを求めるようにしてもよい。
【００３９】
「推定所要時間」は、「特定の画像処理」のための各コンフィギュレーションをＤＲＰ１３２に順にリコンフィギュレーション（再構成）し、当該オブジェクトをそれら各コンフィギュレーションで順に処理していくのに要する時間なので、当該オブジェクトについての個々のコンフィギュレーションの所要時間を総和することにより求められる。
【００４０】
なお、オブジェクトは、ページ内に配置されるひとかたまりの画像を表すデータのことであり、例えば画像オブジェクト（写真などの連続調画像を表すビットマップ画像や圧縮画像など）、グラフィックオブジェクト（ベクター表現される図形など）、フォントオブジェクト、背景オブジェクト（背景の画像パターンを表す）などがある。特に、画像オブジェクトは、他のオブジェクトと比べてデータ量が多い場合が多く、また伸張、ハーフトーン処理、再圧縮などといった多くの処理を必要とする場合も多いので、ＲＩＰの際の画像処理の負荷が大きい。そこで、本実施形態では、このような負荷の大きい画像処理を、ＲＩＰアクセラレータ１３０にハードウエア処理させることにしている。なお、ここでは、ＲＩＰアクセラレータ１３０に依頼する画像処理の対象となる種類のオブジェクトとして、画像オブジェクトを例示したが、他の種類のオブジェクトを対象に加えるようにしてももちろんよい。
【００４１】
図２に例示するオブジェクトテーブルには、ＲＩＰアクセラレータ１３０に依頼する画像処理の対象となる種類の各オブジェクトについての情報が登録される。言い換えれば、印刷文書データ２００の各ページに含まれるオブジェクトであっても、ＲＩＰアクセラレータ１３０に依頼する対象でない種類のオブジェクトについては、オブジェクトテーブルには情報が登録されない。
【００４２】
オブジェクトテーブルの「閾値サイズ比較」欄は、当該オブジェクトのデータサイズがあらかじめ定めた閾値より大きければ「１」、小さければ「０」とする二値のフラグデータである。ＲＩＰアクセラレータ１３０に依頼する画像処理の対象となる種類のオブジェクトであっても、データサイズが小さい場合は、ＲＩＰアクセラレータ１３０への依頼等の処理オーバーヘッドを考慮すると、ホストＣＰＵ１００がソフトウエア処理した方が早いので、閾値以下のオブジェクト（「閾値サイズ比較」＝「０」）については、ＲＩＰアクセラレータ１３０には処理を依頼しない。
【００４３】
ＤＲＰステータスレジスタ１１２は、ＲＩＰアクセラレータ１３０内の各ＤＲＰ１３２の現在のステータス（使用状態）を保持するレジスタである。図３に、ＤＲＰステータスレジスタ１１２が保持するデータの一例を示す。この例では、レジスタ１１２は、サーバ（ＲＩＰアクセラレータ１３０のこと）ごとに、そのサーバが搭載する各ＤＲＰの情報を保持している。個々のＤＲＰについての情報には、当該ＤＲＰの識別番号（「ＤＲＰ＃」）、ステータス、及び当該ＤＲＰの優先度（「ジョブ優先度」）が含まれる。ステータスは、当該ＤＲＰが現在「使用中」（「Ｆｕｌｌ」。ホストＣＰＵ１００から依頼された画像処理又は他の処理を実行中であること）か、「空き」（「Ｒｅａｄｙ」。ホストＣＰＵ１００から依頼された処理を実行しておらず、依頼を受け付け可能な状態であること）かのいずれかの値を持つ。ホストＣＰＵ１００は、「空き」のＤＲＰ１３２に対して処理を割り当てると、そのＤＲＰ１３２のステータスを「使用中」に変更し、そのＤＲＰ１３２からその処理の完了通知を受けると、ステータスを「空き」に戻す。「ジョブ優先度」は、ジョブ（画像処理のこと）の割当に対する当該ＤＲＰの優先順位を示す値である。動的スケジューラ１１０は、あるページ又はオブジェクトの画像処理を割り当てる場合、ジョブ優先度の値が最も小さいＤＲＰ１３２に割り当てる。動的スケジューラ１１０は、あるＤＲＰに画像処理を割り当てると、そのＤＲＰのステータスを「使用中」に変更すると共に、ジョブ優先度の値を最下位の値に変更し、他のＤＲＰのジョブ優先度の値を１順位ずつ繰り上げる。
【００４４】
なお、図３は、ＤＲＰ１３２を５つ備えるＲＩＰアクセラレータ１３０についての例であるが、ＲＩＰアクセラレータ１３０が備えるＤＲＰ１３２の数はこれに限られるものではない。
【００４５】
動的スケジューラ１１０は、印刷文書データ２００に含まれる、依頼対象の種類であり且つ位置レベル比較の値が「１」である各オブジェクトの画像処理を各ＤＲＰ１３２に割り当てるスケジューリング処理を実行する。ここで、動的スケジューラ１１０は、オブジェクトの割当を、ページ単位（すなわち１ページ内にあるオブジェクト群をまとめて１つのＤＲＰ１３２に割当）及びオブジェクト単位（個々のオブジェクトごとに１つのＤＲＰ１３２に割当）で行う機能を備える。
【００４６】
また、動的スケジューラ１１０は、印刷文書データ２００を、先頭ページから順に、「特定の画像処理」に割当可能なＤＲＰ１３２の個数Ｎと同じ数のページからなる「セクション」に分割する。そして、セクションごとに、ＤＲＰ１３２群への画像処理の割当をページ単位とするかオブジェクト単位とするかを動的に切り替える。
【００４７】
セクションをページ単位で各ＤＲＰ１３２に割り当てる場合、セクション内のページ数とＤＲＰ１３２の数とは同じＮなので、１セクションの処理では、１つのＤＲＰ１３２に対して１ページが割り当てられる。すなわち、この場合、Ｎ個のＤＲＰ１３２がＮページを並列処理することになる。この方式を、「ページ並列方式」と呼ぶ。セクションを単位としているので、Ｎページのうち最も処理に時間を要するページ（すなわちデータサイズが最大のページ）の処理を割り当てられたＤＲＰ１３２が処理を終えるまでは、他のＤＲＰ１３２には、仮に割り当てられたページの処理を終えていたとしても、次のページ又はオブジェクトの割当は行わない。
【００４８】
また、セクションをオブジェクト単位で各ＤＲＰ１３２に割り当てる場合、本実施形態では、ページごとに、そのページ内の各オブジェクトを各ＤＲＰ１３２に割り当てる。ここで、本実施形態では、１ページに含まれるオブジェクト（依頼対象の種類であり、且つデータサイズが閾値以上のもの。以下、特に断りのない限り、「オブジェクト」とはこのような条件を満たすオブジェクトのことを言うものとする）の数がＮ個未満であっても、空いたＤＲＰ１３２に対して別のページのオブジェクトを割り当てることはしない。すなわち、Ｎ個のＤＲＰ１３２が、異なるページ内のオブジェクトを処理することはない。Ｎ個のＤＲＰ１３２がセクション内の１ページの画像処理を終えるごとに、次のページの各オブジェクトが各ＤＲＰ１３２に割り当てられる。１ページ内のオブジェクトの数がＮより多い場合、最初のＮ個のオブジェクトがＮ個のＤＲＰ１３２に割り当てられた後、画像処理を終えたＤＲＰ１３２から順に、残りのオブジェクトを割り当てる。以上に説明した割当により、ＲＩＰアクセラレータ１３０上のＤＲＰ１３２は、最大Ｎ個が並列して動作することになる。このような並列方式を「ページごとオブジェクト並列方式」と呼ぶことにする。
【００４９】
動的スケジューラ１１０は、オブジェクト・ページ情報抽出部１０８が作成したオブジェクトテーブルを参照して、セクションごとに、印刷文書データ内のオブジェクト群のＤＲＰ１３２への割当方式を、ページ並列方式及びページごとオブジェクト並列方式の間で切り替える。
【００５０】
ＤＲＰ制御部１０６は、この動的スケジューラ１１０がセクションごとに決定した並列方式に従い、ページ単位、又はページごとにオブジェクト単位で、各ＤＲＰに処理を割り当てていく。例えば、ＤＲＰ１３２にページ単位で処理を割り当てる場合は、当該ＤＲＰ１３２にページの識別情報（これは当該ページの画像データの格納アドレスを示す情報でもよい）を通知する。この通知を受けたＤＲＰ１３２は、そのページの識別情報を用いて例えばメモリ１２０内にある当該ページの各オブジェクトの画像データを取得し、それら各オブジェクトのデータに対して順に画像処理を行う。また、ＤＲＰ１３２にオブジェクト単位で処理を割り当てる場合は、当該ＤＲＰ１３２にオブジェクトの識別情報を通知する。この通知を受けたＤＲＰ１３２は、そのオブジェクトの識別情報を用いて例えばメモリ１２０内にある当該オブジェクトの画像データを取得し、画像処理を行う。以上は、ＤＲＰ１３２が処理対象のオブジェクトの画像データを能動的に取得しに行く方式（プル方式）の場合の例であったが、この代わりに、ＤＲＰ制御部１０６がＤＲＰ１３２に対して割り当てるページ又はオブジェクトの画像データを転送する方式（プッシュ方式）を用いてももちろんよい。
【００５１】
次に、図４を参照して、ホストＣＰＵ１００（特に動的スケジューラ１１０及びＤＲＰ制御部１０６）が行う全体的な処理手順の例を説明する。
【００５２】
この手順では、動的スケジューラ１１０は、印刷文書データの先頭ページから順に、１セクション（Ｎページ）を分割して切り出し（Ｓ１０）、その１セクションについての並列方式、すなわちページ並列方式とページごとオブジェクト並列方式とのうちのいずれを採用するか、を決定する（Ｓ１２）。並列方式が決定されると、ＤＲＰ制御部１０６がその並列方式に従って各ＤＲＰ１３２にページ又はオブジェクトを割り当て、並列処理を行わせる（Ｓ１４）。各ＤＲＰ１３２は、割り当てられたページ内の各オブジェクト（ページ並列方式の場合）、又は割り当てられたオブジェクト（ページごとオブジェクト並列方式の場合）の画像データに対して「特定の画像処理」を実行し、その処理結果をホストＣＰＵ１００に返す。ホストＣＰＵ１００は、それら各ＤＲＰ１３２による各オブジェクトの処理結果を、ソフトウエア処理により、対応するページの画像に組み込むことにより、各ページの画像データを生成する（Ｓ１６）。生成されたページの画像データは、（必要ならばいったん記憶装置にバッファされた後）プリントエンジン１４０に供給される。
【００５３】
Ｓ１４でのハードウエア（ＨＷ）処理と並行して、動的スケジューラ１１０は、印刷文書データの最後のページに達しているかを判定し（Ｓ１８）、達していなければ、印刷文書データから次のセクションを切り出し（Ｓ１０）、そのセクションに適用する並列方式を決定する（Ｓ１２）。このように、この実施形態では、ＲＩＰアクセラレータ１３０が画像処理を行っている間、ホストＣＰＵ１００もコンカレントに、次のセクションの準備などの処理を行っている。
【００５４】
セクション分割処理（Ｓ１０）の詳細な手順の例を、図５に示す。この例では、まず動的スケジューラ１１０は、制御変数S_PAGEを０に初期化する（Ｓ２０）。S_PAGEは、今回のセクションに組み入れられたページ数を表す。また、動的スケジューラ１１０は、ＲＩＰアクセラレータ１３０内のＤＲＰ１３２のうち、「特定の画像処理」のために使用可能なものの数を取得する（Ｓ２２）。この数は、ＲＩＰアクセラレータ１３０内のＤＲＰ１３２の総数から、「特定の画像処理」以外の処理に予約されているものの数を減算したものである。この数（又は「特定の画像処理」以外の処理に予約されているものの数）は、図示しない不揮発性の記憶装置に設定情報としてあらかじめ設定されており、Ｓ２２ではその設定を参照する。次に、ＰＤＬ解釈部１０２が印刷文書データを１ページ分ずつ解釈するごとに（Ｓ２４）、そのページ内の各オブジェクト（ＲＩＰアクセラレータ１３０に処理を依頼する種類のもの）の情報をオブジェクトテーブル（図２参照）に登録する（Ｓ２６）。ここで、当該ページに、ＲＩＰアクセラレータ１３０に処理を依頼する種類かつデータサイズが閾値以上（すなわち「閾値サイズ比較」が「１」）のオブジェクトが１つもなければ（Ｓ２８の判定結果がＹｅｓ）、印刷文書データの最終ページまで達しているかどうかを判定し（Ｓ３４）、最終ページまで達していなければ、動的スケジューラ１１０は、Ｓ２４に戻り、次のページの処理を進める。
【００５５】
Ｓ２８で、ＲＩＰアクセラレータ１３０に処理を依頼する種類かつデータサイズが閾値以上のオブジェクトが当該ページに１以上あると判定された場合は、制御変数S_PAGEに１を加え（Ｓ３０）、１を加えた後のS_PAGEがＳ２２で取得したＤＲＰの使用可能数と等しくなったかどうかを判定する（Ｓ３２）。この判定の結果がＹｅｓの場合、使用可能なＤＲＰ１３２の数Ｎと同数のページ（ただし、ＤＲＰ１３２への依頼の対象となるオブジェクトを有するものに限る）がカウントされたことになり、それらＮページを１セクションとして処理を終了する。Ｓ３２の判定結果がＮｏの場合は、印刷文書データの最終ページまで達しているかどうかを判定し（Ｓ３４）、最終ページまで達していなければ、動的スケジューラ１１０は、Ｓ２４に戻り、次のページの処理を進める。Ｓ３４で最終ページに達したと判定された場合、セクションに組み入れられページ数はＮ未満であるが、それらＮ未満のページを１セクションとし、処理を終了する。
【００５６】
次に、並列方式決定処理（Ｓ１２）の全体的な処理手順の一例を、図６を参照して説明する。この手順では、動的スケジューラ１１０は、Ｓ１０で求められたセクションについて、当該セクションをページ並列方式で各ＤＲＰ１３２に並列処理させた場合に、当該セクションの画像処理の開始から全ページの画像処理が完了するまでに要する所要時間Ｔ1を推定する（Ｓ４０）。また、Ｓ４０では、当該セクション内でページ順が後のページの画像処理の完了が、前のページの画像処理の完了を追い越す（すなわち後のページが前のページよりも早く完了する）場合の追い越し時間の最大値Δｔmaxを求める。例えば、当該セクション内の２ページ目以降のページごとに、当該ページよりもページ順が前の各ページがそれぞれ割当先のＤＲＰ１３２で画像処理されるのに要する推定所要時間から、当該ページの推定所要時間を減算し、その減算結果の最大値を当該ページの最大追い越し時間とする。そして、２〜Ｎページの各ページについての最大追い越し時間の中の最大値を、Δｔmaxとする。Δｔmaxが負の値であれば、当該ページについては、ページ順が後のページの処理完了が前のページの処理完了を追い越すことはない。なお、このＳ４０の処理の詳細な例は、後で図７を参照して説明する。
【００５７】
また、動的スケジューラ１１０は、当該セクションをページごとオブジェクト並列方式で各ＤＲＰ１３２に並列処理させた場合に、当該セクションの画像処理の開始から全ページの画像処理が完了するまでに要する所要時間Ｔ2を推定する（Ｓ４２）。このＳ４２の処理の詳細な例は、後で図８を参照して説明する。
【００５８】
なお、Ｓ４０とＳ４２の処理はいずれを先に実行してもよい。
【００５９】
次に、動的スケジューラ１１０は、Ｓ４０で求められた最大追い越し時間Δｔmaxが、あらかじめ定められた正の閾値Ｔh_overpass以上であるかどうかを判定する（Ｓ４４）。閾値Ｔh_overpassは、セクション内でのページの追い越しの許容量を示す。セクション内の後のページの画像処理が前のページよりも、この閾値以上早く完了する場合、ページ順に印刷するためには、後のページを大きく待たせる必要があり、円滑な処理の妨げとなる。そこで、本実施形態では、Ｓ４４でΔｔmaxがＴh_overpass以上であると判定された場合には、セクションの処理に要する所要時間Ｔ1、Ｔ2の大小関係によらず、強制的にページごとオブジェクト並列方式を採用する（Ｓ４６）。これにより、ページ並列方式を用いた場合の過大な追い越しが防止される。
【００６０】
Ｓ４４でΔｔmaxがＴh_overpass未満であると判定された場合には、動的スケジューラ１１０は、各並列方式でセクションの処理に要する所要時間Ｔ1とＴ2とを比較し（Ｓ４８）、所要時間が短い方の並列方式を採用する。すなわち、Ｔ1がＴ2以上であれば、Ｔ2に対応するページごとオブジェクト並列方式を採用し（Ｓ４６）、そうでなければＴ1に対応するページ並列方式を採用する（Ｓ５０）。
【００６１】
次に、Ｓ４０の詳細な処理手順の例を、図７を参照して説明する。この例では、まず制御変数ｎを１に、Ｔ1を０に、それぞれ初期化する（Ｓ６０）。ｎはセクション内のページ番号を示す。次に、当該セクションのｎページ目に含まれる全オブジェクトの画像処理に要する推定所要時間を合計する（Ｓ６２）。各ページ内の各オブジェクトの画像処理に要する推定所要時間は、図２に例示したオブジェクトテーブルから求めることができるので、Ｓ６２では、それら各オブジェクトの推定所要時間を合計すればよい。そして、その合計値Ｔ_tmpがＴ1より大きければ（Ｓ６４の判定結果がＹｅｓ）、変数Ｔ1にＴ_tmpの値を代入する（Ｓ６６）。合計値Ｔ_tmpがＴ1以下であれば（Ｓ６４の判定結果がＮｏ）、Ｓ６６はスキップする。次に、S_PAGEからｎを減算（Ｓ６８）した結果であるS_Pが０に達したかどうか（すなわちセクションの全ページ数S_PAGE分の検査を終えたか否か）を判定し（Ｓ７０）、達していなければ、ｎを１だけ増やし（Ｓ７２）、次のページについてＳ６２以下の処理を繰り返す。ページ並列方式の場合、Ｎ個のＤＲＰ１３２にそれぞれ１ページずつ割り当てるので、当該セクション全体の処理に要する所要時間は、当該セクションの中でデータサイズが最大のページの推定所要時間に等しい。Ｓ６２からＳ７２のループをセクションの全ページについて繰り返すことで、変数Ｔ1には、そのセクション内で最も処理に長い時間を要するページの推定所要時間が代入されていることになり、これが当該セクションについての推定所要時間となる。
【００６２】
Ｓ７０でS_Pが０に達したと判定した場合、当該セクションの全てのページが調べ終わったことになる。この場合、動的スケジューラ１１０は、これまでのループで求めた当該セクション内の各ページの推定所要時間から、最大追い越し時間Δｔmaxを計算し（Ｓ７４）、この最大追い越し時間Δｔmaxと当該セクションの推定所要時間Ｔ1の値を出力する（Ｓ７６）。
【００６３】
次に、Ｓ４２の詳細な処理手順の例を、図８を参照して説明する。この例では、動的スケジューラ１１０は、まず制御変数ｎを１に、ｍを１に、Ｔ2を０に、それぞれ初期化する（Ｓ８０）。ｎはセクション内のページ番号を、ｍは１ページ内のオブジェクトの番号を、それぞれ示す。また、図示は省略したが、Ｓ８０では、ページごと最大処理時間Ｔ_2_nを０に初期化する。ページごと最大処理時間Ｔ_2_nは、ｎ番目のページ内のオブジェクト群をＮ個のＤＲＰ１３２で並列処理した場合に、もっとも長く処理を行うＤＲＰ１３２の処理時間を表す変数である。次に、各ＤＲＰカウンタDRP_Num_tを０に初期化する（Ｓ８２）。
【００６４】
各ＤＲＰカウンタDRP_Num_tは、ＲＩＰアクセラレータ１３０内のＮ個のＤＲＰ１３２のうちのNum番目のもの（DRP_Num）について割り当てられる０個以上のオブジェクトの推定所要時間の合計を保持するための変数である。次に動的スケジューラ１１０は、ＤＲＰカウンタDRP_num_tの値が最小であるＤＲＰ１３２（このＤＲＰがDRP_numであるとする）を、第ｎページの第ｍ番目のオブジェクトの割当対象に選択する（Ｓ８４）。そして、第ｎページの第ｍ番目のオブジェクトの推定所要時間Ｔn_mをオブジェクトテーブル（図２参照）から読み出し（Ｓ８６）、このＴn_mをＳ８４で選択したＤＲＰ１３２（DRP_num）の合計処理時間DRP_num_tに加算する（Ｓ８８）。そして、この加算後のDRP_num_tがＴ_2_nより大きくなった場合（Ｓ９０の判定結果がＹｅｓ）、DRP_num_tの値をＴ_2_nに代入する（Ｓ９２）。すなわち、Ｓ８８の加算により、DRP_numの合計処理時間がＮ個のＤＲＰ１３２の中で最長になったので、Ｔ_2_nの値をこの最長の処理時間に置き換えるのである。一方、加算後のDRP_num_tがＴ_2_n以下の場合（Ｓ９０の判定結果がＮｏ）、Ｓ９２はスキップする。そして、オブジェクトテーブルにある第ｎページの最後のオブジェクトまで処理が完了したかどうかを判定し（Ｓ９４）、完了していなければ、オブジェクト番号ｍを１つ増やし（Ｓ９６）、次のページを対象としてＳ８４以下の処理を繰り返す。
【００６５】
Ｓ９４で、第ｎページの最後のオブジェクトまで処理が完了したと判定した場合、その時点でのＴ_2_nの値を、当該セクションの第ｎページの並列処理に要する時間として保持する（Ｓ９８）。そして、当該セクションの全ページについての処理が完了したかどうかを判定し（Ｓ１００）、まだ未処理のページがあれば、ページ番号ｎを１増やして（Ｓ１０２）、次のページについて、Ｓ８２以下の処理を繰り返す。そして、Ｓ１００でセクションの全ページの処理が完了したと判定すると、動的スケジューラ１１０は、保持している各ページの処理時間Ｔ_2_nを、全ページにわたって総和し、この総和をＴ2として出力する（Ｓ１０４）。
【００６６】
以上、動的スケジューラ１１０を含むホストＣＰＵ１００の処理手順の例を、図４〜図８のフローチャートを参照して説明したが、それらフローチャートに示した手順はあくまで一例に過ぎない。同様の処理結果が得られる手順であれば、別の手順を用いてももちろんよい。
【００６７】
次に、図９及び図１０を参照して、ページ並列方式及びページごとオブジェクト並列方式による画像処理の進行の仕方を説明する。図９及び図１０は、いずれも横方向が時間の流れを示し、時間は左から右に流れるとする。また、これらはいずれもＤＲＰが４つ並列処理を行う場合の例を示す。
【００６８】
図９は、ページ並列方式での画像処理の進行の様子を示す。まず、左から右へと時間の流れに沿って順に説明していくと、印刷文書データのＲＩＰ処理を開始すると、まずホストＣＰＵ１００（動的スケジューラ１１０）は、ソフトウエア（ＳＷ）処理により、セクション分割Ａ（図４のＳ１０、図５参照）の処理にてＰＤＬ解釈、オブジェクトテーブルの作成、第１セクションの切り出しを行う。この例では、ＤＲＰが４個なので、第１〜４ページが１セクションとして切り出される。そして、分割したセクションについて並列方式決定処理Ｂ（図４のＳ１２、図６参照）を行う。この例では、並列方式がページ並列と決定されたとする。この結果を受けて、ＤＲＰ制御部１０６は、４つのＤＲＰ１〜４に対し、この順に、第１〜４ページの画像処理を割り当てる。ＤＲＰ１〜４は、割り当てられたページを並列処理する。このＤＲＰ１〜４によるハードウエア（ＨＷ）での画像処理と並行して、ホストＣＰＵ１００は、セクション分割Ａを進めて第２セクションを切り出し、この第２セクションについて並列方式の判定Ｂを行う。
【００６９】
印刷文書データ内の全セクションの並列方式をすべて決定した後で、ＤＲＰ１〜４による並列処理を開始する方式も考えられるが、この方式では、全セクションの並列方式が決定されるまで、画像処理及び印刷は開始されない。これに対し、本実施形態では、図９に例示したように１セクションずつ並列方式を決定しているので、全セクションの並列方式の決定を待たなくても、第１セクションの並列方式が決定されれば、画像処理が開始される。また、本実施形態では、第２セクション以降の並列方式は、直前のセクションについてＤＲＰが画像処理を行っている間に決定されるので、並列方式の決定のための処理に要する時間が実質的に隠蔽される。
【００７０】
図９の例では、ページ内のオブジェクト群のデータサイズが、１，４，３，２ページの順に少ないので、ＤＲＰによる画像処理はその順番で完了する。この例では、第３頁の処理完了は第２頁の処理完了を追い越し、第４ページの処理完了は第２及び第３ページの処理完了を追い越す。特に第２ページに対する第４ページの追い越し時間が当該セクションでの最大追い越し量Δｔmaxとなる。この例では、このΔｔmaxは、追い越し許容量である閾値以下であるとする。ホストＣＰＵ１００は、各ＤＲＰでの画像処理が完了した順番に、それら画像処理の結果のデータを用いて各ページの画像を生成し、いったんバッファに蓄積し、ページ順にプリントエンジン１４０に供給する。
【００７１】
図１０は、ページごとオブジェクト並列方式での画像処理の進行の様子を示す。この例では、印刷文書データのＲＩＰ処理を開始すると、まずホストＣＰＵ１００（動的スケジューラ１１０）は、ソフトウエア（ＳＷ）処理により、セクション分割Ａにより第１セクションの切り出しを行い、この例では、ＤＲＰの個数に対応した第１〜４ページが１セクションとして切り出される。そして、分割したセクションについての並列方式決定処理Ｂにより、この例ではページごとオブジェクト並列方式が採用される。これに応じて、ＤＲＰ制御部１０６は、まず４つのＤＲＰ１〜４に対し、第１ページの各オブジェクトを順に割り当てていく。図では、横長の矩形ボックスが１つのオブジェクトを示しており、図示例では第１ページは５個のオブジェクトから構成されている。これら５個のオブジェクトが先頭から順にまずＤＲＰ１〜４に１つずつ割り当てられ、ＤＲＰ１〜４はそれら割り当てられたオブジェクトを並列処理する。１つ目のオブジェクトの画像処理を最も早く終えたＤＲＰ４に対し、更に残りの１個のオブジェクトが割り当てられる。図示例では、第１ページの処理に要した時間は、ＤＲＰ２が最もサイズの大きいオブジェクトを処理するのに要した時間に等しい。
【００７２】
ＤＲＰによる第１ページの画像処理が完了すると、ホストＣＰＵ１００は、その処理結果を用いて第１ページの画像データを構成し、プリントエンジン１４０に供給する。このホストＣＰＵ１００によるソフトウエア処理でのページ画像の構成と並行して、ＤＲＰ制御部１０６は第２ページの各オブジェクトをＤＲＰ１〜４に割り当てて並列処理させる。ＤＲＰによる第２ページの画像処理が完了すると、ホストＣＰＵ１００は、その処理結果を用いて第２ページの画像データを構成し、プリントエンジン１４０に供給する。このような処理が、更に、第１セクションの第３及び４ページについても行われる。
【００７３】
このＤＲＰ１〜４によるハードウエア（ＨＷ）での画像処理と並行して、ホストＣＰＵ１００は、第２セクションのためのセクション分割Ａと並列方式判定Ｂを行う。ＤＲＰによる画像処理は、ソフトウエアによる処理よりは高速であるが、処理する画像データの量が極めて多いため、セクション分割Ａ及び並列方式判定Ｂのソフトウエア処理よりもはるかに長い時間がかかる。このため、セクション分割Ａと並列方式判定Ｂは、その長いハードウエアでの画像処理の間の、ごく一部の期間に行えばよい。図１０の例では、第２ページと第３ページのページ画像構成処理同士の間で、セクション分割Ａと並列方式判定Ｂが行われているが、これは一例に過ぎない。
【００７４】
以上のようにして、第１セクションの第４ページまでの画像処理が完了すると、ＤＲＰ制御部１０６は、第２セクションについての並列方式の判定結果に従い、第２セクションの割当を行う。
【００７５】
次に、印刷文書データの具体例を挙げて、セクションに対する並列方式がどのように判定されるのかを説明する。この例では、印刷文書データが、図１１に示すような８ページから構成されているものとする。ページ１〜８の各ページ内の番号付きの矩形ボックスが、当該ページ内のオブジェクトを示す。例えば、ページ１は４つ、ページ２は１つのオブジェクトを有している。ページ７，８はオブジェクトを１つも持たない（例えば、画像処理の必要がないテキストのみのページ）。図１２は、この印刷文書データについてのオブジェクトテーブルのデータ内容を示す。この例では、全ページの全オブジェクトが、「閾値サイズ比較」（図２参照）が「１」、すなわちＤＲＰによる画像処理の対象、である（ただし、ページ７，８はオブジェクトを含まない）。
【００７６】
このような印刷文書データを、４個のＤＲＰ１〜４で並列処理することを考える。この場合、常にページ並列方式を採用したとすると、図１３Ａに示すように、まずページ１〜４のセクションについては、オブジェクトのデータサイズの合計が最大であるページ１（データサイズ合計４７０Ｋｂｙｔｅ）の処理所要時間（４７０Ｋ相当）を要する。次のページ５〜６（ページ７，８はオブジェクトがないので対象外）からなるセクションについては、ＤＲＰによる画像処理に、データサイズ合計が最大のページ５の所要時間（５９０Ｋ相当）を要する。したがって、ページ１〜８全体では、画像処理に、４７０Ｋ＋５９０Ｋ＝１０６０Ｋ相当の時間を要する。
【００７７】
また、常にページごとオブジェクト並列方式を採用したとすると、図１３Ｂに示すように、まずページ１については、最大サイズのオブジェクト（３００Ｋｂｙｔｅ）に相当する処理時間を要する。ページ２には、オブジェクトが１つしかないので、全体としてそのオブジェクトのサイズ（７０Ｋｂｙｔｅ）に応じた処理時間を要する。なお、ページ２の処理の間は、そのオブジェクトを処理しているＤＲＰ１以外の各ＤＲＰ２〜４は遊休状態である。同様の遊休状態は、ページ３，４，６でも生じる。８ページ全体での画像処理の所要時間は、各ページについての所要時間の合計であり、この例では１１１０Ｋ相当の時間となる。
【００７８】
以上に例示した常に同一の並列方式を用いる場合と比べて、セクションごとに適応的に並列方式を選択する本実施形態の制御では、画像処理の流れは図１３Ｃに示すようになる。この例では、ページ１〜４からなる第１セクションに対してはページ並列方式が選択され、ページ５〜６からなる第２セクションに対してはページごとオブジェクト並列方式が選択される。この場合、第１セクションの所要時間は４７０Ｋ相当、第２セクションの所要時間は２４０Ｋ相当なので、８ページ全体についての所要時間は７１０Ｋ相当となる。仮に１Ｋｂｙｔｅ当たりのＤＲＰの処理所要時間が１ｍｓであるとすると、この実施形態の適応選択方式は、常にページ並列方式を採用する場合よりも３５０ｍｓ、常にページごとオブジェクト並列方式を採用する場合よりも４００ｍｓ、所要時間が短い。
【００７９】
以上に説明したように、この実施形態では、印刷文書データを、ＤＲＰの個数と同じページ数ずつ１つのセクションとし、このセクションごとに並列方式を選択する。ここで、ＤＲＰに画像処理を依頼する対象となるオブジェクトを１つも持たないページがある場合、そのページはセクションに入れず、その後に続くそのような対象のオブジェクトを含むページをセクションに入れる。したがって、セクション内の全てのページが、対象のオブジェクトを持つこととなる。セクションの並列方式としてページ並列が選択された場合は、各ＤＲＰは必ず１ページの画像処理を担当するので、完全に遊休状態となるＤＲＰは存在しない。また、ページごとオブジェクト並列方式が選択されるのは、ページ並列方式よりもセクション全体での画像処理の所要時間が短い場合なので、この場合、ページごとでは仮に遊休状態となるＤＲＰが存在したとしても、セクション全体では、ページ並列方式よりも処理が高速となる。
【００８０】
なお、ＦＰＯＴ（First Print of Time：印刷開始指示から１ページ目が出力されるまでの時間）を短くするために、１ページ目については必ずオブジェクト並列方式を採用し、２ページ目以降について、上記実施形態に示したセクションごとの適応的選択を行うようにしてもよい。また、１ページ目を必ずオブジェクト並列方式とするのではなく、１ページ目が１つしかオブジェクトを含まない場合には１ページ目から上記実施形態の適応的選択を行い、１ページ目が複数のオブジェクト（ＤＲＰへの依頼対象のものに限る）を有する場合には、１ページ目をオブジェクト並列方式とし、２ページ目以降に本実施形態の方式を用いてもよい。
【００８１】
また、印刷文書データの総ページ数がＤＲＰの個数よりも少ない場合は、自動的にオブジェクト並列方式を選択するようにしてもよい。
【００８２】
以上の例では、ホストＣＰＵ１００から依頼される特定の画像処理を担当するハードウエア画像処理回路としてＤＲＰ１３２を例示したが、これは一例に過ぎない。ＤＲＰ１３２の代わりに、特定の画像処理を構成する各処理のためのハードウエア論理回路を集積した集積回路（ＡＳＩＣ（特定用途向けＩＣ）やＬＳＩ（Large Scale Integration）など）をＮ個並列に設けてもよい。
【符号の説明】
【００８３】
１００  ホストＣＰＵ、１０２  ＰＤＬ解釈部、１０４  メモリ・ＩＯ制御部、１０６  ＤＲＰ制御部、１０８  オブジェクト・ページ情報抽出部、１１０  動的スケジューラ、１１２  ＤＲＰステータスレジスタ、１２０  メモリ、１３０  ＲＩＰアクセラレータ、１３２−１〜１３２−Ｎ  ＤＲＰ、１４０  プリントエンジン。
【図１】
0005655392.tif 000002
【図３】
0005655392.tif 000003
【図４】
0005655392.tif 000004
【図５】
0005655392.tif 000005
【図６】
0005655392.tif 000006
【図７】
0005655392.tif 000007
【図８】
0005655392.tif 000008
【図９】
0005655392.tif 000009
【図１０】
0005655392.tif 000010
【図２】
0005655392.tif 000011
【図１１】
0005655392.tif 000012
【図１２】
0005655392.tif 000013
【図１３Ａ】
0005655392.tif 000014
【図１３Ｂ】
0005655392.tif 000015
【図１３Ｃ】
0005655392.tif 000016