(57)【要約】【課題】ジョブ全体としての出力時間を短縮することを目的とする。【解決手段】複数のレコードから構成されるＶＤＰジョブを処理する画像処理装置であって、ＶＤＰジョブに含まれるリユーザブルオブジェクトの処理状態を管理する状態管理データを作成する作成手段と、状態管理データに基づいて、空いているＣＰＵコアに、ＶＤＰジョブのレコードを割り当てる割り当て手段と、並列処理を行っている全てのＣＰＵコアの処理が終了するまで待機する待機手段と、を有することによって課題を解決する。【選択図】図４
2012135878.tif 000002
【特許請求の範囲】
【請求項１】
複数のレコードから構成されるＶＤＰジョブを処理する画像処理装置であって、
前記ＶＤＰジョブに含まれるリユーザブルオブジェクトの処理状態を管理する状態管理データを作成する作成手段と、
前記状態管理データに基づいて、空いているＣＰＵコアに、前記ＶＤＰジョブのレコードを割り当てる割り当て手段と、
並列処理を行っている全てのＣＰＵコアの処理が終了するまで待機する待機手段と、
を有する画像処理装置。
【請求項２】
前記状態管理データは、リユーザブルオブジェクトのＲＩＰ状態として、未処理か、ＲＩＰ中か、ＲＩＰ完了を表わすＲＩＰ状態情報と、リユーザブルオブジェクトが存在するレコードの範囲を示す範囲情報と、を含み、
前記割り当て手段は、前記状態管理データに基づいて、他のレコードと共有していて、未処理、又はＲＩＰ中であるリユーザブルオブジェクトが最も少ない前記ＶＤＰジョブのレコードを空いているＣＰＵコアに割り当てる請求項１記載の画像処理装置。
【請求項３】
前記割り当て手段は、ＣＰＵコアの数だけ、前記ＶＤＰジョブに含まれるリユーザブルオブジェクトをグループ化し、最も未処理のレコードが存在するグループを空いているＣＰＵコアに割り当てる請求項１記載の画像処理装置。
【請求項４】
前記状態管理データは、リユーザブルオブジェクトの属性を含み、
前記割り当て手段は、前記属性に基づいて、前記ＶＤＰジョブに含まれるリユーザブルオブジェクトをグループ化する請求項３記載の画像処理装置。
【請求項５】
前記ＶＤＰジョブが、レコード単位でレコード正順優先パートと、レコード順不同出力優先パートと、に分けられている場合、前記割り当て手段は、前記状態管理データに基づいて、空いているＣＰＵコアに、前記ＶＤＰジョブの前記レコード順不同出力優先パートを前記レコード正順優先パートより先にＣＰＵコアに割り当て、並列ＲＩＰ処理を実行させ、その後、前記レコード正順優先パートをＣＰＵコアに割り当て、ＲＩＰ処理を実行させる請求項１記載の画像処理装置。
【請求項６】
出力済みのレコードの状況をユーザに知らせるレポートを出力する出力手段を更に有する請求項１乃至５何れか１項記載の画像処理装置。
【請求項７】
複数のレコードから構成されるＶＤＰジョブを処理する画像処理装置が実行する情報処理方法であって、
前記ＶＤＰジョブに含まれるリユーザブルオブジェクトの処理状態を管理する状態管理データを作成する作成ステップと、
前記状態管理データに基づいて、空いているＣＰＵコアに、前記ＶＤＰジョブのレコードを割り当てる割り当てステップと、
並列処理を行っている全てのＣＰＵコアの処理が終了するまで待機する待機ステップと、
を含む情報処理方法。
【請求項８】
複数のレコードから構成されるＶＤＰジョブを処理するコンピュータに、
前記ＶＤＰジョブに含まれるリユーザブルオブジェクトの処理状態を管理する状態管理データを作成する作成ステップと、
前記状態管理データに基づいて、空いているＣＰＵコアに、前記ＶＤＰジョブのレコードを割り当てる割り当てステップと、
並列処理を行っている全てのＣＰＵコアの処理が終了するまで待機する待機ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
印刷データのＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を解析してジョブをページ、若しくはオブジェクト単位で分割した印刷データを作成する。その後複数のＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）による印刷画像生成の並列処理を行う画像処理装置が知られている（特許文献１参照）。
一方で、顧客一人ひとりに対応した出力結果を印刷するバリアブルデータ印刷の需要が拡大している。バリアブルデータ印刷（ＶＤＰ）は、１つのジョブに対して、登録されている顧客データに応じて、各レコード単位で部分的に異なる出力結果を印刷するものである。レコードとは、ＶＤＰの一連の処理単位であり、例えば顧客単位で印刷を行う場合には、１顧客分の印刷データにより１レコードが構成される。
ＶＤＰジョブでは、各レコードによって変わるバリアブルオブジェクトが関連付けられ、レコードの共通背景となるマスターオブジェクトと合成されて印刷される。このようなＶＤＰは複数のレコードが含まれていてもジョブ単位で管理されており、これをＶＤＰジョブと呼ぶ。また、ジョブ内で複数回使用されるオブジェクトはリユーザブルオブジェクトと呼ばれ、一度画像展開したビットマップ画像や中間データを保持し、二度目以降の使用時には再利用することで処理時間の高速化を図ることが行われている。
バリアブルデータ印刷が広く用いられるようになるに従い、ＶＤＰジョブに上記並列化技術を適用して、ＶＤＰジョブの更なる高速化が図られてきている。
【０００３】
特許文献２に記載された従来技術では、複数の画像生成部を使用してＶＤＰジョブの高速化を図っている。各画像生成部では、ＶＤＰジョブ内に存在する全てのバリアブルオブジェクトをレコード単位でそれぞれが担当し処理を行う。処理が完了したバリアブルオブジェクトデータは画像管理部に一旦保存され、ページ画像生成部でレコード順にラスタイメージを生成する際に呼び出される。また、リユーザブルオブジェクトについては、このページ画像生成部において処理される。この実施形態では画像生成部は複数で並列動作するが、最終的な印刷画像を生成するページ画像生成部は１つである。よって、出力結果はレコード順に出力される。
特許文献３に記載された従来技術でも、複数のページ画像生成部にレコード単位での並列処理を行い、ＶＤＰジョブの高速・効率化を図っている。プリンタエンジンの出力速度・状況に応じて、並列で処理するレコード数を変化させる。この場合、プリンタエンジンが一定のペースで出力することができ、出力途中のレコードよりも先のレコードを処理してしまい、メモリやＣＰＵの無駄な使用が軽減される。こちらも出力順はレコード順である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２９７５６０号公報
【特許文献２】特許第４０４９２０３号明細書
【特許文献３】特開２００９−１７２９１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＶＤＰを並列化する場合、従来検討されてきたページ並列やオブジェクト並列では、ページ順・レコード順に出力する必要がある。そのため、特定のページの処理に時間がかかった場合、それ以降のページが出力できず、待ち時間が発生し、ジョブ全体として時間がかかるという問題があった。一方、ＶＤＰではレコード単位での成果物が重視されており、レコード内でのページ順序が正しく出力されていれば、必ずしもレコード順序でなくてもよいケースが存在する。例えば、顧客に応じた広告を載せたカタログ等は、事前に印刷して準備しておく必要がある。しかし、顧客はレコードの順に来店することはほとんどなく、印刷物のレコード内でのページ順序が正しければ、レコード順に出力する必要はない。
【０００６】
本発明はこのような問題点に鑑みなされたもので、ジョブ全体としての出力時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
そこで、本発明は、ジョブ全体としての出力時間を短縮することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のレコードから構成されるＶＤＰジョブを処理する画像処理装置であって、前記ＶＤＰジョブに含まれるリユーザブルオブジェクトの処理状態を管理する状態管理データを作成する作成手段と、前記状態管理データに基づいて、空いているＣＰＵコアに、前記ＶＤＰジョブのレコードを割り当てる割り当て手段と、並列処理を行っている全てのＣＰＵコアの処理が終了するまで待機する待機手段と、を有する。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置の一例である画像形成装置のハードウェア構成の一例を示す図である。
【図２】画像形成装置のソフトウェアモジュールの一例を示す図である。
【図３】図１のＰＤＬインタプリタをより詳細に記したソフトウェアモジュール構成の一例を示す図である。
【図４】ＶＤＰ処理の一例を示すフローチャートである。
【図５】ページ画像生成処理の一例を示すフローチャートである。
【図６】状態管理テーブル作成処理のフローチャートである。
【図７】状態管理テーブルの一例を示す図である。
【図８】ＲＩＰ処理の一例を示すフローチャートである。
【図９】レポートの出力結果の一例を示す図（その１）である。
【図１０】レポートの出力結果の一例を示す図（その２）である。
【図１１】レポートの出力結果の一例を示す図（その３）である。
【図１２】レコード単位での状態管理テーブルの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
＜実施形態１＞
図１は、画像処理装置の一例である画像形成装置のハードウェア構成の一例を示す図である。なお、本実施形態では画像形成装置単体の構成を用いて説明するが、この画像形成装置にはパーソナルコンピュータ、ワークステーション等の情報処理装置が接続される。ＶＤＰジョブは、主にこの情報処理装置からネットワークやＵＳＢに代表されるインターフェースを経由して画像形成装置に転送される。
コントローラユニット２００は、画像信号やデバイス情報の入出力を制御する。実施形態の処理内容が記述されたプログラムが、ＲＯＭ３或いはＨＤＤ４に保存され、画像形成装置にインストールされる。ＣＰＵ１は、ＲＯＭ３或いはＨＤＤ４に記憶されたプログラムをＲＡＭ２に読み出し、実行する。更に、システムバス５に接続される各デバイスをＣＰＵ１が統括的に制御する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークメモリとして機能する。ＲＯＭ３には電源ＯＮ時に実行されるブートプログラムが格納され、ＨＤＤ４にはオペレーティングシステムと本装置の制御プログラム本体が格納される。また、ＨＤＤ４は、大容量データを一時的或いは長期的に保持する目的でも使用される。Ｎｅｔｗｏｒｋ６は、ローカルエリアネットワーク１１に接続し、画像形成装置外部とのプリントデータやデバイス情報の入出力を担う。或いはＮｅｔｗｏｒｋ６を介してＲＯＭ３或いはＨＤＤ４にプログラムをインストールすることもできる。操作部Ｉ／Ｆ７は、操作部１２とのインターフェース部で、操作部１２に表示する画像データを操作部１２に対して出力する。また、操作部Ｉ／Ｆ７は、操作部１２から本装置の使用者が入力した情報を、ＣＰＵ１に伝える役割をする。操作部１２は、出力器として液晶パネルと音源とを備え、入力器としてタッチパネルとハードキーとマイクとを備えるものである。コントローラユニット２００は、デバイスＩ／Ｆ８を介して、プリンタエンジン１３に接続される。デバイスＩ／Ｆ８は、ＣＰＵ１の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。プリンタエンジン１３は、コントローラユニット２００からの画像信号を媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでもよい。ＲＩＰ９は、中間プリントデータをラスタイメージに展開する専用ハードウェアである。ＲＩＰ９は、ＣＰＵ１によりＲＡＭ２上に生成された中間プリントデータを高速、かつ、ＣＰＵ１の実行と並列に、処理するものである。プリンタ画像処理部１０は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像圧伸部１４は、画像データの圧縮・伸張処理を行う。
【００１２】
画像形成装置におけるプリンタエンジン１３以外の部分はＲＩＰ９のように、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェア回路として構成してもよい。逆にハードウェア回路の一部乃至全部をソフトウェアで実現してもよい。
また、システムバス５に対し、ＣＤやＤＶＤ等の可搬型ディスク記録媒体に対するディスクドライブ、フラッシュメモリ等の可搬型の不揮発性記録媒体に対するメモリリーダライタ等が接続されてもよい。また、実施形態の処理内容が記述されたプログラムが前記可搬型記憶媒体を経由して、ＲＯＭ３或いはＨＤＤ４に保存され、画像形成装置にインストールすることもできる。
また、ＣＰＵ１は、並列処理を実現するために、ハードウェアとしてプロセッサを複数有するマルチプロセッサシステムを採用する。また、マイクロプロセッサとして、複数のプロセッサコアを備えているものでもよい。ハイパースレッディングのようなプロセッサ内のレジスタやパイプラインの空き時間を有効利用して１つのプロセッサをあたかも複数のプロセッサであるかのように見せる技術が利用出来るものを用いてもよい。ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成でもよい。本実施形態の画像形成装置は、複数プロセッサをページ画像生成部として使用し、情報レコード（以下、単にレコードという）を処理単位として割り当てる。
ＣＰＵ１が、ＨＤＤ４等に記憶されているプログラムに基づき処理を実行することによって、後述するソフトウェアモジュール構成及びフローチャートに係る処理が実現される。
【００１３】
図２は、画像形成装置のソフトウェアモジュールの一例を示す図である。
データ受信部２０１は、ホストから送信されたプリントデータを受信し、受信したデータはジョブ制御部２０２を介してジョブデータ管理部２０８で保持される。ジョブ制御部２０２は、データ受信から印刷までのジョブ制御の全般を司る。ＰＤＬインタプリタ２０３は、プリントデータを解釈して、中間データであるディスプレイリストを生成する。生成されたディスプレイリストはジョブ制御部２０２を介してジョブデータ管理部２０８で保持される。レンダラ２０４は、ディスプレイリストからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアのＲＩＰ９により実行される。生成されたビットマップイメージは、ジョブ制御部２０２を介してジョブデータ管理部２０８で保持される。プリンタドライバ２０５は、デバイスＩ／Ｆ８を介してプリンタエンジンへの印刷指示とビットマップイメージの送出とを行う。ユーザインターフェース２０６は、操作部Ｉ／Ｆ７を介して、操作部１２を制御するモジュールである。ユーザインターフェース２０６は、主に操作部１２の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、ユーザインターフェース２０６は、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部２０２に指示を伝達する。ジョブデータ管理部２０８は、プリントデータ、ディスプレイリスト、ビットマップイメージのそれぞれを一時的若しくは長期的に保持管理するデータベースである。本実施形態では、ＰＤＬインタプリタ２０３、レンダラ２０４を複数持つ構成をとり、並列処理を実現する。
【００１４】
図３は、図１のＰＤＬインタプリタ２０３をより詳細に記したソフトウェアモジュール構成の一例を示す図である。
ＰＤＬインタプリタ２０３は、ＶＤＰジョブの解釈を行い、ＤＬビルダ２１２により中間データであるディスプレイリストを出力する。キャッシュ制御部２１１は、描画オブジェクトをビットマップイメージ、若しくはディスプレイリストの形式でキャッシュする。ＶＤＰジョブで描画オブジェクトの再利用が指示された場合、ＰＤＬインタプリタ２０３は、キャッシュ制御部２１１と連動して描画オブジェクトの再利用を行う。
【００１５】
次に、ＶＤＰ処理の概要を、図４のフローチャートを用いて説明する。図４は、ＶＤＰ処理の一例を示すフローチャートである。
始めにＳ１００１において、データ受信部２０１が情報処理装置よりＮｅｔｗｏｒｋ６を介して送信されたＶＤＰジョブを受信し、ジョブ制御部２０２に対してジョブ投入通知を行う。ジョブ制御部２０２は、受信したＶＤＰジョブをジョブデータ管理部２０８にスプールする。次にＳ１００２において、ジョブ制御部２０２は、ＰＤＬインタプリタ２０３に対してＶＤＰジョブに含まれるリユーザブルオブジェクトの状態管理テーブルの作成を指示する。なお、状態管理テーブルは、状態管理データの一例である。ＰＤＬインタプリタ２０３は、ＶＤＰジョブを解釈し、リユーザブルオブジェクトの状態管理テーブルを作成し、Ｓ１００３に進む。Ｓ１００３において、ジョブ制御部２０２は、ＰＤＬインタプリタにＶＤＰジョブに未処理のレコードがあるか判定を指示する。未処理のレコードが存在していた場合は、ジョブ制御部２０２は、Ｓ１００４に進む。Ｓ１００４において、ジョブ制御部２０２は、空いているＣＰＵコア（以下、単にコアという）が存在するか判断する。空いているコアが存在しない場合は、ジョブ制御部２０２は、コアが空くまで待機する。空いているコアが存在する場合は、ジョブ制御部２０２は、Ｓ１００５に進む。Ｓ１００５において、ジョブ制御部２０２は、空いているコアにレコードを割り当てる分配処理を行う。分配処理の完了後は、ジョブ制御部２０２は、Ｓ１００３に進む。Ｓ１００３において、ジョブ制御部２０２は、未処理のレコードが存在しない場合は、Ｓ１００６に進む。Ｓ１００６において、ジョブ制御部２０２は、並列処理を行っている全てのコアの処理が終了するまで待機する。ジョブ制御部２０２は、全てのコアが処理を終了したことを確認し、ＶＤＰ処理を終える。
【００１６】
次に、各コアで並列処理されるページ画像生成処理について、図５のフローチャートを用いて説明する。図５は、ページ画像生成処理の一例を示すフローチャートである。
ジョブ制御部２０２から担当するレコードを分配されたら、Ｓ１１０１においてＰＤＬインタプリタ２０３は、未処理のページがあるか判定する。未処理のページが存在する場合は、ＰＤＬインタプリタ２０３は、Ｓ１１０２に進む。Ｓ１１０２において、ジョブ制御部２０２は、ＰＤＬインタプリタ２０３にディスプレイリストの生成を指示する。ＰＤＬインタプリタ２０３は、中間データであるディスプレイリストを生成する。ジョブ制御部２０２は、生成されたディスプレイリストをジョブデータ管理部２０８に一時的に保持する。次にＳ１１０３において、ジョブ制御部２０２は、ディスプレイリストをビットマップ化するようにレンダラ２０４に指示する。レンダラ２０４は、ＲＩＰ９を用いてディスプレイリストをビットマップイメージ化する。次にＳ１１０４で、ジョブ制御部２０２は、生成されたビットマップイメージを画像圧伸部１４により圧縮し、ジョブデータ管理部２０８により、ジョブデータ管理部２０８の管理対象から削除され、Ｓ１１０１に戻る。Ｓ１１０１において、ＰＤＬインタプリタ２０３は、未処理のページが存在しない場合は、Ｓ１１０５に進む。Ｓ１１０５においてジョブ制御部２０２は、プリンタドライバ２０５にビットマップイメージのプリントエンジンへの送信を指示する。プリンタドライバ２０５は、プリンタエンジン１３と同期を取りながらビットマップイメージを送信する。また、プリンタドライバ２０５は、送信する前に画像圧伸部１４によりビットマップイメージの伸張処理を行う。プリンタドライバ２０５は、プリンタエンジン１３への送信が終了したビットマップイメージをジョブデータ管理部２０８から削除する。次にＳ１１０６において、プリンタドライバ２０５は、コアを開放し、ジョブ制御部２０２に通知する。本実施形態では図４のフローチャートの処理が、ＣＰＵコア数に応じて並列して処理される。
【００１７】
次に、ＶＤＰ処理のＳ１００２におけるリユーザブルオブジェクトの状態管理テーブル作成処理について、より詳しく説明する。ＶＤＰジョブにはページのレイアウト情報が含まれており、レイアウト情報にはリユーザブルオブジェクト・バリアブルオブジェクトのデータの情報が存在する。このレイアウト情報にはどのレコードにどのオブジェクトが存在しているかが記述されている。ＰＤＬインタプリタ２０３はこの情報を基に、リユーザブルオブジェクトの状態管理テーブルを作成する。
図６は、状態管理テーブル作成処理のフローチャートである。
まず、Ｓ１２０１においてＶＤＰジョブにオブジェクトの描画命令がある場合、オブジェクトデータがリユーザブルオブジェクトであるかをＰＤＬインタプリタ２０３が判定する。リユーザブルオブジェクトでない場合、即ち再利用されない画像データである場合には、ＰＤＬインタプリタ２０３は、Ｓ１２０４に進む。オブジェクトデータがリユーザブルオブジェクトである場合には、ＰＤＬインタプリタ２０３は、Ｓ１２０２に進む。Ｓ１２０２において、ＰＤＬインタプリタ２０３は、それまでに作成した状態管理テーブルを参照してオブジェクトデータが状態管理テーブルに既に登録されているかを判定する。登録済みでない場合には、ＰＤＬインタプリタ２０３は、Ｓ１２０３に進む。Ｓ１２０３において、ＰＤＬインタプリタ２０３は、リユーザブルオブジェクトの情報を状態管理テーブルに登録する処理を実行する。次に、Ｓ１２０４において全オブジェクトの解釈が終了したかをＰＤＬインタプリタ２０３が判定し、終了していない場合はＳ１２０１に戻り、処理を続行する。
【００１８】
図７は、状態管理テーブルの一例を示す図である。状態管理テーブルが保持する情報は、各オブジェクトのＲＩＰ状態（未処理、ＲＩＰ中、ＲＩＰ完了）（処理状態を示す状態情報）、存在するレコードの範囲（範囲情報）、オブジェクトの属性（スコープ属性等）を含む。
次に、ＶＤＰ処理のＳ１００５における担当レコード分配処理について説明する。ジョブ制御部２０２は、ＶＤＰジョブをオブジェクト状態管理テーブルの情報を基にレコード単位で処理を分配する。分配処理が始まると、ジョブ制御部２０２は、分配するレコードを決定するために、オブジェクト状態管理テーブルの中のオブジェクトの情報を参照する。ジョブ制御部２０２は、オブジェクトが存在するレコードを参照し、他の並列に処理されているレコードと比較して、独立性の高いレコードを選択する。
本実施形態におけるより具体的なレコード分配処理について、図７を用いて説明する。図７では、レコード１にはオブジェクトＡ・Ｂ・Ｃが存在し、レコード２にはオブジェクトＡ・Ｃ・Ｄが、レコード３にはオブジェクトＢ・Ｃ・Ｅ・Ｆが、レコード４にはオブジェクトＢ・Ｅ・Ｆが、レコード５にはオブジェクトＡ・Ｂ・Ｃ・Ｅが存在している。本実施形態では他のレコードで共有していて、未処理又はＲＩＰ中であるリユーザブルオブジェクトが最も少ないレコードが独立性の高いレコードとして判定される。よってレコード１が並列で処理されている場合、レコード２とレコード４とがレコード１と比較して共通で含まれている未処理、又はＲＩＰ中のオブジェクトの数が少ない（共に１つ）ため、独立性が高いと判断される。このように同じレベルで独立性が高いと判断された場合、本実施形態では、ジョブ制御部２０２は、リユーザブルオブジェクトのＲＩＰ状態に関係なく、共有しているオブジェクトの数が少ない方を選ぶものとする。よって、ジョブ制御部２０２は、並列して処理するレコードとしてレコード４を選択し、ＰＤＬインタプリタ２０３に分配する。以上の処理によって１つのリユーザブルオブジェクトを複数のレコード並列処理が同時に参照することによる、待ち状態の発生、若しくは再ＲＩＰの発生を低減する。
【００１９】
次に各コアが並列で処理しているページ画像生成処理の内、Ｓ１１０２からＳ１１０３までのＲＩＰ処理について、図８を用いて説明する。図８は、ＲＩＰ処理の一例を示すフローチャートである。
まず、Ｓ１３０１においてＰＤＬインタプリタ２０３は、ＶＤＰジョブに未処理であるオブジェクトの描画命令があるか判定する。未処理であるオブジェクトが存在する場合、ＰＤＬインタプリタ２０３は、Ｓ１３０２に進む。Ｓ１３０２において、ＰＤＬインタプリタ２０３は、オブジェクトデータがリユーザブルオブジェクトであるかを判定する。リユーザブルオブジェクトでない場合、即ち再利用されない画像データである場合には、ＰＤＬインタプリタ２０３は、Ｓ１３０３に進む。Ｓ１３０３において、ＰＤＬインタプリタ２０３は、オブジェクトデータの描画命令を解釈して部分ディスプレイリストを生成する処理を実行する。
オブジェクトデータがリユーザブルオブジェクトである場合には、ＰＤＬインタプリタ２０３は、Ｓ１３０４に進む。Ｓ１３０４において、ＰＤＬインタプリタ２０３は、リユーザブルオブジェクトの状態管理テーブルを参照し、リユーザブルオブジェクトのＲＩＰ状態情報を取得する。リユーザブルオブジェクトのＲＩＰ状態が未処理であった場合は、ＰＤＬインタプリタ２０３は、Ｓ１３０５に進む。Ｓ１３０５において、ＰＤＬインタプリタ２０３は、リユーザブルオブジェクトの状態管理テーブルのＲＩＰ状態情報を未処理からＲＩＰ中に更新する。次にＳ１３０６においてＳ１３０３と同様にＰＤＬインタプリタ２０３は、部分ディスプレイリストを生成する処理を実行する。ここで、部分ディスプレイリストとは、１ページ単位で生成されるディスプレイリストに対して、オブジェクト単位で生成される部分的なディスプレイリストのことである。次に、Ｓ１３０７において、ＰＤＬインタプリタ２０３は、Ｓ１３０６において生成された部分ディスプレイリストをキャッシュに格納する。格納先はキャッシュメモリの使用状況に応じて、キャッシュメモリ若しくはＨＤＤ上に格納する。次に、Ｓ１３０８において、ＰＤＬインタプリタ２０３は、オブジェクトの状態管理テーブルのＲＩＰ状態情報をＲＩＰ中からＲＩＰ完了に更新し、Ｓ１３０１に戻る。Ｓ１３０４において、ＰＤＬインタプリタ２０３は、オブジェクトのＲＩＰ状態情報がＲＩＰ中又はＲＩＰ完了であった場合もＳ１２０１に戻る。以上の処理により、レコードに含まれる全ページに対応する部分ディスプレイリストが生成される。Ｓ１３０１において、未処理であるオブジェクトがレコードに存在しない場合、ＰＤＬインタプリタ２０３は、Ｓ１３０９に進む。
【００２０】
Ｓ１３０９において、ＰＤＬインタプリタ２０３は、担当レコードの中にＲＩＰ中であるオブジェクトが存在するか判定する。存在する場合は、Ｓ１３１０に進み、ＰＤＬインタプリタ２０３は、他のプロセスによる該オブジェクトのＲＩＰ完了を待つ。存在しない場合はＳ１３１１に進み、ＰＤＬインタプリタ２０３、キャッシュ制御部２１１の何れかにより、レコードの全ページに含まれる全ディスプレイリストを生成する。次にＳ１３１２において、レンダラ２０４は、レコードに含まれるディスプレイリストからビットマップイメージを生成する。
以上のＲＩＰ処理をＣＰＵのコア数に応じて並列処理を行う。これにより、レコード単位でページ画像生成処理の並列化を実現し、かつ、複数レコードで共有されるオブジェクトの処理の二重ＲＩＰ・処理待ちの発生を低減する。
【００２１】
本実施形態ではページ画像生成部において全ページの画像生成が完了したレコードから、デバイスＩ／Ｆ８を介して逐次、プリンタエンジン１３にデータを送信する。プリンタエンジン１３は、送られてきたデータを元に印刷物を生成し、出力する。この場合、レコードの順序が順不同になってしまい、出力結果が期待したものであるかどうかの検品処理が難しくなる。そのため、例えば、ジョブ制御部２０２は、出力済み（印刷済み）のレコード状況を通知するレポートを任意の間隔で出力することにより、ユーザの検品をサポートする。レポートの出力間隔は一定数のレコードが出力される毎でもよいし、ユーザが任意にＶＤＰジョブ投入時に決めるでもよい。この間隔はジョブの処理中でも変更することができるように構成することができる。また、レポートの出力先は紙でもＵＩでもよい。図９、図１０、図１１にこのレポートの出力結果の一例を示す。
【００２２】
＜実施形態２＞
実施形態１では、１レコード単位で処理を説明する並列化させるため、１レコード分のＲＩＰ処理が終了するごとにジョブ制御部２０２が状態管理テーブルを参照し、次に処理をするレコードを決めた。しかし、ＰＯＤ市場では１００００レコード以上の大量のレコードを持つＶＤＰジョブも存在する。こういったＶＤＰジョブの場合、１レコード単位でＲＩＰ処理を行い、ジョブ制御部２０２にて、次に処理するレコードを決定する分配処理を毎回行うことは効率的ではない。
よって本実施形態では、ジョブ制御部２０２における分配処理の軽減のため、複数のレコードをグループ化し、グループ単位で並列処理する。この場合、前記ＶＤＰ処理における担当レコード分配処理時に、複数レコードをグループ化する。ジョブ制御部２０２は、ＶＤＰジョブに含まれるレコード群は並列処理できるプロセス数、つまりコアの数だけグループに分ける。例えば、４つのコアが並列して処理でき、ＶＤＰジョブ内に１００００レコード存在する場合、ジョブ制御部２０２は、２５００レコードずつの４グループに分け、それぞれのコアに分配して並列処理を行う。グループ化する際には例えば、ジョブ制御部２０２は、前記オブジェクトの状態管理テーブルの中のオブジェクトのスコープ属性に注目してグループ化する。ジョブ制御部２０２は、同じレコードセットのスコープ属性を持つオブジェクトが多く存在するものをグループ化していき、グループ間でのリユーザブルオブジェクトの独立性を高める。
【００２３】
本実施形態の場合、ジョブ制御部２０２は、レコード単位での状態管理テーブルも作成する。レコード単位での状態管理テーブルは、図１２に示すように各レコードの出力処理情報（処理完了、処理中、未処理）とどのグループに属しているかの情報を持っている。各コアは担当のレコードを処理する際にこれを更新する。担当グループの処理が終了すると、ジョブ制御部２０２は、レコード単位の状態管理テーブルを参照する。ジョブ制御部２０２は、その情報から最も未処理のレコードが存在するグループを決定し、空いているコアを割り当て、並列処理を行う。
本実施形態では、並列の単位を処理状況に応じてグループ単位からレコード単位に遷移させ、並列性を高めることができる。
【００２４】
＜実施形態３＞
レコード並列を行う際、ジョブ制御部２０２は、並列処理するレコードを決定するが、例えば印刷用紙の種類がレコード単位で違う場合等は、レコード正順で処理することが望ましい。このようなＶＤＰジョブの場合は、上述した効果は薄くなるが、部分的にレコード正順で、その他はレコード順不同でもよいケースも存在する。この際は、画像形成装置は、部分的にレコード正順優先モードと、レコード順不同出力速度優先モードと、を切り替えて処理を行う。
この場合は、情報処理装置から画像形成装置にＶＤＰジョブを投入する際にユーザがレコード正順優先の領域をレコード単位で指定する。画像形成装置は、ＶＤＰジョブを受信した後、ジョブ制御部２０２において、ＶＤＰジョブをレコード正順優先パートとレコード順不同出力優先パート（レコード順不同高速出力優先パート）とに分ける。レコード順不同出力パートを先に処理すると、１つのページ若しくはオブジェクトの処理に時間がかかっていても、先に出力できるレコードから出力できる。また、処理に時間がかかるリユーザブルオブジェクトがレコード正順優先パートでも使用されている場合はＲＩＰ完了されている。したがって、レコード正順優先パートを先に処理するよりも早く処理が終了する。
よって、本実施形態ではレコード順不同出力優先パートを先に並列ＲＩＰ処理し、その後レコード正順優先パートをＲＩＰ処理する構成をとる。
以上により、部分的にレコード正順、それ以外はレコード順不同でも大丈夫なＶＤＰジョブの高速処理が実現できる。
【００２５】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２６】
以上、上述した各実施形態によれば、ＶＤＰジョブを並列処理する際に、特定のページの処理に時間がかかる場合でも、処理が終わった他のレコードを出力することができ、ジョブ全体としての出力時間が短縮される。
【００２７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2012135878.tif 000003
【図２】
2012135878.tif 000004
【図３】
2012135878.tif 000005
【図４】
2012135878.tif 000006
【図５】
2012135878.tif 000007
【図６】
2012135878.tif 000008
【図７】
2012135878.tif 000009
【図８】
2012135878.tif 000010
【図９】
2012135878.tif 000011
【図１０】
2012135878.tif 000012
【図１１】
2012135878.tif 000013
【図１２】
2012135878.tif 000014