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