(57)【要約】      （修正有）【課題】ホスト装置の処理パフォーマンスと印刷装置のスループットとのバランスを考慮して効率の良いデータ転送を行うことのできるドライバプログラム等を提供する。【解決手段】ドライバプログラムが、１ページ分の画像データの印刷装置への転送を行う際に、当該１ページ分の画像データ量が予め定められた第一の量よりも小さい場合には、バンド順次の転送により１ページ分の画像データを印刷装置へ転送し、１ページ分の画像データ量が第一の量以上であり、第一の量よりも大きい予め定められた第二の量よりも小さい場合には、プレーン順次の転送により１ページ分の画像データを印刷装置へ転送し、１ページ分の画像データ量が第二の量以上である場合には、バンド順次の転送とプレーン順次の転送を混在させて１ページ分の画像データを印刷装置へ転送する、処理を前記ホスト装置に実行させる。【選択図】  図２
2005339160.tif 000002
【特許請求の範囲】
【請求項１】
複数色のデータから成る画像データを生成して当該画像データを印刷装置に転送する処理を、ホスト装置に実行させるドライバプログラムであって、
１ページ分の前記画像データの前記印刷装置への転送を行う際に、
当該１ページ分の画像データ量が予め定められた第一の量よりも小さい場合には、色に関わらず前記１ページ分の画像データを所定の高さで区分したバンドの順番に従ってデータの転送を行うバンド順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、
前記１ページ分の画像データ量が前記第一の量以上であり、前記第一の量よりも大きい予め定められた第二の量よりも小さい場合には、前記バンドに関わらず色の順番に従ってデータの転送を行うプレーン順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、
前記１ページ分の画像データ量が前記第二の量以上である場合には、前記バンド順次の転送と前記プレーン順次の転送を混在させて、前記１ページ分の画像データを前記印刷装置へ転送する、処理を前記ホスト装置に実行させる
ことを特徴とするドライバプログラム。
【請求項２】
請求項１において、
前記バンド順次の転送とプレーン順次の転送を混在させて転送する処理が、
前記バンド順次の転送により、前記複数色の全色あるいは一部の色のデータを前記印刷装置に転送すると共に、当該転送が前記一部の色のデータについてなされた場合には、転送されなかった色のデータを前記ホスト装置に蓄積する第一の工程と、
前記第一の工程で蓄積されたデータを、前記プレーン順次の転送により前記印刷装置に転送する第二の工程とを有し、
前記第一の工程でデータが転送される色の数が、所定のタイミングで、前記ホスト装置に蓄積される各色のデータの容量が前記印刷装置において先に用いられる色の方が小さくなるように、変化する
ことを特徴とするドライバプログラム。
【請求項３】
ホスト装置において生成された複数色のデータから成る画像データを印刷装置に転送するデータ転送方法であって、
１ページ分の前記画像データの前記印刷装置への転送を行う際に、
当該１ページ分の画像データ量が予め定められた第一の量よりも小さい場合には、色に関わらず前記１ページ分の画像データを所定の高さで区分したバンドの順番に従ってデータの転送を行うバンド順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、
前記１ページ分の画像データ量が前記第一の量以上であり、前記第一の量よりも大きい予め定められた第二の量よりも小さい場合には、前記バンドに関わらず色の順番に従ってデータの転送を行うプレーン順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、
前記１ページ分の画像データ量が前記第二の量以上である場合には、前記バンド順次の転送と前記プレーン順次の転送を混在させて、前記１ページ分の画像データを前記印刷装置へ転送する
ことを特徴とするデータ転送方法。
【請求項４】
請求項３において、
前記バンド順次の転送とプレーン順次の転送を混在させて転送する処理が、
前記バンド順次の転送により、前記複数色の全色あるいは一部の色のデータを前記印刷装置に転送すると共に、当該転送が前記一部の色のデータについてなされた場合には、転送されなかった色のデータを前記ホスト装置に蓄積する第一の工程と、
前記第一の工程で蓄積されたデータを、前記プレーン順次の転送により前記印刷装置に転送する第二の工程とを有し、
前記第一の工程でデータが転送される色の数が、所定のタイミングで、前記ホスト装置に蓄積される各色のデータの容量が前記印刷装置において先に用いられる色の方が小さくなるように、変化する
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置側で画像データを生成し当該画像データを印刷装置に転送する処理を、ホスト装置に実行させるドライバプログラム等に関し、特に、ホスト装置側に蓄積すべきデータ量と印刷装置側での印刷開始タイミングの両面を考慮して、効率の良い前記画像データの転送を行うことのできるドライバプログラム等に関する。
【背景技術】
【０００２】
通常、紙などの印刷媒体に印刷を実行する印刷システムにおいては、パーソナルコンピュータなどのホスト装置から印刷データを送信し、当該印刷データを受信した印刷装置が当該印刷データに基づいて上記印刷を実施する。そして、印刷が完了するまでの間に、前記印刷データについては、ホスト装置のアプリケーションから発せられる印刷要求のデータを画素毎の色の濃度値で表した画像データとする処理、当該画像データの色表現を印刷装置における色表現に変換する処理、当該色変換後のデータをドットのイメージとする処理等が行われる。
【０００３】
このような印刷システムにおいて、近年、上記色変換の処理までをホスト装置側で行わせる所謂ホストベースの処理が行われるようになっており、かかる場合には、色変換後の画像データがホスト装置側で圧縮された後に印刷装置側へ送信され、印刷装置側では、受信したデータを解凍した後に使用する。また、ホスト装置から送信する画像データの圧縮処理では、通常、印刷媒体１面分の範囲を高さ方向に所定長さで分割したバンドという領域ごとに処理が行われる。例えば、上記色変換後の画像データが、Ｙ（イエロー）、Ｍ（マゼンダ）、Ｃ（シアン）、Ｋ（ブラック）で表現されている場合には、当該４色のデータを含む画像データがバンド単位で順次圧縮処理され、印刷装置への送信が可能な状態となる。
【０００４】
このように圧縮処理が行われた後の印刷装置へのデータ転送については、従来、幾つかの方法でなされていた。その一つの方法は、前述した圧縮処理の順番に従って、圧縮が終了したバンドの画像データから順次印刷装置へ送信するものである。このように、画像データの色に関わらずバンドの順番に従ってデータを送信することを、以降、バンド順次のデータ転送と呼ぶこととする。印刷装置が、例えば、４サイクルのレーザープリンタ等のように、印刷媒体の１ページについて１色毎に印刷処理を行う装置では、少なくとも1色目の当該印刷処理にその色の画像データが間に合うように画像データの受信をしなければならない。通常の場合、当該1色目の画像データを概ね全て受信してからでないと当該印刷処理、即ち、当該ページの印刷処理を開始できない。前記バンド順次により、圧縮が終了したバンドの画像データ（全色分）から順次印刷装置へ送信する方法では、処理対象のページについて前記1色目の画像データが全て印刷装置に受信されるのは、当該ページの画像データが全て印刷装置に受信されるタイミングとほぼ同じとなる。従って、かかるデータ転送方法では、処理対象のページについて印刷処理を早い時期に開始することができない。
【０００５】
また、他のデータ転送方法として、バンド毎に圧縮処理される画像データをホスト装置側に蓄積しながら、１ページ分の画像データについて、印刷装置で前記印刷処理が行われる色の順番で印刷装置へのデータ転送を行っていく方法がある。例えば、画像データがＹＭＣＫ４色のデータから構成される場合には、１ページ分の画像データのうち、まず、Ｙのデータを全て転送し、その後、Ｍの全てのデータ、Ｃの全てのデータ、Ｋの全てのデータと順次転送していく。このように、1ページ分の画像データをバンドの順番に関わらず色の順番で送信していくことを、以降、プレーン順次のデータ転送と呼ぶこととする。かかる方法は、例えば、下記特許文献１に記載の装置などで採用されている。印刷装置が、４サイクルのレーザープリンタ等であり、１ページ毎に１色ずつ印刷処理を遂行する装置の場合には、前述した、１ページ分の画像データについて印刷処理が行われる色の順番で印刷装置へのデータ転送を行っていく方法を採用すると、当該データ転送中の早い段階で当該ページについての印刷処理を開始することが可能となる。なお、このように、１ページ分の画像データを全て受信する前に当該ページについての印刷処理を開始することをフライングスタートと呼ぶこととする。
【特許文献１】特開２００２−２３６５６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、前述したバンド順次により、常に圧縮が終了したバンドの画像データ（全色分）から順次印刷装置へ送信するという方法を採用すると、前述したように、面順次で処理を行う印刷装置の場合には、早い時点でのフライングスタートができず、印刷装置におけるスループットを向上できないという課題がある。
【０００７】
また、前述したプレーン順次により、常に１ページ分の画像データについて印刷処理が行われる色の順番で印刷装置へのデータ転送を行っていく方法を採用すると、早い時点でのフライングスタートが可能となるが、１ページ分の画像データの大部分をホスト装置に一旦蓄積する必要があり、そのためにホスト装置のメモリ（ＲＡＭ等）が使用されることとなって、ホスト装置の処理パフォーマンスを低下させてしまう可能性がある。
【０００８】
そこで、本発明の目的は、ホスト装置側で画像データを生成し当該画像データを印刷装置に転送する処理を、ホスト装置に実行させるドライバプログラムであって、ホスト装置の処理パフォーマンスと印刷装置のスループットとのバランスを考慮して効率の良いデータ転送を行うことのできるドライバプログラム等を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明の一つの側面は、複数色のデータから成る画像データを生成して当該画像データを印刷装置に転送する処理を、ホスト装置に実行させるドライバプログラムが、１ページ分の前記画像データの前記印刷装置への転送を行う際に、当該１ページ分の画像データ量が予め定められた第一の量よりも小さい場合には、色に関わらず前記１ページ分の画像データを所定の高さで区分したバンドの順番に従ってデータの転送を行うバンド順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、前記１ページ分の画像データ量が前記第一の量以上であり、前記第一の量よりも大きい予め定められた第二の量よりも小さい場合には、前記バンドに関わらず色の順番に従ってデータの転送を行うプレーン順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、前記１ページ分の画像データ量が前記第二の量以上である場合には、前記バンド順次の転送と前記プレーン順次の転送を混在させて、前記１ページ分の画像データを前記印刷装置へ転送する、処理を前記ホスト装置に実行させることである。従って、本発明によれば、印刷装置に送信するデータのサイズによって適切なデータ転送方法が選択され、ホスト装置の処理パフォーマンスと印刷装置のスループットとを考慮した効率の良いデータ転送を行うことができる。
【００１０】
更に、上記の発明において、その好ましい態様は、前記バンド順次の転送とプレーン順次の転送を混在させて転送する処理が、前記バンド順次の転送により、前記複数色の全色あるいは一部の色のデータを前記印刷装置に転送すると共に、当該転送が前記一部の色のデータについてなされた場合には、転送されなかった色のデータを前記ホスト装置に蓄積する第一の工程と、前記第一の工程で蓄積されたデータを、前記プレーン順次の転送により前記印刷装置に転送する第二の工程とを有し、前記第一の工程でデータが転送される色の数が、所定のタイミングで、前記ホスト装置に蓄積される各色のデータの容量が前記印刷装置において先に用いられる色の方が小さくなるように、変化することを特徴とする。これにより、バンド順次とプレーン順次を混在させて印刷装置へのデータ転送を行う際に、フライングスタートのタイミングを早めるために有利なデータ転送を行うことができる。
【００１１】
上記の目的を達成するために、本発明の別の側面は、ホスト装置において生成された複数色のデータから成る画像データを印刷装置に転送するデータ転送方法において、１ページ分の前記画像データの前記印刷装置への転送を行う際に、当該１ページ分の画像データ量が予め定められた第一の量よりも小さい場合には、色に関わらず前記１ページ分の画像データを所定の高さで区分したバンドの順番に従ってデータの転送を行うバンド順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、前記１ページ分の画像データ量が前記第一の量以上であり、前記第一の量よりも大きい予め定められた第二の量よりも小さい場合には、前記バンドに関わらず色の順番に従ってデータの転送を行うプレーン順次の転送により、前記１ページ分の画像データを前記印刷装置へ転送し、前記１ページ分の画像データ量が前記第二の量以上である場合には、前記バンド順次の転送と前記プレーン順次の転送を混在させて、前記１ページ分の画像データを前記印刷装置へ転送することである。
【００１２】
更に、上記の発明において、その好ましい態様は、前記バンド順次の転送とプレーン順次の転送を混在させて転送する処理が、前記バンド順次の転送により、前記複数色の全色あるいは一部の色のデータを前記印刷装置に転送すると共に、当該転送が前記一部の色のデータについてなされた場合には、転送されなかった色のデータを前記ホスト装置に蓄積する第一の工程と、前記第一の工程で蓄積されたデータを、前記プレーン順次の転送により前記印刷装置に転送する第二の工程とを有し、前記第一の工程でデータが転送される色の数が、所定のタイミングで、前記ホスト装置に蓄積される各色のデータの容量が前記印刷装置において先に用いられる色の方が小さくなるように、変化することを特徴とする。
【００１３】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１５】
図１は、本発明によるドライバプログラムを用いた印刷システムの実施の形態例に係る構成図である。図１に示すプリンタドライバ１２が、ホストコンピュータ１とプリンタ２から成る印刷システムにおける本発明を用いたドライバプログラムであり、色変換処理後の画像データのプリンタ２への転送方法を画像データのサイズに基づいて変更し、ホスト装置の処理パフォーマンスと印刷装置のスループットとのバランスを考慮した効率の良いデータ転送を行おうとするものである。
【００１６】
ホストコンピュータ１は、本実施の形態例におけるホスト装置であり、プリンタ２に対して色変換処理後の画像データを送信し印刷要求を行う。図１に示すように、ホストコンピュータ１には、アプリケーション１１、プリンタドライバ１２、及びメモリ１３が備えられる。なお、ホストコンピュータ１は、所謂パーソナルコンピュータなどで構成することができる。アプリケーション１１は、例えば、文書作成ソフトウェア等の印刷要求元であり、印刷対象のデータを所定のフォーマットでプリンタドライバ１２に渡す。
【００１７】
プリンタドライバ１２は、前記アプリケーション１１からの印刷要求を受けて、画像データを生成し、当該画像データをプリンタ２に送信する部分である。プリンタドライバ１２は、まず、前記アプリケーション１１からのデータを解釈し、印刷対象を画素毎のデータである画像データに展開する。ここで生成される画像データは、例えば、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の各色の濃度値から構成されるデータである。その後、プリンタドライバ１２は、上記ＲＧＢの画像データに対し前述したバンド単位で色変換処理を施し、プリンタ２で用いられるＹＭＣＫの画像データに変換する。画素毎にＹＭＣＫ各色のデータを有する当該生成された画像データに対して、プリンタドライバ１２は、バンド単位で圧縮処理を施す。これは、プリンタ２へのデータ転送時間を短縮するためである。
【００１８】
圧縮処理された画像データは、プリンタ２へ転送可能な状態であり、プリンタドライバ１２は、圧縮処理が済んだ画像データについてデータ転送処理を行うが、このデータ転送方法に本プリンタドライバ１２の特徴がある。具体的には後述するが、転送処理を行うページのデータサイズに基づいて、前述したバンド順次による方法、プレーン順次による方法、あるいはその両方を用いる方法を使い分ける。なお、プリンタドライバ１２は、前述した処理の手順を指示するプログラムと、当該プログラムに従って処理を実行する制御装置等によって構成することができる。
【００１９】
次に、メモリ１３は、ホストコンピュータ１に備えられるＲＡＭであり、様々な用途で使用されるが、印刷実行時には、前記プリンタドライバ１２で圧縮処理された画像データの一部を一時的に格納する。図１においてメモリ１３の下方に示される図は、圧縮処理後の１ページ分の画像データを模式的に示したものである。１ページ分の画像データは、複数のバンドのデータから構成され、また、前述の通り、色変換後のＹＭＣＫのデータで構成される。詳細については後述するが、プリンタドライバ１２が１ページ分のデータを転送する間に、例えば、図の斜線で示した部分の画像データが当該メモリ１３に一時的に蓄積されることになる。
【００２０】
プリンタ２は、ホストコンピュータ１からの画像データを受信し、当該画像データに基づいて印刷を実行する、４サイクルのレーザプリンタである。図１に示すように、プリンタ２には、データバッファ２１、解凍部２２、スクリーン処理部２３、及びエンジン２４が備えられている。データバッファ２１は、前記プリンタドライバ１２から順次転送される画像データを格納する部分である。図１においてデータバッファ２１の下方に示される図は、データバッファ２１に格納される画像データを模式的に示したものである。図に示すように、データバッファ２１では、１ページ分の画像データがＹＭＣＫの色毎に格納され、それらはプレーンデータと呼ばれる。１ページ分のデータを受信する間に、例えば、図の斜線で示した部分の画像データが当該データバッファ２１に格納されているというような状態となる。
【００２１】
後述する解凍部２２での処理からエンジン２４で印刷が実施されるまでの印刷処理は、ページ単位で、１色ずつ連続して実行されるので、各色のプレーンデータは、その色のデータバッファ２１からエンジン２４側へのデータ転送処理が終了するまでに全て受信されデータバッファ２１に格納される必要がある。言い換えれば、印刷処理を行うページについて、全色のプレーンデータがホストコンピュータ１から受信されていない状態でも印刷処理を開始することが可能である。即ち、フライングスタートが可能である。なお、本実施の形態例では、ＹＭＣＫの順番で上記印刷処理が実施されるものとする。例えば、図１に示すデータバッファ２１下方の図において、斜線部分がデータバッファ２１に既に格納されているデータであるとすると、図に示す状態で、他の条件が揃えば、１色目のＹについては上記印刷処理が開始可能であると言える。従って、このデータバッファ２１は、必ずしも４色分のプレーンデータ全てを一度に格納できる容量を有している必要はない。
【００２２】
解凍部２２は、前記印刷処理が開始されるとデータバッファ２１から圧縮されているデータを取り出し、そのデータを元の状態に復元する処理を行う部分である。また、スクリーン処理部２３は、解凍部２２で解凍されたデータにスクリーン処理を施し、画素毎のデータをドットイメージのデータに変換する部分である。エンジン２４は、スクリーン処理されたデータに基づいて印刷媒体に印刷を実行する部分である。これら解凍部２２、スクリーン処理部２３、及び、エンジン２４で行なわれる印刷処理は、各処理が同期して行われ、前述のように、ページ単位で１色ずつ連続して実行される。
【００２３】
図２は、プリンタドライバ１２が行なうデータ転送処理の手順を例示したフローチャートである。以下、図２に基づいて、本プリンタドライバ１２の特徴であるデータ転送処理の内容について説明する。なお、図２に示す処理は、１ページ分のデータ転送に関するものであり、また、そのページについての前述した圧縮処理が開始される時点以前から始まるものであるとする。
【００２４】
まず、プリンタドライバ１２は、処理対象のページについてデータサイズ（Ｓ）（画像データ量）を求める（ステップＳ１０）。ここで求めるデータサイズＳは、当該ページの前記圧縮処理後のサイズであることが望ましいが、この時点で当該ページについての圧縮処理が終了していないので、正確な圧縮後のサイズを求めることができない。そこで、圧縮処理前のデータサイズ等から推定してデータサイズＳを求める。また、圧縮処理前のデータサイズを当該データサイズＳとしてもよい。
【００２５】
次に、当該求めたデータサイズＳを予め定めた第一のサイズＳ１（第一の量）と比較し（ステップＳ２０）、Ｓの方が小さい場合には（ステップＳ２０のＹｅｓ）、プリンタドライバ１２は、前述したバンド順次により当該ページの全ての画像データを転送する。（ステップＳ３０）。図３は、転送対象である１ページ分の画像データを模式的に示した図である。図に示す例では、１ページがｎバンドに分割されており、バンドは上から順番にＢ１、Ｂ２、…、Ｂｎと呼び、それら各バンドに含まれるＹＭＣＫの各データをＹ１〜Ｙｎ、Ｍ１〜Ｍｎ、Ｃ１〜Ｃｎ、Ｋ１〜Ｋｎと表記する。前記１ページ分のデータサイズＳとは、例えば、図３の（ａ）あるいは（ｂ）に示すデータ全体のサイズのことを意味する。
【００２６】
図３の（ａ）は、上記バンド順次でデータ転送を行う場合（ステップＳ３０）での転送順序を示している。前述のように、プリンタドライバ１２による圧縮処理はバンド順にバンド単位で実行されるが、かかる転送方法においては、圧縮処理が終了したバンドのデータをそのままプリンタドライバ２へ転送する。即ち、まず、バンドＢ１の圧縮処理が終了すると処理後のＹ１、Ｍ１、Ｃ１、及びＫ１のデータをプリンタ２に送信し、その後、バンドＢ２の圧縮処理が終了するとＹ２、Ｍ２、Ｃ２、及びＫ２のデータをプリンタ２に送信する。以降も同様に、バンドＢｎまで圧縮処理と転送処理が繰り返される。このように、上記バンド順次でデータ転送を行う場合には、図３の（ａ）に示す矢印の方向に上から下へと順次データが転送されるが、圧縮された画像データをそのままプリンタ２に転送してしまうためホストコンピュータ１側に圧縮後のデータを蓄積することがなく、メモリ１３に当該データの格納スペースを確保する必要がない。
【００２７】
図２に戻って、前記ステップＳ２０において、データサイズＳの方が第一のサイズＳ１よりも大きい場合は（ステップＳ２０のＮｏ）、データサイズＳを第一のサイズＳ１よりも大きい予め定められた第二のサイズＳ２（第二の量）と比較する（ステップＳ４０）。そして、データサイズＳの方が小さい場合には（ステップＳ４０のＹｅｓ）、プリンタドライバ１２は、前述したプレーン順次により当該ページの全ての画像データを転送する（ステップＳ５０）。
【００２８】
図３の（ｂ）は、このプレーン順次でデータ転送を行う場合（ステップＳ５０）での転送順序を示している。プリンタドライバ１２による圧縮処理は、前述の場合と同様に、バンド順にバンド単位で実行されるが、かかる転送方法においては、圧縮処理が終了したバンドのデータのうちＹのデータをプリンタ２に送信し、残りのＭ、Ｃ、Ｙのデータについてはこの時点ではプリンタ２に送信せずにメモリ１３内に蓄積する。即ち、バンドＢ１の圧縮処理が終了後、Ｙ１をプリンタ２に転送し、Ｍ１、Ｃ１、Ｙ１はメモリ１３に格納する。その後、バンドＢ２の圧縮処理が終了するとＹ２をプリンタ２に転送して、Ｍ２、Ｃ２、Ｋ２を蓄積する。以降も同様に、バンドＢｎまで圧縮処理と転送及び蓄積処理が繰り返される。そして、当該ページについて圧縮処理が終了すると、メモリ１３に蓄積されたデータをＭから順番に色毎にプリンタ２へ転送する。即ち、まず、Ｍ１〜Ｍｎを転送し、その後、Ｃ１〜Ｃｎ、Ｋ１〜Ｋｎとデータ転送を行う。
【００２９】
このように、前記プレーン順次でデータ転送を行う場合（ステップＳ５０）には、図３の（ｂ）に示す矢印の方向に左から右へと順次データが転送され、図の太線で囲われた部分（Ｍ１〜Ｍｎ、Ｃ１〜Ｃｎ、及びＫ１〜Ｋｎ）がメモリ１３に蓄積されることになる。
【００３０】
図２に戻って、前記ステップＳ４０において、データサイズＳの方が第二のサイズＳ２よりも大きい場合は（ステップＳ４０のＮｏ）、プリンタドライバ１２は、前述したバンド順次とプレーン順次を混在させた方法で当該ページの画像データを転送する（ステップＳ６０）。かかる場合の具体的な転送方法については後述する。
【００３１】
以上説明したように、データサイズＳに基づいていずれかの方法でデータ転送がなされ、対象ページについてのプリンタ２への転送処理を終了する。このように、本実施の形態例におけるプリンタドライバ１２では、処理対象のページのデータサイズが小さい場合には、バンド順次で転送処理を行い、データサイズが中程度である場合には、プレーン順次で転送処理を行い、また、データサイズが大きい場合には、バンド順次とプレーン順次を混在させて転送処理を行う。以下、このバンド順次とプレーン順次を混在させる場合について具体的な方法を説明する。
【００３２】
図４は、バンド順次とプレーン順次を混在させる場合（ステップＳ６０）の手順を例示したフローチャートである。プリンタドライバ１２は、まず、予め定めたバンド（ｋ番目のバンド）までバンド順次のデータ転送を行なう（ステップＳ６１）。具体的には、前記ステップＳ３０の場合と同様に、バンドＢｋまでは、圧縮処理後のバンドのデータをメモリ１３に蓄積せず、そのままプリンタ２に転送する。
【００３３】
図５は、バンド順次とプレーン順次を混在させる場合の例を説明するための図である。図５の（ａ）は、図３と同様に転送対象である１ページ分の画像データを模式的に示しており、この場合も１ページはｎバンドから構成されている。前記バンド順次でのデータ転送工程（ステップＳ６１）では、図５の（ａ）に示す例においては、バンドＢ１、Ｂ２、…、Ｂｋの順番で順次データが転送される。更に詳しくは、図のバンドＢ１に示される矢印の方向に従って、Ｙ１→Ｍ１→Ｃ１→Ｋ１→Ｙ２→Ｍ２→Ｃ２→Ｋ２という順番でデータ転送が行なわれる。
【００３４】
次に、バンドＢｋの転送が終了すると、プリンタドライバ１２は、バンド順次の転送を継続するが、予め定めたバンド（ｌ番目のバンド）まで、圧縮処理されたバンドのデータについて、ＹＭＣのデータをバンド順次で転送し、残りのＫのデータをメモリ１３に蓄積するという処理を行なう（ステップＳ６２）。図５の（ａ）に示す例では、バンドＢｌに示される矢印の方向に従って、Ｙｋ＋１→Ｍｋ＋１→Ｃｋ＋１→Ｙｋ＋２→…Ｙｌ→Ｍｌ→Ｃｌという順番でデータ転送が行なわれ、Ｋｋ＋１〜Ｋｌのデータについてはメモリ１３に蓄積される。
【００３５】
次に、バンドＢｌの転送が終了すると、プリンタドライバ１２は、予め定めたバンド（ｍ番目のバンド）まで、圧縮処理されたバンドのデータについて、ＹＭのデータをバンド順次で転送し、残りのＣＫのデータをメモリ１３に蓄積するという処理を行なう（ステップＳ６３）。図５の（ａ）に示す例では、バンドＢｍに示される矢印の方向に従って、Ｙｌ＋１→Ｍｌ＋１→Ｙｌ＋２→…Ｙｍ→Ｍｍという順番でデータ転送が行なわれ、Ｃｌ＋１〜ＣｍとＫｌ＋１〜Ｋｍのデータについてはメモリ１３に蓄積される。
【００３６】
次に、バンドＢｍの転送が終了すると、プリンタドライバ１２は、予め定めたバンド（ｎ番目のバンド）まで、言い換えれば、当該１ページ分のデータについて圧縮処理が終了するまで、圧縮処理されたバンドのデータについて、Ｙのみのデータをバンド順次で転送し、残りのＭＣＫのデータをメモリ１３に蓄積するという処理を行なう（ステップＳ６４）。図５の（ａ）に示す例では、Ｙｍ＋１→Ｙｍ＋２→…Ｙｎという順番でデータ転送が行なわれ、Ｍｍ＋１〜ＭｎとＣｍ＋１〜ＣｎとＫｍ＋１〜Ｋｎのデータについてはメモリ１３に蓄積される。
【００３７】
かかるステップＳ６４の処理が終了した時点、即ち、当該１ページ分のデータについて圧縮処理が終了した時点で、Ｙについては全てのデータが転送され、ＭについてはバンドＢｍまでのデータが転送され、ＣについてはバンドＢｌまでのデータが転送され、ＫについてはバンドＢｋまでのデータが転送されることになる。図５の（ｂ）は、この時点でプリンタ２側のデータバッファ２１に格納される各色のプレーンデータを模式的に示している。図の色の付いた部分が格納されているデータを示しており、各色上記転送が行なわれたバンドまでのデータがデータバッファ２１内に格納されている。また、この時点で、Ｍｍ＋１〜ＭｎとＣｌ＋１〜ＣｎとＫｋ＋１〜Ｋｎのデータについてはメモリ１３に蓄積されることになる。図５の（ａ）において、太線で囲われた部分のデータがメモリ１３に格納されることになる。
【００３８】
このようにステップＳ６１からステップＳ６４までのバンド順次のデータ転送が終了すると、プリンタドライバ１２は、メモリ１３に蓄積されたデータをプレーン順次でプリンタ２へ送信する。まず、メモリ１３に蓄積されたＭのデータを全て転送する（ステップＳ６５）。図５の（ａ）に示す例では、Ｍのデータ上に示される下向きの矢印の方向に従って、Ｍｍ＋１→Ｍｍ＋２→…→Ｍｎという順番でデータ転送がなされる。
【００３９】
次に、同様に、メモリ１３に蓄積されたＣのデータを全て転送する（ステップＳ６６）。図５の（ａ）に示す例では、Ｃのデータ上に示される下向きの矢印の方向に従って、Ｃｌ＋１→Ｃｌ＋２→…→Ｃｎという順番でデータ転送がなされる。引き続き、メモリ１３に蓄積されたＫのデータを全て転送する（ステップＳ６７）。図５の（ａ）に示す例では、Ｋのデータ上に示される下向きの矢印の方向に従って、Ｋｋ＋１→Ｋｋ＋２→…→Ｋｎという順番でデータ転送がなされる。
【００４０】
このようにして、メモリ１３に蓄積されたデータの転送が終わると、バンド順次とプレーン順次を混在する場合の当該１ページ分の画像データについてのデータ転送処理が終了する。
【００４１】
以上説明したように、本実施の形態例に係るプリンタドライバ１２は、１ページ分の画像データを送信する際に、データサイズＳに基づいてそのサイズに適した転送順序（方法）でプリンタ２へのデータ転送を行う。図６は、プリンタ２におけるデータ受信と受信したデータのエンジン２４側への転送処理について例示したタイムチャートである。図６の（ａ）及び（ｂ）は、それぞれ、ホストコンピュータ１側からプリンタ２側へ画像データを転送する際に、１ページ分を全てバンド順次で転送する場合と１ページ分を全てプレーン順次で転送する場合の、一般的なタイミングを示している。
【００４２】
図６の（ａ）において、「データ受信」として示される線の左端からｔｂで表される時点までが、１ページ分の画像データを受信する時間を表している。また、「転送処理」として示される線は、データバッファ２１に格納された受信後の画像データをエンジン２４側へ転送する処理の時間を表している。前述のように、この転送処理が開始されるとエンジン２４における印刷媒体への印刷までの処理が同期したタイミングで連続して行われ、途中で中断することはない。また、かかる転送処理は１色毎に順番に行われ、各色に要する時間（Ｔｔ）は同じである。
【００４３】
図６の（ａ）に示すバンド順次の場合、１ページ分について、各色のデータ受信はほぼ同時にｔｂの時点で終了する。従って、ｔｂから１色分の転送処理時間Ｔｔだけ早い時点（図中の黒色の三角形で示す時点）よりも早く当該ページについて転送処理（印刷処理）を開始してしまうと、１色目であるＹの転送処理にデータ受信が間に合わない事態となり連続して行われる前記処理を中断させてしまうことになる。よって、かかるバンド順次の場合には、最も早いフライングスタートのタイミングは上記ｔｂよりもＴｔだけ早い時点となる。フライングする時間、即ち、フライングスタートしてから全データを受信するまでの時間（図中のＴｂ）は、Ｔｔよりも小さくなければならない。逆に言えば、データ受信中に、残りのデータを受信する時間がＴｔよりも短くなった時点でフライングスタートをすることができる。
【００４４】
図６の（ｂ）においても、図６の（ａ）と同様の表現がなされているが、プレーン順次でデータ転送がなされる場合であるので、図に示すように、Ｙ、Ｍ、Ｃ、Ｋの順番で順次データ受信が完了する。図中のｔｐｙ、ｔｐｍ、ｔｐｃ、及びｔｐｋは、それぞれ、各色のデータ受信完了タイミングを表している。また、受信する１ページ分のデータ量、受信速度、及びエンジン２４側への各色の転送時間（Ｔｔ）は、前述した図６の（ａ）の場合と同じであるとする。従って、Ｋのデータ受信完了タイミングであるｔｐｋ、即ち、１ページ分のデータ受信完了タイミングは、図６の（ａ）のｔｂと同じとなる。
【００４５】
この図６の（ｂ）に示すプレーン順次の場合、受信するデータの順番とエンジン２４側へ転送するデータの順番が同じであるので、通常、データ受信中に残りのデータ受信時間が当該ページの転送処理にかかる時間（Ｔｔ×４）よりも短くなった時点でフライングスタートを行うことができる。図６の（ｂ）に示す例では、フライングスタートの最も早いタイミングは、黒色の三角形で示す時点となる。この場合、各色とも、その色の転送処理が終了するまでにその色の受信が完了しており、転送処理に支障をきたすことはない。このように、かかるプレーン順次では、フライングする時間（図中のＴｐ）は、４×Ｔｔよりも小さくなければならない。
【００４６】
以上説明したように、全てバンド順次を行う場合と全てプレーン順次を行う場合を比較すると、Ｔｐ＞Ｔｂとなり、プレーン順次の方が早く転送処理（印刷処理）を開始することができる。
【００４７】
本実施の形態例に係る印刷システムでは、前述の通り、第一のサイズＳ１よりも１ページ分のデータサイズＳが小さい場合に、全てバンド順次によるデータ転送が行われ、プリンタ２においては、図６の（ａ）に示したようなタイミングの処理が行われることになる。ただし、本実施の形態例では、第一のサイズＳ１が、プリンタ２での受信時間（図６の（ａ）では左端からｔｂまでの時間）がエンジン２４側への転送処理時間（図６の（ａ）ではＴｔ）と比較して相対的にかなり短い時間となるような小さい値として設定される。従って、前述した全てプレーン順次で転送した場合とのフライングスタートを行えるタイミングの差、図６の例では、Ｔｐ−Ｔｂは、Ｔｔと比較してかなり小さいものとなる。よって、かかる場合には、プレーン順次の場合と比較してフライングスタートのタイミングを大きく遅らせてしまうこともなく、ホストコンピュータ１側に転送するデータを蓄積する必要もない。
【００４８】
また、本実施の形態例では、前述の通り、１ページ分のデータサイズＳが第一のサイズＳ１よりも大きく第二のサイズＳ２よりも小さい場合に、全てプレーン順次によるデータ転送が行われる。そして、この第二のサイズＳ２が、そのサイズに相当する１ページ分の画像データを全てプレーン順次で転送する場合にホストコンピュータ１のメモリ１３に蓄積しなくてはならないデータ（例えば、図３の（ｂ）の太線内）のサイズが、ホストコンピュータ１の処理パフォーマンスに支障をきたさない大きさとなるように設定される。また、この場合、プリンタ２においては、図６の（ｂ）に示したようなタイミングで処理が行われる。従って、かかる場合には、ホストコンピュータ１の処理パフォーマンスに支障をきたすような容量のデータをメモリ１３に蓄積させることなく、全てプレーン順次で転送を行った場合の早いタイミングでのフライングスタートを行うことができる。
【００４９】
更に、本実施の形態例では、前述の通り、１ページ分のデータサイズＳが第二のサイズＳ２よりも大きい場合に、図４及び図５に基づいて説明したようなバンド順次とプレーン順次を混在したデータ転送が行われる。図６の（ｃ）は、かかるデータ転送が行われた場合のプリンタ２における処理タイミングを例示している。ここに示す例も、受信する１ページ分のデータ量、受信速度、及びエンジン２４側への各色の転送時間（Ｔｔ）は、前述した図６の（ａ）及び（ｂ）の場合と同じであるとする。
【００５０】
前述したように、Ｙのデータが全てプリンタ２側へ送信された時点で、他の色についても一部のデータが送信されているので、プリンタ２においてＹのデータを全て受信するタイミング（図のｔｂｐｙ）は、全てプレーン順次の場合（図のｔｐｙ）と比べて遅くなる。また、通常の場合、Ｍ及びＣについてもそれらの受信完了時間（図のｔｂｐｍ、ｔｂｐｃ）は、全てプレーン順次の場合（図のｔｐｍ、ｔｐｃ）と比べて遅くなる。従って、通常、かかる混在の転送方法では、全てプレーン順次の場合よりも早くフライングスタートを行うことはできない。一方、全てバンド順次の場合（例えば、図６の（ａ）の場合）と比較すると、各色の受信完了時間は、全てバンド順次の場合よりも遅くなることはない。従って、この混在の転送方法では、全てバンド順次の場合よりもフライングスタートのタイミングを早くすることができる。
【００５１】
以上のことから、かかる混在の転送方法を行った場合の可能なフライングタイミングは、全てプレーン順次の場合と全てバンド順次の場合の間のタイミングを取ることができる。図６に示した例では、混在の場合にフライングすることのできる時間Ｔｂｐは、ＴｂとＴｐの間の値を取ることができる。図６の（ｃ）の例では、Ｙの受信が完了する前にＹの転送処理を終了することはできないので、図の黒色の三角形で示すタイミングが最も早いフライングスタートのタイミングとなる。
【００５２】
また、かかる混在の転送方法の場合には、ホストコンピュータ１のメモリ１３に蓄積しなくてはならないデータ量が、全てプレーン順次の場合と比較して相対的に小さくて済む（図３の（ｂ）と図５の（ａ）を参照）。従って、１ページ全体のデータサイズが前記Ｓ２よりも大きくてもメモリ１３に蓄積しなくてはならないデータ量を、ホストコンピュータ１の処理パフォーマンスに支障をきたさない程度に抑えることが可能である。
【００５３】
従って、かかるバンド順次とプレーン順次を混在させた場合には、ホストコンピュータ１の処理パフォーマンスに支障をきたさずに、フライングスタートを行うことによるある程度の効果を得ることができる。なお、通常の場合、メモリ１３に蓄積するデータ量を小さくすることによりフライングできるタイミングは遅くなり、逆に、メモリ１３に蓄積するデータ量を大きくすることによりフライングできるタイミングは早くなる。かかる調整は、図４及び図５に基づいて説明した、プリンタ２へ転送するデータの色を切り換えるタイミング、Ｂｋ、Ｂｌ、Ｂｍを変更することなどにより行うことができる。
【００５４】
以上説明したように、本実施の形態例に係るプリンタドライバ１２では、１ページ分の画像データを送信する際に、データサイズが小さい場合には全てバンド順次でデータ送信され、データサイズが中程度の場合には全てプレーン順次でデータ送信され、また、データサイズが大きい場合にはバンド順次とプレーン順次を混在させたデータ送信が行われて、各データサイズに適した方法によってプリンタ２へのデータ転送が実行される。従って、常に、ホストコンピュータ１側の処理パフォーマンスとプリンタ２側のスループットが考慮された効率の良いデータ転送が実現される。
【００５５】
なお、バンド順次とプレーン順次を混在させる場合において、本実施の形態例では、図５の（ａ）に例示したように、メモリ１３に蓄積されるデータが、階段状に、即ち、プリンタ２で処理される順番が早い色のデータが少なくなるように、なっていたが、必ずしもこのようにすることはない。また、前述したプリンタ２へ転送するデータの色を切り換えるタイミング、Ｂｋ、Ｂｌ、Ｂｍをバンドに基づいて決めたが、データサイズや処理時間に基づいて決めるようにしてもよい。
【００５６】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態例に係る構成図である。
【図２】データ転送処理の手順を例示したフローチャートである。
【図３】転送対象である１ページ分の画像データを模式的に示した図である。
【図４】バンド順次とプレーン順次を混在させる場合の手順を例示する図である。
【図５】バンド順次とプレーン順次を混在させる場合の例を説明するための図である。
【図６】データ受信とエンジン側への転送処理について例示したタイムチャートである。
【符号の説明】
【００５８】
１  ホストコンピュータ、  ２  プリンタ、  １１  アプリケーション、  １２  プリンタドライバ、  １３  メモリ、  ２１  データバッファ、  ２２  解凍部、  ２３  スクリーン処理部、  ２４  エンジン
【図１】
2005339160.tif 000003
【図２】
2005339160.tif 000004
【図３】
2005339160.tif 000005
【図４】
2005339160.tif 000006
【図５】
2005339160.tif 000007
【図６】
2005339160.tif 000008