JPWO2010134292A1 - 描画装置及び描画方法 - Google Patents

描画装置及び描画方法 Download PDF

Info

Publication number
JPWO2010134292A1
JPWO2010134292A1 JP2010547901A JP2010547901A JPWO2010134292A1 JP WO2010134292 A1 JPWO2010134292 A1 JP WO2010134292A1 JP 2010547901 A JP2010547901 A JP 2010547901A JP 2010547901 A JP2010547901 A JP 2010547901A JP WO2010134292 A1 JPWO2010134292 A1 JP WO2010134292A1
Authority
JP
Japan
Prior art keywords
filter processing
pixel
original image
data
perform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010547901A
Other languages
English (en)
Inventor
剛照 川崎
剛照 川崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2010134292A1 publication Critical patent/JPWO2010134292A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay

Abstract

フィルタ処理を行う際に、演算量の増加を抑制しつつ、図形本体と影形状の描画順序を考慮する必要がない描画装置を提供する。描画装置(600)であって、原画像の画素位置情報を含む原画像データを格納するためのラスタライズ結果格納部(603)と、原画像データを生成しラスタライズ結果格納部(603)に書き込むラスタライズ処理部(602)と、原画像データを読み出し、画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部(604)と、フィルタ処理を行うか否かの判断結果に応じてフィルタ処理を行い、フィルタ処理データを生成するフィルタ処理部(606)と、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する描画部(607)とを備える。

Description

本発明は、デジタル民生機器のユーザIF描画など各種図形描画技術に関するものであり、特に、描画対象の画像にフィルタ処理を行う描画装置及び描画方法に関する。
近年、機器の文字描画には、デザイン性の高さや視認性の高さが求められてきている。そして、文字描画のデザイン性と視認性とを飛躍的に向上させるための手法として、「ドロップシャドウ」と呼ばれる手法が広く知られている。
ドロップシャドウとは、図形本体に対し擬似的な影を描画することで、あたかも図形が浮き出ているような印象をユーザに与えるものである。たとえば図1A及び図1Bは、テレビにおけるIF(Interface)画面の一例である。この例では、テレビ画面の映像105に重畳して、テレビが具備する再生機能と録画機能とをユーザに選択させるためのメニュー表示を行っている。
具体的には、図1Aは、従来技術におけるドロップシャドウを用いた場合におけるIF画面表示例を示す図であり、図1Bは、従来技術におけるドロップシャドウを用いなかった場合におけるIF画面表示例を示す図である。
図1Aに示すように、再生機能のためのメニューは、再生という文字列101と、文字列101の影102、そして、再生という文字列101を囲っている板状矩形103と、板状矩形103の影104とで構成されている。このようにドロップシャドウを用いることで、図1Bに示したドロップシャドウを用いなかった場合と比較し、テレビ映像105に対して、当該再生機能のためのメニューが浮き出ているような立体感をユーザに与えることが可能となる。録画機能のためのメニューについても、同様である。
また一方で、機器の高機能化とともに表示画面の高解像度化が進行していることから、描画技術分野においては表示解像度に依存せず高品位な描画結果が得られるベクターグラフィクス(VG)技術の適用が広がりつつある。
とりわけ、ベクターグラフィクスの世界標準API(Application Program Interface)規格であるOpenVGが策定されて以降、OpenVGが規定するAPIをハードウェアアクセラレーションする各種GPU(Graphics Processing Unit)が発表されており、今後はOpenVGを用いた描画アプリケーションの数が急速に拡大するものと思われる。
OpenVGでは、前述のドロップシャドウを実現するためのAPIも規格化している。ここでは、OpenVGが規定するAPIを用いてドロップシャドウ効果を付加した描画を行うための手順を説明する。
図2は、OpenVGによるドロップシャドウ実現のための従来の描画装置300の処理手順を示したフローチャートである。図3は、OpenVGによるドロップシャドウ実現のための従来の描画装置300の機能構成を示すブロック図である。また、図4A〜図4Dは、この手順を用いた例として「再生」という文字列にドロップシャドウ効果を付加して描画させる場合の入力データ、中間データ、出力データの具体例を示したものである。
図2に示すように、まず始めに、ユーザは、描画したい図形のベクトルデータ(頂点データ)を、描画装置300が有するOpenVGに設定する(S102)。ここで、ベクトルデータは、図形の輪郭を直線やベジエ曲線の集まりで表現したときの曲線制御点の2次元座標(x、y)の並びであり、例えばTrueTypeフォントデータとして一般に広く提供されている。
この場合の例を、図4Aに示す。つまり、図4Aは、ドロップシャドウを実現するための入力データの一例を示す図である。また、この処理は、図3に示された描画装置300に備えられた図形ベクトルデータ入力部301により行われ、具体的には、OpenVGのvgAppendPathData()のAPIにより行われる。
図2に戻り、次に、描画装置300は、ベクトルデータで表現された輪郭線の領域内部の画素を塗りつぶして画像データへ変換する(S104)。より具体的には、描画装置300は、画像を構成する画素に対し、その画素位置と輪郭線位置との関係により、その画素に対し塗りつぶしを行う画素か否かを判断し、必要な画素に対して塗りつぶし処理を行う。以降、この処理をラスタライズ処理と呼ぶ。
ラスタライズ処理により得られる結果の例を、図4Bに示す。つまり、図4Bは、ドロップシャドウを実現するための中間データの一例を示す図である。また、この処理は、図3に示された描画装置300に備えられたラスタライズ処理部302により行われ、具体的には、OpenVGのvgDrawPath()のAPIにより行われる。このとき、ラスタライズ処理部302は、ラスタライズ結果をラスタライズ結果格納部303に格納する。この時点では、まだラスタライズ結果はユーザに提示されない。
図2に戻り、次に、描画装置300は、図形の擬似的な影形状を得るために、ラスタライズ結果格納部303に格納されたラスタライズ結果に対し、ぼかしフィルタ処理を適用する(S106)。これにより、ラスタライズ結果の内容をぼかした画像を得ることが出来る。
なお、フィルタ処理とは、画像を構成する1画素あたり、その画素を中心とした(M×N)個の画素値と、同じく(M×N)個のフィルタ係数とを積和算するという処理を全画素に対して施すことであり、ぼかしや輪郭強調などの効果画像を得ることができる処理である。
図5A〜図5Cは、従来技術におけるフィルタ処理の詳細を示した図である。具体的には、図5A〜図5Cは、「生」という図形画像に対してフィルタ処理する際に、座標位置(x、y)における画素値p(x、y)に注目して、フィルタ処理結果である画素値p’(x、y)を得る処理を視覚的に示した図である。
さらに具体的には、図5Aは、フィルタ処理結果の画素値p’(x、y)を得るために、フィルタ処理対象となる(M×N)個の範囲を示した図である。処理範囲であるMおよびNの値は、所望するフィルタ効果によりその値を変えるが、ここでは(7×7)個の例を示している。また、図5Bは、フィルタ処理結果の画素値p’(x、y)を得るための数式であり、図5Cは、この数式を視覚的に示した図である。kで示されるフィルタ係数は、所望するフィルタ効果によりその値を適宜設定される。
これらの図に示すとおり、フィルタ処理では、画素を中心とした周辺M×N個の画素それぞれに対してフィルタ係数を乗算し、それらを積算する必要があるため、1画素あたり(M×N)回の積和演算を必要とする。さらに画像を構成するすべての画素に対してこの処理を行う必要があるため、その計算負荷がとても高い。
このフィルタ処理は、図3に示された描画装置300に備えられたフィルタ処理部304によって行われ、具体的には、OpenVGのvgGaussianBlur()のAPIにより行われる。フィルタ処理部304は、こうして得られたフィルタ処理済み画像を、フィルタ処理結果格納部305に格納する。
フィルタ処理結果格納部305に格納されたフィルタ処理結果の例を、図4Cに示す。この図が示すように、フィルタ処理によって「再生」という文字列がぼけた画像が得られる。つまり、図4Cは、ドロップシャドウを実現するための中間データの一例を示す図である。
図2に戻り、次に、描画装置300は、フィルタ処理結果格納部305に格納されている影形状と、ラスタライズ結果格納部303に格納されている図形本体形状とを、描画結果格納領域に描画する(S108、S110)。
このとき、描画装置300は、影形状を描画する位置を、図形本体の描画位置から数ピクセルずらして描画する。また、描画装置300は、影形状を図形本体に先行して描画する。影形状の一部は後から描画する図形本体に上書きされるが、これにより影形状と図形本体との奥行き順序が保証され、擬似的な立体感を得ることができる。
この描画装置300が図形本体と影形状とを描画して得られる結果画像を図4Dに示す。つまり、図4Dは、ドロップシャドウを実現するための出力データの一例を示す図である。また、この処理は、図3に示された描画装置300に備えられた描画部306によって行われ、具体的には、OpenVGのvgDrawImage()のAPIにより行われる。こうして得られた描画結果は、描画結果格納部307によって格納され、ユーザに提示される。
以上の処理により、従来の描画装置300は、ドロップシャドウ効果を付加した描画を行うことが出来る。
このような従来の技術としては、例えば以下の非特許文献1に記載されたものが知られている。
OpenVG Specification Version1.1、[online]、Khronos Group、[平成21年5月19日検索]、インターネット〈URL:http://www.khronos.org/openvg/〉
しかしながら、従来の描画装置300では、以下に示す2つの課題がある。
第1の課題は、従来の標準API規格であるOpenVGを用いてドロップシャドウを実現した場合、描画結果を得るまでの演算量が膨大になってしまうという課題である。
その理由は、影形状を得るためのフィルタ処理において、1画素あたり(M×N)回の積和演算を全画素に対して施す必要があるためである。そのため、CPU演算性能やメモリ帯域などのハード資源がそれほど十分ではない機器では、ドロップシャドウの膨大な演算量を処理しきれず、描画速度が極端に低下してしまう。このため、ユーザ操作に対する反応が悪くなってしまい、非常に使いにくいものとなってしまう。
また、第2の課題は、従来の描画装置300では、図形本体と影形状の描画順序が決められており、図形本体を影形状に先行して描画することができないという課題である。その理由は、図形本体を影形状に先行して描画すると、影形状が図形本体を上書きしてしまい、図形本体と影形状との奥行き順序が逆になってしまうためである。
以上のように、従来の描画装置300では、フィルタ処理を行う際に、演算量が膨大になってしまうとともに、影形状と図形本体の描画順序を考慮して描画しなければならないという課題がある。
そこで、本発明は、上記従来の課題を解決するものであり、フィルタ処理を行う際に、演算量の増加を抑制しつつ、図形本体と影形状の描画順序を考慮する必要がない描画装置及び描画方法を提供することを目的とする。
上記目的を達成するために、本発明の一態様に係る描画装置は、描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置であって、前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを格納するための第一格納部と、前記原画像データを生成し、生成した前記原画像データを前記第一格納部に書き込むラスタライズ処理部と、前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部とを備える。
これによれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所とを予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素(図形本体を構成する画素)は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素(影形状を構成する画素)は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。
また、好ましくは、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素に対してはフィルタ処理を行わないと判断する。
これによれば、原画像(図形本体)を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理(外側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
また、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断することにしてもよい。
これによれば、原画像(図形本体)を構成する座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の内側の領域に対してフィルタ処理を行い、図形本体の内側の領域に影形状を描画する。このため、図形本体の内側の領域に影形状を描画するフィルタ処理(内側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
また、好ましくは、さらに、画素毎にフィルタ処理を行うか否かを示すフィルタ処理必要データを格納するための第二格納部を備え、前記フィルタ処理必要画素判断部は、画素毎にフィルタ処理を行うか否かを判断することで、前記第二格納部に格納されている前記フィルタ処理必要データを更新し、前記フィルタ処理部は、更新された前記フィルタ処理必要データを参照して、前記フィルタ処理データを生成する。
これによれば、フィルタ処理を行うか否かを示すフィルタ処理必要データが第二格納部に格納され、当該第二格納部に格納されているフィルタ処理必要データを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。
なお、本発明は、このような描画装置として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
本発明に係る描画装置によれば、フィルタ処理を行う際に、演算量の増加を抑制することができる。また、本発明に係る描画装置を用いれば、図形本体と影形状の描画順序を考慮する必要がない。
図1Aは、従来技術におけるドロップシャドウを用いた場合におけるIF画面表示例を示す図である。 図1Bは、従来技術におけるドロップシャドウを用いなかった場合におけるIF画面表示例を示す図である。 図2は、従来技術におけるドロップシャドウ実現のための描画装置の処理手順を示すフローチャートである。 図3は、従来技術におけるドロップシャドウ実現のための描画装置の機能構成を示すブロック図である。 図4Aは、従来技術におけるドロップシャドウを実現するための入力データの一例を示す図である。 図4Bは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。 図4Cは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。 図4Dは、従来技術におけるドロップシャドウを実現するための最終データの一例を示す図である。 図5Aは、従来技術におけるフィルタ処理の詳細を示した図である。 図5Bは、従来技術におけるフィルタ処理の詳細を示した図である。 図5Cは、従来技術におけるフィルタ処理の詳細を示した図である。 図6は、本発明の実施の形態における描画装置の機能構成を示すブロック図である。 図7は、本実施の形態における原画像データの一例を示す図である。 図8は、本実施の形態におけるフィルタ処理必要データの一例を示す図である。 図9は、本発明の実施の形態における描画装置の処理手順の全体を示すフローチャートである。 図10は、本発明の実施の形態におけるフィルタ処理必要画素判断部がフィルタ処理必要データを更新する処理を示すフローチャートである。 図11Aは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。 図11Bは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。 図11Cは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。 図12は、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データの具体例を示す図である。 図13は、本発明の実施の形態の変形例における描画装置の処理を説明する図である。 図14は、本発明の実施の形態における描画装置が行う処理の他の例を説明する図である。 図15は、本発明の実施の形態及びその変形例における描画装置を集積回路で実現する一例を示す図である。
以下、本発明の実施の形態における描画装置について、図面を参照しながら説明する。
図6は、本発明の実施の形態における描画装置600の機能構成を示すブロック図である。
描画装置600は、描画対象の画像である原画像に、当該原画像を装飾するフィルタ処理を行う装置である。同図に示すように、描画装置600は、図形ベクトルデータ入力部601、ラスタライズ処理部602、ラスタライズ結果格納部603、フィルタ処理必要画素判断部604、フィルタ処理必要格納部605、フィルタ処理部606、描画部607、及び描画結果格納部608を備えている。
図形ベクトルデータ入力部601は、描画したい図形である原画像のベクトルデータを読み込む処理部である。ここで、ベクトルデータとは、原画像を構成する画素の位置を示す画素位置情報(画素の座標位置を示す座標位置データ)であり、図形の輪郭を直線やベジエ曲線の集まりで表現したときの制御点座標の並びである。ベクトルデータの例としては、例えばTrueTypeフォントデータとして一般に広く提供されているものがある。
ラスタライズ処理部602は、原画像データ603aを生成し、生成した原画像データ603aをラスタライズ結果格納部603に書き込む処理部である。原画像データ603aとは、原画像を示すデータであり、原画像を構成する画素の位置を示す座標位置データと、原画像を構成する画素の色を示す色データとを含むデータである。
具体的には、ラスタライズ処理部602は、画素位置情報として原画像を構成する画素の座標位置を示す座標位置データ(ベクトルデータ)を算出して、当該座標位置データと色データとを含む原画像データ603aを生成する。つまり、ラスタライズ処理部602は、ベクトルデータで表現された輪郭領域内部の画素を色データで示される色で塗りつぶすように、原画像データ603aを生成する。
ここで、原画像データ603aについて、説明する。
図7は、本実施の形態における原画像データ603aの一例を示す図である。
同図に示すように、原画像データ603aには、原画像を構成する各画素の画素位置に対応して、画素ごとの輝度値を示すデータが入力されている。なお、原画像がカラー画像の場合は、原画像データ603aの各画素の画素位置には、画素ごとの色差を示すデータも入力されている。つまり、この原画像データ603aは、各画素の座標位置データと色データとから構成される画素データの集まりであり、塗りつぶす画素位置と塗りつぶす色との組み合わせの並びである。
なお、原画像データ603aには、座標位置データが含まれていればよく、色データは含まれていなくともよい。つまり、ラスタライズ処理部602は、座標位置データのみ含まれている原画像データ603aを生成することにしてもよい。
図6に戻り、ラスタライズ結果格納部603は、ラスタライズ処理部602が生成した原画像データ603aを格納するためのメモリである。なお、ラスタライズ結果格納部603は、請求の範囲に記載の「第一格納部」に相当する。
フィルタ処理必要画素判断部604は、ラスタライズ結果格納部603に格納されている原画像データ603aを読み出し、読み出した原画像データ603aに含まれる画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断する処理部である。つまり、フィルタ処理必要画素判断部604は、ラスタライズ結果格納部603が格納している塗りつぶし画素位置と、フィルタ適用範囲との関係から、フィルタ処理要否の判断が必要な画素毎にフィルタ処理が必要か否かを判定する。
なお、フィルタ処理要否の判断が必要な画素とは、ディスプレイに表示される全画素でもよいし、図形本体と図形本体の周辺の数画素とを含む画素でもよいし、図形本体に含まれる画素のみでもよく、ユーザによりどのような範囲の画素にも設定可能である。
ここで、本実施の形態では、フィルタ処理必要画素判断部604は、原画像を構成する画素の座標位置を示す座標位置データで示される座標位置の画素に対しては、フィルタ処理を行わないと判断する。
そして、フィルタ処理必要画素判断部604は、画素毎にフィルタ処理を行うか否かを判断することで、フィルタ処理必要格納部605に格納されているフィルタ処理必要データ605aを更新する。
フィルタ処理必要格納部605は、フィルタ処理必要画素判断部604が算出したフィルタ処理必要データ605aを格納するためのメモリである。このフィルタ処理必要データ605aは、画素毎にフィルタ処理を行うか否かを示すデータであり、画素の位置とフィルタ処理要否との組み合わせの並びである。なお、フィルタ処理必要格納部605は、請求の範囲に記載の「第二格納部」に相当する。
ここで、フィルタ処理必要データ605aについて、説明する。
図8は、本実施の形態におけるフィルタ処理必要データ605aの一例を示す図である。
同図に示すように、フィルタ処理必要データ605aは、各画素の座標位置「座標(x,y)」における「フィルタ処理要否」を示す情報の集まりである。つまり、「座標(x,y)」は、各画素の座標位置をxy座標系で示しており、「フィルタ処理要否」は、画素ごとにフィルタ処理を行うか否かを示している。
例えば、座標(0,0)の画素は、フィルタ処理が不要であることを示しており、座標(3,0)の画素は、フィルタ処理が必要であることを示している。また、座標(2,0)の画素は、図形本体(原画像)を構成する画素であることを示している。
図6に戻り、フィルタ処理部606は、更新されたフィルタ処理必要データ605aを参照して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成する処理部である。
具体的には、フィルタ処理部606は、フィルタ処理必要格納部605が格納している、画素毎のフィルタ処理要否情報であるフィルタ処理必要データ605aを用いて、ラスタライズ結果格納部603が格納しているラスタライズ結果である原画像データ603aに対して、フィルタ処理が必要な画素に対してのみフィルタ処理を施す。
描画部607は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、描画部607は、ラスタライズ結果格納部603が格納している原画像データと、フィルタ処理部606で処理されたフィルタ処理データとを描画する。
描画結果格納部608は、描画部607で処理されたデータを格納する。
以上のように構成された描画装置600について、以下、その動作を説明する。
図9は本実施の形態における描画装置600の動作の一例を示すフローチャートである。
同図に示すように、まず始めに、図形ベクトルデータ入力部601が、原画像のベクトルデータを読み込む(S202)。つまり、図形ベクトルデータ入力部601が、設定された頂点データ列を読み込む。このとき、図形ベクトルデータ入力部601は、読み込んだ頂点データ列に対して必要に応じて座標変換を施すことにより、図形を描画するサイズを拡大・縮小したり、描画する位置を移動したり、図形を回転させたりすることが可能である。
次に、入力されたベクトルデータに対しラスタライズ処理を行うが、このときラスタライズ処理が必要な全ての画素に対して以下の処理を行う(ループ1:S204〜S212)。なお、ラスタライズ処理が必要な画素とは、入力されたベクトルデータの最大値・最小値により定まる領域としてもよい。
まず、ラスタライズ処理部602が、ある1つの画素に対しそれが塗りつぶしを行う画素か行わない画素なのかを判定する(S206)。この判定は、ラスタライズ処理部602が、当該画素が例えばベクトルデータで囲まれる範囲内か否かを判定して、当該範囲内であれば塗りつぶしを行う画素と判定する、などの方法で行う。
ここで、ラスタライズ処理部602は、塗りつぶしを行う画素であると判定した場合(S206でYES)、原画像データ603aのうちその画素についての画素データをラスタライズ結果格納部603に格納する(S208)。このようにして、ラスタライズ処理部602は、原画像データ603aを生成し、生成した原画像データ603aをラスタライズ結果格納部603に書き込む。
そして、フィルタ処理必要画素判断部604は、塗りつぶす画素の位置を含む原画像データ603aをラスタライズ結果格納部603から読み出し、その画素位置からフィルタ処理が必要となる画素領域の算出を行う。そして、フィルタ処理必要画素判断部604は、その結果を用いてフィルタ処理必要格納部605が格納しているフィルタ処理必要データ605aを更新する(S210)。
ここで、このフィルタ処理必要画素判断部604がフィルタ処理必要データ605aを更新する処理の詳細について、説明する。
図10は、本実施の形態におけるフィルタ処理必要画素判断部604がフィルタ処理必要データ605aを更新する処理の流れを示したフローチャートである。
また、図11A〜図11Cは、本発明の実施の形態におけるフィルタ処理必要データ605aを座標位置に従って配置した図である。また、図12は、本発明の実施の形態におけるフィルタ処理必要データ605aの具体例を示す図であり、そのデータに関する説明を容易に行うために画素位置の並びで表記したものである。
フィルタ処理必要格納部605は、画像を構成する全ての画素に対し3種類の状態値を保持する。3種類の状態値とは、「0:この画素はフィルタ処理が不要である」、「1:この画素はフィルタ処理が必要である」及び「2:この画素は図形本体を描画する」の3種類である。図11Aに、初期状態のフィルタ処理必要データ605aの具体例を示す。初期状態のフィルタ処理必要データ605aは、初期値としてすべての画素に対して「0」の状態値が設定されている。
図10に示すように、まず、フィルタ処理必要画素判断部604は、ラスタライズ結果格納部603に格納されている原画像データ603aを読み出し、ラスタライズ処理により図形本体を塗りつぶす画素の座標位置データを受け取る(S302)。座標位置データは、P(X、Y)の組で表現される2次元座標とする。以降の説明では、例として、フィルタ処理必要画素判断部604がP(X=2,Y=2)の座標を受け取ったとして説明する。
次に、フィルタ処理必要画素判断部604は、画素位置P(X=2,Y=2)は図形本体を描画する画素であるという情報を保持するために、フィルタ処理必要格納部605が保持するフィルタ処理必要データ605aに対し、座標P(X=2、Y=2)に対するフィルタ処理要否として「2:図形本体を描画」という値を書き込む(S304)。この値が書かれている画素は最終的にユーザに提示する際に、図形本体が描かれる位置となるので影は描画する必要が無い。すなわち座標P(X=2,Y=2)位置の画素に対するフィルタ処理は不要であることを示す。
次に、フィルタ処理必要画素判断部604は、図形本体に対する影形状のずらし量を考慮して、入力された座標をずらした座標を算出する(S306)。なお、このずらし量は、ユーザの入力により、自由に設定可能である。
例えば、図4Dでは、図形本体に対して右に3画素、下に2画素ずらした位置に影形状が描画されており、これと同様のずらし量が設定されている場合には、フィルタ処理必要画素判断部604は、入力座標を右に3画素、下に2画素ずらした位置を算出する。このずらし位置をP’(X’,Y’)とすると、ずらし位置座標はP’(X’=5,Y’=4)となる。
なお、この例では、図形本体に付加する効果としてドロップシャドウを想定しているためずらし量を設定したが、他の効果(例えば光沢など)を付加する場合など、ずらし量が0となる場合もありえる。
次に、ずらし位置座標P’を中心として、フィルタ処理が行われる領域であるフィルタサイズ(M×N)の大きさの矩形領域に含まれる画素に対して以下の処理を行う(ループ3:S308〜314)。フィルタサイズ(M×N)の値は、所望するフィルタ効果によりその値を変えるが、ここでは、フィルタサイズがM=5、N=5の場合を例にして説明する。
まず、フィルタ処理必要画素判断部604は、5×5の画素のうちの1つの画素の座標を座標Q(X”、Y”)として設定し、その座標Qに対するフィルタ処理必要データを読み出す。そして、フィルタ処理必要画素判断部604は、その値が「0:フィルタ処理不要」となっているか否かを判定する(S310)。座標Qは、5×5の画素のうちの1つの画素であり、上記処理が終われば、5×5の画素の中から別の画素を取り出して座標Qとして設定される。そして、上記処理をすべての画素に対して行っていく。
そして、フィルタ処理必要画素判断部604は、座標Qに対するフィルタ処理必要データの値が「0:フィルタ処理不要」となっていると判断した場合(S310でYES)、座標Qに対するフィルタ処理必要データを「1:フィルタ処理必要」という値として書き込む(S312)。
また、フィルタ処理必要画素判断部604は、座標Qに対するフィルタ処理必要データの値がすでに「1:フィルタ処理」になっている場合や、「2:図形描画」となっている場合は(S310でNO)、座標Qに対するフィルタ処理必要データを書き換えることなく、次の画素についての処理を続ける(ループ3:S308〜314)。
このようにして、フィルタ処理必要画素判断部604は、図11Bに示されるようにフィルタ処理必要データ605aを更新する。
図9に戻り、ラスタライズ処理で塗りつぶす1つの画素に対するフィルタ処理必要データの更新処理(S210)を終えると、再度ラスタライズ処理ループ(ループ1:S204〜212)に戻り、次の画素についても同様の処理(S206〜210)を行う。
例えば、フィルタ処理必要画素判断部604は、塗りつぶす画素の位置が座標P(3、2)であると判定した場合には、フィルタ処理必要データ605aに対し、座標P(X=3、Y=2)に対するフィルタ処理要否として「2:図形描画」という値を書き込む(図10のS304)。
そして、フィルタ処理必要画素判断部604は、座標P(X=3、Y=2)に対して右に3画素、下に2画素ずらしたずらし位置座標を、P’(X’=6,Y’=4)と求める(図10のS306)。
また、フィルタ処理必要画素判断部604は、ずらし位置座標P’を中心として、フィルタサイズの大きさに含まれる画素に対して、それぞれフィルタ処理必要格納部605のフィルタ処理必要データを読み出し、「0:フィルタ処理不要」となっているか否かを判定する(図10のS310)。
もし、「0:フィルタ処理不要」となっていると判断されれば、フィルタ処理必要画素判断部604は、該当するフィルタ処理必要格納部605のフィルタ処理必要データを「1:フィルタ処理必要」という値として書き込む(図10のS312)。なお、すでに「1:フィルタ処理」になっている場合や、「2:図形描画」となっている場合は、フィルタ処理必要画素判断部604は、何も処理しない。
ここまでで得られるフィルタ処理必要格納部605のフィルタ処理必要データ605aの内容を図11Cに示す。図11Bの時点でのフィルタ処理必要データ605aでは、P(X=3、Y=2)の画素は「1:フィルタ処理必要」となっていたが、それが「2:図形描画」に上書きされており、不要なフィルタ処理領域が識別できていることがわかる。
そして、図9に戻り、再度ラスタライズ処理ループ(ループ1:S204〜212)に戻り、ラスタライズ処理が必要な全ての画素について、同様の処理(S206〜210)を繰り返し行う。
ここまでの処理(S204〜S212)により、入力したベクトルデータに対応するラスタライズ結果がラスタライズ結果格納部603に格納されるとともに、そのラスタライズに対してフィルタ処理が必要となる画素領域がフィルタ処理必要格納部605に格納される。
図12に、「生」という図形本体に対してフィルタ処理が必要か否かの判断が完了した時点のフィルタ処理必要データ605aの例を示す。この図において、空欄となっている画素は「0:フィルタ処理不要」であることを示している。以降の処理において、フィルタ処理が必要な画素は「1:フィルタ処理必要」となっている画素だけでよい。
なお、同図では、図形本体は、「生」という文字であるが、図形本体は、文字に限定されず、どのような図形であってもよく、写真であってもよい。
図9に戻り、次に、フィルタ処理必要格納部605が格納しているフィルタ処理必要データ605aをフィルタ処理部606が読み出すことで、フィルタ処理要否状態が「2:フィルタ処理必要」となっている画素に対して以下の処理が行われる(ループ2:S214〜S220)。
まず、フィルタ処理部606は、ラスタライズ結果格納部603に格納されている原画像データ603aのうち、フィルタ処理が必要な画素に対してフィルタ処理を行う(S216)。
より具体的には、フィルタ処理部606は、1個のフィルタ処理が必要な画素に対し、その画素を中心とした(M×N)個の画素値と、同じく(M×N)個のフィルタ係数とを積和演算する。そして、フィルタ処理部606は、当該演算の結果得られる画素値であるフィルタ処理データを生成する。
次に、描画部607は、フィルタ処理の演算結果として得られる画素値(フィルタ処理データ)を、フレームバッファに描画する(S218)。フレームバッファとは、描画結果格納部608が格納するデータ記憶装置であり、ここに書き込まれた画素値は液晶モニタ等の表示デバイスを通してユーザに視覚情報として提示される。
このようにして、ここまでの処理(S216〜S218)をフィルタ処理が必要な全ての画素に施すことにより、影形状がフレームバッファに描画される。
最後に、描画部607は、ラスタライズ結果格納部603が格納している原画像データ603aの内容を、フレームバッファに描画する(S222)。つまり、描画部607は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データの内容を、フレームバッファに描画する。
以上の処理により、図形本体とその影形状がフレームバッファに描画され、従来例と同じく図4Dに示すような立体感のある図形描画を行うことができる。
以上のように、本実施の形態に係る描画装置600によれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所を予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素(図形本体を構成する画素)は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素(影形状を構成する画素)は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。
また、原画像(図形本体)を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理(外側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
また、フィルタ処理を行うか否かを示すフィルタ処理必要データ605aがフィルタ処理必要格納部605に格納され、当該フィルタ処理必要格納部605に格納されているフィルタ処理必要データ605aを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データ605aを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。
(変形例)
上記実施の形態では、フィルタ処理必要画素判断部604は、原画像(図形本体)を構成する座標位置の画素に対してはフィルタ処理を行わないと判断することとした。しかし、本実施の形態の変形例では、フィルタ処理必要画素判断部604は、原画像(図形本体)を構成する座標位置の画素以外の画素に対して、フィルタ処理を行わないと判断する。
図13は、本実施の形態の変形例における描画装置600の処理を説明する図である。
描画装置600が備えるフィルタ処理必要画素判断部604は、原画像を構成する画素の座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、フィルタ処理必要画素判断部604は、原画像を構成する画素の座標位置データで示される座標位置の画素に対してフィルタ処理を行うと判断する。
具体的には、図9に示されたフィルタ処理必要画素判断部604がフィルタ処理必要データ605aを更新する処理(図9のS210)において、フィルタ処理必要画素判断部604は、図形本体を構成する画素以外の画素については、フィルタ処理必要データを「0:フィルタ処理不要」という値として書き込む。また、フィルタ処理必要画素判断部604は、図形本体を構成する画素については、フィルタ処理必要データを「1:フィルタ処理必要」という値として書き込む。
これにより、同図に示すように、図形本体の内側の領域に対してフィルタ処理が行われ、図形本体の内側の領域に影形状(凹状の陰形状)が描画される。
以上のように、本実施の形態の変形例に係る描画装置600によれば、図形本体の内側の領域に影形状を描画するフィルタ処理(内側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
以上、本発明に係る描画装置600について、上記実施の形態及びその変形例を用いて説明したが、本発明は、これに限定されるものではない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
例えば、上記実施の形態では、描画装置600は、図形本体の外側の領域に影形状を描画するフィルタ処理(外側ドロップシャドウ)を行うこととした。しかし、描画装置600は、図形本体のエッジ部に光沢を与えるフィルタ処理(光彩)を行うことにしてもよい。図14は、この場合の描画装置600が行う処理を説明する図である。フィルタ処理必要画素判断部604が図形本体からずらした座標を算出する処理(図10のS306)において、ずらし量を0とすることで、同図に示すようなフィルタ処理(光彩)を行うことができる。
また、上記実施の形態及びその変形例では、描画装置600は、図形ベクトルデータ入力部601、ラスタライズ処理部602、ラスタライズ結果格納部603、フィルタ処理必要画素判断部604、フィルタ処理必要格納部605、フィルタ処理部606、描画部607及び描画結果格納部608を備えていることとした。しかし、描画装置600は、図形ベクトルデータ入力部601、フィルタ処理必要格納部605及び描画結果格納部608(図6の点線で示された部分)を備えていないことにしてもよい。つまり、描画装置600は、ラスタライズ処理部602、ラスタライズ結果格納部603、フィルタ処理必要画素判断部604、フィルタ処理部606及び描画部607を備えていればよく、これらの構成により本発明の目的を達成することができる。
また、本発明は、このような描画装置600として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
例えば、上記実施の形態及びその変形例において、描画装置600は、構成要件の全部あるいはその一部を1つの集積回路上に実装してもよいし、1つの基板上に実装した複数の集積回路であってもよい。
図15は、本発明の実施の形態及びその変形例における描画装置600を集積回路700で実現する一例を示す図である。
同図に示すように、集積回路700は、図6に示された描画装置600のラスタライズ結果格納部603、フィルタ処理必要格納部605及び描画結果格納部608以外の機能を備えている。なお、集積回路700は、各処理部が個別に1チップ化されても良いし、一部又は全ての処理部を含むように1チップ化されても良い。
また、集積回路700は、点線で示された図形ベクトルデータ入力部601を備えないことにしてもよい。つまり、集積回路700は、ラスタライズ処理部602、フィルタ処理必要画素判断部604、フィルタ処理部606及び描画部607を備えていればよく、これらの構成により本発明の目的を達成することができる。また、集積回路700は、ラスタライズ結果格納部603、フィルタ処理必要格納部605及び描画結果格納部608の少なくとも1つを含むことにしてもよい。
ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本発明にかかる描画装置は、とくに演算性能に制限のある組み込み機器向けインタフェース提示装置として実施される、各種文字や図形等の描画装置への応用が有用である。
300 描画装置
301 図形ベクトルデータ入力部
302 ラスタライズ処理部
303 ラスタライズ結果格納部
304 フィルタ処理部
305 フィルタ処理結果格納部
306 描画部
307 描画結果格納部
600 描画装置
601 図形ベクトルデータ入力部
602 ラスタライズ処理部
603 ラスタライズ結果格納部
603a 原画像データ
604 フィルタ処理必要画素判断部
605 フィルタ処理必要格納部
605a フィルタ処理必要データ
606 フィルタ処理部
607 描画部
608 描画結果格納部
700 集積回路
本発明は、デジタル民生機器のユーザIF描画など各種図形描画技術に関するものであり、特に、描画対象の画像にフィルタ処理を行う描画装置及び描画方法に関する。
近年、機器の文字描画には、デザイン性の高さや視認性の高さが求められてきている。そして、文字描画のデザイン性と視認性とを飛躍的に向上させるための手法として、「ドロップシャドウ」と呼ばれる手法が広く知られている。
ドロップシャドウとは、図形本体に対し擬似的な影を描画することで、あたかも図形が浮き出ているような印象をユーザに与えるものである。たとえば図1A及び図1Bは、テレビにおけるIF(Interface)画面の一例である。この例では、テレビ画面の映像105に重畳して、テレビが具備する再生機能と録画機能とをユーザに選択させるためのメニュー表示を行っている。
具体的には、図1Aは、従来技術におけるドロップシャドウを用いた場合におけるIF画面表示例を示す図であり、図1Bは、従来技術におけるドロップシャドウを用いなかった場合におけるIF画面表示例を示す図である。
図1Aに示すように、再生機能のためのメニューは、再生という文字列101と、文字列101の影102、そして、再生という文字列101を囲っている板状矩形103と、板状矩形103の影104とで構成されている。このようにドロップシャドウを用いることで、図1Bに示したドロップシャドウを用いなかった場合と比較し、テレビ映像105に対して、当該再生機能のためのメニューが浮き出ているような立体感をユーザに与えることが可能となる。録画機能のためのメニューについても、同様である。
また一方で、機器の高機能化とともに表示画面の高解像度化が進行していることから、描画技術分野においては表示解像度に依存せず高品位な描画結果が得られるベクターグラフィクス(VG)技術の適用が広がりつつある。
とりわけ、ベクターグラフィクスの世界標準API(Application Program Interface)規格であるOpenVGが策定されて以降、OpenVGが規定するAPIをハードウェアアクセラレーションする各種GPU(Graphics Processing Unit)が発表されており、今後はOpenVGを用いた描画アプリケーションの数が急速に拡大するものと思われる。
OpenVGでは、前述のドロップシャドウを実現するためのAPIも規格化している。ここでは、OpenVGが規定するAPIを用いてドロップシャドウ効果を付加した描画を行うための手順を説明する。
図2は、OpenVGによるドロップシャドウ実現のための従来の描画装置300の処理手順を示したフローチャートである。図3は、OpenVGによるドロップシャドウ実現のための従来の描画装置300の機能構成を示すブロック図である。また、図4A〜図4Dは、この手順を用いた例として「再生」という文字列にドロップシャドウ効果を付加して描画させる場合の入力データ、中間データ、出力データの具体例を示したものである。
図2に示すように、まず始めに、ユーザは、描画したい図形のベクトルデータ(頂点データ)を、描画装置300が有するOpenVGに設定する(S102)。ここで、ベクトルデータは、図形の輪郭を直線やベジエ曲線の集まりで表現したときの曲線制御点の2次元座標(x、y)の並びであり、例えばTrueTypeフォントデータとして一般に広く提供されている。
この場合の例を、図4Aに示す。つまり、図4Aは、ドロップシャドウを実現するための入力データの一例を示す図である。また、この処理は、図3に示された描画装置300に備えられた図形ベクトルデータ入力部301により行われ、具体的には、OpenVGのvgAppendPathData()のAPIにより行われる。
図2に戻り、次に、描画装置300は、ベクトルデータで表現された輪郭線の領域内部の画素を塗りつぶして画像データへ変換する(S104)。より具体的には、描画装置300は、画像を構成する画素に対し、その画素位置と輪郭線位置との関係により、その画素に対し塗りつぶしを行う画素か否かを判断し、必要な画素に対して塗りつぶし処理を行う。以降、この処理をラスタライズ処理と呼ぶ。
ラスタライズ処理により得られる結果の例を、図4Bに示す。つまり、図4Bは、ドロップシャドウを実現するための中間データの一例を示す図である。また、この処理は、図3に示された描画装置300に備えられたラスタライズ処理部302により行われ、具体的には、OpenVGのvgDrawPath()のAPIにより行われる。このとき、ラスタライズ処理部302は、ラスタライズ結果をラスタライズ結果格納部303に格納する。この時点では、まだラスタライズ結果はユーザに提示されない。
図2に戻り、次に、描画装置300は、図形の擬似的な影形状を得るために、ラスタライズ結果格納部303に格納されたラスタライズ結果に対し、ぼかしフィルタ処理を適用する(S106)。これにより、ラスタライズ結果の内容をぼかした画像を得ることが出来る。
なお、フィルタ処理とは、画像を構成する1画素あたり、その画素を中心とした(M×N)個の画素値と、同じく(M×N)個のフィルタ係数とを積和算するという処理を全画素に対して施すことであり、ぼかしや輪郭強調などの効果画像を得ることができる処理である。
図5A〜図5Cは、従来技術におけるフィルタ処理の詳細を示した図である。具体的には、図5A〜図5Cは、「生」という図形画像に対してフィルタ処理する際に、座標位置(x、y)における画素値p(x、y)に注目して、フィルタ処理結果である画素値p’(x、y)を得る処理を視覚的に示した図である。
さらに具体的には、図5Aは、フィルタ処理結果の画素値p’(x、y)を得るために、フィルタ処理対象となる(M×N)個の範囲を示した図である。処理範囲であるMおよびNの値は、所望するフィルタ効果によりその値を変えるが、ここでは(7×7)個の例を示している。また、図5Bは、フィルタ処理結果の画素値p’(x、y)を得るための数式であり、図5Cは、この数式を視覚的に示した図である。kで示されるフィルタ係数は、所望するフィルタ効果によりその値を適宜設定される。
これらの図に示すとおり、フィルタ処理では、画素を中心とした周辺M×N個の画素それぞれに対してフィルタ係数を乗算し、それらを積算する必要があるため、1画素あたり(M×N)回の積和演算を必要とする。さらに画像を構成するすべての画素に対してこの処理を行う必要があるため、その計算負荷がとても高い。
このフィルタ処理は、図3に示された描画装置300に備えられたフィルタ処理部304によって行われ、具体的には、OpenVGのvgGaussianBlur()のAPIにより行われる。フィルタ処理部304は、こうして得られたフィルタ処理済み画像を、フィルタ処理結果格納部305に格納する。
フィルタ処理結果格納部305に格納されたフィルタ処理結果の例を、図4Cに示す。この図が示すように、フィルタ処理によって「再生」という文字列がぼけた画像が得られる。つまり、図4Cは、ドロップシャドウを実現するための中間データの一例を示す図である。
図2に戻り、次に、描画装置300は、フィルタ処理結果格納部305に格納されている影形状と、ラスタライズ結果格納部303に格納されている図形本体形状とを、描画結果格納領域に描画する(S108、S110)。
このとき、描画装置300は、影形状を描画する位置を、図形本体の描画位置から数ピクセルずらして描画する。また、描画装置300は、影形状を図形本体に先行して描画する。影形状の一部は後から描画する図形本体に上書きされるが、これにより影形状と図形本体との奥行き順序が保証され、擬似的な立体感を得ることができる。
この描画装置300が図形本体と影形状とを描画して得られる結果画像を図4Dに示す。つまり、図4Dは、ドロップシャドウを実現するための出力データの一例を示す図である。また、この処理は、図3に示された描画装置300に備えられた描画部306によって行われ、具体的には、OpenVGのvgDrawImage()のAPIにより行われる。こうして得られた描画結果は、描画結果格納部307によって格納され、ユーザに提示される。
以上の処理により、従来の描画装置300は、ドロップシャドウ効果を付加した描画を行うことが出来る。
このような従来の技術としては、例えば以下の非特許文献1に記載されたものが知られている。
OpenVG Specification Version1.1、[online]、Khronos Group、[平成21年5月19日検索]、インターネット〈URL:http://www.khronos.org/openvg/〉
しかしながら、従来の描画装置300では、以下に示す2つの課題がある。
第1の課題は、従来の標準API規格であるOpenVGを用いてドロップシャドウを実現した場合、描画結果を得るまでの演算量が膨大になってしまうという課題である。
その理由は、影形状を得るためのフィルタ処理において、1画素あたり(M×N)回の積和演算を全画素に対して施す必要があるためである。そのため、CPU演算性能やメモリ帯域などのハード資源がそれほど十分ではない機器では、ドロップシャドウの膨大な演算量を処理しきれず、描画速度が極端に低下してしまう。このため、ユーザ操作に対する反応が悪くなってしまい、非常に使いにくいものとなってしまう。
また、第2の課題は、従来の描画装置300では、図形本体と影形状の描画順序が決められており、図形本体を影形状に先行して描画することができないという課題である。その理由は、図形本体を影形状に先行して描画すると、影形状が図形本体を上書きしてしまい、図形本体と影形状との奥行き順序が逆になってしまうためである。
以上のように、従来の描画装置300では、フィルタ処理を行う際に、演算量が膨大になってしまうとともに、影形状と図形本体の描画順序を考慮して描画しなければならないという課題がある。
そこで、本発明は、上記従来の課題を解決するものであり、フィルタ処理を行う際に、演算量の増加を抑制しつつ、図形本体と影形状の描画順序を考慮する必要がない描画装置及び描画方法を提供することを目的とする。
上記目的を達成するために、本発明の一態様に係る描画装置は、描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置であって、前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを格納するための第一格納部と、前記原画像データを生成し、生成した前記原画像データを前記第一格納部に書き込むラスタライズ処理部と、前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部とを備える。
これによれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所とを予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素(図形本体を構成する画素)は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素(影形状を構成する画素)は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。
また、好ましくは、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素に対してはフィルタ処理を行わないと判断する。
これによれば、原画像(図形本体)を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理(外側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
また、前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断することにしてもよい。
これによれば、原画像(図形本体)を構成する座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の内側の領域に対してフィルタ処理を行い、図形本体の内側の領域に影形状を描画する。このため、図形本体の内側の領域に影形状を描画するフィルタ処理(内側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
また、好ましくは、さらに、画素毎にフィルタ処理を行うか否かを示すフィルタ処理必要データを格納するための第二格納部を備え、前記フィルタ処理必要画素判断部は、画素毎にフィルタ処理を行うか否かを判断することで、前記第二格納部に格納されている前記フィルタ処理必要データを更新し、前記フィルタ処理部は、更新された前記フィルタ処理必要データを参照して、前記フィルタ処理データを生成する。
これによれば、フィルタ処理を行うか否かを示すフィルタ処理必要データが第二格納部に格納され、当該第二格納部に格納されているフィルタ処理必要データを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。
なお、本発明は、このような描画装置として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
本発明に係る描画装置によれば、フィルタ処理を行う際に、演算量の増加を抑制することができる。また、本発明に係る描画装置を用いれば、図形本体と影形状の描画順序を考慮する必要がない。
図1Aは、従来技術におけるドロップシャドウを用いた場合におけるIF画面表示例を示す図である。 図1Bは、従来技術におけるドロップシャドウを用いなかった場合におけるIF画面表示例を示す図である。 図2は、従来技術におけるドロップシャドウ実現のための描画装置の処理手順を示すフローチャートである。 図3は、従来技術におけるドロップシャドウ実現のための描画装置の機能構成を示すブロック図である。 図4Aは、従来技術におけるドロップシャドウを実現するための入力データの一例を示す図である。 図4Bは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。 図4Cは、従来技術におけるドロップシャドウを実現するための中間データの一例を示す図である。 図4Dは、従来技術におけるドロップシャドウを実現するための最終データの一例を示す図である。 図5Aは、従来技術におけるフィルタ処理の詳細を示した図である。 図5Bは、従来技術におけるフィルタ処理の詳細を示した図である。 図5Cは、従来技術におけるフィルタ処理の詳細を示した図である。 図6は、本発明の実施の形態における描画装置の機能構成を示すブロック図である。 図7は、本実施の形態における原画像データの一例を示す図である。 図8は、本実施の形態におけるフィルタ処理必要データの一例を示す図である。 図9は、本発明の実施の形態における描画装置の処理手順の全体を示すフローチャートである。 図10は、本発明の実施の形態におけるフィルタ処理必要画素判断部がフィルタ処理必要データを更新する処理を示すフローチャートである。 図11Aは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。 図11Bは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。 図11Cは、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データを座標位置に従って配置した図である。 図12は、本発明の実施の形態におけるフィルタ処理必要格納部が格納するフィルタ処理必要データの具体例を示す図である。 図13は、本発明の実施の形態の変形例における描画装置の処理を説明する図である。 図14は、本発明の実施の形態における描画装置が行う処理の他の例を説明する図である。 図15は、本発明の実施の形態及びその変形例における描画装置を集積回路で実現する一例を示す図である。
以下、本発明の実施の形態における描画装置について、図面を参照しながら説明する。
図6は、本発明の実施の形態における描画装置600の機能構成を示すブロック図である。
描画装置600は、描画対象の画像である原画像に、当該原画像を装飾するフィルタ処理を行う装置である。同図に示すように、描画装置600は、図形ベクトルデータ入力部601、ラスタライズ処理部602、ラスタライズ結果格納部603、フィルタ処理必要画素判断部604、フィルタ処理必要格納部605、フィルタ処理部606、描画部607、及び描画結果格納部608を備えている。
図形ベクトルデータ入力部601は、描画したい図形である原画像のベクトルデータを読み込む処理部である。ここで、ベクトルデータとは、原画像を構成する画素の位置を示す画素位置情報(画素の座標位置を示す座標位置データ)であり、図形の輪郭を直線やベジエ曲線の集まりで表現したときの制御点座標の並びである。ベクトルデータの例としては、例えばTrueTypeフォントデータとして一般に広く提供されているものがある。
ラスタライズ処理部602は、原画像データ603aを生成し、生成した原画像データ603aをラスタライズ結果格納部603に書き込む処理部である。原画像データ603aとは、原画像を示すデータであり、原画像を構成する画素の位置を示す座標位置データと、原画像を構成する画素の色を示す色データとを含むデータである。
具体的には、ラスタライズ処理部602は、画素位置情報として原画像を構成する画素の座標位置を示す座標位置データ(ベクトルデータ)を算出して、当該座標位置データと色データとを含む原画像データ603aを生成する。つまり、ラスタライズ処理部602は、ベクトルデータで表現された輪郭領域内部の画素を色データで示される色で塗りつぶすように、原画像データ603aを生成する。
ここで、原画像データ603aについて、説明する。
図7は、本実施の形態における原画像データ603aの一例を示す図である。
同図に示すように、原画像データ603aには、原画像を構成する各画素の画素位置に対応して、画素ごとの輝度値を示すデータが入力されている。なお、原画像がカラー画像の場合は、原画像データ603aの各画素の画素位置には、画素ごとの色差を示すデータも入力されている。つまり、この原画像データ603aは、各画素の座標位置データと色データとから構成される画素データの集まりであり、塗りつぶす画素位置と塗りつぶす色との組み合わせの並びである。
なお、原画像データ603aには、座標位置データが含まれていればよく、色データは含まれていなくともよい。つまり、ラスタライズ処理部602は、座標位置データのみ含まれている原画像データ603aを生成することにしてもよい。
図6に戻り、ラスタライズ結果格納部603は、ラスタライズ処理部602が生成した原画像データ603aを格納するためのメモリである。なお、ラスタライズ結果格納部603は、請求の範囲に記載の「第一格納部」に相当する。
フィルタ処理必要画素判断部604は、ラスタライズ結果格納部603に格納されている原画像データ603aを読み出し、読み出した原画像データ603aに含まれる画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断する処理部である。つまり、フィルタ処理必要画素判断部604は、ラスタライズ結果格納部603が格納している塗りつぶし画素位置と、フィルタ適用範囲との関係から、フィルタ処理要否の判断が必要な画素毎にフィルタ処理が必要か否かを判定する。
なお、フィルタ処理要否の判断が必要な画素とは、ディスプレイに表示される全画素でもよいし、図形本体と図形本体の周辺の数画素とを含む画素でもよいし、図形本体に含まれる画素のみでもよく、ユーザによりどのような範囲の画素にも設定可能である。
ここで、本実施の形態では、フィルタ処理必要画素判断部604は、原画像を構成する画素の座標位置を示す座標位置データで示される座標位置の画素に対しては、フィルタ処理を行わないと判断する。
そして、フィルタ処理必要画素判断部604は、画素毎にフィルタ処理を行うか否かを判断することで、フィルタ処理必要格納部605に格納されているフィルタ処理必要データ605aを更新する。
フィルタ処理必要格納部605は、フィルタ処理必要画素判断部604が算出したフィルタ処理必要データ605aを格納するためのメモリである。このフィルタ処理必要データ605aは、画素毎にフィルタ処理を行うか否かを示すデータであり、画素の位置とフィルタ処理要否との組み合わせの並びである。なお、フィルタ処理必要格納部605は、請求の範囲に記載の「第二格納部」に相当する。
ここで、フィルタ処理必要データ605aについて、説明する。
図8は、本実施の形態におけるフィルタ処理必要データ605aの一例を示す図である。
同図に示すように、フィルタ処理必要データ605aは、各画素の座標位置「座標(x,y)」における「フィルタ処理要否」を示す情報の集まりである。つまり、「座標(x,y)」は、各画素の座標位置をxy座標系で示しており、「フィルタ処理要否」は、画素ごとにフィルタ処理を行うか否かを示している。
例えば、座標(0,0)の画素は、フィルタ処理が不要であることを示しており、座標(3,0)の画素は、フィルタ処理が必要であることを示している。また、座標(2,0)の画素は、図形本体(原画像)を構成する画素であることを示している。
図6に戻り、フィルタ処理部606は、更新されたフィルタ処理必要データ605aを参照して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成する処理部である。
具体的には、フィルタ処理部606は、フィルタ処理必要格納部605が格納している、画素毎のフィルタ処理要否情報であるフィルタ処理必要データ605aを用いて、ラスタライズ結果格納部603が格納しているラスタライズ結果である原画像データ603aに対して、フィルタ処理が必要な画素に対してのみフィルタ処理を施す。
描画部607は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、描画部607は、ラスタライズ結果格納部603が格納している原画像データと、フィルタ処理部606で処理されたフィルタ処理データとを描画する。
描画結果格納部608は、描画部607で処理されたデータを格納する。
以上のように構成された描画装置600について、以下、その動作を説明する。
図9は本実施の形態における描画装置600の動作の一例を示すフローチャートである。
同図に示すように、まず始めに、図形ベクトルデータ入力部601が、原画像のベクトルデータを読み込む(S202)。つまり、図形ベクトルデータ入力部601が、設定された頂点データ列を読み込む。このとき、図形ベクトルデータ入力部601は、読み込んだ頂点データ列に対して必要に応じて座標変換を施すことにより、図形を描画するサイズを拡大・縮小したり、描画する位置を移動したり、図形を回転させたりすることが可能である。
次に、入力されたベクトルデータに対しラスタライズ処理を行うが、このときラスタライズ処理が必要な全ての画素に対して以下の処理を行う(ループ1:S204〜S212)。なお、ラスタライズ処理が必要な画素とは、入力されたベクトルデータの最大値・最小値により定まる領域としてもよい。
まず、ラスタライズ処理部602が、ある1つの画素に対しそれが塗りつぶしを行う画素か行わない画素なのかを判定する(S206)。この判定は、ラスタライズ処理部602が、当該画素が例えばベクトルデータで囲まれる範囲内か否かを判定して、当該範囲内であれば塗りつぶしを行う画素と判定する、などの方法で行う。
ここで、ラスタライズ処理部602は、塗りつぶしを行う画素であると判定した場合(S206でYES)、原画像データ603aのうちその画素についての画素データをラスタライズ結果格納部603に格納する(S208)。このようにして、ラスタライズ処理部602は、原画像データ603aを生成し、生成した原画像データ603aをラスタライズ結果格納部603に書き込む。
そして、フィルタ処理必要画素判断部604は、塗りつぶす画素の位置を含む原画像データ603aをラスタライズ結果格納部603から読み出し、その画素位置からフィルタ処理が必要となる画素領域の算出を行う。そして、フィルタ処理必要画素判断部604は、その結果を用いてフィルタ処理必要格納部605が格納しているフィルタ処理必要データ605aを更新する(S210)。
ここで、このフィルタ処理必要画素判断部604がフィルタ処理必要データ605aを更新する処理の詳細について、説明する。
図10は、本実施の形態におけるフィルタ処理必要画素判断部604がフィルタ処理必要データ605aを更新する処理の流れを示したフローチャートである。
また、図11A〜図11Cは、本発明の実施の形態におけるフィルタ処理必要データ605aを座標位置に従って配置した図である。また、図12は、本発明の実施の形態におけるフィルタ処理必要データ605aの具体例を示す図であり、そのデータに関する説明を容易に行うために画素位置の並びで表記したものである。
フィルタ処理必要格納部605は、画像を構成する全ての画素に対し3種類の状態値を保持する。3種類の状態値とは、「0:この画素はフィルタ処理が不要である」、「1:この画素はフィルタ処理が必要である」及び「2:この画素は図形本体を描画する」の3種類である。図11Aに、初期状態のフィルタ処理必要データ605aの具体例を示す。初期状態のフィルタ処理必要データ605aは、初期値としてすべての画素に対して「0」の状態値が設定されている。
図10に示すように、まず、フィルタ処理必要画素判断部604は、ラスタライズ結果格納部603に格納されている原画像データ603aを読み出し、ラスタライズ処理により図形本体を塗りつぶす画素の座標位置データを受け取る(S302)。座標位置データは、P(X、Y)の組で表現される2次元座標とする。以降の説明では、例として、フィルタ処理必要画素判断部604がP(X=2,Y=2)の座標を受け取ったとして説明する。
次に、フィルタ処理必要画素判断部604は、画素位置P(X=2,Y=2)は図形本体を描画する画素であるという情報を保持するために、フィルタ処理必要格納部605が保持するフィルタ処理必要データ605aに対し、座標P(X=2、Y=2)に対するフィルタ処理要否として「2:図形本体を描画」という値を書き込む(S304)。この値が書かれている画素は最終的にユーザに提示する際に、図形本体が描かれる位置となるので影は描画する必要が無い。すなわち座標P(X=2,Y=2)位置の画素に対するフィルタ処理は不要であることを示す。
次に、フィルタ処理必要画素判断部604は、図形本体に対する影形状のずらし量を考慮して、入力された座標をずらした座標を算出する(S306)。なお、このずらし量は、ユーザの入力により、自由に設定可能である。
例えば、図4Dでは、図形本体に対して右に3画素、下に2画素ずらした位置に影形状が描画されており、これと同様のずらし量が設定されている場合には、フィルタ処理必要画素判断部604は、入力座標を右に3画素、下に2画素ずらした位置を算出する。このずらし位置をP’(X’,Y’)とすると、ずらし位置座標はP’(X’=5,Y’=4)となる。
なお、この例では、図形本体に付加する効果としてドロップシャドウを想定しているためずらし量を設定したが、他の効果(例えば光沢など)を付加する場合など、ずらし量が0となる場合もありえる。
次に、ずらし位置座標P’を中心として、フィルタ処理が行われる領域であるフィルタサイズ(M×N)の大きさの矩形領域に含まれる画素に対して以下の処理を行う(ループ3:S308〜314)。フィルタサイズ(M×N)の値は、所望するフィルタ効果によりその値を変えるが、ここでは、フィルタサイズがM=5、N=5の場合を例にして説明する。
まず、フィルタ処理必要画素判断部604は、5×5の画素のうちの1つの画素の座標を座標Q(X”、Y”)として設定し、その座標Qに対するフィルタ処理必要データを読み出す。そして、フィルタ処理必要画素判断部604は、その値が「0:フィルタ処理不要」となっているか否かを判定する(S310)。座標Qは、5×5の画素のうちの1つの画素であり、上記処理が終われば、5×5の画素の中から別の画素を取り出して座標Qとして設定される。そして、上記処理をすべての画素に対して行っていく。
そして、フィルタ処理必要画素判断部604は、座標Qに対するフィルタ処理必要データの値が「0:フィルタ処理不要」となっていると判断した場合(S310でYES)、座標Qに対するフィルタ処理必要データを「1:フィルタ処理必要」という値として書き込む(S312)。
また、フィルタ処理必要画素判断部604は、座標Qに対するフィルタ処理必要データの値がすでに「1:フィルタ処理」になっている場合や、「2:図形描画」となっている場合は(S310でNO)、座標Qに対するフィルタ処理必要データを書き換えることなく、次の画素についての処理を続ける(ループ3:S308〜314)。
このようにして、フィルタ処理必要画素判断部604は、図11Bに示されるようにフィルタ処理必要データ605aを更新する。
図9に戻り、ラスタライズ処理で塗りつぶす1つの画素に対するフィルタ処理必要データの更新処理(S210)を終えると、再度ラスタライズ処理ループ(ループ1:S204〜212)に戻り、次の画素についても同様の処理(S206〜210)を行う。
例えば、フィルタ処理必要画素判断部604は、塗りつぶす画素の位置が座標P(3、2)であると判定した場合には、フィルタ処理必要データ605aに対し、座標P(X=3、Y=2)に対するフィルタ処理要否として「2:図形描画」という値を書き込む(図10のS304)。
そして、フィルタ処理必要画素判断部604は、座標P(X=3、Y=2)に対して右に3画素、下に2画素ずらしたずらし位置座標を、P’(X’=6,Y’=4)と求める(図10のS306)。
また、フィルタ処理必要画素判断部604は、ずらし位置座標P’を中心として、フィルタサイズの大きさに含まれる画素に対して、それぞれフィルタ処理必要格納部605のフィルタ処理必要データを読み出し、「0:フィルタ処理不要」となっているか否かを判定する(図10のS310)。
もし、「0:フィルタ処理不要」となっていると判断されれば、フィルタ処理必要画素判断部604は、該当するフィルタ処理必要格納部605のフィルタ処理必要データを「1:フィルタ処理必要」という値として書き込む(図10のS312)。なお、すでに「1:フィルタ処理」になっている場合や、「2:図形描画」となっている場合は、フィルタ処理必要画素判断部604は、何も処理しない。
ここまでで得られるフィルタ処理必要格納部605のフィルタ処理必要データ605aの内容を図11Cに示す。図11Bの時点でのフィルタ処理必要データ605aでは、P(X=3、Y=2)の画素は「1:フィルタ処理必要」となっていたが、それが「2:図形描画」に上書きされており、不要なフィルタ処理領域が識別できていることがわかる。
そして、図9に戻り、再度ラスタライズ処理ループ(ループ1:S204〜212)に戻り、ラスタライズ処理が必要な全ての画素について、同様の処理(S206〜210)を繰り返し行う。
ここまでの処理(S204〜S212)により、入力したベクトルデータに対応するラスタライズ結果がラスタライズ結果格納部603に格納されるとともに、そのラスタライズに対してフィルタ処理が必要となる画素領域がフィルタ処理必要格納部605に格納される。
図12に、「生」という図形本体に対してフィルタ処理が必要か否かの判断が完了した時点のフィルタ処理必要データ605aの例を示す。この図において、空欄となっている画素は「0:フィルタ処理不要」であることを示している。以降の処理において、フィルタ処理が必要な画素は「1:フィルタ処理必要」となっている画素だけでよい。
なお、同図では、図形本体は、「生」という文字であるが、図形本体は、文字に限定されず、どのような図形であってもよく、写真であってもよい。
図9に戻り、次に、フィルタ処理必要格納部605が格納しているフィルタ処理必要データ605aをフィルタ処理部606が読み出すことで、フィルタ処理要否状態が「2:フィルタ処理必要」となっている画素に対して以下の処理が行われる(ループ2:S214〜S220)。
まず、フィルタ処理部606は、ラスタライズ結果格納部603に格納されている原画像データ603aのうち、フィルタ処理が必要な画素に対してフィルタ処理を行う(S216)。
より具体的には、フィルタ処理部606は、1個のフィルタ処理が必要な画素に対し、その画素を中心とした(M×N)個の画素値と、同じく(M×N)個のフィルタ係数とを積和演算する。そして、フィルタ処理部606は、当該演算の結果得られる画素値であるフィルタ処理データを生成する。
次に、描画部607は、フィルタ処理の演算結果として得られる画素値(フィルタ処理データ)を、フレームバッファに描画する(S218)。フレームバッファとは、描画結果格納部608が格納するデータ記憶装置であり、ここに書き込まれた画素値は液晶モニタ等の表示デバイスを通してユーザに視覚情報として提示される。
このようにして、ここまでの処理(S216〜S218)をフィルタ処理が必要な全ての画素に施すことにより、影形状がフレームバッファに描画される。
最後に、描画部607は、ラスタライズ結果格納部603が格納している原画像データ603aの内容を、フレームバッファに描画する(S222)。つまり、描画部607は、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データの内容を、フレームバッファに描画する。
以上の処理により、図形本体とその影形状がフレームバッファに描画され、従来例と同じく図4Dに示すような立体感のある図形描画を行うことができる。
以上のように、本実施の形態に係る描画装置600によれば、画素毎にフィルタ処理を行うか否かを判断して、フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、フィルタ処理を行うと判断された画素に対してフィルタ処理を行う。つまり、フィルタ処理を行うべき箇所と行わない箇所を予め把握しておき、フィルタ処理を行う必要がないと判断された箇所にはフィルタ処理を行わないことによって、フィルタ処理における演算量の増加を抑制することができる。これによって、ハード資源が限られる描画装置であっても、高速にドロップシャドウ効果を付加することができる。
また、フィルタ処理を行わないと判断された画素のうち原画像を構成する画素における原画像データと、フィルタ処理を行うと判断された画素におけるフィルタ処理データとを合成して描画する。つまり、原画像データで描画される画素(図形本体を構成する画素)は、フィルタ処理を行わないと判断された画素であり、フィルタ処理データで描画される画素(影形状を構成する画素)は、フィルタ処理を行うと判断された画素であるため、図形本体を構成する画素と影形状を構成する画素とが同じ画素になることがない。したがって、図形本体と影形状とが重なって影形状が図形本体を上書きするということがないため、図形本体と影形状の描画順序を考慮する必要がない。
また、原画像(図形本体)を構成する座標位置の画素に対してはフィルタ処理を行わないと判断する。つまり、図形本体の外側の領域に対してフィルタ処理を行い、影形状を描画する。このため、図形本体の外側の領域に影形状を描画するフィルタ処理(外側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
また、フィルタ処理を行うか否かを示すフィルタ処理必要データ605aがフィルタ処理必要格納部605に格納され、当該フィルタ処理必要格納部605に格納されているフィルタ処理必要データ605aを参照して、フィルタ処理データを生成する。このため、フィルタ処理必要データ605aを用いて、容易にフィルタ処理を行うか否かを判断して、フィルタ処理データを生成することができる。
(変形例)
上記実施の形態では、フィルタ処理必要画素判断部604は、原画像(図形本体)を構成する座標位置の画素に対してはフィルタ処理を行わないと判断することとした。しかし、本実施の形態の変形例では、フィルタ処理必要画素判断部604は、原画像(図形本体)を構成する座標位置の画素以外の画素に対して、フィルタ処理を行わないと判断する。
図13は、本実施の形態の変形例における描画装置600の処理を説明する図である。
描画装置600が備えるフィルタ処理必要画素判断部604は、原画像を構成する画素の座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する。つまり、フィルタ処理必要画素判断部604は、原画像を構成する画素の座標位置データで示される座標位置の画素に対してフィルタ処理を行うと判断する。
具体的には、図9に示されたフィルタ処理必要画素判断部604がフィルタ処理必要データ605aを更新する処理(図9のS210)において、フィルタ処理必要画素判断部604は、図形本体を構成する画素以外の画素については、フィルタ処理必要データを「0:フィルタ処理不要」という値として書き込む。また、フィルタ処理必要画素判断部604は、図形本体を構成する画素については、フィルタ処理必要データを「1:フィルタ処理必要」という値として書き込む。
これにより、同図に示すように、図形本体の内側の領域に対してフィルタ処理が行われ、図形本体の内側の領域に影形状(凹状の陰形状)が描画される。
以上のように、本実施の形態の変形例に係る描画装置600によれば、図形本体の内側の領域に影形状を描画するフィルタ処理(内側ドロップシャドウ)を行う際に、演算量の増加を抑制することができ、また、図形本体と影形状の描画順序を考慮する必要がない。
以上、本発明に係る描画装置600について、上記実施の形態及びその変形例を用いて説明したが、本発明は、これに限定されるものではない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
例えば、上記実施の形態では、描画装置600は、図形本体の外側の領域に影形状を描画するフィルタ処理(外側ドロップシャドウ)を行うこととした。しかし、描画装置600は、図形本体のエッジ部に光沢を与えるフィルタ処理(光彩)を行うことにしてもよい。図14は、この場合の描画装置600が行う処理を説明する図である。フィルタ処理必要画素判断部604が図形本体からずらした座標を算出する処理(図10のS306)において、ずらし量を0とすることで、同図に示すようなフィルタ処理(光彩)を行うことができる。
また、上記実施の形態及びその変形例では、描画装置600は、図形ベクトルデータ入力部601、ラスタライズ処理部602、ラスタライズ結果格納部603、フィルタ処理必要画素判断部604、フィルタ処理必要格納部605、フィルタ処理部606、描画部607及び描画結果格納部608を備えていることとした。しかし、描画装置600は、図形ベクトルデータ入力部601、フィルタ処理必要格納部605及び描画結果格納部608(図6の点線で示された部分)を備えていないことにしてもよい。つまり、描画装置600は、ラスタライズ処理部602、ラスタライズ結果格納部603、フィルタ処理必要画素判断部604、フィルタ処理部606及び描画部607を備えていればよく、これらの構成により本発明の目的を達成することができる。
また、本発明は、このような描画装置600として実現することができるだけでなく、その装置を構成する各処理部を備える集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
例えば、上記実施の形態及びその変形例において、描画装置600は、構成要件の全部あるいはその一部を1つの集積回路上に実装してもよいし、1つの基板上に実装した複数の集積回路であってもよい。
図15は、本発明の実施の形態及びその変形例における描画装置600を集積回路700で実現する一例を示す図である。
同図に示すように、集積回路700は、図6に示された描画装置600のラスタライズ結果格納部603、フィルタ処理必要格納部605及び描画結果格納部608以外の機能を備えている。なお、集積回路700は、各処理部が個別に1チップ化されても良いし、一部又は全ての処理部を含むように1チップ化されても良い。
また、集積回路700は、点線で示された図形ベクトルデータ入力部601を備えないことにしてもよい。つまり、集積回路700は、ラスタライズ処理部602、フィルタ処理必要画素判断部604、フィルタ処理部606及び描画部607を備えていればよく、これらの構成により本発明の目的を達成することができる。また、集積回路700は、ラスタライズ結果格納部603、フィルタ処理必要格納部605及び描画結果格納部608の少なくとも1つを含むことにしてもよい。
ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
本発明にかかる描画装置は、とくに演算性能に制限のある組み込み機器向けインタフェース提示装置として実施される、各種文字や図形等の描画装置への応用が有用である。
300 描画装置
301 図形ベクトルデータ入力部
302 ラスタライズ処理部
303 ラスタライズ結果格納部
304 フィルタ処理部
305 フィルタ処理結果格納部
306 描画部
307 描画結果格納部
600 描画装置
601 図形ベクトルデータ入力部
602 ラスタライズ処理部
603 ラスタライズ結果格納部
603a 原画像データ
604 フィルタ処理必要画素判断部
605 フィルタ処理必要格納部
605a フィルタ処理必要データ
606 フィルタ処理部
607 描画部
608 描画結果格納部
700 集積回路

Claims (8)

  1. 描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置であって、
    前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを格納するための第一格納部と、
    前記原画像データを生成し、生成した前記原画像データを前記第一格納部に書き込むラスタライズ処理部と、
    前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、
    前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、
    前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部と
    を備える描画装置。
  2. 前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、
    前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素に対してはフィルタ処理を行わないと判断する
    請求項1に記載の描画装置。
  3. 前記ラスタライズ処理部は、前記画素位置情報として前記原画像を構成する画素の座標位置を示す座標位置データを算出して前記座標位置データを含む前記原画像データを生成し、
    前記フィルタ処理必要画素判断部は、前記座標位置データで示される座標位置の画素以外の画素に対してはフィルタ処理を行わないと判断する
    請求項1に記載の描画装置。
  4. さらに、
    画素毎にフィルタ処理を行うか否かを示すフィルタ処理必要データを格納するための第二格納部を備え、
    前記フィルタ処理必要画素判断部は、画素毎にフィルタ処理を行うか否かを判断することで、前記第二格納部に格納されている前記フィルタ処理必要データを更新し、
    前記フィルタ処理部は、更新された前記フィルタ処理必要データを参照して、前記フィルタ処理データを生成する
    請求項1〜3のいずれか1項に記載の描画装置。
  5. 描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画方法であって、
    前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
    前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
    前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
    前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
    を含む描画方法。
  6. 描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行うためのプログラムであって、
    前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
    前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
    前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
    前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
    をコンピュータに実行させるプログラム。
  7. 描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行うためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理ステップと、
    前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断ステップと、
    前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理ステップと、
    前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画ステップと
    をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
  8. 描画対象の画像である原画像に、前記原画像を装飾するフィルタ処理を行う描画装置を制御する集積回路であって、
    前記原画像を構成する画素の位置を示す画素位置情報を含む、前記原画像を示す原画像データを生成し、生成した前記原画像データを第一格納部に書き込むラスタライズ処理部と、
    前記第一格納部に格納されている原画像データを読み出し、読み出した原画像データに含まれる前記画素位置情報を用いて、画素毎にフィルタ処理を行うか否かを判断するフィルタ処理必要画素判断部と、
    前記フィルタ処理を行わないと判断された画素に対してはフィルタ処理を行わず、前記フィルタ処理を行うと判断された画素に対してフィルタ処理を行い、当該フィルタ処理の結果得られるフィルタ処理データを生成するフィルタ処理部と、
    前記フィルタ処理を行わないと判断された画素のうち前記原画像を構成する画素における前記原画像データと、前記フィルタ処理を行うと判断された画素における前記フィルタ処理データとを合成して描画する描画部と
    を備える集積回路。
JP2010547901A 2009-05-19 2010-05-12 描画装置及び描画方法 Withdrawn JPWO2010134292A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009120582 2009-05-19
JP2009120582 2009-05-19
PCT/JP2010/003213 WO2010134292A1 (ja) 2009-05-19 2010-05-12 描画装置及び描画方法

Publications (1)

Publication Number Publication Date
JPWO2010134292A1 true JPWO2010134292A1 (ja) 2012-11-08

Family

ID=43125985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010547901A Withdrawn JPWO2010134292A1 (ja) 2009-05-19 2010-05-12 描画装置及び描画方法

Country Status (4)

Country Link
US (1) US20110122140A1 (ja)
JP (1) JPWO2010134292A1 (ja)
CN (1) CN102119409A (ja)
WO (1) WO2010134292A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104067623A (zh) * 2012-01-19 2014-09-24 三菱电机株式会社 运动图像解码装置、运动图像编码装置、运动图像解码方法以及运动图像编码方法
CN102929904B (zh) * 2012-07-25 2016-06-22 北京世纪天宇科技发展有限公司 一种验证栅格数据的方法及系统
KR102178258B1 (ko) * 2013-09-27 2020-11-12 삼성전자주식회사 디스플레이 장치 및 이의 글자 효과 제공 방법
KR101779380B1 (ko) * 2016-02-05 2017-09-19 (주)한양정보통신 벡터 및 컬러 비트맵 오버레이 폰트 제공 시스템 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3192561B2 (ja) * 1994-10-20 2001-07-30 シャープ株式会社 画像処理装置
US5870097A (en) * 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
JP4087010B2 (ja) * 1999-04-06 2008-05-14 大日本印刷株式会社 画像処理装置
JP4628524B2 (ja) * 2000-06-29 2011-02-09 三菱電機株式会社 画像合成処理装置
JP4005904B2 (ja) * 2002-11-27 2007-11-14 松下電器産業株式会社 表示装置、及び表示方法

Also Published As

Publication number Publication date
CN102119409A (zh) 2011-07-06
WO2010134292A1 (ja) 2010-11-25
US20110122140A1 (en) 2011-05-26

Similar Documents

Publication Publication Date Title
JP6563048B2 (ja) スクリーンの位置によって異なる解像度のターゲットの複数レンダリングのテクスチャ・マッピングの傾き調整
KR102475212B1 (ko) 타일식 아키텍처들에서의 포비티드 렌더링
US10885607B2 (en) Storage for foveated rendering
US11361405B2 (en) Dynamic spread anti-aliasing
KR101922482B1 (ko) 다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능
JP6342513B2 (ja) 高解像度表示バッファの効果的な構築方法
US7612783B2 (en) Advanced anti-aliasing with multiple graphics processing units
KR102338831B1 (ko) 구성가능한 변환 파라미터들을 갖는 다중 공간 렌더링
JP5461554B2 (ja) 電子文書閲覧装置および方法
JP5523035B2 (ja) 画像処理装置、及び画像処理方法
JP2018512644A (ja) 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法
US11740470B2 (en) Low latency distortion unit for head mounted displays
WO2010134292A1 (ja) 描画装置及び描画方法
US9959643B2 (en) Variable rasterization order for motion blur and depth of field
US7808512B1 (en) Bounding region accumulation for graphics rendering
EP1941447B1 (en) Full screen anti-aliasing with dynamic filters
US20150154772A1 (en) Variable Rasterization Order for Motion Blur and Depth of Field
JP5678295B2 (ja) 画像表示処理方法及び画像表示処理装置
JP6507491B2 (ja) 画像処理装置
US20160321835A1 (en) Image processing device, image processing method, and display device
JP2011086235A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2004054635A (ja) 画像処理装置およびその方法
JP2003187254A (ja) 画像処理装置およびその方法
JP2002352263A (ja) 3d表示方法及び3d表示装置
JP2008198105A (ja) 三次元グラフィック描画装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130128

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130611