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