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