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