(57)【要約】【課題】  ページプリンタにおける印刷エンジンへのデータ転送について、実際のデータ受信状況を考慮したフライングスタートを行なう。【解決手段】  ページ単位のイメージデータおよび前記イメージデータのデータサイズを受信して、前記イメージデータを一時的に格納する格納手段と、前記格納手段に格納された前記イメージデータを読み出して、印字処理を実行する印刷手段に転送する転送手段とを備え、前記転送手段は、前記イメージデータの受信レートを算出し、算出した受信レート、前記イメージデータのデータサイズ、および、あらかじめ定められた前記転送に要する時間に基づいて、前記転送を開始するタイミングを設定することを特徴とする印刷装置。【選択図】  図１
2005219477.tif 000002
【特許請求の範囲】
【請求項１】
ページ単位のイメージデータおよび前記イメージデータのデータサイズを受信して、前記イメージデータを一時的に格納する格納手段と、
前記格納手段に格納された前記イメージデータを読み出して、印字処理を実行する印刷手段に転送する転送手段とを備え、
前記転送手段は、
前記イメージデータの受信レートを算出し、
算出した受信レート、前記イメージデータのデータサイズ、および、あらかじめ定められた前記転送に要する時間に基づいて、前記転送を開始するタイミングを設定することを特徴とする印刷装置。
【請求項２】
請求項１に記載の印刷装置において、
前記転送手段は、前記イメージデータのデータサイズ／受信レート−前記転送に要する時間で定められる時間（以下「基準時間」と称する）にしたがい前記タイミングを設定することを特徴とする印刷装置。
【請求項３】
請求項２に記載の印刷装置において、
前記転送手段は、さらに、受信レート×基準時間にしたがい基準データ量を算出し、
基準時間、基準データ量およびイメージデータの受信状況に応じて、前記設定したタイミングを調整することを特徴とする印刷装置。
【請求項４】
請求項３に記載の印刷装置において、
前記転送手段は、イメージデータの受信を開始してからの経過時間が基準時間に達し、受信データ量が基準データ量に達している場合には、前記設定したタイミングで前記転送を開始することを特徴とする印刷装置。
【請求項５】
請求項３に記載の印刷装置において、
前記転送手段は、イメージデータの受信を開始してからの経過時間が基準時間に達し、受信データ量が基準データ量に達していない場合には、前記設定したタイミングより遅いタイミングで前記転送を開始することを特徴とする印刷装置。
【請求項６】
請求項３に記載の印刷装置において、
前記転送手段は、イメージデータの受信を開始してからの経過時間が基準時間に達せず、受信データ量が基準データ量に達した場合には、その時点で前記転送を開始することを特徴とする印刷装置。
【請求項７】
ページ単位のイメージデータを生成するイメージデータ生成手段と、
前記イメージデータのデータサイズとあらかじめ定められた転送レートとあらかじめ定められた定数とに基づいて定められる時間（以下「第２の基準時間」と称する）、および、第２の基準時間とあらかじめ定められた転送レートとに基づいて定められるデータ量（以下「第２の基準データ量」と称する）を算出する算出手段と、
前記イメージデータ、第２の基準時間および第２の基準データ量を出力する出力手段とを備えた印刷制御装置と、
前記出力されたイメージデータを受信して、一時的に格納する格納手段と、
前記格納手段に格納された前記イメージデータを読み出して、印字処理を実行する印刷手段に転送する転送手段とを備えた印刷装置であって、
前記転送手段は、前記出力された第２の基準時間、第２の基準データ、および、イメージデータの受信状況に応じて、前記転送を開始するタイミングを設定する印刷装置とを備えた印刷システム。
【請求項８】
請求項７に記載の印刷システムにおいて、
前記あらかじめ定められた定数は、前記転送手段が転送に要する時間に基づいて定められることを特徴とする印刷システム。
【請求項９】
請求項７に記載の印刷システムにおいて、
前記印刷制御装置は、当該印刷制御装置の処理能力に関する情報を取得する処理能力取得手段をさらに備え、
前記算出手段は、取得した処理能力に関する情報に基づいて前記あらかじめ定められた転送レートを変更し、変更した転送レートに基づいて、前記第２の基準時間および第２の基準時間を算出することを特徴とする印刷システム。
【請求項１０】
請求項９に記載の印刷システムにおいて、
前記算出手段は、前記取得した処理能力に関する情報を評価し、評価が高いほど前記あらかじめ定められた転送レートを高く変更し、評価が低いほど前記あらかじめ定められた転送レートを低く変更することを特徴とする印刷システム。
【請求項１１】
請求項９に記載の印刷システムにおいて、
前記印刷制御装置は、
前記第２の基準時間および第２の基準時間を表示するための情報を出力する出力手段をさらに備えることを特徴とする印刷システム。
【請求項１２】
請求項９に記載の印刷システムにおいて、
前記印刷装置は、実際に転送を開始した時点における、イメージデータを受信してからの経過時間と受信したデータ量とを前記印刷制御装置に送信する結果送信手段を備え、
前記印刷制御装置は、前記受信した経過時間およびデータ量を表示するための情報を出力する結果出力手段をさらに備えることを特徴とする印刷システム。
【請求項１３】
請求項９に記載の印刷システムにおいて、
前記印刷装置は、
前記転送を開始するタイミングを調整するための情報をユーザから受け付ける調整情報受付手段をさらに備え、
前記算出手段は、受け付けた調整情報に基づいて前記あらかじめ定められた転送レートを調整し、調整した転送レートに基づいて、前記第２の基準時間および第２の基準時間を算出することを特徴とする印刷システム。
【請求項１４】
ページ単位のイメージデータ、あらかじめ定められた基準により求められた基準バンド数、および、予測受信レートを受信して、前記イメージデータを一時的に格納する格納手段と、
前記格納手段に格納された前記イメージデータを読み出して、印字処理を実行する印刷手段に転送する転送手段とを備え、
前記転送手段は、
前記イメージデータの受信レートを算出し、
算出した受信レートと受信した予測受信レートとを比較し、比較結果に応じて前記基準バンド数を調整し、
調整した基準バンド数のイメージデータを受信した段階で、前記転送を開始することを特徴とする印刷装置。
【請求項１５】
請求項１４に記載の印刷装置において、
前記格納手段は、さらに、前記イメージデータの全バンド数を受信し、
前記転送手段は、算出した受信レートの受信した予測受信レートに対する割合に応じて、全バンド数と基準バンド数との差を調整することで前記基準バンド数を調整することを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページプリンタにおける印刷エンジンへのデータ転送のタイミング調整に関する。
【背景技術】
【０００２】
ページプリンタでは、ホストコンピュータから送られるイメージデータをバッファメモリに書き込む処理と、バッファメモリからイメージデータを読み出して印刷エンジンに転送する処理とが行なわれる。
【０００３】
ページプリンタの印刷エンジンはページ単位で印字を行なうため、印刷エンジンへの転送処理は、いったん印刷エンジンが印字処理を開始するとページの途中で中断することができない。このため、印刷エンジンに転送するイメージデータは読み出す際に既にバッファメモリに書き込まれている必要がある。
【０００４】
バッファメモリに１ページ分のイメージデータが格納されるのを待って印刷エンジンへの転送処理を開始すると、この条件は確実に満たされる。しかし、印刷エンジンでの印字開始時刻が遅くなる。
【０００５】
そこで、１ページ分のイメージデータの格納が済むのを待たずに、ある程度のイメージデータがバッファメモリに格納された段階で印刷エンジンへの転送を開始する、いわゆるフライングスタートが行なわれている。これにより、印字開始までの時間を短くして印刷パフォーマンスを向上させることができる。
【０００６】
フライングスタートのタイミングは、なるべく早い方が、印刷パフォーマンスが高くなる。しかし、フライングスタートのタイミングが早すぎると、転送すべきデータがバッファメモリに格納されていないことによる印刷失敗（アンダーランエラー）が起きてしまう。そこで、フライングスタートのタイミングは、失敗を避けるため安全な値が設定されている。
【０００７】
例えば、特許文献１には、プリンタ側、あるいは、ホストコンピュータ側において、１ページのデータ量、バッファメモリのサイズ数、データ圧縮率、データ受信速度等に基づいて基準のデータ量、あるいは、バンド数を算出し、バッファメモリに基準のデータ量、あるいは、バンド数のイメージデータが格納された段階で、印刷エンジンへの転送処理を開始することが提案されている。ここで、データ受信速度は、伝送媒体に応じてあらかじめ定めた予測値が用いられている。
【０００８】
【特許文献１】特開２０００−１６８１７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
実際のデータ受信速度は、ネットワークのトラヒック状況等の通信条件に応じて上下するため安定しないことがあるが、予測値としては、安全のため、通信条件が悪い場合の値を採用せざるを得ない。
【００１０】
このため、実際のデータ受信速度が予測値よりも速く、より高い印刷パフォーマンスが実現できる場合であっても、フライングスタートはデータ受信速度の予測値に基づいて算出されたタイミングで行なわれることになる。
【００１１】
本発明は、ページプリンタにおける印刷エンジンへのデータ転送について、実際のデータ受信状況を考慮したフライングスタートを行なうための技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため本発明の第１の態様によれば、
ページ単位のイメージデータおよび前記イメージデータのデータサイズを受信して、前記イメージデータを一時的に格納する格納手段と、
前記格納手段に格納された前記イメージデータを読み出して、印字処理を実行する印刷手段に転送する転送手段とを備え、
前記転送手段は、
前記イメージデータの受信レートを算出し、
算出した受信レート、前記イメージデータのデータサイズ、および、あらかじめ定められた前記転送に要する時間に基づいて、前記転送を開始するタイミングを設定することを特徴とする印刷装置が提供される。
【００１３】
受信レートの実測値に基づいてフライングスタートのタイミングが設定されることにより、実際のデータ受信状況を考慮したフライングスタートが行なわれる。
【００１４】
ここで、前記転送手段は、前記イメージデータのデータサイズ／受信レート−前記転送に要する時間で定められる時間（以下「基準時間」と称する）にしたがい前記タイミングを設定することができる。
【００１５】
また、前記転送手段は、さらに、受信レート×基準時間にしたがい基準データ量を算出し、
基準時間、基準データ量およびイメージデータの受信状況に応じて、前記設定したタイミングを調整することができる。
【００１６】
このように、転送レートの実測値に基づくフライングスタートのタイミングを、実際のイメージデータの受信状況に応じて調整することにより、さらに、実際のデータ受信状況を考慮したフライングスタートが行なわれる。
【００１７】
具体的には、イメージデータの受信を開始してからの経過時間が基準時間に達し、受信データ量が基準データ量に達している場合には、前記設定したタイミングで前記転送を開始し、
イメージデータの受信を開始してからの経過時間が基準時間に達し、受信データ量が基準データ量に達していない場合には、前記設定したタイミングより遅いタイミングで前記転送を開始し、
イメージデータの受信を開始してからの経過時間が基準時間に達せず、受信データ量が基準データ量に達した場合には、その時点で前記転送を開始することができる。
【００１８】
また、上記課題を解決するため本発明の第２の態様によれば、
ページ単位のイメージデータを生成するイメージデータ生成手段と、
前記イメージデータのデータサイズとあらかじめ定められた転送レートとあらかじめ定められた定数とに基づいて定められる時間（以下「第２の基準時間」と称する）、および、第２の基準時間とあらかじめ定められた転送レートとに基づいて定められるデータ量（以下「第２の基準データ量」と称する）を算出する算出手段と、
前記イメージデータ、第２の基準時間および第２の基準データ量を出力する出力手段とを備えた印刷制御装置と、
前記出力されたイメージデータを受信して、一時的に格納する格納手段と、
前記格納手段に格納された前記イメージデータを読み出して、印字処理を実行する印刷手段に転送する転送手段とを備え、
前記転送手段は、前記出力された第２の基準時間、第２の基準データ、および、イメージデータの受信状況に応じて、前記転送を開始するタイミングを設定する印刷装置とを備えた印刷システムが提供される。
【００１９】
あらかじめ定めた転送レートに基づくフライングスタートのタイミングを、実際のイメージデータの受信状況に応じて調整することにより、実際のデータ受信状況を考慮したフライングスタートが行なわれる。
【００２０】
また、上記課題を解決するため本発明の第３の態様によれば、
ページ単位のイメージデータ、あらかじめ定められた基準により求められた基準バンド数、および、予測受信レートを受信して、前記イメージデータを一時的に格納する格納手段と、
前記格納手段に格納された前記イメージデータを読み出して、印字処理を実行する印刷手段に転送する転送手段とを備え、
前記転送手段は、
前記イメージデータの受信レートを算出し、
算出した受信レートと受信した予測受信レートとを比較し、比較結果に応じて前記基準バンド数を調整し、
調整した基準バンド数のイメージデータを受信した段階で、前記転送を開始することを特徴とする印刷装置が提供される。
【００２１】
算出した受信レートと受信した予測受信レートとを比較し、比較結果に応じて前記基準バンド数を調整することにより、実際のデータ受信状況を考慮したフライングスタートが行なわれる。
【発明を実施するための最良の形態】
【００２２】
本発明の実施の形態について図面を参照して説明する。
【００２３】
図１は、本発明を適用した印刷システムの構成を示すブロック図である。本図に示すように印刷システムは、印刷制御装置として機能するプリンタホスト３０と印刷装置として機能するプリンタ１０とを備えて構成される。なお、本発明は、プリンタホスト３０とプリンタ１０とがローカルエリアネットワーク等のコンピュータネットワークを介して接続されている場合に特に効果的に適用することができる。
【００２４】
プリンタホスト３０は、演算処理装置、記憶装置、通信制御装置等を有する汎用的なコンピュータを用いて構成することができる。プリンタホスト３０には、コンピュータのシステム管理を行なう基本ソフトウェアであるオペレーティングシステム（ＯＳ）と、コンピュータをプリンタホスト３０として機能させるためのコンピュータプログラムであるプリンタドライバとが稼働している。プリンタドライバは、一般にプリンタ１０のメーカによって開発され、ＣＤ−ＲＯＭ等の記録媒体に記録されて頒布されたり、インターネット等のコンピュータネットワークを介して流通される。
【００２５】
プリンタ１０は、プリンタホスト３０から送信された印刷データを受信して、ページ単位で印刷するページプリンタであり、プリンタコントローラ１００と印刷エンジン２００とを備えている。
【００２６】
プリンタコントローラ１００は、印刷データをプリンタホスト３０から受信し、必要な加工を施して印刷エンジン２００に渡す一連の処理を行なう回路として、インタフェース回路１１０、ＤＭＡコントローラ１２０、データ伸長回路１３０、ビデオコントローラ１４０を備えている。これらの処理回路は、例えば、ＡＳＩＣ等の専用ハードウェアロジック回路で構成することができる。
【００２７】
また、プリンタコントローラ１００は、プリンタ１０における各種処理を制御するＣＰＵ１５０、主として受信バッファメモリとして用いられるＤＲＡＭ１６０、プログラム等を格納したＲＯＭ１７０等を備えており、相互にデータ授受可能に接続されている。
【００２８】
すなわち、プリンタホスト３０から送られた印刷データは、インタフェース回路１１０で受信され、印刷データに含まれるイメージデータがＤＭＡコントローラ１２０によってＤＲＡＭ１６０にＤＭＡ転送され格納される。ＤＲＡＭ１６０に格納されたイメージデータは、ＤＭＡコントローラ１２０により読み出されるが、イメージデータは一般に圧縮された状態で送られるため、ＤＲＡＭ１６０からＤＭＡコントローラ１２０によってＤＭＡ転送される圧縮されたイメージデータを、データ伸長回路１３０が伸長してビデオデータとする。そして、ビデオコントローラ１４０が印刷エンジン２００からの垂直同期信号、水平同期信号に同期して、ビデオデータを印刷エンジン２００に送信する。印刷エンジン２００がビデオデータに基づく印刷を実行することにより印刷用紙に画像が形成される。これら一連の処理は、ＲＯＭ１７０に記録されたプログラムにしたがってＣＰＵ１５０により制御される。
【００２９】
上記構成における本発明の第１の実施形態について説明する。第１の実施形態では、プリンタ１０が受信速度の実測値およびプリンタホスト３０から通知される処理対象ページのデータサイズに基づいてタイミング値を設定する。さらにプリンタ１０は、その後の印刷データの受信状況に応じて、フライングスタートのタイミングを調整することができる。
【００３０】
図２は、第１の実施形態におけるプリンタ１０の処理を説明するフロー図である。なお、本処理は、主としてプリンタ１０のＣＰＵ１５０により制御される。
【００３１】
本処理は、プリンタ１０がプリンタホスト３０からの印刷ジョブを受け付けることで開始する（Ｓ１０１）。
【００３２】
プリンタ１０は１ページ目の印刷データの受信を開始し、イメージデータをＤＲＡＭ１６０に格納していく（Ｓ１０２）。なお、本実施形態では、印刷データの先頭部分には、そのページのデータサイズの情報が含まれているものとする。
【００３３】
印刷データの受信を開始すると、単位時間あたりの受信量を計測し、受信レートを算出する（Ｓ１０３）。そして、算出した受信レートに基づいて、フライングスタートの基準値を設定する（Ｓ１０４）。
【００３４】
ここで、フライングスタートの基準値の設定方法の一例について具体例を用いて説明する。本実施形態において、フライングスタートの基準値は、受信開始からの時間および受信データ量とする。以下では、前者を「基準時間」とし、後者を「基準データ量」と称する。
【００３５】
なお、ＤＲＡＭ１６０からデータを読み出して印刷エンジン２００に転送されるまでの時間Ｔは５秒間であるとする。この値は、プリンタの性能等により定められ、実測等によりあらかじめ知ることができる値であり、プリンタ１０に記録されているものとする。また、処理中のページのデータサイズＶは、２０４８ｋバイトであるとする。前述のように、本実施形態においてこの値は印刷データの先頭部分に含まれており、プリンタ１０が取得できる値である。
【００３６】
処理Ｓ１０３で測定された受信レートｘが、例えば、８０ｋバイト／秒であったとする。すると、処理中のページのデータを受信するためには、Ｖ／ｘ＝２０４８／８０＝２５．６（秒）かかることになる。
【００３７】
印刷エンジン２００に転送されるまでの時間Ｔは５秒間であるから、受信レートが変化しないとすると、受信を開始してから、２５．６−５＝２０．６（秒）後に印刷エンジン２００への転送を開始すれば、印刷が成功することになる。この２０．６秒を基準時間とする。
【００３８】
また、受信を開始してから基準時間が経過した時点での受信データ量は、受信レートが変化しないとすると、８０×２０．６＝１６４８（ｋバイト）となる。この１６４８ｋバイトを基準データ量とする。
【００３９】
受信レートが計測時から一定であるとすると、受信を開始してから基準時間を経過した時点、すなわち、基準データ量を受信した時点で、印刷エンジン２００への転送処理を開始すればよい。しかし、受信レートはネットワークのトラヒック等に応じて変化する可能性がある。そこで、プリンタ１０は、印刷データの受信を続け、受信を開始してからの経過時間（Ｓ１０５）および受信データ量（Ｓ１０６、Ｓ１０７）に基づいて以下の処理を行なうようにする。
【００４０】
すなわち、経過時間が基準時間に達せず（Ｓ１０５：Ｎ）、かつ、受信データ量が基準データ量に達していない（Ｓ１１０：Ｎ）場合には、データ受信を継続する。
【００４１】
経過時間が基準時間に達し（Ｓ１０５：Ｙ）、受信データ量が基準データ量に達した（Ｓ１１０：Ｙ）場合には、計測した受信レートとほぼ同じ値で印刷データを受信し続けていることを示しているので、予定どおり、基準時間で印刷エンジン２００への転送処理を開始する。
【００４２】
経過時間が基準時間に達し（Ｓ１０５：Ｙ）、受信データ量が基準データ量に達していない（Ｓ１０６：Ｎ）場合には、計測した受信レートより受信レートが悪化していることを示している。このため、予定どおりのフライングスタートを行なうと、印刷に失敗するおそれがある。このため、この時点でのフライングスタートを中止する。そして、それ以降の時刻、例えば、１ページ分の印刷データがＤＲＡＭ１６０に格納されるのを待って、印刷エンジン２００への転送処理を開始するようにする。
【００４３】
経過時間が基準時間に達せず（Ｓ１０５：Ｎ）、受信データ量が基準データ量に達した（Ｓ１１０：Ｙ）場合には、計測した受信レートより受信レートが向上していることを示している。このため、基準時間の経過を待たず、この時点で印刷エンジン２００への転送処理を開始するようにする。
【００４４】
１ページ分の印刷データを受信し終えると、印刷ジョブが終了したかどうかを判断し（Ｓ１０８）、印刷ジョブが終了した場合には、本処理を終了する。一方、印刷ジョブが終了していない場合には、次のページについて処理Ｓ１０２以降の処理を再度行なうようにする。
【００４５】
つぎに、図１に示した構成における本発明の第２の実施形態について説明する。第１の実施形態では、プリンタ１０がプリンタホスト３０から送信される印刷データのデータサイズを取得できることを前提とした。本実施形態は、プリンタ１０が印刷データのデータサイズを取得できない場合にも適用することができる。また、プリンタホスト３０における受信レートの計測も省くことができる。
【００４６】
本発明の第２の実施形態では、プリンタホスト３０が印刷データを生成すると、生成した印刷データ等に基づいて、フライングスタートの基準値を算出して、プリンタ１０に通知する。一方、プリンタ１０では、プリンタ１０から通知されたフライングスタートの基準値を調整して印刷エンジン２００への転送処理を開始する。
【００４７】
以下に、第２の実施形態の具体的な処理例を、図３のフロー図を参照して説明する。
【００４８】
プリンタドライバには、あらかじめ転送レートの予測値ｆが記録されている。この値は、従来のように、安全を見込んだ値とすることが望ましい。転送レートの予測値ｆは、プリンタ１０との伝送媒体等に応じて変えるようにしてもよい。ここでは、例えば、５０ｋバイト／秒が記録されているものとする。また、プリンタドライバには、プリンタ１０におけるＤＲＡＭ１６０からデータを読み出して印刷エンジン２００に転送するまでの時間Ｔが記録されている。ここでは、例えば、５秒が記録されているとする。
【００４９】
プリンタドライバは、プリンタ１０に出力する印刷データを生成すると（Ｓ２０１）、処理対象のページのデータサイズＶを取得する（Ｓ２０２）。ここでは、１０２４ｋバイトであったとする。なお、データサイズは、生成した印刷データに基づいて取得してもよいし、印刷データ生成のために中間的にスプールしたデータに基づいて取得するようにしてもよい。
【００５０】
そして、プリンタドライバは、このページについての基準時間と基準データ量とを以下に示すような方法で算出する（Ｓ２０３）。
【００５１】
まず、このページの転送予測時間を算出する。本例で、転送予測時間は、Ｖ／ｆ＝１０２４／５０＝２０．５（秒）となる。印刷エンジン２００に転送されるまでの時間Ｔは５秒間であるから、転送レートが予測値どおりであるとすると、受信を開始してから、２０．５−５＝１５．５（秒）後に印刷エンジン２００への転送を開始すれば、印刷が成功することになる。この１５．５秒を基準時間とする。
【００５２】
また、転送レートが予測値どおりであるとすると、受信を開始してから基準時間が経過した時点での受信データ量は５０×１５．５＝７７５（ｋバイト）となる。この７７５ｋバイトを基準データ量とする。
【００５３】
プリンタドライバは、印刷データをプリンタ１０に送信する際に、算出した基準時間および基準データ量をプリンタ１０に通知する（Ｓ２０４）。
【００５４】
基準時間および基準データ量を含む印刷データを受信したプリンタ１０は、印刷データを受信してからの経過時間および受信データ量との計測を開始する。そして、図２に示した処理（Ｓ１０５）以降の処理を行ない、受信を開始してからの経過時間（Ｓ１０５）および受信データ量（Ｓ１０６、Ｓ１０７）に基づいてフライングスタートを実行する。
【００５５】
すなわち、経過時間が基準時間に達せず（Ｓ１０５：Ｎ）、かつ、受信データ量が基準データ量に達していない（Ｓ１１０：Ｎ）場合には、データ受信を継続する。
【００５６】
経過時間が基準時間に達し（Ｓ１０５：Ｙ）、受信データ量が基準データ量に達した（Ｓ１１０：Ｙ）場合には、転送レートの予測値とほぼ同じ値で印刷データを受信していることを示しているので、予定どおり、基準時間で印刷エンジン２００への転送処理を開始する。
【００５７】
経過時間が基準時間に達し（Ｓ１０５：Ｙ）、受信データ量が基準データ量に達していない（Ｓ１０６：Ｎ）場合には、転送レートの予測値より実際の転送レートが低いことを示している。このため、予定どおりのフライングスタートを行なうと、印刷に失敗するおそれがある。このため、この時点でのフライングスタートを中止する。そして、それ以降の時刻、例えば、１ページ分の印刷データがＤＲＡＭ１６０に格納されるのを待って、印刷エンジン２００への転送処理を開始するようにする。
【００５８】
経過時間が基準時間に達せず（Ｓ１０５：Ｎ）、受信データ量が基準データ量に達した（Ｓ１１０：Ｙ）場合には、転送レートの予測値より実際の転送レートが高いことを示している。このため、基準時間の経過を待たず、この時点で印刷エンジン２００への転送処理を開始するようにする。
【００５９】
ところで、フライングスタートのタイミングの基準となる基準時間・基準データ量は、処理Ｓ２０３に示したように、転送レートの予測値ｆに基づいて算出される。ここで、実際の転送レート値は、プリンタ１０との伝送媒体の状態の他に、プリンタホスト３０の処理能力にも影響を受ける。
【００６０】
そこで、第２の実施形態の変形例として、プリンタホスト３０の処理能力に応じて転送レートの予測値を変更し、フライングスタートのタイミングを調整する場合を、図４のフロー図を参照して説明する。本例では、プリンタホスト３０の処理能力が転送レートの予測値ｆを定める際に想定している処理能力よりも高い場合には、より早いタイミングでフライングスタートを行なえるように、予測値ｆより高い値を転送レート予測値として基準時間・基準データ量を算出するようにする。一方、プリンタホスト３０の処理能力が転送レートの予測値ｆを定める際に想定している処理能力よりも低い場合には、より遅いタイミングでフライングスタートを行なえるように、予測値ｆより低い値を転送レート予測値として基準時間・基準データ量を算出するようにする。
【００６１】
第２の実施形態の変形例では、プリンタドライバは、プリンタ１０に出力する印刷データを生成すると（Ｓ３０１）、処理対象のページのデータサイズＶを取得する（Ｓ３０２）。ここまでは、第２の実施形態と同様である。
【００６２】
つぎに、プリンタドライバは、プリンタホスト３０の処理能力に関する情報（スペック）を取得する（Ｓ３０３）。スペックは、例えば、ＯＳに問い合わせることで取得することができる。ここで、取得するスペックは、ＣＰＵの種類、クロック周波数、搭載メモリ容量、空メモリ容量とする。ただし、これらは例示であり、これらに限られるわけではない。
【００６３】
そして、取得したプリンタホスト３０のスペックに基づいて転送レート予測値を変更する（Ｓ３０４）。予測値の変更については種々の方法を採用することができる。本実施形態では、ＣＰＵの種類、クロック周波数、搭載メモリ容量、空メモリ容量を点数化して、その合計値に基づいて転送レート予測値を変更するものとする。
【００６４】
図５は、プリンタホスト３０のスペックを点数化するためのテーブルの一例である。このテーブルは、あらかじめプリンタドライバに設定されているものとする。図５（ａ）では、ＣＰＵの種類とクロック周波数との組み合わせで点数を配分している。ここで、転送レートの予測値ｆを定める際に想定しているＣＰＵの種類とクロック周波数との組み合わせを０として、それよりも処理能力が高くなるほど点数が高くなり、それよりも処理能力が低くなるほど点数が低くなるように配点している。
【００６５】
また、図５（ｂ）では、搭載メモリ量に応じて配点を行ない、図５（ｃ）では、空きメモリ量に応じて配点を行なうようにしており、いずれも、転送レートの予測値ｆを定める際に想定している搭載メモリ量および空きメモリ量を０として、それよりもメモリ量が多くなるほど点数が高くなり、それよりもメモリ量が少なくなるほど点数が低くなるように配点している。
【００６６】
そして、これらの点の合計値から、合計値と割合との対応関係を定めた図５（ｄ）の表を参照して、転送レート予測値を変更する割合を取得する。
【００６７】
すなわち、合計値が０であれば、転送レートの予測値ｆを定める際に想定しているスペックとほぼ同様であるため、変更の割合は０となり、転送レート予測値は変更しない。
【００６８】
また、合計値が高くなるほど、転送レートの予測値ｆを定める際に想定しているスペックより高い処理能力であるとして、より高い値を、転送レート予測値とする。一方、合計値が低くなるほど、転送レートの予測値ｆを定める際に想定しているスペックより低い処理能力であるとして、より低い値を、転送レート予測値とする。なお、合計点がある基準値を下回った場合には、フライングスタートは行なわない設定とする。
【００６９】
そして、変更した転送レート予測値に基づいて、基準時間および基準データ量を算出し（Ｓ３０５）、印刷データとともに基準時間および基準データ量をプリンタ１０に送信する（Ｓ３０６）。これにより、プリンタホスト３０の処理能力に応じてフライングスタートのタイミングを調整することができるようになる。なお、プリンタホスト３０のスペックが高い場合には、基準時間が短くなり、プリンタ１０において物理的にフライングスタートが可能な時間を下回ってしまう場合が起こり得る。このような場合には、プリンタ１０が許容できる最短の時間を基準時間として取り扱うものとする。
【００７０】
また、プリンタ１０に出力する基準時間および基準データ量を表示するようにしてもよい。基準時間および基準データ量は、例えば、図６に示すような画面で表示することができる。本図の例では、基準時間および基準データ量に加え、ファイル名とデータ量とを表示して、ユーザに提示するようにしている。この場合、印刷システムがいわゆる双方向通信機能を備えているときには、プリンタ１０で実際に行なわれたフライングスタート時の受信データ量と受信時間とをプリンタドライバが取得し、取得した実際の値を併せて表示するようにしてもよい。なお、基準時間および基準データ量等の情報は、画面表示ではなく、プリンタ１０で印刷するようにしてもよい。
【００７１】
なお、第２の実施形態の変形例では、プリンタホスト３０のスペックに応じて転送レート予測値を変更することによりフライングスタータのタイミングを調整するようにしていた。これに対し、プリンタホスト３０のスペックに応じて、フライングスタートのタイミングを直接的に変更するようにしてもよい。
【００７２】
すなわち、従来、安全のために一律に設定されていたフライングスタートのタイミングをプリンタホスト３０のスペックに応じて前後に変更するようにする。例えば、フライングスタートのタイミングとして、一律に基準のデータ量Ａが定められていた場合に、プリンタホストの３０のスペックに応じて点数化された値から得られた割合に応じて基準のデータ量Ａを調整し、調整されたデータ量Ａをプリンタ１０に出力し、プリンタＡは、調整されたデータ量Ａを受信した段階でフライングスタートを開始するようにする。
【００７３】
さらに、上記第２の実施形態の変形例に代え、あるいは、変形例に加え、ユーザからフライングスタートのタイミングの調整の設定を受け付けるようにしてもよい。フライングスタートのタイミングの調整の設定は、例えば、図７に示すような画面上で受け付けることができる。
【００７４】
本図の例では、フライングスタートを行なうかどうかの指示も受け付けるようにしており、フライングスターを行なう場合には、上述の基準にしたがって算出した予測転送レートを補正するための指示を、スライドバー形式で受け付けるようにしている。もちろん、比率の数値等で受け付けるようにしてもよい。ここで、Ｍａｘは、プリンタ１０が許容できる最短の時間を基準時間として取り扱い、Ｍｉｎは、フライングスタートは行なわない設定とする。また、本図の例では、図６に示したようなフライングスタートの基準データ量を出力するかどうかの指示も受け付けるようにしている。
【００７５】
プリンタドライバは、本画面上で、フライング補正量の指示を受け付けた場合には、転送レートの予測値ｆあるいは変更後の転送レート予測値を受け付けた補正量にしたがって補正する。そして、補正後の転送レート予測値に基づいて、基準時間および基準データ量を算出し、印刷データとともにプリンタ１０に送信するようにする。
【００７６】
つぎに、図１に示した構成における本発明の第３の実施形態について説明する。本実施形態も、プリンタ１０が印刷データのデータサイズを取得できない場合にも適用することができる。
【００７７】
第３の実施形態においては、プリンタドライバには、あらかじめフライングスタートのタイミングに関する値として、固定値が記録されている。この固定値は、例えば、１ページ分のデータ量に対する割合とし、開発設計時のサンプル実験等に基づいて定めるようにする。なお、サンプル実験では、データサイズが大きく、ページ内においてデータのばらつきのないデータを用いることが望ましい。
【００７８】
本例では、固定値として９５％が記録されているものとする。すなわち、１ページ分のデータ量の９５％を受信した段階で、フライングスタートを開始する旨が示されている。１ページ分のデータ量に対する割合は、例えば、バンド数に換算することができる。
【００７９】
ここで、固定値の決定例について説明する。サンプル値として、転送レートを５０ｋバイト／秒、１ページ分のデータ量を５１２０ｋバイトとすると、データの転送時間は５１２０／５０＝約１０３（秒）となる。エンジンへの転送時間を５秒と想定すると、１０３−５＝９８（秒）分のデータ受信後に印刷エンジン２００への転送を開始すればよい。すなわち、固定値９８／１０３＝約９５％を得ることができる。
【００８０】
本実施形態では、プリンタドライバは、この固定値を用いてフライングスタートを行なうタイミングをバンド数で算出し、印刷データに含めてプリンタ１０に通知するようにする。このとき、１ページの全バンド数も含めて通知するようにする。
【００８１】
１ページのバンド数は、用紙サイズ、解像度等に応じて定まるが、ここでは、１ページが１２０バンドで構成されているとする。１２０の９５％は、およそ１１４であるから、プリンタドライバは、フライングスタートのタイミングとして、１２０バンド中の１１４バンドをプリンタ１０に通知する。
【００８２】
さらに、プリンタドライバには、あらかじめ転送レートの予測値ｆが記録されている。この値は、従来のように、安全を見込んだ値とすることが望ましい。また、固定値を求める際に用いた転送レートと同じ値としてもよい。さらに、転送レートの予測値は、プリンタ１０との伝送媒体等に応じて変えるようにしてもよい。ここでは、例えば、５０ｋバイト／秒が記録されているものとする。プリンタドライバは、この値も印刷データに含めてプリンタ１０に通知する。
【００８３】
一方、プリンタ１０は、プリンタホスト３０から送られた印刷データの受信を開始すると、第１の実施形態と同様に単位時間あたりの受信量を計測し、受信レートを算出する。
【００８４】
そして、算出した受信レートと通知された転送レートの予測値ｆとを比較する。
【００８５】
この結果、算出した受信レートと通知された転送レートの予測値ｆとがほぼ等しい場合には、プリンタドライバが算出したフライングスタートのタイミングを使用する。すなわち、フライングスタートのタイミングとして通知された１１４バンド分のデータを受信すると、印刷エンジン２００への転送処理を開始する。
【００８６】
残りのバンド数は予測転送レートの元で、エンジン転送時間中に受信可能と判断したバンド数となる。ここで、受信レートの増減率と、受信可能バンド数とは関係が有るものとしている。
【００８７】
算出した受信レートが通知された転送レートの予測値ｆよりも大きい場合には、プリンタドライバが算出したフライングスタートのタイミングより早いタイミングでフライングスタートを行なうようにする。この場合、タイミングの調整程度は、受信レートの予測値ｆに対する算出値の割合に応じた値とすることができる。
【００８８】
例えば、受信レートの予測値ｆが５０ｋバイト／秒であり、算出値が１００ｋバイト／秒であったとする。このとき、算出値は予測値ｆの２倍の値である。そこで、プリンタ１０から通知された１２０バンド中の１１４バンド、すなわち、６バンドが未受信の状態でフライングスタートを開始するというタイミングについて、２倍のバンド数、つまり、１２バンドが未受信の状態でフライングスタートを開始しても印刷が可能であると判断する。
【００８９】
したがって、プリンタ１０は、１２０−１２＝１０８（バンド）分のデータを受信した段階で印刷エンジン２００への転送処理を開始するようにする。
【００９０】
算出した受信レートが通知された転送レートの予測値ｆよりも小さい場合には、プリンタドライバが算出したフライングスタートのタイミングより遅いタイミングでフライングスタートを行なうようにする。この場合、タイミングの調整程度は、受信レートの予測値ｆに対する算出値の割合に応じた値とすることができる。
【００９１】
例えば、受信レートの予測値ｆが５０ｋバイト／秒であり、算出値が４０ｋバイト／秒であったとする。このとき、算出値は予測値ｆの０．８倍の値である。そこで、プリンタ１０から通知された１２０バンド中の１１４バンド、すなわち、６バンドが未受信の状態でフライングスタートを開始するというタイミングについて、０．８倍のバンド数、つまり、４バンド（６×０．８＝４．８の切り捨て）が未受信の状態でフライングスタートを開始しなければ印刷が失敗すると判断する。
【００９２】
したがって、プリンタ１０は、１２０−４＝１１６（バンド）分のデータを受信した段階で印刷エンジン２００への転送処理を開始するようにする。
【００９３】
第３の実施形態においても、第２の実施形態の変形例のように、プリンタホスト３０のスペックに応じて、フライングスタートのタイミングを調整することができる。
【００９４】
例えば、図５に示したテーブルから得られた点数に基づいて、転送レートの予測値ｆを変更する。また、上記に１例を示した９５％の固定値を変更するようにしてもよい。
【００９５】
なお、本発明は、上述の各実施形態の説明から明らかなように、プリンタホスト３０がプリンタ１０から処理状況に関する情報を取得する必要がない。このため、いわゆる双方向通信機能を備えない印刷システムにも効果的に適用することができる。
【図面の簡単な説明】
【００９６】
【図１】印刷システムの構成を示すブロック図。
【図２】第１の実施形態のプリンタにおける処理を説明するためのフロー図。
【図３】第２の実施形態のプリンタホストにおける処理を説明するためのフロー図。
【図４】第３の実施形態のプリンタホストにおける処理を説明するためのフロー図。
【図５】プリンタホストのスペックを点数化するためのテーブルの例を示す図。
【図６】基準時間および基準データ量を表示する画面を示す図。
【図７】フライングスタートのタイミング調整を受け付けるための画面を示す図。
【符号の説明】
【００９７】
１０…プリンタ、３０…プリンタホスト、１００…プリンタコントローラ、１１０…インタフェース回路、１２０…ＤＭＡコントローラ、１３０…データ伸長回路、１４０…ビデオコントローラ、１５０…ＣＰＵ、１６０…ＤＲＡＭ、１７０…ＲＯＭ、２００…印刷エンジン
【図１】
2005219477.tif 000003
【図２】
2005219477.tif 000004
【図３】
2005219477.tif 000005
【図４】
2005219477.tif 000006
【図５】
2005219477.tif 000007
【図６】
2005219477.tif 000008
【図７】
2005219477.tif 000009