(57)【要約】      （修正有）【課題】描画対象に適したレベルのアンチエイリアス処理を行うことにより、計算負荷を低減しつつ、見た目に綺麗な文字を描画する。【解決手段】アウトライン形式で表現される文字を表示する描画装置は、外部装置から入力された２次元グラフィックスデータから、アウトラインフォントを示すアウトラインデータを取得する取得部２０１と、アウトラインデータにアンチエイリアス処理のレベルを示すレベルデータが含まれているか否かを確認するレベル確認部２０２と、アウトラインデータにレベルデータが含まれている場合には、レベルデータが示すレベルを、アウトラインフォントのアンチエイリアス処理のレベルとして決定するレベル決定部２０３と、決定されたレベルで、アンチエイリアス処理を行うことにより、アウトラインフォントを描画する描画部２０４と、を有する。【選択図】図２
2015075884.tif 000002
【特許請求の範囲】
【請求項１】
アウトライン形式で表現される文字を表示する描画装置であって、
前記文字の形状に基づいて、前記文字に対して施すアンチエイリアス処理のレベルを決定するレベル決定手段と、
決定されたレベルのアンチエイリアス処理を行い、前記文字のアウトラインデータに基づいて、文字を描画する描画手段と
を有する描画装置。
【請求項２】
前記アウトラインデータに基づいて、前記文字の描画命令数を特定する命令数特定手段をさらに有し、
前記レベル決定手段は、前記描画命令数に基づいて、前記レベルを決定する請求項１に記載の描画装置。
【請求項３】
前記アウトラインデータに基づいて、前記文字の曲線描画命令数を特定する曲線命令数特定手段をさらに有し、
前記レベル決定手段は、前記描画命令数に対する前記曲線描画命令数の割合に基づいて、前記レベルを決定する請求項２に記載の描画装置。
【請求項４】
前記アウトラインデータに基づいて、前記文字の制御点の数を特定する制御点数特定手段をさらに有し、
前記レベル決定手段は、前記制御点の数に基づいて、前記レベルを決定する請求項１に記載の描画装置。
【請求項５】
前記アウトラインデータにアンチエイリアス処理のレベルを示すレベルデータが含まれているか否かを確認する確認手段をさらに有し、
前記レベル決定手段は、前記アウトラインデータに前記レベルデータが含まれていない場合に、前記文字の形状に基づいて、前記レベルを決定する請求項１乃至４何れか１項に記載の描画装置。
【請求項６】
前記レベル決定手段は、前記アウトラインデータに前記レベルデータが含まれている場合に、前記文字の描画時の前記レベルを、前記レベルデータに示されるレベルに決定する請求項５に記載の描画装置。
【請求項７】
アウトライン形式で表現される文字を表示する描画装置が実行する描画方法であって、
前記文字の形状に基づいて、前記文字に対して施すアンチエイリアス処理のレベルを決定するレベル決定ステップと、
決定されたレベルのアンチエイリアス処理を行い、前記文字のアウトラインデータに基づいて、文字を描画する描画ステップと
を含む描画方法。
【請求項８】
コンピュータを、
文字の形状に基づいて、前記文字に対して施すアンチエイリアス処理のレベルを決定するレベル決定手段と、
決定されたレベルのアンチエイリアス処理を行い、前記文字のアウトラインデータに基づいて、文字を描画する描画手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画装置、描画方法及びプログラムに関する。
【背景技術】
【０００２】
従来、アウトラインフォントを含む２次元グラフィックスデータの描画命令を入力とし、ラスタライズして出力する装置が知られている。このような装置においては、文字に対し、高いレベルでアンチエイリアス処理を行うことにより、文字をきれいに描画することができる。しかし、高いレベルのアンチエイリアス処理を実行した場合、計算負荷が高くなる。
アンチエイリアス処理のレベルを低くすることにより、計算負荷を軽減することができる。しかし、低いレベルのアンチエイリアス処理では、文字によっては、文字の線と線の間が結合する、文字の線で囲まれた矩形が塗りつぶされる、等の現象が起きる場合がある。
このような問題を解決する技術として、例えば特許文献１には、アウトラインフォントに対して、フォントの描画サイズに対応して単調減少する色数でアンチエイリアス処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１２１８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１の技術では、描画サイズが小さい場合は、単純な文字に対しても、高いレベルでアンチエイリアス処理が行われる。このため、見た目の美しさはあまり向上しないにも関わらず、計算負荷が増大してしまうという問題があった。一方で、描画サイズが大きい場合には、複雑な文字に対しても、低いレベルでアンチエイリアス処理が行われる。このため、見た目の美しさが損なわれてしまうという問題があった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、描画対象に適したレベルのアンチエイリアス処理を行うことにより、計算負荷を低減しつつ、見た目に綺麗な文字を描画することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、アウトライン形式で表現される文字を表示する描画装置であって、前記文字の形状に基づいて、前記文字に対して施すアンチエイリアス処理のレベルを決定するレベル決定手段と、決定されたレベルのアンチエイリアス処理を行い、前記文字のアウトラインデータに基づいて、文字を描画する描画手段とを有する。
【発明の効果】
【０００７】
本発明によれば、描画対象に適したレベルのアンチエイリアス処理を行うことにより、計算負荷を低減しつつ、見た目に綺麗な文字を描画することができる。
【図面の簡単な説明】
【０００８】
【図１】描画装置を示す図である。
【図２】処理部を示す図である。
【図３】描画処理を示すフローチャートである。
【図４】レベル決定処理を示すフローチャートである。
【図５】レベル決定処理を示すフローチャートである。
【図６】ＣＮ／Ｎと割合閾値の比較処理を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
（第１の実施形態）
図１は、第１の実施形態に係る描画装置１００のハードウェア構成を示す図である。描画装置１００は、アウトライン形式で表現される、複数のアウトラインフォントを表示する。描画装置１００は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）１０１と、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）１０２とを有している。描画装置１００はまた、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）１０３と、表示部１０４と、システムバス１０５とを有している。
ＣＰＵ１０１は、描画装置１００の全体を制御する。ＲＯＭ１０２は、変更を必要としないプログラムやパラメータを確認する。ＲＡＭ１０３は、外部装置等から供給されるプログラムやデータを一時記憶する。表示部１０４は、ＲＡＭ１０３等に格納されるデータや、外部装置等から供給されたデータ等を表示するためのインターフェイスである。
【００１１】
なお、後述する描画装置１００の機能や処理は、ＣＰＵ１０１がＲＯＭ１０２等に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
システムバス１０５は、上記の各ユニット１０１〜１０４を通信可能に接続する。描画装置１００は、ユーザからの操作を受けてデータを入力するマウスなどのポインティングデバイスやキーボード等の入力デバイス、又は入力デバイスとのインターフェイスをさらに有してもよい。
【００１２】
描画装置１００は、またハードディスクやメモリカードを有してもよい。描画装置１００はまた、描画装置１００に固定して設置されたハードディスク等とのインターフェイスを有し、ハードディスク等を利用可能であってもよい。
描画装置１００はまた、描画装置１００と着脱可能な外部記憶装置等又は外部記憶装置等とのインターフェイスをさらに有してもよい。着脱可能な外部記憶装置としては、フレキシブルディスク（ＦＤ）やＣｏｍｐａｃｔ  Ｄｉｓｋ（ＣＤ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカードなどが挙げられる。描画装置１００はまた、インターネットなどのネットワーク回線に接続するためのネットワークインターフェイス等をさらに有してもよい。
【００１３】
図２は、描画装置１００の処理部２００を示す図である。処理部２００は、取得部２０１と、レベル確認部２０２と、レベル決定部２０３と、描画部２０４とを有している。取得部２０１は、外部装置から入力された２次元グラフィックスデータから、アウトラインフォント（Ｆ）を示すアウトラインデータ（Ｄ）を取得する。
レベル確認部２０２は、アウトラインデータ（Ｄ）にアンチエイリアス処理のレベルを示すレベルデータ（Ｌ）が含まれているか否かを確認する。ここで、レベルとは、アンチエイリアス処理の精度である。本実施形態の描画装置１００は、レベルは、「高」と「低」の２段階でのアンチエイリアス処理を行うことができるものとする。ここで、レベル「高」は、アンチエイリアス処理の精度が高いことを示し、レベル「低」は、アンチエイリアス処理の精度が低いことを示している。
【００１４】
レベル決定部２０３は、アウトラインデータ（Ｄ）にレベルデータ（Ｌ）が含まれている場合には、レベルデータ（Ｌ）が示すレベルを、アウトラインフォント（Ｆ）のアンチエイリアス処理のレベルとして決定する。レベル決定部２０３はままた、アウトラインデータ（Ｄ）にレベルデータ（Ｌ）が含まれていない場合には、アウトラインデータ（Ｄ）を参照し、アウトラインフォント（Ｆ）の形状に基づいて、レベルを決定する。
描画部２０４は、レベル決定部２０３により決定されたレベルで、アンチエイリアス処理を行うことにより、アウトラインフォント（Ｆ）を描画する。
【００１５】
図３は、処理部２００により実行される描画処理を示すフローチャートである。ステップＳ３０１において、取得部２０１は、２次元グラフィックスからアウトラインフォント（Ｆ）のアウトラインデータ（Ｄ）を取得する。次に、ステップＳ３０２において、レベル確認部２０２は、ステップＳ３０１において取得したアウトラインデータ（Ｄ）にアンチエイリアス処理のレベルデータ（Ｌ）が含まれているか否かを確認する（確認処理）。
レベル確認部２０２は、アウトラインデータ（Ｄ）にレベルデータ（Ｌ）が含まれている場合には（ステップＳ３０２でＹＥＳ）、処理をステップＳ３０３へ進める。一方、レベル確認部２０２は、アウトラインデータ（Ｄ）にレベルデータ（Ｌ）が含まれていない場合には（ステップＳ３０２でＮＯ）、処理をステップＳ３０４へ進める。
【００１６】
ステップＳ３０３において、レベル決定部２０３は、アウトラインデータ（Ｄ）からレベルデータ（Ｌ）を取得する。そして、レベル決定部２０３は、アウトラインフォント（Ｆ）描画時のアンチエイリアス処理のレベルを、取得したレベルデータ（Ｌ）に示されるレベルに決定する（レベル決定処理）。なお、レベルデータ（Ｌ）は、「高」又は「低」の何れかのレベルを示すものとする。
ステップＳ３０４において、レベル決定部２０３は、アウトラインデータ（Ｄ）を参照い、アウトラインフォント（Ｆ）の形状に基づいて、アウトラインフォント（Ｆ）に対するアンチエイリアス処理のレベルを決定する（レベル決定処理）。ステップＳ３０４における処理については、図４を参照しつつ後に詳述する。
次に、ステップＳ３０５において、描画部２０４は、ステップＳ３０３又はステップＳ３０４において決定されたレベルで、アンチエイリアス処理を行い、アウトラインデータ（Ｄ）に基づいて、アウトラインフォント（Ｆ）を描画する（描画処理）。以上で、描画処理が終了する。
【００１７】
図４は、レベル決定処理（ステップＳ３０４）における詳細な処理を示すフローチャートである。ステップＳ４０１において、レベル決定部２０３は、アウトラインデータ（Ｄ）から描画命令数（Ｎ）を特定する（命令数特定処理）。次に、ステップＳ４０２において、レベル決定部２０３は、ステップＳ４０１において特定した描画命令数（Ｎ）が、Ｎ閾値以上か否かを判断する。ここで、Ｎ閾値は、例えばＲＯＭ１０２等に予め格納されているものとする。
レベル決定部２０３は、描画命令数（Ｎ）がＮ閾値以上である場合に（ステップＳ４０２でＹＥＳ）、処理をステップＳ４０３へ進める。レベル決定部２０３は、描画命令数（Ｎ）がＮ閾値未満である場合に（ステップＳ４０２でＮＯ）、処理をステップＳ４０４へ進める。ステップＳ４０３において、レベル決定部２０３は、アンチエイリアス処理のレベルを「高」に決定する。ステップＳ４０４において、レベル決定部２０３は、アンチエイリアス処理のレベルを「低」に決定する。
【００１８】
一般に、アルファベットの文字「Ｌ」等、画数が少なく、見た目に単純な文字は描画命令数が少なく、日本語の「曜」等画数が多く、見た目に複雑な文字は、描画命令数が多い傾向にある。すなわち、描画命令数は、文字の複雑さの指標となる。さらに、複雑な文字程、より高精度なアンチエイリアス処理を適用するのが好ましい。
そこで、レベル決定部２０３は、ステップＳ４０２においては、ＮとＮ閾値との比較により、レベルを決定することとした。すなわち、本実施形態にかかるレベル決定部２０３は、文字の形状としての文字の複雑さに基づいて、レベルを決定する。
【００１９】
以上のように、第１の実施形態にかかる描画装置１００は、描画対象の文字の形状（複雑さ）に適したレベルのアンチエイリアス処理を行う。したがって、描画装置１００は、計算負荷を低減しつつ、見た目に綺麗な文字を描画することができる。
【００２０】
なお、本実施形態においては、アンチエイリアス処理のレベルを２段階としたが、描画装置１００が、３段階以上のレベルでアンチエイリアス処理を行うことができる場合には、レベル決定部２０３は、３段階以上のレベルの中から適切なレベルを決定する。具体的には、レベル決定部２０３は、複数のＮ閾値との閾値処理により、レベルを決定する。
【００２１】
（第２の実施形態）
次に、第２の実施形態にかかる描画装置１００について説明する。第２の実施形態にかかる描画装置１００は、レベル決定処理（ステップＳ３０４）における処理が、第１の実施形態にかかる描画装置１００による処理と異なる。ここでは、第２の実施形態にかかる描画装置１００について、第１の実施形態と異なる部分について説明する。
図５は、第２の実施形態にかかる描画装置１００によるレベル決定処理(ステップＳ３０４)における詳細な処理を示すフローチャートである。なお、第１の実施形態にかかるレベル決定処理における各処理と同一の処理には、同一番号を付している。
【００２２】
レベル決定部２０３は、ステップＳ４０２において、描画命令の数（Ｎ）がＮ閾値以上である場合（ステップＳ４０２でＹＥＳ）、処理をステップＳ５０１へ進める。ステップＳ５０１において、レベル決定部２０３は、アウトラインデータ（Ｄ）に基づいて、曲線描画命令の数（ＣＮ）を特定する（曲線命令数特定処理）。
次に、ステップＳ５０２において、レベル決定部２０３は、ＣＮ／Ｎと割合閾値とを比較する。ここで、割合閾値は、例えばＲＯＭ１０２等に予め設定されているものとする。レベル決定部２０３は、ＣＮ／Ｎが割合閾値以上である場合には（ステップＳ５０２でＹＥＳ）、処理をステップＳ４０３へ進める。レベル決定部２０３はまた、ＣＮ／Ｎが割合閾値未満である場合には(ステップＳ５０２でＮＯ)、処理をステップＳ４０４へ進める。
【００２３】
なお、第２の実施形態にかかる描画装置１００のこれ以外の構成及び処理は、第１の実施形態にかかる描画装置１００の構成及び処理と同一である。
このように、第２の実施形態にかかるレベル決定部２０３は、描画命令の数だけでなく、描画命令の数に対する曲線描画命令の数の割合に基づいてレベルを決定する。すなわち、レベル決定部２０３は、文字の形状としての文字全体における曲線の割合に基づいて、レベルを決定する。
【００２４】
図６は、ＣＮ／Ｎと割合閾値との比較処理（ステップＳ５０２，ステップＳ４０３，ステップＳ４０４）を説明するための図である。図６（ａ）は、日本語の文字「あ」を、レベル「低」及び「高」それぞれでのアンチエイリアス処理を行い描画した結果の一例を示す図である。文字「あ」は、画数が少なく、見た目には複雑ではないが、総描画命令数は、「６０」と多い値となる。
文字「あ」を構成する線の大半は、曲線である。このように曲線の割合の多い文字の総描画命令数は大きい値となる。これは、フォントの独特のカーブを表現するため、総描画命令の数が大きくなるためである。すなわち、曲線の割合の多い文字は、見目が複雑でなくとも総描画命令数が多くなる傾向にある。
さらに、レベル「高」での「あ」の描画結果は、レベル「低」での「あ」の描画結果に比べて、綺麗な文字となっていることがわかる。すなわち、文字「あ」に対しては、比較的高いレベルのアンチエイリアス処理を施すのが適切であることがわかる。
【００２５】
一方、図６（ｂ）は、日本語の「曜」を、レベル「低」及び「高」それぞれでのアンチエイリアス処理を行い描画した結果の一例を示す図である。日本語の「曜」は、画数が多く、見た目にも複雑である。これに対応し、総描画命令数は、「１１２」と多い値となる。
しかしながら、レベル「低」、「高」それぞれに対応する「曜」の描画結果において、見た目の綺麗さに、さほどの違いはない。すなわち、アンチエイリアス処理のレベルを「高」にした場合の計算負荷を考慮した場合、文字「曜」に対しては、アンチエイリアス処理のレベルを「低」に設定するのが適切であることがわかる。
【００２６】
文字「あ」と文字「曜」は、上述のようにいずれも総描画命令数が多い。一方で、文字「あ」は、曲線が多いのに対し、文字「曜」は、そのほとんどが横線又は縦線であり、直線が多い。レベル「低」のアンチエイリアス処理においても、文字「曜」については、綺麗な文字を描画できるのは、このように、直線が多いことに起因する。
曲線が多い文字のアウトラインデータ（Ｄ）に含まれる描画命令の大半は、曲線描画命令となる。したがって、文字「あ」においては、総描画命令数に対する曲線描画命令数の割合は大きくなる。これに対し、文字「曜」においては、総描画命令数に対する曲線描画命令数の割合は小さくなる。
【００２７】
以上の点に鑑み、第２の実施形態にかかる処理においては、ＮとＮ閾値との比較処理（ステップＳ４０２）だけでなく、ＣＮ／Ｎと割合閾値との比較処理（ステップＳ５０２）にしたがって、レベルを決定することとした。
これにより、第２の実施形態に係る描画装置１００は、曲線描画命令数の割合が低い文字に対しては、綺麗な文字を描画することができるだけでなく、計算負荷を軽減し、処理の高速化を図ることができる。
第２の実施形態にかかる描画装置１００のこれ以外の構成及び処理は、第１の実施形態にかかる描画装置１００の構成及び処理と同様である。
【００２８】
なお、レベル決定部２０３は、曲線描画命令の数に替えて、直線描画命令の数（ＬＮ）を特定してもよい。この場合、レベル決定部２０３は、ＬＮ／Ｎと割合閾値とを比較する。そして、レベル決定部２０３は、ＬＮ／Ｎが割合閾値以上である場合に、複雑度を「低」に決定し、ＬＮ／Ｎが割合閾値未満である場合に、複雑度を「高」に決定する。
【００２９】
なお、本実施形態にかかる描画装置１００は、文字の形状に基づいて、アンチエイリアス処理のレベルを決定するための具体的な処理として、描画命令数を参照することとしたが、これに限定されるものではない。
他の例としては、レベル決定部２０３は、アウトラインデータ（Ｄ）から、アウトラインフォント（Ｆ）の制御点の数及び制御点の種類を特定し（制御点数特定処理）、制御点の数及び制御点の種類に基づいて、レベルを決定してもよい。具体的には、レベル決定部２０３は、制御点の数が制御点閾値以上である場合にレベルを「高」、制御点の数が制御点閾値未満である場合にレベルを「低」に決定する。
文字の画数が多い程制御点の数が多くなる。また、曲線の割合が多い程、また曲線が複雑な程、制御点の数が多くなる。したがって、描画装置１００は、制御点の数が多い文字に対し、より高いレベルを決定することにより、文字の形状に適したアンチエイリアス処理を行うことができる。
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３０】
以上、上述した各実施形態によれば、描画対象に適したレベルのアンチエイリアス処理を行うことにより、計算負荷を低減しつつ、見た目に綺麗な文字を描画することができる。
【００３１】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３２】
１００  描画装置、１０１  ＣＰＵ、１０２  ＲＯＭ、１０３  ＲＡＭ、１０４  表示部、２００  処理部、２０１  取得部、２０２  レベル確認部、２０３  レベル決定部、２０４  描画部
【図１】
2015075884.tif 000003
【図２】
2015075884.tif 000004
【図３】
2015075884.tif 000005
【図４】
2015075884.tif 000006
【図５】
2015075884.tif 000007
【図６】
2015075884.tif 000008