説明

描画処理装置

【課題】ディスプレイリストを用いた描画処理を効率よく行うための技術を提供する。
【解決手段】複数の描画エンジンを備えた描画処理装置(100)において、ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュール(30)を設ける。そして、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュール(40)を設ける。それにより、複数の描画エンジンが混在する装置にディスプレイリスト型のハードウェアを適用した場合でも、ディスプレイリストを用いた描画処理を効率よく行えるようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、図形描画処理技術、さらには複数の描画エンジンが混在する描画処理装置に関する。
【背景技術】
【0002】
図形描画用のグラフィックスハードウェア装置を備えた図形描画処理装置においては、ディスプレイリスト(DL)を用いた描画処理が行われる。ここでディスプレイリストとは、描画実行時に効率的に処理できるように、描画に関するコマンド群をひとまとめに記憶しリスト化されたものを指す。ディスプレイリストを用いた描画処理において、ホスト側のグラフィックスライブラリは、アプリケーションプログラムからのディスプレイリスト生成要求を基に、図形要素を構造化して、グラフィックスハードウェア装置へ転送し、グラフィックスハードウェア装置は受け取った情報をレンダリング処理しフレームメモリに書き込むことで描画処理が行われる。
【0003】
ディスプレイリストによるグラフィックス表示システムとして例えば特許文献1に示されるシステムを挙げることができる。このシステムは、ハードウェアに非依存のハイレベルグラフィックスライブラリと、ローレベルハードウェア依存グラフィックスライブラリと、グラフィックスハードウェア205とから構成されている。
【0004】
【特許文献1】特開平9−297570号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
グラフィックスライブラリにおいて、性能向上のために描画処理の一部をハードウェアアクセラレータで行い、残りの描画処理をソフトウェアで行う手法がある。ここで、ディスプレイリスト実行型のハードウェアアクセラレータを、描画処理のためのソフトウェアとハードウェアとが混在するグラフィックスライブラリに適用することについて検討する。ディスプレイリスト実行型のハードウェアアクセラレータは、複数の描画コマンドがまとめられたディスプレイリストに従って処理することで、CPU(中央処理装置)の負荷を軽減させる。しかしながら、描画処理を実行するソフトウェアとハードウェアとが混在するグラフィックスライブラリにディスプレイリスト実行型の描画方式を適用する場合について本願発明者が検討したところ、以下の課題が見いだされた。
【0006】
例えばソフトウェア描画とハードウェア描画のインタフェースを即時実行型に統一すると、ハードウェア描画の際に、ディスプレイリスト実行型ハードウェアを即時実行的に用いる必要がある。そのため、ハードウェアにおいて、1つの図形を描画するたびにディスプレイリストを作成して実行しなければならず、ディスプレイリストの作成及び実行の回数が増加するため、ハードウェアのオーバヘッドが増大する。
【0007】
ハードウェア描画に対してのみ、複数の描画をまとめて1つのディスプレイリストとする機能をサポートすると、グラフィックスライブラリを使用するアプリケーション側が、使用する描画エンジンの種類を意識する必要がある。すなわち、ソフトウェアの描画は即時実行、ハードウェアの描画はディスプレイリスト実行であることを考慮してアプリケーションを作成しなければならず、アプリケーション作成が煩雑になる。
【0008】
本発明の目的は、複数の描画エンジンが混在する装置に、ディスプレイリスト型のハードウェアを適用した場合に、ディスプレイリストを用いた描画処理を効率よく行うための技術を提供することにある。
【0009】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0010】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【0011】
すなわち、複数の描画エンジンを備えた描画処理装置において、ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュールを設ける。そして、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュールを設ける。それにより、複数の描画エンジンが混在する装置にディスプレイリスト型のハードウェアを適用した場合でも、ディスプレイリストを用いた描画処理を効率よく行えるようにする。
【発明の効果】
【0012】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0013】
すなわち、複数の描画エンジンが混在する装置に、ディスプレイリスト型のハードウェアを適用した場合に、ディスプレイリストを用いた描画処理を効率よく行うことができる。
【発明を実施するための最良の形態】
【0014】
1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0015】
〔1〕本発明の代表的な実施の形態に係る描画処理装置(100)は、複数の描画エンジンを備える。そして、ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュール(30)と、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュール(40)とを含む。上記複数の描画エンジンには、ソフトウェアによる描画処理を行う第1描画エンジン(3,4)と、ハードウェアによる描画処理を行う第2描画エンジン(1,2)とを含めることができる。
【0016】
上記の構成によれば、ディスプレイリストの作成指示に応じて描画に関するコマンド群がリスト化されることでディスプレイリストが作成され、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンが判定され、上記複数の描画エンジンの中から対応する描画エンジンが起動されるため、複数の描画エンジンが混在する装置に、ディスプレイリスト型のハードウェアを適用した場合に、ディスプレイリストを用いた描画処理を効率よく行うことができる。
【0017】
〔2〕上記描画処理装置は、描画処理毎に使用される描画エンジンの情報がテーブル化されたディスプレイリスト管理テーブル(21)を備え、上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照しながらディスプレイリストを作成する。
【0018】
〔3〕上記ディスプレイリスト実行モジュールは、ディスプレイリストの実行指示に応じて、上記ディスプレイリストにおけるコマンドをフェッチし、フェッチされたコマンドを解釈し、そのコマンド解釈結果に基づいて上記ディスプレイリスト管理テーブルを参照することで、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動する。
【0019】
〔4〕上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、上記第1描画エンジンにより実行される描画コマンドと、上記第2描画エンジンにより実行される描画コマンドとが混在するディスプレイリストを形成する。
【0020】
〔5〕上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、描画コマンド列が描画エンジン毎にまとめられるとともに、終了コマンドによって区切られた描画エンジン毎のディスプレイリストを形成する。
【0021】
2.実施の形態の説明
次に、実施の形態について更に詳述する。
【0022】
図1には、本発明にかかる描画処理装置が示される。
【0023】
図1に示される描画処理装置100は、メモリ20、DL作成モジュール31、DL実行モジュール40、複数の描画エンジン1,2,3,4,…を含み、特に制限されないが、公知の半導体集積回路技術により単結晶シリコン基板などの一つの半導体基板に形成されたマイクロプロセッサなどに搭載される。特に制限されないが、上記描画エンジン1,2はハードウェアにより形成され、上記描画エンジン3,4はソフトウェアにより形成される。アプリケーション10は、図示されないマイクロプロセッサで実行されるソフトウェアであり、このアプリケーション10がマイクロプロセッサで実行されることにより、DL作成モジュール30に対してディスプレイリスト(単に「DL」という)作成の指示が行われ、また、DL実行モジュール40に対してDL実行の指示が行われる。
【0024】
上記メモリ20は、DL管理のためのDL管理テーブル21、作成されたDLが格納されるDL記憶部22、描画のためのフレームメモリ23を含む。
【0025】
上記DL作成モジュール30は、上記DL作成指示により、上記DL管理テーブル21を参照する機能31と、その参照結果に基づいて描画コマンド列を作成する機能32とを含む。
【0026】
上記DL実行モジュール40は、DL記憶部22に記憶されているディスプレイリストにおける描画コマンドをフェッチする機能41と、上記フェッチされたコマンドを解釈する機能42と、必要に応じて上記DL管理テーブル21を参照する機能43と、上記DL管理テーブル参照結果に基づいて描画エンジンを判定する機能44と、上記描画エンジン判定結果に基づいて、該当する描画エンジンを起動する機能45とを含む。
【0027】
上記の構成において、DL作成モジュールは本テーブルを参照し、メモリ上にコマンド列を作成する。ソフトウェアによる描画処理もコマンド列化し、ソフトウェア描画・ハードウェア描画が混在したディスプレイリストを作成する。DL実行時は、DL実行モジュールがコマンドをフェッチおよび解釈したのち、描画エンジン判定処理を行う。本処理により実行するコマンドをどの描画エンジンで実行するかを判定し、該当する描画エンジンを起動する。これにより、ディスプレイリスト使用時に、グラフィックスライブラリが描画エンジンの切り替えを行うことが可能となるので、例えばディスプレイリスト実行型ハードウェアアクセラレータを描画エンジンのひとつとして装置に適用した場合でも、ディスプレイリストを用いて効率よく描画処理を実行することが可能となる。
【0028】
次に、各部の詳細な動作について説明する。
【0029】
図2には、ディスプレイリスト作成時の動作例が示される。
【0030】
DL管理テーブル21には、各描画機能をどの描画エンジンで実行するかを示す情報が予め登録されている。図2に示される例によれば、直線描画は描画エンジン2によって行われ、円描画は描画エンジン1によって行われ、多角形描画は描画エンジン2によって行われ、矩形描画は描画エンジン3によって行われる。アプリケーション10からの指示によってディスプレイリストが作成される場合、DL作成モジュール30によってDL管理テーブル21が参照され、各描画機能を実行する描画エンジンが判定される。
【0031】
次に、描画コマンド列がDL記憶部22に書き込まれることでディスプレイリスト220が作成される。このディスプレイリスト220は、描画コマンド毎に、当該コマンドがどの描画エンジンで実行されるかの判別が可能になっており、上記ソフトウェアによる描画エンジン3,4によって実行される描画コマンドと、ハードウェアによる描画エンジン1,2によって実行される描画コマンドとが混在する。つまり、ディスプレイリスト220は全ての描画エンジン1,2,3,4,…によって解釈可能に統一されたディスプレイリストとして形成される。
【0032】
図3には、図2に示される処理で作成されたディスプレイリストの実行例が示される。
【0033】
DL実行モジュール40では、ディスプレイリスト220におけるコマンドがフェッチされ(S1)、それが解釈される(S2)。そして、フェッチされたコマンドがディスプレイリスト(DL)であるか否かの判別が行われる(S3)。この判別において、フェッチされたコマンドがディスプレイリスト(DL)ではないと判断された場合には、DL実行モジュール40での処理が終了される。上記ステップS3の判別において、フェッチされたコマンドがディスプレイリスト(DL)に含まれるものであると判断された場合には、DL管理テーブル21が参照され(S24)、描画エンジン判定が行われる(S6)。解釈された描画コマンドがソフトウェアによる描画コマンドである場合には、そのコマンドに対応するソフトウェア描画エンジンが起動される(S7)。例えば描画エンジン3又は4が起動された場合には、ソフトウェアによる描画処理が実行され、当該処理の終了後に上記ステップS1のコマンドフェッチ処理に移行される。
【0034】
これに対して、解釈された描画コマンドがハードウェアによる描画コマンドである場合には、そのコマンドに対応するハードウェア描画エンジンが起動され(S8)、DL実行モジュール40は待ち処理状態になる(S9)。例えば描画エンジン1が起動された場合には、コマンドフェッチが行われ(S11)、フェッチされたコマンドが解釈され(S12)、フェッチされたコマンドが自分のコマンドであるか否かの判別が行われる(S13)。この判別において、フェッチされたコマンドが自分のコマンドであると判断された場合には描画処理が行われ(S14)、上記ステップS11のコマンドフェッチ処理に移行される。また、上記ステップS13の判別において自分のコマンドではないと判断された場合には描画処理が終了され(S15)、DL実行モジュール40に対して、その旨の通知が行われる。DL実行モジュール40では、この通知により待ち状態から復帰される。尚、描画エンジン2が起動された場合には、当該描画エンジン2において、上記描画エンジン1が起動された場合と同様の処理が行われる。
【0035】
上記の例によれば、以下の作用効果を得ることができる。
【0036】
(1)DL作成モジュール30において、全ての描画エンジン1,2,3,4,…によって解釈可能に統一されたディスプレイリスト220が作成され、DL実行モジュール40において、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンが判定され、上記複数の描画エンジンの中から対応する描画エンジンが起動されるようになっているため、複数の描画エンジンを使用する描画処理装置100に、ディスプレイリスト実行型ハードウェアアクセラレータ(描画エンジン)を適用した場合でも、ディスプレイリストを用いて効率的に描画処理を実行できる。
【0037】
(2)ソフトウェア描画とハードウェア描画のインタフェースを即時実行型に統一すると、ハードウェア描画の際に、ディスプレイリスト実行型ハードウェアを即時実行的に用いる必要がある。そのため、ハードウェアにおいて、1つの図形を描画するたびにディスプレイリストを作成して実行しなければならず、ディスプレイリストの作成及び実行の回数が増加するため、ハードウェアのオーバヘッドが増大する。しかしながら、上記の例によれば、ソフトウェア描画とハードウェア描画のインタフェースを即時実行型に統一するものではないので、ハードウェアのオーバヘッドが増大することも無い。
【0038】
(3)ハードウェア描画に対してのみ、複数の描画をまとめて1つのディスプレイリストとする機能をサポートすると、グラフィックスライブラリを使用するアプリケーション側が、使用する描画エンジンの種類を意識する必要がある。すなわち、ソフトウェアの描画は即時実行、ハードウェアの描画はディスプレイリスト実行であることを考慮してアプリケーションを作成しなければならず、アプリケーション作成が煩雑になる。しかしながら、上記の例によれば、ハードウェア描画のみならず、ソフトウェア描画の場合もディスプレイリストを作成し、それに従って描画処理を行うようにしているため、グラフィックスライブラリを使用するアプリケーション側が、使用する描画エンジンの種類を意識する必要がなくなり、アプリケーション作成が煩雑にならずに済む。
【0039】
次に、別の構成例について説明する。
【0040】
上記の例では、全ての描画エンジン1,2,3,4,…によって解釈可能に統一されたディスプレイリスト220が用いられたが、これに限定されない。例えば図4に示されるように、各描画コマンドを実行する描画エンジンのみが解釈できるディスプレイリスト220を用いることもできる。このディスプレイリスト220は、描画エンジンが切り替わる部分には、各描画エンジン専用のDL終了コマンドが挿入されている。このコマンドによって、描画エンジン毎の専用ディスプレイリストが区切られる。つまり、上記ディスプレイリスト220は、描画コマンド列が描画エンジン毎にまとめられるとともに、終了コマンドによって区切られている。DL終了コマンドによって区切られた描画コマンド列は、描画エンジン毎に専用化されているため、他の描画エンジンでは実行することができない。このようなディスプレイリストは、DL作成モジュール30においてDL管理テーブル21を参照して作成される。
【0041】
図5には、図4に示される処理で作成されたディスプレイリストの実行例が示される。
【0042】
図5に示される実行例が図3に示されるのと大きく相違するのは、各ハードウェア描画エンジン1,2において、フェッチされたコマンドが終了コマンドであるか否かの判別が行われる(S16)点である。このステップS16の判別において、フェッチされたコマンドが終了コマンドではない判断された場合には描画処理が行われるが(S14)、フェッチされたコマンドが終了コマンドであると判断された場合には描画処理が終了される(S15)。
【0043】
このように各描画コマンドを実行する描画エンジンのみが解釈できるディスプレイリスト220を用いても、図2及び図3に示される場合と同様に、複数の描画エンジンを使用する描画処理装置100に、ディスプレイリスト実行型ハードウェアアクセラレータを適用することが可能となり、ディスプレイリストを用いて効率的に描画処理を実行できる。
【0044】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0045】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロプロセッサに搭載された描画処理装置に適用した場合について説明したが、本発明は、それに限定されるものではなく、各種描画処理装置に幅広く適用することができる。
【図面の簡単な説明】
【0046】
【図1】本発明にかかる描画処理装置の構成例ブロック図である。
【図2】上記描画処理装置におけるディスプレイリスト作成時の動作例説明図である。
【図3】図2に示される処理で作成されたディスプレイリストの実行例を示すフローチャートである。
【図4】上記描画処理装置におけるディスプレイリスト作成時の別の動作例説明図である。
【図5】図4に示される処理で作成されたディスプレイリストの実行例を示すフローチャートである。
【符号の説明】
【0047】
1,2,3,4 描画エンジン
10 アプリケーション
20 メモリ
21 DL管理テーブル
22 DL記憶部
23 フレームメモリ
30 DL作成モジュール
40 ディスプレイリスト実行モジュール
100 描画処理装置
220 ディスプレイリスト

【特許請求の範囲】
【請求項1】
複数の描画エンジンを含む描画処理装置であって、
ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュールと、
上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュールと、を含むことを特徴とする描画処理装置。
【請求項2】
ソフトウェアによる描画処理を行う第1描画エンジンと、ハードウェアによる描画処理を行う第2描画エンジンとを含む複数の描画エンジンを備えた描画処理装置であって、
ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュールと、
上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュールと、を含むことを特徴とする描画処理装置。
【請求項3】
上記描画処理装置は、描画処理毎に使用される描画エンジンの情報がテーブル化されたディスプレイリスト管理テーブルを備え、
上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照しながらディスプレイリストを作成する請求項1又は2記載の描画処理装置。
【請求項4】
上記ディスプレイリスト実行モジュールは、ディスプレイリストの実行指示に応じて、上記ディスプレイリストにおけるコマンドをフェッチし、フェッチされたコマンドを解釈し、そのコマンド解釈結果に基づいて上記ディスプレイリスト管理テーブルを参照することで、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動する請求項3記載の描画処理装置。
【請求項5】
上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、上記第1描画エンジンにより実行される描画コマンドと、上記第2描画エンジンにより実行される描画コマンドとが混在するディスプレイリストを形成する請求項3記載の描画処理装置。
【請求項6】
上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、描画コマンド列が描画エンジン毎にまとめられるとともに、終了コマンドによって区切られた描画エンジン毎のディスプレイリストを形成する請求項3記載の描画処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate