記録装置、記録装置のデータ処理方法、及び記録システム
【課題】 ホストコンピュータにおける記録データの生成処理を高速化させる。
【解決手段】 ホスト機器が、設定データとして、各ノズル列間の走査方向における相対距離に対応した第1のレジスト調整値と、走査方向と直交する方向の各記録素子列の傾きに対応した第2のレジスト調整値とを含むデータを送信し、記録装置は、各ノズル列の記録データを、走査方向における記録位置に関連付けて格納する記録バッファ4を備え、記録バッファリング構造制御回路8は、レジスタに格納された2つのレジスト調整値に基づいて、各ノズル列の記録データの格納位置を調整して記録バッファ4に格納するように制御する。
【解決手段】 ホスト機器が、設定データとして、各ノズル列間の走査方向における相対距離に対応した第1のレジスト調整値と、走査方向と直交する方向の各記録素子列の傾きに対応した第2のレジスト調整値とを含むデータを送信し、記録装置は、各ノズル列の記録データを、走査方向における記録位置に関連付けて格納する記録バッファ4を備え、記録バッファリング構造制御回路8は、レジスタに格納された2つのレジスト調整値に基づいて、各ノズル列の記録データの格納位置を調整して記録バッファ4に格納するように制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は記録装置、記録装置のデータ処理方法、及び記録システムに関し、より詳細には、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、記録素子の配列方向と交差する方向に走査させて記録を行う記録装置における、記録データの処理に関するものである。
【背景技術】
【0002】
例えばワードプロセッサ、パーソナルコンピュータ、ファクシミリ等に於ける情報出力装置として、所望される文字や画像等の情報を用紙やフィルム等シート状の記録媒体に記録を行うプリンタが広く使用されている。
【0003】
プリンタの記録方式としては様々な方式が知られているが、用紙等の記録媒体に非接触記録が可能である、カラー化が容易である、静粛性に富む、等の理由でインクジェット方式が近年特に注目されており、又その構成としては、所望される記録情報に応じてインクを吐出する記録ヘッドを搭載したキャリッジを用紙等の記録媒体の搬送方向と交差する方向に往復走査させながら記録を行なう、シリアル記録方式が安価で小型化が容易などの点から一般的に広く用いられている。
【0004】
従来、記録ヘッドを搭載したキャリッジを記録媒体上で走査させて記録を行うために、記録ヘッドの走査方向の記録領域を複数の領域に分割し、分割された領域単位の記録データを格納するバッファを有する記録装置(印刷装置)が知られている。
【0005】
このような記録装置では、分割された領域単位の記録データをバッファに格納する際に、色毎に記録データの格納領域を切替える情報と格納可能なバッファ残量及び書き込みアドレス更新量の比較の結果とに基づき、領域単位の記録データの書き込みアドレス情報を、色毎に制御する書き込み制御部を備えている(特許文献1)。
【0006】
また、バッファに格納された記録データを読み出すための読み出しアドレス情報を色毎に制御する読み出し制御部と、読み出しアドレス情報に基づいて読み出された記録データに従い、分割された領域単位の記録データを生成する記録データ生成手段とを備えている。
【0007】
このように構成された従来の記録装置にホストコンピュータから転送される記録データに対しては、ホストコンピュータ(プリンタドライバ)によって、走査方向(ラスタ方向)における位置の調整(レジスト調整)を施されている(特許文献2)。
【0008】
また、記録ヘッドに設けられる記録素子列の長さが短い(1つの記録素子列を構成する記録素子数が少ない)構成においては、記録ヘッドの取り付け(装着)時に生ずる取り付け誤差(基準角度に対する傾き)によるズレ幅は、最大でも1画素以内に収まるため、記録画像に対する影響を無視することができ、このような記録ヘッドの取り付け誤差に関する補正などはなされていない。
【特許文献1】特開2003−305896号公報
【特許文献2】特開2003−305895号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、近年は、例えば、記録ヘッドとインクタンクとが一体化された構成の低コストの記録装置においても記録ヘッドの長尺化が進み、記録ヘッドの取り付け時に生ずる取り付け誤差によるズレ幅が1画素を超えるようになっており、記録画像への影響が無視できなくなってきている。
【0010】
この記録ヘッドの取り付け時に生ずる取り付け誤差(基準角度に対する傾き)によるズレを補正するためには、各記録素子列の傾きに対応した位置の調整(レジスト調整)を施す必要があるが、この位置の調整(レジスト調整)では、1ビットのデータを処理する必要がある。
【0011】
しかしながら、記録装置に転送する記録データは記録・非記録を表す1ビット(2値)で表現されるのが一般的であるが、通常ホストコンピュータのデータ処理単位は16ビットや32ビットに設定されている。このため、ホストコンピュータで記録データのような1ビットのデータを処理するのは効率が悪く、処理に時間がかかってしまう。
【0012】
近年は記録装置の解像度が向上しており、ホストコンピュータから記録装置へ転送する記録データの量も増大している。このため記録データの量が増大すると、ホストコンピュータでの記録データの生成及びその後の転送に時間がかかり、記録を指示してから記録装置で記録が実行されるまでの実効的な速度が低下することとなる。
【0013】
以上のような理由で、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うと共に、ホストコンピュータ(プリンタドライバ)が記録データを生成したり記録装置へ転送するのに要する時間を短縮し、記録を指示してから記録が実行されるまでの時間を短縮することが課題となっていた。
【0014】
本発明は以上のような状況に鑑みてなされたものであり、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うと共に、ホストコンピュータにおける記録データの生成処理及び転送処理を高速化することを目的とする。
【課題を解決するための手段】
【0015】
上記目的を達成する本発明の一態様としての記録装置は、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置であって、
接続されたホスト機器から送信され、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含む設定データ及び各記録素子列の記録データを格納する受信バッファと、
各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、
前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御手段と、を備えている。
【0016】
このようにすると、従来ホスト機器で行われていた記録素子列間の相対距離に関連したレジスト調整処理に加え、記録ヘッドの取り付け誤差によって生じる各記録素子列の走査方向と直交する方向における傾きに関連したレジスト調整処理が記録装置側で実行されるので、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うことができると共に、ホスト機器での記録データの生成処理が簡略化され、記録が指示されてから実際に記録が行われるまでの時間を短縮することが可能となる。
【0017】
第2のレジスト情報は、傾きを走査方向における記録画素の数に換算した値としてもよい。
【0018】
第2のレジスト情報を、各記録素子列内の所定数の記録素子毎に設けてもよい。
記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御手段と、読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御手段と、を更に備えるのがよい。
【0019】
各記録素子列によってそれぞれ異なった色で記録を行うように構成されているのが好ましい。
【0020】
好適には、記録バッファは、走査方向における記録領域を複数のブロックに分割し、該ブロック毎に記録データを格納するように構成されており、書き込み制御手段は、記録データに含まれるデータの有無を識別するための情報と、該データのラスター数と、該データのレジスト情報と、を記録素子列毎に格納するレジスタを有する。
【0021】
書き込み制御手段は、各ブロックに対する各記録素子列の記録データの有無に応じて、記録バッファに格納するためのアドレス情報を制御するのがよい。
【0022】
各記録素子はインクを吐出して記録を行うように構成されているのがよく、より好ましくは、各記録素子は、熱エネルギーを利用してインクを吐出すべく、インクに与える熱エネルギーを発生するための熱エネルギー変換体を備えている構成である。
【0023】
また、上記目的を達成する本発明の別の態様としての記録装置のデータ処理方法は、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行い、接続されたホスト機器から送信され、設定データ及び各記録素子列の記録データを格納する受信バッファと、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、を備える記録装置のデータ処理方法であって、
前記設定データに含まれる各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とに基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御工程と、
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御工程と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御工程と、を備えている。
【0024】
上記目的を達成する本発明の更に別の態様としての記録システムは、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置と、該記録装置に接続され、前記記録装置に対して設定データ及び記録データを送信するホスト機器と、を含む記録システムであって、
前記ホスト機器が、前記設定データとして、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含むデータを送信し、
前記記録装置が、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファを備え、前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する。
【0025】
また、記録素子列を複数有する記録ヘッドを記録媒体に対して走査させて記録媒体に記録する記録装置に対して出力する記録データを、前記記録媒体において前記記録ヘッドの走査記録領域のうち走査方向に複数に分割された領域に対応したブロック単位で生成する生成手段と、前記記録データを含む指示を出力する出力手段を備えるホスト機器であって、
前記記録ヘッドの前記記録素子列のずれについての第1のレジスト情報、及び記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報を取得するレジスト情報取得手段と、
前記生成された記録データから前記記録装置において1回の走査記録で記録する記録データに対応したブロック数を取得するブロック数取得手段と、
前記ブロック数取得手段が取得した前記ブロック数を、前記第1及び第2のレジスト情報に基づいて変更するか否かを判定する判定手段と、
前記判定手段が前記ブロック数を変更すると判定した場合には、前記指示の内容を変更する変更手段を備えるホスト装置によっても上記の目的は達成される。
【0026】
なお、上記の目的は、上記記録装置のデータ処理方法をコンピュータ装置によって実現させるコンピュータプログラム、該コンピュータプログラムを格納した記憶媒体によっても達成される。
【発明の効果】
【0027】
本発明によれば、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うことができると共に、ホスト機器での記録データの生成処理が簡略化され、記録が指示されてから実際に記録が行われるまでの時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【0028】
以下に、添付図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【0029】
なお、この明細書において、「記録」(「プリント」という場合もある)とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、また人間が視覚で知覚し得るように顕在化したものであるか否かを問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【0030】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【0031】
さらに、「インク」(「液体」と言う場合もある)とは、上記「記録(プリント)」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成または記録媒体の加工、或いはインクの処理(例えば記録媒体に付与されるインク中の色剤の凝固または不溶化)に供され得る液体を表すものとする。
【0032】
またさらに、「ノズル」(「記録素子」と言う場合もある)とは、特にことわらない限り吐出口ないしこれに連通する液路およびインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【0033】
以下、本発明をインクジェット記録装置(印刷装置)に適用した一実施形態について具体的に説明する。
【0034】
<記録装置の概略構成>
図1は、本実施形態のインクジェット記録装置の概略構成を示すカバーを外した状態の斜視図である。
【0035】
図1において、キャリッジ101は記録ヘッドとインクタンクとが一体化された記録カートリッジ110を搭載し、ガイド軸102に沿って走行可能である。なお、本実施形態では、記録ヘッドは、インクジェット方式の記録ヘッドである。また、103はシャーシであり、メインシャーシ103aと左右の側面板103b及び103cから構成される。108はキャリッジの駆動源であるキャリッジモータであり、109はキャリッジに接続されキャリッジモータ108によって駆動されるベルト、130は記録ヘッド吐出面の清掃や吸引動作行う回復系ユニット、140はキャリッジ101に搭載された発光素子及び受光素子と共にキャリッジの位置及び速度を算出するCRエンコーダを構成するスケールである。
【0036】
記録媒体としての記録紙は、給紙ローラ(不図示)によって装置本体内に送り込まれ、紙送りローラ105とピンチローラ(不図示)、紙押え板(不図示)によって狭持され、記録カートリッジ110の記録領域へと搬送され記録が行われる。
【0037】
記録カートリッジ110は、イエロー、マゼンタ、シアンの3色のインクを収容したカラー記録カートリッジと、ブラックインクを収容したブラック記録カートリッジの2種類で、それぞれ別々にカートリッジガイド7に挿入される。
【0038】
本実施形態のインクジェット記録装置は、ホストコンピュータと接続され、ホストコンピュータ(プリンタドライバ)から記録データの供給を受けて記録を行う。また、本実施形態の記録装置は、記録ヘッドを含む記録カートリッジ110を搭載したキャリッジを記録媒体上で走査させて記録を行うために、記録ヘッドの走査方向の記録領域を複数の領域に分割し、分割された領域単位で画像を記録(印刷)する。
【0039】
その場合、本実施形態のインクジェット記録装置では、ホストコンピュータ側では、ビット単位のデータ処理により走査方向における記録データ位置の調整(レジスト調整)は行わず、この記録データのレジスト調整は、後述する図2の記録装置側の記録バッファリング構造制御回路8で行う。そのため、ホストコンピュータでの記録データの生成が高速化され、実効的な記録速度の高速化を図ることが可能となる。
【0040】
<記録制御部の構成>
図2は、本発明にかかる記録装置の記録制御部の構成を示すブロック図である。同図に於いて、1はインターフェース信号線S1を介してホストコンピュータ(不図示)から転送されてくるデータを受信し、その受信したデータの中から、記録装置の動作に必要なデータ及び記録データを抽出して一旦蓄えるインターフェース制御部(コントローラ)であり、インターフェースコントローラ1で抽出されたデータは信号線S2を介して受信バッファ2に格納される。
【0041】
受信バッファ2はSRAMもしくはDRAM等の記憶装置(メモリ)で構成され、この受信バッファに蓄えられるデータは図3A及び3Bに示すような構造のものとなる。
【0042】
図3Aの(a)において受信バッファのデータ構造が示されるように、左から順に「コマンド」(201)、「データ長」(202)、「設定データ」(203)のデータが格納され、これに続いて「コマンド」(204)、「データ長」(205)、「設定データ」(206)のデータが格納されている。これは時系列順に転送されてきたデータが、受信バッファの連続したアドレスに格納されることを示し、ここで示す設定データ206は、例えば給紙の実行や紙送り量の設定、使用する記録ヘッド数等を示す情報であり、この設定データで定められた情報が全て揃って初めて記録装置で記録が可能となる。この後に、記録の対象となる記録データ(209、212)が受信バッファ2に格納される。
【0043】
この記録データ(209、212)は、記録ヘッドが記録媒体上を1度の走査で記録する際に必要とされるデータ量を、それより少ないデータ量としてブロック単位に分割したデータであり、そのブロック単位で記録データを区切り、順次第1ブロックデータ(209)、第2ブロックデータ(212)、…として格納される。
【0044】
図3Aの(b)はブロック単位に分割された記録データのデータ構造を詳細に示す図であり、同図で示すように、複数の色のデータ(213〜214)が各々圧縮されたデータとして順次格納される。この圧縮TAG、圧縮データは「色変えコード」(216、217、218)で区切られる。
【0045】
例えば、シアン、イエロー、マゼンタ、それと黒の4色の記録データを想定した場合、各色毎に縦64ノズルを1列としたノズル列が走査方向に2列ずつ配列する記録ヘッドを用いると、各ノズル列単位のデータが1つの色の記録データを構成することになるのでノズル2列が4色分、すなわち、圧縮された第1色から第8色の記録データが一つのブロックデータ内に記録データとして格納される。このノズル列の各ノズルは、記録媒体の搬送方向に並んでいる。例えば、第1色と第2色がシアンに対応する記録データ、第3色と第4色はマゼンタに対応する記録データ、第5色と第6色はイエローに対応する記録データ、第7色と第8色は黒に対応する記録データとなる。
【0046】
図4は記録データを保持する記録バッファのデータ構造を示す図である。例えば1回の走査で最大約8インチの走査方向の長さを記録する場合、1つのブロックデータが走査方向に約1インチの記録ができるサイズとすると、トータル8ブロックの記録データを記録すれば、1走査分の画像が完成することになる。第1ブロックから第8ブロックは記録ヘッドの走査方向に配置され、各ブロックデータには、第1色のデータから第8色のデータが格納される。各ブロック内に格納される各色のデータの長さは記録ヘッドのノズル数に対応するものである。
【0047】
説明を図2に戻し、各制御ブロックの説明を続ける。受信バッファ2に格納されるデータのうち、記録装置の制御用の設定値である「コマンド」、「データ長」、「設定データ」は、インターフェースコントローラ1から信号線S902を介してCPU9により読み出され、図中にある各部制御回路(7、8)に設定される(S903、S907)。CPU9は読み出したデータ(図3A(a)の201〜208に相当するデータ)を解釈し、その結果に従って記録装置の全体的な記録制御を統括する。一方、CPU9は記録データの処理に関してはデータ解凍ブロック55を起動して処理を実行させるものとする。
【0048】
データ解凍ブロック55は受信バッファ2から、図3A(b)で示されるように「圧縮TAG」と「データ(圧縮データ)」及び「色変えコード」の3種類のデータを読み出し、これらのデータに基づきデータの展開制御を実行する。本実施形態ではデータの圧縮/解凍方法としてPackBits圧縮を用いたので、圧縮TAGが8ビットで00hから7Fhまでの値の場合、非連続なデータが1から128個データ領域に有るとして処理し、圧縮TAGが8ビットでFFhから81hまでの値の場合、次の1バイトデータを連続した2から128個のデータに解凍する処理を行う。なお、データの読み出し処理において、80hを読み出した場合は色変えコードとして処理する。解凍したデータを信号線S4aを介して、画像変換ブロック54に送る。この画像変換ブロックにてHV変換がなされ、信号線S4bを介してHV変換されたデータが記録バッファ4に格納される。
【0049】
記録バッファ4には解凍された記録データが図4に示すデータ構造で格納される。記録バッファ4の先頭アドレスには第1ブロックの第1色のデータの先頭データが書き込まれ、その後に続くデータは、アドレスを適宜変更しながら順次書き込まれる。記録バッファのアドレスに一つの色のデータとして格納できる領域は、最初にCPU9が読み込んだ設定データで決定され、その値以上のデータは書き込めないので記録データを圧縮する際には、その設定データに従ったデータサイズの制限が加えられることになる。色変えコードを検出した後のデータは第2色のデータの先頭番地から順次書き込まれる。このアドレスデータの制御は後に説明する記録バッファリング制御構造回路8が実行することになる。
【0050】
この書き込みを第1ブロックの第1色のデータから第8色のデータまで繰り返し、第8色のデータの書き込みを終えて色変えコードを検知すると、第1ブロックのデータが全て書き込み終えたことになる。データ解凍ブロック55はデータの展開動作を終了し、CPU9に対しブロック1個分のデータの展開が完成したことを割込み(S906)で伝え、CPU9からの次のデータ展開の起動を待つ。
【0051】
記録バッファ4上に複数ブロックの記録データが揃った段階で、CPU9は記録動作を開始すべくキャリッジモータ(図1の108)を動作させ、記録ヘッド6(記録カートリッジ110)を搭載したキャリッジを走査させながら、記録データをキャリッジエンコーダ(CRエンコーダ)10に同期して転送し、記録することで紙面上(記録媒体に)に画像を完成させることができる。記録ヘッド6が主走査方向に走査した後、搬送手段が記録媒体を副走査方向に搬送する。こうして、記録ヘッドの走査と、記録媒体の搬送を繰り返し行って、1ページ分の画像の記録を行う。
【0052】
記録データ生成ブロック5は、記録バッファ4上に有る記録データの各ブロック構造を、CPU9から指定された値に従って、CRエンコーダ10に同期したタイミングで信号線S5を介して読み出し、記録ヘッド6が記録できるデータ構造に変換しながら信号線S6に出力していく。この記録データ生成ブロック5は後で述べる記録バッファ内のブロック幅(ブロックの長さを示す。)の情報、ブロックの各色の高さ(色のデータの「ラスター数」という。)についての情報を保持する。
【0053】
尚、記録バッファ4から読み出されたデータ領域は次の記録データを蓄えるために、零クリアされる。
【0054】
<受信バッファの書き込み、読み込み制御>
以上説明したように受信バッファ2には、インターフェースコントローラ1がデータを書き込み、データ解凍ブロック55が記録データのみを読み出すが、その書き込みアドレスと読み出しアドレスを制御しているのが受信バッファリング構造制御回路7である。受信バッファリング構造制御回路7は受信バッファ2の先頭アドレスと最終アドレス、それと書き込みアドレスと読み出しアドレスの管理を行っている。
【0055】
受信バッファリング構造制御回路7はインターフェースコントローラ1から受信する書き込み要求信号(S701)を受け付け毎に1アドレスずつ加算し、これを書き込みアドレスの情報として受信バッファ2に出力する(S702)。そして、受信バッファリング構造制御回路7は受信バッファ2の最終アドレスに達した場合に書き込みアドレスを受信バッファ2の先頭のアドレスに戻す制御を行う。
【0056】
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、受信バッファ2がデータでいっぱいになり、次のデータを書き込めない旨をインターフェースコントローラ1に信号線S703を介して通信する。
【0057】
このとき同時にCPU9に対しても信号線S904の割込み信号により、受信バッファ2はデータの書き込みができない状態であることを知らせる。受信バッファ2の構造はCPU9が信号線S903のバスを用いて内部のレジスタに書き込むことで設定することができる。
【0058】
読み出しアドレスは、CPU9が受信バッファリング構造制御回路7の中に有るデータリード用レジスタを介して直接に受信バッファ2の中のデータを読み出す場合と、データ解凍ブロック55がデータ読み出し要求信号線S705を介して要求した場合に、読み出しアドレスとして信号線S706を介して1アドレスずつ加算されて受信バッファ2に出力される。
【0059】
受信バッファリング構造制御回路7は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを受信バッファ2の先頭アドレスに戻す制御を行う。また読み出しアドレスが書き込みアドレスに到達(一致)した場合、受信バッファ上からデータがなくなったので、次のデータを読み出せない旨をデータ解凍ブロックに信号線S704を介して通信する。このとき同時にCPU9に対しても信号線S904の割込み信号線で、受信バッファ2上には、読み出すデータが無い旨を知らせる。
【0060】
以上が受信バッファ2に対するデータの書き込み、読み取り制御の処理内容である。次に、この受信バッファ2から読み出され、展開処理されたデータを記録バッファに書き込みし、あるいはその記録バッファからデータを読み取るための処理内容を説明する。
【0061】
<記録バッファの書き込み、読み取り制御>
記録バッファ4に対して、画像変換ブロック54が記録データを書き込み、記録データ生成ブロック5がその書き込まれた記録データを読み出すが、その際、書き込みアドレスと読み出しアドレスを制御しているのが記録バッファリング構造制御回路8である。
【0062】
記録バッファリング構造制御回路8は記録バッファの先頭アドレスと、最終アドレス、それと書き込みアドレスと、読み出しアドレスの管理を行っている。
【0063】
記録バッファリング構造制御回路8は画像変換ブロック54から受信する書き込み要求信号(S801)を受け付ける毎にアドレスを適宜変更し、これを書き込みアドレスの情報として記録バッファ4に出力する(S802)。そして、記録バッファリング構造制御回路8は記録バッファ4の最終アドレスに達した場合に書き込みアドレスを記録バッファ4の先頭のアドレスに戻す制御を行う。
【0064】
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、記録バッファ4が記録データでいっぱいになり、次の記録データを書き込めない旨を画像変換ブロック54に信号線S809を介して通信する。
【0065】
また、データ解凍ブロック55が色変えコードを受信バッファ2から読み込んだ場合、データ解凍ブロック55は信号線S541を介して画像変換ブロック54にその旨を通信し、画像変換ブロックは、信号線S807を介して、記録バッファリング構造制御回路に出力する。記録バッファリング構造制御回路8は次の色のデータを格納する先頭番地を信号線S802から出力するように準備する。記録バッファ4の構造はCPU9が信号線S907のバスを用いて内部のレジスタに書き込むことで設定することができる。
【0066】
読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、読み出しアドレスとして信号線S806を介して1アドレスずつ加算されて記録バッファ4に出力される。
【0067】
記録バッファリング構造制御回路8は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを記録バッファ4の先頭アドレスに戻す制御を行う。
【0068】
記録データ生成ブロック5は現在読み出している記録データブロックのデータ構造をCPU9から信号線S908のバスを介して、記録データ生成ブロック5内部にあるレジスタに設定する。設定された記録データブロック構造内にある記録データを全て読み出すと終了信号S909をCPU9に対し割り込み信号として通信する。この際、記録バッファ4上に次の記録データブロックがすでに展開されているならば、その記録データブロック構造をレジスタに書き込む。
【0069】
記録バッファ4は1記録データブロック単位でデータの書き込みを制御しており、書き込まれていない記録データブロックに対し記録データ生成ブロックを起動しないので、記録バッファの読み出しアドレスが書き込みアドレスを越えることは起きない。11は、バッファ構造情報メモリである。これは、記録バッファの制御用の作業用メモリ(ワークRAM)で、後で述べる記録バッファ構造についての情報を一時的に格納する領域である。
【0070】
<記録バッファリング構造制御回路の説明>
記録バッファリング構造制御回路の説明を図5及び図8を用いて説明する。記録バッファリング構造制御回路の処理において、図5は書き込みアドレス制御を中心に説明する図であり、図8は記録バッファリング構造制御回路8の読み出しアドレス制御を中心に説明する図である。
【0071】
記録バッファリング構造制御回路8は読み出し制御部8Aと書き込みアドレス制御部8Bで構成されている。また、記録バッファ4のバッファ領域は、記録バッファの先頭のアドレスをtop_adrで示し、最終アドレスをbottom_adrで表示する。この先頭アドレスは書き込みアドレス制御部8B内のレジスタ803に格納され、最終アドレスは書き込みアドレス制御部8B内のレジスタ804に格納される。
【0072】
記録バッファ4に示される「RP」はリードポインタを示し、「WP」はライトポインタを示す。記録バッファの中のRPとWPの間のハッチング部分は記録データが格納されていることを表している。また、記録バッファ4の白色部分は記録データが格納されていないことを表す。
【0073】
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタである。805から812は第1色から第8色について、各色の情報を格納するレジスタである。ここで、レジスタ805には第1色目データのバッファの高さ情報(1st_hight)と、第1色のデータの有り無しを示す情報(1_color_bit)と、第1色目のレジスト調整値情報(1_reg_wnum)と、第1色目の各ノズルの傾き補正の有り無しを示す情報(1_color_s_bit)と、第1色目の各ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)が格納され、同様にレジスタ806〜812についても第2色〜第8色について同様の情報が設定される。
【0074】
なお、レジスト調整値情報(1_reg_wnum)は、ノズル列間のラスタ方向における相対位置に対応した値となるので、1つのノズル列に対しては常に同じ値となる。すなわち、ノズル列毎にレジスト調整値情報を持っている。例えば、第1ノズル列を基準とすると、第1色のデータに対するレジスト調整値情報は0、第2ノズル列と第1ノズル列との距離がAカラム分であれば、第2色のデータに対するレジスト調整値情報はAとなる。また、第3ノズル列と第1ノズル列との距離がBカラム分であれば、第3色のデータに対するレジスト調整値情報はBとなる。このように、第1色のデータを記録する第1ノズル列の位置を基準にして各ノズル列との相対距離に対応して、第2色のデータから第8色のデータのレジスト調整値情報が設定される。
【0075】
また、各ノズルの傾き補正の有り無しを示す情報(1_color_s_bit)は、1つのノズル列を所定のノズル数毎、例えば16個のノズル毎に区切って使用している。例えばノズル列を構成するノズル数が128の場合には8等分されることになる。このような情報を持つことによって、例えば記録に使用するノズル数が半分となる時でも、ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)を変更しないで、傾き補正の有り無しを変更するだけですむようになる。
【0076】
各ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)も各ノズルの傾き補正の有り無しを示す情報(1_color_s_bit)と同様に、1つのノズル列を所定のノズル数、例えば16個のノズル毎に区切って使用しており(以下、この16個を単位としたノズル群を「(ノズル)段」とも称する)、同じ段のノズルに対しては常に同じ値を用いる。すなわち、各段毎に傾き補正のレジスト調整値情報を持っている。
【0077】
例えば、ノズルの上端を基準とすると、最初の16個(1段目:第1ノズルから第16ノズル)のノズルのデータに対する傾き補正のレジスト調整値情報は0、次の16個の(2段目:第17ズルから第32ノズル)ノズルと最初の16個(1段目)のノズルとのカラム方向におけるずれがAカラム分であれば、2段目のデータに対する傾き補正のレジスト調整値情報はAとなる。また、次の16個(3段目:第33ノズルから第48ノズル)のノズルと最初の16個(1段目)のノズルとのカラム方向におけるずれがBカラム分であれば、3段目のデータに対する傾き補正のレジスト調整値情報はBとなる。このように、各ノズル列の最初の16個(1段目)のノズルの位置を基準にして、16個のノズル(段)を単位として、取り付け角度に対応して生じるカラム方向におけるずれの値が傾き補正のレジスト調整値情報として設定される。
【0078】
813はブロックの幅情報(block_width)を設定するレジスタであり、この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
【0079】
上述のブロックの高さ情報、幅情報及びレジスト調整値情報は、図3A(a)で説明した設定データに含まれる情報である。
【0080】
815は次のブロックデータのアドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ805からレジスタ812のうちのいずれかの値と、ブロックデータに関する幅の情報を格納するレジスタ813の値を用いて決定することができる。書き込み制御部8Bは、書き込み対象となる第1ブロックデータに関する設定情報に従い、次に書き込み対象となる第2ブロックデータの書き込み開始アドレスを決定し、このレジスタに格納する。
【0081】
817はレジスト調整分の書き込み開始アドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ805からレジスタ812のうち全ての値と、ブロックデータに関する幅の情報を格納するレジスタ813の値を用いて決定することができる。書き込み制御部8Bは、書き込み対象となる第1ブロックデータに関する設定情報に従い、次に書き込み対象となるレジスト調整分の書き込み開始アドレスを決定し、このレジスタに格納する。
【0082】
なお、書き込み制御部8Bは、例えば第1の色のデータについて説明すると、第1ブロックのデータに対応する記録データの書き込み完了前に、第1ブロックのデータのレジスト調整幅分を反映した第2ブロックでの書き込み開始アドレス情報を決定している。他の色のデータ(第2色のデータ〜第8色のデータ)についても同様である。
【0083】
書き込み制御部8Bは、第1ブロックデータに対応する記録データの書き込み完了前に、第1ブロックデータのレジスト幅分に対する書き込みアドレス情報を、決定した書き込み開始アドレスに更新することができる。
【0084】
また、816はデータの書き込みアドレス(WP)を格納するレジスタである。
【0085】
814はアドレス制御レジスタで、書き込みアドレス(WP)が読み出しアドレス(RP)を追い越さないように(両アドレスが重複したアドレスを指定しないように)書き込み処理、読み出し処理の管理をする。
【0086】
<記録バッファへのデータの格納(図6)>
図6は、記録バッファ4に記録データがどのように格納されるか説明する図である。図6(a)では、第1色のデータとして縦に順に4ワード分ずつ、格納される状態を示す。ここで1ワードが16画素分に対応している。レジスタに情報を格納するアドレスは1ずつインクリメントされるものとすると、ライトポインタ(WP)は1→2→3→4→5→…とカウントされる。
【0087】
例えば、図6(a)のレジスタの設定は、バッファの高さ情報(ラスター数)の値(1st_hight)は「4」であり、データの有り無し情報(1_color_bit)の値は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「28」である。
【0088】
図6(b)は、第2色のデータがある場合に、記録バッファ4へのデータの書き込みを示す図である。第1色の格納領域に全てデータを格納した後、矢印のようにライトポインタ(WP)を第2色の先頭アドレスへ移動し、第2色のデータの格納を行う。図6(c)では、第2色のデータが無い場合、第1色のデータの格納領域に続き、第3色のデータが格納されることを示す。この場合、図5で示すレジスタ806の第2色のデータの有り無し情報(2_color_bit)は、データ無しを示す「0(無し)」である。あるいは、バッファの高さ情報(2nd_hight)が「0」であれば、データが無いことを示すので、この情報を用いてもかまわない。あるいはデータの有り無し情報とバッファの高さ情報との論理積演算(AND処理)を行ってその結果を用いて判断しても良い。
【0089】
図6(d)では、第2色のデータについて、書き込み位置を示すe1(WP:ライトポインタ)は、読み出し位置を示すe2(RP:リードポインタ)の手前で書き込みを停止することを示す。これは、読み出しが終了していない位置には、データの書き込みを禁止して、上書きをすることを防ぐ制御を行うものである。以上の制御は、第3色から第8色の領域についても同様である。
【0090】
<記録バッファへのデータの格納処理>
図9及び10は、レジスト調整値情報(以降、単に「レジ調整値」とも呼ぶ)がゼロでなく、傾き補正のレジスト調整値情報(以降、単に「傾き補正値」とも呼ぶ)がゼロでない場合に、記録バッファ4に記録データがどのように格納されるか説明する図である。図9及び10では、第1色のデータとして縦に順に3ワード分ずつ、格納されている状態を示す。ここで1ワードが16画素分に対応している。
【0091】
ここで、図9はデータが入力される順番を示し、図10は実際に書き込まれるアドレスを示している図である。
【0092】
また、図9及び10の斜線部は第1色目のレジ調整値(6)で、クロスハッチング部は各ノズル段の傾き補正値(0,1,2)を示している。実際の書き込み開始位置は図9に示す位置からになるが、実アドレスは図10に示す通り、レジスト調整値に対応してスキップした位置(例えば左から7つ目の24)から始まることになる。
【0093】
また、図9及び10の2つの図は対応しているので、例えば1番目に書き込まれるデータのアドレスは、図10に示すように24となり、2番目に書き込まれるデータのアドレスは図10に示すように2Aとなる。
【0094】
ここで、図9及び10の第1色目のレジスタの設定は、バッファの高さ情報(ラスター数)の値(1st_hight)は「3」であり、データの有り無し情報の値(1_color_bit)は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「16」でレジ調整値(1_reg_wnum)は6で、各ノズル段の傾き補正の有り無しを示す情報(1_color_s_bit)の値は最初と2番目と3番目のノズル段だけ「1(傾き補正あり)」で、他のノズルは「0(傾き補正なし)」で、各ノズル段の傾き補正値(1_s_reg_wnum)は、最初のノズル段から順番に「0,1,2」である。
【0095】
次に図9及び10の第2色目のレジスタの設定は、バッファの高さ情報(ラスター数)の値(2nd_hight)は「3」であり、データの有り無し情報の値(2_color_bit)は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「16」でレジ調整値(1_reg_wnum)は2で、各ノズル段の傾き補正の有り無しを示す情報(1_color_s_bit)の値は3番目のノズル段だけ「1(傾き補正あり)」で、他のノズル段は「0(傾き補正なし)」で、各ノズル段の傾き補正値(1_s_reg_wnum)は、最初のノズル段から順番に「0,0,1」である。
【0096】
ここで、現在の書き込んでいる高さ(段)を示すカウンタを持っており、1段書き終るごとにカウントダウンさせていく。カウンタの値は書き始めるときに「各色の高さ−1」がセットされる。例えば、図9では1段目ではカウント値「2」で、2段目ではカウント値「1」で、一番下の段(3段目)ではカウント値「0」になる。
【0097】
ここでカウンタの値が「0」になり次にカウントダウンすると、初期値「各色の高さ−1」が再びセットされる。
【0098】
このように、カウンタの値は記録ヘッドの所定数で構成されるノズル群に対応する単位(例えば16個で一区切り)でカウントダウンしていく。そしてカウントダウン毎に次の段のノズルについて傾き補正の有り無しを判断し、傾き補正がある場合には、対応した傾き補正値を設定レジスタから参照してくる。
【0099】
またカウンタの値が「0」になった時にカウントダウンされた時には、その段のノズルの傾き補正の有り無し情報のレジスタを先頭から参照していく。
【0100】
このように16個のノズル段毎に傾き補正値を更新し、レジ値(1_reg_wnum)と演算を行うことで、補正すべき最終的なレジスト調整値を求めている。
【0101】
ここで、傾き補正値(1_s_reg_wnum)の値について、図7A及び19Bを参照して説明する。
【0102】
傾き補正値(1_s_reg_wnum)は基準に対してプラス方向とマイナス方向が存在する。図7Aは、傾き補正値がプラスの場合の例を示し、図7Bは、傾き補正値がマイナスの場合の例を示している。
【0103】
図7Aのように傾き補正値がプラスである場合には、ハードウェアでの処理としては加算処理を行うだけでよい。
【0104】
一方、図7Bのように傾き補正値がマイナスである場合には、ハードウェアで行う処理としては2つの手法から選択することができる。ひとつの手法は減算処理を行うもので、もう一方の手法は加算処理で行う方法である。
【0105】
また、図7Bの例のようにマイナス値を加算処理で行う手法としては、オフセット値を導入する手法がある。例えば傾き補正値は最大で「±3」までしか取りえないとする。ここで、傾き補正値が「0」の時にレジスタに設定する値を「3」としてプラス側に3だけオフセットする。このようにすると傾き補正値が「−3」のときにレジスタに設定する値は「0」になり、傾き補正値が「+3」のときにはレジスタに設定する値は「6」になる。
【0106】
ただしこのように一定値をオフセットした場合には、レジ調整値(1_reg_wnum)からオフセット分を引いた値(この場合は、1_reg_wnum−3)を設定することになる。
【0107】
このように一定の値をオフセットすることで、すべての傾き補正値に対して加算処理を行うことができるので、ハードウェアを効率的に使用することができる。
【0108】
また、例えば図9において、レジスタに情報を格納するアドレスを右に1ずつインクリメントすると、図10においてライトポインタ(WP)の実アドレスは0→6→C→12→18→…とカウントアップされることになる。
【0109】
ここで、データを書き込む順番は、図9及び図10の様に16個単位で一つ下の段に行っても構わないし、データを受信する順序により、ブロック幅まで進んで後(10個単位)一つ下の段に移っても構わない(図9で、10の位置の次に17の位置に進む)。
【0110】
また、図9に示す通りに、第1色のデータについて、10個目までデータが書き込まれた(格納された)後、11個目のデータを書き込む先は、次のブロック(第2ブロック)の先頭になる。これはレジスト調整を行うことによって、現在のブロック(第1ブロック)に入りきらなくなったデータを書き込む(格納する)ためである。ここでは、第2ブロックの先頭に格納されるデータが11個目のデータであることは、レジスタ813の値「16」とレジスタ805のレジスト調整値「6」から、16−6+1=11より求められる。データを格納するカウンタを設け、そのカウンタが10になれば、第2ブロックの先頭のアドレスを指定する構成にすればよい。
【0111】
なお、図9において、第1色のデータの11個目のデータが格納されるアドレスは、第1ブロックに格納される色の数(2)と各色の高さ(3)、ブロックの幅(16)に基づいて求められる。
【0112】
レジスト調整分の書き込みが終了(図9で16番目のデータ書き込みが終了)すると、17個目のデータは、現在のブロック(第1ブロック)から書かれることになる。これは実際のアドレスが図10で16個目がDEで、17個目が2Cになると言うことである。
【0113】
この様にして、現在のブロック(第1ブロック)と次のブロック(第2ブロック)との間を行き来することで、レジスト調整を行いながら、第1色目のデータを書き込んでいく。
【0114】
第1色目のデータが全て書き終わると、同様の処理を第1ブロックの第2色目以降に行っていく。
【0115】
また、レジスタに情報を格納するアドレスは、図6(a)に示したように縦に1ずつインクリメントさせて、ライトポインタ(WP)の実アドレスを0→2→4→6→8→…とカウントアップさせてもよい。
【0116】
ここで、図9及び10においてレジスタに情報を格納するアドレスを縦に1ずつインクリメントさせないのは、画像変換ブロック3からのデータや、ホストからのデータの変更に柔軟に対応するためである。
【0117】
例えば、画像変換ブロック3を使用しない時には、ホストからの記録データは、従来通りレジスタに情報を格納するアドレスは図6(a)のように1ずつインクリメントさせて、ライトポインタ(WP)は1→2→3→4→5→…とカウントするように対応している。
【0118】
しかし、画像変換ブロック3を使用して例えばHV変換等を行うと、HV変換を行った後の記録記録データは、レジスタに情報を格納するアドレスは図6(a)のように1ずつインクリメントさせて、ライトポインタ(WP)を1→2→3→4→5→…とカウントアップする事が出来なくなる。
【0119】
その為、アドレスのインクリメント量に自由度を持たせることで、ホストからの様々なデータ転送方式にも対応でき、また画像変換ブロック3でのデータ変換にも対応することが出来るようになる。
【0120】
図11A、図11B、図11Cは、レジスト調整に関連したデータの状態を模式的に示す図である。図中の数字はいずれもブロック番号を示している。図11Aは、従来例のようにホストコンピュータ(プリンタドライバ)で全てのレジスト調整(レジ調整+傾き補正)を行った場合の転送データを示している。図11Bは、本実施形態でホストコンピュータから送信され記録装置が受信したデータを示している。このデータはレジスト調整(レジ調整+傾き補正)は行われていない。図11Cは、図11Bのようなデータに対して記録装置側でレジスト調整(レジ調整+傾き補正)され、記録装置(インクジェット記録装置)に設けられている記録バッファ4に格納された状態を示している。
【0121】
図11Aと図11Cに示されたデータを記録媒体へ記録すると、いずれもレジスト調整(レジ調整+傾き補正)がなされているため同様な記録結果となるが、図11Cのデータは図11Bの受信データに対して記録装置側でレジスト調整(レジ調整+傾き補正)を行ったため、レジ調データ(レジ調整値+傾き補正値)により、ラスタ方向(図11における左右の方向)に記録データの格納される位置がずれ、その結果として図11Bのデータよりもブロック数が1つ増えている。
【0122】
このようにホストコンピュータから送信したブロック数と記録装置の記録バッファに書き込まれたブロック数が異なると、論理的な矛盾が生じてしまう。これは、ホストコンピュータから送信したブロック数に基づいて、ホストコンピュータから記録装置に対して記録幅(走査方向)に関する情報を出力するからである。記録装置は、この情報に基づいて記録動作を行うので、ブロック数について異なる量だけ記録がなされない。例えば、ホストコンピュータから記録装置に3ブロック分の記録データを出力し、記録装置は、レジスト調整を行って4ブロックに記録データを格納した場合、記録は3ブロック分しかなされず、1ブロックが記録されないのである。
【0123】
本実施形態では、この様な矛盾が生じないように、図11Bに示すようなデータをホストコンピュータから転送する場合、1ブロック余分なデータを付加して記録装置に送信し、ホストコンピュータと記録装置(記録バッファ)とのブロック数が同じとなるようにする。
【0124】
図12A、図12B、図12Cは、本実施形態におけるレジスト調整(レジ調整+傾き補正)に関連したデータの状態を、図11A〜図11Cと同様に示す図である。図12Aは、従来例のようにホストコンピュータ(プリンタドライバ)で全てのレジスト調整(レジ調整+傾き補正)を行った場合の転送データを示しており、図11Aと同様な構成となる。図12Bは、本実施形態でホストコンピュータから送信され記録装置が受信したデータを示している。しかし、このデータに対してはレジスト調整(レジ調整+傾き補正)は行われていない。図12Cは、図12Bのようなデータに対して記録装置側でレジスト調整(レジ調整+傾き補正)を行い、記録バッファに格納された状態を示している。
【0125】
ここで、図11B及び図11Cに示したデータと、図12B及び図12Cに示したデータとを比較すると、図11Bの受信データに対してレジスト調整(レジ調整+傾き補正)を行った図11Cのデータのブロック数は1つ増えているが、図12Bの受信データに対してレジスト調整(レジ調整+傾き補正)を行った図12Cのデータのブロック数は増えていないことがわかる。すなわち、ホストコンピュータから図12Bのようなデータを転送する場合には、1ブロック余分に送信する必要はない。
【0126】
図11B及び図11Cに関連して、1ブロック余分に転送する場合についてもう少し詳しく説明する。図13Aは、1ブロック余分に転送する場合のデータ構成を示す図である。この場合、留意すべきは1ブロックのサイズ(走査方向のブロックサイズ)と、転送される記録データの最後のブロックについてのデータ量(図11では3つめのブロックについての走査方向のデータサイズ、図12では4つめのブロックについての走査方向のデータサイズ)、レジスト調整量(例えばカラム単位の値)の関係である。
【0127】
例えば、
走査方向のブロックサイズ<走査方向のデータサイズ+レジスト調整量(レジ調整値+傾き補正値)
であれば、図11Cに示すように、ブロック数を1つ増やす必要がある。
【0128】
一方、
走査方向のブロックサイズ>走査方向のデータサイズ+レジスト調整量(レジ調整値+傾き補正値)
であれば、図12Cに示すように、ブロック数を増やす必要はない。
【0129】
このように、ホストコンピュータにおいて、走査方向のデータサイズとレジスト調整量(レジ調整値+傾き補正値)の和が走査方向のブロックサイズより大きくなるか否かを判断し、この判断結果に応じて、ブロック数を増やす処理を行う。
【0130】
ここで、図14は、ホストコンピュータ1401と記録装置1402の構成を示す図である。
【0131】
ホストコンピュータ1401から記録装置1402へ記録データがインターフェース1405を介して転送される。
【0132】
ホストコンピュータ1401においてなされる処理の一例を以下に述べる。記録データを生成するプリンタドライバーはCPU1403により実行される。そして、これらの記録データは所定の圧縮方法で圧縮され、記録装置1402に対して出力処理を行う。
【0133】
記憶手段1404は、生成した記録データ、あるいは圧縮されたデータを一時的に保存するために用いられる。また、記憶手段1404には生成した記録データのブロック数(データ量)の数を保持するカウンタを備えている。
【0134】
このCPU1403は、上述したように、走査方向のデータサイズとレジスト調整量(レジ調整値+傾き補正値)の和が走査方向のブロックサイズより大きくなるか否かを判断し、この判断結果に応じて、ブロック数を増やす処理を行う。このため、CPU1403は予め、走査方向のブロックサイズ、レジスト調整量についての情報を記録装置から取得する。
【0135】
図16は、データ生成についての処理を示すフローチャートである。ステップS1601において、ブロック単位でデータを生成する。ブロック単位のデータを生成するたびに、生成するブロック数をカウントする。そして、ステップS1602において、最後のブロック(記録ヘッドの走査方向の最も下流のブロック)であるか否かを判定する。もし最後のブロックであればS1603にて、ブロック付加処理を行う。このブロック付加処理は図15において説明する。図16で述べた処理は、走査毎に走査方向のデータ量は異なるので、走査毎に行なわれる。
【0136】
そして、1走査の記録幅についての情報を前もって取得することで、記録する生成ブロックの数が得られ、この数がS1602の判断の閾値として使われる。
【0137】
その処理について図15のフローチャートを用いて詳細に説明する。ステップS1501において、レジスト調整量の情報とブロックサイズ(主走査方向)について情報を取得する。ステップS1502において、最後のブロックに格納されるデータサイズ(走査方向のデータサイズ)を取得する。ステップS1503において、最後のブロックについてのデータサイズ(走査方向)とレジスト調整量(レジ調整値+傾き補正値)との和と走査方向のブロックサイズとを比較する。なお、ここで、データサイズ、レジスト調整量(レジ調整値+傾き補正値)、ブロックサイズは例えばカラム数である。
【0138】
そして、ステップS1503において、走査方向のブロックサイズの方が小さければ(NO)、ステップS1504においてブロックを1つ追加する。走査方向のブロックサイズの方が大きければ(YES)、終了する。
【0139】
なお、この判断は、各色に対応する記録データについて行う。これは、走査方向のブロックサイズは各色について同じであるが、レジスト調整量と最後のブロックについての走査方向のデータサイズは色毎に異なる場合があるからである。そして、1色でもブロックを追加する必要があれば、他の色についてもブロックの追加を行う。
【0140】
次に、各ブロックのデータに付加される色変えコードに説明する。上記で図3Aの(b)に関連して説明したが、記録データの区切りを判別するために、各ブロックに色変えコードが挿入されている。
【0141】
そして、図3Aの(b)に示すように1つの色についての情報として、圧縮TAGや圧縮されたデータで構成されている。そして、色変えコードは、これらのデータの後に付加されている。
【0142】
しかし、ステップS1504でブロックを付加する場合には、これらの圧縮TAGや圧縮されたデータはなく、色変えコード(232、233、239)のみが最後のブロック(第nブロックデータ)231に続いて付加される。ここでは、色数は8であるので、8つの色変えコードが付加されてる。図3Bの(c)は、このコードを受信した場合の第nブロックデータ以降の状態を示す図である。
【0143】
これにより、記録装置は、色変えコードのみが付加されているので、記録装置はレジスト調整のために記録データがブロックからはみ出すために、ブロックが付加して格納する処理を行う指示であることを認識(判断)でき、記録バッファにレジスト調整量に基づいて記録データを格納する。
【0144】
なお、ブロックを付加する場合の他の例として、図3Bの(d)に示すように例えば色毎に1バイトのヌルデータ(242、244、…、255)のみを含み、このヌルデータに色変えコード(243、245、…、256)が付加する形態でも構わない。これにより、記録装置は、圧縮TAGが含まれず1バイトのヌルデータのみで構成されていることで、ブロックが付加する指示があることを容易に認識できる。
【0145】
あるいは、色変えコードを付加するのではなく、図3Bの(e)に示すように最後のブロックデータ(第nブロック)261の後にブロックの付加の指示を示すコマンド262を追加してもかまない。
【0146】
次に、上述したブロックを付加する場合についてホストコンピュータにおける記録データの格納処理についての補足説明を行う。図13Aにおいて(a)は圧縮前のデータを示し、(b)は圧縮前のデータにレジスト調整幅を加えた状態を示し、(c)は増えたブロックの後端を基準としたレジスト調整幅を示し、(d)は最後の記録データが格納されるべき位置を示している。なお、(b)のブロックは第nブロック、(c)のブロックは第n+1ブロックとする。
【0147】
この場合、最後の記録データの位置は、(d)のクロスハッチングした領域にある必要がある。図3Bの(d)を用いて説明した場合は、このクロスハッチングした領域にある。これは、(d)の斜線部分の領域に最後の記録データが格納されると、レジスト調整することによってブロックが更に1つ増えてしまうからである。
【0148】
図13Bも図13Aと同様に、(a)は圧縮前のデータを示し、(b)は圧縮前のデータにレジスト調整幅を加えた状態を示し、(c)は増えたブロックの後端を基準としたレジスト調整幅を示し、(d)は色変えコードが挿入されるべき位置を示している。図13Aと異なるのは、1ブロック余分に転送しない点である。
【0149】
この場合にも、(d)のクロスハッチングされた領域以外に最後の記録データが入っていると、レジスト調整することによって1ブロック増えてしまうため、色変えコードの位置は、(d)に示すように、(c)に示された後端を基準にしたレジスト調整幅の境界より前にある必要がある。
【0150】
<記録バッファからのデータの読み出し>
以下に、図8を参照して記録バッファからのデータの読み出し処理について説明する。図8において、左側は記録バッファリング構造制御回路8の読み出しアドレス制御部8Aを示し、右側は記録バッファ4を示している。
【0151】
記録バッファ4のバッファ領域は、記録バッファの先頭のアドレスであるtop_adrで表され、最終アドレスはbottom_adrで表される。この先頭アドレスはレジスタ803に格納され、最終アドレスはレジスタ804に格納される。記録バッファに示される「RP」は図5と同様にリードポインタであり、「WP」はライトポインタである。記録バッファ4におけるRPとWPの間のハッチング部分は記録データが格納されていることを表し、それ以外の部分は記録データが格納されていないことを表す。
【0152】
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタであり、破線の枠で囲った900は第1レジスタ群、実線の枠で囲った901は第2レジスタ群である。
【0153】
第1ブロックから第8ブロックの記録データを記録する場合、例えば、走査の開始時において、第1レジスタ群には第1ブロックについての情報が格納されている。また、第2レジスタ群には、第2ブロックについての情報が格納される。第1ブロックの記録が終了すると、第1レジスタ群900には第2レジスタ群901の情報がコピーされて格納される。そして第2レジスタ群901には、第3ブロックの情報が格納される。以下、最後の第8ブロックのデータが格納されるまで同様の処理が順に行われる。そして、次の走査開始時には、再び、第1レジスタ群には第1ブロックの情報が格納され、第2レジスタ群には第2ブロックの情報が格納される。
【0154】
第1レジスタ群が示す第nブロックの記録が終了した時、第2レジスタ群に第n+1ブロックの情報が格納されていない場合は、第n+1ブロックの記録データがまだ準備できていないので、第2レジスタ群の情報は第1レジスタ群にコピーされず、加えて記録バッファからのデータ読み出しを停止する。
【0155】
第1レジスタ群内にあるレジスタ819は、第1色についての高さ情報(1st_hight)と色のデータの有り無し情報(1_color_bit)を設定するレジスタである。各レジスタ822、824、826、828、830、832、834は第2色〜第8色について同様に高さ情報とデータの有り無し情報を設定するレジスタである。
【0156】
820は各ブロックデータの幅情報(block_width)を格納するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
【0157】
レジスタ818は第1色の読み出しアドレス(1st_color_adr)を格納するレジスタである。第1色のデータが格納されている記録バッファ819から読み出されるとアドレスが更新される。例えば図9に示すように、第1色のデータの内、1→2→3→4と1カラム分のデータが読み出される。レジスタ821、823、825、827、829、831、833はそれぞれ第2色〜第8色の読み出しアドレスを格納するレジスタであり、第2色〜第8色のデータも第1色のデータと同様に順に1カラム分のデータが読み出される。
【0158】
記録バッファ4に格納されるデータは複数の色のデータを含むため、例えば、第1色、第2色、…のデータが混在した場合、各色単位のデータを格納するためのアドレスは、連続していないものとなる。そのため、読み出しアドレスのレジスタが1つであれば、例えば第1色の記録バッファ4のアドレスの次に第2色の記録バッファ1のアドレス読み出しを行う際、アドレス計算をする必要があるが、記録バッファ4に各色ごとに読み出しアドレスを格納するレジスタを用意することで、カラム単位での読み出しを行う際のアドレス計算を省くことができる。
【0159】
817はアドレス制御レジスタである。読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、アドレス制御レジスタ817は読み出しアドレスとして信号線S806を介して1アドレスずつ加算して記録バッファ4に出力する。
【0160】
835は次のブロックのアドレスを格納するレジスタである。現在読み出されているブロックが第1ブロックであれば、このレジスタには第2ブロックの先頭のアドレスが格納される。このレジスタの値は、現在読み出されているブロックデータの読み出しが終了すると、レジスタ802にコピーされる。これにより、次のブロックデータの読み出しがスムーズにできる。
【0161】
レジスタ836は第1色から第8色のうち、読み出す順序を特定するための情報を格納するテーブルである。このテーブルに設定された値によって記録バッファからデータを読み出す順序を自由に設定することができる。例えば、第1色→第2色→…→第8色の順に読み出すことができる。また、値を変えて、第1色→第2色→第5色→第6色→第7色→第8色のように第3色、第4色のデータの読み出しをスキップすることもできる。これによって、格納されていない色の記録データについては、正確に読みとばすことができる。
【0162】
第2レジスタ群901は次のブロックデータに関する情報を格納するバッファの集まりである。第1レジスタ群の各レジスタが読まれたら、第2レジスタ群の各レジスタに設定されている値が、第1レジスタ群の対応するレジスタに設定される。例えば、レジスタ838に設定されている値がレジスタ819に設定される。レジスタ839〜845は、次のブロックデータにおける第2色〜第8色のデータについて同様の情報が設定されるレジスタである。
【0163】
レジスタ838(819)には第1色目のデータのバッファの高さ情報と、第1色のデータの有り無しを示す情報が格納される。
【0164】
846(820)はブロックの幅情報を設定するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
【0165】
レジスタ878は、先に設定したブロックのサイズとブロックのサイズが同じであるか否かを表す情報(same_type)を格納するレジスタであり、ブロックのサイズが同じ場合、この値を「1」とすることで、第1レジスタ群に同じ値を容易に再設定することができる。この場合、レジスタ838〜846の設定を省くことができる。一方、レジスタ878の値が「0」の場合には、各レジスタ838〜846にそれぞれの値が設定される。
【0166】
以上説明したように好適な一実施形態によればインクジェット記録装置において、記録ヘッドの走査方向におけるレジスト調整(レジ調整値+傾き補正値)を行う機能を記録装置側に持たせることで、ホストコンピュータでの記録データの生成を高速化することができ、ホストコンピュータで記録が指示されてから記録装置が記録を実行するまでの時間を短縮することができる。
【0167】
なお、上記の実施形態では、各色のブロックはいずれも同じ幅であったが、ブロック毎に異なった幅を設定しても良い。また、上記の実施形態では傾き補正の単位となる段のノズル数を16個としたが、この値についても使用する記録ヘッドに応じて適切な値を適宜設定すればよい。
【0168】
<レジスト調整値の算出>
本実施形態において説明した、レジスト調整値情報(1_reg_wnum)と、ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)とは、個々の記録ヘッド(記録カートリッジ)並びにその取り付けによって異なるものであるため、出荷時等には検査工程でそれらの値を設定しても良いが、記録ヘッド(記録カートリッジ)を交換した際には、所定のテストパターンを記録し、ずれ量を視認又はスキャナなどで読み取ってユーザが入力した値を設定するようにするのが好ましい。なお、記録装置のキャリッジ等に設けられているセンサから値を設定する構成でも構わない。
【0169】
このような記録したテストパターンに基づいた調整値の検出や算出については、従来より知られている様々な方法によって行うことができるが、本発明の特徴ではないので詳細な説明は省略する。
【0170】
<他の実施形態>
以上の実施形態では本発明をインクジェット方式に従って記録を行うインクジェット記録装置に適用した場合を例に挙げて説明したが、本発明は複数の記録素子が配列された記録ヘッドを記録素子の配列方向と交差する方向に走査して記録を行う記録装置であれば、他の方式の記録装置にも適用できる。
【0171】
以上の実施形態は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギとして熱エネルギを発生する手段(例えば電気熱変換体やレーザ光等)を備え、前記熱エネルギによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
加えて、上記の実施形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
【0172】
さらに加えて、本発明に係る記録装置の形態としては、コンピュータ等の情報処理機器の画像出力端末として一体または別体に設けられるものの他、リーダ等と組み合わせた複写装置、さらには送受信機能を有するファクシミリ装置、或いはそれらの機能を併せ持つ複合機の形態を取るものであっても良い。
【図面の簡単な説明】
【0173】
【図1】本発明の好適な実施形態としてのインクジェット記録装置のカバーを外した状態の外観斜視図である。
【図2】図1のインクジェット記録装置の記録制御部の構成を示すブロック図である。
【図3A】ホストコンピュータから転送され、受信バッファに格納されるデータの構造を示す図である。
【図3B】ホストコンピュータから転送され、受信バッファに格納されるデータの構造を示す図である。
【図4】記録データを保持する記録バッファのデータ構造を示す図である。
【図5】記録バッファリング構造制御回路の書き込みアドレス制御を説明する図である。
【図6】記録バッファに記録データがどのように格納されるか説明する図である。
【図7A】傾き補正値がプラスの場合の例を示す図である。
【図7B】傾き補正値がマイナスの場合の例を示す図である。
【図8】記録バッファリング構造制御回路の記録バッファからのデータの読み出し処理について説明する図である。
【図9】レジスト調整値がゼロでなく傾き補正がある時の、データの書き込み順番を説明する図である。
【図10】レジスト調整値ゼロ0でなく傾き補正がある時の、実アドレスを説明する図である。
【図11A】レジスト調整に関連したデータの状態を模式的に示す図である。
【図11B】レジスト調整に関連したデータの状態を模式的に示す図である。
【図11C】レジスト調整に関連したデータの状態を模式的に示す図である。
【図12A】レジスト調整に関連したデータの状態を模式的に示す図である。
【図12B】レジスト調整に関連したデータの状態を模式的に示す図である。
【図12C】レジスト調整に関連したデータの状態を模式的に示す図である。
【図13A】レジスト調整による最終ブロックのデータ構成を示す図である。
【図13B】レジスト調整による最終ブロックのデータ構成を示す図である。
【図14】本発明に係るホストコンピュータと記録装置の概略制御構成を示す図である。
【図15】ブロック付加処理を示すフローチャートである。
【図16】データ生成についての処理を示すフローチャートである。
【技術分野】
【0001】
本発明は記録装置、記録装置のデータ処理方法、及び記録システムに関し、より詳細には、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、記録素子の配列方向と交差する方向に走査させて記録を行う記録装置における、記録データの処理に関するものである。
【背景技術】
【0002】
例えばワードプロセッサ、パーソナルコンピュータ、ファクシミリ等に於ける情報出力装置として、所望される文字や画像等の情報を用紙やフィルム等シート状の記録媒体に記録を行うプリンタが広く使用されている。
【0003】
プリンタの記録方式としては様々な方式が知られているが、用紙等の記録媒体に非接触記録が可能である、カラー化が容易である、静粛性に富む、等の理由でインクジェット方式が近年特に注目されており、又その構成としては、所望される記録情報に応じてインクを吐出する記録ヘッドを搭載したキャリッジを用紙等の記録媒体の搬送方向と交差する方向に往復走査させながら記録を行なう、シリアル記録方式が安価で小型化が容易などの点から一般的に広く用いられている。
【0004】
従来、記録ヘッドを搭載したキャリッジを記録媒体上で走査させて記録を行うために、記録ヘッドの走査方向の記録領域を複数の領域に分割し、分割された領域単位の記録データを格納するバッファを有する記録装置(印刷装置)が知られている。
【0005】
このような記録装置では、分割された領域単位の記録データをバッファに格納する際に、色毎に記録データの格納領域を切替える情報と格納可能なバッファ残量及び書き込みアドレス更新量の比較の結果とに基づき、領域単位の記録データの書き込みアドレス情報を、色毎に制御する書き込み制御部を備えている(特許文献1)。
【0006】
また、バッファに格納された記録データを読み出すための読み出しアドレス情報を色毎に制御する読み出し制御部と、読み出しアドレス情報に基づいて読み出された記録データに従い、分割された領域単位の記録データを生成する記録データ生成手段とを備えている。
【0007】
このように構成された従来の記録装置にホストコンピュータから転送される記録データに対しては、ホストコンピュータ(プリンタドライバ)によって、走査方向(ラスタ方向)における位置の調整(レジスト調整)を施されている(特許文献2)。
【0008】
また、記録ヘッドに設けられる記録素子列の長さが短い(1つの記録素子列を構成する記録素子数が少ない)構成においては、記録ヘッドの取り付け(装着)時に生ずる取り付け誤差(基準角度に対する傾き)によるズレ幅は、最大でも1画素以内に収まるため、記録画像に対する影響を無視することができ、このような記録ヘッドの取り付け誤差に関する補正などはなされていない。
【特許文献1】特開2003−305896号公報
【特許文献2】特開2003−305895号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、近年は、例えば、記録ヘッドとインクタンクとが一体化された構成の低コストの記録装置においても記録ヘッドの長尺化が進み、記録ヘッドの取り付け時に生ずる取り付け誤差によるズレ幅が1画素を超えるようになっており、記録画像への影響が無視できなくなってきている。
【0010】
この記録ヘッドの取り付け時に生ずる取り付け誤差(基準角度に対する傾き)によるズレを補正するためには、各記録素子列の傾きに対応した位置の調整(レジスト調整)を施す必要があるが、この位置の調整(レジスト調整)では、1ビットのデータを処理する必要がある。
【0011】
しかしながら、記録装置に転送する記録データは記録・非記録を表す1ビット(2値)で表現されるのが一般的であるが、通常ホストコンピュータのデータ処理単位は16ビットや32ビットに設定されている。このため、ホストコンピュータで記録データのような1ビットのデータを処理するのは効率が悪く、処理に時間がかかってしまう。
【0012】
近年は記録装置の解像度が向上しており、ホストコンピュータから記録装置へ転送する記録データの量も増大している。このため記録データの量が増大すると、ホストコンピュータでの記録データの生成及びその後の転送に時間がかかり、記録を指示してから記録装置で記録が実行されるまでの実効的な速度が低下することとなる。
【0013】
以上のような理由で、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うと共に、ホストコンピュータ(プリンタドライバ)が記録データを生成したり記録装置へ転送するのに要する時間を短縮し、記録を指示してから記録が実行されるまでの時間を短縮することが課題となっていた。
【0014】
本発明は以上のような状況に鑑みてなされたものであり、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うと共に、ホストコンピュータにおける記録データの生成処理及び転送処理を高速化することを目的とする。
【課題を解決するための手段】
【0015】
上記目的を達成する本発明の一態様としての記録装置は、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置であって、
接続されたホスト機器から送信され、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含む設定データ及び各記録素子列の記録データを格納する受信バッファと、
各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、
前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御手段と、を備えている。
【0016】
このようにすると、従来ホスト機器で行われていた記録素子列間の相対距離に関連したレジスト調整処理に加え、記録ヘッドの取り付け誤差によって生じる各記録素子列の走査方向と直交する方向における傾きに関連したレジスト調整処理が記録装置側で実行されるので、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うことができると共に、ホスト機器での記録データの生成処理が簡略化され、記録が指示されてから実際に記録が行われるまでの時間を短縮することが可能となる。
【0017】
第2のレジスト情報は、傾きを走査方向における記録画素の数に換算した値としてもよい。
【0018】
第2のレジスト情報を、各記録素子列内の所定数の記録素子毎に設けてもよい。
記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御手段と、読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御手段と、を更に備えるのがよい。
【0019】
各記録素子列によってそれぞれ異なった色で記録を行うように構成されているのが好ましい。
【0020】
好適には、記録バッファは、走査方向における記録領域を複数のブロックに分割し、該ブロック毎に記録データを格納するように構成されており、書き込み制御手段は、記録データに含まれるデータの有無を識別するための情報と、該データのラスター数と、該データのレジスト情報と、を記録素子列毎に格納するレジスタを有する。
【0021】
書き込み制御手段は、各ブロックに対する各記録素子列の記録データの有無に応じて、記録バッファに格納するためのアドレス情報を制御するのがよい。
【0022】
各記録素子はインクを吐出して記録を行うように構成されているのがよく、より好ましくは、各記録素子は、熱エネルギーを利用してインクを吐出すべく、インクに与える熱エネルギーを発生するための熱エネルギー変換体を備えている構成である。
【0023】
また、上記目的を達成する本発明の別の態様としての記録装置のデータ処理方法は、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行い、接続されたホスト機器から送信され、設定データ及び各記録素子列の記録データを格納する受信バッファと、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、を備える記録装置のデータ処理方法であって、
前記設定データに含まれる各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とに基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御工程と、
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御工程と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御工程と、を備えている。
【0024】
上記目的を達成する本発明の更に別の態様としての記録システムは、複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置と、該記録装置に接続され、前記記録装置に対して設定データ及び記録データを送信するホスト機器と、を含む記録システムであって、
前記ホスト機器が、前記設定データとして、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含むデータを送信し、
前記記録装置が、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファを備え、前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する。
【0025】
また、記録素子列を複数有する記録ヘッドを記録媒体に対して走査させて記録媒体に記録する記録装置に対して出力する記録データを、前記記録媒体において前記記録ヘッドの走査記録領域のうち走査方向に複数に分割された領域に対応したブロック単位で生成する生成手段と、前記記録データを含む指示を出力する出力手段を備えるホスト機器であって、
前記記録ヘッドの前記記録素子列のずれについての第1のレジスト情報、及び記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報を取得するレジスト情報取得手段と、
前記生成された記録データから前記記録装置において1回の走査記録で記録する記録データに対応したブロック数を取得するブロック数取得手段と、
前記ブロック数取得手段が取得した前記ブロック数を、前記第1及び第2のレジスト情報に基づいて変更するか否かを判定する判定手段と、
前記判定手段が前記ブロック数を変更すると判定した場合には、前記指示の内容を変更する変更手段を備えるホスト装置によっても上記の目的は達成される。
【0026】
なお、上記の目的は、上記記録装置のデータ処理方法をコンピュータ装置によって実現させるコンピュータプログラム、該コンピュータプログラムを格納した記憶媒体によっても達成される。
【発明の効果】
【0027】
本発明によれば、記録ヘッドの取り付け時に生ずる取り付け誤差の補正を効率的に行うことができると共に、ホスト機器での記録データの生成処理が簡略化され、記録が指示されてから実際に記録が行われるまでの時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【0028】
以下に、添付図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【0029】
なお、この明細書において、「記録」(「プリント」という場合もある)とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、また人間が視覚で知覚し得るように顕在化したものであるか否かを問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【0030】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【0031】
さらに、「インク」(「液体」と言う場合もある)とは、上記「記録(プリント)」の定義と同様広く解釈されるべきもので、記録媒体上に付与されることによって、画像、模様、パターン等の形成または記録媒体の加工、或いはインクの処理(例えば記録媒体に付与されるインク中の色剤の凝固または不溶化)に供され得る液体を表すものとする。
【0032】
またさらに、「ノズル」(「記録素子」と言う場合もある)とは、特にことわらない限り吐出口ないしこれに連通する液路およびインク吐出に利用されるエネルギーを発生する素子を総括して言うものとする。
【0033】
以下、本発明をインクジェット記録装置(印刷装置)に適用した一実施形態について具体的に説明する。
【0034】
<記録装置の概略構成>
図1は、本実施形態のインクジェット記録装置の概略構成を示すカバーを外した状態の斜視図である。
【0035】
図1において、キャリッジ101は記録ヘッドとインクタンクとが一体化された記録カートリッジ110を搭載し、ガイド軸102に沿って走行可能である。なお、本実施形態では、記録ヘッドは、インクジェット方式の記録ヘッドである。また、103はシャーシであり、メインシャーシ103aと左右の側面板103b及び103cから構成される。108はキャリッジの駆動源であるキャリッジモータであり、109はキャリッジに接続されキャリッジモータ108によって駆動されるベルト、130は記録ヘッド吐出面の清掃や吸引動作行う回復系ユニット、140はキャリッジ101に搭載された発光素子及び受光素子と共にキャリッジの位置及び速度を算出するCRエンコーダを構成するスケールである。
【0036】
記録媒体としての記録紙は、給紙ローラ(不図示)によって装置本体内に送り込まれ、紙送りローラ105とピンチローラ(不図示)、紙押え板(不図示)によって狭持され、記録カートリッジ110の記録領域へと搬送され記録が行われる。
【0037】
記録カートリッジ110は、イエロー、マゼンタ、シアンの3色のインクを収容したカラー記録カートリッジと、ブラックインクを収容したブラック記録カートリッジの2種類で、それぞれ別々にカートリッジガイド7に挿入される。
【0038】
本実施形態のインクジェット記録装置は、ホストコンピュータと接続され、ホストコンピュータ(プリンタドライバ)から記録データの供給を受けて記録を行う。また、本実施形態の記録装置は、記録ヘッドを含む記録カートリッジ110を搭載したキャリッジを記録媒体上で走査させて記録を行うために、記録ヘッドの走査方向の記録領域を複数の領域に分割し、分割された領域単位で画像を記録(印刷)する。
【0039】
その場合、本実施形態のインクジェット記録装置では、ホストコンピュータ側では、ビット単位のデータ処理により走査方向における記録データ位置の調整(レジスト調整)は行わず、この記録データのレジスト調整は、後述する図2の記録装置側の記録バッファリング構造制御回路8で行う。そのため、ホストコンピュータでの記録データの生成が高速化され、実効的な記録速度の高速化を図ることが可能となる。
【0040】
<記録制御部の構成>
図2は、本発明にかかる記録装置の記録制御部の構成を示すブロック図である。同図に於いて、1はインターフェース信号線S1を介してホストコンピュータ(不図示)から転送されてくるデータを受信し、その受信したデータの中から、記録装置の動作に必要なデータ及び記録データを抽出して一旦蓄えるインターフェース制御部(コントローラ)であり、インターフェースコントローラ1で抽出されたデータは信号線S2を介して受信バッファ2に格納される。
【0041】
受信バッファ2はSRAMもしくはDRAM等の記憶装置(メモリ)で構成され、この受信バッファに蓄えられるデータは図3A及び3Bに示すような構造のものとなる。
【0042】
図3Aの(a)において受信バッファのデータ構造が示されるように、左から順に「コマンド」(201)、「データ長」(202)、「設定データ」(203)のデータが格納され、これに続いて「コマンド」(204)、「データ長」(205)、「設定データ」(206)のデータが格納されている。これは時系列順に転送されてきたデータが、受信バッファの連続したアドレスに格納されることを示し、ここで示す設定データ206は、例えば給紙の実行や紙送り量の設定、使用する記録ヘッド数等を示す情報であり、この設定データで定められた情報が全て揃って初めて記録装置で記録が可能となる。この後に、記録の対象となる記録データ(209、212)が受信バッファ2に格納される。
【0043】
この記録データ(209、212)は、記録ヘッドが記録媒体上を1度の走査で記録する際に必要とされるデータ量を、それより少ないデータ量としてブロック単位に分割したデータであり、そのブロック単位で記録データを区切り、順次第1ブロックデータ(209)、第2ブロックデータ(212)、…として格納される。
【0044】
図3Aの(b)はブロック単位に分割された記録データのデータ構造を詳細に示す図であり、同図で示すように、複数の色のデータ(213〜214)が各々圧縮されたデータとして順次格納される。この圧縮TAG、圧縮データは「色変えコード」(216、217、218)で区切られる。
【0045】
例えば、シアン、イエロー、マゼンタ、それと黒の4色の記録データを想定した場合、各色毎に縦64ノズルを1列としたノズル列が走査方向に2列ずつ配列する記録ヘッドを用いると、各ノズル列単位のデータが1つの色の記録データを構成することになるのでノズル2列が4色分、すなわち、圧縮された第1色から第8色の記録データが一つのブロックデータ内に記録データとして格納される。このノズル列の各ノズルは、記録媒体の搬送方向に並んでいる。例えば、第1色と第2色がシアンに対応する記録データ、第3色と第4色はマゼンタに対応する記録データ、第5色と第6色はイエローに対応する記録データ、第7色と第8色は黒に対応する記録データとなる。
【0046】
図4は記録データを保持する記録バッファのデータ構造を示す図である。例えば1回の走査で最大約8インチの走査方向の長さを記録する場合、1つのブロックデータが走査方向に約1インチの記録ができるサイズとすると、トータル8ブロックの記録データを記録すれば、1走査分の画像が完成することになる。第1ブロックから第8ブロックは記録ヘッドの走査方向に配置され、各ブロックデータには、第1色のデータから第8色のデータが格納される。各ブロック内に格納される各色のデータの長さは記録ヘッドのノズル数に対応するものである。
【0047】
説明を図2に戻し、各制御ブロックの説明を続ける。受信バッファ2に格納されるデータのうち、記録装置の制御用の設定値である「コマンド」、「データ長」、「設定データ」は、インターフェースコントローラ1から信号線S902を介してCPU9により読み出され、図中にある各部制御回路(7、8)に設定される(S903、S907)。CPU9は読み出したデータ(図3A(a)の201〜208に相当するデータ)を解釈し、その結果に従って記録装置の全体的な記録制御を統括する。一方、CPU9は記録データの処理に関してはデータ解凍ブロック55を起動して処理を実行させるものとする。
【0048】
データ解凍ブロック55は受信バッファ2から、図3A(b)で示されるように「圧縮TAG」と「データ(圧縮データ)」及び「色変えコード」の3種類のデータを読み出し、これらのデータに基づきデータの展開制御を実行する。本実施形態ではデータの圧縮/解凍方法としてPackBits圧縮を用いたので、圧縮TAGが8ビットで00hから7Fhまでの値の場合、非連続なデータが1から128個データ領域に有るとして処理し、圧縮TAGが8ビットでFFhから81hまでの値の場合、次の1バイトデータを連続した2から128個のデータに解凍する処理を行う。なお、データの読み出し処理において、80hを読み出した場合は色変えコードとして処理する。解凍したデータを信号線S4aを介して、画像変換ブロック54に送る。この画像変換ブロックにてHV変換がなされ、信号線S4bを介してHV変換されたデータが記録バッファ4に格納される。
【0049】
記録バッファ4には解凍された記録データが図4に示すデータ構造で格納される。記録バッファ4の先頭アドレスには第1ブロックの第1色のデータの先頭データが書き込まれ、その後に続くデータは、アドレスを適宜変更しながら順次書き込まれる。記録バッファのアドレスに一つの色のデータとして格納できる領域は、最初にCPU9が読み込んだ設定データで決定され、その値以上のデータは書き込めないので記録データを圧縮する際には、その設定データに従ったデータサイズの制限が加えられることになる。色変えコードを検出した後のデータは第2色のデータの先頭番地から順次書き込まれる。このアドレスデータの制御は後に説明する記録バッファリング制御構造回路8が実行することになる。
【0050】
この書き込みを第1ブロックの第1色のデータから第8色のデータまで繰り返し、第8色のデータの書き込みを終えて色変えコードを検知すると、第1ブロックのデータが全て書き込み終えたことになる。データ解凍ブロック55はデータの展開動作を終了し、CPU9に対しブロック1個分のデータの展開が完成したことを割込み(S906)で伝え、CPU9からの次のデータ展開の起動を待つ。
【0051】
記録バッファ4上に複数ブロックの記録データが揃った段階で、CPU9は記録動作を開始すべくキャリッジモータ(図1の108)を動作させ、記録ヘッド6(記録カートリッジ110)を搭載したキャリッジを走査させながら、記録データをキャリッジエンコーダ(CRエンコーダ)10に同期して転送し、記録することで紙面上(記録媒体に)に画像を完成させることができる。記録ヘッド6が主走査方向に走査した後、搬送手段が記録媒体を副走査方向に搬送する。こうして、記録ヘッドの走査と、記録媒体の搬送を繰り返し行って、1ページ分の画像の記録を行う。
【0052】
記録データ生成ブロック5は、記録バッファ4上に有る記録データの各ブロック構造を、CPU9から指定された値に従って、CRエンコーダ10に同期したタイミングで信号線S5を介して読み出し、記録ヘッド6が記録できるデータ構造に変換しながら信号線S6に出力していく。この記録データ生成ブロック5は後で述べる記録バッファ内のブロック幅(ブロックの長さを示す。)の情報、ブロックの各色の高さ(色のデータの「ラスター数」という。)についての情報を保持する。
【0053】
尚、記録バッファ4から読み出されたデータ領域は次の記録データを蓄えるために、零クリアされる。
【0054】
<受信バッファの書き込み、読み込み制御>
以上説明したように受信バッファ2には、インターフェースコントローラ1がデータを書き込み、データ解凍ブロック55が記録データのみを読み出すが、その書き込みアドレスと読み出しアドレスを制御しているのが受信バッファリング構造制御回路7である。受信バッファリング構造制御回路7は受信バッファ2の先頭アドレスと最終アドレス、それと書き込みアドレスと読み出しアドレスの管理を行っている。
【0055】
受信バッファリング構造制御回路7はインターフェースコントローラ1から受信する書き込み要求信号(S701)を受け付け毎に1アドレスずつ加算し、これを書き込みアドレスの情報として受信バッファ2に出力する(S702)。そして、受信バッファリング構造制御回路7は受信バッファ2の最終アドレスに達した場合に書き込みアドレスを受信バッファ2の先頭のアドレスに戻す制御を行う。
【0056】
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、受信バッファ2がデータでいっぱいになり、次のデータを書き込めない旨をインターフェースコントローラ1に信号線S703を介して通信する。
【0057】
このとき同時にCPU9に対しても信号線S904の割込み信号により、受信バッファ2はデータの書き込みができない状態であることを知らせる。受信バッファ2の構造はCPU9が信号線S903のバスを用いて内部のレジスタに書き込むことで設定することができる。
【0058】
読み出しアドレスは、CPU9が受信バッファリング構造制御回路7の中に有るデータリード用レジスタを介して直接に受信バッファ2の中のデータを読み出す場合と、データ解凍ブロック55がデータ読み出し要求信号線S705を介して要求した場合に、読み出しアドレスとして信号線S706を介して1アドレスずつ加算されて受信バッファ2に出力される。
【0059】
受信バッファリング構造制御回路7は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを受信バッファ2の先頭アドレスに戻す制御を行う。また読み出しアドレスが書き込みアドレスに到達(一致)した場合、受信バッファ上からデータがなくなったので、次のデータを読み出せない旨をデータ解凍ブロックに信号線S704を介して通信する。このとき同時にCPU9に対しても信号線S904の割込み信号線で、受信バッファ2上には、読み出すデータが無い旨を知らせる。
【0060】
以上が受信バッファ2に対するデータの書き込み、読み取り制御の処理内容である。次に、この受信バッファ2から読み出され、展開処理されたデータを記録バッファに書き込みし、あるいはその記録バッファからデータを読み取るための処理内容を説明する。
【0061】
<記録バッファの書き込み、読み取り制御>
記録バッファ4に対して、画像変換ブロック54が記録データを書き込み、記録データ生成ブロック5がその書き込まれた記録データを読み出すが、その際、書き込みアドレスと読み出しアドレスを制御しているのが記録バッファリング構造制御回路8である。
【0062】
記録バッファリング構造制御回路8は記録バッファの先頭アドレスと、最終アドレス、それと書き込みアドレスと、読み出しアドレスの管理を行っている。
【0063】
記録バッファリング構造制御回路8は画像変換ブロック54から受信する書き込み要求信号(S801)を受け付ける毎にアドレスを適宜変更し、これを書き込みアドレスの情報として記録バッファ4に出力する(S802)。そして、記録バッファリング構造制御回路8は記録バッファ4の最終アドレスに達した場合に書き込みアドレスを記録バッファ4の先頭のアドレスに戻す制御を行う。
【0064】
また、書き込みアドレスが読み出しアドレスに到達(一致)した場合、記録バッファ4が記録データでいっぱいになり、次の記録データを書き込めない旨を画像変換ブロック54に信号線S809を介して通信する。
【0065】
また、データ解凍ブロック55が色変えコードを受信バッファ2から読み込んだ場合、データ解凍ブロック55は信号線S541を介して画像変換ブロック54にその旨を通信し、画像変換ブロックは、信号線S807を介して、記録バッファリング構造制御回路に出力する。記録バッファリング構造制御回路8は次の色のデータを格納する先頭番地を信号線S802から出力するように準備する。記録バッファ4の構造はCPU9が信号線S907のバスを用いて内部のレジスタに書き込むことで設定することができる。
【0066】
読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、読み出しアドレスとして信号線S806を介して1アドレスずつ加算されて記録バッファ4に出力される。
【0067】
記録バッファリング構造制御回路8は読み出しアドレスが最終アドレスに達した場合、読み出しアドレスを記録バッファ4の先頭アドレスに戻す制御を行う。
【0068】
記録データ生成ブロック5は現在読み出している記録データブロックのデータ構造をCPU9から信号線S908のバスを介して、記録データ生成ブロック5内部にあるレジスタに設定する。設定された記録データブロック構造内にある記録データを全て読み出すと終了信号S909をCPU9に対し割り込み信号として通信する。この際、記録バッファ4上に次の記録データブロックがすでに展開されているならば、その記録データブロック構造をレジスタに書き込む。
【0069】
記録バッファ4は1記録データブロック単位でデータの書き込みを制御しており、書き込まれていない記録データブロックに対し記録データ生成ブロックを起動しないので、記録バッファの読み出しアドレスが書き込みアドレスを越えることは起きない。11は、バッファ構造情報メモリである。これは、記録バッファの制御用の作業用メモリ(ワークRAM)で、後で述べる記録バッファ構造についての情報を一時的に格納する領域である。
【0070】
<記録バッファリング構造制御回路の説明>
記録バッファリング構造制御回路の説明を図5及び図8を用いて説明する。記録バッファリング構造制御回路の処理において、図5は書き込みアドレス制御を中心に説明する図であり、図8は記録バッファリング構造制御回路8の読み出しアドレス制御を中心に説明する図である。
【0071】
記録バッファリング構造制御回路8は読み出し制御部8Aと書き込みアドレス制御部8Bで構成されている。また、記録バッファ4のバッファ領域は、記録バッファの先頭のアドレスをtop_adrで示し、最終アドレスをbottom_adrで表示する。この先頭アドレスは書き込みアドレス制御部8B内のレジスタ803に格納され、最終アドレスは書き込みアドレス制御部8B内のレジスタ804に格納される。
【0072】
記録バッファ4に示される「RP」はリードポインタを示し、「WP」はライトポインタを示す。記録バッファの中のRPとWPの間のハッチング部分は記録データが格納されていることを表している。また、記録バッファ4の白色部分は記録データが格納されていないことを表す。
【0073】
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタである。805から812は第1色から第8色について、各色の情報を格納するレジスタである。ここで、レジスタ805には第1色目データのバッファの高さ情報(1st_hight)と、第1色のデータの有り無しを示す情報(1_color_bit)と、第1色目のレジスト調整値情報(1_reg_wnum)と、第1色目の各ノズルの傾き補正の有り無しを示す情報(1_color_s_bit)と、第1色目の各ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)が格納され、同様にレジスタ806〜812についても第2色〜第8色について同様の情報が設定される。
【0074】
なお、レジスト調整値情報(1_reg_wnum)は、ノズル列間のラスタ方向における相対位置に対応した値となるので、1つのノズル列に対しては常に同じ値となる。すなわち、ノズル列毎にレジスト調整値情報を持っている。例えば、第1ノズル列を基準とすると、第1色のデータに対するレジスト調整値情報は0、第2ノズル列と第1ノズル列との距離がAカラム分であれば、第2色のデータに対するレジスト調整値情報はAとなる。また、第3ノズル列と第1ノズル列との距離がBカラム分であれば、第3色のデータに対するレジスト調整値情報はBとなる。このように、第1色のデータを記録する第1ノズル列の位置を基準にして各ノズル列との相対距離に対応して、第2色のデータから第8色のデータのレジスト調整値情報が設定される。
【0075】
また、各ノズルの傾き補正の有り無しを示す情報(1_color_s_bit)は、1つのノズル列を所定のノズル数毎、例えば16個のノズル毎に区切って使用している。例えばノズル列を構成するノズル数が128の場合には8等分されることになる。このような情報を持つことによって、例えば記録に使用するノズル数が半分となる時でも、ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)を変更しないで、傾き補正の有り無しを変更するだけですむようになる。
【0076】
各ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)も各ノズルの傾き補正の有り無しを示す情報(1_color_s_bit)と同様に、1つのノズル列を所定のノズル数、例えば16個のノズル毎に区切って使用しており(以下、この16個を単位としたノズル群を「(ノズル)段」とも称する)、同じ段のノズルに対しては常に同じ値を用いる。すなわち、各段毎に傾き補正のレジスト調整値情報を持っている。
【0077】
例えば、ノズルの上端を基準とすると、最初の16個(1段目:第1ノズルから第16ノズル)のノズルのデータに対する傾き補正のレジスト調整値情報は0、次の16個の(2段目:第17ズルから第32ノズル)ノズルと最初の16個(1段目)のノズルとのカラム方向におけるずれがAカラム分であれば、2段目のデータに対する傾き補正のレジスト調整値情報はAとなる。また、次の16個(3段目:第33ノズルから第48ノズル)のノズルと最初の16個(1段目)のノズルとのカラム方向におけるずれがBカラム分であれば、3段目のデータに対する傾き補正のレジスト調整値情報はBとなる。このように、各ノズル列の最初の16個(1段目)のノズルの位置を基準にして、16個のノズル(段)を単位として、取り付け角度に対応して生じるカラム方向におけるずれの値が傾き補正のレジスト調整値情報として設定される。
【0078】
813はブロックの幅情報(block_width)を設定するレジスタであり、この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
【0079】
上述のブロックの高さ情報、幅情報及びレジスト調整値情報は、図3A(a)で説明した設定データに含まれる情報である。
【0080】
815は次のブロックデータのアドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ805からレジスタ812のうちのいずれかの値と、ブロックデータに関する幅の情報を格納するレジスタ813の値を用いて決定することができる。書き込み制御部8Bは、書き込み対象となる第1ブロックデータに関する設定情報に従い、次に書き込み対象となる第2ブロックデータの書き込み開始アドレスを決定し、このレジスタに格納する。
【0081】
817はレジスト調整分の書き込み開始アドレスを格納するレジスタであり、このアドレスは各色に関する情報を格納するレジスタ805からレジスタ812のうち全ての値と、ブロックデータに関する幅の情報を格納するレジスタ813の値を用いて決定することができる。書き込み制御部8Bは、書き込み対象となる第1ブロックデータに関する設定情報に従い、次に書き込み対象となるレジスト調整分の書き込み開始アドレスを決定し、このレジスタに格納する。
【0082】
なお、書き込み制御部8Bは、例えば第1の色のデータについて説明すると、第1ブロックのデータに対応する記録データの書き込み完了前に、第1ブロックのデータのレジスト調整幅分を反映した第2ブロックでの書き込み開始アドレス情報を決定している。他の色のデータ(第2色のデータ〜第8色のデータ)についても同様である。
【0083】
書き込み制御部8Bは、第1ブロックデータに対応する記録データの書き込み完了前に、第1ブロックデータのレジスト幅分に対する書き込みアドレス情報を、決定した書き込み開始アドレスに更新することができる。
【0084】
また、816はデータの書き込みアドレス(WP)を格納するレジスタである。
【0085】
814はアドレス制御レジスタで、書き込みアドレス(WP)が読み出しアドレス(RP)を追い越さないように(両アドレスが重複したアドレスを指定しないように)書き込み処理、読み出し処理の管理をする。
【0086】
<記録バッファへのデータの格納(図6)>
図6は、記録バッファ4に記録データがどのように格納されるか説明する図である。図6(a)では、第1色のデータとして縦に順に4ワード分ずつ、格納される状態を示す。ここで1ワードが16画素分に対応している。レジスタに情報を格納するアドレスは1ずつインクリメントされるものとすると、ライトポインタ(WP)は1→2→3→4→5→…とカウントされる。
【0087】
例えば、図6(a)のレジスタの設定は、バッファの高さ情報(ラスター数)の値(1st_hight)は「4」であり、データの有り無し情報(1_color_bit)の値は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「28」である。
【0088】
図6(b)は、第2色のデータがある場合に、記録バッファ4へのデータの書き込みを示す図である。第1色の格納領域に全てデータを格納した後、矢印のようにライトポインタ(WP)を第2色の先頭アドレスへ移動し、第2色のデータの格納を行う。図6(c)では、第2色のデータが無い場合、第1色のデータの格納領域に続き、第3色のデータが格納されることを示す。この場合、図5で示すレジスタ806の第2色のデータの有り無し情報(2_color_bit)は、データ無しを示す「0(無し)」である。あるいは、バッファの高さ情報(2nd_hight)が「0」であれば、データが無いことを示すので、この情報を用いてもかまわない。あるいはデータの有り無し情報とバッファの高さ情報との論理積演算(AND処理)を行ってその結果を用いて判断しても良い。
【0089】
図6(d)では、第2色のデータについて、書き込み位置を示すe1(WP:ライトポインタ)は、読み出し位置を示すe2(RP:リードポインタ)の手前で書き込みを停止することを示す。これは、読み出しが終了していない位置には、データの書き込みを禁止して、上書きをすることを防ぐ制御を行うものである。以上の制御は、第3色から第8色の領域についても同様である。
【0090】
<記録バッファへのデータの格納処理>
図9及び10は、レジスト調整値情報(以降、単に「レジ調整値」とも呼ぶ)がゼロでなく、傾き補正のレジスト調整値情報(以降、単に「傾き補正値」とも呼ぶ)がゼロでない場合に、記録バッファ4に記録データがどのように格納されるか説明する図である。図9及び10では、第1色のデータとして縦に順に3ワード分ずつ、格納されている状態を示す。ここで1ワードが16画素分に対応している。
【0091】
ここで、図9はデータが入力される順番を示し、図10は実際に書き込まれるアドレスを示している図である。
【0092】
また、図9及び10の斜線部は第1色目のレジ調整値(6)で、クロスハッチング部は各ノズル段の傾き補正値(0,1,2)を示している。実際の書き込み開始位置は図9に示す位置からになるが、実アドレスは図10に示す通り、レジスト調整値に対応してスキップした位置(例えば左から7つ目の24)から始まることになる。
【0093】
また、図9及び10の2つの図は対応しているので、例えば1番目に書き込まれるデータのアドレスは、図10に示すように24となり、2番目に書き込まれるデータのアドレスは図10に示すように2Aとなる。
【0094】
ここで、図9及び10の第1色目のレジスタの設定は、バッファの高さ情報(ラスター数)の値(1st_hight)は「3」であり、データの有り無し情報の値(1_color_bit)は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「16」でレジ調整値(1_reg_wnum)は6で、各ノズル段の傾き補正の有り無しを示す情報(1_color_s_bit)の値は最初と2番目と3番目のノズル段だけ「1(傾き補正あり)」で、他のノズルは「0(傾き補正なし)」で、各ノズル段の傾き補正値(1_s_reg_wnum)は、最初のノズル段から順番に「0,1,2」である。
【0095】
次に図9及び10の第2色目のレジスタの設定は、バッファの高さ情報(ラスター数)の値(2nd_hight)は「3」であり、データの有り無し情報の値(2_color_bit)は「1(有り)」である。レジスタ813(ブロックの幅情報:block_width)の値は「16」でレジ調整値(1_reg_wnum)は2で、各ノズル段の傾き補正の有り無しを示す情報(1_color_s_bit)の値は3番目のノズル段だけ「1(傾き補正あり)」で、他のノズル段は「0(傾き補正なし)」で、各ノズル段の傾き補正値(1_s_reg_wnum)は、最初のノズル段から順番に「0,0,1」である。
【0096】
ここで、現在の書き込んでいる高さ(段)を示すカウンタを持っており、1段書き終るごとにカウントダウンさせていく。カウンタの値は書き始めるときに「各色の高さ−1」がセットされる。例えば、図9では1段目ではカウント値「2」で、2段目ではカウント値「1」で、一番下の段(3段目)ではカウント値「0」になる。
【0097】
ここでカウンタの値が「0」になり次にカウントダウンすると、初期値「各色の高さ−1」が再びセットされる。
【0098】
このように、カウンタの値は記録ヘッドの所定数で構成されるノズル群に対応する単位(例えば16個で一区切り)でカウントダウンしていく。そしてカウントダウン毎に次の段のノズルについて傾き補正の有り無しを判断し、傾き補正がある場合には、対応した傾き補正値を設定レジスタから参照してくる。
【0099】
またカウンタの値が「0」になった時にカウントダウンされた時には、その段のノズルの傾き補正の有り無し情報のレジスタを先頭から参照していく。
【0100】
このように16個のノズル段毎に傾き補正値を更新し、レジ値(1_reg_wnum)と演算を行うことで、補正すべき最終的なレジスト調整値を求めている。
【0101】
ここで、傾き補正値(1_s_reg_wnum)の値について、図7A及び19Bを参照して説明する。
【0102】
傾き補正値(1_s_reg_wnum)は基準に対してプラス方向とマイナス方向が存在する。図7Aは、傾き補正値がプラスの場合の例を示し、図7Bは、傾き補正値がマイナスの場合の例を示している。
【0103】
図7Aのように傾き補正値がプラスである場合には、ハードウェアでの処理としては加算処理を行うだけでよい。
【0104】
一方、図7Bのように傾き補正値がマイナスである場合には、ハードウェアで行う処理としては2つの手法から選択することができる。ひとつの手法は減算処理を行うもので、もう一方の手法は加算処理で行う方法である。
【0105】
また、図7Bの例のようにマイナス値を加算処理で行う手法としては、オフセット値を導入する手法がある。例えば傾き補正値は最大で「±3」までしか取りえないとする。ここで、傾き補正値が「0」の時にレジスタに設定する値を「3」としてプラス側に3だけオフセットする。このようにすると傾き補正値が「−3」のときにレジスタに設定する値は「0」になり、傾き補正値が「+3」のときにはレジスタに設定する値は「6」になる。
【0106】
ただしこのように一定値をオフセットした場合には、レジ調整値(1_reg_wnum)からオフセット分を引いた値(この場合は、1_reg_wnum−3)を設定することになる。
【0107】
このように一定の値をオフセットすることで、すべての傾き補正値に対して加算処理を行うことができるので、ハードウェアを効率的に使用することができる。
【0108】
また、例えば図9において、レジスタに情報を格納するアドレスを右に1ずつインクリメントすると、図10においてライトポインタ(WP)の実アドレスは0→6→C→12→18→…とカウントアップされることになる。
【0109】
ここで、データを書き込む順番は、図9及び図10の様に16個単位で一つ下の段に行っても構わないし、データを受信する順序により、ブロック幅まで進んで後(10個単位)一つ下の段に移っても構わない(図9で、10の位置の次に17の位置に進む)。
【0110】
また、図9に示す通りに、第1色のデータについて、10個目までデータが書き込まれた(格納された)後、11個目のデータを書き込む先は、次のブロック(第2ブロック)の先頭になる。これはレジスト調整を行うことによって、現在のブロック(第1ブロック)に入りきらなくなったデータを書き込む(格納する)ためである。ここでは、第2ブロックの先頭に格納されるデータが11個目のデータであることは、レジスタ813の値「16」とレジスタ805のレジスト調整値「6」から、16−6+1=11より求められる。データを格納するカウンタを設け、そのカウンタが10になれば、第2ブロックの先頭のアドレスを指定する構成にすればよい。
【0111】
なお、図9において、第1色のデータの11個目のデータが格納されるアドレスは、第1ブロックに格納される色の数(2)と各色の高さ(3)、ブロックの幅(16)に基づいて求められる。
【0112】
レジスト調整分の書き込みが終了(図9で16番目のデータ書き込みが終了)すると、17個目のデータは、現在のブロック(第1ブロック)から書かれることになる。これは実際のアドレスが図10で16個目がDEで、17個目が2Cになると言うことである。
【0113】
この様にして、現在のブロック(第1ブロック)と次のブロック(第2ブロック)との間を行き来することで、レジスト調整を行いながら、第1色目のデータを書き込んでいく。
【0114】
第1色目のデータが全て書き終わると、同様の処理を第1ブロックの第2色目以降に行っていく。
【0115】
また、レジスタに情報を格納するアドレスは、図6(a)に示したように縦に1ずつインクリメントさせて、ライトポインタ(WP)の実アドレスを0→2→4→6→8→…とカウントアップさせてもよい。
【0116】
ここで、図9及び10においてレジスタに情報を格納するアドレスを縦に1ずつインクリメントさせないのは、画像変換ブロック3からのデータや、ホストからのデータの変更に柔軟に対応するためである。
【0117】
例えば、画像変換ブロック3を使用しない時には、ホストからの記録データは、従来通りレジスタに情報を格納するアドレスは図6(a)のように1ずつインクリメントさせて、ライトポインタ(WP)は1→2→3→4→5→…とカウントするように対応している。
【0118】
しかし、画像変換ブロック3を使用して例えばHV変換等を行うと、HV変換を行った後の記録記録データは、レジスタに情報を格納するアドレスは図6(a)のように1ずつインクリメントさせて、ライトポインタ(WP)を1→2→3→4→5→…とカウントアップする事が出来なくなる。
【0119】
その為、アドレスのインクリメント量に自由度を持たせることで、ホストからの様々なデータ転送方式にも対応でき、また画像変換ブロック3でのデータ変換にも対応することが出来るようになる。
【0120】
図11A、図11B、図11Cは、レジスト調整に関連したデータの状態を模式的に示す図である。図中の数字はいずれもブロック番号を示している。図11Aは、従来例のようにホストコンピュータ(プリンタドライバ)で全てのレジスト調整(レジ調整+傾き補正)を行った場合の転送データを示している。図11Bは、本実施形態でホストコンピュータから送信され記録装置が受信したデータを示している。このデータはレジスト調整(レジ調整+傾き補正)は行われていない。図11Cは、図11Bのようなデータに対して記録装置側でレジスト調整(レジ調整+傾き補正)され、記録装置(インクジェット記録装置)に設けられている記録バッファ4に格納された状態を示している。
【0121】
図11Aと図11Cに示されたデータを記録媒体へ記録すると、いずれもレジスト調整(レジ調整+傾き補正)がなされているため同様な記録結果となるが、図11Cのデータは図11Bの受信データに対して記録装置側でレジスト調整(レジ調整+傾き補正)を行ったため、レジ調データ(レジ調整値+傾き補正値)により、ラスタ方向(図11における左右の方向)に記録データの格納される位置がずれ、その結果として図11Bのデータよりもブロック数が1つ増えている。
【0122】
このようにホストコンピュータから送信したブロック数と記録装置の記録バッファに書き込まれたブロック数が異なると、論理的な矛盾が生じてしまう。これは、ホストコンピュータから送信したブロック数に基づいて、ホストコンピュータから記録装置に対して記録幅(走査方向)に関する情報を出力するからである。記録装置は、この情報に基づいて記録動作を行うので、ブロック数について異なる量だけ記録がなされない。例えば、ホストコンピュータから記録装置に3ブロック分の記録データを出力し、記録装置は、レジスト調整を行って4ブロックに記録データを格納した場合、記録は3ブロック分しかなされず、1ブロックが記録されないのである。
【0123】
本実施形態では、この様な矛盾が生じないように、図11Bに示すようなデータをホストコンピュータから転送する場合、1ブロック余分なデータを付加して記録装置に送信し、ホストコンピュータと記録装置(記録バッファ)とのブロック数が同じとなるようにする。
【0124】
図12A、図12B、図12Cは、本実施形態におけるレジスト調整(レジ調整+傾き補正)に関連したデータの状態を、図11A〜図11Cと同様に示す図である。図12Aは、従来例のようにホストコンピュータ(プリンタドライバ)で全てのレジスト調整(レジ調整+傾き補正)を行った場合の転送データを示しており、図11Aと同様な構成となる。図12Bは、本実施形態でホストコンピュータから送信され記録装置が受信したデータを示している。しかし、このデータに対してはレジスト調整(レジ調整+傾き補正)は行われていない。図12Cは、図12Bのようなデータに対して記録装置側でレジスト調整(レジ調整+傾き補正)を行い、記録バッファに格納された状態を示している。
【0125】
ここで、図11B及び図11Cに示したデータと、図12B及び図12Cに示したデータとを比較すると、図11Bの受信データに対してレジスト調整(レジ調整+傾き補正)を行った図11Cのデータのブロック数は1つ増えているが、図12Bの受信データに対してレジスト調整(レジ調整+傾き補正)を行った図12Cのデータのブロック数は増えていないことがわかる。すなわち、ホストコンピュータから図12Bのようなデータを転送する場合には、1ブロック余分に送信する必要はない。
【0126】
図11B及び図11Cに関連して、1ブロック余分に転送する場合についてもう少し詳しく説明する。図13Aは、1ブロック余分に転送する場合のデータ構成を示す図である。この場合、留意すべきは1ブロックのサイズ(走査方向のブロックサイズ)と、転送される記録データの最後のブロックについてのデータ量(図11では3つめのブロックについての走査方向のデータサイズ、図12では4つめのブロックについての走査方向のデータサイズ)、レジスト調整量(例えばカラム単位の値)の関係である。
【0127】
例えば、
走査方向のブロックサイズ<走査方向のデータサイズ+レジスト調整量(レジ調整値+傾き補正値)
であれば、図11Cに示すように、ブロック数を1つ増やす必要がある。
【0128】
一方、
走査方向のブロックサイズ>走査方向のデータサイズ+レジスト調整量(レジ調整値+傾き補正値)
であれば、図12Cに示すように、ブロック数を増やす必要はない。
【0129】
このように、ホストコンピュータにおいて、走査方向のデータサイズとレジスト調整量(レジ調整値+傾き補正値)の和が走査方向のブロックサイズより大きくなるか否かを判断し、この判断結果に応じて、ブロック数を増やす処理を行う。
【0130】
ここで、図14は、ホストコンピュータ1401と記録装置1402の構成を示す図である。
【0131】
ホストコンピュータ1401から記録装置1402へ記録データがインターフェース1405を介して転送される。
【0132】
ホストコンピュータ1401においてなされる処理の一例を以下に述べる。記録データを生成するプリンタドライバーはCPU1403により実行される。そして、これらの記録データは所定の圧縮方法で圧縮され、記録装置1402に対して出力処理を行う。
【0133】
記憶手段1404は、生成した記録データ、あるいは圧縮されたデータを一時的に保存するために用いられる。また、記憶手段1404には生成した記録データのブロック数(データ量)の数を保持するカウンタを備えている。
【0134】
このCPU1403は、上述したように、走査方向のデータサイズとレジスト調整量(レジ調整値+傾き補正値)の和が走査方向のブロックサイズより大きくなるか否かを判断し、この判断結果に応じて、ブロック数を増やす処理を行う。このため、CPU1403は予め、走査方向のブロックサイズ、レジスト調整量についての情報を記録装置から取得する。
【0135】
図16は、データ生成についての処理を示すフローチャートである。ステップS1601において、ブロック単位でデータを生成する。ブロック単位のデータを生成するたびに、生成するブロック数をカウントする。そして、ステップS1602において、最後のブロック(記録ヘッドの走査方向の最も下流のブロック)であるか否かを判定する。もし最後のブロックであればS1603にて、ブロック付加処理を行う。このブロック付加処理は図15において説明する。図16で述べた処理は、走査毎に走査方向のデータ量は異なるので、走査毎に行なわれる。
【0136】
そして、1走査の記録幅についての情報を前もって取得することで、記録する生成ブロックの数が得られ、この数がS1602の判断の閾値として使われる。
【0137】
その処理について図15のフローチャートを用いて詳細に説明する。ステップS1501において、レジスト調整量の情報とブロックサイズ(主走査方向)について情報を取得する。ステップS1502において、最後のブロックに格納されるデータサイズ(走査方向のデータサイズ)を取得する。ステップS1503において、最後のブロックについてのデータサイズ(走査方向)とレジスト調整量(レジ調整値+傾き補正値)との和と走査方向のブロックサイズとを比較する。なお、ここで、データサイズ、レジスト調整量(レジ調整値+傾き補正値)、ブロックサイズは例えばカラム数である。
【0138】
そして、ステップS1503において、走査方向のブロックサイズの方が小さければ(NO)、ステップS1504においてブロックを1つ追加する。走査方向のブロックサイズの方が大きければ(YES)、終了する。
【0139】
なお、この判断は、各色に対応する記録データについて行う。これは、走査方向のブロックサイズは各色について同じであるが、レジスト調整量と最後のブロックについての走査方向のデータサイズは色毎に異なる場合があるからである。そして、1色でもブロックを追加する必要があれば、他の色についてもブロックの追加を行う。
【0140】
次に、各ブロックのデータに付加される色変えコードに説明する。上記で図3Aの(b)に関連して説明したが、記録データの区切りを判別するために、各ブロックに色変えコードが挿入されている。
【0141】
そして、図3Aの(b)に示すように1つの色についての情報として、圧縮TAGや圧縮されたデータで構成されている。そして、色変えコードは、これらのデータの後に付加されている。
【0142】
しかし、ステップS1504でブロックを付加する場合には、これらの圧縮TAGや圧縮されたデータはなく、色変えコード(232、233、239)のみが最後のブロック(第nブロックデータ)231に続いて付加される。ここでは、色数は8であるので、8つの色変えコードが付加されてる。図3Bの(c)は、このコードを受信した場合の第nブロックデータ以降の状態を示す図である。
【0143】
これにより、記録装置は、色変えコードのみが付加されているので、記録装置はレジスト調整のために記録データがブロックからはみ出すために、ブロックが付加して格納する処理を行う指示であることを認識(判断)でき、記録バッファにレジスト調整量に基づいて記録データを格納する。
【0144】
なお、ブロックを付加する場合の他の例として、図3Bの(d)に示すように例えば色毎に1バイトのヌルデータ(242、244、…、255)のみを含み、このヌルデータに色変えコード(243、245、…、256)が付加する形態でも構わない。これにより、記録装置は、圧縮TAGが含まれず1バイトのヌルデータのみで構成されていることで、ブロックが付加する指示があることを容易に認識できる。
【0145】
あるいは、色変えコードを付加するのではなく、図3Bの(e)に示すように最後のブロックデータ(第nブロック)261の後にブロックの付加の指示を示すコマンド262を追加してもかまない。
【0146】
次に、上述したブロックを付加する場合についてホストコンピュータにおける記録データの格納処理についての補足説明を行う。図13Aにおいて(a)は圧縮前のデータを示し、(b)は圧縮前のデータにレジスト調整幅を加えた状態を示し、(c)は増えたブロックの後端を基準としたレジスト調整幅を示し、(d)は最後の記録データが格納されるべき位置を示している。なお、(b)のブロックは第nブロック、(c)のブロックは第n+1ブロックとする。
【0147】
この場合、最後の記録データの位置は、(d)のクロスハッチングした領域にある必要がある。図3Bの(d)を用いて説明した場合は、このクロスハッチングした領域にある。これは、(d)の斜線部分の領域に最後の記録データが格納されると、レジスト調整することによってブロックが更に1つ増えてしまうからである。
【0148】
図13Bも図13Aと同様に、(a)は圧縮前のデータを示し、(b)は圧縮前のデータにレジスト調整幅を加えた状態を示し、(c)は増えたブロックの後端を基準としたレジスト調整幅を示し、(d)は色変えコードが挿入されるべき位置を示している。図13Aと異なるのは、1ブロック余分に転送しない点である。
【0149】
この場合にも、(d)のクロスハッチングされた領域以外に最後の記録データが入っていると、レジスト調整することによって1ブロック増えてしまうため、色変えコードの位置は、(d)に示すように、(c)に示された後端を基準にしたレジスト調整幅の境界より前にある必要がある。
【0150】
<記録バッファからのデータの読み出し>
以下に、図8を参照して記録バッファからのデータの読み出し処理について説明する。図8において、左側は記録バッファリング構造制御回路8の読み出しアドレス制御部8Aを示し、右側は記録バッファ4を示している。
【0151】
記録バッファ4のバッファ領域は、記録バッファの先頭のアドレスであるtop_adrで表され、最終アドレスはbottom_adrで表される。この先頭アドレスはレジスタ803に格納され、最終アドレスはレジスタ804に格納される。記録バッファに示される「RP」は図5と同様にリードポインタであり、「WP」はライトポインタである。記録バッファ4におけるRPとWPの間のハッチング部分は記録データが格納されていることを表し、それ以外の部分は記録データが格納されていないことを表す。
【0152】
読み出しアドレス制御部8A内の802は、データの読み出しアドレス(RP:リードポインタ)を示すレジスタであり、破線の枠で囲った900は第1レジスタ群、実線の枠で囲った901は第2レジスタ群である。
【0153】
第1ブロックから第8ブロックの記録データを記録する場合、例えば、走査の開始時において、第1レジスタ群には第1ブロックについての情報が格納されている。また、第2レジスタ群には、第2ブロックについての情報が格納される。第1ブロックの記録が終了すると、第1レジスタ群900には第2レジスタ群901の情報がコピーされて格納される。そして第2レジスタ群901には、第3ブロックの情報が格納される。以下、最後の第8ブロックのデータが格納されるまで同様の処理が順に行われる。そして、次の走査開始時には、再び、第1レジスタ群には第1ブロックの情報が格納され、第2レジスタ群には第2ブロックの情報が格納される。
【0154】
第1レジスタ群が示す第nブロックの記録が終了した時、第2レジスタ群に第n+1ブロックの情報が格納されていない場合は、第n+1ブロックの記録データがまだ準備できていないので、第2レジスタ群の情報は第1レジスタ群にコピーされず、加えて記録バッファからのデータ読み出しを停止する。
【0155】
第1レジスタ群内にあるレジスタ819は、第1色についての高さ情報(1st_hight)と色のデータの有り無し情報(1_color_bit)を設定するレジスタである。各レジスタ822、824、826、828、830、832、834は第2色〜第8色について同様に高さ情報とデータの有り無し情報を設定するレジスタである。
【0156】
820は各ブロックデータの幅情報(block_width)を格納するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
【0157】
レジスタ818は第1色の読み出しアドレス(1st_color_adr)を格納するレジスタである。第1色のデータが格納されている記録バッファ819から読み出されるとアドレスが更新される。例えば図9に示すように、第1色のデータの内、1→2→3→4と1カラム分のデータが読み出される。レジスタ821、823、825、827、829、831、833はそれぞれ第2色〜第8色の読み出しアドレスを格納するレジスタであり、第2色〜第8色のデータも第1色のデータと同様に順に1カラム分のデータが読み出される。
【0158】
記録バッファ4に格納されるデータは複数の色のデータを含むため、例えば、第1色、第2色、…のデータが混在した場合、各色単位のデータを格納するためのアドレスは、連続していないものとなる。そのため、読み出しアドレスのレジスタが1つであれば、例えば第1色の記録バッファ4のアドレスの次に第2色の記録バッファ1のアドレス読み出しを行う際、アドレス計算をする必要があるが、記録バッファ4に各色ごとに読み出しアドレスを格納するレジスタを用意することで、カラム単位での読み出しを行う際のアドレス計算を省くことができる。
【0159】
817はアドレス制御レジスタである。読み出しアドレスは、記録データ生成ブロック5が各色毎にデータ読み出し要求信号線S805を介して要求すると、アドレス制御レジスタ817は読み出しアドレスとして信号線S806を介して1アドレスずつ加算して記録バッファ4に出力する。
【0160】
835は次のブロックのアドレスを格納するレジスタである。現在読み出されているブロックが第1ブロックであれば、このレジスタには第2ブロックの先頭のアドレスが格納される。このレジスタの値は、現在読み出されているブロックデータの読み出しが終了すると、レジスタ802にコピーされる。これにより、次のブロックデータの読み出しがスムーズにできる。
【0161】
レジスタ836は第1色から第8色のうち、読み出す順序を特定するための情報を格納するテーブルである。このテーブルに設定された値によって記録バッファからデータを読み出す順序を自由に設定することができる。例えば、第1色→第2色→…→第8色の順に読み出すことができる。また、値を変えて、第1色→第2色→第5色→第6色→第7色→第8色のように第3色、第4色のデータの読み出しをスキップすることもできる。これによって、格納されていない色の記録データについては、正確に読みとばすことができる。
【0162】
第2レジスタ群901は次のブロックデータに関する情報を格納するバッファの集まりである。第1レジスタ群の各レジスタが読まれたら、第2レジスタ群の各レジスタに設定されている値が、第1レジスタ群の対応するレジスタに設定される。例えば、レジスタ838に設定されている値がレジスタ819に設定される。レジスタ839〜845は、次のブロックデータにおける第2色〜第8色のデータについて同様の情報が設定されるレジスタである。
【0163】
レジスタ838(819)には第1色目のデータのバッファの高さ情報と、第1色のデータの有り無しを示す情報が格納される。
【0164】
846(820)はブロックの幅情報を設定するレジスタである。この幅情報は第1色〜第8色までブロック単位で、共通して使われる値である。
【0165】
レジスタ878は、先に設定したブロックのサイズとブロックのサイズが同じであるか否かを表す情報(same_type)を格納するレジスタであり、ブロックのサイズが同じ場合、この値を「1」とすることで、第1レジスタ群に同じ値を容易に再設定することができる。この場合、レジスタ838〜846の設定を省くことができる。一方、レジスタ878の値が「0」の場合には、各レジスタ838〜846にそれぞれの値が設定される。
【0166】
以上説明したように好適な一実施形態によればインクジェット記録装置において、記録ヘッドの走査方向におけるレジスト調整(レジ調整値+傾き補正値)を行う機能を記録装置側に持たせることで、ホストコンピュータでの記録データの生成を高速化することができ、ホストコンピュータで記録が指示されてから記録装置が記録を実行するまでの時間を短縮することができる。
【0167】
なお、上記の実施形態では、各色のブロックはいずれも同じ幅であったが、ブロック毎に異なった幅を設定しても良い。また、上記の実施形態では傾き補正の単位となる段のノズル数を16個としたが、この値についても使用する記録ヘッドに応じて適切な値を適宜設定すればよい。
【0168】
<レジスト調整値の算出>
本実施形態において説明した、レジスト調整値情報(1_reg_wnum)と、ノズルの傾き補正のレジスト調整値情報(1_s_reg_wnum)とは、個々の記録ヘッド(記録カートリッジ)並びにその取り付けによって異なるものであるため、出荷時等には検査工程でそれらの値を設定しても良いが、記録ヘッド(記録カートリッジ)を交換した際には、所定のテストパターンを記録し、ずれ量を視認又はスキャナなどで読み取ってユーザが入力した値を設定するようにするのが好ましい。なお、記録装置のキャリッジ等に設けられているセンサから値を設定する構成でも構わない。
【0169】
このような記録したテストパターンに基づいた調整値の検出や算出については、従来より知られている様々な方法によって行うことができるが、本発明の特徴ではないので詳細な説明は省略する。
【0170】
<他の実施形態>
以上の実施形態では本発明をインクジェット方式に従って記録を行うインクジェット記録装置に適用した場合を例に挙げて説明したが、本発明は複数の記録素子が配列された記録ヘッドを記録素子の配列方向と交差する方向に走査して記録を行う記録装置であれば、他の方式の記録装置にも適用できる。
【0171】
以上の実施形態は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギとして熱エネルギを発生する手段(例えば電気熱変換体やレーザ光等)を備え、前記熱エネルギによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
加えて、上記の実施形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
【0172】
さらに加えて、本発明に係る記録装置の形態としては、コンピュータ等の情報処理機器の画像出力端末として一体または別体に設けられるものの他、リーダ等と組み合わせた複写装置、さらには送受信機能を有するファクシミリ装置、或いはそれらの機能を併せ持つ複合機の形態を取るものであっても良い。
【図面の簡単な説明】
【0173】
【図1】本発明の好適な実施形態としてのインクジェット記録装置のカバーを外した状態の外観斜視図である。
【図2】図1のインクジェット記録装置の記録制御部の構成を示すブロック図である。
【図3A】ホストコンピュータから転送され、受信バッファに格納されるデータの構造を示す図である。
【図3B】ホストコンピュータから転送され、受信バッファに格納されるデータの構造を示す図である。
【図4】記録データを保持する記録バッファのデータ構造を示す図である。
【図5】記録バッファリング構造制御回路の書き込みアドレス制御を説明する図である。
【図6】記録バッファに記録データがどのように格納されるか説明する図である。
【図7A】傾き補正値がプラスの場合の例を示す図である。
【図7B】傾き補正値がマイナスの場合の例を示す図である。
【図8】記録バッファリング構造制御回路の記録バッファからのデータの読み出し処理について説明する図である。
【図9】レジスト調整値がゼロでなく傾き補正がある時の、データの書き込み順番を説明する図である。
【図10】レジスト調整値ゼロ0でなく傾き補正がある時の、実アドレスを説明する図である。
【図11A】レジスト調整に関連したデータの状態を模式的に示す図である。
【図11B】レジスト調整に関連したデータの状態を模式的に示す図である。
【図11C】レジスト調整に関連したデータの状態を模式的に示す図である。
【図12A】レジスト調整に関連したデータの状態を模式的に示す図である。
【図12B】レジスト調整に関連したデータの状態を模式的に示す図である。
【図12C】レジスト調整に関連したデータの状態を模式的に示す図である。
【図13A】レジスト調整による最終ブロックのデータ構成を示す図である。
【図13B】レジスト調整による最終ブロックのデータ構成を示す図である。
【図14】本発明に係るホストコンピュータと記録装置の概略制御構成を示す図である。
【図15】ブロック付加処理を示すフローチャートである。
【図16】データ生成についての処理を示すフローチャートである。
【特許請求の範囲】
【請求項1】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置であって、
接続されたホスト機器から送信され、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含む設定データ及び各記録素子列の記録データを格納する受信バッファと、
各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、
前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御手段と、を備えることを特徴とする記録装置。
【請求項2】
前記第2のレジスト情報は、前記傾きを前記走査方向における記録画素の数に換算した値であることを特徴とする請求項1に記載の記録装置。
【請求項3】
前記第2のレジスト情報を、各記録素子列内の所定数の記録素子毎に設けることを特徴とする請求項1又は2に記載の記録装置。
【請求項4】
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御手段と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御手段と、を更に備えることを特徴とする請求項1に記載の記録装置。
【請求項5】
各記録素子列によってそれぞれ異なった色で記録を行うように構成されていることを特徴とする請求項1から4のいずれか1項に記載の記録装置。
【請求項6】
前記記録バッファは、前記走査方向における記録領域を複数のブロックに分割し、該ブロック毎に記録データを格納するように構成されており、
前記書き込み制御手段は、前記記録データに含まれるデータの有無を識別するための情報と、該データのラスター数と、該データの第1のレジスト情報及び第2のレジスト情報と、を記録素子列毎に格納するレジスタを有することを特徴とする請求項1に記載の記録装置。
【請求項7】
前記書き込み制御手段は、各ブロックに対する各記録素子列の記録データの有無に応じて、前記記録バッファに格納するためのアドレス情報を制御することを特徴とする請求項6に記載の記録装置。
【請求項8】
各記録素子からインクを吐出して記録を行うことを特徴とする請求項1から7のいずれか1項に記載の記録装置。
【請求項9】
各記録素子は、熱エネルギーを利用してインクを吐出すべく、インクに与える熱エネルギーを発生するための熱エネルギー変換体を備えていることを特徴とする請求項8に記載の記録装置。
【請求項10】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行い、接続されたホスト機器から送信され、設定データ及び各記録素子列の記録データを格納する受信バッファと、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、を備える記録装置のデータ処理方法であって、
前記設定データに含まれる各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とに基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御工程と、
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御工程と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御工程と、を備えることを特徴とする記録装置のデータ処理方法。
【請求項11】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置と、該記録装置に接続され、前記記録装置に対して設定データ及び記録データを送信するホスト機器と、を含む記録システムであって、
前記ホスト機器が、前記設定データとして、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含むデータを送信し、
前記記録装置が、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファを備え、前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御することを特徴とする記録システム。
【請求項12】
記録素子列を複数有する記録ヘッドを記録媒体に対して走査させて記録媒体に記録する記録装置に対して出力する記録データを、前記記録媒体において前記記録ヘッドの走査記録領域のうち走査方向に複数に分割された領域に対応したブロック単位で生成する生成手段と、前記記録データを含む指示を出力する出力手段を備えるホスト機器であって、
前記記録ヘッドの前記記録素子列のずれについての第1のレジスト情報、及び記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報を取得するレジスト情報取得手段と、
前記生成された記録データから前記記録装置において1回の走査記録で記録する記録データに対応したブロック数を取得するブロック数取得手段と、
前記ブロック数取得手段が取得した前記ブロック数を、前記第1及び第2のレジスト情報に基づいて変更するか否かを判定する判定手段と、
前記判定手段が前記ブロック数を変更すると判定した場合には、前記指示の内容を変更する変更手段を備えることを特徴とするホスト装置。
【請求項13】
前記判定手段は、1回の走査記録で記録する記録データのうちの走査方向における最下流のブロックに対応するデータの走査方向のデータサイズと前記第1及び第2のレジスト情報との和と、1ブロックあたりの走査方向のサイズに関する情報とを比較することを特徴とする請求項12に記載のホスト装置。
【請求項14】
前記変更手段は、ブロック数を増やすことを特徴とする請求項12又は13に記載のホスト装置。
【請求項15】
前記ホスト装置は、前記判定手段が前記ブロック数を変更することを示す情報を前記指示に追加する指示内容変更手段を備えることを特徴とする請求項12から14のいずれか1項に記載のホスト装置。
【請求項16】
前記指示内容変更手段は、最下流のブロックに対応するデータに続いて、所定数のデータ、前記ブロック数を変更するコマンドのうちの少なくとも1つを追加することを備えることを特徴とする請求項15に記載のホスト装置。
【請求項1】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置であって、
接続されたホスト機器から送信され、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含む設定データ及び各記録素子列の記録データを格納する受信バッファと、
各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、
前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御手段と、を備えることを特徴とする記録装置。
【請求項2】
前記第2のレジスト情報は、前記傾きを前記走査方向における記録画素の数に換算した値であることを特徴とする請求項1に記載の記録装置。
【請求項3】
前記第2のレジスト情報を、各記録素子列内の所定数の記録素子毎に設けることを特徴とする請求項1又は2に記載の記録装置。
【請求項4】
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御手段と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御手段と、を更に備えることを特徴とする請求項1に記載の記録装置。
【請求項5】
各記録素子列によってそれぞれ異なった色で記録を行うように構成されていることを特徴とする請求項1から4のいずれか1項に記載の記録装置。
【請求項6】
前記記録バッファは、前記走査方向における記録領域を複数のブロックに分割し、該ブロック毎に記録データを格納するように構成されており、
前記書き込み制御手段は、前記記録データに含まれるデータの有無を識別するための情報と、該データのラスター数と、該データの第1のレジスト情報及び第2のレジスト情報と、を記録素子列毎に格納するレジスタを有することを特徴とする請求項1に記載の記録装置。
【請求項7】
前記書き込み制御手段は、各ブロックに対する各記録素子列の記録データの有無に応じて、前記記録バッファに格納するためのアドレス情報を制御することを特徴とする請求項6に記載の記録装置。
【請求項8】
各記録素子からインクを吐出して記録を行うことを特徴とする請求項1から7のいずれか1項に記載の記録装置。
【請求項9】
各記録素子は、熱エネルギーを利用してインクを吐出すべく、インクに与える熱エネルギーを発生するための熱エネルギー変換体を備えていることを特徴とする請求項8に記載の記録装置。
【請求項10】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行い、接続されたホスト機器から送信され、設定データ及び各記録素子列の記録データを格納する受信バッファと、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファと、を備える記録装置のデータ処理方法であって、
前記設定データに含まれる各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とに基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御する書き込み制御工程と、
前記記録バッファに格納された記録データを読み出すための読み出しアドレス情報を各記録素子列毎に制御する読み出し制御工程と、
前記読み出しアドレス情報に基づいて読み出された記録データに従って各記録素子列を駆動して記録を行う記録制御工程と、を備えることを特徴とする記録装置のデータ処理方法。
【請求項11】
複数の記録素子が所定方向に配列された記録素子列を複数有する記録ヘッドを、前記配列方向と交差する方向に走査させて記録を行う記録装置と、該記録装置に接続され、前記記録装置に対して設定データ及び記録データを送信するホスト機器と、を含む記録システムであって、
前記ホスト機器が、前記設定データとして、各記録素子列間の走査方向における相対距離に対応した第1のレジスト情報と、各記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報とを含むデータを送信し、
前記記録装置が、各記録素子列の記録データを、前記走査方向における記録位置に関連付けて格納する記録バッファを備え、前記第1及び第2のレジスト情報に基づいて、各記録素子列の記録データの格納位置を調整して前記記録バッファに格納するように制御することを特徴とする記録システム。
【請求項12】
記録素子列を複数有する記録ヘッドを記録媒体に対して走査させて記録媒体に記録する記録装置に対して出力する記録データを、前記記録媒体において前記記録ヘッドの走査記録領域のうち走査方向に複数に分割された領域に対応したブロック単位で生成する生成手段と、前記記録データを含む指示を出力する出力手段を備えるホスト機器であって、
前記記録ヘッドの前記記録素子列のずれについての第1のレジスト情報、及び記録素子列の前記走査方向と直交する方向における傾きに対応した第2のレジスト情報を取得するレジスト情報取得手段と、
前記生成された記録データから前記記録装置において1回の走査記録で記録する記録データに対応したブロック数を取得するブロック数取得手段と、
前記ブロック数取得手段が取得した前記ブロック数を、前記第1及び第2のレジスト情報に基づいて変更するか否かを判定する判定手段と、
前記判定手段が前記ブロック数を変更すると判定した場合には、前記指示の内容を変更する変更手段を備えることを特徴とするホスト装置。
【請求項13】
前記判定手段は、1回の走査記録で記録する記録データのうちの走査方向における最下流のブロックに対応するデータの走査方向のデータサイズと前記第1及び第2のレジスト情報との和と、1ブロックあたりの走査方向のサイズに関する情報とを比較することを特徴とする請求項12に記載のホスト装置。
【請求項14】
前記変更手段は、ブロック数を増やすことを特徴とする請求項12又は13に記載のホスト装置。
【請求項15】
前記ホスト装置は、前記判定手段が前記ブロック数を変更することを示す情報を前記指示に追加する指示内容変更手段を備えることを特徴とする請求項12から14のいずれか1項に記載のホスト装置。
【請求項16】
前記指示内容変更手段は、最下流のブロックに対応するデータに続いて、所定数のデータ、前記ブロック数を変更するコマンドのうちの少なくとも1つを追加することを備えることを特徴とする請求項15に記載のホスト装置。
【図1】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図11C】
【図12A】
【図12B】
【図12C】
【図13A】
【図13B】
【図14】
【図15】
【図16】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図11C】
【図12A】
【図12B】
【図12C】
【図13A】
【図13B】
【図14】
【図15】
【図16】
【公開番号】特開2006−247905(P2006−247905A)
【公開日】平成18年9月21日(2006.9.21)
【国際特許分類】
【出願番号】特願2005−64558(P2005−64558)
【出願日】平成17年3月8日(2005.3.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成18年9月21日(2006.9.21)
【国際特許分類】
【出願日】平成17年3月8日(2005.3.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]