(57)【要約】【課題】処理速度の低下を抑制しつつ画質を向上することができる画像処理装置を提供する。【解決手段】誤差バッファ５５は、画像データを構成する各画素から、ドット形成の有無の判定結果に基づき拡散される誤差値を記憶する。第１のドット判定部５１は、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較して、第１の所定位置におけるドット形成の有無を判定する。第１の誤差拡散部５２は、第１のドット判定部５１の判定結果に応じて第１の所定位置にある各画素に生じる誤差値を拡散させる。第２のドット判定部５３は、第２の所定位置にある画素について順次着目し、着目画素の階調値と誤差バッファ５５に記憶された着目画素に対する誤差値とに基づいて、ドット形成の有無を判定する。第２の誤差拡散部５４は、第２のドット判定部５３の判定結果に応じて着目画素に生じる誤差値を拡散させる。【選択図】      図３
2005250897.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに変換する画像処理装置において、
前記画像データを構成する各画素から、ドット形成の有無の判定結果に基づき拡散される誤差値を記憶する拡散誤差記憶部と、
前記画像データを構成する画素のうち、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較して、同第１の所定位置におけるドット形成の有無を判定する第１のドット判定部と、
前記第１のドット判定部の判定結果に応じて前記第１の所定位置にある各画素に生じる誤差値を、前記第１のドット判定部の判定時における未処理画素に対して拡散させる第１の誤差拡散部と、
前記画像データを構成する画素のうち、前記第１の所定位置を除く第２の所定位置にある画素について順次着目し、着目画素の階調値と前記拡散誤差記憶部に記憶された同着目画素に対する誤差値とに基づいて、ドット形成の有無を判定する第２のドット判定部と、
前記第２のドット判定部の判定結果に応じて前記着目画素に生じる誤差値を、同着目画素から複数の画素に対して拡散させる第２の誤差拡散部と、
を備えた画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、前記第１のドット判定部は、前記第１の所定位置にある画素の階調値とその画素に対して前記拡散誤差記憶部に記憶された誤差値とを加算した判定データと、前記ディザマトリクスの判定値とを比較して、ドット形成の有無を判定する画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、前記第１のドット判定部は、前記判定データに、同一ラスタの画素から拡散されてきた誤差値は加算せず、既処理ラスタの画素から拡散されてきた誤差値のみを加算する画像処理装置。
【請求項４】
請求項１〜３のうち何れか１項に記載の画像処理装置において、前記画像データのラスタには前記第１の所定位置と前記第２の所定位置とが混在するように設定されており、前記第１の誤差拡散部は、前記画像データの処理方向とは逆方向にある画素に対して誤差値を拡散させる画像処理装置。
【請求項５】
請求項１〜４のうち何れか１項に記載の画像処理装置において、前記第１の所定位置は、前記画像データにおいて市松状に設定されている画像処理装置。
【請求項６】
複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに変換する画像処理方法において、
前記画像データを構成する各画素から、ドット形成の有無の判定結果に基づき拡散される誤差値を記憶する拡散誤差記憶部を備えており、
前記画像データを構成する画素のうち、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較して、同第１の所定位置におけるドット形成の有無を判定する第１のドット判定ステップと、
前記第１のドット判定ステップの判定結果に応じて前記第１の所定位置にある各画素に生じる誤差値を、前記第１のドット判定ステップにおける未処理画素に対して拡散させる第１の誤差拡散ステップと、
前記画像データを構成する画素のうち、前記第１の所定位置を除く第２の所定位置にある画素について順次着目し、着目画素の階調値と前記拡散誤差記憶部に記憶された同着目画素に対する誤差値とに基づいて、ドット形成の有無を判定する第２のドット判定ステップと、
前記第２のドット判定ステップの判定結果に応じて前記着目画素に生じる誤差値を、同着目画素から複数の画素に対して拡散させる第２の誤差拡散ステップと、
を備えた画像処理方法。
【請求項７】
複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに変換する処理を制御部が実行するための画像処理プログラムであって、
前記画像データを構成する各画素から、ドット形成の有無の判定結果に基づき拡散される誤差値を記憶する拡散誤差記憶部を備えており、
前記制御部が、
前記画像データを構成する画素のうち、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較して、同第１の所定位置におけるドット形成の有無を判定する第１のドット判定処理と、
前記第１のドット判定処理の判定結果に応じて前記第１の所定位置にある各画素に生じる誤差値を、前記第１のドット判定処理における未処理画素に対して拡散させる第１の誤差拡散処理と、
前記画像データを構成する画素のうち、前記第１の所定位置を除く第２の所定位置にある画素について順次着目し、着目画素の階調値と前記拡散誤差記憶部に記憶された同着目画素に対する誤差値とに基づいて、ドット形成の有無を判定する第２のドット判定処理と、
前記第２のドット判定処理の判定結果に応じて前記着目画素に生じる誤差値を、同着目画素から複数の画素に対して拡散させる第２の誤差拡散処理と、
を実行するための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及び画像処理プログラムに関するものである。
【背景技術】
【０００２】
コンピュータで形成した画像やデジタルカメラで撮影した画像等の出力装置として、印刷媒体上にインクドットを形成して画像を印刷する印刷装置が広く使用されている。インクジェットプリンタ等のこれらの印刷装置においては、局所的にはドットを形成するか否かの何れかの状態しか表現し得ないが、ドットの形成密度を適切に制御することで、階調が連続的に変化する画像を印刷することができる。つまり、多階調の画像データを印刷するには、印刷しようとする画像の階調値に応じた適切な密度でドットが形成されるようにドットの形成を制御する必要がある。画像データの階調値に応じた適切なドットの形成密度が得られるようにドットの形成有無を判定するための代表的な手法に、ディザ法や誤差拡散法などがある。
【０００３】
ディザ法は、画像データの階調値とディザマトリクスの閾値とを画素毎に比較して、入力画素が閾値よりも大きい場合はドットを形成し、閾値以下の場合はドットを形成しないように画像データを構成する各画素の階調値を２値化するものである。ディザ法では画素毎にドット形成の有無を判定するのみであるため、高速で処理が可能であるが、ディザマトリクスを使用することにより所定のディザパターンが生じるという画質の上での問題があった。
【０００４】
また、誤差拡散法は、画像データを構成する各画素を２値化する際に生じた誤差（すなわち、各画素の入力値と出力値との差分）を、周辺の複数の画素へ重み係数を加えて拡散させるものである。こうして、多階調の画像データと、その２値化画像との間に生じる誤差を平均的に最小にすることができ、優れた画質の２値化画像を得ることができる。誤差拡散法により処理すれば、ディザ法により処理するよりも高画質を得ることはできるが、誤差を拡散するために乗算を含むいくつかの計算を行う必要があるため、高速処理が困難となる。
【０００５】
そこで、誤差拡散法及びディザ法の利点を活かし、一部のドットは誤差拡散法によりドットの形成有無を判定し、他のドットはディザ法によりドットの形成有無を判定する画像処理装置も存在する（例えば、特許文献１参照）。
【０００６】
ところで、誤差拡散法は画質の上での問題もあった。例えば、各画素において拡散されてくる誤差値がある程度累積しないとドットが形成されないため、階調値が低い領域ではドット形成に遅れが生じ、不自然にドットが抜けてしまう場合があった。また、着目画素からは未処理画素にしか誤差を反映させることができないため、着目画素から拡散される誤差値は特定の方向（画素の処理方向）に偏って累積されてしまう。すると、処理が進むとドット表現が不自然な方向に傾いたり、ドット繋がりが生じたりする場合があった。
【特許文献１】特開２００１−１５７０５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、ディザ法と誤差拡散法とを併用する場合、ディザ法を施す画素と誤差拡散法を施す画素とを選択する必要があり、そのための処理や時間が付加的に必要となるため、画像データの処理速度の低下を招いていた。また、画像データを構成する一部の画素には誤差拡散法を施すが、誤差拡散法を施すことによる画質の上での問題は解決されていなかったため、誤差拡散法を施す領域が大きくなると、上述したような問題が生じる虞があった。
【０００８】
本発明は上記課題に鑑みなされたものであり、処理速度の低下を抑制しつつ画質を向上することができる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに変換する画像処理装置において、前記画像データを構成する各画素から、ドット形成の有無の判定結果に基づき拡散される誤差値を記憶する拡散誤差記憶部と、前記画像データを構成する画素のうち、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較して、同第１の所定位置におけるドット形成の有無を判定する第１のドット判定部と、前記第１のドット判定部の判定結果に応じて前記第１の所定位置にある各画素に生じる誤差値を、前記第１のドット判定部の判定時における未処理画素に対して拡散させる第１の誤差拡散部と、前記画像データを構成する画素のうち、前記第１の所定位置を除く第２の所定位置にある画素について順次着目し、着目画素の階調値と前記拡散誤差記憶部に記憶された同着目画素に対する誤差値とに基づいて、ドット形成の有無を判定する第２のドット判定部と、前記第２のドット判定部の判定結果に応じて前記着目画素に生じる誤差値を、同着目画素から複数の画素に対して拡散させる第２の誤差拡散部と、を備えたことを要旨とする。
【００１０】
また、上記の画像処理装置に対応する本発明の画像処理方法は、複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに変換する画像処理方法において、前記画像データを構成する各画素から、ドット形成の有無の判定結果に基づき拡散される誤差値を記憶する拡散誤差記憶部を備えており、前記画像データを構成する画素のうち、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較して、同第１の所定位置におけるドット形成の有無を判定する第１のドット判定ステップと、前記第１のドット判定ステップの判定結果に応じて前記第１の所定位置にある各画素に生じる誤差値を、前記第１のドット判定ステップにおける未処理画素に対して拡散させる第１の誤差拡散ステップと、前記画像データを構成する画素のうち、前記第１の所定位置を除く第２の所定位置にある画素について順次着目し、着目画素の階調値と前記拡散誤差記憶部に記憶された同着目画素に対する誤差値とに基づいて、ドット形成の有無を判定する第２のドット判定ステップと、前記第２のドット判定ステップの判定結果に応じて前記着目画素に生じる誤差値を、同着目画素から複数の画素に対して拡散させる第２の誤差拡散ステップと、を備えたことを要旨とする。
【００１１】
上述した画像処理装置及び画像処理方法によれば、画像データの特定の部分にドット抜けが生じるのを抑制することができる。即ち、第１の所定位置にある画素については、ディザマトリクスを用いてドット形成の有無が判定されるため、ドット形成が遅れてドット抜けが生じるのを抑制することができる。そして、第２の所定位置にある画素については、第２のドット判定部がドット判定を行う際には、第１の誤差拡散部により誤差値が拡散されているため、誤差値の累積が遅れてドット抜けが生じるのを抑制することができる。また、第２の誤差拡散部は、第２の所定位置にある画素に対してのみ誤差を拡散させるため、少ない計算量で遠くの画素まで誤差値を拡散させることができ、ドット表現の特定の方向への傾斜やドット繋がり等の不具合の発生を抑制することができる。また、第１の所定位置にある画素に対してのみディザマトリクスを用いたドット判定が行われ、残りの第２の所定位置にある画素に対しては誤差拡散が行われるため、ディザマトリクスを使用することにより特有のディザパターンが発生するのを抑制することができる。
【００１２】
また、第１の所定位置にある画素に対しては、ディザマトリクスを用いてドット判定を行うため、画像データを構成するすべての画素について誤差拡散処理を施す場合と比較して処理を高速化することができる。更には、画像データの位置により各画素に施す処理を変更しているので、画素毎に評価を行う等の処理が必要なく、比較的短時間でドット判定の方法を織り交ぜて処理を行うことができる。従って、処理速度の低下を抑制しつつ画質を向上することができる。
【００１３】
上述した画像処理装置において、前記第１のドット判定部は、前記第１の所定位置にある画素の階調値とその画素に対して前記拡散誤差記憶部に記憶された誤差値とを加算した判定データと、前記ディザマトリクスの判定値とを比較して、ドット形成の有無を判定することとしてもよい。
【００１４】
これによれば、第１のドット判定部は、第１の所定位置における既処理の画素から拡散されてくる誤差を加味してドット判定を行うため、第１の所定位置の画質を向上することができる。
【００１５】
上述した画像処理装置において、前記第１のドット判定部は、前記判定データに、同一ラスタの画素から拡散されてきた誤差値は加算せず、既処理ラスタの画素から拡散されてきた誤差値のみを加算することとしてもよい。
【００１６】
これによれば、第１のドット判定部は、同じラスタにある他の画素から誤差値が拡散されてからドット判定を行う必要がないため、同じラスタにおいては並列処理が可能となり、処理を高速化することができる。
【００１７】
上記の画像処理装置において、前記画像データのラスタには前記第１の所定位置と前記第２の所定位置とが混在するように設定されており、前記第１の誤差拡散部は、前記画像データの処理方向とは逆方向にある画素に対して誤差値を拡散させることとしてもよい。
【００１８】
これによれば、第１の誤差拡散部は、第１のドット判定部のドット判定により生じた誤差を画素の処理方向と逆方向に拡散させることができるため、誤差を処理方向にしか拡散させることができない場合と比較して、誤差値が偏った方向に累積されるのを抑制することができる。
【００１９】
上記の画像処理装置において、前記第１の所定位置は、前記画像データにおいて市松状に設定されていることとしてもよい。
これによれば、画像データにおいて第１の所定位置と第２の所定位置とを均等に織り交ぜることができ、画質の向上を図ることができる。
【００２０】
また、上述した画像処理方法を実現する本発明の画像処理プログラムは、複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに変換する処理を制御部が実行するための画像処理プログラムであって、前記画像データを構成する各画素から、ドット形成の有無の判定結果に基づき拡散される誤差値を記憶する拡散誤差記憶部を備えており、前記制御部が、前記画像データを構成する画素のうち、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較して、同第１の所定位置におけるドット形成の有無を判定する第１のドット判定処理と、前記第１のドット判定処理の判定結果に応じて前記第１の所定位置にある各画素に生じる誤差値を、前記第１のドット判定処理における未処理画素に対して拡散させる第１の誤差拡散処理と、前記画像データを構成する画素のうち、前記第１の所定位置を除く第２の所定位置にある画素について順次着目し、着目画素の階調値と前記拡散誤差記憶部に記憶された同着目画素に対する誤差値とに基づいて、ドット形成の有無を判定する第２のドット判定処理と、前記第２のドット判定処理の判定結果に応じて前記着目画素に生じる誤差値を、同着目画素から複数の画素に対して拡散させる第２の誤差拡散処理と、を実行するためのものである。
【００２１】
これによれば、上述の各種機能を実現すれば、処理速度の低下を抑制しつつ画質を向上することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を具体化した実施の形態を図面を参照して説明する。
（装置構成）
図１は、本実施の形態に係る画像処理装置としてのプリンタの外観を示す図である。なお、図１（ａ）は、プリンタを正面からみた斜視図であり、図１（ｂ）は、プリンタの概略側面図である。
【００２３】
このプリンタ１は、本体２の上面右側にユーザインタフェース（ＵＩ）として機能するコントロールパネル３を供えたインクジェット式プリンタであって、ユーザは、このコントロールパネル３を操作することで、印刷指示等の各種の指示をプリンタ１に与えることができる。本体２の背面側には用紙供給装置４が設けられており、シートフィーダ４ａにセットされた用紙、或いはロール紙支持部４ｂにセットされたロール紙が本体２内部に給紙される（以下、本実施の形態においては、用紙、ロール紙等の印刷媒体を単に「用紙」という）。本体２の中央に設けられたカバー５の下方には印刷機構（図示略）が設けられており、この印刷機構の作動により印刷された用紙６が本体２の前部下部に設けられた排紙口７から排出される。
【００２４】
コントロールパネル３には、表示パネル８と操作パネル９とが備えられている。表示パネル８は、液晶モニタ等の表示画面８ａを有し、この表示画面８ａは、例えば、用紙サイズ、用紙種類、レイアウト、写真選択、印刷枚数などを設定するための画面等の各種のメッセージ画面を表示する。操作パネル９は、電源スイッチ９ａ、印刷開始スイッチ９ｂなどの複数の操作スイッチから構成されている。
【００２５】
プリンタ１の本体２の正面右側には、記憶媒体等のメモリカード１０を装着可能とするスロット１１が設けられており、プリンタ１の本体２の上部には、このメモリカード１０から読み込んだ画像を表示するための表示装置１２が装備されている。
【００２６】
図１（ｂ）に示すように、プリンタ１の本体２の側面下側には、ＵＳＢポート２１，２２が設けられている。ＵＳＢポート２１は、例えば、プリンタ１とホスト装置としてのパーソナルコンピュータ（以下「ＰＣ」という）２３とをケーブル２４を介して接続する。
【００２７】
この場合、プリンタ１はＰＣ２３の周辺機器として機能し、ユーザは、ＰＣ２３を操作して、該ＰＣ２３と接続した図示しない外部記憶装置（例えばＭＯ）に挿入される記憶媒体（例えばＭＯディスク）に記憶されている画像の印刷指示等をプリンタ１に与えることができる。一方、ＵＳＢポート２２は、例えば、プリンタ１とデジタルカメラ２５とをケーブル２６を介して接続する。
【００２８】
（制御部）
図２は、プリンタ１の構成を示すブロック図である。なお、図１と同様な構成部分については、同一符合を付して説明する。
【００２９】
本実施形態のプリンタ１は、ＰＣ２３と接続される場合にはそのＰＣ２３の周辺機器として機能し、ＰＣ２３と接続されない場合にはスタンドアロン型プリンタとして機能する。つまり、このプリンタ１は、ＰＣ２３と接続することはなく、デジタルカメラ２５と接続して印刷（いわゆるダイレクト印刷）をすることが可能であり、例えば、ＵＳＢインタフェースを介してデジタルカメラ２５と接続される場合には、自分がＵＳＢホストとなり、相手側機器がＵＳＢデバイスとなるようにする。
【００３０】
プリンタ１は、第１のＲＡＭ３１、ＲＯＭ３２、第２のＲＡＭ３３、用紙検出センサ３４、プリンタヘッド３５及びＣＰＵ組込みＡＳＩＣ３６を備えている。
第１のＲＡＭ３１には、各種の記憶媒体やデジタルカメラ２５から直接読み込まれたデータ（画像ファイル等）が格納される。ＲＯＭ３２には、後述するＣＰＵ４１が処理を実行するために必要なプログラムや各種のアプリケーションプログラムが格納されている。なお、本実施形態においては、ＣＰＵ４１が後述するハーフトーン処理を実行するための画像処理プログラムもこのＲＯＭ３２に格納されている。
【００３１】
第２のＲＡＭ３３は、ＣＰＵ４１が処理を実行する際のワーキングメモリとして利用される。例えば、第２のＲＡＭ３３は、デジタルカメラ２５から受信した印刷ジョブを記憶しておくために利用されたり、後述する画像処理の段階で生成されるデータ（印刷イメージデータ等）を一時格納しておくためのバッファとして利用されたりする。
【００３２】
用紙検出センサ３４は、プリンタ１内部に給紙される用紙のサイズ（以下「用紙サイズ」という）、及び普通紙や専用紙などの用紙の種類（以下「用紙種類」という）を光学的手法などにより検出する。
【００３３】
プリンタヘッド３５は、主走査方向（紙送り方向と垂直な方向）に往復移動するキャリッジ（図示略）の下端に設けられており、用紙（印刷媒体）の搬送路に対向した面に各色用のノズルを多数個有している。このプリンタヘッド３５は、後述するヘッド制御回路４２の制御に基づいて、主走査方向に往復移動しながら、各色のインク滴をそれぞれの色に対応したノズルから吐出することで、給紙された用紙に画像を形成する。
【００３４】
ＣＰＵ組込みＡＳＩＣ３６は、制御部としてのＣＰＵ４１、ヘッド制御回路４２、画像処理回路４３、メモリインタフェース回路（以下「メモリＩ／Ｆ」という）４４、ＵＳＢホスト回路４５、ホストインタフェース回路（以下「ホストＩ／Ｆ」という）４６及びカードインタフェース回路（以下「カードＩ／Ｆ」という）４７を備えており、それらは内部バス４８を介して相互に接続されている。この内部バス４８には、上述した第１のＲＡＭ３１、ＲＯＭ３２、用紙検出センサ３４及びコントロールパネル３も接続されている。
【００３５】
ＣＰＵ４１は、ＲＯＭ３２に格納されているプログラムを読み出し、そのプログラムに従った処理を実行することにより、プリンタ１を統括的に制御する。例えば、ＣＰＵ４１は、後述する画像処理回路４３での色変換処理、ハーフトーン処理及びマイクロウィーブ処理や、ヘッド制御回路４２でのキャリッジモータの駆動制御を司る。
【００３６】
画像処理回路４３は、色変換部、ハーフトーニング部及びマイクロウィーブ部としての機能を有している。詳述すると、色変換部は、第１のＲＡＭ３１に格納されているＲＧＢの多階調の画像データに色変換処理を施し、例えば、シアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、ライトシアン（ＬＣ）、ライトマゼンダ（ＬＭ）、ライトイエロー（ＬＹ）の７色の多階調の画像データを生成して、それを第２のＲＡＭ３３に格納する。
【００３７】
ハーフトーニング部は、その色変換処理後の画像データにハーフトーン処理を施し、多階調の画像データを各色毎に２値化処理して表した印刷イメージデータ（色プレーン）を生成して、それを第２のＲＡＭ３３に格納する。つまり、色変換処理によって得られた画像データは、階調値０から階調値２５５までの値をとる２５６階調を有するデータであるが、プリンタ１は用紙６上にドットを形成するか否かの状態しかとり得ない。そこで、ハーフトーニング部は、２５６階調を有する画像データをドット形成の有無により示されるデータに変換する。
【００３８】
マイクロウィーブ部は、そのハーフトーン処理後の各色プレーンのラスタをノズル数、ヘッド走査回数、紙送り量等に基づき並び替えて印刷データを生成し、それを第２のＲＡＭ３３に格納する。
【００３９】
ヘッド制御回路４２は、プリンタヘッド３５を往復移動させるキャリッジのモータの駆動を制御するとともに、画像処理回路４３で生成された各色の印刷データに基づいてインク滴の吐出の有無や、吐出するインク滴の量等を制御する。
【００４０】
ＵＳＢホスト回路４５は、ケーブル２６を介してＵＳＢデバイスとなるデジタルカメラ２５等と接続され、ＣＰＵ４１の制御に基づいて、デジタルカメラ２５とＵＳＢの規格に従った双方向のデータ通信を行って、例えばデジタルカメラ２５から印刷対象となる画像データを取得する。
【００４１】
ホストＩ／Ｆ４６は、ケーブル２４を介してＰＣ２３と接続され、ＣＰＵ４１の制御に基づいて、ＰＣ２３と双方向のデータ通信を行って、例えばＰＣ２３から印刷対象となる画像データを取得する。
【００４２】
カードＩ／Ｆ４７は、スロット１１にメモリカード１０が装着されたときのインタフェース回路として機能し、メモリカード１０に格納された画像データをＣＰＵ４１の制御に基づいてプリンタ１内部で処理可能なデータに変換する。
【００４３】
（ハーフトーン処理の概要）
次に、上述した画像処理回路４３に含まれるハーフトーニング部で実行するハーフトーン処理について説明する。
【００４４】
図３に示すハーフトーニング部５０は、複数の画素から構成された多階調の画像データを、ドット形成の有無による表現形式のデータに変換する。
なお、プリンタ１が処理を施す画像データにおいては、第１の所定位置は１画素毎の市松状（所謂チェッカーパターン）となるように設定されており、残りの画素は第２の所定位置とされている。具体的には、画像データを構成する各画素の位置は、例えば図４に示すような（ｘ，ｙ）座標で管理され、本実施形態では、「ｘ＋ｙ」の値が偶数となる位置が第１の所定位置、「ｘ＋ｙ」の値が奇数となる位置が第２の所定位置となるように設定されている。
【００４５】
図３に示すように、ハーフトーニング部５０は、第１の所定位置にある画素のハーフトーン処理を行う第１のドット判定部５１及び第１の誤差拡散部５２と、第２の所定位置にある画素にハーフトーン処理を行う第２のドット判定部５３及び第２の誤差拡散部５４とを備える。なお、画像データを構成する各画素から、第１のドット判定部５１及び第２のドット判定部５３におけるドット形成の有無の判定結果に基づき、第１の誤差拡散部５２及び第２の誤差拡散部５４により拡散される誤差値は、拡散誤差記憶部としての誤差バッファ５５に記憶される。この誤差バッファ５５は、第２のＲＡＭ３３の一部の領域を使用することで構成されている。
【００４６】
第１のドット判定部５１は、第１の所定位置にある画素の階調値ｄ＊とその画素に対して誤差バッファ５５に記憶された誤差値（他の画素から拡散されてきた誤差値の累積値ｄｃ）とを加算した判定データと、ディザマトリクスの判定値とを比較して、ドット形成の有無を判定する（第１のドット判定ステップ）。なお、誤差バッファ５５には、ドット判定を行う画素よりも前に、第１の誤差拡散部５２によりドット判定された画素から拡散された誤差値の累積値ｄｃが記憶されている。
【００４７】
このとき、第１のドット判定部５１は、判定データに、同一ラスタの画素から拡散されてきた誤差値は加算せず、既処理ラスタの画素から拡散されてきた誤差値のみを加算する。このため、第１のドット判定部５１は、同じラスタにある他の画素から誤差値が拡散されてこなくてもドット判定を行うことができ、同じラスタにおいては複数の画素で同時にドット判定を行うこと（並列処理）が可能となり、処理を高速化することができる。
【００４８】
第１のドット判定部５１は、前記判定データが閾値よりも大きい場合は、その画素にドットを形成すると判定して２値化データとして「１」データを第２のＲＡＭ３３に入力する。逆に、判定データが閾値以下であれば、その画素にドットを形成しないと判定して２値化データとして「０」データを第２のＲＡＭ３３に入力する。
【００４９】
第１の誤差拡散部５２は、第１のドット判定部５１の判定結果に応じて第１の所定位置にある各画素に生じる誤差値を、第１のドット判定部５１の判定時における未処理画素に対して拡散させる（第１の誤差拡散ステップ）。
【００５０】
第１の誤差拡散部５２は、ドットを形成するとき（第１のドット判定部５１おける２値化データが「１」のとき）に画素に表現される階調値が「２５５」であるとすれば、誤差Ｅ＊１を「ｄ＊＋ｄｃ−２５５」とする。また、ドットを形成しないとき（第１のドット判定部５１における２値化データが「０」のとき）に画素に表現される階調値が「０」であるとすれば、誤差Ｅ＊１を「ｄ＊＋ｄｃ−０」とする。
【００５１】
こうして、第１の誤差拡散部５２は、画像データの第１の所定位置にある各画素に生じる誤差Ｅ＊１を算出した後、その画素から複数の画素に対して拡散させる誤差値を算出する。このとき、例えば、図５に示す誤差拡散マトリクスが使用される。図５において、「＊」で示される画素から誤差Ｅ＊１を拡散させるときは、誤差Ｅ＊１を４１０等分し、各画素に数値で示す重みで拡散させる。なお、第１の誤差拡散部５２は、図５において図中矢印にて示す方向に、第１の所定位置にある画素に順次処理を行うものであり、着色部分は「＊」で示す画素よりも前に処理された画素（既処理画素）を示す。
【００５２】
第１の誤差拡散部５２が誤差Ｅ＊１を拡散させるときには、第２の所定位置にある画素はまだ処理されていない。本実施形態では、画像データの同一ラスタには第１の所定位置と第２の所定位置とが１画素ずつ交互に配置されているため、拡散を行う画素に対して処理方向とは逆方向にも未処理画素（第２の所定位置にある画素）が存在することとなる。このため、第１の誤差拡散部５２は、第１のドット判定部５１により生じた誤差Ｅ＊１を、同じラスタにおいて処理方向と逆方向に拡散させることができる。これにより、ドット判定により生じる誤差を処理方向にしか拡散させることができない場合と比較して、処理が進むにつれて誤差値が特定の方向に偏って累積されるのを抑制することができ、ドット表現が不自然な方向に傾いたり、ドット繋がりが生じたりするのを抑制することができる。
【００５３】
また、この誤差拡散マトリクスでは、同じラスタにおいて、処理を行う画素から、右側の画素に拡散される重みの合計（７３／４１０）よりも、左側に拡散される重みの合計（１３２／４１０）の方が大きくなるように設定されている。また、次処理となるラスタにおいても、処理を行う画素から、右側に拡散される重みの合計（８３／４１０）よりも、左側に拡散される重みの合計（１０９／４１０）の方が大きくなるように設定されている。つまり、第１の誤差拡散部５２が、処理方向と逆方向に大きな比重で誤差Ｅ＊１を拡散させるように設定されている。
【００５４】
このように、第１の誤差拡散部５２は第１の所定位置にある画素から左側に比重をおいて誤差Ｅ＊１を拡散させるとともに、後述する第２の誤差拡散部５４は第２の所定位置にある画素から右側に比重をおいて誤差を拡散させる。このため、画像データを構成する各画素から拡散される誤差値は、画像データ全体においてバランスよく拡散されることとなる。
【００５５】
なお、第１の誤差拡散部５２により、画像データの第１の所定位置における各画素から拡散される誤差値は、その都度ＣＰＵ４１によりそれぞれの画素について累積値ｄｃが算出されて、誤差バッファ５５に格納される。
【００５６】
第２のドット判定部５３は、第２の所定位置（図４において「ｘ＋ｙ」が奇数となる位置）にある画素について順次着目し、変換処理を施す着目画素の階調値ｄ＊と誤差バッファ５５に記憶された着目画素に対する誤差値の累積値ｄｃとに基づいて、着目画素のドット形成の有無を判定する（第２のドット判定ステップ）。なお、誤差バッファ５５には、着目画素に対して、第１の誤差拡散部５２により拡散された誤差値と、第２の誤差拡散部５４により着目画素よりも前にドット判定された画素から拡散されてきた誤差値との累積値ｄｃが記憶されている。
【００５７】
第２のドット判定部５３は、着目画素の誤差値の累積値ｄｃから閾値を算出し、その閾値と、着目画素の階調値ｄ＊と累積値ｄｃとを加算した「ｄ＊＋ｄｃ」の値とを比較する。着目画素の「ｄ＊＋ｄｃ」の値が算出された閾値よりも大きければ、着目画素にドットを形成すると判定して２値化データとして「１」データを第２のＲＡＭ３３に入力する。逆に、着目画素の「ｄ＊＋ｄｃ」の値が算出された閾値以下であれば、着目画素にドットを形成しないと判定して２値化データとして「０」データを第２のＲＡＭ３３に入力する。
【００５８】
このように、第２のドット判定部５３においてドット判定を行う際には、着目画素の階調値ｄ＊と着目画素の誤差値の累積値ｄｃとを加算して判定を行うため、ある程度誤差値が累積されないと、安定したドット判定が行えず、ドットの形成が遅れて不自然なドット抜けが生じる虞がある。しかし、本実施形態においては、第２のドット判定部５３がドット判定を行う際には、誤差バッファ５５に第１の誤差拡散部５２により拡散された誤差値が記憶されているため、そうしたドット抜けの発生を抑制することができる。
【００５９】
第２の誤差拡散部５４は、第２のドット判定部５３の判定結果に応じて、着目画素に生じる誤差Ｅ＊２を着目画素から複数の画素に対して拡散させる誤差値を算出する（第２の誤差拡散ステップ）。
【００６０】
第２の誤差拡散部５４は、ドットを形成するとき（第２のドット判定部５３における２値化データが「１」のとき）に着目画素に表現される階調値が「２５５」であるとすれば、誤差Ｅ＊２を「ｄ＊＋ｄｃ−２５５」とする。また、ドットを形成しないとき（ドット判定部５２における２値化データが「０」のとき）に着目画素に表現される階調値が「０」であるとすれば、誤差Ｅ＊２を「ｄ＊＋ｄｃ−０」とする。
【００６１】
こうして、第２の誤差拡散部５４は、画像データの第２の所定位置にある各画素に生じる誤差Ｅ＊２を算出した後、その画素から複数の画素に対して拡散させる誤差値を算出する。このとき、例えば図６に示す誤差拡散マトリクスが使用される。図６において、「＊」で示される着目画素から誤差Ｅ＊２を拡散させるときは、誤差Ｅ＊２を１６等分し、各画素に数値で示す重みで拡散させる。なお、第２の誤差拡散部５４は、図６において図中矢印にて示す方向に、第２の所定位置にある画素に順次処理を行うものであり、着色部分は着目画素よりも前に処理された画素（既処理画素）を示す。
【００６２】
なお、第２の誤差拡散部５４により、画像データの第２の所定位置における各画素から拡散される誤差値は、その都度ＣＰＵ４１によりそれぞれの画素について累積値ｄｃが算出されて、誤差バッファ５５に格納される。
【００６３】
ここで、第２の誤差拡散部５４が誤差拡散処理を行うときには、同じラスタにおいて、着目画素よりも左側の画素はすべてハーフトーン処理が行われている。このため、第２の誤差拡散部５４は、同じラスタにおいては誤差値を右方向（処理方向）にしか拡散させることはできず、着目画素の右側に比重をおいた誤差拡散となる。
【００６４】
しかし、上述したように、第１の誤差拡散部５２は、左側に比重をおいて誤差Ｅ＊１を拡散させている。このため、ラスタにおいては、１画素毎に、左側に比重をおいた誤差拡散と右側に比重をおいた誤差拡散とが交互に行われることとなり、画像データ全体としてバランスのとれた良好な誤差拡散を行うことができる。それとともに、各画素から拡散される誤差値が特定の方向に偏って累積されるのを抑制することができ、ドット表現の特定の方向（処理方向）への傾斜や、ドット繋がりの発生を抑制することができる。
【００６５】
また、本実施形態においては、第２の誤差拡散部５４により誤差Ｅ＊２が拡散される画素は、同じラスタにおいて１画素毎とされている（ラスタにおいて第２の所定位置となる画素は１画素おきに設定されている）。このため、第２の誤差拡散部５４は、比較的少ない計算量で遠くの画素まで誤差Ｅ＊２を拡散させることができる。
【００６６】
更には、第１のドット判定部５１は第１の所定位置にある画素にディザマトリクスを用いてドット判定を行うが、第２の誤差拡散部５４は残りの第２の所定位置にある画素に誤差拡散処理を施すため、ディザマトリクスを使用することにより特有のディザパターンが発生するのを抑制することができる。
【００６７】
次に、画像処理回路４３（ハーフトーニング部５０）が実行するハーフトーン処理の一例を説明する。
図７に示すように、先ず、ハーフトーニング部５０は、画像データのラスタを読み込む（ステップ１００）。このとき、本実施形態においては図５及び図６に示す誤差拡散マトリクスを用いて誤差拡散を行うため、２ラスタを読み込むようにする。
【００６８】
そして、後述するディザ法によるハーフトーン処理を行う（ステップ１１０）。即ち、第１のドット判定部５１が第１の所定位置にある画素のドット形成の有無を判定した後、第１の誤差拡散部５２がそのドット形成の有無に応じて各画素に生じた誤差Ｅ＊１を拡散させる。
【００６９】
次いで、後述する誤差拡散法によるハーフトーン処理を行う（ステップ１２０）。即ち、第２のドット判定部５３が第２の所定位置にある画素のドット形成の有無を判定した後、第２の誤差拡散部５４がそのドット形成の有無により各画素に生じた誤差Ｅ＊２を拡散させる。
【００７０】
その後、画像データを構成するすべてのラスタについて処理を行ったか判定し（ステップ１３０）、未処理のラスタが残っていれば（ステップ１３０，ＮＯ）、ステップ１００まで戻って続く一連の処理を行う。未処理のラスタが残っていなければ（ステップ１３０，ＹＥＳ）、処理を終了する。
【００７１】
次に、図８を参照して、上記のディザ法により行われるハーフトーン処理（ステップ１１０）について説明する。
ハーフトーニング部５０は、読み込んだラスタにおいて画素を読み込む（ステップ２００）。そして、その画素のｘ座標とｙ座標とを加算した値「ｘ＋ｙ」が偶数であるか否か判定する（ステップ２１０）。偶数でなければ（ステップ２１０，ＮＯ）、ステップ２００まで戻って、次の画素を読み込む。偶数であれば（ステップ２１０，ＹＥＳ）、その画素についてディザ処理を行う（ステップ２２０）。次いで、ディザ処理による誤差値を拡散させる（ステップ２３０）。
【００７２】
なお、上述したように、第１のドット判定部５１は同一ラスタから拡散されてきた誤差値は加算しないでドット判定を行うため、このステップ２２０，２３０の処理は並列処理が可能である。このため、着目画素に対してドット判定（ステップ２２０）及び誤差値の拡散（ステップ２３０）の処理中であっても、次の画素の処理に進むことができる。
【００７３】
その後、ラスタを構成するすべての画素について処理を行ったか否か判定し（ステップ２４０）、未処理の画素が残っていれば（ステップ２４０，ＮＯ）、ステップ２００に戻って続く一連の処理を行う。未処理の画素が残っていなければ（ステッ２４０，ＹＥＳ）、この処理を終了する。
【００７４】
次に、図９を参照して、上記の誤差拡散法により行われるハーフトーン処理（ステップ１２０）について説明する。
ハーフトーニング部５０は、読み込んだラスタにおいて画素を読み込む（ステップ３００）。そして、その画素のｘ座標とｙ座標とを加算した値「ｘ＋ｙ」が奇数であるか否か判定する（ステップ３１０）。奇数でなければ（ステップ３１０，ＮＯ）、ステップ３００まで戻って、次の画素を読み込む。奇数であれば（ステップ３１０，ＹＥＳ）、その画素について誤差拡散処理を行う（ステップ３３０）。
【００７５】
その後、ラスタを構成するすべての画素について処理を行ったか否か判定し（ステップ３３０）、未処理の画素が残っていれば（ステップ３３０，ＮＯ）、ステップ３００に戻って続く一連の処理を行う。未処理の画素が残っていなければ（ステップ３３０，ＹＥＳ）、この処理を終了する。
【００７６】
実際に、上記のプリンタ１により画像データを印刷した。
図１０（ａ）に示すように、画像データは、左側の部分が階調値の高い領域（ドット形成が密となる領域）とされており、右側に向けて徐々に階調値が低下する構成とされている。図１０（ｂ）には、本実施形態のプリンタ１による出力画像を示す。また、図１０（ｃ）には、ハーフトーニング部において、画像データを構成するすべての画素について誤差拡散処理を施す従来のプリンタによる出力画像を示す。
【００７７】
従来のプリンタによれば、ドットは、出力画像の右側に向けて徐々に下降するように形成され、また、ドットが繋がるように形成された。しかも、右側の上方にはドットが形成されない部分が発生した。
【００７８】
しかし、本発明に係るプリンタ１によれば、右側に向けてドットが下降することは抑制されて右側まで水平方向に形成され、しかも、従来のプリンタよりも遠くまでドットが形成された。また、ドットが繋がることなく、まばらに形成された。更には、プリンタ１においては、第１の所定位置の画素に対してはディザマトリクスを用いてドット判定を行っているが、出力画像にディザパターンが形成されることはなかった。
【００７９】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）本実施形態のプリンタ１では、第１のドット判定部５１は、第１の所定位置にある画素に対してディザマトリクスを用いてドット判定を行い、第１の誤差拡散部５２は、その判定により生じた誤差Ｅ＊１をその判定時において未処理の画素に拡散させる。また、第２のドット判定部５３は、第２の所定位置にある画素に対して、周辺画素から拡散されてきた誤差値を加味してドット判定を行い、第２の誤差拡散部５４は、その判定により生じた誤差Ｅ＊２を複数の画素に拡散させる。
【００８０】
これにより、画像データの特定の部分にドット抜けが生じるのを抑制することができる。即ち、第１の所定位置にある画素については、ディザマトリクスを用いてドット形成の有無が判定されるため、ドット形成が遅れてドット抜けが生じるのを抑制することができる。そして、第２の所定位置にある画素については、第２のドット判定部５３がドット判定を行う際には、第１の誤差拡散部５２により誤差値が拡散されているため、誤差値の累積が遅れてドット抜けが生じるのを抑制することができる。また、第２の誤差拡散部５４は、第２の所定位置にある画素に対してのみ誤差を拡散させるため、少ない計算量で遠くの画素まで誤差値を拡散させることができ、ドット表現の特定の方向への傾斜やドット繋がり等の不具合の発生を抑制することができる。また、第１の所定位置にある画素に対してのみディザマトリクスを用いたドット判定が行われ、残りの第２の所定位置にある画素に対しては誤差拡散が行われるため、ディザマトリクスを使用することにより特有のディザパターンが発生するのを抑制することができる。
【００８１】
また、第１の所定位置にある画素に対しては、ディザマトリクスを用いてドット判定を行うため、画像データを構成するすべての画素について誤差拡散処理を施す場合と比較して処理を高速化することができる。更には、画像データの位置により各画素に施す処理を変更しているので、画素毎に評価を行う等の処理が必要なく、比較的短時間でドット判定の方法を織り交ぜて処理を行うことができる。従って、処理速度の低下を抑制しつつ画質を向上することができる。
【００８２】
（２）本実施形態のプリンタ１では、第１のドット判定部５１は、第１の所定位置における既処理の画素から拡散されてくる誤差を判定データに加算してドット判定を行うため、第１の所定位置の画質を向上することができる。
【００８３】
（３）本実施形態のプリンタ１では、第１のドット判定部５１は、判定データに、同一ラスタの画素から拡散されてきた誤差値は加算せず、既処理ラスタの画素から拡散されてきた誤差値のみを加算する。これにより、第１のドット判定部５１は、同じラスタにある他の画素から誤差値が拡散されてこなくてもドット判定を行うことができるため、同じラスタにおいては並列処理が可能となり、処理を高速化することができる。
【００８４】
（４）本実施形態のプリンタ１では、画像データの同一ラスタには第１の所定位置と第２の所定位置とが交互に配置されるように設定されており、第１の誤差拡散部５２は、画像データの処理方向とは逆方向に存在する第２の所定位置にある画素に対しても誤差値を拡散させる。このため、ドット判定により生じる誤差値を処理方向にしか拡散させることができない場合と比較して誤差値が偏った方向に累積されるのを抑制することができる。
【００８５】
なお、実施の形態は、上記に限定されず以下の変形例を採用することもできる。
（変形例１）第１のドット判定部５１においてドット形成を判定する際に使用するディザマトリクスは、どのような態様のものを用いてもよい。
【００８６】
（変形例２）第１の誤差拡散部５２において誤差を拡散させる際に使用する誤差拡散マトリクスは、どのような態様のものを用いてもよい。
（変形例３）第２のドット判定部５３においてドット判定する際に、判定データと比較する閾値はどのように設定してもよい。画素の条件により変動するようにしてもよいし、固定値としてもよい。
【００８７】
（変形例４）第２の誤差拡散部５４において使用される誤差拡散マトリクスは、どのような態様のものを用いてもよい。
（変形例５）第１のドット判定部５１は、第１の誤差拡散部５２により拡散された誤差値を判定データに加算せずにドット判定を行ってもよい。そうすると、第１のドット判定部５１は、第１の誤差拡散部５２から誤差値が拡散されなくても、第１の所定位置にある画素の階調値とディザマトリクスの判定値とを比較してドット判定を行うことができるため、画像データの第１の所定位置にある画素を一括処理することができ、処理を高速化することができる。
【００８８】
（変形例６）第１のドット判定部５１は、同一ラスタから拡散されてきた誤差値を加算してドット判定データを算出するようにしてもよい。
（変形例７）コントロールパネル３を操作することにより、第１の誤差拡散部５２や第２の誤差拡散部５４で使用する誤差拡散マトリクスを選択できるようにしてもよい。
【００８９】
（変形例８）画像データにおいて、第１の所定位置及び第２の所定位置をどのように配置してもよい。例えば、所定数ずつの市松状に配置してもよいし、画像データの水平方向又は垂直方向に所定数毎に配置してもよい。また、第１の所定位置又は第２の所定位置の割合が多くなるようにしてもよい。更には、第１の所定位置及び第２の所定位置をランダムに配置してもよい。
【００９０】
（変形例９）コントロールパネル３を操作することにより、第１の所定位置や第２の所定位置を選択可能な構成としてもよい。
（変形例１０）本発明に係る画像処理装置としてプリンタ１に適用した場合について説明したが、液晶表示装置における画像処理等に適用してもよい。
【００９１】
（変形例１１）第２のＲＡＭ３３のみではなく第１のＲＡＭ３１の所定領域も誤差バッファ５５として使用するようにしてもよい。そうすると、プリンタ１のメモリ領域を有効に使用することができる。
【図面の簡単な説明】
【００９２】
【図１】本発明を具体化した実施の形態に係るプリンタの概略図であり、（ａ）は正面からみたプリンタの斜視図、（ｂ）は概略側面図。
【図２】プリンタの構成を示すブロック図。
【図３】ハーフトーニング部の構成を示すブロック図。
【図４】画像データの説明図。
【図５】第１の誤差拡散部が使用する誤差拡散マトリクスの説明図。
【図６】第２の誤差拡散部が使用する誤差拡散マトリクスの説明図。
【図７】ハーフトーン処理を説明するフローチャート。
【図８】図７に示すディザ法によるハーフトーン処理を説明するフローチャート。
【図９】図７に示す誤差拡散法によるハーフトーン処理を説明するフローチャート。
【図１０】（ａ）は多階調の画像データ、（ｂ），（ｃ）は（ａ）の出力画像。
【符号の説明】
【００９３】
１…画像処理装置としてのプリンタ、４１…制御部としてのＣＰＵ、５０…ハーフトーニング部、５１…第１のドット判定部、５２…第１の誤差拡散部、５３…第２のドット判定部、５４…第２の誤差拡散部、５５…拡散誤差記憶部としての誤差バッファ。
【図１】
2005250897.tif 000003
【図２】
2005250897.tif 000004
【図３】
2005250897.tif 000005
【図４】
2005250897.tif 000006
【図５】
2005250897.tif 000007
【図６】
2005250897.tif 000008
【図７】
2005250897.tif 000009
【図８】
2005250897.tif 000010
【図９】
2005250897.tif 000011
【図１０】
2005250897.tif 000012