以下、本発明の好適な実施形態について、添付図面を参照して詳細に説明する。
なお、以下に説明する実施形態においては、吐出が行えなくなったノズルに限らず、吐出方向や吐出されるインク滴の大きさが正常なノズルに対して大きく異なり、正常な吐出が行なえずに異常なノズルとして扱われるものも含めて異常ノズル、もしくは不吐出ノズルと称して説明する。
(第1の実施形態)
(1) 原理
まず、本実施形態を実現するために必要な原理について説明を行う。
図2は、ノズルの不吐がある場合の印字の様子を簡易的に表現した図である。図2中、印字ヘッド2−1内の、ある特定のノズル列2−2を抜き出して記述したものである。このノズル列は複数のノズルが配列されており、ノズル列中に不吐出ノズル2−4を含んだものを例に挙げている。なお、本例では不吐出ノズルは一つであり、他の多数のノズルは正常なノズル2−3である。2−5は、印字ヘッド2−1のノズル列2−2によって紙面上に作られる印字イメージである。このとき、印字ヘッド2−1は、主走査方向2−6に移動しながら印字イメージ2−5を印字していくものと仮定する。この時、電気的にヘッドの吐出タイミングが決められ、印字ヘッド2−1のノズル列2−2は、走査方向2−6に対し規定の間隔=カラム間隔2−6aを守りながら、及び、主走査方向と直交する方向に対しても規定の間隔=ラスター間隔2−7(通常、これはノズル列2−2の機械的なノズル間隔に順ずる場合が多い)を守りながら、印字イメージ2−5を形成していく。ここで図2に示した印字イメージ2−5は、印字ヘッド2−1を主走査方向2−6に沿って1回スキャンして記録した印字イメージである。即ち、複数回の走査で画像を完成させるマルチ・パスにより記録を完了した後の印字イメージではない。
この時、印字イメージ2−5の中で、正常ノズル2−3は2−8で表される印字ドットの位置に吐出をする。また、不吐ノズル2−4は2−9で表される印字ドットの位置に、本来、吐出を行うはずなのだが、その位置への吐出は行われない。
本実施形態の目的は、この2−9で表される印字ドットの位置を、あたかも印字されたかのように見せかけることである。なお、以下に示す例では、不吐出ノズルに対応した記録位置にドットを形成することにより補完するものではなくでも、不吐出ノズル近傍の数ノズルを用い、見かけ上で不吐を補完するものを含めて補完と称している。
まずは、2−10のエリアのみを用いて、このエリアの中の不吐ドットが補完される様子を説明する。
図1は、本実施形態の不吐補完の原理を、最も簡素に表現した図である。
まず、図1(a)は、図2中の、補完の対象となるエリアの1つ2−10を取り出した図である。この中には、1つの印字ドットと、1つの不吐により印字が行われなかったドットが含まれる。
次に、図1(b)は、図1(a)中の不吐ドットに対し補完を行うために、不吐ドットがある位置(この位置は、ノズル列2−2の中の不吐ノズル2−4のドットの位置に該当する)以外の場所に、即ち、不吐ノズルでは無い印字ノズルが存在するために印字可能であるはずのドット位置に、不吐ドットを補完するための優先順位を付けている様子である。この段階では、優先順位を与えるドット位置に、印字ドットが有るか無いかに関係なく優先順位の番号を付けていく。図1(b)の場合、不吐出ノズル2−4の図で示す上下2ノズルを補完に用いるノズルとし、単純に、図の上から順番で、(1)、(2)、(3)、(4)と番号を与えている。当然、この番号は、(2)、(4)、(1)、(3)等、他の順序であっても全く構わない。
そして、図1(c)は、図1(b)で与えた優先順位に従って、不吐ドットの補完が行われる様子を示したものである。ここでは、2−10のエリアの中にある印字ドットのパターンを図1(a)のように固定して考えず、3つのケースの場合について、それぞれどのような不吐ドットの補完が行われるか説明することを試みている。
先ず、ケース1の説明を行う。この図の指し示す状況は、0個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。この場合、上記1つの不吐により印字が行われなかったドットは、そのまま、不吐補完優先順位の最も高い位置に移される(即ち、ドットの補完が行われる)。ケース1では、それが、図中の一番上にあるドット(=不吐補完優先順位(1)を有するドット)の位置である。
次に、ケース2の説明を行う。この図の指し示す状況は、1個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。そして、1個の印字ドットは、不吐補完優先順位の(1)が与えられた位置に存在している。この場合、上記1つの不吐により印字が行われなかったドットは、不吐補完優先順位の(1)を除いた中で、不吐補完優先順位の最も高い位置に移される。ケース2では、それが、図中の、上から2番目にあるドット(=不吐補完優先順位(2)を有するドット)の位置である。
更に、ケース3の説明を行う。この図の指し示す状況は、2個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。そして、2個の印字ドットは、不吐補完優先順位の(1)が与えられた位置と、不吐補完優先順位の(2)が与えられた位置の2箇所に存在している。この場合、上記1つの不吐により印字が行われなかったドットは、不吐補完優先順位の(1)と不吐補完優先順位の(2)とを除いた中で、不吐補完優先順位の最も高い位置に移される。ケース2では、それが、図中の、下から2番目にあるドット(=不吐補完優先順位(3)を有するドット)の位置である。
このように、図1(b)のプロセスで与えられた不吐補完優先順位と、2−10のエリアの中にある印字ドットを観察して、正常ノズルにより印字が可能であり、且つ、印字が行われていないドットの位置の中で、最も不吐補完優先順位の高いドット位置に対し、ドットの補完を行うと言うアルゴリズムによって、不吐補完を行うのである。
このアルゴリズムを適用して、元の例である図1(a)に対し不吐補完を行った様子が図1(d)である。図1(b)の順番で不吐補完優先順位を付けた場合、図1(a)では、不吐補完優先順位の(3)の位置にのみ印字ドットが存在することになる。この場合、補完可能な不吐補完優先順位の位置は、(1)、(2)、(4)であることから、最も高い優先順位を有する(1)の位置に対し補完が行われるのである。
即ち、本実施形態を実現するために必要な原理の特徴ついて簡単にまとめる。第1に、印字ヘッド内に不吐ノズルがあり、その位置に印字すべきデータが存在する場合、その印字ドットに対応するデータを、不吐ノズルの近傍の上下の正常印字可能なノズルに対応したデータとするようデータを移動する(データを変更する)こと。第2に、上記の印字ドットの移動は、規定の優先順位と、不吐補完を行うべき正常なノズル位置にある印字データとの関係で決定されること。第3に、第1と第2の特徴によって不吐補完を実現し、印字ヘッドが主走査方向に1回スキャンする間に不吐ノズルに対する補完を終了することで、シングルパスの印字において不吐の補完を達成することである。即ち、上述した実施例の構成では、従来例のように、1つの不吐ノズルを補完するために、2回以上、印字ヘッドを主走査方向に走査させていないのである。
以上が、本実施形態を実現するために必要な原理についての説明である。
(2)構成及びデータ・フロー
次に、本実施形態を実現するために必要なプリンタ等の構成について説明を行う。
本発明の実施形態における電気的回路構成を説明する。図11は、この実施形態における電気的回路の全体構成を概略的に示す図である。
この実施形態における電気的回路は、主にキャリッジ基板(CRPCB)E0013、メインPCB(Printed Circuit Board)E0014、電源ユニットE0015、フロントパネルE0106等によって構成されている。ここで、電源ユニットE0015は、メインPCB E0014と接続され、各種駆動電源を供給するものとなっている。また、キャリッジ基板E0013は、キャリッジに搭載されたプリント基板ユニットであり、ヘッドコネクタ E0101を通じて記録ヘッドとの信号の授受を行うインターフェースとして機能する他、キャリッジの移動に伴ってエンコーダセンサE0004から出力されるパルス信号に基づき、エンコーダスケールE0005とエンコーダセンサE0004との位置関係の変化を検出し、その出力信号をフレキシブルフラットケーブル(CRFFC)E0012を通じてメインPCB E0014へと出力する。さらに、OnCRセンサE0102を搭載し、サーミスタによる周囲温度情報や光学センサによる反射光情報を、記録ヘッドカートリッジH1000からのヘッド温度情報とともに、同じくフレキシブルフラットケーブル(CRFFC)E0012を通じてメインPCB E0014へと出力する。
さらに、メインPCB E0014はこの実施形態におけるインクジェット記録装置の各部の駆動制御を司るプリント基板ユニットであり、紙端検出センサ(PEセンサ)E0007、Automatic Sheet Feeder(ASF)センサE0009、カバーセンサE0022、ホストインターフェース(ホストI/F)E0017、を基板上に有する。また、キャリッジを主走査させるための駆動源をなすモータ(CRモータ)E0001、記録媒体を搬送するための駆動源をなすモータ(LFモータ)E0002、記録ヘッドの回復動作の駆動源をなすモータ(PGモータ)E0003、記録媒体の給紙動作の駆動源をなすモータ(ASFモータ)E0105と接続されてこれらの駆動を制御する他、インクエンプティセンサ・メディア(紙)判別センサ・キャリッジ位置(高さ)センサ・LFエンコーダセンサ・PGセンサや各種オプションユニットの装着・動作状態を示すスイッチ・センサ類からなるセンサ信号E0104入力と、前記各種オプションユニットの駆動制御を行うオプション制御信号E0108出力を有する。また、CRFFC E0012、電源ユニットE0015、フロントパネルE0106との接続インターフェース(パネル信号E0107)を有する。フロントパネルE0106は、ユーザ操作の利便性のためプリンタ本体正面に設けたユニットで、リジュームキーE0019、LED E0020、電源キーE0018、さらにデジタルカメラ等の周辺デバイスとの接続に用いるデバイスI/F E0100を有する。
図12は、メインPCB E1004の内部構成を示すブロック図である。図において、E1102はASIC(Application Specific Integrated Circuit)であり、制御バスE1014を通じてROM E1004に接続され、ROMに格納されたプログラムに従って、メインPCB E0014上の各センサ出力と、センサ信号E0104入力、CRPCB E0013上のOnCRセンサ信号E1105、エンコーダ信号E1020と、フロントパネルE0106上の電源キーE0018、リジュームキーE0019からの出力の状態を検出し、またホストI/F E0017、フロントパネル上のデバイスI/FE0100の接続・データ入力状態に応じて、各種論理演算・条件判断等を行い、前出、または後述する各構成要素を制御し、インクジェット記録装置の駆動制御を司る。
E1103はドライバ・リセット回路であって、モータ電源(VM)E1040を駆動源とし、ASIC E1102からのモータ制御信号E1106に従って、CRモータ駆動信号E1037、LFモータ駆動信号E1035、PGモータ駆動信号E1034、ASFモータ駆動信号E1104を生成し、各モータを駆動する他、電源回路を有し、メインPCB E0014、CRPCB E0013、フロントパネルE0106など各部に必要な電源(図示せず)を供給し、さらには電源電圧の低下を検出して、リセット信号E1015を発生、初期化を行う。
E1010は電源制御回路であり、ASIC E1102からの電源制御信号E1024に従って発光素子を有する各センサ等への電源供給を制御する。ホストI/F E0017は、ASIC E1102からのホストI/F信号E1028を、外部に接続されるホストI/FケーブルE1029に伝達し、また同ケーブルE1029からの信号をASIC E1102に伝達する。一方、電源ユニットE0015からは、ヘッド電源(VH)E1039及びモータ電源(VM)E1040、ロジック電源(VDD)E1041が供給される。また、ASIC E1102からのヘッド電源ON信号(VHON)E1022及びモータ電源ON信号(VMOM)E1023が電源ユニットE0015に入力され、それぞれヘッド電源E1039及びモータ電源E1040のON/OFFを制御する。電源ユニットE0015から供給されたロジック電源(VDD)E1041は、必要に応じて電圧変換された上で、メインPCB E0014内外の各部へ供給される。
またヘッド電源信号E1039は、メインPCB E0014上で平滑化された後にCRFFC E0012へと送出され、記録ヘッドカートリッジH1000の駆動に用いられる。このASIC E1102は1チップの演算処理装置内蔵半導体集積回路であり、前述したモータ制御信号E1106、オプション制御信号E0108,電源制御信号E1024、ヘッド電源ON信号E1022、及びモータ電源ON信号E1023等を出力し、ホストI/F E0017との信号の授受を行うとともに、パネル信号E0107を通じて、フロントパネル上のデバイスI/F E0100との信号の授受をおこなう他、PEセンサE0007からのPE検出信号(PES)E1025、ASFセンサE0009からのASF検出信号(ASFS)E1026、カバーセンサE0022からのカバー検出信号(COVS)E1042、パネル信号E0107、センサ信号E0104、OnCRセンサ信号E1105の状態を検知して、パネル信号E0107の駆動を制御してフロントパネル上のLEDE0020の点滅を行う。
さらに、エンコーダ信号(ENC)E1020の状態を検知してタイミング信号を生成し、ヘッド制御信号E1021で記録ヘッドカートリッジH1000とのインターフェースをとり記録動作を制御する。ここにおいて、エンコーダ信号(ENC)E1020はCRFFC E0012を通じて入力されるCRエンコーダセンサE0004の出力信号である。また、ヘッド制御信号E1021は、フレキシブルフラットケーブルE0012、キャリッジ基板E0013、及びヘッドコネクタE0101を経て記録ヘッドH1001に供給される。
そして、図3は、ASIC E1102の内部構成、及び、そのデータの流れの概略を示す図である。
実際のプリンタASICはこの図では書ききれないほどの複雑な構造を有しているが、ここでは本実施形態に関係する不吐補完機能に関係ある部分に沿ってのみ、その内部構成を説明する。
まず、ASIC E1102以外に、不吐補完機能のデータ・フローの説明上、機能に対する理解を促すために附加しておくべき要素が2つある。1つはプリンタの外部に接続され、ドライバプログラムによってプリンタに対する印字データの送信、プリンタの制御、等を行うホスト機器としてのパーソナル・コンピュータ(PC)3−2、そして、印字ヘッド3−3である。PC3−2は、本実施形態の不吐補完機能が内蔵されるプリンタの外部に存在し、印字データをプリンタに対し、より厳密には、ASIC E1102のデータ受信部に対し転送をしてくる。また、印字ヘッド3−3は、プリンタの成果物であるプリント出力を作成するためのヘッドであり、前術した原理の項目で述べたように、この印字ヘッド3−3の中に、正常印字ノズルに混じって不吐ノズルが存在するのである。また、印字ヘッド3−3の動作を制御するデータ、即ち、印字データや吐出パルス信号などは、ASIC E1102の内部で生成される。
次に、ASIC E1102の内部について説明を加える。
先ず、主要なブロックについて述べると、3−4はASIC E1102全体の動作を統括・管理するCPUであり、3−5は、本実施形態のプリンタ・システムのメイン・メモリであるSD−RAMである。ちなみに、これは必ずしもSD−RAMである必要は無く、D−RAMでも、S−RAMでも、RAMの定義の範疇に属するメモリであれば、特に、SD−RAM以外のメモリでも構わない。そして、ASIC E1102中、それ以外のブロックは、所謂、ランダム・ロジックと言われる部分で、これらにより、プリンタ特有の動作、及びに、本実施形態の不吐補完機能特有の動作が実現される部分である。
次に、このランダム・ロジック部分について説明を加えていく。
まず、3−1−1は、上記PC3−2から転送されるデータを受信するインターフェース部である。例えば、このインターフェース部3−1−1は、IEEE1284やUSBやIEEE1394と言ったインターフェースのプロトコルに合わせて信号の取り込みを行い、ASIC E1102が扱いやすい形(通常、データを1byte単位の形に整形している場合が多い)にデータを生成する責務を有する。インターフェース部3−1−1によってASIC E1102の内部に取り込まれたデータは、次に受信データ制御部3−1−2に送られる。この受信データ制御部3−1−2の責務は、インターフェース部3−1−1が受信したデータを受け取り、SD−RAM3−5に保存することである。通常、SD−RAM3−5の中で、この受信データ制御部3−1−2によって制御される部分を受信バッファと呼ぶことが多い。
受信データ制御部3−1−2によりSD−RAM3−5の中に保存されたデータは、各印字制御のタインミングに応じて印字データ生成部3−1−4に読み込まれ、印字データが生成される。通常、この印字データ生成部3−1−4は、その役割によって、H−V変換部、データ展開部、マルチパス・マスク制御部など、様々な機能に分割される。また、上記各々の機能が、それぞれSD−RAM3−5にアクセスし、その独自の機能によるデータ処理を行う場合、そのSD−RAM3−5内のアクセス領域を、ワーク・バッファ、プリント・バッファ、または、マスク・バッファ等と名前を変えて呼ぶのが一般的である。しかし、本件では、これらの機能について詳しく述べることは、不吐補完機能を説明することと関連が薄いので、上記の機能を一括して「印字データ生成部」として扱うことにする。
上記印字データ生成部3−1−4にて作成された印字データは、印字データ格納用S−RAM3−1−5に保存される。この印字データ格納用S−RAM3−1−5は、システム上、必須のものではないのだが、近年のプリンタでは印字データを大量に作り置き等しておき、印字速度を向上させている場合が多く、このように、プリント・データをS−RAM(static RAM)のような高速アクセス可能なメモリ(ここでは、D−RAM(dynamic RAM)系のメモリは、一定時間内にリフレッシュ動作を行なう必要があるため、S−RAMに比べてアクセス時間が長くなることから、高速にアクセスが可能なS−RAMを適用するほうが好ましい)に、一旦、格納する場合が多い。また、ここで非常に重要なことは、ここで扱われているプリント・データは、マルチ・パス、INDEXデータ展開、また、マスク処理と言った各種データ処理を完全に施された後のデータで、これを印字ヘッド制御部に送れば、即座に印字可能な形態のデータである。本実施形態の不吐補完機能は、このデータに対して、更に不吐補完処理を行うものである。
上記印字データ格納用S−RAM3−1−5は、印字データ読み出し部3−1−6によって読み出しが行われる。この時、印字ヘッド3−3内部に不吐ノズルが存在しなければ、印字データ読み出し部3−1−6に読み出されたデータは、直接、印字ヘッド制御部3−1−7に送られる。この印字ヘッド制御部3−1−7は、受信した印字データを印字ヘッド3−3に転送したり、印字ヘッド3−3へヒート・パルス信号を送信したりと言った、印字ヘッド3−3特有のハード制御を行う。
また、エンコーダ信号E1020から、各種印字タイミングを生成する印字タイミング生成部3−1−8も存在する。この印字タイミング生成部3−1−8は、エンコーダ信号E1020から適切な間隔で信号を生成し、印字データ生成部3−1−4、印字データ読み出し部3−1−6、印字ヘッド制御部3−1−7、そして、後述する不吐補完データ読み出し部3−6−7が、適切なタイミングでデータのやり取りを行えるようにすることである。
次に、本実施形態の不吐補完機能に関する部分について説明を加える。不吐補完機能に関するブロックは、ASIC E1102内部で、不吐補完ブロック3−6と書かれた線の中の、各ブロックのことである。
まず、必要なのが、不吐情報格納部3−6−1であり、これは、印字ヘッド内部のどのノズル位置に、不吐ノズルがあるのかを設定しておくものである。この設定は、CPU3−4によって行われる。この不吐情報格納部3−6−1に設定された不吐ノズル情報は、不吐補完データ抽出タイミング生成部3−6−2と、上記印字データ読み出し部3−1−6と、不吐補完後のデータ生成部3−6−8に転送される。
不吐補完データ抽出タイミング生成部3−6−2は、転送されたデータに基づき、不吐補完データ抽出タイミング信号を生成する。即ち、上記印字データ生成部3−1−4は、現在、印字ヘッド3−2内のどの(正常か不吐かによらず)ノズルのデータを生成し、印字データ格納用S−RAM3−1−5に書き込みを行っているかを判別可能である。故に、この現在扱っている印字データと印字ヘッド3−2内のノズルの関係を示す情報を、上記印字データ生成部3−1−4から受信することで、現在扱っているのは、不吐ノズルの吐出データなのか否か、もしくは、上記原理の項で説明した不吐ノズル近傍上下の不吐補完を行うべきノズル位置の吐出データなのか否かが判断可能なのである。勿論、印字ヘッド内に不吐ノズルが無ければ、この不吐補完データ抽出タイミング生成部3−6−2は、何の信号も出力しない。
このデータに基づき、不吐補完データ抽出タイミング生成部3−6−2は、不吐補完用データ(ここで言う不吐補完データとは、不吐ノズルの吐出データと、不吐補完をすべき正常ノズル位置の印字データの双方を指し示す)を取り込むタイミングを、不吐補完用データ抽出部3−6−3に知らせることが可能である。不吐補完データ抽出部3−6−3は、上記印字データ生成部3−1−4が出力するプリント・データの信号線と接続されているため、不吐補完データ抽出タイミング生成部3−6−2が通知するタイミングに従って、プリント・データの中から不吐補完用データのみを抜き出すことができる。
抜き出された不吐補完用データは、不吐補完アルゴリズム実行部3−6−4に転送される。不吐補完アルゴリズム実行部3−6−4は、上記原理の項目で示した不吐補完データ演算を行うブロックである。
上記原理の項目によれば、不吐補完データ演算を行うためには、不吐補完優先順位が必要である。これは不吐補完ブロック3−6内にある不吐補完優先順位設定部3−6−5によって、上記不吐補完アルゴリズム実行部3−6−4にその不吐補完優先順位データが転送される。この不吐補完優先順位設定部3−6−5は、CPU3−4の設定により、不吐補完優先順位を設定することが可能な機能を有するものである。このような不吐補完優先順位設定部3−6−5を設けることで、ASIC E1102を設計し、製造してしまった後でも、不吐補完優先順位をファーム・ウェアにより柔軟に変更できるのである。
上記不吐補完アルゴリズム実行部3−6−4は、本実施形態の中でも重要な機能であるため、別途、図を用いて詳しく説明する。
図4は不吐補完アルゴリズム実行部3−6−4の構成を、更に詳しく説明したものである。
前述したように、不吐補完アルゴリズム実行部3−6−4には、不吐補完優先順位データと、抽出された不吐補完用データ(不吐ノズルの吐出データと、不吐補完をすべき正常ノズル位置の印字データ)が入力される。説明を行うために、幾つかの仮定を行う。まず、図4に示されているように、上記原理の項で説明したのと同様、不吐ノズルの上下それぞれ2ノズルの正常ノズル位置に対し、不吐補完を行うものとする。また、この位置に対する抽出された不吐補完用データは、図4に示したように一番上の位置にのみ印字データがあったものと考える(不吐ノズルの位置に印字データが有るか無いかについては、後述する)。
更に、その不吐補完を行う正常ノズル位置、即ち、4箇所に対して不吐補完優先順位を設定するのであるが、それは、図4に示したように、上から、(1)、(2)、(3)、(4)の順番に並んでいるものとする。
次に、不吐補完アルゴリズム実行部3−6−4の構成要素と、そのアルゴリズムの実現について言及する。
不吐補完アルゴリズム実行部3−6−4に入力された2つのデータ、不吐補完優先順位データと、抽出された不吐補完用データは、先ず、不吐補完可能位置の抽出部3−6−4−1に入力される。このブロックでは不吐補完優先順位データの中で、正常ノズルによる印字データが無く、不吐補完が可能な優先順位のみを抽出することが目的である。図4の場合、不吐補完優先順位データの内で、(1)の順位にのみ印字データが存在するので、不吐補完が可能な優先順位は、(2)、(3)、(4)と言うことになる。ここで抽出された不吐補完が可能な優先順位データは、次に、優先順位判断部3−6−4−2に転送される。ここでは、不吐補完が可能な優先順位の中から、最も高い優先順位を、1つだけ、決定するのである。図4の場合、不吐補完が可能な優先順位は、(2)、(3)、(4)であり、この中で、一番高い優先順位は(2)と言うことになる。
最後に、不吐補完データ合成部3−6−4−3でデータ処理を受け、不吐補完は完成する。ここのブロックの第1の責務は、上記優先順位判断部3−6−4−2が出力した一番高い優先順位の位置のデータと、不吐補完アルゴリズム実行部3−6−4のオリジナルの入力信号の1つであった上記抽出された不吐補完用データとを合成し、不吐補完後の印字データを作成することである。ただし、ここのブロックの第2の責務として、不吐ノズルの位置に、元々、印字データが有るのか否かを判断する。そして、その場所に印字データが有れば、上記第1の責務で述べられらように不吐補完後の印字データを作成し、そして、それを不吐補完アルゴリズム実行部3−6−4の出力として出力する。逆に、その場所に印字データが無ければ、上記抽出された不吐補完用データを、そのまま不吐補完アルゴリズム実行部3−6−4の出力として出力することになる。
以上が、不吐補完アルゴリズム実行部の機能と構成である。参考のために述べると、本ブロックの与えるアルゴリズム(=不吐補完のアルゴリズムそのもの)部は、組み合わせ回路のみで作成可能であり、ゲート量増加の原因となるFFなどの順序回路を一切必要としない。即ち、非常に簡素で、且つ、安価に実現可能なアルゴリズムと言えるのである。
ここからは、再度、図3に戻って、その続きを説明する。
不吐補完アルゴリズム実行部3−6−4の成果物である不吐補完を施されたデータは不吐補完データ用S−RAM3−6−6に書き込まれる。これは、印字データを記憶している上記印字データ格納用S−RAM3−1−5に対応しているものである。当然、不吐補完を施されたデータは、最終的な印字データでもあるので、この印字データ格納用S−RAM3−1−5に記憶しても良いのであるが、そうした場合、印字データ格納用S−RAM3−1−5に対する書き込みブロックが、上記印字データ生成部3−1−4と、不吐補完アルゴリズム実行部3−6−4の2つになり、バスの調停やコンフリクトが予想され、これが基で、プリンタ・システムとしてのパフォーマンスの低下が懸念されるので、ここでは、別途、不吐補完を施されたデータ専用にS−RAMを設けている。しかし、今後、プリンタ・システムの能力が、飛躍的に向上した場合、印字データ格納用S−RAM3−1−5を併用することも可能となる場合も考えられる。
次に、上記不吐補完データ用S−RAM3−6−6に書き込まれた不吐補完を施されたデータは、規定のタイミングで不吐補完データ読み出し部3−6−7によって読み出しが行われる。ここで言う規定のタイミングとは、上記印字データ読み出し部3−1−6と同期していると言うことであう。即ち、先ず、上記印字データ格納用S−RAM3−1−5には、当然、正常ノズルの印字データも不吐ノズルの印字データも、全て、含まれているわけである。しかしながら、上記不吐補完データ用S−RAM3−6−6には不吐ノズル周辺(本実施形態の仮定では上下それぞれ2ノズル分)のノズル印字データしか記憶されていない。そして、本実施形態の目指すところは、最終的に、印字データ格納用S−RAM3−1−5のデータ(正常ノズルの印字データも不吐ノズルも含まれた印字データ)に、不吐補完データ用S−RAM3−6−6のデータ(不吐ノズル周辺ノズル印字データ、当然、不吐補完を施した後のデータでもある)を適切に実装することである。従って、印字データ読み出し部3−1−6が不吐補完に関係するノズルのデータを読み出しているとき、不吐補完データ用S−RAM3−6−6からもそれに対応するデータを読み出し、その2つを適切に実装することが必要なのである(当然、これを別々のタイミングで読出し、その後に、別途、その2つを適切に実装する順序回路を作成することも可能であるが、この場合、順序回路の仕掛けが大きくなるので、小規模、簡素、安価にシステムを作成すると言う観点からすると、望ましい手段とは言えない)。よって、不吐補完データ読み出し部3−6−7は、印字データ読み出し部3−1−6からの信号を基に、そして、それに同期した形で、不吐補完を施されたデータの読み出しを行う必要がある。また、印字データ読み出し部3−1−6は、自分が現在読んでいる印字データが不吐補完に関係するか否かを判断した後に不吐補完データ読み出し部3−6−7に信号を出力するために、不吐情報格納部3−6−1が出力する不吐ノズル情報が必要なのである。
次に、不吐補完データ読み出し部3−6−7で読み出された不吐補完を施されたデータは、それと同期して印字データ読み出し部3−1−6から読み出された印字データ(上記手順によれば、この印字データは不吐補完に関係するノズル位置のデータでなければならない)と共に、不吐補完後のデータ生成部3−6−8に転送され、印字データに対する不吐補完を施されたデータの実装が行われる。
その様子を示したものが、図5である。
簡単に説明すると、先ずは、前述したように、不吐補完を施されたデータと、印字データが入力される。次に、不吐補完を施されたデータは、印字データと同じビット数に拡張される。通常、プリンタでは、印字データは、バイト(byte)やワード(word)等の、8の倍数の単位でデータが扱われる。これに対して、不吐補完を施されたデータは、それよりも少ないビット数の場合があり(本実施形態では、不吐ノズル分が1ビット、不吐補完の対象となるノズル分(不吐ノズルの上下2つのノズルだから)が4ビットで、合わせて5ビットである)、その場合、印字データと同じビット数に合わせる必要がある。本実施形態では、図5に示したように印字データは8ビット(=1byte)で扱われていると考えると、不吐補完を施されたデータは5ビットから8ビットに拡張する必要がある。拡張の方法は簡単で、不吐情報格納部3−6−1から転送される不吐ノズルの位置情報を基に、どの位置を拡張するかを決定し、拡張する位置には"0"(NULLデータ)をパディングする。こうしてとビット拡張をされた不吐補完を施されたデータと印字データとを、ビットOR回路3−6−8−1に送り、各々の各ビット同士の論理的OR演算をおこなって、それを不吐補完後のデータ生成部3−6−8の出力として出力する。
図5を良く見ると、不吐補完後のデータ生成部3−6−8の入力である不吐補完が施されたデータ(ただし、ビット拡張された後のもの)と、不吐補完後のデータ生成部3−6−8の出力である不吐補完が施されたデータを実装した状態の印字データは、全く同じデータとなっている。この場合、ビットOR回路3−6−8−1が必要ないように思われるかもしれないが、そうではない場合も存在するのである。例えば、本実施形態の仮定によれば、同じ1byteの印字データの中に、隣接するノズルの印字データは、印字ヘッド3−3内のノズルの形態と同じ様に(この辺りの様子は、図2の印字ヘッド2−1とノズル列2−2に描かれている通りである) 、やはり、隣接しているように描かれている。しかし、プリンタのシステムによっては、隣接するノズルの印字データが、異なる1byteの印字データの中にある場合もある。これは印字ヘッドの形態やドライブの方法の違いに基づくものなので、印字データがこのようなフォーマットになると言うことは、一概に定義することはできないのである。そのため、印字データのフォーマットに応じて、不吐補完が施されたデータを加工(必要なビットを抜き出すこと)と拡張(印字データのビット幅に合わせて”0”のパディングをすること)が必要なのである。当然、その場合、印字データの中に不吐補完に関係するノズルのデータが現われる位置やタイミングが変わってくるので、それに合わせて、印字データ読み出し部3−1−6と不吐補完データ読み出し部3−6−7は連携して動作する必要がある。
こうして、作成された、不吐補完データが実装された印字データは、印字ヘッド制御部3−1−7に転送され、そして、印字ヘッド制御部3−1−7は印字ヘッド3−2のプロトコルに合わせて印字を行う。この様子は、不吐が無い場合と全く同じである。
(3)第1の実施形態の効果
以上の様に、本実施形態によれば、前に述べた課題を全てクリアし、不吐ノズルの補完が可能となる。即ち、不吐補完の処理エンジンを非常に簡素で、且つ、安価な構成で実現していること、不吐補完処理を不吐ノズルにアサインされたデータが印字されるのと同じ印字パス内で行っているため、不吐補完のためだけの印字パスと言うものが存在しないこと、また、不吐補完処理は同じノズル列内で完全に閉じているために、例えば他のノズル列、即ち、違った色のノズル列に別の不吐が有ったとしても、そのノズル列の不吐ノズルの印字データが作成される度に同様の処理アルゴリズムを行えば不吐補完処理が可能であること、等によって課題の解決を行っているのである。
(第2の実施形態)
(1)第1の実施形態に対する更なる改善
上記の第1の実施形態は、従来の課題を解決するものであり、この第1の実施形態に対して、第2の実施形態はさらに記録ヘッドの寿命を延ばしながら不吐補完を実現可能とするものである。
例えば、第1の実施形態においては、不吐補完の際に優先順位の高いノズルの使用頻度が他に比べて高くなり、その結果、優先順位の高いノズルの寿命が、他の正常ノズルの寿命より短くなってしまう可能性がある。
本実施形態は、この問題を未然に防ぎ、より好適な不吐補完手法、ならびに不吐補完アルゴリズムを提供するものである。
(2) 原理
まず、本実施形態を実現するために必要な原理について説明を行う。
図6は、ノズルの不吐がある場合の印字の様子を簡易的に表現した図である。内容的には、図2に表したものと、ほぼ同じである。変更された内容としては、補完の対象となるエリアの範囲が、図2では1カラム−5ラスター分だったのに対し、図6では4カラム−5ラスター分(=補完の対象となるエリア6−1) となっていることである。
この6−1のエリアのみを用いて、このエリアの中の不吐ドットが補完される様子を説明する。
図7は、本実施形態の不吐補完の原理を、最も簡素に表現した図である。
まず、図7(a)は、図6中の、補完の対象となるエリアの1つ6−1を取り出した図である。この中には、3つの印字ドットと、4つの不吐により印字が行われなかったドットが含まれる。ここで説明の便宜上、各カラムの不吐ドットの位置に名前を付けておく。即ち、左から、T1、T2、T3、T4と呼ぶことにする(Tは不吐補完targetの頭文字”T”の意味で付している)。
次に、図7(b)は、図7(a)中の不吐ドットに対し補完を行うために、不吐ドットがある位置以外の場所に、即ち、不吐ノズルでは無い正常な印字ノズルが存在するために印字可能であるはずのドット位置に、不吐ドットを補完するための優先順位を付けている様子を示す。この段階では、優先順位を与えるドット位置に、印字ドットが有るか無いかに関係なく優先順位の番号を付けていく。この内容も上記の図1(b)の説明に対応したものであるが、違いは、各不吐ドット、即ち、T1、T2、T3、T4に対して、別々の優先順位が与えられていること、また、不吐補完の対象となる位置が4箇所から16箇所に増えたので、図1(b)優先順位が(1)〜(4)だったのが、図7(b)では、(1)〜(16)となっていることである。この優先順位には、勿論、T1、T2、T3、T4と、皆同じパターンで与えることも可能であるが、本実施形態の目的に沿うためには、図7(b)の例に示したたように、別々のパターンで与えることが望ましい。
そして、図7(c)は、図7(b)で与えた不吐補完優先順位に従って、不吐ドットの補完が行われる様子を示したものである。ここでは、6−1のエリアの中にある印字ドットのパターンを図7(a)のように固定して考えず、いくつかのケースの場合について、しかも、T1、T2、T3、T4の各々の不吐補完について、それぞれどのような処理が行われか説明することを試みている。
先ず、不吐ドットT1の位置に印字ドットが存在した場合について考える。T1不吐補完(ケース1)はその1例である。この図の指し示す状況は、0個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。この場合、上記1つの不吐により印字が行われなかったドットは、そのまま、不吐補完優先順位の最も高い位置に移される(即ち、ドットの補完が行われる)。ケース1では、それが、不吐補完優先順位(1)を有するドットの位置である。
次に、別の例、T1不吐補完(ケース2)の説明を行う。この図の指し示す状況は、1個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。そして、1個の印字ドットは、不吐補完優先順位の(1)が与えられた位置に存在している。この場合、上記1つの不吐により印字が行われなかったドットは、不吐補完優先順位の(1)を除いた中で、不吐補完優先順位の最も高い位置に移される。ケース2では、それが、図中の、不吐補完優先順位(2)を有するドットの位置である。
次に、不吐ドットT2の位置に印字ドットが存在した場合について考える。ここで、T2の不吐補完処理は、T1の処理が終了した後に行われなければならないと仮定する。T2不吐補完(ケース1)は、その1例である。この図の指し示す状況は、0個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。この場合、上記1つの不吐により印字が行われなかったドットは、そのまま、不吐補完優先順位の最も高い位置に補完される。ケース1では、それが、不吐補完優先順位(1)を有するドットの位置である。
次に、別の例、T2不吐補完(ケース2)の説明を行う。この図の指し示す状況は、1個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。そして、1個の印字ドットは、不吐補完優先順位の(1)が与えられた位置に存在している。この場合、上記1つの不吐により印字が行われなかったドットは、不吐補完優先順位の(1)を除いた中で、不吐補完優先順位の最も高い位置に移される。ケース2では、それが、図中の、不吐補完優先順位(2)を有するドットの位置である。
次に、別の例、T2不吐補完(ケース3)の説明を行う。この図の指し示す状況は、0個の印字ドットと、1つの補完ドット(T2の処理の前に行われたT1の処理の時点で発生したと仮定)が存在する状況である。そして、1個の補完ドットは、不吐補完優先順位の(1)が与えられた位置に存在している。この場合、上記1つの不吐により印字が行われなかったドット(T2)は、不吐補完優先順位の(1)を除いた中で、不吐補完優先順位の最も高い位置に移される。ケース3では、それが、図中の、不吐補完優先順位(2)を有するドットの位置である。
以下、T1→T2と不吐補完処理を行った後、T3→T4の順番で、上と同様のアルゴリズムで処理を行う。
以下、簡単に説明する。図7(c)中、T3不吐補完の図で、もし、不吐ドットT3の位置に印字ドットが存在すれば、T1、T2と行われた補完ドットと、元からある印字ドットを避けて、補完処理が行われる。この図の場合は、不吐補完優先順位の(1)が与えられた位置に補完が行われる。不吐ドットT3の位置に印字ドットが無ければ、何も行われない。
図7(c)中、T4不吐補完の図でも、もし、不吐ドットT4の位置に印字ドットが存在すれば、T1、T2、T3と行われた補完ドットと、元からある印字ドットを避けて、補完処理が行われる。この図の場合は、不吐補完優先順位の(1)が与えられた位置に補完が行われる。不吐ドットT4の位置に印字ドットが無ければ、何も行われない。
このアルゴリズムを適用して、元の例である図7(a)に対し不吐補完を行った様子が図7(d)である。まず、補完前の仮定として、各不吐ドットの不吐補完優先順位は、図7(b)の順番で与えられているものと考える。図7(d)のT1不吐補完の図は、T1の不吐補完が行われている様子である。不吐ドットT1の位置には印字ドットが存在し、且つ、不吐補完優先順位(1)の位置には印字ドットが無いので、T1の不吐ドットは不吐補完優先順位(1)の位置に移動される。
次に行われるのが、T2の処理で、その様子を示したのが図7(d)のT2不吐補完の図である。不吐ドットT2の位置には印字ドットが存在し、且つ、不吐補完優先順位(1)の位置には印字ドットがある。そこで、次に高い不吐補完優先順位を探すと、不吐補完優先順位(2)が空いている。なので、T1の不吐ドットは不吐補完優先順位(2)の位置に移動される。
次に行われるのが、T3の処理で、その様子を示したのが図7(d)のT3不吐補完の図である。しかし、不吐ドットT3の位置には印字ドットが存在しないので、補完処理は行われない。
次に行われるのが、T4の処理で、その様子を示したのが図7(d)のT4不吐補完の図である。しかし、不吐ドットT4の位置には印字ドットが存在しないので、補完処理は行われない。
即ち、本実施形態を実現するために必要な原理の特徴について簡単にまとめる。
第1の実施形態では、印字ヘッド内に不吐ノズルがあり、その位置に印字すべきデータが存在する場合、その印字ドットを、不吐ノズルの近傍の上下(第1の実施形態では、それを不吐ノズルの上下2ノズルと仮定して、説明を行った)の正常印字可能なノズルに移動していたが、本実施形態では、その補完エリアを増加させ、数カラム分のエリア内(本原理の項では、それを4カラムであると仮定した)で補完するものとし、更に、各々のカラム内に存在する不吐ドット毎に不吐補完優先順位を設定可能にしているのである。
以上が、本実施形態を実現するために必要な原理についての説明である。
(3)構成及びデータ・フロー
次に、本実施形態を実現するために必要な構成と、そのデータ・フローについて説明を行う。
基本的な動作は、第1の実施形態と、ほぼ同じであるため、差異のある部分に限定して説明を行っていく。
まず、プリンタとしての構成要素、即ち、図11、図12に示された各要素が必要なのは、第1の実施形態と同様である。
また、ASIC E1102の内部構成要素、即ち、図3に示された各要素が必要なことも、第1の実施形態と同様である。差異がある部分は、まず、不吐補完優先順位設定部3−6−5であり、これは、第1の実施形態が有していた不吐補完優先順位のデータと異なる形態のデータを持つ。その不吐補完優先順位のデータの差異は、図1に示した不吐補完優先順位と、図7に示した不吐補完優先順位の違いである。
もう1つ、違いが有るのは、不吐補完アルゴリズム実行部3−6−4の中身である。この部分は、本実施形態の中の根幹をなす部分であるため、別の図を用いて説明を行う。
図8が、その図である。
個々の要素と、その間のデータ・フローについて説明をする。説明を加える前に、本実施形態の不吐補完に関して設定しておくべき仮定があり、それは、図8に示されているように、上記原理の項で説明したのと同様、不吐ノズルの上下2ノズルの正常ノズル位置、及び、4カラムの範囲において、不吐補完を行うと言うことと、不吐補完処理は、上記原理の項で述べたように、T1→T2→T3→T4の順で処理されると言うことである。
先ず、不吐補完アルゴリズム実行部3−6−4は、不吐補完データ抽出タイミング生成部3−6−2から信号を受け取り、不吐補完用データを取り込んでいく。ここは第1の実施形態と異なり、4カラムの範囲に渡って不吐補完用データを取り込んだ後、各カラムに関して演算を行わなければならないと言う、シーケンシャルな制御が必要なので、全体の動作を統括する不吐補完アルゴリズム管理部8−1の存在が必要である。このブロックは、不吐補完データ抽出タイミング生成部3−6−2から信号を受け取り、そして、その信号に基づき、不吐補完データ・ラッチ部8−2に不吐補完用データをラッチするよう信号を出力する。と、同時に、不吐補完アルゴリズム管理部8−1は、4カラム分の不吐補完データがラッチし終わると、不吐補完処理を開始する。
不吐補完データ・ラッチ部8−2から、ラッチした不吐補完用データ(本実施形態では20ビット分のビット幅、理由は図8に描かれた図より自明)は、動作クロックなどと関係なく、常時、不吐補完処理演算部8−4に出力されている。しかし、不吐補完優先順位データに関しては、図8に示したように、不吐補完優先順位設定部3−6−5から、T1〜T4変換用に4つのデータ・パターンが転送されてきているので、これは、現在変換中の不吐ドットの位置に従って適切に選択する必要がある。故に、不吐補完アルゴリズム管理部8−1は、先ず、T1の位置の不吐ドットに関して処理を行うので、不吐補完優先順位選択部8−3に、T1処理用の不吐補完優先順位データを出力するよう、信号を転送する。
こうして、不吐補完データ・ラッチ部8−2から出力された4カラム分の不吐補完用データと、不吐補完優先順位選択部8−3から出力されたT1処理用の不吐補完優先順位データは、不吐補完処理演算部8−4に入力される。
不吐補完処理演算部8−4の機能は、第1の実施形態で示した不吐補完アルゴリズム実行部3−6−4の機能と、ほぼ同じである。一応、その機能を図9に現したが、この図が図4とほぼ同じであることからも、それが明らかであろう。第1の実施形態で示した図4の機能との違いは、第1の実施形態では不吐補完の変換単位が5ビットだったのに対し、ここでは20ビットになっていることである。それ以外に関しては、処理は変わらない。つまり、不吐補完の可能位置の抽出部3−6−4−1が、不吐補完用データとT1処理用の不吐補完優先順位データから、不吐補完の可能な位置を判断し、次に、優先順位判断部が上記不吐補完の可能な位置の中から最も高い優先順位を判断し、そして最後に、不吐補完データ合成部が、不吐補完の可能な位置の中から最も高い優先順位の位置と、不吐補完用データから不吐補完を行う。即ち、T1の不吐ドットの位置に印字データがあれば、不吐補完の可能な位置の中から最も高い優先順位の位置にその印字データを移動し、T1の不吐ドットの位置に印字データがなければ、入力された印字データをそのまま出力する、と言う流れでもって、不吐補完を行うのである。
ここで重要なことは、第1の実施形態で述べたように、この不吐補完処理演算部8−4の機能は組み合わせ回路のみで構成可能であるため、4カラム分の不吐補完用データと、T1処理用の不吐補完優先順位データが入力されると、論理的には、それと同時に(T1に印字データが有るにしろ、無いにいろ) 不吐補完が施されたデータが出力される。しかし、実際は、この入力から出力が得られるまでは、ある程度のゲート遅延が見込まれるので、不吐補完アルゴリズム管理部8−1は、適当な動作クロックが入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。待機するクロックは約2クロックで十分であり、以下、実施例で説明する管理部8−1は、2クロックが入力されるまで待機する。こうしてT1の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、それをこの不吐補完処理演算部8−4に対して、再度、出力しなおす。
次に、不吐補完アルゴリズム管理部8−1は、T2の位置の不吐ドットに関して処理を行うために、不吐補完優先順位選択部8−3に、T2処理用の不吐補完優先順位データを出力するよう、信号を転送する。こうして、不吐補完処理演算部8−4には、T1の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データと、T2処理用の不吐補完優先順位データが入力されたるめ、上記手順に従い、適当なゲート遅延後に、T1とT2の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データを出力する。不吐補完アルゴリズム管理部8−1は、適当な動作クロック(前述のように実施例では2クロックとしている)が入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。こうしてT1とT2の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、それをこの不吐補完処理演算部8−4に対して、再度、出力しなおす。
次に、不吐補完アルゴリズム管理部8−1は、T3の位置の不吐ドットに関して処理を行うために、不吐補完優先順位選択部8−3に、T3処理用の不吐補完優先順位データを出力するよう、信号を転送する。こうして、不吐補完処理演算部8−4には、T1とT2の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データと、T3処理用の不吐補完優先順位データが入力されるため、上記手順に従い、適当なゲート遅延後に、T1〜T3の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データを出力する。不吐補完アルゴリズム管理部8−1は、適当な動作クロックが入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。こうしてT1〜T3の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、それをこの不吐補完処理演算部8−4に対して、再度、出力しなおす。
最後に、不吐補完アルゴリズム管理部8−1は、T4の位置の不吐ドットに関して処理を行うために、不吐補完優先順位選択部8−3に、T4処理用の不吐補完優先順位データを出力するよう、信号を転送する。こうして、不吐補完処理演算部8−4には、T1〜T3の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データと、T4処理用の不吐補完優先順位データが入力されるため、上記手順に従い、適当なゲート遅延後に、T1〜T4の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データを出力する。不吐補完アルゴリズム管理部8−1は、適当な動作クロックが入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。こうしてT1〜T4の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、そのデータ、即ち、4カラム分の不吐補完を施した不吐補完用データを不吐補完データ用S−RAM3−6−6に転送し、4カラム分の不吐補完の不吐補完処理を終了する。
後は、この処理を4カラム分の不吐補完用の印字データを取り込む毎に繰り返していくのである。
(4)第2の実施形態の効果
以上の様に、本実施形態によれば、本実施形態の課題の項で述べた問題を全てクリアし、不吐ノズルの補完が可能となる。即ち、印字ヘッド内に不吐ノズルがあり、その位置に印字すべきデータが存在する場合、本実施形態では、その補完エリアを増加させ、数カラム分のエリア内で補完するものとし、更に、各々のカラム内に存在する不吐ドット毎に不吐補完優先順位を設定可能にしているので、4カラム毎に、不吐補完優先順位が変化するので、不吐補完優先順位の高いノズルの位置も4カラム毎に変化する。即ち、特定のノズルに負荷をかけることなく、不吐補完の原理を実装することが可能となる。
(第3の実施形態)
(1)第1の実施形態及び第2の実施形態に対する改善
上記の第1の実施形態と第2の実施形態は、従来の課題やその他の問題点を解消するものであるが、不吐により記録されない位置を目立たなく補完するための手法が高機能であるがために、他の問題点が発生することが懸念される。
即ち、上記第1の実施形態も、第2の実施形態も、不吐補完を行うのに、補完用の優先順位データの存在が不可欠となっている。更に、本提案によれば、上記の第1の実施形態も、第2の実施形態も、印字ヘッドの中の全ての色のノズルの中のバラバラの位置に不吐ノズルが存在していようとも、補完処理が可能である。そこで、例えば、プリンタの印字ヘッドが7色のインクに対応したものであるとすれば、上記優先順位データは7セット必要なことになる。これをハードの仕組みで持つことは(例えば、 書き込み・読み出し可能なレジスタで持たせる)、ASIC内のゲート数のかなりの増加に繋がる。当然、1つのプリンタが所有するインクの色の数は、今後も増加していくであろうから、ハードウェアに対するインパクトも増大しつづけることになる。
勿論、全てのインク色に対して、全く同じ優先順位データを用いることで、必要な優先順位データを少なくすることが可能であるが、インクの色味により不吐ノズルが画像に及ぼす影響が異なるため、好ましくは、各インクの色毎に、各優先順位データを持ち、ファームウェアでチューニング可能なシステムにしておくことが望ましい。
本実施形態は、上述したような問題の発生を未然に防ぎ、ハードウェアの実装において好適な不吐補完手法、および不吐補完アルゴリズムを提供するものである。
(2)構成及びデータ・フロー
図10は本実施形態のシステムの構成を示した図である。
この図を見れば明らかであるが、第1の実施形態及び第2の実施形態の構成と、ほぼ同じである。違いは、不吐補完設定データ格納用S−RAM10−1の存在である。
前述の第1の実施形態と第2の実施形態では、不吐補完優先順位設定部3−6−5の存在に関して、厳密な仕様を与えなかったが、本実施形態においては明確に定義することとする。本実施形態では、不吐補完優先順位設定部3−6−5は、複数色のうち1色に対応した複数のノズルが配列された1ノズル列の不吐補完を行うのに必要なハード構成(= レジスタ・セット)しか所有しないものと考える。
しかし、代わりに、不吐補完設定データ格納用S−RAM10−1の内部に、各色のノズル列に対応した不吐補完優先順位データを所有させるのである。そして、不吐補完優先順位設定部3−6−5は、不吐補完データ抽出タイミング生成部3−6−2から信号を受信し、不吐補完設定データ格納用S−RAM10−1から、必要な不吐補完優先順位データを読み出し(このデータは、予めCPU3−4が設定しておく必要がある)、不吐補完優先順位設定部3−6−5の内部のレジスタ・セットに設定するのである。
即ち、不吐補完データ抽出タイミング生成部3−6−2と、不吐補完優先順位設定部3−6−5は、次のように機能することが必要である。まず、不吐補完データ抽出タイミング生成部3−6−2は、不吐情報格納部3−6−1から情報を受信し、不吐補完用データを抽出する位置を見極めているのであるが、その時、不吐補完データ抽出タイミング生成部がどの色の印字データについて不吐補完用データを抽出するか否かを観察しているのが、必ず分かっているはずである(でなければ、各色のノズル列それぞれで異なる位置に存在する不吐ノズル周辺の印字データを抽出することはできない)。そのため、不吐補完データ抽出タイミング生成部3−6−2は、抽出タイミング信号を出力する際に、不吐補完優先順位設定部3−6−5に対しては、不吐補完処理が開始されたことと、どの色ノズル列の不吐補完であるかを、信号で知らせることが可能であり、それをトリガとして、不吐補完優先順位設定部3−6−5は、不吐補完設定データ格納用S−RAM10−1内の現在処理が進行している色ノズル列の不吐補完優先順位を読み出すようにするのである。
このように構成することで、不吐補完優先順位設定部3−6−5は、1ノズル列分の不吐補完優先順位用のレジスタ・セットしか所有していなくても、不吐補完設定データ格納用S−RAM10−1内には各色ノズル列分の不吐補完優先順位データがあるので、各色毎に不吐補完のチューニングが可能である。従って小さなハード構成で画像の品質を維持することが可能となる。
ここで、不吐補完設定データ格納用S−RAM10−1を新たに備えることについて、不吐補完設定データ格納用S−RAM10−1と、不吐補完データ用S−RAM3−6−6は、おなじS−RAMを使用することが可能であり、このとき不吐補完設定データが格納される領域と不吐補完データが格納される領域とは、アドレス空間を別にすることで同じS−RAMに格納できる。このように、同じS−RAM上に領域を分けて2つの異なるデータを格納したとしても、不吐補完設定データ格納用S−RAM10−1の内容を読み出すのは不吐補完処理の前であり、また、不吐補完データ用S−RAM3−6−6に対して書き込みを行うのは不吐補完処理の後であるため、読み出しアクセスと、書き込みアクセスが同時に行われることは無く、ハード構成を小さくしつつも、システムの処理パフォーマンスが低下することはない。
当然、同じS−RAMが、不吐補完設定データ格納用S−RAM10−1と、不吐補完データ用S−RAM3−6−6の2つの役割を担うので、S−RAMの容量は大きくなるが、レジスタ・セットを各色ノズル列分所有したりするよりもハードウェア構成を簡素に、且つ小さくすることができる。
(3)第3の実施形態の効果
以上の様に、本実施形態によれば、不吐補完設定データ格納用S−RAM10−1を設け、そこに不吐補完に必要な設定データを入れておき、必要に応じてそれを読み出すことで、ハードウェアの増大と言う問題と、画像に対する悪影響と言う問題を、完全に解決しているのである。
(第4の実施形態)
(1)原理
まず、本実施形態を実現するために必要な原理について説明を行う。
既に、「発明が解決しようとする課題」の欄において、印字ヘッド内に、1ノズル列当たり512個のノズルがある場合、ヘッドの1番ノズルに不吐ノズルがある場合、それを補完できるのは、2番、3番ノズルなど、番号が大きな方向のノズルのみであり、0番、−1番ノズルと言うものがヘッド上に存在しないので、それらのノズルで補完することができないことを述べた。
そこで、一言で本実施形態の趣旨を言い表すとすれば、上記の0番、−1番ノズル、もしくは、513番、514番と言った、通常のノズル列イメ−ジから外れた存在を、作り上げてしまうのである。
図14は、ノズルの不吐がある場合の印字の様子を簡易的に表現した図である。
図14中、印字ヘッド2−1内の、ある特定のノズル列2−2を抜き出して記述したものである。このノズル列の中には、図14内に示されたように正常ノズル2−3(当然、これは多数ある)と、ノズル列の上端部に不吐ノズル2−4(ノズル列2−2内に、1つだけあるものと仮定する)が存在するものとする。2−5は、印字ヘッド2−1のノズル列2−2によって紙面上に作られる印字イメ−ジである。このとき、印字ヘッド2−1は、主走査方向2−6に移動しながら印字イメ−ジ2−5を印字していくものと仮定する。この時、電気的にヘッドの吐出タイミングが決められ、印字ヘッド2−1のノズル列2−2は、走査方向2−6に対し規定の間隔 = カラム間隔2−6−1を守りながら、及び、主走査方向と直交する方向に対しても規定の間隔 = ラスター間隔2−7(通常、これはノズル列2−2の機械的な間隔に順ずる場合が多い)を守りながら、印字イメ−ジ2−5を形成していく。ここで図14に示した印字イメ−ジ2−5は、印字ヘッド2−1が主走査方向2−6に1回スキャンする時の印字イメ−ジである。即ち、マルチ・パス完了後の印字イメ−ジではない。
この時、印字イメ−ジ2−5の中で、正常ノズル2−3は2−8で表される印字ドットの位置に吐出をする。また、不吐ノズル2−4は2−9で表される印字ドットの位置に、本来、吐出を行うはずなのだが、その位置への吐出は行われない。
本実施形態の目的は、この2−9で表される印字ドットの位置を、あたかも印字されたかのように見せかけることである。
2−10は、従来の不吐補完が、補完の対象エリアとしていた場所である。今回は、不吐ノズル2−4の位置がノズル列の上端部であるために、図のように、従来も不吐補完が行えたエリア1−10−1と、従来では不吐補完が行えなかったエリア2−10−2の2つに分けることができる。最終的な目的としては、画像品質を劣化させないために、両方のエリア2−10−1,2−10−2を用いて、不吐補完を行うことにある。
そこで、図14を見ると、印字ヘッド2−1には、上下レジ調節ノズル2−11という物が存在する。これは従来からある構成で、その本来の目的は、印字ヘッドの機械的な取り付け位置誤差を調節することなどである。このノズルの存在に関するさらに詳しい説明、及び、制御方法等の詳細は、本発明の本筋からはずれるものなので割愛することにする。
本実施形態では、この上下レジ調節ノズル2−11を不吐補完に利用する。図13は、その様子を示した図である。
まず、図13(a)は不吐ノズルが無い場合を示す図である。この場合、印字は、通常どおり行われ、上下レジ調節ノズル2−11は、使用されない。より詳しく述べると、上下レジ調節ノズルはマスクされており、このノズルが形成するイメ−ジングエリアには印字ドットが存在しない
次に、図13(b)は不吐ノズルが有る場合の図である。この場合、上下レジ調節ノズル2−11に設定されていたマスクは解除され、上下レジ調節ノズル2−11も含め、不吐ノズルに隣接するノズルを用いて不吐補完を行う。不吐補完のアルゴリズムは、従来の例に従う。
事実上、これで本実施形態の原理の説明が終了したことになるのだが、より、理解しやすくするために本実施形態で用いられる「不吐補完のアルゴリズム」の説明を付け加える。
図17A、Bが、その不吐補完アルゴリズムを、最も簡素に表現した図である。
まず、図17A(a)は、図13(b)中の、補完の対象となるエリア1−1を取り出した図である。この中には、2つの印字ドットと、2つの不吐により印字が行われなかったドットが含まれる。ここで説明の便宜上、各カラムの不吐ドットの位置に名前を付けておく。即ち、左から、T1、T2、T3、T4と呼ぶことにする(Tは不吐補完targetの頭文字のTである)。
次に、図17A(b)は、図17(a)中の不吐ドットに対し補完を行うために、不吐ドットがある位置以外の場所に、即ち、不吐ノズルでは無い正常な印字ノズルが存在するために印字可能であるはずのドット位置に、不吐ドットを補完するための優先順位を付けている様子である。この段階では、優先順位を与えるドット位置に、印字ドットが有るか無いかに関係なく優先順位の番号を付けていく。この内容も上記の図13(b)の説明に対応したものであるが、違いは、各不吐ドット、即ち、T1、T2、T3、T4に対して、別々の優先順位が与えられていること、また、不吐補完の対象となる位置が4箇所から16箇所に増えたので、図13(b)優先順位が(1)〜(4)だったのが、図17A(b)では、(1)〜(16)となっていることである。この優先順位には、勿論、T1、T2、T3、T4と、皆同じパターンで与えることも可能であるが、本実施形態の目的に沿うためには、図17A(b)の例に示したたように、別々のパターンで与えることが望ましい。
そして、図17B(c)は、図17A(b)で与えた不吐補完優先順位に従って、不吐ドットの補完が行われる様子を示したものである。ここでは、エリア1−1の中にある印字ドットのパターンを図17A(a)のように固定して考えず、いくつかのケ−スの場合について、しかも、T1、T2、T3、T4の各々の不吐補完について、それぞれどのような処理が行われか説明することを試みている。
先ず、不吐ドットT1の位置に印字ドットが存在した場合について考える。T1不吐補完(ケ−ス1)はその1例である。この図の指し示す状況は、0個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。この場合、上記1つの不吐により印字が行われなかったドットは、そのまま、不吐補完優先順位の最も高い位置に移される(即ち、ドットの補完が行われる)。ケ−ス1では、それが、不吐補完優先順位(1)を有するドットの位置である。
次に、別の例、T1不吐補完(ケ−ス2)の説明を行う。この図の指し示す状況は、1個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。そして、1個の印字ドットは、不吐補完優先順位の(1)が与えられた位置に存在している。この場合、上記1つの不吐により印字が行われなかったドットは、不吐補完優先順位の(1)を除いた中で、不吐補完優先順位の最も高い位置に移される。ケ−ス2では、それが、図中の、不吐補完優先順位(2)を有するドットの位置である。
次に、不吐ドットT2の位置に印字ドットが存在した場合について考える。ここで、T2の不吐補完処理は、T1の処理が終了した後に行われなければならないと仮定する。T2不吐補完(ケ−ス1)は、その1例である。この図の指し示す状況は、0個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。この場合、上記1つの不吐により印字が行われなかったドットは、そのまま、不吐補完優先順位の最も高い位置に補完される。ケ−ス1では、それが、不吐補完優先順位(1)を有するドットの位置である。
次に、別の例、T2不吐補完(ケ−ス2)の説明を行う。この図の指し示す状況は、1個の印字ドットと、1つの不吐により印字が行われなかったドットが存在する状況である。そして、1個の印字ドットは、不吐補完優先順位の(1)が与えられた位置に存在している。この場合、上記1つの不吐により印字が行われなかったドットは、不吐補完優先順位の(1)を除いた中で、不吐補完優先順位の最も高い位置に移される。ケ−ス2では、それが、図中の、不吐補完優先順位(2)を有するドットの位置である。
次に、別の例、T2不吐補完(ケ−ス3)の説明を行う。この図の指し示す状況は、1つの不吐により印字が行なわれなかったドットと、1つの補完ドット(T2の処理の前に行われたT1の処理の時点で発生したと仮定)が存在する状況である。そして、1個の補完ドットは、不吐補完優先順位の(1)が与えられた位置に存在している。この場合、上記1つの不吐により印字が行われなかったドットは、不吐補完優先順位の(1)を除いた中で、不吐補完優先順位の最も高い位置に移される。ケ−ス3では、それが、図中の、不吐補完優先順位(2)を有するドットの位置である。
以下、T1→T2と不吐補完処理を行った後、T3→T4の順番で、上記と同様のアルゴリズムで処理を行う。
以下、簡単に説明する。図17B(c)中、T3不吐補完の図で、もし、不吐ドットT3の位置に印字ドットが存在すれば、T1、T2と行われた補完ドットと、元からある印字ドットを避けて、補完処理が行われる。この図の場合は、不吐補完優先順位の(1)が与えられた位置に補完が行われる。不吐ドットT3の位置に印字ドットが無ければ、何も行われない。図17B(c)中、T4不吐補完の図でも、もし、不吐ドットT3の位置に印字ドットが存在すれば、T1、T2、T3と行われた補完ドットと、元からある印字ドットを避けて、補完処理が行われる。この図の場合は、不吐補完優先順位の(1)が与えられた位置に補完が行われる。不吐ドットT4の位置に印字ドットが無ければ、何も行われない。
このアルゴリズムを適用して、元の例である図17A(a)に対し不吐補完を行った様子を示したものが図17B(d)である。まず、補完前の仮定として、各不吐ドットの不吐補完優先順位は、図17A(b)の順番で与えられているものと考える。図17B(d)のT1不吐補完の図は、T1の不吐補完が行われている様子を示している。不吐ドットT1の位置には印字ドットが存在し、且、不吐補完優先順位(1)の位置には印字ドットが無いので、T1の不吐ドットは不吐補完優先順位(1)の位置に移動される。
次に行われるのが、T2の処理で、その様子を示したのが図17B(d)のT2不吐補完の図である。不吐ドットT2の位置には印字ドットが存在し、且、不吐補完優先順位(1)の位置には印字ドットがある。そこで、次に高い不吐補完優先順位を探すと、不吐補完優先順位(2)が空いている。なので、T2の不吐ドットは不吐補完優先順位(2)の位置に移動される。
次に行われるのが、T3の処理で、その様子を示したのが図17B(d)のT3不吐補完の図である。しかし、不吐ドットT3の位置には印字ドットが存在しないので、補完処理は行われない。
次に行われるのが、T4の処理で、その様子を示したのが図17B(d)のT4不吐補完の図である。しかし、不吐ドットT4の位置には印字ドットが存在しないので、補完処理は行われない。
即ち、本実施形態を実現するために必要な原理の特徴ついて簡単にまとめる。第1の実施形態では、印字ヘッド内に不吐ノズルがあり、その位置に印字すべきデータが存在する場合、その印字ドットを、不吐ノズルの近傍の上下(第1の実施形態では、それを不吐ノズルの上下2ノズルと仮定して、説明を行った)の正常印字可能なノズルに移動していたが、本実施形態では、その補完エリアを増加させ、数カラム分のエリア内(本原理の項では、それを4カラムであると仮定した)で補完するものとし、更に、各々のカラム内に存在する不吐ドット毎に不吐補完優先順位を設定可能にしている。
以上の様に、上下レジ調節ノズル2−11と、本実施形態の不吐補完アルゴリズムを用いることで、ヘッドの最上端部、もしくは、最下端部に不吐がある場合についても、上下均等に不吐印字ドットを補完することで、印字画像の劣化を防いでいることがわかる(この原理の項では、ヘッドの最上端部に不吐が有る場合についてのみ、説明を行っているが、最下端部に不吐が有る場合についても、同様である)。
さらに付け加えると、本実施形態では、あたかも、予め印字ヘッドに備え付けられていた上下レジ調節ノズル2−11を、偶然にも、不吐補完に用いているかの如く、記述をしているが、この上下レジ調節ノズル2−11を、初めから、不吐補完専用のノズルとして定義し、不吐ノズルの無い場合は、使用しないと言うシステムもありうる。別に、必要が無ければ、無理に上下レジ調節ノズルを機械的構成の誤差補正に用いる必要も無い。当然、その場合の不吐補完専用のノズルのメカニズムは、従来の技術である上下レジ調節ノズルの制御方法と全く同じであると考えてよい。
以上が、本実施形態を実現するために必要な原理についての説明である。
(2)構成及びデータ・フロー
本実施形態を実現するために必要なプリンタの電気的な回路構成は、図11及び図12に示す第1の実施形態の構成と同様であるので、説明を省略する。
次に、第1の実施形態を示す図3を再び参照して、ASIC E1102の内部構成、及び、そのデータの流れの概略について説明する。
まず、ASIC E1102以外に、不吐補完機能のデータ・フローの説明上、機能に対する理解を促すために附加しておくべき要素が2つある。1つはプリンタの外部に接続され、ドライバプログラムによってプリンタに対する印字データの送信、プリンタの制御、等を行うホスト機器としてのパーソナル・コンピュータ(PC)3−2、そして、印字ヘッド3−3である。PC3−2は、本実施形態の不吐補完機能が内蔵されるプリンタの外部に存在し、印字データをプリンタに対し、より厳密には、ASIC E1102のデータ受信部に対し転送をしてくる。また、印字ヘッド3−3は、プリンタの成果物であるプリント出力を作成するためのヘッドであり、前術した原理の項目で述べたように、この印字ヘッド3−3の中に、正常印字ノズルに混じって不吐ノズルが存在するのである。また、印字ヘッド3−3の動作を制御するデータ、即ち、印字データや吐出パルス信号などは、ASIC E1102の内部で生成される。
次に、ASIC E1102の内部について説明を加える。
先ず、主要なブロックについて述べると、3−4はASIC E1102全体の動作を統括・管理するCPUであり、3−5は、本実施形態のプリンタ・システムのメイン・メモリであるSD−RAMである。ちなみに、これは必ずしもSD−RAMである必要は無く、D−RAMでも、S−RAMでも、RAMの定義の範疇に属するメモリであれば、特に、SD−RAM以外のメモリでも構わない。そして、ASIC E1102中、それ以外のブロックは、所謂、ランダム・ロジックと言われる部分で、これらにより、プリンタ特有の動作、及びに、本実施形態の不吐補完機能特有の動作が実現される部分である。
次に、このランダム・ロジック部分について説明を加えていく。
まず、3−1−1は、上記PC3−2から転送されるデータを受信するインターフェース部である。例えば、このインターフェース部3−1−1は、IEEE1284やUSBやIEEE1394と言ったインターフェースのプロトコルに合わせて信号の取り込みを行い、ASIC E1102が扱いやすい形(通常、データを1byte単位の形に整形している場合が多い)にデータを生成する責務を有する。インターフェース部3−1−1によってASIC E1102の内部に取り込まれたデータは、次に受信データ制御部3−1−2に送られる。この受信データ制御部3−1−2の責務は、インターフェース部3−1−1が受信したデータを受け取り、SD−RAM3−5に保存することである。通常、SD−RAM3−5の中で、この受信データ制御部3−1−2によって制御される部分を受信バッファと呼ぶことが多い。
受信データ制御部3−1−2によりSD−RAM3−5の中に保存されたデータは、各印字制御のタインミングに応じて印字データ生成部3−1−4に読み込まれ、印字データが生成される。通常、この印字データ生成部3−1−4は、その役割によって、H−V変換部、データ展開部、マルチパス・マスク制御部など、様々な機能に分割される。また、上記各々の機能が、それぞれSD−RAM3−5にアクセスし、その独自の機能によるデータ処理を行う場合、そのSD−RAM3−5内のアクセス領域を、ワーク・バッファ、プリント・バッファ、または、マスク・バッファ等と名前を変えて呼ぶのが一般的である。しかし、本件では、これらの機能について詳しく述べることは、不吐補完機能を説明することと関連が薄いので、上記の機能を一括して「印字データ生成部」として扱うことにする。
上記印字データ生成部3−1−4にて作成された印字データは、印字データ格納用S−RAM3−1−5に保存される。この印字データ格納用S−RAM3−1−5は、システム上、必須のものではないのだが、近年のプリンタでは印字データを大量に作り置き等しておき、印字速度を向上させている場合が多く、このように、プリント・データをS−RAMのような高速アクセス可能なメモリ(ここでは、D−RAM系のメモリはアクセス時間がかかり過ぎるので不適である)に、一旦、格納する場合が多い。また、ここで非常に重要なことは、ここで扱われているプリント・データは、マルチ・パス、INDEXデータ展開、また、マスク処理と言った各種データ処理を完全に施された後のデータで、これを印字ヘッド制御部に送れば、即座に印字可能な形態のデータである。本実施形態の不吐補完機能は、このデータに対して、更に不吐補完処理を行うものである。
上記印字データ格納用S−RAM3−1−5は、印字データ読み出し部3−1−6によって読み出しが行われる。この時、印字ヘッド3−3内部に不吐ノズルが存在しなければ、印字データ読み出し部3−1−6に読み出されたデータは、直接、印字ヘッド制御部3−1−7に送られる。この印字ヘッド制御部3−1−7は、受信した印字データを印字ヘッド3−3に転送したり、印字ヘッド3−3へヒート・パルス信号を送信したりと言った、印字ヘッド3−3特有のハード制御を行う。
また、エンコーダ信号E1020から、各種印字タイミングを生成する印字タイミング生成部3−1−8も存在する。この印字タイミング生成部3−1−8は、エンコーダ信号E1020から適切な間隔で信号を生成し、印字データ生成部3−1−4、印字データ読み出し部3−1−6、印字ヘッド制御部3−1−7、そして、後述する不吐補完データ読み出し部3−6−7が、適切なタイミングでデータのやり取りを行えるようにすることである。
次に、本実施形態の不吐補完機能に関する部分について説明を加える。不吐補完機能に関するブロックは、ASIC E1102内部で、不吐補完ブロック3−6と書かれた線の中の、各ブロックのことである。
まず、必要なのが、不吐情報格納部3−6−1であり、これは、印字ヘッド内部のどのノズル位置に、不吐ノズルがあるのかを設定しておくものである。この設定は、CPU3−4によって行われる。この不吐情報格納部3−6−1に設定された不吐ノズル情報は、不吐補完データ抽出タイミング生成部3−6−2と、上記印字データ読み出し部3−1−6と、不吐補完後のデータ生成部3−6−8に転送される。
不吐補完データ抽出タイミング生成部3−6−2は、転送されたデータに基づき、不吐補完データ抽出タイミング信号を生成する。即ち、上記印字データ生成部3−1−4は、現在、印字ヘッド3−2内のどの(正常か不吐かによらず)ノズルのデータを生成し、印字データ格納用S−RAM3−1−5に書き込みを行っているかを判別可能である。故に、この現在扱っている印字データと印字ヘッド3−2内のノズルの関係を示す情報を、上記印字データ生成部3−1−4から受信することで、現在扱っているのは、不吐ノズルの吐出データなのか否か、もしくは、上記原理の項で説明した不吐ノズル近傍上下の不吐補完を行うべきノズル位置の吐出データなのか否かが判断可能なのである。勿論、印字ヘッド内に不吐ノズルが無ければ、この不吐補完データ抽出タイミング生成部3−6−2は、何の信号も出力しない。
このデータに基づき、不吐補完データ抽出タイミング生成部3−6−2は、不吐補完用データ(ここで言う不吐補完データとは、不吐ノズルの吐出データと、不吐補完をすべき正常ノズル位置の印字データの双方を指し示す)を取り込むタイミングを、不吐補完用データ抽出部3−6−3に知らせることが可能である。不吐補完データ抽出部3−6−3は、上記印字データ生成部3−1−4が出力するプリント・データの信号線と接続されているため、不吐補完データ抽出タイミング生成部3−6−2が通知するタイミングに従って、プリント・データの中から不吐補完用データのみを抜き出すことができる。
抜き出された不吐補完用データは、不吐補完アルゴリズム実行部3−6−4に転送される。不吐補完アルゴリズム実行部3−6−4は、上記原理の項目で示した不吐補完データ演算を行うブロックである。
上記原理の項目によれば、不吐補完データ演算を行うためには、不吐補完優先順位が必要である。これは不吐補完ブロック3−6内にある不吐補完優先順位設定部3−6−5によって、上記不吐補完アルゴリズム実行部3−6−4にその不吐補完優先順位データが転送される。この不吐補完優先順位設定部3−6−5は、CPU3−4の設定により、不吐補完優先順位を設定することが可能な機能を有するものである。このような不吐補完優先順位設定部3−6−5を設けることで、ASIC E1102を設計し、製造してしまった後でも、不吐補完優先順位をファーム・ウェアにより柔軟に変更できるのである。
上記不吐補完アルゴリズム実行部3−6−4は、本実施形態の中でも重要な機能であるため、別途、図を用いて詳しく説明する。
図18が、その図である。個々の要素と、その間のデータ・フロ−について説明をする。
説明を加える前に、本実施形態の不吐補完に関して設定しておくべき仮定があり、それは、図18に示されているように、上記原理の項で説明したのと同様、不吐ノズルの上下2ノズルの正常ノズル位置及び4カラムの範囲において不吐補完を行うと言うことと、不吐補完処理は、上記原理の項で述べたようにT1→T2→T3→T4の順で処理されると言うことである。
先ず、不吐補完アルゴリズム実行部3−6−4は、不吐補完データ抽出タイミング生成部3−6−2から信号を受け取り、不吐補完用データを取り込んでいく。ここは第1の実施形態と異なり、4カラムの範囲に渡って不吐補完用データを取り込んだ後、各カラムに関して演算を行わなければならないと言う、シ−ケンシャルな制御が必要なので、全体の動作を統括する不吐補完アルゴリズム管理部8−1の存在が必要である。このブロックは、不吐補完データ抽出タイミング生成部3−6−2から信号を受け取り、そして、その信号に基づき、不吐補完データ・ラッチ部8−2に不吐補完用データをラッチするよう信号を出力する。と、同時に、不吐補完アルゴリズム管理部8−1は、4カラム分の不吐補完データがラッチし終わると、不吐補完処理を開始する。
不吐補完データ・ラッチ部8−2から、ラッチした不吐補完用データ(本実施形態では20ビット分のビット幅、理由は図18に描かれた図より自明)は、動作クロックなどと関係なく、常時、不吐補完処理演算部8−4に出力されている。しかし、不吐補完優先順位データに関しては、図18に示したように、不吐補完優先順位設定部3−6−5から、T1〜T4変換用に4つのデータ・パターンが転送されてきているので、これは、現在変換中の不吐ドットの位置に従って適切に選択する必要がある。故に、不吐補完アルゴリズム管理部8−1は、先ず、T1の位置の不吐ドットに関して処理を行うので、不吐補完優先順位選択部8−3に、T1処理用の不吐補完優先順位データを出力するよう、信号を転送する。
こうして、不吐補完データ・ラッチ部8−2から出力された4カラム分の不吐補完用データと、不吐補完優先順位選択部8−3から出力されたT1処理用の不吐補完優先順位データは、不吐補完処理演算部8−4に入力される。
不吐補完処理演算部8−4の機能は、上記原理の項で示した不吐補完アルゴリズムである。図19は、その機構をブロック図で書き表したものである。つまり、不吐補完の可能位置の抽出部3−6−3−1が、不吐補完用データとT1処理用の不吐補完優先順位データから、不吐補完の可能な位置を判断し、次に、優先順位判断部が上記不吐補完の可能な位置の中から最も高い優先順位を判断し、そして最後に、不吐補完データ合成部が、不吐補完の可能な位置の中から最も高い優先順位の位置と、不吐補完用データから不吐補完を行う、即ち、T1の不吐ドットの位置に印字データがあれば、不吐補完の可能な位置の中から最も高い優先順位の位置にその印字データを移動し、T1の不吐ドットの位置に印字データがなければ、入力された印字データをそのまま出力する、と言う流れでもって、不吐補完を行うのである。
ここで重要なことは、この不吐補完処理演算部8−4の機能は組み合わせ回路のみで構成可能であるため、4カラム分の不吐補完用データと、T1処理用の不吐補完優先順位データが入力されると、論理的には、それと同時に(T1に印字データが有るにしろ、無いにいろ) 不吐補完が施されたデータが出力される。が、実際は、この入力から出力が得られるまでは、ある程度のゲ−ト遅延が見込まれるので、不吐補完アルゴリズム管理部8−1は、適当な動作クロック(先の実施例で説明したように、実施例では2クロックとしている)が入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。こうしてT1の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、それをこの不吐補完処理演算部8−4に対して、再度、出力しなおす。
次に、不吐補完アルゴリズム管理部8−1は、T2の位置の不吐ドットに関して処理を行うために、不吐補完優先順位選択部8−3に、T2処理用の不吐補完優先順位データを出力するよう、信号を転送する。こうして、不吐補完処理演算部8−4には、T1の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データと、T2処理用の不吐補完優先順位データが入力されたため、上記手順に従い、適当なゲ−ト遅延後に、T1とT2の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データを出力する。不吐補完アルゴリズム管理部8−1は、適当な動作クロックが入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。こうしてT1とT2の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、それをこの不吐補完処理演算部8−4に対して、再度、出力しなおす。
次に、不吐補完アルゴリズム管理部8−1は、T3の位置の不吐ドットに関して処理を行うために、不吐補完優先順位選択部8−3に、T3処理用の不吐補完優先順位データを出力するよう、信号を転送する。こうして、不吐補完処理演算部8−4には、T1とT2の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データと、T3処理用の不吐補完優先順位データが入力されたため、上記手順に従い、適当なゲ−ト遅延後に、T1〜T3の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データを出力する。不吐補完アルゴリズム管理部8−1は、適当な動作クロックが入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。こうしてT1〜T3の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、それをこの不吐補完処理演算部8−4に対して、再度、出力しなおす。
最後に、不吐補完アルゴリズム管理部8−1は、T4の位置の不吐ドットに関して処理を行うために、不吐補完優先順位選択部8−3に、T4処理用の不吐補完優先順位データを出力するよう、信号を転送する。こうして、不吐補完処理演算部8−4には、T1〜T3の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データと、T4処理用の不吐補完優先順位データが入力されたため、上記手順に従い、適当なゲ−ト遅延後に、T1〜T4の印字ドットに関する不吐補完を施し済である4カラム分の不吐補完用データを出力する。不吐補完アルゴリズム管理部8−1は、適当な動作クロックが入力されるまで待機し、その後、不吐補完処理演算部8−4が出力したデータを、新たな4カラム分の不吐補完用データとして更新するよう、不吐補完処理データ・ラッチ部8−2に信号を転送する。こうしてT1〜T4の印字ドットに関する不吐補完を施し済である新たな4カラム分の不吐補完用データをラッチした不吐補完処理データ・ラッチ部8−2は、そのデータ、即ち、4カラム分の不吐補完を施した不吐補完用データを不吐補完データ用S−RAM3−6−6に転送し、4カラム分の不吐補完の不吐補完処理を終了する。
ここからは、再度、図3に戻って、その続きを説明する。
不吐補完アルゴリズム実行部3−6−4の成果物である不吐補完を施されたデータは不吐補完データ用S−RAM3−6−6に書き込まれる。これは、印字データを記憶している上記印字データ格納用S−RAM3−1−5に対応しているものである。当然、不吐補完を施されたデータは、最終的な印字データでもあるので、この印字データ格納用S−RAM3−1−5に記憶しても良いのであるが、そうした場合、印字データ格納用S−RAM3−1−5に対する書き込みブロックが、上記印字データ生成部3−1−4と、不吐補完アルゴリズム実行部3−6−4の2つになり、バスの調停やコンフリクトが予想され、これが基で、プリンタ・システムとしてのパフォーマンスの低下が懸念されるので、ここでは、別途、不吐補完を施されたデータ専用にS−RAMを設けている。しかし、今後、プリンタ・システムの能力が、飛躍的に向上した場合、印字データ格納用S−RAM3−1−5を併用することも可能となる場合も考えられる。
次に、上記不吐補完データ用S−RAM3−6−6に書き込まれた不吐補完を施されたデータは、規定のタイミングで不吐補完データ読み出し部3−6−7によって読み出しが行われる。ここで言う規定のタイミングとは、上記印字データ読み出し部3−1−6と同期していると言うことであう。即ち、先ず、上記印字データ格納用S−RAM3−1−5には、当然、正常ノズルの印字データも不吐ノズルの印字データも、全て、含まれているわけである。しかしながら、上記不吐補完データ用S−RAM3−6−6には不吐ノズル周辺(本実施形態の仮定では上下それぞれ2ノズル分)のノズル印字データしか記憶されていない。そして、本実施形態の目指すところは、最終的に、印字データ格納用S−RAM3−1−5のデータ(正常ノズルの印字データも不吐ノズルも含まれた印字データ)に、不吐補完データ用S−RAM3−6−6のデータ(不吐ノズル周辺ノズル印字データ、当然、不吐補完を施した後のデータでもある)を適切に実装することである。従って、印字データ読み出し部3−1−6が不吐補完に関係するノズルのデータを読み出しているとき、不吐補完データ用S−RAM3−6−6からもそれに対応するデータを読み出し、その2つを適切に実装することが必要なのである(当然、これを別々のタイミングで読出し、その後に、別途、その2つを適切に実装する順序回路を作成することも可能であるが、この場合、順序回路の仕掛けが大きくなるので、小規模、簡素、安価にシステムを作成すると言う観点からすると、望ましい手段とは言えない)。よって、不吐補完データ読み出し部3−6−7は、印字データ読み出し部3−1−6からの信号を基に、そして、それに同期した形で、不吐補完を施されたデータの読み出しを行う必要がある。また、印字データ読み出し部3−1−6は、自分が現在読んでいる印字データが不吐補完に関係するか否かを判断した後に不吐補完データ読み出し部3−6−7に信号を出力するために、不吐情報格納部3−6−1が出力する不吐ノズル情報が必要なのである。
次に、不吐補完データ読み出し部3−6−7で読み出された不吐補完を施されたデータは、それと同期して印字データ読み出し部3−1−6から読み出された印字データ(上記手順によれば、この印字データは不吐補完に関係するノズル位置のデータでなければならない)と共に、不吐補完後のデータ生成部3−6−8に転送され、印字データに対する不吐補完を施されたデータの実装が行われる。
その様子を示したものが、図15である。そして、ここに、本実施形態の重要な機構が存在する。
まずは、機構を分かりやすく説明するために、不吐ノズルが、ノズルの最上端部、もしくは、最下端部ではない場所に存在する場合について説明する。
先ずは、前述したように、不吐補完を施されたデータと、印字データが入力される。次に、不吐補完を施されたデータは、印字データと同じビット数に拡張される。通常、プリンタでは、印字データは、byteやword等の8の倍数の単位でデータが扱われる。これに対して、不吐補完を施されたデータは、それよりも少ないビット数の場合があり(本実施形態では、不吐ノズル分が1ビット、不吐補完の対象となるノズル分(不吐ノズルの上下2つのノズルだから)が4ビットで、合わせて5ビットである)、その場合、印字データと同じビット数に合わせる必要がある。本実施形態では、図15に示したように印字データは8ビット(=1 byte)で扱われていると考えると、不吐補完を施されたデータは5ビットから8ビットに拡張する必要がある。拡張の方法は簡単で、不吐情報格納部3−6−1から転送される不吐ノズルの位置情報を基に、どの位置を拡張するかを決定し、拡張する位置には"0"(NULLデータ)をパディングする。こうしてとビット拡張をされた不吐補完を施されたデータと印字データとを、ビットOR回路3−6−8−1に送り、各々の各ビット同士の論理的OR演算をおこなって、それを不吐補完後のデータ生成部3−6−8の出力として出力する。
図15を良く見ると、不吐補完後のデータ生成部3−6−8の入力である不吐補完が施されたデータ(ただし、ビット拡張された後のもの)と、不吐補完後のデータ生成部3−6−8の出力である不吐補完が施されたデータを実装した状態の印字データは、全く同じデータとなっている。
この場合、ビットOR回路3−6−8−1が必要ないように思われるかもしれないが、そうではない場合も存在するのである。例えば、本実施形態の仮定によれば、同じ1 byteの印字データの中に、隣接するノズルの印字データは、印字ヘッド3−2内のノズルの形態と同じ様に(この辺りの様子は、図14の印字ヘッド2−1とノズル列2−2に描かれている通りである) 、やはり、隣接しているように描かれている。しかし、プリンタのシステムによっては、隣接するノズルの印字データが、異なる1 byteの印字データの中にある場合もある。これは印字ヘッドの形態やドライブの方法の違いに基づくものなので、印字データはこのようなフォ−マットになると言うことは、一概に定義することはできないのである。なので、印字データのフォ−マットに応じて、不吐補完が施されたデータを加工(必要なビットを抜き出すこと)と拡張(印字データのビット幅に合わせて"0"のパディングをすること)が必要なのである。当然、その場合、印字データの中に不吐補完に関係するノズルのデータが現われる位置やタイミングが変わってくるので、それに合わせて、印字データ読み出し部3−1−6と不吐補完データ読み出し部3−6−7は連携して動作する必要がある。
次に、不吐ノズルが、ノズルの最上端部、もしくは、最下端部に存在する場合の説明である。その様子を示したものが、図16である。
まず、印字データ読み出し部3−1−6から読み出された印字データには、上下レジ調節ノズルを印字するためのデータエリアが存在するはずである。これが存在しなければ、上下レジ調節ノズルを用いて如何なる印字も行うことができないので、上下レジ調節ノズルの存在と、このノズルを印字するためのデータエリアの存在は、必ず、共存しているはずである。そして、通常、何もなければ、このエリアには"0"が配置されている(即ち、上下レジ調節ノズルに印字ドットを配置しない)はずである。上の原理の項では、このエリアには"0"が配置されていることを、「上下レジ調節ノズルに対するマスク」と呼んでいた。通常の状態で、このノズルを印字するためのデータエリアに印字ドットを配置する機構は様々で、MPUによるレジスタ設定や、印字用SRAMに特別なエリアを設けて、そこからデータを読み出すなどが考えられる。これらの機構は、上下レジ調節ノズルの使用目的によって選択されるべきもので、本実施形態とは、関係が薄い内容と言える。
先ずは、前述したように、不吐補完を施されたデータと、上下レジ調節ノズルの印字データエリアを含む印字データが入力される。次に、不吐補完を施されたデータは、印字データと同じビット数に拡張される。これは上で説明したのと同じ機構である。こうしてビット拡張をされた不吐補完を施されたデータと印字データとを、ビットOR回路3−6−8−1に送り、各々の各ビット同士の論理的OR演算をおこなって、それを不吐補完後のデータ生成部3−6−8の出力として出力する。
こうすることで、上下レジ調節ノズルに対して、不吐補完を行った印字ドットを配置するメカニズムが完結するのである。
こうして、作成された、不吐補完データが実装された印字データは、印字ヘッド制御部3−1−7に転送され、そして、印字ヘッドド制御部3−1−7は印字ヘッド3−2のプロトコルに合わせて印字を行う。この様子は、不吐が無い場合と全く同じである。
(3)第4の実施形態の効果
以上の様に、上下レジ調節ノズルと、第1乃至第3の実施形態の不吐補完アルゴリズムを用いることで、ヘッドの最上端部、もしくは、最下端部に不吐がある場合についても、上下均等に不吐印字ドットを補完することで、印字画像の劣化を防いでいることがわかる(この実施形態の項では、ヘッドの最上端部に不吐が有る場合についてのみ、説明を行っているが、最下端部に不吐が有る場合についても、同様である)。
即ち、従来例では存在し得なかった、上下レジ調節ノズルと言う特別な存在を利用することで、0番、−1番ノズル、もしくは、513番、514番と言った、通常のノズル列イメ−ジから外れた存在を作り上げてしまうことができる。
以上の実施形態は、インクジェット記録方式の態様に限らず、適用することが可能である。なお、インクジェット記録方式の中でも、熱エネルギーを発生する電気熱変換体を用いてインクを吐出するバブルジェット(登録商標)記録方式は、記録の高密度化、高精細化を達成するものであり、不吐出によって記録されない領域を、不吐出のノズルの周辺の複数のノズルを用いて補完する不吐補完手法を好適に採用することが可能である。