(57)【要約】【課題】より高速に文字を描画することを目的とする。【解決手段】フォントプロセッサは、１文字目の描画における輪郭描画ａを、ワークメモリ１を用いて行う。続いて、フォントプロセッサは、塗りつぶしａを開始する一方で、２文字目の文字描画における輪郭描画ｂを、ワークメモリ２を用いて開始する。そして、１文字目の描画が終了し、かつ、輪郭描画ｂが完了すると、フォントプロセッサは、３文字目の描画における輪郭描画ｃを、ワークメモリ１を用いて行う一方で、２文字目の描画における塗りつぶしｂおよび合成・転送ｂを行う。以上のように、フォントプロセッサは、一方のワークメモリを用いて輪郭描画を行う一方で、他方のワークメモリを用いて塗りつぶしおよび背景合成・転送を行う、という具合に並行動作を行う。したがって、高速な文字の描画が可能となる。【選択図】図１３
2008197570.tif 000002
【特許請求の範囲】
【請求項１】
文字の字形を表す字形データを記憶した外部記憶手段と外部バスを介して接続された第１のバスと、
複数の記憶領域を有する内部記憶手段と接続される第２のバスと、
前記第１のバス及び前記第２のバスに接続され、前記外部バス及び前記第１のバスを介して供給される前記字形データに基づいて文字の字形を描画し、前記第２のバス経由で前記内部記憶手段に書き込む第１の描画手段と、
前記第２のバスに接続され、前記内部記憶手段から前記第２のバス経由で前記文字の字形を読み出し、読み出した字形に基づいて文字を描画する第２の描画手段と、
前記第２の描画手段によって描画された文字を転送する転送手段とを備え、
前記内部記憶手段が有する前記複数の記憶領域のうちのいずれかが前記字形データごとに指定され、
前記第１の描画手段は、字形データ毎に指定された記憶領域において、各々の字形データに基づいた文字の字形を、当該字形データについて指定された記憶領域毎に順次書き込み、
前記第２の描画手段は、前記第１の描画手段によって前記複数の記憶領域のいずれかに文字の字形が書き込まれると、その記憶領域から前記文字の字形を読み出し、読み出した字形に基づいて前記文字を描画する
ことを特徴とする文字描画装置。
【請求項２】
前記字形データは、アウトライン形式の字形データであり、
前記第１の描画手段は、前記字形データに基づいて文字の輪郭を描画し、
前記第２の描画手段は、前記文字の輪郭を読み出し、読み出した輪郭によって囲まれた領域を塗りつぶした文字を描画する
ことを特徴とする請求項１記載の文字描画装置。
【請求項３】
前記字形データは、ストローク形式の字形データであり、
前記第１の描画手段は、前記字形データに基づいて、文字の線幅の中心線を描画し、
前記第２の描画手段は、前記文字の線幅の中心線を読み出し、読み出した中心線の周辺を塗りつぶした文字を描画する
ことを特徴とする請求項１記載の文字描画装置。
【請求項４】
各々の前記字形データは、１文字の全部または一部の字形を表している
ことを特徴とする請求項１記載の文字描画装置。
【請求項５】
請求項１乃至４のいずれか１項に記載の文字描画装置と、
前記転送手段によって転送される文字を表示する表示部と
を備えた表示装置。
【請求項６】
請求項１乃至４のいずれか１項に記載の文字描画装置と、
前記転送手段によって転送される文字を印刷する印刷部と
を備えた印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字を描画するための技術に関する。
【背景技術】
【０００２】
ディスプレイに表示される文字を描画したり、用紙に印刷される文字を描画するために、その文字の字形を表すフォントデータが用いられる。フォントデータには、大別してビットマップ形式と、アウトライン形式と、ストローク形式の３種類がある。例えばアウトライン形式のフォントデータを用いて文字を描画する場合には、文字の輪郭（字形）を描画する「輪郭描画」と、その輪郭内を塗りつぶす「塗りつぶし」と、この塗りつぶしによって生成された文字のビットマップデータを表示装置や印刷装置に転送する「転送」という、３つの処理ステップが必要となる。これらの処理をより高速に行うために、各処理ステップを並行して行う技術が知られている。例えば特許文献１には、専用のモジュールが「輪郭描画」および「塗りつぶし」を行い、ＣＰＵ（Central Processing Unit）が「転送」を行うという技術が開示されている。
【特許文献１】実開平５−９０５８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１に記載の技術において、ＣＰＵが「転送」を実行している間は、そのＣＰＵによって読み出されるデータ量が大きいため、ＣＰＵに接続されたバスが転送データによってほぼ占有されてしまう。よって、その転送期間中にモジュールが「輪郭描画」と「塗りつぶし」を行おうとしても、そのために必要なデータをバスに供給することができなくなり、高速化の効果をほとんど期待することができないという問題がある。
【０００４】
本発明は、かかる事情に鑑みてなされたものであり、より高速に文字を描画することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る文字描画装置は、文字の字形を表す字形データを記憶した外部記憶手段と外部バスを介して接続された第１のバスと、複数の記憶領域を有する内部記憶手段と接続される第２のバスと、前記第１のバス及び前記第２のバスに接続され、前記外部バス及び前記第１のバスを介して供給される前記字形データに基づいて文字の字形を描画し、前記第２のバス経由で前記内部記憶手段に書き込む第１の描画手段と、前記第２のバスに接続され、前記内部記憶手段から前記第２のバス経由で前記文字の字形を読み出し、読み出した字形に基づいて文字を描画する第２の描画手段と、前記第２の描画手段によって描画された文字を転送する転送手段とを備え、前記内部記憶手段が有する前記複数の記憶領域のうちのいずれかが前記字形データごとに指定され、前記第１の描画手段は、字形データ毎に指定された記憶領域において、各々の字形データに基づいた文字の字形を、当該字形データについて指定された記憶領域毎に順次書き込み、前記第２の描画手段は、前記第１の描画手段によって前記複数の記憶領域のいずれかに文字の字形が書き込まれると、その記憶領域から前記文字の字形を読み出し、読み出した字形に基づいて前記文字を描画することを特徴とする。本発明によれば、より高速に文字を描画することができる。
【０００６】
本発明において、前記字形データは、アウトライン形式の字形データであり、前記第１の描画手段は、前記字形データに基づいて文字の輪郭を描画し、前記第２の描画手段は、前記文字の輪郭を読み出し、読み出した輪郭によって囲まれた領域を塗りつぶした文字を描画することが望ましい。これにより、一般的なアウトライン形式のフォントデータとフォーマットを合わせることができる。
【０００７】
また、本発明において、前記字形データは、ストローク形式の字形データであり、前記第１の描画手段は、前記字形データに基づいて、文字の線幅の中心線を描画し、前記第２
の描画手段は、前記文字の線幅の中心線を読み出し、読み出した中心線の周辺を塗りつぶした文字を描画するようにしてもよい。これにより、一般的なストローク形式のフォントデータとフォーマットを合わせることができる。
【０００８】
また、本発明において、前記字形データは、１文字の全部または一部の字形を表していることを特徴とする。これにより、文字が大きなサイズの場合にも、これを描画することができる。
【０００９】
また、本発明に係る表示装置は、文字描画装置と、前記転送手段によって転送される文字を表示する表示部とを備えたことを特徴とする。本発明によれば、描画した文字を表示画面上に表示させることができる。
【００１０】
また、本発明に係る印刷装置は、文字描画装置と、前記転送手段によって転送される文字を印刷する印刷部とを備えたことを特徴とする。本発明によれば、描画した文字を用紙等に印刷することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための最良の形態を説明する。
（１）実施形態の構成
図１は、画像表示装置１のハードウェア構成を示した図である。
図示のように、画像表示装置１は、ＣＰＵ１０と、フォントプロセッサ１１と、入力装置１２と、表示体コントローラ１３と、表示体１４と、ＲＯＭ（Read Only Memory）１５と、ＲＡＭ（Random Access Memory）１６と、ＶＲＡＭ（Video Random Access Memory）１７と、不揮発性メモリ１８と、バスコントローラ１９とを備えている。
ＣＰＵ１０は、ＲＯＭ１５に記憶されている制御プログラムを読み出してＲＡＭ１６に展開し、その制御プログラムに記述された手順に従って処理を実行する。ＲＯＭ１５には、アウトライン形式のフォントデータ（以下、「アウトラインデータ」という）と文字コードとが対応付けられて記憶されている。また、ＲＯＭ１５には、ＣＰＵ１０によって実行されるＯＳ（Operating System）や、アウトラインデータに基づいて表示体１４に文字を表示するためのプログラムであるレンダラが記憶されている。入力装置１２は、ユーザによって操作される操作手段であり、キーボードやマウス、ペンデバイスやジョイスティックなどの操作デバイスを含んでおり、ユーザによって入力装置１２が操作されるとその操作に応じた信号をＣＰＵ１０に供給する。
【００１２】
ＣＰＵ１０は、入力装置１２から供給された信号に基づいてＲＯＭ１５からアウトラインデータを読み出し、フォントプロセッサ１１に転送する。フォントプロセッサ１１は、このアウトラインデータを解釈してビットマップ形式の画像データに変換し、これをＶＲＡＭ１７上に書き込む。なお、ＶＲＡＭ１７は、ＲＡＭ１６の一部に含まれるような構成であってもよい。ＶＲＡＭ１７上に書き込まれた画像データは、ＣＰＵ１０の指示のもとで表示体コントローラ１３に供給される。表示体コントローラ１３は、表示体１４を制御して表示画面上に画像を表示させる。表示体１４は、コレステリック液晶や電気泳動などを利用した表示手段であり、電力供給が停止しても画像を表示し続けることができるという記憶性を有している。不揮発性メモリ１８は、フラッシュメモリやハードディスクなどの不揮発性の記憶手段である。バスコントローラ１９は、内部に接続されている各モジュールに対して同時にアクセスが行われないように制御する。
【００１３】
信号線Ｓ１は、ＣＰＵ１０とフォントプロセッサ１１とを接続する。この信号線Ｓ１により、ＣＰＵ１０からフォントプロセッサ１１に対して文字の描画の開始を指示する命令（文字描画命令）が供給されたり、フォントプロセッサ１１からＣＰＵ１０に対して、文字の描画が完了したことを通知する信号（完了通知信号）が供給される。信号線Ｓ２は、ＣＰＵ１０と表示体コントローラ１３とを接続する。ＣＰＵ１０は、この信号線Ｓ２を介して、例えば画像のリフレッシュ時期などに、表示体コントローラ１３に表示体１４をリフレッシュ駆動するよう指示する。なお、表示体１４が非記憶性の場合には、表示体コントローラ１３自体が表示体１４を駆動するため、信号線Ｓ２は不用である。
【００１４】
画像表示装置１に電源が投入されると、各モジュールのリセット動作が行われる。そして、ＣＰＵ１０は、ＲＯＭ１５に記憶されたブートプログラムを起動することによりＯＳが起動する。その後、ＣＰＵ１０がプログラムに基づいた処理を行い、ユーザからの指示に応じて文字を描画する「文字描画処理」等を開始する。
【００１５】
次に、図２は、フォントプロセッサ１１のハードウェア構成を示した図である。
図示のように、フォントプロセッサ１１は、輪郭描画モジュール１１０と、塗りつぶし描画モジュール１１１と、背景合成・転送モジュール１１２と、外部バスコントローラ１１３と、内部バスコントローラ１１４と、ワークメモリ１１５とを備えている。ワークメモリ１１５は、複数の記憶領域を有するフォントプロッセサッサ１１の内部記憶手段であり、内部バスＢ-２に接続されている。ワークメモリ１１５は、ワークメモリ１１５−１と１１５−２とに論理的に分割されており、すなわち、異なるモジュールから独立したアクセスが可能な構成を有している。なお、以下の説明において、ワークメモリ１１５−１と１１５−２とを特に区別する必要がない場合には、これらを総称して「ワークメモリ１１５」という。
【００１６】
（１−１）文字の輪郭描画
第１の描画手段である輪郭描画モジュール１１０は、内部バスＢ-１及び内部バスＢ-２に接続されている。輪郭描画モジュール１１０は、内部バスＢ-１及び外部バスＢを介して、フォントプロセッサ１１から見た外部記憶手段であるＲＯＭ１５から供給されるアウトラインデータに基づいて、文字の輪郭を表すビットマップ形式の画像データ（以下、「輪郭データ」という）を生成し（つまり輪郭を描画し）、その描画結果を内部バスＢ-２経由でワークメモリ１１５上に書き込む。ここで、輪郭描画モジュール１１０が輪郭データを生成する処理について、具体的に説明する。なお、以下では、ＴＴＦ（True Type Font）と呼ばれるアウトラインデータを用いるものとする。
【００１７】
図３は、「口」という文字（漢字）をＴＴＦによって表したものである。文字の輪郭の周囲に沿って、矩形と円形の図形が配置されているが、これらはいずれも「制御点」と呼ばれるものである。矩形の図形はオンカーブ制御点（オンカーブポイント）であり、円形の図形はオフカーブ制御点（オフカーブポイント）である（以降の図において同じ）。ＴＴＦでは、文字の輪郭を１又は複数の「コンター」によって表現する。コンターとは、直線または２次ベジエ曲線を連結することによって表される閉じた線図のことであり、この線図によって文字の輪郭が表わされる。例えばオンカーブ制御点が連続している場合は、それら隣り合う２つの制御点が直線で結ばれる。一方、オフカーブ制御点が現れた場合には、そのオフカーブ制御点の隣にある２つのオンカーブ制御点が２次ベジエ曲線で結ばれる。なお、２つのオフカーブ制御点が隣り合う場合は、それらの中点にオンカーブ制御点を補って２つの２次ベジエ曲線で結べばよい。
【００１８】
例えば図４に示す制御点Ａ，Ｂ，Ｃ，Ｅをオンカーブ制御点とし、制御点Ｄをオフカーブ制御点とすると、直線Ａ−Ｂと、２次ベジエ曲線Ｃ−Ｄ−Ｅはそれぞれ、次の数式で表される点Ｐの集合（直線）と、点Ｑの集合（２次ベジエ曲線）として表現される。
Ｐ＝（１−ｔ）Ａ＋ｔＢ
Ｑ＝（１−ｔ）2Ｃ＋２ｔ（１−ｔ）Ｄ＋ｔ2Ｅ
ｔは、０≦ｔ≦１の範囲で連続的に変化する媒介変数である。直線Ａ−Ｂにおいて、ｔ＝０の場合には点Ｐは点Ａに一致し、ｔ＝１の場合には点Ｐは点Ｂに一致する。同様に、２次ベジエ曲線Ｃ−Ｄ−Ｅにおいて、ｔ＝０の場合には点Ｑは点Ｃに一致し、ｔ＝１の場合には点Ｑは点Ｅに一致する。
【００１９】
ここで、図５は、１つの文字を表すアウトラインデータを例示した図である。
図５に示すように、アウトラインデータは、各制御点に対して昇順に割り当てられた「制御点番号」と、その制御点の種別（オンカーブ制御点かオフカーブ制御点か）と、その制御点の平面上の「位置」（Ｘ，Ｙ座標）との集合によって表されている。これらのアウトラインデータによって１つの文字の輪郭が表わされる。さらに、１つのアウトラインデータに対しては、そのアウトラインデータに含まれるコンターの総数と、各々のコンターの終端となる制御点番号とが対応付けられている。例えば図６に示すように、「Ｄ」というアルファベットの輪郭は、２つのコンターｃ１，ｃ２によって表されているから、図５に示すとおり、コンターの総数は「２」である。また、コンターｃ１においては、コンターの終端となる制御点番号は「７」であり、コンターｃ２においては、コンターの終端となる制御点番号は「１１」である。よって、図４に示すとおり、コンターの終端となる制御点番号は「７，１１」である。
輪郭描画モジュール１１０は、上述したようにして、アウトラインデータを解釈して輪郭を算出し、算出した輪郭を表すビットマップの画像データを生成することで、文字の輪郭を描画する。そして、輪郭描画モジュール１１０は、その描画結果であるビットマップデータを輪郭データとしてワークメモリ１１５上に書き込む。
【００２０】
（１−２）塗りつぶしによる文字描画
以上のようにして輪郭データが書き込まれると、第２の描画手段である塗りつぶし描画モジュール１１１は、ワークメモリ１１５上に描画された輪郭データを内部バスＢ-２経由で読み出し、読み出した輪郭データに基づいて文字を描画する。具体的には、塗りつぶし描画モジュール１１１は、輪郭データによって表される輪郭によって囲まれた領域を有色画素で塗りつぶした画像データを生成する。すなわち、塗りつぶし描画モジュール１１１は、輪郭によって囲まれた領域を塗りつぶしてなる文字を描画する。
ここで、塗りつぶし描画モジュール１１１が行う処理について、具体的に説明する。
塗りつぶし描画モジュール１１１は、ワークメモリ１１５上に書き込まれた輪郭データを読み出し、この輪郭データを一定の方向（通常は水平方向）に沿って走査し、その走査ラインとコンターとが交差する点を求める。このとき、塗りつぶし描画モジュール１１１は、或る変数ｗ（初期値は０）を保持している。そして、塗りつぶし描画モジュール１１１は、小さい制御点番号から大きい制御点番号に進む方向に描いたコンターが、走査ラインに対して下から上に交差したか又は上から下に交差したかを判定する。そして、塗りつぶし描画モジュール１１１は、判断の結果が前者なら変数ｗに１を加算し、後者なら変数ｗから１を減算する。図６に示すように、走査ラインＬはコンターｃ１，ｃ２によっていくつかの区間に区分されることになるが、塗りつぶし描画モジュール１１１は、変数ｗ＝０の区間においては何も処理を行わず、変数ｗが１の区間には有色画素を配置する（つまり有色で塗りつぶす）。塗りつぶし描画モジュール１１１は、このようにして各々の走査ライン毎に塗りつぶしを行いつつ、この画像データを背景合成・転送モジュール１１２に順次出力する。
【００２１】
以上のような規則に従って、塗りつぶし描画モジュール１１１が、図３のように配置された制御点に従って形成されたコンターの内側を塗りつぶすと、図７に示すように、「口」という画像が描画される。また、この図では、オンカーブ制御点及びオフカーブ制御点といった制御点を示しているが、これは補助的に示しているに過ぎず、実際の画像には現れない。
【００２２】
（１−３）文字の転送
続いて、背景合成・転送モジュール１１２は、塗りつぶし描画モジュール１１１から供給されてくる画像データを所定の背景画像に合成した画像データを生成する。すなわち、背景合成・転送モジュール１１２は、内部バスＢ-１を介して、ＶＲＡＭ１７上に書き込まれた背景画像を表す画像データを読み出して、この背景画像上に文字を描画する。このとき、背景合成・転送モジュール１１２は、文字を描画する背景画像に対応する画像データを読み出す。そして、背景合成・転送モジュール１１２は、表示体１４の表示画面上における表示位置に対応するＶＲＡＭ１７上の領域に、この画像データを書き込む。そして、背景合成・転送モジュール１１２は、内部バスＢ-１を介して完了通知信号をＣＰＵ１０に出力する。この完了通知信号に応じて、ＣＰＵ１０は、ＶＲＡＭ１７上に書き込まれた画像データを表示体コントローラ１３に転送する。
【００２３】
外部バスコントローラ１１３は、内部バスＢ-１を介して接続されている輪郭描画モジュール１１０と背景合成・転送モジュール１１２に対して同時にアクセスが行われないように制御したり、外部バスと内部バスＢ-１との間でデータの遣り取りが行われるよう制御する。内部バスコントローラ１１４は、輪郭描画モジュール１１０または塗りつぶし描画モジュール１１１から、ワークメモリ１１５に対して同時にアクセスが行われないように制御する。
【００２４】
（２）実施形態の動作
次に、画像表示装置１の動作について説明する。なお、以降の動作の説明においては、ＣＰＵ１０が１文字目の文字描画処理において、文字「Ｄ」の描画をフォントプロセッサ１１に対して指示するものとする。
図８は、画像表示装置１のＣＰＵ１０がフォントプロセッサ１１に１文字目の文字描画命令を供給するまでの動作の手順を示したフローチャートである。
ユーザが入力装置１２を用いて文字「Ｄ」を指定し、その文字を表示するように指示する。ＣＰＵ１０は、これらの指示に従って図８に示すような処理を開始する。ＣＰＵ１０は、まず、ユーザによって指定された文字に対応する文字コードをＲＯＭ１５から取得する（ステップＳＡ１）。なお、ここで用いる文字コードとしては、周知のコードであるシフトＪＩＳコードやＡＳＣＩＩコードなどが好適である。次に、ＣＰＵ１０は、文字「Ｄ」の輪郭の描画に必要なアウトラインデータが格納された記憶領域うち、その先頭のアドレスを取得する（ステップＳＡ２）。具体的には、フォントプロセッサ１１の輪郭描画モジュール１１０は、予め決められた処理単位に相当するアウトラインデータを取得して輪郭データを書き込み、次の処理単位に相当するアウトラインデータを取得して輪郭データを書き込む、という具合に輪郭を描画していく。よって、ＣＰＵ１０は、アウトラインデータが格納された記憶領域の先頭のアドレスを、処理単位毎に取得するのである。例えば、図５において、ＣＰＵ１０が４つの制御点番号を処理単位とすれば、制御点番号１〜４、制御点番号５〜８、制御点番号９〜１２に対応するアウトラインデータが格納された記憶領域の、それぞれの先頭アドレスを取得することになる。
【００２５】
続いて、ＣＰＵ１０は、ワークメモリ１１５−１と１１５−２のうち、今回の文字描画処理において、フォントプロセッサ１１に使用させるワークメモリを指定する（ステップＳＡ３）。ステップＳＡ３において、ＣＰＵ１０がワークメモリを指定する際の動作について、詳しくは後述する。続いて、ＣＰＵ１０は、文字を表示させる表示体１４の表示画面上における表示位置を指定する（ステップＳＡ４）。そして、ＣＰＵ１０は、ステップＳＡ２〜ＳＡ４で取得したアウトラインデータの先頭アドレス、ワークメモリおよび描画位置を含めた「文字描画命令」を発行し、フォントプロセッサ１１に供給する（ステップＳＡ５）。例えば文書作成プログラムを実行しているときは、ＣＰＵ１０は、ユーザによって入力装置１２から文字を指定されるたびに、以上のような処理ステップＳＡ１〜ＳＡ５を実行する。
以上のようにして、ＣＰＵ１０はフォントプロセッサ１１に対して文字描画命令を供給して、文字描画処理を開始させる。
【００２６】
次に、上述した図８のステップＳＡ３において、ＣＰＵ１０がフォントプロセッサ１１に使用させるワークエリアを特定するための動作について説明する。
図９は、ＣＰＵ１０が、フォントプロセッサ１１に使用させるワークエリアを指定する動作の手順を示すフローチャートである。
図９において、まず、ＣＰＵ１０は、ワークエリアとして使用するワークメモリ１１５−ｉ（ｉ＝１，２）のアドレスを取得する（ステップＳＡ３１）。なお、変数ｉの初期値を１とし、１文字目の文字描画命令においては、ＣＰＵ１０は、ワークメモリ１１５−１上の輪郭データを書き込むアドレスを取得することになる。次に、ＣＰＵ１０は、ステップＳＡ３１で取得したワークメモリ１１５−ｉのアドレスをフォントプロセッサ１１に通知する（ステップＳＡ３２）。次に、ＣＰＵ１０は、変数ｉがワークメモリの総数に一致するか否かを判断する（ステップＳＡ３３）。本実施形態では、フォントプロセッサ１１はワークメモリ１１５−１および１１５−２の２つのワークメモリを有するから、ＣＰＵ１０は変数ｉが「２」であるか否かを判断することになる。ここではｉ＝１であるから、ＣＰＵ１０は、変数ｉはワークメモリの総数に一致しないと判断し（ステップＳＡ３３；ＮＯ）、変数ｉを１ずつインクリメントして、変数ｉ＝ｉ＋１とする（ステップＳＡ３４）。ここで、変数ｉ＝２となる。
【００２７】
続いて、ＣＰＵ１０は、２文字目の文字の描画を指示されると、再び処理ステップＳＡ３１〜ＳＡ３３を実行することになる。このときステップＳＡ３１においては変数ｉ＝２であるから、ＣＰＵ１０はワークメモリ１１５−２上の輪郭データを書き込むアドレスを取得して、ステップＳＡ３２においてフォントプロセッサ１１に通知する。ステップＳＡ３３においては、ＣＰＵ１０は変数ｉがワークメモリの数である２に一致すると判断するから（ステップＳＡ３３；ＹＥＳ）、変数ｉを初期値である「１」に戻す（ステップＳＡ３５）。
次に、ＣＰＵ１０は、３文字目の文字の描画を指示する際には、ステップＳＡ１においてワークメモリ１１５−１のアドレスを取得することになるから、上述した１文字目の文字の描画を指示する場合と同様の処理を行う。
このようにして、ＣＰＵ１０は、フォントプロセッサ１１に使用させるワークメモリを特定する。具体的には、変数ｉは、１→２→１→２→１→２→・・・という具合に変化するから、ＣＰＵ１０は、文字の描画を指示されるたびに、ワークメモリ１１５−１と１１５−２とのアドレスを交互に通知することになる。
【００２８】
次に、輪郭描画モジュール１１０が行う輪郭描画について説明する。
図１０は、輪郭描画モジュール１１０が行う、輪郭描画の手順を示すフローチャートである。
図１０において、フォントプロセッサ１１の輪郭描画モジュール１１０は、ＣＰＵ１０から文字描画命令が供給されるまで待機し、１文字目の文字描画命令が供給されると（ステップＳＢ１；ＹＥＳ）、これを図示せぬレジスタに格納する。そして、輪郭描画モジュール１１０は、文字「Ｄ」の文字コードに対応するアウトラインデータが格納されたＲＯＭ１５上の先頭アドレスに基づいて、処理単位毎にアウントラインデータを取得する（ステップＳＢ２）。続いて、輪郭描画モジュール１１０は、輪郭データの書き込みに必要なアウトラインデータを全て取得したか否かを判断する（ステップＳＢ３）。輪郭描画モジュール１１０は、アウトラインデータの取得を完了していなければ（ステップＳＢ３；ＮＯ）、そのまま取得を続ける。一方、輪郭描画モジュール１１０は、アウトラインデータの取得を完了すれば（ステップＳＢ３；ＹＥＳ）、指定されたワークメモリ１１５−１上に、図５に示したような各制御点番号に対応する制御点の種別や位置に基づいて、輪郭データを書き込む（ステップＳＢ４）。このようにして、輪郭描画モジュール１１０は、処理単位毎にアウトラインデータを取得して、輪郭データをワークメモリ１１５上に書き込んでいく。輪郭描画モジュール１１０は、１文字目の文字描画処理における輪郭データの書き込みを完了すると、レジスタに格納された１文字目の文字描画命令をクリアする（ステップＳＢ５）。そして、輪郭描画モジュール１１０は、塗りつぶしを開始することを指示する「塗りつぶし開始命令」を発行し、塗りつぶし描画モジュール１１１に出力する（ステップＳＢ６）。
続いて、２文字目の文字描画命令が供給されると、輪郭描画モジュール１１０は、ＣＰＵ１０によって指定されたワークメモリ１１５−２を作業エリアとして、上記と同様の処理を行うことになる。
【００２９】
次に、塗りつぶし描画モジュール１１１がワークメモリ１１５上に書き込まれた輪郭データに基づいて文字を描画する。塗りつぶし描画モジュール１１１が文字を描画するべく、輪郭に囲まれた領域を塗りつぶす、塗りつぶし描画について説明する。
図１１は、塗りつぶし描画モジュール１１１が、輪郭描画モジュール１１０によって生成された輪郭データに基づいて、塗りつぶし描画を行う動作の手順を示すフローチャートである。
図１１において、塗りつぶし描画モジュール１１１は、１文字目の文字描画命令における塗りつぶし開始命令が供給されるまで待機し、塗りつぶし開始命令が供給されると（ステップＳＣ１；ＹＥＳ）、図示せぬレジスタにこれを格納し、塗りつぶしを行っていない輪郭データがワークメモリ１１５−１上に存在するか否かを判断する（ステップＳＣ２）。塗りつぶし描画モジュール１１１は、塗りつぶしが完了していない輪郭データが存在すると判断すれば（ステップＳＣ２；ＹＥＳ）、ワークメモリ１１５−１上に書き込まれた輪郭データのうち、処理単位となる分だけ輪郭データを読み出す（取得する）（ステップＳＣ３）。
【００３０】
塗りつぶし描画モジュール１１１は、読み出した輪郭データのうちのコンターの内側に相当する領域を塗りつぶす（ステップＳＣ４）。塗りつぶし描画モジュール１１１は、塗りつぶし描画を完了すれば、この画像データを背景合成・転送モジュール１１２に出力する（ステップＳＣ５）。そして、ステップＳＣ２に戻り、塗りつぶし描画モジュール１１１は、塗りつぶし描画が完了していない輪郭データが他に存在するか否かを判断することになる。
塗りつぶし描画モジュール１１１は、１文字目の文字描画命令に対応するすべての輪郭データについて塗りつぶし描画を完了し、ワークメモリ１１５−１上に未処理の輪郭データが残っていないと判断すれば（ステップＳＣ２；ＮＯ）、レジスタに格納された塗りつぶし開始命令をクリアする（ステップＳＣ６）。そして、塗りつぶし描画モジュール１１１は、塗りつぶしを完了したことを示す「塗りつぶし完了信号」を背景合成・転送モジュール１１２に出力する（ステップＳＣ７）。
【００３１】
続いて、背景合成・転送モジュール１１２が、描画された文字を背景画像へ合成し、表示体１４への転送を指示する際の動作について説明する。
図１２は、背景合成・転送モジュール１１２が塗りつぶし後の画像を背景画像に合成し、表示体１４への転送を指示するまでの処理の過程を示すフローチャートである。図１２において、背景合成・転送モジュール１１２は、塗りつぶし描画モジュール１１１から塗りつぶし後の画像データが供給されるまで待機し、画像データが供給されると（ステップＳＤ１；ＹＥＳ）、背景画像に対応する画像データをＶＲＡＭ１７から読み出す（ステップＳＤ２）。そして、背景合成・転送モジュール１１２は、文字を表す画像データと、背景画像を表す画像データとを合成する（ステップＳＤ３）。すなわち、合成後の画像は、指定された表示位置に応じた背景画像上に文字が描画された画像となる。背景合成・転送モジュール１１２は、このようにして生成した画像データを、表示位置に応じたＶＲＡＭ１７上の領域に書き込む（ステップＳＤ４）。続いて、背景合成・転送モジュール１１２は、塗りつぶし完了信号を受信したか否かを判断する（ステップＳＤ５）。背景合成・転送モジュール１１２は、塗りつぶし完了信号を受信していないと判断すれば（ステップＳＤ５；ＮＯ）、ステップＳＤ１に戻り、次の画像データが供給されるまで待機する。一方、ステップＳＤ５において、背景合成・転送モジュール１１２は、塗りつぶし完了信号を受信したと判断すれば（ステップＳＤ５；ＹＥＳ）、この塗りつぶし完了信号をクリアし（ステップＳＤ６）、ＣＰＵ１０に完了通知信号を出力する（ステップＳＤ７）。
ＣＰＵ１０は、この完了通知信号が供給されると、ＶＲＡＭ１７上に書き込まれた画像データを表示体コントローラ１３に転送し、画像の表示を指示する。この指示に応じて、表示体コントローラ１３は、転送された画像データが表す画像を表示体１４に表示させる。
【００３２】
以上が、各モジュールが行う動作の手順であるが、次に、各モジュールが時系列的にどのような順番で処理を行うかについて説明する。
図１３は、図９〜１２を用いて説明した各モジュールによって実行される各処理の、時系列的な順番を表している。なお、図１３においては、ワークメモリ１１５−１を「ワークメモリ１」と称し、ワークメモリ１１５−２のことを「ワークメモリ２」と称している。また、輪郭描画モジュール１１０が行う処理を「輪郭描画」と称し、塗りつぶし描画モジュール１１１が行う処理を「塗りつぶし」と称し、背景合成・転送モジュール１１２が行う処理を「合成・転送」と称している。また、「輪郭描画」、「塗りつぶし」および「合成・転送」のそれぞれの末尾に付しているアルファベットは、何文字目の文字描画命令における処理かを示すものであり、「ａ」は１文字目、「ｂ」は２文字目、「ｃ」は３文字目、「ｄ」は４文字目の文字描画命令における処理であることを示す。
【００３３】
まず、輪郭描画モジュール１１０は、ワークメモリ１１５−１を用いて１文字目の文字描画処理における輪郭描画ａを行う。輪郭描画モジュール１１０が輪郭描画ａを完了すると、ワークメモリ１１５−１上に、１文字目の文字「Ｄ」輪郭データが書き込まれた状態となる。続いて、塗りつぶし描画モジュール１１１は、ワークメモリ１１５−１上に書き込まれた輪郭データを読み出し、塗りつぶしａを開始する。その一方で、フォントプロセッサ１１に供給される２文字目の文字描画命令に基づいて、輪郭描画モジュール１１０は、２文字目の文字描画処理における輪郭描画ｂをワークメモリ１１５−２を用いて開始する。このとき、塗りつぶし描画モジュール１１１は、内部バスＢ-２を介してワークメモリ１１５−１から輪郭データを読み出し、背景合成・転送モジュール１１２は内部バスＢ-１を介して、画像データをＶＲＡＭ１７上に書き込む。一方、輪郭描画モジュール１１０は、外部バスを介して文字描画命令を受信して、内部バスＢ-２を介してワークメモリ１１５−２上に輪郭データを書き込むことになる。このとき、内部バスコントローラ１１４によって、輪郭描画モジュール１１０がワークメモリ１１５−１および１１５−２に同時にアクセスできないよう制御されているし、同様に塗りつぶし描画モジュール１１１も両方のワークエリアに同時にアクセスできないように制御されているため、各処理は並行して行われるのである。
【００３４】
次に、塗りつぶし描画モジュール１１１は、塗りつぶしａにおける全ての処理が完了すると、引き続き、ＶＲＡＭ１７上に書き込まれた背景画像を表す画像データを読み出し、合成・転送ａを行って、再びＶＲＡＭ１７上に書き込む。また、輪郭描画モジュール１１０は、ワークメモリ１１５−２を用いた２文字目の文字描画処理における輪郭描画ｂを終了し、塗りつぶし描画モジュール１１１が塗りつぶしｂを開始すると、輪郭描画モジュール１１０は、ワークメモリ１１５−１を用いて３文字目の文字描画処理における輪郭描画ｃを開始する。以降同様に、輪郭描画ｃが終了すると、輪郭描画モジュール１１０は、ワークメモリ１１５−２を用いて４文字目の文字描画処理における輪郭描画ｄを開始する。
以上説明したように、ワークメモリ１１５−１および１１５−２のうちのいずれかが輪郭データごと（すなわち、文字描画命令ごと）に指定され、輪郭描画モジュール１１０、塗りつぶし描画モジュール１１１及び背景合成・転送モジュール１１２は、各々の文字描画命令について指定されたワークメモリ１１５を用いて各処理を行う。つまり、輪郭描画モジュール１１０は、文字描画命令に応じたワークメモリ１１５上に輪郭データを書き込む一方で、塗りつぶし描画モジュール１１１や背景合成・転送モジュール１１２は、他のワークメモリ１１５上に書き込まれた輪郭データに基づいて文字の描画を行う。
【００３５】
以上説明した実施形態によれば、フォントプロセッサ１１は、アウトラインデータを読み出すための内部バスＢ-１と、ワークメモリ１１５上に輪郭データを書き込んだり読み出したりするための内部バスＢ-２とを有するため、輪郭描画と、塗りつぶしおよび合成・転送を並行して行うことができ、かつ、それぞれの処理において用いる内部バスが異なるため、文字描画処理の高速化が可能となるのである。
また、図１３に示すように、輪郭描画モジュール１１０は、各々のアウトラインデータに基づいた文字の輪郭データを、アウトラインデータについて指定されたワークメモリ上（ワークメモリ１１５−１または１１５−２）に順次描画していく。一方、塗りつぶし描画モジュール１１１は、輪郭描画モジュール１１０によってワークメモリ１１５−１，１１５−２のいずれか一方に文字の輪郭データが書き込まれると、そのワークメモリ上から輪郭データを読み出し、読み出した輪郭データに基づいて文字を描画する。このように、輪郭描画と塗りつぶし描画とが複数の記憶領域において同時並行的に行われるので、文字描画処理の高速化が可能となる。
【００３６】
（３）変形例
上述した実施形態の内容を次のように変形してもよい。
上述した実施形態では、文字描画命令は、所定の１文字の描画を指示するものであったが、文字の一部分の描画を指示するものであってもよい。すなわち、ワークメモリ１１５に書き込まれる輪郭データが、１文字の一部の輪郭を表わすということである。例えば、１文字目の描画命令において、比較的大きなフォントサイズの文字「Ｄ」の描画が指示されたとする。このとき、文字「Ｄ」に対応するすべての輪郭データを、ワークメモリ１１５上に書き込むことができないこともある。このときＣＰＵ１０は、例えば文字「Ｄ」の上半分の領域を１文字目の文字描画処理として文字描画命令を発行し、下半分の領域を２文字目の文字描画処理として文字描画命令を発行すればよい。このようにすれば、描画される文字がどのようなフォントサイズであっても表示体１４に描画することができるし、ＣＰＵ１０に対して１文字だけの描画が指示された場合であっても、文字描画処理の高速化の効果を得ることができる。
また、１文字を複数の文字描画処理によって描画する場合、文字を横方向に分割して描画してもよいし、さらに多くの領域に分割して描画するようにしてもよい。
【００３７】
上述した実施形態では、アウトライン形式のフォントデータを用いて文字を描画する場合について説明したが、ストローク形式のフォントデータを用いて文字を描画してもよい。ストローク形式においては、文字の字形を中心線だけで指定してからその太さを指定するから、やはり、複数の処理ステップを実行して文字を描画する。よって、輪郭描画モジュール１１０と塗りつぶし描画モジュール１１１とを、例えば文字の線幅の中心線（字形）を描画するモジュールと、その中心線（字形）の周辺を塗りつぶすモジュールとに置き換えることにより、ストローク形式のフォントデータを用いた場合にも、本発明を適用することができる。
また、ベクタ形式の画像を描画する場合であっても、点の座標とそれを結ぶ線や面の方程式のパラメータに基づいて、輪郭の描画や、塗りつぶし、特殊効果等を行って画像を描画するから、このような各処理ステップを実行可能なモジュールを設けることにより、本発明を適用することができる。
【００３８】
上述した実施形態では、塗りつぶし描画モジュール１１１と、背景合成・転送モジュール１１２とは別々のモジュールであったが、これらに代えて、同様の機能を実現する１つの専用モジュールを適用してもよい。背景合成・転送モジュール１１２は、ワークメモリ１１５に対してアクセスすることはなく、塗りつぶし描画モジュール１１１から供給される画像データに基づいて処理を行うため、そのまま塗りつぶし描画モジュール１１１と背景合成・転送モジュール１１２とを、１つの専用モジュールとする構成とすることができる。
また、背景合成・転送モジュール１１２は、塗りつぶし描画モジュール１１１によって描画された文字を背景画像に合成せずに、塗りつぶし描画モジュール１１１から供給された画像データをそのままＶＲＡＭ１７上に書き込むようにしてもよい。
【００３９】
上述した実施形態では、表示体１４の表示画面上に文字を描画する場合について説明したが、記録用紙等に画像を印刷するような構成としてもよい。つまり、実施形態における表示体コントローラ１３を印刷制御部に置き換え、表示体１４を印刷部に置き換える構成とする。印刷制御部は、印刷部を制御して用紙に画像を印刷させるよう制御する。印刷部は、熱転写方式やインクジェット方式等を用いて記録用紙に画像を印刷する。
具体的には、例えば記録用紙１枚に印刷する画像に相当する画像データがＶＲＡＭ１７上に書き込まれ、完了通知信号が供給されると、ＣＰＵ１０はＶＲＡＭ１７上に書き込まれた画像データを印刷制御部に転送し、画像の印刷を指示する。この指示に応じて、印刷制御部は転送された画像データが表す画像（文字）を、印刷部に印刷させる。
【００４０】
上述した実施形態では、描画する文字として「口」や「Ｄ」の場合について説明したが、この「文字」は、平仮名、片仮名、漢字等の日本語であってもよく、アルファベット等の外国語であってもよい。さらに、「＋」や「−」等の記号や、円や多角形等の図形も文字に含めるものとする。つまり、フォントデータを取得し、それに基づいて文字を描画することができるのであれば、その輪郭によらず、本発明を適用することができる。
【００４１】
上述した実施形態では、ワークメモリ１１５はワークメモリ１１５−１および１１５−２の２つの記憶領域を有する構成としていたが、さらに多くの記憶領域を有する構成としてもよい。このようにすれば、フォントプロセッサが更に多くの専用モジュールを有する場合にも、それぞれが各ワークメモリに対して独立してアクセスすることにより、さらに多くの処理を並行して行うことができるようになる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施形態に係る画像表示装置のハードウェア構成を示した図である。
【図２】フォントプロセッサのハードウェア構成を示した図である。
【図３】ＴＴＦに規定された制御点と、画像表示装置に表示される画像の例を説明する図である。
【図４】制御点を結ぶコンターを説明する図である。
【図５】ＴＴＦに規定された制御点を含むアウトラインデータのデータ構造を説明する図である。
【図６】制御点を結ぶコンターを説明する図である。
【図７】コンターで輪郭を形成し、その内側を塗りつぶす様子を示した図である。
【図８】ＣＰＵが実行する手順を示すフローチャートである。
【図９】ＣＰＵが実行する手順を示すフローチャートである。
【図１０】輪郭描画モジュールが実行する手順を示すフローチャートである。
【図１１】塗りつぶし描画モジュールが実行する手順を示すフローチャートである。
【図１２】背景合成・転送モジュールが実行する手順を示すフローチャートである。
【図１３】各モジュールが実行する処理の順番を時系列的に説明する図である。
【符号の説明】
【００４３】
１…画像表示装置、１０…ＣＰＵ、１１…フォントプロセッサ、１２…入力装置、１３…表示体コントローラ、１４…表示体、１５…ＲＯＭ、１６…ＲＡＭ、１７…ＶＲＡＭ、１８…不揮発性メモリ、１９…バスコントローラ、１１０…輪郭描画モジュール、１１１…塗りつぶし描画モジュール、１１２…背景合成・転送モジュール、１１３…外部バスコントローラ、１１４…内部バスコントローラ、１１５、１１５−１、１１５−２…ワークメモリ。
【図１】
2008197570.tif 000003
【図２】
2008197570.tif 000004
【図３】
2008197570.tif 000005
【図４】
2008197570.tif 000006
【図５】
2008197570.tif 000007
【図６】
2008197570.tif 000008
【図７】
2008197570.tif 000009
【図８】
2008197570.tif 000010
【図９】
2008197570.tif 000011
【図１０】
2008197570.tif 000012
【図１１】
2008197570.tif 000013
【図１２】
2008197570.tif 000014
【図１３】
2008197570.tif 000015
【手続補正書】
【提出日】平成19年11月9日(2007.11.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
ここで、図５は、１つの文字を表すアウトラインデータを例示した図である。
図５に示すように、アウトラインデータは、各制御点に対して昇順に割り当てられた「制御点番号」と、その制御点の種別（オンカーブ制御点かオフカーブ制御点か）と、その制御点の平面上の「位置」（Ｘ，Ｙ座標）との集合によって表されている。これらのアウトラインデータによって１つの文字の輪郭が表わされる。さらに、１つのアウトラインデータに対しては、そのアウトラインデータに含まれるコンターの総数と、各々のコンターの終端となる制御点番号とが対応付けられている。例えば図６に示すように、「Ｄ」というアルファベットの輪郭は、２つのコンターｃ１，ｃ２によって表されているから、図５に示すとおり、コンターの総数は「２」である。また、コンターｃ１においては、コンターの終端となる制御点番号は「７」であり、コンターｃ２においては、コンターの終端となる制御点番号は「１２」である。よって、図５に示すとおり、コンターの終端となる制御点番号は「７，１２」である。
輪郭描画モジュール１１０は、上述したようにして、アウトラインデータを解釈して輪郭を算出し、算出した輪郭を表すビットマップの画像データを生成することで、文字の輪郭を描画する。そして、輪郭描画モジュール１１０は、その描画結果であるビットマップデータを輪郭データとしてワークメモリ１１５上に書き込む。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2008197570.tif 000016
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2008197570.tif 000017