本実施形態を、図面を参照して説明する。図1を参照し、画像形成装置の一例である印刷装置30を説明する。図1の左下側、右上側、右下側、左上側、上側、下側は、それぞれ、印刷装置30の前側、後側、右側、左側、上側、下側である。
<印刷装置30の構成>
印刷装置30は、公知の布用インクジェットプリンタである。印刷装置30は、吐出ヘッド35を走査させ、記録媒体である布に画像を印刷する。布の一例として、Tシャツなどが挙げられる。印刷装置30は、例えば、ケーブル9を介して端末装置1に接続する。端末装置1は、布に対する印刷処理を印刷装置30に実行させるための印刷データ421を作成する。印刷データ421は、端末装置1から印刷装置30に送信される。端末装置1は、例えば、PC(Personal Computer)、タブレット、高機能携帯等である。
印刷装置30は、筐体31内の下部に、一対のガイドレール37を備える。一対のガイドレール37は、前後方向に延びる。一対のガイドレール37は、プラテン支持台38を前後方向に移動可能に支持する。プラテン支持台38上面の左右方向中央には、プラテン39が固定される。プラテン39は、板体である。プラテン39の上面には、布が載置される。プラテン支持台38は、副走査機構によって、副走査方向に搬送される。副走査方向は、布がプラテン39によって搬送される前後方向である。副走査機構は、図3に示す副走査モータ47、及び図示しないベルトを含む。
印刷装置30は、筐体31内、且つ、プラテン39よりも上方に、一対のガイドレール33を備える。一対のガイドレール33は、左右方向に延びる。一対のガイドレール33は、キャリッジ34を左右方向に移動可能に支持する。図2に示す例では、キャリッジ34には、4個の吐出ヘッド35Wを備えたヘッドユニット100、及び、吐出ヘッド35C,35M,35Y,35Kを備えたヘッドユニット200が搭載される。キャリッジ34は、主走査機構によって、副走査方向と直交する主走査方向に搬送される。主走査方向は、4個の吐出ヘッド35W、および吐出ヘッド35C,35M,35Y,35Kがキャリッジ34によって搬送される左右方向である。主走査機構は、図3に示す主走査モータ46、及び図示しないベルトを含む。以下の説明では、4個の吐出ヘッド35W、及び、吐出ヘッド35C,35M,35Y,35Kのそれぞれを、吐出ヘッド35ともいう。図2に示すように、それぞれの吐出ヘッド35の底面には、複数のノズル36が設けられている。複数のノズル36の数は、一例として、420個である。合計8個の吐出ヘッド35のそれぞれに420個のノズル36が設けられる。図2では、簡略化のため、実際の個数よりも少ない20個のノズル36が図示されている。
各ノズル36はインクを吐出可能である。それぞれの吐出ヘッド35の各ノズル36は、副走査方向に等間隔に配列されている。印刷装置30に装着されたインクカートリッジのインクは、例えば、キャリッジ34の前側から供給される。本実施形態では、図4、図5に示すように、吐出ヘッド35Wの前側にインク供給路60が接続され、インクが各ノズル26に供給される。詳細は省略するが、各ノズル36に供給されるインクは、各ノズル36に設けられた圧電素子又は発熱体の駆動によって、各ノズル36から下向きに吐出される。
図2に示すように、ヘッドユニット100の4個の吐出ヘッド35Wは、主走査方向に並べられ、キャリッジ34に搭載されている。4個の吐出ヘッド35Wの各ノズル36の配列の向きは副走査方向に沿った状態である。4個の吐出ヘッド35Wは、各ノズル36から白インクを吐出する。本実施形態において、白インクは下地用のインクである。ヘッドユニット200の吐出ヘッド35C,35M,35Y,35Kは、主走査方向に並べられ、キャリッジ34に搭載されている。吐出ヘッド35C,35M,35Y,35Kの各ノズル36の配列の向きは副走査方向に沿った状態である。吐出ヘッド35C,35M,35Y,35Kは、各ノズル36からカラーインクを吐出する。吐出ヘッド35Cは、ノズル36からシアンインクを吐出する。吐出ヘッド35Mは、ノズル36からマゼンタインクを吐出する。吐出ヘッド35Yは、ノズル36からイエローインクを吐出する。吐出ヘッド35Kは、ノズル36からブラックインクを吐出する。
印刷装置30は、吐出ヘッド35を主走査方向に走査させながらインクを吐出させることで、主走査方向に所定数の画素列を形成する。所定数の画素列は左右方向に延びる。印刷装置30は、1回の主走査による所定数の画素列の形成が終了すると、プラテン39を副走査方向に移動させて、再び主走査により所定数の画素列を形成する。印刷装置30は、以上の動作を印刷データ421に従って繰り返し実行することで、複数の画素列を形成する。故に、印刷装置30は、副走査方向に複数の画素列が並ぶ画像を布上に形成する。
<電気的構成>
図3を参照し、印刷装置30の電気的構成を説明する。印刷装置30は、印刷装置30の制御を司るCPU(Central Processing Unit)40を備える。CPU40は、ROM(Read Only Memory)41、RAM(Random Access Memory)42、ASIC(Application Specific Integrated Circuit)43、ヘッド駆動部44、モータ駆動部45、表示制御部48、操作処理部50、及びUSB(Universal Serial Bus)インタフェース52に、バス55を介して接続されている。
ROM41は、印刷装置30の動作を制御するメインプログラム、初期値等を記憶している。また、ROM41は、後述する図14に示すLF(Line Feed)値テーブル411を記憶している。RAM42は、各種データを一時的に記憶する。ASIC43は、ヘッド駆動部44、及びモータ駆動部45を制御する。ヘッド駆動部44は、インクを吐出する吐出ヘッド35に接続する。ヘッド駆動部44は、吐出ヘッド35の各ノズル36に設けられた圧電素子又は発熱体を駆動する。モータ駆動部45は、主走査モータ46と副走査モータ47とを駆動する。主走査モータ46は、キャリッジ34を主走査方向に移動させる。副走査モータ47は、プラテン39を副走査方向に移動させる。表示制御部48は、CPU40による命令に応じてディスプレイ49の表示を制御する。ディスプレイ49には、印刷装置30の操作に関する各種画面、メッセージ等が表示される。操作処理部50は、操作パネル51に対する操作の入力を受け付ける。ユーザは、操作パネル51から各種情報、及び指示を入力できる。USBインタフェース52は、印刷装置30を端末装置1等の外部機器に接続する。なお、印刷装置30は、USBインタフェース52のかわりに、他の規格のシリアルインタフェースを備え、該規格のシリアルケーブルを介して端末装置1等の外部機器に接続するようにしてもよい。また、印刷装置30は、有線及び/又は無線通信モジュールを備え、インターネット、イントラネット等の各種のネットワークを介して端末装置1等の外部機器と接続されるようにしてもよい。
<RAM42の記憶領域>
図15を参照して、RAM42の記憶領域を説明する。RAM42の記憶領域には、受信バッファ420、印刷バッファ422、マスターポインタテーブル記憶エリア423、ワークエリア424、展開バッファ425、LF値テーブル記憶エリア426、白マスクテーブル記憶エリア427、カラーマスクテーブル記憶エリア428、白用最終ラスターデータバッファ429、カラー用最終ラスターデータバッファ430が存在する。受信バッファ420は、後述する印刷データ421を記憶する。印刷バッファ422、マスターポインタテーブル記憶エリア423は後述される。ワークエリア424は、各種データを一時的に記憶する。展開バッファ425は、後述するS14により、展開されたラスターデータを記憶する。LF値テーブル記憶エリア426は、後述するS153,S154でi設定される高濃度LF値テーブル及び通常LF値テーブルを記憶する。白マスクテーブル記憶エリア427は、後述するS103で設定される白マスクテーブルを記憶する。カラーマスクテーブル記憶エリア428は、後述するS109で設定されるカラーマスクテーブルを記憶する。白用最終ラスターデータバッファ429は、後述するS105で求められる白用最終ラスターデータを記憶する。カラー用最終ラスターデータバッファ430は、後述するS111で求められるカラー用最終ラスターデータを記憶する。
<印刷装置30の動作概要>
図4、図5を参照し、印刷装置30の動作概要を説明する。図4、図5は、プラテン39が副走査方向に移動することで、白インクを吐出する吐出ヘッド35Wが副走査方向に相対移動する様子を示す。以下では、説明を容易とするために、プラテン39が副走査方向に移動することを"吐出ヘッド35を副走査方向に相対移動する"と言い換える。又、特段の限定のない限り、"吐出ヘッド35を副走査方向に相対移動する"とは"吐出ヘッド35が後方に相対移動する"ことを示す。この場合、実際には、吐出ヘッド35を搭載したキャリッジ34に対してプラテン39が前方に移動する。
図4では、説明を容易とするため、それぞれの吐出ヘッド35のノズル36の個数は、一例の個数である420個よりも少ない、20個とする。図4は、ヘッドユニット100の白インクを吐出する4つの吐出ヘッド35Wのうち、1つの動作概要を説明する。吐出ヘッド35Wの20個のノズル36を、それぞれ、前側から順に、ノズルW1、W2、W3、W4、W5、W6、W7、W8、W8、W9、W10、W11、W12、W13、W14、W15、W16、W17、W18、W19、W20という。20個のノズル36のそれぞれの間隔は、これに限定されるものではないが、1/300(in)であり、"D"と表記する。吐出ヘッド35によって形成される画像の解像度は、これに限定されるものではないが、"1200(dpi)(主走査方向)×1200(dpi)(副走査方向)"とする。各方向における解像度"1200(dpi)"は"R"と表記する。図4では、主走査方向における1つの画素列に含まれるインクの吐出点(以下、"ドット"あるいは画素という。)の数は、 "16"とする。なお、R=1200(dpi)、D=1/300(in)であると、副走査方向に隣接するノズル36間の間隔Dに4ドット(D/(1/R)=D×R)が形成される。従って、副走査方向に於ける間隔Dの間には、1/R間隔で4ドットが形成される。副走査方向における、隣接するD×R(個)の画素を以下、"隣接D×R画素"という。本具体例では、D×R=(1/300)×1200=4ドットであるので、以下、"隣接D×R画素"は"隣接4画素"という。キャリッジ34の主走査方向の移動可能な範囲のうち、最も右側の位置は"初期位置"という。ヘッドユニット200の吐出ヘッド35C、35M、35Y、35Kも吐出ヘッド35Wと同様の構造である。
<白インクの画像が形成される場合>
以下では、図4、図5を参照し、白インクの画像(以下、"白インク画像"という。)が形成される場合の動作を説明する。ノズルWが白インクを1回で吐出できる最大の液滴量による1画素の濃度を100(%)とする。隣接4画素を構成するすべての画素を100(%)の濃度で印刷した場合は、隣接4画素の合計濃度が400(%)になる。隣接4画素の合計濃度の400(%)は、以下において、"単位濃度Pu(%)"という。つまり、隣接D×R画素である場合、単位濃度Pu(%)=(D×R)×100(%)となる。後述する印刷データ421が指定する隣接4画素の印刷濃度が単位濃度Pu(%)よりも高い濃度で指定される場合がある。単位濃度Pu(%)よりも高い濃度は"高濃度Ph(%)"という。以下、高濃度Ph(%)は、一例として、500(%)とする。以下の例では、CPU40は、後述する工程P11〜P15にて、1回で吐出できる最大の液滴量の白インクを夫々吐出するようにノズルW1〜W20を制御する。
図4に示すように、CPU40は、1つの吐出ヘッド35Wによって解像度R(dpi)で白インク画像を形成するために、白インクをノズルW1〜W20から布上に吐出させる(工程P11)。次に、CPU40は、吐出ヘッド35Wを主走査方向に1/R移動させる。CPU40は、吐出ヘッド35Wの主走査方向への移動、及び白インクの吐出を、15回繰り返させる。従って、印刷装置30は、16個のドットが1/Rずつの間隔にて主走査方向に配列された画素列を、1つの吐出ヘッド35Wによって布上に20本形成する。以下、工程P11においてノズルW1〜W20のそれぞれによって形成された20本の画素列は、画素列V11〜V120という。画素列V11〜V120は、副走査方向に間隔D分ずつの間隔で、布上に配列されている。
次に、CPU40は、吐出ヘッド35Wを工程P11の位置から副走査方向に、((N/(Ph/Pu))+n1k)×1/R(但し、n1kは絶対値|n1k|≦(D×R−1)の "0"を除く何れかの整数であり、k=1,2,・・・,(D×R−1)である。また、{n11,n11+n12,n11+n12+n13,・・・Σn1k(k=1,2,・・・,(D×R−1))}を(D×R)でそれぞれ割った余りの組み合わせが{0,1,2,・・,(D×R−1)}の条件を満たす。)分、相対移動させる。以下、副走査方向の相対移動距離((N/(Ph/Pu))+n1k)×1/Rは"L1k"と表記する。Nは、吐出ヘッド35のノズル36の個数を表す。
以下では、一例として、n1k=−1(k=1,2,・・・,(D×R−1))とする。n1kを、絶対値|n1k|≦(D×R−1)の"0"を除く何れかの自然数であり、{n11,n11+n12,n11+n12+n13,・・・Σn1k(k=1,2,・・・,(D×R−1))}をD×Rでそれぞれ割った余りの組み合わせが{0,1,2,・・・,(D×R−1)}の条件を満たすようにしている理由は後述する。
本具体例の場合は、n11=n12=n13=−1、N=20、Pu=400、Ph=500、R=1200であるので、
L11=L12=L13=((20/(500/400))−1)×1/1200
=((20/1.25)−1)×1/1200
=(16−1)×1/1200
=15×1/1200
従って、L11=L12=L13=15/1200(in)である。本具体例の場合、L11,L12,L13は同じ値なので、以下において単にL1と表記する。
次に、CPU40は、主走査方向に吐出ヘッド35Wを移動させる。CPU40は、主走査方向に1/Rずつの間隔にて、白インクをノズルW1〜W20から布上に吐出させる(工程P12)。以下、工程P12においてノズルW1〜W20のそれぞれによって形成された20本の画素列は、画素列V21〜V220という。画素列V21〜V220は、それぞれ、工程P11において形成された画素列V11〜V120のそれぞれから、L1分後方に形成される。
次に、CPU40は、吐出ヘッド35Wを工程P12の位置から副走査方向に、L1分相対移動させ、主走査方向に吐出ヘッド35Wを移動させて白インクをノズルW1〜W20から布上に吐出させる(工程P13)。以下、工程P13においてノズルW1〜W20のそれぞれによって形成された20本の画素列は、画素列V31〜V320という。画素列V31〜V320は、それぞれ、工程P12において形成された画素列V21〜V220のそれぞれから、L1分後方に形成される。
次に、CPU40は、吐出ヘッド35Wを工程P13の位置から副走査方向にL1分相対移動させ、主走査方向に吐出ヘッド35Wを移動させて白インクをノズルW1〜W20から布上に吐出させる(工程P14)。以下、工程P14においてノズルW1〜W20のそれぞれによって形成された20本の画素列は、画素列V41〜V420という。画素列V41〜V420は、それぞれ、工程P13において形成された画素列V31〜V320のそれぞれから、L1分後方に形成される。
工程P12〜工程P14によって、画素列V34と画素列V217との間の部分には、38本の画素列が1/Rの間隔で副走査方向に形成される。従って、画素列V34〜V217の部分は、白インクのドットが主査方向及び副走査方向に1/Rずつの間隔にて格子状に並び、解像度がRになる。本具体例では、このようにして、解像度1200(dpi)で、隣接4画素が形成される。従って、解像度R(dpi)で、隣接D×R画素を形成するためには、吐出ヘッド35Wの副走査方向へのL1k(k=1,2,・・・,(D×R−1)分の相対移動、及び吐出ヘッド35Wの主走査が、((D/(1/R))−1)=(D×R−1)回、繰り返しされる。つまり、本具体例では、上述の動作が、(1/300)×1200−1=3回繰り返しされる。
次いで、図5に示すように、CPU40は、吐出ヘッド35Wを工程P14の位置から副走査方向に、((N/(Ph/Pu))+n2+m)×1/R(但し、n2は、Σn1k(k=1,2,3,・・・・,(D×R−1))の符号を変換した数。mは、0≦m≦(D×R−1)の整数。)分、相対移動させる。本具体例では、吐出ヘッド35Wの副走査方向へのL1分の移動は、3回繰り返され、n11=n12=n13=−1であるので、n2=3である。また、本具体例では、m=0として以下説明する。"m"は、隣接D×R画素の内のいずれの画素列の濃度を高くするかを決める定数である。例えば、m=0の場合には、隣接D×R画素の一番前の画素に対応する画素列の濃度が高く200%となる。
以下、副走査方向の相対移動距離((N/(Ph/Pu))+n2+m)×1/Rは"L2"と表記する。本具体例の場合は、N=20、Pu=400、Ph=500、R=1200、n2=3、m=0である。従って、
L2=((20/(500/400))+3)
×1/1200
=((20/1.25)+3)×1/1200
=(16+3)×1/1200
=19×1/1200
=19/1200
つまり、L2=19/1200(in)である。
次いで、CPU40は、主走査方向に吐出ヘッド35Wを移動させる。CPU40は、主走査方向に1/Rずつの間隔にて、白インクをノズルW1〜W20から布上に吐出させる(工程P15)。以下、工程P15においてノズルW1〜W20のそれぞれによって形成された20本の画素列は、画素列V51〜V520という。画素列V51〜V520は、それぞれ、工程P14において形成された画素列V41〜V420のそれぞれから、L2分後方に形成される。
本具体例では、工程P15における、吐出ヘッド35WのノズルW1の副走査方向の位置は、工程P11における吐出ヘッド35WのノズルW17の位置と一致する。従って、工程P11において形成された画素列V117の位置に、画素列V51が形成される。つまり、画素列V117、V51に含まれるドットによって、1つの画素列(以下、「画素列M1」という。)が形成される。同様に、画素列V118の位置に、画素列V52が形成され、画素列V119の位置に、画素列V53が形成され、画素列V120の位置に、画素列V54が形成される。画素列V118、V52に含まれるドットによって、1つの画素列(以下、「画素列M2」という。)が形成され、画素列V119、V53に含まれるドットによって、1つの画素列(以下、「画素列M3」という。)が形成され、画素列V120、V52に含まれるドットによって、1つの画素列(以下、「画素列M4」という。)が形成される。上記のように、異なるノズル36を同一位置で走査させて1つの画素列を形成する方式は、一般的に「マルチパス方式」、または「シングリング」等といわれている。
<n1kおよびn2について>
n1kは、絶対値|n1k|≦3の何れかの"0"を除く整数であり、上記具体例では、一例として、n1k=−1(k=1,2,・・・,(D×R−1))としている。理由は、吐出ヘッド35Wを副走査方向へL1kの相対移動を(D×R−1)回行って、副走査方向における隣接D×R画素を形成するためである。また、n2を、n1kの総和Σn1kの符号を変換した数としている理由は、隣接D×R画素の内で一番前の画素に重ねてノズル36から白インクを吐出するためである。従って、mを"0"以外の値とすれば、隣接D×R画素の内の一番前以外の画素に重ねてノズル36から白インクを吐出することができる。尚、本具体例において、副走査方向の隣接4画素を高濃度Ph(%)(例えば500%)で印刷する場合には、L1の移動は3回、L2の移動は1回行う。高濃度Ph(%)の場合、L2の移動回数は、round [{(R×D−1)+(Ph−Pu)/100}/(D×R)]回となる。"round"は、小数点以下を切り捨てる関数である。例えば、round(1.23)=1となる。本具体例の場合の"n11、n12、n13、n2"の組み合わせは 、"−1,−1,−1,3" "−1,−2,1,2""−2,1,−2,3" "−2,−1,2,1" "−3,2,−1,2" "−3,1,1,1"等がある。
画素列M1は、印刷濃度100(%)で印刷された画素列V117の上に、印刷濃度100(%)で画素列V52が印刷される。従って、画素列M1の印刷濃度は、200(%)である。画素列V45、V39、V213、M1までの隣接4画素の画素列において、画素列V45、V39、V213の印刷濃度は夫々100(%)である。従って、画素列V45、V39、V213、M1の合計の印刷濃度は、500(%)である。同様に、画素列V46〜M2の隣接4画素の画素列、V47〜M3の隣接4画素の画素列、および画素列V48〜M4の隣接4画素の画素列においても、夫々、合計の印刷濃度は、500(%)である。
以上のように、工程P11〜工程P15において吐出ヘッド35Wから白インクが吐出されることによって、主走査方向に並ぶ白インクの16個のドットを含む画素列が、副走査方向に配列される。また、印刷装置30は、「マルチパス方式」により、5回の主走査方向への吐出ヘッド35Wの走査によるインクの吐出により、隣接4画素の画素列を500(%)の高濃度Ph(%)で印刷を行うことができる。図4に示すように、印刷装置30は、隣接4画素の画素列を合計濃度400(%)で印刷するには、印刷工程を工程P11からP14の4回行っている。また、図5に示すように、印刷装置30は、隣接4画素の画素列を合計濃度500(%)で印刷するには、印刷工程を工程P11からP15の5回行っている。故に、500(%)の高濃度Ph(%)の印刷時間は、400(%)の印刷時間の5/4の時間である。印刷装置30は、従来の高濃度Ph(%)の印刷方法では、例えば、副走査方向に隣接する4画素を500(%)の濃度で印刷するには、副走査方向への吐出ヘッドの相対移動制御を上述したように8回行っていた。また、マルチパス方式にて、副走査方向に隣接する4画素を500(%)の濃度で印刷し、高濃度Ph(%)の半分の濃度での印刷を同一の画素列に対して2回重ねて行う場合、同一の画素列に主走査を2回行うため、同一の画素列に主走査を1回しか行わないシングルパス方式の2倍の時間がかかる。従って、本実施形態では、高濃度Ph(%)の印刷時間を短縮することができる。
上記では、4つの吐出ヘッド35Wのうち1つの動作を説明した。実際には、図2に示すように、4つの吐出ヘッド35Wが主走査方向に並んだ状態でキャリッジ34に搭載される。各吐出ヘッド35Wは、主走査方向に移動しながらノズルW1〜W20から白インクを吐出することによって、20本の画素列を形成する。各吐出ヘッド35WのノズルW1〜W20によって形成される20本の画素列の位置は、副走査方向において一致する。故に、各吐出ヘッド35WのノズルW1〜W20によって形成される各画素列は、4つの吐出ヘッドの夫々によって形成された画素列が重ねられることによって、1つの画素列が形成される。
上述した方法を用いることで、{(R×D−1)+(Ph−Pu)/100}回の吐出ヘッド35Wの主走査方向及び副走査方向の相対移動又は移動させるだけで、高濃度Ph(%)の印刷を行える。上述の具体例では、(1200/300−1)+(500−400)/100=4回である。
<印刷データ>
図6を参照し、印刷データ421を説明する。印刷データ421は、図1に示す端末装置1から印刷装置30に、例えば、ケーブル9を介して送信される。印刷装置30のCPU40は、例えば、ケーブル9を介して印刷データ421を受信した場合、受信した印刷データ421をRAM42の受信バッファ420に記憶する。CPU40は、受信した印刷データ421に基づき、後述する図7に示すメイン処理を実行することによって、布に白インク画像及び/又はカラーインク画像を形成する。本実施形態では、布に白インク画像が形成される。
印刷データ421は、ヘッダー情報、ラスター情報、及び、フッター情報を含む。ヘッダー情報は、解像度、濃度情報、プラテン情報、及び、打ち方指定情報を含む。解像度は、印刷される画像の解像度R(dpi)を示す。以下では、解像度R(dpi)は、"1200(dpi)"であるものとする。各ノズル36間の間隔Dの一例は、"1/300(in)"であり、R=4/Dの関係を満たし、m=0として説明する。濃度情報は、白インク画像を印刷する濃度を示す。プラテン情報は、プラテン支持台38に支持されたプラテン39の領域を、座標情報によって示す。打ち方指定情報は、印刷データ421に基づいて印刷される画像が、(1)白インク画像のみを含む、(2)カラーインク画像のみを含む、(3)白インク画像、及びカラーインク画像を含む、のいずれかを示す。本実施形態では、打ち方指定情報は、(1)白インク画像のみを含むことを示し、布に白インク画像が形成される。
ラスター情報は、画素列番号、色情報、レフトマージン、ライトマージン、及び、ラスターデータを含む。画素列番号は、副走査方向に1/Rずつの間隔で並ぶ複数の画素列のそれぞれに、前側から順番に"1""2""3"・・・のように割り当てられる番号を示す。つまり、画素列番号は、それぞれ、印刷媒体において対応する画素列が形成される位置を示す。
色情報は、対応する画素列番号の画素列を形成するために使用されるインクの色を示す情報である。色情報として、本具体例では、白1〜4、シアン、マゼンタ、イエロー、及び、ブラックが画素列番号に対応付けられている。1つの画素列は、4つの吐出ヘッド35W(白1〜4)、吐出ヘッド35C(シアン)、35M(マゼンタ)、35Y(イエロー)、35K(ブラック)の合計8つの吐出ヘッド35からインクが吐出されることによって形成される。従って、図6で示されるように、各画素列番号に対して、本具体例では、8つの異なる色情報(白1〜4、シアン、マゼンタ、イエロー、ブラック)が対応付けられている。
レフトマージン及びライトマージンは、ラスターデータに対応つけられており、ガイドレール33に設けられた図示外のエンコーダに基づいて、プラテン39の位置を特定するための情報である。レフトマージンは、画素列番号に対応する画素列の左端の位置を、プラテン39の左端からの距離によって示す。ライトマージンは、画素列番号に対応する画素列の右端の位置を、プラテン39の右端からの距離によって示す。
ラスターデータは、主走査で画素列を形成するためにノズル36からインクを吐出させるか否かを示す。ラスターデータは、"1""0"の何れかが配列されたビット情報である。ラスターデータのビット"1"は、ノズル36からインクのドットが吐出されることを示す。ラスターデータのビット"0"は、ノズル36からインクのドットが吐出されないことを示す。
<印刷バッファ>
図9を参照し、印刷バッファ422を説明する。本実施形態では、RAM42にX個(X=(R×D)+(Ph−Pu)/100)の印刷バッファ422がある。以下の説明では、番号Xの印刷バッファ422は、印刷バッファ[X]422と表示する。図9は、印刷バッファ[X]422の一例である、印刷バッファ[1]422を示す。印刷バッファ[1]422には、走査前LF値、走査後LF値、最終レフトマージン、最終ライトマージン、及び、リードポインタテーブル[8][420]が格納される。走査前LF値、走査後LF値、最終レフトマージン、最終ライトマージンは後述する。リードポインタテーブル[8][420]には、後述する図10に示すマスターポインタテーブル423に含まれる8×420個のポインタが設定される。CPU40は、後述するメイン処理のS1の初期化処理によって、走査前LF値、走査後LF値、最終レフトマージン、最終ライトマージンに"0"を設定する。以下、上記の白マスクテーブル、及びカラーマスクテーブル添え字を、"インデックス"という。
<メイン処理>
図7〜図14を参照し、CPU40が実行するメイン処理を説明する。CPU40は、例えば、図2に示す操作パネル51の図示しない電源スイッチがオンにされた場合に、ROM41からメインプログラムを読み出してメイン処理を実行する。
図7に示すように、CPU40は、はじめに初期化処理を行う(S1)。初期化処理の一例を具体的に説明する。CPU40は、全ての吐出ヘッド35をキャップによって覆った状態とする。CPU40は、キャリッジ34を初期位置に配置する。CPU40は、プラテン39を最も後側の位置まで移動させる。CPU40は、RAM42に記憶された変数を初期化する。CPU40は、例えば、主走査の回数(ラスターデータが全て"0"で主走査されなかった回数も含む)を示すカウンタの値"Cnt"に"1"を設定する。カウンタの値Cntは印刷バッファ[X]422のXに対応する。CPU40は、マスク値の420個の配列である白マスクテーブル[420]、及び、カラーマスクテーブル[420]のそれぞれのマスク値を格納するフィールドを空欄にする。CPU40は、X個の印刷バッファ[X]422(X=1,2,・・・)を初期化する。つまり、CPU40は、走査前LF値、走査後LF値、最終レフトマージン、最終ライトマージンに"0"を設定すると共に、リードポイントテーブル[8][420]のポインタを格納する各フィールドに"0"を設定する。
図7に示すように、CPU40は、印刷指示を受けたかを判定する(S11)。より具体的には、CPU40は、例えば、図3に示す操作パネル51の図示しない印刷ボタンが押下され、端末装置1から印刷指示の信号を受けた場合に印刷指示を受けたと判定する。CPU40は、印刷指示を受けていないと判定した場合(S11:NO)、S11に戻す。CPU40は、印刷指示を継続して監視する。CPU40は、印刷指示を受けたと判定した場合(S11:YES)、S12に進む。CPU40は、受信バッファ420に図6に示す印刷データ421が記憶されているか判定する(S12)。CPU40は、受信バッファ420に印刷データ421が記憶されていないと判定した場合(S12:NO)、印刷データ421が受信バッファ420に記憶されていないことを示すエラー通知画面を、図3に示すディスプレイ49に表示させる(S39)。CPU40はS11に戻す。
CPU40は、印刷データ421が受信バッファ420に記憶されていると判定した場合(S12:YES)、図6に示す印刷データ421のうちラスター情報を展開する処理を開始する(S14)。ラスター情報を展開する処理は、メイン処理と並列に実行される別の処理によって、メイン処理と同時に実行される。展開されたラスター情報は、RAM42の展開バッファ425に記憶される。
次いで、CPU40は、高濃度判定処理を行う(S15)。図13を参照し、高濃度判定処理を説明する。CPU40は、印刷データ421のヘッダー情報から濃度情報を取得する(S151)。次いで、CPU40は、濃度情報に高濃度Ph(%)で印刷することを示す高濃度情報が有るかを判定する(S152)。高濃度情報の一例は、500(%)、または600(%)で印刷することを示す情報である。CPU40は、高濃度情報が有ると判定した場合には(S152:YES)、後述する図14に示すLF値テーブル411から濃度情報に応じて、(Cnt−1)(但し、Cnt≧2)を(D×R)で除算したときの余りの値に対応したLF値の組合せを、高濃度LF値テーブルとして、RAM42のLF値テーブル記憶エリア426に記憶する(S153)。例えば、高濃度情報が500%で印刷することを示す情報であり、D×R=4の場合には、CPU40は、(Cnt−1)(但し、Cnt≧2)を"4"で除算したときの余りの値"1,2,3,0"に対応する、LF値の組み合わせ"335,335,335,339"を、高濃度LF値テーブルとして、LF値テーブル記憶エリア426に記憶する。
また、CPU40は、高濃度情報が有ると判定しない場合には(S152:NO)、LF値テーブル411から通常濃度(具体例では400%)での印刷用に、(Cnt−1)(但し、Cnt≧2)を(D×R)で除算したときの余りの値に対応したLF値の組合せを、通常LF値テーブルとして、RAM42のLF値テーブル記憶エリア426に記憶する(S154)。CPU40は、S153、またはS154の終了後に、図7に示すメイン処理のS16に進む。
<LF値テーブル411>
、図14を参照して、ROM41に記憶されたLF値テーブル411を説明する。図14に示すLF値テーブル411は、隣接D×R画素が隣接4画素であり、n11=n12=n13=−1の場合の一例である。LF値テーブル411では、解像度、濃度情報、及び、LF値が対応付けられている。高濃度情報の500(%)で印刷することを示す情報は、隣接4画素の画素列を高濃度Ph(%)=500(%)で印刷することを示す。高濃度情報の600(%)で印刷することを示す情報は、隣接4画素の画素列を高濃度Ph(%)=600(%)で印刷することを示す。濃度情報の通常は、隣接4画素を単位濃度Pu(%)=400(%)で印刷することを示す。LF値は、本具体例では、(Cnt−1)(但し、Cnt≧2)を"4"で除算した場合の余りの値"1","2","3","0"のそれぞれに対応付けられている。
LF値テーブル411のLF値について説明する。本具体例では、解像度R(dpi)=1200(dpi)の画像が形成される。また、前述のように各ノズル36間に3ドット({(D/(1/R))−1}=D×R−1)が形成される。従って、解像度R(dpi)=1200(dpi)で、隣接4画素を形成するために、LF値は、以下のようにあらかじめ設定されている。まず、基準LF値が算出される。基準LF値は、ノズル36の数Nである"420"を、単位濃度Pu(%)に対する高濃度Ph(%)の割合(Ph/Pu)で除算した値である。基準LF値は、マルチパス方式で高濃度Ph(%)の印刷を行う場合のLF量の平均値である。例えば、高濃度Ph(%)が500(%)である場合には、基準LF値は、"420/(500/400)=336"である。本具体例では、n11=n12=n13=−1なので、基準LF値から"1"が減算された"335"が、(Cnt−1)(但し、Cnt≧2)を"4"で除算した場合の余りの値"1","2","3"に夫々対応付けられている。本具体例では、n2=3なので、基準LF値に"3"が加算された"339"が、該余りの値"0"に対応付けられている。高濃度Ph(%)が600(%)である場合には、基準LF値は、"420/(600/400)=280"である。本具体例では、n11=n12=n13=−1であるので、基準LF値から"1"が減算された"279"が、該余りの値"1","2","3"に夫々対応付けられている。本具体例では、n2=3であるので、基準LF値に"3"が加算された"283"が、該余りの値"0"に対応付けられている。また、濃度情報が通常の場合には、基準LF値は"420"である。本具体例では、n11=n12=n13=−1なので、基準LF値から"1"が減算された"419"が、該余りの値"1""2""3"に夫々対応付けられている。また、本具体例では、n2=3なので、基準LF値に"3"が加算された"423"が、該余りの値"0"に対応付けられている。
図7を参照して、メイン処理のS16において、CPU40は、RAM42に記憶された図10に示すマスターポインタテーブル423を初期化する(S16)。より具体的には、図10に示すように、マスターポインタテーブル423は、ヘッド種別、ノズル、及び、ポインタを対応付けている。ヘッド種別は、キャリッジ34に搭載される合計8つの吐出ヘッド35(4つの吐出ヘッド35W(白1〜4)、吐出ヘッド35C(シアン)、35M(マゼンタ)、35Y(イエロー)、35K(ブラック))を示す。ノズルは、8つの吐出ヘッド35のそれぞれの420個のノズル36(以下、ノズル[1]、ノズル[2]・・・ノズル[420]という。)を示す。各ノズル36に対応付けられているポインタは、展開バッファ425に記憶されたラスター情報のうち、対応するノズル36が主走査方向の1列分の画素列を形成するためのラスターデータを示すポインタである。
一例として、CPU40は、マスターポインタテーブル423のヘッド種別"白1"のノズル[1]に対応するポインタとして、展開バッファ425に記憶されたラスター情報のうち画素列番号"1"、且つ、色情報"白1"に対応するラスターデータを示すポインタを対応付ける。CPU40は、マスターポインタテーブル423の"白1"のヘッド種別のノズル[2]に対応するポインタとして、展開バッファ425に記憶されたラスター情報のうち画素列番号"5"、且つ、色情報"白1"に対応するラスターデータを示すポインタを対応付ける。この理由は、吐出ヘッド35Wのノズル36間の間隔はDであり、画素列の副走査方向の間隔1/Rの4倍である。従って、ノズル[2]に対応する画素列番号は、5(=4+1)となるためである。
以下、CPU40は、同様の方法で、マスターポインタテーブル423のヘッド種別"白1"のノズル[n](n=1、2、・・・420)に対応するポインタとして、ラスター情報のうち画素列番号"4(n−1)+1"、且つ、色情報"白1"に対応するラスターデータを示すポインタが対応付けられる。CPU40は、マスターポインタテーブル423の"白2〜白4"のヘッド種別のノズル[1]〜[420]に対応するポインタを、上記と同様の方法で対応付ける。本実施形態では、白インク画像のみを形成するので、カラーに対応するポインタの説明は割愛するが、ポインタの対応付けの方法は基本的には同じである。
図7に示すように、CPU40は、S16によってマスターポインタテーブル423を初期化した後、図11と図12に示すデータ取得処理を実行する(S17)。図11と図12を参照して、データ取得処理が、説明される。CPU40は、データ取得処理では、Cnt回目にキャリッジ34を主走査方向に移動させるときに使用するラスターデータを示すポインタを、印刷バッファ[Cnt]422のリードポインタテーブル[8][420]に以下のように格納する。
具体的な処理の流れを説明する。CPU40は、展開バッファ425に記憶されたラスター情報に、図10に示すマスターポインタテーブル423の8×420個のポインタが示すラスターデータが全て含まれているか判定する(S81)。CPU40は、全て含まれていないと判定した場合(S81:NO)、データ取得処理を終了する。但し、メイン処理のS12において印刷データが有るか判定し、印刷データが有ると判定された場合のみ、メイン処理のS14以降を実行する。従って、データ取得処理のS81において、NOと判定されることは通常ないが、特別な異常があれば、NOと判定される。
CPU40は、全て含まれていると判定した場合(S81:YES)、S83に進む。CPU40は、マスターポインタテーブル423の8×420個のポインタを、印刷バッファ[Cnt]422のリードポインタテーブル[8][420]として設定する(S83)。
次に、CPU40は、マスターポインタテーブル423の8×420個のポインタを、以下のようにして更新する。CPU40は、LF値を、マスターポインタテーブル423の8×420個のポインタに加算する(S85)。より具体的には、CPU40は、図13の高濃度判定処理で、ROM41に記憶されているLF値テーブル411に基づいて、(Cnt−1)を(D×R)(本具体例では、"4")で除算したときの余りの値に対応するLF値を特定する。CPU40は、特定したLF値を、図10に示すマスターポインタテーブル423の8×420個のポインタに加算する。なお、(Cnt−1)を(D×R)で除算した余りの値が"0"の場合には、特定したLF値に定数m(m=0,1,2,・・・,(D×N−1))を加算した値を、図10に示すマスターポインタテーブル423の8×420個のポインタに加算する。例えば、濃度情報が500(%)の場合には、図14のLF値テーブル411には、(Cnt−1)を"4"で除算した場合の余りの値"1""2""3""0"に対応するLF値"335""335""335""339"が設定されている。従って、CPU40は、(Cnt−1)を"4"で除算した場合の余りの値が"1"〜"3"の場合には、LF値"335"をマスターポインタテーブル423の8×420個のポインタに加算する。また、CPU40は、(Cnt−1)を"4"で除算した場合の余りの値が"0"の場合には、LF値"339"と定数mを加算した値をマスターポインタテーブル423の8×420個のポインタに加算する。
CPU40は、S83によって印刷バッファ[Cnt]422のリードポインタテーブル[8][420]に設定された8×420個のポインタが示す8×420個のラスターデータを特定する。CPU40は、特定した8×420個のラスターデータのビットの全てが、"0"であるか判定する(S87)。CPU40は、8×420個のラスターデータのビットの全てが"0"であると判定した場合には(S87:YES)、S89に進む。CPU40は、印刷バッファ[Cnt]422の走査前LF値に、S85によってポインタに加算した値を加算する(S89)。8×420個のビットの全てが"0"であるラスターデータに基づいて印刷処理が実行されたとき、吐出ヘッド35からインクは吐出されない。CPU40は、カウンタの値Cntに"1"を加算してカウンタの値Cntを更新する(S91)。CPU40は、S83に戻す。
一方、CPU40は、8×420個のラスターデータのビットの全てが"0"ではないと判定した場合(S87:NO)、印刷バッファ[Cnt]422の走査後LF値に、S85によってポインタに加算した値を設定する(S93)。CPU40は、処理を図12に示すS101に進める。S83〜S93によって算出された走査前LF値及び走査後LF値は、画素列が形成されない列を飛ばし、画素列が形成される列までキャリッジ34を副走査方向に相対移動させるときの移動後の位置を特定するために使用される。
図12に示すように、CPU40は、受信バッファ420に記憶された印刷データ421のヘッダー情報のうち、打ち方指定情報に、白インク画像を含むかを判定する(S101)。白インク画像を含むと判定される場合は、ヘッダー情報に(1)白インク画像のみを含む、又は、(3)白インク画像及びカラーインク画像を含むことを示す情報が含まれている場合である。CPU40は、白インク画像を含まないと判定した場合(S101:NO)、S107に進む。
CPU40は、白シンク画像を含むと判定した場合(S101:YES)、白マスクテーブル設定を行う(S103)。より具体的には、CPU40は、白インクを全てのノズル[1]〜[420]から吐出する場合には、RAM42の白マスクテーブル記憶エリア427に記憶された白マスクテーブル「1」〜[420]に「0xffff」(「1111111111111111」)をマスク値として設定する。
CPU40は、白のラスターデータのビットを、白マスクテーブルを用いてAND演算する(S105)。より具体的には、CPU40は、印刷バッファ[Cnt]422のリードポインタテーブル[8][420]に設定された8×420個のポインタによって示される8×420個のラスターデータを特定する。CPU40は、特定したラスターデータのうち、白インクを吐出する4つの吐出ヘッド35Wに対応する4×420個のラスターデータを選択する。CPU40は、選択した4×420個のラスターデータのうちノズル[1]〜[420]に対応するラスターデータのそれぞれのビットと、白マスクテーブル[1]〜[420]のそれぞれに設定されたマスク値「0xffff」とのAND演算を実行する。ラスターデータのビット数が、「16」よりも大きい場合、CPU40は、ラスターデータの17番目以降のビットに、白マスクテーブルに設定された値を前の値から繰り返し適用し、AND演算を実行する。CPU40は、AND演算の結果を、白用最終ラスターデータとして、RAM42内の白用最終ラスターデータバッファ[4][420]429に格納する。次いでCPU40はS107に進む。
CPU40は、受信バッファ420に記憶された印刷データ421のヘッダー情報のうち、打ち方指定情報として(2)カラーインク画像を含むことを示す情報、あるいは、(3)白インク画像及びカラーインク画像を含むことを示す情報が含まれているか判定する(S107)。CPU40は、(1)白インク画像のみを含むことを示す情報が含まれていると判定した場合には(S107:NO)、S113に進む。
CPU40は、印刷バッファ[Cnt]422の「最終レフトマージン」と「最終ライトマージン」とを設定する(S113)。より具体的には、CUP40は、印刷バッファ[Cnt]422のリードポインタテーブル[8][420]に設定された8×420個のポインタによって示される8×420個のラスターデータを特定する。CPU40は、展開バッファ425に記憶されたラスター情報のうち、特定されたラスターデータに対応付けられたレフトマージン及びライトマージンを、すべて抽出する。CPU40は、すべてのレフトマージンのうち最も小さいレフトマージンを、印刷バッファ[Cnt]422の「最終レフトマージン」として設定する。また、CPU40は、すべてのライトマージンのうち最も小さいライトマージンを、印刷バッファ[Cnt]422の「最終ライトマージン」として設定する。CPU40はデータ取得処理を終了し、図7に示すメイン処理のS19に進む。
CPU40は、(2)又は(3)を示す情報が、打ち方指定情報に含まれていると判定した場合(S107:YES)、カラーマスクテーブルを設定する(S109)。次いで、CPU40は、カラーマスクテーブルのマスク値と、ラスターデータのそれぞれのビットとのAND演算を実行する(S111)。CPU40は、AND演算の結果を、カラー用最終ラスターデータとして、RAM42内のカラー用最終ラスターデータバッファ[4][420]430に格納する。
CPU40は、最終レフトマージン、最終ライトマージン設定を行う(S113)。CPU40は、データ取得処理を終了し、図7に示すメイン処理のS19に進む。CPU40は、印刷開始位置へプラテン39の移動を開始させる(S19)。より具体的には、CPU40は、印刷バッファ[Cnt=1]の走査前LF値分、プラテン39の移動を開始させる。CPU40は、4つの吐出ヘッド35W、及び、吐出ヘッド35C、35M、35Y、35Kのそれぞれの420個のノズル36を覆った状態のキャップを、開放させる(S21)。CPU40は、キャリッジ34をフラッシング位置に移動させる(S23)。フラッシング位置とは、図示外のフラッシング受けが設けられた位置である。
CPU40は、S19によって開始させたプラテン39の走査前LF値分の移動が完了したか判定する(S25)。CPU40は、プラテン39の走査前LF値分の移動が完了していないと判定した場合(S25:NO)、S25に戻す。CPU40は、プラテン39の走査前LF値分の移動が完了したかを、継続して監視する。CPU40は、プラテン39の走査前LF値分の移動が完了したと判定した場合(S25:YES)、フラッシング処理を実行する(S27)。
CPU40は、フラッシング処理(S27)の終了後、カウンタの値Cntに"1"を加算してカウンタの値Cntを更新する(S29)。CPU40は、"1"が加算された更新後のカウンタの値Cntに基づき、データ取得処理を実行する(S31)。データ取得処理は、図7に示すS17によって実行されたデータ取得処理と同一であるので、説明は省略する。CPU40は処理を図8に示すS41に進める。
図8に示すように、CPU40は、最終レフトマージン、及び最終ライトマージンによって示されるそれぞれの位置の座標を、キャリッジ34の移動元及び移動先の座標として算出する(S41)。より具体的には、CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終レフトマージン、及び最終ライトマージン夫々を取得する。CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終レフトマージンの内で小さい方の最終レフトマージンを選択する。同様に、CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終ライトマージンの内で小さい方の最終ライトマージンを選択する。これにより、キャリッジ34の移動を効率化できる。CPU40は、選択した最終レフトマージン、及び最終ライトマージンによって示されるそれぞれの位置の座標を、キャリッジ34の移動元及び移動先の座標として算出する。次に、CPU40は、算出した座標、印刷バッファ[Cnt]422のリードポインタテーブル[8][20]、及び、主走査方向を、印刷方向としてASIC43の記憶部に設定する(S43)。
CPU40は、ASIC43に信号を出力することによって、キャリッジ34の主走査方向の移動を開始させる(S45)。より具体的には、ASIC43は、図3に示すヘッド駆動部44及びモータ駆動部45を制御する。モータ駆動部45は、ASIC43の制御によって、キャリッジ34の主走査方向への移動を開始させる。ヘッド駆動部44は、ASIC43の制御によって、主走査方向に1/Rずつの間隔にて白インクをノズル36から吐出させる。ASIC43は、白用最終ラスターデータに基づいて、ヘッド駆動部44を制御し、ラスターデータのビットが"1"のタイミングで吐出ヘッド35から白インクを吐出させる。一方、ASIC43は、白用最終ラスターデータに基づいて、ヘッド駆動部44を制御し、ラスターデータのビットが"0"のタイミングでは、吐出ヘッド35から白インクを吐出させないようにする。同様に、ASIC43は、カラー用最終ラスターデータに基づいて、ヘッド駆動部44を制御し、ラスターデータのビットが"1"のタイミングで吐出ヘッド35からカラーインクを吐出させる。一方、ASIC43は、カラー用最終ラスターデータに基づいて、ヘッド駆動部44を制御し、ラスターデータのビットが"0"のタイミングでは、吐出ヘッド35からカラーインクを吐出させないようにする。
CPU40は、キャリッジ34の主走査方向の移動が完了したか判定する(S47)。CPU40は、キャリッジ34の主走査方向の移動が完了していないと判定した場合(S47:NO)、S47に戻す。CPU40は、キャリッジ34の主走査方向の移動が完了したと判定した場合(S47:YES)、S49に進む。
CPU40は、プラテン39の移動を開始させる(S49)。より具体的には、CPU40は、印刷バッファ[Cnt]422の走査前LF値と走査後LF値を取得する。CPU40は、取得した走査前LF値と、走査後LF値を加算し、プラテン39の移動後の位置を特定する。CPU40は、移動後の位置へプラテン39の移動を開始させる。次に、CPU40は、プラテン39の移動が完了したか判定する(S50)。CPU40は、プラテン39の移動が完了していないと判定した場合(S50:NO)、S50に戻す。CPU40は、プラテン39の移動が完了したと判定した場合(S50:YES)、S51に進む。
CPU40は、未処理の印刷バッファ422が有るか判定する(S51)。CPU40は、未処理の印刷バッファ422が無いと判定した場合には(S51:NO)、S69に進む。一方、CPU40は、未処理の印刷バッファ422が有ると判定した場合には(S51:YES)、カウンタの値Cntに"1"を加算しカウンタの値Cntを更新する(S53)。CPU40は、カウンタの値Cntに"1"が加算された更新後のカウンタの値Cntに基づき、図12、図13に示すデータ取得処理を実行する(S55)。データ取得処理は、図7に示すS17によって実行されたデータ取得処理と同一であるので、説明は省略する。CPU40はS59に進む。
CPU40は、最終レフトマージン及び最終ライトマージンによって示されるそれぞれの位置の座標を、キャリッジ34の移動元及び移動先の座標として算出する(S59)。より具体的には、CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終レフトマージン及び最終ライトマージンを夫々取得する。CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終レフトマージンの内で小さい方の最終レフトマージンを選択する。同様に、CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終ライトマージンの内で小さい方の最終ライトマージンを選択する。これにより、キャリッジ34の移動を効率化できる。CPU40は、選択した最終レフトマージン及び最終ライトマージンによって示されるそれぞれの位置の座標を、キャリッジの移動元及び移動先の座標として算出する。次に、CPU40は、算出した座標、印刷バッファ[Cnt]422のリードポインタテーブル[8][420]、及び、主走査方向を、印刷方向としてASIC43の記憶部に設定する(S61)。
CPU40は、S47によってキャリッジ34の主走査方向の移動が完了したと判定してから、所定時間が経過したか判定する(S63)。CPU40は、所定時間が経過していないと判定した場合(S63:NO)、S63に戻す。CPU40は、所定時間が経過したと判定した場合(S63:YES)、S65に進む。CPU40は、ASIC43に信号を出力することによって、キャリッジ34の主走査方向への移動を開始させる(S65)。CPU40はS47に戻す。
CPU40は、S69において、プラテン39を最も前側の位置まで移動を開始させる(S69)。CPU40は、キャリッジ34をメンテナンス位置に移動させる(S71)。メンテナンス位置とは、図示外のワイパーが設けられた位置である。CPU40はワイピングを実行する(S73)。ワイピングとは、ノズル36に付着するインクを、ワイパーにより掻き取る処理である。CPU40は、全ての吐出ヘッド35をキャップによって覆った状態とする(S75)。CPU40は、プラテン39の移動が完了したか判定する(S77)。CPU40は、プラテン39の移動が完了していないと判定した場合(S77:NO)、S77に戻す。CPU40は、プラテン39の移動が完了したと判定した場合(S77:YES)、メイン処理を終了する。
<主たる作用、効果>
以上説明したように、CPU40は、印刷バッファ[1]422に基づき、吐出ヘッド35を印刷開始位置に副走査方向に相対移動させる(メイン処理のS19)。次に、CPU40は、印刷バッファ[1]422に基づき、吐出ヘッド35を主走査方向に移動させ、且つ、主走査方向に1/Rずつ間隔を空けて白インクをノズル36から吐出させる(メイン処理のS45)。次に、CPU40は、吐出ヘッド35を副走査方向に相対移動させる(メイン処置のS49)。例えば、CPU40は、隣接4画素の画素列の印刷濃度の合計を高濃度500(%)で印刷する場合には、印刷バッファ[2]422〜[4]422のリードポインタテーブル「8」[420]の各ポインタに、図14に示すLF値テーブル411のLF値"335"を加算する(データ取得処理のS85)。LF値は、画素数に相当する。従って、CPU40は、(335/R)分ずつ副走査方向に吐出ヘッド35を相対移動させる。次に、CPU40は、印刷バッファ[2]422〜[4]422に基づき、吐出ヘッド35を主走査方向に移動させて白インクをノズル36から吐出させる(メイン処理のS65)。このようにして形成された白インクの画素列は、副走査方向に1/Rの間隔で配列される。
次に、CPU40は、印刷バッファ[5]422のリードポインタテーブル「8」[420]の各ポインタに、LF値テーブル411のLF値"339"と定数mを加算する(データ取得処理のS85)。CPU40は、吐出ヘッド35を副走査方向に相対移動させるときの移動後の位置を、印刷バッファ[5]422のリードポインタテーブル「8」[420]の各ポインタに加算した値(LF値"339"と定数mを加算した値)に基づいて特定する(メイン処理のS49)。CPU40は、印刷バッファ[4]422に基づいてインクが吐出されたときの吐出ヘッド35の位置から、((339+m)/R)分、副走査方向に吐出ヘッド35を相対移動させる(メイン処理のS49)。次に、CPU40は、印刷バッファ[5]422に基づき、吐出ヘッド35を主走査方向に移動させて白インクをノズル36から吐出させる(メイン処理S65)。故に、CPU40は、印刷バッファ[m]422に基づいてインクが吐出された画素列と同一の画素列に、印刷バッファ[5]422に基づいてインクを吐出する。従って、該画素列の印刷濃度は、200(%)になる。印刷バッファ[2]422〜[4]422に基づき、形成された画素列の印刷濃度は、100(%)であるので、CPU40は、隣接4画素の画素列の印刷濃度を500(%)にできる。
以上説明したように、CPU40は、隣接4画素の画素列の単位濃度Pu(%)に対して、高濃度Ph(%)で印刷を行う場に、「マルチパス方式」により、5回の主走査方向への吐出ヘッド35Wの走査によるインクの吐出により、隣接4画素の画素列を500(%)の高濃度Ph(%)で印刷を行わせることができる。図4に示すように、印刷装置30は、隣接4画素の画素列を合計濃度400(%)で印刷するには、印刷工程を工程P11からP14の4回行っている。また、図5に示すように、印刷装置30は、隣接4画素の画素列を合計濃度500(%)で印刷するには、印刷工程を工程P11からP15の5回行っている。故に、500(%)の高濃度Ph(%)の印刷時間は、400(%)の印刷時間の5/4の時間である。これに対して、従来の500(%)の高濃度Ph(%)の印刷方法では、上述したように、隣接4画素を400(%)で印刷する時間の2倍の印刷時間が掛かっていた。つまり、隣接4画素を500%の高濃度Ph(%)で印刷する場合、従来では8回主走査する必要があった。従って、本実施形態では、高濃度Ph(%)の印刷時間は従来よりも短縮することができる。
<変形例1>
白インクが吐出される吐出ヘッド35Wの複数のノズル36の一部において、目詰まりが発生する場合がある。白インクが吐出される吐出ヘッド35Wの複数のノズル36の方が、カラーインクの吐出ヘッド35C、35M、35Y、35Kの複数のノズル36よりも、目詰まりが発生し易い。上述のように、印刷装置30に装着されたインクカートリッジのインクは、本具体例では、キャリッジ34に対して前側から供給される。このため、白インクの吐出ヘッド35Wの複数のノズル36のうち、キャリッジ34の後側に配置されたノズル36程、目詰まりの発生する可能性が高くなる。例えば、420個のノズル36のうち、前側から順に1〜360番目のノズル36において、白インクが適切に吐出されるのに対し、361〜420番目のノズル36において、目詰まりによって白インクが適切に吐出されない場合がある。
具体的には、CPU40は、白マスクテーブル「1」〜[360]に「0xEEEE」をマスク値として設定し、白マスクテーブル[361]〜[420]に「0x1111」をマスク値として設定する(データ取得処理のS103)。CPU40は、設定された白マスクテーブルのマスク値と、ラスターデータのそれぞれのビットとのAND演算を実行する(データ取得処理のS105)。この場合には、図14に示すLF値は、(Cnt−1)を"4"で除算したときの余りの値"1,2,3,0"に対応して、濃度情報が、500(%)の場合には、LF値"287,287,287,291"であり、濃度情報が、600(%)の場合には、LF値"239,239,239,243"である。この場合の基準LF値は、濃度を異ならせる前後のノズル36の数をそれぞれMとして、(N−M)/(Ph/Pu)となる。従って、単位濃度Pu(%)が400%、高濃度Ph(%)が500(%)、ノズル数N=420、M=60の場合の基準LF値は、以下のように算出されている。
420−60=360
360/(500/400)=288
このように算出した値"288"を基準LF値、n11=n12=n13−1、n2=3"として、上記LF値"287","287","287","291"がそれぞれ求められる。同様に、濃度情報が600(%)の場合の基準LF値は、以下のように算出されている。
420−60=360
360/(600/400)=240
このように算出した値"240"を基準LF値、n11=n12=n13=−1、n2=3として、上記LF値"239","239","239","243"がそれぞれ求められる。こうすることで、目詰まりが抑制できる。また、上述の実施形態と同様に、5回の主走査で隣接4画素を500%の高濃度Ph(%)にすることができる。つまり、隣接D×R画素を高濃度Ph(%)(但し、(j−1)×Pu<Ph<j×Pu)(j≧2の整数))にするのに、従来だと"j×(D×R)"回の主走査が必要であった。本変形例1では、"j×(D×R)"回未満で高濃度Ph(%)の印刷が可能となる。
また、CPU40は、ラスターデータに基づいて制御を行うことによって、1〜360番目のノズル36から白インクを吐出させる回数の比率と、361〜420番目のノズル36から白インクを吐出させる回数の比率とを異ならせることも可能である。この場合には、ノズルによって、100(%)でのインクの吐出が難しい場合に、該ノズルのインクの吐出回数の比率は減らすことができる。故に、該ノズルからのインクの吐出不良の影響は低減できる。具体的には、1〜360番目のノズル36から白インクを吐出させる回数の比率を全体の75%とし、361〜420番目のノズル36から白インクを吐出させる回数の比率を全体の25%とする。このように、1〜360番目のノズル36から吐出させる回数の比率を、361〜420番目のノズル36から吐出させる回数の比率よりも高くする。こうすることで、361〜420番目のノズル36の目詰まりによって白インクの吐出量が少なくなった場合でも、白インクの画素列は適切に形成できる。また、1〜60番目の各ノズル36から白インクを吐出させる回数の比率は全体の75%で一定とし、且つ、361〜420番目の各ノズル36から白インクを吐出させる回数の比率は全体の25%で一定とする。つまり、1〜60番目のノズル36から白インクを吐出させる回数の比率と、361〜420番目のノズル36から白インクを吐出させる回数の比率との合計は100%となる。また、61〜360番目の各ノズル36から白インクを吐出させる回数は全体の100%で一定とする。このように、CPU40は、ノズル36からの白インクの吐出を容易に制御できる。この場合においても、基準LF値に基づいて、副走査方向にノズルを相対移動させることで、従来の主走査の回数"j×(D×R)"未満で高濃度Ph(%)の印刷が可能となる。
<変形例2>
上記変形例1では、CPU40は、1〜60番目のノズル36から白インクを吐出させる回数の比率を全体の75%とし、61〜360番目のノズル36から白インクを吐出させる回数の比率を全体の100%とし、361〜420番目のノズル36から白インクを吐出させる回数の比率を全体の25%とした。これに対し、CPU40は、それぞれの吐出の回数の比率を、上記と異なる比率としてもよい。CPU40は、例えば、1〜60番目のノズル36から白インクを吐出させる回数の比率を全体の50%とし、361〜420番目のノズル36から白インクを吐出させる回数の比率を全体の50%として、一致させてもよい。この場合には、ノズルから吐出されるインクの吐出回数の比率が100%以外の部分は、インクの吐出回数の比率が50%である。従って、該ノズルに吐出不良が生じても、形成される画素列への影響は、50%以下である。従って、バンディングが生じる可能は低減される。この場合においても、基準LF値に基づいて、副走査方向にノズルを相対移動させることで、従来の主走査の回数"j×(D×R)"未満で高濃度Ph(%)の印刷が可能となる。
<変形例3>
CPU40は、ノズル36に応じて白インクを吐出させる回数の比率が全体の100%の部分と、100%以外の部分とに異ならせ、100%以外の部分の白インクを吐出させる回数の比率は、ノズル36に応じて異ならせてもよい。画像が形成される部分の外側の画素列と、内側の画素列では、インクの乾燥速度が異なる。従って、白インクを吐出させる回数の比率が100%の以外の部分の比率をノズル36に応じて異ならせることにより、インクの乾燥速度は均一化させることができる。故に、インクの発色は均一化される。この場合においても、基準LF値に基づいて、副走査方向にノズルを相対移動させることで、従来の主走査の回数"j×(D×R)"未満で高濃度Ph(%)の印刷が可能となる。
<変形例4>
吐出ヘッド35Wに設けられる420個のノズル36には、図4、図5に示すインク供給路60により、白インクが供給される。白インクは、顔料を含む沈降性のインクであるため、インク供給路から遠い一部のノズルにおいて、吐出不良が発生する場合がある。従って、インク供給路60に近い1〜60番目のノズル36から白インクを吐出させる回数の比率を全体の75%とし、インク供給路60から遠い361〜420番目のノズル36白インクを吐出させる回数の比率を全体の25%として、ノズル36のインク供給路60からの距離に応じて、異ならせてインクを吐出する。この場合には、インク供給路60から遠い361〜420番目のインクの吐出量が低減するので、インク供給路から遠いノズルの吐出不良は低減される。この場合においても、基準LF値に基づいて、副走査方向にノズルを相対移動させることで、従来の主走査の回数"j×(D×R)"未満で高濃度Ph(%)の印刷が可能となる。
本開示は上記実施形態及び各変形例に限定されず、種々の変更が可能である。上記において、印刷装置30は、4つの吐出ヘッド35Wのノズル36から白インクを吐出した。印刷装置30は、吐出ヘッド35C、35M、35Y、35Kのそれぞれのノズル36から、シアンインク、マゼンタインク、イエローインク、及び、ブラックインクを吐出した。これに対し、4つの吐出ヘッド35W、及び、吐出ヘッド35C、35M、35Y、35Kのノズル36から吐出されるインクの色は、上記実施形態における色と異なる色でもよい。
上記実施形態及び具体例では、印刷装置30は、キャリッジ34の副走査方向のL1の相対移動を3回連続して行った後に、副走査方向のL2の相対移動を行った。これに限定されるものではなく、例えば、キャリッジ34の副走査方向のL2の相対移動を最初に行い、その後に副走査方向のL1の相対移動を行うようにしても良い。また、キャリッジ34の副走査方向のL2の相対移動の前後に副走査方向のL1の相対移動を行うようにしても良い。
上記実施形態及び各変形例では、下地用のインクとして白インクを用いて説明した。しかしながら、これに限定されるわけではなく、例えば、下地用のインクは、印刷媒体の色を抜く抜染剤でもよい。また、下地用のインクは、カラーインクを鮮やかに発色させる前処理剤でもよい。前処理剤の一例は、CaCl2等の金属塩である。
上記における吐出ヘッド35の数(8個)、ノズル36の数(420個)、及び、副走査方向に隣接するノズル36間の間隔(1/300(in))は、一例であり、他の値でもよい。
4個の吐出ヘッド35W、及び、吐出ヘッド35C,35M,35Y,35Kの配置は、上記の例に限定されず、他の配置であってもよい。吐出ヘッド35Wの数は4個に限定されず、1〜3個、及び、5個以上でもよい。キャリッジ34に吐出ヘッド35Kは設けられなくてもよい。4つの吐出ヘッド35Wに含まれるノズル36の数は、吐出ヘッド35C、35M、35Y、35Kのそれぞれに含まれるノズル36の数より少なくてもよい。吐出ヘッド35Wの420個のノズル36のうち、目詰まりが発生し易いノズル36の個数は60個(361〜420番目のノズル36)に限定されず、他の数でもよい。
上記実施形態及び各変形例は、吐出ヘッド35を移動させずにプラテン39を移動させて印刷を実行する場合にも適用できる。つまり、印刷装置30は、プラテン39を移動させて、吐出ヘッド35を主走査方向及び副走査方向に相対移動させるものであればよい。また、上記実施形態及び変形例は、吐出ヘッド35を主走査方向及び副走査方向に移動させて印刷を実行する場合にも適用できる。
上記実施形態及ぶ各変形例では、データ取得処理のS113において、CPU40は、印刷バッファ[Cnt]422のリードポインタテーブル[8][420]に設定された8×420個のポインタによって示される8×420個のラスターデータを特定する。次に、CPU40は、展開バッファ425に記憶されたラスター情報のうち、特定されたラスターデータに対応付けられたレフトマージン及びライトマージンを、すべて抽出する。次に、CPU40は、すべてのレフトマージンのうち最も小さいレフトマージンを、印刷バッファ[Cnt]422の「最終レフトマージン」として設定する。また、CPU40は、すべてのライトマージンのうち最も小さいライトマージンを、印刷バッファ[Cnt]422の「最終ライトマージン」として設定する。次に、メイン処理のS41において、CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終レフトマージン、及び最終ライトマージン夫々を取得する。次に、CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終レフトマージンの内で小さい方の最終レフトマージンを選択する。同様に、CPU40は、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422の最終ライトマージンの内で小さい方の最終ライトマージンを選択する。以上のようにして、CPU40は、最終レフトマージンと最終ライトマージンを選択したが、以下のような方法で選択(取得)しても良い。
CPU40は、データ取得処理のS113において、印刷バッファ[Cnt−1]422と印刷バッファ[Cnt]422のリードポインタテーブル[8][420]に夫々設定された8×420個のポインタによって示される8×420個のラスターデータを夫々特定する。次に、CPU40は、展開バッファ425に記憶されたラスター情報のうち、特定されたラスターデータに対応付けられたレフトマージン及びライトマージンを、すべて抽出する。次に、CPU40は、すべてのレフトマージンのうち最も小さいレフトマージンを、印刷バッファ[Cnt]422の「最終レフトマージン」として設定する。また、CPU40は、すべてのライトマージンのうち最も小さいライトマージンを、印刷バッファ[Cnt]422の「最終ライトマージン」として設定する。次に、メイン処理のS41において、CPU40は、印刷バッファ[Cnt]422の最終レフトマージン、及び最終ライトマージン夫々を取得する。
図3に示すCPU40は、不図示の不揮発性の記憶装置(例えば、フラッシュメモリ)に格納されている各種プログラムをRAM42にロードし、RAM42をワーキングメモリとして使いながら各種処理を実行する。
なお、上記動作を実行するための各種プログラムを、インターネット上のサーバ装置が有するディスク装置等に記憶しておき、印刷装置30のコンピュータに各種プログラムをダウンロード等するものとしてもよい。
なお、実施形態に応じて、ROM41、RAM42以外の他の種類の記憶装置が利用されてもよい。例えば、印刷装置30は、CAM(Content Addressable Memory)、SRAM(Static Random Access Memory)、SDRAM(Synchronous Dynamic Random Access Memory)などの記憶装置を有してもよい。
なお、実施形態に応じて、印刷装置30の電気的構成は図3とは異なっていてもよく、図3に例示した規格・種類以外のその他のハードウェアを印刷装置30に適用することもできる。
例えば、図3に示す印刷装置30の制御部は、ハードウェア回路により実現されてもよい。具体的には、CPU40の代わりに、FPGA(Field Programmable Gate Array)などのリコンフィギュラブル回路や、ASICなどにより、制御部が実現されてもよい。もちろん、CPU40とハードウェア回路の双方により、制御部が実現されてもよい。
<その他>
印刷装置30は、「画像形成装置」の一例である。CPU40は、「制御部」の一例である。白インクは、「インク」の一例である。ノズル[1]〜[420]は、「複数のノズル」の一例である。メイン処理のS17,S19,S29,S31,S41,S43,S45,S49,S53,S55,S59,S61,S65の処理は、「吐出制御」の一例である。高濃度判定処理のS152の処理は、「判定制御」の一例である。吐出ヘッド35Wは、「ヘッド」の一例である。