(57)【特許請求の範囲】
【請求項１】
画像を構成する画素毎の階調を表わす画像データに応じて、複数のノズルで各ラスタを形成して印刷媒体上に画像を印刷する印刷装置であって、
前記画像データを入力する入力手段と、
前記印刷媒体上の画素と該画素にドットを形成するノズルとの対応関係と、該ノズルにおけるインクの吐出量のノズルごとの増減とを記憶している記憶手段と、
着目した画素の階調を表わす画像データに、下記誤差拡散手段によって処理済みの画素について求めた誤差データを加えて拡散誤差補正データを生成する手段と、
該拡散誤差補正データを閾値と比較することにより、ドットを形成するか否かを表わす結果値を求める手段と、
前記対応関係に基づいて当該着目した画素に対応したノズルを特定する処理と共に、前記結果値が、前記着目した画素におけるドットの形成に対応した値である場合には、該ノズルについて前記記憶されたインク吐出量の増減に従って、前記結果値を求めた画素に記録されるとみなした濃度である濃度評価値を増減補正する処理と、前記結果値が、前記着目した画素におけるドットの形成に対応した値でない場合には、前記濃度評価値の前記増減補正を行なわない処理とからなる増減補正処理を実施する手段と、
該増減補正処理された濃度評価値と前記着目した画素の画像データとの差分である濃度誤差を求め、該濃度誤差から、前記着目した画素の周辺画素に拡散する誤差データを求める誤差拡散手段と、
前記ノズルを用いて、前記印刷媒体上に前記多値化の結果に応じたドットを形成する手段と
を備えた印刷装置。
【請求項２】
画像を構成する画素毎の階調を表わす画像データに応じて、複数のノズルで各ラスタを形成して印刷媒体上に画像を印刷する印刷方法であって、
前記印刷媒体上の画素と該画素にドットを形成するノズルとの対応関係と、該ノズルにおけるインクの吐出量のノズルごとの増減とを記憶しておき、
前記画像データを入力し、
着目した画素の階調を表わす画像データに、下記誤差拡散処理によって処理済みの画素について求めた誤差データを加えて拡散誤差補正データを生成し、
該拡散誤差補正データを閾値と比較することにより、ドットを形成するか否かを表わす結果値を求め、
前記対応関係に基づいて当該着目した画素に対応したノズルを特定する処理と共に、前記結果値が、前記着目画素におけるドットの形成に対応した値である場合には、該ノズルについて前記記憶されたインク吐出量の増減に従って、前記結果値を求めた画素に記録されるとみなした濃度である濃度評価値を増減補正する処理と、前記結果値が、前記着目した画素におけるドットの形成に対応した値でない場合には、前記濃度評価値の前記増減補正を行なわない処理とからなる増減補正処理を実施し、
該増減補正処理された濃度評価値と前記着目した画素の画像データとの差分である濃度誤差を求め、該濃度誤差から、前記着目した画素の周辺画素に拡散する誤差データを求める誤差拡散処理を行ない、
前記ノズルを用いて、前記印刷媒体上に前記多値化の結果に応じたドットを形成する
印刷方法。
【請求項３】
複数のノズルで各ラスタを形成して印刷媒体上に画像を印刷するプリンタに、多値化済みのデータを供給する処理を、コンピュータに実現させるプログラムを記録した記録媒体であって、
前記印刷媒体上の画素と該画素にドットを形成するノズルとの対応関係と、該ノズルにおけるインクの吐出量のノズルごとの増減とを、メモリに記憶する処理と、
前記画像データを入力するための処理と、
着目した画素の階調を表わす画像データに、下記誤差拡散処理によって処理済みの画素について求めた誤差データを加えて拡散誤差補正データを生成する処理と、
該拡散誤差補正データを閾値と比較することにより、ドットを形成するか否かを表わす結果値を求める処理と、
前記対応関係に基づいて当該着目した画素に対応したノズルを特定する処理と共に、前記結果値が、前記着目画素におけるドットの形成に対応した値である場合には、該ノズルについて前記記憶されたインク吐出量の増減に従って、前記結果値を求めた画素に記録されるとみなした濃度である濃度評価値を増減補正する処理と、前記結果値が、前記着目した画素におけるドットの形成に対応した値でない場合には、該増減補正の処理を行なわない処理とからなる増減補正処理を実施する処理と、
該増減補正処理が実施された濃度評価値と前記着目した画素の画像データとの差分である濃度誤差を求め、該濃度誤差から、前記着目した画素の周辺画素に拡散する誤差データを求める誤差拡散処理と、
前記多値化の結果を前記プリンタに供給する処理と
を前記コンピュータに実現させるためのプログラムをコンピュータに読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インクを吐出してドットを形成することにより画像を印刷する印刷装置および印刷方法に関し、詳しくはインクの吐出量に変動がある場合に該変動の影響を補償可能な印刷装置および印刷方法に関する。
【０００２】
【従来の技術】
従来より、コンピュータの出力装置として、ヘッドに備えられた複数のノズルから吐出される数色のインクによりドットを形成して画像を記録するインクジェットプリンタが提案されており、コンピュータ等が処理した画像を多色多階調で印刷するのに広く用いられている。かかるプリンタでは、通常、各画素ごとにはドットのオン・オフの２階調しか採り得ない。従って、原画像データの有する階調をドットの分散性により表現するための画像処理、いわゆるハーフトーン処理を施した上で画像を印刷する。
【０００３】
近年では、階調表現を豊かにするために、各ドットごとにオン・オフの２値以上の階調表現を可能としたインクジェットプリンタ、いわゆる多値プリンタが提案されている。例えば、インク量やインク濃度を変化させることにより各ドットごとに３種類以上の濃度を表現可能としたプリンタや各画素ごとに複数のドットを重ねて形成することにより多階調を表現可能としたプリンタである。かかるプリンタであっても各画素単位では原画像データの有する階調を十分表現し得ないため、ハーフトーン処理が必要となる。
【０００４】
ハーフトーン処理には、種々の方法があり、例えば、ディザ法や誤差拡散法と呼ばれる方法がある。ディザ法は所定の閾値をマトリックス状に配置したディザマトリックスの各閾値と画像データの階調値とを各画素ごとに比較して、両者の大小関係に基づいてドットのオン・オフを判定する。誤差拡散法は、所定の閾値と各画素との大小関係に基づいてドットのオン・オフを判定するとともに、該判定に応じて各画素ごとに生じた濃度誤差を周辺の画素に所定の割合で配分して局所的な濃度誤差を極小にする。
【０００５】
【発明が解決しようとする課題】
しかし、従来の多値化方法は、画像データの階調値と閾値との大小関係によってのみドットのオン・オフを判定するものであった。一般にインクジェットプリンタでは、各ノズルごとにインクの吐出量に変動が生じることが多い。例えば、インク量がＩＷ（ナノグラム）のドットを形成する場合に、あるノズルではＩＷ−α（ナノグラム）のインクしか吐出されず、別のノズルではＩＷ＋α（ナノグラム）のインクが吐出されることがある。インク吐出量の変動は、形成されるドットの面積の変動、そして該ドットにより表現される濃度の変動として現れる。従って、インク量が少なく吐出されるノズルによってドットが形成された領域では、画像の濃度は本来表現すべき濃度よりも低くなり、逆にインク量が多く吐出されるノズルによってドットが形成された領域では、画像の濃度は本来表現すべき濃度よりも高くなる。この結果、インクの吐出量にバラツキがある場合には、適切な階調表現がなされない可能性があり、画質を損ねる可能性があった。
【０００６】
インクを吐出してドットを形成するプリンタでは、ドットを視認性を下げ、粒状感が滑らかで高画質な印刷を実現するために、各ドットのインク量を低減し、面積の小さいドットを形成する傾向にある。ところが、全てのノズルについて一定のインク量で吐出してこのように小さいドットを形成することは非常に困難であり、ノズル径などについての製造時の誤差によってインクの吐出量が変動しやすい。かかる変動が画質に与える影響は既に説明した通りである。このように小さなドットを形成する近年のプリンタは、高画質を指向しているため、上述した画質の低下は看過しえない。
【０００７】
また、インクの吐出量のバラツキに起因する画質の低下は、いわゆる多値プリンタにおいて特に重要な課題ともなっていた。多値プリンタとは、径の異なるドットや濃度の異なるドットを用いて各画素ごとに３値以上の階調を表現可能なプリンタをいう。かかるプリンタは、階調表現を豊かにすることで高画質な印刷を実現しようとするものである。例えば、径およびインク濃度の組み合わせにより、各画素ごとに１０段階の階調値が表現可能な多値プリンタにおいて、上述したインクの吐出量のバラツキが存在した場合を考える。インクの吐出量が±１０％の幅で変動したとすれば、各画素ごとに本来表現すべき階調値よりも一段階低い階調値や一段階高い階調値に対応するドットが形成される可能性がある。かかる状態では、各画素ごとに用意されている１０段階の階調を十分に活用することができず、本来の階調表現を十分に実現することができない。
【０００８】
この発明は、上述の課題を解決するためになされたものであり、インクを吐出してドットを形成する印刷装置および印刷方法において、各ノズルごとのインクの吐出量の変動に起因する画質の低下を抑制し、高画質な印刷を可能とする技術を提供することを目的とする。
【０００９】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明は、次の構成を採用した。
本発明の印刷装置は、
画像を構成する画素毎の階調を表わす画像データに応じて、複数のノズルで各ラスタを形成して印刷媒体上に画像を印刷する印刷装置であって、
前記画像データを入力する入力手段と、
前記印刷媒体上の画素と該画素にドットを形成するノズルとの対応関係と、該ノズルにおけるインクの吐出量のノズルごとの増減とを記憶している記憶手段と、
着目した画素の階調を表わす画像データに、下記誤差拡散手段によって処理済みの画素について求めた誤差データを加えて拡散誤差補正データを生成する手段と、
該拡散誤差補正データを閾値と比較することにより、ドットを形成するか否かを表わす結果値を求める手段と、
前記対応関係に基づいて当該着目した画素に対応したノズルを特定する処理と共に、前記結果値が、前記着目した画素におけるドットの形成に対応した値である場合には、該ノズルについて前記記憶されたインク吐出量の増減に従って、前記結果値を求めた画素に記録されるとみなした濃度である濃度評価値を増減補正する処理と、前記結果値が、前記着目した画素におけるドットの形成に対応した値でない場合には、前記濃度評価値の前記増減補正を行なわない処理とからなる増減補正処理を実施する手段と、
該増減補正処理された濃度評価値と前記着目した画素の画像データとの差分である濃度誤差を求め、該濃度誤差から、前記着目した画素の周辺画素に拡散する誤差データを求める誤差拡散手段と、
前記ノズルを用いて、前記印刷媒体上に前記多値化の結果に応じたドットを形成する手段と
を備えることを要旨とする。
【００１０】
本発明の印刷方法は、
画像を構成する画素毎の階調を表わす画像データに応じて、複数のノズルで各ラスタを形成して印刷媒体上に画像を印刷する印刷方法であって、
前記印刷媒体上の画素と該画素にドットを形成するノズルとの対応関係と、該ノズルにおけるインクの吐出量のノズルごとの増減とを記憶しておき、
前記画像データを入力し、
着目した画素の階調を表わす画像データに、下記誤差拡散処理によって処理済みの画素について求めた誤差データを加えて拡散誤差補正データを生成し、
該拡散誤差補正データを閾値と比較することにより、ドットを形成するか否かを表わす結果値を求め、
前記対応関係に基づいて当該着目した画素に対応したノズルを特定する処理と共に、前記結果値が、前記着目画素におけるドットの形成に対応した値である場合には、該ノズルについて前記記憶されたインク吐出量の増減に従って、前記結果値を求めた画素に記録されるとみなした濃度である濃度評価値を増減補正する処理と、前記結果値が、前記着目した画素におけるドットの形成に対応した値でない場合には、前記濃度評価値の前記増減補正を行なわない処理とからなる増減補正処理を実施し、
該増減補正処理された濃度評価値と前記着目した画素の画像データとの差分である濃度誤差を求め、該濃度誤差から、前記着目した画素の周辺画素に拡散する誤差データを求める誤差拡散処理を行ない、
前記ノズルを用いて、前記印刷媒体上に前記多値化の結果に応じたドットを形成すること
を要旨とする。
【００１１】
かかる印刷装置および印刷方法では、各ノズルごとにインクの吐出量の変動を予め記憶し、該記憶に基づいてインク吐出量の変動を補償するように多値化を行って画像を印刷する。従来の多値化手段は、前述の通り、画像データの階調値と閾値の大小関係によってのみドットのオン・オフを判定していたが、本発明の印刷装置および印刷方法では、各ノズルのインクの吐出量の変動をも考慮してドットのオン・オフを判定することになる。
【００１２】
この結果、本発明の印刷装置および印刷方法によれば、インクの吐出量に変動があっても、適切な階調表現をすることができ、高画質な印刷を実現することができる。インクの吐出量の変動は、種々の形式により予め記憶しておくことが可能である。例えば、各ノズルが本来吐出すべきインク量からの変動を記憶するものとしてもよいし、全ノズルから吐出されるインク量の平均値からの変動を記憶するものとしてもよい。前者の形式で記憶されたインクの吐出量の変動を補償する多値化を実行した場合には、画像は適切な濃度を表現可能になる点で好ましい。後者の形式で記憶されたインクの吐出量の変動を補償する多値化を実行した場合には、印刷された画像全体の濃度は本来表現されるべき濃度から若干シフトした濃度になる可能性があるものの、画像全体での濃淡のムラを解消することができるため画質を向上することができる。後者の場合には、多値化における補償量を抑制することができるため、インクの吐出量の変動を補償しやすいという利点がある。
【００１３】
上記印刷装置において、インクの吐出量の変動を補償した多値化手段としては、種々の手段を採用することができる。
例えば、前記多値化手段は、
前記対応関係に基づいて、前記画像データの階調値を補正する階調値補正手段と、
該補正された階調値を用いて前記画像データの多値化を行う手段とを有するものとすることができる。
【００１４】
こうすれば、インクの吐出量の変動に基づいて画像データを補正することにより、結果として適切な階調表現を実現可能な多値化を行うことができる。例えば、インクの吐出量が本来の値よりも少ないノズルで形成される画素については、画像データの階調値を高く補正する。こうすれば、そのノズルで記録する複数の画素についてはドットが形成される確率が高くなる。つまり、上記ノズルで記録する複数の画素中に形成されるドットの数は、補正前の画像データを用いた場合に比べて増加する。このようにインクの吐出量の少ないノズルで形成される画素については、ドットの数を増やすことで、インクの吐出量の不足分を補償することができる。インクの吐出量の多いノズルで形成される画素については、逆に画像データの階調値を低く補正し、ドットが形成される確率を低下させることにより、インクの吐出量の余剰分を補償することができる。なお、多値化を行う手段としては、誤差拡散法やディザ法など周知の種々の手段を適用することが可能である。
【００１５】
なお、一般に多値化手段では各画素ごとに画像データの階調値と所定の閾値との大小関係によってドットのオン・オフを判定する。従って、上述の手段のように画像データを補正する方法に代えて、閾値を補正するものとしてもよい。
つまり、前記多値化手段は、
前記対応関係に基づいて、前記画像データの多値化に関与する所定の閾値を補正する閾値補正手段と、
該補正された閾値を用いて前記画像データの多値化を行う手段とを有するものとすることもできる。
【００１６】
この場合には、画像データを補正する場合と補正の方法が異なる。インクの吐出量が少ないノズルにより形成される画素では、ドットを形成しやすくするため、閾値が低くなるように補正する。逆に吐出量が多いノズルで形成される画素では、ドットを形成しにくくするため、閾値が高くなるように補正する。もちろん、この場合にも多値化手段としては誤差拡散法やディザ法など種々の方法を適用することができる。
【００１７】
また、本発明の印刷装置において、
前記多値化手段は、
前記対応関係に基づいて、多値化の結果に応じて各画素ごとに生じる濃度誤差を補正する誤差補正手段と、
該補正された濃度誤差を用いて、誤差拡散法により多値化を行う手段とを有するものとすることもできる。
【００１８】
こうすれば、多値化手段として誤差拡散法を適用している場合に画像全体として濃度誤差のない高画質な印刷を実現することができる。誤差拡散法では、周知の通り、ドットのオン・オフの判定結果に基づいて各画素ごとに実際に表現される濃度と、画像データの階調値に基づいて表現されるべき濃度との誤差を算出し、その誤差を未処理の画素に拡散することによって局所的な濃度誤差を小さくしている。通常は、実際に表現される濃度の評価値を予め定めた一定値とした上で誤差を算出している。これに対し、本発明の印刷装置では、例えばインクの吐出量が少ないノズルで形成された画素については小さい濃度評価値を用いて誤差の算出を行い、インクの吐出量が多いノズルで形成された画素については大きい濃度評価値を用いて誤差の算出を行う。もちろん、一定の濃度評価値に基づいて一旦誤差を算出した後、インクの吐出量に応じて該誤差を補正するものとしてもよい。このようにして誤差を算出することにより、インクの吐出量に応じた適切な誤差量を求めることができるため、画像全体として本来表現すべき濃度を適切に表現することが可能となる。
【００１９】
一方、本発明において画素と該画素にドットを形成するノズルとの対応関係を特定する特定手段としても種々の態様を採ることができる。例えば、上記対応関係を予めテーブルとして記憶するものとしてもよい。印刷画像のサイズや解像度、及びいわゆるオーバラップ印刷において各ラスタの形成に要する主走査の回数（以下、パス数という）等の印刷条件を選択した場合、それらの組み合わせに応じて、どのノズルがどの画素を印刷するかが決定される。従って、上記印刷条件の組み合わせに応じて画素とノズルとの対応関係をテーブルとして予め記憶しておくことにより、上記特定手段を実現することができる。かかる特定手段を採用した場合には、誤差拡散法およびディザ法などいかなる多値化手段をも柔軟に適用することができる利点がある。
【００２０】
その他、前記特定手段として次のような態様を採るものとしても良い。
つまり、前記特定手段は、前記画素に対応した画像データを各ノズルに供給する順序に配列することにより前記対応関係を特定する手段であり、
前記多値化手段は、
前記配列と同じ順序で配列された閾値マトリックスを用いてディザ法により多値化を行う手段であるものとしてもよい。
【００２１】
ノズルを用いて画像を印刷するためには、ドットのオン・オフを指示するデータを各ノズルに供給する必要がある。このデータは、通常、各画素ごとにドットのオン・オフを判定する多値化を実行した後に供給される。これに対し、上記発明の印刷装置では、多値化を行う前に、画像データを各ノズルに供給する順序に配列する。また、ディザ法で用いられる閾値マトリックスに記憶された閾値データも同様の順序に配列する。この配列は、先に示した印刷条件の組み合わせに応じて変化する。このようにデータを配列すれば、各ノズルと画像データとの対応関係を特定することができる。画像データをかかる配列とした上で、同じ順序で配列された閾値マトリックスを用いてディザ法によりインクの吐出量の変動を補償した多値化を行えば、画像の階調値を適切に表現した高画質な印刷を実現することができる。かかる印刷装置では、多値化手段としてディザ法のみを適用可能である。上記方法により画像データとノズルとの対応関係を特定するものとすれば、該対応関係を予め記憶するテーブルを用意する必要がないため、メモリが節約できるとともに、処理を高速化できるという利点もある。
【００２２】
また、本発明は、次に示すプログラムを記録した記録媒体としての態様を採ることもできる。
本発明の記録媒体は、
インクを吐出してドットを形成可能な複数のノズルにより印刷媒体上に画像を印刷するプリンタに供給するデータを生成するためのプログラムをコンピュータに読みとり可能に記録した記録媒体であって、
画像データを入力する機能と、
印刷媒体上の画素と該画素にドットを形成するノズルとの対応関係を特定する機能と、
該特定された対応関係に基づいて、各ノズルごとに用意されたインクの吐出量の変動に関するデータを反映して、該変動を補償するように前記画像データの多値化を行う機能と、
該多値化によって生成されたデータを出力する機能とを実現するプログラムを記録した記録媒体である。
【００２３】
上記の各記録媒体に記録されたプログラムが、前記コンピュータに実行されることにより生成されたデータをプリンタに供給すれば、先に説明した本発明の印刷装置を実現することができる。
【００２４】
インクの吐出量は個々の印刷装置ごとに相違する。従って、上記記録媒体に記録されたプログラムは、例えば印刷装置内の不揮発メモリに記憶されたインクの吐出量の変動に関するデータを読み込んで、該変動を補償する多値化を実現するものとすることが好ましい。
【００２５】
また、インクを吐出してドットを形成可能な複数のノズルにより印刷媒体上に画像を印刷するプリンタに供給するデータを生成する際に提供されるデータをコンピュータに読みとり可能に記録した記録媒体であって、
前記各ノズルごとにインクの吐出量の変動に関するデータを記録した記録媒体とすることもできる。
【００２６】
印刷装置の使用が開始された後にノズル部分を交換した場合などには、インクの吐出量の変動が製造時とは異なる値になる場合がある。かかる場合に、交換部品としてのノズルとともに提供される上記記録媒体を使用すれば、インクの吐出量の変動量に関するデータを随時適切に更新することができ、高画質な印刷を維持することができる。
【００２７】
なお、記憶媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。また、コンピュータに上記の画像処理装置の多値化機能を実現させるコンピュータプログラムを通信経路を介して供給するプログラム供給装置としての態様も含む。
【００２８】
なお、本発明は各画素ごとにドットのオンおよびオフの２値しか採り得ない２値印刷装置に限らず、各画素ごとに３値以上の濃度を表現可能な多値印刷装置にも適用可能である。３値以上の濃度を表現可能な印刷装置としては、径の異なるドットを形成可能な印刷装置や、濃度の異なるインクを備える印刷装置や、各画素ごとにドットを重ねて形成することを許容した印刷装置などがある。
【００２９】
【発明の実施の形態】
以下、本発明の実施の形態について、実施例に基づき説明する。
（１）装置の構成：
図１は、本発明の一実施例としての印刷装置の構成を示すブロック図である。図示するように、コンピュータ９０にスキャナ１２とカラープリンタ２２とが接続されている。所定のプログラムがロードされ実行されるコンピュータ９０とプリンタ２２とを併せて印刷装置が構成される。スキャナ１２は印刷装置に画像データを提供するひとつのデバイスとして接続されているものであり、印刷装置に必須の要素ではない。このコンピュータ９０は、プログラムに従って画像処理に関わる動作を制御するための各種演算処理を実行するＣＰＵ８１を中心に、バス８０により相互に接続された次の各部を備える。ＲＯＭ８２は、ＣＰＵ８１で各種演算処理を実行するのに必要なプログラムやデータを予め格納しており、ＲＡＭ８３は、同じくＣＰＵ８１で各種演算処理を実行するのに必要な各種プログラムやデータが一時的に読み書きされるメモリである。入力インターフェイス８４は、スキャナ１２やキーボード１４からの信号の入力を司り、出力インタフェース８５は、プリンタ２２へのデータの出力を司る。ＣＲＴＣ８６は、カラー表示可能なＣＲＴ２１への信号出力を制御し、ディスクコントローラ（ＤＤＣ）８７は、ハードディスク１６やフレキシブルドライブ１５あるいは図示しないＣＤ−ＲＯＭドライブとの間のデータの授受を制御する。ハードディスク１６には、ＲＡＭ８３にロードされて実行される各種プログラムやデバイスドライバの形式で提供される各種プログラムなどが記憶されている。
【００３０】
このほか、バス８０には、シリアル入出力インタフェース（ＳＩＯ）８８が接続されている。このＳＩＯ８８は、モデム１８に接続されており、モデム１８を介して、公衆電話回線ＰＮＴに接続されている。コンピュータ９０は、このＳＩＯ８８およびモデム１８を介して、外部のネットワークに接続されており、特定のサーバーＳＶに接続することにより、画像処理に必要なプログラムをハードディスク１６にダウンロードすることも可能である。また、必要なプログラムをフレキシブルディスクＦＤやＣＤ−ＲＯＭによりロードし、コンピュータ９０に実行させることも可能である。
【００３１】
図２は本印刷装置のソフトウェアの構成を示すブロック図である。コンピュータ９０では、所定のオペレーティングシステムの下で、アプリケーションプログラム９５が動作している。オペレーティングシステムには、ビデオドライバ９１やプリンタドライバ９６が組み込まれており、アプリケーションプログラム９５からはこれらのドライバを介して、プリンタ２２に転送するための画像データＦＮＬが出力されることになる。画像のレタッチなどを行うアプリケーションプログラム９５は、スキャナ１２から画像を読み込み、これに対して所定の処理を行いつつビデオドライバ９１を介してＣＲＴディスプレイ２１に画像を表示している。スキャナ１２から供給されるデータＯＲＧは、カラー原稿から読みとられ、レッド（Ｒ），グリーン（Ｇ），ブルー（Ｂ）の３色の色成分からなる原カラー画像データＯＲＧである。
【００３２】
このアプリケーションプログラム９５が、印刷命令を発すると、コンピュータ９０のプリンタドライバ９６が、画像データをアプリケーションプログラム９５から受け取り、これをプリンタ２２が処理可能な信号（ここではシアン、マゼンダ、イエロー、ブラックの各色についての多値化された信号）に変換している。図２に示した例では、プリンタドライバ９６の内部には、解像度変換モジュール９７と、色補正モジュール９８と、色補正テーブルＬＵＴと、ハーフトーンモジュール９９と、ラスタライザ１００および印刷条件入力モジュール１０１とが備えられている。
【００３３】
解像度変換モジュール９７は、アプリケーションプログラム９５が扱っているカラー画像データの解像度、即ち単位長さ当たりの画素数をプリンタドライバ９６が扱うことができる解像度に変換する役割を果たす。こうして解像度変換された画像データはまだＲＧＢの３色からなる画像情報であるから、色補正モジュール９８は色補正テーブルＬＵＴを参照しつつ、各画素ごとにプリンタ２２が使用するシアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の各色のデータに変換する。カラー印刷を実行しないという印刷条件が指定されている場合には、色補正処理は行われない。
【００３４】
色補正されたデータは例えば２５６階調等の幅で階調値を有している。ハーフトーンモジュール９９は、ドットを分散して形成することによりプリンタ２２でかかる階調値を表現するためのハーフトーン処理を実行する。ハーフトーンモジュール９９は、各画素がいずれのノズルで形成されるかを記憶した画素／ノズル対応テーブルＮＺＴに基づいて、印刷装置２２の各ノズルのインクの吐出量の変動を記憶するインク吐出量テーブルＩＷＴを参照しつつ、該吐出量の変動を補償しながらハーフトーン処理を実行する。こうして処理された画像データは、ラスタライザ１００によりプリンタ２２に転送すべきデータ順に並べ替えられて、最終的な画像データＦＮＬとして出力される。本実施例では、プリンタ２２は画像データＦＮＬに従ってドットを形成する役割を果たすのみであり画像処理は行っていないが、もちろんこれらの処理をプリンタ２２で行うものとしても差し支えない。
【００３５】
次に、図３によりプリンタ２２の概略構成を説明する。図示するように、このプリンタ２２は、紙送りモータ２３によって用紙Ｐを搬送する機構と、キャリッジモータ２４によってキャリッジ３１をプラテン２６の軸方向に往復動させる機構と、キャリッジ３１に搭載された印字ヘッド２８を駆動してインクの吐出およびドット形成を行う機構と、これらの紙送りモータ２３，キャリッジモータ２４，印字ヘッド２８および操作パネル３２との信号のやり取りを司る制御回路４０とから構成されている。
【００３６】
キャリッジ３１をプラテン２６の軸方向に往復動させる機構は、プラテン２６の軸と並行に架設されキャリッジ３１を摺動可能に保持する摺動軸３４と、キャリッジモータ２４との間に無端の駆動ベルト３６を張設するプーリ３８と、キャリッジ３１の原点位置を検出する位置検出センサ３９等から構成されている。
【００３７】
なお、このキャリッジ３１には、黒インク（Ｂｋ）用のカートリッジ７１と、シアン（Ｃ）、マゼンタ（Ｍ），イエロ（Ｙ）の３色のインクを収納したカラーインク用カートリッジ７２が搭載可能である。キャリッジ３１の下部の印字ヘッド２８には各色に対応した計４個のインク吐出用ヘッドが形成されている。図示を省略したが、カートリッジ７１，７２からそれぞれの色に対応したインク吐出用ヘッドに、インクの供給をするための供給路が設けてある。
【００３８】
インク吐出用ヘッドには、副走査方向の間隔が一定となるように配列された４８個のノズルＮｚが各色ごとに設けられている。各ノズルのインク供給路には電歪素子の一つであって応答性に優れたピエゾ素子ＰＥが配置されている。ピエゾ素子ＰＥの両端に設けられた電極間に所定時間幅の電圧を印加すると、ピエゾ素子ＰＥがインク供給路を押圧し、インクが吐出される。
【００３９】
次にプリンタ２２の制御回路４０の内部構成を説明する。図４は制御回路４０の内部構成を示す説明図である。図４に示す通り、この制御回路４０の内部には、ＣＰＵ８１，ＰＲＯＭ４２，ＲＡＭ４３の他、コンピュータ９０とのデータのやりとりを行うＰＣインタフェース４４と、紙送りモータ２３、キャリッジモータ２４および操作パネル３２などとの信号をやりとりする周辺入出力部（ＰＩＯ）４５と、計時を行うタイマ４６と、ヘッド２８にドットのオン・オフの信号を出力する駆動用バッファ４７などが設けられている。これらの素子および回路はバス４８で相互に接続されている。また、制御回路４０には、所定周波数でピエゾ素子を駆動するための電圧信号としての駆動波形を出力する発信器５１、および発信器５１からの出力をヘッド２８の各ノズルに所定のタイミングで分配する分配器５５も設けられている。この駆動波形は、ドットのオン・オフに関わらず各ノズルに配設されたピエゾ素子のシンク側に出力されるように回路が構成されている。制御回路４０は、コンピュータ９０で処理されたドットデータを受け取り、これを一時的にＲＡＭ４３に蓄え、所定のタイミングで駆動用バッファ４７に出力する。ドットデータは各ピエゾ素子のソース側に出力されるように回路が構成されている。つまり、本実施例のプリンタ２２は、駆動用バッファ４７から出力される電圧を各ノズルごとに制御することによって、前記駆動波形の有効／無効を各ノズルごとに制御し、所定のドットを形成している。
【００４０】
以上説明したハードウェア構成を有するプリンタ２２は、紙送りモータ２３により用紙Ｐを搬送しつつ（以下、副走査という）、キャリッジ３１をキャリッジモータ２４により往復動させ（以下、主走査という）、同時に印字ヘッド２８の各色ヘッド６１〜６４のピエゾ素子ＰＥを駆動して、各色インクの吐出を行い、ドットを形成して用紙Ｐ上に多色の画像を形成する。
【００４１】
なお、本実施例では、上述の通りピエゾ素子ＰＥを用いてインクを吐出するヘッドを備えたプリンタ２２を用いているが、他の方法によりインクを吐出するプリンタを用いるものとしてもよい。例えば、インク通路に配置したヒータに通電し、インク通路内に発生する泡（バブル）によりインクを吐出するタイプのプリンタに適用するものとしてもよい。また、本実施例では、１種類のドットのみを形成可能なノズルを適用したプリンタ２２を採用したが、濃度の異なるインクを備えたプリンタや、径の異なるドットを形成可能なプリンタや、ドットを重ねて形成することを許容したプリンタなど各画素ごとに多階調を表現可能な多値プリンタを採用するものとしてもよい。
【００４２】
（２）ドット形成制御：
次に本実施例におけるドット形成の制御処理について説明する。ドット形成制御処理ルーチンの流れを図５に示す。これは、コンピュータ９０のＣＰＵ８１が実行する処理である。
【００４３】
この処理が開始されると、ＣＰＵ８１は、画像データおよび印刷条件を入力する（ステップＳ１００）。この画像データは、図２に示したアプリケションプログラム９５から受け渡されるデータであり、画像を構成する各画素ごとにＲ，Ｇ，Ｂそれぞれの色について、値０〜２５５の２５６段階の階調値を有するデータである。この画像データの解像度は、原画像のデータＯＲＧの解像度等に応じて変化する。印刷条件としては、例えばオーバラップ方式による印刷を実行するか否かおよび印刷解像度の指定などがある。
【００４４】
ＣＰＵ８１は、入力された画像データの解像度をプリンタ２２が印刷するための解像度に変換する（ステップＳ１０５）。画像データが印刷解像度よりも低い場合には、線形補間により隣接する原画像データの間に新たなデータを生成することで解像度変換を行う。逆に画像データが印刷解像度よりも高い場合には、一定の割合でデータを間引くことにより解像度変換を行う。なお、解像度変換処理は本実施例において本質的なものではなく、かかる処理を行わずに印刷を実行するものとしても構わない。
【００４５】
次に、ＣＰＵ８１は、色補正処理を行う（ステップＳ１１０）。色補正処理とはＲ，Ｇ，Ｂの階調値からなる画像データをプリンタ２２で使用するＣ，Ｍ，Ｙ，Ｋの各色の階調値のデータに変換する処理である。この処理は、Ｒ，Ｇ，Ｂのそれぞれの組み合わせからなる色をプリンタ２２で表現するためのＣ，Ｍ，Ｙ，Ｋの組み合わせを記憶した色補正テーブルＬＵＴ（図２参照）を用いて行われる。色補正テーブルＬＵＴを用いて色補正する処理自体については、公知の種々の技術が適用可能であり、例えば補間演算による処理が適用できる。
【００４６】
こうして色補正された画像データに対して、ＣＰＵ８１は多値化処理を行う（ステップＳ２００）。多値化とは、原画像データの階調値（本実施例では２５６階調）をプリンタ２２が各画素ごとに表現可能な階調値に変換することをいう。本実施例では「ドットの形成」「ドットの非形成」の２階調への多値化を行う。本実施例における多値化処理の内容を図６を用いて説明する。
【００４７】
本実施例では、いわゆるディザ法による多値化を行っている。この処理では、ＣＰＵ８１はまず画像データおよび印刷条件を入力する（ステップＳ２０２）。ここで入力される画像データＣＤとは、色補正処理（図５のステップＳ１１０）を施され、Ｃ，Ｍ，Ｙ，Ｋの各色につき２５６階調を有するデータである。印刷条件は、図５のステップＳ１００で入力された条件と同じである。
【００４８】
この画像データに基づいて、ＣＰＵ８１は補正画像データＣＤ’を生成する（ステップＳ２０４）。補正画像データＣＤ’とは、ノズルのインクの吐出量の変動を各画素ごとに考慮して階調値を補正した画像データをいう。補正画像データＣＤ’の生成について図７〜図１３を用いて説明する。
【００４９】
補正画像データＣＤ’の生成方法は、印刷条件によっても相違する。ここでは、図７に示す方法でドットの記録が行われる場合を例にとって説明する。図７の左側に示した四角囲みの「○」は、印字ヘッド２８を示している。印字ヘッド２８内の「○」はノズルを示しており、番号はそれぞれノズル番号を意味している。図７では、図示の都合上、６個のノズルを備えたヘッドを示した。また、各ノズルの副走査方向の間隔は２ドット相当とした。図７の左側には、各主走査におけるヘッドの副走査方向の位置を示している。１回目、２回目・・・と示したのが、それぞれ主走査の回数を意味している。図７の右側に示した「○」が形成されたドットを示している。「○」中の数字は、各ドットを形成するノズルのノズル番号に対応する。破線の「○」はノズルがマスクされ、ドットが形成されない画素を示している。
【００５０】
図７では、各ラスタを２回のパス数で形成するオーバラップ方式による印刷が行われた場合のドットの様子を示している。図示する通り、１回目の主走査では、５番ノズルおよび６番ノズルを用いて奇数番目に位置する画素にドットを形成する。続いて、３ドットに相当する送り量で副走査を行った後、２回目の主走査では４番ノズルから６番ノズルを用いて奇数番目に位置する画素にドットを形成する。かかる送り量でドットを形成することにより、図７中に実線の「○」で示す領域に画像を印刷することができる。１回目の主走査において、１番ノズルから４番ノズルまでをマスクしたのは、これらのノズルによってドットが形成される領域は以後の主走査で画像を完成することができないからである。
【００５１】
印刷する画像のサイズおよび印刷解像度を指定することによって画像を構成する主走査方向および副走査方向のドット数が特定される。その上で、印刷モードとしてオーバラップ印刷を行う場合のパス数を設定すれば、各画素がいずれのノズルによって形成されるかが決定される。各ラスタを２回のパスで形成した場合の画素とノズルの対応は図７に示す通りである。図７に示した対応関係を表形式で示したのが図８である。図示の都合上、図８には主走査方向に６つの画素、副走査方向に１０の画素をとって各画素を構成するノズル番号を表形式で示した。全ての画素についてかかる対応関係を特定することが可能である。本実施例のプリンタ２２では、印刷条件に応じて特定される対応関係を図８に示した画素／ノズル対応テーブルＮＺＴとしてＲＯＭ８２に記憶している。なお、以下の説明では便宜上、各画素を「（副走査方向の番号、主走査方向の番号）」の形で座標形式で表すものとする。
【００５２】
一方、インクの吐出量は各ノズルごとに変動がある。本実施例のプリンタ２２はこの吐出量の変動をインク吐出量テーブルＩＷＴとして記憶している。かかるテーブルの例を図９に示す。図９には、図７に示したヘッドに対応する６つのノズルについてインクの吐出量の変動を示した。図示する通り、１番ノズルは本来吐出すべきインク量よりも１０％少ないインク量を吐出する特性がある。同様に各ノズルの吐出量の変動は、２番ノズルが０％、３番ノズルが−５％、４番ノズルが５％、５番ノズルが１５％、６番ノズルが０％となっている。インク吐出量テーブルＩＷＴは、プリンタ２２の制御回路４０内に備えられるＰＲＯＭ４２に記憶されている。本実施例では、プリンタドライバ９６がＰＲＯＭ４２に記憶されているインク吐出量テーブルＩＷＴを読み出し、コンピュータ９０内のＲＡＭ８３に記憶して種々の処理に用いている。
【００５３】
図８の画素／ノズル対応テーブルＮＺＴと、図９のインク吐出量テーブルＩＷＴを用いることにより、各画素ごとのインクの吐出量の変動を示すテーブルを設定することができる。かかるテーブルの例を図１０に示す。例えば、図８のテーブルにより画素（１，１）は５番ノズルで形成されることが分かる。図９のテーブルによれば、５番ノズルは吐出量の変動が１５％ある。従って、画素（１，１）はインクの吐出量の変動が１５％となる。全画素についてかかる処理を実行すれば、図１０に示すように変動と画素との対応関係を特定することができる。
【００５４】
かかる対応関係を用いて画像データＣＤを補正する方法を説明する。例えば、画像データＣＤが図１１に示す階調値を有するものとする。図１１には、ある一色について、図８に対応する領域における階調値を示した。
【００５５】
一方、図１０に示したインクの吐出量の変動に基づいて、各画素ごとの補正係数を設定することができる。補正係数を図１２に示した。例えば、図１０によれば画素（１，１）ではインクの変動量が１５％あるため、この画素にドットが形成されると本来表現される濃度よりも１５％高い濃度が表現される。従って、画像データの階調値を１５％低い値、つまり８５％にしておけば、結果として本来の濃度が表現されることになる。この結果、画素（１，１）の補正係数は８５％となる。その他の画素についても同様に補正係数を設定することができる。本実施例では、「補正係数＝１００（％）−インクの変動量（図１０）」を計算することによって補正係数を算出した。
【００５６】
但し、補正係数とインクの変動量は必ずしもこの関係式に束縛されるものではない。例えば、インクの吐出の変動量が１５％多くても、本来表現すべき濃度に対し、実際に表現される濃度が５％程度しか濃くならないような場合には補正係数は９５％とすればよい。当然、吐出量の変動と濃度の偏差が非線形の関係にある場合にも、それぞれの吐出量に応じた補正データを設定することが可能である。
【００５７】
上述した画像データの補正によってインクの吐出量の変動が補償できる原理を均一濃度領域を形成する場合を例にとって説明する。例えば、階調値１２８の均一濃度領域を印刷する場合を考える。適正なインク量でドットが形成された場合の濃度の評価値を２５５とする。適正なインク量でドットが形成された場合には記録率５０％でドットを形成することにより、階調値１２８の領域を表現することができる。これに対し、１５％多いインク量でドットが形成された場合を考える。このときは各ドットあたりの濃度の評価値は２５６×１．１５となる。一方上記補正を施せば画像データの階調値は１５％減少する。画像の階調値とドットの記録率は比例するから、かかる補正によってドットの記録率は１５％減少する。従って、各ドットの濃度評価値が２５６×１．１５であってもドットの記録率が１５％減少することによって、結果的に階調値１２８を表現することができるようになる。
【００５８】
次に、こうして設定した補正係数を用いて画像データの補正を行う。具体的には、各画素ごとに画像データ（図１１）と補正係数（図１２）との積を算出するのである。例えば、画素（１，１）については、画像データの階調値が１８０であり、補正係数が８５％であるため、両者の積をとって補正後の階調値は１５３と算出される。こうして補正された画像データＣＤ’の一覧を図１３に示した。本実施例のディザ法による多値化処理ルーチンでは、この補正された画像データＣＤ’を用いてドットのオン・オフを判定するのである。
【００５９】
図６に戻り多値化処理ルーチンの内容について説明する。ステップＳ２０４で補正画像データＣＤ’を生成した。次に、ＣＰＵ８１は補正画像データＣＤ’と閾値ＴＨとの大小関係を比較する（ステップＳ２０６）。ディザ法では、この大小関係に基づいてドットのオン・オフを判定する。閾値ＴＨは、ディザマトリックスにより各画素ごとに異なる値が設定される。
【００６０】
図１４にディザ法によるドットのオン・オフ判定の考え方を示す。図示の都合上、一部の画素についてのみ示す。図１４に示す通り、補正画像データＣＤ’の各画素とディザテーブルの対応箇所の大小を比較する。補正画像データＣＤ’の方がディザテーブルに示された閾値ＴＨよりも大きい場合にはドットをオンにし、補正画像データＣＤ’の方が小さい場合にはドットをオフとする。図１４中でハッチングを付した画素がドットをオンにする画素を意味している。
【００６１】
ディザマトリックスとしては、周知の種々のマトリックスが適用可能である。本実施例では、ドット分散型のディザマトリックスとして、６４×６４ドットの領域内に０〜２５５までの閾値が偏りなく出現する、いわゆるブルーノイズマスク型のマトリックスを採用した。かかるマトリックスの例を図１５に示す。
【００６２】
ステップＳ２０６において、補正画像データＣＤ’が閾値ＴＨよりも大きい場合には、その画素にはドットを形成すべきと判断して結果値ＲＥに値１を代入する（ステップＳ２１０）。逆に補正画像データＣＤ’が閾値ＴＨ以下である場合には、ドットを形成すべきではないと判断して結果値ＲＥに値０を代入する（ステップＳ２０８）。結果値ＲＥはノズルに出力される信号値に相当し、結果値ＲＥが値１の場合にはノズルはマスクされないため、ドットが形成される。逆に結果値ＲＥが値０の場合にはノズルがマスクされ、ドットが形成されなくなる。
【００６３】
以上の処理により、一つの画素についていずれのドットを形成すべきかの判定がなされた。ＣＰＵ８１は、全画素について処理が終了するまで（ステップＳ２１２）、上記ステップＳ２０４〜Ｓ２１０までの処理を繰り返す。全画素について処理が終了すると、ディザ法による多値化処理ルーチンを一旦終了してドット形成制御処理ルーチン（図５）に戻る。
【００６４】
次に、ＣＰＵ８１はラスタライズを行う（ステップＳ３００）。これは、１ラスタ分のデータをプリンタ２２のヘッドに転送する順序に並べ替えることをいう。ステップＳ１００で入力した印刷条件により指定された内容に基づいて実行すべきラスタライズの内容が選択される。本実施例では、先に図７で説明した通り、２回のパス数で各ラスタを形成するオーバラップ方式による記録を実行するものとしている。従って、ステップＳ３００では、かかる記録方式に応じた順序で転送するように画像データを配列する。例えば５番ノズルに出力するデータとしては、図７から明らかな通り、画素（１，１）、（１，３）、（１，５）・・の順に奇数番目の画素のみを配列する。
【００６５】
印刷モードが変更されれば、ラスタライズの方法も変わる。例えば、オーバラップを行わないモード、つまりヘッドの１回の往運動で各ラスタのドットを全て形成するモードもある。この場合には１ラスタ分のデータを処理された順序でヘッドに出力することになる。こうしてプリンタ２２が印刷可能なデータが生成されると、ＣＰＵ８１は該データを出力し、プリンタ２２に転送する（ステップＳ３１０）。プリンタ２２は、このデータを受け取って各画素にそれぞれのドットを形成して画像を印刷する。
【００６６】
以上で説明した印刷装置によれば、各ノズルのインクの吐出量に変動がある場合でも、変動に応じて補正した画像データＣＤ’を用いて多値化を行うことにより、吐出量の変動を補償することができる。この結果、適切な階調表現を実現し、高画質な印刷を行うことができる。
【００６７】
上記実施例では、インク吐出量テーブル（図９）は、本来吐出されるべきインク量からの変動量を各ノズルごとに記憶するものとした。これに対し、インク吐出量テーブルを、全ノズルのインクの吐出量の平均値に対する変動量を各ノズルごとに記憶するものとしてもよい。かかるテーブルを用いて図６の多値化を行えば、上記実施例と同様、インクの吐出量の変動に起因する階調ムラを生じることなく画像を印刷することができる。この場合にはインク吐出量の平均値に応じて、画像全体の濃度が若干シフトする可能性があるが、上記実施例に比較して補正量を抑制することができるため、階調ムラを上記実施例より適切に解消することができる利点がある。
【００６８】
上記実施例では、画像データをインクの吐出量の変動に応じて補正した。これに対し、画像データの補正に代えて、ディザマトリックスから得られる閾値ＴＨを補正するものとしてもよい。図６のステップＳ２０６から明らかな通り、ドットのオン・オフの判定は画像データと閾値ＴＨとの大小関係によって判断されるから、閾値ＴＨを補正しても上記実施例と同じ効果が得られる。但し、この場合には補正係数が上記実施例と異なる点に留意する必要がある。上記実施例では、例えばインクの吐出量が１５％多いノズルで形成される画素については、ドットが形成されにくくするために画像データの階調値を１５％低減させた。同じ場合に閾値ＴＨを補正することによりドットを形成されにくくするためには、閾値を１５％高くする必要がある。
【００６９】
なお、上記実施例では、画素／ノズル対応テーブルＮＺＴ（図８）を画像全体について画素とノズルとの対応を記憶するものとして説明した。これに対し、図８から明らかな通り、主走査方向には同じ対応関係が繰り返し現れる。また、副走査方向についても同じ対応関係が繰り返し現れる。従って、画素／ノズル対応テーブルＮＺＴ（図８）は、かかる繰り返しの最小単位のみについて画素とノズルとの対応関係を記憶するテーブルとすることもできる。こうすれば、テーブルのサイズを小さくすることができる。
【００７０】
また、上記実施例では、説明の便宜上、補正画像データＣＤ’を得るまでに画素ごとのインク吐出量の変動を示すテーブル（図１０）や補正係数を設定したテーブル（図１２）を用いて画像データＣＤを補正するものとして説明した。当然、これらのテーブルを介在させることなく、画像データＣＤから補正画像データＣＤ’を得られるようにしてもよい。
【００７１】
（３）第２実施例：
次に本発明の第２実施例としての印刷装置について説明する。第２実施例としての印刷装置のハードウェア構成は第１実施例と同じである。また、ドット形成制御処理ルーチン（図５）全体の流れも第１実施例と同様である。第２実施例では、第１実施例に対し、多値化処理の内容が相違している。
【００７２】
第２実施例による多値化処理の内容を図１６のフローチャートに示す。第２実施例では、誤差拡散法による多値化処理を採用している。この処理が開始されると、ＣＰＵ８１は画像データＣＤおよび印刷条件の入力を実行する（ステップＳ２２０）。次に、ＣＰＵ８１は拡散誤差補正データＣＤＸを生成する（ステップＳ２２２）。
【００７３】
拡散誤差補正データＣＤＸとは、処理しようとして着目している画素ＰＰの画像データＣＤに対し、既に処理済みの画素から拡散されてきた誤差を加えて生成されたデータをいう。誤差拡散法は、周知の通り、多値化を行った画素について発生した濃度誤差を周辺の未処理の画素に配分することで、画像全体として濃度誤差が極小になるように多値化をする手法である。かかる流れに沿った多値化を行うために、ステップＳ２２２では、既に処理が済んだ画素からの誤差を反映させた補正データを生成するのである。
【００７４】
こうして生成された補正データＣＤＸと所定の閾値ＴＨとの大小関係を比較する（ステップＳ２２４）。第１実施例で説明したディザ法による多値化とは異なり、所定の閾値は全画素で統一された値を使用している。本実施例では適正なインク量でドットが形成された場合の濃度評価値とドットが形成されない場合の濃度評価値との中間の値を閾値として適用した。もちろん、閾値は他の値に設定することも可能である。
【００７５】
補正された画像データＣＤＸが閾値ＴＨよりも大きい場合には、ドットを形成すべきと判断して、結果値ＲＥに値１を代入する（ステップＳ２２８）。逆に、画像データＣＤＸが閾値ＴＨ以下である場合には、ドットを形成すべきでないと判断して、結果値ＲＥに値０を代入する（ステップＳ２２６）。結果値ＲＥの意味は第１実施例の場合と同じである。
【００７６】
次に、ＣＰＵ８１は濃度評価値の補正を行う（ステップＳ２３０）。濃度評価値とは、ドットの形成によって各画素ごとに実現される濃度の評価値をいう。本実施例では、適正なインク量でドットが形成された場合には濃度評価値を値２５５とし、ドットが形成されない場合には濃度評価値を値０としている。ところが、第１実施例でも説明した通り、ノズルによってインクの吐出量に変動がある場合に上記濃度評価値を用いるのは適切ではない。例えば、インクの吐出量が１０％少ないノズルによって形成されたドットは、その画素では値２５５よりも低い濃度評価値しか表現できないことになる。かかる場合には濃度評価値を値２５５よりも１０％低い値に補正する必要がある。ステップＳ２３０では、このような補正を実行するのである。
【００７７】
濃度評価値の補正の具体的方法は次の通りである。第２実施例においても、第１実施例の図８で説明したのと同様の画素／ノズル対応テーブルＮＺＴを記憶している。また、各ノズルの吐出量の変動値を示すインク吐出量テーブルＩＷＴ（図９に相当する）も記憶している。これらのテーブルを参照すれば、現在の着目画素ＰＰがいずれのノズルによって形成される画素であるかを判定することができ、インク吐出量の変動を求めることができる。従って、適正な吐出量でドットが形成された場合の濃度評価値に対し、インクの吐出量に相当する分だけ濃度評価値を増減する。つまり、「補正前の濃度評価値×（１００＋吐出量の変動）／１００」を計算して補正後の濃度評価値を求める。もちろん、補正方法はかかる演算のみに限定されるものではなく、第１実施例における補正画像データＣＤ’の生成と同様、インク吐出量の変動と表現される濃度との関係に応じて種々の補正式を用いることができる。なお、画素／ノズル対応テーブルについては、第２実施例の印刷装置においても繰り返しの最小単位で記憶することが可能である。
【００７８】
こうして補正された濃度評価値に基づいて、ＣＰＵ８１は濃度誤差を計算するとともに、その誤差を周辺の画素に拡散する（ステップＳ２３２）。濃度誤差とは、着目している画素ＰＰで本来表現されるべき濃度と、実際に表現される濃度との誤差をいう。例えば、画素ＰＰの階調値が２５５であり、ドットが形成された場合の濃度評価値が２５５である場合には、両者の誤差は値０となる。これに対し、ドットが形成されない場合には濃度評価値は値０となるから、両者の誤差は値２５５となる。もちろん、ここでいう濃度評価値はステップＳ２３０において補正された後の濃度評価値である。
【００７９】
こうして算出された濃度誤差を周辺の画素に拡散する際の配分例を図１７に示した。この例では、着目画素ＰＰに対して主走査方向に隣接する画素Ｐ１には、誤差の１／４が配分される。また、誤差は副走査方向にも所定の割合で配分される。但し、既に処理が終了した画素、即ち図１７中で画素ＰＰよりも左側に位地する画素には誤差は配分されない。なお、図１７に示した配分は、一例に過ぎず、その他の配分を適用することも可能である。こうして配分された誤差は、ステップＳ２２２で説明した通り、画像データに加えられる。
【００８０】
ＣＰＵ８１は、全画素について以上の処理を実行して（ステップＳ２３４）、誤差格差による多値化処理ルーチンを一旦終了する。第１実施例において説明した通り、こうして多値化されたデータはラスタライズされ、プリンタ２２に出力される。
【００８１】
以上で説明した第２実施例の印刷装置によれば、濃度評価値をインクの吐出量に応じて補正することにより、各画素ごとの誤差を適切に算出できる。この結果、画像全体で濃度誤差のない適切な多値化を実現することができ、高画質な印刷を行うことができる。一般に誤差拡散法による多値化は、ディザ法による多値化よりも画質に優れる特性があるため、第２実施例の印刷装置によれば、第１実施例の印刷装置よりも更に高画質な印刷を実現することが可能となる。
【００８２】
第２実施例では、濃度評価値をインクの吐出量に応じて補正するものとしている。これに対し、濃度評価値は補正せず、第１実施例と同様の方法により画像データをインクの吐出量の変動に応じて補正するものとしてもよい。また、画像データの補正に代えて、閾値ＴＨを補正するものとしても構わないのは当然である。
【００８３】
（４）第３実施例：
次に本発明の第３実施例としての印刷装置について説明する。第３実施例の印刷装置のハードウェア構成は、第１実施例の印刷装置と同じである。但し、第３実施例の印刷装置はソフトウェア構成が第１実施例の印刷装置と相違する。
【００８４】
第３実施例の印刷装置のソフトウェア構成を図１８に示す。プリンタドライバ９６Ａの内容が第１実施例とは相違する。第３実施例のプリンタドライバ９６Ａでは、解像度変換モジュール９７および色補正モジュール９８を介して得られたデータは、ラスタライザ１００Ａによってラスタライズされる。第１実施例ではハーフトーンされた後のデータをラスタライズするものとしていたが、第３実施例ではハーフトーン処理を施す前にラスタライズを実行するのである。この際、ラスタライザ１００Ａは、ハーフトーンに使用されるディザマトリックスＤＭのデータも画像データと同じ配列でラスタライズする。
【００８５】
こうしてラスタライズされた画像データおよびディザマトリックスの閾値は、ハーフトーンモジュール９９Ａに渡され、ハーフトーン処理がなされる。このハーフトーン処理は第１実施例と同様、インク吐出量の変動を記憶したインク吐出量テーブルＩＷＴを参照しつつ、その変動を補償するように実行される。以上の各モジュールで処理されたデータＦＮＬがプリンタ２２に供給される。
【００８６】
ソフトウェア構成の相違から明らかな通り、第３実施例ではドット形成制御処理ルーチンの全体の流れが第１実施例と相違する。第３実施例におけるドット形成制御処理ルーチンの内容を図１９に示す。図１９のフロ−チャートに示す通り、ＣＰＵ８１は、まず画像データ及び印刷条件を入力し（ステップＳ１００）、解像度変換をし（ステップＳ１０５）、色補正処理を施す（ステップＳ１１０）。ここまでの処理内容は第１実施例の場合と同じである。
【００８７】
次に、ＣＰＵ８１はラスタライズを行う（ステップＳ３５０）。ラスタライズの方法自体は、第１実施例（図５のステップＳ３００）と同様である。オーバラップのパス数に応じて各ノズルに出力する順番に画像データを配列するのである。第３実施例においてラスタライズされたデータの様子を図２０および図２１に示した。ここでは、２回のパス数によるオーバラップで画像を記録した場合のラスタライズの様子を示している。
【００８８】
図２０は、１回目の主走査において各ノズルに出力されるデータを示したものである。図７から明らかな通り、１回目の主走査では、１番ノズルから４番ノズルまではドットを形成しない。従って、図２０に示す通り、これらのノズルはマスクされる。図２０中の「ｎ／ａ」はノズルにマスク用のデータが出力されることを意味している。５番ノズルには、画素（１，１）、（１，３）、（１，５）の画像データがこの順で出力される。２回のパス数のオーバラップ方式により画像を印刷するため、ラスタ上の奇数番目の画素が出力されるのである。図２０において、各ノズルに対応するデータの欄には３種類の内容を一組にして示した。上段に記載されているのが、ラスタライズされたデータと画素との対応を示している。中段に記載されているのが、ラスタライズされた画像データを示している。原画像データが図１１に示した階調値を有しているものとすれば、５番ノズルには、図２０に示す通り、階調値１８０，１４３，５６のデータをこの順に配列する。同様にして６番ノズルの画像データも配列される。
【００８９】
ＣＰＵ８１は、画像データのラスタライズと同時にディザマトリックスの閾値のラスタライズも実行する。この点で、第３実施例のラスタライズは、第１実施例におけるラスタライズと相違する。本実施例でも第１実施例と同様、図１５に示したブルーノイズマスク型のディザマトリックスを使用している。例えば、５番ノズルに対応する閾値データとして、ＣＰＵ８１は図１５のブルーノイズマスク型のディザマトリックスから画素（１，１）、（１，３）、（１，５）に対応する値である１，５８，７０をこの順に配列する。図２０中の各ノズルに対応するデータの下段にはこの閾値データを示した。同様にして６番ノズルの閾値データも配列される。なお、以上の説明は、図示の都合上、図７に示した限られた領域に対応するデータに対するものである。画像のサイズ及び解像度に応じてラスタライズされたデータの量も増減する。
【００９０】
図２１には、同様の形式で２回目の主走査に対応するデータを示した。図７から明らかな通り、２回目の主走査では、１番ノズルから３番ノズルまではドットを形成しない。従って、これらのノズルはマスクデータが出力される。４番ノズルは、画素（２，１）、（２，３）、（２，５）のドットを形成する。従って、図１１との対応から分かる通り、４番ノズルに対応した画像データとしては、階調値９５，２３３，２５３がこの順序で配列される。また、図１５との対応から分かる通り、４番ノズルに対応した閾値データとしては、値２５５，２１２，２４２がこの順序で配列される。５番ノズル、６番ノズルについても同様にして画像データおよび閾値データが配列される。
【００９１】
こうしてラスタライズされた画像データ及び閾値データに基づいて、ＣＰＵ８１は多値化を行う（ステップＳ４００）。本実施例ではディザ法による多値化を実行している。ディザ法による多値化の処理の流れ自体は第１実施例における処理と同じである（図６参照）。但し、本実施例では、補正画像データＣＤ’の生成方法（図６のステップＳ２０４）が第１実施例の場合と相違する。
【００９２】
本実施例では、既に説明した通り、多値化処理を実行する時点で画像データおよび閾値データは、各ノズルに対応した順序に配列されている。このように配列されたデータを用いて多値化処理を実行することにより、画像データ及び閾値データの各画素と該画素を形成するノズルとの対応関係は既に特定されている。一方、本実施例においても各ノズルのインクの吐出量の変動を記憶した吐出量テーブルＩＷＴ（図９に相当）がＲＯＭ８２に記憶されている。従って、本実施例の多値化処理では、各ノズルに対応した順序でラスタライズされたデータを図９の吐出量テーブルの変動量に応じて補正することにより補正画像データＣＤ’を得ることができる。つまり、本実施例における補正画像データＣＤ’の生成では、画素とノズルとの対応関係を画素／ノズル対応テーブルＮＺＴのようなテーブルを用いて特定する必要がない。なお、画像データを補正するための演算は第１実施例における演算と同様である。
【００９３】
ＣＰＵ８１は、こうして補正された画像データＣＤ’と閾値データＴＨとの大小関係によって、全画素についてドットのオン・オフを判定する（図６のステップＳ２０６〜Ｓ２１２に相当）。これらの処理内容は第１実施例と同様である。なお、第１実施例と同じく、ステップＳ２０４において、画像データＣＤの補正に代えて、閾値データＴＨを補正するものとしても構わない。
【００９４】
以上で説明した第３実施例の印刷装置によれば、各ノズルごとにインクの吐出量に変動がある場合であっても、その変動を補償して適切な階調表現を行うことができ、高画質な印刷を実現することができる。また、第３実施例では、第１実施例と異なり、画素／ノズル対応テーブルＮＺＴを用意する必要がないため、メモリの容量を節約できる利点もある。当然、補正画像データＣＤ’の生成において上記テーブルＮＺＴを参照する必要もないため、処理速度が速いという利点もある。
【００９５】
以上で説明した印刷装置では、各ノズルのインクの吐出量の変動量に関するテーブルＩＷＴはプリンタ２２のＰＲＯＭ４２に記憶するものとしている。プリンタドライバ９６は、吐出量テーブルＩＷＴをＰＲＯＭ４２から読み出し、ＲＡＭ９２に記憶して上記処理を実行するのである。インクの吐出量は個々のプリンタ２２で相違するが、かかる方法によれば、プリンタドライバ９６を個別に用意する必要はない。もとよりプリンタドライバ９６内にインク吐出量テーブルＩＷＴを含め、各プリンタ２２ごとに固有のプリンタドライバ９６を用意するものとしても構わないが、上述の通り、インク吐出量テーブルＩＷＴをプリンタ２２内に記憶するものとすれば、プリンタドライバ９６のバージョンアップなどに対応しやすいという利点もある。
【００９６】
また、各ノズルのインク吐出量の変動は、工場出荷後に生じる可能性もある。例えば、ノズルが目詰まりした場合やヘッドごと交換した場合などである。かかる場合のためにユーザが事後的にインク吐出量テーブルＩＷＴを書き換えられるようにしてもよい。例えば、所定のテストパターンを印刷し、最も適切な濃度が表現されているとユーザが判断するパターンを選択することでインク吐出量テーブルＩＷＴを変更するものとしてもよい。また、交換可能なヘッドを提供する場合にフロッピーディスクなどの記録媒体によって、該ヘッドに対応したインク吐出量テーブルＩＷＴを提供するものとしてもよい。ヘッドには多数のノズルが備えられているのが通常であるため、かかる記録媒体によってインク吐出量ＩＷＴを提供するものとすれば、ユーザにテストパターン等によるインクの吐出量を判定する負担を強いることなく、容易に適切なインク吐出量を設定できる利点がある。
【００９７】
以上の実施例では、１種類のドットのみを形成可能な印刷装置を例にとって説明したが、径の異なる複数種類のドットや濃度の異なるインクを用いたドットなどを形成することによって各画素ごとに３値以上の表現が可能なプリンタに適用することも可能である。また、上述の実施例ではピエゾ素子を備えるインクジェットプリンタを例に説明したが、いわゆるノズルに備えたヒータに通電することによりインク内に生じるバブルでインクを吐出するタイプのプリンタを始め種々のプリンタその他の印刷装置に適用可能である。
【００９８】
以上で説明した印刷装置は、ドット形成制御処理としてコンピュータによる処理を含んでいることから、かかる処理を実現するためのプログラムを記録した記録媒体としての実施の態様を採ることもできる。このような記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等の、コンピュータが読取り可能な種々の媒体を利用できる。また、コンピュータに上記で説明した画像処理等を行うコンピュータプログラムを通信経路を介して供給するプログラム供給装置としての態様も可能である。
【００９９】
以上、本発明の種々の実施例について説明してきたが、本発明はこれらに限定されるものではなく、その要旨を逸脱しない範囲で、種々の形態による実施が可能である。例えば、上記実施例で説明した種々の制御処理は、その一部または全部をハードウェアにより実現してもよい。
【図面の簡単な説明】
【図１】本発明の印刷装置の概略構成図である。
【図２】ソフトウェアの構成を示す説明図である。
【図３】本発明のプリンタの概略構成図である。
【図４】プリンタの制御装置の内部構成を示す説明図である。
【図５】第１実施例のドット形成制御ルーチンの流れを示すフローチャートである。
【図６】ディザ法による多値化処理ルーチンの流れを示すフローチャートである。
【図７】本実施例におけるドットの記録の様子を示す説明図である。
【図８】各画素とノズルとの対応関係を示す説明図である。
【図９】各ノズルのインクの吐出量の変動を示す説明図である。
【図１０】各画素とインクの吐出量の変動との対応を示す説明図である。
【図１１】画像データＣＤの例を示す説明図である。
【図１２】各画素と補正係数との対応関係を示す説明図である。
【図１３】補正された画像データＣＤ’の例を示す説明図である。
【図１４】ディザ法によるドットのオン・オフ判定の考え方を示す説明図である。
【図１５】ブルーノイズアスク型のディザマトリックスの例を示す説明図である。
【図１６】第２実施例における誤差拡散法による多値化処理ルーチンの流れを示すフローチャートである。
【図１７】拡散誤差の配分例を示す説明図である。
【図１８】第３実施例の印刷装置のソフトウェア構成を示す説明図である。
【図１９】第３実施例のドット形成制御処理ルーチンの流れを示すフローチャートである。
【図２０】ラスタライズされたデータ例を示す説明図である。
【図２１】ラスタライズされた第２のデータ例を示す説明図である。
【符号の説明】
１２…スキャナ
１４…キーボード
１５…フレキシブルドライブ
１６…ハードディスク
１８…モデム
２１…カラーディスプレイ
２２…カラープリンタ
２３…紙送りモータ
２４…キャリッジモータ
２６…プラテン
２８…印字ヘッド
３１…キャリッジ
３２…操作パネル
３４…摺動軸
３６…駆動ベルト
３８…プーリ
３９…位置検出センサ
４０…制御回路
４１…ＣＰＵ
４２…プログラマブルＲＯＭ（ＰＲＯＭ）
４３…ＲＡＭ
４４…ＰＣインタフェース
４５…周辺入出力部（ＰＩＯ）
４６…タイマ
４７…転送用バッファ
４８…バス
５１…発信器
５５…分配出力器
７１…黒インク用のカートリッジ
７２…カラーインク用カートリッジ
８０…バス
８１…ＣＰＵ
８２…ＲＯＭ
８３…ＲＡＭ
８４…入力インターフェイス
８５…出力インタフェース
８６…ＣＲＴＣ
８７…ディスクコントローラ（ＤＤＣ）
８８…シリアル入出力インタフェース（ＳＩＯ）
９０…パーソナルコンピュータ
９１…ビデオドライバ
９５…アプリケーションプログラム
９６…プリンタドライバ
９７…解像度変換モジュール
９８…色補正モジュール
９９…ハーフトーンモジュール
１００…ラスタライザ
【図１】
0004244405.tif 000002
【図２】
0004244405.tif 000003
【図３】
0004244405.tif 000004
【図４】
0004244405.tif 000005
【図５】
0004244405.tif 000006
【図６】
0004244405.tif 000007
【図７】
0004244405.tif 000008
【図８】
0004244405.tif 000009
【図９】
0004244405.tif 000010
【図１０】
0004244405.tif 000011
【図１１】
0004244405.tif 000012
【図１２】
0004244405.tif 000013
【図１３】
0004244405.tif 000014
【図１４】
0004244405.tif 000015
【図１７】
0004244405.tif 000016
【図１５】
0004244405.tif 000017
【図１６】
0004244405.tif 000018
【図１８】
0004244405.tif 000019
【図１９】
0004244405.tif 000020
【図２０】
0004244405.tif 000021
【図２１】
0004244405.tif 000022