(57)【要約】【課題】大容量のメモリや複雑な演算処理を必要とせず、線分描画時に生じるエイリアシングを効果的に低減する画像処理装置を実現する。【解決手段】画像処理装置１は、線分を描画するための情報を入力するための入力部１１と、閾値設定部１２と、評価値取得部１３と、描画情報決定部１４と、を備える。評価値取得部１３は、描画対象画素である画素Ｐ（ｘａ，ｙａ）と、線分の始点と終点とを通る直線と、の位置関係を示す評価値Ｄを取得する。閾値設定部１２は、線分の始点から終点までのｘ方向の差分量ｄｘと、線分の始点から終点までのｙ方向の差分量ｄｙとに基づいて、３つの閾値Ｔｈ１、Ｔｈ２およびＴｈ３を設定する。描画情報決定部１４は、評価値Ｄと閾値Ｔｈ１、Ｔｈ２およびＴｈ３とに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とを決定する。【選択図】図１
2014186682.tif 000002
【特許請求の範囲】
【請求項１】
画像上において、線分を描画するための線分描画情報を取得するための画像処理装置であって、
前記線分を描画するための情報を入力するための入力部と、
前記線分を描画するための描画情報を取得する線分描画情報取得部と、
を備え、
前記線分描画情報取得部は、
描画対象画素である画素Ｐ（ｘａ，ｙａ）と、前記線分の始点と終点とを通る直線と、の位置関係を示す評価値Ｄを取得する評価値取得部と、
前記始点から前記終点までのｘ方向の差分量ｄｘと、前記始点から前記終点までのｙ方向の差分量ｄｙとに基づいて、少なくとも３つの閾値Ｔｈ１、Ｔｈ２およびＴｈ３を設定する閾値設定部と、
前記評価値Ｄと前記閾値Ｔｈ１、Ｔｈ２およびＴｈ３とに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と前記描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とを決定する描画情報決定部と、
を備え、
前記評価値Ｄは、
−０．５×ｄｘ×ｋ≦Ｄ≦１．５×ｄｘ×ｋ
係数ｋ：正の実数
を満たし、
前記閾値Ｔｈ１、Ｔｈ２およびＴｈ３は、
−０．５×ｄｘ×ｋ＜Ｔｈ１＜Ｔｈ２＜Ｔｈ３＜１．５×ｄｘ×ｋ
を満たし、
評価値取得部は、
前記評価値Ｄを前記差分量ｄｙに基づいて更新し、
更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、前記更新した評価値Ｄをさらに前記差分量ｄｘに基づいて更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定し、
更新した評価値Ｄが１．５×ｄｘ×ｋ未満である場合、次の描画対象画素をＰ（ｘａ＋１，ｙａ）に決定する、
画像処理装置。
【請求項２】
前記評価値Ｄの初期値は、「０」であり、
前記描画情報決定部は、
（１）前記評価値Ｄが−０．５×ｄｘ×ｋ≦Ｄ＜Ｔｈ１を満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＡとし、
（２）前記評価値ＤがＴｈ１≦Ｄ＜Ｔｈ２を満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＢ１とするとともに、画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度を濃度ＤＢ２とし、
（３）前記評価値ＤがＴｈ２≦Ｄ＜Ｔｈ３を満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＣ１とするとともに、画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度を濃度ＤＣ２とし、
（４）前記評価値ＤがＴｈ３≦Ｄ＜１．５×ｄｘ×ｋを満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＤ１とするとともに、画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度を濃度ＤＤ２とし、
描画色の濃度の値が大きい程、描画色の濃度が濃くなるように設定した場合、前記濃度ＤＡ、ＤＢ１、ＤＢ２、ＤＣ１、ＤＣ２、ＤＤ１、および、ＤＤ２は、
ＤＡ≧ＤＢ１≧ＤＣ１≧ＤＤ１
ＤＢ２≦ＤＣ２≦ＤＤ２
を満たす、
請求項１に記載の画像処理装置。
【請求項３】
評価値取得部は、
Ｄ＝Ｄ＋２×ｄｙ×ｋ
により、前記評価値Ｄを更新し、
更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、前記更新した評価値Ｄをさらに、
Ｄ＝Ｄ−２×ｄｘ×ｋ
により更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定する、
請求項１又は２に記載の画像処理装置。
【請求項４】
前記第１点と前記第２点とを結ぶ直線の傾きが０以上１以下でない場合、第３点と第４点とを結ぶ直線の傾きが０以上１以下となるように、前記第１点を前記第３点に座標変換し、前記第２点を前記第４点に座標変換する座標変換処理を行う座標変換部と、
前記座標変換処理の座標逆変換処理を行う座標逆変換部と、
をさらに備え、
前記線分描画情報取得部は、前記第３点を前記線分の前記始点とし、前記第４点を前記線分の前記終点として、前記第３点と前記第４点とを結ぶ線分を描画するための描画情報を取得し、
前記座標逆変換部は、前記線分描画情報取得部により取得された前記第３点と前記第４点とを結ぶ線分を描画するための描画情報に含まれる座標位置情報に対して、前記座標逆変換処理を行う、
請求項１から３のいずれかに記載の画像処理装置。
【請求項５】
前記係数ｋは、
ｋ＝２×ｎ（ｎは自然数）
である、
請求項１から４のいずれかに記載の画像処理装置。
【請求項６】
画像上において、線分を描画するための線分描画情報を取得するための画像処理方法をコンピュータに実行させるためのプログラムであって、
前記線分を描画するための情報を入力するための入力ステップと、
前記線分を描画するための描画情報を取得する線分描画情報取得ステップと、
を備え、
前記線分描画情報取得ステップは、
描画対象画素である画素Ｐ（ｘａ，ｙａ）と、前記線分の始点および前記線分の終点とを通る直線と、の位置関係を示す評価値Ｄを取得する評価値取得ステップと、
前記始点から前記終点までのｘ方向の差分量ｄｘと、前記始点から前記終点までのｙ方向の差分量ｄｙとに基づいて、少なくとも３つの閾値Ｔｈ１、Ｔｈ２およびＴｈ３を設定する閾値設定ステップと、
前記評価値Ｄと前記閾値Ｔｈ１、Ｔｈ２およびＴｈ３とに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と前記描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とを決定する描画情報決定ステップと、
を備え、
前記評価値Ｄは、
−０．５×ｄｘ×ｋ≦Ｄ≦１．５×ｄｘ×ｋ
係数ｋ：正の実数
を満たし、
前記閾値Ｔｈ１、Ｔｈ２およびＴｈ３は、
−０．５×ｄｘ×ｋ＜Ｔｈ１＜Ｔｈ２＜Ｔｈ３＜１．５×ｄｘ×ｋ
を満たし、
評価値取得ステップは、
前記評価値Ｄを前記差分量ｄｙに基づいて更新し、
更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、前記更新した評価値Ｄをさらに前記差分量ｄｘに基づいて更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定し、
更新した評価値Ｄが１．５×ｄｘ×ｋ未満である場合、次の描画対象画素をＰ（ｘａ＋１，ｙａ）に決定する、
画像処理方法をコンピュータに実行させるためのプログラム。
【請求項７】
画像上において、線分を描画するための線分描画情報を取得するための画像処理用の集積回路であって、
前記線分を描画するための情報を入力するための入力部と、
前記線分を描画するための描画情報を取得する線分描画情報取得部と、
を備え、
前記線分描画情報取得部は、
描画対象画素である画素Ｐ（ｘａ，ｙａ）と、前記線分の始点と終点とを通る直線と、の位置関係を示す評価値Ｄを取得する評価値取得部と、
前記始点から前記終点までのｘ方向の差分量ｄｘと、前記始点から前記終点までのｙ方向の差分量ｄｙとに基づいて、少なくとも３つの閾値Ｔｈ１、Ｔｈ２およびＴｈ３を設定する閾値設定部と、
前記評価値Ｄと前記閾値Ｔｈ１、Ｔｈ２およびＴｈ３とに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と前記描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とを決定する描画情報決定部と、
を備え、
前記評価値Ｄは、
−０．５×ｄｘ×ｋ≦Ｄ≦１．５×ｄｘ×ｋ
係数ｋ：正の実数
を満たし、
前記閾値Ｔｈ１、Ｔｈ２およびＴｈ３は、
−０．５×ｄｘ×ｋ＜Ｔｈ１＜Ｔｈ２＜Ｔｈ３＜１．５×ｄｘ×ｋ
を満たし、
評価値取得部は、
前記評価値Ｄを前記差分量ｄｙに基づいて更新し、
更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、前記更新した評価値Ｄをさらに前記差分量ｄｘに基づいて更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定し、
更新した評価値Ｄが１．５×ｄｘ×ｋ未満である場合、次の描画対象画素をＰ（ｘａ＋１，ｙａ）に決定する、
集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、特に、線分描画時に生じるエイリアシングを低減するための技術に関する。
【背景技術】
【０００２】
線分描画のアルゴリズムとして、ブレゼンハムアルゴリズムがある。このブレゼンハムアルゴリズムは、与えられた始点と終点の間に連続した点を置き、近似的な直線を引くためのアルゴリズムである。ブレゼンハムアルゴリズムでは、乗除算を行うことなく加減算のみで処理できるため、少ない演算量で線分描画を行うことができる。
【０００３】
しかしながら、ブレゼンハムアルゴリズムでは、例えば、斜めの直線を階段状に配置された画素により表示するため、表示画面上にジャギーと呼ばれるギザギザが発生する。
【０００４】
このジャギーを目立たないようにするために、多様なアンチエイリアス手法が提案されている。アンチエイリアス手法の１つにパワーサンプリング手法がある。このパワーサンプリング手法では、まず、実際の解像度よりも高解像度で線分描画を行う。そして、その線分描画結果を実際の解像度に戻すときに、実際の解像度での各画素において、高解像度で線分描画したときの線分を含む割合に基づいて、各画素の画素値を設定する。これにより、パワーサンプリング手法では、エイリアス成分を抑制することができ、ジャギーを目立たないようにすることができる。
【０００５】
また、斜めの直線を描画するときに、エイリアス成分を抑制し、ジャギーを目立たないようにするために、線分とその背景との境界に位置する画素（境界画素）における斜線部分の面積を計算し、その結果に基づいて、当該画素の画素値を設定する方法や、境界画素の色の濃度を算出し、算出した色の濃度に基づいて、境界画素の画素値を設定する方法がある（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４７４９８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記パワーサンプリング手法では、実際より高解像度で線分描画を行う必要があり、必要なメモリ量が多くなる。また、上記従来技術では、境界画素の面積の算出や、境界画素の色の濃度の算出といった複雑な計算を行う必要がある。
【０００８】
そこで、本発明は、上記問題点に鑑み、大容量のメモリや複雑な演算処理を必要とせず、線分描画時に生じるエイリアシングを効果的に低減する画像処理装置およびプログラムを実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、第１の発明は、画像上において、線分を描画するための線分描画情報を取得するための画像処理装置であって、入力部と、線分描画情報取得部と、を備える。
【００１０】
入力部は、線分を描画するための情報を入力するための機能部である。
【００１１】
線分描画情報取得部は、線分を描画するための描画情報を取得する。
【００１２】
線分描画情報取得部は、評価値取得部と、閾値設定部と、描画情報決定部とを備える。
【００１３】
評価値取得部は、描画対象画素である画素Ｐ（ｘａ，ｙａ）と、線分の始点と終点とを通る直線と、の位置関係を示す評価値Ｄを取得する。
【００１４】
閾値設定部は、線分の始点から終点までのｘ方向の差分量ｄｘと、線分の始点から終点までのｙ方向の差分量ｄｙとに基づいて、少なくとも３つの閾値Ｔｈ１、Ｔｈ２およびＴｈ３を設定する。
【００１５】
描画情報決定部は、評価値Ｄと閾値Ｔｈ１、Ｔｈ２およびＴｈ３とに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とを決定する。
【００１６】
そして、評価値Ｄは、
−０．５×ｄｘ×ｋ≦Ｄ≦１．５×ｄｘ×ｋ
係数ｋ：正の実数
を満たし、
閾値Ｔｈ１、Ｔｈ２およびＴｈ３は、
−０．５×ｄｘ×ｋ＜Ｔｈ１＜Ｔｈ２＜Ｔｈ３＜１．５×ｄｘ×ｋ
を満たす。
【００１７】
評価値取得部は、評価値Ｄを差分量ｄｙに基づいて更新し、更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、更新した評価値Ｄをさらに差分量ｄｘに基づいて更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定する。また、評価値取得部は、更新した評価値Ｄが１．５×ｄｘ×ｋ未満である場合、次の描画対象画素をＰ（ｘａ＋１，ｙａ）に決定する。
【００１８】
この画像処理装置では、評価値Ｄが−０．５×ｄｘ×ｋ≦Ｄ≦１．５×ｄｘ×ｋを満たす、つまり、評価値Ｄのループ区間が−０．５×ｄｘ×ｋ〜１．５×ｄｘ×ｋに設定され、少なくとも３つの閾値Ｔｈ１、Ｔｈ２、Ｔｈ３により、上記ループ区間を少なくとも４つの区間に分け、評価値Ｄがどの区間の値であるかによって、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とが決定される。
【００１９】
つまり、この画像処理装置では、評価値Ｄに基づく場合分けによって、描画対象画素Ｐ（ｘａ，ｙａ）とその隣接画素Ｐ（ｘａ，ｙａ＋１）との描画色の濃度（画素値）を、中間調を表現するように決定できるので、線分描画時に生じるエイリアシングを効果的に低減することができる。さらに、この画像処理装置では、評価値Ｄに基づく場合分けによって、描画処理を実行できるので、パワーサンプリング手法のように解像度を上げる処理を行う必要がない。その結果、この画像処理装置では、大容量のメモリ等は不要であり、また、解像度変換や、１つの画素中において線分が占める面積の計算等の複雑な演算処理も不要である。
【００２０】
第２の発明は、第１の発明であって、評価値Ｄの初期値は、「０」である。
【００２１】
描画情報決定部は、
（１）評価値Ｄが−０．５×ｄｘ×ｋ≦Ｄ＜Ｔｈ１を満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＡとし、
（２）評価値ＤがＴｈ１≦Ｄ＜Ｔｈ２を満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＢ１とするとともに、画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度を濃度ＤＢ２とし、
（３）評価値ＤがＴｈ２≦Ｄ＜Ｔｈ３を満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＣ１とするとともに、画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度を濃度ＤＣ２とし、
（４）評価値ＤがＴｈ３≦Ｄ＜１．５×ｄｘ×ｋを満たす場合、画素Ｐ（ｘａ，ｙａ）の描画色の濃度を濃度ＤＤ１とするとともに、画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度を濃度ＤＤ２とする。
【００２２】
そして、描画色の濃度の値が大きい程、描画色の濃度が濃くなるように設定した場合、濃度ＤＡ、ＤＢ１、ＤＢ２、ＤＣ１、ＤＣ２、ＤＤ１、および、ＤＤ２は、
ＤＡ≧ＤＢ１≧ＤＣ１≧ＤＤ１
ＤＢ２≦ＤＣ２≦ＤＤ２
を満たす。
【００２３】
これにより、この画像処理装置では、同列に位置する描画画素（ｘ座標位置が同一の描画画素）の重心位置が、線分の始点と終点とを通る直線と近くなるように、評価値Ｄに基づいて、描画画素およびその画素値（描画色の濃度）を決定することができる。
【００２４】
つまり、この画像処理装置では、横方向（ｘ軸方向）および縦方向（ｙ軸方向）に解像度を２倍にした場合にどのように描画位置がずれるかを考慮し、評価値Ｄのループ区間を分ける閾値Ｔｈ１〜Ｔｈ３を決定し、評価値Ｄが分割したループ区間のどの範囲に含まれるかによって、描画画素とその画素値（描画色の濃度）を決定するので、パワーサンプリング手法（オーバーサンプリング手法）と同様に、エイリアス成分を抑制することができる。その結果、この画像処理装置により描画した線分では、ジャギー（エイリアス成分）が目立たない。
【００２５】
そして、この画像処理装置では、場合分けによって、描画処理を実行することができ、実際に解像度を上げる処理等を行う必要がないので、パワーサンプリング手法（オーバーサンプリング手法）とは異なり、大容量のメモリは不要である。
【００２６】
したがって、この画像処理装置では、大容量のメモリや複雑な演算処理を必要とせず、線分描画時に生じるエイリアシングを効果的に低減することができる。
【００２７】
なお、（上記とは逆に）描画色の濃度の値が小さい程、描画色の濃度が濃くなるように設定した場合、前記濃度ＤＡ、ＤＢ１、ＤＢ２、ＤＣ１、ＤＣ２、ＤＤ１、および、ＤＤ２は、
ＤＡ≦ＤＢ１≦ＤＣ１≦ＤＤ１
ＤＢ２≧ＤＣ２≧ＤＤ２
を満たすようにすればよい。
【００２８】
第３の発明は、第１または第２の発明であって、評価値取得部は、
Ｄ＝Ｄ＋２×ｄｙ×ｋ
により、評価値Ｄを更新する。
【００２９】
そして、更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、更新した評価値Ｄをさらに、
Ｄ＝Ｄ−２×ｄｘ×ｋ
により更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定する。
【００３０】
これにより、ブレゼンハムアルゴリズムと同様に、描画対象画素を適切に特定することができる。
【００３１】
第４の発明は、第１から第３のいずれかの発明であって、座標変換部と、座標逆変換部と、さらに備える。
【００３２】
座標変換部は、第１点と第２点とを結ぶ直線の傾きが０以上１以下でない場合、第３点と第４点とを結ぶ直線の傾きが０以上１以下となるように、第１点を第３点に座標変換し、第２点を第４点に座標変換する座標変換処理を行う。
【００３３】
座標逆変換部は、座標変換処理の座標逆変換処理を行う。
【００３４】
そして、線分描画情報取得部は、第３点を線分の始点とし、第４点を線分の終点として、第３点と第４点とを結ぶ線分を描画するための描画情報を取得する。
【００３５】
座標逆変換部は、線分描画情報取得部により取得された第３点と第４点とを結ぶ線分を描画するための描画情報に含まれる座標位置情報に対して、座標逆変換処理を行う。
【００３６】
この画像処理装置では、座標変換して、第１から第３のいずれかの発明と同様の描画処理を実行し、その後、座標逆変換することで、任意の線分（任意の傾きの線分）の描画処理が実行される。したがって、この画像処理装置では、線分の傾きごとに、別々の場合分けをすることなく、第１から第３のいずれかの発明と同様の処理のみを用いて、描画処理を実行することができる。その結果、この画像処理装置では、大容量のメモリや複雑な演算処理を必要とせず、線分描画時に生じるエイリアシングを効果的に低減することができる。
【００３７】
第５の発明は、第１から第４のいずれかの発明であって、係数ｋは、
ｋ＝２×ｎ（ｎは自然数）
である。
【００３８】
この画像処理装置では、係数ｋが２の倍数となるため、描画処理（評価値Ｄと閾値との比較処理や、評価値Ｄの更新処理等）を整数演算のみで実現することができる。
【００３９】
第６の発明は、画像上において、線分を描画するための線分描画情報を取得するための画像処理方法をコンピュータに実行させるためのプログラムである。
【００４０】
画像処理方法は、入力ステップと、線分描画情報取得ステップと、を備える。
【００４１】
入力ステップは、線分を描画するための情報を入力するためのステップである。
【００４２】
線分描画情報取得ステップは、線分を描画するための描画情報を取得する。
【００４３】
線分描画情報取得ステップは、評価値取得ステップと、閾値設定ステップと、描画情報決定ステップとを備える。
【００４４】
評価値取得ステップは、描画対象画素である画素Ｐ（ｘａ，ｙａ）と、線分の始点および線分の終点とを通る直線と、の位置関係を示す評価値Ｄを取得する。
【００４５】
閾値設定ステップは、線分の始点から終点までのｘ方向の差分量ｄｘと、線分の始点から終点までのｙ方向の差分量ｄｙとに基づいて、少なくとも３つの閾値Ｔｈ１、Ｔｈ２およびＴｈ３を設定する。
【００４６】
描画情報決定ステップは、評価値Ｄと閾値Ｔｈ１、Ｔｈ２およびＴｈ３とに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とを決定する。
【００４７】
そして、評価値Ｄは、
−０．５×ｄｘ×ｋ≦Ｄ≦１．５×ｄｘ×ｋ
係数ｋ：正の実数
を満たす。
【００４８】
閾値Ｔｈ１、Ｔｈ２およびＴｈ３は、
−０．５×ｄｘ×ｋ＜Ｔｈ１＜Ｔｈ２＜Ｔｈ３＜１．５×ｄｘ×ｋ
を満たす。
【００４９】
評価値取得ステップは、評価値Ｄを差分量ｄｙに基づいて更新し、更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、更新した評価値Ｄをさらに差分量ｄｘに基づいて更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定する。また、評価値取得ステップは、更新した評価値Ｄが１．５×ｄｘ×ｋ未満である場合、次の描画対象画素をＰ（ｘａ＋１，ｙａ）に決定する。
【００５０】
これにより、第１の発明と同様の効果を奏するプログラムを実現することができる。
【００５１】
第７の発明は、画像上において、線分を描画するための線分描画情報を取得するための画像処理用の集積回路であって、入力部と、線分描画情報取得部と、を備える。
【００５２】
入力部は、線分を描画するための情報を入力するための機能部である。
【００５３】
線分描画情報取得部は、線分を描画するための描画情報を取得する。
【００５４】
線分描画情報取得部は、評価値取得部と、閾値設定部と、描画情報決定部とを備える。
【００５５】
評価値取得部は、描画対象画素である画素Ｐ（ｘａ，ｙａ）と、線分の始点と終点とを通る直線と、の位置関係を示す評価値Ｄを取得する。
【００５６】
閾値設定部は、線分の始点から終点までのｘ方向の差分量ｄｘと、線分の始点から終点までのｙ方向の差分量ｄｙとに基づいて、少なくとも３つの閾値Ｔｈ１、Ｔｈ２およびＴｈ３を設定する。
【００５７】
描画情報決定部は、評価値Ｄと閾値Ｔｈ１、Ｔｈ２およびＴｈ３とに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度と描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度とを決定する。
【００５８】
そして、評価値Ｄは、
−０．５×ｄｘ×ｋ≦Ｄ≦１．５×ｄｘ×ｋ
係数ｋ：正の実数
を満たし、
閾値Ｔｈ１、Ｔｈ２およびＴｈ３は、
−０．５×ｄｘ×ｋ＜Ｔｈ１＜Ｔｈ２＜Ｔｈ３＜１．５×ｄｘ×ｋ
を満たす。
【００５９】
評価値取得部は、評価値Ｄを差分量ｄｙに基づいて更新し、更新した評価値Ｄが１．５×ｄｘ×ｋ以上である場合、更新した評価値Ｄをさらに差分量ｄｘに基づいて更新するとともに、次の描画対象画素をＰ（ｘａ＋１，ｙａ＋１）に決定する。また、評価値取得部は、更新した評価値Ｄが１．５×ｄｘ×ｋ未満である場合、次の描画対象画素をＰ（ｘａ＋１，ｙａ）に決定する。
【００６０】
これにより、第１の発明と同様の効果を奏する集積回路を実現することができる。
【００６１】
なお、集積回路は、レンダリングモジュール等を含む概念である。
【発明の効果】
【００６２】
本発明によれば、大容量のメモリや複雑な演算処理を必要とせず、線分描画時に生じるエイリアシングを効果的に低減する画像処理装置およびプログラムを実現することができる。
【図面の簡単な説明】
【００６３】
【図１】第１実施形態に係る画像処理システム１０００の概略構成図。
【図２】第１実施形態に係る画像処理システム１０００の処理フローチャート。
【図３】第１実施形態に係る画像処理システム１０００による線分描画処理の結果（一例）を示す図。
【図４】第１実施形態に係る画像処理システム１０００による線分描画処理の結果（一例）を示す図。
【図５】第１実施形態に係る画像処理システム１０００による線分描画処理の結果（一例）とブレゼンハムアルゴリズムによる線分描画処理結果とを示す図。
【図６】従来のブレゼンハムアルゴリズムによる線分描画処理について説明するための図。
【図７】解像度を縦方向（ｙ軸方向）に２倍にした場合の評価値Ｄのループ区間と、画素のずれ量との関係を模式的に示す図。
【図８】解像度を横方向（ｘ軸方向）に２倍にした場合の評価値Ｄのループ区間と、画素のずれ量との関係を模式的に示す図。
【図９】ｄｙ≦０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図。
【図１０】ｄｙ＞０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図。
【図１１】ｄｙ≦０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図。
【図１２】ｄｙ＞０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図。
【図１３】第１実施形態に係る画像処理システム１０００の処理を一般化した場合のフローチャート。
【図１４】第１実施形態の第１変形例に係る画像処理システム１０００Ａの概略構成図。
【図１５】座標変換を説明するための図。
【発明を実施するための形態】
【００６４】
［第１実施形態］
第１実施形態について、図面を参照しながら、以下、説明する。
【００６５】
＜１．１：画像処理システムの構成＞
図１は、第１実施形態に係る画像処理システム１０００の概略構成図である。
【００６６】
画像処理システム１０００は、図１に示すように、画像処理装置１と、表示用メモリ２と、表示部３と、を備える。
【００６７】
画像処理装置１は、図１に示すように、入力部１１と、閾値設定部１２と、評価値取得部１３と、描画情報決定部１４とを備える。
【００６８】
入力部１１は、描画する線分についての情報（以下、「線分情報」という。）を入力するための機能部である。例えば、表示部３の表示画面に表示される画像上において、始点（ｘ１，ｙ１）から終点（ｘ２，ｙ２）に線分を描画する場合、入力部１には、線分の始点の情報、終点の情報、線分の太さ、線分の色、線分の色の濃度等の線分情報が入力される。入力部１１は、線分情報を、閾値設定部１２と、評価値取得部１３と、描画情報決定部１４とに出力する。
【００６９】
閾値設定部１２は、入力部１１から出力される線分情報を入力し、線分情報から描画対象画素Ｐ（ｘａ，ｙａ）の色濃度（例えば、画素値）と、描画対象画素Ｐ（ｘａ，ｙａ）のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の色濃度（例えば、画素値）とを決定するための閾値を少なくとも３つ設定する。なお、この閾値をＴｈ１、Ｔｈ２、および、Ｔｈ３とする。そして、閾値設定部１２は、設定した閾値の情報を描画情報決定部１４に出力する。
【００７０】
評価値取得部１３は、入力部１１から出力される線分情報を入力し、線分情報から描画対象画素である画素Ｐ（ｘａ，ｙａ）と、前記始点（ｘ１，ｙ１）および前記終点（ｘ２，ｙ２）を通る直線と、の位置関係を示す評価値Ｄを取得する。そして、評価値取得部１３は、取得した評価値Ｄに関する情報を描画情報決定部１４に出力する。
【００７１】
描画情報決定部１４は、入力部１１から出力される線分情報と、閾値設定部１２から出力される閾値の情報と、評価値取得部１３から出力される評価値Ｄに関する情報を入力する。描画情報決定部１４は、線分情報と、閾値設定部１２により設定された閾値Ｔｈ１、Ｔｈ２、Ｔｈ３と、評価値Ｄとに基づいて、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度（例えば、画素値）と前記描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度（例えば、画素値）とを決定する。そして、描画情報決定部１４は、描画対象画素Ｐ（ｘａ，ｙａ）の描画色の濃度が決定した値となるように、表示用メモリ２の描画対象画素Ｐ（ｘａ，ｙａ）に対応するアドレスにデータを書き込む。また、描画情報決定部１４は、隣接画素Ｐ（ｘａ，ｙａ＋１）の描画色の濃度が決定した値となるように、表示用メモリ２の描画対象画素Ｐ（ｘａ，ｙａ＋１）に対応するアドレスにデータを書き込む。
【００７２】
表示用メモリ２は、表示部３の表示画面に画像を表示するためのメモリである。表示用メモリ２の所定のアドレスにデータを書き込むことにより、当該アドレスに対応する画素（表示部３の表示画面に表示される画像の画素）の画素値が、書き込まれたデータに対応する画素値となり、表示部３の表示画面に表示される。表示用メモリ２として、例えば、ビデオバッファ、レンダリングバッファ、フレームメモリ、あるいは、ＶＲＡＭが用いられる。
【００７３】
表示部３は、画像を表示することができる表示画面を有しており、表示用メモリ２に書き込まれたデータに従い、表示画面に画像を表示する。
【００７４】
＜１．２：画像処理システムの動作＞
以上のように構成された画像処理システム１０００の動作について、図面を参照しながら、説明する。
【００７５】
図２は、画像処理システム１０００の処理フローチャートである。
【００７６】
なお、以下では、説明便宜のため、線分の始点の座標が（ｘ１，ｙ１）であり、線分の終点の座標が（ｘ２，ｙ２）、線の太さが「１」（１画素分の太さ）であり、黒地の背景に白色の線を引く（描画する）場合について、説明する。
【００７７】
また、説明便宜のため、線分を描画する画像は、輝度画像（Ｙ画像）であり、画素値は８ビットであり、０〜２５５の値（画素値「２５５」が「白」（Ｗ１００％）であるとする。）をとるものとする。
（Ｓ１）：
入力部１１では、線分の始点の座標（ｘ１，ｙ１）、線分の終点の座標（ｘ２，ｙ２）、線の太さ「１」（１画素分の太さ）、線分の画素値「２５５」（白）を示す線分情報が入力される。つまり、最初の描画対象画素が画素Ｐ（ｘ１，ｙ１）に設定される。描画対象画素Ｐのｘ座標をｘとし、ｙ座標をｙとすると、描画対象画素が画素Ｐ（ｘ１，ｙ１）のとき、
ｘ＝ｘ１
ｙ＝ｙ１
である。
【００７８】
また、評価値取得部１３は、評価値Ｄを初期値「０」に設定する。
（Ｓ２）：
閾値設定部１２は、線分情報から線分の始点と終点とのｘ軸方向の差分量ｄｘおよびｙ軸方向の差分量ｄｙを、
ｄｘ＝ｘ２−ｘ１
ｄｙ＝ｙ２−ｙ１
により算出する。
【００７９】
そして、閾値設定部１２は、閾値Ｔｈ１、Ｔｈ２、および、Ｔｈ３を、
Ｔｈ１＝ｄｘ−２×ｄｙ
Ｔｈ２＝ｄｘ
Ｔｈ３＝３×ｄｘ−２×ｄｙ
により算出した値に設定する。
（Ｓ３）：
最初の描画対象画素Ｐ（ｘ１，ｙ１）からｘを１ずつインクリメントし、ｘが線分の終点のｘ座標であるｘ２になるまで、ステップＳ４〜Ｓ１３の処理が繰り返し実行される。
（Ｓ４、Ｓ７）：
描画情報決定部１４は、評価値Ｄと閾値Ｔｈ１とを比較し、Ｄ＜Ｔｈ１である場合、描画対象画素Ｐ（ｘ，ｙ）の画素値を「２５５」に決定する。
【００８０】
そして、描画情報決定部１４は、画素Ｐ（ｘ，ｙ）に対応する表示用メモリ２のアドレスに、画素値「２５５」のデータを書き込む。
【００８１】
これにより、表示部３の表示画面において、画素Ｐ（ｘ，ｙ）に対応する座標位置の画素の画素値が「２５５」（Ｗ１００％）となる。
（Ｓ４、Ｓ５、Ｓ８）：
描画情報決定部１４は、評価値Ｄと閾値Ｔｈ１〜Ｔｈ２とを比較し、Ｔｈ１≦Ｄ＜Ｔｈ２である場合、描画対象画素Ｐ（ｘ，ｙ）の画素値を「１９２」に決定し、描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘ，ｙ＋１）の画素値を「６４」に決定する。
【００８２】
そして、描画情報決定部１４は、画素Ｐ（ｘ，ｙ）に対応する表示用メモリ２のアドレスに、画素値「１９２」に相当するデータを書き込む。また、描画情報決定部１４は、画素Ｐ（ｘ，ｙ＋１）に対応する表示用メモリ２のアドレスに、画素値「６４」に相当するデータを書き込む。
【００８３】
これにより、表示部３の表示画面において、画素Ｐ（ｘ，ｙ）に対応する座標位置の画素の画素値が「１９２」（Ｗ７５％）となり、画素Ｐ（ｘ，ｙ＋１）に対応する座標位置の画素の画素値が「６４」（Ｗ２５％）となる。
（Ｓ４〜Ｓ６、Ｓ９）：
描画情報決定部１４は、評価値Ｄと閾値Ｔｈ２〜Ｔｈ３とを比較し、Ｔｈ２≦Ｄ＜Ｔｈ３である場合、描画対象画素Ｐ（ｘ，ｙ）の画素値を「１２８」に決定し、描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘ，ｙ＋１）の画素値を「１２８」に決定する。
【００８４】
そして、描画情報決定部１４は、画素Ｐ（ｘ，ｙ）に対応する表示用メモリ２のアドレスに、画素値「１２８」に相当するデータを書き込む。また、描画情報決定部１４は、画素Ｐ（ｘ，ｙ＋１）に対応する表示用メモリ２のアドレスに、画素値「１２８」に相当するデータを書き込む。
【００８５】
これにより、表示部３の表示画面において、画素Ｐ（ｘ，ｙ）に対応する座標位置の画素の画素値が「１２８」（Ｗ５０％）となり、画素Ｐ（ｘ，ｙ＋１）に対応する座標位置の画素の画素値が「１２８」（Ｗ５０％）となる。
（Ｓ４〜Ｓ６、Ｓ１０）：
描画情報決定部１４は、評価値Ｄと閾値Ｔｈ３とを比較し、Ｄ≧Ｔｈ３である場合、描画対象画素Ｐ（ｘ，ｙ）の画素値を「６４」に決定し、描画対象画素のｙ軸正方向の隣接画素Ｐ（ｘ，ｙ＋１）の画素値を「１９２」に決定する。
【００８６】
そして、描画情報決定部１４は、画素Ｐ（ｘ，ｙ）に対応する表示用メモリ２のアドレスに、画素値「６４」に相当するデータを書き込む。また、描画情報決定部１４は、画素Ｐ（ｘ，ｙ＋１）に対応する表示用メモリ２のアドレスに、画素値「１９２」に相当するデータを書き込む。
【００８７】
これにより、表示部３の表示画面において、画素Ｐ（ｘ，ｙ）に対応する座標位置の画素の画素値が「６４」（Ｗ２５％）となり、画素Ｐ（ｘ，ｙ＋１）に対応する座標位置の画素の画素値が「１９２」（Ｗ７５％）となる。
（Ｓ１１）：
評価値取得部１３は、評価値Ｄを、
Ｄ＝Ｄ＋４×ｄｙ
により更新する。
（Ｓ１２、Ｓ１３）：
評価値取得部１３は、ステップＳ１１で更新した評価値Ｄと３×ｄｘとを比較し、Ｄ≧３×ｄｘである場合、評価値Ｄを
Ｄ＝Ｄ−４×ｄｘ
によりさらに更新するとともに、
ｙ＝ｙ＋１
により、ｙの座標の値を１だけインクリメントする。つまり、次の描画対象画素のｙ座標の値を現在の描画対象画素のｙ座標の値よりも１だけ大きい値にする。
【００８８】
その後、処理がステップＳ３に戻り、ステップＳ３〜Ｓ１３の処理が、ｘの値が線分の終点のｘ座標であるｘ２になるまで繰り返し実行される。
【００８９】
ここで、上記処理による線分描画の一例について、図３を用いて、説明する。
【００９０】
図３は、始点（０，０）から終点（７，３）に線分を描画する場合の処理について説明するための図である。
【００９１】
始点（０，０）から終点（７，３）に線分を描画する場合、閾値設定部１２は、
ｄｘ＝ｘ２−ｘ１＝７−０＝７
ｄｙ＝ｙ２−ｙ１＝３−０＝３
により、ｄｘ、ｄｙを算出する。
【００９２】
また、閾値設定部１２は、
Ｔｈ１＝ｄｘ−２×ｄｙ＝７−２×３＝１
Ｔｈ２＝ｄｘ＝７
Ｔｈ３＝３×ｄｘ−２×ｄｙ＝３×７−２×３＝１５
により、Ｔｈ１〜Ｔｈ３を算出する。
【００９３】
≪１回目の処理（描画対象画素：Ｐ（０，０））≫
まず、始点（０，０）の画素Ｐ（０，０）が描画対象画素に設定される。
【００９４】
また、評価値取得部１３により評価値Ｄは、初期値「０」に設定されている。
【００９５】
Ｄ＜Ｔｈ１（＝１）であるので、ステップＳ７の処理が実行される。つまり、
Ｐ（０，０）＝２５５
と決定される。なお、画素Ｐ（ｘ，ｙ）について、Ｐ（ｘ，ｙ）＝Ａという表記は、座標位置（ｘ，ｙ）の画素Ｐの画素値が「Ａ」であることを表すものとする。
【００９６】
そして、ステップＳ１１の処理において、
Ｄ＝Ｄ＋４×ｄｙ＝０＋４×３＝１２
により、評価値Ｄが更新される。
【００９７】
更新された評価値Ｄ（＝１２）は、３×ｄｘ（＝２１）より小さいので（ステップＳ１２）、次の描画対象画素が、画素Ｐ（１，０）に決定され、次の処理（２回目の処理）が実行される。
【００９８】
≪２回目の処理（描画対象画素：Ｐ（１，０））≫
２回目の処理では、描画対象画素が画素Ｐ（１，０）であり、評価値Ｄが「１２」である。
【００９９】
Ｔｈ２≦Ｄ＜Ｔｈ３（Ｄ＝１２、Ｔｈ２＝７、Ｔｈ３＝１５）であるので、ステップＳ９の処理が実行される。つまり、画素Ｐ（１，０）および画素Ｐ（１，１）の画素値は、
Ｐ（１，０）＝１２８
Ｐ（１，１）＝１２８
と決定される。
【０１００】
そして、ステップＳ１１の処理において、
Ｄ＝Ｄ＋４×ｄｙ＝１２＋４×３＝２４
により、評価値Ｄが更新される。
【０１０１】
更新された評価値Ｄ（＝２４）は、３×ｄｘ（＝２１）より大きいので（ステップＳ１２）、ステップＳ１３の処理が実行される。つまり、
Ｄ＝Ｄ−４×ｄｘ＝２４−４×７＝−４
ｙ＝ｙ＋１＝０＋１＝１
となる。これにより、次の描画対象画素が、画素Ｐ（２，１）に決定される。
【０１０２】
≪３回目の処理（描画対象画素：Ｐ（２，１））≫
３回目の処理では、描画対象画素が画素Ｐ（２，１）であり、評価値Ｄが「−４」である。
【０１０３】
Ｄ＜Ｔｈ１（Ｄ＝−４、Ｔｈ１＝１）であるので、ステップＳ７の処理が実行される。つまり、画素Ｐ（２，１）の画素値は、
Ｐ（２，１）＝２５５
と決定される。
【０１０４】
そして、ステップＳ１１の処理において、
Ｄ＝Ｄ＋４×ｄｙ＝−４＋４×３＝８
により、評価値Ｄが更新される。
【０１０５】
更新された評価値Ｄ（＝８）は、３×ｄｘ（＝２１）より小さいので（ステップＳ１２）、ステップＳ１３の処理は実行されず、次の描画対象画素が、画素Ｐ（３，１）に決定される。
【０１０６】
≪４回目の処理（描画対象画素：Ｐ（３，１））≫
４回目の処理では、描画対象画素が画素Ｐ（３，１）であり、評価値Ｄが「８」である。
【０１０７】
Ｔｈ２≦Ｄ＜Ｔｈ３（Ｄ＝８、Ｔｈ２＝７、Ｔｈ３＝１５）であるので、ステップＳ９の処理が実行される。つまり、画素Ｐ（３，１）および画素Ｐ（３，２）の画素値は、
Ｐ（３，１）＝１２８
Ｐ（３，２）＝１２８
と決定される。
【０１０８】
そして、ステップＳ１１の処理において、
Ｄ＝Ｄ＋４×ｄｙ＝８＋４×３＝２０
により、評価値Ｄが更新される。
【０１０９】
更新された評価値Ｄ（＝２０）は、３×ｄｘ（＝２１）より小さいので（ステップＳ１２）、ステップＳ１３の処理は実行されず、次の描画対象画素が、画素Ｐ（４，１）に決定される。
【０１１０】
≪５回目の処理（描画対象画素：Ｐ（４，１））≫
５回目の処理では、描画対象画素が画素Ｐ（４，１）であり、評価値Ｄが「２０」である。
【０１１１】
Ｔｈ３＜Ｄ（Ｄ＝２０、Ｔｈ３＝１５）であるので、ステップＳ１０の処理が実行される。つまり、画素Ｐ（４，１）および画素Ｐ（４，２）の画素値は、
Ｐ（４，１）＝６４
Ｐ（４，２）＝１９２
と決定される。
【０１１２】
そして、ステップＳ１１の処理において、
Ｄ＝Ｄ＋４×ｄｙ＝２０＋４×３＝３２
により、評価値Ｄが更新される。
【０１１３】
更新された評価値Ｄ（＝３２）は、３×ｄｘ（＝２１）より大きいので（ステップＳ１２）、ステップＳ１３の処理が実行される。つまり、
Ｄ＝Ｄ−４×ｄｘ＝３２−４×７＝４
ｙ＝ｙ＋１＝１＋１＝２
となる。これにより、次の描画対象画素が、画素Ｐ（５，２）に決定される。
【０１１４】
≪６回目の処理（描画対象画素：Ｐ（５，２））≫
６回目の処理では、描画対象画素が画素Ｐ（５，２）であり、評価値Ｄが「４」である。
【０１１５】
Ｔｈ１＜Ｄ≦Ｔｈ２（Ｄ＝４、Ｔｈ１＝１、Ｔｈ２＝７）であるので、ステップＳ８の処理が実行される。つまり、画素Ｐ（５，２）および画素Ｐ（５，３）の画素値は、
Ｐ（５，２）＝１９２
Ｐ（４，２）＝６４
と決定される。
【０１１６】
そして、ステップＳ１１の処理において、
Ｄ＝Ｄ＋４×ｄｙ＝４＋４×３＝１６
により、評価値Ｄが更新される。
【０１１７】
更新された評価値Ｄ（＝１６）は、３×ｄｘ（＝２１）より小さいので（ステップＳ１２）、ステップＳ１３の処理は実行されず、次の描画対象画素が、画素Ｐ（６，２）に決定される。
【０１１８】
≪７回目の処理（描画対象画素：Ｐ（６，２））≫
７回目の処理では、描画対象画素が画素Ｐ（６，２）であり、評価値Ｄが「１６」である。
【０１１９】
Ｔｈ３＜Ｄ（Ｄ＝１６、Ｔｈ３＝１５）であるので、ステップＳ１０の処理が実行される。つまり、画素Ｐ（６，２）および画素Ｐ（６，３）の画素値は、
Ｐ（６，２）＝６４
Ｐ（６，２）＝１９２
と決定される。
【０１２０】
そして、ステップＳ１１の処理において、
Ｄ＝Ｄ＋４×ｄｙ＝１６＋４×３＝２８
により、評価値Ｄが更新される。
【０１２１】
更新された評価値Ｄ（＝２８）は、３×ｄｘ（＝２１）より大きいので（ステップＳ１２）、ステップＳ１３の処理が実行される。つまり、
Ｄ＝Ｄ−４×ｄｘ＝２８−４×７＝０
ｙ＝ｙ＋１＝２＋１＝３
となる。これにより、次の描画対象画素が、画素Ｐ（７，３）に決定される。
【０１２２】
≪８回目の処理（描画対象画素：Ｐ（７，３））≫
８回目の処理では、描画対象画素が画素Ｐ（７，３）であり、評価値Ｄが「０」である。
【０１２３】
Ｄ＜Ｔｈ１（Ｄ＝０、Ｔｈ１＝１）であるので、ステップＳ７の処理が実行される。つまり、画素Ｐ（７，３）画素値は、
Ｐ（７，３）＝２５５
と決定される。
【０１２４】
ｘの値が線分の終点のｘの値（＝７）と一致しているので、８回目の処理を実行した後、線分描画処理が終了する。
【０１２５】
以上の処理により、図３に示すように、始点（０，０）から終点（７，３）に線分が描画される。また、図４は、図３に、始点（０，０）と終点（７，３）とを結ぶ線分Ｌ１およびｘ座標の値が同じ描画画素（画素値が「０」でないの画素）の重心の位置を丸印で追加した図である。なお、図４に示した重心の位置は、（１）ｘ座標の値が同じ描画画素が１つである場合は、当該描画画素の座標位置であり、（２）ｘ座標の値が同じ描画画素が画素ＰＡ（ｘ０，ｙ０）、画素ＰＢ（ｘ０，ｙ０＋１）の２つであり、画素ＰＡの画素値がｋ１であり、画素ＰＢの画素値がｋ２である場合、重心位置の座標（ｘｃ，ｙｃ）は、
ｘｃ＝ｘ０
ｙｃ＝ｙ０＋ｋ２／（ｋ１＋ｋ２）
である。
【０１２６】
図３、図４から分かるように、画像処理システム１０００により、上記処理を実行することで、始点（０，０）から終点（７，３）への線分を、中間調を有する画素により表現することができる。また、図４から分かるように、同列に位置する描画画素（ｘ座標位置が同一の描画画素）の重心位置と、始点（０，０）および終点（７，３）を通る直線Ｌ１とのずれが少ない。つまり、画像処理システム１０００により、上記処理を実行することで、適切に線分を描画することができる。
【０１２７】
また、図５に、ブレゼンハムアルゴリズムにより線分描画した線分ＬＨ１および線分ＬＨ１の一部を拡大して表示した線分ＬＨ２と、画像処理システム１０００による線分描画した線分ＬＡ１および線分ＬＡ１の一部を拡大して表示した線分ＬＡ２と、を示す。
【０１２８】
図５から分かるように、ブレゼンハムアルゴリズムにより描画した線分ではジャギー（エイリアス成分）が目立つが、画像処理システム１０００により描画した線分では、ジャギーが目立たず、エイリアス成分が適切に抑制されていることが分かる。
【０１２９】
ここで、画像処理システム１０００による描画処理の原理について説明する。
【０１３０】
まず、図６を参照しながら、従来のブレゼンハムアルゴリズムによる線分描画処理について、説明する。なお、図６に示すように、始点Ｐ（０，０）から終点Ｐ（７，３）に線分を引く場合について説明する。
【０１３１】
ブレゼンハムアルゴリズムによる描画処理では、まず、始点Ｐ（０，０）を描画画素として、所定の画素値に設定する（図６では、黒く塗りつぶした状態）。なお、説明便宜のため、描画画素の画素値を「１」として、以下、説明する。
【０１３２】
次に、描画画素の候補は、画素Ｐ（１，０）と、画素Ｐ（１，１）となる。そして、この２つの画素の中点（図６に白丸で示した点）と、始点Ｐ（０，０）および終点Ｐ（７，３）を通る直線との位置関係（上下関係）を判定する。図６から分かるように、直線Ｌ１は、画素Ｐ（１，０）と画素Ｐ（１，１）との中点（１，０．５）よりも上側に位置しているので、ｘ＝１のときの描画画素は、直線Ｌ１により近い画素Ｐ（１，０）となる。
【０１３３】
このような処理を終点（７，３）まで繰り返すことで、始点Ｐ（０，０）から終点Ｐ（７，３）へ線分描画することができる（直線Ｌ１を近似して表示することができる）。
【０１３４】
上記処理は、評価値Ｄと、始点Ｐ（０，０）と終点Ｐ（７，３）とのｘ軸方向の差分量ｄｘ、ｙ軸方向の差分量ｄｙとを用いて、以下のように表現することができる。
【０１３５】
評価値Ｄは、初期値「０」で、ｘ軸方向正方向に＋１する度に、２×ｄｙが加算される。その加算結果がｄｘを超えた場合、ｙ方向に＋１進むように、描画画素を選択する。そして、ｙ方向に＋１進んだ場合、評価値Ｄの値から２×ｄｘを減算する。これを繰り返すことで、始点から終点まで線分描画することができる。
【０１３６】
図６の場合、以下のようになる。
（１）１回目の処理
Ｄ＝Ｄ＋２×ｄｙ＝０＋２×３＝６
Ｄ＜ｄｘ（Ｄ＝６、ｄｘ＝７）なので、次の描画画素は、Ｐ（１，０）に決定される。
（２）２回目の処理
Ｄ＝Ｄ＋２×ｄｙ＝６＋２×３＝１２
Ｄ＞ｄｘ（Ｄ＝１２、ｄｘ＝７）なので、次の描画画素は、Ｐ（２，１）に決定される。
【０１３７】
また、評価値Ｄから２×ｄｘが減算される。つまり、
Ｄ＝Ｄ−２×ｄｘ＝１２−２×７＝−２
となる。
（３）３回目の処理
Ｄ＝Ｄ＋２×ｄｙ＝−２＋２×３＝４
Ｄ＜ｄｘ（Ｄ＝４、ｄｘ＝７）なので、次の描画画素は、Ｐ（３，１）に決定される。
（４）４回目の処理
Ｄ＝Ｄ＋２×ｄｙ＝４＋２×３＝１０
Ｄ＞ｄｘ（Ｄ＝１０、ｄｘ＝７）なので、次の描画画素は、Ｐ（４，２）に決定される。
【０１３８】
また、評価値Ｄから２×ｄｘが減算される。つまり、
Ｄ＝Ｄ−２×ｄｘ＝１０−２×７＝−４
となる。
（５）５回目の処理
Ｄ＝Ｄ＋２×ｄｙ＝−４＋２×３＝２
Ｄ＜ｄｘ（Ｄ＝２、ｄｘ＝７）なので、次の描画画素は、Ｐ（５，２）に決定される。
（６）６回目の処理
Ｄ＝Ｄ＋２×ｄｙ＝２＋２×３＝８
Ｄ＞ｄｘ（Ｄ＝８、ｄｘ＝７）なので、次の描画画素は、Ｐ（６，３）に決定される。
【０１３９】
また、評価値Ｄから２×ｄｘが減算される。つまり、
Ｄ＝Ｄ−２×ｄｘ＝８−２×７＝−６
となる。
（７）７回目の処理
Ｄ＝Ｄ＋２×ｄｙ＝−６＋２×３＝０
Ｄ＜ｄｘ（Ｄ＝０、ｄｘ＝７）なので、次の描画画素は、Ｐ（７，３）に決定される。
【０１４０】
以上の処理により、図６に示すように、始点Ｐ（０，０）から終点Ｐ（７，３）へブレゼンハムアルゴリズムにより線分描画される。
【０１４１】
上記の処理から分かるように、ブレゼンハムアルゴリズムでは、評価値Ｄは、０から２×ｄｙずつ増加し、−ｄｘとｄｘの間をループする。
【０１４２】
画像処理システム１０００では、ブレゼンハムアルゴリズムにおいて、―ｄｘからｄｘであった評価値Ｄのループ区間を、−０．５×ｄｘから１．５×ｄｘの区間に変更し、さらに、当該区間を３つの閾値Ｔｈ１、Ｔｈ２、Ｔｈ３で区切り、描画処理を実行する。これにより、画像処理システム１０００では、場合分けのみで、線分描画時に生じるエイリアシングを効果的に低減することができる。これについて、以下、説明する。
【０１４３】
解像度を縦方向（ｙ軸方向）に２倍にした場合と、横方向（ｘ軸方向）に２倍にした場合を考える。
【０１４４】
まず、解像度を縦方向（ｙ軸方向）に２倍にした場合を考える。
【０１４５】
図７は、解像度を縦方向（ｙ軸方向）に２倍にした場合の評価値Ｄのループ区間と、画素のずれ量との関係を模式的に示す図である。
【０１４６】
図７に示すように、解像度を縦方向（ｙ軸方向）に２倍にしてブレゼンハムアルゴリズムにより、線分描画すると、解像度を上げないでブレゼンハムアルゴリズムにより線分描画した場合に比べて、（１）評価値Ｄが−ｄｘ〜−０．５×ｄｘの区間の値である場合、１画素分上にずれる可能性があり、（２）評価値Ｄが０．５×ｄｘ〜ｄｘの区間の値である場合、１画素分下にずれる可能性がある。
【０１４７】
なお、評価値Ｄが−０．５×ｄｘ〜０．５×ｄｘの区間の値である場合は、画素ずれは発生しない。
【０１４８】
次に、解像度を横方向（ｘ軸方向）に２倍にした場合を考える。
【０１４９】
図８は、解像度を横方向（ｘ軸方向）に２倍にした場合の評価値Ｄのループ区間と、画素のずれ量との関係を模式的に示す図である。
【０１５０】
図８に示すように、解像度を横方向（ｘ軸方向）に２倍にしてブレゼンハムアルゴリズムにより、線分描画すると、解像度を上げないでブレゼンハムアルゴリズムにより線分描画した場合に比べて、評価値Ｄがｄｘ−ｄｙ〜ｄｘの区間の値である場合、１画素分斜め方向にずれる可能性がある。
【０１５１】
なお、評価値Ｄが−ｄｘ〜ｄｘ−ｄｙの区間の値である場合は、画素ずれは発生しない。
【０１５２】
したがって、上記を考慮し、―０．５×ｄｘと０．５×ｄｘと、それらからｄｙを減算した値−０．５×ｄｘ―ｄｙと０．５×ｄｘ−ｄｙとを閾値とし、評価値Ｄのループ区間を分け、評価値Ｄがどの区間の値であるかにより、画素値を中間調とすることで、エイリアス成分を抑制して線分描画することができる。なお、ｄｙ＞０．５×ｄｘの場合は、−０．５×ｄｘ−ｄｙは、―ｄｘ〜ｄｘの範囲に入らないので、代わりに、１．５×ｄｘ―ｄｙを閾値とする。
【０１５３】
具体的には、図９、図１０に示すように、場合分けを行う。
【０１５４】
図９は、ｄｙ≦０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図である。
【０１５５】
図９に示すように、ｄｙ≦０．５×ｄｘの場合、描画対象画素をＰ（ｘ，ｙ）とし、画素値が０〜１の値をとるとして、以下の（１）〜（５）により場合分けし、画素値を決定すればよい。
（１）−ｄｘ≦Ｄ＜−０．５×ｄｘ―ｄｙの場合、
Ｐ（ｘ，ｙ−１）＝０．５
Ｐ（ｘ，ｙ）＝０．５
（２）−０．５×ｄｘ―ｄｙ≦Ｄ＜−０．５×ｄｘの場合、
Ｐ（ｘ，ｙ−１）＝０．２５
Ｐ（ｘ，ｙ）＝０．７５
（３）−０．５×ｄｘ≦Ｄ＜０．５×ｄｘ−ｄｙの場合、
Ｐ（ｘ，ｙ）＝１
（４）０．５×ｄｘ−ｄｙ≦Ｄ＜０．５×ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．７５
Ｐ（ｘ，ｙ＋１）＝０．２５
（５）０．５×ｄｘ≦Ｄ＜ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．５０
Ｐ（ｘ，ｙ＋１）＝０．５０
図１０は、ｄｙ＞０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図である。
【０１５６】
図１０に示すように、ｄｙ＞０．５×ｄｘの場合、描画対象画素をＰ（ｘ，ｙ）とし、画素値が０〜１の値をとるとして、以下の（１）〜（５）により場合分けし、画素値を決定すればよい。
（１）−ｄｘ≦Ｄ＜−０．５×ｄｘの場合、
Ｐ（ｘ，ｙ−１）＝０．２５
Ｐ（ｘ，ｙ）＝０．７５
（２）−０．５×ｄｘ≦Ｄ＜０．５×ｄｘ−ｄｙの場合、
Ｐ（ｘ，ｙ）＝１
（３）０．５×ｄｘ−ｄｙ≦Ｄ＜０．５×ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．７５
Ｐ（ｘ，ｙ＋１）＝０．２５
（４）０．５×ｄｘ≦Ｄ＜１．５×ｄｘ−ｄｙの場合、
Ｐ（ｘ，ｙ）＝０．５
Ｐ（ｘ，ｙ＋１）＝０．５
（５）１．５×ｄｘ−ｄｙ≦Ｄ＜ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．２５
Ｐ（ｘ，ｙ＋１）＝０．７５
上記の場合分けは、評価値Ｄのループ区間を−ｄｘ〜ｄｘとしているため、複雑になっている。そこで、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘにすることで場合分けの数を少なくすることができる。これについて、図１１、図１２を用いて、説明する。
【０１５７】
図１１は、図９と同様に、ｄｙ≦０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図である。
【０１５８】
図１２は、図１０と同様に、ｄｙ＞０．５×ｄｘの場合の評価値Ｄ、描画対象画素、および、画素値の対応関係を模式的に示す図である。
【０１５９】
図１１に示すように、評価値Ｄのループ区間を−ｄｘ〜ｄｘ（図１１中の区間Ｔ１）とした場合の区間Ｔａ１（−ｄｘ≦Ｄ＜−０．５×ｄｘ―ｄｙ）は、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘ（図１１中の区間Ｔ２）とした場合の区間Ｔｂ１（ｄｘ≦Ｄ＜０．５×ｄｘ―ｄｙ）と同じ処理が実行されることを意味する。つまり、ブレゼンハムアルゴリズムでは、評価値Ｄがｄｘを超えるとｙ方向に＋１進んだ画素を描画画素とするので、区間Ｔａ１の描画画素の上隣の画素（図１１の画素Ｐａ１）は、区間Ｔｂ１の描画画素（図１１の画素Ｐｂ１）と同じと考えることができる。
【０１６０】
また、同様に、評価値Ｄのループ区間を−ｄｘ〜ｄｘとした場合の区間Ｔａ２（−０．５×ｄｘ≦Ｄ＜−０．５×ｄｘ）は、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘとした場合の区間Ｔｂ２（−０．５×ｄｘ−ｄｙ≦Ｄ＜１．５）と同じ処理が実行されることを意味する。つまり、ブレゼンハムアルゴリズムでは、評価値Ｄがｄｘを超えるとｙ方向に＋１進んだ画素を描画画素とするので、区間Ｔａ２の描画画素の上隣の画素（図１１の画素Ｐａ２）は、区間Ｔｂ２の描画画素（図１１の画素Ｐｂ２）と同じと考えることができる。
【０１６１】
また、図１２に示すように、評価値Ｄのループ区間を−ｄｘ〜ｄｘ（図１２中の区間Ｔ１）とした場合の区間Ｔｃ１（−ｄｘ≦Ｄ＜−０．５×ｄｘ）は、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘ（図１２中の区間Ｔ２）とした場合の区間Ｔｄ１（ｄｘ≦Ｄ＜１．５×ｄｘ）と同じ処理が実行されることを意味する。つまり、ブレゼンハムアルゴリズムでは、評価値Ｄがｄｘを超えるとｙ方向に＋１進んだ画素を描画画素とするので、区間Ｔｃ１の描画画素の上隣の画素（図１２の画素Ｐｃ１）は、区間Ｔｄ１の描画画素（図１２の画素Ｐｄ１）と同じと考えることができる。
【０１６２】
また、図１１の場合（ｄｙ≦０．５×ｄｘの場合）、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘとしたとき、
（１）−０．５×ｄｘ≦Ｄ＜０．５×ｄｘ―ｄｙの場合、
Ｐ（ｘ，ｙ）＝１
（２）０．５×ｄｘ−ｄｙ≦Ｄ＜０．５×ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．７５
Ｐ（ｘ，ｙ＋１）＝０．２５
（３）０．５×ｄｘ≦Ｄ＜１．５×ｄｘ−ｄｙの場合、
Ｐ（ｘ，ｙ）＝０．５
Ｐ（ｘ，ｙ＋１）＝０．５
（４）１．５×ｄｘ−ｄｙ≦Ｄ＜１．５×ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．２５
Ｐ（ｘ，ｙ＋１）＝０．７５
となる。
【０１６３】
また、図１２の場合（ｄｙ＞０．５×ｄｘの場合）、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘとしたとき、
（１）−０．５×ｄｘ≦Ｄ＜０．５×ｄｘ―ｄｙの場合、
Ｐ（ｘ，ｙ）＝１
（２）０．５×ｄｘ−ｄｙ≦Ｄ＜０．５×ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．７５
Ｐ（ｘ，ｙ＋１）＝０．２５
（３）０．５×ｄｘ≦Ｄ＜１．５×ｄｘ−ｄｙの場合、
Ｐ（ｘ，ｙ）＝０．５
Ｐ（ｘ，ｙ＋１）＝０．５
（４）１．５×ｄｘ−ｄｙ≦Ｄ＜１．５×ｄｘの場合、
Ｐ（ｘ，ｙ）＝０．２５
Ｐ（ｘ，ｙ＋１）＝０．７５
となる。
【０１６４】
上記から分かるように、図１１の場合（ｄｙ≦０．５×ｄｘの場合）も、図１２の場合（ｄｙ＞０．５×ｄｘの場合）も、同じ場合分けによる同じ処理となる。
【０１６５】
つまり、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘとし、３つの閾値Ｔｈ１、Ｔｈ２、Ｔｈ３を、
Ｔｈ１＝０．５×ｄｘ−ｄｙ
Ｔｈ２＝０．５×ｄｘ
Ｔｈ３＝１．５×ｄｘ―ｄｙ
とし、評価値Ｄのループ区間を４つ区間に分けて描画処理を行えばよい。
【０１６６】
さらに、画像処理システム１０００での描画処理は、ブレゼンハムアルゴリズムによる描画処理と同様、Ｎ回目の処理での描画対象画素を画素Ｐ（ｘｎ，ｙｎ）とすると、Ｎ＋１回目の処理での描画対象画素は、画素Ｐ（ｘｎ＋１，ｙｎ）または画素Ｐ（ｘｎ＋１，ｙｎ＋１）であるため、
ｄｙ／ｄｘ≦１
ｄｙ≦ｄｘ
が成り立つ。
【０１６７】
したがって、
−０．５×ｄｘ≦０．５×ｄｘ−ｄｙ≦０．５×ｄｘ≦１．５×ｄｘ―ｄｙ≦１．５×ｄｘ
が成り立つ。
【０１６８】
つまり、
−０．５×ｄｘ≦Ｔｈ１≦Ｔｈ２≦Ｔｈ３≦１．５×ｄｘ
が成り立つので、図１１の場合（ｄｙ≦０．５×ｄｘの場合）も、図１２の場合（ｄｙ＞０．５×ｄｘの場合）も、−０．５ｄｘ、Ｔｈ１〜Ｔｈ３、１．５×ｄｘの大小関係は同じである。
【０１６９】
したがって、図１１の場合（ｄｙ≦０．５×ｄｘの場合）も、図１２の場合（ｄｙ＞０．５×ｄｘの場合）も、同じ場合分けによる同じ処理を実行すればよいことになる。
【０１７０】
このように、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘにすることで、評価値Ｄのループ区間を−ｄｘ〜ｄｘとする場合に比べて、場合分けの数を少なくすることができる。
【０１７１】
画像処理システム１０００では、評価値Ｄのループ区間を−０．５×ｄｘ〜１．５×ｄｘに設定し、上記のように設定した３つの閾値Ｔｈ１、Ｔｈ２、Ｔｈ３により、上記ループ区間を４つの区間に分け、評価値Ｄがどの区間の値であるかによって、描画画素およびその画素値（描画色の濃度）を決定する。そして、画像処理システム１０００では、同列に位置する描画画素（ｘ座標位置が同一の描画画素）の重心位置が、線分の始点と終点とを通る直線と近くなるように、評価値Ｄに基づいて、描画画素およびその画素値（描画色の濃度）が決定される。
【０１７２】
つまり、画像処理システム１０００では、横方向（ｘ軸方向）および縦方向（ｙ軸方向）に解像度を２倍にした場合にどのように描画位置がずれるかを考慮し、上記のように、評価値Ｄのループ区間を分ける閾値Ｔｈ１〜Ｔｈ３を決定し、評価値Ｄが分割したループ区間のどの範囲に含まれるかによって、描画画素とその画素値（描画色の濃度）を決定するので、パワーサンプリング手法（オーバーサンプリング手法）と同様に、エイリアス成分を抑制することができる。その結果、画像処理システム１０００により描画した線分では、ジャギー（エイリアス成分）が目立たない。
【０１７３】
なお、画像処理システム１０００では、場合分けによって、描画処理を実行することができ、実際に解像度を上げる処理等を行う必要がないので、パワーサンプリング手法（オーバーサンプリング手法）とは異なり、大容量のメモリは不要である。
【０１７４】
以上の通り、画像処理システム１０００では、大容量のメモリや複雑な演算処理を必要とせず、低コストで、線分描画時に生じるエイリアシングを効果的に低減することができる。
【０１７５】
なお、図２のフローチャートを用いて説明した画像処理システム１０００の処理では、整数演算のみで処理が実行できるように閾値Ｔｈ１〜Ｔｈ３、評価値Ｄの更新処理等を変更している。画像処理システム１０００の処理では、評価値Ｄと、評価値Ｄのループ区間を決定する、−０．５×ｄｘ、１．５×ｄｘと、閾値Ｔｈ１〜Ｔｈ３との大小関係が分かれば処理が実行できるので、整数演算のみで処理が実行できるように閾値Ｔｈ１〜Ｔｈ３、評価値Ｄの更新処理等を調整することができる。
【０１７６】
図１３に、画像処理システム１０００の処理を一般化した場合のフローチャートを示す。
【０１７７】
図１３のフローチャートは、図２のフローチャートにおいて、ステップＳ２をステップＳ２’に置換し、ステップＳ１１をステップＳ１１’に置換し、ステップＳ１２をステップＳ１２’に置換し、ステップＳ１３をステップＳ１３’に置換したものである。それ以外については、図１３のフローチャートは、図２のフローチャートと同じである。
【０１７８】
図１３のフローチャートにおいて、ｋは、正の実数である。
【０１７９】
ｋ＝１とした場合が、上記で説明した場合となる。つまり、ｋ＝１とした場合、
評価値Ｄのループ区間：−０．５×ｄｘ〜１．５×ｄｘ
Ｔｈ１＝０．５×ｄｘ−ｄｙ
Ｔｈ２＝０．５×ｄｘ
Ｔｈ３＝１．５×ｄｘ―ｄｙ
となる。
【０１８０】
また、図２のフローチャートは、ｋ＝２の場合である。つまり、ｋ＝２とした場合、
評価値Ｄのループ区間：−ｄｘ〜３×ｄｘ
Ｔｈ１＝ｄｘ−２×ｄｙ
Ｔｈ２＝ｄｘ
Ｔｈ３＝３×ｄｘ―２×ｄｙ
となる。
【０１８１】
この場合、整数演算のみで、描画処理を実行することができる。
【０１８２】
また、上記では、ｄｙ／ｄｘ≦１を前提とする描画処理、つまり、傾きが０以上１以下の線分の描画処理について説明したが、これに限定されることはない。線分の傾きが１以上、あるいは、０未満の線分の描画処理についても、上記と同様の考え方により、場合分けすることで、描画処理を実行するようにしてもよい。
【０１８３】
≪第１変形例≫
次に、第１実施形態の第１変形例について、説明する。
【０１８４】
図１４は、本変形例に係る画像処理システム１０００Ａの概略構成図である。
【０１８５】
本変形例の画像処理システム１０００Ａは、第１実施形態の画像処理システム１０００において、画像処理装置１を画像処理装置１Ａに置換した構成を有する。
【０１８６】
画像処理装置１Ａは、画像処理装置１において、座標変換部１５と座標逆変換部１６とを追加した構成を有する。
【０１８７】
それ以外については、本変形例の画像処理システム１０００Ａは、第１実施形態の画像処理システム１０００と同様である。
【０１８８】
以下では、本変形例に特有の部分について説明する。また、本変形例において、上記実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１８９】
座標変換部１５は、入力部１１から出力される線分情報を入力し、線分の始点の座標（ｘ１，ｙ１）と終点の座標（ｘ２，ｙ２）を座標変換する。この座標変換について、図１５を用いて説明する。
【０１９０】
図１５は、座標変換を説明するための図である。
【０１９１】
座標変換部１５は、図１５に示すように、ｘ軸、ｙ軸を設定し、ｘ軸、ｙ軸、ｙ＝ｘの直線、および、ｙ＝−ｘの直線により分割される８つの領域を、領域１〜領域８として設定する。
【０１９２】
座標変換部１５は、線分の始点（ｘ１，ｙ１）が、図１５で示した座標の原点（０，０）となるように座標変換を行う。これにより、線分の終点の座標は、（ｘ２−ｘ１，ｙ２−ｙ１）に座標変換される。
（１）変換された点（ｘ２−ｘ１，ｙ２−ｙ１）が、図１５の領域１に存在する場合、
ｘａ＝ｘ２−ｘ１
ｙａ＝ｙ２−ｙ１
として、第１実施形態と同様の処理により、描画処理が実行される。
（２）変換された点（ｘ２−ｘ１，ｙ２−ｙ１）が、図１５の領域２に存在する場合、ｘ座標の値とｙ座標の値を入れ替える。つまり、
ｙａ＝ｘ２−ｘ１
ｘａ＝ｙ２−ｙ１
とする。
【０１９３】
これにより、点（０，０）から点（ｘａ，ｙａ）への線分描画処理を、第１実施形態と同様の処理を行うことができる。つまり、原点から領域２に含まれる点への線分を、原点から領域１に含まれる点への線分に変換して、第１実施形態と同様を適用する。
（３）変換された点（ｘ２−ｘ１，ｙ２−ｙ１）が、図１５の領域３〜８に存在する場合も、上記と同様に、原点から領域３〜８のいずれかに含まれる点への線分を、原点から領域１に含まれる点への線分に変換して、第１実施形態と同様を適用する。
【０１９４】
そして、座標変換部１５は、上記のように座標変換し、線分の始点（０，０）、線分の終点（ｘａ，ｙａ）を、線分情報に含める。また、座標変換部１５は、座標変換に関する情報、すなわち、座標変換前の線分の始点（ｘ１，ｙ１）についての情報、線分の終点が領域１に含まれるようにするために実行した変換方法についての情報（例えば、領域８から領域１へ変換した場合、ｘ座標値はそのままで、ｙ座標値の符号を反転（−１を乗算）したことを示す情報）を、線分情報に含める。
【０１９５】
そして、座標変換部１５は、上記のようにして更新した線分情報を、閾値設定部１２と、評価値取得部１３と、描画情報決定部１４と、座標逆変換部１６とに出力する。
【０１９６】
閾値設定部１２、評価値取得部１３、および、描画情報決定部１４では、第１実施形態と同様の処理が実行される。
【０１９７】
座標逆変換部１６は、描画情報決定部１４から出力される描画画素とその画素値（描画色の濃度）に関する情報と、座標変換部１５から出力される線分情報とを入力する。
【０１９８】
そして、座標逆変換部１６は、座標変換部１５で実行された変換と逆の変換を実行し、描画画素の位置を決定する。
【０１９９】
例えば、座標変換部１５で実行された変換が領域８から領域１へ変換する処理である場合、座標逆変換部は、描画情報決定部１４から出力される描画画素Ｐ（ｘｂ，ｙｂ）を、画素Ｐ（ｘｂ，−ｙｂ）へ座標変換し、さらに、線分の始点（ｘ１，ｙ１）から、図１５の座標の原点への移動分を元に戻す座標変換を行う。つまり、座標逆変換部は、描画情報決定部１４から出力される描画画素Ｐ（ｘｂ，ｙｂ）を、画素Ｐ（ｘｂ＋ｘ１，−ｙｂ＋ｙ１）へ座標変換する。
【０２００】
そして、座標逆変換部は、画素Ｐ（ｘｂ＋ｘ１，−ｙｂ＋ｙ１）に相当する画素が、描画情報決定部１４から出力された画素値（描画画素Ｐ（ｘｂ，ｙｂ）の画素値として出力された画素値）となるように、表示用メモリ２のアドレスにデータ（当該画素値に相当するデータ）を書き込む。
【０２０１】
以上のように、本変形例に係る画像処理システム１０００Ａでは、座標変換して、第１実施形態と同様の描画処理を実行し、その後、座標逆変換することで、任意の線分（任意の傾きの線分）の描画処理が実行される。したがって、本変形例に係る画像処理システム１０００Ａでは、線分の傾きごとに、別々の場合分けをすることなく、第１実施形態で示した処理のみを用いて、描画処理を実行することができる。その結果、本変形例に係る画像処理システム１０００Ａでは、大容量のメモリや複雑な演算処理を必要とせず、線分描画時に生じるエイリアシングを効果的に低減することができる。
【０２０２】
［他の実施形態］
上記実施形態および変形例では、線分の線の太さが１画素分である場合を例に説明したが、これに限定されることはなく、線分の太さは、他の太さであってもよい。線分の太さが２画素分以上である場合、画像上において、当該線分と背景との境界領域に位置する領域（当該線分の上端または下端の領域）において、上記実施形態の描画処理と同様の処理を適用すればよい。これにより、当該線分と背景との境界領域において、エイリアス成分を適切に抑制した描画処理を実行することができる。
【０２０３】
また、上記実施形態および変形例では、図２および図１３のステップＳ７〜Ｓ１０において、設定される画素値が、「２５５」、「１９２」、「１２８」、「６４」としたが、これに限定されることはなく、同列に位置する描画画素（ｘ座標位置が同一の描画画素）の重心位置が、線分の始点と終点とを通る直線と近くなるように、他の値に設定するようにしてもよい。
【０２０４】
上記実施形態および変形例の一部または全部を組み合わせて、画像処理システム、画像処理装置を構成するようにしてもよい。
【０２０５】
また、上記実施形態の画像処理システム、画像処理装置の一部または全部は、集積回路（例えば、ＬＳＩ、システムＬＳＩ等）として実現されるものであってもよい。
【０２０６】
上記実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０２０７】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る画像処理システム、画像処理装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【０２０８】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０２０９】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０２１０】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０２１１】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【０２１２】
１０００、１０００Ａ  画像処理システム
１、１Ａ  画像処理装置
１１  入力部
１２  閾値設定部
１３  評価値取得部
１４  描画情報決定部
１５  座標変換部
１６  座標逆変換部
【図１】
2014186682.tif 000003
【図２】
2014186682.tif 000004
【図７】
2014186682.tif 000005
【図８】
2014186682.tif 000006
【図１３】
2014186682.tif 000007
【図１４】
2014186682.tif 000008
【図１５】
2014186682.tif 000009
【図３】
2014186682.tif 000010
【図４】
2014186682.tif 000011
【図５】
2014186682.tif 000012
【図６】
2014186682.tif 000013
【図９】
2014186682.tif 000014
【図１０】
2014186682.tif 000015
【図１１】
2014186682.tif 000016
【図１２】
2014186682.tif 000017