特許第6337322号(P6337322)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許6337322方法、コンピュータプログラム、装置およびコンピュータ可読記録媒体
<>
  • 特許6337322-方法、コンピュータプログラム、装置およびコンピュータ可読記録媒体 図000002
  • 特許6337322-方法、コンピュータプログラム、装置およびコンピュータ可読記録媒体 図000003
  • 特許6337322-方法、コンピュータプログラム、装置およびコンピュータ可読記録媒体 図000004
  • 特許6337322-方法、コンピュータプログラム、装置およびコンピュータ可読記録媒体 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6337322
(24)【登録日】2018年5月18日
(45)【発行日】2018年6月6日
(54)【発明の名称】方法、コンピュータプログラム、装置およびコンピュータ可読記録媒体
(51)【国際特許分類】
   G06T 15/00 20110101AFI20180528BHJP
【FI】
   G06T15/00 501
【請求項の数】26
【全頁数】14
(21)【出願番号】特願2016-561851(P2016-561851)
(86)(22)【出願日】2015年4月30日
(65)【公表番号】特表2017-517799(P2017-517799A)
(43)【公表日】2017年6月29日
(86)【国際出願番号】US2015028422
(87)【国際公開番号】WO2015175231
(87)【国際公開日】20151119
【審査請求日】2016年11月8日
(31)【優先権主張番号】14/277,239
(32)【優先日】2014年5月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】フェルナンデス、ファン
(72)【発明者】
【氏名】カッレテロ カサド、ジャヴィアー
(72)【発明者】
【氏名】マルチェッロ、ペデロ
(72)【発明者】
【氏名】アケニン−モラー、トマス ジー.
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2009−181582(JP,A)
【文献】 特表2005−514711(JP,A)
【文献】 米国特許出願公開第2013/0187947(US,A1)
【文献】 米国特許出願公開第2011/0199377(US,A1)
【文献】 米国特許出願公開第2006/0146056(US,A1)
【文献】 米国特許第8108931(US,B1)
【文献】 国際公開第2010/143573(WO,A1)
【文献】 安田敏宏, 外5名,“サーバレンダリングを用いた立体映像生成手法に関する検討”,電子情報通信学会 第19回データ工学ワークショップ論文集,日本,電子情報通信学会データ工学研究専門委員会,2008年 4月 7日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00−15/87
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
トライアングルリストが作成される場合に、タイルに対し、ジオメトリ、入力データ、および状態のそれぞれの縮小表現を蓄積する段階と、
1タイル毎のラスタライズの前に、現在のフレームにおける現在のタイルに対する前記縮小表現が先行フレームおよび対応するタイルに対する前記縮小表現と同一であるか否かを判断する段階と、
前記先行フレームおよび前記現在のフレームにおけるタイルに対する複数の前記縮小表現が同一である場合、前記現在のタイルをレンダリングするときに、前のタイルの複数のピクセルを前記現在のタイルの複数のピクセルとして再利用する段階とを備える、方法。
【請求項2】
前記縮小表現を生成するべくハッシュ関数を用いる段階を備える、請求項1に記載の方法。
【請求項3】
前記縮小表現を生成するべくブルームフィルタを用いる段階を備える、請求項1または2に記載の方法。
【請求項4】
前記現在のタイルに1つ、および先行タイルに1つの、2つのブルームフィルタを用いる段階を備える、請求項3に記載の方法。
【請求項5】
ジオメトリ、複数のテクスチャアドレス、および複数のシェーダの各々に対して複数のブルームフィルタのうちの1つのペアを用いる段階を備える、請求項4に記載の方法。
【請求項6】
ソートミドルアーキテクチャにおいて蓄積する段階を備える、請求項1〜5のいずれか1項に記載の方法。
【請求項7】
再利用する段階は、複数の色値を再利用する段階を有する、請求項1〜6のいずれか1項に記載の方法。
【請求項8】
再利用する段階は、複数のデプスバッファまたは複数のステンシルバッファを再利用する段階を有する、請求項1〜7のいずれか1項に記載の方法。
【請求項9】
複数の縮小表現が同一である場合、表示するためにデータを送信することを避ける段階を備える、請求項1〜8のいずれか1項に記載の方法。
【請求項10】
現在の縮小表現を先行の縮小表現に変更する段階を備える、請求項1〜9のいずれか1項に記載の方法。
【請求項11】
同一の描画呼出しが連続する複数のフレームにおける同一のタイルに用いられているか否かを判断して、複数の縮小表現が同一であるか否かを判断する段階を備える、請求項1〜10のいずれか1項に記載の方法。
【請求項12】
実行されると、コンピュータに、
トライアングルリストが作成される場合に、タイルに対し、ジオメトリ、入力データ、および状態のそれぞれの縮小表現を蓄積する手順と、
1タイル毎のラスタライズの前に、現在のフレームにおける現在のタイルに対する前記縮小表現が先行フレームおよび対応するタイルに対する前記縮小表現と同一であるか否かを判断する手順と、
前記先行フレームおよび前記現在のフレームにおけるタイルに対する複数の前記縮小表現が同一である場合、前記現在のタイルをレンダリングするときに、前のタイルの複数のピクセルを前記現在のタイルの複数のピクセルとして再利用する手順とを実行させる、コンピュータプログラム。
【請求項13】
前記縮小表現を生成するハッシュ関数を用いる手順を備える、請求項12に記載のコンピュータプログラム。
【請求項14】
前記縮小表現を生成するブルームフィルタを用いる手順を備える、請求項12または13に記載のコンピュータプログラム。
【請求項15】
前記現在のタイルに1つ、および先行タイルに1つの、2つのブルームフィルタを用いる手順を備える、請求項14に記載のコンピュータプログラム。
【請求項16】
ジオメトリ、複数のテクスチャアドレス、および複数のシェーダの各々に複数のブルームフィルタのうちの1つのペアを用いる手順を備える、請求項15に記載のコンピュータプログラム。
【請求項17】
ソートミドルアーキテクチャにおいて蓄積する手順を備える、請求項12〜16のいずれか1項に記載のコンピュータプログラム。
【請求項18】
トライアングルリストが作成される場合に、タイルに対し、ジオメトリ、入力データ、および状態のそれぞれの縮小表現を蓄積し、1タイル毎のラスタライズの前に、現在のフレームにおける現在のタイルに対する前記縮小表現が先行フレームおよび対応するタイルに対する前記縮小表現と同一であるか否かを判断し、前記先行フレームおよび前記現在のフレームにおけるタイルに対する複数の前記縮小表現が同一である場合、前記現在のタイルをレンダリングするときに、前のタイルの複数のピクセルを前記現在のタイルの複数のピクセルとして再利用するプロセッサと、
前記プロセッサに結合されたストレージとを備える、装置。
【請求項19】
前記プロセッサは、前記縮小表現を生成するハッシュ関数を用いる、請求項18に記載の装置。
【請求項20】
前記縮小表現を生成するブルームフィルタを備える、請求項18または19に記載の装置。
【請求項21】
前記現在のタイルに1つ、および先行タイルに1つの、2つのブルームフィルタを備える、請求項20に記載の装置。
【請求項22】
ジオメトリ、複数のテクスチャアドレス、および複数のシェーダの各々に対する複数のブルームフィルタのうちの1つのペアを備える、請求項21に記載の装置。
【請求項23】
前記プロセッサは、ソートミドルアーキテクチャにおいて蓄積する、請求項18〜22のいずれか1項に記載の装置。
【請求項24】
前記プロセッサは、複数の縮小表現が同一である場合、表示するためにデータを送信することを避ける、請求項18〜23のいずれか1項に記載の装置。
【請求項25】
前記プロセッサは、同一の描画呼出しが連続する複数のフレームにおける同一のタイルに用いられているか否かを判断して、複数の縮小表現が同一であるか否かを判断する、請求項18〜24のいずれか1項に記載の装置。
【請求項26】
請求項12〜17のいずれか1項に記載のコンピュータプログラムを格納するコンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【0001】
これは、グラフィックス処理に関する。
【0002】
モバイルデバイスにソートミドルアーキテクチャを用いることは一般的である。あらゆるグラフィックスアプリケーションにおけるように、電力使用量を低減することは重要である。
【0003】
ジオメトリ処理は、各プロセッサにシーンにおける複数のプリミティブのサブセットを割り当てることにより並列にされ得る。ラスタライズは、各プロセッサに必要なピクセル計算のある部分を割り当てることにより並列にされ得る。レンダリングは、各ピクセルに対する各プリミティブの影響を算出することを含む。プリミティブは、任意の箇所で実際の表示スクリーン内、またはその外側の任意の箇所に投影される可能性がある。レンダリングは、スクリーンに対する複数のプリミティブをソートする。ソートは、ソートファーストと呼ばれるジオメトリ処理中、ソートミドルと呼ばれるジオメトリ処理とラスタライズとの間、またはソートラストと呼ばれるラスタライズ中に行われ得る。ソートファーストは、生の複数のプリミティブを、そのスクリーン空間パラメータが知られる前に再分配することを意味し、ソートミドルは、複数のスクリーン空間プリミティブを再分配することを意味し、ソートラストは、複数のピクセル、サンプル、またはピクセルフラグメントを再分配することを意味する。
【図面の簡単な説明】
【0004】
いくつかの実施形態は、以下の図面に関して説明される。
図1】一実施形態の概略図である。
図2】一実施形態のフロー図である。
図3】一実施形態のシステム図である。
図4】一実施形態の前方立面図である。
【発明を実施するための形態】
【0005】
ソートミドルアーキテクチャにおいて動作して、先行フレームにおいて計算された複数のピクセル値は、現在のフレームに再利用され得る。全ての三角形、ユニフォーム、テクスチャ、シェーダ等を含む、タイルにおいて用いられる全てのデータのハッシュまたはいくつかの他のコンパクト表現は、各タイルについて計算され、格納される。次のフレームをレンダリングする場合、当該コンパクト表現は、各タイルについて再度計算される。ソートミドルアーキテクチャにおいて、ラスタライズの直前の自然なブレークポイントが存在する。このブレークポイントにおいて、コンパクト表現は、同一のタイルについて先行フレームにおいて計算されたコンパクト表現と比較され得る。これらのコンパクト表現が同一である場合、このタイルについて何もレンダリングする必要はない。これに代えて、タイルにおける先行フレームのカラーバッファまたは他のバッファの複数のコンテンツは、現在のフレームについてタイルの同一のバッファに移動され、またはそうでなければ再利用され得る。
【0006】
この技術は、ラスタライズおよびピクセルシェーディングの前に機能し、カラーバッファに加えて他の複数のバッファに適用され得る。
【0007】
タイリングアーキテクチャとも呼ばれることがあるソートミドルアーキテクチャにおいて、スクリーンは複数のタイルに分割される。これらのタイルは、スクリーン全体を合わせてカバーする互いに重なり合わない矩形の領域である。第1の段階において、レンダリングされる複数の三角形等の全てのプリミティブは、ソートされて複数のタイルとなり、従ってプリミティブに対する参照は、プリミティブが重なり合う全てのタイルについて1タイル毎にプリミティブのリストに格納される。全てのソートが実行されると、各タイルは、シリアルまたは並列にラスタライズされ得る。
【0008】
この技術は、多くの場合に、ある画像と次の画像とで、画像の大部分が同一であるという事実を活用する。この効果は多くの場合、フレーム対フレームコヒーレンシと称される。フレーム対フレームコヒーレンシは、ここでは電力および性能の両方の観点からグラフィックスプロセッサをより効率的なものにするべく活用される。
【0009】
一実施形態において、ハッシュのようなコンパクト表現は、1タイル毎のプリミティブのリストが作成されるときに、1タイル毎で蓄積される。コンパクト表現は、全てのプリミティブ、ユニフォーム、テクスチャ、シェーダ、ブレンドモード等を含む全てのジオメトリ、入力データ、および関連する状態に基づき得る。先行フレームからの複数のコンパクト表現は、現在のフレームをレンダリングするときに、メモリ内に格納される。次に、1タイル毎のラスタライズが開始する直前に、現在のフレームに対する現在のタイルのコンパクト表現が先行フレームに対する同一のタイルのコンパクト表現と同一であるか否かの判断が行われる。複数のコンパクト表現が同一である場合、レンダリングされるコンテンツも同一であると仮定され、結果としてレンダリングは必要とされない。その代わりに、タイルにおける全てのピクセルの色は、先行フレームから再利用される。コンパクト表現が同一でない場合、ラスタライズ、デプス試験、ピクセルシェード、およびブレンドが通常のように行われる。
【0010】
この技術は、カラーバッファに加えて全てのレンダリングのターゲット、ならびにデプスおよびステンシルにも用いられ得る。しかし、スクリーン上に表示されるカラーバッファのような現在のレンダリングの複数のターゲットについては、いくつかの更なる最適化が可能である。例えば、組み込みディスプレイポート(eDP)仕様バージョン1.4/1.5(およびそれ以上)を用いる場合、これらの技術は、パネルソフト更新(PSR)モードにあるときに部分的フレーム更新と共に用いられ得る。基本的に、アルゴリズムは、現在のフレームに対する特定のタイルが先行フレームに対する対応するタイルと同一であることを検出し、従ってラスタライズおよび全ての後続する段階は必要とされない。従って、データがディスプレイに転送されるときに、先行フレームにおけるものと同一であるこれらのタイルについては、データの送信は回避され得る。最終的に、フレームが終了するときに、現在のフレームに対する複数のコンパクト表現は、先行フレームのコンパクト表現テーブルに移動されなければならず、将来の使用のためにクリアされる。あるいは、現在のフレームおよび先行フレームに対するポインタがスワップされ得るのみである。メモリバーストを回避するために、現在のフレームを識別するべく1ビットを追加するレイジーな置換が考えられ得る。
【0011】
選択されるコンパクト表現は、以下の基準のうちの1または複数に準拠し得る。(1)1タイル毎に全ハッシュ値を蓄積するべく、複数のブロックをシーケンシャルに処理することを可能にする。(2)可視のアーティファクトを生成する可能性があるので、偽陽性を最小化する。(3)ハッシュテーブルのストレージオーバヘッドを低減するべく、適度のサイズの複数のハッシュ値を生成する。
【0012】
1タイル毎の出力ハッシュ値が比較の目的で生成されるという事実を考慮すると、いくつかの実施形態において、任意の簡易な巡回冗長検査またはチェックサム機能で十分である場合がある。ハッシュ衝突の確率がより小さいことが所望である場合、より重い計算要求を費やして、MD5等のMerkle−Damguard構造を用いる暗号学的ハッシュ関数が更に用いられ得る。
【0013】
更に、ハッシュを格納することに代えて、フレームの最後においてタイルを完全にカバーする描画呼出しのために、識別子が格納されるのみである場合がある。全てのユニフォーム、テクスチャ、およびシェーダ等が後続するフレームまで同一のままであるので当該描画呼出しが静的であり、同一の描画呼出しが再びタイルを完全にカバーすることが発見された場合、当該タイルの全ての処理は回避されて、先行フレームからの複数のコンテンツが再利用され得る。これが機能するには、例えば、タイルと完全に重なり合う単一の三角形が存在するか否かが試験され、タイルのプリミティブのリストにおける全ての他の三角形が当該三角形により塞がれているか否かが試験され得る。別の態様は、現在のフレームおよび後続するフレームにおいて、タイルが描画呼出しにおける複数の三角形のサブセットにより完全にカバーされるか否かを判断することであり、同一の描画呼出しが全く同一であり、当該タイルにおける全ての他のジオメトリが塞がれている場合、当該タイルについて何も描画される必要はない。
【0014】
更に別の実施形態において、ブルームフィルタがハッシュの代わりに用いられ得る。その実装のためには、少なくとも2つのブルームフィルタが用いられ得るが、2つのNのより小さいブルームフィルタも考えられ得る。複数のブルームフィルタの各ペアは、異なる種類の情報に対する複数の要素を備える。例えば、1つのペアはジオメトリ用であってもよく、別のペアは複数のテクスチャアドレス用であってもよく、第3のペアは、複数のシェーダ用であってもよい。これらのペアのうち、あるものは先行フレームに対する複数の要素を含み、第2のものは、現在のフレームに対する対応する複数の要素を含む。
【0015】
一実施形態において、ブルームフィルタアルゴリズムは、複数のハッシュを用いるものと同様に機能する。トライアングルリストが作成される場合、いくつかのハッシュ関数が比較する情報に適用される。両方のブルームフィルタを指標付けするべく、これらのハッシュ関数の結果が用いられる。現在のフレームに関するものについては、指標付けされる全てのビットが設定される。他方、先行フレームのブルームフィルタについては、指標付けされた複数のビットが読み取られ、チェックは、それら全てが1か否かを判断する。1である場合、レンダリングされるコンテンツは同一であると仮定され、複数の色が先行フレームから再利用される。1でない場合、シーケンスは、正常に進行する。フレームが終了すると、ブルームフィルタの扱いがスワップされる。現在のフレームを指し示すものは、先行フレームとなり、以前の先行フレームはクリアされる。
【0016】
ハッシュと比較して、ブルームフィルタを用いる1つの利点は、ブルームフィルタが通常、全ての情報を保持するのにストレージスペースをあまり必要としないことであるが、ブルームフィルタは、複数のハッシュ関数に追加のロジックを必要とする場合がある。従来、約0.5パーセントの偽陽性率を得るのに必要とされるビット数は、ブルームフィルタにおける1要素当たり11〜12ビットの範囲であり、この偽陽性率に対するハッシュ関数の最適な数は、6〜8の関数の範囲である。
【0017】
図1を参照すると、タイリングエンジン10は、ラスタパイプライン12に結合され得る。タイリングエンジン10は、ハッシュまたはブルームフィルタ計算ユニット13においてジオメトリ、状態情報、シェーダ情報、および複数のテクスチャアドレスを受信する。任意の状態情報が、任意の状態情報とパイプライン結果を組み合わせるタイルリストビルダ14に提供される。この組み合わされたデータは、タイルキャッシュ22に格納される。
【0018】
先行フレームハッシュまたはブルームフィルタストレージ16は、フレーム変更時に現在のフレームハッシュ/ブルームフィルタストレージ18へとダンプされる。タイルフェッチャ20は、ラスタライズパイプライン12から複数のタイルをフェッチし、それらをタイルキャッシュ22に提供する。タイルキャッシュ22は、データを統合キャッシュ24に転送する。
【0019】
ラスタパイプライン12は、タイルフェッチャ20およびデプス試験ユニット28に結合されたラスタライザ26を含む。複数のシェーダは、デプス試験ユニット28に結合され得る。複数のシェーダ30は、カラーバッファ32、テクスチャサンプラ34、およびデプスバッファ36に結合され、これらは同様に統合キャッシュ24に結合される。
【0020】
図2に示されるシーケンス40は、ソフトウェアファームウェアおよび/またはハードウェアに実装され得る。ソフトウェアおよびファームウェアの実施形態において、シーケンス40は、磁気、光、または半導体ストレージ等の1または複数の非一時的コンピュータ可読媒体に格納される複数のコンピュータ実行命令により実装され得る。
【0021】
シーケンスは、タイルリストビルダ14において開始する。タイルリストビルダ14は、ブロック42に示されるように、タイルビニングを実行し、また、入力データについて影響を受けた複数のタイル識別子を判断する。次に、ブロック44において、ハッシュまたはブルームフィルタは、入力データについて計算される。ブロック46に示されるように、影響を受けた全てのタイルについて、現在のハッシュまたはブルームフィルタが読み取られ、計算されたハッシュまたはフィルタが蓄積される。次に、ダイアモンド48におけるチェックは、タイルビニング処理が終了したか否かを判断する。終了していない場合、フローは、ブロック42に戻って反復する。終了した場合、フローは、タイルフェッチャ20に進む。
【0022】
ブロック50において、フェッチする次のタイル識別子が取得される。ブロック52において、当該タイルについて、現在のハッシュまたはフィルタが取得され、先行フレームからの複数の現在のハッシュまたはフィルタが取得される。54におけるチェックは、現在および先行のハッシュまたはフィルタが一致するか否かを判断する。一致する場合、56においてタイルフェッチはスキップされ、現在のタイルについてラスタライズが回避され得る。一致しない場合、58において、タイルフェッチをして、データをラスタパイプラインに向ける処理を進める。次に、60において、フェッチするその他のタイル識別子が存在するか否かが判断される。存在する場合、フローはブロック50に戻って反復する。そうでなければ62において、現在の複数のハッシュまたはフィルタ値は、先行ハッシュまたはフィルタ値となる。
【0023】
図3は、システム700の一実施形態を図示する。複数の実施形態において、システム700はメディアシステムであってもよいが、システム700は、この文脈に限定されるものではない。例えば、システム700は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレットまたはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等に組み込まれてもよい。
【0024】
複数の実施形態において、システム700は、ディスプレイ720に結合されたプラットフォーム702を備える。プラットフォーム702は、コンテンツサービスデバイス730もしくはコンテンツ配信デバイス740、または他の類似のコンテンツソース等のコンテンツデバイスからコンテンツを受信し得る。1または複数のナビゲーション機能を備えるナビゲーションコントローラ750は、例えば、プラットフォーム702および/またはディスプレイ720とインタラクトするように用いられてもよい。これらのコンポーネントの各々は、以下により詳細に説明される。
【0025】
複数の実施形態において、プラットフォーム702は、チップセット705、プロセッサ710、メモリ712、ストレージ714、グラフィックスサブシステム715、複数のアプリケーション716、および/または無線機718の任意の組み合わせを備え得る。チップセット705は、プロセッサ710、メモリ712、ストレージ714、グラフィックスサブシステム715、複数のアプリケーション716、および/または無線機718の間の相互通信を提供し得る。例えば、チップセット705は、ストレージ714との相互通信を提供することができるストレージアダプタ(図示せず)を含み得る。
【0026】
プロセッサ710は、複合命令セットコンピュータ(CISC)もしくは縮小命令セットコンピュータ(RISC)プロセッサ、x86命令セットに互換性のあるプロセッサ、マルチコア、またはその他のマイクロプロセッサもしくは中央処理装置(CPU)として実装され得る。複数の実施形態において、プロセッサ710は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ等を備えてもよい。プロセッサは、メモリ712と共に、図2のシーケンスを実装し得る。
【0027】
メモリ712は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックRAM(SRAM)等の揮発性メモリデバイスとして実装され得るが、これらに限定されるものではない。
【0028】
ストレージ714は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、装着ストレージデバイス、フラッシュメモリ、バッテリバックアップSDRAM(シンクロナスDRAM)、および/またはネットワークアクセス可能なストレージデバイス等の不揮発性ストレージデバイスとして実装され得るが、これらに限定されるものではない。複数の実施形態において、ストレージ714は、例えば、複数のハードドライブが含まれる場合に貴重なデジタル媒体に対する記憶性能を高めた保護を増大させる技術を備え得る。
【0029】
グラフィックスサブシステム715は、表示のために静止画像または動画のような複数の画像の処理を実行し得る。グラフィックスサブシステム715は、例えば、グラフィックス処理ユニット(GPU)またはビジュアルプロセッシングユニット(VPU)であってもよい。アナログまたはデジタルインターフェースは、グラフィックスサブシステム715およびディスプレイ720を通信可能に結合するように用いられてもよい。例えば、インターフェースは、高細精度マルチメディアインターフェース、DisplayPort、無線HDMI(登録商標)、および/または無線HDに準拠する技術のいずれかであってもよい。グラフィックスサブシステム715は、プロセッサ710またはチップセット705に集積され得る。グラフィックスサブシステム715は、チップセット705に通信可能に結合されたスタンドアロンカードであり得る。
【0030】
本明細書に説明されるグラフィックスおよび/または動画処理技術は、様々なハードウェアアーキテクチャで実装され得る。例えば、グラフィックスおよび/または動画機能は、チップセット内に集積され得る。あるいは、別個のグラフィックスおよび/またはビデオプロセッサが用いられてもよい。更に別の実施形態として、グラフィックスおよび/または複数のビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実装され得る。更なる実施形態において、これらの機能は、家庭用電子デバイスに実装され得る。
【0031】
無線機718は、様々な好適の無線通信技術を用いて複数の信号を送受信することができる1または複数の無線機を含み得る。そのような複数の技術は、1または複数の無線ネットワークにわたる複数の通信を含み得る。例示的な複数の無線ネットワークとしては、無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線メトロポリタンエリアネットワーク(WMAN)、セルラーネットワーク、および衛星ネットワークが挙げられる(しかし、これらに限定されるものではない)。そのような複数のネットワークにわたって通信する場合に、無線機718は、任意のバージョンの1または複数の適用可能規格に準拠して動作し得る。
【0032】
複数の実施形態において、ディスプレイ720は、任意のテレビタイプのモニタまたはディスプレイを備え得る。ディスプレイ720は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ様式のデバイス、および/またはテレビを備え得る。ディスプレイ720は、デジタルおよび/またはアナログであってもよい。複数の実施形態において、ディスプレイ720は、ホログラフィックディスプレイであってもよい。また、ディスプレイ720は、視覚投影を受信し得る透明面であってもよい。そのような複数の投影は、様々な形態の情報、画像、および/またはオブジェクトを搬送し得る。例えば、そのような複数の投影は、モバイル拡張実現(MAR)アプリケーションのための視覚オーバーレイであってもよい。1または複数のソフトウェアアプリケーション716の制御下で、プラットフォーム702は、ユーザインターフェース722をディスプレイ720上に表示し得る。
【0033】
複数の実施形態において、コンテンツサービスデバイス730は、任意の国家的、国際的、および/または独立系サービスによりホストされ、従って例えばインターネットを介してプラットフォーム702にアクセス可能であり得る。コンテンツサービスデバイス730は、プラットフォーム702および/またはディスプレイ720に結合され得る。プラットフォーム702および/またはコンテンツサービスデバイス730は、ネットワーク760に、およびネットワーク760からメディア情報を通信する(例えば送信し、および/または受信する)べくネットワーク760に結合され得る。コンテンツ配信デバイス740は、プラットフォーム702および/またはディスプレイ720にも結合され得る。
【0034】
複数の実施形態において、コンテンツサービスデバイス730は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネットが可能なデバイス、もしくはデジタル情報および/またはコンテンツを提供することができる電気機器、およびネットワーク760を介し、または直接に複数のコンテンツプロバイダと、プラットフォーム702と、ディスプレイ720との間で一方向または双方向にコンテンツを通信することができるその他の類似のデバイスを備え得る。コンテンツは、ネットワーク760を介してシステム700における複数のコンポーネントのうちのいずれか1つおよびコンテンツプロバイダに、およびこれらから一方向および/または双方向に通信され得ることが理解されよう。コンテンツの複数の例としては、例えば、動画、音楽、医療およびゲーム情報等を含む任意のメディア情報が挙げられ得る。
【0035】
コンテンツサービスデバイス730は、メディア情報、デジタル情報、および/または他のコンテンツを含むケーブルテレビ番組等のコンテンツを受信する。コンテンツプロバイダの複数の例としては、任意のケーブルもしくは衛星テレビ、またはラジオもしくはインターネットコンテンツプロバイダが挙げられ得る。提供される複数の例は、適用可能な実施形態を限定することを意図しない。
【0036】
複数の実施形態において、プラットフォーム702は、1または複数のナビゲーション機能を有するナビゲーションコントローラ750から複数の制御信号を受信し得る。コントローラ750の複数のナビゲーション機能は、例えば、ユーザインターフェース722とインタラクトするように用いられ得る。複数の実施形態において、ナビゲーションコントローラ750は、ユーザが空間(例えば、連続した多次元の)データをコンピュータに入力することを可能にする、コンピュータハードウェアコンポーネント(具体的にはヒューマンインターフェースデバイス)であり得るポインティングデバイスであってもよい。グラフィカルユーザインターフェース(GUI)等の多くのシステム、ならびに複数のテレビおよびモニタは、ユーザが物理的なジェスチャを用いてコンピュータまたはテレビを制御し、これらにデータを提供することを可能にする。
【0037】
コントローラ750におけるナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング、または他の複数の視覚インジケータの動きにより、ディスプレイ(例えば、ディスプレイ720)上に反映され得る。例えば、ソフトウェアアプリケーション716の制御下で、ナビゲーションコントローラ750上に位置する複数のナビゲーション機能は、例えばユーザインターフェース722上に表示される複数の仮想ナビゲーション機能にマッピングされ得る。複数の実施形態において、コントローラ750は、別個のコンポーネントではなく、プラットフォーム702および/またはディスプレイ720に統合されてもよい。しかし、実施形態は、本明細書に示され、または説明される要素または文脈に限定されない。
【0038】
複数の実施形態において、複数のドライバ(図示せず)は、例えば、有効にされると、初期ブートアップ後にユーザがボタンに触れることによりテレビ等のプラットフォーム702を即座にオンおよびオフにすることを可能にする技術を備え得る。プラットフォームが「オフ」にされると、プログラムロジックは、プラットフォーム702がコンテンツをメディアアダプタもしくは他のコンテンツサービスデバイス730、またはコンテンツ配信デバイス740にストリーミングすることを可能にし得る。更に、チップセット705は、例えば、5.1サラウンドサウンドオーディオおよび/または高細精度7.1サラウンドサウンドオーディオに対するハードウェアおよび/またはソフトウェアのサポートを備え得る。複数のドライバは、複数の統合グラフィックスプラットフォームためのグラフィックスドライバを含み得る。複数の実施形態において、複数のグラフィックスドライバは、周辺構成要素相互接続(PCI)エクスプレスグラフィックスカードを備え得る。
【0039】
様々な実施形態において、システム700において示される複数のコンポーネントのうちの任意の1または複数が統合され得る。例えば、プラットフォーム702およびコンテンツサービスデバイス730が統合されてもよく、またはプラットフォーム702およびコンテンツ配信デバイス740が統合されてもよく、または例えば、プラットフォーム702、コンテンツサービスデバイス730、およびコンテンツ配信デバイス740が統合されてもよい。様々な実施形態において、プラットフォーム702およびディスプレイ720は、統合されたユニットであってもよい。例えば、ディスプレイ720およびコンテンツサービスデバイス730が統合されてもよく、またはディスプレイ720およびコンテンツ配信デバイス740が統合されてもよい。これらの例は、範囲の限定であることを意図しない。
【0040】
様々な実施形態において、システム700は、無線システム、有線システム、または両方の組み合わせとして実装され得る。無線システムとして実装される場合、システム700は、1または複数のアンテナ、トランスミッタ、レシーバ、トランシーバ、増幅器、フィルタ、制御ロジック等のような無線共有媒体を介して通信するのに好適な複数のコンポーネントおよびインターフェースを含み得る。無線共有媒体の例としては、RFスペクトル等のような無線スペクトルの一部が挙げられ得る。有線システムとして実装される場合、システム700は、入力/出力(I/O)アダプタ、対応する有線通信媒体とI/Oアダプタを接続する物理コネクタ、ネットワークインターフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等のような有線通信媒体を介して通信するのに好適な複数のコンポーネントおよびインターフェースを含み得る。有線通信媒体の複数の例としては、ワイヤ、ケーブル、金属リード線、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバ等が挙げられ得る。
【0041】
プラットフォーム702は、情報を通信するべく1または複数の論理または物理チャネルを確立し得る。情報は、メディア情報および制御情報を含み得る。メディア情報は、ユーザ向けのコンテンツを表す任意のデータを指し得る。コンテンツの複数の例としては、例えば、音声会話、ビデオ会議、ストリーミング動画、電子メール(「eメール」)メッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキスト等からのデータが挙げられ得る。音声会話からのデータは、例えば、発言情報、無音期間、バックグラウンドノイズ、コンフォートノイズ、トーン等であり得る。制御情報は、自動システム向けの複数のコマンド、命令、または制御ワードを表す任意のデータを指し得る。例えば、制御情報は、システムを通じてメディア情報をルーティングし、または予め定められたようにメディア情報を処理するようノードに指示するべく用いられ得る。しかし、実施形態は、図3に示され、または説明される要素または文脈に限定されない。
【0042】
上記のように、システム700は、異なる物理的スタイルまたはフォームファクタで実施され得る。図4は、システム700が実施され得る小さいフォームファクタデバイス800の複数の実施形態を図示する。例えば複数の実施形態において、デバイス800は、無線機能を有するモバイルコンピューティングデバイスとして実装され得る。例えば、モバイルコンピューティングデバイスは、処理システム、および1または複数のバッテリ等、モバイル電源または電力供給を有する任意のデバイスを指し得る。
【0043】
上記のように、モバイルコンピューティングデバイスの複数の例としては、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレットまたはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等が挙げられ得る。
【0044】
モバイルコンピューティングデバイスの複数の例としては、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、シューズコンピュータ(shoe computer)、衣類コンピュータ(clothing computer)、および他のウェアラブルコンピュータ等、人により着用されるように構成された複数のコンピュータも挙げられ得る。例えば複数の実施形態において、モバイルコンピューティングデバイスは、複数のコンピュータアプリケーション、ならびに音声通信および/またはデータ通信を実行することができるスマートフォンとして実装され得る。いくつかの実施形態は、例として、スマートフォンとして実装されるモバイルコンピューティングデバイスと共に説明され得るが、他の複数の無線モバイルコンピューティングデバイスを同様に用いる他の複数の実施形態が実装され得ることが理解され得る。これらの実施形態は、この文脈において限定されない。
【0045】
以下の付記および/または例は、更なる実施形態に関する。 例示的な一実施形態は、トライアングルリストが作成される場合に、タイルに対するジオメトリ、入力データ、および状態の縮小表現を蓄積する段階と、1タイル毎のラスタライズの前に、現在のフレームにおける現在のタイルに対する表現が先行フレームおよび対応するタイルに対する表現と同一であるか否かを判断する段階と、先行フレームおよび現在のフレームにおけるタイルに対する複数の表現が同一である場合、現在のタイルをレンダリングするときに、前のタイルの複数のピクセルを現在のタイルの複数のピクセルとして再利用する段階とを備える、方法であり得る。方法は、縮小表現を生成するべくハッシュ関数を用いる段階を備え得る。方法は、縮小表現を生成するべくブルームフィルタを用いる段階を備え得る。方法は、現在のタイルに1つ、および先行タイルに1つの、2つのブルームフィルタを用いる段階を備え得る。方法は、ジオメトリ、複数のテクスチャアドレス、および複数のシェーダの各々に対して複数のブルームフィルタのうちの1つのペアを用いる段階を備え得る。方法は、ソートミドルアーキテクチャにおいて蓄積する段階を備え得る。方法は、再利用する段階が、複数の色値を再利用する段階を有することを含み得る。方法は、再利用する段階が、複数のデプスバッファまたはステンシルバッファを再利用する段階を有することを含み得る。方法は、現在のコンパクト表現を先行のコンパクト表現に変更する段階を備え得る。方法は、同一の描画呼出しが連続する複数のフレームにおける同一のタイルに用いられているか否かを判断して、複数の表現が同一であるか否かを判断する段階を備え得る。
【0046】
別の例示的な実施形態は、トライアングルリストが作成される場合に、タイルに対するジオメトリ、入力データ、および状態の縮小表現を蓄積することと、1タイル毎のラスタライズの前に、現在のフレームにおける現在のタイルに対する表現が先行フレームおよび対応するタイルに対する表現と同一であるか否かを判断することと、先行フレームおよび現在のフレームにおけるタイルに対する複数の表現が同一である場合、現在のタイルをレンダリングするときに、前のタイルの複数のピクセルを現在のタイルの複数のピクセルとして再利用することとを含むシーケンスを実装する複数の命令を格納する、1または複数の非一時的コンピュータ可読媒体であり得る。媒体は、縮小表現を生成するハッシュ関数を用いることを含むシーケンスを備え得る。媒体は、縮小表現を生成するブルームフィルタを用いることを含むシーケンスを備え得る。媒体は、現在のタイルに1つ、および先行タイルに1つの、2つのブルームフィルタを用いることを含むシーケンスを備え得る。媒体は、ジオメトリ、複数のテクスチャアドレス、および複数のシェーダの各々に複数のブルームフィルタのうちの1つのペアを用いることを含むシーケンスを備え得る。媒体は、ソートミドルアーキテクチャにおいて蓄積することを含むシーケンスを備え得る。媒体は、再利用することが、複数の色値を再利用することを含むことを含み得る。媒体は、再利用することが、複数のデプスバッファまたは複数のステンシルバッファを再利用することを含むことを含み得る。媒体は、同一の描画呼出しが連続する複数のフレームにおける同一のタイルに用いられているか否かを判断して、複数の表現が同一であるか否かを判断することを含むシーケンスを備え得る。
【0047】
別の例示的な実施形態は、トライアングルリストが作成される場合に、タイルに対するジオメトリ、入力データ、および状態の縮小表現を蓄積し、1タイル毎のラスタライズの前に、現在のフレームにおける現在のタイルに対する表現が先行フレームおよび対応するタイルに対する表現と同一であるか否かを判断し、先行フレームおよび現在のフレームにおけるタイルに対する複数の表現が同一である場合、現在のタイルをレンダリングするときに、前のタイルの複数のピクセルを現在のタイルの複数のピクセルとして再利用するプロセッサと、プロセッサに結合されたストレージとを備える、装置であり得る。装置は、縮小表現を生成するハッシュ関数を用いるプロセッサを備え得る。装置は、縮小表現を生成するブルームフィルタを備え得る。装置は、現在のタイルに1つ、および先行タイルに1つの、2つのブルームフィルタを備え得る。装置は、ジオメトリ、複数のテクスチャアドレス、および複数のシェーダの各々に対する複数のブルームフィルタのうちの1つのペアを備え得る。装置は、ソートミドルアーキテクチャにおいて蓄積するプロセッサを備え得る。装置は、複数のコンパクト表現が同一である場合、表示するためにデータを送信することを避けるプロセッサを備え得る。装置は、同一の描画呼出しが連続する複数のフレームにおける同一のタイルに用いられているか否かを判断して、複数のコンパクト表現が同一であるか否かを判断するプロセッサを備え得る。装置は、バッテリを備え得る。装置は、ファームウェア、およびファームウェアを更新するモジュールを備え得る。
【0048】
本明細書において説明される複数のグラフィックス処理技術は、様々なハードウェアアーキテクチャにおいて実装され得る。例えば、グラフィックス機能は、チップセット内に統合され得る。あるいは、別個のグラフィックスプロセッサが用いられ得る。更に別の実施形態として、複数のグラフィックス機能は、マルチコアプロセッサを含む汎用プロセッサにより実装され得る。
【0049】
本明細書を通して「一実施形態」または「実施形態」を参照する場合、実施形態に関連して説明される特定の機能、構造、または特性が、本開示に包含される少なくとも一実装に含まれることを意味する。従って、「一実施形態」または「実施形態において」という文言が現れても、必ずしも同一の実施形態を指すわけではない。更に、特定の機能、構造、または特性は、図示される特定の実施形態以外の他の好適な形式で設けられてもよく、またそのような全ての形態は、本願の特許請求の範囲に包含され得る。
【0050】
限定された数の実施形態が説明されているが、当業者は、それらから多くの修正形態および改変形態を理解するであろう。添付の特許請求の範囲は、そのような全ての修正形態および改変形態を、本開示の真の主旨および範囲内に含まれるものとして包含することが意図されている。
図1
図2
図3
図4