(57)【要約】【課題】  ベジエ曲線で表されるデータを効率的に処理できるようにすること。【解決手段】  処理単位となるベジエ曲線をフォントデータデコーダ８で特定し、特定されたベジエ曲線の両端及び制御点の座標値に基づき、その特定されたベジエ曲線上にある任意の点と当該ベジエ曲線を近似的に表現するガンマ曲線上において当該点に対応する点との距離の２乗の累積加算値が最小となるように点列生成モジュール１１でガンマ値を設定するようにした。【選択図】    図１
2005216145.tif 000002
【特許請求の範囲】
【請求項１】
ベジエ曲線で表されるデータを処理する曲線データ処理装置であって、所定のベジエ曲線をガンマ曲線によって近似的に表現する近似手段を備えたことを特徴とする曲線データ処理装置。
【請求項２】
前記近似手段は、処理単位となるベジエ曲線を特定する特定手段と、特定されたベジエ曲線の両端点及び制御点の座標値に基づいてガンマ値を設定するガンマ値設定手段とを備えたことを特徴とする請求項１に記載の曲線データ処理装置。
【請求項３】
前記ガンマ値設定手段は、特定されたベジエ曲線の両端点及び制御点の座標値に基づいて、特定されたベジエ曲線上にある任意の点と当該ベジエ曲線を近似的に表現するガンマ曲線上において当該点に対応する点との距離の２乗の累積加算値が最小となるようにガンマ値を設定することを特徴とする請求項２に記載の曲線データ処理装置。
【請求項４】
前記ガンマ値設定手段は、特定されたベジエ曲線「Ｂ」が、
Ｐ（ｔ）＝（１−ｔ）２Ａ０＋２（１−ｔ）ｔＡ１＋ｔ２Ａ２、（０≦ｔ≦１）
と表現される点「Ｐ」の集合で表現されるときに、
特定されたベジエ曲線「Ｂ」の両端点「Ａ０」、「Ａ２」及び制御点「Ａ１」の座標値を、
Ａ０＝（０、０）、Ａ２＝（１、１）、Ａ１＝（Ｘ１、Ｙ１）
と表現し、
γ＝β／α
３α４＋２（８Ｘ１＋５）α３＋４（１４Ｙ１−１）α２＋４（１１Ｘ１−１０）α＋２（５Ｘ１−１６）＝０
３β４＋２（８Ｙ１＋５）β３＋４（１４Ｙ１−１）β２＋４（１１Ｙ１−１０）β＋２（５Ｙ１−１６）＝０
α，β≧０
を満たすガンマ値「γ」を設定することを特徴とする請求項３に記載の曲線データ処理装置。
【請求項５】
所定のベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に応じた変数「α」及び「β」を格納する第１格納手段を備え、前記ガンマ値設定手段は、特定されたベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に基づき、前記第１格納手段を参照してガンマ値「γ」を設定することを特徴とする請求項４に記載の曲線データ処理装置。
【請求項６】
所定のベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に応じたガンマ値「γ」を格納する第２格納手段を備え、前記ガンマ値設定手段は、特定されたベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に基づき、前記第２格納手段を参照してガンマ値「γ」を設定することを特徴とする請求項４に記載の曲線データ処理装置。
【請求項７】
前記特定手段は、所定のベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）がＸ１＋Ｙ１＞１の範囲にあるときには、前記「Ｘ１」を「１」から減じた減算結果を新たな「Ｘ１」とし、且つ、前記「Ｙ１」を「１」から減じた減算結果を新たな「Ｙ１」とし、それら新たな「Ｘ１」及び「Ｙ１」を制御点「Ａ１」とするベジエ曲線を前記処理対象となるベジエ曲線と特定することを特徴とする請求項４から６のいずれか１項に記載の曲線データ処理装置。
【請求項８】
前記特定手段は、特定されたベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）が、Ｘ１＞２／３且つＹ１＜１／３、または、Ｘ１＜１／３且つＹ１＞２／３の範囲にあるときには、媒介変数ｔが「０．５」となる点でベジエ曲線「Ｂ」を分割し、その分割されたベジエ曲線を前記処理単位となるベジエ曲線と特定することを特徴とする請求項４から７のいずれか１項に記載の曲線データ処理装置。
【請求項９】
特手されたベジエ曲線がアウトラインフォントの輪郭線を表すときには、その輪郭線が通る画素の境界線と当該輪郭線との距離に基づいて当該画素の濃度値を設定可能な濃度値設定手段を備えたことを特徴とする請求項１から８のいずれか１項に記載の曲線データ処理装置。
【請求項１０】
アウトラインフォントの輪郭線にアンチエイリアス処理を行うアンチエイリアス処理装置であって、その輪郭線が通る画素の境界線と当該輪郭線との距離に基づいて当該画素の濃度値を設定可能な濃度値設定手段を備えたことを特徴とするアンチエイリアス処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アウトラインフォントの輪郭線等に用いられるベジエ曲線で表されるデータを処理する曲線データ処理装置及びアンチエイリアス処理装置に関する。
【背景技術】
【０００２】
従来、例えば、ワードプロセシングシステムやＤＴＰ(Desktop Publishing)システムには、アウトラインフォントを用いて種々の文字を表現するものがある。このようなアウトラインフォントの輪郭線の算出には、一般に、下記（１）式で示される点「Ｐ」の集合として表現されるベジエ曲線「Ｂ」が用いられる。
【０００３】
Ｐ（ｔ）＝（１−ｔ）２Ａ０＋２（１−ｔ）ｔＡ１＋ｔ２Ａ２、（０≦ｔ≦１）
また、このようなベジエ曲線「Ｂ」をディスプレイやプリンタといった出力装置に出力させるときには、一般に、任意の媒介変数ｔを設定し、その設定された媒介変数ｔにおけるベジエ曲線上の点の座標値を算出することで、ベジエ曲線をラスタ展開するようになっている（例えば、特許文献１参照。）。
【特許文献１】特開平０５−３１４２６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のベジエ曲線上の点の座標値の算出方法にあっては、その算出に媒介変数ｔを用いるようになっているため、例えば、指定されたＹ座標値をとる点のＸ座標値を算出するときには、その点の座標値が得られるまで媒介変数ｔをいろいろと変化させて計算を繰り返さなければならず、演算負荷が著しく大きくなってしまう恐れがあった。つまり、処理効率が低くなってしまうという問題があった。
【０００５】
そこで、本発明は、上記従来技術の未解決の課題を解決することを目的とするものであって、ベジエ曲線で表されるデータを効率的に処理できる曲線データ処理装置及びアンチエイリアス処理装置を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、第１の発明の曲線データ処理装置は、ベジエ曲線で表されるデータを処理する曲線データ処理装置であって、所定のベジエ曲線をガンマ曲線によって近似的に表現する近似手段を備えたことを特徴とする。
【０００７】
また、第２の発明である曲線データ処理装置では、前記近似手段は、処理単位となるベジエ曲線を特定する特定手段と、特定されたベジエ曲線の両端点及び制御点の座標値に基づいてガンマ値を設定するガンマ値設定手段とを備えたことを特徴とする。
【０００８】
さらに、第３の発明である曲線データ処理装置では、前記ガンマ値設定手段は、特定されたベジエ曲線の両端点及び制御点の座標値に基づいて、特定されたベジエ曲線上にある任意の点と当該ベジエ曲線を近似的に表現するガンマ曲線上において当該点に対応する点との距離の２乗の累積加算値が最小となるようにガンマ値を設定することを特徴とする。
【０００９】
また、第４の発明である曲線データ処理装置では、前記ガンマ値設定手段は、特定されたベジエ曲線「Ｂ」が、Ｐ（ｔ）＝（Ｘ、Ｙ）＝（１−ｔ）２Ａ０＋２（１−ｔ）ｔＡ１＋ｔ２Ａ２、（０≦ｔ≦１）と表現される点「Ｐ」の集合で表現されるときに、特定されたベジエ曲線「Ｂ」の両端点「Ａ０」、「Ａ２」及び制御点「Ａ１」の座標値を、Ａ０＝（０、０）、Ａ２＝（１、１）、Ａ１＝（Ｘ１、Ｙ１）と表現し、γ＝β／α、３α４＋２（８Ｘ１＋５）α３＋４（１４Ｙ１−１）α２＋４（１１Ｘ１−１０）α＋２（５Ｘ１−１６）＝０、３β４＋２（８Ｙ１＋５）β３＋４（１４Ｙ１−１）β２＋４（１１Ｙ１−１０）β＋２（５Ｙ１−１６）＝０、α，β≧０を満たすガンマ値「γ」を設定することを特徴とする。
【００１０】
これら第１〜第４の発明によれば、指定されたＹ座標値からＸ座標値を直接に算出することや、指定されたＸ座標値からＹ座標値を直接に算出することができ、ベジエ曲線上の点の算出に媒介変数を用いる方法に比べ、指定されたＹ座標値やＸ座標値をとる点の座標値を容易に算出することができ、ベジエ曲線で表されるデータを効率的に処理できる。
【００１１】
また、第５の発明である曲線データ処理装置では、所定のベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に応じた変数「α」及び「β」を格納する第１格納手段を備え、前記ガンマ値設定手段は、特定されたベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に基づき、前記第１格納手段を参照してガンマ値「γ」を設定することを特徴とする。
【００１２】
この第５の発明によれば、４次方程式を解いて変数「α」及び「β」を算出する方法に比べ、ガンマ値「γ」の算出に必要な演算量を少なくすることができる。
【００１３】
さらに、第６の発明である曲線データ処理装置では、所定のベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に応じたガンマ値「γ」を格納する第２格納手段を備え、前記ガンマ値設定手段は、特定されたベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）に基づき、前記第２格納手段を参照してガンマ値「γ」を設定することを特徴とする。
【００１４】
この第６の発明によれば、変数「β」を変数「α」で除してガンマ値「γ」を算出する方法に比べ、ガンマ値「γ」の算出に必要な演算量を少なくすることができる。
【００１５】
また、第７の発明である曲線データ処理装置では、前記特定手段は、所定のベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）がＸ１＋Ｙ１＞１の範囲にあるときには、前記「Ｘ１」を「１」から減じた減算結果を新たな「Ｘ１」とし、且つ、前記「Ｙ１」を「１」から減じた減算結果を新たな「Ｙ１」とし、それら新たな「Ｘ１」及び「Ｙ１」を制御点「Ａ１」とするベジエ曲線を前記処理対象となるベジエ曲線と特定することを特徴とする。
【００１６】
この第７の発明によれば、ベジエ曲線「Ｂ」の制御点Ａ１の座標値（Ｘ１、Ｙ１）を近似精度の低いＸ１＋Ｙ１＞１の範囲から外すことができ、ベジエ曲線をガンマ曲線に近似させるときの近似精度を向上することができる。
【００１７】
さらに、第８の発明である曲線データ処理装置では、前記特定手段は、特定されたベジエ曲線「Ｂ」の制御点「Ａ１」の座標値（Ｘ１、Ｙ１）が、Ｘ１＞２／３且つＹ１＜１／３、または、Ｘ１＜１／３且つＹ１＞２／３の範囲にあるときには、媒介変数ｔが「０．５」となる点でベジエ曲線「Ｂ」を分割し、その分割されたベジエ曲線を前記処理単位となるベジエ曲線と特定することを特徴とする。
【００１８】
この第８の発明によれば、ベジエ曲線「Ｂ」の制御点Ａ１の座標値（Ｘ１、Ｙ１）を変更し、近似精度の低いＸ１＞２／３且つＹ１＜１／３、または、Ｘ１＜１／３且つＹ１＞２／３の範囲から外すことができ、ベジエ曲線をガンマ曲線に近似させるときの近似精度を向上することができる。
【００１９】
また、第９の発明である曲線データ処理装置では、特手されたベジエ曲線がアウトラインフォントの輪郭線を表すときには、その輪郭線が通る画素の境界線と当該輪郭線との距離に基づいて当該画素の濃度値を設定可能な濃度値設定手段を備えたことを特徴とする。
【００２０】
一方、第１０の発明であるアンチエイリアス処理装置は、アウトラインフォントの輪郭線にアンチエイリアス処理を行うアンチエイリアス処理装置であって、その輪郭線が通る画素の境界線と当該輪郭線との距離に基づいて当該画素の濃度値を設定可能な濃度値設定手段を備えたことを特徴とする。
【００２１】
これら第９及び１０の発明によれば、濃度値をオーバーサンプリングによって算出する方法に比べ、輪郭線を描画する画素の濃度値を容易に算出することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明に係る情報表示装置の実施形態を図面に基づいて説明する。
【００２３】
図１は、本発明の第１実施形態の内部構成を示すブロック図である。この図１に示すように、表示装置１は、ＣＰＵ（Central Processing Unit ）２と、レイアウタ３と、フォント描画コントローラ４と、ＶＲＡＭ(Video Random Access memory)５が接続された表示コントローラ６と、表示体７とを含んで構成されている。
【００２４】
これらのうちＣＰＵ２は、図示しない記憶装置に格納された基本制御プログラムやアプリケーションプログラム等の各種プログラムを読み込み、それら各種プログラムを実行して表示装置１が備える各部の制御を実行する。また、ＣＰＵ２は、文字列やその文字列の表示位置等のパラメータを含む第１描画命令をレイアウタ３に出力する。
【００２５】
また、レイアウタ３は、ＣＰＵ２から出力される第１描画命令に含まれる文字列を文字単位に分割し、その分割された文字単位それぞれに表示位置や文字間隔を設定し、その表示位置や文字間隔が設定された文字単位を含む第２描画命令をフォント描画コントローラ４に出力する。
【００２６】
さらに、フォント描画コントローラ４は、第１スタック領域９及び第２スタック領域１０が接続されたフォントデータデコーダ８と、第２スタック領域１０、第３スタック領域１４、ガンマ値算出モジュール１２及びガンマ関数算出モジュール１３が接続された点列生成モジュール１１と、第３スタック領域１４が接続された描画モジュール１５とを含んで構成されている。
【００２７】
これらのうちフォントデータデコーダ８は、レイアウタ３から第２描画命令が出力されると、後述する準備処理を実行し、その第２描画命令に含まれる文字単位に対応するフォントデータ（文字の外形（ベジエ曲線、直線）や位置、外形の方向（外形がベジエ曲線で表される場合には、そのベジエ曲線の始点Ａ０から終点Ａ２への方向）等を含むデータ）から直線及びベジエ曲線を抽出し、その抽出された直線及びベジエ曲線に関するデータを第１スタック領域９に順次格納させる。そして、第１スタック領域９からベジエ曲線に関するデータ（始点Ａ０、終点Ａ２、制御点Ａ１）だけを取り出し、その取り出されたデータに基づいてベジエ曲線がガンマ曲線で近似可能な範囲（後述）となるようにベジエ曲線を必要に応じて分割し、その分割されたベジエ曲線に関するデータを第２スタック領域１０に格納させる。なお、フォントデータは、フォント描画コントローラ４内に保持させるようにしてもよいし、外部からデータを与えるようにしてもよい。
【００２８】
また、第１スタック領域９は、フォントデータデコーダ８からの格納要求に従って、直線及びベジエ曲線に関するデータを格納するとともに、フォントデータデコーダ８からの読み出し要求に従って、直線及びベジエ曲線に関するデータを出力する。
【００２９】
さらに、第２スタック領域１０は、フォントデータデコーダ８からの格納要求に従って、ベジエ曲線に関するデータを格納するとともに、点列生成モジュール１１からの読み出し要求に従って、ベジエ曲線に関するデータを出力する。
【００３０】
また、点列生成モジュール１１は、第２スタック領域１０にベジエ曲線に関するデータが全て格納されると、後述する点列生成処理を実行し、第２スタック領域１０からベジエ曲線に関するデータを取り出し、その取り出されたデータに基づいて制御点Ａ１の座標値（Ｘ１、Ｙ１）を算出し、その算出された制御点Ａ１の座標値（Ｘ１、Ｙ１）のデータをガンマ値算出モジュール１２に出力する。また、ガンマ値算出モジュール１２からガンマ値γのデータが出力されると、その出力されたガンマ値γのデータをガンマ関数算出モジュール１３に出力する。さらに、ガンマ関数算出モジュール１３から前記ガンマ値γで表されるガンマ曲線上にある点列の座標値（Ｘｉ、Ｙｉ）が出力されると、その出力された点列の座標値を第３スタック領域１４に格納させる。
【００３１】
また、ガンマ値算出モジュール１２は、点列生成モジュール１１から出力される制御点Ａ１の座標値（Ｘ１、Ｙ１）のデータに基づき、ガンマ値算出用テーブルを参照して、ベジエ曲線を近似的に表現するガンマ曲線のガンマ値γを下記（１）に従って算出し、その算出結果を点列生成モジュール１１に出力する。ガンマ値算出用テーブルは、図２に示すように、制御点Ａ１の座標値（Ｘ１，Ｙ１）に対応する変数α，βの値が格納されているテーブルである。このように、本実施形態の表示装置１にあっては、ガンマ値算出用テーブルに制御点Ａ１の座標値（Ｘ１，Ｙ１）に対応する変数α，βの値を格納するようにしたため、後述する（３）式の４次方程式を解いて変数「α」及び「β」を算出する方法に比べ、ガンマ値「γ」の算出に必要な演算量を少なくすることができる。
【００３２】
γ＝β／α  ………（１）
なお、ベジエ曲線を近似的に表現するガンマ曲線としては、ベジエ曲線上にある任意の点と当該点に対応するガンマ曲線上の点との間の距離の２乗の累積加算値が最も小さいガンマ曲線、つまり最小自乗法によって算出されたガンマ曲線を挙げることができる。具体的には、ベジエ曲線が下記（２）式で表現される点「Ｐ」の集合として表現されるときに、ガンマ値「γ」が下記（３）式で表されるガンマ曲線とすればよい。
【００３３】
Ｐ（ｔ）＝（１−ｔ）２Ａ０＋２（１−ｔ）ｔＡ１＋ｔ２Ａ２、（０≦ｔ≦１）…（２）
γ＝β／α  ………（３）
３α４＋２（８Ｘ１’＋５）α３＋４（１４Ｙ１’−１）α２＋４（１１Ｘ１’−１０）α＋２（５Ｘ１’−１６）＝０
３β４＋２（８Ｙ１’＋５）β３＋４（１４Ｙ１’−１）β２＋４（１１Ｙ１’−１０）β＋２（５Ｙ１’−１６）＝０
（α，β≧０）
但し、始点Ａ０の座標値の座標値を（０、０）とし且つ終点Ａ２の座標値を（１、１）としたときの制御点Ａ１の座標値を（Ｘ１’、Ｙ１’）とする。
【００３４】
また、ガンマ値算出用テーブルとして、所定のベジエ曲線の制御点Ａ１の座標値（Ｘ１，Ｙ１）に対応する変数α，βの値を格納する例を示したが、これに限られるものではなく、例えば、図３に示すように、変数１／α，βを格納するようにしてもよい。そのようにすれば、変数「β」を変数「α」で除してガンマ値「γ」を算出する方法に比べ、ガンマ値「γ」の算出に必要な演算量を少なくすることができる。また、図４に示すように、所定のベジエ曲線上の制御点Ａ１の座標値（Ｘ１、Ｙ２）に対応するガンマ値γを格納するようにしてもよい。
【００３５】
さらに、ガンマ関数算出モジュール１３は、点列生成モジュール１１から出力されるガンマ値「γ」のデータに基づき、ガンマ関数算出用テーブルを参照して、そのガンマ値「γ」で表されるガンマ曲線上でＹ方向の単位座標値刻みに点列の座標値（Ｘｉ、Ｙｉ）を算出し、その算出結果を点列生成モジュール１１に出力する。ガンマ関数算出用テーブルは、図５に示すように、所定のガンマ値γで表されるガンマ曲線において所定のＹ座標値に対応するＸ座標値が格納されているテーブルである。
【００３６】
さらに、第３スタック領域１４は、点列生成モジュール１１からの格納要求に従って、ベジエ曲線等の点列のデータを格納するとともに、描画モジュール１５からの読み出し要求に従って、点列のデータを出力する。
【００３７】
さらに、描画モジュール１５は、第３スタック領域１４にベジエ曲線等の点列のデータが全て格納されると、後述する点間塗りつぶし処理を実行し、第３スタック領域１４から点列のデータを取り出し、その取り出した点列のうち互いに同じ高さにある点間を塗りつぶす画像データを表示コントローラ６に出力する。
【００３８】
また、表示コントローラ６は、描画モジュール１５から出力される画像データをＶＲＡＭ５に格納するとともに、ＶＲＡＭ５に格納されている画像データに基づいて表示体７に画像を表示させる。
【００３９】
次に、フォントデータデコーダ８で実行される準備処理について説明する。この準備処理は、レイアウタ３から第２描画命令が出力されると実行される処理であって、図６に示すように、まずそのステップＳ１０１で、レイアウタ３から出力される第２描画命令に含まれる文字単位に対応するフォントデータを図示しない記憶装置から読み出す。そして、その読み出されたフォントデータに含まれるベジエ曲線が全て抽出されたか否かを判定し、全て抽出された場合には（Ｙｅｓ）ステップＳ１０４に移行し、抽出されていないベジエ曲線がある場合には（Ｎｏ）ステップＳ１０２に移行する。
【００４０】
前記ステップＳ１０２では、前記ステップＳ１０１で読み出されたフォントデータからベジエ曲線を１つ抽出する。
【００４１】
次にステップＳ１０３に移行して、前記ステップＳ１０２で抽出されたベジエ曲線に関するデータを第１スタック領域９に格納させてから、前記ステップＳ１０１に移行する。
【００４２】
一方、前記ステップＳ１０４では、第１スタック領域９が空であるか否かを判定する。具体的には、第１スタック領域９にデータが格納されていない状態であるか否かを判定し、データが格納されている状態である場合には（Ｎｏ）ステップＳ１０５に移行し、データが格納されていない状態である場合には（Ｙｅｓ）この演算処理をそのまま終了する。
【００４３】
前記ステップＳ１０５では、第１スタック領域９からベジエ曲線に関するデータを取り出す。つまり、第１スタック領域９に格納されているベジエ曲線に関するデータのうち最も遅いタイミングで格納されたデータを読み出すと共に、その読み出されたデータを第１スタック領域９に破棄させる。
【００４４】
次にステップＳ１０６に移行して、前記ステップＳ１０５で取り出されたベジエ曲線に関するデータに含まれる制御点Ａ１が当該ベジエ曲線をガンマ曲線で精度良く近似的に表現できる範囲にあるか否かを判定する。具体的には、まずベジエ曲線の始点Ａ０の座標値を（０、０）とし且つ終点Ａ1の座標値を（１、１）としたときの制御点Ａ１の座標値（Ｘ１’、Ｙ１’）がＸ１’＋Ｙ１’＞１の範囲にある場合には、（１−Ｘ１’、１−Ｙ１’）を当該制御点Ａ１の座標値（Ｘ１’、Ｙ１’）とする。次に、制御点Ａ１の座標値（Ｘ１’、Ｙ１’）が２／３＜Ｘ１’、Ｙ１’＜１／３の範囲、又はＸ１’＜１／３、２／３＜Ｙ１’の範囲にあるか否かを判定し、その範囲にある場合には（Ｙｅｓ）ステップＳ１０７に移行し、その範囲にない場合には（Ｎｏ）ステップＳ１０８に移行する。
【００４５】
このように、本実施形態の表示装置１によれば、制御点Ａ１の座標値（Ｘ１’、Ｙ１’）が近似精度の低いＸ１’＋Ｙ１’＞１の範囲にある場合には、（１−Ｘ１’、１−Ｙ１’）を当該制御点Ａ１の座標値（Ｘ１’、Ｙ１’）とするようにしたため、ベジエ曲線の制御点の座標値（Ｘ１’、Ｙ１’）をＸ１’＋Ｙ１’＞１の範囲から外すことができ、ベジエ曲線をガンマ曲線に近似させるときの近似精度を向上できる。
【００４６】
前記ステップＳ１０７では、前記ステップＳ１０５で取り出されたベジエ曲線に関するデータを第２スタック領域１０に格納させてから、前記ステップＳ１０４に移行する。
【００４７】
一方、前記ステップＳ１０８では、前記ステップＳ１０５でデータが取り出されたベジエ曲線を媒介変数ｔが「０．５」である点で分割し、新たに２つのベジエ曲線に関するデータを生成する。なお、新たなベジエ曲線の制御点は、新たなベジエ曲線の始点Ａ０における接線と終点Ａ1における接線との交点で表される。
【００４８】
このように、本実施形態の表示装置１によれば、制御点Ａ１の座標値（Ｘ１’、Ｙ１’）が近似精度の低いＸ１＞２／３且つＹ１＜１／３、または、Ｘ１＜１／３且つＹ１＞２／３の範囲にある場合には、媒介変数ｔが「０．５」となる点でベジエ曲線を分割するようにしたため、ベジエ曲線の制御点の座標値（Ｘ１’、Ｙ１’）を近似精度の低い範囲から外すことができ、ベジエ曲線をガンマ曲線に近似させるときの近似精度を向上できる。
【００４９】
次にステップＳ１０９に移行して、前記ステップＳ１０８で生成された２つのベジエ曲線に関するデータを第１スタック領域１に格納させてから、前記ステップＳ１０４に移行する。
【００５０】
次に、点列生成モジュール１１で実行される点列生成処理について説明する。この点列生成処理は、第２スタック領域１０にベジエ曲線に関するデータが全て格納されると実行される処理であって、図７に示すように、まずそのステップＳ２０１では、第２スタック領域１０が空であるか否かを判定する。具体的には、第２スタック領域１０にデータが格納されていない状態であるか否かを判定し、データが格納されている状態である場合には（Ｎｏ）ステップＳ２０２に移行し、データが格納されていない状態である場合には（Ｙｅｓ）この演算処理をそのまま終了する。
【００５１】
前記ステップＳ２０２では、第２スタック領域１０からベジエ曲線に関するデータを取り出す。つまり、第２スタック領域１０に格納されているベジエ曲線に関するデータのうち最も遅いタイミングで格納されたデータを読み出すと共に、その読み出されたデータを第２スタック領域１０に破棄させる。
【００５２】
次にステップＳ２０３に移行して、前記ステップＳ２０２でデータが取り出されたベジエ曲線の始点Ａ０の座標値を（０、０）とし且つ終点Ａ1の座標値を（１、１）としたときの制御点Ａ１の座標値（Ｘ１’、Ｙ１’）を算出する。
【００５３】
次にステップＳ２０４では、前記ステップＳ２０３で算出された制御点Ａ１の座標値（Ｘ１’、Ｙ１’）のデータに基づいて、当該制御点Ａ１を含むベジエ曲線を近似的に表現可能なガンマ曲線のガンマ値γをガンマ値算出モジュール１２に算出させる。
【００５４】
次にステップＳ２０５に移行して、前記ステップＳ２０４で算出されたガンマ値γで表されるガンマ曲線上でＹ方向の単位座標値刻みに点列の座標値（Ｘｉ、Ｙｉ）をガンマ関数算出モジュール１３に算出させる。
【００５５】
次にステップＳ２０６に移行して、前記ステップＳ２０５で算出された点列の座標値（Ｘｉ、Ｙｉ）のデータ及び当該点列があるベジエ曲線の方向（上方向、下方向）を併せて第３スタック領域１４に格納させてから、前記ステップＳ２０１に移行する。なお、ベジエ曲線の方向とは、ベジエ曲線の始点Ａ０から終点Ａ２に向かう方向である。
【００５６】
次に、描画モジュール１５で実行される点間塗りつぶし処理について説明する。この点間塗りつぶし処理は、第３スタック領域１４にベジエ曲線等の点列のデータが全て格納されると実行される処理であって、図８に示すように、まずそのステップＳ３０１では、第３スタック領域１４に格納されている点列のＹ座標値が昇順となるように当該点列の座標値のデータを整列させる。その際、Ｙ座標値が同じ値となる点列があるときには、Ｘ座標値が昇順となるように当該点列の座標値のデータを整列させる。
【００５７】
次にステップＳ３０２に移行して、第３スタック領域１４が空であるか否かを判定する。具体的には、第３スタック領域１４にデータが格納されていない状態であるか否かを判定し、データが格納されている状態である場合には（Ｎｏ）ステップＳ３０３に移行し、データが格納されていない状態である場合には（Ｙｅｓ）この演算処理をそのまま終了する。
【００５８】
前記ステップＳ３０３で、第３スタック領域１４から点の座標値のデータと当該点があるベジエ曲線の方向とを併せて取り出す。つまり、第３スタック領域１４に格納されているデータのうち最もＹ座標値が大きい点の座標値と当該点があるベジエ曲線の方向とを併せて読み出すと共に、その読み出されたデータを第３スタック領域１４に破棄させる。
【００５９】
次にステップＳ３０４に移行して、前記ステップＳ３０３で取り出された点の座標値のＹ座標値がこのステップが前回実行されたときに取り出された点の座標値のＹ座標値と等しいか否かを判定し、等しい場合には（Ｙｅｓ）ステップＳ３０６に移行し、そうでない場合には（Ｎｏ）ステップＳ３０５に移行する。
【００６０】
前記ステップＳ３０５では、ワインディングナンバー(winding  number)Ｚを「０」に初期化してから、前記ステップＳ３０６に移行する。なお、ワインディングナンバーについては、インターネット上のhttp://developer.apple.com/fonts/TTRefMan/ROM2/Chap2.htmに詳しい説明がある。
【００６１】
前記ステップＳ３０６では、前記ステップＳ３０３で取り出された点があるベジエ曲線の方向が上方向であるか否かを判定し、上方向である場合には（Ｙｅｓ）ステップＳ３０７に移行し、下方向である場合には（Ｎｏ）ステップＳ３０８に移行する。
【００６２】
前記ステップＳ３０７では、ワインディングナンバーＺから「１」を減じてから、ステップＳ３０９に移行する。
【００６３】
一方、前記ステップＳ３０８では、ワインディングナンバーＺに「１」を加算してから、前記ステップＳ３０９に移行する。
【００６４】
前記ステップＳ３０９では、ワインディングナンバーＺが「０」であるか否かを判定し、「０」である場合には（Ｙｅｓ）前記ステップＳ３０２に移行し、そうでない場合には（Ｎｏ）ステップＳ３１０に移行する。
【００６５】
前記ステップＳ３１０では、前記ステップＳ３０３で取り出した点から次に取り出される点までの間を塗りつぶす画像データを表示コントローラ６に出力してから、前記ステップＳ３０２に移行する。
【００６６】
次に、本実施形態の表示装置１の動作を具体的状況に基づいて説明する。
【００６７】
まず、図９及び１０に示すように、ＣＰＵ２によって、文字単位「ｆ」を含む文字列やその文字列の表示位置等のパラメータを含む第１描画命令がレイアウタ３に出力されたとする。すると、レイアウタ３によって、ＣＰＵ２から出力される第１描画命令に含まれる文字列が文字単位「ｆ」等に分割され、その分割された文字単位「ｆ」等それぞれに表示位置や文字間隔が設定され、その表示位置等が設定された文字単位「ｆ」等を含む第２描画命令がフォント描画コントローラ４に出力される。
【００６８】
第２描画命令が出力されると、フォントデータデコーダ８によって、準備処理が実行され、図６に示すように、まずそのステップＳ１０１で、レイアウタ３から出力される第２描画命令に含まれる文字単位「ｆ」に対応するフォントデータが図示しない記憶装置から読み出され、判定が「Ｎｏ」となり、ステップＳ１０２で、読み出されたフォントデータからベジエ曲線が１つ抽出され、ステップＳ１０３で、抽出されたベジエ曲線に関するデータが第１スタック領域９に格納され、前記ステップＳ１０１から上記フローが繰り返し実行される。
【００６９】
上記フローが繰り返し実行されるうちに、文字単位「ｆ」等に対応するフォントデータに含まれるベジエ曲線が全て抽出されたとする。すると、前記ステップＳ１０１の判定が「Ｙｅｓ」となり、ステップＳ１０４の判定が「Ｎｏ」となり、ステップＳ１０５で、第１スタック領域９からベジエ曲線に関するデータが取り出される。ここで、取り出されたベジエ曲線に関するデータに含まれる制御点Ａ１が当該ベジエ曲線をガンマ曲線で精度良く近似的に表現できる範囲にあるとする。するとステップＳ１０６の判定が「Ｙｅｓ」となり、ステップＳ１０７で、取り出されたベジエ曲線に関するデータが第２スタック領域１０に格納されたのち、前記ステップＳ１０４から上記フローが繰り返し実行される。
【００７０】
上記フローが繰り返し実行されるうちに、第２スタック領域１０にベジエ曲線に関するデータが全て格納されたとする。すると、前記ステップＳ１０４の判定が「Ｙｅｓ」となり、この準備処理が終了し、点列生成モジュール１１によって、点列生成処理が実行される。そして、図７に示すように、まずそのステップＳ２０１の判定が「Ｎｏ」となり、ステップＳ２０２で、第２スタック領域１０からベジエ曲線に関するデータが取り出される。また、ステップＳ２０３で、データが取り出されたベジエ曲線の始点Ａ０の座標値を（０、０）とし且つ終点Ａ1の座標値を（１、１）としたときの制御点Ａ１の座標値（Ｘ１’、Ｙ１’）が算出される。例えば、図９及び１０に示すように、点６がベジエ曲線の始点Ａ０に対応し、点８が終点Ａ２に対応し、点７が制御点Ａ１に対応する場合には、図１１に示すように、点６の座標値が（０，０）とされ、点８の座標値が（１，１）とされ、点７の座標値が（０．２５、０．５）とされる。
【００７１】
さらに、ステップＳ２０４で、算出された制御点Ａ１の座標値（Ｘ１’、Ｙ１’）のデータに基づいて、当該制御点Ａ１を含むベジエ曲線を近似的に表現可能なガンマ曲線のガンマ値γをガンマ値算出モジュール１２に算出させる。例えば、図１１に示すように、始点Ａ０の座標値が（０，０）であり、終点Ａ２の座標値が（１，１）であり、制御点Ａ１の座標値が（０．２５、０．５）である場合には、図４に示すように、ガンマ関数算出用テーブルが参照され、ガンマ値γとして「０．７１１８」が算出される。
【００７２】
また、ステップＳ２０５で、算出されたガンマ値γで表されるガンマ曲線上でＹ方向の単位座標値刻みに対応する点列の座標値（Ｘｉ、Ｙｉ）をガンマ関数算出モジュール１３に算出させる。例えば、図９及び１０に示すように、点６〜８については、点６のＹ座標値が「８４」であり、また点８のＹ座標値が「９６」であるため、図１２に示すように、まず「８４．５」から「９６．５」までの間で１刻みに変化させたＹ座標値（Ｙｉ）に基づき、点６の座標値を（０，０）とし且つ点８の座標値を（１，１）としたときのＹ座標値（Ｙ’）それぞれを算出する。次に、図５に示すように、その算出されたＹ座標値（Ｙ’）に対応するＸ座標値（Ｘ’）をガンマ関数テーブルに基づいて算出する。そして、その算出されたＸ座標値（Ｘ’）に基づき、点６のＸ座標値を「１６」とし且つ点８のＸ座標値を「４０」としたときのＸ座標値（Ｘi）をそれぞれ算出する。
【００７３】
そして、ステップＳ２０６で、前記ステップＳ２０５で算出された点列の座標値（Ｘｉ、Ｙｉ）のデータと当該点列があるベジエ曲線の方向とが併せて第３スタック領域１４に格納されたのち、前記ステップＳ２０１から上記フローが繰り返し実行される。
【００７４】
上記フローが繰り返し実行されるうちに、第３スタック領域１４にベジエ曲線等の点列のデータが全て格納されたとする。すると、前記ステップＳ２０１の判定が「Ｙｅｓ」となり、この点列生成処理が終了し、描画モジュール１５によって、点間塗りつぶし処理が実行される。そして、図８に示すように、まずそのステップＳ３０１で、第３スタック領域１４に格納されている点列のＹ座標値が昇順となるように当該データが整列される。また、ステップＳ３０２の判定が「Ｎｏ」となり、ステップＳ３０３で、第３スタック領域１４から点の座標値のデータと当該点があるベジエ曲線の方向とが併せて取り出され、ステップＳ３０４の判定が「Ｎｏ」となり、ステップＳ３０５で、ワインディングナンバーＺが「０」に初期化される。
【００７５】
ここで、取り出された点があるベジエ曲線の方向が下方向であるとする。すると、ステップＳ３０６の判定が「Ｎｏ」となり、ステップＳ３０８で、ワインディングナンバーＺに「１」が加算され、ステップＳ３０９の判定が「Ｎｏ」となり、ステップＳ３１０で、次に取り出される点までの間を塗りつぶす画像データが表示コントローラ６に出力されたのち、前記ステップＳ３０２から上記フローが繰り返される。
【００７６】
このように本実施形態の表示装置１によれば、Ｙ方向の単位座標値刻みに指定されたＹ座標値（Ｙｉ）からＸ座標値（Ｘｉ）を直接に算出することができ、ベジエ曲線上の点の算出に媒介変数を用いる方法に比べ、指定されたＹ座標値（Ｙｉ）やＸ座標値（Ｘｉ）をとる点の座標値を容易に算出することができる。
【００７７】
次に、本発明の表示装置の第２実施形態について説明する。この実施形態は、ベジエ曲線によって輪郭線が表されるアウトラインフォントでアンチエイリアス処理を行うときには、その輪郭線が通る画素の境界線と当該輪郭線との距離に基づいて当該画素の濃度値を算出するようにした点が上記第１実施の形態と異なっている。具体的には、点列生成モジュール１１で行われる準備処理が、前記第１実施形態の図７のものから図１３のものに変更され、描画モジュール１５で行われる点間塗りつぶし処理が、前記第１実施形態の図８のものから図１４のものに変更されている。そして、図１３に示すように、図７のフローチャートのステップＳ２０６に代えてステップＳ４０１〜Ｓ４０３が追加され、図８のフローチャートのステップＳ３０６の直前にステップＳ５０１及びＳ５０２が追加され、ステップＳ３１０に代えてステップＳ５０３が設けられている点が上記第１実施形態と異なる。なお、この第２実施形態は、前記第１実施形態の構成と同等の構成を多く含んでおり、同等の構成には同等の符号を付して、その詳細な説明を省略する。
【００７８】
まず、図１３に示すように、ステップＳ４０１では、前記ステップＳ２０５で算出された点列の座標値（Ｘｉ、Ｙｉ）のＹ座標値（Ｙｉ）に「０．５」を加算したＹ座標値（Ｙｉ＋）におけるＸ座標値（Ｘｉ＋）及び、「０．５」を減算したＹ座標値（Ｙｉ−）におけるＸ座標値（Ｘｉ−）を算出する。そして、それらの算出結果（Ｙｉ＋、Ｙｉ−）の整数部分が等しいか否かを判定し、整数部分が等しい場合にはそのまま次のステップＳ４０２に移行する。また、整数部分が異なる場合には、前記算出結果に対応する各点（Ｘｉ＋、Ｙｉ＋）（Ｘｉ−、Ｙｉ−）における接線を下記（４）式に従って算出する。
【００７９】
Ｙ＝（ｄＹ／ｄＸ）×（Ｘ―Ｘｉ）＋Ｙｉ………（４）
但し、ｄＸ／ｄＹ＝（１／γ）×Ｙｉ１／γ―１
例えば、図９、１０及び１６に示すように、算出された点列のＹ座標値が「８４．５」である場合には、「０．５」を加算したＹ座標値「８５」におけるＸ座標値が「１６．３７」となり、「０．５」を減算したＹ座標値「８４」におけるＸ座標値が「１６」となり、そのままこのステップが終了される。また例えば、点列のＹ座標値が「９５．５」である場合には、「０．５」を加算したＹ座標値「９６」におけるＸ座標値が「４０」となり、「０．５」を減算したＹ座標値「９５」におけるＸ座標値が「３７．２４」となり、これらの２点における接線（ｄＸ／ｄＹ＝１．３５６、１．４０５）が算出される。
【００８０】
次にステップＳ４０２に移行して、前記ステップＳ４０１で接線が算出された点（Ｘｉ＋、Ｙｉ＋）（Ｘｉ−、Ｙｉ−）を含むベジエ曲線の始点Ａ０の座標値を（０、０）とし且つ終点Ａ1の座標値を（１、１）としたときの当該接線の交点の座標値（ｃＸ、ｃＹ）を下記（５）式に従って算出し、その算出された交点の座標値（ｃＸ、ｃＹ）に基づいて制御点Ａ１の座標値が算出される。
【００８１】
ｃＹ＝（Ｘｎ―Ｘｍ―（Ｙｎ−Ｙｍ）×（ｄＸｍ／ｄＹｍ））／（（ｄＸｎ／ｄＹｎ）−（ｄＸｍ／ｄＹｍ））＋Ｙｎ
ｃＸ＝Ｘｍ＋（ｃＹ―Ｙｍ）×（ｄＸｍ／ｄＹｍ）  ………（５）
但し、（Ｘｍ、Ｙｍ）及び（Ｘｎ、Ｙｎ）は、ベジエ曲線の始点Ａ０の座標値を（０、０）とし且つ終点Ａ1の座標値を（１、１）としたときの前記ステップＳ４０１で接線が算出された点の座標値（Ｘｉ＋、Ｙｉ＋）（Ｘｉ−、Ｙｉ−）である。
【００８２】
例えば、（Ｘｍ、Ｙｍ）が（０．８８５、０．９１７）であり、（Ｘｎ、Ｙｎ）が（１、１）である場合には、交点の座標値（ｃｘ、ｃｙ）として（０．９４１、０．９５８）が算出され、その算出結果に基づいて制御点Ａ１の座標値（Ｘ１、Ｙ１）が（０．４８６９、０．４９５７）と算出される。
【００８３】
次にステップＳ４０３に移行して、前記ステップＳ２０５で算出された点列の座標値（Ｘｉ、Ｙｉ）のデータ及び当該点列があるベジエ曲線の方向と、前記ステップＳ４０２で算出されたベジエ曲線に関するデータとを第３スタック領域１４に格納させてから、前記ステップＳ２０１に移行する。
【００８４】
一方、ステップＳ５０１では、ワインディングナンバーＺが「０」であるか否かを判定し、「０」である場合には（Ｙｅｓ）ステップＳ５０２に移行し、「０」でない場合には（Ｎｏ）ステップＳ３０６に移行する。
【００８５】
前記ステップＳ５０２では、減少シェーディング実行フラグＦを「０」のセット状態とし、後述するシェーディング処理を実行してから、前記ステップＳ３０６に移行する。
【００８６】
また、ステップＳ５０３では、減少シェーディング実行フラグＦを「１」のセット状態とし、後述するシェーディング処理を実行してから、前記ステップＳ３０２に移行する。
【００８７】
次に、点列生成処理のステップＳ５０２又はＳ５０３で実行されるシェーディング処理について説明する。このシェーディング処理は実行されると、図１５に示すように、まずそのステップＳ６０１で、前記ステップＳ３０３で取り出されたデータに含まれるベジエ曲線の制御点Ａ１の座標値（Ｘ１’、Ｙ１’）のデータに基づいて、当該制御点Ａ１を含むベジエ曲線を近似的に表現可能なガンマ曲線のガンマ値γをガンマ値算出モジュール１２に算出させる。例えば、始点Ａ０の座標値が（０，０）であり、終点Ａ２の座標値が（１，１）であり、制御点Ａ１の座標値が（０．４８６９、０．４９５７）である場合には、図４に示すように、ガンマ関数算出用テーブルが参照され、ガンマ値γとして「０．７１１８」が算出される。なお、前記ステップＳ３０３で取り出されたデータに、ベジエ曲線の制御点Ａ１の座標値（Ｘ１’、Ｙ１’）のデータが含まれていない場合には、そのまま次のステップＳ６０２に移行する。
【００８８】
次にステップＳ６０２に移行して、前記ステップＳ６０１で算出されたガンマ値γに基づき、ガンマ関数算出用テーブルを参照して、そのガンマ値γで表されるガンマ曲線におけるＸ方向の単位座標値刻みに点列の座標値（Ｘ１’、Ｙ１’）を算出し、その算出された点列のＹ座標値Ｙ１’を、対応する座標値にある各画素の濃度値ｋとする。例えば、始点Ａ０が（０，０）であり、終点Ａ２が（１，１）である場合には、図１７に示すように、Ｘ座標値（Ｘ１）「３７．５」、「３８．５」、「３９．５」はＸ座標値（Ｘ１’）「０．０９５」、「０．４５７」、「０．８１９」となる。また、それらに対応するＹ座標値（Ｙ１’）として「０．０９２」、「０．４５２」、「０．８１７」が算出され、それらの算出結果が、対応する座標値にある各画素の濃度値ｋとされる。ここで、濃度値ｋは、白であるときには「０」となり、黒であるときには「１」なり、それらの間の濃度値の灰色であるときには「０」から「１」の間の値となる。
【００８９】
なお、前記ステップＳ３０３で点列の座標値（Ｘｉ、Ｙｉ）のデータが取り出された場合には、取り出された点列のＹ座標値（Ｙｉ）に「０．５」を加算したＹ座標値（Ｙｉ＋）におけるＸ座標値（Ｘｉ＋）及び、「０．５」を減算したＹ座標値（Ｙｉ−）におけるＸ座標値（Ｘｉ−）を線形補間した直線を算出し、その算出された直線上のＹ座標値（Ｙｉ）に対応するＸ座標値（Ｙｉ）を算出する。そして、その算出されたＸ座標値の小数部分を当該座標値（Ｘｉ＋、Ｙｉ）にある画素の濃度値ｋとする。
【００９０】
次にステップＳ６０３で、減少シェーディング実行フラグＦが「１」のセット状態であるか否かを判定し、「１」のセット状態である場合には（Ｙｅｓ）ステップＳ６０４に移行し、「０」のリセット状態である場合には（Ｎｏ）ステップＳ６０５に移行する。
【００９１】
前記ステップＳ６０４では、前記ステップＳ６０２で算出された各画素の濃度値ｋが反転するように、下記（６）式に従って新たな濃度値ｋを算出してから、前記ステップＳ６０５に移行する。
【００９２】
ｋ＝１−ｋ  ………（６）
前記ステップＳ６０５では、前記ステップＳ６０２又はＳ６０４で算出された濃度値ｋに従って各画素を塗りつぶす画像データを表示コントローラ６に出力してから、この演算処理を終了する。
【００９３】
このように本発明の表示装置１によれば、アウトラインフォントの輪郭線が通る画素の境界線と当該輪郭線との距離に基づいて当該画素の濃度値ｋを設定するようにしたため、濃度値をオーバーサンプリングによって算出する方法に比べ、輪郭線を描画する画素の濃度値ｋを容易に算出することができる。
【００９４】
なお、本実施形態では、アウトラインフォントの輪郭線が通る画素の境界線と当該輪郭線との距離に基づいて当該輪郭線の濃度値ｋを算出する例を示したが、これに限られるものではない。例えば、アウトラインフォントの輪郭線が自然な濃度値となるように前記距離に基づいて算出される濃度値ｋにガンマ補正を行うようにしてもよい。また、ガンマ補正を行うときには、前記距離を算出するためのガンマ曲線のガンマ値「γ」にガンマ補正のためのガンマ値を加算してもよく、そのようにすれば、その加算後のガンマ値「γ」に基づいて前記距離を算出するだけで、ガンマ補正された濃度値を算出することができる。
【００９５】
なお、上記実施形態では、図１のフォントデータデコーダ８及び点列生成モジュール１１は近似手段に対応し、以下同様に、図１のフォントデータデコーダ８は特定手段に対応し、図１の点列生成モジュール１１はガンマ値設定手段に対応し、図２のガンマ値算出用テーブルは第１格納手段に対応し、図３のガンマ値算出用テーブルは第２画能手段に対応し、図１の描画モジュール１５及び図１４のステップＳ５０２、Ｓ５０３は濃度値設定手段に対応する。
【００９６】
また、本発明の曲線近似方法は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【図面の簡単な説明】
【００９７】
【図１】本発明の一実施形態の概略構成を示すブロック図である。
【図２】ガンマ値算出用テーブルを説明するための説明図である。
【図３】ガンマ値算出用テーブルの変形例を説明するための説明図である。
【図４】ガンマ値算出用テーブルの変形例を説明するための説明図である。
【図５】ガンマ関数算出用テーブルを説明するための説明図である。
【図６】第１実施形態の準備処理を示すフローチャートである。
【図７】第１実施形態の点列生成処理を示すフローチャートである。
【図８】第１実施形態の点間塗りつぶし処理を示すフローチャートである。
【図９】文字列に含まれる文字単位を説明するための説明図である。
【図１０】図９の文字単位上の各点の座標値を示すテーブルである。
【図１１】第１実施形態の動作を説明するための説明図である。
【図１２】第１実施形態の動作を説明するための説明図である。
【図１３】第２実施形態の準備処理を示すフローチャートである。
【図１４】第２実施形態の点間塗りつぶし処理を示すフローチャートである。
【図１５】第２実施形態のシェーディング処理を示すフローチャートである。
【図１６】第２実施形態の動作を説明するための説明図である。
【図１７】第２実施形態の動作を説明するための説明図である。
【符号の説明】
【００９８】
１は表示装置、２はＣＰＵ、３はレイアウタ、４はフォント描画コントローラ、５はＶＲＡＭ、６は表示コントローラ、７は表示体、８はフォントデータデコーダ、９は第１スタック領域、１０は第２スタック領域、１１は点列生成モジュール、１２はガンマ値算出モジュール、１３はガンマ関数値算出モジュール、１４は第３スタック領域、１５は描画モジュール
【図１】
2005216145.tif 000003
【図２】
2005216145.tif 000004
【図３】
2005216145.tif 000005
【図４】
2005216145.tif 000006
【図５】
2005216145.tif 000007
【図６】
2005216145.tif 000008
【図７】
2005216145.tif 000009
【図８】
2005216145.tif 000010
【図９】
2005216145.tif 000011
【図１０】
2005216145.tif 000012
【図１１】
2005216145.tif 000013
【図１２】
2005216145.tif 000014
【図１３】
2005216145.tif 000015
【図１４】
2005216145.tif 000016
【図１５】
2005216145.tif 000017
【図１６】
2005216145.tif 000018
【図１７】
2005216145.tif 000019