(57)【特許請求の範囲】
【請求項１】
文字の輪郭データに基づいて文字の輪郭線を描画領域に描画する輪郭描画手段と、
前記輪郭線が描画された前記描画領域を所定の走査ラインに沿って走査したときに当該輪郭線の描画方向に応じて増減する変数のデータサイズを指定する指定手段と、
前記輪郭線が描画された前記描画領域を前記走査ライン単位で走査し、各々の前記走査ライン上にある各画素について、前記指定手段により指定されたデータサイズの変数を求めて記憶する変数記憶手段と、
前記変数記憶手段によって記憶された変数に基づいて、前記描画領域における前記輪郭線の内側の領域を特定し、特定した領域に描画色の画素を配置して当該領域を描画色で塗り潰す塗り潰し手段と
を備えることを特徴とする描画装置。
【請求項２】
前記変数記憶手段は、
前記変数が前記指定手段によって指定されたデータサイズをオーバーフローしたときには、当該変数の値を零に戻すラップアラウンド処理を行って前記変数を求める
ことを特徴とする請求項１記載の描画装置。
【請求項３】
前記輪郭描画手段は、
文字の輪郭データに基づいて計算された輪郭線の位置に基づいて前記輪郭線を前記描画領域に描画した場合に、当該輪郭線が前記描画領域の端からはみ出るか否かを判断し、
前記判断の結果、前記輪郭線が、前記描画領域の前記走査ラインが延びる方向にはみ出る場合には、はみ出た輪郭線の位置を前記描画領域の端の位置とし、
前記判断の結果、前記輪郭線が、前記描画領域の前記走査ラインが延びる方向に直交する方向にはみ出る場合には、はみ出た輪郭線を除去する
ことを特徴とする請求項１記載の描画装置。
【請求項４】
変数のデータサイズを指示する指示情報がプログラムに記述されており、
前記指定手段は、前記プログラムに記述されている指示情報が指示するデータサイズを、前記変数のデータサイズとして指定する
ことを特徴とする請求項１記載の描画装置。
【請求項５】
前記輪郭データには、変数のデータサイズを指示する指示情報が含まれており、
前記指定手段は、前記輪郭データに含まれている指示情報が指示するデータサイズを、前記変数のデータサイズとして指定する
ことを特徴とする請求項１記載の描画装置。
【請求項６】
前記指定手段は、ユーザの操作によって指示されたデータサイズを、前記変数のデータサイズとして指定する
ことを特徴とする請求項１記載の描画装置。
【請求項７】
請求項１〜６のいずれか１項に記載の描画装置と、
前記描画装置の前記塗り潰し手段により描画色で塗り潰された結果を文字画像として出力する出力手段と
を備えることを特徴とする画像出力装置。
【請求項８】
コンピュータを、
文字の輪郭データに基づいて文字の輪郭線を描画領域に描画する輪郭描画手段と、
前記輪郭線が描画された前記描画領域を所定の走査ラインに沿って走査したときに当該輪郭線の描画方向に応じて増減する変数のデータサイズを指定する指定手段と、
前記輪郭線が描画された前記描画領域を前記走査ライン単位で走査し、各々の前記走査ライン上にある各画素について、前記指定手段により指定されたデータサイズの変数を求めて記憶する変数記憶手段と、
前記変数記憶手段によって記憶された変数に基づいて前記描画領域における前記輪郭線の内側の領域を特定し、特定した領域に描画色の画素を配置して当該領域を描画色で塗り潰す塗り潰し手段と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は文字画像を描画する技術に関する。
【背景技術】
【０００２】
文字のフォント方式としてよく知られているものに、アウトラインフォント方式がある。このアウトラインフォント方式では、文字の輪郭線をビットマップメモリ上に描画し、この輪郭線の内側の領域に描画色の画素を配置してその領域を描画色で塗り潰すことで文字を表現する。このとき輪郭線の内側の領域を塗り潰す方法としては、イーブン・オッド方法（奇偶判定方法ともいう）と、ノンゼロ・ワインディング・ナンバ方法（非ゼロ塗り潰し方法ともいう）とがある。
【０００３】
イーブン・オッド方法は、輪郭線が描画されたビットマップメモリをｘ軸方向に走査していき、走査開始点から数えて「奇数番目」の輪郭線から次の「偶数番目」の輪郭線までを塗り潰すという方法である。また、ノンゼロ・ワインディング・ナンバ方法は、「巻数」又は「ワインディングナンバ」と呼ばれる、初期値が「０」の変数を用意しておき、輪郭線と走査ラインとの交差点において、その輪郭線の描画方向に応じて巻数を増減させ、巻数が「０」でなくなった領域を塗り潰すというものである。より具体的には、まず、輪郭線が描画されたビットマップメモリをｘ軸方向の走査ライン毎に走査していき、その走査ラインと文字の輪郭線との交差点において、輪郭線の描画方向が上向き（ｙ座標値が増加する方向）の場合は、巻数に「１」を加える。一方、輪郭線の描画方向が下向き（ｙ座標値が減少する方向）の場合は、その巻数から「１」を引く。これらの処理を、走査ラインと輪郭線との全ての交差点について行って、走査ライン上にある各画素について巻数を求める。その結果、巻数が「０」であるならば、その巻数に対応する画素を輪郭線の外側と判断し、巻数が「０」でなければ、輪郭線の内側であると判断して、その内側の領域に描画色の画素を配置する。
【０００４】
イーブン・オッド方法では、文字の字画どうしが重なる領域に塗り残しが発生することがあるのに対し、ノンゼロ・ワインディング・ナンバ方法では、そのような塗り残しは発生しないが、フォント設計者が輪郭データを新たに設計し、そのデータを記述するときには非常に手間がかかるという欠点がある。例えば特許文献１には、これらのイーブン・オッド方法とノンゼロ・ワインディング・ナンバ方法とを切り替えて使用する技術が開示されている。
【０００５】
また、特許文献２には、ノンゼロ・ワインディング・ナンバ方法に関する技術が開示されている。この特許文献２によれば、輪郭線を構成する画素に関する情報を１画素分ずつビットマップメモリに記憶していくが、このとき、これらの各画素について、輪郭線の描画方向とその輪郭線の重なり回数とを合わせた「ｗｉｎｄｉｎｇ ｎｕｍｂｅｒ情報」（以下、Ｗナンバ情報）も併せて記憶する。そして、ビットマップメモリを順に走査しつつ、各々の画素に併せて記憶されているＷナンバ情報を参照して、各画素についてのＷナンバ（巻数）を求め、このＷナンバが「０」でない領域を描画色の画素で塗り潰す。さらに、この特許文献２では、ビットマップメモリ上の各画素について用意された１６ビットのうち、上位３ビットを上記のＷナンバ情報の記述領域とし、下位１３ビットを画素のｘ座標値の記述領域とする例が開示されている。このようにＷナンバ情報のデータサイズとして３ビットを割り当てることで、“０”，“＋１”，“＋２”，“＋３”，“−１”，“−２”，“−３”という、７通りのＷナンバを記述することが可能となる。
【０００６】
【特許文献１】特開平６−２５１１６４号公報
【特許文献２】特開平５−２６５４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
複数の字画が重なることで、それらの字画の輪郭線が同じ点で幾つも重なってしまうような場合には、特許文献２のように、７通りのＷナンバを扱えると便利である。ただし、アウトラインフォント方式では、複数の字画が連結しているような場合に、それらの字画の総輪郭を１つの輪郭で表現すればよいので、ほとんどの文字パターンにおいて、“Ｗナンバ”つまり“巻数”のデータサイズは１ビットで十分である。よって、特許文献２のように、巻数の記述領域として３ビットを用意しておいたとしても、大抵の場合、３−１＝２ビットは使用されないことになる。そして、ビットマップメモリにおいては、このような無駄なビットのための記憶領域まで確保しておかなければならないから、特許文献２の技術では、ビットマップメモリを有効に活用しているとは言えない。一方、２ビット以上の巻数が必要な場合もまったく皆無というわけではないから、１ビットの記述領域だけ確保していれば十分というわけにもいかない。
【０００８】
そこで、本発明の目的は、文字の輪郭線の内側の領域を塗り潰す処理を行うときに、適切なデータサイズの巻数を用いてこの処理を行い得る仕組みを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、文字の輪郭データに基づいて文字の輪郭線を描画領域に描画する輪郭描画手段と、前記輪郭線が描画された前記描画領域を所定の走査ラインに沿って走査したときに当該輪郭線の描画方向に応じて増減する変数のデータサイズを指定する指定手段と、前記輪郭線が描画された前記描画領域を前記走査ライン単位で走査し、各々の前記走査ライン上にある各画素について、前記指定手段により指定されたデータサイズの変数を求めて記憶する変数記憶手段と、前記変数記憶手段によって記憶された変数に基づいて、前記描画領域における前記輪郭線の内側の領域を特定し、特定した領域に描画色の画素を配置して当該領域を描画色で塗り潰す塗り潰し手段とを備えることを特徴とする描画装置を提供する。
これにより、文字の輪郭線の内側の領域を塗り潰す処理を行うときに、指定されたデータサイズの変数を用いることができる。
【００１０】
本発明の好ましい態様において、前記変数記憶手段は、前記変数が前記指定手段によって指定されたデータサイズをオーバーフローしたときには、当該変数の値を零に戻すラップアラウンド処理を行って前記変数を求める。
このようにすれば、前記変数が前記指定手段によって指定されたデータサイズをオーバーフローしたときには当該変数の値が零になるので、例えば変数が所定のデータサイズをオーバーフローしたときには処理が停止するなどのエラー処理を行う場合と比べると、処理を停止させずに済む。
【００１１】
本発明の好ましい態様において、前記輪郭描画手段は、文字の輪郭データに基づいて計算された輪郭線の位置に基づいて前記輪郭線を前記描画領域に描画した場合に、当該輪郭線が前記描画領域の端からはみ出るか否かを判断し、前記判断の結果、前記輪郭線が、前記描画領域の前記走査ラインが延びる方向にはみ出る場合には、はみ出た輪郭線の位置を前記描画領域の端の位置とし、前記判断の結果、前記輪郭線が、前記描画領域の前記走査ラインが延びる方向に直交する方向にはみ出る場合には、はみ出た輪郭線を除去する。
これにより、文字の輪郭データに基づいて描画領域における輪郭線の位置を計算し、計算した位置に基づいて輪郭線を描画した場合に当該輪郭線が描画領域の端からはみ出たとしても、その輪郭線の内側の領域を塗り潰すことが可能となる。
【００１２】
本発明の好ましい態様において、変数のデータサイズを指示する指示情報がプログラムに記述されており、前記指定手段は、前記プログラムに記述されている指示情報が指示するデータサイズを、前記変数のデータサイズとして指定する。
これにより、プログラムに記述されている指示情報が指示するデータサイズを、変数のデータサイズとして指定することができる。
【００１３】
本発明の好ましい態様において、前記輪郭データには、変数のデータサイズを指示する指示情報が含まれており、前記指定手段は、前記輪郭データに含まれている指示情報が指示するデータサイズを、前記変数のデータサイズとして指定する。
これにより、輪郭データに含まれている指示情報が指示するデータサイズを、変数のデータサイズとして指定することができる。
【００１４】
本発明の好ましい態様において、前記指定手段は、ユーザの操作によって指示されたデータサイズを、前記変数のデータサイズとして指定する。
これにより、ユーザが指示したデータサイズを、変数のデータサイズとして指定することができる。
【００１５】
また、本発明は、上記のいずれかの描画装置と、前記描画層値の前記塗り潰し手段により描画色で塗り潰された結果を文字画像として出力する出力手段とを備えることを特徴とする画像出力装置を提供する。
これにより、文字の輪郭線の内側の領域を塗り潰す処理を行うときに、指定されたデータサイズの変数を用いることができ、さらに、その塗り潰しによって得られた文字画像を例えば表示や印刷等の方式で出力することができる。
【００１６】
また、本発明は、コンピュータを、文字の輪郭データに基づいて文字の輪郭線を描画領域に描画する輪郭描画手段と、前記輪郭線が描画された前記描画領域を所定の走査ラインに沿って走査したときに当該輪郭線の描画方向に応じて増減する変数のデータサイズを指定する指定手段と、前記輪郭線が描画された前記描画領域を前記走査ライン単位で走査し、各々の前記走査ライン上にある各画素について、前記指定手段により指定されたデータサイズの変数を求めて記憶する変数記憶手段と、前記変数記憶手段によって記憶された変数に基づいて前記描画領域における前記輪郭線の内側の領域を特定し、特定した領域に描画色の画素を配置して当該領域を描画色で塗り潰す塗り潰し手段として機能させるプログラムを提供する。
これにより、文字の輪郭線の内側の領域を塗り潰す処理を行うときに、指定されたデータサイズの変数を用いることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態を説明する。
（１）フォントデータの説明
まず最初に、本実施形態において輪郭データとして用いるフォントデータを説明する。ここでは、アウトライン方式のフォントデータの、特にＴＴＦ（True Type Font）と呼ばれるものを用いる。
図１は、ＴＴＦの内容について説明する図である。図１上段は、「口」という文字（漢字）をＴＴＦによって表したものである。文字の輪郭線の周囲に沿って、矩形と円形の図形が配置されているが、これらはいずれも「制御点」と呼ばれるものである。矩形の図形はオンカーブ制御点（オンカーブポイント）であり、円形の図形はオフカーブ制御点（オフカーブポイント）である（以降の図において同じ）。ＴＴＦでは、文字の輪郭線を１又は複数の「コンター」によって表現する。コンターとは、直線または２次ベジエ曲線を連結することによって表される閉じた線図のことであり、この線図によって文字の輪郭線が表わされている。例えばオンカーブ制御点が連続している場合は、それら隣り合う２つの制御点が直線で結ばれる。一方、オフカーブ制御点が現れた場合には、そのオフカーブ制御点の隣にある２つのオンカーブ制御点が２次ベジエ曲線で結ばれる。また、２つのオフカーブ制御点が隣り合う場合は、それらの中点にオンカーブ制御点を補って２つの２次ベジエ曲線で結べばよい。
【００１８】
図２は、ビットマップメモリ上の描画領域に文字の輪郭線を描画する様子を説明する図である。
図２に例示した制御点Ａ，Ｂ，Ｃ，Ｅをオンカーブ制御点とし、制御点Ｄをオフカーブ制御点とすると、直線Ａ−Ｂと、２次ベジエ曲線Ｃ−Ｄ−Ｅはそれぞれ、次の数式で表される点Ｐの集合（直線）と、点Ｑの集合（２次ベジエ曲線）として表現される。
Ｐ＝（１−ｔ）Ａ＋ｔＢ
Ｑ＝（１−ｔ）2Ｃ＋２ｔ（１−ｔ）Ｄ＋ｔ2Ｅ
ｔは、０≦ｔ≦１の範囲で連続的に変化する媒介変数である。直線Ａ−Ｂにおいて、ｔ＝０の場合には点Ｐは点Ａに一致し、ｔ＝１の場合には点Ｐは点Ｂに一致する。同様に、２次ベジエ曲線Ｃ−Ｄ−Ｅにおいて、ｔ＝０の場合には点Ｑは点Ｃに一致し、ｔ＝１の場合には点Ｑは点Ｅに一致する。
【００１９】
図３は、或る１つの文字を表すフォントデータを例示した図である。
図３に示すように、フォントデータは、各制御点に対して昇順に割り当てられた「制御点番号」と、その制御点の種別（オンカーブ制御点かオフカーブ制御点か）と、その制御点の平面上の「位置」（X，Y座標）とからなる制御点情報の集合によって表されている。これらのフォントデータによって１つの文字の輪郭線が表わされる。さらに、１つのフォントデータに対しては、そのフォントデータに含まれるコンターの総数と、各々のコンターの終端となる制御点番号とが対応付けられている。
【００２０】
ここで、図４は、ビットマップメモリ上の描画領域に描画された文字の輪郭線の内側を塗り潰すときの様子を説明する図である。図４に示すように、「Ｄ」というアルファベットの輪郭線は、２つのコンターｃ１，ｃ２によって表されているから、図３に示すとおり、コンターの総数は「２」である。また、コンターｃ１においては、コンターの終端となる制御点番号は「７」であり、コンターｃ２においては、コンターの終端となる制御点番号は「１２」である。よって、図３に示すとおり、コンターの終端となる制御点番号は「７，１２」である。
【００２１】
ビットマップメモリに描画された文字の輪郭線の内側を塗り潰すときの処理は以下のとおりである。
まず、フォントプロセッサなどの描画装置は、巻数ｗ（初期値は０）をレジスタ乃至メモリに保持しておく。そして、描画装置は、文字の輪郭線が描画された描画領域を所定の方向（通常はｘ軸方向）の走査ラインに沿って走査し、その走査ラインとコンターとが交差する点を求める。このとき、描画装置は、小さい制御点番号から大きい制御点番号に進む方向に描いたコンターが、走査ラインに対して下から上に交差したか、又は、上から下に交差したかを判定する。描画装置は、この判定の結果が前者なら巻数ｗに１を加え、後者なら巻数ｗから１を減じる。つまり、描画方向が下から上に向かうコンターを構成する各画素は巻数ｗを１だけ増加させるのに対し、描画方向が上から下に向かうコンターを構成する各画素は巻数ｗを１だけ減少させる。また、走査ラインと同じ方向に延びる輪郭線上にある画素は、巻数を変化させない。このような巻数に対する「＋１」、「−１」、「±０」といった増減値を「巻数変化量」という。これら「巻数」及び「巻数変化量」はいずれも、“輪郭線が描画された描画領域を所定の走査ラインに沿って走査したときにその輪郭線の描画方向に応じて増減する変数”に相当する。
【００２２】
このように各画素の巻数変化量から巻数を求めることにより、図４に示した走査ラインＬ１，Ｌ２は、巻数が異なる幾つかの区間に区分されることになる。描画装置は、巻数ｗが０でない区間（図中のｗ＝１の区間）には描画色の画素を配置して、有色で塗りつぶし、巻数ｗ＝０の区間においては塗りつぶし処理を行わない。なお、この手順の詳細は、例えばhttp://developer.apple.com/textfonts/TTRefMan/RM０2/Chap2.html において公開されている。
【００２３】
以上のような規則に従い、描画装置が図１上段のように配置された制御点に従ってコンターを形成し、さらにそのコンターの内側の領域を塗りつぶすと、図１下段に示すように、「口」という文字画像が生成され、この画像が表示装置に表示されたり、印刷装置により印刷されたりする。なお、この図１下段においては、オンカーブ制御点及びオフカーブ制御点といった各制御点を図示しているが、これは補助的に示しているに過ぎず、実際の文字画像に現れることはない。
【００２４】
（２）実施形態の構成
次に、実施形態の構成について具体的に説明する。
図５は、本実施形態に係る画像出力装置の一例である、画像表示装置１の構成を示すブロック図である。図５に示すように、画像表示装置１は、ＣＰＵ（Central Processing Unit）１１と、ＲＯＭ（Read Only Memory）１２と、ＲＡＭ（Random Access Memory）１３と、ＶＲＡＭ（Video Random Access Memory）１４と、記憶性液晶表示体１５と、表示制御装置１６と、電源１７と、電源制御装置１８と、コネクタ１９と、記憶制御装置２０と、Ｉ／Ｏ２１と、キー２２と、記憶装置２３と、フォントプロセッサ２５と、バス２６とを備えている。ＲＯＭ１２は、読み出し専用のメモリであり、ＣＰＵ１１によって実行されるプログラムや、複数の文字の輪郭線をアウトラインフォント方式で表現したフォントデータが記憶されている。ＣＰＵ１１は、ＲＯＭ１２に記憶されているプログラムを読み出してＲＡＭ１３に展開し、そのプログラムに記述された手順に従って処理を実行する。
【００２５】
コネクタ１９には、所謂リムーバブルメディアのような可搬性の記憶媒体２４が着脱自在である。この記憶媒体２４は、例えばＳＤ（Secure Digital）カードのようなフラッシュメモリ内蔵のカード型記憶媒体であってもよいし、例えばフロッピー（登録商標）ディスクなどの磁気媒体を利用したディスク型記憶媒体であってもよい。記憶装置２３はフラッシュメモリやハードディスクなどの不揮発性の記憶手段である。記憶装置２３又は記憶媒体２４には、文書データが記憶されている。
【００２６】
記憶制御装置２０は、ＣＰＵ１１の指示に従い、コネクタ１９に装着された記憶媒体２４又は記憶装置２３から文書データを読み出してＲＡＭ１３に転送する。ＣＰＵ１１は、この文書データに含まれる文字コードによって指定されている文字を描画するよう、フォントプロセッサ２５に命令する。フォントプロセッサ２５は文字を描画する描画装置であり、ＣＰＵ１１の命令に応じて、ＲＯＭ１２から上記文字コードに対応するフォントデータを読み出し、これを解釈してビットマップ形式の画像データに変換してＶＲＡＭ１４に格納する。記憶性液晶表示体１５は、コレステリック液晶や電気泳動などを利用した表示手段であり、電力供給が停止しても画像を表示し続けることができるという記憶性を有している。ＶＲＡＭ１４に書き込まれた画像データは、ＣＰＵ１１の指示のもとで、表示制御装置１６に供給される。表示制御装置１６は、記憶性液晶表示体１５を制御して上記画像データに基づいた画像を表示させる。
【００２７】
キー２２は、利用者によって操作される操作手段であり、ペンデバイスやジョイスティックなどの操作デバイスを含んでいてもよい。Ｉ／Ｏ２１は、キー２２の操作状態を監視しており、ユーザによってキー２２が操作されるとその操作に応じた信号をＣＰＵ１１に供給する。電源１７は、例えば充電可能な電池であり、電源制御装置１８は、電源１７のオンオフ制御や電力の残量監視など各種の電源管理を行う。
【００２８】
次に、図６は、描画装置であるフォントプロセッサ２５の構成を示すブロック図である。
図６に示すように、フォントプロセッサ２５は、メインコントローラ２５１と、フォント描画コントローラ２５２と、輪郭計算モジュール２５３と、輪郭描画モジュール２５４と、塗り潰し・背景合成・転送モジュール２５５と、ワークメモリ２５６と、外部バスインタフェースモジュール２５７と、メインバス２５８と、サブバス２５９とを備えている。メインバス２５８には、メインコントローラ２５１、フォント描画コントローラ２５２、輪郭計算モジュール２５３及び塗り潰し・背景合成・転送モジュール２５５が接続されている。フォント描画コントローラ２５２には、輪郭計算モジュール２５３、輪郭描画モジュール２５４及び塗り潰し・背景合成・転送モジュール２５５が接続されている。サブバス２５９には、輪郭描画モジュール２５４、塗り潰し・背景合成・転送モジュール２５５及びワークメモリ２５６が接続されている。外部バスインタフェースモジュール２５７は、メインバス２５８を介して接続されている輪郭計算モジュール２５３、輪郭描画モジュール２５４及び塗り潰し・背景合成・転送モジュール２５５に対して同時にアクセスが行われないように制御したり、バス２６とメインバス２５８及びサブバス２５９との間のデータの遣り取りを制御する。
【００２９】
メインコントローラ２５１は、フォントプロセッサ２５の全体を制御する。ワークメモリ２５６は、文字を描画するための描画領域を有する記憶手段である。輪郭計算モジュール２５３、輪郭描画モジュール２５４、及び、塗り潰し・背景合成・転送モジュール２５５は、互いに協働して、このワークメモリ２５６に文字を描画する。フォント描画コントローラ２５２は、これらの輪郭計算モジュール２５３、輪郭描画モジュール２５４、及び、塗り潰し・背景合成・転送モジュール２５５を制御する。また、このフォント描画コントローラ２５２は、ＣＰＵ１１からの指示や通知に従い、輪郭計算モジュール２５３に対しては、アフィン変換パラメ−タなどの情報を通知し、輪郭描画モジュール２５４に対しては、ワークメモリ２５６において巻数変化量の記憶領域として使用し得るビット幅（データサイズ）などの情報を通知し、塗り潰し・背景合成・転送モジュール２５５に対しては、ワークメモリ２５６において巻数の記憶領域として使用し得るビット幅（データサイズ）のほか、各画素の座標値の範囲などの情報を通知する。輪郭計算モジュール２５３、輪郭描画モジュール２５４、及び、塗り潰し・背景合成・転送モジュール２５５は、ＣＰＵ１１からフォント描画コントローラ２５２経由で通知された情報に従ってそれぞれの処理を実行する。
【００３０】
以下、輪郭計算モジュール２５３、輪郭描画モジュール２５４、及び、塗り潰し・背景合成・転送モジュール２５５について、それぞれ説明する。
（２−１）輪郭計算モジュール２５３
輪郭計算モジュール２５３は、外部バスインタフェースモジュール２５７及びメインバス２５８を介してフォントデータを受け取り、ＣＰＵ１１からフォント描画コントローラ２５２経由で通知されたアフィン変換パラメ−タを用いてアフィン変換を行う。そして、輪郭計算モジュール２５３は、アフィン変換によって得られた直線やベジエ曲線を細かく分割していき、これらの直線やベジエ曲線（つまり輪郭線）をワークメモリ２５６の描画領域に描画するための各画素のｘ座標値及びｙ座標値を算出する。このｘ座標値及びｙ座標値は、ワークメモリ２５６の描画領域におけるｘ-ｙ座標における座標値である。輪郭計算モジュール２５３は、４つのレジスタＰ０，Ｐ１，Ｐ２，Ｐ３を備えており、これらのレジスタを用いて後入れ先出し (ＬＩＦＯ；Last In First Out)でデータを保持するスタック機能を有している。これらのレジスタＰ０，Ｐ１，Ｐ２，Ｐ３の各々は、前述した制御点情報を記憶し得る容量を有している。そして、輪郭計算モジュール２５３は、ワークメモリ２５６に描画する文字の輪郭線上にある各画素の座標値を算出する際には、このスタック機能を利用する。また、輪郭計算モジュール２５３は、算出したｘ座標値及びｙ座標値のうちそれぞれの最小値及び最大値を、塗り潰し・背景合成・転送モジュール２５５に通知する。
【００３１】
さらに、輪郭計算モジュール２５３は、輪郭線の描画方向に基づいて、その輪郭線上にある各画素の巻数変化量も計算する。つまり、描画方向が下から上に向かう輪郭線上にある各画素の巻数変化量は「＋１」であるし、描画方向が上から下に向かう輪郭線上にある各画素の巻数変化量は「−１」であるし、描画方向が走査方向と同じ輪郭線上にある各画素の巻数変化量は「±０」である。輪郭計算モジュール２５３は、求めた座標値及び巻数変化量を、輪郭描画モジュール２５４に渡す。
【００３２】
（２−２）輪郭描画モジュール２５４
輪郭描画モジュール２５４は、ワークメモリ２５６上の描画領域において、輪郭計算モジュール２５３から渡された座標値に対応するメモリアドレスに描画色の画素を配列することで、フォントデータに基づく文字の輪郭線を描画する。このとき、輪郭描画モジュール２５４は、或る輪郭線を描画するために描画領域に配置した画素の位置に、他の輪郭線を描画するために既に配置された画素がある場合には、その位置で重なる２つの画素の巻数変化量を加算してワークメモリ２５６に書き込む。例えば、巻数変化量が「＋１」の画素が配置されている位置に、巻数変化量が「＋１」の画素を配置した場合、輪郭描画モジュール２５４は、その位置にある画素の巻数変化量を、１＋１＝「＋２」とする。また、巻数変化量が「＋１」の画素が配置されている位置に、巻数変化量が「−１」の画素を配置した場合、輪郭描画モジュール２５４は、その位置にある画素の巻数変化量を、１−１＝「±０」とする。また、巻数変化量が「±０」の画素が配置されている位置に、巻数変化量が「±０」の画素を配置した場合、輪郭描画モジュール２５４は、その位置にある画素の巻数変化量を、０＋０＝「±０」とする。これは、３つ以上の画素が同じ位置で重なる場合も同様である。
【００３３】
輪郭描画モジュール２５４は、文字の輪郭線上にある各画素の巻数変化量を加算するための複数のレジスタｒ１を備えている。このレジスタｒ１は合計で７つであり、１つのレジスタｒ１が１ビットの値を保持する。つまり、輪郭描画モジュール２５４は、最大で７ビットの巻数変化量を記憶することができる。ただし、輪郭描画モジュール２５４は、これら７つのレジスタｒ１のうち、ＣＰＵ１１からフォント描画コントローラ２５２経由で指定されたビット幅に相当する数のレジスタｒ１だけを使用して巻数変化量を記憶し、これによって巻数変化量を加算する。例えばビット幅として“１ビット”が指定されている場合には、輪郭描画モジュール２５４は１つのレジスタｒ１のみを使用するから、取り扱える巻数変化量は「０」、「１」（又は「−１」）の２通りである。また、ビット幅として“３ビット”が指定されている場合には、輪郭描画モジュール２５４は３つのレジスタｒ１を使用するから、取り扱える巻数変化量は、“０”，“＋１”，“＋２”，“＋３”，“−１”，“−２”，“−３”の７通りである。また、ビット幅として“７ビット”が指定されている場合には、輪郭描画モジュール２５４は７つのレジスタｒ１の全てを使用することができるから、取り扱える巻数変化量は１２７通りとなる。
【００３４】
巻数変化量を記憶するレジスタｒ１のビット幅として、これら１ビット、３ビット又は７ビットといった３種類のビット幅のうちいずれを用いるかということは、ＲＯＭ１２に記憶されたプログラムに記述されている。このプログラムの設計者は、これら１ビット、３ビット又は７ビットのうち、画像表示装置１がどのようなフォントデータを使用するかなどの使用条件から適切だと考えられる巻数変化量のビット幅を特定し、その特定したビット幅を指示する指示情報をこのプログラム作成時に記述しておく。ＣＰＵ１１は、ＲＯＭ１２からこのプログラムを読み出して実行する際には、プログラムに記述されている指示情報をフォントプロセッサ２５に渡す。フォントプロセッサ２５のフォント描画コントローラ２５２は、この指示情報が指示するビット幅を輪郭描画モジュール２５４に通知して、そのビット幅に合ったレジスタｒ１を使用するよう指定する。
【００３５】
（２−３）塗り潰し・背景合成・転送モジュール２５５
輪郭描画モジュール２５４によってワークメモリ２５６に輪郭線が描画されると、塗り潰し・背景合成・転送モジュール２５５は、その輪郭線をｘ軸方向の走査ラインに沿って走査し、その走査ラインと輪郭線とが交差する点を求める。このとき、塗り潰し・背景合成・転送モジュール２５５は、巻数ｗ（初期値は０）を保持しており、ワークメモリ２５６から読み出した巻数変化量を、この走査ライン上の各画素の位置において巻数ｗに加算する。
【００３６】
ここで、塗り潰し・背景合成・転送モジュール２５５は、描画領域における各画素の巻数ｗを記憶するための複数のレジスタｒ２を備えている。このレジスタｒ２は、上記の輪郭描画モジュール２５４のレジスタｒ２と同様に、合計で７つであり、１つのレジスタｒ２が１ビットの値を保持する。つまり、塗り潰し・背景合成・転送モジュール２５５は、最大で７ビットの巻数ｗを記憶することができる。ただし、塗り潰し・背景合成・転送モジュール２５５は、これら７つのレジスタｒ２のうち、ＣＰＵ１１からフォント描画コントローラ２５２経由で指定されたビット幅に相当する数のレジスタｒ２だけを使用して、巻数ｗを記憶する。例えばビット幅として“１ビット”が指定されている場合には、塗り潰し・背景合成・転送モジュール２５５は１つのレジスタｒ２のみを使用するから、取り扱える巻数ｗは「０」、「１」（又は「−１」）の２通りの値である。また、ビット幅として“３ビット”が指定されている場合には、塗り潰し・背景合成・転送モジュール２５５は３つのレジスタｒ２を使用するから、取り扱える巻数ｗは、“０”，“＋１”，“＋２”，“＋３”，“−１”，“−２”，“−３”の７通りである。また、ビット幅として“７ビット”が指定されている場合には、塗り潰し・背景合成・転送モジュール２５５は７つのレジスタｒ２の全てを使用することができるから、取り扱える巻数ｗは１２７通りの値となる。
【００３７】
巻数を記憶するレジスタｒ２のビット幅として、これら１ビット、３ビット又は７ビットといった３種類のビット幅のうちいずれを用いるかということは、上述した巻数変化量と同様に、ＲＯＭ１２に記憶されたプログラムに記述されている。このプログラムの設計者は、これら１ビット、３ビット又は７ビットのうち、画像表示装置１がどのようなフォントデータを使用するかなどの使用条件から適切だと考えられる巻数のビット幅を特定し、その特定したビット幅を指示する指示情報をこのプログラム作成時に記述しておく。ＣＰＵ１１は、ＲＯＭ１２からこのプログラムを読み出して実行する際には、プログラムに記述されている指示情報をフォントプロセッサ２５に渡す。フォントプロセッサ２５のフォント描画コントローラ２５２は、この指示情報が指示するビット幅を輪郭描画モジュール２５４に通知して、そのビット幅に合ったレジスタｒ２を使用するよう指定する。
【００３８】
そして、塗り潰し・背景合成・転送モジュール２５５は、各走査ラインにおいて、巻数ｗ＝０の区間においては何も処理を行わず、巻数ｗが０でない区間には描画色の画素を配置することで、輪郭線の内側の領域を描画色で塗り潰す。塗り潰し・背景合成・転送モジュール２５５は、このようにして輪郭線の内側の領域を塗りつぶして文字画像を生成すると、必要に応じて、この文字画像を所定の背景画像に合成した画像データを生成してから、この画像データの転送を指示する転送信号をＣＰＵ１１に通知する。これに応じて、ＣＰＵ１１は、塗り潰し・背景合成・転送モジュール２５５から転送されてくる画像データをＶＲＡＭ１４上に書き込む。ＶＲＡＭ１４に書き込まれた画像データは、ＣＰＵ１１の指示のもとで、表示制御装置１６に供給される。表示制御装置１６は、記憶性液晶表示体１５を制御して上記画像データに基づいた画像を表示させる。
【００３９】
（３）実施形態の動作
次に、実施形態の動作を説明する。
（３−１）輪郭計算モジュール２５３のメインルーチン
図７は、輪郭計算モジュール２５３が実行するメインルーチンを説明するフローチャートである。輪郭計算モジュール２５３は、外部バスインタフェースモジュール２５７及びメインバス２５８経由で受け取ったフォントデータに含まれる制御点情報を、その制御点番号が小さい順から順次受け取る。輪郭計算モジュール２５３は、受け取った制御点情報のうち、始点となるオンカーブ制御点の制御点情報として、制御点番号が最少のオンカーブ制御点の制御点情報を取り出し、また、終点となるオンカーブ制御点の制御点情報として、上記の最少の制御点番号の次に小さいオンカーブ制御点の制御点情報を取り出す。輪郭計算モジュール２５３は、前述したように４つのレジスタＰ０〜Ｐ３を備えており、始点となるオンカーブ制御点の制御点情報を、４つのレジスタＰ０〜Ｐ３のうちのレジスタＰ０に記憶し、終点となるオンカーブ制御点の制御点情報を、レジスタＰ３に記憶する（ステップＳ１）。
【００４０】
次に、輪郭計算モジュール２５３は、上記の始点と終点のオンカーブ制御点の間における直線又はベジエ曲線の種類を判定する（ステップＳ２）。これが直線である場合には（ステップＳ２；直線）、輪郭計算モジュール２５３は、後述する図８の直線分割ルーチンを実行する（ステップＳ３）。また、２次ベジエ曲線である場合には（ステップＳ２；２次ベジエ曲線）、輪郭計算モジュール２５３は、始点と終点の間にあるオフカーブ制御点の制御点情報をレジスタＰ１に記憶し（ステップＳ４）、後述する図９の２次ベジエ曲線分割ルーチンを実行する（ステップＳ５）。また、３次ベジエ曲線である場合には（ステップＳ２；３次ベジエ曲線）、輪郭計算モジュール２５３は、始点と終点の間にあるオフカーブ制御点のうち、制御点番号が小さい方のオフカーブ制御点の制御点情報をレジスタＰ１に記憶し、制御点番号が大きい方のオフカーブ制御点をレジスタＰ２に記憶する（ステップＳ６）。そして、輪郭計算モジュール２５３は、後述する図１０の３次ベジエ曲線分割ルーチンを実行する（ステップＳ７）。
【００４１】
そして、輪郭計算モジュール２５３は、ステップＳ３，Ｓ５，Ｓ７のいずれかの処理を終えると、再びステップＳ１に戻り、今度は上記の処理で終点として取り扱っていたオンカーブ制御点の制御点情報を、始点の制御点情報としてレジスタＰ０に記憶し、その始点の制御点番号の次に小さいオンカーブ制御点の制御点情報を、終点の制御点情報としてレジスタＰ３に記憶して、上記の処理を繰り返す。このようにして、輪郭計算モジュール２５３は、受け取ったフォントデータに含まれる全ての制御点情報について上記の処理を行う。
【００４２】
（３−２）輪郭計算モジュール２５３の直線分割ルーチン
図８は、輪郭計算モジュール２５３が実行する直線分割ルーチンを説明するフローチャートである。図８において、輪郭計算モジュール２５３は、レジスタＰ０に記憶した制御点情報が示す制御点と、レジスタＰ３に記憶した制御点情報が示す制御点との間の、ワークメモリ２５６の描画領域上の距離を算出し、その距離が所定の規定値以下か否かを判断する（ステップＳ１１）。このとき用いる規定値は、例えば描画領域における１画素の直径に相当する大きさである。なお、図８においては、例えばレジスタＰ０に記憶した制御点情報が示す制御点とレジスタＰ３に記憶した制御点情報が示す制御点との間の距離のことを、「Ｐ０とＰ３との距離」と表現している（後述する図９以降において同じ）。
【００４３】
ステップＳ１１にて算出した距離が規定値を超える場合には（ステップＳ１１；ＮＯ）、２つの制御点間の距離は大きいから、その２点間の直線を描画するにはその直線をさらに小さく分割する必要がある、ということである。この場合、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出して、それをスタック機能により保持する（ステップＳ１２）。そして、輪郭計算モジュール２５３は、レジスタＰ０に記憶した制御点情報が表す制御点と、それまでレジスタＰ３に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ３に記憶する（ステップＳ１３）。そして、輪郭計算モジュール２５３は、再度、ステップＳ１１の処理に戻る。つまり、輪郭計算モジュール２５３は、２つの制御点間の距離が十分小さくなるまで、２つの制御点間の直線を１／２に分割していく処理を繰り返すわけである。
【００４４】
一方、ステップＳ１１において、算出した距離が規定値以下の場合には（ステップＳ１１；ＹＥＳ）、２つの制御点間の距離は十分に小さいことを意味している。この場合、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出し、その制御点情報から、ワークメモリ２５６の描画領域上のｘ座標値及びｙ座標値を算出するとともに、始点から終点に向かう方向（描画方向）に基づいて、その始点における巻数変化量を算出する。この巻数変化量の算出処理については後で詳述する。そして、輪郭計算モジュール２５３は、算出した座標値及び巻数変化量を、後段のモジュールつまり輪郭描画モジュール２５４に出力する（ステップＳ１４）。
【００４５】
次に、輪郭計算モジュール２５３は、スタック機能により保持している制御点情報があるか否かを判断する（ステップＳ１５）。保持している制御点情報があれば（ステップＳ１５；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に記憶していた制御点情報をレジスタＰ０にコピーして、そのレジスタＰ０に記憶する（ステップＳ１６）。そして、輪郭計算モジュール２５３は、スタック機能により保持していた制御点情報を取り出してレジスタＰ３に記憶する（ステップＳ１７）。そして、輪郭計算モジュール２５３は、再度、ステップＳ１１の処理に戻って、上記の処理を繰り返す。最終的にステップＳ１５において、輪郭計算モジュール２５３は保持している制御点情報が無いと判断すると（ステップＳ１５；ＮＯ）、直線分割ルーチンを終了する。
【００４６】
（３−３）輪郭計算モジュール２５３の２次ベジエ曲線分割ルーチン
図９は、輪郭計算モジュール２５３が実行する２次ベジエ曲線分割ルーチンを説明するフローチャートである。図９において、輪郭計算モジュール２５３は、レジスタＰ０に記憶した制御点情報が示す制御点とレジスタＰ１に記憶した制御点情報が示す制御点との間の距離、レジスタＰ１に記憶した制御点情報が示す制御点とレジスタＰ３に記憶した制御点情報が示す制御点との間の距離、及び、レジスタＰ０に記憶した制御点情報が示す制御点とレジスタＰ３に記憶した制御点情報が示す制御点との間の距離をそれぞれ算出し、各々の距離が所定の規定値以下か否かを判断する（ステップＳ２１）。このとき用いる規定値は、上記と同じく、例えば１画素の直径に相当する大きさである。
【００４７】
これらの距離のいずれかが規定値を超える場合には（ステップＳ２１；ＮＯ）、これら３つの制御点間の距離のいずれかが大きいから、２次ベジエ曲線を分割する必要があるということである。この場合、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出して、それをスタック機能により保持する（ステップＳ２２）。そして、輪郭計算モジュール２５３は、レジスタＰ１に記憶した制御点情報が表す制御点と、それまでレジスタＰ３に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ３に記憶する（ステップＳ２３）。そして、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出して、それをスタック機能により保持する（ステップＳ２４）。次いで、輪郭計算モジュール２５３は、レジスタＰ０に記憶した制御点情報が表す制御点と、レジスタＰ１に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ１に記憶する（ステップＳ２５）。次いで、輪郭計算モジュール２５３は、レジスタＰ１に記憶した制御点情報が表す制御点と、レジスタＰ３に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ３に記憶する（ステップＳ２６）。そして、輪郭計算モジュール２５３は、再度、ステップＳ２１の処理に戻る。
【００４８】
一方、ステップＳ２１において、算出した距離が全て規定値以下の場合には（ステップＳ２１；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に記憶しておいた制御点情報を取り出し、その制御点情報から、ワークメモリ２５６の描画領域上のｘ座標値及びｙ座標値を算出するとともに、始点から終点に向かう方向（描画方向）に基づいて、その始点における巻数変化量を算出する。この巻数変化量の算出処理については後で詳述する。そして、輪郭計算モジュール２５３は、算出した座標値及び巻数変化量を、後段のモジュールつまり輪郭描画モジュール２５４に出力する（ステップＳ２７）。
【００４９】
次に、輪郭計算モジュール２５３は、スタック機能により保持している制御点情報があるか否かを判断する（ステップＳ２８）。ここで、保持している制御点情報があれば（ステップＳ２８；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に記憶していた制御点情報をレジスタＰ０にコピーしてそのレジスタＰ０に記憶する（ステップＳ２９）。そして、輪郭計算モジュール２５３は、スタック機能により保持していた２つの制御点情報を順次取り出して、それぞれレジスタＰ１，Ｐ３に記憶する（ステップＳ３０）。そして、輪郭計算モジュール２５３は、再度、ステップＳ２１の処理に戻って、上記の処理を繰り返す。最終的にステップＳ２８において、輪郭計算モジュール２５３は保持している制御点情報が無いと判断すると（ステップＳ２８；ＮＯ）、２次ベジエ曲線分割ルーチンを終了する。
【００５０】
（３−４）輪郭計算モジュール２５３の３次ベジエ曲線分割ルーチン
図１０は、輪郭計算モジュール２５３が実行する３次ベジエ曲線分割ルーチンを説明するフローチャートである。図１０において、輪郭計算モジュール２５３は、レジスタＰ０に記憶した制御点情報が表す制御点とレジスタＰ１に記憶した制御点情報が表す制御点との間の距離、レジスタＰ１に記憶した制御点情報が表す制御点とレジスタＰ２に記憶した制御点情報が表す制御点との間の距離、レジスタＰ２に記憶した制御点情報が表す制御点とレジスタＰ３に記憶した制御点情報が表す制御点との間の距離、及び、レジスタＰ０に記憶した制御点情報が表す制御点とレジスタＰ３に記憶した制御点情報が表す制御点との間の距離をそれぞれ算出し、各々の距離が所定の規定値以下か否かを判断する（ステップＳ３１）。このとき用いる規定値は、上記と同じく、例えば１画素の直径に相当する大きさである。
【００５１】
これらの距離のいずれかが規定値を超える場合には（ステップＳ３１；ＮＯ）、これら３つの制御点間の距離のいずれかが大きいから、３次ベジエ曲線を分割する必要があるということである。この場合、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出して、それをスタック機能により保持する（ステップＳ３２）。そして、輪郭計算モジュール２５３は、レジスタＰ２に記憶した制御点情報が表す制御点と、それまでレジスタＰ３に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ３に記憶する（ステップＳ３３）。そして、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出して、それをスタック機能により保持する（ステップＳ３４）。
【００５２】
次いで、輪郭計算モジュール２５３は、レジスタＰ１に記憶した制御点情報が表す制御点と、レジスタＰ２に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ２に記憶する（ステップＳ３５）。次いで、輪郭計算モジュール２５３は、レジスタＰ０に記憶した制御点情報が表す制御点と、レジスタＰ１に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ１に記憶する（ステップＳ３６）。次いで、輪郭計算モジュール２５３は、レジスタＰ２に記憶した制御点情報が表す制御点と、レジスタＰ３に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ３に記憶する（ステップＳ３７）。そして、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出して、それをスタック機能により保持する（ステップＳ３８）。
【００５３】
次いで、輪郭計算モジュール２５３は、レジスタＰ１に記憶した制御点情報が表す制御点と、レジスタＰ２に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ２に記憶する（ステップＳ３９）。次いで、輪郭計算モジュール２５３は、レジスタＰ２に記憶した制御点情報が表す制御点と、レジスタＰ３に記憶していた制御点情報が表す制御点との中点を求め、その中点の制御点情報を生成してレジスタＰ３に記憶する（ステップＳ４０）。そして、輪郭計算モジュール２５３は、再度、ステップＳ３１の処理に戻る。
【００５４】
ステップＳ３１において、算出した距離が全て規定値以下の場合には（ステップＳ３１；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を取り出し、その制御点情報から、ワークメモリ２５６の描画領域上のｘ座標値及びｙ座標値を算出するとともに、始点から終点に向かう方向（描画方向）に基づいて、その始点における巻数変化量を算出する。この巻数変化量の算出処理については後で詳述する。そして、輪郭計算モジュール２５３は、算出した座標値及び巻数変化量を、後段のモジュールつまり輪郭描画モジュール２５４に出力する（ステップＳ４１）。
【００５５】
次に、輪郭計算モジュール２５３は、スタック機能により保持している制御点情報があるか否かを判断する（ステップＳ４２）。保持している制御点情報があれば（ステップＳ４２；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に記憶していた制御点情報をレジスタＰ０にコピーする（ステップＳ４３）。そして、輪郭計算モジュール２５３は、スタック機能により保持していた３つの制御点情報を順次取り出して、それぞれレジスタＰ１，Ｐ２，Ｐ３に記憶する（ステップＳ４４）。そして、輪郭計算モジュール２５３は、再度、ステップＳ３１の処理に戻って、上記の処理を繰り返す。最終的にステップＳ４２において、輪郭計算モジュール２５３は保持している制御点情報が無いと判断すると（ステップＳ４２；ＮＯ）、３次ベジエ曲線分割ルーチンを終了する。
【００５６】
（３−５）輪郭計算モジュール２５３の巻数変化量算出ルーチン
次に、図１１は、輪郭計算モジュール２５３の巻数変化量算出ルーチンを説明するフローチャートである。輪郭計算モジュール２５３は、図８のステップＳ１４、図９のステップＳ２７及び図１０のステップＳ４１において、レジスタＰ３に記憶した制御点情報からｘ座標値及びｙ座標値を算出した際に、それまでの最小値に相当するｘ座標値及びｙ座標値を自身の図示せぬレジスタなどに記憶している。そして、図１１において、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報が表す制御点のｘ座標値が、それまでに輪郭計算モジュール２５３に記憶されていたｘ座標値の最小値よりも小さいか否かを判断する（ステップＳ５１）。ここで、レジスタＰ３に保持されている制御点情報のｘ座標値が、それまでに記憶されていたｘ座標値の最小値よりも小さい場合には（ステップＳ５１；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報のｘ座標値を、ｘ座標値の最小値として記憶し（ステップＳ５２）、ステップＳ５５の処理に移る。
【００５７】
一方、レジスタＰ３に保持されている制御点情報のｘ座標値が、それまでに記憶されていたｘ座標値の最小値以上の場合には（ステップＳ５１；ＮＯ）、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報のｘ座標値が、それまでに記憶されていたｘ座標値の最大値よりも大きいか否かを判断する（ステップＳ５３）。ここで、レジスタＰ３に保持されている制御点情報のｘ座標値が、それまでに記憶されていたｘ座標値の最大値よりも大きい場合には（ステップＳ５３；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報のｘ座標値を、ｘ座標値の最大値として記憶し（ステップＳ５４）、ステップＳ５５の処理に移る。また、そうではない場合には（ステップＳ５３；ＮＯ）、輪郭計算モジュール２５３は、そのままステップＳ５５の処理に移る。
【００５８】
次に、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報のｙ座標値が、それまでに輪郭計算モジュール２５３の記憶領域に記憶されていたｙ座標値の最小値よりも小さいか否かを判断する（ステップＳ５５）。ここで、レジスタＰ３に保持されている制御点情報のｙ座標値が、それまでに記憶されていたｙ座標値の最小値よりも小さい場合には（ステップＳ５５；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報のｙ座標値を、ｙ座標値の最小値として記憶し（ステップＳ５６）、ステップＳ５９の処理に移る。
【００５９】
一方、レジスタＰ３に保持されている制御点情報のｙ座標値が、それまでに記憶されていたｙ座標値の最小値以上の場合には（ステップＳ５５；ＮＯ）、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報のｙ座標値が、それまでに記憶されていたｙ座標値の最大値よりも大きいか否かを判断する（ステップＳ５７）。ここで、レジスタＰ３に保持されている制御点情報のｙ座標値が、それまでに記憶されていたｙ座標値の最大値よりも大きい場合には（ステップＳ５７；ＹＥＳ）、輪郭計算モジュール２５３は、レジスタＰ３に保持されている制御点情報のｙ座標値を、ｙ座標値の最大値として記憶し（ステップＳ５８）、ステップＳ５９の処理に移る。また、そうではない場合には（ステップＳ５７；ＮＯ）、輪郭計算モジュール２５３は、そのままステップＳ５９の処理に移る。
【００６０】
次に、輪郭計算モジュール２５３は、前回処理した制御点のｙ座標値と、今回処理する制御点のｙ座標値とを比較する（ステップＳ５９）。その結果、前回の制御点のｙ座標値よりも今回の制御点のｙ座標値の方が大きい場合には（ステップＳ５９；今回のほうが大きい）、輪郭線の描画方向が下から上に向かうことを意味しているから、輪郭計算モジュール２５３は、その制御点に相当する画素の巻数変化量を「＋１」とする（ステップＳ６０）。また、今回の制御点のｙ座標値よりも前回の制御点のｙ座標値の方が大きい場合には（ステップＳ５９；前回のほうが大きい）、輪郭線の描画方向が上から下に向かうことを意味しているから、輪郭計算モジュール２５３は、その制御点に相当する画素の巻数変化量を「−１」とする（ステップＳ６１）。また、前回の制御点のｙ座標値と今回の制御点のｙ座標値とが等しい場合には（ステップＳ５９；等しい）、輪郭線の描画方向はｘ軸方向であることを意味しているから、輪郭計算モジュール２５３は、その制御点に相当する画素の巻数変化量を「±０」とする（ステップＳ６２）。そして、輪郭計算モジュール２５３は、今回のｙ座標値を次回のｙ座標値との比較用として、前回のｙ座標値に代えて自身のレジスタに記憶する（ステップＳ６３）。輪郭計算モジュール２５３は、このようにして求めた巻数変化量を、ｘ座標値及びｙ座標値とともに、輪郭描画モジュール２５４に出力する。
【００６１】
（３−６）輪郭描画モジュール２５４の動作
輪郭描画モジュール２５４は、ワークメモリ２５６上の描画領域において、輪郭計算モジュール２５３から渡された座標値に対応するメモリアドレスに描画色の画素を配置することで、文字の輪郭線を描画する。このとき、輪郭描画モジュール２５４は、或る輪郭線を描画するために描画領域に配置した画素の位置に、他の輪郭線を描画するために既に配置された画素がある場合には、その位置で重なる２つの画素の巻数変化量を加算し、これをワークメモリ２５６に記憶する。この加算処理に使用するレジスタｒ１は、輪郭描画モジュール２５４が有する７つのレジスタｒ１のうち、ＣＰＵ１１からフォント描画コントローラ２５２経由で通知されたビット幅に応じた数のレジスタだけである。
【００６２】
（３−７）塗り潰し・背景合成・転送モジュール２５５の動作
次に、図１２は、塗り潰し・背景合成・転送モジュール２５５の塗り潰しルーチンを説明するフローチャートである。図１２において、まず、塗り潰し・背景合成・転送モジュール２５５は、変数“ｙ”に、輪郭計算モジュール２５３から通知されたｙ座標値の最小値を代入する（ステップＳ７１）。次に、塗り潰し・背景合成・転送モジュール２５５は、変数“ｙ”が、輪郭計算モジュール２５３から通知されたｙ座標値の最大値以下であるか否かを判断し（ステップＳ７２）、それ以下であるなら（ステップＳ７２；ＹＥＳ）、巻数ｗに初期値「０」を代入する（ステップＳ７３）。
【００６３】
次に、塗り潰し・背景合成・転送モジュール２５５は、変数“ｘ”に、輪郭計算モジュール２５３から通知されたｘ座標値の最小値を代入する（ステップＳ７４）。そして、塗り潰し・背景合成・転送モジュール２５５は、その変数“ｘ”が、輪郭計算モジュール２５３から通知されたｘ座標値の最大値以下であるか否かを判断する（ステップＳ７５）。変数“ｘ”が、ｘ座標値の最大値以下なら（ステップＳ７５；ＹＥＳ）、ワークメモリ２５６の描画領域に記憶されている或る画素の座標値とその画素の巻数変化量とを読み出し（ステップＳ７７）、自身のバッファに書き込む（ステップＳ７８）。そして、塗り潰し・背景合成・転送モジュール２５５は、バッファに書き込んだ情報から巻数変化量を取得して（ステップＳ７９）、それを巻数ｗに加算して自身のレジスタｒ２に書き込む（ステップＳ８０）。この加算・書込処理に使用するレジスタｒ２は、塗り潰し・背景合成・転送モジュール２５５が有する７つのレジスタｒ２のうち、ＣＰＵ１１からフォント描画コントローラ２５２経由で通知されたビット幅に応じた数のレジスタだけである。
【００６４】
次に、塗り潰し・背景合成・転送モジュール２５５は、その加算した結果、得られた巻数ｗが「０」であるか否かを判断する（ステップＳ８１）。巻数ｗが「０」であるなら（ステップＳ８１；ＹＥＳ）、塗り潰し・背景合成・転送モジュール２５５は、塗り潰し処理を行うことなく、変数“ｘ”に１を加算して（ステップＳ８３）、ステップＳ７５の処理に戻る。一方、巻数ｗが「０」でないなら（ステップＳ８１；ＮＯ）、塗り潰し・背景合成・転送モジュール２５５は、バッファ上のその座標値の位置に描画色の画素を配置して（ステップＳ８２）、ステップＳ８３の処理に移行する。そして、塗り潰し・背景合成・転送モジュール２５５は、変数“ｘ”に１を加算して（ステップＳ８３）、ステップＳ７５の処理に戻る。
【００６５】
以降、塗り潰し・背景合成・転送モジュール２５５は、ステップＳ８３にて変数“ｘ”の値を１つずつ増加させながら、ステップＳ７５，Ｓ７７〜ステップＳ８３の処理を繰り返し行うことで、ワークメモリ２５６上の描画領域を走査ライン単位で走査し、その走査ライン上にある各画素について、指定されたビット幅の巻数ｗを求めてそれを記憶する。そして、塗り潰し・背景合成・転送モジュール２５５は、記憶された巻数が「０」であるかそれ以外の値であるかということに基づいて、走査ライン上において輪郭線の内側の区間を特定し、特定した区間に描画色の画素を配置して当該領域を描画色で塗り潰す。そして、塗り潰し・背景合成・転送モジュール２５５は、ステップＳ７６にて変数“ｙ”の値を１つずつ増加させることで、上記のような走査ライン単位の処理を、ワークメモリ２５６の描画領域における全走査ラインについて実行する。これにより、塗り潰し・背景合成・転送モジュール２５５は、描画領域における輪郭線の内側の領域を全て描画色で塗り潰す。
【００６６】
以上説明した実施形態によれば、変数（巻数変化量及び巻数）を記憶するレジスタｒ１，ｒ２のビット幅として予め用意された複数種類のビット幅のうち、ＲＯＭ１２に記憶されたプログラムの設計者が上記変数のビット幅として必要十分である想定した、適切なものが使用される。よって、そのビット幅が固定的である従来技術と比べると、フォントデータの特性に応じて柔軟にビット幅を変更し得る。
【００６７】
このように、変数のビット幅として必要十分なものが使用されるから、ワークメモリ２５６の使用に無駄がなくなり、その使用効率も向上する。例えばワークメモリに収まりきらない大きなデータサイズのフォントデータの場合には、そのフォントデータを複数のブロックに分割するなどといった処理を行うが、本実施形態によれば、ワークメモリ２５６の使用に無駄がなくなるから、大きなデータサイズのフォントデータを分割することなく描画することも可能となる。
【００６８】
また、変数（巻数変化量及び巻数）のビット幅が１ビットの場合は、その変数が採り得る値は２通りとなるが、これは、イーブン・オッド方法（奇偶判定方法）と同じである。つまり、本実施形態によれば、変数のビット幅として１ビットを指定したときには、イーブン・オッド方法（奇偶判定方法）による塗り潰しを実現することができ、変数のビット幅として３ビット又は７ビットを指定したときには、ノンゼロ・ワインディング・ナンバ方法（非ゼロ塗り潰し方法）を実現することができる。
【００６９】
（４）変形例
上述した実施形態の内容を次のように変形してもよい。
（４−１）変形例１
輪郭計算モジュール２５３は、図７〜９の処理に代えて、図１３に示した処理を行ってもよい。この図１３の処理は、直線、２次ベジエ曲線及び３次ベジエ曲線の分割処理を、全て３次ベジエ曲線の分割処理で共用する方法である。このようにすれば、フォントプロセッサ２５（特に輪郭計算モジュール２５３）の実装面積を小さくすることができる。
図１３においては、輪郭計算モジュール２５３は、フォントデータに含まれる制御点情報をその制御点番号が小さい順から順次受け取る。輪郭計算モジュール２５３は、受け取った制御点情報のうち、始点となるオンカーブ制御点の制御点情報として、制御点番号が最少のオンカーブ制御点の制御点情報を取り出し、また、終点となるオンカーブ制御点の制御点情報として、上記の最少の制御点番号の次に小さいオンカーブ制御点の制御点情報を取り出す。そして、輪郭計算モジュール２５３は、始点となるオンカーブ制御点の制御点情報を、４つのレジスタＰ０〜Ｐ３のうちのレジスタＰ０に記憶し、終点となるオンカーブ制御点の制御点情報を、レジスタＰ３に記憶する（ステップＳ９１）。
【００７０】
次に、輪郭計算モジュール２５３は、上記の始点と終点のオンカーブ制御点の間における直線又はベジエ曲線の種類を判定する（ステップＳ９２）。これが直線である場合には（ステップＳ９２；直線）、輪郭計算モジュール２５３は、レジスタＰ０に記憶した制御点情報を、レジスタＰ１にコピーして記憶する（ステップＳ９３）。次に、輪郭計算モジュール２５３は、レジスタＰ３に記憶した制御点情報を、レジスタＰ２にコピーして記憶する（ステップＳ９４）。
【００７１】
また、ステップＳ９２の判定において、２次ベジエ曲線と判定された場合には（ステップＳ９２；２次ベジエ曲線）、輪郭計算モジュール２５３は、始点と終点の間にあるオフカーブ制御点の制御点情報をレジスタＰ１に記憶する（ステップＳ９６）。そして、輪郭計算モジュール２５３は、レジスタＰ１に記憶した制御点情報に２を乗算し、それにレジスタＰ３に記憶した制御点情報を加算したものを３で除算し、それをレジスタＰ２に記憶する（ステップＳ９７）。さらに、輪郭計算モジュール２５３は、レジスタＰ１に記憶した制御点情報に２を乗算し、それにレジスタＰ０に記憶した制御点情報を加算したものを３で除算し、それをレジスタＰ１に記憶する（ステップＳ９８）。
【００７２】
また、ステップＳ９２の判定において、３次ベジエ曲線と判定された場合には（ステップＳ９２；３次ベジエ曲線）、輪郭計算モジュール２５３は、始点と終点の間にあるオフカーブ制御点のうち、制御点番号が小さいオフカーブ制御点の制御点情報をレジスタＰ１に記憶し、制御点番号が大きいオフカーブ制御点をレジスタＰ２に記憶する（ステップＳ９９）。そして、輪郭計算モジュール２５３は、ステップＳ９４，Ｓ９８，Ｓ９９のいずれかの処理を終えると、前述した図１０の３次ベジエ曲線の分割ルーチンを実行する（ステップＳ９５）。
このようにすれば、直線、２次ベジエ曲線及び３次ベジエ曲線の分割処理を、全て３次ベジエ曲線の分割処理にて行うことが可能となる。
【００７３】
（４−２）変形例２
輪郭計算モジュール２５３がフォントデータに基づいてワークメモリ２５６の描画領域における輪郭線の位置を計算し、輪郭描画モジュール２５４がその計算した位置に基づいて輪郭線を描画した場合に、その輪郭線が描画領域の端からはみ出る場合がある。
そこで、輪郭描画モジュール２５４は、計算した位置に基づいて輪郭線を描画した場合に、その輪郭線が描画領域の端からはみ出るか否かを判断する。そして、その判断の結果、輪郭線が、描画領域の走査ラインが延びる方向にはみ出る場合には、輪郭描画モジュール２５４は、はみ出た輪郭線の位置を描画領域の端の位置とする。また、上記判断の結果、輪郭線が、描画領域の走査ラインが延びる方向に直交する方向にはみ出る場合には、輪郭描画モジュール２５４は、はみ出た輪郭線を除去する。
【００７４】
ここで、図１４は、この変形例２の処理を例示する図である。
図１４に示すように、描画領域ａ１に文字「Ａ」を描画したとき、点線で示した輪郭線ｌ２，ｌ３は、描画領域ａ１の走査方向（ｘ軸方向）にはみ出ている。この場合、輪郭描画モジュール２５４は、はみ出た輪郭線ｌ２，ｌ３の位置の座標値のうち、ｘ座標値はそのままで、ｙ座標値を描画領域の端に相当するｙ座標値とする。これにより、輪郭線ｌ２，ｌ３は、実線で示した輪郭線ｌ２１，ｌ３１となる。一方、輪郭線ｌ１は、描画領域ａ１の走査方向に直交する方向（ｙ軸方向）にはみ出ている。この場合、輪郭描画モジュール２５４は、はみ出た輪郭線ｌ１を除去する。これにより、輪郭線ｌ１は消滅してしまうが、走査方向がｘ軸方向であるから、塗り潰し・背景合成・転送モジュール２５５は、この輪郭線ｌ１の有る無しに関わらず、「Ａ」という文字の輪郭線の内側を塗り潰すことができる。
これにより、フォントデータに基づいて描画領域における輪郭線の位置を計算し、計算した位置に基づいて輪郭線を描画した場合に当該輪郭線が描画領域の端からはみ出たとしても、その輪郭線の内側の領域を塗り潰すことが可能となる。
【００７５】
（４−３）変形例３
実施形態で説明したようにプログラムの設計者が適切だと考えたビット幅であっても、輪郭描画モジュール２５４及び塗り潰し・背景合成・転送モジュール２５５が巻数変化量及び巻数を求める際には、そのビット幅をオーバーフローすることもあり得る。このような場合、従来は処理を停止させるなどのエラー処理を行うが、それでは、描画処理が滞ってしまい、望ましくない場合もある。そこで、輪郭描画モジュール２５４及び塗り潰し・背景合成・転送モジュール２５５は、変数（巻数変化量又は巻数）が、指定されたデータサイズをオーバーフローしたときには、その変数の値を零（「０」）に戻すラップアラウンド処理を行って処理を継続する。このようにした場合には描画処理を停止させずに済むが、巻数が意図しないのに「０」になってしまい、輪郭線の内側の一部の領域が塗り潰されないという事態が発生することもある。ただし、変数がデータサイズをオーバーフローするような領域は微少な領域であることが多いから、画質欠陥などの大きな問題とはならない。
なお、変数のビット幅の種類は、実施形態のような１ビット、３ビット及び７ビットの例に限定されず、これら以外のビット幅であってもよいし、また、その種類も３種類以外であってもよい。
【００７６】
（４−４）変形例４
実施形態では、輪郭描画モジュール２５４が巻数変化量を求める際のレジスタｒ１のビット幅と、塗り潰し・背景合成・転送モジュール２５５が巻数を求める際のレジスタｒ２のビット幅とをそれぞれ別々に指定するようにしていた。ただし、巻数変化量と巻数とは、レジスタのビット幅としてどの程度を用意しておけばいいかという観点から見れば、いずれも同種の変数であるから、巻数変化量と巻数とを同時に又は一体的に指定するようにしてもよい。
【００７７】
（４−５）変形例５
実施形態では、巻数のデータサイズを指示する指示情報がプログラムに記述されており、フォント描画コントローラ２５２が、この指示情報をＣＰＵ１１から受け取り、指示情報が指示するデータサイズを巻数のデータサイズとして指定していた。これを次のように変形してもよい。
例えばフォントデータに、巻数のデータサイズを指示する指示情報が含まれており、フォント描画コントローラ２５２が、フォントデータに含まれている指示情報が指示するデータサイズを巻数のデータサイズとして指定してもよい。このようにすれば、フォントデータの設計者が巻数のビット幅を任意に指定することができる。
また、ユーザがキー２２などの操作部を操作して巻数のデータサイズを指示し、フォント描画コントローラ２５２が、指示されたデータサイズを巻数のデータサイズとして指定するようにしてもよい。このようにすれば、ユーザが巻数のビット幅を任意に指定することができる。
【００７８】
（４−６）変形例６
ワークメモリ２５６を、複数のワークメモリに分割し、異なるモジュールから独立したアクセスが可能となるように構成してもよい。このようにすれば、これらの複数のワークメモリを交互に使用することで処理を高速化を図ることも可能となる。また、上述した実施形態では、輪郭計算モジュール２５３と、輪郭描画モジュール２５４と、塗り潰し・背景合成・転送モジュール２５５とは別々のモジュールであったが、これらに代えて、同様の機能を実現する１つの専用モジュールを用いてもよい。
【００７９】
（４−７）変形例７
上述した実施形態では、輪郭線の内側が塗り潰された文字画像を記憶性液晶表示体１５に表示する場合について説明したが、塗り潰された結果の画像を出力するものであればなんでもよい。例えば記録用紙等に画像を印刷するような構成としてもよい。つまり、実施形態における表示制御装置１６を印刷制御部に置き換え、記憶性液晶表示体１５を印刷部に置き換える構成とする。印刷制御部は、印刷部を制御して用紙に画像を印刷させるよう制御する。印刷部は、熱転写方式やインクジェット方式等を用いて記録用紙に画像を印刷する。具体的には、例えば記録用紙１枚に印刷する文字に相当する画像データがＶＲＡＭ１４上に書き込まれる。そして、ＣＰＵ１１は、転送信号を受け取り、ＶＲＡＭ１４に格納された画像データが表す画像を印刷制御部に転送し、画像の印刷を指示する。この指示に応じて、印刷制御部は転送された画像データが表す文字を、印刷部に印刷させる。
要するに、フォントプロセッサ２５と、そのフォントプロセッサ２５により輪郭線の内側の領域が描画色で塗り潰された結果を文字画像として出力する出力手段とを備えた画像出力装置であれば、本発明を適用することができる。
【００８０】
（４−８）変形例８
上述した実施形態では、描画する文字として「口」や「Ｄ」の場合について説明したが、この「文字」は、平仮名、片仮名、漢字等の日本語であってもよく、アルファベット等の外国語であってもよい。さらに、「＋」や「−」等の記号や、円や多角形等の図形も文字に含めるものとする。つまり、フォントデータを取得し、それに基づいて文字を描画するのであれば、本発明を適用することができる。
【００８１】
（４−９）変形例９
本発明に係る描画装置又は画像出力装置は、例えば単体のパーソナルコンピュータに適用することもできるし、また、例えばＰＤＡ（Personal Digital Assistants）のようなタブレット型のコンピュータに適用することも可能である。また、上述した各フローチャートに示すような手順が記述されたプログラムや、フォントデータ（コンターデータ）は、磁気テープ、磁気ディスク、フロッピーディスク（登録商標）、光記録媒体、光磁気記録媒体、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＲＡＭなどの記録媒体に記録した状態で提供し得る。
【００８２】
また、実施形態では、輪郭計算モジュール２５３と、輪郭描画モジュール２５４と、塗り潰し・背景合成・転送モジュール２５５とを、それぞれ別々のハードウェアによって実現していたが、これらの一部又は全部をＣＰＵ１１が実行するソフトウェアの機能として実現することも可能である。つまり、コンピュータを、文字の輪郭データに基づいて文字の輪郭線を描画領域に描画する輪郭描画手段と、前記輪郭線が描画された前記描画領域を所定の走査ラインに沿って走査したときに当該輪郭線の描画方向に応じて増減する巻数のデータサイズを指定する指定手段と、前記輪郭線が描画された前記描画領域を前記走査ライン単位で走査し、各々の前記走査ライン上にある各画素について、前記指定手段により指定されたデータサイズの巻数を求めて記憶する巻数記憶手段と、前記巻数記憶手段によって記憶された巻数に基づいて前記描画領域における前記輪郭線の内側の領域を特定し、特定した領域に描画色の画素を配置して当該領域を描画色で塗り潰す塗り潰し手段として機能させるプログラムを、本発明に係るプログラムとして構成してもよい。
【図面の簡単な説明】
【００８３】
【図１】制御点と、画像表示装置に表示される画像の例を説明する図である。
【図２】制御点を結ぶコンターを説明する図である。
【図３】フォントデータの構造を説明する図である。
【図４】コンターで輪郭を形成し、その内側を塗りつぶす様子を示した図である。
【図５】本発明の実施形態に係る画像表示装置の構成を示した図である。
【図６】フォントプロセッサの構成を示した図である。
【図７】輪郭計算モジュールの動作を示すフローチャートである。
【図８】輪郭計算モジュールの動作を示すフローチャートである。
【図９】輪郭計算モジュールの動作を示すフローチャートである。
【図１０】輪郭計算モジュールの動作を示すフローチャートである。
【図１１】輪郭計算モジュールの動作を示すフローチャートである。
【図１２】塗り潰し・背景合成・転送モジュールの動作を示すフローチャートである。
【図１３】変形例１における輪郭計算モジュールの動作を示すフローチャートである。
【図１４】変形例２において「Ａ」という文字の輪郭を描画する処理を例示する図である。
【符号の説明】
【００８４】
１…画像表示装置（画像出力装置）、１１…ＣＰＵ（指定手段）、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＶＲＡＭ、１５…記憶性液晶表示体、１６…表示制御装置、１７…電源、１８…電源制御装置、１９…コネクタ、２０…記憶制御装置、２１…Ｉ／Ｏ、２２…キー、２３…記憶装置、２４…記憶媒体、２５…フォントプロセッサ、２５２…フォント描画コントローラ（指定手段）、２５３…輪郭計算モジュール、２５４…輪郭描画モジュール（輪郭描画手段）、２５５…塗り潰し・背景合成・転送モジュール（塗り潰し手段）、２５６…ワークメモリ（描画領域、変数記憶手段）、ｒ１，ｒ２…レジスタ（変数記憶手段）。
【図１】
0004400667.tif 000002
【図２】
0004400667.tif 000003
【図３】
0004400667.tif 000004
【図４】
0004400667.tif 000005
【図５】
0004400667.tif 000006
【図６】
0004400667.tif 000007
【図７】
0004400667.tif 000008
【図８】
0004400667.tif 000009
【図９】
0004400667.tif 000010
【図１０】
0004400667.tif 000011
【図１１】
0004400667.tif 000012
【図１２】
0004400667.tif 000013
【図１３】
0004400667.tif 000014
【図１４】
0004400667.tif 000015