(57)【要約】【課題】図形の境界線の描画について、アンチエイリアシングによる滑らかな色の変化を得つつ、効率的に所望の描画色が得られるベクタ図形の描画技術を提供することを課題とする。【解決手段】画像処理装置に、図形の境界線をベクタ形式により示す境界線情報を取得する境界線取得部３５と、境界線に設定される範囲の情報であって、描画色の混合を制限する範囲を示す制限範囲情報を取得する制限範囲取得部３６と、境界線と走査線方向の画素の並びとの交点に位置する各画素の、描画における図形の描画色を混合する程度を示す不透明度として、制限範囲情報の示す範囲との交点に位置する画素に対して、不透明を示す値を算出する不透明度算出部３８とを備えた。【選択図】図５
2014178774.tif 000002
【特許請求の範囲】
【請求項１】
図形の境界線をベクタ形式により示す境界線情報を取得する境界線取得手段と、
前記境界線に設定される範囲の情報であって、描画色の混合を制限する範囲を示す制限範囲情報を取得する制限範囲取得手段と、
前記境界線と走査線方向の画素の並びとの交点に位置する各画素の、描画における前記図形の描画色を混合する程度を示す不透明度として、前記制限範囲情報の示す範囲と前記並びとの交点に位置する前記画素に対して、不透明を示す値を算出し、前記制限範囲情報の示さない範囲と前記並びとの交点に位置する前記画素に対して、該画素を前記図形が覆う程度を示すカバー値を算出する不透明度算出手段と、
を備える画像処理装置。
【請求項２】
互いに線で外接する２つの図形のうち、先に描画される第１の図形の境界線に対して、外接する前記線の範囲を前記制限範囲情報として設定し、後に描画される第２の図形の境界線に対して、外接する前記線の範囲に応じた前記制限範囲を設定しない制限範囲情報設定手段を更に備える、
請求項１に記載の画像処理装置。
【請求項３】
前記不透明度算出手段は、前記各画素の前記不透明度として、前記制限範囲情報の示す範囲の端点と前記並びとの交点に位置する前記画素に対して、前記カバー値を算出する、
請求項１または２に記載の画像処理装置。
【請求項４】
前記境界線情報は、所定種類の線を示す所定種類線情報の集合で表され、
前記境界線情報の示す前記境界線は、該境界線情報の有する前記集合の要素である前記所定種類線情報それぞれが示す線の連結により構成される線であり、
前記境界線情報の示す図形が他の図形と線で外接する場合であって、外接する該線の端点が、該境界線情報の前記境界線を構成する前記所定種類の線上に存在するときに、外接する該線の該端点で該所定種類の線を分割し、分割前の該所定種類の線の代わりに、分割された前記所定種類の線それぞれを示す前記所定種類線情報を要素とした新たな前記境界線情報を生成する境界線情報分割手段を更に備える、
請求項１から３の何れか一項に記載の画像処理装置。
【請求項５】
前記境界線と走査線方向の画素の並びとの交点に位置する画素の座標、及び、該画素の不透明度を前記カバー値とするか否かを示すカバー値採用情報を含む交点情報であって、前記制限範囲情報の示す範囲に位置する画素に対して、前記カバー値採用情報にカバー値としないこと示す不採用値が設定された交点情報を生成する交点生成手段を更に備え、
前記不透明度算出手段は、前記交点情報生成手段によって生成された前記交点情報に係る画素それぞれに対し、画素が前記カバー値採用情報に前記不採用値の設定されている画素である場合に、不透明を示す値を算出し、画素が前記カバー値採用情報に不採用値の設定されていない画素である場合に、前記カバー値を算出することで、各画素の不透明度を算出する、
請求項１から４の何れか一項に記載の画像処理装置。
【請求項６】
前記交点生成手段は、更に、前記境界線のうち、前記走査線方向と平行な範囲に位置する画素の座標、及び、該画素の前記カバー値採用情報を含む交点情報であって、前記制限範囲情報の示す範囲に位置する画素に対して、前記カバー値採用情報に前記不採用値が設定された交点情報を生成する、
請求項５に記載の画像処理装置。
【請求項７】
前記走査線方向に連続して並ぶ、１つ以上の描画対象となる画素の範囲、及び該範囲の
前記不透明度を含むスパン情報であって、該範囲に含まれる前記交点に位置する画素の不透明度が、前記不透明度算出手段によって算出される不透明度であるスパン情報を生成するスパン生成手段を更に備える、
請求項１から６の何れか一項に記載の画像処理装置。
【請求項８】
画像処理装置が、
図形の境界線をベクタ形式により示す境界線情報を取得する境界線取得ステップと、
前記境界線に設定される範囲であって、描画色の混合を制限する範囲を示す制限範囲情報を取得する制限範囲取得ステップと、
前記境界線と走査線方向の画素の並びとの交点に位置する各画素の、描画における前記図形の描画色を混合する程度を示す不透明度として、前記制限範囲情報の示す範囲と前記並びとの交点に位置する前記画素に対して、不透明を示す値を算出し、前記制限範囲情報の示さない範囲と前記並びとの交点に位置する前記画素に対して、該画素を前記図形が覆う程度を示すカバー値を算出する不透明度算出ステップと、
を実行する画像処理方法。
【請求項９】
コンピュータを、
図形の境界線をベクタ形式により示す境界線情報を取得する境界線取得手段と、
前記境界線に設定される範囲であって、描画色の混合を制限する範囲を示す制限範囲情報を取得する制限範囲取得手段と、
前記境界線と走査線方向の画素の並びとの交点に位置する各画素の、描画における前記図形の描画色を混合する程度を示す不透明度として、前記制限範囲情報の示す範囲と前記並びとの交点に位置する前記画素に対して、不透明を示す値を算出し、前記制限範囲情報の示さない範囲と前記並びとの交点に位置する前記画素に対して、該画素を前記図形が覆う程度を示すカバー値を算出する不透明度算出手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクタグラフィックス処理に関する。
【背景技術】
【０００２】
従来、多角形等のベクタ図形をピクセル単位でディスプレイ装置等に表示する際、図形の境界周辺のピクセルの色を滑らか変化させることで、境界周辺が階段状に見えるジャギー等の発生を抑えるアンチエイリシアリングの技術がある。アンチエイリシアリングの１つの手法として、ＦＳＡＡ（Ｆｕｌｌ  Ｓｃｅｎｅ  Ａｎｔｉ  Ａｌｉａｓ）が提案されている(例えば、特許文献１を参照)。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−０６３５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、互いに線で外接するベクタ図形を、それぞれ、アンチエイリアシングの処理をともなって描画処理すると、外接する線の部分の描画色に背景色が混合され、期待する描画色と異なるという問題があった（カラーブリーディング）。
【０００５】
例えば、ＦＳＡＡの手法を用いて、このカラーブリーディングの問題を回避する場合には、描画結果の解像度よりも高い解像度のピクセル情報を処理するために、比較的多くの計算資源を使用するという問題もあった。
【０００６】
本発明は、このような問題に鑑み、図形の境界線の描画について、アンチエイリアシングによる滑らかな色の変化を得つつ、効率的に所望の描画色が得られるベクタ図形の描画技術を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明では、上記課題を解決するために、以下の手段を採用した。即ち、本発明は、図形の境界線をベクタ形式により示す境界線情報を取得する境界線取得手段と、前記境界線に設定される範囲の情報であって、描画色の混合を制限する範囲を示す制限範囲情報を取得する制限範囲取得手段と、前記境界線と走査線方向の画素の並びとの交点に位置する各画素の、描画における前記図形の描画色を混合する程度を示す不透明度として、前記制限範囲情報の示す範囲と前記並びとの交点に位置する前記画素に対して、不透明を示す値を算出し、前記制限範囲情報の示さない範囲と前記並びとの交点に位置する前記画素に対して、該画素を前記図形が覆う程度を示すカバー値を算出する不透明度算出手段とを備える画像処理装置である。
【０００８】
ここで、図形の描画色は、単色で塗りつぶされて描画される場合に限らず、所定のパターン、テクスチャ、グラディエント等を用いて塗りつぶされて描画される場合における画素の描画色も含む。また、走査線は、水平方向線に限らず、走査が垂直方向に行われる場合における垂直方向線や、他の方向の走査が行われる場合の当該方向の線も含む。また、画像処理装置は、１つのプロセッサである場合に限らず、複数プロセッサやメモリ等を備えた情報処理装置等である場合も含む。また、画像処理装置は、１つのプロセッサの一部を構成する回路等である場合も含む。
【０００９】
また、本発明に係る画像処理装置は、互いに線で外接する２つの図形のうち、先に描画される第１の図形の境界線に対して、外接する前記線の範囲を前記制限範囲情報として設定し、後に描画される第２の図形の境界線に対して、外接する前記線の範囲に応じた前記制限範囲を設定しない制限範囲情報設定手段を更に備えてもよい。
【００１０】
また、本発明に係る画像処理装置において、前記不透明度算出手段は、前記各画素の前記不透明度として、前記制限範囲情報の示す範囲の端点と前記並びとの交点に位置する前記画素に対して、前記カバー値を算出してもよい。
【００１１】
また、本発明に係る画像処理装置において、前記境界線情報は、所定種類の線を示す所定種類線情報の集合で表され、前記境界線情報の示す前記境界線は、該境界線情報の有する前記集合の要素である前記所定種類線情報それぞれが示す線の連結により構成される線であり、本発明に係る画像処理装置は、前記境界線情報の示す図形が他の図形と線で外接する場合であって、外接する該線の端点が、該境界線情報の前記境界線を構成する前記所定種類の線上に存在するときに、外接する該線の該端点で該所定種類の線を分割し、分割前の該所定種類の線の代わりに、分割された前記所定種類の線それぞれを示す前記所定種類線情報を要素とした新たな前記境界線情報を生成する境界線情報分割手段を更に備えてもよい。
【００１２】
ここで、所定種類の線は、例えば、線分である。また、所定種類の線は、ベジエ曲線や楕円曲線等の曲線である場合も含み、線分及びベジエ曲線等の複数の種類の線の組み合わせが採用される場合も含む。
【００１３】
また、本発明に係る画像処理装置は、前記境界線と走査線方向の画素の並びとの交点に位置する画素の座標、及び、該画素の不透明度を前記カバー値とするか否かを示すカバー値採用情報を含む交点情報であって、前記制限範囲情報の示す範囲に位置する画素に対して、前記カバー値採用情報にカバー値としないこと示す不採用値が設定された交点情報を生成する交点生成手段を更に備え、前記不透明度算出手段は、前記交点情報生成手段によって生成された前記交点情報に係る画素それぞれに対し、画素が前記カバー値採用情報に前記不採用値の設定されている画素である場合に、不透明を示す値を算出し、画素が前記カバー値採用情報に不採用値の設定されていない画素である場合に、前記カバー値を算出することで、各画素の不透明度を算出してもよい。
【００１４】
また、本発明に係る画像処理装置において、前記交点生成手段は、更に、前記境界線のうち、前記走査線方向と平行な範囲に位置する画素の座標、及び、該画素の前記カバー値採用情報を含む交点情報であって、前記制限範囲情報の示す範囲に位置する画素に対して、前記カバー値採用情報に前記不採用値が設定された交点情報を生成してもよい。
【００１５】
また、本発明に係る画像処理装置は、前記走査線方向に連続して並ぶ、１つ以上の描画対象となる画素の範囲、及び該範囲の前記不透明度を含むスパン情報であって、該範囲に含まれる前記交点に位置する画素の不透明度が、前記不透明度算出手段によって算出される不透明度であるスパン情報を生成するスパン生成手段を更に備えてもよい。
【００１６】
また、本発明は、画像処理装置が、図形の境界線をベクタ形式により示す境界線情報を取得する境界線取得ステップと、前記境界線に設定される範囲であって、描画色の混合を制限する範囲を示す制限範囲情報を取得する制限範囲取得ステップと、前記境界線と走査線方向の画素の並びとの交点に位置する各画素の、描画における前記図形の描画色を混合する程度を示す不透明度として、前記制限範囲情報の示す範囲と前記並びとの交点に位置する前記画素に対して、不透明を示す値を算出し、前記制限範囲情報の示さない範囲と前記並びとの交点に位置する前記画素に対して、該画素を前記図形が覆う程度を示すカバー
値を算出する不透明度算出ステップと、を実行する画像処理方法であってもよい。
【００１７】
また、本発明は、コンピュータを、図形の境界線をベクタ形式により示す境界線情報を取得する境界線取得手段と、前記境界線に設定される範囲であって、描画色の混合を制限する範囲を示す制限範囲情報を取得する制限範囲取得手段と、前記境界線と走査線方向の画素の並びとの交点に位置する各画素の、描画における前記図形の描画色を混合する程度を示す不透明度として、前記制限範囲情報の示す範囲と前記並びとの交点に位置する前記画素に対して、不透明を示す値を算出し、前記制限範囲情報の示さない範囲と前記並びとの交点に位置する前記画素に対して、該画素を前記図形が覆う程度を示すカバー値を算出する不透明度算出手段と、として機能させるプログラムであってもよい。
【００１８】
また、本発明は、そのようなプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものでもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００１９】
本発明の一側面によれば、図形の境界線の描画について、アンチエイリアシングによる滑らかな色の変化を得つつ、効率的に所望の描画色が得られるベクタ図形の描画技術を提供とすることができる。
【図面の簡単な説明】
【００２０】
【図１】実施形態に係る画像処理装置を含むグラフィックシステムの構成を示す概略図である。
【図２】互いに線で外接し、順に描画される２つの図形の例を示す図である。
【図３】先に描画された図形の描画例を示す図である。
【図４】互いに線で外接し、順に描画された２つの図形の描画例を示す図ある。
【図５】実施形態に係る画像処理装置等の機能構成の概略を示す図である。
【図６】共有情報を含む描画オブジェクトデータの例である。
【図７】エッジ情報のデータの例である。
【図８】走査線及び交点の例を示すイメージ図である。
【図９】交点バッファに蓄積された交点情報のデータの例である。
【図１０】スパン情報のデータの例である。
【図１１】描画の処理の流れの例を示すシーケンス図である。
【図１２】実施形態に係る制限範囲情報設定等の処理の流れを示すフローチャートである。
【図１３】実施形態に係る交点生成の処理の流れを示すフローチャートである。
【図１４】実施形態に係るスパン生成の処理の流れを示すフローチャートである。
【図１５】実施形態に係る交点のスパン生成の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について、図面に基づいて説明する。本実施形態において、画像処理装置は、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）として実施される。また、本実施形態において、図形の境界線は、所定種類の線としての線分の連結により構成されることが採用される。なお、以下に説明する実施の形態は、本発明を実施する一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明を実施するにあたっては、実施の形態に応じた具体的構成が適宜採用されることが好ましい。
【００２２】
＜システム構成＞
図１は、本実施形態に係る画像処理装置を含むグラフィックシステムの構成を示す概略図である。
【００２３】
グラフィックシステム１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の補助記憶装置１４、画像処理装置であり２Ｄ（２次元）のベクタグラフィックス処理の機能を搭載するＧＰＵ１５、及び表示装置である表示部１６を備えたコンピュータである。ここで、グラフィックシステム１は、スマートフォンなどの携帯電話機、タブレット端末、パーソナルコンピュータ、その他のコンピュータ等である。なお、グラフィックシステム１は、トナーやインクによる描画機能を有するプリンタ、ビデオ機能を搭載するデジタル家電等であってもよい。また、本発明に係る画像処理装置は、ＧＰＵ１５である場合に限らず、グラフィックシステム１として実施されてもよい。
【００２４】
グラフィックシステム１では、インストールされた描画ソフトウェアにより、ベクタ図形が画素（ピクセル）の集合体として描画され、表示部１６に表示される。
【００２５】
ＣＰＵ１１は、中央処理装置であり、ＲＡＭ１２等に展開された各種プログラムの命令及びデータを処理することで、ＲＡＭ１２、補助記憶装置１４、ＧＰＵ１５、表示部１６等を制御する。ＲＡＭ１２は、主記憶装置であり、ＣＰＵ１１によって制御され、各種命令やデータが書き込まれ、読み出される。補助記憶装置１４は、不揮発性の補助記憶装置であり、ＲＡＭ１２にロードされるＯＳや描画ソフトウェア等、主にコンピュータの電源を落としても保持したい情報が書き込まれ、読み出される。
【００２６】
ＧＰＵ１５は、ＣＰＵ１１から制御情報や、描画対象となるベクタ形式の図形の情報（以下、描画オブジェクトデータと呼ぶことがある）等を受け付け、ベクタグラフィックスに関する処理を行う。ベクタ形式は、例えば、線分や曲線（例えば、ベジエ曲線、楕円曲線等）の方程式のパラメータで定義された基本的な構成要素を組み合わせたパス（Ｐａｔｈ）によって画像を表現する形式である。本実施形態におけるＧＰＵ１５は、基本的な構成要素である所定種類の線として、線分を採用し、線分を組み合わせたパスによって図形の境界線を表す。なお、線分だけでなく、曲線によっても境界線が表されていることを採用してもよい。また、本実施形態におけるＧＰＵ１５は、アンチエイリアシングを用いた図形の描画機能を備える。また、ＧＰＵ１５が行う処理の一部は、パイプライン処理される。
【００２７】
なお、ＧＰＵ１５は、同様の処理を行うグラフィックスアクセラレータや、ＬＳＩ（Ｌａｒｇｅ Ｓｃａｌｅ Ｉｎｔｅｇｒａｔｉｏｎ）の部分であるＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ Ｐｒｏｐｅｒｔｙ）コア等であってもよい。
【００２８】
図２は、互いに線で外接し、順に描画される２つの図形の例を示す図である。本実施形態に係るグラフィックシステム１では、例えば、図２に示される図形ＳＨ１、ＳＨ２の描画処理が行われる。図２における図形の座標系は、原点Ｏを起点として、右方向がＸ軸、下方向がＹ軸である。図２の図形ＳＨ１は、折れ線Ｖ１Ｖ２Ｖ３Ｖ４Ｖ１を境界線とする図形（多角形）である。また、図形ＳＨ２は、折れ線Ｖ５Ｖ６Ｖ７Ｖ８Ｖ２Ｖ９Ｖ５を境界線とする図形である。図形ＳＨ１とＳＨ２とは、互いに折れ線Ｖ８Ｖ２Ｖ９で構成される線で外接する。図２において、図形ＳＨ１の境界線及びその内部は赤色、図形ＳＨ２の境界線及びその内部は青色、背景色は黄色で描画されるものとする。このような図形の境界線や描画色の情報は、図形作成の機能を有するオーサリングツール等によって、作成され、図形のパスや描画色の情報として出力され、補助記憶装置１４等に記憶される。グラ
フィックシステム１は、例えば、補助記憶装置１４に記憶されている図形のデータを読み出し、描画処理する。
【００２９】
図３は、先に描画された図形の描画例を示す図である。図３は、本実施形態に係るグラフィックシステム１が、背景色の上に図２の図形ＳＨ１を描画した結果である。この描画結果は、図形ＳＨ２よりも先に図形ＳＨ１を描画することを前提としたものである。図３では、図形ＳＨ１が、格子状に並んだ各画素の色（濃淡）により表現され、描画されている。
【００３０】
図３の各画素には座標が割り当てられている。画素の座標系は、右方向がＸ軸、下方向がＹ軸であり、図３には、Ｘ座標が０から３１まで、Ｙ座標が０から２３までに位置する画素が示されている。
【００３１】
図３では、アンチエイリアシングの処理により、例えば、座標（Ｘ，Ｙ）＝（２３，５）に位置する画素等の、図形ＳＨ１の境界線と重なる画素の色は、背景色と図形ＳＨ１の描画色とが混合されるため、座標（Ｘ，Ｙ）＝（２０，１３）等の図形ＳＨ１内部に位置する画素の色（描画色）とは異なったものとなる。また、座標（Ｘ，Ｙ）＝（１３，１０）に位置する画素等の、図形ＳＨ１とＳＨ２とが外接する線と重なる画素の色は、本実施形態に係るグラフィックシステム１の特徴により、背景色と混合されないため、図形ＳＨ１内部に位置する画素の色と同一のものとなる。また、座標（Ｘ，Ｙ）＝（１７，８）に位置する画素等の、図形ＳＨ１とＳＨ２とが外接する線の端点と重なる画素の色は、本実施形態に係るグラフィックシステム１の特徴により、背景色と図形ＳＨ１の描画色とが混合された色となる。
【００３２】
図４は、互いに線で外接し、順に描画された２つの図形の描画例を示す図ある。図４は、本実施形態に係るグラフィックシステム１が、図形ＳＨ１を描画した後（図３）に、図形ＳＨ２を描画した結果である。アンチエイリアシングの処理により、座標（Ｘ，Ｙ）＝（５，７）に位置する画素等の、図形ＳＨ２の境界線と重なる画素の色は、背景色と図形ＳＨ２の描画色とが混合されるため、座標（Ｘ，Ｙ）＝（１１，１１）等の図形ＳＨ２内部に位置する画素の色（描画色）とは異なったものとなる。また、座標（Ｘ，Ｙ）＝（１３，１０）に位置する画素等の図形ＳＨ１とＳＨ２とが外接する線と重なる画素の色は、本実施形態に係るグラフィックシステム１の特徴により、図形ＳＨ１の描画色と図形ＳＨ２の描画色とが混合された色となる。また、座標（Ｘ，Ｙ）＝（１７，８）に位置する画素等の、図形ＳＨ１とＳＨ２とが外接する線の端点と重なる画素の色は、本実施形態に係るグラフィックシステム１の特徴により、背景色と図形ＳＨ１の描画色と図形ＳＨ２の描画色とが混合された色となる。
【００３３】
本実施形態に係るグラフィックシステム１は、以上説明したように、図形の境界線について、アンチエイリアシングによる滑らかな色の変化を得つつ、背景色が適切に混合された、所望の描画色が得られる描画機能を提供する。
【００３４】
＜機能構成＞
図５は、本実施形態に係る画像処理装置等の機能構成の概略を示す図である。補助記憶装置１４に記憶されている描画ソフトウェア２１は、ＣＰＵ１１によって実行されることで、境界線情報分割部２２やＧＰＵ１５の制御部３１に対して描画指示等を行う機能部として機能する。また、ＧＰＵ１５は、制御部３１、エッジ生成部３２、制限範囲情報設定部３３、交点生成部３４、境界線取得部３５、制限範囲取得部３６、スパン生成部３７、不透明度算出部３８、ラスタライザ３９、ピクセル生成部４０を備える。また、ＧＰＵ１５が所定のデータ構造で交点情報を読み書きすることで、ＲＡＭ１２は、交点バッファ５１として機能する。
【００３５】
なお、制御部３１、エッジ生成部３２、制限範囲情報設定部３３、交点生成部３４、境界線取得部３５、制限範囲取得部３６、スパン生成部３７、不透明度算出部３８、ラスタライザ３９、及びピクセル生成部４０のそれぞれ、またはこれらの組み合わせは、例えば、プログラムを実行するＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）であってもよいし、専用のハードウェア回路であってもよい。また、ＧＰＵ１５が内部にＲＡＭを備え、そのＲＡＭが交点バッファ５１として機能することを採用してもよい。
【００３６】
本実施形態において、描画ソフトウェア２１は、グラフィックシステム１に搭載された、図形を描画するためのアプリケーションプログラムである。描画ソフトウェア２１は、図形描画指示、描画色指定等の制御情報をＧＰＵ１５に対して入力する。ここで、図形描画指示は、描画オブジェクトデータをともなった、図形の描画指示である。描画オブジェクトデータは、描画される図形を示すデータであり、共有情報を含む。共有情報は、図形と他の図形と外接に関する情報であり、外接する線（以下、共有線と呼ぶことがある）を示す情報である。
【００３７】
図６は共有情報を含む描画オブジェクトデータの例である。図６において、Ｄ００１〜Ｄ００６は、図２における図形ＳＨ１の描画オブジェクトデータを示し、データＤ００７〜Ｄ０１２は、図２における図形ＳＨ２の描画オブジェクトデータを示す。描画ソフトウェア２１は、例えば、データＤ００１〜Ｄ００６を、図形ＳＨ１の図形描画指示の際に、ＧＰＵ１５へ出力する。
【００３８】
図６において、描画オブジェクトデータは、始点座標及び終点座標の組で示される線分の情報の集合で表されている。これらの集合は、図形の境界線を示すパスを構成する。図６において、座標（Ｖ１ｘ，Ｖ１ｙ）、（Ｖ２ｘ，Ｖ２ｙ）、…（Ｖ９ｘ，Ｖ９ｙ）は、図２における点Ｖ１、Ｖ２、…Ｖ９の座標を示している。例えば、データＤ００５の始点座標（Ｖ３ｘ，Ｖ３ｙ）及び終点座標（Ｖ４ｘ，Ｖ４ｙ）の組は、線分Ｖ３Ｖ４を示す。
【００３９】
本実施形態において、共有情報は、描画オブジェクトデータの各線分と関連付けられ、線分の始点座標に関する始点共有情報と線分の終点座標に関する終点共有情報との組で示される。始点共有情報及び終点共有情報は、それぞれ、「開始」（共有線の開始点）、「継続」（共有線の端点以外の点）、「終了」（共有線の終了点）、「−」（共有線上の点ではなく、共有情報はない）の何れかの値で示される。例えば、データＤ００２及びＤ００３の共有情報は、点Ｖ９が共有線の開始点であり、点Ｖ２が共有線の端点以外の点であり、点Ｖ８が共有線の終了点であることを示している。即ち、折れ線Ｖ９−Ｖ２−Ｖ８が共有線であることを示している。また、例えば、データＤ００１の共有情報は、線分Ｖ１Ｖ９は、共有線上の線分ではないことを示している。
【００４０】
また、本実施形態において、描画ソフトウェア２１は、図形描画指示を行うより前に、図形作成の機能を有するオーサリングツール等によって出力された作成された図形データから、図形描画指示の対象となる図形に関する描画オブジェクトデータ及び共有情報を生成する。この際、描画ソフトウェア２１は、例えば、図形データが示す各図形の境界線の位置や傾きを算出し、重なりを判定することで、共有線を検出し、共有情報を生成する。
【００４１】
本実施形態において、境界線情報分割部２２は、図形が他の図形と線で外接し共有線を有する場合であって、共有線の端点が図形の境界線を構成する線分上（線分の端点を除く）に存在するときに、共有線の当該端点で当該線分を分割する。そして、境界線情報分割部２２は、分割前の当該線分の代わりに、分割された線分それぞれを示す線分の情報を要素とした新たなパスを生成する。例えば、図２の図形ＳＨ１の境界線が、線分Ｖ１Ｖ２、Ｖ２Ｖ３、Ｖ３Ｖ４、及びＶ４Ｖ１を要素とするパスで表されている場合を考える。図２
の図形ＳＨ１とＳＨ２とは共有線である折れ線Ｖ９−Ｖ２−Ｖ８で外接する。更に、共有線の端点Ｖ９は、図形ＳＨ１のパスを構成する線分Ｖ１Ｖ２上に存在する。境界線情報分割部２２は、線分Ｖ１Ｖ２を端点Ｖ９で分割し、線分Ｖ１Ｖ９、及びＶ９Ｖ２それぞれを示す線分の情報を要素とした新たなパス（折れ線Ｖ１Ｖ９Ｖ２Ｖ３Ｖ４Ｖ１）を生成する。更に、共有線の端点Ｖ８は、図形ＳＨ１の新たなパスを構成する線分Ｖ２Ｖ３上に存在する。境界線情報分割部２２は、線分Ｖ２Ｖ３を端点Ｖ８で分割し、線分Ｖ２Ｖ８、及びＶ８Ｖ９それぞれを示す線分の情報を要素とした更に新たなパス（折れ線Ｖ１Ｖ９Ｖ２Ｖ８Ｖ３Ｖ４Ｖ１）を生成する。本実施形態において、境界線情報分割部２２は、分割の対象がなくなるまで、このような分割を繰り返し、新たなパスを生成する。
【００４２】
境界線情報分割部２２によれば、共有線の端点によりパスを構成する線分が分割されるため、各線分の組み合わせで共有線の情報を構成することが可能になり、線分単位に共有線に関する所定の画像処理を行うことができるようになる。このことによって、パイプライン処理の実現が容易になり、効率的な画像処理が実現可能になる。
【００４３】
本実施形態において、制御部３１は、入力される制御情報に基づいて、エッジ生成部３２、制限範囲情報設定部３３、交点生成部３４、スパン生成部３７、ラスタライザ３９、ピクセル処理部４０等を制御する。制御部３１は、ＧＰＵ１５におけるパイプライン処理の制御も行う。
【００４４】
本実施形態において、エッジ生成部３２は、描画オブジェクトデータを取得し、取得した描画オブジェクトデータに基づいて、エッジ情報を生成する。そして、エッジ生成部３２は、エッジ情報を交点生成部３４に出力する。ここで、エッジ情報とは、図形の境界線を示すパスを分解した線分を示すエッジに関する情報であって、エッジの向き等の情報を含んだ、交点生成部３４が処理するのに適した形式の情報である。エッジ情報は図形の境界線情報を構成する。本実施形態においてエッジは、パスを構成する線分と一致する。なお、パスが曲線等により構成されるようなグラフィックシステム１において、エッジ生成部３２がパスを近似する線分に分解し、分解された線分それぞれをエッジとして扱い、それぞれのエッジに関するエッジ情報を生成することを採用してもよい。
【００４５】
また、本実施形態において、エッジ生成部３２は、制限範囲情報設定部３３を有しており、制限範囲情報設定部３３を用いて、エッジ情報が示す境界線に制限範囲情報を設定させる。ここで、制限範囲情報とは、描画色の混合を制限する範囲を示す情報である。
【００４６】
図７は、エッジ情報のデータの例である。図７において、Ｄ１０１〜Ｄ１０６は、図２における図形ＳＨ１のエッジ情報を示し、データＤ１０７〜Ｄ１１２は、図２における図形ＳＨ２のエッジ情報を示す。エッジ生成部３２は、例えば、図形ＳＨ１の描画オブジェクトデータの入力に対し、データＤ１０１〜Ｄ１０６を順次生成して出力する。
【００４７】
図７において、エッジ情報は、始点座標、始点制限情報、終点座標、終点制限情報、及び向きの情報を有する。始点座標及び終点座標の組は、図形の境界線を構成するエッジを示す。向きは、エッジの向きが上向き（「上」）であるか、下向き（「下」）であるかを示す。図形の内部は、エッジの向きにエッジに沿って移動したときの進行方向の右側または左側に定義される。本実施形態において、図形の内部は、エッジの向きの上向きに対して当該進行方向の右側、エッジの向きの下向きに対して左側に定義される。なお、図形の内部の定義規則（即ち、描画における塗りつぶしの規則）は、偶奇規則（Ｅｖｅｎ−Ｏｄｄ Ｒｕｌｅ）等、その他の規則が採用されてもよい。
【００４８】
本実施形態において、制限範囲情報は、各エッジと関連付けられ、エッジの始点座標に関する始点制限情報と、エッジの終点座標に関する終点制限範囲情報とで示される範囲（
以下、制限範囲ということがある）を示す。始点制限情報及び終点制限情報は、それぞれ、「開始」（範囲の開始点）、「継続」（範囲の継続点）、「終了」（範囲の終了点）、「−」（範囲外の点）の何れかの値で示される。例えば、データＤ１０１〜Ｄ１０６に示される、図形ＳＨ１の境界線に設定された制限範囲情報の範囲は、点Ｖ９が開始点であり、点Ｖ２が継続点であり、点Ｖ８が終了点であることを示している。即ち、折れ線Ｖ９−Ｖ２−Ｖ８が設定された範囲であることを示している。
【００４９】
本実施形態において、制限範囲情報設定部３３は、互いに共有線で外接する２つの図形のうち、先に描画される第１の図形の境界線に対して、当該共有線の範囲を制限範囲情報として設定する。また、制限範囲情報設定部３３は、後に描画される第２の図形の境界線に対して、当該共有線の範囲に応じた制限範囲を設定しない。制限範囲情報設定部３３は、描画オブジェクトデータのパスを構成する線分の情報、及び共有情報を入力とし、先に描画される図形のエッジ情報に制限範囲情報を設定し、後に描画される図形に制限範囲情報を設定しない。
【００５０】
ここで、互いに共有線で外接する２つの図形は、例えば、図２の図形ＳＨ１及びＳＨ２である。なお、１つの図形Ａが２つ以上の図形それぞれと外接する場合もある。この場合、制限範囲情報設定部３３は、それぞれの外接について、境界線に対する制限範囲情報の設定を処理する。
【００５１】
図７には、描画ソフトウェア２１が図形ＳＨ１に関する図形描画指示を先にＧＰＵ１５に対して行い、その後に図形ＳＨ２に関する図形描画指示を行う場合におけるエッジ情報群が示されている。制限範囲情報設定部３３は、先に描画される図形ＳＨ１に対しては、データＤ１０２、Ｄ１０３が示す制限範囲Ｖ９Ｖ２Ｖ８を設定し、後に描画される図形ＳＨ２に対しては、データＤ１１０、Ｄ１１１が示すように、制限範囲を設定しない。制限範囲情報設定部３３の処理の詳細については、後述する。
【００５２】
制限範囲情報設定部３３によれば、先に描画される図形の境界線に制限範囲情報が設定されるため、先に描画される図形の境界線の描画において、背景色が混合されず、カラーブリーディングを防止できる。また、制限範囲情報設定部３３によれば、後に描画される図形の境界線に制限範囲情報が設定されないため、アンチエイリアシングによる滑らかな色の変化を得ることもできる。
【００５３】
本実施形態において、交点生成部３４は、図形の境界線と走査線方向の画素の並びとの交点に位置する画素の座標、及び、当該画素の不透明度を図形が画素の覆う程度を示すカバー値とするか否かを示すカバー値採用情報を含む交点情報を生成する。ここで、交点生成部３４は、交点情報が含むカバー値採用情報について、制限範囲情報の示す制限範囲（端点を含まない）に位置する画素に対して、カバー値採用情報にカバー値としないこと示す不採用値を設定した交点情報を生成する。また、交点生成部３４は、制限範囲情報の示す制限範囲に位置しない画素（制限範囲情報の示す範囲の端点に位置する画素を含む）に対して、カバー値採用情報にカバー値とすることを示す採用値を設定した交点情報を生成する。またここで、本実施形態において、走査線は、描画される画像中の画素の水平方向の並びである。本実施形態において走査線方向は、Ｘ軸方向（水平方向）である。
【００５４】
交点生成部３４は、境界線取得部３５及び制限範囲取得部３６を含み、境界線取得部３５及び制限範囲取得部３６によって、境界線情報及び制限範囲情報を示すエッジ情報を取得する。交点生成部３４は、取得したエッジ情報に基づいて、交点情報を生成し、生成した交点情報を交点バッファ５１に出力して蓄積させる。ここで、本実施形態において交点バッファ５１は、１度に描画される図形ごとに、その図形の交点情報を蓄積するバッファである。なお、交点生成部３４の処理の詳細については、後述する。
【００５５】
図８は、走査線及び交点の例を示すイメージ図である。図８には、図形ＳＨ１に関する描画処理を行う場合における、Ｙ座標１３の走査線ＳＣ１１が示されている。図８において、交点に位置する画素は、交点Ｉ１１ａ、Ｉ１１ｂ、及びＩ１１ｃである。
【００５６】
図９は、交点バッファ５１に蓄積された交点情報のデータの例である。図９において、交点情報は、Ｙ、Ｘ、カバー値採用情報、及び向きの情報を有する。Ｙ、Ｘは、それぞれ交点のＹ座標、Ｘ座標を示す。カバー値採用情報は、「採用」（カバー値とすることを示す採用値）、「不採用」（カバー値としないことを示す不採用値）の値をとる。向きは、交点を通過するエッジの向きを示す。図８において、Ｄ２０２〜Ｄ２０４は、それぞれ図８の交点Ｉ１１ａ、Ｉ１１ｂ、及びＩ１１ｃに対応する交点情報を示す。例えば、交点生成部３４が生成したデータＤ２０２のカバー値採用情報は、交点Ｉ１１ａが制限範囲情報の設定されたエッジＶ２Ｖ８上（制限範囲情報の示す範囲）に位置するため、「不採用」となる。また、例えば、交点生成部３４が生成したデータＤ２０４のカバー値採用情報は、交点Ｉ１１ｃが制限範囲情報の設定されていないエッジＶ４Ｖ１上に位置する（制限範囲情報の示す範囲に位置しない）ため、「採用」となっている。また、本実施形態において、交点情報は、図９に図示されない、カバー値を算出するためのカバー値情報を含む。カバー値情報は、図形が交点をどのように覆っているかを示す情報である。
【００５７】
なお、交点バッファ５１は、描画領域の大きさに応じて確保した２次元配列に交点情報を蓄積することを採用してもよい。
【００５８】
本実施形態において、境界線取得部３５は、図形の境界線をベクタ形式により示す境界線情報としてのエッジ情報（始点座標、終点座標等）を取得する。
【００５９】
本実施形態において、制限範囲取得部３６は、図形の境界線に設定される範囲の情報であって、描画色の混合を制限する範囲を示す制限範囲情報としてのエッジ情報（始点制限情報、終点制限情報等）を取得する。
【００６０】
本実施形態において、スパン生成部３７は、走査線方向に連続して並ぶ、１つ以上の描画対象となる画素の範囲、及び当該範囲の不透明度を含むスパン情報を生成する。ここで、不透明度とは、描画における図形の描画色を混合する程度を示すものである。スパン生成部３７は、不透明度算出部３８を有しており、当該範囲に含まれる交点に位置する画素の不透明度が、不透明度算出部３８によって算出される不透明度であるスパン情報を生成する。
【００６１】
本実施形態において、スパン生成部３７は、まず、交点バッファ５１に蓄積された交点情報を読み込む。スパン生成部３７は、次に、読み込んだ交点情報に基づいて、スパン情報を生成する。スパン生成部３７は、次に、生成したスパン情報をラスタライザ３９に出力する。
【００６２】
図１０は、スパン情報のデータの例である。図１０のデータ３０１〜Ｄ３０４には、図形ＳＨ１のＹ座標１３のスパンを示すスパン情報が示されている。図１０において、スパン情報は、Ｙ、始点Ｘ、終点Ｘ、不透明度の情報を含む。Ｙは、スパンのＹ座標を示す。始点Ｘ及び終点Ｘは、それぞれスパンの始点、終点のＸ座標を示す。不透明度は、スパンを画素として描画するときの描画色の不透明度を示す値であり、０（透明）より大きい値で、１．０（不透明、即ち描画色で上書き）以下である値をとる。例えば、不透明度０．５は半透明を示し、図形の描画の際にその図形の描画色を半分の比率で混合することを意味する。図１０において、例えば、データＤ３０１のスパンは、図８の交点Ｉ１１ａの画素の描画に関するスパンを示す。また、例えば、データＤ３０３のスパンは、図８の交点
Ｉ１１ｂの右隣（Ｘ座標１６）の画素から交点Ｉ１１ｃの左隣（Ｘ座標２６）の画素までの描画に関するスパンを示す。
【００６３】
本実施形態において、不透明度算出部３８は、図形の境界線と走査線方向の画素の並びとの交点に位置する各画素の不透明度として、制限範囲情報の示す範囲と走査線方向の画素並びとの交点に位置する画素に対して、不透明を示す値を算出する。また、不透明度算出部３８は、不透明度として、制限範囲情報の示さない範囲と走査線方向の画素の並びとの交点に位置する画素に対して、当該画素を図形が覆う程度を示すカバー値を算出する。本実施形態において、不透明度算出部３８は、交点情報部３４によって生成された交点情報のカバー値採用情報に基づいて、不透明度を算出する。不透明度算出部３８は、交点情報の画素（交点）それぞれに対し、画素がカバー値採用情報に不採用値の設定されている画素である場合に、不透明を示す値を算出する。また、不透明度算出部３８は、画素がカバー値採用情報に不採用値の設定されていない画素である場合に、カバー値を算出する。
【００６４】
本実施形態において、不透明度算出部３８が算出するカバー値は、１つの交点の画素における、図形が占める面積の割合である。不透明度算出部３８は、交点情報が有するカバー値情報に基づいてカバー値を算出する。なお、カバー値の算出方法は、アンチエイリアシング技術における種々の方法から適当な方法を採用してもよい。
【００６５】
本実施形態の不透明度算出部３８によれば、不透明度としてカバー値を算出するので、描画の際に、アンチエイリアシングによる滑らかな色の変化が得られる。また、制限範囲情報の示す範囲と走査線方向の画素並びとの交点に位置する画素に対して、不透明を示す値を算出するため、図形の境界線の一部については、例えば、背景色と混合されない所望の画素色を得ることもできる。即ち、カラーブリーディングを抑制した画素色を得ることができる。また、本実施形態の不透明度算出部３８及び交点生成部３４によれば、制限範囲情報の示す範囲の端点については不透明度としてカバー値を算出するので、共有線の端点に関して、背景色が混合された所望の画素色を得ることができる。
【００６６】
なお、本実施形態において、交点生成部３４、交点バッファ５１、及びスパン生成部３７は、制限範囲の設定を含むエッジ情報を入力とし、スパン情報を生成する機能を提供する。このうち、交点生成部３４及びスパン生成部３７は、例えば、プログラムを実行する１つのＤＳＰであってもよいし、１つの専用のハードウェア回路であってもよい。そして、このようなＤＳＰ、または専用のハードウェア回路を、本発明の１つの実施形態として採用してもよい。
【００６７】
本実施形態において、ラスタライザ３９は、スパン情報、描画色に基づいて各画素の色に関するピクセル情報を生成する。ラスタライザ３９は、生成したピクセル情報をピクセル処理部４０に出力する。ピクセル情報は、不透明度を含む情報である。ラスタライザ３９は、例えば、図１０のデータＤ３０１〜Ｄ３０４のスパン情報と、図形ＳＨ１の描画色に基づいて、図３における座標（Ｘ，Ｙ）＝（１４、１３）〜（２７、１３）の画素に関するピクセル情報を生成し、ピクセル処理部４０に出力する。このとき、例えば、図３における座標（Ｘ，Ｙ）＝（２７、１３）の画素に関するピクセル情報の不透明度は、０．５である。
【００６８】
本実施形態において、ピクセル処理部４０は、ピクセル情報に基づいて表示部１６を制御することで、描画領域に表示される画像を更新する。この際、ピクセル処理部４０は、ピクセル情報の示す不透明度に応じて、既に描画されている色とピクセル情報の示す色との混合処理（ブレンド処理）を行う。ピクセル処理部４０は、例えば、図３における座標（Ｘ，Ｙ）＝（２７、１３）の画素については、不透明度が０．５であるため、既に描画されている色（背景色）と描画色とを１：１の割合で混合する。
【００６９】
＜処理の流れ＞
図１１から図１５までを用いて、本実施形態に係るグラフィックシステム１の処理の流れを説明する。なお、これらの図に示された処理の具体的な内容及び順序は一例であり、処理内容及び順序には、実施の形態に適したものが適宜採用されることが好ましい。
【００７０】
図１１は、描画の処理の流れの例を示すシーケンス図である。図１１には、描画画像がクリアされ、図形ＳＨ１、ＳＨ２が順に描画されるまでの流れが記載されている。なお、この処理の流れにおいて、描画ソフトウェア２１が扱う描画オブジェクトデータは、既に境界線情報分割部２２によってパスが分割されているものである。
【００７１】
ステップＳ１０１及びＳ１０２では、表示画像がクリアされる。まず、ステップＳ１０１では、描画ソフトウェア２１が背景色黄色で表示画像のクリアをする指示を制御情報としてＧＰＵ１５に出力する。次に、ステップＳ１０２では、ＧＰＵ１５の制御部３１が、入力された指示に従って、表示画像を背景色黄色でクリアする。この際、制御部３１は、制限範囲設定部３３が使用する処理済の共有情報を削除する（詳細は後述する）。この際、交点バッファ５１に蓄積された交点情報はすべて削除（クリア）される。
【００７２】
ステップＳ１０３及びＳ１０４では、描画色が設定される。まず、ステップＳ１０３では、描画ソフトウェア２１が描画色を赤色にする指定を制御情報としてＧＰＵ１５に出力する。次に、ステップＳ１０４では、ＧＰＵ１５の制御部３１が、入力された指定に従って、描画色を赤色に設定する。ここで設定された描画色は、ラスタライザ３９等によって用いられる。
【００７３】
ステップＳ１０５からＳ１１２では、図形ＳＨ１の描画処理が行われる。まず、ステップＳ１０５で、描画ソフトウェア２１が、制御情報としての図形ＳＨ１の図形描画指示とともに、図形ＳＨ１の描画オブジェクトデータをＧＰＵ１５に対して出力する。次に、ＧＰＵ１５が入力された指示、描画オブジェクトデータに従って、ステップＳ１０６からＳ１１１までの処理を行う。ステップＳ１０６からＳ１１１までの処理によって、図３に示されるような描画結果が得られる。次に、ステップＳ１１２では、交点バッファ５１がクリアされる。
【００７４】
ステップＳ１０６からＳ１０８までは、エッジに関するループ処理を構成し、ステップＳ１０６において生成されるエッジ情報それぞれを処理し、交点情報を蓄積する（Ｌ１０１）。また、ステップＳ１０９からＳ１１１までは、交点に関するループ処理を構成し、ステップＳ１０６からＳ１０８までのループ処理において蓄積される交点情報それぞれを処理する（Ｌ１０２）。なお、ステップＳ１０６からＳ１１１までの各処理は、図１１では、順番に行われるように記載されているが、その全部または一部は、パイプライン処理される。このようにすることで、ＧＰＵ１５は、高速な描画処理を行うことができる。
【００７５】
ステップＳ１０６では、エッジ生成部３２が、取得した図形ＳＨ１の描画オブジェクトデータに基づいて、エッジ情報を生成する。
【００７６】
ステップＳ１０７では、制限範囲情報設定部３３が、図形ＳＨ１の境界線に対して制限範囲情報を設定する。具体的には、図７のデータＤ１０２及びＤ１０３の始点制限情報及び終点制御情報を設定する。処理の詳細については後述する。
【００７７】
ステップＳ１０８では、交点生成部３４が、取得した図形ＳＨ１のエッジ情報に基づいて交点情報を生成し、生成した交点情報を交点バッファ５１に出力し、蓄積させる。
【００７８】
ステップＳ１０９では、スパン生成部３７が、交点バッファ５１に蓄積された交点情報を読み込み、交点情報に基づいて、スパン情報を生成する。また、スパン生成部３７は、生成したスパン情報をラスタライザ３９に出力する。
【００７９】
ステップＳ１１０では、ラスタライザ３９が、取得したスパン情報、描画色に基づいて各画素の色に関するピクセル情報を生成する。ラスタライザ３９は、生成したピクセル情報をピクセル処理部４０に出力する。
【００８０】
ステップＳ１１１では、ピクセル処理部４０が、取得したピクセル情報を処理する。ピクセル処理部４０、ピクセル情報に基づいて、表示画像の更新を行う。
【００８１】
ステップＳ１１２では、制御部３１が、交点バッファ５１に蓄積された交点情報をクリアする。
【００８２】
ステップＳ１１３及びＳ１１４では、描画色が設定される。ここで設定される描画色は青色であるが、その処理は、ステップＳ１０３及びＳ１０４と同様である。
【００８３】
ステップＳ１１５からＳ１２２まででは、図形ＳＨ２の描画処理が行われる。まず、ステップＳ１１５で、描画ソフトウェア２１が、制御情報としての図形ＳＨ２の図形描画指示とともに、図形ＳＨ１の描画オブジェクトデータをＧＰＵ１５に対して出力する。次に、ＧＰＵ１５が入力された指示、及び描画オブジェクトデータに従って、ステップＳ１１６からＳ１２１までの処理を行う。ステップＳ１１６からＳ１２１までの処理によって、図４に示されるような描画結果が得られる。次に、ステップＳ１２２では、交点バッファ５１がクリアされる。
【００８４】
ステップＳ１１６からＳ１１８までは、エッジに関するループ処理を構成し、ステップＳ１１６において生成されるエッジ情報それぞれが処理され、交点情報が蓄積される（Ｌ１０３）。また、ステップＳ１１９からＳ１２１までは、交点に関するループ処理を構成し、ステップＳ１１６からＳ１１８までのループ処理において蓄積される交点情報それぞれが処理される（Ｌ１０４）。
【００８５】
ステップＳ１１７では、図形ＳＨ２がＳＨ１より後に描画される図形であるため、制限範囲情報設定部３３は、図形ＳＨ２の境界線に対して制限範囲情報を設定しない。そのため、図７のデータＤ１０７及びＤ１１２の始点制限情報及び終点制御情報を「−」（範囲外の点）となる。
【００８６】
ステップＳ１１６、及びＳ１１８からＳ１２２まででは、ステップＳ１０６、及びステップＳ１０８からＳ１１２までと同様に、エッジ生成、交点生成、スパン生成、ピクセル生成、ピクセル処理、交点バッファクリアの各処理が行われる。
【００８７】
図１２は、本実施形態に係る制限範囲情報設定等の処理の流れを示すフローチャートである。この処理の流れは、描画ソフトウェア２１から出力された描画オブジェクトデータがエッジ生成部３２に取得されたことを契機に開始される。なお、この処理の流れは、図１１のステップＳ１０７及びＳ１１７の処理の詳細を主に示すものである。
【００８８】
ステップＳ２０１では、制限範囲情報設定３３が取得した描画オブジェクトデータのパスの構成要素（線分の情報）がすべて処理済みであるか否かを判定する。ステップＳ２０１で、すべて処理済みであると判定された場合は、処理は終了する。ステップＳ２０１で、すべて処理済みであると判定されなかった場合は、処理はステップＳ２０２へ進む。
【００８９】
ステップＳ２０２では、制限範囲情報設定３３が、未処理である、次のパスの構成要素を処理対象に設定する。
【００９０】
ステップＳ２０３では、エッジ生成部３２が、エッジ情報を生成する。ここで、生成されるエッジ情報には、制限範囲情報は設定されておらず、始点制限情報、終点制限情報の値は、何れも「−」である。
【００９１】
ステップＳ２０４では、制限範囲情報設定３３が、処理対象の構成要素に関する共有情報が存在するか否かを判定する。ここで、処理対象の構成要素に関する共有情報は、図６における始点共有情報、終点共有情報で表される情報である。ステップＳ２０４で、共有情報が存在すると判定された場合（値が「開始」、「継続」、「終了」である場合）、処理はステップＳ２０５へ進む。ステップＳ２０４で、共有情報が存在すると判定されなかった場合（値が「−」である場合）、処理はステップＳ２０８へ進む。
【００９２】
ステップＳ２０５では、制限範囲情報設定３３が、処理対象の構成要素に関する共有情報が処理済の共有情報と一致するか否かを判定する。ここで、処理済の共有情報は、ステップＳ２０７において、記憶される共有情報であり、制御部３１が表示画像のクリアをする指示を取得した場合に、削除される情報である。またここで、一致するとは、共有情報の実質的な内容が同一であることをいう。例えば、図６のデータＤ０１１が示す共有情報は、Ｖ９を開始点としＶ２を継続点とする線分Ｖ９Ｖ２の外接の情報であるため、これと同内容の共有情報を示す図６のデータＤ００２が処理済の共有情報として記憶されていた場合に、一致すると判定される。
【００９３】
ステップＳ２０５で、処理対象の構成要素に関する共有情報が処理済の共有情報と一致すると判定された場合、処理はステップＳ２０８へ進む。ステップＳ２０５で、処理対象の構成要素に関する共有情報が処理済の共有情報と一致すると判定されなかった場合、処理はステップＳ２０６へ進む。
【００９４】
ステップＳ２０６では、制限範囲情報設定３３が、ステップＳ２０３で生成されたエッジ情報に制限範囲情報を設定する。本実施形態において、制限範囲情報設定３３が設定する制限範囲情報の内容は、処理対象の構成要素に関する共有情報と同様の内容である。例えば、制限範囲情報設定３３は、線分Ｖ９Ｖ２を示すエッジ情報に対し、図６のデータＤ００２の線分Ｖ９Ｖ２の始点共有情報「開始」、終点共有情報「継続」が示す共有情報に対応して、始点制限情報「開始」、終点制限情報「継続」が示す制限範囲情報を設定する（図７のデータＤ１０２）。
【００９５】
ステップＳ２０７では、制限範囲情報設定３３が、処理対象の構成要素の共有情報を処理済として記憶する。制限範囲情報設定３３は、例えば、図６のデータＤ００２を処理済の共有情報として記憶する。ここで記憶される処理済の共有情報によって、制限範囲情報設定３３は、先に描画される図形の境界線に係るエッジであるか否かを判別することができる。
【００９６】
ステップＳ２０８では、エッジ生成部３２が、ステップＳ２０３において生成したエッジ情報を交点生成部３４に出力する。ここで出力されるエッジ情報は、ステップＳ２０６において、制限範囲情報が設定されている場合がある。ステップＳ２０８の後、処理はステップＳ２０１に戻る。
【００９７】
図１３は、本実施形態に係る交点生成の処理の流れを示すフローチャートである。この処理の流れは、エッジ生成部３２から出力されたエッジ情報が交点生成部３４に取得されたことを契機に開始される。なお、この処理の流れは、図１１のステップＳ１０８及びＳ
１１８の処理の詳細を示すものであり、１つの図形に対する全交点情報の生成に関する処理の流れを示すものである。
【００９８】
ステップＳ３０１では、交点生成部３４が、走査線による走査範囲を設定する。まず、交点生成部３４が、取得したエッジ情報から、エッジが示す線分のＹ座標の範囲として、最小のＹ座標（Ｙｔｏｐ）及び最大のＹ座標（Ｙｂｏｔｔｏｍ）を求める。Ｙｔｏｐ、Ｙｂｏｔｔｏｍは、エッジの始点又は終点のＹ座標である。次に、走査範囲をＹｔｏｐからＹｂｏｔｔｏｍまでに設定する。次に、交点生成部３４は、処理対象の走査線の位置をＹ座標Ｙｔｏｐに設定する。
【００９９】
ステップＳ３０２では、交点生成部３４が、処理対象の走査線の画素の並びと、取得したエッジ情報が示すエッジとの交点に位置する画素（以下単に交点ということがある）の座標を算出する。ステップＳ３０２で座標が算出された全交点は、ステップＳ３０３からＳ３０８までにおいて処理される。
【０１００】
ステップＳ３０３では、交点生成部３４が、ステップＳ３０２で座標が算出された全交点が処理済みであるか否かを判定する。ステップＳ３０３で全交点が処理済みであると判定された場合、処理はステップＳ３０９へ進む。ステップＳ３０３で全交点が処理済みであると判定されなかった場合、処理はステップＳ３０４へ進む。
【０１０１】
ステップＳ３０４では、交点生成部３４が、未処理の交点から次の交点を１つ選択し、処理対象の交点として設定する。ステップＳ３０５からＳ３０８までにおいて、この交点に対応する交点情報が生成され、蓄積される。
【０１０２】
ステップＳ３０５では、交点生成部３４が、処理対象の交点がエッジ情報の示す制限範囲外、または、制限範囲の端点に位置するものであるか否かを判定する。ここで、制限範囲の端点とは、エッジ情報の始点制限情報または終点制限情報の値が「開始」または「終了」となっている点である。ステップＳ３０５で、処理対象の交点がエッジ情報の示す制限範囲外、または、制限範囲の端点に位置するものであると判定された場合、処理はステップＳ３０７ヘ進む。ステップＳ３０５で、処理対象の交点がエッジ情報の示す制限範囲外、または、制限範囲の端点に位置するものであると判定されなかった場合、処理はステップＳ３０６ヘ進む。
【０１０３】
ステップＳ３０６では、交点生成部３４が、処理対象の交点に対し、カバー値採用情報を不採用値に決定する。ステップＳ３０７では、交点生成部３４が、処理対象の交点に対し、カバー値採用情報を採用値に決定する。
【０１０４】
ステップＳ３０８では、交点生成部３４が、ステップＳ３０６またはＳ３０７で決定されたカバー値採用情報を含む、処理対象の交点に対する交点情報を生成し、交点バッファ５１に出力し、蓄積する。その後、処理はステップＳ３０３へ戻る。
【０１０５】
ステップＳ３０９では、交点生成部３４が、全走査線を処理済みか否か判定する。本実施形態において、交点生成部３４は、処理対象の走査線のＹ座標がＹｂｏｔｔｏｍに達したか否かを判定する。ステップＳ３０９で、全走査線を処理済みであると判定された場合、処理は終了する。ステップＳ３０９で、全走査線を処理済みであると判定されなかった場合、処理はステップＳ３１０へ進む。
【０１０６】
ステップＳ３１０では、交点生成部３４が、処理対象の走査線の位置を示すＹ座標に１を加えることで、処理対象の走査線の位置を次の位置へ更新する。その後処理はステップＳ３０２へ戻る。
【０１０７】
図１４は、本実施形態に係るスパン生成の処理の流れを示すフローチャートである。この処理の流れは、少なくとも交点生成部３４において１つの走査線に対応する交点情報が蓄積された後に開始される。なお、この処理の流れは、図１１のステップＳ１０９またはＳ１１９の処理の詳細を示すものであり、１つの図形に対する全スパン情報の生成に関する処理の流れを示すものである。なお、この処理の流れは、描画対象の図形が、描画領域（画面）に納まる図形であることを前提とする。
【０１０８】
ステップＳ４０１では、スパン生成部３７が、処理対象の走査線の位置をＹ座標０に初期設定する。
【０１０９】
ステップＳ４０２では、スパン生成部３７が、処理対象の走査線の位置に対応する全交点情報を読込済みか否か判定する。ステップＳ４０２で処理対象の走査線の位置の交点に関する全交点情報を読込済みであると判定された場合、処理はステップＳ４０７へ進む。ステップＳ４０２で処理対象の走査線の位置の交点に関する全交点情報を読込済みであると判定されなかった場合、処理はステップＳ４０３へ進む。なお、処理対象の走査線の位置に対応する交点情報が交点バッファ５１に蓄積されていない場合は、全交点情報を読込済みであると判定される。
【０１１０】
ステップＳ４０３では、スパン生成部３７が、処理対象の走査線の位置に対応する交点情報から、次の交点情報を１つ読み込む。ここで読み込まれる交点情報は、未読込のものうち、交点情報が含むＸ座標が最も小さいものである。即ち、本実施形態においてスパン生成部３７は、Ｘ座標の昇順に交点情報を読み込む。ここで読み込まれた交点情報の交点は、処理対象の交点として扱われる。
【０１１１】
ステップＳ４０４からＳ４０６では、１つのスパン情報が生成される。まず、ステップＳ４０４では、スパン生成部３７が、読み込んだ交点情報が含む向きの情報に基づいて、処理対象の交点の右側が描画対象であるか否かを判定する。ステップＳ４０４で処理対象の交点の右側が描画対象であると判定された場合、処理はステップＳ４０６へ進む。ステップＳ４０４で処理対象の交点の右側が描画対象であると判定されなかった場合、処理はステップＳ４０５へ進む。
【０１１２】
ステップＳ４０５では、スパン生成部３７が処理対象の交点の左側のスパンを生成する。ここで生成されるスパンは、始点Ｘが（最後にステップＳ４０５でスパンを生成した交点のＸ座標＋１）、終点Ｘが（処理対象の交点のＸ座標−１）、不透明度が１．０であるスパンである。
【０１１３】
ステップＳ４０６では、スパン生成部３７が処理対象の交点のスパン（当該交点の１画素に対応するスパン）を生成する。この処理の詳細は後述する。ステップＳ４０６の後、処理はステップＳ４０２に戻る。
【０１１４】
ステップＳ４０７では、スパン生成部３７が、全走査線について処理済みか否かを判定する。即ち、処理対象の走査線のＹ座標が描画領域のＹ軸方向の大きさに達したか否かを判定する。ステップＳ４０７で、全走査線を処理済みであると判定された場合、処理は終了する。ステップＳ４０７で、全走査線を処理済みであると判定されなった場合、処理はステップＳ４０８へ進む。
【０１１５】
ステップＳ４０８では、スパン生成部３７が、処理対象の走査線の位置を示すＹ座標に１を加えることで、処理対象の走査線の位置を次の位置へ更新する。その後処理はステップＳ４０２へ戻る。
【０１１６】
図１５は、本実施形態に係る交点のスパン生成の処理の流れを示すフローチャートである。この処理の流れは、図１４におけるステップＳ４０６の処理の詳細を示すものである。
【０１１７】
ステップＳ５０１では、スパン生成部３７が、処理対象の交点の交点情報が有するカバー値採用情報が不採用値であるか否かを判定する。ステップＳ５０１で交点情報が有するカバー値採用情報が不採用値であると判定された場合、処理はステップＳ５０２へ進む。ステップＳ５０１で交点情報が有するカバー値採用情報が不採用値であると判定されなかった場合、処理はステップＳ５０３へ進む。
【０１１８】
ステップＳ５０２では、スパン生成部３７が、処理対象の交点に対して不透明のスパン情報を生成する。ここで生成されるスパン情報は、不透明度が１．０であるスパン情報である。つまり、ステップＳ５０２では、処理対象の交点に対して、交点に対するカバー値に関わらず、不透明度が１．０であるスパン情報が生成される。ここで生成されるスパン情報によれば、アンチエイリアシングの処理がされずに描画色で上書きされる画素に関するピクセル情報が、ラスタライザ３９において生成されることになる。また、ここで生成されるスパン情報は、１つの画素（交点）に対応するスパンの情報であり、その始点Ｘ及び終点Ｘは、いずれも処理対象の交点のＸ座標である。
【０１１９】
ステップＳ５０３では、スパン生成部３７が、処理対象の交点に対して不透明度がカバー値のスパン情報を生成する。ここで生成されるスパン情報は、不透明度がカバー値であるスパン情報である。ここで生成されるスパン情報によれば、アンチエイリアシングの処理がされる画素に関するピクセル情報が、ラスタライザ３９において生成されることになる。また、ここで生成されるスパン情報は、１つの画素（交点）に対応するスパンの情報であり、その始点Ｘ及び終点Ｘは、いずれも処理対象の交点のＸ座標である。
【０１２０】
以上述べたように、本実施形態によれば、図形の境界線のうち、描画色の混合を制限する範囲の画素（交点）については、画素をベクタ図形が覆う程度に関わらず、不透明のスパンの情報が生成されるため、図形の境界線の描画について、アンチエイリアシングによる滑らかな色の変化を得つつ、所望の描画色が得られるベクタ図形の描画が可能となる。本実施形態によれば、例えば、ＦＳＡＡのように描画領域全体の解像度を上げて描画し、２次処理としての縮小処理を行うことがないため、ＦＳＡＡ等に比べ、少ない計算資源で効率的に、カラーブリーディングを防止することができる。また、本実施形態によれば、従来の画像処理回路等に対して、比較的小さな変更のみで、カラーブリーディングの対策ができる。また、本実施形態によれば、パイプライン処理を用いた高速な画像処理も可能である。
【０１２１】
≪変形例≫
交点生成部３４は、更に、図形のパスを構成するエッジのうち、走査線方向と平行なエッジ上に位置する画素に関する交点情報を生成してもよい。ここで生成される交点情報のカバー値採用情報は、制限範囲情報の示す範囲に位置する画素に対して、不採用値が設定されたものである。このようにすることで、走査線方向と平行（水平）なエッジに対しても交点情報が生成され、対応するスパンが生成されるため、水平な線で互いに外接する図形の境界線の描画に対しても、アンチエイリアシングによる滑らかな色の変化を得つつ、効率的に所望の描画色を得ることができる。
【０１２２】
また、上述の実施形態の境界線情報分割部２２は、描画ソフトウェア２１の機能として提供されたが、境界線情報分割部２２は、ＧＰＵ１５が備え、本発明は、境界線情報分割部２２を備えたＧＰＵ１５として実施されてもよい。このようにすることで、専用の回路
等による高速な画像処理が可能となる。
【符号の説明】
【０１２３】
１    グラフィックシステム（画像処理装置）
１１  ＣＰＵ
１２  ＲＡＭ
１５  ＧＰＵ（画像処理装置）
２１  描画ソフトウェア
２２  境界線情報分割部
３１  制御部
３２  エッジ生成部
３３  制限範囲情報設定部
３４  交点生成部
３５  境界線取得部
３６  制限範囲取得部
３７  スパン生成部
３８  不透明度算出部
３９  ラスタライザ
４０  ピクセル生成部
５１  交点バッファ
ＳＨ１、ＳＨ２  図形
【図１】
2014178774.tif 000003
【図２】
2014178774.tif 000004
【図３】
2014178774.tif 000005
【図４】
2014178774.tif 000006
【図５】
2014178774.tif 000007
【図６】
2014178774.tif 000008
【図７】
2014178774.tif 000009
【図８】
2014178774.tif 000010
【図９】
2014178774.tif 000011
【図１０】
2014178774.tif 000012
【図１１】
2014178774.tif 000013
【図１２】
2014178774.tif 000014
【図１３】
2014178774.tif 000015
【図１４】
2014178774.tif 000016
【図１５】
2014178774.tif 000017