(57)【要約】【課題】１つの画素が太らせ処理とスムージング処理の両方の対象となっている場合に、常にスムージング処理部の処理結果を選択することとすると、当該画素と隣接画素との間に急激な信号値の変化が生じてしまい、なめらかなエッジ表現を損なう。【解決手段】処理対象の画素がエッジ部に含まれる場合に、当該エッジ部にスムージング処理を実行してスムージングデータを出力するスムージング手段と、処理対象の画素が細線に含まれる場合に、当該細線の線幅を補正する線幅補正処理を実行して細線補正データを出力する線幅補正手段とをゆうする。処理対象の画素が前記スムージング処理及び前記線幅補正処理の対象である場合、線幅補正手段による前記線幅補正処理における線幅の調整量を設定する設定手段により設定された調整量に応じて、スムージングデータ或いは前記細線補正データのいずれかを選択して出力する。【選択図】  図１５
2020136775.tif 000002
【特許請求の範囲】
【請求項１】
処理対象の画素がエッジ部に含まれる場合に、当該エッジ部にスムージング処理を実行してスムージングデータを出力するスムージング手段と、
処理対象の画素が細線に含まれる場合に、当該細線の線幅を補正する線幅補正処理を実行して細線補正データを出力する線幅補正手段と、
前記線幅補正手段による前記線幅補正処理における線幅の調整量を設定する設定手段と、
処理対象の画素が前記スムージング処理及び前記線幅補正処理の対象である場合、前記設定手段により設定される前記調整量に応じて、前記スムージングデータ或いは前記細線補正データのいずれかを選択して出力する選択手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記選択手段は、前記調整量が所定値に等しいか、或いはそれよりも大きい場合は、前記細線補正データを選択し、前記調整量が前記所定値よりも小さい場合は、前記スムージングデータを選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記スムージング手段は、前記処理対象の画素を含むｎ×ｎ画素の二値化パターンとエッジパターンとを比較し、一致するエッジパターンと、前記ｎ×ｎ画素の画素の平均値及び当該平均値を変調する一次元のルックアップテーブルを使用して、前記スムージングデータを求めることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記使用される一次元のルックアップテーブルは、前記一致するエッジパターンに応じて、そのデータ特性が異なることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記線幅補正手段は、前記処理対象の画素を含むｍ×ｍ画素の二値化パターンと細線パターンとを比較し、一致する細線パターンと前記調整量とに応じて一次元のルックアップテーブルを切り替え、当該一次元のルックアップテーブルを使用して前記処理対象の画素の画素値、或いは前記処理対象の画素に隣接する画素の画素値を変調して前記細線補正データを求めることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記ｍ×ｍ画素の数は、前記ｎ×ｎ画素の数よりも多いことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記選択手段は、前記処理対象の画素が前記スムージング処理のみの対象である場合は、前記スムージングデータを選択して出力することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記選択手段は、前記処理対象の画素が前記スムージング処理の対象でなくて前記線幅補正処理の対象である場合は、前記細線補正データを選択して出力することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項９】
画像処理装置を制御する制御方法であって、
処理対象の画素がエッジ部に含まれる場合に、当該エッジ部にスムージング処理を実行してスムージングデータを出力するスムージング工程と、
処理対象の画素が細線に含まれる場合に、当該細線の線幅を補正する線幅補正処理を実行して細線補正データを出力する線幅補正工程と、
前記線幅補正工程による前記線幅補正処理における線幅の調整量を設定する設定工程と、
処理対象の画素が前記スムージング処理及び前記線幅補正処理の対象である場合、前記設定工程で設定される前記調整量に応じて、前記スムージングデータ或いは前記細線補正データのいずれかを選択して出力する選択工程と、
を有することを特徴とする制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置とその制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
画像処理の一つに、エッジ画素を対象としたスムージング処理がある。このスムージング処理では、パターンマッチングによるエッジ検出を行い、一致した箇所に、パターンに対応する画素の付加、又は画素の除去を行う（例えば、特許文献１参照）。これは、パターンマッチングによってジャギーが発生するエッジ部分を検出し、二値のプリンタであれば１画素を複数の画素に分割したデータを付加或いは除去するものである。また多値のプリンタであれば中間レベルのドットを付加或いは除去することで、エッジ部のスムージング処理を実現するものである。
【０００３】
また一方で、エッジ画素を対象とした細線の線幅を補正する線幅補正処理がある。この線幅補正処理は、パターンマッチングによって細線を検出し、細線画素や細線画素に隣接した画素に画素を付加、又は画素の除去を行うものである（例えば、特許文献２参照）。
【０００４】
また特許文献３には、スムージング処理部、太らせ処理部、及び、それらの処理部によって処理した後の画素値のうち、適用する画素値を選択するセレクタを有する画像処理装置が記載されている。この特許文献３では、セレクタは、各処理部に優先順位をつけて処理結果の選択を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−４２１６１号公報
【特許文献２】特開２０１６−１６７７７７号公報
【特許文献３】特開２０１４−８７０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献３の構成において、１つの画素が太らせ処理とスムージング処理の両方の対象となっている場合に、常にスムージング処理部の処理結果を選択することとすると、以下の課題が生じる。即ち、当該画素と隣接画素との間に急激な信号値の変化が生じてしまい、なめらかなエッジ表現を損なうこととなる。このような課題が発生する場合の例について、図１７及び図１８を参照して説明する。
【０００７】
図１７（Ａ）に示す画像に対して、太らせ処理、及び、スムージング処理を適用する例について説明する。
【０００８】
図１７（Ｂ）は、図１７（Ａ）の行Ｌについて、補正を行う前の画素（ｎ−４）〜（ｎ＋１）の画素値（０〜２５５）を示す図である。図１７（Ｃ）は、図１７（Ａ）に示す画像に対してスムージング処理を行った場合の画素（ｎ−４）〜（ｎ＋１）の画素値を示す図である。図１７（Ｃ）では例えば、画素（ｎ−１）の画素値を「０」から「８５」に補正し、画素ｎの画素値を「２５５」から「１７０」に補正することで、画素（ｎ−２）から画素（ｎ＋１）までの濃度が階段状に増えることとなり、画素（ｎ−１）から画素ｎの間の段差を目立たなくしている。
【０００９】
図１８（Ａ）は、図１７（Ａ）に示す画像に対して太らせ処理を行った場合の画素（ｎ−４）〜（ｎ＋１）の画素値を示す図である。例えば、画素（ｎ−４）から画素（ｎ−１）までのそれぞれの画素値を「０」から「１８０」に補正することで、列（Ｌ−１）の線を太らせることができる。図１８（Ｂ）は、図１７（Ａ）に示す画像に対して、太らせ処理、及び、スムージング処理を行った場合の画素（ｎ−４）〜（ｎ＋１）の画素値を示す図である。図１８（Ｂ）は、１つの画素が太らせ処理とスムージング処理の両方の対象となっている場合に、常にスムージング処理部の処理結果を選択するというルールで補正を行った場合の例を示す。図１８（Ｂ）において、網掛け部分は太らせ処理が適用された画素の画素値を示し、斜線部分はスムージング処理が適用された画素の画素値を示す。
【００１０】
図１７（Ｃ）及び図１８（Ａ）に示される通り、画素（ｎ−１）は、太らせ処理とスムージング処理の両方の処理の対象となる。図１８（Ｂ）は、画素（ｎ−１）についてスムージング処理を適用し、太らせ処理を適用しない場合の補正結果を示す。図１８（Ｂ）における太線は、補正後に出力される画素値を示す。図１８（Ｂ）に示す通り、画素（ｎ−２）と画素（ｎ−１）との間で急激に出力画素値が低下する。また、画素（ｎ−１）と画素ｎの間で急激に出力画素値が増加する。その結果、図１８（Ｃ）に示すような補正結果となり、画素（ｎ−２）から画素ｎについて滑らかな濃度表現が失われることとなる。
【００１１】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【００１２】
本発明の特徴は、スムージング処理及び線幅補正処理を行う場合に、滑らかなエッジ表現を実現できる技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
処理対象の画素がエッジ部に含まれる場合に、当該エッジ部にスムージング処理を実行してスムージングデータを出力するスムージング手段と、
処理対象の画素が細線に含まれる場合に、当該細線の線幅を補正する線幅補正処理を実行して細線補正データを出力する線幅補正手段と、
前記線幅補正手段による前記線幅補正処理における線幅の調整量を設定する設定手段と、
処理対象の画素が前記スムージング処理及び前記線幅補正処理の対象である場合、前記設定手段により設定される前記調整量に応じて、前記スムージングデータ或いは前記細線補正データのいずれかを選択して出力する選択手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、スムージング処理及び線幅補正処理を適用する場合に、滑らかなエッジ表現を実現することができる。
【００１５】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１６】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】実施形態に係る画像形成システムの構成を示す概略図。
【図２】実施形態に係る画像処理部の機能構成を説明するブロック図。
【図３】実施形態に係るＵＩ部で表示される線幅調整値の設定画面例を示す図。
【図４】実施形態に係る画像補正管理テーブルに保存されるデータ（調整レベル情報）の一例を示す図。
【図５】実施形態に係る画像補正処理部の機能を説明するブロック図。
【図６】実施形態に係る画像補正処理部のウィンドウ生成部で生成される７×７画素のウィンドウの一例を示す図。
【図７】実施形態に係るスムージング処理部の機能構成を説明するブロック図。
【図８】実施形態に係るスムージング処理部によるスムージング処理を説明するフローチャート。
【図９】実施形態におけるエッジパターンの一例を示す図。
【図１０】実施形態におけるスムージング処理で用いるルックアップテーブルの一例を示す図。
【図１１】実施形態に係る細線補正処理部の機能構成を説明するブロック図。
【図１２】実施形態に係る細線補正処理部による細線補正処理を説明するフローチャート。
【図１３】実施形態における細線パターンの一例を示す図。
【図１４】実施形態における細線補正処理で用いるルックアップテーブルの特性例を示す図。
【図１５】実施形態に係る画像合成処理の処理を説明するフローチャート。
【図１６】実施形態における処理結果を説明するための図。
【図１７】従来技術において、エッジ部に太らせ処理及びスムージング処理を適用した場合の例を示す図。
【図１８】従来技術において、エッジ部に太らせ処理及びスムージング処理を適用した場合の例を示す図。
【図１９】実施形態において、エッジ部に太らせ処理及びスムージング処理を適用した場合の例を示す図。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１８】
本発明に係る画像処理装置の実施形態として、スムージング処理と細線補正処理を実行する画像形成装置を例に挙げて以下に説明する。特に、入力された画像にスムージング処理と細線補正処理の両方を同時に適用した場合について説明する。
【００１９】
図１は、実施形態に係る画像形成システムの構成を示す概略図である。
【００２０】
この画像形成システムは、ホストコンピュータ１００と画像形成装置１１０を有している。この画像形成装置１１０は、本発明の画像処理装置の一例であり、コントローラ１２０、印刷エンジン１２２、ＵＩ部１２１を備える。ホストコンピュータ１００は、一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）などのコンピュータである。このホストコンピュータ１００上の不図示のプリンタドライバ等のソフトウェアアプリケーションで作成された画像データや文書データは、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データとしてネットワーク（例えばＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して画像形成装置１１０に送信される。
【００２１】
コントローラ１２０は、印刷エンジン１２２に接続され、ホストコンピュータ１００からＰＤＬデータを受け取り、印刷エンジン１２２で処理可能な印刷データに変換し、その印刷データを印刷エンジン１２２に出力する。印刷エンジン１２２は、コントローラ１２０より出力された印刷データに基づいて画像の印刷を行う。尚、実施形態に係る印刷エンジン１２２は、電子写真方式の印刷エンジンとする。ＵＩ部１２１は、ユーザにより操作され、種々の機能を選択したり、操作指示を行うために使用される。このＵＩ部１２１は、表面にタッチパネルが設けられたディスプレイや、スタートキーやストップキー、テンキー等の各種キー等を配置したキーボード等を備えている。
【００２２】
次に、コントローラ１２０の構成について説明する。コントローラ１２０は、ホストＩ／Ｆ（インターフェース）部１０１、ＣＰＵ１０２、ＲＡＭ１０３、ＲＯＭ１０４、画像処理部１０５、エンジンＩ／Ｆ部１０６、内部バス１０７を有する。ホストＩ／Ｆ部１０１は、ホストコンピュータ１００から送信されたＰＤＬデータを受け取るためのインターフェースである。ＣＰＵ１０２は、ＲＡＭ１０３やＲＯＭ１０４に格納されているプログラムやデータを用いて画像形成装置１１０全体の制御を行うと共に、コントローラ１２０が行う後述の処理を実行する。ＲＡＭ１０３は、ＣＰＵ１０２が各種の処理を実行する際に用いるワークエリアを提供する。ＲＯＭ１０４は、後述の各種処理をＣＰＵ１０２に実行させるためのプログラムやデータ、また、コントローラ１２０の設定データ等を格納している。
【００２３】
画像処理部１０５は、ＣＰＵ１０２からの設定に応じて、ホストＩ／Ｆ部１０１が受け取ったＰＤＬデータに対してプリント用の画像処理を行い、印刷エンジン１２２で処理可能な印刷データを生成する。画像処理部１０５は特に、受け取ったＰＤＬデータに対してラスタライズを行うことで、１画素あたり複数の色成分を持つ画像データを生成する。複数の色成分とは、ＲＧＢ（赤、緑、青）などの色空間において独立した色成分のことである。画像データは、画素毎に１つの色成分につき８ビット（２５６階調）の値を持つ。即ち、画像データは多値の画素を含む多値のビットマップデータである。画像処理部１０５は、生成された画像データを用いて、ＲＧＢ色空間からＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）色空間への色変換やスクリーン処理などの画像処理を施すことで印刷データを生成する。画像処理部１０５の詳細については後述する。エンジンＩ／Ｆ部１０６は、画像処理部１０５によって生成された印刷データを、印刷エンジン１２２に送信するインターフェースである。内部バス１０７は、上述の各部を接続するシステムバスである。
【００２４】
次に画像処理部１０５の詳細について説明する。尚、上述したように画像処理部１０５は、ホストＩ／Ｆ部１０１で受け取ったＰＤＬデータに対してラスタライズ処理を行うことで、ＲＧＢの多値の画像データを生成する。
【００２５】
図２は、実施形態に係る画像処理部１０５の機能構成を説明するブロック図である。ここでは、生成された多値の画像データに対して行われるプリント用の画像処理の機能を説明する図である。
【００２６】
ここで画像処理部１０５は、色変換処理部２０１、ガンマ補正処理部２０２、スクリーン処理部２０３、画像補正処理部２０４、画像選択部２０５を有する。色変換処理部２０１は、多値の画像データに対してＲＧＢ色空間からＣＭＹＫ色空間への色変換処理を行う。この色変換処理によって１画素あたり８ビット（２５６階調）の多値の濃度値（階調値、信号値とも呼ぶ）を持つＣＭＹＫ画像データが生成される。ガンマ補正処理部２０２は、後述するスクリーン処理部２０３でスクリーン処理された画像データが記録紙に転写された際の濃度特性が所望の特性となるよう、一次元のルックアップテーブルを用いて、入力された画素データを補正する。実施形態では、例としてリニアな形状をした一次元のルックアップテーブルを用いる。このルックアップテーブルは入力がそのまま出力されるようなルックアップテーブルである。但し、印刷エンジン１２２の状態の変化に応じて、ＣＰＵ１０２は、この一次元のルックアップテーブルを書き換えても良い。ガンマ補正後の画素データは、スクリーン処理部２０３に入力される。
【００２７】
スクリーン処理部２０３は、ガンマ補正処理部２０２から受け取った多値（例えば、８ビット）のＣＭＹＫイメージデータを印刷エンジン１２２の色材の潜像画像である多値（例えば、４ビット）のＣＭＹＫイメージに変換して画像選択部２０５に出力する。画像補正処理部２０４は、色変換処理部２０１からＣＭＹＫイメージデータを受け取り、スムージング処理と細線補正処理を適用して補正データを生成する。その後、生成した補正データと補正フラグを画像選択部２０５に出力する。画像補正処理部２０４の処理の詳細については図５を参照して後述する。
【００２８】
画像選択部２０５は、画像補正処理部２０４から受け取った補正フラグに基づいて、スクリーン処理部２０３から受け取ったスクリーンデータと画像補正処理部２０４から受け取った補正データの何れかを選択して出力する。ここでは補正フラグが「１」の場合は、補正対象の画素であると判定して補正データを出力する。補正フラグが「０」の場合は、補正対象の画素でないと判定してスクリーンデータを出力する。その後、画像合成処理後の画像をエンジンI／F部１０６に出力する。
【００２９】
ＵＩ部１２１は、タッチスクリーンのユーザインターフェースであって、画像補正処理部２０４における処理の設定の指示をユーザから受け付ける。例えば、ＵＩ部１２１は、図３に示されるような設定画面を表示し、画像補正処理部２０４による画像補正処理の設定をユーザーから受け付ける。
【００３０】
図３は、実施形態に係るＵＩ部１２１で表示される線幅調整値の設定画面例を示す図である。ここでは、補正に必要な情報の設定方法について説明する。
【００３１】
この画面を介して、ユーザは線幅の調整レベルを設定できる。例えば、図３の線幅調整設定３００にあるように、調整量として「なし」、「レベル１」、「レベル２」のボタンが用意されている。図３では、「レベル１」が選択されている。
【００３２】
図５は、実施形態に係る画像補正処理部２０４の機能を説明するブロック図である。
【００３３】
画像補正処理部２０４は、ウィンドウ生成部５０１、スムージング処理部５０２、細線補正処理部５０３、画像合成部５０４を有する。
【００３４】
ＵＩ部１２１は、図３の画面を介して設定された設定情報を、画像補正管理テーブルとして細線補正処理部５０３と画像合成部５０４に通知する。
【００３５】
図４は、実施形態に係る画像補正管理テーブルに保存されるデータ（調整レベル情報）の一例を示す図である。この画像補正管理テーブルは、ＲＡＭ１０３に保存される。
【００３６】
画像補正管理テーブルは、線幅の調整レベル情報を保持する。調整レベルは、しない（０）、レベル１（１）、レベル２（２）の値を取り得る。レベル２は、レベル１に比べて線幅が太くなるように制御される。ここでは図３に示す線幅の調整量の設定に応じてレベル１（１）が保存されている。
【００３７】
次に、画像補正管理テーブルの具体的な生成方法について説明する。
【００３８】
図３の設定画面で、「なし」が設定されると細線補正処理が実施されない。ＵＩ部１２１は、画像管理テーブルの調整レベル情報に「しない（０）」を設定する。また設定画面で「レベル１」が設定されると、細線補正処理を実施する。ＵＩ部１２１は、画像管理テーブルの調整レベル情報に「レベル１（１）」を設定する。更に、設定画面で「レベル２」が設定されると、細線補正処理を実施する。ＵＩ部１２１は、画像管理テーブルの調整レベル情報に「レベル２（２）」を設定する。ここでレベル２では、上述したように、レベル１に比べて線幅が太くなるように調整される。
【００３９】
次に、画像補正処理部２０４の構成を図５を参照して詳しく説明する。
【００４０】
画像補正処理部２０４では、スムージング処理と細線補正処理を適用して補正データを出力する。また、補正対象画素には、補正フラグに「１」を代入して出力し、補正対象画素でない場合は「０」を代入して出力する。
【００４１】
図６は、画像補正処理部２０４のウィンドウ生成部５０１で生成されるｍ×ｍ画素（ここでは７×７画素）のウィンドウの一例を示す図である。ここで注目画素は、画素[３３]である。
【００４２】
まずＣＭＹＫ色空間に変換された画像データは、ウィンドウ生成部５０１内部のＦＩＦＯメモリ（不図示）に蓄えられる。ＦＩＦＯメモリは画像データを６ライン遅延させ、中央を注目画素とする幅７画素、高さ７画素から成るウィンドウを形成する。スムージング処理は、ｎ×ｎ画素（ここでは３×３画素）のエッジパターンとのパターンマッチングを行うので、７×７画素の内、注目画素の画素[３３]を含む、画素[３３]に隣接する３×３画素をスムージング処理部５０２へ出力する。一方、細線補正処理では、７×７画素の細線パターンとのパターンマッチングを行うので、７×７画素を細線補正処理部５０３へ出力する。
【００４３】
スムージング処理部５０２は、注目画素の画素[３３]を含む３×３画素から３×３画素の判定画像を生成し、注目画素に対してエッジパターンの判定処理を行う。ここでは予め用意したエッジパターンと３×３画素の判定画像とを比較し、注目画素がスムージング対象画素であると判定した場合は、注目画素のスムージングフラグに「１」を代入して出力する。またスムージング対象画素であると判定した場合は、注目画素のスムージングデータを算出して出力する。スムージング処理の詳細は後述する。
【００４４】
細線補正処理部５０３は、注目画素[３３]を含む７×７画素から７×７画素の判定画像を生成し、細線パターンの判定処理を行う。ここでは予め用意した細線パターンと７×７画素の判定画像とを比較し、細線補正の対象画素であると判定した場合は、注目画素の細線補正フラグに所望の値を代入して出力する。また細線補正の対象画素であると判定した場合は、注目画素の細線補正データを算出して出力する。細線補正処理部５０３は、画像補正管理テーブルに基づいて細線補正データを算出する。この細線補正処理の詳細については、後述する。
【００４５】
画像合成部５０４は、スムージング処理部５０２からスムージングデータとスムージングフラグとを受け取り、また細線補正処理部５０３から細線補正データと細線補正フラグとを受け取って画像の合成処理を行う。そして、スムージングフラグと細線補正フラグに基づいて補正フラグを生成して出力する。更に、スムージングデータ、スムージングフラグ、細線補正データと細線補正フラグに基づいて補正データを算出して出力する。画像合成部５０４で実施される画像合成処理の詳細については後述する。その後、こうして画像補正処理部２０４は、画像選択部２０５に補正データと補正フラグとを出力する。
【００４６】
次に、実施形態に係るスムージング処理部５０２で行われるスムージング処理について説明する。
【００４７】
図７は、実施形態に係るスムージング処理部５０２の機能構成を説明するブロック図である。
【００４８】
二値化処理部７０１は、それそれが８ビットの３×３画素の画像データを受け取り、各画素値と予め定められた閾値とを比較して判定画像を生成し、パターンマッチング部７０２に出力する。この判定画像は、パターンマッチング部７０２でパターンマッチングを行うために生成される。パターンマッチング部７０２は、判定画像とエッジパターンとを比較し、一致する場合には、パターンデータに一致するパターン番号を代入して、パターンデータとして出力する。平均値算出部７０３は、スムージング処理を行うために、注目画素を中心とする３×３画素を受け取り、３×３画素の画素の平均値を算出して出力する。補正値決定部７０４は、パターンマッチング部７０２から入力したパターンデータと、平均値算出部７０３から入力した平均値とに基づいて、スムージングデータとスムージングフラグを算出して出力する。
【００４９】
次にスムージング処理部５０２の詳細な動作を図８のフローチャートを参照して説明する。
【００５０】
図８は、実施形態に係るスムージング処理部５０２による処理を説明するフローチャートである。ここで図８のフローチャートを説明する際に参照する図９、図１０及び図１６について簡単に説明する。
【００５１】
図９は、実施形態におけるエッジパターンの一例を示す図である。
【００５２】
図１０は、実施形態におけるスムージング処理で用いるルックアップテーブルのデータ特性例を示す図である。図１０（Ａ）は、図９のパターン番号１又は３と一致する場合に用いるルックアップテーブルＳＭＬＵＴ１のデータの一例を示し、図１０（Ｂ）は、図９のパターン番号２又は４と一致する場合に用いるルックアップテーブルＳＭＬＵＴ２のデータの一例を示す図である。
【００５３】
図１６は、実施形態における処理結果を説明するための図である。図１６（Ａ）は、画像補正処理部２０４の入力画像の一例を示す。図１６（Ｂ）は、スクリーン処理部２０３の出力結果の一例を示す。図１６（Ｃ）は、二値化処理部７０１の処理結果の一例を示し、図１６（Ｄ）は、スムージング処理部５０２から出力されるスムージングフラグの一例を示す。図１６（Ｅ）は、スムージング処理部５０２から出力されるスムージングデータの一例を示す。図１６（Ｆ）は、細線二値化処理部１１０１の処理結果の一例を示し、図１６（Ｇ）は、細線補正処理部５０３から出力される細線補正フラグの一例を示す。図１６（Ｈ）は、細線補正処理部５０３から出力される細線補正データの一例を示し、図１６（Ｉ）は、画像合成部５０４から出力される補正フラグの一例を示す。図１６（Ｊ）は、本実施形態ではなく、従来の手法のように検出された構造によってスムージング処理と細線補正処理を切り替えた場合の補正データの一例を示す。そして図１６（Ｋ）は、実施形態に係る画像合成部５０４から出力される補正データの一例を示す。
【００５４】
次にスムージング処理部５０２の詳細な動作を図８のフローチャートを参照して説明する。尚、この処理は、ＣＰＵ１０２がＲＯＭ１０４からＲＡＭ１０３に展開したプログラムを実行することにより達成されてもよいが、ここでは図７に示す各部が主体となって実行するものとして説明する。
【００５５】
まずＳ８０１でパターンマッチング部７０２は、パターンデータに「０」を代入することでパターンデータの初期化を行う。次にＳ８０２に進み二値化処理部７０１は、ウィンドウ生成部５０１から画像データを受け取り、３×３画素から判定画像を生成する。二値化処理部７０１は、予め定められた閾値（実施形態では「１２７」）と３×３画素の各画素値とを比較し、閾値よりも画素値が大きい場合は「１」を出力し、それ以外の場合は「０」を出力する。そして判定画像をパターンマッチング部７０２に出力する。例えば、図１６（Ａ）の３×３画素１６０２が二値化処理部７０１に入力された場合、画素値が「０」の画素は閾値「１２７」よりも小さいので「０」が出力され、画素値が「２５５」の画素は「１」が出力される。その結果、判定画像として、図１６（Ｃ）の３×３画素１６０３が得られる。
【００５６】
そしてＳ８０３〜Ｓ８０６において、パターンマッチング部７０２は、二値化処理部７０１から受け取った判定画像とエッジパターンとを比較し、一致するパターンがあれば、パターンデータを出力する。Ｓ８０３でパターンマッチング部７０２は、二値化処理部７０１から受け取った判定画像（３×３画素）とエッジパターン（３×３画素）の同じ位置の画素（合計９画素）とを比較し、一致するか判定する。ここで９画素全てが一致する場合は一致すると判定してＳ８０４へ移行し、一つでも一致しない画素がある場合はＳ８０５へ移行する。
【００５７】
例えば、図１６（Ｃ）の３×３画素１６０３が判定画像であった場合、まず、図９のパターン番号１のＡと一致するかを判定する。この例では、３×３画素１６０３は、パターン番号１のＡと一致しない画素があるためＳ８０５へ移行する。Ｓ８０４でパターンマッチング部７０２は、判定画像とエッジパターンの全ての画素が一致したと判定し、パターンデータに一致したパターン番号を代入することでパターンデータを更新する。例えば、図１６（Ｃ）の３×３画素１６０３が判定画像であった場合、図９のパターン番号２のＡと一致するので、Ｓ８０４では、パターンデータにパターン番号の「２」を代入してパターンデータを更新する。従って、３×３画素１６０３の注目画素のパターンデータは「２」となる。
【００５８】
Ｓ８０５でパターンマッチング部７０２は、全てのエッジパターンと比較を行ったか判定する。全てのエッジパターンと比較を行った場合はＳ８０７へ移行する。全てのエッジパターンと比較していないと判定した場合はＳ８０６へ移行する。Ｓ８０６でパターンマッチング部７０２は、比較の対象とするエッジパターンを次のパターンに移し、Ｓ８０３〜Ｓ８０５を実行する。こうしてパターンマッチング部７０２は、図９のパターン番号１のＡから、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈの順にパターンマッチングを実施する。パターン番号１のＨの次は、パターン番号２のＡのパターンマッチングを実施する。そして、パターン番号２のＢ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈの順にパターンマッチングを実施し、パターン番号４のＦまでパターンマッチングを実施する。パターン番号４のＦのパターンマッチングが終わるとＳ８０５において、パターンマッチング部７０２は、全てのパターンでパターンマッチングを行ったと判定してＳ８０７へ移行する。
【００５９】
Ｓ８０７で平均値算出部７０３は、入力された３×３画素の平均値を算出する。平均値算出部７０３は、入力された参照領域内における注目画素を中心とした幅３画素、高さ３画素の９画素から８ビットの平均値ＡＶＥを求める。但し、実施形態では除算を省くために、下記の式（１）の結果を用いて平均値とする。
【００６０】
ＡＶＥ＝（ＳＵＭ＞＞３）
つまり、上述の９画素の画素値の合計ＳＵＭを３ビットだけ右シフトさせる（８で割る）ことで、除算を省きながら８ビットの平均値ＡＶＥを求める。尚、例えば９画素の画素値の合計ＳＵＭを９で除算して平均値を求めても良いことは言うまでもない。例えば、図１６（Ａ）の３×３画素１６０２が入力された場合、
ＡＶＥ＝（０＋０＋０＋０＋０＋２５５＋２５５＋２５５）＞＞３＝（１０２０）＞＞３＝１２７となる。
【００６１】
次にＳ８０８〜Ｓ８１１で補正値決定部７０４は、パターンマッチング部７０２からパターンデータ、平均値算出部７０３から平均値ＡＶＥを受け取る。そして、一次元のルックアップテーブルＳＭＬＵＴを参照してスムージングデータを算出し、スムージングデータとスムージングフラグとを出力する。ここで、ＳＭＬＵＴは、８ビット入力４ビット出力のルックアップテーブルであり、印刷エンジン１２２の特性に応じて非線形な特性に設定される。実施形態では、図１０に示すように複数のＳＭＬＵＴを保持し、エッジパターンに応じて、対応するＳＭＬＵＴを切り替える。
【００６２】
図１０（Ａ）のルックアップテーブルＳＭＬＵＴ１は、図９のパターン番号１と３用のルックアップテーブルである。図１０（Ｂ）のルックアップテーブルＳＭＬＵＴ２は、パターン番号２と４用のルックアップテーブルである。
【００６３】
Ｓ８０８で補正値決定部７０４は、パターンデータの判定を行う。パターンデータが「０」の場合は、判定画像と一致するエッジパターンが存在しなかったと判定してＳ８０９へ移行する。パターンデータが「１」又は「３」の場合はＳ８１０へ移行する。パターンデータが「２」又は「４」の場合はＳ８１１へ移行する。Ｓ８０９で補正値決定部７０４は、判定画像と一致するエッジパターンが存在しなかったと判定し、スムージングフラグＳＭ＿ＦＬＡＧに「０」を代入する。そして、注目画素の上位４ビットをスムージングデータＳＭ＿ＤＡＴＡとして出力して、処理を終了する。例えば、注目画素の画素値が「２５５」（８ビット）の場合は、上位４ビットの「１５」がスムージングデータＳＭ＿ＤＡＴＡとして出力される。
【００６４】
パターンデータが「１」又は「３」の場合はＳ８１０で補正値決定部７０４は、注目画素が黒のパターンと一致したと判定し、注目画素が黒の場合に参照する一次元のルックアップテーブルＳＭＬＵＴ１（図１０（Ａ））を参照してＳＭ＿ＤＡＴＡを算出する。補正値決定部７０４は、平均値ＡＶＥを一次元のルックアップテーブルＳＭＬＵＴ１で変調し、変調した値をスムージングデータＳＭ＿ＤＡＴＡとして出力する。補正値決定部７０４は、スムージングフラグＳＭ＿ＦＬＡＧに「１」を代入し、処理を終了する。
【００６５】
パターンデータが「２」又は「４」の場合はＳ８１１で補正値決定部７０４は、注目画素が白のパターンと一致したと判定し、注目画素が白の場合に参照する一次元のルックアップテーブルＳＭＬＵＴ２（図１０（Ｂ））を参照してＳＭ＿ＤＡＴＡを算出する。補正値決定部７０４は、平均値ＡＶＥを一次元のルックアップテーブルＳＭＬＵＴ２で変調し、変調した値をスムージングデータＳＭ＿ＤＡＴＡとして出力する。補正値決定部７０４は、スムージングフラグＳＭ＿ＦＬＡＧに「１」を代入し、処理を終了する。
【００６６】
例えば、図１６（Ｃ）の３×３画素１６０３が判定画像であった場合、パターンデータは「２」なので、図１６（Ｄ）の１６０４に示すように、スムージングフラグＳＭ＿ＦＬＡＧに「１」を代入して出力する。また平均値は「１２７」なので、図１０（Ｂ）の一次元のルックアップテーブルＳＭＬＵＴ２を参照して補正値「５」を得る。図１６（Ｅ）の画素１６０５に示すように、スムージングデータとして「５」を出力する。
【００６７】
以上説明したように、スムージング処理を適用することで、例えば図１６（Ｅ）に示すように、エッジ画素を滑らかにすることができる。
【００６８】
次に、実施形態に係る細線補正処理部５０３で実行される細線補正処理について詳しく説明する。
【００６９】
図１１は、実施形態に係る細線補正処理部５０３の機能構成を説明するブロック図である。図１３は、実施形態における細線パターンの一例を示す図である。
【００７０】
細線補正処理部５０３は、ＵＩ部１２１から通知された画像補正管理テーブルを細線補正処理部５０３内部のレジスタ（不図示）に保持する。
【００７１】
図１４は、実施形態における細線補正処理で用いるルックアップテーブルのデータ特性例を示す図である。
【００７２】
図１４（Ａ）は、調整レベル情報がレベル１（１）の場合に細線補正処理部５０３が使用するルックアップテーブルＬＮＬＵＴ１の特性例を示す。ＬＮＬＵＴ１は、図１３のパターン番号１又は３と一致する場合に用いられるルックアップテーブルである。
【００７３】
図１４（Ｂ）は、調整レベル情報がレベル１（１）の場合に細線補正処理部５０３が使用するルックアップテーブルＬＮＬＵＴ２の特性例を示す。ＬＮＬＵＴ２は、図１３のパターン番号２又は４と一致する場合に用いられるルックアップテーブルである。
【００７４】
図１４（Ｃ）は、調整レベル情報がレベル１（１）の場合に細線補正処理部５０３が使用するルックアップテーブルＬＮＬＵＴ３の特性例を示す。ＬＮＬＵＴ３は、図１３のパターン番号５又は６と一致する場合に用いられるルックアップテーブルである。
【００７５】
図１４（Ｄ）は、調整レベル情報がレベル２（２）の場合に細線補正処理部５０３が使用するルックアップテーブルＬＮＬＵＴ１の特性例を示す。ＬＮＬＵＴ１は、図１３のパターン番号１又は３と一致する場合に用いられるルックアップテーブルである。
【００７６】
図１４（Ｅ）は、調整レベル情報がレベル２（２）の場合に、細線補正処理部５０３が使用するルックアップテーブルＬＮＬＵＴ２の特性例を示す。ＬＮＬＵＴ２は、図１３のパターン番号２又は４と一致する場合に用いられるルックアップテーブルである。
【００７７】
図１４（Ｆ）は、調整レベル情報がレベル２（２）の場合に、細線補正処理部５０３が使用するルックアップテーブルＬＮＬＵＴ３の特性例を示す。ＬＮＬＵＴ３は、図１３のパターン番号５又は６と一致する場合に用いられるルックアップテーブルである。
【００７８】
次に、細線補正処理部５０３内部の各ブロックの処理の概要を図１１を参照して説明する。
【００７９】
細線二値化処理部１１０１は、各画素が８ビットの７×７画素の画像データを受け取り、各画素値と、予め定められた閾値とを比較して判定画像を生成し、細線パターンマッチング部１１０２に出力する。この判定画像は、細線パターンマッチング部１１０２でパターンマッチングを行うために生成される。細線パターンマッチング部１１０２は、受け取った判定画像と細線パターンとを比較し、一致する場合には、細線パターンデータに一致するパターン番号を代入し、細線パターンデータとして出力する。細線補正値決定部１１０３は、細線パターンマッチング部１１０２から入力された細線パターンデータと、注目画素を中心とする７×７画素の画素値に基づいて、細線補正データと細線補正フラグを算出して出力する。
【００８０】
図１２は、実施形態に係る細線補正処理部５０３による細線補正処理を説明するフローチャートである。尚、この処理は、ＣＰＵ１０２がＲＯＭ１０４からＲＡＭ１０３に展開したプログラムを実行することにより達成されてもよいが、ここでは図１１に示す各部が主体となって実行するものとして説明する。
【００８１】
まずＳ１２０１で細線パターンマッチング部１１０２は、細線パターンデータに「０」を代入することで、細線パターンデータの初期化を行う。次にＳ１２０２に進み細線二値化処理部１１０１は、ウィンドウ生成部５０１から画像データを受け取り、７×７画素から判定画像を生成する。このとき細線二値化処理部１１０１は、予め定められた閾値（実施形態では「１２７」）と７×７画素の各画素値とを比較し、その閾値よりも画素値が大きい場合は「１」を出力し、それ以外の場合は「０」を出力する。こうして得られた判定画像（二値化パターン）を細線パターンマッチング部１１０２に出力する。
【００８２】
例えば、図１６（Ａ）の７×７画素１６０６が細線二値化処理部１１０１に入力された場合、画素値が「０」の画素は閾値「１２７」よりも小さいので「０」が出力され、画素値が「２５５」の画素は「１」が出力される。その結果、判定画像として、図１６（Ｆ）に示すような７×７画素からなる判定画像１６０７が得られる。
【００８３】
そしてＳ１２０３〜Ｓ１２０６において、細線パターンマッチング部１１０２は、細線二値化処理部１１０１から受け取った判定画像と細線パターンとを比較し、一致するパターンがあれば細線パターンデータを出力する。即ち、Ｓ１２０３で細線パターンマッチング部１１０２は、細線二値化処理部１１０１から受け取った判定画像（７×７画素）と細線パターン（７×７画素）の同じ位置の画素（合計４９画素）とを比較する。図１３は、細線パターンの一例であり、詳細に説明を行う。
【００８４】
図１３のパターンにおいて「０」と記された画素は、判定画像の対応する画素の画素値が「０」であるかを判定し、「０」の場合は一致したと判定する。図１３のパターンにおいて「１」と記された画素は、判定画像の対応する画素の画素値が「１」であるかを判定し、「１」の場合は一致したと判定する。図１３のパターンにおいて「２」と記された判定画像の画素において、少なくとも一つ以上の画素の画素値が「１」であるかを判定し、少なくとも一つ以上の画素の画素値が「１」の場合は一致したと判定する。図１３のパターンにおいて「３」と記された画素は、判定画像の画素の画素値に関わらず一致したと判定する。以上の判定方法で一致したと判定した場合はＳ１２０４へ移行し、そうでないときはＳ１２０５へ移行する。
【００８５】
例えば、図１６（Ｆ）の７×７画素からなる判定画像１６０７の場合、まず図１３のパターン番号１のＡと一致するかを判定する。判定画像１６０７は、パターン番号１のＡと一致しないためＳ１２０５へ移行する。Ｓ１２０５で細線パターンマッチング部１１０２は、全ての細線パターンとの比較が終了したか否か判定し、全ての細線パターンと比較を行った場合はＳ１２０７へ進み、そうでないときはＳ１２０６へ移行する。Ｓ１２０６で細線パターンマッチング部１１０２は、比較の対象とする細線パターンを次のパターンに移してＳ１２０３〜Ｓ１２０５を実行する。こうして図１６（Ｆ）の判定画像１６０７と、図１３のパターン番号４のＡと比較を行う場合について説明する。パターン番号４のＡは、図６の画素[３３]と画素[３６]に対応する画素「０」であること、画素[３４]と画素[３５]に対応する画素が「１」であること、画素[２３]、画素[２４]、画素[２５]、画素[２６]、画素[４３]、画素[４４]、画素[４５]、画素[４６]の少なくとも一つに対応する画素が「１」であることが判定条件である。判定画像１６０７の画素[３３]と画素[３６]に対応する画素は「０」である。また判定画像１６０７の画素[３４]と画素[３５]に対応する画素は「１」である。そして判定画像１６０７の画素[２４]、画素[２５]、画素[４３]、画素[４４]、画素[４５]に対応する画素は「１」なので、上記条件を全て満たしている。従って、図１６（Ｆ）の判定画像１６０７の場合、パターン番号４のＡを満たしている。従って、この場合はＳ１２０４に進み、細線パターンマッチング部１１０２は、細線パターンデータにパターン番号の「４」を代入して、細線パターンデータを更新する。従って、判定画像１６０７の注目画素の細線パターンデータは「４」となる。
【００８６】
こうして細線パターンマッチング部１１０２は、図１３のパターン番号１のＡからＢの順にパターンマッチングを実施する。パターン番号１のＢの次は、パターン番号２のＡのパターンマッチングを実施する。そして、パターン番号２のＢ、Ｃ、Ｄの順にパターンマッチングを実施し、パターン番号６のＤまでパターンマッチングを実施する。パターン番号６のＤのパターンマッチングが終わるとＳ１２０５において、細線パターンマッチング部１１０２は、全てのパターンでパターンマッチングを行ったと判定してＳ１２０７へ移行する。
【００８７】
Ｓ１２０７〜Ｓ１２１２で細線補正値決定部１１０３は、細線パターンマッチング部１１０２から細線パターンデータ、ウィンドウ生成部５０１から注目画素を中心とする７×７画素の画素値を受け取る。そして、一次元のルックアップテーブルＬＮＬＵＴを参照して細線補正データを算出し、細線補正データと細線補正フラグを出力する。ここで、ＬＮＬＵＴは、８ビット入力４ビット出力のルックアップテーブルであり、印刷エンジン１２２の特性に応じて非線形な特性に設定される。実施形態では、複数のＬＮＬＵＴを保持し、細線パターンに応じて、対応するＬＮＬＵＴを切り替える。図１４は、実施形態におけるＬＮＬＵＴの一例を示す。
【００８８】
Ｓ１２０７で細線補正値決定部１１０３は、細線パターンデータの判定を行う。細線パターンデータが「０」の場合は、判定画像と一致する細線パターンが存在しなかったと判定してＳ１２０９へ移行する。細線パターンデータが「０」以外の場合はＳ１２０８へ移行する。Ｓ１２０８で細線補正値決定部１１０３は、細線パターンデータの判定を行う。細線パターンデータが「１」又は「３」の場合はＳ１２１０へ移行する。細線パターンデータが「２」又は「４」の場合はＳ１２１１へ移行する。細線パターンデータが「５」又は「６」の場合はＳ１２１２へ移行する。
【００８９】
Ｓ１２０９で細線補正値決定部１１０３は、判定画像と一致する細線パターンが存在しなかったと判定し、細線補正フラグＬＮ＿ＦＬＡＧに「０」を代入する。そして、注目画素の上位４ビットを細線補正データＬＮ＿ＤＡＴＡとして出力して、この処理を終了する。例えば、注目画素の画素値が２５５（８ビット）の場合は、上位４ビットの「１５」が細線補正データＬＮ＿ＤＡＴＡとして出力される。
【００９０】
細線パターンデータが「１」又は「３」の場合はＳ１２１０で細線補正値決定部１１０３は、注目画素が細線画素であると判定し、注目画素が細線画素の場合に参照する一次元のルックアップテーブルＬＮＬＵＴ１を参照し、ＬＮ＿ＤＡＴＡを算出する。細線補正値決定部１１０３は、注目画素の画素値を一次元のルックアップテーブルＬＮＬＵＴ１で変調し、変調した値を細線補正データＬＮ＿ＤＡＴＡとして出力する。そして細線補正値決定部１１０３は、細線補正フラグＬＮ＿ＦＬＡＧに「１」を代入して、この処理を終了する。
【００９１】
細線パターンデータが「２」又は「４」の場合はＳ１２１１で細線補正値決定部１１０３は、注目画素が細線に隣接する画素であると判定し、注目画素が細線に隣接する画素の場合に参照する一次元のルックアップテーブルＬＮＬＵＴ２を参照し、ＬＮ＿ＤＡＴＡを算出する。細線補正値決定部１１０３は、隣接する細線の画素値を一次元のルックアップテーブルＬＮＬＵＴ２で変調し、変調した値を細線補正データＬＮ＿ＤＡＴＡとして出力する。
【００９２】
ここでは例えば、パターン番号２のＡの細線パターンの場合は、画素[３４]の画素値をＬＮＬＵＴ２で変調する。パターン番号２のＢの細線パターンの場合は、画素[４３]の画素値をＬＮＬＵＴ２で変調する。パターン番号２のＣの細線パターンの場合は、画素[３２]の画素値をＬＮＬＵＴ２で変調する。パターン番号２のＤの細線パターンの場合は、画素[２３]の画素値をＬＮＬＵＴ２で変調する。パターン番号４のＡの細線パターンの場合は、画素[３４]の画素値をＬＮＬＵＴ２で変調する。パターン番号４のＢの細線パターンの場合は、画素[４３]の画素値をＬＮＬＵＴ２で変調する。パターン番号４のＣの細線パターンの場合は、画素[３２]の画素値をＬＮＬＵＴ２で変調する。パターン番号４のＤの細線パターンの場合は、画素[２３]の画素値をＬＮＬＵＴ２で変調する。そして細線補正値決定部１１０３は、細線補正フラグＬＮ＿ＦＬＡＧに「２」を代入し、処理を終了する。
【００９３】
ここで、調整レベル情報がレベル２（２）の場合を例に説明する。例えば、図１６（Ｆ）の７×７画素からなる判定画像１６０７であった場合、細線パターンデータは「４」なので、図１６（Ｇ）の画素１６０８に示すように、細線補正フラグＬＮ＿ＦＬＡＧに「２」を代入して出力する。また細線の画素値は「２５５」なので、図１４（Ｅ）の一次元のルックアップテーブルＬＮＬＵＴ２を参照して補正値「１０」を得る。そして図１６（Ｈ）の画素１６０９に示すように、細線補正データとして「１０」を出力する。
【００９４】
細線パターンデータが「５」又は「６」の場合はＳ１２１２で細線補正値決定部１１０３は、注目画素が白細線に隣接する画素であると判定し、注目画素が白細線に隣接する画素の場合に参照する一次元のルックアップテーブルＬＮＬＵＴ３を参照してＬＮ＿ＤＡＴＡを算出する。細線補正値決定部１１０３は、隣接する細線の画素値を一次元のルックアップテーブルＬＮＬＵＴ３で変調し、変調した値を細線補正データＬＮ＿ＤＡＴＡとして出力する。そして細線補正値決定部１１０３は、細線補正フラグＬＮ＿ＦＬＡＧに「３」を代入し、この処理を終了する。
【００９５】
以上説明したように、細線補正処理を適用することで、図１６（Ｈ）に示すように、細線の線幅を制御することができる。
【００９６】
次に、実施形態に係る画像合成部５０４で行われる画像合成処理を説明する。
【００９７】
図１５は、実施形態に係る画像合成処理５０４の処理を説明するフローチャートである。実施形態では、調整レベル情報がレベル２（２）の場合を例に説明を行う。尚、この処理は、ＣＰＵ１０２がＲＯＭ１０４からＲＡＭ１０３に展開したプログラムを実行することにより達成されてもよいが、ここでは画像合成処理５０４が主体となって実行するものとして説明する。
【００９８】
まずＳ１５０１で画像合成部５０４は、注目画素がスムージング処理と細線補正処理の両方の対象であるかどうか判定する。注目画素のＳＭ＿ＦＬＡＧが「１」で、かつＬＮ＿ＦＬＡＧが「０」よりも大きい場合は、注目画素がスムージング処理と細線補正処理の両方の対象の画素であると判定してＳ１５０２へ移行する。Ｓ１５０２で画像合成部５０４は、画像合成部５０４内部のレジスタに保持されている画像補正管理テーブルに登録されている調整レベルを判定する。ここで調整レベル情報がレベル１（１）の場合は、細線補正処理による影響が小さいと判定してＳ１５０４へ移行する。調整レベル情報がレベル２（２）の場合は、細線補正処理による影響が大きいと判定してＳ１５０５へ移行する。
【００９９】
Ｓ１５０４で画像合成部５０４は、スムージング処理部５０２から受け取ったスムージングデータＳＭ＿ＤＡＴＡを補正データとして出力する。また補正フラグに「１」を代入して出力して、この処理を終了する。
【０１００】
一方、Ｓ１５０５で画像合成部５０４は、細線補正処理部５０３から出力される細線補正データＬＮ＿ＤＡＴＡを補正データとして出力する。また補正フラグに「１」を代入して出力して、この処理を終了する。
【０１０１】
一方、Ｓ１５０１で注目画素がスムージング処理と細線補正処理の両方の対象の画素でないと判定したときはＳ１５０３に進み画像合成部５０４は、注目画素がスムージング処理の対象画素であるかを否か判定する。ここでスムージングフラグＳＭ＿ＦＬＡＧが「１」の場合は、スムージング処理の対象画素であると判定してＳ１５０７へ移行する。一方、ＳＭ＿ＦＬＡＧが「０」の場合は、スムージング処理の対象画素でないと判定してＳ１５０６へ移行する。Ｓ１５０７で画像合成部５０４は、注目画素がスムージング処理の対象画素であると判定し、スムージングデータＳＭ＿ＤＡＴＡを補正データとして出力する。また補正フラグに「１」を代入して出力して、この処理を終了する。
【０１０２】
Ｓ１５０６で画像合成部５０４は、注目画素が細線補正処理の対象画素であるかを判定する。ここで細線補正フラグＬＮ＿ＦＬＡＧが「０」より大きい場合は、細線補正処理の対象画素であると判定してＳ１５０８へ移行する。一方、ＬＮ＿ＦＬＡＧが「０」の場合はＳ１５０９へ移行する。
【０１０３】
Ｓ１５０８で画像合成部５０４は、注目画素が細線補正処理の対象画素であると判定し、細線補正データＬＮ＿ＤＡＴＡを補正データとして出力する。また補正フラグに「１」を代入して出力して、この処理を終了する。一方、Ｓ１５０９で画像合成部５０４は、注目画素が細線補正処理の対象画素であると判定し、細線補正データＬＮ＿ＤＡＴＡを補正データとして出力する。また補正フラグに「０」を代入して出力して、この処理を終了する。
【０１０４】
次に注目画素を、図１６（Ａ）の画素１６０１とした場合の図１５の処理の具体例を説明する。
【０１０５】
Ｓ１５０１で画像合成部５０４は、スムージングフラグの画素１６０４が「１」で、かつ細線補正フラグの画素１６０８が「０」より大きいので、注目画素は、両方の処理対象画素であると判定されてＳ１５０２へ移行する。Ｓ１５０２で画像合成部５０４は、画像合成部５０４内部のレジスタに保持されている調整レベル情報を参照する。実施形態では、調整レベル情報はレベル２（２）であるためＳ１５０５へ移行する。Ｓ１５０５で画像合成部５０４は、補正データとして、細線補正データＬＮ＿ＤＡＴＡの「１０」（図１６（Ｈ）の画素１６０９）を出力する。従って、補正データの画素１６１３（図１６（Ｋ））は「１０」となる。そして画像合成部５０４は、図１６（Ｉ）に示すように、補正フラグの画素１６１６に「１」を代入して出力する。
【０１０６】
従来手法のように、細線補正処理よりもスムージング処理を優先的に実施した場合について説明する。いま注目画素が、図１６の画素１６０１の場合は、スムージングフラグの図１６（Ｄ）の画素１６０４が「１」なので、補正データは、図１６（Ｅ）の画素１６０５のスムージングデータが出力される。従って、スムージングデータの画素１６０５の画素値「５」が、図１６（Ｊ）の従来技術で示すように補正データの画素１６１０の画素値として出力される。
【０１０７】
以上説明したように、細線補正処理よりもスムージング処理を優先的に実施した場合、処理が競合する画素と当該画素に隣接する画素を比較すると、急激な信号値の変化が生じてしまっていることがわかる。即ち、図１６（Ｊ）において、補正データの画素１６１０の信号値が「５」であるのに対して、それに隣接する画素１６１１と画素１６１２の信号値は「１０」であり、急激な信号値の変化が生じている。
【０１０８】
これに対して実施形態では、調整レベル情報に応じて、細線補正処理後の細線補正データとスムージング処理後のスムージングデータの片方を優先して出力データを決定することで、図１６（Ｋ）に示すように、信号値の急激な変化を防止することができる。砂ワイ、図１６（Ｋ）では、補正データの画素１６１３が「１０」、隣接する画素１６１４と画素１６１５も信号値が「１０」であるため、急激な信号値の変化が防止できていることがわかる。
【０１０９】
次に実施形態における処理について、図１９（Ａ）から（Ｃ）を参照して説明する。
【０１１０】
図１９（Ａ）に示す画像に対して、本実施形態の処理を適用した結果を図１９（Ｃ）に示す。図１９（Ｂ）は、ＵＩ部１２１の設定画面によって、「レベル２」が設定された場合の例を示している。調整レベル情報がレベル２（２）なので、処理が競合した画素（ｎ−１）については、スムージング処理よりも細線補正処理を優先して適用されることとなる。図１９において、網掛け部分は、太らせ処理を適用した画素の画素値を示し、斜線部分はスムージング処理を適用した画素の画素値を示す。図１９（Ｂ）の例では、画素（ｎ−１）について、細線補正処理（太らせ処理）の出力値を適用している。その結果、図１９（Ｃ）に示すような補正結果となり、画素（ｎ−２）から画素ｎについて滑らかな濃度表現が実現される。このように実施形態によれば、スムージング処理及び線幅補正処理を行う場合に、滑らかなエッジ表現を実現することができる。
【０１１１】
以上説明したように実施形態によれば、注目画素がスムージング処理と細線補正処理の両方の処理対象となった場合に、線幅を調整する調整レベル情報が所定値よりも大きい場合に、細線補正処理後の細線補正データを優先して出力することにより、急激な画素値の変化が防止できる。
【０１１２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１１３】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【０１１４】
５０１…ウィンドウ生成部、５０２…スムージング処理部、５０３…細線補正処理部、５０４…画像合成部
【図１】
2020136775.tif 000003
【図２】
2020136775.tif 000004
【図３】
2020136775.tif 000005
【図４】
2020136775.tif 000006
【図５】
2020136775.tif 000007
【図６】
2020136775.tif 000008
【図７】
2020136775.tif 000009
【図８】
2020136775.tif 000010
【図９】
2020136775.tif 000011
【図１０】
2020136775.tif 000012
【図１１】
2020136775.tif 000013
【図１２】
2020136775.tif 000014
【図１３】
2020136775.tif 000015
【図１４】
2020136775.tif 000016
【図１５】
2020136775.tif 000017
【図１６】
2020136775.tif 000018
【図１７】
2020136775.tif 000019
【図１８】
2020136775.tif 000020
【図１９】
2020136775.tif 000021