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