(57)【要約】【課題】スキャンラインコンバージョンにおいてアンチエイリアシングするため、高速に面積を算出する。【解決手段】画像処理装置は、画像を含み第１の頂点から第２の頂点までの線分を斜辺としピクセル群の上辺又は下辺を第１の隣辺とする直角三角形を生成し、第１のサブピクセル又は第２のサブピクセルに含まれる、画像を含み線分を斜辺とし直角三角形の第１の隣辺を隣辺とし第１のサブピクセル又は第２のサブピクセルの一辺を他の隣辺とし直角三角形と相似である第１のマイクロ三角形の面積を算出し、各複数のピクセルの直角三角形がカバーする領域に含まれる、それぞれ第１のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、複数のマイクロ三角形の数と、第１のマイクロ三角形の面積とに基づき、各複数のピクセルの直角三角形がカバーする領域の面積を算出する。【選択図】図２
2020013250.tif 000002
【特許請求の範囲】
【請求項１】
スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第１の点を検出し、
前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第２の点を検出し、
前記複数のサブピクセルのうち、前記第１の点を含むサブピクセルである第１のサブピクセルの下辺に位置する２つの頂点の１つである第１の頂点を選択し、
前記複数のサブピクセルのうち、前記第２の点を含むサブピクセルである第２のサブピクセルの上辺に位置する２つの頂点の１つである第２の頂点を選択し、
前記画像を含み前記第１の頂点から前記第２の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第１の隣辺とする直角三角形を生成し、
前記第１のサブピクセル又は前記第２のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第１の隣辺を隣辺とし前記第１のサブピクセル又は前記第２のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第１のマイクロ三角形の面積を算出し、
各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第１のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
前記複数のマイクロ三角形の数と、前記第１のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
制御回路
を具備する画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記制御回路は、
初項＝１、公差＝２及び項数＝前記直角三角形の前記第１の隣辺を構成する前記複数のサブピクセルの数、である等差数列に基づき、複数の前記マイクロ三角形の前記直交方向の数を算出し、
前記複数のマイクロ三角形の前記直交方向の前記数に基づき、各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる前記マイクロ三角形の前記数を算出し、
算出した前記マイクロ三角形の前記数と、前記第１のマイクロ三角形の前記面積とを乗算した値を、各前記複数のピクセルの前記直角三角形がカバーする前記領域の前記面積とする
画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって
前記ピクセル群は、前記第１のマイクロ三角形を含むピクセルである初期ピクセルと、前記直角三角形の前記初期ピクセルと逆側の端のピクセルである最終ピクセルと、前記初期ピクセル及び前記最終ピクセルを除く複数の中間ピクセルとを含み、
前記制御回路は、
隣り合う２つの中間ピクセルの前記直角三角形がカバーする前記領域の面積の変化量と、前記初期ピクセルの前記直角三角形がカバーする前記領域の面積とで加算した値を、各前記複数の中間ピクセルの前記直角三角形がカバーする前記領域の面積とする
画像処理装置。
【請求項４】
請求項１乃至３の何れか一項に記載の画像処理装置であって、
前記制御回路は、
前記第１のサブピクセルの前記下辺に位置する前記２つの頂点のうち、前記第１の点との距離が小さい方の頂点を、前記第１の頂点として選択し、
前記第２のサブピクセルの前記上辺に位置する前記２つの頂点のうち、前記第２の点との距離が小さい方の頂点を、前記第２の頂点として選択する
画像処理装置。
【請求項５】
画像処理装置の制御回路を、
スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第１の点を検出し、
前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第２の点を検出し、
前記複数のサブピクセルのうち、前記第１の点を含むサブピクセルである第１のサブピクセルの下辺に位置する２つの頂点の１つである第１の頂点を選択し、
前記複数のサブピクセルのうち、前記第２の点を含むサブピクセルである第２のサブピクセルの上辺に位置する２つの頂点の１つである第２の頂点を選択し、
前記画像を含み前記第１の頂点から前記第２の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第１の隣辺とする直角三角形を生成し、
前記第１のサブピクセル又は前記第２のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第１の隣辺を隣辺とし前記第１のサブピクセル又は前記第２のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第１のマイクロ三角形の面積を算出し、
各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第１のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
前記複数のマイクロ三角形の数と、前記第１のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
よう動作させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する技術が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２２８５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する際は、面積を高速に算出することが望ましい。
【課題を解決するための手段】
【０００５】
本開示の一形態に係る画像処理装置は、
スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第１の点を検出し、
前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第２の点を検出し、
前記複数のサブピクセルのうち、前記第１の点を含むサブピクセルである第１のサブピクセルの下辺に位置する２つの頂点の１つである第１の頂点を選択し、
前記複数のサブピクセルのうち、前記第２の点を含むサブピクセルである第２のサブピクセルの上辺に位置する２つの頂点の１つである第２の頂点を選択し、
前記画像を含み前記第１の頂点から前記第２の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第１の隣辺とする直角三角形を生成し、
前記第１のサブピクセル又は前記第２のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第１の隣辺を隣辺とし前記第１のサブピクセル又は前記第２のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第１のマイクロ三角形の面積を算出し、
各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第１のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
前記複数のマイクロ三角形の数と、前記第１のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
制御回路
を具備する。
【０００６】
これにより、複数のピクセルに含まれる複数のマイクロ三角形の数と、第１のマイクロ三角形の面積さえ解れば、各ピクセルの面積を算出できる。このため、演算の高速化が図れる。さらに、サブピクセルの分割数を増やしても、同じ算出方法で算出できるため、演算速度の低下を防止できる。
【０００７】
前記制御回路は、
初項＝１、公差＝２及び項数＝前記直角三角形の前記第１の隣辺を構成する前記複数のサブピクセルの数、である等差数列に基づき、複数の前記マイクロ三角形の前記直交方向の数を算出し、
前記複数のマイクロ三角形の前記直交方向の前記数に基づき、各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる前記マイクロ三角形の前記数を算出し、
算出した前記マイクロ三角形の前記数と、前記第１のマイクロ三角形の前記面積とを乗算した値を、各前記複数のピクセルの前記直角三角形がカバーする前記領域の前記面積とする。
【０００８】
これにより、マイクロ三角形の数を容易に算出できる。
【０００９】
前記ピクセル群は、前記第１のマイクロ三角形を含むピクセルである初期ピクセルと、前記直角三角形の前記初期ピクセルと逆側の端のピクセルである最終ピクセルと、前記初期ピクセル及び前記最終ピクセルを除く複数の中間ピクセルとを含み、
前記制御回路は、
隣り合う２つの中間ピクセルの前記直角三角形がカバーする前記領域の面積の変化量と、前記初期ピクセルの前記直角三角形がカバーする前記領域の面積とで加算した値を、各前記複数の中間ピクセルの前記直角三角形がカバーする前記領域の面積とする。
【００１０】
これにより、中間ピクセルの直角三角形がカバーする領域の面積を容易に算出できる。
【００１１】
前記制御回路は、
前記第１のサブピクセルの前記下辺に位置する前記２つの頂点のうち、前記第１の点との距離が小さい方の頂点を、前記第１の頂点として選択し、
前記第２のサブピクセルの前記上辺に位置する前記２つの頂点のうち、前記第２の点との距離が小さい方の頂点を、前記第２の頂点として選択する。
【００１２】
これにより、面積が本来の面積にさらに近似する。
【００１３】
本開示の一形態に係る画像処理プログラムは、
画像処理装置の制御回路を、
スキャンライン方向に一列に連続する複数の長方形のピクセルを含むピクセル群であって、各前記複数のピクセルは前記スキャンライン方向及び前記スキャンライン方向に直交する方向である直交方向にマトリックス状に配置された複数の長方形のサブピクセルに分割され、前記ピクセル群の下辺及び上辺は前記スキャンライン方向に平行である前記ピクセル群の前記下辺と前記エッジ線とが交差する点である第１の点を検出し、
前記ピクセル群の前記上辺と描画すべき画像のエッジを示す線であるエッジ線とが交差する点である第２の点を検出し、
前記複数のサブピクセルのうち、前記第１の点を含むサブピクセルである第１のサブピクセルの下辺に位置する２つの頂点の１つである第１の頂点を選択し、
前記複数のサブピクセルのうち、前記第２の点を含むサブピクセルである第２のサブピクセルの上辺に位置する２つの頂点の１つである第２の頂点を選択し、
前記画像を含み前記第１の頂点から前記第２の頂点までの線分を斜辺とし前記ピクセル群の前記上辺又は前記下辺を第１の隣辺とする直角三角形を生成し、
前記第１のサブピクセル又は前記第２のサブピクセルに含まれる、前記画像を含み前記線分を斜辺とし前記直角三角形の前記第１の隣辺を隣辺とし前記第１のサブピクセル又は前記第２のサブピクセルの一辺を他の隣辺とし前記直角三角形と相似である第１のマイクロ三角形の面積を算出し、
各前記複数のピクセルの前記直角三角形がカバーする領域に含まれる、それぞれ前記第１のマイクロ三角形と合同な複数のマイクロ三角形の数を算出し、
前記複数のマイクロ三角形の数と、前記第１のマイクロ三角形の前記面積とに基づき、各前記複数のピクセルの前記直角三角形がカバーする前記領域の面積を算出する
よう動作させる。
【発明の効果】
【００１４】
スキャンラインコンバージョンにおいて画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する際に、面積を高速に算出することができる。
【００１５】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１６】
【図１】画像処理装置のハードウェア構成を示す。
【図２】ピクセルをカバーする画像の面積の算出方法の概要を模式的に説明する。
【図３】各ピクセルに含まれる複数のマイクロ三角形の面積及びそのバイトデータ値を示す。
【図４】一実装例として、固定小数点実装のコード例を示す。
【図５】画像処理装置が図４に示すコードを実行するときの動作フローを示す。
【図６】画像処理装置の動作を模式的に説明する。
【図７】画像処理装置の動作を模式的に説明する。
【図８】画像処理装置の動作を模式的に説明する。
【図９】画像処理装置の動作を模式的に説明する。
【図１０】画像処理装置の動作を模式的に説明する。
【図１１】画像処理装置の動作を模式的に説明する。
【図１２】画像処理装置の動作を模式的に説明する。
【図１３】画像処理装置の動作を模式的に説明する。
【図１４】画像処理装置の動作を模式的に説明する。
【図１５】画像処理装置の動作を模式的に説明する。
【図１６】画像処理装置の動作を模式的に説明する。
【図１７】画像処理装置の動作を模式的に説明する。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら、本開示の実施形態を説明する。
【００１８】
１．アンチエイリアシングの概要
【００１９】
典型的に、画像表示装置は、ピクセル単位で塗りつぶしたように画像を表示する。逆に言えば、画像表示装置は、画像を、ピクセル単位より細かく描画することは出来ない。このため、エイリアシングが発生する。エイリアシングの一例として、画像のエッジに発生するジャギーが挙げられる。
【００２０】
スキャンラインコンバージョンのアンチエイリアシングとは、画像のエッジを含むピクセルの色調や明度を、画像を含むがエッジを含まないピクセルの色調や明度と異ならせることにより、ジャギーを目立たなくさせるための処理である。画像のエッジを含むピクセルの色調や明度は、そのピクセルをカバーする画像の面積に基づき決定される。
【００２１】
例えば、ピクセルをカバーする画像の面積が、ピクセル内の画像以外（背景）の面積より大きければ、画像のエッジを含むピクセルの色調や明度と、画像を含むがエッジを含まないピクセルの色調や明度との差を小さくする。逆に、ピクセルをカバーする画像の面積が、ピクセル内の画像以外（背景）の面積より小さければ、画像のエッジを含むピクセルの色調や明度と、画像を含むがエッジを含まないピクセルの色調や明度との差を大きくする。
【００２２】
本実施形態では、画像のエッジに発生するジャギーをアンチエイリアシングするために、ピクセルの面積を算出する際に、面積を高速に算出することを図る。
【００２３】
２．画像処理装置のハードウェア構成
【００２４】
図１は、画像処理装置のハードウェア構成を示す。
【００２５】
画像処理装置２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、記憶装置２４、ネットワーク通信インターフェース２５、操作装置２６及び表示装置２７と、これらを相互に接続するバス２８とを有する。
【００２６】
ＣＰＵ２１、ＲＯＭ２２、及びＲＡＭ２３は、制御回路２００を構成する。ＣＰＵ２１は、ＲＯＭ２２が記憶する情報処理プログラムをＲＡＭ２３にロードして実行する。ＲＯＭ２２は、ＣＰＵ２１が実行するプログラムやデータなどを固定的に記憶する。ＲＯＭ２２は、非一過性のコンピューター読み取り可能な記録媒体の一例である。制御回路２００は、専用のハードウェア回路（図示せず）をさらに含んでもよい。
【００２７】
３．ピクセルをカバーする画像の面積の算出方法の概要
【００２８】
図２は、ピクセルをカバーする画像の面積の算出方法の概要を模式的に説明する。
【００２９】
ピクセル群１は、スキャンライン（走査線）方向（Ｘ方向）に一列に連続する複数（本例では４個）の長方形（本例では正方形）のピクセル１０（１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ）を含む。ピクセル群１の下辺１６及び上辺１７はスキャンライン方向（Ｘ方向）に平行である。
【００３０】
エッジ線Ｌ（図中の破線）は、描画すべき画像のエッジを示す線である。エッジ線Ｌは、ピクセル群１の下辺１６及び上辺１７と交差する。ピクセル群１の下辺１６とエッジ線Ｌとが交差する点である第１の点Ｐ１の実数座標を、（ｘ０，ｙ０）と称する。ピクセル群１の上辺１７とエッジ線Ｌとが交差する点である第２の点Ｐ２の実数座標を、（ｘ１，ｙ０＋１）と称する。
【００３１】
各ピクセル１０は、スキャンライン方向（Ｘ方向）にａ個（本例ではａ＝４）かつスキャンライン方向に直交する方向（Ｙ方向）縦ｂ個（本例ではｂ＝４）のマトリックス状に、複数（本例では４×４＝１６個）の長方形（本例では正方形）のサブピクセル１００に分割される。
【００３２】
本例では、描画すべき画像（図示せず）は、エッジ線Ｌ及びピクセル群１の下辺１６を含む（上辺１７を含まない）領域である。即ち、各ピクセル１０において、エッジ線Ｌ及びピクセル群１の下辺１６を含む（上辺１７を含まない）領域の面積が、本来算出すべき面積である。言い換えれば、各ピクセル１０において、描画すべき画像を含み第１の点Ｐ１から第２の点Ｐ２までのエッジ線Ｌを斜辺としピクセル群１の下辺１６又は上辺１７（本例では下辺１６）を隣辺とする直角三角形がカバーする領域の面積が、本来算出すべき面積である。
【００３３】
各ピクセル１０において、第１の点Ｐ１から第２の点Ｐ２までのエッジ線Ｌを斜辺とする直角三角形がカバーする領域の面積を算出するためには、第１の点Ｐ１のｘ実数座標（ｘ０）及び第２の点Ｐ２のｘ実数座標（ｘ１）を算出する必要がある。しかしながら、第１の点Ｐ１のｘ実数座標（ｘ０）及び第２の点Ｐ２のｘ実数座標（ｘ１）を算出するのは処理時間が掛かる。このため、第１の点Ｐ１ｘ実数座標（ｘ０）及び第２の点Ｐ２のｘ実数座標（ｘ１）を、それぞれ、サブピクセル空間の整数座標に丸める（ラウンディング）。具体的には、以下の通りである。
【００３４】
第１のサブピクセル１０１は、第１の点Ｐ１を含む。第１のサブピクセル１０１の下辺１６に位置する２つの頂点の１つである第１の頂点Ｐ３が選択される。第１の頂点Ｐ３の実数座標を、（ｓｂｘ０，ｙ０）と称する。典型的には、第１の頂点Ｐ３は、第１のサブピクセル１０１の下辺１６に位置する２つの頂点のうち、第１の点Ｐ１との距離が小さい方の頂点である。これにより、面積が本来の面積にさらに近似する。第１の点Ｐ１は、第１の頂点Ｐ３に丸められる（ラウンディング）。
【００３５】
第２のサブピクセル１０２は、第２の点Ｐ２を含む。第２のサブピクセル１０２の上辺１７に位置する２つの頂点の１つである第２の頂点Ｐ４が選択される。第２の頂点Ｐ４の実数座標を、（ｓｂｘ１，ｙ０＋１）と称する。典型的には、第２の頂点Ｐ４は、第２のサブピクセル１０２の上辺１７に位置する２つの頂点のうち、第２の点Ｐ２との距離が小さい方の頂点である。これにより、面積が本来の面積にさらに近似する。第２の点Ｐ２は、第２の頂点Ｐ４に丸められる（ラウンディング）。
【００３６】
上述のように、各ピクセル１０において、描画すべき画像を含み第１の点Ｐ１から第２の点Ｐ２までのエッジ線Ｌを斜辺としピクセル群１の下辺１６又は上辺１７（本例では下辺１６）を隣辺とする直角三角形がカバーする領域の面積が、本来算出すべき面積である。
【００３７】
しかしながら、この本来の直角三角形の代わりに、描画すべき画像を含み第１の頂点Ｐ３から第２の頂点Ｐ４までの線分Ｌ１（図中の実線）を斜辺としピクセル群１の下辺１６又は上辺１７（本例では下辺１６）を隣辺（第１の隣辺と称する）とする近似的な直角三角形Ｔ（図中ハッチング）を生成する。そして、各ピクセル１０において、描画すべき画像を含み第１の頂点Ｐ３から第２の頂点Ｐ４までの線分Ｌ１を斜辺としピクセル群１の下辺１６又は上辺１７（本例では下辺１６）を第１の隣辺とする近似的な直角三角形Ｔがカバーする領域の面積を算出する。
【００３８】
４．ピクセルをカバーする画像の面積の算出方法の詳細
【００３９】
各ピクセル１０の直角三角形Ｔがカバーする領域の面積を算出する方法を、以下にさらに具体的に説明する。
【００４０】
第１のマイクロ三角形ＭＴ１は、第１のサブピクセル１０１又は第２のサブピクセル１０２（本例では第１のサブピクセル１０１）に含まれる、描画すべき画像を含み線分Ｌ１を斜辺とし直角三角形Ｔの第１の隣辺である下辺１６又は上辺１７（本例では下辺１６）を隣辺とし第１のサブピクセル１０１又は第２のサブピクセル１０２（本例では第１のサブピクセル１０１）の一辺を他の隣辺とし直角三角形Ｔと相似である。第１のマイクロ三角形ＭＴ１の底辺（下辺１６）の、サブピクセル空間での長さ＝１とする。第１のマイクロ三角形ＭＴ１の面積＝ｓとする。
【００４１】
第１のマイクロ三角形ＭＴ１の面積（ｓ）を算出した上で、各ピクセル１０の直角三角形Ｔがカバーする領域に含まれる、それぞれ第１のマイクロ三角形ＭＴ１と合同な複数のマイクロ三角形ＭＴの数が解れば、各ピクセル１０の直角三角形Ｔがカバーする領域の面積を算出することができる。即ち、各ピクセル１０の直角三角形Ｔがカバーする領域の面積＝第１のマイクロ三角形ＭＴ１の面積（ｓ）×マイクロ三角形ＭＴの数である。
【００４２】
複数のマイクロ三角形ＭＴの直交方向（Ｙ方向）の数は、初項＝１、公差＝２及び項数＝直角三角形Ｔの第１の隣辺（下辺１６）を構成する複数のサブピクセル１００の数、である等差数列（即ち、初項＝１の奇数数列）に基づき算出できる。
【００４３】
本例では、第１のサブピクセル１０１に含まれるマイクロ三角形（第１のマイクロ三角形）ＭＴの数＝１である。第１のサブピクセル１０１からスキャンライン方向（Ｘ方向）に１つずれた位置にあるサブピクセル１００に含まれるマイクロ三角形ＭＴの数＝３である。第１のサブピクセル１０１からスキャンライン方向（Ｘ方向）に２つずれた位置にあるサブピクセル１００に含まれるマイクロ三角形ＭＴの数＝５である。第１のサブピクセル１０１からスキャンライン方向（Ｘ方向）に３つずれた位置にあるサブピクセル１００に含まれるマイクロ三角形ＭＴの数＝７である（補助線で図示）。各ピクセル１０の直角三角形Ｔがカバーする領域の面積の算出方法を、以下にさらに具体的に説明する。
【００４４】
上述のように、サブピクセル空間において、マイクロ三角形ＭＴは、直角三角形Ｔと相似である。直角三角形Ｔの第１の頂点Ｐ３の実数座標は（ｓｂｘ０，ｙ０）であり、第２の頂点Ｐ４の実数座標は（ｓｂｘ１，ｙ０＋１）である。従って、マイクロ三角形ＭＴの面積ｓは、直角三角形Ｔの面積に基づき数１の比例式により算出される。数１において、ｂは、スキャンライン方向に直交する方向（Ｙ方向）に並ぶ複数のサブピクセル１００の数である。
【００４５】
【数１】
2020013250.tif 000003
【００４６】
一方、サブピクセル空間のｘ実数座標（ｓｂｘ０）を基準として、Ｙ方向にｍ＋１番目からｎ番目（ｍ＜ｎ、ｍ及びｎは正の整数）までの、マトリックス状に配置された複数のサブピクセル１００に含まれる複数のマイクロ三角形ＭＴの数ｎｕｍは、数２により算出される。
【００４７】
【数２】
2020013250.tif 000004
【００４８】
一方、上述のように、複数のマイクロ三角形ＭＴの直交方向（Ｙ方向）の数は、初項＝１、公差＝２及び項数＝直角三角形Ｔの第１の隣辺（下辺１６）を構成する複数のサブピクセル１００の数、である等差数列（即ち、初項＝１の奇数数列）に基づき算出できる。
【００４９】
従って、サブピクセル空間のｘ実数座標（ｓｂｘ０）を基準として、ｘ実数座標（ｓｂｘ０）を含むマイクロ三角形ＭＴから、Ｙ方向にｋ番目（ｋは任意の数）までのマイクロ三角形ＭＴの数は、数３により算出される。
【００５０】
【数３】
2020013250.tif 000005
【００５１】
δ＝ｎ−ｍ（ｍ＜ｎ）とすると、ｍ＝ｎ−δである。すると、Ｙ方向にｍ＋１番目からｎ番目（ｍ＜ｎ、ｍ及びｎは正の整数）までの、マトリックス状に配置された複数のサブピクセル１００に含まれる複数のマイクロ三角形ＭＴの数（数２で算出される）は、数４に置換される。
【００５２】
【数４】
2020013250.tif 000006
【００５３】
従って、サブピクセル空間において、Ｙ方向にｍ＋１番目からｎ番目（ｍ＜ｎ、ｍ及びｎは正の整数）までの、マトリックス状に配置された複数のサブピクセル１００に含まれる複数のマイクロ三角形ＭＴの総面積ｃｉは、数５により算出される。即ち、数５は、マイクロ三角形ＭＴの数（数２で算出されるｎ２−ｍ２又は数４で算出される２ｎδ−δ２）とマイクロ三角形ＭＴの面積ｓとを乗算した値である。
【００５４】
【数５】
2020013250.tif 000007
【００５５】
ピクセル空間において、各ピクセル１０に含まれる複数のマイクロ三角形ＭＴの面積Ｃｉ（０．０−１．０）（カバー値とも称する）は、数６により算出される。数６を説明すると、各ピクセル１０に含まれるＹ方向の端から端までのサブピクセル１００を、ｍ＋１番目からｎ番目までのサブピクセル１００とする。そうすると、１つのピクセル１０に含まれる全てのサブピクセル１００に含まれるマイクロ三角形ＭＴの総面積ｃｉを、１つのピクセル１０に含まれる全てのサブピクセル１００の面積（縦×横＝ａｂ）で除算することで、１つのピクセル１０に含まれるマイクロ三角形ＭＴの総面積Ｃｉを算出することができる。なお、（０．０）は明度０％、（１．０）は明度１００％を意味する。
【００５６】
【数６】
2020013250.tif 000008
【００５７】
ところで、実装上は、１ピクセルの面積を１バイトのデータ（０−２５５）とすることが多い。従って、各ピクセル１０に含まれる複数のマイクロ三角形ＭＴの面積Ｃｉをバイトデータ値（０−２５５）で表現すると、実際の専有面積ＢＣｉは、数７により算出される。
【００５８】
【数７】
2020013250.tif 000009
【００５９】
５．ピクセルをカバーする画像の面積の算出方法の具体例
【００６０】
各ピクセル１０の直角三角形Ｔがカバーする領域の面積を算出する方法の具体例を、以下に説明する。
【００６１】
本例では、ａ＝４（１ピクセル１０に含まれる複数のサブピクセル１００のＸ方向の数）、ｂ＝４（１ピクセル１０に含まれる複数のサブピクセル１００のＹ方向の数）、ｓｂｘ１−ｓｂｘ０＝１３（第２の頂点Ｐ４から第１の頂点Ｐ３までの複数のサブピクセル１００のＸ方向の数）とする。この場合、これらの数を数１に代入することで、マイクロ三角形ＭＴの面積ｓは数８に示すバイトデータ値（２／１３）と算出される。
【００６２】
【数８】
2020013250.tif 000010
【００６３】
第１の頂点Ｐ３（ｓｂｘ０，ｙ０）を含むピクセル（初期ピクセルとも称する）１０Ａに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１は、数９により算出される。初期ピクセル１０Ａに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１は、初期ピクセル１０ＡのＹ方向に１（＝ｍ＋１）番目から３（＝ｎ）番目までの、複数のマイクロ三角形ＭＴの面積Ｃ１である。従って、ｎ＝３、δ＝３（ｍ＝０であるため）である。さらに、ｓ＝２／１３である。これらの数を数６に代入することで、初期ピクセル１０Ａに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１は、数９に示すＣ１＝０．０８６５と算出される。
【００６４】
【数９】
2020013250.tif 000011
【００６５】
初期ピクセル１０Ａに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１＝０．０８６５を、バイトデータ値（０−２５５）で表現する。数９で算出されたＣ１＝０．０８６５を数７に代入することで、初期ピクセル１０Ａに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１のバイトデータ値ＢＣ１は、数１０に示すＢＣ１＝２２と算出される。
【００６６】
【数１０】
2020013250.tif 000012
【００６７】
各ピクセル１０Ｂ、１０Ｃ、１０Ｄについて、ｎ及びδを数６に代入して、数９により各ピクセル１０Ｂ、１０Ｃ、１０Ｄに含まれる複数のマイクロ三角形ＭＴの面積Ｃｉが算出される。さらに、数９で算出されたＣｉを数７に代入して、数１０により各ピクセル１０Ｂ、１０Ｃ、１０Ｄに含まれる複数のマイクロ三角形ＭＴの面積Ｃｉのバイトデータ値ＢＣｉが算出される。
【００６８】
図３は、各ピクセル１０Ａ、１０Ｂ、１０Ｃ、１０Ｄに含まれる複数のマイクロ三角形ＭＴの面積Ｃｉ及びそのバイトデータ値ＢＣｉを示す。
【００６９】
初期ピクセル１０Ａの隣のピクセル１０Ｂ（中間ピクセルとも称する）に含まれる複数のマイクロ三角形ＭＴの面積Ｃ２は、中間ピクセル１０ＢのＹ方向に４（＝ｍ＋１）番目から７（＝ｎ）番目までの、複数のマイクロ三角形ＭＴの面積Ｃ２である。従って、ｎ＝７、δ＝４（ｍ＝３であるため）である。さらに、ｓ＝２／１３である。これらの数を数６に代入することで、中間ピクセル１０Ｂに含まれる複数のマイクロ三角形ＭＴの面積Ｃ２は、図３に示すＣ２＝０．３８５と算出される。Ｃ２＝０．３８５を数７に代入することで、中間ピクセル１０Ｂに含まれる複数のマイクロ三角形ＭＴの面積Ｃ２のバイトデータ値ＢＣ２は、図３に示すＢＣ２＝９８と算出される。
【００７０】
中間ピクセル１０Ｂの隣のピクセル１０Ｃ（中間ピクセルとも称する）に含まれる複数のマイクロ三角形ＭＴの面積Ｃ３は、中間ピクセル１０ＣのＹ方向に８（＝ｍ＋１）番目から１１（＝ｎ）番目までの、複数のマイクロ三角形ＭＴの面積Ｃ１である。従って、ｎ＝１１、δ＝４（ｍ＝７であるため）である。さらに、ｓ＝２／１３である。これらの数を数６に代入することで、中間ピクセル１０Ｃに含まれる複数のマイクロ三角形ＭＴの面積Ｃ３は、図３に示すＣ３＝０．６９２と算出される。Ｃ３＝０．６９２を数７に代入することで、中間ピクセル１０Ｃに含まれる複数のマイクロ三角形ＭＴの面積Ｃ３のバイトデータ値ＢＣ３は、図３に示すＢＣ３＝１７６と算出される。
【００７１】
中間ピクセル１０Ｃの隣であって第２の頂点Ｐ４（ｓｂｘ１，ｙ０＋１）を含むピクセル１０Ｄ（最終ピクセルとも称する）に含まれる複数のマイクロ三角形ＭＴの面積Ｃ４は、最終ピクセル１０ＤのＹ方向に１２（＝ｍ＋１）番目から１３（＝ｎ）番目までの、複数のマイクロ三角形ＭＴの面積Ｃ１である。従って、ｎ＝１３、δ＝２（ｍ＝１１であるため）である。さらに、ｓ＝２／１３である。これらの数を数６に代入することで、最終ピクセル１０Ｄに含まれる複数のマイクロ三角形ＭＴの面積Ｃ４は、図３に示すＣ４＝０．４６２と算出される。Ｃ４＝０．４６２を数７に代入することで、最終ピクセル１０Ｄに含まれる複数のマイクロ三角形ＭＴの面積Ｃ４のバイトデータ値ＢＣ４は、図３に示すＢＣ４＝１１７と算出される。
【００７２】
６．実装例
【００７３】
上で説明した実装例の、画像処理装置２０への実装例を説明する。
【００７４】
実装例において、ａ＝ｂとする。初期ピクセル１０Ａに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１（カバー値）は、数１１により算出される。数１１において、ｎ＝ａ−（ｓｂｘ０  ｍｏｄ  ａ）であり、ｎ＝δである。
【００７５】
【数１１】
2020013250.tif 000013
【００７６】
初期ピクセル１０Ａ及び最終ピクセル１０Ｄを除くピクセル１０Ｂ、１０Ｃは、常に、δ＝ａである。従って、初期ピクセル１０Ａ及び最終ピクセル１０Ｄを除くピクセル１０Ｂ、１０Ｃに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１（カバー値）は、数１２により算出される。
【００７７】
【数１２】
2020013250.tif 000014
【００７８】
ｎ＋ａとｎカバー値の差分、即ち、カバー値変化量Δは、数１３により算出される。
【００７９】
【数１３】
2020013250.tif 000015
【００８０】
このため、初期ピクセル１０Ａ及び最終ピクセル１０Ｄを除くピクセル１０Ｂ、１０Ｃに含まれる複数のマイクロ三角形ＭＴの面積Ｃ１（カバー値）は、数１４の加算処理として随時算出される。
【００８１】
【数１４】
2020013250.tif 000016
【００８２】
ａを２のべき乗（４，８，１６・・・）にすると共に、固定小数点演算で実装する。これにより、数１５及び数１６に示すように、ａ倍は、ｌｏｇ２ａのシフト演算に置換される。これにより、演算処理が高速化される。
【００８３】
【数１５】
2020013250.tif 000017
【００８４】
【数１６】
2020013250.tif 000018
【００８５】
７．コード例及び動作フロー
【００８６】
次に、実装例として、画像処理装置２０が画像処理プログラムを実行することで、上で説明した実装例（加算処理）を実現する場合を説明する。
【００８７】
画像処理装置２０の制御回路２００のＣＰＵ２１は、ＲＯＭ２２が記録する画像処理プログラムをＲＡＭ２３にロードして実行することにより、以下に説明する方法で、ピクセルをカバーする画像の面積を算出する。
【００８８】
図４は、一実装例として、固定小数点実装のコード例を示す。図５は、画像処理装置が図４に示すコードを実行するときの動作フローを示す。図６乃至図１７は、画像処理装置の動作を模式的に説明する。
【００８９】
制御回路２００は、第１の点Ｐ１（ｘ０，ｙ０）及び第２の点Ｐ２（ｘ１，ｙ０＋１）（図６）をサブピクセル空間の整数座標に変換する。具体的には、制御回路２００は、第１の点Ｐ１（ｘ０，ｙ０）を含む第１のサブピクセル１０１の下辺１６に位置する第１の頂点Ｐ３（ｓｂｘ０，ｙ０）を選択する（図７）。制御回路２００は、第２の点Ｐ２（ｘ１，ｙ０＋１）を含む第２のサブピクセル１０２の上辺１７に位置する第２の頂点Ｐ４（ｓｂｘ１，ｙ０＋１）を選択する（図７）。制御回路２００は、描画すべき画像を含み第１の頂点Ｐ３から第２の頂点Ｐ４までの線分を斜辺としピクセル群１の下辺１６又は上辺１７（本例では下辺１６）を隣辺とする直角三角形Ｔを生成する（ステップＳ１０１）。
【００９０】
制御回路２００は、第１の点Ｐ１（ｘ０，ｙ０）を含むピクセル１０から第２の点Ｐ２（ｘ１，ｙ０＋１）を含むピクセル１０までのピクセル１０の数（Ｒｕｎ長とも称する）（図８）を算出する（ステップＳ１０２）。制御回路２００は、Ｒｕｎ長＝１か否かを判断する（ステップＳ１０３）。
【００９１】
制御回路２００は、Ｒｕｎ長＝１（即ち、ピクセル群１に含まれるピクセル１０は１つ）と判断すると（ステップＳ１０３、Ｙｅｓ）、マイクロ三角形を用いた演算は行わず、台形（図９）の面積を算出する（ステップＳ１０４）。
【００９２】
一方、制御回路２００は、Ｒｕｎ長＝１でない（即ち、ピクセル群１に含まれるピクセル１０は複数）と判断すると（ステップＳ１０３、Ｎｏ）、マイクロ三角形ＭＴ（図１０）の面積を算出する（ステップＳ１０５）。
【００９３】
制御回路２００は、第１の頂点Ｐ３（ｓｂｘ０，ｙ０）を含む初期ピクセル１０Ａに含まれる複数のマイクロ三角形ＭＴ（図１１）の数を算出する（ステップＳ１０６）。制御回路２００は、マイクロ三角形ＭＴの面積（ステップＳ１０５）と、初期ピクセル１０Ａに含まれる複数のマイクロ三角形ＭＴの数（ステップＳ１０６）とに基づき、初期ピクセル１０Ａのカバー値Ｃｉ（図１２）を数１１に基づき算出する（ステップＳ１０７）。
【００９４】
制御回路２００は、初期ピクセル１０Ａの隣の中間ピクセル１０Ｂのカバー値Ｃｉと、中間ピクセル１０Ｂの隣の中間ピクセル１０Ｃのカバー値Ｃｉとを、数１２に基づき算出する。制御回路２００は、中間ピクセル１０Ｂのカバー値Ｃｉと、中間ピクセル１０Ｃのカバー値Ｃｉとの差分、即ち、カバー値変化量Δ（図１３）を、数１３に基づき算出する（ステップＳ１０８）。
【００９５】
ところで、初期ピクセル１０Ａのカバー値Ｃｉにカバー値変化量Δを加算して、初期ピクセル１０Ａの隣の中間ピクセル１０Ｂのカバー値Ｃｉを算出すると仮定する。しかしながら、初期ピクセル１０Ａのカバー値Ｃｉにカバー値変化量Δを加算すると、実際は、隣の中間ピクセル１０Ｂのカバー値Ｃｉより大きい値となる（図１４）。このため、制御回路２００は、初期ピクセル１０Ａの隣の中間ピクセル１０Ｂのカバー値Ｃｉを正確に算出するため、初期ピクセル１０Ａのカバー値Ｃｉを補正する（ステップＳ１０９）。論理的には、初期ピクセル１０Ａのカバー値Ｃｉを、「初期ピクセル１０Ａのカバー値Ｃｉ−（初期ピクセル１０Ａのカバー値Ｃｉ＋カバー値変化量Δ−中間ピクセル１０Ｂのカバー値Ｃｉ）」で補正する。実装的には、初期ピクセル１０Ａのカバー値Ｃｉを、「初期ピクセル１０Ａのカバー値Ｃｉ−（１つのピクセルに含まれるＸ方向のサブピクセル数−ｍ）２×マイクロ三角形ＭＴの面積」で補正する。ここで「（１つのピクセルに含まれるＸ方向のサブピクセル数−ｍ）２」は、中間ピクセル１０Ｂのカバー値Ｃｉより大きい部分（図１４）に含まれるマイクロ三角形ＭＴの数である。
【００９６】
制御回路２００は、初期ピクセル１０Ａ及び最終ピクセル１０Ｄを除く中間ピクセル１０Ｂ、１０Ｃについて（ステップＳ１１０、Ｎｏ）、一つ前のピクセル１０のカバー値Ｃｉにカバー値変化量Δを加算して（ステップＳ１１１）、当ピクセル１０のカバー値Ｃｉ（図１５）を算出する（ステップＳ１１２）。
【００９７】
ところで、中間ピクセル１０Ｃのカバー値Ｃｉにカバー値変化量Δを加算して、中間ピクセル１０Ｃの隣の最終ピクセル１０Ｄのカバー値Ｃｉを算出する（ステップＳ１１３）。しかしながら、中間ピクセル１０Ｃのカバー値Ｃｉにカバー値変化量Δを加算（図１６）すると、実際は、最終ピクセル１０Ｄのカバー値Ｃｉより大きい値となる（図１７）。このため、制御回路２００は、中間ピクセル１０Ｃの隣の最終ピクセル１０Ｄのカバー値Ｃｉを正確に算出するため、最終ピクセル１０Ｄのカバー値Ｃｉを補正して（ステップＳ１１４）、最終ピクセル１０Ｄのカバー値Ｃｉを算出する（ステップＳ１１５）。実装的には、最終ピクセル１０Ｄのカバー値Ｃｉを、「最終ピクセル１０Ｄのカバー値Ｃｉ−（１つのピクセルに含まれるＸ方向のサブピクセル数−ｎ）２×マイクロ三角形ＭＴの面積」で補正する。ここで「（１つのピクセルに含まれるＸ方向のサブピクセル数−ｍ）２」は、最終ピクセル１０Ｄのカバー値Ｃｉより大きい部分（図１７）に含まれるマイクロ三角形ＭＴの数である。
【００９８】
８．結語
【００９９】
典型的に、スキャンラインコンバージョンのアンチエイリアシングでは、サブピクセル化した仮想空間上でマルチスキャンして平均化することにより面積近似を行う。一方、近似面積を実際の面積に近づけるように演算の精度を上げるためには、サブピクセルの分割数を増やす必要がある。ところが、サブピクセルの分割数を増やすと、スキャンする回数が増え、さらに、平均値の算出にも負荷がかかる。このため、演算を精度を上げると、却って、パフォーマンスが低下する。
【０１００】
ピクセルのカバー値を算出する方法としては、初期ピクセルのカバー値（面積）から、次のピクセルのカバー値（面積）を算出のための変化量を逐次加算する技術が考え得る。しかしながら、変化量を逐次加算する方法では、累積誤差の発生を防ぐ必要がある。累積誤差の発生を防ぐためには、高精度の有効桁数が必要となる。このため、ハードウェアの実装が必要となる。
【０１０１】
これに対して、本実施形態によれば、ラウンディングで得られた第１の頂点Ｐ３から第２の頂点Ｐ４までの線分を斜辺とする直角三角形Ｔを生成し、１つのサブピクセル１００に含まれる、直角三角形Ｔと相似である第１のマイクロ三角形ＭＴ１の面積を算出し、複数のピクセル１０の直角三角形Ｔがカバーする領域に含まれる、それぞれ第１のマイクロ三角形ＭＴ１と合同な複数のマイクロ三角形ＭＴの数を算出し、複数のマイクロ三角形ＭＴの数と、第１のマイクロ三角形ＭＴ１の面積ｃｉとに基づき、各ピクセル１０の直角三角形Ｔがカバーする領域の面積Ｃｉを算出する。
【０１０２】
これにより、複数のピクセル１０に含まれる複数のマイクロ三角形ＭＴの数と、第１のマイクロ三角形ＭＴ１の面積ｃｉさえ解れば、各ピクセル１０の面積Ｃｉを算出できる。このため、演算の高速化が図れる。さらに、サブピクセルの分割数を増やしても、同じ算出方法で算出できるため、演算速度の低下を防止できる。また、ソフトウェアによる実装も可能である。
【０１０３】
制御回路２００は、初項＝１、公差＝２及び項数＝直角三角形Ｔの第１の隣辺を構成する複数のサブピクセル１００の数、である等差数列に基づき、複数のマイクロ三角形ＭＴの直交方向の数を算出できる。
【０１０４】
これにより、マイクロ三角形ＭＴの数を容易に算出できる。
【０１０５】
実装例では、制御回路２００は、隣り合う２つの中間ピクセル１０Ｂ、１０Ｃの直角三角形Ｔがカバーする領域の面積Ｃｉ（カバー値）の変化量Δと、初期ピクセル１０Ａの直角三角形Ｔがカバーする領域の面積Ｃｉ（カバー値）とで加算した値を、各中間ピクセル１０Ｂ、１０Ｃの直角三角形Ｔがカバーする領域の面積Ｃｉ（カバー値）とする。
【０１０６】
これにより、中間ピクセル１０Ｂ、１０Ｃの直角三角形Ｔがカバーする領域の面積Ｃｉ（カバー値）を容易に算出できる。
【０１０７】
本技術の各実施形態及び各変形例について上に説明したが、本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【０１０８】
１  ピクセル群
１０（１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ）  ピクセル 
１６  下辺 
１７  上辺 
２０  画像処理装置 
１００  サブピクセル 
１０１  第１のサブピクセル
１０２  第２のサブピクセル 
２００  制御回路 
Ｌ  エッジ線 
Ｌ１  線分 
ＭＴ  マイクロ三角形 
Ｐ３  第１の頂点 
Ｐ４  第２の頂点 
Ｔ  直角三角形
【図１】
2020013250.tif 000019
【図２】
2020013250.tif 000020
【図３】
2020013250.tif 000021
【図４】
2020013250.tif 000022
【図５】
2020013250.tif 000023
【図６】
2020013250.tif 000024
【図７】
2020013250.tif 000025
【図８】
2020013250.tif 000026
【図９】
2020013250.tif 000027
【図１０】
2020013250.tif 000028
【図１１】
2020013250.tif 000029
【図１２】
2020013250.tif 000030
【図１３】
2020013250.tif 000031
【図１４】
2020013250.tif 000032
【図１５】
2020013250.tif 000033
【図１６】
2020013250.tif 000034
【図１７】
2020013250.tif 000035