(57)【特許請求の範囲】
【請求項１】
階調値を有する画像データについて、各画素ごとに、順次ハーフトーン処理を行う画像処理装置であって、
前記画像データを入力する入力手段と、
一定の階調値を有する領域であって、かつ、該一定の階調値とは異なる階調値を有する画素から所定の距離だけ離れて位置する画像領域に該当するか否かを判定する判定手段と、
前記画像領域に該当しない画素について、各画素ごとに、処理済みの画素で生じた階調表現上の誤差を前記画像データに反映した上でハーフトーン処理すると共に、該ハーフトーン処理によって生じた誤差を未処理の画素に拡散する処理を行う第１の多値化手段と、
前記画像領域に該当する画素について、前記第１の多値化手段による処理に代えて、前記階調表現上の誤差の反映を含まないハーフトーン処理を行い、前記誤差の拡散処理を行わない第２の多値化手段とを備え、
前記判定手段は、各画素ごとに実行される前記ハーフトーン処理の過程において、前記一定の階調値を有する画素が連続して現れた場合に、該連続した画素のうちＮ番目（Ｎは自然数）以降の画素を前記画像領域に該当する画素であると判定する手段である画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記画像データは、複数の色について階調値を有するデータであり、
前記第２の多値化手段は、画質に影響の少ない所定の色についてのみ適用される手段である画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多階調の画像データを各画素ごとに順次ハーフトーン処理する画像処理装置、画像処理方法、およびそのためのプログラムを記録した記録媒体、並びに該ハーフトーン処理に基づいて画像を印刷する印刷装置に関する。
【０００２】
【従来の技術】
従来、コンピュータの出力装置として、種々のタイプのプリンタが用いられている。かかるプリンタとしては、例えば、ヘッドに備えられた複数のノズルから吐出される数色のインクによりドットを形成して、コンピュータで処理された多色多階調の画像を記録するインクジェットプリンタがある。インクジェットプリンタは、通常、各画素ごとにはドットのオン・オフの２階調しか表現し得ない。従って、原画像データの有する多階調をドットの分布により表現するための画像処理、いわゆるハーフトーン処理を施した上で画像を印刷する。
【０００３】
近年では、階調表現を豊かにするために、各画素ごとにオン・オフだけでなく３値以上の階調表現を可能としたインクジェットプリンタ、いわゆる多値プリンタが提案されている。例えば、ドット径やインク濃度を変化させることにより各ドットごとに３種類以上の濃度を表現可能としたプリンタや各画素ごとに複数のドットを重ねて形成することにより多階調を表現可能としたプリンタである。かかるプリンタであっても各画素単位では原画像データの有する階調を十分表現し得ないため、ハーフトーン処理が必要となる。
【０００４】
ハーフトーン処理を行う方法の一つとして誤差拡散法がある。誤差拡散法では、各画素ごとにドットのオン・オフを決定した結果生じた濃度誤差を周辺の未処理の画素に拡散する。各画素のドットのオン・オフは、処理済みの画素から拡散された濃度誤差を反映した上で判定される。かかる手法を採ることにより、誤差拡散法は画像全体での濃度誤差を極小にすることができ、高画質なハーフトーン処理を行うことができる。
【０００５】
【発明が解決しようとする課題】
しかし、誤差拡散法はハーフトーン処理に長時間を要するという課題があった。近年、高画質な印刷を実現するためにプリンタの解像度は高まる傾向にあり、画像を構成する画素数は膨大になっている。同様に、滑らかな階調表現を実現するために、多値プリンタにおいては、各画素ごとに表現可能な階調値が増加する傾向にあり、各画素ごとのハーフトーン処理に要する時間が増大している。ハーフトーン処理を実行するプロセッサの処理速度は日々向上しているものの、処理対象となる画素数の増加、および各画素ごとの処理時間の増大に起因して、ハーフトーン処理に要する時間の増加は看過し得ないものとなっていた。かかる課題は、プリンタのみならず、ハーフトーン処理を必要とする種々の印刷装置において共通の課題であった。
【０００６】
本発明は、上記課題を解決するためになされたものであり、極端な画質の低下を招くことなく、誤差拡散法によるハーフトーン処理に要する時間を短縮した画像処理技術を提供することを目的とする。また、該画像処理技術を適用して、高画質な画像を高速で印刷する印刷装置を提供することを目的とする。
【０００７】
【課題を解決するための手段およびその作用・効果】
上述の課題の少なくとも一部を解決するため、本発明は、次の構成を採用した。
本発明の画像処理装置は、
階調値を有する画像データについて、各画素ごとに、順次ハーフトーン処理を行う画像処理装置であって、
前記画像データを入力する入力手段と、
一定の階調値を有する領域であって、かつ、該一定の階調値とは異なる階調値を有する画素から所定の距離だけ離れて位置する画像領域に該当するか否かを判定する判定手段と、
前記画像領域に該当しない画素について、各画素ごとに、処理済みの画素で生じた階調表現上の誤差を前記画像データに反映した上でハーフトーン処理すると共に、該ハーフトーン処理によって生じた誤差を未処理の画素に拡散する処理を行う第１の多値化手段と、
前記画像領域に該当する画素について、前記第１の多値化手段による処理に代えて、画像データの階調値に基づくハーフトーン処理のみを行う第２の多値化手段とを備えることを要旨とする。
【０００８】
かかる画像処理装置は、前記画像領域に該当しない画素については、第１の多値化手段により各画素ごとにいわゆる誤差拡散法によるハーフトーン処理を行う。前記画像領域に該当する画素については、第１の多値化手段に代えて、第２の多値化手段によるハーフトーン処理を行う。第２の多値化手段は、処理済みの画素からの誤差を反映することなく画像データの階調値に基づくハーフトーン処理を実行する。また、ハーフトーン処理によって生じた誤差を周辺の未処理の画素に拡散する処理を行わない。つまり、第２の多値化手段によるハーフトーン処理は第１の多値化手段によるハーフトーン処理に対し、処理に要する時間を短縮することができる。従って、本発明の画像処理装置によれば、誤差拡散法によるハーフトーン処理を行うため、高画質な画像処理を実行することができるとともに、誤差の拡散を省略した第２の多値化手段によるハーフトーン処理を部分的に適用することにより、ハーフトーン処理の時間を短縮することができる。
【０００９】
第２の多値化手段は、種々の方法が適用可能である。前記画像領域は、一定の階調値を有する領域であるから、例えば、画像データの階調値に基づいてドットのオン・オフを一義的に設定するものとしてもよい。また、ディザ法によりハーフトーン処理を行うものとしてもよい。ディザ法とは、いわゆるディザテーブルによって与えられる閾値と画像データの階調値との大小関係に基づいてハーフトーン処理を行う方法である。ディザテーブルは、ドットの分散性を確保しつつ、所定の画像領域で濃度誤差が解消されるように設定されている。従って、一定の階調値を有する画像領域においては、ディザ法によるハーフトーン処理でも画質を極端に低下させることはない。また、ディザ法によってハーフトーン処理する領域では濃度誤差がほとんど生じないため、誤差の拡散を省略しても画質を低下させることがない。
【００１０】
ここで、前記画像領域は、一定の階調値を有する領域であり、種々の広さに設定することができる。一画素以上の広さを全て含めるものとしてもよいし、所定の階調値を有する画素が所定数以上連続して存在する場合のみを含むものとしてもよい。後者においては、これらの画素が２次元的に所定以上の広さを有していることを条件としてもよいし、いずれか一方向に所定以上連続していることを条件としてもよい。前記画像領域の広さを広くすれば、その分、第２の多値化手段によってハーフトーン処理される領域が広くなるため、処理時間を短縮することができる。一方、第１の多値化手段によってハーフトーン処理される領域が狭くなるため、多少なりとも画質の低下を招く。前記画像領域は、処理の時間と画質とを考慮して、画像データの種類や解像度、第１の多値化手段によるハーフトーン処理の時間と第２の多値化手段によるハーフトーン処理の時間との比などに基づいて適切な値を選択することができる。
【００１１】
また、前記所定の距離も種々の値に設定可能である。所定の距離を１画素分に設定し、前記一定の階調値とは異なる階調値（以下、他の階調値という）を有する画素に隣接する画素が全て前記画像領域に該当し得るように設定することもできるし、他の階調値を有する画素から数画素離れて存在する画素のみが前記画像領域に該当するように設定することもできる。他の階調値を有する画素では、第１の多値化手段により誤差拡散法を用いたハーフトーン処理が行われる。これらの画素では、ハーフトーン処理の結果に基づいて生じた誤差が未処理の画素に拡散される。従って、一定の階調値を有する画素のうち、他の階調値を有する画素近傍に位置する画素には、このような誤差が拡散される。一定の階調値を有する画素であっても、かかる誤差の影響が有意に残存する画素では、第１の多値化手段により誤差の影響を考慮した上でハーフトーン処理を行うことが望ましい。こうすれば、他の階調値を有する画素で生じた誤差を解消することができ、高画質な画像処理を実現することができる。本発明の画像処理装置では、第１の多値化手段において誤差が拡散される領域を考慮し、かかる誤差の影響が有意に残存する領域を前記画像領域から除外するように、前記所定の距離を設定することができ、かかる設定に基づいて前記画像領域を判定することによって、画質を低下させることなく、高速でのハーフトーン処理を実現することができる。
【００１２】
なお、前記画像領域は種々の方法により判定することができる。
例えば、前記判定手段は、前記画像データを構成する各画素の階調値に基づいて、前記ハーフトーン処理に先立って前記判定を行う手段であるものとすることができる。
また、前記判定手段は、各画素ごとに実行される前記ハーフトーン処理の過程において、前記一定の階調値を有する画素が連続して現れた場合に、該連続した画素のうちＮ番目（Ｎは自然数）以降の画素を前記画像領域に該当する画素であると判定する手段であるものとすることができる。
【００１３】
前者の手段によれば、ハーフトーン処理に先立って各画素が前記画像領域に該当するか否かを判定するため、画像領域を適切に判定することが可能となる。例えば、画像データがＸ方向とＹ方向の２方向で配列されている場合に、２次元的に所定の広さを有する領域を前記画像領域として判定することが可能である。また、かかる場合に、他の階調値を有する画素からの距離を、Ｘ方向とＹ方向で異なる距離に設定することも可能である。一方、後者の手段によれば、各画素ごとにハーフトーン処理を実行する過程において、前記画像領域を特定することができるため、該判定に要する時間が短くてすむという利点がある。
【００１４】
本発明の画像処理装置において、前記一定の階調値は種々の値に設定することができるが、
前記一定の階調値は、ハーフトーン処理結果に基づいて表現される濃度評価値のいずれかと実質的に等しい値であるものとすることが望ましい。
【００１５】
こうすれば、第２の多値化手段によりハーフトーン処理される領域で各画素ごとに生じる濃度誤差を非常に小さくすることができる。この結果、誤差の拡散処理を省略することによる画質への影響を非常に小さくすることができる。
【００１６】
例えば、ドットのオン・オフの２値でハーフトーン処理結果を表現する場合において、濃度評価値を８ビットで表すものとし、ドットがオフの状態における濃度評価値が値０、オンの状態における濃度評価値が値２５５に相当する場合を考える。このとき、一定の階調値を両者の平均値１２８とすると、ドットがオン・オフいずれの場合においても各画素ごとには階調値１２８相当の誤差が生じることになる。これに対し、一定の階調値を０付近の値とすれば、ドットをオフにした際に各画素ごとに生じる濃度誤差を非常に小さくすることができる。従って、未処理の画素への誤差の拡散を省略した際の画質への影響を非常に小さくすることができる。
【００１７】
なお、濃度評価値とほぼ一致する階調値は、必ずしも値０にする必要はなく、上述の例においてドットがオンの状態での濃度評価値に相当する値２５５に設定しても構わない。また、双方を一定の階調値としても構わない。さらに、各画素ごとに３値以上の階調値にハーフトーン処理する場合には、前記階調値を該３値のいずれの濃度評価値に設定しても構わない。また、一定の階調値に所定の幅をもたせてもよい。
【００１８】
本発明の画像処理装置において、このように一定の階調値を設定した場合には、
前記第２の多値化手段は、前記画像データに対応する濃度評価値のドットのオン・オフを一義的に決定することが望ましい。
【００１９】
こうすれば、第２の多値化手段は、非常に簡易な処理になると同時に、誤差拡散を省略したことによる画質への影響も最小限に抑えることができる。特に、一定の階調値が濃度評価値と一致している場合には、各画素において該濃度評価値のドットを一義的にオンするものとすれば、各画素において濃度誤差は生じないから、第２の多値化手段は誤差拡散を省略したことによる画質の低下を招くことなくハーフトーン処理を実行することができる。また、一定の階調値を値０とした場合には、一義的にドットをオフするものとすれば、各画素において濃度誤差が生じない。
【００２０】
本発明の画像処理装置において、
前記画像データは、複数の色について階調値を有するデータであり、
前記第２の多値化手段は、画質に影響の少ない所定の色についてのみ適用される手段であるものとすることができる。
【００２１】
こうすれば、画質への影響を特に抑制して、高画質な画像処理を短時間で実行することができる。画質に影響の少ない所定の色は、画像データおよび画像処理結果が用いられる態様に応じて種々設定することができる。例えば、画像処理結果が印刷装置に用いられる場合には、印刷時に比較的視認性の低い色を上記所定の色とすることができる。この印刷装置にシアン、マゼンタ、イエロのインクが用いられている場合には、比較的明度の高いイエロを前記所定の色とすることができる。シアン、マゼンタについて濃度の異なるインクが備えられている場合には、濃度の低い淡シアン、淡マゼンタをも所定の色としてもよい。なお、前記所定の色は、必ずしも明度の高い色に限定されるものではなく、例えば、印刷時に使用頻度の低い色を前記所定の色としてもよい。
【００２２】
本発明は、以下に示す画像処理方法として構成することもできる。
本発明の画像処理方法は、
階調値を有する画像データについて、各画素ごとに順次、ハーフトーン処理する画像処理方法であって、
（ａ）  前記画像データを入力する工程と、
（ｂ）  一定の階調値を有する領域であって、かつ、該一定の階調値とは異なる階調値を有する画素から所定の距離だけ離れて位置する画像領域に該当するか否かを判定する工程と、
（ｃ）  前記画像領域に該当しない画素について、各画素ごとに、処理済みの画素で生じた階調表現上の誤差を前記画像データに反映した上でハーフトーン処理するとともに、該ハーフトーン処理によって生じた誤差を未処理の画素に拡散する工程と、
（ｄ）  前記画像領域に該当する画素については、前記工程（ｃ）に代えて画像データの階調値に基づくハーフトーン処理のみを行う工程とを備える画像処理方法である。
かかる画像処理方法によれば、先に画像処理装置において説明したのと同様の作用により、高画質な画像処理を短時間で実現することができる。
【００２３】
本発明は、以下に示すプログラムを記録した記録媒体として構成することもできる。
本発明の記録媒体は、
階調値を有する画像データについて、各画素ごとに順次、ハーフトーン処理する機能を実現するためのプログラムをコンピュータ読みとり可能に記録した記録媒体であって、
前記画像データを入力する機能と、
一定の階調値を有する領域であって、かつ、該一定の階調値とは異なる階調値を有する画素から所定の距離だけ離れて位置する画像領域に該当するか否かを判定する機能と、
前記画像領域に該当しない画素について、各画素ごとに、処理済みの画素で生じた階調表現上の誤差を前記画像データに反映した上でハーフトーン処理するとともに、該ハーフトーン処理によって生じた誤差を未処理の画素に拡散する第１の多値化機能と、
前記画像領域に該当する画素については、前記第１の多値化機能に代えて画像データの階調値に基づくハーフトーン処理のみを行う第２の多値化機能とを実現するプログラムを記録した記録媒体である。
【００２４】
上記の各記録媒体に記録されたプログラムが、コンピュータに実行されることにより、先に説明した本発明の画像処理装置および画像処理方法を実現することができる。なお、記憶媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。また、通信経路を介して、上記コンピュータプログラムをコンピュータに供給するプログラム供給装置としての態様も含む。
【００２５】
本発明は、上述の印刷方法を実現可能な印刷装置の態様でも成立する。
本発明の印刷装置は、
階調値を有する画像データに基づいて、印刷媒体上に各画素ごとにドットを形成して画像を印刷する印刷装置であって、
前記画像データを入力する入力手段と、
一定の階調値を有する領域であって、かつ、該一定の階調値とは異なる階調値を有する画素から所定の距離だけ離れて位置する画像領域に該当するか否かを判定する判定手段と、
前記画像領域に該当しない画素について、各画素ごとに、処理済みの画素で生じた階調表現上の誤差を前記画像データに反映した上でハーフトーン処理すると共に、該ハーフトーン処理によって生じた誤差を未処理の画素に拡散する処理を行う第１の多値化手段と、
前記画像領域に該当する画素について、前記第１の多値化手段による処理に代えて、画像データの階調値に基づくハーフトーン処理のみを行う第２の多値化手段と、
前記ハーフトーン処理結果に基づいて、各画素ごとにドットを形成するドット形成手段とを備える印刷装置である。
【００２６】
かかる印刷装置は、先に画像処理装置で説明したのと同様の作用により、画像データのハーフトーン処理時間を短縮することができる。従って、本発明の印刷装置によれば、高画質な印刷を短時間で行うことができる。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態について、実施例に基づき説明する。
（１）装置の構成：
図１は、本発明の一実施例としての画像処理装置を適用した印刷装置の構成を示すブロック図である。図示するように、コンピュータ９０にスキャナ１２とプリンタ２２とが接続されている。このコンピュータ９０に所定のプログラムがロードされ実行されることにより画像処理装置として機能し、プリンタ２２と併せて印刷装置として機能する。本印刷装置は、例えば、スキャナ１２で読み込んだ画像に種々のレタッチを施した上でプリンタ２２により印刷を行う機能を実現することができる。後述する通り、プリンタ２２は単色での印刷専用のモノクロプリンタであり、スキャナ１２から読み込む画像もモノクロの画像である。実施例の印刷装置は、スキャナ１２に代えて、Ｘ線写真をディジタルで撮影するカメラを画像の入力機器として構成することも可能である。
【００２８】
印刷装置の一部を構成するコンピュータ９０は、プログラムに従って印刷に関わる動作を制御するＣＰＵ８１、ＲＯＭ８２、ＲＡＭ８３を中心に、バス８０により相互に接続された次の各部を備える。入力インターフェイス８４は、スキャナ１２やキーボード１４からの信号の入力を司り、出力インタフェース８５は、プリンタ２２へのデータの出力を司る。ＣＲＴＣ８６は画像を表示可能なＣＲＴ２１への信号出力を制御し、ディスクコントローラ（ＤＤＣ）８７は、ハードディスク１６やＣＤ−ＲＯＭドライブ１５あるいは図示しないフレキシブルドライブとのデータの授受を制御する。ハードディスク１６には、ＲＡＭ８３にロードされて実行される各種プログラムやデバイスドライバの形式で提供される各種プログラムなどが記憶されている。
【００２９】
このほか、バス８０には、シリアル入出力インタフェース（ＳＩＯ）８８が接続されている。このＳＩＯ８８は、モデム１８に接続されており、モデム１８を介して、公衆電話回線ＰＮＴに接続されている。コンピュータ９０は、このＳＩＯ８８およびモデム１８を介して、外部のネットワークに接続されており、特定のサーバーＳＶに接続することにより、画像の印刷に必要なプログラムをハードディスク１６にダウンロードすることも可能である。また、必要なプログラムをフレキシブルディスクＦＤやＣＤ−ＲＯＭによりロードし、コンピュータ９０に実行させることも可能である。当然、これらのプログラムは、印刷に必要なプログラム全体をまとめてロードする態様を採ることもできるし、その一部のみをモジュールとしてロードする態様を採ることもできる。
【００３０】
図２は実施例の印刷装置のソフトウェア構成を示すブロック図である。コンピュータ９０では、所定のオペレーティングシステムの下で、アプリケーションプログラム９５が動作している。オペレーティングシステムにはプリンタドライバ９６が組み込まれている。アプリケーションプログラム９５は、スキャナ１２から画像データＯＲＧを読み込み、画像のレタッチなどの処理を行う。
【００３１】
アプリケーションプログラム９５から印刷命令が出力されると、プリンタドライバ９６は、画像データをアプリケーションプログラム９５から受け取り、プリンタ２２が処理可能な信号に変換する。プリンタドライバ９６には、かかる変換を行うためにハーフトーンモジュール１００およびラスタライザ１０１が備えられている。ハーフトーンモジュール１００は、画像データの階調値をドットの分布によって表現するハーフトーン処理を行う。後述する通り、ハーフトーン処理は一定の階調値の画素が連続して現れた数に応じて２つの方法を使い分けて実行される。ハーフトーンモジュールは、一定の階調値の画素が連続して現れた数に関する情報を連続性カウンタＣＣに記憶し、該記憶を参照しながら２つの方法を使い分けてハーフトーン処理を行う。ラスタライザ１０１は、ハーフトーン処理された画像データをプリンタ２２に転送する順序に並べ替える処理を行う。
【００３２】
こうして処理された結果が印刷データＦＮＬとしてプリンタ２２に出力される。プリンタ２２は、ヘッドを主走査および副走査しつつ、プリンタドライバ９６から転送された画像データに基づいて、印刷用紙上にドットを形成して、画像を印刷する。
【００３３】
図３によりプリンタ２２の概略構成を説明する。図示するように、プリンタ２２は、紙送りモータ２３によって用紙Ｐを搬送する回路と、キャリッジモータ２４によってキャリッジ３１をプラテン２６の軸方向に往復動させる回路と、キャリッジ３１に搭載された印字ヘッド２８を駆動してインクの吐出およびドット形成を行う回路と、これらの紙送りモータ２３，キャリッジモータ２４，印字ヘッド２８および操作パネル３２との信号のやり取りを司る制御回路４０とから構成されている。
【００３４】
キャリッジ３１をプラテン２６の軸方向に往復動させる回路は、プラテン２６の軸と並行に架設されキャリッジ３１を摺動可能に保持する摺動軸３４と、キャリッジモータ２４との間に無端の駆動ベルト３６を張設するプーリ３８と、キャリッジ３１の原点位置を検出する位置検出センサ３９等から構成されている。
【００３５】
キャリッジ３１には、濃度の異なる４種類の黒インク（Ｋ１〜Ｋ４）を蓄えたインクカートリッジ７１が搭載可能である。キャリッジ３１の下部の印字ヘッド２８には計４個の印字ヘッド６１〜６４が形成されている。キャリッジ３１の底部には、これらのヘッドにそれぞれのインクタンクからインクを導くインク通路６８（図５参照）が設けられている。
【００３６】
図４は、印字ヘッド６１〜６４におけるノズルＮｚの配列を示す説明図である。これらのノズルの配置は、濃度の異なる４種類の黒インク（Ｋ１〜Ｋ４）に対応した４組のノズルアレイから成っており、４８個のノズルＮｚが一定のノズルピッチｋで千鳥状に配列されている。各ノズルアレイの副走査方向の位置は互いに一致している。ヘッドは濃度が低いインクＫ１から濃度が高いインクＫ４の順に主走査方向に配置されている。プリンタ２２は、これらのインクを用いて各画素ごとに濃度の異なる４種類のドットを形成可能である。
【００３７】
図５は印字ヘッド２８によるドットの形成原理を示す説明図である。図示の都合上、インクＫ１〜Ｋ３を吐出する部分について示した。インク用カートリッジ７１がキャリッジ３１に装着されると、各インクは図５に示すインク通路６８を通じてヘッド６１〜６４に供給される。図示する通り、ヘッド６１〜６４には、各ノズルごとにピエゾ素子ＰＥが配置されている。ピエゾ素子ＰＥは、周知の通り、電圧の印加により結晶構造が歪み、極めて高速に電気−機械エネルギの変換を行う素子である。ピエゾ素子ＰＥの両端に設けられた電極間に所定の時間幅で電圧を印加すると、図５に矢印で示すように、ピエゾ素子ＰＥが電圧の印加時間だけ伸張し、インク通路６８の一側壁を変形させる。この結果、インク通路６８の体積はピエゾ素子ＰＥの伸張に応じて収縮し、この収縮分に相当するインクが、粒子Ｉｐとなって、ノズルＮｚの先端から高速に吐出される。このインク粒子Ｉｐがプラテン２６に装着された用紙Ｐに染み込むことにより印刷が行われる。
【００３８】
プリンタ２２の各機能を制御する制御回路４０は、ＣＰＵ４１，ＰＲＯＭ４２，ＲＡＭ４３を備えるマイクロコンピュータとして構成されている。制御回路４０には、ヘッド６１〜６４のそれぞれにピエゾ素子を駆動するための駆動波形を出力するための発信器が設けられている。制御回路４０が、ヘッド６１〜６４の各ノズルについてドットのオン・オフを指定するデータに基づいて、駆動波形を出力すると、先に説明した原理に基づいて、オンに設定されたノズルからインクが吐出される。
【００３９】
以上説明したハードウェア構成を有するプリンタ２２は、紙送りモータ２３により用紙Ｐを搬送する副走査と、キャリッジ３１をキャリッジモータ２４により往復動させつつ各ヘッド６１〜６４のピエゾ素子ＰＥを駆動してドットを形成する主走査とを繰り返し行って用紙Ｐ上に単色の画像を多階調で印刷する。
【００４０】
なお、本実施例では、上述の通りピエゾ素子ＰＥを用いてインクを吐出するヘッドを備えたプリンタ２２を用いているが、他の方法によりインクを吐出するプリンタを用いるものとしてもよい。例えば、インク通路に配置したヒータに通電し、インク通路内に発生する泡（バブル）によりインクを吐出するタイプのプリンタに適用するものとしてもよい。また、インクを吐出するタイプのプリンタのみならず、いわゆる熱転写型、昇華型、ドットインパクト型などの種々のタイプのプリンタを適用することができる。
【００４１】
（２）ドット発生処理ルーチン：
次に、本実施例におけるドット発生処理ルーチンについて説明する。図６はドット発生処理ルーチンのフローチャートである。このルーチンはプリンタドライバ９６による処理であり、本実施例においてはコンピュータ９０のＣＰＵ８１により実行されるルーチンである。
【００４２】
ドット発生処理ルーチンが実行されると、ＣＰＵ８１は画像データを入力する（ステップＳ１０）。ここで入力されるデータは各画素ごとに黒の濃淡を０〜２５５の２５６階調で表したデータである。ＣＰＵ８１はこの画像データに基づいて、ハーフトーン処理を行う（ステップＳ２０）。ハーフトーン処理とは、各画素ごとに濃度の異なる４種類のドットについて、それぞれのオン・オフを判定する処理をいう。この処理内容については後述する。
【００４３】
全画素についてハーフトーン処理が終了すると（ステップＳ２００）、ＣＰＵ８１はラスタライズを行ってプリンタ２２にデータを出力する（ステップＳ２０５）。ラスタライズとは、データをプリンタ２２に転送する順序に並べ替える処理をいう。例えば、主走査の往復動双方向で画像を印刷する場合には、主走査の方向に応じてデータの配列を逆転させる。また、各ラスタを２本のノズルを用いて形成する、いわゆるオーバラップ記録を行う場合には、一方のノズルに奇数番目の画素のデータ、他方のノズルに偶数番目の画素のデータが供給されるようにデータの並べ替えを行う。奇数番目の画素のみを形成するノズルに対しては、偶数番目の画素にマスクデータが挿入される。プリンタ２２は、ラスタライズされたデータを受け取ってドットを形成し、画像を印刷する。
【００４４】
ハーフトーン処理の内容について説明する。本実施例では、濃度の異なる４種類のドットの記録率が画像データの階調値に応じて予め設定されている。記録率の設定例を図７に示す。記録率とは、一定の階調値を有する所定領域内の画素中にドットが形成される割合をいう。図示する通り、階調値が低い領域では、濃度の低いインクＫ１のみを使用してドットを形成する。階調値が高くなるにつれ、インクＫ１とインクＫ２とが混在してドットが形成される。記録率は、図７の設定の他、画像の階調表現、粒状感などを考慮して種々の関係に設定することができる。ハーフトーン処理では、図７に示した記録率が実現されるように、各画素ごとのドットのオン・オフを判定する。本実施例では、基本的には誤差拡散法に基づいて判定を行う。
【００４５】
本実施例のハーフトーン処理について説明する。図８はハーフトーン処理ルーチンのフローチャートである。プリンタ２２に備えられた４種類のインクＫ１〜Ｋ４について、この順序でドットのオン・オフの判定が行われる。この処理が開始されると、ＣＰＵ８１は画像データＤＩを入力する（ステップＳ１０５）。この画像データは、ドット発生処理ルーチン（図６）のステップＳ１０で入力されたものと同じである。次に、ＣＰＵ８１は図７のテーブルから各インクのレベルデータＬＤを読み取る（ステップＳ１１０）。最初にこの処理が実行されるときは、インクＫ１をドットのオン・オフの判定対象とするため、インクＫ１についてのレベルデータＬＤを読みとる。図７に画像データＤＩとレベルデータＬＤとの関係を示した。
【００４６】
レベルデータとは、記録率を８ビット、即ち０〜２５５の２５６段階の整数値で示した値をいう。本実施例では、階調値ＤＩとレベルデータＬＤとの関係を各インクごとに１次元のテーブルとしてＲＯＭ８２に記憶してある。ステップＳ１１０では、図７に示す通り、このテーブルから階調値ＤＩに対応するレベルデータＬＤを読みとる。
【００４７】
次に、ＣＰＵ８１は、処理対象となっているインクについてレベルデータＬＤがＮ画素連続で値０となっているか否かを判定する（ステップＳ１１５）。以下、かかる条件を満たす画素を特定領域とよぶ。本実施例では、後述する通り、特定領域の判断基準となる所定値Ｎを値３に設定している。先に説明した通りハーフトーン処理は各画素ごとに順番に実行される。プリンタドライバ９６は、各インクごとにレベルデータＬＤが値０となっている画素が連続して現れた数を記憶するためのカウンタ変数をＲＡＭ８３に記憶している。ハーフトーン処理ルーチンが実行され、各画素についてレベルデータＬＤが入力される度に、該レベルデータが値０である場合には、このカウンタ変数が値１ずつ増加する。例えば、ある画素についてインクＫ１のレベルデータが値０であれば、インクＫ１に対応したカウンタ変数が値１だけ増加する。インクＫ２のレベルデータが値０であればインクＫ２に対応したカウンタ変数が値１だけ増加する。あるインクにつき、レベルデータＬＤが値０でない画素が現れると、該インクに対応したカウンタ変数は値０にクリアされる。
【００４８】
ステップＳ１１５では、ＣＰＵ８１は、処理対象となっているインクに対応したカウンタ変数の値がＮ以上になっているか否かに基づいて、レベルデータＬＤが値０となっている画素の連続性を判定しているのである。なお、値ＮはレベルデータＬＤが値０となる画素が他の画像と識別し得る程度の面積を有する領域として存在するか否かの判断基準となる値であり、その設定方法については後述する。
【００４９】
図９にハーフトーン処理の順序と特定領域との関係を示す。図において印刷用紙Ｐ上に主走査方向および副走査方向に方眼状に配置されたマス目が各画素を意味する。図中の矢印で示す通り、左上の画素から順に主走査方向にハーフトーン処理が行われ、各ラスタの処理が終了すると、副走査方向に隣接するラスタに移行して処理を継続する。図中にあるラスタ上の画素ｃ１〜ｃ１０につき、レベルデータを示した。画素ｃ１〜ｃ３まではレベルデータが値０でないため、特定領域には該当しない。画素ｃ４，ｃ５はレベルデータが値０であるが、主走査方向に順に処理を行った場合、連続して３画素以上でレベルデータが値０となっている条件を満足していないため、特定領域に該当しない。図中の画素ｃ６〜ｃ１０が特定領域に該当する。
【００５０】
ＣＰＵ８１は、レベルデータＬＤが値０となる画素がＮ画素連続して現れているか否かに応じて、以下に示す通り、２つの方法を使い分けてハーフトーン処理を実行する。最初にＮ画素連続して現れていない場合について説明する。この場合は、以下に示す通り、レベルデータＬＤを用いた誤差拡散法によってハーフトーン処理を実行する。
【００５１】
レベルデータは図７のグラフに示す通り、値０〜２５５までの種々の正数値を取りうるが、印刷されるドットは各画素ごとに見ればオン（記録率１００％）またはオフ（記録率０％）の２つの状態しか取り得ない。従って、各画素ごとにドットのオン・オフを決定すれば、レベルデータによって表される記録率との間に誤差が生じる。誤差拡散法は、各画素で生じた誤差を該画素の周辺の未処理の画素に拡散する。また、各画素でのドットのオン・オフの判定は、処理済みの画素から拡散された誤差を反映して行われる。誤差拡散法は、このように誤差の拡散・反映を繰り返し行うことにより、局所的な誤差を極小に抑えたハーフトーン処理方法をいう。
【００５２】
上述の処理を行うため、ＣＰＵ８１は、レベルデータＬＤに対して処理済みの画素からの誤差を反映して、補正データＬＤＸを生成する（ステップＳ１２５）。本実施例では、誤差バッファに記憶されていた誤差をレベルデータＬＤに加えた値を補正データＬＤＸとしている。本実施例では、各インクごとにハーフトーン処理を独立して実行しているから、誤差バッファもＫ１〜Ｋ４のインクに対応して４種類設けられている。ステップＳ１２５では、処理対象となっているインクに対応した誤差バッファに記憶された誤差をレベルデータＬＤに反映する。
【００５３】
次に、補正データＬＤＸと所定の閾値ＴＨとの大小関係を判定する（ステップＳ１３０）。補正データＬＤＸが閾値ＴＨよりも小さい場合には、ドットをオフにすべきと判定して判定結果を表す結果値ＲＤに、ドットのオフを意味する値０を代入する（ステップＳ１３５）。補正データＬＤＸが閾値ＴＨ以上である場合には、ドットをオンにすべきと判定して結果値ＲＤに、ドットのオンを意味する値１を代入する（ステップＳ１４０）。閾値ＴＨは、ドットのオン・オフを判定する基準となる値であり、いかなる値に設定することも可能である。本実施例では、レベルデータＬＤの中間の値１２８に設定した。
【００５４】
次に、ＣＰＵ８１は誤差計算および誤差拡散処理を行う（ステップＳ１４５）。誤差計算とは、判定対象となっている画素における補正後のレベルデータＬＤＸと、ドットのオン・オフの判定結果との誤差をいう。例えば、レベルデータＬＤＸが値２３９の画素についてドットをオンにすべきと判定された場合を考える。ドットをオンにするとは、その画素の記録率が１００％、即ちレベルデータ２５５相当であることを意味する。従って、該画素では、２３９−２５５＝−１６の誤差が生じたことになる。
【００５５】
こうして計算された誤差は、重みをつけて周辺の未処理の画素に拡散される。誤差を拡散する範囲および重みの例を図１０に示した。ハッチングを施した画素ＰＰで生じた誤差は、それぞれ図示する重みを乗じて、主走査方向、副走査方向に数画素に亘って拡散される。例えば、−１６の誤差が生じている場合には、主走査方向に隣接する画素Ｐ１には、その１／４に相当する−４が拡散される。なお、誤差は未処理の画素に拡散される必要があるため、図１０中において画素ＰＰの左側の画素には誤差が拡散されない。
【００５６】
次に、ステップＳ１１５において、Ｎ画素連続でレベルデータＬＤが値０になっていたと判定された場合について説明する。この場合には、ＣＰＵ８１は、該画素のドットをオフにすべきと一義的に判定し、結果値ＲＤに値０を代入する（ステップＳ１２０）。つまり、この場合には、処理済みの画素から拡散された誤差による補正を行うことなく、ドットのオン・オフを一義的に設定するのである。また、誤差計算および誤差拡散処理も行わない。
【００５７】
ここで、誤差拡散法によるハーフトーン処理（ステップＳ１２５〜Ｓ１４５）と、一義的なオン・オフの設定（ステップＳ１２０）との使い分けの判断基準となる値Ｎの設定について説明する。値Ｎは、基本的には１以上のいかなる値に設定することもできるが、ハーフトーン処理結果の画質に与える影響および処理速度の向上を考慮すると以下の条件で設定することが望ましい。
【００５８】
一義的なオン・オフの設定（ステップＳ１２０）は、誤差拡散法によるハーフトーン処理に比較して明らかに処理に要する時間が短い。従って、一義的なオン・オフの設定（ステップＳ１２０）を適用する割合が増える程、画像全体のハーフトーン処理に要する時間を短縮することができる。かかる観点からすれば、値Ｎは小さい値に設定することが望ましい。
【００５９】
一方、画質の面からすれば、値Ｎには下限が存在する。レベルデータＬＤが値０となる領域は、処理済みの画素から拡散された誤差を考慮しなければ、ドットをオフにすべき画素に相当する。従って、一義的なオン・オフの設定（ステップＳ１２０）は、レベルデータＬＤが値０となる画素が、処理済みの画素から拡散される誤差の影響が十分小さくなる程度に連続した場合に適用されることが望ましい。従って、処理速度と画質の双方を考慮すれば、値Ｎは、誤差の拡散領域（図１０参照）および画像の解像度に応じて、処理済みの画素から拡散される誤差の影響が十分小さくなる値に設定することが望ましい。本実施例では、かかる観点に基づいてＮ＝３に設定されている。もちろん、これ以外の種々の値に設定してもよい。
【００６０】
以上の処理によって、まずインクＫ１についてドットのオン・オフが判定された。次に、ＣＰＵ８１は、全インクについて処理が終了したか否かを判定し（ステップＳ１５０）、終了していない場合には、次のインクについての処理を実行する。例えば、インクＫ１が終了した後は、インクＫ２について処理を行う。
【００６１】
インクＫ２については、既に画像データＤＩの入力は済んでいるため、ステップＳ１０５の処理を省略し、ステップＳ１１０〜Ｓ１４５の処理を実行する。この際、レベルデータは図７のインクＫ２に対応したデータを用いる。また、Ｎ画素連続でレベルデータＬＤが値０であるか否かの判定（ステップＳ１１５）は、インクＫ２に対応したカウンタ変数に基づいて行われる。誤差拡散法による多値化においてレベルデータに反映される誤差（ステップＳ１２５）もインクＫ２に対応したバッファに記憶された値が用いられる。このようにＣＰＵ８１は、全インクについて終了するまで、各インクごとに順次ドットのオン・オフを判定する（ステップＳ１５０）。
【００６２】
以上で説明した本実施例の画像処理装置および印刷装置によれば、ハーフトーン処理を基本的に誤差拡散法によって行うため、高画質な印刷を実現することができる。また、レベルデータが値０となる一部の領域では、誤差拡散法によることなく一義的にドットをオフにする。かかる画素では、誤差拡散法による複雑な処理、特に誤差計算及び拡散処理を省略することができるため、ハーフトーン処理に要する時間を短縮することができる。しかも、一義的にドットをオフにする画素は、先に説明した通り、処理済みの画素から拡散される誤差の影響が小さくなる範囲において、レベルデータが値０となっている画素に限っているため、誤差拡散などの処理を省略しても十分高画質な処理を行うことができる。従って、本実施例の画像処理装置および印刷装置によれば、高画質な印刷を短時間で実行することができる。
【００６３】
以上で説明した実施例では、レベルデータが値０となる領域においてのみドットのオン・オフを一義的に判定するものとした。これに対し、レベルデータが値２５５となる領域、即ち記録率が１００％となる領域においてドットを一義的にオンにするものと判定してもよい。また、インク量の異なるドットを形成可能なノズルを備えるプリンタを適用することにより、各画素ごとにレベルデータで値０（ドットのオフ），値２５５（ドットのオン）の他、値１２８（インク量の少ないドットのオン）など中間の値も実現可能な場合には、値１２８となる領域においてインク量の少ないドットを一義的にオンにするものとしてもよい。上記実施例では、画像データの階調値を一旦レベルデータに置き換えてからドットのオン・オフを判定しているが、階調値のまま処理するものとしても構わないことはいうまでもない。また、上記実施例では、レベルデータが厳密に値０の領域のみでドットのオン・オフを一義的に判定しているが、ある程度の幅を持たせ、レベルデータが所定の値以下の領域に適用するものとしてもよい。
【００６４】
本実施例のハーフトーン処理ルーチンにおいて、ドットのオンを一義的に設定する処理（ステップＳ１２０）は、種々の態様からなる処理に置き換えることが可能である。
【００６５】
図１１に、変形例としてのハーフトーン処理ルーチンのフローチャートを示す。ここでは、Ｎ画素連続でレベルデータが０以外の所定の正数値ｍとなっている場合を例に取り、図８のフローチャート中のステップＳ１２０に代わる処理のみを図示する。つまり、レベルデータがＮ画素連続して値ｍとなる場合（ステップＳ１１５‘）に変形例としてのハーフトーン処理ルーチンが実行される。変形例としてのハーフトーン処理ルーチンでは、ドットのオン・オフを一義的に設定するのではなく、いわゆるディザ法により設定する。つまり、変形例としてのハーフトーン処理ルーチンでは、ＣＰＵ８１は、レベルデータＬＤが閾値ＴＨＤ以上であるか否かを判定する（ステップＳ１２１）。レベルデータＬＤが閾値ＴＨＤ以上である場合には、ドットをオンにすべきと判定し、結果値ＲＤに値１を代入する（ステップＳ１２３）。レベルデータＬＤが閾値ＴＨＤよりも小さい場合には、ドットをオフにすべきと判定し、結果値ＲＤに値０を代入する。閾値ＴＨＤは、ディザテーブルにより各画素ごとに特定される。
【００６６】
図１２にディザ法によるドットのオン・オフの判定の考え方を示した。図示する通り、レベルデータＬＤとディザテーブルによって画素ごとに特定される閾値ＴＨＤとの大小関係に基づいてドットのオン・オフが判定される。図１２では、ドットがオンとなる画素にハッチングを付して示した。
【００６７】
ディザテーブルは、ドットの分散性を確保しつつ、所定の画像領域で濃度誤差が解消されるように設定されている。従って、ほぼ一定の階調値を有する画像領域において、ディザ法によるハーフトーン処理を行えば、局所的な濃度誤差がほとんど生じないため、誤差の拡散を省略しても画質を低下させることがない。
【００６８】
また、変形例のようにディザ法を適用する場合には、その適用を判断する基準となる値ｍを種々の値に設定可能となる利点がある。つまり、実施例（図８）では、各画素のレベルデータが、ドットのオフに相当する値０となっている領域においてのみ、ドットのオン・オフを一義的に判定する方法が適用される。かかる領域以外でドットのオン・オフを一義的に判定するものとすれば、実現すべき記録率と実際の記録率との間に誤差が生じ、画像データの階調を適切に表現できなくなるため、画質が低下する。これに対し、ディザ法を適用すれば、一定の領域内で所定の記録率を実現するようにドットのオン・オフを制御することができる。従って、レベルデータが値０以外の領域にも適用することができる。例えば、レベルデータが値１２８の領域、つまり記録率５０％に相当する領域において上述のディザ法によるハーフトーン処理方法を適用するものとすることもできる。この結果、画像データに応じて、画質に与える影響が比較的少ない階調領域において、ディザ法によるハーフトーン処理を適用することができ、高画質な印刷を高速で行うことができる。
【００６９】
（３）第２実施例：
第１実施例では、単色の印刷を実行する印刷装置を例にとって説明した。これに対し、多色で印刷を実行する印刷装置に本発明を適用した場合の例を第２実施例として説明する。第２実施例のハードウェア構成は、第１実施例の構成（図１〜図５参照）とほぼ同じである。第１実施例では、単色のインクを４種類搭載しているのに対し、第２実施例では、多色での印刷を実現するために、シアン、マゼンタ、イエロ、ブラックなど色相の異なるインクを搭載する点で相違する。かかる場合に、図８に示したのと同様、全てのインクについて誤差拡散法と、一義的にドットのオン・オフを設定する処理とを使い分けてハーフトーン処理を行うことも可能であるが、第２実施例では、一部のインクについてのみ両者を使い分けて、残余のインクについては誤差拡散法のみを適用するものとした。
【００７０】
第２実施例におけるハーフトーン処理ルーチンのフローチャートを図１３に示す。ここでは、イエロについては上述の２つの方法を使い分けてハーフトーン処理を行い、残余のインクについては誤差拡散法によりハーフトーン処理を行うものとした。
【００７１】
このハーフトーン処理ルーチンが開始されると、ＣＰＵ８１は、画像データＤＩを入力し、レベルデータを読み込む（ステップＳ１０５，Ｓ１１０）。これらの処理は実施例（図８）の処理と同じである。画像データＤＩとは、各色ごとに８ビット（２５６段階）の階調値を有するデータである。ハーフトーン処理ルーチンは、シアン、マゼンタ、イエロ、ブラックの各色につき順次実行されるから、ステップＳ１０５では、処理対象となっている色についての階調値を画像データとして入力する。
【００７２】
次に、ＣＰＵ８１はハーフトーン処理の対象がイエロであるか否かを判定する（ステップＳ１１２）。イエロのインクを処理している場合には、Ｎ画素連続でレベルデータが値０であるか否かを判定し（ステップＳ１１５）、この条件を満たす場合には、一義的にドットをオフに設定して、結果値ＲＤに値０を代入する（ステップＳ１２０）。この場合には、実施例（図８）と同様、誤差の計算および拡散は行わない。上記条件を満たさない場合には、誤差拡散法によるハーフトーン処理を行う（ステップＳ１２５〜Ｓ１４５）。誤差拡散法によるハーフトーン処理の内容は実施例（図８）と同様であるので説明を省略する。
【００７３】
一方、ハーフトーン処理の対象がイエロでない場合には、Ｎ画素連続でレベルデータが値０であるか否かの判定をスキップする。従って、イエロ以外のインクについては、必ず誤差拡散法によるハーフトーン処理を実行する（ステップＳ１２５〜Ｓ１４５）。こうして全インクにつきハーフトーン処理を実行するのである（ステップＳ１５０）。
【００７４】
このようにハーフトーン処理を行えば、イエロについて２つの方法を使い分けることにより、全てのインクを誤差拡散法でハーフトーン処理する場合に比較して処理時間を短縮することができる。また、イエロは明度が高く、画質への影響が小さい。このように画質への影響が小さいインクについてのみ２つの方法を適用することによって、全体を誤差拡散法でハーフトーン処理したのと遜色ない画質を実現することができる。画質への影響が小さいインクは、必ずしもイエロのみに限られるものではない。シアン、マゼンタについて濃度の低い淡シアン、淡マゼンタのインクを備える場合には、これらのインクも画質への影響が小さいインクとして扱うことができる。また、画質への影響が小さいインクは、必ずしも明度の高いインクのみならず、比較的使用頻度の低いインクを選択してもよい。
【００７５】
以上で説明した各実施例では、レベルデータが値０となる画素がＮ画素連続する領域について、ドットのオン・オフを一義的に設定する方法を適用するものとしていた。かかる方法では、ハーフトーン処理ルーチンを実行する過程において、ドットのオン・オフを一義的に設定する方法を適用する領域（以下、特定領域という）に該当するか否かを判定することができるため、判定処理が容易になり、判定に要する時間も比較的短くて済むという利点がある。
【００７６】
（４）第３実施例：
次に、第３実施例としての画像処理装置および印刷装置について説明する。第３実施例のハードウェア構成は、第１実施例と同じである。第３実施例はソフトウェア構成が第１実施例と相違する。第３実施例におけるソフトウェア構成を図１４に示す。第１実施例のソフトウェア構成（図２）に比較し、特定領域判定モジュール１０２が追加される。また、連続性カウンタＣＣに代えて、特定領域フラグＳＦが用いられる。その他のモジュールは第１実施例と同じである。従って、第１実施例と同様、ドットのオン・オフを一義的に設定する方法と誤差拡散法の２つを使い分けてハーフトーン処理が実行される。
【００７７】
かかるソフトウェア構成を有する第３実施例では、アプリケーションプログラム９５からプリンタドライバ９６に受け渡された画像データは、まず特定領域判定モジュール１０２が受け取る。特定領域判定モジュール１０２は、各画素ごとの画像データを近傍の画素のデータと比較することで、所定の広さでレベルデータが値０となる特定領域に含まれるか否かを判定する。画素の配列と特定領域との関係を図１５に示す。本実施例では、主走査方向、副走査方向に２次元的に配列された画素について、レベルデータが値０となる画素が両方向に３以上連続する領域を特定領域とした。図１５中において、レベルデータが値０となっている画素に丸印を付して示した。何もシンボルを付していない画素は、レベルデータが値０でないことを意味する。図示する通り、ＰＣ１、ＰＣ２その他ハッチングを付した画素では、主走査方向または副走査方向のいずれかの方向に３画素よりも近い範囲にレベルデータが０以外の値となる画素が存在するため、特定領域には含まれない。ＰＣ３など塗りつぶしのシンボルで示した画素は、両方向に３画素以内の範囲はレベルデータが値０となっているため、特定領域に含まれる。
【００７８】
こうして判定された結果は、特定領域フラグＳＦに記憶される。各画素に対応した特定領域フラグＳＦには、特定領域に該当する画素については値１、その他の画素については値０が記憶される。特定領域判定モジュール１０２による処理は、ハーフトーンモジュール１００による処理に先立って行われる。ハーフトーンモジュール１００は、特定領域判定モジュール１０２によって設定された特定領域フラグＳＦに基づいて、２つの方法を使い分けてハーフトーン処理を行う。特定領域に該当する画素については、ドットのオン・オフを一義的に設定する方法を適用し、その他の画素については、誤差拡散法によるハーフトーン処理を行う。この処理は、図８に示したステップＳ１１５の判定を、特定領域フラグＳＦが値１であるか否かに置換することによって実現される。
【００７９】
第３実施例によれば、特定領域判定モジュール１０２による特定領域の判定をハーフトーン処理に先立って実行することにより、画像データ全体を考慮して特定領域を判定することができる。従って、図１５に示したように２次元的に所定の広さを有する領域を特定領域としたり、レベルデータが０以外の値となる画素と特定領域との距離を柔軟に設定することが可能となる。この結果、特定領域を高画質および高速での処理を実現するのに適した状態に設定することが可能となる。
【００８０】
以上、本発明の種々の実施例について説明してきたが、本発明はこれらに限定されるものではなく、その要旨を逸脱しない範囲で、種々の形態による実施が可能である。例えば、上記実施例で説明した種々の制御処理は、その一部または全部をハードウェアにより実現してもよい。
【図面の簡単な説明】
【図１】実施例の印刷装置の概略構成図である。
【図２】実施例の印刷装置のソフトウェア構成を示す説明図である。
【図３】プリンタ２２の概略構成を示す説明図である。
【図４】プリンタ２２におけるノズル配置を示す説明図である。
【図５】プリンタ２２によるドットの形成原理を示す説明図である。
【図６】ドット発生処理ルーチンのフローチャートである。
【図７】ドットの記録率の設定例を示す説明図である。
【図８】ハーフトーン処理ルーチンのフローチャートである。
【図９】ハーフトーン処理の順序と特定領域との関係を示す説明図である。
【図１０】誤差拡散の重み値の設定例を示す説明図である。
【図１１】変形例によるハーフトーン処理ルーチンのフローチャートである。
【図１２】ディザ法の考え方を示す説明図である。
【図１３】第２実施例によるハーフトーン処理ルーチンのフローチャートである。
【図１４】第３実施例におけるソフトウェア構成を示す説明図である。
【図１５】第３実施例における特定領域の判定を示す説明図である。
【符号の説明】
１２…スキャナ
１４…キーボード
１６…ハードディスク
１８…モデム
２２…プリンタ
２３…モータ
２４…キャリッジモータ
２６…プラテン
２８…印字ヘッド
３１…キャリッジ
３２…操作パネル
３４…摺動軸
３６…駆動ベルト
３８…プーリ
３９…位置検出センサ
４０…制御回路
６１〜６４…印字ヘッド
６８…インク通路
７１…カートリッジ
８０…バス
８１…ＣＰＵ
８２…ＲＡＭ
８３…ＲＯＭ
８４…入力インターフェイス
８５…出力インタフェース
８６…ＣＲＴＣ
８７…ディスクコントローラ
８８…シリアル入出力インタフェース
９０…コンピュータ
９５…アプリケーションプログラム
９６…プリンタドライバ
１００…ハーフトーンモジュール
１０１…ラスタライザ
１０２…特定領域判定モジュール
２０１…入力部
２０２…バッファ
２０３…制御部
２０４…主走査部
２０５…副走査部
【図１】
0003757650.tif 000002
【図２】
0003757650.tif 000003
【図３】
0003757650.tif 000004
【図４】
0003757650.tif 000005
【図５】
0003757650.tif 000006
【図６】
0003757650.tif 000007
【図７】
0003757650.tif 000008
【図８】
0003757650.tif 000009
【図９】
0003757650.tif 000010
【図１０】
0003757650.tif 000011
【図１１】
0003757650.tif 000012
【図１２】
0003757650.tif 000013
【図１３】
0003757650.tif 000014
【図１４】
0003757650.tif 000015
【図１５】
0003757650.tif 000016