(57)【要約】【課題】  効率に印刷を実行する。【解決手段】  入力データを出力データを生成するための展開処理を実行する。生成された出力データを一時的に保持する。入力データの内、未処理の入力データの残部分を展開処理で処理するために要する第１の予想残時間と、未展開の出力データの残部分を展開処理から出力するために要する第２の予想残時間の内、長い方を展開処理における完了予想時間として算出する。時間経過に応じて、完了予想時間が印刷装置で印刷する入力データの印刷必要時間より長くなった場合に、保持している出力データを印刷装置へ出力するように制御する。【選択図】  図２Ｂ
2015187758.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対して展開処理を実行して、印刷装置へ出力するための出力データを生成する情報処理装置であって、
前記入力データを前記出力データを生成するための展開処理を実行する展開手段と、
前記展開手段で生成された出力データを一時的に保持する保持手段と、
前記入力データの内、未処理の入力データの残部分を前記展開処理で処理するために要する第１の予想残時間と、未展開の前記出力データの残部分を前記展開処理から出力するために要する第２の予想残時間の内、長い方を前記展開処理における完了予想時間として算出する算出手段と、
時間経過に応じて、前記完了予想時間が前記印刷装置で印刷する入力データの印刷必要時間より長くなった場合に、前記保持手段で保持している前記出力データを前記印刷装置へ出力するように制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記算出手段は、前記展開処理の進行割合に従って、前記第１の予想残時間と前記第２の予想残時間とを算出して更新し、それらの内、長い方を前記展開処理における完了予想時間として算出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記入力データに対する印刷条件を指定する指定手段を更に備え、
前記印刷必要時間は、前記指定手段で指定される印刷条件に含まれる印刷モードと、前記入力データのサイズとに基づいて算出される
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記算出手段は、
前記入力データについての既処理時間と被処理データ全容量と既処理量から、前記第１の予想残時間を算出し、
前記出力データの予定被展開量と既処理量から、前記第２の予想残時間を算出する
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記入力データに対する印刷条件を前記印刷装置へ送信する送信手段と、
前記送信手段で送信した印刷条件に応じて、前記印刷装置から、前記印刷装置の機種情報、前記印刷条件に含まれる印刷モードによって決定される印刷速度情報、前記印刷条件に含まれる印刷サイズによって決定される印刷必要時間情報を受信する受信手段と
を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
入力データに対して展開処理を実行して、印刷装置へ出力するための出力データを生成する情報処理方法であって、
前記展開処理で生成された出力データを一時的に記憶媒体に保持する保持工程と、
前記入力データの内、未処理の入力データの残部分を前記展開処理で処理するために要する第１の予想残時間と、未展開の前記出力データの残部分を前記展開処理から出力するために要する第２の予想残時間の内、長い方を前記展開処理における完了予想時間として算出する算出工程と、
時間経過に応じて、前記完了予想時間が前記印刷装置で印刷する入力データの印刷必要時間より長くなった場合に、前記記憶媒体で保持している前記出力データを前記印刷装置へ出力するように制御する制御工程と
を備えることを特徴とする情報処理方法。
【請求項７】
コンピュータを、請求項１乃至５のいずれか１項に記載の処理装置の各手段として機能させるための、または請求項６に記載の処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データに対して展開処理を実行して、印刷装置へ出力するための出力データを生成する情報処理技術に関するものである。
【背景技術】
【０００２】
例えば、ページ記述言語等の印刷データをビットマップデータ等の画像データへ展開する展開処理（レンダリング）を行い、逐次、印刷処理を行う大判印刷においては、その印刷面積の大きさのために、展開処理も印刷処理のどちらもかなりの時間を要する場合がある。その際に、印刷完了までの時間短縮にはできるだけ、展開処理の完了を待たずに印刷処理を開始する必要がある（例えば、特許文献１参照）。
【０００３】
しかし、展開処理の速度は、印刷データの内容によって変化するので、一様な予測が難しい。
【０００４】
プリンタ側に高速の処理機能を有する場合は、プリンタ側で印刷データの展開処理を試行するとともに、そのプリンタ側の展開処理と、そのプリンタへ印刷データを供給するホスト側の展開処理との内、より速く展開処理を完了できる方を選択する技術がある（例えば、特許文献２参照）。
【０００５】
また、展開処理の速度の予測に失敗して、展開処理が印刷処理に間に合わなくなった場合に、印刷速度を調整する技術がある（例えば、特許文献３参照）。
【０００６】
ところが、インクジェット方式の印刷では、展開処理の速度に合わせて、印刷速度を変化させると、画像が形成される記録媒体上のインクの滲み・乾燥時間が異なって、画質低下が予想される。
【０００７】
特に、大判印刷における展開処理の速度を予測しようとする場合、印刷処理で印刷する印刷面積に対する印刷時間倍以上に予想外な時間を要する場合がある。これに加えて、大判印刷における印刷データは、各種画像を合成して構成されることが多いため、印刷データの前半に展開時間が掛かる場合や、後半に展開時間が掛かる場合等、１つの印刷データに対する展開時間が一様でない場合がある。このように、大判印刷における展開処理の速度の予測は難しいため、予測精度の高精度化の検討が行われてこなかった。
【０００８】
無論、プリンタ側にハードディスクドライブ（ＨＤＤ）等の大記憶容量装置を設け、展開処理済の１ページ分の画像データが溜まってから印刷を行えば、印刷中断は発生しない。しかし、印刷処理の開始が１ページ分の画像データの展開処理に要する時間分遅くなり、結果としてスループットが低下してしまう。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００１−２３２９０７号公報
【特許文献２】特開平０９−０２２３３４号公報
【特許文献３】特開平０８−１８３２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１では、プリンタ側で、ホストからの転送が完了している画像データの既転送量に基づいて印刷処理を開始する構成であるために、後続の画像データにデータ量が大きい高解像画像が含まれるような場合には、対応できない。
【００１１】
また、特許文献２では、複数の処理部による展開処理を試行した上で、展開処理の時間を予測する必要があり、場合によっては、ページ毎に予測の再検討が必要になる場合もある。
【００１２】
更に、特許文献３では、予測精度の悪さによって発生する印刷ムラの発生が予想される。
【００１３】
多くの場合は、展開処理済の画像データのデータ量が印刷必要時間に近いので、展開処理済の画像データの生成速度から印刷処理の処理速度の予測がある程度は可能である。そのため、この予測可能な処理速度を、特許文献で示される技術に適用して、処理時間の試算や予測に用いることが考えられる。
【００１４】
ところが、印刷データ中の比較的狭い空白部分においては、その展開速度は速いが、印刷時間は通常時と変わらない場合がある。また、ベクタデータや高圧縮画像データからなる印刷データの展開処理においては、比較的、処理時間が掛かり、かつ処理確定まで、画像データの展開が遅延しがちで、処理途中での予測が困難であった。
【００１５】
これらに比べ、多岐な原稿画像が含まれる印刷データに於いても、処理時間の予測を比較的正確に行い、処理の予想終了時刻に合わせて、印刷処理の開始を調整することが高スループットへの課題であった。
【００１６】
本発明は上記の課題を解決するためになされたものであり、効率に印刷を実行することができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
入力データに対して展開処理を実行して、印刷装置へ出力するための出力データを生成する情報処理装置であって、
前記入力データを前記出力データを生成するための展開処理を実行する展開手段と、
前記展開手段で生成された出力データを一時的に保持する保持手段と、
前記入力データの内、未処理の入力データの残部分を前記展開処理で処理するために要する第１の予想残時間と、未展開の前記出力データの残部分を前記展開処理から出力するために要する第２の予想残時間の内、長い方を前記展開処理における完了予想時間として算出する算出手段と、
時間経過に応じて、前記完了予想時間が前記印刷装置で印刷する入力データの印刷必要時間より長くなった場合に、前記保持手段で保持している前記出力データを前記印刷装置へ出力するように制御する制御手段と
を備える。
【発明の効果】
【００１８】
本発明によれば、効率に印刷を実行することができる。
【図面の簡単な説明】
【００１９】
【図１】印刷システムの構成を示す図である。
【図２Ａ】展開処理と印刷処理の動作を説明するための図である。
【図２Ｂ】展開処理と印刷処理の動作の詳細を説明するための図である。
【図３】入力ファイルと出力ファイルの処理の進行の一例を示す図である。
【図４】入力ファイルと出力ファイルの処理の進行の一例を示す図である。
【図５】入力ファイルと出力ファイルの処理の進行の一例を示す図である。
【図６】印刷データの処理フローを説明するための図である。
【図７】印刷システムが実行する処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２１】
＜印刷システムの構成＞
図１はホストコンピュータ（以下、ホスト）１とプリンタ２とから構成される印刷システムの概略を示すブロック図である。
【００２２】
本明細書において印刷装置であるプリンタ２は、印刷機能に特化した専用機に限らず、印刷機能とその他の機能を複合した複合機や、記録媒体上に画像やパターンを形成する製造装置等も含むものとする。
【００２３】
図１に示されるように、ホスト１とプリンタ２とは所定の双方向インタフェース３０（例えば、ＵＳＢ、ＩＥＥＥ１３９４、ＴＣＰ／ＩＰ等）を介して互いに接続される。尚、ホスト１は、パーソナルコンピュータ（ＰＣ）等の情報処理装置が代表的な例である。
【００２４】
ホスト１は、ＣＰＵ１０１を含むメインボード１００、キーボード（ＫＢ）１０５、ＬＣＤ等のディスプレイ（ＤＩＳＰＬＡＹ）１０７、ハードディスク（ＨＤＤ）やフレキシブルディスク（ＦＤＤ）等の外部記憶装置１０９とを有する。メインボード１００は、更に、ＲＡＭ１０２、ＲＯＭ１０３、キーボードコントローラ（ＫＢＣ）１０４、ディスプレイコントローラ（ＤＩＳＰＣ）１０６、ディスクコントローラ（ＤＫＣ）１０８、プリンタコントローラ（ＰＲＴＣ）１１０を有する。
【００２５】
ＣＰＵ１０１は、システムバス１１１に接続される各種構成要素を総括的に制御し、各種プログラムを実行する。キーボードコントローラ（ＫＢＣ）１０４は、キーボード１０５やポインティングデバイス（不図示）からの入力を制御する。キーボードコントローラ１０４を操作部または入力部とも呼ぶ。ディスプレイコントローラ（ＤＩＳＰＣ）１０６は、ディスプレイ１０７の表示を制御する。ＲＡＭ１０２は、ＣＰＵ１０１のメインメモリあるいはワークエリアとして機能する。ＲＯＭ１０３は、オペレーティングシステム、本実施形態に従う各機能を実行するプログラム、ブートプログラム、各種のアプリケーション、プリンタ制御コマンド生成プログラム（以下、プリンタドライバ）等のプログラムを記憶する。
【００２６】
尚、ホスト１は、ＣＰＵ１０１が実行するプログラムにより、ページ記述言語等の印刷データ／コマンドをビットマップデータ等の画像データへ展開する展開処理、いわゆる、レンダリングを実行する。また、展開処理によって得られた画像データは、ＲＡＭ１０２に確保されるスプーラに一旦格納され、後述する処理に従って、スプーラに一時的に保持した画像データを所定単位（例えば、ページ／バンド／ラスター）でプリンタ２へ出力する。
【００２７】
ディスクコントローラ（ＤＫＣ）１０８は、外部記憶装置１０９とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）１１０は、双方向インタフェース３０を介してプリンタ２に接続され、プリンタ２とのデータ及びコマンドの通信処理を制御する。
【００２８】
プリンタ２は、コントローラ１２１、プリンタエンジン１２２、操作パネル１２０、不揮発性記憶装置１３３を有し、双方向インタフェース３０を介して、ホスト１と接続されている。不揮発性記憶装置１３３は、ハードディスク（ＨＤＤ）１２８またはＥＥＰＲＯＭ１２９を含む。不揮発性記憶装置１３３を不揮発性メモリということもある。
【００２９】
コントローラ１２１は、ＣＰＵ１２４、ＲＯＭ１２５、ＲＡＭ１２６、インタフェースコントローラ（Ｉ／ＦＣ）１２３、ディスクコントローラ（ＤＫＣ）１２７、パネルインタフェース（Ｉ／ＦＰ）１３０、エンジンインタフェース（Ｉ／ＦＥ）１３２を含む。
【００３０】
ＣＰＵ１２４は、プリンタ２に関する各種処理を実現するための各種プログラムを実行する。ＲＯＭ１２５は、ホスト１から印刷データとコマンドを受信し、プリンタエンジン１２２を制御して最適な印刷を実現させるためのプログラムや各種データを記憶する。ＲＡＭ１２６は、各種データや各種プログラムを一時的に記憶するワークエリアとして用いられる。
【００３１】
インタフェースコントローラ（Ｉ／ＦＣ）１２３は、双方向インタフェース３０を介してホスト１に接続され、ホスト１とのデータとコマンドの通信処理を制御する。ハードディスク（ＨＤＤ）１２８は、ホスト１からのデータ及びそのデータに関する付属情報等の大容量のデータを記憶する。ＥＥＰＲＯＭ１２９は、印刷動作時に使用するプリンタ独自の情報等を記憶する。ディスクコントローラ（ＤＫＣ）１２７は、不揮発性記憶装置１３３とのアクセスを制御する。パネルインタフェース（Ｉ／ＦＰ）１３０は、操作パネル１２０への表示や操作パネル１２０からの入力を制御する。エンジンインタフェース（Ｉ／ＦＥ）１３２は、ハードウェアを直接制御して最適な印刷を実現させるプリンタエンジン１２２を制御する。
【００３２】
尚、本実施形態では、プリンタエンジン１２２は、印刷方式として、インクジェット方式を用いるが、これに限定されず、電子写真方式やオフセット方式等の他の印刷方式を用いることもできる。また、プリンタ２は、特に、ロール紙や、Ａ０サイズやＢ０サイズ等の比較的大きなサイズの記録媒体に原稿画像を印刷する印刷装置を想定している。しかしながら、もちろん、比較的小さなサイズの記録媒体を用いる印刷装置を本実施形態に適用することができる。
【００３３】
本実施形態の構成は、ホスト１は、プリンタ２に対して、指定した印刷モードとプリンタ種別（機種情報）によりプリンタの印刷速度を確認することができる。また、ホスト１は、指定した印刷モードと印刷データの印刷サイズ（原稿サイズ）により印刷必要時間も算出できる。加えて、ホスト１は、指定した印刷モードと印刷サイズにより展開処理への展開量も算出できる。
【００３４】
ここで、ホスト１は、印刷データ（入力データ）の展開処理を開始して、その印刷データについての既処理時間と被処理データ全容量と既処理量（展開処理済量）から、展開処理に対する入力量による残処理時間の予測が可能になる。同時に、ホスト１は、印刷データの予定被展開量と既処理量から、展開処理からの出力量による残展開時間を予測が可能になる。そして、ホスト１は、この２種類の予測によって得られる２つの予想時間の長い方が、算出済の印刷必要時間に達してから、ＲＡＭ１０２に確保されるスプーラ内の展開処理済の印刷データ（画像データ（出力データ））をプリンタ２への転送を開始する制御を実行する。
【００３５】
図２Ａは展開処理と印刷処理の動作を説明するための図である。
【００３６】
図２Ａにおいて、ホスト１にプリンタ２が接続されている。ホスト１は、印刷データである入力ファイル８を展開処理７によって、ビットマップデータである展開処理済ファイル６を生成する。プリンタ２は、展開処理済ファイル６（展開処理７によって得られる出力ファイル）を、所定単位（例えば、所定単位のバンド／ラスター／ページ）の画像データ１２として受信し、受信した画像データ１２に基づいて記録媒体に対して逐次、印刷処理１３を実行する。
【００３７】
より詳しくは、印刷処理に際して、ホスト１は、印刷モード３の指定をプリンタ２に対して行い、その指定した印刷モード３での印刷速度４をプリンタ２から取得し、その印刷速度４に基づいて、入力ファイル８の展開処理７を実行する。ホスト１は、入力ファイル８の予想処理時間と印刷必要時間に基づいて決定されるタイミングで、スプールの解除の指示１１を行い、スプーラに格納している画像データ１２をプリンタ２へ供給する。
【００３８】
図２Ｂは、図２Ａの構成における動作の詳細を説明するための図である。図２Ａと同一の構成要素については、同一の参照番号を使用する。
【００３９】
展開処理７の開始により、展開処理対象である入力ファイル８（被印刷ファイル）の一部９は処理が進行し、その処理の開始からの経過時間と既進行割合から、展開処理に対する入力量に対する第１の予想処理時間を算出できる。入力ファイル８のサイズ（展開ファイルサイズ）は、印刷サイズと印刷モードを含む印刷条件５から算出される。展開処理７の進行によって、展開処理済ファイル６の一部１０が生成され、展開処理の開始からの経過時間と既進行割合から、展開処理からの出力量に対する第２の予想処理時間を算出できる。ホスト１は、これらの２つの予想処理時間の長い方に対し、印刷データである入力ファイル８のサイズから算出される印刷必要時間より短くなってから、スプールの解除の指示１１を発行して、スプーラから所定単位で画像データ１２をプリンタ２へ出力する。このように、プリンタ２に対する印刷処理１３の開始を遅延制御する。これによって、展開処理７の終了時刻に印刷処理１３が終了するように制御することが可能になる。
【００４０】
従来、処理時間の予測が困難であった理由は、印刷対象の画像のレイアウトにより、印刷前半に処理時間が掛かる場合や、逆に印刷後半に処理時間が掛かる場合があるために、印刷対象の全画像について展開処理を試行しないと、展開処理時間の予測が困難であったからである。
【００４１】
図３〜図５に、入力ファイルの展開処理の進行と、展開処理による出力ファイルの進行の関係を示し、進行程度とスプールの解除の関係を説明する。
【００４２】
図３は、平均的な画像で構成される入力ファイルの展開処理を実行する場合であり、縦軸の入力ファイル２１は、横軸（ｔ）の時間経過に伴い実線２４のように処理が進行する。ホスト１は、この入力ファイル２１の展開処理２３への入力量とその経過時間の関係から、展開処理２３への入力ファイル２１の入力が完了する予想終了時刻２９ａを算出することできる。
【００４３】
同様に、展開処理２３によって得られる出力ファイル２２も、横軸（ｔ）の時間経過に伴い実線２５のように処理が進行する。ホスト１は、この展開処理２３からの出力ファイル２２の出力量とその経過時間の関係から、展開処理２３からの出力ファイル２２の出力が完了する予想終了時刻２９ｂを算出することができる。
【００４４】
これらの予想終了時刻２９ａ及び２９ｂから得られる展開処理２３に関する処理終了時刻２６に合わせて、入力ファイル２１のサイズから算出される印刷必要時間２７前の時点２８にスプールを解除することで、印刷必要時間２７の満了時に処理終了時刻２６を合わせることができる。
【００４５】
これに対して、高圧縮部分を含む入力ファイルに対する展開処理に関しては、小さな入力情報が大きな出力情報に展開され、初期部分で処理の遅延が若干発生するが、出力情報量当たりの処理時間は余り変わらず、入力情報量辺りの処理時間が掛かることになる。
【００４６】
図４は入力ファイル３１の後半に高圧縮部分が多く、（入力）処理時間が掛かる場合を示している。展開処理３３の後半から、データサイズが比較的小さく高圧縮された入力ファイル３１の処理に時間が掛かるが、入力ファイル３１の前半は低圧縮のため、その処理は実線３４のように進行する。そして、この実線３４によって、処理終了時刻を予測すると、実際の処理終了時刻３９ｂに対して、予想終了時刻３９ａと誤予測されることになる。
【００４７】
この場合に、入力ファイル３１の前半で誤って処理終了時刻が早いと予測して印刷処理を開始すると、印刷処理の途中でデータが間に合わないことが発生する。
【００４８】
一方、展開処理３３によって得られる出力ファイル３２は、実線３５のように処理が進行する。この場合、予測される処理終了時刻は予想終了時刻３９ｃとなる。
【００４９】
予想終了時刻３９ａと予想終了時刻３９ｃとの間では、予想終了時刻３９ｃの方が遅くなるため、これを展開処理３３の処理終了時刻３６として、これに合わせて、印刷必要時間３７前の時点３８にスプールを解除する。これにより、印刷必要時間３７の満了時に処理終了時刻３６を合わせることができ、誤って早期に印刷を開始して処理が間に合わなくなることを防止することができる。
【００５０】
図５は入力ファイル４１の前半に高圧縮部分が多く、（入力）処理時間が掛かる場合を示している。展開処理４３の前半から、データサイズが比較的小さく高圧縮された入力ファイル４１の処理に時間が掛かるため、入力ファイル４１の処理は実線４４のように進行する。そして、この実線４４によって、処理終了時刻を予測すると、予想終了時刻４９ｃとなる。
【００５１】
一方、展開処理４３によって得られる出力ファイル４２は、相対的に大きな被展開量を伴う処理として実線４５のように進行する。そして、この実線４５によって、処理終了時刻を予測すると、実際の処理終了時刻４９ｂに対して、予想終了時刻４９ａと誤予測されることになる。
【００５２】
この場合に、出力ファイル４２の前半で誤って処理終了時刻が早いと予測して印刷を開始すると、印刷途中でデータが間に合わないことが発生する。
【００５３】
予想終了時刻４９ｃと予想終了時刻４９ａとの間では、予想終了時刻４９ｃの方が遅くなるため、これを展開処理の処理終了時刻４６として、これに合わせて、印刷必要時間４７前の時点４８にスプールを解除する。これにより、印刷必要時間４７の満了時に処理終了時刻４６を合わせることができ、誤って早期に印刷を開始して処理が間に合わなくなることを防止することができる。
【００５４】
尚、図５の場合、入力ファイル４１の後半は低圧縮部分であるため、入力ファイル４１の展開処理４３は前半に比べてより早く完了する可能性が大きい。そのため、印刷終了前に展開処理４３が完了することが予想され、スループットを若干損なうが、印刷処理が遅れて画質に影響が出るような事態を招くことがなく、リスクが少ない。
【００５５】
次に、図６を用いて、印刷データの処理フローを説明する。
【００５６】
ホスト１は、印刷データの入力ファイル６１を生成するとともに、その出力先であるプリンタ２、印刷サイズ及び印刷モードを含む印刷条件６０を入力し、その印刷情報６０をプリンタ２へ通知する。これにより、ホスト１は、その応答として、プリンタ２から、プリンタ２の機種情報、印刷速度情報もしくは印刷予想時間情報を取得する。
【００５７】
ホスト１は、入力ファイル６１から、入力バッファ６２を経由して、展開処理６３を実行し、出力バッファ６４を経由して、スプール６５へ展開処理の処理結果である出力ファイルの出力を行う。ホスト１は、展開処理６３の処理予定時間と印刷予想時間の比較から、両者の完了時間が揃うようにスプール６５を解除して、プリンタ２へ出力ファイルを出力する。
【００５８】
図７はホスト１とプリンタ２による印刷システムにおける処理を示すフローチャートである。
【００５９】
尚、ホスト１の外部記憶装置１０９に格納されており、ＣＰＵ１０１がこの各種のプログラムを実行することで、図７に示す処理が実現される。
【００６０】
ホスト１は、印刷対象の入力ファイルを指定するとともに、印刷先となるプリンタ２、印刷サイズ及び印刷モードを含む印刷条件を指定する（Ｓ７１）。その後、ホスト１は、その印刷条件を指定したプリンタ２へ送信する。
【００６１】
プリンタ２は、ホスト１から印刷条件を受信すると、自身の機種情報、印刷条件に含まれる印刷モードによって決定される印刷速度情報、もしくは印刷条件に含まれる印刷サイズによって決定される印刷予想時間情報を生成する。そして、プリンタ２は、機種情報、印刷速度情報、もしくは印刷予想時間情報をホスト１へ返信する（Ｓ７２）。
【００６２】
尚、プリンタ２は、ホスト１から受信する印刷条件に応じて、自身の機種情報、印刷条件に含まれる印刷モードによって決定される印刷速度情報、もしくは印刷条件に含まれる印刷サイズによって決定される印刷予想時間情報（印刷必要時間情報）を生成することができる。
【００６３】
ホスト１は、プリンタ２から受信する情報に基づいて、印刷予想時間を算出する（Ｓ７３）。例えば、プリンタ２から機種情報を受信した場合には、ホスト１は、機種情報によって特定されるプリンタ２の仕様から印刷速度を算出し、その印刷速度と印刷対象の入力ファイルの印刷サイズから印刷予想時間を算出する。また、プリンタ２から印刷速度情報を受信した場合には、ホスト１は、その印刷速度情報が示す印刷速度と印刷対象の入力ファイルの印刷サイズから印刷予想時間を算出する。また、プリンタ２から印刷予想時間情報を受信した場合には、ホスト１は、その印刷予想時間情報が示す印刷予想時間を取得する。
【００６４】
ホスト１は、ＲＡＭ１０２上に入力バッファを確保して、入力バッファへ入力ファイルを読み込む位置を指し示す入力ポインタを初期設定する。また、ホスト１は、印刷サイズと印刷条件で算出される展開予想量に相当するスプールファイルを格納するためのスプーラ（出力バッファ）をＲＡＭ１０２上に確保して、スプールファイルの格納位置を指し示す出力ポインタを初期設定する（Ｓ７４）。
【００６５】
ホスト１は、入力バッファを経由して入力ファイルを読み込み、入力ポインタを更新する（Ｓ７５）。ホスト１は、入力ファイルの読込が完了したか否かを判定する（Ｓ７６）。読込が完了している場合（Ｓ７６でＹＥＳ）、処理を終了する（Ｓ８４）。一方、読込が完了していない場合（Ｓ７６でＮＯ）、ホスト１は、入力ファイルの内、読み込んだ部分について展開処理を実行する（Ｓ７７）。ホスト１は、展開処理によって得られる展開済の入力ファイルを、スプーラ（出力バッファ）を経由してスプールファイルへ出力し、出力ポインタを更新する。
【００６６】
尚、Ｓ７６の判定により、入力ファイルの全体の読込が完了すると、展開処理は終了する。この場合、たとえプリンタ２へのスプールファイルが残っていても、ホスト１によるスプールファイルへの出力処理は続行し、印刷処理の完了に至る。
【００６７】
また、スプールの解除の判定は、頻繁に行えば、展開処理時間を妨げる可能性があるため、スプールファイルからの画像データの出力毎に容易に知り得る出力ポインタ（ファイル・コントロール・ブロック）情報を利用することが適切である。例えば、感覚的に「ほぼ」と言える誤差±１０％を実現できるように、出力ポインタの所定割合（例えば、１０％）の進行毎程度のタイミングでスプールの解除の判定を行う。
【００６８】
そこで、ホスト１は、出力ポインタが所定割合（例えば、１０％）分進行しているか否かを判定する（Ｓ７９）。出力ポインタが所定割合分、進行していない場合（Ｓ７９でＮＯ）、Ｓ７５へ戻る。一方、出力ポインタが所定割合分、進行している場合（Ｓ７９でＹＥＳ）、ホスト１は、展開処理済の入力ファイルのプリンタ２への出力を開始しているか否を判定する。つまり、スプールを解除しているか否かを判定する。
【００６９】
出力を開始していない場合（Ｓ８０でＮＯ）、Ｓ７５へ戻る。一方、出力を開始している場合（Ｓ８０でＹＥＳ）、ホスト１は、展開処理における完了予想時間を算出する（Ｓ８１）。この完了予想時間を算出するに当たり、ホスト１は、処理経過時間と入力ポインタの進行率（あるいは処理残量率）に基づいて、未処理の入力ファイルの残部分を展開処理するために要する第１の予想残時間を算出する。また、ホスト１は、出力ポインタの進行率（あるいは処理残量率）に基づいて、未展開の出力ファイルの残部分を展開処理から出力するために要する第２の予想残時間を算出する。そして、ホスト１は、これらの第１の予想残時間と第２の予想残時間の内、長い方（つまり、遅い方）を完了予想時間として算出する。
【００７０】
尚、完了予想時間の算出において、展開部分によって変化する展開処理速度（時間）の影響も在るので、例として、展開処理済ファイルの所定割合（例えば、１０％程度（０％を除く））毎に、Ｓ７９の判定及びＳ８１の算出を行う。
【００７１】
ホスト１は、算出した完了予想時間と、印刷必要時間とを比較し、完了予想時間が印刷必要時間未満であるか否かを判定する（Ｓ８２）。完了予想時間が印刷必要時間以上である場合（Ｓ８２でＮＯ）、Ｓ７５へ戻る。一方、完了予想時間が印刷必要時間未満である場合（Ｓ８２でＹＥＳ）、つまり、処理進行（時間経過）により減少していく完了予想時間より印刷必要時間が長くなってから、ホスト１は、スプールの解除を行うことで、プリンタ２への展開処理済の入力ファイル、つまり、展開処理によって得られる出力ファイル（ビットマップデータ）の出力を開始する（Ｓ８３）。
【００７２】
プリンタ２は、ホスト１から出力ファイルを受信すると、その出力ファイルに基づく印刷を開始する（Ｓ８５）。
【００７３】
以上説明したように、本実施形態によれば、多岐な印刷原稿に於いても、処理時間の予測を正確に行い、処理の終了予想に合わせて、印刷を開始することができる。これにより、印刷途中でのデータ待ちに依って発生する画像ムラを抑え、スループットを損なうことなく高速の印刷が可能になる。
【００７４】
より具体的には、入力ファイルの展開処理に要する予想処理時間と、展開処理によって出力ファイルを生成する処理に要する予想処理時間の遅い方を、展開処理の完了予想時間に設定する。そして、この完了予想時間に、印刷必要時間を合わせるようにスプールを解除することで、スループットを損なうことなく、印刷途中で処理待ちによって印刷中断を起こして印刷画質を損なうことのない、印刷を行うことができる。
【００７５】
尚、プリンタ２に依っては、ホスト１から画像データの供給開始から印刷開始まで若干の時間が掛かるが、大面積の印刷時間に比べれば無視できる量と考えている。
【００７６】
また、処理そのものの時間、即ち、遅延時間を考慮して、出力バッファの出力ポインタの進行を指標としている。逆に、入力バッファの入力ポインタは、先行した未処理の入力分を含めているが、通常、バッファサイズは、入力ファイルの大きさに比べて小さいので、無視できると考えている。
【００７７】
また、上記実施形態では、入力ファイルは、非圧縮データを前提に説明しているが、もちろん圧縮データについても、同様に、本実施形態を適用することができる。
【００７８】
尚、以上の実施形態の機能は以下の構成によっても実現することができる。つまり、本実施形態の処理を行うためのプログラムコードをシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がプログラムコードを実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することとなり、またそのプログラムコードを記憶した記憶媒体も本実施形態の機能を実現することになる。
【００７９】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2015187758.tif 000003
【図２Ａ】
2015187758.tif 000004
【図２Ｂ】
2015187758.tif 000005
【図３】
2015187758.tif 000006
【図４】
2015187758.tif 000007
【図５】
2015187758.tif 000008
【図６】
2015187758.tif 000009
【図７】
2015187758.tif 000010