JP4390287B2 - 印刷システム、及び、印刷装置及びその制御方法 - Google Patents

印刷システム、及び、印刷装置及びその制御方法 Download PDF

Info

Publication number
JP4390287B2
JP4390287B2 JP2006031349A JP2006031349A JP4390287B2 JP 4390287 B2 JP4390287 B2 JP 4390287B2 JP 2006031349 A JP2006031349 A JP 2006031349A JP 2006031349 A JP2006031349 A JP 2006031349A JP 4390287 B2 JP4390287 B2 JP 4390287B2
Authority
JP
Japan
Prior art keywords
pages
printing
page
data
intermediate data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006031349A
Other languages
English (en)
Other versions
JP2007213234A (ja
Inventor
弘志 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006031349A priority Critical patent/JP4390287B2/ja
Priority to US11/671,687 priority patent/US8130394B2/en
Publication of JP2007213234A publication Critical patent/JP2007213234A/ja
Application granted granted Critical
Publication of JP4390287B2 publication Critical patent/JP4390287B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus

Description

本発明は、複数の印刷装置で1つの印刷ジョブを分散印刷する技術に関するものである。
従来より複数のプリンタを用いて分散印刷を実行することにより、印刷完了時間を早めるクラスタシステムが多数存在している。プリンタの出力速度にも上限があり、また、1台の高価な高速プリンタよりも複数の安価なプリンタを使用する方がコスト的に有利に働く場合があることがその理由である。
分散の単位としては複数部数の印刷が指定されたプリントジョブの部数を複数のプリンタで分担して出力する技術が知られている。また、単一部数のプリントジョブ中の複数ページを複数のプリンタで分担して出力する技術も知られている。
クラスタシステムの構成としては、プリントデータのRIP(ラスターイメージ処理)を行い、複数のプリンタにRIP済みのイメージデータを分配する専用のクラスタサーバを用いる構成がある。また、プリンタで受信したプリントデータに対してRIPを行うマスタプリンタと、RIP済みのイメージデータをマスタープリンタから受信し出力するスレブプリンタとで構成する場合がある。
専用のクラスタサーバを用いる場合は高性能なホストコンピュータにより高速なRIPを実現することが容易である。しかし、プリンタの数+クラスタサーバ分の設置スペースが必要となり、省スペースの点で問題がある。また、ネットワーク上には全ページ分のイメージデータ転送のトラフィックが発生する。また、クラスタサーバは高速な処理能力を有するものが求められるので、コスト的にも問題が残る。
後者の構成に近いものとして、マスタプリンタは受信したプリントデータに対してページ解釈を行って中間データであるディスプレイリストデータを生成し、他のプリンタにそのディスプレイリストデータを転送する技術が存在する(例えば、特許文献1参照)。この構成によれば、ディスプレイリストデータを受信する側のプリンタは、ディスプレイリストデータからイメージデータへ変換すれば良いので、処理が簡略化され、高速な印刷が可能になる。プリントデータとして広く使われているページ記述言語(PDL)はページ独立性がない場合があり並列処理には向かない。その点、ディスプレイリストデータはページ間の依存関係が無いため並列処理を行うことが容易であり、効率的なページ分散クラスタを実現することができる。また、ディスプレイリストデータはイメージデータに比べて、データサイズが小さくなる場合が多く、データ転送のトラフィックの問題も軽減できる。
特開2004−288071公報
しかしながら、ディスプレイリストデータからイメージデータへの変換時間、すなわちRIPに要する時間はページ毎に異なる。これは、ページ毎に描画オブジェクトの個数や複雑度が大きく異なるからである。従って、Nページで構成される或る文書を印刷するため、2つのプリンタそれぞれN/2ページの印刷データを分散して印刷を行なわせても、各プリンタが自身に割り当てられたN/2ページページの印刷処理が完了するタイミングが同じにはならない。むしろ、描画オブジェクトの個数や複雑度が大きいページを多く含むディスプレイリストデータに印刷するプリンタの印刷完了するタイミングが、他のプリンタのそれよりも随分と遅くなることが多い。
本発明は上記問題点を解決するためになされたものである。そして、本発明の1つの目的は、複数の印刷装置を用いて1つの印刷ジョブに基づく分散印刷を行なう場合に、複数の印刷装置の印刷処理が完了するタイミングの差を更に縮めることで、1つの印刷処理が完了するまでに要する時間を更に縮める技術を提供しようとするものである。
この課題を解決するため、例えば本発明の印刷システムは以下の構成を備える。すなわち、
印刷処理を実行する少なくとも2台の印刷装置で構成される印刷システムであって、
外部装置から受信した印刷ジョブに基づいて複数ページの中間データを生成する中間データ生成手段と、
第1の印刷装置にて第1ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第1変換部と、第2の印刷装置にて第2ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第2変換部とを備え、複数ページの画像データを生成するデータ変換手段と、
前記データ変換手段により生成された複数ページの画像データに基づく印刷処理を実行する際に、前記第1の印刷装置にて印刷処理すべき画像データのページ数と、前記第2の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定手段と、
前記設定手段が設定した配分と、前記第1ページ範囲のページ数と前記第2ページ範囲のページ数の配分が異なる場合、前記設定手段が設定した配分を超過するページ数の画像データを保持している印刷装置から他の印刷装置に画像データを送信する画像データ送信手段と、
前記第1の印刷装置が保持する画像データに基づいて印刷処理を実行する第1印刷部と、前記第2の印刷装置が保持する画像データに基づいて印刷処理を実行する第2印刷部とを備える印刷手段とを備える。
本発明によれば、印刷ジョブの各ページのデータ変換処理に要する負荷と、変換処理により生成された画像データに基づく印刷処理に要する負荷を、複数の印刷装置を用いて実質的に均等に分散することが可能となる。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
図1は、本発明の実施例を示す印刷システムの全体の構成を説明するシステム構成図である。本画像形成装置200は、画像入力デバイスであるスキャナ部2070、画像出力デバイスであるプリンタ部2095、コントロールユニット2000、ユーザインターフェースである操作部2012から構成される。スキャナ部2070、プリンタ部2095、操作部2012は、それぞれコントロールユニット2000に接続される。コントロールユニット2000は、LAN2011などのネットワーク伝送手段(ネットワークインタフェース)に接続されている。なお、LANは有線、無線を問わない。また、LAN2011には、画像形成装置200と同様の構成を持つ他の画像形成装置220、230が接続されている。画像形成装置220は、スキャナ部2270、プリンタ部2295、操作部2212を持ち、それらがコントロールユニット2200に接続されている。また、画像形成装置230も、スキャナ部2370、プリンタ部2395、操作部3212を持ち、それらがコントロールユニット2300に接続されている。
また、LAN2011には、パーソナルコンピュータ等で代表されるホストコンピュータ2100が接続されている。
なお、図示では、1台のホストコンピュータ2100、3台の画像形成装置200、220、230がLAN2011に接続されている例を示しているが、それらの数は問わない。また、LAN2011には他のネットワークデバイスが接続されていても構わない。
図2は、画像形成装置200の構成を説明するブロック図である。他の画像形成装置220、230も同様の構成を有するものとし、その説明は省略する。
コントロールユニット2000は画像入力デバイスであるスキャナ部2070や画像出力デバイスであるプリンタ部2095と接続する。また、このコントロールユニット2000はLAN2011や公衆回線(WAN)2051と接続することで、画像情報やデバイス情報の入出力を行うCPU2001は画像形成装置2000全体を制御するコントローラである。RAM2002はCPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリとしても利用される。ROM2003はブートROMであり、システムのブートプログラムが格納されている。HDD2004はハードディスクドライブで、システムソフトウェア、画像データを格納する。なお、実施形態では、HDD2004を例にしているが、記憶容量の大きければ、他のストレージデバイスであても構わない。
操作部I/F2006は操作部(UI)2012と通信するためのインターフェースである。この操作部I/Fは、操作部2012が有する液晶表示器等の表示装置に表示すべき画像データを出力したり、ユーザによる操作部2012が有する各種スイッチ、ボタン、タッチパネルへの入力をCPU2001に伝える役割を有する。
ネットワークI/F2010はLAN2011と通信するためのインタフェースである。Modem2050は公衆回線2051に接続し、情報の入出力を行う。以上のデバイスがシステムバス2007上に配置される。イメージバスI/F2005はシステムバス2007と画像データを高速で転送するイメージバス2008を接続し、データ構造を変換するバスブリッジである。イメージバス2008は、PCIバスまたはIEEE1394で構成される。
イメージバス2008上には以下のデバイスが配置される。
イメージプロセッサ(RIP)2060はディスプレイリストをラスタイメージに展開する。デバイスI/F2020は、画像入出力デバイスであるスキャナ部2070やプリンタ部2095とイメージバス2008とを信号線2071、2096を介して接続するインタフェースである。
スキャナ画像処理部2080は、スキャナ部2080からの画像データをデバイスI/F2020を介して入力し、その画像データに対し補正、加工、編集を行う。プリンタ画像処理部 2090は、プリント出力画像データに対して、プリンタの補正、解像度変換、ハーフトーニング等を行い、デバイスI/F2020からプリンタ部2095に出力する処理を行なう。
画像回転部2030は画像データの回転を行う。画像圧縮部2040は、多値画像データはJPEG、2値画像画像データはJBIG、MMR、MHの圧縮伸張処理を行う。
画像形成装置200の外観を図3に示す。画像入力デバイスであるスキャナ部2070は、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)を走査することで、ラスターイメージデータ2071として電気信号に変換する。原稿用紙は原稿フィーダ2072のトレイ2073にセットされる。装置使用者が操作部2012から読み取り起動指示することにより、コントローラCPU2001がスキャナ部2070に指示を与える。この結果、フィーダ2072は原稿用紙を1枚ずつフィードし、原稿読み取り面に原稿用紙を搬送する。これにより、原稿の画像を読取ることになる。
画像出力デバイスであるプリンタ部2095は、ラスターイメージデータ2096を用紙上に画像を形成する。この形成する際の方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、コントローラCPU2001からの指示を信号線2096を介して出力することで開始する。プリンタ部2095には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット2101、2102、2103がある。また、排紙トレイ2111は印字し終わった用紙を受けるものである。
操作部2012の構成を図4に示す。LCD表示部2013は、LCD上にタッチパネルシート2019が貼られており、システムの操作画面およびソフトキーを表示するとともに、表示してあるキーが押されるとその位置情報をコントローラCPU2001に伝える。スタートキー2014は原稿画像の読み取り動作を開始する時などに用いる。スタートキー2014の中央部には、緑と赤の2色LED2018があり、いずれか一方を点灯することで、スタートキー2014が使える状態にあるかどうかを報知する。ストップキー2015は稼働中の動作を止める働きをする。IDキー2016は、使用者のユーザIDを入力する時に用いる。リセットキー2017は操作部からの設定を初期化する時に用いる。
図5は、実施形態における画像形成装置のソフトウェアブロック構成図である。
1501はUI即ちユーザインターフェースを司るものであり、オペレータが本画像形成装置の各種操作・設定を行う際、機器との仲介を行うモジュールである。本モジュールは、オペレータの操作に従い、後述の各種モジュールに入力情報を転送し処理の依頼、或いはデータの設定等を行う。
1502はAddress-Book即ちデータの送付先、通信先等を管理するデータベースモジュールである。Address-Bookの内容は、UI 1501からの操作によりデータの追加、削除、取得が行われ、オペレータの操作により後述の各モジュールにデータの送付・通信先情報を与えるものとして使用されるものである。
1504はUniversal-Send即ち、データの配信を司るモジュールであり、UI 1501によりオペレータに指示されたデータを、同様に指示された通信(出力)先に配布するものである。また、オペレータにより、本機器のスキャナ機能を使用し配布データの生成が指示された場合は、後述のControl-API 1519を介して機器を動作させ、データの生成を行う。1505はUniversal-Send 1504内で出力先にプリンタが指定された際に実行されるモジュールである。1506はUniversal-Send 1504内で通信先にE-mailアドレスが指定された際に実行されるモジュールである。1507はUniversal-Send 1504内で出力先にデータベースが指定された際に実行されるモジュールである。1508はUniversal-Send 1504内で出力先に本機器と同様の画像形成装置が指定された際に実行されるモジュールである。
1509はPDLモジュールであり、本画像形成装置の外部から送信されたPDL(Page Description Language)文書を、本画像形成装置のプリント機能を使用してプリントする機能を実現する。1509 PDL内部の1531はJob-Ticket-Parserであり、PDLデータと一緒に受信したJob-Ticketデータを解釈するモジュールである。Job-Ticketでは印刷メディアや部数、後処理、各種色処理、画像処理方法が指定可能である。これらの情報はJob-Ticket-Parser1531で解析された後に、後述のControl-API 1519を介して、後述のJob-Manager1520、Print-Manager1526、PDL-Interpreter1527に伝達される。また、1512 HTTPモジュールを使用して外部のWebサーバに格納された電子文書を取り出しプリントする機能も提供するものである。
1510はCopyモジュールであり、本画像形成装置のプリンタ機能とスキャナ機能を使用し、UIの指示に基づいてCopy動作を実行するものである。
1511はボックスモジュール(Box)である。このボックスモジュール1511は、スキャン画像もしくはPDLプリント画像をHDDに格納し、格納した画像のプリンタ機能による印刷、Universal-Send機能による送信、HDDに格納した文書の削除、グルーピング(個別BOXへの格納)、BOX間移動、BOX間コピーなどの管理機能を提供する。
1512は本画像形成装置がHTTPにより通信する際に使用されるモジュールである。このモジュール1512は、後述のTCP/IP1516モジュールにより前述のPDL 1509モジュールに通信を提供する。1513はlprモジュールであり、後述のTCP/IP 1517モジュールにより前述のUniversal-Send1504内のプリンタモジュール1505に通信を提供するものである。1514はSMTPモジュールであり、後述のTCP/IP 1517モジュールにより前述のUniversal-Send1504内のE-mailモジュール1506に通信を提供するものである。1515はSLM即ちSalutation-Managerモジュールであり、後述のTCP/IP 1517モジュールにより前述のUniversal-Send1504内のデータベースモジュール1517、DPモジュール1518に通信を提供するものである。1516はLPDモジュールであり、後述のTCP/IP 1517 モジュールにより、前述のPDL 1509 モジュールに通信を提供するものである。1517はTCP/IP通信モジュールであり、前述の各種モジュールに後述のNetwork-Driverによりネットワーク通信を提供するものである。1518はネットワークドライバであり、ネットワークに物理的に接続される部分を制御するものである。
1519はControl-APIであり、Universal-Send1504、PDL1509、Copy1510、Box1511等の上位モジュールに対し、後述のJob-Manager1520等の下位モジュールとのインターフェースを提供する。これにより、Control-API1519は上位、及び下位のモジュール間の依存関係を軽減しそれぞれの流用性を高める。
1520はJob-Managerであり、前述の各種モジュールよりControl-API 1519を介して指示される処理を解釈し、後述の各モジュールに指示を与えるものである。また、本モジュールは、本画像形成装置内で実行されるハード的な処理を一元管理するものである。1521はCODEC-Managerであり、Job-Manager1520が指示する処理の中でデータの各種圧縮・伸長を管理・制御するものである。1522はFBE-Encoderであり、Job-Manager 1520、Scan-Manager 1525により実行されるスキャン処理により読み込まれたデータをFBEフォーマットにより圧縮するものである。1523はJPEG-CODECであり、Job-Manager1520、Scan-Manager1525により実行されるスキャン処理、及びPrint-Manager 1526により実行される印刷処理において、読み込まれたデータのJPEG圧縮及び印刷データのJPEG展開処理を行うものである。1524はMMR-CODECであり、Job-Manager 1520、Scan-Manager 1525により実行されるスキャン処理、及びPrint-Manager 1526により実行される印刷処理において、読み込まれたデータのMMR圧縮及び印刷データのMMR伸長処理を行うものである。
1525はScan-Managerであり、Job-Manager1520が指示するスキャン処理を管理・制御するものである。1528はScanner I/Fであり、Scan-Manager 1524と本画像形成装置が内部的に接続しているスキャナ部とのI/Fを提供するものである。
1526はPrint-Managerであり、Job-Manager1519が指示する印刷処理を管理・制御するものである。1529はEngine-I/Fドライバであり、Print-Manager1526と印刷部とのI/Fを提供するものである。
1527はPDL Interpreterである。このPDL Interpreter1527は、Job-Manager1520の指示により、LIPS、PostScript、PCL、PDF、SVGなどのPDLもしくは電子文書フォーマットを解釈し、PDLもしくは電子文書フォーマットの種別によらない共通の表現形式であるディスプレイリストを生成する。
1530はRenderであり、PDL Interpreter 1527により生成されたディスプレイリストを、Print-Manager 1520の指示により、イメージプロセッサを用いてラスタイメージメモリに展開するものである。
次に、図6を用いてページ記述言語を解釈し画像形成を行うRIP処理の流れに関して説明する。
PostScriptインタプリタ3001は図5のPDL Interpreter1527に含まれるモジュールの1つで、PostScript言語で記述されたデータを解釈し中間言語データであるディスプレイリスト3017を生成する。
なお、PostScriptインタプリタ3001内の各モジュールはパイプライン実行する。そして、描画オブジェクト毎に3004から3011までの各モジュールが繰り返し実行され、同一ページ内の全描画オブジェクトに対する処理が終了した時点で1ページ分のディスプレイリストが生成される。
RIP詳細パラメータ3016はJob Ticketにより指定された情報のうちRIP処理時に適用されるパラメータ群である。ここで与えられるパラメータとしては、出力カラーモード、RGBソースプロファイル、CMYKシミュレーションプロファイル、出力プロファイルがある。Job Ticketは、前述したように、図5のJob-Ticket-Parser1531によって解釈される。
図6のRIP処理の流れでは、各ページに含まれる描画オブジェクトの色によってページ全体がカラーかモノクロかを決定する、出力カラーモード設定Autoを前提に説明する。
言語処理部3004はPostScript言語データを解釈し、その解釈結果に応じてPostScript言語データを文字処理部3005、グラフィックス処理部3006、イメージ処理部3007のいずれかに出力する。
文字処理部3005は指定されたフォントから文字ビットマップを生成し、レンダリング処理に対処するための、描画座標、色を含めた所定のフォーマットのデータを生成する。グラフィックス処理部3006は、コンピュータグラフィックス等の命令を、やはり、レンダリング処理が高速にするための所定形式(色を含む)のデータに変換する。イメージ処理部3007はイメージデータを共通の内部データ形式に変換する処理を行う。
CMSエンジン3008はカラーマネージメントを行うモジュールであり、入力色を絶対色空間に変換後、プリンタエンジン固有の出力色(CMYK)を生成するものである。PostScript言語ではDevice色空間、CIEBased色空間、特殊色空間など多様な色空間が規定されている。Device色空間で指定された入力色に関しては、RGBソースプロファイル、CMYKシミュレーションプロファイルなどの予め用意されたICCプロファイル群のうち指定されたものを用いて色変換を行う。CIEBased色空間で指定された入力色に関してはその色空間で指定された変換テーブル、変換関数、変換マトリックスに従い色変換を行う。絶対色空間からプリンタエンジン固有の色空間への変換は出力プロファイルもしくは、PostScriptで規定されたColor Rendering Dictionaryを用いて行う。出力プロファイルに関してはグレイスケールがK単色で表現されることを優先したグレイ補償プロファイルと、グレイスケールをCMYK4色で表現するノーマルプロファイルの二つが選択的に使用可能である。Separation色空間、もしくはDeviceN色空間などで指定された特色についてはNamed ICCプロファイルを用いてプロセスカラー(CMYK)に変換する。
色判定部3009はCMSエンジンの出力値であるCMYK色を調べ、現在処理中のページがカラーページかモノクロページか判定するものである。色判定はRIP詳細パラメータの出力カラーモードによりAutoが指定された場合にのみ実行される。出力カラーモードにはその他に、カラーとモノクロが指定可能であるが、カラーもしくはモノクロが指定された場合には色判定は実行されない。
ディスプレイリストジェネレータ3011は中間言語データであるディスプレイリスト3017を生成するものである。また、ディスプレイリスト内には、各オブジェクトの属性フラグが含まれており、オブジェクトがグラフィックス、イメージ、文字の何れであるかが識別される。各属性は文字処理部3007、グラフィックス処理部3008、イメージ処理部3009から通知されたものがそのまま使用される。属性フラグはレンダを経て後段の画像処理に使用される。また、ディスプレイリスト内には、各オブジェクトのラスタオペレーション情報が含まれており、ラスタオペレーション処理が必要なオブジェクトか否かが識別される。
レンダ3002は、図2のRIP2060に対応する。RIP2060には、深度8ビット(256階調)を有するC(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)のビットマップイメージを格納するための4つのプレーンメモリと、深度2ビットの属性プレーンメモリを有する。
レンダ3002は、ディスプレイリストを解釈し、4つのプレーンメモリに描画するためのC、M、Y、Kのビットマップイメージ3018を生成する。言い換えれば、レンダ3002は、ディスプレイリストからビットマップイメージ(プリンタ部2095が印刷処理可能な印刷データ)へのデータ変換処理を実行する。この生成処理は図2のRIP2060を使用して大半の処理が行われる。レンダ3002ではMask(result = src & dest)、Copy(result = src)、Merge(result = src | dest)などのラスタオペレーションモードを備えている。すなわち、レンダ3002は、描画オブジェクト毎に指定されたラスタオペレーションモードに従い、既に描画済の描画オブジェクト(背景、dest)と次に描画すべき描画オブジェクト(前景、src)との間でラスタオペレーション処理を実行し、描画結果(result)をページメモリ上に展開する。
また、レンダ3002はディスプレイリスト3017に含まれる属性フラグを元に各デバイスピクセル単位に属性を示す、オブジェクト属性マップ3019を5枚目の属性プレーンメモリに書き込む。この属性プレーンメモリは、上記のようにピクセル毎に2ビットの深度を持ち、グラフィックスの画素の場合には“01”、イメージ(自然画)の画素であれば“10”、文字/線画の画素であれば“11”が書き込まれる。
次に、CMYKビットマップ3018、オブジェクト属性マップ3019は画像処理プロセッサ3003に送られる。
なおディスプレイリストの作成後に続いてレンダリングが行われるかどうかは、Job Manager1520およびPrintManager1526による制御に依存する。直ぐにレンダリングが行われない場合は作成した各ページのディスプレイリストは順次ハードディスク2004の所定の位置に格納される。
画像処理プロセッサ3003は図5のPrint Manager1526の制御下で、レンダ3002により生成されたCMYKビットマップ3018に対して、濃度・カラーバランス調整3012、出力ガンマ補正3013、ハーフトーニング3014などの画像処理を行う。
ハーフトーニング3014はオブジェクト属性マップ3019を参照してオブジェクト属性毎に異なるハーフトーニングを適用する。例えば、ハーフトーニング3014はグラフィックス属性の画像領域に対しては解像度優先の高線数スクリーンを、イメージ属性の画像領域に対しては諧調優先の低解像度スクリーンを、文字属性の画像領域に対しては誤差拡散を適用した処理を行なう。
色判定部3009で注目ページがモノクロページと判定された場合には、レンダ3002で作成されたCMYKビットマップ3018のうちK成分のビットマップのみが画像処理プロセッサ3004に送られ、最終出力で使用されるKビットマップ3021が生成される。また、色判定部3009で注目ページがカラーページと判定された場合には、レンダ3002で生成されたCMYKビットマップ3018がそのまま画像処理プロセッサ3002に送られ、最終出力で使用されるCMYKビットマップ3020が生成される。こうして、画像処理プロセッサ3003により生成されたCMYKビットマップ3020もしくはKビットマップ3021が図5のEngine I/F 1529を介してプリンタエンジンに転送され、記録紙等の所望の記録メディアに印刷出力されるものである。
なお、本印刷装置は2つの印刷モードを有する。1つは、生成されたCMYKビットマップ3020もしくはKビットマップ3021の印刷処理と、次のページのページ解釈もしくはレンダリング処理とを並列処理するRIP・印刷並列モードである。もう1つは、1つのジョブ中の全ページのレンダリング後に、順次印刷処理を行なうRIP・印刷シーケンシャルモードである。RIP・印刷並列モードでは、ページ解釈もしくはレンダリングに時間がかかった場合に、エンジン速度で出力できない可能性がある。一方、RIP・印刷シーケンシャルモードの場合は複数ページをエンジン速度で出力することが可能である。これら2つのモードの選択は、ジョブチケットで指定可能であるが、本印刷装置ではRIP・印刷シーケンシャルモードをデフォルトの動作とする。
以上、実施形態におけるハードウェア/ソフトウェアそれぞれの構成と、各構成要素の機能を説明した。次に、実施形態におけるクラスタ(分散)印刷処理について説明する。
説明を簡単なものとするため、画像形成装置200、220、230は同じ機能を有し、且つ、それぞれのプリンタ部の単位時間当たりの印刷枚数は同じであるものとする。そして、ここでは、ここでは画像形成装置200を例にして説明する。
なお、クラスタ印刷処理では、マスタプリンタとスレーブプリンタとの協動処理が行われる。このときのホストコンピュータ2100がプリントデータの出力先して指定された画像形成装置がマスタとなり、マスタプリンタが受信したジョブチケット内に記述されたネットワークアドレスで特定される画像形成装置がスレーブとなる。従って、各画像形成装置200、220、230はそれぞれがマスタとなり得るし、それぞれがスレーブとなり得る点に注意されたい。
また、以下の説明で「ページ番号」という表現を用いるが、このページ番号は印刷すべき論理ページ番号を示すものであって、ホストコンピュータ2100が印刷指示した文書の物理ページ番号を意味するものではない。例えば、ホストコンピュータで200ページの文書を編集していて、そのうちの101ページから200ページを印刷するジョブを発行した場合、実施形態における画像形成装置は論理的に100ページの文書を印刷するものとして処理する。すなわち、以下の説明での「ページ番号」が“1”は、上記の場合、ユーザが望む文書の100ページ目を意味することになる。
以下、図7乃至図11を用いて、クラスタプリント処理の処理手順を説明する。図7乃至図11のフローチャートに示されるプログラムは図5のJob Manager 1520とPrint Manager1526によって実行されるものである。また、クラスタプリントを行うか否かの指示、及びクラスタプリントを行う場合のスレーブプリンタの指定は、上記の通り、ジョブチケットにより行われる。つまり、Job Ticket Parser1531によるジョブチケットの解釈結果がControl API 1519を介してJob Manager1520に通知される。
先ず、ステップS1において、ホストコンピュータ(印刷データ発生源)2100よりクラスタプリントジョブを受信したか否か、すなわち、クラスタプリントのマスタとして機能する要求を受信したか否かを判断する。
クラスタプリントのマスタプリンタの要求を受けたと判断した場合には、ステップS2に進み、PostScriptインタプリタを起動し全ページの解釈を行う。この結果、全ページのディスプレイリストデータが生成される。生成されたディスプレイリストデータはHDD2004に格納する。なお、この処理によって印刷すべき全ページ数が判明するので、その全ページ数をPmaxと定義する。
次いで、ステップS3に進んで、生成された全ページ分のディスプレイリストデータをスレーブプリンタに転送する。このとき転送するディスプレイリストにはスレーブプリンタとして動作することを指示するJob Ticketが付加される。また、転送したディスプレイリストはマスタープリンタ上でも消去されずに残す。なお、ステップS3の処理までは、Job Manager1520によって実行される。Job Manager1520はPostScriptインタプリタを起動して、ページ解釈のみを実行させることになる。
詳細は後述するが、スレーブプリンタは、ディスプレイリストデータを受信すると、そのレンダリング処理を開始することになる。マスタプリンタにおけるレンダリング処理順序は以下の説明から明らかになるように、ページ番号1、2、…と昇順である。これに対し、スレーブプリンタのレンダリングする順序は、ページ番号Pmax,Pmax-1、Pmax-2の順、すなわち、マスタプリンタのそれとは逆の降順にレンダリングを行なう。そして、スレーブプリンタは、現在、レンダリング中のページ番号をマスタプリンタにメッセージと情報として通知してくる。また、マスタプリンタのスレーブプリンタからのレンダリング処理中のページ番号の通知を受信する処理は、別タスクで行なっているものとする。この別タスクでは、スレーブプリンタからレンダリングページ番号を示すメッセージを受信する度に、RAM2002内の予め設定されたアドレス位置にその情報を上書き(更新)していくものとする。
図11はマスタプリンタが有する上記の別タスクの処理手順を示している。
先ず、ステップS41では、スレーブプリンタからレンダリング処理中のページ番号を示すメッセージを受信するのを待つ。そのメッセージを受信すると、ステップS42に進んで、メッセージ中のページ番号をRAM2002に確保された変数Kのアドレス位置にその番号を上書きする。
なお、スレーブプリンタのマスタプリンタからのレンダリング処理中のページ番号の受信、並びに、更新処理も、スレーブプリンタにおけるレンダリング処理とは別タスクであるが、図11と実質的に同じである。
説明を図7のフローチャートに戻す。全ページ分のディスプレイリストデータのスレーブプリンタへの転送が完了すると、処理はステップS4に進んで、変数iに初期値として“1”を代入する。そして、ステップS5に進んで、ページ番号iのレンダリング処理中であることを示すメッセージを生成し、スレーブプリンタに通知(送信)する。この通知を終えると、ステップS6に進み、HDD2004に格納されたディスプレイリストデータ中のi番目のページのディスプレイリストデータを読み込みレンダリングを行なう。注目しているi番目のページのレンダリングが完了すると、処理はステップS7に進み、そのレンダリング結果であるビットマップイメージデータをHDD2004に格納する。
次いで、ステップS8に進んで、スレーブプリンタの現在レンダリング中のページ番号Kを、上記RAM2002から取得する。
そして、ステップS9において、次にレンダリングすべきページ番号iと、スレーブプリンタでレンダリング中のページ番号Kから“1”を減じた値を比較し、「i<K−1」であるか否かを判断する。これは、スレーブプリンタが次にレンダリングしようとするページが、マスタプリンタ側で既にレンダリングが完了しているか否かを判断していることに他ならない。また、マスタプリンタが次にレンダリングしようとするページが、スレーブプリンタにてレンダリングを開始している、或いは、スレーブプリンタで既にレンダリングが完了しているか否かを判断すると言い換えても良い。
なお、ステップS9を、「i=K−1?」とせず、「i<K−1?」としたのは、一方のプリンタで1ページのレンダリング中に、他方のプリンタでは2ページ以上のレンダリング可能になる場合があるからである。
さて、ステップS9の判断が“Yes”の場合、マスタプリンタが次にレンダリングすべきページは、少なくともスレーブプリンタ側ではレンダリングが未着手状態であることになるので、ステップS10に進む。このステップS10では変数iとPmaxと等しいか否か、すなわち、最終ページのレンダリングが完了したか否かを判断する。「i<Pmax」であると判断した場合には、ステップS11に進んで、変数iを“1”だけインクリメントし、ステップS5以降の処理を繰り返す。
一方、ステップS9において「No」、すなわち、マスタプリンタ側で次にレンダリングすべきページが、スレーブプリンタ側で既にレンダリング処理中、或いは、レンダリングが完了していると判断した場合には、ステップS12に処理を進める。また、ステップS10でNoと判断された場合も処理をステップS12に進める。
ここで注意したい点は、ステップS12に処理が進んだ場合、全ページのレンダリングデータが、マスタ、スレーブプリンタそれぞれのレンダリングした結果を足し合わせることで得られる点である。
そこで、ステップS12では、マスタプリンタによってレンダリングしたページ数が、スレーブプリンタによってレンダリングしたページ数と実質的に等しいか否かを判断する。
等しいと判断した場合には、マスタ、スレーブプリンタがレンダリングしたページ数はそれぞれ全ページ数Pmaxの半分であることになる。また、実施形態では、マスタ、スレーブプリンタのそれぞれプリンタ部は同じ印刷速度としている。従って、マスタ、スレーブプリンタは実質的に同じ時間で印刷が完了することが約束されることになる。そのため、処理はステップS16に進み、HDD2004に格納されたレンダリング結果のうち、ページ1、2、…の順にビットマップイメージデータを読み込み、ページ1、2、…の順に印刷処理を行ない、一連のクラスタプリント処理を終了する。
また、ステップS12にて「No」と判断された場合、処理はステップS13に進む。ここでは、マスタプリンタでレンダリングしたページ数(変数iの値)が、全ページ数の半分を超えているか否かを判断する。
ステップS13にて、マスタプリンタのレンダリングしたページ数が全ページ数の半分を超えていると判断した場合、処理はステップS14に進み、全ページ数の半分を超えたページ数分のレンダリング結果をスレーブプリンタに転送する。転送対象は、マスタプリンタが保持する最終ページから先頭ページに向かうレンダリングデータである。例えば、Pmax=100であり、マスタプリンタがページ番号「55」までレンダリングした場合には、ページ番号51、52、53、54、55のレンダリング結果をスレーブプリンタに転送する。
また、ステップS13の判断がNoの場合、マスタプリンタのレンダリングしたページ数が全ページ数の半分に満たないことになる。そこで、ステップS15にて、マスタプリンタ内のレンダリングしたページ数が、全ぺージ数の半分とすため、不足分をスレーブプリンタから受信し、HDD2004に格納する。受信するのは、スレーブプリンタが保持する先頭ページから最終ページに向かうレンダリングデータである。例えば、Pmax=100であり、マスタプリンタがページ番号「45」までレンダリングした場合には、ページ番号46、47、48、49、50のレンダリングデータをスレーブプリンタから受信する。
ステップS14、或いは、ステップS15の処理の結果、マスタプリンタのHDD2004には、少なくとも、先頭ページから全ページの半分の位置にあるページ数までのレンダリングデータが存在することになる。そこで、ステップS16にて、全ページの前半の印刷処理を行ない、一連のクラスタプリント処理を終了する。
なお、全ページ数Pmaxが奇数の場合について補足説明する。全ページ数が奇数の場合、マスタ、スレーブプリンタのいずれか一方は、他方よりも1ページ分だけ多く印刷せざるをえない。
従って、ステップS12では、全ページ数を示すPmaxが奇数の場合では、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数の差が“1”以下であるかを判断すればよい。マスタプリンタでレンダリングしたページ数は変数iで示され、スレーブプリンタでレンダリングしたページ数は「Pmax−K+1」で示されるので、ステップS12は、実際には、
条件:|i−(Pmax−K+1)|≦1
であるか否かを判断すれば良いことになる(|x|はxの絶対値を意味する)。
また、ステップS14或いはS15での、レンダリングデータの送信データ量は少ないことが望ましい。
例えば、Pmax=101であり、マスタプリンタがページ番号「55」までレンダリングした場合には、ステップS14では、ページ番号52、53、54、55のレンダリング結果をスレーブプリンタに転送する。
また、Pmax=101であり、マスタプリンタがページ番号「45」までレンダリングした場合には、ステップS15ではページ番号46、47、48、49、50のレンダリングデータをスレーブプリンタから受信する。
要するに、全ページ数Pmaxが奇数の場合、半分を超えるページ数をレンダリングしたプリンタが、他方のプリンタより1ページ分多く印刷するものとした。
さて、実施形態における画像形成装置200は、スレーブプリンタとしても機能することは既に説明した。このスレーブプリンタとしての処理は、マスタとなる他の画像形成装置からディスプレイリストデータとスレーブとして機能する指示情報を記述したジョブチケットを受信した場合となる。すなわち、図7においてステップS1でNoと判断されて図9のステップS20に進み、そのステップS20にてYesと判断された場合になる。なお、ステップS20でもNoと判断した場合には、通常の単独の印刷処理になるので、ステップS21に進んで、該当する処理を行なうことになる。
画像形成装置200のスレーブプリンタとしての処理は、ステップS20でYesと判断された後のステップS22以降の処理となる。
先に説明したように、各画像形成装置200、220、230それぞれは同じ機能を持つものとしている。また、これまでの図7、図8の説明は、画像形成装置200がマスタプリンタとして機能する場合を説明しているから、ステップS22以降の処理は画像形成装置200以外の画像形成装置の処理として説明すると技術的に分かりやすいであろう。それ故、ステップS22以降の処理は、スレーブプリンタとして指示された画像形成装置220(勿論、画像形成装置230でも構わない)が行なうものとして説明することとする。
先ず、ステップS22にて、スレーブプリンタはマスタプリンタ(画像形成装置200)より全ページのディスプレイリストデータを受信し、それをHDDに格納する。そして、レンダリングするページ番号を示す変数KにPmaxを設定する。すなわち、最初にレンダリングする対象を最終ページとして設定する。
次いで、ステップS24にて、K番目のページをレンダリングすることをマスタプリンタに通知する。そしてステップS25にて、K番目のページのレンダリングを行ない、ステップS26にて、ページ番号KのビットマップデータとしてHDDに格納する。そして、ステップS27にて、マスタプリンタの現在レンダリング中のページ番号iを取得する。マスタプリンタからのページ番号の受信、並びに、更新処理は別タスクとする点は既に説明した。
次いで、ステップS28に進んで、「K>i+1」を満たすか否かを判断する。要するに、マスタプリンタが次にレンダリングしようとするページが、スレーブプリンタ側で既にレンダリングが完了しているか否かを判断していることに他ならない。また、スレーブプリンタが次にレンダリングしようとするページが、マスタプリンタにてレンダリングを開始している、或いは、マスタプリンタで既にレンダリングが完了しているか否かを判断すると言い換えても良い。
さて、ステップS28の判断が“Yes”になるのは、スレーブプリンタが次にレンダリングすべきページは、少なくともマスタプリンタ側ではレンダリングが未着手状態であることを意味する。そこで、ステップS29に進み、変数Kと“1”との関係が「K>1」であるか否か、すなわち、先頭ページのレンダリングが完了したか否かを判断する。「K>1」であると判断した場合には、ステップS30に進んで、変数Kを“1”だけディクリメントし、ステップS24以降の処理を繰り返す。
一方、ステップS28において「No」、すなわち、スレーブプリンタ側で次にレンダリングすべきページが、マスタプリンタ側で既にレンダリング処理中、或いは、レンダリングが完了していると判断した場合には、図10のステップS31に処理を進める。また、ステップS29でNoと判断された場合も処理をステップS31に進める。
ステップS31では、マスタプリンタによってレンダリングしたページ数が、スレーブプリンタによってレンダリングしたページ数と実質的に等しいか否かを判断する。この判定は、先に説明したステップS12の処理を同じである。
等しいと判断した場合には、マスタ、スレーブプリンタがレンダリングしたページ数はそれぞれ全ページ数Pmaxの半分であることになる。従って、処理はステップS35に進み、HDDに格納されたレンダリング結果のうち、全ページの後半のページを昇順に印刷する。
例えば、Pmaxが=100(偶数)の場合であり、且つ、ステップS31からステップS35に進んだ場合には、HDDに格納されたページ番号51、52、…の順にレンダリングデータを読出し、ページ番号51、52、…の順に印刷を行なう。
また、Pmax=101、K=51の場合には、ページ番号51、52、…101の順に印刷する(印刷ページ数は「51」)。また、Pmax=101で、K=52の場合には、ページ番号、ページ番号52、53、…、101の順に印刷する(総ページ数は「50」)。
また、ステップS31にて「No」と判断された場合、処理はステップS33に進む。ここでは、スレーブプリンタでレンダリングしたページ数(Pmax−K+1)が、全ページ数の半分を超えているか否かを判断する。
ステップS31にて、スレーブプリンタのレンダリングしたページ数が全ページ数の半分を超えていると判断した場合、処理はステップS34に進み、全ページ数の半分を超えたページ数分のレンダリング結果をマスタプリンタに転送する。転送対象は、スレーブタプリンタが保持する先頭ページから最終ページに向かうレンダリングデータである。例えば、Pmax=100であり、スレーブプリンタがページ番号「45」までレンダリングした場合には、ページ番号45、46、47、48、49、50のレンダリング結果をマスタプリンタに転送する。
また、Pmax=101であり、スレーブプリンタがページ番号「45」までレンダリングした場合にも、ページ番号45、46、47、48、49、50のレンダリング結果をマスタプリンタに転送する。ページ番号「51」のレンダリング結果を転送しないのは、転送データ量を減らすためである。
また、ステップS33の判断がNoの場合、スレーブプリンタのレンダリングしたページ数が全ページ数の半分に満たないことになる。そこで、ステップS34にて、スレーブプリンタ内のレンダリングしたページ数が、全ぺージ数の半分とすため、不足分をマスタプリンタから受信し、HDDに格納する。受信するのは、マスタプリンタが保持する最終ページから先頭ページに向かうレンダリングデータである。
例えば、Pmax=100であり、スレーブプリンタがページ番号「55」までレンダリングした場合には、ページ番号51、52、53、54のレンダリングデータをマスタプリンタから受信する。
また、Pmax=101であり、スレーブプリンタがページ番号「55」までレンダリングした場合には、ページ番号52、53、54のレンダリング結果をマスタプリンタに転送する。ページ番号「51」のレンダリング結果を受信しないのは転送データ量を減らすためである。
ステップS33、或いは、ステップS34の処理の結果、スレーブプリンタのHDDには、少なくとも、全ページの後半部分のページ数のレンダリングデータが存在することになる。そこで、ステップS35にて、全ページの前半の印刷処理を行ない、一連のクラスタプリント処理を終了する。
以上であるが、図12は、図7乃至図11で説明したクラスタプリントを実行した際のマスタ、スレーブプリンタのタイミングシーケンスである。
この例では、6ページ中の1ページ目と2ページ目のRIP処理が重たいため、マスタープリンタで先頭の2ページのRIP処理を行い、スレーブプリンタで後の4ページのRIP処理を行った例を示している。これに伴い、スレーブプリンタは3ページ目のRIP済みイメージをマスタープリンタへ転送することにより、印刷ページ数をマスタープリンタ、スレーブプリンタで同じにしている。その結果、マスタ、スレーブプリンタそれぞれの印刷完了タイミングはほぼ同じにすることが可能になる。
なお、図12では、印刷ジョブが6ページの例を示しているが、数百、数千ページのプリンタデータではさらに大きな効果がもたらされることが明らかである。また、印刷ジョブが奇数ページの場合には、2つのプリンタの印刷完了するタイミングの差は最大でも1ページ印刷時間とすることが可能になる。
また、実施形態ではPostScriptを例にして説明したが、他のページ記述言語でもも構わない。レンダリング処理(或いはRIP処理)する際に適合した中間データ(ディスプレイリストデータ)にまで変換できれば良いからである。
また、実施形態では、マスタプリンタのレンダリング順序を昇順、スレーブプリンタのそれを降順とする例を説明したが、逆でも構わない。
また、一方のプリンタから他方のプリンタにレンダリングデータを転送する場合には、その転送前に圧縮符号化処理を行なうようにしても良い。この場合の圧縮符号化は当然可逆符号化が望ましい。
以上説明したように、本実施形態によれば、クラスタプリントを行なう場合、各プリンタに割り当てられたページ数の印刷が完了するタイミングの差を最小限にすることが可能になる。
なお、上記実施形態では、各画像形成装置200、220、230のプリンタ部の単位時間当たりの印刷枚数(印刷速度)は同じであるものとして説明した。しかし、マスタの印刷速度を“1”としたとき、スレーブプリンタのそれが“2”の場合には、マスタプリンタで印刷するページ数と、スレーブプリンタで印刷するページ数の比を1:2となるようにすればよい。すなわち、全ページ数をPmaxとしたとき、マスタプリンタはPmax/3のページ数分のレンダリングデータを持ち、スレーブプリンタはPmax×2/3のページ数分のレンダリングデータを持つように処理すればよい。これを実現するには、ジョブチケットに、マスタプリンタとスレーブプリンタのプリンタ部の速度比、或いは、それぞれのプリンタで印刷すべきページ数を記述する。スレーブプリンタもこの速度比や配分数を知る必要がある。このためには、マスタプリンタからスレーブプリンタにディスプレイリストデータを転送する際に、その速度比や配分数に関する情報を記述すれば良いであろう。
<第2の実施形態>
上記実施形態(第1の実施形態)による印刷システムでは、生成した全ページ分のディスプレイリストデータをマスタープリンタからスレーブプリンタに転送することによりRIPの負荷分散を実行した。しかし、ディスプレイリストデータをページ毎に転送する方法によりRIPの負荷分散を図ることも可能である。この例を第2の実施形態として説明する。
詳細は、第1の実施形態で説明しているので、ここでは、マスタ、スレーブそれぞれの処理手順の概要を図12、図13のフローチャートに従って説明する。
先ず、本第2の実施形態におけるマスタープリンタの処理手順を図12のフローチャートに従って説明する。同図のフローチャートに示されるプログラムは図5のJob Manager 1520とPrint Manager1526によって実行されるものである。また、第1の実施形態で説明したように、クラスタプリントを行うか否かの指示、及びクラスタプリントを行う場合の従プリンタの指定はJob Ticketにより行われる。Job Ticket Parser1531で解釈された結果がControl API 1519を介してJob Manager1520に通知される。
まず、ステップS51乃至S53のループ処理を実行する。このループ処理では、PostScriptインタプリタを起動し1ページ分のページ解釈を行い、生成されたディスプレイリストデータをスレーブプリンタに転送する処理を、先頭ページから最終ページまで繰り返す。なお転送したディスプレイリストデータは破棄せずにマスタープリンタ上のHDDにスプールする。また、ステップS53迄はJob Manager1520によって実行される。
次にステップS54乃至S58のループ処理を行なう。ここでは、1ページ分のディスプレイリストからレンダリングの処理と、レンダリング中のページ番号のスレーブプリンタへの通知処理を、最終ページから先頭ページに向かって繰り返し行なう。また、レンダリング処理中に、次にレンダリングすべきページがスレーブプリンタでレンダリング処理中であるか否かを判断し、次ページがスレーブプリンタで処理中であると判断したら、このループから抜ける。
なお、スレーブプリンタでレンダリングが開始されているかどうかの確認は第1の実施形態と同様、スレーブプリンタとのネットワークを介したメッセージ通信により行われる。
さて、ステップS59に処理が進むと、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第1の実施形態のステップS12、S31と同様である。等しいと判断した場合には、ステップS63に進んで、HDDに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全100ページの場合、HDDにはページ51以降のレンダリング済みデータが格納されているので、ページ51、52、…の順に印刷することになる。
ステップS59で、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップS60に進む。このステップS60では、マスタープリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がYesの場合には、ステップS61に進み、NoであればステップS62に進む。
ステップS61に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをスレーブプリンタに転送する。第2の実施形態におけるマスタプリンタの各ページのレンダリング順序は、降順である。従って、印刷ジョブのページ数が100ページであり、マスタプリンタで45ページ目までレンダリングしている場合は、ページ45、46、47、48、49、50のレンダリング結果をスレーブプリンタに送信する。
また、ステップS62に進んだ場合には、印刷ジョブの全ページの半分となるための不足分のレンダリング済みのイメージデータがスレーブプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が100ページであり、マスタプリンタで55ページ目までレンダリングしている場合は、ページ51、52、53、54のレンダリング結果をスレーブプリンタから受信し、HDDに格納する。
このステップS61、S62の処理の結果、少なくともマスタプリンタのHDDには、印刷ジョブで示される全ページ中の後半部分のページのレンダリングデータが格納されていることになる。従って、ステップS63に進み、後半のページを昇順に印刷する。
なお、ステップS54からステップS63の処理はPrint Manager1526によって実行されるものである。また、ステップS59ではマスタ、スレーブプリンタのレンダリングしたページ数が等しいか否か、ステップS60ではレンダリング済みのページ数が半分に達したか否かを調べるものであった。これは、マスタープリンタとスレーブプリンタのプリンタエンジンの出力速度が同速である場合を仮定しているためである。マスタープリンタとスレーブプリンタのエンジン速度が異なる場合には、それら2つのプリンタのエンジン速度比に応じてレンダリングページ数を変更すれば良い。
次に図14を用いて、本第2の実施形態におけるスレーブプリンタの処理手順を説明する。同図のフローチャートに示されるプログラムは図5のPrint Manager1526によって実行されるものである。また、クラスタプリントのスレーブプリンタとしての動作指示はJob Ticketにより行われ、Job Ticket Parser1531で解釈された結果がControl API1519を介してJob Manager1520、PrintManager1526と通知される。
先ず、ステップS71乃至S75のループ処理では、マスタプリンタより受信したディスプレイリストデータに従ったレンダリング処理、レンダリング中のページ番号のマスタプリンタへの通知処理を繰り返す。マスタプリンタからは、先頭ページから後方に向かってディスプレイリストデータが転送されてくるので、レンダリング順序はページ1、2、…と昇順となる。また、このループ処理では、スレーブプリンタが次にレンダリングしようとしているページが、マスタプリンタにてレンダリングを開始しているか否かを判断する処理も行なう。次にレンダリングしようとしているページがマスタプリンタでレンダリングを開始していると判断した場合、或いは、最終ページまでレンダリングを行なった場合にはこのループ処理から抜ける。
なお、マスタープリンタでレンダリングが開始されているかどうかの確認はマスタープリンタとのネットワークを介したメッセージ通信により行われる。
ステップS71乃至S75のループ処理を抜けると、処理はステップS76に進む。ここでは、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第1の実施形態のステップS12、S31と同様である。等しいと判断した場合には、ステップS80に進んで、HDDに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全100ページの場合、HDDにはページ1、2…50のレンダリング済みデータが格納されているので、ページ1、2、…の順に印刷することになる。
また、ステップS76で、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップS77に進む。このステップS77では、スレーブプリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がNoの場合には、ステップS78に進み、YesであればステップS79に進む。
ステップS78に処理は進んだ場合には、スレーブプリンタが有するレンダリング結果が、印刷ジョブの全ページの半分に満たないことを意味する。その不足分のレンダリング済みのイメージデータがマスタプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が100ページであり、スレーブプリンタが45ページ目までレンダリングしている場合は、ページ46、47、48、49、50のレンダリング結果をマスタプリンタから受信し、HDDに格納する。
ステップS79に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをマスタプリンタに転送する。第2の実施形態におけるマスタプリンタの各ページのレンダリング順序は、降順である。従って、印刷ジョブのページ数が100ページであり、マスタプリンタで55ページ目までレンダリングしている場合は、ページ51、52、53、54のレンダリング結果をマスタプリンタに送信する。
このステップS78、S79の処理の結果、少なくともスレーブプリンタのHDDには、印刷ジョブで示される全ページ中の前半部分のページのレンダリングデータが格納されていることになる。従って、ステップS80に進み、前半のページを昇順に印刷する。
このように、マスタープリンタで解釈を実行し生成されたディスプレイリストデータをページ毎にスレーブプリンタに転送しレンダリングを行うことにより、マスタープリンタとスレーブプリンタによるパイプライン処理が可能となる。また、マスタープリンタでページ解釈が終了した後にはマスタープリンタも最終ページからレンダリングを開始する。従って、2つのプリンタでレンダリングするページ番号が連続したろことで、それぞれのレンダリング処理が終了することによりさらに効率的にRIPの負荷分散が行える。また、さらにRIP済みのイメージデータの配分を調整することにより、印刷の負荷分散も効率的に行うことができる。
図15は図13および図14のフローチャートにより説明したクラスタプリントを実行した際のシーケンス例である。この例では、マスタープリンタのページ解釈処理とスレーブプリンタのレンダリング処理が並列実行する状態となる。図示では、6ページ中の5ページ目までをスレーブプリンタでRIP処理を行っている。最後の6ページ目に関してはマスタープリンタでRIP処理を行い、4ページ目と5ページ目のRIP済みイメージをスレーブプリンタからマスタープリンタへ転送している。これにより印刷ページ数をマスタープリンタ、スレーブプリンタともに3ページに揃え印刷の負荷分散を実行している。説明の都合上、数ページのプリンタデータを例に説明しているが、数千ページのプリンタデータではさらに大きな効果がもたらされることが明らかである。
<第3の実施形態>
第1の実施形態による印刷システムでは、生成した全ページ分のディスプレイリストデータをマスタープリンタからスレーブプリンタに転送することによりRIPの負荷分散を実行した。ページ独立なPDL(ページ記述言語)であれば、そのPDLデータを転送する方法によりRIPの負荷分散を図ることも可能である。これを第3の実施形態として説明する。なお、第3の実施形態では、ページ独立なPDLデータの代表としてPDFを例にして説明する。
図16を用いて、本第3の実施形態におけるマスタープリンタの処理手順を説明する。同図のフローチャートに示されるプログラムは図5のJob Manager 1520とPrint Manager1526によって実行されるものである。また、クラスタプリントを行うか否かの指示、及びクラスタプリントを行う場合の従プリンタの指定はJob Ticketにより行われ、Job Ticket Parser1531で解釈された結果がControl API 1519を介してJob Manager1520に通知される。
まず、ステップS91では、受信したPDFデータをスレーブプリンタに転送する。転送したPDFデータはマスタープリンタのHDD上から削除されずに、そのまま残る。
次いでステップS92乃至S96のループ処理を実行する。このループ処理では、PDFインタプリタによる1ページ分の解釈してディスプレイリストデータの生成と、レンダリングを連続して実行する。この処理を先頭ページから後方ページに向かって順次行なう。また、このループ処理中、解釈及びレンダリング中のページ番号のスレーブプリンタへの通知処理を行なう。更に、レンダリング処理中に、次にレンダリングすべきページがスレーブプリンタでレンダリング処理中であるか否かを判断し、次ページがスレーブプリンタで処理中であると判断したら、このループから抜ける。また、マスタプリンタでのレンダリング処理したページが最終ページであった場合も、この処理を抜ける。
なお、PDFインタプリンタの処理に関しては、図6を用いて説明したPostScriptインタプリタの処理と言語処理部の処理が異なる程度でそれほど大きな違いは無いため、その説明は省略する。
ステップS92乃至S96のループを抜けると、処理はステップS97に進む。ここでは、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第1の実施形態のステップS12、S31と同様である。等しいと判断した場合には、ステップS101に進んで、HDDに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全100ページの場合、HDDにはページ1、2…50のレンダリング済みデータが格納されているので、ページ1、2、…の順に印刷することになる。
また、ステップS97で、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップS98に進む。このステップS98では、マスタプリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がNoの場合には、ステップS99に進み、YesであればステップS100に進む。
ステップS99に処理は進んだ場合には、マスタプリンタが有するレンダリング結果が、印刷ジョブの全ページの半分に満たないことを意味する。その不足分のレンダリング済みのイメージデータがスレーブプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が100ページであり、スレーブプリンタが45ページ目までレンダリングしている場合は、ページ46、47、48、49、50のレンダリング結果をスレーブプリンタから受信し、HDDに格納する。
また、ステップS100に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをスレーブプリンタに転送する。スレーブプリンタの各ページのレンダリング順序は、降順である。従って、印刷ジョブのページ数が100ページであり、マスタプリンタが55ページ目までレンダリングしている場合は、ページ51、52、53、54のレンダリング結果をスレーブプリンタに送信する。
このステップS99、100の処理の結果、少なくともマスタプリンタのHDDには、印刷ジョブで示される全ページ中の前半部分のページのレンダリングデータが格納されていることになる。従って、ステップS101進み、前半のページを昇順に印刷する。

なお、ステップS97はマスタ、スレーブプリンタのレンダリングしたページ数が等しいか否か、ステップS98はレンダリング済みのページ数が半分に達したか否かを調べるものであった。これは、マスタープリンタとスレーブプリンタのプリンタエンジンの出力速度が同速である場合を仮定しているためである。マスタープリンタとスレーブプリンタのエンジン速度が異なる場合には、それら2つのプリンタのエンジン速度比に応じてレンダリングページ数を変更すれば良い。
次に図17を用いて、本第3の実施形態におけるスレーブプリンタの処理手順を説明する。同図のフローチャートに示されるプログラムは図5のJob Manager 1520とPrint Manager1526によって実行されるものである。また、クラスタプリントのスレーブプリンタとしての動作指示はJob Ticketにより行われる。Job Ticket Parser1531で解釈された結果がControl API 1519を介してJob Manager1520、PrintManager1526と通知される。
先ず、ステップS111乃至S115のループ処理では、マスタプリンタより受信したPDFデータに従ったページ解釈、及び、レンダリング処理をページ単位に行なう。このときの処理順序は、最終ページから先頭ページに向かう降順である。また、レンダリング中のページ番号のマスタプリンタへの通知処理もこのループで行なう。また、マスタプリンタからは、スレーブプリンタが次にレンダリングしようとしているページが、マスタプリンタにてレンダリングを開始しているか否かを判断する処理も行なう。次にレンダリングしようとしているページがマスタプリンタでレンダリングを開始していると判断した場合、或いは、先頭ページまでレンダリングを行なった場合にはこのループ処理から抜ける。
ステップS111乃至S115の処理を抜けると、ステップS116の処理を実行する。このステップS116では、マスタプリンタとスレーブプリンタのレンダリングしたページ数が実質的に等しいか否かを判断する。この判定は、第1の実施形態のステップS12、S31と同様である。等しいと判断した場合には、ステップS120に進んで、HDDに格納されたレンダリング済みのデータに基づき、その先頭のページから印刷処理を行なう。より詳しくは、印刷ジョブの全100ページの場合、HDDにはページ51、52…100のレンダリング済みデータが格納されているので、ページ51、52、…の順に印刷することになる。
また、ステップS116において、マスタ、スレーブプリンタそれぞれのレンダリングしたページ数が異なると判断した場合には、ステップS117に進む。このステップS117では、スレーブプリンタでレンダリングしたページ数が全ページの半分を超えるかどうか判断する。この判断がNoの場合には、ステップS118に進み、YesであればステップS119に進む。
ステップS118に処理は進んだ場合には、スレーブプリンタが有するレンダリング結果が、印刷ジョブの全ページの半分に満たないことを意味する。その不足分のレンダリング済みのイメージデータがマスタプリンタより送られてくるので、それを受信する。印刷ジョブのページ数が100ページであり、スレーブプリンタが55ページ目までレンダリングしている場合は、ページ51、52、53、54のレンダリング結果をマスタプリンタから受信し、HDDに格納する。
また、ステップS119に処理が進んだ場合には、印刷ジョブの全ページの半分を超えたページ分のレンダリング済みのイメージデータをマスタプリンタに転送する。マスタプリンタの各ページのレンダリング順序は、昇順である。従って、印刷ジョブのページ数が100ページであり、マスタプリンタが45ページ目までレンダリングしている場合は、ページ46、47、48、49、50のレンダリング結果をマスタプリンタに送信する。
このステップS118、119の処理の結果、少なくともスレーブプリンタのHDDには、印刷ジョブで示される全ページ中の後半部分のページのレンダリングデータが格納されていることになる。従って、ステップS120進み、後半のページを昇順に印刷する。
以上説明したように本第3の実施形態によれば、ページ毎に独立したPDLデータの場合には、レンダリングのみならず、ページ解釈処理についても負荷を2つのプリンタに分担させることが可能になり、効率的なクラスタプリントを行なうことが可能になる。
図18は、図16および図17のフローチャートにより説明したクラスタプリントを実行した際のシーケンスの例である。この例では、6ページ中の1ページ目と2ページ目のRIP処理が重たいため、マスタープリンタで前2ページのRIP処理を行い、スレーブプリンタで残りの4ページのRIP処理を行うことによりRIPの負荷分散を実行している。また、3ページ目のRIP済みイメージをスレーブプリンタからマスタープリンタへ転送することにより、印刷ページ数をマスタープリンタ、スレーブプリンタともに3ページに揃え印刷の負荷分散を実行している。説明の都合上、数ページのプリンタデータを例に説明しているが、数千ページのプリンタデータではさらに大きな効果がもたらされる。ページ解釈処理もマスタープリンタとスレーブプリンタで分散することができるため、第1の実施形態よりも効率的なRIPの負荷分散が可能である。また、第2の実施形態に比べて転送するイメージの数も少なくなる傾向があるので、最も効率的な負荷分散印刷が可能となる。
なお、第1、第2の実施形態ではページ記述言語としてPostScriptを例にしたが、他のページ記述言語でも構わない。なぜなら、これらの実施形態では、ページ記述言語とは独立した中間データ(ディスプレイリストデータ)に変換した結果を2つのプリンタが共有し、レンダリングを行なえば良いからである。また、第3の実施形態では、ページ独立言語としてPDFを例にしたが、ページ単位に独立している言語であれば良いので、PDFに限定されない。
<第4の実施形態>
上記第1乃至第3の実施形態では、2台の画像形成装置によりクラスタプリントを行なう例を説明したが、3台、或いはそれ以上でクラスタプリントを行なうようにしても構わない。説明を簡単にするため、第1の実施形態を適用し、3台のプリンタでクラスタプリントを行なうものとする。また、3台の画像形成装置が搭載しているプリンタ部の印刷能力(単位時間当たりの印刷枚数)が同じであるとする。
また、ホストコンピュータ2100は、ジョブチケットにスレーブプリンタA、Bとなる画像形成装置のネットワークアドレスを記述したジョブチケットをマスタとなる画像形成装置に出力するものとする。ここで、主従関係はマスタ、スレーブA、スレーブBの順番とする。つまり、スレーブプリンタAはマスタプリンタスのスレーブプリンタとして機能すると共に、スレーブプリンタBに対するマスタプリンタとして機能する。
マスタプリンタは、印刷ジョブのディスプレイリストデータを生成した際、スレーブプリンタB、Cにそれを転送する。以下はこの転送が完了した場合の各プリンタの動作である。
今、印刷ジョブによる全ページ数が99ページであるものとして説明する。
マスタプリンタは、図19に示すように、ページ1、2、3の順番(昇順)にレンダリングを行なう。そして、次にレンダリングするページ番号が、スレーブプリンタAでのレンダリングしているページ番号と一致するまで繰り返す。
スレーブプリンタBは、図19に示すように、ページ番号99、98、97、…の順番(降順)にレンダリングを行なう。そして、次にレンダリングするページ番号が、スレーブプリンタAでのレンダリングしているページ番号と一致するまで繰り返す。
マスタ、スレーブプリンタBとの中間に位置するスレーブプリンタAは、図19に示すように処理を行なう。具体的には次の通りである。
先ず、印刷ジョブの全ページの中央のページ番号「49」(=99/2の整数)を最初にレンダリングするとして決定する。そして、原則として次のような順番でレンダリングを行なう。
ページ49、50、48、51、47、52…
つまり、レンダリングするページ番号を、初期値「49」から始め、昇順と降順に交互に切り替えて行なう(昇順レンダリング用の変数iと、降順レンダリング用の変数Kを持つ)。降順レンダリングの工程で、次にレンダリングしようとするページ番号が、マスタプリンタがレンダリング中のページ番号と同じになったら、降順のレンダリングを終了する。また、昇順レンダリング工程で、次にレンダリングしようとするページ番号がスレーブプリンタBがレンダリング中のページ番号と同じになったら、昇順のレンダだリングを終了する。
以上の結果、3台のプリンタによって全ページのレンダリングが完了すると、[マスタ:スレーブプリンタA]間、及び、[スレーブプリンタA、B]間でのレンダリング結果の送受信を行なう。すなわち、マスタプリンタはページ番号1乃至33のレンダリング結果を保持し、スレーブプリンタAはページ番号34乃至66のレンダリング結果を保持し、スレーブプリンタはページ番号67乃至99のレンダリング結果を保持する。
この後の処理は、各プリンタでは、自身に割り当てられたページを昇順に印刷すればよい。
なお、上記の処理だけでは、3台のプリンタのレンダリングが同時に終了するとは限らない。例えば、マスタプリンタとスレーブプリンタAとの間で前半の50ページ分のレンダリングが完了したとき、スレーブプリンタAとB間での後半の50ページのレンダリングが未完の場合もあり得る。そこで、中間に位置するスレーブプリンタAは次のように処理を行なう。
スレーブプリンタAは、マスタ、スレーブプリンタBから、それぞれのレンダリングしているページの番号の通知を受けている。つまり、どちらのプリンタの進捗が遅いかを検出することができる。そこで、進捗の遅い方に併せて、レンダリングするページ番号を決定する。
具体的には、マスタプリンタとスレーブプリンタAとの間での未レンダリングページ数(NP1という)と、スレーブプリンタAとBとの間での未レンダリングページ数(NP2という)との差を求める。そして、その差の絶対値(=|NP1−NP2|)が、予め定められた閾値以下の場合、上記のように、昇順、降順のレンダリング処理を繰り返す。
一方、|NP1−NP2|が閾値を超える場合、進捗の遅い方を優先的にレンダリングを行なう。
例えば、NP1=10、NP2=20で、閾値が“3”とするなら、スレーブプリンタAは、昇順のレンダリング処理を優先する。そして、この判断処理とレンダリング順序を決定する処理、1ページのレンダリングを行なう毎に行なう。
以上の結果、各プリンタは実質的に同じタイミングでレンダリングを完了することになる。
この後は、マスタプリンタとスレーブプリンタAとの間では、2:1の割合でレンダリング結果を保持するように、互いに不足分のレンダリング結果を補う。一方、スレーブプリンタAとBとの間では、1:2の割合でレンダリング結果を保持するように、互いに不足分のレンダリング結果を補う。
以上説明したように本第4の実施形態によれば、3台でのプリンタでクラスタプリントを行なうことが可能になる。なお、4台以上のプリンタでクラスタプリントを行なう場合、すなわち、マスタ、スレーブA,B,Cで印刷を行なう場合、各プリンタで印刷されるページ数が全ページ数の1/4となる。また、スレーブプリンタA,Bが中間に位置するプリンタとして機能するだけであるので、説明するまでもないであろう。
なお、第4の実施形態では、第1の実施形態に適用する例を説明したが、第2、第3の実施形態に適用しても構わないのは、上記説明から容易に理解できよう。
以上本発明に係る実施形態を説明した。上記実施形態では、レンダリング結果を受けて印刷する場合、各プリンタでは、自身に割り当てられたページ範囲の先頭から印刷するものとして説明した。しかし、これによって本発明が限定されるものではない。画像形成装置に接続されたフィニッシャ装置がフェースダウン排出機能を持たない場合、各プリンタでは、自身に割り当てられたページ範囲の最終ページから降順に排出することが望ましい。
実施形態におけるシステムの全体構成を示す図である。 実施形態における画像形成装置のコントローラユニット内構成を示す図である。 画像形成装置の外観図である。 画像形成装置の操作部の外観図である。 画像形成装置のソフトウェアブロック図である。 画像形成装置の処理順序とデータフローを示す図である。 実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。 実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。 実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。 実施形態における画像形成装置のクラスタプリント時の処理手順を示すフローチャートである。 実施形態における画像形成装置の他の画像形成装置からレンダリング処理中のページ番号を含むメッセージの受信処理を示すフローチャートである。 第1の実施形態における2台のプリンタの処理のシーケンスを示す図である。 第2の実施形態における画像形成装置がマスタープリンタとして機能する場合の処理手順を示すフローチャートである。 第2の実施形態における画像形成装置がスレーブプリンタとして機能する場合の処理手順を示すフローチャートである。 第2の実施形態における2台のプリンタの処理のシーケンスを示す図である。 第3の実施形態における画像形成装置がマスタープリンタとして機能する場合の処理手順を示すフローチャートである。 第3の実施形態における画像形成装置がスレーブプリンタとして機能する場合の処理手順を示すフローチャートである。 第3の実施形態における2台のプリンタの処理のシーケンスを示す図である。 第4の実施形態におけるレンダリングのシーケンスを示す図である。

Claims (13)

  1. 印刷処理を実行する少なくとも2台の印刷装置で構成される印刷システムであって、
    外部装置から受信した印刷ジョブに基づいて複数ページの中間データを生成する中間データ生成手段と、
    第1の印刷装置にて第1ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第1変換部と、第2の印刷装置にて第2ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第2変換部とを備え、複数ページの画像データを生成するデータ変換手段と、
    前記データ変換手段により生成された複数ページの画像データに基づく印刷処理を実行する際に、前記第1の印刷装置にて印刷処理すべき画像データのページ数と、前記第2の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定手段と、
    前記設定手段が設定した配分と、前記第1ページ範囲のページ数と前記第2ページ範囲のページ数の配分が異なる場合、前記設定手段が設定した配分を超過するページ数の画像データを保持している印刷装置から他の印刷装置に画像データを送信する画像データ送信手段と、
    前記第1の印刷装置が保持する画像データに基づいて印刷処理を実行する第1印刷部と、前記第2の印刷装置が保持する画像データに基づいて印刷処理を実行する第2印刷部とを備える印刷手段と、
    を備えることを特徴とする印刷システム。
  2. 前記データ変換手段は、前記第1変換部が前記中間データをページ順に変換処理し、前記第2変換部が前記ページ順の逆順に変換処理し、前記第1変換部が変換処理したページと前記第2変換部が変換処理したページが互いに隣り合うまで繰り返して前記全ページの画像データを生成することを特徴とする請求項1に記載の印刷システム。
  3. 前記中間データ生成手段は、前記第1の印刷装置にて前記中間データを生成し、
    前記中間データ生成手段が生成した前記中間データを、前記第2の印刷装置に送信する中間データ送信手段を備えることを特徴とする請求項1又は2に記載の印刷システム。
  4. 前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブの全ページの中間データを生成した後に、前記第2の印刷装置に前記全ページの中間データを送信することを特徴とする請求項3に記載の印刷システム。
  5. 前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブの1ページ分の中間データを生成する度に、前記第2の印刷装置に前記1ページ分の中間データを送信することを特徴とする請求項3に記載の印刷システム。
  6. 前記中間データ生成手段は、前記第1の印刷装置にて前記第1ページ範囲の中間データを生成する第1中間データ生成部と、前記第2の印刷装置にて前記第2ページ範囲の中間データを生成する第2中間データ生成部とを備えることを特徴とする請求項1又は2に記載の印刷システム。
  7. 前記設定手段は、前記第1の印刷装置の印刷処理速度と、前記第2の印刷装置の印刷処理速度とに基づいて前記配分を設定することを特徴とする請求項1乃至6のいずれか1項に記載の印刷システム。
  8. 他の印刷装置とネットワークを介して接続される印刷装置であって、
    外部装置から印刷ジョブを受信する受信手段と、
    前記受信手段が受信した印刷ジョブに基づいて第1ページ範囲と第2ページ範囲とを含む複数ページの中間データを生成する中間データ生成手段と、
    前記中間データ生成手段が生成した中間データを前記他の印刷装置に送信する中間データ送信手段と、
    前記中間データ生成手段が生成した複数ページの中間データに含まれる前記第1ページ範囲の中間データを変換処理して印刷処理に利用可能な画像データを生成するデータ変換手段と、
    前記データ変換手段により生成された複数ページの画像データに基づく印刷処理を実行する際に、装置にて印刷処理すべき画像データのページ数と、前記他の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定手段と、
    前記設定手段が設定した配分と、前記第1ページ範囲の中間データのページ数と前記他の印刷装置にて画像データに変換処理される前記第2ページ範囲の中間データのページ数との配分が異なる場合、前記第1ページ範囲の中間データのページ数が前記設定手段により前記自装置に配分されたページ数を超える場合には超過するページに対応する画像データを前記他の印刷装置に送信し、前記第1ページ範囲の中間データのページ数が前記設定手段により前記自装置に配分されたページ数に満たない場合には不足するページに対応する画像データを前記他の印刷装置から受信する画像データ通信手段と、
    前記画像データ通信手段による通信が行われた後、自装置に配分された画像データに基づき印刷処理する印刷手段と、
    を備えることを特徴とする印刷装置。
  9. 前記データ変換手段は、前記中間データ生成手段が生成した中間データをページ順に変換処理するとともに、該変換処理を、前記データ変換手段が変換処理したページと前記他の印刷装置が変換処理したページが互いに隣り合うまで繰り返すことを特徴とする請求項8に記載の印刷装置。
  10. 前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブに対応する全ページの中間データを生成した後に、前記他の印刷装置に前記全ページの中間データを送信することを特徴とする請求項8又は9に記載の印刷装置。
  11. 前記中間データ送信手段は、前記中間データ生成手段が前記印刷ジョブの1ページ分の中間データを生成する度に、前記他の印刷装置に前記1ページ分の中間データを送信することを特徴とする請求項8又は9に記載の印刷装置。
  12. 前記設定手段は、前記自装置の印刷処理速度と、前記他の印刷装置の印刷処理速度とに基づいて前記配分を設定することを特徴とする請求項8乃至11のいずれか1項に記載の印刷装置。
  13. 印刷処理を実行する少なくとも2台の印刷装置で構成される印刷システムにおける印刷方法であって、
    外部装置から受信した印刷ジョブに基づいて複数ページの中間データを生成する中間データ生成工程と、
    第1の印刷装置にて第1ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換処理する第1変換工程と、第2の印刷装置にて第2ページ範囲の前記中間データを前記印刷処理に利用可能な画像データに変換する第2変換工程とを備え、複数ページの画像データを生成するデータ変換工程と、
    前記データ変換工程により生成された複数ページの画像データに基づく印刷処理を実行する際に、前記第1の印刷装置にて印刷処理すべき画像データのページ数と、前記第2の印刷装置にて印刷処理すべき画像データのページ数との配分を設定する設定工程と、
    前記設定工程が設定した配分と、前記第1ページ範囲のページ数と前記第2ページ範囲のページ数の配分が異なる場合、前記設定工程が設定した配分を超過するページ数の画像データを保持している印刷装置から他の印刷装置に画像データを送信する画像データ送信工程と、
    前記第1の印刷装置が保持する画像データに基づいて印刷処理を実行するとともに、前記第2の印刷装置が保持する画像データに基づいて印刷処理を実行する印刷工程と、
    を備えることを特徴とする印刷方法。
JP2006031349A 2006-02-08 2006-02-08 印刷システム、及び、印刷装置及びその制御方法 Expired - Fee Related JP4390287B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006031349A JP4390287B2 (ja) 2006-02-08 2006-02-08 印刷システム、及び、印刷装置及びその制御方法
US11/671,687 US8130394B2 (en) 2006-02-08 2007-02-06 Printer system for generating intermediate data in distributed printing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006031349A JP4390287B2 (ja) 2006-02-08 2006-02-08 印刷システム、及び、印刷装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2007213234A JP2007213234A (ja) 2007-08-23
JP4390287B2 true JP4390287B2 (ja) 2009-12-24

Family

ID=38333749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006031349A Expired - Fee Related JP4390287B2 (ja) 2006-02-08 2006-02-08 印刷システム、及び、印刷装置及びその制御方法

Country Status (2)

Country Link
US (1) US8130394B2 (ja)
JP (1) JP4390287B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7986419B2 (en) * 2007-09-12 2011-07-26 Xerox Corporation Performance optimization method for network printers
US8248641B2 (en) * 2007-10-03 2012-08-21 Ricoh Company, Limited Network printers having distributed print jobs function and utilizing withhold printing commands
JP5171458B2 (ja) * 2008-07-28 2013-03-27 キヤノン株式会社 印刷制御装置、印刷制御方法、及びコンピュータプログラム
US20100220350A1 (en) * 2009-02-27 2010-09-02 Konica Minolta Systems Laboratory, Inc. Systems and Methods for Configuration of Networked Printers
JP5366600B2 (ja) * 2009-03-16 2013-12-11 キヤノン株式会社 画像形成装置
US20100245889A1 (en) * 2009-03-30 2010-09-30 Nguyen Uoc H Methods and Systems for Rendering Data
US20100245918A1 (en) * 2009-03-30 2010-09-30 Nguyen Uoc H Methods and Systems for Rendering Data
US8339653B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data based on overlap characteristics
US8411319B2 (en) * 2009-03-30 2013-04-02 Sharp Laboratories Of America, Inc. Methods and systems for concurrent rendering of graphic-list elements
US8339671B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data by partitioning a graphics list
US8339672B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data using graphic-list partitions and associated rendering processors
US8339670B2 (en) * 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data based on graphic-list partitioning
JP2011028390A (ja) * 2009-07-22 2011-02-10 Brother Industries Ltd サーバ、プリンタ及びコンピュータプログラム
JP4663805B2 (ja) * 2009-09-18 2011-04-06 キヤノン株式会社 印刷装置、印刷処理方法及びプログラム
JP2011137955A (ja) * 2009-12-28 2011-07-14 Canon Inc 印刷システム及び印刷装置並びに印刷方法、印刷方法を実行するプログラム
JP2011154636A (ja) 2010-01-28 2011-08-11 Canon Inc レンダリングシステム、データの最適化方法、及びプログラム
JP5488224B2 (ja) * 2010-06-09 2014-05-14 株式会社リコー 画像処理装置、分散印刷システム、分散印刷方法、およびプログラム
JP5672627B2 (ja) * 2010-09-09 2015-02-18 富士ゼロックス株式会社 印刷装置およびプログラム
JP5664324B2 (ja) * 2011-02-22 2015-02-04 株式会社リコー 分散印刷システム、画像形成装置、方法及びプログラム
TW201245963A (en) * 2011-05-05 2012-11-16 Hon Hai Prec Ind Co Ltd Distributed printing controlling method and system and distributed printing method
JP5423728B2 (ja) * 2011-05-31 2014-02-19 コニカミノルタ株式会社 画像形成システムおよび画像形成制御方法
JP5811711B2 (ja) * 2011-09-07 2015-11-11 株式会社リコー 機器連携システム、機能提供方法
US8848222B2 (en) 2011-10-05 2014-09-30 Ricoh Production Print Solutions LLC Mechanism for previewing secure print jobs
US10248894B2 (en) 2016-02-24 2019-04-02 Ricoh Company, Ltd. Raster pixel object identification mechanism
JP7197991B2 (ja) * 2018-04-02 2022-12-28 富士通コンポーネント株式会社 通信システムおよび印刷装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333246A (en) * 1990-04-05 1994-07-26 Seiko Epson Corporation Page-description language interpreter for a parallel-processing system
JPH08263240A (ja) 1995-03-23 1996-10-11 Hitachi Koki Co Ltd 複数台のプリンタの制御方法
JPH09207410A (ja) * 1995-11-30 1997-08-12 Seiko Epson Corp 画像情報印刷装置および方法
JP3537612B2 (ja) 1996-10-07 2004-06-14 株式会社リコー 画像形成システム
WO2001077808A1 (fr) * 2000-04-07 2001-10-18 Seiko Epson Corporation Commande d'impression decentralisee par des imprimantes
JP2002200828A (ja) * 2000-10-23 2002-07-16 Canon Inc 情報処理装置、制御方法及び記憶媒体
US7595903B2 (en) * 2003-01-23 2009-09-29 Ricoh Company, Ltd. Collaboration system, method and software program for image forming apparatuses
JP4039954B2 (ja) 2003-01-24 2008-01-30 株式会社リコー 画像形成システム
JP4094458B2 (ja) * 2003-03-14 2008-06-04 株式会社リコー 画像入力装置
JP4487581B2 (ja) * 2003-02-21 2010-06-23 富士ゼロックス株式会社 重連印刷装置および重連印刷方法
JP2004288071A (ja) 2003-03-25 2004-10-14 Kyocera Mita Corp 画像データ印刷システム及び画像データ印刷方法
JP2005149317A (ja) * 2003-11-18 2005-06-09 Canon Inc 情報処理装置、ジャムリカバリ方法、プログラム、記録媒体及び印刷システム
JP4208769B2 (ja) * 2004-06-09 2009-01-14 キヤノン株式会社 情報処理装置、並びに、その制御方法および情報処理方法

Also Published As

Publication number Publication date
US20070182991A1 (en) 2007-08-09
US8130394B2 (en) 2012-03-06
JP2007213234A (ja) 2007-08-23

Similar Documents

Publication Publication Date Title
JP4390287B2 (ja) 印刷システム、及び、印刷装置及びその制御方法
US5970216A (en) Image processing system which synthesizes a generated first image signal with a second image signal selected from a plurality of input image signals
JP4689431B2 (ja) 情報処理装置、画像処理方法、及びコンピュータプログラム
JP4817934B2 (ja) 画像処理装置およびその方法
US7760389B2 (en) Image forming device having resolution compensation function and method thereof
US20100103435A1 (en) Image processing apparatus and image processing method for processing screen-processed image
US8441690B2 (en) Image processing apparatus and image processing method for processing screen-processed image
JP2002209097A (ja) 描画方法および描画装置
JP2008269325A (ja) 印刷装置及び印刷システム
US20050057766A1 (en) Method and apparatus for viewing on a client data representing a document to be printed
JP2008118447A (ja) 画像形成装置及び画像形成方法ならびにそのプログラム
JP2006155308A (ja) 画像形成装置
JP2006044169A (ja) 印刷装置、及びその制御方法
JP4801489B2 (ja) 画像形成装置及び画像形成プログラム
JP4424718B2 (ja) 画像出力装置及びその制御方法、並びに、コンピュータプログラム及び画像出力システム
JP2007073005A (ja) ページ記述言語データ解釈装置
US8437046B2 (en) Image processing apparatus and method for outputting an image subjected to pseudo-halftone processing
JP5389096B2 (ja) 装置及びその制御方法
JP4603717B2 (ja) 情報処理装置、分散印刷システム、分散印刷制御方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体
JP2006140597A (ja) 印刷制御装置、印刷制御方法、コンピュータプログラム及び記憶媒体
JP2003271368A (ja) 印刷制御装置、印刷制御方法、印刷制御プログラムを記録した媒体および印刷制御プログラム
JP3599415B2 (ja) 画像処理装置及び画像処理方法
JP4757329B2 (ja) 画像出力装置
JP2005161580A (ja) 画像処理装置、画像処理方法およびコンピュータプログラム
JP2005108113A (ja) 画像形成システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090907

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091002

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091005

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees