(57)【要約】コンピューティングデバイスは、メモリ内の複数のブロックを割当てることができ、ここにおいて、メモリ内の複数のブロックの各々は、均一の固定サイズである。コンピューティングデバイスはさらに、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶し得、ここにおいて、複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、各々、固定サイズより小さいサイズを有する。コンピューティングデバイスは、複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータのそれぞれの１つ以上を含む、複数のブロックのうちの１つ以上のブロックの未使用空間にさらに記憶し得る。【選択図】図３Ａ
2018529168.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
少なくとも１つのプロセッサが、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶することと、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、前記固定サイズより小さいサイズを有する、
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することと
を備える方法。
【請求項２】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上についての深度データを備える、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けることをさらに備え、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上は、前記複数のブロックのうちの第２の１つ以上を完全に占有する、請求項２に記載の方法。
【請求項４】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、請求項１に記載の方法。
【請求項５】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、請求項１に記載の方法。
【請求項６】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、請求項１に記載の方法。
【請求項７】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、請求項１に記載の方法。
【請求項８】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた最適化サーフェスを備える、請求項１に記載の方法。
【請求項９】
前記複数の帯域幅圧縮グラフィックスデータは、画像サーフェスの帯域幅圧縮部分を備える、請求項１に記載の方法。
【請求項１０】
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶することは、
前記少なくとも１つのプロセッサが、前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定することと、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定したことに応答して、前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶することと
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記少なくとも１つのプロセッサは、グラフィックス処理ユニットを含む、請求項１に記載の方法。
【請求項１２】
グラフィックスデータを処理するように構成された装置であって、
メモリと、
少なくとも１つのプロセッサと
を備え、前記少なくとも１つのプロセッサは、
複数の帯域幅圧縮グラフィックスデータを、前記メモリ内のそれぞれの複数のブロックに記憶することと、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、前記固定サイズより小さいサイズを有する、
前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することと
を行うように構成される、装置。
【請求項１３】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上についての深度データを備える、請求項１２に記載の装置。
【請求項１４】
前記少なくとも１つのプロセッサは、
前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けるようにさらに構成され、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上は、前記複数のブロックのうちの第２の１つ以上を完全に占有する、請求項１３に記載の装置。
【請求項１５】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、請求項１２記載の装置。
【請求項１６】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、請求項１２に記載の装置。
【請求項１７】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、請求項１２に記載の装置。
【請求項１８】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、請求項１２に記載の装置。
【請求項１９】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた最適化サーフェスを備える、請求項１２に記載の装置。
【請求項２０】
前記複数の帯域幅圧縮グラフィックスデータは、画像サーフェスの帯域幅圧縮部分を備える、請求項１２に記載の装置。
【請求項２１】
前記少なくとも１つのプロセッサは、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定することと、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定したことに応答して、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶することと
を行うようにさらに構成される、請求項１２に記載の装置。
【請求項２２】
前記少なくとも１つのプロセッサは、グラフィックス処理ユニットを含む、請求項１２に記載の装置。
【請求項２３】
装置であって、
複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶するための手段と、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、前記固定サイズより小さいサイズを有する、
前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの１つ以上のブロックの未使用空間に記憶するための手段と
を備える、装置。
【請求項２４】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上についての深度データを備える、請求項２３に記載の装置。
【請求項２５】
前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けるための手段をさらに備え、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上は、前記複数のブロックのうちの第２の１つ以上を完全に占有する、請求項２４に記載の装置。
【請求項２６】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、請求項２３記載の装置。
【請求項２７】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、請求項２３に記載の装置。
【請求項２８】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、請求項２３に記載の装置。
【請求項２９】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、請求項２３に記載の装置。
【請求項３０】
前記記憶するための手段は、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定するための手段と、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定したことに応答して、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶するための手段と
をさらに備える、請求項２３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、データ記憶に関し、より具体的には、帯域幅圧縮グラフィックスデータをメモリに記憶することに関する。
【背景技術】
【０００２】
[0002]電子ディスプレイ上での視覚的表現のためのコンテンツを提供するデバイスは一般に、グラフィックス処理ユニット（ＧＰＵ）を含む。ＧＰＵは、ディスプレイ上のコンテンツを表すピクセルをレンダリングする。ＧＰＵは、ディスプレイ上のピクセルごとに１つ以上のピクセル値を生成し、ラスタライズ段で生成されるフラグメントのフラグメントシェーディングを実行する提示のために各ピクセルをレンダリングするために、ディスプレイ上の各ピクセルについてのピクセル値に対してグラフィックス処理を実行する。
【発明の概要】
【０００３】
[0003]本開示の技法は一般に、複数の帯域幅圧縮グラフィックスデータを、この複数の帯域幅圧縮グラフィックスデータに関連付けられた追加データとともにメモリに記憶するための技法に関する。複数の帯域幅圧縮グラフィックスデータは、サイズがさまざまであり得、複数の帯域幅圧縮グラフィックスデータは、複数の帯域幅圧縮グラフィックスデータのうちで最大の帯域幅圧縮グラフィックスデータを収納し得るメモリ内の均一なサイズのブロックに記憶される。したがって、複数の帯域幅圧縮グラフィックスデータをメモリ内の均一なサイズのブロックに記憶することは、複数の帯域幅圧縮グラフィックスデータを記憶するメモリ内のブロックのうちのいくつか中の残存した未使用空間に帰着する。メモリ内のブロックのうちのいくつか中のそのような未使用空間は、複数の帯域幅圧縮グラフィックスデータに関連付けられた深度データまたは複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードのような、複数の帯域幅圧縮グラフィックスデータに関連付けられた追加データを記憶するために利用されることができる。
【０００４】
[0004]本開示の一例では、グラフィックス処理のための方法は、少なくとも１つのプロセッサが、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶することを含み得、ここにおいて、メモリ内の複数のブロックの各々は、均一の固定サイズであり、複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、固定サイズより小さいサイズを有する。プロセスは、少なくとも１つのプロセッサが、複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータのそれぞれの１つ以上を含む、複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することをさらに含むことができる。
【０００５】
[0005]本開示の別の例では、グラフィックスデータを処理するように構成された装置は、メモリを含むことができる。装置は、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶することと、ここにおいて、メモリ内の複数のブロックの各々は、均一の固定サイズであり、複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、固定サイズより小さいサイズを有する、複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータのそれぞれの１つ以上を含む、複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することと、を行うように構成された少なくとも１つのプロセッサをさらに含むことができる。
【０００６】
[0006]本開示の別の例では、装置は、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶するための手段を含み得、ここにおいて、メモリ内の複数のブロックの各々は、均一の固定サイズであり、複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、固定サイズより小さいサイズを有する。装置は、複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータのそれぞれの１つ以上を含む、複数のブロックのうちの１つ以上のブロックの未使用空間に記憶するための手段をさらに含むことができる。
【０００７】
[0007]１つ以上の例の詳細は、添付の図面および以下の説明において示される。他の特徴、目的、および利点は、本説明および図面から、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】[0008]図１は、帯域幅圧縮グラフィカルデータをメモリに記憶するための、本開示の１つ以上の態様を実施するように構成され得る例となるコンピューティングデバイスを例示するブロック図である。
【図２】[0009]図２は、図１のＣＰＵ、ＧＰＵ、およびシステムメモリの例となる実施をさらに詳細に例示するブロック図である。
【図３Ａ】[0010]図３Ａは、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となる技法を例示する概念図である。
【図３Ｂ】図３Ｂは、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となる技法を例示する概念図である。
【図３Ｃ】図３Ｃは、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となる技法を例示する概念図である。
【図３Ｄ】図３Ｄは、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となる技法を例示する概念図である。
【図３Ｅ】図３Ｅは、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となる技法を例示する概念図である。
【図３Ｆ】図３Ｆは、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となる技法を例示する概念図である。
【図４】[0011]図４は、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となるプロセスを例示するフローチャートである。
【発明の詳細な説明】
【０００９】
[0012]帯域幅圧縮グラフィックスデータは、それがコンピューティングデバイスのバスを通じてより速く転送され得るように圧縮されたグラフィックスデータである。コンピューティングデバイスのグラフィックス処理ユニット（ＧＰＵ）が、サーフェスのようなグラフィックスデータに対してグラフィックス処理動作を実行するため、コンピューティングデバイスは、ＧＰＵとメモリとの間でまたは異なるメモリ間でバスを通じてサーフェスを転送することができる。たとえば、コンピューティングデバイスは、２つの異なるサーフェスを組み合わせる合成動作を、この合成動作を実行するためにメモリからＧＰＵにこれら２つのサーフェスを転送し、結果として得られた合成サーフェスをＧＰＵからメモリに転送し戻すことで実行することができる。ゆえに、圧縮を介してサーフェスのサイズを縮小することで、コンピューティングデバイスは、コンピューティングデバイスの構成要素間でサーフェスをより速く転送し得、それによって、コンピューティングデバイスの性能を高める。
【００１０】
[0013]コンピューティングデバイスは、複数の帯域幅圧縮グラフィックスデータを生成するために、サーフェスをサブ領域に分割し、サーフェスのサブ領域の各々を圧縮することで、サーフェスの帯域幅圧縮を実行することができる。複数の帯域幅圧縮グラフィックスデータは、サーフェスのサブ領域間のコンテンツの違いによりサイズがさまざまであり得る。たとえば、コンピューティングデバイスは、単一色のピクセルを均一に含むサーフェスのサブ領域を、多くの異なる色のピクセルを含むサーフェスの別のサブ領域より比較的小さいサイズに圧縮することができ得る。
【００１１】
[0014]コンピューティングデバイスは、複数の帯域幅圧縮グラフィックスデータを、メモリ内の、コンピューティングデバイスが割り当てる複数の均一なサイズのブロックに記憶することができる。ブロックの各々は、複数の帯域幅圧縮グラフィックスデータのうちの最大のものを含むのに十分な大きさである。複数の帯域幅圧縮グラフィックスデータはサイズがさまざまであり得るのに対し、複数のブロックの各々は同じサイズであるため、複数の帯域幅圧縮グラフィックスデータを複数のブロックに記憶することは、ブロックに記憶されたそれぞれの帯域幅圧縮グラフィックスデータによって占有されていない未使用空間を各々有する、複数のブロックのうちの１つ以上のブロックに帰着する。
【００１２】
[0015]本開示の態様にしたがって、コンピューティングデバイスは、複数の帯域幅圧縮グラフィックスデータに関連付けられた他のデータを、複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することができる。たとえば、コンピューティングデバイスは、複数の帯域幅圧縮グラフィックスデータに関連付けられた深度データを、メモリ内の別個のエリア（たとえば、ブロック）に記憶しないで、代わりに、そのような深度データを、複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することができる。同様に、コンピューティングデバイスは、複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを、複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することができる。このように、コンピューティングデバイスは、複数の帯域幅圧縮グラフィックスデータに関連付けられた追加のデータを記憶するために複数のブロック内の未使用空間を利用することができ、それによって、コンピューティングデバイスのメモリ利用効率を高める。
【００１３】
[0016]コンピューティングデバイスが１つ以上のブロックの未使用空間に記憶し得るそれ以外のデータは、コンピューティングデバイスが、そのようなデータを、グラフィックスデータに対するグラフィックス動作の性能を最適化するために使用し得る点で、最適化サーフェスであり得る。たとえば、コンピューティングデバイスは、関連するグラフィックスデータをレンダリングする際のその性能を高めるために深度データを利用し得、コンピューティングデバイスは、グラフィックスデータに対する特定のグラフィカル動作のその性能を高めるためにハッシュコードを利用することができる。そのため、コンピューティングデバイスは、深度データまたはハッシュコード以外の任意の数の追加データを、１つ以上のブロックの未使用空間に記憶し得、それは、グラフィックスデータのレンダリングを最適化するために使用され得る追加の最適化サーフェスを記憶することを含む。
【００１４】
[0017]図１は、帯域幅圧縮グラフィカルデータをメモリに記憶するための、本開示の１つ以上の態様を実施するように構成され得る例となるコンピューティングデバイスを例示するブロック図である。図１に示されるように、デバイス２は、ビデオデバイス、メディアプレーヤ、セットトップボックス、モバイル電話およびいわゆるスマートフォンのようなワイヤレスハンドセット、携帯情報端末（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、タブレットコンピューティングデバイス、等を含むがそれらに限定されないコンピューティングデバイスであり得る。図１の例では、デバイス２は、中央処理装置（ＣＰＵ）６と、システムメモリ１０と、ＧＰＵ１２とを含むことができる。デバイス２はまた、ディスプレイプロセッサ１４と、トランシーバモジュール３と、ユーザインターフェース４と、ディスプレイ８とを含むことができる。トランシーバモジュール３およびディスプレイプロセッサ１４は、両方がＣＰＵ６および／またはＧＰＵ１２と同じ集積回路（ＩＣ）の一部であり得るか、ＣＰＵ６および／またはＧＰＵ１２を含む１つ以上のＩＣの外部に両方があり得るか、ＣＰＵ６および／またはＧＰＵ１２を含むＩＣの外部にあるＩＣ内に形成されることができる。
【００１５】
[0018]デバイス２は、明確さのために図１に示されていない追加のモジュールまたはユニットを含むことができる。たとえば、デバイス２は、デバイス２がモバイルワイヤレス電話である例では電話通信を達成するためにスピーカおよびマイクロフォンを、またはデバイス２がメディアプレーヤである場合にはスピーカを含み得、それらはいずれも図１に示されていない。デバイス２はまた、ビデオカメラを含み得る。さらに、デバイス２に示されるさまざまなモジュールおよびユニットは、必ずしも、デバイス２のすべての例に必要というわけではない。たとえば、ユーザインターフェース４およびディスプレイ８は、デバイス２が、外部ユーザインターフェースまたはディスプレイとインタフェース接続するように装備されたデスクトップコンピュータまたは他のデバイスである例では、デバイス２の外部にあり得る。
【００１６】
[0019]ユーザインターフェース４の例には、トラックボール、マウス、キーボード、および他のタイプの入力デバイスが含まれるがそれらに限定されない。ユーザインターフェース４はまた、タッチスクリーンであり得、ディスプレイ８の一部として組み込まれることができる。トランシーバモジュール３は、コンピューティングデバイス２と別のデバイスまたはネットワークとの間でのワイヤレスおよびワイヤード通信を可能にする回路を含むことができる。トランシーバモジュール３は、変調器、復調器、増幅器、およびワイヤードまたはワイヤレス通信のための他のそのような回路を含むことができる。
【００１７】
[0020]ＣＰＵ６は、実行のためのコンピュータプログラムの命令を処理するように構成された中央処理装置（ＣＰＵ）のような、マイクロプロセッサであり得る。ＣＰＵ６は、コンピューティングデバイス２の動作を制御する汎用または専用プロセッサを備えることができる。ユーザは、１つ以上のソフトウェアアプリケーションを実行することをＣＰＵ６に行わせるために、コンピューティングデバイス２に入力を提供することができる。ＣＰＵ６上で実行されるソフトウェアアプリケーションには、たとえば、オペレーティングシステム、ワードプロセッサアプリケーション、電子メールアプリケーション、スプレッドシートアプリケーション、メディアプレーヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインターフェースアプリケーション、または別のプログラムが含まれることができる。追加的に、ＣＰＵ６は、ＧＰＵ１２の動作を制御するためのＧＰＵドライバ２２を実行することができる。ユーザは、キーボード、マウス、マイクロフォン、タッチパッド、またはユーザインターフェース４を介してコンピューティングデバイス２に結合された別の入力デバイスのような１つ以上の入力デバイス（図示されない）を介してコンピューティングデバイス２に入力を提供することができる。
【００１８】
[0021]ＣＰＵ６上で実行されるソフトウェアアプリケーションは、ディスプレイ８へのグラフィックスデータのレンダリングをさせるようにＣＰＵ６に命令する１つ以上のグラフィックスレンダリング命令を含むことができる。いくつかの例では、ソフトウェア命令は、たとえば、ＯｐｅｎＧＬ（Open Graphics Library）グラフィックスアプリケーションプログラミングインターフェース（ＡＰＩ）、ＯｐｅｎＧＬ ＥＳ（Open Graphics Library Embedded Systems）ＡＰＩ、Ｄｉｒｅｃｔ３Ｄ ＡＰＩ、Ｘ３Ｄ ＡＰＩ、ＲｅｎｄｅｒＭａｎ ＡＰＩ、ＷｅｂＧＬ ＡＰＩ、あるいは任意の他の公のまたは専有の標準的なグラフィックスＡＰＩのような、ＡＰＩに従うことができる。
【００１９】
[0022]ソフトウェアアプリケーションのグラフィックスレンダリング命令を処理するために、ＣＰＵ６は、グラフィックスデータのレンダリングのうちのいくつかまたはすべてを実行することをＧＰＵ１２に行わせるために、１つ以上のグラフィックスレンダリングコマンドを（たとえば、ＧＰＵドライバ２２を通じて）ＧＰＵ１２に発行することができる。いくつかの例では、レンダリングされるべきグラフィックスデータは、たとえば、点、線、三角形、四角形、トライアングルストリップストリップ（triangle strip）、等のグラフィックスプリミティブのリストを含むことができる。
【００２０】
[0023]ＧＰＵ１２は、ディスプレイ８に１つ以上のグラフィックスプリミティブをレンダリングするためにグラフィックス動作を実行するように構成されることができる。ゆえに、ＣＰＵ６上で実行されるソフトウェアアプリケーションのうちの１つがグラフィックス処理を必要とするとき、ＣＰＵ６は、ディスプレイ８へのレンダリングのために、グラフィックスコマンドおよびグラフィックスデータをＧＰＵ１２に提供することができる。グラフィックスデータは、たとえば、描画コマンド、状態情報、プリミティブ情報、テクスチャ情報、等を含むことができる。ＧＰＵ１２は、いくつかの事例では、ＣＰＵ６より効率的な、複雑なグラフィック関連動作の処理を提供する高度な並列構造で築かれることができる。たとえば、ＧＰＵ１２は、並列的に、複数の頂点またはピクセルに作用するように構成された、シェーダユニットのような複数の処理要素を含むことができる。ＧＰＵ１２の高度に並列な性質は、いくつかの事例では、ＧＰＵ１２が、グラフィックス画像（たとえば、ＧＵＩおよび２次元（２Ｄ）および／または３次元（３Ｄ）グラフィックスシーン）をディスプレイ８上に、ＣＰＵ６を用いてこれらのシーンを直接ディスプレイ８上に描画するより迅速に描画することを可能にすることができる。
【００２１】
[0024]ＧＰＵ１２は、いくつかの事例では、コンピューティングデバイス２のマザーボードに一体化されることができる。他の事例では、ＧＰＵ１２は、コンピューティングデバイス２のマザーボード内のポートにインストールされるグラフィックスカード上に存在し得るか、コンピューティングデバイス２と相互動作するように構成された周辺デバイス内に他の方法で組み込まれることができる。ＧＰＵ１２は、１つ以上のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、あるいは他の同等の集積回路またはディスクリート論理回路といった１つ以上のプロセッサを含むことができる。ＧＰＵ１２はまた、１つ以上のプロセッサコアを含み得、それにより、ＧＰＵ１２は、マルチコアプロセッサと呼ばれることができる。
【００２２】
[0025]ＧＰＵ１２は、グラフィックスメモリ４０に直接結合されることができる。ゆえに、ＧＰＵ１２は、バスを使用することなく、グラフィックスメモリ４０からデータを読み取り、それにデータを書き込むことができる。換言すると、ＧＰＵ１２は、オフチップメモリの代わりに、ローカル記憶装置を使用してローカルにデータを処理することができる。このようなグラフィックスメモリ４０は、オンチップメモリと呼ばれることができる。これは、ヘビーバストラフィックを経験し得る、ＧＰＵ１２がバスを介してデータを読み取りおよび書き込む必要性をなくすことで、ＧＰＵ１２がより効率的に動作することを可能にする。しかしながら、いくつかの事例では、ＧＰＵ１２は、別個のメモリを含まず、代わりに、バスを介してシステムメモリ１０を利用することができる。グラフィックスメモリ４０は、たとえば、ランダムアクセスメモリ（ＲＡＭ）、静的メモリ（ＳＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気データ媒体、あるいは光学記憶媒体のような、１つ以上の揮発性および不揮発性メモリまたは記憶デバイスを含むことができる。
【００２３】
[0026]いくつかの例では、ＧＰＵ１２は、完全形成画像（fully formed image）を、この画像が１つ以上のサーフェスであり得るシステムメモリ１０に記憶することができる。サーフェスは、いくつかの例では、ピクセルの２次元ブロックであり得、ここで、ピクセルの各々が、カラー値を有することができる。本開示全体にわたって、グラフィックスデータという用語は、非限定的な例では、サーフェスまたはサーフェスの一部を含む。ディスプレイプロセッサ１４は、システムメモリ１０から画像を取り出し、画像を表示するためにディスプレイ８のピクセルを点灯させる値を出力することができる。ディスプレイ８は、ＧＰＵ１２によって生成される画像コンテンツを表示する、コンピューティングデバイス２のディスプレイであり得る。ディスプレイ８は、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオードディスプレイ（ＯＬＥＤ）、陰極線管（ＣＲＴ）ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスであり得る。
【００２４】
[0027]本開示の態様にしたがって、コンピューティングデバイス２は、システムメモリ１０またはグラフィックスメモリ４０のようなメモリ内の複数のブロックを割当てることができ、ここにおいて、メモリ内の複数のブロックの各々は、均一の固定サイズである。コンピューティングデバイス２は、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックにさらに記憶し得、ここにおいて、複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、固定サイズより小さいサイズを有する。コンピューティングデバイス２は、複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータのそれぞれの１つ以上を含む、複数のブロックのうちの１つ以上のブロックの未使用空間にさらに記憶することができる。
【００２５】
[0028]図２は、図１のＣＰＵ６、ＧＰＵ１２、およびシステムメモリ１０の例となる実施をさらに詳細に例示するブロック図である。図２に示されるように、ＣＰＵ６は、少なくとも１つのソフトウェアアプリケーション１８と、グラフィックスＡＰＩ２０と、ＧＰＵドライバ２２とを含み得、これらの各々は、ＣＰＵ６上で実行される１つ以上のソフトウェアアプリケーションまたはサービスであり得る。
【００２６】
[0029]ＣＰＵ６およびＧＰＵ１２に利用可能なメモリには、システムメモリ１０、フレームバッファ１６、およびレンダターゲット２４が含まれ得る。フレームバッファ１６は、システムメモリ１０の一部であり得るか、システムメモリ１０とは別個であり得、レンダリングされた画像データを記憶することができる。ＧＰＵ１２もまた、レンダターゲット２４への記憶のためのデータをレンダリングすることができる。フレームバッファ１６と同様に、レンダターゲット２４は、システムメモリ１０の一部であり得るか、システムメモリ１０とは別個であり得る。
【００２７】
[0030]ソフトウェアアプリケーション１８は、ＧＰＵ１２の機能性を利用する任意のアプリケーションであり得る。たとえば、ソフトウェアアプリケーション１８は、ＧＵＩアプリケーション、オペレーティングシステム、ポータブルマッピングアプリケーション、工学および芸術アプリケーションのためのコンピュータ支援型設計プログラム、ビデオゲームアプリケーション、あるいは２Ｄまたは３Ｄグラフィックスを使用する別のタイプのソフトウェアアプリケーションであり得る。
【００２８】
[0031]ソフトウェアアプリケーション１８は、グラフィカルユーザインターフェース（ＧＵＩ）および／またはグラフィックスシーンをレンダリングするようＧＰＵ１２に命令する１つ以上の描画命令を含むことができる。たとえば、描画命令には、ＧＰＵ１２によってレンダリングされるべき１つ以上のグラフィックスプリミティブのセットを定義する命令が含まれることができる。いくつかの例では、描画命令は、集合的に、ＧＵＩにおいて使用される複数のウィンドウサーフェス（windowing surface）のすべてまたは一部を定義することができる。追加の例では、描画命令は、集合的に、これらアプリケーションによって定義されるモデル空間またはワールド空間内に１つ以上のグラフィックスオブジェクトを含むグラフィックスシーンのすべてまたは一部を定義することができる。
【００２９】
[0032]ソフトウェアアプリケーション１８は、１つ以上のグラフィックスプリミティブを、表示可能なグラフィックス画像にレンダリングするための１つ以上のコマンドをＧＰＵ１２に発するために、グラフィックスＡＰＩ２０を介して、ＧＰＵドライバ２２を起動することができる。たとえば、ソフトウェアアプリケーション１８は、ＧＰＵ１２にプリミティブ定義を提供するために、グラフィックスＡＰＩ２０を介して、ＧＰＵドライバ２２を起動することができる。いくつかの事例では、プリミティブ定義が、たとえば、三角形、四角形、トライアングルファン（triangle fan）、トライアングルストリップ、等の描画プリミティブのリストの形式で、ＧＰＵ１２に提供されることができる。プリミティブ定義は、レンダリングされるべきプリミティブに関連付けられた１つ以上の頂点を指定する頂点仕様（vertex specification）を含むことができる。頂点仕様は、各頂点についての位置座標と、いくつかの事例では、この頂点に関連付けられた他の属性、たとえば、色座標、法線ベクトル、およびテクスチャ座標、とを含むことができる。プリミティブ定義はまた、プリミティブタイプ情報（たとえば、三角形、四角形、トライアングルファン、トライアングルストリップ、等）、スケーリング情報、回転情報、等を含むことができる。ソフトウェアアプリケーション１８によってＧＰＵドライバ２２に発せられる命令に基づいて、ＧＰＵドライバ２２は、プリミティブをレンダリングするためにＧＰＵ１２が実行する１つ以上の動作を指定する１つ以上のコマンドを公式化することができる。ＧＰＵ１２がＣＰＵ６からコマンドを受けると、プロセッサクラスタ４６は、このコマンドを復号するためにグラフィフィックス処理パイプラインを実行し得、このコマンドにおいて指定されている動作を実行するようにグラフィックス処理パイプラインを構成することができる。たとえば、グラフィックス処理パイプラインのコマンドエンジンは、プリミティブデータを読み取り、このデータを、グラフィックス処理パイプラインにおける他のグラフィックスパイプライン段が使用するためのプリミティブへと組み立てる。指定の動作を実行した後、ＧＰＵ１２は、レンダリングされたデータを、ディスプレイデバイスに関連付けられたフレームバッファ１６にまたはレンダターゲット２４のうちの１つに出力する。
【００３０】
[0033]フレームバッファ１６は、ＧＰＵ１２のための宛先ピクセルを記憶する。各宛先ピクセルは、一意的なスクリーンピクセルロケーションに関連付けられることができる。いくつかの例では、フレームバッファ１６は、宛先ピクセルごとに色成分および宛先アルファ値を記憶することができる。たとえば、フレームバッファ１６は、ピクセルごとに赤、緑、青、アルファ（ＲＧＢＡ）成分を記憶し得、ここで、「ＲＧＢ」成分は、カラー値に対応し、「Ａ」成分は、宛先アルファ値に対応する。フレームバッファ１６はまた、宛先ピクセルごとに深度値を記憶することができる。このように、フレームバッファ１６は、グラフィックスデータ（たとえば、サーフェス）を記憶すると考えられ得る。フレームバッファ１６およびシステムメモリ１０は別個のメモリユニットであると例示されているが、他の例では、フレームバッファ１６は、システムメモリ１０の一部であり得る。ＧＰＵ１２がフレームのピクセルのすべてをフレームバッファ１６にレンダリングし終わると、フレームバッファは、完成したフレームを、表示のためにディスプレイ８に出力することができる。
【００３１】
[0034]フレームバッファ１６と同様に、レンダターゲット２４の各々もまた、ピクセルについてのカラー値および／または深度値を含む、ＧＰＵ１２のための宛先ピクセルを記憶することができる。レンダターゲット２４の各々は、フレームバッファ１６と同数の一意的なピクセルロケーションについての情報を記憶し得るか、フレームバッファ１６のようにその数の一意的なピクセルロケーションのサブセットを記憶することができる。
【００３２】
[0035]プロセッサクラスタ４６は、１つ以上のプログラマブル処理ユニット４２および／または１つ以上の固定機能処理ユニット４４を含むことができる。プログラマブル処理ユニット４２は、たとえば、ＣＰＵ６からＧＰＵ１２上にダウンロードされる１つ以上のシェーダプログラムを実行するように構成されたプログラマブルシェーダユニットを含むことができる。いくつかの例では、プログラマブル処理ユニット４２は、「シェーダプロセッサ」または「統合シェーダ」と呼ばれ得、ジオメトリ、頂点、ピクセル、または他のシェーディング動作を実行して、グラフィックスをレンダリングすることができる。シェーダユニットは、各々、フェッチおよび復号動作のための１つ以上の構成要素と、算術計算を実行するための１つ以上のＡＬＵと、１つ以上のメモリと、キャッシュと、レジスタとを含むことができる。
【００３３】
[0036]ＧＰＵ１２は、グラフィックス処理パイプライン中の頂点シェーダ段、テッセレーション段、ジオメトリシェーダ段、ラスタライズ段、およびフラグメントシェーダ段のうちの１つ以上を実行するよう求めるコマンドをプログラマブル処理ユニット４２に送ることで、頂点シェーディング、ハルシェーディング、ドメインシェーディング、ジオメトリシェーディング、フラグメントシェーディング、等のさまざまなシェーディング動作を実行するようプログラマブル処理ユニット４２に指示することができる。いくつかの例では、ＧＰＵドライバ２２は、１つ以上のシェーダプログラムをコンパイルすることと、コンパイルされたシェーダプログラムをＧＰＵ１２内に含まれるプログラマブル処理ユニット４２上にダウンロードすることとを、ＣＰＵ６上で実行されるコンパイラに行わせることができる。シェーダプログラムは、たとえば、ＧＬＳＬ（OpenGL Shading Language）、ＨＬＳＬ（High Level Shading Language）、Ｃｇ（C for Graphics）シェーディング言語、ＯｐｅｎＣＬ Ｃカーネル、等の高度なシェーディング言語で書かれることができる。コンパイルされたシェーダプログラムは、ＧＰＵ１２内のプログラマブル処理ユニット４２の動作を制御する１つ以上の命令を含むことができる。たとえば、シェーダプログラムは、頂点シェーダ段の機能を実行するためにプログラマブル処理ユニット４２によって実行され得る頂点シェーダプログラム、テッセレーション段の機能を実行するためにプログラマブル処理ユニット４２によって実行され得るテッセレーションシェーダプログラム、ジオメトリシェーダ段の機能を実行するためにプログラマブル処理ユニット４２によって実行され得るジオメトリシェーダプログラム、および／または、フラグメントシェーダ段の機能を実行するためにプログラマブル処理ユニット４２によって実行され得るフラグメントシェーダプログラムを含むことができる。頂点シェーダプログラムは、プログラマブル頂点シェーダユニットまたは統合シェーダユニットの実行を制御し、１つ以上の頂点単位の（per-vertex）動作を指定する命令を含むことができる。
【００３４】
[0037]プロセッサクラスタ４６はまた、固定機能処理ユニット４４を含むことができる。固定機能処理ユニット４４は、特定の機能を実行するためにハードワイヤ接続されているハードウェアを含むことができる。固定機能処理ユニット４４は、たとえば、異なる機能を実行するように、１つ以上の制御信号を介して、構成可能であり得るが、固定機能ハードウェアは典型的に、ユーザコンパイルプログラムを受信することができるプログラムメモリを含まない。いくつかの例では、プロセッサクラスタ４６内の固定機能処理ユニット４４は、グラフィックス処理パイプラインのラスタライズ段の機能を実行するために、たとえば、深度テスト、シザーテスト、アルファブレンディング、低解像度深度テスト、等の、たとえば、ラスタ動作を実行する処理ユニットを含むことができる。
【００３５】
[0038]グラフィックスメモリ４０は、オンチップ記憶装置、またはＧＰＵ１２の集積回路に物理的に組み込まれたメモリである。いくつかの事例では、グラフィックスメモリ４０がオンチップであるため、ＧＰＵ１２は、システムバスを介してシステムメモリ１０から値を読み取ることまたはシステムメモリ１０に値を書き込むことより速くグラフィックスメモリ４０から値を読み取ることまたはグラフィックスメモリ４０に値を書き込むことができ得る。
【００３６】
[0039]いくつかの例では、ＧＰＵ１２は、グラフィックスデータをレンダリングするために、遅延レンダリングモード（ビニングレンダリングまたはタイルベースレンダリングとも呼ばれる）にしたがって動作することができる。遅延レンダリングモードにしたがって動作するとき、ＧＰＵ１２内のプロセッサクラスタ４６は、フレームを複数のタイルに分割するために、および、どのプリミティブが各タイル内にあるかを決定するために、最初にビニングパス(binning pass)（タイリングパス(tiling pass)としても知られている）を実行する。いくつかの例では、ビニングパスは、プリミティブがタイル内にあるか否かを示すことができる。他の例では、ビニングパスはまた、深度テストを含み、特定のプリミティブが、レンダリングされたタイルにおいて可視であるか否かを示すことができる。複数のタイルの各々について、次いで、プロセッサクラスタ４６は、タイルのグラフィックスデータ（ピクセルのカラー値）を、ＧＰＵ１２に局所的に位置しているグラフィックスメモリ４０にレンダリングし、これは、各タイルをレンダリングするためにグラフィックス処理パイプラインを実行することを含む、完了すると、グラフィックスメモリ４０からフレームバッファ１６またはレンダターゲット２４のうちの１つに、レンダリングされたグラフィックスデータを読み取る。いくつかの例では、レンダリングされた各タイルが、ピクセルの２次元ブロックのピクセルのカラー値を含むため、タイルは、サーフェスと考えられ得るか、複数のタイルで構成されている最終的にレンダリングされた画像であるサーフェスの一部と考えられ得る。
【００３７】
[0040]ＧＰＵ１２は、各タイルをピクセルの複数のブロックに分割することができる。ピクセルのブロックのサイズは、低解像度バッファにおける１つの記憶場所に対応する、ディスプレイ８上のピクセルのブロックのサイズに類似し得る。ＧＰＵ１２は、各タイルのプリミティブをスクリーン空間に変換し得、互いに対してこれらプリミティブを前方から後方に順序付け得、以下を決定するために、現在のタイルのサブタイルをテストする：（１）各プリミティブが所与のサブタイル内に含まれているか、および（２）所与のサブタイルに含まれている場合、プリミティブのピクセルが、特定のサブタイル内の任意の他のプリミティブのピクセルによって塞がれているか。
【００３８】
[0041]いくつかの例では、ビニングパス中、ＧＰＵ１２はまた、複数のタイルの各々のピクセルのブロックについての低解像度ｚ（ＬＲＺ）データを生成し得、そのようなＬＲＺデータを、システムメモリ１０のような、メモリ内の低解像度バッファに記憶することができる。低解像度ｚとは、低解像度バッファが、複数のタイルの各々のピクセルごとというよりはむしろピクセルのブロックに関連付けられた深度データを記憶することを指す。低解像度バッファは、複数の記憶場所を有する２次元バッファであり得る。低解像度バッファ内の各記憶場所は、ディスプレイ８上に表されるピクセルのブロックに対応することができる。いくつかの例では、低解像度バッファ内の記憶場所の数は、ディスプレイ８上に表されることとなるピクセル数より少ないであろう。ＬＲＺデータは、ピクセルの所与のブロックについての最後部の深度値を含むピクセルのブロック（たとえば、ピクセルの２ｘ２ブロック）についての深度データであり得る。タイルは、１つ以上のＬＲＺデータに関連付けられ得る。たとえば、ピクセルの８ｘ８ブロックであるタイルを考えると、このタイルは、タイルの所与の２ｘ２ピクセルブロックに各々関連付けられている１６個のＬＲＺデータを含み得、１６個のＬＲＺデータの各々は、タイルの関連する２ｘ２ピクセルブロックについての最後部の深度値を含むことができる。
【００３９】
[0042]ＧＰＵ１２は、ＬＲＺデータに関連付けられたピクセルのブロックを占有するプリミティブのピクセルの深度値を決定することに基づいてＬＲＺデータを決定することができる。ＬＲＺデータが個々のピクセルではなく、ピクセルのブロックについての深度データであるため、ＧＰＵ１２は、ピクセルのブロックごとのＬＲＺデータの決定に保守的であり得る。たとえば、ＬＲＺデータがピクセルの２ｘ２ブロック（ｐ００、ｐ０１、ｐ１０、およびｐ１１）である場合、ＧＰＵ１２は、対応するＬＲＺデータを、最後部のピクセル（すなわち、カメラから最も離れているピクセル）の深度データとなるように設定することができる。ピクセルｐ００、ｐ０１、ｐ１０、およびｐ１１がそれぞれ、対応する深度値０．１、０．１、０．２、および０．１５を有する場合、ここで、より低い値はより高い値よりカメラから離れている深度を表す、ＧＰＵ１２は、そのピクセルブロックについてのＬＲＺデータを０．１になるように設定することができる。
【００４０】
[0043]レンダリングされたサーフェスを構成するピクセルの深度情報を用いて低解像度バッファを更新した後、ＧＰＵ１２は、タイルごとに、低解像度バッファに記憶された深度値に基づいて、グラフィックスメモリ４０に画像をレンダリングすることができる。ピクセルをレンダリングするために、ディスプレイ上のピクセルごとに、ＧＰＵ１２は、低解像度バッファ内に記憶された深度値に基づいて、タイル内のどのプリミティブからどのピクセルをレンダリングするかを決定することができる。低解像度バッファ内に記憶された深度値に基づいて、プリミティブのピクセルが最終のシーンにおいて塞がれている(occluded)とＧＰＵ１２が決定すると、ＧＰＵ１２は、それらの塞がれたピクセルに対するさらなるピクセルシェーディングまたはフラグメントシェーディング動作を実行しないと決定し得、それによって、ＧＰＵ１２の性能を高める。各タイルがグラフィックスメモリ４０にレンダリングされた後、ＧＰＵ１２は、レンダリングされたタイルをグラフィックスメモリ４０からメモリ２６に転送することができる。このように、フレームバッファ１６またはレンダターゲット２４のうちの１つは、ＧＰＵ１２からのレンダリングされたタイルによってタイルごとに満たされ得、レンダリングされたタイルの各々をグラフィックスメモリからフレームバッファ１６またはレンダターゲット２４のうちの１つに転送しており、それによって、サーフェスをフレームバッファ１６またはレンダターゲット２４のうちの１つにレンダリングする。
【００４１】
[0044]ＧＰＵ１２がレンダリングされたサーフェスに追加のプリミティブをレンダリングしようと試みるとき、ＧＰＵ１２は、それらのプリミティブのレンダリングを最適化するために、構築されたＬＲＺデータをサーフェスに対して利用し得る。ＧＰＵ１２は、本開示の技法によってそれらのプリミティブをピクセルにラスタライズし得、塞がれているとＧＰＵ１２が決定したピクセルを破棄するために低解像度深度テストを実行することができる。ＧＰＵ１２は、ピクセルごとに、ピクセルの深度値を、関連するＬＲＺデータ（すなわち、テストされているピクセルのピクセルロケーションに関連付けられたＬＲＺデータ）の深度値と比較し得、このピクセルの深度値が関連するＬＲＺデータの深度値より小さい（たとえば、カメラからより離れている）場合、ピクセルを破棄することができる。これらの塞がれたピクセルを破棄することで、ＧＰＵ１２は、ピクセルシェーディング動作および同様のもののような、それらのピクセルに対する任意の追加のグラフィックスレンダリング動作の実行を省略し得、それによって、ＧＰＵ１２のグラフィックス処理性能を高める。
【００４２】
[0045]いくつかの状況では、ＧＰＵ１２は、他のピクセルによって必然的に塞がれているピクセルを、それらのピクセルが個々のピクセルのピクセルレベルの深度テスト中に拒否され得るとしてもＧＰＵ１２がＬＲＺデータを使用してそれらのピクセルの低解像度テストを実行するとき、拒否しないであろう。たとえば、ピクセルの２ｘ２ブロック（ｐ００、ｐ０１、ｐ１０、およびｐ１１）を表すＬＲＺデータを考えると、ＬＲＺデータは、深度値０．１であり得、ここで、より低い値は、ピクセルｐ０１が実際の深度値０．２を有し得るとしても、より高い値よりカメラから離れている深度を表す。その後、ＧＰＵ１２は、ピクセルｐ０１と同じピクセルロケーションに、深度値０．１５を有する新たなピクセルｐ０１’を有するプリミティブをレンダリングするかを決定することができる。ＬＲＺデータが深度値０．１であるため、ＧＰＵ１２は、ピクセルｐ０１の実際の深度値が０．２であるとしても、ピクセルｐ０１’がＬＲＺデータの深度値０．１より大きい深度値０．１５を有するため、それでも、ＬＲＺデータに基づいて、新たなピクセルｐ０１’に関連付けられたプリミティブが最終的にレンダリングされたサーフェスにおいて可視となると決定することができる。ＬＲＺデータに基づいた、ピクセルｐ０１’が可視であるとのＧＰＵ１２の決定により、ＧＰＵ１２が、ピクセルｐ０１’が実際には最終的にレンダリングされたシーンにおいて可視ではないと決定するためにピクセルｐ０１’に対してピクセルレベルの深度テストを実行し、ピクセルｐ０１’を破棄する前に、ＧＰＵ１２は、ピクセルに対してグラフィックスレンダリング動作（たとえば、フラグメントシェーディング動作）を実行し得、それによって、ピクセルｐ０１’のカラー値が、フレームバッファ１６またはレンダターゲット２４のうちの１つに書き込まれることを防ぐ。
【００４３】
[0046]ＧＰＵ１２が、ＬＲＺデータを使用した低解像度深度テストの後に各ピクセルのピクセルレベルの深度テストを実行するため、ＬＲＺデータの使用は、オプションであると考えられ得る。低解像度深度テストは、ＧＰＵ１２がピクセルに対してピクセルシェーディング動作を実行する前に、それらのピクセルを破棄し得るが、ＧＰＵ１２は、依然として、ＧＰＵ１２が破棄されていないピクセルに対してピクセルシェーディング動作を実行した後に、それらの各ピクセルのピクセル単位の深度テストを最終的に実行することができる。ゆえに、ＬＲＺデータを使用した低解像度深度テストは、ＧＰＵ１２が、低解像度深度テストの結果として破棄される特定のピクセルに対してピクセルシェーディングを実行するのにその処理を費やすことを防ぐＧＰＵ１２の処理への最適化であると考えられ得る。そのため、ＧＰＵ１２は、ＧＰＵ１２がそのグラフィックス処理の一環として低解像度深度テストを実行しないとしても、グラフィックスデータをレンダリングするために依然として正確に実行することができる。
【００４４】
[0047]ＧＰＵ１２はまた、タイルベースハッシュコードが、それらのピクセルのブロックについての異なる色データを有するタイルを一意的に識別するように、各レンダリングされたタイルに含まれているピクセルのブロックの色データに基づいて、レンダリングされたタイルごとにタイルベースハッシュコードを決定することができる。上述したように、各レンダリングされたタイルは、ピクセルのブロック（たとえば、８ｘ８）であり、ここで、各ピクセルは、カラー値を有する。ＧＰＵ１２は、ピクセル値の異なるパターンを含むタイル（たとえば、赤いピクセルで完全に満たされているタイルおよび緑のピクセルで完全に満たされているタイル）を異なるタイルベースハッシュコードと関連付け得、ピクセル値の同じパターンを含むタイル（たとえば、赤いピクセルで各々完全に満たされている２つのタイル）を同じタイルベースハッシュコードと関連付けることができる。
【００４５】
[0048]ＧＰＵ１２が、第１のタイルから第２のタイルへの、タイルに対応する色データのビットブロック転送を実行するかを決定するとき、そのようなタイルベースハッシュコードは有益であり得る。第１のタイルおよび第２のタイルが各々同じタイルベースハッシュコードに関連付けられている場合、ＧＰＵ１２は、第１および第２のタイルがピクセルのそれらのそれぞれのブロックについて色データの同じセットを含むため、色データの実際の転送が発生する必要がなにことを決定し得、それによって、コンピューティングデバイス２の性能を高める。いくつかの例では、ＧＰＵ１２は、タイルのサイズより小さいピクセルのブロックについてのタイルベースハッシュコードを決定することができる。たとえば、タイルが８ｘ８ブロックを備える場合、ＧＰＵ１２は、それでも、サーフェスのピクセルの４ｘ４ブロックごとにタイルベースハッシュコードを決定することができる。このケースでは、各タイルは、それが含むピクセルの４ｘ４ブロックごとに４つのタイルベースハッシュコードに関連付けられることができる。
【００４６】
[0049]各レンダリングされたタイルが、フレームバッファ１６またはレンダターゲット２４のうちの１つへの記憶のためにグラフィックスメモリ４０から転送されるため、ＧＰＵ１２は、バスを通じてタイルをフレームバッファ１６またはレンダターゲット２４のうちの１つにより効率的に動かすために、任意の適切な圧縮アルゴリズムを介して、各タイルを圧縮することができる。圧縮タイルの、結果として得られるサイズは、各タイルのコンテンツの変動性に基づいて異なり得る。いくつかの圧縮タイルは未圧縮タイルのサイズの数分の１（fraction）であり得るが、他の圧縮タイルは、未圧縮タイルのサイズよりわずかに小さいまたは同じサイズであり得か、全く圧縮されていないであろう。ゆえに、複数の帯域幅圧縮タイルは、他の圧縮タイルの中の１つ以上の未圧縮タイルを含むことができる。
【００４７】
[0050]いくつかの例では、ＧＰＵ１２は、圧縮タイルごとにタイルベースハッシュコードを決定することができる。ゆえに、未圧縮タイルの基礎となる（underlying）サーフェスカラー値についてのタイルベースハッシュコードを生成するのではなく、ＧＰＵ１２は、圧縮後の各タイルのデータに基づいてタイルベースハッシュコードを生成し得、それによって、複数の圧縮タイルに対するチェックサムとして機能する。この例では、２つのタイルベースハッシュコードは、圧縮後の２つの関連する圧縮タイルが同じである場合、同じであり得る。
【００４８】
[0051]所与のレンダリングされた画像の未圧縮タイルがすべて同じサイズであるため、フレームバッファ１６またはレンダターゲット２４のうちの１つは、各々未圧縮タイルと同じサイズである固定サイズのブロックに、サーフェスの未圧縮タイルのすべてを記憶するのに十分な空間を有するように構成される。さらに、サーフェスを構成するタイルを圧縮することは、各特定のタイルのカラー値により変化する異なるサイズのタイルに帰着し得るため、ＧＰＵ１２は、特に、圧縮タイルを記憶することに対して、メモリ２６中の可変サイズのカスタムブロックを割当てることはできないであろう。したがって、ＧＰＵ１２は、各圧縮タイルがブロックのうちの１つに記憶されるように複数の圧縮タイルを複数のブロックに記憶することで、レンダリングされた画像の未圧縮タイルを記憶するために割当てられたのと同じ複数のブロックを利用することができる。
【００４９】
[0052]メモリ２６が、未圧縮タイルと各々同じサイズであるブロックに圧縮タイルを記憶するため、メモリ２６は、実際には、未圧縮タイルの代わりに複数の圧縮タイルを記憶することで空間を節約してはいない。複数の圧縮タイルがメモリ２６において未圧縮タイルより少ない空間を占め得るとしても、やはり、メモリ２６内の同じ量の空間が、複数のブロックに記憶されるのが圧縮タイルであるか未圧縮タイルであるかにかかわらず、複数のブロックに対して確保される。
【００５０】
[0053]したがって、ＧＰＵ１２が、圧縮タイルを複数のブロックに記憶するとき、複数のブロックは、複数の圧縮タイルの記憶によって占められない未使用空間を含むことができる。圧縮タイルが記憶される対応ブロックの全空間より少ない空間を占める各圧縮タイルの場合、対応ブロックは未使用空間を有することができる。そのため、本開示の技法によれば、ＧＰＵ１２は、複数の圧縮タイルから構成されるレンダリングされたサーフェスに関連付けられた追加データを記憶するために未使用空間を利用するように構成されることができる。たとえば、ＧＰＵ１２は、複数の圧縮タイルについてのＬＲＺデータおよびタイルベースハッシュコードをメモリ２６内の専用バッファに記憶しないで、そのようなデータを複数のブロックの未使用空間に記憶することができる。
【００５１】
[0054]圧縮タイルを記憶するブロック内の未使用空間が保証されていないため、ＧＰＵ１２は、特定の圧縮タイルを記憶するブロックが未使用空間を有する場合にのみ、ＬＲＺデータおよびタイルベースハッシュコードのような、特定の圧縮タイルに関連付けられたデータを記憶することができ得る。しかしながら、圧縮タイルがブロックを完全に占有する場合、ＧＰＵ１２は、特定の圧縮タイルに関連付けられたデータをこのブロックに記憶することができないであろう。ゆえに、ＧＰＵ１２は、対応する圧縮タイルに関連付けられたサーフェスの各部分についてオプションであるデータを。ブロックの未使用空間に記憶することができ得る。
【００５２】
[0055]ＧＰＵ１２は、複数のブロックが圧縮タイルを記憶することの結果として生じる、複数のブロックの各々における利用可能な未使用空間を決定することができる。たとえば、ＧＰＵ１２は、複数のブロック中のブロックのサイズを決定し得、圧縮タイルの各々のサイズを決定することができる。特定の圧縮タイルのサイズが複数のブロック中のブロックのサイズより小さいとＧＰＵ１２が決定すると、ＧＰＵ１２は、この特定の圧縮タイルを記憶するブロックが未使用空間を有し得ることを決定することができる。
【００５３】
[0056]複数のブロックのうちの１つ以上が未使用空間を含むとＧＰＵ１２が決定することに応答して、ＧＰＵ１２は、ＧＰＵ１２がその性能を高めるために利用し得る最適化サーフェスを、複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することができる。たとえば、ＬＲＺデータは、ＧＰＵ１２が、最終的にレンダリングされるサーフェスにおいて可視ではないプリミティブのラスタリズを実行しないことを可能にすることでそれらのプリミティブを示すことよって、有益である。しかしながら、ＬＲＺデータなしで、ＧＰＵ１２は、最終的にレンダリングされるサーフェスにおいてプリミティブが可視であるかどうかにかかわらずそれらのプリミティブのラスタライズを実行することで、依然として、所与のサーフェスを正確にレンダリングすることができる。そのため、ＬＲＺデータは、それがサーフェスをレンダリングするときＧＰＵ１２の性能を高め得るが、ＧＰＵ１２がサーフェスを正確にレンダリングするのに不可欠な情報というわけではない。
【００５４】
[0057]タイルベースハッシュコードは、それらが、ＧＰＵ１２の性能を高めるのに有益ではあるが、ＧＰＵ１２がグラフィックス動作を正確に実行するのに不可欠というわけではない点で、ＬＲＺデータに類似している。タイルベースハッシュコードなしで、ＧＰＵ１２は、依然として、色データのビットブロック転送のような機能を正確に実行し得るが、色データの同じブロックを有するサーフェスの部分間での色データの冗長転送を実行することができる。
【００５５】
[0058]図３Ａ−図３Ｆは、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となる技法を例示する概念図である。図３Ａに示されるように、ＧＰＵ１２は、帯域幅圧縮グラフィックスデータ５６Ａ−５６Ｎ（「帯域幅圧縮グラフィックスデータ５６」）を、システムメモリ１０、フレームバッファ１６、レンダターゲット２４のうちの１つ以上、および同様のもののような、メモリ２６中のブロック５４Ａ−５４Ｎ（「ブロック５４」）に記憶することができる。帯域幅圧縮グラフィックスデータ５６は、いくつかの例では各々、バスを通じておよびコンピューティングデバイス２の構成要素間で（たとえば、ＧＰＵ１２とメモリ２６との間で）グラフィックスデータをより効率的に動かすためにＧＰＵ１２によって圧縮されるレンダリングされたシーンまたはサーフェスを構成するタイル（たとえば、画像サーフェスの一部）であり得る。
【００５６】
[0059]ブロック５４は、メモリ２６において連続しており、各々、帯域幅圧縮グラフィックスデータ５６の各々を記憶するために同じ均一の固定サイズであり得る。いくつかの例では、帯域幅圧縮グラフィックスデータ５６の各々が帯域幅圧縮タイルである場合、ＧＰＵ１２は、メモリ２６において、ブロック５４の１つ１つが帯域幅圧縮グラフィックスデータ５６のうちの対応する１つを記憶し得るように、レンダリングされたサーフェスを構成するタイルの数と同じ数のブロック５４を割当てることができる。
【００５７】
[0060]ブロック５４の各々が、レンダリングされたサーフェスの未圧縮グラフィックスデータを記憶するのに十分な大きさであるため、帯域幅圧縮グラフィックスデータ５６をブロック５４に記憶することは、ブロック５４中に未使用空間が残存することに帰着し得る。図３Ａの例では、未使用空間５８Ａ、５８Ｂ、５８Ｃ、５８Ｄ、および５８Ｅ（「未使用空間５８」）は、ブロック５４Ａ、５４Ｂ、５４Ｃ、５４Ｅ、および５４Ｎがそれぞれの帯域幅圧縮グラフィックスデータ５６Ａ、５６Ｂ、５６Ｃ、５６Ｅ、および５６Ｎを記憶する場合、それぞれブロック５４Ａ、５４Ｂ、５４Ｃ、５４Ｅ、および５４Ｎに残存し得る。
【００５８】
[0061]上述したように、ＧＰＵ１２は、各帯域幅圧縮グラフィックスデータ５６のサイズをブロック５４のブロックのサイズと比較することで、ブロック５４の各ブロックが未使用空間５８を有するかどうかを決定することができる。ＧＰＵ１２は、フラグサーフェス５２Ａ−５２Ｎ（「フラグサーフェス５２」）を作成し、メモリ２６に記憶し得、ここで、フラグサーフェス５２の各々は、ブロック５４のうちの１つに関連付けられている、ブロック５４の対応ブロック中の未使用空間の量を示すことができる。
【００５９】
[0062]図３Ａの例では、フラグサーフェス５２は、ブロック５４の対応ブロック中の未使用空間の量の割合を、４分のいくつかであるかで、記憶することができる。フラグサーフェス５２Ａは、未使用空間がブロック５４Ａの３／４を占めることを示すことができる。フラグサーフェス５２Ｂは、未使用空間がブロック５４Ｂの１／２を占めることを示すことができる。フラグサーフェス５２Ｃは、未使用空間がブロック５４Ｃの１／４を占めることを示すことができる。フラグサーフェス５２Ｄは、ブロック５４Ｄが未使用空間を有さないことを示すことができる。フラグサーフェス５２Ｅは、未使用空間がブロック５４Ｅの１／４を占めることを示すことができる。フラグサーフェス５２Ｆは、ブロック５４Ｆが未使用空間を有さないことを示すことができる。フラグサーフェス５２Ｎは、未使用空間がブロック５４Ｎの１／４を占めることを示すことができる。フラグサーフェス５２もメモリ２５に記憶されるため、メモリに帯域幅圧縮グラフィックスデータ５６を記憶することは、メモリ２６において、同等の未圧縮グラフィックスデータ５６を記憶するより多くの空間を占めることができる。
【００６０】
[0063]上述したように、ＧＰＵ１２は、帯域幅圧縮グラフィックスデータ５６に関連付けられたデータを未使用空間５８に記憶することができる。図３Ｂに示されるように、ＧＰＵ１２は、未使用空間５８を有するブロック５４のブロックを、フラグサーフェス５２に基づいて、決定し得、ＬＲＺデータ６０Ａ−６０Ｅをブロック５４の未使用空間５８Ａ−５８Ｅに記憶することができる。ＬＲＺデータ６０Ａ−６０Ｅの各々は、固定サイズであり得る。ブロック５４Ａ、５４Ｂ、５４Ｃ、５４Ｅ、および５４Ｎだけがそれぞれの未使用空間５８Ａ−５８Ｅを有するため、ＧＰＵ１２は、図３Ｂの例では、それぞれの帯域幅圧縮グラフィックスデータ５６Ａ、５６Ｂ、５６Ｃ、５６Ｅ、および５６Ｎについての深度情報を含むＬＲＺデータ６０Ａ−６０Ｅだけをブロック５４の未使用空間５８に記憶することができる。ゆえに、帯域幅圧縮グラフィックスデータ５６Ｄおよび５６Ｆについての深度情報は、ブロック５４の未使用空間５８に記憶されない。
【００６１】
[0064]ＬＲＺデータ６０Ａは、ＬＲＺデータ６０Ａが、帯域幅圧縮グラフィックスデータ５６Ａに対応するサーフェスの一部を構成するピクセルについてのＬＲＺデータを含み得る点で、帯域幅圧縮グラフィックスデータ５６Ａに関連付けられ得る。例えば、帯域幅圧縮グラフィックスデータ５６Ａが、ピクセルの特定の８ｘ８ブロックに関するグラフィックスデータを含む場合、ＬＲＺデータ６０Ａは、一例では、ピクセルの８ｘ８ブロックの各２ｘ２ピクセルブロックについての対応する複数のＬＲＺデータを含むことができる。同様に、ＬＲＺデータ６０Ｂは、帯域幅圧縮グラフィックスデータ５６Ｂに対応するサーフェスの一部を構成するピクセルについてのＬＲＺデータを含み得、ＬＲＺデータ６０Ｃは、帯域幅圧縮グラフィックスデータ５６Ｃに対応するサーフェスの一部を構成するピクセルについてのＬＲＺデータを含み得、ＬＲＺデータ６０Ｄは、帯域幅圧縮グラフィックスデータ５６Ｅに対応するサーフェスの一部を構成するピクセルについてのＬＲＺデータを含み得、ＬＲＺデータ６０Ｅは、帯域幅圧縮グラフィックスデータ５６Ｎに対応するサーフェスの一部を構成するピクセルについてのＬＲＺデータを含むことができる。
【００６２】
[0065]関連するＬＲＺデータが関連するブロック５４Ｄおよび５４に記憶されていない帯域幅圧縮グラフィックスデータ５６Ｄおよび５６Ｆについて、ＧＰＵ１２は、デフォルトの深度値を、それぞれのブロック５４Ｄおよび５４Ｆを完全に占有する帯域幅圧縮グラフィックスデータ５６Ｄおよび５６Ｆの各々に関連付ける。デフォルトの深度値は、帯域幅圧縮グラフィックスデータ５６Ｄおよび５６Ｆに関連付けられたサーフェスの一部へとレンダリングされるべき追加のピクセルが、帯域幅圧縮グラフィックスデータ５６Ｄおよび５６Ｆに関連付けられたサーフェスの一部のピクセルの前にあると示す最後部の深度値であり得、ゆえに、それらの追加のピクセルが最終的にレンダリングされるシーンにおいて実際に可視であるかどうかににかかわらず、可視であり得る。
【００６３】
[0066]帯域幅圧縮グラフィックスデータ５６の各々についての深度情報を収容するために、ＧＰＵ１２は、複数の帯域幅圧縮グラフィックスデータ５６についての深度情報をブロック５４の単一ブロックの未使用空間５８に記憶することができる。図３Ｃに示されるように、ＧＰＵ１２は、複数の連続した帯域幅圧縮グラフィックスデータ５６についてのＬＲＺデータを含むブロック５４Ａの未使用空間５８ＡにＬＲＺデータ６０Ｆを記憶することができる。ブロック５４の単一ブロックの未使用空間５８に記憶されるＬＲＺデータは、帯域幅圧縮グラフィックスデータ５６のうちの関連する帯域幅圧縮グラフィックスデータについての深度情報と、次の連続した指定数の帯域幅圧縮グラフィックスデータ５６についての深度情報とを含むことができる。例えば、ブロック５４の単一ブロックの未使用空間５８に記憶されるＬＲＺデータが、帯域幅圧縮グラフィックスデータ５６のうちの６つについてのＬＲＺデータを含み得る場合、ＬＲＺデータ６０Ｆは、帯域幅圧縮グラフィックスデータ５６Ａ−５６Ｆについての深度データを含むことができる。同様に、ＬＲＺデータ６０Ｇは、帯域幅圧縮グラフィックスデータ５６Ｎおよび次の５つの後続の帯域幅圧縮グラフィックスデータ５６についての深度データを含むことができる。このように、ブロック５４は、各帯域幅圧縮グラフィックスデータ５６についての深度データを記憶することができる。
【００６４】
[0067]図３Ｄに示されるように、ＧＰＵ１２はまた、タイルベースハッシュコード６２Ａ−６２Ｅをブロック５４の未使用空間５８Ａ−５８Ｅに記憶することができる。タイルベースハッシュコード６２Ａ−６２Ｅの各々は、同じサイズであり得る。ブロック５４Ａ、５４Ｂ、５４Ｃ、５４Ｅ、および５４Ｎだけがそれぞれの未使用空間５８Ａ−５８Ｅを有するため、ＧＰＵ１２は、図３Ｂの例では、それぞれの帯域幅圧縮グラフィックスデータ５６Ａ、５６Ｂ、５６Ｃ、５６Ｅ、５６Ｎについてのカラー値を識別するタイルベースハッシュコード６２Ａ−６２Ｅだけを、ブロック５４の未使用空間５８に記憶することができる。ゆえに、帯域幅圧縮グラフィックスデータ５６Ｄおよび５６Ｆについてのタイルベースハッシュコードは、ブロック５４の未使用空間５８に記憶されない。
【００６５】
[0068]帯域幅圧縮グラフィックスデータ５６の各々についてのタイルベースハッシュコードを収容するために、ＧＰＵ１２は、複数の帯域幅圧縮グラフィックスデータ５６についてのタイルベースハッシュコードをブロック５４の単一ブロックの未使用空間５８に記憶することができる。図３Ｅに示されるように、ＧＰＵ１２は、複数の連続した帯域幅圧縮グラフィックスデータ５６についてのタイルベースハッシュコードを含むブロック５４Ｃの未使用空間５８Ｃにタイルベースハッシュコード６２Ｆを記憶することができる。ブロック５４の単一ブロックの未使用空間５８に記憶されるタイルベースハッシュコードは、帯域幅圧縮グラフィックスデータ５６のうちの関連する帯域幅圧縮グラフィックスデータについてのタイルベースハッシュコードおよび次の連続した指定数の帯域幅圧縮グラフィックスデータ５６または前の連続した数の帯域幅圧縮グラフィックスデータ５６についてのタイルベースハッシュコードを含むことができる。例えば、ブロック５４の単一ブロックの未使用空間５８に記憶されたタイルベースハッシュコードが、帯域幅圧縮グラフィックスデータ５６のうちの３つについてのＬＲＺデータを含み得る場合、タイルベースハッシュコード６２Ｆは、帯域幅圧縮グラフィックスデータ５６Ａ−５６Ｃの各々についてのタイルベースハッシュコードを含むことができる。同様に、タイルベースハッシュコード６２Ｇは、帯域幅圧縮グラフィックスデータ５６Ｎおよび前の２つの帯域幅圧縮グラフィックスデータ５６についてのタイルベースハッシュコードを含むことができる。このように、ブロック５４は、帯域幅圧縮グラフィックスデータ５６の各々についてのタイルベースハッシュコードを記憶することができる。
【００６６】
[0069]いくつかの例では、ＧＰＵ１２は、帯域幅圧縮グラフィックスデータ５６に関連付けられた複数のタイプのデータをブロック５４の未使用空間５８に同時に記憶することができる。例えば、ブロック５４の未使用空間５８は、帯域幅圧縮グラフィックスデータ５６の各々についての深度データおよびタイルベースハッシュコードの両方を記憶することができる。図３Ｆに示されるように、ＧＰＵ１２は、ＬＲＺデータ６０Ｈをブロック５４Ａの未使用空間５８Ａに、ＬＲＺデータ６０Ｉをブロック５４Ｅの未使用空間５８Ｄに記憶することができる。ＧＰＵ１２はまた、タイルベースハッシュコード６２Ｈをブロック５４の未使用空間５８Ｃに、タイルベースハッシュコード６２Ｉをブロック５４Ｎの未使用空間５８Ｅに記憶することができる。そのため、ブロック５４の未使用空間５８は、帯域幅圧縮グラフィックスデータ５６についてのＬＲＺデータおよびタイルベースハッシュコードの両方を同時に記憶することができる。
【００６７】
[0071]ＧＰＵ１２がＬＲＺデータおよびタイルベースハッシュコードをブロック５４の未使用空間５８に記憶することができることを図３Ａ−３Ｆは例示するが、本開示は、必ずしも、ＬＲＺデータおよびタイルベースハッシュコードだけをブロック５４の未使用空間５８に記憶することに限定されるわけではない。むしろ、ＧＰＵ１２は、帯域幅圧縮グラフィックスデータ５６に関する任意の他のデータを、ブロック５４の未使用空間５８に記憶することができる。
【００６８】
[0071]図４は、帯域幅圧縮グラフィカルデータをメモリに記憶するための例となるプロセスを例示するフローチャートである。図４に示されるように、プロセスは、ＧＰＵ１２によって、複数の帯域幅圧縮グラフィックスデータ５６を、メモリ２６内のそれぞれの複数のブロック５４に記憶することを含み得、ここにおいて、複数のブロック５４の各々は、メモリ２６内において均一の固定サイズであり、複数の帯域幅圧縮グラフィックスデータ５６のうちの１つ以上は、固定サイズより小さいサイズを有する（１０２）。プロセスは、ＧＰＵ１２によって、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータ５６のそれぞれの１つ以上を含む、複数のブロック５４のうちの１つ以上のブロックの未使用空間５８に記憶することをさらに含む（１０４）。
【００６９】
[0072]いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータは、複数のブロック５４のうちの１つ以上に記憶された複数の帯域幅圧縮グラフィックスデータ５６のうちの１つ以上についての深度データを備える。いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６のうちの第２の１つ以上は、複数のブロック５４のうちの第２の１つ以上を完全に占有し得、プロセスは、ＧＰＵ１２によって、複数の帯域幅圧縮グラフィックスデータ５６のうちの第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けることをさらに含むことができる。いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータは、複数のブロック５４のうちの１つ以上に記憶された複数の帯域幅圧縮グラフィックスデータ５６の各々についての深度データを備える。
【００７０】
[0073]いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータは、複数のブロック５４のうちの１つ以上に記憶された複数の帯域幅圧縮グラフィックスデータ５６のうちの１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える。いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータは、複数のブロック５４のうちの１つ以上に記憶された複数の帯域幅圧縮グラフィックスデータ５６の各々を識別するハッシュコードを備える。
【００７１】
[0074]いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータは、複数のブロック５４のうちの１つ以上に記憶された複数の帯域幅圧縮グラフィックスデータ５６の各々を識別するハッシュコードと、複数のブロック５４のうちの１つ以上に記憶された複数の帯域幅圧縮グラフィックスデータ５６の各々についての深度データとを備える。
【００７２】
[0075]いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータは、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられた最適化サーフェスを備える。いくつかの例では、複数の帯域幅圧縮グラフィックスデータ５６は、画像サーフェスの帯域幅圧縮部分を備え得る。
【００７３】
[0076]いくつかの例では、ＧＰＵ１２によって、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータ５６のそれぞれの１つ以上を含む、複数のブロック５４のうちの１つ以上のブロックの未使用空間に記憶することは、ＧＰＵ１２によって、複数のブロック５４の１つ以上が未使用空間を含むと決定することと、複数のブロック５４のうちの１つ以上が未使用空間を含むと決定したことに応答して、ＧＰＵ１２によって、複数の帯域幅圧縮グラフィックスデータ５６に関連付けられたデータを、複数の帯域幅圧縮グラフィックスデータ５６のそれぞれの１つ以上を含む、複数のブロック５４のうちの１つ以上のブロックの未使用空間に記憶することとをさらに含むことができる。
【００７４】
[0077]１つ以上の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせにより実施されることができる。ソフトウェアにより実施される場合、これら機能は、コンピュータ読取可能な媒体において、１つ以上の命令またはコードとして、記憶または送信されることができる。コンピュータ読取可能な媒体は、ある箇所から別の箇所へのコンピュータプログラムの移送を容易にする任意の媒体を含む通信媒体またはコンピュータデータ記憶媒体を含むことができる。データ記憶媒体は、本開示で説明された技法を実施するための命令、コード、および／またはデータ構造を取り出すために、１つ以上のコンピュータまたは１つ以上のプロセッサによってアクセス可能な任意の利用可能な媒体であり得る。限定ではなく例として、このようなコンピュータ読取可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいはデータ構造または命令の形式で所望のプログラムコードを記憶または搬送するために使用されることができ、かつコンピュータによってアクセスされることができる任意の他の媒体を備えることができる。また、任意の接続は、厳密には、コンピュータ読取可能な媒体と称され得る。たとえば、ソフトウェアが、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、電波、およびマイクロ波のようなワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、電波、およびマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。本明細書で使用される場合、ディスク（disk）およびディスク（disc）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、およびブルーレイディスクを含み、ここで、ディスク（disk）は通常、磁気的にデータを再生し、ディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【００７５】
[0078]コードは、１つ以上のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の同等の集積回路またはディスクリートな論理回路のような１つ以上のプロセッサによって実行され得る。したがって、「プロセッサ」および「処理ユニット」という用語は、本明細書で使用される場合、前述の構造または本明細書で説明された技法の実施に適した任意の他の構造のうちの任意のものを指し得る。加えて、いくつかの態様では、本明細書で説明された機能性は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内で与えられ得るか、複合コーデックに組み込まれ得る。また、本技法は、１つ以上の回路または論理要素により完全に実施され得る。
【００７６】
[0079]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（すなわち、チップセット）を含む、幅広い種類のデバイスまたは装置により実施され得る。さまざまな構成要素、モジュール、またはユニットは、本開示では、開示された技法を実行するように構成されたデバイスの機能面を強調するように説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述したように、さまざまなユニットは、コデックハードウェアユニットに組み合わせられ得るか、適切なソフトウェアおよび／またはファームウェアとともに、上述した１つ以上のプロセッサを含む相互動作するハードウェアユニットの一群によって与えられ得る。
【００７７】
[0080]さまざまな例が説明されている。これらの例および他の例は、以下の特許請求の範囲の範囲内である。
【図１】
2018529168.tif 000003
【図２】
2018529168.tif 000004
【図３Ａ】
2018529168.tif 000005
【図３Ｂ】
2018529168.tif 000006
【図３Ｃ】
2018529168.tif 000007
【図３Ｄ】
2018529168.tif 000008
【図３Ｅ】
2018529168.tif 000009
【図３Ｆ】
2018529168.tif 000010
【図４】
2018529168.tif 000011
【手続補正書】
【提出日】平成30年5月22日(2018.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
少なくとも１つのプロセッサが、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶することと、ここで、前記記憶することは、前記複数の帯域幅圧縮グラフィックスデータのうちの第１の１つ以上を、前記複数のブロックのうちの第１の１つ以上に記憶することと、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上を、前記複数のブロックのうちの第２の１つ以上に記憶することとを含み、ここにおいて、前記複数の帯域幅圧縮グラフィックスデータのうちの最大のものを完全に含むことができる、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上の各々は、前記固定サイズより小さいサイズを有し、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上の各々は、前記複数のブロックのうちの前記それぞれの第２の１つ以上の各々に完全に記憶される、
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの第１の１つ以上を含む、前記複数のブロックのうちの前記第１の１つ以上のブロックの未使用空間に、前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むとの決定に少なくとも部分的に基づいて、記憶することと
を備える方法。
【請求項２】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記第１の１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上についての深度データを備える、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのプロセッサが、前記複数のブロックのうちの前記第２の１つ以上を完全に占有する、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けることをさらに備える、請求項２に記載の方法。
【請求項４】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、請求項１に記載の方法。
【請求項５】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記第１の１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、請求項１に記載の方法。
【請求項６】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、請求項１に記載の方法。
【請求項７】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、請求項１に記載の方法。
【請求項８】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた最適化サーフェスを備える、請求項１に記載の方法。
【請求項９】
前記複数の帯域幅圧縮グラフィックスデータは、画像サーフェスの帯域幅圧縮部分を備える、請求項１に記載の方法。
【請求項１０】
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの第１の１つ以上を含む、前記複数のブロックのうちの前記第１の１つ以上のブロックの前記未使用空間に記憶することは、
前記少なくとも１つのプロセッサが、前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むと決定することと、
前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むと決定したことに応答して、前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの第１の１つ以上を含む、前記複数のブロックのうちの前記第１の１つ以上のブロックの前記未使用空間に記憶することと
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記少なくとも１つのプロセッサは、グラフィックス処理ユニットを含む、請求項１に記載の方法。
【請求項１２】
グラフィックスデータを処理するように構成された装置であって、
メモリと、
少なくとも１つのプロセッサと
を備え、前記少なくとも１つのプロセッサは、
複数の帯域幅圧縮グラフィックスデータを、前記メモリ内のそれぞれの複数のブロックに記憶することと、ここで、前記記憶することは、前記複数の帯域幅圧縮グラフィックスデータのうちの第１の１つ以上を、前記複数のブロックのうちの第１の１つ以上に記憶することと、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上を、前記複数のブロックのうちの第２の１つ以上に記憶することとを含み、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上の各々は、前記固定サイズより小さいサイズを有し、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上の各々は、前記複数のブロックのうちの前記それぞれの第２の１つ以上の各々に完全に記憶される、
前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの第１の１つ以上を含む、前記複数のブロックのうちの前記第１の１つ以上のブロックの未使用空間に、前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むとの決定に少なくとも部分的に基づいて、記憶することと
を行うように構成される、装置。
【請求項１３】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記第１の１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上についての深度データを備える、請求項１２に記載の装置。
【請求項１４】
前記少なくとも１つのプロセッサは、
前記複数のブロックのうちの前記第２の１つ以上を完全に占有する、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けるようにさらに構成される、請求項１３に記載の装置。
【請求項１５】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、請求項１２記載の装置。
【請求項１６】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記第１の１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、請求項１２に記載の装置。
【請求項１７】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、請求項１２に記載の装置。
【請求項１８】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、請求項１２に記載の装置。
【請求項１９】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた最適化サーフェスを備える、請求項１２に記載の装置。
【請求項２０】
前記複数の帯域幅圧縮グラフィックスデータは、画像サーフェスの帯域幅圧縮部分を備える、請求項１２に記載の装置。
【請求項２１】
前記少なくとも１つのプロセッサは、
前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むと決定することと、
前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むと決定したことに応答して、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの第１の１つ以上を含む、前記複数のブロックのうちの前記第１の１つ以上のブロックの前記未使用空間に記憶することと
を行うようにさらに構成される、請求項１２に記載の装置。
【請求項２２】
前記少なくとも１つのプロセッサは、グラフィックス処理ユニットを含む、請求項１２に記載の装置。
【請求項２３】
装置であって、
複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶するための手段と、ここで、前記記憶するための手段は、前記複数の帯域幅圧縮グラフィックスデータのうちの第１の１つ以上を、前記複数のブロックのうちの第１の１つ以上に記憶するための手段と、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上を、前記複数のブロックのうちの第２の１つ以上に記憶するための手段とを含み、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上の各々は、前記固定サイズより小さいサイズを有し、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上の各々は、前記複数のブロックのうちの前記それぞれの第２の１つ以上の各々に完全に記憶される、
前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの１つ以上のブロックの未使用空間に記憶するための手段と
を備える、装置。
【請求項２４】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記第１の１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上についての深度データを備える、請求項２３に記載の装置。
【請求項２５】
前記複数のブロックのうちの前記第２の１つ以上を完全に占有する、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けるための手段をさらに備える、請求項２４に記載の装置。
【請求項２６】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、請求項２３記載の装置。
【請求項２７】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記第１の１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記第１の１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、請求項２３に記載の装置。
【請求項２８】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、請求項２３に記載の装置。
【請求項２９】
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックに記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、請求項２３に記載の装置。
【請求項３０】
前記記憶するための手段は、
前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むと決定するための手段と、
前記複数のブロックのうちの前記第１の１つ以上が前記未使用空間を含むと決定したことに応答して、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの第１の１つ以上を含む、前記複数のブロックのうちの前記第１の１つ以上のブロックの前記未使用空間に記憶するための手段と
をさらに備える、請求項２３に記載の装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
[0080]さまざまな例が説明されている。これらの例および他の例は、以下の特許請求の範囲の範囲内である。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
方法であって、
少なくとも１つのプロセッサが、複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶することと、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、前記固定サイズより小さいサイズを有する、
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することと
を備える方法。
［Ｃ２］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上についての深度データを備える、Ｃ１に記載の方法。
［Ｃ３］
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けることをさらに備え、前記複数の帯域幅圧縮グラフィックスデータのうちの前記第２の１つ以上は、前記複数のブロックのうちの第２の１つ以上を完全に占有する、Ｃ２に記載の方法。
［Ｃ４］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、Ｃ１に記載の方法。
［Ｃ５］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、Ｃ１に記載の方法。
［Ｃ６］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、Ｃ１に記載の方法。
［Ｃ７］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、Ｃ１に記載の方法。
［Ｃ８］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた最適化サーフェスを備える、Ｃ１に記載の方法。
［Ｃ９］
前記複数の帯域幅圧縮グラフィックスデータは、画像サーフェスの帯域幅圧縮部分を備える、Ｃ１に記載の方法。
［Ｃ１０］
前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶することは、
前記少なくとも１つのプロセッサが、前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定することと、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定したことに応答して、前記少なくとも１つのプロセッサが、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
前記少なくとも１つのプロセッサは、グラフィックス処理ユニットを含む、Ｃ１に記載の方法。
［Ｃ１２］
グラフィックスデータを処理するように構成された装置であって、
メモリと、
少なくとも１つのプロセッサと
を備え、前記少なくとも１つのプロセッサは、
複数の帯域幅圧縮グラフィックスデータを、前記メモリ内のそれぞれの複数のブロックに記憶することと、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、前記固定サイズより小さいサイズを有する、
前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの１つ以上のブロックの未使用空間に記憶することと
を行うように構成される、装置。
［Ｃ１３］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上についての深度データを備える、Ｃ１２に記載の装置。
［Ｃ１４］
前記少なくとも１つのプロセッサは、
前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けるようにさらに構成され、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上は、前記複数のブロックのうちの第２の１つ以上を完全に占有する、Ｃ１３に記載の装置。
［Ｃ１５］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、Ｃ１２記載の装置。
［Ｃ１６］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、Ｃ１２に記載の装置。
［Ｃ１７］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、Ｃ１２に記載の装置。
［Ｃ１８］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、Ｃ１２に記載の装置。
［Ｃ１９］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた最適化サーフェスを備える、Ｃ１２に記載の装置。
［Ｃ２０］
前記複数の帯域幅圧縮グラフィックスデータは、画像サーフェスの帯域幅圧縮部分を備える、Ｃ１２に記載の装置。
［Ｃ２１］
前記少なくとも１つのプロセッサは、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定することと、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定したことに応答して、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶することと
を行うようにさらに構成される、Ｃ１２に記載の装置。
［Ｃ２２］
前記少なくとも１つのプロセッサは、グラフィックス処理ユニットを含む、Ｃ１２に記載の装置。
［Ｃ２３］
装置であって、
複数の帯域幅圧縮グラフィックスデータを、メモリ内のそれぞれの複数のブロックに記憶するための手段と、ここにおいて、前記メモリ内の前記複数のブロックの各々は、均一の固定サイズであり、前記複数の帯域幅圧縮グラフィックスデータのうちの１つ以上は、前記固定サイズより小さいサイズを有する、
前記複数の帯域幅圧縮グラフィックスデータに関連付けられたデータを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの１つ以上のブロックの未使用空間に記憶するための手段と
を備える、装置。
［Ｃ２４］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上についての深度データを備える、Ｃ２３に記載の装置。
［Ｃ２５］
前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上の帯域幅圧縮グラフィックスデータの各々についてのデフォルトの深度値を関連付けるための手段をさらに備え、前記複数の帯域幅圧縮グラフィックスデータのうちの第２の１つ以上は、前記複数のブロックのうちの第２の１つ以上を完全に占有する、Ｃ２４に記載の装置。
［Ｃ２６］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データを備える、Ｃ２３記載の装置。
［Ｃ２７］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータのうちの前記１つ以上の帯域幅圧縮グラフィックスデータの各々を識別する１つ以上のハッシュコードを備える、Ｃ２３に記載の装置。
［Ｃ２８］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードを備える、Ｃ２３に記載の装置。
［Ｃ２９］
前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データは、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々を識別するハッシュコードと、前記複数のブロックのうちの前記１つ以上に記憶された前記複数の帯域幅圧縮グラフィックスデータの各々についての深度データとを備える、Ｃ２３に記載の装置。
［Ｃ３０］
前記記憶するための手段は、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定するための手段と、
前記複数のブロックのうちの前記１つ以上が前記未使用空間を含むと決定したことに応答して、前記複数の帯域幅圧縮グラフィックスデータに関連付けられた前記データを、前記複数の帯域幅圧縮グラフィックスデータの前記それぞれの１つ以上を含む、前記複数のブロックのうちの前記１つ以上のブロックの前記未使用空間に記憶するための手段と
をさらに備える、Ｃ２３に記載の装置。
【国際調査報告】
2018529168.tif 000012
2018529168.tif 000013
2018529168.tif 000014