(57)【特許請求の範囲】
【請求項１】
複数のノズルを配列したノズル列を有する第１の記録ヘッドと複数のノズルを配列したノズル列を有する第２の記録ヘッドとを用い、前記第１及び第２の記録ヘッドのノズル列が前記第１及び第２の記録ヘッドの移動方向に対して傾斜した角度をもつように設けられ、前記第１及び第２の記録ヘッド夫々で記録されるべきデータを記憶したプリントバッファから読み出したデータに基づいて前記第１及び第２の記録ヘッドを記録媒体に対して相対的に移動させながら記録を行うにあたり、前記第１及び第２の記録ヘッドの記録解像度を制御する記録解像度の制御方法であって、
前記第１及び第２の記録ヘッド夫々の記録解像度として、第１の記録解像度と前記第１の記録解像度よりも高い第２の記録解像度とを含む複数の記録解像度の内の１つの記録解像度を指定する指定工程と、
前記指定工程において前記第１及び第２の記録ヘッド夫々について指定された各記録解像度に応じて、前記プリントバッファからのデータの読み出し位置をそれぞれ制御し、前記第１及び第２の記録ヘッド夫々の記録解像度を互いに独立に制御する制御工程を有し、
前記制御工程では、前記指定工程において指定された前記第１及び第２の記録ヘッドの記録解像度が互いに異なる場合、前記ノズル列の傾斜した角度に応じて、前記第１及び第２の記録ヘッド夫々のノズル列の所定数のノズルに対応する前記移動方向に関する記録画素数のオフセット量を異ならせ、
前記第１の記録解像度が指定された場合と前記第２の記録解像度が指定された場合とで、前記異なるオフセット量を補償するべく、前記プリントバッファからのデータの読み出し位置をそれぞれ異ならせることを特徴とする記録解像度の制御方法。
【請求項２】
前記第１及び第２の記録ヘッドは夫々、前記複数のノズルからインク液滴を吐出するインクジェット記録ヘッドであり、
前記制御工程は、インク液滴のサイズを制御する工程をさらに含み、
前記インク液滴のサイズを制御する工程では、前記第１の記録解像度が指定された場合、第１のサイズのインク液滴を設定し、前記第２の記録解像度が指定された場合、前記第１のサイズよりも小さな第２のサイズのインク液滴を設定することを特徴とする請求項１に記載の記録解像度の制御方法。
【請求項３】
前記第１及び第２の記録ヘッド各々において、前記指定工程において指定された記録解像度に応じて、ノズル駆動シーケンスを制御する工程をさらに有し、
前記ノズル駆動シーケンスを制御する工程では、前記第１の記録解像度の場合と前記第２の記録解像度の場合とで、異なる駆動シーケンスを設定することを特徴とする請求項１又は２に記載の記録解像度の制御方法。
【請求項４】
前記制御工程において行われる、前記指定された各記録解像度に応じた前記プリントバッファからの異なるデータ読み出し制御は、前記第１及び第２の記録ヘッド夫々で記録されるべきデータを記録装置に出力するためのホストプロセッサから送信されるコマンドに基づいて実行されることを特徴とする請求項１乃至３のいずれかに記載の記録解像度の制御方法。
【請求項５】
前記ホストプロセッサから送信されるコマンドは、前記異なるデータ読み出し制御を行うための複数のバッファ制御シーケンスを定義する第１コマンドと、前記第１コマンドにより定義された前記複数のバッファ制御シーケンスの内の１つを選択する第２コマンドとを含むことを特徴とする請求項４に記載の記録解像度の制御方法。
【請求項６】
前記第１コマンドにより定義された前記複数のバッファ制御シーケンスは、前記記録装置のＲＡＭに記憶されることを特徴とする請求項５に記載の記録解像度の制御方法。
【請求項７】
前記第１の記録ヘッドは、前記複数のノズルからブラックインクを吐出するインクジェット記録ヘッドであり、前記第２の記録ヘッドは、前記複数のノズルからブラックインクとカラーインクを吐出するインクジェット記録ヘッドであり、
前記第１の記録ヘッドは前記第１の記録解像度で記録を行い、前記第２の記録ヘッドは前記第２の記録解像度で記録を行うことを特徴とする請求項１に記載の記録解像度の制御方法。
【請求項８】
複数のノズルを配列したノズル列を有する第１の記録ヘッドと複数のノズルを配列したノズル列を有する第２の記録ヘッドとを用い、前記第１及び第２の記録ヘッドのノズル列が前記第１及び第２の記録ヘッドの移動方向に対して傾斜した角度をもつように設けられ、前記第１及び第２の記録ヘッド夫々で記録されるべきデータを記憶したプリントバッファから読み出したデータに基づいて前記第１及び第２の記録ヘッドを記録媒体に対して相対的に移動させながら記録を行うプリンタに対して前記データを出力するためのホストプロセッサで実行可能なプリントドライバを格納したコンピュータ可読媒体であって、前記プリントドライバは、
前記第１及び第２の記録ヘッド夫々の記録解像度として、第１の記録解像度と前記第１の記録解像度よりも高い第２の記録解像度とを含む複数の記録解像度の内の１つの記録解像度を指定する指定処理を実行するコードと、
前記指定処理により前記第１及び第２の記録ヘッド夫々について指定された各記録解像度に応じて、前記プリントバッファからのデータの読み出し位置をそれぞれ制御し、前記第１及び第２の記録ヘッド夫々の記録解像度を互いに独立に制御する制御処理を実行するコードとを有し、
前記制御処理では、前記指定処理により指定された前記第１及び第２の記録ヘッドの記録解像度が互いに異なる場合、前記ノズル列の傾斜した角度に応じて、前記第１及び第２の記録ヘッド夫々のノズル列の所定数のノズルに対応する前記移動方向に関する記録画素数のオフセット量を異ならせ、
前記第１の記録解像度が指定された場合と前記第２の記録解像度が指定された場合とで、前記異なるオフセット量を補償するべく、前記プリントバッファからのデータの読み出し位置をそれぞれ異ならせる処理を実行することを特徴とするコンピュータ可読媒体。
【請求項９】
複数のノズルを配列したノズル列を有する第１の記録ヘッドと、
複数のノズルを配列したノズル列を有する第２の記録ヘッドと、
前記第１及び第２の記録ヘッドのノズル列が前記第１及び第２の記録ヘッドの移動方向に対して傾斜した角度をもつように設けられ、前記第１及び第２の記録ヘッドを記録媒体に対して相対的に移動させる移動手段と、
前記第１及び第２の記録ヘッド夫々で記録されるべきデータを記憶するプリントバッファと、
前記第１及び第２の記録ヘッド夫々の記録解像度として、第１の記録解像度と前記第１の記録解像度よりも高い第２の記録解像度とを含む複数の記録解像度の内の１つを指定する指定手段と、
前記指定手段により前記第１及び第２の記録ヘッド夫々について指定された各記録解像度に応じて、前記プリントバッファからのデータの読み出し位置をそれぞれ制御し、前記第１及び第２の記録ヘッド夫々の記録解像度を互いに独立に制御することにより前記第１及び第２の記録ヘッドによるプリント出力を制御する制御手段とを有し、
前記制御手段は、前記指定された前記第１及び第２の記録ヘッドの記録解像度が互いに異なる場合、前記ノズル列の傾斜した角度に応じて、前記第１及び第２の記録ヘッド夫々のノズル列の所定数のノズルに対応する前記移動手段の移動方向に関する記録画素数のオフセット量を異ならせ、
前記第１の記録解像度が指定された場合と前記第２の記録解像度が指定された場合とで、前記異なるオフセット量を補償するべく、前記プリントバッファからのデータの読み出し位置をそれぞれ異ならせることを特徴とするプリンタ。
【請求項１０】
複数のノズルを配列したノズル列を有する第１の記録ヘッドと、
複数のノズルを配列したノズル列を有する第２の記録ヘッドと、
前記第１及び第２の記録ヘッドのノズル列が前記第１及び第２の記録ヘッドの移動方向に対して傾斜した角度をもつように設けられ、前記第１及び第２の記録ヘッドを記録媒体に対して相対的に移動させる移動手段と、
前記第１及び第２の記録ヘッド夫々で記録されるべきデータを記憶するプリントバッファと、
前記第１及び第２の記録ヘッドによるプリント出力を制御する制御手段とを有したインクジェットプリンタと、
前記インクジェットプリンタに接続され前記データを出力するためのプロセッサで実行可能なプリントドライバを含むホストプロセッサとを有し、
前記プリントドライバは、
前記第１及び第２の記録ヘッド夫々の記録解像度として、第１の記録解像度と前記第１の記録解像度よりも高い第２の記録解像度とを含む複数の記録解像度の内の１つの記録解像度を指定する指定処理を実行し、
前記指定処理により前記第１及び第２の記録ヘッド夫々について指定された各記録解像度に応じて、前記プリントバッファからのデータの読み出し位置をそれぞれ制御し、前記第１及び第２の記録ヘッド夫々の記録解像度を互いに独立に制御する制御処理を実行し、
前記制御処理では、前記指定処理により指定された前記第１及び第２の記録ヘッドの記録解像度が互いに異なる場合、前記ノズル列の傾斜した角度に応じて、前記第１及び第２の記録ヘッド夫々のノズル列の所定数のノズルに対応する前記移動方向に関する記録画素数のオフセット量を異ならせ、
前記第１の記録解像度が指定された場合と前記第２の記録解像度が指定された場合とで、前記異なるオフセット量を補償するべく、前記プリントバッファからのデータの読み出し位置をそれぞれ異ならせる処理を実行することを特徴とするプリントシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、解像度が互いに独立に制御される２つのインクジェット記録ヘッドを搭載したプリンタのようなマルチヘッドプリンタによるプリント出力に関するものである。
【０００２】
【従来の技術】
１つの記録ヘッドを搭載したインクジェットプリンタのような従来のプリンタでは、解像度を変えて連続するページをプリントすることが可能である。具体的には、各頁のプリント出力の開始にあたり、低記録解像度（例えば、３６０ｄｐｉ×３６０ｄｐｉ）或は高記録解像度（例えば、７２０ｄｐｉ×７２０ｄｐｉや７２０ｄｐｉ×１４４０ｄｐｉ）のような記録解像度を指定することができる。その結果、ある頁については第１の解像度でプリント情報を記録し、続く頁では異なる解像度でプリント情報を記録することが可能である。
【０００３】
任意の１頁のプリント情報には、しばしば、高解像度でプリントされることが好ましい情報と、必ずしも高解像度でプリントされる必要はない情報とが混在していることがある。例えば、１頁分のプリント情報が低解像度でも十分な文字情報と、高解像度が好ましい画像や線画のような文字ではない情報とから成り立っていることがあるかもしれない。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のシステムでは、各頁を１つの解像度でしかプリントすることができないために、そのような種類の異なる情報が混在したものは、高解像度でプリントしなければならず、そのため、低い解像度が適当なページ情報をプリントするときに、プリント効率が低下してしまうという結果になる。
【０００５】
近年になって提案されているプリントには、例えば、２つ以上の記録ヘッドをもつものがある。その代表的な例が、米国特許出願第０８／９０１７１９号（カラープリンタ用プリントドライバ“Ｐｒｉｎｔ  Ｄｒｉｖｅｒ  Ｆｏｒ  Ａ  Ｃｏｌｏｒ  Ｐｒｉｎｔｅｒ”）、米国特許出願第０８／９０１５６０号（プリンタ機器のための自動位置合わせシステム“Ａｕｔｏ−Ａｌｉｇｎｍｅｎｔ  Ｓｙｓｔｅｍ  Ｆｏｒ  Ａ  Ｐｒｉｎｔｉｎｇ  Ｄｅｖｉｃｅ”）で説明されている。これらの出願は本特許出願の共通の譲渡人となっており、これらはここで十分に説明がなされているかのように参照として組み込まれている。これら参照された出願は、２つの記録ヘッドを搭載したインクジェットプリンタについて説明しており、プリント情報はホストコンピュータからのコマンドによって各記録ヘッドによってプリントされる。複数の記録ヘッドをもつプリンタは、プリント効率を十分に高めることができる。しかしながら、発明者の知る限り、上述したように種類の異なるプリントデータをプリントするときに、プリント効率を高めることについての考慮は今までされていなかった。
【０００６】
本発明は上記従来例に鑑みてなされたもので、各記録ヘッドの解像度を独立に制御することにより、複数の記録ヘッドを有したプリンタのプリント効率を高めることを目的としている。
【０００７】
【課題を解決するための手段】
上記目的を達成するために本発明を１つの面から見れば、本発明は少なくとも第１及び第２の記録ヘッドをもつプリンタに適用可能である記録解像度の制御方法である。即ち、複数のノズルを配列したノズル列を有する第１の記録ヘッドと複数のノズルを配列したノズル列を有する第２の記録ヘッドとを用い、前記第１及び第２の記録ヘッドのノズル列が前記第１及び第２の記録ヘッドの移動方向に対して傾斜した角度をもつように設けられ、前記第１及び第２の記録ヘッド夫々で記録されるべきデータを記憶したプリントバッファから読み出したデータに基づいて前記第１及び第２の記録ヘッドを記録媒体に対して相対的に移動させながら記録を行うにあたり、前記第１及び第２の記録ヘッドの記録解像度を制御する記録解像度の制御方法であって、前記第１及び第２の記録ヘッド夫々の記録解像度として、第１の記録解像度と前記第１の記録解像度よりも高い第２の記録解像度とを含む複数の記録解像度の内の１つの記録解像度を指定する指定工程と、前記指定工程において前記第１及び第２の記録ヘッド夫々について指定された各記録解像度に応じて、前記プリントバッファからのデータの読み出し位置をそれぞれ制御し、前記第１及び第２の記録ヘッド夫々の記録解像度を互いに独立に制御する制御工程を有し、前記制御工程では、前記指定工程において指定された前記第１及び第２の記録ヘッドの記録解像度が互いに異なる場合、前記ノズル列の傾斜した角度に応じて、前記第１及び第２の記録ヘッド夫々のノズル列の所定数のノズルに対応する前記移動方向に関する記録画素数のオフセット量を異ならせ、前記第１の記録解像度が指定された場合と前記第２の記録解像度が指定された場合とで、前記異なるオフセット量を補償するべく、前記プリントバッファからのデータの読み出し位置をそれぞれ異ならせることを特徴とする。
【０００８】
各記録ヘッドの解像度が独立に制御されるために、１頁のプリント情報が高解像度が望ましいプリント情報とより低い解像度が適切である他のプリント情報とが混合されたものである場合に、プリント効率を向上させることができる。そのような状況では、１つの記録ヘッドが高解像度で記録するように制御され、もう１つの記録ヘッドがより低い解像度で記録するように制御される。そのとき、各記録ヘッドは記録解像度特性をマッチさせてそのプリント情報を記録ヘッドする。これにより、全体的なプリントプロセスをスピードアップする。
【０００９】
また、本発明を別の面から見ると、本発明は互いに独立に制御可能な記録解像度をもつ少なくとも第１及び第２の記録ヘッドをもつプリンタである。そのプリンタでは、各記録ヘッドに独立に記録解像度をセットするコマンドを受信し、そのコマンドにより命令された解像度に従ってプリント出力を実行する。
【００１０】
特に、好適な実施形態では、そのプリントには、構成が異なる複数の記録ヘッドを含み、例えば、第１の記録ヘッドでは高解像度のカラー画像を記録するようにし、第２の記録ヘッドではモノトーン（例えば、黒）画像を第１の記録ヘッドよりも広い記録幅にわたって記録するようにする。この構成において、第１の記録ヘッドには高解像度で文字ではない画像がプリントされるように命令され、一方、第２の記録ヘッドにはより低い解像度で文字画像をプリントするように命令される。その記録ヘッドには、プリントバッファのデジタルデータに基づいてインク液滴を吐出するインクジェット記録ヘッドが含まれているなら、解像度は、異なるサイズのインク液滴を吐出するよう命令することにより、そして、各プリントバッファのデジタルデータに異なる読み出し順序を命令することにより、変更される。
【００１１】
本発明をさらに別の面から見ると、本発明はユーザが文字のプリントデータと文字ではないプリントデータとが混合した１頁分のプリント情報の記録解像度を指定できるようにするインタフェースを含んでいる。そのユーザインタフェースによれば、ユーザは文字に対する解像度と文字ではない記録についての解像度とを異ならせて指定することができる。
【００１２】
さて、このように本発明の主旨をすばやく理解できるように本発明の概要について説明した。しかしながら、本発明の完全な理解は、添付図面に関連して説明した好適な実施形態を参照することによって得られるものである。
【００１３】
【発明の実施の形態】
以下添付図面を参照して本発明の好適な実施の形態について詳細に説明する。
【００１４】
好適な実施形態についての詳細な説明は、以下のように各節に構成されている。
１．０  機械的構成
１．１  構造
１．２  機能
１．２．１  手動清掃
１．２．２  カートリッジ交換
１．３  インクカートリッジ
１．４  記録ヘッドの構造
１．５  記録モード
２．０  電気的構成
２．１  システムアーキテクチャ
２．２  システムの機能
２．３  制御論理
２．４  一般的な動作
３．０  プリンタソフトウェアのアーキテクチャ
３．１  オペレーティングシステム
３．２  初期設定
３．３  タスク
３．４  割込みハンドラ
３．５  サイクリックハンドラ
３．６  ホストプロセッサへのコマンドおよびホストプロセッサからのコマンド
３．６．１  制御コマンド
３．６．２  設定コマンド
３．６．３  メンテナンスコマンド
３．７  プリンタエンジンへのコマンドおよびプリンタエンジンからのコマンド
４．０  用紙排出トレイ
４．１  第１の実施形態
４．２  第２の実施形態
５．０  インク清掃機構
６．０  プリンタプロファイルパラメータの記憶
７．０  記録ヘッドの清掃のスケジューリング
７．１  清掃スケジュールプロセス
７．２  自動清掃プロセス
７．３  記録ヘッドの清掃
８．０  記録ヘッド駆動パラメータの設定および修正
９．０  プリントバッファの動作
９．１  単一のプリントバッファ
９．２  バッファ制御についての一般的な説明
１０．０  いくつかの異なる解像度によるマルチヘッド印刷
１１．０  代替インクの選択
１１．１  ＣＭＹＫ黒または顔料黒の選択
１１．２  境界領域印刷
１１．３  いくつかの異なる解像度でのいくつかの異なるインクによる印刷
１．０機械的構成
この節では、本明細書で説明する本発明を含むプリンタの機械的配置および機能について説明する。
１．１  構造
図１は、本明細書で説明する本発明と共に使用されるコンピュータ装置の外観を示す図である。コンピュータ装置２０はホストプロセッサ２３を含む。ホストプロセッサ２３はパーソナル・コンピュータ（以下では「ＰＣ」と呼ぶ）、好ましくはＭｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ９５などのウィンドウ環境を有するＩＢＭ  ＰＣ互換コンピュータを備える。コンピュータ装置２０は、カラー・モニタなどを備えるディスプレイ画面２２と、テキスト・データおよびユーザ・コマンドを入力するためのキーボード２６と、ポインティング・デバイス２７とを備える。ポインティング・デバイス２７は好ましくは、ディスプレイ画面２２上に表示されたオブジェクトを操作するためのマウスを備える。
【００１５】
コンピュータ装置２０は、固定コンピュータ・ディスク２５などのコンピュータ読取り可能メモリ媒体と、フロッピィディスク・インタフェース２４とを含む。フロッピィディスク・インタフェース２４は、コンピュータ装置２０がフロッピィディスクに記憶されているデータ、アプリケーション・プログラムなどの情報にアクセスするための手段を提供する。コンピュータ装置２０は同様なＣＤ−ＲＯＭインタフェース（図示せず）を備えることができ、このインタフェースを通じて、コンピュータ装置２０は、ＣＤ−ＲＯＭ上に記憶されている情報にアクセスすることができる。
【００１６】
ディスク２５は特に、アプリケーション・プログラムを記憶し、このプログラムによって、ホストプロセッサ２３はファイルを生成し、そのファイルを処理してディスク２５上に記憶し、ファイル内のデータをディスプレイ画面２２を介してオペレータに与え、ファイル内のデータをプリンタ３０を介して印刷する。ディスク２５はオペレーティングシステム、すなわち上記で指摘したように、好ましくはＷｉｎｄｏｗｓ９５などのウィンドウ・オペレーティングシステムも記憶する。ディスク２５にはデバイスドライバも記憶される。少なくとも１つのデバイスドライバは、プリンタ３０内のファームウェアにソフトウェア・インタフェースを与えるプリンタドライバを備える。ホストプロセッサ２３とプリンタ３０との間のデータ交換について以下で詳しく説明する。
【００１７】
本発明の好ましい実施形態では、プリンタ３０はマルチヘッド・シリアル・プリンタである。したがって、本明細書で説明する本発明はそのようなプリンタとの併用に限らないが、本発明についてはそのようなプリンタに関して説明する。
【００１８】
なお、図２および図３はそれぞれ、プリンタ３０の詳細な斜視正面図および斜視背面図を示す。これらの図に示したように、プリンタ３０は、ハウジング３１と、アクセスドア３２と、自動フィーダ３４と、自動送りアジャスタ３６と、手動フィーダ３７と、手動送りアジャスタ３９と、媒体排出ポート４０と、排出トレイ４１と、トレイ・リセプタクル（受容部）４２と、インジケータ・ライト４３と、電源ボタン４４と、再開ボタン４６と、電源４７と、電源コード４９と、パラレルポートコネクタ５０とを含む。
【００１９】
ハウジング３１は、約幅４９８ｍｍ、奥行き２７１ｍｍ、高さ２１９ｍｍであり、記録媒体上に画像を印刷する後述のプリンタエンジンを含めプリンタ３０の内部機構を収容する。ハウジング３１上にはアクセスドア３２が含まれる。アクセスドア３２は、ユーザがプリンタ３０の内部機構にアクセスし、特に、プリンタ３０に設置された印刷カートリッジにアクセスできるように手動で開閉可能である。したがって、プリンタ３０は、アクセスドア３２が開閉されたときにそれを検知するセンサ（図示せず）も含む。アクセスドア３２が開放されたことが検知されると、カートリッジをプリンタ３０内で解放可能に保持するカートリッジ・リセプタクル（受容部）が、開放されたアクセスドア３２に対応する位置へ移動する。この機能の詳細については以下で説明する。
【００２０】
アクセスドア３２上に、インジケータ・ライト４３と電源ボタン４４と再開ボタン４６とを備えるフロント・パネルが配設される。電源ボタン４４は、ユーザがプリンタ３０のオンとオフを切り替えることのできるつまみである。しかし、電源ボタン４４を介して他の機能を使用することもできる。たとえば、プリンタ３０内のスピーカ（図示せず）が１回のビープ音などの音声を発するまで電源ボタン４４を押し続けることによって試験印刷機能を選択することができる。この試験印刷機能に応答して、プリンタ３０は試験パターンを印刷する。
【００２１】
再開ボタン４６は、エラー状態が発生した後にオペレータが印刷を再開することのできる制御を行う。また、再開ボタン４６を使用して他の機能を起動することができる。たとえば、プリンタ３０内のスピーカがビープ音を生成するまで再開ボタン４６を押し続けることによって記録ヘッド清掃機能を起動することができる。
【００２２】
なお、プリンタ３０は様々な連続ビープ音を与えることができる。これらの音声はそれぞれ、用紙なしや紙詰まりなど異なる種類のエラーを示す。
【００２３】
インジケータ・ライト４３は、単一の光導体と、緑発光ダイオード（以下では「ＬＥＤ」と呼ぶ）と、オレンジＬＥＤとで構成される。インジケータ・ライト４３は、プリンタ３０の動作状態の表示をユーザに与える。具体的には、インジケータ・ライト４３がオフであるとき、これは、プリンタ３０の電源がオフであることを示す。インジケータ・ライト４３が緑色に点灯している（すなわち、緑ＬＥＤが作動している）とき、これは、プリンタ３０の電源がオンであり、印刷準備が完了していることを示す。インジケータ・ライト４３が緑色に点滅しているとき、これは、プリンタの電源が現在オンであることなど、プリンタの動作状態を示す。
【００２４】
インジケータ・ライト４３は、オレンジＬＥＤによってオレンジ色に点灯させることもできる。インジケータ・ライト４３がオレンジ色に点灯しているとき、これは、プリンタ３０内で回復可能なエラー、すなわちオペレータ・コール・エラーが発生したことを示す。回復可能なエラーは、用紙なし、紙詰まり、プリンタ３０に設置されたカートリッジの欠陥、使用中のカートリッジの交換などを含む。プリンタ３０のスピーカからの何回かのビープ音に基づいて回復可能なエラーの種類を区別することが可能である。ユーザは、インジケータＬＥＤが連続的にオレンジ色であるときにこれらのビープを数えることによって、どのエラーが発生したかを判定し、それに応じて処置することができる。
【００２５】
インジケータ・ライト４３がオレンジ色に点滅しているとき、これは、プリンタ３０内で致命的なエラー、すなわちサービス・コール・エラーが発生したことを示す。ただオレンジ・ライトが何回点滅したかを数えることによって、発生した致命的なエラーの種類を区別することが可能である。
【００２６】
図２および図３に示したように、プリンタ３０のハウジング３１上には自動フィーダ３４も含まれる。自動フィーダ３４は、プリンタ３０の媒体送り部を規定している。すなわち、自動フィーダ３４は記録媒体を格納し、プリンタ３０はこの媒体上に画像を印刷する。なお、プリンタ３０は、様々な種類の記録媒体上に画像を印刷することができる。これらの媒体には、普通紙、高解像度紙、透明フィルム、光沢紙、光沢フィルム、バックプリントフィルム、ファブリックシート、Ｔシャツ転写、バブルジェット用紙、挨拶状、パンフレット用紙、バナーペーパ、厚紙などが含まれるが、それだけには限らない。
【００２７】
自動フィーダ３４は、厚さが約１３ｍｍの記録媒体スタックを収容することができる。これは、自動フィーダ３４がたとえば、密度が６４ｇ／ｍ２の約１３０枚の用紙、または約１５枚の封筒を保持できることを意味する。印刷時に、自動フィーダ３４内に積み重ねられた個々のシートは自動フィーダ３４からプリンタ３０内で送られる。具体的には、プリンタ３０内のローラ（後述）が個々の媒体を自動フィーダ３４からプリンタ３０に引き込む。これらの個々の媒体は次いで、「Ｊ」型経路へ送られ、ローラを通して、図２に示した排出ポート４０へ送られる。
【００２８】
自動フィーダ３４は、自動送りアジャスタ３６を含む。自動送りアジャスタ３６は自動フィーダ３４内にいくつかの異なる媒体サイズを収容するように横方向へ移動することができる。自動フィーダ３４はバッキング５５も含み、バッキングは、自動フィーダ３４に保持された記録媒体を支持するように延ばすことができる。バッキング５５は、使用されないときには、図２に示したように自動フィーダ３４のスロット内に格納される。延ばされたバッキング５５の例を以下の図２４に示す。
【００２９】
個別のシートは、図３に示した手動フィーダ３７を介してプリンタ３０内で送ることもできる。手動フィーダもプリンタ３０の媒体送り部を画定する。好ましい実施形態では、手動フィーダ３７は、密度が少なくとも６４ｇ／ｍ２ないし５５０ｇ／ｍ２であり、厚さが０．８ｍｍである媒体を収容することができる。手動フィーダ３７を通して送られたシートは、そのままプリンタ３０内のローラを通して排出ポート４０へ送られる。自動フィーダ３４の場合と同様に、手動フィーダ３７は手動送りアジャスタ３９を含む。ユーザは、手動送りアジャスタ３９を横方向へ摺動させることによって、手動フィーダ３７が収容することのできる媒体を変更することができる。
【００３０】
プリンタ３０は、手動フィーダ３７および自動フィーダ３４を使用して、様々な異なるサイズを有する媒体上に画像を印刷することができる。これらのサイズは、手紙と、リーガルと、Ａ４と、Ａ３と、Ａ５と、Ｂ４と、Ｂ５と、タブロイドと、Ｎｏ．１０サイズの封筒と、ＤＬサイズの封筒と、バナーと、ワイド・バナーと、レターサイズのフル・ブリードとを含むが、これらに限らない。カスタム・サイズの記録媒体をプリンタ３０と共に使用することもできる。
【００３１】
上記で指摘したように、媒体はプリンタ３０内で送られ、排出ポート４０から排出トレイ４１に排出される。以下の第４．０節で詳しく説明するように、排出トレイ４１はばねフラップを含み、このばねフラップは、プリンタ３０から排出された媒体を支持し、フラップ上により多くの媒体が積み重ねられると下向きに移動する。排出トレイ４１は、使用されないときには、図２に示したようにプリンタ３０のトレイ・リセプタクル４２内に格納される。
【００３２】
電源コード４９はプリンタ３０を外部ＡＣ電源に接続する。電源４７は、外部電源からのＡＣ電力を変換し、変換した電力をプリンタ３０に供給するために使用される。パラレル・ポート５０はプリンタ３０をホストプロセッサ２３に接続する。パラレル・ポート５０は好ましくは、ＩＥＥＥ−１２８４規格の双方向ポートを備え、このポートを介して、以下の第３．０節で説明するようなデータやコマンドがプリンタ３０とホストプロセッサ２３との間で伝送される。
【００３３】
図４および図５はそれぞれ、プリンタ３０の背面切取斜視図および正面切取斜視図を示す。図５に示したように、プリンタ３０は、媒体を自動フィーダ３４または手動フィーダ３７からプリンタ３０を通して媒体排出ポート４０へ搬送する、上記で指摘したローラを含む。ローラ６０は、図５に示した矢印６０ａで示したように、媒体搬送時に逆時計回り方向へ回転する。
【００３４】
ラインフィードモータ６１はローラ６０の回転を制御する。ラインフィードモータ６１は、９６ステップ２−２位相パルスモータを備え、回路ボード６２から受信されたコマンドに応答して制御される。ラインフィードモータ６１は、４レベル電流制御を有するモータドライバによって駆動される。
【００３５】
好ましい実施形態では、ラインフィードモータ６１は、記録媒体がプリンタ３０内で１２０ｍｍ／秒で送られるようにローラ６０を回転させることができる。ラインフィード解像度は、プリンタ３０の一次動作モードでは（１／７２０）インチ／パルス（２−２位相）であり、１４４０ｄｐｉモードでは（１／１４４０）インチ／パルス（１−２位相）である。印刷モードについては以下で詳しく説明する。
【００３６】
図４に示したように、プリンタ３０は、２つの記録ヘッドを使用して画像を印刷するデュアルカートリッジ・プリンタである（すなわち、カートリッジ当たり１ヘッド）。具体的には、これらのカートリッジは、カートリッジ上のそれぞれの記録ヘッドが互いに水平方向へずれるようにカートリッジ・リセプタクル６４ａおよび６４ｂによって並べて保持される。図５に示したキャリッジモータ６６は、回路ボード６２から受信されたコマンドに応答してカートリッジ・リセプタクル６４ａおよび６４ｂの動きを制御する。具体的には、キャリッジモータ６６はベルト６７の動きを制御し、ベルト６７はキャリッジ６９に沿ったカートリッジ・リセプタクル６４ａおよび６４ｂの移動を制御する。なお、キャリッジモータ６６はベルト６７、したがってカートリッジ・リセプタクル６４ａおよび６４ｂの２方向運動を可能にする。この機能によって、プリンタ３０は画像を左から右に印刷すると共に右から左に印刷することができる。
【００３７】
キャリッジモータ６６は、キャリッジ解像度が（９／３６０）インチ／パルスである９６ステップ２−２位相パルス・モータを備える。キャリッジモータ６６は、４レベル電流制御を有するモータドライバによって駆動される。プリンタ３０が３６０ｄｐｉモードで印刷しているとき、キャリッジモータ６６は、カートリッジ・リセプタクル６４ａおよび６４ｂをキャリッジ６９に沿ってデフォルト速度４５９．３２ｍｍ／秒（１０Ｋｈｚ）で移動させるように駆動される。一方、プリンタ３０が７２０ｄｐｉモードで印刷しているときには、キャリッジモータ６６は、カートリッジ・リセプタクル６４ａおよび６４ｂをキャリッジ６９に沿って２２９．６６ｍｍ／秒（５．０ＫＨｚ）のデフォルト速度で移動させるように駆動される。以下の第３．６．２節に記載するように、印刷速度を３．２６Ｋｈｚに低減することもできる。
【００３８】
図６Ａは、図４のカートリッジ・リセプタクル６４ｂの詳細な斜視図である。カートリッジ・リセプタクル６４ａとカートリッジ・リセプタクル６４ｂは、自動位置合わせ（「ＡＡ（Ａｕｔｏ  Ａｌｉｇｎｍｅｎｔ）」）センサの存在を除いて共に同じ構造を有する。自動位置合わせセンサはカートリッジ・リセプタクル６４ｂにのみ含まれる。したがって、話を簡潔にするために、本明細書ではカートリッジ・リセプタクル６４ｂについてのみ詳しく説明する。
【００３９】
カートリッジ・リセプタクル６４ｂは、プリンタ３０内で（記録ヘッドを含み、インクを貯蔵する１つまたは複数の取外し可能なインク容器を含むことのできる）インクカートリッジを保持するために使用される。なお、図７Ａおよび図７Ｂは、カートリッジ・リセプタクル６４ｂ内に設置することのできるインクカートリッジ３００ｂの構成を示す（図４参照）。図７Ａおよび図７Ｂに示したように、インクカートリッジ３００ｂは、記録ヘッド８０と、インク容器８３と、カートリッジ回路接点８１と、穴９０とを備える。この点で、取外し可能なインク容器を含まず、その代わりにすべてのインクを内部に貯蔵するインクカートリッジと共に本発明を使用することもできることに留意されたい。
【００４０】
インク容器８３は、インクカートリッジ３００ｂから取外し可能であり、画像を印刷するためにプリンタ３０によって使用されるインクを貯蔵する。具体的には、インク容器８３をカートリッジ３００ｂ内に挿入し、図７Ｂに示したように矢印８５の方向に沿って引くことによって取り外すことができる。容器８３は、以下で詳しく説明するように、カラー（たとえば、シアン、マゼンタ、イエロ）インクおよび／または黒インクを貯蔵することができる。記録ヘッド８０は、印刷時にインク容器８３からインクを排出する複数のノズル（図示せず）を含む。カートリッジ回路接点８１は、後述するように、インクカートリッジ清掃をトリガするためにプリンタ３０によって使用される。カートリッジ穴９０は、インクカートリッジ３００ｂを所定の位置に保持するようにカートリッジ・リセプタクル６４ｂ上のピン９３に対合する。
【００４１】
図６Ａにおいて、カートリッジ・リセプタクル６４ｂはその底部に開口部７９を含む。設置されたカートリッジの記録ヘッド８０などの記録ヘッドは開口部７９を通して突き出る。この構成によって、カートリッジの記録ヘッドはプリンタ３０内の記録媒体に接触することができる。カートリッジ・リセプタクル６４ｂはレバー７２とカプセル７３も含む。以下の第５．０節で詳しく説明するように、レバー７２は、インク容器の少なくとも一部の上方で延びるようにカートリッジ・リセプタクル６４ｂに貯蔵されたインクカートリッジのインク容器に対して旋回し、ユーザがインク容器にアクセスするのを可能にするようにインク容器から離れる方向へ旋回する。
【００４２】
カプセル７３は、カートリッジ・リセプタクル６４ｂ内にインクカートリッジ（記録ヘッドとインク容器とを含む）を保持し、レバー７２の旋回に応答してカートリッジ・リセプタクル６４ｂ内で横方向へ移動することができる。この横方向運動時に、カプセル７３上のフィンガ２８２は固定部５０２上のスリーブ２８４に摺動可能に係合する。この横方向運動によって、インクカートリッジ３００ｂ上のカートリッジ回路接点８１などのカートリッジ回路接点は、カートリッジ・リセプタクル６４ｂ上の回路接点、すなわち装置回路接点７１に係合しこの接点から係合解除する。このプロセスは、記録ヘッドの清掃を指示する信号を出力するために使用され、このプロセスについては以下で詳しく説明する。
【００４３】
図６Ｂは、カートリッジ・リセプタクル６４ｂの構成の背面図を示す。具体的には、図６Ｂは、カプセル７３と、レバー７２と、バック・ピース５０１と、固定部５０２（２点鎖線で示されている）の相互接続を示す。なお、レバー７２は、バック・ピース５０１の対応する穴５０４に接続するフィンガ５０７を含む。この構成によって、レバー７２が下向きに、図６Ｂに示した矢印Ａ１の方向へ旋回すると、バック・ピース５０１は上向きに、やはり図６Ｂに示した矢印Ａ２の方向へ移動する。逆に、レバー７２が上向きに、矢印Ｂ１の方向へ旋回すると、バック・ピース５０１は下向きに、矢印Ｂ２の方向へ移動する。バック・ピース５０１のこの上下移動は、前述のカプセル７３の横方向移動を制御する。
【００４４】
したがって、バック・ピース５０１は、レバー／バック・ピース・アセンブリが固定部５０２に設置されたときにばね装荷プッシュ・ロッド５１０と相互作用するカム表面５０９を含む。具体的には、レバー／バック・ピース・アセンブリは、フィンガ５０８および対応する穴５０６を介して固定部５０２に接続される。このように接続されると、バック・ピース５０１のカム表面５０９はカプセル７３の背部上のばねプッシュ・ロッド５１０に接触する。この接続によって、レバー７２が旋回したときにカプセル７３は横方向へ移動する。
【００４５】
具体的には、カム表面５０９が傾斜側面５１１と直線状側面５１２とを含むので、カム表面５０９が上向きに移動すると（すなわち、レバー７２がカプセル７３の方に矢印Ａ１の方向へ旋回し、それによってバック・ピース５０１、したがってカム表面５０９を上向きに矢印Ａ２の方向へ移動させると）、プッシュ・ロッド５１０は、カム表面５０９の傾斜側面５１１によって矢印Ａ４の方向に押される。この動きによって、カプセル７３は、図６Ｂに示した矢印Ａ３の方向へ移動する。
【００４６】
逆に、カム表面が下向きに移動すると（すなわち、レバー７２がカプセル７３から離れ矢印Ｂ１の方向へ旋回し、それによってバック・ピース５０１、したがってカム表面５０９を下向きに矢印Ｂ２の方向へ移動させると）、プッシュ・ロッド５１０はもはや傾斜側面５１１には接触しない。その代わり、カム表面５０９は、プッシュ・ロッド５１０が直線状側面５１２に対応するように移動する。この位置で、ばね５１３は、カプセル７３の下方に配設され、カプセル７３を固定部５０２に対してバイアスさせ、図６Ｂに示した矢印Ｂ３の方向へカプセル７３を移動させる。
【００４７】
図６Ｂに示したように、レバー７２は、カプセル／固定部アセンブリ上のショルダ２８６に接触するフランジ２８７も含む。以下で詳しく説明するように、この接触によって、レバー７２がカートリッジ・リセプタクル６４ｂ内のカートリッジおよび／またはインク容器に係合する可能性は低減する。
【００４８】
図６Ａに示したように、カートリッジ・リセプタクル６４ｂは自動位置合わせセンサ８２を含む。自動位置合わせセンサ８２は、プリンタ３０によって形成されたドット・パターンの位置を検知する。この情報は、プリンタ３０内のすべての記録ヘッドを位置合わせするために使用される。カートリッジ・リセプタクル６４ａおよび６４ｂに関連してホーム位置センサ（図示せず）も含まれる。ホーム位置センサは、カートリッジ・リセプタクル６４ａおよび６４ｂがカートリッジ６９に対するホーム位置にあるときにそれを検出するために使用される。ホーム位置の位置および意義については以下で詳しく説明する。
【００４９】
図４に戻るとわかるように、プリンタ３０はワイパ８４ａおよび８４ｂとインク清掃機構８６とを含む。インク清掃機構８６は、ホーム位置８７に配設され、回転ポンプ（図示せず）と記録ヘッド接続キャップ８８ａおよび８８ｂとを備える。プリンタ３０の電源をオフにしたときなど記録ヘッド清掃時およびその他の時に、記録ヘッド接続キャップはそれぞれ、カートリッジ・リセプタクル６４ａおよび６４ｂに設置されたカートリッジの記録ヘッドに接続される。
【００５０】
ラインフィードモータ６１は、記録ヘッド接続キャップ８８ａに接続された記録ヘッドから余分のインクを吸引するようにインク清掃機構８６の回転ポンプを駆動する。以下の第５．０節で詳しく説明するように、インクはユーザが指定した一方のカートリッジまたは両方のカートリッジからのみ吸引される。ユーザ指定については以下で説明する。
【００５１】
ワイパ８４ａおよび８４ｂは、カートリッジ記録ヘッドから余分のインクをふき取るためにキャリッジモータ６６によって駆動されるブレードなどを備えることができる。具体的には、ワイパ８４ａおよび８４ｂは、所定の条件が確立された後に記録ヘッドに接触するように持ち上げられる。たとえば、記録ヘッドによって所定数のドットが印刷された後にワイパ８４ａおよび８４ｂを持ち上げることができる。
１．２  機能
プリンタ３０は、アクセスドア３２およびプリンタ３０のフロント・パネルを介して使用することのできる様々な機能を含む。それらの機能の説明を次に行う。
１．２．１  手動清掃
プリンタ３０は、そのフロント・パネルを介して起動することのできる手動清掃機能を含む。具体的には、手動清掃は、２秒間続くビープをプリンタ３０が発するまで再開ボタン４６を押し続けることによって起動される。手動清掃が起動されたことを示すために、インジケータ・ライト４３が点滅する。次いで、印刷プロセス中の媒体が排出ポート４０から排出される。インク清掃機構８６は次いで、カートリッジ・リセプタクル６４ａおよび６４ｂに格納されたインクカートリッジの記録ヘッドを清掃し、たとえば記録ヘッドからインクを吸引しインクをふき取り、吸引されふき取られたインクは廃棄インク貯蔵領域に貯蔵される。その後、インジケータ・ライト４３は、点滅を停止し、エラーが発生しなかった場合にはオンに切り替えられる。廃棄インク・エラーが発生した場合、たとえば、廃棄インク貯蔵領域がほぼ満杯である場合は、オレンジＬＥＤがインジケータ・ライト４３を照明し、プリンタ３０がビープ音を６回発する。
１．２．２  カートリッジ交換
プリンタ３０の電源がオフであるか、あるいは記録媒体がシート・フィーダから送られるか、あるいはプリンタ３０が印刷中であるかホストプロセッサ２３からデータを受信したか、あるいは用紙なしエラーまたは紙詰まりエラーが発生するか、あるいはプリンタ３０内の記録ヘッドの温度が過度に高いか、あるいは致命的なエラーが発生するなどの条件が存在しないかぎり、プリンタ３０は、アクセスドア３２が開放された後カートリッジ交換モードに入る。
【００５２】
なお、一般に、プリンタ・セットアップ時にインクカートリッジまたはインク容器全体を設置するときにも、あるいはプリンタが装置としての寿命がある間に、使用済みのカートリッジまたは容器あるいは欠陥のあるカートリッジまたは容器を交換するときにも、カートリッジ交換モードに入る。初期プリンタ・セットアップ時に、一方のカートリッジ・リセプタクル６４ａまたは６４ｂにはインクカートリッジまたは容器がない。このことを知らせるために、インジケータ・ライト４３が点滅する。カートリッジまたは容器を設置するとき、ユーザはアクセスドア３２を開放し、それによって、後述のようにカートリッジ・リセプタクル６４ａおよび６４ｂをキャリッジ６９に沿って中央位置へ移動させる。この位置で、ユーザは、単にカートリッジ・リセプタクル６４ａおよび６４ｂのレバー７２を持ち上げ、カートリッジを記録ヘッドの方からカートリッジ・リセプタクル６４ａおよび６４ｂ内に落下させ、レバー７２を閉じることによってインクカートリッジを設置することができる。空のインクカートリッジまたは欠陥のあるインクカートリッジを交換するプロセスは、本節で説明するプロセスと同じである。インク容器を交換するとき、ユーザは欠陥のあるインク容器または空のインク容器をカートリッジから引き離し、その位置に新しいインク容器を挿入することができる。
【００５３】
カートリッジ交換モードを終了するには、ユーザはアクセスドア３２を閉鎖するだけでよい。交換モードが終了した後、プリンタ３０は、新たに設置されたカートリッジを検査して、正しく設置されているかどうかを判定する。カートリッジまたは容器が正しく設置されている場合、プリンタ３０はカートリッジ・リセプタクル６４ａおよび６４ｂをホーム位置８７へ移動させる。一方、カートリッジまたは容器が正しく設置されていないか、あるいは何らかの理由で使用することができない（たとえば、カートリッジまたは容器に欠陥がある）場合、インジケータ・ライト４３がオレンジ色に点灯する。また、プリンタ３０は、カートリッジ・リセプタクル６４ｂ内のインクカートリッジに問題があることを示すときはビープを３回発し、カートリッジ・リセプタクル６４ａ内のインクカートリッジに問題があることを示すときはビープを４回発する。
１．３  インクカートリッジ
本明細書で説明するプリンタは、いくつかの異なる種類のインクを貯蔵する取外し可能なインク容器を含むインクカートリッジを使用することができる。そのようなカートリッジの例を図７Ｂおよび図７Ｃに示す。しかし、上記で指摘したように、取外し可能なインク容器を含まず、その代わりにすべてのインクを内部に貯蔵する使い捨てインクカートリッジと共に本発明を使用することもできる。そのようなカートリッジの例を図７Ａに示す。
【００５４】
一般に、プリンタ３０は様々な異なるカートリッジタイプと共に動作することができる。たとえば、プリンタ３０は、染料ベースの黒インクを貯蔵し、垂直方向へ延びる１２８個のノズルを含む記録ヘッドを有するカートリッジを使用することができる。そのようなカートリッジの例はＣａｎｏｎ  ＢＣ−２０カートリッジである。顔料黒インクを貯蔵する同様な種類のカートリッジを使用することもできる。なお、一般的に言えば、染料ベースの黒インクは、記録媒体に対する高浸透特性を有する。一方、顔料ベースの黒インクは一般に、記録媒体に対する低浸透（場合によっては非浸透）特性を有する。
【００５５】
プリンタ３０は、カラーインクカートリッジと共に動作することもできる。たとえば、プリンタ３０は、シアンインク、マゼンタインク、イエロインク、黒インクを貯蔵し、垂直方向へ延びる１３６個のノズルを含むインクカートリッジと共に動作することができる。そのようなカートリッジでは、２４個のノズルがシアンインクの印刷を行い、２４個のノズルがマゼンタインクの印刷を行い、２４個のノズルがイエロインクの印刷を行い、６４個のノズルが黒インクの印刷を行う。そのようなカートリッジの例はＣａｎｏｎ  ＢＣ−２１（ｅ）カートリッジである。
【００５６】
プリンタ３０と共に使用できるさらに他の例のインクカートリッジでは、低光学濃度（たとえば、「写真」）インクを貯蔵し、垂直方向に配置された１３６個のカートリッジを含む。そのようなカートリッジも、前述のカラーカートリッジと同じノズル構成を有する。
１．４  記録ヘッドの構造
本発明と共に使用できるカートリッジの記録ヘッドの物理構成に関して、図８は、プリンタ３０が記録ヘッド９８を含み、記録ヘッドが１２８個のノズルを有しほぼ垂直に構成され、各ノズルが、隣接するノズルに近接して離間される場合のノズル構成の詳細な正面図を示す。そのような構成は単色（黒など）印刷に好ましい。記録ヘッドが記録媒体を横切って移動する際にノズルからすべてのインクを一度に射出するのではなく、インクを短い間隔を置いて連続して射出して垂直線を印刷することが可能になるように、ノズルは好ましくはわずかに斜めに傾斜した角度に配置される。ノズルからインクを短い間隔を置いて連続して射出するための電力要件および制御要件は、すべてのインクを一度に射出するための電力要件および制御要件と比べて著しく低減される。１つの好ましい構成のノズル列の傾斜角度は、３６０ｄｐｉ解像度であれば、垂直方向に１６ノズル毎に水平方向には１画素分だけずれるような角度に対応している。
【００５７】
記録ヘッド９９は、垂直に対してわずかに傾斜した角度に重なり合うように配置された、好ましくはイエロインク用の２４個のノズルと、好ましくはマゼンタインク用の２４個のノズルと、好ましくはシアンインク用の２４個のノズルと、好ましくは黒インク用の６４個のノズルとを含む１３６個のノズルを有する。ノズルの各色群は、８つのノズルに対応する垂直ギャップだけ、隣接する群から分離される。わずかに斜めの角度はこの場合も、３６０ｄｐｉの解像度であれば、垂直方向に１６ノズル毎に水平方向には１画素分だけずれるような傾きをもつように配置される。
１．５  印刷モード
プリンタ３０は、その動作時に、ホストプロセッサ２３（図１参照）からプリンタ３０に発行されたコマンドを介して設定できるいくつかの異なるモードを含む。これらのモードでは、プリンタ３０に設置されたカートリッジは、それぞれの異なるサイズのインク滴を吐出し、それぞれの異なる解像度を有する画像を形成することができる。プリンタ３０のあるモードが利用できるかどうかは、１つにはプリンタ３０に設置されたカートリッジの種類に依存する。すなわち、ある種のカートリッジ上の記録ヘッドは、いくつかの異なるサイズの液滴、たとえば大きなインク滴または小さなインク滴を吐出することができ、それに対して他の種類のカートリッジ上の記録ヘッドは、単一のサイズを有する液滴を吐出することができる。
【００５８】
上記指摘したように、それぞれの異なるプリンタ動作モード中にそれぞれサイズの異なるインク滴を使用して、それぞれの異なる解像度を有する画像が形成される。具体的には、インクジェットプリンタはページ上にドットを形成することによって画像を生成する。形成される画像の解像度は、１つには形成されるドットの数に対応し、１つにはそれらのドットが形成される構成に対応する。本発明のプリンタでは、前述の大きなインク滴と小さなインク滴のどちらかを使用して様々な異なる解像度で画像を形成することができる。
【００５９】
この点で、印刷時のドット割振りおよび配置が、１つには、印刷時に使用される用紙の種類に基づいて制限されることに留意されたい。具体的には、普通紙は、３６０ｄｐｉ画素中に最大で約４つの小さな液滴を吸収することができ、それに対して高解像度（以下、”ＨＲ−１０１”と呼ぶ）紙は、３６０ｄｐｉ画素中に最大で６つの小さな液滴を吸収することができる。
【００６０】
前述のことを考慮すると、図９は、通常の（すなわち、ノンフォト）インクと任意の種類の用紙を使用した１８０ドット水平方向（Ｈ）×１８０ライン垂直方向（Ｖ）ラスタ化における各画素についての液滴配置を示す。図９に示したように、この配置は、３つのレベルを可能にし、大きな液滴を使用して３６０ドット（Ｈ）×３６０ライン（Ｖ）ｄｐｉプリントアウトを達成することができる。
２．０電気的構成
第１．０節で説明したように、プリンタ３０は複数の記録ヘッドを黒−黒、黒−カラー、カラー−カラー、カラー−フォトなどいくつかの異なる組合せで使用することができ、それによっていくつかの印刷モードをそれぞれの異なる解像度（たとえば、１８０ｄｐｉ、３６０ｄｐｉ、７２０ｄｐｉ）で実行することができる。さらに、テキスト、テキストおよびカラー、カラーおよび高品質カラーなどそれぞれの異なる印刷モードごとに記録ヘッドの組合せを変更することができる。その結果、それぞれの異なるモード用の印刷タスクは、記録ヘッドの組合せ、記録媒体、画質に基づいて異なる複雑な操作を必要とする。図１の情報処理システムでは、記録ヘッドの構成、記録ヘッドの位置合わせなどに関するプリンタ・パラメータは、プリンタ３０内に記憶され、プリンタ３０によって得られたデータに基づいてホストプロセッサ２３へ送信される。したがって、ホストプロセッサ２３内のプリンタドライバは、印刷データの複雑な処理および様々な印刷モードに対するプリンタのセットアップを実行し、印刷の実行を簡略化する指示コマンド・シーケンスをプリンタへ送信する。この利点としては、プリンタのアーキテクチャが簡略化され、同時に、ホストプロセッサ２３に対する印刷処理の要求は、ホストプロセッサ２３の動作にほとんどあるいはまったく影響を与えないことがある。
２．１  システムアーキテクチャ
図１０は、ホストプロセッサ２３およびプリンタ３０の内部構造を示すブロック図である。図１０で、ホストプロセッサ２３は、コンピュータバス１０１と相互接続されたプログラム可能なマイクロプロセッサなどの中央演算処理装置（ＣＰＵ）１００を含む。コンピュータバス１０１には、ディスプレイ２２とのインタフェースをとるディスプレイ・インタフェース１０２と、双方向通信回線１０６を通してプリンタ３０とのインタフェースをとるプリンタ・インタフェース１０４と、フロッピィディスク１０７とのインタフェースをとるフロッピィディスク・インタフェース２４と、キーボード２６とのインタフェースをとるキーボード・インタフェース１０９と、ポインティングデバイス２７とのインタフェースをとるポインティングデバイス・インタフェース１１０も結合される。ディスク２５は、オペレーティングシステム１１１を記憶するオペレーティングシステム部と、アプリケーション１１２を記憶するアプリケーション部と、プリンタドライバ１１４を記憶するプリンタドライバ部とを含む。
【００６１】
ランダム・アクセス・メイン・メモリ（以下、”ＲＡＭ”と呼ぶ）１１６はコンピュータバス１０１とのインタフェースをとり、ＣＰＵ１００がメモリ記憶域にアクセスすることを可能にする。特に、ディスク２５のアプリケーション部１１２に記憶されているアプリケーション・プログラムに関連する命令シーケンスなど記憶されているアプリケーション・プログラム命令シーケンスを実行する際に、ＣＰＵ１００がそのようなアプリケーション命令シーケンスをディスク２５（あるいはネットワークまたはフロッピィディスク・ドライブ２４を介してアクセスされた媒体などの他の記憶媒体）からＲＡＭ１１６にロードし、そのような記憶されているプログラム命令シーケンスをＲＡＭ１１６から実行する。ＲＡＭ１１６は、以下で詳しく説明するように、本発明によるプリンタドライバ１１４によって使用される印刷データ・バッファを備える。ウィンドウ・オペレーティングシステムの下で使用できる標準的なディスク・スワッピング技術によって、前述の印刷データ・バッファを含めてメモリのセグメントをディスク２５との間でスワップできることも認識されたい。ホストプロセッサ２３内の読取り専用メモリ（以下、”ＲＯＭ”と呼ぶ）４３は、キーボード２６の操作に関する立上げ命令シーケンスや基本入出力オペレーティングシステム（ＢＩＯＳ）シーケンスなどの不変的な命令シーケンスを記憶する。
【００６２】
図１０に示し、上記で述べたように、ディスク２５は、ウィンドウ・オペレーティングシステムに関するプログラム命令シーケンスと、グラフィックス・アプリケーション・プログラム、描画アプリケーション・プログラム、デスクトップ・パブリッシング・アプリケーション・プログラムなど様々なアプリケーション・プログラムに関するプログラム命令シーケンスとを記憶する。ディスク２５は、指定されたアプリケーション・プログラムの制御下でディスプレイ２２によって表示しプリンタ３０によって印刷することのできるようなカラー画像ファイルも記憶する。ディスク２５はまた、マルチレベルＲＧＢ原色をどのようにディスプレイ・インタフェース１０２に与えるかを制御するカラーモニタドライバを他のドライバ部１１９に記憶する。プリンタドライバ１１４は、プリンタ３０を白黒およびカラー印刷できるように制御し、印刷データをプリンタ３０の構成に従ってプリントアウトできるように供給する。印刷データはプリンタ３０へ転送され、プリンタドライバ１１４の制御下で、回線１０６に接続されたプリンタ・インタフェース１０４を通し、ホストプロセッサ２３とプリンタ３０との間で制御信号が交換される。ホストプロセッサ２３に接続されたネットワーク装置やファクシミリ装置など様々な装置に適切な信号を与える他のデバイスドライバもディスク２５に記憶される。
【００６３】
通常、ディスク２５上に記憶されているアプリケーションプログラムおよびドライバはまず、それらのプログラムおよびドライバが最初に記憶された他のコンピュータ読取り可能な媒体からディスク２５上にユーザによってインストールされる必要がある。たとえば、ユーザは通常、プリンタドライバのコピーが記憶されている、フロッピィディスク、またはＣＤ−ＲＯＭなど他のコンピュータ読取り可能な媒体を購入する。ユーザは次いで、プリンタドライバをディスク２５上にコピーする周知技術を通してプリンタドライバをディスク２５上にインストールする。同時に、ユーザは、モデム・インタフェース（図示せず）またはネットワーク（図示せず）を介して、ファイル・サーバまたはコンピュータ化された掲示板からのダウンロードなどによってプリンタドライバをダウンロードすることも可能である。
【００６４】
再び図１０を参照するとわかるように、プリンタ３０は、バス１２６に接続された、プログラム可能なタイマと割込みコントローラとを含む８ビット・マイクロプロセッサまたは１６ビット・マイクロプロセッサなどのＣＰＵ１２１と、ＲＯＭ１２２と、制御論理１２４と、入出力ポート・ユニット１２７とを含む。制御論理１２４にはＲＡＭ１２６も接続される。制御論理１２４は、ラインフィードモータ６１用のコントローラと、ＲＡＭ１２９内の印刷画像バッファ記憶域用のコントローラと、加熱パルス生成用のコントローラと、ヘッド・データ用のコントローラとを含む。制御論理１２４はまた、プリンタエンジン１３１の記録ヘッド１３０ａおよび１３０ｂ内のノズル、キャリッジモータ６６、ラインフィードモータ６１に対する制御信号と、記録ヘッド１３０ａおよび１３０ｂに関する印刷データを与え、記録ヘッド１３０ａおよび１３０ｂの位置合わせに関する情報を入出力ポート・ユニット１２７を通してプリンタエンジン１３１から受信する。ＥＥＰＲＯＭ１３２は入出力ポート・ユニット１２７に接続され、記録ヘッド構成パラメータや記録ヘッド位置合わせパラメータなどのプリンタ情報用の非揮発性メモリを形成する。ＥＥＰＲＯＭ１３２は、プリンタ３０の動作パラメータをホストプロセッサ２３に知らせるためにホストプロセッサ２３のプリンタドライバ１１４へ送信される、プリンタ、ドライバ、記録ヘッド、記録ヘッドの位置合わせ、カートリッジ内のインクの状況などを識別するパラメータも記憶する。
【００６５】
入出力ポート・ユニット１２７はプリンタエンジン１３１に結合され、プリンタエンジン内で、（それぞれ、カートリッジ・リセプタクル６４ａおよび６４ｂに格納される）一対の記録ヘッド１３０ａおよび１３０ｂは、記録媒体を走査し、同時にＲＡＭ１２９内のプリントバッファから得た印刷データを使用して印刷を行うことによって記録媒体上で記録を行う。制御論理１２４は、通信回線１０６を介してホストプロセッサ２３のプリンタ・インタフェース１０４にも結合され、制御信号を交換し、印刷データおよび印刷データ・アドレスを受信する。ＲＯＭ１２２は、フォントデータと、プリンタ３０を制御するために使用されるプログラム命令シーケンスと、プリンタの動作に関するその他の不変データを記憶する。ＲＡＭ１２９は、記録ヘッド１３０ａおよび１３０ｂ用のプリンタドライバ１１４によって定義されたプリントバッファに印刷データを記憶し、かつプリンタの動作に関するその他の情報を記憶する。
【００６６】
プリンタエンジン１３１の記録ヘッド１３０ａおよび１３０ｂは、それぞれ、カートリッジ・リセプタクル６４ａおよび６４ｂに記憶されているインクカートリッジに対応する。参照番号１３４で総称されるセンサ群は、プリンタの状況を検出し、温度を測定し、印刷に影響を与えるその他の数量を検出するように配置される。カートリッジ・リセプタクル６４内の光センサ（たとえば、図６Ａに示したセンサ８２）は、自動位置合わせのために印刷濃度およびドット位置を測定する。センサ群１３４はまた、アクセス・カバー３２の開閉状況、記録媒体の存在などその他の状態を検出するようにプリンタエンジン１３１内に配置される。また、ダイオードセンサは、サーミスタを含み、記録ヘッド１３０ａおよび１３０ｂに配置され、記録ヘッド温度を測定する。この温度は入出力ポート・ユニット１２７へ送信される。
【００６７】
入出力ポート・ユニット１２７はまた、電源ボタン４４や再開ボタン４６などのスイッチ１３３から入力を受信し、ＬＥＤ１３５、インジケータ・ライト４３、ブザー１２８へ制御信号を送信し、それぞれ、ラインフィードモータ・ドライバ６１ａおよびキャリッジモータ・ドライバ６６ａを介してラインフィードモータ６１、キャリッジモータ６６に制御信号を送信する。前述のように、ブザー１２８はスピーカを備えることができる。
【００６８】
図１０はプリンタ３０の個々の構成要素を互いに別々で異なるものとして示しているが、いくつかの構成要素を組み合わせられることが好ましい。たとえば、制御論理１２４をＡＳＩＣの入出力ポート１２７と組み合わせて、プリンタ３０の機能のための相互接続を簡略化するようにしても良い。
２．２  システムの機能
図１１は、ホストプロセッサ２３とプリンタ３０との間の相互作用を示すハイレベル機能ブロック図である。図１１に示したように、ディスク２５のアプリケーション部１１２に記憶されており画像処理アプリケーションプログラム１１２ａから印刷命令が発行されると、オペレーティングシステム１１１はプリンタドライバ１１４にグラフィックスデバイスインタフェース呼出しを発行する。プリンタドライバ１１４は、印刷命令に対応する印刷データを生成することによって応答し、この印刷データを印刷データ・ストア１３６に記憶する。印刷データ・ストア１３６は、ＲＡＭ１１６またはディスク２５に存在することができ、あるいはオペレーティングシステム１１１のディスク・スワッピング動作によって、印刷データ・ストア１３６を最初にＲＡＭ１１６に記憶しておきディスク２５との間でスワップすることができる。その後、プリンタドライバ１１４は、印刷データを印刷データ・ストア１３６から得て、プリンタ・インタフェース１０４を通して双方向通信回線１０６へ送信し、プリンタ制御機構１４０を通してプリントバッファ１３９へ送信する。プリントバッファ１３９はＲＡＭ１２９に存在し、プリンタ制御機構１４０は図１０の制御論理機構１２４およびＣＰＵ１２１に存在する。プリンタ制御機構１４０は、ホストプロセッサ２３から受信されたコマンドに応答してプリントバッファ１３９内の印刷データを処理し、ＲＯＭ１２２（図１０参照）に記憶されている命令の制御下で印刷タスクを実行し、記録媒体上に画像を記録するのに適切な記録ヘッド制御信号およびその他の制御信号をプリンタエンジン１３１に与える。
【００６９】
プリントバッファ１３９は、記録ヘッド１３０ａおよび１３０ｂのうちの一方によって印刷すべき印刷データを記憶する第１の部分と、記録ヘッド１３０ａおよび１３０ｂのうちの他方によって印刷すべき印刷データを記憶する第２の部分とを有する。各プリントバッファ部は、関連する記録ヘッドの印刷位置の数に対応する記憶位置を有する。これらの記憶位置は、印刷について選択された解像度に従ってプリンタドライバ１１４によって定義される。各プリントバッファ部は、記録ヘッド１３０ａおよび１３０ｂの印刷速度へのランプアップ時に印刷データを転送するための追加の記憶位置も含む。印刷データは、ホストプロセッサ２３内の印刷データ・ストア１３６から、プリンタドライバ１１４からアドレスされたプリントバッファ１３９の記憶位置へ送信される。その結果、ランプアップ時にも現在の走査による印刷時にも、次に走査される印刷データをプリントバッファ１３９内の空記憶位置に挿入することができる。
２．３  制御論理
図１２は、図１０の制御論理１２４および入出力ポート・ユニット１２７のブロック図を示す。前述のように、入出力ポート・ユニットは制御論理１２４内に含めることもできる。図１０で、ユーザ論理バス１４６は、プリンタＣＰＵ１２１と通信できるようにプリンタ・バス１２６に接続される。バス１４６は、ＩＥＥＥ−１２８４規格のプロトコル通信などの双方向通信を行うために双方向回線１０６に接続されたホストコンピュータ・インタフェース１４１に結合される。したがって、双方向通信回線１０６はホストプロセッサ２３のプリンタ・インタフェース１０４にも結合される。ホストコンピュータ・インタフェース１４１はバス１４６に接続され、プリントバッファ１３９（図１０および図１１参照）を含むＲＡＭ１２９を制御するためにＤＲＡＭバス・アービタ／コントローラ１４４に接続される。データ圧縮器１４８は、バス１４６とＤＲＡＭバス・アービタ／コントローラ１４４との間に接続され、処理時に印刷データを伸張する。バス１４６には、図１０のラインフィードモータ・ドライバ６１ａに接続されたラインフィードモータ・コントローラ１４７と、記録ヘッド１３０ａおよび１３０ｂのそれぞれに対するシリアル制御信号およびヘッド・データ信号を与える画像バッファ・コントローラ１５２と、記録ヘッド１３０ａおよび１３０ｂのそれぞれに対するブロック制御信号およびアナログ加熱パルスを与える加熱パルス生成装置１５４も結合される。ラインフィードモータ６１とキャリッジモータ６６が並行して動作できるので、キャリッジモータ制御は入出力ポート・ユニット１２７およびキャリッジモータ・ドライバ６６ａを通してＣＰＵ１２１によって実行される。
【００７０】
制御論理１２４は、ホストコンピュータ・インタフェース１４１および双方向通信回線１０６を通して、ＣＰＵ１２１で使用できるコマンドをホストプロセッサ２３から受信し、プリンタ状況信号およびその他の応答信号をホストプロセッサ２３へ送信するように動作する。ホストプロセッサ２３から受信された印刷データおよび印刷データに関するプリントバッファ・メモリ・アドレスは、ＤＲＡＭバス・アービタ／コントローラ１４４を介してＲＡＭ１２９内のプリントバッファ１３９へ送信され、プリントバッファ１３９から得たアドレスされた印刷データは、コントローラ１４４を通してプリンタエンジン１３１へ転送され、記録ヘッド１３０ａおよび１３０ｂによって印刷される。なお、加熱パルス生成装置１５４は、印刷データを印刷するために必要なアナログ加熱パルスを生成する。
【００７１】
図１３は、プリンタ３０用のメモリアーキテクチャを示す。図１３に示したように、ＥＥＰＲＯＭ１３２と、ＲＡＭ１２９と、ＲＯＭ１２２と、制御論理１２４用の一時記憶域１６１は、単一アドレス指定構成を有するメモリ構造を形成する。図１３を参照するとわかるように、非揮発性メモリ部１５９として示したＥＥＰＲＯＭ１３２は１組のパラメータを記憶し、これらのパラメータは、ホストプロセッサ２３によって使用され、プリンタおよび記録ヘッドと、記録ヘッドの状況と、記録ヘッドの位置合わせと、記録ヘッドのその他の特性を識別する。ＥＥＰＲＯＭ１３２も、プリンタ３０によって使用される、清掃時間、自動位置合わせセンサ・データなど他の１組のパラメータを記憶する。ＲＯＭ１２２は、メモリ部１６０として示されており、プリンタ・タスクのプログラム・シーケンス、ノズル加熱パルスの生成などを制御するために使用される記録ヘッド動作温度テーブルなど、プリンタの動作に関する不変の情報を記憶する。ランダム・アクセス・メモリ部１６１は、制御論理１２４に関する一時動作情報を記憶し、ＲＡＭ１２９に対応するメモリ部１６２は、プリンタ・タスクに関する可変動作データ用の記憶域とプリントバッファ１３９とを含む。
２．４  一般的な動作
図１４は、図１０のブロック図に示した情報処理システムの一般的な動作を示すフローチャートである。図１４のステップＳ１４０１でプリンタ３０の電源がオンに切り替えられた後、ステップＳ１４０２でプリンタ７０が初期設定される。初期設定時には、以下の第３．２節で詳しく論じ図１９および図２０に示すように、ＣＰＵ１２１、制御論理１２４、システム・タイマが初期状態に設定される。また、プリンタ３０のＲＯＭ１２１、ＲＡＭ１２９、ＥＥＰＲＯＭ１３２が検査され、プリンタ３０に電源が投入されたときにＣＰＵ１２１の割込み要求レベルが割り当てられる。プリンタ３０がそのオン状態に設定されると、プリンタドライバ１１４によってＥＥＰＲＯＭ１３２が読み取られ、プリンタをリセットすること、記録ヘッド清掃を行うべきであるかどうかをシステム・タイマに基づいて判定することなどのコントローラ・タスクがプリンタＣＰＵ１２１によって開始される。また、ステップＳ１４０２の初期設定プロセスでは、データ圧縮モードが選択され、記録ヘッド１３０ａおよび１３０ｂに対する加熱パルスが定義され、バッファ制御が定義され、プリントバッファ１３９がクリアされ、プリンタ３０の状況を示すメッセージが表示される。
【００７２】
次に、ステップＳ１４０３が実行される。ステップＳ１４０３で、記録ヘッドの構成が変更されていると判定された場合、プリンタドライバ１１４は、ヘッドの構成および位置合わせに関するプリンタの測定に基づいてプリンタＣＰＵ１２１から得られたデータからプリンタ・パラメータを算出する。位置合わせシステムは、１９９７年７月２８日に出願され参照として本明細書に組み込まれた「プリンタ装置のための自動位置合わせシステム（Ａｕｔｏ−Ａｌｉｇｎｍｅｎｔ  Ｓｙｓｔｅｍ  Ｆｏｒ  Ａ  Ｐｒｉｎｔｉｎｇ  Ｄｅｖｉｃｅ）」と題する米国特許出願第０８／９０１５６０号に詳しく記載されている。
【００７３】
ステップＳ１４０３に続いて、処理はステップＳ１４０４に進み、プリンタ３０がオンラインであるかどうかが判定される。プリンタ３０がオンラインであると判定された後、処理はステップＳ１４０５に進み、算出されたプリンタ・パラメータがプリンタＥＥＰＲＯＭ１３２に登録される。
【００７４】
具体的には、プリンタ３０がオンラインであると判定されると、ステップＳ１４０５で、ＥＥＰＲＯＭ１３２に記憶されているプリンタ・パラメータがプリンタドライバ１１４によって登録される。次いでステップＳ１４０５で、このパラメータが、ホストプロセッサ２３に記憶できるようにＣＰＵ１２１によって送信され、それによってプリンタドライバ１１４はプリンタの動作に適切なコマンドを生成することができる。そのようなコマンドは、図１４の破線ボックスのステップに示されており、プリンタ３０の現在のＩＤと、記録ヘッドの構成と、記録ヘッドの位置合わせと、カートリッジ・インクの状況を考慮に入れている。
【００７５】
ステップＳ１４０５によるパラメータを送信する方法は、現在のヘッド構成に関するプリンタ・パラメータを表すデータをホストプロセッサへ送信することを含む。ホストプロセッサ内のプリンタドライバは、接続された記録装置の特性に応じてプリンタの機能を制御するコマンドを生成し、生成したコマンドをプリンタ・コントローラへ送信する。このようなコマンドには、様々な複数の記録装置構成に関してプリンタの動作を制御することを可能にする接続された記録装置の特性に対応するパラメータが含まれる。プリンタ・パラメータ・データの、ホストプロセッサ内のプリンタドライバへの送信と、コマンドの生成および送信については、第６．０節で詳しく説明する。
【００７６】
記録ヘッドの清掃に関しては、ステップＳ１４０５Ａのように、プリンタの動作中の様々な時間に清掃をスケジュールすることができる。ステップＳ１４０５Ａに従って記録ヘッドの清掃をスケジュールする方法は、外部情報源からリアルタイム／日付（時間および／または日付）情報を受信することと、リアルタイム／日付情報を揮発性メモリに記憶することと、インクジェットプリンタ内の少なくとも１つの記録ヘッドに関する最後の清掃時間を不揮発性ＲＡＭに記憶することと、記憶されているリアルタイム／日付情報と記憶されている最後の清掃時間との減算を行うことによって経過時間を算出することとを含む。この方法はさらに、算出された経過時間を所定の経過時間と比較することと、算出された経過時間が所定の経過時間以上であるときに少なくとも１つの記録ヘッドを清掃プロセスを実行するように制御することと、この少なくとも１つの記録ヘッドを清掃した最近の最終時間を非揮発性メモリに記憶することとを含む。算出された経過時間が所定の経過時間よりも短いとき、この方法は、内部経過時間と、次のダウンロード時間の比較と、記録ヘッドの交換などの清掃イベントの実行のどれかに基づいて清掃を実行するように待機する。記録ヘッドの清掃のスケジューリングについては以下の第７．０節で詳しく説明する。
【００７７】
ステップＳ１４０５で登録されたパラメータは、記録ヘッドの動作を制御するために使用される。少なくとも１つの記録ヘッドを有する画像記録装置の記録ヘッドを制御する、ステップＳ１４０５による方法は、ステップＳ１４０５で登録されたパラメータを含む、少なくとも１つの記録ヘッドのプロファイル情報を得ることを含む。この方法は、プロファイル・パラメータを不揮発性ＲＡＭに記憶することと、要求に応じて、画像記録装置に接続されたホストプロセッサにプロファイル情報を出力することとを含む。ホストプロセッサは、記録ヘッド・プロファイル情報を使用して補償パラメータを生成し、この補償パラメータは、ホストプロセッサから印刷のため記録ヘッドへ送信するべき印刷情報を補償する。この方法については第８．０節で詳しく説明する。
【００７８】
ステップＳ１４０５でプリンタパラメータ情報が登録され、ステップＳ１４０５Ａで清掃スケジューリングが行われた後、ステップＳ１４０６で、記録ヘッド・カートリッジ３００ａおよび３００ｂ（図４参照）のそれぞれの状況が検査される。これは、アクセスドア３２が開閉されたかどうかを確認し、１つまたは複数のインクカートリッジまたはインク容器が交換されたかどうかを検出することによって行われる。カートリッジまたは容器が交換されている場合、対応する記録ヘッドに対して清掃動作が実行され、その場合、記録ヘッドのノズルが清掃される。
【００７９】
インク容器／カートリッジ交換時に記録ヘッドを清掃するためにステップＳ１４０６で使用される装置は、記録ヘッドと少なくとも１つの取外し可能なインク容器とを有するカートリッジを解放可能に受容するためにカートリッジ上に取り付けられたカートリッジ・リセプタクルを備える。このリセプタクルは、少なくとも１つのインク容器の取外しを可能にする旋回レバーを含む。このレバーは少なくとも１つのインク容器の少なくとも１部を越えて上方に伸長しており、レバー自体がその少なくとも１つのインク容器から離れる方向に旋回されるまで少なくとも１つのインク容器へのアクセスを防止するようにしている。レバーが、少なくとも１つのインク容器から離れる方向に旋回され、次いで少なくとも１つのインク容器の少なくとも一部の上方で旋回されると、記録ヘッドの清掃を促す信号が出力される。記録ヘッド清掃構成については、第５．０節で詳しく説明する。
【００８０】
ステップＳ１４０６でカートリッジ交換処理が実行された後、処理はステップＳ１４０７に進む。ステップＳ１４０７で、記録ヘッド・ヒータ制御などの動作のためにプリンタ３０によって割込みが要求されているかどうかが判定される。そのような割込み要求に応答して、要求されたプリンタ動作がステップＳ１４０８で実行される。その後、処理はステップＳ１４０６に戻る。
【００８１】
ステップＳ１４０７でプリンタによって割込みが要求されなかった場合、処理はステップＳ１４０９に進む。ステップＳ１４０９で、プリンタドライバ１１４がコマンド・シーケンスを要求したかどうかが判定される。図１０のシステムでは、プリンタ３０から受信されたパラメータおよび状況情報に応じて生成されたプリンタドライバ１１４からのコマンドによって、プリンタ３０のタスクが制御される。ユーザインタフェース・シーケンスが選択されると、ステップＳ１４１４に入り、図１５に示した処理が実行される。
【００８２】
ステップＳ１５０１でユーザインタフェースが選択されると、プリンタ３０の現在の状況が要求され、双方向通信回線１０６を介してプリンタ３０から受信される。次いでステップＳ１５０２で、プリンタ３０が新しい記録ヘッドを有するかどうかが判定される。新しい記録ヘッドが検出されると、ステップＳ１５０３で自動位置合わせが実行され、ステップＳ１５０４でプリンタ３０の状況情報がプリンタドライバ１１４に記憶される。新しい記録ヘッドが検出されなかった場合、ステップＳ１５０５でユーザのために最新のプリンタドライバ情報が得られる。いずれの場合も、ステップＳ１５０６で、印刷すべきページがヘッド交換および／またはヘッド位置合わせに関するユーティリティ・ページであるか、それとも文書のトップ・ページであるかどうかが判定される。ユーティリティ・ページが選択されると、ステップＳ１５０７で現在のヘッド構成が表示され、ユーザはステップＳ１５０８で、プリンタ３０をイネーブルすべきか、それともディスエーブルすべきかを選択する。次いで、選択ステップＳ１５０９に入り、ユーザは、ステップＳ１５１０による位置合わせ、ステップＳ１５１０およびＳ１５１１によるヘッド交換および位置合わせとその後に続くステップＳ１５１２でのプリンタ状況情報の記憶、ステップＳ１５１３による記録ヘッド１３０ａおよび１３０ｂを清掃する回復動作、またはステップＳ１５１４でのユーザインタフェースの取消しを選択することができる。ステップＳ１５０９で選択されたタスクが実行された後、図１４のステップＳ１４０９に制御が返される。
【００８３】
図１５のステップＳ１５０６で印刷モードが選択されると、ユーザに対して現在のヘッド構成が表示される（ステップＳ１５１５）。ユーザは、ステップＳ１５１６でイネーブル−ディスエーブル・ボタンを操作した後、ステップＳ１５１７で、印刷、媒体タイプ、媒体サイズ、目的の画像、カスタム・ページ設定、ユーティリティ動作、または取消し動作を選択することができる。媒体タイプ（ステップＳ１５１８）、媒体サイズ（ステップＳ１５１９）、目的の画像（ステップＳ１５２０）、（すなわち、テキストおよびカラーまたはフォトカラー）、カスタム用紙サイズ（ステップＳ１５２１）、カスタム設定ページ（ステップＳ１５２２）を選択すると、実行すべき印刷シーケンスに関する印刷パラメータおよび印刷データを制御する情報がプリンタドライバ１１４に記憶される。キーボードおよびポインタによるユーザインタフェース・ディスプレイ上での入力によるユーザの選択が完了すると、制御は、ステップＳ１４０９に戻され、ステップＳ１４１０で印刷コマンド・シーケンスを使用するよう指示される。
【００８４】
ステップＳ１４０９で印刷シーケンスが選択されると、処理はステップＳ１４１０に進む。ステップＳ１４１０で、プリンタドライバ１１４は、それ自体に記憶されている、記録ヘッドの構成、記録ヘッドの位置合わせ、媒体のタイプおよびサイズ、目標画像に関する情報に基づいてコマンドのシーケンスを生成する。これらのコマンドはプリンタ３０内のプリンタ制御機構１４０（図１１参照）へ送信される。プリンタ内で、プリンタ制御機構１４０は、これらのコマンドとプリンタＲＯＭ１２２からのファームウェアとを受信し、プリンタエンジン１３１でコマンド・タスクを実行させる。
【００８５】
印刷コマンド・シーケンスは、各印刷ジョブごとに定義された印刷データをプリンタドライバ１１４からプリントバッファ１３９へ転送することを含む。印刷データの転送は、プリンタ３０内の受信バッファなしで実行される。次のスキャンに関する印刷データは、現在の走査における記録ヘッドのランプアップ時にプリントバッファ１３９内の現在のスキャンの空記憶位置へ送信される。
【００８６】
簡単に言えば、ステップＳ１４１０でコマンドが転送されるプリントバッファは、各記録ヘッドごとの現在の走査による印刷位置に対応する１組の記憶位置を含む。プリンタドライバは、プリントバッファ内の現在の走査による空記憶位置を識別し、記録ヘッドの現在の走査ためのランプアップ期間中に、記録ヘッドの次の走査に関する印刷データを、識別された空記憶位置へ送信する。本発明による印刷コマンド・シーケンスでの印刷データ転送については第９．０節で詳しく説明する。
【００８７】
ステップＳ１４１０のコマンド・シーケンスは、記録ヘッド１３０ａおよび１３０ｂの印刷解像度を設定するコマンドを含む。このようなコマンドは、記録ヘッド用のプリントバッファに記憶されているデジタルデータに基づいてインク滴のサイズを制御し、記録ヘッド用のプリントバッファから印刷データを読み取る順序を制御することによって設定される。具体的には、第１および第２の記録ヘッドを有するプリンタで印刷解像度を制御する方法は、第１および第２の記録ヘッドの解像度を互いに独立に制御することを含む。プリントバッファに記憶されているデジタルデータに基づいてインク滴を吐出するインクジェット記録ヘッドでは、インク滴サイズを制御しプリントバッファからの読出し順序を制御することによって解像度が制御され、液滴のサイズおよび読出し順序は各記録ヘッドごとに独立に制御される。印刷解像度の制御については第１０．０節で詳しく説明する。
【００８８】
さらに、ステップＳ１４１０の印刷コマンド・シーケンスで、プリンタドライバ１１４は、隣接する画素のマルチレベル画像データの分析に基づいて、目標の画素を印刷する際に使用すべきインクの種類を選択する。一例を挙げれば、画像中の色画素に囲まれた黒目標画素については染料ベースのインクを選択することができ、それに対して黒画素に囲まれた黒目標画素については顔料ベースのインクを選択することができる。
【００８９】
簡単に言えば、本発明に従うマルチレベル画像に対応する画素の印刷を制御する方法は、目標画素に関するマルチレベル画像データと目標画素に隣接する画素に関するマルチレベル画像データとに基づいて、目標画素を染料ベースのインクを使用して印刷すべきか、それとも顔料ベースのインクを使用して印刷すべきかを判定することと、染料ベースのインクを使用して目標画素を印刷すべきであると判定された場合に染料ベースのインクを使用して目標画素を印刷するようプリンタに命令することと、顔料ベースのインクを使用して目標画素を印刷すべきであると判定された場合に顔料ベースのインクを使用して目標画素を印刷するようプリンタに命令することとを含む。画素印刷の制御については第１１．０節で詳しく説明する。
【００９０】
１ページの印刷が完了すると、フローは図１４のステップＳ１４１１に進み、用紙排出コマンドに応答してプリンタ３０からそのページが出力される。プリンタ３０は次いで、第４．０節で説明するようにトレイ上のばねによって調節可能に位置決めされた一対の傾斜した引込み可能フラップにこのページを排出する。あるページが、印刷時にトレイ上に移動する際、すでに排出されているページ上に摺動するレベルは、そのページが記録ヘッド領域で湾曲しないようにフラップの下向き移動によって維持される。そのような湾曲によって、印刷中の画像が歪む恐れがある。さらに、用紙排出トレイは、格納およびセットアップを容易にする構造を有する。
【００９１】
したがって、本発明に従うこの態様は、媒体送り部および媒体排出ポートを規定するハウジングを有するプリンタ用の排出トレイであり、この場合、ハウジングは、プリンタエンジンを記録媒体上への印刷が可能になるように収納するように構成される。この排出トレイは、プリンタのハウジングの、媒体排出ポートから横方向に離れた位置に摺動可能に受容することのできるべースを含む。ベースは、その摺動方向へ延びる少なくとも一対の凹部を含む。排出トレイには一対のフラップも含まれる。一対のフラップはそれぞれ、ベースと排出ポートとの間の横方向距離に対応する少なくとも１つの幅部分を有する。各フラップは、ベースの対応する凹部にヒンジ止めされ、ばねを介して上向きにバイアスされる。このばねは、ベースに対するフラップの斜め方向の運動を可能にする。ベースがハウジングから摺動すると、フラップが凹部から上向きに、媒体排出ポートの位置に対応する高さにバイアスされる。
【００９２】
図１６は、印刷を行いプリンタ３０を操作するためにプリンタドライバ１１４によって生成されるコマンド・シーケンスを詳しく示すフローチャートである。図１６において、ステップＳ１６０１でプリンタ初期設定コマンドによって印刷コマンド・シーケンスが開始され、このコマンドがプリンタ制御機構１４０へ送信されプリンタ動作がリセットされる。次いで、用紙装填コマンド（ステップＳ１６０２）がプリンタ制御機構１４０に与えられ、プリンタ制御機構は、選択ステップＳ１６０３で用紙装填動作を選択し、用紙装填開始を実行する（ステップＳ１６０４）。ステップＳ１６０５で、プリンタ制御機構１４０で用紙装填終了が検出されると、用紙装填終了を示す信号がプリンタドライバ１１４へ送信され、ステップＳ１６０６で記録ヘッド１３０ａおよび１３０ｂの第１のスキャンに関する印刷データが作成される。プリンタ制御機構１４０は、このスキャン準備についての通知を受ける。プリンタドライバ１１４での印刷データの準備は、１９９７年７月２８日に出願された「カラープリンタのためのプリントドライバ（Ｐｒｉｎｔ  Ｄｒｉｖｅｒ  Ｆｏｒ  Ａ  Ｃｏｌｏｒ  Ｐｒｉｎｔｅｒ）」と題する米国特許出願第０８／９０１７１９号に詳しく記載されている。決定ステップであるステップＳ１６０７ではスキャンに関する印刷データが決定されない場合、ステップＳ１６０８で、プリンタドライバ１１４で仮想スキップが実行される。ステップＳ１６０９でページ終了が検出されないとき、制御はステップＳ１６０７に戻される。ページ終了が検出されるまで、ステップＳ１６１０〜Ｓ１６１４およびＳ１６０８が実行される。
【００９３】
ステップ１６１０で、正しい印刷データを印刷できるようにプリンタドライバ１１４からプリンタ制御機構１４０に実際のスキップ・コマンドが与えられる。プリンタ制御機構１４０は、実際のスキップ動作を選択し（ステップＳ１６０３）、実際のスキップを実行する（ステップＳ１６１５）。次いで、プリンタドライバ１１４でスキャン設定が実行され（ステップＳ１６１１）、プリンタ制御機構１４０が通知を受ける。次に、プリンタドライバ１１４で生成された印刷データおよび印刷データに関するプリントバッファ・アドレスがプリンタ制御機構１４０へ転送され、プリンタ制御機構はこの情報をプリントバッファ１３９に記憶する（ステップＳ１６１２）。次いで、プリンタドライバ１１４で次のスキャンが準備され、プリンタ制御機構１４０が通知を受ける（ステップＳ１６１３）。次いで、プリンタドライバ１１４で生成された印刷コマンドがプリンタ制御機構１４０へ送信される。これに応答して、プリンタ制御機構１４０は、ステップＳ１６１９で印刷動作を選択し、ステップＳ１６１４で印刷タスクを実行する。次いで、ステップＳ１６０８でプリンタドライバ１１４によって仮想スキップが実行され、印刷中のページの行が追跡される。決定ステップであるステップＳ１６０９においてページ終了が判定されると、プリンタドライバ１１４からプリンタ制御機構１４０へページ排出コマンドが送信され、プリンタ制御機構はページ排出動作を選択し（ステップＳ１６１６）、ページ排出を開始する（ステップＳ１６１７）。ページ排出が完了すると（ステップＳ１６１８）、プリンタドライバ１１４が、ページ排出が完了したという通知を受け、制御が図１４のステップＳ１４０９に渡される。
【００９４】
図１７は、スキャン設定ステップＳ１６１１で図１６の現在の走査に使用される１組のコマンドを示すフローチャートである。図１７を参照するとわかるように、ステップＳ１７０１で［ＳＰＥＥＤ］コマンドが発行されて走査速度が設定され、［ＤＲＯＰ］コマンドが発行されて（ステップＳ１７０２）一方の記録ヘッド（Ａ）に対する液滴サイズが設定され、別の［ＤＲＯＰ］コマンドが発行されて（ステップＳ１７０３）もう一方の記録ヘッド（Ｂ）に対する液滴サイズが設定される。ステップＳ１７０４およびＳ１７０５で、［ＳＥＬＥＣＴ＿ＰＵＬＳＥ］コマンドが発行されて印刷に関する加熱パルスが設定され、［ＰＣＲ］コマンドが発行されて温度テーブル調整のためのパルス制御比が設定される。ステップＳ１７０６およびＳ１７０７で［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］コマンドが発行されて各記録ヘッド用のバッファ制御機構が選択され、記録ヘッド・ノズルの射出時間が決定される。ステップＳ１７０８およびＳ１７０９で［ＤＥＦＩＮＥ＿ＢＵＦ］コマンドが発行され、記録ヘッド１３０ａおよび１３０ｂのそれぞれのプリントバッファが定義される。したがって、スキャン設定などのプリンタ動作の各態様は、記録ヘッドの構成および印刷モードを考慮に入れてホストプロセッサ・プリンタドライバ１１４によって制御される。それによって、プリンタ３０によって実行されるタスクは、プリンタ・アーキテクチャが大幅に簡略化されコストが低減するようにプリンタドライバ１１４によって詳しく定義される。
【００９５】
ページを２色記録ヘッドでカラー・モードで印刷するためのホストプロセッサ３２からプリンタ３０へのコマンド・シーケンスの例は、図１８に示した表Ａに記載されている。最初に、表Ａに示したように、現在時刻が［ＵＣＴ］コマンドによって設定され、プリンタ３０が［ＲＥＳＥＴ］コマンドによってリセットされる。［ＣＯＭＰＲＥＳＳ］コマンドによってデータ圧縮が選択され、印刷データがパックされる。［ＤＥＦＩＮＥ＿ＢＵＦ］コマンドによって記録ヘッド１３０ａおよび１３０ｂ用のプリントバッファが定義される。［ＤＥＦＩＮＥ＿ＰＵＬＳＥ］コマンドおよび［ＤＥＦＩＮＥ＿ＣＯＮＴＲＯＬ］コマンドによって、記録ヘッド構成のカラーモードに関する加熱パルスおよびバッファ制御テーブルが定義される。
【００９６】
前述の初期設定コマンドに関するプリンタ・タスクが実行された後、ページまたはその他の記録媒体を装填するための用紙装填コマンド［ＬＯＡＤ］と、第１の記録ヘッド・スキャンの印刷位置にスキップするためのラスタ・スキップ・コマンド［ＳＫＩＰ］がプリンタ３０へ送信され、記録ヘッド１３０ａおよび１３０ｂの印刷の印刷方向およびエッジが第１のスキャン向けに設定される。次いで、コマンドのループが送信され、ページの行を印刷するプリンタ・タスクが制御される。各行についてのループの第１の部分で、その行に関するスキャン・パラメータは図１７に関して説明するように設定される。バッファ制御テーブル選択コマンド［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］に関するプリンタ・タスクが完了した後、［ＢＬＯＣＫ］コマンドによって印刷データ・ブロックが選択され、記録ヘッド１３０ａおよび１３０ｂの決定された印刷領域に応じて色選択コマンド［ＣＯＬＯＲ］およびデータ伝送コマンド［ＤＡＴＡ］を繰り返すことによって、印刷色が選択され伝送される。
【００９７】
次いで、［ＤＩＲＥＣＴＩＯＮ］コマンドおよび［ＥＤＧＥ］コマンドによって第２の走査の方向ならびに第２の走査の印刷領域の左エッジおよび右エッジが設定される。この時点で、ホストプロセッサ２３からプリンタ３０へ［ＰＲＩＮＴ］コマンドが転送されて第１のスキャンの印刷が実行され、［ＳＫＩＰ］コマンドが送信されて第２のスキャンの印刷位置へのスキップが行われる。最後の行が印刷されると、プリンタ３０に用紙排出コマンドが与えられ、用紙排出が実行される。
【００９８】
スキャン設定動作のコマンド・シーケンスと、本発明による印刷動作の例からわかるように、スキャン設定や印刷など印刷動作の各態様は、記録ヘッドの構成および印刷モードを考慮に入れてプリンタドライバ１１４によって制御される。それによって、プリンタ３０によって実行されるタスクは、プリンタ・アーキテクチャが大幅に簡略化されコストが低減するようにプリンタドライバ１１４によって詳しく定義される。
【００９９】
図１４に戻るとわかるように、ステップＳ１４０９でプリンタ状況要求が判定されると、フローはステップＳ１４１２に進む。ステップＳ１４１２で、プリンタ状況コマンド・シーケンスが実行される。プリンタ状況情報を求める要求を与える状況コマンドについては第３．６節で詳しく説明する。一般に、各状況コマンドは、プリンタ動作に関する情報、またはプリンタ３０に記憶されている情報を要求するためにホストプロセッサ２３からプリンタ３０へ送信される。たとえば、ベース状況コマンド［ＢＡＳＥ−ＳＴＡＴＵＳ］はプリンタの現在の状況を要求する。これに応答して、プリンタ３０は、印刷状況、プリントバッファ１３９がデータを受信できるか否か、プリンタ３０が立上げを実行中であるかどうか、カートリッジ交換、記録ヘッドの清掃、試験印刷、エラーまたはアラームが検出されたかどうかなどのうちの１つを示す１データ・バイトを返す。［ＨＥＡＤ］コマンドは、記録ヘッドの構成を返すよう要求し、［ＤＡＴＡ＿ＳＥＮＤ］コマンドは、ＥＥＰＲＯＭデータをホストプロセッサ２３に返すよう要求する。ステップＳ１４１２で、要求されたデータが返された後、制御はステップＳ１４０６に戻される。
３．０  プリンタソフトウェアのアーキテクチャ
プリンタ３０の機能に対する制御は、ＣＰＵ１２１上で実行される個別のプログラムによって行われる。このような個別のプログラムには、電源オン時に実行されるルーチンなどの初期設定ルーチンと、ホストプロセッサ２３から受信されたコマンドに割り込むタスクと、リアルタイム・ハードウェア割込みを処理するハンドラなどの割込みハンドラと、ホストプロセッサ２３との双方向通信を制御するハンドラなどサイクリックプロセスを処理するサイクリックハンドラとが含まれる。
【０１００】
プリンタＣＰＵ１２１はさらに、個別の各プログラム（すなわち、初期設定ルーチン、タスク、割込みハンドラ、サイクリックハンドラ）の実行を調整するようにオペレーティングシステムを実行する。オペレーティングシステムは、メッセージなどを通してプログラム間通信に責任を負い、必要に応じてあるプログラムからの実行を他のプログラムに切り替えるようにプログラム間切替えに責任を負う。オペレーティングシステムの詳細を以下に記載する。
３．１  オペレーティングシステム
オペレーティングシステムは、プリンタ制御プログラムをモジュール化し、保守、継承、拡張を推進するように作成されたリアルタイム・オペレーティングシステム（あるいは「カーネル」または「モニタ」）である。リアルタイム・オペレーティングシステムは、プリエンプティブ・マルチタスク・ソフトウェア環境を与えるシステムソフトウェアであり、この環境では、現在実行中のプログラムをより優先順位の高い他のプログラムに切り替えるために中止することができる。
【０１０１】
オペレーティングシステムによって４つの異なる種類のプログラムを使用することができ、これらのプログラムはそれぞれ、プログラムの特定の種類に応じてオペレーティングシステムによって実行される。これらの種類には、初期設定ルーチンと、タスクと、割込みハンドラと、サイクリックハンドラとが含まれる。初期設定ルーチンとは、プリンタ３０がリセットされた直後に、オペレーティングシステムがそれ自体を初期設定した後にオペレーティングシステムによってスケジューリングされるルーチンである。タスクとは、順次実行される連続処理の通常のプログラム（場合によっては「実行ユニット」と呼ばれる）である。したがって、タスクは、多重プログラミング環境または多重処理環境でＣＰＵ１２１によって実行される作業単位としてオペレーティングシステムによって処理される１つまたは複数の命令シーケンスである。並行処理が見掛け上実行されているようにみえるのは、オペレーティングシステムが処理を個別のタスク単位でスケジューリングすることによってなされるためである。
【０１０２】
割込みハンドラとは、（通常は短い）プログラム単位であり、ハードウェア割込みを受信した直後にオペレーティングシステムによって起動される。サイクリックハンドラは割込みハンドラに類似しているが、ハードウェア割込みによって起動されるのではなく、オペレーティングシステムのタイマ割込みによって起動される。
【０１０３】
プリンタ３０がリセットされたとき、ＣＰＵ１２１によって最初に実行されるソフトウェアはオペレーティングシステムである。所定の要件に従ってＣＰＵレジスタが設定され、次いで、ユーザ定義初期設定ルーチンが存在する場合にはそのルーチンが実行される。その後、制御がオペレーティングシステムに戻り、オペレーティングシステムはシステム内の各タスクを起動する。そのような１つのタスクは開始タスクである。開始タスクが開始した後、システムコールが発行されるか、あるいは割込みが行われるたびにオペレーティングシステムが起動される。システムコールが実行されるか、あるいは割込みが処理された後、実行がオペレーティングシステムに戻り、オペレーティングシステムは、最高優先順位の実行可能なタスクを実行するようにタスクをスケジューリングする。
【０１０４】
タスクのスケジューリングでは、現在実行される資格を有する複数のタスクがある場合にどのタスクを実行するかが判定される。より優先順位の高いタスクが、より優先順位の低い他のすべてのタスクより前に実行されるように割り当てられた優先順位に従って、タスクがスケジューリングされる。実行される資格を有するが、優先順位レベルが低いために現在実行されていないタスクは、その優先順位に基づいて準備完了待ち行列に入れられる。
【０１０５】
各タスクは、新たに実行される資格を有すると、準備完了待ち行列の最後に置かれる。次いで、タスクから発行されたシステムコールからリターンしたとき、または割込み処理からタスクにリターンしたときにスケジューリングが実行される。いずれの場合も、新しいタスクを待ち行列に入力するか、あるいはすでに待ち行列に存在しているタスクの優先順位を変更することができる。スケジューリングによって、各タスクの優先順位に基づいてタスク待ち行列内のタスクが順序付けされ、最高優先順位のタスクが、現在実行可能な実行タスクになる。準備完了待ち行列内に同じ優先順位のタスクが２つ以上ある場合、どのタスクを選択すべきかに関する決定は、どのタスクが最初に待ち行列に入力されたかに基づいて下される。
【０１０６】
オペレーティングシステムは、セマフォを１つの基本的なタスク間通信手段として使用し、かつタスク間の制御または同期に使用する。タスクは、メッセージを使用してタスク同士の間でデータを伝達し転送することもできる。あるタスクによってメールボックスへメッセージが送信され、そのメッセージを受信する必要のあるタスクが、そのメッセージを得られるようにメールボックスに受信要求を発行する。
【０１０７】
オペレーティングシステムはさらに、イベントフラグを使用してタスクを同期させる。あるイベントに基づいて待機状態から解除される必要のあるタスクは、イベントフラグパターンを登録することができ、オペレーティングシステムは、そのフラグパターンが発生したときにそのタスクを待機状態から解除する。
【０１０８】
オペレーティングシステムによる割込み管理は、割込みハンドラおよび割込み許可レベル設定によって行われる。時間管理は、オペレーティングシステムがシステムタイマに基づいて割込みハンドラを起動することによって行われる。
【０１０９】
サイクリックハンドラは、オペレーティングシステムに登録されているサイクリックハンドラに基づいて、指定された各時間間隔に処理を実行する。通常、サイクリックハンドラは短いプログラムであり、指定された各時間間隔に実行されるタスクを指定する。
【０１１０】
プリンタ３０に好ましい初期設定ルーチン、タスク、割込みハンドラ、サイクリックハンドラについては以下の節で説明する。
３．２  初期設定
電源投入時に、初期設定機能が実行され、制御論理１２４の初期設定、ＲＯＭ１２２の検査、ＲＡＭ１２９の検査、ＥＥＰＲＯＭ１３２の検査など、プリンタ３０が初期設定される。
【０１１１】
図１９および図２０はそれぞれ、ハード電源オン・シーケンスとソフト電源オン・シーケンスを示す。なお、プリンタ３０に電力が供給されるかぎり、電源ボタン４４の状況にかかわらずＣＰＵ１２１がソフトウェアを実行することに留意されたい。したがって、「ハード電源オン」は、最初にプリンタ３０に電源を投入することを指す。その後、ユーザが電源ボタン４４を作動させることによって、ソフト電源オンまたはソフト電源オフが行われるに過ぎない。この構成は、プリンタ３０が、「オフ」であるときでも実行中のイベント（経過時間など）を監視することができるので好ましい。
【０１１２】
ハード電源オン・シーケンスを示す図１９において、最初に電源が投入された後、ステップＳ１９０１で、ＲＯＭ検査、ＲＡＭ検査、ＥＥＰＲＯＭ検査などのメモリ検査が実行される。ステップＳ１９０２でソフトウェア・タスクが初期設定され、ステップＳ１９０３で、ＣＰＵ１２１がアイドル・ループに入り、ソフト電源オンを待つ。
【０１１３】
図２０は、ソフト電源オン・シーケンスを示す。ステップＳ２００１で、ホーム位置へのリセットなどプリンタエンジン１３１の機械的初期設定が実行され、ステップＳ２００２で、セントロニクス通信タスクを含むソフトウェア制御タスクが開始され、ステップＳ２００３で主処理モードに入る。
【０１１４】
図２１はソフト電源オフ・シーケンスを詳しく示す。ステップＳ２１０１ですべてのソフトウェア・タスクが終了し、ステップＳ２１０２でアイドル・ループに入り、その間ステップＳ２１０３で、プリンタ３０は次のソフト電源オン・シーケンスを待つ。
３．３  タスク
本発明の好適な実施形態では、プリンタ・タスクは、各タスクがプリンタ制御の単一のコヒーシブ態様に責任を負うように機能を分離するように設計される。一般的に言えば、タスクは３つの概念群、すなわちエンジンタスク、コントローラタスク、その他のタスクに分割することができる。
【０１１５】
エンジン関連タスクに関しては、キャリッジを移動させるキャリッジモータ６６を制御するタスクと、用紙を進めるラインフィードモータ６１を制御するタスクと、インク吸入、パージなど、記録ヘッド１３０ａおよび１３０ｂの紙送り動作と清掃動作の両方を制御するタスクが与えられる。他のタスクは、プリンタエンジン１３１から他のタスクへメッセージを伝送し、他のタスクからのメッセージに基づいてプリンタエンジン１３１を制御する。
【０１１６】
制御タスクに関しては、ホストプロセッサ２３から受信されたコマンドを解釈するタスクが与えられる。このようなコマンドについては以下の第３．６節で詳しく説明する。必要に応じて試験関連タスクを与えることができる。
【０１１７】
その他のタスクに関しては、上記第３．２節で論じた初期設定タスクがプリンタ３０を初期設定する。プリンタ３０に関する表示を制御し、プリンタ３０のフロントパネル上のボタンに対応するキー・スイッチを走査してその状況を検出し、ホストコンピュータ・インタフェース１４１および入出力ポート・ユニット１２７に関するハードウェアを初期設定し、セントロニクス出力信号を制御し、このような信号に割り込みその信号を他のタスクに伝送する他のタスクが与えられる。エンジン制御タスクおよび通信タスクを制御するタスクが与えられる。また、このタスクは他のタスクを開始し、中止し、再開する。アイドル・タスクは、基本的に何もせず、他のタスクが待機状態でないときにオペレーティングシステムによって使用できるように与えられる。
【０１１８】
タスク同士の間のインタフェースおよびその他の通信は、メッセージが入れられるメールボックスとセマフォを使用してメッセージ通信を調整することによって行われる。この構成を図２２に示す。図２２には、コントローラタスク２０１、ユーザインタフェース・タスク２０２、双方向通信タスク２０４、その他のタスク２０５、エンジンタスク２０６が示されている。タスク群中の各タスクは、関連するメールボックスを有する。メールボックスは図２２に概略的に示されており、この図で、２１０は、コントローラタスク２０１中の各タスク用のメールボックスを示し、２１３は、ユーザインタフェース・タスク２０２中の各タスク用のメールボックスを示し、２１５は、通信タスク２０４中の各タスク用のメールボックスを示し、２１７は、その他のタスク２０５中の各タスク用のメールボックスを示し、２１９は、エンジンタスク２０６中の各タスク用のメールボックスを示す。エンジンタスク２０６を除いて、メールボックスへ送信されるメッセージおよびメールボックスから検索されるメッセージの調整はセマフォによって制御される。エンジンタスク２０６の場合、メモリ使用状況を検出すれば十分であるのでセマフォは使用されない。
【０１１９】
各メールボックスは、他の各タスクからメッセージを受信するように構成され、さらに、関連するタスクへメッセージを転送するように構成される。したがって、メールボックス２１０は、ユーザインタフェース・タスク２０２、通信タスク２０４、その他のタスク２０５、エンジンタスク２０６からメッセージを受信することができ、そのメッセージをタスク群２０１中の関連するタスクへ送達することができる。同様に、メールボックス２１３は、コントローラタスク２０１、通信タスク２０４、その他のタスク２０５、エンジンタスク２０６からメッセージを受信し、そのメッセージをユーザインタフェース・タスク２０２中の関連するタスクへ送達するように構成される。同様に、メールボックス２１５は、コントローラタスク２０１、ユーザインタフェース・タスク２０２、その他のタスク２０５、エンジンタスク２０６からメッセージを受信し、そのメッセージを通信タスク２０４へ送達するように構成される。同様に、メールボックス２１７は、コントローラタスク２０１、ユーザインタフェース・タスク、通信タスク２０４、エンジンタスク２０６からメッセージを受信し、そのメッセージをその他のタスク群２０５中の関連するタスクへ送達するように構成される。最後に、メールボックス２１９は、コントローラタスク２０１、ユーザインタフェース・タスク、通信タスク２０４、その他のタスク２０５からメッセージを受信し、そのメッセージをエンジンタスク２０６中の関連するタスクへ送達するように構成される。
３．４  割込みハンドラ
オペレーティングシステムは、定期的なクロック割込みに関するハンドラなどの割込みハンドラに対処できるが、そのようなサイクリックイベントをサイクリックハンドラを用いて処理することもできる。
３．５  サイクリックハンドラ
図示し、上記で図２２に関連して説明したように、通信タスク２０４およびユーザインタフェース・タスク２０２に関するサイクリックハンドラが与えられる。
【０１２０】
コントローラタイマ動作に関するサイクリックハンドラも与えられる。図２３は、このサイクリックハンドラによるコントローラタイマ制御を示すフローチャートである。図２３に示したように、１０ｍｓ割込みが受信されると、サブヒータ制御が実行される。サブヒータ制御の目的は、プリンタ３０内の各記録ヘッド（すなわち、記録ヘッド１３０ａおよび１３０ｂ）の温度を目標温度に調整することである。これは、計算ヘッド温度と目標ヘッド温度との間の差に基づいてサブヒータ駆動時間を設定することによって行われる。
【０１２１】
図２３に示した５０ｍｓ毎の割込みは、各ヘッドで供給されるヘッド駆動パルスの量に基づいて、各ヘッドごとにヘッド温度を算出する。計算は、ＲＯＭ１２２内の事前に記憶されたテーブルに基づいて行われ、このテーブルは、ヘッドの射出に基づいて温度の増減を計算する際に使用できる定数を提供する。
【０１２２】
５０ｍｓ毎の割込みはさらに、各印刷ノズルに対する予熱パルスと各ノズルに対する実際の主パルス幅を設定するようにＲＯＭ１２２内の事前に記憶されたテーブルに従ってパルス幅変調制御を行う。その場合、パルスパラメータは制御論理１２４へ送信される。
【０１２３】
５０ｍｓ毎の割込みはさらに、予熱パルスの幅および主パルスの幅が、記録ヘッドを損傷する限界を超えないようにヘッド保護制御を行う。
【０１２４】
図２３に示したように、５００ｍｓ毎の割込みは主加熱制御を行う。やはり図２３に示したように、１秒毎の割り込みは、環境の温度を算出し、次いで算出した環境の温度に基づいて目標温度を更新する。
【０１２５】
１０ｍｓという時間間隔、５０ｍｓという時間間隔、５００ｍｓという時間間隔、１秒という時間間隔がそれぞれ、例示的なものに過ぎず、変更できることに留意されたい。
３．６  ホストプロセッサへのコマンドおよびホストプロセッサからのコマンド以下に、双方向プリンタインタフェース１０４を介してホストプロセッサ２３との間で送信されるコマンドについて要約する。一般的に言えば、各コマンドは１つまたは複数のパラメータを含み、いくつかのコマンド（［ＤＡＴＡ］画像データ伝送コマンドなど）はデータも含む。
【０１２６】
状況要求コマンド［ＳＴＡＴＵＳ］は汎用コマンドであり、双方向インタフェース１０４を介してプリンタ３０に応答を要求する。ホストプロセッサ２３は、状況要求コマンドを使用することによって、ＥＥＰＲＯＭ１３２の内容、位置合わせセンサおよび密度センサの結果など、プリンタ３０に関する詳細な情報を得ることができる。したがって、状況要求コマンドについて以下で詳しく論じる。
【０１２７】
以下の節では、各コマンドの略号が、角括弧（”［  ］”）に囲まれて示されている。以下に示す略号は一例に過ぎない。コマンド略号を形成するために使用される文字の実際のシーケンスおよび組合せは、プリンタ側とホストプロセッサ側の一方から送信されたコマンドを他方が理解できるように使用法が両方の側で整合しているかぎり重要ではない。
３．６．１  制御コマンド
制御コマンドは、プリンタ３０の印刷動作を制御する働きをする。以下に、様々な制御コマンドについて説明する。
［ＬＯＡＤ］−用紙装填
装填コマンドは、用紙を装填させるが、現在装填されている記録媒体を排出することはない。媒体がすでに手動で装填されているときでも、このコマンドをプリンタ３０へ送信しなければならない。
［ＥＪＥＣＴ］−用紙排出
このコマンドは、プリントバッファに残っているすべてのデータを印刷し、次いで現在装填されている媒体を排出する。
［ＰＲＩＮＴ］−印刷実行
印刷実行コマンドは、現在装填されている記録媒体上にプリントバッファ内のデータを印刷させる。印刷領域は、後述の［ＥＤＧＥ］コマンドの左パラメータおよび右パラメータによって指定された各プリントバッファの左縁から右縁まで延びる。
［ＣＡＲＲＩＡＧＥ］−キャリッジ移動
キャリッジ移動コマンドは、キャリッジの位置を列位置単位で指定する位置パラメータを含む。このコマンドは、往路方向および復路方向シークに使用される。
［ＳＫＩＰ］−ラスタスキップ
ラスタスキップ・コマンドは、スキップ・パラメータによって指定されたラスタ行の数だけ垂直印刷位置を進めるために使用される。
［ＤＡＴＡ］−画像データ伝送
このコマンドは、イエロ（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、または黒（ＢｋまたはＫ）のビット画像データを個別に列画像フォーマットでプリンタ３０へ伝送するために使用される。このコマンドの複数のシーケンスを発行して単一の走査ラインを生成することができる。ビット画像データは、後述のブロックコマンド［ＢＬＯＣＫ］およびカラーコマンド［ＣＯＬＯＲ］によって指定された領域に記憶される。プリンタ３０は実際には、［ＰＲＩＮＴ］コマンドを受信したときに印刷を開始する。
３．６．２  設定コマンド
設定コマンドは、プリンタ３０によって実行される印刷動作の設定を指定する。このコマンドは、設定された後、他のコマンドによって設定が変更されるまで有効である。ページに関する設定が与えられない場合、設定は省略時設定にリセットされる。設定コマンドについて以下で詳しく説明する。
［ＲＥＳＥＴ］−プリンタリセット
モード・パラメータは、プリンタリセット・コマンドを定義しリセットモードを指定する。データ圧縮フラグ、バッファサイズ、液滴サイズ、印刷速度、パルス制御テーブル、バッファ制御テーブルなどの省略時設定が含まれる。
［ＣＯＭＰＲＥＳＳ］−選択データ圧縮
データ圧縮選択コマンドのモード・パラメータは、画像データを圧縮するかどうかを指定する。「圧縮しない」が省略時設定である。
［ＤＥＦＩＮＥ＿ＢＵＦ］−プリントバッファ定義
プリントバッファ定義コマンドは、ヘッドＡおよびＢのそれぞれについて共通的にメモリサイズおよびプリントバッファ１３９の構成を定義するために使用される。
［ＤＲＯＰ］−液滴サイズ選択
このコマンドは、各記録ヘッドごとにインク滴サイズ（大小）を指定するために使用される。
［ＳＰＥＥＤ］−印刷速度選択
このコマンドは印刷速度を指定するために使用される。
［ＤＩＲＥＣＴＩＯＮ］−印刷方向設定
このコマンドの方向パラメータは、印刷を往路方向に（左から右へ）行うか、それとも復路方向（右から左へ）へ行うかを指定する。
［ＥＤＧＥ］−印刷エッジ設定
印刷エッジ設定コマンドは、印刷位置の左縁および右縁を列位置単位で指定する。左縁は右縁よりも小さな値でなければならない。
［ＢＬＯＣＫ］−印刷ブロック選択
このコマンドは、データブロックの左縁および右縁を各プリントバッファの頂部からの列位置単位で指定するために使用される。［ＢＬＯＣＫ］コマンドは、［ＤＡＴＡ］コマンド（前述）の後に続くビット画像をどこに記憶するかも指定する。
［ＣＯＬＯＲ］−印刷色選択
このコマンドは、［ＤＡＴＡ］コマンド（前述）の後に続くビット画像が記憶される、色に対応したプリントバッファ１３９内の位置を指定するために使用される。
［ＤＥＦＩＮＥ＿ＰＵＬＳＥ］−加熱パルステーブル定義
［ＤＥＦＩＮＥ＿ＰＵＬＳＥ］コマンドは、複数の異なる加熱パルス・ブロックテーブルを定義するために使用される。パルス・ブロックテーブルは、プリンタ３０が後述の［ＳＥＬＥＣＴ＿ＰＵＬＳＥ］コマンドを受信する前に定義しておかなければならない。
［ＳＥＬＥＣＴ＿ＰＵＬＳＥ］−加熱パルステーブル選択
加熱パルス・テーブル選択コマンドは、前述の［ＤＥＦＩＮＥ＿ＰＵＬＳＥ］コマンドによって定義された複数のテーブルから、すべてのヘッドに共通する１つの加熱パルスブロックテーブルを選択するために使用される。
［ＤＥＦＩＮＥ＿ＣＯＮＴＲＯＬ］−バッファ制御テーブル定義
このコマンドは、複数の異なるプリントバッファ制御テーブルを定義するために使用される。プリントバッファ制御テーブルは、プリンタが［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］コマンド（後述）を受信する前に定義しておかなければならない。
［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］−バッファ制御テーブル選択
このコマンドは、［ＤＥＦＩＮＥ＿ＣＯＮＴＲＯＬ］コマンドによって定義された複数のテーブルから、記録ヘッド１３０ａおよび１３０ｂのそれぞれについてのプリントバッファ制御テーブルを選択するために使用される。
３．６．３  保守コマンド
保守コマンドは、プリンタ３０の印刷動作を保守する働きをする。このコマンドについて以下で詳しく説明する。
［ＲＥＣＯＶＥＲ］−ヘッド回復
このコマンドを受信すると、プリンタ３０は、清掃動作やインク吸入動作などのヘッド回復モードに入る。
［ＰＣＲ］−パルス制御比変更
このコマンドは、パルス制御テーブルの比率を変更するために使用される。各比率は１ないし２００に設定することができ、これは１％ないし２００％を意味する。省略時設定は１００であり、これは１００％を意味する。
［ＵＣＴ］−協定世界時
このコマンドは、プリンタ３０内の現在時間を設定するために使用され、印刷ジョブ開始時にプリンタ３０へ送信しなければならない。プリンタ３０はこの時間を使用して、記録ヘッドを回復すべきかどうかを判定する。この時間値は、ホストプロセッサ２３のシステム・クロックによる、１９７０年１月１日の深夜１２時（００：００：００）からの経過秒数、すなわち標準座標時間（ＵＣＴ）として表される。
［ＳＣＡＮ］−スキャン・センサ
このコマンドは、自動位置合わせセンサ値を読み取り、結果をホストプロセッサ２３へ送り返すために使用される。スキャン速度、方向、解像度、面積はそれぞれ、前述のように［ＳＰＥＥＤ］コマンド、［ＤＩＲＥＣＴＩＯＮ］コマンド、［ＤＥＦＩＮＥ＿ＢＵＦ］コマンド、［ＥＤＧＥ］コマンドによって定義される。
［ＮＶＲＡＭ］−ＮＶ−ＲＡＭ制御
このコマンドは、ＥＥＰＲＯＭ１３２からデータを読み取り、読み取ったデータをホストプロセッサ２３へ送り返すために使用される。
［ＳＴＡＴＵＳ］−状況要求
このコマンドは、プリンタ３０へ状況要求を送信するためのプレフィックス・コマンドとして使用される。基本設定、主要状況、詳細状況を求める要求を出すことができる。
【０１２８】
基本設定コマンドは、プリンタ３０を設定するためにホストプロセッサ２３によって使用されるコマンドであり、必ずしもプリンタ３０からの応答を必要としない。
【０１２９】
主要状況要求／応答コマンドは、通常モードで状況情報を得るために使用され、基本状況［ＢＡＳＥ＿ＳＴＡＴＵＳ］と、エコー・コマンド［ＥＣＨＯ］と、記録ヘッド構成［ＨＥＡＤ］と、位置合わせセンサ結果［ＳＥＮＳＯＲ＿ＲＥＳＵＬＴＳ］と、ホストへのＥＥＰＲＯＭデータ送信［ＤＡＴＡ＿ＳＥＮＤ］と、ホストへのシフトバッファサイズ送信［ＢＵＦＦＥＲ＿ＳＩＺＥ］とを含む。主要状況要求／応答コマンドが発行されるたびに、応答が自動的にホストプロセッサ２３に返される。
【０１３０】
詳細状況要求／応答コマンドは、詳細な状況情報を得るために使用される。このコマンドには、詳細ジョブ状況［ＪＯＢ＿ＳＴＡＴＵＳ］と、詳細ビジー状況［ＢＵＳＹ＿ＳＴＡＴＵＳ］と、詳細警告状況［ＷＡＲＮＩＮＧ＿ＳＴＡＴＵＳ］と、詳細オペレータ・コール状況［ＯＰＥＲＡＴＯＲ＿ＣＡＬＬ］と、詳細サービス・コール状況［ＳＥＲＶＩＣＥ＿ＣＡＬＬ］とが含まれる。主要状況要求／応答コマンドと同様に、詳細状況要求／応答コマンドが発行されるたびに、応答が自動的にホストプロセッサ２３に返される。
３．７  プリンタエンジンへのコマンドおよびプリンタエンジンからのコマンドホストプロセッサ２３およびプリンタ３０は、メールボックス２１９にメッセージを挿入することによってプリンタエンジン１３１へコマンドを送信する（図２２参照）。メッセージはエンジンタスク２０６によって処理される。
４．０  用紙排出トレイ
簡単に言えば、本発明のこの態様は、本明細書で説明するプリンタと共に使用される排出トレイである。構造的には、プリンタは、媒体送り部と媒体排出ポートとを規定するハウジングを含み、その場合、ハウジングは、記録媒体上への印刷を行うプリンタエンジンを収納するするように構成される。排出トレイは、プリンタのハウジング内の、媒体排出ポートからシート排出方向に離れた位置で摺動可能に受容することのできるベースを含む。ベースは、その摺動方向へ延びる少なくとも一対の凹部を含む。排出トレイには一対のフラップも含まれる。一対のフラップはそれぞれ、ベースと排出ポートとの間のシート排出方向の距離に対応する少なくとも１つの幅部分を有する。各フラップは、ベースの対応する凹部にヒンジ止めされ、ばねを介して上向きにバイアスされる。このばねは、ベースに対するフラップの斜め方向の運動を可能にする。ベースがハウジングから摺動すると、フラップが凹部から上向きに、媒体排出ポートの位置に対応する高さにバイアスされる。
【０１３１】
以下で詳しく説明するように、前述の構成は用紙排出トレイの容易なセットアップおよび格納を可能にする。また、前述の構成は、プリンタから排出された用紙がプリンタの排出領域をブロックして塞ぐ可能性を低減する。
４．１  第１の実施形態
図２４は、用紙排出トレイ４１が使用できるようにセットアップされたプリンタ３０の斜視図である。この点では、図１および図２４に示したプリンタ３０に関して本発明の用紙排出トレイについて説明するが、任意の種類の装置（たとえば、ファクシミリ装置など）から排出された紙または他の種類の記録媒体を受容するために本発明の用紙排出トレイを使用できることに留意されたい。なお、説明を容易にするために、本発明については他の種類の記録媒体ではなく紙に関して説明する。
【０１３２】
図２５Ａは、用紙排出トレイ４１の詳細な斜視図である。図に示したように、用紙排出トレイ４１は、ベース２４０と、２つのフラップ２４１ａおよび２４１ｂと、ばね２４２ａおよび２４２ｂと、トレー延長部２４４とを含む。フラップ２４１ａおよび２４１ｂはそれぞれ、以下で詳しく説明するように、ベース２４０の凹部２６４ａおよび２６４ｂのうちの一方に一方の縁部でヒンジ止めされる。また、フラップ２４１ａおよび２４１ｂはそれぞれ、ばね２４２ａおよび２４２ｂを介してベース２４０に対して上向きにバイアスされる。また、ばね２４２ａおよび２４２ｂは、フラップ２４１ａおよび２４１ｂのベース２４０に対する制御された上斜め方向への運動および下斜め方向への運動を可能にする。
【０１３３】
図２６は、フラップ２４１ｂとベース２４０との接続の詳細な側面図である。なお、フラップ２４１ａとフラップ２４１ｂは共に、ベース２４０に同様にヒンジ止めされる。したがって、本明細書ではフラップ２４１ｂの接続についてのみ説明する。具体的には、フラップ２４１ｂは、その各端部に配設され、ベース２４０の凹部２６４ｂの対応する受容穴（図示せず）にはまるダウエル２４６および２４７を介してヒンジ止めされる。これらのダウエルは、その周りをフラップ２４１ｂがベース２４０に対して斜めに回転する軸を形成する。
【０１３４】
図２６に示したように、フラップ２４１ｂ上には中央ロッド２４８も含まれる。ばね２４２ｂは、中央ロッド２４８の周りに巻かれ、フラップ２４１ｂとベース２４０の両方に接続される。ばね２４２ｂの固有の張力のために、用紙排出トレイ４１がハウジング３１の外側にあるとき、フラップ２４１ｂは凹部２６４ｂから上向きにバイアスされる。したがって、フラップ２４１ｂは、下向きの力を受けないときにはベース２４０に対して初期角度をなす。この初期角度の例を参照符号２４９ａおよび２４９ｂで表し、図２４に示す。本発明の好ましい実施形態では、初期角度は９０度よりも小さい。
【０１３５】
フラップ２４１ａおよび２４１ｂに下向きの圧力が加わると、ばね２４２ａおよび２４２ｂが圧縮される。しかし、ばね２４２ａおよび２４２ｂは、少なくとも所定の量の圧力がフラップ２４１ａおよび２４２ｂに加えられるまでフラップ２４１ａおよび２４１ｂがベース２４０に接触するのを妨げる。したがって、フラップ２４１ａおよび２４１ｂに圧力が加わると、フラップ２４１ａおよび２４１ｂは斜め下向きにベース２４０の方へ移動するが、制御された仕方でこれを行う。この運動中に、フラップ２４１ａおよび２４１ｂのそれぞれとベース２４０との間の角度は、圧力が十分に大きい場合は初期角度から最終的に０度に減少する。なお、フラップ２４１ａおよび２４１ｂのそれぞれを０度に移動するのに必要な圧力の量は、ばね２４２ａおよび２４２ｂのうちの対応するばねの張力に基づいて決定される。
【０１３６】
好ましくは、フラップ２４１ａおよび２４１ｂはそれぞれ、ベース２４０と媒体排出ポート４０との間の横方向距離にほぼ対応する幅部を有する。このことを例示するために、図２７は、ベース２４０に対して平坦なフラップ２４１ａおよび２４１ｂを示す。具体的には、図２７に示したように、フラップ２４１ａは、４つの縁部、すなわちプリンタ３０から排出された用紙を支持する頂縁部２５０と、ベース２４０に接続する底縁部２５１と、側縁部２５４および２５２（すなわち、上記で指摘した幅部）とをそれぞれ含む。
【０１３７】
好ましくは、プリンタ３０に面する各フラップの縁部、すなわちフラップ２４１ａの側縁部２５２およびフラップ２４１ｂの側縁部２５２ｂは面取りされ（たとえば、テーパ付けされ）、図２５Ａに示したようにプリンタ３０から離れる方向へ角度付けされる。具体的には、縁部２５２および２５２ｂが面取りされるので、これらの縁部がプリンタ３０のハウジング３１に接触すると、縁部がハウジング３１に対して摺動し、フラップ２４１ａおよび２４１ｂが折り畳まれる。したがって、フラップ２４１ａおよび２４１ｂは、正面方向に押す力によってプリンタ３０のトレイ・リセプタクル４２に押し込まれるほど折り畳まれる。この特徴について以下で詳しく説明する。
【０１３８】
図２５Ｂは、フラップ２４１ｂの縁部２５２ｂの詳細図である。上記で指摘し、図２５Ｂに示したように、縁部２５２ｂは面取りされ、このことは、縁部２５２ｂが頂縁部２５０ｂおよびベース２４０に対して斜めであることを意味する。図２５Ｃおよび図２５Ｄはさらにこの特徴を示す。なお、図２５Ｃはフラップ２４１ｂの詳細な側面図である。図２５Ｄは、点線６３に沿ったフラップ２４１ｂの断面図の、位置Ａ−Ａからとった図である。したがって、図２５Ｄに示したように、面取りされた縁部２５２ｂは頂縁部２５０ｂおよびベース２４０に対して斜めである。この角度は、図２５Ｄでは２５５で示され、本発明の好ましい実施形態では約４５度である。
【０１３９】
したがって、トレイ４１を格納する際と同様に、排出トレイ４１をプリンタ３０の方へ押すと、フラップ１４１ａおよび１４１ｂの面取りされた縁部が、特定の外縁部２７２でプリンタ３０のハウジング３１に接触する。この接触に応答して、横方向に押す追加の力が加わったときに、外縁部２７２と面取りされた縁部との間の接触によって、フラップ２４１ａおよび２４１ｂが下向きにベース２４０の凹部の方へ押し込まれる。十分な力が加わった場合、フラップ２４１ａおよび２４１ｂは、下方の外縁部２７２をトレイ・リセプタクル４２内へ摺動させるほど下向きに押し込まれる。本発明のこの特徴について以下で詳しく説明する。
【０１４０】
側縁部２５２は部分２５３も含み（対応する側縁部２５２ｂも同様な部分２５３ｂを含む）、この部分は好ましくは面取りもまたは角度付けも施されない。そのような構成は、フラップ２４１ａおよび２４１ｂのそれぞれをダウエル（回転軸ピン）２４６を介してベース２４０に係合させ、それによって係合時の構造強度を高めるための平坦な表面を形成する。側縁部２５３および２５３ｂは、下方の外縁部２７２に密着し、したがって排出トレイ４１のリセプタクル４２への格納に悪影響を与えない。
【０１４１】
側縁部２５４は、図示した例では、角度付けもあるいは面取りも施されていない。しかし、必要に応じて用紙排出トレイ４１をプリンタ３０から引くことを容易にするように縁部２５４に角度付けおよび面取りを施すことができる。
【０１４２】
排出された用紙が湾曲する可能性を低減するために頂縁部２５０および底縁部２５１は好ましくは互いに平行にされない。すなわち、本発明の好適な実施形態では、排出された用紙の下向きの移動を容易にするために頂縁部２５０が底縁部２５１およびベース２４０に対してわずかに上向きに角度付けされる。したがって、頂縁部２５０と底縁部２５１との間の距離は、側縁部２５２（面取りされた縁部）と頂縁部２５０との間の交差点２６０で最小である。この距離は、交差点２６０から離れる方向へ増加し、交差点２６１、すなわち側縁部２５４が頂縁部２５０に交差する点で最大になる。底縁部２５１に対する頂縁部２５０のこの斜め構成によって、排出中に用紙がフラップ２４１ａおよび２４１ｂから落下する可能性が低減される。
【０１４３】
上記で指摘したように、ベース２４０は凹部２６４ａおよび２６４ｂ（図２４および図２５参照）も含み、凹部２６４ａおよび２６４ｂは、それぞれのフラップ２４１ａおよび２４１ｂに対応し、ベース２４０の摺動方向へ延びる。好適な実施形態では、凹部２６４ａおよび２６４ｂのそれぞれは、フラップ２４１ａおよび２４１ｂのそれぞれの形状に対応する形状を有する。この構成によって、フラップ２４１ａなどのフラップとベース２４０との間の角度がほぼ０度であるとき、フラップは、それに対応する凹部内にほぼ完全にはまることができる。両方のフラップをこのようにはめ込むと、図２７に示したように、フラップ２４１ａおよび２４１ｂを含めてベース２４０の頂面２６６はほぼ平坦になる。これによって、後述のように用紙排出トレイ４１がリセプタクル４２内に摺動するのが容易になる。
【０１４４】
具体的には、上記で指摘したように、プリンタ３０は、それを使用していないときに用紙排出トレイ４１を格納するトレイ・リセプタクル４２（図２４参照）を含む。図２８は、プリンタ３０の下面図であり、トレイ・リセプタクル４２を示す。図のように、トレイ・リセプタクル４２は、プリンタ３０の下面上にスロットなどを備え、このスロットに用紙排出トレイ４１（トレイ延長部２４４を含む）がはめ込まれる。フラップ２４１ａおよび２４１ｂが、ベース２４０に対して０度であるかあるいはほぼ０度に近いとき、用紙排出トレイ４１はトレイ・リセプタクル４２内で摺動することができる。なお、図１は、プリンタ３０内に格納された用紙排出トレイ４１の正面図である。
【０１４５】
用紙排出トレイ４１は、上記で指摘したトレイ延長部２４４を含むこともできる。図２４に示したように、トレイ延長部２４４は好ましくは、ベース２４０内のスロットに滑りこみ、このスロットから滑り出る。これによって、用紙排出トレイ４１をプリンタ３０内に格納することが容易になる。また、トレイ延長部２４４は手動ストップ２６９を含む。手動ストップ２６９は、トレイ延長部２４４を排出トレイ４１のスロットに滑りこませ、かつこのスロットから滑り出させるために使用され、かつ排出された用紙を用紙排出トレイ４１から落下しないようにするために使用される。
【０１４６】
また、手動ストップ２６９は、用紙排出トレイ４１をセットアップし格納する際に有用である。すなわち、図１に示したように、トレイ・リセプタクル４２内に用紙排出トレイ４１を格納しても、手動ストップ２６９はトレイ・リセプタクル４２内に完全にはまるわけではなく、したがって依然としてユーザから手動ストップにアクセスすることができる。ユーザは、手動ストップ２６９をつかみプリンタ３０から引き離すことによって、用紙排出トレイ４１を動作できるようにセットアップすることができる。逆に、ユーザは、手動ストップ２６９をプリンタ３０の方へ押し込むことによって、用紙排出トレイ４１をプリンタ３０内に格納することができる。これらの動作について以下で詳しく説明する。
【０１４７】
図２９Ａ〜図２９Ｄは、使用時の用紙排出トレイ４１の動作を示す。用紙排出トレイ４１のセットアップおよび格納を説明するために図２および図２４も参照する。まず、図１は、使用されていないときのプリンタ３０を示す。この構成では、用紙排出トレイ４１はリセプタクル４２内に格納される。好ましくは、プリンタ３０を使用していないときには用紙排出トレイ４１を格納する。というのは、格納することによって、用紙排出トレイ４１が誤って損傷される可能性が低減されるからである。
【０１４８】
用紙排出トレイ４１をセットアップするため、ユーザはただプリンタ３０から用紙排出トレイ４１を引き出し、それによって用紙排出トレイ４１をハウジング３１のリセプタクル４２から滑り出させる。これは通常、手動ストップ２６９を引くことによって行われる。ただし、用紙排出トレイ４１の他の部分を引いても同じ結果が達成される。この引張り動作中、フラップ２４１ａおよび２４１ｂは、トレイ・リセプタクル４２から解放されるまでべース２４０に対して比較的平坦なままである。
【０１４９】
フラップ２４１ａおよび２４１ｂは、トレイ・リセプタクル４２から一旦解放されると、それぞれ凹部２６４ａおよび２６４ｂから、媒体排出ポート４０の位置に対応する高さへ上向きにバイアスされる。すなわち、フラップ２４１ａおよび２４１ｂをトレイ・リセプタクル４２から解放すると、もはやフラップ２４１ａおよび２４１ｂをベース２４０に対して保持するものはなくなる。したがって、ばね２４２ａおよび２４２ｂによって、フラップ２４１ａおよび２４１ｂが上向きにバイアスされ、そのためフラップは、正面から見てほぼ“Ｖ”字形になる。上記で指摘したように、この点で、フラップ２４１ａおよび２４１ｂはそれぞれ、ベース２４０に対する角度が好ましくは９０度よりも小さい。フラップ２４１ａおよび２４１ｂがこの位置に来ると、プリンタ３０は用紙の用紙排出トレイ４１上への排出を開始することができる。
【０１５０】
図２９Ａ〜図２９Ｄは、プリンタ３０から排出された用紙を受容するようにセットアップされた用紙排出トレイ４１の正面図である。図２９Ａに示したように、角度２４９ａおよび２４９ｂは、上記では初期角度と呼ばれ、ベース２４０に対して９０度未満である。角度２４９ａおよび２４９ｂが９０度未満であるので、フラップ２４１ａおよび２４１ｂ上に排出された用紙の重量によってフラップが下向きに移動し、それによって角度２４９ａおよび２４９ｂがそれぞれ減少する。これを図２９Ｂに示す。
【０１５１】
具体的には、図２９Ｂは、プリンタ３０から排出された数枚の用紙２７０を用紙排出トレイ４１が受容した場合を示す。図のように、用紙２７０からの重量によってフラップ２４１ａおよび２４１ｂは下向きにベース２４０の方へ移動する。そのため、フラップとベースとの間の角度２４９ａおよび２４９ｂは初期角度から減少する。図２９Ｃは、用紙排出トレイ４１にずっと多くのシートが追加され、したがってフラップ２４１ａおよび２４１ｂがさらに下向きに押し込まれ、したがって角度２４９ａおよび２４９ｂがさらに減少する場合を示す。この動作は、媒体排出ポート４０から排出された用紙がプリンタ３０の動作時に媒体排出ポート４０を閉塞する可能性を低減する。
【０１５２】
図２９Ｄは、フラップ２４１ａおよび２４１ｂからさらに多くの用紙を受容した場合を示す。この場合、フラップ２４１ａおよび２４１ｂ上の用紙２７０の重量は、フラップ２４１ａおよび２４１ｂをベース２４０に対する角度がほぼ０度になるように押し付けるのに十分である。そのため、フラップ２４１ａおよび２４１ｂはそれぞれ、凹部２６４ａおよび２６４ｂのうちの対応する凹部に押し込まれる。したがって、従来型のプリンタとは異なり、プリンタ３０は、ほぼ媒体排出ポート４０を閉塞せずにより多くの用紙を印刷することができる。
【０１５３】
前述のように、加えられた力に応答してフラップ２４１ａおよび２４１ｂが下向きに移動する度合いは、フラップ２４１ａおよび２４１ｂをベース２４０に対してバイアスさせるばね２４２ａおよび２４２ｂの張力に依存する。上記で指摘したように、本発明の好適な実施形態では、ばね２４２ａおよび２４２ｂは、媒体排出ポート４０上に用紙が排出されないときにフラップ２４１ａおよび２４１ｂが媒体排出ポート４０の高さにバイアスされるような張力を有する。特に本発明の好適な実施形態では、用紙が排出される位置はすべての用紙について相対的に同じままである。
【０１５４】
さらに、本発明の好適な実施形態では、フラップ２４１ａとフラップ２４１ｂは共に、ほぼ同じ形状を有し、上記で指摘したように、ベース２４０との同じ接続を有する。フラップ２４１ａおよび２４１ｂの両方に接続されたばね２４２ａおよび２４２ｂも好ましくは、ほぼ同じ張力を有する。この対称性のために、本発明はより多くの用紙を保持することができ、機械的誤動作をより少なくできる。なお、フラップ２４１ａおよび２４１ｂがそれぞれの異なる形状を有し、ばね２４２ａおよび２４２ｂがそれぞれの異なるバイアスを発生させる場合でも用紙排出トレイ４１が動作することに留意されたい。
【０１５５】
次に、プリンタ３０内の用紙排出トレイ４１の格納について図２および図２４を参照して説明する。なお、図２４に示したように、プリンタ３０上のリセプタクル４２は外縁部２７２を含む。また、フラップ２４１ａおよび２４１ｂはそれぞれ、側縁部（すなわち、図２５および図２７に示した側縁部２５２および２５２ｂ）を含み、この側縁部は、プリンタ３０に面し、プリンタ３０から離れる方向へ角度付けされ、上記で図２５Ｂ、図２５Ｃ、図２５Ｄを参照して説明したように、ほぼ平坦になり、かつ頂縁部およびベースに対して斜めになるように面取りされる。後述のように、このような側縁部、すなわち側縁部２５２および２５２ｂは、用紙排出トレイ４１のトレイ・リセプタクル４２内への格納を容易にするように上記のように構成される。
【０１５６】
具体的には、用紙排出トレイ４１をトレイ・リセプタクル４２内に格納するには、ユーザはベース２４０（またはトレー延長部２６９）を横方向へ押し込むだけでよい。このように横方向へ押すことによって、フラップは、ハウジング３１と協働し、ハウジング３１内への摺動時に凹部に畳み込まれる。具体的には、横方向へ押す動作によって、トレイ・リセプタクル４２の下方の部分２５３が押し込まれ、側縁部２５２および２５２ｂがトレイ・リセプタクル４２の外縁部２７２に押し付けられる。外縁部２７２は、側縁部に対する等しいが逆方向の力で「応答」する。側縁部２５２および２５２ｂは面取りされ角度付けされているので（たとえば、図２５Ｂ参照）、この等しいが逆方向の力には、フラップ２４１ａおよび２４１ｂを下向きにベース２４０の方へ移動させる下向き成分を含む。排出トレイ４１に横方向に押す追加の力が加わると、側縁部２５２および２５２ｂが、外縁部２７２に対して摺動し、フラップをさらに下向きに押す。
【０１５７】
上記の場合と同様に、フラップ２４１ａおよび２４１ｂが下向きに移動するにつれて、フラップ２４１ａおよび２４１ｂとベース２４０との間の角度が減少する。側縁部の角度のために、側縁部にさらなる力が加わるにつれて、フラップ２４１ａおよび２４１ｂは引き続き外縁部２７２に沿って摺動し、したがってさらに下向きに押し込まれる。最終的に、十分な横方向に押す力が加わった場合、フラップ２４１ａおよび２４１ｂは、凹部２４９ａおよび２４９ｂ内に畳み込まれるように下向きに押し込まれる。したがって、用紙排出トレイ４１は容易にトレイ・リセプタクル４２内に摺動する。図１は、プリンタ３０のトレイ・リセプタクル４２内に格納された用紙排出トレイ４１を示す。
【０１５８】
したがって、従来技術とは異なり、本発明は、ユーザによる物理的な操作をそれほど必要としない用紙排出トレイ４１を格納する手段を提供する。さらに、用紙排出トレイ４１を容易に格納できるかどうかは主としてフラップ２４１ａおよび２４１ｂおよびハウジング３１の形状によって決まるので、用紙排出トレイ４１上における付加的な機械的構成要素の数が削減される。
【０１５９】
この点で、記録材料を保持するために使用される保持部材（たとえば、フラップ）の形状が異なる形状でもよいことに留意されたい。なお、本発明は、２つよりも多くの保持部材からなる単一の保持部材を使用して実施することもできる。たとえば、本発明は、保持部材の対向するアーム同士の間に１つまたは複数のバイアスばねが位置決めされた単一の“Ｖ”字形保持部材を使用して実施することができる。プリンタ２４６０と共に使用することのできる本発明の用紙排出トレイの第２の実施形態の例を図２９Ｅに示す。
４．２  第２の実施形態
図２９Ｅに示したように、用紙排出トレイ２４００は単一のフラップ、すなわちフラップ２４１０を含む。フラップ２４１０は、単一の凹部２４４０内部にヒンジ止めされ、ばね（図示せず）によって凹部２４４０に対してバイアスされる。フラップ２４１０は、上記で第１の実施形態で説明したフラップと同様に動作する。したがって、話を簡単にするために詳細な説明を省略する。フラップ２４１０が凹部２４４０内に折り畳まれるように、トレイ２４００がプリンタ２４６０の方へ押しこまれるときにフラップ２４１０の頂面２４５０がプリンタ２４６０と協働すると言えば十分であろう。これによって、プリンタ２４６０内にフラップ２４１０を格納することができる。同様に、トレイ２４００がプリンタ２４６０から引き出されると、フラップ２４１０の下方のばね（図示せず）が、プリンタ２４６０の媒体排出ポート２４６５の高さにほぼ等しい高さにフラップ２４１０をバイアスさせる。
【０１６０】
印刷時に、フラップ２４１０は、第１の実施形態で説明したフラップと同様に動作する。具体的には、フラップ２４１０上に用紙が排出されると、フラップ２４１０は下向きに凹部２４４０の方へ移動し、最終的に十分な用紙が排出されると凹部２４４０に入る。上記の場合と同様に、フラップ２４１０の下向きの運動は、フラップ２４１０を凹部２４４０に対してバイアスさせるばね（図示せず）を介して制御される。
【０１６１】
最後に、本発明の用紙排出トレイについて単一のフラップおよび一対のフラップに関して説明したが、本発明を複数のフラップと共に使用するようにしても良い。
５．０  インク清掃機構
簡単に言えば、本発明のこの態様は、記録ヘッドと少なくとも１つの取外し可能なインク容器とを有するカートリッジを解放可能に受容するキャリッジ上に取り付けられたキャリッジ・リセプタクルである。このリセプタクルは、少なくとも１つのインク容器の取外しを可能にする旋回レバーを含む。このレバーは、それが少なくとも１つの容器から離れる方向へ旋回するようなときまで少なくとも１つのインク容器へのアクセスを妨げるように少なくとも１つのインク容器の少なくとも一部の上方へ延びる。レバーが、少なくとも１つのインク容器から離れる方向へ旋回し、次いで少なくとも１つのインク容器の少なくとも一部の上方へ旋回すると、記録ヘッドの清掃を促す信号が出力される。
【０１６２】
上記で図４に関して説明したように、プリンタ３０はカートリッジ・リセプタクル６４ａおよび６４ｂを含む。カートリッジ・リセプタクル６４ａおよび６４ｂ内のインクカートリッジ（したがって、このカートリッジ内のインク容器）へのアクセスは、図２に示したアクセスドア３２を介して自動的に行われる。具体的には、上記で指摘したように、プリンタ３０は、アクセスドア３２が開放または閉鎖されたときにそれを検知するセンサを含む。アクセスドア３２が開放されたことをこのセンサが検知したことに応答して、カートリッジ・リセプタクル６４ａおよび６４ｂがほぼキャリッジ６９の中央、すなわちほぼ図４に示した位置へ移動するようにキャリッジモータ６６が駆動される。プリンタ３０のこの領域は、アクセスドア３２が開放されたときにアクセスできるプリンタ３０の内部に対応する。したがって、単にアクセスドア３２を開放することによってカートリッジ・リセプタクル６４にアクセスすることが可能である。このことの重要性は以下で明らかになろう。
【０１６３】
前述の図６Ａおよび図６Ｂは、カートリッジ・リセプタクル６４ｂの物理的構成を示す。前述の図７Ａおよび図７Ｂは、カートリッジ・リセプタクル６４ｂ内に設置することのできるインク・カートリッジ３００ｂの物理的構成を示す。上記で指摘したように、図６Ａおよび図６Ｂに示したカートリッジ・リセプタクルならびに図７Ａおよび図７Ｂに示したインクカートリッジ用の回路接点は、インクカートリッジの清掃に関連して使用される。具体的には、本発明によれば、カートリッジ・リセプタクル上の回路接点は、カートリッジ・リセプタクルのレバーの開閉に応答してインクカートリッジ上の回路接点に係合し、かつこの接点から係合解除される。
【０１６４】
動作時の図６Ａおよび図６Ｂに示したカートリッジ・リセプタクルの正面図を図３０（Ａ）および図３０（Ｂ）に示す。図３０（Ａ）および図３０（Ｂ）に示したように、カートリッジ・リセプタクル６４ｂは特に、カプセル７３とレバー７２とを含む。レバー７２は、カプセル７３に対して旋回するようにヒンジ止めされる。この旋回動作によって、ユーザは、カートリッジ・リセプタクル６４ｂ内のインクカートリッジ全体とインク容器のみのどちらかにアクセスしカートリッジから取り外すことができる。
【０１６５】
レバー７２はまた、上記で図６Ｂに関して詳しく説明したように、レバー７２が旋回し、たとえば開放または閉鎖されたときに、カプセル７３が横方向へ移動するようにカプセル７３に接続される。具体的には、図３０（Ｂ）に示した開放位置から図３０（Ａ）に示した閉鎖位置へレバー７２が旋回すると、カプセル７３はカートリッジ・リセプタクル６４ｂ内の横方向に矢印２８０の方向へ移動する（図３０（Ａ）参照）。この移動によって、カプセル７３の側壁７５がカートリッジ・リセプタクル６４ｂの側壁７８に接触する。一方、図３０（Ａ）に示した閉鎖位置から図３０（Ｂ）に示した開放位置へレバー７２が移動すると、カプセル７３はカートリッジ・リセプタクル６４ｂ内の横方向に矢印２８１の方向へ移動する（図３０（Ｂ）参照）。この移動によって、カプセル７３の側壁７５がカートリッジ・リセプタクル６４ｂの側壁７８から離れる方向へ移動する。
【０１６６】
前述の運動時に、すなわち図３０（Ａ）に示した位置と図３０（Ｂ）に示した位置との間でカプセル７３が移動する際に、カプセル７３上のフィンガ２８２がスリーブ２８に摺動可能に係合する。図３０（Ａ）および図３０（Ｂ）にも示したように、カプセル７３はショルダ２８６を含み、レバー７２はフランジ２８７を含む。したがって、図３０（Ａ）に示したようにレバー７２を閉鎖すると、フランジ２８７はショルダ２８６に接触し、設置済みのインクカートリッジやインク容器には接触しない。これらの特徴により、レバー７２との誤った接触によって起こるカートリッジの移動を低減することができる。
【０１６７】
図３１（Ａ）および図３１（Ｂ）は、カートリッジ３００ｂが設置されたカートリッジ・リセプタクル６４ｂの図である。図３１（Ａ）に示したように、レバー７２がインク容器８３の一部の上方へ旋回し、すなわちレバー７２が閉鎖位置に来ると、オペレータがインク容器８３にアクセスすることが妨げられる。すなわち、この位置では、インク容器８３の頂部が少なくとも部分的にレバー７２で覆われ、それによってインク容器へのアクセスが制限される。また、この位置では、インクカートリッジ３００ｂ上のカートリッジ回路接点８１がカートリッジ・リセプタクル６４ｂ上の装置回路接点７１に係合する。これに対して、レバー７２がインク容器８３のから離れる方向へ旋回し、すなわちレバー７２が開放位置に来ると、オペレータはインク容器８３にアクセスすることができる。この位置では、インク・カートリッジ３００ｂ上のカートリッジ回路接点８１がカートリッジ・リセプタクル６４ｂ上の装置回路接点７１から係合解除される。
【０１６８】
したがって、上記で図３０（Ａ）および図３０（Ｂ）に関して説明したカプセル６４ｂの横方向運動時には、回路接点７１と回路接点８１が係合し、かつ係合解除される。具体的には、回路接点７１と回路接点８１は、レバー７２が開放されると係合解除され、レバー７２が閉鎖されると係合する。回路接点のこの係合および係合解除は、ユーザが、清掃すべき記録ヘッド３００ｂを指定し、記録ヘッド３００ｂの清掃を促す信号を出力させる手段である。プリンタ３０内のコントローラ（前述のＣＰＵ１２１など）は、この信号を受信し、後述の清掃プロセスを開始する。
【０１６９】
なお、プリンタ３０内のインクカートリッジの一方または両方を、前述のように、清掃すべきインクカートリッジとして指定できる。さらに、インク清掃が、このように指定されたカートリッジにのみ実行される。
【０１７０】
インクカートリッジが指定された後、実際にはアクセスドア３２が閉鎖されるまでインクの清掃は行われない。すなわち、インクカートリッジを指定する際、アクセスドア３２は開放されていなければならない。インクの清掃は、上記で指摘したアクセス・ドア・センサが、アクセスドア３２が閉鎖されたことを検知するまで行われない。なお、アクセスドア３２が閉鎖されたことが検知された後、カートリッジ・リセプタクル６４ａおよび６４ｂが自動的にホーム位置８７、すなわちインク清掃機構８６に対応する位置へ移動する。次いで、インク清掃機構８６を使用して、指定されたカートリッジの記録ヘッドからインクが除去（すなわち、吸引）される。
【０１７１】
したがって、インク清掃機構８６は２つの記録ヘッド接続キャップ８８ａおよび８８ｂ（図４参照）を含む。これらの記録ヘッド接続キャップはそれぞれ、カートリッジ・リセプタクル６４ａおよび６４ｂのうちの一方のインクカートリッジの記録ヘッドに対応する。しかし、記録ヘッドからインクを除去（すなわち、吸引）する回転ポンプには一方の記録ヘッドの接続キャップ、すなわちキャップ８８ａのみが接続される。この構成の例を図３２に示す。図３２で、記録ヘッドの接続キャップ８８ａはポンプ２９４に接続されている。
【０１７２】
したがって、アクセスドア３２を閉鎖すると、清掃すべきインクカートリッジとして指定されたインクカートリッジの記録ヘッドが記録ヘッド接続キャップ８８ａに接続される。たとえば、図３３（Ａ）のブロック図に示したように、インクカートリッジ３００ｂを清掃すべきインクカートリッジとして指定した場合、インクカートリッジ３００ｂはキャップ８８ａに接触するように移動される。一方、インクカートリッジ３００ａを清掃すべきインクカートリッジとして指定した場合、インクカートリッジ３００ａは、図３３Ｂに示したブロック図に示したように、アクセスドア３２が閉鎖されたときにキャップ８８ａに接触するように移動される。両方のインクカートリッジを、前述のように清掃すべきインクカートリッジとして指定した場合、インクカートリッジは順次キャップ８８ａに接続される。
【０１７３】
上記で指摘したホーム位置センサを介して接続が検知されると、ポンプ２９４によってカートリッジの記録ヘッドのノズルまたは穴からインクが引込まれる（すなわち、吸引される）。この清掃動作の後に続いて、カートリッジを使用して印刷を行うことができる。
６．０  プリンタ・プロファイル・パラメータの記憶
簡単に言えば、本発明のこの態様は、少なくとも１つの記録ヘッドを有する画像記録装置の記録ヘッドを制御する方法である。この方法は、少なくとも１つの記録ヘッドのプロファイル情報を得るステップと、プロファイル・パラメータを不揮発性ＲＡＭに記憶するステップと、要求に応じて、画像記録装置に接続されたホストプロセッサにプロファイル情報を出力し、そのホストプロセッサが、記録ヘッドのプロファイル情報を使用して、印刷のためにホストプロセッサから記録ヘッドへ送信すべき印刷情報を補償する補償パラメータを作成するステップとを含む。
【０１７４】
詳細には、電力を投入しハード電源オンを実行すると、プリンタ３０はオフラインモードに入る。このモードでは、プリンタ３０内のＣＰＵ１２１が、ＲＯＭ１２２から初期設定ソフトウェアを検索し、電源オン自己試験プログラム（ＰＯＳＴ）を実行する。ＣＰＵ１２１は、それが実行する多数の自己試験プログラムおよび状況検査プログラムのうちで、記録ヘッド１３０ａおよび記録ヘッド１３０ｂの状況を検査し、プリンタ３０にいずれかの記録ヘッドが設置されているか、それとも両方の記録ヘッドが設置されているかを判定する。ＣＰＵ１２１がこの状況を検査する１つの方法は、アクセスドア３２が開放されているかどうかを判定し、そうである場合に、ＥＥＰＲＯＭ１３２に記憶されている記録ヘッド初期設定（ＩＤ）情報を現在の記録ヘッドのＩＤと比較することである。新しい記録ヘッドが設置された後、この変更は、後述のように、記憶されている他のプリンタ・プロファイル・パラメータと共にＥＥＰＲＯＭ１３２に記録される。
【０１７５】
しかし、ＣＰＵ１２１は、最初のインストールおよび電源オン時に、プリンタ３０に関する様々なプロファイル・パラメータをプリンタの設置プログラミングの一部として収集する。たとえば、ＣＰＵ１２１は、プリンタＩＤと、記録ヘッドＩＤ情報（または複数の記録ヘッドが設置されている場合はすべての記録ヘッド分のプリンタＩＤ）と、プリンタ３０ならびに記録ヘッド１３０ａおよび１３０ｂの現在の状況（この機能は、以後の電源オンの後と特定の所定の時間およびイベント時にも実行される。これについては以下で詳しく論じる）を得る。
【０１７６】
ＰＯＳＴ処理が実行された後、プリンタ３０は、オンライン・モードに入り、ホストプロセッサ２３からのコマンドを待つ。図１０に示したように、ホストプロセッサ２３は、プリンタ・インタフェース１０４を通して直接、プリンタ３０の制御論理１２４へコマンドを送信する。ホストプロセッサ２３からプリンタ３０の読取り／書込みＥＥＰＲＯＭ１３２へのコマンドも、プリンタ・インタフェース１０４および制御論理１２４を通して送られる。
【０１７７】
通常、ホストプロセッサ２３は、オンラインになった後、状況要求コマンド［ＳＴＡＴＵＳ］を制御論理１２４を介してプリンタ３０へ送信する。プリンタ３０のＣＰＵ１２１は、そのような状況要求コマンドを受信した後、記憶されているプリンタ・プロファイル・パラメータをＥＥＰＲＯＭ１３２、入出力ポート・ユニット１２７、制御論理１２４からホストプロセッサ２３へ送信する。ＥＥＰＲＯＭ１３２の特定の領域に記憶されホストプロセッサ２３に登録されているプリンタ・プロファイル・パラメータの例を以下の表１に示す。
【０１７８】
0003548441.tif 000002
これらの前述のプリンタ・プロファイル・パラメータは、印刷動作時に記録ヘッド・コマンド・データを補償するためにホストプロセッサ２３によって使用される。
【０１７９】
したがって、図３４に示したフローチャートを参照するとわかるように、ステップＳ３４０１で、プリンタ３０は、ハード電源オンを実行した後にオフラインモードに入る。このオフラインモード中にステップＳ３４０２で、プリンタ３０はＰＯＳＴ動作を実行して状況および機能データを収集し、ハードウェア障害またはソフトウェア障害がないかどうかを検査する。初期化後、ステップＳ３４０３で、プリンタ３０のＣＰＵ１２１は、新しい記録ヘッドが装着されているかどうかを判定する。プリンタ３０とインストールした後の初期電源オン中にステップＳ３４０３が開始され、１つ以上の記録ヘッドを有する１つ以上のインクカートリッジがインストールされた場合、ＣＰＵ１２１は、新たに挿入された記録ヘッドから情報を得て、その情報をＥＥＰＲＯＭ１３２に記憶し、次のソフト電源オン時に清掃プロセスを命令する。しかし、ユーザがアクセスドア３２を開放し新しい記録ヘッドをインストールしたためにプリンタ３０がオフラインになっているに過ぎない場合、ステップＳ３４０４で、ＣＰＵ１２１は記録ヘッドＩＤを収集し、記録ヘッドが変更されたことを示すＥＥＰＲＯＭ１３２内のフラグをセットする。このフラグによって、インクカートリッジが変更されたことをホストプロセッサ２３に示す。このプロセスが実行されるのは、記録ヘッドが初めてインストールされたときと、記録ヘッドがその後交換されたときである。
【０１８０】
なお、ＥＥＰＲＯＭ１３２は、記録ヘッドカートリッジ内の記録ヘッドとインクの両方の物理的特性を補償するために使用される補償パラメータをホストプロセッサ２３に与えることなど様々な目的のために、ホストプロセッサ２３に登録された複数のプリンタ・プロファイル・パラメータを記憶する。たとえば、以下の表２に示したように、ＥＥＰＲＯＭ１３２は、記録ヘッド位置合わせ情報および光学濃度情報だけでなく、廃棄インク量、記録ヘッド交換数、記録ヘッド清掃回数、記録ヘッドＩＤ、記録ヘッド・タイプなどに関する情報およびパラメータも記憶する。
【０１８１】
0003548441.tif 000003
0003548441.tif 000004
図３４に戻るとわかるように、新しいインクカートリッジが設置されていない場合、プリンタ３０はステップＳ３４０５でオンライン・モードに入り、このモードでプリンタ３０は、ホストプロセッサ２３と通信することができ、あるいはネットワーク化されている場合はホストサーバと通信することができる。オンラインになった後、プリンタ３０はホストプロセッサ２３からコマンドを受信するのを待つ。このようなコマンドは、そのいくつかが上記のようにリストされているが、プリンタ３０がオンラインになった後にプリンタ３０へ送信できるコマンドの典型的なものである。なお、通常、オンラインになった後、ホストプロセッサ２３は状況要求［ＳＴＡＴＵＳ］コマンドをプリンタ３０へ送信し、新しい情報、またはプリンタがオフラインであった間に変更されたパラメータを得る。これに応答して、ステップＳ３４０６で、プリンタ３０は、ＥＥＰＲＯＭ１３２に記憶されているプリンタ・プロファイル・パラメータをホストプロセッサ２３へ送信する。ホストプロセッサ２３は、パラメータを受信した後、そのパラメータ、特に記録ヘッドに関するパラメータを確認し、記録ヘッドが交換されているかどうかを判定する。記録ヘッドが交換されていると判定された場合、ステップＳ３４０７で、ホストプロセッサ２３は、試験パターンを要求すべきかどうかを判定する。通常、試験パターンは、記録ヘッドの位置合わせおよび印刷された画像の光学濃度が測定できるように印刷される。記録ヘッドが交換されており試験パターンが必要である場合、ステップＳ３４０８で、ホストプロセッサ２３は１つまたは複数のコマンドをプリンタ・インタフェース１０４および制御論理１２４を通してプリンタエンジン１３１へ送信する。たとえば、ホストプロセッサ２３は、以下の表３に示した一連のコマンドを送信することができる。これらのコマンドは、走査すべき試験パターンを印刷するように印刷データと共にプリンタエンジン１３１へ送信することができる。
【０１８２】
0003548441.tif 000005
0003548441.tif 000006
試験パターンが印刷された後、ステップＳ３４０９で、ホストプロセッサ２３は、記録ヘッド１３０ａおよび１３０ｂ上のセンサ８２による印刷された試験パターンのスキャンを開始するスキャン［ＳＣＡＮ］コマンドをプリンタ３０に出力する。具体的には、［ＳＣＡＮ］コマンドを受信すると、記録ヘッド１３０ａおよび１３０ｂがそれぞれホーム位置８７に戻り、その時点で各センサ８２のキャップが外され、印刷された試験パターンをセンサ８２と位置合わせするために、試験パターンが印刷された用紙が搬送される。
【０１８３】
各センサ８２は、対応する記録ヘッドによって印刷された印刷済み試験パターンの一部を走査し、その結果得られた試験パターンデータ（たとえば、位置合わせ測定値）をＲＡＭ１２９に記憶する。この試験パターンデータは、センサ８２の出力電圧レベルをアナログ・デジタル変換することによって得られる８ビット・デジタル化データである。
【０１８４】
ＲＡＭ１２９に記憶されている試験パターンデータは、ホストプロセッサ２３が状況要求［ＳＥＳＮＯＲ＿ＲＥＳＵＬＴＳ］コマンドをプリンタ３０へ送信するまでＲＡＭ１２９に残る。プリンタ３０は、ステップＳ３４１０で［ＳＥＮＳＯＲ＿ＲＥＳＵＬＴＳ］コマンドを受信すると、ＲＡＭ１２９に記憶されている試験パターンデータをホストプロセッサ２３へ送信する。データが受信されると、ホストプロセッサ２３は、ディスク２５から補償式を検索し、この数式を受信データと共に使用して補償パラメータを得る。補償パラメータが算出された後、ホストプロセッサ２３は［ＮＶＲＡＭ］制御コマンドをプリンタ３０へ送信し、それによってプリンタ３０はステップＳ３４１１でＥＥＰＲＯＭ１３２に補償パラメータを書込む。
【０１８５】
前述のように、ＥＥＰＲＯＭ１３２は記録ヘッド１３０ａおよび１３０ｂのそれぞれごとに別々のパラメータおよび測定値を記憶し、補償パラメータは各記録ヘッドの位置合わせおよび光学濃度に基づいて別々に算出されダウンロードされる。ホストプロセッサ２３によってダウンロードされる補償パラメータの種類の例を以下の表４に示す。
【０１８６】
0003548441.tif 000007
0003548441.tif 000008
0003548441.tif 000009
上記に示した情報およびパラメータは、記録ヘッド１３０ａおよび１３０ｂの位置合わせと、記録ヘッド１３０ａおよび１３０ｂのそれぞれによって印刷された画像の光学濃度に関するものである。この情報は、印刷動作中に記録ヘッド・コマンド信号を記録ヘッド１３０ａおよび１３０ｂへ送信する際にホストプロセッサ２３によって使用される。
【０１８７】
図３４に示すフローチャートに戻るとわかるように、ステップＳ３４１１で、プリンタ３０はホストプロセッサ２３からの他のコマンドを待つ。
【０１８８】
ステップＳ３４１３で、ホストプロセッサ２３は状況要求［ＤＡＴＡ＿ＳＥＮＤ］コマンドをプリンタ３０へ送信し、プリンタ・プロファイル・パラメータが再びホストプロセッサ２３に登録される。［ＳＴＡＴＵＳ］コマンドは、特定の時間間隔でプリンタ３０へ送信することも、あるいは記録ヘッドの交換など特定のプリンタ・イベントの後にプリンタ３０へ送信することもできる。次にステップＳ３４１４で、ホストプロセッサ２３は、記録ヘッド１３０ａおよび１３０ｂのそれぞれへ印刷情報を送信する際に、プリンタ・プロファイル・パラメータを使用して記録ヘッド１３０ａおよび１３０ｂのそれぞれの物理的特性および変動と、記録ヘッド１３０ａおよび１３０ｂのそれぞれに取り付けられたインクカートリッジ内のインクの物理的特性および変動を補償する。
【０１８９】
したがって、プリンタ３０はプロファイルを個別に、あるいはホストプロセッサ２３とは別に記憶する。このため、他のホストプロセッサは、プリンタ３０から登録されたプロファイルを読み取り、プリンタ３０に関する物理的特性を補償することができる。
７．０  記録ヘッドの清掃のスケジューリング
簡単に言えば、この実施形態で開示する本発明の一態様は、ホストプロセッサとのインタフェースをとり、印刷データ、印刷コマンド、リアルタイム／日付情報をホストプロセッサから受信するインタフェースと、印刷データ、印刷コマンド、リアルタイム／日付情報を記憶するメモリと、印刷データおよび印刷コマンドに応じて画像を印刷し、少なくとも１つの記録ヘッドを画像を印刷するように制御するプリンタエンジンと、インタフェースを介してホストプロセッサから受信したリアルタイム／日付情報に基づきプリンタ関連イベントに基づいてプリンタエンジンの処理イベントを制御するプロセッサとを含むインクジェットプリンタである。
【０１９０】
具体的には、ノズルに捕捉された気泡又は乾燥インクのために記録ヘッドのノズルが詰まるので、プリンタ３０の記録ヘッド１３０ａおよび１３０ｂを清掃しなければならない。この清掃プロセスは、記録ヘッドをそのホーム位置へ移動させ、そこで回転ポンプ２９４が記録ヘッドからインクを吸引することからなる。この結果得られる廃棄インクは廃棄物受けなどの廃棄物貯蔵領域に堆積され、そこで最終的に、時間の経過と共に蒸発する。所定の時間の後に記録ヘッド１３０ａおよび１３０ｂを清掃することが重要であり、この所定の時間は本発明では、最後の清掃から７３時間の経過時間として決定されている。これを行わない場合、記録ヘッドのノズルが詰まり、それによって画質が悪影響を受けることがある。また、インクジェットプリンタ３０の適切な動作を補償するために、記録ヘッド１３０ａおよび１３０ｂはそれぞれ、インクカートリッジを設置する際に清掃され、かつインクカートリッジを交換するたびに清掃される。
【０１９１】
前述のように、イベントに基づいてスジューリングされた清掃を除いて、プリンタ３０は経過時間に基づいて記録ヘッドの清掃を行う。この経過時間は、最後の清掃からどれだけの時間が経過したかを求めることによって算出される。清掃動作の手動開始の例については、上記の第５．０節で説明した。経過時間の判定は、あらゆる印刷ジョブの開始時にホストプロセッサ２３からダウンロードされるリアルタイム／日付スタンプに基づいて行われる。このように、プリンタ３０は、最後の清掃プロセスからどれだけの時間が経過したかを追跡することができる。
【０１９２】
次に、前述のプロセスについて、図３５のフローチャートを参照して詳しく論じる。記録ヘッドがインストールされ、ステップＳ３５０１でプリンタ３０に電力が初めて投入された後、ハード電源オンによって、プリンタ３０の清掃スケジュールプロセスが開始される。ステップＳ３５０２およびＳ３５０３で、プリンタ３０のＣＰＵ１２１は、ＲＯＭ１２２に記憶されているプロセスステップを実行することによって電源オン自己試験初期設定プログラムを実行する。ＣＰＵ１２１は、このプログラムを使用して様々なハードウェアパラメータを検査しかつ定義する。ステップＳ３５０４で、ＣＰＵ１２１は、ＥＥＰＲＯＭ１３２に記憶されている様々なパラメータを読み取る。これらのパラメータについては上記の第６．０節で詳しく論じた。本発明のこの態様では、ＣＰＵ１２１は、記録ヘッド１３０ａおよび１３０ｂのそれぞれについてリストされた最後の清掃時間を調べる。この情報は、次の清掃時間をスケジューリングするために必要である。しかし、ＥＥＰＲＯＭ１３２がまだ初期化されていない場合、最後の清掃時間は零（ゼロ）に設定される。
【０１９３】
前述のように、ＥＥＰＲＯＭ１３２は、プリンタ３０内で使用されるすべての記録ヘッドに関するプロファイル情報を維持する。したがって、現在開示している実施形態では、ＥＥＰＲＯＭ１３２は、記録ヘッド１３０ａおよび１３０ｂの最後の清掃時間を別々のメモリ位置に維持する。各清掃時間はまた、チェック・サム値と共に記憶される。すなわち、清掃時間は、チェック・サム処理またはＣＲＣ検査処理によるデータエラー補正と共に確保される。偶発的な電源遮断時に起こる清掃時間の喪失、あるいはＥＥＰＲＯＭ１３２への書込み動作の間にハードオン・リセットが行われた場合に起こる清掃時間の喪失を防止するために、清掃時間とチェック・サムは共に、ＥＥＰＲＯＭ１３２の別々のメモリ位置でミラーリングされる。そのため、事故が発生した場合でも、少なくとも１組の清掃時間が保証される。
【０１９４】
ステップＳ３５０５で、ＣＰＵ１２１は、記録ヘッドＡ（たとえば、図１０の記録ヘッド１３０ａ）が最後に清掃されてからの経過時間を表す変数ＤｅｌｔａＴ＿Ａを再設定する。この変数は、イネーブルされると、１秒間隔で増分され、あらゆるハード電源オフ後にクリアされる。同様に、ＣＰＵ１２１は、記録ヘッドＢ（たとえば、図１０の記録ヘッド１３０ｂ）に関する変数Ｄｅｌｔａ  Ｔ＿Ｂも再設定する。ＣＰＵ１２１はこの時点で、リアルタイムが設定されているかどうかを示すＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅ、リアルタイムが再設定されているかどうかを示すＦｌａｇＲｅａｌＴｉｍｅＲｅｓｅｔ、リアルタイムがまだ設定されていないときにのみＤｅｌｔａ  Ｔ＿Ａ値が記録ヘッドＡの最後の清掃の時間を示すことを示すＦｌａｇＲｅｃｏｒｄＹｅｔ＿Ａ、記録ヘッドＢからの同様な情報を示すＦｌａｇＲｅｃｏｒｄＹｅｔ＿Ｂなど他のインジケータ・フラグをリセットする。本発明の清掃スケジューリング・プロセス中に設定され再設定される各変数およびフラグを以下の表５にリストする。
【０１９５】
0003548441.tif 000010
0003548441.tif 000011
0003548441.tif 000012
ステップＳ３５０６で、ＣＰＵ１２１は、各記録ヘッドの最後の清掃時間が零に等しいかどうかを判定する。なお、プリンタを新たにインストールする場合、これらの変数は零になる。したがって、ステップＳ３５０７で、記録ヘッドＡを清掃してからの経過時間が所定の時間、すなわち、上記で指摘したように”７３時間”に設定される。そのため、プリンタ３０は、ソフト電源オンを行う際、記録ヘッドＡに対して清掃動作を実行する。ステップＳ３５０８およびＳ３５０９で、記録ヘッドＢに対して同様な処理が実行される。
【０１９６】
ステップＳ３５１０で、ＣＰＵ１２１は清掃スケジュールプロセスをイネーブルする。ステップＳ３５１１で、ＣＰＵ１２１はソフト電源オンおよびホストプロセッサ２３からのコマンドを待つ。最初の設置の場合、このステップで各記録ヘッドに対して清掃プロセスが実行される。
７．１  清掃スケジュールプロセス
前述のように、初期設定後に、ＣＰＵ１２１は図３５のステップＳ３５１０で清掃スケジュールをイネーブルする。次に、経過時間スケジュールを維持する方法について、図３６に示したフローチャートに関して詳しく論じる。図のプロセスは、清掃プロセスが割込みプロセスとしてイネーブルされている場合に１秒おきに実行される。
【０１９７】
具体的には、ステップＳ３６０１で、清掃スケジュールプロセスがイネーブルされ、記録ヘッドＡと記録ヘッドＢの両方に関して経過時間が１秒おきに増分される。ステップＳ３６０２で、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされているかどうかが判定される。このフラグは、ホストプロセッサ２３からリアルタイムがダウンロードされたかどうかを示す。このフラグがセットされていない場合、フローはステップＳ３６０３に進み、記録ヘッドＡの最後の清掃からの経過時間が所定の最大時間の７３時間またはその変数範囲の最大値に達したかどうかが判定される。達している場合、フローは後述の自動清掃プロセスに進む。或は別の方法として、ＤｅｌｔａＴ＿Ａの値が最大値に達した場合に、それを無視し再設定しても良い。これによって、メモリ内で値がオーバフローするのが防止される。
【０１９８】
最後の清掃からの時間が最大時間に達していない場合、ステップＳ３６０４でＤｅｌｔａＴ＿Ａが１秒だけ増分される。このプロセスが実行されるのは、プリンタ３０がリアルタイムを受信する前に７３時間よりも長い間アイドル状態のままである恐れがあるからである。この場合、清掃は、プリンタ３０の内部クロックからの経過時間に基づいて行われるか、あるいは後でソフト電源オン時に行われるか、あるいは自動清掃手順時に行われる。ステップＳ３６０５およびＳ３６０６で記録ヘッドＢに対して同様なプロセスが実行される。
【０１９９】
ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされており、ホストプロセッサ２３が時間／日付スタンプをダウンロードしていることを示す場合、ステップＳ３６０７で、ＲｅａｌＴｉｍｅが最大値の７３時間またはその変数範囲の最大値に達しているかどうかが判定される。ここで、達していると判定された場合、フローは後述の自動清掃シーケンスに進む。或は別の方法として、ＲｅａｌＴｉｍｅの値が最大値に達した場合に、それを無視し再設定するようにしても良い。これによって、メモリ内で値がオーバフローするのが防止される。一方、リアルタイムは、最大値に達していない場合、ステップＳ３６０８で１秒だけ増分される。
【０２００】
フローは、ソフト電源オン時に図３５のステップＳ３５１１に戻り、図３７のステップＳ３７０１に進み、ソフト電源オンを待つ。次にステップＳ３７０２で、ＣＰＵ１２１は、ユーザがソフト電源オンを要求しているかどうかを判定する。この答えが肯定的（ｙｅｓ）である場合、ステップＳ３７０３およびＳ３７０４で、ＣＰＵ１２１が各ソフトウェア・プログラムおよびプリンタユニット装置の初期化を行う。その初期化が完了すると、ＣＰＵ１２１はステップＳ３７０５で、各記録ヘッドに必要に応じて自動清掃動作を実行させる（自動清掃動作については以下で詳しく論じる）。
【０２０１】
プリンタ３０は、自動清掃動作を実行した後、ステップＳ３７０６でオンラインになり、ステップＳ３７０７でホストプロセッサ２３からの印刷コマンドと、ユーザから入力されるソフト電源オフのどちらかを待つ。これらのイベントがどちらも起こらない場合、プリンタ３０は、ホストプロセッサ２３からのコマンドに対する待機状態のままになる。一方、ソフト電源オフ要求が受信された場合、プリンタ３０はステップＳ３７０８で、状況検査を実行し、プリンタ３０の現在の状況に基づいてＥＥＰＲＯＭ１３２内のパラメータを更新することによってソフト電源オフ・プロセスを実行する。
【０２０２】
本発明では、プリンタ３０は、試験パターンを印刷するコマンド、試験パターンを走査するコマンドなど、ホストプロセッサ２３からのコマンドを待つ。プリンタ３０が予期する１つのコマンドは、プリンタ３０に時刻／日付スタンプを与える協定世界時（ＵＣＴ）である。ＵＣＴコマンドは、プリンタ３０内の現在時刻を設定するために使用され、印刷ジョブ開始時にプリンタ３０へ送信しなければならない。プリンタ３０はこの時刻を使用して、記録ヘッドを回復すべきであるか否かを判定する。この時刻の値は、１９７０年１月１日の深夜１２時（００：００：００）からの経過秒数、すなわちホストプロセッサ２３のシステムクロックによる協定世界時（ＵＣＴ）として表される。なお、ＵＣＴコマンドは、各印刷コマンドがＵＣＴコマンドの前に送信されるように各印刷コマンドの開始時にダウンロードされる。しかし、プリンタ３０自体の内部クロックによって増分された時間はハード電源オフ時にメモリからクリアされるので、ダウンロードされた時刻／日付スタンプを記憶する必要があるのはハード電源オフの後だけであることに留意されたい。
【０２０３】
したがって、図３８のフローチャートを参照するとわかるように、ステップＳ３８０１で、ホストプロセッサ２３はＵＣＴコマンドを送信する。ステップＳ３８０２で、時刻および日付が有効であるかどうかが判定される。なお、たとえば、ホストプロセッサ２３のリアルタイムクロックよりも進んだ内部クロックを有するホストプロセッサにプリンタ３０が接続されている場合、ダウンロードされた時刻／日付スタンプが無効になる恐れがある。いくつかの例では、時刻および日付は、プリンタ３０に記憶されている実際の最後の時刻および日付よりも後の時刻および日付であってよい。データフォーマットエラーまたは範囲外の値などのために時刻／日付が有効でない場合、フローは、以下で詳しく説明する自動清掃プロセスに進む。或は別の方法として、その時間が無効である場合、エラー処理プログラムを実行するか、あるいはこの無効な時間を無視しても良い。
【０２０４】
ステップＳ３８０２で、現在の時刻および日付が有効であると判定された場合、フローはステップＳ３８０３に進む。ステップＳ３８０３で、リアルタイムが実際にプリンタ３０に記憶されているかどうかが判定される。たとえば、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされていないことがある。これは、まだプリンタ３０内でリアルタイムが設定されていない場合であり、通常は、プリンタ３０を使用するのが初めてであり、印刷ジョブがまったく印刷されていないときに起こる。ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされていない場合、ステップＳ３８０４で、印刷ジョブの開始時に与えられた現在時刻および日付がリアルタイムとして設定される。
【０２０５】
フローは次いで、ステップＳ３８０５に進む。ステップＳ３８０５で、ＣＰＵ１２１は、リアルタイムが設定されていない場合には、図１０の記録ヘッド１３０ａなどの記録ヘッドＡに関する経過時間が記録ヘッドＡの最後の清掃の時間に対応するかどうかを判定する。経過時間が記録されていると判定された場合、ステップＳ３８０６で、プリンタ３０は、記憶されている経過時間からリアルタイムを減じることによって最後の清掃時間を求める。ステップＳ３８０７で、最後の清掃時間がＥＥＰＲＯＭ１３２に書き込まれ、ステップＳ３８０８で、記録ヘッドＡに関してＦｌａｇＲｅｃｏｒｄＹｅｔ＿Ａがリセットされる。ステップＳ３８０９ないしＳ３８１２で、図１０の記録ヘッド１３０ｂなどの記録ヘッドＢに対して同様な処理が実行される。このように、最後の清掃時間およびチェック・サムが更新され、ＥＥＰＲＯＭ１３２の、記録ヘッドＡおよびＢのそれぞれについての別々のメモリ位置に書きこまれる。
【０２０６】
処理はステップＳ３８０５に戻り、ＦｌａｇＲｅｃｏｒｄＹｅｔ＿ＡおよびＦｌａｇＲｅｃｏｒｄＹｅｔ＿Ｂがセットされていない場合、フローはステップＳ３８１３に進み、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅが、リアルタイムが設定されていることを示すようにセットされる。
【０２０７】
処理はステップＳ３８０３に戻り、前の印刷動作のリアルタイムが記憶されており、それが有効な時間であると判定された場合、フローはステップＳ３８１４に進み、すでにダウンロードされている新しい時間データがリアルタイム・データと比較される。ステップＳ３８１５で新しい時間データとリアルタイムデータとの間の差が受け入れられるものである場合、ステップＳ３８１８でこの差が無視され、フローは先へ進む。
【０２０８】
一方、ステップＳ３８１５で、ホストのリアルタイムクロックの変化またはプリンタの内部クロックのエラーのために差が受け入れられないものである場合、ステップＳ３８１６で、新しい時間データを用いてリアルタイムが再設定される。ステップＳ３８１７で、ＦｌａｇＲｅａｌＴｉｍｅＲｅｓｅｔが、リアルタイムが再設定されたことを示すようにセットされる。そのため、新しい時間データを使用して、記録ヘッドＡおよびＢに対していつ自動清掃をスケジューリングすべきかが算出される。これによって、ユーザがホストコンピュータのリアルタイムクロックを未来のある時間に再設定し、その後に印刷ジョブおよび［ＵＣＴ］コマンドを実行し、次いで実際の現在時間に再設定した場合でも、清掃プロセスの実行が妨げられる。
７．２  自動清掃プロセス
図３９は、自動清掃プロセスを示す。清掃がプリンタ３０の初期使用の結果であるか、あるいは時間に基づいてスケジューリングされた清掃の結果である場合には、ステップＳ３９０１で、プリンタ内に記録ヘッドＡが存在するかどうかが判定される。ステップＳ３９０１で記録ヘッドＡが存在する場合、ＣＰＵ１２１は、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされているかどうかを確認する。ここで、”Ｙｅｓ”、即ち、これが設定されている場合、フローはステップＳ３９０２に進み、ＦｌａｇＲｅａｌＴｉｍｅＲｅｓｅｔがセットされているかどうかを確認する。これに対して、”Ｎｏ”、即ち、これが設定されていない場合、ＣＰＵ１２１は、リアルタイムから、ＥＥＰＲＯＭ１３２に記憶されている記録ヘッドＡの最後の清掃時間を減じることによって清掃時間を算出する。この差が、設定済みの清掃時間の７３時間よりも大きい場合、ステップＳ３９０５で記録ヘッドＡが清掃される。しかし、この差が設定済みの清掃時間よりも小さい場合、フローはステップＳ３９０３に進み、新しい時間データがリアルタイムとして設定されるようにＦｌａｇＲｅａｌＴｉｍｅＲｅｓｅｔがセットされる。この場合、ステップＳ３８１７でリアルタイムがリセットされているので、記録ヘッドＡが強制的に清掃される。
【０２０９】
ステップＳ３９０２に戻り、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされていない場合、フローはステップＳ３９０６に進む。ステップＳ３９０６で、記録ヘッドＡに関する経過時間が清掃時間と比較される。記録ヘッドＡが清掃されてから７３時間以上が経過しており、かつ記録ヘッドＢがインストールされていない場合、フローはステップＳ３９１３に進み、ＦｌａｇＲｅａｌＴｉｍｅＲｅｓｅｔがリセットされる。ステップＳ３９１３は通常、ハード電源オンからプリンタ３０が使用されていないときに実行される。
【０２１０】
記録ヘッドＢがインストールされている場合、ステップＳ３９０７〜ステップＳ３９１２で記録ヘッドＢに対して同様な処理が実行される。
７．３  Ａ記録ヘッドの清掃
図４０は、図３９のステップＳ３９０５〜Ｓ３９１１で実行される動作を詳しく説明した図である。ステップＳ４００１で、記録ヘッドがインストールされているかどうかが判定される。ステップＳ４００１で、記録ヘッドがインストールされていると判定された場合、ステップＳ４００２で清掃動作が実行される。清掃動作は、記録ヘッドをそのホーム位置へ移動させることと、清掃すべき記録ヘッド上のノズルを記録ヘッド接続キャップ８８ａ（図４参照）と位置合わせすることと、ノズルからインクを吸引することと、廃棄インクを廃棄物受けに堆積することとからなる。記録ヘッドから吸引された液滴の数がカウントされ、この情報が、上記で最後の清掃時間の更新に関して論じたのと同様にＥＥＰＲＯＭ１３２内で更新される。
【０２１１】
ステップＳ４００３で、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされているかどうかが判定される。このフラグがセットされている場合、ステップＳ４００４で、清掃された記録ヘッドの最後の清掃時間がリアルタイムとして設定される。ステップＳ４００５で、リアルタイム、すなわち記録ヘッドの最後の清掃時間がＥＥＰＲＯＭ１３２に書きこまれる。
【０２１２】
ステップＳ４００３に戻り、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされていない場合、最後の７３時間中にプリンタにＵＣＴコマンドがダウンロードされていないので、ステップＳ４００６で経過時間が零に設定され、ステップＳ４００７で、特定の記録ヘッドに関するＦｌａｇＲｅｃｏｒｄＹｅｔがセットされる。これは、ステップＳ４００７でリアルタイムが設定されていないことを示し、経過時間カウンタが再始動する。
【０２１３】
前述のように、記録ヘッドの清掃は、記録ヘッドまたはインクカートリッジが交換された場合に行われる。図４１は、そのようなイベントの後に続く記録ヘッドの清掃に関する詳細なフローチャートである。
【０２１４】
ステップＳ４１０１で、記録ヘッド交換処理が開始する。ステップＳ４１０２で、ＣＰＵ１２１は、ユーザによってヘッド交換モードが終了するのを待つ。ステップＳ４１０３で、交換処理が終了する。したがって、ステップＳ４１０４で、ＣＰＵ１２１は、どちらのヘッドが取り外されているか、すなわちどちらの記録ヘッドが、それに対応するカートリッジ・リセプタクル上の回路接点に係合し、どちらの記録ヘッドが係合解除されているかを確認する。記録ヘッドＡが取り外されている場合、ステップＳ４１０５で記録ヘッドＡが清掃される。清掃は、図４０のフローに関して説明したのと同様に行われる。ステップＳ４１０６およびＳ４１０７で記録ヘッドＢに対して同様な処理が実行される。
【０２１５】
図４２のフローチャートは、自動清掃プロセスがスケジューリングされ、プリンタ３０内の印刷位置に用紙が装填されているときに何が行われるかについて説明するものである。印刷位置に用紙が装填され、自動清掃がスケジューリングされている場合、ステップＳ４２０１で、コマンドによって用紙が排出され印刷が完了する。用紙が排出された後、ステップＳ４２０２で１つまたは複数の記録ヘッドの自動清掃が行われる。自動清掃プロセスに続いて、ステップＳ４２０３で印刷位置に新しい用紙が装填される。なお、ステップＳ４２０１およびＳ４２０２は、用紙がすでに装填されているかどうかにかかわらず、あらゆる自動清掃の後に実行される。
【０２１６】
図４３Ａは、上述のように、図３５〜図４２に関して説明したように本発明によって実行される記録ヘッドに対する典型的な清掃スケジュールの例である。典型的な清掃スケジュールについて説明する前に、プリンタ３０が記録ヘッド１３０ａおよび１３０ｂのそれぞれについて別々の清掃時間および清掃スケジュールを維持することを理解されたい。この理由は、一方の記録ヘッドを、７３時間の期間中に他方または一方の記録ヘッドが使用できなくなる前に交換することができるからである。たとえば、テキスト文書のみを印刷する際、黒記録ヘッドはカラー記録ヘッドよりも頻繁に使用される。したがって、黒記録ヘッドはカラー記録ヘッドよりも頻繁に清掃する必要がある。すなわち、カラー記録ヘッドについては、最後の印刷から７３時間以上経過しており、かつソフト電源オンが行われた場合でも、印刷の直前まで清掃する必要がない。このようにして、インクを節約することができる。
【０２１７】
図４３Ａは、プリンタ３０にダウンロードされる５つの別々の期間（Ｔ１〜Ｔ５）を示すタイムテーブルである。図４３Ａに示した期間は、最初にプリンタがインストールされる時点から始まる。
【０２１８】
初期ハード電源オン時に、プリンタ３０は初期設定プロセスを実行し、ＥＥＰＲＯＭ１３２から最後の清掃時間が読み取られる。これは最初の電源オンであるので、すべてのフラグおよび変数がリセットされる。前述のように、このリセットによって、ソフト電源オン時に清掃プロセスが開始される。図４３Ａに示した例では、プリンタにヘッドをインストールする前にソフト電源オンが実行されるので、清掃は、ヘッドが設置されるまで行われない。ヘッドがインストールされた後、記録ヘッド１３０ａおよび１３０ｂのそれぞれに対して自動清掃が行われる。Ｄｅｌｔａ＿Ｔ変数がすべての記録ヘッドに関して零に設定され、ＦｌａｇＲｅｃｏｒｄＹｅｔが、ステップＳ４００６およびＳ４００７で上述したように設定される。
【０２１９】
記録ヘッドが清掃されソフトウェアが初期化された後、プリンタ３０はオンラインになる。ホストプロセッサ２３は、プリンタ３０がオンラインであることを知り、第１の印刷ジョブと、現在日時スタンプを与える標準座標時間（ＵＣＴ）コマンドを送信する。ＵＣＴコマンドを初めて受信すると、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされ、この新しい時刻がリアルタイムとして設定される。この例では、記録ヘッドがインストールされてから７３時間以内に最後の清掃が行われているので、Ｔ１で自動清掃プロセスは実行されない。
【０２２０】
図４３Ａに示したタイムチャートの例では、次に清掃時間が設定されるのは、Ｔ２でヘッドが交換されるときであり、この時点で、経過時間にかかわらず清掃が行われる。
【０２２１】
前述のように、ＵＣＴコマンドはあらゆる印刷コマンドの前に送信される。したがって、図４３Ａに示したこのタイムチャートの例によれば、印刷コマンドはＴ３で次の新しいデータを与える。これが有効な時間であり、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされていると仮定すると、新しい時刻データとリアルタイムデータとの間の差が算出される。図４３Ａに示した場合には、時間Ｔ３と時間Ｔ２との間の差は７３時間よりも大きく、清掃が行われる。前の日付スタンプからプリンタ３０の内部クロックがアクティブであるので、経過リアルタイムは、印刷ジョブの開始時にダウンロードされた新しいリアルタイムと同じであるはずである。そのため、新たにダウンロードされた時間を記憶する必要はない。
【０２２２】
印刷ジョブの印刷に続いて、プリンタ３０はハード電源オフを実行し、記憶されているすべての時間をクリアする。ハード電源オンはすべてのフラグおよび変数に従い、これらをリセットする。ハード電源オンの後にソフト電源オンが実行され、これによってプリンタ３０はオンラインになる。オンラインになると、ホストプロセッサ印刷ジョブを送信し、その後に、Ｔ４で現在時間および日付を与えるＵＣＴコマンドを送信する。図３８に関して論じたように、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされていないので、ダウンロードされたリアルタイムが新しい時刻として記憶され、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされる。
【０２２３】
この時点で、ＣＰＵ１２１は、記録ヘッド１３０ａおよび１３０ｂがインストールされているかどうか、ＦｌａｇＲｅａｌＴｉｍｅＡｃｔｉｖｅがセットされているかどうか、ＦｌａｇＲｅａｌＴｉｍｅＲｅｓｅｔがセットされているかどうかを判定する。ホストプロセッサ２３から新しい時間が与えられているので、リアルタイムと記録ヘッドの最後の清掃時間との間の差が算出される。図４３Ａに示したように、時間Ｔ４と時間Ｔ３との間の差は７３時間よりも大きい。そのため、Ｔ４で清掃が行われる。
【０２２４】
最後の印刷ジョブの後にハード電源オフが行われ、記憶されている時間がクリアされる。次のハード電源オンでは、すべての変数およびフラグがリセットされる。前述のように、ハード電源オン後、経過時間変数は１秒おきに増分される。図４３Ａの例に示したように、７３時間の期間が経過した後に次のソフト電源オンが行われる。その結果、清掃が実行される。プリンタ３０が印刷ジョブを受信せずに７３時間よりも長い間アイドル状態であったので、この清掃は、リアルタイム・ダウンロードではなくプリンタ３０自体の内部経過クロックに基づいて行われる。或は別の方法として、内部クロック上で７３時間経過した後の記録ヘッドの清掃は必要とされず、印刷動作の直前に行われるように再スケジューリングされる。このように清掃を印刷の直前まで遅延させることによって、インクを節約することができる。
【０２２５】
前述のように、バッテリバックアップを有するＳＲＡＭやフラッシュメモリなど任意の種類の非揮発性メモリとＥＥＰＲＯＭ１３２を交換することができる。この場合、前述の最後の清掃時間を含む情報を同様な種類の非揮発性メモリデバイスに記憶することができる。
【０２２６】
さらに、フラッシュメモリなど任意の種類の再書込み可能なメモリデバイスとＲＯＭ１２２を交換することができる。この場合、そのようなメモリデバイスは、ホストプロセッサ２３のインタフェース１０４およびプリンタ３０のホストコンピュータ・インタフェース１４１を介してプリンタ３０にダウンロードされたプログラムコードを受信することができる。メモリデバイスを使用して、ＥＥＰＲＯＭ１３２ではなくそのメモリデバイスの特定の領域にすべての情報を記憶することも可能である。
【０２２７】
また、通信回線１０６を双方向回線として説明したが、場合によっては単方向インタフェースを本発明と共に使用することができる。具体的には、上記の説明ではＩＥＥＥ−１２８４インタフェースを実装したが、この代わりに、ＳＣＳＩ、ＵＳＢ（汎用シリアルバス）、ＩＥＥＥ−１３９４（高速シリアルバスインタフェース）など任意の種類のインタフェースを使用することができる。
【０２２８】
最後に、本発明について２つの記録ヘッドを使用して説明した。しかし、この数が増減できることを理解されたい。同様に、プリンタ３０内で使用される記録ヘッドの数に基づいてＥＥＰＲＯＭ１３２およびＲＡＭ１２９内のメモリ位置の数を増減することもできる。
８．０  記録ヘッド駆動パラメータの設定および修正
記録ヘッド１３０ａおよび１３０ｂが、プリンタ３０から取り外して交換できるように構成されており、記録ヘッド・リセプタクル６４ａおよび６４ｂにいくつかの異なる種類のカートリッジ（それぞれの異なるノズル構成とそれぞれの異なるインク特性とを有するカートリッジなど）を装填することができるので、多数の異なる種類の記録ヘッドの記録ヘッド駆動パラメータがプリンタ３０に事前にロードされる。たとえば、インク滴を吐出するように個々のノズルを駆動するためのパルス幅シーケンスは、記録ヘッド、インクの特性（たとえば、色インクであるか、それとも黒インクであるか、染料であるか、それとも顔料であるか）、周囲環境の温度、インク滴のサイズなどに強く依存する。したがって、ＲＯＭ１２２は、様々なヘッド／インク／解像度の組合せに関する駆動パルス・シーケンスを定義した事前に記憶されたテーブルを含む。ＲＯＭ１２２内の事前に記憶されたテーブルは、ヘッド／インク／解像度の様々な既知の組合せと、ヘッド／インク／解像度の予想される組合せをカバーする。
【０２２９】
同様に、記録ヘッド温度の計算など内部の計算を行うために使用されるパラメータも、記録ヘッドおよびノズルの構成と、インクの種類と、解像度の特定の各組合せに依存する。したがって、同じ理由で、プリンタ３０は、ヘッド／インク／解像度の既知の組合せとヘッド／インク／解像度の予想される組合せに関する加熱係数の様々なテーブルをＲＯＭ１２２内に含む。
【０２３０】
本発明者は、ヘッドとインクと解像度のすべての可能な組合せを予想し、すべてのそのような組合せに適したテーブルを事前に記憶することが不可能であることを知った。この理由は簡単である。すなわち、どんな新しい記録ヘッドおよびインクが将来開発されるかは不明であるからである。同時に、ＲＯＭ１２２内の新しい１組のテーブルを必要とせずに、将来に生じるヘッドとインクと解像度の組合せと共にプリンタ３０を使用する必要がある。特に、新しいテーブルのために、プリンタと、新しいＲＯＭを既存の顧客に分配するためのグレードアップ・プログラムとを再製造することが必要になる。
【０２３１】
本発明は、ホストプロセッサ２３からのコマンドを介した、事前に記憶されたテーブル内の値の修正を可能にし、ホストプロセッサ２３からの記録ヘッド制御パラメータのリアルタイム定義を可能にすることによって、この要件に対処する。この特徴のために、ホストプロセッサ２３からのコマンドを使用することにより、通常はＲＯＭテーブルやその他のプリンタハードウェアを変更せずに、新たに開発されたカートリッジの機能、またはＲＯＭ１２２内の事前に記憶されたテーブルを利用できない他のカートリッジの機能を制御するのに適した記録ヘッドの駆動パラメータを定義することが可能である。
【０２３２】
簡単に言えば、本発明のこの態様によれば、外部プロセッサからコマンドを受信したプリンタコントローラは、このコマンドに基づいて脱着可能なカートリッジを有するプリンタのプロセス機能を制御する。このコマンドは、プリンタ内の事前に記憶された駆動パラメータが既に利用できない新しいカートリッジの機能を制御するように調整された新しいカートリッジ駆動パラメータを定義することができる。そのようなパラメータにはたとえば、インク滴を吐出するための加熱パルスシーケンスのタイミング、そのような加熱パルスシーケンスに必要な記録ヘッド温度を算出するための加熱係数、印刷速度、液滴サイズ、バッファ読出し制御、ノズル駆動シーケンスなどが含まれる。
【０２３３】
図４３Ｂは、本発明の第１の実施形態を示すフローチャートである。ここで、記録ヘッドの駆動制御パラメータを定義するコマンドは、事前に記憶された記録ヘッド駆動条件テーブル内の値を修正するコマンドで構成される。簡単に言えば、図４３Ｂによれば、複数の脱着可能な記録ヘッドのうちの少なくとも１つの記録ヘッドに関し、記録ヘッドの駆動条件を事前に定義記憶された参照テーブルを有するプリンタ内の記録ヘッド駆動条件を制御するために、外部ホストプロセッサは、制御比による処理を介した修正によるコマンドなどの事前に記憶された参照テーブルを修正するコマンドを送信する。プリンタコントローラは、事前に記憶された参照テーブルから記録ヘッド駆動条件を得て、修正された記録ヘッド駆動パラメータが得られるように記録ヘッド駆動条件を修正する。この後で、修正された記録ヘッド駆動パラメータが記録動作に使用される。
【０２３４】
詳細には、ステップＳ４３１０１で、プリンタ３０は、記録ヘッド・パルス幅シーケンスを駆動するための制御比を設定するコマンドを受信する。このコマンドはホストプロセッサ２３によって送信され（ステップＳ４３１０２）、そのようなコマンドが受信されなかった場合、プリンタ３０はデフォルト値１００％を維持する。ステップＳ４３１０１で受信される記録ヘッド・パルス幅シーケンスを駆動するための制御比は、ステップＳ４３１１２に関連して以下に詳しく説明するように、ＲＯＭ１２２内の事前に記憶されたテーブルから得た参照値に適用される係数である。
【０２３５】
ステップＳ４３１０３で、プリンタ３０は、ヘッドの温度を算出するための制御比に関するコマンドを受信する。このコマンドはホストプロセッサ２３から受信され（ステップＳ４３１０４）、そのようなコマンドが受信されなかった場合、プリンタ３０はデフォルト値１００％を維持する。ヘッドの温度を算出するための制御比は、以下でステップＳ４３１１５で詳しく説明するように、ヘッドの温度を算出するために使用される加熱係数の事前に記憶された値に対する乗算係数として適用される。
【０２３６】
好ましくは、ステップＳ４３１０１〜Ｓ４３１０４は、上記の第３．６節で定義したパルス比変更コマンド（［ＰＣＲ］）を使用することによって実行される。前述のように、［ＰＣＲ］コマンドは、ヘッドの温度を算出するために使用される加熱係数の比、ノズルからインク滴を吐出する際に変更される、記録ヘッド１３０ａおよび１３０ｂの個々の各ノズルについてのパルス幅駆動シーケンスに関するパルス幅の比など、パルス制御テーブルの比を変更するために使用される。
【０２３７】
処理フローは、プリンタ３０においてステップＳ４３１０６〜Ｓ４３１１５に進む。これらのステップは、記録ヘッド駆動パラメータの最新の値をリアルタイムで維持するように、たとえば、周期間隔５０ｍｓで繰り返し実行される。具体的には、図２３に関して説明したように、ステップＳ４３１０６〜Ｓ４３１１５は、ヘッドの温度を算出し、かつノズルからインク滴を吐出するために供給されるパルス幅シーケンスに関するパルス幅タイミングを得るために５０ｍｓ周期間隔で実行され、これと共に、他のタスクも５０ｍｓ間隔で実行される。
【０２３８】
再び図４３Ｂを参照するとわかるように、ステップＳ４３１０６で、プリンタ３０内の図示していないサーミスタから現在の環境温度（Ｔｅｎｖ）が読み取られる。現在の環境温度は、サーミスタから読み取られた最新の値でよく、あるいはより好ましくは、不規則さを平滑化し、サーミスタの不良な読取り値を無視し、アナログデジタルサンプリングノイズなどのノイズを除去することなどのために、サーミスタから読み取られた実際の値にＬＰＦにかけられ、高周波成分が除去される。
【０２３９】
ステップＳ４３１０６で読み取られた環境温度Ｔｅｎｖに基づいて、ステップＳ４３１０７で目標温度（Ｔｔｇｔ）が算出される。目標温度は、現在の環境温度に基づくプリンタ３０の好ましい動作温度である。一般的に言えば、プリンタ３０は、図２３の５００ｍｓ割込みレベルに関して説明したように、目標温度に達するように記録ヘッド１３０ａおよび１３０ｂ内の図示しないヒータを通して制御される。目標温度は、現在の環境温度に基づく記録ヘッドの動作に最も好ましい温度である。目標温度と環境温度との間の関係は逆比例にあり、すなわち、環境温度が低いと、目標温度は比較的高くなり、それに対して環境温度が高いと、目標温度は比較的低くなる。たとえば、Ｔｅｎｖ＝５℃など極めて低い環境温度では、好ましい目標温度はＴｔｇｔ＝３５℃であり、Ｔｅｎｖ＝３５℃など極めて高い環境温度では、好ましい目標温度はＴｔｇｔ＝１５℃である。
【０２４０】
ステップＳ４３１０９で、記録ヘッド１３０ａおよび１３０ｂからの実際のインク滴の吐出によってもたらされる記録ヘッドの温度に対する効果が算出される。具体的には、ステップＳ４３１０６で読み取られた環境温度は、記録ヘッド１３０ａおよび１３０ｂの外部に取り付けられたサーミスタによって読み取られる環境温度に基づくものである。一方、記録ヘッド駆動パラメータに対する適切な制御は、記録ヘッド・ノズルに隣接するインクの内部温度の影響をより直接受ける。一般に、そのような小さな領域内にサーミスタを取り付けることは実際的でないとみなされている。同時に、インク滴を実際に吐出するとインクの温度が上昇し、インクを吐出しないと一般に、インクの温度が低下することが知られている。ステップＳ４３１０９の目的は、インク滴の吐出によってもたらされる記録ヘッドの温度に対する効果を算出することである。
【０２４１】
ステップＳ４３１０９での記録ヘッドの温度の算出は、１つには５０ｍｓなど前に述べた時間間隔にわたって実際に吐出されたインク滴の数に基づいて行われる。所定の時間間隔内のインク滴の各吐出に加熱係数加重が割り当てられる。所定の期間内のインク滴吐出の回数に基づいて、記録ヘッドの温度に対するインク滴の吐出の効果を算出することが可能である。
【０２４２】
同時に、そのような加熱係数が、使用される記録ヘッドの特定の種類と、読取りで使用されるインクの特性と、ヘッドによるプリントアウトの解像度などに応じて異なることが知られている。ヘッド／インク／解像度のそれぞれの異なる組合せに応じて、印刷されるドットの数に対応する加熱係数値が異なる。したがって、ＲＯＭ１２２には加熱係数テーブルが事前に記憶される。この状況を図４３Ｃに示す。
【０２４３】
図４３Ｃに示したように、ＲＯＭ１２２の１つの部分は、事前に記憶された加熱係数テーブル７０１を含む。このテーブルには、それぞれ、記録ヘッドとインクの特性と解像度のそれぞれの異なる組合せに関する、複数のテーブル７０２ａ、７０２ｂなどが含まれる。複数のテーブルはそれぞれ、１、２、３（参照符号７０３、７０４、７０５）として示された係数など、テーブルによってアクセスされる係数を含み、これらの係数は、ある特定の間隔、たとえば５０ｍｓ（参照符号７０６で示す）で吐出されるインク滴の数に基づく参照動作を介してアクセスされる。プリンタ３０は、デフォルト選択またはコマンドによる選択に基づいて、７０１に記憶されているテーブルから１つの加熱テーブルを選択し（以下で図４３Ｄに関して説明する）、次いで５０ｍｓ期間中に吐出される液滴の数に基づいて、選択されたテーブルから加熱係数を選択する。
【０２４４】
テーブル７０１内の参照動作を介して得られた係数は、インク滴の吐出の、記録ヘッドの温度に対する効果を算出するために使用される。１つの適切な計算を以下に示す。
【０２４５】
ΔＴｍａｉｎ＝（ｃｏｅｆｆ１＊（＃吐出された黒インク液滴））＋（ｃｏｅｆｆ２＊（＃吐出されたカラーインク液滴））＋（ｃｏｅｆｆ３＊（ヒ−タ・デューティ・サイクル））−ｃｏｅｆｆ４
上式で、係数ｃｏｅｆｆ１は吐出された黒インク滴の数に基づく加熱係数であり、係数ｃｏｅｆｆ２は吐出されたカラーインク液滴の数に基づく加熱係数であり、係数ｃｏｅｆｆ３はヒータの現在のデューティ・サイクルに基づく加熱係数であり、係数ｃｏｅｆｆ４は不起動状態に基づいて実際に記録ヘッドの冷却状態を示す加熱係数である。もちろん、使用される実際の係数および計算は、ヘッド／インク／解像度の組合せに依存する。たとえば、上記で与えた計算は、４色記録ヘッドに適しており、それに対してオールブラック記録ヘッドは、たとえば、吐出されるカラーインク液滴の数に依存して異なる計算を用いる。
【０２４６】
環境温度Ｔｅｎｖ、目標温度Ｔｔｇｔ、温度の記録ヘッドに対する効果ΔＴｍａｉｎが与えられると、ステップＳ４３１１０で、以下のように差ΔＴｄｉｆｆが算出される。
【０２４７】
Ｔｄｉｆｆ＝Ｔｔｇｔ−Ｔｅｎｖ−ΔＴｍａｉｎ
ステップＳ４３１１１で、温度差Ｔｄｉｆｆに基づいて、パルス幅駆動シーケンスに関するパルス幅時間が記憶されているＲＯＭ１２２内の参照テーブルがアクセスされる。以下で説明するように、図４３Ｃに適切なテーブルを概略的に示す。
【０２４８】
具体的には、図４３Ｃに示したように、ＲＯＭ１２２は、駆動時間を記憶する参照テーブル７１０を含む。駆動時間とは、ノズルヒータをインク滴を吐出するように駆動するために使用されるパルスシーケンスに関するパルス幅である。典型的なパルスシーケンスは、図４３ＢにＳ４３３１１で示されており、幅Ｔｐｒｅのプレヒートパルスと、幅Ｔｉｎｔの休止期間と、幅Ｔｍａｉｎのメインヒートパルスとを含む。そのようなパルスシーケンスは、印刷のためにインク滴を吐出するように記録ヘッド１３０ａおよび１３０ｂの各ノズル内のノズルヒータに供給される。テーブル７１０の目的は、１つにはステップＳ４３１１０で算出された温度差に基づいてＴｐｒｅ、Ｔｉｎｔ、Ｔｍａｉｎのそれぞれを算出することである。
【０２４９】
同時に、記録ヘッドとインクの特性と解像度などとの特定の組合せに基づいてパルス駆動シーケンスのパルス幅が異なることが認識されよう。したがって、図４３Ｃに示したように、テーブル７１０は、７１２ａ、７１２ｂなど個別のテーブルを含む。各テーブル７１２ａ、７１２ｂなどは、記録ヘッドとインクの種類と解像度の特定の組合せに対して調整される。７１０で示したように、各テーブルは、プレヒートパルスＴｐｒｅの幅に関するエントリ７１４と、休止期間Ｔｉｎｔの幅に関するエントリ７１５と、メインヒートパルスＴｍａｉｎの幅に関するエントリ７１６とを含む。ステップＳ４３１１０で算出された温度差Ｔｄｉｆｆに基づく参照動作によってある特定のエントリがアクセスされる。
【０２５０】
プリンタ３０は、デフォルト選択に基づくか、あるいはコマンド選択に基づいて、７１０に記憶されているテーブルから１つの駆動時間テーブルを選択する（以下で図４３Ｄに関して詳しく説明する）。プリンタ３０はその後、選択されたテーブル内のエントリにアクセスし、ステップＳ４３１１０で算出された温度差に基づき、記録ヘッド／インク／解像度の特定の組合せにおいて、プレヒートパルス、休止期間、メインヒートパルスに関し適切な時間を参照する。
【０２５１】
説明は図４３Ｂに戻り、ステップＳ４３１１２で、参照動作によってテーブル７１０から得られた駆動時間が、ステップＳ４３１０１で受信された駆動制御比に基づいて修正される。このステップの目的は、プリンタ３０に取り付けられた実際の記録ヘッドとテーブル７１０に記憶されている記録ヘッドの組合せとの間の違いを考慮した、参照テーブル７１０から得た事前に記憶された値の修正を可能にすることである。詳細には、前述のように、プリンタ３０のＲＯＭ１２２には、それぞれ、記録ヘッドとインクと解像度の特定の組合せに対して調整された、複数の駆動時間テーブルが事前に記憶されているが、記録ヘッドとインクと解像度のあらゆる組合せを予想することは不可能である。したがって、ステップＳ４３１１２での修正によって、記録ヘッドとインクと解像度のまだ知られていない組合せまたはその他の理由で記憶されていない組合せを使用することが可能になる。
【０２５２】
ステップＳ４３１１２での修正では好ましくは、ステップＳ４３１１１で参照動作を介して得られた駆動時間に、ステップＳ４３１０１で受信された制御比を乗じる。このため、デフォルト制御比は１００％である。パルス制御比変更コマンド［ＰＣＲ］を介して命令することのできる制御比は１％ないし２００％になるように制限され、それによって、ほぼ無視できるパルス時間から、テーブル７１０に記憶されている値の２倍までパルス時間を修正することが可能になる。
【０２５３】
処理フローは次いでステップＳ４３１１４に進み、プリンタ３０は、ヘッドの温度を算出するために加熱係数を参照する。図４３Ｃのテーブル７０１に関して説明したように、加熱係数は、記録ヘッドとインクと解像度の特定の組合せに基づいて得られ、各サイクルの継続時間が約５０ｍｓであるサイクル当たりの印刷ドット数に基づいて１つのテーブル７０２ａなどから参照される。
【０２５４】
ステップＳ４３１１５で、ステップＳ４３１０３で受信された制御比に基づいて加熱係数が修正される。この場合も、そのような修正の目的は、１つのテーブル７０１にまだ記憶されていない記録ヘッドとインクと解像度の特定の組合せの使用を可能にすることである。
【０２５５】
好ましくは、ステップＳ４３１１５での加熱係数の修正では、ステップＳ４３１１４で参照動作を介して得られた係数に、ステップＳ４３１０３で受信された制御比を乗じる。このため、デフォルト制御比は１００％である。パルス制御比変更コマンド［ＰＣＲ］を介して命令することのできる制御比は１％ないし２００％になるように制限され、それによって、ほぼ無視できるパルス時間から、テーブル７０１に記憶されている値の２倍まで加熱係数を修正することが可能になる。
【０２５６】
ステップＳ４３１１６で、プリンタ３０は、印刷データをプリンタ３０へ送信するホストプロセッサ２３からのコマンドと、プリンタ３０にそのようなデータを印刷することを求めるコマンドとに応答して、ステップＳ４３１１２で得られた修正済みの駆動時間に基づいてノズルの駆動を制御する（ステップＳ４３１１７）。フローが前述のように繰り返され、ステップＳ４３１０６〜Ｓ４３１１５がたとえば、５０ｍｓ周期間隔で実行され、ステップＳ４３１１６で説明した修正済みの駆動時間に基づくノズルの駆動に対する制御が、ホストプロセッサ２３からのコマンドに応じて実行される。また、駆動制御比と、ヘッドの温度を算出するための制御比を任意の時間にホストプロセッサ２３から送信することができ、これに対して、前述のステップＳ４３１０１〜Ｓ４３１０３で説明したようにプリンタ３０が応答することを認識されたい。
【０２５７】
図４３Ｄは、脱着可能な記録ヘッドを有するプリンタの記録ヘッド駆動パラメータを定義することのできるコマンドをホストプロセッサ２３などの外部装置からプリンタコントローラへ送信する本発明の他の実施形態を示す。図４３Ｄに示した実施形態と、図４３Ｂに示した実施形態との１つの違いは、図４３Ｄの実施形態が、事前に記憶された記録ヘッド駆動パラメータを修正するパラメータには応答せずに、実際の記録ヘッド駆動パラメータに応答することである。一般的に言えば、図４３Ｄの実施形態で受信されたパラメータは、プリンタバッファ１３９内のデータの読出し順序を制御し、記録ヘッド内の個々のノズルのノズル駆動シーケンスを制御し、ノズルから吐出される液滴のサイズを制御し、他の記録ヘッド駆動パラメータを制御する。好ましくは、ホストプロセッサ２３からのコマンドは複数組のバッファ制御およびノズル駆動シーケンスのそれぞれを定義する。これらのバッファ制御およびノズル駆動シーケンスはプリンタ３０のＲＡＭ１２９に登録される。ホストプロセッサ２３からのその後のコマンドによって、登録されている数組のバッファ制御またはノズル駆動シーケンスのうちのどれかを、記録媒体を横切る記録ヘッドの特定の走査または複数の走査で使用される制御またはシーケンスとして選択することができる。
【０２５８】
詳細には、ステップＳ４３３５１で、ホストプロセッサ２３がプリンタ３０へバッファ制御コマンドを送信し、ステップＳ４３３５２で、プリンタ３０がバッファ制御コマンドを受信し、後述のように適切に応答する。ステップＳ４３３５１で送信されるバッファ制御コマンドには、バッファ制御シーケンスを定義する第１のタイプと、すでにプリンタ３０内で定義されている複数のバッファ制御シーケンスのうちの１つを選択する第２のタイプがある。バッファ制御シーケンスを定義する第１のタイプに関しては、ホストプロセッサ２３は、プリンタ３０による印刷動作中にプリントバッファ１３９からデータを読み出すバッファ制御シーケンスを定義する。そのようなコマンドに応答して、プリンタ３０によって、バッファ制御読出し順序が、後で選択できるようにＲＡＭ１２９に記憶される。好ましくは、バッファ制御読出し順序を定義するために、第３．６節で説明した定義バッファ制御テーブル・コマンド（［ＤＥＦＩＮＥ＿ＣＯＮＴＲＯＬ］）が使用される。
【０２５９】
複数のバッファ制御読出し順序がＲＡＭ１２９に登録された後、第２のタイプのバッファ制御コマンドによって、ホストプロセッサ２３がバッファ制御読出し順序の１つをその後のプリントアウト動作で使用する順序として選択することが可能になる。好ましくは、第３．６節で定義したバッファ制御テーブル選択（［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］）コマンドがこの動作で使用される。
【０２６０】
図４３Ｅは、［ＤＥＦＩＮＥ＿ＣＯＮＴＲＯＬ］コマンドに基づいてＲＡＭ１２９に登録できるバッファ制御テーブルの例として、２つの異なるバッファ制御読出し順序を示す。そのようなバッファ制御読出し順序が必要とされる理由は、印刷動作中にプリントバッファ１３９からデータをどのように読み出すかに影響を与える少なくとも３つの異なる因子に対処するからである。そのような第１の因子は、記録ヘッド上にプリントノズルを配置する際のプリントノズルの傾斜調整である。この因子については図８に関して説明した。図８は、好ましくは、ノズル１６個ごとに、１画素／３６０ｄｐｉ、２画素／７２０ｄｐｉ、４画素／１４４０ｄｐｉの横方向の変位が起こるようにわずかに傾斜した方向にノズルが配置されることを示している。
【０２６１】
バッファ読出し順序に影響を与える因子の第２の因子は、記録ヘッドの構成と、記録動作中に実際に使用されるノズルである。この係数については、様々な記録ヘッド構成およびノズルならびに解像度に関するバッファ読出し順序の例を示す図４３Ｅ、図４３Ｆ、図４３Ｇと関連させて説明する。
【０２６２】
図４３Ｅは、ある可能な記録ヘッド構成を示し、この場合、記録ヘッドは、黒インク用の６４個のノズルの上方に垂直方向に斜めに配置された、イエロインク、マゼンタインク、シアンインクのそれぞれについて２４個づつのノズルからなる。４色印刷の場合、通常は、合計６４個のそのような黒インク用のノズルのうちの２４個の黒インク用ノズルのみが、他の３つの着色剤（インク）用の２４個のノズルに対応して使用される。しかし、物理的には、印刷に使用される２４個の黒ノズルと、それらに最も近い互いに隣接するシアンインク用ノズルとの間にはかなりのオフセットがある。また、図８に関して説明したノズルオフセット長の原因には、バッファ読出し順序によって水平方向のノズルオフセットを補償しなければならないことがある。
【０２６３】
バッファ読出し順序は、このような影響を以下のように補償する。第１に、実際のノズル構成７４０は、１つの記録ヘッドが２５６個のノズルを有する仮想標準に対して定義される。図４３Ｅに示す記録ヘッドは実際には、イエロインク、マゼンタインク、シアンインク、黒インクに関して上述したように２４個−２４個−２４個−６４個のノズル構成を有するので、ノズルの開始位置は実際には、プリントバッファにおいて２５６ノズルヘッドの場合より１５バイト下の位置から始まる。したがって、ノズル開始位置７４１は１５バイトとして定義される。その後、連続する各ノズル群ごとにノズルのオフセットに関するバイト位置が定義される。７４２で示したように、ノズルのオフセットは、イエロインク、マゼンタインク、シアンインクのそれぞれについて１バイトに対応する。最後の隣接するシアンノズルと、実際に印刷に使用される第１番目の黒インク用ノズルとの間のギャップは、仮想標準の２５６ノズルヘッドとは異なり６バイトに対応するので、実際に印刷に使用される第１番目の黒インク用ノズルに関してノズルオフセット６が定義される。
【０２６４】
バッファ読出し制御はさらに、バッファデータ高７４３をバイト単位で定義し（この例では、バッファデータ高は１２バイトである）、プリントバッファ高７４４を定義する（この例では、プリントバッファ高は１２バイトである）。
【０２６５】
ノズルの傾斜を補償するようにバッファ読出し順序を制御するために、プリントバッファ内の位置に関して開始位置７４５が定義される。プリントバッファの一部が７４６で指定されている。プリントバッファ内の８ビットバイトに対応する８つのノズルに関する以後の各オフセットは、図では７４７で指定されている。図４３Ｅの例では、バッファ読出し順序が解像度３６０ｄｐｉでの記録向けに指定されている。この解像度では、ノズルの傾斜は、１６個の垂直ノズルに対する水平方向の１記録画素に対応する。したがって、プリントバッファ内の最初の２バイト（１６ビットに対応し、１ビットは、イエロインクの最初の１６個のノズルのそれぞれに対応する）が順次読み出される。しかし、解像度３６０ｄｐｉでは、イエロインク用の次のノズルは実際には、前の１６個のノズルから水平方向に１画素離れた位置に印刷される。この水平オフセットを補償するために、１３バイトのバッファオフセットが設けられ、それによって、イエロインクについての最後の８つのノズルを前の１６個のノズルに対して適切な垂直関係になるように印刷することができる。図８に示したようにイエロインクとシアンインクとの間には８つのノズルに対応する物理的ギャップがあるので、ギャップ内の存在しないノズルに読出しデータを与える必要はない。
【０２６６】
マゼンタインクでの記録用の第１のノズルは、イエロノズルに関する最後のプリントバッファ読出しの開始位置からノズル１６個分に相当する物理的距離だけ離れた位置に配置されるので、最後の１組のイエロノズルの印刷と第１番目の１組のマゼンタノズルの印刷との間に付加的な１３バイトのオフセットを設けなければならない。同様に、マゼンタインクによる記録の残りの部分およびシアンインクによる記録に関して順次、プラス１バイト、プラス１３バイト、プラス１３バイト、プラス１バイト、プラス１３バイトのオフセットが設けられる。
【０２６７】
黒インクでの記録に関しては、実際に記録に使用される２４個の黒インク用ノズルの位置が、図８に示した傾斜角度のために３画素分の水平シフトに対応するために、また、シアンノズルと黒ノズルとの間の８つのノズルのために、バッファ読出し順序には３７バイトのオフセットが必要である。これは７４７にも示されている。
【０２６８】
したがって、簡単に言えば、バッファ読出し順序は、ギャップおよび傾斜角度、印刷に使用される実際のノズル、記録解像度などを含め、記録ヘッド上のノズルの物理的構成の影響を受ける。したがって、バッファ読出し順序を指定する１つの方法では、ノズル開始位置、ノズルオフセット、プリントバッファデータ高、プリントバッファ高、印刷で使用されるノズルに対応するプリントバッファ内のバイトに関するバッファオフセットが指定される。
【０２６９】
この構成が、解像度７２０ｄｐｉでの記録を示す図４３Ｅに関連して、再び示されている。記録ヘッドの構成が変更されていないので、ノズルオフセットなどは必ずしも変更しなくてよい。しかし、解像度７２０ｄｐｉでは、図８の傾斜角度が、垂直方向に１６個のノズル毎に２画素分の水平オフセットに対応するので、バッファオフセットを７４９で示したように変更しなければならない。
【０２７０】
記録ヘッドの構成（記録ヘッド上のノズルの物理的構成とノズルの傾斜角度とを含む）と印刷時に使用される実際のノズルと記録解像度のいくつかの異なる組合せに関してバッファ読取り順序をどのように指定するかのさらなる例を図４３Ｆおよび図４３Ｇに与える。たとえば、図４３Ｆは、図４３Ｅに示したのと同じ記録ヘッドを使用するが、６４個全ての黒インク用ノズルのみを使用し、カラーインク用ノズルを使用しないプリントアウトを示す。したがって、７５０で示したように、仮想標準である２５６ノズルヘッドに対して、印刷で使用される第１番目のノズルは２４バイト下に配置される。したがって、８つの連続する８バイトビットを含むノズルオフセット７５２と同様に、ノズル開始位置７５１は適切に変更される。プリントバッファデータ高は、７５４で示したように８バイトに変更される。ただし、プリントバッファ高７５５は１２バイトのままである。バッファオフセット７５６は、物理的なプリントバッファの部分７４６に重ね合わせられ、プリントバッファの各バイトの適切な読出し順序に関するオフセットを示す。
【０２７１】
解像度７２０ｄｐｉでの印刷の場合のバッファオフセットを７５７に示す。
【０２７２】
図４３Ｇは、図８に９８で示したように、傾斜角度を用いて記録ヘッド上に順次配置された黒インク用の１２８個のノズルで構成された記録ヘッドを使用する際のバッファ読出し順序の例を示す。このようなノズル構成７５９は、１６バイト下のノズル開始位置７６０から始まるために、仮想標準の２５６ノズルヘッドとは異なる。ノズルオフセット７６１はノズルが８ビット群で１６個順次並んでいることを示す。プリントバッファ・データ高７６２は、プリントバッファ高７６４と同様に、１６バイトに設定される。バッファ・オフセット７６５は、バッファ読出し順序が、プリントバッファの部分７４６に重ね合わされたときに記録ヘッドの傾斜によってどのような影響を受けるかを示す。
【０２７３】
解像度７２０ｄｐｉでの印刷の場合、バッファオフセットは７６６で示したように設定される。
【０２７４】
読出し順序に影響を与える他の因子のうちの第３の因子は記録解像度である。特に、高解像度で記録する際には、低解像度で記録する際よりも遅いキャリッジ速度が使用される。キャリッジ速度の差と、この差をプリントノズルの非斜め構成の効果に対してどのように考慮するかの問題とのために、記録解像度に基づいてバッファ読出し順序を修正する必要がある。
【０２７５】
したがって、簡単に言えば、ステップＳ４３３５１で、複数のバッファ制御テーブルがプリンタ３０へ送信され、ステップＳ４３３５２でこれらのテーブルがプリンタに登録される。このテーブルの１つが、実際の印刷動作中に使用するために選択される。
【０２７６】
ステップＳ４３３５４で、ホストプロセッサ２３はノズル駆動シーケンスコマンドをプリンタ３０へ送信する。ホストプロセッサ２３から送信されるノズル駆動シーケンス・コマンドは、ステップＳ４３３５５でプリンタ３０によって受信され、後述のように適切に処理される。一般的に言えば、ステップＳ４３３５４では、複数の異なるノズル駆動シーケンスを定義する第１のタイプと、１つの定義済みノズル駆動シーケンスが、その後の印刷動作時に使用されるシーケンスとして選択される第２のタイプの２種類のノズル駆動シーケンスコマンドの内の一方が送信される。第１のタイプのノズル駆動シーケンスコマンドの場合、ノズル駆動シーケンスコマンドが定義され、ホストプロセッサ２３が好ましくは、第３．６節で説明した加熱パルス・テーブル定義コマンド（［ＤＥＦＩＮＥ＿ＰＵＬＳＥ］）を送信する。ホストプロセッサ２３によって定義されたそのような各ノズル駆動シーケンスについて、プリンタ３０は、ノズル駆動シーケンスをＲＡＭ１２９に登録することによって応答する。
【０２７７】
第２のタイプのノズル駆動シーケンスコマンドの場合、ホストプロセッサ２３は、複数の登録済みノズル駆動シーケンスのうちの１つをその後の印刷動作で使用されるシーケンスとして選択する。好ましくは、ホストプロセッサ２３は、第３．６節で説明した加熱パルステーブル選択コマンド（［ＳＥＬＥＣＴ＿ＰＵＬＳＥ］）を使用する。プリンタ３０は、加熱パルステーブル選択コマンドを受信すると、登録済みの加熱パルステーブルのうちの指定されたテーブルをＲＡＭ１２９から検索し、記録ヘッド１３０ａおよび１３０ｂの、記録媒体を横切る次の走査または複数の走査など、以後の印刷動作に使用する。
【０２７８】
いくつかの異なるノズル加熱シーケンスの例を図４３Ｈに示す。いくつかの異なるノズル駆動シーケンスが必要である理由は、実際のノズル駆動シーケンスが、解像度、走査方向（すなわち、往路走査または復路走査）、ノズルの傾斜角度を含め多数の係数に依存することである。他の因子もノズル駆動シーケンスに影響を与える。たとえば、低解像度でのプリントアウトでは、記録ヘッドが記録媒体を高速で横切って移動するため、解像度はノズル駆動シーケンスに影響を与える。この速度は、１６個のノズルがインクを吐出する際に、キャリッジがノズルの傾斜角度に対応して厳密に１画素／３６０ｄｐｉ、２画素／７２０ｄｐｉ、または４画素／１４４０ｄｐｉだけ前進するように算出される。この結果、ノズルが上から下へ順次駆動された場合には垂直線が印刷される。一方、低解像度では、キャリッジ速度は遅くなる。したがって、垂直線を得るには、他のあらゆるノズルを順次駆動する必要がある。したがって、解像度は、ノズル駆動シーケンスに影響を与える１つの因子である。
【０２７９】
容易に理解できるように、ノズル駆動シーケンスに影響を与える他の因子は記録方向である。具体的には、傾斜角度のために、往路方向の記録と復路方向の記録との間ではノズル駆動シーケンスを反転しなければならない。
【０２８０】
図４３Ｈは、ホストプロセッサ２３によって定義し、後で１つのシーケンスを選択できるようにプリンタＲＡＭ１２９に登録することのできるノズル駆動シーケンスのいくつかの例を示す。図４３Ｆに示したように、ノズル番号１〜１６に関するノズル駆動シーケンスは、４つの異なる印刷条件、すなわち、往路方向に解像度３６０ｄｐｉで印刷、復路方向に解像度３６０ｄｐｉで印刷、往路方向に解像度７２０ｄｐｉで印刷、復路方向に解像度７２０ｄｐｉで印刷の４つの異なる印刷条件に関して定義される。４つのノズル駆動シーケンスはそれぞれ、ホストプロセッサ２３によって定義され、プリンタ３０へ送信され、次いで、プリンタ３０はそのノズル駆動シーケンスをＲＡＭ１２９に登録する。その後、ホストプロセッサ２３は、１つのノズル駆動シーケンスを現在必要な印刷条件に適切なシーケンスとして選択し、適切な選択コマンドをプリンタ３０へ送信する。プリンタ３０は、指定されたノズル駆動シーケンスを選択し、それを以後の印刷動作に使用することによってコマンドに応答する。
【０２８１】
したがって、簡単に言えば、ステップＳ４３３５４で、ホストプロセッサ２３は複数の異なるノズル駆動シーケンスを定義することができ、このうちの１つが、その後の印刷動作で使用されるシーケンスとして指定される。ステップＳ４３３５５で、プリンタ３０は、複数のノズル駆動シーケンスのそれぞれをＲＡＭ１２９に登録し、登録したノズル駆動シーケンスのうちの指定されたシーケンスをその後の印刷動作で使用されるシーケンスとして選択することによって、ホストプロセッサ２３からのコマンドに応答する。
【０２８２】
ステップＳ４３３５６で、ホストプロセッサ２３が、第３．６節で説明した［ＤＲＯＰ］コマンドなどの液滴サイズコマンドを送信し、ステップＳ４３３５７で、プリンタ３０が、液滴サイズコマンドで命令された液滴サイズを選択することによってそのコマンドに応答する。その後、この液滴サイズで印刷が行われる。
【０２８３】
ステップＳ４３３５９で、ホストプロセッサ２３は（好ましくは、［ＤＡＴＡ］コマンドと共に）印刷データを送信し、その後、データの印刷を実行するコマンド（［ＰＲＩＮＴ］コマンドを含む）をプリンタ３０へ送信する。プリンタ３０はステップＳ４３３６０〜Ｓ４３３６２で、ステップＳ４３３５２で選択されたバッファ制御コマンドに基づいてプリントバッファ１３９からの読出し順序を制御し、ステップＳ４３３５５で受信されたノズル駆動シーケンスコマンドに基づいてノズル駆動シーケンスを制御し、ステップＳ４３３５７で受信された液滴サイズコマンドに基づいて液滴サイズを制御することによって応答する。
【０２８４】
したがって、前述の処理により、記録ヘッドを駆動するためのパラメータを設定する外部ホストプロセッサからのコマンドを使用することによって、設計時には構想されなかった構成を有する記録ヘッドを使用するようにプリンタを制御することができる。このため、それぞれの異なるヘッド構成およびその他の特性を有する新しい記録ヘッドが開発されたときにそれを受け入れるプリンタ３０の融通性が大幅に向上する。
９．０  プリントバッファの動作
図４３Ｉは、往路方向への印刷のための、ホストプロセッサ２３内の印刷データストア１３６からプリントバッファ１３９（図１０および図１１に示されている）への印刷データの転送を示す。図４３Ｉに示される印刷転送は、プリンタドライバ１１４に記憶されているプログラムコードと、プリンタ３０に記憶されているプログラムコードによって制御される。図４３Ｉによれば、１つの記録ヘッド４３３０が静止位置から往路走査方向に一定の走査速度にまでランプアップし、記録媒体を横切りながら走査し、その一定の走査速度から静止位置へランプダウンするという過程を経ることによって、記録媒体を横切る走査を実行する。ランプアップ位置は参照番号４３３５で示され、走査領域は参照番号４３３８で示され、ランプダウンは参照番号４３３９で示されている。参照番号４３２０は、現在の走査のための印刷データが記憶されているプリントバッファ１３９内の領域を表す。領域４３２１は、記録ヘッドの傾斜角度に対応する印刷データを記憶するために予約されたプリントバッファの余分な領域である。（プリントノズルの傾斜角度に対応するデータを記憶するためにプリントバッファ１３９内の余分な記憶域が必要であることについては、図４３Ｅ〜図４３Ｇに関して説明し、バッファ読出し順序に関する前節の説明で説明した）。参照番号４３２５は、プリンタドライバ１１４によって得られ、ホストプロセッサ２３内の印刷データストア１３６に記憶される印刷データを表す。この印刷データは次の走査のためのデータである。参照番号４３１５は記録媒体上に印刷された画像を表し、この印刷された画像は、プリントバッファ４３２０内の現在の走査のためのデータに従って記憶される。
【０２８５】
図４３Ｉ（Ａ）に示したように、プリントバッファのすべての印刷位置に現在の走査のための印刷データがあり、印刷データストア１３６のすべての印刷位置に次の走査のためのデータがある。ランプアップ期間４３３５中に、記録ヘッド４３３０は、一定の走査速度に達するまで印刷を行わずに往路走査方向へ移動する。印刷が行われないので、プリントバッファ４３２０内の印刷データは空にならず、したがって、プリントバッファ４３２０には、次の走査のための印刷データを印刷データストア１３６から転送するための空間がない。
【０２８６】
図４３Ｉ（Ｂ）は、記録ヘッド４３３０が一定の走査速度に達し、４３１５で示したようにプリントアウトを開始した状況を示す。現在の走査のための印刷データがプリントバッファからなくなった（あるいはより厳密に言えば、すでに印刷されたのでもはや必要なくなった）ので、次の走査のための印刷データの第１番目のブロックをプリンタドライバ１１４の印刷データストア４３２５からプリントバッファ４３２０へ送信することができる。しかし、プリントバッファ４３２０には、印刷データストア４３２５からの追加のデータに使用できる余分の空間がなく、したがって、更なるデータ送信はなされない。
【０２８７】
プリンタドライバ１１４が、プリントバッファ４３２０に空領域があることを判定するために使用する１つのメカニズムは、プリンタ３０へのデータ転送が現在受け入れられないことを示すプリンタ３０からの信号である。そのような信号の例には、”ビジー（ｂｕｓｙ）信号”や”ノットレディ（ｎｏｔ−ｒｅａｄｙ）信号”などが含まれ、以下、このような信号を”ビジー信号”と呼ぶ。ビジー信号は、プリンタ３０によって生成され、ホストコンピュータ・インタフェース１４１を介してホストプロセッサ２３へ送信される。具体的には、プリンタ３０が、キャリッジを記録媒体を横切りながらステップ移動させるステッピングモータを使用するので、プリンタ３０は常に記録ヘッド４３３０の印刷位置を知っている。プリンタ３０はさらに、プリントバッファ４３２０内の現在印刷されていない領域の左縁および右縁を知っている。プリンタ３０は、記録ヘッド４３３０の位置とプリントバッファ４３２０の左縁および右縁とを比較することによって、プリンタドライバ１１４から受信されたデータを記憶すべき空領域がプリントバッファ内にあるかどうかを判定することができる。プリントバッファ内に空領域がない場合、プリンタ３０はホストプロセッサ２３へのビジー信号を生成する。一方、プリントバッファ４３２０内に空領域がある場合、プリンタ３０はビジー信号をクリアし、印刷データを受け入れる準備が完了していることを示す。
【０２８８】
図４３Ｉ（Ｃ）〜（Ｅ）によれば、４３１５で示すように、現在の走査のための印刷データはどんどん、プリントバッファ４３２０から記録媒体上に印刷される。各連続印刷データブロックがプリントバッファ４３２０からなくなるにつれて、プリンタドライバ１１４は、次の走査のための連続印刷データブロックを印刷データストア１３６の領域４３２５からプリントバッファ４３２０へ送信する。したがって、図４３Ｉ（Ｃ）に示したように、第２番目の印刷データブロックが印刷データストアの領域４３２５からプリントバッファ４３２０へ送信され、図４３Ｉ（Ｄ）に示すように、連続ブロック３〜８が印刷データストア４３２５からプリントバッファ４３２０へ送信され、図４３Ｉ（Ｅ）に示すように、次の走査のための第１６番目の印刷データブロックが印刷データストア４３２５からプリントバッファ４３２０へ送信される。図４３Ｉ（Ｅ）によれば、４３１５で示したように現在の走査領域全体が印刷され、記録ヘッド４３３０がランプダウン動作を開始する。当然のことながら、この場合、記録ヘッド４３３０は、現在プリントバッファ４３２０に記憶されている印刷データを次の走査に使用して復路方向への印刷を開始することが可能である。この間に、プリンタドライバ１１４によって、印刷データストア１３６からプリントバッファ１３９へさらに続く走査のための印刷データが送信される。
【０２８９】
復路方向の記録については、以下に、図４３Ｊを参照して説明する。
【０２９０】
具体的には、図４３Ｊ（Ａ）は図４３Ｉ（Ａ）と同様な状況を示し、この場合、現在の走査のための印刷データ（プリントバッファ４３２０に記憶されている）のサイズは、その後の走査のための印刷データ（印刷データストア４３２５に記憶されている）のサイズと同じかそれ以上である。参照番号４３２１は、記録ヘッド４３３０上のノズルの傾斜角度を補償するバッファ読出し順序に対処するためのプリントバッファ４３２０の余分な記憶域を指す。以下、そのような領域を「ノズル・オフセット長」と呼ぶ。参照番号４３１５は、往路走査によってすでに記録媒体上に印刷されたデータを指す。４３３９で示したランプアップ期間中に、記録ヘッド４３３０が静止位置から一定の走査速度にランプアップするが、データは印刷されずプリントバッファ４３２０のデータが空になることはない。図４３Ｊ（Ｂ）によれば、記録ヘッド４３３０は、復路方向へ一定の速度で移動しており、プリントバッファ４３２０内の現在の走査のための印刷データに対応するデータの印刷を開始している。記録媒体上の印刷されたデータを４３１６で示す。記録媒体上のプリントアウトによってプリントバッファ４３２０のかなり大きな領域が空になっているので、印刷データストア４３２５から得た第１番目のデータブロックはプリンタドライバ１１４によってプリントバッファ４３２０へ転送される。
【０２９１】
復路方向への印刷を継続すると、その後のデータブロックが記録媒体上に印刷され、それによってプリントバッファ４３２０の印刷データが空になる。この状況は図４３Ｊ（Ｃ）および図４３Ｊ（Ｄ）に示されており、この場合、プリンタドライバ１１４によって印刷データストア４３２５からバッファ４３２０の空領域へ第２番目のブロック以後のブロック３〜８が転送される。図４３Ｉに示した場合と同様に、プリンタドライバ１１４は、プリンタ３０からビジー信号を受信しないかぎりプリンタ３０へデータを送信する。図４３Ｊ（Ｅ）で、最後の印刷データブロックがプリントバッファ４３２０から記録媒体上の４３１６に印刷され、それによって、次の走査のための最後の印刷データブロックを印刷データストア４３２５からプリントバッファ４３２０へ転送することが可能になる。記録ヘッド４３３０はその後、４３３５で示したように、一定の走査速度から静止位置にランプダウンする。
【０２９２】
図４３Ｋは、プリントバッファ４３２０に記憶されている現在の印刷データが、ホストプロセッサ２３内の印刷データストア４３２５に記憶されている次の走査のための印刷データよりも小さい場合に、１つの記録ヘッド４３３０が往路走査方向に記録媒体を横切って走査記録中に、ホストプロセッサ２３内の印刷データストア１３６からプリンタ３０のプリントバッファ１３９への印刷データが転送される様子を示す。現在の印刷データの量が次の走査の印刷データよりも少ないので、印刷が始まる前でもプリントバッファ４３２０には空領域がある。したがって、次の走査のための印刷データをプリントバッファ４３２０のすでに空の領域へ転送することによって、この状況を利用することが可能である。そのような処理について、図４３Ｋを参照して、以下に説明する。
【０２９３】
この場合、プリンタドライバ１１４はプリンタ３０からのビジー／レディー信号生成にのみ依存しなくても、次の走査のための印刷データを記憶すべき空の空間がプリントバッファにあるかどうかを判定することができる。これは、プリンタドライバがすでに、特定のプリントバッファ位置に記憶される現在の走査のためのデータを送信しており、次のス走査のための印刷データを受信するために、プリントバッファ内のどの位置が空であり準備が完了しているかを、プリンタからのフィードバックなしに判定することができるからである。プリンタ３０は、プリンタドライバが印刷データを送信する間にビジー信号を生成することができるが、ビジー信号は通常、プリントバッファ位置の空／満杯状況とは無関係の理由（たとえば、プリンタが、ヘッドの清掃など他のタスクで占有されているため、新しいデータを受信する準備が完了していない）で生成される。
【０２９４】
図４３Ｋ（Ａ）によれば、１つの記録ヘッド４３３０は、領域４３３５で静止位置から一定の走査速度にランプアップし、一定の速度で領域４３３８を横切りながら印刷を行い（あるいは往路走査方向に次の印刷領域をシークし）、次いで領域４３３９で一定の走査速度から静止位置にランプダウンすることによって、記録媒体を横切る印刷を行う。参照番号４３２０はプリントバッファを指し、このプリントバッファは領域４３２０−１と、領域４３２０−２と、領域４３２０−３とを含み、このうち領域４３２０−３のみが現在の走査のための印刷データを含む。残りの領域は空であり、記録媒体上の対応する位置に印刷すべきデータがないことを示す。参照番号４３２１はプリントバッファ４３２０のノズルオフセット領域を指す。参照番号４３２５はホストプロセッサ２３からプリンタ３０へまだ送信されていない印刷データストア１３６内の次の走査のためのデータを指す。
【０２９５】
図４３Ｋ（Ｂ）によれば、記録ヘッド４３３０のランプアップ期間中には、プリントバッファ４３２０内に空の位置があるため、プリンタドライバ１１４によって印刷データストア４３２５からプリントバッファ４３２０へ第１番目のブロックの情報が転送される。同様に、図４３Ｋ（Ｃ）によれば、プリントバッファ４３２０−２が空なので、第２番目の印刷データブロックが印刷データストア４３２５からプリントバッファ４３２０へ送信される。この時点で、記録ヘッド４３３０は、一定の走査速度に達しており、プリントバッファ４３２０内の現在の走査のための印刷データに対応する第１の印刷領域を往路走査方向にシークし始める。この状況は図４３Ｋ（Ｄ）に示されており、この場合、印刷データ４３１５は、記録ヘッド４３３０によって記録媒体上に印刷される。さらに、印刷データ４３１５の印刷によってプリントバッファ４３２０内の領域が空になるので、プリンタドライバ１１４によって印刷データストア４３２５からプリントバッファ４３２０へその後の印刷データブロックが転送される。記録ヘッド４３３０が引き続き往路方向へ移動すると、図４３Ｋ（Ｅ）に示されるように、印刷された領域が４３１５に追加され、プリンタドライバ１１４によって印刷データストア４３２５からプリントバッファ４３２０へはこれに続くブロックの印刷データが転送される。図４３Ｋ（Ｆ）によれば、記録ヘッド４３３０は、参照番号４３１５で示したようにプリントバッファ４３２０内の現在の走査のための印刷データすべての印刷を完了しており、次の印刷データの端部をシークするために往路方向への移動を開始している。次の印刷データは、この時点ですべて印刷データストア４３２５からプリントバッファ４３２０へ転送されている。往路方向へのシークが完了すると、記録ヘッド４３３０は、領域４３３９で一定の走査速度から静止位置にランプダウンし、次に復路方向に一定の走査速度になるまでランプアップを開始し、今やプリントバッファ４３２０にはすべてが記憶されている印刷データについての印刷を行う。
【０２９６】
復路方向への印刷は、全体的には、図４３Ｊに示した線に沿って進み、ランプアップ時に次の走査のやめのデータがプリントバッファ４３２０の空位置へ転送され、プリントアウトに伴ってプリントバッファ位置が空になるにつれて順次、印刷データブロックがプリントバッファへ転送される。
９．１  シングルプリントバッファ
図４３Ｉに示した往路方向の記録動作と図４３Ｊに示した復路方向の記録動作では、現在の走査のための印刷データの量がその後に続く走査のための印刷データの量と同じかそれ以上であるので、印刷データを事前に印刷データストア４３２５からプリントバッファ４３２０へ転送しておくことは不可能である。したがって、記録ヘッド４３３０が印刷を行うことによってプリントバッファ４３２０内のデータを空にしないかぎり、プリンタドライバ１１４からプリンタ３０へ新しいデータを送信することはできないので、印刷性能に影響を受ける。
【０２９７】
これに対して、図４３Ｋに示した場合、現在の走査のための印刷データの量がその後に続く走査のための印刷データの量よりも少ないので、記録ヘッド４３３０が印刷を開始する前でも、プリンタドライバ１１４がその後の走査のためのデータをプリントバッファ４３２０の空の領域に転送することが可能である。この構成によって処理速度には有利になる。同時に、現在の走査のためのデータが次の走査のためのデータよりも少ない状況はそれほど頻繁には起こらない。というのは、連続する各走査についての印刷データが、前の走査の印刷データと同じであるか、あるいはほぼ同じである方がずっと多いことが普通のことであるからである。
【０２９８】
すべての走査に関する印刷データ転送の性能を向上させるために、本発明者は本明細書で、記録ヘッド４３３０のランプアップ期間に対応してプリントバッファ４３２０に追加の領域を設けることを検討した。この追加の領域を、以下、”シフト領域”と呼ぶ。プリントバッファ４３２０に追加のシフト領域を設けることは、常に、場合によっては記録ヘッド４３３０が印刷を行っていないときにも、プリンタドライバ１１４が次の走査のために印刷データを蓄積することのできる空領域がプリントバッファ４３２０内にあることを意味する。特に、プリンタドライバ１１４は、記録ヘッド４３３０のランプアップを完了したとき、あるいはその前に印刷データをシフト領域へ転送することができる。さらに、プリンタドライバは、プリンタがビジー／読取り信号を生成することにのみ依存しなくても、プリンタがこのシフト領域に印刷データを受け入れる準備が完了しているかどうかを判定することができる。これは、プリンタドライバ自体が、現在の走査および次の走査のための印刷データをプリンタバッファ内のどこに記憶するかを指定し、シフト領域が印刷データを受信する準備が完了しているかどうかを、通常はプリンタからのフィードバックなしに判定することができるからである。
【０２９９】
図４３Ｌは、図４３Ｉに示したのと同様な場合、すなわち、現在の走査のための印刷データが次の走査のための印刷データとほぼ同じサイズである場合に、往路方向への印刷時に、データ転送の効率を高めるためのシフト領域の使用法を示す。図４３Ｌ（Ａ）で、プリントバッファ４３２０は、領域４３２０−２の最前縁部に付加されたシフト領域４３２０−１を含む。参照番号４３２１はノズル・オフセット長を補償するプリンタバッファ内の領域を指す。領域４３２０−２は現在の走査のための印刷データを記憶し、シフト領域４３２０−１は空であり、印刷データストア４３２５は、プリンタドライバ１１４からの送信を待つ次の走査のための印刷データを記憶する。図４３Ｉとは異なり、次の走査のための印刷データは、実際の印刷位置からシフトされた位置に示され、実際の印刷位置からのシフトは点線で示されている。このシフトは、プリントバッファ４３２０のシフト領域４３２０−１および領域４３２０−２へのデータの転送の図示を簡略化するための例示的なものに過ぎない。
【０３００】
プリンタ３０からのビジー信号がない場合、プリンタドライバ１１４は、印刷データストア４３２５からプリントバッファ４３２０へ印刷データを転送することが可能であると判定する。したがって、図４３Ｌ（Ｂ）に示したように、記録ヘッド４３３０のランプアップ期間４３３５中に、プリンタドライバ１１４は、次の走査に関する第１番目のブロックの印刷情報を印刷データストア４３２５からプリントバッファ４３２０のシフト領域４３２０−１へ送信する。シフト領域が充填された後、プリンタ３０はデータのさらなる送信を停止するビジー信号を生成する。図４３Ｌ（Ｃ）によれば、記録ヘッド４３２０は、一定の走査速度に達しており、プリントバッファ４３２０の領域４３２０−２のデータをプリントアウトすることによって現在の走査のための印刷データのプリントアウトを開始する。印刷された領域を４３１５で示す。プリントバッファ４３２０−２のある領域が空になった後、プリンタ３０は、追加のデータを受信する準備が完了したことをプリンタドライバ１１４に示すビジー信号を解放する。したがって、プリンタドライバ１１４は、印刷データストア４３２５からプリントバッファ４３２０への次の走査に関する第２番目のブロックの印刷データの送信を開始する。
【０３０１】
記録ヘッド４３３０が往路方向への印刷を継続すると、プリントバッファ４３２０の連続領域の印刷データが空になり、それによって、印刷データストア４３２５から次の走査のための印刷データを受信するプリントバッファ４３２０内の場所が解放される。この状況は図４３Ｌ（Ｄ）および図４３Ｌ（Ｅ）に示されており、この場合、領域４３１５へのプリントアウトによってプリントバッファ４３２０の連続領域の印刷データが空になり、プリンタドライバ１１４によって印刷データストア４３２５からプリントバッファ４３２０へ連続するブロックの印刷データが送信される。
【０３０２】
図４３Ｌ（Ｅ）では、印刷データストア４３２５からプリントバッファ４３２０へ次の走査に関する最後のブロックの印刷データが送信されている。しかし、プリントバッファ４３２０内の現在の走査のための印刷データが印刷されていないので、現在の走査に関する印刷はまだ完了していない。したがって、図４３Ｌ（Ｆ）に示すように、記録ヘッド４３３０は印刷を継続し、プリントバッファ４３２０の追加の領域を解放する。図４３Ｌ（Ｅ）に示したようにすべての印刷データがすでに送信されているので、次の走査のための印刷データにプリントバッファ４３２０の他の領域を解放する必要はない。したがって、プリントバッファ４３２０の新たに解放された領域は、図４３Ｌ（Ａ）〜図４３Ｌ（Ｆ）に示したように、復路方向の印刷時におけるシフト領域として再割振りされる。いずれにしても、往路方向の印刷が終了すると、記録ヘッド４３３０は４３３９で一定の走査速度から静止位置にランプダウンする。
【０３０３】
図４３Ｍは、印刷データストア４３２５からプリントバッファ４３２０への次の走査のための印刷データの転送を示し、この場合、プリントバッファ４３２０は、領域４３２０−２ならびに空シフト領域４３２０−１に現在の走査のための印刷データを含んでいる。したがって、図４３Ｍに示した印刷は図４３Ｊに示した印刷、すなわち、復路方向の印刷に類似している。しかし、主として、より効率的なデータ転送を可能にするシフト領域４３２０−１が使用されているために、図４３Ｍに示したデータ転送は、図４３Ｊに示したデータ転送とは異なる。
【０３０４】
ランプアップ領域４３３５での、静止位置から一定の走査速度への記録ヘッド４３３０のランプアップ期間が終了する前に、プリンタ３０は、プリントバッファ４３２０内に空領域がある（図４３Ｍ（Ａ））ため、ホストプロセッサ２３にレディー信号（ｒｅａｄｙ）を示す。したがって、プリンタドライバ１１４は、次の走査に関する第１番目のブロックの印刷データを印刷データストア４３２５からシフト領域４３２０−１へ送信する。これは図４３Ｍ（Ｂ）に示されており、この場合、記録ヘッド４３３０は一定の走査速度へのランプアップを開始している。印刷データストア４３２５からシフト領域４３２０−１へ第１番目のブロックの印刷データが送信された後、プリンタ３０は、もはや印刷データが送信されないことをプリンタドライバ１１４に示すビジー信号を生成する。
【０３０５】
図４３Ｍ（Ｃ）で、記録ヘッド４３３０は一定の走査速度に達しており、復路方向への印刷を開始している。復路方向には参照番号４３１６で示す領域へのプリントアウトによってプリントバッファ４３２０のある領域が空になる。このため、プリンタ３０は、プリンタ３０自体が印刷データを受け入れられることをプリンタドライバ１１４に示すレディー信号（ｒｅａｄｙ）を生成する。したがって、プリンタドライバ１１４は、次の走査のための第２番目のブロックの印刷データを印刷データストア４３２５からプリントバッファ４３２０へ送信する。
【０３０６】
図４３Ｍ（Ｄ）〜図４３Ｍ（Ｅ）は、復路方向における継続した印刷を示す。すなわち、図４３Ｍ（Ｄ）によれば、記録ヘッド４３３０は復路方向への印刷を継続し、それによってプリントバッファ４３２０内の印刷位置を空にする。印刷位置が空になったことに応答して、プリンタドライバ１１４は、次の走査のための連続ブロックの印刷データを、プリントバッファ４３２０の連続的に空になった位置へ送信する。図４３Ｍ（Ｅ）によれば、印刷データストア４３２５からプリントバッファ４３２０へ次の走査に関する最後のブロックの印刷データが送信されている。しかし、プリントバッファ４３２０には印刷されていないデータが残っているので、復路方向への印刷はまだ完了していない。したがって、図４３Ｍ（Ｆ）に示したように、復路方向への印刷が継続し、プリントバッファ４３２０の連続位置が空になる。図４３Ｍ（Ｅ）ですべてのそのようなデータが送信されたので、空になった連続位置は、次の走査のための印刷データには必要とされない。したがって、プリントバッファ４３２０の空になった位置は、往路方向へのその後の印刷のためのシフト領域になる。
【０３０７】
図４３Ｌおよび図４３Ｍに示した処理により、シフト領域を使用することによって印刷データの転送がより効率的になる。この場合、シフト領域は、往路方向への印刷時にはプリントバッファの往路走査方向の前端部に付加され、現在の印刷データ行の印刷が終了したときにはプリントバッファ４３２０の末端部に創成される。プリントバッファ４３２０の末端部に作成されたシフトバッファ（シフト領域）は、復路印刷方向における続く走査で使用される。したがって、プリンタドライバ１１４は、印刷データのランプアップ時にデータを送信すべきプリントバッファ４３２０の空位置を有するので、印刷データ転送効率が向上する。
【０３０８】
図４３Ｎは、現在の走査のための印刷データのサイズが次の走査のための印刷データのサイズよりも小さい図４３Ｋと同様な状況でのデータの転送を示す。しかし、図４３Ｎに示したデータ転送では、データ転送の効率を向上させるために、記録ヘッド４３３０のランプアップ期間に対応してシフト領域４３２０−５が設けられる。
【０３０９】
図４３Ｎでは、プリントバッファ４３２０は、現在の走査のための印刷データを含む領域４３２０−１を含む。領域４３２０−２、領域４３２０−３、領域４３２０−４は、印刷データを含まない空領域である。参照番号４３２１は、ノズルオフセット長のために設けられたプリントバッファ４３２０の領域である。参照番号４３２０−５は、記録ヘッド４３３０のランプアップ期間に対応するシフト領域である。
【０３１０】
図４３Ｎ（Ａ）に示したように、現在ホストプロセッサ２３内の印刷データストア４３２５に記憶されている次の走査のための印刷データは、現在の走査のための印刷データよりもサイズが大きい。したがって、空であり、かつ記録ヘッド４３３０がまだ印刷を開始していない場合でもデータを受け入れることのできるプリントバッファ４３２０の領域がある。この状況は図４３Ｎ（Ｂ）に示されており、この場合、静止位置から一定の走査速度への記録ヘッド４３３０のランプアップが完了する前に、プリンタドライバ１１４によって印刷データストア４３２５からプリントバッファ４３２０へ次の走査に関する第１番目のブロックの印刷データが送信される。この印刷データはシフト領域４３２０−５および空領域４３２０−４に記憶される。その後、図４３Ｎ（Ｃ）に示したように、記録ヘッド４３３０は一定の走査速度に達し、プリントバッファ４３２０の領域４３２０−１内の印刷データに対応する第１の印刷位置を見出すために往路走査方向にシークを開始する。この期間中には、まだプリントバッファ４３２０に空領域が残っているので、プリンタドライバ１１４は、次の走査に関する第２番目のブロックの印刷データを印刷データストア４３２５からプリントバッファ４３２０の空領域４３２０−２へ送信する。
【０３１１】
図４３Ｎ（Ｄ）では、記録ヘッド４３３０は第１の印刷位置に達しており、参照番号４３１５に示したようにプリントアウトを開始する。記録ヘッド４３３０は、印刷を継続するにつれて、プリントバッファ４３２０の印刷データを空にし、それによって次の走査のための印刷データを受信するプリントバッファ４３２０の領域を解放する。したがって、プリンタドライバ１１４は次の走査のための第３番目のブロックの印刷データを印刷データストア４３２５からプリントバッファ４３２０へ送信する。
【０３１２】
記録ヘッド４３３０は引き続き、往路方向への印刷を行うにつれて、プリントバッファ４３２０内の記憶位置を空にしていく。この状況は図４３Ｎ（Ｅ）に示されており、この場合、記録ヘッド４３２０は参照番号４３１５で示した領域への現在の走査におけるすべての印刷情報の印刷を完了している。プリンタドライバ１１４は引き続き、次の走査に関するその後の印刷データブロックをプリントバッファ４３２０の空になった位置へ転送する。同時に、記録ヘッド４３２０は、次の走査に関する印刷データの第１の印刷位置を見出すため往路方向にシークを開始する。図４３Ｎ（Ｆ）で、記録ヘッド４３３０は、その位置に達し、一定の走査速度から静止速度へのランプダウンを開始し、復路方向印刷ができるように走査方向を反転させる。
【０３１３】
この場合、ランプダウン中と、復路方向印刷のためのランプアップの前に、復路方向印刷のためのシフト領域用の空位置として領域４３２０−３を使用することができる。したがって、次の順番となっている走査のための印刷データが、プリントバッファ４３２０に記憶されている印刷データ以上のサイズのものである場合でも、次の走査のための印刷データを受け入れる空位置がプリントバッファ４３２０内の領域４３２０−３にある。このため、プリンタドライバ１１４からプリントバッファ４３２０への印刷データの伝送量が増加する。
【０３１４】
復路方向印刷は全体的に、図４３Ｊに示した線に沿って進み、ランプアップ時に次の走査のためのデータがプリントバッファ４３２０の空位置へ転送され、プリントアウト時にプリントバッファの場所が空になるにつれて、印刷データブロックが順次、プリントバッファへ転送される。
【０３１５】
要約すれば、シフト領域を使用して印刷データの伝送効率を高めるには、プリンタドライバ側の制御とプリンタ側の制御との間の協働が必要である。プリンタドライバ側に関して言えば、プリンタドライバは、現在の走査（すでに送信されている）および次の走査（まだ送信されていない）の左縁部および右縁部を監視する。次の走査の左縁部が現在の走査の左縁部よりも小さい（即ち、より左側にある）場合、プリンタドライバは、現在の走査の左縁部に達するまでデータブロックを送信する。同様に、次の走査の右縁部が現在の走査の右縁部よりも大きい（即ち、より右側にある）場合、プリンタドライバは、現在の走査の右縁部に達するまで次の走査の右側に関するデータブロックを送信する。この処理によって、次の走査のためのデータが現在の走査のためのデータよりも大きい場合、データはできるだけ効率的に送信される。
【０３１６】
また、次の走査の印刷領域が現在の走査の印刷領域と重なり合う重なり領域では、プリンタドライバは、その重なり合う領域を小さなブロックに分割する。プリンタドライバは、プリンタからビジー信号またはレディー信号を受信したことに応答して、この重なり合う領域を小さなブロックの単位で送信する。現在の走査が往路方向への走査である場合、プリンタドライバは次の走査に関し重なり合うデータを小さなブロックの単位で左から右へ送信する。これに対して、現在の走査が復路方向への走査である場合、プリンタドライバは次の走査に関し重なり合う領域を小さなブロックの単位で右から左へ送信する。
【０３１７】
一方、プリンタ側に関して言えば、現在の走査に関する印刷を開始すると、プリンタは記録ヘッドの位置についてモニタを続ける。（プリンタがキャリッジ移動を監視することによって更新されていくのであるが）受信した印刷データブロックの右端が現在の走査のためのデータの左端よりもさらに左側にあることが判明した場合、プリンタはただちに、受信したデータブロックをプリントバッファに入れる。同様に、（プリンタがキャリッジ移動を監視することによって更新されていくのであるが）次の走査のために受信した印刷データブロックの左端が現在の走査のためのデータの右端よりもさらに右側にあることが判明した場合、プリンタはただちに、受信したデータブロックをプリントバッファに入れる。重なり合った領域、即ち、受信したデータブロックが現在の走査の印刷領域と重なり合っている領域に関して言えば、プリンタはビジー信号を発行し、プリンタドライバからの追加の印刷データの送信を停止する。プリンタがキャリッジ移動を監視することにより更新されていくにつれて、プリンタドライバによって指定されたブロックが完全に空になったことが判明すると、プリンタは受信したデータブロックをプリントバッファに入れ、ビジー信号を解放し、追加の情報を受信する準備が完了したことをプリンタドライバに示す。
【０３１８】
いずれの場合も、現在の走査が往路方向である場合、プリンタはプリントバッファの（往路方向で測定された）シフト領域の終端から印刷を開始し、それに対して現在の走査が復路方向である場合、プリンタはプリントバッファの（復路方向で測定された）シフト領域の終端から印刷を開始する。
【０３１９】
このような一般的な手順を図４３Ｏ〜図４３Ｒに示す。図４３Ｏ〜図４３Ｒは、現在の印刷データが次の走査のための印刷データよりも小さいサイズである場合において、それぞれにシフト領域を有する２つのプリントバッファを使用した２つの記録ヘッドによる印刷を示す。図４３Ｏ〜図４３Ｒに示す印刷は、往路方向への印刷であるが、上記で概説した一般的な指針から、復路方向への印刷およびデータ転送は相補的に進むことが認識されよう。
【０３２０】
図４３Ｏ（Ａ）で、デュアル記録ヘッド４３３０Ａおよび４３３０Ｂは、互いの間隔が横方向に距離４３４０であるように設けられ、静止位置から４３３５でのランプアップ期間を経て一定の走査速度に達し、一定の走査速度での印刷領域４３３８を経て、４３３９のランプダウン期間で一定の走査速度から静止位置に達するように、一定の走査速度で印刷するように配置される。各記録ヘッドごとに１つのプリントバッファが設けられ、記録ヘッド４３３０Ａにはプリントバッファ４３２０Ａが設けられ、記録ヘッド４３３０Ｂにはプリントバッファ４３２０Ｂが設けられる。各プリントバッファは現在の走査のための印刷データを含み、次の走査のための印刷データのサイズは現在の走査のための印刷データのサイズよりも大きい。したがって、プリントバッファ４３２０Ａの場合、現在の走査のための印刷データは領域４３２０Ａ−４に記憶され、領域４３２０Ａ−１、領域４３２０Ａ−２、領域４３２０Ａ−３は空である。データ転送の効率を高めるためにプリントバッファ４３２０Ａの先頭にシフト領域４３２０Ａ−５が設けられる。４３２１はノズル・オフセット長の記憶位置を示す。
【０３２１】
同様に、プリントバッファ４３２０Ｂの場合、領域４３２０Ｂ−４は現在の走査のための印刷データを含む。領域４３２０Ｂ−１、領域４３２０Ｂ−２、領域４３２０Ｂ−３は空である。プリントバッファ４３２０Ｂへのデータ送信の効率を高めるためにプリントバッファ４３２０Ｂの先頭にシフト領域４３２０Ｂ−５が設けられ、４３２１はノズル・オフセットの記憶位置を示す。
【０３２２】
ホストプロセッサ側では、各記録ヘッドごとに１つの印刷データストアが設けられる。したがって、データストア４３２５Ａは、記録ヘッド４３３０Ａ用に設けられ次の走査のための印刷データを記憶し、印刷データストア４３２５Ｂは、記録ヘッド４３３０Ｂ用に設けられ、記録ヘッド４３３０Ｂに関する次の走査のための印刷データを記憶する。
【０３２３】
図４３Ｏ（Ｂ）では、記録ヘッド４３３０Ａおよび４３３０Ｂは、記録媒体を横切りながら静止位置から一定の走査速度へのランプアップを開始する。プリンタドライバ１１４は、プリンタ３０からのビジー信号がないので、すでに送信された印刷データに基づいて、記録ヘッド４３３０Ａの次の走査のためデータの左端が現在の走査のための印刷データの左端よりもより左側にあると判定し、第１番目のブロックの印刷データを印刷データストア４３２５Ａからプリントバッファ４３２０Ａへ送信する。このブロックはシフト領域４３２０Ａ−５および領域４３２０Ａ−１に記憶される。同様に、プリンタドライバ１１４は、記録ヘッド４３３０Ｂの次の走査のためのデータの左端が記録ヘッドＢの現在の走査のためのデータの左端よりもより左側にあると判定する。したがって、プリンタドライバ１１４は、記録ヘッド４３３０Ｂに関する１ブロック分の印刷データを印刷データストア４３２５Ｂからプリントバッファ４３２０Ｂへ送信する。次の走査のための印刷データブロックはシフト領域４３２０Ｂ−５および領域４３２０Ｂ−１に記憶される。
【０３２４】
図４３Ｏ（Ｃ）では、記録ヘッド４３３０Ａおよび４３３０Ｂは、一定の走査速度に達しており、記録ヘッド４３３０Ａおよび４３３０Ｂのどちらかに関して、第１の印刷位置を見出すために往路方向にシークを開始する。プリントバッファ４３２０Ａおよび４３２０Ｂには空領域が残っており、プリンタドライバ１１４が、現在の走査に関する既存の印刷データと重なり合うデータを送信していないので、プリンタ３０はまだビジー信号を送信していない。したがって、プリンタドライバ１１４は、プリンタが追加の印刷データを受け入れる準備を完了していると判定し、印刷データを適切に送信する。この場合、記録ヘッド４３３０Ａに関する次の走査のためのデータの右端が現在の走査のための印刷データの右端よりもより右側にあるので、プリンタドライバ１１４は印刷データブロックを印刷データストア４３２５Ａからプリントバッファ４３２０Ａへ送信する。この場合、送信されたデータは領域４３２０Ａ−２に記憶される。プリンタドライバ１１４は記録ヘッド４３３０Ａに関する新しい印刷データを送信しようとするが、送信されたデータがプリントバッファ内の空ではない場所と重なり合うので、そのような送信はプリンタがビジー信号を生成する原因となる。この時点で、プリンタドライバ１１４は、記録ヘッド４３３０Ａの場合、次の走査のためのデータの左端が現在の走査のためのデータの左端よりより右側にあり、かつ次の走査のためのデータの右端が現在の走査のためのデータの右端よりより左側にあると判定する。したがって、ビジー信号がクリアされるまで記録ヘッド４３３０Ａに関する印刷データがプリンタドライバによって送信されることはない。
【０３２５】
一方、プリンタドライバ１１４は、記録ヘッド４３３０Ｂに関する次の走査のためのデータの右端が現在の走査のための印刷データの右端よりも右側にあると判定する。したがって、印刷データストア４３２５Ｂからプリントバッファ４３２０Ｂへ印刷データブロックが送信される。この場合、送信されたデータブロックは領域４３２０Ｂ−２に記憶される。プリンタドライバ１１４は記録ヘッド４３３０Ｂに関する追加の印刷データを送信しようとするが、送信されたデータがプリントバッファ内の空ではない場所と重なり合うので、そのような送信はプリンタがビジー信号を生成する原因となる。この時点で、プリンタドライバ１１４は、記録ヘッド４３３０Ｂに関し、次の走査のための印刷データの左端が現在の走査のための印刷データの左端より右側にあり、かつ次の走査のための印刷データの右端が現在の走査のための印刷データの右端より左側にあると判定する。したがって、ビジー信号がクリアされるまで記録ヘッド４３３０Ｂに関する印刷データがプリンタドライバに送信されることはない。
【０３２６】
この時点で、プリンタドライバ１１４からプリンタ３０へはさらなるデータが送信されることはない。プリンタドライバ１１４は、記録ヘッド４３３０Ａと記録ヘッド４３３０Ｂのどちらかに関する印刷データを送信する場合、後続の印刷データブロックを記憶すべきプリントバッファ内の位置をプリンタに指定する［ＥＤＧＥ］コマンドをデータの前に送信する。プリンタは、［ＥＤＧＥ］コマンドによって指定された位置に基づいて、ドライバ１１４からの後続の印刷データブロックがプリントバッファ内の空ではない場所と重なり合うことを知る。次いで、送信される印刷データが印刷されていない印刷データであり、したがって、プリンタ３０自体が追加の印刷データを受信する準備を完了していないので、プリンタはビジー信号を発行する。
【０３２７】
図４３Ｐ（Ａ）では、記録ヘッド４３３０Ａおよび４３３０Ｂの往路方向へのシークが継続され、記録ヘッド４３３０Ｂがその第１の印刷位置に達している。したがって、参照番号４３１５Ｂで示した領域にはプリントアウトが開始され、それによってプリントバッファ４３２０Ｂ内のある位置が空になる。プリンタドライバ１１４は、次の走査のための印刷領域を小さなブロックに分割しており、第１番目の小さなブロックを印刷データストア４３２５Ａからプリントバッファ４３２０Ｂへ送信する。プリンタ３０は、記録ヘッド４３３０Ｂの現在位置に基づいて、プリントバッファ４３２０Ｂのある場所が空であることを検知し、送信されたブロックをただちに記憶できるようにする。
【０３２８】
図４３Ｐ（Ｂ）では、記録ヘッド４３３０Ｂが引き続き往路方向への印刷を行い、プリントバッファ４３２０Ｂ内にさらに空の場所ができ、それによって、プリンタドライバ１１４による印刷データストア４３２５Ｂからプリントバッファ４３２０Ｂへのデータの転送が可能になる。同時に、記録ヘッド４３３０Ａはその第１の印刷位置に達している（厳密には、記録ヘッド４３３０Ａはノズル・オフセット領域４３２１Ａ内の第１の印刷位置に達している）。したがって、記録ヘッド４３３０Ａによる印刷が開始し、記録ヘッド４３３０Ｂも印刷を継続する。
【０３２９】
図４３Ｐ（Ｃ）では、参照番号４３１５Ｂで示された領域に記録ヘッド４３３０Ｂによる印刷が継続し、プリントバッファ４３２０Ｂ内にはさらに空の場所ができる。プリンタドライバ１１４は、次の走査に関するさらなる印刷データブロックを印刷データストア４３２５Ｂからプリントバッファ４３２０Ｂへ送信する。これらの場所は空であるので、プリンタ３０は、送信されたブロックをただちに記憶できる。
【０３３０】
その間、領域４３１５Ａで示したように記録ヘッド４３３０Ａは印刷を開始しており、それによってプリントバッファ４３２０Ａ内のある位置が空になる。したがって、プリンタドライバ１１４は、次の走査のための印刷データブロックを印刷データストア４３２５Ａからプリントバッファ４３２０Ａへ送信する。プリントバッファ４３２０Ａ内の上記の位置が空であり、重なり合ったデータ（現在の走査に関するまだ印刷されていないデータ）を含まないので、プリンタ３０は、送信されたデータをただちにプリントバッファ４３２０Ａへ記憶することが可能である。
【０３３１】
図４３Ｑ（Ａ）および図４３Ｑ（Ｂ）で、記録ヘッド４３３０Ａおよび４３３０Ｂはそれぞれ、領域４３１５Ａおよび４３１５Ｂで示したように印刷を継続する。引き続き印刷を行うことによって、プリントバッファ４３２０Ａおよび４３２０Ｂ内にはさらに空の場所が空できる。したがって、プリンタドライバ１１４は、次の走査に関するさらなる印刷データをブロックごとに、印刷データストア４３２５Ａおよび４３２５Ｂから、それぞれプリントバッファ４３２０Ａおよび４３２０Ｂの空きの場所へ送信する。この処理と、次の走査のための印刷データがプリンタドライバ１１４から両方のヘッドへの送信のため利用可能となるようにさせるすべての処理との間に、ドライバ１１４はどちらのヘッドが最初に送信を受けるか（すなわち、記録ヘッド４３３０Ａへ送信し、その後に記録ヘッド４３３０Ｂへ送信するか、あるいは記録ヘッド４３３０Ｂへ送信し、その後に記録ヘッド４３３０Ａへ送信する）を判定する。ドライバは、どちらのヘッドが最初にブロックを空にする可能性が高いか、重なり合った領域の相対位置に基づいて、この判定を下す。この処理については、図４４Ｃ〜図４４Ｊに関連して後で説明する。これらの図では、印刷データブロックを記録ヘッドＡへ送信し、その後に記録ヘッドＢへ送信すべきか、それとも記録ヘッドＢへ送信し、その後に記録ヘッドＡへ送信すべきかを判定する手順について説明している。
【０３３２】
図４３Ｑ（Ｃ）では、記録ヘッド４３３０Ｂの印刷が終了し、それによってプリントバッファ４３２０Ｂの最後の位置が空になる。したがって、プリンタドライバ１１４は、次の走査に関する最後の残りの印刷データブロックを印刷データストア４３２５Ｂからプリントバッファ４３２０Ｂへ送信する。同時に、領域４３１５Ａで示したように記録ヘッド４３３０Ａのプリントアウトが継続し、プリントバッファ４３２０Ａ内にはさらに空の場所ができる。これらの場所が空になると、プリンタドライバ１１４は次の走査のための印刷データブロックを印刷データストア４３２５Ａからプリントバッファ４３２０Ａへ送信する。
【０３３３】
図４３Ｒ（Ａ）および図４３Ｒ（Ｂ）では、記録ヘッド４３３０Ａの印刷が継続し、プリントバッファ４３２０Ａにさらに空きの場所ができる。これらの場所が空になると、これらはドライバ１１４によって印刷データストア４３２５Ａからプリントバッファ４３２０Ａへブロックごとに送信された次の走査のための印刷データで充填される。図４３Ｒ（Ｂ）で、記録ヘッド４３３０Ａの現在の印刷データのプリントアウトが完了し、最後のブロックが印刷データストア４３２５Ａからプリントバッファ４３２０Ａへ送信される。記録ヘッド４３３０Ａおよび記録ヘッド４３３０Ｂは次いで、次の走査のための印刷データに関する第１の印刷位置に達するように往路方向にシークを開始する。
【０３３４】
図４３Ｒ（Ｃ）では、記録ヘッド４３３０Ａおよび記録ヘッド４３３０Ｂは、次の走査ラインの復路方向印刷の第１の印刷位置に達した後、一定の走査速度から静止位置にランプダウンする。その時点で、領域４３２０Ａ−３および領域４３２０Ｂ−３はそれぞれ、プリントバッファ４３２０Ａおよび４３２０Ｂ内の空の場所になる。したがって、これらの空領域は、プリントバッファ４３２０Ａおよび４３２０Ｂに記憶されている今や現在の走査となった走査のため印刷データでの復路方向印刷のランプアップ期間中に次の走査のための印刷データを受信するシフト領域になる。
９．２  バッファ制御の概要説明
図４４Ｃ〜図４４Ｊに示すフローチャートは、本発明によるシフトバッファ制御によって、印刷データストア１３６からプリントバッファ１３９に次の走査ラインの印刷データのデータ送信を行うためにプリンタドライバ１１４の実行の一部として、ホストプロセッサ２３のＣＰＵ１００によって実行されるプロセスステップを示している。これらのフローチャートに示したプロセスステップは、ディスク２５などコンピュータ読取り可能な媒体上またはＲＡＭ１１６内にコンピュータ実行可能なプロセスステップとして格納され、本発明によるシフトバッファ制御を行うためにＣＰＵ１００によって実行される。
【０３３５】
同様に、図４４Ｋ〜図４４Ｍに示すフローチャートは、本発明によるプリントバッファ制御を行うためにプリンタ３０のＣＰＵ１２１によって実行されるプロセスステップを示す。これらのフローチャートに示したプロセスステップは、本発明による記録制御を行うためにＣＰＵ１２１によって実行できるように、ＲＯＭ１２２などコンピュータ読取り可能な媒体上またはＲＡＭ１２９内にコンピュータ読取り可能なプロセスステップとして格納される。
【０３３６】
これらのフローチャートに示したプロセスステップによれば、本発明によるプリントバッファ制御では、シフト領域が先頭に設けられたプリントバッファが定義され、このシフト領域は記録ヘッドの往路方向でのランプアップ期間に対応する。復路方向印刷では、プリントバッファは、その終端に付加されたシフト領域を含み、このシフト・バッファは復路方向印刷時の記録ヘッドのランプアップ期間に対応する。往路方向への印刷用のシフトバッファは復路方向への印刷用のプリントバッファの一部であり、復路方向への印刷用のシフトバッファは往路方向への印刷用のプリントバッファの一部である。
【０３３７】
この構成では、プリントバッファにシフトバッファが付加されるか、あるいはプリントバッファの先頭にシフトバッファが設けられ、プリンタドライバは常に、記録ヘッドのランプアップ期間中に次の走査ラインの印刷データを送信するための場所をもっている。したがって、プリンタドライバからプリンタへ次の走査ラインの印刷データを送信する際の効率が高められる。
【０３３８】
さらに、シフト領域がランプアップ期間に対応し、かつ往路方向のシフトバッファが復路方向への印刷用のプリントバッファの一部であり、その逆も同様であるので、従来型のダブルバッファ構造などの大容量の付加的なプリントバッファの場所を設ける必要なしに、印刷データを送信する際の効率が高められる。
【０３３９】
図４４Ｃ〜図４４Ｊに示すフローチャートおよび図４４Ｋ〜図４４Ｍに示すフローチャートについて説明する前に、これらのフローチャートで使用されているある変数について図４４Ａと図４４Ｂを参照して説明する。このような変数は、プリンタ３０上でのプリントバッファ内の記憶位置までの物理的距離と、プリントバッファ内の記憶位置と記録媒体上のプリントアウト位置との対応関係とに対応している。
【０３４０】
図４４Ａは、往路方向への印刷に関する変数の識別を示す。したがって、プリントバッファ４３２０Ａおよび４３２０Ｂにおいて現在の走査のための印刷データを用いた記録ヘッド４３３０Ａおよび４３３０Ｂでの往路方向への印刷と、印刷データストア４３２５Ａおよび４３２５Ｂからの次の走査のための印刷データの送信とに関して、以下の変数が定義される。即ち、ヘッド・ギャップ４３４０は記録ヘッド４３３０Ａと記録ヘッド４３３０Ｂとの間の距離を定義し、ヘッド位置Ａおよびヘッド位置Ｂはそれぞれ、記録ヘッド４３３０Ａおよび記録ヘッド４３３０Ｂの現在のキャリッジ位置を定義し、ＢｕｆｆＴｏｐ＿ＦおよびＢｕｆｆＥｎｄ＿Ｆは往路方向への印刷の場合のプリントバッファ４３２０Ａおよび４３２０Ｂの先頭および終端を定義し、ＥｄｇｅＬ＿ＡｃおよびＥｄｇｅＲ＿Ａｃは記録ヘッド４３３０Ａに関する現在の走査のためのデータの左端および右端を定義し、ＥｄｇｅＬ＿ＢｃおよびＥｄｇｅＲ＿Ｂｃは記録ヘッド４３３０Ｂに関する現在の走査のための印刷データの左端および右端を定義し、ＳｈｉｆｔＬｅｎはシフト領域の長さを定義し、参照符号１２０３は、記録ヘッド内のノズルの傾斜角度を補償するためのノズル・オフセット長を定義し、ＥｄｇｅＬ＿ＡｎおよびＥｄｇｅＲ＿Ａｎは記録ヘッド４３３０Ａに関する次の走査のためのデータの左端および右端を指し、ＥｄｇｅＬ＿ＢｎおよびＥｄｇｅＲ＿Ｂｎは記録ヘッド４３３０Ｂに関する次の走査のための印刷データの左端および右端を定義し、ＢｌｏｃｋＬｅｎは、プリンタドライバ１１４が次の走査のための印刷データをブロックごとにプリントバッファ４３２０Ａおよび４３２０Ｂへ送信できるように分割する場合のブロックの幅を定義し、ＢｌｏｃｋＬｅｆｔおよびＢｌｏｃｋＲｉｇｈｔは、現在送信することが検討されている個々のブロックの左アドレスおよび右アドレスを示す。
【０３４１】
図４４Ｂは、記録ヘッド４３３０Ａおよび記録ヘッド４３３０Ｂによる復路方向への印刷に関する変数を識別したものである。したがって、プリントバッファ４３２０Ａおよび４３２０Ｂにおける現在の走査のための印刷データを用いた記録ヘッド４３３０Ａおよび記録ヘッド４３３０Ｂによる復路方向の印刷と、印刷データストア４３２５Ａおよび４３２５Ｂからの次の走査のための印刷データの送信とに関して、以下の変数が定義される。即ち、ヘッド・ギャップ４３４０は記録ヘッド４３３０Ａと記録ヘッド４３３０Ｂとの間の距離を定義し、ヘッド位置Ａおよびヘッド位置Ｂはそれぞれ、記録ヘッド４３３０Ａおよび記録ヘッド４３３０Ｂの現在のキャリッジ位置を定義し、ＢｕｆｆＴｏｐ＿ＢおよびＢｕｆｆＥｎｄ＿Ｂは復路方向印刷の場合のプリントバッファ４３２０Ａおよび４３２０Ｂの先頭および終端を定義し、ＥｄｇｅＬ＿ＡｃおよびＥｄｇｅＲ＿Ａｃは記録ヘッド４３３０Ａに関する現在の走査のためのデータの左端および右端を定義し、ＥｄｇｅＬ＿ＢｃおよびＥｄｇｅＲ＿Ｂｃは記録ヘッド４３３０Ｂに関する現在の走査のための印刷データの左端および右端を定義し、ＳｈｉｆｔＬｅｎはシフト領域の長さを定義し、参照符号１２０３は、記録ヘッド内のノズルの傾斜角度を補償するためのノズル・オフセット長を定義し、ＥｄｇｅＬ＿ＡｎおよびＥｄｇｅＲ＿Ａｎは記録ヘッド４３３０Ａに関する次の走査のためのデータの左端および右端を指し、ＥｄｇｅＬ＿ＢｎおよびＥｄｇｅＲ＿Ｂｎは記録ヘッド４３３０Ｂに関する次の走査のための印刷データの左端および右端を定義し、ＢｌｏｃｋＬｅｎは、プリンタドライバ１１４が次の走査のための印刷データをブロックごとにプリントバッファ４３２０Ａおよび４３２０Ｂへ送信できるように分割する場合のブロックの幅を定義し、ＢｌｏｃｋＬｅｆｔおよびＢｌｏｃｋＲｉｇｈｔは、現在送信することが検討されている個々のブロックの左アドレスおよび右アドレスを示す。
【０３４２】
上記で指摘した変数の適切な値の代表的な例としては、プリントバッファＡおよびＢの長さとして８インチ、小さなデータのブロックの長さとして０．５インチ、記録ヘッド４３３０Ａと記録ヘッド４３３０Ｂとの間のギャップとして２．５インチ、シフトバッファ領域として７５２カラム、ノズル・オフセット長として３２カラムが挙げられる。現在の走査領域および次の走査領域の長さは、印刷中の実際のデータに依存する。たとえば、図４３Ｏ〜図４３Ｒで与えた例では、現在の走査による印刷データの長さは約３インチであり、それに対して次の走査による印刷領域の長さは８インチである。
【０３４３】
なお、以下の説明で、記録ヘッド４３３０ＡをヘッドＡ、記録ヘッド４３３０ＢをヘッドＢとして、また、プリントバッファ４３２０ＡをプリントバッファＡ、プリントバッファ４３２０ＢをプリントバッファＢとして言及することもある。
【０３４４】
次に、図４４Ｃ〜図４４Ｊのフローチャートを参照し、ホストプロセッサ２３内のＣＰＵ１００によって実行される記憶されたプログラム命令シーケンスに従ってプリンタドライバ１１４によって行われる処理について詳しく説明する。
【０３４５】
最初にステップＳ４４０１で、ホストプロセッサ２３からプリンタ３０へのコマンドによって次の走査方向（往路方向または復路方向）が設定され、ステップＳ４４０２で現在の走査のための印刷データの端が定義される。プリントバッファＡ内の印刷データの左端（ＥｄｇｅＬ＿Ａ）は、”ＥｄｇｅＬ＿Ａｃ（現在の走査の印刷データの左端）−ノズル・オフセット長”に設定される。プリントバッファＡ内の印刷データの右端（ＥｄｇｅＲ＿Ａ）は、”ＥｄｇｅＲ＿Ａｃ（現在の走査の印刷データの右端）＋ノズル・オフセット長”に設定される。プリントバッファＢ内の印刷データの左端（ＥｄｇｅＬ＿Ｂ）は、”ＥｄｇｅＬ＿Ｂｃ（現在の走査の印刷データの左端）−ノズル・オフセット長”に設定される。プリントバッファＢ内の印刷データの右端（ＥｄｇｅＲ＿Ｂ）は、”ＥｄｇｅＲ＿Ｂｃ（現在の走査の印刷データの右端）＋ノズル・オフセット長”に設定される。前述のように、ノズル・オフセット長は、記録ヘッド上のノズルの傾斜に対応する領域についてのプリントバッファ内の記憶位置に対応している。
【０３４６】
ステップＳ４４０４で、プリンタドライバ１１４は、現在の走査方向が往路方向であるか、それとも復路方向であるかを判定する。往路方向への印刷の場合、処理フローはステップＳ４４０５に進み、次の走査の印刷方向が決定される。ステップＳ４４０５で、次の走査の印刷方向が復路方向であると判定された場合、ステップＳ４４０６で、ランプアップ期間中に充填される各プリントバッファの記憶位置に対応するシフト領域の長さを加えることによって端（ＥｄｇｅＬ＿Ａ、ＥｄｇｅＬ＿Ｂ、ＥｄｇｅＲ＿Ａ、ＥｄｇｅＲ＿Ｂ）が調整される。
【０３４７】
ステップＳ４４０７〜Ｓ４４１６で、記録ヘッド４３３０Ａおよび４３３０Ｂのそれぞれについて、次の走査の左端が現在の走査の左端よりも左側にある（プリントバッファの左端部に空き領域が存在することを意味する）かどうかが判定され、そうである場合、印刷データストア４３３５Ａおよび／または４３３５Ｂからプリントバッファ４３２０Ａおよび／または４３２０Ｂへ次の走査のための印刷データが送信され、現在の印刷が往路方向への印刷であるときには、シフト領域を含むプリントバッファの左側が充填される。ステップＳ４４０７〜Ｓ４４１１では、プリントバッファ４３２０Ａがその左端部へのデータ転送のために処理される。次の走査のための印刷データの左端（ＥｄｇｅＬ＿Ａｎ）が、現在の走査に対応するＥｄｇｅＬ＿Ａよりも小さい（即ち、より左側にある）ことが判定されると、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、ＥｄｇｅＬ＿Ａｎ（すなわち、次の走査の左端）のブロック左端アドレスおよび（ＥｄｇｅＬ＿Ａ）−１（すなわち、現在の走査の左端−１）のブロック右端アドレスと共に送信される。次の走査の左端（ＥｄｇｅＬ＿Ａｎ）はその後、Ｅｄｇｅ＿Ａに再設定される（Ｓ４４１１）。処理フローはさらに進み、プリントバッファ４３２０Ｂを処理してその左端部へのデータ送信が可能になるようにする。
【０３４８】
図４４Ｃ〜図４４Ｄ中のすべてのステップの処理が、プリンタドライバ１１４がプリンタ３０のプリントバッファ内のどの場所が空であるかを判定し、その空きの場所へデータを送信することができるように設計されることに留意されたい。したがって、プリンタ３０が、データを受け入れる準備が完了していないことを示すビジー信号を発行する可能性は低い。しかし、プリンタ３０が（たとえば、ヘッドの清掃などの記録動作ではない動作に関連して）ビジー信号を発行した場合、プリンタドライバ１１４は、ビジー信号がクリアされプリンタ３０がデータを受け入れる準備を再び完了するまでデータの送信を停止する。
【０３４９】
プリントバッファ４３２０Ｂは次いでステップＳ４４１２〜Ｓ４４１６で、その左端へのデータ転送のために処理される。次の走査のための印刷データの左端（ＥｄｇｅＬ＿Ｂｎ）が現在の走査に関して設定されたＥｄｇｅＬ＿Ｂよりも小さい（即ち、より左側にある）と判定されると、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、ＥｄｇｅＬ＿Ｂｎ（すなわち、次の走査の左端）のブロック左端アドレスおよび（ＥｄｇｅＬ＿Ｂ）−１（すなわち、現在の走査の左端−１）のブロック右端アドレスと共に送信される。次の走査の左端（ＥｄｇｅＬ＿Ｂｎ）はその後、ＥｄｇｅＬ＿Ｂに再設定される（Ｓ４４１６）。
【０３５０】
ステップＳ４４１７〜Ｓ４４２６では、記録ヘッド４３３０Ａおよび４３３０Ｂのそれぞれについて、次の走査の右端が現在の走査の右端よりも大きい、つまり、次の走査の右端が現在の走査の右端より右側にある（プリントバッファの右端に空き領域が存在することを意味する）かどうかが判定され、そうである場合、印刷データストア４３２５Ａおよび／または４３２５Ｂからプリントバッファ４３２０Ａおよび／または４３２０Ｂへ次の走査のための印刷データが送信され、現在の印刷方向が往路方向であるときにはプリントバッファの右側にデータが充填される。ステップＳ４４１７〜Ｓ４４２１で、プリントバッファ４３２０Ａがその右端へのデータ転送のために処理される。次の走査のための印刷データの右端（ＥｄｇｅＲ＿Ａｎ）がＥｄｇｅＲ＿Ａよりも大きいことが判定されると、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、（ＥｄｇｅＲ＿Ａ）＋１（すなわち、現在の走査の右端＋１）のブロック左端アドレスおよびＥｄｇｅＲ＿Ａｎ（すなわち、次の走査の右端）のブロック右端アドレスと共に送信される。次の走査のブロック右端（ＥｄｇｅＲ＿Ａｎ）はその後、ＥｄｇｅＲ＿Ａに再設定される（Ｓ４４２１）。処理フローはさらに進み、バッファ４３２０Ｂを処理してその右端へのデータ送信が可能になるようにする。
【０３５１】
プリントバッファ４３２０Ｂは次いでステップＳ４４２５〜Ｓ４４２６で、その右端へのデータ転送のために処理される。次の走査のための印刷データの右端（ＥｄｇｅＲ＿Ｂｎ）が現在の走査に関して設定されたＥｄｇｅＲ＿Ｂよりも大きいと判定されると、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、（ＥｄｇｅＲ＿Ｂｎ）＋１（すなわち、現在の走査の右端）のブロック左端アドレスおよびＥｄｇｅＲ＿Ｂｎ（すなわち、次の走査の右端）のブロック右端アドレスと共に送信される。次の走査の右端（ＥｄｇｅＲ＿Ｂｎ）はその後、ＥｄｇｅＲ＿Ｂに再設定される（Ｓ４４２６）。
【０３５２】
前述のステップＳ４４０５〜Ｓ４４２６の動作は、記録ヘッド４３３０Ａおよび４３３０Ｂのランプアップ期間中およびその前に実行される。本発明によれば、プリントバッファ４３２０Ａおよび４３２０Ｂ内のどこに空の格納場所があるかが判定され、これらのプリントバッファの印刷位置を現在の走査による処理よりも前に、ホストプロセッサ２３の印刷データストア１３６からそれぞれのプリントバッファへ印刷データが送信される。
【０３５３】
ステップＳ４４２７〜Ｓ４４３５は、ステップＳ４４０５〜Ｓ４４２６によるデータ転送の後、現在の走査中における印刷データの転送を示している。実際には、ステップＳ４４０５〜Ｓ４４２６でのデータ転送がランプアップ期間の終了時よりも前に完了した場合、印刷データ転送の速度に応じて、ランプアップ期間中にこれらのステップの一部を実際に実行することができる。これらのステップでは、重なり合ったデータがプリントバッファ４３２０Ａのみにあるか、それともプリントバッファ４３２０Ｂのみにあるか、それともプリントバッファ４３２０Ａとプリントバッファ４３２０Ｂの両方にあるかが判定される。プリントバッファ４３２０Ａとプリントバッファ４３２０Ｂの両方に重なり合いがある場合は、これらのステップでさらに、プリントバッファ４３２０Ｂに対するデータをプリントバッファ４３２０Ａに対するデータの前に置くべきか、あるいはその逆にすべきかが判定される。
【０３５４】
図４４Ｅ〜図４４Ｆに示したステップは、プリンタドライバ１１４によって送信されたデータとプリントバッファ１３９内のまだ印刷されていないデータとが重なり合っている可能性があるときに実行される。したがって、プリンタドライバ１１４によるデータの送信は、プリンタ３０からのビジー信号を条件として行われる。ビジー信号がある場合、プリンタドライバ１１４は、ビジー信号がクリアされプリンタ３０が新しい印刷データを受け入れる準備を再び完了するまでデータの送信を停止する。
【０３５５】
したがって、ステップＳ４４２７およびＳ４４２９で、プリンタドライバ１１４は、次の走査の（ＥｄｇｅＬ＿Ａｎ）の値が次の走査の（ＥｄｇｅＲ＿Ａｎ）の値よりも小さく、かつ次の走査の（ＥｄｇｅＬ＿Ｂｎ）の値が次の走査の（ＥｄｇｅＲ＿Ｂｎ）以上であるかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ４３２０Ａのみである。したがって、プリントバッファ４３２０Ａに対する１つの所定の小さなブロックの印刷データが、そのブロックの左ブロックアドレスから右ブロックアドレスまでプリントバッファ４３２０Ａへ送信される（ステップＳ４４３１、図４４Ｇ参照）。次いで、ステップＳ４４２７が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【０３５６】
ステップＳ４４２７およびＳ４４３２で、プリンタドライバ１１４は、次の走査の（ＥｄｇｅＬ＿Ａｎ）の値が次の走査の（ＥｄｇｅＲ＿Ａｎ）の値以上であり、かつ次の走査の（ＥｄｇｅＬ＿Ｂｎ）の値が次の走査の（ＥｄｇｅＲ＿Ｂｎ）の値よりも小さいかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ４３２０Ｂのみである。したがって、プリントバッファ４３２０Ｂに対する１つの所定の小さなブロックの印刷データが、そのブロックの左ブロックアドレスから右ブロックアドレスまでプリントバッファ４３２０Ｂへ送信される（ステップＳ４４３４、図４４Ｈ参照）。次いで、ステップＳ４４２７が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【０３５７】
ステップＳ４４２７およびＳ４４２９で、プリンタドライバ１１４は、次の走査の（ＥｄｇｅＬ＿Ａｎ）が次の走査の（ＥｄｇｅＲ＿Ａｎ）よりも小さく、かつ次の走査の（ＥｄｇｅＬ＿Ｂｎ）が次の走査の（ＥｄｇｅＲ＿Ｂｎ）よりも小さいかどうかを調べる。これらの条件が満たされた場合、プリントバッファ４３２０Ａとプリントバッファ４３２０Ｂの両方に、重なり合ったデータがある。次いでステップＳ４４３０で、プリントバッファ４３２０Ａに対するデータがプリントバッファ４３２０Ｂに対するデータの前に位置しているか、それともその逆であるかが判定される。
【０３５８】
具体的には、ステップＳ４４３０で、（ＥｄｇｅＬ＿Ｂｎ）の値が（ＥｄｇｅＬ＿Ａｎ＋記録ヘッド４３３０Ａと記録ヘッド４３３０Ｂとの間のギャップ）の値以上であるかどうかが判定される。そうである場合、プリントバッファ４３２０Ａに対するデータがプリントバッファ４３２０Ｂに対するデータの前に位置している。したがって、プリントバッファ４３２０Ａに対する小さな所定の印刷データブロックが、ホストプロセッサ２３の印刷データストア１３６からプリントバッファ４３２０Ａへ送信される（ステップＳ４４３１）。一方、ステップＳ４４３０での判定が”ＮＯ”である場合は、プリントバッファ４３２０Ｂに対するデータがプリントバッファ４３２０Ａに対するデータの前に位置していることを示す。したがって、プリントバッファ４３２０Ｂに対する小さな所定の印刷データブロックがホストプロセッサ２３の印刷データストア１３６からプリントバッファ４３２０Ｂへ送信され（ステップＳ４４３４）、制御がステップＳ４４２７に返される。
【０３５９】
ステップＳ４４２７およびＳ４４３２で、（ＥｄｇｅＬ＿Ａｎ）の値が（ＥｄｇｅＲ＿Ａｎ）の値以上であり、かつ（ＥｄｇｅＬ＿Ｂｎ）の値が（ＥｄｇｅＲ＿Ｂｎ）の値以上であると判定されたときは、転送が完了しており、ステップＳ４４３５で次の走査ラインに対する印刷コマンド［ＰＲＩＮＴ］がプリンタ３０へ送信される。
【０３６０】
再び図４４Ｃを参照するとわかるように、ステップＳ４４０４で、現在の走査方向が復路方向であると判定されると、ステップＳ４４４５で、次の走査の印刷方向が判定される。ステップＳ４４４５で、次の走査が往路方向であると判定された場合、ステップＳ４４４６で、ランプアップ期間中に充填される各プリントバッファの格納位置からシフト領域長を減じることによって、エッジ（ＥｄｇｅＬ＿Ａ、ＥｄｇｅＬ＿Ｂ、ＥｄｇｅＲ＿Ａ、ＥｄｇｅＲ＿Ｂ）が調整される。
【０３６１】
ステップＳ４４４７〜Ｓ４４６６で、記録ヘッド４３３０Ａおよび４３３０Ｂのそれぞれについて、次の走査の右端が現在の走査の右端よりも大きい、つまり、次の走査の右端が現在の走査の右端よりも右側にある（プリントバッファの右端に空きの領域が存在することを意味する）かどうかが判定され、そうである場合、印刷データストア４３２５Ａおよび／または４３２５Ｂからプリントバッファ４３２０Ａおよび／または４３２０Ｂへ次の走査の印刷データが送信され、現在の印刷が復路方向印刷であるときには、シフト領域を含むプリントバッファ４３２０Ａおよび／または４３２０Ｂの右側にデータが充填される。ステップＳ４４４７〜Ｓ４４５１で、プリントバッファ４３２０Ａがその右端へのデータ転送のために処理される。次の走査の印刷データの右端（ＥｄｇｅＲ＿Ａｎ）が、現在の走査に対応するＥｄｇｅＲ＿Ａよりも大きいことが判定されると（ステップＳ４４４７）、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、（ＥｄｇｅＲ＿Ａ）＋１（すなわち、現在の走査の右端＋１）のブロック左端アドレスおよびＥｄｇｅＲ＿Ａｎ（すなわち、次の走査の右端）のブロック右端アドレスと共に送信される。次の走査の左端（ＥｄｇｅＲ＿Ａ）はその後、ＥｄｇｅＲ＿Ａに再設定される（Ｓ４４５１）。
【０３６２】
プリントバッファ４３２０Ｂは次いでステップＳ４４５２〜Ｓ４４５６で、その右端へのデータ転送のために処理される。次の走査の印刷データの右端（ＥｄｇｅＲ＿Ｂｎ）が現在の走査に対応するＥｄｇｅＲ＿Ｂよりも大きいと判定されると、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、（ＥｄｇｅＲ＿Ｂ）＋１（すなわち、現在の走査の右端＋１）のブロック左端アドレスおよびＥｄｇｅＲ＿Ｂｎ（すなわち、次の走査の右端）のブロック右端アドレスと共に送信される。次の走査の右端（ＥｄｇｅＲ＿Ｂｎ）はその後、ＥｄｇｅＲ＿Ｂに再設定される（Ｓ４４５６）。
【０３６３】
ステップＳ４４５６〜Ｓ４４５９で、記録ヘッド４３３０Ａおよび４３３０Ｂのそれぞれについて、次の走査の左端が現在の走査の左端よりも小さい、つまり、次の走査の左端が現在の走査の左端よりも左側にある（プリントバッファ４３２０Ａおよび／または４３２０Ｂに対する印刷データストア４３２５Ａおよび／または４３２５Ｂの左端に空きの領域が存在することを意味する）かどうかが判定され、現在の印刷が復路方向への印刷であるときにはプリントバッファ４３２０Ａおよび／または４３２０Ｂの左側にデータが充填される。ステップＳ４４５７〜Ｓ４４６１で、プリントバッファＡが、その左端へのデータ転送のために処理される。次の走査のための印刷データの左端（ＥｄｇｅＬ＿Ａｎ）が、現在の走査に対応するＥｄｇｅＬ＿Ａよりも小さいことが判定されると（ステップＳ４４５７）、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、ＥｄｇｅＬ＿Ａｎ（すなわち、次の走査の左端）のブロック左端アドレスおよび（ＥｄｇｅＬ＿Ａ）−１（すなわち、現在の走査の左端−１）のブロック右端アドレスと共に送信される。次の走査の左端（ＥｄｇｅＬ＿Ａｎ）は次いで、ＥｄｇｅＬ＿Ａに再設定される（Ｓ４４６１）。
【０３６４】
プリントバッファ４３２０Ｂは次いでステップＳ４４６２〜Ｓ４４６６で、その左端へのデータ転送のために処理される。次の走査の印刷データの左端（ＥｄｇｅＬ＿Ｂｎ）が、現在の走査に対応するＥｄｇｅＬ＿Ｂよりも小さいと判定されると、ブロック選択コマンド［ＢＬＯＣＫ］およびデータコマンド［ＤＡＴＡ］がプリンタ３０へ送信される。ブロック選択コマンドは、ＥｄｇｅＬ＿Ｂｎ（すなわち、次の走査の左端）のブロック左端アドレスおよび（ＥｄｇｅＬ＿Ｂ）−１（すなわち、現在の走査の左端−１）のブロック右端アドレスと共に送信される。次の走査の左端（ＥｄｇｅＬ＿Ｂｎ）は次いで、ＥｄｇｅＬ＿Ｂに再設定される（Ｓ４４６６）。
【０３６５】
前述のステップは、記録ヘッド４３３０Ａおよび４３３０Ｂのランプアップ中およびその前に実行される。ステップＳ４４６７〜Ｓ４４７５は、ステップＳ４４４５〜Ｓ４４６６によるデータ転送後、現在の走査中のデータの処理を示す。実際には、ステップＳ４４４５〜Ｓ４４６６でのデータ転送がランプアップ期間の終了時よりも前に完了した場合、印刷データ転送の速度に応じて、ランプアップ期間中にこれらのステップの一部を実際に実行することができる。これらのステップでは、重なり合ったデータがプリントバッファ４３２０Ａのみにあるか、それともプリントバッファ４３２０Ｂのみにあるか、それともプリントバッファ４３２０Ａとプリントバッファ４３２０Ｂの両方にあるかが判定される。プリントバッファ４３２０Ａとプリントバッファ４３２０Ｂの両方に重なり合いがある場合は、これらのステップでさらに、プリントバッファ４３２０Ａに対するデータをプリントバッファ４３２０Ｂに対するデータの前に置くべきか、あるいはその逆にすべきかが判定される。
【０３６６】
したがって、ステップＳ４４６７〜Ｓ４４６９で、プリンタドライバ１１４は、次の走査の（ＥｄｇｅＬ＿Ａｎ）の値が次の走査の（ＥｄｇｅＲ＿Ａｎ）の値よりも小さく、かつ次の走査の（ＥｄｇｅＬ＿Ｂｎ）の値が次の走査の（ＥｄｇｅＲ＿Ｂｎ）の値以上であるかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ４３２０Ａのみである。したがって、プリントバッファ４３２０Ａに対する１つの所定の小さなブロックの印刷データが、そのブロックの左ブロックックアドレスから右ブロックアドレスプリントバッファ４３２０Ａへ送信される（ステップＳ４４７１、図４４Ｉ参照）。次いで、ステップＳ４４６７が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【０３６７】
ステップ４４６７およびＳ４４７２で、プリンタドライバ１１４は、次ので？の（ＥｄｇｅＬ＿Ａｎ）の値が次の走査の（ＥｄｇｅＲ＿Ａｎ）の値以上であり、かつ次の走査の（ＥｄｇｅＬ＿Ｂｎ）の値が次の走査の（ＥｄｇｅＲ＿Ｂｎ）の値よりも小さいかどうかを調べる。これらの条件が満たされた場合、重なり合ったデータがあるのはプリントバッファ４３２０Ｂのみである。したがって、プリントバッファ４３２０Ｂに対する１つの所定の小さなブロックの印刷データが、そのブロックの左ブロックアドレスから右ブロックアドレスまでプリントバッファ４３２０Ｂへ送信される（ステップＳ４４７４、図４４Ｊ参照）。次いで、ステップＳ４４６７が再開され、次の小さなブロックを転送する印刷データの転送が行われる。
【０３６８】
ステップＳ４４６７およびＳ４４６９で、プリンタドライバ１１４は、次の走査の（ＥｄｇｅＬ＿Ａｎ）の値が次の走査の（ＥｄｇｅＲ＿Ａｎ）の値よりも小さく、かつ次の走査の（ＥｄｇｅＬ＿Ｂｎ）の値が次の走査の（ＥｄｇｅＲ＿Ｂｎ）の値よりも小さいかどうかを調べる。これらの条件が満たされた場合、プリントバッファ４３２０Ａとプリントバッファ４３２０Ｂの両方に、重なり合ったデータがある。次いでステップＳ４４７０で、プリントバッファ４３２０Ａに対するデータがプリントバッファ４３２０Ｂに対するデータの前に位置しているか、それともその逆であるかが判定される。
【０３６９】
具体的には、ステップＳ４４７０で、（ＥｄｇｅＲ＿Ｂｎ）の値から記録ヘッド４３３０Ａと記録ヘッド４３３０Ｂとの間のギャップを減じた値がＥｄｇｅＲ＿Ａｎ以下であるかどうかが判定される。そうである場合。プリントバッファ４３２０Ａに対するデータがプリントバッファ４３２０Ｂに対するデータの前に位置している。したがって、プリントバッファ４３２０Ａに対する小さな所定の印刷データブロックが、ホストプロセッサ２３の印刷データストア１３６からプリントバッファ４３２０Ａへ送信される（ステップＳ４４７１）。一方、ステップＳ４４７０での判定が“ＮＯ”である場合は、プリントバッファ４３２０Ｂに対するデータがプリントバッファ４３２０Ａに対するデータの前に位置している。したがって、プリントバッファ４３２０Ｂに対する小さな所定の印刷データブロックがホストプロセッサ２３の印刷データストア１３６からプリントバッファ４３２０Ｂへ送信され（ステップＳ４４７４）、制御がステップＳ４４６７に返される。
【０３７０】
ステップＳ４４６７およびＳ４４７２で、（ＥｄｇｅＬ＿Ａｎ）の値が（ＥｄｇｅＲ＿Ａｎ）の値以上であり、かつ（ＥｄｇｅＬ＿Ｂｎ）の値が（ＥｄｇｅＲ＿Ｂｎ）の値以上であると判定されたときは、転送が完了しており、ステップＳ４４７５で次の走査ラインに対する印刷コマンド［ＰＲＩＮＴ］がプリンタ３０へ送信される。
【０３７１】
図４４Ｇ〜図４４Ｈは、プリントバッファ４３２０Ａおよび４３２０Ｂに対する左ブロックアドレスから右ブロックアドレスへの印刷データ転送に関する図４４ＥのステップＳ４４３１およびＳ４４３４についての詳細なフローチャートである。プリントバッファ４３２０Ａに関しては図４４Ｇを参照するとわかるように、ステップＳ４４７６において、（ＥｄｇｅＬ＿Ａ）として、次の走査の（ＥｄｇｅＬ＿Ａｎ）の値に所定の小さなブロック長を加えた値が設定される。次いで、処理はステップＳ４４７７に入り、次の走査の（ＥｄｇｅＲ＿Ａｎ）の値が（ＥｄｇｅＬ＿Ａ）の値よりも小さいかどうかが判定される。この判定結果が”ＹＥＳ”である場合、ブロックコマンドが、ＥｄｇｅＬ＿Ａｎの左ブロックアドレスとＥｄｇｅＲ＿Ａｎの右ブロックアドレスと共にプリントバッファ４３２０Ａへ送信され（ステップＳ４４７８）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ａへ送信され（Ｓ４４７９）、次の走査のための印刷データの左端（ＥｄｇｅＬ＿Ａｎ）がＥｄｇｅＲ＿Ａｎに設定される（Ｓ４４８０）。ステップＳ４４７７での判定結果が“ＮＯ”である場合は、ブロックコマンドが、ＥｄｇｅＬ＿Ａｎの左ブロックアドレスおよび（ＥｄｇｅＲ＿Ａ）−１の右ブロックアドレスと共にプリントバッファ４３２０Ａへ送信され（ステップＳ４４８１）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ａへ送信され（Ｓ４４８２）、次の走査のための印刷データの左端（ＥｄｇｅＬ＿Ａｎ）がＥｄｇｅＬ＿Ａに設定される（Ｓ４４８３）。
【０３７２】
図４４Ｈは、プリントバッファ４３２０Ｂに対する左ブロックアドレスから右ブロックアドレスへの印刷データ転送に関した図４４Ｅに示したステップＳ４４３４の詳細なフローチャートである。図４４Ｈを参照するとわかるように、ステップＳ４４８６で、（ＥｄｇｅＬ＿Ｂ）の値として、次の走査の（ＥｄｇｅＬ＿Ｂｎ）に所定の小さなブロック長を加えた値が設定される。次いで、処理はステップＳ４４８７に入り、次の走査の（ＥｄｇｅＲ＿Ｂｎ）の値が（ＥｄｇｅＬ＿Ｂ）の値よりも小さいかどうかが判定される。この判定結果が“ＹＥＳ”である場合、ブロックコマンドが、ＥｄｇｅＬ＿Ｂｎの左ブロックアドレスおよびＥｄｇｅＲ＿Ｂｎの右ブロックアドレスと共にプリントバッファ４３２０Ｂへ送信され（ステップＳ４４８８）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ｂへ送信され（Ｓ４４８９）、次の走査のための印刷データの左端（ＥｄｇｅＬ＿Ｂｎ）がＥｄｇｅＲ＿Ｂｎに設定される（Ｓ４４９０）。ステップＳ４４８７において判断結果が“ＮＯ”である場合は、ブロックコマンドが、ＥｄｇｅＬ＿Ｂｎの左ブロックアドレスと（ＥｄｇｅＬ＿Ｂ）−１の右ブロックアドレスと共にプリントバッファ４３２０Ｂへ送信され（ステップＳ４４９１）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ｂへ送信され（Ｓ４４９２）、次の走査の印刷データの左端（ＥｄｇｅＬ＿Ｂｎ）がＥｄｇｅＬ＿Ａに設定される（Ｓ４４９３）。
【０３７３】
図４４Ｉおよび図４４Ｊは、プリントバッファ４３２０Ａに対する右ブロックアドレスから左ブロックアドレスへの印刷データ転送に関する図４４Ｆに示したステップＳ４４７１およびＳ４４７４の詳細なフローチャートである。プリントバッファ４３２０Ａに関して図４４Ｉを参照するとわかるように、ステップＳ４５０６で、（ＥｄｇｅＬ＿Ａ）の値として、次の走査のＥｄｇｅＲ＿Ａｎから所定の小さなブロック長を減じた値が設定される。次いで、処理はステップＳ４５０７に入り、次の走査のＥｄｇｅＬ＿ＡｎがＥｄｇｅＲ＿Ａよりも小さいかどうかが判定される。この判定結果が“ＹＥＳ”である場合、ブロックコマンドが、ＥｄｇｅＬ＿Ａｎの左ブロックアドレスおよびＥｄｇｅＲ＿Ａｎの右ブロックアドレスと共にプリントバッファ４３２０Ａへ送信され（ステップＳ４５０８）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ａへ送信され（Ｓ４５０９）、次の走査のための印刷データの左端（ＥｄｇｅＲ＿Ａｎ）がＥｄｇｅＬ＿Ａｎに設定される（Ｓ４５１０）。一方、ステップＳ４５０７で判定結果が“ＮＯ”である場合は、ブロックコマンドが、（ＥｄｇｅＲ＿Ａ）＋１の左ブロックアドレスとＥｄｇｅＲ＿Ａｎの右ブロックアドレスと共にプリントバッファ４３２０Ａへ送信され（ステップＳ４５１１）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ａへ送信され（Ｓ４５１２）、次の走査のための印刷データの右端（ＥｄｇｅＲ＿Ａｎ）がＥｄｇｅＲ＿Ａに設定される（Ｓ４５１３）。
【０３７４】
図４４Ｊは、プリントバッファ４３２０Ｂに対する右ブロックアドレスから左ブロックアドレスへの印刷データ転送に関して図４４Ｆに示したステップＳ４４７４の詳細なフローチャートである。図４４Ｊにおいて、ステップＳ４５１６で、（ＥｄｇｅＲ＿Ｂ）の値として、次の走査のＥｄｇｅＲ＿Ｂｎから所定の小さなブロック長を減じた値が設定される。次いで、処理はステップＳ４５１７に入り、次の走査のＥｄｇｅＬ＿ＢｎがＥｄｇｅＲ＿Ｂよりも小さいかどうかが判定される。この判定結果が“ＹＥＳ”である場合、ブロックコマンドが、ＥｄｇｅＬ＿Ｂｎの左ブロックアドレスおよびＥｄｇｅＲ＿Ｂｎの右ブロックアドレスと共にプリントバッファ４３２０Ｂへ送信され（ステップＳ４５１８）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ｂへ送信され（Ｓ４５１９）、次の走査の印刷データの左端（ＥｄｇｅＲ＿Ｂｎ）がＥｄｇｅＬ＿Ｂｎに設定される（Ｓ４５２０）。一方、ステップＳ４５１７での判定結果が“ＮＯ”である場合は、ブロックコマンドが、（ＥｄｇｅＲ＿Ｂ）＋１の左ブロックアドレスとＥｄｇｅＲ＿Ｂｎの右ブロックアドレスと共にプリントバッファ４３２０Ｂへ送信され（ステップＳ４５２１）、そのようにアドレスされた印刷データがプリントバッファ４３２０Ｂへ送信され（Ｓ４５２２）、次の走査の印刷データの右端（ＥｄｇｅＲ＿Ｂｎ）がＥｄｇｅＲ＿Ｂに設定される（Ｓ４５２３）。
【０３７５】
図４４Ｋ〜図４４Ｍは、プリンタ３０のＲＯＭ１２２に存在する記憶されたコンピュータ実行可能なプログラムコードに対応する印刷データの転送に関するプリンタ３０内の処理を示すフローチャートである。一般に、これらのステップでは、以下のようにプリンタ動作が行われる。（１）現在の走査によって印刷が開始すると、プリンタはキャリッジの位置およびキャリッジの移動を監視する。（２）受信されたブロックの右端を示す変数の値が現在の走査の左端を示す変数の値よりも小さい場合はただちに、このデータブロックをプリンタバッファに入れる。受信されたブロックの左端を示す変数の値が現在の走査の右端を示す変数よりも大きい場合はただちに、このデータブロックをプリンタバッファに入れる。（３）プリンタドライバによって指定されたブロックが現在の走査のプリンタ領域と重なり合っている場合は、ビジー信号を発行し、プリンタドライバに、指定されたブロック全体が空になるまで待機させる。プリンタドライバによって指定されたブロック全体が空になった場合は、データブロックをプリンタバッファに入れ、ビジー信号を解放して、プリンタがデータを受け入れる準備を完了したことをプリンタドライバに示す。（４）現在の走査が往路方向である場合、プリンタはシフトバッファに格納されたデータを印刷する。現在の走査が復路方向である場合、プリンタはシフトバッファではない領域に格納されたデータを印刷する。図４４Ｋにおいて、判断を行うステップはステップＳ４５４５、Ｓ４５４８、Ｓ４５５０、Ｓ４５５３などであり、これらのステップは、ステップＳ４５４４でプリンタドライバ１１４からのコマンドが受信されたときに順次実行される。ステップＳ４５４５で、受信されたコマンドが方向コマンドであると判定された場合、次の走査方向（すなわち、往路方向または復路方向）が受信され（ステップＳ４５４６）、現在の走査方向および次の走査方向が設定され（ステップＳ４５４７）、制御がステップ４５４８に渡される。ステップＳ４５４４で受信したコマンドがステップＳ４５４８でブロックコマンドであると検出された場合、ステップＳ４５４９のブロックアドレス処理が実行される。このブロックアドレス処理については、図４４Ｌおよび図４４Ｍを参照して詳しく説明する。
【０３７６】
ステップＳ４５４４で受信されたコマンドがステップＳ４５５０でデータコマンドであると判定されると、ステップＳ４５５１で受信された印刷データが、指定されたプリントバッファに入れられ（ステップＳ４５５２）、制御がステップＳ４５５３に渡され、ステップＳ４５５４で受信されたコマンドが印刷コマンドであるかどうかが判定される。ステップＳ４５５３での判定結果が“ＹＥＳ”である場合は、処理はステップＳ４５５４において、現在の走査が往路方向に設定されているかどうかが判定される。設定されている現在の走査方向が往路方向であるときは、印刷は、シフト領域の後に続く記録ヘッドの第１の印刷位置に対応する指定されたプリントバッファの先頭からその指定されたプリントバッファの反対側の端部まで実行されされる（ステップＳ４５５５）。復路方向への走査の場合、記録ヘッドの最後の印刷位置に対応するプリントバッファの他方の端部から、指定されたバッファの先頭へ印刷が実行される。次いで、制御がステップＳ４５４４に返され、プリンタはプリンタドライバ１１４からの他のコマンドを待つ。
【０３７７】
図４４Ｌおよび図４４Ｍは、図４４ＫのステップＳ４５４９のブロックアドレス処理を詳しく示す。図４４Ｌを参照するとわかるように、ステップＳ４５３４でブロックコマンド内のブロック左アドレスおよびブロック右アドレスが受信され、ステップＳ４５３５で、指定されたプリントバッファに現在の走査のための印刷データが残っているかどうかが判定される。ステップＳ４５３５で、プリントバッファに現在の走査のための印刷データが残っていない場合、制御が図４４ＫのステップＳ４５５０に渡され、データコマンドが受信されたかどうかが判定される。そうでない場合、ステップＳ４５３６で、指定されたプリントバッファがプリントバッファＡであるか、それともプリントバッファＢであるかが判定され、ステップＳ４５３７およびＳ４５３８の一方で変数ＸがプリントバッファＡまたはプリントバッファＢに適切に設定され、制御がステップＳ４５３９に渡される。ステップＳ４５３９で、指定されたプリントバッファＸの左端（Ｅｄｇｅ＿Ｘ）が、ＥｄｇｅＬ＿Ｘｃ（すなわち、指定されたプリントバッファ内の現在の走査のための印刷データの左端）からノズル・オフセット長を減じた値に設定され、印刷を行うことができなくなる。指定されたプリントバッファＸの右端（ＥｄｇｅＲ＿Ｘ）が、ＥｄｇｅＲ＿Ｘｃ（すなわち、指定されたプリントバッファ内の現在の走査のための印刷データの右端）にノズル・オフセット長を加えた値に設定され、印刷を行うことができなくなる。次いで、制御がステップＳ４５４０に渡され、現在の走査方向が検査される。
【０３７８】
ステップＳ４５４０での現在の走査方向が往路方向であるとき、指定されたプリントバッファの左端および右端が次の走査のための印刷データをシフトさせるように設定される。したがって、ステップＳ４５４１で、左端（ＥｄｇｅＬ＿Ｘ）がＥｄｇｅＬ＿Ｘにシフト領域長を加えた値に設定され、右端（ＥｄｇｅＲ＿Ｘ）がＥｄｇｅＲ＿Ｘにシフト領域長を加えた値に設定される。現在の走査方向が復路方向であるとき、プリントバッファの終端に定義済みのシフト領域はないので調整は必要とされない。ステップＳ４５４２で次の走査方向が調べられる。ステップＳ４５４２で走査方向が往路方向である場合、ステップＳ４５４３が実行され、次の走査のための印刷データを、指定されたプリントバッファＸに挿入する際のシフトに対処するために、ブロック左アドレス（ＢｌｏｃｋＬｅｆｔ）およびブロック右アドレス（ＢｌｏｃｋＲｉｇｈｔ）がそれぞれ、ＢｌｏｃｋＬｅｆｔにシフト領域長を加えた値およびＢｌｏｃｋＲｉｇｈｔにシフト領域長を加えた値に設定される。
【０３７９】
次いで、処理はステップＳ４５４３から接続子１０−１１を通して図４４ＭのステップＳ４５２５に入る。判定ステップＳ４５２５およびＳ４５２６で、ブロック右アドレス（ＢｌｏｃｋＲｉｇｈｔ）の値がＥｄｇｅＬ＿Ｘ（すなわち、プリントバッファＸ内の印刷データの左端）の値よりも小さいかどうか、あるいはブロック左アドレス（ＢｌｏｃｋＬｅｆｔ）の値がＥｄｇｅＲ＿Ｘ（すなわち、プリントバッファＸ内の印刷データの右端）の値よりも大きいかどうかが判定される。これらの条件のどちらかが真である場合、プリントバッファへ転送すべき次の走査のための印刷データブロックは、印刷データを含むプリントバッファＸの領域の外側にあり、したがって、ただちに転送を実行することができ、制御が図４４ＫのステップＳ４５５０に返され、データコマンドが処理される。
【０３８０】
ステップＳ４５２５とＳ４５２６の両方で判定が“ＮＯ”であるときは、プリントバッファＸ内で次の走査のための印刷データと現在の走査のための印刷データが重なり合っており、処理はステップＳ４５２７に入り、現在の走査方向が往路方向であるかどうかが判定される。ステップＳ４５２７における判定が“ＹＥＳ”である場合、、ブロック右アドレス（ＢｌｏｃｋＲｉｇｈｔ）の値が（ＥｄｇｅＲ＿Ｘ）の値以下であるかどうかが判定される（Ｓ４５２８）。ステップＳ４５２８における判定が“ＹＥＳ”であれば、ブロック印刷データが確実にプリントバッファＸの空の領域に挿入されるように、データコマンドに対する図４４ＫのステップＳ４５５０へのリターンは、ブロック右アドレス（ＢｌｏｃｋＲｉｇｈｔ）が、プリントバッファＸに関連付けされた記録ヘッドの位置（ＨｅａｄＰｏｓ＿Ｘ）よりも小さくなる（ステップＳ４５２９）まで遅延される。ステップＳ４５２８における判定が“ＮＯ”であれば、図４４ＫのステップＳ４５５０へのリターンは、プリントバッファＸに関する記録ヘッドが現在の印刷位置の印刷を終了する（ステップＳ４５３０）まで遅延される。
【０３８１】
ステップＳ４５２７で現在の走査方向が復路方向であると判定されたことに応答する場合、処理はステップＳ４５３１に入り、ブロック左アドレス（ＢｌｏｃｋＬｅｆｔ）の値が（ＥｄｇｅＬ＿Ｘ）の値以上であるかどうかが判定される（Ｓ４５３１）。ステップＳ４５３１での判定が“ＹＥＳ”であれば、ブロック印刷データが確実にプリントバッファＸの空の領域に挿入されるように、データコマンドに対する図４４ＫのステップＳ４５５０へのリターンは、ブロック左アドレス（ＢｌｏｃｋＬｅｆｔ）がＨｅａｄＰｏｓ＿Ｘよりも大きくなる（ステップＳ４５３２）まで遅延される。一方、ステップＳ４５３１での判定が“ＮＯ”であれば、図４４ＫのステップＳ４５５０へのリターンは、プリントバッファＸに関する記録ヘッドが現在の印刷位置の印刷を終了する（ステップＳ４５３３）まで遅延される。
【０３８２】
本発明によれば、現在の走査時にホストプロセッサ２３からプリントバッファ１３９へ次の走査のための印刷データを転送することによって、プリントバッファ１３９と同じサイズの独立の受信バッファが不要になり、印刷データ転送効率が高まる。さらに、シフト領域のサイズは固定されず、各印刷タスクごとに［ＤＥＦＩＮＥ＿ＢＵＦ］コマンドによって設定され、そのため、プリンタ３０の記憶容量に応じてシフト領域サイズを選択することができる。
【０３８３】
さらに、どのトッププロセッサの間でデータを転送する際にもプリンタバッファシフト領域技術を適用することができる。図４４Ｎは、プリンタドライバとプリンタコントローラとの間での印刷データの転送にシフトバッファ技述が適用される、本明細書で説明した実施形態を８５０で示している。また、参照番号８６０は、プリンタコントローラとプリントエンジンの間での印刷データの転送にもシフトバッファ技術が適用できることを示している。
１０．０  いくつかの異なる解像度によるマルチヘッド印刷
プリンタ３０が複数の記録ヘッドを有することと、解像度に影響を及ぼすコマンドが各記録ヘッドへ独立に送信されるソフトウェアアーキテクチャとのために、プリンタ３０は、各記録ヘッドごとに異なる解像度で印刷することができ、かつそのように印刷するように制御することができ、そのため、あるページの印刷データが、より高い解像度が望まれる印刷情報とより低い解像度が適切な印刷データとが混合した印刷情報を含む場合に、全体的な印刷効率が高まる。
【０３８４】
一般的に言えば、本節では、第１および第２の記録ヘッドの解像度が互いに独立に制御されるように少なくとも第１の記録ヘッドと第２の記録ヘッドとを有するプリンタの制御について説明する。第１．０節で説明したように、プリンタ３０は、それぞれ、１３０ａおよび１３０ｂとして指定された、２つのインクジェット記録ヘッドＡおよびＢを含む。第３．０節で説明したように、ソフトウェアアーキテクチャは、印刷解像度に影響を与えるホストプロセッサ２３から送信されるコマンドを含む。印刷は、ホストプロセッサ２３からプリンタ３０内のプリントバッファ１３９へ画像データを送信し（［ＤＡＴＡ］コマンドを使用する）、その後で［ＰＲＩＮＴ］印刷実行コマンドを送信することによって行われる。印刷解像度の制御は、インク滴サイズを変更するコマンド（［ＤＲＯＰ］コマンド）、印刷速度を選択するコマンド（［ＳＰＥＥＤ］コマンド）、ノズル駆動シーケンスを選択するコマンド（［ＳＥＬＥＣＴ＿ＰＵＬＳＥ］コマンド）、プリントバッファ１３９から画像データを読み出すための読出し順序を選択するコマンド（［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］コマンド）を送信することによって行われる。
【０３８５】
各記録ヘッドが印刷を行う解像度は、ユーザ入力によってマニュアルで決定することも、あるいはたとえば、記録ヘッド１３０ａおよび１３０ｂの相対的なヘッド構成、印刷データの内容、記録（または印刷）媒体の種類に基づいて自動的に決定することもできる。この目的のためにプリンタドライバ１１４にはユーザインタフェースが設けられている。
【０３８６】
プリンタに関しては、プリンタ３０は、記録ヘッド１３０ａおよび１３０ｂのそれぞれの解像度を独立に設定するコマンドを受信し、選択された解像度でプリントアウトを行う。
【０３８７】
図４５Ａは、いくつかの異なるヘッドごとにそれぞれの異なる解像度を用いた場合のプリントアウトの利点について説明するための図である。図４５Ａにおいて、参照番号４００は、いくつかの異なる種類の混合印刷情報を含む記録媒体４０１上の印刷済みシートを示す。領域４０２ａ、４０２ｂ、４０２ｃ、４０２ｄは、主として、低解像度が適切な黒領域と白領域とからなるテキスト領域である。一方、領域４０４は、高解像度が望まれるカラー画像やグラフィックや線画などの非テキスト領域を表す。したがって、図４５Ａでわかるように、プリントアウト４００は混合印刷情報からなり、このうちのいくつかの情報は高解像度で印刷する必要があり、それに対して他の情報については低解像度が適切である。印刷情報は一枚の記録媒体４０１上で混合され、領域４０４や４０２ｂなどいくつかの場合には、プリンタ３０の走査方向における水平プリントバンドを横切って混合される。
【０３８８】
参照番号４０５は領域４０２ａの部分の拡大図である。拡大図４０５は、構成の異なる記録ヘッド１３０ａおよび１３０ｂを示す。具体的には、記録ヘッド１３０ａは、イエロインク用の２４個のノズルと、マゼンタインク用の２４個のノズルと、シアンインク用の２４個のノズルと、黒インク用の６４個のノズルとで垂直方向に構成されたイエロノズルと、マゼンタノズルと、シアンノズルと、黒ノズルとを含む。記録ヘッド１３０ｂは、黒インク専用の１２８個のノズルを含む。したがって、記録ヘッド１３０ａと記録ヘッド１３０ｂは構成が異なり、記録ヘッド１３０ａは高解像度カラー画像を印刷するように構成され、それに対して記録ヘッド１３０ｂは白黒画像のみを印刷するように構成される。もちろん、一方の記録ヘッドが高解像度画像を印刷するように構成され、それに対して他方が低解像度画像を印刷するように構成されるような記録ヘッド１３０ａおよび１３０ｂに関した他の構成も可能である。
【０３８９】
領域４０２ａは、低解像度が適切なテキスト領域であるので、領域４０２の印刷は記録ヘッド１３０ｂによって行われる。この構成は参照番号４０５で示されており、記録ヘッド１３０ｂからの１つのバンド４０６が斜線で強調されて示されている。この解像度で印刷するときは、プリンタ３０が、記録ヘッド１３０ｂを大きなサイズの液滴を吐出するモードに設定するよう命令され、記録ヘッド１３０ｂのヘッド構成に応じ、かつ選択された解像度に応じて、プリントバッファ１３９からの印刷データ読出し順序が選択される。これらのステップについては、以下で図４５Ｂのフローチャートを参照して詳しく説明する。
【０３９０】
領域４０２ａとは異なり、領域４０４は高解像度プリントアウトを必要とする領域である。この状況は、バンド４０９のみでの記録ヘッド１３０ａによるプリントアウトを示す４０７の拡大図に示されている。図４５Ｂのフローチャートを参照して詳しく説明するように、参照番号４０９で示したバンドでプリントアウトを実行するときは、記録ヘッド１３０ａが、インクを小さなサイズ液滴で吐出するよう命令され、記録ヘッド１３０ａのヘッド構成に応じ、かつ選択された解像度に応じて、プリントバッファ１３９からのデータ読出し順序が選択される。
【０３９１】
記録媒体４０１に沿って横方向に記録ヘッド１３０ａおよび１３０ｂの走査方向へ混合された領域４０２ｂなどを印刷するときは、２ステップ手順が使用される。一つのステップでは、記録ヘッド１３０ａによって４０９などを順次、バンド印刷する。順次印刷されるバンドの数は、記録ヘッド１３０ａについてのバンド内の印刷ノズルの数と記録ヘッド１３０ｂについてのバンド内のノズルの数との比に対応する。もう一方のステップでは、記録ヘッド１３０ｂからのシングルパス記録が領域４０２ｂで行われる。この２ステッププロセスによって、記録媒体の逆方向搬送を必要とせずに記録媒体４０１を一つ方向へ連続的に進め、領域４０２ｂをプリントアウトすることができる。
【０３９２】
図４５Ｂは、各記録ヘッドの印刷解像度を独立に制御し、それによってプリントアウトを実行するよう命令するために、ホストプロセッサ２３内のプリンタドライバ１１４によって実行されるプロセスステップを示すフローチャートである。一般的に言えば、図４５Ｂに示したプロセスステップは、各ヘッドごとのインク滴サイズを独立に制御し、各記録ヘッドごとのプリントバッファ１３９からの読出し順序を独立に制御することによって印刷解像度を設定する、記憶されたプログラム命令シーケンスである。
【０３９３】
具体的には、ステップＳ４５０１で、ホストプロセッサ２３のユーザが、印刷データを印刷するためのコマンドをアプリケーションから発行し、それによってプリンタドライバ１１４を起動する。プリンタドライバ１１４は実際には、図４５Ａの残りの部分に示したよりも多くの機能を実行するが、印刷解像度の設定に何らかの関係を有する機能のみについて説明する。したがって、ステップＳ４５０２で、プリンタドライバ１１４は、印刷解像度をプリンタドライバ１１４によって自動的に指定すべきであるか、それともユーザによってマニュアルで指定すべきであるかを判定する。ステップ４５０２で、図４６Ａに示した代表的なユーザインタフェース画面などのユーザインタフェースがユーザに表示される。図４６Ａを見ればわかるように、ユーザによってセクション４１０が選択されると、印刷解像度が自動的に指定される。一方、４１１が選択されると、ユーザがマニュアルで印刷解像度を指定する。ここでは、非テキストであるグラフィックスとテキストに別々の解像度を指定することができ、ユーザはテキスト領域と非テキスト領域のそれぞれに関して高速（すなわち、低解像度）と高品質（すなわち、高解像度）のどちらかをマニュアルで指定することができる。
【０３９４】
図４５Ｂに戻るとわかるように、自動指定が選択されている場合、処理フローがステップＳ４５０４に分岐し、プリンタドライバ１１４が自動的にグラフィックス用の解像度を選択し、次いでステップＳ４５０５に進み、プリンタドライバ１１４が自動的にテキスト用の解像度を選択する。グラフィックスおよびテキスト用の解像度の選択は、連続トーン印刷データに基づいて行われ、グラフィックスおよびその他の非テキスト情報の存在と、テキスト情報の存在と、プリントアウト用に選択された記録媒体の種類と、記録ヘッド１３０ａおよび記録ヘッド１３０ｂの相対的な記録ヘッドの構成とに応じて行われる。
【０３９５】
処理フローは次にステップＳ４５０６に戻り、プリンタドライバは、マニュアルで、あるいは自動的に２つの解像度が指定されたかどうかを判定する。２つの解像度が指定されていない場合、処理フローはステップＳ４５０７に進み、両方のヘッドについて一様な解像度で印刷が行われる。一方、２つの解像度が指定されている場合、フローはステップＳ４５０９に進み、各記録ヘッドの印刷解像度を制御し、それによってプリントアウトが実行される。
【０３９６】
したがって、ステップＳ４５０９では、バッファ制御テーブルを定義する。各ヘッドごとに１つのバッファ制御テーブルを選択することができ、それによって各記録ヘッドは、それぞれのプリントバッファから印刷データを読み出すための読出し順序を判定することができる。どのバッファ制御テーブルを使用するかの実際の選択は、この手順における後のステップで初めて行われるが、ステップＳ４５０９では単に、各解像度および各プリントアウト方向についての適切なバッファ制御テーブルが定義される。好ましくは、上記の第３．６節で説明したバッファ制御テーブル定義コマンド［ＤＥＦＩＮＥ＿ＣＯＮＴＲＯＬ］が使用される。
【０３９７】
同様に、ステップＳ４５１０で適切な加熱パルステーブルが定義され、それによって記録ヘッド１３０ａおよび１３０ｂの各ノズルについての駆動シーケンスが制御される。記録ヘッド１３０ａおよび１３０ｂによって使用される実際の加熱パルステーブルはこの時点では選択されず、後の選択時に適切なテーブルが定義される。好ましくは、第３．６節で説明した加熱パルステーブル定義コマンド［ＤＥＦＩＮＥ＿ＰＵＬＳＥ］が使用される。
【０３９８】
処理フローは次いで、ステップＳ４５１１〜Ｓ４５３０（ステップＳ４５２０およびＳ４５２１を除く）に進み、現在の印刷バンドの解像度が判定され、インク吐出液滴サイズ、バッファ読出し順序などの印刷制御条件が設定され、印刷データが送信され、送信された印刷データのプリントアウトが命令される。
【０３９９】
詳細には、ステップＳ４５１１で、特定のバンドまたはバンドの一部のプリントアウトが高解像度プリントアウトであるか、それとも低解像度プリントアウトであるかが判定される。バンドまたはバンドの一部が低解像度プリントアウトである場合、フローはステップＳ４５１２に進み、記録ヘッド１３０ａおよび１３０ｂのそれぞれについて適切なインク吐出滴サイズが設定される。図４５Ａに示す例の場合、記録ヘッド１３０ｂの液滴サイズは大きなサイズに設定され、記録ヘッド１３０ａの液滴サイズは小さなサイズに設定される。好ましくは、第３．６節で説明した液滴サイズコマンド［ＤＲＯＰ］が使用される。
【０４００】
ステップＳ４５１４で、プリンタドライバ１１４は、低解像度プリントアウトに対応する高印刷速度を選択する。好ましくは、第３．６節で定義した速度選択コマンド［ＳＰＥＥＤ］が使用される。
【０４０１】
ステップＳ４５１６で、選択された低解像度に応じてプリントバッファ１３９の読出し順序のオフセットが選択される。具体的には、ステップＳ４５１６で、ステップＳ４５０９で設定されたバッファ制御テーブルのうちの１つが選択される。好ましくは、第３．６節で定義したバッファ制御テーブル選択コマンド［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］が使用される。
【０４０２】
ステップＳ４５１７で、画像データが、双方向インタフェースを介してプリンタドライバ１１４からプリンタ３０へ、第３．６節で論じたようにブロックごとに送信される。印刷データのバンド全体がプリンタ３０へ送信された後、プリンタドライバ１１４は、印刷実行コマンド［ＰＲＩＮＴ］を送信することによってステップＳ４５１９でバンドのプリントアウトを開始する。次いでステップＳ４５２０で、他のバンドを印刷する必要があるかどうかが判定され、それに応じて、処理フローはステップＳ４５１１に戻るか、あるいはステップＳ４５２１で終了する。
【０４０３】
ステップＳ４５１１に戻るとわかるように、印刷情報の高解像度バンドを送信し印刷する場合、ステップＳ４５２２〜Ｓ４５３０がプリンタドライバ１１４で実行され、低解像度ステップについてのＳ４５１２〜Ｓ４５１９の補足ステップが実行される。したがって、ステップＳ４５２２で小さな液滴サイズが設定され、ステップＳ４５２５で高解像度に対応する低印刷速度が設定され、ステップＳ４５２６で高解像度でのノズル駆動シーケンスが選択され、ステップＳ４５２７で、１つの定義済みバッファ制御オフセットテーブルを選択することによってプリントバッファ１３９からの読出し順序が選択され、ステップＳ４５２９で、高解像度の画像データが１バンドずつプリンタ３０へ送信され、ステップＳ４５３０で、完全に送信されたバンドのプリントアウトが開始される。
【０４０４】
第２の実施形態によれば、記録ヘッドは、逆方向へのシート送りを必要とせずに水平印刷バンドの画素をプリンタ３０の走査方向にそれぞれの異なる解像度で印刷し、それによって全体的な印刷効率を高めるようにしている。
【０４０５】
この実施形態については以下で、複数の記録ヘッドを有するプリンタに関して説明するが、後述の実施形態を単一の記録ヘッドによる印刷と共に使用してもかなりの効果が得られることに留意されたい。
【０４０６】
前述のように、記録ヘッドが印刷を行う解像度は、ユーザ入力によってマニュアルで決定することも、あるいはたとえば、印刷データの内容または記録媒体の種類に基づき、あるいは複数の記録ヘッドシステムの場合には記録ヘッド１３０ａおよび記録ヘッド１３０ｂの相対的なヘッド構成に基づいて自動的に決定することもできる。
【０４０７】
従って、プリンタ３０は、記録ヘッド１３０ａおよび１３０ｂのそれぞれについて独立に解像度を設定するためのコマンドを受信し、設定された解像度でプリントアウトを実行することには利点がある。
【０４０８】
図４６Ｂは、記録ヘッドを複数の解像度でプリントアウトを実行するように制御することの利点について説明する図である。図４６Ｂにおいて、参照番号４２０は様々な種類の印刷情報を有する記録媒体４２１上の印刷済みシートを示す。領域４２０ａ、４２０ｂ、４２０ｃ、４２０ｄは、主として白黒領域からなるテキスト領域である。したがって、これらのテキスト領域に含まれる情報は低解像度で十分に印刷される。これに対して、領域４２４は、高解像度が好ましいカラー画像やグラフィックや線画などの非テキスト領域である。領域４２０ｂおよび４２４がプリンタ３０の走査方向で共通の水平印刷バンド上に配置されることに留意されたい。
【０４０９】
参照番号４２５は、領域４２０ｂの一部の拡大図である。拡大図４２５は記録ヘッド１３０ａおよび１３０ｂを示す。記録ヘッド１３０ａおよび１３０ｂはそれぞれ、イエロインク用の２４個のノズルと、マゼンタインク用の２４個のノズルと、シアンインク用の２４個のノズルと、黒インク用の６４個のノズルとで垂直方向に構成されたイエロノズルと、マゼンタノズルと、シアンノズルと、黒ノズルとを含む。もちろん、記録ヘッド１３０ａおよび１３０ｂが他の構成をとることもできる。
【０４１０】
領域４２０ｂは、低解像度が適当なテキスト領域であるので、領域４２０ｂの印刷は４２５で示したように低解像度／高速モードで行われる。領域４２５では、１つの低解像度バンド４２６が、記録ヘッド１３０ａおよび１３０ｂによって印刷され、このバンドは斜線で強調して示されている。この解像度で印刷を行うときは、プリンタ３０が、記録ヘッド１３０ａおよび１３０ｂを大きなサイズの液滴吐出モードに設定するよう命令され、選択された解像度に応じてプリントバッファ１３９から読み出される印刷データが選択される。これらのステップについては、以下で図４６Ｃのフローチャートを参照して詳しく説明する。
【０４１１】
領域４２０ｂとは異なり、領域４２４は高解像度プリントアウトを必要とする領域である。この状況は、バンド４２９のみでの記録ヘッド１３０ａおよび１３０ｂによるプリントアウトを示す拡大図４２７に示されている。図４６Ｃのフローチャートを参照して詳しく説明するように、参照番号４２９で示したバンドでプリントアウトを実行するときは、記録ヘッド１３０ａおよび１３０ｂが、インクを小さな液滴サイズで吐出するよう命令され、選択された解像度に応じて、プリントバッファ１３９から読み出されるデータが選択される。
【０４１２】
記録媒体４２１に沿って横方向に記録ヘッド１３０ａおよび１３０ｂの走査方向に関して混合された領域４２０ｂや領域４２４などを印刷するときは、２ステップ手順が使用される。第１のステップでは、記録ヘッド１３０ａおよび１３０ｂによってバンド４２９などが順次、印刷される。順次印刷されるバンド４２９などのバンドの数は、シアンインク、マゼンタインク、イエロインクのそれぞれについてのインク吐出ノズルの数（この場合は”２４”）と、黒色インクに使用されるノズルの数（この場合は”６４”）との比に対応する。第２のステップでは、記録ヘッド１３０ａおよび１３０ｂからのシングルパス記録が行われ、それによって領域４２０ｂのバンドが印刷される。第２のステップ中には、インクが記録ヘッド１３０ａおよび１３０ｂの黒ノズルから低解像度で吐出される。この２ステッププロセスによって、記録媒体の逆方向搬送を必要とせずに記録媒体４２０を一方向へ進め、領域４２０ｂおよび４２４の可変解像度プリントアウトを実行することができる。
【０４１３】
図４６Ｃは、各記録ヘッドの印刷解像度を制御し、それによってプリントアウトを実行するよう命令するために、ホストプロセッサ２３内のプリンタドライバ１１４によって実行されるプロセスステップを示すフローチャートである。一般的に言えば、図４６Ｃに示したプロセスステップは、各記録ヘッドごとのインク滴サイズを制御し、各記録ヘッドごとのプリントバッファ１３９からの読出し順序を制御することによって印刷解像度を設定する、記憶されたプログラム命令シーケンスである。
【０４１４】
具体的には、ステップＳ４６０１で、ホストプロセッサ２３のユーザが、印刷データを印刷するためのコマンドをアプリケーションから発行し、それによってプリンタドライバ１１４を起動する。プリンタドライバ１１４は実際には、図４６Ａの残りの部分に示したよりも多くの機能を実行するが、印刷解像度の設定に何らかの関係を有する機能のみについて説明する。したがって、ステップＳ４６０２で、プリンタドライバ１１４は、印刷解像度をプリンタドライバ１１４によって自動的に指定すべきであるか、それともユーザによってマニュアルで指定すべきであるかを判定する。ステップＳ４６０２で、図４６Ａに示した代表的なユーザインタフェース画面などのユーザインタフェースがユーザに表示される。図４６Ａを見ればわかるように、ユーザによってセクション４１０が選択されると、印刷解像度が自動的に指定される。一方、セクション４１１が選択されると、ユーザがマニュアルで印刷解像度を指定する。非テキストであるグラフィックスとテキストに別々の解像度を指定することができ、ユーザは、テキスト領域と非テキスト領域のそれぞれに関して高速（すなわち、低解像度）と高品質（すなわち、高解像度）のどちらかをマニュアルで指定することができる。
【０４１５】
図４６Ｃに戻るとわかるように、自動指定が選択されている場合、処理フローがステップＳ４６０４に進み、プリンタドライバ１１４が自動的にグラフィックス用の解像度を選択し、次いでステップＳ４６０５に進み、プリンタドライバ１１４が自動的にテキスト用の解像度を選択する。グラフィックスおよびテキスト用の解像度の選択は、連続トーン印刷データに基づいて行われ、グラフィックスおよびその他の非テキスト情報の存在と、テキスト情報の存在と、プリントアウト用に選択された記録媒体の種類とに基づいて行われ、本明細書で説明する印刷システムなどの複数の記録ヘッドシステムの場合はさらに、記録ヘッド１３０ａおよび記録ヘッド１３０ｂの相対的な記録ヘッドの構成に応じて行われる。
【０４１６】
処理フローは次にステップＳ４６０６に進み、プリンタドライバ１１４は、マニュアルで、あるいは自動的に２つの解像度が指定されたかどうかを判定する。２つの解像度が指定されていない場合、処理フローはステップＳ４６０７に分岐し、両方のヘッドについて一様な解像度で印刷が行われる。一方、２つの解像度が指定されている場合、処理フローはステップＳ４６０９に進み、各記録ヘッドの印刷解像度を制御し、それによってプリントアウトが実行される。
【０４１７】
したがって、ステップＳ４６０９では、バッファ制御テーブルが定義される。各ヘッドごとに１つのバッファ制御テーブルを選択することができ、それによって各記録ヘッドは、それぞれのプリントバッファから印刷データを読み出すための読出し順序を判定することができる。どのバッファ制御テーブルを使用するかの実際の選択は、この手順における後のステップで初めて行われるが、ステップＳ４６０９で単に、各解像度および各プリントアウト方向についての適切なバッファ制御テーブルが定義される。好ましくは、第３．６節で説明したバッファ制御テーブル定義コマンド［ＤＥＦＩＮＥ＿ＣＯＮＴＲＯＬ］が使用される。
【０４１８】
同様に、ステップＳ４６１０で適切な加熱パルステーブルが定義され、それによって記録ヘッド１３０ａおよび１３０ｂの各ノズルについての駆動シーケンスが制御される。記録ヘッド１３０ａおよび１３０ｂによって使用される実際の加熱パルステーブルはこの時点では選択されず、後の選択時に適切なテーブルが定義される。好ましくは、第３．６節で説明した加熱パルステーブル定義コマンド［ＤＥＦＩＮＥ＿ＰＵＬＳＥ］が使用される。
【０４１９】
処理フローは次いで、ステップＳ４６１１〜Ｓ４６３０（ステップＳ４６２０およびＳ４６２１を除く）に進み、現在の印刷バンドの解像度が判定され、インク吐出液滴サイズ、バッファ読出し順序などの印刷制御条件が設定され、印刷データが送信され、送信された印刷データのプリントアウトが命令される。
【０４２０】
詳細には、ステップＳ４６１１で、特定のバンドまたはバンドの一部のプリントアウトが高解像度プリントアウトであるか、それとも低解像度プリントアウトであるかが判定される。バンドまたはバンドの一部が低解像度プリントアウトである場合、フローはステップＳ４６１２に進み、ヘッド１３０ａおよび１３０ｂのそれぞれについて適切なインク吐出滴サイズが設定される。図４４に示した例の場合、記録ヘッド１３０ａおよび１３０ｂの液滴サイズは大きなサイズに設定される。好ましくは、第３．６節で説明した液滴サイズコマンド［ＤＲＯＰ］が使用される。
【０４２１】
ステップＳ４６１４で、プリンタドライバ１１４は、低解像度プリントアウトに対応する高印刷速度を選択する。好ましくは、第３．６節で定義した速度選択コマンド［ＳＰＥＥＤ］が使用される。
【０４２２】
ステップＳ４６１６で、選択された低解像度に応じてプリントバッファ１３９の読出し順序のオフセットが選択される。具体的には、ステップＳ４６１６で、ステップＳ４６０９で設定されたバッファ制御テーブルのうちの１つが選択される。好ましくは、第３．６節で定義したバッファ制御テーブル選択コマンド［ＳＥＬＥＣＴ＿ＣＯＮＴＲＯＬ］が使用される。
【０４２３】
ステップＳ４６１７で、画像データが、双方向インタフェースを介してプリンタドライバ１１４からプリンタ３０へ、第３．６節で論じたようにブロックごとに送信される。印刷データのバンド全体がプリンタ３０へ送信された後、プリンタドライバ１１４は、印刷実行コマンド［ＰＲＩＮＴ］を送信することによってステップＳ４６１９でバンドのプリントアウトを開始する。次いでステップＳ４６２０で、他のバンドを印刷する必要があるかどうかが判定され、それに応じて、処理フローはステップＳ４６１１に戻るか、あるいはステップＳ４６２１で終了する。
【０４２４】
ステップＳ４６１１に戻り、印刷情報の高解像度バンドを送信し印刷する場合、ステップＳ４６２２〜Ｓ４６３０がプリンタドライバ１１４で実行され、低解像度に関するステップであるＳ４６１２〜Ｓ４６１９の補足ステップが実行される。したがって、ステップＳ４６２２では小さな液滴サイズが設定され、ステップＳ４６２４で適切な大きさのバッファサイズが設定され、ステップＳ４６２５で高解像度に対応する低印刷速度が設定され、ステップＳ４６２６で高解像度でのノズル駆動シーケンスが選択され、ステップＳ４６２７で、１つの定義済みバッファ制御オフセットテーブルを選択することによってプリントバッファ１３９からの読出し順序が選択され、ステップＳ４６２９で、高解像度の画像データが１バンドずつプリンタ３０へ送信され、ステップＳ４６３０で、完全に送信されたバンドのプリントアウトが開始される。
【０４２５】
プリンタ３０を全体的に見ると、図４７は、印刷解像度を独立に設定するためにプリンタ３０によって実行されるプロセスステップを示すフローチャートである。すなわち、ステップＳ４７０１で、プリンタ３０は制御コマンドを受信し、プリンタの各記録ヘッドを高印刷解像度または低印刷解像度が可能なように準備する。前述のように、このような制御コマンドには、印刷速度、吐出される液滴サイズ、ノズル駆動シーケンス、プリントバッファ読出し順序を設定するコマンドが含まれる。
【０４２６】
ステップＳ４７０２で、プリンタドライバ１１４から印刷データが受信され、それに続いてステップＳ４７０３で、印刷コマンドが受信される。その後ステップＳ４７０４で、高印刷解像度が命令されているか、それとも低印刷解像度が命令されているかに応じて、ステップＳ４７０２で受信された印刷データがステップＳ４７０１のコマンドに応じて印刷される。したがって、ステップＳ４７０５で示したように、高印刷解像度の場合、低速度で、小さな液滴サイズ、高解像度ノズルパルスシーケンステーブル、高解像度バッファ制御読出し順序を用いて印刷データが印刷される。同様に、ステップＳ４７０６で、低解像度プリントアウトの場合、高速度で、大きな液滴サイズ、低解像度ノズルパルスシーケンステーブル、低解像度バッファオフセット読出し順序を用いてプリントアウトが実行される。いずれの場合も、処理フローはステップＳ４７０７に進み、次の印刷コマンドシーケンスを待つ。
【０４２７】
図４６Ｂおよび図４６Ｄに関して説明したように、ステップＳ４７０５およびステップＳ４７０６で説明した２組の印刷特性を共に使用して、走査方向で単一の印刷バンド上に印刷データを印刷するように一つの記録ヘッドを制御するようにしても良い。
１１．０  代替インクの選択
前述のように、プリンタ３０は、複数種類のインクを一つの記録媒体上に出力するように構成される。この特徴によって、プリンタ３０は、染料ベースの黒インクと顔料ベースの黒インクとの両方を使用して画像を印刷することができるという利点がある。
【０４２８】
本発明の好適な実施形態では、染料ベースの黒インクがいくつかの異なる色のインクと共に使用され、カラー印刷が容易である。そのため、染料ベースの黒インクを使用してカラー画像内に黒画素を印刷する際、この黒インクによって、カラー画像はほぼ均一な光学濃度を維持することができる。
【０４２９】
これに対して、顔料ベースの黒インクを使用してカラー画像内に黒画素を印刷すると、この黒インクによってカラー画像の他の領域とのコントラストが鮮明になり、そのためカラー画像の均一さが損なわれる。しかし、黒印刷領域と異なる色の領域との間に顕著なコントラストを維持することが望ましい多数の事例が存在する。これらの事例のうちで最も顕著な事例は、黒いテキストの白い記録媒体上への印刷である。したがって、顔料ベースの黒インクはテキストデータを印刷するために使用されることが好ましい。
【０４３０】
したがって、前述の実施形態では、黒目標画素を印刷するために染料ベースの黒インクを選択するか、それとも顔料ベースの黒インクを選択するかは、黒目標画素を囲む画像データの内容に基づいて決定される。具体的には、黒目標画素が異なる色の画像データ領域に対応すると判定された場合、この目標画素は染料ベースの黒インクを使用して印刷される。そうでない場合、目標画素は、顔料ベースの黒インクを使用して印刷される。黒画素が異なる色の画像データ領域に対応するかどうかを判定する１つの方法について、図４９Ａを参照して以下に説明する。好ましくは、そのような判定は、画像内容の正確な特徴付けを行うことができるように多値画像データに基づいて行われる。
【０４３１】
様々なインクの前述の視覚的特性は記録媒体へのインクの浸透度に依存するので、記録媒体の種類は、特定の印刷ジョブに染料ベースの高浸透性黒インクまたはその他の高浸透性黒インクが適しているか、あるいは顔料ベースのインクなどの低浸透性黒インクが適しているかを判定するうえで重要な役割を果たす。
【０４３２】
たとえば、普通紙はインク吸収品質が良くないので、インクが記録媒体内で有効に結合して均一な再生色を生成することができなくなるので、高浸透性の黒インクと共に使用するのは望ましくない。一方、様々な色の高浸透性インクを付着させた場合により均一な結合がなされる特殊コート紙が利用可能となっている。残念なことに、そのような特殊コート紙は低浸透性インクとの併用には適していない。
【０４３３】
上記に鑑みて、記録媒体上に画素を印刷するために使用されるインクの種類は、画素データを含む画像の種類とインクが配置される記録媒体との両方に依存することが好ましい。
【０４３４】
図４８は、記録媒体の種類および画像内容に基づいてインクを選択する方法について説明するフローチャートである。一般に、第１のインクと第２のインクのどちらかを使用して、多値画像データに対応する画素を記録媒体上に印刷するようにインクジェットプリンタを制御するために、記録媒体が普通紙であるか、それとも特殊コート紙であるかが判定され、記録媒体が特殊コート紙と判定された場合、プリンタは第１のインクを使用して目標画素を印刷するよう命令される。一方、記録媒体が普通紙と判定された場合は、目標画素が異なる色づけがなされる領域に対応するかどうかが判定される。目標画素が異なる色づけのなされる領域に対応する場合、プリンタは、第１のインクを使用して目標画素を印刷するよう命令される。逆に、目標画素が異なる色づけのなされる領域には対応しない場合、プリンタは第２のインクを使用して目標画素を印刷するよう命令される。
【０４３５】
詳細には、ステップＳ４８０１から処理フローが開始し、用紙の種類が判定される。図示したように、好ましい実施形態では、普通紙と特殊コート紙のどちらかを使用することが企図される。好ましくは、特殊コート紙は、第１．５節で説明した”高解像度”紙ＨＲ−１０１である。
【０４３６】
用紙の種類が特殊コート紙と判定された場合、処理フローはステップＳ４８０２に進み、高浸透性インクを使用して黒画素データを印刷すべきであると判定される。この判定は、画像の種類にかかわらず常に、高浸透性黒インクの方が特殊コーティング記録媒体上に黒画素データを印刷するのに適しているという仮定に基づいて下される。
【０４３７】
ステップＳ４８０１で、用紙の種類が普通紙と判定された場合、処理フローはステップＳ４８０３に進み、印刷される画像のカラー領域内に黒目標画素が存在するかどうかが判定される。そうである場合、前述のように、処理フローはステップＳ４８０２に進む。そうでない場合、フローはステップＳ４８０４に進み、低浸透性黒インクを使用して目標画素を印刷することが決定される。
【０４３８】
本発明の好適な実施形態によれば、ステップＳ４８０３の判定は、目標画素を囲む画像画素を調べることによって下される。図４９Ａは、この特定の実施形態について説明するための図である。
【０４３９】
図４９Ａは、画像データ４１６の５×５グリッド内の黒目標画素４１５を示す。グリッド４１６の各区画は単一の画像画素を表す。好ましくは、各画像画素は、それぞれ、画像画素の赤成分（Ｒ）、緑成分（Ｇ）、青成分（Ｂ）を表す、３つの８ビット値で表される。黒目標画素４１５が異なる色の領域に配置されているかどうかを判定するために、以下の数式を使用してグリッド４１６内の各画素の赤成分、緑成分、青成分が比較される。
【０４４０】
｜Ｒ−Ｂ｜＜α；｜Ｂ−Ｇ｜＜β；および｜Ｇ−Ｒ｜＜γ
上式で、α、β、γは比較的小さな値である。
【０４４１】
グリッド４１６内の各画素について各式が満たされる場合、黒目標画素４１５は異なる色領域には存在しないと判定される。また、別の法として、ステップＳ４８０３で、目標画素が異なる色の領域内には存在しないことを判定するために、グリッド４１６内の各画素の赤成分、緑成分、青成分に関し、Ｒ＝Ｇ＝Ｂという関係を満たすことを必要条件としてもよい。しかし、この方法では、ノイズ、不十分なスキャンなどのために画像データのエラーが発生する可能性が高い。したがって、α、β、γを上記で示したように使用して、データエラーに関する小さな公差が与えられる。もちろん、ステップＳ４８０３で他の方法を使用して、黒目標画素４１５が異なる色の領域内にあるかどうかを判定することができる。
【０４４２】
前述の実施形態で異なる色の領域を判定するために多値データが使用されることには利点がある。これに対して、２値データを使用して異なる色の領域を判定するシステムは、オリジナル画像データの５０％グレー領域を、黒画素と白画素が交互に入れ代わる領域からなるものと解釈する恐れがある。そのため、「黒」領域を印刷するために不適切なインクが使用される恐れがある。
【０４４３】
代替インクの選択に関する上記の説明では、高浸透性黒インクおよび低浸透性黒インクに焦点を当てているが、色、浸透特性、または粘度や密度などその他の特性が互いに異なる第１のインクおよび第２のインクと共に前述の黒インクを使用することが企図されることを理解されたい。
【０４４４】
さらに、上記では普通紙と特殊コーティング高解像度用紙について論じたが、適切なインクの判定は任意の媒体種類に基づいて下すことができる。企図される他の媒体としては、透明シート、光沢紙、光沢フィルム、バックプリントフィルム、布シート、Ｔシャツ転写、バブルジェット用紙、挨拶状ストック、パンフレット紙などが含まれる。なお、用紙の種類は、プリンタ３０内に配置された用紙センサによって検出するか、あるいは表示画面２２上に表示されるユーザインタフェースを通して入力するか、あるいはプリンタ３０上に配置されたボタンを介して入力することができる。
【０４４５】
好ましい実施形態では、プリンタドライバ１１４が、図４８のフローを実行するコンピュータ実行可能なステップを含むことにも留意されたい。もちろん、このステップ全体をプリンタ３０のＲＯＭ１２２内に含めるか、あるいはホストプロセッサ２３のコンピュータ読取り可能なメモリとプリンタ３０のコンピュータ読取り可能なメモリの両方に記憶することができる。
１１．１  ＣＭＹＫ黒または顔料黒の選択
ＰＣＢｋ（プロセスブラック）を使用して記録媒体上に黒画素を印刷できることが注目されている。別の方法として、そのような画素を印刷するために顔料ベースの黒インクおよび染料ベースの黒も使用されている。プリンタ３０は、顔料ベースの黒インク、またはシアン、マゼンタ、イエロ、黒の染料ベースインクの組合せを使用して、黒画素の選択可能な印刷を行うことによって付加的な機能を提供する。
【０４４６】
これを行うために最初、黒目標画素が異なる色の領域に対応するかどうかが判定される。黒目標画素が異なる色の領域には対応しないと判定された場合、プリンタは、顔料ベースの黒インクを使用して黒目標画素を印刷するよう命令される。そうでない場合、プリンタは、染料ベースの黒インクおよび減法混色の原色各々の染料ベースインクを使用して黒目標画素を印刷するよう命令される。
【０４４７】
図４９Ｂは、前述の特徴について具体的に説明するためのフローチャートである。ステップＳ４９０１で、黒目標画素が色領域に対応するかどうかが判定される。好ましくは、この判定は、黒目標画素に隣接する領域を表す多値データに基づいて下される。そのような方法については、図４９Ａに関して詳しく説明しており、したがって、この点では省略する。
【０４４８】
目標画素が色領域内に存在すると判定された場合、処理フローはステップＳ４９０２に進み、染料ベースの黒インクと染料ベースのシアンインク、マゼンタインク、イエロインクとの組合せを使用して目標画素が印刷される。ステップＳ４９０４に到達した時点では、目標画素が色領域には存在しないことが判定されている。そのため、顔料ベースの黒インクを使用して目標画素が印刷される。
【０４４９】
特に、前述の特徴によって、画像の色領域内の黒画素は、ＰＣＢｋを使用して達成されるよりも真正な黒色を示すことができ、同時に、様々な染料ベースインクの混合物を使用して、色領域内で比較的一様な出力密度を維持することができる。また、前述の選択可能性により、顔料ベースの黒インクを使用して、分離された黒画素を印刷することができ、それによって、そのような黒画像データをより正確に再生することができる。
【０４５０】
前述の実施形態に関して述べたように、プリンタドライバ１１４は、図４９Ｂのフローを実行するコンピュータ実行可能なステップを含む。もちろん、このステップ全体をプリンタ３０のＲＯＭ１２２内に含めるか、あるいはホストプロセッサ２３のコンピュータ読取り可能なメモリとプリンタ３０のコンピュータ読取り可能なメモリの両方に記憶することができる。
１１．２  境界領域の印刷
前述のように、従来の方式で印刷された黒／カラー境界領域にはいくつかの欠点がある。第１に、そのような領域は多くの場合、最初の多値画像の２値化データに基づくものとして識別される。しかし、２値化画像データは、実際の多値画像データを正確には近似しないことが多い。そのため、境界領域が、オリジナル画像ではそのような領域が存在しない位置で「識別される」可能性がある。
【０４５１】
第２に、黒領域を印刷するために使用される低浸透性黒インクは、高浸透性インクを使用して印刷された隣接した色領域に流出する傾向がある。そのような色領域と低浸透性黒インクの領域との間の緩衝体としてＰＣＢｋが提案されている。しかし、図５０（Ａ）に示したように、ＰＣＢｋ領域４２２および低浸透性黒インク領域４２４のそれぞれの異なる光学濃度のために、領域が突然途切れるように見えるので、そのような緩衝体は不十分である。
【０４５２】
高浸透性黒インクおよびＰＣＢｋ「緩衝体」を使用して黒／カラー境界領域を印刷することも提案されている。図５０（Ｂ）に示したように、ＰＣＢｋ領域４２６および高浸透性黒インク領域４２７の光学濃度は図５０（Ａ）に示した光学濃度により類似しているが、高浸透性黒インクによって生成される黒色は、高品質な黒一色の領域を生成するには適していない。
【０４５３】
図５１は、境界領域を印刷する方法について説明するフローチャートである。一般に、この方法は画像の黒領域と画像の異なる色の領域との間の境界を検出することと、プロセスブラックを使用して黒領域内の、境界に隣接した位置に第１の黒画素領域を印刷するようプリンタに命令することと、高浸透性黒インクを使用して黒領域内の第１の領域に隣接した位置に第２の黒画素領域を印刷するようプリンタに命令することと、低浸透性黒インクを使用して黒領域内の第２の領域に隣接した位置に第３の黒画素領域を印刷するようプリンタに命令することとを含む。
【０４５４】
具体的には、ステップＳ５１０１からフローが開始し、画像の黒領域と画像の異なる色の領域との間の境界が検出される。図５０（Ｃ）を参照するとわかるように、ステップＳ５１０１では、異なる色の領域４３０と黒領域４３２との間の境界４２９が検出される。前述のように、境界検出は、２値化画像データを使用して境界検出を行うシステムよりも正確に黒と異なる色との境界を検出するように多値画像データに基づく検出を行うことが好ましい。
【０４５５】
処理フローはステップＳ５１０２に進み、プリンタが、ＰＣＢｋを使用して第１の黒画素領域を印刷するよう命令される。図５０（Ｃ）に示したように、第１の領域４３１は黒領域４３２内にあり、境界４２９に隣接している。
【０４５６】
次に、ステップＳ５１０３で、プリンタは、高浸透性黒インクを使用して第２の黒画素領域を印刷するよう命令される。第２の領域を図５０（Ｃ）に領域４３４として示す。第２の領域４３４は第１の領域４３１に隣接し、かつ黒領域４３２内にあることには利点がある。
【０４５７】
最後に、ステップＳ５１０４で、プリンタは、低浸透性黒インクを使用して第３の黒画素領域を印刷するよう命令される。図５０（Ｃ）に示したように、第３の領域４３６は第２の領域４３４に隣接し、かつ黒領域４３２内にある。
【０４５８】
必要なＰＣＢＫ画素の数と、黒領域と異なる色の領域との間の境界領域で必要とされる高浸透性黒インクによる画素の数とに基づいて、第１、第２、第３の領域のサイズを調整できることを理解されたい。
【０４５９】
図５１のフローの結果として、黒領域と異なる色の領域との間の境界を横切って光学濃度がしだいに変化し、黒領域と色領域との間のインクの滲み出しが低減し、高品質の黒領域が得られる。
【０４６０】
プリンタドライバ１１４は、図５１のフローを実行するコンピュータ実行可能なステップを含むことができる。このステップも、プリンタ３０のＲＯＭ１２２内に含めるか、あるいはホストプロセッサ２３のコンピュータ読取り可能なメモリとプリンタ３０のコンピュータ読取り可能なメモリの両方に記憶することができる。
【０４６１】
図５２は、黒領域と異なる色の領域との間の境界領域を印刷するより詳細な方法を示す。
【０４６２】
一般に、図５２は、高浸透性黒インクの容器と、低浸透性黒インクのインク容器と、プロセスブラックを生成するためのインク容器とを含むインクジェットプリンタを使用して画像データに対応する画素の印刷を制御するシステムについて説明するものである。このシステムによれば、画像データに基づいて、黒目標画素に隣接した第１の所定サイズの第１の領域に異なる色の領域が含まれているかどうかが判定される。第１の領域に異なる色の領域が含まれていると判定された場合、プリンタはプロセスブラックを使用して目標画素を印刷するよう命令される。第１の領域には異なる色の領域が含まれていないと判定された場合、画像データに基づいて、第１の領域よりも大きな目標画素に隣接した第２の所定サイズの第２の領域に異なる色の領域が含まれているかどうかが判定される。第２の領域に異なる色の領域が含まれていると判定された場合、プリンタは高浸透性黒インクを使用して目標画素を印刷するよう命令され、そうでない場合は、低浸透性黒インクを使用して目標画素を印刷するよう命令される。
【０４６３】
具体的には、ステップＳ５２０１から処理フローが開始し、オリジナル画像データ内の黒目標画素が識別される。処理フローはステップＳ５２０２に進み、目標画素に隣接した第１の領域に異なる色の領域が含まれているかどうかが判定される。そうである場合、処理フローはステップＳ５２０４に進み、プリンタ３０はＰＣＢｋを使用して目標画素を印刷するよう命令される。そうでない場合、処理フローはステップＳ５２０５に進む。
【０４６４】
ステップＳ５２０５で、ステップＳ５２０１で識別された目標画素に隣接した第２の領域に異なる色の領域が含まれているかどうかが判定される。特に、第２の領域は、ステップＳ５２０２で分析された第１の領域よりも大きい。したがって、ステップＳ５２０５では、目標画素が異なる色の領域の近傍に配置されているかどうかが確認される。そうである場合、フローはステップＳ５２０６に進み、プリンタ３０は高浸透性黒インクを使用して目標画素を印刷するよう命令される。そうでない場合、処理フローはステップＳ５２０８に進み、プリンタ３０は低浸透性黒インクを使用して目標画素を印刷するよう命令される。
【０４６５】
図５３（Ａ）は、ステップＳ５２０２の好適な実施形態による第１の異なる色の領域の検出を示す。図５３（Ａ）は、異なる色の多値画像データの領域４５０と黒の多値画像データの領域４５１を示す。前述の説明に関して、ステップＳ５２０１で識別された目標画素は画素データ位置４５２によって表されている。また、５×５領域４５４は、ステップＳ５２０２で分析された第１の領域である。
【０４６６】
領域４５４に異なる色の領域が含まれているかどうかを判定するために、図４９Ａに関して説明したアルゴリズムが領域４５４内の画素値に適用される。領域４５４内の黒画素および異なる色の画素を正確に検出するために、多値画素値が使用されることが好ましい。領域４５４には領域４５０のカラーを表わす画素値が含まれているので、プリンタ３０はステップＳ５２０４で、ＰＣＢｋを使用して目標画素４５２４を印刷するよう命令される。
【０４６７】
この命令は、図５３（Ａ）の画像データに対応する印刷画素を表した図５３（Ｃ）に反映されている。図５３（Ｃ）に示したように、印刷画素４５６は画素位置４５２を表し、ＰＣＢｋを使用して印刷される。なお、印刷画素４５７が、画素位置４５９を表し、やはりＰＣＢｋを使用して印刷されることを理解されたい。
【０４６８】
ステップＳ５２０５〜Ｓ５２０８について図５３（Ｂ）〜図５３（Ｃ）を参照して以下に詳しく説明する。具体的には、画素データ位置４６１に隣接し第１の領域４５４よりも大きな第２の領域４６０が分析され、その領域に異なる色の領域が含まれているかどうかが判定される。したがって、プリンタ３０は、高浸透性黒インクを使用して、画素データ位置４６１に対応する画素４６２を印刷するよう命令される。
【０４６９】
図５３（Ｂ）からわかるように、画素データ位置４６６に隣接した第２の領域４６４には異なる色の領域は含まれていない。したがって、ステップＳ５２０８に従って、プリンタ３０は、低浸透性黒インクを使用して、画素データ位置４６６に対応する画素４６７を印刷するよう命令される。
【０４７０】
図５２に示した処理の結果として、図５０（Ｃ）に示したような境界領域が得られる。具体的には、境界領域を横切って光学濃度がしだいに変化し、黒領域と異なる色の領域との間の滲み出しが低減し、低浸透性黒インクを使用して黒領域が印刷される。
【０４７１】
もちろん、必要なＰＣＢｋによる画素の数と、黒領域と異なる色の領域との間の境界領域で必要とされる高浸透性黒インクによる画素の数とに基づいて、第１の領域および第２の領域のサイズを調整することができる。
【０４７２】
前述の実施形態に関して論じたように、プリンタドライバ１１４は、図５２のフローを実行するコンピュータ実行可能なステップを含むことができる。このステップも、プリンタ３０のＲＯＭ１２２内に含めるか、あるいはホストプロセッサ２３のコンピュータ読取り可能なメモリとプリンタ３０のコンピュータ読取り可能なメモリの両方に記憶することができる。
１１．３  いくつかの異なる解像度でのいくつかの異なるインクによる印刷
図５５は、他の実施形態による処理を示すフローチャートである。図４９Ａに示したように、５×５画素領域４１６などの画素データが入力されると、ステップＳ５４０２〜Ｓ５４０７で、入力画素データ中の目標画素が色領域内にあるかどうかが判定される。このプロセスは、図４９Ａに関して説明したプロセスと同じである。したがって、話を簡単にするために、このプロセスの詳細な説明を省略する。
【０４７３】
ステップＳ５４０９〜Ｓ５４１２は、本発明によって実行される色補正、すなわち黒補正を示す。具体的には、ステップＳ５４０９で、目標画素に対して色補正が実行され、画素がＲＧＢデータからＣＭＹＫデータに変換される。次に、ステップＳ５４１０で、目標画素が色領域内にあるかどうかが判定される。画素が色領域にはない場合、処理はステップＳ５４１１に進む。目標画素が色領域内にはない場合、顔料インク（すなわち、Ｋ１インク）が画素を形成するように設定される。これに対して、ステップＳ５４１０で、画素が色領域内にある場合、プロセスブラック、すなわち、シアンインク、マゼンタインク、イエロインクと染料ベースの（すなわち、Ｋ２）黒インクとで黒が形成される。
【０４７４】
次に、ステップＳ５４１３で、画素データに対する出力色補正が行われる。たとえば、このステップではγ（ガンマ）補正などを実行することができる。その後、処理はステップＳ５４１４〜Ｓ５４１９に進む。これらのステップは、本発明による２値化を示す。
【０４７５】
具体的には、ステップＳ５４１４で、目標画素が色領域内にあるかどうかが判定される。目標画素が色領域内にある場合、処理はステップＳ５４１８に進み、目標画素が２×２インデックスを用いて２値化され、次いでステップＳ５４１９に進み、画素が染料ベースの黒顔料インクを用いて７２０×７２０解像度で印刷される（図５４（Ａ）参照）。一方、ステップＳ５４１４で、目標画素が色領域内にはないと判定された場合、処理はステップＳ５４１５に進み、画素が１×１インデックスを用いて２値化され、次いでステップＳ５４１７に進み、画素が顔料ベースの黒インクを用いて３６０×３６０ｄｐｉで印刷される（図５４（Ｂ）参照）。その後、処理は終了する。
【０４７６】
なお、以上の実施形態において、記録ヘッドから吐出される液滴はインクであるとして説明し、さらにインクタンクに収容される液体はインクであるとして説明したが、その収容物はインクに限定されるものではない。例えば、記録画像の定着性や耐水性を高めたり、その画像品質を高めたりするために記録媒体に対して吐出される処理液のようなものがインクタンクに収容されていても良い。
【０４７７】
以上の実施形態は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギーとして熱エネルギーを発生する手段（例えば電気熱変換体やレーザ光等）を備え、前記熱エネルギーによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
【０４７８】
その代表的な構成や原理については、例えば、米国特許第４７２３１２９号明細書、同第４７４０７９６号明細書に開示されている基本的な原理を用いて行うものが好ましい。この方式はいわゆるオンデマンド型、コンティニュアス型のいずれにも適用可能であるが、特に、オンデマンド型の場合には、液体（インク）が保持されているシートや液路に対応して配置されている電気熱変換体に、記録情報に対応していて膜沸騰を越える急速な温度上昇を与える少なくとも１つの駆動信号を印加することによって、電気熱変換体に熱エネルギーを発生せしめ、記録ヘッドの熱作用面に膜沸騰を生じさせて、結果的にこの駆動信号に１対１で対応した液体（インク）内の気泡を形成できるので有効である。この気泡の成長、収縮により吐出用開口を介して液体（インク）を吐出させて、少なくとも１つの滴を形成する。この駆動信号をパルス形状をすると、即時適切に気泡の成長収縮が行われるので、特に応答性に優れた液体（インク）の吐出が達成でき、より好ましい。
【０４７９】
このパルス形状の駆動信号としては、米国特許第４４６３３５９号明細書、同第４３４５２６２号明細書に記載されているようなものが適している。なお、上記熱作用面の温度上昇率に関する発明の米国特許第４３１３１２４号明細書に記載されている条件を採用すると、さらに優れた記録を行うことができる。
【０４８０】
記録ヘッドの構成としては、上述の各明細書に開示されているような吐出口、液路、電気熱変換体の組み合わせ構成（直線状液流路または直角液流路）の他に熱作用面が屈曲する領域に配置されている構成を開示する米国特許第４５５８３３３号明細書、米国特許第４４５９６００号明細書を用いた構成も本発明に含まれるものである。加えて、複数の電気熱変換体に対して、共通するスロットを電気熱変換体の吐出部とする構成を開示する特開昭５９−１２３６７０号公報や熱エネルギーの圧力波を吸収する開口を吐出部に対応させる構成を開示する特開昭５９−１３８４６１号公報に基づいた構成としても良い。
【０４８１】
さらに、記録装置が記録できる最大記録媒体の幅に対応した長さを有するフルラインタイプの記録ヘッドとしては、上述した明細書に開示されているような複数記録ヘッドの組み合わせによってその長さを満たす構成や、一体的に形成された１個の記録ヘッドとしての構成のいずれでもよい。
【０４８２】
加えて、上記の実施形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
【０４８３】
また、以上説明した記録装置の構成に、記録ヘッドに対する回復手段、予備的な手段等を付加することは記録動作を一層安定にできるので好ましいものである。これらを具体的に挙げれば、記録ヘッドに対してのキャッピング手段、クリーニング手段、加圧あるいは吸引手段、電気熱変換体あるいはこれとは別の加熱素子あるいはこれらの組み合わせによる予備加熱手段などがある。また、記録とは別の吐出を行う予備吐出モードを備えることも安定した記録を行うために有効である。
【０４８４】
さらに、記録装置の記録モードとしては黒色等の主流色のみの記録モードだけではなく、記録ヘッドを一体的に構成するか複数個の組み合わせによってでも良いが、異なる色の複色カラー、または混色によるフルカラーの少なくとも１つを備えた装置とすることもできる。
【０４８５】
以上説明した実施の形態においては、インクが液体であることを前提として説明しているが、室温やそれ以下で固化するインクであっても、室温で軟化もしくは液化するものを用いても良く、あるいはインクジェット方式ではインク自体を３０°Ｃ以上７０°Ｃ以下の範囲内で温度調整を行ってインクの粘性を安定吐出範囲にあるように温度制御するものが一般的であるから、使用記録信号付与時にインクが液状をなすものであればよい。
【０４８６】
加えて、積極的に熱エネルギーによる昇温をインクの固形状態から液体状態への状態変化のエネルギーとして使用せしめることで積極的に防止するため、またはインクの蒸発を防止するため、放置状態で固化し加熱によって液化するインクを用いても良い。いずれにしても熱エネルギーの記録信号に応じた付与によってインクが液化し、液状インクが吐出されるものや、記録媒体に到達する時点では既に固化し始めるもの等のような、熱エネルギーの付与によって初めて液化する性質のインクを使用する場合も本発明は適用可能である。このような場合インクは、特開昭５４−５６８４７号公報あるいは特開昭６０−７１２６０号公報に記載されるような、多孔質シート凹部または貫通孔に液状または固形物として保持された状態で、電気熱変換体に対して対向するような形態としてもよい。本発明においては、上述した各インクに対して最も有効なものは、上述した膜沸騰方式を実行するものである。
【０４８７】
さらに加えて、本発明に係る記録装置の形態としては、コンピュータ等の情報処理機器の画像出力端末として一体または別体に設けられるものの他、リーダ等と組み合わせた複写装置、さらには送受信機能を有するファクシミリ装置の形態を取るものであっても良い。
【０４８８】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【０４８９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０４９０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０４９１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０４９２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４９３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４９４】
本発明について特定の例示的な実施形態に関して説明した。本発明が前述の実施形態に限らず、かつ当業者によって本発明の趣旨および範囲から逸脱せずに様々な変更および修正が加えられることを理解されたい。
【０４９５】
【発明の効果】
以上説明したように本発明によれば、互いに独立に記録解像度を制御可能な少なくとも２つの記録ヘッドを用いて記録媒体に画像を記録するので、１頁の記録の中で記録される画像の種類、例えば、文字画像と文字ではない画像に従ってその記録解像度を変えて、それぞれの種類に適切な解像度で記録することができるという効果がある。
【０４９６】
また、プリント効率を高めることもできる。
【図面の簡単な説明】
【図１】本発明のプリンタと共に使用されるコンピュータ装置の斜視図である。
【図２】図１に示したプリンタの正面斜視図である。
【図３】図１に示したプリンタの背面斜視図である。
【図４】図１に示したプリンタの正面切取斜視図である。
【図５】図１に示したプリンタの背面切取斜視図である。
【図６Ａ】本発明と共に使用されるカートリッジ・リセプタクルの正面図である。
【図６Ｂ】本発明と共に使用されるカートリッジ・リセプタクルの背面図である。
【図７Ａ】本発明と共に使用される使い捨てインクカートリッジの例を示す図である。
【図７Ｂ】本発明と共に使用される第２のタイプのインクカートリッジの一例を示す図である。
【図７Ｃ】本発明と共に使用される第２のタイプのインクカートリッジの一例を示す図である。
【図８】本発明と共に使用される記録ヘッドのヘッド構成を示す図である。
【図９】本発明のプリンタによって印刷されるドット構成を示す図である。
【図１０】本発明のプリンタと相互接続されたホストプロセッサのハードウェア構成を示すブロック図である。
【図１１】図１０に示したホストプロセッサおよびプリンタの機能ブロック図である。
【図１２】図１０に示したゲート・アレイの内部構成を示すブロック図である。
【図１３】本発明のプリンタのメモリ・アークテクチャを示す図である。
【図１４】本発明のプリンタの動作を詳しく示す全体的なシステム・フローチャートである。
【図１５】本発明のプリンタのユーザ操作に対するプリンタ応答を示すフローチャートである。
【図１６】本発明による印刷制御フローを示すフローチャートである。
【図１７】本発明のスキャン・パラメータの設定を示すフローチャートである。
【図１８】印刷シーケンス中のコマンド・フローを示す表である。
【図１９】本発明のプリンタのハード電源オン・シーケンスを示すフローチャートである。
【図２０】本発明のプリンタのソフト電源オン・シーケンスを示すフローチャートである。
【図２１】本発明のプリンタのソフト電源オフ・シーケンスを示すフローチャートである。
【図２２】セントロニクスインタフェース・タスクを含む様々なタスクに関するサイクリックハンドラを示す図である。
【図２３】タイマ動作を制御するサイクリックハンドラによるコントローラ・タイマ制御を示すフローチャートである。
【図２４】動作のためにセットアップされた排出トレイを有する、図１に示したプリンタの詳細な斜視図である。
【図２５Ａ】図２４の排出トレイの詳細な斜視図である。
【図２５Ｂ】図２５Ａの排出トレイで使用されるフラップ上に含められる開先縁部の例の詳細な斜視図である。
【図２５Ｃ】開先縁部について説明するために使用される図２５Ｂに示したフラップの図である。
【図２５Ｄ】開先縁部について説明するために使用される図２５Ｂに示したフラップの図である。
【図２６】図２４の排出トレイ上のフラップの接続部の詳細な斜視図である。
【図２７】図２４の排出トレイの詳細な代替斜視図である。
【図２８】図１のプリンタの底面図である。
【図２９Ａ】図２４の排出トレイの動作を示す図である。
【図２９Ｂ】図２４の排出トレイの動作を示す図である。
【図２９Ｃ】図２４の排出トレイの動作を示す図である。
【図２９Ｄ】図２４の排出トレイの動作を示す図である。
【図２９Ｅ】本発明の用紙排出トレイの第２の実施形態を示す斜視図である。
【図３０】本発明のプリンタ内のカートリッジ・リセプタクルの動作を示す図である。
【図３１】図３０（Ａ）および図３０（Ｂ）に夫々示したカートリッジ・リセプタクルに設置されるインクカートリッジを示す図である。
【図３２】図１のプリンタ上で使用されるインク清掃機構の構成を示す図である。
【図３３】図１のプリンタに設置された各記録ヘッドのインク清掃を示す図である。
【図３４】ホストプロセッサ内の記録ヘッド・コマンド・データの補償を示すフローチャートである。
【図３５】本発明によって実行される時間ベースの清掃を示すフローチャートである。
【図３６】本発明のプリンタが経過時間スケジュールを維持するステップを示すフローチャートである。
【図３７】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図３８】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図３９】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図４０】本発明のプリンタによって実行される自動清掃シーケンスを示すフローチャートである。
【図４１】本発明によるインクカートリッジヘッド交換を示すフローチャートである。
【図４２】本発明のプリンタに用紙が装填されており、自動清掃シーケンスが開始されたときに実行されるステップを示す図である。
【図４３Ａ】本発明による清掃スケジュールを示すタイミングチャートである。
【図４３Ｂ】プリンタ・ノズル駆動回数の制御について説明するためのフローチャートである。
【図４３Ｃ】プリンタに記憶されている加熱係数テーブルおよび駆動回数テーブルの分解図である。
【図４３Ｄ】ノズル吐出シーケンスおよび液滴サイズの制御について説明するためのフローチャートである。
【図４３Ｅ】様々な印刷条件に対するヘッド使用法とプリントバッファ使用法との間の相関関係を示す図である。
【図４３Ｆ】様々な印刷条件に対するヘッド使用法とプリントバッファ使用法との間の相関関係を示す図である。
【図４３Ｇ】様々な印刷条件に対するヘッド使用法とプリントバッファ使用法との間の相関関係を示す図である。
【図４３Ｈ】様々な印刷条件に対するノズル加熱シーケンスを示す図である。
【図４３Ｉ】ホストプロセッサからプリンタ内のプリントバッファへのデータの転送を示す図である。
【図４３Ｊ】往路走査の後に続く復路走査による描画を行う際の印刷データ転送を示す図である。
【図４３Ｋ】単一の記録ヘッドが記録媒体を横切って往路走査を行う際の印刷データの転送を示す図である。
【図４３Ｌ】本発明の代替実施形態における往路走査時の印刷データ転送を示す図である。
【図４３Ｍ】往路走査が実行された後の復路走査時における印刷データ転送を示す図である。
【図４３Ｎ】単一の記録ヘッドが往路走査を行う際の印刷データ転送を示す図である。
【図４３Ｏ】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図４３Ｐ】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図４３Ｑ】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図４３Ｒ】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図４４Ａ】一対の記録ヘッドの往路走査における印刷データ転送を示す図である。
【図４４Ｂ】一対の記録ヘッドの復路走査における印刷データ転送を示す図である。
【図４４Ｃ】ホストプロセッサの印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｄ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｅ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｆ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｇ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｈ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｉ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｊ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｋ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｌ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｍ】ホストプロセッサ内の印刷データストアからプリンタ内のプリントバッファへの印刷データの転送を示すフローチャートである。
【図４４Ｎ】印刷システム内でのシフトバッファ技術の可能な応用例を示す２つのブロック図である。
【図４５Ａ】いくつかの異なるヘッドのそれぞれについていくつかの異なる解像度を用いるプリントアウトの利点について説明する図である。
【図４５Ｂ】各記録ヘッドごとの印刷解像度を独立に制御し、それによってプリントアウトを実行するよう命令するためにホストプロセッサ内のプリンタドライバによって実行されるプロセスステップを示すフローチャートである。
【図４６Ａ】本発明のプリンタに関連するユーザインタフェースを示す図である。
【図４６Ｂ】記録ヘッドにいくつかの異なる解像度を用いる印刷の利点について説明するため図である。
【図４６Ｃ】各記録ヘッドごとに印刷解像度を制御し、それによってプリントアウトを実行するよう命令するためにホストプロセッサ内のプリンタドライバによって実行されるプロセス・ステップを示すフローチャートである。
【図４７】独立の印刷解像度設定に関してプリンタによって実行されるプロセス・ステップをフローチャートである。
【図４８】インク選択方法について説明するためのフローチャートである。
【図４９Ａ】異なる色の領域内に黒ターゲット画素が位置するかどうかを判定するために使用される領域を示す図である。
【図４９Ｂ】ＣＭＹＫ黒インクまたは顔料ベースの黒インクの選択について説明するフローチャートである。
【図５０】黒領域と異なる色の領域との間の境界に隣接した領域の印刷を示す図である。
【図５１】黒領域と異なる色の領域との間の境界に隣接した領域を印刷する方法について説明するためのフローチャートである。
【図５２】黒領域と異なる色の領域との間の境界に隣接した領域を印刷する方法について説明するためのフローチャートである。
【図５３】黒領域と異なる色の領域との間の境界に隣接した領域の印刷データに基づいてデータを印刷する方法を示す図である。
【図５４】本発明の一実施形態による画素の２値化を示す図である。
【図５５】本発明の一実施形態によるカラー処理を示す図である。
【図１】
0003548441.tif 000013
【図２】
0003548441.tif 000014
【図３】
0003548441.tif 000015
【図４】
0003548441.tif 000016
【図５】
0003548441.tif 000017
【図６Ａ】
0003548441.tif 000018
【図６Ｂ】
0003548441.tif 000019
【図７Ａ】
0003548441.tif 000020
【図７Ｂ】
0003548441.tif 000021
【図７Ｃ】
0003548441.tif 000022
【図８】
0003548441.tif 000023
【図９】
0003548441.tif 000024
【図１０】
0003548441.tif 000025
【図１１】
0003548441.tif 000026
【図１２】
0003548441.tif 000027
【図１３】
0003548441.tif 000028
【図１４】
0003548441.tif 000029
【図１５】
0003548441.tif 000030
【図１６】
0003548441.tif 000031
【図１７】
0003548441.tif 000032
【図１８】
0003548441.tif 000033
【図１９】
0003548441.tif 000034
【図２０】
0003548441.tif 000035
【図２１】
0003548441.tif 000036
【図２２】
0003548441.tif 000037
【図２３】
0003548441.tif 000038
【図２４】
0003548441.tif 000039
【図２５Ａ】
0003548441.tif 000040
【図２５Ｂ】
0003548441.tif 000041
【図２５Ｃ】
0003548441.tif 000042
【図２５Ｄ】
0003548441.tif 000043
【図２６】
0003548441.tif 000044
【図２７】
0003548441.tif 000045
【図２８】
0003548441.tif 000046
【図２９Ａ】
0003548441.tif 000047
【図２９Ｂ】
0003548441.tif 000048
【図２９Ｃ】
0003548441.tif 000049
【図２９Ｄ】
0003548441.tif 000050
【図２９Ｅ】
0003548441.tif 000051
【図３０】
0003548441.tif 000052
【図３１】
0003548441.tif 000053
【図３２】
0003548441.tif 000054
【図３３】
0003548441.tif 000055
【図３４】
0003548441.tif 000056
【図３５】
0003548441.tif 000057
【図３６】
0003548441.tif 000058
【図３７】
0003548441.tif 000059
【図３８】
0003548441.tif 000060
【図３９】
0003548441.tif 000061
【図４０】
0003548441.tif 000062
【図４１】
0003548441.tif 000063
【図４２】
0003548441.tif 000064
【図４３Ａ】
0003548441.tif 000065
【図４３Ｂ】
0003548441.tif 000066
【図４３Ｃ】
0003548441.tif 000067
【図４３Ｄ】
0003548441.tif 000068
【図４３Ｅ】
0003548441.tif 000069
【図４３Ｆ】
0003548441.tif 000070
【図４３Ｇ】
0003548441.tif 000071
【図４３Ｈ】
0003548441.tif 000072
【図４３Ｉ】
0003548441.tif 000073
【図４３Ｊ】
0003548441.tif 000074
【図４３Ｋ】
0003548441.tif 000075
【図４３Ｌ】
0003548441.tif 000076
【図４３Ｍ】
0003548441.tif 000077
【図４３Ｎ】
0003548441.tif 000078
【図４３Ｏ】
0003548441.tif 000079
【図４３Ｐ】
0003548441.tif 000080
【図４３Ｑ】
0003548441.tif 000081
【図４３Ｒ】
0003548441.tif 000082
【図４４Ａ】
0003548441.tif 000083
【図４４Ｂ】
0003548441.tif 000084
【図４４Ｃ】
0003548441.tif 000085
【図４４Ｄ】
0003548441.tif 000086
【図４４Ｅ】
0003548441.tif 000087
【図４４Ｆ】
0003548441.tif 000088
【図４４Ｇ】
0003548441.tif 000089
【図４４Ｈ】
0003548441.tif 000090
【図４４Ｉ】
0003548441.tif 000091
【図４４Ｊ】
0003548441.tif 000092
【図４４Ｋ】
0003548441.tif 000093
【図４４Ｌ】
0003548441.tif 000094
【図４４Ｍ】
0003548441.tif 000095
【図４４Ｎ】
0003548441.tif 000096
【図４５Ａ】
0003548441.tif 000097
【図４５Ｂ】
0003548441.tif 000098
【図４６Ａ】
0003548441.tif 000099
【図４６Ｂ】
0003548441.tif 000100
【図４６Ｃ】
0003548441.tif 000101
【図４７】
0003548441.tif 000102
【図４８】
0003548441.tif 000103
【図４９Ａ】
0003548441.tif 000104
【図４９Ｂ】
0003548441.tif 000105
【図５０】
0003548441.tif 000106
【図５１】
0003548441.tif 000107
【図５２】
0003548441.tif 000108
【図５３】
0003548441.tif 000109
【図５４】
0003548441.tif 000110
【図５５】
0003548441.tif 000111