説明

図形描画装置、図形描画方法、およびプログラム

【課題】 装置のリソース変動に対して、高速処理や安定動作が可能な図形描画を行う装置、および手法を提供すること目的とする。
【解決手段】 図形形状を表すベクトルデータ群をベクトルデータ群管理部に入力し、図形内部属性情報を表す描画属性データを描画属性データ管理部に入力し、利用状況を表すリソース情報をリソース情報管理部に入力し、管理されたベクトルデータ群管理部からベクトルデータ群を読み込み、図形特徴量算出部により入力図形の形状特徴を表す図形特徴量を算出し、算出された図形特徴量と、リソース情報管理部で管理されたリソース情報を読み込み、最適な描画データ生成に切り替え、ベクトルデータ群管理部で管理されているベクトルデータ群と、描画属性データ管理部段で管理されている描画属性データを読み込み、描画データを生成し、生成された描画データと、描画属性データ管理部で管理された描画属性データを読み込み、描画処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータ、デジタルAV装置、通信装置などにおける図形描画処理に関するものである。
【背景技術】
【0002】
任意の多角形を描画する手法として様々な手法が開発されてきている。(1)ポイントベースの手法、(2)ラスターラインベースの手法、(3)トライアングルベースの手法、(4)ステンシルバッファベースの手法などである。
【0003】
(1)は、描画領域に含まれる各点(ピクセル)に関して、描画の判定を行い、ポイント(ピクセル)単位で描画処理を行っていくものである。この際、描画処理の高速化のため、無駄な描画領域を削除したり、各点における描画判定を簡略化したりという様々な工夫が凝らされてきている。さらに、高速化のため、この機能をハードウェア化することも良く行われている。このハードウェア化された装置の1つとして、ラスタライザと呼ばれるものがある(例えば、非特許文献1を参照)。この手法は、シンプルな手法であるが故に非常に安定動作することが特徴であるが、各点毎に描画判定を行う必要があるため、非常に処理コストが大きいという問題点がある。このため、典型的には専用ハードウェア化されることがほとんどである。(2)は、(1)を改良したもので、各点毎、あるいは、それに相当する範囲で描画判定を行うところまでは似ているが、描画する際に、各点における描画部分をまとめ、これを描画したい画面のスキャンライン単位の線の描画に置き換えたものである。こうすることで、描画判定に関しては(1)と同様に処理コストが大きいが、描画処理のコストは小さくなるため、(1)よりも高速化が見込まれる。また、描画判定の部分は、高速なCPUを持つ処理系での処理や専用ハードウェア化などが必要とされるが、描画処理に関しては、汎用的なグラフィックスLSI(GPU)を用いることが可能である。なぜならば、グラフィックスLSIは、線、三角形を高速に描画する機能を持っているからである。このため、(1)よりも汎用性が上がっていると言える。(3)は、描画したい多角形を三角形群に分割し、三角形ベースで描画しようというものである(例えば、非特許文献2を参照)。これは、汎用のグラフィックスLSI、または、高速な三角形描画装置の使用を前提として高速化を図ろうという意図がある。(なぜならば、グラフィックスLSIは、線、三角形を高速に描画する機能を持っているからである。)このため、(1)、(2)の手法よりもより汎用性がある手法である。しかし、三角形分割のために複雑な処理が必要とされるため、この部分の安定性が問題となりうる。また、描画したい多角形が非常に複雑な形状を持っている場合には、三角形分割処理の計算コストが非常に大きくなるという問題もある。また、三角形群を、グラフィックスLSIなどを用いて描画することを前提としているため、グラフィックスLSIに十分なリソースが無い場合、使用することができないという問題もある。多角形を三角形群に分割し、これをグラフィックスLSIに投入する必要があるため、比較的メモリなどの使用量が多くなるからである。(4)は、完全に汎用グラフィックスLSIの使用を前提とするもので、グラフィックスLSIの機能として存在しているステンシルバッファという機能を用いて多角形描画を実現するものである(例えば、非特許文献3を参照)。これは、(1)〜(3)のどれよりも高速であり、安定に多角形描画が可能な方法であるが、グラフィックスLSIの機能をフル活用するため、グラフィックスLSIの多くのリソースを必要とするという問題点が存在する。
【0004】
このように、(1)〜(4)までの手法に関して、処理速度と必要リソースに関してはトレードオフの関係にある。そのため、複数のタスクによりグラフィックスLSIなどのリソースが利用されるような場合においては、それぞれの手法において問題が生じる。(1)、(2)に関しては、必要とするリソースが少ないため、リソースの変動に関して安定して処理を行えるが、処理量が多いため高速処理を行うことが難しい。(3)、(4)に関しては、リソースが十分にある場合には高速処理が可能となるが、他のタスクによりリソースが不足すると、処理性能の低下、あるいはリソース不足による実行不可などの問題が生じる。
【非特許文献1】Renate Kempf and Chris Frazier, “The OpenGL Processing Pipeline”, Chapter 2: Overview of Commands and Routines, OpenGL Reference Manual Second Edition, ISBN 0-201-46140-4, pp.8-16, 1997.
【非特許文献2】M.ドバーグ、M.ファン.クリベルド、M.オーバマーズ、O.シュワルツコップ, “コンピュータ・ジオメトリ”, ISBN 4-7649-0277-X, pp.55-75, 近代科学社, 2000.
【非特許文献3】Jackie Neider, Tom Davis, Mason Woo, “Drawing Filled, Concave Polygons Using the Stencil Buffer”, Chapter 13: Now That You Know, OpenGL Programming Guide, ISBN 0-201-63274-8, pp.398-399, 1993.
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記のように従来技術においては、複数のタスクの実行によるリソース変動に対して、処理速度や、安定動作に関する問題点があった。本発明では、上記のような従来技術の欠点を除去し、装置のリソース変動に対して、高速処理や安定動作が可能な図形描画を行う装置、および手法を提供すること目的とする。
【課題を解決するための手段】
【0006】
この発明の図形描画装置は、図形形状を表すベクトルデータ群を管理するベクトルデータ群管理手段と、図形内部属性情報を表す描画属性データを管理する描画属性データ群管理手段と、利用状況を表すリソース情報を管理するリソース情報管理手段と、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、入力図形の形状特徴を表す図形特徴量を算出する図形特徴量算出手段と、前記図形特徴量算出手段により算出された図形特徴量と、前記リソース情報管理手段により管理されたリソース情報を読み込み、最適な描画データ生成手段に切り替える描画処理切り替え手段と、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されているベクトルデータ群と、前記描画属性データ管理手段により管理されている描画属性データを読み込み、それぞれ異なる描画データを生成する複数の描画データ生成手段と、前記描画データ生成手段により生成された描画データと、前記描画属性データ管理手段により管理されている描画属性データを読み込み、それぞれ異なる描画処理を行う、複数の描画処理手段とを具備することを特徴とする。
【0007】
また、多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、メモリ使用状況を取得するメモリ使用状況データ入力手段と、前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、メモリ使用状況データと比較するメモリ使用状況閾値を管理する第1の閾値管理手段と、自己交差点数と比較する図形外周線の自己交差点数閾値を管理する第2の閾値管理手段と、前記第1の閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、前記第1の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第1の描画処理手段と、前記第1の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで描画処理を切り替える第2の描画処理切り替え手段と、前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成手段と、前記第2の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第2の描画処理手段と、前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第3の描画データ生成手段と、前記第3の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第3の描画処理手段とを具備することを特徴とする。
【0008】
また、掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
【0009】
メモリ使用状況を取得するメモリ使用状況データ入力手段と、前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、描画処理状況データを取得する描画処理状況データ入力手段と、前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、描画属性データの不透明度と比較する不透明度閾値を管理する第1の閾値管理手段と、メモリ使用状況データと比較するメモリ使用状況閾値を管理する第2の閾値管理手段と、描画処理状況データと比較する描画処理状況データの閾値を管理する第3の閾値管理手段と、前記描画属性データ管理手段により管理された描画属性データと、前記第1の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、前記第1の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、前記第1の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第2の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第2の描画処理切り替え手段と、前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第2の描画データ生成手段と、前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第2の描画処理手段と、前記第2の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第3の閾値管理手段により管理されている描画処理状況閾値とを比較するこで、描画処理を切り替える第3の描画処理切り替え手段と、前記第3の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第3の描画データ生成手段と、前記第3の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第3の描画処理手段と、前記第3の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第4の描画データ生成手段と、前記第4の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第4の描画処理手段とを具備することを特徴とする。
【0010】
更に、この発明の図形描画方法は、図形形状を表すベクトルデータ群をベクトルデータ群管理部に入力し、図形内部属性情報を表す描画属性データを描画属性データ管理部に入力し、利用状況を表すリソース情報をリソース情報管理部に入力し、管理されたベクトルデータ群管理部からベクトルデータ群を読み込み、図形特徴量算出部により入力図形の形状特徴を表す図形特徴量を算出し、算出された図形特徴量と、前記リソース情報管理部で管理されたリソース情報を読み込み、最適な描画データ生成に切り替え、前記ベクトルデータ群管理部で管理されているベクトルデータ群と、前記描画属性データ管理部段で管理されている描画属性データを読み込み、描画データを生成し、生成された描画データと、前記描画属性データ管理部で管理された描画属性データを読み込み、描画処理を行うことを特徴とする。
【0011】
更に、この発明のプログラムは、コンピュータを図形描画装置として機能させるためのプログラムであって、図形形状を表すベクトルデータ群をベクトルデータ群管理部に入力する機能と、図形内部属性情報を表す描画属性データを描画属性データ管理部に入力する機能と、利用状況を表すリソース情報をリソース情報管理部に入力する機能と、管理されたベクトルデータ群管理部からベクトルデータ群を読み込み、図形特徴量算出部により入力図形の形状特徴を表す図形特徴量を算出する機能と、算出された図形特徴量と、前記リソース情報管理部で管理されたリソース情報を読み込み、最適な描画データ生成に切り替える機能と、前記ベクトルデータ群管理部で管理されているベクトルデータ群と、前記描画属性データ管理部段で管理されている描画属性データを読み込み、描画データを生成する機能と、生成された描画データと、前記描画属性データ管理部で管理された描画属性データを読み込み、描画処理を行う機能と含むことを特徴とする。
【発明の効果】
【0012】
リソースの使用状況および図形特徴量により、図形描画処理方法を選択して、図形描画処理性能を調整することができ、描画処理を行う際に、リソース変動を伴う図形描画装置において、図形処理性能を制御でき、実用的には極めて有用である。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態を、図面を参照しながら説明する。
図1は本発明の実施の形態に係る構成図を示したものである。図形描画装置は、図形形状を表すベクトルデータ群を管理するベクトルデータ群管理部01と、図形内部属性情報を表す描画属性データを管理する描画属性データ群管理部03と、装置全体の利用状況を表すリソース情報を管理するリソース情報管理部02と、ベクトルデータ群管理部01により管理されたベクトルデータ群を読み込み、入力図形の形状特徴を表す図形特徴量を算出する図形特徴量算出部12と、図形特徴量算出部12により算出された図形特徴量と、リソース情報管理部02により管理されたリソース情報を読み込み、最適な描画データ生成に切り替える描画処理切り替え部04と、描画処理切り替え部04により実行され、ベクトルデータ群管理部01により管理されているベクトルデータ群と、描画属性データ管理部03により管理されている描画属性データを読み込み、それぞれ異なる描画データを生成する複数の描画データ生成部(第1の描画データ生成部05、第2の描画データ生成部07、第Nの描画データ生成部09)と、描画データ生成部05、07、09により生成された描画データと、描画属性データ管理部03により管理されている描画属性データを読み込み、それぞれ異なる描画処理を行う、複数の描画処理部(第1の描画処理部06、第2の描画処理部08、第Nの描画処理部10)とから構成される。
【0014】
更に、図39に示すように、リソース情報と比較する閾値を管理するリソース情報閾値管理部13と、図形特徴量と比較する閾値を管理する図形特徴量閾値管理部14を設け、描画処理切り替え手段04は、図形特徴量算出部12により算出された図形特徴量と、図形特徴量閾値管理部14により管理された図形特徴量閾値とを比較し、リソース情報閾値管理部13により管理されたリソース情報閾値と、リソース情報管理部02により管理されたリソース情報とを比較することで、描画データ生成手段を切り替えてもよい。
【0015】
[第1の実施形態]
まず、本発明の第1の実施形態について説明する。
本実施形態では、多角形の外周線を表すベクトルデータ群を入力として、描画処理時の装置のリソース状況において、高速な多角形の描画処理を選択し、描画を行う装置の例を示す。
【0016】
[全体の構成]
図2は、本発明の第1の実施形態に係る図形描画装置の構成図を示したものである。
本実施形態における図形描画装置は、多角形の外周線を表すベクトルデータ群を入力するためのベクトルデータ群入力部101と、前記ベクトルデータ群入力部101により入力された多角形の外周線を表すベクトルデータ群を管理するためのベクトルデータ群管理部102と、多角形の内部領域の属性を表す描画属性データを入力するための描画属性データ入力部103と、前記描画属性データ入力部103により入力された描画属性データを管理するための描画属性データ管理部104と、メモリ使用状況を取得するためのメモリ使用状況データ入力部105と、前記メモリ使用状況データ入力部105により入力されたメモリ使用状況データを管理するためのメモリ使用状況データ管理部106と、描画処理の切り替え判定を行う際に参照するメモリ使用状況参照値を管理するための第1の参照値管理部107と、描画処理の切り替え判定を行う際に参照する図形外周線の自己交差点数参照値を管理するための第2の参照値管理部108と、前記第1の参照値管理部107により管理されたメモリ使用状況参照値、および前記メモリ使用状況データ管理部106により管理されたメモリ使用状況データを読み込み、比較・判定を行うことにより、後記第1の描画データ生成部110と後記自己交差点算出部112の実行制御を行う第1の描画処理切り替え部109と、前記第1の描画処理切り替え部109により実行され、前記ベクトルデータ群管理部102により管理されたベクトルデータ群を読み込み、ステンシルバッファを利用する描画処理を行うための描画データを生成する第1の描画データ生成部110と、前記第1の描画データ生成部110により生成された描画データ、および前記描画属性データ管理部104により管理された描画属性データを読み込み、ステンシルバッファの更新と、ステンシルバッファを利用した描画処理を行う第1の描画処理部111と、前記第1の描画処理切り替え部109により実行され、前記ベクトルデータ群管理部102により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出部112と、前記自己交差点算出部112により算出された図形外周線の自己交差点の情報を保存する自己交差点管理部113と、前記自己交差点管理部113により管理された図形外周線の自己交差点数、および前記第2の参照値管理部108により管理された自己交差点数参照値を読み込み、比較・判定を行うことにより、後記第2の描画データ生成部115と後記第3の描画データ生成部117の実行制御を行う第2の描画処理切り替え部114と、前記第2の描画処理切り替え部114により実行され、前記ベクトルデータ群管理部102により管理されたベクトルデータ群、および前記描画属性データ管理部104により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成部115と、前記第2の描画データ生成部115により管理された三角形データ群、および前記描画属性データ管理部104により管理された描画属性データを読み込み、描画処理を行う第2の描画処理部116と、前記第2の描画処理切り替え部114により実行され、前記ベクトルデータ群管理部102により管理されたベクトルデータ群、および前記描画属性データ管理部104により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第3の描画データ生成部117と、前記第3の描画データ生成部117により生成された線分データ群、および前記描画属性データ管理部104により管理された描画属性データを読み込み、描画処理をおこなう第3の描画処理部118と、前記第1の描画処理部111、前記第2の描画処理部116、および前記第3の描画処理部118のいずれかより出力された描画結果を提示するための描画結果出力部119から構成される。
【0017】
なお、図2において、すべての管理部は異なるブロックとして表記しているが、これらは単一のメモリ上にまとめて構成してもよいし、異なる複数のメモリ上に分割して構成してもよい。
【0018】
次に、本実施形態における図形描画装置の動作を、図3に示すフローチャート及び、図2における各ブロックの動作について図面を参照して説明していく。
[図形描画の説明]
ここで、本実施形態における図形描画について説明する。本実施形態で扱う図形描画は、多角形の外周線を構成するベクトルデータ群によって囲まれた領域を、任意の規則により内外判定を行い、その判定結果に従い、内部領域を塗りつぶすことで多角形を描画するものである。
【0019】
具体的には、図4に示すような、「点0」〜「点5」のような「(一筆書きで得られる)多角形の外周線」を構成するベクトルデータ群と、内部領域の判定規則、色、不透明度などを含む描画属性データの入力があったとすると、図5、図6に示されるように図形を描画する。図5、図6の差は、内部領域の判定規則の違いである。図5は、非ゼロ巻数規則と呼ばれる規則を、図6は奇偶規則と呼ばれる規則にそれぞれ従って内部領域を判定し、多角形を描画した例である。
【0020】
これらの内部領域の判定規則は、多角形の外周線に囲まれた領域に対して、その領域内の任意の点から任意方向に半直線を引き、その直線と図形外周線が交差する毎にその交差方向によりカウンタを増減させ、得られたカウンタ値によって、内外判定を行うものである。非ゼロ巻数規則では、カウンタ値が0でなければ内部領域と判定し、奇偶規則では、カウンタ値が奇数であれば内部領域と判定する。詳しくは、”www.w3.org/TR/SVG/”に説明されているので、そちらを参照して頂きたい。
【0021】
また、描画処理は最終的に、多角形をピクセル単位で構成されるラスタデータとして、色、不透明度などを設定して出力する。
[本実施形態の処理フロー概要]
次に、本実施形態において上記図形描画を行う処理フローについて、図3に示すフローチャートを参照して、説明する。
この図形描画装置により図形描画処理を開始すると、ベクトルデータ群、描画属性データ、メモリ使用状況データの入力を行う(ステップ1001)。
次に、メモリ使用状況データによりステンシルバッファの利用の可否により、ステンシルバッファを利用した描画処理が可能か、判定をする(ステップ1002)。
ステップ1002の判定により、ステンシルバッファが利用可能であった場合、ステンシルバッファを利用するための描画データ生成を行い(ステップ1003)、それを用いて、ステンシルバッファの更新、ステンシルバッファを利用して描画処理を行うことで描画を行う(ステップ1004)。
【0022】
ステップ1002の判定により、ステンシルバッファが利用不可であった場合、図形の形状特徴から、高速に処理できる図形処理を選択するために、図形外周線の自己交差点を算出する(ステップ1005)。次に、算出した自己交差点の数を閾値と比較することで、三角形分割による描画処理と線分分割による描画処理のどちらを用いるか判定を行う(ステップ1006)。
【0023】
ステップ1006の判定により、三角形分割による描画処理が高速と判定された場合、入力図形を三角形に分割した描画データを生成し(ステップ1007)、三角形描画処理により、図形の描画を行う(ステップ1008)。
【0024】
ステップ1006の判定により、線分分割による描画処理が高速と判定された場合、入力図形を線分に分割した描画データを生成し(ステップ1009)、線分描画処理により、図形の描画を行う(ステップ1010)。
【0025】
以上により、いずれかのステップで描画処理が行われ描画結果を出力する(ステップ1011)以降、各ステップについてより詳細に説明をする。
[ベクトルデータ群についての説明]
まず、図形描画の入力の一つである図形の外周線を構成するベクトルデータ群について説明する。
本実施形態で扱う多角形の外周線を構成するベクトルデータ群は、2次元、あるいは3次元の座標値を持つN個の点データP1〜PNにより構成される。点データから、外周線のn番目のベクトルはV=Pn―Pn+1として定義できる。ここで、n=0,…,N-1である。また、P0=PN-1でない場合は、多角形が閉じていないが、この場合PN=P1となる仮想的な点を想定して処理を行う。
【0026】
なお、ベクトルデータ群により構成される多角形は、一般多角形で構成される任意の形状をとることが可能で、凸形状だけでなく凹形状や自己交差形状を含んでもかまわない。
【0027】
[ベクトルデータ群入力部101]
[ベクトルデータ群管理部102]
上記で説明したような図形描画のための入力の一つである、多角形の外周線を構成するベクトルデータ群の入力処理は、ベクトルデータ群入力部101により行われ、ベクトルデータ群管理部102に保存される。
【0028】
ベクトルデータの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【0029】
[描画属性についての説明]
次に、図形描画の入力の一つである描画属性について説明する。
本実施形態で扱う描画属性は、内部領域判定規則の指定、内部領域色、不透明度など図形の描画時における属性に関する情報などから構成される。
内部領域判定規則の指定値には、上記多角形の内部領域判定規則を判別する任意の値を設定する。内部領域色には、図形内部領域を塗りつぶす際に用いる色情報が、不透明度には図形内部領域の透過状態を表す値が記述される。不透明度に図形内部領域が半透明であることを示す値が入力された場合、不透明度で示される透過の割合に応じて背後にある図形および背景と合成が行われる。
【0030】
[描画属性データ入力部103]
[描画属性データ管理部104]
上記で説明したような図形描画のための入力の一つである描画属性データの入力処理は、
描画属性データ入力部103によって行われ、描画属性データ管理部104に保存される。
描画属性データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【0031】
[描画処理の切り替えに用いる判定についての説明]
次に、本実施例における描画処理切り替えの判定値として用いるデータについて説明する。
本実施形態では、描画処理切り替えの判定値として、メモリ使用状況データ、および図形外周線の自己交差点数を用いる。
これらのデータは、それにより切り替えが行われる描画処理の性質によって決定される。本実施例におけるステンシルバッファを利用した描画処理は、高速な処理が可能であるが、ステンシルバッファを確保するためのメモリ領域が必要となる。そのため、描画処理実行時のメモリ使用状況により、ステンシルバッファを利用した描画処理の可否を判断することで、リソース状況に応じて描画処理を選択することができる。
【0032】
また、本実施例における多角形の三角形分割による描画処理と、線分分割における描画処理では、入力されたベクトルデータ群の複雑さにより処理コストが逆転する。そのため、処理コストに大きな影響を与えるベクトルデータ群の複雑さを表す値として、図7に示すような、入力されたベクトルデータ群が互いに交差する点(自己交差点)の数を用いることで入力データに応じて描画処理を選択することができる。
【0033】
[メモリ使用状況データ入力部105]
[メモリ使用状況データ管理部106]
上記で説明した描画処理切り替えの判定値の一つであるメモリ使用状況データの入力処理は、メモリ使用状況データ入力部105によって行われ、メモリ使用状況管理部106に保存される。
【0034】
メモリ使用状況とは、本実施例における図形描画装置を構成する各ブロックの処理で利用される、データ(一時・恒久保存は問わない)を格納する記憶領域の描画処理時の使用量である。具体的には、全くメモリが使用されていない場合におけるメモリ使用可能量であるメモリ最大量、および描画処理時の実際のメモリ使用量などからなる値である。
【0035】
なお、本実施例におけるメモリ使用状況は、図形描画装置を構成する各ブロックが共通のメモリ領域を用いるか、個別のメモリ領域を用いるかについては限定しない。
共通のメモリ領域を用いる場合には、共通メモリ領域のメモリ使用状況データを入力とし、個別のメモリ領域を用いる場合には、全てのメモリ領域のメモリ使用状況を読み込み、必要となるメモリ使用状況を算出するか、メモリ使用状況が必要となるブロックを限定してメモリ使用状況を読み込むなどの方法で、メモリ使用状況を得ることができる。
【0036】
[ステンシルバッファを利用した図形の内部領域判定による描画処理について]
ここで、ステンシルバッファを利用した図形の内部領域判定による描画処理について、図8に処理の流れを示し、説明する。
ステンシルバッファとは、図9に示すような、描画処理時にピクセル単位で書き込みの可/不可を決定するための値を保持するバッファ、およびそのバッファを利用した描画手法である。
【0037】
ステンシルバッファを利用して、図形の内部領域を判定して描画を行うには、まず、入力として、図形の外周線を表すベクトルデータ群を読み込む(ステップ6001)。次に、読み込んだベクトルデータ群から、特定の規則によりステンシルバッファ更新用の描画データを生成する(ステップ6002)。生成した描画データをステンシルバッファに描画することにより、ステンシルバッファのカウンタを増減する(ステップ6003)。これにより、ステンシルバッファに図形の内部領域を判定可能な値が設定され、図形描画処理時にこの値を、内部領域判定規則に従って評価することでピクセル書き込み制御を行う。内部領域の描画は、入力ベクトルデータ群を囲む最小の矩形を、ステンシルバッファを利用して描画することで行うことができる(ステップ6004)。これにより、内部領域判定規則に従った図形の描画が可能になる。
【0038】
ステンシルバッファを利用した図形描画は、描画処理のコストは大きいが、描画判定に関しては、定型的な規則に従いステンシルバッファ更新用の図形を生成するのみであるため、コストが低い。このことから、ステンシルバッファを利用した描画処理に対応したグラフィックスLSIが利用できる場合は、図形描画を高速に処理することができる。ただし、この手法では、ステンシルバッファを確保するためのメモリ領域が必要となるため、リソースが不十分でバッファを確保できない場合は利用できない。
【0039】
なお、ステンシルバッファを利用した図形描画に関しては、非特許文献3に詳しいのでそちらを参照されたい。
[第1の描画処理切り替え部109]
[第1の参照値管理部107]
次に、第1の描画処理切り替え部109について説明する。上記のように、ステンシルバッファを利用した描画処理は、高速に描画処理を行うことができるが、ステンシルバッファが確保できない場合には利用できない。そのため、第1の描画処理切り替え部は、図形処理装置のメモリ使用状況の判定を行い(ステップ1002)、ステンシルバッファが確保できる場合にはステンシルバッファを利用した描画処理を行うための描画データ生成を行い(ステップ1003)、確保ができない場合には、入力図形の特徴から高速な描画処理を判定するための処理を行う、次のステップを実行する(ステップ1005)。
【0040】
メモリ使用状況の判定は、メモリ使用状況データ管理部106により管理された図形描画実行時の図形処理装置のメモリ使用状況データMと、第1の参照値管理部107により管理されているステンシルバッファを確保するために必要な、最低限のメモリ使用状況を示す参照値Mrefを比較し、MがMrefを満たす場合には、第1の描画データ生成部110を実行し、異なる場合には、自己交差点算出部112を実行する。
【0041】
なお、第1の参照値管理部107により管理されているメモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成によって決定する値である。ステンシルバッファ確保の可否は、描画出力解像度、および利用可能なメモリの最大量に依存する。描画出力解像度との関係は、一般的にステンシルバッファの大きさが描画出力解像度と同一であるため、描画出力解像度が大きければステンシルバッファ確保が難しくなる。また、利用可能なメモリの最大量については、最大メモリ量に対してステンシルバッファサイズが大きい場合は、ステンシルバッファによりメモリの大半を利用されてしまい、他のタスクでメモリを使用できなくなる可能性が高くなる。そのような状況になってしまった場合、複数ブロック間でメモリを共有しているような実施形態では、描画装置全体の処理性能が大きく低下する。
【0042】
そのため、メモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成により決定する。
なお、これらの問題をより効率的に回避するためには、タスク状況と合わせて参照値を動的に変更するなどの方法もある。
[第1の描画データ生成部110]
次に、第1の描画データ生成部110について説明する。第1の描画データ生成部は、第1の描画処理切り替え部109により、ステンシルバッファが確保できると判定された場合に実行され、ベクトルデータ群管理部102により管理されているベクトルデータ群を読み込み、ステンシルバッファを更新するための描画データ、およびステンシルバッファを利用して図形を描画するための描画データを生成する(ステップ1003)。
【0043】
ここで生成する描画データとは、上記「ステンシルバッファを利用した図形の内部領域判定による描画処理」における、ベクトルデータ群を用いて生成するステンシルバッファを更新するための三角形データ、およびステンシルバッファを利用して図形の内部領域を描画するための矩形データである。
【0044】
これらの描画データの生成方法については、非特許文献3に詳しいのでそちらを参照されたい。
[第1の描画処理部111]
第1の描画データ生成部により生成された描画データは、第1の描画処理部111に入力され、描画処理が行われる。ここでは、第1の描画処理部111について説明する。第1の描画処理部111は、描画属性データ管理部104により管理された描画属性データ、および第1の描画データ生成部110により生成された描画データを読み込み、まず、ステンシルバッファの更新を行う。次に更新したステンシルバッファを利用して、描画属性データに示されている内部領域判定規則に従い、描画処理を行う(ステップ1004)。
【0045】
具体的には、上記「ステンシルバッファを利用した図形の内部領域判定による描画処理」に述べたように、前記第1の描画データ生成部により生成された描画データから、ステンシルバッファ更新用の三角形データの描画によりステンシルバッファの更新を行い、次に更新したステンシルバッファを利用して、図形の内部領域を描画するための矩形データの描画により、図形の描画を完了する。
【0046】
なお、三角形および矩形の実際の描画は、三角形描画専用、あるいは矩形専用のハードウェアを用いてもよいし、汎用のグラフィックス処理LSIなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【0047】
[自己交差点算出部112]
[自己交差点管理部113]
次に自己交差点算出部112について説明する。自己交差点算出部は、第1の描画処理切り替え部109により、ステンシルバッファが確保できないと判定された場合に実行され、図形外周線の自己交差点を算出する(ステップ1005)。
【0048】
図形外周線の自己交差点の計算は、ベクトルデータ群管理部102により管理されている多角形の外周線を構成するベクトルデータ群を読み込み、各ベクトル間で交差判定を行い、交差点座標、交差点の位相関係、交差点の総数などを算出する。
【0049】
算出された自己交差点データは、描画処理の判別に限らず、三角形分割による描画処理においても利用できるため、交差点座標、交差点の位相関係、交差点の総数を個別に読み出せるように、自己交差点管理部113に保存する。
【0050】
[第2の描画処理切り替え部114]
[第2の参照値管理部108]
次に第2の描画処理切り替え部114について説明する。第2の描画処理切り替え部は、自己交差点管理部113により管理された自己交差点の数を、第2の参照値管理部108により管理されている、三角形分割による描画処理と線分分割による描画処理の処理コストが切り替わる自己交差点数を示す参照値と比較し、三角形分割による描画処理を行った方が高速と判定された場合、三角形分割により描画データを生成する処理を実行し、線分分割による描画処理を行った方が高速と判定された場合、線分分割により描画データを生成する処理を実行する(ステップ1006)。
【0051】
自己交差点数の判定は、自己交差点管理部113により管理された自己交差点の数Nisと、第2の参照値管理部108により管理されている、図形処理性能が切り替わる自己交差点数を示す参照値Nisrefを比較し、Nis<Nisrefを満たす場合には、第2の描画データ生成部115を実行し、異なる場合は第3の描画データ生成部117を実行する。
【0052】
なお、第2の参照値管理部108で管理する自己交差点数の参照値としては、実際に処理を行う図形描画装置における三角形分割による描画処理と、線分分割による描画処理の自己交差点数に対する処理コストを計測することで、実験的に求めてもよいし、各描画処理アルゴリズムから理論的に求めてもかまわない。
【0053】
(三角形分割による描画と線分(スキャンライン)分割による描画判定について)
ここで、前記従来手法(3)により示されている三角形分割による描画判定と、前記従来手法(2)により示されている線分分割による描画判定の処理コストについて説明する。三角形分割による描画判定は、多角形の外周線に囲まれた領域毎に内部領域判定を行い、内部領域と判定された場合に、グラフィックスLSIで処理が行いやすい三角形単位に分割する処理である。この処理では、多角形の外周線の自己交差数が少なければ、内部領域判定も少なくすむため、処理コストが低いが、自己交差数が多くなると、内部領域判定処理とそれに伴う三角形分割処理を行うべき領域が多くなるため、処理コストが増大する。
【0054】
それに対して、線分分割による図形処理では、多角形を出力時のスキャンライン単位に分割して内部領域を判定する。この処理における内部領域判定での処理コストは、スキャンライン数には強く依存するが、各スキャンライン内においては、内部領域判定処理が1次元の問題となるため、多角形の複雑さによる影響は小さい。
【0055】
上記のように、多角形の外周線の自己交差点数が少ない場合は、三角形分割による描画判定の処理コストが低く、多角形の外周線の自己交差点数が多い場合は線分分割による描画判定の処理コストが低いため、多角形の外周線の自己交差点数を比較し、処理コストが低い描画判定を選択することで、図形に対して適応的に高速な描画処理を行う。
【0056】
[第2の描画データ生成部115]
次に、第2の描画データ生成部115について説明する。第2の描画データ生成部は、第2の描画処理切り替え部114により、入力多角形に対して三角形分割による図形処理が高速と判定された場合に実行され、ベクトルデータ群管理部102により管理された多角形の外周線を構成するベクトルデータ群、描画属性データ管理部104により管理された描画属性データ、自己交差点管理部113により管理された図形自己交差点データを読み込み、多角形の内部領域となる部分を判定して、三角形の集合としてデータを生成する(1007)。
【0057】
なお、多角形の三角形分割に関しては、非特許文献2に詳しいため、そちらを参照されたい。
ただし、上記文献の手法はあくまでも実施の一形態であり、これに限定するものではない。
[第2の描画処理部116]
第2の描画データ生成部115で生成された描画データは、第2の描画処理部116に入力され、描画処理が行われる。ここでは、第2の描画処理部116について説明する。
【0058】
第2の描画処理部は、描画属性データ管理部104により管理された描画属性データ、および第2の描画データ生成部115により生成された三角形データ群を読み込み、描画処理を行う(ステップ1008)。
【0059】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を三角形データに設定し、描画を行う。
なお、三角形の実際の描画は、三角形描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理LSIなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【0060】
[第3の描画データ生成部117]
次に第3の描画データ生成部117について説明する。第3の描画データ生成部は、第2の描画処理切り替え部114により、入力多角形に対して線分分割による図形処理が高速と判定された場合に実行され、ベクトルデータ群管理部102により管理された多角形の外周線を構成するベクトルデータ群、および描画属性データ管理部104により管理された描画属性データを読み込み、多角形を含む領域をスキャンライン方向の線分に分割し、さらに線分ごとに図形内部領域と、外部領域の判定により、分割を行うことで図形内部領域の線分データを生成する(ステップ1009)。
【0061】
なお、多角形の線分分割による描画処理には、スキャンライン毎の図形描画処理などの手法がある。スキャンライン毎の図形描画処理とは、描画をスキャンライン単位の処理として、スキャンライン毎に、図形の塗りつぶし領域を複数のラインの描画で行う処理である。 例えば、多角形図形があったとする。この描画を考えた場合、スキャンライン毎のライン描画処理に分割して描画することが可能であり、ライン描画はピクセル単位の精度で描かれる。
【0062】
多角形図形の描画処理は、複数のラインの描画処理に置き換えられ、ラインの描画には、ラインの描画開始点と終了点のみあれば十分である。つまり、スキャンライン単位での図形描画を考えた場合、このライン描画開始点とライン描画終了点の算出を行えば良いと言える。
【0063】
[第3の描画処理部118]
第3の描画データ生成部により生成された描画データは、第3の描画処理部118に入力され、描画処理が行われる。ここでは、第3の描画処理部118について説明する。
【0064】
第3の描画処理部は、描画属性データ管理部104により管理された描画属性データ、および第3の描画データ生成部117により生成された線分データ群を読み込み、描画処理を行う(ステップ1010)。
【0065】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を線分データに設定し、描画を行う。
なお、三角形の実際の描画は、線分描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理LSIなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【0066】
[描画結果出力部119]
次に、描画結果出力部119について説明する。描画結果出力部は、前記第1の描画処理部111、前記第2の描画処理部116、および前記第3の描画処理部118のいずれかにより、得られる描画結果を出力する(ステップ1011)。
【0067】
描画処理部により得られる描画結果は、論理的なピクセルデータであるため、描画結果出力部は、出力先の形態に合わせて描画結果の変換を行い出力する。
なお、描画結果の出力は、CRT、LCDなどのディスプレイ装置に対して行ってもよいし、プリンタなどの印刷装置に対して行ってもよいし、主記憶装置、補助記憶装置、CD、DVDなどの記録メディアに対して出力してもよいし、その他の装置、手段に対して出力してもかまわない。
【0068】
なお、以上で示した手法はあくまでも実施の一形態であり、これに限定されるものではない。
(本実施形態の効果)
本実施形態では、装置の動作状況に応じて、その状況下で最も高速な描画処理を行うことで、装置がビジーである場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。
【0069】
これは、小型PC、携帯電話、インタラクティブな図形描画機能をもったAV機器などのように、ハードウェア資源が限られており、複数の異なる処理を行うタスクを同一のハードウェア上で実行する場合に特に有効である。
【0070】
[第1の実施形態の変形例1]
図10は、本発明の第1の実施形態の変形例1に係る図形描画装置の全体構成図である。
変形例1に係る図形描画装置は、第1の実施形態において、第1の参照値管理部の代わりに第1の参照値補正部を、第2の参照値管理部の代わりに第2の参照値補正部を用いた形となっている。
【0071】
[第1の参照値補正部]
第1の参照値補正部について説明する。第1の参照値補正部は、メモリ使用状況データと比較するための参照値を、描画出力解像度などのメモリ使用状況データの判別に関連する値により算出する。
【0072】
具体的には、上記[第1の参照値管理部107]において述べたように、描画出力解像度により、必要となるステンシルバッファの大きさが変化するため、描画出力解像度とステンシルバッファの精度により、最低限必要なメモリ使用状況を算出する。
【0073】
これにより、装置のメモリ使用が複数のモードにより変化する場合や、描画出力解像度が動的に変化する場合においても、描画状況に応じて動的に参照値を変化することが可能になる。
【0074】
[第2の参照値補正部]
第2の参照値補正部について説明する。第2の参照値補正部は、自己交差点数と比較するための参照値を、描画データ生成部の処理状況など、自己交差点数の判定に関連する値により算出する。
【0075】
具体的には、上記[第2の参照値管理部108]において述べたように、自己交差点数の参照値は各描画処理のコストにより変化するため、現在の描画処理状況における処理コストなどにより、自己交差点数の参照値を算出する。
【0076】
これにより、装置の処理状況に応じて動的に参照値を変化することが可能になる。
第1の参照値補正部、および第2の参照値補正部は、このように装置の動作状況に応じて動的に参照値の補正を行う。この補正により、より詳細な描画処理切り替えの制御を行うことが可能になり、処理の効率化に繋がる。
【0077】
なお、以上では、動的な参照値の補正の一例を示したが、これに限定されるものではない。動的な参照値の補正が可能な方法について、全て用いることが可能である。
本発明の第1の実施形態の変形例1の以降の処理に関しては、第1の実施形態において、参照値入力部により参照値を読み込むと説明した部分を適宜、参照値補正部によって補正された後の参照値と読み替えれば同様である。以上で説明した以外は、第1の実施形態と同様の動作である。
【0078】
(本実施形態の効果)
本実施形態では、第1の実施形態に比べ、より詳細に装置の動作状況に応じた描画処理の切り替えを行うことで、装置がビジーである場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。
【0079】
これは、小型PC、携帯電話、インタラクティブな図形描画機能をもったAV機器などのように、ハードウェア資源が限られており、複数の異なる処理を行うタスクを同一のハードウェア上で実行する場合に特に有効である。
【0080】
[第1の実施形態の変形例2]
図11は、第1の実施形態の変形例2における図形描画装置の実施形態を示したものである。
変形例2における図形描画装置は、第1の実施例における第1の参照値管理部107、メモリ使用状況データ入力部105、メモリ使用状況データ管理部106、第1の描画処理切り替え部109、第1の描画データ生成部110、および第1の描画処理部111を省略した形態となっている。そのため、第1の実施形態における、第2の参照値管理部が、本実施形態における参照値管理部と対応し、第1の実施形態における、第2の描画処理切り替え部が、本実施形態における描画処理切り替え部と対応し、第1の実施形態における、第2の描画データ生成部が、本実施形態における第1の描画データ生成部と対応し、第1の実施形態における、第2の描画処理部が、本実施形態における第1の描画処理部と対応し、第1の実施形態における、第3の描画データ生成部が、本実施形態における第2の描画データ生成部と対応し、第1の実施形態における、第3の描画処理部が、本実施形態における第2の描画処理部と対応している。
【0081】
本変形例を第1の実施形態において説明すると、ベクトルデータ群および描画属性データの入力後、第1の描画処理切り替え部109の代わりに、自己交差点算出部112が実行され、処理を続ける。具体的には、図3で示される第1の実施形態の処理フローにおいて、ステップ1001の次に、ステップ1002をスキップし、ステップ1005に進むようにすることである。以上で説明した以外は、第1の実施形態と同様の動作である。
【0082】
(本実施形態の効果)
ステンシルバッファが利用できない実施形態において、入力図形に応じて高速に処理可能な描画処理を行うことができる。これは、第1の実施形態よりもさらにハードウェアリソースが限られている場合に有効である。
【0083】
[第1の実施形態の変形例3]
図12は、第1の実施形態の変形例3における図形描画装置の実施形態を示したものである。
本変形例における図形描画装置は、第1の実施例における第2の参照値管理部108、自己交差点算出部112、自己交差点管理部113、第2の描画処理切り替え部114、第2の描画データ生成部115、および第2の描画処理部116を省略した形態となっている。そのため、第1の実施形態における、第1の参照値管理部が、本実施形態における参照値管理部と対応し、第1の実施形態における、第1の描画処理切り替え部が、本実施形態における描画処理切り替え部と対応し、第1の実施形態における、第3の描画データ生成部が、本実施形態における第2の描画データ生成部と対応し、第1の実施形態における、第3の描画処理部が、本実施形態における第2の描画処理部と対応している。
【0084】
本変形例を第1の実施形態において説明すると、第1の描画処理切り替え部109により、ステンシルバッファを確保できないと判定された場合、第3の描画データ生成部117が実行され、処理が進む。具体的には、図3に示す第1の実施形態の処理フローにおいて、ステップ1002により、ステンシルバッファが確保できないと判定された場合に、ステップ1009に進むようにすることである。以上で説明した以外は、第1の実施形態と同様の動作である。
【0085】
(本実施形態の効果)
線分の描画に比べ、三角形の描画が低速なハードウェアを用いて描画処理を行う実施形態や、入力されるベクトルデータ群の自己交差点数が、三角形分割による描画処理を高速に行える場合よりも多いことがあらかじめわかっている実施形態において、装置の動作状況に応じて高速に処理可能な描画処理を行うことができる。
【0086】
これは、第1の実施形態よりも限定されたハードウェアにより処理を行う場合、および入力ベクトルデータ群に自己交差点数が多い特徴がある場合に有効である。
[第1の実施形態の変形例4]
図13は、第1の実施形態の変形例4における図形描画装置の実施形態を示したものである。
本変形例における図形描画装置は、第1の実施例における第2の参照値管理部108、自己交差点算出部112、自己交差点管理部113、第2の描画処理切り替え部114、第3の描画データ生成部117、および第3の描画処理部118を省略した形態となっている。
【0087】
そのため、第1の実施形態における、第1の参照値管理部が、本実施形態における参照値管理部と対応し、第1の実施形態における、第1の描画処理切り替え部が、本実施形態における描画処理切り替え部と対応している。
【0088】
本変形例を、第1の実施形態において説明すると、第1の描画処理切り替え部109により、ステンシルバッファを確保できないと判定された場合、第2の描画データ生成部115が実行され、処理が進む。具体的には、図3に示す第1の実施形態の処理フローにおいて、ステップ1002により、ステンシルバッファが確保できないと判定された場合に、ステップ1007に進むようにすることである。以上で説明した以外は、第1の実施形態と同様の動作である。
【0089】
(本実施形態の効果)
三角形の描画に比べ、線分の描画が低速なハードウェアを用いて描画処理を行う実施形態において、装置の動作状況に応じて高速に処理可能な描画処理を行うことができる。
【0090】
これは、第1の実施形態よりも限定されたハードウェアにより処理を行う場合に有効である。
[第2の実施形態]
本実施形態では、掃引線のベクトルデータ、掃引線に沿って掃引する形状のベクトルデータを入力として、描画処理時の装置の状況において、高速な掃引図形の描画処理を選択し、描画を行う装置の例を示す。
【0091】
図14は、本実施形態における図形描画装置の実施形態を示したものである。本実施形態における図形描画装置は、掃引線を表すベクトルデータ群を入力するための掃引線データ入力部1101と、前記掃引線データ入力部1101により入力された掃引線データを保存するための掃引線データ管理部1102と、掃引形状を表すベクトルデータ群を入力するための掃引形状データ入力部1103と、前記掃引形状データ入力部1103により入力された掃引形状データを管理するための掃引形状データ管理部1104と、図形の内部領域の属性を表す描画属性データを管理するための描画属性データ入力部1105と、前記描画属性データ入力部1105により入力された描画属性データを管理するための、描画属性データ管理部1106と、メモリ使用状況を取得するためのメモリ使用状況データ入力部1107と、前記メモリ使用状況データ入力部1107により入力されたメモリ使用状況データを管理するためのメモリ使用状況データ管理部1108と、描画処理状況データを取得するための描画処理状況データ入力部1109と、前記描画処理状況データ入力部1109により入力された描画処理状況データを管理するための描画処理状況データ管理部1110と、描画処理の切り替え判定を行う際に参照する不透明度参照値を管理するための第1の参照値管理部1111と、描画処理の切り替え判定を行う際に参照するメモリ使用状況の参照値を管理するための第2の参照値管理部1112と、描画処理の切り替え判定を行う際に参照する描画処理状況データの参照値を管理するための第3の参照値管理部1113と、前記描画属性データ管理部1106により管理された描画属性データ、および前記第1の参照値管理部1111により管理された不透明度参照値を読み込み、比較・判定を行うことにより、後記第1の描画データ生成部1115と後記第2の描画処理切り替え部1117の実行制御を行う第1の描画処理切り替え部1114と、前記第1の描画処理切り替え部1114により実行され、前記掃引線データ管理部1102により管理された掃引線データ、および前記掃引形状データ管理部1104により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成部1115と、前記第1の描画データ生成部1115により生成された描画データ、および前記描画属性データ管理部1106により管理された描画属性データを読み込み、描画処理を行う第1の描画処理部1116と、前記第1の描画処理切り替え部1114により実行され、前記メモリ使用状況データ管理部1108により管理されているメモリ使用状況データ、および前記第2の参照値管理部1112により管理されているメモリ使用状況参照値を読み込み、比較・判定を行うことにより、後記第2の描画データ生成部1118と後記第3の描画処理切り替え部1120の実行制御を行う第2の描画処理切り替え部1117と、前記第2の描画処理切り替え部1117により実行され、前記掃引線データ管理部1102により管理された掃引線データ、前記掃引形状データ管理部1104により管理された掃引形状データを読み込み、デプステストを利用する描画処理を行うための描画データを生成する第2の描画データ生成部1118と、前記第2の描画データ生成部1118により生成された描画データ、および前記描画属性データ管理部1106により管理された描画属性データを読み込み、デプステストを利用した描画処理を行う第2の描画処理部1119と、前記第2の描画処理切り替え部1117により実行され、前記描画処理状況データ管理部1110により管理されている描画処理状況データ、および前記第3の参照値管理部1113により管理されている描画処理状況参照値を読み込み、比較・判定を行うことにより、後記第3の描画データ生成部1121と後記第4の描画データ生成部1123の実行制御を行う第3の描画処理切り替え部1120と、前記第3の描画処理切り替え部1120により実行され、前記掃引線データ管理部1102により管理された掃引線データ、および前記掃引形状データ管理部1104により管理された掃引形状データを読み込み、アルファ値を利用する描画処理を行うための描画データを生成する第3の描画データ生成部1121と、前記第3の描画データ生成部1121により生成された描画データ、および前記描画属性データ管理部1106により管理された描画属性データを読み込み、アルファ値を利用した描画処理を行う第3の描画処理部1122と、前記第3の描画処理切り替え部1120により実行され、前記掃引線データ管理部1102により管理された掃引線データ、および前記掃引形状データ管理部1104により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第4の描画データ生成部1123と、前記第4の描画データ生成部1123により管理された描画データ、および前記描画属性データ管理部1106により管理された描画属性データを読み込み、描画処理を行う第4の描画処理部1124と、
【0092】
前記第1の描画処理部1116、前記第2の描画処理部1119、前記第3の描画処理部1022、および前記第4の描画処理部1124のいずれかより出力された描画結果を提示するための描画結果出力部1125から構成される。
【0093】
なお、図14において、すべての管理部は異なるブロックとして表記しているが、これらは単一のメモリ上にまとめて構成してもよいし、異なる複数のメモリ上に分割して構成しても良い。
【0094】
また、同様にすべての描画処理部は異なるブロックとして表記しているが、これらについても複数機能を持った単一の描画処理装置によって構成してもよいし、異なる複数の描画処理装置により構成しても良い。
【0095】
次に、本実施形態における図形描画装置の動作を図15に示すフローチャートおよび図14における各ブロックの動作について図面を参照して説明していく。
[図形描画の説明]
まず、本実施形態における図形描画について説明する。本実施形態で扱う図形描画は、掃引線を構成するベクトルデータ群と、その掃引線に沿って掃引する形状データから、掃引線に沿って、掃引形状データを掃引してできる図形を描画するものである。その際、図形の内部領域を特定の規則に従い、塗りつぶしを行う。
【0096】
具体的には、図16に示すような、「点0」〜「点5」のような「(一筆書きで得られる)掃引線」を構成するベクトルデータ群と、図17に示すような「点7」〜「点9」のような「掃引形状」を構成するベクトルデータ群と、内部領域の判定規則、色、不透明度などを含む描画属性データの入力があったとすると、図18、図19に示されるように図形を描画する。図18、図19について説明すると、掃引形状を、掃引線に沿って掃引してできる軌跡を図形として描画する。そのため、図形の内部領域は、掃引線上の任意の点に掃引形状を置いた際に、掃引形状の内部領域となる部分として定義される。また、掃引線が自己交差をしている部分について、図19に示すように、内部領域が半透明であっても、交差による重ね塗りを行わず、単一の色で描画を行う。
【0097】
このため、内部領域が半透明で、自己交差している場合には、自己交差部を検出し、重ね塗りを行わないような処理を行う必要がある。ただし、内部領域が不透明である場合には自己交差の有無に係わらず、重ね塗り回避を行う必要は無い。
【0098】
このことから、本実施形態では、上述の図形の描画について、重ね塗り部分の処理を、描画処理実行時の図形描画装置の動作状況において、高速に描画処理を行える図形処理を選択する図形描画装置について説明する。
【0099】
また、描画処理は最終的に、図18、図19で示されるような図形をピクセル単位で構成されるラスタデータとして、色、不透明度などを設定して出力する。
[本実施形態の処理フロー概要]
次に、本実施形態において上記図形描画を行う処理フローについて、図15に示すフローチャートを参照して、説明する。
この図形描画装置により図形描画処理を開始すると、掃引線データ、掃引形状データ、描画属性データ、メモリ使用状況データ、描画処理状況データの入力を行う(ステップ1201)。
【0100】
次に、描画属性データの不透明度により、描画図形の重なり部分の処理が必要か、判定する(ステップ1202)。
ステップ1202の判定により、描画図形の重なり部分の処理が不要と判定された場合、描画図形の重なりを無視した三角形で構成される描画データを生成し(ステップ1203)、三角形描画により、図形描画を行う(ステップ1204)。
【0101】
ステップ1202の判定により、描画図形の重なり部分の処理が必要と判定された場合、デプスバッファを利用して描画図形の重なり部分を処理できるかを、メモリ使用状況を閾値と比較することで、判定する(ステップ1205)。
【0102】
ステップ1205の判定により、デプスバッファが利用可能と判定された場合、デプスバッファの更新、およびデプスバッファを利用した描画を行うための描画データを生成し(ステップ1206)、デプスバッファの更新および、デプスバッファを利用した描画処理を行う(ステップ1207)。
【0103】
ステップ1205の判定により、デプスバッファが利用不可と判定された場合、描画処理部の処理負荷を閾値と比較し、アルファ値を利用して、描画図形の重なり部分を高速に処理可能か判定する(ステップ1208)。
【0104】
ステップ1208の判定により、アルファ値を利用して描画図形の重なり部分を高速に処理可能と判定された場合、アルファ値の更新および、アルファ値を利用した描画処理を行うための描画データを生成し(ステップ1209)、アルファ値の更新、およびアルファ値を利用した描画処理を行う(ステップ1210)。
【0105】
ステップ1208の判定により、アルファ値を利用して描画図形の重なり部分を高速に処理できないと判定された場合、描画図形の外周線を算出し、三角形あるいは線分に分割した描画データを生成し(ステップ1211)、三角形描画、あるいは線分描画により描画処理を行う(ステップ1212)。
【0106】
以上により、いずれかのステップで描画処理が行われ描画結果を出力する(ステップ1213)以降、各ステップについてより詳細に説明をする。
[掃引線についての説明]
図形描画の入力の一つである掃引線を構成するベクトルデータ群について説明する。
本実施形態で扱う掃引線を構成するベクトルデータ群は、第1の実施形態におけるベクトルデータ群と同様の構成である。
すなわち、ベクトルデータ群は、2次元、あるいは3次元の座標値を持つN個の点データP1〜PNにより構成される。ただし、掃引線は多角形ではなく、連続線分を表しているため、第1の実施形態と異なり、P0=PN-1でない場合でもそのまま扱う。
【0107】
[掃引線データ入力部1101の説明]
[掃引線データ管理部1102]
上記で説明したような図形描画のための入力の一つである掃引線を構成するベクトルデータ群の入力処理は、掃引線データ入力部1101により行われ、掃引線データ管理部1102に保存される。
【0108】
掃引線データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【0109】
[掃引形状についての説明]
次に、図形描画の入力の一つである掃引形状を構成するベクトルデータ群、または、それに相当する点データ群について説明する。
本実施形態で扱う掃引形状を構成するベクトルデータ群は、第1の実施形態におけるベクトルデータ群と同様の構成である。
すなわち、ベクトルデータ群は、2次元、あるいは3次元の座標値を持つN個の点データP1〜PNにより構成される。また、P0=PN-1でない場合は、多角形が閉じていないため、PN=P1となる仮想的な点を想定して処理を行う。
【0110】
[掃引形状データ入力部1103]
[掃引形状データ管理部1104]
上記で説明したような図形描画のための入力の一つである掃引形状を構成するベクトルデータ群の入力処理は、掃引形状データ入力部1103により行われ、掃引形状データ管理部1104に保存される。
【0111】
掃引形状データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【0112】
[描画属性についての説明]
次に、図形描画の入力の一つである描画属性について説明する。
本実施形態で扱う描画属性は、第1の実施形態における描画属性より、内部領域判定規則を除いたものとなる。
すなわち、内部領域色、不透明度など図形の描画時における属性に関する情報などから構成される。
[描画属性データ入力部1105]
[描画属性データ管理部1106]
上記で説明したような図形描画のための入力の一つである描画属性データの入力処理は、描画属性データ入力部1105によって行われ、描画属性データ管理部1106に保存される。
【0113】
描画属性データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【0114】
[描画処理の切り替えに用いる判定についての説明]
次に、本実施例における描画処理切り替えの判定値として用いるデータについて説明する。
本実施例では、描画処理切り替えの判定値として、不透明度、メモリ使用状況データ、および描画処理状況データを用いる。
これらのデータは、それにより切り替えが行われる描画処理の性質によって決定される。
また、本実施における図形描画では、描画属性が半透明の場合、描画図形の自己交差部を検出し、描画図形の重なりを適切に処理しなければならない。しかし、そのために処理コストが増大してしまうため、不透明度により描画図形の重なり処理の有無を判定することで、入力データに応じて高速な描画処理を選択することができる。
【0115】
また、本実施例におけるデプステストを利用した描画処理は、描画図形の重なりに関して高速な処理が可能である。デプステストとは、図形を構成するベクトルデータに奥行き方向の位置も含めた、3次元の位置情報を与えて、描画時に背景の奥行き情報と描画図形の奥行き情報を比較することで、描画の可否を制御する処理である。デプステストは汎用的なグラフィックスLSIでは一般的な機能であり、描画図形の重なりに関して高速に処理できるが、デプステストの利用には奥行き情報を記憶するためのバッファ(デプスバッファ)を確保するためのメモリ領域が必要となる。そのため、描画処理実行時のメモリ使用状況により、デプステストを利用した描画処理の可否を判定することで、リソース状況に応じて描画処理を選択することができる。
【0116】
また、本実施例におけるアルファ値を利用した描画処理は、描画図形の重なりに関して高速な処理が可能である。アルファ値とは、ピクセル単位で色以外の情報を格納する値であり、通常は描画図形と背景を合成する際の比率として扱われる。(本実施例における不透明度も、通常はアルファ値に設定する)。そのため、アルファ値をステンシルバッファの代わりに用いることで、描画図形の重なりを正しく処理することもできる。ただし、ステンシルバッファと異なり、アルファ値は背景画像との合成比率としても同時に用いられるため、合成処理も考慮したアルファ値の設定が必要となる。また、ステンシルバッファはピクセル単位の書き込みの可否を制御する目的の機能であるため、ハードウェアで実装されている場合は、ピクセルの書き込み不可時に効率的に処理がされる(無駄な合成作業などが行われない)が、アルファ値を用いる手法では、合成処理によりピクセル書き込み不可時と同等の結果を得られるようにするため、ステンシルバッファに比べ、描画処理部の処理負荷が高い。そのため、描画時に描画処理部の処理負荷がすでに高い場合は、処理速度が低下する。そこで、描画処理実行時の描画処理部の処理状況により、アルファ値を利用した描画処理の可否を判定することで、リソース状況に応じて描画処理を選択することができる。
【0117】
[メモリ使用状況データ入力部1107]
[メモリ使用状況データ管理部1108]
上記で説明した描画処理手法判定値の一つであるメモリ使用状況の入力は、メモリ使用状況データ入力部1107によって行われ、メモリ使用状況管理部1108に保存される。
【0118】
メモリ使用状況とは、本実施例における図形描画装置を構成する各ブロックの処理で利用される、データ(一時・恒久保存は問わない)を格納する記憶領域の描画処理時の使用量である。具体的には、全くメモリが使用されていない場合におけるメモリ使用可能量であるメモリ最大量、および描画処理時の実際のメモリ使用量などからなる値である。
【0119】
なお、本実施例におけるメモリ使用状況は、図形描画装置を構成する各ブロックが共通のメモリ領域を用いるか、個別のメモリ領域を用いるかについては限定しない。
共通のメモリ領域を用いる場合には、共通メモリ領域のメモリ使用状況データを入力とし、個別のメモリ領域を用いる場合には、全てのメモリ領域のメモリ使用状況を読み込み、必要となるメモリ使用状況を算出するか、メモリ使用状況が必要となるブロックを限定してメモリ使用状況を読み込むなどの方法で、メモリ使用状況を得ることができる。
【0120】
[描画処理状況データ入力部1109]
[描画処理状況データ管理部1110]
上記で説明した描画処理手法判定値の一つである描画処理状況データの入力は、描画処理状況データ入力部1109によって行われる。描画処理状況データとは、グラフィックスLSIなどの描画処理を行う装置のタスク状況を示す値である。
【0121】
本実施形態では、第1の描画処理部1116、第2の描画処理部1119、第3の描画処理部1122、および第4の描画処理部1124からなる描画処理の状況を表すデータを入力とする。
【0122】
[第1の描画処理切り替え部1114]
[第1の参照値管理部1111]
次に、第1の描画処理切り替え部1114について説明する。第1の描画処理切り替え部では、描画図形の内部領域属性が、半透明であるか判定を行い、不透明であった場合には高速に処理を行う事が可能な、掃引線の自己交差部の重なりを無視する描画処理を実行し、半透明であった場合には、掃引線の自己交差部の重なりを高速に処理するための図形処理を判定する次のステップを実行する(ステップ1202)。
【0123】
不透明度判定は、描画属性データ管理部1106により管理されている描画属性データに含まれる不透明度を示す値Asと、第1の参照値管理部1111により管理されている不透明を示す不透明度の値Arefを比較し、AsがArefと等しい場合に後記第1の描画データ生成部1115を実行し、異なる場合には第2の描画処理切り替え部1117を実行する。
【0124】
[第1の描画データ生成部1115]
次に、第1の描画データ生成部1115について説明する。第1の描画データ生成部は、第1の描画処理切り替え部1114により、図形の内部領域が不透明であった場合に実行され、掃引線の自己公差部の重なりを無視した描画データを生成する(ステップ1203)。
【0125】
具体的には、自己交差部の検出、および分割処理を行わずに、掃引線を構成するベクトルデータ毎に掃引形状を掃引する事によって得られる図形から、線、三角形データなど、描画処理部で処理可能なデータを生成する。
【0126】
自己交差部を無視する描画データ生成の一例として、三角形データ群生成の処理フローを図20に示し、説明する。
まず、掃引線データ入力部1101により入力された掃引線データ、掃引形状データ入力部1103により入力された掃引形状データを入力として読み込む(ステップ1701)。
【0127】
読み込んだ掃引線データを構成するベクトルデータ毎に、掃引図形を掃引してできる図形の外周線を計算し(ステップ1702)、外周線データを多角形と見なして三角形データに分割する処理を行い(ステップ1703)、生成された三角形データ群を保存(ステップ1704)していくことで、掃引線全体について三角形データの生成を行う。
【0128】
ステップ1702の外周線計算では、図21に示すように、掃引線ベクトルの始端と終端に掃引形状を配置し、掃引線ベクトルに対して垂直な方向で、最も離れている掃引形状の点を、掃引線ベクトルの左右で求め、始端と終端で結ぶことにより外周線を算出する。最も離れている掃引形状の点は、掃引線ベクトルの法線ベクトルと、掃引線ベクトルの始点と掃引形状の点を結んだベクトルの内積が、最も大きいもの、および最も小さいものとして得られる。ここで、a0, a1,…,aN-1の中で最大の値のインデックスiを返す関数としてmax_index(ai)を定義し、最小の値のインデックスiを返す関数としてmin_index(ai)を定義すると、上記の条件を満たす頂点形状を構成する点のインデックスは、次のように記述できる。
【0129】
IL=max_index(<P>i・<n>) (式1)
IR=min_index(<P>i・<n>) (式2)
ただし、i=0,1,…,N-1(Nは掃引形状の頂点数)で、ILは掃引線ベクトルに対して左側で最も離れた掃引形状を構成する点のインデックス、IRは右側で最も離れた掃引形状を構成する点のインデックスである。また、<>はベクトルを表し、<n>は掃引線ベクトルの進行方向に対して左側を向いた単位法線ベクトル、<P>iは掃引形状を掃引線の始点に配置し、掃引線始点を原点とした場合の掃引形状を構成する点の位置ベクトル、<P>i・<n>は<P>iと<n>の内積である。
【0130】
ステップ1703では、算出された外周線を多角形データの三角形分割処理により、三角形データ群を生成する。ここでは、三角形データ生成の最も単純な例として、掃引形状が矩形に限定されている場合について説明する。図22に示すように、外周線が点P〜P5により構成されている場合、T:P→P1→P5、T1:P1→P4→P5、T2:P1→P2→P4、T3:P2→P3→P4、の4つの三角形に分割することができる。
【0131】
なお、ステップ1702、ステップ1703における三角形データ群の生成については、様々な手法があり、本実施例においては、ここに説明した処理方法に限定するものではなく、任意の手法を用いることができる。
【0132】
[第1の描画処理部1116]
第1の描画データ生成部1115により生成された描画データは、第1の描画処理部1116に入力され、描画処理が行われる。ここでは、第1の描画処理部1116について説明する。
【0133】
第1の描画処理部では、前記第1の描画データ生成部1115により生成された三角形データ群、および描画属性データ管理部1106により管理された描画属性データを読み込み、描画処理を行う(ステップ1204)。
【0134】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を三角形データに設定し、描画を行う。
なお、三角形の実際の描画は、三角形描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理LSIなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【0135】
[第2の描画処理切り替え部1117]
[第2の参照値管理部1112]
次に、第2の描画処理切り替え部1117について説明する。第2の描画処理切り替え部は、第1の描画処理切り替え部1114により、図形の内部領域が半透明であった場合に実行され、図形処理装置のメモリ使用状況の判定を行い、デプスバッファが確保できる場合には、描画図形の重なりを高速に処理可能な、デプステストを利用した描画処理を実行し、確保ができない場合には、デプステストを用いないで掃引線の自己交差部の重なりを処理するための図形処理を判定する次のステップを実行する(ステップ1205)。
【0136】
メモリ使用状況の判定は、メモリ使用状況データ入力部1107により入力された図形描画実行時の図形処理装置のメモリ使用状況Mと、第2の参照値管理部1112により管理されているデプスバッファを確保するために必要な、最低限のメモリ使用状況を示す参照値Mrefを比較し、MがMrefを満たす場合には、後記第2の描画データ生成部1118を実行し、異なる場合には、後記第3の描画処理切り替え部1120を実行する。
【0137】
なお、第2の参照値管理部1112により管理されているメモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成によって決定する値である。デプスバッファ確保の可否は、描画出力解像度、および利用可能なメモリの最大量に依存する。描画出力解像との関係は、一般的にデプスバッファの大きさが描画出力解像度と同一であるため、描画出力解像度が大きければデプスバッファ確保が難しくなる。また、利用可能なメモリの最大量については、利用可能な最大メモリ量に対してデプスバッファサイズが大きい場合は、デプスバッファによりメモリの大半を利用されてしまい、他のタスクでメモリを使用できなくなる可能性が高くなる。そのような状況になってしまった場合、複数ブロック間でメモリを共有しているような実施形態では、描画装置全体の処理性能が大きく低下する。
【0138】
そのため、メモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成により決定する。
なお、これらの問題をより効率的に回避するためには、タスク状況と合わせて参照値を動的に変更するなどの方法もある。
[第2の描画データ生成部1118]
次に、第2の描画データ生成部1118について説明する。第2の描画図形データ処理部は、第2の描画処理切り替え部1117により、デプスバッファが確保できる場合に実行され、描画図形の重なりを高速に処理することが可能な、デプステストを利用した描画処理を行うための、描画データを生成する(ステップ1206)。
【0139】
デプステストを利用した描画処理を行うためのベクトルデータ群の生成は、三角形データ群の生成までは、前記第1の描画データ生成部1115におけるベクトルデータ群生成と同様に行い、さらに生成した三角形データ群に同一のデプス値を付加することで行う。ここで、付加するデプス値については、デプステストにおいて利用できる範囲のデプス値であれば、特に限定はしない。
【0140】
ただし、毎回の図形描画処理において、デプス値をインクリメントしたものを利用すれば、描画毎にデプスバッファの内容をクリアする必要が無くなるなどの利点がある。
【0141】
[第2の描画処理部1119]
第2の描画データ生成部1118により生成された描画データは、第2の描画処理部1119に入力され、描画処理が行われる。ここでは、第2の描画処理部1119について説明する。
【0142】
第2の描画処理部では、前記第2の描画データ生成部1118により生成されたデプス値付き三角形データ群、および前記描画属性データ管理部1106により管理された描画属性データを読み込み、デプステストを利用した描画処理を行う(ステップ1207)。
【0143】
ここで、デプステストの方法について説明する。毎回の図形描画ごとに図形の深度値をインクリメントしていた場合、テスト対象ピクセルの深度値をD、デプステスト用バッファのテスト対象ピクセルと対応する位置の値をDdとすると、Ds>Ddの場合にデプステストを合格とし、デプステスト用バッファの値をDsで更新する。このようにデプステストを行うことで、掃引線の自己交差部に重ね塗りについても、同一の深度値であるためデプステストに不合格となり、正しく処理することができる。
【0144】
[第3の描画処理切り替え部1120]
[第3の参照値管理部1113]
次に、第3の描画処理切り替え部1120について説明する。第3の描画処理切り替え部は、第2の描画処理切り替え部1117により、デプステスト用バッファが確保できないと判定された場合に実行され、描画処理状況データの判定を行い、描画処理部の処理負荷が高い状態(ビジー状態)でない場合には、掃引線の自己交差部の重なりを高速に処理することが可能な、不透明度値を書き込むデータ領域(アルファ値)を利用した描画処理を実行し、ビジー状態の場合には、描画図形の外周線を多角形として描画処理を行う(ステップ1208)。
【0145】
描画処理状況データの判定は、描画処理状況データ管理部1110により管理された図形描画実行時の描画処理状況データRと、第3の参照値管理部1113により管理されている、描画処理部がビジー状態であるかを示す描画処理状況データの参照値Rrefを比較し、RがRrefを満たさない場合には、後記第3の描画データ生成部1121を実行し、異なる場合には、後記第4の描画データ生成部1123を実行する。
【0146】
描画処理部がビジー状態であるか示す描画処理状況データの参照値については、図形描画装置の実現方法により、描画処理状況データの形式が変わるため限定はしない。
【0147】
一例として、描画処理状況データをタスクキューにたまっているタスク数として得られる場合には、最大タスク数として参照値を設定することで、描画処理部がビジー状態であるか判定することが可能になる。
【0148】
[第3の描画データ生成部1121]
次に、第3の描画データ生成部1121について説明する。第3の描画データ生成部は、第3の描画処理切り替え部1120により、描画処理部がビジー状態ではないと判断された場合に実行され、掃引線の自己交差部の重なりを高速に処理することが可能な、アルファ値を利用した描画処理を行うための、描画データを生成する(ステップ1209)。
【0149】
アルファ値を利用した描画処理を行うための、描画データとしてはまず、前記第1の描画データ生成部1115における描画データ生成と同様に、掃引線の自己交差部の重なりを無視した描画データを生成する。次に図23に示すような、生成した描画データ群を囲む、座標軸に平行な最小の矩形を描画データとして生成する。矩形が直接描画できない場合には、矩形を対角線で分割し、2つの三角形データとして生成してもよい。
【0150】
[第3の描画処理部1122]
第3の描画データ生成部1121により生成された描画データは、第3の描画処理部1123に入力され、描画処理が行われる。ここでは、第3の描画処理部1122について説明する。
【0151】
第3の描画処理部では、前記第3の描画データ生成部1121により生成された描画データ、および、描画属性データ管理部1106により管理された描画属性データを読み込み、アルファ値を利用した描画処理を行う(ステップ1210)。
【0152】
第3の描画処理部による処理フローを図24に示し、説明する。まず、第3の描画データ生成部1121により生成された描画データ、および描画属性データ管理部1106により管理された描画属性データを読み込む(ステップ2101)。次に、第3の描画データ生成部により生成された、図形を囲む座標軸に平行な最小の矩形の描画データTrectを用いて、図25に示すように、アルファ値を不透明であることを表す最大の値αmaxとして描画処理を行い、背景のアルファ値αdstのみをαmaxで上書き更新する(カラー値は変更しない)ことで、図形を含む領域内のアルファ値をクリアする(ステップ2102)。
【0153】
次に、図26に示すように、掃引線の自己公差部の重なりを無視した描画データを、アルファ値を(αmax―α)として描画処理を行い、アルファ値のみを上書き更新する(ステップ2103)。ここで、αは、描画属性データより得られる図形のアルファ値(不透明度)とする。
【0154】
最後に、Trectを任意のアルファ値を用いて、描画処理を行い、カラー値を次の計算式により計算する(ステップ2104)。
Cnew=(αmax―αdst)×C+αdst×Cdst (式3)
【0155】
ここで、Cnewは計算されたカラー値、Cは描画属性データより得られる図形のカラー値、Cdstはラスタデータに保存されているカラー値である。
【0156】
式3を用いて、描画処理を行うと、図形の内部領域外では次のようにカラー値は背景の色が用いられることになる。
αdst=αmax
∴Cnew=(αmax―αmax)×C+αmax×Cdst=αmax×Cdst=Cdst
【0157】
ここで、αmax×Cdst=Cdstとなるのはαmaxが不透明を表す値であるためである。
【0158】
また、図形の内部領域では、次のようになり、背景との合成が正しく行われる。
αdst=αmax―α
∴Cnew=(αmax―(αmax―α))×C+(αmax―α)×Cdst=α×C+(αmax―α)×Cdst
【0159】
これは、一般的なアルファ値を用いた合成処理であり、内部領域は正しく描画処理ができる。なお、アルファ値を用いた合成処理に関しては、非特許文献3に記載されており、同様の合成処理を用いてもよい。
【0160】
[第4の描画データ生成部1123]
次に、第4の描画データ生成部1123について説明する。第3の描画データ生成部は、前記第3の図形処理切り替え部1120により、描画処理部がビジー状態と判断された場合に実行され、描画図形の外周線を多角形として扱うことで、前記本発明における実施形態1の変形例1と同様の描画処理により、描画図形の重なり部の検出・分割を行う。これにより、描画図形の重なりを正しく処理できる(データ間で重なりのない)描画データを生成する(ステップ1211)。
【0161】
ここで、図形の外周線の算出方法の一例について、処理フローを図27に示し、これを参照しながら説明する。
まず、入力として、掃引線データ管理部1102により管理された掃引線データ、および掃引形状データ管理部1104により管理された掃引形状データを入力として読み込む(ステップ2201)。
【0162】
次に読み込んだ掃引線データから、掃引線を構成する点情報を、始点から終点に向けて順に取り出し、2つの連続した点により定義されるベクトルデータ(Pn―Pn-1)に対して、掃引図形を掃引してできる図形について、ベクトルデータの方向に対して左側の外周線を計算し(ステップ2202)、保存する(ステップ2203)。ベクトルデータの方向に対して左側の外周線を算出する方法は、上記第1の描画データ生成部1115で説明した方法を応用する。第1の描画データ生成部1115と異なり、ここでは掃引線が連続線分であるため、コーナーの内側で外周線が交差する場合がある。そこで、外周線を計算した後、一つ前のベクトルデータにおける外周線と交差判定を行い、交差していた場合には、一つ前のベクトルデータにおける外周線計算により算出された、外周点を計算した交点で置き換えることで、外周線が交差した場合を処理する。
【0163】
終点まで計算を行った後、次は逆に終点から始点に向けて掃引線データから点情報を取り出し、上記の方法と同様に、左側の外周線の計算を行う(ステップ2204、ステップ2205)。
【0164】
この処理により、図形の外周線を図28に示すような、時計回りのベクトルデータ群として得ることができる。
外周線のベクトルデータ群を多角形と考え、前記本発明における実施形態1の変形例1と同様の処理により多角形の内部領域を描画処理部でラスタライズ可能な、ベクトルデータ群として生成する。
【0165】
ただし、内部領域判定ルールとして非ゼロ巻数規則を用いる。非ゼロ巻数規則による内部領域判定で、掃引線の自己公差部が内部領域ではないためには、図29に示すように、外周線がねじれて交差していなければならない。しかし、上記で述べたような外周線ベクトルデータ群では、外周線のねじれによる交差は生じない。そのため、非ゼロ巻数規則を用いて内部領域判定を行うことで、掃引線の自己交差部の重なりを正しく描画することが可能になる。
【0166】
[第4の描画処理部1124]
第4の描画データ生成部1123により生成された描画データは、第4の描画処理部1125に入力され、描画処理が行われる。ここでは、第4の描画処理部1124について説明する。
【0167】
第4の描画処理部では、実施形態1の変形例1と同様に、前記第4の描画データ生成部1123により生成された三角形データあるいは線分データ、および前記描画属性データ管理部1106により管理された描画属性データを読み込み、描画処理を行う(ステップ1212)。
【0168】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を三角形データに設定し、描画を行う。
なお、三角形の実際の描画は、三角形描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理LSIなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【0169】
[描画結果出力部1125]
次に、描画結果出力部1125について説明する。描画結果出力部は、前記第1の描画処理部1116、前記第2の描画処理部1119、前記第3の描画処理部1122、および前記第4の描画処理部1124のいずれかにより、得られる描画結果を出力する(ステップ1213)。
【0170】
描画処理部により得られる描画結果は、論理的なピクセルデータであるため、描画結果出力部は、出力先の形態に合わせて描画結果の変換を行い出力する。
なお、描画結果の出力は、CRT、LCDなどのディスプレイ装置に対して行ってもよいし、プリンタなどの印刷装置に対して行ってもよいし、主記憶装置、補助記憶装置、CD、DVDなどの記録メディアに対して出力してもよいし、その他の装置、手段に対して出力してもかまわない。なお、以上で示した手法はあくまでも実施の一形態であり、これに限定されるものではない。
【0171】
(本実施形態の効果)
本実施形態では、装置の動作状況に応じた最も高速な、任意多角形を任意連続線分に沿って掃引してできる図形(掃引図形)の描画処理を行うことで装置がビジー状態である場合でも掃引図形描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な掃引図形描画処理を行うことができる。これは、小型PC、携帯電話、インタラクティブな掃引図形描画機能をもったAV機器などのように、ハードウェア資源が限られているハードウェア上で実行する場合に特に有効である。
【0172】
[第2の実施形態の変形例1]
図30は、本発明の第2の実施形態の変形例1に係る図形描画装置の全体構成図である。
変形例1に係る図形描画装置は、第2の実施形態において、第2の参照値管理部の代わりに第2の参照値補正部を第3の参照値管理部の代わりに第3の参照値補正部を用いた形となっている。
【0173】
[第2の参照値補正部]
第2の参照値補正部について説明する。第2の参照値補正部は、メモリ使用状況データと比較するための参照値を、描画出力解像度などのメモリ使用状況データの判別に関連する値により補正する。
【0174】
具体的には、上記[第2の参照値管理部1112]において述べたように、描画出力解像度により、必要となるデプスバッファの大きさが変化するため、描画出力解像度とデプスバッファの精度より、最低限必要なメモリ使用状況データを補正する。
【0175】
これにより、装置のメモリ使用が複数のモードにより変化する場合や、描画出力解像度が動的に変化する場合においても、描画状況に応じて動的に参照値を変化することが可能になる。
【0176】
[第3の参照値補正部]
第3の参照値補正部について説明する。第3の参照値補正部は、描画処理状況データと比較するための参照値を、描画処理部を利用するタスク数など、描画処理状況の判定に関連する値により補正する。
【0177】
具体的には、上記[第3の参照値管理部1113]において述べたように、描画処理状況の参照値は描画処理を行うタスク数などにより変化するため、描画タスクの増減が段階的な場合などは、その段階の変化により、描画処理状況データの参照値を補正する。
【0178】
これにより、装置の処理状況に応じて動的に参照値を変化することが可能になる。
第2の参照値補正部、および第3の参照値補正部は、このように装置の動作状況に応じて動的に参照値の補正を行う。この補正により、より詳細な描画処理切り替えの制御を行うことが可能になり、処理の効率化に繋がる。
【0179】
なお、以上では、動的な参照値の補正の一例を示したが、これに限定されるものではない。動的な参照値の補正が可能な方法について、全て用いることが可能である。
本発明の第2の実施形態の変形例1の以降の処理に関しては、第2の実施形態において、メモリ使用状況を判定するための参照値管理部により参照値を読み込むと説明した部分を適宜、参照値補正部によって補正された後の参照値と読み替え、描画処理状況を判定するための参照値管理部により参照値を読み込むと説明した部分を適宜、参照値補正部によって補正された後の参照値と読み替えれば同様である。以上で説明した以外は、第2の実施形態と同様の動作である。
【0180】
(本実施形態の効果)
本実施形態では、第2の実施形態に比べ、より詳細に装置の動作状況に応じた描画処理の切り替えを行うことで、装置がビジーである場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、小型PC、携帯電話、インタラクティブな図形描画機能をもったAV機器などのように、ハードウェア資源が限られており、複数の異なる処理を行うタスクを同一のハードウェア上で実行する場合に特に有効である。
【0181】
[第2の実施形態の変形例2]
図31は、本発明の第2の実施形態の変形例2に係る図形描画装置の全体構成図である。
変形例2に係る図形描画装置は、第2の実施形態の図形描画装置における第1の参照値管理部1111、第1の描画処理切り替え部1114、第1の描画データ生成部1115、および第1の描画処理部1116を省略した形態となっている。
【0182】
そのため、第2の実施形態における第2の参照値管理部が、本実施形態における第1の参照値管理部と対応し、第2の実施形態における第2の描画処理切り替え部が、本実施形態における第1の描画処理切り替え部と対応し、第2の実施形態における第2の描画データ生成部が、本実施形態における第1の描画データ生成部と対応し、第2の実施形態における第2の描画処理部が、本実施形態における第1の描画処理部と対応し、第2の実施形態における第3の参照値管理部が、本実施形態における第2の参照値管理部と対応し、第2の実施形態における第3の描画処理切り替え部が、本実施形態における第2の描画処理切り替え部と対応し、第2の実施形態における第3の描画データ生成部が、本実施形態における第2の描画データ生成部と対応し、第2の実施形態における第3の描画処理部が、本実施形態における第2の描画処理部と対応している。
【0183】
本変形例を、第2の実施形態において説明すると、データの入力処理がなされたあと、第2の描画処理切り替え部1117が実行され、処理が進む。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1201によりデータの入力が行われた後、ステップ1202をスキップし、ステップ1205に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0184】
(本実施形態の効果)
本実施形態では、図形の塗りつぶし色が半透明に限定されている図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、小型PC、携帯電話、インタラクティブな図形描画機能をもったAV機器などのように、ハードウェア資源が限られているハードウェア上で実行する場合に特に有効である。
【0185】
[第2の実施形態の変形例3]
図32は、本発明の第2の実施形態の変形例3に係る図形描画装置の全体構成図である。
変形例3に係る図形描画装置は、第2の実施形態の図形描画装置における第2の参照値管理部1112、メモリ使用状況データ入力部1107、メモリ使用状況データ管理部1108、第2の描画処理切り替え部1117、第2の描画データ生成部1118、および第2の描画処理部1119を省略した形態となっている。
【0186】
そのため、第2の実施形態における第3の参照値管理部が、本変形例における第2の参照値管理部と対応し、第2の実施形態における第3の描画処理切り替え部が、本変形例における第2の描画処理切り替え部と対応し、第2の実施形態における第3の描画データ生成部が、本変形例における第2の描画データ生成部と対応し、第2の実施形態における第3の描画処理部が、本変形例における第2の描画処理部と対応し、第2の実施形態における第4の描画データ生成部が、本変形例における第3の描画データ生成部と対応し、第2の実施形態における第4の描画処理部が、本変形例における第4の描画処理部と対応している。
【0187】
本変形例を、第2の実施形態において説明すると、第1の描画処理切り替え部1114により、描画属性として入力された不透明度が、半透明と判定された場合に、第3の描画処理切り替え部1120に処理が進む。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1202により不透明度が、図形内部領域が半透明であることを示していた場合、ステップ1205をスキップし、ステップ1208に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0188】
(本実施形態の効果)
本実施形態では、デプステストを利用できない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。
【0189】
これは、第2の実施形態よりもハードウェア資源が限られており、デプステスト機能を持たないハードウェア上で実行する場合に特に有効である。
[第2の実施形態の変形例4]
図33は、本発明の第2の実施形態の変形例4に係る図形描画装置の全体構成図である。
変形例4に係る図形描画装置は、第2の実施形態の図形描画装置における第3の参照値管理部1113、描画処理状況データ入力部1109、描画処理状況データ管理部1110、第3の描画処理切り替え部1120、第3の描画データ生成部1121、および第3の描画処理部1122を省略した形態となっている。
【0190】
そのため、第2の実施形態における第4の描画データ生成部が、本変形例における第3の描画データ生成部と対応し、第2の実施形態における第4の描画処理部が、本変形例における第3の描画処理部と対応している。
【0191】
本変形例を、第2の実施形態において説明すると、第2の描画処理切り替え部1117により、デプスバッファを確保できないと判定された場合に、第4の描画データ生成部1123に処理が進むようにしたものである。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1205によりデプスバッファが利用不可と判定された場合に、ステップ1208をスキップし、ステップ1211に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0192】
(本実施形態の効果)
本実施形態では、アルファ値を利用した描画処理ができない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態よりもハードウェア資源が限られており、アルファ値利用した描画処理機能を持たないハードウェア上で実行する場合に特に有効である。
【0193】
[第2の実施形態の変形例5]
図34は、本発明の第2の実施形態の変形例5に係る図形描画装置の全体構成図である。
変形例5に係る図形描画装置は、第2の実施形態の図形描画装置における第3の参照値管理部1113、描画処理状況データ入力部1109、描画処理状況データ管理部1110、第3の描画処理切り替え部1120、第4の描画データ生成部1123、および第4の描画処理部1124を省略した形態となっている。
【0194】
本変形例を、第2の実施形態において説明すると、第2の描画処理切り替え部1117により、デプスバッファを確保できないと判定された場合に、第3の描画データ生成部1121に処理が進むようにしたものである。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1205によりデプスバッファが利用不可と判定された場合に、ステップ1208をスキップし、ステップ1209に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0195】
(本実施形態の効果)
本実施形態では、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態にくらべ、描画処理が十分に高速であり、アルファ値を利用した描画処理が常に実行可能な場合において、描画処理状況判定のオーバーヘッドを減らすことができ、より効率的な図形描画処理を行うことができる。
【0196】
[第2の実施形態の変形例6]
図35は、本発明の第2の実施形態の変形例6に係る図形描画装置の全体構成図である。
変形例6に係る図形描画装置は、第2の実施形態の図形描画装置における第2の参照値管理部1112、メモリ使用状況データ入力部1107、メモリ使用状況データ管理部1108、第2の描画処理切り替え部1117、第2の描画データ生成部1118、第2の描画処理部1119、第3の参照値管理部1113、描画処理状況データ入力部1109、描画処理状況データ管理部1110、第3の描画処理切り替え部1120、第3の描画データ生成部1121、および第3の描画処理部1122を省略した形態となっている。
【0197】
そのため、第2の実施形態における第1の参照値管理部が、本変形例における参照値部と対応し、第2の実施形態における第1の描画処理切り替え部が、本変形例における描画処理切り替え部と対応し、第2の実施形態における第4の描画データ生成部が、本変形例における第2の描画データ生成部と対応し、第2の実施形態における第4の描画処理部が、本変形例における第2の描画処理部と対応している。
【0198】
本変形例を、第2の実施形態において説明すると、第1の描画処理切り替え部1114により、描画属性として入力された不透明度が、半透明と判定された場合に、第4の描画データ生成部1123に処理が進むようにしたものである。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1202により描画属性が半透明と判定された場合に、ステップ1205、およびステップ1208をスキップし、ステップ1211に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0199】
(本実施形態の効果)
本実施形態では、デプステスト、およびアルファ値を利用した描画処理ができない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態にくらべ、ハードウェア資源が限られており、デプステストおよびアルファ値を利用した描画処理機能をもたないハードウェア上で実行する場合に特に有効である。
【0200】
[第2の実施形態の変形例7]
図36は、本発明の第2の実施形態の変形例7に係る図形描画装置の全体構成図である。
変形例7に係る図形描画装置は、第2の実施形態の図形描画装置における第2の参照値管理部1112、メモリ使用状況データ入力部1107、メモリ使用状況データ管理部1108、第2の描画処理切り替え部1117、第2の描画データ生成部1118、第2の描画処理部1119、第3の参照値管理部1113、描画処理状況データ入力部1109、描画処理状況データ管理部1110、第3の描画処理切り替え部1120、第4の描画データ生成部1123、および第4の描画処理部1124を省略した形態となっている。
【0201】
そのため、第2の実施形態における第1の参照値管理部が、本変形例における参照値部と対応し、第2の実施形態における第1の描画処理切り替え部が、本変形例における描画処理切り替え部と対応し、第2の実施形態における第3の描画データ生成部が、本変形例における第2の描画データ生成部と対応し、第2の実施形態における第3の描画処理部が、本変形例における第2の描画処理部と対応している。
【0202】
本変形例を、第2の実施形態において説明すると、第2の描画処理切り替え部1114により、描画属性として入力された不透明度が、半透明と判定された場合に、第3の描画データ生成部1121に処理が進むようにしたものである。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1202により描画属性が半透明と判定された場合に、ステップ1205、およびステップ1208をスキップし、ステップ1209に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0203】
(本実施形態の効果)
本実施形態では、デプステストを利用できない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも掃引図形描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な掃引図形描画処理を行うことができる。これは、第2の実施形態にくらべ、ハードウェア資源が限られており、デプステストが利用できないハードウェア上で実行する場合において、より効率的な図形描画処理を行うことができる。
【0204】
[第2の実施形態の変形例8]
図37は、本発明の第2の実施形態の変形例8に係る図形描画装置の全体構成図である。
変形例8に係る図形描画装置は、第2の実施形態の図形描画装置における第2の参照値管理部1112、メモリ使用状況データ入力部1107、メモリ使用状況データ管理部1108、第2の描画処理切り替え部1117、第3の参照値管理部1113、描画処理状況データ入力部1109、描画処理状況データ管理部1110、第3の描画処理切り替え部1120、第3の描画データ生成部1121、第3の描画処理部1122、第4の描画データ生成部1123、および第4の描画処理部1124を省略した形態となっている。
【0205】
そのため、第2の実施形態における第1の参照値管理部が、本変形例における参照値部と対応し、第2の実施形態における第1の描画処理切り替え部が、本変形例における描画処理切り替え部と対応している。
【0206】
本変形例を、第2の実施形態において説明すると、第1の描画処理切り替え部1114により、描画属性として入力された不透明度が、半透明であることを示していた場合に、第2の描画データ生成部1118に処理が進むようにしたものである。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1202により描画属性が半透明と判定された場合に、ステップ1205をスキップし、ステップ1206に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0207】
(本実施形態の効果)
本実施形態では、デプステストが必ず利用できるような図形描画装置において、入力状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態にくらべ、ハードウェア資源が豊かであり、デプステストが必ず利用できるハードウェア上で実行する場合において、より効率的な図形描画処理を行うことができる。
【0208】
[第2の実施形態の変形例9]
図38は、本発明の第2の実施形態の変形例9に係る図形描画装置の全体構成図である。
変形例9に係る図形描画装置は、第2の実施形態の図形描画装置における第1の参照値管理部1111、第1の描画処理切り替え部1114、第1の描画データ生成部1115、第1の描画処理部1116、第2の参照値管理部1112、メモリ使用状況データ入力部1107、メモリ使用状況データ管理部1108、第2の描画処理切り替え部1117、第2の描画データ生成部1118、および第2の描画処理部1119を省略した形態となっている。
【0209】
そのため、第2の実施形態における第3の参照値管理部が、本変形例における参照値部と対応し、第2の実施形態における第3の描画処理切り替え部が、本変形例における描画処理切り替え部と対応し、第2の実施形態における第3の描画データ生成部が、本変形例における第1の描画データ生成部と対応し、第2の実施形態における第3の描画処理部が、本変形例における第1の描画処理部と対応し、第2の実施形態における第4の描画データ生成部が、本変形例における第2の描画データ生成部と対応し、第2の実施形態における第4の描画処理部が、本変形例における第2の描画処理部と対応している。
【0210】
本変形例を、第2の実施形態において説明すると、データの入力処理がなされたあと、第3の描画処理切り替え部1120が実行され、処理が進む。具体的には、図15に示す第2の実施形態の処理フローにおいて、ステップ1201によりデータの入力が行われた後、ステップ1202、およびステップ1205をスキップし、ステップ1208に進むようにすることである。以上で説明した以外は、第2の実施形態と同様の動作である。
【0211】
(本実施形態の効果)
本実施形態では、図形の塗りつぶし色が半透明に限定されている図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、小型PC、携帯電話、インタラクティブな図形描画機能をもったAV機器などのように、ハードウェア資源が限られているハードウェア上で実行する場合に特に有効である。
【0212】
以上の各実施形態やその変形例は、適宜組み合わせて実施することが可能である。
本願発明の実施例における処理をコンピュータで実行可能なプログラムで実現し、このプログラムをコンピュータで読みとり可能な記憶媒体として実現することも可能である。
【0213】
なお、本願発明における記憶媒体としては、磁気ディスク、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリ等、プログラムを記憶でき、かつコンピュータまたは組み込みシステムが読みとり可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【0214】
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーションシステム)や、データベース管理ソフト、ネットワーク等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
【0215】
さらに、本願発明における記憶媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0216】
また、記憶媒体は1つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記憶媒体に含まれ、媒体の構成は何れの構成であってもよい。
【0217】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【0218】
また、本願発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本願発明の機能を実現することが可能な機器、装置を総称している。
【0219】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成要件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題(の少なくとも1つ)が解決でき、発明の効果の欄で述べられている効果(の少なくとも1つ)が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【0220】
【図1】本発明の図形描画装置の構成例を概略的に示す図
【図2】本発明の第1の実施形態に係る図形描画装置の構成例を概略的に示す図
【図3】本発明の第1の実施形態における処理フローを示す図
【図4】ベクトルデータ群を説明するための図
【図5】非ゼロ巻数規則による図形内部領域判定例を示す図
【図6】奇偶規則による図形内部領域判定例を示す図
【図7】ベクトルデータ群が互いに交差する点を示す図
【図8】ステンシルバッファを利用した描画処理における処理フローを示す図
【図9】ステンシルバッファ利用描画の例を示す図
【図10】本発明の第1の実施形態の変形例1に係る図形描画装置の構成例を概略的に示す図
【図11】本発明の第1の実施形態の変形例1に係る図形描画装置の構成例を概略的に示す図
【図12】本発明の第1の実施形態の変形例2に係る図形描画装置の構成例を概略的に示す図
【図13】本発明の第1の実施形態の変形例3に係る図形描画装置の構成例を概略的に示す図
【図14】本発明の第2の実施形態に係る図形描画装置の構成例を概略的に示す図
【図15】本発明の第2の実施形態における処理フローを示す図
【図16】掃引線データの例を示す図
【図17】掃引形状データの例を示す図
【図18】本発明の第2の実施形態における不透明な図形描画の例を示す図
【図19】本発明の第2の実施形態における半透明な図形描画の例を示す図
【図20】掃引線の自己交差部の重なりを無視する図形処理例の処理フローを示す図
【図21】本発明の第2の実施形態における描画図形の外周線の例を示す図
【図22】本発明の第2の実施形態における外周線の三角形分割の例を示す図
【図23】三角形データ群を囲む座標軸に平行な最小の矩形データの例を示す図
【図24】アルファ値を利用した描画処理における処理フローを示す図
【図25】アルファ値を利用した描画処理の第1の過程を示す図
【図26】アルファ値を利用した描画処理の第2の過程を示す図
【図27】描画図形の外周線算出における処理フローを示す図
【図28】描画図形の外周線の例を示す図
【図29】非ゼロ巻数規則による掃引線の自己交差部処理の例を示す図
【図30】本発明の第2の実施形態の変形例1に係る図形描画装置の構成例を概略的に示す図
【図31】本発明の第2の実施形態の変形例2に係る図形描画装置の構成例を概略的に示す図
【図32】本発明の第2の実施形態の変形例3に係る図形描画装置の構成例を概略的に示す図
【図33】本発明の第2の実施形態の変形例4に係る図形描画装置の構成例を概略的に示す図
【図34】本発明の第2の実施形態の変形例5に係る図形描画装置の構成例を概略的に示す図
【図35】本発明の第2の実施形態の変形例6に係る図形描画装置の構成例を概略的に示す図
【図36】本発明の第2の実施形態の変形例7に係る図形描画装置の構成例を概略的に示す図
【図37】本発明の第2の実施形態の変形例8に係る図形描画装置の構成例を概略的に示す図
【図38】本発明の第2の実施形態の変形例9に係る図形描画装置の構成例を概略的に示す図
【図39】本発明の図形描画装置の構成例を概略的に示す図
【符号の説明】
【0221】
01…ベクトルデータ群管理部
02…描画属性データ管理部
03…リソース情報管理部
04…描画処理切り替え部
05…第1の描画データ生成部
06…第1の描画処理部
07…第2の描画データ生成部
08…第2の描画処理部
09…第Nの描画データ生成部
10…第Nの描画処理部
11…描画結果出力部
101…ベクトルデータ群入力部
102…ベクトルデータ群管理部
103…描画属性データ入力部
104…描画属性データ管理部
105…メモリ使用状況データ入力部
106…メモリ使用状況データ管理部
107…第1の参照値管理部
108…第2の参照値管理部
109…第1の描画処理切り替え部
110…第1の描画データ生成部
111…第1の描画処理部
112…自己交差点算出部
113…自己交差点管理部
114…第2の描画処理切り替え部
115…第2の描画データ生成部
116…第2の描画処理部
117…第3の描画データ生成部
118…第3の描画処理部
119…描画結果出力部
1101…掃引線データ入力部
1102…掃引線データ管理部
1103…掃引形状データ入力部
1104…掃引形状データ管理部
1105…描画属性データ入力部
1106…描画属性データ管理部
1107…メモリ使用状況データ入力部
1108…メモリ使用状況データ管理部
1109…描画処理状況データ入力部
1110…描画処理状況データ管理部
1111…第1の参照値管理部
1112…第2の参照値管理部
1113…第3の参照値管理部
1114…第1の描画処理切り替え部
1115…第1の描画データ生成部
1116…第1の描画処理部
1117…第2の描画処理切り替え部
1118…第2の描画データ生成部
1119…第2の描画処理部
1120…第3の描画処理切り替え部
1121…第3の描画データ生成部
1122…第3の描画処理部
1123…第4の描画データ生成部
1124…第4の描画処理部
1125…描画結果出力部

【特許請求の範囲】
【請求項1】
図形形状を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
図形内部属性情報を表す描画属性データを管理する描画属性データ群管理手段と、
利用状況を表すリソース情報を管理するリソース情報管理手段と、
前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、入力図形の形状特徴を表す図形特徴量を算出する図形特徴量算出手段と、
前記図形特徴量算出手段により算出された図形特徴量と、前記リソース情報管理手段により管理されたリソース情報を読み込み、最適な描画データ生成手段に切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されているベクトルデータ群と、前記描画属性データ管理手段により管理されている描画属性データを読み込み、それぞれ異なる描画データを生成する複数の描画データ生成手段と、
前記描画データ生成手段により生成された描画データと、前記描画属性データ管理手段により管理されている描画属性データを読み込み、それぞれ異なる描画処理を行う、複数の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項2】
更に、リソース情報と比較する閾値を管理するリソース情報閾値管理手段と、
図形特徴量と比較する閾値を管理する図形特徴量閾値管理手段とを具備し、
前記描画処理切り替え手段は、前記図形特徴量算出手段により算出された図形特徴量と、前記図形特徴量閾値管理手段により管理された図形特徴量閾値とを比較し、前記リソース情報閾値管理手段により管理されたリソース情報閾値と、前記リソース情報管理手段により管理されたリソース情報とを比較することで、描画データ生成手段を切り替えることを特徴とする請求項1記載の図形描画装置。
【請求項3】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第1の閾値管理手段と、
自己交差点数と比較する図形外周線の自己交差点数閾値を管理する第2の閾値管理手段と、
前記第1の閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、
前記第1の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第1の描画処理手段と、
前記第1の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、
前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、
前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで描画処理を切り替える第2の描画処理切り替え手段と、
前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第2の描画処理手段と、
前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第3の描画データ生成手段と、
前記第3の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第3の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項4】
前記第1の閾値管理手段は、更にメモリ使用状況データと比較するメモリ使用状況閾値を補正する機能を有し、
前記第2の閾値管理手段は、更に自己交差点数と比較する図形外周線の自己交差点数閾値を補正する機能を有したことを特徴とする請求項3記載の図形描画装置。
【請求項5】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
自己交差点数と比較する図形外周線の自己交差点数閾値を管理する閾値管理手段と、
前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、
前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、
前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第2の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項6】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する閾値管理手段と、
前記閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第1の描画処理手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第2の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項7】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する閾値管理手段と、
前記閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第1の描画処理手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第2の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項8】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第1の閾値管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第2の閾値管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する第3の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データと、前記第1の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、
前記第1の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記第1の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第2の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第2の描画処理切り替え手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第2の描画処理手段と、
前記第2の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第3の閾値管理手段により管理されている描画処理状況閾値とを比較するこで、描画処理を切り替える第3の描画処理切り替え手段と、
前記第3の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第3の描画データ生成手段と、
前記第3の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第3の描画処理手段と、
前記第3の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第4の描画データ生成手段と、
前記第4の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第4の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項9】
前記第2の閾値管理手段は、更にメモリ使用状況データと比較するメモリ使用状況閾値を補正する機能を有し、
前記第3の閾値管理手段は、更に描画処理状況データと比較する描画処理状況データの閾値を補正する機能を有していることを特徴とする請求項8記載の図形描画装置。
【請求項10】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第1の閾値管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する第2の閾値管理手段と、
前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第1の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、
前記第1の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第1の描画処理手段と、
前記第1の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第2の閾値管理手段により管理されている描画処理状況閾値とを比較することで、描画処理を切り替える第2の描画処理切り替え手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第2の描画処理手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第3の描画データ生成手段と、
前記第3の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第3の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項11】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第1の閾値管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する第2の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データと、前記第1の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、
前記第1の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記第1の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第2の閾値管理手段により管理されている描画処理状況閾値とを比較することで、描画処理を切り替える第2の描画処理切り替え手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第2の描画処理手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第3の描画データ生成手段と、
前記第3の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第3の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項12】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第1の閾値管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第2の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データと、前記第1の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、
前記第1の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記第1の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第2の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第2の描画処理切り替え手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第2の描画処理手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第3の描画データ生成手段と、
前記第3の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第3の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項13】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第1の閾値管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第2の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データと、前記第1の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第1の描画処理切り替え手段と、
前記第1の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記第1の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第2の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第2の描画処理切り替え手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第2の描画処理手段と、
前記第2の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第3の描画データ生成手段と、
前記第3の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第3の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項14】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データと、前記閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第2の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項15】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データと、前記閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第2の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項16】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データと、前記閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第1の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第2の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項17】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する閾値管理手段と、
前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記閾値管理手段により管理されている描画処理状況閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第1の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第2の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項18】
図形形状を表すベクトルデータ群をベクトルデータ群管理部に入力し、
図形内部属性情報を表す描画属性データを描画属性データ管理部に入力し、
利用状況を表すリソース情報をリソース情報管理部に入力し、
管理されたベクトルデータ群管理部からベクトルデータ群を読み込み、図形特徴量算出部により入力図形の形状特徴を表す図形特徴量を算出し、
算出された図形特徴量と、前記リソース情報管理部で管理されたリソース情報を読み込み、最適な描画データ生成に切り替え、
前記ベクトルデータ群管理部で管理されているベクトルデータ群と、前記描画属性データ管理部段で管理されている描画属性データを読み込み、描画データを生成し、
生成された描画データと、前記描画属性データ管理部で管理された描画属性データを読み込み、描画処理を行うことを特徴とする図形描画方法。
【請求項19】
コンピュータを図形描画装置として機能させるためのプログラム であって、
図形形状を表すベクトルデータ群をベクトルデータ群管理部に入力する機能と、
図形内部属性情報を表す描画属性データを描画属性データ管理部に入力する機能と、
利用状況を表すリソース情報をリソース情報管理部に入力する機能と、
管理されたベクトルデータ群管理部からベクトルデータ群を読み込み、図形特徴量算出部により入力図形の形状特徴を表す図形特徴量を算出する機能と、
算出された図形特徴量と、前記リソース情報管理部で管理されたリソース情報を読み込み、最適な描画データ生成に切り替える機能と、
前記ベクトルデータ群管理部で管理されているベクトルデータ群と、前記描画属性データ管理部段で管理されている描画属性データを読み込み、描画データを生成する機能と、
生成された描画データと、前記描画属性データ管理部で管理された描画属性データを読み込み、描画処理を行う機能とを含みコンピュータに実現させるためのプログラム 。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate


【公開番号】特開2007−264989(P2007−264989A)
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願番号】特願2006−88705(P2006−88705)
【出願日】平成18年3月28日(2006.3.28)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】