(57)【要約】【課題】  一連の画像データを複数の部分に分割して並列に画像処理する場合に、画像処理に利用できるメモリの容量が限られる場合であっても、各部分の処理結果を効率よく後段の処理に送れるようにする。【解決手段】  メモリ判断部２１３が、画像処理エンジン２１６による画像処理後の画情報である処理後データ２４０を記憶する処理後データ保存領域２２３の容量が所定の基準以上あると判断した場合に、メモリ制御部２１４が、複数の画像処理エンジン２１６のうち画像処理を実行中でないもののいずれかに対し、次のページのジョブデータ２３１に対する画像処理の開始指示を行うようにした。各画像処理エンジン２１６は、１ページのジョブデータ２３１に対する画像処理が終了した後、上記開始指示を受けてから、処理後データ保存領域２２３に必要な領域を確保して、次のページのジョブデータ２３１の画像処理を開始する。【選択図】    図３
2016178536.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像処理部を備え、その各画像処理部が並列にそれぞれ異なる画情報に画像処理を施す画像処理手段と、
処理対象の一連の画情報を複数の部分に分割し、該部分毎に前記複数の画像処理部のいずれかを選択してその画像処理部へ供給する供給手段と、
前記画像処理手段による画像処理後の画情報を記憶するメモリの容量が所定の基準以上あるか否か判断する判断手段と、
前記判断手段が前記メモリの容量が前記所定の基準以上あると判断した場合に、前記複数の画像処理部のうち画像処理を実行中でない画像処理部のいずれかに対し、前記供給手段から該画像処理部に既に供給されている画情報の部分のうち次の部分に対する画像処理の開始指示を行う指示手段とを備え、
前記各画像処理部は、前記供給手段から該画像処理部に既に供給されている画情報の部分のうち１つの部分の画情報に対する画像処理が終了した後、前記指示手段からの開始指示を受けてから、前記メモリ中に、前記次の部分の画情報について処理後の画情報を記憶させる領域を確保して、該次の部分の画情報に対する画像処理を開始することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記判断手段は、前記判断を行う際に画像処理を開始させる画像処理部を前記複数の画像処理部の中から指定する指定手段を備え、
前記所定の基準は、前記指定手段により指定された前記画像処理部における前記次の部分及び前記複数の部分の中で前記次の部分よりも前の未処理の部分の全てについて、画像処理後の画情報を記憶できるだけの容量があること、であることを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって、
前記各画像処理部は、前記１つの部分の画情報に対する画像処理が完了した時にその旨を前記判断手段に通知し、
前記判断手段は、いずれかの画像処理部から前記通知を受けたことに応じて前記判断を行うことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記判断を行う際に前記指定手段が指定する画像処理部及び前記判断手段の判断結果に応じた前記指示手段による開始指示の送信先は、該判断のトリガとなった通知を送信してきた画像処理部であることを特徴とする画像処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の画像処理装置であって、
前記供給手段は、前記複数の画像処理部のうち、未処理の画情報を所定部分数以上保持する画像処理部には、それ以上の画情報を供給しないことを特徴とする画像処理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の画像処理装置であって、
前記画情報の分割を、１ページ単位で行うことを特徴とする画像処理装置。
【請求項７】
複数の画像処理部を備え、その各画像処理部が並列にそれぞれ異なる画情報に画像処理を施す画像処理手段を備えるコンピュータを、
請求項１乃至６のいずれか一項に記載の画像処理装置として機能させるためのプログラム。
【請求項８】
並列にそれぞれ異なる画情報に画像処理を施す複数の画像処理部による画像処理を制御する制御方法であって、
処理対象の一連の画情報を複数の部分に分割し、該部分毎に前記複数の画像処理部のいずれかを選択してその画像処理部へ供給する供給手順と、
前記複数の画像処理部による画像処理後の画情報を記憶するメモリの容量が所定の基準以上あるか否か判断する判断手順と、
前記判断手順で前記メモリの容量が前記所定の基準以上あると判断した場合に、前記複数の画像処理部のうち画像処理を実行中でない画像処理部のいずれかに対し、前記供給手段から該画像処理部に既に供給されている画情報の部分のうち次の部分に対する画像処理の開始指示を行う指示手順と、
前記各画像処理部を、前記供給手段から該画像処理部に既に供給されている画情報の部分のうち１つの部分に対する画像処理が終了した後、前記指示手順による開始指示を受けてから、前記メモリ中に、前記次の部分の画情報について処理後の画情報を記憶させる領域を確保して、該次の部分の画情報に対する画像処理を開始するように制御する制御手順とを備える制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置、プログラム及び制御方法に関する。
【背景技術】
【０００２】
従来から、複数のＣＰＵを使用して、複数の画情報に対してＲＩＰ(Raster  image  processing)処理等の画像処理を並列に実行可能な画像処理装置が知られている。
このような画像処理装置に関する技術としては、例えば特許文献１及び特許文献２に記載のものが知られている。
【０００３】
特許文献１には、複数のＰＤＬ(Page  Description  Language)解析部の起動と終了のタイミングを適切に制御することにより、ＰＤＬ解析手段のメモリ使用量を抑制することが記載されている。
特許文献２には、印刷ジョブに含まれる複数ページのＰＤＬを、複数の部分に分割し、その分割数と同じ数の並列ＲＩＰにより同時に処理することにより、処理時間を短縮することが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献２に記載のように１つのジョブに含まれるデータを分割して複数の画像処理部に並列に処理させる場合、処理の仕上がりがページ順になっていないと、後の処理において待ち時間が生じ、並列処理による処理時間短縮の効果が十分活用できないという問題があった。例えば、後のページの処理が先に終わっても、前のページの処理が終わらなければ、前のページの処理が終わるまで、後のページの印刷を待たざるを得ない、等である。
【０００５】
そして、これとは別の例として、画像処理に使用するメモリの容量が限られている場合には、この問題の影響が顕著になる場合がある。例えば、ページ順で後のページの処理を行うためのメモリ領域を先に確保してしまったため、ページ順で前のページの処理を行うためのメモリ領域を確保できず、メモリ領域が空くまで処理の開始を待たざるを得なくなるような場合である。この場合、ページ順で後のページの処理が終わっても、ページ順で前のページについて、メモリ領域を確保でき、さらに画像処理も終了するまで待たなければ、ページ順で後のページの印刷を行うことができない。
特許文献２においては、このような処理順の調整については特に記載がない。また、特許文献１においては、１ジョブのデータを分割して並列に処理すること自体、特段の記載がない。
【０００６】
この発明は、このような問題を解決し、一連の画像データを複数の部分に分割してそれらを複数の画像処理部により並列に画像処理する場合に、画像処理に利用できるメモリの容量が限られる場合であっても、各部分の画像処理結果を効率よく後段の画像処理に送れるようにすることを目的とする。
なお、画像処理は、必ずしもＲＩＰ処理には限らない。
【課題を解決するための手段】
【０００７】
この発明の情報処理装置は、上記の目的を達成するため、画像処理装置において、複数の画像処理部を備え、その各画像処理部が並列にそれぞれ異なる画情報に画像処理を施す画像処理手段と、処理対象の一連の画情報を複数の部分に分割し、その部分毎に上記複数の画像処理部のいずれかを選択してその画像処理部へ供給する供給手段と、上記画像処理手段による画像処理後の画情報を記憶するメモリの容量が所定の基準以上あるか否か判断する判断手段と、上記判断手段が上記メモリの容量が上記所定の基準以上あると判断した場合に、上記複数の画像処理部のうち画像処理を実行中でない画像処理部のいずれかに対し、上記供給手段からその画像処理部に既に供給されている画情報の部分のうち次の部分に対する画像処理の開始指示を行う指示手段とを設け、上記各画像処理部が、上記供給手段からその画像処理部に既に供給されている画情報の部分のうち１つの部分の画情報に対する画像処理が終了した後、上記指示手段からの開始指示を受けてから、上記メモリ中に、上記次の部分の画情報について処理後の画情報を記憶させる領域を確保して、その次の部分の画情報に対する画像処理を開始するようにしたものである。
【発明の効果】
【０００８】
上記構成によれば、一連の画像データを複数の部分に分割してそれらを複数の画像処理部により並列に画像処理する場合に、画像処理に利用できるメモリの容量が限られる場合であっても、各部分の画像処理結果を効率よく後段の画像処理に送れるようにすることができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の画像処理装置の一実施形態である印刷制御装置を含む画像処理システムの構成例を示す図である。
【図２】図１に示した印刷制御装置のハードウェア構成を示す図である。
【図３】図１に示した印刷制御装置が備える、印刷データの生成に関する機能の構成を示す図である。
【図４】図１に示した印刷制御装置が印刷ジョブデータを受信した場合の各部の動作の一例を示す図である。
【図５】その続きの動作を示す図である。
【図６】図５とは別の条件における図４の続きの動作を示す図である。
【図７】印刷ジョブデータ中の各ページの処理状態の例を示す図である。
【図８】処理後データ保存領域の使用状況の例を示す図である。
【図９】その別の例を示す図である。
【図１０】図１に示した印刷制御装置のＣＰＵが実行する処理のフローチャートである。
【図１１】その別の処理のフローチャートである。
【図１２】図１０の処理の変形例を示すフローチャートである。
【図１３】図１０の処理の別の変形例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、この発明の実施形態について、図面を参照しつつ説明する。
図１に、この発明の画像処理装置の一実施形態である印刷制御装置を含む画像処理システムの構成例を示す。
図１に示す画像処理システム１は、３台のホスト装置１００ａ〜１００ｃと、印刷制御装置２００と、印刷装置３００とをそれぞれ接続して構成したものである。装置間の接続は、有線無線を問わず、任意の規格の通信手段を用いて行うことができ、ネットワーク接続でも、ピアツーピア接続でも構わない。
【００１１】
ホスト装置１００ａ〜１００ｃは、印刷装置３００に実行させる印刷ジョブを生成する装置であり、例えば汎用のＰＣ（パーソナルコンピュータ）として構成することができる。ホスト装置の台数は、図では３台としているが、任意である。以後、個体を区別する必要がない場合には、ホスト装置１００の符号を用いて説明する。
【００１２】
印刷制御装置２００は、ホスト装置１００が生成した印刷ジョブに基づき、印刷装置３００に印刷させる各ページの画像及び印刷に用いる設定を示す印刷データを生成し、印刷装置３００へ送信する機能を備える装置である。その機能の詳細については後述する。印刷制御装置２００は、印刷装置３００と１対１対応でも、複数の印刷装置３００と接続されていてもよい。また、ホスト装置１００あるいは印刷装置３００と一体化されていてもよい。
印刷装置３００は、印刷制御装置２００から送信される印刷データに従って用紙に画像を形成する画像形成装置である。
【００１３】
次に、図２に、印刷制御装置２００のハードウェア構成を示す。
図２に示すように、印刷制御装置２００は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ（ハードディスクドライブ）２０４、通信Ｉ／Ｆ（インタフェース）２０５、操作部２０６、表示部２０７を備え、これらをシステムバス２０８により接続した構成としている。
【００１４】
そして、ＣＰＵ２０１が、ＲＡＭ２０３をワークエリアとしてＲＯＭ２０２あるいはＨＤＤ２０４に記憶されたプログラムを実行することにより、印刷制御装置２００全体を制御し、図３を用いて後述するものをはじめとする種々の機能を実現する。
ＲＯＭ２０２及びＨＤＤ２０４は、不揮発性記憶媒体（記憶手段）であり、ＣＰＵ２０１が実行する各種プログラムや後述する各種データを格納している。
通信Ｉ／Ｆ２０５は、ホスト装置１００や印刷装置３００等の他の装置と通信するためのインタフェースである。使用する通信経路の規格に応じた物を設ければよい。
【００１５】
操作部２０６は、ユーザからの操作を受け付けるための操作手段であり、キーボード及びマウス等のポインティングデバイスにより構成することができる。
表示部２０７は、印刷制御装置２００の動作状態や設定内容、メッセージ等をユーザに提示するための提示手段であり、液晶ディスプレイ等を備える。
【００１６】
なお、操作部２０６及び表示部２０７は外付けであってもよい。また、印刷制御装置２００がユーザからの操作を直接受ける必要がない（通信Ｉ／Ｆ２０５を介して接続された外部装置により操作を受け付けたり情報の提示を行ったりすればよい）場合には、操作部２０６や表示部２０７を設けなくてよい。
なお、ホスト装置１００も、具体的な性能は異なってよいが、図２に示したものと同趣旨のハードウェア構成を有する。印刷装置３００も、制御部について、同趣旨のハードウェア構成を有する。印刷装置３００は、これに加えて、電子写真方式等、任意の適当な方式で用紙に画像を形成する画像形成手段を備える。
【００１７】
この実施形態において特徴的な点の一つは、印刷制御装置２００が、ホスト装置１００から受信した印刷ジョブデータに基づき、印刷装置３００へ送信する印刷データを作成する際の画像処理の制御である。以下、この点について具体的に説明する。
【００１８】
図３は、印刷制御装置２００が備える、印刷データの生成に関する機能の構成を示す図である。図３に示す各機能は、ＣＰＵ２０１が所要のプログラムを実行することにより所要のハードウェアを制御して実現するものである。
印刷制御装置２００は、図３に示すように、ジョブ受信部２１１、ジョブ制御部２１２、エンジン管理部２１５、第１画像処理エンジン２１６−１、第２画像処理エンジン２１６−２、印刷データ生成部２１７を備える。ジョブ制御部２１２は、メモリ判断部２１３及びメモリ制御部２１４を備える。画像処理エンジンについては、個体を区別する必要がない場合、「２１６」の符号を用いて示す。
【００１９】
ワークエリア２２０は、ＲＡＭ２０３、ＨＤＤ２０４あるいはその他の記憶装置上に設ける、これらの各部が処理対象とするデータを記憶させるメモリ領域である。なお、ワークエリア２２０中には、ジョブデータ保存領域２２１、各画像処理エンジンと対応するデータ保存領域２２２（ここでは第１エンジン用データ保存領域２２２−１と第２エンジン用データ保存領域２２２−２）、および処理後データ保存領域２２３が設けられている。これらの各領域のサイズは予め定められ、印刷制御装置２００が起動された時にＣＰＵ２０１がＲＡＭ２０３上に確保する。各画像処理エンジンと対応するデータ保存領域については、対応する画像処理エンジンを起動した時に確保するようにしてもよい。
【００２０】
また、ジョブ受信部２１１は、ホスト装置１００から、印刷装置３００に実行させるべき印刷の内容を示す画情報である印刷ジョブデータ２３０を受信する機能を備える。印刷装置３００が複数ある場合には、どの印刷装置に印刷を実行させるかを示す情報も、印刷ジョブデータ２３０と合わせて受信する。ジョブ受信部２１１は、受信した印刷ジョブデータ２３０を、ワークエリア２２０中に設けたジョブデータ保存領域２２１に保存すると共に、その旨をジョブ制御部２１２に通知する。ジョブ制御部２１２はこのジョブデータ保存領域２２１から印刷ジョブデータ２３０を読み出すので、ジョブ受信部２１１は、この保存及び通知により、印刷ジョブデータ２３０をジョブ制御部２１２に供給することができる。
【００２１】
ここで、印刷ジョブデータ２３０は、例えばＰＤＬで記載されたデータであり、ここでは、ページ毎に、そのページの印刷内容を示す画情報であるジョブデータを含むものとする。図３の例では、第１ページから第Ｎページにそれぞれ対応する第１ページジョブデータ２３１−１〜第Ｎページジョブデータ２３１−Ｎを示している。このほかに、ジョブ全体に適用する設定を示すデータが含まれていてもよい。
なお、印刷ジョブデータの形式によっては、データがページ毎に明確に区分されていない場合もある。しかし、この場合でも、印刷ジョブデータのどの部分がどのページの印刷内容を示すのかを、何らかの手段で把握して分離できるのであれば、以下に説明する処理を同様に適用することができる。
【００２２】
ジョブ制御部２１２は、ジョブ受信部２１１から印刷ジョブデータ２３０を保存した旨の通知を受けた時に、その印刷ジョブデータを処理させるための画像処理エンジン２１６の確保を、エンジン管理部２１５に要求する機能を備える。また、ジョブ制御部２１２は、ジョブ受信部２１１が受信した印刷ジョブデータ２３０をジョブデータ保存領域２２１から読み出し、ページ毎のジョブデータに分割して、ページ毎に順次、該当のページの画像処理を担当する画像処理エンジン２１６と対応するデータ保存領域２２２に保存する機能も備える。各画像処理エンジン２１６は、１ページ分の画像処理を行う場合、対応するデータ保存領域２２２からジョブデータを読み出すので、ジョブ制御部２１２は、この保存により、ジョブデータを画像処理エンジン２１６に供給することができる。この動作により、ジョブ制御部２１２は供給手段として機能する。
【００２３】
また、ジョブ制御部２１２は、メモリ判断部２１３に対し、適当なタイミングで処理依頼を通知し、メモリの空き領域の確認を実行させる。この処理依頼には、次に画像処理を開始させる画像処理エンジン２１６の指定を含める。この指定において、ジョブ制御部２１２は指定手段として機能する。また、「適当なタイミング」と「次に画像処理を開始させる画像処理エンジンの指定」との組み合わせは、例えば以下のものが考えられる。
ａ）画像処理を実行中でない画像処理エンジンにジョブデータを供給した時、その供給先の画像処理エンジンを指定する。
ｂ）画像処理エンジンから１ページ分のジョブデータに係る画像処理が完了した旨の通知を受けた時、その通知元の画像処理エンジンを指定する。
ｃ）供給済みのジョブデータに関する画像処理を待機している画像処理エンジンを発見した時、その画像処理エンジンを指定する。
【００２４】
このうちａ）については、ジョブデータの供給に応じて新たに画像処理を開始できる状態になったと考えられるためである。ｂ）については、１単位の画像処理が完了したため次の画像処理を開始できる状態になったと考えられるためである。ただし、該当の画像処理エンジンに対し次に処理すべきジョブデータを供給していない場合には、画像処理を開始できる状態でないため、処理依頼を行う必要はない。ｃ）については、以前に処理後データ保存領域２２３に十分な空き容量がなく処理を開始できなかったケースである。空き容量が確保できれば処理を開始できる状態であるため、定期的に処理依頼を行うものである。もちろん、これら以外のタイミングや組み合わせを採用してもよい。
【００２５】
メモリ判断部２１３は、ジョブ制御部２１２から処理依頼を通知されたことに応じて、処理後データ保存領域２２３に所定基準以上の十分な空き領域があるか否か判断する判断手段の機能を備える。所定基準は、例えば、「指定された画像処理エンジンにおいて次に処理されるページ及びそれより前のページの未処理のページ全てについて、処理後データを記憶できるだけの容量があること」とすることが考えられる。
【００２６】
ジョブ制御部２１２から指定される順序で各画像処理エンジン２１６に画像処理を行わせると、必ずしもページ順で処理が開始されるとは限らない。また、各ページの処理に要する時間はページ毎の画像の内容により様々であるので、先に処理を開始したページの処理が先に完了するとも限らない。従って、ジョブ制御部２１２からの指定に従うと、あるページの画像処理よりも先に、それよりも後のページの画像処理の開始をすることになる場合もある。
【００２７】
このときに、後のページの画像処理に必要なメモリ領域を処理後データ保存領域２２３内に確保した後で、それより前のページの画像処理に必要なメモリ領域を確保しようとしたら領域が足りずに確保できなかった、という事態が生じると問題である。領域が空くまで前のページの画像処理を開始できないためである。この場合、全体としての処理効率が低下することになってしまう。
印刷データ２５０の生成及び印刷装置３００への送信はページ順に行わなければならないため、前のページの画像処理が開始（従って完了も）できないと、後のページの画像処理が完了しても、印刷データ２５０の生成が進められないためである。
【００２８】
一方で、後のページの画像処理を先に開始する場合でも、それよりも前のページの画像処理に必要なメモリ領域を確保できるのであれば、先に開始してしまって差し支えない。上記の所定基準は、この点を確認するためのものである。
例えば図７に示すように、第３ページが処理待ちの状態で第４ページの画像処理を開始しようとする場合を考える。第２ページは処理済み、第１ページは処理中であり、これらの処理に必要なメモリ領域は確保済みである。この場合、第４ページの画像処理に必要なメモリ領域を確保してしまっても、それより前で未処理の第３ページのメモリ領域を後から確保可能であれば、以後の処理の流れに特段の問題は生じないと考えられる。従って、上記の所定基準に従い、第４ページに加えて第３ページの処理後のデータを記憶できるだけの容量があるか否かを確認する。
【００２９】
なお、画像処理がＲＩＰ処理である場合、処理後のデータは１ページ分のビットマップデータであるので、このデータを記憶するために必要な領域のサイズを見積もることは容易である。画像処理の内容や処理後のデータの形式が異なる場合でも、多くの場合には、処理後のデータを記憶するために必要なメモリ領域のサイズを見積もることは可能であると考えられる。
また、所定基準は、必ずしも上記の基準には限られない。例えば、判定時点では十分なメモリ領域が確保できていなくても、あるページのために確保されているメモリ領域がすぐに解放される見込みである場合等には、それも見込んで容量の判断を行うような基準とすることもできる。
【００３０】
メモリ判断部２１３は、以上の判断基準に基づき十分な空き領域があると判断する場合には、メモリ制御部２１４に、その旨及び、次に画像処理を開始させる画像処理エンジン２１６の指定を通知する。
メモリ制御部２１４は、メモリ判断部２１３から十分な空き領域がある旨を通知されたことに応じて、指定された画像処理エンジン２１６に対し、ジョブ制御部２１２により既に対応するデータ保存領域２２２に保存されているジョブデータのうち次の１ページ分の画像処理を開始するために処理後データ保存領域２２３内に必要なメモリ領域を確保し画像処理を開始してよいことを示すメモリ獲得メッセージを送信する指示手段の機能を備える。メモリ獲得メッセージは、画像処理の開始指示に該当する。
なお、ジョブ制御部２１２は、以上のメモリ判断部２１３及びメモリ制御部２１４の動作結果も反映させて、図７に示すような、印刷ジョブデータに含まれる各ページの処理状況の情報を管理する機能を備える。この点についても後述する。
【００３１】
次に、エンジン管理部２１５は、ジョブ制御部２１２からの要求に応じて、今回受信した印刷ジョブデータの処理に用いる画像処理エンジン２１６を、適当な数だけ確保し、その旨をジョブ制御部２１２に応答する機能を備える。図３の例では、画像処理エンジン２１６は２つしかないため、常にその両方を確保するが、３つ以上ある場合には、必ずしもその全てを確保する必要はない。一部を残しておく場合、その一部の画像処理エンジン２１６により、他の印刷ジョブデータに係る処理を、今回受信した印刷ジョブデータの処理と並行して行うことができる。
【００３２】
画像処理エンジン２１６は、それぞれ対応するデータ保存領域２２２に格納されたジョブデータに対し、１ページ分ずつ画像処理としてＲＩＰ処理を行い、その結果のデータを、処理後データ保存領域２２３に保存する機能を備える画像処理部である。ここで、ＲＩＰ処理とは、ＰＤＬで記載されたジョブデータに従って描画処理を行い、印刷すべき画像を示す画像データを生成する処理である。
【００３３】
そして、各画像処理エンジン２１６は、ＲＩＰ処理の実行に先立ち、処理後データ保存領域２２３に、処理後の画像データを保存するメモリ領域を確保する。またこの確保は、メモリ獲得メッセージの受信に応じて行う。従って、メモリ獲得メッセージの受信に応じて、メモリ領域の確保と、ＲＩＰ処理とを順次行うことになる。また、画像処理エンジン２１６は、１ページ分のＲＩＰ処理が終了すると、その旨をジョブ制御部２１２に通知する機能も備える。
【００３４】
なお、処理後データ保存領域２２３は、全ての画像処理エンジンが共有する領域である。従って、他の画像処理エンジンが広い領域を確保していたり、自身が以前に確保した領域が（後処理が進まないために）解放されていなかったりして、十分な空き領域がないと、次のＲＩＰ処理を行うために必要な領域を新たに確保することができない。本実施形態においては、このような事態が起こらないようにメモリ制御部２１４がメモリ獲得メッセージを出すタイミングを調整している。しかし、万一必要な領域を確保できない場合には、画像処理エンジンは、その旨のエラーをジョブ制御部２１２に送信する。
【００３５】
以上の各画像処理エンジン２１６は、処理速度及び処理の安定性の観点から、ＣＰＵ２０１とは別の専用ハードウェアとして構成することが望ましい。また、専用ハードウェアとして設けられているか否かに関わらず、複数の画像処理エンジンにより、印刷制御装置２００における画像処理手段が構成される。
以上の画像処理エンジン２１６の機能は、上記専用ハードウェアが自律的に実行する、あるいはＣＰＵ２０１が上記専用ハードウェアを制御するために実行する、制御手順の処理に従って制御される。
【００３６】
印刷データ生成部２１７は、処理後データ保存領域２２３に保存された、画像処理エンジン２１６による画像処理後の処理後データ２４０に基づき、ページ順に、印刷装置３００へ送信する印刷データ２５０を生成する機能を備える。具体的には、画像処理後の処理後データ２４０に、ここまでの画像処理に反映されない設定情報をジョブデータ保存領域２２１中の印刷ジョブデータ２３０から取得して付加する。例えば、印刷装置３００においてどのトレイを使用するか、といった設定情報である。なお、印刷データ生成部２１７がどの項目の設定情報を付加するかは、予め定めておけばよい。
【００３７】
なお、印刷データ生成部２１７は、以上により生成した印刷データ２５０を印刷装置３００に送信すると共に、送信完了後に、生成に用いた処理後データ２４０を処理後データ保存領域２２３から削除し、その記憶領域を解放する機能も備える。
また、印刷データ生成部２１７は、あるページの印刷データ２５０を生成した後、次のページの印刷データ２５０の生成に必要な処理後データ２４０が処理後データ保存領域２２３に保存されていない場合、保存されるまで待機する。
印刷データ生成部２１７から送信された印刷データ２５０を受信した印刷装置３００は、その印刷データ２５０に従った印刷を実行する。
【００３８】
次に、以上の機能を備える印刷制御装置２００が、印刷ジョブデータを受信した場合に実行する、各ページのジョブデータに係る画像処理の動作について説明する。
図４乃至図６に、印刷制御装置２００が、印刷ジョブデータを受信した場合の各部の動作の一例を示す。
図４に示す動作は、印刷制御装置２００がホスト装置１００から送信された印刷ジョブデータ２３０を検出したことに応じて開始される。
印刷制御装置２００において、ジョブ受信部２１１がその送信された印刷ジョブデータ２３０を受信する。そして、ジョブ制御部２１２にその印刷ジョブデータ２３０を供給する（Ｓ１１）。
【００３９】
ジョブ制御部２１２は、これに応じて、エンジン管理部２１５に対し、画像処理エンジンの取得を要求する（Ｓ１２）。エンジン管理部２１５は、その要求に応じて第１画像処理エンジン２１６−１及び第２画像処理エンジン２１６−２を、今回受信した印刷ジョブデータを処理するために確保して、その結果をジョブ制御部２１２へ応答する（Ｓ１３）。もし画像処理エンジンが他の処理に使用中で確保できなければ、その旨をジョブ制御部２１２に通知し、ジョブ制御部２１２は所定時間後に再度取得要求を行う。
【００４０】
ジョブ制御部２１２は、ステップＳ１３の応答を受け取ると、ステップＳ１１で受け取った印刷ジョブデータに関する処理を開始可能であると判断する。そして、まず１ページ目の画情報である第１ページジョブデータ２３１−１を、第１画像処理エンジン２１６−１へ供給する（Ｓ１４）。この供給が、第１画像処理エンジン２１６−１と対応する第１エンジン用データ保存領域２２２−１に該当のデータを格納することによって行えることは、上述の通りである。
【００４１】
なお、ここでは、各ページに関する処理を、どの画像処理エンジン２１６が担当するかを、予め決めておくものとする。具体的には、奇数ページは第１画像処理エンジン２１６−１が、偶数ページは第２画像処理エンジン２１６−２が担当するものとする。そして、各ページのジョブデータの供給先は、そのページに関する処理を担当する画像処理エンジン２１６である。ただし、ページを画像処理エンジン２１６に割り当てる規則はこれに限られないし、各ページの割り当て先を、処理の進行に応じて動的に定めることもできる。
【００４２】
また、ここで供給する第１ページジョブデータ２３１−１は、印刷ジョブデータ２３０から、第１ページの画情報に当たるものを単に取り出してきたものであってもよい。しかし、必要に応じて、ジョブ全体に適用すべき設定を、その取り出してきた画情報に反映させた状態のものであるとよい。少なくとも画像処理エンジン２１６での処理に用いる設定については、ジョブ全体に適用すべき設定が反映された状態であることが望ましい。
【００４３】
次に、ジョブ制御部２１２は、上述のａ）の条件に従い、メモリ判断部２１３に、第１画像処理エンジン２１６−１を指定して処理を依頼する（Ｓ１５）。この依頼を受けたメモリ判断部２１３は、上述した所定基準に従い、処理後データ保存領域２２３に十分な空き領域があるか否かを確認する（Ｓ１６）。
ここでは、まだ画像処理が開始されておらず、処理後データ保存領域２２３も使用していないため、メモリ判断部２１３は、空き領域は十分であると判断する。そして、その旨及び、ジョブ制御部２１２によりなされた第１画像処理エンジン２１６−１の指定を、メモリ制御部２１４へ通知する（Ｓ１７）。
【００４４】
メモリ制御部２１４は、この通知を受けると、指定された第１画像処理エンジン２１６−１に対し、画像処理の開始指示としてメモリ獲得メッセージを送信する（Ｓ１８）。第１画像処理エンジン２１６−１は、このメッセージを受信すると、処理後データ保存領域２２３に、第１ページの処理後データを記憶させるための記憶領域を確保する（Ｓ１９）。その後、ジョブ制御部２１２から供給された第１ページジョブデータ２３１−１に対する画像処理を開始する（Ｓ２０）。
【００４５】
一方、ジョブ制御部２１２は、ステップＳ１５の後、引き続いて次のページに関する処理を行う。すなわち、２ページ目の画情報である第２ページジョブデータ２３１−２を、その処理を担当する第２画像処理エンジン２１６−２へ供給する（Ｓ２１）。また、上述のａ）の条件に従い、メモリ判断部２１３に、第２画像処理エンジン２１６−２を指定して処理を依頼する（Ｓ２２）。この依頼を受けたメモリ判断部２１３は、上述した所定基準に従い、処理後データ保存領域２２３に十分な空き領域があるか否かを確認する（Ｓ２３）。
ここでは、まだ空き領域が十分であるとし、メモリ判断部２１３は、その旨及び第２画像処理エンジン２１６−２の指定を、メモリ制御部２１４へ通知する（Ｓ２４）。
【００４６】
メモリ制御部２１４は、この通知を受けると、指定された第２画像処理エンジン２１６−２に対し、画像処理の開始指示としてメモリ獲得メッセージを送信する（Ｓ２５）。第２画像処理エンジン２１６−２は、このメッセージを受信すると、処理後データ保存領域２２３に、第２ページの処理後データを記憶させるための記憶領域を確保する（Ｓ２６）。その後、ジョブ制御部２１２から供給された第２ページジョブデータ２３１−２に対する画像処理を開始する（Ｓ２７）。
【００４７】
また、ジョブ制御部２１２は、ステップＳ２２の後、引き続いてさらに次のページに関する処理を行う。すなわち、第３ページジョブデータ２３１−３及び第４ページジョブデータ２３１−４を、その処理を担当する画像処理エンジン２１６へそれぞれ供給する（Ｓ２８，Ｓ２９）。ただし、この時点では各画像処理エンジン２１６はステップＳ２０又はＳ２７で開始した画像処理を実行中である。従って、上述したａ）〜ｃ）の条件はいずれも満たされないため、ジョブ制御部２１２はこの時点ではメモリ判断部２１３への処理依頼は行わない。
【００４８】
また、ここでは、ジョブ制御部２１２は、各画像処理エンジン２１６に対して、その画像処理エンジン２１６が担当するページのジョブデータを、第５ページ以降も最後のページまで順次供給していくものとする。この供給は、図５及び図６に示す処理と並列に行われる場合もある。
【００４９】
ここで、ページ毎のジョブデータを各エンジン用のデータ保存領域２２２に保存する処理は、実装形態にもよるが全体の処理時間の数％から１０％程度かかる処理である。このため、ジョブデータを効率よく保存できるようにすると、印刷処理全体の高速化に大きく寄与する。
なお、各ページのジョブデータを各画像処理エンジン２１６に振り分けて供給する手法は、ここで説明するものに限られない。他の例については後述する。
【００５０】
次に、図５及び図６に示すのは、図４に示した後の部分の動作を、場合分けして示したものである。いずれも、第１ページの画像処理よりも第２ページの画像処理が先に終わった場合の動作であるが、次に第２画像処理エンジン２１６−２に第４ページの画像処理を開始させようとした場合に、メモリの空き領域が十分あるか否かが異なる。図５は、空き領域が十分ある場合の動作であり、図６は十分な空き領域がない場合の動作である。
【００５１】
まず、図５の動作について説明する。
第２画像処理エンジン２１６−２は、図４のステップＳ２７で第２ページジョブデータ２３１−２の画像処理を開始した後、その処理が完了すると、ジョブ制御部２１２に対し、その旨を示す処理完了通知を行う（Ｓ４１）。なおここでは、第１画像処理エンジン２１６−１による第１ページジョブデータ２３１−１の画像処理よりも、第２ページジョブデータ２３１−２の画像処理の方が早く完了したとする。
【００５２】
ジョブ制御部２１２は、ステップＳ４１の通知を受けると、上述した条件ｂ）に該当するため、メモリ判断部２１３に、第２画像処理エンジン２１６−２を指定して次の処理を依頼する（Ｓ４２）。
この依頼を受けたメモリ判断部２１３は、上述した所定基準に従い、処理後データ保存領域２２３に十分な空き領域があるか否かを確認する（Ｓ４３）。ここでの判断は、指定された第２画像処理エンジン２１６−２が次に処理する（既にデータを供給済みの）第４ページ及び、それ以前で未処理の第３ページの全てについて、処理後データを記憶できるだけの容量があるか、を基準にして行うことになる。
【００５３】
そして、図５の例では、空き領域が十分であるとする。
例えば、図８に示すように、処理後データ保存領域のサイズが１００ＭＢ（メガバイト）であり、処理後データの記憶に必要な領域が１ページ当たり２０ＭＢであるとする。この場合、ステップＳ４３の判断時点での空き領域は、第１ページ用及び第２ページ用に確保されている領域を除いて６０ＭＢである。従って、第３ページ用及び第４ページ用の領域として必要な４０ＭＢよりも多いので、空き領域が十分であると判断できる。
【００５４】
この場合、メモリ判断部は、ステップＳ２５場合と同様、空き領域が十分である旨及び第２画像処理エンジン２１６−２の指定を、メモリ制御部２１４へ通知する（Ｓ４４）。
メモリ制御部２１４は、この通知を受けると、指定された第２画像処理エンジン２１６−２に対し、画像処理の開始指示としてメモリ獲得メッセージを送信する（Ｓ４５）。第２画像処理エンジン２１６−２は、このメッセージを受信すると、処理後データ保存領域２２３に、第４ページの処理後データを記憶させるための記憶領域を確保する（Ｓ４６）。その後、ジョブ制御部２１２から供給された第４ページジョブデータ２３１−４に対する画像処理を開始する（Ｓ４７）。
【００５５】
その後、第１画像処理エンジン２１６−１にて第１ページジョブデータ２３１−１の処理が完了すると、第１画像処理エンジン２１６−１は、ジョブ制御部２１２に対し、その旨を示す処理完了通知を行う（Ｓ４８）。
ジョブ制御部２１２は、ステップＳ４８の通知を受けると、上述した条件ｂ）に該当するため、メモリ判断部２１３に、第１画像処理エンジン２１６−１を指定して次の処理を依頼する（Ｓ４９）。
【００５６】
この依頼を受けたメモリ判断部２１３は、上述した所定基準に従い、処理後データ保存領域２２３に十分な空き領域があるか否かを確認する（Ｓ５０）。ここでの判断は、指定された第１画像処理エンジン２１６−１が次に処理する（既にデータを供給済みの）第３ページについて、処理後データを記憶できるだけの容量があるか、を基準にして行うことになる。この時点では、第３ページよりも前のページは既に全て処理済みである。
【００５７】
ステップＳ４３において、第３ページの分も考慮して空き領域が十分であると判断しているので、通常であれば、ステップＳ５０の時点でも、空き領域は十分あるはずである。
この場合、メモリ判断部２１３は、ステップＳ１８の場合と同様、空き領域が十分である旨及び第２画像処理エンジン２１６−２の指定を、メモリ制御部２１４へ通知する（Ｓ５１）。
【００５８】
メモリ制御部２１４は、この通知を受けると、ステップＳ１８の場合と同様に第１画像処理エンジン２１６−１に対してメモリ獲得メッセージを送信する（Ｓ５２）。第１画像処理エンジン２１６−１は、このメッセージを受信すると、ステップＳ１９及びＳ２０の場合と同様、第３ページの処理後データを記憶させるための記憶領域を確保し（Ｓ５３）第３ページジョブデータ２３１−３に対する画像処理を開始する（Ｓ５４）。
以後、第５ページ以降の処理についても、同様に行う。
【００５９】
次に、図６の動作について説明する。
この動作において、ステップＳ６１とＳ６２は、図５のステップＳ４１及びＳ４２と同じである。しかし、この例については、ステップＳ６３において、十分な空き領域がないとする。
例えば、図９に示すように、処理後データ保存領域のサイズが１００ＭＢ（メガバイト）であり、処理後データの記憶に必要な領域が１ページ当たり３０ＭＢであるとする。この場合、ステップＳ６３の判断時点での空き領域は、第１ページ用及び第２ページ用に確保されている領域を除いて４０ＭＢである。従って、第３ページ用及び第４ページ用の領域として必要な６０ＭＢよりも少ないので、空き領域が十分でないとの判断となる。
【００６０】
この場合、メモリ判断部２１３は、メモリ制御部２１４に対して空き領域が十分である旨の通知を行わないため、メモリ制御部２１４もメモリ獲得メッセージの送信を行わない。従って、第２画像処理エンジン２１６−２は、この時点では次の第４ページの画像処理を開始しない。
その後、第１画像処理エンジン２１６−１にて第１ページジョブデータ２３１−１の処理が完了すると、第１画像処理エンジン２１６−１は、ジョブ制御部２１２に対し、その旨を示す処理完了通知を行う（Ｓ６４）。これは図５のステップＳ４８と同じである。
【００６１】
この通知に応じた各部のステップＳ６５乃至Ｓ７０の動作も、ステップＳ４８に続く、図５のステップＳ４９乃至Ｓ５４と同じである。これらの動作により、第１画像処理エンジン２１６−１は、第３ページジョブデータ２３１−３に対する画像処理を開始する。
なお、ステップＳ６６においては、次に第１画像処理エンジン２１６−１が処理する第３ページのみの処理後データを記憶できるだけの容量があれば、空き領域が十分との判断となる。ここでは、これはＹｅｓであるとする。
【００６２】
また、図６ではステップＳ７０の後ろに示しているが、ジョブ制御部２１２は随時、供給済みのジョブデータに関する画像処理を待機している処理開始待ちの画像処理エンジン２１６の有無を監視している。そして、ステップＳ６２の処理依頼に応じた画像処理を開始していない第２画像処理エンジン２１６−２は、この処理開始待ちの画像処理エンジン２１６として検出される（Ｓ７１）
【００６３】
ジョブ制御部２１２は、これを検出すると、上述した条件ｃ）に該当するため、メモリ判断部２１３に、第２画像処理エンジン２１６−２を指定して次の処理を依頼する（Ｓ７２）。
この依頼を受けたメモリ判断部２１３は、上述した所定基準に従い、処理後データ保存領域２２３に十分な空き領域があるか否かを確認する（Ｓ７３）。ここでの判断は、指定された第２画像処理エンジン２１６−２が次に処理する第４ページについて、処理後データを記憶できるだけの空き領域があるか、を基準にして行うことになる。この時点では、第４ページよりも前のページは既に全て処理済み又は処理開始済みである。
【００６４】
ステップＳ６３の時点では十分な容量がなかった場合でも、その後、印刷データ２５０の生成が進んで、印刷データ２５０の生成に用いた処理後データを記憶する領域が解放されていれば、ステップＳ７３の時点では十分な空き領域があるとの判断結果となる。ここでは、十分な空き領域があったとする。
【００６５】
この場合、メモリ判断部２１３は、ステップＳ１８及びＳ４４の場合と同様、空き領域が十分である旨及び第２画像処理エンジン２１６−２の指定を、メモリ制御部２１４へ通知する（Ｓ７４）。
メモリ制御部２１４は、この通知を受けると、第２画像処理エンジン２１６−２に対してメモリ獲得メッセージを送信する（Ｓ７５）。第２画像処理エンジン２１６−２は、このメッセージに応じて記憶領域を確保して第４ページジョブデータ２３１−４に対する画像処理を開始する（Ｓ７６，Ｓ７７）。この流れは、図５のステップＳ４５乃至Ｓ４７と同じである。
以後、第５ページ以降の処理についても、同様に行う。
【００６６】
次に、以上の図４乃至図６に示した動作を実現するためにＣＰＵ２０１が実行する処理の流れについて説明する。図１０は、この処理の流れを示すフローチャートである。図１０の処理は、図４乃至図６に示した各部のうち各画像処理エンジン２１６以外の部分の機能と対応している。
ＣＰＵ２０１は、印刷制御装置２００がホスト装置１００から印刷ジョブデータ２３０の受信を開始したことを検出すると、所要のプログラムを実行することにより、図１０のフローチャートに示す処理を開始する。
【００６７】
図１０の処理において、ＣＰＵ２０１はまず、受信した印刷ジョブデータ２３０を処理させるための画像処理エンジン２１６を確保する（Ｓ１０１）。この確保は、図４に示したようにエンジン管理部２１５へ要求して行う。
次に、ＣＰＵ２０１は、受信した印刷ジョブデータ２３０の全ページの画像処理が完了する（Ｓ１１０のＹｅｓ）まで、ステップＳ１０２、Ｓ１０４及びＳ１０８の判断を繰り返し行い、これらがＹｅｓになった場合にはその判断と対応する処理を行う。
【００６８】
まず、ステップＳ１０２でＹｅｓの場合、すなわち、１ページ分のジョブデータの受信が完了した場合、受信したジョブデータを、該当のページを担当する画像処理エンジン２１６へ供給する（Ｓ１０３）。この供給には、上述のようにある程度時間がかかるが、供給を開始したら、供給処理と並行して図１０の処理は先に進めてしまって構わない。
また、ステップＳ１０４でＹｅｓの場合、すなわち、いずれかの画像処理エンジン２１６から処理完了通知を受信した場合、ＣＰＵ２０１は、通知送信元の画像処理エンジン２１６を処理対象として、ステップＳ１０６の判断を行う。この処理は、上述のｂ）の条件と対応するものである。
【００６９】
ステップＳ１０６では、処理後データ保存領域２２３の空き容量が、処理対象の画像処理エンジン２１６で次に処理する見込みのページ以前の全てのメモリ未割り当てページの処理後データ２４０を格納可能なだけあるか否か判断する（Ｓ１０６）。これがＹｅｓであれば、ＣＰＵ２０１は処理対象の画像処理エンジン２１６へメモリ獲得メッセージを送信する（Ｓ１０７）。この場合、処理対象の画像処理エンジン２１６は、次に処理するぺージの処理後データ２４０を記憶させるメモリ領域を処理後データ保存領域２２３に確保し、そのページの画像処理を開始する。
【００７０】
一方、ステップＳ１０６でＮｏであれば、ＣＰＵ２０１はメモリ獲得メッセージを送信せずにステップＳ１１０に進む。この場合、処理対象の画像処理エンジン２１６は次に処理予定のページの画像処理を開始せず、処理開始待ちの状態となる。
また、ステップＳ１０８でＹｅｓの場合、すなわち、処理開始待ちの画像処理エンジン２１６を検出した場合、ＣＰＵ２０１は、その処理開始待ちの画像処理エンジン２１６を処理対象として、ステップＳ１０６の判断を行う。この処理は、上述のａ）及びｃ）の条件と対応するものである。画像処理を実行中でない画像処理エンジン２１６にジョブデータを供給すると、その画像処理エンジン２１６が画像処理を開始するまでは、処理開始待ちの状態となるためである。
【００７１】
そして、ステップＳ１０８から進んだ場合も、ステップＳ１０６及びＳ１０７の処理は、ステップＳ１０４から進んだ場合と同じものである。なお、ステップＳ１０８の判断は、ジョブデータの供給がなされていない、単なる待機状態の画像処理エンジン２１６があっても、Ｙｅｓにはならない。
【００７２】
また、一度処理開始待ちの画像処理エンジン２１６が生じると、ステップＳ１０６でＹｅｓとなってその画像処理エンジン２１６が画像処理を開始するまで、ステップＳ１０８の判断は常にＹｅｓとなる。しかし、ステップＳ１０６でＮｏの判断をした後は、一定期間、ステップＳ１０８をＹｅｓとしないようにすることも考えられる。
以上を繰り返し、ステップＳ１１０でＹｅｓとなると、ＣＰＵ２０１は図１０の処理を終了する。
【００７３】
図１０の処理において、ＣＰＵ２０１は、ステップＳ１０３では供給手段として、ステップＳ１０６では判断手段として、ステップＳ１０７では指示手段として、それぞれ機能する。また、ステップＳ１０３の処理が供給手順の処理、ステップＳ１０６の処理が判断手順の処理、ステップＳ１０７の処理が指示手順の処理である。
【００７４】
このように、印刷制御装置２００においては、各画像処理エンジン２１６が、メモリ判断部２１３による空き領域確認に応じて送信されるメモリ獲得メッセージを受信するまで、次のページの画像処理を、メモリ領域の確保も含めて開始しないようにしている。
従って、十分な記憶領域がない状態で後のページの画像処理のためのメモリ領域を先に確保してしまい、メモリの空き領域不足により前のページの画像処理を開始できなくなる、といった事態を防止することができる。
【００７５】
このことにより、一連の画像データを複数の部分に（ここではページ毎に）分割してそれらを複数の画像処理エンジンにより並列に画像処理する場合に、画像処理に利用できるメモリの容量が限られる場合であっても、各部分の処理結果を効率よく後段の処理に送れるようにすることができる。
【００７６】
なお、メモリ判断部２１３は、ジョブ制御部２１２が、各画像処理エンジン２１６からの１ページ分の画情報に対する画像処理が完了した旨の通知を受けたことに応じて、空き領域の確認を行う。このため、メモリ判断部２１３は、各画像処理エンジン２１６が次のページの画像処理を実行可能となったタイミングで、遅滞なく、次のページの処理開始可否を判断することができる。
また、この判断結果に従ったメモリ獲得メッセージの送信先は、画像処理が完了した旨の通知（空き領域確認のトリガとなった通知）の送信元にすればよい。このようにすれば、次に画像処理を実行させるべき画像処理エンジン２１６を容易に判別して画像処理を開始させることができる。
【００７７】
次に、図１１に、ＣＰＵ２０１が実行する、印刷データ２５０の生成に係る処理のフローチャートを示す。この処理は、印刷データ生成部２１７の機能と対応するものである。
ＣＰＵ２０１は、印刷制御装置２００がホスト装置１００から印刷ジョブデータ２３０の受信を開始したことを検出すると、所要のプログラムを実行することにより、図１１のフローチャートに示す処理も開始する。
【００７８】
図１１の処理において、ＣＰＵ２０１はまず、変数ｎに１を代入する（Ｓ１２１）。そして、第ｎページの画像処理が完了するまで待機する（Ｓ１２２）。
これが完了すると、ＣＰＵ２０１は、第ｎページ処理後データ２４０−ｎに基づき印刷データ２５０を生成し、印刷装置３００へ送信する（Ｓ１２３）。その後、第ｎページ処理後データ２４０−ｎを処理後データ保存領域２２３から削除して、その記憶領域を解放する（Ｓ１２４）。
【００７９】
その後、ＣＰＵ２０１は、全ページの印刷データを生成したか否か判断し（Ｓ１２５）、生成していなければ、ｎの値をインクリメントして（Ｓ１２６）、ステップＳ１２２に戻って処理をくり返す。ステップＳ１２５で生成していれば、図１１の処理を終了する。
以上の処理により、ＣＰＵ２０１は、１ページ目から順に、処理後データ２４０に基づき印刷データ２５０を生成して印刷装置３００へ送信することができる。
【００８０】
以上で実施形態の説明を終了するが、この発明において、装置の具体的な構成、具体的な処理の手順、判断基準、データのサイズ等は、実施形態で説明したものに限るものではない。
例えば、ジョブ制御部２１２が各画像処理エンジン２１６に各ページのジョブデータ２３１を供給する処理として、上述した実施形態のように、どのページをどの画像処理エンジン２１６に処理させるかを予め定めず、処理の進行に応じて随時決定してもよい。また、供給のタイミングも、各画像処理エンジン２１６における画像処理の進行に応じたものとしてもよい。
【００８１】
図１２に、このようにする場合の図１０の処理の変形例について説明する。
この変形例は、ステップＳ１０１とＳ１０４の間で、ステップＳ１０２及びＳ１０３に代えて、図１２に示す処理を実行するものである。
すなわち、ＣＰＵ２０１は、画像処理エンジン２１６が確保できると、また画像処理エンジン２１６に供給していない受信済みのジョブデータ２３１があるか否か判断する（Ｓ１３１）。
【００８２】
これがＹｅｓであれば、ＣＰＵ２０１は、現在、供給済みでかつ未処理のジョブデータが最も少ない画像処理エンジン２１６を選択する（Ｓ１３２）。そして、その選択した画像処理エンジン２１６における未処理のページ数が所定値未満であるか否か判断する（Ｓ１３３）。これがＹｅｓであれば、ＣＰＵ２０１は、画像処理エンジン２１６に供給していないもののうち最先のページのジョブデータを、ステップＳ１３２で選択した画像処理エンジンに供給する（Ｓ１３４）。その後、ステップＳ１０４に進む。
また、ＣＰＵ２０１は、ステップＳ１１０でＮｏの場合にはステップＳ１３１に戻って処理をくり返す。
【００８３】
以上の処理によれば、未処理で溜まっているジョブデータが少ない画像処理エンジン２１６に、優先的にジョブデータを送信することができる。また、データ保存領域２２２に所定ページ数以上未処理のジョブデータがある場合には、それ以上ジョブデータを供給しないようにすることができる。
【００８４】
ここで、ジョブデータの転送には上述のようにある程度時間がかかるため、画像処理エンジン２１６が実行中の画像処理を終えた後すぐに次のページの処理に取りかかれるよう、予め画像処理エンジン２１６に次に処理するページのジョブデータを供給しておくことは有用である。しかし、各画像処理エンジン２１６は、一度に１ページの画像処理しかできないため、すぐに取りかかれるようにという目的であれば、次の１ページ分のジョブデータが蓄積されていれば十分である。
【００８５】
逆に、何ページも未処理のジョブデータを持たせると、ある画像処理エンジンでは全ページの画像処理が終わったのに、他のある画像処理エンジンではまだ未処理のページが複数残っている、といったことが生じてしまう。また、各ページの画像処理に要する時間を予め予測することは困難であるので、各画像処理エンジンに対し、処理時間が等しくなるようにページを振り分けることも難しい。
従って、図１２のような振り分け方が、処理の効率化の観点から望ましい。なお、ステップＳ１３３における所定値は、１とするとよい。
【００８６】
また、同様な振り分けは、図１３の処理によっても行うことができる。
図１３の処理は、図１０の処理の別の変形例であり、図１０のステップＳ１０２に代えてステップＳ１０２′を、ステップＳ１０７の後にステップＳ１４１を実行するものである。
ステップＳ１０２′は、所定ページまでの１ページ分のジョブデータを受信したか否か判断するものである。ここでＹｅｓの場合は、図１０の場合と同様、ステップＳ１０３で、受信したジョブデータを画像処理エンジン２１６に供給する。従って、初めの所定ページ分は、受信次第振り分けることになる。
【００８７】
一方、それ以降のページについては、ステップＳ１０８でメモリ獲得メッセージを送信した後で振り分ける。すなわち、その時点でまだ画像処理エンジン２１６に供給していないもののうち最先のページのジョブデータ２３１を、処理対象の画像処理エンジン２１６に供給する（Ｓ１４１）。
【００８８】
処理対象の画像処理エンジン２１６は、ステップＳ１０８で送信されるメモリ獲得メッセージに応じて、未処理のジョブデータの画像処理を開始するので、その分を補充する、という考え方である。
なお、図１２あるいは図１３の処理を実行する場合、ＣＰＵ２０１は、ジョブデータ２３１を、何ページまで画像処理エンジン２１６に供給したかを、適当な手法で管理しておく。また、図１２の処理を実行する場合、ＣＰＵ２０１は、各画像処理エンジン２１６が保持している未処理のジョブデータのページ数も、適当な方法で管理しておく。
【００８９】
また、上記の他、上述の実施形態では、ジョブデータを１ページ単位で分割して各画像処理エンジン２１６に振り分ける例について説明したが、分割の単位はこれに限られない。複数ページ分のブロックごとに分割して各画像処理エンジン２１６に振り分ける構成も妨げられない。１ブロック当たりのページ数が一定でなくてもよい。また、分割の単位と、画像処理エンジン２１６が処理を実行する単位が共通でなくてもよい。３ページ分ずつに分割して各画像処理エンジン２１６に振り分けるが、画像処理エンジン２１６はそれをさらに１ページ分ずつに分割してページ毎に画像処理を行う、等も可能である。
【００９０】
また、上述の実施形態では、各画像処理エンジン２１６は、１ページ分の画像処理の完了後に処理完了通知を送信するようにしていたが、これは必須ではない、図１０のステップＳ１０８のように、ジョブ制御部２１２が随時、画像処理を実行中でない画像処理エンジン２１６がないかを監視するようにしてもよい。また、このような画像処理エンジン２１６が複数あった場合に、そのいずれを次の処理対象とするかは、任意である。必ずしも直近に画像処理を終えた画像処理エンジン２１６を処理対象とする必要はない。
【００９１】
さらに、印刷制御装置２００の機能を、複数の装置に分散して設け、それらの装置を協働させて印刷制御装置２００と同様な機能を備える情報処理システムあるいは画像処理システムとして機能させることも妨げられない。例えば、ワークエリア２２０の全部又は一部を、印刷制御装置２００の外部に設けたメモリを用いて実現することも考えられる。逆に、印刷制御装置２００が、ホスト装置１００あるいは印刷装置３００と一体化した構成も妨げられない。
【００９２】
また、上述の実施形態では、印刷ジョブデータの画像処理を行う構成を例にして説明したが、画像処理の対象は、印刷ジョブデータでなくてもよい。画面に表示する画像を示す画像データに対する処理であってもよい。ＪＰＥＧ（Joint  Photographic  Experts  Group）形式のデータをビットマップ形式に変換する場合等である。
さらに、例えば、動画や音声等、時系列に並んでいるデータを分割して複数の処理手段で処理しつつ、出力を同じ時系列に並べて取得する必要があるような場合には、上述した実施形態の場合と同じ考え方で、処理の効率化が可能である。この場合、時系列が、上述した実施形態におけるページ順に該当する。ＭＰ３（MPEG-1  Audio  Layer-3）形式のデータをＷＡＶ形式のオーディオデータに変換する場合等である。
【００９３】
また、この発明のプログラムの実施形態は、コンピュータに所要のハードウェアを制御させて上述した実施形態における印刷制御装置２００の機能を実現させるためのプログラムである。
このようなプログラムは、はじめからコンピュータに備えるＲＯＭや他の不揮発性記憶媒体（フラッシュメモリ，ＥＥＰＲＯＭ等）などに格納しておいてもよい。しかし、メモリカード、ＣＤ、ＤＶＤ、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
【００９４】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
また、以上説明してきた各実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【００９５】
１：画像処理システム、１００ａ〜１００ｃ：ホスト装置、２００：印刷制御装置、２０１：ＣＰＵ、２０２：ＲＯＭ、２０３：ＲＡＭ、２０４：ＨＤＤ（ハードディスクドライブ）、２０５：通信Ｉ／Ｆ（インタフェース）、２０６：操作部、２０７：表示部、２０８：システムバス、２１１：ジョブ受信部、２１２：ジョブ制御部、２１３：メモリ判断部、２１４：メモリ制御部、２１５：エンジン管理部、２１６−１：第１画像処理エンジン、２１６−２：第２画像処理エンジン、２１７：印刷データ生成部、２２０：ワークエリア、２２１：ジョブデータ保存領域、２２２−１：第１エンジン用データ保存領域、２２２−２：第２エンジン用データ保存領域、２２３：処理後データ保存領域、２３０：印刷ジョブデータ、２３１：ジョブデータ、２４０：処理後データ、２５０：印刷データ、３００：印刷装置
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２０１４−５０９９２号公報
【特許文献２】特開２００９−２７６９０７号公報
【図１】
2016178536.tif 000003
【図２】
2016178536.tif 000004
【図３】
2016178536.tif 000005
【図４】
2016178536.tif 000006
【図５】
2016178536.tif 000007
【図６】
2016178536.tif 000008
【図７】
2016178536.tif 000009
【図８】
2016178536.tif 000010
【図９】
2016178536.tif 000011
【図１０】
2016178536.tif 000012
【図１１】
2016178536.tif 000013
【図１２】
2016178536.tif 000014
【図１３】
2016178536.tif 000015