(57)【要約】【課題】  ホストコンピュータにおける記録データの生成処理を高速化させる。【解決手段】  ホスト機器が、設定データとして、各ノズル列間の走査方向における相対距離に対応したレジスト調整値を含むデータを送信し、記録装置は、各ノズル列の記録データを、走査方向における記録位置に関連付けて格納する記録バッファ４を備え、記録バッファリング構造制御回路８は、レジスタに格納されたレジスト調整値に基づいて、各ノズル列の記録データの格納位置を調整して記録バッファ４に格納するように制御する。【選択図】  図５
2005193651.tif 000002
【特許請求の範囲】
【請求項１】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置であって、
接続されたホスト機器から送信され、各記録素子列間の走査方向における相対距離に対応したレジスト情報を含む設定データ及び各記録素子列の記録データを格納する受信バッファと、
各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、
前記レジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御手段と、を備えることを特徴とする記録装置。
【請求項２】
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御手段と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御手段と、を更に備えることを特徴とする請求項１に記載の記録装置。
【請求項３】
各記録素子列によってそれぞれ異なった色で記録を行うように構成されている請求項１又は２に記載の記録装置。
【請求項４】
前記記録バッファは、前記走査方向における記録領域を複数のブロックに分割し、該ブロック毎に記録データを格納するように構成されており、
前記書き込み制御手段は、前記記録データに含まれるデータの有無を識別するための情報と、該データのラスター数と、該データのレジスト情報と、を記録素子列毎に格納するレジスタを有することを特徴とする請求項１から３のいずれか１項に記載の記録装置。
【請求項５】
前記書き込み制御手段は、各ブロックに対する各記録素子列の記録データの有無に応じて、前記記録バッファに格納するためのアドレス情報を制御することを特徴とする請求項４に記載の記録装置。
【請求項６】
各記録素子からインクを吐出して記録を行うことを特徴とする請求項１から５のいずれか１項に記載の記録装置。
【請求項７】
各記録素子は、熱エネルギーを利用してインクを吐出すべく、インクに与える熱エネルギーを発生するための熱エネルギー変換体を備えていることを特徴とする請求項６に記載の記録装置。
【請求項８】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行い、接続されたホスト機器から送信され、設定データ及び各記録素子列の記録データを格納する受信バッファと、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、を備える記録装置のデータ処理方法であって、
前記設定データに含まれる各記録素子列間の走査方向における相対距離に対応したレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御工程と、
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御工程と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御工程と、
を備えることを特徴とする記録装置のデータ処理方法。
【請求項９】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置と、該記録装置に接続され、前記記録装置に対して設定データ及び記録データを送信するホスト機器と、を含む記録システムであって、
前記ホスト機器が、前記設定データとして、各記録素子列間の走査方向における相対距離に対応したレジスト情報を含むデータを送信し、
前記記録装置が、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファを備え、前記レジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御することを特徴とする記録システム。
【請求項１０】
記録素子列を複数有する記録ヘッドを記録媒体上で走査させて記録媒体に記録を行う記録装置に対して出力する記録データを、前記記録媒体における前記記録ヘッドの走査記録領域のうち、走査方向に複数に分割された領域に対応したブロック単位で生成する生成手段と、前記記録データを含む指示を出力する出力手段を備えるホスト装置であって、
前記記録ヘッドの前記記録素子列についてのずれ量に関する情報を取得するずれ量取得手段と、
前記生成された記録データから前記記録装置において１回の走査記録で記録する記録データに対応したブロック数を取得するブロック数取得手段と、
前記ブロック数取得手段が取得した前記ブロック数を、前記ずれ量に関する情報に基づいて変更するか否かを判定する判定手段と、
前記判定手段が前記ブロック数を変更すると判定した場合には、前記指示の内容を変更する変更手段と、を備えることを特徴とするホスト装置。
【請求項１１】
前記判定手段は、１回の走査記録で記録する記録データのうちの走査方向における最下流のブロックに対応するデータの走査方向のデータサイズと前記ずれ量に関する情報との和と、１ブロックあたりの走査方向のサイズに関する情報とを比較することを特徴とする請求項１０に記載のホスト装置。
【請求項１２】
前記変更手段は、ブロック数を増やすことを特徴とする請求項１０又は１１に記載のホスト装置。
【請求項１３】
前記ホスト装置は、前記判定手段が前記ブロック数を変更することを示す情報を前記指示に追加する指示内容変更手段を備えることを特徴とする請求項１０から１２のいずれか１項に記載のホスト装置。
【請求項１４】
前記指示内容変更手段は、最下流のブロックに対応するデータに続いて、所定数のデータ、前記ブロック数を変更するコマンドのうちの少なくとも１つを追加することを備えることを特徴とする請求項１３に記載のホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記録装置、記録装置のデータ処理方法、記録システム、及びホスト装置に関し、より詳細には、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、記録素子の配列方向と交差する方向に走査させて記録を行う記録装置における、記録データの処理に関するものである。
【背景技術】
【０００２】
例えばワードプロセッサ、パーソナルコンピュータ、ファクシミリ等に於ける情報出力装置として、所望される文字や画像等の情報を用紙やフィルム等シート状の記録媒体に記録を行うプリンタが広く使用されている。
【０００３】
プリンタの記録方式としては様々な方式が知られているが、用紙等の記録媒体に非接触記録が可能である、カラー化が容易である、静粛性に富む、等の理由でインクジェット方式が近年特に注目されており、又その構成としては、所望される記録情報に応じてインクを吐出する記録ヘッドを搭載したキャリッジを用紙等の記録媒体の搬送方向と交差する方向に往復走査させながら記録を行なう、シリアル記録方式が安価で小型化が容易などの点から一般的に広く用いられている。
【０００４】
従来、記録ヘッドを搭載したキャリッジを記録媒体上で走査させて記録を行うために、記録ヘッドの走査方向の記録領域を複数の領域に分割し、分割された領域単位の記録データを格納するバッファを有する記録装置（印刷装置）が知られている。
【０００５】
このような記録装置では、分割された領域単位の記録データをバッファに格納する際に、色毎にデータの格納領域を切替える情報と格納可能なバッファ残量及び書き込みアドレス更新量の比較の結果とに基づき、領域単位の記録データの書き込みアドレス情報を、色毎に制御する書き込み制御部を備えている（特許文献１）。
【０００６】
また、バッファに格納された記録データを読み出すための読み出しアドレス情報を色毎に制御する読み出し制御部と、読み出しアドレス情報に基づいて読み出された記録データに従い、分割された領域単位の記録データを生成する記録データ生成手段とを備えている。
【０００７】
このように構成された従来の記録装置にホストコンピュータから転送される記録データに対しては、ホストコンピュータ（プリンタドライバ）によって、走査方向（ラスタ方向）における位置の調整（レジスト調整）を施されている（特許文献２）。
【特許文献１】特開２００３−３０５８９６号公報
【特許文献２】特開２００３−３０５８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、記録装置に転送する記録データは記録・非記録を表す１ビット（２値）で表現されるのが一般的であるが、通常ホストコンピュータのデータ処理単位は１６ビットや３２ビットに設定されている。
【０００９】
このため、ホストコンピュータで記録データのような１ビットのデータを処理するのは効率が悪く、処理に時間がかかってしまう。
【００１０】
近年は記録装置の解像度が向上しており、ホストコンピュータから記録装置へ転送する記録データの量も増大している。このため記録データの量が増大すると、ホストコンピュータでの記録データの生成に時間がかかり、記録を指示してから記録装置で記録が実行されるまでの実効的な速度が低下することとなる。
【００１１】
以上のような理由で、ホストコンピュータ（プリンタドライバ）が記録装置へ転送する記録データを生成するのに要する時間や、記録を指示してから記録が実行されるまでの時間を短縮することが課題となっていた。
【００１２】
本発明は以上のような状況に鑑みてなされたものであり、ホストコンピュータにおける記録データの生成処理を高速化させることを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成する本発明の一態様としての記録装置は、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置であって、
接続されたホスト機器から送信され、各記録素子列間の走査方向における相対距離に対応したレジスト情報を含む設定データ及び各記録素子列の記録データを格納する受信バッファと、
各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、
前記レジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御手段と、を備えている。
【００１４】
このようにすると、従来ホスト機器で行われていた記録素子列間の相対距離に関連したレジスト調整処理が記録装置側で実行されるので、ホスト機器での記録データの生成処理が簡略化され、記録が指示されてから実際に記録が行われるまでの時間を短縮することが可能となる。
【００１５】
記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御手段と、読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御手段と、を更に備えるのがよい。
【００１６】
各記録素子列によってそれぞれ異なった色で記録を行うように構成されているのが好ましい。
【００１７】
好適には、記録バッファは、走査方向における記録領域を複数のブロックに分割し、該ブロック毎に記録データを格納するように構成されており、書き込み制御手段は、記録データに含まれるデータの有無を識別するための情報と、該データのラスター数と、該データのレジスト情報と、を記録素子列毎に格納するレジスタを有する。
【００１８】
書き込み制御手段は、各ブロックに対する各記録素子列の記録データの有無に応じて、記録バッファに格納するためのアドレス情報を制御するのがよい。
【００１９】
各記録素子はインクを吐出して記録を行うように構成されているのがよく、より好ましくは、各記録素子は、熱エネルギーを利用してインクを吐出すべく、インクに与える熱エネルギーを発生するための熱エネルギー変換体を備えている構成である。
【００２０】
また、上記目的を達成する本発明の別の態様としての記録装置のデータ処理方法は、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行い、接続されたホスト機器から送信され、設定データ及び各記録素子列の記録データを格納する受信バッファと、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、を備える記録装置のデータ処理方法であって、
前記設定データに含まれる各記録素子列間の走査方向における相対距離に対応したレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御工程と、
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御工程と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御工程と、を備えている。
【００２１】
上記目的を達成する本発明の更に別の態様としての記録システムは、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置と、該記録装置に接続され、前記記録装置に対して設定データ及び記録データを送信するホスト機器と、を含む記録システムであって、
前記ホスト機器が、前記設定データとして、各記録素子列間の走査方向における相対距離に対応したレジスト情報を含むデータを送信し、
前記記録装置が、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファを備え、前記レジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する。
【００２２】
また、記録素子列を複数有する記録ヘッドを記録媒体上で走査させて記録媒体に記録を行う記録装置に対して出力する記録データを、前記記録媒体における前記記録ヘッドの走査記録領域のうち、走査方向に複数に分割された領域に対応したブロック単位で生成する生成手段と、前記記録データを含む指示を出力する出力手段を備えるホスト装置であって、
前記記録ヘッドの前記記録素子列についてのずれ量に関する情報を取得するずれ量取得手段と、
前記生成された記録データから前記記録装置において１回の走査記録で記録する記録データに対応したブロック数を取得するブロック数取得手段と、
前記ブロック数取得手段が取得した前記ブロック数を、前記ずれ量に関する情報に基づいて変更するか否かを判定する判定手段と、
前記判定手段が前記ブロック数を変更すると判定した場合には、前記指示の内容を変更する変更手段と、を備えるホスト装置によっても上記の目的は達成される。
【００２３】
なお、上記の目的は、上記記録素位置のデータ処理方法をコンピュータ装置によって実現させるコンピュータプログラム、該コンピュータプログラムを格納した記憶媒体によっても達成される。
【発明の効果】
【００２４】
本発明によれば、従来ホスト機器で行われていた記録素子列間の相対距離に関連したレジスト調整処理が記録装置側で実行されるので、ホスト機器での記録データの生成処理が簡略化され、記録が指示されてから実際に記録が行われるまでの時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下に、図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００２６】
なお、この明細書において、「記録」（「プリント」という場合もある）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、また人間が視覚で知覚し得るように顕在化したものであるか否かを問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【００２７】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００２８】
さらに、「インク」（「液体」と言う場合もある）とは、上記「記録（プリント）」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成または記録媒体の加工、或いはインクの処理（例えば記録媒体に付与されるインク中の色剤の凝固または不溶化）に供され得る液体を表すものとする。
【００２９】
またさらに、「ノズル」とは、特にことわらない限り吐出口ないしこれに連通する液路およびインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【００３０】
以下、本発明をインクジェット記録装置（印刷装置）に適用した一実施形態について具体的に説明する。
【００３１】
＜記録装置の概略構成＞
図１は、本実施形態のインクジェット記録装置の概略構成を示すカバーを外した状態の斜視図である。
【００３２】
図１において、キャリッジ１０１は記録ヘッド（不図示）とカートリッジ１１０を搭載し、ガイド軸１０２に沿って走行可能である。なお、本実施形態では、記録ヘッドは、インクジェット方式の記録ヘッドである。また、１０３はシャーシであり、メインシャーシ１０３ａと左右の側面板１０３ｂ及び１０３ｃから構成される。１０８はキャリッジの駆動源であるキャリッジモータであり、１０９はキャリッジに接続されキャリッジモータ１０８によって駆動されるベルト、１３０は記録ヘッド吐出面の清掃や吸引動作行う回復系ユニット、１４０はキャリッジ１０１に搭載された発光素子及び受光素子と共にキャリッジの位置及び速度を算出するＣＲエンコーダを構成するスケールである。
【００３３】
記録媒体としての記録紙は、給紙ローラ（不図示）によって装置本体内に送り込まれ、紙送りローラ１０５とピンチローラ（不図示）、紙押え板（不図示）によって狭持され、記録ヘッドの記録領域へと搬送され記録が行われる。
【００３４】
インクカートリッジ１１０は、イエロー、マゼンタ、シアンの３色のインクを収容したカラーインクカートリッジと、ブラックインクを収容したブラックインクカートリッジの２種類で、それぞれ別々にカートリッジガイド７に挿入され、記録ヘッドと接続される。
【００３５】
本実施形態のインクジェット記録装置は、ホストコンピュータと接続され、ホストコンピュータ（プリンタドライバ）から記録データの供給を受けて記録を行う。また、本実施形態の記録装置は、記録ヘッドを搭載したキャリッジを記録媒体上で走査させて記録を行うために、記録ヘッドの走査方向の記録領域を複数の領域に分割し、分割された領域単位で画像を記録（印刷）する。
【００３６】
その場合、本実施形態のインクジェット記録装置では、ホストコンピュータ側では、ビット単位のデータ処理により走査方向における記録データ位置の調整（レジスト調整）は行わず、この記録データのレジスト調整は、後述する図２の記録装置側の記録バッファリング構造制御回路８で行う。そのため、ホストコンピュータでの記録データの生成が高速化され、実効的な記録速度の高速化を図ることが可能となる。
【００３７】
＜記録制御部の構成＞
図２は、本発明にかかる記録装置の記録制御部の構成を示すブロック図である。同図に於いて、１はインターフェース信号線Ｓ１を介してホストコンピュータ（不図示）から転送されてくるデータを受信し、その受信したデータの中から、記録装置の動作に必要なデータ及び記録データを抽出して一旦蓄えるインターフェース制御部（コントローラ）であり、インターフェースコントローラ１で抽出されたデータは信号線Ｓ２を介して受信バッファ２に格納される。
【００３８】
受信バッファ２はＳＲＡＭもしくはＤＲＡＭ等の記憶装置（メモリ）で構成され、この受信バッファに蓄えられるデータは図３Ａ及び３Ｂで示すような構造のものとなる。
【００３９】
図３Ａの（ａ）において受信バッファのデータ構造が示されるように、左から順に「コマンド」（２０１）、「データ長」（２０２）、「設定データ」（２０３）のデータが格納され、これに続いて「コマンド」（２０４）、「データ長」（２０５）、「設定データ」（２０６）のデータが格納されている。これは時系列順に転送されてきたデータが、受信バッファの連続したアドレスに格納されることを示し、ここで示す設定データ２０６は、例えば給紙の実行や紙送り量の設定、使用する記録ヘッド数等を示す情報であり、この設定データで定められた情報が全て揃って初めて記録装置で記録が可能となる。この後に、記録の対象となる記録データ（２０９、２１２）が受信バッファ２に格納される。
【００４０】
この記録データ（２０９、２１２）は、記録ヘッドが記録媒体上を１度の走査で記録する際に必要とされるデータ量を、それより少ないデータ量としてブロック単位に分割したデータであり、そのブロック単位で記録データを区切り、順次第１ブロックデータ（２０９）、第２ブロックデータ（２１２）、…として格納される。
【００４１】
図３Ａの（ｂ）はブロック単位に分割された記録データのデータ構造を詳細に示す図であり、同図で示すように、複数の色のデータ（２１３〜２１４）が各々圧縮されたデータとして順次格納される。この圧縮ＴＡＧ、圧縮データは「色変えコード」（２１６、２１７、２１８）で区切られる。
【００４２】
例えば、シアン、イエロー、マゼンタ、それと黒の４色の記録データを想定した場合、各色毎に縦６４ノズルを１列としたノズル列が走査方向に２列ずつ配列する記録ヘッドを用いると、各ノズル列単位のデータが１つの色の記録データを構成することになるのでノズル２列が４色分、すなわち、圧縮された第１色から第８色の記録データが一つのブロックデータ内に記録データとして格納される。このノズル列の各ノズルは、記録媒体の搬送方向に並んでいる。例えば、第１色と第２色がシアンに対応する記録データ、第３色と第４色はマゼンタに対応する記録データ、第５色と第６色はイエローに対応する記録データ、第７色と第８色は黒に対応する記録データとなる。
【００４３】
図４は記録データを保持する記録バッファのデータ構造を示す図である。例えば１回の走査で最大約８インチの走査方向の長さを記録する場合、１つのブロックデータが走査方向に約１インチの記録ができるサイズとすると、トータル８ブロックの記録データを記録すれば、１走査分の画像が完成することになる。第１ブロックから第８ブロックは記録ヘッドの走査方向に配置され、各ブロックデータには、第１色のデータから第８色のデータが格納される。各ブロック内に格納される各色の記録データの長さは記録ヘッドのノズル数に対応するものである。
【００４４】
説明を図２に戻し、各制御ブロックの説明を続ける。受信バッファ２に格納されるデータのうち、記録装置の制御用の設定値である「コマンド」、「データ長」、「設定データ」は、インターフェースコントローラ１から信号線Ｓ９０２を介してＣＰＵ９により読み出され、図中にある各部制御回路（７、８）に設定される（Ｓ９０３、Ｓ９０７）。ＣＰＵ９は読み出したデータ（図３Ａ（ａ）の２０１〜２０８に相当するデータ）を解釈し、その結果に従って記録装置の全体的な記録制御を統括する。一方、ＣＰＵ９は記録データの処理に関してはデータ解凍ブロック５５を起動して処理を実行させるものとする。
【００４５】
データ解凍ブロック５５は受信バッファ２から、図３（ｂ）で示されるように「圧縮ＴＡＧ」と「データ（圧縮データ）」及び「色変えコード」の３種類のデータを読み出し、これらのデータに基づきデータの展開制御を実行する。本実施形態ではデータの圧縮／解凍方法としてＰａｃｋＢｉｔｓ圧縮を用いたので、圧縮ＴＡＧが８ビットで００ｈから７Ｆｈまでの値の場合、非連続なデータが１から１２８個データ領域に有るとして処理し、圧縮ＴＡＧが８ビットでＦＦｈから８１ｈまでの値の場合、次の１バイトデータを連続した２から１２８個のデータに解凍する処理を行う。なお、データの読出し処理において、８０ｈを読み出した場合は色変えコードとして処理する。解凍したデータを信号線Ｓ４ａを介して、画像変換ブロック５４に送る。この画像変換ブロックにてＨＶ変換がなされ、信号線Ｓ４ｂを介してＨＶ変換されたデータが記録バッファ４に格納される。
【００４６】
記録バッファ４には解凍された記録データが図４に示すデータ構造で格納される。記録バッファ４の先頭アドレスには第１ブロックの第１色のデータの先頭データが書き込まれ、その後に続くデータは、アドレスを適宜変更しながら順次書き込まれる。記録バッファのアドレスに一つの色のデータとして格納できる領域は、最初にＣＰＵ９が読み込んだ設定データで決定され、その値以上のデータは書き込めないので記録データを圧縮する際には、その設定データに従ったデータサイズの制限が加えられることになる。色変えコードを検出した後のデータは第２色のデータの先頭番地から順次書き込まれる。このアドレスデータの制御は後に説明する記録バッファリング制御構造回路８が実行することになる。
【００４７】
この書き込みを第１ブロックの第１色のデータから第８色のデータまで繰り返し、第８色のデータの書き込みを終えて色変えコードを検知すると、第１ブロックのデータが全て書き込み終えたことになる。データ解凍ブロック５５はデータの展開動作を終了し、ＣＰＵ９に対しブロック１個分のデータの展開が完成したことを割込み（Ｓ９０６）で伝え、ＣＰＵ９からの次のデータ展開の起動を待つ。
【００４８】
記録バッファ４上に複数ブロックの記録データが揃った段階で、ＣＰＵ９は記録動作を開始すべくキャリッジモータ（図１の１０８）を動作させ、記録ヘッド６を搭載したキャリッジを走査させながら、記録データをキャリッジエンコーダ（ＣＲエンコーダ）１０に同期して転送し、記録することで紙面上（記録媒体に）に画像を完成させることができる。記録ヘッド６が主走査方向に走査した後、搬送手段が記録媒体を副走査方向に搬送する。こうして、記録ヘッドの走査と、記録媒体の搬送を繰り返し行って、１ページ分の画像の記録を行う。
【００４９】
記録データ生成ブロック５は、記録バッファ４上に有る記録データの各ブロック構造を、ＣＰＵ９から指定された値に従って、ＣＲエンコーダ１０に同期したタイミングで信号線Ｓ５を介して読み出し、記録ヘッド６が記録できるデータ構造に変換しながら信号線Ｓ６に出力していく。この記録データ生成ブロック５は後で述べる記録バッファ内のブロック幅（ブロックの長さを示す。）の情報、ブロックの各色の高さ（各色のデータの「ラスター数」という。）についての情報を保持する。
【００５０】
尚、記録バッファ４から読み出されたデータ領域は次の記録データを蓄えるために、零クリアされる。
【００５１】
＜受信バッファの書き込み、読み込み制御＞
以上説明したように受信バッファ２には、インターフェースコントローラ１がデータを書き込み、データ解凍ブロック５５が記録データのみを読み出すが、その書き込みアドレスと読み出しアドレスを制御しているのが受信バッファリング構造制御回路７である。受信バッファリング構造制御回路７は受信バッファ２の先頭アドレスと最終アドレス、それと書き込みアドレスと読み出しアドレスの管理を行っている。
【００５２】
受信バッファリング構造制御回路７はインターフェースコントローラ１から受信する書き込み要求信号（Ｓ７０１）を受け付け毎に１アドレスずつ加算し、これを書き込みアドレスの情報として受信バッファ２に出力する（Ｓ７０２）。そして、受信バッファリング構造制御回路７は受信バッファ２の最終アドレスに達した場合に書き込みアドレスを受信バッファ２の先頭のアドレスに戻す制御を行う。
【００５３】
また、書き込みアドレスが読み出しアドレスに到達（一致）した場合、受信バッファ２がデータでいっぱいになり、次のデータを書き込めない旨をインターフェースコントローラ１に信号線Ｓ７０３を介して通信する。
【００５４】
このとき同時にＣＰＵ９に対しても信号線Ｓ９０４の割込み信号により、受信バッファ２はデータの書き込みができない状態であることを知らせる。受信バッファ２の構造はＣＰＵ９が信号線Ｓ９０３のバスを用いて内部のレジスタに書き込むことで設定することができる。
【００５５】
読み出しアドレスは、ＣＰＵ９が受信バッファリング構造制御回路７の中に有るデータリード用レジスタを介して直接に受信バッファ２の中のデータを読み出す場合と、データ解凍ブロック５５がデータ読み出し要求信号線Ｓ７０５を介して要求した場合に、読み出しアドレスとして信号線Ｓ７０６を介して１アドレスずつ加算されて受信バッファ２に出力される。
【００５６】
受信バッファリング構造制御回路７は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを受信バッファ２の先頭アドレスに戻す制御を行う。また読み出しアドレスが書き込みアドレスに到達(一致）した場合、受信バッファ上からデータがなくなったので、次のデータを読み出せない旨をデータ解凍ブロックに信号線Ｓ７０４を介して通信する。このとき同時にＣＰＵ９に対しても信号線Ｓ９０４の割込み信号線で、受信バッファ２上には、読み出すデータが無い旨を知らせる。
【００５７】
以上が受信バッファ２に対するデータの書き込み、読み取り制御の処理内容である。次に、この受信バッファ２から読み出され、展開処理されたデータを記録バッファに書き込みし、あるいはその記録バッファからデータを読み取るための処理内容を説明する。
【００５８】
＜記録バッファの書き込み、読み取り制御＞
記録バッファ４に対して、画像変換ブロック５４が記録データを書き込み、記録データ生成ブロック５がその書き込まれた記録データを読み出すが、その際、書き込みアドレスと読み出しアドレスを制御しているのが記録バッファリング構造制御回路８である。
【００５９】
記録バッファリング構造制御回路８は記録バッファの先頭アドレスと、最終アドレス、それと書き込みアドレスと、読み出しアドレスの管理を行っている。
【００６０】
記録バッファリング構造制御回路８は画像変換ブロック５４から受信する書き込み要求信号（Ｓ８０１）を受け付ける毎にアドレスを適宜変更し、これを書き込みアドレスの情報として記録バッファ４に出力する（Ｓ８０２）。そして、記録バッファリング構造制御回路８は記録バッファ４の最終アドレスに達した場合に書き込みアドレスを記録バッファ４の先頭のアドレスに戻す制御を行う。
【００６１】
また、書き込みアドレスが読み出しアドレスに到達（一致）した場合、記録バッファ４が記録データでいっぱいになり、次の記録データを書き込めない旨を画像変換ブロック５４に信号線Ｓ８０９を介して通信する。
【００６２】
また、データ解凍ブロック５５が色変えコードを受信バッファ２から読み込んだ場合、データ解凍ブロック５５は信号線Ｓ５４１を介して画像変換ブロック５４にその旨を通信し、画像変換ブロックは、信号線Ｓ８０７を介して、記録バッファリング構造制御回路に出力する。記録バッファリング構造制御回路８は次の色のデータを格納する先頭番地を信号線Ｓ８０２から出力するように準備する。記録バッファ４の構造はＣＰＵ９が信号線Ｓ９０７のバスを用いて内部のレジスタに書き込むことで設定することができる。
【００６３】
読み出しアドレスは、記録データ生成ブロック５が各色毎にデータ読み出し要求信号線Ｓ８０５を介して要求すると、読み出しアドレスとして信号線Ｓ８０６を介して１アドレスずつ加算されて記録バッファ４に出力される。
【００６４】
記録バッファリング構造制御回路８は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを記録バッファ４の先頭アドレスに戻す制御を行う。
【００６５】
記録データ生成ブロック５は現在読み出している記録データブロックのデータ構造をＣＰＵ９から信号線Ｓ９０８のバスを介して、記録データ生成ブロック５内部にあるレジスタに設定する。設定された記録データブロック構造内にある記録データを全て読み出すと終了信号Ｓ９０９をＣＰＵ９に対し割り込み信号として通信する。この際、記録バッファ４上に次の記録データブロックがすでに展開されているならば、その記録データブロック構造をレジスタに書き込む。
【００６６】
記録バッファ４は１記録データブロック単位でデータの書き込みを制御しており、書き込まれていない記録データブロックに対し記録データ生成ブロックを起動しないので、記録バッファの読み出しアドレスが書き込みアドレスを越えることは起きない。１１は、バッファ構造情報メモリである。これは、記録バッファの制御用の作業用メモリ（ワークＲＡＭ）で、後で述べる記録バッファ構造についての情報を一時的に格納する領域である。
【００６７】
＜記録バッファリング構造制御回路の説明＞
記録バッファリング構造制御回路の説明を図５及び図８を用いて説明する。記録バッファリング構造制御回路の処理において、図５は書き込みアドレス制御を中心に説明する図であり、図８は記録バッファリング構造制御回路８の読み出しアドレス制御を中心に説明する図である。
【００６８】
記録バッファリング構造制御回路８は読み出し制御部８Ａと書き込みアドレス制御部８Ｂで構成されている。また、記録バッファ４のバッファ領域は、記録バッファの先頭のアドレスをtop_adrで示し、最終アドレスをbottom_adrで表示する。この先頭アドレスは書き込みアドレス制御部８Ｂ内のレジスタ８０３に格納され、最終アドレスは書き込みアドレス制御部８Ｂ内のレジスタ８０４に格納される。
【００６９】
記録バッファ４に示される「ＲＰ」はリードポインタを示し、「ＷＰ」はライトポインタを示す。記録バッファの中のＲＰとＷＰの間のハッチング部分は記録データが格納されていることを表している。また、記録バッファ４の白色部分は記録データが格納されていないことを表す。
【００７０】
読み出しアドレス制御部８Ａ内の８０２は、データの読み出しアドレス（ＲＰ：リードポインタ）を示すレジスタである。８０５から８１２は第１色から第８色について、各色の情報を格納するレジスタである。ここで、レジスタ８０５には第１色目データのバッファの高さ情報（1st_hight）と、第１色のデータの有り無しを示す情報（1_color_bit）と、第１色目のレジスト調整値情報（1_reg_wnum）が格納され、同様にレジスタ８０６〜８１２についても第２色〜第８色について同様の情報が設定される。
【００７１】
なお、レジスト調整値情報は、ノズル列間のラスタ方向における相対位置に対応した値となるので、１つのノズル列に対しては常に同じ値となる。すなわち、ノズル列毎にレジスト調整値情報を持っている。例えば、第１ノズル列を基準とすると、第１色のデータに対するレジスト調整値情報は０、第２ノズル列と第１ノズル列との距離がＡカラム分であれば、第２色のデータに対するレジスト調整値情報はＡとなる。また、第３ノズル列と第１ノズル列との距離がＢカラム分であれば、第３色のデータに対するレジスト調整値情報はＢとなる。このように、第１色のデータを記録する第１ノズル列の位置を基準にして各ノズル列との相対距離に対応して、第２色のデータから第８色のデータのレジスト調整値情報が設定される。
【００７２】
８１３はブロックの幅情報（block_width）を設定するレジスタであり、この幅情報は第１色〜第８色までブロック単位で、共通して使われる値である。
【００７３】
上述のブロックの高さ情報、幅情報及びレジスト調整値情報は、図３（ａ）で説明した設定データに含まれる情報である。
【００７４】
８１５は次のブロックデータのアドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ８０５からレジスタ８１２のうちのいずれかの値と、ブロックデータに関する幅の情報を格納するレジスタ８１３の値を用いて決定することができる。書き込み制御部８Ｂは、書き込み対象となる第１ブロックデータに関する設定情報に従い、次に書き込み対象となる第２ブロックデータの書き込み開始アドレスを決定し、このレジスタに格納する。
【００７５】
８１７はレジスト調整分の書き込み開始アドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ８０５からレジスタ８１２のうち全ての値と、ブロックデータに関する幅の情報を格納するレジスタ８１３の値を用いて決定することができる。書き込み制御部８Ｂは、書き込み対象となる第１ブロックデータに関する設定情報に従い、次に書き込み対象となるレジスト調整分の書き込み開始アドレスを決定し、このレジスタに格納する。
【００７６】
なお、書き込み制御部８Ｂは、例えば第１色のデータについて説明すると、第１ブロックのデータに対応する記録データの書き込み完了前に、第１ブロックのデータのレジスト調整幅分を反映した第２ブロックでの書き込み開始アドレス情報を決定している。他の色のデータ（第２色のデータ〜第８色のデータ）についても同様である。
【００７７】
書き込み制御部８Ｂは、第１ブロックデータに対応する記録データの書き込み完了前に、第１ブロックデータのレジスト幅分に対する書き込みアドレス情報を、決定した書き込み開始アドレスに更新することができる。
【００７８】
また、８１６はデータの書き込みアドレス（ＷＰ）を格納するレジスタである。
【００７９】
８１４はアドレス制御レジスタで、書き込みアドレス（ＷＰ）が読み出しアドレス（ＲＰ）を追い越さないように（両アドレスが重複したアドレスを指定しないように）書き込み処理、読み出し処理の管理をする。
【００８０】
＜記録バッファへのデータの格納（図６）＞
図６は、記録バッファ４に記録データがどのように格納されるか説明する図である。図６（ａ）では、第１色のデータとして縦に順に４ワード分ずつ、格納される状態を示す。ここで１ワードが１６画素分に対応している。レジスタに情報を格納するアドレスは１ずつインクリメントされるものとすると、ライトポインタ（ＷＰ）は１→２→３→４→５→…とカウントされる。
【００８１】
例えば、図６（ａ）のレジスタの設定は、バッファの高さ情報（ラスター数）の値（1st_hight）は「４」であり、データの有り無し情報（1_color_bit）の値は「１（有り）」である。レジスタ８１３（ブロックの幅情報：block_width）の値は「２８」である。
【００８２】
図６（ｂ）は、第２色のデータがある場合に、記録バッファ４へのデータの書き込みを示す図である。第１色の格納領域に全てデータを格納した後、矢印のようにライトポインタ（ＷＰ）を第２色の先頭アドレスへ移動し、第２色のデータの格納を行う。図６（ｃ）では、第２色のデータが無い場合、第１色のデータの格納領域に続き、第３色のデータが格納されることを示す。この場合、図５で示すレジスタ８０６の第２色のデータの有り無し情報（2_color_bit）は、データ無しを示す「０（無し）」である。あるいは、バッファの高さ情報（2nd_hight）が「０」であれば、データが無いことを示すので、この情報を用いてもかまわない。あるいはデータの有り無し情報とバッファの高さ情報との論理積演算（ＡＮＤ処理）を行ってその結果を用いて判断しても良い。
【００８３】
図６（ｄ）では、第２色のデータについて、書き込み位置を示すｅ１（ＷＰ：ライトポインタ）は、読み出し位置を示すｅ２（ＲＰ：リードポインタ）の手前で書き込みを停止することを示す。これは、読み出しが終了していない位置には、データの書き込みを禁止して、上書きをすることを防ぐ制御を行うものである。以上の制御は、第３色から第８色の領域についても同様である。
【００８４】
＜記録バッファへのデータの格納処理＞
図９及び１０は、レジスト調整値がゼロでない時に、記録バッファ４に記録データがどのように格納されるか説明する図である。図９及び１０では、第１色のデータとして縦に順に３ワード分ずつ、格納されている状態を示す。ここで１ワードが１６画素分に対応している。
【００８５】
ここで、図９はデータが入力される順番を示し、図１０は実際に書き込まれるアドレスを示している図である。
【００８６】
また、図９及び１０の斜線部は第１色目のレジスト調整値（６）を示している。実際の書き込み開始位置は図９に示す位置からになるが、実アドレスは図１０に示す通り、レジスト調整値に対応してスキップした位置（例えば左から７つ目の２４）から始まることになる。
【００８７】
また、図９及び１０の２つの図は対応しているので、例えば１番目に書き込まれるデータのアドレスは、図１０に示すように２４となり、２番目に書き込まれるデータのアドレスは図１０に示すように２Ａとなる。
【００８８】
ここで、図９及び１０のレジスタの設定は、バッファの高さ情報（ラスター数）の値（1st_hight）は「３」であり、データの有り無し情報の値（1_color_bit）は「１（有り）」である。レジスタ８１３（ブロックの幅情報：block_width）の値は「１６」である。第１色目のレジスト調整値（1_reg_wnum）は６で第２色目のレジスト調整値（2_reg_wnum）は３である。
【００８９】
この時、例えば図９において、レジスタに情報を格納するアドレスを右に１ずつインクリメントすると、図１０においてライトポインタ（ＷＰ）の実アドレスは０→６→Ｃ→１２→１８→…とカウントアップされることになる。
【００９０】
ここで、データを書き込む順番は、図９及び図１０の様に１６個単位で一つ下の段に行っても構わないし、データを受信する順序により、ブロック幅まで進んで後（１０個単位）一つ下の段に移っても構わない（図９で、１０の位置の次に１７の位置に進む）。
【００９１】
また、図９に示す通りに、第１色のデータについて、１０個目までデータが書き込まれた（格納された）後、１１個目のデータを書き込む先は、次のブロック（第２ブロック）の先頭になる。これはレジスト調整を行うことによって、現在のブロック（第１ブロック）に入りきらなくなったデータを書き込む（格納する）ためである。ここでは、第２ブロックの先頭に格納されるデータが１１個目のデータであることは、レジスタ８１３の値「１６」とレジスタ８０５のレジスト調整値「６」から、１６−６＋１＝１１より求められる。データを格納するカウンタを設け、そのカウンタが１０になれば、第２ブロックの先頭のアドレスを指定する構成にすればよい。
【００９２】
なお、図９において、第１色のデータの１１個目のデータが格納されるアドレスは、第１ブロックに格納される色の数（２）と各色の高さ（３）、ブロックの幅（１６）に基づいて求められる。
【００９３】
レジスト調整分の書き込みが終了（図９で１６番目のデータ書き込みが終了）すると、１７個目のデータは、現在のブロック（第１ブロック）から書かれることになる。これは実際のアドレスが図１０で１６個目がＤＥで、１７個目が２６になると言うことである。
【００９４】
この様にして、現在のブロック（第１ブロック）と次のブロック（第２ブロック）との間を行き来することで、レジスト調整を行いながら、第１色目のデータを書き込んでいく。
【００９５】
第１色目のデータが全て書き終わると、同様の処理を第１ブロックの第２色目以降に行っていく。
【００９６】
また、レジスタに情報を格納するアドレスは、図６のように縦に１ずつインクリメントさせて、ライトポインタ（ＷＰ）の実アドレスを０→２→４→６→８→…とカウントアップさせてもよい。
【００９７】
ここで、図９においてレジスタに情報を格納するアドレスを縦に１ずつインクリメントさせないのは、画像変換ブロック３からのデータや、ホストからのデータの変更に柔軟に対応するためである。
【００９８】
例えば、画像変換ブロック３を使用しない時には、ホストからの記録データは、従来通りレジスタに情報を格納するアドレスは図６Ａのように１ずつインクリメントさせて、ライトポインタ（ＷＰ）は１→２→３→４→５→…とカウントするように対応している。
【００９９】
しかし、画像変換ブロック３を使用して例えばＨＶ変換等を行うと、ＨＶ変換を行った後の記録記録データは、レジスタに情報を格納するアドレスは図６のように１ずつインクリメントさせて、ライトポインタ（ＷＰ）を１→２→３→４→５→…とカウントアップする事が出来なくなる。
【０１００】
その為、アドレスのインクリメント量に自由度を持たせることで、ホストからの様々なデータ転送方式にも対応でき、また画像変換ブロック３でのデータ変換にも対応することが出来るようになる。
【０１０１】
図１１Ａ、図１１Ｂ、図１１Ｃは、レジスト調整に関連したデータの状態を模式的に示す図である。図中の数字はいずれもブロック番号を示している。図１１Ａは、従来例のようにホストコンピュータ（プリンタドライバ）で全てのレジスト調整を行った場合の転送データを示している。図１１Ｂは、本実施形態でホストコンピュータから送信され記録装置が受信したデータを示している。このデータはレジスト調整は行われていない。図１１Ｃは、図１１Ｂのようなデータに対して記録装置側でレジスト調整され、記録装置（インクジェット記録装置）に設けられている記録バッファ４に格納された状態を示している。
【０１０２】
図１１Ａと図１１Ｃに示されたデータを記録媒体へ記録すると、いずれもレジスト調整がなされているため同様な記録結果となるが、図１１Ｃのデータは図１１Ｂの受信データに対して記録装置側でレジスト調整を行ったため、レジスト調整データにより、ラスタ方向（図１１Ａから１１Ｃにおける左右の方向）に記録データの格納される位置がずれ、その結果として図１１Ｂのデータよりもブロック数が１つ増えている。
【０１０３】
このようにホストコンピュータから送信したブロック数と記録装置の記録バッファに書き込まれたブロック数が異なると、論理的な矛盾が生じてしまう。これは、ホストコンピュータから送信したブロック数に基づいて、ホストコンピュータから記録装置に対して記録幅（走査方向）に関する情報を出力するからである。記録装置は、この情報に基づいて記録動作を行うので、ブロック数について異なる量だけ記録がなされない。例えば、ホストコンピュータから記録装置に３ブロック分の記録データを出力し、記録装置は、レジスト調整を行って４ブロックに記録データを格納した場合、記録は３ブロック分しかなされず、１ブロックが記録されないのである。
【０１０４】
本実施形態では、この様な矛盾が生じないように、図１１Ｂに示すようなデータをホストコンピュータから転送する場合、１ブロック余分なデータを付加して記録装置に送信し、ホストコンピュータと記録装置（記録バッファ）とのブロック数が同じとなるようにする。
【０１０５】
図１２Ａ、図１２Ｂ、図１２Ｃは、本実施形態におけるレジスト調整に関連したデータの状態を、図１１Ａ〜図１１Ｃと同様に示す図である。図１２Ａは、従来例のようにホストコンピュータ（プリンタドライバ）で全てのレジスト調整を行った場合の転送データを示しており、図１１Ａと同様な構成となる。図１２Ｂは、本実施形態でホストコンピュータから送信され記録装置が受信したデータを示している。しかし、このデータに対してはレジスト調整は行われていない。図１２Ｃは、図１２Ｂのようなデータに対して記録装置側でレジスト調整され、記録バッファに格納された状態を示している。
【０１０６】
ここで、図１１Ｂ及び図１１Ｃに示したデータと、図１２Ｂ及び図１２Ｃに示したデータとを比較すると、図１１Ｂの受信データに対してレジスト調整を行った図１１Ｃのデータのブロック数は１つ増えているが、図１２Ｂの受信データに対してレジスト調整を行った図１２Ｃのデータのブロック数は増えていないことがわかる。ずなわち、ホストコンピュータから図１２Ｂのようなデータを転送する場合には、１ブロック余分に送信する必要はない。
【０１０７】
図１１Ｂ及び図１１Ｃに関連して、１ブロック余分に転送する場合についてもう少し詳しく説明する。図１３Ａは、１ブロック余分に転送する場合のデータ構成を示す図である。この場合、留意すべきは１ブロックのサイズ（走査方向のブロックサイズ）と、転送される記録データの最後のブロックについてのデータ量（図１１Ｂ及び１１Ｃでは３つめのブロックについての走査方向のデータサイズ、図１２では４つめのブロックについての走査方向のデータサイズ）、レジスト調整量（例えばカラム単位の値）の関係である。
【０１０８】
例えば、
走査方向のブロックサイズ＜走査方向のデータサイズ＋レジスト調整量
であれば、図１１Ｃに示すように、ブロック数を１つ増やす必要がある。
【０１０９】
一方、
走査方向のブロックサイズ＞走査方向のデータサイズ＋レジスト調整量
であれば、図１２Ｃに示すように、ブロック数を増やす必要はない。
【０１１０】
このように、ホストコンピュータにおいて、走査方向のデータサイズとレジスト調整量の和が走査方向のブロックサイズより大きくなるか否かを判断し、この判断結果に応じて、ブロック数を増やす処理を行う。
【０１１１】
ここで、図１４は、ホストコンピュータ１４０１と記録装置１４０２の概略制御構成を示す図である。
【０１１２】
ホストコンピュータ１４０１から記録装置１４０２へ記録データがインターフェース１４０５を介して転送される。
【０１１３】
ホストコンピュータ１４０１においてなされる処理の一例を以下に述べる。記録データを生成するプリンタドライバーはＣＰＵ１４０３により実行される。そして、これらの記録データはブロック単位で生成された後、所定の圧縮方法で圧縮され、記録装置１４０２に対して出力処理を行う。
【０１１４】
記憶手段１４０４は、生成した記録データ、あるいは圧縮されたデータを一時的に保存するために用いられる。また、記憶手段１４０４には生成した記録データのブロック数（データ量）の数を保持するカウンタを備えている。
【０１１５】
このＣＰＵ１４０３は、上述したように、走査方向のデータサイズとレジスト調整量の和が走査方向のブロックサイズより大きくなるか否かを判断し、この判断結果に応じて、ブロック数を増やす処理を行う。このため、ＣＰＵ１４０３は予め、走査方向のブロックサイズ、レジスト調整量についての情報を記録装置から取得する。
【０１１６】
図１６は、データ生成についての処理を示すフローチャートである。ステップＳ１６０１において、ブロック単位でデータを生成する。ブロック単位のデータを生成するたびに、生成するブロック数をカウントする。そして、ステップＳ１６０２において、最後のブロック（記録ヘッドの走査方向の最も下流のブロック）であるか否かを判定する。もし最後のブロックであればＳ１６０３にて、ブロック付加処理を行う。このブロック付加処理は図１５において説明する。図１６で述べた処理は、走査毎に走査方向のデータ量は異なるので、走査毎に行なわれる。
【０１１７】
そして、１走査の記録幅についての情報を前もって取得することで、記録する生成ブロックの数が得られ、この数がＳ１６０２の判断の閾値として使われる。
【０１１８】
その処理について図１５のフローチャートを用いて詳細に説明する。ステップＳ１５０１において、レジスト調整量の情報とブロックサイズ（主走査方向）について情報を取得する。ステップＳ１５０２において、最後のブロックに格納されるデータサイズ（走査方向のデータサイズ）を取得する。ステップＳ１５０３において、最後のブロックについてのデータサイズ（走査方向）とレジスト調整量の情報との和と走査方向のブロックサイズとを比較する。なお、ここで、データサイズ、レジスト調整量の情報、ブロックサイズは例えばカラム数である。
【０１１９】
そして、ステップＳ１５０３において、走査方向のブロックサイズの方が小さければ（ＮＯ）、ステップＳ１５０４においてブロックを１つ追加する。走査方向のブロックサイズの方が大きければ（ＹＥＳ）、終了する。
【０１２０】
なお、この判断は、各色に対応する記録データについて行う。これは、走査方向のブロックサイズは各色について同じであるが、レジスト調整量と最後のブロックについての走査方向のデータサイズは色毎に異なる場合があるからである。そして、１色でもブロックを追加する必要があれば、他の色についてもブロックの追加を行う。
【０１２１】
次に、各ブロックのデータに付加される色変えコードに説明する。上記で図３Ａの（ｂ）に関連して説明したが、記録データの区切りを判別するために、各ブロックに色変えコードが挿入されている。
【０１２２】
そして、図３Ａの（ｂ）に示すように１つの色についての情報として、圧縮ＴＡＧや圧縮されたデータで構成されている。そして、色変えコードは、これらのデータの後に付加されている。
【０１２３】
しかし、ステップＳ１５０４でブロックを付加する場合には、これらの圧縮ＴＡＧや圧縮されたデータはなく、色変えコード（２３２、２３３、２３９）のみが最後のブロック（第nブロックデータ）２３１に続いて付加される。ここでは、色数は８であるので、８つの色変えコードが付加されてる。図３Ｂの（ｃ）は、このコードを受信した場合の第ｎブロックデータ以降の状態を示す図である。
【０１２４】
これにより、記録装置は、色変えコードのみが付加されているので、記録装置はレジスト調整のために記録データがブロックからはみ出すために、ブロックが付加して格納する処理を行う指示であることを認識（判断）でき、記録バッファにレジスト調整量に基づいて記録データを格納する。
【０１２５】
なお、ブロックを付加する場合の他の例として、図３Ｂの（ｄ）に示すように例えば色毎に１バイトのヌルデータ（２４２、２４４、…、２５５）のみを含み、このヌルデータに色変えコード（２４３、２４５、…、２５６）が付加する形態でも構わない。これにより、記録装置は、圧縮ＴＡＧが含まれず１バイトのヌルデータのみで構成されていることで、ブロックが付加する指示があることを容易に認識できる。
【０１２６】
あるいは、色変えコードを付加するのではなく、図３Ｂの（ｅ）に示すように最後のブロックデータ（第ｎブロック）２６１の後にブロックの付加の指示を示すコマンド２６２を追加してもかまない。
【０１２７】
次に、上述したブロックを付加する場合についてホストコンピュータにおける記録データの格納処理についての補足説明を行う。図１３Ａにおいて、（ａ）は圧縮前のデータを示し、（ｂ）は圧縮前のデータにレジスト調整幅を加えた状態を示し、（ｃ）は増えたブロックの後端を基準としたレジスト調整幅を示し、（ｄ）は最後の記録データが格納されるべき位置を示している。なお、（ｂ）のブロックは第ｎブロック、（ｃ）のブロックは第ｎ＋１ブロックとする。
【０１２８】
この場合、最後の記録データの位置は、（ｄ）のクロスハッチングした領域にある必要がある。図３Ｂの（ｄ）を用いて説明した場合は、このクロスハッチングした領域にある。これは、（ｄ）の斜線部分の領域に最後の記録データが格納されると、レジスト調整することによってブロックが更に１つ増えてしまうからである。
【０１２９】
図１３Ｂも図１３Ａと同様に、（ａ）は圧縮前のデータを示し、（ｂ）は圧縮前のデータにレジスト調整幅を加えた状態を示し、（ｃ）は増えたブロックの後端を基準としたレジスト調整幅を示し、（ｄ）は色変えコード（COL_CNG）が挿入されるべき位置を示している。図１３Ａと異なるのは、１ブロック余分に転送しない点である。
【０１３０】
この場合にも、（ｄ）のクロスハッチングされた領域以外に最後の記録データが格納されていると、レジスト調整することによって１ブロック増えてしまうため、色変えコードの位置は、（ｄ）に示すように、（ｃ）に示された後端を基準にしたレジスト調整幅の境界より前にある必要がある。
【０１３１】
図７を参照して、レジスト調整を行う必要がない場合における記録データの格納について説明する。
【０１３２】
図７の（ａ）は、記録バッファに書き込まれた１回の走査（スキャン）に対応した記録データの例を示す図である。図示した例では第４ブロックに対応する領域に画像データがなく、記録バッファには第４ブロックは確保されていない。
【０１３３】
また、図７（ａ）で、第２ブロックに格納されるデータには第３色のデータ及び第４色のデータはないので、これらの分をつめて第５色のデータ〜第８色のデータが格納されている。第３ブロックには、第１色のデータ、第２色のデータのみが格納され、第３色以降のデータは格納されていない。第２ブロックと第３ブロックのハッチングされたは部分は、データが無いためにバッファの割り当てがされていないことを示す。従って、第２ブロックにおける第８色のデータの最終アドレスの次のアドレスは、第３ブロックにおける第１色のデータの先頭アドレスである。このように、レジスト調整を行う必要がない場合には、画像データを詰めて記録バッファに格納することができるので、記録バッファを効率良く使用することができる。
【０１３４】
従って、例えば、記録データが無い領域に対しても記録バッファの領域を一律に格納した場合に記録バッファに１走査分のデータすべてを格納する領域を確保できない場合でも、画像データの有無をレジスタに格納されている色のデータの有無の情報に基づきデータの格納を制御することで１走査分のデータを格納することができる。
【０１３５】
＜記録バッファからのデータの読み出し＞
以下に、図８を参照して記録バッファからのデータの読み出し処理について説明する。図８において、左側は記録バッファリング構造制御回路８の読み出しアドレス制御部８Ａを示し、右側は記録バッファ４を示している。
【０１３６】
記録バッファ４のバッファ領域は、記録バッファの先頭のアドレスであるtop_adrで表され、最終アドレスはbottom_adrで表される。この先頭アドレスはレジスタ８０３に格納され、最終アドレスはレジスタ８０４に格納される。記録バッファに示される「ＲＰ」は図５と同様にリードポインタであり、「ＷＰ」はライトポインタである。記録バッファ４におけるＲＰとＷＰの間のハッチング部分は記録データが格納されていることを表し、それ以外の部分は記録データが格納されていないことを表す。
【０１３７】
読み出しアドレス制御部８Ａ内の８０２は、データの読み出しアドレス（ＲＰ：リードポインタ）を示すレジスタであり、破線の枠で囲った９００は第１レジスタ群、実線の枠で囲った９０１は第２レジスタ群である。
【０１３８】
第１ブロックから第８ブロックの記録データを記録する場合、例えば、走査の開始時において、第１レジスタ群には第１ブロックについての情報が格納されている。また、第２レジスタ群には、第２ブロックについての情報が格納される。第１ブロックの記録が終了すると、第１レジスタ群９００には第２レジスタ群９０１の情報がコピーされて格納される。そして第２レジスタ群９０１には、第３ブロックの情報が格納される。以下、最後の第８ブロックのデータが格納されるまで同様の処理が順に行われる。そして、次の走査開始時には、再び、第１レジスタ群には第１ブロックの情報が格納され、第２レジスタ群には第２ブロックの情報が格納される。
【０１３９】
第１レジスタ群が示す第ｎブロックの記録が終了した時、第２レジスタ群に第ｎ＋１ブロックの情報が格納されていない場合は、第ｎ＋１ブロックの記録データがまだ準備できていないので、第２レジスタ群の情報は第１レジスタ群にコピーされず、加えて記録バッファからのデータ読み出しを停止する。
【０１４０】
第１レジスタ群内にあるレジスタ８１９は、第１色についての高さ情報（1st_hight）と色のデータの有り無し情報（1_color_bit）を設定するレジスタである。各レジスタ８２２、８２４、８２６、８２８、８３０、８３２、８３４は第２色〜第８色について同様に高さ情報と色のデータの有り無し情報を設定するレジスタである。
【０１４１】
８２０は各ブロックデータの幅情報（block_width）を格納するレジスタである。この幅情報は第１色〜第８色までブロック単位で、共通して使われる値である。
【０１４２】
レジスタ８１８は第１色の読み出しアドレス（1st_color_adr）を格納するレジスタである。第１色のデータが格納されている記録バッファ８１９から読み出されるとアドレスが更新される。例えば図９に示すように、第１色のデータの内、１→２→３→４と１カラム分のデータが読み出される。レジスタ８２１、８２３、８２５、８２７、８２９、８３１、８３３はそれぞれ第２色〜第８色の読み出しアドレスを格納するレジスタであり、第２色〜第８色のデータも第１色のデータと同様に順に１カラム分のデータが読み出される。
【０１４３】
記録バッファ４に格納されるデータは複数の色のデータを含むため、例えば、第１色、第２色、…のデータが混在した場合、各色単位のデータを格納するためのアドレスは、連続していないものとなる。そのため、読み出しアドレスのレジスタが１つであれば、例えば第１色の記録バッファ４のアドレスの次に第２色の記録バッファ１のアドレス読み出しを行う際、アドレス計算をする必要があるが、記録バッファ４に各色ごとに読み出しアドレスを格納するレジスタを用意することで、カラム単位での読み出しを行う際のアドレス計算を省くことができる。
【０１４４】
８１７はアドレス制御レジスタである。読み出しアドレスは、記録データ生成ブロック５が各色毎にデータ読み出し要求信号線Ｓ８０５を介して要求すると、アドレス制御レジスタ８１７は読み出しアドレスとして信号線Ｓ８０６を介して１アドレスずつ加算して記録バッファ４に出力する。
【０１４５】
８３５は次のブロックのアドレスを格納するレジスタである。現在読み出されているブロックが第１ブロックであれば、このレジスタには第２ブロックの先頭のアドレスが格納される。このレジスタの値は、現在読み出されているブロックデータの読み出しが終了すると、レジスタ８０２にコピーされる。これにより、次のブロックデータの読み出しがスムーズにできる。
【０１４６】
レジスタ８３６は第１色から第８色のうち、読み出す順序を特定するための情報を格納するテーブルである。このテーブルに設定された値によって記録バッファからデータを読み出す順序を自由に設定することができる。例えば、第１色→第２色→…→第８色の順に読み出すことができる。また、値を変えて、第１色→第２色→第５色→第６色→第７色→第８色のように第３色、第４色のデータの読み出しをスキップすることもできる。これによって、格納されていない色の記録データについては、正確に読みとばすことができる。
【０１４７】
第２レジスタ群９０１は次のブロックデータに関する情報を格納するバッファの集まりである。第１レジスタ群の各レジスタが読まれたら、第２レジスタ群の各レジスタに設定されている値が、第１レジスタ群の対応するレジスタに設定される。例えば、レジスタ８３８に設定されている値がレジスタ８１９に設定される。レジスタ８３９〜８４５は、次のブロックデータにおける第２色〜第８色のデータについて同様の情報が設定されるレジスタである。
【０１４８】
レジスタ８３８（８１９）には第１色目のデータのバッファの高さ情報と、第１色のデータの有り無しを示す情報が格納される。
【０１４９】
８４６（８２０）はブロックの幅情報を設定するレジスタである。この幅情報は第１色〜第８色までブロック単位で、共通して使われる値である。
【０１５０】
レジスタ８７８は、先に設定したブロックのサイズとブロックのサイズが同じであるか否かを表す情報（same_type）を格納するレジスタであり、ブロックのサイズが同じ場合、この値を「１」とすることで、第１レジスタ群に同じ値を容易に再設定することができる。この場合、レジスタ８３８〜８４６の設定を省くことができる。一方、レジスタ８７８の値が「０」の場合には、各レジスタ８３８〜８４６にそれぞれの値が設定される。
【０１５１】
以上説明したように好適な一実施形態によればインクジェット記録装置において、記録ヘッドの走査方向におけるレジスト調整を行う機能を記録装置側に持たせることで、ホストコンピュータでの記録データの生成を高速化することができ、ホストコンピュータで記録が指示されてから記録装置が記録を実行するまでの時間を短縮することができる。
【０１５２】
＜変形例＞
上記の実施形態では、各色のブロックはいずれも同じ幅であったが、ブロック毎に異なった幅を設定しても良い。
【０１５３】
図７の（ｂ）は、上記の実施形態における図７の（ａ）より、更にメモリを有効に使う場合を説明した図である。図７（ａ）では、記録領域を複数に分割した各ブロックの走査方向の幅情報はどのブロックも等しかったが、ブロック内に記録するべき画像データが無い場合は、必要最低限の幅情報を持てばよい。例えば、図７（ａ）の第３ブロックと第５ブロックのデータ量が他のブロックよりも少ないと想定すると、第３ブロックと第５ブロックの幅を、記録データの量に応じて短くすることができる。
【０１５４】
この場合、本変形例においては、幅がフルサイズのブロックとその半分のサイズのブロックとの２つのサイズのブロックを用いて制御する。幅が半分のサイズのブロックは色変えコードを区切りとして使用し、フルサイズのブロックは所定長であるので、色変えコードを使用しない。つまり、受信バッファのデータを記録バッファに書き込む（転送する）際に、色変えコードが半分のブロックサイズを超えても現れない場合は、フルサイズのブロックであると認識する。本例では、第３ブロックと第５ブロックの幅を、記録データ量に応じて、他のブロックの幅の半分とした。
【０１５５】
これによって、メモリ容量が少ない場合にも、記録バッファを効率良く使うことができる。例えば、記録バッファが１走査分のデータすべてを格納する領域を確保できない場合でも、１走査分のデータを格納することができる。
【０１５６】
なお、この場合、ホスト装置側で、記録データが複数ブロックにまたがってヌルデータが続く場合に、ブロックの幅を異ならせるように記録データを生成すればよい。
【０１５７】
＜他の実施形態＞
なお以上の実施形態では本発明をインクジェット方式に従って記録を行うインクジェット記録装置に適用した場合を例に挙げて説明したが、本発明は複数の記録素子が配列された記録ヘッドを記録素子の配列方向を交差する方向に走査して記録を行う記録装置であれば、他の方式の記録装置にも適用できる。
【０１５８】
以上の実施形態は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギとして熱エネルギを発生する手段（例えば電気熱変換体やレーザ光等）を備え、前記熱エネルギによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
【０１５９】
その代表的な構成や原理については、例えば、米国特許第４７２３１２９号明細書、同第４７４０７９６号明細書に開示されている基本的な原理を用いて行うものが好ましい。この方式はいわゆるオンデマンド型、コンティニュアス型のいずれにも適用可能であるが、特に、オンデマンド型の場合には、液体（インク）が保持されているシートや液路に対応して配置されている電気熱変換体に、記録情報に対応していて核沸騰を越える急速な温度上昇を与える少なくとも１つの駆動信号を印加することによって、電気熱変換体に熱エネルギを発生せしめ、記録ヘッドの熱作用面に膜沸騰を生じさせて、結果的にこの駆動信号に１対１で対応した液体（インク）内の気泡を形成できるので有効である。
【０１６０】
この気泡の成長、収縮により吐出用開口を介して液体（インク）を吐出させて、少なくとも１つの滴を形成する。この駆動信号をパルス形状とすると、即時適切に気泡の成長収縮が行われるので、特に応答性に優れた液体（インク）の吐出が達成でき、より好ましい。
【０１６１】
さらに、記録装置が記録できる最大記録媒体の幅に対応した長さを有するフルラインタイプの記録ヘッドとしては、上述した明細書に開示されているような複数記録ヘッドの組み合わせによってその長さを満たす構成や、一体的に形成された１個の記録ヘッドとしての構成のいずれでもよい。
【０１６２】
加えて、上記の実施形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
【０１６３】
また、以上説明した記録装置の構成に、記録ヘッドに対する回復手段、予備的な手段等を付加することは記録動作を一層安定にできるので好ましいものである。これらを具体的に挙げれば、記録ヘッドに対してのキャッピング手段、クリーニング手段、加圧あるいは吸引手段、電気熱変換体あるいはこれとは別の加熱素子あるいはこれらの組み合わせによる予備加熱手段などがある。また、記録とは別の吐出を行う予備吐出モードを備えることも安定した記録を行うために有効である。
【０１６４】
さらに、記録装置の記録モードとしては黒色等の主流色のみの記録モードだけではなく、記録ヘッドを一体的に構成するか複数個の組み合わせによってでも良いが、異なる色の複色カラー、または混色によるフルカラーの少なくとも１つを備えた装置とすることもできる。
【０１６５】
以上説明した実施の形態においては、インクが液体であることを前提として説明しているが、室温やそれ以下で固化するインクであっても、室温で軟化もしくは液化するものを用いても良く、あるいはインクジェット方式ではインク自体を３０°Ｃ以上７０°Ｃ以下の範囲内で温度調整を行ってインクの粘性を安定吐出範囲にあるように温度制御するものが一般的であるから、使用記録信号付与時にインクが液状をなすものであればよい。
【０１６６】
さらに加えて、本発明に係る記録装置の形態としては、コンピュータ等の情報処理機器の画像出力端末として一体または別体に設けられるものの他、リーダ等と組み合わせた複写装置、さらには送受信機能を有するファクシミリ装置の形態を取るものであっても良い。
【０１６７】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【図面の簡単な説明】
【０１６８】
【図１】本発明の好適な実施形態としてのインクジェット記録装置のカバーを外した状態の外観斜視図である。
【図２】図１のインクジェット記録装置の記録制御部の構成を示すブロック図である。
【図３Ａ】ホストコンピュータから転送され、受信バッファに格納されるデータの構造を示す図である。
【図３Ｂ】ホストコンピュータから転送され、受信バッファに格納されるデータの構造を示す図である。
【図４】記録データを保持する記録バッファのデータ構造を示す図である。
【図５】記録バッファリング構造制御回路の書き込みアドレス制御を説明する図である。
【図６】記録バッファに記録データがどのように格納されるか説明する図である。
【図７】記録バッファに書き込まれた１回の走査に対応した記録データの例を示す図である。
【図８】記録バッファリング構造制御回路の記録バッファからのデータの読み出し処理について説明する図である。
【図９】レジスト調整値がゼロでない時の、データの書き込み順番を説明する図である。
【図１０】レジスト調整値がゼロでない時の、実アドレスを説明する図である。
【図１１Ａ】レジスト調整に関連したデータの状態を模式的に示す図である。
【図１１Ｂ】レジスト調整に関連したデータの状態を模式的に示す図である。
【図１１Ｃ】レジスト調整に関連したデータの状態を模式的に示す図である。
【図１２Ａ】レジスト調整に関連したデータの状態を模式的に示す図である。
【図１２Ｂ】レジスト調整に関連したデータの状態を模式的に示す図である。
【図１２Ｃ】レジスト調整に関連したデータの状態を模式的に示す図である。
【図１３Ａ】レジスト調整による最終ブロックのデータ構成を示す図である。
【図１３Ｂ】レジスト調整による最終ブロックのデータ構成を示す図である。
【図１４】本発明に係るホストコンピュータと記録装置の概略制御構成を示す図である。
【図１５】ブロック付加処理を示すフローチャートである。
【図１６】データ生成についての処理を示すフローチャートである。
【図１】
2005193651.tif 000003
【図２】
2005193651.tif 000004
【図３Ａ】
2005193651.tif 000005
【図３Ｂ】
2005193651.tif 000006
【図４】
2005193651.tif 000007
【図５】
2005193651.tif 000008
【図６】
2005193651.tif 000009
【図７】
2005193651.tif 000010
【図８】
2005193651.tif 000011
【図９】
2005193651.tif 000012
【図１０】
2005193651.tif 000013
【図１１Ａ】
2005193651.tif 000014
【図１１Ｂ】
2005193651.tif 000015
【図１１Ｃ】
2005193651.tif 000016
【図１２Ａ】
2005193651.tif 000017
【図１２Ｂ】
2005193651.tif 000018
【図１２Ｃ】
2005193651.tif 000019
【図１３Ａ】
2005193651.tif 000020
【図１３Ｂ】
2005193651.tif 000021
【図１４】
2005193651.tif 000022
【図１５】
2005193651.tif 000023
【図１６】
2005193651.tif 000024