(57)【要約】  ディスプレイデバイス上にデータを表示するための、システムおよび方法が開示されている。ディスプレイデバイス上にデータを表示する、例となる方法は、高品質（ＨＱ）タイルと対応する低品質（ＬＱ）タイルとの差に基づいて、テキスチャを計算することを含む。方法はまた、ＬＱタイルのアルファチャンネル中に、テキスチャを記憶することを含む。方法は、さらに、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルを、ディスプレイデバイス上に合成することを含む。【選択図】図４
2018512644.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイデバイス上にデータを表示する方法であって、
高品質（ＨＱ）タイルと対応する低品質（ＬＱ）タイルとの差に基づいて、テキスチャを計算することと、
前記テキスチャを、前記ＬＱタイルのアルファチャンネル中に記憶することと、
前記アルファチャンネルの属性が、しきい値を満たすとき、前記ＬＱタイルを、前記ディスプレイデバイス上に合成することとを備える、方法。
【請求項２】
前記アルファチャンネルの前記属性が、前記しきい値を満たさないとき、前記ＨＱタイルを、前記ディスプレイデバイス上に合成することをさらに含む、請求項１に記載の方法。
【請求項３】
前記ＬＱタイルは、前記ＨＱタイルの、より低解像度バージョンである、請求項１に記載の方法。
【請求項４】
前記テキスチャを計算することは、
前記ＬＱタイル中の各ＬＱピクセルについて、前記ＨＱタイル中の対応するピクセル領域を識別することと、
前記ピクセル領域の属性を計算することと、
前記ピクセル領域の属性と前記ＬＱピクセルとの差を計算することと、ここにおいて、前記テキスチャを前記記憶することは、前記ピクセル領域の前記属性と前記ＬＱピクセルとの差を、前記属性の値として、記憶することを含む、を含む、請求項１に記載の方法。
【請求項５】
前記ピクセル領域の属性を前記計算することは、前記ピクセル領域の平均を計算することを含む、請求項４に記載の方法。
【請求項６】
前記ＬＱタイル中の各ＬＱピクセルについて、前記ＨＱタイル中の対応するピクセル領域を識別することと、
前記ＬＱピクセルと前記ピクセル領域中の各ピクセルとの差を計算することと、
前記ＬＱピクセルと前記ピクセル領域中の各ピクセルとの、１以上の差の平均を計算することと、ここにおいて、前記テキスチャを前記記憶することは、前記ＬＱピクセルと前記ピクセル領域中の各ピクセルとの差を、前記属性の値として、記憶することを含む、をさらに含む、請求項１に記載の方法。
【請求項７】
前記ＬＱタイル中の各ＬＱピクセルについて、前記ＨＱタイル中の対応するピクセル領域を識別することと、
前記ＬＱピクセルと前記ピクセル領域との差に基づいて、第２のテキスチャを計算することと、前記第２のテキスチャ中の各ピクセルは、前記ＨＱタイルと前記ＬＱタイルとのピクセル強度の差を表わす単一スカラー値を有し、
前記第２のテキスチャを、前記ＬＱタイルの解像度にダウンサンプリングすることと、ここにおいて、前記計算された第１のテキスチャは、前記ダウンサンプリングされた第２のテキスチャであり、をさらに含む、請求項１に記載の方法。
【請求項８】
前記第２のテキスチャは、前記ＨＱタイルと同一の解像度を有する、請求項７に記載の方法。
【請求項９】
前記しきい値は、構成可能である、請求項１に記載の方法。
【請求項１０】
ディスプレイデバイス上にデータを表示するためのシステムであって、
ディスプレイデバイスと、
メモリと、
前記メモリおよびディスプレイデバイスに結合された１以上のプロセッサと、ここにおいて、前記１以上のプロセッサは、
高品質（ＨＱ）タイルと対応する低品質（ＬＱ）タイルとの差に基づいて、テキスチャを計算し、
前記テキスチャを、前記ＬＱタイルのアルファチャンネル中に記憶し、
前記アルファチャンネルの属性が、しきい値を満たすとき、前記ＬＱタイルを、前記ディスプレイデバイス上に合成するように構成され、を備える、システム。
【請求項１１】
前記１以上のプロセッサは、
前記アルファチャンネルの前記属性が、前記しきい値を満たさないとき、前記ＨＱタイルを、前記ディスプレイデバイス上に合成するように構成される、請求項１０に記載のシステム。
【請求項１２】
前記ＬＱタイルは、前記ＨＱタイルの、より低解像度バージョンである、請求項１０に記載のシステム。
【請求項１３】
前記１以上のプロセッサは、
前記ＬＱタイル中の各ＬＱピクセルについて、前記ＨＱタイル中の対応するピクセル領域を識別し、
前記ピクセル領域の属性を計算し、
前記ピクセル領域の前記属性と前記ＬＱピクセルとの差を計算するように構成され、ここにおいて、前記ピクセル領域の前記属性と前記ＬＱピクセルとの差は、前記属性の値である、請求項１０に記載のシステム。
【請求項１４】
前記１以上のプロセッサは、
前記ピクセル領域の平均を計算するように構成され、前記平均は、前記ピクセル領域の前記属性である、請求項１３に記載のシステム。
【請求項１５】
前記１以上のプロセッサは、
前記ＬＱタイル中の各ＬＱピクセルについて、前記ＨＱタイル中の対応するピクセル領域を識別し、
前記ＬＱピクセルと前記ピクセル領域中の各ピクセルとの差を計算し、
前記ＬＱピクセルと前記ピクセル領域中の各ピクセルとの、１以上の差の平均を計算するように構成され、ここにおいて、前記ＬＱピクセルと前記ピクセル領域中の各ピクセルとの差は、前記属性の値である、請求項１０に記載のシステム。
【請求項１６】
前記１以上のプロセッサは、
前記ＬＱタイル中の各ＬＱピクセルについて、前記ＨＱタイル中の対応するピクセル領域を識別し、
前記ＬＱピクセルと前記ピクセル領域との差に基づいて、第２のテキスチャを計算し、
前記第２のテキスチャを、前記ＬＱタイルの解像度にダウンサンプリングするように構成され、ここにおいて、前記計算された第１のテキスチャは、前記ダウンサンプリングされた第２のテキスチャである、請求項１０に記載のシステム。
【請求項１７】
前記第２のテキスチャ中の各ピクセルは、前記ＨＱタイルと前記ＬＱタイルとのピクセル強度の差を表わす単一スカラー値を有し、ここにおいて、前記第２のテキスチャは、前記ＨＱタイルと同一の解像度を有する、請求項１６に記載のシステム。
【請求項１８】
前記しきい値は、構成可能である、請求項１０に記載のシステム。
【請求項１９】
高品質（ＨＱ）タイルと対応する低品質（ＬＱ）タイルとの差に基づいて、テキスチャを計算することと、
前記テキスチャを、前記ＬＱタイルのアルファチャンネル中に記憶することと、
前記アルファチャンネルの属性が、しきい値を満たすとき、前記ＬＱタイルを、前記ディスプレイデバイス上に合成することとを備える動作を実行するための、コンピュータ実行可能な命令を記憶する、コンピュータ可読媒体。
【請求項２０】
前記動作を実行するための、前記コンピュータ実行可能な命令は、
前記アルファチャンネルの前記属性が、前記しきい値を満たさないとき、前記ＨＱタイルを、前記ディスプレイデバイス上に合成することをさらに含む、請求項１９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]本出願は、２０１５年２月２０日に出願された、米国非仮特許出願第１４／６２８，０９７号の利益を主張し、その全体が参照により本明細書に組み込まれている。発明者：Shiu Wai HUI, Veluppillai ARULESAN, and Yida WANG。
【開示の分野】
【０００２】
[0002]本開示は、一般的に、コンピューティングシステムに関係し、より具体的には、グラフィックス処理システムにおいてコンテンツをレンダリングすることに関係する。
【背景】
【０００３】
[0003]コンピューティングデバイスは、計算およびグラフィックスレンダリングに関して高性能を提供する、１以上の高性能グラフィックス処理ユニット（ＧＰＵ）を装備し得る。コンピューティングデバイスは、ディスプレイのためのグラフィックスデータのレンダリングを加速するために、ＧＰＵを使用し得る。そのようなコンピューティングデバイスの例は、コンピュータワークステーション、モバイル電話（たとえば、スマートフォン）、埋め込みシステム、パーソナルコンピュータ、タブレットコンピュータ、およびビデオゲームコンソールを含み得る。
【０００４】
[0004]レンダリングは、一般的に、１以上の３次元（３Ｄ）グラフィックスオブジェクトを含み得る３Ｄグラフィックスシーンを、２次元（２Ｄ）ラスタライズされた画像データに変換する処理を指す。特に、ＧＰＵは、３Ｄグラフィックスシーンのレンダリングのための、少なくとも部分的ハードウェア加速を提供する３Ｄレンダリングパイプラインを含み得る。シーン中の３Ｄグラフィックスオブジェクトは、グラフィックスアプリケーションによって、１以上の３Ｄグラフィックスプリミティブ（primitives）（たとえば、点、線、三角形、パッチ、等）に細分され得、ＧＰＵは、シーンの３Ｄグラフィックスプリミティブを２Ｄラスタライズされた画像データに変換し得る。
【概要】
【０００５】
[0005]メモリ帯域幅を減らすように、ＬＱタイルを使用して、ディスプレイデバイス上にデータを表示するためのシステムおよび方法が開示される。ユーザは、表示品質またはウェブページの情報コンテンツの最小の劣化で、ウェブページを速くスクロールし得る。
【０００６】
[0006]いくつかの実施形態に従って、ディスプレイデバイス上にデータを表示するための方法は、高品質（ＨＱ）タイルと対応する低品質（ＬＱ）タイルとの差に基づいて、テキスチャを計算することを含む。方法はまた、ＬＱタイルのアルファチャンネル中に、テキスチャを記憶することを含む。方法は、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルを、スクリーン上に合成することをさらに含む。
【０００７】
[0007]いくつかの実施形態に従って、ディスプレイデバイス上にデータを表示するためのシステムは、ディスプレイデバイスおよびメモリを含む。システムはまた、メモリおよびディスプレイデバイスに結合された１以上のプロセッサを含む。１以上のプロセッサは、メモリを読み取り、ＨＱタイルと対応するＬＱタイルとの差に基づいて、テキスチャを計算するように構成される。プロセッサはまた、ＬＱタイルのアルファチャンネル中に、テキスチャを記憶するように構成される。プロセッサは、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルを、ディスプレイデバイス上に合成するようにさらに構成される。
【０００８】
[0008]いくつかの実施形態に従って、コンピュータ可読媒体は、ＨＱタイルと対応するＬＱタイルとの差に基づいて、テキスチャを計算することと、テキスチャをＬＱタイルのアルファチャンネル中に記憶することと、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルを、ディスプレイデバイス上に合成することとを含む、動作を実行するためのコンピュータ実行可能な命令を記憶する。
【０００９】
[0009]いくつかの実施形態に従って、ディスプレイデバイス上にデータを表示するための装置は、ＨＱタイルと対応するＬＱタイルとの差に基づいて、テキスチャを計算するための手段を含む。システムはまた、ＬＱタイルのアルファチャンネル中にテキスチャを記憶するための手段を含む。システムは、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルを、ディスプレイデバイス上に合成することをさらに含む。
【図面の簡単な説明】
【００１０】
[0010]本明細書の一部を形成する、添付図面は、発明の実施形態を例証し、本明細書とともに実施形態の原理を説明するためにさらに役立つ。図面において、同様の参照番号は、同一の、または機能的に同様の要素を示し得る。要素がまず現れる図面は、対応する参照番号の中の最も左の数字によって一般的に示される。
【図１】[0011]図１は、いくつかの実施形態に従って、レンダリング技法をインプリメントするために使用され得る、コンピューティングデバイスを例証するブロック図である。
【図２】[0012]図２は、いくつかの実施形態に従って、図１中のコンピューティングデバイスの、ＣＰＵ、ＧＰＵ、およびシステムメモリを、さらに詳細に例証するブロック図である。
【図３】[0013]図３は、いくつかの実施形態に従って、ブラウザによってレンダリングされるウェブページの例証である。
【図４】[0014]図４は、いくつかの実施形態に従って、ディスプレイデバイス上にＨＱタイルまたはＬＱタイルを合成する、ＧＰＵのための処理のフローチャートである。
【００１１】
[0015]本開示の実施形態、およびそれらの利点は、以降の詳細な説明を参照することによって、最もよく理解される。
【発明の詳細な説明】
【００１２】
Ｉ．概観
ＩＩ．例となるシステムアーキテクチャ
ＩＩＩ．ディスプレイデバイス上にコンテンツをレンダリング
Ａ．ＨＱタイルが入手可能でなく、ＬＱタイルが入手可能
Ｂ．ＨＱタイルおよびＬＱタイルが入手可能
１．ＬＱタイルと同一の解像度を有するテキスチャ「ＤＬＯＷ」を計算
２．ＬＱのアルファチャンネル中にテキスチャ「ＤＬＯＷ」を記憶
３．しきい値に基づく、ＬＱタイルとＨＱタイルとの差
ＩＶ．例となる方法
Ｉ．概観
[0016]以降の開示は、本開示の異なる特徴をインプリメントするための、多くの異なる実施形態、または例を提供することが理解される。いくつかの実施形態は、これらの特定の詳細のいくつか、または全て無しで実施され得る。コンポーネント、モジュールおよび配列の特定の例は、本開示を簡略化するために以下に説明される。これらは、もちろん、単なる例にすぎず、限定されることは意図されない。
【００１３】
[0017]ウェブページは、グラフィックス、ビデオ、画像、テキスト、等を含み得る豊富なマルチメディアコンテンツでいっぱいである。ウェブページレンダリングの最中、ウェブブラウザは、ウェブページをタイルに区画し得る。各タイル内部のウェブページコンテンツは、ビットマップ中にラスタライズされ、ついで、ビットマップは、ＧＰＵがアクセスするテキスチャ中にローディングされ得る。各ビットマップは、スクリーンの一部をカバーするタイルに対応し得る。ウェブページを表示するために、ＧＰＵは、スクリーン上にタイルを合成する。ユーザが、ウェブページフレームをスクロールするとき、ブラウザ窓中に新しいタイルが現れ得、古いタイルはブラウザ窓から消え得る。
【００１４】
[0018]ＧＰＵは、異なる解像度を有するタイルを生成し得る。低品質（ＬＱ）タイルは、対応する高品質（ＨＱ）タイルの、より低い解像度バージョンである。ＨＱタイルは、スクリーンと同一の解像度を有し得るタイルである一方、ＬＱタイルは、ＬＱタイルによってオーバーラップされた情報コンテンツの、スケールダウンされたバージョンであり得る。ＬＱタイルは、ＨＱタイルと呼ばれる完全にレンダリングされるタイルと比較して、レンダリングするのに比較的速く、ＬＱタイルによってオーバーラップされたウェブページコンテンツのサムネールスケッチを急速に伝えるために使用され得る。
【００１５】
[0019]速いスクロールの最中、ブラウザ窓中に新しいフレームが現れる前に、フレームのＨＱタイルの全てはレンダリングされ得ない。ウェブブラウザにおけるウェブページのスムーズなスクローリングを許容するために、秒あたり約６０フレームのフレームレート（ＦＰＳ）が所望され得る。残念ながら、このフレームレートは、典型的に、高メモリ帯域幅を必要とする。ユーザが、ウェブページフレームを速くスクロールし、スクリーン上に晒されたウェブページのＨＱタイルが、未だレンダリングされていない場合、ユーザは、ブランク領域を見、全体的ユーザ経験が混乱および劣化し得る。ＨＱタイルをレンダリングする高コストに起因して、ウェブページの、より低い解像度バージョンがスクローリングの最中、表示でき得、よって、スクローリングの最中、ブランキングが起こるのを減らすように、対応するＬＱタイルが生成され、スクリーン上に合成され得る。情報コンテンツを完全に表示するために、ＬＱタイルは、ＨＱタイル中にレンダリングされ得る。
【００１６】
[0020]高解像度デバイスについて、ウェブページ全体を表示するために、大量のメモリ帯域幅が必要であり得る。スクリーン上にＨＱタイルを合成することは、対応するＬＱタイルを合成することと比較して、性能を劣化するのに加えて、大量のメモリ帯域幅および電力を消費し得る。性能を改善し、電力消費を減らすために、メモリ帯域幅を減らすことが所望され得る。メモリ帯域幅を減らす従来の技法は、ハードウェアテキスチャ圧縮を実行することを含む。ＧＰＵは、ハードウェアテキスチャ圧縮を実行できるが、この技法は、ハードウェア支援が必要であり、高価であり得るので、望ましくないであろう。代替的に、テキスチャ圧縮のためのソフトウェア技法も使用され得る。しかしながら、ソフトウェアテキスチャ圧縮は、必要とされる中央処理ユニット（ＣＰＵ）処理の量のため、望ましくないであろう。
【００１７】
[0021]本開示の技法は、ウェブページの速いスクローリングの最中、表示品質または情報コンテンツの最小の劣化で、ウェブブラウザがウェブページのフレームを急速にレンダリングすることを可能としつつ、これらの不利を克服する解を提供し得る。ＧＰＵが、ディスプレイデバイス上にＨＱタイルまたはその対応するＬＱタイルの何れかを合成する、システムおよび方法が開示される。ＬＱタイルおよびＨＱタイルがユーザの経験を劣化しないくらい十分類似している場合、ＧＰＵは、（ＬＱタイルをＨＱタイルで置き換えること無しに、）対応するＨＱタイルよりもむしろＬＱタイルを合成し得る。ＬＱタイルは、それらの対応するＨＱタイルよりも小さく、より少ないメモリ空間を消費する。ＨＱタイルよりもむしろＬＱタイルを合成することによって、ＧＰＵによる合成の最中にアクセスされるメモリの量が減らされる。よって、ＬＱタイルを使用することは、タイル合成の最中に必要とされるメモリ帯域幅を減らし得る。
【００１８】
[0022]いくつかの実施形態において、ＧＰＵは、ＨＱタイルおよび対応するＬＱタイルを生成し、ＨＱタイルとＬＱタイルとの差に基づいて、テキスチャを計算する。ＬＱタイル中の各ピクセルは、３つのカラーチャンネル、およびアルファチャンネルを有し得る。アルファチャンネルは、典型的に、所与のピクセルに対するオブジェクトフラグメントの不透明度を記述する属性を有する。不透明度を記憶するよりもむしろ、ＧＰＵは、ＬＱタイルのアルファチャンネル中にテキスチャを記憶し得る。そうすることによって、メモリ空間が節約され得る。テキスチャは、ＬＱタイル中のピクセル当たりの単一スカラー値を含み得る。ＬＱタイル中のピクセルに対応する単一スカラー値は、ピクセルと対応するＨＱタイル中の複数のピクセルとの差であり、アルファチャンネルの属性の値として記憶され得る。
【００１９】
[0023]ＧＰＵは、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルを、ディスプレイデバイス上に合成し得る。例において、しきい値より下である属性は、しきい値を満たす。そのような属性は、ディスプレイデバイス上にＨＱタイルの代わりにＬＱタイルを合成することが、ユーザの経験を劣化しないであろうように、ＬＱタイルおよびＨＱタイルがお互いに十分に類似しているということを示し得る。代替的に、ＧＰＵは、属性がしきい値を満たさないとき、ＨＱタイルを、ディスプレイデバイス上に合成し得る。しきい値よりも下で無い属性は、ＨＱタイルよりもむしろＬＱタイルを合成するほどには、ＬＱタイルおよびＨＱタイルは、お互いに十分に類似していないということを示し得る。従って、対応するＬＱタイルの代わりに、ＨＱタイルが、ディスプレイデバイス上に合成されるべきである。
【００２０】
ＩＩ．例となるシステムアーキテクチャ
[0024]図１は、いくつかの実施形態に従って、レンダリング技法をインプリメントするために使用され得るコンピューティングデバイス１０２を例証するブロック図である。コンピューティングデバイス１０２は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、コンピュータワークステーション、ビデオゲームプラットフォームまたはコンソール、ワイヤレスデバイス（たとえば、モバイル電話、セルラー電話、衛星電話、および／またはモバイル電話ハンドセット）、ポータブルビデオゲームデバイスまたは携帯情報端末（ＰＤＡ）のようなハンドヘルドデバイス、パーソナルミュージックプレーヤ、ビデオプレーヤ、テレビジョン、テレビジョンセットトップボックス、メインフレームコンピュータ、グラフィカルデータを処理および／または表示する任意の他のタイプのデバイス、を含み得る。
【００２１】
[0025]図１の例において、例証されているように、コンピューティングデバイス１０２は、ユーザインターフェース１０４、ＣＰＵ１０６、メモリコントローラ１０８、システムメモリ１１０、グラフィックス処理ユニット（ＧＰＵ）１１２、ＧＰＵキャッシュ１１４、ディスプレイインターフェース１１６、ディスプレイデバイス１１８、およびバス１２０を含み得る。ユーザインターフェース１０４、ＣＰＵ１０６、メモリコントローラ１０８、ＧＰＵ１１２、およびディスプレイインターフェース１１６は、バス１２０を使用して、お互いに通信し得る。図１に指し示される異なるコンポーネント間のバスおよび通信インターフェースの特定の構成は単なる例であり、同一のまたは異なるコンポーネントを持った、コンピューティングデバイスの他の構成、および／または他のグラフィックス処理システムが、本開示の技法をインプリメントするために使用され得ることに留意されるべきである。
【００２２】
[0026]ＣＰＵ１０６は、コンピューティングデバイス１０２の動作を制御する汎用プロセッサまたは専用プロセッサを含み得る。ＣＰＵ１０６に１以上のソフトウェアアプリケーションを実行させるために、ユーザは、コンピューティングデバイス１０２に、入力を提供し得る。ＣＰＵ１０６上で実行するソフトウェアアプリケーションは、例えば、オペレーティングシステム、ソフトウェアアプリケーション１２２（たとえば、ワードプロセッサアプリケーション、電子メールアプリケーション、スプレッドシートアプリケーション、メディアプレーヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインターフェース（ＧＵＩ）アプリケーション、またはブラウザ）または別のプログラムを含み得る。ユーザは、キーボード、マウス、マイクロフォン、タッチパッド、またはユーザインターフェース１０４を介してコンピューティングデバイス１０２に結合される別の入力デバイスのような、１以上の入力デバイス（示されていない）を介して、入力をコンピューティングデバイス１０２に提供し得る。
【００２３】
[0027]ソフトウェアアプリケーション１２２は、ディスプレイデバイス１１８にグラフィックスデータをレンダリングするように、ＧＰＵ１１２に命令する、１以上のグラフィックスレンダリング命令を含み得る。いくつかの例において、ソフトウェア命令は、オープングラフィクスライブラリー（ＯｐｅｎＧＬ．ＲＴＭ．）ＡＰＩ、オープングラフィクスライブラリー埋め込みシステム（ＯｐｅｎＧＬ  ＥＳ）ＡＰＩ、ディレクト３Ｄ  ＡＰＩ、Ｘ３Ｄ  ＡＰＩ、レンダーマンＡＰＩ、ウェブＧＬ  ＡＰＩ、または任意の他の公共または専有標準グラフィックスＡＰＩのような、グラフィックスアプリケーションプログラミングインターフェース（ＡＰＩ）に準拠し得る。グラフィックスレンダリング命令を処理するために、ＣＰＵ１０６は、ＧＰＵ１１２が全てまたはいくらかのグラフィックスデータをレンダリングするようにさせる、１以上のグラフィックスレンダリングコマンドを、ＧＰＵ１１２に発する。レンダリングされるグラフィックスデータは、例えば、点、線、三角形、四角形、三角形ストリップなどのグラフィックスプリミティブのリストを含み得る。
【００２４】
[0028]メモリコントローラ１０８は、システムメモリ１１０に出入りするデータの移送を容易にする。例えば、メモリコントローラ１０８は、コンピューティングデバイス１０２内のコンポーネントにメモリサービスを提供するために、メモリ読み取りおよび書き込みコマンドを受け、メモリシステム１１０に関するそのようなコマンドの要求に応じて処理し得る。メモリコントローラ１０８は、システムメモリ１１０に通信的に結合される。メモリコントローラ１０８は、図１の例となるコンピューティングデバイス１０２において、ＣＰＵ１０６およびシステムメモリ１１０の両方とは別個の処理モジュールであると例証されているが、他の例では、メモリコントローラ１０８の機能性の内のいくつかまたは全ては、ＣＰＵ１０６およびシステムメモリ１１０の一方または両方にインプリメントされ得る。
【００２５】
[0029]システムメモリ１１０は、ＣＰＵ１０６による実行のためにアクセス可能なプログラムモジュールおよび／または命令、ならびに／あるいは、ＣＰＵ１０６上で実行されるプログラムにより使用するためのデータを記憶し得る。例えば、システムメモリ１１０は、ユーザアプリケーションおよびそのアプリケーションに関連付けられたグラフィックスデータを記憶し得る。システムメモリ１１０は、追加的に、コンピューティングデバイス１０２の他のコンポーネントによる使用のためのおよび／またはそれらによって生成される情報を記憶し得る。例えば、システムメモリ１１０は、ＧＰＵ１１２のためのデバイスメモリとして機能し得、ＧＰＵ１１２によって操作されるデータに加え、ＧＰＵ１１２によって実行される動作に起因するデータを記憶し得る。例えば、システムメモリ１１０は、テクスチャバッファ、深度バッファ、ステンシルバッファ、頂点バッファ、フレームバッファ、または、そのようなものの任意の組み合わせを記憶し得る。加えて、システムメモリ１１０は、ＧＰＵ１１２による処理のためのコマンドストリームを記憶し得る。システムメモリ１１０は、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気データ媒体、または光記憶媒体のような、１以上の揮発性および不揮発性メモリまたは記憶デバイスを含み得る。
【００２６】
[0030]ＧＰＵ１１２は、グラフィックス動作を実行して、１以上のグラフィックスプリミティブをディスプレイデバイス１１８にレンダリングし、表示のために、画像をピクセルにテキスチャマッピングするように構成され得る。ＣＰＵ１０６上で実行されるソフトウェアアプリケーション１２２が、グラフィックス処理を必要とするとき、ＣＰＵ１０６は、ディスプレイデバイス１１８へのレンダリングのために、グラフィックスコマンドおよびグラフィックスデータをＧＰＵ１１２に提供し得る。グラフィックスコマンドは、ドローコールコマンド、ＧＰＵ状態プログラミングコマンド、メモリ転送コマンド、汎用コンピューティングコマンド、カーネル実行コマンド、等を含み得る。いくつかの例において、ＣＰＵ１０６は、システムメモリ１１０にコマンドおよびグラフィックスデータを書きこむことによって、ＧＰＵ１１２にコマンドおよびグラフィックスデータを提供し得、システムメモリ１１０は、ＧＰＵ１１２によってアクセスされ得る。例において、グラフィックスデータは、テキスチャを含み得、テキスチャは、システムメモリ１１０に記憶され、ディスプレイデバイス１１８上のピクセルについて、カラーを決定するために、ＧＰＵ１１２によって使用される。いくつかの例において、ＧＰＵ１１２は、ＣＰＵ１０６上で実行されるアプリケーションのための汎用コンピューティングを実行するようにさらに構成され得る。
【００２７】
[0031]ＧＰＵ１１２は、いくつかの事例において、ベクトル操作をＣＰＵ１０６よりも効率的に処理することを提供する、高度に並列な構造で築かれ得る。例えば、ＧＰＵ１１２は、並列の手法で、複数の頂点、制御ポイント、ピクセルおよび／または他のデータを走査するように構成される、複数の処理ユニットを含み得る。ＧＰＵ１１２の高度に並列な性質は、いくつかの事例において、ＣＰＵ１０６を使用して画像をレンダリングするよりも、ＧＰＵ１１２が、グラフィックス画像（たとえば、ＧＵＩおよび２次元（２Ｄ）および／または３次元（３Ｄ）グラフィックスシーン）をディスプレイデバイス１１８上に、急速にレンダリングすることを可能にし得る。加えて、ＧＰＵ１１２の高度に並列な性質は、ＧＰＵ１１２が、汎用コンピューティングアプリケーションについての、あるタイプのベクトルおよびマトリックス操作を、ＣＰＵ１０６よりも急速に処理することを可能にし得る。
【００２８】
[0032]ＧＰＵ１１２は、いくつかの事例において、コンピューティングデバイス１０２のマザーボードに集積化され得る。他の事例において、ＧＰＵ１１２は、コンピューティングデバイス１０２のマザーボード中のポートにインストールされるグラフィックスカード上に存在し得、または、そうでなければコンピューティングデバイス１０２と相互動作するように構成される周辺デバイス内に取り込まれ得る。さらなる事例において、ＧＰＵ１１２は、ＣＰＵ１０６と同一のマイクロチップ上に配置され得、チップ上システム（ＳｏＣ）を形成する。ＧＰＵ１１２は、１以上のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、または他の同等の集積回路またはディスクリート論理回路のような、１以上のプロセッサを含み得る。
【００２９】
[0033]ＧＰＵ１１２は、ＧＰＵキャッシュ１１４に直接的に結合され得る。よって、ＧＰＵ１１２は、バス１２０を必ずしも使用することなく、ＧＰＵキャッシュ１１４からデータを読み取り、それにデータを書き込み得る。言い換えれば、ＧＰＵ１１２は、オフチップメモリの代わりにローカル記憶装置を使用して、データをローカルに処理し得る。これは、ＧＰＵ１１２が、重いバストラフィックを経験し得る、ＧＰＵ１１２がバス１２０を介してデータを読み取るおよび書き込む必要性を減らすことによって、より効率的な手法で動作することを許容する。ＧＰＵキャッシュ１１４は、たとえば、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、等のような、１以上の揮発性または不揮発性メモリ、または記憶デバイス含み得る。しかしながら、いくつかの事例において、ＧＰＵ１１２は、別個のキャッシュを含まず、代わりに、バス１２０を介してシステムメモリ１１０を使用し得る。
【００３０】
［0034]ＣＰＵ１０６および／またはＧＰＵ１１２は、レンダリングされた画像データを、システムメモリ１１０内に割り当てられたフレームバッファ１１０に記憶し得る。ＣＰＵ１０６上で実行されるソフトウェアアプリケーションは、画像データ（たとえば、テクセルカラー、幅、高さ、およびカラー深度）を、システムメモリ１１０に記憶し得る。ディスプレイインターフェース１１６は、フレームバッファからデータを取り出し、レンダリングされる画像データによって表示される画像を表わすように、ディスプレイデバイス１１８を構成し得る。いくつかの例において、ディスプレイインターフェース１１６は、フレームバッファから取り出されたデジタル値を、ディスプレイデバイス１１８によって消費可能なアナログ信号へ変換するように構成されたデジタル／アナログ変換器（ＤＡＣ）を含み得る。他の例において、ディスプレイインターフェース１１６は、処理のために、デジタル値を直接ディスプレイデバイス１１８に渡し得る。
【００３１】
[0035]ディスプレイデバイス１１８は、モニタ、テレビジョン、投影デバイス、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイパネル、発光ダイオード（ＬＥＤ）アレイ、ブラウン管（ＣＲＴ）ディスプレイ、表面導電放射ディスプレイ（ＳＥＤ）、レーザテレビジョンディスプレイ、ナノ結晶ディスプレイ、または別のタイプのディスプレイユニットを含み得る。ディスプレイデバイス１１８は、コンピューティングデバイス１０２内に集積化され得る。例えば、ディスプレイデバイス１１８は、モバイル電話ハンドセットまたはタブレットコンピュータのスクリーンであり得る。代替的に、ディスプレイデバイス１１８は、ワイヤードまたはワイヤレス通信リンクを介して、コンピューティングデバイス１０２に結合されたスタンドアローンデバイスであり得る。例えば、ディスプレイデバイス１１８は、ケーブルまたはワイヤレスリンクを介して、パーソナルコンピュータに接続されたコンピュータモニタまたはフラットパネルディスプレイであり得る。
【００３２】
[0036]バス１２０は、第１、第２、および第３世代のバス構造およびバスプロトコルと、共有されたバス構造およびバスプロトコルと、ポイントツーポイントバス構造およびバスプロトコルと、一方向バス構造およびバスプロトコルと、双方向バス構造およびバスプロトコルとを含む、任意のバス構造およびバスプロトコルの組み合わせを使用してインプリメントされ得る。バス１２０をインプリメントするために使用され得る、異なるバス構造およびプロトコルの例は、たとえば、ハイパートランスポートバス、インフィニバンドバス、アドバンストグラフィックスポートバス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレスバス、アドバンストマイクロコントローラバスアーキテクチャ（ＡＭＢＡ）、アドバンストハイパーフォーマンスバス（ＡＨＢ）、ＡＭＢＡアドバンストペリフェラルバス（ＡＰＢ）、およびＡＭＢＡアドバンストエクステンシブルインターフェース（ＡＸＩ）バスを含む。他のタイプのバス構造およびプロトコルがまた、使用され得る。
【００３３】
[0037]図２は、いくつかの実施形態に従って、図１におけるコンピューティングデバイス１０２の、ＣＰＵ１０６、ＧＰＵ１１２、システムメモリ１１０をさらに詳細に例証するブロック図である。図２に指し示されるように、ＣＰＵ１０６は、ＧＰＵ１１２およびシステムメモリ１１０に通信的に結合され、ＧＰＵ１１２は、ＣＰＵ１０６およびシステムメモリ１１０に通信的に結合される。ＧＰＵ１１２は、いくつかの事例において、ＣＰＵ１０６とマザーボード上で集積化され得る。
【００３４】
[0038]ＣＰＵ１０６は、ブラウザ２２４、グラフィックスＡＰＩ２２６、ＧＰＵドライバ２２８、およびオペレーティングシステム２３０のようなソフトウェアアプリケーションを実行するように構成される。ブラウザ２２４は、グラフィックス画像を表示させる１以上の命令、および／またはＧＰＵ１１２によって、非グラフィックスタスク（たとえば、汎用コンピューティングタスク）を実行させる１以上の命令を含み得る。ブラウザ２２４は、説明された実施形態に従って、様々な方法を実行するように動作する複数のハードウェアコンポーネントおよび／またはソフトウェアコンポーネントを含み、またはインプリメントし得る。
【００３５】
[0039]ユーザは、ブラウザ２２４をウェブページのユニフォームリソースロケータ（ＵＲＬ）に向け得る。ブラウザ２２４は、ＵＲＬによって参照されたハイパーテキストマークアップラングエッジ（ＨＴＭＬ）をローディングし、スクリーン（たとえば、図１中のディスプレイデバイス１１８）上にウェブページをレンダリングし得る。ブラウザ２２４が、ＧＰＵ１１２に命令を発するように説明され得るが、コンピューティングデバイス１０２において実行可能で、グラフィックスデータを処理および／または表示する任意のソフトウェアアプリケーションが、命令を発するために使用され得ることが理解されるべきである。追加的に、ウェブページは、レンダリング可能なコンテンツとして説明されるが、これは、制限することを意図してはおらず、レンダリング可能な／レンダリングされたコンテンツは、（インターネットのようなネットワークと関連付けされた、または関連付けられていない）ページ上の任意のテキスト、画像、またはグラフィックスであり得る。
【００３６】
[0040]図３は、いくつかの実施形態に従って、ブラウザ２２４によってレンダリングされた、ウェブページ３００の例証である。図２および３は、本開示のレンダリング技法をより良く説明するために、一緒に論じられるであろう。ブラウザ２２４は、ブラウザ窓においてウェブページ３００のフレームを表示し得る。
【００３７】
[0041]ウェブページレンダリングの最中、ブラウザ２２４は、ウェブページ３００を複数のタイル３０２に区画する。ウェブページ３００は、３行および４列の、合計１２個のタイル３０２に分割される。タイル３０２は、情報を伝えるビデオ等のための、グラフィックス、テキスト３０４、画像３０６および３０８、アイコン、リンクとオーバーラップし得る。ブラウザ２２４は、各タイル内部のウェブページコンテンツを、ビットマップ中にラスタライズする。各ビットマップは、ディスプレイデバイス１１８の一部をカバーするタイルに対応する。
【００３８】
[0042]ブラウザ２２４は、複数のタイル３０２のうちの１以上のタイルの、１以上のバージョンをラスタライズし得る。例において、ブラウザ２２４は、各タイルのＬＱバージョンおよびＨＱバージョンをラスタライズする。ブラウザ２２４は、タイル３０２のＬＱバージョンをＬＱビットマップ２６０中にラスタライズし、タイル３０２の対応するＨＱバージョンをＨＱビットマップ２６２中にラスタライズし得る。ブラウザ２２４は、タイルのＬＱバージョンを、タイルのＨＱバージョンより小さいタイルにラスタライズし得る。対応するＨＱタイルよりも小さく、より少ない情報を含むので、ＣＰＵ１０６が、タイル３０２のＬＱバージョンにおけるコンテンツをラスタライズするために、より少ない時間しか取らないであろう。そのようであるので、いくつかの実施形態において、ブラウザ２２４は、ＨＱビットマップ２６２の前にＬＱビットマップ２６０を生成する。ＨＱビットマップ２６２は、ＬＱビットマップ２６０が生成されている最中にバックグラウンドで、またはＬＱビットマップ２６０が生成された後に、生成され得る。
【００３９】
[0043]ビットマップは、ＧＰＵ１１２にはアクセス不可能であり得る。ＧＰＵ１１２にビットマップへのアクセスを提供するために、ブラウザ２２４は、ビットマップを、テキスチャメモリ２６４中にアップロードし得る。例において、ブラウザ２２４は、ＬＱビットマップ２６０をＬＱタイル２７０中にアップロードし、ＨＱビットマップ２６２をＨＱタイル２７２中にアップロードする。ＬＱタイル２７０は、ＨＱタイル２７２に対応し、ＨＱタイル２７２の、より低い解像度バージョンである。例において、ＨＱタイル２７２は、ディスプレイデバイス１１８の５１２ｘ５１２テクセル領域にマッピングし得、対応するＬＱタイル２７０は、ディスプレイデバイス１１８の３２ｘ３２テクセル領域にマッピングし得る。テクセル領域は、１以上のテクセルを含み、テクセルは、テキスチャメモリ２６４中のピクセルである。
【００４０】
[0044]ＨＱタイルをライスタライズし、合成することにおける高コストに起因して、スクローリングの最中、ＨＱタイルに対応するＬＱタイルが、ウェブページ３００の、より低い解像度バージョンをレンダリングするために使用され得、よって、メモリ帯域幅とともにスクローリングの最中、ブランキングの発生が減らされ得る。図２において、１つのＬＱビットマップおよびＨＱビットマップが例証されているが、１以上のＬＱビットマップおよび／または１以上のＨＱビットマップが、システムメモリ１１０に記憶され得ることが理解されるべきである。同様に、図２において、１つのＬＱタイルおよびＨＱタイルが例証されているが、１以上のＬＱタイルおよび／または１以上のＨＱタイルが、システムメモリ１１０に記憶され得ることが理解されるべきである。追加的に、ＨＱタイルは、１つの対応する、より低い解像度バージョンを有するように説明され得る。これは、制限されることを意図してはおらず、ＨＱタイルは、１よりも多い対応する、より低い解像度バージョンを有し得ることが理解されるべきである。
【００４１】
[0045]ブラウザ２２４は、グラフィックスＡＰＩ２２６に、命令を発し得、グラフィックスＡＰＩ２２６は、ブラウザ２２４から受けた命令を、ＧＰＵドライバ２２８によって消費可能なフォーマットに変換し得る。ＧＰＵドライバ２２８は、グラフィックスＡＰＩ２２６を介して、ブラウザ２２４から命令を受け、命令の要求に応じて処理するようにＧＰＵ１１２の動作を制御する。例えば、ＧＰＵドライバ２２８は、１以上のコマンド２４０を作成し、コマンド２４０をシステムメモリ１１０中（たとえば、テキスチャメモリ２６４中）に配置し、ＧＰＵ１１２に、コマンド２４０を実行するように命令し得る。いくつかの例において、ＧＰＵドライバ２２８は、コマンド２４０をシステムメモリ１１０中に配置し、オペレーティングシステム２３０を介して、たとえば、１以上のシステムコールを介して、ＧＰＵ１１２と通信し得る。
【００４２】
[0046]システムメモリ１１０は、１以上のコマンド２４０を記憶し得る。コマンド２４０は、１以上のコマンドバッファ（たとえば、リングバッファ）中に記憶され、１以上の状態コマンドおよび／または１以上のドローコールコマンドを含み得る。状態コマンドは、ドローカラーのような、ＧＰＵ１１２における状態変数のうちの１以上を変化するように、ＧＰＵ１１２に命令し得る。ドローコールコマンドは、ディスプレイデバイス１１８上にシステムメモリ１１０中に記憶された１以上の頂点のグループによって定義された（たとえば、頂点バッファにおいて定義された）幾何学的配置をレンダリングするように、またはテキスチャ（たとえば、ＬＱタイル２７０またはＨＱタイル２７２）のコンテンツを、描くように、ＧＰＵ１１２に命令し得る。
【００４３】
[0047]ＧＰＵ１１２は、コマンドエンジン２３２および１以上の処理ユニット２３４を含む。コマンドエンジン２３２は、システムメモリ１１０中に記憶されたコマンド２４０を取り出し、実行する。状態コマンドを受けることに応答して、コマンドエンジン２３２は、状態コマンドに基づいて、ＧＰＵ１１２中の１以上の状態レジスタを、特定の値に設定するように構成され得る。ドローコールコマンドを受けることに応答して、コマンドエンジン２３２は、システムメモリ１１０中に記憶されたプリミティブタイプデータに基づいて、処理ユニット２３４に、頂点によって表わされた幾何学的配置をレンダリングさせるように、構成され得る。コマンドエンジン２３２はまた、シェーダプログラムバインディングコマンドを受け、シェーダプログラムバインディングコマンドに基づいて、プログラム可能な処理ユニット２３４のうちの１以上中に、特定のシェーダプログラムをローディングし得る。
【００４４】
[0048]処理ユニット２３４は、１以上の処理ユニットを含み得、それらの各々は、プログラム可能な処理ユニットまたは固定された機能処理ユニットであり得る。プログラム可能な処理ユニットは、例えば、ＣＰＵ１０６からＧＰＵ１１２上にダウンロードされた、１以上のシェーダプログラムを実行するように構成されたプログラム可能なシェーダユニットを含み得る。いくつかの例において、シェーダプログラムは、ＯｐｅｎＧＬシェーディングランゲージ（ＧＬＳＬ）、ハイレベルシェーディングランゲージ（ＨＬＳＬ）、グラフィックスのためのＣ言語（Ｃ  ｆｏｒ  Ｇｒａｐｈｉｃｓ）（Ｃｇ）シェーディングランゲージ、等のような、ハイレベルシェーディングランゲージで書かれたプログラムのコンパイルされたバージョンであり得る。
【００４５】
[0049]いくつかの例において、プログラム可能なシェーダユニットは、並列、たとえば、ＳＩＭＤパイプラインで動作するように構成された複数の処理ユニットを含み得る。プログラム可能なシェーダユニットは、シェーダプログラム命令を記憶するプログラムメモリと、実行状態レジスタ、たとえば、プログラムメモリ中の実行されている現在の命令またはフェッチされる次の命令を示すプログラムカウンタレジスタとを有し得る。処理ユニット２３４中のプログラム可能なシェーダユニットは、例えば、頂点シェーダユニット、ピクセルシェーダユニット、ジオメトリシェーダ、ハルシェーダユニット、ドメインシェーダユニット、コンピュートシェーダユニット、および／またはユニファイドシェーダユニットを含み得る。１以上の処理ユニット２３４は、シェーダプログラムを実行するように構成された１以上のシェーダユニットを含み得る、３Ｄグラフィックスレンダリングパイプラインを形成し得る。ブラウザ２２４は、ＧＰＵ１１２に、異なるシェーダプログラムを送り得る。
【００４６】
ＩＩＩ．ディスプレイデバイス上にコンテンツをレンダリング
[0050]例において、コマンド２４０は、ウェブページ３００をレンダリングするためのコマンドを含む。処理ユニット２３４は、レンダリングプロセスの合成ステージの最中、ディスプレイ１１８上にＬＱタイル２７０およびＨＱタイル２７２の精々１つを合成する、フラグメントシェーダまたはピクセルシェーダ２３７を含む。ピクセルシェーダ２３７はまた、ディスプレイデバイス１１８上に表示された、テキスチャオブジェクト（たとえば、テキスチャ画像）によってカバーされたピクセルのためのカラーを計算し、設定し得る。本開示において、用語「フラグメント」および「ピクセル」は、交換可能に使用され得る。
【００４７】
[0051]ディスプレイデバイス１１８の各ピクセルは、関連付けられた情報を有し得る。いくつかの例において、各ピクセルは、３つのカラーチャンネル、および１つのアルファチャンネルを有する。カラーチャンネルは、そのピクセルの特定の成分の関数であり、特定の成分は、典型的には、赤、緑、および青（ＲＧＢ）成分である。従って、ピクセルは、赤チャンネル、緑チャンネル、青チャンネル、およびアルファチャンネルを有し得る。異なる強度における、これらの３つのカラーの組み合わせは、各ピクセルに対するフルレンジの可視スペクトルを表わし得る。追加的に、アルファチャンネルは、各ピクセルの不透明度を示す属性を有し得る。合成プログラムにおいて、属性が検査されるとき、１の属性値（白）は、１００パーセントの不透明度を表わし、ピクセルの興味領域の全体をカバーする。対照的に、ゼロの属性値（黒）は、１００パーセントの透明度を表わす。
【００４８】
Ａ．ＨＱタイルは入手可能でなく、ＬＱタイルは入手可能
[0052]いくつかの実施形態において、レンダリングプロセスの合成ステージの最中、ＧＰＵ１１２は、ＬＱタイル２７０またはＨＱタイル２７２の何れかをディスプレイデバイス１１８上に、合成し得る。ＬＱタイルは、それらの対応するＨＱタイルよりも小さく、より少ないメモリ空間を消費する。ＬＱタイル２７０は、ＨＱタイル２７２よりも低い解像度を有するコンテンツ（たとえば、ビデオのための、グラフィックス、テキスト、画像、アイコン、リンク等）を含み得る。従って、ＬＱタイル２７０は、ＨＱタイル２７２よりも少ない情報を含むので、ＧＰＵ１１２が、ＨＱタイル２７２の代わりに、ＬＱタイル２７０をディスプレイデバイス１１８上に合成するのは、より急速であり得る。
【００４９】
[0053]ユーザがウェブページフレームをスクロールするとき、ブラウザ窓に新しいタイルが現れ得、古いタイルはブラウザ窓から消え得る。速いスクローリングの最中、フレームのＨＱタイルの全てが入手可能ではない。例えば、ＨＱタイル２７２と比較して、ＬＱタイル２７０を生成することは、より急速であるので、ＨＱタイル２７２が入手可能になる前に、ＬＱタイル２７０は、入手可能であり得る。ここで、入手可能でないＨＱタイルが表示されるであろう場所であるブランク領域をユーザが見ないように、ＬＱタイル２７０が、ディスプレイデバイス１１８上に合成され得る。ブランク領域は、全体的ユーザ経験を混乱および劣化させ得る。
【００５０】
Ｂ．ＨＱタイルおよびＬＱタイルが入手可能
[0054]代替的に、ＬＱタイル２７０およびＨＱタイル２７２の両方が入手可能である場合、ユーザがＬＱタイルを見ていることに気づき得ず、または混乱しないくらいに、ＬＱタイルおよびＨＱタイルが互いに十分に類似しているならば、（ＬＱタイル２７０をＨＱタイル２７２で置き換えること無しに）ＨＱタイル２７２よりもむしろＬＱタイル２７０をディスプレイデバイス１１８上に合成することが所望され得る。ＧＰＵ１１２は、ＨＱタイル２７２またはＬＱタイル２７０のいずれかを、ディスプレイデバイス１１８上に合成するかを決定し得る。図４は、いくつかの実施形態に従って、ＧＰＵ１１２が、ＨＱタイル２７２またはＬＱタイル２７０を、ディスプレイデバイス１１８上に合成するためのプロセスのフローチャート４００である。方法４００は、限定されることを意味せず、他のアプリケーションで使用され得る。
【００５１】
１．ＬＱタイルと同一の解像度を有するテキスチャ「ＤＬＯＷ」を計算
[0055]処置４０２において、テキスチャは、ＨＱタイル２７２と対応するＬＱタイル２７０との差に基づいて、計算される。例において、ブラウザ２２４は、テキスチャＤＬＯＷを計算するために、グラフィックスＡＰＩ２２６を介して、ＧＰＵ１１２に命令を送る。ＧＰＵ１１２は、異なる解像度を有する（たとえば、ＨＱタイル２７２およびＬＱタイル２７０に対応する）２つの画像間の差を比較する。例において、ピクセルシェーダ２３７は、タイル間の差に基づいて、テキスチャＤＬＯＷを計算することによって、ＨＱタイル２７２とＬＱタイル２７０との類似度を決定する。
【００５２】
[0056]ＬＱタイル２７０中のピクセルは、ＬＱピクセルと呼ばれ得、ＨＱタイル２７２中のピクセルは、ＨＱピクセルと呼ばれ得る。ＨＱタイルおよびＬＱタイルは、異なる数のピクセルを有する。ＬＱタイル２７０中の各ＬＱピクセルは、ＨＱタイル２７２中の複数のＨＱピクセルに、マッピングされ得る。例において、ＬＱタイル２７０は、ＨＱタイル２７２中の５１２ｘ５１２ピクセル領域にマッピングする、３２ｘ３２ピクセル領域である。ＬＱタイル２７０中の各ＬＱピクセルについて、テキスチャＤＬＯＷは、ＬＱピクセルと、ＬＱピクセルがマッピングされた、ＨＱタイル２７２中の複数のＨＱピクセルとの差を表示する差値を含み得る。テキスチャＤＬＯＷは、ＬＱタイル２７０と同一の解像度を有する。テキスチャＤＬＯＷにおける各ピクセルは、ＬＱピクセルと、ＬＱピクセルがマッピングされた複数のＨＱピクセルとの差を表わす単一スカラー値に関連付けられ得る。ＧＰＵ１１２は、ピクセルを並列で処理できるので、テキスチャＤＬＯＷを効率的に計算し得る。例において、ピクセルシェーダ２３７の各インスタンスは、ブラウザ窓の１つのピクセルを処理し得る。
【００５３】
[0057]ＧＰＵ１１２は、多様な方法で、テキスチャＤＬＯＷを計算し得る。いくつかの例において、ＧＰＵ１１２は、１つのパス（pass）において、テキスチャＤＬＯＷを計算する。例において、ＬＱタイル２７０中の各ＬＱピクセルについて、ＧＰＵ１１２は、ＨＱタイル２７２中の対応するピクセル領域（たとえば、１６ｘ１６ＨＱピクセル）を識別する。ＧＰＵ１１２は、ピクセル領域の属性を計算する。ピクセル領域の属性は、ピクセル領域の平均であり得る。例において、ピクセル領域におけるピクセル値の強度は、平均化される。各ピクセルは、ＲＧＢカラーを含み得る。例えば、各ピクセルは、３つのスカラー値を含み得、ここで、第１のスカラー値は赤（「Ｒ」）値に対応し、第２のスカラー値は、緑（「Ｇ」）値に対応し、第３のスカラー値は、青「Ｂ」値に対応する。ピクセル強度は、３つのカラー値の関数であり得る。例において、強度は、赤、緑、青値の線形組み合わせである。ＧＰＵ１１２は、ついで、ピクセル領域の属性とＬＱピクセルとの差を計算し得る。ピクセル領域の属性とＬＱピクセルとの差は、テキスチャＤＬＯＷにおける値であり得る。例において、ＬＱピクセルは、ピクセル領域の属性とＬＱピクセルとの差を記憶するテキスチャＤＬＯＷ中のピクセルに対応する。この差は、ＬＱタイル２７０中の各ＬＱピクセルについて、計算され得、テキスチャＤＬＯＷは、これらの計算された差の各々を含み得る。
【００５４】
[0058]別の例において、ＬＱタイル２７０中の各ＬＱピクセルについて、ＧＰＵ１１２は、ＨＱタイル２７２中の対応するピクセル領域を識別し、ＬＱピクセルとピクセル領域中の各ピクセルとの差を計算する。ついで、ＧＰＵ１１２は、１以上の計算された差の平均を計算し得る。平均は、テキスチャＤＬＯＷにおける値であり得る。例において、ＬＱピクセルは、平均を記憶するテキスチャＤＬＯＷにおけるピクセルに対応する。この平均は、ＬＱタイル２７０中の各ＬＱピクセルについて計算され得、テキスチャＤＬＯＷは、これらの計算された平均の各々を含み得る。
【００５５】
[0059]いくつかの例において、ＧＰＵ１１２は、１より多いパスにおいて、テキスチャＤＬＯＷを計算する。例において、ＬＱタイル２７０中の各ＬＱピクセルについて、ＧＰＵ１１２はＨＱタイル２７２中の対応するピクセル領域を識別し、ＬＱピクセルとピクセル領域との差に基づいて、テキスチャＤＨＩＧＨを計算する。テキスチャＤＨＩＧＨの解像度は、ＨＱタイル２７２の解像度と同一であり得る。テキスチャＤＨＩＧＨ中の各ピクセルは、ＨＱタイル２７２とＬＱタイル２７０との間のピクセル強度の差を表わす、単一スカラー値に関連付けられ得る。別個のパスにおいて、ＧＰＵ１１２は、テキスチャＤＨＩＧＨを、ＬＱタイル２７０の解像度にダウンサンプリングし得る。テキスチャＤＬＯＷは、ＬＱタイル２７０の解像度にダウンサンプリングされたテキスチャＤＨＩＧＨであり得る。例において、ＬＱピクセルは、ＬＱピクセルとピクセル領域との間の、ダウンサンプリングされた差を記憶する、テキスチャＤＬＯＷ中のピクセルに対応する。テキスチャＤＨＩＧＨは、１以上の一時的なバッファに記憶され得、テキスチャＤＬＯＷが計算された後、廃棄され得る。このダウンサンプリングされた差は、ＬＱタイル２７０中の各ＬＱピクセルについて計算され得、テキスチャＤＬＯＷは、これらのダウンサンプリングされた差の各々を含み得る。
【００５６】
２．ＬＱタイルのアルファチャンネル中にテキスチャ「ＤＬＯＷ」を記憶
[0060]処置４０４において、テキスチャは、ＬＱタイルのアルファチャンネル中に記憶される。例において、ブラウザ２２４は、ＬＱタイル２７０のアルファチャンネル中に、テキスチャＤＬＯＷを記憶するように、ＧＰＵ１１２に命令を送る。従って、ＧＰＵ１１２は、ＬＱタイル２７０のアルファチャンネル中に、テキスチャＤＬＯＷを記憶し得る。ピクセル当たりの単一スカラー値を記憶する、テキスチャＤＬＯＷのコンテンツは、ＬＱタイル２７０のアルファチャンネルに書き込まれ得る。特に、ＬＱタイル２７０中の各ＬＱピクセルは、ＬＱピクセルに対するオブジェクトフラグメントの不透明度を記述する、属性を有する、アルファチャンネルを有し得る。アルファチャンネルの属性は、典型的に、タイルが不透明であることを示す、１の値を有する。タイルは、典型的に、不透明であるので、アルファチャンネルの属性は、タイルの不透明度と異なる情報を記憶するために使用され得る。例えば、属性は、ディスプレイデバイス１１８上に、ＨＱタイル２７２を合成すること無しに、ＬＱタイル２７０を合成することが十分であるかを決定するために、ＬＱタイル２７０とＨＱタイル２７２との類似度（または差）を示し得る。アルファチャンネルは、メモリ空間を節約するために、テキスチャＤＬＯＷを記憶するために使用され得る。
【００５７】
[0061]いくつかの実施形態において、テキスチャＤＬＯＷの各値は、ＬＱタイル２７０中のＬＱピクセルのアルファチャンネルの属性中に記憶される。属性は、ＬＱピクセルと、ＬＱピクセルがマッピングされたＨＱタイル２７２中のピクセル領域との差に基づく。ＬＱタイル２７０のアルファチャンネル中に記憶された各差値は、ＨＱタイル２７２における多数の差の平均であり得る。差値は、ディスプレイデバイス１１８上に、ＨＱタイル２７２またはＬＱタイル２７０のいずれかを合成するかの表示を提供する。例において、差値は、ＬＱタイル２７０が、いかにＨＱタイル２７２に類似するかを決定するために、しきい値と比較され得る。しきい値は、スクリーンおよびウェブページの解像度のような、様々なファクターに依存し得る。例えば、しきい値は、ピクセル値における特定のパーセント差（ピクセル強度における、たとえば、２０パーセント差）を示し得る。
【００５８】
３．しきい値に基づく、ＬＱタイルとＨＱタイルとの差
[0062]処置４０６において、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルは、ディスプレイデバイス上に合成される。従って、ＬＱタイル２７０中のテクセルからのカラー値が、使用され得る。例において、ブラウザ２２４は、アルファチャンネルの属性から読み出し、グラフィックスＡＰＩ２２６を介して、属性をしきい値と比較するように、ＧＰＵ１１２に命令を送る。ＧＰＵ１１２は、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイル２７０を、ディスプレイデバイス１１８上に合成し得る。ＬＱタイル２７０がいかにＨＱタイル２７２に類似するかを示し得る属性が、しきい値よりも小さい（または等しい）場合、アルファチャンネルの属性は、しきい値を満たし得る。しきい値より下の属性は、ＬＱタイル２７０が、ＨＱタイル２７２に、ユーザの経験を劣化しないくらい十分類似していることを示し得る。従って、ＨＱタイル２７２の代わりに、ＬＱタイル２７０が、ディスプレイデバイス１１８上に合成され得る。
【００５９】
[0063] ウェブページは、低周波数データ（たとえば、ブランク、一定カラー、またはゆっくり変化する階調度ないし画像）を包含し得、したがって、ＨＱタイル２７２よりもむしろＬＱタイル２７０が、ディスプレイデバイス１１８上に合成される場合、ユーザの経験を劣化させることなく、ユーザが閲覧するに十分なくらい最終結果は良好である。Ｑタイルが低周波数データを包含する場合、ＬＱタイル２７０は、ＨＨＱタイル２７２に類似し得る。
【００６０】
[0064]ＧＰＵ１１２は、後の取り出しのために、ＧＰＵキャッシュ１１４中にＬＱタイル２７０をキャッシュし得る。ＧＰＵ１１２が、ＬＱタイル２７０をアクセスする場合、ＧＰＵ１１２は、テキスチャメモリ２６４をアクセスするよりも、ＧＰＵキャッシュ１１４からＬＱタイル２７０を取り出し得る。多数のブラウザ窓のピクセルは、同一のＬＱタイルに（逆に）マッピングし得る。従って、ピクセルシェーダ２３７のインスタンスは、同一のＬＱタイルをフェッチし得、これは、ＧＰＵ１１２のテキスチャキャッシュ中によりあり得る。これは、ウェブページが、ブランク領域、ゆっくり変化する階調度、等を包含するケースのように、ＨＱビットマップ２６２とＬＱビットマップ２６０との間で類似するカラー値を有するピクセルを包含するタイルにとって、低下されたメモリ帯域幅の結果となり得る。
【００６１】
[0065]追加的に、ＧＰＵ１１２は、ＨＱタイル２７２をアクセスすることは、全く不要であり得る。むしろ、ＧＰＵ１１２は、ＬＱタイル２７０とＨＱタイル２７２との差が、極めて小さく、ＧＰＵ１１２は、ＬＱタイル２７２を合成できるかを決定するために、ＬＱタイル２７０のアルファチャンネルを読み得る。アルファチャンネルの属性が、しきい値を満たす場合、ＧＰＵ１１２は、ＨＱタイル２７２をアクセスすることを不要にし、よって、メモリ帯域幅を減らせる。
【００６２】
[0066]対照的に、処置４０８において、アルファチャンネルの属性が、しきい値を満たさないとき、ＨＱタイルが、ディスプレイデバイス上に合成される。従って、ＨＱタイル２７２中のテクセルからのカラー値が使用され得る。ＧＰＵ１１２は、アルファチャンネルの属性が、しきい値を満たさないとき、ディスプレイデバイス１１８上にＨＱタイル２７２を合成し得る。例において、属性が、しきい値よりも低くない（たとえば、しきい値より大きいまたは等しい）場合、属性は、しきい値を満たさない。しきい値よりも下で無い属性は、ＨＱタイルに代わって表示されるには、ＬＱタイル２７０は、ＨＱタイル２７２に十分に類似していないことを示し得る。従って、ＬＱタイル２７０に代わって、ＨＱタイル２７２が、ディスプレイデバイス１１８上に合成され得る。ウェブページは、高周波数データを包含し得、したがって、ＨＱタイル２７２よりもむしろ、ＬＱタイル２７０が、ディスプレイデバイス１１８に合成される場合、ユーザが閲覧するには最終結果は混乱する。
【００６３】
[0067]ＧＰＵ１１２は、様々な方法で、ＨＱタイル２７２を、ディスプレイデバイス１１８に合成し得る。例において、ＧＰＵ１１２は、高解像度タイルをアクセスし、ディスプレイデバイス１１８上での表示のために、ＨＱタイル２７２からフレームバッファ中にテクセルをコピーする。別の例において、ＬＱタイル２７０は、既に、ディスプレイデバイス１１８上に合成されてい得る。この例において、ＧＰＵ１１２は、ＨＱタイル２７２を取得するために、ＨＱタイル２７２とＬＱタイル２７０との差を、加え戻し得る。
【００６４】
[0068]いくつかの実施形態において、処置４０２−４０８は、任意の数のＬＱタイルのために実行され得る。追加の処置が上記で論議されたブロック４０２−４０８の前、最中、または後に、実行され得ることも理解される。本明細書で説明された方法４００の処置の内の１つ以上が、所望に応じて、省略され、組み合わされ、または、異なる順序で実行され得ることも理解される。
【００６５】
[0069]本開示において開示された技法を使用して、テキスチャフェッチの数は減らされないが、実際、増加し得る。例えば、アルファチャンネルの属性が、しきい値を満たさない場合、ＧＰＵ１１２は、ＬＱタイル２７０およびＱタイル２７２の両方をアクセスする。これにも拘らず、開示の実施形態は、ＧＰＵ１１２が、しばしば、ＬＱタイルからのテクセルを使用する場合、メモリ帯域幅を減らすことによって、性能を顕著に改善し得る。
【００６６】
[0070]いくつかの実施形態において、処理ユニット（たとえば、ＧＰＵ１１２および／またはＣＰＵ１０６）は、メモリ帯域幅を減らすために、オンザフライで、しきい値を変動させる。処理ユニットは、ＬＱタイルが、よりしばしば使用され得るように、しきい値を減少し得る。例において、速いスクロールの間、ユーザは、ＬＱタイルとＨＱタイルとの差に気付きそうでない。従って、処理ユニットが、速いスクロールを検出する場合、処理ユニットは、しきい値を減少し得る。別の例において、コンピューティングデバイス１０２は、低バッテリーモード（たとえば、１５パーセント未満バッテリー残）であり得、電力消費を減らすことが所望され得る。従って、コンピューティングデバイスが低バッテリーモードあることを、処理ユニットが検出した場合、処理ユニットは、しきい値を減少し得る。
【００６７】
[0071]上記に論議され、ここで強調されるように、図１−４は、単なる例であり、それは、特許請求の範囲を極度に限定するべきでない。本開示の様々な実施形態において、本開示を実施するための命令シーケンス（たとえば、図中の処置４０２−４０８）の実行が、コンピューティングデバイス１０２によって実行され得る。本開示の様々な他の実施形態において、複数のコンピューティングデバイスは、通信リンクによってネットワーク（たとえば、ローカルエリアネットワーク（ＬＡＮ）、無線ローカルエリアネットワーク（ＷＬＡＮ）、パブリックスイッチド電話ネットワーク（ＰＴＳＮ）、および／または電気通信、モバイル、およびセルラ電話ネットワークを含む、様々な他のワイヤードまたはワイヤレスネットワーク）に結合され得、お互いとの連携で本開示を実施するための命令シーケンスを実行し得る。
【００６８】
[0072]例において、ＬＱタイルまたはＨＱタイルを合成するための命令は、システムメモリ１１０のコンピュータ可読媒体中に記憶され得る。プロセッサは、ＨＱタイルと対応するＬＱタイルとの差に基づいて、テキスチャＤＬＯＷを計算するための命令を実行し、テキスチャＤＬＯＷを、ＬＱタイルのアルファチャンネル中に記憶し得る。プロセッサはまた、アルファチャンネルの属性が、しきい値を満たすとき、ＬＱタイルを、ディスプレイデバイス１１８上に合成するための命令を実行し得る。プロセッサはまた、アルファチャンネルの属性が、しきい値を満たさないとき、ＨＱタイルを、ディスプレイデバイス１１８上に合成するための命令を実行し得る。
【００６９】
[0073]適用可能な場合、本開示によって提供される様々な実施形態は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを使用してインプリメントされ得る。また、適用可能な場合、本明細書に記載された様々なハードウェアコンポーネント、ソフトウェアコンポーネント、および／またはファームウェアコンポーネントは、本開示の主旨から逸脱することなく、ソフトウェア、ファームウェア、ハードウェアおよび／または全てを含む合成コンポーネントに組み合わせられ得る。適用可能な場合、本明細書に記載された様々なハードウェアコンポーネント、ソフトウェアコンポーネント、および／またはファームウェアコンポーネントは、本開示の主旨から逸脱することなく、ソフトウェア、ファームウェア、ハードウェア、または全てを含むサブコンポーネントに分離され得る。加えて、適用可能な場合、ソフトウェアコンポーネントは、ハードウェアコンポーネントとしてインプリメントされ得、逆の場合も同様であり得ることが企画される。適用可能である場合、本明細書で説明された様々なステップまたは処置の順番は、本明細書で説明された特徴を提供するために、変更され、合成ステップまたは処置に組み合わされ、および／またはサブステップまたはサブ処置に分離され得る。
【００７０】
[0074]本開示の実施形態が説明されたが、これらの実施形態は、開示を例証するが、開示を制限はしない。本開示の実施形態は、これらの実施形態に限定されるべきではなく、本開示の主旨に従って、当業者により、数々の修正および変形がなされ得、以下、特許請求の範囲で請求されるように、本開示の主旨および範囲内に含まれ得ることがまた、理解されるべきである。
【図１】
2018512644.tif 000003
【図２】
2018512644.tif 000004
【図３】
2018512644.tif 000005
【図４】
2018512644.tif 000006
【国際調査報告】
2018512644.tif 000007
2018512644.tif 000008