(57)【要約】【課題】簡単な構成で、ジャギー端画素及びジャギーの傾きを検出することができる画像処理装置を提供すること。【解決手段】本発明は、多値画像データのエッジ情報を検出するエッジ検出手段と、前記エッジ情報の隣接する３ライン（Ｋ−１ライン、Ｋライン、Ｋ＋１ライン）のうちＫラインを走査することにより、エッジ画素の変化点を検出して、ジャギー端画素位置を検出するジャギー端画素検出手段と、前記検出したジャギー端画素位置に基づき、Ｋ−１ラインまたはＫ＋１ラインのエッジ画素の変化点を検出することにより、エッジ画素の連続数を計測し、ジャギー端画素間の距離を算出するジャギー端画素間距離算出手段と、前記算出したジャギー端画素間の距離に基づきジャギーの傾きを生成する傾き生成手段とを備える画像処理装置である。【選択図】図３
2015133630.tif 000002
【特許請求の範囲】
【請求項１】
多値画像データのエッジ情報を検出するエッジ検出手段と、
前記エッジ情報の隣接する３ライン（Ｋ−１ライン、Ｋライン、Ｋ＋１ライン）のうちＫラインを走査することと、前記エッジ情報の隣接する３カラム（Ｋ−１カラム、Ｋカラム、Ｋ＋１カラム）のうちＫカラムを走査することとの少なくとも一方により、エッジ画素の変化点を検出して、ジャギー端画素位置を検出するジャギー端画素検出手段と、
前記検出したジャギー端画素位置に基づき、Ｋ−１ラインまたはＫ＋１ラインのエッジ画素の変化点を検出することと、Ｋ−１カラムまたはＫ＋１カラムのエッジ画素の変化点を検出することとの少なくとも一方により、エッジ画素の連続数を計測し、ジャギー端画素間の距離を算出する距離算出手段と、
前記算出したジャギー端画素間の距離に基づきジャギーの傾きを生成する傾き生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記距離算出手段は、主走査方向または副走査方向の画素数をカウントできるカウンタを備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
ジャギー端画素位置を補正する画素位置補正手段をさらに備え、
前記距離算出手段は、前記計測したエッジ画素の連続数が前記カウンタの上限値に達したか否かを示すホールド信号を出力し、
前記画素位置補正手段は、前記ホールド信号に従ってジャギー端画素位置を補正することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記距離算出手段は、Ｋ−１ライン及びＫ＋１ラインのエッジ画素の連続数の計測中に、参照しているＫ−１ライン及びＫ＋１ラインのエッジ画素に対応する、Ｋラインの画素がエッジ画素であった場合、前記算出するジャギー端画素間の距離を０値とし、Ｋ−１カラム及びＫ＋１カラムのエッジ画素の連続数の計測中に、参照しているＫ−１カラム及びＫ＋１カラムのエッジ画素に対応する、Ｋカラムの画素がエッジ画素であった場合、前記算出するジャギー端画素間の距離を０値とすることを特徴とする請求項１乃至３の何れか一項に記載の画像処理装置。
【請求項５】
前記距離算出手段は、カウント値が前記カウンタの上限値に達した場合、ホールド信号ＴＲＵＥを出力し、カウント値が前記カウンタの上限値に達していない場合、ホールド信号ＦＡＬＳＥを出力することを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記画素位置補正手段は、前記ホールド信号ＴＲＵＥが入力された場合、前記カウンタの上限値だけ、主走査方向または副走査方向にジャギー端画素位置を移動させることにより、ジャギー端画素位置を補正することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
多値画像データのエッジ情報を検出するエッジ検出ステップと、
前記エッジ情報の隣接する３ライン（Ｋ−１ライン、Ｋライン、Ｋ＋１ライン）のうちＫラインを走査することと、前記エッジ情報の隣接する３カラム（Ｋ−１カラム、Ｋカラム、Ｋ＋１カラム）のうちＫカラムを走査することとの少なくとも一方により、エッジ画素の変化点を検出して、ジャギー端画素位置を検出するジャギー端画素検出ステップと、
前記検出したジャギー端画素位置に基づき、Ｋ−１ラインまたはＫ＋１ラインのエッジ画素の変化点を検出することと、Ｋ−１カラムまたはＫ＋１カラムのエッジ画素の変化点を検出することとの少なくとも一方により、エッジ画素の連続数を計測し、ジャギー端画素間の距離を算出する距離算出ステップと、
前記算出したジャギー端画素間の距離に基づきジャギーの傾きを生成する傾き生成ステップと
を備えることを特徴とする画像処理方法。
【請求項８】
コンピュータを請求項１乃至６の何れか一項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。具体的には、本発明は、画像のエッジ部のジャギーを改善するスムージング処理に関し、特にスムージング処理を行うためにジャギーの傾きを算出する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、画像処理装置において、ジャギーと呼ばれる文字等のエッジ部に発生するガタツキを改善する技術が幾つか提案されている。ジャギーの発生理由は様々あり、主として低解像度のプリンタによる画素のガタツキ、スクリーン処理のような擬似中間調処理によるガタツキ等が挙げられる。
【０００３】
ジャギーを改善する技術としては、パターンマッチングを行い、パターンに一致した画素を別の画素に置き換えることで、ジャギーの原因となる画素を除去する方法が検討されている。例えば、２値の画像に対して５×５ウィンドウの画素のパターンによるパターンマッチングを行い、ジャギー端画素と、ジャギー端画素との間の傾き（本明細書では、「ジャギーの傾き」と呼ぶ）を検出する。そして、そのパターンに一致した画素を、対応する画素の置き換えパターンに従って置き換える手法（特許文献１参照）が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−４２１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の手法では、２値の画像のパターンから補間計数を生成するためには、２次元の参照ウィンドウ（ここでは５×５ウィンドウ）が必要である。そのため、例えば、主走査方向には５画素分の小さな範囲しか参照できないので、副走査方向に対してわずかな角度（傾きが１／５未満）をなす直線のジャギーの検出精度が落ちてしまう問題がある。
【０００６】
そこで、本発明は、以上のような課題を解決するためになされたものであって、簡単な構成で、ジャギー端画素及びジャギーの傾きを検出することによってジャギーを改善する画像処理装置を提供することを目的とする。本発明は特に、主走査方向または副走査方向に対してわずかな角度をなす直線のジャギーに対して有効に作用する。
【課題を解決するための手段】
【０００７】
本発明の一実施形態は、多値画像データのエッジ情報を検出するエッジ検出手段と、前記エッジ情報の隣接する３ライン（Ｋ−１ライン、Ｋライン、Ｋ＋１ライン）のうちＫラインを走査することと、前記エッジ情報の隣接する３カラム（Ｋ−１カラム、Ｋカラム、Ｋ＋１カラム）のうちＫカラムを走査することとの少なくとも一方により、エッジ画素の変化点を検出して、ジャギー端画素位置を検出するジャギー端画素検出手段と、前記検出したジャギー端画素位置に基づき、Ｋ−１ラインまたはＫ＋１ラインのエッジ画素の変化点を検出することと、Ｋ−１カラムまたはＫ＋１カラムのエッジ画素の変化点を検出することとの少なくとも一方により、エッジ画素の連続数を計測し、ジャギー端画素間の距離を算出する距離算出手段と、前記算出したジャギー端画素間の距離に基づきジャギーの傾きを生成する傾き生成手段とを備えることを特徴とする画像処理装置である。
【発明の効果】
【０００８】
本発明によれば、簡単な構成で、ジャギー端画素及びジャギーの傾きを検出することができる。本発明は特に、主走査方向または副走査方向に対してわずかな角度をなす直線のジャギーに対して有効に作用する。
【図面の簡単な説明】
【０００９】
【図１】実施例１及び実施例２に係る画像処理装置の構成を示すブロック図である。
【図２】補間処理部１０３による補正方法の例を示す図である。
【図３】実施例１に係るジャギー検出部１０２の構成を示すブロック図である。
【図４】実施例１に係る画像処理装置にて処理されるエッジ情報の一例を示す図である。
【図５】ジャギー端画素検出部３０１の動作を説明するフローチャートである。
【図６】ジャギー端画素間距離算出部３０２の動作を説明するフローチャートである。
【図７】実施例２に係るジャギー検出部１０２の構成を示すブロック図である。
【図８】ジャギー端画素間距離算出部７０２の動作を説明するフローチャートである。
【図９】実施例２に係る画像処理装置にて処理されるエッジ情報の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して、本発明をその好適な実施例に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
［実施例１］
（画像処理装置の構成）
図１は、本発明の第１の実施例に係る画像処理装置の全体構成を示すブロック図である。エッジ検出部１０１は、多値画像データを入力し、公知のエッジ検出手法を用いて入力した多値画像データの中からエッジ情報を検出する。例えば、ラプラシアン演算により２次微分を行ったデータのゼロクロス点を検出する方法を用いることで、多値画像のエッジ部を検出する。そして、その検出結果は、例えば、０値は非エッジ画素を、１値はエッジ画素を表すエッジ情報として、ジャギー検出部１０２に出力される。
【００１２】
ジャギー検出部１０２は、エッジ検出部１０１から出力されたエッジ情報に基づいて、主走査方向におけるジャギー端画素の画素位置（本明細書では、「ジャギー端画素位置」と呼ぶ）及びそれに対応するジャギーの傾きを検出する。その検出結果は、ジャギー情報として補間処理部１０３に出力される。ジャギー検出部１０２の詳細については後述する（図３を参照）。
【００１３】
補間処理部１０３は、ジャギー検出部１０２から出力されたジャギー情報に基づいて、公知の手法を用いて画像からジャギーを除去する。ここで、図２を用いて、ジャギーを除去する公知の手法の例を説明する。
【００１４】
まず、図２について説明する。図２（ａ）は、白色の背景に黒色の文字が付加されている多値画像データの一部（３６（＝３×１２）画素）を表している図である。正方形は単位画素を表している。本明細書では、任意の位置の画素を、画素Ｐ（ライン番号、カラム番号）と表記する。例えば、ライン番号０且つカラム番号１が示す位置の画素を画素Ｐ（０，１）と表記する。また、白画素は２５５値を、黒画素は０値を表している。
【００１５】
次に、ジャギーを除去する公知の手法の一例を説明する。ジャギー検出部１０２から出力されたジャギー情報のうちのジャギー端画素位置及びジャギーの傾きから、もう一つのジャギー端画素位置がわかる。例えば、図２（ａ）に示すライン番号１におけるジャギー端画素位置（１，２）及びジャギーの傾き１／５から、ライン番号０におけるジャギー端画素位置が（０，７）であることがわかる。そして、そのジャギー端画素間を公知の手法で補正することで、ジャギーを除去する。ジャギーを除去する方法は様々であり、その一つに、上下画素間で加重平均をとる方法がある。この方法ではジャギーの傾きに従って、上下画素の割合を変化させる。図２（ｂ）は、上記公知の手法によるジャギー除去後の多値画像データの模式図である。図２（ｂ）を参照すると、ライン番号０及び１且つカラム番号３〜６の画素が補正され、ジャギー端画素が無くなった結果、ジャギーが除去されていることがわかる。以上、公知の手法の一例を説明したが、他にもオーバーサンプリングを使用してスムージング処理することでジャギーを除去できる。尚、図２（ｃ）は、オーバーサンプリング後の多値画像データの模式図である。
【００１６】
（ジャギー検出部）
次に、図３のブロック図を用いてジャギー検出部１０２の詳細を説明する。ジャギー検出部１０２は、図１に示すエッジ検出部１０１にて生成された２値のエッジ情報を３ライン分（Ｋ−１ライン、Ｋライン、Ｋ＋１ライン）入力する。図４（ａ）は入力されたエッジ情報の一例を示し、図２（ａ）に示した多値画像データのエッジ情報を示す。尚、図４の図の説明（ライン番号やカラム番号など）は図２と同じであるため割愛する。ただし、図４では、黒画素はエッジ画素（１値）を示し、白画素は非エッジ画素（０値）を示すので留意されたい。また、図３に示すように、ジャギー検出部１０２は、ジャギー端画素検出部３０１と、ジャギー端画素間距離算出部３０２、３０３と、傾き生成部３０４、３０５とから構成される。
【００１７】
（ジャギー検出部−ジャギー端画素検出部）
次に、図５を用いてジャギー端画素検出部３０１を説明する。図５は、ジャギー端画素検出部３０１がＫラインのジャギー端画素位置を検出するまでの動作を示すフローチャートである。以下では、図４（ａ）に示すエッジ情報がジャギー端画素検出部３０１に入力された場合を例に挙げて説明する。
【００１８】
ステップＳ５０１において、ジャギー端画素検出部３０１は、入力された３ライン（即ちＫ−１ライン、Ｋライン、Ｋ＋１ライン）の中で、Ｋライン（図４の例では、ライン番号１）の画素データを入力する。そして、続くステップＳ５０２〜Ｓ５０５において、ジャギー端画素検出部３０１は、Ｋラインにおいてエッジ画素から非エッジ画素（黒画素から白画素）に変化する変化点を見つける。以下、変化点を見つける手法（Ｓ５０２〜Ｓ５０５の各ステップ）を具体的に説明する。
【００１９】
ステップＳ５０２において、ジャギー端画素検出部３０１は、１×２ウィンドウを用いて入力されたＫラインにおける隣接する左右の画素を参照画素とする。そして、この左右の画素を比較する。次いで、ステップＳ５０３に進む。
【００２０】
ステップＳ５０３において、ジャギー端画素検出部３０１は、参照画素がエッジ画素から非エッジ画素に変化しているか判定する。参照画素がエッジ画素から非エッジ画素に変化していると判定された場合、参照画素のうちの左の画素がジャギー端画素であると判定できる。参照画素がエッジ画素から非エッジ画素に変化していない場合は、ステップＳ５０４に進み、参照画素がエッジ画素から非エッジ画素に変化している場合は、ステップＳ５０５に進む。
【００２１】
ステップＳ５０４において、ジャギー端画素検出部３０１は、１×２ウィンドウを横方向（主走査方向）にずらすことで、参照画素を横方向（主走査方向）に１画素移動する。次いで、ステップＳ５０２に戻る。
【００２２】
ステップＳ５０５において、ジャギー端画素検出部３０１は、参照画素のうちの左の画素の画素位置をジャギー端画素位置として出力する。本実施例では、図４に示すように、（１，２）がＫラインにおけるジャギー端画素位置となる。
【００２３】
（ジャギー検出部−ジャギー端画素間距離算出部）
次に、図６を用いてジャギー端画素間距離算出部３０２を説明する。図６は、ジャギー端画素間距離算出部３０２がジャギー端画素間の距離（本明細書では、「画素間距離」と呼ぶ）を算出するまでの動作を示すフローチャートである。尚、本実施例では、ジャギー端画素間距離算出部３０２は、横方向（主走査方向）の画素を十分にカウントできるカウンタを具備しており、カウンタがオーバーフローすることはないものとする。斯かる構成により、わずかな角度をなす直線のジャギーを測定することができる。具体的には、後述する傾き生成部３０４、３０５にて算出するジャギーの傾きは±１／（カウンタの最大値）まで算出可能となる。
【００２４】
ステップＳ６０１において、ジャギー端画素間距離算出部３０２は、Ｋ−１ライン（図４の例では、ライン番号０）及びＫライン（図４の例では、ライン番号１）の画素データを入力する。次いで、ステップＳ６０２に進む。
【００２５】
ステップＳ６０２において、ジャギー端画素間距離算出部３０２は、ジャギー端画素検出部３０１から出力された、Ｋラインにおけるジャギー端画素位置を入力する。次いで、ステップＳ６０３に進む。
【００２６】
ステップＳ６０３において、ジャギー端画素間距離算出部３０２は、Ｋラインにおけるジャギー端画素位置の右に隣接する画素位置を、Ｋラインにおける参照画素の開始位置に設定する。また、このＫラインにおける参照画素の開始位置の上に隣接する画素位置を、Ｋ−１ラインにおける参照画素の開始位置に設定する。図４（ｂ）を参照すると、本実施例では、（０，３）がＫ−１ラインにおける参照画素の開始位置であり、（１，３）がＫラインにおける参照画素の開始位置であることが分かる。以後、説明し易いように、Ｋ−１ラインにおける参照画素を「参照画素Ｋ−１」、Ｋラインにおける参照画素を「参照画素Ｋ」と呼ぶ。また、ステップＳ６０３において、ジャギー端画素間距離算出部３０２は、カウンタを０値にリセットする。次いで、ステップＳ６０４に進む。
【００２７】
ステップＳ６０４〜Ｓ６０９において、ジャギー端画素間距離算出部３０２は、参照画素Ｋ−１の開始位置から横方向（主走査方向）にＫ−１ラインの画素を走査しながら、エッジ画素（黒画素）の連続数をカウントしていく。これにより、ジャギー端画素間距離算出部３０２は、参照画素Ｋ−１の開始位置からエッジ画素が非エッジ画素に変化する変化点までの距離、即ちジャギー端画素間の距離（画素間距離）を計測する。ただし、この計測中、Ｋラインの画素に、エッジ画素（黒画素）が検出された場合は、計測を中止し、カウンタを０値にリセットする。これは、Ｋ−１ラインにジャギー端画素がないと判定し、後段の補間処理部１０３にて画素を補間処理させないようにするためである。なぜならば、Ｋラインにエッジ画素が多発する画像データは、例えば格子状の複雑な文字の一部を描画するデータである場合があり、このような場合に補間処理するとかえって画質劣化してしまうからである。以下、具体的な処理フローの詳細（Ｓ６０４〜Ｓ６０９の各ステップ）を説明する。
【００２８】
ステップＳ６０４において、ジャギー端画素間距離算出部３０２は、参照画素Ｋがエッジ画素であるか判定する。判定の結果、参照画素Ｋがエッジ画素であればステップＳ６０９に進み、参照画素Ｋがエッジ画素でなければステップＳ６０５に進む。
【００２９】
ステップＳ６０５において、ジャギー端画素間距離算出部３０２は、参照画素Ｋ−１がエッジ画素であるか判定する。判定の結果、参照画素Ｋ−１が非エッジ画素であれば、その時の参照画素Ｋ−１はエッジ画素から非エッジ画素となる変化点なので、この参照画素Ｋ−１のひとつ前の画素（左に隣接する画素）がＫ−１ラインにおけるジャギー端画素であると判断できる。判定の結果、参照画素Ｋ−１がエッジ画素であればステップＳ６０６に進み、参照画素Ｋ−１がエッジ画素でなければステップＳ６０８に進む。
【００３０】
ステップＳ６０６において、ジャギー端画素間距離算出部３０２は、カウンタをインクリメントする。次いで、ステップＳ６０７に進む。
【００３１】
ステップＳ６０７において、ジャギー端画素間距離算出部３０２は、参照画素Ｋ−１及び参照画素Ｋを、それぞれ右に１画素移動する。次いで、ステップＳ６０４に戻る。
【００３２】
ステップＳ６０８において、ジャギー端画素間距離算出部３０２は、それまでに計測したカウント値が横方向（主走査方向）のジャギー端画素間の距離になるので、このカウント値を画素間距離として出力する。尚、図４（ｂ）に示す例では、（０，８）がエッジ画素から非エッジ画素への変化点なので、画素Ｐ（０，７）がＫ−１ラインにおけるジャギー端画素であると判断できる。従って、それまでにカウントされた図４（ｂ）に示すカウント区間（画素Ｐ（０，３）〜画素Ｐ（０，７））の値５が画素間距離として出力される。
【００３３】
ステップＳ６０９において、ジャギー端画素間距離算出部３０２は、カウンタを０値にリセットする。次いで、ステップＳ６０８に進む。
【００３４】
以上のようにして、横方向（主走査方向）のジャギー端画素間の距離（画素間距離）を算出できる。
【００３５】
ジャギー端画素間距離算出部３０３は、ジャギー端画素間距離算出部３０２と構成が同じなので説明を割愛する。ただし、ジャギー端画素間距離算出部３０３では、Ｋ−１ライン（図４の例ではライン番号０）ではなく、Ｋ＋１ライン（図４の例ではライン番号２）の画素が入力されて、ジャギー端画素間距離算出部３０２と同様に画素間距離を算出する。従って、例えば、参照画素Ｋ＋１の開始位置は、（２，３）である（図４（ｂ）を参照）。そして、画素Ｐ（２，３）は非エッジ画素であるため、画素間距離は０となる。
【００３６】
（ジャギー検出部−傾き生成部）
傾き生成部３０４は、Ｋ−１ラインのジャギー端画素と、Ｋラインのジャギー端画素との間のジャギーの傾きを算出する。具体的には、傾き生成部３０４は、ジャギー端画素間距離算出部３０２から出力された横方向（主走査方向）の画素間距離を入力し、式１にてジャギーの傾きを算出する。
Ｈ＝Ｌ／Ｗ・・・（式１）
ただし、Ｈはジャギーの傾きであり、Ｗは横方向（主走査方向）のジャギー端画素間距離であり、Ｌは縦方向（副走査方向）のジャギー端画素間距離である。図４（ｃ）の例の場合、横方向（主走査方向）の画素間距離はＷ＝５であり、縦方向の画素間距離はＬ＝１であるから、ジャギーの傾きはＨ＝１／５と算出される。
【００３７】
傾き生成部３０５は、生成部３０４と同様の方法で、Ｋ＋１ラインのジャギー端画素と、Ｋラインのジャギー端画素との間のジャギーの傾きを算出する。ただし、傾き生成部３０４はプラスの傾きを算出するので、傾き生成部３０５はマイナスの傾きを算出する。具体的には、傾き生成部３０５は、ジャギー端画素間距離算出部３０３から出力された横方向（主走査方向）の画素間距離を入力し、式２にてジャギーの傾きを算出する。
Ｈ＝―Ｌ／Ｗ・・・（式２）
図４（ｃ）の例の場合、横方向（主走査方向）の画素間距離はＷ＝０であり、縦方向の画素間距離はＬ＝１であるから、ジャギーの傾きはＨ＝０と算出される。
【００３８】
以上のようにして、ジャギー検出部１０２は、傾き生成部３０４、３０５から出力された２つのジャギーの傾き及びジャギー端画素検出部３０１から出力されたジャギー端画素位置を、ジャギー情報として出力する。
【００３９】
上述した例では、横方向（主走査方向）のジャギー除去について説明した。しかし、上述した例においてラインをカラムに、カラムをラインにそれぞれ変更し、３カラム（Ｋ−１カラム、Ｋカラム、Ｋ＋１カラム）を走査することで、縦方向（副走査方向）のジャギー除去も可能である。また、本実施例を適用した同一回路を用いて、横方向（主走査方向）及び縦方向（副走査方向）に計２回スキャンすることで、広範囲なジャギー傾きを検出できる。
【００４０】
以上のように、本実施例によれば、簡単な構成で、ジャギー端画素及びジャギーの傾きを検出可能な画像処理装置を提供することができる。特に、本実施例によれば、主走査方向または副走査方向に対してわずかな角度をなす直線のジャギーに対して有効に作用する画像処理装置を提供することができる。
【００４１】
［実施例２］
実施例１で説明したジャギー端画素間距離算出部３０２、３０３は、横方向（主走査方向）の画素を十分にカウントできるカウンタを具備していたため、カウンタがオーバーフローすることはないものとしていた。つまり、実施例１では、具備するカウンタの上限値が横方向（主走査方向）の画素数に依存する。一方、本実施例では、具備するカウンタの上限値を固定し、横方向（主走査方向）の画素数に依存しない画像処理装置を提供する。
【００４２】
本実施例に係る画像処理装置の構成は、実施例１と同じである（図１を参照）。図７は、本実施例に係るジャギー検出部１０２の構成を示すブロック図である。ただし、ジャギー端画素検出部７０１は、ジャギー端画素検出部３０１と同じ構成である。また、傾き生成部７０４、７０５は、それぞれ傾き生成部３０４、３０５と同じ構成である。
【００４３】
以後、実施例１と異なる点について主に説明する。その際、図９（ａ）に示すエッジ情報がジャギー検出部１０２に入力された場合を例に挙げて説明する。尚、図９（ａ）は、図４（ａ）と同じエッジ情報を示す。
【００４４】
（ジャギー端画素間距離算出部）
図８を用いてジャギー端画素間距離算出部７０２を説明する。図８は、ジャギー端画素間距離算出部７０２が画素間距離を算出するまでの動作を示すフローチャートである。尚、本実施例では、ジャギー端画素間距離算出部７０２は、２ビットカウンタ（上限値が３）を具備するものとする。
【００４５】
図８は、図６のフローチャートにステップＳ８１０〜Ｓ８１３が追加されたものである。ステップＳ８０１〜Ｓ８０９の処理は、実施例１で説明したステップＳ６０１〜Ｓ６０９の処理と同様なため、詳細な説明を割愛する。
【００４６】
ステップＳ８０１〜Ｓ８０７の処理では、参照画素Ｋ−１の開始位置（図９（ｂ）を参照）からＫ−１ラインにおけるエッジ画素をカウントしている。そして、Ｓ８０７の処理で、参照画素Ｋ−１、Ｋを右に１画素移動した後、ステップＳ８１１に進む。
【００４７】
ステップＳ８１１において、ジャギー端画素間距離算出部７０２は、カウンタが上限値に達したか判定する。例えば、カウンタが２ビット（上限値が３）の場合は、カウンタが３に達したか判定する。その判定の結果、カウンタが上限値に達していない場合、ステップＳ８０４に戻る。一方、その判定の結果、カウンタが上限値に達した場合、ステップＳ８１２に進む。
【００４８】
ステップＳ８１２において、ジャギー端画素間距離算出部７０２は、ホールド信号ＴＲＵＥを出力する。このホールド信号は、後述するジャギー端画素位置補正部７０６で、ジャギー端画素位置を補正するために使用する。次いで、ステップＳ８１３に進む。
【００４９】
ステップＳ８１３において、ジャギー端画素間距離算出部７０２は、カウンタを０値にリセットする。次いで、ステップＳ８０４に戻る。
【００５０】
図８のフローチャートでは最終的に、ステップＳ６０８と同様にステップＳ８０８において、ジャギー端画素間距離算出部７０２は、カウント値を画素間距離として、傾き生成部７０４に対して出力する。そして、ステップＳ８１０において、ジャギー端画素間距離算出部７０２は、ホールド信号ＦＡＬＳＥをジャギー端画素位置補正部７０６に対して出力する。尚、図９（ｂ）の例では、Ｋ−１ラインにおけるエッジ画素をカウントしている間、参照画素Ｋ−１の位置が（０，５）であるときが、ホールド信号ＴＲＵＥを出力するタイミングである。また、参照画素Ｋ−１の位置が（０，８）であるときが、ホールド信号ＦＡＬＳＥを出力するタイミングである。そして、このホールド信号ＦＡＬＳＥを出力するとき、画素間距離として２が出力されている。
【００５１】
ジャギー端画素間距離算出部７０３は、ジャギー端画素間距離算出部７０２と同じ構成であるため、説明を割愛する。
【００５２】
（ジャギー端画素位置補正部）
次に、ジャギー端画素位置補正部７０６を説明する。ジャギー端画素位置補正部７０６は、ジャギー端画素検出部７０１から出力されたジャギー端画素位置及びジャギー端画素間距離算出部７０２、７０３から出力されたホールド信号を入力する。ホールド信号ＴＲＵＥが入力された場合に、ジャギー端画素位置補正部７０６は、ジャギー端画素間距離算出部７０２、７０３が具備しているカウンタの上限値分ジャギー端画素の位置を移動させる。
【００５３】
例えば図９（ｂ）では、ジャギー端画素位置は（１，２）であるが、ジャギー端画素間距離算出部７０２からのホールド信号ＴＲＵＥを受け取ったジャギー端画素位置補正部７０６は、カウンタの上限値の３画素分、右方向にジャギー端画素位置を移動させる。その結果、ジャギー端画素位置は、（１，５）となる（図９（ｃ）を参照）。
【００５４】
本実施例ではこのようにして、ジャギー端画素位置を右方向（主走査方向）に移動させる。ジャギー端画素位置の移動は、ジャギー端画素位置補正部７０６がジャギー端画素間距離算出部７０２からのホールド信号ＦＡＬＳＥを入力されるまで継続する。そして、ホールド信号ＦＡＬＳＥが入力されたタイミングで、ジャギー端画素位置補正部７０６は、ジャギー端画素位置を出力する。図９（ｂ）の例では、ジャギー端画素位置補正部７０６は、Ｋラインのジャギー端画素位置（１，５）を出力する。
【００５５】
上述した例では、カウンタのビット数が２ビットであったが、任意のビット数のカウンタを使用して本発明を実現できる。
【００５６】
本実施例によれば、カウンタのビット数によらず、ジャギー端画素及びジャギーの傾きを検出することができるので、横方向（主走査方向）の画素数に依存しない画像処理装置を提供することができる。
【００５７】
［その他の実施形態］
前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、本発明の目的が達成される。この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５８】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００５９】
また、コンピュータが読み出したプログラムコードを実行することによって、前述した実施形態の機能が実現される。他に、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００６０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、その書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００６１】
尚、本発明は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体から、そのプログラムを、パソコン通信など通信ラインを介して要求者に配信する場合にも適用できる。
【図１】
2015133630.tif 000003
【図２】
2015133630.tif 000004
【図３】
2015133630.tif 000005
【図４】
2015133630.tif 000006
【図５】
2015133630.tif 000007
【図６】
2015133630.tif 000008
【図７】
2015133630.tif 000009
【図８】
2015133630.tif 000010
【図９】
2015133630.tif 000011