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