(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022179415
(43)【公開日】2022-12-02
(54)【発明の名称】グラフィックレンダリングのシステム、方法および装置のためのラインベースのレンダリング
(51)【国際特許分類】
G06T 15/00 20110101AFI20221125BHJP
【FI】
G06T15/00 501
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022081369
(22)【出願日】2022-05-18
(31)【優先権主張番号】17/324,879
(32)【優先日】2021-05-19
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】507364997
【氏名又は名称】サイプレス セミコンダクター コーポレーション
【氏名又は名称原語表記】Cypress Semiconductor Corporation
【住所又は居所原語表記】198 Champion Court, San Jose, CA 95134, United States of America
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ペーター キアスト
(72)【発明者】
【氏名】アンドレアス トルノ
(72)【発明者】
【氏名】ローラント リヒター
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080CA03
5B080CA04
5B080FA08
(57)【要約】 (修正有)
【課題】内部メモリなどのリソースを効率的に使用するグラフィックスレンダリングを実施する。
【解決手段】方法は、このグラフィックデータに含まれる複数のデータオブジェクトにおいて実施すべき複数のピクセルマッピングオペレーションを識別するコマンドを受信するステップと、複数のレンダリングパラメータを決定し、この複数のレンダリングパラメータは、複数の部分へのグラフィックデータの分割を識別し、さらに複数の部分各々についてピクセルマッピングオペレーションを識別するステップと、複数のレンダリングパラメータとコマンドとに少なくとも部分的に基づき、グラフィックデータの複数の部分各々に含まれる各データオブジェクトについて、処理オペレーションを識別する複数のサブコマンドを生成するステップと、複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分について処理オペレーションを実施するステップと、を含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
グラフィックデータに関連し、前記グラフィックデータに含まれる複数のデータオブジェクトにおいて実施すべき複数のピクセルマッピングオペレーションを識別するコマンドを受信するステップと、
1つまたは複数のプロセッサを用いて、複数のレンダリングパラメータを決定するステップであって、前記複数のレンダリングパラメータは、複数の部分への前記グラフィックデータの分割を識別し、さらに前記複数の部分各々について少なくとも1つのピクセルマッピングオペレーションを識別するステップと、
前記1つまたは複数のプロセッサを用いて、前記複数のレンダリングパラメータと前記コマンドとに少なくとも部分的に基づき、前記グラフィックデータの前記複数の部分各々に含まれる各データオブジェクトについて、処理オペレーションを識別する複数のサブコマンドを生成するステップと、
前記1つまたは複数のプロセッサを用いて、前記複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分について少なくとも1つの処理オペレーションを実施するステップと、
を含む方法。
【請求項2】
前記グラフィックデータは、1つのイメージを含み、前記複数のデータオブジェクトは、複数のイメージレイヤを含む、
請求項1記載の方法。
【請求項3】
前記複数の部分は、前記イメージの複数のスライスを含む、
請求項2記載の方法。
【請求項4】
前記複数のスライスの各スライスは、予め定められた数のスキャンラインに基づき定義される、
請求項3記載の方法。
【請求項5】
前記方法は、前記1つまたは複数のプロセッサを用いて、前記複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分についてさらなる処理オペレーションを実施するステップをさらに含む、
請求項1記載の方法。
【請求項6】
前記少なくとも1つの処理オペレーションと前記さらなる処理オペレーションとは、並列に実施される、
請求項5記載の方法。
【請求項7】
前記少なくとも1つの処理オペレーションと前記さらなる処理オペレーションとは、それぞれ異なるデータオブジェクトについて実施される、
請求項6記載の方法。
【請求項8】
前記少なくとも1つの処理オペレーションは、向き変更、パースペクティブ変更およびサイズ変更から成るグループから選択されたピクセル変換オペレーションである、
請求項1記載の方法。
【請求項9】
前記グラフィックデータは、1つのビデオフレームを含み、前記複数のデータオブジェクトは、1つのビデオ内の複数のオブジェクトを含む、
請求項1記載の方法。
【請求項10】
コントローラとグラフィック処理ユニットとを備えた装置であって、
前記コントローラは、1つまたは複数のプロセッサを含み、
前記1つまたは複数のプロセッサは、
グラフィックデータに関連し、前記グラフィックデータに含まれる複数のデータオブジェクトにおいて実施すべき複数のピクセルマッピングオペレーションを識別するコマンドを受信し、
複数のレンダリングパラメータを決定し、前記複数のレンダリングパラメータは、複数の部分への前記グラフィックデータの分割を識別し、さらに前記複数の部分各々について少なくとも1つのピクセルマッピングオペレーションを識別し、
前記複数のレンダリングパラメータと前記コマンドとに少なくとも部分的に基づき、前記グラフィックデータの前記複数の部分各々に含まれる各データオブジェクトについて、処理オペレーションを識別する複数のサブコマンドを生成する、
ように構成されており、
前記グラフィック処理ユニットは、1つまたは複数のプロセッサを含み、前記1つまたは複数のプロセッサは、前記複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分について少なくとも1つの処理オペレーションを実施するように構成されている、
装置。
【請求項11】
前記グラフィックデータは、1つのイメージを含み、前記複数のデータオブジェクトは、複数のイメージレイヤを含み、前記複数の部分は、前記イメージの複数のスライスを含む、
請求項10記載の装置。
【請求項12】
前記グラフィック処理ユニットは、
前記複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分についてさらなる処理オペレーションを実施するようにさらに構成されている、
請求項10記載の装置。
【請求項13】
前記少なくとも1つの処理オペレーションと前記さらなる処理オペレーションとは、並列に実施される、
請求項12記載の装置。
【請求項14】
前記少なくとも1つの処理オペレーションは、向き変更、パースペクティブ変更およびサイズ変更から成るグループから選択されたピクセル変換オペレーションである、
請求項10記載の装置。
【請求項15】
ホストプロセッサおよびメモリと、コントローラと、グラフィック処理ユニットと、ディスプレイデバイスと、を含むシステムであって、
前記ホストプロセッサおよびメモリは、ソフトウェアアプリケーションおよびグラフィックドライバを実行するように構成されており、
前記コントローラは、1つまたは複数のプロセッサを含み、前記1つまたは複数のプロセッサは、
グラフィックデータに含まれる複数のデータオブジェクトにおいて実施すべき複数のピクセルマッピングオペレーションを識別するコマンドを、前記グラフィックドライバから受信し、
複数のレンダリングパラメータを決定し、前記複数のレンダリングパラメータは、複数の部分への前記グラフィックデータの分割を識別し、さらに前記複数の部分各々について少なくとも1つのピクセルマッピングオペレーションを識別し、
前記複数のレンダリングパラメータと前記コマンドとに少なくとも部分的に基づき、前記グラフィックデータの前記複数の部分各々に含まれる各データオブジェクトについて、処理オペレーションを識別する複数のサブコマンドを生成する、
ように構成されており、
前記グラフィック処理ユニットは、1つまたは複数のプロセッサを含み、前記1つまたは複数のプロセッサは、前記複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分について少なくとも1つの処理オペレーションを実施するように構成されており、
前記ディスプレイデバイスは、前記少なくとも1つの処理オペレーションの結果を表示するように構成されている、
システム。
【請求項16】
前記グラフィックデータは、1つのイメージを含み、前記複数のデータオブジェクトは、複数のイメージレイヤを含み、前記複数の部分は、前記イメージの複数のスライスを含む、
請求項15記載のシステム。
【請求項17】
前記グラフィック処理ユニットは、
前記複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分についてさらなる処理オペレーションを実施するようにさらに構成されている、
請求項15記載のシステム。
【請求項18】
受信した前記コマンドは、前記グラフィックドライバによって変換されていた変換済みのコマンドである、
請求項15記載のシステム。
【請求項19】
前記グラフィック処理ユニットは、
前記複数のサブコマンドのうちの少なくとも一部に基づき、少なくとも1つの部分についてさらなる処理オペレーションを実施するようにさらに構成されており、
前記少なくとも1つの処理オペレーションと前記さらなる処理オペレーションとは、並列に実施される、
請求項15記載のシステム。
【請求項20】
前記少なくとも1つの処理オペレーションは、向き変更、パースペクティブ変更およびサイズ変更から成るグループから選択されたピクセル変換オペレーションである、
請求項15記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概略的にはグラフィックレンダリングに関し、より具体的には、かかるグラフィックレンダリングを実施するために使用される技術に関する。
【背景技術】
【0002】
コンピューティングデバイスおよびシステムは、1つまたは複数のソフトウェアアプリケーションを実行し、かかるソフトウェアアプリケーションに関連する情報をディスプレイデバイス上に表示するように構成された、ハードウェアおよびソフトウェアを含むことができる。例えば、コンピュータシステムは、ソフトウェアアプリケーションを実行するために使用されるホストプロセッサおよびハードドライブを含むことができ、ソフトウェアアプリケーションに関連するデータをコンピュータシステムのモニタに表示することができる。ディスプレイデバイスに表示するために、かかるグラフィックデータをコンピュータシステムの1つまたは複数の構成要素によってレンダリングすることができる。しかしながら従来のシステムでは、かかるグラフィックデータをレンダリングして表示する際に、内部メモリなどのリソースを効率的に使用するそれら従来のシステムの能力に依然として制限がある。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態に従って構成された、ラインベースのレンダリングのためのシステムに関する1つの実施例を示す図である。
【
図2】いくつかの実施形態に従って構成された、ラインベースのレンダリングのためのシステムに関する別の実施例を示す図である。
【
図3】いくつかの実施形態に従って実装された、ラインベースのレンダリングのための方法に関する1つの実施例のフローチャートを示す図である。
【
図4】いくつかの実施形態に従って実装された、ラインベースのレンダリングのための方法に関する別の実施例のフローチャートを示す図である。
【
図5】いくつかの実施形態に従って実装された、ラインベースのレンダリングのための方法に関するさらに別の実施例のフローチャートを示す図である。
【
図6】いくつかの実施形態に従いラインベースのレンダリングで処理されるイメージに関する1つの実施例を示す図である。
【
図7】いくつかの実施形態に従って構成された処理装置の構成要素に関する1つの実施例を示す図である。
【発明を実施するための形態】
【0004】
以下の説明では、提示されたコンセプトを完全に理解できるようにする目的で、多数の特定の詳細が示されている。提示されたこれらのコンセプトを、これら特定の詳細の一部またはすべてを用いずに実践してもよい。他の事例として、周知のプロセスオペレーションについては、説明するコンセプトを不必要に曖昧にしないようにするために、詳細には説明しなかった。いくつかのコンセプトについては、特定の実施例と結び付けて説明することになるが、それらの実施例が限定を意図したものではないことを理解されたい。
【0005】
1つまたは複数のターゲットディスプレイデバイスにグラフィックデータをレンダリングおよび表示するように、コンピュータシステムを構成することができる。かかるグラフィックデータのレンダリングおよび表示には、グラフィックデータ自体において1つまたは複数の変換オペレーションを実施することを伴う場合もある。例えばレンダリングプロセスは、イメージのリサイズまたはリスケーリングを含むことができる。さまざまな実施形態によれば、1つのイメージまたは1つのフレームのうち、オブジェクトまたはイメージレイヤなどのような特定の要素に関連する処理オペレーションは、ピクセルマッピングオペレーションであり、これをブリットオペレーションと称する場合もある。よって、ピクセルマッピングオペレーションを数値演算とすることができ、この演算によれば、1つまたは複数の入力ピクセルが、指定されたマッピング関数に従って1つまたは複数の出力ピクセルにマッピングされる。ピクセルマッピングオペレーションは、同じ数値演算を用いて複数の出力ピクセルを処理することができる。
【0006】
ピクセルマッピングオペレーション各々は、ビデオランダムアクセスメモリ(VRAM)などのメモリならびにソースバッファからの読み出しオペレーションを必要とし、さらにVRAMへの書き戻しオペレーションも必要とするため、従来技術には依然として制限がある。したがって、例えば複数のイメージレイヤを含む1つのイメージまたはフレームは、レイヤ各々が1つのピクセルマッピングオペレーションで処理されるときに該当する可能性があるように、そのイメージまたはフレームに関連する複数のピクセルマッピングオペレーションを有する可能性がある。よって、単一のイメージまたはフレームに対する複数のピクセルマッピングオペレーションを処理するには、複数のピクセルマッピングオペレーションのために何度もVRAMアクセスしなければならない。
【0007】
本明細書で開示する実施形態によれば、処理オペレーションの並列化および「ラインごとの」レンダリングが提供され、これによりVRAMへのアクセスが低減され、レンダリングシステムの全体的な効率およびレイテンシが改善される。より具体的には、本明細書で開示する実施形態によれば、ピクセルマッピングコマンドを複数のサブコマンドに分割することができ、次いでそれらのサブコマンドを使用して、グラフィック処理装置のパイプラインを設定することができる。このようにして、イメージまたはフレームのレンダリングを種々の部分またはラインの範囲に分割することができ、各部分に含まれる各ピクセルマッピングオペレーションをそれぞれ異なるパイプラインによって並列に実施することができる。このようにして、中間結果のためのVRAMへの余分なアクセスが不要となり、かかる処理オペレーションに関連する帯域幅のオーバーヘッドが低減される。
【0008】
図1には、いくつかの実施形態に従って構成された、ラインベースのレンダリングのためのシステムに関する1つの実施例が示されている。後でさらに詳しく述べるように、システム100のようなシステムを、最終的にディスプレイデバイスに表示されるグラフィックデータに対して、ラインベースのレンダリングを実施するように構成することができる。より具体的には、グラフィック情報の複数のレイヤを含むことができるグラフィックデータをレンダリングすることができ、ピクセルオペレーションなどの処理オペレーションを、ラインごとに実施することができる。後でさらに詳しく述べるように、かかるラインごとのレンダリングによって、システム100内のメモリアクセスおよび内部帯域幅使用量を低減する手法で、かかる処理オペレーションを実施できるようになり、それによってシステム100の全体的な効率が高められる。
【0009】
さまざまな実施形態によれば、システム100は、後でさらに詳しく述べるように、最終的にディスプレイデバイスに表示されるデータを供給するように構成されたソース101を含む。より具体的には、例えば、ある特定のソフトウェアアプリケーションのために生成されたユーザインタフェースに含めることができるよう、ディスプレイデバイスに表示されるべきグラフィックデータを生成するように構成された、1つまたは複数のソフトウェアアプリケーションを実行するように、ソース101を構成することができる。かかるソフトウェアアプリケーションおよびグラフィックデータに関するさらなる詳細については、
図2を参照しながら後でさらに詳しく述べる。
【0010】
さまざまな実施形態によれば、ソース101は、メモリ102などのメモリデバイスに通信可能に結合されている。さまざまな実施形態によれば、メモリ102は、ランダムアクセスメモリ(RAM)のようなメモリデバイスである。1つの実施例によれば、メモリ102は、ビデオランダムアクセスメモリ(VRAM)デバイスである。しかもメモリ102をソース101と通信可能に結合することができ、さらにメモリ102は、ソース101からのグラフィックデータを格納するように構成された1つまたは複数のバッファを含むことができる。よって、グラフィックデータに含まれるイメージまたはフレームを格納するために、バッファを使用することができる。
【0011】
システム100はさらに処理装置104を含み、この処理装置104を、メモリ102と通信可能に結合することができ、メモリ102に格納されたイメージおよび/またはフレームにおいて、1つまたは複数の処理オペレーションを実施するように構成することができる。さまざまな実施形態によれば、かかる処理オペレーションは、1つまたは複数のピクセルマッピングオペレーションを含むことができる。より具体的には、処理オペレーションは、イメージ回転、向き変更およびパースペクティブ補正などのような再サンプリングオペレーションを含むことができる。さまざまな実施形態によれば、かかる処理オペレーションは、ピクセルの任意の適切な変換またはピクセルの再配列を含むことができる。しかも処理オペレーションは、複数の入力ピクセルを1つの出力ピクセルにマッピングすることを含むことができる。かくして複数の入力ピクセルの混合に基づき、1つの出力ピクセルを生成することができる。処理オペレーションに関するさらなる詳細については、後でさらに詳しく説明する。
【0012】
さまざまな実施形態によれば、処理装置104は、かかる処理オペレーションをグラフィックデータにおいてラインごとをベースとして実施するように構成されている。したがって、1つのフレームまたはイメージをレンダリングするために最初に識別される処理オペレーションは、シーケンシャルなオブジェクトごとのオペレーションとして実行されるのではなく、その代わりに、かかるオブジェクトごとのオペレーションは、スキャンライン順に実行可能なサブオペレーションに分割される。このようにして、レンダリングプロセスの基礎となる処理オペレーションを、指定された数のラインについて専用のスタティックランダムアクセスメモリ(SRAM)バッファを使用して一度に実行することができ、これにより、中間結果を格納し取り出すためにメモリ102に関連する内部トラフィック帯域幅を使用する必要がなくなる。さらに、かかるラインごとの処理オペレーションの実装によって、結果として生じるフレームの何らかの記憶を必要とすることなく、「オンザフライ」でビデオストリームのためにコンテンツを生成できるようになる。
【0013】
システム100はこれに加え、レンダリング処理オペレーションの結果を表示するように構成されたディスプレイ106を含む。このためディスプレイ106を、液晶ディスプレイ(LCD)画面などのディスプレイデバイスとすることができる。後でさらに詳しく述べるように、ディスプレイ106は、レンダリングされたグラフィックデータを受信し、かかるレンダリングされたグラフィックデータを表示するように構成された、さまざまな構成要素を含むことができる。
【0014】
図2には、いくつかの実施形態に従って構成された、ラインベースのレンダリングのためのシステムに関する別の実施例が示されている。先に述べたのと同様に、システム200などのシステムは、最終的にディスプレイデバイスにおいて示されるグラフィックデータに対して、ラインベースのレンダリングを実施するように構成することができる。さまざまな実施形態によれば、ラインごとのレンダリングの基礎となる処理オペレーションによって、システム200内のメモリアクセスおよび内部帯域幅使用量を低減することができる。しかも後でさらに詳しく述べるように、かかる処理オペレーションの並列化によって、システム200の全体的な効率をさらに高めることができる。
【0015】
さまざまな実施形態によれば、システム200は、後でさらに詳しく述べるように、ディスプレイデバイスに表示するためのグラフィックデータを生成するように構成されたソース202を含む。先に述べたのと同様に、かかるグラフィックデータを生成するように構成された1つまたは複数のソフトウェアアプリケーションを実行するように、ソース202を構成することができる。より具体的には、ソース202は、ビデオデータを生成するソフトウェアアプリケーションを実行するように構成されたアプリケーションソフトウェア204を含むことができる。例えばソフトウェアアプリケーションは、ディスプレイに表示すべきユーザインタフェース画面を生成することができる。別の実施例によれば、ソフトウェアアプリケーションは、ディスプレイに表示すべきビデオデータを生成することができる。さまざまな実施形態によれば、グラフィックデータは、レンダリングされるべき1つまたは複数のグラフィックオブジェクトを各々含むことができる1つまたは複数のイメージまたはフレームを含むことができる。後でさらに詳しく述べるように、かかるオブジェクトを、このイメージ内またはフレーム内の種々のレイヤとして表すことができる。したがって、イメージまたはフレーム各々の中にあるレイヤおよびオブジェクトのかかる定義を、イメージ自体またはフレーム自体の中にある1つまたは複数のデータ値に基づき定義することができ、ソース202から送信されるグラフィックデータに含めることができる。さまざまな実施形態によれば、ソース202はこれに加え、システム200の構成要素同士のハードウェア互換性を管理するように構成されたグラフィックドライバ206を含む。このためグラフィックドライバ206は、送信されたグラフィックデータがターゲットディスプレイデバイスによってサポートされることを保証することができる。
【0016】
さまざまな実施形態によれば、システム200はさらに、VRAM208などのメモリデバイスを含む。したがって
図2に示されているように、VRAM208をソース202に通信可能に結合することができ、さらにVRAM208は、ソース202から送信されたグラフィックデータを受信するように構成されている。さまざまな実施形態によれば、VRAM208は、ソース202からのグラフィックデータを格納するように構成された、バッファ220などのような1つまたは複数のバッファを含む。このためバッファ220を、ソース202から受信したフレームおよびイメージのための一時的なストレージロケーションを提供するように構成することができる。さまざまな実施形態によれば、VRAM208はさらに、かかるフレームおよびイメージに関連するコマンドを格納するように構成されたストレージロケーションを含む。かくして、フレームおよびイメージに含まれるオブジェクトに関連するレンダリングオペレーションを、かかるストレージロケーションに格納し、その後、レンダリングに利用するときに取り出すことができる。
【0017】
システム200はこれに加え処理装置210を含み、この処理装置210を、VRAM208と通信可能に結合することができ、VRAM208に格納されたイメージおよび/またはフレームにおいて、1つまたは複数の処理オペレーションを実施するように構成することができる。先に述べたのと同様に、かかる処理オペレーションは、イメージ回転、向き変更およびパースペクティブ補正などのような再サンプリングオペレーションを含むことができる。しかもかかる処理オペレーションは、ピクセルの任意の適切な変換またはピクセルの再配列を含むことができる。
【0018】
さまざまな実施形態によれば、処理装置210はグラフィック処理ユニット(GPU)として実装されており、上述の処理オペレーションを実施可能なさまざまな構成要素を含むように構成されている。より具体的には、処理装置210は、VRAM208内のメモリロケーションに関連するフェッチオペレーションおよびストアオペレーションを扱うように構成可能な構成要素を含むことができる。例えば処理装置210は、VRAM208のストレージロケーションからグラフィックデータを取り出すように構成されているフェッチモジュール212を含むことができる。したがってフェッチモジュール212を、指定された数のラインおよび特定のピクセルマッピングオペレーションのために、グラフィックデータを識別して取り出すように構成することができる。より具体的には、指定された数のラインを、初期設定オペレーション中に、あるいはユーザまたは管理者などのエンティティによって、予め決定しておくことができる。指定された数のラインを、レンダリングされる1つのイメージまたはフレームの垂直軸に沿ったピクセルの数に対応するラインの数とすることができる。したがってこのイメージまたはフレームを、ラインの数によって各々定義された数のセクションまたはスライスにセグメント化することができる。スライスの定義に関するさらなる詳細については、
図6を参照しながら後でさらに詳しく述べる。
【0019】
したがってフェッチモジュール212を、レンダリングされる1つのイメージまたはフレームのうち、1つのスライスなどのような特定の部分に関するグラフィックデータをフェッチするように構成することができ、処理ユニット214などのような他の構成要素を、かかるグラフィックデータにおいて1つまたは複数の処理オペレーションを実施するように構成することができる。先に述べたように、処理ユニット214によって実施される処理オペレーションを、向き変更およびパースペクティブ変更などのようなピクセル変換オペレーションとすることができる。このようにして処理ユニット214は、フェッチモジュール212によって供給されたグラフィックデータにおいて、1つまたは複数のピクセル対ピクセルマッピングオペレーションを実施することができる。後でさらに詳しく述べるように、処理ユニット214によって実施される変換オペレーションを、上述のVRAM208に格納されているコマンドに少なくとも部分的に基づき、コマンドシーケンサ240などのシステム構成要素によって識別しておくことができる。
【0020】
さまざまな実施形態によれば、処理装置210はこれに加え、フェッチモジュール222およびフェッチモジュール228、ならびに処理ユニット224および処理ユニット230を含み、これらのユニットを、レンダリングされる1つのイメージまたは1つのフレームのうちの特定の部分に対し、かかる部分に関連する特定の処理オペレーションについて、フェッチオペレーションおよび処理オペレーションを実施するように、構成することができる。より具体的には、レンダリングされている1つのイメージまたは1つのフレームのうちの特定の部分における種々の識別されたピクセルマッピングオペレーションのために、それぞれ異なる処理パイプラインを形成するように、複数のフェッチモジュールおよびオペレータモジュールを実装することができる。1つの実施例によれば、1つのイメージの特定のスライスは、そのスライスに含まれる3つのオブジェクトに関連する3つのピクセルマッピングコマンドを含むことができる。フェッチモジュール212および処理ユニット214は、スライス内の第1のオブジェクトに対する処理オペレーションを扱うことができる。フェッチモジュール222および処理ユニット224は、スライス内の第2のオブジェクトに対する処理オペレーションを扱うことができる。さらにフェッチモジュール228および処理ユニット230は、スライス内の第3のオブジェクトに対する処理オペレーションを扱うことができる。このようにして、レンダリングされている1つのイメージまたはフレーム内の種々のオブジェクトに関連する種々のピクセルマッピングオペレーションを、サブオペレーションに分割することができ、かかるサブオペレーションを、処理装置210の並列パイプラインによって並列に、ラインごとまたはスライスごとをベースとして扱うことができる。
【0021】
処理装置210はこれに加え、上述のオペレータモジュールの結果を格納するように構成された内部レンダリングバッファ216を含む。かくして内部レンダリングバッファ216は、結果を組み合わせて、目下処理されている部分またはスライスのレンダリングされた結果を表すデータオブジェクトにすることができる。先に述べたように、内部レンダリングバッファ216を、処理装置210に含まれるSRAMモジュール内に含めることができる。したがって、内部レンダリングバッファ216を使用することにより、VRAM208への余分なアクセスが不要になる。
【0022】
さまざまな実施形態によれば、処理装置210はこれに加えて、レンダリングされたグラフィックデータをVRAM208のストレージロケーションに格納するように構成されたインタフェース218を含む。したがってレンダリングされたラインの結果を、内部レンダリングバッファ216から取り出すことができ、VRAM208のストレージロケーションに格納することができる。このようにして、レンダリングされたラインの結果が格納され、中間結果のために余分なVRAMアクセスが利用されない。さまざまな実施形態によれば、インタフェース218は、ディスプレイ234の構成要素など、1つまたは複数の他のシステム構成要素に通信可能に結合されている。したがってさまざまな実施形態によれば、インタフェース218は、ディスプレイ234およびディスプレイコントローラ236と直接的な通信を提供するように構成されている。このようにしたならば、インタフェース218は、VRAM208のバッファへの書き込みを行わず、その代わりに、ディスプレイコントローラ236など、ディスプレイ234の1つまたは複数の構成要素に直接、データを送信することになる。
【0023】
図2に示されているように、システム200はこれに加えコントローラ242を含み、このコントローラ242は、コマンドシーケンサ240およびアービタ238などのようなさまざまな構成要素を含むことができる。さまざまな実施形態によれば、コマンドシーケンサ240は、VRAM208からコマンドデータを取り出し、上述のフェッチモジュールおよびオペレータモジュールのためのコマンドを生成するように構成されている。より具体的には、コマンドシーケンサ240は、ピクセルマッピングオペレーションに対応するピクセルマッピングコマンドを、レンダリングされる1つのイメージまたはフレームの部分またはスライス各々に固有のサブオペレーションにセグメント化するように構成されている。先に述べたように、ピクセルマッピングコマンドを、レンダリングされている1つのイメージ内またはフレーム内に含まれるオブジェクトに関連付けることができる。さまざまな実施形態によれば、コマンドシーケンサ240を、指定された数の部分ならびに指定された数のオブジェクトに基づき複数のコマンドを生成するように、構成することができる。このようにして、イメージの部分またはスライスごとに、および部分またはスライス各々の中にあるオブジェクトごとに、フェッチモジュールおよびオペレータモジュールのためにコマンドを生成することができる。
【0024】
システム200はさらに、フェッチモジュールおよびオペレータモジュールの利用を管理するように構成されたアービタ238を含む。より具体的には、アービタ238は、レンダリングされる1つのイメージまたはフレームに含まれるオブジェクトの数に基づき、利用されるべきフェッチモジュールおよびオペレータモジュールの数を識別することができる。次いでアービタ238は、特定のフェッチモジュールおよびオペレータモジュールを、これらのオブジェクトに関連付けられたオペレーションに割り当てることができる。例えば、レンダリングされる1つのイメージ内に3つのオブジェクトが含まれる場合、フェッチモジュール212および処理ユニット214を第1のオブジェクトに割り当てることができ、フェッチモジュール222および処理ユニット224を第2のオブジェクトに割り当てることができ、さらにフェッチモジュール228および処理ユニット230を第3のオブジェクトに割り当てることができる。このようにしてアービタ238は、処理装置210のリソースを処理オペレーションに動的に割り当てることができる。
【0025】
システム200はさらに、レンダリング処理オペレーションの結果を表示するように構成されたディスプレイ234を含む。先に述べたように、ディスプレイ234を、液晶ディスプレイ(LCD)画面などのディスプレイデバイスとすることができる。さまざまな実施形態によれば、ディスプレイ234は、レンダリングされたグラフィックデータを受信し、かかるレンダリングされたグラフィックデータを表示するように構成された、さまざまな構成要素を含む。例えばディスプレイ234は、最終的にディスプレイ234のディスプレイデバイスに表示されるビデオ信号を生成するように構成されたディスプレイコントローラ236を含むことができる。かくしてディスプレイコントローラ236は、受信されレンダリングされたグラフィックデータに少なくとも部分的に基づき、ディスプレイデバイスのオペレーションを管理することができる。
【0026】
図3には、いくつかの実施形態に従って実装された、ラインベースのレンダリングのための方法に関する1つの実施例のフローチャートが示されている。後でさらに詳しく述べるように、方法300のような方法を、最終的にディスプレイデバイスに表示されるグラフィックデータに対して、ラインベースのレンダリングを実施するように構成することができる。先に述べたのと同様に、かかるラインごとのレンダリングによって、メモリアクセスおよび内部帯域幅使用量を低減し、かつフレームバッファなどのメモリリソースの使用も低減する手法で、かかる処理オペレーションを実施することができる。
【0027】
方法300はオペレーション302を含むことができ、このオペレーション中、1つまたは複数のコマンドを受信することができる。さまざまな実施形態によれば、ソフトウェアアプリケーションなど、グラフィックデータのソースの1つまたは複数の構成要素から、このコマンドを受信することができる。先に述べたように、ソフトウェアアプリケーションは、ディスプレイデバイスに表示するためのデータを生成することができ、また、表示すべきかかるディスプレイデータに対応するリクエストまたはコマンドを生成することもできる。このコマンドは、ピクセル情報を含むことができるグラフィックデータ自体を含むことができ、イメージレイヤ情報またはオブジェクト情報などのような1つまたは複数の他のグラフィックパラメータ、ならびにサイズ情報および解像度情報といった任意の他の適切な情報も含むことができる。
【0028】
方法300はオペレーション304に進むことができ、このオペレーション中、複数のサブコマンドを生成することができる。先に述べたのと同様に、コントローラの1つまたは複数の構成要素は、受信したコマンドに基づき複数のサブコマンドを生成することができる。より具体的には、レンダリングされるイメージ内またはフレーム内の部分またはスライスの数に基づき、ならびにレンダリングされているイメージ内またはフレーム内に含まれるオブジェクトおよび/またはイメージレイヤの数に基づき、それぞれ異なるコマンドセットを生成することができる。先に述べたのと同様に、部分の数を指定された数とすることができ、または1つまたは複数のシステムパラメータに基づき、例えば内部レンダリングバッファのサイズ、および内部レンダリングバッファ内に格納可能なスキャンラインの数に基づき、決定することができる。しかもオブジェクトおよび/またはイメージレイヤの数を、コマンドに含まれソフトウェアアプリケーションによって供給されるデータ値に基づき決定することができる。
【0029】
方法300はオペレーションステップ306に進むことができ、このオペレーション中、複数のサブコマンドのうちの一部を、グラフィック処理オペレーションを実施するように構成された処理装置に供給することができる。かくして、これらのサブコマンドを処理装置に供給することができ、これらのサブコマンドを使用して、レンダリングされるべきグラフィックデータをフェッチするいくつかのフェッチオペレーションを実施することができる。さまざまな実施形態によれば、フェッチオペレーションを、レンダリングされている1つのイメージのうちの特定の部分またはスライスに対するものとすることができる。したがって、目下アクティブなスライスまたは選択されたスライスに関するグラフィックデータのみをフェッチすることができる。
【0030】
方法300はオペレーション308に進むことができ、このオペレーション中、複数のサブコマンドのうちの一部に少なくとも部分的に基づき、1つまたは複数の処理オペレーションを実施することができる。かくして処理装置のパイプラインは、処理オペレーションを並列に、サブコマンドで指定されたオペレーションに従って実施することができる。例えば特定のタイプの変換を、サブコマンドにおいて指定しておくことができ、オペレーション308中に実施することができる。完了したならば、結果を処理装置のメモリに格納することができ、メモリ内のストレージロケーションに書き込むこともできる。自明のとおり、レンダリングされるグラフィックデータのすべての部分またはスライスを処理するために、処理オペレーションを何度も繰り返して実施することができる。
【0031】
図4には、いくつかの実施形態に従って実装された、ラインベースのレンダリングのための方法に関する別の実施例のフローチャートが示されている。後でさらに詳しく述べるように、方法400のような方法を、最終的にディスプレイデバイスに表示されるグラフィックデータに対して、ラインベースのレンダリングを実施するように構成することができる。やはり後でさらに詳しく述べるように、かかるラインベースのレンダリングを、グラフィック処理ユニットおよび関連する構成要素を含むシステムという状況において実施することができる。
【0032】
方法400はオペレーション402を含むことができ、このオペレーション中、コマンドを受信することができる。先に述べたのと同様に、ソフトウェアアプリケーションなど、グラフィックデータのソースの1つまたは複数の構成要素から、このコマンドを受信することができる。より具体的には、ソフトウェアアプリケーションは、ディスプレイデバイスに表示するためのデータを生成することができる。かかるデータは、ユーザインタフェース、イメージ、ビデオのフレーム、または他の任意の適切な視覚情報もしくはデータオブジェクトを表すことができる。ソフトウェアアプリケーションは、かかるグラフィックデータに関連するコマンドを生成することができ、このコマンドは、さまざまなレンダリングパラメータおよびディスプレイパラメータを含むことができる。例えばこのコマンドは、グラフィックデータ用のターゲットディスプレイ、グラフィックデータ用のターゲットアプリケーション、ならびにレンダリングされる1つのイメージまたはフレームのサイズおよび解像度など、グラフィックデータ自体の1つまたは複数の態様を識別することができる。先に述べたように、このコマンドは、ピクセル情報を含むことができるグラフィックデータ自体を含むこともでき、また、空間情報または構造情報などのようなさらなるグラフィックパラメータを含むこともできる。より具体的には、このコマンドは、イメージレイヤまたはオブジェクト情報を識別するさらなるグラフィックパラメータを含むことができる。
【0033】
方法400はオペレーション404に進むことができ、このオペレーション中、受け取ったコマンドをネイティブコマンドに変換することができる。さまざまな実施形態によれば、上述のソフトウェアアプリケーションなど、グラフィックデータのソースの1つまたは複数の構成要素から、このコマンドを受信することができる。さまざまな実施形態によれば、このコマンドを、ソフトウェアアプリケーションによって使用されるフォーマットから、後でさらに詳しく述べるような処理装置など、1つまたは複数のシステム構成要素の基礎となるハードウェアに固有のフォーマットへ変換することができる。したがってかかる変換を、グラフィックドライバによって実施することができ、変換されたコマンドを、システムの1つまたは複数の構成要素に送信することができる。例えば変換されたコマンドを、VRAMモジュールなどのようなストレージデバイスのストレージロケーションに格納することができる。
【0034】
方法400はオペレーション406に進むことができ、このオペレーション中、複数のレンダリングパラメータを決定することができる。さまざまな実施形態によれば、レンダリングパラメータを、特に、コマンドをどのようにサブコマンドに分割すべきであるのかを識別する1つまたは複数のパラメータとすることができる。より具体的には、レンダリングパラメータは、1つのコマンドをどのように複数のサブコマンドに分割すべきであるのかを定義することができる。後でさらに詳しく述べるように、かかるサブコマンドを、グラフィック処理ユニットの特定のパイプラインに固有の、また、グラフィックデータのうちの特定の部分またはスライスに固有の、コマンドセットとすることができる。
【0035】
さまざまな実施形態によれば、レンダリングパラメータは、実施されることになるグラフィックデータの部分またはスライスの数、および各部分におけるオブジェクトまたはイメージレイヤの数などのパラメータを含むことができる。1つの実施例によれば、部分またはスライスの数を指定された数とすることができ、または1つまたは複数のシステムパラメータに基づき、例えば内部レンダリングバッファのサイズ、および内部レンダリングバッファ内に格納可能なスキャンラインの数に基づき、決定することができる。例えば1つのイメージを、指定された数のピクセルの高さとすることができる。コントローラなどのシステム構成要素は、この数のピクセルを指定された数で除算して、使用すべき数の部分またはスライスを取得することができる。先に述べたように、指定された数を最初に設定しておくことができ、またはシステムパラメータに基づき決定することができる。1つの実施例によれば、1つのスライスを8つのラインの高さとすることができる。さまざまな実施形態によれば、各部分に含まれるオブジェクトまたはイメージレイヤの数を、グラフィックデータ自体に基づき決定することができる。このようにして、コントローラのようなシステム構成要素は、グラフィックデータに問い合わせて、レンダリングパラメータを生成することができる。
【0036】
方法400はオペレーション408に進むことができ、このオペレーション中、複数のレンダリングパラメータに少なくとも部分的に基づき、複数のサブコマンドを生成することができる。先に述べたのと同様に、コントローラの1つまたは複数の構成要素は、受信したコマンドに基づき複数のサブコマンドを生成することができる。より具体的には、レンダリングされるイメージ内またはフレーム内の部分またはスライスの数に基づき、ならびにレンダリングされているイメージ内またはフレーム内に含まれるオブジェクトおよび/またはイメージレイヤの数に基づき、それぞれ異なるコマンドセットを生成することができる。したがってコントローラは識別された部分各々について、その部分に含まれるオブジェクトおよび/またはイメージレイヤごとに、1つまたは複数の処理オペレーションを識別するコマンドセットを生成することができる。1つの実施例によれば、コントローラは、1つのスライスに含まれるオブジェクトの数を識別することができ、そのスライスに対するサブコマンドセットを生成することができ、その際にこのセットは、各オブジェクトの各部分について1つのサブコマンドを含む。しかも先に述べたように、オブジェクトおよび/またはイメージレイヤの数を、ソフトウェアアプリケーションによって最初に識別しておくことができるような、受信したコマンドに含まれるデータ値に基づき、決定することができる。
【0037】
方法400はオペレーション410に進むことができ、このオペレーション中、複数のサブコマンドのうちの一部をグラフィック処理ユニットに供給することができる。したがって、オペレーション408中に生成されたサブコマンドのうちの一部を、先に述べたようにグラフィック処理ユニットに供給することができ、これらのサブコマンドを使用して、レンダリングすべきグラフィックデータをフェッチする複数のフェッチオペレーションを実施することができる。さまざまな実施形態によれば、フェッチオペレーションを、レンダリングされている1つのイメージのうちの特定の部分またはスライスに対するものとすることができる。したがって、グラフィック処理ユニットの利用されるパイプライン各々に、1つのオブジェクトまたはイメージレイヤを割り当てておくことができる。オペレーション410中、パイプライン各々によって、その個々のオブジェクトまたはイメージレイヤに対し1つのフェッチオペレーションを実施することができる。
【0038】
方法400はオペレーション412に進むことができ、このオペレーション中、複数のサブコマンドのうちの一部に少なくとも部分的に基づき、1つまたは複数の処理オペレーションを実施することができる。かくしてグラフィック処理のパイプラインは、処理オペレーションを並列に、サブコマンドにおいて指定されたオペレーションに従って実施することができる。例えば各パイプラインは、そのフェッチされたデータにおいて、サブコマンドにより指定された処理オペレーションに基づき、1つの処理オペレーションを実施することができる。先に述べたように、かかる処理オペレーションを、1つの入力ピクセルが1つの出力ピクセルにマッピングされる数値演算を含むピクセル変換とすることができる。
【0039】
方法400はオペレーション414に進むことができ、このオペレーション中、レンダリングされたグラフィックデータをメモリに格納することができる。したがって、1つのスライスについて処理オペレーションが完了すると、処理されたデータを、グラフィック処理ユニットに含まれている内部レンダリングバッファに格納することができる。しかも、その部分またはスライスに含まれるイメージの処理されたラインを、別のストレージデバイスの別のストレージロケーションに送信することができる。より具体的には、処理されたデータを、VRAMモジュールに送信することができ、さらにVRAMモジュールのラインバッファに格納することができる。
【0040】
方法400はオペレーション416に進むことができ、このオペレーション中、レンダリングされたグラフィックデータをターゲットディスプレイに送信することができる。かくして処理されたデータを、VRAMモジュールからターゲットディスプレイに伝送することができる。1つの実施例によれば、データをディスプレイコントローラにより受信することができ、このディスプレイコントローラは、レイヤ情報を融合し、最終的にターゲットディスプレイデバイスに表示される信号を生成するように構成されている。したがって処理されレンダリングされたデータを、ターゲットディスプレイに表示することができ、このターゲットディスプレイを液晶ディスプレイとすることができ、またはターゲットディスプレイは、クラスタ化されたディスプレイについて該当する可能性があるように、複数のディスプレイデバイスを含むことができる。さまざまな実施形態によれば、レンダリングされたグラフィックデータを、グラフィック処理ユニットからターゲットディスプレイに直接送信することができる。このためさまざまな実施形態によれば、オペレーション414の1つまたは複数の部分をバイパスすることができる。より具体的には、レンダリングされたグラフィックデータをVRAMには格納しなくてもよく、その代わりに、グラフィック処理ユニットから直接、ターゲットディスプレイデバイスに送信することができる。
【0041】
図5には、いくつかの実施形態に従って実装された、ラインベースのレンダリングのための方法に関するさらに別の実施例のフローチャートが示されている。後でさらに詳しく述べるように、方法500のような方法を、最終的にディスプレイデバイスに表示されるグラフィックデータに対して、ラインベースのレンダリングを実施するように構成することができる。やはり後でさらに詳しく述べるように、グラフィック処理ユニットのそれぞれ異なるパイプラインによって、それぞれ異なる処理オペレーションを並列化することができる。このようにして、ピクセルマッピングオペレーションを実施するために使用されるコマンドを複数のサブコマンドに分割することができ、かかるサブコマンドの実施をラインごとに並列化することができる。
【0042】
方法500はオペレーション502を含むことができ、このオペレーション中、コマンドを受信することができる。先に述べたのと同様に、ソフトウェアアプリケーションなど、グラフィックデータのソースの1つまたは複数の構成要素から、このコマンドを受信することができる。したがってソフトウェアアプリケーションは、グラフィックデータに関連するコマンドを生成することができ、このコマンドは、さまざまなレンダリングパラメータおよびディスプレイパラメータを含むことができる。先に述べたように、このコマンドは、グラフィックデータ用のターゲットディスプレイ、グラフィックデータ用のターゲットアプリケーション、ならびにレンダリングされる1つのイメージまたはフレームのサイズおよび解像度など、グラフィックデータ自体の1つまたは複数の態様を識別することができる。しかもこのコマンドは、ピクセル情報を含むことができるグラフィックデータ自体を含むこともでき、また、空間情報または構造情報などのようなさらなるレンダリングパラメータを含むこともできる。
【0043】
方法500はオペレーション504に進むことができ、このオペレーション中、複数のレンダリングパラメータを決定することができる。先に述べたのと同様に、レンダリングパラメータを、特に、コマンドをどのようにサブコマンドに分割すべきであるのかを識別する1つまたは複数のパラメータとすることができる。より具体的には、レンダリングパラメータは、1つのコマンドをどのように複数のサブコマンドに分割すべきであるのかを定義することができる。後でさらに詳しく述べるように、かかるサブコマンドを、グラフィック処理ユニットの特定のパイプラインに固有の、また、グラフィックデータのうちの特定の部分またはスライスに固有の、コマンドセットとすることができる。
【0044】
方法500はオペレーション506に進むことができ、このオペレーション中、複数のレンダリングパラメータに少なくとも部分的に基づき、複数のサブコマンドを生成することができる。先に述べたのと同様に、コントローラの1つまたは複数の構成要素は、受信したコマンドに基づき複数のサブコマンドを生成することができる。より具体的には、レンダリングされるイメージ内またはフレーム内の部分またはスライスの数に基づき、ならびにレンダリングされているイメージ内またはフレーム内に含まれるオブジェクトおよび/またはイメージレイヤの数に基づき、それぞれ異なるコマンドセットを生成することができる。したがってコントローラは識別された部分各々について、その部分に含まれるオブジェクトおよび/またはイメージレイヤごとに、1つまたは複数の処理オペレーションを識別するコマンドセットを生成することができる。
【0045】
方法500はオペレーション508に進むことができ、このオペレーション中、複数のサブコマンドのうちの一部をグラフィック処理ユニットに供給することができる。したがって、オペレーション506中に生成されたサブコマンドのうちの一部を、先に述べたようにグラフィック処理ユニットに供給することができ、これらのサブコマンドを使用して、レンダリングすべきグラフィックデータをフェッチする複数のフェッチオペレーションを実施することができる。さまざまな実施形態によれば、フェッチオペレーションを、レンダリングされている1つのイメージのうちの特定の部分またはスライスに対するものとすることができる。したがって、グラフィック処理ユニットの利用されるパイプライン各々に、1つのオブジェクトまたはイメージレイヤを割り当てておくことができる。オペレーション508中、パイプライン各々によって、その個々のオブジェクトまたはイメージレイヤに対し1つのフェッチオペレーションを実施することができる。
【0046】
方法500はオペレーション510に進むことができ、このオペレーション中、第1の処理オペレーションを実施することができる。さまざまな実施形態によれば、第1の処理オペレーションを、コントローラによってグラフィック処理ユニットの第1のパイプラインに割り当てることができる。先に述べたように、第1のパイプラインは第1の処理ユニットを含むことができ、このユニットは、向き変更またはパースペクティブ変更などのような1つまたは複数のピクセル変換オペレーションを実施するように構成されている。かくして第1の処理ユニットは、サイズ変更オペレーションのような第1のピクセルマッピングオペレーションを実施することができる。しかもピクセル変換を、目下選択されているスライスの第1のオブジェクトまたはイメージレイヤに適用することができる。
【0047】
方法500はオペレーション512に進むことができ、このオペレーション中、第2の処理オペレーションを実施することができる。さまざまな実施形態によれば、第2の処理オペレーションは、コントローラによってグラフィック処理ユニットの第2のパイプラインに割り当てられている。先に述べたように、第2のパイプラインは第2の処理ユニットを含むことができ、このユニットは、やはり1つまたは複数のピクセル変換オペレーションを実施するように構成されている。かくして第2の処理ユニットは、向き変更のような第2のピクセルマッピングオペレーションを実施することができる。しかもピクセル変換を、目下選択されているスライスの第2のオブジェクトまたはイメージレイヤに適用することができる。
【0048】
方法500はオペレーション514に進むことができ、このオペレーション中、第3の処理オペレーションを実施することができる。さまざまな実施形態によれば、第3の処理オペレーションは、コントローラによってグラフィック処理ユニットの第3のパイプラインに割り当てられている。先に述べたように、第3のパイプラインは第3の処理ユニットを含むことができ、このユニットは、やはり1つまたは複数のピクセル変換オペレーションを実施するように構成されている。かくして第3の処理ユニットは、パースペクティブ変更のような第3のピクセルマッピングオペレーションを実施することができる。しかもピクセル変換を、目下選択されているスライスの第3のオブジェクトまたはイメージレイヤに適用することができる。
【0049】
したがって先に述べたように、それぞれ異なる複数の処理オペレーションを、グラフィック処理ユニットのそれぞれ異なるパイプラインによって並列に実施することができ、パイプライン各々を管理するコマンドを、グラフィックデータのソースから最初に受け取ったコマンドから生成されたサブコマンドとすることができる。このようにして、それぞれ異なるピクセルマッピングオペレーションに対応するそれぞれ異なる複数の処理オペレーションを、指定された数のラインを一度に処理可能な「ラインごと」をベースとする方式に従って、並列に実施することができる。
【0050】
方法500はオペレーション516に進むことができ、このオペレーション中、レンダリングされたグラフィックデータをメモリに格納することができる。したがって、1つのスライスについて処理オペレーションが完了すると、処理されたデータを、グラフィック処理ユニットに含まれている内部レンダリングバッファに格納することができる。しかも、その部分またはスライスに含まれるイメージの処理されたラインを、別のストレージデバイスの別のストレージロケーションに送信することができる。より具体的には、処理されたデータを、VRAMモジュールに送信することができ、さらにVRAMモジュールのラインバッファに格納することができる。
【0051】
方法500はオペレーション518に進むことができ、このオペレーション中、さらなる処理オペレーションを実施すべきかを決定することができる。いくつかの実施形態によれば、かかる決定を、目下アクティブな部分またはスライスあるいは選択された部分またはスライスと、部分またはスライスの総数と、に基づき行うことができる。例えばグラフィック処理ユニットは、レンダリングされる1つのイメージまたはフレームについて定義されたすべてのスライスにわたり、繰り返しステップを進めることができる。かかる進捗を、コントローラなどの構成要素によって監視することができる。例えばコントローラは、かかる進捗を追跡するためにステートマシンを実装することができる。このようにしてコントローラは、イメージのさらなるスライスが残っており、これを処理すべきかを判定することができる。さらなる処理オペレーションを実施すべきであると判定されたならば、方法500はオペレーション508に戻ることができる。さらなる処理オペレーションを実施すべきであると判定されなければ、方法500を終了させることができる。
【0052】
図6には、いくつかの実施形態に従いラインベースのレンダリングで処理されるイメージの1つの実施例が示されている。先に述べたのと同様に、イメージ600のような1つのイメージは、レンダリングされるべき複数のオブジェクトを含むことができる。例えばイメージ600は、第1のイメージレイヤ602における第1のオブジェクトと、第2のイメージレイヤ604における第2のオブジェクトと、第3のイメージレイヤ606における第3のオブジェクトと、を含むことができる。さまざまな実施形態によれば、ピクセルマッピングオペレーションを、第1のイメージレイヤ602、第2のイメージレイヤ604および第3のイメージレイヤ606の各々について、例えばソースによって識別しておくことができる。
【0053】
しかもイメージ600を、第1の部分608および第2の部分610などのように、複数の部分またはスライスに分割することができる。ここには2つの部分が示されているけれども、自明のとおり、イメージ600のすべてをかかる部分にセグメント化することができる。先に述べたように、ピクセルマッピングオペレーションおよびコマンドを順序づけて、それらを各部分のために処理装置のそれぞれ異なる処理パイプラインに割り当てることができる。したがってコマンドシーケンサは、ピクセルマッピングオペレーションのためのコマンドを取り出すことができ、第1の部分608のために第1のコマンドセットを、第2の部分610のために第2のコマンドセットを、さらに任意のさらなる部分のためにさらなるコマンドセットを、生成することができる。コマンドセット各々は、ラインまたはピクセルの範囲によって識別可能であるような特定の部分、処理オペレーション、ならびにこの処理オペレーションを実施すべきターゲットデータオブジェクトおよび関連するイメージレイヤを、識別することができる。
図6に示されているように、第1の部分608は、2つのイメージレイヤ内の2つのオブジェクトに対応する2つのコマンドセットを有することができる一方、第2の部分610は、3つのイメージレイヤ内の3つのオブジェクトに対する3つのコマンドセットを有する。
【0054】
図7には、いくつかの実施形態に従って構成された処理装置の構成要素に関する1つの実施例が示されている。したがって以下で説明するシステム700などのシステムを、先に述べたコントローラおよび/または処理装置の構成要素を実装するために使用することができる。さまざまな実施形態によれば、システム700は、プロセッサ701と、メモリモジュール703と、ストレージデバイス705と、インタフェース711と、バス715(例えばPCIバスまたは他の相互接続ファブリック)と、を含む。システム700は、グラフィック処理ユニットなどのようなさまざまな装置として、または本明細書で説明した他の任意のレンダリングデバイスとして、動作可能である。1つの特定の構成が説明されているけれども、さまざまな代替構成が可能である。プロセッサ701は、本明細書で説明したようなオペレーションを実行することができる。かかるオペレーションを実行するための命令は、1つまたは複数の非一時的コンピュータ可読媒体上または他の何らかのストレージデバイス上のメモリ703において、具現化することができる。プロセッサ701の代わりに、またはプロセッサ701に加えて、特別に構成されたさまざまなデバイスを使用することもできる。
図1および
図2を参照しながら先に述べたように、データ値を他のシステム構成要素へ送信するように、および他のシステム構成要素から受信するように、インタフェース711を構成することができる。
【0055】
これまで述べてきたコンセプトについて、理解を明確にする目的でいくらか詳しく説明したが、自明のとおり、添付の特許請求の範囲内である程度の変更および修正を行うことができる。プロセス、システムおよび装置を実装する数多くの代替的な手法があることに留意されたい。よって、本実施例は例示的であり、限定的ではないと見なされたい。
【外国語明細書】