(57)【要約】【課題】エッジが過度に薄くなることを抑制し、そして、エッジが過度に目立つことを抑制する。【解決手段】  ハーフトーン処理は、複数の画素のうちの対象画素がエッジを表すエッジ画素であるか否かを判断するエッジ判断処理と、対象画像データによって表される対象画素における色材に対応付けられた階調値の濃度と相関を有する濃度指標値が、閾値より大きいか否かを判断する第１の判断処理と、対象画素がエッジ画素であること、および、濃度指標値が閾値より大きいこと、を含むドット条件が満たされない場合に、予め決められた方法に従って、対象画像データによって表される対象画素における色材に対応付けられた階調値に応じて対象画素のドットを形成することに決定する、もしくは、形成しないことに決定する第１のドット処理と、ドット条件が満たされる場合に、階調値に拘わらずに、対象画素のドットを形成することに決定する第２のドット処理と、を含む。【選択図】  図１
2018056873.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
入力画像データを特定する特定部と、
前記入力画像データを用いて得られる対象画像データにハーフトーン処理を実行することによって、複数の画素のそれぞれにおけるドットの形成状態を表す処理済データを生成する生成部と、
前記処理済データを印刷実行部に供給する供給部と、
を備え、
前記ハーフトーン処理は、
前記複数の画素のうちの対象画素がエッジを表すエッジ画素であるか否かを判断するエッジ判断処理と、
前記対象画像データによって表される前記対象画素における色材に対応付けられた階調値の濃度と相関を有する濃度指標値が、閾値より大きいか否かを判断する第１の判断処理と、
前記対象画素が前記エッジ画素であること、および、前記濃度指標値が前記閾値より大きいこと、を含むドット条件が満たされない場合に、予め決められた方法に従って、前記対象画像データによって表される前記対象画素における色材に対応付けられた前記階調値に応じて前記対象画素のドットを形成することに決定する、もしくは、形成しないことに決定する第１のドット処理と、
前記ドット条件が満たされる場合に、前記階調値に拘わらずに、前記対象画素のドットを形成することに決定する第２のドット処理と、
を含む、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記印刷実行部は、複数種類の色材を用いて画像を印刷する装置であり、
前記対象画素の前記濃度指標値としては、前記対象画像データによって表される前記対象画素における前記複数種類の色材のそれぞれに対応付けられた階調値であって単位面積当たりの色材の量を表す階調値のうちの最大値が用いられる、
画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記閾値を第１閾値と呼ぶときに、
前記ハーフトーン処理は、さらに、前記対象画像データによって表される前記対象画素における前記複数種類の色材のそれぞれに対応付けられた前記階調値のうちの２番目に大きい階調値が、第２閾値未満か否かを判断する第２の判断処理を含み、
前記ドット条件は、さらに、前記階調値のうちの２番目に大きい前記階調値が、前記第２閾値未満であることを含み、
前記ドット条件が満たされる場合に行われる前記第２のドット処理は、前記対象画素の前記最大値に対応付けられた色材のドットを形成することに決定する、
画像処理装置。
【請求項４】
請求項２または３に記載の画像処理装置であって、
前記ドット条件が満たされる場合に行われる前記第２のドット処理は、前記対象画素の前記最大値に対応付けられた色材以外の他の色材のそれぞれのドットを形成するか否かを、前記予め決められた方法に従って決定する、
画像処理装置。
【請求項５】
請求項１から４のいずれかに記載の画像処理装置であって、
前記ドット条件は、前記対象画素の色が、最も明るい白を含む一部の色範囲である対象白範囲の外の色であることを含む、
画像処理装置。
【請求項６】
請求項１から５のいずれかに記載の画像処理装置であって、
前記ドット条件は、前記対象画素の四方に隣接する４個の画素のうちの少なくとも１つの画素の色が、最も明るい白を含む一部の色範囲である隣接白範囲の内の色であることを含む、
画像処理装置。
【請求項７】
請求項１から６のいずれかに記載の画像処理装置であって、
前記予め決められた方法は、ディザマトリクスと前記色材に対応付けられた前記階調値とを用いて前記ドットを形成することに決定する、もしくは、決定しないことに決定する方法である、
画像処理装置。
【請求項８】
請求項１から７のいずれかに記載の画像処理装置であって、
前記入力画像データは、ＲＧＢ色空間で表現されており、
前記エッジ判断処理は、前記印刷実行部によって用いられる色材の単位面積当たりの量を表す階調値を用いずに、ＲＧＢの階調値を用いて行われる、
画像処理装置。
【請求項９】
画像処理のためのコンピュータプログラムであって、
入力画像データを特定する特定機能と、
前記入力画像データを用いて得られる対象画像データにハーフトーン処理を実行することによって、複数の画素のそれぞれにおけるドットの形成状態を表す処理済データを生成する生成機能と、
前記処理済データを印刷実行部に供給する供給機能と、
をコンピュータに実現させ、
前記ハーフトーン処理は、
前記複数の画素のうちの対象画素がエッジを表すエッジ画素であるか否かを判断するエッジ判断処理と、
前記対象画像データによって表される前記対象画素における色材に対応付けられた階調値の濃度と相関を有する濃度指標値が、閾値より大きいか否かを判断する第１の判断処理と、
前記対象画素が前記エッジ画素であること、および、前記濃度指標値が前記閾値より大きいこと、を含むドット条件が満たされない場合に、予め決められた方法に従って、前記対象画像データによって表される前記対象画素における色材に対応付けられた前記階調値に応じて前記対象画素のドットを形成することに決定する、もしくは、形成しないことに決定する第１のドット処理と、
前記ドット条件が満たされる場合に、前記階調値に拘わらずに、前記対象画素のドットを形成することに決定する第２のドット処理と、
を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、印刷のための画像処理に関する。
【背景技術】
【０００２】
従来から、インクやトナーなどの色材のドットを印刷媒体に記録することによって画像を印刷するプリンタが用いられている。このようなプリンタは、ドットの密度によって色の濃さを表現することができる。ここで、文字などの画像の輪郭がぼけて不鮮明になることを抑制するために、画像データを２値化し、そして、２階調データから輪郭部分を抽出して生成された輪郭抽出データを用いることによって、輪郭が強調された印刷出力データを生成する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２０２３号公報
【特許文献２】特開２０１１−１７６５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、輪郭が強調されることによって、文字などの画像のエッジが過度に目立つ場合があった。
【０００５】
本明細書は、エッジが過度に薄くなることを抑制し、そして、エッジが過度に目立つことを抑制できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書は、例えば、以下の適用例を開示する。
【０００７】
［適用例１］画像処理装置であって、入力画像データを特定する特定部と、前記入力画像データを用いて得られる対象画像データにハーフトーン処理を実行することによって、複数の画素のそれぞれにおけるドットの形成状態を表す処理済データを生成する生成部と、前記処理済データを印刷実行部に供給する供給部と、を備え、前記ハーフトーン処理は、前記複数の画素のうちの対象画素がエッジを表すエッジ画素であるか否かを判断するエッジ判断処理と、前記対象画像データによって表される前記対象画素における色材に対応付けられた階調値の濃度と相関を有する濃度指標値が、閾値より大きいか否かを判断する第１の判断処理と、前記対象画素が前記エッジ画素であること、および、前記濃度指標値が前記閾値より大きいこと、を含むドット条件が満たされない場合に、予め決められた方法に従って、前記対象画像データによって表される前記対象画素における色材に対応付けられた前記階調値に応じて前記対象画素のドットを形成することに決定する、もしくは、形成しないことに決定する第１のドット処理と、前記ドット条件が満たされる場合に、前記階調値に拘わらずに、前記対象画素のドットを形成することに決定する第２のドット処理と、を含む、画像処理装置。
【０００８】
この構成によれば、対象画素がエッジ画素であること、および、濃度指標値が閾値より大きいこと、を含むドット条件が満たされる場合に、階調値に拘わらずに、対象画素のドットを形成することに決定されるので、エッジが過度に薄くなることを抑制し、そして、エッジが過度に目立つことを抑制できる。
【０００９】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施例としての画像処理システムを示す説明図である。
【図２】印刷処理の例を示すフローチャートである。
【図３】画像の例を示す概略図である。
【図４】ハーフトーン処理の手順の例を示すフローチャートである。
【図５】エッジフラグ処理の手順の例を示すフローチャートである。
【図６】印刷処理の別の実施例を示すフローチャートである。
【図７】ハーフトーン処理の手順の例を示すフローチャートである。
【図８】エッジフラグ処理の手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
図１は、一実施例としての画像処理システムを示す説明図である。この画像処理システムは、画像処理装置１００と、複合機２００と、を含んでいる。画像処理装置１００と複合機２００とは、ネットワークＮＴに接続されており、互いに通信可能である。
【００１２】
画像処理装置１００は、例えば、パーソナルコンピュータである（例えば、デスクトップコンピュータ、タブレットコンピュータ）。画像処理装置１００は、プロセッサ１１０と、揮発性記憶装置１２０と、不揮発性記憶装置１３０と、画像を表示する表示部１４０と、ユーザによる操作を受け入れる操作部１５０と、インタフェース１９０と、を有している。これらの要素は、バスを介して互いに接続されている。
【００１３】
プロセッサ１１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置１２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置１３０は、例えば、フラッシュメモリである。不揮発性記憶装置１３０は、プログラム１３２を格納している。プロセッサ１１０は、プログラム１３２を実行することによって、複合機２００に画像を印刷させる処理を実行する（詳細は後述）。プログラム１３２は、例えば、プリンタドライバであってよい。プロセッサ１１０は、プログラム１３２の実行に利用される種々の中間データを、記憶装置（例えば、揮発性記憶装置１２０、不揮発性記憶装置１３０のいずれか）に、一時的に格納する。プログラム１３２は、例えば、複合機２００の製造者によって提供される。
【００１４】
表示部１４０は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部１５０は、ユーザによる操作を受け取る装置であり、例えば、表示部１４０上に重ねて配置されたタッチパネルである。ユーザは、操作部１５０を操作することによって、種々の指示を画像処理装置１００に入力可能である。
【００１５】
インタフェース１９０は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェース、IEEE802.11の無線インタフェース）。本実施例では、インタフェース１９０は、有線または無線のネットワークインタフェースであり、ネットワークＮＴに接続されている。
【００１６】
複合機２００は、制御装置２０２と、スキャナ部２８０と、印刷部２９０と、を有している。制御装置２０２は、プロセッサ２１０と、揮発性記憶装置２２０と、不揮発性記憶装置２３０と、画像を表示する表示部２４０と、ユーザによる操作を受け入れる操作部２５０と、通信インタフェース２７０と、を有している。これらの要素は、バスを介して互いに接続されている。
【００１７】
プロセッサ２１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置２２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置２３０は、例えば、フラッシュメモリである。不揮発性記憶装置２３０は、プログラム２３２を格納している。プロセッサ２１０は、プログラム２３２を実行することによって、印刷部２９０に画像を印刷させる処理を実行する（詳細は、後述）。プロセッサ２１０は、プログラム２３２の実行に利用される種々の中間データを、記憶装置（例えば、揮発性記憶装置２２０、不揮発性記憶装置２３０のいずれか）に、一時的に格納する。本実施例では、プログラム２３２は、例えば、複合機２００の製造者によって、ファームウェアとして、不揮発性記憶装置２３０に予め格納されている。ただし、プログラム２３２の少なくとも一部が、外部の装置（例えば、サーバ）から取得されて不揮発性記憶装置２３０に格納されるように、複合機２００が構成されていてもよい。
【００１８】
表示部２４０は、画像を表示する装置であり、例えば、液晶ディスプレイである。操作部２５０は、ユーザによる操作を受け取る装置であり、例えば、表示部２４０上に重ねて配置されたタッチパネルである。ユーザは、操作部２５０を操作することによって、種々の指示を複合機２００に入力可能である。
【００１９】
インタフェース２７０は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェース、IEEE802.11の無線インタフェース）。本実施例では、インタフェース２７０は、有線または無線のネットワークインタフェースであり、ネットワークＮＴに接続されている。
【００２０】
スキャナ部２８０は、ＣＣＤやＣＭＯＳなどの光電変換素子を用いて光学的に文書等の対象物を読み取ることによって、読み取った画像（「スキャン画像」と呼ぶ）を表すスキャンデータを生成する。
【００２１】
印刷部２９０は、所定の方式（例えば、レーザ方式や、インクジェット方式）で、用紙（印刷媒体の一例）上に画像を印刷する装置である。本実施例では、印刷部２９０は、シアンＣ、マゼンタＭ、イエロＹ、ブラックＫの４種類のインクを用いてカラー画像を印刷可能なインクジェット方式の印刷装置である。
【００２２】
図２は、印刷処理の例を示すフローチャートである。本実施例では、画像処理装置１００（図１）のプロセッサ１１０は、プリンタドライバとして、印刷処理を実行する。この印刷処理は、例えば、文書作成プログラムや画像作成プログラムなどのアプリケーションプログラムに対してユーザが印刷指示を入力して、そのアプリケーションプログラムから、プリンタドライバが呼び出された場合に実行される。
【００２３】
Ｓ１００では、プロセッサ１１０は、印刷処理の対象の画像データである入力画像データを特定し、特定した入力画像データを取得する（以下、「入力画像データ」を、単に「入力データ」とも呼ぶ）。本実施例では、プロセッサ１１０は、プリンタドライバを呼び出したアプリケーションプログラムによって提供される画像データを、入力データとして取得する。入力データは、例えば、ＥＭＦ（Enhanced Meta File）形式のように、ページ記述言語で記述された画像データであってよい。これに代えて、入力データは、ＲＧＢのビットマップデータであってもよい。
【００２４】
Ｓ１１０では、プロセッサ１１０は、取得した入力データに対してラスタライズ処理を実行して、複数個の画素を含む対象画像を表す印刷処理用のビットマップデータを生成する（以下、生成されるデータを、第１ビットマップデータとも呼ぶ）。本実施例では、第１ビットマップデータは、ＲＧＢの階調値によって画素ごとの色を表すＲＧＢ画像データである。また、本実施例では、ＲＧＢの階調値は、ゼロから２５５までの２５６階調で表される。第１ビットマップデータの解像度（すなわち、画素密度）は、印刷処理用の解像度に設定される。なお、入力データがビットマップデータである場合、プロセッサ１１０は、ビットマップデータの解像度を印刷処理用の解像度に変換する処理を実行して、第１ビットマップデータを生成してもよい。
【００２５】
図３（Ａ）は、第１ビットマップデータによって表される画像ＩＭの例を示している。この画像ＩＭは、入力データによって表される画像と同じである。画像ＩＭは、白色の背景上に配置された、文字列のオブジェクトＯＢ１と、イラストのオブジェクトＯＢ２と、写真のオブジェクトＯＢ３と、を表している。図示を省略するが、画像ＩＭは、第１方向Ｄ１と、第１方向Ｄ１に垂直な第２方向Ｄ２と、に沿って格子状に配置された複数の画素によって、表されている。以下、第１方向Ｄ１を、右方向とも呼び、第１方向Ｄ１に反対の方向を、左方向とも呼ぶ。また、第２方向Ｄ２を、下方向とも呼び、第２方向Ｄ２に反対の方向を、上方向とも呼ぶ。
【００２６】
図３（Ｂ）は、文字列のオブジェクトＯＢ１の一部分の拡大図である（部分画像ＩＭａとも呼ぶ）。図中の小さい矩形Ｐｘは、画素を示している（以下、画素Ｐｘと呼ぶ）。オブジェクトＯＢ１は、比較的小さい文字列Ｔ１と、比較的大きい文字列Ｔ２と、第１方向Ｄ１に延びる第１線Ｌ１と、第２方向Ｄ２に延びる第２線Ｌ２と、を含んでいる。各線Ｌ１、Ｌ２の幅は、１画素である。
【００２７】
図３（Ｂ）の右上部には、文字列Ｔ１、Ｔ２を表す画素Ｐｘと線Ｌ１、Ｌ２を表す画素Ｐｘとの階調値の例が示されている。図中には、ＣＭＹＫの階調値と、ＲＧＢの階調値とが、示されている。本実施例では、ＣＭＹＫの階調値は、対応する色材の単位面積当たりの量を表しており、ゼロから２５５までの２５６階調で表される。ＣＭＹＫ色空間で表された画像データを用いて画像を印刷する場合、オペレーティングシステムによって、ＣＭＹＫの階調値が、ＲＧＢの階調値に変換され得る。具体的には、以下の通りである。オペレーティングシステムによっては、画像データの表示や印刷などの画像処理のための色空間が、予め特定の色空間に決められている場合がある（基準色空間と呼ぶ）。本実施例では、基準色空間は、ＲＧＢ色空間であることとする。画像処理に利用される画像データの色空間が基準色空間とは異なる場合、オペレーティングシステムは、画像処理のために、画像データの色空間を、基準色空間に変換する。例えば、ＣＭＹＫ色空間で表された画像データを用いて画像を印刷する場合に、オペレーティングシステムは、画像データの色空間を、ＣＭＹＫ色空間からＲＧＢ色空間へ、変換する。そして、オペレーティングシステム上で動作する画像処理用のアプリケーションは、変換後の画像データを、入力データとして、プリンタドライバに提供する。変換前の色空間（例えば、ＣＭＹＫ色空間）の階調値と、基準色空間（例えば、ＲＧＢ色空間）の階調値と、の間の対応関係としては、予め決められた対応関係が、用いられる（例えば、表示用のＩＣＣプロファイル）。
【００２８】
図３（Ｂ）の例では、Ｃ＝Ｍ＝Ｙ＝ゼロ、Ｋ＝２５５のＣＭＹＫの階調値が、Ｒ＝３５、Ｇ＝３１、Ｂ＝３２のＲＧＢの階調値に変換されている。ブラックＫの階調値は、取り得る範囲（ゼロから２５５）のうちの最大値であり、シアンＣ、マゼンタＭ、イエロＹの階調値は、取り得る範囲の最小値である。このようなＣＭＹＫの階調値は、最も暗い黒色を表している。一方、赤Ｒ、緑Ｇ、青Ｂのそれぞれの階調値は、取り得る範囲の最小値であるゼロよりも大きい。このようなＲＧＢの階調値は、最も暗い黒色よりも明るいグレーを表している。このように、オブジェクトの色が、色空間変換によって、黒からグレーに変換される場合がある。
【００２９】
Ｓ１２０（図２）では、プロセッサ１１０は、第１ビットマップデータに対して色変換処理を実行して、印刷に利用可能な色材の種類に対応する色空間で表された画像データを生成する。本実施例では、ＲＧＢの第１ビットマップデータから、ＣＭＹＫの第２ビットマップデータが生成される。色変換処理は、ＲＧＢの階調値とＣＭＹＫの階調値との対応関係を予め定めるルックアップテーブルを用いて行われる。このようなルックアップテーブルは、複合機２００（図１）の製造者によって、プログラム１３２と共に提供される（図示省略）。
【００３０】
なお、第２ビットマップデータは、第１ビットマップデータを用いて得られ、第１ビットマップデータは、入力データを用いて得られるので、第２ビットマップデータは、入力データを用いて得られるデータである。従って、第２ビットマップデータによって表されるＣＭＹＫの階調値は、入力データによって表される色（特に、色材の量、換言すれば、濃度）を表している。
【００３１】
Ｓ１３０では、プロセッサ１１０は、第２ビットマップデータのＣＭＹＫの階調値に対してハーフトーン処理を実行して、ドットを形成するか否か（ドットの形成状態とも呼ぶ）を、画素ごと、かつ、インクの種類ごとに表すドットデータを生成する。このように、第２ビットマップデータは、ハーフトーン処理の対象の画像データである（以下、「対象画像データ」または、単に「対象データ」とも呼ぶ）。本実施例では、ハーフトーン処理は、ディザマトリクスを用いて行われる。また、後述するように、文字列Ｔ１、Ｔ２などのオブジェクトのエッジを表す画素と、細い線Ｌ１、Ｌ２を表す画素と、に関しては、階調値に拘わらずに、ドットを形成することに決定される。このようなハーフトーン処理によって、ＣＭＹＫの第２ビットマップデータから、ドットデータが生成される。
【００３２】
Ｓ１４０では、プロセッサ１１０は、ドットデータを用いて印刷データを生成する。印刷データは、印刷部２９０によって解釈可能なデータ形式で表されたデータである。プロセッサ１１０は、例えば、印刷に用いられる順にドットデータを並べるとともに、各種のプリンタ制御コードや、データ識別コードを付加して印刷データを生成する。
【００３３】
Ｓ１５０では、プロセッサ１１０は、生成した印刷データを、印刷実行部としての複合機２００に供給する。Ｓ１６０では、複合機２００のプロセッサ２１０は、受信した印刷データに従って、印刷部２９０に画像を印刷させる。以上により、図２の印刷処理が終了する。
【００３４】
図４は、ハーフトーン処理（図２：Ｓ１３０）の手順の例を示すフローチャートである。Ｓ２００では、プロセッサ１１０は、第２ビットマップデータによって表される複数の画素の中から、未処理の画素を、処理対象の画素である対象画素として選択する。Ｓ２１０では、プロセッサ１１０は、対象画素の色が白であるか否かを判断する。本実施例では、Ｃ＝Ｍ＝Ｙ＝Ｋ＝ゼロである場合に、対象画素の色が白であると判断される。対象画素の色が白である場合（Ｓ２１０：Ｙｅｓ）、プロセッサ２１０は、対象画素にドットを形成するという決定を行わずに、Ｓ２９５へ移行する。対象画素が背景を表す場合、Ｓ２１０の判断結果は、Ｙｅｓである。対象画素が、オブジェクトを表す場合、Ｓ２１０の判断結果は、Ｎｏである。
【００３５】
対象画素の色が白とは異なる色である場合（Ｓ２１０：Ｎｏ）、Ｓ２２０で、プロセッサ１１０は、エッジフラグを設定する処理を実行する（エッジフラグ処理と呼ぶ）。エッジフラグ処理は、対象画素がオブジェクトのエッジを表すか否かを判断する処理である。
【００３６】
図５は、エッジフラグ処理の手順の例を示すフローチャートである。Ｓ３００では、プロセッサ１１０は、対象画素を中心とする３画素×３画素の９個の画素を特定する。図５のＳ３００の右には、対象画素Ｐｔを中心とする９個の画素Ｐｘが図示されている。９個の画素Ｐｘは、第１方向Ｄ１に沿って３個の画素Ｐｘが並び、第２方向Ｄ２に沿って３個の画素Ｐｘが並ぶように、配置されている。プロセッサ１１０は、これらの９個の画素Ｐｘのそれぞれの処理値を算出する。処理値は、エッジフラグ処理のための階調値である。本実施例では、処理値は、Ｃ、Ｍ、Ｙ、Ｋの階調値の合計値である。この処理値が大きいほど、濃度が高い。処理値の変化は、色の変化を表している。また、このような処理値（ここでは、ＣＭＹＫの階調値の合計値）は、対象画素に関する画素値の例である。
【００３７】
図中の各画素Ｐｘの中の符号は、処理値の符号を示している。各符号は、第２方向Ｄ２の位置を示す２文字のアルファベットと、第１方向Ｄ１の位置を示す１桁の番号と、で構成されている。第２方向Ｄ２の３個の画素位置には、「ＶＵ」、「ＶＮ」、「ＶＤ」が、第２方向Ｄ２に向かってこの順に並ぶように、割り当てられている。第１方向Ｄ１の３個の画素位置には、「１」、「２」、「３」が、第１方向Ｄ１に向かってこの順に並ぶように、割り当てられている。例えば、対象画素Ｐｔの処理値の符号は「ＶＮ２」である。
【００３８】
Ｓ３１０では、プロセッサ１１０は、第１方向Ｄ１の第１重みＷ１を算出する。第１重みＷ１は、対象画素Ｐｔから見て第１方向Ｄ１側の画素と反対側の画素との間の処理値の差の大きさを示している。第１重みＷ１が大きい場合には、対象画素Ｐｔがエッジを表している可能性が高い。このような重みＷ１は、エッジ量、または、エッジ強度とも呼ばれる。重みＷ１の算出には、種々のエッジ検出フィルタを用いることができる。図５のＳ３１０の右には、本実施例のＳ３１０で用いられるエッジ検出フィルタが示されている。各画素Ｐｘの中の値は、処理値に付される係数を示している。係数は、第１方向Ｄ１の画素位置毎に決められている。具体的には、第１方向Ｄ１の３個の画素位置には、「−１」、「０」、「１」の係数が、第１方向Ｄ１に向かってこの順に並ぶように、割り当てられている。第１重みＷ１は、対象画素Ｐｔを中心とする９個の画素Ｐｘのそれぞれの処理値の重み付き合計値の絶対値である。重みとしては、上記のエッジ検出フィルタの係数が用いられる。
【００３９】
図３（Ｂ）の画素Ｐｅ１は、文字列Ｔ２に含まれる文字（ここでは、ｂの文字）の左側のエッジを表す画素である。画素Ｐｅ１が対象画素である場合、第１重みＷ１は、大きな値になる（例えば、ゼロよりも大きな値）。文字の右側のエッジを表す画素に関しても、同様に、第１重みＷ１は、大きな値になる。背景のうちの文字などのオブジェクトから離れた部分を表す画素（例えば、画素Ｐｂ）が対象画素である場合、第１重みＷ１は、小さな値になる（例えば、ゼロ）。
【００４０】
Ｓ３２０では、プロセッサ１１０は、第２方向Ｄ２の第２重みＷ２を算出する。第２重みＷ２は、第１重みＷ１と同様のエッジ量を表している。ただし、第１重みＷ１とは異なり、第２重みＷ２は、対象画素Ｐｔから見て第２方向Ｄ２側の画素と反対側の画素との間の処理値の差の大きさを示している。図５のＳ３２０の右には、本実施例のＳ３２０で用いられるエッジ検出フィルタが示されている。第２方向Ｄ２の３個の画素位置には、「−１」、「０」、「１」の係数が、第２方向Ｄ２に向かってこの順に並ぶように、割り当てられている。第２重みＷ２は、対象画素Ｐｔを中心とする９個の画素Ｐｘのそれぞれの処理値の重み付き合計値の絶対値である。重みとしては、上記のエッジ検出フィルタの係数が用いられる。
【００４１】
図３（Ｂ）の画素Ｐｅ２は、文字列Ｔ２に含まれる文字（ここでは、ｃの文字）の下側のエッジを表す画素である。画素Ｐｅ２が対象画素である場合、第２重みＷ２は、大きな値になる（例えば、ゼロよりも大きな値）。文字の上側のエッジを表す画素に関しても、同様に、第２重みＷ２は、大きな値になる。背景のうちの文字などのオブジェクトから離れた部分を表す画素（例えば、画素Ｐｂ）が対象画素である場合、第２重みＷ２は、小さな値になる（例えば、ゼロ）。
【００４２】
なお、図３（Ｂ）の文字列Ｔ１の文字と線Ｌ１、Ｌ２とは、１画素の幅の細い線で表されている。このように細い線を表す画素が対象画素である場合、重みＷ１、Ｗ２は、小さな値（例えば、ゼロ）になる。本実施例のエッジ検出フィルタに限らず、ソーベルフィルタなどの他の一般的なエッジ検出フィルタを用いる場合も、細い線を表す画素に関しては、大きなエッジ量を算出することが困難である。そこで、本実施例では、１画素の幅の細い線を表す画素（以下、細線画素と呼ぶ）に関しても、大きな重みＷ１、Ｗ２が得られるように、以下のＳ３３０〜Ｓ３６０の処理が行われる。
【００４３】
Ｓ３３０では、プロセッサ１１０は、対象画素Ｐｔが、第２線Ｌ２（図３（Ｂ））のように第２方向Ｄ２に延びる細い線を表す画素の候補であるか否かを判断する。本実施例では、以下の条件１〜３が満たされるか否かが判断される。
条件１）対象画素Ｐｔの第１方向Ｄ１側に隣接する画素の処理値ＶＮ３と、反対側に隣接する画素の処理値ＶＮ１と、の間の差がゼロである（すなわち、ＶＮ１＝ＶＮ３）。
条件２）対象画素Ｐｔの処理値ＶＮ２が、両隣の画素の処理値ＶＮ１、ＶＮ３のいずれとも異なる。
条件３）両隣の画素の処理値ＶＮ１、ＶＮ３のそれぞれが、最も明るい白を含む部分色範囲である白色範囲内である。最も明るい白に対応付けられた処理値は、処理値の取り得る値のうち、最も明度が高い値である（ここでは、ゼロ）。白色範囲としては、例えば、処理値が予め決められた閾値（例えば、９０）未満である範囲を採用してよい。
【００４４】
これらの条件１〜３は、対象画素Ｐｔの第１方向Ｄ１側の隣の画素と反対側の隣の画素とが、白（すなわち、背景）を表し、そして、対象画素Ｐｔが、背景とは異なる色を表している場合に、満たされる。例えば、対象画素Ｐｔが、図３（Ｂ）の第２線Ｌ２を表す画素である場合、条件１〜３の全てが満たされる。条件１〜３の全てが満たされる場合、対象画素は、細線画素の候補である。なお、条件１〜３の全てが満たされる場合であっても、対象画素は、１画素の幅の細線とは異なる画像を表し得る。
【００４５】
条件１〜３の全てが満たされる場合（Ｓ３３０：Ｙｅｓ）、Ｓ３４０で、プロセッサ１１０は、第１重みＷ１に１を加算し、Ｓ３５０へ移行する。このように、条件１〜３の全てが満たされる場合、プロセッサ１１０は、対象画素が細線画素の候補であると判断し、第１重みＷ１を、より大きな値に、修正する。条件１〜３の少なくとも１つが満たされない場合（Ｓ３３０：Ｎｏ）、プロセッサ１１０は、Ｓ３４０をスキップして、Ｓ３５０へ移行する。
【００４６】
Ｓ３５０では、プロセッサ１１０は、対象画素Ｐｔが、第１線Ｌ１（図３（Ｂ））のように第１方向Ｄ１に延びる細い線を表す画素であるか否かを判断する。本実施例では、以下の条件１１〜１３が満たされるか否かが判断される。
条件１１）対象画素Ｐｔの第２方向Ｄ２側に隣接する画素の処理値ＶＤ２と、反対側に隣接する画素の処理値ＶＵ２と、の間の差がゼロである（すなわち、ＶＵ２＝ＶＤ２）。
条件１２）対象画素Ｐｔの処理値ＶＮ２が、両隣の画素の処理値ＶＵ２、ＶＤ２のいずれとも異なる。
条件１３）両隣の画素の処理値ＶＵ２、ＶＤ２のそれぞれが、最も明るい白を含む白色範囲内である。白色範囲は、Ｓ３３０の条件３の白色範囲と同じである。
【００４７】
これらの条件１１〜１３は、対象画素Ｐｔの第２方向Ｄ２側の隣の画素と反対側の隣の画素とが、白（すなわち、背景）を表し、そして、対象画素Ｐｔが、背景とは異なる色を表している場合に、満たされる。例えば、対象画素Ｐｔが、図３（Ｂ）の第１線Ｌ１を表す画素である場合、条件１１〜１３の全てが満たされる。条件１１〜１３の全てが満たされる場合、対象画素は、細線画素の候補である。
【００４８】
条件１１〜１３の全てが満たされる場合（Ｓ３５０：Ｙｅｓ）、Ｓ３６０で、プロセッサ１１０は、第２重みＷ２に１を加算し、Ｓ３７０へ移行する。このように、条件１１〜１３の全てが満たされる場合、プロセッサ１１０は、対象画素が細線画素の候補であると判断し、第２重みＷ２を、より大きな値に、修正する。条件１１〜１３の少なくとも１つが満たされない場合（Ｓ３５０：Ｎｏ）、プロセッサ１１０は、Ｓ３６０をスキップして、Ｓ３７０へ移行する。
【００４９】
Ｓ３７０では、プロセッサ１１０は、重みＷ１、Ｗ２の合計値がゼロより大きいか否かを判断する。ゼロよりも大きな合計値は、対象画素Ｐｔがオブジェクトのエッジまたは１画素の幅の細い線を表している場合に、算出され得る。なお、１画素の細い線を表す画素も、細い線のエッジを表しているということができる。合計値がゼロより大きい場合（Ｓ３７０：Ｙｅｓ）、Ｓ３８０で、プロセッサ１１０は、エッジフラグをオンに設定して、図５の処理を終了する。合計値がゼロである場合（Ｓ３７０：Ｎｏ）、Ｓ３９０で、プロセッサ１１０は、エッジフラグをオフに設定して、図５の処理（すなわち、図４のＳ２２０）を終了する。以上のように、図５の処理によって、対象画素Ｐｔがエッジを表すか否かが判断される。そして、エッジフラグは、判断結果を表すように、設定される。
【００５０】
図４のＳ２３０では、プロセッサ１１０は、エッジフラグがオンであり、かつ、対象画素Ｐｔに隣接する４個の隣接画素のうち１以上の隣接画素の色が予め決められた隣接白範囲内である、という条件が満たされるか否かを判断する。４個の隣接画素は、対象画素Ｐｔの上下左右に隣接する４個の画素である。隣接白範囲は、最も明るい白を含む部分色範囲である。本実施例では、ＣＭＹＫの階調値の合計値を用いて、隣接画素の色が隣接白範囲内であるか否かが判断される。最も明るい白に対応付けられたＣＭＹＫの階調値の合計値は、合計値の取り得る値のうち、最も明度の高い値である（ここでは、ゼロ）。隣接白範囲としては、例えば、ＣＭＹＫの階調値の合計値が閾値Ｔｈａ未満である色範囲を採用してよい。閾値Ｔｈａは、例えば、ＣＭＹＫの階調値の合計値が実際に取り得る範囲の最大値の２０％程度の値（例えば、９０）であってよい。４個の隣接画素のそれぞれの色の全てが隣接白範囲外である場合、対象画素は、背景に隣接するのではなく、オブジェクトを表す画素に囲まれている可能性がある。例えば、対象画素は、写真などのオブジェクトの内部を表している可能性がある。
【００５１】
このように、対象画素がオブジェクトのエッジではなく内部を表している場合と、エッジフラグがオフである場合とに、Ｓ２３０の判断結果がＮｏとなる。この場合（Ｓ２３０：Ｎｏ）、プロセッサ１１０は、Ｓ２９０に移行し、対象画素における全ての色材に関して、ドットを形成するか否かを、色材に対応付けられた階調値（ここでは、ＣＭＹＫの階調値）とディザマトリクスとを用いて、決定する。そして、プロセッサ１１０は、Ｓ２９５へ移行する。
【００５２】
ディザマトリクスを用いる処理は、例えば、以下のように、行われる。シアンＣの階調値が、ディザマトリクスによって定められる対象画素Ｐｔの閾値以上である場合、シアンＣのドットを形成することに決定される。シアンＣの階調値が、その閾値よりも小さい場合、シアンＣのドットを形成しないことに決定される。なお、シアンＣの階調値が閾値と同じ場合には、シアンＣのドットを形成しないこととしてもよい。他の色材に関しても、同様に、色材に対応する色成分の階調値と、閾値と、を比較した結果に応じて、ドットを形成するか否かが決定される。なお、ディザマトリクスは、色材毎に閾値が異なるように、構成されている。ただし、複数の色材に、共通のディザマトリクスが用いられてもよい。
【００５３】
Ｓ２３０の判断結果がＹｅｓである場合、Ｓ２４０で、プロセッサ１１０は、ＣＭＹＫの階調値のうち、最大の階調値に対応付けられた色材である最大色材と、２番目に大きい階調値に対応付けられた色材である２番色材と、を特定する。例えば、対象画素が、図３（Ｂ）の文字列Ｔ１、Ｔ２や線Ｌ１、Ｌ２のように黒に近い色のオブジェクトを表す場合、最大色材は、ブラックＫであり得る。対象画素が他の色のオブジェクトを表す場合も、最大色材は、オブジェクトの色に近い色の色材である。
【００５４】
Ｓ２５０では、プロセッサ１１０は、最大色材の量（すなわち、階調値）が第１閾値Ｔｈ１より大きいか否かを判断する。第１閾値Ｔｈ１は、例えば、階調値の取り得る範囲の最大値（最大の色材の量）の８０％程度の値（例えば、２０４）である。最大色材の階調値は、対象画素における各色材の量のうちの最も大きい量であるので、最大色材の階調値が大きいほど、対象画素の濃度は高い。このように、最大色材の階調値は、ＣＭＹＫの階調値によって表される対象画素の濃度と相関を有する指標値の例である。最大色材の階調値が第１閾値Ｔｈ１より大きいことは、最大色材の濃度が、第１閾値Ｔｈ１に対応付けられた濃度よりも大きいことを示している。最大色材の階調値が第１閾値Ｔｈ１以下である場合（Ｓ２５０：Ｎｏ）、プロセッサ１１０は、Ｓ２９０に移行して、対象画素における全ての色材のそれぞれのドットを形成するか否かをディザマトリクスを用いて決定し、Ｓ２９５へ移行する。
【００５５】
最大色材の階調値が第１閾値Ｔｈ１より大きい場合（Ｓ２５０：Ｙｅｓ）、Ｓ２６０で、プロセッサ１１０は、２番色材の量（すなわち、階調値）が第２閾値Ｔｈ２未満であるか否かを判断する。第２閾値Ｔｈ２は、第１閾値Ｔｈ１よりも小さい値に設定される。第２閾値Ｔｈ２は、例えば、階調値の取り得る範囲の最大値（最大の色材の量）の３０％程度の値（例えば、７７）である。２番色材の量が第２閾値Ｔｈ２以上である場合（Ｓ２６０：Ｎｏ）、プロセッサ１１０は、Ｓ２９０に移行して、対象画素における全ての色材のそれぞれのドットを形成するか否かをディザマトリクスを用いて決定し、Ｓ２９５へ移行する。
【００５６】
２番色材の量が第２閾値Ｔｈ２未満である場合（Ｓ２６０：Ｙｅｓ）、Ｓ２７０で、プロセッサ１１０は、最大色材のドットを形成することに決定する。最大色材のドットは、対象画素によって表されるオブジェクトの色に近い色の色材のドットである。また、Ｓ２８０で、プロセッサ１１０は、最大色材を除いた残りの色材のそれぞれのドットを形成するか否かを、ディザマトリクスを用いて決定する。ディザマトリクスを用いてドットを形成するか否かを決定する処理は、Ｓ２９０の処理と同じである。そして、プロセッサ１１０は、Ｓ２９５へ移行する。
【００５７】
Ｓ２９５では、プロセッサ１１０は、全ての画素の処理が終了したか否かを判断する。未処理の画素が残っている場合（Ｓ２９５：Ｎｏ）、プロセッサ１１０は、Ｓ２００へ移行して、未処理の画素の処理を行う。全ての画素の処理が終了した場合（Ｓ２９５：Ｙｅｓ）、プロセッサ１１０は、図４の処理を終了する。
【００５８】
図３（Ｃ）は、図４のハーフトーン処理によって決定されたドットデータによって表される画像の例を示す概略図である（以下、ドット画像ＩＭｂと呼ぶ）。図３（Ｄ）は、全ての画素の全ての色材のドットを形成するか否かを、エッジフラグを用いずに、ディザマトリクスを用いて決定した場合の参考例のドットデータによって表される画像の例を示す概略図である（参考ドット画像ＩＭｃと呼ぶ）。これらのドット画像ＩＭｂ、ＩＭｃは、図３（Ｂ）の部分画像ＩＭａと同じ部分を表している。白色の画素Ｐｘは、ドットの無い画素を示している。黒色の画素Ｐｘは、少なくともブラックＫのドットを有する画素を示している。ハッチングが付された画素Ｐｘは、ブラックＫのドットが無く、ＣＭＹの少なくとも１種のドットを有する画素を示している。
【００５９】
図３（Ｃ）に示すように、文字列Ｔ２の文字を表す領域のうちエッジよりも内側の領域には、ドットの無い画素Ｐｘと、ブラックＫのドットが無くＣＭＹの少なくとも一種のドットを有する画素Ｐｘと、が生じている。この理由は、図３（Ｂ）で説明したように、黒色であった文字列Ｔ２の文字の色が、印刷処理のための基準色空間への色変換によって、元の色とは異なる色（ここでは、黒よりも明るいグレー）に変化したからである。図３（Ｂ）に示すＲＧＢの階調値は、図２のＳ１２０で、ＣＭＹＫの階調値に変換される。変換後のＣＭＹＫの階調値は、黒よりも明るいグレーを表している。すなわち、ブラックＫの階調値は、２５５よりも小さく、ＣＭＹのそれぞれの階調値は、ゼロよりも大きい。この結果、ブラックＫの階調値は、ディザマトリクスの閾値よりも小さい場合がある。また、ＣＭＹの少なくとも１つの階調値が、ディザマトリクスの閾値よりも大きい場合がある。
【００６０】
また、図３（Ｃ）に示すように、文字列Ｔ１、Ｔ２の文字のエッジを表す画素Ｐｘと、線Ｌ１、Ｌ２を表す画素Ｐｘとは、ブラックＫのドットを有している。このようなドットデータが得られる理由は、以下の通りである。図５、図３（Ｂ）で説明したように、対象画素Ｐｔがオブジェクトのエッジまたは１画素の幅の細い線を表している場合に、エッジフラグがオンに設定される。そして、図４で説明したように、エッジフラグがオンに設定され（Ｓ２３０：Ｙｅｓ）、かつ、最大色材の階調値が第１閾値Ｔｈ１より大きい（Ｓ２５０：Ｙｅｓ）ことを含む条件が満たされる場合に、Ｓ２７０で、対象画素の最大色材の階調値に拘わらずに、対象画素にドットを形成することに決定される（以下、Ｓ２７０が実行されるための条件を、ドット条件とも呼ぶ）。以上により、濃い色のオブジェクト（例えば、文字や細線）のエッジを表す画素で、最大色材の階調値に拘わらずにドットが形成されるので、エッジが薄くなることを抑制できる。また、１画素の幅の細線を適切に印刷できる。また、薄い色のオブジェクトのエッジを表す画素では、色材に対応付けられた階調値に応じて各色材のドットを形成するか否かが決定されるので（Ｓ２５０：Ｎｏ、Ｓ２９０）、エッジが過度に目立つことを抑制できる。
【００６１】
一方、図３（Ｄ）の参考ドット画像ＩＭｃでは、全ての画素Ｐｘにおいて、全ての色材に関して、ドットを形成するか否かが、ディザマトリクスを用いて決定される。例えば、文字列Ｔ２の大きな文字のエッジの一部を表す複数の画素で、ドットが形成されない。これにより、大きな文字のエッジが、過度に薄くなり得る。また、文字列Ｔ１の小さい文字の一部を表す複数の画素で、ドットが形成されない。また、線Ｌ１、Ｌ２の一部を表す複数の画素で、ドットが形成されない。これにより、小さい文字や細い線は、判別ができなくなる場合がある。本実施例では、そのような不具合を抑制できる。
【００６２】
また、図４のＳ２５０で説明したように、Ｓ２７０でドットを形成することに決定されるためのドット条件は、対象画素の濃度と相関を有する指標値の例である最大色材の量を表す階調値が、第１閾値Ｔｈ１よりも大きいことを含んでいる。このように、対象画素の色に適した値を用いて条件が判断されるので、対象画素にドットを形成するか否かを適切に決定できる。例えば、薄い色のオブジェクトのエッジを表す画素では、Ｓ２７０ではなく、Ｓ２９０で、色材に対応付けられた階調値に応じて各色材のドットを形成するか否かが決定されるので（Ｓ２５０：Ｎｏ、Ｓ２９０）、エッジが過度に目立つことを抑制できる。
【００６３】
また、図４のＳ２６０で説明したように、Ｓ２７０が実行されるためのドット条件は、複数の色材の階調値のうちの２番目に大きい階調値が、第２閾値Ｔｈ２未満であることを含んでいる。そして、Ｓ２７０では、最大色材のドットを形成することに決定される。従って、対象画素の色が最大色材の色に近い場合に、最大色材のドットが形成されるので、オブジェクトのエッジが不自然に目立つことを抑制できる。エッジフラグがオンであっても、２番目に大きい階調値が第２閾値Ｔｈ２よりも大きい場合には（Ｓ２６０：Ｎｏ）、Ｓ２９０で、色材に対応付けられた階調値に応じて各色材のドットを形成するか否かが決定される。従って、エッジが過度に目立つことを抑制できる。また、２番目に大きい階調値が第２閾値Ｔｈ２よりも大きい場合には、ディザマトリクスの閾値と２番目に大きい階調値との対比の結果、２番色材のドットを形成することに決定され得る。このように、複数の色材をそれぞれ一定量以上使用するオブジェクトのエッジでは、最大色材のドットが形成されない場合であっても、２番色材のドットが形成され得る。従って、Ｓ２７０ではなくＳ２９０でドットを形成するか否かが決定されるとしても、オブジェクトのエッジが薄くなることを抑制できる。
【００６４】
また、Ｓ２７０（図４）が実行されるためのドット条件が満たされる場合、Ｓ２８０では、ドット条件が満たされない場合に実行されるＳ２９０と同じ方法で、最大色材以外の他の色材のそれぞれのドットを形成するか否かが決定される。上述したように、Ｓ２９０では、色材に対応付けられた階調値に応じて各色材のドットを形成するか否かが決定される。従って、ドットを形成するか否かが過度に不自然に決定されることが抑制されるので、エッジが過度に目立つことを抑制できる。また、細線が過度に目立つことを抑制できる。
【００６５】
また、図４のＳ２１０で説明したように、Ｓ２７０が実行されるためのドット条件は、対象画素の色が白とは異なる色であることを含む。従って、白に近い色を表す対象画素（例えば、背景を表す対象画素、薄い色のオブジェクトのエッジを表す対象画素、など）で、Ｓ２７０の処理（対象画素の最大色材の階調値に拘わらずにドットが形成されることに決定される処理）が実行されることを抑制できる。この結果、エッジが過度に目立つことを抑制できる。また、オブジェクトのエッジに隣接するとともに背景を表す画素に、Ｓ２７０の処理が実行されることが抑制されるので、オブジェクトが太くなることを抑制できる。
【００６６】
また、図４のＳ２３０で説明したように、Ｓ２７０が実行されるためにドット条件は、対象画素の四方に隣接する４個の画素のうちの少なくとも１つの画素の色が、最も明るい白を含む一部の色範囲である隣接白範囲の内の色であることを含む。従って、対象画素が背景に隣接するエッジを表す画素である場合には、ドット条件が満たされやすいので、適切にエッジにドットを形成できる（Ｓ２７０）。これにより、エッジが過度に薄くなることを抑制できる。また、対象画素が写真などのオブジェクトの内部を表す場合には、ドット条件が満たされにくいので、オブジェクトの内部の色が不自然になることを抑制できる。
【００６７】
また、ドット条件が満たされない場合のＳ２９０は、色材に対応付けられた階調値とディザマトリクスとを用いて、ドットを形成することに決定する、もしくは、ドットを形成しないことに決定する。従って、階調値に適したドット形成を実現できる。
【００６８】
また、図５のＳ３３０、Ｓ３５０で説明したように、プロセッサ１１０は、対象画素に隣接する第１画素と、対象画素の第１画素側とは反対側に隣接する第２画素と、を特定する。そして、細線条件が満たされる場合に、プロセッサ１１０は、対象画素が細線画素の候補であると判断し、重みＷ１、Ｗ２をより大きな値に更新する。細線条件は、Ｓ３３０では、上記の条件１〜３で構成され、Ｓ３５０では、上記の条件１１〜１３で構成される。以上により、細線画素の候補を、適切に特定できる。
【００６９】
また、図５のＳ３００で説明したように、各画素の処理値は、各色材に対応付けられた階調値を用いて得られる値である（具体的には、Ｃ＋Ｍ＋Ｙ＋Ｋ）。従って、各色材に対応付けられた階調値を用いて、適切に、細線画素の候補を特定できる。
【００７０】
Ｂ．第２実施例：
図６は、印刷処理の別の実施例を示すフローチャートである。図２の実施例との差異は、Ｓ１２０〜Ｓ１５０の処理が、Ｓ１１０で生成された第１ビットマップデータによって表される複数の画素ライン（例えば、第１方向Ｄ１に延びる複数の画素ライン）のうち、一部の画素ライン（例えば、１本の画素ライン、または、２以上の所定数の画素ライン）ずつ、繰り返される点だけである。Ｓ１２０では、処理対象の画素ラインである対象画素ラインの複数の画素の色変換が行われる。Ｓ１３０では、対象画素ラインの複数の画素のハーフトーン処理が行われる（詳細は、後述）。Ｓ１４０では、対象画素ラインの印刷データが生成される。Ｓ１５０では、対象画素ラインの印刷データが、印刷実行部（例えば、印刷部２９０）に供給される。対象画素ラインのＳ１２０〜Ｓ１５０の処理が終了した場合、対象画素ラインが未処理の画素ラインに更新され、そして、新たな対象画素ラインのＳ１２０〜Ｓ１５０の処理が、行われる。印刷実行部は、対象画素ラインの印刷データを受信したことに応じて、他の画素ラインの印刷データを受信するよりも前に、受信済の印刷データに従って画像の一部を印刷する（Ｓ１６０）。これに代えて、印刷実行部は、全ての画素ラインの印刷データを受信したことに応じて、画像の印刷を開始してもよい。全ての画素ラインのＳ１２０〜Ｓ１５０の処理が終了し、そして、画像の印刷（Ｓ１６０）が終了することに応じて、図６の印刷処理は、終了する。
【００７１】
このように、Ｓ１２０〜Ｓ１５０の処理が一部の画素ラインずつ繰り返される場合、処理用のデータを格納する記憶装置（例えば、揮発性記憶装置、または、不揮発性記憶装置）は、第２ビットマップデータの全体を同時に格納する必要がなく、第２ビットマップデータのうちの対象画素ラインを表す部分のみを格納すればよい。従って、印刷処理に用いられる記憶装置の容量を小さくできる。本実施例では、複合機２００（図１）の記憶装置２２０、２３０の容量は、画像処理装置１００の記憶装置１２０、１３０の容量と比べて、それぞれ小さい。このように小さい記憶装置２２０、２３０を備える複合機２００も、図６の印刷処理を実行できる。以下、複合機２００の制御装置２０２（具体的には、プロセッサ２１０）が図６の印刷処理を実行することとして、説明する。
【００７２】
図７は、ハーフトーン処理の手順の例を示すフローチャートである。図４の実施例との差異は、Ｓ２１０、Ｓ２３０が、Ｓ２１０ａ、Ｓ２３０ａに置換されている点だけである。図７の他のステップの処理は、図４の対応するステップの処理と、同じである。図７のステップのうち、図４のステップと同じステップには、同じ符号を付して、説明を省略する。
【００７３】
Ｓ２１０ａでは、複合機２００のプロセッサ２１０は、対象画素の色が白であるか否かを判断する。図４のＳ２１０とは異なり、プロセッサ２１０は、第１ビットマップデータによって表されるＲＧＢの階調値を用いて、Ｓ２１０ａの判断を行う。本実施例では、Ｒ＝Ｇ＝Ｂ＝２５５である場合に、対象画素の色が白であると判断される。対象画素の色が白である場合（Ｓ２１０ａ：Ｙｅｓ）、プロセッサ２１０は、Ｓ２９５へ移行する。対象画素が、オブジェクトのエッジに隣接するとともに背景を表す画素である場合、Ｓ２１０の判断結果は、Ｙｅｓである。対象画素が、オブジェクトを表す場合、Ｓ２１０の判断結果は、Ｎｏである。対象画素の色が白とは異なる色である場合（Ｓ２１０：Ｎｏ）、プロセッサ２１０は、Ｓ２２０へ移行し、エッジフラグ処理を実行する。
【００７４】
図８は、本実施例のエッジフラグ処理の手順の例を示すフローチャートである。図５の実施例との差異は、Ｓ３００が、Ｓ３００ａに置換されている点だけである。図８の他のステップの処理は、図５の対応するステップの処理と同じである。図８のステップのうち、図５のステップと同じステップには、同じ符号を付して、説明を省略する。
【００７５】
Ｓ３００ａでは、プロセッサ２１０は、対象画素Ｐｔを中心とする９個の画素Ｐｘのそれぞれの処理値を算出する。本実施例では、処理値は、色材に対応付けられた階調値（より具体的には、色材の単位面積当たりの量を表す階調値）を用いずに、色材とは独立な色成分（ここでは、ＲＧＢ）の階調値を用いて、算出される。具体的には、第１ビットマップデータによって表されるＲＧＢの階調値を用いて得られる輝度値Ｙｖが、処理値として用いられる。輝度値Ｙｖとしては、例えば、ＲＧＢ色空間の階調値とＹＣｂＣｒ色空間の輝度値とを対応付ける公知の関係式を用いて算出される値を、採用可能である。輝度値Ｙｖが小さいほど、対象画素の濃度は高い。このような処理値（ここでは、輝度値Ｙｖ）も、対象画素に関する画素値の例である。
【００７６】
Ｓ３１０〜Ｓ３９０の処理では、処理値として輝度値Ｙｖが用いられる。Ｓ３３０、Ｓ３５０の白色範囲としては、最も明るい白を含む部分色範囲が用いられる。最も明るい白に対応付けられた処理値（ここでは、輝度値Ｙｖ）は、処理値の取り得る値のうち、最も明度が高い値（輝度値Ｙｖの取り得る最大値）である。白色範囲としては、例えば、処理値（ここでは、輝度値Ｙｖ）が予め決められた閾値（例えば、２０４）より大きい範囲を採用してよい。また、輝度値Ｙｖは、図５の実施例で用いられる処理値であるＣＭＹＫの合計値と同様に、色の変化に応じて、変化する。従って、輝度値Ｙｖを処理値として用いる場合にも、図５の実施例と同様に、対象画素Ｐｔが、オブジェクトのエッジ、または、１画素の幅の細線を表す場合に、エッジフラグがオンに決定される。
【００７７】
図７のＳ２３０ａでは、プロセッサ２１０は、４個の隣接画素のそれぞれのＲＧＢの階調値を用いて、隣接画素の色が予め決められた隣接白範囲内であるか否かを判断する。ＲＧＢの階調値としては、第１ビットマップデータによって表される階調値が用いられる。隣接白範囲は、最も明るい白を含む部分色範囲である。本実施例では、ＲＧＢの階調値を用いて得られる輝度値Ｙｖを用いて、隣接画素の色が隣接白範囲内であるか否かが判断される。最も明るい白に対応付けられた輝度値Ｙｖは、輝度値Ｙｖの取り得る値のうち、最も明度の高い値である（ここでは、輝度値Ｙｖの取り得る範囲の最大値）。隣接白範囲としては、例えば、輝度値Ｙｖが閾値Ｔｈｂより大きい色範囲を採用してよい。閾値Ｔｈｂは、例えば、輝度値Ｙｖが取り得る範囲の最大値の８０％程度の値（例えば、２０４）であってよい。４個の隣接画素のそれぞれの色の全てが隣接白範囲外である場合、対象画素は、オブジェクトの内部を表している可能性がある。この場合、Ｓ２３０ａの判断結果は、Ｎｏである（エッジフラグがオフである場合も、Ｓ２３０ａの判断結果は、Ｎｏである）。Ｓ２３０ａの判断結果がＮｏである場合、プロセッサ２１０は、Ｓ２９０へ移行する。エッジフラグがオンであり、かつ、４個の隣接画素のうち１以上の隣接画素の色が隣接白範囲内である、という条件が満たされる場合（Ｓ２３０ａ：Ｙｅｓ）、プロセッサ２１０は、Ｓ２４０へ移行する。Ｓ２４０、Ｓ２９０以降の処理は、図４の実施例と同じである。なお、Ｓ２９５では、対象画素ラインの全ての画素の処理が終了したか否かが、判断される。
【００７８】
以上のように、本実施例では、図８のエッジフラグ処理は、色材の単位面積当たりの量を表す階調値を用いずに、ＲＧＢの階調値を用いて行われる。従って、プロセッサ２１０は、処理対象の画素ラインとは異なる他の画素ラインのＲＧＢの階調値を色材の量を表す階調値に変換せずに、エッジフラグ処理を実行できる。この結果、図６で説明したように、複数の画素ラインのうちの一部の画素ラインずつ、ハーフトーン処理を実行できる。故に、複合機２００（図１）の制御装置２０２のように、小さい容量の記憶装置を備える画像処理装置が、印刷処理を実行できる。ただし、大きい容量の記憶装置を備える画像処理装置（例えば画像処理装置１００）が、図６〜図８の処理を実行してもよい。この場合、図６のＳ１２０〜Ｓ１５０のそれぞれの処理は、図２の実施例と同様に、全ての画素を対象として、１回ずつ実行されてもよい。
【００７９】
また、図８のエッジフラグ処理では、ＲＧＢの階調値を用いて得られる輝度値Ｙｖを用いて、エッジフラグをオンに設定するか否かが判断される。例えば、Ｓ３１０、Ｓ３２０では、輝度値Ｙｖを用いて、エッジ量に相当する重みＷ１、Ｗ２が算出される。また、Ｓ３３０、Ｓ３５０では、対象画素Ｐｔと両隣の画素とのそれぞれの輝度値Ｙｖを用いて、対象画素Ｐｔが細線画素の候補であるか否かが判断される。輝度値Ｙｖは、画素の色の変化に応じて変化する。従って、輝度値Ｙｖを用いることによって、適切に、重みＷ１、Ｗ２を算出でき、そして、対象画素Ｐｔが細線画素の候補であるか否かを判断できる。
【００８０】
Ｃ．変形例：
（１）対象画素がエッジ画素であると判断するための条件は、図５、図８のＳ３１０、Ｓ３２０で算出される重みＷ１、Ｗ２の少なくとも一方がゼロよりも大きいこと（Ｓ３７０）に代えて、他の種々の条件であってよい。例えば、エッジ検出フィルタとしては、図５、図８の実施例のフィルタに代えて、ソーベルフィルタやプレウィットフィルタなどの、エッジを検出可能な任意のフィルタを採用可能である。
【００８１】
（２）対象画素が１画素の幅の細い線を表す細線画素の候補であるか否かを判断するための条件は、図５、図８のＳ３３０、Ｓ３５０で説明した条件に変えて、他の種々の条件であってよい。例えば、対象画素Ｐｔの特定の方向側に隣接する第１画素の処理値と、反対側に隣接する第２画素の処理値と、の間の差の絶対値が、基準値未満であることが、条件に含まれても良い。図５、図８のＳ３３０のＶＮ１＝ＶＮ３という条件は、ＶＮ１とＶＮ３との間の差の絶対値が１未満であるという条件と、同じである。同様に、図５、図８のＳ３５０のＶＵ２＝ＶＤ２という条件は、ＶＵ２とＶＤ２との間の差の絶対値が１未満であるという条件と、同じである。いずれの場合も、基準値は、１よりも大きくてもよい。
【００８２】
（３）図５、図８の処理で用いられる処理値としては、対象画素の色の変化に応じて変化する種々の値を採用可能である。例えば、図５のＳ３００で、ＣＭＹＫの階調値の重み付き合計値が、処理値として算出されてもよい。各色材の重みは、例えば、各色材のベタ領域の反射濃度が低い（すなわち、暗い）ほど大きな値に設定されてよい。また、図８のＳ３００ａで、緑Ｇの階調値が、そのまま、処理値として採用されてもよい。このように、対象画素の濃度と相関を有する値を採用してよい。また、ハーフトーン処理の対象画像データによって表される階調値を用いて得られる値を、処理値として用いてもよい。図８の実施例では、処理値である輝度値Ｙｖは、ＲＧＢの階調値を用いて得られる値である。対象画像データのＣＭＹＫの階調値は、このＲＧＢの階調値の色変換（図６：Ｓ１２０）によって得られる値である。このようなＣＭＹＫの階調値に、逆の色変換を行うことによって、元のＲＧＢの階調値を得ることができる。従って、処理値である輝度値Ｙｖは、対象画像データ（ここでは、第２ビットマップデータ）によって表されるＣＭＹＫの階調値を用いて得られる値である、ということができる。一般的には、画素に関する種々の値、換言すれば、画素に対応付けられた種々の値を、処理値として採用可能である。
【００８３】
（４）図４、図７のＳ２７０のように対象画素の濃度に拘わらずに対象画素にドットを形成することに決定するための条件は、図４、図７の実施例の条件に代えて、他の種々の条件であってよい。例えば、Ｓ２１０、Ｓ２１０ａの条件は、対象画素の色が、最も明るい白を含む一部の色範囲である対象白範囲の外の色であること、であってもよい。
【００８４】
例えば、図４のＳ２１０の条件は、対象画素のＣＭＹＫの階調値の合計値が対象白範囲の外であることであってもよい。最も明るい白に対応付けられたＣＭＹＫの階調値の合計値は、合計値の取り得る値のうち、最も明度の高い値である（例えば、合計値＝０）。そして、対象白範囲は、合計値が閾値未満である色範囲であってよい（閾値は、ゼロ以上）。なお、ＣＭＹＫの階調値の合計値に代えて、ＣＭＹＫの階調値の重み付き合計値を用いてもよい。また、対象白範囲は、Ｃの階調値の範囲とＭの階調値の範囲とＹの階調値の範囲とＫの階調値の範囲とによって定められてもよい。例えば、対象白範囲は、ＣＭＹＫのそれぞれの階調値が、各色成分に対応付けられた閾値未満である色範囲であってよい。
【００８５】
また、図７のＳ２１０ａの条件は、対象画素のＲＧＢの階調値を用いて得られる輝度値Ｙｖが対象白範囲の外であることであってもよい。最も明るい白に対応付けられた輝度値Ｙｖは、輝度値Ｙｖの取り得る値のうち、最も明度の高い値である（例えば、輝度値Ｙｖの取り得る値のうちの最大値）。そして、対象白範囲は、輝度値Ｙｖが閾値より大きい色範囲であってよい（閾値は、輝度値Ｙｖの取り得る最大値以下）。また、対象白範囲は、Ｒの階調値の範囲とＧの階調値の範囲とＢの階調値の範囲とによって定められてもよい。例えば、対象白範囲は、ＲＧＢのそれぞれの階調値が、各色成分に対応付けられた閾値より大きい色範囲であってよい。
【００８６】
いずれの場合も、Ｓ２１０、Ｓ２１０ａの判断結果がＮｏである場合、処理は、Ｓ２９０に移行してもよい。
【００８７】
また、図４、図７の処理において、Ｓ２６０が省略されてもよい。この場合、Ｓ２５０の判断結果がＹｅｓである場合、処理は、Ｓ２７０へ移行する。また、Ｓ２８０が省略されてもよい。また、Ｓ２１０、Ｓ２１０ａが省略されてもよい。また、Ｓ２３０、Ｓ２３０ａの条件から、隣接画素に関する条件が省略されてもよい。
【００８８】
また、図４、図７の処理において、条件判断の順番は、任意の順番であってよい。例えば、Ｓ２１０、Ｓ２１０ａが、Ｓ２３０、Ｓ２３０ａの後に実行されてもよい。また、Ｓ２５０が、Ｓ２３０よりも前に実行されてもよい。
【００８９】
いずれの場合も、コンピュータや論理回路がデータを処理する場合、処理対象の値は、デジタルデータによって表される。デジタルデータは、整数または実数を、離散的に表現可能である。ここで、「値が閾値よりも大きい」という条件は、その閾値よりも１段階大きな大閾値を用いて表現される「値が大閾値以上である」という条件と同じである。同様に、「値が閾値よりも小さい」という条件は、その閾値よりも１段階小さい小閾値を用いて表現される「値が小閾値以下である」という条件と同じである。
【００９０】
（５）図４、図７のＳ２８０、Ｓ２９０で行われるハーフトーン処理としては、誤差拡散法に基づく処理が行われてもよい。また、上記の各実施例では、印刷部２９０によって形成可能なドットのサイズは、１種類である。すなわち、各画素のドットの形成状態は、ドットが形成される状態と、ドットが形成されない状態と、の２値で表される。これに代えて、印刷部２９０は、互いにサイズが異なる複数種類のドットを形成可能であってもよい。例えば、印刷部２９０は、大ドット、中ドット、小ドットの３種類のドットを用いて画像を印刷してもよい。この場合、ドットの形成状態は、３種類のドットのいずれかが形成される３種類の状態と、ドットが形成されない状態と、の４値で表される。複数種類のドットが印刷に利用される場合、図４、図７のＳ２７０では、最も小さいドットよりも大きなサイズのドットが形成されることに決定されることが好ましい。このサイズは、予め決められていてもよく、対象画素の濃度に応じて決定されてもよい。
【００９１】
（６）図２、図６の印刷処理で用いられる入力データとしては、アプリケーションプログラムによって提供される画像データに代えて、他の種々の画像データを利用可能である。例えば、不揮発性記憶装置１３０に格納された画像データが、入力データとして用いられてもよい。または、画像処理装置１００に接続された外部の記憶装置（例えば、ＵＳＢメモリ）に格納された画像データが、入力データとして用いられてもよい。いずれの場合も、入力データは、ユーザによって指定されてよい。また、入力データのデータ形式としては、任意の形式を採用可能である（例えば、ＪＰＥＧ（Joint Photographic Experts Group）形式や、ＰＤＦ（Portable Document Format）形式）。また、入力データの色空間は、ＲＧＢ色空間とは異なる他の色空間であってもよい（例えば、ＹＣｂＣｒ色空間、ＣＭＹＫ色空間など）。
【００９２】
（７）対象画素が細線画素の候補であるか否かの判断結果は、印刷処理（具体的には、ハーフトーン処理）に代えて、他の種々の画像処理に利用できる。例えば、画像中の文字を認識する文字認識処理に、細線画素の候補の判断結果を適用してもよい。文字認識処理が、細線画素の候補の画素を文字を表す画素として用いて文字を認識すれば、小さい文字を適切に認識できる。このように、対象画素が細線画素の候補であるか否かを判断する処理の対象の画像データとしては、印刷処理に用いられる画像データ（例えば、入力画像データや、第１ビットマップデータや、ハーフトーン処理の対象の画像データなど）に代えて、他の任意の画像データを採用してよい。
【００９３】
（８）印刷部２９０によって印刷に利用される色材は、ＣＭＹＫの４種類の色材に代えて、他の任意の色材であってよい。例えば、ブラックＫの色材のみが利用されてもよい。このように１つの色材のみが印刷に利用される場合、図４のＳ２６０、図７のＳ２６０は省略される。
【００９４】
（９）印刷処理を実行する画像処理装置１００は、パーソナルコンピュータとは異なる種類の装置（例えば、デジタルカメラ、スキャナ、スマートフォン）であってもよい。また、複合機２００の制御装置２０２のように、印刷処理を実行する画像処理装置が、印刷部２９０を備える印刷装置（例えば、複合機２００）の一部であってもよい。また、ネットワークを介して互いに通信可能な複数の装置（例えば、コンピュータ）が、画像処理装置による画像処理の機能を一部ずつ分担して、全体として、画像処理の機能を提供してもよい（これらの装置を備えるシステムが画像処理装置に対応する）。
【００９５】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、専用のハードウェア回路が、図２、図６のＳ１３０のハーフトーン処理を実行してもよい。
【００９６】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体（例えば、一時的ではない記録媒体）に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体（コンピュータ読み取り可能な記録媒体）に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種ＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【００９７】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００９８】
１００...画像処理装置、１１０...プロセッサ、１２０...揮発性記憶装置、１３０...不揮発性記憶装置、１３２...プログラム、１４０...表示部、１５０...操作部、１９０...インタフェース、２００...複合機、２０２...制御装置、２１０...プロセッサ、２２０...揮発性記憶装置、２３０...不揮発性記憶装置、２３２...プログラム、２４０...表示部、２５０...操作部、２７０...通信インタフェース、２８０...スキャナ部、２９０...印刷部、ＮＴ...ネットワーク、Ｄ１...第１方向、Ｄ２...第２方向、ＩＭ...画像、ＩＭａ...部分画像、ＩＭｂ...ドット画像、ＩＭｃ...参考ドット画像、Ｔ１、Ｔ２...文字列、Ｌ１、Ｌ２...第２線、Ｐｘ...画素、ＯＢ１〜ＯＢ３...オブジェクト
【図１】
2018056873.tif 000003
【図２】
2018056873.tif 000004
【図３】
2018056873.tif 000005
【図４】
2018056873.tif 000006
【図５】
2018056873.tif 000007
【図６】
2018056873.tif 000008
【図７】
2018056873.tif 000009
【図８】
2018056873.tif 000010