(57)【要約】【課題】並列処理する演算リソースを有効活用し、高速かつ効率よく描画処理を行うことが可能な並列描画装置を得る。【解決手段】座標変換制御部１は、ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂの起動順序を決定する。交点座標算出制御部３は、ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂの起動順序を決定する。内外判定制御部５は、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂの起動順序を決定する。ピクセル演算制御部７は、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂの起動順序を決定する。ソフトウェアピクセル演算部８ａまたはハードウェアピクセル演算部８ｂは演算結果によってフレームバッファ１０３を更新する。【選択図】図１
2014182594.tif 000002
【特許請求の範囲】
【請求項１】
描画する図形の座標変換をソフトウェアによって行うソフトウェア座標変換部およびハードウェアによって行うハードウェア座標変換部と、
前記ソフトウェア座標変換部と前記ハードウェア座標変換部から共通してアクセス可能なデータを格納すると共に、描画開始命令を受けることにより前記ソフトウェア座標変換部と前記ハードウェア座標変換部のうちどちらを起動するかを示す起動順序の判定を行う座標変換制御部と、
前記ソフトウェア座標変換部または前記ハードウェア座標変換部の出力に基づき、座標変換された前記図形の輪郭線とＹ軸方向の走査線との交点Ｘ座標をソフトウェアによって算出するソフトウェア交点座標算出部およびハードウェアによって算出するハードウェア交点座標算出部と、
前記ソフトウェア座標変換部または前記ハードウェア座標変換部の出力を、前記ソフトウェア交点座標算出部と前記ハードウェア交点座標算出部から共通してアクセス可能なデータとして格納すると共に、前記ソフトウェア交点座標算出部と前記ハードウェア交点座標算出部のうちどちらを起動するかを示す起動順序の判定を行う交点座標算出制御部と、
前記ソフトウェア交点座標算出部または前記ハードウェア交点座標算出部の出力に基づき、前記図形の内部に含まれるピクセルの座標値をソフトウェアによって算出するソフトウェア内外判定部およびハードウェアによって算出するハードウェア内外判定部と、
前記ソフトウェア交点座標算出部または前記ハードウェア交点座標変換部の出力を、前記ソフトウェア内外判定部と前記ハードウェア内外判定部から共通してアクセス可能なデータとして格納すると共に、前記ソフトウェア内外判定部と前記ハードウェア内外判定部のうちどちらを起動するかを示す起動順序の判定を行う内外判定制御部と、
前記ソフトウェア内外判定部または前記ハードウェア内外判定部の出力に基づき、前記図形の内部に含まれる画素に対するピクセル演算を行い、当該ピクセル演算結果をフレームバッファに出力するソフトウェアピクセル演算部およびハードウェアピクセル演算部と、
前記ソフトウェア内外判定部または前記ハードウェア内外判定部の出力を、前記ソフトウェアピクセル演算部および前記ハードウェアピクセル演算部から共通してアクセス可能なデータとして格納すると共に、前記ソフトウェアピクセル演算部と前記ハードウェアピクセル演算部のうちどちらを起動するかを示す起動順序の判定を行うピクセル演算制御部と、
前記フレームバッファからデータを読み出し、表示データとして出力する表示制御部とを備えた並列描画装置。
【請求項２】
前記座標変換制御部、前記交点座標算出制御部、前記内外判定制御部、前記ピクセル演算制御部のうち、少なくとも一つの制御部は、前記起動順序の判定を行うソフトウェアおよびハードウェアによる処理部に対して、どちらの処理部を優先して起動するかを示す優先モードフラグを有することを特徴とする請求項１記載の並列描画装置。
【請求項３】
前記座標変換制御部、前記交点座標算出制御部、前記内外判定制御部、前記ピクセル演算制御部のうち、少なくとも一つの制御部は、前記データを一時保存するためのバッファを有し、当該バッファをソフトウェアによる処理部の入力用バッファとして利用される領域と、ハードウェアによる処理部の入力用バッファとして利用される領域、および前記ソフトウェアによる処理部と前記ハードウェアによる処理部に共通の入力用バッファとして利用される領域とに分類してデータを格納することを特徴とする請求項１または請求項２記載の並列描画装置。
【請求項４】
前記座標変換制御部、前記交点座標算出制御部、前記内外判定制御部、前記ピクセル演算制御部のうち、少なくとも一つの制御部は、前記起動順序の判定を行うソフトウェアによる処理部およびハードウェアによる処理部がビジー状態の場合、前記ソフトウェアによる処理部および前記ハードウェアによる処理部の入力データに対し、これら処理部で実行する処理が高速化する順序に並べ替えを行い、前記ビジー状態が解除されるまで前記起動順序の判定を待機することを特徴とする請求項１から請求項３のうちのいずれか１項記載の並列描画装置。
【請求項５】
前記ピクセル演算制御部は、既にフレームバッファに書かれているデータを使用してピクセル演算を行うか否かに基づき、起動順序の判定を行うことを特徴とする請求項１から請求項４のうちのいずれか１項記載の並列描画装置
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、図形描画時に、ソフトウェアとハードウェア両方の演算リソースを有効活用して、高速かつ効率よく描画処理を行う並列描画装置に関するものである。
【背景技術】
【０００２】
従来、図形描画の際の描画処理を高速化するため、ソフトウェアによる描画手段とハードウェアによる描画手段の両方を並列に有し、描画処理をどちらかに振り分ける並列描画装置が知られている。
例えば、以下の特許文献１では、ソフトウェアによる描画とハードウェアによる描画とを並列に動作させることを可能とし、ハードウェアによる描画を行う描画部を優先して描画を行わせることや、描画部の負荷状況によって描画命令をソフトウェアによる描画部と、ハードウェアによる描画部のどちらの描画部に対して行うのかを決定することが可能な印刷装置について開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２６９１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の並列描画装置は、ある時点の描画部の負荷状況によって描画命令をソフトウェアによる描画部と、ハードウェアによる描画部のどちらの描画部に対して行うのかを決定していたため、描画する図形に応じたきめ細かい振り分けが困難であるという問題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、並列処理する演算リソースを有効活用し、高速かつ効率よく描画処理を行うことが可能な並列描画装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る並列描画装置は、描画する図形の座標変換をソフトウェアによって行うソフトウェア座標変換部およびハードウェアによって行うハードウェア座標変換部と、ソフトウェア座標変換部とハードウェア座標変換部から共通してアクセス可能なデータを格納すると共に、描画開始命令を受けることによりソフトウェア座標変換部とハードウェア座標変換部のうちどちらを起動するかを示す起動順序の判定を行う座標変換制御部と、ソフトウェア座標変換部またはハードウェア座標変換部の出力に基づき、座標変換された図形の輪郭線とＹ軸方向の走査線との交点Ｘ座標をソフトウェアによって算出するソフトウェア交点座標算出部およびハードウェアによって算出するハードウェア交点座標算出部と、ソフトウェア座標変換部またはハードウェア座標変換部の出力を、ソフトウェア交点座標算出部とハードウェア交点座標算出部から共通してアクセス可能なデータとして格納すると共に、ソフトウェア交点座標算出部とハードウェア交点座標算出部のうちどちらを起動するかを示す起動順序の判定を行う交点座標算出制御部と、ソフトウェア交点座標算出部またはハードウェア交点座標算出部の出力に基づき、図形の内部に含まれるピクセルの座標値をソフトウェアによって算出するソフトウェア内外判定部およびハードウェアによって算出するハードウェア内外判定部と、ソフトウェア交点座標算出部またはハードウェア交点座標変換部の出力を、ソフトウェア内外判定部とハードウェア内外判定部から共通してアクセス可能なデータとして格納すると共に、ソフトウェア内外判定部とハードウェア内外判定部のうちどちらを起動するかを示す起動順序の判定を行う内外判定制御部と、ソフトウェア内外判定部またはハードウェア内外判定部の出力に基づき、図形の内部に含まれる画素に対するピクセル演算を行い、ピクセル演算結果をフレームバッファに出力するソフトウェアピクセル演算部およびハードウェアピクセル演算部と、ソフトウェア内外判定部またはハードウェア内外判定部の出力を、ソフトウェアピクセル演算部およびハードウェアピクセル演算部から共通してアクセス可能なデータとして格納すると共に、ソフトウェアピクセル演算部とハードウェアピクセル演算部のうちどちらを起動するかを示す起動順序の判定を行うピクセル演算制御部と、フレームバッファからデータを読み出し、表示データとして出力する表示制御部とを備えたものである。
【発明の効果】
【０００７】
この発明の並列描画装置は、座標変換制御部と交点座標算出制御部と内外判定制御部とピクセル演算制御部とを備え、それぞれの制御部でソフトウェアによる処理部とハードウェアによる処理部の起動順序を決定するようにしたので、一つの図形を描画している途中でもソフトウェア処理とハードウェア処理を動的に切替えることができ、並列処理する演算リソースを有効活用し、高速かつ効率よく描画処理を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による並列描画装置を示す構成図である。
【図２】この発明の実施の形態１による並列描画装置の動作を示すフローチャートである。
【図３】この発明の実施の形態２による並列描画装置の動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１による並列描画装置を示す構成図である。
図１に示す並列描画装置１００は、座標変換制御部１、ソフトウェア座標変換部（Ｓ／Ｗ座標変換部）２ａ，ハードウェア座標変換部（Ｈ／Ｗ座標変換部）２ｂ、交点座標算出制御部３、ソフトウェア交点座標算出部（Ｓ／Ｗ交点座標算出部）４ａ，ハードウェア交点座標算出部（Ｈ／Ｗ交点座標算出部）４ｂ、内外判定制御部５、ソフトウェア内外判定部（Ｓ／Ｗ内外判定部）６ａ，ハードウェア内外判定部（Ｈ／Ｗ内外判定部）６ｂ、ピクセル演算制御部７、ソフトウェアピクセル演算部（Ｓ／Ｗピクセル演算部）８ａ，ハードウェアピクセル演算部（Ｈ／Ｗピクセル演算部）８ｂ、表示制御部９を備えている。
【００１０】
並列描画装置１００は、ＣＰＵ１０１とＣＰＵバス１０２を介して接続され、描画する図形の頂点座標、描画色などの設定情報を受け取った後、ＣＰＵ１０１からの描画開始命令により動作を開始する。ソフトウェア座標変換部２ａ，ハードウェア座標変換部２ｂ〜ソフトウェア交点座標算出部４ａ，ハードウェア交点座標算出部４ｂ〜ソフトウェア内外判定部６ａ，ハードウェア内外判定部６ｂ〜ソフトウェアピクセル演算部８ａ，ハードウェアピクセル演算部８ｂは、入力された図形データに対してパイプライン処理を行う描画パイプラインを構成しており、その描画データをフレームバッファ１０３に出力するよう構成されている。
【００１１】
座標変換制御部１は、設定された図形の座標値に対する座標変換処理をソフトウェア座標変換部２ａとハードウェア座標変換部２ｂの何れで処理するか、および入力された頂点をどの順序で処理するのが効率が良いかを判断し、各座標変換部２ａ、２ｂに動作開始命令を出力する。座標変換制御部１は、図形の頂点座標を一時保存するためのバッファを有する。本バッファは、ソフトウェア座標変換部２ａの入力用バッファ領域として利用される第１のバッファ１ａ、ハードウェア座標変換部２ｂの入力用バッファ領域として利用される第２のバッファ１ｂおよびソフトウェア座標変換部２ａとハードウェア座標変換部２ｂに共通の入力用バッファ領域として利用される第３のバッファ１ｃとに分類される。加えて、座標変換制御部１は、座標変換処理をソフトウェアとハードウェアのどちらを優先して行うかを判定するための優先モードフラグを有する。
【００１２】
ソフトウェア座標変換部２ａは、座標変換前の頂点座標を座標変換制御部１内の第１のバッファ１ａまたは第３のバッファ１ｃから順次読み出し、座標変換用マトリクスによる座標変換処理、描画するスクリーン座標に含まれない頂点を除外するクリッピング処理などをソフトウェアによって行い、処理結果を交点座標算出制御部３に対して出力する処理部である。また、ソフトウェア座標変換部２ａが次の頂点座標を受け取れない状態となった場合には、座標変換制御部１に対してビジー状態を通知するよう構成されている。
【００１３】
ハードウェア座標変換部２ｂは、座標変換前の頂点座標を座標変換制御部１内の第２のバッファ１ｂまたは第３のバッファ１ｃから順次読み出し、座標変換用マトリクスによる座標変換処理、描画するスクリーン座標に含まれない頂点を除外するクリッピング処理などをハードウェアによって行い、処理結果を交点座標算出制御部３に対して出力する処理部である。また、ハードウェア座標変換部２ｂが次の頂点座標を受け取れない状態となった場合には、座標変換制御部１に対してビジー状態を通知するよう構成されている。
【００１４】
交点座標算出制御部３は、ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂそれぞれから出力された座標変換処理結果（座標変換後の頂点座標）を、一時保存するためのバッファを有する。本バッファは、ソフトウェア交点座標算出部４ａの入力用バッファ領域として利用される第１のバッファ３ａ、ハードウェア交点座標算出部４ｂの入力用バッファ領域として利用される第２のバッファ３ｂおよびソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂに共通の入力用バッファ領域として利用される第３のバッファ３ｃとに分類される。交点座標算出制御部３は、座標変換後の頂点座標に対する交点座標算出をソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂの何れで処理するのが効率が良いかを判断し、各交点座標算出部４ａ，４ｂに動作開始命令を出力するよう構成されている。
加えて、交点座標算出制御部３は、交点座標算出処理をソフトウェアとハードウェアのどちらを優先して行うかを判定するための、優先モードフラグを有する。
【００１５】
ソフトウェア交点座標算出部４ａは、座標変換後の頂点座標を交点座標算出制御部３内の第１のバッファ３ａまたは第３のバッファ３ｃから順次読み出し、図形の輪郭線とＹ軸方向の走査線との交点Ｘ座標を順次算出するよう構成されている。また、ソフトウェア交点座標算出部４ａが次の頂点座標を受け取れない状態となった場合には、交点座標算出制御部３に対してビジー状態を通知する。
ハードウェア交点座標算出部４ｂは、座標変換後の頂点座標を交点座標算出制御部３内の第２のバッファ３ｂまたは第３のバッファ３ｃから順次読み出し、図形の輪郭線とＹ軸方向の走査線との交点Ｘ座標を順次算出する。また、ハードウェア交点座標算出部４ｂが次の頂点座標を受け取れない状態となった場合には、交点座標算出制御部３に対してビジー状態を通知する。
【００１６】
ソフトウェア交点座標算出部４およびハードウェア交点座標算出部４ｂにおける交点座標の算出処理は、図形内の最小Ｙ座標から１ラインずつ走査してもよいが、図形を１６×１６、３２×３２などのタイル領域に分割し、タイル単位で順次処理を行うようにするのが望ましい。
【００１７】
内外判定制御部５は、ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂそれぞれから出力された交点座標算出結果を一時保存するためのバッファを有する。本バッファは、ソフトウェア内外判定部６ａの入力用バッファ領域として利用される第１のバッファ５ａ、ハードウェア内外判定部６ｂの入力用バッファ領域として利用される第２のバッファ５ｂおよびソフトウェア内外判定部６ａとハードウェア内外判定部６ｂ共通の入力用バッファ領域として利用される第３のバッファ５ｃとに分類される。内外判定制御部５は、交点座標算出結果を用いた図形内部に含まれるピクセルの内外判定処理を、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂの何れで処理するのが効率が良いかを判断し、各内外判定部６ａ、６ｂに動作開始命令を出力するよう構成されている。加えて、内外判定制御部５は、内外判定処理をソフトウェアとハードウェアのどちらを優先して行うかを判定するための、優先モードフラグを有する。
【００１８】
ソフトウェア内外判定部６ａは、交点座標算出結果を内外判定制御部５内の第１のバッファ５ａまたは第３のバッファ５ｃから順次読み出し、ソフトウェアによって内外判定処理を行う処理部である。また、内外判定の結果、図形内部に含まれるピクセルの座標値をピクセル演算制御部７に対して出力する。
ハードウェア内外判定部６ｂは、交点座標算出結果を内外判定制御部５内の第２のバッファ５ｂまたは第３のバッファ５ｃから順次読み出し、ハードウェアによって内外判定処理を行う処理部である。また、内外判定の結果、図形内部に含まれるピクセルの座標値をピクセル演算制御部７に対して出力する。
【００１９】
ピクセル演算制御部７は、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂそれぞれから出力されたピクセル座標を一時保存するためのバッファを有する。本バッファは、ソフトウェアピクセル演算部８ａの入力用バッファ領域として利用される第１のバッファ７ａ、ハードウェアピクセル演算部８ｂの入力用バッファ領域として利用される第２のバッファ７ｂおよびソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂに共通の入力用バッファ領域として利用される第３のバッファ７ｃとに分類される。ピクセル演算制御部７は、図形の内部に含まれるピクセルに対するピクセル演算を、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂの何れで処理するのが効率が良いかを判断し、各ピクセル演算部８ａ、８ｂに動作開始命令を出力するよう構成されている。
【００２０】
ピクセル単位の演算の場合、演算に既にフレームバッファ１０３に書かれているデータを使用するか否かが描画性能に影響を与える。例えば、図形の輪郭部分にのみアンチエイリアス処理を施し、図形内部は単色で塗り潰しを行うような場合、図形の輪郭部分は既にフレームバッファ１０３に書かれているデータと新たな描画色を合成した色で描画を行うことになる。このため、ピクセル演算制御部７は、ピクセル演算に既にフレームバッファ１０３に書かれているデータを使用するか否かに基づき、データ格納先とピクセル演算部の起動順序の判定を行うよう構成されている。例えば、図形の輪郭部分と図形内部の描画処理をソフトウェアピクセル演算部８ａと、ハードウェアピクセル演算部８ｂにより分割して行うことで、描画性能を向上させることができる。加えて、ピクセル演算制御部７は、ピクセル演算処理をソフトウェアとハードウェアのどちらを優先して行うかを判定するための、優先モードフラグを有する。
【００２１】
ソフトウェアピクセル演算部８ａは、図形の内部に含まれる画素の座標値をピクセル演算制御部７内の第１のバッファ７ａまたは第３のバッファ７ｃから順次読み出し、カラー値、α値（透明度）などを算出し、フレームバッファ１０３に出力するソフトウェアによる処理部である。
ハードウェアピクセル演算部８ｂは、図形の内部に含まれる画素の座標値をピクセル演算制御部７内の第２のバッファ７ｂまたは第３のバッファ７ｃから順次読み出し、カラー値、α値（透明度）などを算出し、フレームバッファ１０３に出力するハードウェアによる処理部である。
【００２２】
なお、ソフトウェアピクセル演算部８ａおよびハードウェアピクセル演算部８ｂにおいて、処理の高速化のため、複数画素をまとめて、カラー値、α値などを生成するようにしてもよい。また、図１ではフレームバッファ１０３は、並列描画装置１００の外部としているが、並列描画装置１００に内蔵するようにしてもよい。
【００２３】
表示制御部９は、フレームバッファ１０３からデータを読み出し、各種ディスプレイの同期タイミングと合わせて表示データを出力する処理部である。
【００２４】
次に動作について説明する。図２はこの発明の実施の形態１による並列描画装置の処理内容を示すフローチャートである。
並列描画装置１００は、当該並列描画装置１００を搭載しているシステムのＣＰＵ１０１から描画処理開始命令を受けることにより、動作を開始する。
座標変換制御部１は、ＣＰＵ１０１から設定された図形の座標値に対する座標変換処理をソフトウェア座標変換部２ａとハードウェア座標変換部２ｂの何れで処理するか、および入力された頂点をどの順序で処理するのかなど、座標変換部の起動順序の判定を行う（ステップＳＴ１）。
【００２５】
次いで、ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂそれぞれが座標変換制御部１の出力を受付可能であるかを判定する（ステップＳＴ２）。判定結果がＮＯであれば、受付可能となるまで待機する。一方、判定結果がＹＥＳであれば、各座標変換部２ａ，２ｂの何れかを起動する（ステップＳＴ３）。
【００２６】
具体的には、ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂが両方ともビジーでない場合、座標変換制御部１の優先モードフラグに従い、ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂの何れかを起動する。
ソフトウェア座標変換部２ａがビジーであり、ハードウェア座標変換部２ｂがビジーでない場合、ハードウェア座標変換部２ｂを起動する。また、座標変換制御部１の優先モードフラグをハードウェア優先に変更する。
ソフトウェア座標変換部２ａがビジーでなく、ハードウェア座標変換部２ｂがビジーである場合、ソフトウェア座標変換部２ａを起動する。また、座標変換制御部１の優先モードフラグをソフトウェア優先に変更する。
ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂが両方ともビジーである場合、ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂのうち早くビジーが解除された方を起動する。また、座標変換制御部１の優先モードフラグを早くビジーが解除された方を優先するように変更する。
【００２７】
次いで、交点座標算出制御部３の処理について説明する。ソフトウェア座標変換部２ａまたはハードウェア座標変換部２ｂから座標変換処理結果（座標変換後の頂点座標）が出力された場合、交点座標算出制御部３は、一時保存用バッファである第１のバッファ３ａ、第２のバッファ３ｂおよび第３のバッファ３ｃの空き容量と、ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂそれぞれのビジー状態に基づき、第１のバッファ３ａ、第２のバッファ３ｂおよび第３のバッファ３ｃの何れにデータを格納するのか、また、交点座標算出部４ａ，４ｂの起動順序を判定する（ステップＳＴ４）。
【００２８】
次いで、ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂそれぞれが交点座標算出制御部３の出力を受付可能であるかを判定する（ステップＳＴ５）。判定結果がＮＯであれば、受付可能となるまで待機する。一方、判定結果がＹＥＳであれば、各交点座標算出部４ａ，４ｂの何れかを起動する（ステップＳＴ６）。
【００２９】
具体的には、ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂが両方ともビジーでなく、バッファの空き容量がある場合、交点座標算出制御部３の優先モードフラグに従い、格納先のバッファを決定する。
ソフトウェア交点座標算出部４ａがビジーであり、ハードウェア交点座標算出部４ｂがビジーでない場合、ハードウェア交点座標算出部４ｂ用の第２のバッファ３ｂに優先してデータを格納する。また、交点座標算出制御部３の優先モードフラグをハードウェア優先に変更する。
ソフトウェア交点座標算出部４ａがビジーでなく、ハードウェア交点座標算出部４ｂがビジーである場合、ソフトウェア交点座標算出部４ａ用の第１のバッファ３ａに優先してデータを格納する。また、交点座標算出制御部３の優先モードフラグをソフトウェア優先に変更する。
ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂが両方ともビジーである場合、一旦共通に利用できる第３のバッファ３ｃにデータを格納し、ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂのうち早くビジーが解除された方が、優先して第３のバッファ３ｃからデータを読み出す。また、交点座標算出制御部３の優先モードフラグを早くビジーが解除された方を優先するように変更する。
【００３０】
次いで、内外判定制御部５の処理について説明する。ソフトウェア交点座標算出部４ａまたはハードウェア交点座標算出部４ｂから図形の輪郭線とＹ軸方向の走査線との交点Ｘ座標が出力された場合、内外判定制御部５は、一時保存用バッファである第１のバッファ５ａ、第２のバッファ５ｂおよび第３のバッファ５ｃの空き容量と、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂそれぞれのビジー状態に基づき、第１のバッファ５ａ、第２のバッファ５ｂおよび第３のバッファ５ｃの何れにデータを格納するのか、また内外判定部６ａ，６ｂの起動順序を判定する（ステップＳＴ７）。
【００３１】
次いで、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂそれぞれが内外判定制御部５の出力を受付可能であるかを判定する（ステップＳＴ８）。判定結果がＮＯであれば受付可能となるまで待機する。一方、判定結果がＹＥＳであれば、各内外判定部６ａ、６ｂの何れかを起動する（ステップＳＴ９）。
【００３２】
具体的には、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂが両方ともビジーでなく、バッファの空き容量がある場合、内外判定制御部５の優先モードフラグに従い、格納先のバッファを決定する。
ソフトウェア内外判定部６ａがビジーでありハードウェア内外判定部６ｂがビジーでない場合、ハードウェア内外判定部６ｂ用の入力バッファ５ｂに優先してデータを格納する。また、内外判定制御部５の優先モードフラグをハードウェア優先に変更する。
ソフトウェア内外判定部６ａがビジーでなく、ハードウェア内外判定部６ｂがビジーである場合、ソフトウェア内外判定部６ａ用の入力バッファ５ａに優先してデータを格納する。また、内外判定制御部５の優先モードフラグをソフトウェア優先に変更する。
ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂが両方ともビジーである場合、一旦共通に利用できるバッファ領域５ｃにデータを格納し、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂのうち早くビジーが解除された方が、優先してバッファ領域５ｃからデータを読み出す。また、内外判定制御部５の優先モードフラグを早くビジーが解除された方を優先するように変更する。
【００３３】
次いで、ピクセル演算制御部７の処理について説明する。ソフトウェア内外判定部６ａまたはハードウェア内外判定部６ｂから内外判定の結果、図形内部に含まれるピクセルの座標値が出力された場合、ピクセル演算制御部７は、一時保存用バッファである第１のバッファ７ａ、第２のバッファ７ｂおよび第３のバッファ７ｃの空き容量と、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂそれぞれのビジー状態、およびピクセル演算に既にフレームバッファ１０に書かれているデータを使用するか否かに基づき、第１のバッファ７ａ、第２のバッファ７ｂおよび第３のバッファ７ｃの何れにデータを格納するのか、またピクセル演算部８ａ，８ｂの起動順序を判定する（ステップＳＴ１０）。
【００３４】
次いで、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂそれぞれがピクセル演算制御部７の出力を受付可能であるかを判定する（ステップＳＴ１１）。判定結果がＮＯであれば、受付可能となるまで待機する。一方、判定結果がＹＥＳであれば、各ピクセル演算部８ａ，８ｂの何れかを起動する（ステップＳＴ１２）。
【００３５】
具体的には、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂが両方ともビジーでなく、バッファの空き容量がある場合、ピクセル演算制御部７の優先モードフラグに従い、格納先のバッファを決定する。
ソフトウェアピクセル演算部８ａがビジーでありハードウェアピクセル演算部８ｂがビジーでない場合、ハードウェアピクセル演算部８ｂ用の第２のバッファ７ｂに優先してデータを格納する。また、ピクセル演算制御部７の優先モードフラグをハードウェア優先に変更する。
ソフトウェアピクセル演算部８ａがビジーでなく、ハードウェアピクセル演算部８ｂがビジーである場合、ソフトウェアピクセル演算部８ａ用の第１のバッファ７ａに優先してデータを格納する。また、ピクセル演算制御部７の優先モードフラグをソフトウェア優先に変更する。
ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂが両方ともビジーである場合、一旦共通に利用できる第３のバッファ７ｃにデータを格納し、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂのうち早くビジーが解除された方が、優先して第３のバッファ７ｃからデータを読み出す。また、ピクセル演算制御部７の優先モードフラグを早くビジーが解除された方を優先するように変更する。
【００３６】
その後は、起動されたソフトウェアピクセル演算部８ａまたはハードウェアピクセル演算部８ｂによってフレームバッファ１０３のデータが更新され（ステップＳＴ１３）、表示制御部９は、フレームバッファ１０３のデータに基づいて表示データを出力する。
【００３７】
このように、実施の形態１の並列描画装置では、図形描画処理をソフトウェアとハードウェアに分割して効率よく描画を行うため、描画パイプラインの各ブロックをソフトウェア処理とハードウェア処理の両方を用意する。各描画処理ブロック間には、ソフトウェアとハードウェア両者からアクセス可能なバッファを設け、バッファの空き容量と各ブロックのビジー状態などを監視し、１つの図形を描画している途中でもソフトウェア処理とハードウェア処理を動的に切替えることで資源の有効活用をはかることができる効果を奏する。
【００３８】
以上説明したように、実施の形態１の並列描画装置によれば、描画する図形の座標変換をソフトウェアによって行うソフトウェア座標変換部およびハードウェアによって行うハードウェア座標変換部と、ソフトウェア座標変換部とハードウェア座標変換部から共通してアクセス可能なデータを格納すると共に、描画開始命令を受けることによりソフトウェア座標変換部とハードウェア座標変換部のうちどちらを起動するかを示す起動順序の判定を行う座標変換制御部と、ソフトウェア座標変換部またはハードウェア座標変換部の出力に基づき、座標変換された図形の輪郭線とＹ軸方向の走査線との交点Ｘ座標をソフトウェアによって算出するソフトウェア交点座標算出部およびハードウェアによって算出するハードウェア交点座標算出部と、ソフトウェア座標変換部またはハードウェア座標変換部の出力を、ソフトウェア交点座標算出部とハードウェア交点座標算出部から共通してアクセス可能なデータとして格納すると共に、ソフトウェア交点座標算出部とハードウェア交点座標算出部のうちどちらを起動するかを示す起動順序の判定を行う交点座標算出制御部と、ソフトウェア交点座標算出部またはハードウェア交点座標算出部の出力に基づき、図形の内部に含まれるピクセルの座標値をソフトウェアによって算出するソフトウェア内外判定部およびハードウェアによって算出するハードウェア内外判定部と、ソフトウェア交点座標算出部またはハードウェア交点座標変換部の出力を、ソフトウェア内外判定部とハードウェア内外判定部から共通してアクセス可能なデータとして格納すると共に、ソフトウェア内外判定部とハードウェア内外判定部のうちどちらを起動するかを示す起動順序の判定を行う内外判定制御部と、ソフトウェア内外判定部またはハードウェア内外判定部の出力に基づき、図形の内部に含まれる画素に対するピクセル演算を行い、ピクセル演算結果をフレームバッファに出力するソフトウェアピクセル演算部およびハードウェアピクセル演算部と、ソフトウェア内外判定部またはハードウェア内外判定部の出力を、ソフトウェアピクセル演算部およびハードウェアピクセル演算部から共通してアクセス可能なデータとして格納すると共に、ソフトウェアピクセル演算部とハードウェアピクセル演算部のうちどちらを起動するかを示す起動順序の判定を行うピクセル演算制御部と、フレームバッファからデータを読み出し、表示データとして出力する表示制御部とを備えたので、一つの図形を描画している途中でもソフトウェア処理とハードウェア処理を動的に切替えることができ、並列処理する演算リソースを有効活用し、高速かつ効率よく描画処理を行うことができる。
【００３９】
また、実施の形態１の並列描画装置によれば、座標変換制御部、交点座標算出制御部、内外判定制御部、ピクセル演算制御部のうち、少なくとも一つの制御部は、起動順序の判定を行うソフトウェアおよびハードウェアによる処理部に対して、どちらの処理部を優先して起動するかを示す優先モードフラグを有するようにしたので、特定の処理部の起動順序を予め決定することができる。
【００４０】
また、実施の形態１の並列描画装置によれば、座標変換制御部、交点座標算出制御部、内外判定制御部、ピクセル演算制御部のうち、少なくとも一つの制御部は、データを一時保存するためのバッファを有し、バッファをソフトウェアによる処理部の入力用バッファとして利用される領域と、ハードウェアによる処理部の入力用バッファとして利用される領域、およびソフトウェアによる処理部とハードウェアによる処理部に共通の入力用バッファとして利用される領域とに分類してデータを格納するようにしたので、ソフトウェアによる処理部とハードウェアによる処理部に対して最適なバッファを用意することができる。
【００４１】
また、実施の形態１の並列描画装置によれば、ピクセル演算制御部は、既にフレームバッファに書かれているデータを使用してピクセル演算を行うか否かに基づき、起動順序の判定を行うようにしたので、描画性能を向上させることができる。
【００４２】
実施の形態２．
上記実施の形態１では、座標変換制御部１、交点座標算出制御部３、内外判定制御部５、およびピクセル演算制御部７が制御対象の処理ブロックが出力データを受付可能であるかを判定し、判定結果がＮＯであれば、受付可能となるまで待機していた。これに対し、実施の形態２は、判定結果がＮＯであった場合はバッファ内のデータを並べ替えすることにより、システム全体の処理性能を向上させるようにしたものである。なお、図面上の構成は、実施の形態１における図１と同様であるため、図１の構成を用いて説明する。
【００４３】
実施の形態２における座標変換制御部１、交点座標算出制御部３、内外判定制御部５、ピクセル演算制御部７のそれぞれは、起動順序の判定を行うソフトウェアおよびハードウェアによる処理部がビジー状態の場合、ソフトウェアによる処理部およびハードウェアによる処理部の入力データに対し、これら処理部で実行する処理が高速化する順序に並べ替えを行い、ビジー状態が解除されるまで起動順序の判定を待機するよう構成されている。これ以外の構成は実施の形態１と同様である。
【００４４】
次に、実施の形態２の並列描画装置の動作について説明する。
図３は、実施の形態２による並列描画装置の処理内容を示すフローチャートである。この実施の形態２では、実施の形態１と比較して以下の手順（ステップＳＴ１４〜ＳＴ１７）が異なる。
【００４５】
座標変換制御部１は、ソフトウェア座標変換部２ａとハードウェア座標変換部２ｂそれぞれが座標変換制御部１の出力を受付可能であるかを判定する（ステップＳＴ２）。判定結果がＮＯであれば、座標変換制御部１内のバッファに格納されているデータがソフトウェア座標変換部２ａとハードウェア座標変換部２ｂで処理しやすい順序、すなわち、処理の高速化を図ることのできる順序となるように必要に応じて並べ替えを行い（ステップＳＴ１４）、再度、座標変換部２ａ，２ｂの起動順序の判定を行う（ステップＳＴ１）。
【００４６】
交点座標算出制御部３は、ソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂそれぞれが交点座標算出制御部３の出力を受付可能であるかを判定する（ステップＳＴ５）。判定結果がＮＯであれば、交点座標算出制御部３内のバッファに格納されているデータがソフトウェア交点座標算出部４ａとハードウェア交点座標算出部４ｂで処理しやすい順序となるように必要に応じて並べ替えを行い（ステップＳＴ１５）、再度、交点座標算出部４ａ，４ｂの起動順序の判定を行う（ステップＳＴ４）。
【００４７】
例えば、図形描画処理をＹ軸方向に１ラインずつ走査していくような場合、対応するＹ座標が昇順となるように頂点座標列を格納するのがよい。また、図形描画処理を１６×１６、３２×３２などのタイル領域に分割して行う場合、走査するタイルと交差する頂点座標列から順に処理を行っていくのが都合がよい。また、最終的に画面範囲外となる頂点座標は、交点座標算出の処理を省略するようにしてもよい。
【００４８】
内外判定制御部５は、ソフトウェア内外判定部６ａとハードウェア内外判定部６ｂそれぞれが内外判定制御部５の出力を受付可能であるかを判定する（ステップＳＴ８）。判定結果がＮＯであれば、内外判定制御部５内のバッファに格納されているデータがソフトウェア内外判定部６ａとハードウェア内外判定部６ｂで処理しやすい順序となるように必要に応じて並べ替えを行い（ステップＳＴ１６）、再度、内外判定部６ａ，６ｂの起動順序の判定を行う（ステップＳＴ７）。
【００４９】
例えば、図形描画処理をＹ軸方向に１ラインずつ走査していくような場合、対応するＹ座標上で、交点Ｘ座標が昇順となるように交点座標を格納するのがよい。また、図形描画処理を１６×１６、３２×３２などのタイル領域に分割して行う場合、走査するタイル内に含まれる交点Ｘ座標が昇順となるように処理を行うのが、内外判定処理が単純となり都合がよい。
【００５０】
ピクセル演算制御部７は、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂそれぞれがピクセル演算制御部７の出力を受付可能であるかを判定する（ステップＳＴ１１）。判定結果がＮＯであれば、ピクセル演算制御部７内のバッファに格納されているデータがソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂで処理しやすい順序となるように必要に応じて並べ替えを行い（ステップＳＴ１７）、再度、ピクセル演算部８ａ，８ｂの起動順序の判定を行う（ステップＳＴ７）。
【００５１】
例えば、フレームバッファ１０としてＳＤＲＡＭ等を用いる場合、図形の輪郭部分と図形内部の描画処理を、ソフトウェアピクセル演算部８ａとハードウェアピクセル演算部８ｂにより分割して行い、処理するデータがフレームバッファ１０３上の同一ページ内に配置されるように制御することで、フレームバッファアクセスのレイテンシを隠蔽し、ハードウェアの性能を最大限活用することが可能となる。
【００５２】
このように、実施の形態２では、座標変換制御部１、交点座標算出制御部３、内外判定制御部５およびピクセル演算制御部７が制御対象の処理ブロックが出力データを受付可能であるかを判定し、判定結果がＮＯであれば、バッファに格納されているデータがソフトウェアとハードウェアそれぞれが処理しやすい順序となるように必要に応じて並べ替えを行うようにしたため、無駄な待ち時間を短縮し、システム全体の処理性能を向上させることができる。
【００５３】
なお、上記実施の形態２では、座標変換制御部１、交点座標算出制御部３、内外判定制御部５、およびピクセル演算制御部７が全てバッファ内のデータの並べ替えを行うようにしたが、少なくとも一つの制御部であっても効果が得られる。
【００５４】
以上説明したように、実施の形態２の並列描画装置によれば、座標変換制御部、交点座標算出制御部、内外判定制御部、ピクセル演算制御部のうち、少なくとも一つの制御部は、起動順序の判定を行うソフトウェアによる処理部およびハードウェアによる処理部がビジー状態の場合、ソフトウェアによる処理部およびハードウェアによる処理部の入力データに対し、これら処理部で実行する処理が高速化する順序に並べ替えを行い、ビジー状態が解除されるまで起動順序の判定を待機するようにしたので、システム全体の処理性能を向上させることができる。
【００５５】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【００５６】
また、本発明の並列描画装置は、民生・産業・車載機器向けの制御パネル等に応用することができる。
特に、各種ＦＰＧＡベンダから発表されているＣＰＵとＦＰＧＡが１チップに統合されたシステムにおいて、ＣＰＵ部に本発明の並列描画装置におけるソフトウェアによる描画処理部、ＦＰＧＡ部にハードウェアによる描画処理部を実装するような場合に、ソフトウェア処理とハードウェア処理を動的に切替えることで描画処理の高速化を実現可能である。
一方、ＣＰＵとプログラマブルシェーダを搭載した３Ｄグラフィクス描画エンジンが１チップに統合されたＳＯＣを採用したシステムにおいて、ＣＰＵ部に本発明の並列描画装置におけるソフトウェアによる描画処理部を実装し、ハードウェアによる描画処理部をプログラマブルシェーダを用いて実装するような場合にも、同様にソフトウェア処理とハードウェア処理を動的に切替えることで描画処理の高速化を実現可能である。
【符号の説明】
【００５７】
１  座標変換制御部、３  交点座標算出制御部、５  内外判定制御部、７  ピクセル演算制御部、９  表示制御部、１ａ，３ａ，５ａ，７ａ  第１のバッファ、１ｂ，３ｂ，５ｂ，７ｂ  第２のバッファ、１ｃ，３ｃ，５ｃ，７ｃ  第３のバッファ、２ａ  ソフトウェア座標変換部（Ｓ／Ｗ座標変換部）、２ｂ  ハードウェア座標変換部（Ｈ／Ｗ座標変換部）、４ａ  ソフトウェア交点座標算出部（Ｓ／Ｗ交点座標算出部）、４ｂ  ハードウェア交点座標算出部（Ｈ／Ｗ交点座標算出部）、６ａ  ソフトウェア内外判定部（Ｓ／Ｗ内外判定部）、６ｂ  ハードウェア内外判定部（Ｈ／Ｗ内外判定部）、８ａ  ソフトウェアピクセル演算部（Ｓ／Ｗピクセル演算部）、８ｂ  ハードウェアピクセル演算部（Ｈ／Ｗピクセル演算部）、１００  並列描画装置、１０１  ＣＰＵ、１０２  ＣＰＵバス、１０３  フレームバッファ。
【図１】
2014182594.tif 000003
【図２】
2014182594.tif 000004
【図３】
2014182594.tif 000005