(57)【要約】【課題】フライングスタートが可能な印刷装置であって、複数のページを連続印刷する際にも、適正な印刷を実行することのできる印刷装置等を提供する。【解決手段】ホスト装置から送信される画像データを受信し、当該受信した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う印刷装置が、受信した画像データを格納するデータ格納手段と、データ格納手段に格納された画像データを読み出して印刷エンジン側へ転送する手段であって、フライングスタートを、フライングスタートの対象としているページよりも先に印刷の処理がなされるページであって未だ印刷後の印刷媒体が印刷装置から排出されていない未排紙ページがある状態では行わずに、未排紙ページがない状態では所定のタイミングで行うデータ転送手段とを有する。【選択図】  図３
2005319648.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置から送信される画像データを受信し、当該受信した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う、印刷装置であって、
前記受信した画像データを格納するデータ格納手段と、
前記データ格納手段に格納された画像データを読み出して前記印刷エンジン側へ転送する手段であって、１ページ分の前記画像データの受信が完了する前に当該ページについての前記印刷エンジン側へのデータ転送を開始するフライングスタートを、フライングスタートの対象としているページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがある状態では、行わずに、前記未排紙ページがない状態では所定のタイミングで行う、データ転送手段とを有する
ことを特徴とする印刷装置。
【請求項２】
請求項１において、
前記データ転送手段によって行われるフライングスタートの前記所定のタイミングは、予め定められたタイミングが、当該フライングスタートの対象としているページの前記画像データ受信中に補正されたものである
ことを特徴とする印刷装置。
【請求項３】
ホスト装置から送信される画像データを受信し、当該受信した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う、印刷装置であって、
前記受信した画像データを格納するデータ格納手段と、
前記データ格納手段に格納された画像データを読み出して前記印刷エンジン側へ転送する手段であって、前記画像データを受信中のページについて、当該ページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがあるか否かに関わらず、前記印刷エンジン側へデータ転送を開始するタイミングであるか否かを判断し、前記データ転送を開始するタイミングであると判断された際に、前記未排紙ページがない場合には、前記データ転送を開始し、前記未排紙ページがある場合には、前記データ転送を開始せずに前記データ受信を継続して、前記未排紙ページがなくなった時点であるいは当該ページの前記データ受信が完了した後に前記データ転送を開始する、データ転送手段とを有する
ことを特徴とする印刷装置。
【請求項４】
ホスト装置から送信される画像データを受信して格納し、当該格納した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う印刷装置における、前記格納した画像データの前記印刷エンジンへのデータ転送方法であって、
１ページ分の前記画像データの受信が完了する前に当該ページについての前記印刷エンジン側へのデータ転送を開始するフライングスタートを、フライングスタートの対象としているページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがある状態では、行わずに、前記未排紙ページがない状態では所定のタイミングで行う
ことを特徴とするデータ転送方法。
【請求項５】
請求項４において、
前記フライングスタートが行われる前記所定のタイミングは、予め定められたタイミングが、当該フライングスタートの対象としているページの前記画像データ受信中に補正されたものである
ことを特徴とするデータ転送方法。
【請求項６】
ホスト装置から送信される画像データを受信して格納し、当該格納した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う印刷装置における、前記格納した画像データの前記印刷エンジンへのデータ転送方法であって、
前記画像データを受信中のページについて、当該ページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがあるか否かに関わらず、前記印刷エンジン側へデータ転送を開始するタイミングであるか否かを判断する第一のステップと、
前記第一のステップにおいて前記データ転送を開始するタイミングであると判断された際に、前記未排紙ページがない場合には、前記印刷エンジン側へのデータ転送を開始し、前記未排紙ページがある場合には、前記印刷エンジン側へのデータ転送を開始せずに前記データ受信を継続して、前記未排紙ページがなくなった時点であるいは当該ページの前記データ受信が完了した後に前記印刷エンジン側へのデータ転送を開始する第二のステップとを有する
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、いわゆるフライングスタートが可能な印刷装置等に関し、特に、複数のページを連続印刷する際にも適正な印刷を行うことのできる印刷装置等に関する。
【背景技術】
【０００２】
一般に、ページ単位で印刷処理を実行するいわゆるページプリンタにおいては、ホスト装置から送信される画像データを受信してメモリに格納する処理と、当該格納された画像データを読み出して印刷エンジンに転送する処理とが行われる。かかるページプリンタでは、印刷エンジンがページ単位の印刷処理を連続動作で実行するため、前記印刷エンジンへのデータ転送を開始した後は、ページの途中で当該データ転送を中止することができない。そのため、印刷エンジンに転送する画像データは読み出す際に既に受信されメモリに格納されている必要がある。
【０００３】
前記メモリに１ページ分の画像データが格納されるのを待ってから、当該ページについて印刷エンジンへの転送を開始するという方法を取ることにより、上述の条件は満たされ、印刷エンジンにおける印刷処理においてデータが間に合わないという事態は発生しないが、印刷エンジンでの印刷処理の開始時刻が遅くなるという問題がある。
【０００４】
そこで、１ページ分の画像データが格納されるのを待たずに、ある程度の画像データが格納された時点で印刷エンジンへの転送を開始する、いわゆるフライングスタートが従来より提案されている。かかるフライングスタートにより、印刷エンジンでの印刷処理の開始時刻を早めることができ、プリンタにおけるスループットを向上させることができる。
【０００５】
このフライングスタートのタイミングについては、印刷エンジンにおける印刷処理にデータが間に合わないという事態、即ち、転送すべき画像データがメモリに格納されていないことによる印刷の失敗（以降、アンダーランエラーと呼ぶ）が発生しない範囲で早い方がよく、かかるタイミングの決め方について幾つかの提案がなされている（例えば、下記特許文献１に記載の方法）。
【特許文献１】特許第３３１６３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したような従来提案されている方法では、フライングスタートのタイミングが、ホスト装置からプリンタへのデータ送信速度、印刷エンジンの処理速度、処理対象のページのデータサイズ等から決定されており、対象としているページの前のページに関しては考慮されていなかった。
【０００７】
一方、複数ページについて連続的に印刷が行われるような場合、ホスト装置からデータを受信中に、プリンタのメモリ内に受信中のページの前のページのデータが未だ残っている場合がある。かかる場合にデータの受信を継続すると、メモリの容量によっては、受信中のページのデータを全て受信する前にメモリが一杯となりデータ受信を継続できない事態となることもある。通常、このような場合には、一旦データ受信を中断し、前のページの印刷処理が終了して当該前のページのデータが格納されていたメモリの領域が開放された後に、データ受信を再開する。
【０００８】
このような状況が発生するプリンタにおいて、上述した従来のフライングスタート方式を用いると、前のページの処理状況が考慮されないので、フライングスタートをした後に前述したデータ受信の中断が発生する場合がある。この時、前のページについてメモリから印刷エンジンへのデータ転送処理が終了していなければ、上記フライングスタートによる対象ページのデータ転送処理は待機状態となるが、前のページの転送処理が終了した時点でこの対象ページの転送処理は開始される。しかしながら、この時点で、前のページの印刷処理が全て終了しているとは限らず、言い換えれば、前のページの排紙処理までが完了しているとは限らず、従って、前のページについて前述したメモリの開放が未だ実行されない場合がある。この場合には、前述の通り、対象ページについてのデータ受信が再開されないので、印刷エンジンへのデータ転送が開始されてもデータ受信が中断したままであるという状況が発生してしまう。前記フライングスタート方式は、データ転送開始時点でデータ受信が継続していることが前提とされるので、かかる状況では、データ転送にデータ受信が間に合わないアンダーランエラーが起こる可能性が高くなってしまう。
【０００９】
そこで、本発明の目的は、フライングスタートが可能な印刷装置であって、複数のページを連続印刷する際にも、適正な印刷を実行することのできる印刷装置等を提供することである。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明の一つの側面は、ホスト装置から送信される画像データを受信し、当該受信した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う、印刷装置が、前記受信した画像データを格納するデータ格納手段と、前記データ格納手段に格納された画像データを読み出して前記印刷エンジン側へ転送する手段であって、１ページ分の前記画像データの受信が完了する前に当該ページについての前記印刷エンジン側へのデータ転送を開始するフライングスタートを、フライングスタートの対象としているページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがある状態では、行わずに、前記未排紙ページがない状態では所定のタイミングで行う、データ転送手段とを有することである。従って、本発明によれば、前のページについて考慮したフライングスタートがなされるようになり、データ格納手段の容量によりデータ受信が中断されてしまうことに起因するアンダーランエラーをなくすことができ、複数のページが連続して処理される連続印刷の場合にも、適正な印刷ができるようになる。
【００１１】
更に、上記の発明において、その好ましい態様は、前記データ転送手段によって行われるフライングスタートの前記所定のタイミングは、予め定められたタイミングが、当該フライングスタートの対象としているページの前記画像データ受信中に補正されたものであることを特徴とする。これにより、フライングスタートの行われるタイミングがより正確のものとなり、エラーとなる危険性が少なくなるという効果を得られる。
【００１２】
上記の目的を達成するために、本発明の別の側面は、ホスト装置から送信される画像デ
ータを受信し、当該受信した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う、印刷装置が、前記受信した画像データを格納するデータ格納手段と、前記データ格納手段に格納された画像データを読み出して前記印刷エンジン側へ転送する手段であって、前記画像データを受信中のページについて、当該ページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがあるか否かに関わらず、前記印刷エンジン側へデータ転送を開始するタイミングであるか否かを判断し、前記データ転送を開始するタイミングであると判断された際に、前記未排紙ページがない場合には、前記データ転送を開始し、前記未排紙ページがある場合には、前記データ転送を開始せずに前記データ受信を継続して、前記未排紙ページがなくなった時点であるいは当該ページの前記データ受信が完了した後に前記データ転送を開始する、データ転送手段とを有することである。
【００１３】
上記の目的を達成するために、本発明の更に別の側面は、ホスト装置から送信される画
像データを受信して格納し、当該格納した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う印刷装置における、前記格納した画像データの前記印刷エンジンへのデータ転送方法において、１ページ分の前記画像データの受信が完了する前に当該ページについての前記印刷エンジン側へのデータ転送を開始するフライングスタートを、フライングスタートの対象としているページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがある状態では、行わずに、前記未排紙ページがない状態では所定のタイミングで行うことである。
【００１４】
更に、上記の発明において、その好ましい態様は、前記フライングスタートが行われる前記所定のタイミングは、予め定められたタイミングが、当該フライングスタートの対象としているページの前記画像データ受信中に補正されたものであることを特徴とする。
【００１５】
上記の目的を達成するために、本発明の更に別の側面は、ホスト装置から送信される画
像データを受信して格納し、当該格納した画像データに基づいて印刷エンジンが印刷媒体に印刷を行う印刷装置における、前記格納した画像データの前記印刷エンジンへのデータ転送方法が、  前記画像データを受信中のページについて、当該ページよりも先に前記印刷の処理がなされるページであって未だ印刷後の前記印刷媒体が前記印刷装置から排出されていない未排紙ページがあるか否かに関わらず、前記印刷エンジン側へデータ転送を開始するタイミングであるか否かを判断する第一のステップと、前記第一のステップにおいて前記データ転送を開始するタイミングであると判断された際に、前記未排紙ページがない場合には、前記印刷エンジン側へのデータ転送を開始し、前記未排紙ページがある場合には、前記印刷エンジン側へのデータ転送を開始せずに前記データ受信を継続して、前記未排紙ページがなくなった時点であるいは当該ページの前記データ受信が完了した後に前記印刷エンジン側へのデータ転送を開始する第二のステップとを有することである。
【００１６】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１８】
図１は、本発明を適用した印刷装置の実施の形態例に係る構成図である。図１に示すプリンタ２が本実施の形態例に係る印刷装置であり、ホストコンピュータ１から送信される印刷データにフライングスタートの設定がありそのタイミングになった場合でも、前のページについて排紙処理が終了していない場合にはフライングスタートを行わないことにより、連続印刷の場合にもアンダーランエラーを起さずに適正な印刷を行おうとするものである。
【００１９】
図１に示すホストコンピュータ１は、プリンタ２に対して印刷要求を行うホスト装置であり、いわゆるパーソナルコンピュータなどの汎用的なコンピュータで構成することができる。ホストコンピュータ１には、印刷要求元のアプリケーションと当該アプリケーションからの要求を受けてプリンタ２に送信する印刷データを生成するプリンタドライバが備えられている（双方とも図示せず）。このプリンタドライバでは、印刷する画像を、プリンタ２において使用される色（例えば、ＣＭＹＫ）によって表現した画像データとして生成し、生成した画像データにはページ毎に各種制御情報であるヘッダーを付加して前記印刷データを生成する。また、生成された印刷データは、圧縮された後にプリンタ２に送信される。
【００２０】
プリンタ２は、前記ホストコンピュータ１から送信される印刷データを受信して、ページ単位で印刷を実行するページプリンタであり、図１に示すように、コントローラ１０と印刷エンジン２０が備えられている。コントローラ１０は、前記印刷データを受信し、必要な加工を施した後に印刷エンジン２０に渡す一連の処理を行う回路として、Ｉ／Ｆ１１、ＤＭＡコントローラ１２（データ転送手段）、データ伸長回路１３、ビデオコントローラ１４を備えている。これらの処理回路は、例えば、ＡＳＩＣ等の専用ハードウェアロジック回路で構成することができる。
【００２１】
また、コントローラ１０は、本プリンタ２において行われる各種処理を制御するＣＰＵ１５（データ転送手段）、主に受信バッファメモリとして用いられるＤＲＡＭ１６（データ格納手段）、プログラム等を格納したＲＯＭ１７（データ転送手段）を備えており、それらは、図１に示すように、相互にデータ授受可能に接続されている。
【００２２】
まず、ホストコンピュータ１から送信される印刷データは、Ｉ／Ｆ１１で受信され、受信された印刷データに含まれる画像データは、ＤＭＡコントローラ１２によってＤＲＡＭ１６に転送されてＤＲＡＭ１６に格納される。格納された画像データは、所定のタイミングでＤＭＡコントローラ１２によりＤＲＡＭ１６から読み出されてデータ伸長回路１３に転送される。転送される画像データは、前述の通り、圧縮されているので、当該データ伸長回路１３において伸長の処理が実行され、それによりビデオデータが生成される。生成されたビデオデータは、ビデオコントローラ１４により、印刷エンジン２０からの垂直同期信号、水平同期信号に同期して印刷エンジン２０に送信される。印刷エンジン２０では、送信されたビデオデータに基づく印刷が実行され、紙などの印刷媒体に対する画像形成がなされる。
【００２３】
これらプリンタ２においてなされる一連の処理は、ＲＯＭ１７に記録されたプログラムに従ってＣＰＵ１５により制御される。図２は、ＲＯＭ１７に記録される上記プログラムを概念的に示した図である。本実施の形態例に係るプリンタ２では、前述した一連の処理を制御するために図２に示すような３つのプログラム（１）〜（３）が備えられている。
【００２４】
プログラム（１）は、プリンタ２が、ホストコンピュータ１からの画像データを受信し、一旦、ＤＲＡＭ１６に格納する処理、及び、その後、ＤＲＡＭ１６に格納した画像データを印刷エンジン２０側へ転送するタイミングを制御する、謂わばデータ転送制御に係るものである。また、プログラム（２）は、印刷実行時の印刷エンジン２０における給紙処理（印刷媒体の供給処理）を制御するものである。給紙処理は、前記プログラム（１）によって発せられる給紙処理の開始要求により起動し、まず、ＤＲＡＭ１６に格納された前記画像データを読み出してデータ伸長回路に引き渡す処理等を実行する。
【００２５】
また、プログラム（３）は、前記プログラム（２）を管理するプログラムであり、前記プログラム（１）による給紙処理の開始要求が発せられても、未だ前のページの給紙処理を行っていれば、当該給紙処理の開始要求によって起動するプログラム（２）は、プログラム（３）により待機状態となる。その後、前のページの給紙処理が終了すれば、プログラム（３）は、待機状態の次の給紙処理を開始するよう制御する。なお、本プリンタ２では、前記３つのプログラムがＲＯＭ１７に記憶され、ＣＰＵ１５によって実行されるものとしているが、プリンタ２が複数のＲＯＭとＣＰＵを有し、前記３つのプログラムがそれら複数のＲＯＭのいずれかに記憶され、それら複数のいずれかのＣＰＵで実行されるものでもよい。
【００２６】
本実施の形態例に係るプリンタ２は、以上説明した処理のうち、プログラム（１）によって制御されるデータ転送処理、即ち、印刷データを受信して格納し、所定のタイミングで印刷エンジン２０側への転送を指示（給紙処理の開始を要求）する処理に特徴を有し、以下、かかるデータ転送処理について具体的に説明する。図３は、１ページ分の印刷データについてのデータ転送処理の手順を例示したフローチャートである。
【００２７】
まず、ホストコンピュータ１から送信された印刷データについて、処理の対象とするページの印刷データの受信を開始する（ステップＳ１０）。図４は、受信する１ページ分の印刷データを説明するための図である。１ページ分の印刷データは、前述の通り、ヘッダーと画像データから成っており、画像を表現する画像データは、１ページを高さ方向に所定の間隔で分割した各領域であるバンドの単位で扱われる。このバンド毎に分割された画像データのことを、以降、バンドデータと呼ぶこととする。
【００２８】
図４に示す例では、バンドデータはＣＭＹＫの４色のデータで構成されているが、ホストコンピュータ１からプリンタ２に送信する順番により、図４の（Ａ）及び（Ｂ）に示す２通りの構成がある。図４の（Ａ）は、１ページについて、色毎に全てのバンドデータを送信していく、いわゆるプレーン順次による送信を行う場合に、プリンタ２が受信する印刷データの構成を示している。かかる場合には、例えば、図に示すように、１ページについて、まず、Ｃのバンドデータを全て受信し、その後、順次Ｍの全てのバンドデータ、Ｙの全てのバンドデータ、Ｋの全てのバンドデータを受信する。このプレーン順次による送受信は、印刷エンジン２０において１色毎に印刷処理を実行する４サイクルのページプリンタでフライングスタートを行う場合に用いられる。
【００２９】
一方、図４の（Ｂ）は、１バンド毎にその画像データを構成する全ての色のバンドデータを送信していく、いわゆるバンド順次による送信を行う場合に、プリンタ２が受信する印刷データの構成を示している。かかる場合には、例えば、図に示すように、最初のバンド内のＣのバンドデータ、Ｍのバンドデータ、Ｙのバンドデータ、Ｋのバンドデータが順次受信され、その後、同様に、後続のバンドについて順次バンドデータが受信される。このバンド順次による送受信は、印刷エンジン２０において各色の印刷処理を並行して行うタンデム式のページプリンタなどで用いられる。
【００３０】
なお、図４に示した例では、１バンド内の１色の画像データを１バンドデータとした場合に、１ページ分の画像データがｎのバンドデータで構成されるものとしている。また、バンドデータの前に付加されるヘッダーは、各種の制御情報を含んでおり、例えば、印刷する際の用紙サイズ、上記１ページの画像データを構成するバンドデータの数ｎ、フライングスタートのタイミングを示す転送処理開始タイミングｍなどの情報が含まれている。この転送処理開始タイミングとは、前述したプログラム（１）によって、当該受信中のページについての前記給紙処理を開始すべき要求を発するタイミングのことである。また、この例では、当該タイミングを受信したバンドデータの数で表現しており、転送処理開始タイミングｍとは、ｍ個のバンドデータを受信した時点で給紙処理の開始要求をすべきことを意味し、この値は、ホストコンピュータ１側において設定されているものとする。但し、この転送処理開始タイミングをホストコンピュータ１側で設定せずに、即ち、ヘッダーにｍの値を含めずに、転送処理開始タイミングをプリンタ２側で定めるようにすることもできる。
【００３１】
図３に戻って、処理対象のページについて印刷データの受信を開始すると、プリンタ２は、まず、前記ヘッダーの解釈を行う（ステップＳ２０）。そして、前述した制御情報を把握した上で、前述した、給紙処理を開始すべき要求を発するタイミングである、給紙処理開始タイミングに至っているか否かを判断する（ステップＳ３０）。通常の場合、ヘッダーを受信した直後に、給紙処理開始タイミングに至っている場合は少ないが、当該タイミングに至っている場合には（ステップＳ３０のＹｅｓ）、後述するステップＳ５０に処理が移行する。
【００３２】
一方、給紙処理開始タイミングに至っていない場合には（ステップＳ３０のＮｏ）、印刷データの受信を継続し、１つのバンドデータを受信する（ステップＳ４０）。その後、上記ステップＳ３０に戻って、再度、給紙処理開始タイミングに至っているか否かが判断される。そして、このステップＳ４０及びＳ３０が、給紙処理開始タイミングに至るまで繰り返し行われる。例えば、図４に示した例で、ｍ＝２０であれば、２０個のバンドデータが受信された時点で、給紙処理開始タイミングに至ったと判断される。また、ｍ＝ｎの場合には、そのページについて全てのバンドデータを受信した時点で、給紙処理開始タイミングに至ったと判断される。更に、ｍ＝０の場合には、ヘッダーを受信した直後に給紙処理開始タイミングに至ったと判断される。
【００３３】
なお、上述の図４に基づく判断は一例であって、他の方法で給紙処理開始タイミングについて判断することもできる。また、給紙処理開始タイミングの判断を行う指標も受信したバンドデータの数ではなく、受信時間や受信したデータのサイズとすることができる。かかる場合には、ステップＳ４０が、所定時間のデータ受信、あるいは、所定サイズのデータ受信という処理となる。
【００３４】
このようにして、給紙処理開始タイミングに至ると（ステップＳ３０のＹｅｓ）、まず、処理対象のページについて、全てのバンドデータを受信したか否かをチェックする（ステップＳ５０）。ここで、全てのバンドデータが受信されている場合には（ステップＳ５０のＹｅｓ）、当該ページについて給紙処理の開始要求を行う（ステップＳ６０）。そして、当該ページについてのプログラム（１）による処理を終了する。かかる場合には、前記給紙処理の開始要求を受けて、プログラム（２）により、当該ページについての給紙処理が開始され、ＤＲＡＭ１６から当該ページのバンドデータが読み出されるが、この時点で、全てのバンドデータがＤＲＡＭ１６に受信されているのでアンダーランエラーを起すことはない。また、前のページの給紙処理が終了しておらず、プログラム（３）により、当該ページの給紙処理が待機状態となっても、当該ページのバンドデータが全て受信されており、特に問題は発生しない。
【００３５】
一方、全てのバンドデータが受信されていない場合には（ステップＳ５０のＮｏ）、プリンタ２に未排紙のページがあるか否かがチェックされる（ステップＳ７０）。前述の通り、プリンタ２では、各ページの印刷処理が終了した後にそのページについてのバンドデータがＤＲＡＭ１６から消去される。より正確には、そのページについて、印刷が実行された用紙の排紙処理が終了した時点で、当該ページのバンドデータを格納していたＤＲＡＭ１６の領域が開放される。これは、バンドデータを印刷エンジン２０側に転送した後に、紙詰まりなどのトラブルが発生した場合に対処するためである。従って、前記未排紙のページの有無は、処理対象のページよりも前のページについてのバンドデータが、ＤＲＡＭ１６から消去されてもよいか否かを意味するものである。
【００３６】
ここで、未排紙のページがない場合は（ステップＳ７０のＮｏ）、当該ページについての給紙処理の開始要求を行う（ステップＳ９０）。即ち、フライングスタートを行う。そして、当該ページの未だ受信していない残りのバンドデータの受信を継続し、全てのバンドデータを受信した時点で（ステップＳ１００）、当該ページについてのプログラム（１）による処理を終了する。かかる場合には、処理対象のページ以前のページについてのバンドデータは、ＤＲＡＭ１６から消去可能な状態となっているので、通常の場合、当該ページについてのデータ受信がＤＲＡＭ１６が満杯になることによって中断されることはなく、フライングスタートを行ってもアンダーランエラーを起す危険は少ない。
【００３７】
一方、未排紙のページが有る場合には（ステップＳ７０のＹｅｓ）、既に給紙処理の開始タイミングに達しているが、給紙処理の開始要求を出さずに、次の１つのバンドデータを受信する（ステップＳ８０）。そして、再びステップＳ５０に処理が移行する。なお、このステップＳ８０は、ステップＳ４０と同様に、所定時間のデータ受信、あるいは、所定サイズのデータ受信という処理でもよい。
【００３８】
その後、当該ページについて全てのバンドデータを受信するか、未排紙のページがなくなるまで、ステップＳ８０、Ｓ５０、及びＳ７０が繰り返される。なお、ステップＳ８０において、前のページについてのバンドデータがＤＲＡＭ１６から消去できず、もはやデータ受信を継続できなくなった場合には、前述の通り、当該処理が中断される。そして、前のページの排紙処理が終了した後に再開される。かかる場合には、その後のステップＳ７０において、未排紙のページがない状態となるので、ステップＳ９０に移行して、フライングスタートがなされることになる。
【００３９】
このように、給紙処理開始タイミングになっていても、未排紙のページが有る場合には（ステップＳ７０のＹｅｓ）、フライングスタートは行われないので、フライングスタート後にＤＲＡＭ１６が満杯となって受信が中断しアンダーランエラーを起すことはない。
【００４０】
図５は、以上説明した処理が行われる場合のＤＲＡＭ１６内の状態を模式的に例示した図である。図５の（Ａ）に示すように、図５に示す四角はＤＲＡＭ１６の容量を模式的に示しており、また、処理対象のページのデータは、当該システム各ノズル上端からａａで示す位置までの容量を有しているものとする。
【００４１】
まず、図５の（Ａ）の場合は、対象のページについてａで示す位置までデータの受信がされた際に給紙処理開始タイミングになり、かつ、未排紙のページがない状態であり、かかる場合には、前述した図３のステップＳ９０へ処理が移行するので、このタイミングでフライングスタートがなされる。
【００４２】
次に、図５の（Ｂ）の場合は、対象のページについてｂで示す位置までデータの受信がされた際に給紙処理開始タイミングになり、かつ、未排紙のページが有る状態である。ここで、対象ページのデータ受信量は図５の（Ａ）に示した場合と同じである。従って、前のページについて考慮しないフライングスタートの方式では、この時点でフライングスタートするが、本プリンタ２では、前述のように、フライングスタートせず、データ受信を継続する（図３のスタートＳ８０）。
【００４３】
その後、前のページについての排紙処理が終了しないままデータ受信が継続され、ＤＲＡＭ１６が満杯になった状態が、図５の（Ｃ）に示されている。バンドデータの受信を続け、図のｃに示す位置までデータが受信されると、前述の通り、データ受信が一旦中断される。その後、前のページが排紙された後にＤＲＡＭ１６に新たなデータを格納することが可能となるのでデータ受信が再開される。
【００４４】
図５の（Ｄ）は、そのデータ受信が再開された状態を示している。データ受信が再開され１つのバンドデータを受信し、図のｄに示す位置に達した時点で、既に未排紙のページはないので、この時点で図３のステップＳ９０へ処理が移行し、フライングスタートがなされる。
【００４５】
また、図５の（Ｅ）に示す例は、対象ページのデータサイズが図５の（Ａ）の場合より小さい場合であり、図５の（Ｂ）の場合と同様に、給紙処理開始タイミングに至った後も、前のページの排紙処理が終了していないのでフライングスタートがなされないでデータ受信が継続されるが、図に示すｅに示す位置までデータを受信した際に対象ページのデータ受信を全て終了してしまう。従って、図３のステップＳ６０に処理が移行して、この時点で給紙処理開始の要求がなされる。
【００４６】
以上説明したように、本実施の形態例に係るプリンタ２では、前のページについて考慮しなければフライングスタートできるタイミングになっていても、前のページについての排紙処理が終了していない場合には、フライングスタートせずにデータ受信を継続する。そして、前のページの排紙処理が終了した時点で、言い換えれば、未排紙のページがなくなった時点で、フライングスタートを行う。従って、フライングスタートをした後に、ＤＲＡＭ１６にデータを格納できなくなりデータ受信が中断されることに起因するアンダーランエラーをなくすことができる。また、前のページの排紙処理が終了している場合及び終了した後は、フライングスタートがなされるので、フライングスタートによる効果を享受することができる。このように、本プリンタ２により、複数のページが連続して処理される連続印刷の場合にも、問題を起さずに適正なフライング印刷が可能となる。
【００４７】
図６は、本プリンタ２においていわゆる２アップ印刷を行った場合のＤＲＡＭ１６の状態を例示した図である。ここで、２アップ印刷とは、印刷媒体（用紙）の１枚に２ページ分の印刷を行うことを意味している。２アップ印刷の可能性があると判断された場合には、２アップ印刷の１ページ目のバンドデータの受信が完了しても給紙処理の開始をせずに、２ページ目のバンドデータが受信されるのを待つ制御が行われる。そして、２ページ目のバンドデータの受信中には、図３に基づいて説明した前述の処理が行われる。
【００４８】
まず、２ページ目のバンドデータの受信開始後、２ページ目に設定される給紙処理開始タイミングになるまでデータ受信が行われる（図３のステップＳ３０及びＳ４０）。この時点でのＤＲＡＭ１６内の状態が図６の（Ａ）に示されている。かかる状態では、１ページ目のバンドデータは全て受信されており、２ページ目についてはＡに示す位置まで受信されている。ここで、２ページ目に対して設定された給紙処理開始タイミングになっているので処理が図３のステップＳ５０に移行するが、未だ２ページ目のデータ受信を完了していないとすると、処理がステップＳ７０に移行する。
【００４９】
ここで、当然、１ページ目については排紙処理が終了していないので、処理がステップＳ８０に移行し、２ページ目のデータ受信が継続される。即ち、この時点では給紙処理が開始されない。その後、ＤＲＡＭ１６が満杯になるまでデータ受信がなされ、図６の（Ｂ）に示すような状態となる。このＢの位置まできた時点で、もはやデータ受信を継続できないのでデータ受信が中断される。そして、このままの状態で予め定められた時間が経過すると、プリンタ２は、２ページ目のデータが揃わないと判断して２アップ印刷を諦め、１ページずつの印刷に切り換える。従って、その後、１ページ目についてのみの給紙処理が開始され、１ページ目についての排紙処理が終了すると、２ページ目のデータ受信が再開される。そして、図３のステップＳ８０に基づいて１つのバンドデータが受信されると、図６の（Ｃ）に示すような状態となる。このＣに示す位置まできた時点では、もはや１ページ目については排紙処理が終了しているので、未排紙のページはないと判断され、図３のステップＳ９０に移行して、２ページ目についての給紙処理が開始される。従って、２ページ目については、フライングスタートがなされる。
【００５０】
一方、前述したように、図６の（Ａ）に示した状態の後にデータ受信を継続した際に、ＤＲＡＭ１６が満杯になる前に、２ページ目のデータ受信が完了した場合には、即ち、図６の（Ｄ）に示すＤの位置で２ページ目のデータが完了していれば、この時点で、図３のステップＳ６０に従って、給紙処理が開始される。この場合には、１ページ目と２ページ目による２アップ印刷が行われることになる。
【００５１】
このように、本プリンタ２においては、２アップ印刷が可能で、かつ、フライングタイミングが設定されている場合にも、アンダーランエラーを起さずに印刷を実行でき、また、データのサイズによっては、２アップ印刷を行うことができる。また、２アップ印刷ができなかった場合の２ページ目については、フライングスタートが可能であり、フライングスタートの効果を得られる。
【００５２】
次に、前述した給紙処理開始タイミングに至ったか否かの判断（図３のステップＳ３０）についての、一つの具体例を説明する。図７は、給紙処理開始タイミングの判断処理の一例を示したフローチャートである。図７に示す処理内容は、図３のステップＳ３０を具体化したものである。また、この具体例では、図４に示したように、給紙（転送）処理開始タイミングのバンド数ｍが、ホストコンピュータ１側で設定され、プリンタ２に送信される印刷データのヘッダーに含まれているものとする。
【００５３】
まず、印刷データの受信開始後、ヘッダーの解釈（ステップＳ２０）が終了すると、設定されていた給紙処理開始タイミングであるｍ個のバンドデータを受信したか否かがチェックされ（ステップＳ３１）、ｍ個のバンドデータを受信するまでバンドデータの受信（ステップＳ４０）が繰り返される。
【００５４】
そして、ｍ個のバンドデータを受信すると（ステップＳ３１のＹｅｓ）、プリンタ２は、受信速度の算出を行う（ステップＳ３２）。図８は、給紙処理開始タイミングを説明するためのタイムチャートである。図８の（１）における実線部分が、対象ページのバンドデータの受信を開始してから前記ｍ個のバンドデータを受信するまでを示している。上記受信速度の算出は、この間に受信したデータのサイズＳ０をこの間の受信時間Ｔ０で割ることによって求める。
【００５５】
次に、この時点までに受信したバンドデータの平均のサイズを求める（ステップＳ３３）。前述したように、バンドデータはホストコンピュータ１側で圧縮された後に送信されるので、データの内容により、バンドデータ毎にサイズが異なる。１バンドデータの平均サイズは、前記これまでに受信したデータサイズＳ０をｍで割ることによって求められる。図８に示す例では、対象ページのバンドデータの数ｎが１００であり、ヘッダーに設定された給紙処理開始タイミングｍが２５であるとしている。従って、この例においては、Ｓ０を２５で割ることとなる。
【００５６】
次に、対象ページの未だ受信していない残りのバンドデータのサイズＳ１を予測する（ステップＳ３４）。かかる残りのデータサイズＳ１は、上記求めた１バンドデータの平均サイズに残りのバンドデータの数を乗ずることによって求める。図８に示した例では、Ｓ０÷２５×（１００−２５）の値がＳ１となる。そして、この求めた残りのデータサイズＳ１を受信するのに要する時間Ｔ１を予測する（ステップＳ３５）。具体的には、残りのデータサイズＳ１を前記ステップＳ３２で求めた受信速度で割ることによってこの受信時間Ｔ１を求める。
【００５７】
その後、プリンタ２は、当該予測した受信時間Ｔ１と、ＤＲＡＭ１６に格納されたバンドデータ１ページ分を印刷エンジン２０側へ転送する時間Ｔ２とを比較する（ステップＳ
３６）。この転送時間Ｔ２は、より正確に言えば、プログラム（１）に基づいて給紙処理開始の要求が発せられ、それに基づいてプログラム（２）による給紙処理が待機状態となることなく起動した際の、ＤＲＡＭ１６からのバンドデータ１ページ分の読み出し開始時点から読み出し終了時点までの時間のことを意味する。なお、この転送時間Ｔ２は、１ページのバンドデータ数に定数を乗じた値であり、印刷データのヘッダーに含まれるｎの値を用いて容易に求めることができる。
【００５８】
上記受信時間Ｔ１と転送時間Ｔ２との比較において、受信時間Ｔ１の方が小さければ（ステップＳ３６のＹｅｓ）、プログラム２は、この時点で給紙処理開始タイミングに至ったと判断し、処理が前述したステップＳ５０に移る。一方、図８の（２）に示すように、転送時間Ｔ２の方が小さければ（ステップＳ３６のＮｏ）、未だ給紙処理開始タイミングに至っていないと判断し、ｍの値を補正する（ステップＳ３７）。この際、当然にｍの値がこれまでの値よりも大きい値へと更新されるが、この補正には様々な手法を取ることができる。
【００５９】
図８の（３）に示すように、図８の例では、この時点で、受信時間Ｔ１が転送時間Ｔ２よりも小さくなると予想される時点は、例えば、５５のバンドデータを受信した時点と判断される。このような場合に、このｍ'＝５５の値を新たなｍの値とする補正を行うことができる。また、ｍ'に関係なく、ある所定の値を加えることでｍの値を補正することもできる。図８の例では、例えば、ｍ＝２５に１０を加えてｍの値を３５に更新する。この方法の場合には、ｍの値を更新後、再度ステップＳ３６においてＮｏとなり値の更新が必要となる度に、前記所定の値（例えば、１０）が都度追加されることになる。
【００６０】
更にまた、上記ｍ'の値と、２ｍの値、即ち、最初に設定されたｍの値を更に加えた値（ｍ＋ｍ）を比較し、小さい方の値に更新するというようにすることもできる。図８の例では、図８の（３）に示すように、２ｍの値の方が小さいので、ｍの値が５０に更新される。この方法では、その後、ｍの値の更新が必要になる度に、その時のｍの値に最初に設定されたｍの値（本具体例では、ヘッダーに設定されていた値）を追加した値と、その時点での前記ｍ'の値が比較されて小さい値の方が選択される。
【００６１】
このように、ｍの値が更新されると、処理がステップＳ４０に移行し、更新されたｍの数のバンドデータを受信するまでバンドデータの受信が行われる。そして、更新されたｍの数のバンドデータを受信すると（ステップＳ３１のＹｅｓ）、前述したステップＳ３２からの処理が行われる。以降、受信時間Ｔ１が転送時間Ｔ２よりも小さいと判断されるまで、同様の処理が繰り返し実行される。
【００６２】
以上説明したように、図７に基づいて説明した具体例では、データの受信中に、それまでの受信状況に基づいて、設定されている給紙処理開始タイミングが適正であるか否かが繰り返しチェックされる。従って、精度の高い給紙処理開始タイミングに基づいてフライングスタートがなされ、アンダーランエラーなどの問題を起す危険性が小さくなる。また、前述した、ｍの更新処理（ステップＳ３７）において、前記ｍ'の値、即ち、その時点で受信時間Ｔ１が転送時間Ｔ２よりも小さくなると予想される時点まで、一気にｍの値を大きくしてしまわないことにより、問題のないフライングスタートを少しでも早く行うことが可能となり、プリンタ２におけるスループットの向上を図ることができる。通常、ホストコンピュータ１からの１ページ分の印刷データの送信処理において、その前半においては、送信するデータの圧縮処理、ホストコンピュータ１内への格納処理、及びプリンタ２への送信処理が並行して行われるが、その後半においては、格納されたデータをプリンタ２へ送信する処理だけが行われる。従って、プリンタ２におけるデータ受信処理も、通常、１ページ分の始めの方よりも後の方が速く行われる。これにより、前述したｍ'の値よりも小さい値に更新してフライングスタートのタイミングをチェックすることの効果が得られることになる。
【００６３】
以上説明したように、本実施の形態例に係るプリンタ２を用いることにより、前のページについて考慮したフライングスタートがなされ、ＤＲＡＭ１６の容量によりデータ受信が中断されてしまうことに起因するアンダーランエラーをなくすことができ、複数のページが連続して処理される連続印刷の場合にも、適正な印刷ができるようになる。
【００６４】
なお、本発明は、いわゆる４サイクルのページプリンタ及びタンデム式のページプリンタの両方に適用することができる。
【００６５】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００６６】
【図１】本発明を適用した印刷装置の実施の形態例に係る構成図である。
【図２】ＲＯＭ１７に記録されるプログラムを概念的に示した図である。
【図３】データ転送処理の手順を例示したフローチャートである。
【図４】受信する１ページ分の印刷データを説明するための図である。
【図５】ＤＲＡＭ１６内の状態を模式的に例示した図である。
【図６】２アップ印刷を行った場合のＤＲＡＭ１６の状態を例示した図である。
【図７】給紙処理開始タイミングの判断処理の一例を示したフローチャートである。
【図８】給紙処理開始タイミングを説明するためのタイムチャートである。
【符号の説明】
【００６７】
１  ホストコンピュータ、  ２  プリンタ、  １０  コントローラ、  １１  Ｉ／Ｆ、  １２  ＤＭＡコントローラ（データ転送手段）、  １３  データ伸長回路、  １４  ビデオコントローラ、  １５  ＣＰＵ（データ転送手段）、  １６  ＤＲＡＭ（データ格納手段）、  １７  ＲＯＭ（データ転送手段）、  ２０  印刷エンジン
【図１】
2005319648.tif 000003
【図２】
2005319648.tif 000004
【図３】
2005319648.tif 000005
【図４】
2005319648.tif 000006
【図５】
2005319648.tif 000007
【図６】
2005319648.tif 000008
【図７】
2005319648.tif 000009
【図８】
2005319648.tif 000010