以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
(第1実施形態)
本発明を適用した制御装置について説明する。本実施形態においては、制御装置としてインクジェット方式のプリンタを例示している。また、本実施形態では、制御装置として印刷機能のみを有したものを示すが、これに限らず、原稿上の画像を読取る読取装置をさらに備えて複写機として機能するものや他の機能を加えた複合装置としても良い。また、印刷処理を行うための記録媒体(被記録媒体又は記録シート)は、印刷処理可能なものであれば種々のものを用いることができる。例えば、白色の普通紙や写真用紙、白以外の色紙、フィルム、アルミを貼り合わせたメタリック色の特殊紙や、OHPシートなどを用いることができる。また、制御装置は、所定のサイズに予めカットされたカットシートへの印刷のみではなく、連続シートへの印刷をも可能な装置としても良い。また、制御装置が利用する印刷方式は、後述する画像印刷用液体インクを用いたインクジェット方式には限らない。例えば、制御装置は、記録剤として固形インクを用いても良い。また、例えば、制御装置は、トナーを用いた電子写真方式や昇華方式など種々の方式を用いても良い。また、制御装置は、複数色の記録剤を用いたカラー記録を行うものには限らず、黒色(グレーを含む)のみによるモノクロ記録を行うものとしても良い。また、制御装置が制御する印刷は、可視画像の印刷には限らず、不可視もしくは視認が困難な画像の印刷であっても良いし、配線パターン、部品の製造における物理的パターン、DNAの塩基配列等の種々のものの印刷であっても良い。つまり、制御装置として、記録剤を記録媒体に付与可能なものであれば種々のタイプの装置を利用することができる。なお、制御装置は、記録剤を記録媒体に付与する機能を有する装置(プリンタ)に限定されず、後述の印刷データ及び画像処理済みデータを扱うことができる装置であれば良い。そのため、制御装置は、例えば、プリンタを外部から制御するパーソナルコンピュータ(PC)等の装置や、プリンタ内部の構成要素(制御部等)であっても良い。
図1は、本実施形態の制御装置であるプリンタ100の概略構成を示す図である。プリンタ100は、記録媒体としてカットシート(A3、A4などの所定の大きさに切り揃えられた用紙)を用いた印刷を行う。また、プリンタ100は、以下の構成要素101〜115を備える。なお、各構成要素は、1つの筐体内に配置されるが、この形態に限定されず、各構成要素が複数の筐体に分かれて構成されても良い。以下、各構成要素の詳細を説明する。
プリンタ100は、コントローラ(CPU又はMPUを含む)やユーザインターフェース情報の出力器(表示情報や音響情報などの発生器)、各種I/Oインターフェースを備えた制御部を内蔵し、プリンタ100全体の各種制御を司る。
給紙カセットユニット101は、上段シートカセット101aと下段シートカセット101bを備える。給紙カセットユニット101に印刷データに対応したシートをセットしておくことで、プリンタ100は、印刷毎にシートの供給を受けることなく印刷を開始することができる。上段シートカセット101aから引き出されたシートは図中a方向に、下段シートカセット101bから引き出されたシートは図中b方向に搬送される。その後、いずれのカセットから引き出されたシートも図中c方向に進行して搬送ユニット102に到達する。搬送ユニット102は、複数の回転ローラ104を通して印刷処理中にシートを図中d方向(略水平方向)に搬送する。なお、給紙カセットユニット101が備えるシートカセットは2基に限定するものではなく、1基であっても良いし、3基以上であっても良い。
搬送ユニット102の上方には、ヘッドユニット105が搬送ユニット102と対向して配置される。ヘッドユニット105では複数色(実施例では7色)分の独立した印刷ヘッド106がシートの搬送方向に沿って保持されている。本実施形態では、プリンタ100は、C(シアン)、M(マゼンタ)、Y(イエロー)、LM(ライトマゼンタ)、G(グレー)、K(ブラック)、白(ホワイト)の7色のインクに対応した7つの印刷ヘッドを有す。もちろん、プリンタ100は、透明(クリア)、LC(ライトシアン)等の上記の7色以外の色のインクや、金や銀などメタリック系の特殊インクに対応した印刷ヘッドを有していても良いし、これらのインク全てを用いる必要もない。
プリンタ100は、搬送ユニット102によるシートの搬送に同期させて、印刷ヘッド106からインクを吐出し、シート上に印刷データやRIP済みデータに基づいた画像を形成する画像形成処理を実行する。なお、印刷ヘッド106はインクの吐出先が回転ローラ104と重ならないように配置される。なお、プリンタ100は、インクをシートに直接吐出させることによって画像を形成させても良いし、中間転写体にインクを付与した後、そのインクをシートに付与することによって画像を形成させても良い。これら搬送ユニット102、ヘッドユニット105、印刷ヘッド106を含んで印刷ユニットが構成されている。インクタンク109は各色のインクを独立して貯蔵する。インクタンク109に貯蔵されたインクは、インクタンク109に接続するチューブを介して各色に対応して設けられたサブタンクに供給され、その後サブタンクからチューブを介して各印刷ヘッド106に供給される。印刷ヘッド106における各色のラインヘッドは、印刷時のシート搬送方向であるd方向に沿って並んでいる。各色のラインヘッドは、継ぎ目無く単一のノズルチップで形成されたものであっても良いし、分割されたノズルチップが一列又は千鳥配列のように規則的に並べられたものであっても良い。本実施形態におけるプリンタ100は、プリンタ100が使用可能な最大サイズのシートの印刷領域の幅分をカバーする範囲にノズルが並んでいるフルマルチヘッドとする。また、プリンタ100がノズルからインクを吐出する方式は、発熱素子を用いた方式、ピエゾ素子を用いた方式、静電素子を用いた方式、MEMS素子を用いた方式等、種々の方式であって良い。なお、印刷処理におけるインクの吐出のタイミングは、搬送用エンコーダ103の出力信号によって特定される。
シート上に画像が形成された後、当該シートは搬送ユニット102から、スキャナユニット107まで搬送される。スキャナユニット107は、搬送されたシート上の画像や特殊パターンを光学的に読取って、印刷の成否を確認したり、インクの吐出状態等のプリンタ100の状態を確認したりする。なお、スキャナユニット107は、インクの吐出状態を、所定のパターンを読み込むことによって確認しても良いし、印刷データに基づいた画像が正確に印刷されているかによって確認しても良い。このように、スキャナユニット107が行う確認は、種々の方法に基づいて行われて良い。
スキャナユニット107に搬送されたシートは、続いて乾燥ユニット112に搬送される。乾燥ユニット112は、シート上に付与されたインクを短時間で乾燥させるために、ユニット内を通過するシートを温風(加温された気体(空気))で加熱するユニットである。なお、乾燥の方法は温風を用いる方法に代え、冷風を用いる方法、ヒーターによる加温を行う方法、シートを待機させて自然乾燥させる方法、紫外光等の電磁波を用いる方法等、種々の方法を採用可能である。シートは1枚ずつ乾燥ユニット112内を通過して、図中e方向に搬送されて反転ユニット113に搬送されるか、もしくは、図中k方向に搬送されて仕分けユニット114に搬送される。なお、シートが反転ユニット113に搬送されるか仕分けユニット114に搬送されるかは、搬送されるシート上へ連続して画像形成するか否かによって決められる。
反転ユニット113では、通過するシートの表裏が反転するようにシートを搬送する。なお、このとき、搬送されるシートが、画像が形成された面と同様の面にさらに画像が形成されるシートである場合は、反転ユニット113は、当該シートを表裏反転せずに搬送する。シートを反転する方式は、簡易な構造でシートを反転させることができる「スイッチバック方式」や、シートの搬送速度を一定に保つことができる「搬送経路を緩やかにひねる方式」などがある。本実施形態においては、プリンタ100は、シートを反転させる場合は反転ユニット113に搬送されたシートがユニット内を図中f方向に進行し、fと反対方向の図中g方向に搬送することで進行方向を転換するスイッチバック方式を採用している。シートが反転される場合は、搬送されるシートは、反転ユニット113を通過し図中h方向に搬送された時点で表と裏が反転された状態となっている。
反転ユニット113から搬送されたシートは、ユニット内を図中h、i、j方向に搬送され、再度搬送ユニット102に戻され、再度シート上に画像形成が行われる。なお、仕分けユニット114への排出順番の制御等の理由で、シートが再度搬送ユニット102に戻された場合は、シート上に画像形成が行われなくても良い。
仕分けユニット114は、複数のトレー(トレー114a〜c)を保持しており、各トレーにはトレー番号が割り当てられている。仕分けユニット114は、ユニット内を図中l方向に通過するシートをトレーに排出していく。シートの排出先となるトレーは、印刷データに含まれる設定情報に応じて特定される。なお、この形態に限らず、シートの排出先となるトレーは、例えば、印刷データの発行元(ホスト装置)でのユーザの操作に応じて特定されても良いし、トレーが空いているか否かに応じてプリンタ100によって特定されても良い。なお、仕分けユニット114は、1つのトレーには予め決められた枚数まで排出可能である。1つの印刷データによって印刷されたシートの数が、この予め決められた枚数を超える場合、それらのシートは、複数のトレーに跨って排出される。また、トレーに対して排出可能なシートの枚数やサイズ、種類等は、そのトレーの大きさ(タイプ)等によって異なっていても良い。また、仕分けユニット114は、例えば、シートを排出中であることやシートの排出が完了したこと、トレーに空きがなくなったこと等の各トレーの状況を、表示器を用いてユーザが識別可能に通知する。このとき、仕分けユニット114は、例えば、各トレーに供えられた互いに異なる色で発光する複数のLED色や点灯状態か点滅状態かなどによって、各トレーの種々の状況をユーザに通知する。
操作ユニット115は、ユーザが種々の操作を行ったり、ユーザに種々の情報を通知したりするためのユニットである。操作ユニット115は、例えば、ユーザに指定された画像が印刷されたシートはどこのトレーに積載されているかや、当該画像の印刷処理を実行中か印刷処理が終了したか等、印刷データ毎の印刷処理状況をユーザに通知する。また、操作ユニット115は、例えば、インク残量やシートの残量の状態、エラー状態等のプリンタ100の各種状態をユーザに通知する。また、ユーザは、操作ユニット115を介して、ヘッドクリーニング等の装置メンテナンスの実施の指示を行ったり、印刷処理の指示を行ったりすることができる。
制御ユニット108は、印刷データ、RIP処理データ等の送受信や画像処理等、印刷に係わる制御を担う。
クラウド116は、ネットワーク、サーバ、ストレージ等で構成されるネットワーク環境を指し、クラウド116上にはRIPサーバ117が存在する。
RIPサーバ117は、クラウドサービスにて提供されるRIP(Raster Image Processing)処理用の画像処理部であり、本実施形態における外部処理部に相当する。RIP処理とは、本実施形態における画像処理に相当し、印刷データに含まれる画像データや印刷設定情報、描画命令等を解析して、印刷データに対してラスタライズ等の処理を施し、RIP済みデータ(ラスタデータ)を生成する処理である。なお、RIP処理には、有効な(プリンタ100が印刷処理可能な)画素数への解像度変換、画像解析、画像補正等の処理が含まれても良い。なお、RIP済みデータは、RIP済みデータ保存領域に保存可能なデータ量が、当該RIP済みデータを保存するために要するデータ量以上である場合に、RIPサーバ117からプリンタ100に返却され、RIP済みデータ保存領域に保存される。なお、RIPサーバ117は、RIP処理以外の画像処理を実行しても良い。なお、本発明において画像処理とは、RIP処理、RGBデータからCMYKデータへの変換する色変換処理、多値データを2値データに変換する量子化処理等を含む。
なお、本実施形態において、RIPサーバ117は、従量課金制のサーバであり、RIPサーバ117が利用される時間に応じてRIPサーバ117を利用するユーザに対して課金が発生するものとする。
プリンタ100は、RIPサーバ117にRIP処理を行わせる場合は、まずプリンタ100からRIPサーバ117に対して起動指示を出す。その後プリンタ100は、RIPサーバ117に印刷データを送信する。なお、本実施形態において印刷データとは、プリンタ100に印刷を実行させるためのPDLデータであり、画像データや印刷設定情報等を含むものとする。印刷データを受信したRIPサーバ117は、当該印刷データに対してRIP処理を行ってRIP済みデータを作成し、その後、当該RIP済みデータをプリンタ100へ返却する。なお、本実施形態においてRIP済みデータとは、印刷データがRIP処理された後のデータを指し、1ページ分の印刷を行うためのラスタデータであるものとする。そのため、印刷データが複数のページの印刷を実行するためのものである場合、RIP処理によって複数のRIP済みデータが生成されるものとする。RIP済みデータを受け取ったプリンタ100は、プリンタ100からRIPサーバ117に対して停止指示を出す。なお、以上に示したプリンタ100による起動指示から停止指示までの時間がRIPサーバ117を利用するためのクラウドサービスの課金対象時間となる。
ホスト装置118は、プリンタ100に接続されており、印刷データの供給源となる装置である。本実施形態において、ホスト装置118は、プリンタ100に印刷を行わせる場合は、印刷する画像の選択や印刷サイズ、レイアウト等の設定や、画像データの印刷データへの変換等を行った後、印刷データをプリンタ100に送信する。また、ホスト装置118は、送信した印刷データの処理の進捗状態を、プリンタ100から取得し、管理を行う。なお、ホスト装置118は、印刷データの供給源となる装置であれば良く、例えば、携帯端末、パーソナルコンピュータ(PC)、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ、可搬性メモリ等でも良い。また、ホスト装置118は、原稿上の画像を読取って画像データを生成するリーダ(スキャナ)や、ネガフィルムやポジフィルムを読取って画像データを生成するフィルムスキャナ等、画像をキャプチャーして画像データを生成する装置であっても良い。また、ホスト装置118は、ネットワーク上にフォトストレージを設置したり、着脱可能な可搬性メモリを挿入するソケットを設けることで、フォトストレージや可搬性メモリに格納された画像ファイルを読み出して印刷データを生成する装置であっても良い。また、ホスト装置118は、プリンタ100の構成要素としても良い。また、ホスト装置118をPCとした場合、ホスト装置118が備える記憶装置に、OS、印刷データを生成するアプリケーションソフトウェア、プリンタ100用のプリンタドライバがインストールされる。ここで、プリンタドライバは、プリンタ100を制御したり、アプリケーションソフトウェア等から供給された画像データをプリンタ100が扱える形式に変換して印刷データを生成したりするプログラムである。また、ホスト装置118は、画像データから印刷データへの変換を行わずに、プリンタ100に画像データを送信しても良い。その場合、例えば、プリンタ100やクラウド116上のサーバ等で画像データから印刷データへの変換が行われる。
なお、以上の処理の全てをソフトウェアで実現する必要はなく、一部又は全部をハードウェアによって実現するようにしても良い。なお、ホスト装置118は、プリンタ100に直接接続されているものとしたが、例えば、プリンタ100が接続しているネットワーク上に存在するものとしても良い。
図2は制御ユニット108の概略構成を示すブロック図である。制御ユニット108は、CPU202、ROM203、RAM204、HDD205、外部I/F206、画像処理部207、エンジン制御部208、読取制御部209を備える。これらの各構成は、システムバス210を介して接続されている。
CPU202は、マイクロプロセッサ(マイクロコンピュータ)形態の中央演算処理部であり、各種プログラムの実行やハードウェアの起動により制御ユニット108全体の動作を制御する。
ROM203は、CPU202が実行する制御プログラムや組込オペレーティングシステム(以下、OS)プログラム等の各種プログラムを格納する。本実施形態では、ROM203に格納されている制御プログラムは、ROM203に格納されている組込OSの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。
RAM204は、SRAM(static RAM)等のメモリで構成され、プログラム制御変数、ユーザが登録した設定値、プリンタ100の管理データ等の設定情報等を格納する。なお、これらのデータは、RAM204でなく、ROM203やHDD205等の他の記憶領域に保存されても良い。また、RAM204は、CPU202がワークエリアとして用いられたり、種々の受信データの一時格納領域として用いられたりする。
HDD205は、CPU202が実行する制御プログラムやRIP済みデータ、印刷データ、制御ユニット108の各種動作に必要な設定情報等を記憶する。なお、CPU202は、ホスト装置118から印刷データを受け付けると、HDD205内の印刷データキューにそれを格納する。そして、CPU202は、受け付けた印刷データに、当該印刷データを特定可能なIDをセットし、印刷順序の管理を行う。なお、HDD205内に記憶される情報は、ROM203やRAM204等の他の記憶領域に記憶されても良い。また、制御ユニット108は、HDDでない他の大容量記憶装置を有していても良い。
外部I/F206は、ホスト装置118から印刷データやコマンド、ステータス信号等を受け付けたり、ホスト装置118に印刷データの処理ステータスやプリンタ100のステータスを通知するためのインターフェースである。外部I/F206はローカルI/FであってもネットワークI/Fであっても良い。また、外部I/F206におけるホスト装置118との通信は、無線通信でダイレクトに通信しても良いし、有線ネットワーク上に設置した装置外部のアクセスポイントを介して通信しても良い。通信方式としては、例えば、Wi−Fi(WirelessFidelity)(登録商標)や、NFC(Near Field Communication;ISO/IEC IS 18092)等が挙げられる。
画像処理部207は、RIPサーバ117と同様にして、印刷データに対しRIP処理を施して、RIP済みデータを生成する画像処理部であり、本実施形態における内部処理部に相当する。RIP処理によって生成されたRIP済みデータは、RIP済みデータ保存領域に十分な空き容量がある場合に、RIP済みデータ保存領域に保存される。なお、画像処理部207は、RIP処理以外の画像処理(例えば、RGB変換等)を実行しても良い。
エンジン制御部208は、CPU202等から受信した制御コマンドに応じて、RIP済みデータに基づく画像を記録媒体上に印刷する処理(印刷処理)の制御を行う。例えば、エンジン制御部208は、各色の印刷ヘッド106へのインク吐出指示や、シート上でのドット位置(インクの着弾位置)を調整するための吐出タイミング設定、ヘッド駆動状態取得に基づく調整等を行う。また、エンジン制御部208は、RIP済みデータに基づいて印刷ヘッドの駆動制御を行い、印刷ヘッドからインクを吐出させシート上に画像を形成させる。また、エンジン制御部208は、給紙ローラの駆動指示、搬送ローラの駆動指示、搬送ローラの回転状況取得等、搬送ローラの制御を行い、シートを適切な速度及び経路で搬送および停止させる。また、この際エンジン制御部208は、後述する印刷順リストに基づいて、印刷するシートの順番を制御する。
読取制御部209は、シート上の画像が正しく印刷されたか否かの判定を行う。まず、読取制御部209は、CPU202等から受信した制御コマンドに応じて、イメージセンサ(CCDイメージセンサやCMOSイメージセンサ)の駆動指示を行う。駆動指示を受けたイメージセンサは、シート上の画像の赤(R)、緑(G)および青(B)色のアナログ輝度データを読み取り、読取制御部209に送信する。なお、イメージセンサはリニアイメージセンサであってもエリアイメージセンサであっても良い。読取制御部209は、イメージセンサから取得したアナログ輝度データをデジタルデータに変換する。その後、読取制御部209は、変換した輝度データの解析を行い、印刷ヘッド106におけるインクの不吐状態やシートの切断位置の検出等を行うことで、シート上の画像が正しく印刷されたか否かの判定を行う。なお、読取制御部209によって画像が正しく印刷されていると判定されたシートは、シート上の記録剤の乾燥処理が施された後に、指定された仕分けユニットのトレーに排出される。
なお、以上の例では、1つのCPU202が図2に示した制御ユニット108内の全ての構成要素を制御するものとしたが、この構成以外としても良い。即ち、各機能ブロックのいくつかが別途CPUを備え、それぞれのCPUによって個別に制御するものとしても良い。また、メモリからのデータの読み出しにはDMAC(Direct Memory Access Controller)も用いることもできる。
上述のような画像処理システムにおいて、例えば、RIPサーバ117が従量課金制で利用される場合、RIP処理にかかる時間だけでなく、RIP済みデータがRIPサーバ117に残留している時間に対しても課金が発生することがある。そのため、RIPサーバ117にてRIP処理が完了したデータは、できるだけ迅速にRIPサーバ117からプリンタ100に回収(受信)されることが望ましい。また、セキュリティの観点からも、データがプリンタ100の外部(ここではRIPサーバ117)に留まる時間はできるだけ短いことが望ましい。しかしながら、プリンタ100は、RIPサーバ117からRIP済みデータを受信しようとした際に、RIP済みデータ保存領域に十分な空き容量がない場合には、当該RIP済みデータを受信することができない。
そこで、本実施形態においては、RIPサーバ117によって印刷データのRIP処理を行う場合、RIP済みデータを保存するための領域を予め確保することで、RIP済みデータを迅速に受信する形態について説明する。
図3は、本実施形態においてプリンタ100が実行する、印刷データの処理を示すフローチャートである。なお、このフローチャートが示す処理は、CPU202が、ROM203やHDD205等に記憶されている制御プログラムをRAM204にロードし、その制御プログラムを実行することで実現される。
S301では、CPU202は、ホスト装置118等から印刷データを受信する。
S302では、CPU202は、受信した印刷データのRIP処理を、画像処理部207と、RIPサーバ117のうちのどちらのRIP処理部に実行させるかを特定する。詳細は図4を用いて説明する。
S303では、CPU202は、S302の処理の結果に基づき、RIPサーバ117にRIP処理を行わせるか否かを判定する。CPU202は、判定がYesの場合はS304の処理を実行し、判定がNoの場合はS313の処理を実行する。
S304では、CPU202は、S301にて受信された印刷データにRIP処理が施されることにより生成されるRIP済みデータのデータ量を取得する。RIP済みデータのデータ量は、例えば、受信された印刷データによって印刷される画像の大きさ、解像度、1ピクセルあたりのRGBデータ量から算出されることで取得される。例えば、画像の大きさがA3(11.69インチ×16.54インチ)、解像度が1200dpi、RGBデータ量が3バイトである場合は、RIP済みデータのデータ量は、11.69×1200×16.54×1200×3≒797MByteとなる。なお、RIP済みデータのデータ量は、印刷データに含まれる印刷設定情報から算出されても良いし、プリンタ100が保持しているテーブルから取得されても良い。また、CPU202は、RIP済みデータに付随する設定値情報などがある場合は、その情報の分のデータ量も考慮してデータ量を取得する。
S305では、CPU202は、RIP済みデータ保存領域の空き容量の情報を取得する。RIP済みデータ保存領域は、例えばHDD205内の領域であり、CPU202は、空き容量の情報をHDD205から取得する。なお、RIP済みデータ保存領域はHDD205内の領域に限定されず、例えばROM203等、他の記憶媒体における領域でも良い。
S306では、CPU202は、RIP済みデータ保存領域の空き容量が受信された印刷データにRIP処理が施されることで生成されるRIP済みデータのデータ量以上か否かを判定する。具体的には、CPU202は、S304で取得したデータ量と、S305で取得した保存領域の空き容量の情報とを比較することで判定を行う。CPU202は、判定がYesの場合は、S307の処理を実行し、判定がNoの場合は、S308の処理を実行する。
S307では、CPU202は、RIP済みデータ保存領域において、S304で取得したデータ量分の領域を確保する。具体的には、CPU202は、RIP済みデータ保存領域内の、S304で取得したデータ量分の所定のアドレスに、S301で受信したデータがRIP処理されることにより生成されるRIP済みデータ以外のデータが保存されないように制御する。なお、領域の確保の方法は、RIP済みデータ保存領域内の所定のアドレスへの他のデータの保存を禁止する方法に限定されない。例えば、CPU202は、S301で受信したデータを保存するまで、RIP済みデータ保存領域内にS304で取得したデータ量分の空き容量が確保されるように、他のデータを保存するか否かを調整することで、領域を確保しても良い。なお、RIPサーバ117から受信するRIP済みデータは、圧縮等の処理が施されている場合がある。このような場合は、圧縮後のデータ量分の領域を確保しても良いし、圧縮されたデータの解凍をRIP済みデータ保存領域で行う場合は、解凍後のデータ量分の領域を確保しても良い。このようにすることで、RIPサーバ117によってRIP処理が施されたRIP済みデータを、RIPサーバ117に残留させることなく、RIP済みデータ保存領域に保存することができる。
S308では、CPU202は、S304で取得したRIP済みデータのデータ量分の領域を、RIP済みデータ保存領域において仮確保する。本実施形態において、所定の領域が仮確保されると、RIP済みデータ保存領域において仮確保された領域分の容量が空いた場合、当該領域が、S304で取得したRIP済みデータの保存のために確保される。S308の処理は、図6を用いて後述する。
S309では、CPU202は、RIPサーバ117に印刷データを送信する。このとき、CPU202は、RIPサーバ117の状態が「未起動」の場合は、RIPサーバ117が起動して稼働状態になった後に印刷データを送信する。
S310では、CPU202は、RIPサーバ117からRIP済みデータを受信し、S307にて確保した領域又はS308にて仮確保した領域に保存する。
S311では、CPU202は、RIP済みデータ保存領域に保存されたRIP済みデータに基づいた印刷を実行し、その後、本フローチャートの処理を終了する。
S312〜S316は、S303にて、CPU202がRIPサーバ117にRIP処理を行わせないと判定した場合の処理である。
S312では、CPU202は、画像処理部207に印刷データを送信する。このとき、CPU202は、S307の処理のような、事前にRIP済みデータ保存領域を確保する処理は行わない。これは、本実施形態においては、RIPサーバ117から受信するRIP済みデータを優先的にRIP済みデータ保存領域に保存するためである。
S313では、CPU202は、送信した印刷データを、画像処理部207にRIP処理させる。
S314では、CPU202は、RIP済みデータ保存領域の空き容量の情報を取得する。
S315では、CPU202は、RIP済みデータ保存領域の空き容量が受信された印刷データにRIP処理が施されることで生成されるRIP済みデータのデータ量以上か否かを判定する。具体的には、CPU202は、S313で生成されたRIP済みデータのデータ量と、S314で取得した保存領域の空き容量とを比較することで判定を行う。CPU202は、判定がYesの場合は、S316の処理を実行し、判定がNoの場合は、RIP済みデータを削除した後、S302の処理を実行して、再度RIP済みデータを生成する。なお、本実施形態のようにS302でサポート仕様に基づき、利用するRIP処理部を特定する場合は、S302の判定を繰り返す必要はないため、CPU202は、判定がNoの場合は、S312の処理を実行しても良い。なお、本実施形態は、RIP済みデータの生成を再度行う形態に限定されない。例えば、CPU202は、判定がNoの場合は、RIP済みデータ保存領域にRIP済みデータ分の空き容量が生じるまで、画像処理部207やRIP済みデータ保存領域以外の領域にて、RIP済みデータを保存しても良い。
S316では、CPU202は、画像処理部207にて生成されたRIP済みデータを、RIP済みデータ保存領域に保存し、その後S311の処理を行う。
なお、CPU202は、S310とS311又はS316とS311の処理の間に、RIP済みデータに対してRIP処理以外の画像処理を施す処理を行っても良い。その場合、S311では、当該画像処理が施された後のデータに基づいた印刷が行われる。
ここで、図4を用いてS302の処理を詳しく説明する。図4は、本実施形態における、利用するRIP処理部を特定する処理を示すフローチャートである。なお、本フローチャートが示す処理は、CPU202が、ROM203やHDD205等に記憶されている制御プログラムをRAM204にロードし、その制御プログラムを実行することで実現される。また、本フローチャートが示す処理は、S301にて印刷データが受信された場合に開始される。
S401では、CPU202は、S301で受信された印刷データを解析する。具体的には、このとき、CPU202は、印刷データを解析することで、ファイルサイズ、フォーマット、フォントの情報等、S402における判定に利用する情報を取得する。
S402では、CPU202は、S301で受信された印刷データが、画像処理部207によってRIP処理可能か否か判定する。具体的には、CPU202は、S401で解析した情報と図5に示すテーブルとを比較することで、S301で受信された印刷データが、画像処理部207によってRIP処理可能かどうか判定する。
ここで、図5は画像処理部207およびRIPサーバ117のサポート仕様と状態を示すテーブルの一例である。このテーブルは、ROM203やHDD205等に記憶されている。なお、このテーブルに格納される情報は、予め設定されていても良いし、画像処理部207やRIPサーバ117にポーリングが行われることで適宜取得・更新が行われても良い。本実施形態では、画像処理部207およびRIPサーバ117のサポート仕様の項目として、ファイルサイズ、フォーマット、フォントがある。なお、サポート仕様の項目は、上述の項目に限定されず、例えば、ページサイズ、1ページに含まれる最大画像数等、その他の項目であっても良い。また、画像処理部207およびRIPサーバ117の状態の項目として、稼働状態と、RIPサーバ117を利用できる時間の残量(以下、残り時間という。)がある。残り時間とは、所定の課金額によってRIPサーバ117を利用できる時間の残りである。例えば、RIPサーバ117を利用するためには1時間単位の課金が必要であり、RIPサーバCが55分間利用された場合は、RIPサーバCの残り時間は5分となる。なお、本実施形態では、テーブルで管理されているRIPサーバ117としてIRPサーバA〜Dの4つを挙げているが、これに限定されず、いずれの数のRIPサーバ117の情報が管理されていても良い。また、CPU202が、テーブルが参照される都度、その時に使用可能なRIPサーバ117の情報をクラウド116から取得する形態とし、テーブルではその情報が管理される形態としても良い。また、上述では、サーバの利用には一時間単位の課金が必要となるような形態としたが、課金形態はこれに限定されない。例えば、ユーザが事前に課金した分の時間、サーバの利用が可能となるような形態であっても良い。その場合、残り時間は、事前に課金した分の時間からサーバを利用した時間を引いた時間となる。また、例えば、サーバが利用された時間がカウントされており、利用が終了してから、カウントされた時間に応じた金額の課金が要求されるような形態としても良い。その場合、例えば、テーブルには、各RIPサーバが利用されている時間等の情報が格納されても良い。
S402の判定において、CPU202は、印刷データに、画像処理部207のサポート仕様の項目のいずれか1つでもサポート外のものが含まれる場合は、画像処理部207によってRIP処理不可能と判定する。例えば、印刷データのデータ量が「800MB」、フォーマットが「PDF」、フォントが「埋め込み」である場合は、CPU202は、画像処理部207によってRIP処理可能と判定する。また、印刷データのデータ量が「800MB」、フォーマットが「XPS」、フォントが「埋め込み」である場合は、CPU202は、画像処理部207によってRIP処理不可能と判定する。これは、画像処理部207はXPSのフォーマットに対応していないためである。なお、前述した通り、判定に用いられる項目はこれに限定されず、ページサイズ、1ページに含まれる最大画像数等、その他の項目が用いられても良い。
CPU202は、S402における判定がYesの場合はS403の処理を実行し、判定がNoの場合はS404の処理を実行する。
S403では、CPU202は、画像処理部207でRIP処理することを特定する。
S404〜S406では、CPU202は、RIPサーバ117の中から、受信された印刷データのRIP処理に適したサーバを特定する。
S404では、CPU202は、稼働状態が「稼働中」のサーバの中から、受信された印刷データのRIP処理に適したサーバを特定する。これは、本実施形態のように、RIPサーバ117の利用に所定の時間単位での課金が必要な場合、稼働中のサーバがあればそれを利用した方が、RIPサーバ117を利用するためのコストの増加を抑制できるためである。このとき、CPU202は、具体的には、S401で解析された情報と図5に示すテーブルとを比較することで、受信された印刷データのRIP処理に適したサーバを特定する。例えば、CPU202は、印刷データに含まれる印刷データのファイルサイズが「800MB」、フォーマットが「XPS」、フォントが「埋め込み」の場合は、RIPサーバCとRIPサーバDを特定する。CPU202は、複数のサーバを特定した場合は、例えば、処理対象の印刷データのRIP処理時間と、サーバの残り時間とに基づき特定するサーバを絞り込む。ここで、それぞれのサーバの残り時間は、RIPサーバCは5分、RIPサーバDは30分である。例えば、CPU202は、RIP処理時間を推定して、RIP処理時間が5分以内であると判定した場合はRIPサーバCを、RIP処理時間が5分を超えると判定した場合はRIPサーバDを特定する。なお、このとき、CPU202は、RIP処理時間とサーバの残り時間でなく、他の要素に基づいてサーバを特定しても良い。例えば、後述のS406での処理のように、CPU202は、サーバの単位時間当たりの課金額や、サーバのサポート仕様に基づいてサーバを特定しても良い。また、CPU202は、「稼働中」のサーバがない場合や、「稼働中」のサーバの中に受信した印刷データのRIP処理に適したサーバがない場合は、サーバを特定しない。
S405では、CPU202は、S404でサーバを特定したか否かを判定する。CPU202は、判定がYesの場合は、本フローチャートの処理を終了してS303の処理を実行し、判定がNoの場合は、S406の処理を実行する。
S406では、CPU202は、稼働状態が「未起動」のサーバの中から、受信された印刷データのRIP処理に適したサーバを特定する。このとき、CPU202は、具体的には、S401で解析された情報と図5に示すテーブルとを比較することで、受信された印刷データのRIP処理に適したサーバを特定する。例えば、CPU202は、印刷データに含まれる印刷データのファイルサイズが「800MB」、フォーマットが「XPS」、フォントが「埋め込み」である場合は、RIPサーバAとRIPサーバBを特定する。CPU202は、複数のサーバを特定した場合は、例えば、サーバの単位時間当たりの課金額や、サーバのスペックに基づいて特定するサーバを絞り込む。ここでは、CPU202は、サーバAを特定する。これは、RIPサーバBも受信された印刷データのRIP処理は可能だが、受信された印刷データのRIP処理に必要のないサポート仕様を有しているためである。一般に、RIPサーバ117を利用するための課金額は、多くのサポート仕様を有しているほど高額になる。そのため、CPU202は、受信された印刷データのRIP処理に必要な最低限のサポート仕様をもったサーバを特定することで、RIPサーバ117するためのコストを削減することができる。このとき、CPU202は、単位時間あたり課金額を直接認識可能な場合は、サポート仕様を参照することなく、単位時間あたり課金額の低いサーバを特定しても良い。なお、CPU202は、「未起動」のサーバの中に受信した印刷データのRIP処理に適したサーバがない場合は、サーバを特定しない。その後、CPU202は、本フローチャートの処理を終了してS303の処理を実行する。
ここで、図6を用いてS308の処理を詳しく説明する。図6は、RIP済みデータ保存領域において、RIP済みデータを保存するための領域を仮確保するための処理を示すフローチャートである。なお、このフローチャートが示す処理は、CPU202が、ROM203やHDD205等に記憶されている制御プログラムをRAM204にロードし、その制御プログラムを実行することで実現される。また、このフローチャートが示す処理は、S304で取得されたRIP済みデータのデータ量分の領域が、RIP済みデータ保存領域において確保されなかった場合(S306の判定においてNoと判定された場合)に実行される。
まず、S601では、CPU202は、RIP済みデータ保存領域に保存されているRIP済みデータの処理順を表す変数である変数Nの値を初期化する。なお、変数Nの値は、ROM203やHDD205等に記憶されている。具体的にはこのとき、CPU202は、初期値を表す数字(ここでは1)を変数Nに代入する。ここで、RIP済みデータの処理順とは、RIP済みデータに基づいて印刷が実行される順番である。なお、RIP済みデータは、処理が完了するとRIP済みデータ保存領域から削除される。本実施形態において、RIP済みデータ保存領域からRIP済みデータが消去されるタイミングは、当該RIP済みデータに基づいて1ページの印刷が完了し、仕分けユニット114に排出される毎とするが、これに限定されない。例えば、1つの印刷データがRIP処理されて生成されたRIP済みデータ全ての処理が完了したタイミングあっても良い。
S602では、CPU202は、RIP済みデータ保存領域に保存されており、且つN番目に処理されるRIP済みデータのデータ量を取得する。
S603では、CPU202は、S301にて受信された印刷データにRIP処理が施されることにより生成されるRIP済みデータのデータ量が、N番目までに処理されるRIP済みデータのデータ量以下か否かを判定する。具体的には、このとき、CPU202は、S602にてそれぞれ取得したデータ量を累積して、N番目までに処理されるRIP済みデータのデータ量を計算する。その後、CPU202は、計算した値と、S304にて取得されたデータ量とを比較することで判定を行う。CPU202は、判定がYesの場合はS605の処理を実行し、判定がNoの場合はS604の処理を実行する。
S604では、CPU202は、変数Nに1を加算し、その後、加算された変数Nに基づいてS602の処理を実行する。
S605では、CPU202は、S301にて受信された印刷データのRIP処理にかかる時間を取得する。具体的には、CPU202は、例えば、CPU202は、S302で特定されたRIPサーバ117の処理能力から、S301にて受信された印刷データのRIP処理にかかる時間を算出する。この場合、図5のテーブルには、さらに、各サーバにおけるRIP処理能力情報が格納されているものとする。なお、RIP処理能力情報として、例えば、フォント、グラフィックス、画像毎にRIP処理を施し終わるのに要する時間の情報等がある。例えば、S302で特定されたサーバがRIPサーバAであり、RIPサーバAは、RIP処理を施し終わるのに、1フォントあたり1秒、1グラフィックスあたり15秒、1画像あたり30秒要するとする。その場合、S301にて受信された印刷データには30フォント、10グラフィックス、1画像分の情報が含まれるとすると、RIP処理にかかる時間は、10×1+2×15+1×30=70秒となる。なお、ここで述べたRIP処理時間の予測方法は一例であり、他の周知の方法を用いても良い。また、CPU202は、RIP処理において、画像補正等、ラスタライズ以外の処理も行われる場合は、それらの処理にかかる時間も取得する。なお、印刷データのRIP処理にかかる時間の取得方法は上述の形態に限らない。例えば、印刷データのデータ量やフォーマットを、プリンタ100が保持するテーブルと比較して、印刷データのRIP処理にかかる時間を一意に推定するような形態であっても良い。
S605では、CPU202は、N番目に処理されるRIP済みデータが消去される時間の情報を取得する。例えば、プリンタ100による印刷速度が3インチ/秒、印刷対象のシートの搬送方向の長さが15インチである場合、N番目に処理されるRIP済みデータの処理が終了する時間は15/3×N=5N秒となる。なお、印刷完了までの時間は、仕分けユニット114までの搬送にかかる時間やシートを離間させるための時間が加えられても良い。また、プリンタ100の状態が待機中の場合は、エンジン起動のための時間等、印刷可能状態になるまでの時間が加えられても良い。なお、S607の判定結果によってはS605が繰り返し行われる場合があるが、この場合は、CPU202は、前回S605にて取得した時間から、前回S605を行ってから経過した時間を引いた時間を取得する。このような形態とすることで、N番目に処理されるRIP済みデータが消去される時間の情報を更新することができる。なお、紙ジャム等のエラーにより印刷処理が止まってしまった場合は、CPU202は、N番目に処理されるRIP済みデータが消去される時間を正確に算出できない。その場合は、CPU202は、時間が算出可能になるまで(例えば、エラーが復旧して印刷処理が再開されるまで)は、ウェイト処理を実行しても良い。
S607では、CPU202は、N番目に処理されるRIP済みデータが消去されるまでの時間が、S301にて受信された印刷データのRIP処理にかかる時間以下か否かを判定する。具体的には、CPU202は、S605とS606にて取得した値を比較することで判定を行う。CPU202は、判定がYesの場合はS608の処理を実行し、判定がNoの場合は、S606の処理を再び実行する。なお、CPU202は、判定がNoの場合は、一定時間のウェイト処理を実行しても良い。なお、この処理は、RIP処理完了時には、S304で取得されたデータ量分の領域が、RIP済みデータ保存領域にて空いている状態とするための処理である。
S608では、CPU202は、S304で取得されたデータ量分の領域を、RIP済みデータ保存領域において仮確保する。その後、CPU202は、本フローチャートに示す処理を終了し、S309の処理を実行する。
本実施形態のユースケースを、図7と図8を用いて説明する。図7は、画像処理部207とRIPサーバ117におけるRIP処理の進行状態を時間軸Tで示した図である。図8は、図7の各タイミングにおける、RIP済みデータ保存領域801の状態を示す図である。各印刷データは、印刷データ1(3ページ)、印刷データ2(3ページ)、印刷データ3(9ページ)の順で処理されるものとし、印刷データ1は、すでにRIP処理が完了し、RIP済みデータ保存領域801に保存されているものとする。また、S302の処理によって、印刷データ2がRIPサーバ117、印刷データ3が画像処理部207によってRIP処理されると特定されたものとする。なお、以下において、印刷データ番号Mにおいてページ番号Pに相当するデータを、印刷データM−Pと示し、印刷データM−PがRIP処理されたデータをRIP済みデータM−Pと示す。また、RIP済みデータ保存領域801には、14GBのデータを格納できるものとし、それぞれのRIP済みデータは1Gであるものとする。なお、RIP済みデータ保存領域801が格納できるデータ量や、それぞれのRIP済みデータのサイズは、上述のサイズに限定されない。例えば印刷用紙サイズや解像度により、各RIP済みデータのサイズが異なっていても良い。
まず、タイミングT1は、印刷データ2分の領域がRIP済みデータ保存領域801にて確保されたタイミングである。また、図8(a)は、タイミングT1におけるRIP済みデータ保存領域801の状態を示す図である。すでに印刷データ1のRIP処理は完了しているため、RIP済みデータ保存領域801には、印刷データ1がRIP処理されたデータであるRIP済みデータ1−1〜1−3が保存されている。また、このとき、領域802は、印刷データ2が保存されるために確保されているため、印刷データ2が保存されるまで領域802に他のデータが保存されることはない。
タイミングT2は、画像処理部207にて印刷データ3のRIP処理が開始されたタイミングである。
タイミングT3は、RIPサーバ117にて印刷データ2−3のRIP処理が行われており、且つ、画像処理部207にて印刷データ3−8のRIP処理が完了したタイミングである。また、図8(b)は、タイミングT3におけるRIP済みデータ保存領域801の状態を示す図である。このとき、印刷データ2−1、2−2、3−4〜3−8のRIP処理が完了しているため、RIP済みデータ保存領域801には、RIP処理が完了している印刷データに対応するそれぞれのRIP済みデータが保存されている。また、RIP済みデータ保存領域801において、RIP済みデータ2が保存されるために確保された領域の1ページ分の領域803は空いているが、それ以外は空いていない。
タイミングT4は、画像処理部207にて印刷データ3−9のRIP処理が完了したタイミングである。このとき、RIP済みデータ保存領域801において、RIP済みデータ2が保存されるために確保された領域の1ページ分の領域803以外の領域は空いていないため、RIP済みデータ3−9は、RIP済みデータ保存領域801に保存されない。
タイミングT5は、RIPサーバ117にて印刷データ2−3のRIP処理が完了したタイミングである。また、図8(c)は、タイミングT5におけるRIP済みデータ保存領域801の状態を示す図である。このとき、RIP済みデータ2−3は、当該データを保存する領域(領域803)が確保されていたため、RIP済みデータ保存領域801に保存される。
図8(d)は、タイミングT5の後、RIP済みデータ1−1に基づく印刷が完了したタイミングにおけるRIP済みデータ保存領域801の状態を示す図である。上述の通り、印刷が終了すると、当該印刷に利用されたRIP済みデータ(ここでは印刷データ1−1)は、RIP済みデータ保存領域801から削除される。そして、データの削除により、T4で保存できなかったRIP済み3−9が保存できる領域が空いた場合、RIP済みデータ保存領域801にRIP済みデータ3−9が保存される。なお、図8(e)は、RIP済みデータ保存領域801にRIP済みデータ3−9が保存されたタイミングにおけるRIP済みデータ保存領域801の状態を示す図である。
上述のように、本実施形態では、RIPサーバ117によって印刷データのRIP処理が行われる場合、当該印刷データがRIP処理されることで生成されるRIP済みデータを保存するための領域が予め確保される。このような形態とすることで、RIPサーバ117にてRIP処理が行われている最中に、RIPサーバ117から受信するデータを保存するための空き容量がRIP済みデータ保存領域から無くなってしまうことを抑制することができる。結果として、RIPサーバ117から、RIP済みデータを迅速に受信することができる。また、一般に、RIPサーバ117からRIP済みデータを受信できない間は、当該RIP済みデータはRIPサーバ117に保持される。本実施形態のように、RIP済みデータを迅速に受信することができる形態とすることで、RIP済みデータが不必要にRIPサーバ117に保持されることを抑制することができる。結果として、RIPサーバ117を利用するためのコストを削減することができる。
また、本実施形態では、CPU202は、RIPサーバ117に印刷データを送信する際に、十分な空き容量がRIP済みデータ保存領域に無い場合は、RIP済みデータを保存するための領域を仮確保する。さらに、CPU202は、RIPサーバ117におけるRIP処理が完了する前に、仮確保した領域を確保できるように、仮確保した領域が空くまでの時間を考慮して印刷データを送信する。このような形態とすることで、仮確保した領域が空くまでの時間を有効に活用できると共に、RIPサーバ117からRIP済みデータを受信する時点で、RIP済みデータ保存領域に十分な空き容量を確保することができる。結果として、RIP済みデータを迅速に受信することができるとともに、RIP済みデータが不必要にRIPサーバ117に保持されることを抑制することができる。
(第2実施形態)
第1実施形態では、受信した印刷データのRIP処理をいずれのRIP処理部に実行させるかを、各RIP処理部のサポート仕様や状態に基づいて特定する形態を説明した。本実施形態においては、さらに、RIP済みデータ保存領域801に保存されているデータ量や、各RIP処理部のRIP処理速度を考慮して、受信した印刷データのRIP処理をいずれのRIP処理部に実行させるかを特定する形態を説明する。なお、本実施形態の基本的な構成は第1実施形態と同様であるため、以下では特徴的な構成についてのみ説明する。
図9は、本実施形態における、利用するRIP処理部を特定する処理(S302)を示すフローチャートである。なお、本フローチャートが示す処理は、CPU202が、ROM203やHDD205等に記憶されている制御プログラムをRAM204にロードし、その制御プログラムを実行することで実現される。また、本フローチャートが示す処理は、S301にて印刷データが受信された場合に開始される。また、S901〜S902は図4のS401〜S402、S905〜S908は図4のS403〜S406と同様の処理であるため、説明を省略する。
S903では、CPU202は、印刷処理が停止しそうか否かを判定する。このとき、CPU202は、具体的には、例えば、プリンタ100による印刷速度と、画像処理部207によるRIP処理速度とを比較することで判定を行う。CPU202は、印刷速度がRIP処理速度を上回っている場合に、印刷処理が停止しそうであると判定する。これは、印刷速度がRIP処理速度を上回っている場合、単位時間当たりにRIP済みデータ保存領域801に保存されるRIP済みデータ量より単位時間当たりにRIP済みデータ保存領域801から削除されるRIP済みデータ量の方が大きくなるためである。すなわち、RIP済みデータ保存領域801から全てのRIP済みデータが削除されてしまう可能性があるためである。なお、CPU202は、RIP済みデータ保存領域801に保存されているデータ量やページ数を参照して判定を行っても良い。この場合、CPU202は、例えば、RIP済みデータ保存領域801に保存されているデータ量やページ数が一定の閾値以下であった場合に、印刷処理が停止しそうであると判定する。なお、CPU202は、上述の比較双方を行い、印刷速度がRIP処理速度を上回っており、且つRIP済みデータ保存領域801に保存されているデータ量やページ数が一定の閾値以下であった場合に、印刷処理が停止しそうであると判定しても良い。なお、閾値は、ユーザによって任意に設定されても良いし、着荷時に予め設定されていても良い。また、CPU202は、印刷速度やRIP処理速度、保存されているデータ量等の情報は、RIPサーバ117やエンジン制御部208にポーリングしたり、RIPサーバ117のサポート仕様を示すテーブルを参照したりすることで取得する。また、CPU202は、RIPサーバ117にてRIP処理を施している印刷データがある場合は、RIPサーバ117の処理能力や、RIPサーバ117から受信するRIP済みデータの情報も考慮した上で、判定を行っても良い。このような構成である場合、具体的には、CPU202は、印刷速度がRIPサーバ117によるRIP処理速度を上回っていれば、印刷速度が画像処理部207によるRIP処理速度を上回っていても、印刷処理が停止しそうであると判定しない。また、CPU202は、RIP済みデータ保存領域801に保存されているデータ量やページ数に、RIPサーバ117から受信するRIP済みデータのデータ量やページ数を加えた値が一定の閾値以下であった場合に、印刷処理が停止しそうであると判定する。
S904では、CPU202は、RIPサーバ117を使用するか否かを判定する。具体的にはこのとき、CPU202は、例えば、RIPサーバ117を使用するか否かをユーザに問う画面を操作ユニット115に表示し、当該画面に対するユーザの入力を受け付けることで、判定を行う。ユーザに確認を行うのは、RIPサーバ117を使用する場合、ユーザに対し課金が発生するためである。CPU202は、判定がYesの場合はS906の処理を実行し、判定がNoの場合はS905の処理を実行する。
以降の処理は、前述した通り図4と同様であるため、説明を省略する。
本実施形態の画像処理システムにおいて、プリンタ100は、RIP済みデータ保存領域801から全てのRIP済みデータが削除されてしまうと、処理するデータが無いため印刷処理を停止してしまう。そこで、印刷処理全体のスループットを向上させるためには、印刷データに迅速にRIP処理を施して、RIP済みデータ保存領域801から全てのRIP済みデータが削除されてしまうことがないようにすることが望ましい。ここで、一般に、RIPサーバ117は、画像処理部207よりもRIP処理速度が速いことが知られている。そのため、本実施形態では、RIP済みデータ保存領域801から全てのRIP済みデータが削除されそうな場合は、RIPサーバ117を優先して利用する。このような形態とすることで、印刷処理が停止することを抑制でき、印刷処理のスループットを向上させることができる。
また、本実施形態では、RIPサーバ117を利用しようとする場合は、S904の処理のように、RIPサーバ117を利用するか否かをユーザに確認する。このような形態とすることで、課金してスループットを向上させるか、課金せずにスループットの低下を許容するかをユーザに選択させることができ、ユーザの利便性を向上させることができる。
なお、S904では、CPU202は、事前にユーザから、印刷速度を優先させるか、課金せずに印刷速度低下を許すかの設定を受け付けておき、当該設定に応じてRIPサーバ117を使用するか否かを判定しても良い。また、CPU202は、他の印刷データに関するRIP処理部の特定処理において、既にS904の処理を実行してユーザの選択を受け付けていた場合には、S904の処理を再び実行せず、既に受け付けていた選択に応じた処理を実行しても良い。また、CPU202は、S903で、RIP済みデータ保存領域801から全てのRIP済みデータが削除されそうと判定した場合には、ユーザの入力や設定を参照せず、必ずRIPサーバ117を使用しても良い。なお、その場合は、S904の処理は省略される。
(第3実施形態)
上述の実施形態では、RIP処理をいずれのRIP処理部に実行させるかを、1つの印刷データ毎に判定する形態を説明した。本実施形態においては、1ページ分の印刷データ毎に判定する形態を説明する。なお、本実施形態の基本的な構成は上述の実施形態と同様であるため、以下では特徴的な構成についてのみ説明する。
図10は、本実施形態においてプリンタ100が実行する、印刷データの処理を示すフローチャートである。なお、本フローチャートが示す処理は、CPU202が、ROM203やHDD205等に記憶されている制御プログラムをRAM204にロードし、その制御プログラムを実行することで実現される。
S1001では、CPU202は、ホスト装置118から印刷データを受信する。
S1002では、CPU202は、受信した印刷データをページ単位に分割する。このとき、CPU202は、具体的には、印刷データに含まれる設定情報を参照して、印刷データによって印刷されるページ数pの情報を取得し、受信した印刷データをp個に分割する。
S1003では、CPU202は、RIP処理をいずれのRIP処理部に実行させるかを、S1002で分割した印刷データそれぞれについて特定する。特定方法は、第1実施形態に記載の方法と第2実施形態に記載の方法のうちいずれの方法を用いても良い。このとき、CPU202は、具体的には、処理対象ページ数i(iの初期値=1、i≦p)の情報を取得し、RIP処理をいずれのRIP処理部に実行させるかを、iページ目に該当する印刷データについて特定する。その後、CPU202は、処理対象ページ数iの情報をインクリメントし、分割した印刷データ全てについて、利用するRIP処理部を特定する。その後、CPU202は、S1004の処理を実行する。
S1004では、CPU202は、S1003で、画像処理部207とRIPサーバ117の両方が特定されたか否か判定する。CPU202は、S402における判定がYesの場合はS1005の処理を実行し、判定がNoの場合(どちらか一方のみが特定された場合)はS1009の処理を実行する。
S1005では、CPU202は、S1002で分割した印刷データがRIP処理されるに際し、画像処理部207における処理がボトルネックになるか否かを判定する。ここでは、具体的には、CPU202は、画像処理部207でRIP処理が実行されている又は画像処理部207でRIP処理が施されるのを待っている印刷データの数やデータ量が、所定の閾値を超えているか否かを判定する。なお、この判定は、例えば、画像処理部207の処理能力や、印刷データの処理に要する時間等によって判定されても良い。CPU202は、判定がYesの場合はS1006の処理を実行し、判定がNoの場合はS1009の処理を実行する。
S1006では、CPU202は、画像処理部207の代わりにRIPサーバ117を使用するか否かを判定する。具体的にはこのとき、CPU202は、例えば、RIPサーバ117を使用するか否かをユーザに問う画面を操作ユニット115に表示し、当該画面に対するユーザの入力を受け付けることで、判定を行う。ユーザに確認を行うのは、RIPサーバ117を使用する場合、ユーザに対し課金が発生するためである。CPU202は、判定がYesの場合はS1007の処理を実行し、判定がNoの場合はS1009の処理を実行する。
S1007では、CPU202は、分割された印刷データ全てをRIPサーバ117で処理する。具体的には、CPU202は、図3のS304〜S310と同様の処理を、分割された印刷データ全てに対して行う。
S1009では、CPU202は、分割された印刷データ全てを、画像処理部207及びRIPサーバ117のうちどちらか一方(S1003で決定されたRIP処理部)で処理する。このとき具体的には、CPU202は、S1003で決定されたRIP処理部が全て画像処理部207である場合は、図3のS312〜S316と同様の処理を、分割された印刷データ全てに対して行う。また、CPU202は、S1003で決定されたRIP処理部が全てRIPサーバ117である場合は、図3のS304〜S310と同様の処理を、分割された印刷データ全てに対して行う。
S1010では、CPU202は、分割されたそれぞれの印刷データを、画像処理部207及びRIPサーバ117で処理する。具体的には、CPU202は、S1003で、画像処理部207で処理すると決定された印刷データについては、図3のS312〜S316と同様の処理を行う。また、CPU202は、S1003で、で処理すると決定された印刷データについては、図3のS304〜S310と同様の処理を行う。なお、CPU202は、S1010においては、画像処理部207で処理すると決定された印刷データについても、当該印刷データを保存するための領域を確保しても良い。これは、画像処理部207でRIP処理したデータを保存する分の空き容量がRIP済みデータ保存領域にないことから、CPU202がデータを結合できない事態を回避するためである。
S1011では、分割された印刷データに対応するそれぞれのRIP済みデータを、ページ順に結合して1つのRIP済みデータとする。
S1012では、S1011で結合したRIP済みデータに基づいて印刷処理を実行し、本フローを終了する。
このように、本実施形態のように、RIP処理をいずれのRIP処理部に実行させるかをページ単位で判定する場合、CPU202は、事前に印刷データをページ単位に分割し、RIP処理後に、分割したデータを結合する。このとき、例えば、画像処理部207に既に多数の印刷データがたまっている場合や、画像処理部207によるRIP処理速度が遅い場合、画像処理部207に送信した印刷データのRIP処理が完了するのに時間がかかる(ボトルネックが発生する)場合がある。CPU202は、分割されたデータ全てのRIP処理が完了しないとデータを結合できないため、上述のようなボトルネックが発生している場合、RIPサーバ117に送信した印刷データのRIP処理が完了してもすぐにはデータを結合できない。そこで、本実施形態では、画像処理部207における処理がボトルネックとなっている場合には、画像処理部207でRIP処理可能な印刷データについても、RIPサーバ117でRIP処理する。このようにすることで、印刷データの処理におけるスループットを向上させることができる。
また、本実施形態では、RIPサーバ117を利用しようとする場合は、S1006の処理のように、RIPサーバ117を利用するか否かをユーザに確認する。このような形態とすることで、課金してスループットを向上させるか、課金せずにスループットの低下を許容するかをユーザに選択させることができ、ユーザの利便性を向上させることができる。
(第4実施形態)
上述の実施形態では、RIPサーバ117に含まれるサーバがすべて従量課金制である形態を説明した。本実施形態においては、RIPサーバ117に非従量課金制のサーバが存在する形態を説明する。なお、本実施形態の基本的な構成は上述の実施形態と同様であるため、以下では特徴的な構成についてのみ説明する。
図11は、本実施形態における、利用するRIP処理部を特定する処理(S302)を示すフローチャートである。なお、本フローチャートが示す処理は、CPU202が、ROM203やHDD205等に記憶されている制御プログラムをRAM204にロードし、その制御プログラムを実行することで実現される。また、本フローチャートが示す処理は、S301にて印刷データが受信された場合に開始される。また、S1101〜S1103は図4のS401〜S403と同様の処理なので、説明を省略する。なお、本フローチャートにおいて利用されるテーブルは、図12のように、図5のテーブルが保持する情報に加えて1時間あたりのコストの情報を保持するものとする。また、コストが0円のサーバは、非従量課金制のサーバを表している。
S1104では、非従量課金制のサーバの中から、受信された印刷データのRIP処理に適したサーバを特定する。このとき、CPU202は、具体的には、S1101で解析された情報と図12に示すテーブルとを比較することで、受信された印刷データのRIP処理に適したサーバを特定する。ここでは、非従量課金制のサーバは、RIPサーバAのみであるため、S1101で解析された情報とRIPサーバAのサポート仕様や状態とを比較する。なお、CPU202は、非従量課金制のサーバがない場合や、非従量課金制のサーバの中に受信した印刷データのRIP処理に適したサーバがない場合は、サーバを特定しない。
S1105では、CPU202は、S1104でサーバを特定したか否かを判定する。CPU202は、判定がYesの場合は、本フローチャートの処理を終了してS303の処理を実行し、判定がNoの場合は、S1106の処理を実行する。
S1106では、CPU202は、稼働状態が「稼働中」の従量課金制のサーバの中から、S404で説明した処理と同様にして、受信された印刷データのRIP処理に適したサーバを特定する。
S1107では、CPU202は、S404でサーバを特定したか否かを判定する。CPU202は、判定がYesの場合は、本フローチャートの処理を終了してS303の処理を実行し、判定がNoの場合は、S1108の処理を実行する。
S1108では、CPU202は、稼働状態が「未起動」の従量課金制のサーバの中から、S406で説明した処理と同様にして、受信された印刷データのRIP処理に適したサーバを特定する。
このように、本実施形態においては、RIPサーバ117を利用してRIP処理を行う場合は、非従量課金制のサーバを優先して使用することで、RIPサーバ117を利用するためのコストを削減することができる。
(その他の実施形態)
上述の実施形態では、プリンタ100外部に存在するサーバは、RIP処理を行うサーバ(RIPサーバ117)であるものとしたが、この形態に限定されない。すなわち、プリンタ100外部に存在するサーバは、画像処理を行うサーバであれば良く、RIP処理以外の画像処理を実行するサーバであっても良い。すなわち、上述の実施形態においては、RIP処理の代わりに公知の種々の画像処理(色変換処理、量子化処理等)が実行されても良い。また、RIP済みデータの代わりに、印刷データに公知の種々の画像処理が施されることで生成される画像処理済みデータが扱われても良い。また、印刷データは、画像処理を施すことが可能なデータであれば、PDLデータでなくとも良い。
上述の実施形態では、画像処理の対象は印刷データであり、RIPサーバには印刷データを送信するものとしたが、例えば、1ページに相当する一部分の印刷データ単位でRIPサーバにデータを送信して、当該データに画像処理を施す形態としても良い。
上述の実施形態では、制御装置内部の画像処理部と、制御装置外部のRIPサーバとにRIP処理を行わせるものとしたが、この形態に限定されない。例えば、制御装置外部のRIPサーバだけにRIP処理を行わせる形態であっても良い。また、制御装置外部のRIPサーバに、非従量課金制のものと、従量課金制のものがある場合には、上述の実施形態において制御装置内部の画像処理部に実行させていた処理を、非従量課金制のRIPサーバに実行させる形態であっても良い。
上述の実施形態では、RIP済みデータ保存領域801内のすべての領域が、画像処理部207によってRIP処理したデータとRIPサーバ117によってRIP処理したデータとで共有されるものとしたが、この形態に限定されない。例えば、RIP済みデータ保存領域801に画像処理部207によってRIP処理したデータ専用の領域を一部設け、その他を共有領域とする構成でも良い。この場合、CPU202は、共有領域のみ、RIPサーバ117によってRIP処理したデータを保存するための領域として確保及び仮確保できる。このような形態とすることで、RIPサーバ117によってRIP処理したデータが優先的に保存されることによって、画像処理部207によってRIP処理したデータがいつまでも保存できない事態を回避することができる。
上述の実施形態は、上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを実行する処理でも実現可能である。また、上述の実施形態は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。