(57)【特許請求の範囲】
【請求項１】
入力されたアウトラインデータを解析し、前記アウトラインデータにおける直線部分を描
画するための直線セグメントを設定する第１セグメント設定部と、
前記アウトラインデータを解析し、前記アウトラインデータにおける曲線部分を描画する
ための曲線セグメントを設定する第２セグメント設定部と、
前記直線セグメントのステンシルデータを生成する第１ステンシル生成部と、
予め用意された、画像内の複数の領域毎に透明度が割り当てられた基本テクスチャを取得
し、前記曲線セグメントに対して、前記基本テクスチャの一部を前記曲線セグメントの形
状に応じて貼り付けた後、前記曲線セグメントのステンシルデータを生成する第２ステン
シル生成部と、
前記直線セグメントのステンシルデータと、前記曲線セグメントのステンシルデータとか
ら、前記アウトラインデータに対応する文字画像を描画する描画部と
を備える、描画装置。
【請求項２】
前記基本テクスチャは、
全透過の領域から不透過の領域にかけて、前記透明度が連続的に変化する、請求項１記載
の描画装置。
【請求項３】
前記基本テクスチャは、長方形の一辺における一方の頂点Ａを始点に持ち、他方の頂点Ｂ
を終点に持ち、前記一辺の対辺の中点Ｃを制御点に持つベジエ曲線で囲まれた領域の前記
透明度を定めた画像である、請求項２記載の描画装置。
【請求項４】
前記基本テクスチャを格納するテクスチャ格納部をさらに備え、
前記基本テクスチャは、長方形の一辺の中点Ａを始点に持ち、前記一辺に交わる他の一辺
の中点Ｂを終点に持ち、前記長方形の中心点Ｃを制御点に持つベジエ曲線で囲まれた領域
の前記透明度を定めた画像である、請求項２記載の描画装置。
【請求項５】
前記基本テクスチャを格納するテクスチャ格納部をさらに備え、
前記基本テクスチャは、長方形の、（１）一辺上の点Ｄと、前記点Ｄを通り、前記一辺の
垂線上の点Ａとを直線ＤＡ、（２）前記一辺に交わる他の一辺上の点Ｅと、前記点Ｅを通
り、前記他の一辺の垂線上の点Ｂとを結ぶ直線ＥＢ、（３）前記点Ａを始点に持ち、前記
点Ｂを終点に持ち、前記直線ＤＡと前記直線ＥＢとの交点Ｃを制御点に持つベジエ曲線Ａ
Ｂ、を連結した図形における前記透明度を定めた画像である、請求項２記載の描画装置。
【請求項６】
前記基本テクスチャを格納するテクスチャ格納部をさらに備え、
前記基本テクスチャは、長方形の、（１）一辺上の点Ｄと、前記点Ｄを通り、前記一辺の
垂線上の点Ａとを結ぶ直線ＤＡ、（２）前記一辺の対辺上の点Ｅと、点Ｅを通り、前記対
辺の垂線上の点Ｇとを結ぶ直線ＥＧ、（３）前記点Ａを始点に持ち、前記長方形の中心Ｂ
を終点に持ち、前記点Ｂを通る直線ＤＡの垂線と前記直線ＤＡとの交点Ｃを制御点に持つ
ベジエ曲線ＡＢと、（４）前記点Ｇを始点に持ち、前記点Ｂを終点に持ち、前記点Ｂを通
る直線ＥＦの垂線と前記直線ＥＧとの交点Ｆを制御点に持つベジエ曲線ＧＢと、を連結し
た図形における前記透明度を定めた画像である、請求項２記載の描画装置。
【請求項７】
連結する２つの前記曲線セグメントの連結点、又は連結する前記曲線セグメントと前記直
線セグメントとの連結点のうち、少なくともいずれか１つの連結点に接する描画領域の接
点セグメントを生成する第３セグメント設定部と、
前記接点セグメントに対して、前記基本テクスチャの一部を、前記曲線セグメントの形状
に応じて貼り付け、貼り付け後の前記曲線セグメントをビット反転することにより、前記
曲線セグメントのステンシルデータを生成する第３ステンシル生成部と、
をさらに備える、請求項２から６記載の描画装置。
【請求項８】
前記基本テクスチャを格納するテクスチャ格納部を更に備え、
前記第２ステンシル生成部は、前記テクスチャ格納部から前記基本テクスチャを取得し、
前記曲線セグメントのステンシルデータを生成する、請求項１記載の描画装置。
【請求項９】
第１セグメント設定部が、入力されたアウトラインデータを解析し、前記アウトラインデ
ータにおける直線部分を描画するための直線セグメントを設定し、
第２セグメント設定部が、前記アウトラインデータを解析し、前記アウトラインデータに
おける曲線部分を描画するための曲線セグメントを設定し、
第１ステンシル生成部が、前記直線セグメントのステンシルデータを生成し、
第２ステンシル生成部が、予め用意された、画像内の複数の領域毎に透明度が割り当てら
れた基本テクスチャを取得し、前記曲線セグメントに対して、前記基本テクスチャの一部
を前記曲線セグメントの形状に応じて貼り付けた後、前記曲線セグメントのステンシルデ
ータを生成し、
描画部が、前記直線セグメントのステンシルデータと、前記曲線セグメントのステンシル
データとから、前記アウトラインデータに対応する文字画像を描画する、描画方法。
【請求項１０】
コンピュータを、
入力されたアウトラインデータを解析し、前記アウトラインデータにおける直線部分を描
画するための直線セグメントを設定する手段と、
前記アウトラインデータを解析し、前記アウトラインデータにおける曲線部分を描画する
ための曲線セグメントを設定する手段と、
前記直線セグメントのステンシルデータを生成する手段と、
予め用意された、画像内の複数の領域毎に透明度が割り当てられた基本テクスチャを取得
し、前記曲線セグメントに対して、前記基本テクスチャの一部を前記曲線セグメントの形
状に応じて貼り付けた後、前記曲線セグメントのステンシルデータを生成する手段と、
前記直線セグメントのステンシルデータと、前記曲線セグメントのステンシルデータとか
ら、前記アウトラインデータに対応する文字画像を描画する手段と
して機能させる、描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、描画装置、描画方法、及び描画プログラムに関する。
【背景技術】
【０００２】
グラフィックス・プロセッシング・ユニット（ＧＰＵ）を用いて、文字のアウトラインデータから文字画像を描画する描画装置がある。このような描画装置では、アンチエイリアシングを行なってジャギーを目立たなくすることにより、画質の劣化を抑えた文字画像を描画している。
【０００３】
しかしながら、従来の描画装置では、アンチエイリアシングを行なう際に、微分等の高度な計算処理を行なうため、処理コストが高いという課題がある。そのため、少ない処理コストで、かつジャギーの少ない文字画像を描画することができる描画装置が望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１０６７０５号公報
【特許文献２】特開２００７−２４１８７８号公報
【特許文献３】特開２００７−３０４８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
発明が解決しようとする課題は、少ない処理コストで、かつジャギーの少ない文字画像を描画することができる描画装置、描画方法、及び描画プログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の実施形態に係る描画装置は、第１セグメント設定部と、第２セグメント設定部と、第１ステンシル生成部と、第２ステンシル生成部と、描画部とを備える。
【０００７】
第１セグメント設定部は、入力されたアウトラインデータを解析し、前記アウトラインデータにおける直線部分を描画するための直線セグメントを設定する。第２セグメント設定部は、前記アウトラインデータを解析し、前記アウトラインデータにおける曲線部分を描画するための曲線セグメントを設定する。第１ステンシル生成部は、前記直線セグメントのステンシルデータを生成する。第２ステンシル生成部は、画像内の複数の領域毎に透明度が割り当てられた基本テクスチャを取得し、前記曲線セグメントに対して、前記基本テクスチャの一部を前記曲線セグメントの形状に応じて貼り付けた後、前記曲線セグメントのステンシルデータを生成する。描画部は、前記直線セグメントのステンシルデータと、前記曲線セグメントのステンシルデータとから、前記アウトラインデータに対応する文字画像を描画する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る描画装置１を表すブロック図。
【図２】アウトラインデータの一例図。
【図３】第１の実施形態における基本テクスチャの一例図。
【図４】描画装置１の処理を表すフローチャート。
【図５】第１セグメント設定部１２１が生成する多角形を表す一例図。
【図６】直線セグメントの説明図。
【図７】曲線セグメントの説明図。
【図８】ステンシルデータの一例図。
【図９】ステンシルデータの一例図。
【図１０】曲線と曲線との連結部分の描画結果を表す一例図。
【図１１】第２の実施形態における描画装置２を表すブロック図。
【図１２】第２の実施形態における基本テクスチャの一例図。
【図１３】内接セグメントを表す一例図。
【図１４】外接セグメントを表す一例図。
【図１５】第３ステンシル生成部２３１の処理の説明図。
【図１６】第４ステンシル生成部２３２の処理の説明図。
【図１７】描画装置２の処理を表すフローチャート。
【図１８】曲線と直線との連結部分の描画結果を表す一例図。
【図１９】第２の実施形態の変形例１における基本テクスチャの一例図。
【図２０】内接セグメントを表す一例図。
【図２１】外接セグメントを表す一例図。
【図２２】第３ステンシル生成部２３１の処理の説明図。
【図２３】第４ステンシル生成部２３２の処理の説明図。
【図２４】凹曲線と凸曲線との連結部分の描画結果を表す一例図。
【図２５】第２の実施形態の変形例２における基本テクスチャの一例図。
【図２６】第３ステンシル生成部２３１の処理の説明図。
【図２７】第４ステンシル生成部２３２の処理の説明図。
【発明を実施するための形態】
【０００９】
（第１の実施形態）
第１の実施の形態に係る描画装置１は、例えば、電子番組表（ＥＰＧ）を表示するＴＶやレコーダ等に用いられ得る。描画装置１は、ベクトル形式の文字のデータ（アウトラインデータ）から、対応する文字画像を描画するものである。
【００１０】
描画装置１は、取得したアウトラインデータを解析し、対応する文字画像を描画するものである。描画装置１は、取得したアウトラインデータを、少なくとも直線セグメントか曲線セグメントかのいずれか１つを含む領域を設定する。直線セグメントとは、アウトラインデータにおける直線部分を描画するための領域である。曲線セグメントとは、アウトラインデータにおける曲線部分を描画するための領域である。
【００１１】
描画装置１は、予め用意された、曲線部分におけるエッジ近傍のアルファ値α（透明度）を規定したテクスチャ（以下、基本テクスチャ）を曲線セグメントに貼り付けた後、曲線セグメントを描画する。これにより、ジャギーの少ない文字画像を描画することができる。
【００１２】
図１は、描画装置１を表すブロック図である。描画装置１は、取得部１１と、セグメント設定部１２と、ステンシル生成部１３と、描画部１４と、提示部１５と、テキスト格納部５１と、アウトライン格納部５２と、テクスチャ格納部５３と、ステンシル記憶部６１と、画像記憶部６２とを備える。セグメント設定部１２は、第１セグメント設定部１２１と、第２セグメント設定部１２２とを含む。ステンシル生成部１３は、第１ステンシル生成部１３１と、第２ステンシル生成部１３２とを含む。
【００１３】
入力装置５は、例えば、リモコン、マウス、キーボード、タッチパネル等である。入力装置５は、例えば、ＥＰＧを表示させるよう描画装置１に指示を与えるものであってよい。描画装置１は当該指示を受け、動作を開始する。
【００１４】
テキスト格納部５１は、複数の文字（テキストデータ）を格納している。例えば、テキスト格納部５１は、ＥＰＧに含まれる各番組のタイトル、出演者、開始時刻、終了時刻、番組内容等のテキストデータを格納している。なお、テキスト格納部５１は、受信部（不図示）が受信した放送波から番組情報を取得し、テキストデータを定期的に更新してもよい。
【００１５】
アウトライン格納部５２は、各文字の輪郭の形状を表すアウトラインデータを格納している。図２は、「６」のアウトラインデータの一例図である。アウトラインデータは、複数の頂点と、各頂点どうしを結ぶ直線及び曲線（ベジエ曲線）により定められるデータである。図２では、直線の始点と終点、及び曲線の始点と終点を黒丸（●）で表し、曲線の制御点を白丸（○）で表している。制御点とは、これに隣接する２点間を結ぶ直線よりも、曲線が制御点側に突出していることを示している。
【００１６】
アウトライン格納部５２は、少なくとも、テキスト格納部５１に格納されているテキストデータに対応するアウトラインデータを格納していることが望ましい。
【００１７】
テクスチャ格納部５３は、後述する第２ステンシル生成部１３２が用いる基本テクスチャを格納している。図３は、本実施形態における基本テクスチャを表す一例図である。図３に示すように、本実施形態の基本テクスチャは、長方形（例えば、正方形）の一辺の頂点Ａを始点に持ち、頂点Ｂを終点に持ち、当該一辺の対辺の中点Ｃを制御点に持つベジエ曲線で囲まれた領域のアルファ値αの変化を定めた画像である。
【００１８】
図３の基本テクスチャにおいて、黒色の領域は不透過（α＝１）であることを表し、白色の領域は全透過（α＝０）であることを表す。また、図３において縦縞の線で示す、凹領域（三角形ＡＢＣ内の凹状の領域）と凸領域（三角形ＡＢＣ内の凸状の領域）との境界領域（曲線のエッジ近傍）では、アルファ値αが連続的に変化している。
【００１９】
例えば、図３（ａ）の凹型基本テクスチャにおける境界領域では、凸領域（白色）から凹領域（黒色）に向かって、アルファ値αが０から１へと連続的に変化している。図３（ｂ）の凸型基本テクスチャにおける境界領域では、凸領域（黒色）から凹領域（白色）に向かって、アルファ値αが１から０へと連続的に変化している。
【００２０】
取得部１１は、処理対象となる一又は複数のテキストデータをテキスト格納部５１から取得し、当該テキストデータの各文字に対応するアウトラインデータを各々アウトライン格納部５２から取得する。各文字のアウトラインデータは、当該文字のエッジを代表する多数の点の集合であって、直線または曲線の始点および終点の位置データを含む。曲線の場合にはさらに制御点の位置データを含む。
【００２１】
第１セグメント設定部１２１は、アウトラインデータを解析し、直線セグメントを設定する。詳細は後述する。第１セグメント設定部１２１は、直線セグメントを第１ステンシル生成部１３１に供給する。
【００２２】
第２セグメント設定部１２２は、アウトラインデータを解析し、曲線セグメントを設定する。詳細は後述する。第２セグメント設定部１２２は、曲線セグメントを第２ステンシル生成部１３２に供給する。
【００２３】
第１ステンシル生成部１３１は、直線セグメントのステンシルデータを生成する。このとき、第１ステンシル生成部１３１は、直線セグメントの内側にある点（画素）のステンシル値をビット反転することにより、直線セグメントのステンシルデータを生成する。ステンシル値とは、最終的にその点を描画するか否かを示す値である（０か１かのフラグであっても構わない）。第１ステンシル生成部１３１は、生成したステンシルデータをステンシル記憶部６１に書き込む。
【００２４】
第２ステンシル生成部１３２は、曲線セグメントのステンシルデータを生成する。このとき、第２ステンシル生成部１３２は、テクスチャ格納部５３に格納されている基本テクスチャから、始点Ａと制御点Ｃと終点Ｂとで囲まれた三角形領域（図３において、灰色の線で囲まれた領域）を切り出し、曲線セグメントの形状に合わせて貼り付ける。
【００２５】
そして、第２ステンシル生成部１３２は、曲線セグメントの内側にある点（画素）の中で、アルファ値αが０でない領域の点（画素）のステンシル値をビット反転することにより、曲線セグメントのステンシルデータを生成する。第２ステンシル生成部１３２は、生成したステンシルデータをステンシル記憶部６１に書き込む。
【００２６】
なお、ステンシル記憶部６１に書き込まれたステンシル値は、毎フレーム０に初期化される。
【００２７】
描画部１４は、アウトラインデータ全体を覆う四角形ポリゴン（バウンディングボックス）を生成する。そして、この四角形ポリゴンの内側に位置する各画素について、ステンシル記憶部６１に記憶されている同じ位置の画素のステンシル値を調べ、そのステンシル値が０でない場合に限り、画像記憶部６２にＲＧＢ値を書き込む。これにより、文字画像が画像記憶部６２に書き込まれる。
【００２８】
すなわち、画像記憶部６２の各点にはＲＧＢα形式の画素値（カラー値）が保持されている。Ｒは赤成分、Ｇは緑成分、Ｂは青成分表す。αはアルファ値を表す。各画素のＲ、Ｇ、Ｂの値は、毎フレーム、０に初期化される。また、各画素のアルファ値αは、毎フレーム、１に初期化される。
【００２９】
提示部１５は、画像記憶部６２から文字画像を読み出して提示する。提示部１５は、例えば、表示ディスプレイや、プリンタ等であってよい。
【００３０】
取得部１１と、セグメント設定部１２とは、中央演算処理装置（ＣＰＵ）及びＣＰＵが用いるメモリにより実現されてよい。ステンシル生成部１３は、グラフィックス・プロセッシング・ユニット（ＧＰＵ）及びＧＰＵが用いるメモリにより実現されてよい。テキスト格納部５１と、アウトライン格納部５２と、テクスチャ格納部５３と、ステンシル記憶部６１と、画像記憶部６２とは、ＣＰＵやＧＰUが用いるメモリ（ＲＡＭやＶＲＡＭ等）、又は補助記憶装置により実現されてよい。
【００３１】
以上、描画装置１の構成について説明した。
【００３２】
図４は、描画装置１の処理を表すフローチャートである。
【００３３】
ステップＳ１０１にて、取得部１１は、処理対象となる一又は複数のテキストデータをテキスト格納部５１から取得し、当該テキストデータに対応するアウトラインデータをアウトライン格納部５２から取得する（Ｓ１０１）。取得部１１は、取得したアウトラインデータを、第１セグメント設定部１２１と、第２セグメント設定部１２２とに供給する。
【００３４】
ステップＳ１０２にて、第１セグメント設定部１２１は、供給されたアウトラインデータを解析し、直線セグメントを設定する（Ｓ１０２）。第１セグメント設定部１２１は、アウトラインデータの輪郭線において、直線の始点と終点、凹曲線の始点と制御点と終点、及び凸曲線の始点と終点とを結び多角形を生成する。このとき、第１セグメント設定部１２１は、凹曲線に対しては、始点と制御点と終点と、の３点を結ぶ。凸曲線に対しては、始点と終点と、の２点を直接結ぶ。
【００３５】
ここで、凹曲線とは、アウトラインの輪郭の内側から外側に向かって凹状になっている曲線をいう。凸曲線とは、アウトラインの輪郭の内側から外側に向かって凸状になっている曲線をいう。
【００３６】
図２に示す「６」のアウトラインデータには、外周の輪郭線と、内周の輪郭線とが含まれている。この場合、第１セグメント設定部１２１は、図５に示すように、外周の多角形（図５（ａ））と、内周の多角形（図５（ｂ））とを各々生成する。
【００３７】
第１セグメント設定部１２１は、生成した多角形に含まれる各頂点のうち、任意の一点（以下、ピボット）を選択する。そして、ピボットと、各辺の両端の頂点とを結び、複数の三角形（三角形群）を生成する。図５の場合、第１セグメント設定部１２１は、例えば、頂点Ｐ１を外周の多角形でのピボットに選択し、頂点Ｐ２を内周の多角形でのピボットに選択してよい。
【００３８】
図６は、直線セグメントの説明図である。図５（ａ）に示す外周の多角形からは、図６（ａ）に示す三角形群が生成される。図５（ｂ）に示す内周の多角形からは、図６（ｂ）に示す三角形群が生成される。直線セグメントとは、図６（ａ）に示す三角形群と、図６（ｂ）に示す三角形群とを合わせたものである（図６（ｃ））。第１セグメント設定部１２１は、直線セグメントを第１ステンシル生成部１３１に供給する。ステップＳ１０２の手法は、特許文献２記載の手法と同様であってよい。
【００３９】
ステップＳ１０３にて、第２セグメント設定部１２２は、アウトラインデータを解析し、曲線セグメントを設定する（Ｓ１０３）。図７は、曲線セグメントの説明図である。曲線セグメントは、凹曲線輪郭（図７（ａ））と、凸曲線輪郭（図７（ｂ））とを含む。凹曲線輪郭とは、曲線の凹領域が図形の内側にあるものをいい、凸曲線輪郭とは、曲線の凸領域が図形の内側にあるものをいう。
【００４０】
第２セグメント設定部１２２は、凹曲線の始点と終点とを結び、凹曲線輪郭を生成し、凸曲線の始点と制御点と終点とを結び、凸曲線輪郭を生成する。曲線セグメントとは凹曲線輪郭と、凸曲線輪郭とを合わせたものである（図７（ｃ））。第２セグメント設定部１２２は、曲線セグメントを第２ステンシル生成部１３２に供給する。ステップＳ１０３の手法は、特許文献２記載の手法と同様であってよい。
【００４１】
ステップＳ１０４にて、第１ステンシル生成部１３１は、直線セグメントの内側にある点（画素）のステンシル値をビット反転することにより、直線セグメントのステンシルデータを生成し、ステンシル記憶部６１に書き込む（Ｓ１０４）。ステップＳ１０４の手法は、特許文献２記載の手法と同様であってよい。
【００４２】
ステップＳ１０５にて、第２ステンシル生成部１３２は、曲線セグメントのステンシルデータを生成し、ステンシル記憶部６１に書き込む（Ｓ１０５）。
【００４３】
第２ステンシル生成部１３２は、図２に示す基本テクスチャを曲線セグメントに貼り付け、アルファ値が０でない点（画素）だけをステンシル記憶部６１に書き込む。この際、それらの画素のステンシル値をビット反転する。すなわち、凹曲線を表す三角形においては、凹領域に属する画素のステンシル値をビット反転し、凸曲線を表す三角形においては、凸領域に属する画素のステンシル値をビット反転する。
【００４４】
例えば、既に第１ステンシル生成部１３１によって直線セグメントが描画され、ステンシル記憶部６１に、図８に示すようなステンシルデータが記憶されている場合、第２ステンシル生成部１３２が、図７（ｃ）に示す曲線セグメントを描画すると、図９下のようなステンシルデータに更新される。図８及び図９では、ステンシル値が０である点を白色で、ステンシル値が０でない点を黒色で示している。
【００４５】
第２ステンシル生成部１３２は、曲線セグメントの各三角形領域の各点について、基本テクスチャに設定されているアルファ値αと、画像記憶部６２に記憶されているアルファ値αを比較する。そして、基本テクスチャに設定されているアルファ値αのほうが小さければ、その点のアルファ値αを画像記憶部６２に書き込む。
【００４６】
ステップＳ１０６にて、描画部１４は、ステンシル記憶部６１から、ステンシルデータにおける各点（画素）のステンシル値を読み出し、アウトラインデータ全体を覆う四角形ポリゴン（バウンディングボックス）を生成する（Ｓ１０６）。そして、この四角形ポリゴンの内側に位置する各画素について、ステンシル記憶部６１に記憶されている同じ位置の画素のステンシル値を調べ、そのステンシル値が０でない場合に限り、画像記憶部６２にＲＧＢ値を書き込む。
【００４７】
ステップＳ１０７にて、提示部１５は、画像記憶部６２から読み出した文字画像を提示する（Ｓ１０７）。これで、描画装置１の処理が終了する。
【００４８】
以上、描画装置１の処理について説明した。
【００４９】
特許文献１〜３で開示されている技術では、三角形内部の各画素において、ベジエ曲線の陰関数を計算し、その値の符号（正負）に基づいて、各画素が凹領域に属するか、あるいは凸領域に属するかを判定している。
【００５０】
また、式１を用いて、三角形内部の各画素から曲線エッジまでの符号付き距離を計算し、その距離の大きさに応じて線形に変化するように、各画素に対してアルファ値を割り当てて、文字の色（前景色）と背景色を混合することにより、曲線のアンチエイリアシングを実現していた。
【００５１】
本実施形態では、図２に示す基本テクスチャから、灰色の線で示した三角形領域を切り出して、曲線セグメントを構成する各三角形の形状に合わせて貼り付けることにより、少ない処理コストで、かつジャギーの少ない文字画像を描画することができる。
【００５２】
（第２の実施形態）
図１０は、上述の実施形態による曲線と曲線との連結部分の描画結果を表す一例図である。図１０に示すように、第１の実施形態に係る描画装置１による描画結果には、曲線と曲線との連結部（図１０において丸で囲まれた部分）が滑らかに繋がらず、不連続になる場合がある。例えば、描画された文字画像の曲線にドット抜けが生じる場合がある。
【００５３】
これは、上述の曲線セグメントを複数連結させた場合、連結部近傍において半透過の色を表現するための画素が足りないことが原因である。
【００５４】
第２の実施形態では、曲線と曲線との連結部分に内接する三角形及び外接する三角形を新たに生成して連結部近傍の半透過の色を表現するための点（画素）を補う。そのために、当該連結部分におけるアルファ値αの変化を表現したテクスチャを基本テクスチャとする。
【００５５】
図１１は、本実施形態における描画装置２を表すブロック図である。描画装置２は、描画装置１に対して、セグメント設定部２２の処理とステンシル生成部２３の処理とが異なる。セグメント設定部２２は、セグメント設定部１２に対して、第３セグメント設定部２２１と、第４セグメント設定部２２２とをさらに含む。ステンシル生成部２３は、ステンシル生成部１３に対して、第３ステンシル生成部２３１と、第４ステンシル生成部２３２とをさらに備える。
【００５６】
また、テクスチャ格納部５３が記憶している基本テクスチャが、描画装置１の場合と異なる。図１２は、本実施形態における基本テクスチャを表す一例図である。図１２に示すように、本実施形態の基本テクスチャは長方形（例えば、正方形）ＰＱＲＳの一辺ＰＱの中点Ａを始点に持ち、当該一辺ＰＱに交わる他の一辺ＱＲの中点Ｂを終点に持ち、長方形ＰＱＲＳの中心点Ｃを制御点に持つベジエ曲線ＡＢで囲まれた領域のアルファ値αの変化を定めた画像である。テクスチャ格納部５３は、図１２の基本テクスチャを記憶している。
【００５７】
なお、本実施形態における基本テクスチャについても、不透過（α＝１）の領域から全透過（α＝０）の領域の境界では、アルファ値αは連続的に変化している。
【００５８】
第３セグメント設定部２２１は、アウトラインデータを解析し、内接セグメントを設定する。図１３は、内接セグメントを表す一例図である。図１３（ａ）は凹曲線の内接セグメントであり、図１３（ｂ）は凸曲線の内接セグメントである。第３セグメント設定部２２１は、アウトラインデータにおける曲線と曲線との連結部分に内接する三角形群（図１３における三角形Ｅ、Ｆ、Ｇ）を生成する。
【００５９】
第４セグメント設定部２２２は、アウトラインデータを解析し、外接セグメントを設定する。図１４は、外接セグメントを表す一例図である。図１４（ａ）は凹曲線の外接セグメントであり、図１４（ｂ）は凸曲線の内接セグメントである。第４セグメント設定部２２２は、アウトラインデータにおける曲線と曲線との連結部分に外接する三角形群（図１４における三角形Ｈ、Ｉ、Ｊ）を生成する。
【００６０】
第３ステンシル生成部２３１は、生成された内接セグメントに対応するステンシルデータを生成する。図１５は、第３ステンシル生成部２３１の処理の説明図である。図１５（ａ）は凹曲線に対するステンシルデータであり、図１５（ｂ）は凸曲線に対するステンシルデータである。第３ステンシル生成部２３１は、図１２に示す基本テクスチャから三角形領域を切り出し、生成された内接セグメントに貼り付ける。
【００６１】
すなわち、第３ステンシル生成部２３１は、図１２に示す基本テクスチャから三角形領域（三角形Ｋ、Ｌ、Ｍ）を切り出し、生成された内接セグメント（Ｋ、Ｌ、Ｍ）に貼り付けることにより、内接セグメントに対応するステンシルデータを生成する。
【００６２】
第３ステンシル生成部２３１は、基本テクスチャから切り出した領域を貼り付けたのち、アルファ値αが０でない点（画素）をステンシル記憶部６１に書き込む。この際、それらの点（画素）のステンシル値をビット反転する。
【００６３】
第３ステンシル生成部２３１は、内接セグメントの各三角形の各画素について、基本テクスチャによって設定されたアルファ値αと、画像記憶部６２に記憶されているアルファ値αを比較する。そして、基本テクスチャによって設定されたアルファ値αのほうが小さければ、その画素のアルファ値αを画像記憶部６２に書き込む。
【００６４】
第４ステンシル生成部２３２は、生成された外接セグメントに対応するステンシルデータを生成する。図１６は、第４ステンシル生成部２３２の処理の説明図である。図１６（ａ）は凹曲線に対するステンシルデータであり、図１６（ｂ）は凸曲線に対するステンシルデータである。
【００６５】
第４ステンシル生成部２３２は、図１２に示す基本テクスチャから三角形領域を切り出し、生成された外接セグメントに貼り付ける。
【００６６】
すなわち、第４ステンシル生成部２３２は、図１２に示す基本テクスチャから三角形領域（三角形Ｓ、Ｔ、Ｕ）を切り出し、生成された外接セグメント（Ｓ、Ｔ、Ｕ）に貼り付けることにより、外接セグメントに対応するステンシルデータを生成する。
【００６７】
第４ステンシル生成部２３２は、基本テクスチャで設定されたアルファ値αを用いて、文字の色（前景色）と背景色のＲＧＢ値を混合することにより、連結部近傍に対し半透過の色を補う。
【００６８】
以上、描画装置２の構成について説明した。
【００６９】
図１７は、描画装置２の処理を表すフローチャートである。描画装置２の処理は、図４に示す描画装置１の処理に対して、さらに、ステップＳ２０１と、ステップＳ２０２と、ステップＳ２０３と、ステップＳ２０４とを含む。
【００７０】
ステップＳ２０１にて、第３セグメント設定部２２１は、アウトラインデータを解析し、内接セグメントを生成する（Ｓ２０１）。
【００７１】
ステップＳ２０２にて、第４セグメント設定部２２２は、アウトラインデータを解析し、外接セグメントを生成する（Ｓ２０２）。
【００７２】
ステップＳ２０３にて、第３ステンシル生成部２３１は、生成された内接セグメントに対応するステンシルデータを生成する（Ｓ２０３）。
【００７３】
ステップＳ２０４にて、第４ステンシル生成部２３２は、生成された外接セグメントに対応するステンシルデータを生成する（Ｓ２０４）。
【００７４】
本実施形態では、曲線と曲線との連結部分に内接および外接する三角形群を新たに描画し、その三角形群に対して、基本テクスチャに記憶しておいた連結部近傍のアルファ値αを貼り付けることにより、曲線と曲線との連結部が、連続的に滑らかにつながるようになる。
【００７５】
（変形例１）
図１８は、上述の実施形態による曲線と直線との連結部分の描画結果を表す一例図である。図１８に示すように、上述の実施形態による描画結果には、曲線と直線との連結部（図１８において丸で囲まれた部分）が滑らかに繋がらず、不連続になる場合がある。例えば、文字画像の曲線と直線との結合部分にドット抜けが生じる場合がある。
【００７６】
変形例１では、曲線と直線との連結部分に内接する三角形及び外接する三角形を新たに生成し、連結部近傍の半透過の色を表現するための点（画素）を補う。そのため、当該連結部分におけるアルファ値αの変化を表現したテクスチャを基本テクスチャとする。
【００７７】
図１９は、変形例１における基本テクスチャを表す一例図である。図１９に示すように、
変形例１の基本テクスチャは長方形（例えば、正方形）ＰＱＲＳの、（１）一辺ＰＱ上の点Ｄと、点Ｄを通り、辺ＰＱの垂線上の点Ａとを直線ＤＡ、（２）当該一辺ＰＱに交わる辺ＱＲ上の点Ｅと、点Ｅを通り、辺ＱＲの垂線上の点Ｂとを結ぶ直線ＥＢ、（３）点Ａを始点に持ち、点Ｂを終点に持ち、直線ＤＡと直線ＥＢとの交点Ｃを制御点に持つベジエ曲線ＡＢ、を連結した図形におけるアルファ値αの変化を定めた画像である。変形例１のテクスチャ格納部５３は、図１９の基本テクスチャを記憶している。
【００７８】
図２０は、内接セグメントを表す一例図である。図２０（ａ）は凹曲線の内接セグメントであり、図２０（ｂ）は凸曲線の内接セグメントである。第３セグメント設定部２２１は、アウトラインデータを解析し、図１３に示した曲線と曲線との連結部分に内接する三角形群（図１３における三角形Ｅ、Ｆ、Ｇ）に加え、直線と曲線との連結部分に内接する三角形群（図２０における三角形Ｅ’、Ｇ’）を設定する。
【００７９】
図２１は、外接セグメントを表す一例図である。図２１（ａ）は凹曲線の外接セグメントであり、図２０（ｂ）は凸曲線の外接セグメントである。第４セグメント設定部２２２は、アウトラインデータを解析し、図１４に示した曲線と曲線との連結部分に外接する三角形群（図１４における三角形Ｈ、Ｉ、Ｊ）に加え、直線と曲線との連結部分に外接する三角形群（図２１における三角形Ｈ’、Ｉ’）を設定する。
【００８０】
第３ステンシル生成部２３１は、生成された内接セグメントに対応するステンシルデータを生成する。図２２は、第３ステンシル生成部２３１の処理の説明図である。図２２（ａ）は凹曲線に対するステンシルデータであり、図２２（ｂ）は凸曲線に対するステンシルデータである。第３ステンシル生成部２３１は、図１９に示す基本テクスチャから三角形領域を切り出し、生成された内接セグメントに貼り付ける。
【００８１】
すなわち、第３ステンシル生成部２３１は、図１９に示す基本テクスチャから三角形領域（三角形Ｋ、Ｌ、Ｍ、Ｖ、Ｗ、Ｖ’、Ｗ’）を切り出し、生成された内接セグメント（Ｅ、Ｆ、Ｇ、Ｅ’、Ｇ’）に貼り付けることにより、内接セグメントに対応するステンシルデータを生成する。以後は、本実施形態と同様である。
【００８２】
第４ステンシル生成部２３２は、生成された内接セグメントに対応するステンシルデータを生成する。図２３は、第４ステンシル生成部２３２の処理の説明図である。図２３（ａ）は凹曲線に対するステンシルデータであり、図２３（ｂ）は凸曲線に対するステンシルデータである。第４ステンシル生成部２３２は、図１９に示す基本テクスチャから三角形領域を切り出し、生成された外接セグメントに貼り付ける。
【００８３】
すなわち、第４ステンシル生成部２３２は、図１９に示す基本テクスチャから三角形領域（三角形Ｓ、Ｔ、Ｕ、Ｓ’、Ｑ’、Ｕ’、Ｔ’）を切り出し、生成された外接セグメント（Ｈ、Ｉ、Ｊ、Ｈ’、Ｉ’）に貼り付けることにより、外接セグメントに対応するステンシルデータを生成する。以後は、本実施形態と同様である。
【００８４】
変形例１では、曲線と曲線との連結部分に内接する三角形および外接する三角形に加え、直線と曲線の連結部分に内接および外接する三角形群を新たに描画し、その三角形群に対して、基本テクスチャに記憶しておいた連結部近傍のアルファ値αを貼り付けることにより、曲線と直線との連結部が、連続的に滑らかにつながるようになる。
【００８５】
（変形例２）
図２４は、上述の実施形態による凹曲線と凸曲線との連結部分の描画結果を表す一例図である。図２４に示すように、上述の実施形態による描画結果には、凹曲線と凸曲線との連結部（図２４において丸で囲まれた部分）が滑らかに繋がらず、不連続になる場合がある。例えば、文字画像の曲線と直線との結合部分にドット抜けが生じる場合がある。
【００８６】
変形例２では、凹曲線と凸曲線との連結部分近傍におけるアルファ値の変化を表現可能なテクスチャを基本テクスチャとする。
【００８７】
図２５は、変形例２における基本テクスチャを表す一例図である。図２５に示すように、
変形例２の基本テクスチャは長方形（例えば、正方形）ＰＱＲＳの、（１）一辺ＰＱ上の点Ｄと、点Ｄを通り、辺ＰＱの垂線上の点Ａとを結ぶ直線ＤＡ、（２）当該一辺ＰＱの対辺ＲＳ上の点Ｅと、点Ｅを通り、辺ＲＳの垂線上の点Ｇとを結ぶ直線ＥＧ、（３）点Ａを始点に持ち、長方形ＰＱＲＳの中心Ｂを終点に持ち、点Ｂを通る直線ＤＡの垂線と直線ＤＡとの交点Ｃを制御点に持つベジエ曲線ＡＢと、（４）点Ｇを始点に持ち、点Ｂを終点に持ち、点Ｂを通る直線ＥＦの垂線と直線ＥＧとの交点Ｆを制御点に持つベジエ曲線ＧＢと、を連結した図形におけるアルファ値αの変化を定めた画像である。変形例２のテクスチャ格納部５３は、図２５の基本テクスチャを記憶している。なお、変形例２における基本テクスチャは、１つであってよい。
【００８８】
第３ステンシル生成部２３１は、図２５に示した基本テクスチャから、図２６に示すような三角形領域Ｃ１、Ｄ１、Ｆ１、Ｇ１、Ｉ１を切り出して、生成された内接セグメントに貼り付けることにより、内接セグメントに対応するステンシルデータを生成する。以後は、本実施形態と同様である。
【００８９】
第３ステンシル生成部２３２は、図２５に示した基本テクスチャから、図２７に示すような三角形領域Ｂ２、Ｄ２、Ｅ２、Ｈ２、Ｊ２を切り出して、生成された外接セグメントに貼り付けるにより、外接セグメントに対応するステンシルデータを生成する。以後は、本実施形態と同様である。
【００９０】
本変形例では、凹曲線と凸曲線との連結部分におけるアルファ値αが定められた基本テクスチャを、連結部部分に内接する三角形および外接する三角形に貼り付けることにより、凹曲線と凸曲線との連結部分が、滑らかに繋がるようになる。
【００９１】
上述した実施の形態により、少ない処理コストで、かつジャギーの少ない文字画像を描画することができる。
【００９２】
これまで、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００９３】
なお、上述した実施の形態における記憶媒体としては、磁気ディスク、フレキシブルディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記憶でき、かつコンピュータまたは組み込みシステムが読みとり可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【００９４】
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーションシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が上述した実施の形態を実現するための各処理の一部を実行してもよい。
【符号の説明】
【００９５】
１、２  描画装置
５  入力装置
１１  取得部
１２、２２  セグメント設定部
１３、２３  ステンシル生成部
１４  描画部
１５  提示部
５１  テキスト格納部
５２  アウトライン格納部
５３  テクスチャ格納部
６１  ステンシル記憶部
６２  画像記憶部
１２１  第１セグメント設定部
１２２  第２セグメント設定部
１３１  第１ステンシル生成部
１３２  第２ステンシル生成部
２２１  第３セグメント設定部
２２２  第４セグメント設定部
２３１  第３ステンシル生成部
２３２  第４ステンシル生成部
【図１】
0005653277.tif 000002
【図２】
0005653277.tif 000003
【図４】
0005653277.tif 000004
【図５】
0005653277.tif 000005
【図７】
0005653277.tif 000006
【図８】
0005653277.tif 000007
【図９】
0005653277.tif 000008
【図１０】
0005653277.tif 000009
【図１１】
0005653277.tif 000010
【図１３】
0005653277.tif 000011
【図１４】
0005653277.tif 000012
【図１５】
0005653277.tif 000013
【図１６】
0005653277.tif 000014
【図１７】
0005653277.tif 000015
【図１８】
0005653277.tif 000016
【図２０】
0005653277.tif 000017
【図２１】
0005653277.tif 000018
【図２２】
0005653277.tif 000019
【図２３】
0005653277.tif 000020
【図２４】
0005653277.tif 000021
【図２６】
0005653277.tif 000022
【図２７】
0005653277.tif 000023
【図３】
0005653277.tif 000024
【図６】
0005653277.tif 000025
【図１２】
0005653277.tif 000026
【図１９】
0005653277.tif 000027
【図２５】
0005653277.tif 000028