(57)【要約】  フィルタ処理を行う際に、演算量の増加を抑制しつつ、図形本体と影形状の描画順序を考慮する必要がない描画装置を提供する。  描画装置（６００）であって、原画像の画素位置情報を含む原画像データを格納するためのラスタライズ結果格納部（６０３）と、原画像データを生成しラスタライズ結果格納部（６０３）に書き込むラスタライズ処理部（６０２）と、原画像データを読み出し、画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部（６０４）と、フィルタ処理を行うか否かの判断結果に応じてフィルタ処理を行い、フィルタ処理データを生成するフィルタ処理部（６０６）と、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する描画部（６０７）とを備える。
2010134292.tif 000002
【特許請求の範囲】
【請求項１】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを格納するための第一格納部と、
前記原画像データを生成し、生成した前記原画像データを前記第一格納部に書き込むラスタライズ処理部と、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部と
を備える描画装置。
【請求項２】
前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、
前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素に対してはフィルタ処理を行わないと判断する
請求項１に記載の描画装置。
【請求項３】
前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、
前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する
請求項１に記載の描画装置。
【請求項４】
さらに、
画素毎にフィルタ処理を行うか否かを示すフィルタ処理必要データを格納するための第二格納部を備え、
前記フィルタ処理必要画素判断部は、画素毎にフィルタ処理を行うか否かを判断することで、前記第二格納部に格納されている前記フィルタ処理必要データを更新し、
前記フィルタ処理部は、更新された前記フィルタ処理必要データを参照して、前記フィルタ処理データを生成する
請求項１〜３のいずれか１項に記載の描画装置。
【請求項５】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画方法であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
を含む描画方法。
【請求項６】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行うためのプログラムであって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
をコンピュータに実行させるプログラム。
【請求項７】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行うためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置を制御する集積回路であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理部と、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部と
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル民生機器のユーザＩＦ描画など各種図形描画技術に関するものであり、特に、描画対象の画像にフィルタ処理を行う描画装置及び描画方法に関する。
【背景技術】
【０００２】
近年、機器の文字描画には、デザイン性の高さや視認性の高さが求められてきている。そして、文字描画のデザイン性と視認性とを飛躍的に向上させるための手法として、「ドロップシャドウ」と呼ばれる手法が広く知られている。【０００３】
ドロップシャドウとは、図形本体に対し擬似的な影を描画することで、あたかも図形が浮き出ているような印象をユーザに与えるものである。たとえば図１Ａ及び図１Ｂは、テレビにおけるＩＦ（Ｉｎｔｅｒｆａｃｅ）画面の一例である。この例では、テレビ画面の映像１０５に重畳して、テレビが具備する再生機能と録画機能とをユーザに選択させるためのメニュー表示を行っている。【０００４】
具体的には、図１Ａは、従来技術におけるドロップシャドウを用いた場合におけるＩＦ画面表示例を示す図であり、図１Ｂは、従来技術におけるドロップシャドウを用いなかった場合におけるＩＦ画面表示例を示す図である。【０００５】
図１Ａに示すように、再生機能のためのメニューは、再生という文字列１０１と、文字列１０１の影１０２、そして、再生という文字列１０１を囲っている板状矩形１０３と、板状矩形１０３の影１０４とで構成されている。このようにドロップシャドウを用いることで、図１Ｂに示したドロップシャドウを用いなかった場合と比較し、テレビ映像１０５に対して、当該再生機能のためのメニューが浮き出ているような立体感をユーザに与えることが可能となる。録画機能のためのメニューについても、同様である。【０００６】
また一方で、機器の高機能化とともに表示画面の高解像度化が進行していることから、描画技術分野においては表示解像度に依存せず高品位な描画結果が得られるベクターグラフィクス（ＶＧ）技術の適用が広がりつつある。【０００７】
とりわけ、ベクターグラフィクスの世界標準ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）規格であるＯｐｅｎＶＧが策定されて以降、ＯｐｅｎＶＧが規定するＡＰＩをハードウェアアクセラレーションする各種ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が発表されており、今後はＯｐｅｎＶＧを用いた描画アプリケーションの数が急速に拡大するものと思われる。【０００８】
ＯｐｅｎＶＧでは、前述のドロップシャドウを実現するためのＡＰＩも規格化している。ここでは、ＯｐｅｎＶＧが規定するＡＰＩを用いてドロップシャドウ効果を付加した描画を行うための手順を説明する。【０００９】
図２は、ＯｐｅｎＶＧによるドロップシャドウ実現のための従来の描画装置３００の処理手順を示したフローチャートである。図３は、ＯｐｅｎＶＧによるドロップシャドウ実現のための従来の描画装置３００の機能構成を示すブロック図である。また、図４Ａ〜図４Ｄは、この手順を用いた例として「再生」という文字列にドロップシャドウ効果を付加して描画させる場合の入力データ、中間データ、出力データの具体例を示したものである。【００１０】
図２に示すように、まず始めに、ユーザは、描画したい図形のベクトルデータ（頂点データ）を、描画装置３００が有するＯｐｅｎＶＧに設定する（Ｓ１０２）。ここで、ベクトルデータは、図形の輪郭を直線やベジエ曲線の集まりで表現したときの曲線制御点の２次元座標（ｘ、ｙ）の並びであり、例えばＴｒｕｅＴｙｐｅフォントデータとして一般に広く提供されている。【００１１】
この場合の例を、図４Ａに示す。つまり、図４Ａは、ドロップシャドウを実現するための入力データの一例を示す図である。また、この処理は、図３に示された描画装置３００に備えられた図形ベクトルデータ入力部３０１により行われ、具体的には、ＯｐｅｎＶＧのｖｇＡｐｐｅｎｄＰａｔｈＤａｔａ（）のＡＰＩにより行われる。【００１２】
図２に戻り、次に、描画装置３００は、ベクトルデータで表現された輪郭線の領域内部の画素を塗りつぶして画像データへ変換する（Ｓ１０４）。より具体的には、描画装置３００は、画像を構成する画素に対し、その画素位置と輪郭線位置との関係により、その画素に対し塗りつぶしを行う画素か否かを判断し、必要な画素に対して塗りつぶし処理を行う。以降、この処理をラスタライズ処理と呼ぶ。【００１３】
ラスタライズ処理により得られる結果の例を、図４Ｂに示す。つまり、図４Ｂは、ドロップシャドウを実現するための中間データの一例を示す図である。また、この処理は、図３に示された描画装置３００に備えられたラスタライズ処理部３０２により行われ、具体的には、ＯｐｅｎＶＧのｖｇＤｒａｗＰａｔｈ（）のＡＰＩにより行われる。このとき、ラスタライズ処理部３０２は、ラスタライズ結果をラスタライズ結果格納部３０３に格納する。この時点では、まだラスタライズ結果はユーザに提示されない。【００１４】
図２に戻り、次に、描画装置３００は、図形の擬似的な影形状を得るために、ラスタライズ結果格納部３０３に格納されたラスタライズ結果に対し、ぼかしフィルタ処理を適用する（Ｓ１０６）。これにより、ラスタライズ結果の内容をぼかした画像を得ることが出来る。【００１５】
なお、フィルタ処理とは、画像を構成する１画素あたり、その画素を中心とした（Ｍ×Ｎ）個の画素値と、同じく（Ｍ×Ｎ）個のフィルタ係数とを積和算するという処理を全画素に対して施すことであり、ぼかしや輪郭強調などの効果画像を得ることができる処理である。【００１６】
図５Ａ〜図５Ｃは、従来技術におけるフィルタ処理の詳細を示した図である。具体的には、図５Ａ〜図５Ｃは、「生」という図形画像に対してフィルタ処理する際に、座標位置（ｘ、ｙ）における画素値ｐ（ｘ、ｙ）に注目して、フィルタ処理結果である画素値ｐ’（ｘ、ｙ）を得る処理を視覚的に示した図である。【００１７】
さらに具体的には、図５Ａは、フィルタ処理結果の画素値ｐ’（ｘ、ｙ）を得るために、フィルタ処理対象となる（Ｍ×Ｎ）個の範囲を示した図である。処理範囲であるＭおよびＮの値は、所望するフィルタ効果によりその値を変えるが、ここでは（７×７）個の例を示している。また、図５Ｂは、フィルタ処理結果の画素値ｐ’（ｘ、ｙ）を得るための数式であり、図５Ｃは、この数式を視覚的に示した図である。ｋで示されるフィルタ係数は、所望するフィルタ効果によりその値を適宜設定される。【００１８】
これらの図に示すとおり、フィルタ処理では、画素を中心とした周辺Ｍ×Ｎ個の画素それぞれに対してフィルタ係数を乗算し、それらを積算する必要があるため、１画素あたり（Ｍ×Ｎ）回の積和演算を必要とする。さらに画像を構成するすべての画素に対してこの処理を行う必要があるため、その計算負荷がとても高い。【００１９】
このフィルタ処理は、図３に示された描画装置３００に備えられたフィルタ処理部３０４によって行われ、具体的には、ＯｐｅｎＶＧのｖｇＧａｕｓｓｉａｎＢｌｕｒ（）のＡＰＩにより行われる。フィルタ処理部３０４は、こうして得られたフィルタ処理済み画像を、フィルタ処理結果格納部３０５に格納する。【００２０】
フィルタ処理結果格納部３０５に格納されたフィルタ処理結果の例を、図４Ｃに示す。この図が示すように、フィルタ処理によって「再生」という文字列がぼけた画像が得られる。つまり、図４Ｃは、ドロップシャドウを実現するための中間データの一例を示す図である。【００２１】
図２に戻り、次に、描画装置３００は、フィルタ処理結果格納部３０５に格納されている影形状と、ラスタライズ結果格納部３０３に格納されている図形本体形状とを、描画結果格納領域に描画する（Ｓ１０８、Ｓ１１０）。【００２２】
このとき、描画装置３００は、影形状を描画する位置を、図形本体の描画位置から数ピクセルずらして描画する。また、描画装置３００は、影形状を図形本体に先行して描画する。影形状の一部は後から描画する図形本体に上書きされるが、これにより影形状と図形本体との奥行き順序が保証され、擬似的な立体感を得ることができる。【００２３】
この描画装置３００が図形本体と影形状とを描画して得られる結果画像を図４Ｄに示す。つまり、図４Ｄは、ドロップシャドウを実現するための出力データの一例を示す図である。また、この処理は、図３に示された描画装置３００に備えられた描画部３０６によって行われ、具体的には、ＯｐｅｎＶＧのｖｇＤｒａｗＩｍａｇｅ（）のＡＰＩにより行われる。こうして得られた描画結果は、描画結果格納部３０７によって格納され、ユーザに提示される。【００２４】
以上の処理により、従来の描画装置３００は、ドロップシャドウ効果を付加した描画を行うことが出来る。【００２５】
このような従来の技術としては、例えば以下の非特許文献１に記載されたものが知られている。
【先行技術文献】
【非特許文献】
【００２６】
【非特許文献１】ＯｐｅｎＶＧ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ１．１、[online]、Ｋｈｒｏｎｏｓ  Ｇｒｏｕｐ、[平成２１年５月１９日検索]、インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｋｈｒｏｎｏｓ．ｏｒｇ／ｏｐｅｎｖｇ／〉
【発明の概要】
【発明が解決しようとする課題】
【００２７】
しかしながら、従来の描画装置３００では、以下に示す２つの課題がある。【００２８】
第１の課題は、従来の標準ＡＰＩ規格であるＯｐｅｎＶＧを用いてドロップシャドウを実現した場合、描画結果を得るまでの演算量が膨大になってしまうという課題である。【００２９】
その理由は、影形状を得るためのフィルタ処理において、１画素あたり（Ｍ×Ｎ）回の積和演算を全画素に対して施す必要があるためである。そのため、ＣＰＵ演算性能やメモリ帯域などのハード資源がそれほど十分ではない機器では、ドロップシャドウの膨大な演算量を処理しきれず、描画速度が極端に低下してしまう。このため、ユーザ操作に対する反応が悪くなってしまい、非常に使いにくいものとなってしまう。【００３０】
また、第２の課題は、従来の描画装置３００では、図形本体と影形状の描画順序が決められており、図形本体を影形状に先行して描画することができないという課題である。その理由は、図形本体を影形状に先行して描画すると、影形状が図形本体を上書きしてしまい、図形本体と影形状との奥行き順序が逆になってしまうためである。【００３１】
以上のように、従来の描画装置３００では、フィルタ処理を行う際に、演算量が膨大になってしまうとともに、影形状と図形本体の描画順序を考慮して描画しなければならないという課題がある。【００３２】
そこで、本発明は、上記従来の課題を解決するものであり、フィルタ処理を行う際に、演算量の増加を抑制しつつ、図形本体と影形状の描画順序を考慮する必要がない描画装置及び描画方法を提供することを目的とする。
【課題を解決するための手段】
【００３３】
上記目的を達成するために、本発明の一態様に係る描画装置は、描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置であって、前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを格納するための第一格納部と、前記原画像データを生成し、生成した前記原画像データを前記第一格納部に書き込むラスタライズ処理部と、前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部とを備える。【００３４】
これによれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所とを予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。【００３５】
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素（図形本体を構成する画素）は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素（影形状を構成する画素）は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。【００３６】
また、好ましくは、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素に対してはフィルタ処理を行わないと判断する。【００３７】
これによれば、原画像（図形本体）を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理（外側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。【００３８】
また、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断することにしてもよい。【００３９】
これによれば、原画像（図形本体）を構成する座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の内側の領域に対してフィルタ処理を行い、図形本体の内側の領域に影形状を描画する。このため、図形本体の内側の領域に影形状を描画するフィルタ処理（内側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。【００４０】
また、好ましくは、さらに、画素毎にフィルタ処理を行うか否かを示すフィルタ処理必要データを格納するための第二格納部を備え、前記フィルタ処理必要画素判断部は、画素毎にフィルタ処理を行うか否かを判断することで、前記第二格納部に格納されている前記フィルタ処理必要データを更新し、前記フィルタ処理部は、更新された前記フィルタ処理必要データを参照して、前記フィルタ処理データを生成する。【００４１】
これによれば、フィルタ処理を行うか否かを示すフィルタ処理必要データが第二格納部に格納され、当該第二格納部に格納されているフィルタ処理必要データを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。【００４２】
なお、本発明は、このような描画装置として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【００４３】
本発明に係る描画装置によれば、フィルタ処理を行う際に、演算量の増加を抑制することができる。また、本発明に係る描画装置を用いれば、図形本体と影形状の描画順序を考慮する必要がない。
【図面の簡単な説明】
【００４４】
【図１Ａ】図１Ａは、従来技術におけるドロップシャドウを用いた場合におけるＩＦ画面表示例を示す図である。
【図１Ｂ】図１Ｂは、従来技術におけるドロップシャドウを用いなかった場合におけるＩＦ画面表示例を示す図である。
【図２】図２は、従来技術におけるドロップシャドウ実現のための描画装置の処理手順を示すフローチャートである。
【図３】図３は、従来技術におけるドロップシャドウ実現のための描画装置の機能構成を示すブロック図である。
【図４Ａ】図４Ａは、従来技術におけるドロップシャドウを実現するための入力データの一例を示す図である。
【図４Ｂ】図４Ｂは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。
【図４Ｃ】図４Ｃは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。
【図４Ｄ】図４Ｄは、従来技術におけるドロップシャドウを実現するための最終データの一例を示す図である。
【図５Ａ】図５Ａは、従来技術におけるフィルタ処理の詳細を示した図である。
【図５Ｂ】図５Ｂは、従来技術におけるフィルタ処理の詳細を示した図である。
【図５Ｃ】図５Ｃは、従来技術におけるフィルタ処理の詳細を示した図である。
【図６】図６は、本発明の実施の形態における描画装置の機能構成を示すブロック図である。
【図７】図７は、本実施の形態における原画像データの一例を示す図である。
【図８】図８は、本実施の形態におけるフィルタ処理必要データの一例を示す図である。
【図９】図９は、本発明の実施の形態における描画装置の処理手順の全体を示すフローチャートである。
【図１０】図１０は、本発明の実施の形態におけるフィルタ処理必要画素判断部がフィルタ処理必要データを更新する処理を示すフローチャートである。
【図１１Ａ】図１１Ａは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。
【図１１Ｂ】図１１Ｂは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。
【図１１Ｃ】図１１Ｃは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。
【図１２】図１２は、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データの具体例を示す図である。
【図１３】図１３は、本発明の実施の形態の変形例における描画装置の処理を説明する図である。
【図１４】図１４は、本発明の実施の形態における描画装置が行う処理の他の例を説明する図である。
【図１５】図１５は、本発明の実施の形態及びその変形例における描画装置を集積回路で実現する一例を示す図である。
【発明を実施するための形態】
【００４５】
以下、本発明の実施の形態における描画装置について、図面を参照しながら説明する。
【００４６】
図６は、本発明の実施の形態における描画装置６００の機能構成を示すブロック図である。
【００４７】
描画装置６００は、描画対象の画像である原画像に、当該原画像を装飾するフィルタ処理を行う装置である。同図に示すように、描画装置６００は、図形ベクトルデータ入力部６０１、ラスタライズ処理部６０２、ラスタライズ結果格納部６０３、フィルタ処理必要画素判断部６０４、フィルタ処理必要格納部６０５、フィルタ処理部６０６、描画部６０７、及び描画結果格納部６０８を備えている。
【００４８】
図形ベクトルデータ入力部６０１は、描画したい図形である原画像のベクトルデータを読み込む処理部である。ここで、ベクトルデータとは、原画像を構成する画素の位置を示す画素位置情報（画素の座標位置を示す座標位置データ）であり、図形の輪郭を直線やベジエ曲線の集まりで表現したときの制御点座標の並びである。ベクトルデータの例としては、例えばＴｒｕｅＴｙｐｅフォントデータとして一般に広く提供されているものがある。
【００４９】
ラスタライズ処理部６０２は、原画像データ６０３ａを生成し、生成した原画像データ６０３ａをラスタライズ結果格納部６０３に書き込む処理部である。原画像データ６０３ａとは、原画像を示すデータであり、原画像を構成する画素の位置を示す座標位置データと、原画像を構成する画素の色を示す色データとを含むデータである。
【００５０】
具体的には、ラスタライズ処理部６０２は、画素位置情報として原画像を構成する画素の座標位置を示す座標位置データ（ベクトルデータ）を算出して、当該座標位置データと色データとを含む原画像データ６０３ａを生成する。つまり、ラスタライズ処理部６０２は、ベクトルデータで表現された輪郭領域内部の画素を色データで示される色で塗りつぶすように、原画像データ６０３ａを生成する。
【００５１】
ここで、原画像データ６０３ａについて、説明する。
【００５２】
図７は、本実施の形態における原画像データ６０３ａの一例を示す図である。
【００５３】
同図に示すように、原画像データ６０３ａには、原画像を構成する各画素の画素位置に対応して、画素ごとの輝度値を示すデータが入力されている。なお、原画像がカラー画像の場合は、原画像データ６０３ａの各画素の画素位置には、画素ごとの色差を示すデータも入力されている。つまり、この原画像データ６０３ａは、各画素の座標位置データと色データとから構成される画素データの集まりであり、塗りつぶす画素位置と塗りつぶす色との組み合わせの並びである。
【００５４】
なお、原画像データ６０３ａには、座標位置データが含まれていればよく、色データは含まれていなくともよい。つまり、ラスタライズ処理部６０２は、座標位置データのみ含まれている原画像データ６０３ａを生成することにしてもよい。
【００５５】
図６に戻り、ラスタライズ結果格納部６０３は、ラスタライズ処理部６０２が生成した原画像データ６０３ａを格納するためのメモリである。なお、ラスタライズ結果格納部６０３は、請求の範囲に記載の「第一格納部」に相当する。
【００５６】
フィルタ処理必要画素判断部６０４は、ラスタライズ結果格納部６０３に格納されている原画像データ６０３ａを読み出し、読み出した原画像データ６０３ａに含まれる画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断する処理部である。つまり、フィルタ処理必要画素判断部６０４は、ラスタライズ結果格納部６０３が格納している塗りつぶし画素位置と、フィルタ適用範囲との関係から、フィルタ処理要否の判断が必要な画素毎にフィルタ処理が必要か否かを判定する。
【００５７】
なお、フィルタ処理要否の判断が必要な画素とは、ディスプレイに表示される全画素でもよいし、図形本体と図形本体の周辺の数画素とを含む画素でもよいし、図形本体に含まれる画素のみでもよく、ユーザによりどのような範囲の画素にも設定可能である。
【００５８】
ここで、本実施の形態では、フィルタ処理必要画素判断部６０４は、原画像を構成する画素の座標位置を示す座標位置データで示される座標位置の画素に対しては、フィルタ処理を行わないと判断する。
【００５９】
そして、フィルタ処理必要画素判断部６０４は、画素毎にフィルタ処理を行うか否かを判断することで、フィルタ処理必要格納部６０５に格納されているフィルタ処理必要データ６０５ａを更新する。
【００６０】
フィルタ処理必要格納部６０５は、フィルタ処理必要画素判断部６０４が算出したフィルタ処理必要データ６０５ａを格納するためのメモリである。このフィルタ処理必要データ６０５ａは、画素毎にフィルタ処理を行うか否かを示すデータであり、画素の位置とフィルタ処理要否との組み合わせの並びである。なお、フィルタ処理必要格納部６０５は、請求の範囲に記載の「第二格納部」に相当する。
【００６１】
ここで、フィルタ処理必要データ６０５ａについて、説明する。
【００６２】
図８は、本実施の形態におけるフィルタ処理必要データ６０５ａの一例を示す図である。
【００６３】
同図に示すように、フィルタ処理必要データ６０５ａは、各画素の座標位置「座標（ｘ，ｙ）」における「フィルタ処理要否」を示す情報の集まりである。つまり、「座標（ｘ，ｙ）」は、各画素の座標位置をｘｙ座標系で示しており、「フィルタ処理要否」は、画素ごとにフィルタ処理を行うか否かを示している。
【００６４】
例えば、座標（０，０）の画素は、フィルタ処理が不要であることを示しており、座標（３，０）の画素は、フィルタ処理が必要であることを示している。また、座標（２，０）の画素は、図形本体（原画像）を構成する画素であることを示している。
【００６５】
図６に戻り、フィルタ処理部６０６は、更新されたフィルタ処理必要データ６０５ａを参照して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成する処理部である。
【００６６】
具体的には、フィルタ処理部６０６は、フィルタ処理必要格納部６０５が格納している、画素毎のフィルタ処理要否情報であるフィルタ処理必要データ６０５ａを用いて、ラスタライズ結果格納部６０３が格納しているラスタライズ結果である原画像データ６０３ａに対して、フィルタ処理が必要な画素に対してのみフィルタ処理を施す。
【００６７】
描画部６０７は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、描画部６０７は、ラスタライズ結果格納部６０３が格納している原画像データと、フィルタ処理部６０６で処理されたフィルタ処理データとを描画する。
【００６８】
描画結果格納部６０８は、描画部６０７で処理されたデータを格納する。
【００６９】
以上のように構成された描画装置６００について、以下、その動作を説明する。
【００７０】
図９は本実施の形態における描画装置６００の動作の一例を示すフローチャートである。
【００７１】
同図に示すように、まず始めに、図形ベクトルデータ入力部６０１が、原画像のベクトルデータを読み込む（Ｓ２０２）。つまり、図形ベクトルデータ入力部６０１が、設定された頂点データ列を読み込む。このとき、図形ベクトルデータ入力部６０１は、読み込んだ頂点データ列に対して必要に応じて座標変換を施すことにより、図形を描画するサイズを拡大・縮小したり、描画する位置を移動したり、図形を回転させたりすることが可能である。
【００７２】
次に、入力されたベクトルデータに対しラスタライズ処理を行うが、このときラスタライズ処理が必要な全ての画素に対して以下の処理を行う（ループ１：Ｓ２０４〜Ｓ２１２）。なお、ラスタライズ処理が必要な画素とは、入力されたベクトルデータの最大値・最小値により定まる領域としてもよい。
【００７３】
まず、ラスタライズ処理部６０２が、ある１つの画素に対しそれが塗りつぶしを行う画素か行わない画素なのかを判定する（Ｓ２０６）。この判定は、ラスタライズ処理部６０２が、当該画素が例えばベクトルデータで囲まれる範囲内か否かを判定して、当該範囲内であれば塗りつぶしを行う画素と判定する、などの方法で行う。
【００７４】
ここで、ラスタライズ処理部６０２は、塗りつぶしを行う画素であると判定した場合（Ｓ２０６でＹＥＳ）、原画像データ６０３ａのうちその画素についての画素データをラスタライズ結果格納部６０３に格納する（Ｓ２０８）。このようにして、ラスタライズ処理部６０２は、原画像データ６０３ａを生成し、生成した原画像データ６０３ａをラスタライズ結果格納部６０３に書き込む。
【００７５】
そして、フィルタ処理必要画素判断部６０４は、塗りつぶす画素の位置を含む原画像データ６０３ａをラスタライズ結果格納部６０３から読み出し、その画素位置からフィルタ処理が必要となる画素領域の算出を行う。そして、フィルタ処理必要画素判断部６０４は、その結果を用いてフィルタ処理必要格納部６０５が格納しているフィルタ処理必要データ６０５ａを更新する（Ｓ２１０）。
【００７６】
ここで、このフィルタ処理必要画素判断部６０４がフィルタ処理必要データ６０５ａを更新する処理の詳細について、説明する。
【００７７】
図１０は、本実施の形態におけるフィルタ処理必要画素判断部６０４がフィルタ処理必要データ６０５ａを更新する処理の流れを示したフローチャートである。
【００７８】
また、図１１Ａ〜図１１Ｃは、本発明の実施の形態におけるフィルタ処理必要データ６０５ａを座標位置に従って配置した図である。また、図１２は、本発明の実施の形態におけるフィルタ処理必要データ６０５ａの具体例を示す図であり、そのデータに関する説明を容易に行うために画素位置の並びで表記したものである。
【００７９】
フィルタ処理必要格納部６０５は、画像を構成する全ての画素に対し３種類の状態値を保持する。３種類の状態値とは、「０：この画素はフィルタ処理が不要である」、「１：この画素はフィルタ処理が必要である」及び「２：この画素は図形本体を描画する」の３種類である。図１１Ａに、初期状態のフィルタ処理必要データ６０５ａの具体例を示す。初期状態のフィルタ処理必要データ６０５ａは、初期値としてすべての画素に対して「０」の状態値が設定されている。
【００８０】
図１０に示すように、まず、フィルタ処理必要画素判断部６０４は、ラスタライズ結果格納部６０３に格納されている原画像データ６０３ａを読み出し、ラスタライズ処理により図形本体を塗りつぶす画素の座標位置データを受け取る（Ｓ３０２）。座標位置データは、Ｐ（Ｘ、Ｙ）の組で表現される２次元座標とする。以降の説明では、例として、フィルタ処理必要画素判断部６０４がＰ（Ｘ＝２，Ｙ＝２）の座標を受け取ったとして説明する。
【００８１】
次に、フィルタ処理必要画素判断部６０４は、画素位置Ｐ（Ｘ＝２，Ｙ＝２）は図形本体を描画する画素であるという情報を保持するために、フィルタ処理必要格納部６０５が保持するフィルタ処理必要データ６０５ａに対し、座標Ｐ（Ｘ＝２、Ｙ＝２）に対するフィルタ処理要否として「２：図形本体を描画」という値を書き込む（Ｓ３０４）。この値が書かれている画素は最終的にユーザに提示する際に、図形本体が描かれる位置となるので影は描画する必要が無い。すなわち座標Ｐ（Ｘ＝２，Ｙ＝２）位置の画素に対するフィルタ処理は不要であることを示す。
【００８２】
次に、フィルタ処理必要画素判断部６０４は、図形本体に対する影形状のずらし量を考慮して、入力された座標をずらした座標を算出する（Ｓ３０６）。なお、このずらし量は、ユーザの入力により、自由に設定可能である。
【００８３】
例えば、図４Ｄでは、図形本体に対して右に３画素、下に２画素ずらした位置に影形状が描画されており、これと同様のずらし量が設定されている場合には、フィルタ処理必要画素判断部６０４は、入力座標を右に３画素、下に２画素ずらした位置を算出する。このずらし位置をＰ’（Ｘ’，Ｙ’）とすると、ずらし位置座標はＰ’（Ｘ’＝５，Ｙ’＝４）となる。
【００８４】
なお、この例では、図形本体に付加する効果としてドロップシャドウを想定しているためずらし量を設定したが、他の効果（例えば光沢など）を付加する場合など、ずらし量が０となる場合もありえる。
【００８５】
次に、ずらし位置座標Ｐ’を中心として、フィルタ処理が行われる領域であるフィルタサイズ（Ｍ×Ｎ）の大きさの矩形領域に含まれる画素に対して以下の処理を行う（ループ３：Ｓ３０８〜３１４）。フィルタサイズ（Ｍ×Ｎ）の値は、所望するフィルタ効果によりその値を変えるが、ここでは、フィルタサイズがＭ＝５、Ｎ＝５の場合を例にして説明する。
【００８６】
まず、フィルタ処理必要画素判断部６０４は、５×５の画素のうちの１つの画素の座標を座標Ｑ（Ｘ”、Ｙ”）として設定し、その座標Ｑに対するフィルタ処理必要データを読み出す。そして、フィルタ処理必要画素判断部６０４は、その値が「０：フィルタ処理不要」となっているか否かを判定する（Ｓ３１０）。座標Ｑは、５×５の画素のうちの１つの画素であり、上記処理が終われば、５×５の画素の中から別の画素を取り出して座標Ｑとして設定される。そして、上記処理をすべての画素に対して行っていく。
【００８７】
そして、フィルタ処理必要画素判断部６０４は、座標Ｑに対するフィルタ処理必要データの値が「０：フィルタ処理不要」となっていると判断した場合（Ｓ３１０でＹＥＳ）、座標Ｑに対するフィルタ処理必要データを「１：フィルタ処理必要」という値として書き込む（Ｓ３１２）。
【００８８】
また、フィルタ処理必要画素判断部６０４は、座標Ｑに対するフィルタ処理必要データの値がすでに「１：フィルタ処理」になっている場合や、「２：図形描画」となっている場合は（Ｓ３１０でＮＯ）、座標Ｑに対するフィルタ処理必要データを書き換えることなく、次の画素についての処理を続ける（ループ３：Ｓ３０８〜３１４）。
【００８９】
このようにして、フィルタ処理必要画素判断部６０４は、図１１Ｂに示されるようにフィルタ処理必要データ６０５ａを更新する。
【００９０】
図９に戻り、ラスタライズ処理で塗りつぶす１つの画素に対するフィルタ処理必要データの更新処理（Ｓ２１０）を終えると、再度ラスタライズ処理ループ（ループ１：Ｓ２０４〜２１２）に戻り、次の画素についても同様の処理（Ｓ２０６〜２１０）を行う。
【００９１】
例えば、フィルタ処理必要画素判断部６０４は、塗りつぶす画素の位置が座標Ｐ（３、２）であると判定した場合には、フィルタ処理必要データ６０５ａに対し、座標Ｐ（Ｘ＝３、Ｙ＝２）に対するフィルタ処理要否として「２：図形描画」という値を書き込む（図１０のＳ３０４）。
【００９２】
そして、フィルタ処理必要画素判断部６０４は、座標Ｐ（Ｘ＝３、Ｙ＝２）に対して右に３画素、下に２画素ずらしたずらし位置座標を、Ｐ’（Ｘ’＝６，Ｙ’＝４）と求める（図１０のＳ３０６）。
【００９３】
また、フィルタ処理必要画素判断部６０４は、ずらし位置座標Ｐ’を中心として、フィルタサイズの大きさに含まれる画素に対して、それぞれフィルタ処理必要格納部６０５のフィルタ処理必要データを読み出し、「０：フィルタ処理不要」となっているか否かを判定する（図１０のＳ３１０）。
【００９４】
もし、「０：フィルタ処理不要」となっていると判断されれば、フィルタ処理必要画素判断部６０４は、該当するフィルタ処理必要格納部６０５のフィルタ処理必要データを「１：フィルタ処理必要」という値として書き込む（図１０のＳ３１２）。なお、すでに「１：フィルタ処理」になっている場合や、「２：図形描画」となっている場合は、フィルタ処理必要画素判断部６０４は、何も処理しない。
【００９５】
ここまでで得られるフィルタ処理必要格納部６０５のフィルタ処理必要データ６０５ａの内容を図１１Ｃに示す。図１１Ｂの時点でのフィルタ処理必要データ６０５ａでは、Ｐ（Ｘ＝３、Ｙ＝２）の画素は「１：フィルタ処理必要」となっていたが、それが「２：図形描画」に上書きされており、不要なフィルタ処理領域が識別できていることがわかる。
【００９６】
そして、図９に戻り、再度ラスタライズ処理ループ（ループ１：Ｓ２０４〜２１２）に戻り、ラスタライズ処理が必要な全ての画素について、同様の処理（Ｓ２０６〜２１０）を繰り返し行う。
【００９７】
ここまでの処理（Ｓ２０４〜Ｓ２１２）により、入力したベクトルデータに対応するラスタライズ結果がラスタライズ結果格納部６０３に格納されるとともに、そのラスタライズに対してフィルタ処理が必要となる画素領域がフィルタ処理必要格納部６０５に格納される。
【００９８】
図１２に、「生」という図形本体に対してフィルタ処理が必要か否かの判断が完了した時点のフィルタ処理必要データ６０５ａの例を示す。この図において、空欄となっている画素は「０：フィルタ処理不要」であることを示している。以降の処理において、フィルタ処理が必要な画素は「１：フィルタ処理必要」となっている画素だけでよい。
【００９９】
なお、同図では、図形本体は、「生」という文字であるが、図形本体は、文字に限定されず、どのような図形であってもよく、写真であってもよい。
【０１００】
図９に戻り、次に、フィルタ処理必要格納部６０５が格納しているフィルタ処理必要データ６０５ａをフィルタ処理部６０６が読み出すことで、フィルタ処理要否状態が「２：フィルタ処理必要」となっている画素に対して以下の処理が行われる（ループ２：Ｓ２１４〜Ｓ２２０）。
【０１０１】
まず、フィルタ処理部６０６は、ラスタライズ結果格納部６０３に格納されている原画像データ６０３ａのうち、フィルタ処理が必要な画素に対してフィルタ処理を行う（Ｓ２１６）。
【０１０２】
より具体的には、フィルタ処理部６０６は、１個のフィルタ処理が必要な画素に対し、その画素を中心とした（Ｍ×Ｎ）個の画素値と、同じく（Ｍ×Ｎ）個のフィルタ係数とを積和演算する。そして、フィルタ処理部６０６は、当該演算の結果得られる画素値であるフィルタ処理データを生成する。
【０１０３】
次に、描画部６０７は、フィルタ処理の演算結果として得られる画素値（フィルタ処理データ）を、フレームバッファに描画する（Ｓ２１８）。フレームバッファとは、描画結果格納部６０８が格納するデータ記憶装置であり、ここに書き込まれた画素値は液晶モニタ等の表示デバイスを通してユーザに視覚情報として提示される。
【０１０４】
このようにして、ここまでの処理（Ｓ２１６〜Ｓ２１８）をフィルタ処理が必要な全ての画素に施すことにより、影形状がフレームバッファに描画される。
【０１０５】
最後に、描画部６０７は、ラスタライズ結果格納部６０３が格納している原画像データ６０３ａの内容を、フレームバッファに描画する（Ｓ２２２）。つまり、描画部６０７は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データの内容を、フレームバッファに描画する。
【０１０６】
以上の処理により、図形本体とその影形状がフレームバッファに描画され、従来例と同じく図４Ｄに示すような立体感のある図形描画を行うことができる。
【０１０７】
以上のように、本実施の形態に係る描画装置６００によれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所を予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。
【０１０８】
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素（図形本体を構成する画素）は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素（影形状を構成する画素）は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。
【０１０９】
また、原画像（図形本体）を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理（外側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
【０１１０】
また、フィルタ処理を行うか否かを示すフィルタ処理必要データ６０５ａがフィルタ処理必要格納部６０５に格納され、当該フィルタ処理必要格納部６０５に格納されているフィルタ処理必要データ６０５ａを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データ６０５ａを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。
【０１１１】
（変形例）
上記実施の形態では、フィルタ処理必要画素判断部６０４は、原画像（図形本体）を構成する座標位置の画素に対してはフィルタ処理を行わないと判断することとした。しかし、本実施の形態の変形例では、フィルタ処理必要画素判断部６０４は、原画像（図形本体）を構成する座標位置の画素以外の画素に対して、フィルタ処理を行わないと判断する。
【０１１２】
図１３は、本実施の形態の変形例における描画装置６００の処理を説明する図である。
【０１１３】
描画装置６００が備えるフィルタ処理必要画素判断部６０４は、原画像を構成する画素の座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、フィルタ処理必要画素判断部６０４は、原画像を構成する画素の座標位置データで示される座標位置の画素に対してフィルタ処理を行うと判断する。
【０１１４】
具体的には、図９に示されたフィルタ処理必要画素判断部６０４がフィルタ処理必要データ６０５ａを更新する処理（図９のＳ２１０）において、フィルタ処理必要画素判断部６０４は、図形本体を構成する画素以外の画素については、フィルタ処理必要データを「０：フィルタ処理不要」という値として書き込む。また、フィルタ処理必要画素判断部６０４は、図形本体を構成する画素については、フィルタ処理必要データを「１：フィルタ処理必要」という値として書き込む。
【０１１５】
これにより、同図に示すように、図形本体の内側の領域に対してフィルタ処理が行われ、図形本体の内側の領域に影形状（凹状の陰形状）が描画される。
【０１１６】
以上のように、本実施の形態の変形例に係る描画装置６００によれば、図形本体の内側の領域に影形状を描画するフィルタ処理（内側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
【０１１７】
以上、本発明に係る描画装置６００について、上記実施の形態及びその変形例を用いて説明したが、本発明は、これに限定されるものではない。
【０１１８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【０１１９】
例えば、上記実施の形態では、描画装置６００は、図形本体の外側の領域に影形状を描画するフィルタ処理（外側ドロップシャドウ）を行うこととした。しかし、描画装置６００は、図形本体のエッジ部に光沢を与えるフィルタ処理（光彩）を行うことにしてもよい。図１４は、この場合の描画装置６００が行う処理を説明する図である。フィルタ処理必要画素判断部６０４が図形本体からずらした座標を算出する処理（図１０のＳ３０６）において、ずらし量を０とすることで、同図に示すようなフィルタ処理（光彩）を行うことができる。
【０１２０】
また、上記実施の形態及びその変形例では、描画装置６００は、図形ベクトルデータ入力部６０１、ラスタライズ処理部６０２、ラスタライズ結果格納部６０３、フィルタ処理必要画素判断部６０４、フィルタ処理必要格納部６０５、フィルタ処理部６０６、描画部６０７及び描画結果格納部６０８を備えていることとした。しかし、描画装置６００は、図形ベクトルデータ入力部６０１、フィルタ処理必要格納部６０５及び描画結果格納部６０８（図６の点線で示された部分）を備えていないことにしてもよい。つまり、描画装置６００は、ラスタライズ処理部６０２、ラスタライズ結果格納部６０３、フィルタ処理必要画素判断部６０４、フィルタ処理部６０６及び描画部６０７を備えていればよく、これらの構成により本発明の目的を達成することができる。
【０１２１】
また、本発明は、このような描画装置６００として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【０１２２】
例えば、上記実施の形態及びその変形例において、描画装置６００は、構成要件の全部あるいはその一部を１つの集積回路上に実装してもよいし、１つの基板上に実装した複数の集積回路であってもよい。
【０１２３】
図１５は、本発明の実施の形態及びその変形例における描画装置６００を集積回路７００で実現する一例を示す図である。
【０１２４】
同図に示すように、集積回路７００は、図６に示された描画装置６００のラスタライズ結果格納部６０３、フィルタ処理必要格納部６０５及び描画結果格納部６０８以外の機能を備えている。なお、集積回路７００は、各処理部が個別に１チップ化されても良いし、一部又は全ての処理部を含むように１チップ化されても良い。
【０１２５】
また、集積回路７００は、点線で示された図形ベクトルデータ入力部６０１を備えないことにしてもよい。つまり、集積回路７００は、ラスタライズ処理部６０２、フィルタ処理必要画素判断部６０４、フィルタ処理部６０６及び描画部６０７を備えていればよく、これらの構成により本発明の目的を達成することができる。また、集積回路７００は、ラスタライズ結果格納部６０３、フィルタ処理必要格納部６０５及び描画結果格納部６０８の少なくとも１つを含むことにしてもよい。
【０１２６】
ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１２７】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１２８】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０１２９】
本発明にかかる描画装置は、とくに演算性能に制限のある組み込み機器向けインタフェース提示装置として実施される、各種文字や図形等の描画装置への応用が有用である。
【符号の説明】
【０１３０】
３００    描画装置
３０１    図形ベクトルデータ入力部
３０２    ラスタライズ処理部
３０３    ラスタライズ結果格納部
３０４    フィルタ処理部
３０５    フィルタ処理結果格納部
３０６    描画部
３０７    描画結果格納部
６００    描画装置
６０１    図形ベクトルデータ入力部
６０２    ラスタライズ処理部
６０３    ラスタライズ結果格納部
６０３ａ  原画像データ
６０４    フィルタ処理必要画素判断部
６０５    フィルタ処理必要格納部
６０５ａ  フィルタ処理必要データ
６０６    フィルタ処理部
６０７    描画部
６０８    描画結果格納部
７００    集積回路
【図１Ａ】
2010134292.tif 000003
【図１Ｂ】
2010134292.tif 000004
【図２】
2010134292.tif 000005
【図３】
2010134292.tif 000006
【図４Ａ】
2010134292.tif 000007
【図４Ｂ】
2010134292.tif 000008
【図４Ｃ】
2010134292.tif 000009
【図４Ｄ】
2010134292.tif 000010
【図５Ａ】
2010134292.tif 000011
【図５Ｂ】
2010134292.tif 000012
【図５Ｃ】
2010134292.tif 000013
【図６】
2010134292.tif 000014
【図７】
2010134292.tif 000015
【図８】
2010134292.tif 000016
【図９】
2010134292.tif 000017
【図１０】
2010134292.tif 000018
【図１１Ａ】
2010134292.tif 000019
【図１１Ｂ】
2010134292.tif 000020
【図１１Ｃ】
2010134292.tif 000021
【図１２】
2010134292.tif 000022
【図１３】
2010134292.tif 000023
【図１４】
2010134292.tif 000024
【図１５】
2010134292.tif 000025
【手続補正書】
【提出日】平成22年12月6日(2010.12.6)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル民生機器のユーザＩＦ描画など各種図形描画技術に関するものであり、特に、描画対象の画像にフィルタ処理を行う描画装置及び描画方法に関する。
【背景技術】
【０００２】
近年、機器の文字描画には、デザイン性の高さや視認性の高さが求められてきている。そして、文字描画のデザイン性と視認性とを飛躍的に向上させるための手法として、「ドロップシャドウ」と呼ばれる手法が広く知られている。
【０００３】
ドロップシャドウとは、図形本体に対し擬似的な影を描画することで、あたかも図形が浮き出ているような印象をユーザに与えるものである。たとえば図１Ａ及び図１Ｂは、テレビにおけるＩＦ（Ｉｎｔｅｒｆａｃｅ）画面の一例である。この例では、テレビ画面の映像１０５に重畳して、テレビが具備する再生機能と録画機能とをユーザに選択させるためのメニュー表示を行っている。
【０００４】
具体的には、図１Ａは、従来技術におけるドロップシャドウを用いた場合におけるＩＦ画面表示例を示す図であり、図１Ｂは、従来技術におけるドロップシャドウを用いなかった場合におけるＩＦ画面表示例を示す図である。
【０００５】
図１Ａに示すように、再生機能のためのメニューは、再生という文字列１０１と、文字列１０１の影１０２、そして、再生という文字列１０１を囲っている板状矩形１０３と、板状矩形１０３の影１０４とで構成されている。このようにドロップシャドウを用いることで、図１Ｂに示したドロップシャドウを用いなかった場合と比較し、テレビ映像１０５に対して、当該再生機能のためのメニューが浮き出ているような立体感をユーザに与えることが可能となる。録画機能のためのメニューについても、同様である。
【０００６】
また一方で、機器の高機能化とともに表示画面の高解像度化が進行していることから、描画技術分野においては表示解像度に依存せず高品位な描画結果が得られるベクターグラフィクス（ＶＧ）技術の適用が広がりつつある。
【０００７】
とりわけ、ベクターグラフィクスの世界標準ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）規格であるＯｐｅｎＶＧが策定されて以降、ＯｐｅｎＶＧが規定するＡＰＩをハードウェアアクセラレーションする各種ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が発表されており、今後はＯｐｅｎＶＧを用いた描画アプリケーションの数が急速に拡大するものと思われる。
【０００８】
ＯｐｅｎＶＧでは、前述のドロップシャドウを実現するためのＡＰＩも規格化している。ここでは、ＯｐｅｎＶＧが規定するＡＰＩを用いてドロップシャドウ効果を付加した描画を行うための手順を説明する。
【０００９】
図２は、ＯｐｅｎＶＧによるドロップシャドウ実現のための従来の描画装置３００の処理手順を示したフローチャートである。図３は、ＯｐｅｎＶＧによるドロップシャドウ実現のための従来の描画装置３００の機能構成を示すブロック図である。また、図４Ａ〜図４Ｄは、この手順を用いた例として「再生」という文字列にドロップシャドウ効果を付加して描画させる場合の入力データ、中間データ、出力データの具体例を示したものである。
【００１０】
図２に示すように、まず始めに、ユーザは、描画したい図形のベクトルデータ（頂点データ）を、描画装置３００が有するＯｐｅｎＶＧに設定する（Ｓ１０２）。ここで、ベクトルデータは、図形の輪郭を直線やベジエ曲線の集まりで表現したときの曲線制御点の２次元座標（ｘ、ｙ）の並びであり、例えばＴｒｕｅＴｙｐｅフォントデータとして一般に広く提供されている。
【００１１】
この場合の例を、図４Ａに示す。つまり、図４Ａは、ドロップシャドウを実現するための入力データの一例を示す図である。また、この処理は、図３に示された描画装置３００に備えられた図形ベクトルデータ入力部３０１により行われ、具体的には、ＯｐｅｎＶＧのｖｇＡｐｐｅｎｄＰａｔｈＤａｔａ（）のＡＰＩにより行われる。
【００１２】
図２に戻り、次に、描画装置３００は、ベクトルデータで表現された輪郭線の領域内部の画素を塗りつぶして画像データへ変換する（Ｓ１０４）。より具体的には、描画装置３００は、画像を構成する画素に対し、その画素位置と輪郭線位置との関係により、その画素に対し塗りつぶしを行う画素か否かを判断し、必要な画素に対して塗りつぶし処理を行う。以降、この処理をラスタライズ処理と呼ぶ。
【００１３】
ラスタライズ処理により得られる結果の例を、図４Ｂに示す。つまり、図４Ｂは、ドロップシャドウを実現するための中間データの一例を示す図である。また、この処理は、図３に示された描画装置３００に備えられたラスタライズ処理部３０２により行われ、具体的には、ＯｐｅｎＶＧのｖｇＤｒａｗＰａｔｈ（）のＡＰＩにより行われる。このとき、ラスタライズ処理部３０２は、ラスタライズ結果をラスタライズ結果格納部３０３に格納する。この時点では、まだラスタライズ結果はユーザに提示されない。
【００１４】
図２に戻り、次に、描画装置３００は、図形の擬似的な影形状を得るために、ラスタライズ結果格納部３０３に格納されたラスタライズ結果に対し、ぼかしフィルタ処理を適用する（Ｓ１０６）。これにより、ラスタライズ結果の内容をぼかした画像を得ることが出来る。
【００１５】
なお、フィルタ処理とは、画像を構成する１画素あたり、その画素を中心とした（Ｍ×Ｎ）個の画素値と、同じく（Ｍ×Ｎ）個のフィルタ係数とを積和算するという処理を全画素に対して施すことであり、ぼかしや輪郭強調などの効果画像を得ることができる処理である。
【００１６】
図５Ａ〜図５Ｃは、従来技術におけるフィルタ処理の詳細を示した図である。具体的には、図５Ａ〜図５Ｃは、「生」という図形画像に対してフィルタ処理する際に、座標位置（ｘ、ｙ）における画素値ｐ（ｘ、ｙ）に注目して、フィルタ処理結果である画素値ｐ’（ｘ、ｙ）を得る処理を視覚的に示した図である。
【００１７】
さらに具体的には、図５Ａは、フィルタ処理結果の画素値ｐ’（ｘ、ｙ）を得るために、フィルタ処理対象となる（Ｍ×Ｎ）個の範囲を示した図である。処理範囲であるＭおよびＮの値は、所望するフィルタ効果によりその値を変えるが、ここでは（７×７）個の例を示している。また、図５Ｂは、フィルタ処理結果の画素値ｐ’（ｘ、ｙ）を得るための数式であり、図５Ｃは、この数式を視覚的に示した図である。ｋで示されるフィルタ係数は、所望するフィルタ効果によりその値を適宜設定される。
【００１８】
これらの図に示すとおり、フィルタ処理では、画素を中心とした周辺Ｍ×Ｎ個の画素それぞれに対してフィルタ係数を乗算し、それらを積算する必要があるため、１画素あたり（Ｍ×Ｎ）回の積和演算を必要とする。さらに画像を構成するすべての画素に対してこの処理を行う必要があるため、その計算負荷がとても高い。
【００１９】
このフィルタ処理は、図３に示された描画装置３００に備えられたフィルタ処理部３０４によって行われ、具体的には、ＯｐｅｎＶＧのｖｇＧａｕｓｓｉａｎＢｌｕｒ（）のＡＰＩにより行われる。フィルタ処理部３０４は、こうして得られたフィルタ処理済み画像を、フィルタ処理結果格納部３０５に格納する。
【００２０】
フィルタ処理結果格納部３０５に格納されたフィルタ処理結果の例を、図４Ｃに示す。この図が示すように、フィルタ処理によって「再生」という文字列がぼけた画像が得られる。つまり、図４Ｃは、ドロップシャドウを実現するための中間データの一例を示す図である。
【００２１】
図２に戻り、次に、描画装置３００は、フィルタ処理結果格納部３０５に格納されている影形状と、ラスタライズ結果格納部３０３に格納されている図形本体形状とを、描画結果格納領域に描画する（Ｓ１０８、Ｓ１１０）。
【００２２】
このとき、描画装置３００は、影形状を描画する位置を、図形本体の描画位置から数ピクセルずらして描画する。また、描画装置３００は、影形状を図形本体に先行して描画する。影形状の一部は後から描画する図形本体に上書きされるが、これにより影形状と図形本体との奥行き順序が保証され、擬似的な立体感を得ることができる。
【００２３】
この描画装置３００が図形本体と影形状とを描画して得られる結果画像を図４Ｄに示す。つまり、図４Ｄは、ドロップシャドウを実現するための出力データの一例を示す図である。また、この処理は、図３に示された描画装置３００に備えられた描画部３０６によって行われ、具体的には、ＯｐｅｎＶＧのｖｇＤｒａｗＩｍａｇｅ（）のＡＰＩにより行われる。こうして得られた描画結果は、描画結果格納部３０７によって格納され、ユーザに提示される。
【００２４】
以上の処理により、従来の描画装置３００は、ドロップシャドウ効果を付加した描画を行うことが出来る。
【００２５】
このような従来の技術としては、例えば以下の非特許文献１に記載されたものが知られている。
【先行技術文献】
【非特許文献】
【００２６】
【非特許文献１】ＯｐｅｎＶＧ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ１．１、[online]、Ｋｈｒｏｎｏｓ  Ｇｒｏｕｐ、[平成２１年５月１９日検索]、インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｋｈｒｏｎｏｓ．ｏｒｇ／ｏｐｅｎｖｇ／〉
【発明の概要】
【発明が解決しようとする課題】
【００２７】
しかしながら、従来の描画装置３００では、以下に示す２つの課題がある。
【００２８】
第１の課題は、従来の標準ＡＰＩ規格であるＯｐｅｎＶＧを用いてドロップシャドウを実現した場合、描画結果を得るまでの演算量が膨大になってしまうという課題である。
【００２９】
その理由は、影形状を得るためのフィルタ処理において、１画素あたり（Ｍ×Ｎ）回の積和演算を全画素に対して施す必要があるためである。そのため、ＣＰＵ演算性能やメモリ帯域などのハード資源がそれほど十分ではない機器では、ドロップシャドウの膨大な演算量を処理しきれず、描画速度が極端に低下してしまう。このため、ユーザ操作に対する反応が悪くなってしまい、非常に使いにくいものとなってしまう。
【００３０】
また、第２の課題は、従来の描画装置３００では、図形本体と影形状の描画順序が決められており、図形本体を影形状に先行して描画することができないという課題である。その理由は、図形本体を影形状に先行して描画すると、影形状が図形本体を上書きしてしまい、図形本体と影形状との奥行き順序が逆になってしまうためである。
【００３１】
以上のように、従来の描画装置３００では、フィルタ処理を行う際に、演算量が膨大になってしまうとともに、影形状と図形本体の描画順序を考慮して描画しなければならないという課題がある。
【００３２】
そこで、本発明は、上記従来の課題を解決するものであり、フィルタ処理を行う際に、演算量の増加を抑制しつつ、図形本体と影形状の描画順序を考慮する必要がない描画装置及び描画方法を提供することを目的とする。
【課題を解決するための手段】
【００３３】
上記目的を達成するために、本発明の一態様に係る描画装置は、描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置であって、前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを格納するための第一格納部と、前記原画像データを生成し、生成した前記原画像データを前記第一格納部に書き込むラスタライズ処理部と、前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部とを備える。
【００３４】
これによれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所とを予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。
【００３５】
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素（図形本体を構成する画素）は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素（影形状を構成する画素）は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。
【００３６】
また、好ましくは、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素に対してはフィルタ処理を行わないと判断する。
【００３７】
これによれば、原画像（図形本体）を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理（外側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
【００３８】
また、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断することにしてもよい。
【００３９】
これによれば、原画像（図形本体）を構成する座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の内側の領域に対してフィルタ処理を行い、図形本体の内側の領域に影形状を描画する。このため、図形本体の内側の領域に影形状を描画するフィルタ処理（内側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
【００４０】
また、好ましくは、さらに、画素毎にフィルタ処理を行うか否かを示すフィルタ処理必要データを格納するための第二格納部を備え、前記フィルタ処理必要画素判断部は、画素毎にフィルタ処理を行うか否かを判断することで、前記第二格納部に格納されている前記フィルタ処理必要データを更新し、前記フィルタ処理部は、更新された前記フィルタ処理必要データを参照して、前記フィルタ処理データを生成する。
【００４１】
これによれば、フィルタ処理を行うか否かを示すフィルタ処理必要データが第二格納部に格納され、当該第二格納部に格納されているフィルタ処理必要データを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。
【００４２】
なお、本発明は、このような描画装置として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【００４３】
本発明に係る描画装置によれば、フィルタ処理を行う際に、演算量の増加を抑制することができる。また、本発明に係る描画装置を用いれば、図形本体と影形状の描画順序を考慮する必要がない。
【図面の簡単な説明】
【００４４】
【図１Ａ】図１Ａは、従来技術におけるドロップシャドウを用いた場合におけるＩＦ画面表示例を示す図である。
【図１Ｂ】図１Ｂは、従来技術におけるドロップシャドウを用いなかった場合におけるＩＦ画面表示例を示す図である。
【図２】図２は、従来技術におけるドロップシャドウ実現のための描画装置の処理手順を示すフローチャートである。
【図３】図３は、従来技術におけるドロップシャドウ実現のための描画装置の機能構成を示すブロック図である。
【図４Ａ】図４Ａは、従来技術におけるドロップシャドウを実現するための入力データの一例を示す図である。
【図４Ｂ】図４Ｂは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。
【図４Ｃ】図４Ｃは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。
【図４Ｄ】図４Ｄは、従来技術におけるドロップシャドウを実現するための最終データの一例を示す図である。
【図５Ａ】図５Ａは、従来技術におけるフィルタ処理の詳細を示した図である。
【図５Ｂ】図５Ｂは、従来技術におけるフィルタ処理の詳細を示した図である。
【図５Ｃ】図５Ｃは、従来技術におけるフィルタ処理の詳細を示した図である。
【図６】図６は、本発明の実施の形態における描画装置の機能構成を示すブロック図である。
【図７】図７は、本実施の形態における原画像データの一例を示す図である。
【図８】図８は、本実施の形態におけるフィルタ処理必要データの一例を示す図である。
【図９】図９は、本発明の実施の形態における描画装置の処理手順の全体を示すフローチャートである。
【図１０】図１０は、本発明の実施の形態におけるフィルタ処理必要画素判断部がフィルタ処理必要データを更新する処理を示すフローチャートである。
【図１１Ａ】図１１Ａは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。
【図１１Ｂ】図１１Ｂは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。
【図１１Ｃ】図１１Ｃは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。
【図１２】図１２は、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データの具体例を示す図である。
【図１３】図１３は、本発明の実施の形態の変形例における描画装置の処理を説明する図である。
【図１４】図１４は、本発明の実施の形態における描画装置が行う処理の他の例を説明する図である。
【図１５】図１５は、本発明の実施の形態及びその変形例における描画装置を集積回路で実現する一例を示す図である。
【発明を実施するための形態】
【００４５】
以下、本発明の実施の形態における描画装置について、図面を参照しながら説明する。
【００４６】
図６は、本発明の実施の形態における描画装置６００の機能構成を示すブロック図である。
【００４７】
描画装置６００は、描画対象の画像である原画像に、当該原画像を装飾するフィルタ処理を行う装置である。同図に示すように、描画装置６００は、図形ベクトルデータ入力部６０１、ラスタライズ処理部６０２、ラスタライズ結果格納部６０３、フィルタ処理必要画素判断部６０４、フィルタ処理必要格納部６０５、フィルタ処理部６０６、描画部６０７、及び描画結果格納部６０８を備えている。
【００４８】
図形ベクトルデータ入力部６０１は、描画したい図形である原画像のベクトルデータを読み込む処理部である。ここで、ベクトルデータとは、原画像を構成する画素の位置を示す画素位置情報（画素の座標位置を示す座標位置データ）であり、図形の輪郭を直線やベジエ曲線の集まりで表現したときの制御点座標の並びである。ベクトルデータの例としては、例えばＴｒｕｅＴｙｐｅフォントデータとして一般に広く提供されているものがある。
【００４９】
ラスタライズ処理部６０２は、原画像データ６０３ａを生成し、生成した原画像データ６０３ａをラスタライズ結果格納部６０３に書き込む処理部である。原画像データ６０３ａとは、原画像を示すデータであり、原画像を構成する画素の位置を示す座標位置データと、原画像を構成する画素の色を示す色データとを含むデータである。
【００５０】
具体的には、ラスタライズ処理部６０２は、画素位置情報として原画像を構成する画素の座標位置を示す座標位置データ（ベクトルデータ）を算出して、当該座標位置データと色データとを含む原画像データ６０３ａを生成する。つまり、ラスタライズ処理部６０２は、ベクトルデータで表現された輪郭領域内部の画素を色データで示される色で塗りつぶすように、原画像データ６０３ａを生成する。
【００５１】
ここで、原画像データ６０３ａについて、説明する。
【００５２】
図７は、本実施の形態における原画像データ６０３ａの一例を示す図である。
【００５３】
同図に示すように、原画像データ６０３ａには、原画像を構成する各画素の画素位置に対応して、画素ごとの輝度値を示すデータが入力されている。なお、原画像がカラー画像の場合は、原画像データ６０３ａの各画素の画素位置には、画素ごとの色差を示すデータも入力されている。つまり、この原画像データ６０３ａは、各画素の座標位置データと色データとから構成される画素データの集まりであり、塗りつぶす画素位置と塗りつぶす色との組み合わせの並びである。
【００５４】
なお、原画像データ６０３ａには、座標位置データが含まれていればよく、色データは含まれていなくともよい。つまり、ラスタライズ処理部６０２は、座標位置データのみ含まれている原画像データ６０３ａを生成することにしてもよい。
【００５５】
図６に戻り、ラスタライズ結果格納部６０３は、ラスタライズ処理部６０２が生成した原画像データ６０３ａを格納するためのメモリである。なお、ラスタライズ結果格納部６０３は、請求の範囲に記載の「第一格納部」に相当する。
【００５６】
フィルタ処理必要画素判断部６０４は、ラスタライズ結果格納部６０３に格納されている原画像データ６０３ａを読み出し、読み出した原画像データ６０３ａに含まれる画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断する処理部である。つまり、フィルタ処理必要画素判断部６０４は、ラスタライズ結果格納部６０３が格納している塗りつぶし画素位置と、フィルタ適用範囲との関係から、フィルタ処理要否の判断が必要な画素毎にフィルタ処理が必要か否かを判定する。
【００５７】
なお、フィルタ処理要否の判断が必要な画素とは、ディスプレイに表示される全画素でもよいし、図形本体と図形本体の周辺の数画素とを含む画素でもよいし、図形本体に含まれる画素のみでもよく、ユーザによりどのような範囲の画素にも設定可能である。
【００５８】
ここで、本実施の形態では、フィルタ処理必要画素判断部６０４は、原画像を構成する画素の座標位置を示す座標位置データで示される座標位置の画素に対しては、フィルタ処理を行わないと判断する。
【００５９】
そして、フィルタ処理必要画素判断部６０４は、画素毎にフィルタ処理を行うか否かを判断することで、フィルタ処理必要格納部６０５に格納されているフィルタ処理必要データ６０５ａを更新する。
【００６０】
フィルタ処理必要格納部６０５は、フィルタ処理必要画素判断部６０４が算出したフィルタ処理必要データ６０５ａを格納するためのメモリである。このフィルタ処理必要データ６０５ａは、画素毎にフィルタ処理を行うか否かを示すデータであり、画素の位置とフィルタ処理要否との組み合わせの並びである。なお、フィルタ処理必要格納部６０５は、請求の範囲に記載の「第二格納部」に相当する。
【００６１】
ここで、フィルタ処理必要データ６０５ａについて、説明する。
【００６２】
図８は、本実施の形態におけるフィルタ処理必要データ６０５ａの一例を示す図である。
【００６３】
同図に示すように、フィルタ処理必要データ６０５ａは、各画素の座標位置「座標（ｘ，ｙ）」における「フィルタ処理要否」を示す情報の集まりである。つまり、「座標（ｘ，ｙ）」は、各画素の座標位置をｘｙ座標系で示しており、「フィルタ処理要否」は、画素ごとにフィルタ処理を行うか否かを示している。
【００６４】
例えば、座標（０，０）の画素は、フィルタ処理が不要であることを示しており、座標（３，０）の画素は、フィルタ処理が必要であることを示している。また、座標（２，０）の画素は、図形本体（原画像）を構成する画素であることを示している。
【００６５】
図６に戻り、フィルタ処理部６０６は、更新されたフィルタ処理必要データ６０５ａを参照して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成する処理部である。
【００６６】
具体的には、フィルタ処理部６０６は、フィルタ処理必要格納部６０５が格納している、画素毎のフィルタ処理要否情報であるフィルタ処理必要データ６０５ａを用いて、ラスタライズ結果格納部６０３が格納しているラスタライズ結果である原画像データ６０３ａに対して、フィルタ処理が必要な画素に対してのみフィルタ処理を施す。
【００６７】
描画部６０７は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、描画部６０７は、ラスタライズ結果格納部６０３が格納している原画像データと、フィルタ処理部６０６で処理されたフィルタ処理データとを描画する。
【００６８】
描画結果格納部６０８は、描画部６０７で処理されたデータを格納する。
【００６９】
以上のように構成された描画装置６００について、以下、その動作を説明する。
【００７０】
図９は本実施の形態における描画装置６００の動作の一例を示すフローチャートである。
【００７１】
同図に示すように、まず始めに、図形ベクトルデータ入力部６０１が、原画像のベクトルデータを読み込む（Ｓ２０２）。つまり、図形ベクトルデータ入力部６０１が、設定された頂点データ列を読み込む。このとき、図形ベクトルデータ入力部６０１は、読み込んだ頂点データ列に対して必要に応じて座標変換を施すことにより、図形を描画するサイズを拡大・縮小したり、描画する位置を移動したり、図形を回転させたりすることが可能である。
【００７２】
次に、入力されたベクトルデータに対しラスタライズ処理を行うが、このときラスタライズ処理が必要な全ての画素に対して以下の処理を行う（ループ１：Ｓ２０４〜Ｓ２１２）。なお、ラスタライズ処理が必要な画素とは、入力されたベクトルデータの最大値・最小値により定まる領域としてもよい。
【００７３】
まず、ラスタライズ処理部６０２が、ある１つの画素に対しそれが塗りつぶしを行う画素か行わない画素なのかを判定する（Ｓ２０６）。この判定は、ラスタライズ処理部６０２が、当該画素が例えばベクトルデータで囲まれる範囲内か否かを判定して、当該範囲内であれば塗りつぶしを行う画素と判定する、などの方法で行う。
【００７４】
ここで、ラスタライズ処理部６０２は、塗りつぶしを行う画素であると判定した場合（Ｓ２０６でＹＥＳ）、原画像データ６０３ａのうちその画素についての画素データをラスタライズ結果格納部６０３に格納する（Ｓ２０８）。このようにして、ラスタライズ処理部６０２は、原画像データ６０３ａを生成し、生成した原画像データ６０３ａをラスタライズ結果格納部６０３に書き込む。
【００７５】
そして、フィルタ処理必要画素判断部６０４は、塗りつぶす画素の位置を含む原画像データ６０３ａをラスタライズ結果格納部６０３から読み出し、その画素位置からフィルタ処理が必要となる画素領域の算出を行う。そして、フィルタ処理必要画素判断部６０４は、その結果を用いてフィルタ処理必要格納部６０５が格納しているフィルタ処理必要データ６０５ａを更新する（Ｓ２１０）。
【００７６】
ここで、このフィルタ処理必要画素判断部６０４がフィルタ処理必要データ６０５ａを更新する処理の詳細について、説明する。
【００７７】
図１０は、本実施の形態におけるフィルタ処理必要画素判断部６０４がフィルタ処理必要データ６０５ａを更新する処理の流れを示したフローチャートである。
【００７８】
また、図１１Ａ〜図１１Ｃは、本発明の実施の形態におけるフィルタ処理必要データ６０５ａを座標位置に従って配置した図である。また、図１２は、本発明の実施の形態におけるフィルタ処理必要データ６０５ａの具体例を示す図であり、そのデータに関する説明を容易に行うために画素位置の並びで表記したものである。
【００７９】
フィルタ処理必要格納部６０５は、画像を構成する全ての画素に対し３種類の状態値を保持する。３種類の状態値とは、「０：この画素はフィルタ処理が不要である」、「１：この画素はフィルタ処理が必要である」及び「２：この画素は図形本体を描画する」の３種類である。図１１Ａに、初期状態のフィルタ処理必要データ６０５ａの具体例を示す。初期状態のフィルタ処理必要データ６０５ａは、初期値としてすべての画素に対して「０」の状態値が設定されている。
【００８０】
図１０に示すように、まず、フィルタ処理必要画素判断部６０４は、ラスタライズ結果格納部６０３に格納されている原画像データ６０３ａを読み出し、ラスタライズ処理により図形本体を塗りつぶす画素の座標位置データを受け取る（Ｓ３０２）。座標位置データは、Ｐ（Ｘ、Ｙ）の組で表現される２次元座標とする。以降の説明では、例として、フィルタ処理必要画素判断部６０４がＰ（Ｘ＝２，Ｙ＝２）の座標を受け取ったとして説明する。
【００８１】
次に、フィルタ処理必要画素判断部６０４は、画素位置Ｐ（Ｘ＝２，Ｙ＝２）は図形本体を描画する画素であるという情報を保持するために、フィルタ処理必要格納部６０５が保持するフィルタ処理必要データ６０５ａに対し、座標Ｐ（Ｘ＝２、Ｙ＝２）に対するフィルタ処理要否として「２：図形本体を描画」という値を書き込む（Ｓ３０４）。この値が書かれている画素は最終的にユーザに提示する際に、図形本体が描かれる位置となるので影は描画する必要が無い。すなわち座標Ｐ（Ｘ＝２，Ｙ＝２）位置の画素に対するフィルタ処理は不要であることを示す。
【００８２】
次に、フィルタ処理必要画素判断部６０４は、図形本体に対する影形状のずらし量を考慮して、入力された座標をずらした座標を算出する（Ｓ３０６）。なお、このずらし量は、ユーザの入力により、自由に設定可能である。
【００８３】
例えば、図４Ｄでは、図形本体に対して右に３画素、下に２画素ずらした位置に影形状が描画されており、これと同様のずらし量が設定されている場合には、フィルタ処理必要画素判断部６０４は、入力座標を右に３画素、下に２画素ずらした位置を算出する。このずらし位置をＰ’（Ｘ’，Ｙ’）とすると、ずらし位置座標はＰ’（Ｘ’＝５，Ｙ’＝４）となる。
【００８４】
なお、この例では、図形本体に付加する効果としてドロップシャドウを想定しているためずらし量を設定したが、他の効果（例えば光沢など）を付加する場合など、ずらし量が０となる場合もありえる。
【００８５】
次に、ずらし位置座標Ｐ’を中心として、フィルタ処理が行われる領域であるフィルタサイズ（Ｍ×Ｎ）の大きさの矩形領域に含まれる画素に対して以下の処理を行う（ループ３：Ｓ３０８〜３１４）。フィルタサイズ（Ｍ×Ｎ）の値は、所望するフィルタ効果によりその値を変えるが、ここでは、フィルタサイズがＭ＝５、Ｎ＝５の場合を例にして説明する。
【００８６】
まず、フィルタ処理必要画素判断部６０４は、５×５の画素のうちの１つの画素の座標を座標Ｑ（Ｘ”、Ｙ”）として設定し、その座標Ｑに対するフィルタ処理必要データを読み出す。そして、フィルタ処理必要画素判断部６０４は、その値が「０：フィルタ処理不要」となっているか否かを判定する（Ｓ３１０）。座標Ｑは、５×５の画素のうちの１つの画素であり、上記処理が終われば、５×５の画素の中から別の画素を取り出して座標Ｑとして設定される。そして、上記処理をすべての画素に対して行っていく。
【００８７】
そして、フィルタ処理必要画素判断部６０４は、座標Ｑに対するフィルタ処理必要データの値が「０：フィルタ処理不要」となっていると判断した場合（Ｓ３１０でＹＥＳ）、座標Ｑに対するフィルタ処理必要データを「１：フィルタ処理必要」という値として書き込む（Ｓ３１２）。
【００８８】
また、フィルタ処理必要画素判断部６０４は、座標Ｑに対するフィルタ処理必要データの値がすでに「１：フィルタ処理」になっている場合や、「２：図形描画」となっている場合は（Ｓ３１０でＮＯ）、座標Ｑに対するフィルタ処理必要データを書き換えることなく、次の画素についての処理を続ける（ループ３：Ｓ３０８〜３１４）。
【００８９】
このようにして、フィルタ処理必要画素判断部６０４は、図１１Ｂに示されるようにフィルタ処理必要データ６０５ａを更新する。
【００９０】
図９に戻り、ラスタライズ処理で塗りつぶす１つの画素に対するフィルタ処理必要データの更新処理（Ｓ２１０）を終えると、再度ラスタライズ処理ループ（ループ１：Ｓ２０４〜２１２）に戻り、次の画素についても同様の処理（Ｓ２０６〜２１０）を行う。
【００９１】
例えば、フィルタ処理必要画素判断部６０４は、塗りつぶす画素の位置が座標Ｐ（３、２）であると判定した場合には、フィルタ処理必要データ６０５ａに対し、座標Ｐ（Ｘ＝３、Ｙ＝２）に対するフィルタ処理要否として「２：図形描画」という値を書き込む（図１０のＳ３０４）。
【００９２】
そして、フィルタ処理必要画素判断部６０４は、座標Ｐ（Ｘ＝３、Ｙ＝２）に対して右に３画素、下に２画素ずらしたずらし位置座標を、Ｐ’（Ｘ’＝６，Ｙ’＝４）と求める（図１０のＳ３０６）。
【００９３】
また、フィルタ処理必要画素判断部６０４は、ずらし位置座標Ｐ’を中心として、フィルタサイズの大きさに含まれる画素に対して、それぞれフィルタ処理必要格納部６０５のフィルタ処理必要データを読み出し、「０：フィルタ処理不要」となっているか否かを判定する（図１０のＳ３１０）。
【００９４】
もし、「０：フィルタ処理不要」となっていると判断されれば、フィルタ処理必要画素判断部６０４は、該当するフィルタ処理必要格納部６０５のフィルタ処理必要データを「１：フィルタ処理必要」という値として書き込む（図１０のＳ３１２）。なお、すでに「１：フィルタ処理」になっている場合や、「２：図形描画」となっている場合は、フィルタ処理必要画素判断部６０４は、何も処理しない。
【００９５】
ここまでで得られるフィルタ処理必要格納部６０５のフィルタ処理必要データ６０５ａの内容を図１１Ｃに示す。図１１Ｂの時点でのフィルタ処理必要データ６０５ａでは、Ｐ（Ｘ＝３、Ｙ＝２）の画素は「１：フィルタ処理必要」となっていたが、それが「２：図形描画」に上書きされており、不要なフィルタ処理領域が識別できていることがわかる。
【００９６】
そして、図９に戻り、再度ラスタライズ処理ループ（ループ１：Ｓ２０４〜２１２）に戻り、ラスタライズ処理が必要な全ての画素について、同様の処理（Ｓ２０６〜２１０）を繰り返し行う。
【００９７】
ここまでの処理（Ｓ２０４〜Ｓ２１２）により、入力したベクトルデータに対応するラスタライズ結果がラスタライズ結果格納部６０３に格納されるとともに、そのラスタライズに対してフィルタ処理が必要となる画素領域がフィルタ処理必要格納部６０５に格納される。
【００９８】
図１２に、「生」という図形本体に対してフィルタ処理が必要か否かの判断が完了した時点のフィルタ処理必要データ６０５ａの例を示す。この図において、空欄となっている画素は「０：フィルタ処理不要」であることを示している。以降の処理において、フィルタ処理が必要な画素は「１：フィルタ処理必要」となっている画素だけでよい。
【００９９】
なお、同図では、図形本体は、「生」という文字であるが、図形本体は、文字に限定されず、どのような図形であってもよく、写真であってもよい。
【０１００】
図９に戻り、次に、フィルタ処理必要格納部６０５が格納しているフィルタ処理必要データ６０５ａをフィルタ処理部６０６が読み出すことで、フィルタ処理要否状態が「２：フィルタ処理必要」となっている画素に対して以下の処理が行われる（ループ２：Ｓ２１４〜Ｓ２２０）。
【０１０１】
まず、フィルタ処理部６０６は、ラスタライズ結果格納部６０３に格納されている原画像データ６０３ａのうち、フィルタ処理が必要な画素に対してフィルタ処理を行う（Ｓ２１６）。
【０１０２】
より具体的には、フィルタ処理部６０６は、１個のフィルタ処理が必要な画素に対し、その画素を中心とした（Ｍ×Ｎ）個の画素値と、同じく（Ｍ×Ｎ）個のフィルタ係数とを積和演算する。そして、フィルタ処理部６０６は、当該演算の結果得られる画素値であるフィルタ処理データを生成する。
【０１０３】
次に、描画部６０７は、フィルタ処理の演算結果として得られる画素値（フィルタ処理データ）を、フレームバッファに描画する（Ｓ２１８）。フレームバッファとは、描画結果格納部６０８が格納するデータ記憶装置であり、ここに書き込まれた画素値は液晶モニタ等の表示デバイスを通してユーザに視覚情報として提示される。
【０１０４】
このようにして、ここまでの処理（Ｓ２１６〜Ｓ２１８）をフィルタ処理が必要な全ての画素に施すことにより、影形状がフレームバッファに描画される。
【０１０５】
最後に、描画部６０７は、ラスタライズ結果格納部６０３が格納している原画像データ６０３ａの内容を、フレームバッファに描画する（Ｓ２２２）。つまり、描画部６０７は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データの内容を、フレームバッファに描画する。
【０１０６】
以上の処理により、図形本体とその影形状がフレームバッファに描画され、従来例と同じく図４Ｄに示すような立体感のある図形描画を行うことができる。
【０１０７】
以上のように、本実施の形態に係る描画装置６００によれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所を予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。
【０１０８】
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素（図形本体を構成する画素）は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素（影形状を構成する画素）は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。
【０１０９】
また、原画像（図形本体）を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理（外側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
【０１１０】
また、フィルタ処理を行うか否かを示すフィルタ処理必要データ６０５ａがフィルタ処理必要格納部６０５に格納され、当該フィルタ処理必要格納部６０５に格納されているフィルタ処理必要データ６０５ａを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データ６０５ａを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。
【０１１１】
（変形例）
上記実施の形態では、フィルタ処理必要画素判断部６０４は、原画像（図形本体）を構成する座標位置の画素に対してはフィルタ処理を行わないと判断することとした。しかし、本実施の形態の変形例では、フィルタ処理必要画素判断部６０４は、原画像（図形本体）を構成する座標位置の画素以外の画素に対して、フィルタ処理を行わないと判断する。
【０１１２】
図１３は、本実施の形態の変形例における描画装置６００の処理を説明する図である。
【０１１３】
描画装置６００が備えるフィルタ処理必要画素判断部６０４は、原画像を構成する画素の座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、フィルタ処理必要画素判断部６０４は、原画像を構成する画素の座標位置データで示される座標位置の画素に対してフィルタ処理を行うと判断する。
【０１１４】
具体的には、図９に示されたフィルタ処理必要画素判断部６０４がフィルタ処理必要データ６０５ａを更新する処理（図９のＳ２１０）において、フィルタ処理必要画素判断部６０４は、図形本体を構成する画素以外の画素については、フィルタ処理必要データを「０：フィルタ処理不要」という値として書き込む。また、フィルタ処理必要画素判断部６０４は、図形本体を構成する画素については、フィルタ処理必要データを「１：フィルタ処理必要」という値として書き込む。
【０１１５】
これにより、同図に示すように、図形本体の内側の領域に対してフィルタ処理が行われ、図形本体の内側の領域に影形状（凹状の陰形状）が描画される。
【０１１６】
以上のように、本実施の形態の変形例に係る描画装置６００によれば、図形本体の内側の領域に影形状を描画するフィルタ処理（内側ドロップシャドウ）を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
【０１１７】
以上、本発明に係る描画装置６００について、上記実施の形態及びその変形例を用いて説明したが、本発明は、これに限定されるものではない。
【０１１８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【０１１９】
例えば、上記実施の形態では、描画装置６００は、図形本体の外側の領域に影形状を描画するフィルタ処理（外側ドロップシャドウ）を行うこととした。しかし、描画装置６００は、図形本体のエッジ部に光沢を与えるフィルタ処理（光彩）を行うことにしてもよい。図１４は、この場合の描画装置６００が行う処理を説明する図である。フィルタ処理必要画素判断部６０４が図形本体からずらした座標を算出する処理（図１０のＳ３０６）において、ずらし量を０とすることで、同図に示すようなフィルタ処理（光彩）を行うことができる。
【０１２０】
また、上記実施の形態及びその変形例では、描画装置６００は、図形ベクトルデータ入力部６０１、ラスタライズ処理部６０２、ラスタライズ結果格納部６０３、フィルタ処理必要画素判断部６０４、フィルタ処理必要格納部６０５、フィルタ処理部６０６、描画部６０７及び描画結果格納部６０８を備えていることとした。しかし、描画装置６００は、図形ベクトルデータ入力部６０１、フィルタ処理必要格納部６０５及び描画結果格納部６０８（図６の点線で示された部分）を備えていないことにしてもよい。つまり、描画装置６００は、ラスタライズ処理部６０２、ラスタライズ結果格納部６０３、フィルタ処理必要画素判断部６０４、フィルタ処理部６０６及び描画部６０７を備えていればよく、これらの構成により本発明の目的を達成することができる。
【０１２１】
また、本発明は、このような描画装置６００として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【０１２２】
例えば、上記実施の形態及びその変形例において、描画装置６００は、構成要件の全部あるいはその一部を１つの集積回路上に実装してもよいし、１つの基板上に実装した複数の集積回路であってもよい。
【０１２３】
図１５は、本発明の実施の形態及びその変形例における描画装置６００を集積回路７００で実現する一例を示す図である。
【０１２４】
同図に示すように、集積回路７００は、図６に示された描画装置６００のラスタライズ結果格納部６０３、フィルタ処理必要格納部６０５及び描画結果格納部６０８以外の機能を備えている。なお、集積回路７００は、各処理部が個別に１チップ化されても良いし、一部又は全ての処理部を含むように１チップ化されても良い。
【０１２５】
また、集積回路７００は、点線で示された図形ベクトルデータ入力部６０１を備えないことにしてもよい。つまり、集積回路７００は、ラスタライズ処理部６０２、フィルタ処理必要画素判断部６０４、フィルタ処理部６０６及び描画部６０７を備えていればよく、これらの構成により本発明の目的を達成することができる。また、集積回路７００は、ラスタライズ結果格納部６０３、フィルタ処理必要格納部６０５及び描画結果格納部６０８の少なくとも１つを含むことにしてもよい。
【０１２６】
ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１２７】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１２８】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０１２９】
本発明にかかる描画装置は、とくに演算性能に制限のある組み込み機器向けインタフェース提示装置として実施される、各種文字や図形等の描画装置への応用が有用である。
【符号の説明】
【０１３０】
３００    描画装置
３０１    図形ベクトルデータ入力部
３０２    ラスタライズ処理部
３０３    ラスタライズ結果格納部
３０４    フィルタ処理部
３０５    フィルタ処理結果格納部
３０６    描画部
３０７    描画結果格納部
６００    描画装置
６０１    図形ベクトルデータ入力部
６０２    ラスタライズ処理部
６０３    ラスタライズ結果格納部
６０３ａ  原画像データ
６０４    フィルタ処理必要画素判断部
６０５    フィルタ処理必要格納部
６０５ａ  フィルタ処理必要データ
６０６    フィルタ処理部
６０７    描画部
６０８    描画結果格納部
７００    集積回路
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを格納するための第一格納部と、
前記原画像データを生成し、生成した前記原画像データを前記第一格納部に書き込むラスタライズ処理部と、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部と
を備える描画装置。
【請求項２】
前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、
前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素に対してはフィルタ処理を行わないと判断する
請求項１に記載の描画装置。
【請求項３】
前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、
前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する
請求項１に記載の描画装置。
【請求項４】
さらに、
画素毎にフィルタ処理を行うか否かを示すフィルタ処理必要データを格納するための第二格納部を備え、
前記フィルタ処理必要画素判断部は、画素毎にフィルタ処理を行うか否かを判断することで、前記第二格納部に格納されている前記フィルタ処理必要データを更新し、
前記フィルタ処理部は、更新された前記フィルタ処理必要データを参照して、前記フィルタ処理データを生成する
請求項１〜３のいずれか１項に記載の描画装置。
【請求項５】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画方法であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
を含む描画方法。
【請求項６】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行うためのプログラムであって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
をコンピュータに実行させるプログラム。
【請求項７】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行うためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置を制御する集積回路であって、
前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理部と、
前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、
前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、
前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部と
を備える集積回路。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１Ａ】
2010134292.tif 000026
【図１Ｂ】
2010134292.tif 000027
【図２】
2010134292.tif 000028
【図３】
2010134292.tif 000029
【図４Ａ】
2010134292.tif 000030
【図４Ｂ】
2010134292.tif 000031
【図４Ｃ】
2010134292.tif 000032
【図４Ｄ】
2010134292.tif 000033
【図５Ａ】
2010134292.tif 000034
【図５Ｂ】
2010134292.tif 000035
【図５Ｃ】
2010134292.tif 000036
【図６】
2010134292.tif 000037
【図７】
2010134292.tif 000038
【図８】
2010134292.tif 000039
【図９】
2010134292.tif 000040
【図１０】
2010134292.tif 000041
【図１１Ａ】
2010134292.tif 000042
【図１１Ｂ】
2010134292.tif 000043
【図１１Ｃ】
2010134292.tif 000044
【図１２】
2010134292.tif 000045
【図１３】
2010134292.tif 000046
【図１４】
2010134292.tif 000047
【図１５】
2010134292.tif 000048
【国際調査報告】
2010134292.tif 000049
2010134292.tif 000050
2010134292.tif 000051
2010134292.tif 000052