以下、図面に基づき本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る印刷システム5を示す。印刷システム5は、複数のクライアントシステム7(7A、7B、7C)と、クラウドサービスシステム6がWAN(Wide Area Network)4を介して接続されて構成されている。なお、クライアントシステム7A、7B、7Cのうち、任意のいずれか1つを指す場合は、クライアントシステム7と示す。
クライアントシステム7は、印刷データに基づいて印刷を行う。印刷を行う際には、印刷データに対してRIP処理を行い、そのRIP処理で生成されたラスタ画像の示す画像を後述のプリンタエンジン20にて記録紙上に画像形成する。また、クライアントシステム7は、印刷データの一部に対するRIP処理をクラウドサービスシステム6に代行させる機能を果たす。クライアントシステム7で行われるRIP処理と、クラウドサービスシステム6で行うRIP処理を並列的に行うことで、RIP処理の高速化を図ることができる。
図2は、クライアントシステム7の構成を示す。クライアントシステム7は、印刷装置10A、印刷装置10Bと、クライアント端末40と、ネットワーク間接続装置50が、LAN(Local Area Network)3で接続されて構成されている。なお、印刷装置10A、10Bのうち、任意のいずれか1つを指す場合は、印刷装置10と示す。
印刷装置10は、クライアント端末40から送出された印刷データに係る画像を記録紙に画像形成して出力する印刷ジョブを実行する機能を備えている。
クライアント端末40は、印刷ジョブを印刷装置10に投入する役割を果たす、所謂、PC(Personal Computer)端末である。
ネットワーク間接続装置50は、図1に示すWAN4を介してクラウドサービスシステム6とクライアントシステム7を接続する役割を果たす。印刷装置10がクラウドサービスシステム6とデータの送受信を行う際には、そのデータはネットワーク間接続装置50を経由する。
図3は、本発明の実施の形態に係る印刷装置10の概略構成を示す。印刷装置10は、当該印刷装置10の動作を統括的に制御するCPU11を有している。CPU11にはシステムバスを通じてフラッシュメモリ12と、RAM(Random Access Memory)13と、ハードディスク装置14と、画像生成部15と、ネットワークI/F(Interface)部16と、VideoI/F17と、プリンタエンジン20を備えている。
CPU11は、OS(Operating System)プログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。
フラッシュメモリ12には、各種のプログラムが格納されており、これらのプログラムに従ってCPU11が各種処理を実行することで印刷装置10の各機能が実現される。また、フラッシュメモリ12には、印刷装置10の一連の制御をCPU11が実行するためのプログラムが格納されている。
RAM13は、CPU11がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリや画像データを格納する画像メモリなどとして使用される。
ハードディスク装置14は、大容量の不揮発の記憶装置であり、OSプログラムや各種アプリケーションプログラム、ユーザ情報、画像データ、ネットワークI/F部16が受信した印刷ジョブ(印刷データ)等が保存される。
ネットワークI/F部16は、LAN3のネットワークを通じてクライアント端末40等との間でデータを通信する機能を果たす。たとえば、クライアント端末40から印刷ジョブ(印刷データ)を受信する場合、あるいはクライアントシステム7の外部の装置と通信を行う場合は、ネットワーク間接続装置50を介してデータの送受信を行う。
画像生成部15は、画像の拡大縮小、回転などの処理のほか、印刷データをイメージデータに変換するラスタライズ処理(RIP処理)、画像データの圧縮、伸張処理などを行う。クライアント端末40から受信した印刷ジョブに含まれる印刷データに対してRIP処理を行い、ラスタ画像を生成する。なお、印刷データは、PDL形式のデータであって、PDFデータやPPMLデータで構成されている。
プリンタエンジン20は、ラスタ画像の示す画像を記録紙上に画像形成する機能を果たす。ここでは、記録紙の搬送装置と、感光体ドラムと、帯電装置と、レーザーユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有し、電子写真プロセスによって画像形成を行う、所謂、レーザープリンタとして構成されている。画像形成プロセスは他の方式でもかまわない。
CPU11、フラッシュメモリ12、RAM13、ハードディスク装置14、画像生成部15、ネットワークI/F部16、VideoI/F17をまとめてプリンタコントローラとする。VideoI/F17は、プリンタコントローラとプリンタエンジン20間でのデータの送受信を行う。画像生成部15で生成されたラスタ画像はVideoI/F17を介してプリンタエンジン20に送られる。
印刷装置10がクライアント端末40から印刷ジョブを受信したら、CPU11は、その印刷ジョブに含まれる印刷データを解析する。この解析では、RIP処理を開始してからラスタ画像をプリンタエンジン20に供給するまでの速度(ラスタ画像供給速度とする)を調べる。プリンタエンジン20の印刷出力速度よりもラスタ画像供給速度の方が遅い場合は、プリンタエンジン20の印刷出力は最大速度が保たれず、速度ダウンが発生すると判断する。CPU11は、速度ダウンが発生すると判断した場合、印刷データの一部に対するRIP処理をクラウドサービスシステム6に代行させる。クラウドサービスシステム6が代行するRIP処理は、画像処理部15の行うRIP処理と並列的に行われるため、以後、この代行するRIP処理を、並列RIP処理と呼ぶ。ラスタ画像の生成を、画像生成部15とクラウドサービスシステム6にて並列的に行うことで、RIP処理の高速化を図り、プリンタエンジン20の速度ダウンの発生を防ぐことができる。また、代行させる処理量(並列RIP処理で依頼する処理量)は、画像生成部15によるラスタ画像の生成がプリンタエンジン20の画像形成に間に合わない分のRIP処理を上限にして決定する。また、クラウドサービスシステム6の処理能力(負荷状況等)に応じてその処理量を増減させる。
なお、図示を省略しているが、印刷装置10は、操作パネルが備えられている。操作パネルは、表示部と操作部で構成される。操作部は、スタートボタンなどのスイッチ部とタッチパネル部とを備えている。表示部は、液晶ディスプレイ(LCD…Liquid Crystal Display)などで構成され、各種の操作画面、設定画面などを表示する機能を果たす。タッチパネル部は、表示部上に設けられている。タッチパネル部は、タッチペンや指などで押下された表示部上の座標位置や、フリック操作やドラッグ操作等を検出する。ユーザはクライアント端末40、もしくは操作パネルに対して操作を行うことで、印刷装置10にジョブの実行等の指示を出すことができる。
図4は、クライアント端末40の概略構成を示す。クライアント端末40は、当該クライアント端末40の動作を統括的に制御するCPU41を有している。CPU41にはシステムバスを通じてRAM42と、ハードディスク装置43と、ネットワーク通信部44と、入力I/F45と、キーボード46と、ポインティングデバイス47と、出力I/F48と、モニタ49を備えている。
CPU41は、OSプログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。
ハードディスク装置43は、大容量の不揮発の記憶装置であり、OSプログラム等の各種のプログラムが格納されており、これらのプログラムに従ってCPU41が各種処理を実行することでクライアント端末40の各機能が実現される。
RAM42は、CPU41がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリや画像データを格納する画像メモリなどとして使用される。実施の形態では、ハードディスク装置43から印刷ジョブ(印刷データ)を作成するためのプログラムがロードされ、CPU41によって実行される。
ネットワーク通信部44は、LAN3を通じて印刷装置10とネットワーク間接続装置50との間でデータを通信する機能を果たす。
キーボード46、ポインティングデバイス47(マウス等)は、操作部としての役割を果たし、キーボード46、ポインティングデバイス47が受け付けた操作内容は入力I/F45がCPU41に送信する。
モニタ49は、液晶ディスプレイなどで構成され、出力I/F48から出力される各種の操作画面、設定画面などを表示する表示部としての機能を果たす。
印刷ジョブ(印刷データ)を作成するためのプログラムは通常GUI(Graphical User Interface)ベースのプログラムであり、キーボード46及びポインティングデバイス47が画像編集のため使用され、またその内容はモニタ49において随時確認可能となる。
画像編集終了後は印刷ジョブ(印刷データ)の生成が行われ、生成された印刷ジョブ(印刷データ)はネットワーク通信部44を経由し印刷装置10へ送信される。
図5は、ネットワーク間接続装置50の概略構成を示す。ネットワーク間接続装置50は、当該ネットワーク間接続装置50の動作を統括的に制御するCPU51を有している。CPU51にはシステムバスを通じてフラッシュメモリ52と、RAM53と、第1ネットワークI/F部54と、第2ネットワークI/F部55とを備えている。
CPU51は、OSプログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。
フラッシュメモリ52は、電源をオフにしても記憶内容が破壊されないメモリである。フラッシュメモリ52には各種のプログラムが格納されており、これらのプログラムに従ってCPU51が各種処理を実行することでネットワーク間接続装置50の各機能が実現される。他にも、ネットワーク間接続装置50の各種設定情報等の保存に使用される。
RAM53は、CPU51がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリなどとして使用される。具体的には、ネットワークパケット転送のためのプログラムが、フラッシュメモリ52よりRAM53にロードされ、CPU51において実行される。RAM53には、パケット転送のためのルーティング情報もまた存在し、ネットワークパケット転送のためのプログラムは、このルーティング情報に基づき第1ネットワークI/F部54、あるいは第2ネットワークI/F部55のうちの一方より受信したパケットを他方へ転送する処理を行う。
第1ネットワークI/F部54は、LAN3を通じて印刷装置10とネットワーク間接続装置50との間でデータを通信する機能を果たす。
第2ネットワークI/F部55は、WAN4を通じてクラウドサービスシステム6(後述のクラウドサービスシステム6を構成するネットワーク間接続装置50、図6参照)との間でデータを通信する機能を果たす。
図6は、クラウドサービスシステム6の詳細を示す。クラウドサービスシステム6は、クラウドサーバとしての機能を果たす画像生成サーバ60Aと、画像生成サーバ60Bと、ネットワーク間接続装置50がLAN3を介して接続されて構成されている。なお、画像生成サーバ60A、60Bのうち、任意のいずれか1つを指す場合は画像生成サーバ60と示す。LAN3とネットワーク間接続装置50は、図2に示すものと同一構成であるが、図2に示すものとは別体である。
画像生成サーバ60はラスタ画像の生成を行う役割を果たす。ネットワーク間接続装置50を介して、印刷装置10から並列RIP処理の依頼(リクエストジョブ)を受信したら、受信したリクエストジョブに含まれる印刷データに対してRIP処理を行い、ラスタ画像を生成する。また、その生成したラスタ画像を、ネットワーク間接続装置50を介して、印刷装置10に送信する。
図7は、画像生成サーバ60の概略構成を示す。画像生成サーバ60は、当該画像生成サーバ60の動作を統括的に制御するCPU61を有している。CPU61にはシステムバスを通じてRAM62と、ハードディスク装置63と、ネットワーク通信部64とを備えている。
CPU61は、OSプログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。ハードディスク装置63は、大容量の不揮発の記憶装置であり、各種のプログラム(ラスタ画像を生成のためのプログラム等)や、受信したデータが格納される。また、これらのプログラムに従ってCPU61が各種処理を実行することで画像生成サーバ60の各機能が実現される。
RAM62は、CPU61がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリや画像データを格納する画像メモリなどとして使用される。ラスタ画像を生成するためのプログラムは、ハードディスク装置63からRAM62にロードされた後、CPU61によって実行される。
ネットワーク通信部64は、LAN3を通じてネットワーク間接続装置50との間でデータを通信する機能を果たす。並列RIP処理の依頼(リクエストジョブ)は、ネットワーク通信部64を通じて受信され、この内容に基づいて生成したラスタ画像もまたネットワーク通信部64を通じてクライアントシステム7に送信される。
次に、印刷装置10が取り扱う印刷データについて説明する。
印刷装置10が印刷出力する印刷物は非バリアブルの印刷物と、バリアブルの印刷物に分けられる。図8(A)は非バリアブルの印刷物の例を、図8(B)はバリアブルの印刷物の例を示す。図(A)は、非バリアブルの印刷物としてポスターやチラシなど、大量に印刷される同一内容の印刷物を示す。図8(B)は、バリアブルの印刷物として、宛先毎に違った住所氏名が印刷されるダイレクトメールなど、内容の一部に可変する要素を含む印刷物を示す。
非バリアブルの印刷に適したデータ形式の代表的なものは、PDF形式などであり、またバリアブルの印刷に適したデータ形式の代表的なものは、PPML形式(PPMLデータとPDFデータをZIPアーカイブした形式)のものである。図9は、図8(B)に挙げたバリアブルの印刷物を印刷する指示のPPMLデータを示し、図10は、図9のPPMLファイルによって参照されるPDFデータの例を示す。
PPMLデータは、PDFデータの配置、配列を示すデータである。印刷を行う際には、PPMLデータの示す配置、配列で、RIP処理後のPDFデータを並べて合成することによって、記録紙1ページに印刷されるラスタ画像(以後、ページラスタ画像と呼ぶ。)を生成する。PPMLデータは、PODi(Digital Printing Initiative)によりその仕様が規定されており、実際にはPPMLはXML(Extensible Markup Language)形式での記述となるが、図9ではこれを理解し易く示している。
PDFデータは、複数ページにおいて繰り返し使用される再利用オブジェクトと、1ページのみに使用される一時利用オブジェクトの2種類がある。図9に示すように、PPMLデータにおいては通常先頭部において再利用オブジェクトが宣言され、その後に各ページのレイアウト記述が続く構成となっている。各ページは一時利用オブジェクトのみ、あるいは一時利用オブジェクトと再利用オブジェクトから成る。図9の例では、ページ1のオブジェクト1、オブジェクト2、オブジェクト3が一時利用オブジェクトであり、オブジェクト4が再利用オブジェクトとなっている。ページ2以降も基本的に同様の記述が続くことになるが、一時利用オブジェクトの部分はページごとに可変となる。
図10は、図9のPPMLデータより参照されるPDFデータを示す。図10は、PDFデータをViewer表示した際の各ページの内容を示している。ページ1は再利用オブジェクトとして利用されるものであり、ページ2〜4は一時利用オブジェクトとして利用される郵便番号、住所、氏名に対応する内容となっている。なお、ページ5以降には、内容が変化した一時利用オブジェクト、つまり各人に対応した郵便番号、住所、氏名の内容のデータが繰り返し現れることになる。
印刷装置10は、先ず再利用オブジェクトをRIPし、そのRIP処理によって生成されるラスタ画像(以後、キャッシュ画像と呼ぶ)をRAM13にキャッシュする。その後、各ページの一時利用オブジェクトをRIPし、そのRIP処理によって生成されるラスタ画像(以後、可変画像と呼ぶ)とキャッシュ画像を、PPMLデータの示す配置、配列で合成することによって、ページラスタ画像を生成する。
次に、印刷データから、ページラスタ画像を生成する処理のための機能構成、及び処理の流れについて説明する。
図11は、本発明の印刷システム5において、PPMLデータからページラスタ画像を生成する処理を行う為の機能構成図である。なお、ここでは、ネットワーク間接続装置50は省略している。
クライアントシステム7は、クライアント端末40と印刷装置10を含み、印刷装置10は、ハードディスク装置14と、スプーラスレッド81と、再利用オブジェクト画像キャッシュメモリ82と、送信スレッド83と、PPMLインタプリタスレッド84と、PS(Post Script)/PDFインタプリタスレッド85と、エンジン制御スレッド86と、受信/エンジン転送スレッド87と、フレームメモリ88と、プリンタエンジン20で構成されている。
スプーラスレッド81は、クライアント端末40から印刷ジョブ(印刷データ)を受信し、ハードディスク装置14に格納する。
PPMLインタプリタスレッド84は、ハードディスク装置14に格納された印刷データのPPMLデータによって、ページラスタ画像を生成する機能を持つ。また、必要時には、後述の送信スレッド83を経由し、クラウドサービスシステム6へ並列RIP処理を依頼するリクエストジョブを送信する。ページラスタ画像を生成する際には、再利用オブジェクトはRIPし、キャッシュ画像としてキャッシュしておき、可変画像を生成したら、後述のフレームメモリ88内でキャッシュ画像と合成する。
PS/PDFインタプリタスレッド85は、印刷ジョブに含まれているPDFファイルにRIP処理を行い、ラスタ画像(キャッシュ画像や、可変画像)を生成する機能を持つ。
フレームメモリ88は、生成された可変画像及び合成済みページ画像を一時的に格納するために使用される。再利用オブジェクト画像キャッシュメモリ82は、RIPされた再利用オブジェクト(キャッシュ画像)をキャッシュする際に使用される。
エンジン制御スレッド86は、ページラスタ画像をプリンタエンジン20へ転送する機能を持つ。
送信スレッド83は、クラウドサービスシステム6へ並列RIP処理を依頼するリクエストジョブを送信する機能をもつ。
受信/エンジン転送スレッド87は、クラウドサービスシステム6から圧縮状態のページラスタ画像を受信し、フレームメモリ88に格納し、伸張した後、エンジン制御スレッド86へ通知する機能を持つ。
クラウドサービスシステム6は、画像生成サーバ60を含み、画像生成サーバ60は、ハードディスク装置63と、受信スレッド91、PPMLインタプリタスレッド92、フレームメモリ93、PS/PDFインタプリタスレッド94と、再利用オブジェクト画像キャッシュメモリ95で構成されている。
受信スレッド91は、送信スレッド83からリクエストジョブを受信し、ハードディスク装置63に格納する。
PPMLインタプリタスレッド92は、ハードディスク装置63に格納されたリクエストジョブに含まれるPPMLデータに従って、ページラスタ画像を生成する機能を持つ。また、生成したページラスタ画像を圧縮し、クライアントシステム7に送信する。
PS/PDFインタプリタスレッド94は、リクエストジョブに含まれているPDFファイルをRIPし、ラスタ画像(キャッシュ画像や可変画像)を生成する機能を持つ。
フレームメモリ93は、生成された可変画像及び合成済みページ画像を一時的に格納するために使用される。再利用オブジェクト画像キャッシュメモリ95は、RIPされた再利用オブジェクト(キャッシュ画像)をキャッシュする際に使用される。
なお、クラウドサービスシステム6は、図6に示すように複数台の画像生成サーバ60が備えられていることがあり得る。この場合におけるリクエストジョブの振り分け方法について説明する。
複数の画像生成サーバ60がある場合、ある1つの画像生成サーバ60が代表サーバとなってリクエストジョブの受信を行い、自装置を含む各画像生成サーバ60の負荷状況に基づき、受信したリクエストジョブのRIP処理を行う画像生成サーバ60を決定し、その決定した画像生成サーバ60へ受信したリクエストジョブの転送処理を行う。
なお、代表サーバとなった画像生成サーバ60の受信スレッド91は、リクエストジョブを受信した際、そのリクエストジョブが既にいずれかの画像生成サーバ60にて処理中のリクエストジョブに係るものである場合は、その画像生成サーバ60へ転送し、そうでない場合、処理中のジョブ数が少ない画像生成サーバ60を選択して送信する。
以上が複数の画像生成サーバ60間でのリクエストジョブの振り分けの方法であるが、以降の説明では、記述内容が過度に複雑とならないよう、振り分け処理についてはその記述を行わない。(単一の画像生成サーバ60のみ存在するクラウドサービスシステム6を想定した記述を行う。)
次に、本発明の印刷システム5が、ページラスタ画像を生成する際に行う詳細な処理の流れについて説明する。図12、図13、図14は印刷システム5においてページラスタ画像を生成する際に行う詳細な処理の流れを示す。なお、図13、図14には、クライアントシステム7で行われる処理と、クラウドサービスシステム6で行われる処理の流れを示しているが、後者の処理の流れは破線で囲み、前者の処理の流れと区別して示す。
先ず、クライアントシステム7においては、ZIPアーカイブされたバリアブルデータ(印刷データ)を受信しハードディスク装置14(図中ではHDDと記す)へ格納する(ステップS101)。これは、スプーラスレッド81(図11参照)により実行される。
以下、PPMLインタプリタスレッド84を中心に実行される処理となる。ステップS102では、ハードディスク装置14内に格納されたZIPファイルを解凍し、PPMLデータ及びPDFデータを取得する。
ステップS103では、ステップS102で取得したPPMLデータが再利用オブジェクトとして示すPDFデータをRIPし(キャッシュ画像を生成し)、キャッシュメモリに格納する。なお、ページラスタ画像を生成する処理ではPPMLインタプリタスレッド84を使用し、PDFデータをRIPする処理では、PS/PDFインタプリタスレッド85を使用するが、以下、都度の説明は省略する。
次に、10ページ分のページラスタ画像を生成し、プリンタエンジン20へ転送処理を行う(ステップS104)。ステップS104における処理は、具体的には、まず、処理対象ページの一時利用オブジェクトをRIPし(可変画像を生成し)、当該ページに含まれる再利用オブジェクトに係るキャッシュ画像と、可変画像を合成する。その後、エンジン制御スレッド86が、そのページラスタ画像をプリンタエンジン20へ転送する。この一連の処理を、10ページ分繰り返す。プリンタエンジン20はこの転送されたページラスタ画像に基づいて印刷を行う。
ステップS104では、10ページ分のページラスタ画像の生成に要した時間を計測しておく。次に、PPMLインタプリタスレッド84は、ステップS104で計測した時間の実測値から、1ページ分のページラスタ画像の生成速度(平均生成速度)を割り出し、プリンタエンジン20の印刷速度より遅いか否かを判定する(ステップS105)。
プリンタエンジン20の印刷速度は用紙サイズ及び給紙方向(用紙の長手/短手方向)により予め決まっており、この速度数値と比較する。平均生成速度がプリンタエンジン20の印刷速度以上であれば(ステップS105;Yes)、印刷が終了したか否かの判定を行い(ステップS106)、印刷終了であれば(ステップS106;Yes)、処理を終了する。印刷終了でない場合は(ステップS106;No)、ステップS104に戻って処理を継続する。
ここで、10ページ分のページラスタ画像の生成に要した時間から求めた、ページラスタ画像の平均生成速度と、プリンタエンジン20の印刷速度を比較するのは、特にバリアブル印刷データでは複数ページの異なったデータ量を持つページ群が周期的に繰り返し現れるケースが多く見られ、処理時間を平均化することが望ましいためである。
このように、平均生成速度がプリンタエンジン20の印刷速度を上回っている限りは、クライアントシステム7内で処理が完結する。
ステップS105において、ラスタ画像供給速度がプリンタエンジン20の印刷速度を下回っているとの判定となった場合(ステップS105;No)、印刷データの一部に対するRIP処理をクラウドサービスシステム6に代行させる処理を開始する。
まず、図13のステップS107にて、PPMLインタプリタスレッド84は、印刷データ(PPMLデータ、PDFデータ)における再利用オブジェクトに係る部分(記述等)を抽出してZIPアーカイブし、クラウドサービスシステム6へ送信する。
次に、クライアントシステム7とクラウドサービスシステム6の処理配分、つまり、クラウドサービスシステム6に並列RIP処理を依頼する処理量(依頼量)を決定する(ステップS108)。なお、ここで決定する依頼量は初期値である。並列RIP処理の依頼は、以後、繰り返し行われ、その度に画像生成サーバ60の混み具合(負荷状況)等によって、依頼量は増減される。なお、実施の形態では、依頼量はページ単位で決定する。
この依頼量の初期値は、画像生成部15によるラスタ画像の生成がプリンタエンジン20の画像形成に間に合わない分を上限として決定される。基本的には、間に合う分のRIP処理は、引き続き画像生成部15に行わせ、足りない分(間に合わない分)をクラウドサービスシステム6に代行させるものとする。
具体的な依頼量は、PPMLインタプリタスレッド84が、クライアントシステム7とクラウドサービスシステム6で行う処理の分配量を決め、分配量が決定することで依頼量の初期値が決定する。先ずステップS104において実行した10ページ分のページラスタ画像の生成に要した時間より、プリンタエンジン20の印刷速度に対するプリンタコントローラの生産性比率を算出する。
10ページ分のページラスタ画像の生成時間をN(秒)とし、プリンタエンジン20の印刷速度をS(PPM)、求めるべき生産性比率をRとすると、
式「R=60×10÷N÷S」
に対し具体的数値を代入することによりRが算出可能となる。次に、この生産性比率(R)をもとに処理の分配量を決定することになる。15ページ単位で以降の並列RIP処理の依頼を繰り返すこととし、クライアントシステム7側の配分をC(ページ)とすると、
「C=15×R」(切り捨てにより整数値化)
となり、クラウドサービスシステム6側の配分は、「15−C」により求められる。たとえば、印刷速度(S)が60PPM、生成時間(N)が15秒であった場合、生産性比率Rは、0.666…となり、クライアントシステム7側の配分Cは10ページ、クラウドサービスシステム6側配分は5ページとなる。このようにして、クラウドサービスシステム6に依頼する並列RIP処理の依頼量の初期値を決定する。
なお、並列RIP処理によってラスタ画像の生成を高速化しても、その生成速度がプリンタエンジン20の画像形成速度に満たない場合は、画像生成部15に割り当てる処理にかかると予測される時間(Xとする)と、クラウドサービスシステム6に割り当てる処理にかかると予測される時間(Yとする)が等しくなるように(X=Yとなるように)処理を割り振る。
次にPPMLインタプリタスレッド84は、ステップS108で決定した依頼量に基づいて、クラウドサービスシステム6に依頼する並列RIP処理で使用するPPMLデータ及びPDFデータをZIPアーカイブし、クラウドサービスシステム6へ転送する(ステップS109)。
ここで、一度クラウドサービスシステム6(画像生成サーバ60)で行われる処理の流れの説明に移る。まず、クラウドサービスシステム6は、起動後、先ず画像生成サーバ60がクライアントシステム7からの接続を待つ状態となる(ステップS201)。
クライアントシステム7のステップS107の動作において接続が行われると、クラウドサービスシステム6はZIPアーカイブを受信し、ハードディスク装置63へ格納する(ステップS202)。これは、受信スレッド91が行う動作となる。
次にPPMLインタプリタスレッド92はハードディスク装置63へ格納されたZIPアーカイブファイルの解凍を行い、PPMLデータ及びPDFデータを抽出する(ステップS203)。ここで抽出したPPMLデータ及びPDFデータは、再利用オブジェクトに係るデータのみが含まれている。
次にPPMLインタプリタスレッド92は、PS/PDFインタプリタスレッド94の機能を利用し、抽出したPPMLデータ及びPDFデータからキャッシュ画像を生成し、生成したキャッシュ画像を再利用オブジェクト画像キャッシュメモリ95へ格納する(ステップS204)。
次に、クライアントシステム7のステップS109でクライアントシステム7から送信されたZIPアーカイブを受信し、ハードディスク装置63へ格納する(ステップS205)。これは、受信スレッド91が行う動作となる。
次に、図14のステップS206では、クラウドサービスシステム6に割り当てられた分のページラスタ画像の生成処理を行う。具体的には、先ずPPMLインタプリタスレッド92において、ステップS205でハードディスク装置63に格納したZIPアーカイブファイルの解凍を行う。その解凍によって得たPPMLデータ及びPDFデータから、処理対象ページの一時利用オブジェクトをRIPし、可変画像を生成する。当該ページに含まれる再利用オブジェクトに係るキャッシュ画像を再利用オブジェクト画像キャッシュメモリ95から読み出して、フレームメモリ93にて可変画像とキャッシュ画像を合成し、ページラスタ画像を生成する。
その後、その生成したページラスタ画像を圧縮した後、WAN4経由でクライアントシステム7へ送信(返却)する(ステップS207)。なお、ステップS206、ステップS207の各ステップは、クラウドサービスシステム6に割り当てられたページ数分繰り返される。
クライアントシステム7の動作の説明に戻る。図14のステップS110では、クラウドサービスシステム6のステップS206の動作と並行して、クライアントシステム7に割り当てたページ分のページラスタ画像を生成し、プリンタエンジン20への転送を行う。これは具体的には、ステップS104において行われるものと同様の処理を、割り当てページ数分繰り返して行うことになる。
受信/エンジン転送スレッド87は、クラウドサービスシステム6より送信/返却されたページラスタ画像(圧縮されている状態)を受信し、フレームメモリ88へ格納する(ステップS111)。
次に、フレームメモリ88に格納したページラスタ画像(圧縮されている状態)に伸張処理を行い、その伸張処理後のページラスタ画像をエンジン制御スレッド86の機能を利用することによりプリンタエンジン20への転送を行う(ステップS112)。なお、ステップS111、ステップS112の各ステップもまた、クラウドサービスシステム6に割り当てたページ数分繰り返される。
次に、PPMLインタプリタスレッド84は、全データの処理が終了したか否か(印刷が終了したか否か)の判定を行い(ステップS113)、終了した場合は(ステップS113;Yes)処理を終了する。
全データが終了していない場合は(ステップS113;No)、残りの印刷データを処理するにあたって、クライアントシステム7と、クラウドサービスシステム6で行う処理の分配量を再調整する。
依頼量を調整する際には、ステップS108の時と同じく、X≧Yとなるように(画像生成部15に割り当てる処理にかかると予測される時間をXとし、クラウドサービスシステム6に割り当てる処理にかかると予測される時間をYとする)それぞれに割り振る処理量を調整する。並列RIP処理によってラスタ画像の生成を高速化しても、その生成速度がプリンタエンジン20の画像形成速度に満たない場合は、X=Yとなるように依頼量を調整する。
まず、PPMLインタプリタスレッド84は、クライアントシステム7とクラウドサービスシステム6のそれぞれに割り当てた分のRIP処理に要した時間を比較する。
クライアントシステム7に割り当てたRIP処理に要した時間と、クラウドサービスシステム6に割り当てたRIP処理に要した時間が同じであれば(ステップS114;Yes)、ステップS118に進む。
クライアントシステム7に割り当てたRIP処理に要した時間と、クラウドサービスシステム6に割り当てたRIP処理に要した時間が同じでない場合(ステップS114;No)、クライアントシステム7に割り当てたRIP処理に要した時間が、クラウドサービスシステム6に割り当てたRIP処理に要した時間よりも多ければ(ステップS115;No)、次回のリクエストジョブにおける並列RIP処理の依頼量を加算して(ステップS117)、つまり、クラウドサービスシステム6に割り当てる処理量を加算し、ステップS118に進む。
クライアントシステム7に割り当てたRIP処理に要した時間が、クラウドサービスシステム6に割り当てたRIP処理に要した時間よりも少なければ(ステップS115;Yes)、次回のリクエストジョブにおける並列RIP処理の依頼量を減算して(ステップS116)、ステップS118に進む。
ステップS115〜ステップS117は、基本的には、クラウドサービスシステム6の処理能力(負荷状況)等に対応して、並列RIP処理の依頼量を調整する位置付けとなる。画像生成サーバ60は、負荷状況(混み具合等)に応じて処理能力が変化するので、ステップS109で依頼した依頼量を消化するまでに要した時間から、画像生成サーバ60の処理能力を判断し、次回依頼する際の依頼量を調整している。
ステップS118では、PPMLインタプリタスレッド84が、プリンタコントローラ(クライアントシステム7)の処理能力に余裕が生じているか否かの判定を行う。余裕が生じていれば(ステップS118;Yes)、次回のリクエストジョブにおける並列処理の依頼量を減算して(ステップS119)、ステップS109に戻って処理を継続する。
ステップS119は、ステップS114〜ステップS117において行った次回のリクエストジョブにおける並列RIP処理の依頼量の補正処理(加算、減算)によって生じたプリンタコントローラ(クライアントシステム7)の処理能力の余裕に対する再補正処理、あるいは印刷ジョブ中のデータの重さの変化によって生じたプリンタコントローラの能力の余裕に対する補正処理の位置付けとなる。クライアントシステム7の画像生成部15によるラスタ画像の生成がプリンタエンジン20の画像形成に間に合う分のRIP処理は、全て画像生成部15で行うことが望ましいので、プリンタコントローラに余裕があれば、その分だけ処理量を増やし、クラウドサービスシステム6に割り当てる依頼量を減算する。
具体的には、ステップS110における1ページ分の平均処理時間に、ステップS114〜ステップS117の補正(加算、減算)後のクライアントシステム7に割り当てられたページ数を乗じた値が、ステップS108にて取得した10ページ分(初期値を決定した際に割り振られたページ分)のページラスタ画像を生成するまでにかかった時間を下回っていないか否かを判定し、下回っている場合は、両値が近似となるように、クラウドサービスシステム6に割り当てるページ数を減算し、その減算値をクライアントシステム7に割り当てるページ数に加算する。
ステップS118にてプリンタコントローラに余裕がない場合(ステップS118;No)、あるいはステップS119にてクラウド割当ての再補正を行った後には、ステップS109に戻って処理を継続する。
図15は、印刷システム5が並列RIP処理を行う場合における、並列RIP処理の流れをタイムチャート形式で示したものである。図15の示すタイムチャートは図12〜図14の処理の流れにおける、ステップS107〜ステップS119、及びステップS202〜ステップS207に該当する。
図15におけるA、B、Cはクライアントシステム7に含まれている部位であり、A=PPMLインタプリタスレッド84(図11参照)、B=送信スレッド83(図11参照)、C=受信/エンジン転送スレッド87(図11参照)を表す。図15、Dは、クラウドサービスシステム6に含まれている部位であり、D=PPMLインタプリタスレッド92を表す。実際にはクラウドサービスシステム6では受信スレッド91の動作が介在するが、本図においてはこの動作を省略し、PPMLインタプリタスレッド92が受信機能を併せ持つものとして示す。なお、図15中に示すページ番号は、ステップS105(図12参照)において並列RIP処理が必要との判定となった以降で処理される対象ページに対し番号を1から順番に振った、相対的なページ番号である。
図15のステップS301は、図12のステップS105において、クラウドサービスシステム6を使用しての並列RIP処理が必要との判定となった後で最初に実行されるステップS110の処理に該当する処理動作である。図15では、クライアントシステム7に割り当てるページ数が10ページであり、ステップS301は、1〜10ページのページラスタ画像の生成を行い、プリンタエンジン20へ転送する処理動作を示している。
ステップS301の開始時点では、まだ並列処理が行われていないため、プリンタエンジン20の印刷速度以上でのページラスタ画像の生成及び転送が行われていない。ステップS301を開始すると同時に、PPMLインタプリタスレッド84は、送信スレッド83を使用してページ11〜15に対応する印刷データを含むZIPアーカイブの転送を行う(ステップS302)。
クラウドサービスシステム6のPPMLインタプリタスレッド92は、送信スレッド83から受信したZIPアーカイブを解凍した後、ページ11〜15のページラスタ画像の生成を行い、その生成されたページラスタ画像を圧縮し、受信/エンジン転送スレッド87に対し返却(送信)する(ステップS303)。
受信/エンジン転送スレッド87は、受信した圧縮画像データをフレームメモリ88(図11参照)へ格納し、伸張しながらプリンタエンジン20へ転送して行く(ステップS304)。ここでは、ステップS301終了後、直ちにプリンタエンジン20への転送を開始し、プリンタエンジン20の印刷速度に遅れないようにページラスタ画像を転送していくことが期待されるが、もしこの期待通りとならない場合は、クラウドサービスシステム6に割り当てられたページ数が多すぎることになるため、次の並列RIP処理の依頼に向けて、ここでクラウドサービスシステム6に割り当てるページ数を減算補正する。
クライアントシステム7のPPMLインタプリタスレッド84は、10ページ分のページラスタ画像の生成及びプリンタエンジン20への転送が終了した直後、ページ26〜30に対応するZIPアーカイブをクラウドサービスシステム6へ転送する(ステップS305)
その後、ページ16〜25に対応するページラスタ画像の生成及び圧縮を行い、フレームメモリ88へ格納する(ステップS306)。
次に、PPMLインタプリタスレッド84は、ステップS304においてクラウドサービスシステム6が返却したページラスタ画像のプリンタエンジン20への転送が終了したことを確認し、圧縮されたページ16〜〜25のページラスタ画像の伸張とプリンタエンジン20への転送を行って行く(ステップS307)。
ここでの処理は、ステップS304の終了後直ちに開始され、プリンタエンジン20の印刷速度以上の速度で、ページラスタ画像の供給(転送)を行っていくことが期待されるが、もしこの期待通りとならない場合は、クラウドサービスシステム6に割り当てているページ数が少なすぎることになるため、次回のサイクルの並列RIP処理に向け、ここでクラウドサービスシステム6に割り当てるページ数を加算補正する。また、このタイミングにおいて、さらに図14のステップS118、119に対応する割り当てページ数の減算補正を行う。
以上が基本的な並列RIP処理の1サイクルであり、図のステップS308は、ステップS305で送信された26〜30のページに対応するZIPアーカイブに対してステップS303と同様の処理を行う。ステップS309は、ステップS308にて生成されたページ26〜30のページラスタ画像に対して、ステップS304と同様の処理を行う。
以上のように、本発明の印刷システム5では、並列RIP処理の依頼、及び、その依頼量の調整を行うことができる。これにより、クライアントシステム7のプリンタコントローラの能力ではプリンタエンジン20の印刷速度と同等以上の速度でページラスタ画像の生成/供給ができないような重いデータであっても、並列RIP処理によりページラスタ画像の生成/供給の速度を高速化し、プリンタエンジン20と同等の速度でラスタ画像の生成/供給を行うことができる。
基本的には、画像生成部15によるラスタ画像の生成がプリンタエンジン20の画像形成に間に合う分のRIP処理は、画像生成部15に行わせ、足りない分(間に合わない分)をクラウドサービスシステム6に代行させるようにして依頼量を決定する。これにより、印刷装置10のハードウェアリソースを可能な限り使用しつつ、プリンタエンジンの速度ダウンの発生を極力抑えることができる。
他にも、クラウドサービスシステム6の処理能力(負荷状況等)に応じて並列RIP処理の依頼量を調整することで、印刷システム5全体で、最も効率よく並列RIP処理を行うことができる。
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
本発明の本実施の形態では、PPMLデータ対応のソフトウェア機能構成及び処理の流れを説明したが、本発明を実施するための形態としては、他のPDLに対応したソフトウェア機能構成を採っても構わない。たとえば、PDF/PostScript、XPS、PCL・XLの形式のデータなどは、PPMLデータと違い、単独のインタプリタ機能にて、PDLデータの解析と、ラスタ画像の生成機能が完結しているが、これらのようなPDLインタプリタ機能を採用した場合と、PPMLデータに対応する機能を採用した場合との差異を述べる。
まず、図11のスレッド構成においては、クライアントシステム7におけるPPMLインタプリタスレッド84及びPS/PDFインタプリタスレッド85が単一のインタプリタスレッドに集約され、また同様にクラウドサービスシステム6におけるPPMLインタプリタスレッド92及びPS/PDFインタプリタスレッド94も単一のインタプリタスレッドに集約されることになる。
他にも、図12〜図14の処理フローにおいては、クライアントシステム7におけるステップS101及びステップS102は、受信データをハードディスク装置14へ格納し、また格納データをハードディスク装置14より再取得する処理となる。また、クライアントシステム7におけるステップS103、ステップS107、及びクラウドサービスシステム6におけるステップS202、ステップS203、ステップS204はPPMLデータを処理する際の固有の処理ステップであり、不要となる。さらに、ステップS109及びステップS205は、処理対象となるPDLよりクラウドサービスシステム6への割り当て分を抽出し送信し、クラウドサービスシステム6がこれを受信する処理となる。上記ステップ以外のページラスタ画像のハンドリング処理動作や各種判定動作部分については、PPMLデータ以外のPDLの場合でも不変となる。
なお、印刷データはPDL(ページ記述言語)形式に限らない。
本発明の実施の形態では、並列RIP処理の依頼量と、クラウドサービスシステム6にリクエストジョブを送信してから、その返信を受け取るまでの時間によって、クラウドサービスシステム6の処理能力(混み具合状況)を判断し、次回の依頼量を調整していたが、クラウドサービスシステム6から、混み具合状況(負荷状況)を示す情報を直接取得してその情報に基づいて次回の依頼量を調整してもよい。
並列RIP処理において、クラウドサービスシステム6に依頼する処理量(依頼量)の決定方法は、実施の形態で用いた方法に限らない。たとえば、負荷状況に対応しないようにして決定してもよい。固定値でもよい。また、依頼量の増減はページ単位でなくともよい。