(57)【特許請求の範囲】
【請求項１】
入力画像に含まれるオブジェクトのエッジ部を検出する検出手段と、
前記入力画像に対してハーフトーン処理を実行することで、前記入力画像より階調数が少ないハーフトーン画像を生成するハーフトーン処理手段と、
注目画素が、前記エッジ部に内接し、スクリーンドットを構成し、かつ、その周辺画素に前記エッジ部を構成し、かつ、スクリーンドットを構成する画素を持たない場合に、前記ハーフトーン画像における前記注目画素の濃度が薄くなるように補正して出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記出力手段は、注目画素が、前記エッジ部を構成する場合に、前記ハーフトーン画像における前記注目画素の濃度として、一定の濃度を有するエッジ補正データを出力することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補正は、前記ハーフトーン画像における前記注目画素の濃度から前記エッジ補正データの前記一定の濃度を減算する処理であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記エッジ補正データの前記一定の濃度は、前記入力画像における濃度に基づき決定されることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記出力手段は、前記ハーフトーン画像における前記注目画素及び前記周辺画素からなる所定領域の濃度合計値から、前記エッジ補正データにおける当該所定領域の濃度合計値を差し引くことで得られた値に基づいて、前記ハーフトーン画像における濃度が保存されるように前記補正を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記出力手段によって出力された前記補正後のハーフトーン画像に基づき電子写真方式の画像形成を行う画像形成手段を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
入力画像に含まれるオブジェクトのエッジ部を検出する検出ステップと、
前記入力画像に対してハーフトーン処理を実行することで、前記入力画像より階調数が少ないハーフトーン画像を生成するハーフトーン処理ステップと、
注目画素が、前記エッジ部に内接し、スクリーンドットを構成し、かつ、その周辺画素に前記エッジ部を構成し、かつ、スクリーンドットを構成する画素を持たない場合に、前記ハーフトーン画像における前記注目画素の濃度が薄くなるように補正して出力する出力ステップと、
を有することを特徴とする画像処理方法。
【請求項８】
前記出力ステップでは、さらに、注目画素が、前記エッジ部を構成する場合に、前記ハーフトーン画像における前記注目画素の濃度として、一定の濃度を有する エッジ補正データを出力することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記補正は、前記ハーフトーン画像における前記注目画素の濃度から前記エッジ補正データの前記一定の濃度を減算する処理であることを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記エッジ補正データの前記一定の濃度は、前記入力画像における濃度に基づき決定されることを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記出力ステップでは、前記ハーフトーン画像における前記注目画素及び前記周辺画素からなる所定領域の濃度合計値から、前記エッジ補正データにおける当該所定領域の濃度合計値を差し引くことで得られた値に基づいて、前記ハーフトーン画像における濃度が保存されるように前記補正を行うことを特徴とする請求項８乃至１０のいずれか１項に記載の画像処理方法。
【請求項１２】
前記出力ステップにて出力された前記補正後のハーフトーン画像に基づき電子写真方式の画像形成を行う画像形成ステップを更に有することを特徴とする請求項７乃至１１のいずれか１項に記載の画像処理方法。
【請求項１３】
コンピュータを、請求項１乃至６のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データにおけるエッジ部のジャギーを改善する技術に関する。
【背景技術】
【０００２】
従来、画像形成装置において、ジャギーと呼ばれる文字等のエッジ部に発生するガタツキを改善する技術がいくつか提案されている。ジャギーの発生理由は様々あるが、大きな理由としては、低解像度のプリンタによる画素のガタツキと、スクリーン処理に伴うガタツキが考えられる。
【０００３】
スクリーン処理に伴うガタツキを改善する技術としては、例えばスクリーン処理前の画像データから補正データを生成し、スクリーン処理後の画像データのエッジ部に補正データを縁取るように付加するものがある（例えば、特許文献１参照）。これは、エッジ補正処理を行うべきエッジ部か否かを判断し、エッジ部であった場合、補正データとスクリーン処理後の画像データとを比較し、値の大きい方のデータを出力することで、スクリーン処理によるジャギーを改善している。更に、この技術では、簡易な構成であるにも関わらず、前者の低解像度のプリンタによる画素のガタツキも同時に改善される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２９５８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１の方法は、エッジ部に対してハーフドット中心で構成される補正データとフルドット中心に構成されるスクリーン処理後の画像データとを合成して出力するものである。このため、エッジ部がハーフドットとフルドットという異なるドットで構成され、ハーフドットが近くのフルドットに吸収されることがあり、エッジ部のジャギーの改善の度合いが小さい場合があった。これは、電子写真方式の場合は、現像時に、補正データの浅い潜像がスクリーン処理後の画像データの深い潜像と隣接する箇所で、より潜像の深いところにトナーが引き寄せられてしまうためである。その結果、浅い潜像部で現像しにくくなり、エッジ部のジャギーの改善の度合いが小さい場合があった。
【課題を解決するための手段】
【０００６】
本発明に係る画像処理装置は、入力画像データからオブジェクトのエッジを判定する判定手段と、前記エッジを構成する画素の画素値を補正するエッジ補正データを生成する手段と、前記入力画像データにスクリーン処理を行なってスクリーンデータを生成する手段と、前記スクリーンデータにおける前記エッジに存在するスクリーンドットを、前記オブジェクトの内側にずらした出力画像データを生成する画像合成手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像劣化を最小限に抑えながら、エッジ部のジャギーを改善することができる。
【図面の簡単な説明】
【０００８】
【図１】実施例１に係る、ＭＦＰの構成を示す概略ブロック図である。
【図２】プリンタ部の詳細を示す図である。
【図３】実施例１に係る、画像処理部の内部構成を示すブロック図である。
【図４】エッジ情報生成部の内部構成を示すブロック図である。
【図５】混合データ変換処理の流れを示すフローチャートである。
【図６】エッジ判定処理の流れを示すフローチャートである。
【図７】３値以上のエッジ判定処理の詳細を示すフローチャートである。
【図８】エッジ判定処理の具体例を説明する。
【図９】注目画素とエッジ方向判定部で参照される４つの画素の位置関係を示した図である。
【図１０】エッジ方向判定処理の流れを示すフローチャートである。
【図１１】エッジ補正データ生成処理で用いられるルックアップテーブルの一例を示している。
【図１２】スクリーン処理部で行われるスクリーン処理の流れを示すフローチャートである。
【図１３】位相をずらしたディザマトリクスを説明する図である。
【図１４】スクリーン処理部でのスクリーン処理結果と位相ずれスクリーン処理部でのスクリーン処理結果とを比較して説明する図である。
【図１５】実施例１に係る、画像合成処理の流れを示すフローチャートである。
【図１６】参照画素を説明する図である。
【図１７】位相ずれスクリーン処理の結果を用いずにエッジ補正処理を行った場合の一例を説明する図である。
【図１８】実施例１を適用してエッジ補正処理を行った場合の一例を説明する図である。
【図１９】実施例１によるエッジ補正処理後の画像における各画素の露光量を説明する図である。
【図２０】実施例２に係る、画像処理部の内部構成を示すブロック図である。
【図２１】実施例２に係る、エッジ情報生成部の内部構成を示すブロック図である。
【図２２】実施例２に係る、画像合成処理の流れを示すフローチャートである。
【図２３】実施例２を用いてエッジ補正処理を行なった場合の一例を説明する図である。
【図２４】所定の周辺領域が５×５画素の領域の場合における補正率テーブルの特性の一例を示す図である。
【図２５】実施例２におけるエッジ補正処理の結果の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施する為の形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【００１０】
本実施例では、画像形成装置として、コピー、プリント、ＦＡＸなどの複数の機能を有する電子写真方式のデジタル複合機（以下、ＭＦＰ）を例に挙げて説明する。しかし、これに限らず、例えばインクジェット方式など他のプロセスを用いた機器でも本実施例は適用可能である。
【００１１】
図１は、本実施例に係る、ＭＦＰ１００の構成を示す概略ブロック図である。ＭＦＰ１００は、スキャナ部１０１、コントローラ１０２、プリンタ部１０３及び操作部１０４で構成される。
【００１２】
スキャナ部１０１は、原稿の画像を光学的に読み取り、画像データとして取得する。
【００１３】
コントローラ１０２は、ＣＰＵ、ＲＯＭ、ＲＡＭを備え、スキャナ部１０１で読み取られた画像データ等に所定の画像処理を施す。画像処理が施された画像データは、コントローラ１０２内のＲＡＭに格納される。
【００１４】
プリンタ部１０３は、画像処理が施された画像データに対し、指定された印刷設定条件に従って電子写真方式によって記録用紙に画像を形成する。本実施例のプリンタ部１０３では、ＰＷＭによってレーザの露光量を調整が可能で、各画素４ビットの画像データが入力されるものとする。
【００１５】
操作部１０４は、ユーザが各種操作を行なうためのユーザインタフェースである。ユーザは、印刷対象の画像データに対する各種印刷条件の設定などを、操作部１０４を介して行う。
【００１６】
ＭＦＰ１００には、ネットワーク１０６を介して画像データを管理するサーバ１０８や、ＭＦＰ１００に対して印刷の実行を指示するパーソナルコンピュータ（ＰＣ）１０７等が接続される。コントローラ１０２は、サーバ１０８やＰＣ１０７から印刷の実行が指示されると、サーバ１０８やＰＣ１０７から送信された画像データをラスタライズしてプリンタ部１０３に対応した画像データ（ビットマップデータ）に変換し、ＲＡＭに格納する。
【００１７】
図２は、プリンタ部１０３の詳細を示す図であり、電子写真方式によって記録媒体上に画像を形成するためのカラー４色ドラムの機構が示されている。
【００１８】
コントローラ１０２内のＲＡＭに一旦記憶されたビットマップデータと属性データは、再度コントローラ１０２内で後述する印刷用の画像処理が行われた後、プリンタ部１０３へ転送される。プリンタ部１０３では、プリンタ部１０３内のＰＷＭ制御によってパルス信号へと変換され、レーザ記録部でシアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４色の記録レーザ光に変換される。そして、記録レーザ光は各色の感光体２０１に照射され、各感光体に静電潜像を形成する。
【００１９】
プリンタ部１０３は、トナーカートリッジ２０２から供給されるトナーにより各感光体にトナー現像を行い、各感光体に可視化されたトナー画像は中間転写ベルト２０３に一次転写される。中間転写ベルト２０３は、図２において時計回転方向に回転し、用紙カセット２０４から給紙搬送路２０５を通って給送された記録紙が二次転写位置２０６にきたところで、中間転写ベルト２０３から記録紙へとトナー画像が転写される。画像が転写された記録紙は、定着器２０７で加圧と熱によりトナーが定着され、排紙搬送路を搬送された後、フェイスダウンのセンタートレイ２０８或いはフェースアップのサイドトレイ２０９へと排紙される。
【００２０】
次に、コントローラ１０２内で実行される印刷用の画像処理について説明する。図３は、画像処理を担う機能部としての画像処理部の内部構成を示すブロック図である。すなわち、以下に述べる画像処理部３００における各処理は、コントローラ１０２内のＣＰＵが、ＲＯＭに保持された制御プログラムをＲＡＭに展開して実行することで実現される。本実施例に係る画像処理部３００は、色補正部３０１、エッジ情報生成部３０２、ガンマ補正部３０３、エッジ補正データ生成部３０４、スクリーン処理部３０５、位相ずれスクリーン処理部３０６、画像合成部３０７で構成される。
【００２１】
色補正部３０１は、コントローラ１０２内のＲＡＭから取得した画像データ（ビットマップデータ）に対して色補正処理を行う。具体的には、色変換ＬＵＴやマトリクス演算によってＣＭＹＫの４種類の色（画像信号）で濃度を表現したＣＭＹＫ色空間の画像データに変換する。変換された画像データは、各色において画素毎に８ビット（０〜２５５）の値を持っている。
【００２２】
エッジ情報生成部３０２は、ＣＭＹＫの色毎にエッジ情報を生成する。このエッジ情報は、画素毎に３ビットの値を持つデータである。上位１ビットは、当該画素がエッジを構成する画素（以下、エッジ画素）か否かを示し、エッジ画素である場合に“１”、非エッジ画素である場合に“０”となる。下位の２ビットは、エッジの方向（Edge Direction）を示し、上を“００”下を“０１”、右を“１０”、左を“１１”で表す。生成されたエッジ情報は、後述の画像合成部３０７で処理を切り替える際に参照される。
【００２３】
ガンマ補正部３０３は、入力されたＣＭＹＫ画像データに対し、画像が記録紙へと転写された際に所望の濃度特性となるよう、一次元のルックアップテーブルを用いて補正する処理（ガンマ補正処理）を行なう。ガンマ補正処理が施された画像データは、エッジ補正データ生成部３０４、スクリーン処理部３０５、位相ずれスクリーン処理部３０６、画像合成部３０７に送られる。
【００２４】
エッジ補正データ生成部３０４は、入力された画像データからエッジ部の補正データ（以下、エッジ補正データ）を生成する。生成されたエッジ補正データは画像合成部３０７に送られる。
【００２５】
スクリーン処理部３０５は、入力された画像データに対しスクリーン処理を行って、スクリーンデータ（ハーフトーン画像データ）を生成する。生成されたスクリーンデータは画像合成部３０７に送られる。
【００２６】
位相ずれスクリーン処理部３０６は、入力された画像データに対し、スクリーン処理部３０５で使用したディザマトリクスの位相をずらしたディザマトリクスを用いて、位相のずれたスクリーンデータを生成する。生成された位相ずれスクリーンデータは画像合成部３０７へ送られる。
【００２７】
画像合成部３０７は、エッジ情報生成部３０２から受け取ったエッジ情報とガンマ補正後の画像データに基づいて、後述する画像合成処理を行なう。
【００２８】
＜エッジ情報生成処理＞
次に、エッジ情報生成部３０２におけるエッジ情報生成処理について、図４〜図９を参照して詳しく説明する。
【００２９】
図４は、エッジ情報生成部３０２の内部構成を示すブロック図である。エッジ情報生成部３０２は、混合データ変換部４０１、エッジ判定部４０２、内側判定部４０３、エッジ方向判定部４０４、判定結果統合部４０５で構成される。エッジ情報生成部３０２に、ＣＭＹＫ色空間に変換された画像データが入力されると、混合データ変換部４０１に送られる。
【００３０】
混合データ変換部４０１は、入力された画像データに対し、注目画素を中心とした所定の参照領域（ここでは、５×５画素の領域）単位で混合データ変換処理を行って、ＣＭＹＫの４色を任意の割合で混合したデータ（以下、混合データ）を生成する。画像データ内の各画素は８ビットの値を持っているが、以降の処理では８ビットのデータまでは必要としないので、本実施例では下位２ビットを切り捨てた上でこの変換処理を行なっている。これにより回路規模を小さくすることができる。混合データ変換処理の詳細については後述する。生成された混合データは、エッジ判定部４０２、内側判定部４０３、エッジ方向判定部４０４に送られる。
【００３１】
エッジ判定部４０２は、注目画素が前述のエッジ補正データを適用すべきエッジ画素か否かを判定する処理（エッジ判定処理）を行なう。このエッジ判定処理の詳細については後述する。エッジ判定処理の結果はエッジ判定信号（例えば、エッジ画素の場合は“１”、非エッジ画素の場合は“０”とする１ビットの信号）として判定結果統合部４０５に送られる。
【００３２】
内側判定部４０３は、注目画素が内側であるか否かを判定する処理（内側判定処理）を行なう。具体的には、注目画素の周囲８画素において画素値の最大値を求め、注目画素の画素値が当該最大値以上である場合に当該注目画素を内側と判定する。この内側判定処理の結果は内側判定信号（例えば内側の場合は“１”、内側でない場合は“０”とする１ビットの信号）として、判定結果統合部４０５に送られる。
【００３３】
エッジ方向判定部４０４は、注目画素を基準としたエッジの方向を判定する処理（エッジ方向判定処理）を行う。具体的には、注目画素の画素値とその上下左右の画素の画素値を比較し、両者に差がある場合にはその方向にエッジがあると判定する。このエッジ方向判定処理の結果は、エッジ方向信号として判定結果統合部４０５に送られる。
【００３４】
判定結果統合部４０５は、入力されるエッジ判定信号、内側判定信号、エッジ方向信号に基づいて、前述のエッジ情報を生成する。具体的には、まずエッジ情報の上位１ビットについては、エッジ判定処理でエッジ画素と判定され、かつ、内側判定処理で内側と判定された場合は“１”を設定し、それ以外の場合は“０”を設定する。さらにエッジ情報の下位２ビットについては、エッジ方向判定処理の結果を下位の２ビットにそのまま代入する。こうして、３ビットのエッジ情報を画素毎に生成する。
【００３５】
＜混合データ変換処理＞
混合データ変換部４０１で行われる混合データ変換処理の詳細について説明する。
【００３６】
図５は、混合データ変換処理の流れを示すフローチャートである。この混合データ変換処理は、ＣＭＹＫ画像データにおける上述の参照領域（５×５画素の領域）を構成する全２５画素に対して画素毎に実行される。
【００３７】
ステップ５０１において、混合データ変換部４０１は、Ｋの画素値ＤKとＫの混合率ＭＲKとの積を求め、Ｋの画素値ＤK’を得る。このとき、混合率ＭＲKは、０〜１５の範囲で任意に設定される値である。これによって、ＣＭＹの有彩色のみで混合データが生成するか、無彩色のＫを含めて混合データを生成するのかを決定する。
【００３８】
ステップ５０２において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤK’がＣの画素値ＤCよりも大きいかどうかを判定する。画素値ＤK’が画素値ＤCよりも大きければステップ５０３に進む。一方、画素値ＤK’が画素値ＤCよりも大きくなければステップ５０４に進む。
【００３９】
ステップ５０３において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤK’とＣの混合率ＭＲCとの積を求め、Ｃの画素値ＤC’を得る。ここで、混合率ＭＲCも、上述の混合率ＭＲKと同様、０〜１５の範囲で任意に設定される値であり、混合率ＭＲCの値を変化させることで、生成される混合データに対するＣの割合を制御することができる。
【００４０】
ステップ５０４において、混合データ変換部４０１は、Ｃの画素値ＤCと上述の混合率ＭＲCとの積を求め、Ｃの画素値ＤC’を得る。
【００４１】
ステップ５０５において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤK’がＭの画素値ＤMよりも大きいかどうかを判定する。画素値ＤK’が画素値ＤMよりも大きければステップ５０６へ進む。一方、画素値ＤK’が画素値ＤMよりも大きくなければステップ５０７に進む。
【００４２】
ステップ５０６において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤK’とＭの混合率ＭＲMとの積を求め、Ｍの画素値ＤM’を得る。ここで、混合率ＭＲMも、上述の混合率ＭＲKと同様、０〜１５の範囲で任意に設定される値であり、混合率ＭＲMの値を変化させることで、生成される混合データに対するＭの割合を制御することができる。
【００４３】
ステップ５０７において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤMとＭの混合率ＭＲMとの積を求め、Ｍの画素値ＤM’を得る。
【００４４】
ステップ５０８において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤK’がＹの画素値ＤYよりも大きいかどうかを判定する。画素値ＤK’が画素値ＤYよりも大きければステップ５０９へ進む。一方、画素値ＤK’が画素値ＤYよりも大きくなければステップ５１０に進む。
【００４５】
ステップ５０９において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤK’とＹの混合率ＭＲYとの積を求め、Ｙの画素値ＤY’を得る。ここで、混合率ＭＲYも、上述の混合率ＭＲKと同様、０〜１５の範囲で任意に設定される値であり、混合率ＭＲYを変化させることで、生成される混合データに対するＹの割合を制御することができる。
【００４６】
ステップ５１０において、混合データ変換部４０１は、ステップ５０１で得たＫの画素値ＤYとＹの混合率ＭＲYとの積を求め、Ｙの画素値ＤY’を得る。
【００４７】
ステップ５１１において、混合データ変換部４０１は、ここまでの処理で求めたＤC’、ＤM’、 ＤY’の合計値を求め、求めた合計値をビットシフト量ＢＳによって指定されたビット数分だけ右シフトすることによって、画素毎の混合データ[MIX]を求める。
【００４８】
ステップ５１２において、混合データ変換部４０１は、ステップ５１１で求めた混合データ[MIX]の値が、６ビットの最大値である６３よりも大きいかどうかを判定する。ステップ５１１で求めた混合データ[MIX]の値が６３よりも大きい場合は、ステップ５１３に進む。一方、ステップ５１１で求めた混合データ[MIX]の値が６３よりも大きくない場合は、本処理を終える。すなわち、ステップ５１１で求めた値が、混合データ[MIX]として決定される。
【００４９】
ステップ５１３において、混合データ変換部４０１は、混合データ[MIX]の値を、６ビットの上限値である６３に変更する（クリッピング処理）。通常は、[MIX]が６３を超えないように、ＭＲC、ＭＲM、ＭＲY、ＭＲK、ビットシフト量ＢＳが設定されるが、間違った数値を設定しても動作を保証するためにこのようなクリッピング処理を行う。
【００５０】
以上が、混合データ変換処理の内容である。ここで、ＭＲCが４、ＭＲMが６、ＭＲYが６、ＭＲKが０、ＢＳが４で、ＤCが５、ＤMが８、ＤYが１０、ＤKが２、である場合における混合データ変換処理の具体例を示す。
【００５１】
まず、ＭＲKは０なので、ＤK’は０である（ステップ５０１）。
【００５２】
次に、ＤK’は０でＤCは５なので、ステップ５０４へ移行する（ステップ５０２でＮｏ）。
【００５３】
ステップ５０４では、ＤCは５でＭＲCは４なので、ＤC’は２０となる。
【００５４】
そして、ＤK’は０でＤMは８なので、ステップＳ５０７へ移行する（ステップ５０５でＮｏ）。
【００５５】
ステップ５０７では、ＤMは８でＭＲMは６なので、ＤM’は４８となる。
【００５６】
そして、ＤK’は０でＤYは１０なので、ステップ５１０へ移行する（ステップ５０８でＮｏ）。
【００５７】
ステップ５１０では、ＤYは１０でＭＲYは６なので、ＤY’は６０となる。
【００５８】
そして、ステップ５１１では、まずＤC’、ＤM’、ＤY’の合計値（２０＋４８＋６０＝１２８）を求め、ＢＳ＝４に従って合計値１２８を４ビット右にシフトする。その結果、混合データ[MIX]の値として８が得られる。
【００５９】
ステップ５１１で得られた混合データ[MIX]の値（８）は、６３より小さいので（ステップ５１２でＮｏ）、最終的な混合データ[MIX]の値は８となる。
【００６０】
こうして、ＣＭＹＫの各色が任意の割合で混合された各画素６ビットの混合データが生成される。そして、この混合データを以降の処理に用いることで、処理する色に依存しないエッジ補正処理を行うことが可能となり、その結果、エッジ部に発生する偽色を抑えることができる。
【００６１】
なお、混合データ変換処理は、上述の方法に限定される訳ではなく、複数の色を用いて混合したデータを生成するものであればよい。
【００６２】
また、上述のステップ５１１では、各色の画素値Ｄと所定の混合率ＭＲとの積の合計値を、ビットシフト量ＢＳ分だけ右シフトすることで混合データ[MIX]を得ているが、例えば、右シフトに代えて除算を用いて混合データ[MIX]を得るようにしてもよい。
【００６３】
＜エッジ判定処理＞
次に、エッジ判定部４０２で行われるエッジ判定処理の詳細について説明する。
【００６４】
図６は、エッジ判定処理の流れを示すフローチャートである。
【００６５】
ステップ６０１において、エッジ判定部４０２は、混合データ変換部４０１で生成された混合データについて、上述の参照領域内の注目画素を中心とする幅３画素、高さ３画素の計９画素の中で、最も大きい画素値（最大値[MAX]）を求める。
【００６６】
ステップ６０２において、エッジ判定部４０２は、混合データ変換部４０１で生成された混合データについて、上述の参照領域内の注目画素を中心とする幅３画素、高さ３画素の計９画素の中で、最も小さい画素値（最小値[MIN]）を求める。
【００６７】
ステップ６０３において、エッジ判定部４０２は、ステップ６０１で求めた最大値[MAX]からステップ６０２で求めた最小値[MIN]を減算し、コントラスト値[CONT]を求める。
【００６８】
ステップ６０４において、エッジ判定部４０２は、ステップ６０３で求めたコントラスト値[CONT]とエッジ判定値[Sub]とを比較し、コントラスト値[CONT]の方が大きいかどうかを判定する。ここで、エッジ判定値[Sub]は、オブジェクトのエッジ部を判定するための閾値であり、例えば文字や線のエッジ部であるかどうかを判定可能な任意の値が設定される。判定の結果、エッジ判定値[Sub]よりもコントラスト値[CONT]の方が大きい場合にはステップ６０５に進む。一方、エッジ判定値[Sub]よりもコントラスト値[CONT]の方が大きくない場合にはステップ６１７に進む。
【００６９】
ステップ６０５において、エッジ判定部４０２は、ステップ６０１で求めた最大値[MAX]とステップ６０２で求めた最小値[MIN]とを加算し、得られた加算値を２で除算することによって平均値[AVE]を求める。
【００７０】
ステップ６０６において、エッジ判定部４０２は、上述の参照領域内の注目画素を中心とする幅３画素、高さ３画素の計９画素の中から、最大−最小値[MAX＿MIN]を検索する。ここで、最大-最小値[MAX＿MIN]は、最大値[MAX]を除いた平均値[AVE]以上の画素値の中で最小の値である。
【００７１】
ステップ６０７において、エッジ判定部４０２は、ステップ６０６における検索で最大-最小値[MAX＿MIN]が見つかったかどうかを判定する。最大-最小値[MAX＿MIN]が見つかった場合にはステップ６０８に進む。一方、最大-最小値[MAX＿MIN]が見つからなかった場合にはステップ６０９に進む。
【００７２】
ステップ６０８において、エッジ判定部４０２は、ステップ６０１で求めた最大値[MAX]からステップ６０６で見つかった最大-最小値[MAX＿MIN]を減算して、最大値との差分値[MAX＿DIFF＿MIN]を求める。
【００７３】
ステップ６０９において、エッジ判定部４０２は、最大-最小値[MAX＿MIN]が存在しないため、最大値との差分値[MAX＿DIFF＿MIN]を“０”に設定する。
【００７４】
ステップ６１０において、エッジ判定部４０２は、上述の参照領域内の注目画素を中心とする幅３画素、高さ３画素の計９画素の中から、最小-最大値[MIN＿MAX]を検索する。ここで、最小-最大値[MIN＿MAX]は、最小値[MIN]を除いた平均値[AVE]未満の画素値の中で、最大の値である。
【００７５】
ステップ６１１において、エッジ判定部４０２は、ステップ６１０における検索で最小-最大値[MIN＿MAX]が見つかったかどうかを判定する。最小-最大値[MIN＿MAX]が見つかった場合にはステップ６１２に進む。一方、最小-最大値[MIN＿MAX]が見つからなかった場合にはステップ６１３に進む。
【００７６】
ステップ６１２において、エッジ判定部４０２は、ステップ６１１で見つかった最小-最大値[MIN＿MAX]からステップ６０２で求めた最小値[MIN]を減算して、最小値との差分値[MIN＿DIFF＿MAX]を求める。
【００７７】
ステップ６１３において、エッジ判定部４０２は、最小-最大値[MIN＿MAX]が存在しないため、最小値との差分値[MIN＿DIFF＿MAX]を“０”に設定する。
【００７８】
ステップ６１４において、エッジ判定部４０２は、上述の最大-最小値[MAX＿MIN]及び最小-最大値[MIN＿MAX]のいずれも見つからなかったかどうかを判定する。どちらもなかった場合にはステップ６１５に進む。一方、どちらかがあった場合にはステップ６１６に進む。
【００７９】
ステップ６１５に進んだ時点で、最大-最小値[MAX＿MIN]及び最小-最大値[MIN＿MAX]がどちらも見つからず（ステップ６１４でＹｅｓ）、コントラスト値[CONT]が十分に大きい（ステップ６０４でＹｅｓ）ことが判明している。したがって、エッジ判定部４０２は、画素値に急峻な変化がある領域（すなわち、エッジ補正の必要があるエッジ画素）であると判断して、エッジ判定信号を“１（ＯＮ）”に設定し、本処理を終える。
【００８０】
ステップ６１６において、エッジ判定部４０２は、上述の参照領域に３つ以上の画素値がある場合に、補正が必要なエッジであるか否かを判定する処理（３値以上のエッジ判定処理）を行う。この３値以上のエッジ判定処理は、圧縮処理などで劣化した文字や自然画などに存在するエッジを検出するための処理である。図７は、３値以上のエッジ判定処理の詳細を示すフローチャートである。以下、詳しく説明する。
【００８１】
ステップ７０１において、エッジ判定部４０２は、ステップ６０３で求めたコントラスト値[CONT]から最大値との差分値 [MAX＿DIFF＿MIN]と最小値との差分値 [MIN＿DIFF＿MAX]を減算して、平均値付近の値の分布を示す分散値[DIFF]を求める。
【００８２】
ステップ７０２において、エッジ判定部４０２は、ステップ７０１で求めた分散値[DIFF]が第１の閾値[DiffTh＿1]よりも大きいか否かを判定する。第１の閾値は、最大の最小値と最小の最大値との差が十分に大きいかどうかを判定するための閾値である。よって、第１の閾値には、エッジとして検出したい信号値差を表す値を設定する。この第１の閾値には、エッジ判定値[Sub]より少し小さい値が設定されることが望ましい。分散値[DIFF]が第１の閾値[DiffTh＿1]よりも大きい場合にはステップ７０４に進む。一方、分散値[DIFF]が第１の閾値[DiffTh＿1]よりも大きくない場合にはステップ７０３に進む。
【００８３】
ステップ７０３において、エッジ判定部４０２は、ステップ７０１で求めた分散値[DIFF]が十分大きな値でないため、画素値に急峻な変化がない領域であると判断する。すなわち、エッジ補正の必要がない非エッジ画素であると判断して、エッジ判定信号を“０（ＯＦＦ）”に設定し、本処理を終える。
【００８４】
ステップ７０４において、エッジ判定部４０２は、上述の最大値との差分値[MAX＿DIFF＿MIN]が第２の閾値[DiffTh＿2]より小さいか否かを判定する。第２の閾値及び後述の第３の閾値は、最大値との差分値[MAX＿DIFF＿MIN]及び最小値との差分値[MIN＿DIFF＿MAX]が十分に小さいかどうかを判定するための閾値である。最大値との差分値[MAX＿DIFF＿MIN]及び最小値との差分値[MIN＿DIFF＿MAX]が大きいということは、グラデーション部などで変化がある部分であることを意味している。グラデーションの変化の勾配がきつい部分は、エッジとして検出したくないので、第２及び第３の閾値を用いて判定することとしている。第２及び第３の閾値は、第１の閾値に比べて十分に小さい値とすることが望ましい。なぜなら、第２及び第３の閾値が大きくなればなるほど、コントラストがあって信号値のばらつきのある部分をエッジとして判定してしまうためである。最大値との差分値[MAX＿DIFF＿MIN]が第２の閾値[DiffTh＿2]より小さい場合にはステップ７０５に進む。一方、最大値との差分値[MAX＿DIFF＿MIN]が第２の閾値[DiffTh＿2]より小さくない場合にはステップ７０７に進む。
【００８５】
ステップ７０５において、エッジ判定部４０２は、上述の最小値との差分値[MIN＿DIFF＿MAX]が第２の閾値[DiffTh＿2]より小さいか否かを判定する。最小値との差分値[MIN＿DIFF＿MAX]が第２の閾値[DiffTh＿2]より小さい場合にはステップ７０６に進む。一方、最小値との差分値[MIN＿DIFF＿MAX]が第２の閾値[DiffTh＿2]より小さくない場合にはステップ７０７に進む。
【００８６】
ステップ７０６において、エッジ判定部４０２は、最大値との差分値[MAX＿DIFF＿MIN]及び最小値との差分値[MIN＿DIFF＿MAX]の両者が共に十分小さいことから、画素値に急峻な変化がある領域であると判断する。すなわち、エッジ補正の必要があるエッジ画素であると判断して、エッジ判定信号を“１（ＯＮ）”に設定し、ステップ７０８に進む。
【００８７】
ステップ７０７において、エッジ判定部４０２は、画素値に急峻な変化がない領域と判断する、すなわち、エッジ補正の必要がない非エッジ画素であると判断して、エッジ判定信号を“０（ＯＦＦ）”に設定し、ステップ７０８に進む。
【００８８】
ステップ７０８において、エッジ判定部４０２は、最大値との差分値[MAX＿DIFF＿MIN]が第３の閾値[DiffTh＿3]より小さいか否かを判定する。最大値との差分値[MAX＿DIFF＿MIN]が第３の閾値[DiffTh＿3]より小さい場合にはステップ７１０に進む。一方、最大値との差分値[MAX＿DIFF＿MIN]が第３の閾値[DiffTh＿3]より小さくない場合にはステップ７０９に進む。
【００８９】
ステップ７０９において、エッジ判定部４０２は、最小値との差分値[MIN＿DIFF＿MAX]が第３の閾値[DiffTh＿3]より小さいか否かを判定する。最小値との差分値[MIN＿DIFF＿MAX]が第３の閾値[DiffTh＿3]より小さい場合にはステップ７１０に進む。一方、最小値との差分値[MIN＿DIFF＿MAX]が第３の閾値[DiffTh＿3]より小さくない場合には、本処理を終える。
【００９０】
ステップ７１０において、エッジ判定部４０２は、最大値との差分値[MAX＿DIFF＿MIN]及び最小値との差分値[MIN＿DIFF＿MAX]のいずれかが十分に小さく、画素値に急峻な変化がある領域と判断する。すなわち、エッジ補正の必要があるエッジ画素であると判断して、エッジ判定信号を“１（ＯＮ）”に設定し、本処理を終える。
【００９１】
なお、上述の説明では、エッジ判定値や第１〜第３の閾値は各一つであるように記載しているが、これらの値を複数用意し、必要に応じて使い分けるようにしてもよい。例えば、さらに属性データを参照するようにして、注目画素の属性がイメージである場合は、他の属性よりもエッジ判定値と第１の閾値をより大きな値に、第２及び第３の閾値をより小さな値にそれぞれ切り替える。また、注目画素の属性が文字や線である場合は、他の属性よりもエッジ判定値と第１の閾値をより小さな値に、第２及び第３の閾値をより大きな値にそれぞれ切り替えてもよい。このような切り替えを行なうことによって、色や形状が複雑になりやすいイメージ属性では補正がかかり難く、また、色や形状が一様になりやすい文字属性や線属性では補正がよりかかり易くなるようにするといった具合に、緻密な制御が可能となる。
【００９２】
以上が、３値以上のエッジ判定処理の内容である。
【００９３】
図６のフローチャートの説明に戻る。
【００９４】
ステップ６１７において、エッジ判定部４０２は、コントラスト値[CONT]が小さいことから（ステップ６０４でＮｏ）、参照領域が画素値に急峻な変化がない領域であると判断する。すなわち、参照領域はエッジ補正の必要がない非エッジ画素であると判断して、エッジ判定信号を“０（ＯＦＦ）”に設定し、本処理を終える。
【００９５】
以上がエッジ判定処理の内容である。ここで、図８を用いて、エッジ判定処理の具体例を説明する。図８には、エッジとして検出したい３×３画素の画像８０１と、エッジとして検出したくない３×３画素の画像８０２が示されている。画像８０１と画像８０２とは同じコントラストである。
【００９６】
まず、両画像８０１及び８０２の最大値[MAX]は共に“４０”であり（ステップ６０１）、最小値[MIN]は共に“０”である（ステップ６０２）。そして、両画像８０１及び８０２のコントラスト[CONT]は共に“４０”となる（ステップ６０３）。
【００９７】
そして、エッジ判定値[Sub]が“２０”であるとすると、いずれの画像の場合もステップ６０５へ移行し（ステップ６０４でＹｅｓ）、その平均値[AVE]として共に“２０”が導出される。
【００９８】
続くステップでは、画像８０１の場合は最大-最小値[MAX＿MIN]は存在しないため（ステップ６０７でＮｏ）、最大値との差分値[MAX＿DIFF＿MIN]は“０”となる（ステップ６０９）。これに対し、画像８０２の場合は最大-最小値[MAX＿MIN]は存在するため（ステップ６０７でＹｅｓ）、最大値との差分値[MAX＿DIFF＿MIN]として“１０（＝４０−３０）”が得られる（ステップ６０８）。
【００９９】
そして、画像８０１の場合は最小-最大値[MIN＿MAX]も存在しないため（ステップ６１１でＮｏ）、最小値との差分値[MIN＿DIFF＿MAX]も“０と”なる（ステップ６１３）。これに対し、画像８０２の場合は最小-最大値[MIN＿MAX]が存在するため（ステップ６１１でＹｅｓ）、最小値との差分値[MIN＿DIFF＿MAX]として“１８（＝１８−０）”が得られる（ステップ６１２）。
【０１００】
ここまでの処理により、画像８０１については、最大-最小値[MAX＿MIN]と最小-最大値[MIN＿MAX]のどちらも存在しなかったので（ステップ６１４でＹｅｓ）、エッジ判定信号がＯＮに設定される（ステップ６１５）。つまり、画像８０１はエッジ部であると判定される。一方、画像８０２については、最大-最小値[MAX＿MIN]も最小-最大値[MIN＿MAX]の双方が存在するので、３値以上のエッジ判定処理に進むことになる（ステップ６１６）。
【０１０１】
画像８０２に対する３値以上のエッジ判定処理では、まず、分散値[DIFF]が導出される（ステップ７０１）。いま、コントラスト[CONT]は“４０”、最大値との差分値[MAX＿DIFF＿MIN]は“１０”、最小値との差分値[MIN＿DIFF＿MAX]は“１８”なので、分散値[DIFF]は“１２”となる。
【０１０２】
そして、ステップ７０２における第１の閾値[DiffTh＿1]が“１６”であったとすると（ステップ７０２でＮｏ）、エッジ判定信号がＯＦＦに設定される（ステップ７０３）。つまり、画像８０２はエッジ部でないと判定される。
【０１０３】
上述のとおり図６のフローチャートでは、参照領域内の画素値が３つ未満の単純な領域である場合に、コントラスト値[CONT]のみを用いて補正が必要なエッジ部であるかどうかを判定するようにしている。しかしながら、このような態様に限定されるものではない。例えば、参照領域内の状態に関わらず、参照領域内のコントラスト値が十分に大きいか否かにのみ基づいてエッジ補正が必要なエッジであるかどうかを判定するようにしてもよい。要は、エッジ部にエッジ補正処理を施すべきであるか否かが適切に判定できればよい。
【０１０４】
（エッジ方向判定処理）
次に、エッジ方向判定部４０４で行われるエッジ方向判定処理の詳細について説明する。
【０１０５】
図９は、注目画素とエッジ方向判定部４０４で参照される４つの画素の位置関係を示した図である。図９において注目画素が[tr＿pix]、注目画素の左隣の画素が[left＿pix]、注目画素の右隣の画素が[right＿pix]、注目画素の上隣の画素が[up＿pix]、注目画素の下隣の画素が[down＿pix]でそれぞれ示されている。図１０は、エッジ方向判定処理の流れを示すフローチャートである。
【０１０６】
ステップ１００１において、エッジ方向判定部４０４は、注目画素の画素値と注目画素の上隣画素の画素値とを比較し、注目画素の画素値の方が大きいかどうかを判定する。注目画素の画素値の方が大きい場合には、ステップ１００２へ進む。一方、注目画素の画素値の方が大きくない場合には、ステップ１００３へ進む。
【０１０７】
ステップ１００２において、エッジ方向判定部４０４は、エッジが注目画素の上にあることを示すエッジ方向信号[Edge＿Dir]を生成する。本実施例では、エッジ方向信号[Edge＿Dir]を２ビットの信号とし、エッジが注目画素の上にあることを示す値として“００”を設定する。生成されたエッジ方向信号[Edge＿Dir]は判定結果統合部４０５に送られ、本処理を終了する。
【０１０８】
ステップ１００３において、エッジ方向判定部４０４は、注目画素の画素値と注目画素の下隣画素の画素値とを比較し、注目画素の画素値の方が大きいかどうかを判定する。注目画素の画素値の方が大きい場合には、ステップ１００４に進む。一方、注目画素の画素値の方大きくない場合には、ステップ１００５に進む。
【０１０９】
ステップ１００４において、エッジ方向判定部４０４は、エッジが注目画素の下にあることを示すエッジ方向信号[Edge＿Dir]を生成する。具体的には、エッジが注目画素の下にあることを示す値として“０１”をエッジ方向信号[Edge＿Dir]に設定する。生成されたエッジ方向信号[Edge＿Dir]は判定結果統合部４０５に送られ、本処理を終了する。
【０１１０】
ステップ１００５において、エッジ方向判定部４０４は、注目画素の画素値と注目画素の右隣画素の画素値とを比較し、注目画素の画素値の方が大きいかどうかを判定する。注目画素の画素値の方が大きい場合には、ステップ１００６へ進む。一方、注目画素の画素値の方が大きくない場合には、ステップ１００７へ進む。
【０１１１】
ステップ１００６において、エッジ方向判定部４０４は、エッジが注目画素の右にあることを示すエッジ方向信号[Edge＿Dir]を生成する。具体的には、エッジが注目画素の右にあることを示す値として“１０”をエッジ方向信号[Edge＿Dir]に設定する。生成されたエッジ方向信号[Edge＿Dir]は判定結果統合部４０５に送られ、本処理を終了する。
【０１１２】
ステップ１００７において、エッジ方向判定部４０４は、エッジが注目画素の左にあることを示すエッジ方向信号[Edge＿Dir]を生成する。具体的には、エッジが注目画素の左にあることを示す値として“１１”をエッジ方向信号[Edge＿Dir]に設定する。生成されたエッジ方向信号[Edge＿Dir]は判定結果統合部４０５に送られ、本処理を終了する。
【０１１３】
以上が、エッジ方向判定処理の内容である。エッジ方向信号によって、注目画素がエッジに対してどの方向に存在するのかが分かる。
【０１１４】
＜エッジ補正データ生成処理＞
次に、エッジ補正データ生成部３０４におけるエッジ補正データ生成処理の詳細について説明する。
【０１１５】
エッジ補正データ生成部３０４は、予め用意されたテーブル等（例えば一次元のルックアップテーブル：ＬＵＴ）を参照してエッジ補正データを生成する。具体的には、所定の入力値に対応する出力値を、ＬＵＴを参照して決定（変換）し、エッジ補正データとする。本実施例では、入力された画像データを８ビットから４ビットに変換した上で、上記エッジ補正データを生成するものとする。図１１は、エッジ補正データ生成処理で用いられるルックアップテーブルの一例を示している。図１１（ａ）〜（ｃ）で示される各ＬＵＴは、４ビット（０〜１５）の入力値と出力値がそれぞれ一対一で対応付けられている。図１１の（ａ）は、入力値をそのままの値で出力するリニアな特性を持つＬＵＴである。図１１の（ｂ）及び（ｃ）は、プリンタの特性に応じて非線形な特性を持つＬＵＴである。図１１（ｂ）は、入力値に対して出力値が小さい値をとるＬＵＴであり、プリンタの階調特性が通常よりも濃い場合や、エッジ補正効果を弱める場合などに用いられる。また、図１１（ｃ）は、入力値に対して出力値が大きい値をとるＬＵＴであり、プリンタの階調特性が通常より薄い場合や、エッジ補正効果を強める場合などに用いられる。
【０１１６】
＜スクリーン処理＞
次に、スクリーン処理部３０５におけるスクリーン処理について説明する。
【０１１７】
図１２は、スクリーン処理部３０５で行われるスクリーン処理の流れを示すフローチャートである。このスクリーン処理は、入力される画像データと予め設定されるディザマトリクスを用いて、プリンタ部１０３で印刷可能な４ビットの画像データに変換する処理である。
【０１１８】
ステップ１２０１において、スクリーン処理部３０５は、所定のディザマトリクスを用いて、多値のディザ法によって画像データを４ビットのスクリーンデータに変換する。ディザマトリクスを用いた多値のディザ法については、周知の技術であるため説明を省く。
【０１１９】
ステップ１２０２において、スクリーン処理部３０５は、ステップ１２０１で得られたスクリーンデータを画像合成部３０７に出力する。
【０１２０】
以上が、スクリーン処理部３０５におけるスクリーン処理の内容である。
【０１２１】
＜位相ずれスクリーン処理＞
次に、位相ずれスクリーン処理部３０６で行われる位相をずらしたスクリーン処理について詳しく説明する。この処理により、その後の画像合成部３０７における処理において、エッジ部のスクリーンドットをオブジェクトの内側にずらすことが可能となる。位相ずれスクリーン処理部３０６におけるスクリーン処理の流れは、上述のスクリーン処理部３０５におけるスクリーン処理の流れと同じであるため、以下では差異点のみを説明する。
【０１２２】
前述のステップ１２０１において、位相ずれスクリーン処理部３０６は、位相をずらしたディザマトリクスを用い、多値のディザ法によって画像データを４ビットのスクリーンデータに変換する。具体的には、スクリーン処理部３０５で用いたディザマトリクスの位相を、上下左右に各１画素ずらしたディザマトリクスを用いてスクリーンデータに変換する。図１３は、位相をずらしたディザマトリクスを説明する図である。図１３（ａ）に示すレベル１〜１５のディザマトリクス１３０１は、スクリーン処理部３０５で用いられるディザマトリクスである。図１３（ｂ）〜（ｅ）に示す、レベル１〜１５で構成されるディザマトリクス１３０２〜１３０５は、位相ずれスクリーン処理部３０６で用いられるディザマトリクスであり、ディザマトリクス１３０１の位相を上下左右にそれぞれ一マスずらしたものである。すなわち、図１３（ｂ）は上に１マスずらしたディザマトリクス、同（ｃ）は下に１マスずらしたディザマトリクス、同（ｄ）は左に１マスずらしたディザマトリクス、同（ｅ）は右に１マスずらしたディザマトリクスである。
【０１２３】
図１４は、スクリーン処理部３０５でのスクリーン処理結果と位相ずれスクリーン処理部３０６でのスクリーン処理結果とを比較して説明する図である。図１４（ａ）は、双方のスクリーン処理部に入力される画像データであり、縦１２画素×横７画素の矩形のオブジェクト１４０１が存在している。
【０１２４】
図１４（ｂ）は、スクリーン処理部３０５におけるスクリーン処理で生成されるスクリーンデータである。画素群１４０２は、網点に変換された画素群である。
【０１２５】
図１４（ｃ）〜（ｆ）は、位相ずれスクリーン処理部３０６における位相を上下左右に１マスずらしたスクリーン処理で生成されるスクリーンデータである。図１４（ｃ）〜（ｆ）において画素群１４０３〜１４０６は、網点に変換された画素群であり、図１４（ｂ）における画素群１４０２にそれぞれ対応している。図１４（ｃ）における画素群１４０３は、画素群１４０２に比べて位相が上に１マスずれている。同様に、図１４（ｄ）における画素群１４０４は画素群１４０２に比べて位相が下に１マスずれている。そして、図１４（ｅ）における画素群１４０５は画素群１４０２に比べて位相が左に１マスずれ、図１４（ｆ）における画素群１４０６は画素群１４０２に比べて位相が右に１マスずれている。
【０１２６】
＜画像合成処理＞
次に、画像合成部３０７で行われる画像合成処理について説明する。図１５は、画像合成部３０７で行われる画像合成処理の流れを示すフローチャートである。以下の処理が、入力画像データ（ガンマ補正後の画像データ）内のすべての画素に対して実行される。
【０１２７】
ステップ１５０１において、画像合成部３０７は、エッジ情報生成部３０２から入力されるエッジ情報に基づいて、注目画素がエッジ画素であるか否かを判定する。具体的には、エッジ情報の上位１ビットのデータを参照して、値が“１”の場合はエッジ画素と判定し、ステップ１５０２へ進む。一方、上位１ビットの値が“０”の場合は非エッジ画素と判定し、ステップ１５０３へ進む。
【０１２８】
ステップ１５０２において、画像合成部３０７は、エッジ補正データ生成部３０４から入力されたエッジ補正データにおける注目画素の画素値を、出力画像データとしてプリンタ部１０３に出力する。
【０１２９】
ステップ１５０３において、画像合成部３０７は、エッジ情報生成部３０２から入力されるエッジ情報を参照し、注目画素の周辺画素（注目画素を囲む周囲８画素）にエッジ画素が存在するか否かを判定する。周辺画素にエッジ画素が存在する場合は、ステップ１５０４へ進む。一方、周辺画素にエッジ画素が存在しない場合は、ステップ１５１３へ進む。
【０１３０】
ステップ１５０４において、画像処理部３０７は、注目画素の画素値と所定の参照画素の画素値を比較して、注目画素がエッジ画素に内接する画素であるかどうか（オブジェクト内側の画素かどうか）を判定する。ここで、参照画素は、注目画素に隣接する画素であって、図１６に示すような位置関係にある画素を指す。図１６において、中央の画素１６０１が注目画素を示し、それ以外の画素１６０２〜１６０９が参照画素を示している。そして、注目画素がエッジ画素に内接する画素であるかどうかが、以下の条件に従って判定される。  
・参照画素１６０２のエッジ情報の上位１ビットが“１”である場合は、注目画素１６０１の画素値から参照画素１６０６の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・参照画素１６０３のエッジ情報の上位１ビットが“１”である場合は、注目画素１６０１の画素値から参照画素１６０７の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・参照画素１６０４のエッジ情報の上位１ビットが“１”である場合は、注目画素１６０１の画素値から参照画素１６０８の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・参照画素１６０５のエッジ情報の上位１ビットが“１”である場合は、注目画素１６０１の画素値から参照画素１６０８の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・上記４つの条件に該当しない場合は、注目画素はエッジ画素に内接する画素でないと判定する。
【０１３１】
判定の結果、注目画素がエッジ画素に内接する画素であると判定された場合は、ステップ１５０５に進む。一方、注目画素がエッジ画素に内接する画素でないと判定された場合は、ステップ１５１３へ進む。
【０１３２】
ステップ１５０５において、画像合成部３０７は、エッジ情報を参照し、エッジが注目画素の上にあるかどうか（エッジ情報の下位２ビットの値が“００”であるかどうか）を判定する。下位２ビットの値が“００”である場合は、エッジが注目画素の上にあると判定し、ステップ１５０６へ進む。一方、下位２ビットの値が “００”でない場合は、ステップ１５０７へ進む。
【０１３３】
ステップ１５０６において、画像合成部３０７は、スクリーン処理部３０５と位相ずれスクリーン処理部３０６の出力結果を合成し、合成データ[combData]を生成する。本ステップでは、オブジェクトの内側にスクリーンドットを移動させるために、エッジの方向（ここでは、上）とは逆の方向に位相をずらしたスクリーンデータを合成する。具体的には、スクリーン処理部３０５の出力結果[Sc]に、位相ずれスクリーン処理部３０６の出力結果の内、位相を下にずらしたスクリーンデータ[PSdownSc]を加算し、予め定めた合成係数βを乗算することにより、合成データ[combData]を得る。
【０１３４】
ステップ１５０７において、画像合成部３０７は、エッジ情報を参照し、エッジが注目画素の下にあるかどうか（エッジ情報の下位２ビットの値が“０１”であるかどうか）を判定する。下位２ビットの値が“０１”である場合は、エッジが注目画素の下にあると判定し、ステップ１５０８へ進む。一方、下位２ビットの値が “０１”でない場合は、ステップ１５０９へ進む。
【０１３５】
ステップ１５０８において、画像合成部３０７は、スクリーン処理部３０５と位相ずれスクリーン処理部３０６の出力結果を合成し、合成データ[combData]を生成する。本ステップでは、オブジェクトの内側にスクリーンドットを移動させるために、エッジの方向（ここでは、下）とは逆の方向に位相をずらしたスクリーンデータを合成する。具体的には、スクリーン処理部３０５の出力結果[Sc]に、位相ずれスクリーン処理部３０６の出力結果の内、位相を上にずらしたスクリーンデータ[PSupSc]を加算し、予め定めた合成係数βを乗算することにより、合成データ[combData]を得る。
【０１３６】
ステップ１５０９において、画像合成部３０７は、エッジ情報を参照し、エッジが注目画素の左にあるかどうか（エッジ情報の下位２ビットの値が“１０”であるかどうか）を判定する。下位２ビットの値が“１０”である場合は、エッジが注目画素の左にあると判定し、ステップ１５１０へ進む。一方、下位２ビットの値が “１０”でない場合は、エッジが注目画素の右にあると判定し、ステップ１５１１へ進む。
【０１３７】
ステップ１５１０において、画像合成部３０７は、スクリーン処理部３０５と位相ずれスクリーン処理部３０６の出力結果を合成し、合成データ[combData]を生成する。本ステップでは、オブジェクトの内側にスクリーンドットを移動させるために、エッジの方向（ここでは、左）とは逆の方向に位相をずらしたスクリーンデータを合成する。具体的には、スクリーン処理部３０５の出力結果[Sc]に、位相ずれスクリーン処理部３０６の出力結果の内、位相を右にずらしたスクリーンデータ[PSrightSc]を加算し、予め定めた合成係数βを乗算することにより、合成データ[combData]を得る。
【０１３８】
ステップ１５１１において、画像合成部３０７は、スクリーン処理部３０５と位相ずれスクリーン処理部３０６の出力結果を合成し、合成データ[combData]を生成する。本ステップでは、オブジェクトの内側にスクリーンドットを移動させるために、エッジの方向（ここでは、右）とは逆の方向に位相をずらしたスクリーンデータを合成する。具体的には、スクリーン処理部３０５の出力結果[Sc]に、位相ずれスクリーン処理部３０６の出力結果の内、位相を左にずらしたスクリーンデータ[PSleftSc]を加算し、予め定めた合成係数βを乗算することにより、合成データ[combData]を得る。
【０１３９】
ステップ１５１２において、画像合成部３０７は、注目画素について生成された合成データ[combData]を、出力画像データとしてプリンタ部１０３に出力する。
【０１４０】
ステップ１５１３において、画像合成部３０７は、スクリーン処理部３０５の出力結果であるスクリーンデータ[Sc] における注目画素の画素値を、出力画像データとしてプリンタ部１０３に出力する。
【０１４１】
上記の処理が、入力画像データ内に未処理の画素がなくなるまで繰り返される。以上が画像合成処理の内容である。上述のとおり、エッジ情報とガンマ補正後の画像データに応じて、出力される画像データ（注目画素の画素値）が、エッジ補正データ、合成データ、スクリーンデータのいずれかに適宜切り替えられることになる。
【０１４２】
なお、本実施例では、合成係数βを乗算して合成データを生成していたが、これに限定されるものではない。例えば、スクリーン処理部３０５と位相ずれスクリーン処理部３０６の処理結果の加算値を一次元のルックアップテーブルに入力して、合成データを生成してもよい。
【０１４３】
最後に、本実施例を適用する場合と適用しない場合の違いを、図１７〜図１９を参照して説明する。
【０１４４】
図１７は、位相ずれスクリーン処理の結果を用いずにエッジ補正処理を行った場合の一例を説明する図である。
【０１４５】
図１７（ａ）は、スクリーン処理部３０５に入力される画像データであり、前述の図１４（ａ）と同様、縦１２画素×横７画素の矩形のオブジェクト１７０１が存在している。
【０１４６】
図１７（ｂ）は、（画像合成部３０７に入力される）エッジ情報によって、上位１ビットが“１”のエッジ画素を斜線で示した図である。エッジ画素１７０２にはエッジ補正データが適用され、エッジ画素１７０２の内側領域内の画素１７０３にはスクリーンデータが適用される。
【０１４７】
図１７（ｃ）は、スクリーン処理部３０５で生成されるスクリーンデータを示した図である。画素群１７０４は、網点に変換された画素群である。
【０１４８】
図１７（ｄ）は、画像合成部３０７に入力されるエッジ補正データを示す図であり、グレーで示される画素の画素値が、図１７（ｂ）に示すエッジ画素１７０２における画素値となる。
【０１４９】
図１７（ｅ）は、従来技術によるエッジ補正処理の結果の一例を示す図である。この場合、エッジ画素１７０２に対して、図１７（ｃ）に示すスクリーンデータと図１７（ｄ）に示すエッジ補正データとで比較を行い、大きい方の値を出力値とする合成処理がなされている。
【０１５０】
図１７（ｆ）は、別の従来技術によるエッジ補正処理の結果の一例を示す図である。この場合、エッジ画素１７０２に対して、図１７（ｄ）に示すエッジ補正データをそのまま用いる合成処理がなされている。
【０１５１】
図１８は、本実施例を適用してエッジ補正処理を行った場合の一例を説明する図である。
【０１５２】
図１８（ａ）は、スクリーン処理部３０５に入力される画像データであり、図１７（ａ）と同様、縦１２画素×横７画素の矩形のオブジェクト１８０１が存在している。
【０１５３】
図１８（ｂ）は、（画像合成部３０７に入力される）エッジ情報の上位１ビットが“１”のエッジ画素１８０２を斜線で、当該エッジ画素に接する内エッジ画素１８０３を斜め格子で示した図である。エッジ画素１８０２にはエッジ補正データが用いられ、内エッジ画素１８０３には合成データが用いられ、内エッジ画素１８０３の内側領域内の画素１８０４にはスクリーンデータが用いられる。
【０１５４】
図１８（ｃ）は、スクリーン処理部３０５で生成されるスクリーンデータを示した図である。画素群１８０５は、網点に変換された画像群である。
【０１５５】
図１８（ｄ）は、画像合成部３０７に入力されるエッジ補正データを示す図であり、グレーで示す画素の画素値が、図１８（ｂ）に示すエッジ画素１８０２における画素値となる。
【０１５６】
図１８（ｅ）は、画像合成部３０７で生成される合成データを示す図であり、複数レベルのグレーで示す画素の画素値が、図１８（ｂ）に示す内エッジ画素１８０３における画素値となる。
【０１５７】
図１８（ｆ）は、画像合成部３０７から出力される本実施例によるエッジ補正処理結果としての出力画像データを示す図である。この場合、エッジ画素１８０２に対して図１８（ｄ）のエッジ補正データ、内エッジ画素１８０３に対して図１８（ｅ）の合成データ、内エッジ画素の内側領域内の画素１８０４に対して図１８（ｃ）のスクリーンデータがそれぞれ用いられている。
【０１５８】
図１９は、本実施例によるエッジ補正処理後の画像における各画素の露光量を説明する図である。
【０１５９】
図１９（ａ）は、画素の信号値に対する露光量を示している。画素１９０１の画素値は“４”であり、露光量が小さいことを薄いグレーで示している。画素１９０２は画素値が“８”で画素１９０１より露光量が大きく、やや濃いグレーで示している。画素１９０３は画素値が“１５”で画素１９０２より露光量が大きく、黒で示している。
【０１６０】
図１９（ｂ）は、図１７（ｅ）で示した従来技術によるエッジ補正処理結果（１）における各画素の露光量を示した図である。図１９（ｂ）では、エッジ部の画素値は画素によって異なっており、例えば画素１９０４（グレー）と画素１９０５（黒）との間に段差が発生してしまうことになる。さらに、電子写真の特性上、ハーフドットはフルドットに引き寄せられるので、潜像形成時には段差がより顕著となり、ジャギーを完全に除去しきれない。
【０１６１】
図１９（ｃ）は、図１７（ｆ）で示した別の従来技術によるエッジ補正処理結果（２）における各画素の露光量を示した図である。図１９（ｃ）では、エッジ部の画素値は全て同じ画素値“８”なので、エッジ部における段差の問題は生じない。しかし、図１９（ｂ）において画素１９０５に存在していたスクリーンドット（フルドット）が、図１９（ｃ）では画素値“８”のハーフドットに置き変わるので、スクリーンドットの連続性が失われてしまう。例えば、画素１９０８に対して、画素１９０７の露光の影響が失われる。つまり、エッジ部に存在していたフルドットがエッジ補正データによってハーフドットに置き換わることで、スクリーンドットの連続性がエッジの手前で失われ、不自然になってしまう。
【０１６２】
図１９（ｂ）及び（ｃ）から明らかなように、エッジ部周辺において、位相をずらしたスクリーン処理の結果を合成しない場合には、ジャギーを除去しきれなかったり、画像不良が発生してしまうことが分かる。
【０１６３】
図１９（ｄ）は、図１８（ｆ）で示した本実施例によるエッジ補正処理結果における各画素の露光量を示した図である。図１９（ｄ）では、エッジ部は図１９（ｃ）と同様すべて同じハーフドットで、画素値のばらつきがないのでエッジ部の段差の問題は発生しない。また、オブジェクト内側のエッジ部に隣接する画素（内エッジ画素）に対して、位相をずらしたスクリーン結果を合成することで、エッジ部に存在していたスクリーンドットをオブジェクトの内側にずらすことができている。例えば画素１９１０にドットを付加することで、あたかも画素１９０９を中心にスクリーンドットが存在しているかのように見せることができている。これにより、エッジ部においてもスクリーンドットの連続性が維持されている。
【０１６４】
本実施例によれば、エッジ部に隣接するオブジェクト内側の画素に対して位相をずらしたスクリーン処理の結果が合成され、置き換えられたエッジ部のスクリーンドットがオブジェクトの内側に再配置される。これにより、スクリーンドットの連続性をエッジ部付近まで保ちながら、エッジ部のジャギーを改善することができる。
【実施例２】
【０１６５】
次に、オブジェクト内側のエッジ部に隣接する画素に対して位相をずらしたスクリーン結果を合成する代わりに、エッジ部に存在するスクリーンドットをオブジェクトの内側に移動させる態様について、実施例２として説明する。なお、実施例１と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
【０１６６】
図２０は、本実施例に係る、画像処理を担う機能部としての画像処理部の内部構成を示すブロック図である。本実施例に係る画像処理部２０００は、色補正部３０１、エッジ情報生成部２００１、ガンマ補正部３０３、エッジ補正データ生成部３０４、スクリーン処理部３０５、画像合成部２００２で構成される。これらのうち、色補正部３０１、ガンマ補正部３０３、エッジ補正データ生成部３０４、スクリーン処理部３０５については、実施例１と同じである。
【０１６７】
エッジ情報生成部２００１は、ＣＭＹＫの色毎にエッジ情報を生成する。図２１は、本実施例に係る、エッジ情報生成部２００１の内部構成を示すブロック図であり、実施例１の図４と比較すると、エッジ方向判定部４０４が存在していないのが分かる。そのため、本実施例におけるエッジ情報には、エッジの方向を示す情報は含まれない。つまり、本実施例におけるエッジ情報は、画素毎に１ビットの値を持つデータであり、当該画素がエッジ画素である場合に“１”、非エッジ画素である場合に“０”で示す情報となる。生成されたエッジ情報は、画像合成部２００２で処理を切り替える際に参照される。
【０１６８】
画像合成部２００２は、エッジ情報生成部２００１から受け取ったエッジ情報とガンマ補正後の画像データに基づいて、後述する画像合成処理を行なう。
【０１６９】
＜画像合成処理＞
次に、画像合成部２００２で行われる画像合成処理の詳細について説明する。図２２は、画像合成部２００２で行われる画像合成処理の流れを示すフローチャートである。図２３は、実施例１の図１８に相当する図であり、本実施例を用いてエッジ補正処理を行なった場合の一例を説明する図である。図２３（ａ）は、スクリーン処理部３０５に入力される画像データであり、前述の図１８（ａ）と同様、縦１２画素×横７画素の矩形のオブジェクト２３０１が存在している。図２３（ｂ）は、（画像合成部２００２に入力される）エッジ情報が“１”のエッジ画素２３０２を斜線で、当該エッジ画素に接する内エッジ画素２３０３を斜め格子で示した図である。図２３（ｃ）は、スクリーン処理部３０５で生成されるスクリーンデータを示した図である。画素群２３０４は、網点に変換された画像群である。図２３（ｄ）は、画像合成部２００２に入力されるエッジ補正データを示す図であり、グレーで示す画素の画素値が図２３（ｂ）に示すエッジ画素２３０２における画素値となる。図２３（ｅ）は、画像合成部２００２で生成されるドット移動データを示した図である。図２３（ｆ）は、画像合成部２００２で生成されるドット補正データを示した図である。図２３（ｇ）は、画像合成部２００２から出力される本実施例によるエッジ補正処理結果としての出力画像データを示す図である。
【０１７０】
ステップ２２０１において、画像合成部２００２は、エッジ情報生成部２００１から入力されるエッジ情報に基づいて、注目画素がエッジ画素であるか否かを判定する。具体的には、エッジ情報の値が“１”の場合はエッジ画素と判定し、ステップ２２０２へ進む。一方、エッジ情報の値が“０”の場合は非エッジ画素と判定し、ステップ２２０３へ進む。
【０１７１】
ステップ２２０２において、画像合成部２００２は、エッジ補正データ生成部３０４から入力されたエッジ補正データにおける注目画素の画素値を、出力画像データとしてプリンタ部１０３に出力する。
【０１７２】
ステップ２２０３において、画像合成部２００２は、エッジ情報生成部２００１から入力されるエッジ情報を参照し、注目画素の周辺画素（注目画素を囲む周囲８画素）にエッジ画素が存在するか否かを判定する。周辺画素にエッジ画素が存在する場合は、ステップ２２０４へ進む。一方、周辺画素にエッジ画素が存在しない場合は、ステップ２２１１へ進む。
【０１７３】
ステップ２２０４において、画像合成部２００２は、注目画素の画素値と前述の参照画素の画素値（いずれもガンマ補正後）を比較して、注目画素がエッジ画素に内接する画素かどうか（オブジェクトの内側の画素であるかどうか）を判定する。具体的には、以下の条件に従って判定する（前述の図１６を参照）。  
・参照画素１６０２のエッジ情報の値が“１”である場合は、注目画素１６０１の画素値から参照画素１６０６の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・参照画素１６０３のエッジ情報の値が“１”である場合は、注目画素１６０１の画素値から参照画素１６０７の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・参照画素１６０４のエッジ情報の値が“１”である場合は、注目画素１６０１の画素値から参照画素１６０８の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・参照画素１６０５のエッジ情報の値が“１”である場合は、注目画素１６０１の画素値から参照画素１６０８の画素値を引いた値が“０”より大きければ、注目画素はエッジ画素に内接する画素であると判定する。  
・上記４つの条件に該当しない場合は、注目画素はエッジ画素に内接する画素でないと判定する。
【０１７４】
判定の結果、注目画素がエッジ画素に内接する画素であると判定された場合は、ステップ２２０５に進む。一方、注目画素がエッジ画素に内接する画素でないと判定された場合は、ステップ２２１１へ進む。
【０１７５】
ステップ２２０５において、画像合成部２００２は、注目画素に隣接する上下左右の画素が、エッジ画素であって、かつ、スクリーンドットの一部であるかどうか（スクリーンドットを構成する画素かどうか）を判定する。具体的には、注目画素に隣接する上下左右の画素について、そのエッジ情報（１ビット）の値が“１”であり、かつ、スクリーンデータにおいて“１”以上の値を持つ画素であるかどうかを判定する。判定の結果、注目画素に隣接する上下左右の画素が、エッジ画素であって、かつ、スクリーンドットを構成する画素（以下、エッジドット画素）である場合は、ステップ２２０６へ進む。一方、注目画素に隣接する上下左右の画素がエッジドット画素でない場合は、ステップ２２０８へ進む。
【０１７６】
ステップ２２０６において、画像合成部２００２は、ドット移動データを生成する。具体的には、エッジドット画素のスクリーンデータにおける画素値から、エッジ補正データ生成部３０４から入力されるエッジ補正データにおける画素値を減算して、ドット移動データとする。つまり、ドット移動データ[DotShiftVal]は、エッジドット画素のスクリーンデータ[DotVal]とエッジ補正データ[EdgeVal]から以下の式（１）によって求められる。 
DotShiftVal ＝ DotVal - EdgeVAl    ・・・式（１）
【０１７７】
ここで、注目画素が、図２３（ｅ）の画素２３０５（ドット移動データにおいて、グレーで示される画素の１つ）であった場合を例に具体的に説明する。図２３（ａ）の画素２３０６、図２３（ｂ）の画素２３０７、図２３（ｃ）の画素２３０８、図２３（ｄ）の画素２３０９は、図２３（ｅ）の画素２３０５と同じ位置にある対応画素を示している。
【０１７８】
まず、注目画素はエッジではないので、ステップ２２０３へ進む（ステップ２２０１でＮｏ、図２３（ｂ）の画素２３０７を参照）。
【０１７９】
次に、注目画素の周辺でエッジとなる画素に、図２３（ｂ）の画素２３１０があるので、ステップ２２０４へ進む（ステップ２２０３でＹｅｓ）。
【０１８０】
そして、図２３（ａ）の画素２３０６の画素値は“０”より大きい値なので、エッジの内側であると判定され、ステップ２２０５へ進む（ステップ２２０４でＹｅｓ）。
【０１８１】
そして、注目画素の左隣の画素は、エッジ画素であってスクリーンドットなので（図２３（ｂ）の画素２３１０及び図２３（ｃ）の画素２３１１を参照）、ステップ２２０６へ進み、ドット移動データが生成される。いま、画素２３１１の画素値は“１５”なので、DotValは“１５”となる。そして、画素２３１２の画素値は“８”なので（図２３（ｄ）を参照）、エッジ補正データ[EdgeVal]は“８”となる。したがって、ドット移動データ[DotShiftVal]は“１５”から“８”を引いた値である“７”となる。
【０１８２】
このようにしてドット移動データが生成される。或いは、注目画素周辺のスクリーンデータを参照し、周辺スクリーンドットから注目画素までの距離に応じた画素値を決定することでドット移動データを得てもよい。
【０１８３】
図２２のフローチャートの説明に戻る。
【０１８４】
ステップ２２０７において、画像合成部２００２は、注目画素について生成されたドット移動データを、出力画像データとしてプリンタ部１０３に出力する。
【０１８５】
ステップ２２０８において、画像合成部２００２は、注目画素がスクリーンドットの一部であるかどうかを判定する。具体的には、注目画素が、スクリーン処理部３０５から入力されるスクリーンデータにおいて“１”以上の値を持つ画素（スクリーンドットを構成する画素）であるかどうかを判定する。判定の結果、注目画素がスクリーンドットを構成する画素である場合は、ステップ２２０９へ進む。一方、注目画素がスクリーンドットを構成する画素でない場合は、ステップ２２１１へ進む。
【０１８６】
ステップ２２０９において、画像合成部２００２は、ドット補正データを生成する。ドット補正データ[DotFixVal]は、注目画素を含む所定領域（例えば３ｘ３画素）におけるスクリーンデータの合計値[DotSum]と、該所定領域におけるエッジ補正データの合計値[EdgeSum]と、該所定領域内のドット補正データが適用される画素の数[DotNum]から、以下の式（２）で求められる。（小数点以下は切り捨て）  
DotFixVal ＝ (DotSum − EdgeSum) / DotNum      ・・・式（２）
【０１８７】
ここで、注目画素が図２３（ｆ）の画素２３１３（ドット補正データにおいて、グレーで示される画素の１つ）であった場合について説明する。図２３（ａ）の画素２３１４、図２３（ｂ）の画素２３１５、図２３（ｃ）の画素２３１６は、図２３（ｆ）の画素２３１３と同じ位置にある対応画素を示している。
【０１８８】
まず、注目画素はエッジではないので、ステップ２２０３へ進む（ステップ２２０１でＮｏ、図２３（ｂ）の画素２３１５を参照）。
【０１８９】
次に、注目画素の周辺でエッジとなる画素に、図２３（ｂ）の画素２３１７があるので、ステップ２２０４へ進む（ステップ２２０３でＹｅｓ）。
【０１９０】
そして、図２３（ｆ）の画素２３１３の画素値は“０”より大きい値なので、エッジの内側であると判定され、ステップ２２０５へ進む（ステップ２２０４でＹｅｓ）。
【０１９１】
そして、注目画素に隣接する上下左右の画素に、エッジ画素であってスクリーンドットを構成する画素は存在しないので、ステップ２２０８へ進む（ステップ２２０５でＮｏ）。
【０１９２】
そして、注目画素はスクリーンドットを構成するので（図２３（ｃ）の画素２３１６を参照）、ステップ２２０９へ進み、ドット補正データが生成される。ここで、画素２３１３（＝画素２３１６）を注目画素とした場合の３ｘ３画素のスクリーンデータの合計値[DotSum]は、画素値が“１５”の画素が３個、画素値が“８”の画素が１個なので“５３”となる。そして、同様に、上記３ｘ３画素内のエッジ補正データの合計値[EdgeSum]は、画素値が“８”の画素が３個なので“２４”となる。さらに、上記３ｘ３画素内のドット補正データが適用される画素（３ｘ３画素内の画素値が０以外の画素であってエッジを構成しない画素）の数[DotNum]は、３個である（図２３（ｆ）を参照）。よって、この場合のドット補正データ[DotFixVal]は、（５３−２４）／３＝９.６６≒１０となる。
【０１９３】
なお、「注目画素を含む所定領域内のスクリーンデータの合計値と該所定領域内のエッジ補正データの合計値との差」を「該所定領域内のドット補正データが適用される画素の数」で除算するのは、注目画素を中心とする３ｘ３画素で濃度を保存するためである。本来、図２３（ａ）の入力画像に対して、図２３（ｃ）のスクリーンデータは濃度が保存された状態である。しかし、図２３（ｅ）のエッジ補正データがエッジ部に付加されるので、濃度が上昇してしまう。画像合成処理後のエッジ部は、エッジ補正データとドット補正データから構成されるので、濃度保存されたスクリーンデータの結果からエッジ補正データを減算すればドット補正データを算出することが可能となる。なお、本実施例では、所定領域を３ｘ３画素の領域としたが、５ｘ５画素や７ｘ７画素であっても構わない。
【０１９４】
ステップ２２１０において、画像合成部２００２は、注目画素について生成されたドット補正データを、出力画像データとしてプリンタ部１０３に出力する。
【０１９５】
ステップ２２１１において、画像合成部２１０２は、スクリーン処理部３０５の出力結果であるスクリーンデータ[Sc] における注目画素の画素値を、出力画像データとしてプリンタ部１０３に出力する。
【０１９６】
上記の処理が、入力画像データ内に未処理の画素がなくなるまで繰り返される。以上が、本実施例に係る画像合成処理の内容である。
【０１９７】
なお、ドット移動データやドット補正データの生成の手法は、上述したものに限定されるわけではない。例えば、注目画素のガンマ補正後の画素値を入力値とし、各入力値に対応するドット移動データ及びドット補正データの値を出力値としたＬＵＴを予め用意し、これを用いて、ドット移動データやドット補正データを生成してもよい。
【０１９８】
＜変形例＞
小ポイントの文字などエッジが密集するオブジェクトの場合、上述した手法でドット移動データを生成してしまうと、エッジが密集する部分とその周囲にあるエッジが密集していない部分との間に濃度差が発生して、画像劣化の原因となる。そこで、上述の実施例２をベースとし、注目画素周囲のエッジ画素の数も考慮してドット移動データを生成する態様について、変形例として説明する。
【０１９９】
実施例２とは、ステップ２２０６におけるドット移動データ生成処理の内容が異なるのみなので、以下では、本変形例におけるドット移動データ生成の手法についてのみ説明する。
【０２００】
ステップ２２０６において、画像合成部２００２は、エッジドット画素のスクリーンデータの画素値からエッジ補正データにおける画素値を減算し、当該減算によって得られた値に所定のエッジ補正率を乗算して、ドット移動データを得る。ここで、エッジ補正率は、注目画素の所定の周辺領域（例えば、５×５画素の領域）内にあるエッジ画素の数によって決まる値であり、例えば一次元のＬＵＴ（補正率テーブル）により決定される。図２４は、所定の周辺領域が５×５画素の領域の場合における補正率テーブルの特性の一例を示す図である。図２４に示す特性を持つ補正率テーブルでは、例えば注目画素の周囲に７個のエッジ画素があった場合にはエッジ補正率は８０％であり、エッジ画素の数が増えるほどエッジ補正率は小さくなることが分かる。すなわち、本変形例では、注目画素の周囲に多くのエッジがあるほど、生成されるドット移動データの値は小さくなる。これにより、エッジが密集する部分とその周囲との間に大きな濃度差が発生するのを抑えることができる。
【０２０１】
図２５は、本実施例（変形例を含む）におけるエッジ補正処理の結果の一例を示す図である。
【０２０２】
図２５（ａ）は、スクリーン処理部３０５に入力される画像データであり、縦６画素×横７画素の矩形のオブジェクト２５０１とそれより一回り小さい不整の形状のオブジェクト２５０２が近接した位置に存在している。オブジェクト２５０１とオブジェクト２５０２は同じ濃度である。
【０２０３】
図２５（ｂ）は、エッジ情報の値が“１”のエッジ画素を斜線で示した図である。図２５（ｂ）において、破線の矩形２５０４は、画素２５０３を注目画素とした場合の周辺領域（５×５画素の領域）を示している。このときのエッジ画素の数は７個である。また、破線の矩形２５０６は、画素２５０５を注目画素とした場合の周辺領域（５×５画素の領域）を示している。このときのエッジ画素の数は１５個である。
【０２０４】
図２５（ｃ）は、スクリーン処理部３０５で生成されるスクリーンデータを示した図である。画素群２５０７は、網点に変換された画素群である。
【０２０５】
図２５（ｄ）は、画像合成部２００２に入力されるエッジ補正データを示す図であり、図２５（ｂ）において斜線で示されるエッジ画素における画素値となる。
【０２０６】
図２５（ｅ）は、画像合成部２００２に入力されるドット移動データを示す図である。
【０２０７】
図２５（ｆ）は、実施例２を適用した場合のエッジ補正処理結果の一例を示す図である。画素２５０８はエッジを構成するエッジ画素であり、かつ、スクリーンドットが存在するので、画像合成処理によって画素２５０９にドットが付加されている。
【０２０８】
図２５（ｇ）は、変形例を適用した場合のエッジ補正処理結果の一例を示す図である。画素２５１０はエッジを構成するエッジ画素であり、かつ、スクリーンドットである。実施例２ではドットが付加されることなる画素２５１１は、当該画素を注目画素としたときの周辺領域内のエッジ画素の数が１５個であるため、エッジ補正率が０％となり（図２４の補正率テーブルを参照）、その結果画素値が“０（白画素）”となっている。
【０２０９】
図２５（ｆ）と図２５（ｇ）とを比較すると、オブジェクト２５０２全体の濃度が図２５（ｆ）の方が図２５（ｇ）に比べて濃くなっている。その結果、本来は同じ濃度で表現されるべき２つのオブクジェクト２５０１及び２５０２が、図２５（ｆ）の方では濃度差が大きくなってしまうが、図２５（ｇ）では画素２５１１が白画素なので濃度差が小さくなっている。
【０２１０】
このように、エッジ画素の数に応じてドット移動データを生成することで、エッジが密集する場合においても、画像劣化を招くことがないエッジ補正処理を実現できる。
【０２１１】
また、エッジ補正データやドット補正データについても、ドット移動データと同様、エッジ画素の数に応じた生成を行ってもよい。
【０２１２】
以上述べたとおり、本実施例によれば、スクリーンドットをオブジェクトの内側に移動させることで、スクリーンドットの連続性をエッジ部付近まで保ちながら、エッジ部のジャギーを改善することができる。また、位相ずれスクリーン処理を行なわないのでそのための回路を保持する必要がなく、実施例１に比べて低コストで実現することができる。
【０２１３】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006648933.tif 000002
【図２】
0006648933.tif 000003
【図３】
0006648933.tif 000004
【図４】
0006648933.tif 000005
【図５】
0006648933.tif 000006
【図６】
0006648933.tif 000007
【図７】
0006648933.tif 000008
【図８】
0006648933.tif 000009
【図９】
0006648933.tif 000010
【図１０】
0006648933.tif 000011
【図１１】
0006648933.tif 000012
【図１２】
0006648933.tif 000013
【図１３】
0006648933.tif 000014
【図１４】
0006648933.tif 000015
【図１５】
0006648933.tif 000016
【図１６】
0006648933.tif 000017
【図１７】
0006648933.tif 000018
【図１８】
0006648933.tif 000019
【図１９】
0006648933.tif 000020
【図２０】
0006648933.tif 000021
【図２１】
0006648933.tif 000022
【図２２】
0006648933.tif 000023
【図２３】
0006648933.tif 000024
【図２４】
0006648933.tif 000025
【図２５】
0006648933.tif 000026