説明

画像形成装置

【課題】 エンジン速度に基づいた効率の良い並列処理スケジューリングを行い、トータルスループットを向上させる。
【解決手段】 並列処理が速すぎる為にストレージの枯渇を招かないようにRIP処理速度をセーブし、重たいページのRIP処理を先に行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチプロセッサシステムを用いて並列レンダリング処理を実行する画像形成装置及び画像形成方法ならびに画像形成方法を実行するプログラムに関するものである。
【背景技術】
【0002】
ページ記述言語(PDL: Page Description Language)で記述されたデータをネットワーク等の通信媒体を介して受信し、ページ記述を解釈し画像を形成するRIP処理を行い、電子写真等のプリントエンジンを用いて印字出力するページプリンタが広く知られている。ページ記述データは元電子文書からアプリケーションとオペレーティングシステム、ドライバの連携により生成されるものであるが、一般に元電子文書の複雑度に応じて生成されるページ記述データのデータサイズと複雑度が大きくなる傾向がある。従って、プリンタにおけるページ記述の解釈にかかる時間(RIP時間)はデータによりまちまちで、プリンタエンジンの速度に間に合うようにRIP処理が終わらない場合があり、RIP処理がプリント性能を語る上で大きなウェイトを占める。このRIP処理を高速化する為の手法として、マルチプロセッサを用いた並列処理やネットワーク上の他のノード(CPU)を利用したネットワーク分散処理が広く知られている。
【0003】
又、別の従来例としては、特許文献1をあげることが出来る。
【特許文献1】特開2004−279445号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、プリントエンジン速度は一定値が限界であり、RIPを速く行い過ぎてもRIP済み画像をHDD等の低速大容量記憶媒体に退避させる必要があり、やがて低速大容量記憶媒体も一杯となりRIP処理が中断されるため効率が良いとは言えない。また、複雑で処理が重たいページのRIPでは並列処理を持ってしても、エンジン速度に間に合うRIPが難しく、出力速度の低下につながる。
【課題を解決するための手段】
【0005】
上述した課題を解決するために、本発明では、プリンタドライバはPDLデータの生成と同時に各ページのRIP時間予測を行いプリントデータ中に埋め込むRIP時間予測手段を持ち、プリンタはPDLの解釈を複数のプロセッサで並列に行い複数の画像を生成する並列RIP手段と、各ページの処理時間予測値が含まれるPDLデータを受信して各ページの処理時間予測値を抽出する抽出手段と、処理時間予測値を基にエンジン速度に間に合わせる為に必要な並列処理数を決定する並列度決定手段と、処理待ちのページの中から並列RIP手段によっても画像生成がエンジン速度に間に合わないページを検索する検索手段と、前記並列度決定手段に従い並列RIPを行いつつ未使用のプロセッサがある場合に前記検索手段により選んだページのRIP処理を同時に行うスケジューリング手段を有することを特徴とする。
【発明の効果】
【0006】
本発明によって、並列処理が速すぎる為にストレージの枯渇を招かないようにRIP処理速度をセーブし、重たいページのRIP処理を先に行うことにより、エンジン速度に基づいた効率の良い並列処理スケジューリングを行い、トータルスループットを向上させることができる。
【発明を実施するための最良の形態】
【0007】
(実施例1)
以下、本発明にかかる一実施形態について、図面を参照して詳細に説明する。
【0008】
図1は、本発明の実施例を示す画像形成装置システムの全体の構成を説明するブロック図である。本画像形成装置200は、画像入力デバイスであるスキャナ部2070、画像出力デバイスであるプリンタ部2095、Controller Unit 2000、ユーザインターフェースである操作部2012から構成される。スキャナ部2070、プリンタ部2095、操作部2012は、それぞれController Unit 2000に接続され、Controller Unit 2000は、LAN 2011などのネットワーク伝送手段に接続されている。また、LAN 2011には、画像形成装置200と同様の機器構成をもつ他の画像形成装置220、230が接続されている。画像形成装置220、230は、それぞれスキャナ部2270、2370、プリンタ部2295、2395、操作部2212、2312を持ち、それらがController Unit 2200、2300に接続されている。
【0009】
図2は、本発明の実施例を示す画像形成装置のソフトウェアブロック図である。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)文書を、本画像形成装置のプリント機能を使用してプリントする機能を実現する。また、1512 HTTPモジュールを使用して外部のWebサーバに格納された電子文書を取り出しプリントする機能も提供するものである。1510はCopyモジュールであり、本画像形成装置のプリンタ機能とスキャナ機能を使用し、UIの指示に基づいてCopy動作を実行するものである。1511はボックスモジュール(Box)であり、スキャン画像もしくはPDLプリント画像をHDDに格納し、格納した画像のプリンタ機能による印刷、Universal-Send機能による送信、HDDに格納した文書の削除、グルーピング(個別BOXへの格納)、BOX間移動、BOX間コピーなどの管理機能を提供する。1512は本画像形成装置がHTTPにより通信する際に使用されるモジュールであり、後述の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-Send 1504、PDL 1509、Copy 1510、Box 1511等の上位モジュールに対し、後述のJob-Manager 1520等の下位モジュールとのインターフェイスを提供するものであり、上位、及び下位のモジュール間の依存関係を軽減しそれぞれの流用性を高めるものである。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であり、Job-Manager 1520の指示により、PDLもしくは電子文書フォーマットを解釈し、PDLもしくは電子文書フォーマットの種別によらない共通の表現形式であるディスプレイリストを生成するものである。1530はRenderであり、PDL Interpreter 1527により生成されたディスプレイリストを、Print-Manager 1520の指示により、イメージプロセッサを用いてラスタイメージメモリに展開するものである。
【0010】
図3は、画像形成装置の構成を説明するブロック図である。Controller Unit 2000は画像入力デバイスであるスキャナ2070や画像出力デバイスであるプリンタ2095と接続し、一方ではLAN2011や公衆回線(WAN)2051接続することで、画像情報やデバイス情報の入出力を行う為のコントローラである。 CPU2001はシステム全体を制御するコントローラであり、同一の機能と処理能力を有する二つのCPUから構成される。RAM2002はCPU2002が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM2003はブートROMであり、システムのブートプログラムが格納されている。HDD2004はハードディスクドライブで、システムソフトウェア、画像データを格納する。操作部I/F2006は操作部(UI)2012とインターフェース部で、操作部2012に表示する画像データを操作部2012に対して出力する。また、操作部2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。Network2010はLAN2011に接続し、情報の入出力を行う。Modem2050は公衆回線2051に接続し、情報の入出力を行う。以上のデバイスがシステムバス2007上に配置される。Image Bus I/F2005はシステムバス2007と画像データを高速で転送する画像バス2008を接続し、データ構造を変換するバスブリッジである。画像バス2008は、PCIバスまたはIEEE1394で構成される。画像バス2008上には以下のデバイスが配置される。イメージプロセッサ(RIP)2060はディスプレイリストをラスタイメージに展開する。デバイスI/F部2020は、画像入出力デバイスであるスキャナ2070やプリンタ2095とコントローラ2000を接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部2080は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部 2090は、プリント出力画像データに対して、プリンタの補正、解像度変換、ハーフトーニング等を行う。画像回転部2030は画像データの回転を行う。画像圧縮部2040は、多値画像データはJPEG、2値画像画像データはJBIG、MMR、MHの圧縮伸張処理を行う。カードリーダI/F2015は、磁気カードの読み取り装置であるカードリーダ2016のインターフェース部である。
【0011】
画像形成装置外観を図4に示す。画像入力デバイスであるスキャナ部2070は、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)を走査することで、ラスターイメージデータ2071として電気信号に変換する。原稿用紙は原稿フィーダ2072のトレイ2073にセットし、装置使用者が操作部2012から読み取り起動指示することにより、コントローラCPU2001がスキャナ2070に指示を与え(2071)、フィーダ2072は原稿用紙を1枚ずつフィードし原稿画像の読み取り動作を行う。画像出力デバイスであるプリンタ部2095は、ラスターイメージデータ2096を用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、コントローラCPU2001からの指示2096によって開始する。プリンタ部2095には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット2101、2102、2103がある。また、排紙トレイ2111は印字し終わった用紙を受けるものである。
【0012】
操作部2012の構成を図5に示す。LCD表示部2013は、LCD上にタッチパネルシート2019が貼られており、システムの操作画面およびソフトキーを表示するとともに、表示してあるキーが押されるとその位置情報をコントローラCPU2001に伝える。スタートキー2014は原稿画像の読み取り動作を開始する時などに用いる。スタートキー2014中央部には、緑と赤の2色LED2018があり、その色によってスタートキー2014が使える状態にあるかどうかを示す。ストップキー2015は稼働中の動作を止める働きをする。IDキー2016は、使用者のユーザーIDを入力する時に用いる。リセットキー2017は操作部からの設定を初期化する時に用いる。
【0013】
図6は画像形成装置の操作部の構成を説明するブロック図である。画像形成装置において、2001は制御CPUで、2003のプログラム用ROMと2004HDDに記憶された制御プログラム等に基づいてシステムバス2007に接続される各種デバイスとのアクセスを総括的に制御し、画像入力部インタフェース2071を介して接続されるスキャナ2070から入力情報を読み込み、印刷部インタフェース2096を介して接続される印刷部2095に出力情報としての画像信号を出力する。2002は2001のCPUの主メモリ、ワークエリア等として機能するRAMである。2019のタッチパネル、2014〜2017のハードキーから、ユーザ入力を受け取り操作入力部I/F20061を介して、操作内容を取得する。取得した操作内容と前述の制御プログラムにもとづいて、CPU2001において表示画面データが生成され、画面出力デバイスを制御する出力デバイスコントローラ20062を介して、LCDやCRTなどの画面出力デバイス2013に表示画面を出力する。
【0014】
次に、図7を用いてページ記述言語の解釈し画像形成を行うRIP処理の流れに関して説明する。インタプリタ3001は図2のPDL Interpreter1527の一つで、ページ記述言語で記述されたデータを解釈し中間言語データであるディスプレイリスト3015を生成する。言語処理部3004はページ記述言語により記述されたデータを解釈し、描画オペレータに応じて文字処理部3005、グラフィックス処理部3006、イメージ処理部3007へ描画要求を出すものである。文字処理部3005は指定されたフォントから文字ビットマップを生成するものであり、グラフィックス処理部3006はベクタグラフィックス描画を制御するものであり、イメージ処理部3007はイメージデータを共通の内部データ形式に変換する処理等を行うものである。CMSエンジン3008はカラーマネージメントを行うモジュールであり、入力色を絶対色空間に変換後、プリンタエンジン固有の出力色(CMYK)を生成するものである。ページ記述言語ではDevice色空間、CIEBased色空間、特殊色空間など多様な色空間が規定されており、Device色空間で指定された入力色に関しては、RGBソースプロファイル、CMYKシミュレーションプロファイルなどの予め用意されたICCプロファイル群のうち指定されたものを用いて色変換を行う。CIEBased色空間で指定された入力色に関してはその色空間で指定された変換テーブル、変換関数、変換マトリックスに従い色変換を行う。絶対色空間からプリンタエンジン固有の色空間への変換は出力プロファイルもしくは、ページ記述言語で規定されたColor Rendering Dictionaryを用いて行う。色判定部3009はCMSエンジンの出力値であるCMYK色を調べ、現在処理中のページがカラーページかモノクロページか判定するものである。ディスプレイリストジェネレータ3010は中間言語データであるディスプレイリスト3015を生成するものである。ディスプレイリスト内には、各オブジェクトの属性フラグが含まれており、オブジェクトがグラフィックス、イメージ、文字の何れであるかが識別される。この属性フラグはレンダを経て後段の画像処理に使用される。レンダ3002はディスプレイリストを解釈し、それぞれがビット深度8×4面のCMYKビットマップ3016を生成するものであり、図3のRIP2060を使用して大半の処理が行われる。また、レンダはディスプレイリスト3015に含まれる属性フラグを元に各デバイスピクセル単位に属性を示す、オブジェクト属性マップ3017を5枚目の版として生成する。ここでオブジェクト属性マップはピクセル毎にビット深度2(グラフィックス01、イメージ10、文字11)の属性情報を持つ。画像処理プロセッサ3003は図2のPrint Manager1526により制御され、レンダ3002により生成されたCMYKビットマップ3016に対して、濃度・カラーバランス調整3011、出力ガンマ補正3012、ハーフトーニング3013などの画像処理を行うものである。ハーフトーニング3013はオブジェクト属性マップ3017を参照してオブジェクト属性毎に異なるハーフトーニングを適用するものであり、グラフィックス属性の画像領域に対しては解像度優先の高線数スクリーンを、イメージ属性の画像領域に対しては諧調優先の低解像度スクリーンを、文字属性の画像領域に対しては誤差拡散を適用する。色判定部3009でモノクロページと判定された場合には、レンダ3002で作成されたCMYKビットマップ3016のうちK版のビットマップのみが画像処理プロセッサ3003に送られ、最終出力で使用されるKビットマップ3019が生成される。また、色判定部3009でカラーページと判定された場合には、レンダ3002で生成されたCMYKビットマップ3016がそのまま画像処理プロセッサ3002に送られ、最終出力で使用されるCMYKビットマップ3018が生成される。こうして、画像処理プロセッサ3003により生成されたCMYKビットマップ3014もしくはKビットマップ3015が図2のEngine I/F1529を介してプリンタエンジンに転送され、所望のメディアに印字出力されるものである。
【0015】
次に本実施例における並列RIP処理に関して説明する。本実施例では図7のインタプリタ3001による処理のうち特に処理時間を大量に要する文字処理部とイメージ処理部とCMS処理部に関してのみ二つのCPUを用いて並列処理を行うものである。二つのCPUはハードウェア的には同等のものであるが、並列RIP処理の際には主たる制御を司るMain CPUとMain CPUからの処理依頼を受けて作業をこなすSub CPUという異なった役割が与えられる。本実施例では二つのCPUによる並列処理を示すが、CPUの数をさらに増やす場合にはSub CPUとしての役割を持つCPUが増えることになる。
【0016】
まず、図8を用いて、文字処理部における並列処理シーケンスについて説明する。Main 3201はMain CPU側の処理を時間軸に沿って表したもので、Sub 3202はSub CPU側の処理を時間軸に沿って表したものである。本シーケンス例では文字列“ACWOLIP"の印字を取り上げる。まず、Main側でフォントセットアップ 3203を行い、次に3204で先頭の文字‘A’を取り出す。現在Sub側では文字スケーリング処理中では無いので、Sub 側で文字‘A’のスケーリング3215を行う。文字のスケーリング処理とはフォントデータ中に含まれるアウトラインデータから指定された大きさの文字ビットマップを生成する処理をさす。Main側で次の文字‘C’を取り出し3205、文字‘C’のスケーリング3206を平行して行う。文字‘C’のスケーリングが終了したら、次の文字‘W’を取り出し3207、Sub側で文字‘W’のスケーリング3216を行う。Main側では引き続き、次の文字‘O’を取り出し、文字‘O’のスケーリング3209を行う。文字‘O’のスケーリング処理が終了したら、次の文字‘L’を取り出す3210が、このときSub側では文字‘W’のスケーリングが終了していないので、文字‘L’のスケーリング3211をMain側で行う。文字‘L’のスケーリングが終了したら、次の文字‘I’を取り出す3212。このときには、Sub側で文字‘W’のスケーリングが終了しているので、文字‘I’のスケーリング3217はSub側で行う。Main側では、次の文字‘P’を取り出し3213、スケーリングを行う3214。文字のスケーリング処理にかかる時間は文字によって異なる為、処理要求待ち時間がSub CPU側で発生してしまう。
【0017】
次に、図9を用いて、イメージ処理部とCMS処理部の並列処理シーケンスについて説明する。本シーケンス例はイメージデータを一定ライン数毎にバンドとして区切ってイメージ処理を行うものであり、Main側でのイメージ処理セットアップ3301から開始する。次に第1バンドのデータを読み出し伸張3303し、第1バンドデータのCMS処理3303を行い、ディスプレイリスト生成処理3304を続けて行う。ページ記述言語ではイメージデータは通常圧縮後にASCIIテキスト化されており、その伸張処理が必要となるが、非圧縮バイナリデータの場合は伸張処理は不要である。Main側で第1バンドのデータ読み出し伸張3303が終了した時点で、Sub側で第2バンドの処理を開始し、第2バンドのデータを読み出し伸張3308、第2バンドデータのCMS処理3309を行い、ディスプレイリスト生成処理3310を続けて行う。Main側では第1バンドの処理が終了した時点で、第3バンドの処理を開始し、第3バンドのデータを読み出し伸張3305、第3バンドデータのCMS処理3306を行い、ディスプレイリスト生成処理3307を続けて行う。イメージ処理の場合はバンド毎の処理時間はほぼ一定しており、Sub側で第2バンドの処理が終了すると同時に、Main側で第3バンドの読み出し伸張処理3304が終了する為、Sub側では直ぐに第4バンドの処理を行うことができる。イメージデータのバンド化では読み出しと伸張処理が終わらないと、イメージデータ中の次のバンドの先頭位置が確定しない為、順序を保つ必要がある。また、ディスプレイリストの生成に関しても順序を保つ必要があるので、Main-Sub間の同期制御が必要になる。しかしながら、バンド毎の処理時間はほぼ一定しているので、ほぼ隙間なく並列処理を行うことが可能である。
【0018】
このように二つのCPUを用いてRIP処理を行うことにより、一つのCPUの場合より処理時間が短縮されるが、単純に処理時間が1/2とはならない。本実施例では前記の二つのCPUによる並列RIP処理を行うことによりRIP速度は平均して1.5倍程度になる。上記は単一ページのRIP処理を複数のプロセッサを用いて並列に行う場合であり、複数のページのRIP処理を並列に行うことも可能である。単一ページ内の並列RIP処理に関しては、ページ内のオブジェクトの上下関係を考慮する必要があり、並列度を向上させることは難しいが、複数ページの場合はそういった制限が無い為、比較的容易に並列度を上げることが可能である。本実施例においては、図7のインタプリタ3001とレンダ3002を完全に並列に実行することが可能である。
【0019】
次に本実施例における並列RIP処理のスケジューリングに関して説明する。まず、図10のようにRIP時間予測されたページ記述データを例にして、並列処理シーケンス図11を用いて説明する。図10のページ記述データは10ページデータであり、そのRIP時間予測値は0.3〜2.3の間に分布している。RIP時間予測値は1CPUでぎりぎりエンジン速度に間に合うRIP時間を1と換算して、推定された値であり。値そのものは、ホスト側のプリンタドライバでページ内のオブジェクト種別とオブジェクト数を元に決定され、ページ記述データ中にコメントして記述される。その値の読み出しは、図2のJobManager1520にて行われる。図11では、Main 3501はMain CPU側の処理を時間軸に沿って表したもので、Sub 3502はSub CPU側の処理を時間軸に沿って表したものであり、Page1〜Page10の点線はエンジン速度に間に合わせて各ページのRIP処理を行う為の制限時間を表すものである。まず、1ページ目のRIP時間予測値は0.9である為、Main側単独でRIP処理を行うが、2ページ目以降で2CPUで並列RIP処理を行っても間に合わないページとして、4ページ目を取り出しSub側で先行してRIP処理を行う((4)-1)。2CPUで1ページの並列RIP処理を行った場合、1CPUの1.5倍程の性能が出るので、RIP時間予測値が1.5以上のページをエンジン速度に間に合わないページとして取り出している。次に2ページ目はRIP時間予測値が1.4である為、Main側とSub側で並列RIP処理を行い、出力する。4ページ目の先行RIP処理はまだ終了していないが、2ページ目は並列RIP処理を行う必要がある為、処理を中断する。次に、3ページ目はRIP時間予測値が0.8である為、Main側単独でRIP処理を行うが、4ページ目の先行RIP処理がまだ途中である為、続きのRIP処理を平行してSub側で行う((4)-2)。3ページ目を出力した時点で、4ページ目のRIPはまだ終了していないが、残りのRIP処理を1CPUで行うか、2CPUで行うか決定する為に、残RIP時間予測値を計算する。4ページ目のRIP時間予測値は2.3である為、2.3 - 1.0 - 1.0 = 0.3となり、残り0.3である為、4ページ目の残りのRIP処理はMain側単独で行う。このとき、5ページ目以降で2CPUで並列RIP処理を行っても間に合わないページとして、8ページ目を取り出し先行RIP処理を行う。次に、5ページ目のRIP時間予測値は0.5である為、Main側単独でRIP処理を行う。ここで、8ページ目の残RIP時間予測値は1.9 - 1 = 0.9となり、残り0.9となり7ページ目の出力後に残りのRIP処理を行っても、エンジン速度に間に合う出力が可能である為、これ以上の先行RIP処理は行わない。また、先行RIPした画像はメモリ上に確保される為、メモリ消費量を増やさない為に、9ページ目以降の先行RIP処理はこの時点では行わない。従って、5ページ目のRIP処理がMain側単独で行われるのみで、Sub側ではRIP処理は行われない。以後、同様に、6ページ目、7ページ目と2CPUでの並列RIP処理を行い、8ページ目の残りと9ページ目の先行RIPを並列で行い、9ページ目、10ページ目はMain側単独でRIP処理を行い、全ページ出力を行う。なお、本実施例でスケジューリングの拠り所とするのは、RIP時間の予測値である為、実際にRIPを行った場合には予測が外れることも有りえる。予測が外れた場合は、エンジン速度を維持した出力がその時点で不可能となり、該当ページ以降の出力が一定時間遅れる。
【0020】
次に本並列処理シーケンスを実行する為のフローチャートを図12を用いて説明する。なお、本フローチャートを実装したプログラムは図2のJob Manager 1520によって実行されるものである。まずS3601が開始して、S3602でRIP時間予測値の読込等の初期化処理を行い、S3603へ進む。S3603では、現在のページのRIP処理が1CPUで間に合うかどうか判定して、YesならS3604へ、NoならS3605へ進む。当該ページのRIP時間予測値が1.0を超える場合には、1CPUではRIP処理がエンジン速度に間に合わないと判定される。S3605では現在ページを2CPUで並列RIP処理を行い、S3608へ進み現在ページをエンジン出力する。S3604では先行RIPすべきページがあるかどうか調べ、YesであればS3607へ進み、NoであればS3606へすすむ。次ページ以降でRIP時間予測値が1.5を超える最初のページを先行RIPすべきページと判定する。既に先行RIPが以前ページ処理中に行われている場合は、当該先行RIPの残RIP時間予測値が1.0を超えている場合には、引き続き先行RIPすべきページと判断されるが、1.0を下回る場合は、先行RIPすべきページとは判定されない。また、既に先行RIP済みのページがあり、当該ページの出力が行われていない場合は、先行RIPすべきページは無いと判定される。S3606では現在ページをMain CPU単独でRIP処理を行い、S3608へ進み現在ページをエンジン出力する。S3607では現在ページをMain CPUで先行RIPすべきページをSub CPUで並列RIP処理を行い、S3608へ進み現在ページをエンジン出力する。S3608で現在ページをエンジン出力したら、S3609へ進み終了判定を行う。全ページ出力終了していれば、S3610へ進み終了し、残りのページがあればS3603へ戻り、残りのページの処理を行う。なお、本フローチャートに基づくプログラムは主にMain CPUで実行され、並列RIP処理のみがSub CPUを用いて行われる。
【0021】
なお、本発明は、プリンタを含む複数の機器(例えばホストコンピュータ、インタフェース機器、スキャナ、プリンタなど)から構成されるシステムに適用しても、プリンタ単体装置に適用してもよい。
【0022】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0023】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0024】
【図1】画像形成システムの全体構成を示す図。
【図2】画像形成装置のソフトウェアブロック図。
【図3】画像形成装置のコントローラユニット内構成を示す図。
【図4】画像形成装置の入出力デバイス外観図。
【図5】画像形成装置の操作部外観図。
【図6】画像形成装置の操作部の構成を説明するブロック図。
【図7】本発明の一実施形態のデータフロー概略図。
【図8】文字処理部における並列処理シーケンスについての説明図。
【図9】イメージ処理部とCMS処理部の並列処理シーケンスについての説明図。
【図10】RIP時間予測されたページ記述データの例。
【図11】並列処理シーケンス図。
【図12】並列処理シーケンスを実行する為のフローチャート。
【符号の説明】
【0025】
3001 インタプリタ
3002 レンダ
3003 画像処理プロセッサ
3004 言語処理部
3005 文字処理部
3006 グラフィックス処理部
3007 イメージ処理部
3008 CMSエンジン
3009 色判定部
3010 ディスプレイリストジェネレータ
3011 濃度・カラーバランス調整部
3012 出力ガンマ補正部
3013 ハーフトーニング部
3014 ページ記述データ
3015 ディスプレイリスト
3016 CMYKビットマップ
3017 オブジェクト属性マップ

【特許請求の範囲】
【請求項1】
ページ記述データを解釈して画像生成を行うRIP処理を複数のプロセッサを用いて並列に行う並列RIP手段と、各ページの処理時間予測値が含まれるページ記述データから各ページの処理時間予測値を抽出する抽出手段と、前記処理時間予測値を基にエンジン速度に間に合わせる為に必要な並列処理数を決定する並列度決定手段と、画像形成処理待ちのページの中から並列RIP手段によっても画像生成がエンジン速度に間に合わないページを検索する検索手段と、前記並列度決定手段に従い並列RIPを行いつつ未使用のプロセッサがある場合に前記検索手段により選んだページのRIP処理を同時に行うことを特徴とした画像形成装置。
【請求項2】
情報処理装置と画像形成装置が通信媒体を介して接続された画像形成システムにおいて、情報処理装置は各ページの画像形成時間予測を行う画像形成時間予測手段と、前記画像形成時間予測手段による予測値を含むページ記述データを生成するページ記述データ生成手段と、前記ページ記述データ生成手段により生成されたページ記述データを送信する送信手段とを有し、画像形成装置はページ記述データを受信する受信手段と、ページ記述データを解釈して画像生成を行うRIP処理を複数のプロセッサを用いて並列に行う並列RIP手段と、ページ記述データから各ページの処理時間予測値を抽出する抽出手段と、処理時間予測値を基にエンジン速度に間に合わせる為に必要な並列処理数を決定する並列度決定手段と、画像形成処理待ちのページの中から並列RIP手段によっても画像生成がエンジン速度に間に合わないページを検索する検索手段と、前記並列度決定手段に従い並列RIPを行いつつ未使用のプロセッサがある場合に前記検索手段により選んだページのRIP処理を同時に行うことを特徴とする。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2006−155308(P2006−155308A)
【公開日】平成18年6月15日(2006.6.15)
【国際特許分類】
【出願番号】特願2004−346096(P2004−346096)
【出願日】平成16年11月30日(2004.11.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】