以下に、図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
なお、この明細書において、「記録」(「プリント」という場合もある)とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、また人間が視覚で知覚し得るように顕在化したものであるか否かを問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
さらに、「インク」(「液体」と言う場合もある)とは、上記「記録(プリント)」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成または記録媒体の加工、或いはインクの処理(例えば記録媒体に付与されるインク中の色剤の凝固または不溶化)に供され得る液体を表すものとする。
またさらに、「ノズル」とは、特にことわらない限り吐出口ないしこれに連通する液路およびインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
以下、本発明をインクジェット記録装置(印刷装置)に適用した一実施形態について具体的に説明する。
<記録装置の概略構成>
図1は、本実施形態のインクジェット記録装置の概略構成を示すカバーを外した状態の斜視図である。
図1において、キャリッジ101は記録ヘッド(不図示)とカートリッジ110を搭載し、ガイド軸102に沿って走行可能である。なお、本実施形態では、記録ヘッドは、インクジェット方式の記録ヘッドである。また、103はシャーシであり、メインシャーシ103aと左右の側面板103b及び103cから構成される。108はキャリッジの駆動源であるキャリッジモータであり、109はキャリッジに接続されキャリッジモータ108によって駆動されるベルト、130は記録ヘッド吐出面の清掃や吸引動作行う回復系ユニット、140はキャリッジ101に搭載された発光素子及び受光素子と共にキャリッジの位置及び速度を算出するCRエンコーダを構成するスケールである。
記録媒体としての記録紙は、給紙ローラ(不図示)によって装置本体内に送り込まれ、紙送りローラ105とピンチローラ(不図示)、紙押え板(不図示)によって狭持され、記録ヘッドの記録領域へと搬送され記録が行われる。
インクカートリッジ110は、イエロー、マゼンタ、シアンの3色のインクを収容したカラーインクカートリッジと、ブラックインクを収容したブラックインクカートリッジの2種類で、それぞれ別々にカートリッジガイド7に挿入され、記録ヘッドと接続される。
本実施形態のインクジェット記録装置は、ホストコンピュータと接続され、ホストコンピュータ(プリンタドライバ)から記録データの供給を受けて記録を行う。また、本実施形態の記録装置は、記録ヘッドを搭載したキャリッジを記録媒体上で走査させて記録を行うために、記録ヘッドの走査方向の記録領域を複数の領域に分割し、分割された領域単位で画像を記録(印刷)する。
その場合、本実施形態のインクジェット記録装置では、後述するように、ホストコンピュータ側では、バイトを単位とした記録データ位置の調整(レジスト調整)のみを行い、ビット単位のレジスト調整は、記録装置側の記録バッファリング構造制御回路8で行う。そのため、ホストコンピュータでの記録データの生成が高速化され、実効的な記録速度の高速化を図ることが可能となる。
<記録制御部の構成>
図2は、本発明にかかる記録装置の記録制御部の構成を示すブロック図である。同図に於いて、1はインターフェース信号線S1を介してホストコンピュータ(不図示)から転送されてくるデータを受信し、その受信したデータの中から、記録装置の動作に必要なデータ及び記録データを抽出して一旦蓄えるインターフェース制御部(コントローラ)であり、インターフェースコントローラ1で抽出されたデータは信号線S2を介して受信バッファ2に格納される。
受信バッファ2はSRAMもしくはDRAM等の記憶装置(メモリ)で構成され、この受信バッファに蓄えられるデータは図3(a)、(b)で示すような構造のものとなる。
図3(a)において受信バッファのデータ構造が示されるように、左から順に「コマンド」(201)、「データ長」(202)、「設定データ」(203)のデータが格納され、これに続いて「コマンド」(204)、「データ長」(205)、「設定データ」(206)のデータが格納されている。これは時系列順に転送されてきたデータが、受信バッファの連続したアドレスに格納されることを示し、ここで示す設定データ206は、例えば給紙の実行や紙送り量の設定、使用する記録ヘッド数等を示す情報であり、この設定データで定められた情報が全て揃って初めて記録装置で記録が可能となる。この後に、記録の対象となる記録データ(209、212)が受信バッファ2に格納される。
この記録データ(209、212)は、記録ヘッドが記録媒体上を1度の走査で記録する際に必要とされるデータ量を、それより少ないデータ量としてブロック単位に分割したデータであり、そのブロック単位で記録データを区切り、順次第1ブロックデータ(209)、第2ブロックデータ(212)、…として格納される。
図3(b)はブロック単位に分割された記録データのデータ構造を詳細に示す図であり、同図で示すように、複数の色のデータ(213〜214)が各々圧縮されたデータとして順次格納される。この色データは、インクの色(シアン、イエロー、マゼンタ、黒)に対応した記録データのことであり、「色変えコード」(216、217、218)で区切られる。
例えば、シアン、イエロー、マゼンタ、それと黒の4色の色データを想定した場合、各色毎に縦64ノズルを1列としたノズル列が走査方向に2列ずつ配列する記録ヘッドを用いると、各ノズル列単位のデータが1つの色データを構成することになるのでノズル2列が4色分、すなわち、圧縮された第1色から第8色の色データが一つのブロックデータ内に記録データとして格納される。このノズル列の各ノズルは、記録媒体の搬送方向に並んでいる。例えば、第1色と第2色がシアンのデータ、第3色と第4色はマゼンタのデータ、第5色と第6色はイエローのデータ、第7色と第8色は黒のデータとなる。
図4は記録データを保持する記録バッファのデータ構造を示す図である。例えば1回の走査で最大約8インチの走査方向の長さを記録する場合、1つのブロックデータが走査方向に約1インチの記録ができるサイズとすると、トータル8ブロックの記録データを記録すれば、1走査分の画像が完成することになる。第1ブロックから第8ブロックは記録ヘッドの走査方向に配置され、各ブロックデータには、第1色データから第8色データが格納される。各ブロック内に格納される各色データの長さは記録ヘッドのノズル数に対応するものである。
説明を図2に戻し、各制御ブロックの説明を続ける。受信バッファ2に格納されるデータのうち、記録装置の制御用の設定値である「コマンド」、「データ長」、「設定データ」は、インターフェースコントローラ1から信号線S902を介してCPU9により読み出され、図中にある各部制御回路(7、8)に設定される(S903、S907)。CPU9は読み出したデータ(図3(a)の201〜208に相当するデータ)を解釈し、その結果に従って記録装置の全体的な記録制御を統括する。一方、CPU9は記録データの処理に関してはデータ解凍ブロック55を起動して処理を実行させるものとする。
データ解凍ブロック55は受信バッファ2から、図3(b)で示されるように「圧縮TAG」と「データ」及び「色変えコード」の3種類のデータを読み出し、これらのデータに基づきデータの展開制御を実行する。本実施形態ではデータの圧縮/解凍方法としてPackBits圧縮を用いたので、圧縮TAGが8ビットで00hから7Fhまでの値の場合、非連続なデータが1から128個データ領域に有るとして処理し、圧縮TAGが8ビットでFFhから81hまでの値の場合、次の1バイトデータを連続した2から128個のデータに解凍する処理を行う。圧縮TAGの所で、80hを読み出した場合は色変えコードとして処理する。解凍したデータを信号線S4aを介して、画像変換ブロック54に送る。この画像変換ブロックにてHV変換がなされ、信号線S4bを介してHV変換されたデータが記録バッファ4に格納される。
記録バッファ4には解凍およびHV変換された記録データが図4に示すデータ構造で格納される。記録バッファ4の先頭アドレスには第1ブロックの第1色データの先頭データが書き込まれ、その後に続くデータは、アドレスを適宜変更しながら順次書き込まれる。記録バッファのアドレスに一つの色データとして格納できる領域は、最初にCPU9が読み込んだ設定データで決定され、その値以上のデータは書き込めないので記録データを圧縮する際には、その設定データに従ったデータサイズの制限が加えられることになる。色変えコードを検出した後のデータは第2色データの先頭番地から順次書き込まれる。このアドレスデータの制御は後に説明する記録バッファリング制御構造回路8が実行することになる。
この書き込みを第1ブロックの第1色データから第8色データまで繰り返し、第8色データの書き込みを終えて色変えコードを検知すると、第1ブロックのデータが全て書き込み終えたことになる。データ解凍ブロック55はデータの展開動作を終了し、CPU9に対しブロック1個分のデータの展開が完成したことを割込み(S906)で伝え、CPU9からの次のデータ展開の起動を待つ。
記録バッファ4上に複数ブロックの記録データが揃った段階で、CPU9は記録動作を開始すべくキャリッジモータ(図1の108)を動作させ、記録ヘッド6を搭載したキャリッジを走査させながら、記録データをキャリッジエンコーダ(CRエンコーダ)10に同期して転送し、記録することで紙面上(記録媒体に)に画像を完成させることができる。記録ヘッド6が主走査方向に走査した後、搬送手段が記録媒体を副走査方向に搬送する。こうして、記録ヘッドの走査と、記録媒体の搬送を繰り返し行って、1ページ分の画像の記録を行う。
記録データ生成ブロック5は、記録バッファ4上に有る記録データの各ブロック構造を、CPU9から指定された値に従って、CRエンコーダ10に同期したタイミングで信号線S5を介して読み出し、記録ヘッド6が記録できるデータ構造に変換しながら信号線S6に出力していく。この記録データ生成ブロック5は後で述べる記録バッファ内のブロック幅(ブロックの長さを示す。)の情報、ブロックの各色の高さ(色データの「ラスター数」という。)についての情報を保持する。
尚、記録バッファ4から読み出されたデータ領域は次の記録データを蓄えるために、零クリアされる。
<受信バッファの書き込み、読み出し制御>
以上説明したように受信バッファ2には、インターフェースコントローラ1がデータを書き込み、データ解凍ブロック55が記録データのみを読み出すが、その書き込みアドレスと読み出しアドレスを制御しているのが受信バッファリング構造制御回路7である。受信バッファリング構造制御回路7は受信バッファ2の先頭アドレスと最終アドレス、それと書き込みアドレスと読み出しアドレスの管理を行っている。
受信バッファリング構造制御回路7はインターフェースコントローラ1から受信する書き込み要求信号(S701)を受け付け毎に1アドレスずつ加算し、これを書き込みアドレスの情報として受信バッファ2に出力する(S702)。そして、受信バッファリング構造制御回路7は受信バッファ2の最終アドレスに達した場合に書き込みアドレスを受信バッファ2の先頭のアドレスに戻す制御を行う。
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、受信バッファ2がデータでいっぱいになり、次のデータを書き込めない旨をインターフェースコントローラ1に信号線S703を介して通信する。
このとき同時にCPU9に対しても信号線S904の割込み信号により、受信バッファ2はデータの書き込みができない状態であることを知らせる。受信バッファ2の構造はCPU9が信号線S903のバスを用いて内部のレジスタに書き込むことで設定することができる。
読み出しアドレスは、CPU9が受信バッファリング構造制御回路7の中に有るデータリード用レジスタを介して直接に受信バッファ2の中のデータを読み出す場合と、データ解凍ブロック55がデータ読み出し要求信号線S705を介して要求した場合に、読み出しアドレスとして信号線S706を介して1アドレスずつ加算されて受信バッファ2に出力される。
受信バッファリング構造制御回路7は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを受信バッファ2の先頭アドレスに戻す制御を行う。また読み出しアドレスが書き込みアドレスに到達(一致)した場合、受信バッファ上からデータがなくなったので、次のデータを読み出せない旨をデータ解凍ブロックに信号線S704を介して通信する。このとき同時にCPU9に対しても信号線S904の割込み信号線で、受信バッファ2上には、読み出すデータが無い旨を知らせる。
以上が受信バッファ2に対するデータの書き込み、読み取り制御の処理内容である。次に、この受信バッファ2から読み出され、展開処理されたデータを記録バッファに書き込み、あるいはその記録バッファからデータを読み取るための処理内容を説明する。
<記録バッファの書き込み、読み出し制御>
記録バッファ4に対して、画像変換ブロック54が記録データを書き込み、記録データ生成ブロック5がその書き込まれた記録データを読み出すが、その際、書き込みアドレスと読み出しアドレスを制御しているのが記録バッファリング構造制御回路8である。
記録バッファリング構造制御回路8は記録バッファの先頭アドレスと、最終アドレス、それと書き込みアドレスと、読み出しアドレスの管理を行っている。
記録バッファリング構造制御回路8は画像変換ブロック54から受信する書き込み要求信号(S801)を受け付ける毎にアドレスを適宜変更し、これを書き込みアドレスの情報として記録バッファ4に出力する(S802)。そして、記録バッファリング構造制御回路8は記録バッファ4の最終アドレスに達した場合に書き込みアドレスを記録バッファ4の先頭のアドレスに戻す制御を行う。
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、記録バッファ4が記録データでいっぱいになり、次の記録データを書き込めない旨を画像変換ブロック54に信号線S809を介して通信する。
また、データ解凍ブロック55が色変えコードを受信バッファ2から読み込んだ場合、データ解凍ブロック55は信号線S541を介して画像変換ブロック54にその旨を通信し、画像変換ブロックは、信号線S807を介して、記録バッファリング構造制御回路に出力する。記録バッファリング構造制御回路8は次の色のデータを格納する先頭番地を信号線S802から出力するように準備する。記録バッファ4の構造はCPU9が信号線S907のバスを用いて内部のレジスタに書き込むことで設定することができる。
読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、読み出しアドレスとして信号線S806を介して1アドレスずつ加算されて記録バッファ4に出力される。
記録バッファリング構造制御回路8は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを記録バッファ4の先頭アドレスに戻す制御を行う。
記録データ生成ブロック5は現在読み出している記録データブロックのデータ構造をCPU9から信号線S908のバスを介して、記録データ生成ブロック5内部にあるレジスタに設定する。設定された記録データブロック構造内にある記録データを全て読み出すと終了信号S909をCPU9に対し割り込み信号として通信する。この際、記録バッファ4上に次の記録データブロックがすでに展開されているならば、その記録データブロック構造をレジスタに書き込む。
記録バッファ4は1記録データブロック単位でデータの書き込みを制御しており、書き込まれていない記録データブロックに対し記録データ生成ブロックを起動しないので、記録バッファの読み出しアドレスが書き込みアドレスを越えることは起きない。11は、バッファ構造情報メモリである。これは、記録バッファの制御用の作業用メモリ(ワークRAM)で、後で述べる記録バッファ構造についての情報を一時的に格納する領域である。
<記録バッファリング構造制御回路の説明>
記録バッファリング構造制御回路の説明を図5及び図7を用いて説明する。記録バッファリング構造制御回路の処理において、図5は書き込みアドレス制御を中心に説明する図であり、図7は記録バッファリング構造制御回路8の読み出しアドレス制御を中心に説明する図である。
記録バッファリング構造制御回路8は読み出し制御部8Aと書き込みアドレス制御部8Bで構成されている。また、記録バッファ4のバッファ領域は、記録バッファの先頭のアドレスをtop_adrで示し、最終アドレスをbottom_adrで表示する。この先頭アドレスは書き込みアドレス制御部8B内のレジスタ803に格納され、最終アドレスは書き込みアドレス制御部8B内のレジスタ804に格納される。
記録バッファ4に示される「RP」はリードポインタを示し、「WP」はライトポインタを示す。記録バッファの中のRPとWPの間のハッチング部分は記録データが格納されていることを表している。また、記録バッファ4の白色部分は記録データが格納されていないことを表す。
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタである。805から812は第1色から第8色について、各色の情報を格納するレジスタである。ここで、レジスタ805には第1色目データのバッファの高さ情報(1st_hight)と、第1色データの有り無しを示す情報(1_color_bit)と、第1色目のレジスト調整値情報(1_reg_wnum)が格納され、同様にレジスタ806〜812についても第2色〜第8色について同様の情報が設定される。
なお、レジスト調整値情報は、ノズル列間のラスタ方向における相対位置に対応した値となるので、1つのノズル列に対しては常に同じ値となる。例えば、第1色データを基準とすると、第1色データの対するレジスト調整値情報は0、第2色データに対するレジスト調整値情報は第1色データを記録するノズル列と第2色データを記録するノズル列との間のラスタ方向における相対距離に対応した値となる(例えば、カラム数に対応する)。
813はブロックの幅情報(block_width)を設定するレジスタであり、この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
上述のブロックの高さ情報、幅情報及びレジスト調整値情報は、図3(a)で説明した設定データに含まれる情報である。
815は次のブロックデータのアドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ805からレジスタ812のうちのいずれかの値と、ブロックデータに関する幅の情報を格納するレジスタ813の値を用いて決定することができる。書き込み制御部8Bは、書き込み対象となる第1ブロックデータに関する設定情報に従い、次に書き込み対象となる第2ブロックデータの書き込み開始アドレスを決定し、このレジスタに格納する。
817はレジスト調整分の書き込み開始アドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ805からレジスタ812のうち全ての値と、ブロックデータに関する幅の情報を格納するレジスタ813の値を用いて決定することができる。書き込み制御部8Bは、書き込み対象となる第1ブロックデータに関する設定情報に従い、次に書き込み対象となるレジスト調整分の書き込み開始アドレスを決定し、このレジスタに格納する。
なお、書き込み制御部8Bは、例えば第1の色データについて説明すると、所定のラスタ位置に格納する場合、第1ブロックのデータに対応する記録データの書き込み完了前に、第1ブロックのデータのレジスト調整幅分を反映した第2ブロックでの書き込み開始アドレス情報を決定している。従って、図8を用いて後述するが、第1ブロックに格納できなかった記録データを、第2ブロックにおいて第1の色データの同じラスタ位置に対応する先頭アドレスに格納することができる。このことは、他の色データ(第2色データ〜第8色データ)についても同様である。
書き込み制御部8Bは、第1ブロックデータに対応する記録データの書き込み完了前に、第1ブロックデータのレジスト幅分に対する書き込みアドレス情報を、決定した書き込み開始アドレスに更新することができる。
また、816はデータの書き込みアドレス(WP)を格納するレジスタである。
814はアドレス制御レジスタで、書き込みアドレス(WP)が読み出しアドレス(RP)を追い越さないように(両アドレスが重複したアドレスを指定しないように)書き込み処理、読み出し処理の管理をする。
<記録バッファへのデータの格納(図6)>
図6は、記録バッファ4に記録データがどのように格納されるか説明する図である。図6(a)では、第1色データとして縦に順に4ワード分ずつ、格納される状態を示す。ここで1ワードが16画素分に対応している。レジスタに情報を格納するアドレスは1ずつインクリメントされるものとすると、ライトポインタ(WP)は1→2→3→4→5→…とカウントされる。
例えば、図6(a)のレジスタの設定は、バッファの高さ情報(ラスター数)の値(1st_hight)は「4」であり、データの有り無し情報(1_color_ビット)の値は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「28」である。
図6(b)は、第2色データがある場合に、記録バッファ4へのデータの書き込みを示す図である。第1色の格納領域に全てデータを格納した後、矢印のようにライトポインタ(WP)を第2色の先頭アドレスへ移動し、第2色のデータの格納を行う。図6(c)では、第2色データが無い場合、第1色データの格納領域に続き、第3色データが格納されることを示す。この場合、図5で示すレジスタ806の第2色データの有り無し情報(2_color_bit)は、データ無しを示す「0(無し)」である。あるいは、バッファの高さ情報(2nd_hight)が「0」であれば、データが無いことを示すので、この情報を用いてもかまわない。あるいはデータの有り無し情報とバッファの高さ情報との論理積演算(AND処理)を行ってその結果を用いて判断しても良い。
図6(d)では、第2色のデータについて、書き込み位置を示すe1(WP:ライトポインタ)は、読み出し位置を示すe2(RP:リードポインタ)の手前で書き込みを停止することを示す。これは、読み出しが終了していない位置には、データの書き込みを禁止して、上書きをすることを防ぐ制御を行うものである。以上の制御は、第3色から第8色の領域についても同様である。
<記録バッファへのデータの格納処理>
図8及び9は、レジスト調整値がゼロでない時に、記録バッファ4に記録データがどのように格納されるか説明する図である。図8及び9では、第1色データとして縦に順に3ワード分ずつ、格納されている状態を示す。ここで1ワードが16画素分に対応している。
ここで、図8はデータが入力される順番を示し、図9は実際に書き込まれるアドレスを示している図である。
また、図8及び9の斜線部は第1色目のレジスト調整値(6)および第2色目のレジスト調整値(2)を示している。実際の書き込み開始位置は図8に示す位置からになるが、実アドレスは図9に示す通り、レジスト調整値に対応してスキップした位置(例えば左から7つ目の24)から始まることになる。
また、図8及び9の2つの図は対応しているので、例えば1番目に書き込まれるデータのアドレスは、図9に示すように24となり、2番目に書き込まれるデータのアドレスは図9に示すように2Aとなる。
ここで、図8及び9のレジスタの設定は、バッファの高さ情報(ラスター数)の値(1st_hight)は「3」であり、データの有り無し情報の値(1_color_bit)は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「16」である。第1色目のレジスト調整値(1_reg_wnum)は6で第2色目のレジスト調整値(2_reg_wnum)は3である。
この時、例えば図8において、レジスタに情報を格納するアドレスを右に1ずつインクリメントすると、図9においてライトポインタ(WP)の実アドレスは0→6→C→12→18→…とカウントアップされることになる。
ここで、データを書き込む順番は、図8及び図9の様に16個単位で一つ下の段に行っても構わないし、データを受信する順序により、ブロック幅まで進んだ後(10個単位)一つ下の段に移っても構わない(図8で、10の位置の次に17の位置に進む)。
また、図8に示す通りに、第1色データについて、10個目までデータが書き込まれた(格納された)後、11個目のデータを書き込む先は、次のブロック(第2ブロック)の先頭になる。これはレジスト調整を行うことによって、現在のブロック(第1ブロック)に入りきらなくなったデータを書き込む(格納する)ためである。
レジスト調整分の書き込みが終了(図8で16番目のデータ書き込みが終了)すると、17個目のデータは、現在のブロック(第1ブロック)から書かれることになる。これは実際のアドレスが図9で16個目がDEで、17個目が26になると言うことである。
この様にして、現在のブロック(第1ブロック)と次のブロック(第2ブロック)との間を行き来することで、レジスト調整を行いながら、第1色目のデータを書き込んでいく。
第1色目のデータが全て書き終わると、同様の処理を第1ブロックの第2色目以降に行っていく。
また、レジスタに情報を格納するアドレスは、図6のように縦に1ずつインクリメントさせて、ライトポインタ(WP)の実アドレスを0→2→4→6→8→…とカウントアップさせてもよい。
ここで、図8においてレジスタに情報を格納するアドレスを縦に1ずつインクリメントさせないのは、画像変換ブロック3からのデータや、ホストからのデータの変更に柔軟に対応するためである。
例えば、画像変換ブロック3を使用しない時には、ホストからの記録データは、従来通りレジスタに情報を格納するアドレスは図6のように1ずつインクリメントさせて、ライトポインタ(WP)は1→2→3→4→5→…とカウントするように対応している。
しかし、画像変換ブロック3を使用して例えばHV変換等を行うと、HV変換を行った後の記録記録データは、レジスタに情報を格納するアドレスは図6のように1ずつインクリメントさせて、ライトポインタ(WP)を1→2→3→4→5→…とカウントアップする事が出来なくなる。
その為、アドレスのインクリメント量に自由度を持たせることで、ホストからの様々なデータ転送方式にも対応でき、また画像変換ブロック3でのデータ変換にも対応することが出来るようになる。
<レジスト調整による記録バッファ内のデータ>
図10A、図10B、図10Cは、レジスト調整に関連したデータの状態を模式的に示す図である。図中の数字はいずれもブロック番号を示している。図10Aは、ホストコンピュータ(プリンタドライバ)で全てのレジスト調整を行った場合の転送データを示している。図10Bは、ホストコンピュータから送信され記録装置が受信したデータを示している。このデータに対してはレジスト調整は行われていない。図10Cは、図10Bのようなデータに対して記録装置側でレジスト調整され、記録バッファに格納されたデータを示している。
図10Aと図10Cに示されたデータを記録媒体へ記録すると、いずれもレジスト調整がなされているため同様な記録結果となるが、図10Cのデータは図10Bの受信データに対して記録装置側でレジスト調整を行ったため、ラスタ方向にブロック位置がずれ、その結果として図10Bのデータよりもブロック数が1つ増えている。
このようにホストコンピュータから送信したブロック数と記録装置の記録バッファに書き込まれたブロック数が異なると、論理的な矛盾が生じてしまう。
この様な矛盾が生じないように、図10Bに示すようなデータをホストコンピュータから転送する場合、1ブロック余分なデータを付加して記録装置に送信し、ホストコンピュータと記録装置(記録バッファ)とのブロック数が同じとなるようにする。
図11A、図11B、図11Cは、レジスト調整に関連したデータの状態を、図10A〜図10Cと同様に示す図である。図11Aは、ホストコンピュータ(プリンタドライバ)で全てのレジスト調整を行った場合の転送データを示しており、図10Aと同様な構成となる。図11Bは、ホストコンピュータから送信され記録装置が受信したデータを示している。このデータに対してはレジスト調整は行われていない。図11Cは、図11Bのようなデータに対して記録装置側でレジスト調整され、記録バッファに格納されたデータを示している。
ここで、図10B及び図10Cに示したデータと、図11B及び図11Cに示したデータとを比較すると、図10Bの受信データに対してレジスト調整を行った図10Cのデータのブロック数は1つ増えているが、図11Bの受信データに対してレジスト調整を行った図11Cのデータのブロック数は増えていないことがわかる。ずなわち、ホストコンピュータから図11Bのようなデータを転送する場合には、1ブロック余分に送信する必要はない。
図10B及び図10Cに関連して、1ブロック余分に転送する場合についてもう少し詳しく説明する。図12は、1ブロック余分に転送する場合のデータ構成を示す図である。この場合、留意すべきは1ブロック余分(追加された)に転送されたブロックの色変えコードの位置である。
図12において、(a)は圧縮前のデータを示し、(b)は圧縮前のデータにレジスト調整幅を加えた状態を示し、(c)は増えたブロックの後端を基準としたレジスト調整幅を示し、(d)は色変えコードが挿入される位置(挿入されるべき位置)を示している。なお、(b)のブロックは第nブロック、(c)のブロックは第n+1ブロックとする。
この場合、色変えコードの位置は、(d)のクロスハッチの領域内にある必要がある。これは、(d)の斜線部分の領域に色変えコードが入っていると、レジスト調整することによってブロックが更に1つ増えてしまうからである。
図13も図12と同様に、(a)は圧縮前のデータを示し、(b)は圧縮前のデータにレジスト調整幅を加えた状態を示し、(c)は増えたブロックの後端を基準としたレジスト調整幅を示し、(d)は色変えコードが挿入されるべき位置を示している。図12と異なるのは、1ブロック余分に転送しない点である。
この場合にも、(d)のクロスハッチの領域以外に色変えコードが入っていると、レジスト調整することによって1ブロック増えてしまうため、色変えコードの位置は、(d)に示すように、(c)に示された後端を基準にしたレジスト調整幅の境界より前にある必要がある。
<レジスト調整値のデータ>
図14の(a)は、記録装置側のみでレジスト調整を行ったときに、レジスト調整値に基づく記録バッファの容量内に占めるレジスト調整領域(調整量)の割合を模式的に示し、(b)はレジスト調整値の内訳を模式的に示す図である。
(a)に示すように、記録バッファ1400内において、レジスト調整値が占める部分を1401とすると、該レジスト調整値1401は、(b)に示すように、バイトを単位とした調整値1411と1バイト未満(ビット単位)の調整値1412とに分けられる。
本実施形態では、バイトを単位としたレジスト調整値1411をホストコンピュータで担当し、バイト単位に分けられない1バイト未満のレジスト調整値1412を、記録装置で担当するように分ける。
図15の(a)は、本実施形態の記録装置のレジスト調整値に基づく記録バッファ1400’内に占めるレジスト調整領域(調整量)の割合を模式的に示し、(b)はレジスト調整値の内訳を模式的に示す図である。(b)に示すように、記録装置の記録バッファ1400’内には1バイト未満(ビット単位)のレジスト調整値1412のみが格納される。このため、図14との比較からも明らかなように、記録装置側のみでレジスト調整を行う場合よりも、記録装置のバッファ1400’の容量を小さくできる。
ここで、あるノズル列のデータについて、1バイト未満のレジ調整値が2ビット(2カラム相当)の場合を例として図17に示す。行うべきレジ調整値34カラム分である場合、この値をホスト装置で行うデータ単位で割った「余り」が、記録装置側で行うべきレジ調整の値である。また、行うべきレジ調整値をホスト装置で行うデータ単位で割った「商」が、ホスト装置側で行うべきレジ調整量である。この例では34÷8=4(商)、余り2である。つまり、ホスト装置側で、4バイト単位(32カラム)の調整を行い、記録装置側で2ビット(2カラム)分の調整を行うのである。従って、ホスト装置において、1走査のデータの先頭に、4バイトに相当する2ブロック分(32カラム=16カラム×2)のヌルデータが付加され、記録装置に転送される。記録装置は、2ビット分、全てのブロックについてシフトさせて格納する処理を行う。
このように、レジスト調整値をホストコンピュータでの調整値と、記録装置での調整値とに分ける場合の処理方法について説明する。
まずホストコンピュータにおいて、記録開始時にレジスト調整値をバイト単位のデータと、バイト未満のデータとに分ける。バイト未満のデータはビット単位で取り扱うことになる。
この後の処理方法としては、大別して2つの方法がある。すなわち、ホストコンピュータと記録装置との両方でテーブルを用いて処理する方法と、テーブルを用いないで処理する方法である。
このテーブルは、ノズル列ごとにレジスト調整値をもつ。例えば、記録ヘッドにおいて、シアンの色について第1のノズル列(偶数ノズルのグループ)と第2のノズル列(奇数ノズルのグループ)を有する場合には、でそれぞれ調整値をもつ。同様に、記録ヘッドが、マゼンタ、イエロ、ブラックの色についてそれぞれ2列づつ備えれば、各色のノズル列のために2つの調整値をもつ。従って、この場合テーブルは、8個(8=2×4)の調整値を1つのテーブルとしてもっている。この調整値により、各ノズル列から吐出されるインクのレジずれを抑制することができる。
また、このテーブルは、キャリッジが往復記録を行う場合には、往路用のテーブルと復路用のテーブルを有していても構わないし、キャリッジの走査速度を複数備えている場合には、各速度に応じたテーブルを備えていても構わない。
例えば、速度優先モードと、画質優先モードにおいて、それぞれテーブルを備えて構わない。
また、同じノズル列においても、例えば、大ドット/小ドットという異なるノズルで構成されていれば、ドットの大きさにあわせた調整値をテーブルとして備えても構わない。
これらのテーブルは、予め記録装置の制御回路に備えられているROMに格納されていても構わないし、ホストコンピュータから入力し、制御回路に備えられているRAMに格納しても構わない。
テーブルを用いて処理する方法について説明すると、ホストコンピュータと記録装置とで同じテーブルを用意し、記録の時には同じテーブルの値を参照して、ホストコンピュータで取り扱わないバイト未満のデータと、記録装置に保存してあるユーザーによって変更可能なレジスト調整値を足し合わせる。
この作業をホストコンピュータと記録装置の両方で行う。そして、足し合わせた値が8ビットを越える時は、バイト単位のデータをホストコンピュータで扱い、残りの8ビット未満を記録装置でレジスタに設定する値として取り扱う。
このようにホストコンピュータと記録装置とで同じテーブルを用いることで、ホストコンピュータから記録装置へ送信するデータ、または記録装置からホストコンピュータへ送信するデータ量を低減することが可能になり、ホストコンピュータから記録装置へのデータの転送に要する時間を短縮することが出来る。
一方、テーブルを用いないで処理する方法について説明すると、ホストコンピュータは、記録装置本体に保存してある、ユーザーによって変更可能なレジスト調整値を読み出して、ホストコンピュータで取り扱わないビット単位のデータと足し合わせる。この時、足し合わせた値が8ビットを越える時は、バイト単位のデータをホストコンピュータで扱い、残りの8ビット未満の調整値を記録装置が担当するレジスト調整値として、記録装置に転送する。
このようにホストコンピュータで計算した調整値を記録装置に送信することで、ホストコンピュータと記録装置の両方に同じテーブルを持つ必要が無くなり、ホストコンピュータと記録装置とのプログラム容量を抑えることが出来る。
以上、3つの方法を示したが、実際には使用するプログラム容量や転送速度、あるいはハードウェアのコスト等を考慮して、最適な方法を選ぶことになる。
図16は、レジスト調整値が8ビット〜16ビットの時を例としてレジスト調整値を、ホストコンピュータと記録装置とでどのように割り振るのかを説明する図である。図中(a)〜(i)は、レジスト調整値が8〜16ビットの場合をそれぞれ示している。なお、レジスト調整値は、8ビット〜16ビットに限定するものではない。
図中、8ビットを単位とした部分はホストコンピュータで調整し、8ビット未満の部分を記録装置で調整する。このように本実施形態では、レジスト調整値が9ビット〜12ビットの場合、それぞれ+1ビット〜+4ビットの調整を記録装置が担当する。レジスト調整値が13ビット〜15ビットの場合には、それぞれ−3ビット〜−1ビットの調整を記録装置が担当する。
ここで、(f)から(h)に示す13ビットから15ビットのレジスト調整値を、+の値ではなく−の値で表しているのは、レジスト調整値を表すビット数を小さくするためである。例えば、(f)に示す13ビットの時にレジスト調整値を+の値で与えるならば、レジスト調整値は(8×1+5)ビットになる。同様に(g)に示す14ビットの時にはレジスト調整値は(8×1+6)ビットとなる。それに比べて、本実施形態ではレジスト調整値を−の値で与えることで、記録装置でのレジスト調整値を2〜6ビット小さくすることが出来る。
なお、図示した例では12ビットの時にレジスト調整値を、(8×1+4)ビットと表しているが、これは(8×2−4)ビットと表しても構わない。
ホストコンピュータで担当するバイト単位のレジスト調整は、1走査毎に記録データの先頭にヌルデータ等を付加することで行われ、これにより記録装置では付加されたレジスト調整値を記録データとして取り扱うことが出来るようになる。
このように本実施形態によれば、記録装置で担当するレジスト調整値を、符号を含めても常に1バイト前後の小さな値とすることが出来、レジスト調整値に応じて記録バッファの容量を変更したり、バッファ容量を予め大きくする必要が無くなり、必要とされる記録バッファの容量を、無駄のない適切な大きさ(必要最小限のサイズ)にすることが可能となる。
またホストコンピュータで行うレジスト調整を、バイトを単位とした処理のみとすることで、ホストコンピュータでの負荷を減らすことが出来、ホストコンピュータから記録装置へのデータの転送に要する時間を短縮し、記録開始を指示してから記録が行われるまでの時間を短縮することが出来る。
<記録バッファからのデータの読み出し>
以下に、図7を参照して記録バッファからのデータの読み出し処理について説明する。図7において、左側は記録バッファリング構造制御回路8の読み出しアドレス制御部8Aを示し、右側は記録バッファ4を示している。
記録バッファ4のバッファ領域は、記録バッファの先頭のアドレスであるtop_adrで表され、最終アドレスはbottom_adrで表される。この先頭アドレスはレジスタ803に格納され、最終アドレスはレジスタ804に格納される。記録バッファに示される「RP」は図5と同様にリードポインタであり、「WP」はライトポインタである。記録バッファ4におけるRPとWPの間のハッチング部分は記録データが格納されていることを表し、それ以外の部分は記録データが格納されていないことを表す。
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタであり、破線の枠で囲った900は第1レジスタ群、実線の枠で囲った901は第2レジスタ群である。
第1ブロックから第8ブロックの記録データを記録する場合、例えば、走査の開始時において、第1レジスタ群には第1ブロックについての情報が格納されている。また、第2レジスタ群には、第2ブロックについての情報が格納される。第1ブロックの記録が終了すると、第1レジスタ群900には第2レジスタ群901の情報がコピーされて格納される。そして第2レジスタ群901には、第3ブロックの情報が格納される。以下、最後の第8ブロックのデータが格納されるまで同様の処理が順に行われる。そして、次の走査開始時には、再び、第1レジスタ群には第1ブロックの情報が格納され、第2レジスタ群には第2ブロックの情報が格納される。
第1レジスタ群が示す第nブロックの記録が終了した時、第2レジスタ群に第n+1ブロックの情報が格納されていない場合は、第n+1ブロックの記録データがまだ準備できていないので、第2レジスタ群の情報は第1レジスタ群にコピーされず、加えて記録バッファからのデータ読み出しを停止する。
第1レジスタ群内にあるレジスタ819は、第1色についての高さ情報(1st_hight)と色データの有り無し情報(1_color_bit)を設定するレジスタである。各レジスタ822、824、826、828、830、832、834は第2色〜第8色について同様に高さ情報と色データの有り無し情報を設定するレジスタである。
820は各ブロックデータの幅情報(block_width)を格納するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
レジスタ818は第1色の読み出しアドレス(1st_color_adr)を格納するレジスタである。第1色のデータが格納されている記録バッファ819から読み出されるとアドレスが更新される。例えば図7(a)に示すように、第1色データの内、1→2→3→4と1カラム分のデータが読み出される。レジスタ821、823、825、827、829、831、833はそれぞれ第2色〜第8色の読み出しアドレスを格納するレジスタであり、第2色〜第8色の色データも第1色の色データと同様に順に1カラム分のデータが読み出される。
記録バッファ4に格納されるデータは複数の色データを含むため、例えば、第1色、第2色、…の色データが混在した場合、各色単位の色データを格納するためのアドレスは、連続していないものとなる。そのため、読み出しアドレスのレジスタが1つであれば、例えば第1色の記録バッファ4のアドレスの次に第2色の記録バッファ1のアドレス読み出しを行う際、アドレス計算をする必要があるが、記録バッファ4に各色ごとに読み出しアドレスを格納するレジスタを用意することで、カラム単位での読み出しを行う際のアドレス計算を省くことができる。
817はアドレス制御レジスタである。読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、アドレス制御レジスタ817は読み出しアドレスとして信号線S806を介して1アドレスずつ加算して記録バッファ4に出力する。
835は次のブロックのアドレスを格納するレジスタである。現在読み出されているブロックが第1ブロックであれば、このレジスタには第2ブロックの先頭のアドレスが格納される。このレジスタの値は、現在読み出されているブロックデータの読み出しが終了すると、レジスタ802にコピーされる。これにより、次のブロックデータの読み出しがスムーズにできる。
レジスタ836は第1色から第8色のうち、読み出す順序を特定するための情報を格納するテーブルである。このテーブルに設定された値によって記録バッファからデータを読み出す順序を自由に設定することができる。例えば、第1色→第2色→…→第8色の順に読み出すことができる。また、値を変えて、第1色→第2色→第5色→第6色→第7色→第8色のように第3色、第4色のデータの読み出しをスキップすることもできる。これによって、格納されていない色の記録データについては、正確に読みとばすことができる。
第2レジスタ群901は次のブロックデータに関する情報を格納するバッファの集まりである。第1レジスタ群の各レジスタが読まれたら、第2レジスタ群の各レジスタに設定されている値が、第1レジスタ群の対応するレジスタに設定される。例えば、レジスタ838に設定されている値がレジスタ819に設定される。レジスタ839〜845は、次のブロックデータにおける第2色〜第8色の色データについて同様の情報が設定されるレジスタである。
レジスタ838(819)には第1色目のデータのバッファの高さ情報と、第1色データの有り無しを示す情報が格納される。
846(820)はブロックの幅情報を設定するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
レジスタ878は、先に設定したブロックのサイズとブロックのサイズが同じであるか否かを表す情報(same_type)を格納するレジスタであり、ブロックのサイズが同じ場合、この値を「1」とすることで、第1レジスタ群に同じ値を容易に再設定することができる。この場合、レジスタ838〜846の設定を省くことができる。一方、レジスタ878の値が「0」の場合には、各レジスタ838〜846にそれぞれの値が設定される。
以上説明したように好適な一実施形態によればインクジェット記録装置において、ホストコンピュータで走査方向におけるバイト単位のレジスト調整を行い、記録装置で走査方向におけるビット単位のレジスト調整を行うことで、ホストコンピュータからの記録データの転送に要する時間を短縮すると共に、記録装置で必要となるバッファ容量を低減することが出来、インクジェット記録装置を安価に提供することが出来る。
<他の実施形態>
なお以上の実施形態では本発明をインクジェット方式に従って記録を行うインクジェット記録装置に適用した場合を例に挙げて説明したが、本発明は複数の記録素子が配列された記録ヘッドを記録素子の配列方向と交差する方向に走査して記録を行う記録装置であれば、他の方式の記録装置にも適用できる。
以上の実施形態は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギとして熱エネルギを発生する手段(例えば電気熱変換体やレーザ光等)を備え、前記熱エネルギによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
加えて、上記の実施形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
また、以上説明した記録装置の構成に、記録ヘッドに対する回復手段、予備的な手段等を付加することは記録動作を一層安定にできるので好ましいものである。これらを具体的に挙げれば、記録ヘッドに対してのキャッピング手段、クリーニング手段、加圧あるいは吸引手段、電気熱変換体あるいはこれとは別の加熱素子あるいはこれらの組み合わせによる予備加熱手段などがある。また、記録とは別の吐出を行う予備吐出モードを備えることも安定した記録を行うために有効である。
さらに、記録装置の記録モードとしては黒色等の主流色のみの記録モードだけではなく、記録ヘッドを一体的に構成するか複数個の組み合わせによってでも良いが、異なる色の複色カラー、または混色によるフルカラーの少なくとも1つを備えた装置とすることもできる。
さらに加えて、本発明に係る記録装置の形態としては、コンピュータ等の情報処理機器の画像出力端末として一体または別体に設けられるものの他、リーダ等と組み合わせた複写装置、さらには送受信機能を有するファクシミリ装置の形態を取るものであっても良い。