(57)【要約】【課題】演算量やメモリ参照回数が少なく、高速なエッジ処理を実現できるようにする。【解決手段】エッジ処理部２４のエッジ検出部２４Ａは注目画素の下側，右側，上側に存在するエッジを検出する。長さ計算部２４Ｂは、縦方向または横方向の直線に沿って連なる黒色画素列の長さを計算する。置換部２４Ｃは、計算して得られた長さに基づき、置換パターンを決定して、縦方向または横方向の直線に沿って連なる黒色画素（Ｌドット）について、ドットの異なるサイズへの置換を行う。【選択図】図１
2009039880.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２種類のサイズの異なるドットを形成可能な印刷装置を用いて画像を印刷するときに、複数の画素から構成される前記画像を表す画像データを処理する画像処理装置であって、
前記画像データは、前記画素に対応する前記ドットのサイズに関する情報を含み、
前記画像データに基づいて、前記ドットで形成すべき前記画素が複数集まって構成される画素集合体について、前記画素集合体の最外郭を検出する最外郭検出部と、
前記画像データに基づいて、前記画素集合体を構成する前記画素のうち、前記最外郭を構成する第１の画素から所定方向の直線に沿って連なる画素列の長さを算出する算出部と、
前記長さに基づいて、少なくとも前記第１の画素に対応する前記ドットのサイズを、最大サイズ以外のなかから決定し、前記画像データにおいて、前記第１の画素に対応する前記ドットのサイズに関する情報を、前記決定したサイズに置き換える置換部と、
を備える、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記置換部は、前記長さに基づいて、前記直線において前記第１の画素に隣接する第２の画素について、前記第２の画素に対応する前記ドットのサイズを、前記最大サイズ以外のなかから決定し、前記画像データにおいて、前記第２の画素に対応する前記ドットのサイズに関する情報を、前記第２の画素について前記決定したサイズに置き換える、画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記置換部は、前記長さに基づいて、前記直線に位置する画素であって、前記画素集合体の最外郭を構成する画素のうち、前記第１の画素とは異なる第３の画素について、前記第３の画素に対応する前記ドットのサイズを、前記最大サイズ以外のなかから決定し、前記画像データにおいて、前記第３の画素に対応する前記ドットのサイズに関する情報を、前記第３の画素について前記決定したサイズに置き換える、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記置換部は、前記長さに基づいて、前記直線において前記第３の画素に隣接する第４の画素について、前記第４の画素に対応する前記ドットのサイズを、前記最大サイズ以外のなかから決定し、前記画像データにおいて、前記第４の画素に対応する前記ドットのサイズに関する情報を、前記第４の画素について前記決定したサイズに置き換える、画像処理装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の画像処理装置において、
前記置換部は、前記長さと、前記ドットのサイズと、を対応付けるテーブルを備え、前記算出した前記長さを基に、前記テーブルを参照して、前記ドットのサイズを導き出す、画像処理装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の画像処理装置において、
前記所定方向は、第１の方向と、該第１の方向と直交する第２の方向であると共に、
前記置換部は、前記第２の方向の直線に関して算出した前記長さに基づいて、前記ドットのサイズに関する情報を置き換える場合に、前記第１の方向の直線に関して算出した前記長さに基づいて、前記ドットのサイズに関する情報の置き換えがなされている画素については、前記第２の方向の直線に関して算出した前記長さが、前記第１の方向の直線に関して算出した前記長さよりも小さい場合に、置き換えを実行する画像処理装置。
【請求項７】
少なくとも２種類のサイズの異なるドットを形成可能な印刷装置を用いて画像を印刷するときに、複数の画素から構成される前記画像を表す画像データを処理する画像処理方法であって、
前記画像データは、前記画素に対応する前記ドットのサイズに関する情報を含み、
前記画像データに基づいて、前記ドットで形成すべき前記画素が複数集まって構成される画素集合体について、前記画素集合体の最外郭を検出する工程と、
前記画像データに基づいて、前記画素集合体を構成する前記画素のうち、前記最外郭を構成する第１の画素から所定方向の直線に沿って連なる画素列の長さを算出する工程と、
前記長さに基づいて、少なくとも前記第１の画素に対応する前記ドットのサイズを、最大サイズ以外のなかから決定する工程と、
前記画像データにおいて、前記第１の画素に対応する前記ドットのサイズに関する情報を、前記決定したサイズに置き換える工程と、
を含む、画像処理方法。
【請求項８】
少なくとも２種類のサイズの異なるドットを形成可能な印刷装置を用いて画像を印刷するときに、複数の画素から構成される前記画像を表す画像データを処理するためのコンピュータプログラムであって、
前記画像データは、前記画素に対応する前記ドットのサイズに関する情報を含み、
前記画像データに基づいて、前記ドットで形成すべき前記画素が複数集まって構成される画素集合体について、前記画素集合体の最外郭を検出する機能と、
前記画像データに基づいて、前記画素集合体を構成する前記画素のうち、前記最外郭を構成する第１の画素から所定方向の直線に沿って連なる画素列の長さを算出する機能と、
前記長さに基づいて、少なくとも前記第１の画素に対応する前記ドットのサイズを、最大サイズ以外のなかから決定する機能と、
前記画像データにおいて、前記第１の画素に対応する前記ドットのサイズに関する情報を、前記決定したサイズに置き換える機能と、
をコンピュータにおいて実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２種類以上のサイズの異なるドットを用いて画像を印刷するために、その画像を表す画像データを処理する技術に関するものである。
【背景技術】
【０００２】
紙や布、フィルムなどの各種印刷媒体にドットを形成して画像を印刷する印刷装置としては、インクジェットプリンタが知られている。このインクジェットプリンタは、シアン（Ｃ）やマゼンダ（Ｍ）、イエロ（Ｙ）、ブラック（Ｋ）といった各色のインクを印刷媒体に向けて吐出して、吐出したインクにより印刷媒体上にドットを形成して印刷を行う。
【０００３】
このような印刷装置にあっては、印刷する際、画像の輪郭（エッジ）部にインクを吐出したときに、付着したインクが画像の輪郭からはみ出てしまい、輪郭がぼやけてしまうといった不具合が発生することがあった。これは、インクが印刷媒体に付着したときに印刷媒体に滲んだために生じたもので、画像の輪郭部から滲み出てはみ出してしまったものである。このため、特に文字や記号等のテキスト画像を印刷したときに、文字や記号等の輪郭がはっきりせず、読みにくくなったり、見栄えが悪くなるなどといった問題が発生する恐れがあった。
【０００４】
そこで、従来において、このような問題を解決するために、例えば、下記の特許文献１に記載の技術では、画像を印刷する際に、エッジ処理として、画像の最外郭に形成すべきドットをより小さなサイズのドットに置き換えて形成し、その最外郭の内側に沿って形成すべきドットもより小さなサイズのドットに置き換えて形成するようにしていた。
【０００５】
なお、この種の関連する技術として、従来では、例えば、下記の特許文献２〜５に記載の技術が知られている。
【０００６】
【特許文献１】特開２００５−１７８１４４号公報
【特許文献２】特開２００３−４８３４０号公報
【特許文献３】特開２００４−１１４３０３号公報
【特許文献４】特許第２８８６１９２号
【特許文献５】特許第３０２９５３３号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記した従来のエッジ処理においては、パターンマッチングなどの手法を用いて処理を行っていたため、演算量やメモリ参照回数が多くなり、処理速度が遅くなるという問題があった。
【０００８】
従って、本発明の目的は、上記した従来技術の問題点を解決し、演算量やメモリ参照回数が少なく、高速なエッジ処理を実現できる画像処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【００１０】
［適用例１］
少なくとも２種類のサイズの異なるドットを形成可能な印刷装置を用いて画像を印刷するときに、複数の画素から構成される前記画像を表す画像データを処理する画像処理装置であって、
前記画像データは、前記画素に対応する前記ドットのサイズに関する情報を含み、
前記画像データに基づいて、前記ドットで形成すべき前記画素が複数集まって構成される画素集合体について、前記画素集合体の最外郭を検出する最外郭検出部と、
前記画像データに基づいて、前記画素集合体を構成する前記画素のうち、前記最外郭を構成する第１の画素から所定方向の直線に沿って連なる画素列の長さを算出する算出部と、
前記長さに基づいて、少なくとも前記第１の画素に対応する前記ドットのサイズを、最大サイズ以外のなかから決定し、前記画像データにおいて、前記第１の画素に対応する前記ドットのサイズに関する情報を、前記決定したサイズに置き換える置換部と、
を備える、画像処理装置。
【００１１】
このように、適用例１の画像処理装置では、画素集合体の最外郭を検出し、画素集合体内の画素のうち、その最外郭の画素から所定方向の直線に沿って連なる画素列の長さを算出し、その長さに基づいて、第１の画素に対応するドットのサイズを最大サイズ以外のなかから決定し、画像データにおけるその第１の画素に対応するドットのサイズに関する情報を、決定したサイズに置き換えるようにしている。なお、画素集合体の最外郭とは、画素集合体の輪郭（エッジ）を言い、最外郭を構成する画素とは、画素集合体を構成する画素のうち、画素集合体の輪郭に沿って、輪郭の最も近くに配置されている画素をいう。
【００１２】
従って、適用例１の画像処理装置では、無駄な演算やメモリ参照を減らすことができるので、演算量やメモリ参照回数が少なく、高速なエッジ処理を実現することができる。また、画像を印刷した際には、印刷された画素集合体の部分について、全体の濃さを落とすことなく、輪郭部において、第１の画素に対応するドット形成に起因する滲み出しを防止し、滲み出しによる不具合を軽減することができる。
【００１３】
［適用例２］
適用例１に記載の画像処理装置において、
前記置換部は、前記長さに基づいて、前記直線において前記第１の画素に隣接する第２の画素について、前記第２の画素に対応する前記ドットのサイズを、前記最大サイズ以外のなかから決定し、前記画像データにおいて、前記第２の画素に対応する前記ドットのサイズに関する情報を、前記第２の画素について前記決定したサイズに置き換える、画像処理装置。
【００１４】
このように構成することにより、最外郭を構成する第１の画素だけでなく、その内側に隣接する第２の画素についても、そのドット形成に起因する滲み出しを防止することができるので、輪郭部における滲み出しによる不具合をより一層軽減することができる。
【００１５】
［適用例３］
適用例２に記載の画像処理装置において、
前記置換部は、前記第１の画素に対応する前記ドットのサイズとして、前記第２の画素に対応する前記ドットについて決定するサイズよりも、小さいサイズを決定する、画像処理装置。
【００１６】
このようにドットのサイズを決定することにより、全体の濃さを落とすことなく、滲み出しによる不具合を効果的に軽減することができる。
【００１７】
［適用例４］
適用例１または適用例２に記載の画像処理装置において、
前記置換部は、前記長さに基づいて、前記直線に位置する画素であって、前記画素集合体の最外郭を構成する画素のうち、前記第１の画素とは異なる第３の画素について、前記第３の画素に対応する前記ドットのサイズを、前記最大サイズ以外のなかから決定し、前記画像データにおいて、前記第３の画素に対応する前記ドットのサイズに関する情報を、前記第３の画素について前記決定したサイズに置き換える、画像処理装置。
【００１８】
このように、最外郭を構成する画素について、算出した長さに基づいて、第１の画素だけでなく、直線上に位置する他の画素（第３の画素）についても、そのドットのサイズの置き換えを同時に行うことにより、それら画素について、長さの算出が１回で済むため、その分、処理速度を上げることができる。
【００１９】
［適用例５］
適用例４に記載の画像処理装置において、
前記置換部は、前記第３の画素に対応する前記ドットのサイズとして、前記第１の画素に対応する前記ドットについて決定するサイズと同じサイズを決定する、画像処理装置。
【００２０】
このようにドットのサイズを決定することにより、輪郭部における滲み出しによる不具合を均一的に軽減することができる。
【００２１】
［適用例６］
適用例４に記載の画像処理装置において、
前記置換部は、前記長さに基づいて、前記直線において前記第３の画素に隣接する第４の画素について、前記第４の画素に対応する前記ドットのサイズを、前記最大サイズ以外のなかから決定し、前記画像データにおいて、前記第４の画素に対応する前記ドットのサイズに関する情報を、前記第４の画素について前記決定したサイズに置き換える、画像処理装置。
【００２２】
このように、算出した長さに基づいて、第１及び第２の画素だけでなく、第３の画素の内側に隣接する第４の画素についても、そのドット形成に起因する滲み出しを防止することができるので、輪郭部における滲み出しによる不具合をさらに一層軽減することができる。また、算出した長さに基づいて、それら画素に対応するドットのサイズの置き換えを同時に行うことにより、それら画素について、長さの算出が１回で済むため、その分、処理速度をさらに上げることができる。
【００２３】
［適用例７］
適用例６に記載の画像処理装置において、
前記置換部は、前記第３の画素に対応する前記ドットのサイズとして、前記第４の画素に対応する前記ドットについて決定するサイズよりも、小さなサイズを決定する、画像処理装置。
【００２４】
このようにドットのサイズを決定することにより、全体の濃さを落とすことなく、滲み出しによる不具合を効果的に軽減することができる。
【００２５】
［適用例８］
適用例１ないし適用例７のいずれかに記載の画像処理装置において、
前記置換部は、前記長さと、前記ドットのサイズと、を対応付けるテーブルを備え、前記算出した前記長さを基に、前記テーブルを参照して、前記ドットのサイズを導き出す、画像処理装置。
【００２６】
このように構成することにより、演算量をさらに少なくすることができるため、より高速なエッジ処理を実現することができる。また、印刷媒体の種類や、インクなどの種類や、印刷装置におけるヘッドの種類などに応じて、テーブルを自由に設定することができるため、エッジ処理の実行に際して、フレキシブルな対応をとることができる。
【００２７】
［適用例９］
適用例１ないし適用例８のいずれかに記載の画像処理装置において、
前記所定方向は、第１の方向と、該第１の方向と直交する第２の方向であると共に、
前記置換部は、前記第２の方向の直線に関して算出した前記長さに基づいて、前記ドットのサイズに関する情報を置き換える場合に、前記第１の方向の直線に関して算出した前記長さに基づいて、前記ドットのサイズに関する情報の置き換えがなされている画素については、前記第２の方向の直線に関して算出した前記長さが、前記第１の方向の直線に関して算出した前記長さよりも小さい場合に、置き換えを実行する画像処理装置。
【００２８】
このように構成することにより、画像を印刷した際には、例えば、画素集合体が線画である場合に、より長い方向の輪郭部において同じサイズのドットが並ぶように形成できるので、より長い方向の輪郭をより滑らかに再現することができる。
【００２９】
［適用例１０］
適用例１ないし適用例９のいずれかに記載の画像処理装置において、
前記所定方向は、第１の方向と、該第１の方向とは直交する第２の方向であると共に、
前記置換部は、前記第２の方向の直線に関して算出した前記長さの値に基づいて、前記ドットのサイズに関する情報を置き換える場合に、既に、前記第１の方向の直線に関して算出した前記長さに基づいて、前記ドットのサイズに関する情報の置き換えがなされている画素については、前記情報の示すサイズよりも、今回置き換えようとしているサイズの方が、小さいサイズである場合に、置き換えを実行し、同じか大きいサイズである場合には、置き換えを実行しない、画像処理装置。
【００３０】
このように構成することにより、滲み出し不具合の解消に効果的でない、サイズの置き換えを排除することができるため、その分、処理速度を上げることができる。
【００３１】
［適用例１１］
適用例１ないし適用例１０のいずれかに記載の画像処理装置において、
前記算出部は、前記画素列の長さがｎ画素分（ｎは３以上の任意の整数）以上の長さである場合には、前記長さをｎであると算出する、画像処理装置。
【００３２】
このように構成することにより、演算量をさらに少なくすることができるため、より高速なエッジ処理を実現することができる。
【００３３】
［適用例１２］
少なくとも２種類のサイズの異なるドットを形成可能な印刷装置を用いて画像を印刷するときに、複数の画素から構成される前記画像を表す画像データを処理する画像処理方法であって、
前記画像データは、前記画素に対応する前記ドットのサイズに関する情報を含み、
前記画像データに基づいて、前記ドットで形成すべき前記画素が複数集まって構成される画素集合体について、前記画素集合体の最外郭を検出する工程と、
前記画像データに基づいて、前記画素集合体を構成する前記画素のうち、前記最外郭を構成する第１の画素から所定方向の直線に沿って連なる画素列の長さを算出する工程と、
前記長さに基づいて、少なくとも前記第１の画素に対応する前記ドットのサイズを、最大サイズ以外のなかから決定する工程と、
前記画像データにおいて、前記第１の画素に対応する前記ドットのサイズに関する情報を、前記決定したサイズに置き換える工程と、
を含む、画像処理方法。
適用例１２の画像処理方法によれば、適用例１と同様の効果を奏することができる。
【００３４】
［適用例１３］
少なくとも２種類のサイズの異なるドットを形成可能な印刷装置を用いて画像を印刷するときに、複数の画素から構成される前記画像を表す画像データを処理するためのコンピュータプログラムであって、
前記画像データは、前記画素に対応する前記ドットのサイズに関する情報を含み、
前記画像データに基づいて、前記ドットで形成すべき前記画素が複数集まって構成される画素集合体について、前記画素集合体の最外郭を検出する機能と、
前記画像データに基づいて、前記画素集合体を構成する前記画素のうち、前記最外郭を構成する第１の画素から所定方向の直線に沿って連なる画素列の長さを算出する機能と、
前記長さに基づいて、少なくとも前記第１の画素に対応する前記ドットのサイズを、最大サイズ以外のなかから決定する機能と、
前記画像データにおいて、前記第１の画素に対応する前記ドットのサイズに関する情報を、前記決定したサイズに置き換える機能と、
をコンピュータにおいて実現させるためのコンピュータプログラム。
適用例１３のコンピュータプログラムによれば、適用例１と同様の効果を奏することができる。
【００３５】
なお、本発明は、上記した画像処理装置などの装置発明の態様や画像処理方法などの方法発明としての態様や方法や装置を構築するためのコンピュータプログラムとしての態様に限ることなく、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．実施例の構成：
Ｂ．実施例の動作：
Ｂ−１．画像処理及び印刷処理：
Ｂ−２．エッジ処理の概要：
Ｂ−３．線画Ａに対するエッジ処理：
Ｂ−４．線画Ｂに対するエッジ処理：
Ｂ−５．線画Ｃに対するエッジ処理：
Ｃ．実施例の効果：
Ｄ．変形例：
【００３７】
Ａ．実施例の構成：
図１は本発明の一実施例としての画像処理装置を含む印刷システムの構成を示すブロック図である。図１に示す印刷システムは、画像処理装置１００と、その画像処理装置１００にケーブル等の有線または無線により接続される印刷装置２００と、で構成されている。このうち、画像処理装置１００は、パーソナルコンピュータから成り、主として、プログラムを実行することにより種々の処理や制御を行うＣＰＵ１１０と、プログラムを格納したり、データや情報を格納したりするためのメモリ１２０と、外部に接続される周辺機器との間でデータや情報のやりとりを行うための入出力インタフェース（Ｉ／Ｆ）部１３０と、を備えている。なお、上記構成要素以外にも、キーボードやポインティングデバイスなどの入力装置やディスプレイなどの表示装置や、ＣＤ−ＲＯＭドライブ装置などの記録再生装置なども備えているが、図では省略されている。
【００３８】
画像処理装置１００には、アプリケーション１０やプリンタドライバ２０などのプログラムがインストールされている。このうち、プリンタドライバ２０は、アプリケーション１０から出力された画像データを印刷データに変換する機能を実現させるためのプログラムである。このプリンタドライバ２０は、ＣＤ−ＲＯＭなどの各種記憶媒体（コンピュータ読み取り可能な記録媒体等）に記憶されて配布されたり、またはインターネットなど、各種通信手段を通じて配信されたりする。
【００３９】
画像処理装置１００におけるＣＰＵ１１０では、コンピュータに搭載されたオペレーティングシステム（図示せず）の下、アプリケーション１０やプリンタドライバ２０などのプログラムが動作している。アプリケーション１０は、例えば、画像編集などを行う機能を有し、画像データを作成したり、所望の処理を施したりする。ユーザは、アプリケーション１０のユーザインターフェースを介して、アプリケーション１０により編集した画像を印刷する指示を与えることができる。アプリケーション１０は、印刷の指示を受けると、プリンタドライバ２０に画像データを出力する。
【００４０】
プリンタドライバ２０は、アプリケーション１０から画像データを受け取り、この画像データを印刷データに変換し、印刷データを印刷装置２００に出力する。ここで、印刷データとは、印刷装置２００が解釈できる形式のデータであって、各種のコマンドデータと画素データとを有するデータである。また、コマンドデータとは、印刷装置２００に特定の動作の実行を指示するためのデータである。また、画素データとは、印刷される画像（印刷画像）を構成する画素に関するデータであり、例えば、ある画素に対応する印刷媒体上の位置に形成されるドットに関するデータ（ドットの色や大きさ等のデータ）である。
ここで、「ドット」とは、印刷装置から吐出されたインクが印刷媒体に着弾して形成される１つの領域をいう。
【００４１】
プリンタドライバ２０は、アプリケーション１０から出力された画像データを印刷データに変換するために、解像度変換処理部２１と、色変換処理部２２と、ハーフトーン処理部２３と、エッジ処理部２４と、ラスタライズ処理部２５と、を備えている。
【００４２】
このうち、解像度変換処理部２１は、アプリケーション１０から出力された画像データ（テキストデータ、イメージデータなど）を、印刷媒体に印刷する際の解像度に変換する解像度変換処理を行う。色変換処理部２２は、ＲＧＢデータをＣＭＹＫ色空間により表される多階調のＣＭＹＫデータに変換する色変換処理を行う。ハーフトーン処理部２３は、高階調数のデータを、印刷装置２００が形成可能な階調数のデータに変換するハーフトーン処理を行う。エッジ処理部２４は、印刷しようとする画像の輪郭部に形成すべきドットを、より小さいサイズのドットに置き換えて形成するエッジ処理を行う。ラスタライズ処理部２５は、マトリクス状の画像データを、印刷装置２００に転送すべきデータ順に変更する処理を行う。
【００４３】
また、エッジ処理部２４は、エッジ検出部２４Ａと、長さ計算部２４Ｂと、置換部２４Ｃと、を備えている。なお、このうち、エッジ検出部２４Ａは請求項における最外郭検出部に、長さ計算部２４Ｂは請求項における算出部に、置換部２４Ｃは請求項における置換部に、それぞれ相当する。
【００４４】
また、メモリ１２０には、エッジ処理などにおいて用いるために、出力バッファ３２及び長さ記録バッファ３４がそれぞれ用意されている。
【００４５】
一方、印刷装置２００は、インクジェットプリンタから成り、主として、プログラムを実行することにより印刷装置２００全体の制御や各種処理を行うＣＰＵ２１０と、プログラムを格納したり、データや情報を格納したりするためのメモリ２２０と、外部に接続される画像処理装置１００との間でデータや情報のやりとりを行うための入出力インタフェース（Ｉ／Ｆ）部２３０と、ＣＰＵ２１０からの指示に従って各ユニットを制御するユニット制御回路２４０と、ヘッドユニット２５０と、キャリッジユニット２６０と、搬送ユニット２７０と、を備えている。
【００４６】
ヘッドユニット２５０は、印刷媒体にインクを吐出するためのヘッド（図示せず）を有している。ヘッドはノズルを複数有し、各ノズルから断続的にインクを吐出する。このヘッドはキャリッジ（図示せず）に搭載されており、キャリッジが所定の走査方向に移動すると、ヘッドも走査方向に移動する。従って、ヘッドが走査方向に移動している間にインクを断続的に吐出することによって、走査方向に沿ったドットライン（ラスタライン）が印刷媒体に形成される。
【００４７】
キャリッジユニット２６０は、ヘッドを搭載するキャリッジを走査方向に往復移動させるための駆動装置である。キャリッジには、ヘッドの他、インクを収容するインクカートリッジも着脱可能に保持されている。
【００４８】
搬送ユニット２７０は、印刷媒体を印刷可能な位置に送り込み、印刷時に所定の搬送方向に所定の搬送量で印刷媒体を搬送させるための駆動装置である。搬送ユニット２７０は、例えば、給紙ローラ、搬送モータ、搬送ローラ、プラテン、及び排紙ローラ（図示せず）などによって構成されている。
【００４９】
Ｂ．実施例の動作：
Ｂ−１．画像処理及び印刷処理：
まず、図１に示す印刷システムにおける画像データに対する画像処理及び印刷処理の流れについて簡単に説明する。ユーザがアプリケーション１０上で印刷を指示すると、アプリケーション１０からプリンタドライバ２０に印刷命令が発せられる。この印刷命令には、例えばアプリケーション１０上で編集された画像データが含まれている。
【００５０】
次に、プリンタドライバ２０では、解像度変換処理部２１が、印刷命令の中に含まれている画像データを、例えば、７２０ｄｐｉ（横）×７２０ｄｐｉ（縦）の解像度のＲＧＢデータに変換する。続いて、色変換処理部２２は、ＲＧＢデータをＣＭＹＫデータに変換する。色変換処理後のＣＭＹＫデータは、例えば、２５６階調のＣＭＹＫデータとなっている。
【００５１】
次に、ハーフトーン処理部２３は、２５６階調のＣＭＹＫデータを、各画素につき２ビットのデータが割り当てられた４階調の多値データに変換する。具体的には、この多値データでは、各画素には、「００」、「０１」、「１０」または「１１」の多値のデータが割り当てられており、「００」が割り当てられた画素にはドットが形成されず、「０１」が割り当てられた画素には小サイズの小ドット（以下、Ｓドットという場合がある）が形成され、「１０」が割り当てられた画素には中サイズの中ドット（以下、Ｍドットという場合がある）が形成され、「１１」が割り当てられた画素には大サイズの大ドット（以下、Ｌドットという場合がある）が形成される。なお、これら小（Ｓ）サイズ、中（Ｍ）サイズ、大（Ｌ）サイズが、請求項におけるサイズに相当する。
【００５２】
次に、エッジ処理部２４は、変換して得られた多値データに対しエッジ処理を施す。エッジ処理では、印刷する画像の輪郭部に形成すべきドットのサイズを、より小さいサイズに置換する。なお、エッジ処理部２４におけるエッジ処理の内容については、後ほど詳細に説明する。
【００５３】
続いて、ラスタライズ処理部２５は、エッジ処理された多値データに対し、データ順序を印刷装置２００に転送すべきデータ順に変更する処理（ラスタライズ処理）を施し、得られたデータを印刷データとして印刷装置２００に出力する。
【００５４】
一方、印刷装置２００では、画像処理装置１００から印刷データが送られてくると、印刷処理を実行する。まず、ＣＰＵ２１０は、画像処理装置１００から入出力インタフェース部２３０を介して、印刷命令と共に印刷データを受信し、受信した印刷データに含まれる各種コマンドの内容を解析する。
【００５５】
そして、その解析結果を基に、まず、ＣＰＵ２１０は、ユニット制御回路２４０を介して、搬送ユニット２７０を制御する。この制御により、搬送ユニット２７０は、印刷すべき紙（印刷媒体）を印刷装置２００内に供給させ、印刷開始位置に紙を位置決めする。紙が印刷開始位置に位置決めされたとき、ヘッドの少なくとも一部のノズルは、紙と対向している。
【００５６】
次に、ＣＰＵ２１０は、ユニット制御回路２４０を介して、キャリッジユニット２６０を制御する。この制御により、キャリッジユニット２６０は、ヘッドを搭載したキャリッジを走査方向に移動させる。また、ＣＰＵ２１０は、ユニット制御回路２４０を介して、印刷データに基づいてヘッドユニット２５０を制御する。この制御により、ヘッドユニット２５０は、走査方向に沿って移動するヘッドから、印刷データに基づいてインクを断続的に吐出させ、吐出されたインク滴が紙上に着弾することにより、紙上にドットを形成させる。さらに、ＣＰＵ２１０は、搬送ユニット２７０を制御し、紙を搬送方向に搬送させて、ヘッドに対し相対的に移動させる。これにより、ヘッドは、先ほど形成されたドットの位置とは異なる位置に、ドットを形成することが可能になる。
【００５７】
こうして、印刷するためのデータがなくなるまで、ドット形成や搬送などの処理を繰り返し、ドットから構成される画像を紙に印刷する。その後、印刷するためのデータがなくなれば、印刷処理を終了する。
【００５８】
Ｂ−２．エッジ処理の概要：
次に、上記したエッジ処理について、さらに詳細に説明する。図２は図１におけるエッジ処理部２４において実行されるエッジ処理の処理フローを示すフローチャートであり、図３は印刷対象である画像の一例と図１における出力バッファ３２内及び長さ記録バッファ３４内の状態を示す説明図である。図３において、（ａ）は、印刷しようとする画像を示し、（ｂ）は、その画像に対応した出力バッファ３２内の状態を示し、（ｃ）は、その画像に対応した長さ記録バッファ３４内の状態を示している。なお、以下では、図３（ａ）に示す画像４０を印刷対象とするものとして説明する。
【００５９】
画像４０は、図３（ａ）に示すように、線画Ａ，Ｂ，Ｃの３つから成っている。線画Ａは、横４×縦１１の黒色画素によって構成されている。線画Ｂは、横８×縦４の黒色画素によって構成されている。線画Ｃは、横６×縦６の黒色画素によって構成されている。ここで、黒色画素は、印刷の際にドットで形成すべき画素であり、線画は、これらの画素が複数集まって構成される画素集合体の一種である。従って、画像４０における線画Ａ，Ｂ，Ｃは、請求項における画素集合体に相当する。また、図３（ａ）において、×印は、後述する注目画素を示しており、また、実線矢印は、その注目画素が移動する軌跡を示している。なお、図３（ｂ），（ｃ）では、出力バッファ３２及び長さ記録バッファ３４は、画像４０全体を記憶させることが可能な記憶容量を有しているように描いてあるが、実際には、それだけの記憶容量は必要なく、例えば、１８０ライン分くらい記憶させることができる記憶容量を用意して、データをいわゆるバンド単位で出し入れするようにしている。
【００６０】
そこで、図２に示す処理が開始されると、まず、エッジ処理部２４は、ハーフトーン処理部２３において階調変換して得られた画像データ（すなわち、４階調の多値データ）を、メモリ１２０内の出力バッファ３２に読み込む（ステップＳ１０２）。なお、ハーフトーン処理部２３も、出力バッファ３２を利用して階調変換処理を行っている場合には、階調変換して得られた画像データは、既に、出力バッファ３２に格納されているので、その場合には、読み込みを行う必要はない。
【００６１】
出力バッファ３２内では、図３（ｂ）に示すように、読み込まれた画像データ（多値データ）のうち、黒色画素の部分は、全て、Ｌドット（大ドット）となっており、それ以外の部分は、全て、ドット無しとなっている。なお、実際には、前述したとおり、Ｌドットが形成される画素には、多値データとして「１１」が割り当てられていることになり、ドットなしの画素には、多値データとして「００」が割り当てられていることになる。
【００６２】
次に、エッジ処理部２４は、メモリ１２０内の長さ記録バッファ３４の初期化を行う（ステップＳ１０４）。この初期化によって、長さ記録バッファ３４内は、図３（ｃ）に示すように、黒色画素に対応する部分の値が、全て、初期値に設定される。初期値としては、長さ５以上の値が用いられる。なお、理解を容易にするため、図３（ｃ）では、初期値（すなわち、長さ５以上の値）を「−」で記述している。この場合の長さについては、後ほど説明する。
【００６３】
図４は図２における下側エッジ置換処理の処理フローを示すフローチャートであり、図５は図２における水平方向置換処理の処理フローを示すフローチャートであり、図６は図２における上側エッジ置換処理の処理フローを示すフローチャートである。
【００６４】
次に、エッジ処理部２４は、画像４０における左上の画素を注目画素として設定する（ステップＳ１０６）。そして、エッジ処理部２４におけるエッジ検出部２４Ａは、その注目画素の下側にエッジが存在するか否かを判定する（ステップＳ１０８）。画像４０において、エッジは各線画Ａ，Ｂ，Ｃの最外郭に当たる。従って、注目画素の下側にエッジがある状態とは、具体的には、注目画素がドット無しで、その１つ下側の画素がＬドットである状態をいう。そこで、判定の結果、注目画素の下側にエッジがある場合、エッジ処理部２４は、図４に示す下側エッジ置換処理を行い（ステップＳ１１０）、無い場合は、次の処理に移行する。
【００６５】
次に、エッジ処理部２４におけるエッジ検出部２４Ａは、その注目画素の右側にエッジが存在するか否かを判定する（ステップＳ１１２）。注目画素の右側にエッジがある状態とは、具体的には、注目画素がドット無しで、その１つ右側の画素がＬドットである状態をいう。そこで、判定の結果、注目画素の右側にエッジがある場合、エッジ処理部２４は、図５に示す水平方向エッジ置換処理を行い（ステップＳ１１４）、エッジが無い場合は、次の処理に移行する。
【００６６】
次に、エッジ処理部２４におけるエッジ検出部２４Ａは、その注目画素の上側にエッジが存在するか否かを判定する（ステップＳ１１６）。注目画素の上側にエッジがある状態とは、具体的には、注目画素がドット無しで、その１つ上側の画素がＬドットである状態をいう。判定の結果、注目画素の上側にエッジがある場合、エッジ処理部２４は、図６に示す上側エッジ置換処理を行い（ステップＳ１１８）、エッジが無い場合は、次の処理に移行する。
【００６７】
その後、エッジ処理部２４は、注目画素を移動させながら、上記の処理を繰り返す。すなわち、エッジ処理部２４は、図３（ａ）に示すように、ステップＳ１０６で設定した左上の画素を始点として、注目画素を左から右に１画素ずつ移動させ（ステップＳ１２２）、右端まで来たら（ステップＳ１２０  Ｙｅｓ）、１ライン下の左端に移動させ（ステップＳ１２６）、再び左から右に１画素ずつ移動させ（ステップＳ１２２）、以下、同様の移動を繰り返し、画像４０の下端まで来たら（ステップＳ１２４  Ｙｅｓ）、処理を終了する。
【００６８】
Ｂ−３．線画Ａに対するエッジ処理：
それでは、画像４０における各線画Ａ，Ｂ，Ｃに対し、具体的にどのようなエッジ処理がなされるかについて、線画Ａから順に説明する。
【００６９】
図７は図３の線画Ａに対するエッジ処理によるドットサイズの置換の様子を示す説明図である。線画Ａは、前述したとおり、横４×縦１１の黒色画素によって構成されており、縦方向が横方向よりも長くなっているため、図７に示すように、縦方向において同じサイズのドットが並ぶよう、ドットサイズの置換を行い、長い方向のエッジをより滑らかに再現できるようにしている。
【００７０】
具体的には、線画Ａに対しては、注目画素の移動に従って、次のようにエッジ処理がなされることになる。図８は図３の出力バッファ及び長さ記録バッファのうち、線画Ａに対応する部分の状態遷移を、注目画素の下側にエッジがある場合について示した説明図である。図８において、上段は出力バッファ内の状態遷移を、下段は長さ記録バッファ内の状態遷移を、それぞれ示しており、左から右に向かって時間は進んでいる。また、×印は注目画素を示している。なお、これらのことは、以降の図においても同様である。
【００７１】
図８（ａ）に示す状態は初期状態であり、注目画素が、線画Ａにおける左上の黒色画素（Ｌドット）の、１つ上側に位置している状態である。従って、エッジ処理部２４におけるエッジ検出部２４Ａは、図２のステップＳ１０８において、注目画素の下側にエッジが存在するか否かを判定し、判定の結果、下側にエッジが存在するため、図４に示す下側エッジ置換処理を実行する（ステップＳ１１０）。
【００７２】
下側エッジ置換処理が開始されると、エッジ処理部２４では、まず、長さ計算部２４Ｂが、注目画素の下側に、縦方向の直線に沿って連なる黒色画素列の長さＤを計算する（ステップＳ２０２）。長さＤは、１画素（すなわち、１ドット）分の長さを「１」とする。従って、この場合、線画Ａの縦方向は１１画素であるため、Ｄ＝１１となる。
【００７３】
次に、エッジ処理部２４は、この計算して得られた長さＤに基づき、注目画素の下側に、縦方向の直線に沿って連なる黒色画素（Ｌドット）について、ドットの異なるサイズへの置換を行う。本実施例では、予め、長さＤに応じて、ドットサイズの置換パターンがそれぞれ図９に示すごとくに設定されている。
【００７４】
図９は長さＤとドットサイズの置換パターンとの対応関係を示す説明図である。長さＤが４以下である場合には、図９（ａ）に示すように、長さＤ毎に、それぞれ、独自の置換パターンとなっているが、長さＤが５以上である場合には、図９（ｂ）に示すように、長さＤの値に関わらず、左右両端の各々２画素がＳＭ，ＭＳに置き換えられる置換パターン（以下、端部向け置換パターンという場合がある。）となっている。
【００７５】
このような置換パターンにてドットサイズの置換を行うために、エッジ処理部２４は、２種類のパターンテーブルを持っている。
【００７６】
すなわち、長さＤが４以下である場合のドットサイズの置換には、各ドットサイズ｛Ｓ，Ｍ，Ｌ｝＝｛１，２，３｝に対応付けた、次のようなパターンテーブルを利用する。
【００７７】
replace_pattern1[4][4]={{2,0,0,0},{2,2,0,0},{2,3,2,0},{1,3,3,1}}
また、長さＤが５以上である場合の、両端の各々２画素のドットサイズの置換には、次のようなパターンテーブルを利用する。
【００７８】
replace_pattern2[2][2]={ {1,2},{2,1}}
そこで、次に、エッジ処理部２４は、ステップＳ２０２で得られた長さＤが４より大きい（Ｄ＞４）か否かを判定する（ステップＳ２０４）。この場合、長さＤは、Ｄ＝１１で、４より大きいため、エッジ処理部２４における置換部２４Ｃは、長さＤが５以上である場合の端部向け置換パターン（パターンテーブルreplace_pattern2）を読み出す（ステップＳ２１２）。そして、エッジ処理部２４は、その置換パターンに基づいて、図８（ｂ）に示すように、注目画素の下側に縦方向の直線に沿って連なる黒色画素のうち、上端の２画素（Ｌドット）を、ＳドットとＭドットにそれぞれ置換する（ステップＳ２１４）。なお、この場合、長さ記録バッファ３４には何ら値を記録しない。こうして、図４に示す下側エッジ置換処理は終了する。
【００７９】
次に、エッジ処理部２４におけるエッジ検出部２４Ａは、注目画素の右側、上側にエッジが存在するか否かの判定を行い（ステップＳ１１２，Ｓ１１６）、エッジが存在しないため、注目画素を右に１画素分移動させる（ステップＳ１２２）。そして、図８（ｃ）に示すように、移動後の注目画素の下側には、エッジが存在し、縦方向の直線に沿って連なる黒色画素列の長さＤは、Ｄ＝１１であるため、エッジ処理部２４は、前回と同様にして、上端の２画素（Ｌドット）を、ＳドットとＭドットにそれぞれ置換する。エッジ処理部２４は、このような置換処理を、注目画素の移動に従って合計４回行う。その結果、出力バッファ３２内は、図８（ｅ）に示す状態となる。
【００８０】
ここで、長さ記録バッファ３４に何ら値を記録しなかったのは、次の理由による。長さ記録バッファ３４は、後述するように、線画における縦方向と横方向のそれぞれ線幅（すなわち、各方向の直線に沿って連なる黒色画素列の長さ）を比較するために用いるバッファである。初期値「−」は、十分線幅が長い状態であるとみなすように対応づけられており、今回の処理の対象となった縦方向の線幅（すなわち、注目画素の下側に縦方向の直線に沿って連なる黒色画素列の長さＤ）は、Ｄ＝１１と十分長く、初期値を更新する必要がないからである。もし、仮に、縦方向の線幅が、Ｄ＜５ の場合には、長さ記録バッファ３４に長さＤの値を設定する処理を行うことになる。
【００８１】
図１０は図３の出力バッファ及び長さ記録バッファのうち、線画Ａに対応する部分の状態遷移を、注目画素の右側にエッジがある場合について示した説明図である。図１０（ａ）に示す状態は、図８（ｅ）に示す状態から、注目画素が、移動して１ライン下に移った後、線画Ａにおける左上の黒色画素（Ｓドット）の、１つ左側に位置している状態である。
【００８２】
この状態において、エッジ処理部２４は、再び、注目画素に対し下側エッジ、右側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２）、その判定の結果、注目画素の下側にはエッジは存在しないが、右側にはエッジが存在するため、図５に示す水平方向エッジ置換処理を実行する（ステップＳ１１４）。
【００８３】
水平方向エッジ置換処理が開始されると、エッジ処理部２４では、まず、長さ計算部２４Ｂが、注目画素の右側に、横方向の直線に沿って連なる黒色画素列の長さＤを計算する（ステップＳ３０２）。この場合、線画Ａの横方向は４画素であるため、Ｄ＝４となる。
【００８４】
次に、エッジ処理部２４は、この計算して得られた長さＤに基づき、注目画素の右側に、横方向の直線に沿って連なる黒色画素（Ｓドット）について、ドットの異なるサイズへの置換を行う。
【００８５】
そこで、エッジ処理部２４は、長さＤが４より大きい（Ｄ＞４）か否かを判定する（ステップＳ３０４）。この場合、長さＤは、Ｄ＝４で、４より大きくないため、エッジ処理部２４における置換部２４Ｃは、長さＤの値（Ｄ＝４）に対応した置換パターン（パターンテーブルreplace_pattern1）を読み出す（ステップＳ３０６）。そして、エッジ処理部２４は、長さ計算の対象となった、注目画素の右側に連なる４つの黒色画素を、左側から順にＰ１，Ｐ２，Ｐ３，Ｐ４として設定する（ステップＳ３０８）。
【００８６】
次に、エッジ処理部２４は、これら画素Ｐ１〜Ｐ４のうち、まず、画素Ｐ１について（ステップＳ３１０）、長さ記録バッファ３４内に記録されている値と、長さＤの値（Ｄ＝４）と、を比較する（ステップＳ３１２）。この場合、長さ記録バッファ３４には、図１０（ａ）に示すように、左端の画素Ｐ１について、初期値「−」（すなわち、５以上の値）が記録されているため、その記録されている値（すなわち、初期値）は、長さＤの値（Ｄ＝４）より大きい（初期値＞４）。従って、エッジ処理部２４は、読み出した置換パターンに基づいて、左端の画素Ｐ１を置換する（ステップＳ３２４）。この場合、長さＤは４であって（Ｄ＝４）、それに対応する置換パターンは、図９に示すように｛Ｓ，Ｌ，Ｌ，Ｓ｝であるため、図１０（ｂ）に示すとおり、左端の画素Ｐ１（Ｓドット）は、同じサイズのＳドットに置換される。さらに、エッジ処理部２４は、画素Ｐ１について、長さ記録バッファ３４に初期値が記録されているため（ステップＳ３２６）、図１０（ｂ）に示すように、その記録を長さＤの値（Ｄ＝４）に書き換える（ステップＳ３２８）。
【００８７】
そして、エッジ処理部２４は、画素Ｐ２，Ｐ３，Ｐ４についても、同様の処理を行う（ステップＳ３２０，Ｓ３２２）。その結果、図１０（ｂ）に示すように、画素Ｐ１，Ｐ２，Ｐ３，Ｐ４は、上記した置換パターン｛Ｓ，Ｌ，Ｌ，Ｓ｝に従って、Ｓドット，Ｌドット，Ｌドット，Ｓドットにそれぞれ置換される。また、長さ記録バッファ３４においても、画素Ｐ１，Ｐ２，Ｐ３，Ｐ４について、それぞれの記録が長さＤの値（Ｄ＝４）に書き換えられる。こうして、図５に示す水平方向エッジ置換処理は終了する。
【００８８】
次に、エッジ処理部２４は、注目画素に対し上側エッジの有無を判定し（ステップＳ１１６）、エッジが存在しないため、注目画素を右に移動させるが、図１０（ｂ）に示すように、注目画素の右側にはエッジが存在するため、図５のステップＳ３０２で計算した長さＤの値（この場合、Ｄ＝４）だけ、注目画素を移動させる（ステップＳ１２２）。この結果、注目画素は、右側に横方向の直線に沿って連なる黒色画素を飛び越えて移動することになる。
【００８９】
その後、注目画素が移動して１ライン下に移った後、線画Ａにおける左端の黒色画素の、１つ左側に位置すると、エッジ処理部２４は、前回と同様の処理を繰り返し、その結果、出力バッファ３２内及び長さ記録バッファ３４内は、図１０（ｃ）に示すような状態となる。さらに、注目画素の移動に伴い、同様の処理が繰り返されて、最終的には、図１０（ｄ）に示すような状態となる。
【００９０】
図１１は図３の出力バッファ及び長さ記録バッファのうち、線画Ａに対応する部分の状態遷移を、注目画素の上側にエッジがある場合について示した説明図である。図１１（ａ）に示す状態は、図１０（ｄ）に示す状態から、注目画素が、移動して１ライン下に移った後、線画Ａにおける左下の黒色画素（Ｓドット）の、１つ下側に位置している状態である。
【００９１】
この状態において、エッジ処理部２４は、再び、注目画素に対し下側エッジ、右側エッジ、上側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２、Ｓ１１６）、その判定の結果、注目画素の下側及び右側にはエッジは存在しないが、上側にはエッジが存在するため、図６に示す上側エッジ置換処理を実行する（ステップＳ１１８）。
【００９２】
上側エッジ置換処理が開始されると、エッジ処理部２４は、まず、上側エッジの下端に位置する画素（すなわち、注目画素の１つ上の画素）について、長さ記録バッファ３４内に記録されている値が、初期値であるか否かを判定する（ステップＳ４０２）。この場合、図１１（ａ）に示すように、その画素について、長さ記録バッファ３４内には長さ「４」が記録されており、初期値ではないため、エッジ処理部２４は、置換を行うことなく、図６に示す上側エッジ置換処理を終了する。
【００９３】
次に、エッジ処理部２４は、注目画素を右に１画素分移動させ（ステップＳ１２２）、前回と同様の処理を繰り返す。すると、出力バッファ３２内及び長さ記録バッファ３４内は、図１１（ｂ）に示すような状態となる。こうして、注目画素の移動に伴い、同様の処理が合計４回繰り返されて、最終的には、図１１（ｄ）に示すような状態となる。
以上によって、線画Ａに対するエッジ処理は完了する。
【００９４】
線画Ａは、前述したとおり、縦方向が横方向よりも長くなっているため、例えば、記録バッファ３４を用いた判定処理など（図５のステップＳ３１２，Ｓ３３６など）によって、より長い方向である縦方向においてＳドットが並ぶよう、ドットサイズの置換を行っているので、長い方向のエッジをより滑らかに再現することができる。
【００９５】
なお、上記説明では特に言及しなかったが、ステップＳ３１２における比較処理の結果、長さ記録バッファ３４に記録されている値が、長さＤの値と等しいか大きい場合には、エッジ処理部２４は、さらに、その記録されている値が、長さＤの値と等しいか否か判定する（ステップＳ３１４）。その判定の結果、等しい場合には、エッジ処理部２４は、その画素Ｐｉについて置換しようしているドットサイズが、現時点で画素Ｐｉに割り当てられているドットサイズよりも、小さいか否かを判定し（ステップＳ３１６）、小さい場合は、画像Ｐｉについて、置換パターンに基づく置換を実行するようにする（ステップＳ３１８）。
【００９６】
Ｂ−４．線画Ｂに対するエッジ処理：
次に、線画Ｂに対するエッジ処理について説明する。図１２は図３の線画Ｂに対するエッジ処理によるドットサイズの置換の様子を示す説明図である。線画Ｂは、前述したとおり、横８×縦４の黒色画素によって構成されており、横方向が縦方向よりも長くなっているため、図１２に示すように、横方向において同じサイズのドットが並ぶよう、ドットサイズの置換を行い、長い方向のエッジをより滑らかに再現できるようにしている。
【００９７】
具体的には、線画Ｂに対しては、注目画素の移動に従って、次のようにエッジ処理がなされることになる。図１３は図３の出力バッファ及び長さ記録バッファのうち、線画Ｂに対応する部分の状態遷移を、注目画素の下側にエッジがある場合について示した説明図である。図１３（ａ）に示す状態は初期状態であり、注目画素が、線画Ｂにおける左上の黒色画素（Ｌドット）の、１つ上側に位置している状態である。
【００９８】
そこで、エッジ処理部２４は、図２のステップＳ１０８において、注目画素の下側にエッジが存在するか否かを判定し、判定の結果、下側にエッジが存在するため、図４に示す下側エッジ置換処理を実行する（ステップＳ１１０）。
【００９９】
下側エッジ置換処理が開始されると、エッジ処理部２４は、注目画素の下側に、縦方向の直線に沿って連なる黒色画素列の長さＤを計算する（ステップＳ２０２）。この場合、線画Ｂの縦方向は４画素であるため、Ｄ＝４となる。
【０１００】
次に、エッジ処理部２４は、得られた長さＤが４より大きい（Ｄ＞４）か否かを判定する（ステップＳ２０４）。この場合、長さＤは、Ｄ＝４で、４より大きくないため、エッジ処理部２４は、長さＤの値（Ｄ＝４）に対応した置換パターン（パターンテーブルreplace_pattern1）を読み出す（ステップＳ２０６）。そして、エッジ処理部２４は、その置換パターンに基づいて、図１３（ｂ）に示すように、注目画素の下側に縦方向に連なる４つの黒色画素を置換する（ステップＳ２０８）。この場合、長さＤは４であって（Ｄ＝４）、それに対応する置換パターンは、図９に示すように｛Ｓ，Ｌ，Ｌ，Ｓ｝であるため、上記した縦方向に連なる４つの黒色画素（Ｌドット）は、置換パターン｛Ｓ，Ｌ，Ｌ，Ｓ｝に従って、Ｓドット，Ｌドット，Ｌドット，Ｓドットにそれぞれ置換される。さらに、エッジ処理部２４は、これら４つの黒色画素について、図１０（ｂ）に示すように、長さ記録バッファ３４内の記録を、長さＤの値（Ｄ＝４）に書き換える（ステップＳ２１０）。こうして、図４に示す下側エッジ置換処理は終了する。
【０１０１】
次に、エッジ処理部２４は、注目画素の右側、上側にエッジが存在するか否かの判定を行い（ステップＳ１１２，Ｓ１１６）、エッジが存在しないため、注目画素を右に１画素分移動させる（ステップＳ１２２）。このようして、注目画素の移動に伴い、上記と同様の処理が繰り返されて、出力バッファ３２内及び記録バッファ３４内は、最終的に、図１３（ｃ）に示すような状態となる。
【０１０２】
図１４は図３の出力バッファ及び長さ記録バッファのうち、線画Ｂに対応する部分の状態を、注目画素の右側にエッジがある場合について示した説明図である。図１４に示す状態は、図１３（ｃ）に示す状態から、注目画素が、移動して１ライン下に移った後、線画Ｂにおける左上の黒色画素（Ｓドット）の、１つ左側に位置している状態である。
【０１０３】
この状態において、エッジ処理部２４は、再び、注目画素に対し下側エッジ、右側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２）、その判定の結果、注目画素の下側にはエッジは存在しないが、右側にはエッジが存在するため、図５に示す水平方向エッジ置換処理を実行する（ステップＳ１１４）。
【０１０４】
水平方向エッジ置換処理が開始されると、エッジ処理部２４は、注目画素の右側に、横方向の直線に沿って連なる黒色画素列の長さＤを計算する（ステップＳ３０２）。この場合、線画Ｂの横方向は８画素であるため、Ｄ＝８となる。
【０１０５】
次に、エッジ処理部２４は、得られた長さＤが４より大きい（Ｄ＞４）か否かを判定する（ステップＳ３０４）。この場合、長さＤは、Ｄ＝８で、４より大きいため、エッジ処理部２４は、長さＤが５以上である場合の端部向け置換パターン（パターンテーブルreplace_pattern2）を読み出す（ステップＳ３３０）。そして、エッジ処理部２４は、注目画素の右側に横方向に連なる黒色画素のうち、左端の２画素（すなわち、右側エッジ付近の２画素）と右端の２画素（すなわち、左側エッジ付近の２画素）の、合計４つの画素を、左側から順にＰ１，Ｐ２，Ｐ３，Ｐ４として設定する（ステップＳ３３２）。
【０１０６】
次に、エッジ処理部２４は、これら画素Ｐ１〜Ｐ４のうち、まず、画素Ｐ１について（ステップＳ３３４）、長さ記録バッファ３４内に記録されている値と、初期値（すなわち、５以上の値）と、を比較する（ステップＳ３３６）。この場合、長さ記録バッファ３４には、図１４に示すように、左端の画素Ｐ１について、長さ「４」が記録されているため、その記録されている値（すなわち、４）は、初期値（すなわち、５以上の値）と一致しない（４≠初期値）。従って、エッジ処理部２４は、画素Ｐ１について、置換を行わない。
【０１０７】
そして、エッジ処理部２４は、画素Ｐ２，Ｐ３，Ｐ４についても、同様の処理を行う（ステップＳ３４２，Ｓ３４４）。その結果、図１４に示すように、画素Ｐ１，Ｐ２，Ｐ３，Ｐ４については、何れも、置換は行われない。こうして、図５に示す水平方向エッジ置換処理は終了する。
【０１０８】
次に、エッジ処理部２４は、注目画素に対し上側エッジの有無を判定し（ステップＳ１１６）、エッジが存在しないため、注目画素を右に移動させるが、図１４に示すように、注目画素の右側にはエッジが存在するため、図５のステップＳ３０２で計算した長さＤの値（この場合、Ｄ＝８）だけ、注目画素を移動させる（ステップＳ１２２）。その後、注目画素がさらに移動して１ライン下に移った後、線画Ｂにおける左端の黒色画素の、１つ左側に位置すると、エッジ処理部２４は、前回と同様の処理を繰り返すが、その処理おいても、置換を行わない。さらに、注目画素の移動に伴い、同様の処理が繰り返されるが、注目画素の何れの位置における処理においても、上記の場合と同様に、置換は行われない。
【０１０９】
図１５は図３の出力バッファ及び長さ記録バッファのうち、線画Ｂに対応する部分の状態を、注目画素の上側にエッジがある場合について示した説明図である。図１５に示す状態は、注目画素がさらに移動して、線画Ｂにおける左下の黒色画素（Ｓドット）の、１つ下側に位置している状態である。
【０１１０】
この状態において、エッジ処理部２４は、再び、注目画素に対し下側エッジ、右側エッジ、上側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２、Ｓ１１６）、その判定の結果、注目画素の下側及び右側にはエッジは存在しないが、上側にはエッジが存在するため、図６に示す上側エッジ置換処理を実行する（ステップＳ１１８）。
【０１１１】
上側エッジ置換処理が開始されると、エッジ処理部２４は、上側エッジの下端に位置する画素（すなわち、注目画素の１つ上の画素）について、長さ記録バッファ３４内に記録されている値が、初期値であるか否かを判定する（ステップＳ４０２）。この場合、図１５に示すように、その画素について、長さ記録バッファ３４内には長さ「４」が記録されており、初期値ではないため、エッジ処理部２４は、置換を行うことなく、図６に示す上側エッジ置換処理を終了する。
【０１１２】
次に、エッジ処理部２４は、注目画素を右に１画素分移動させ（ステップＳ１２２）、前回と同様の処理を繰り返すが、この処理においても、置換を行わない。こうして、注目画素の移動に伴い、同様の処理が繰り返されるが、注目画素の何れの位置における処理においても、上記の場合と同様に、置換は行われない。
以上によって、線画Ｂに対するエッジ処理は完了する。
【０１１３】
線画Ｂは、前述したとおり、横方向が縦方向よりも長くなっているため、例えば、記録バッファ３４を用いた判定処理など（図５のＳ３３６など）によって、より長い方向である横方向においてＳドットが並ぶよう、ドットサイズの置換を行っているので、長い方向のエッジをより滑らかに再現することができる。
【０１１４】
Ｂ−５．線画Ｃに対するエッジ処理：
次に、線画Ｃに対するエッジ処理について説明する。図１６は図３の線画Ｃに対するエッジ処理によるドット置換の様子を示す説明図である。線画Ｃは、前述したとおり、横６×縦６の黒色画素によって構成されており、縦方向も横方向も同じ長さとなっているため、図１６に示すように、縦方向も横方向も同様なパターンでドットが並ぶよう、ドット置換を行うようにしている。
【０１１５】
具体的には、線画Ｃに対しては、注目画素の移動に従って、次のようにエッジ処理がなされることになる。図１７は図３の出力バッファ及び長さ記録バッファのうち、線画Ｃに対応する部分の状態遷移を、注目画素の下側にエッジがある場合について示した説明図である。図１７（ａ）に示す状態は初期状態であり、注目画素が、線画Ｃにおける左上の黒色画素（Ｌドット）の、１つ上側に位置している状態である。
【０１１６】
そこで、エッジ処理部２４は、図２のステップＳ１０８において、注目画素の下側にエッジが存在するか否かを判定し、判定の結果、下側にエッジが存在するため、図４に示す下側エッジ置換処理を実行する（ステップＳ１１０）。
【０１１７】
下側エッジ置換処理が開始されると、エッジ処理部２４は、注目画素の下側に、縦方向の直線に沿って連なる黒色画素列の長さＤを計算する（ステップＳ２０２）。この場合、線画Ｃの縦方向は６画素であるため、Ｄ＝６となる。次に、エッジ処理部２４は、得られた長さＤが４より大きい（Ｄ＞４）か否かを判定する（ステップＳ２０４）。この場合、長さＤは「６」であり、線画Ａの場合と同様に、４より大きいため、以下の処理は、線画Ａの場合と同様となる。従って、線画Ｃに関し、注目画素の下側にエッジがある場合の、これ以降の処理についての説明は、省略する。
【０１１８】
図１８は図３の出力バッファ及び長さ記録バッファのうち、線画Ｃに対応する部分の状態遷移を、注目画素の右側にエッジがある場合について示した説明図である。図１８（ａ）に示す状態は、図１７（ｄ）に示す状態から、注目画素が、移動して１ライン下に移った後、線画Ｃにおける左上の黒色画素（Ｓドット）の、１つ左側に位置している状態である。
【０１１９】
この状態において、エッジ処理部２４は、再び、注目画素に対し下側エッジ、右側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２）、その判定の結果、注目画素の下側にはエッジは存在しないが、右側にはエッジが存在するため、図５に示す水平方向エッジ置換処理を実行する（ステップＳ１１４）。
【０１２０】
水平方向エッジ置換処理が開始されると、エッジ処理部２４は、注目画素の右側に、横方向の直線に沿って連なる黒色画素列の長さＤを計算する（ステップＳ３０２）。この場合、線画Ｃの横方向は６画素であるため、Ｄ＝６となる。次に、エッジ処理部２４は、得られた長さＤが４より大きい（Ｄ＞４）か否かを判定する（ステップＳ３０４）。この場合、長さＤは、Ｄ＝６で、４より大きいため、エッジ処理部２４は、長さＤが５以上である場合の端部向け置換パターン（パターンテーブルreplace_pattern2）を読み出す（ステップＳ３３０）。そして、エッジ処理部２４は、注目画素の右側に横方向に連なる黒色画素のうち、左端の２画素と右端の２画素の、合計４つの画素を、左側から順にＰ１，Ｐ２，Ｐ３，Ｐ４として設定する（ステップＳ３３２）。
【０１２１】
次に、エッジ処理部２４は、これら画素Ｐ１〜Ｐ４のうち、まず、画素Ｐ１について（ステップＳ３３４）、長さ記録バッファ３４内に記録されている値と、初期値（すなわち、５以上の値）と、を比較する（ステップＳ３３６）。この場合、長さ記録バッファ３４には、図１８（ａ）に示すように、左端の画素Ｐ１について、初期値「−」が記録されているため、その記録されている値は、初期値と一致する。
【０１２２】
従って、エッジ処理部２４は、処理をステップＳ３３８に移行し、画素Ｐ１について置換しようしているドットサイズが、現時点で画素Ｐ１に割り当てられているドットサイズよりも、小さいか否かを判定する（ステップＳ３３８）。この場合、ステップＳ３３０で読み出された端部向け置換パターンは、図９に示すように｛Ｓ，Ｍ｝，｛Ｍ，Ｓ｝であるため、左端の画素Ｐ１について置換しようとしているドットサイズは、Ｓサイズである。また、現時点で画素Ｐ１に割り当てられているドットサイズも、図１８（ａ）に示すごとく、出力バッファ３２内の、画素Ｐ１についてのデータ値から明らかなように、Ｓサイズである。従って、画素Ｐ１について置換しようとしているドットサイズは、現時点で画素Ｐ１について割り当てられているドットサイズよりも小さくはないため、エッジ処理部２４は、画素Ｐ１について、置換を行わない。
【０１２３】
そして、エッジ処理部２４は、画素Ｐ２，Ｐ３，Ｐ４についても、同様の処理を行う（ステップＳ３４２，Ｓ３４４）。図１８（ａ）に示すように、現時点で画素Ｐ２〜Ｐ４に割り当てられているドットサイズは、何れも、Ｓサイズであるため、エッジ処理部２４は、これら画素Ｐ２〜Ｐ４についても、置換を行わない。こうして、図５に示す水平方向エッジ置換処理は終了する。
【０１２４】
次に、エッジ処理部２４は、注目画素に対し上側エッジの有無を判定し（ステップＳ１１６）、エッジが存在しないため、注目画素を右に移動させるが、図１８（ａ）に示すように、注目画素の右側にはエッジが存在するため、図５のステップＳ３０２で計算した長さＤの値（この場合、Ｄ＝６）だけ、注目画素を移動させる（ステップＳ１２２）。その後、注目画素がさらに移動して１ライン下に移った後、線画Ｃにおける左端の黒色画素（上から２つ目）の、１つ左側に位置すると、図１８（ｂ）に示す状態となる。
【０１２５】
この状態において、エッジ処理部２４は、注目画素に対し下側エッジ、右側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２）、その判定の結果、右側にはエッジが存在するため、再び、図５に示す水平方向エッジ置換処理を実行する（ステップＳ１１４）。
【０１２６】
水平方向エッジ置換処理が開始されると、エッジ処理部２４は、注目画素の右側に、横方向の直線に沿って連なる黒色画素列の長さＤを計算し（ステップＳ３０２）、前回と同様にして、Ｄ＝６を得る。次に、エッジ処理部２４は、その長さＤが４より大きい（Ｄ＞４）か否かを判定し（ステップＳ３０４）、前回と同様に、長さＤは４より大きいため、長さＤが５以上である場合の端部向け置換パターン（パターンテーブルreplace_pattern2）を読み出す（ステップＳ３３０）。そして、エッジ処理部２４は、注目画素の右側に横方向に連なる黒色画素のうち、図１８（ｂ）に示すように、左端の２画素と右端の２画素の、合計４つの画素を、左側から順にＰ１，Ｐ２，Ｐ３，Ｐ４として設定する（ステップＳ３３２）。
【０１２７】
次に、エッジ処理部２４は、これら画素Ｐ１〜Ｐ４のうち、まず、画素Ｐ１について（ステップＳ３３４）、長さ記録バッファ３４内に記録されている値と、初期値と、を比較する（ステップＳ３３６）。この場合も、長さ記録バッファ３４には、図１８（ｂ）に示すように、左端の画素Ｐ１について、初期値「−」が記録されているため、その記録されている値は、初期値と一致する。
【０１２８】
そこで、エッジ処理部２４は、処理をステップＳ３３８に移行し、画素Ｐ１について置換しようしているドットサイズが、現時点で画素Ｐ１に割り当てられているドットサイズよりも、小さいか否かを判定する（ステップＳ３３８）。この場合も、ステップＳ３３０で読み出された端部向け置換パターンは、｛Ｓ，Ｍ｝，｛Ｍ，Ｓ｝であるため、左端の画素Ｐ１について置換しようとしているドットサイズは、Ｓサイズである。一方、現時点で画素Ｐ１に割り当てられているドットサイズは、図１８（ｂ）に示すごとく、出力バッファ３２内の、画素Ｐ１についてのデータ値から明らかなように、Ｍサイズである。従って、画素Ｐ１について置換しようとしているドットサイズは、現時点で画素Ｐ１について割り当てられているドットサイズよりも小さいため、エッジ処理部２４は、画像Ｐ１について置換を実行し、図１８（ｃ）に示すように、画素Ｐ１（Ｍドット）をＳドットに置換する（ステップＳ３４０）。
【０１２９】
次に、エッジ処理部２４は、画素Ｐ２について、同様の処理を繰り返すが（ステップＳ３４２，Ｓ３４４）、この場合、ステップＳ３３０で読み出された端部向け置換パターンは、｛Ｓ，Ｍ｝，｛Ｍ，Ｓ｝であるため、左端から２番目の画素Ｐ２について置換しようとしているドットサイズは、Ｍサイズである。一方、現時点で画素Ｐ２について割り当てられているドットサイズは、図１８（ｃ）に示すごとく、出力バッファ３２内の、画素Ｐ２についてのデータ値から明らかなように、Ｍサイズである。従って、画素Ｐ２について置換しようとしているドットサイズは、現時点で画素Ｐ２について割り当てられているドットサイズよりも小さくはないため、エッジ処理部２４は、画素Ｐ２について、置換を行わない。
【０１３０】
一方、画素Ｐ３については、画素Ｐ２の場合と同様に、置換しようとしているドットサイズはＭサイズであり、現時点で割り当てられているドットサイズもＭサイズであるため、エッジ処理部２４は、画素Ｐ３について、置換を行わない。
【０１３１】
また、画素Ｐ４については、画素Ｐ１の場合と同様に、置換しようとしているドットサイズはＳサイズであるのに対し、現時点で割り当てられているドットサイズはＭサイズであり、置換しようとしているドットサイズの方が小さいため、エッジ処理部２４は、画素Ｐ４について置換を実行し、図１８（ｃ）に示すように、画素Ｐ４（Ｍドット）をＳドットに置換する。こうして、図５に示す水平方向エッジ置換処理は終了する。
【０１３２】
その後、注目画素の移動に伴い、右側エッジ及び左側エッジに関して同様の処理が繰り返されて、最終的には、図１８（ｄ）に示すような状態となる。
【０１３３】
図１９及び図２０は図３の出力バッファ及び長さ記録バッファのうち、線画Ｃに対応する部分の状態遷移を、注目画素の上側にエッジがある場合について示した説明図である。図１９（ａ）に示す状態は、図１８（ｄ）に示す状態から、注目画素が、移動して１ライン下に移った後、線画Ｃにおける左下の黒色画素（Ｓドット）の、１つ下側に位置している状態である。
【０１３４】
この状態において、エッジ処理部２４は、再び、注目画素に対し下側エッジ、右側エッジ、上側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２、Ｓ１１６）、その判定の結果、注目画素の下側及び右側にはエッジは存在しないが、上側にはエッジが存在するため、図６に示す上側エッジ置換処理を実行する（ステップＳ１１８）。
【０１３５】
上側エッジ置換処理が開始されると、エッジ処理部２４は、上側エッジの下端に位置する画素（すなわち、注目画素の１つ上の画素）について、長さ記録バッファ３４内に記録されている値が、初期値であるか否かを判定する（ステップＳ４０２）。この場合、図１９（ａ）に示すように、その画素について、長さ記録バッファ３４内には初期値「−」が記録されているため、エッジ処理部２４は、長さ記録バッファ３４内に記録されている値が初期値であるとして、長さＤが５以上である場合の端部向け置換パターン（パターンテーブルreplace_pattern2）を読み出す（ステップＳ４０４）。そして、エッジ処理部２４は、図１９（ａ）に示すように、注目画素の上側に縦方向に連なる黒色画素のうち、下端の２画素（すなわち、上側エッジ付近の２画素）を、下側から順にＰ１，Ｐ２として設定する（ステップＳ４０６）。
【０１３６】
次に、エッジ処理部２４は、これら画素Ｐ１，Ｐ２のうち、まず、画素Ｐ１について（ステップＳ４０８）、置換しようしているドットサイズが、現時点で画素Ｐ１に割り当てられているドットサイズよりも、小さいか否かを判定する（ステップＳ４１０）。この場合、ステップＳ４０４で読み出された端部向け置換パターンは、｛Ｓ，Ｍ｝であるため、下端の画素Ｐ１について置換しようとしているドットサイズは、Ｓサイズである。一方、現時点で画素Ｐ１に割り当てられているドットサイズは、図１９（ａ）に示すごとく、出力バッファ３２内の、画素Ｐ１についてのデータ値から明らかなように、Ｓサイズである。従って、画素Ｐ１について置換しようとしているドットサイズは、現時点で画素Ｐ１について割り当てられているドットサイズよりも小さくはないため、エッジ処理部２４は、画素Ｐ１について、置換を行わない。
【０１３７】
次に、エッジ処理部２４は、画素Ｐ２について、同様の処理を繰り返すが（ステップＳ４１４，Ｓ４１６）、この場合、ステップＳ４０４で読み出された端部向け置換パターンは、｛Ｓ，Ｍ｝であるため、下端から２番目の画素Ｐ２について置換しようとしているドットサイズは、Ｍサイズである。一方、現時点で画素Ｐ２について割り当てられているドットサイズは、図１９（ａ）に示すごとく、出力バッファ３２内の、画素Ｐ２についてのデータ値から明らかなように、Ｓサイズである。従って、画素Ｐ２について置換しようとしているドットサイズは、現時点で画素Ｐ２について割り当てられているドットサイズよりも小さくはないため、エッジ処理部２４は、画素Ｐ２についても、置換を行わない。こうして、図６に示す上側エッジ置換処理は終了する。
【０１３８】
次に、エッジ処理部２４が、注目画素を右に１画素分移動させると（ステップＳ１２２）、注目画素は、線画Ｃにおける下端の黒色画素（左から２つ目）の、１つ下側に位置する。そこで、エッジ処理部２４は、注目画素に対し下側エッジ、右側エッジ、上側エッジの有無をそれぞれ判定し（ステップＳ１０８，Ｓ１１２、Ｓ１１６）、その判定の結果、上側にはエッジが存在するため、再度、図６に示す上側エッジ置換処理を実行する（ステップＳ１１８）。
【０１３９】
上側エッジ置換処理が開始されると、エッジ処理部２４は、上側エッジの下端に位置する画素について、長さ記録バッファ３４内に記録されている値が、初期値であるか否かを判定し（ステップＳ４０２）、この場合も、図１９（ｂ）に示すように、その画素について、長さ記録バッファ３４内には初期値「−」が記録されているため、エッジ処理部２４は、前回と同様に、長さ記録バッファ３４内に記録されている値が初期値であるとして、長さＤが５以上である場合の端部向け置換パターン（パターンテーブルreplace_pattern2）を読み出す（ステップＳ４０４）。そして、エッジ処理部２４は、図１９（ｂ）に示すように、注目画素の上側に縦方向に連なる黒色画素のうち、下端の２画素を、下側から順にＰ１，Ｐ２として設定する（ステップＳ４０６）。但し、図１９（ｂ）では、これら画素Ｐ１，Ｐ２に関して、置換処理完了後の状態を示している。
【０１４０】
次に、エッジ処理部２４は、これら画素Ｐ１，Ｐ２のうち、まず、画素Ｐ１について（ステップＳ４０８）、置換しようしているドットサイズが、現時点で画素Ｐ１に割り当てられているドットサイズよりも、小さいか否かを判定する（ステップＳ４１０）。この場合、ステップＳ４０４で読み出された端部向け置換パターンは、｛Ｓ，Ｍ｝であるため、下端の画素Ｐ１について置換しようとしているドットサイズは、Ｓサイズである。一方、現時点で画素Ｐ１に割り当てられているドットサイズは、出力バッファ３２内の、画素Ｐ１についてのデータ値から明らかなように、Ｍサイズである。従って、画素Ｐ１について置換しようとしているドットサイズは、現時点で画素Ｐ１について割り当てられているドットサイズよりも小さいため、エッジ処理部２４は、画像Ｐ１について置換を実行し、図１９（ｂ）に示すように、画素Ｐ１（Ｍドット）をＳドットに置換する（ステップＳ４１２）。
【０１４１】
次に、エッジ処理部２４は、画素Ｐ２について、同様の処理を繰り返すが（ステップＳ４１４，Ｓ４１６）、この場合、ステップＳ４０４で読み出された端部向け置換パターンは、｛Ｓ，Ｍ｝であるため、下端から２番目の画素Ｐ２について置換しようとしているドットサイズは、Ｍサイズである。一方、現時点で画素Ｐ２について割り当てられているドットサイズは、出力バッファ３２内の、画素Ｐ２についてのデータ値から明らかなように、Ｍサイズである。従って、画素Ｐ２について置換しようとしているドットサイズは、現時点で画素Ｐ２について割り当てられているドットサイズよりも小さくはないため、エッジ処理部２４は、画素Ｐ２について、置換を行わない。こうして、図６に示す上側エッジ置換処理は終了する。
【０１４２】
その後、注目画素の移動に伴い、上側エッジに関して同様の処理が繰り返されて、最終的には、図２０に示すような状態となる。
【０１４３】
Ｃ．実施例の効果：
本実施例によれば、線画のエッジを検出し、そのエッジと対向する他のエッジとの間の画素列の長さＤを計算して、その長さの値に応じて置換パターンを決定し、ドットの置換を行うことで、無駄な演算やメモリ参照を減らすことができ、演算量やメモリ参照回数が少なく、高速なエッジ処理を実現することができる。
【０１４４】
なお、この効果を定量的に示すため、処理実験を行い、処理の実行の際に行われる、メモリ参照（記録含む）、乗算、加算それぞれの回数を測定した。
【０１４５】
図２１はその処理実験に用いた画像を示す説明図であり、図２２はその処理実験の結果を比較例と本実施例とで比較して示した説明図である。
【０１４６】
処理には、図２１に示すような画像を用いた。すなわち、画素数が１００×１００、線画の長辺の長さが４９、線画の線幅が９である画像を用いた。また、比較例として、特開２００５−１７８１４４号公報に記載の処理を用いた。
【０１４７】
その結果、本実施例では、図２２に示すように、メモリ参照、乗算、加算すべてにおいて、比較例よりも回数を減らすことができ、高速に実行できる効果が得られた。特に、比較例では、７×７のラプラシアンフィルタを用いてエッジからの距離の計算などのために、乗算処理を行っているのに対し、本実施例では、そのような乗算処理を行うことなく、長さＤの計算などのために、加算処理を行っているだけであるため、その分、高速な処理を実現することができる。
【０１４８】
Ｄ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。
【０１４９】
上記した実施例では、画像において、エッジ処理の対象となる領域については、特に言及しなかったが、画像を印刷した際、輪郭部における滲み出しによる不具合は、文字や記号等がある文字・線画領域において発生しやすいため、エッジ処理はテキスト領域を対象とするのが好ましい。その場合、画像において、文字・線画領域であるか否かを判定し、文字・線画領域であれば、エッジ処理を行い、文字・線画領域以外の領域であれば、エッジ処理を行わないようにしてもよい。ここで、文字・線画領域とは、文字、記号、図形、グラフなどが存在する領域を言う。
【０１５０】
なお、画像において、文字・線画領域であるか否かは、例えば、ＣＭＹＫデータの値に基づいて判定するようにしてもよい。また、画素の輝度が所定値（例えば、２５６階調のうちの１６０階調）未満であるか否かに基づき、所定値未満であれば、文字・線画領域であると判定するようにしてもよい。また、画素の輝度が所定値（例えば、１５）未満であるか否かに基づき、所定値未満であれば、文字・線画領域であると判定するようにしてもよい。
【０１５１】
また、オペレーティングシステムから画素毎の属性情報を取得し、画素毎にドットサイズの置換の実行可否を判定するようにしてもよい。この方法を用いることで、より精度の高い判定が可能となる。
【０１５２】
上記した実施例では、ドットサイズの置換パターンとして、図９に示すような置換パターンを用いるようにしているが、本発明はこれに限定されるものではなく、異なる置換パターンを用いるようにしてもよい。また、端部向け置換パターンは、長さＤが５以上である場合に用いるようにしていたが、「５」の値に限定されるものではない。また、長さ記録バッファ３４に記録されている初期値も５以上の値であるとしていたが、「５」の値に限定されるものではない。
【０１５３】
上記した実施例では、所定方向の直線に沿って連なる黒色画素列の長さＤを計算するようにしていたが、その際、その黒色画素列の全ての長さを計算する必要はなく、長さ記録バッファ３４に記録されている初期値が５以上の値であるため、計算途中でその長さが５以上であることが明らかであれば、そこで計算を止め、長さＤを５、または、５以上の値としてもよい。
【０１５４】
上記した実施例では、画像処理装置１００は、パーソナルコンピュータから成るものとしていたが、サーバコンピュータなど他の種類のコンピュータで構成するようにしてもよい。また、印刷装置２００は、プリンタから成るものとしていたが、印刷機能を有する複合機やファクシミリ装置などで構成するようにしてもよい。また、画像処理装置１００を、印刷装置２００内に搭載するようにしてもよく、また、その他、画像の取り扱いを行うことが可能な装置に搭載するようにしてもよい。
【図面の簡単な説明】
【０１５５】
【図１】本発明の一実施例としての画像処理装置を含む印刷システムの構成を示すブロック図である。
【図２】図１におけるエッジ処理部２４において実行されるエッジ処理の処理フローを示すフローチャートである。
【図３】印刷対象である画像の一例と図１における出力バッファ３２内及び記録バッファ３４内の状態を示す説明図である。
【図４】図２における下側エッジ置換処理の処理フローを示すフローチャートである。
【図５】図２における水平方向置換処理の処理フローを示すフローチャートである。
【図６】図２における上側エッジ置換処理の処理フローを示すフローチャートである。
【図７】図３の線画Ａに対するエッジ処理によるドットサイズの置換の様子を示す説明図である。
【図８】図３の出力バッファ及び長さ記録バッファのうち、線画Ａに対応する部分の状態遷移を、注目画素の下側にエッジがある場合について示した説明図である。
【図９】長さＤとドットサイズの置換パターンとの対応関係を示す説明図である。
【図１０】図３の出力バッファ及び長さ記録バッファのうち、線画Ａに対応する部分の状態遷移を、注目画素の右側にエッジがある場合について示した説明図である。
【図１１】図３の出力バッファ及び長さ記録バッファのうち、線画Ａに対応する部分の状態遷移を、注目画素の上側にエッジがある場合について示した説明図である。
【図１２】図３の線画Ｂに対するエッジ処理によるドットサイズの置換の様子を示す説明図である。
【図１３】図３の出力バッファ及び長さ記録バッファのうち、線画Ｂに対応する部分の状態遷移を、注目画素の下側にエッジがある場合について示した説明図である。
【図１４】図３の出力バッファ及び長さ記録バッファのうち、線画Ｂに対応する部分の状態を、注目画素の右側にエッジがある場合について示した説明図である。
【図１５】図３の出力バッファ及び長さ記録バッファのうち、線画Ｂに対応する部分の状態を、注目画素の上側にエッジがある場合について示した説明図である。
【図１６】図３の線画Ｃに対するエッジ処理によるドット置換の様子を示す説明図である。
【図１７】図３の出力バッファ及び長さ記録バッファのうち、線画Ｃに対応する部分の状態遷移を、注目画素の下側にエッジがある場合について示した説明図である。
【図１８】図３の出力バッファ及び長さ記録バッファのうち、線画Ｃに対応する部分の状態遷移を、注目画素の右側にエッジがある場合について示した説明図である。
【図１９】図３の出力バッファ及び長さ記録バッファのうち、線画Ｃに対応する部分の状態遷移を、注目画素の上側にエッジがある場合について示した説明図である。
【図２０】図３の出力バッファ及び長さ記録バッファのうち、線画Ｃに対応する部分の状態を、注目画素の上側にエッジがある場合について示した説明図である。
【図２１】処理実験に用いた画像を示す説明図である。
【図２２】処理実験の結果を比較例と実施例とで比較して示した説明図である。
【符号の説明】
【０１５６】
１０…アプリケーション
２０…プリンタドライバ
２１…解像度変換処理部
２２…色変換処理部
２３…ハーフトーン処理部
２４…エッジ処理部
２４Ａ…エッジ検出部
２４Ｂ…長さ計算部
２４Ｃ…置換部
２５…ラスタライズ処理部
３２…出力バッファ
３４…長さ記録バッファ
４０…画像
１００…画像処理装置
１１０…ＣＰＵ
１２０…メモリ
１３０…入出力インタフェース部
２００…印刷装置
２１０…ＣＰＵ
２２０…メモリ
２３０…入出力インタフェース部
２４０…ユニット制御回路
２５０…ヘッドユニット
２６０…キャリッジユニット
２７０…搬送ユニット
【図１】
2009039880.tif 000003
【図２】
2009039880.tif 000004
【図３】
2009039880.tif 000005
【図４】
2009039880.tif 000006
【図５】
2009039880.tif 000007
【図６】
2009039880.tif 000008
【図７】
2009039880.tif 000009
【図８】
2009039880.tif 000010
【図９】
2009039880.tif 000011
【図１０】
2009039880.tif 000012
【図１１】
2009039880.tif 000013
【図１２】
2009039880.tif 000014
【図１３】
2009039880.tif 000015
【図１４】
2009039880.tif 000016
【図１５】
2009039880.tif 000017
【図１６】
2009039880.tif 000018
【図１７】
2009039880.tif 000019
【図１８】
2009039880.tif 000020
【図１９】
2009039880.tif 000021
【図２０】
2009039880.tif 000022
【図２１】
2009039880.tif 000023
【図２２】
2009039880.tif 000024