説明

描画コマンド生成装置、描画処理装置、描画コマンド生成方法および描画処理方法

【課題】無駄サイクルの発生を抑えて、高速な描画処理を実現するための描画コマンド生成処理と提供すること。
【解決手段】描画コマンド生成装置100は、 図形の特徴をあらわす属性情報と、当該属性情報を反映した図形を描画するための描画コマンドとが対応付けて書き込み可能なテンプレートが属性の種類に応じて用意されたテンプレート群111に対して、それぞれ任意の属性情報と当該属性情報に対応した描画コマンドを書き込む。そして、比較器112によって描画対象図形系1の入力データ101の属性情報とテンプレート群111の各テンプレートに記録された属性情報とをそれぞれ比較して、一致した属性情報を出力する。コマンド構築器112では、比較器112によって出力された属性情報が記録されたテンプレートから描画コマンドを読み出して、描画対象図形を描画させるための描画コマンドを構築し、出力データ102として出力する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、リアルタイムに描画処理をおこなう描画コマンド生成装置、描画処理装置、描画コマンド生成方法および描画処理方法に関する。
【背景技術】
【0002】
従来より、ゲームコンソールにおける画像描画処理には、リアルタイム性が求められるため、リアルタイムグラフィックシステムが採用されている。また、近年は、カーナビゲーションシステム、デジタルダッシュボードをはじめとする車載表示装置、さらには、産業用表示装置など、リアルタイム性に加えて安全性や信頼性に対する要求が厳しい用途にもリアルタイムグラフィックシステムが採用されることが多い。
【0003】
たとえば、カーナビゲーションシステムにおける描画処理の場合、ゲームコンソールにおける描画処理とは本質的に異なる性質が顕著にあらわれる。具体的に説明すると、カーナビゲーションシステムにおける描画処理では、まず、HDDに格納された地図データベースからデータを読み出し、読み出したデータから描画コマンドを発行する。発行された描画コマンドはグラフィックスLSIに送信される。このとき、地図データという性質上、コンテンツの特性にうまく適応させたデータチューニングや事前最適化をおこなう余地はほとんど無い。したがって、大量の地図データをそのまま順番に処理して描画しなければならない。
【0004】
上述のような条件下において、描画コマンドを1命令ずつCPUからグラフィックスLSIに発行していては、グラフィックスLSIのアイドル時間が大量に発生して、リアルタイムに描画処理を実現するのは極めて困難である。そこで、CPUから1命令ずつ描画コマンドを発行する代わりに、連続する多数の描画コマンドをコマンドリストとして一度に組み上げ、バッチ処理的に一気にグラフィックスLSIに発行する方式が利用されている。このようなコマンドリスト化処理は、地図描画範囲の基点、すなわち自車位置が動的に変化するため、該当する区画の地図を描画する直前あるいは少し前に動的におこなわれる(たとえば、下記特許文献1参照。)。
【0005】
【特許文献1】特開2001−255154号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、コマンドリスト生成処理により、グラフィックスLSIにおける処理時間は短縮されたが、近年のグラフィックスLSIの性能向上に伴い、相対的にCPU上でコマンドリストを組み上げる時間が描画処理全体を通してみた場合のボトルネックとなってきた。
【0007】
たとえば、ユーザが所望する処理を1行のプログラミング言語によって記述したとしても、このプログラミング言語をコンパイルしてアセンブリ言語に変換すると、CPUに要求される処理内容が数行にわたるコードになってしまう。このように、一つの描画コマンドを生成するだけであっても、CPUによってソフトウェア的に生成させると、多くのクロックサイクル数がかかってしまう。したがって、動的にコマンドリストを組み上げる際に、コマンドとコマンドの間に通称“バブル”と呼ばれる無駄サイクルが挿入されてしまい、バッチ化の効果が薄れてしまうという問題があった。
【0008】
この発明は、上述した従来技術による問題点を解消するため、無駄サイクルの発生を抑えて、高速な描画処理を実現することのできる描画コマンド生成装置、描画処理装置、描画コマンド生成方法および描画処理方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、この描画コマンド生成装置および描画コマンド生成方法は、図形の特徴をあらわす属性情報と、当該属性情報を反映した図形を描画するための描画コマンドとが対応付けて記録されたテンプレートが属性の種類に応じて用意されたテンプレート群に描画対象図形の属性情報が入力された場合に、当該描画対象図形の属性情報と、前記テンプレート群の各テンプレートに記録された属性情報とをそれぞれ比較して、一致する属性情報を出力する処理と、前記比較器によって出力された属性情報が記録されたテンプレートから描画コマンドを読み出して、前記描画対象図形を描画させるための描画コマンドとして構築する処理とを備えることを要件とする。
【0010】
この描画コマンド生成装置および描画コマンド生成方法によれば、あらかじめ属性情報と対応する描画コマンドとが記録されたテンプレート群を用意してあり、入力された描画対象図形の属性情報との単純な比較処理によってハードウェア的に描画コマンドが生成される。したがって、CPUによってソフトウェア的に描画コマンドを生成させる場合のようなバブルの発生を最小限に抑えてコマンドリストを生成することができる。
【0011】
また、この描画処理装置および描画処理方法は、上記の描画コマンド生成装置および描画コマンド生成方法によって生成された描画コマンドを用いて図形を描画することを要件とする。
【0012】
この描画処理装置および描画処理方法によれば、上記の描画コマンド生成装置および描画コマンド生成方法によって潤滑に生成された描画コマンドが生成されるため、生成された描画コマンドを利用して描画処理をおこなうことによって高速なリアルタイムグラフィックシステムが実現される。
【発明の効果】
【0013】
この描画コマンド生成装置、描画処理装置、描画コマンド生成方法および描画処理方法によれば、無駄サイクルの発生を抑えて、高速な描画処理を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【0014】
以下に添付図面を参照して、この描画コマンド生成装置、描画処理装置、描画コマンド生成方法および描画処理方法の好適な実施の形態を詳細に説明する。
【0015】
(描画コマンド生成処理の概要)
まず、本実施の形態にかかる描画処理の概要について説明する。図1は、本実施の形態にかかる描画処理の概要を示す説明図である。本実施の形態では、グラフィックスLSIなど従来の描画処理装置120にあらたに描画コマンド生成装置110を追加する。そしてこの描画コマンド生成装置110によって描画コマンドを生成する機能を独立して実行させることによって、CPUにておこなわれていたコマンドリスト化処理を、グラフィックスLSI側にて実行させることができる。
【0016】
なお、このとき単純に組み込み向けCPUコアを描画処理装置120などのグラフィックスLSI上に混載させても、コマンドリスト生成をソフトウェア的に処理するだけでは、ボトルネックが外部CPUからグラフィックスLSI上CPUコアに移るだけであり課題の解決にはつながらない。したがって、描画コマンド生成装置110は、コマンドリスト生成をハードウェア的に実現するものである。
【0017】
従来より、描画処理装置120への入力データとして、頂点座標や色情報といった図形を描画させるため特徴が記述された属性情報が入力される。このような入力データの書式は、描画処理装置を搭載する製品(たとえば、カーナビゲーションシステム)ごとに定型化されているのが一般的である。したがって、本実施の形態では、描画対象図形をあらわす入力データの書式をテンプレート化して描画コマンド生成装置110に保持する。そして、入力された描画対象図形の描画用データと保持されたテンプレートとの比較機構を設けて描画コマンドを生成する。
【0018】
上述の処理を具体的に説明すると、描画コマンド生成装置110は、テンプレート群111と、比較器112と、コマンド構築器113とを含んでいる。テンプレート群111は、複数のテンプレート111−1〜111−Nを有している。個々のテンプレートには、図形の属性情報と、この属性情報の図形を描画するための描画コマンドとが対になって記録されている。
【0019】
したがって、描画コマンド生成装置110が、図形1を描画するための属性情報を含んだ入力データ101を受け付けると、まず、テンプレート群111の個々のテンプレート111−1〜111−Nに記録された属性情報が読み出される。読み出された属性情報は、入力データ101とともに比較器112に入力される。
【0020】
そして、比較器112では、入力データ101に含まれる図形1の属性情報と、テンプレート群111の各テンプレートに記録された属性情報とをそれぞれ比較して、一致する属性情報をコマンド構築器113に出力する。
【0021】
コマンド構築器113では、比較器112によって出力された属性情報が記録されたテンプレート(111−1〜111−Nのいずれか)から記録されている描画コマンドを読み出して、図形1を描画させるための描画コマンドとして出力データ102を出力する。
【0022】
なお、描画コマンド生成装置110には、コマンドリスト化する前の描画対象となる図形の描画用データが直接投入される。したがって、上述したテンプレート群111は、書き換え可能なものとする。これにより、異なる書式の描画用データが入力された場合であっても、柔軟に対応することができる。
【0023】
ここで利用するテンプレート群111には、描画対象となる図形の描画用データが取りうる属性バリエーションと、コマンドリストが取りうる描画コマンドバリエーションと、その両者間の対応関係情報とが格納されている。属性とは、描画対象となる図形の特徴をあらわす情報であり、バリエーションの具体例としては、図形色、頂点数、図形種別、頂点座標がある。
【0024】
描画コマンドのバリエーションは、上述した属性のバリエーションごとに存在する。すなわち、図形色に対応した描画コマンド、また、図形種別に対応した描画コマンドなどそれぞれ用意され、お互いに対応付けられた状態で記録されている。
【0025】
したがって、描画コマンド生成モジュールに描画対象となる図形の描画用データが入力されると、描画用データに記述されている属性と、テンプレートに記録されている各属性とが比較される。このとき、入力された1つの描画用データに対して属性ごとの複数のテンプレートを同時に比較(1対多)してもよいし、テンプレートを順番に比較(1対1)してもよい。
【0026】
具体的に説明すると、1対多の場合、図形1の属性情報が入力されると、この属性情報をテンプレート群111のテンプレート数N個に合わせて分配して並列に出力させる分配器(不図示)を追加してもよい。さらに、比較器112は、テンプレート群111の数と対応した比較器群とする。このような構成にすることによって各比較器112は、分配器から出力された図形1の属性情報と、テンプレート群111のいずれかのテンプレートに記録された属性情報とを同時に比較することができる。このように、1対多で並列に比較すれば、コマンド生成時のバブル発生を最小限に抑えることができる。
【0027】
また、1対1の場合、図形1の属性情報が入力されると、比較器112によって図形1の属性情報と一致する属性情報が出現するまで、テンプレート群111の中のテンプレートに記録された属性情報を順番に比較器112に入力する入力カウンタ(不図示)を追加してもよい。このように、入力カウンタを追加することによって、1対1の比較であっても、一致する属性情報が出現した時点で比較を終了するため、バブルの発生も抑えることができる。
【0028】
なお、描画対象図形の入力データに含まれる各属性バリエーションのうちの任意の属性が、階層的にさらに複数の選択肢をとりうる場合がある。たとえば、最上位階層の属性バリエーションとして、図形種別、図形色、各頂点座標があったとする。そのうち図形種別が変数として振る舞い、後段となる第2階層の選択肢としてその変数が、三角形、多角形、直線といったバリエーションをもつことがある。
【0029】
このとき、前段である最上位階層の属性が、何個の第2階層の選択肢を持つかは任意なので、階層を展開して平坦化するのは得策ではない。そこで、テンプレート群も前段、後段と階層化できるようにしておく。そして実際のコマンド選択肢(たとえば三角形、多角形、直線を特定する描画コマンド)を最も深い階層のテンプレートに記録する。その前段である1階層上のテンプレートには、コマンドを選択肢から選ぶためのコード情報やインデックス情報を記録すればよい。2階層で構成される属性であれば、前段である上位層テンプレートに記録する描画コマンドは、描画対象図形(たとえば図形1)の入力データ中の属性情報(たとえば、図形種別選択変数)に一致する。
【0030】
なお、上述のような階層構造は、3階層以上のテンプレート構造にも拡張可能である。多層に拡張する場合であっても、常に最上位階層テンプレートが、描画対象図形の入力データ中の属性情報に一致した書式となり、そこに出現するインデックスの変数を階層的に参照すれば、最終的な描画コマンドとして構築することができる。
【0031】
このように、一つのテンプレートを基点とした階層テンプレートツリーが、描画対象図形の入力データの一つの属性情報をあらわすことになる。そして図1の入力データ101のように、通常、描画対象図形の入力データには、複数の属性情報が含まれている。したがって、複数の属性情報を持つ描画対象図形データ全体に対応するために、このような階層テンプレートツリーを複数用意し、それぞれの属性情報に割り当てる。
【0032】
また、上述したように、描画対象図形の入力データの書式は、製品型ごと、アプリケーションごとに定型化されているので、描画対象図形データ中の各属性のデータ長などの付帯情報は、事前に確定している。したがって、テンプレート群には、上述のような付帯情報を記録する機構を設けておくことが好ましい。
【0033】
たとえば、描画対象図形の入力データが、図形種別属性が1ワード、図形色がRGB各1ワードずつの計3ワードが含まれた書式であった場合、図形種別属性を保持する階層テンプレートツリーには、図形種別属性のデータ長が1ワードであることを示す付帯情報を記録し、図形色を保持する階層テンプレートツリーには、図形色属性のデータ長が3ワードであることを示す付帯情報を記録する。
【0034】
さらに、読み込んだ描画対象図形の入力データのワード数を記録する描画属性ワード数カウンタを設けてもよい。この描画属性ワード数カウンタのカウント数と、属性データ長の記録を参照することによって、描画対象図形の入力データ中の一つの属性情報の読込みが完了したか否かを判断することができる。
【0035】
上述の判断処理によって、一つの属性の読込みが完了したら、この描画属性ワード数カウンタのカウント数をリセットし、入力データに含まれている他の属性情報の読込みに移行する。このような機構によって、描画対象図形の入力データに含まれる属性情報の中の先頭に記述された属性情報から後続に記述された属性情報への切り替えを自動的におこなうことができる。そして、比較対象となる階層テンプレートツリーの参照先を切り替えるためのトリガイベントを自動的に得ることができる。
【0036】
また、ある一つの描画対象図形の入力データに含まれた属性情報の中から先行して記述された描画属性に関するデータワード(単数複数を問わない)の読込みが完了すると、後続して記述されている属性情報に関するデータワード(単数複数を問わない)の読込みに移行すると同時に、比較参照する階層テンプレートツリーも切り替える。
【0037】
具体的には、ある一つの描画対象図形の入力データに含まれた属性情報の中の、第1番目の属性情報のブロック(ここで、ブロックとは、同じカテゴリの属性情報をあらわすデータ列を意味する)と比較参照すべきテンプレートを、第1番目の階層テンプレートツリーに記録する。そして、第2番目の属性情報のブロックと比較参照すべきテンプレートは、第2番目の階層テンプレートツリーに記録する。以降の階層については、入力データの記述に基づいて、属性情報のブロックの出現順に、対応するインデックス番号を持つ階層テンプレートツリーに記録すればよい。
【0038】
このように、描画対象図形の入力データに記述されている属性情報のブロックの出現順と階層テンプレートツリーのインデックス番号とが対応していることにより、描画属性ワード数カウンタによって属性情報のワード数カウンタを監視するだけで、階層テンプレートツリーの適切な切り替えを自動的におこなうことができる。
【0039】
また、描画対象図形の入力データの書式は、製品型ごと、アプリケーションごとに定型化されているので、一つの描画対象図形の入力データに記述されていると想定される描画属性のブロック数は、事前に確定している。したがって、描画コマンド生成装置110に、さらに、描画属性ブロック数カウンタを設け、実行するアプリケーションの描画対象図形データブロックに特有の描画属性ブロック数を、描画属性ブロック数カウンタ上限値として記録してもよい。
【0040】
この描画属性ブロック数カウンタは、上述の描画属性ワード数カウンタと連携させて利用する。具体的に説明すると、ある描画対象図形の入力データに対する描画コマンド生成処理の開始時に、描画属性ブロック数カウンタと描画属性ワード数カウンタを共にリセットする。そして、以後、入力データに記述された属性情報のブロックの読み込みが終わり、描画属性ワード数カウンタがリセットされると、このリセットイベントをトリガとして、描画属性ブロック数カウンタをインクリメントする。描画属性ブロック数カウンタのカウント数が上限値に達すると、その描画属性ブロックがその図形の最後であることが分かるので、処理が完了したら描画属性ブロック数カウンタと描画属性ワード数カウンタを共にリセットして、次の図形の処理に移行することができる。
【0041】
以上説明したように、本実施の形態では、描画対象図形をあらわす入力データに含まれた属性情報を描画コマンドが記録されたテンプレート群と比較することによって、無駄な処理を発生させることなく、効率的に描画コマンドを生成することができる。また、テンプレートは書き換え可能であるため、多様な入力データに対応した描画コマンドを実現することができる。
【0042】
また、上述したように、テンプレートを階層構造にすることによって、複雑な属性情報を含んだ入力データに対してもバブルの発生を抑えた効率的な描画コマンド生成を提供することができる。さらに、各種カウンタを備えることによって、描画コマンド生成装置110が、複数ブロックの属性情報が含まれた入力データを受け付けた場合や、複数の入力データを受け付けた場合であっても、適切かつ高速な描画コマンド生成を自動的に実行することができる。
【0043】
以下では、上述した描画コマンド生成処理を実現する際の具体的な構成および処理内容について説明する。
【0044】
(描画処理システムのハードウェア構成)
まず、本実施の形態にかかる描画処理システムのハードウェア構成について説明する。図2は、描画処理システムのハードウェア構成を示すブロック図である。図2のように、本実施の形態にかかる描画処理システム200は、CPUコア210と、グラフィックスLSI220と、グラフィックスメモリ230とを含んでいる。
【0045】
CPUコア210は、図形データが含まれた描画対象データ(ここでは一例として地図データとして以下説明する)をユーザや上位システムからの描画指示に応じてグラフィックスLSIに提供する機能部であり、CPU211と、メインメモリ212と、HDD213とを含んでいる。
【0046】
まず、CPU211は、描画処理システムに含まれる各ハードウェアに関する制御を司る。そして、メインメモリ212は、CPU211のワークエリアとして利用される。また、HDD213には、地図データが記録されている。したがって、ユーザや上位システムからの描画指示が入力されるとCPU211は、HDD213に記録されている地図データを読み出す。そして、CPU211は、読み出した地図データを、そのままグラフィックスLSIに出力する。従来の描画処理装置の場合、HDDから読み出された地図データは、そのままCPUコア210によって描画コマンドに変換されていた。
【0047】
グラフィックスLSI220は、CPUコア210から入力された地図データを用いて地図画像を描画する機能部であり、描画コマンド生成モジュール221と、ホストインターフェース222と、描画モジュール223と、表示モジュール224と、メモリコントローラ225とを含んでいる。なお、グラフィックスLSI220では、メイン機能である描画処理に先立って、CPU211で実行されるアプリケーションプログラムから、描画コマンド生成モジュール221内のコマンドテンプレートへの書込み処理がおこなわれる。
【0048】
描画処理をおこなう場合、グラフィックスLSI220では、まず、CPUコア210からホストインターフェース222を経由して地図データを受信する。受信した地図データは、描画コマンド生成モジュール221に入力され、描画コマンドが生成される。なお、生成された描画コマンドは、描画モジュール223に出力して即座に描画してもよいが、動作モードや、描画コマンド変換処理の詰まり具合に応じて、一旦グラフィックスメモリ230に記録して描画処理を待機させてもよい。また、表示モジュール224は、フレームバッファ上の描画済み画像データを読み出し、外部のディスプレイ240に対して表示用のデータを出力する。
【0049】
グラフィックスメモリ230は、グラフィックスLSI220によって生成された描画コマンドを記録する機能部であり、描画コマンドバッファ231と、フレームバッファ232とを含んでいる。グラフィックスLSI220によって生成された描画コマンドは、描画コマンド生成モジュール221から描画モジュール223に出力された後、最終的に画素データとしてメモリコントローラ225を経由してグラフィックスメモリ230のフレームバッファ232に記録される。
【0050】
(入出力データ)
つぎに、描画処理システム200の入出力データについて具体的に説明する。描画処理システム200へのデータ入力は、各カーナビゲーションシステム固有の地図データフォーマットとして書式化されているので、グラフィックスLSIの仕様に依存しない書式になっている。したがって、描画処理システム200の描画コマンド生成モジュール221では、グラフィックスLSI220の仕様に依存しない書式の入力データを、グラフィックスLSI220の仕様に合わせた書式に変換した出力データとして生成する。変換後の出力データは、描画モジュール223などの描画実行機構に対して出力される。なお、以下図3、4にて説明する入出力データは、一例として1ワードは32ビットとする。
【0051】
まず、入力データから説明する。図3は、描画処理システムへの入力データの一例を示すデータ図である。図3のデータ列300は、図形一個分に関する情報をあらわしている。具体的に説明すると、データ列300の先頭からの3ワード:図形色(01〜03)は、色情報をあらわしている。データ列300の場合、01〜03の3ワードは、赤、緑、青の成分ごとに、0から1までの範囲に正規化された浮動小数点値で表現している。このとき、透明度の逆数であるアルファ成分は含まれない。なお、本実施の形態では、図形ごとの入力データの先頭からの3ワードは、常時色情報によって構成されているものとする。
【0052】
さらに、データ列300では、描画対象となる図形をあらわすデータとして、頂点数(04)の1ワードによって、図形の頂点数をあらわしている。なお、頂点数の値自体は後述する出力データ列には明示的にあらわれない。しかしながら、頂点数をカウントして図形データと図形データの境界を認識するために利用される。
【0053】
また、データ列300では、図形の頂点数に続く1ワード(05)によって、図形の種別をあらわすコードを入力する。図3の場合は、直線や三角形ではなく多角形であることをあらわしている。
【0054】
一般的に入力データのコード体系は描画処理システム200に採用されたシステムごとに固有なものである。したがって、入力データを構成する各コードがそれぞれ何を意味するのかを判別するために、入出力変換ルールとして定義する必要がある。本実施の形態では、描画コマンド生成モジュール221の内部に入力データのコードをインデックスとした間接参照機能部を備え、このシステムに対応したコードへの変換を実現している。
【0055】
また、データ列300では、図形の種別コードに続く6ワード(06〜11)によって、図形の頂点座標(x,y)を指定している。この頂点座標は、xとyとをそれぞれ16ビットの整数によって表現し、32ビットのワードにyxの順でパックしている。
【0056】
描画処理システム200の描画コマンド生成モジュール221では、図3のような入力データを描画モジュール223による描画処理用のコマンド群に変換したデータを出力する。図4は、描画処理システムからの出力データの一例を示すデータ図である。図4のデータ列400は、図3のデータ列300が入力された場合の出力データをあらわしている。
【0057】
データ列400のように、入力データ列300(図3参照)に記述されていた図形色データ(図3の01〜02)は、SetColorコマンドに続く1ワード(02)のパックドRGBA形式に変換される。このとき、色成分はそれぞれ0から255までの8ビット自然数に変換され、RGBAの順で結合される。なお、RGBAのうち、Aはアルファ成分であり、入力には含まれないため完全に不透明(255)とみなして追加される。
【0058】
また、データ列400では、入力データ列300の05〜11の記述を変換した図形の形状と頂点座標に関するコマンド(03〜21)が記述されている。具体的には、入力データに記述されていた、yxパックドによる頂点座標において、xとyに分解して浮動少数点に変換し、頂点パラメータの始まりをあらわすVertexHeaderコマンドとセットにして出力している。
【0059】
以上説明したように、描画コマンド生成モジュール221では、入力データがあらわす図形を描画させるための描画コマンドを出力データとして出力する。したがって、以下、描画コマンドを生成する描画コマンド生成モジュールの221の詳細な構成と描画コマンドの生成手順について説明する。
【0060】
(描画コマンド生成モジュールの構成)
つぎに、描画コマンド生成モジュール221の詳細な構成について説明する。図5は、描画コマンド生成モジュールの詳細な構成を示すブロック図である。図5のように、描画コマンド生成モジュール221は、描画属性ワード数カウンタ501と、描画属性ブロック数カウンタ502と、書き換え可能コマンドテンプレート群503と、インデックス群504と、データ対テンプレート比較・解析器505と、一致フラグ論理和506と、描画コマンド構築器507と、データ型変換器508と、複数の合成器(MUX1[1]〜[k]、MUX2〜5)・分配器(DEMUX1、DEV1[1]〜[n])とを含んでいる。
【0061】
なお、図5の描画コマンド生成モジュール221には、描画対象図形の入力データを受け付ける入力ポートP1と、描画コマンド出力用のポートP2との2つのポートを明示しているが、実際には、他のデータ用の入出力ポートも備えている。それら他のポートについては、ポートを利用する処理を説明する際に図示して説明する。また、図5の結線は、実線が実コマンドデータの流れをあらわし、破線が制御データの流れをあらしている。
【0062】
なお、描画コマンド生成モジュール221では、2階層の階層テンプレートツリーに対応した例を示しているが、これは一例であり、3階層以上に対応した構成にしてもよい。また、描画コマンド生成モジュール221では、第1階層を、複数の書き換え可能コマンドテンプレートによるテンプレート群503によって実現している。
【0063】
また、第2階層は、インデックス比較器群と、書き換え可能コマンドインデックスメモリ群と、書き換え可能コマンド格納メモリ群を含むインデックス群504によって実現している。テンプレート群503の中の書き換え可能コマンドテンプレートの詳細な構成については後述する。
【0064】
また、テンプレート群503の中の各書き換え可能コマンドテンプレートに含まれるメモリには、属性情報と属性情報に対応した描画コマンドが書き込まれている。この書き込み処理は、個々のテンプレートの内部のメモリに直接描画コマンドを書き込む手法と、他のメモリに間接参照するための指示フラグを書き込んでおく手法がある。
【0065】
ここで、図3の入力データ列300の例を当てはめると、書き換え可能コマンドインデックスメモリ〔1〕には三角形コードを、書き換え可能コマンドインデックスメモリ〔2〕には多角形コードを、書き換え可能コマンドインデックスメモリ〔3〕には直線コードを、書き込んでおく。
【0066】
これに対応して、書き換え可能コマンド格納メモリ〔1〕には三角形描画コマンドDrawTriangleを、書き換え可能コマンド格納メモリ〔2〕には多角形描画コマンドDrawPolygonを、書き換え可能コマンド格納メモリ〔3〕には直線描画コマンドDrawLineを、それぞれ書き込んでおく。
【0067】
第1階層であるテンプレート群503と第2階層であるインデックス群504との間は、接続を制御するための分配器(DEV1[1]〜[n])と、合成器(MUX1[1]〜[k])とが設けられている。
【0068】
また、描画コマンド生成モジュール221には、描画属性ワード数カウンタ501と描画属性ブロック数カウンタ502とが、少なくとも一つずつ用意されている。この描画属性ワード数カウンタ501と描画属性ブロック数カウンタ502とは、階層的に連携して動作する。
【0069】
具体的には、ある一つの描画対象図形の入力データ中の一つの描画属性の読み込みが完了するたびに、描画属性ワード数カウンタ501がリセットされ、そのリセットに連鎖的に反応して描画属性ブロック数カウンタ502がインクリメントされる。描画属性ワード数カウンタ501がリセットされるトリガとなるワード数は、対応する書き換え可能コマンドテンプレートの詳細構造中にあらかじめ書き込まれている。また、描画属性ブロック数カウンタ502は、自己循環的にリセットされる。そのトリガとなる描画属性ブロック数は、描画属性ブロック数カウンタの計数上限値として、描画属性ブロック数カウンタにあらかじめ書き込まれている。
【0070】
描画属性ブロック数カウンタと書き換え可能コマンドテンプレートとの間には、複数の書き換え可能コマンドテンプレートから一つを選択するための、第1の分配機(DEMUX1)が配置されている。第1のデマルチプレクサは入力データをとらず描画属性ブロック数カウンタのみによって制御され、描画属性ブロック数カウンタのカウント値と同じ番号の書き換え可能コマンドテンプレートを選択するようになっている。
【0071】
描画属性ワード数カウンタ501とテンプレート群503の中の書き換え可能コマンドテンプレートとの間には、現在有効な書き換え可能コマンドテンプレートからの、データ照会終了イベントを受信するための合成器(MUX2)が配置されている。この合成器(MUX2)は、描画属性ブロック数カウンタ502によって制御される。描画属性ブロック数カウンタ502のカウント値と同じ番号の書き換え可能コマンドテンプレートからのイベントを、選択的に描画属性ワード数カウンタ501に通過させる。このイベントをトリガとして、描画属性ワード数カウンタ501がリセットされる。
【0072】
また、描画コマンド生成モジュール221のデータ対テンプレート比較・解析器505と、テンプレート群503との間には、第3の合成器(MUX3)が配置されている。そして、データ対テンプレート比較・解析器505は、第3の合成器を介して描画属性ブロック数カウンタ502によって制御される。また、インデックス群504の中の書き換え可能コマンド格納メモリ群と描画コマンド構築器507との間には、第4の合成器(MUX4)が配置されている。合成器(MUX4)は、このインデックス群504の中のインデックス比較器群からの一致フラグによって制御される。そして、合成器(MUX4)の出力は、さらに第5の合成器(MUX5)によって、データ対テンプレート比較・解析器505との間で選択される。
【0073】
データ対テンプレート比較・解析器505は、描画対象図形の入力データを受け付けると、テンプレート群503の各コマンドテンプレートに保持された情報とを、ワードごとに比較・解析する。解析結果により、入力データのワードが描画コマンドと直接対応するデータであれば、適切な描画コマンドをコマンドテンプレートから第3の合成器(MUX3)を経由して描画コマンド構築器507に送る。
【0074】
なお、描画コマンド構築器507に送られたデータが、描画モジュール223によって利用可能な描画コマンドそのものでなく色値や頂点座標のような数値データであれば、必要に応じてデータ型変換器508によってデータ型の変換を施す。また、入力データに含まれる属性情報のワードが描画コマンドと直接対応するデータでなく間接参照が必要なコード化された情報であれば、コマンドテンプレートは分配器(DEV1[1]〜[n])に参照問い合わせを発生させる。
【0075】
分配器(DEV1[1]〜[n])は、参照問い合わせを合成器(MUX1[1]〜[k])にブロードキャストする。合成器(MUX1[1]〜[k])は、描画属性ブロック数カウンタのカウント値を元に現在有効なコマンドテンプレートからの参照問い合わせを特定して、インデックス群504のインデックス比較器に転送する。インデックス比較器では、コード化情報としての参照問い合わせとコマンドインデックスメモリに記録されたコードとを照合する。そして、インデックス比較器の照合により一致した場合にはインデックスにフラグを立てる。各コマンドインデックスメモリからのフラグは統合され、第4の合成器(MUX4)を制御して、一致フラグの立っているインデックスに対応したコマンド格納メモリから描画コマンドを読み出す。
【0076】
<テンプレート書き込み処理>
上述したように、描画コマンド生成モジュール221のテンプレート群503およびインデックス群504には、実際の描画コマンド生成処理に先立って、属性情報や対応する描画コマンドが書き込まれ記録された状態になっている。図5では、すでに書き込み済みの状態で各機能を説明した。ここでは、コマンドテンプレートに対する事前の書き込み処理の手順について説明する。
【0077】
図6、7は、描画コマンド生成モジュールのテンプレート書き込み手順を示すブロック図である。まず、描画処理システム200の稼動に先立ってテンプレートを書き込む段階では、図6のように、通常稼動時とは逆のデータフローを許容するような構成をとる。
【0078】
図5にて説明したように、描画属性ブロック数カウンタ502は、通常稼動時にはカウントアップとリセット動作が有効である。一方、図6のように、テンプレート書き込み時には、外部CPU211(図2参照)からの入力によりカウント出力値を任意の値に固定できるような機構となっている。このCPU211からの入力により、書き込む対象となるコマンドテンプレートを任意に選択して活性化できるようになる。なお、図6に示したように描画コマンド生成モジュール221には、書き込み処理に関する入出力用のポート3〜6が備えられている。
【0079】
また、合成器(MUX3)は、通常稼動時はコマンドテンプレート配列からの各出力から一つを選択する。一方、図7のように、テンプレート書き込み時には、外部CPU211から入力されたテンプレートデータを、一つの選択されたコマンドテンプレート配列に書き込めるように、双方向のデータフローを許容するような機構となっている。コマンドテンプレート配列の一つを選択するのは、テンプレート書き込み時においても描画属性ブロック数カウンタ502からのカウント出力を利用する。
【0080】
また、間接参照用のコマンドインデックスメモリと、それと対を成すコマンド格納メモリには、テンプレート書き込み時にのみ稼動する専用の分配器(DEMUX2)によって書き込みを制御する。具体的は、分配器(DEMUX2)は、外部CPU221から入力されたインデックス選択信号(1、2、・・・、kを表現可能な数値データ)によって書き込み先を切り替える。
【0081】
また、各コマンドインデックスメモリと、対を成すコマンド格納メモリは、一続きの長いメモリ領域とみなされる。したがって、テンプレート書き込み時には、外部CPU211から入力された、各コマンドインデックスとコマンド本体が繋がった入力データを、インデックス選択信号を増加させて書き込み先を切り替えながら順次書き込んでいく。
【0082】
なお、図6および図7では、コマンドテンプレート配列に書き込むために合成器(MUX3)を双方向に拡張した構成にて説明したが、代わりにコマンドインデックスメモリとコマンド格納メモリへの書き込み説明と同様に、書き込み専用デマルチプレクサを追加しても良い。
【0083】
また、コマンドインデックスメモリとコマンド格納メモリへの書き込み手段として書き込み専用デマルチプレクサを追加したが、コマンドテンプレート配列への書き込み説明と同様に、合成器(MUX4)を双方向に拡張して、コマンドインデックスメモリとコマンド格納メモリを連続メモリ領域とみなして同時に書き込んでも良い。このような場合、合成器(MUX4)には、外部CPU211からインデックス選択信号を入力して書き込み先を切り替えられるように制御ポートを追加し、外部CPU211からコマンドインデックスとコマンド本体が繋がった入力データを受信する経路を接続する。
【0084】
<テンプレートに関する機能>
つぎに、テンプレート群503に関する機能について説明する。図8は、コマンドテンプレートおよびデータ対テンプレート比較・解析器の詳細な構成を示すブロック図である。なお、図8では、4個のコマンドテンプレートと4個のループカウンタ804の上限値セットの例を挙げているが個数は限定されない。また、図8のように、各コマンドテンプレートのAからIまでのフィールドは、連続したメモリ空間として実装できる。たとえば、Aは5ビット、BとCは各1ビット、Dは2ビット、Eは32ビット、Fは6ビット、Gは1ビット、Hは8ビット、Iは8ビットと割り当てれば、長さ64ビットで1ワードを構成する一まとまりのデータとして扱える。
【0085】
詳細に説明すると、図8に示すように、テンプレート群503の各コマンドテンプレートは、AからIまでの要素を保持更新可能なレジスタを持っている。一つのコマンドテンプレートは、一つの描画属性要素の単位に対応している。例えば、図形色、頂点数、図形種別、頂点座標は、それぞれが独立した描画属性であるとみなす。A〜Iまでの意味は下記のようになっている。
【0086】
A:入力ワード数
B:間接参照フラグ
C:繰り返し変数フラグ
D:繰り返し変数識別子
E:コマンド
F:出力コマンドワード数
G:繰り返し対象データフラグ
H:出力データワード
I:データ変換識別子
【0087】
また、図8の例では、コマンドテンプレート[1]は、入力データに含まれる属性情報のうちの図形色をコマンドに変換する。したがって、Aの入力ワード数は、赤、緑、青それぞれの計「3」ワードである。コードによる間接参照は不要であるため、Bの間接参照フラグは「FALSE」と記録されている。また、後述する繰返し変数ではないため、Cの繰返し変数フラグも「FALSE」である。Dの繰返し変数識別子は、繰返し変数が複数あった場合に中から一つを識別するための目印であるため、図形色には無関係である。したがって、ここでは、対象外であることを「負数(−1)」で表現している。
【0088】
Eには出力すべきコマンドを記録しておく。ここでは「SetColor」コマンドである。Fは出力コマンドワード数である。「SetColor」コマンドを1ワード出力するので、Fには「1」を記録しておく。後述する繰返し対象データではないので、Gの繰返し対象データフラグは「FALSE」である。Hは出力データワード数である。「SetColor」コマンドに続くパックドRGBAデータを1ワード出力するので、Hには「1」を記録しておく。Iはデータ変換識別子であり、データ変換が必要な場合に、データ型変換器中の変換ルールを選択するためのコードを記録しておく(ここでは、「Converter1」)。
【0089】
以上説明したA〜Iの設定を総合するとコマンドテンプレート[1]では、図形色の例では、RGB各色独立の浮動少数点値を、各色8ビット整数をまとめたパックドRGBA形式に変換する。また、Aの入力ワード数により図形色に関与する入力ワード数は3と判明するので、リードカウンタ801の上限値を3にセットする。Fの出力コマンドワード数が1なので、リーダ802経由で3ワード分入力データを読み込む前に、Eに記録されているSetColorコマンドをまず出力する。続いて、3ワード分の入力データをデータ型変換器508に送り、変換後の1ワードのデータを出力する。3ワード分の入力データの処理が終わると、図3のワード数カウンタがリセットされてブロック数カウンタがインクリメントされ、次のコマンドテンプレートに備えることとなる。
【0090】
また、コマンドテンプレート[2]では、入力データに含まれる属性情報のうちの図形の頂点数を扱う。Aの入力ワード数は「1」ワードである。コードによる間接参照は不要であるため、Bの間接参照フラグは「FALSE」である。この頂点数と同じ回数だけ、後から入力される頂点座標を処理するので、このデータを繰返し変数と呼び、Cの繰返し変数フラグを「TRUE」にしている。Dの繰返し変数識別子は、繰返し変数が今回は1種類しかないため、最初のインデックスとして「1」を与えている。
【0091】
また、コマンドテンプレート[2]では、出力すべきコマンドは無いので、Eには対象外を示す「(−1)」を記録しておく。このデータはカウンタをコントロールするだけで、描画コマンドとしての実態を持たないので、FとHは共に「0」である。繰返し対象データそのものではなく、繰返し対象データの繰返し回数を指示する値なので、Gの繰返し対象データフラグは「FALSE」である。出力データが無いので、Iには対象外を示す「(−1)」を記録しておく。
【0092】
したがって、入力データの1ワード分入力データを読み込み、Cのフラグをトリガとした経路制御と、Dのインデックスによる配列選択により、ループカウンタ上限値レジスタ803の1番目の要素に、頂点数がセットされる。続いて図5の描画属性ワード数カウンタ502がリセットされてブロック数カウンタがインクリメントされ、次のコマンドテンプレートに備えることとなる。
【0093】
コマンドテンプレート[3]は、入力データに含まれる属性情報のうちの図形種別をコマンドに変換する。種別とは、たとえば、直線、三角形、多角形などのカテゴリから一つを選択することを意味する。したがって、種別ごとに、描画コマンドが異なる。入力データ上で様々な図形種別を指定でき、図形毎に変化しうるので、このワードは変数として入力される。さらに、入力データ上の図形種別識別コードはグラフィックスLSI220の仕様に依存しない書式なので、コードからグラフィックスLSI220の図形種別コマンドを導かなければならない。
【0094】
上述の問題に対応するため、描画コマンド生成モジュール221では、間接参照の手法を利用する。したがって、コマンドテンプレート[3]は、Aの入力ワード数は「1」ワードである。そして、コードによる間接参照をおこなうため、Bの間接参照フラグは「TRUE」である。また、Cの繰返し変数フラグは「FALSE」、Dの繰返し変数識別子は対象外「(−1)」、出力すべきコマンドは直接Eに記録されていないので対象外「(−1)」となる。さらに、Fは間接参照の結果1ワードの図形種別コマンドが導かれるので「1」、Gの繰返し対象データフラグは「FALSE」である。Hは付随データ無しのため「0」、そしてIは対象外「(−1)」となる。
【0095】
したがって、1ワード分入力データを読み込み、Bのフラグをトリガとした経路制御によって、入力データは、そのままインデックス群504のインデックス比較器に送られる。また、間接参照による図形種別コマンドは、図4にてデータ列400に示したような構成となる。続いて、図3のワード数カウンタがリセットされて描画属性ブロック数カウンタ502がインクリメントされ、次のコマンドテンプレートに備えることとなる。
【0096】
コマンドテンプレート[4]は、入力データに含まれる属性情報のうちの頂点座標の書式を変換して、頂点数分だけデータを出力する。頂点数は、コマンドテンプレート[2]を利用して抽出され、ループカウンタ上限値レジスタ803の1番目の要素に記録された値である。
【0097】
コマンドテンプレート[4]では、Aの入力ワード数は図形毎に変化するので規定できないため、対象外「(−1)」とする。その代わりに頂点数を基準にして処理の終了を判定する。B、Cのフラグは共に「FALSE」となる。Dの繰返し変数識別子は、対象であるから、ループカウンタ上限値レジスタ803のインデックス番号である「1」をセットする。出力すべきコマンドは、この例では頂点ごとにVertexHeaderコマンドを付与することを想定しているのでEに設定する。頂点ごとにVertexHeaderのような頂点識別用コマンドを必要としないコマンド体系の場合は、Eは「−1」となる。
【0098】
Fは、VertexHeaderコマンド1ワードの分で「1」となり、Gの繰返し対象データフラグは「TRUE」であるため、ループカウンタ804を起動する。Hはxy座標を1ワードずつに分解するため「2」となり、そのためのデータ型変換ルールへの参照コードをIにセットする(ここでは、「Converter2」)。
【0099】
したがって、Eの「VertexHeader」コマンドを出力した後、1ワード分入力データを読み込み、データ型変換により2ワードの浮動少数値にして出力する。その後は、VertexHeaderコマンド出力から2ワードの浮動少数値出力までの工程を、コマンドテンプレート[2]の処理でループカウンタ上限値レジスタ803に設定された回数に基づいて繰り返す。続いて図3のワード数カウンタがリセットされてブロック数カウンタがインクリメントされ、次のコマンドテンプレートに備えることとなる。
【0100】
なお、図8の描画コマンド構築器507は、コマンドテンプレートのEフィールドが「−1」以外の場合は、セレクタSEL1を経由して、Hフィールドから描画コマンドが出力される。また、コマンドテンプレートのEフィールドが「−1」の場合、セレクタSEL1を経由して、数値データが出力される。この数値データは、データ型変換されるかそのまま出力される。その選択はコマンドテンプレートのIフィールドが「−1」か、どうかに応じて、セレクタSEL2とデマルチプレクサDMを制御することによっておこなわれる。このときの出力データ長は、コマンドテンプレートのHフィールドに応じて、出力制御器が適宜統制する。
【0101】
<描画コマンド生成手順>
つぎに、描画コマンドの生成手順について説明する。図9は、描画コマンド生成の手順を示すフローチャートである。図9のフローチャートでは、描画対象となる図形の描画用データの入力を描画コマンド列に変換して出力するための手順をあらわしている。図9のフローチャートにおいて、まず、ブロック数カウンタとワード数カウンタを共にリセットし(ステップS901)、ブロック数のカウンタの計数値に応じたコマンドテンプレートを選択する(ステップS902)。
【0102】
つぎに、ステップS902によって選択されたテンプレートのテンプレート要素と入力データとを照合する(ステップS903)。ステップS902にて説明したように、テンプレートの選択は、ブロック数カウンタの値に依存する。したがって、コマンドテンプレートの並び順が入力データの属性と一致させる必要がある。そこで、入力データに含まれる図形色、頂点数、図形種別、頂点座標などの各属性に対応したテンプレートを、入力データの書式を参照して記述順に並べておく。
【0103】
ステップS903においてテンプレート要素と入力データとが照合されると、照合結果に応じて出力コマンド列を生成する(ステップS904)。ここで生成された出力コマンド列が描画コマンドを構築するためのデータ列となる。なお、上述したステップS903およびステップS904の処理内容については詳しく後述する。
【0104】
出力コマンド列を生成すると、ブロック数カウンタの値をインクリメントし、ワード数カウンタの値をリセットする(ステップS905)。このステップS905によってブロック数カウンタがインクリメントされるため、次のテンプレートが選ばれる。そして、全属性の設定が終了したか否かを判断する(ステップS906)。ここで、全属性の設定が終了していなければ(ステップS906:No)、ステップS902の処理に戻り、つぎの属性のコマンドテンプレートを選択する。
【0105】
ステップS906において、全属性の設定が終了すると(ステップS906:Yes)、最後に、地図データの全図形を処理したか否かを判断し(ステップS907)、全図形の処理が終了していなければ(ステップS907:No)、ステップS901の処理に戻り、次の図形に関しての処理をおこなう。ステップS907において、全図形の処理が終了したと判断された場合(ステップS907:Yes)、そのまま一連の処理を終了する。
【0106】
つぎに、ステップS903およびステップS904の処理内容について詳しく説明する。図10−1は、ステップS903の参照処理の詳細な手順を示すフローチャートである。図10−1のフローチャートでは、ステップS902の処理が終了すると、選択したテンプレートに含まれているテンプレート要素をそれぞれ抽出する(ステップS1001)。そして、抽出したテンプレート要素を参照してリードカウンタ801(図8参照)の上限値を設定する(ステップS1002)。
【0107】
そして、さらに抽出したテンプレート要素から間接参照フラグを参照して間接参照か否かを判断する(ステップS1003)。この判断に応じて、間接参照であれば(ステップS1003:Yes)、図10−2のステップS1004の処理に移行し、間接参照でなければ(ステップS1003:No)、図10−2のステップS1008の処理に移行する。
【0108】
図10−2は、ステップS904の生成処理の詳細な手順を示すフローチャートである。図10−2のフローチャートでは、ステップS1003の判断結果において、間接参照フラグが「TRUE」となっており間接参照であれば(ステップS1003:Yes)、つぎに、間接参照処理に移行する。
【0109】
まず、入力データのワードを読み込み(ステップS1004)、読み込んだワードコマンドインデックス比較器配列にブロードキャストし、コマンドインデックスを検索する(ステップS1005)。そして検索によって一致したインデックスのコマンドを取得する(ステップS1006)。そして取得したコマンドを出力して(ステップS1007)、ステップS905の処理に移行する。
【0110】
なお、図11は、間接参照による描画コマンド生成例を示すブロック図である。ステップS1003によって間接参照と判断された場合には、図11のように、間接参照用の経路が活性化される。具体的に説明すると、図11において、実コマンドデータをあらわす実線と、制御データをあらわす破線が太くなっている経路が活性化されていることになる。
【0111】
フローチャートの説明に戻り、間接参照フラグが「FALSE」となり、間接参照ではない場合には(ステップS1003:No)、つぎに、繰返し対象データフラグをチェックして繰返し変数か否かを判断する(ステップS1008)。ここで、繰返し対象データフラグが「TRUE」となっており、繰返し変数であると判断された場合には(ステップS1008:Yes)、入力データからループカウンタ上限値配列要素を選択する(ステップS1009)。そして、対応するワードを読み込み(ステップS1010)、読み込んだ値に応じてループカウンタの上限値を設定し(ステップS1011)、ステップS1017の処理に移行する。
【0112】
一方、ステップS1008において、間接参照フラグと繰返し変数フラグが共に「FALSE」となっていた場合には(ステップS1008:No)、さらに、繰返し対象か否かを判断する(ステップS1012)。こここで、繰返し対象であると判断された場合には(ステップS1012:Yes)、テンプレートの状態に応じてコマンドを出力する(ステップS1013)。テンプレートの状態とは、たとえば、「VertexHeader」など出力する必要のあるコマンドであれば出力させることを意味する。
【0113】
そして、1頂点分のワードを読み込み(ステップS1014)、データ型を変換し(ステップS1015)、変換したデータを出力する(ステップS1016)。その後、繰返し処理が終了したか否かを判断し(ステップS1017)、繰返し処理が終了するまでステップS1013からの処理を繰り返す(ステップS1017:Noのループ)。そして、繰返し処理が終了すると(ステップS1017:Yes)、ステップS905の処理に移行する。
【0114】
また、ステップS1012において、繰返し対象でないと判断された場合には(ステップS1012:No)、読み込んだワードに対応するコマンドを出力し(ステップS1018)、さらに、数値データ有りか否かを判断する(ステップS1019)。ここで、数値データがなければ(ステップS1019:No)、そのままステップS905の処理に移行する。
【0115】
一方、ステップS1019において、数値データ有りと判断された場合(ステップS1019:Yes)、ワードを読み込み(ステップS1020)、データ型の変換をおこなう(ステップS1021)。そして、変換後のデータを出力して(ステップS1022)、ステップS905の処理に移行する。
【0116】
ここで、図12は、直接コマンドによる描画コマンド生成例を示すブロック図である。上述のように、間接参照フラグが「FALSE」となっていた場合には、直接コマンドを読み出して出力するため、図12のように、直接コマンド出力用の経路が活性化される。具体的に説明すると、図12において、実コマンドデータをあらわす実線と、制御データをあらわす破線が太くなっている経路が活性化されていことになる。
【0117】
さらに、図13は、カウンタリセット処理を示すブロック図である。図9のフローチャートのステップS905にて説明したように、入力データに含まれた属性情報の中の一つの属性についての描画コマンドを生成する処理が終了すると、各カウンタがリセットされる。したがって、図13のように、各カウンタのカウンタ値をリセットするためのリセット用の経路が活性化される。具体的に説明すると、図13において、実コマンドデータをあらわす実線と、制御データをあらわす破線が太くなっている経路が活性化されていることになる。
【0118】
(ナビゲーションシステムへの適用)
ここでは、上述した描画コマンド生成モジュール221を一般的なナビゲーションシステムへ適用させた場合の構成例を挙げる。図14は、ナビゲーションシステムへの適用例を示すブロック図である。図14のように、カーナビゲーション装置1400には、図2にて説明した本実施の形態にかかる描画処理システム200を構成する各ハードウェア(210、220および230)が搭載されている。そして、IOコントローラ1401によって、カーナビゲーション装置1400の独自構成である、GPSユニット1402と、ジャイロセンサ1403と、光学ディスクドライブユニット1404と、描画処理システム200に相当する各ハードウェアとを接続している。したがって、カーナビゲーション装置1400描画処理システム200を構成する各ハードウェア(210、220および230)によってリアルタイム性の高い図画像の描画処理を実現することができる。
【0119】
以上説明したように、本実施の形態の描画処理システム200では、描画対象図形の入力データに含まれた属性情報を描画コマンドが記録されたテンプレート群と比較することによって、無駄な処理を発生させることなく、効率的に描画コマンドを生成することができる。また、テンプレートは書き換え可能であるため、多様な入力データに対応した描画コマンドを実現することができる。
【0120】
さらに、各種カウンタを備えることによって、描画コマンド生成モジュール221が、複数ブロックの属性情報が含まれた入力データを受け付けた場合や、複数の入力データを受け付けた場合であっても、適切かつ高速な描画コマンド生成を自動的に実行することができる。したがって、描画コマンド生成モジュール221を搭載したグラフィックスLSI220を適用することによって、多様なグラフィックスシステムにおいても無駄なサイクルの発生を抑えて、高速な描画処理を実現することができる。
【0121】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0122】
(付記1)図形の特徴をあらわす属性情報と、当該属性情報を反映した図形を描画するための描画コマンドとが対応付けて記録されたテンプレートが属性の種類に応じて用意されたテンプレート群と、
描画対象図形の属性情報が入力された場合に、当該描画対象図形の属性情報と、前記テンプレート群の各テンプレートに記録された属性情報とをそれぞれ比較して、一致する属性情報を出力する比較器と、
前記比較器によって出力された属性情報が記録されたテンプレートから描画コマンドを読み出して、前記描画対象図形を描画させるための描画コマンドとして構築するコマンド構築器と、
を備えることを特徴とする描画コマンド生成装置。
【0123】
(付記2)前記描画対象図形の属性情報が入力された場合に、当該属性情報を前記テンプレート群に含まれるテンプレート数に合わせて分配して並列に出力させる分配器を備え、
前記比較器は、前記テンプレート群の数と対応した比較器群であり、各比較器は、前記分配器から出力された前記描画対象図形の属性情報と、前記テンプレート群のいずれかのテンプレートに記録された属性情報とを比較することを特徴とする付記1に記載の描画コマンド生成装置。
【0124】
(付記3)前記比較器によって当該描画対象図形の属性情報と一致する属性情報が出現するまで、前記テンプレート群の中のテンプレートに記録された属性情報を順番に前記比較器に入力する入力カウンタを備えることを特徴とする付記1に記載の描画コマンド生成装置。
【0125】
(付記4)前記テンプレート群(以下、「前段のテンプレート群」という)の各テンプレートに記録された属性情報と異なる属性情報が記録された後段のテンプレート群と、
前記描画対象図形の複数の属性情報が複数入力された場合に、前記比較器(以下、「前段の比較器」という)によって前記前段のテンプレート群の中のテンプレートに、前記描画対象図形の複数の属性情報の中の属性情報と一致する属性情報が記録されていると判断されると、前記前段の比較器によって一致すると判断された属性情報以外の他の属性情報と、前記後段のテンプレート群の各テンプレートに記録された属性情報とをそれぞれ比較する後段の比較器と、を備え、
前記コマンド構築器は、前記前段の比較器によって前記描画対象図形の属性情報と一致する属性情報が記録されていると判断されたテンプレートと、前記後段の比較器によって前記描画対象図形の属性情報と一致する属性情報が記録されていると判断されたテンプレートとから描画コマンドを読み出して、前記描画対象図形を描画させるための描画コマンドとして構築することを特徴とする付記1〜3のいずれか一つに記載の描画コマンド生成装置。
【0126】
(付記5)前記テンプレートは、前記属性情報と、当該属性情報に対応付けて記録された描画コマンドとは描画対象図形に応じて書き換え可能であることを特徴とする付記1〜4のいずれか一つに記載の描画コマンド生成装置。
【0127】
(付記6)前記コマンド構築器によって構築された前記描画対象図形を描画させるための描画コマンドを他の形式のデータ型の描画コマンドに変換するデータ型変換器を備えることを特徴とする付記1〜5のいずれか一つに記載の描画コマンド生成装置。
【0128】
(付記7)付記1〜6のいずれか一つに記載の描画コマンド生成装置によって生成された描画コマンドを用いて図形を描画する描画処理装置。
【0129】
(付記8)図形の特徴をあらわす属性情報と、当該属性情報を反映した図形を描画するための描画コマンドとが対応付けて書き込み可能なテンプレートが属性の種類に応じて用意されたテンプレート群に対して、それぞれ任意の属性情報と当該属性情報に対応した描画コマンドを書き込む書込工程と、
前記書込工程によって任意の属性情報と、当該属性情報に対応した描画コマンドが書き込まれたテンプレート群に、描画対象図形の属性情報が入力された場合に、当該描画対象図形の属性情報と、前記テンプレート群の各テンプレートに記録された属性情報とをそれぞれ比較して、一致した属性情報を出力する比較工程と、
前記比較器によって出力された属性情報が記録されたテンプレートから描画コマンドを読み出して、前記描画対象図形を描画させるための描画コマンドとして構築するコマンド構築工程と、
を含むことを特徴とする描画コマンド生成方法。
【0130】
(付記9)前記テンプレート群に対して、それぞれ任意の属性情報と当該属性情報に対応した描画コマンドをあらたに書き込む更新工程とを含むことを特徴とする付記8に記載の描画コマンド生成方法。
【0131】
(付記10)前記コマンド構築工程によって構築された前記描画対象図形を描画させるための描画コマンドを他の形式のデータ型の描画コマンドに変換するデータ型変換工程を含むことを特徴とする付記8または9に記載の描画コマンド生成方法。
【0132】
(付記11)付記8〜10のいずれか一つに記載の描画コマンド生成方法によって生成された描画コマンドを用いて図形を描画する描画処理方法。
【図面の簡単な説明】
【0133】
【図1】本実施の形態にかかる描画処理の概要を示す説明図である。
【図2】描画処理システムのハードウェア構成を示すブロック図である。
【図3】描画処理システムへの入力データの一例を示すデータ図である。
【図4】描画処理システムからの出力データの一例を示すデータ図である。
【図5】描画コマンド生成モジュールの詳細な構成を示すブロック図である。
【図6】描画コマンド生成モジュールのテンプレート書き込み手順(その1)を示すブロック図である。
【図7】描画コマンド生成モジュールのテンプレート書き込み手順(その2)を示すブロック図である。
【図8】コマンドテンプレートおよびデータ対テンプレート比較・解析器の詳細な構成を示すブロック図である。
【図9】描画コマンド生成の手順を示すフローチャートである。
【図10−1】ステップS903の照合処理の詳細な手順を示すフローチャートである。
【図10−2】ステップS904の生成処理の詳細な手順を示すフローチャートである。
【図11】間接参照による描画コマンド生成例を示すブロック図である。
【図12】直接コマンドによる描画コマンド生成例を示すブロック図である。
【図13】カウンタリセット処理を示すブロック図である。
【図14】ナビゲーションシステムへの適用例を示すブロック図である。
【符号の説明】
【0134】
101 入力データ
102 出力データ
110 描画コマンド生成装置
111 テンプレート群
112 比較器
113 コマンド構築器
120 描画処理装置
200 描画処理システム
210 CPUコア
211 CPU
212 メインメモリ
213 HDD
220 グラフィックスLSI
221 描画コマンド生成モジュール
222 ホストインターフェース
223 描画モジュール
224 表示モジュール
225 メモリコントローラ
230 グラフィックメモリ
231 描画コマンドバッファ
232 フレームバッファ

【特許請求の範囲】
【請求項1】
図形の特徴をあらわす属性情報と、当該属性情報を反映した図形を描画するための描画コマンドとが対応付けて記録されたテンプレートが属性の種類に応じて用意されたテンプレート群と、
描画対象図形の属性情報が入力された場合に、当該描画対象図形の属性情報と、前記テンプレート群の各テンプレートに記録された属性情報とをそれぞれ比較して、一致する属性情報を出力する比較器と、
前記比較器によって出力された属性情報が記録されたテンプレートから描画コマンドを読み出して、前記描画対象図形を描画させるための描画コマンドとして構築するコマンド構築器と、
を備えることを特徴とする描画コマンド生成装置。
【請求項2】
前記描画対象図形の属性情報が入力された場合に、当該属性情報を前記テンプレート群に含まれるテンプレート数に合わせて分配して並列に出力させる分配器を備え、
前記比較器は、前記テンプレート群の数と対応した比較器群であり、各比較器は、前記分配器から出力された前記描画対象図形の属性情報と、前記テンプレート群のいずれかのテンプレートに記録された属性情報とを比較することを特徴とする請求項1に記載の描画コマンド生成装置。
【請求項3】
前記比較器によって当該描画対象図形の属性情報と一致する属性情報が出現するまで、前記テンプレート群の中のテンプレートに記録された属性情報を順番に前記比較器に入力する入力カウンタを備えることを特徴とする請求項1に記載の描画コマンド生成装置。
【請求項4】
前記テンプレート群(以下、「前段のテンプレート群」という)の各テンプレートに記録された属性情報と異なる属性情報が記録された後段のテンプレート群と、
前記描画対象図形の複数の属性情報が複数入力された場合に、前記比較器(以下、「前段の比較器」という)によって前記前段のテンプレート群の中のテンプレートに、前記描画対象図形の複数の属性情報の中の属性情報と一致する属性情報が記録されていると判断されると、前記前段の比較器によって一致すると判断された属性情報以外の他の属性情報と、前記後段のテンプレート群の各テンプレートに記録された属性情報とをそれぞれ比較する後段の比較器と、を備え、
前記コマンド構築器は、前記前段の比較器によって前記描画対象図形の属性情報と一致する属性情報が記録されていると判断されたテンプレートと、前記後段の比較器によって前記描画対象図形の属性情報と一致する属性情報が記録されていると判断されたテンプレートとから描画コマンドを読み出して、前記描画対象図形を描画させるための描画コマンドとして構築することを特徴とする請求項1〜3のいずれか一つに記載の描画コマンド生成装置。
【請求項5】
前記テンプレートは、前記属性情報と、当該属性情報に対応付けて記録された描画コマンドとは描画対象図形に応じて書き換え可能であることを特徴とする請求項1〜4のいずれか一つに記載の描画コマンド生成装置。

【図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−1】
image rotate

【図10−2】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2009−245156(P2009−245156A)
【公開日】平成21年10月22日(2009.10.22)
【国際特許分類】
【出願番号】特願2008−90927(P2008−90927)
【出願日】平成20年3月31日(2008.3.31)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】