(57)【特許請求の範囲】
【請求項１】
印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置であって、
複数の処理ユニットと、
前記パイプライン処理のために、前記複数の処理ユニットの少なくとも一つに対して処理ユニット毎に確保される可変のバッファ領域と、
前記バッファ領域のサイズを制御する制御ユニットと
を備え、
前記制御ユニットは、
前記サイズの制御モードとして、前記バッファ領域を所定サイズよりも小さいサイズに設定する第１のモードと、前記バッファ領域を前記所定サイズに設定する第２のモードとを有しており、
処理対象データのうちの先頭データについての前記パイプライン処理を行う場合に、前記第１のモードを実行し、
前記所定サイズは、印刷媒体の１または複数ページ分のデータであり、
前記所定サイズよりも小さいサイズは、印刷媒体の１ページにおける前記１ページよりも小さい所定範囲分のデータを格納しうるだけのサイズである、印刷装置。
【請求項２】
請求項１に記載の印刷装置であって、
前記制御ユニットは、
複数枚連続して印刷を行う場合、１枚目のデータについては前記第１のモードで、１枚目以外のデータについては前記第２のモードで制御を行う、印刷装置。
【請求項３】
印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置であって、
複数の処理ユニットと、
前記パイプライン処理のために、前記複数の処理ユニットの少なくとも一つに対して処理ユニット毎に確保される可変のバッファ領域と、
前記バッファ領域のサイズを制御する制御ユニットと
を備え、
前記制御ユニットは、
前記サイズの制御モードとして、前記バッファ領域を所定サイズよりも小さいサイズに設定する第１のモードと、前記バッファ領域を前記所定サイズに設定する第２のモードとを有しており、
処理対象データのうちの先頭データについての前記パイプライン処理を行う場合に、前記第１のモードを実行し、
前記制御ユニットは、さらに、
複数枚連続して印刷を行う場合、１枚目のデータについては前記第１のモードで、１枚目以外のデータについては前記第２のモードで制御を行い、
前記第１のモードは、前記１枚目のデータにおいて後ろ側に位置するにつれて、前記バッファ領域のサイズを漸次、大きく定める、印刷装置。
【請求項４】
印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置であって、
複数の処理ユニットと、
前記パイプライン処理のために、前記複数の処理ユニットの少なくとも一つに対して処理ユニット毎に確保される可変のバッファ領域と、
前記バッファ領域のサイズを制御する制御ユニットと
を備え、
前記制御ユニットは、
前記サイズの制御モードとして、前記バッファ領域を所定サイズよりも小さいサイズに設定する第１のモードと、前記バッファ領域を前記所定サイズに設定する第２のモードとを有しており、
処理対象データのうちの先頭データについての前記パイプライン処理を行う場合に、前記第１のモードを実行し、
前記制御ユニットにより制御される前記バッファ領域は、前記複数の処理ユニットのうちの処理順序が最後の処理ユニットのデータの取り込み先でないバッファ領域である、印刷装置。
【請求項５】
印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置を制御する制御方法であって、
前記印刷装置は、複数の処理ユニットと、前記パイプライン処理のために、前記複数の処理ユニットの少なくとも一つに対して処理ユニット毎に確保される可変のバッファ領域とを備え、
前記バッファ領域のサイズの制御モードとして、前記バッファ領域を所定サイズよりも小さいサイズに設定する第１のモードと、前記バッファ領域を前記所定サイズに設定する第２のモードとを有しており、
処理対象データのうちの先頭データについての前記パイプライン処理を行う場合に、前記第１のモードを実行し、
前記所定サイズは、印刷媒体の１または複数ページ分のデータであり、
前記所定サイズよりも小さいサイズは、印刷媒体の１ページにおける前記１ページよりも小さい所定範囲分のデータを格納しうるだけのサイズである、印刷装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置、およびその制御方法に関する。
【背景技術】
【０００２】
印刷装置では、印刷対象となるデータ（例えば、ＪＰＥＧ画像データ）に対して、例えば、色変換処理や、ハーフトーン処理等の各種処理を施して、印刷データ（ドットのＯＮ／ＯＦＦデータ）を生成し、画像の印刷を実行する。従来、各種処理の高速化の手法として、各処理をパイプライン処理で実行する構成が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１８８９８５号公報
【０００４】
前記従来の技術では、印刷が開始されてからは高速かつ安定して印刷を行うことができるが、印刷開始までの待ち時間が長く、ファーストプリント時間が長かった。特に印刷枚数が少ない印刷ジョブについては、ファーストプリント時間が長いことは看過することができなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上述の課題を解決するためになされたもので、ファーストプリント時間の短縮化を目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。本発明の一形態は、
印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置であって、
複数の処理ユニットと、
前記パイプライン処理のために、前記複数の処理ユニットの少なくとも一つに対して処理ユニット毎に確保される可変のバッファ領域と、
前記バッファ領域のサイズを制御する制御ユニットと
を備え、
前記制御ユニットは、
前記サイズの制御モードとして、前記バッファ領域を所定サイズよりも小さいサイズに設定する第１のモードと、前記バッファ領域を前記所定サイズに設定する第２のモードとを有しており、
処理対象データのうちの先頭データについての前記パイプライン処理を行う場合に、前記第１のモードを実行し、
前記所定サイズは、印刷媒体の１または複数ページ分のデータであり、
前記所定サイズよりも小さいサイズは、印刷媒体の１ページにおける前記１ページよりも小さい所定範囲分のデータを格納しうるだけのサイズである、印刷装置。
その他、本発明は、以下の適用例として実現することも可能である。
【０００７】
［適用例１］  印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置であって、
複数の処理ユニットと、
前記パイプライン処理のために、前記複数の処理ユニットの少なくとも一つに対して処理ユニット毎に確保される可変のバッファ領域と、
前記バッファ領域のサイズを制御する制御ユニットと
を備え、
前記制御ユニットは、
前記サイズの制御モードとして、前記バッファ領域を所定サイズよりも小さいサイズに設定する第１のモードと、前記バッファ領域を前記所定サイズに設定する第２のモードとを有しており、
処理対象データのうちの先頭データについての前記パイプライン処理を行う場合に、前記第１のモードを実行する、印刷装置。
【０００８】
この印刷装置によれば、処理対象データのうちの先頭データについては、バッファ領域を所定サイズよりも小さいサイズに設定してパイプライン処理が行われ、その後のデータについては、バッファ領域を所定サイズに設定してパイプライン処理が行われる。このために、先頭データについては、バッファ領域が小さくなって細分化されることになり、パイプライン処理におけるレイテンシを少なくすることができる。この結果、１枚目の印刷が完了するまでの時間であるファーストプリント時間を短くすることができる。
【０００９】
［適用例２］  適用例１に記載の印刷装置であって、前記制御ユニットは、複数枚連続して印刷を行う場合、１枚目のデータについては前記第１のモードで、１枚目以外のデータについては前記第２のモードで制御を行う、印刷装置。
この印刷装置によれば、１枚目のデータについてはバッファ領域を小さくすることができることから、ファーストプリント時間を確実に短くすることができる。
【００１０】
［適用例３］  適用例２に記載の印刷装置であって、前記第１のモードは、前記１枚目のデータにおいて後ろ側に位置するにつれて、前記バッファ領域のサイズを漸次、大きく定める、印刷装置。
この印刷装置によれば、１枚目のデータにおいて後ろ側に位置するにつれて、前記バッファ領域のサイズが漸次、拡大されることから、ファーストプリント時間をより短くすることができる。
【００１１】
［適用例４］  適用例１ないし３のいずれかに記載の印刷装置であって、前記制御ユニットにより制御される前記バッファ領域は、前記複数の処理ユニットのうちの処理順序が最後の処理ユニットのデータの取り込み先でないバッファ領域である、印刷装置。
この印刷装置によれば、印刷速度を安定化させることができる。
【００１２】
［適用例５］  印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置を制御する制御方法であって、
前記印刷装置は、複数の処理ユニットと、前記パイプライン処理のために、前記複数の処理ユニットの少なくとも一つに対して処理ユニット毎に確保される可変のバッファ領域とを備え、
前記サイズの制御モードとして、前記バッファ領域を所定サイズよりも小さいサイズに設定する第１のモードと、前記バッファ領域を前記所定サイズに設定する第２のモードとを有しており、
処理対象データのうちの先頭データについての前記パイプライン処理を行う場合に、前記第１のモードを実行する、印刷装置の制御方法。
【００１３】
この印刷装置の制御方法によれば、適用例１の印刷装置と同様に、ファーストプリント時間を短くすることができるという効果を奏する。
【００１４】
さらに、本発明は、前記適用例１ないし５以外の種々の形態で実現可能であり、例えば、適用例５に記載の印刷装置の制御方法の備える工程をコンピューターに実行させるためのコンピュータープログラムとしての形態、あるいはこのコンピュータープログラムを記録した記録媒体としての形態、そのコンピュータープログラムを含み搬送波内に具現化されたデータ信号等の形態等で実現することが可能である。記録媒体としては、例えば、磁気ディスクや光ディスク、メモリーカード、ハードディスク等の種々の媒体を利用することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施例としての印刷システム１００の構成を示す説明図である。
【図２】ホストコンピューター２００で行われる印刷データ生成処理とプリンター３００で行われる画像形成処理を機能的に示す説明図である。
【図３】パイプライン処理の様子を示す説明図である。
【図４】バッファマネージャーにより実行されるバッファ管理処理を示すフローチャートである。
【図５】第２実施例におけるバッファ管理処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を実施例に基づき説明する。
Ａ．第１実施例：
Ａ−１．システム全体の構成：
図１は、本発明の第１実施例としての印刷システム１００の構成を示す説明図である。図示するように、印刷システム１００は、ホストコンピューター２００とプリンター３００とを備える。ホストコンピューター２００とプリンター３００とは、ＵＳＢケーブル１２０により接続されている。ホストコンピューター２００は、ＵＳＢケーブル１２０を介してプリンター３００に印刷データを送信し、プリンター３００は、ホストコンピューター２００から受信した印刷データに基づいて、画像を印刷媒体である用紙に印刷する。
【００１７】
ホストコンピューター２００は、コンピューター本体２１０と、周辺装置としての、ディスプレイ装置２２０、キーボード２３０、ハードディスクドライブ（ＨＤＤ）２４０、および外部メモリー２５０とを備える。コンピューター本体２１０は、ＣＰＵ２１１、ＲＡＭ２１２、ＲＯＭ２１３、ディスプレイ装置コントローラー２１４、キーボードコントローラー２１５、ＨＤＤコントローラー２１６、メモリーコントローラー２１７、および通信インターフェース（Ｉ／Ｆ）２１８等を備える。これらの各構成要素２１１〜２１８は、バス２１９を介して互いに接続されている。ディスプレイ装置コントローラー２１４にはディスプレイ装置２２０が接続され、キーボードコントローラー２１５にはキーボード２３０が接続され、ＨＤＤコントローラー２１６にはＨＤＤ２４０が接続され、メモリーコントローラー２１７には外部メモリー２５０が接続されている。通信Ｉ／Ｆ２１８にはＵＳＢケーブル１２０が接続されている。外部メモリー２５０は、例えば、ＳＤメモリーカード、コンパクトフラッシュ（登録商標）等である。
【００１８】
ＣＰＵ２１１は、ＲＯＭ２１３やＨＤＤ２４０に記憶されたコンピュータープログラムを、ＲＡＭ２１２を作業領域として実行することによって、各種の処理を行う。例えば、ＣＰＵ２１１は、予め準備された印刷対象データに画像処理を施し、得られた処理済みのデータを印刷データとしてプリンター３００に送信する印刷データ生成処理を行う。印刷対象データは、外部メモリー２５０やネットワークを介して外部から取得することにより準備してもよいし、ホストコンピューター２００内で生成することにより準備してもよい。なお、図１に示したホストコンピューター２００の構成要素は一例を示すものであり、ホストコンピューター２００の構成要素の一部を省略や、ホストコンピューター２００にさらなる構成要素を付加することが可能である。
【００１９】
プリンター３００は、コントローラー部３１０と、コントローラー部３１０により制御される、印刷部３２０、操作パネル３３０、および外部メモリー３４０とを備える。コントローラー部３１０は、ＣＰＵ３１１、ＲＡＭ３１２、ＲＯＭ３１３、印刷部インターフェース（Ｉ／Ｆ）３１４、操作パネルインターフェース（Ｉ／Ｆ）３１５、メモリーコントローラー３１６、および通信インターフェース（Ｉ／Ｆ）３１８等を備える。これらの各構成要素３１１〜３１８は、バス３１９を介して互いに接続されている。印刷部Ｉ／Ｆ３１４には印刷部３２０が接続され、操作パネルＩ／Ｆ３１５には操作パネル３３０が接続され、メモリーコントローラー３１６には外部メモリー３４０が接続されている。通信Ｉ／Ｆ３１８にはＵＳＢケーブル１２０が接続されている。外部メモリー３４０は、例えば、ＳＤメモリーカード、コンパクトフラッシュ（登録商標）等である。
【００２０】
ＲＯＭ３１３には、印刷媒体へ画像を形成するための画像形成プログラムが記憶されている。ＣＰＵ３１１は、その画像形成プログラムを実行することにより、印刷部３２０を制御してインクの吐出による画像の形成を行う画像形成処理を行う。印刷部３２０は、インクを蓄えるインクカートリッジ、印刷ヘッド、プラテンなど、印刷媒体に実際に画像形成するために必要な機能部を備える。インクとしては、シアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４種類を備える。本実施例においては、プリンター３００は、いわゆるラインヘッドプリンターとして構成されており、高速印刷（例えば毎分６０ページ以上）が可能となっている。操作パネル３１３は、ユーザーが印刷処理に関わる各種設定を行うための操作部である。印刷媒体の種類やサイズの設定、印刷の中止操作などを、ユーザーは操作パネル３１３を操作することでコントローラー部３１０に対して指示することができる。前述した、ホストコンピューター２００で実行される印刷データ生成処理と、プリンター３００で実行される画像形成処理について、次に説明する。
【００２１】
Ａ−２．処理ユニットについて：
図２は、ホストコンピューター２００で行われる印刷データ生成処理とプリンター３００で行われる画像形成処理を機能的に示す説明図である。ホストコンピューター２００側の印刷データ生成処理は、データ入力処理部Ｐ１、レンダリング処理部Ｐ２、圧縮処理部Ｐ３、およびデータ出力処理部Ｐ４によって実現される。各処理部Ｐ１〜Ｐ４は、ＣＰＵ２１１の演算処理により実現される機能的な構成要素で、[課題を解決するための手段]に記載した「処理ユニット」に相当する。
【００２２】
まず、データ入力処理部Ｐ１により、外部メモリー２５０（図１）等に記憶された印刷対象データを取り込む。ここで、印刷対象データは、ベクターイメージのカラー画像データであるものとする。その後、レンダリング処理部Ｐ２により、前記印刷対象データをラスターイメージであるビットマップのカラー画像データに変換する。なお、データ入力処理部Ｐ１とレンダリング処理部Ｐ２との間では、ＲＡＭ２１２上に確保された第１のバッファＢ１を用いて、データの授受が行われている。すなわち、データ入力処理部Ｐ１で得られたデータは、第1のバッファＢ１に一時的に蓄えられ、レンダリング処理部Ｐ２は、第1のバッファＢ１からデータを取り込み、その取り込んだデータに基づき処理を行う。
【００２３】
レンダリング処理の実行後、圧縮処理部Ｐ３により、レンダリング後のカラー画像データに対して、所定の圧縮方式（例えば、ＪＰＥＧ）に従ってデータの圧縮を行う。その後、データ出力処理部Ｐ４により、通信Ｉ／Ｆ２２０を介してプリンター３００に圧縮後のデータを出力する。この圧縮後のデータが前述してきた「印刷データ」である。なお、レンダリング処理部Ｐ２と圧縮処理部Ｐ３との間では第２のバッファＢ２を介して、圧縮処理部Ｐ３とデータ出力処理部Ｐ４との間では第３のバッファＢ３を介して、各データの授受が行われている。第２のバッファＢ２および第３のバッファＢ３は、第１のバッファＢ１と同様に、ＲＡＭ２１２上に確保されたものである。こうして、データ入力処理部Ｐ１に対してバッファ領域としての第１のバッファＢ１が確保され、レンダリング処理部Ｐ２に対してバッファ領域としての第２のバッファＢ２が確保され、圧縮処理部Ｐ３に対してバッファ領域として第３のバッファＢ３が確保される。
【００２４】
一方、プリンター３００で行われる画像形成処理は、データ入力処理部Ｐ５、解凍処理部Ｐ６、ハーフトーン処理部Ｐ７、およびデータ出力処理部Ｐ８によって実現される。各処理部Ｐ５〜Ｐ８は、ＣＰＵ３１１の演算処理により実現される機能的な構成要素で、[課題を解決するための手段]の欄に記載した「処理ユニット」に相当する。
【００２５】
まず、データ入力処理部Ｐ５により、ホストコンピューター２００から送られてきた印刷データを取り込む。その後、解凍処理部Ｐ６により、前記取り込んだ印刷データを解凍する。ホストコンピューター２００から送られてくる印刷データは、プリンター３００側の圧縮処理部Ｐ３により圧縮されたデータであり、そのヘッダーには、圧縮した際の圧縮方式に関する情報が記録されている。解凍処理部Ｐ６では、印刷データのヘッダーを読み取り、ヘッダーから圧縮方式を判定し、その圧縮方式に応じた解凍を印刷データに施す。なお、データ入力処理部Ｐ５と解凍処理部Ｐ６との間では、ＲＡＭ３１２上に確保される第４のバッファＢ４を用いて、データの授受が行われている。
【００２６】
解凍処理の実行後、解凍処理後の印刷データの階調をドットの分布によって表すハーフトーン処理を、ハーフトーン処理部Ｐ７により行う。ハーフトーン処理部Ｐ７の結果、ドットのオン／オフデータが得られる。その後、データ出力処理部Ｐ８により、印刷部３２０に対してドットのオン／オフデータを出力する。なお、解凍処理部Ｐ６とハーフトーン処理部Ｐ７との間では第５のバッファＢ５を介して、ハーフトーン処理部Ｐ７とデータ出力処理部Ｐ８との間では第６のバッファＢ６を介して、各データの授受が行われている。第５のバッファＢ５および第６のバッファＢ６は、第４のバッファＢ４と同様に、ＲＡＭ３１２上に確保される。こうして、データ入力処理部Ｐ５に対してバッファ領域としての第４のバッファＢ４が確保され、解凍処理部Ｐ６に対してバッファ領域としての第５のバッファＢ５が確保され、ハーフトーン処理部Ｐ７に対してバッファ領域として第６のバッファＢ６が確保される。
【００２７】
Ａ−３．パイプライン処理について：
前記構成のホストコンピューター２００では、前述したように各処理部Ｐ１〜Ｐ４の間に、バッファＢ１〜Ｂ３を備えることで、データ入力処理部Ｐ１、レンダリング処理部Ｐ２、圧縮処理部Ｐ３、およびデータ出力処理部Ｐ４をパイプライン処理で実行することができる。また、前記構成のプリンター３００では、前述したように各処理部Ｐ５〜Ｐ８の間に、バッファＢ４〜Ｂ６を備えることで、データ入力処理部Ｐ５、解凍処理部Ｐ６、ハーフトーン処理部Ｐ７、およびデータ出力処理部Ｐ８をパイプライン処理で実行することができる。
【００２８】
図３は、パイプライン処理の様子を示す説明図である。図３（ａ）はホストコンピューター２００におけるパイプライン処理の様子を示すもので、図３（ｂ）はプリンター３００におけるパイプライン処理の様子を示すものである。図示の例は、印刷対象データが３つの部分から構成された場合のものである。すなわち、印刷対象データは、「Ａ」、「Ｂ」、「Ｃ」の各データにより構成されている。図中の横軸には、時間を示した。
【００２９】
図３（ａ）に示すように、ホストコンピューター２００において、データ入力処理部Ｐ１は、「Ａ」のデータ、「Ｂ」のデータ、「Ｃ」のデータを逐次実行する。データ入力処理部Ｐ１で「Ａ」の画像データについての処理を終えると、データ入力処理部Ｐ１で「Ｂ」の画像データについての処理を実行開始するとともに、レンダリング処理部Ｐ２で「Ａ」の画像データについての処理を実行開始する。このようにして、データ入力処理部Ｐ１、レンダリング処理部Ｐ２、圧縮処理部Ｐ３、およびデータ出力処理部Ｐ４が並列に実行される、すなわちパイプライン処理で実行される。
【００３０】
図３（ｂ）に示すように、プリンター３００において、データ入力処理部Ｐ５は、「Ａ」の画像データ、「Ｂ」の画像データ、「Ｃ」の画像データを逐次実行する。データ入力処理部Ｐ５で「Ａ」の画像データについての処理を終えると、データ入力処理部Ｐ５で「Ｂ」の画像データについての処理を実行開始するとともに、解凍処理部Ｐ６で「Ａ」の画像データについての処理を実行開始する。このようにして、データ入力処理部Ｐ５、解凍処理部Ｐ６、ハーフトーン処理部Ｐ７、およびデータ出力処理部Ｐ８が並列に実行される、すなわちパイプライン処理で実行される。
【００３１】
Ａ−４．バッファマネージャーについて：
各バッファＢ１〜Ｂ６は可変のバッファ領域であり、パイプライン処理を行う場合、領域の大きさ（サイズ）が適切に制御されている必要がある。このバッファのサイズを制御するのがバッファマネージャーである。バッファマネージャーは、ＲＯＭ（ホストコンピューター２００側ではＲＯＭ２１２、プリンター３００側ではＲＯＭ３１２）に記憶されたプログラムに従ってＣＰＵ（ホストコンピューター２００側ではＣＰＵ２１１、プリンター３００側ではＣＰＵ３１１）により動作するソフトウェアであり、サイズの制御モードとして、各バッファＢ１〜Ｂ３、Ｂ４〜Ｂ６のサイズを、予め定めた所定サイズ（以下、「フルサイズ」と呼ぶ）に設定する第２のモードと、フルサイズよりも小さいサイズ（以下、「小サイズ」と呼ぶ）に設定する第１のモードとを有している。
【００３２】
本実施例では、前記フルサイズは、印刷媒体の１ページ分のデータを格納しうるだけのサイズである。小サイズは、１ページにおける所定幅である１行分のデータを格納しうるだけのサイズである。なお、フルサイズは、１ページ分に限る必要はなく、２ページ分、３ページ分等の他のサイズとしてもよい。小サイズも、１行分に限る必要はなく、２行分、３行分等の他の行数分、あるいは行単位でない幅のサイズとしてもよい。ＣＰＵ２１１、３１１により実行されるバッファマネージャーの構成が、[課題を解決するための手段]の欄に記載した「制御ユニット」に相当する。
【００３３】
図４は、バッファマネージャーにより実行されるバッファ管理処理を示すフローチャートである。バッファ管理処理は、ホストコンピューター２００のＣＰＵ２１１、プリンター３００のＣＰＵ３１１の双方で実行される。バッファ管理処理は、全てのバッファＢ１〜Ｂ３、Ｂ４〜Ｂ６を管理するものであるが、図示では、１つのバッファを制御するものとして示されている。ここでは、プリンター３００側の第４のバッファＢ４に着目して、以下、説明を行う。
【００３４】
図示するように、処理が開始されると、ＣＰＵ２１１は、まず、前述した第１のモードを実行する（ステップＳ１１０）。すなわち、バッファ（例えば、第４のバッファＢ４）のサイズを１行分のサイズに設定する。
【００３５】
次いで、ＣＰＵ２１１は、所定期間、遅延する処理を行う（ステップＳ１２０）。ここで言う所定期間は、バッファを確保した処理ユニット、すなわち、バッファに対してデータを送る側の処理ユニット（例えば、第４のバッファＢ４に対してはデータ入力処理部Ｐ５）において、ステップＳ１１０で設定された１行分のサイズのデータがバッファに対して送られるだけの処理がなされる期間である。
【００３６】
ステップＳ１２０の処理と平行に、ＣＰＵ２１１は、上記遅延の期間、印刷対象データの処理が終了したか否かを判定する処理を行う（ステップＳ１３０）。上記遅延の期間において、印刷対象データの処理が終了していないと判定されると、ステップＳ１４０に処理を進めて、印刷対象データのうちの１ページ分のデータの処理が終了したか否かを判定する。この判定値を１ページ分のデータとしたのは、バッファのフルサイズが１ページ分であるためで、例えばフルサイズが２ページ分と定められている場合には、判定値は２ページ分となる。
【００３７】
ステップＳ１４０で、１ページ分のデータが終了していないと判定されると、ＣＰＵ２１１は、ステップＳ１１０に処理を戻し、続く行に処理を移す。この結果、印刷対象データのうちの１ページに該当するデータについては、１行を処理単位として処理ユニットの処理、例えばデータ入力処理部Ｐ５の処理が実行され、第４のバッファＢ４へのデータの蓄積がなされることになる。なお、図示はしないが、他の処理ユニット、すなわち、解凍処理部Ｐ６、ハーフトーン処理部Ｐ７、およびデータ出力処理部Ｐ８についても、同様に、１ページ目のデータについては１行を処理単位として処理が実行される。プリンター３００側に限らず、ホストコンピューター２００側でも同様に、全ての処理ユニットで、１ページ目のデータについては１行を処理単位として処理が実行される。前記印刷対象データが、[課題を解決するための手段]の欄に記載した「処理対象データ」に相当する。印刷対象データのうちの１ページ分のデータが、[課題を解決するための手段]の欄に記載した「先頭データ」に相当する。
【００３８】
一方、ステップＳ１４０で、１ページ分のデータが終了したと判定された場合には、ＣＰＵ２１１は、前述した第２のモードを実行する（ステップＳ１５０）。すなわち、バッファ（例えば第４のバッファＢ４）のサイズをフルサイズに設定する。
【００３９】
その後、ＣＰＵ２１１は、所定期間、遅延する処理を行う（ステップＳ１６０）。ここで言う所定期間は、バッファを確保した処理ユニット（例えば、第４のバッファＢ４に対してはデータ入力処理部Ｐ５）において、ステップＳ１５０で設定された１ページ分のサイズのデータがバッファに対して送られるだけの処理がなされる期間である。
【００４０】
ステップＳ１６０の処理と平行に、ＣＰＵ２１１は、上記遅延の期間、印刷対象データの処理が終了したか否かを判定する処理を行う（ステップＳ１７０）。上記遅延の期間において、印刷対象データの処理が終了していないと判定されると、ＣＰＵ２１１は、ステップＳ１４０に処理を戻し、続くページに処理を移す。この結果、印刷対象データのうちの２ページ目以降に該当するデータについては、１ページを処理単位として処理ユニットの処理、例えばデータ入力処理部Ｐ５の処理が実行され、第４のバッファＢ４へのデータの書き込みがなされることになる。なお、図示はしないが、他の処理ユニット、すなわち、解凍処理部Ｐ６、ハーフトーン処理部Ｐ７、およびデータ出力処理部Ｐ８についても、同様に、２ページ目以降のデータについては１ページを処理単位として処理が実行される。プリンター３００側に限らず、ホストコンピューター２００側でも同様に、全ての処理ユニットで、２ページ目以降のデータについては１ページを処理単位として処理が実行される。なお、ステップＳ１７０で、印刷対象データの処理が終了したと判定されると、「エンド」に抜けて、このバッファ管理処理を終了する。
【００４１】
Ａ−５．実施例効果：
したがって、第１実施例の印刷システム１００によれば、印刷対象データのうちの１ページ目のデータについては、各バッファＢ１〜Ｂ６を１行分のサイズに設定してパイプライン処理が行われ、２ページ目以降のデータについては、各バッファＢ１〜Ｂ６をフルサイズに設定してパイプライン処理が行われる。このために、１ページ目のデータについては、バッファが小さくなって細分化されることになり、パイプライン処理におけるレイテンシを少なくすることができる。この結果、１ファーストプリント時間を短くすることができる。
【００４２】
Ｂ．第２実施例：
本発明の第２実施例について、次に説明する。この第２実施例としての印刷システムは、第１実施例と比較して、同じハードウェアの構成を備え、ソフトウェアである、ホストコンピューター２００およびプリンター３００で実行されるバッファ管理処理の構成が相違する。なお、第２実施例において第１実施例と同一の構成要素については、同一の符合を用いて以下の説明を行う。
【００４３】
図５は、バッファマネージャーにより実行されるバッファ管理処理を示すフローチャートである。バッファ管理処理は、第１実施例と同様に、ホストコンピューター２００のＣＰＵ２１１、プリンター３００のＣＰＵ３１１の双方で実行される。図５中のステップＳ１３０ないしＳ１７０の処理は、第１実施例の図４における処理と同一であり、同じステップ番号を付した。すなわち、印刷対象データの２ページ目以降の処理は、第１実施例と同一であり、１ページ目の処理だけが相違する。
【００４４】
図示するように、処理が開始されると、ＣＰＵ２１１は、まず、変数ｎに初期値である値１をセットする（ステップＳ２０５）。次いで、バッファ（例えば第４のバッファＢ４）のサイズを変数ｎの行数分（＝ｎ行分）に設定する（ステップＳ２１０）。このバッファサイズの設定が、第２実施例における第１のモードである。
【００４５】
その後、ＣＰＵ２１１は、所定期間、遅延する処理を行う（ステップＳ１６０）。ここで言う所定期間は、バッファを確保した処理ユニット（例えば、第４のバッファＢ４に対してはデータ入力処理部Ｐ５）において、ステップＳ２１０で設定されたｎ行分のサイズのデータがバッファに対して送られるだけの処理がなされる期間である。その後、ＣＰＵ２１１は、変数ｎを値１だけインクリメントする（ステップＳ２２５）。ステップＳ２２５の実行後、ＣＰＵ２１１は、ステップＳ１３０に処理を進める。
【００４６】
ステップＳ１３０、ステップＳ１４０と、第１実施例と同様に処理が行われ、ステップＳ１４０で、印刷対象データのうちの１ページ分のデータが終了したと判定された場合には、ＣＰＵ２１１は、ステップＳ２１０に処理を戻して、インクリメントされたｎ行分のバッファサイズの設定を行う。
【００４７】
したがって、前記構成のバッファ管理処理では、印刷対象データのうちの１ページ目のデータについては、１行、２行、３行、…というように１行ごとに順にインクリメントされた行数を処理単位として、処理ユニットの処理、例えば、データ入力処理部Ｐ５の処理が実行されることになる。２ページ目以降のデータについては、第１実施例と同様に、１ページを処理単位として処理が実行される。なお、解凍処理部Ｐ６、ハーフトーン処理部Ｐ７、およびデータ出力処理部Ｐ８についても、同様に、１ページ目のデータについては１行ごとに順にインクリメントされた行数を処理単位として処理が実行される。プリンター３００側に限らず、ホストコンピューター２００側でも同様に、全ての処理ユニットで、１ページ目のデータについては順にインクリメントされた行数を処理単位とし、２ページ目以降については１ページを処理単位として、各処理ユニットの処理が実行される。
【００４８】
したがって、第２実施例の印刷システムによれば、第１実施例と同様に、１ページ目のデータについては各バッファＢ１〜Ｂ６を小さくすることができることから、ファーストプリント時間を短くすることができる。バッファを小さくした場合、細分化されたデータに付与されるプロトコルのオーバーヘッドは大きくなるが、バッファにおけるデータの受け渡しによるレイテンシによる速度低下は小さくすることができることから、ファーストプリント時間を短くすることができるのである。特に本実施例では、１ページ目のデータにおいて後ろ側に位置するにつれて、各バッファＢ１〜Ｂ６のサイズが徐々に拡大されることから、データに付与されるプロトコルの割合を徐々に小さくすることができることから、全体バランスから、ファーストプリント時間をより短くすることができる。
【００４９】
Ｃ．変形例：
以上、本発明の第１および第２の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができる。例えば、ソフトウェアによって実現した機能は、ハードウェアによって実現するものとしてもよい。また、そのほか、以下のような変形が可能である。
【００５０】
・変形例１：
前記各実施例では、２ページ目以降において、バッファをフルサイズに設定していたが、本発明は、これに限られない。第１実施例では、２ページ目においてバッファを半ページのサイズとし、３ページ目以降においてバッファをフルサイズ（１ページ）としてもよい。第２実施例では、１ページ目においてバッファを１行から半ページまで徐々に拡大し、２ページ目においてバッファを半ページのサイズとし、３ページ目以降においてフルサイズ（１ページ）としてもよい。
【００５１】
・変形例２：
前記各実施例では、ホストコンピューター２００の備える全てのバッファＢ１〜Ｂ３と、プリンター３００の備える全てのバッファＢ４〜Ｂ６に対して、本発明に関わるバッファ管理処理が施されているが、これに限られない。ホストコンピューター２００の備えるバッファＢ１〜Ｂ３のうちの任意の数のバッファと、プリンター３００の備える全てのバッファＢ４〜Ｂ６のうちの任意の数のバッファに対して前記バッファ管理処理を施してもよい。この場合には、最終段のバッファには、前記バッファ管理処理を施さないことが好ましい。すなわち、ホストコンピューター２００では第３のバッファＢ３以外のバッファＢ１、Ｂ２から施すバッファを選択することが好ましく、プリンター３００では第６のバッファＢ６以外のバッファＢ４、Ｂ５から施すバッファを選択することが好ましい。最終段のバッファとは、処理順序が最後の処理ユニットのデータの取り込み先であり、最終段のバッファに本発明のバッファ管理処理を施さないことで、データ出力処理部Ｐ４、Ｐ８によるデータの取り込みを常時フルサイズのバッファＢ３、Ｂ６から行うことができる。これにより、ホストコンピューター２００からプリンター３００へのデータの出力や、プリンター３００における印刷部への印刷データの出力をより安定した速度で行うことができ、安定した印刷速度での印刷が可能となる。
【００５２】
・変形例３：
前記各実施例では、ホストコンピューター２００の備えるバッファＢ１〜Ｂ３と、プリンター３００の備えるバッファＢ４〜Ｂ６に対して、本発明に関わるバッファ管理処理が施されているが、これに限られない。ホストコンピューター２００側だけ、すなわち、ホストコンピューター２００の備えるバッファＢ１〜Ｂ３の少なくとも一つに施す構成としてもよい。また、プリンター３００側だけ、すなわち、プリンター３００の備えるバッファＢ４〜Ｂ６の少なくとも一つに施す構成としてもよい。要は、印刷データの生成からインクの吐出までの少なくとも一部でパイプライン処理を行う印刷装置（実施例では、ホストコンピューター２００またはプリンター３００が該当する）において、本発明を適用することができる。
【００５３】
・変形例４：
前記各実施例では、印刷対象データをカラー画像データとして、ハーフトーン処理がプリンター３００側で行われる構成としたが、これに限られない。印刷対象データが黒データ、すなわち、黒色のテキストデータや黒色のグラフィックデータである場合に、ハーフトーン処理がホットコンピューター２００側で行われる構成としてもよい。この構成において、各バッファに対して、本発明に関わるバッファ管理処理を施す構成とすればよい。
【００５４】
なお、前述した実施例および各変形例における構成要素の中の、独立請求項で記載された要素以外の要素は、付加的な要素であり、適宜省略可能である。また、本発明はこれらの実施例および各変形例になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々の態様での実施が可能である。
【符号の説明】
【００５５】
１００…印刷システム
２００…ホストコンピューター
２１０…コンピューター本体
２１１…ＣＰＵ
２１２…ＲＡＭ
２１３…ＲＯＭ
２１４…ディスプレイ装置コントローラー
２１５…キーボードコントローラー
２１６…ＨＤＤコントローラー
２１７…メモリーコントローラー
２１９…バス
２２０…ディスプレイ装置
２３０…キーボード
２４０…ハードディスクドライブ（ＨＤＤ）
２５０…外部メモリー
３００…プリンター
３１０…コントローラー部
３１１…ＣＰＵ
３１２…ＲＡＭ
３１３…ＲＯＭ
３１５…操作パネルインターフェース
３１６…メモリーコントローラー
３１８…通信インターフェース
３１９…バス
３２０…印刷部
３３０…操作パネル
３４０…外部メモリー
【図１】
0005895428.tif 000002
【図２】
0005895428.tif 000003
【図３】
0005895428.tif 000004
【図４】
0005895428.tif 000005
【図５】
0005895428.tif 000006