JP2017527898A - 適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減 - Google Patents

適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減 Download PDF

Info

Publication number
JP2017527898A
JP2017527898A JP2017508014A JP2017508014A JP2017527898A JP 2017527898 A JP2017527898 A JP 2017527898A JP 2017508014 A JP2017508014 A JP 2017508014A JP 2017508014 A JP2017508014 A JP 2017508014A JP 2017527898 A JP2017527898 A JP 2017527898A
Authority
JP
Japan
Prior art keywords
partitions
solid
texture map
color
tile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017508014A
Other languages
English (en)
Other versions
JP6185211B1 (ja
Inventor
ワン、イダ
フイ、シウ・ワイ
チャオ、スチュワート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of JP6185211B1 publication Critical patent/JP6185211B1/ja
Publication of JP2017527898A publication Critical patent/JP2017527898A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

ソリッドテクスチャマップをグラフィックス処理ユニット(GPU)に提供する例となる方法は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割することを含む。方法はまた、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することを含む。方法は、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することをさらに含む。方法はまた、ソリッドテクスチャマップへのアクセスをGPUに提供することを含む。

Description

関連出願の相互参照
[0001] 本願は、2015年2月23日付けで提出された米国特許出願第14/628,935号の出願日に対して優先権を主張する、2014年8月15日付けで提出された米国仮特許出願第62/037,785号からの優先権の利益を主張するものであり、これら両方は、その全体が参照により本明細書に組み込まれる。
[0002] 本願は、一般に、グラフィックス処理システム(graphics processing system)に関し、より具体的には、グラフィックス処理システムにおけるテクスチャ(texture)のレンダリング(rendering)に関する。
[0003] コンピューティングデバイス(computing device)は、計算およびグラフィックスレンダリング(graphics rendering)に関して高いパフォーマンスを提供する、1つ以上の高性能グラフィックス処理ユニット(GPU:graphics processing unit)を備え得る。コンピューティングデバイスは、表示のためのグラフィックスデータのレンダリングを加速するためにGPUを使用し得る。このようなコンピューティングデバイスの例は、コンピュータワークステーション、モバイルフォン(例えば、スマートフォン)、組み込みシステム、パーソナルコンピュータ、タブレットコンピュータ、およびビデオゲームコンソールを含み得る。
[0004] レンダリングは、一般に、1つ以上の3Dグラフィックスオブジェクトを含み得る三次元(3D)グラフィックスシーン(graphics scene)を、二次元(2D)のラスタライズされた画像データ(rasterized image data)に変換する処理を指す。具体的には、GPUは、3Dグラフィックスシーンのレンダリングのために少なくとも一部のハードウェア加速を提供するための、3Dレンダリングパイプラインを含み得る。シーン中の3Dグラフィックスオブジェクトは、グラフィックスアプリケーションによって1つ以上の3Dグラフィックスプリミティブ(3D graphics primitives)(例えば、点、線、三角形、パッチなど)へと細分され、GPUは、そのシーンの3Dグラフィックスプリミティブを、2Dのラスタライズされた画像データに変換し得る。
[0005] 本開示は、タイル(tile)のソリッドカラーパーティション(solid color partitions)を示すテクスチャマップ(texture map)を提供することに関する。テクスチャマップをGPUに提供するための方法、システム、および技法が提供される。
[0006] ある実施形態よると、ソリッドテクスチャマップ(solid texture map)をグラフィックス処理ユニット(GPU)に提供する方法は、レンダリング可能なコンテンツ(renderable content)のタイルを複数のパーティション(partition)に分割することを含む。方法はまた、複数のパーティションのうちの一組のパーティションがソリッドカラー(solid color)であることを決定することを含む。方法は、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することをさらに含む。方法はまた、ソリッドテクスチャマップへのアクセス(access)をGPUに提供することを含む。
[0007] 別の実施形態よると、ソリッドテクスチャマップをGPUに提供するためのシステムは、コンピューティングデバイス上で実行するタイル生成器(tile generator)を含む。タイル生成器は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割し、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定する。システムはまた、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成し、ソリッドテクスチャマップへのアクセスをGPUに提供するソリッドテクスチャマップ生成器(solid texture map generator)を含む。
[0008] 別の実施形態よると、動作を行うためのコンピュータ実行可能な命令(computer-executable instruction)を記憶するコンピュータ可読媒体(computer-readable medium)は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、ソリッドテクスチャマップへのアクセスをGPUに提供することと、を含む。
[0009] 別の実施形態によると、ソリッドテクスチャマップをグラフィックス処理ユニット(GPU)に提供するための装置は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割するための手段と、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定するための手段と、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成するための手段と、ソリッドテクスチャマップへのアクセスをGPUに提供するための手段と、を含む。
[0010] 明細書の一部を形成する添付の図面は、説明とともに発明の実施形態を図示し、さらに実施形態の原理を説明する役割を果たす。図面では、類似する参照番号は、同一の、または機能的に同一の要素を示し得る。要素が最初に現れる図面は、一般に、一番左の桁がその対応する参照番号で示されている。
[0011] 図1は、ある実施形態に従った、本願のレンダリング技法を実装するために使用され得るコンピューティングデバイスを図示するブロック図である。 [0012] 図2は、ある実施形態に従った、図1のコンピューティングデバイスのCPU、GPU、およびメモリをさらに詳細に図示するブロック図である。 [0013] 図3は、ある実施形態に従った、複数のパーティションに分割されたレンダリング可能なコンテンツを図示するブロック図である。 [0014] 図4は、ある実施形態に従った、テクスチャマップをGPUに提供するための処理フロー図である。 [0015] 図5は、ある実施形態に従った、複数のパーティションに分割されたタイルの例である。 [0016] 図6は、ある実施形態に従った、テクスチャマップをGPUに提供するための方法を図示する簡略化されたフローチャートである。
詳細な説明
[0017] 本願の異なる特徴を実装するために、多くの異なる実施形態または例を、下記の開示が提供することが理解されるだろう。ある実施形態は、これらの特定の詳細のうちのいくつか、または全てがなくとも、実行され得る。本開示を簡略化するために、コンポーネント、モジュール、および配列の特定の例が、下記に開示される。当然ながら、これらは単に例に過ぎず、限定されることを意図するものではない。
[0018] レンダリングは、グラフィックスシーンにおいて3Dオブジェクトに対応する3Dグラフィックスプリミティブを、2Dのラスタライズされた画像データに変換する処理を指す。コンピューティングデバイスは、グラフィックスプリミティブのレンダリングを加速させるために、3Dグラフィックスレンダリングパイプラインを含むグラフィックス処理ユニット(GPU)を使用し得る。具体的には、3Dグラフィックスレンダリングパイプラインは、3Dグラフィックスプリミティブをレンダリングするように構成される処理ステージを含み得る。処理ステージは、プログラマブル処理ステージ(programmable processing stages)と固定機能処理ステージ(fixed-function processing stages)とを含み得る。プログラマブル処理ステージは、GPU上に蓄積されロードされ得る、ユーザ固有のプログラムを実行するように構成され得る。固定機能処理ステージは、構成可能であり得る1つ以上の機能を実行するようにハードワイヤード(hardwired)であり得る。
[0019] コンピュータグラフィックスでは、テクスチャマッピング(texture mapping)は、プリミティブ(primitive)の表面に画像を施す処理である。テクスチャマッピングは、コンピュータで生成された画像の写実性を高め、グラフィックスパイプラインの重要かつ重大な部分となってきている。例えば、家の壁を単色(plain color)でレンダリングすることは、見栄えが良くなくあまり写実的ではない家の画像を提供する。シーン(scene)とグラフィックス(graphics)とを高めるために、レンガ模様のテクスチャが家の壁に施され得る。
[0020] GPUは、グラフィックスカード(graphics card)、フラグメント(fragment)、またはピクセルシェーダ(pixel shader)に送られた各頂点上で動作する頂点シェーダを含み、それらは、ラスタライズされるべき各ピクセルで動作し得る。GPUはまた、他のタイプのシェーダ(例えば、ジオメトリシェーダ)も含み得る。フラグメントシェーダ(fragment shader)は、フレームバッファ内に記憶されるピクセルの最終的な出力色を計算する。フラグメントシェーダは、フラグメントを色付けまたはテクスチャ処理する(texture)ために入力変数(input variables)を使用し得る。
[0021] テクスチャマップは、色データ(color data)の長方形配列(rectangular array)を指し得る。テクスチャメモリ内のピクセルはテクセル(texel)と呼ばれ得る。テクスチャメモリは、テクスチャデータを記憶するメモリを指し得る。テクスチャマップは、テクスチャ座標(texture coordinate)を使用することによって、任意の表面にマッピングされ得る。一例では、テクスチャマップは、幅と高さとを有する二次元画像(例えば、写真)である。別の例では、テクスチャマップは、1つのテクセルの任意の幅および高さを有する一次元テクスチャである。別の例では、テクスチャマップは、幅、高さ、および奥行きを有する三次元テクスチャである。
[0022] 高品質で高速のテクスチャマッピングは通常、高価なハードウェアシステムに限られる。例えば、テクスチャマッピングシステムの設計者が直面した問題は、テクスチャメモリのための高メモリ帯域(high memory bandwidth)の要求である。通常、一秒ごとにメモリをテクスチャ処理するための非常に多いアクセス数のために高帯域が必要とされている。GPUは、テクスチャ座標に対してテクスチャルックアップ(texture lookup)を行うことによって、フラグメントまたはピクセルの色を計算するシェーダ(例えば、フラグメントまたはピクセルシェーダ)を含み得る。テクスチャルックアップは通常、メモリ帯域幅、パフォーマンス、および電力の点から見て、費用のかかるハードウェア動作である。
[0023] 電力と同様に多くのメモリ帯域幅を消費し、パフォーマンスを悪化させるため、1つの単一色に対する必要以上のテクスチャルックアップのコストは非常に高い。そのコストを削減することが望ましいだろう。テクスチャ圧縮(texture compression)を使用して類似する問題が解消されている。テクスチャ圧縮は、GPUメモリに転送されるテクスチャのサイズを低減するが、ソリッドカラーパーティションについての費用のかかるテクスチャルックアップの問題を解消しない。加えて、テクスチャ圧縮の符号化および復号は遅く、余分なハードウェア変更を必要とする。
[0024] コンテンツをレンダリングする際、テクスチャの大部分はソリッドカラーであり得る。本開示は、ソリッドカラー領域(solid color regions)についてルックアップマップ(lookup map)を使用する、テクスチャシェーディング(texture shading)についてのメモリ帯域幅(memory bandwidth)を低減するための技法を提供する。加えて、本開示は、余分なハードウェアサポートがなくとも、グラフィックス命令の符号化および復号を最適化し得る。
[0025] 図1は、ある実施形態に従った、本願のレンダリング技法を実装するために使用され得るコンピューティングデバイス102を図示するブロック図である。コンピューティングデバイス102は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、コンピュータワークステーション、ビデオゲームプラットフォームまたはコンソール、ワイヤレス通信デバイス(例えば、モバイルフォン、セルラフォン、衛星電話、および/またはモバイル電話ハンドセット)、ポータブルビデオゲームデバイスまたはパーソナルデジタルアシスタント(PDA)などのハンドヘルドデバイス、パーソナル音楽プレイヤ、ビデオプレイヤ、テレビジョン、テレビジョンセットトップボックス、サーバ、メインフレームコンピュータ、あるいはグラフィカルデータを処理および/または表示する任意の他のタイプのデバイスを含み得る。
[0026] 図1の例で図示されるように、コンピューティングデバイス102は、ユーザインターフェース104、CPU 106、メモリコントローラ108、システムメモリ110、グラフィックス処理ユニット(GPU)112、GPUキャッシュ114、ディスプレイインターフェース116、ディスプレイ118、およびバス120を含む。ユーザインターフェース104、CPU 106、メモリコントローラ108、GPU 112、およびディスプレイインターフェース116は、バス120を使用して、互いと通信し得る。図1で示されるバスおよび異なるコンポーネント間の通信インターフェースの具体的な構成は単なる例にすぎず、本開示の技法を実装するために、コンピューティングデバイスの他の構成、および/または、同じまたは異なるコンポーネントとの他のグラフィックス処理システムが使用され得ることに留意されたい。
[0027] CPU 106は、コンピューティングデバイス102の動作を制御する汎用または専用プロセッサを含み得る。ユーザは、CPU 106に1つ以上のソフトウェアアプリケーションを実行させるために、コンピューティングデバイス102への入力を提供し得る。CPU 106で実行するソフトウェアアプリケーションは、例えば、オペレーティングシステム、ソフトウェアアプリケーション122(例えば、ワードプロセッサアプリケーション、電子メールアプリケーション、スプレッドシートアプリケーション、メディアプレイヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインタフェース(GUI)アプリケーション、またはブラウザ(browser))、または別のプログラムを含み得る。ユーザは、キーボード、マウス、マイクロフォン、タッチパッド、またはユーザインターフェース104を介してコンピューティングデバイス102に結合された別の入力デバイスなどの1つ以上の入力デバイス(図示されない)を介して、コンピューティングデバイス102に入力を提供し得る。
[0028] CPU 106上で実行するソフトウェアアプリケーションは、ディスプレイ118へのグラフィックスデータのレンダリングを行わせることをGPU 112に命令する、1つ以上のグラフィックスレンダリング命令を含み得る。いくつかの例では、ソフトウェア命令は、例えば、オープン・グラフィックス・ライブラリ(OpenGL.RTM.)グラフィックス・アプリケーション・インターフェース(API:application programming interface)、オープン・グラフィックス・ライブラリ内蔵システム(OpenGL ES:Open Graphics Library Embedded Systems)API、Direct3D API、X3D API、RenderMan API、WebGL API、または他の公共または専売の標準グラフィックスAPIのようなAPIに準拠し得る。グラフィックスレンダリング命令を処理するために、CPU 106はGPU 112に、グラフィックスデータのレンダリングのいくつかまたは全てを行わせるための1つ以上のグラフィックスレンダリングコマンドを出し得る。ある例では、レンダリングされるべきグラフィックスデータは、例えば、点、線、三角形、四角形、三角形ストリップなどの、グラフィックスプリミティブのリストを含み得る。
[0029] メモリコントローラ108は、システムメモリ110へのおよびシステムメモリ110からのデータの転送を容易にする。例えば、メモリコントローラ108は、メモリ読み取りおよび書き込みコマンドを受信し、メモリサービスをコンピューティングデバイス102内のコンポーネントに提供するために、システムメモリ110に対してそのようなコマンドをサービスし得る。メモリコントローラ108は、システムメモリ110に通信可能に結合される。メモリコントローラ108は、CPU 106とシステムメモリ110との両方から分離している処理モジュールであるとして図1のコンピューティングデバイス102の例で図示されるが、他の例では、メモリコントローラ108の機能のいくつかまたは全ては、CPU 106とシステムメモリ110との一方または両方で実装され得る。
[0030] システムメモリ110は、CPU 106によって実行するためにアクセス可能なプログラムモジュールおよび/または命令、および/または、CPU 106上で実行するプログラムによって使用するためのデータを記憶し得る例えば、システムメモリ110は、アプリケーションに関連付けられたユーザアプリケーションおよびグラフィックスデータを記憶し得る。システムメモリ110は、コンピューティングデバイス102の他のコンポーネントによって使用するためのおよび/または生成される情報をさらに記憶し得る。例えば、システムメモリ110は、GPU 112のためのデバイスメモリとして動作し得、GPU 112によって行われる動作から生じるデータと同様に、GPU 112によって動作されるべきデータを記憶し得る。例えば、システムメモリ110は、テクスチャバッファ、奥行きバッファ、ステンシルバッファ、頂点バッファ、フレームバッファなどの、任意の組み合わせを記憶し得る。加えて、システムメモリ110は、GPU 112によって処理するためのコマンドストリームを記憶し得る。システムメモリ110は、例えば、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、読み取り専用メモリ(ROM)、消去可能プログラマブルROM(EPROM)、電子的消去可能プログラマブルROM(EEPRPM)、フラッシュメモリ、磁気データ媒体、または光学記憶媒体などの、1つ以上の揮発性または不揮発性メモリあるいはストレージデバイスを含み得る。
[0031] GPU 112は、1つ以上のグラフィックスプリミティブをディスプレイ118にレンダリングするために、および表示のためのピクセルに画像をテクスチャマッピングするために、グラフィックス動作を行うように構成され得る。よって、CPU 106上で実行するソフトウェアアプリケーションのうちの1つがグラフィックス処理を要求するとき、CPU 106は、ディスプレイ118にレンダリングするためのグラフィックスコマンドおよびグラフィックスデータをGPU 112に提供し得る。グラフィックスコマンドは、例えば、ドローコール(draw call)コマンド、GPU状態プログラミングコマンド、メモリ転送コマンド、汎用コンピューティングコマンド、カーネル実行コマンドなどを含み得る。一例では、CPU 106は、コマンドおよびグラフィックスデータをメモリ110に書き込むことによってコマンドおよびグラフィックスデータをGPU 112に提供し、それはGPU 112によってアクセスされ得る。グラフィックスデータは、ディスプレイ118上にレンダリングされるべきピクセルの色を決定するための、システムメモリ110に記憶され且つGPU 112によって使用されるテクスチャマップを含み得る。ある例では、GPU 112は、CPU 106上で実行するアプリケーションのために汎用コンピューティングを行うようにさらに構成され得る。
[0032] GPU 112は、いくつかの例では、CPU 106よりも効率的なベクトル動作の処理を提供する、高度な並列構成(highly-parallel structure)で構成され得る。例えば、GPU 112は、複数の頂点、制御ポイント、ピクセル、および/または並列の様式における他のデータで動作するように構成された複数の処理ユニットを含み得る。GPU 112の高度な並列の性質(highly parallel nature)は、ある例では、GPU 112が、CPU 106を使用して画像をレンダリングするよりもさらに早く、ディスプレイ118上にグラフィックス画像(例えばGUI、並びに二次元(2D)および/または三次元(3D)グラフィックスシーン)をレンダリングすることを可能にし得る。加えて、GPU 112の高度な並列の性質は、GPU 122が、CPU 116よりもさらに早い汎用コンピューティングアプリケーションに対して特定のタイプのベクトルおよび行列演算を処理することを可能にし得る。
[0033] GPU 112は、ある例では、コンピューティングデバイス102のマザーボードに統合され得る。他の例では、GPU 112は、コンピューティングデバイス102のマザーボード内のポートに設置されたグラフィックスカード上に存在するか、またはそうでなければ、コンピューティングデバイス102と相互運用するように構成された周辺デバイス内に組み込まれ得る。さらなる例では、GPU 112は、システムオンチップ(SoC)を形成するCPU 106と同じマイクロチップ上に位置付けられ得る。GPU 112は、1つ以上のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、あるいは他の同等な集積論理回路またはディスクリート論理回路のような、1つ以上のプロセッサを含み得る。
[0034] GPU 112は、GPUキャッシュ114に直接結合され得る。よって、GPU 112は、必ずしもバス120を使用せずに、GPUキャッシュ114からデータを読み取り、GPUキャッシュ114にデータを書き込み得る。言い換えると、GPU 112は、オフチップメモリの代わりに、ローカルストレージを使用して局所的にデータを処理し得る。これは、深刻なバストラフィックとなり得る、バス120を介するデータの読み取りおよび書き込みを行うために、GPU 112の必要性を低減することによってより効率的な手法でGPU 112が動作することを可能にし得る。しかしながら、ある例では、コンピューティングデバイス102がGPUキャッシュ114を含まない可能性があるが、代わりに、GPU 112がバス120を介してシステムメモリ110を使用し得る。GPUキャッシュ114は、例えば、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)などの、1つ以上の揮発性または不揮発性メモリあるいはストレージデバイスを含み得る。
[0035] CPU 106および/またはGPU 112は、レンダリングされた画像データを、システムメモリ110内に割り当てられたフレームバッファ内に記憶し得る。CPU 106上で実行するソフトウェアアプリケーションは、メモリ110において画像データ(例えば、テクセルの色、幅、高さ、および色深度(color depth))を記憶し得る。画像データは、画像ファイルからロードされるか、またはコードを使用して生成され得る。ディスプレイインターフェース116は、フレームバッファからデータを検索し、レンダリングされた画像データによって表わされる画像を表示するようにディスプレイ118を構成し得る。ある例では、ディスプレイインターフェース116は、フレームバッファから検索されたデジタル値をディスプレイ118で取り込み可能な(consumable)アナログ信号に変換するように構成されたデジタル−アナログ変換器(DAC)を含み得る。他の例では、ディスプレイインターフェース116は、デジタル値を、処理のためにディスプレイ118に直接渡し得る。
[0036] ディスプレイ118は、モニタ、テレビジョン、投射型デバイス、液晶ディスプレイ(LCD)、プラズマディスプレイパネル、発光ダイオード(LED)アレイ、ブラウン管(CRT)ディスプレイ、電子ペーパー、表面伝導型電子放出ディスプレイ(SED)、レーザテレビジョンディスプレイ、ナノ結晶ディスプレイ、または別のタイプのディスプレイユニットを含み得る。ディスプレイ118は、コンピューティングデバイス102に統合され得る。例えば、ディスプレイ118は、モバイル電話ハンドセットまたはタブレットコンピュータのスクリーンであり得る。代替的に、ディスプレイ118は、有線または無線通信リンクを介してコンピューティングデバイス102に結合された独立型デバイスであり得る。例えば、ディスプレイ118は、ケーブルまたはワイヤレスリンクを介してパーソナルコンピュータに結合されたコンピュータのモニタまたはフラットパネルディスプレイであり得る。
[0037] バス120は、第1、第2、および第3世代バスストラクチャとプロトコル、共有バスストラクチャとプロトコル、ポイント・ツー・ポイントバスストラクチャとプロトコル、一方向バスストラクチャとプロトコル、および双方向バスストラクチャとプロトコルを含む、バスストラクチャとバスプロトコルの任意の組み合わせを使用して実装され得る。バス120を実装するために使用され得る異なるバスストラクチャとプロトコルの例は、例えば、HyperTransportバス、InfiniBandバス、アドバンストグラフィックスポートバス、周辺構成要素相互接続(PCI:Peripheral Component Interconnect)バス、PCIエクスプレスバス、アドバンスト・マイクロコントローラ・バスアーキテクチャ(AMBA:Advanced Microcontroller Bus Architecture)アドバンスト高効率バス(AHB:Advanced High-performance Bus)、AMBAアドバンスト周辺機器バス(APB:Advanced Peripheral Bus)、およびAMBAアドバンストeXentisibleインターフェース(AXI:Advanced eXentisible Interface)バスなどを含む。他のタイプのバスストラクチャとプロトコルもまた使用され得る。
[0038] ある例では、本願で説明される技法は、例えば、CPU 106、GPU 112、およびシステムメモリ110などを含む、図1に図示されるコンピューティングデバイス102の任意のコンポーネント内で実装され得る。
[0039] 図2は、ある実施形態に従った、図1のコンピューティングデバイス102のCPU 106、GPU 112、およびメモリ110をさらに詳細に図示するブロック図である。図2で示されるように、CPU 106は、GPU 112およびメモリ110に通信可能に結合され、GPU 112は、CPU 106およびメモリ110に通信可能に結合される。
[0040] CPU 106は、ブラウザ224、グラフィックスAPI 226、GPUドライバ228、およびオペレーティングシステム230のようなソフトウェアアプリケーションを実行するように構成される。ブラウザ224は、表示されることをグラフィックス画像に行わせる1つ以上の命令、および/またはGPU 112上で実行されることを非グラフィックスタスク(例えば、汎用コンピューティングタスク)に行わせる1つ以上の命令を含み得る。ブラウザ224が命令を出しているように説明されているが、コンピューティングデバイス102内で実行可能であり且つグラフィックスデータを処理および/または表示する任意のソフトウェアアプリケーションが、命令を出すために使用され得ることが理解されるだろう。
[0041] ブラウザ224は、グラフィックスAPI 226に命令を出し、それは、ブラウザ224から受信した命令を、GPUドライバ228によって取り込み可能なフォ−マットへと変更し得る。メモリ110は、1つ以上のコマンド240を記憶し得る。コマンド240は、1つ以上のコマンドバッファ(例えば、リングバッファ)内に記憶され得、1つ以上の状態コマンドおよび/または1つ以上のドローコール(draw call)コマンドを含み得る。状態コマンドは、GPU 112に、例えばドローカラー(draw color)のようなGPU 112内の状態変数の1つ以上を変更するように命令し得る。ドローコールコマンドは、メモリ110内に記憶された1つ以上の頂点(例えば、頂点バッファで定義される)のグループによって定義されたジオメトリをレンダリングするように、またはディスプレイ118上のテクスチャのコンテンツを描くように、GPU 112に命令し得る。
[0042] GPUドライバ228は、ブラウザ224からグラフィックスAPI 226を介して命令を受信し、その命令をサービスするためにGPU 112の動作を制御する。例えば、GPUドライバ228は、1つ以上のコマンド240を公式化(formulate)し、コマンド240をメモリ110に置き、コマンド240を実行するようにGPU 112に命令し得る。ある例では、GPUドライバ228は、コマンド240をメモリ110に置き、例えば、1つ以上のシステムコールを介して、オペレーティングシステム230を介してGPU 112と通信し得る。
[0043] GPU 112は、コマンドエンジン(command engine)232および1つ以上の処理ユニット234を含む。コマンドエンジン232は、メモリ110内に記憶されたコマンド240を検索および実行するように構成される。状態コマンドを受信することに応答して、コマンドエンジン232は、GPU内の1つ以上の状態レジスタを状態コマンドに基づいて特定の値に設定し、および/または固定機能処理ユニット234のうちの1つ以上を状態コマンドに基づいて構成するように構成され得る。ドローコールコマンドを受信することに応答して、コマンドエンジン232は、メモリ110内に記憶されたプリミティブ型データに基づいて、処理ユニット234に、頂点によって表わされたジオメトリをレンダリングさせるように構成され得る。コマンドエンジン232はまた、コマンドを結合するシェーダプログラムを受信し得、コマンドを結合するシェーダプログラムに基づいて、特定のシェーダプログラムを、プログラマブル処理ユニット234のうちの1つ以上にロードし得る。
[0044] 処理ユニット234は、1つ以上の処理ユニットを含み得、その各々は、プログラマブル処理ユニットまたは固定機能処理ユニットであり得る。プログラマブル処理ユニットは、例えば、GPU 112上にCPU 106からダウンロードされた1つ以上のシェーダプログラムを実行するように構成されたプログラマブルシェーダユニット(programmable shader unit)を含み得る。ある例では、シェーダプログラムは、例えば、OpenGLシェーディング言語(GLSL:OpenGL Shading Language)、ハイレベルシェーディング言語(HLSL:High Level Shading Language)、グラフィックスのためのC言語(Cg:C for Graphics)シェーディング言語などのような、ハイレベルシェーディング言語(high-level shading language)で書かれたプログラムのコンパイルされたバージョンであり得る。
[0045] ある例では、プログラマブルシェーダユニットは、例えば、SIMDパイプラインなどの並列で動作するように構成された、複数の処理ユニットを含み得る。プログラマブルシェーダユニットは、例えば、実行されているプログラムメモリ内の現在の命令またはフェッチされるべき次の命令を示すプログラムカウンタレジスタなどの、シェーダプログラム命令および実行状態レジスタを記憶するプログラムメモリを有し得る。処理ユニット234内のプログラマブルシェーダユニットは、例えば、頂点シェーダユニット(vertex shader unit)、ピクセルシェーダユニット、ジオメトリシェーダユニット、ハルシェーダユニット(hull shader unit)、ドメインシェーダユニット、計算シェーダユニット(compute shader unit)、および/またはユニファイドシェーダユニット(unified shader unit)を含み得る。
[0046] 1つ以上の処理ユニット234は、3Dグラフィックスレンダリングパイプラインを形成し、それは、シェーダプログラムを実行するように構成される1つ以上のシェーダユニットを含み得る。ピクセルシェーダは、GPU 112上で実行されるプログラムである。図2では、処理ユニット234は、ディスプレイ118上に表示されるテクスチャオブジェクト(例えば、テクスチャ画像)によってカバーされたピクセルの色を、計算および設定するフラグメントシェーダまたはピクセルシェーダ237を含み得る。この処理はラスタライゼーションとも呼ばれ、スクリーン空間内の2D頂点―各々が、z値(奥行き値(depth-value))、および各頂点に関連付けられた様々なシェーディング情報を有する―からスクリーン上のピクセルへの変換である。ピクセルシェーダ237は、ピクセルシェーダ237Aとピクセルシェーダ237Bとを含み、ピクセルフラグメントごとに実行され、補間された頂点特性(interpolated vertex attributes)を、色を計算するための入力として使用する。ピクセルシェーダ237Aおよびピクセルシェーダ237Bは、ピクセルシェーダ237内にあるように示されるが、それらがパイプライン内の別個のコンポーネントであり得ることが理解されるだろう。ピクセルシェーダは、一定の色に戻るようなシンプルなものであり得る。ディスプレイ118上で描かれる各ピクセルフラグメントは、ピクセルシェーダ237によって動作される。「フラグメント(fragment)」および「ピクセル(pixel)」という用語は、本開示において置き換えて使用され得る。
[0047] ディスプレイ118は、タイルテクスチャマップ242のコンテンツを表示し得る。一例では、テクスチャ画像は、ピクセルのタイルテクスチャマップ242から適切な色をルックアップする(look up)ために使用されるテクスチャ座標(u、v)を有し得る。GPU 112内のピクセルシェーダ237は、ディスプレイ118上に表示されるオブジェクト上のテクスチャをレンダリングし、結合テクスチャマップ(bound texture map)内でピクセルの色をルックアップするためにテクスチャ座標を使用し得る。一例では、ピクセルシェーダ237は、現在のテクスチャ座標についてのテクスチャルックアップを行うことによって、ピクセルごとのシェーディング計算を行う。従って、各ピクセルについての色をルックアップするために、ピクセルシェーダ237は、メモリ110に記憶されたタイルテクスチャマップ242にアクセスし得、それは、高メモリ帯域幅をテクスチャメモリに要求することができる。
[0048] 本開示は、レンダリング可能なコンテンツのソリッドカラー領域についてルックアップマップを使用する、テクスチャシェーディングのためのメモリ帯域幅を低減するための技法を提供する。図3は、ある実施形態に従った、複数の部分に分割されたレンダリング可能なコンテンツを図示するブロック図である。ブラウザ224は、ウェブページ(webpage)300のレンダリング可能なコンテンツを1つ以上のレイヤ(layer)に分割し得る。ウェブページはレンダリング可能なコンテンツとして説明されるが、これは限定することを意図するものではなく、レンダリング可能な/レンダリングされたコンテンツは、(インターネットのようなネットワークに関連付けられた、または関連付けられていない)ページ上の任意のテキスト、画像、またはグラフィックスであり得る。
[0049] 図3では、ウェブページ300は、レイヤ302と304とに分割される。ウェブページ300は、ウェブページをレイヤに分割するかどうか、およびレイヤがいくつあるかを、ブラウザ224に示す要素または特性を有し得る。一例では、ウェブページ300は、レイヤ302に対応する透過部分(transparent portion)と、レイヤ304に対応する動画部分(animated portion)(例えば、ディスプレイ118のある側から別の側へと動くオブジェクト)とを含む。この例では、ウェブページ300の動画部分は、ウェブページ300の透過部分とは異なるレイヤでレンダリングされる。ウェブページ300は、オーバーラップし得るまたはオーバーラップする可能性がない複数のレイヤを含み得る。
[0050] レイヤの1つ以上について、ブラウザ224は、それぞれのレイヤを複数のタイルに分割し得る。例えば、ブラウザ224は、レイヤ302を、タイル306Aを含む複数のタイル306に分割し得る。レイヤ302は、5つの列と4つの行の計20個のタイルの、タイル306に分割される。ブラウザ224は、タイルの各々を、複数のパーティション308に分割し得る。複数のパーティションは、(例えば、垂直なレイアウト方向を有する、特定の言語についての)水平なパーティション(horizontal partition)または垂直なパーティション(vertical partition)であり得、パーティションの各々は、互いに対して不均一または均一サイズのものであり得る。各パーティションの高さまたは幅は、微調整され得る。
[0051] ブラウザ224は、タイル306Aを複数のパーティション308に分割し得、それは、パーティション308A〜308Pの16個のパーティションを含む。複数のパーティション308のうちのいくつかのパーティションはソリッドカラーであり、いくつかはソリッドカラーではない。ブラウザ224は、タイル内のどのパーティションがソリッドカラーであるかを示すソリッドテクスチャマップを生成する。一例では、ブラウザ224は、ソリッドテクスチャマップを生成するために各ピクセルをスキャンし、どのシェーダを適宜使用するか(例えば、ピクセルシェーダ237Aか、またはピクセルシェーダ237Bか)を、閾値(threshold)に基づいて決定する。ピクセルシェーダ237Aは、ピクセルをディスプレイ118上にレンダリングするためにソリッドテクスチャマップを使用する「変更された(modified)」ピクセルシェーダであり、ピクセルシェーダ237Bは、ピクセルをディスプレイ118上にレンダリングするためにタイルテクスチャマップを使用する「未変更の(unmodified)」ピクセルシェーダであり得る。効率化のため、各ピクセルを1回だけスキャンするために、ソリッドテクスチャマップを生成し、どのシェーダを使用するかを決定するように、ブラウザ224が各ピクセルを同時にスキャンすることが望ましいだろう。ソリッドテクスチャマップを生成するために、第1の時間インターバル(time interval)中にブラウザ224が各ピクセルをスキャンし、第2の時間インターバル中にどのシェーダを適宜使用するかを閾値(threshold)に基づいて決定する場合、ブラウザ224は、第1の時間インターバルの少なくとも一部分が、第2の時間インターバルの少なくとも一部分とオーバーラップする場合にこれら2つの動作を同時に行うと考えられ得る。加えて、ブラウザ224が、タイルが閾値に到達することができないと確信するとき、未変更のシェーダ(unmodified shader)がこの情報を使用する必要があり得るので、ブラウザ224はソリッドテクスチャマップを廃棄し得る。ブラウザ224は、ソリッドテクスチャマップへのアクセスをGPU 112に提供し得る。ブラウザ224は、テクスチャバッファに、GPU 112によってアクセス可能なソリッドテクスチャマップを記憶し得る。
[0052] ある実施形態では、条件が満たされる場合、ブラウザ224は、ソリッドテクスチャマップへのアクセスをGPU 112に提供し、GPU 112は、ソリッドテクスチャマップ使用して、最適化されたテクスチャルックアップ動作を行い得る。対照的に、条件が満たされない場合、ブラウザ224は、ソリッドテクスチャマップへのアクセスをGPU 112に提供せず、GPU 112は、通常のテクスチャルックアップ動作を行い得る(例えば、ピクセルについてのテクスチャをルックアップするために、タイルテクスチャマップ242を使用する)。一例では、それぞれのタイルが、ソリッドカラーであるパーティションの閾値パーセンテージ(threshold percentage)を有する場合、条件が満たされる。別の例では、それぞれのタイルが、ソリッドカラーであるパーティションの閾値数を有する場合、条件が満たされる。
[0053] 図4は、ある実施形態に従った、テクスチャマップをGPU 112に提供するための処理フロー図400である。ブラウザ224は、タイルテクスチャマップ242よりもむしろ、ソリッドテクスチャマップ402を使用することによって、テクスチャルックアップのコストを最適化し得る。通常、タイルテクスチャマップ242よりもさらに小さいため、ソリッドテクスチャマップ402を使用するテクスチャをルックアップすることが望ましいだろう。従って、ソリッドテクスチャマップ402を計算、記憶、転送する余分なコストが制限され、結果として、タイルテクスチャマップ242を使用するのと比較すると、アクセスされ移動されるメモリがより少なくなる。
[0054] ブラウザ224は、タイル生成器410およびソリッドテクスチャマップ生成器412を含む。ある実施形態では、タイル生成器410は、レンダリングされるべきコンテンツに基づいてソリッドテクスチャマップ402を生成し、ソリッドテクスチャマップ402を、GPU 112による検索のためにテクスチャメモリに記憶する。一例では、ブラウザ224は、ソリッドテクスチャマップ402をCPU 106によってアクセス可能なメモリに記憶し、次に、ソリッドテクスチャマップ402をGPU 112によってアクセス可能なメモリに送る。別の例では、ブラウザ224は、ソリッドテクスチャマップ402をCPU 106によってアクセス可能なメモリに記憶し、次に、ソリッドテクスチャマップ402もまたGPU 112にアクセス可能にさせる。
[0055] テクスチャメモリは、メモリ110から割り当てられ得る。タイル生成器410は、複数のパーティション308のうちの1つ以上のパーティションの組が、ソリッドカラーであるどうかを決定する。各タイルについて、ソリッドテクスチャマップ生成器412は、タイル内の1つ以上のパーティションがソリッドカラーであるかどうかを示すソリッドテクスチャマップを生成し得る。図3では、パーティション308E〜308H、および308Mは、ソリッドカラー(例えば、白色(white))であり、複数のパーティション308の残りのパーティション(例えば、308A〜308D、308I〜308L、および308N〜308P)は、ソリッドカラーではない。
[0056] ソリッドテクスチャマップ402は、タイル内のパーティションごとに1つのエントリ(entry)を含む小さいテクスチャマップであり得る。例えば、タイル306Aについて、ソリッドテクスチャマップ生成器412は、16個の値を含むソリッドテクスチャマップを生成し、ここで、各値は、複数のパーティション308のうちの特定のパーティションがソリッドカラーであるかどうかを示す。第1の値はパーティション308Aに対応し得、その他のパーティションが順番に間に並んでいる状態で、残りの値はパーティション308Pに対応し得る。一例では、ソリッドテクスチャマップ402は、「FFFFTTTTFFFFTFFF」を含み、ここで、「F」はソリッドカラーでないパーティションを示し、「T」はソリッドカラーであるパーティションを示す。パーティションがソリッドカラーであることを異なる値が示し得ることが理解されるだろう。他の例では、「F」の値または「0」の値は、パーティションがソリッドカラーであり得ることを示し得る。ブラウザ224は、ソリッドテクスチャマップ402へのアクセスをGPU 112に提供する。ブラウザ224は、GPU 112で検索するために、メモリ110内にソリッドテクスチャマップ402を記憶し得る。
[0057] 加えて、ソリッドカラーである各パーティションについて、ソリッドテクスチャマップ402はまた、それぞれのパーティションの色を示し得る。このような例では、パーティションがソリッドカラーではない場合、「色(color)」値は空欄のままであり得る。パーティションがソリッドカラーであるかどうかを示すソリッドテクスチャマップおよびそのソリッドカラーは、(適用可能な場合)タイル内のパーティションが異なるソリッドカラーであるときに有利であり得る。
[0058] 別の例では、タイル生成器410は、タイル306Aが主要な色(major color)を有するかどうかを決定する。主要な色は、タイル内の主要なソリッドカラー(major solid color)である。タイル生成器410は、各パーティションをスキャンし、ソリッドカラーであるパーティションについて、タイルの主要な色を決定し得る。いくつかの実施形態では、ソリッドテクスチャマップ生成器412は、ソリッドテクスチャマップ402を生成し、ここで、ソリッドテクスチャマップ402は、主要な色を含む。主要な色は、ユニフォーム(uniform)としてピクセルシェーダ237に渡され得る。
[0059] ソリッドテクスチャマップ生成器412は、ソリッドカラーパーティションを追跡するソリッドテクスチャマップ402内のマーキングを提供し得る。例えば、パーティションが主要な色と同じソリッドカラーである場合、ソリッドテクスチャマップ生成器412は、パーティションがソリッドカラーであることを、ソリッドテクスチャマップ内で示し得る。例えば、図3では、タイル306Aの主要な色は白色であり、ソリッドテクスチャマップ402は「FFFFTTTTFFFFTFFF」および「白色(white)」を含み得る。加えて、パーティションが主要な色ではない場合、ソリッドテクスチャマップ生成器412は、パーティションをソリッドカラーではないものとして示し得る。
[0060] ブラウザ224が主要な色を含むソリッドテクスチャマップをピクセルシェーダ237に送る場合、ピクセルシェーダ237Aは、ソリッドテクスチャマップ402を最初に確認することによって、各ピクセルについての色を計算し得、それは、ソリッドカラーパーティションを追跡し、次に、ピクセルが主要な色を使用するべきであるかどうかを決定する。ピクセルが主要な色を使用しない場合、次に、ピクセルシェーダ237Bは、通常のテクスチャルックアップ動作を行い得る(例えば、ピクセルについてのテクスチャをルックアップするために、タイルテクスチャマップ242を使用する)。
[0061] ある実施形態では、パーティションがソリッドカラーではない場合、ソリッドテクスチャマップ生成器412は、ソリッドテクスチャマップ402内でそのことを示す。加えて、パーティションが主要な色とは異なるソリッドカラーである場合、ソリッドテクスチャマップ生成器412は、パーティションをソリッドカラーではないものとして示し得る。
[0062] 図5は、ある実施形態に従った、少なくとも2つのソリッドカラーパーティションが異なる色である、複数のパーティションに分割されたタイルの例である。図5では、パーティション308E〜308H、および308Mが白一色(solid white color)であり、パーティション308Nが黒一色(solid black color)である。ソリッドテクスチャマップ402は、「FFFFTTTTFFFFTFFF」および「白色(white)」を含み得、ここで、ソリッドテクスチャマップ402は、パーティション308Nが、黒一色であるがソリッドカラーではないことを示す。従って、ピクセルシェーダ237Aがこのソリッドテクスチャマップを読み取るとき、ピクセルシェーダ237Aは、パーティション308E〜308H、および308Mについて「白」色を使用し、ピクセルシェーダ237Bは、他のパーティションについてのテクスチャのルックアップを、タイルテクスチャマップ242を使用して行い得る。この例では、ピクセルシェーダ237Bは、パーティション308Nに対応するピクセルについて、黒一色を検索するためにタイルテクスチャマップ242を使用する。加えて、ピクセルシェーダ237Aは、パーティション308A〜308D、308I〜308L、および308N〜308Pについてのテクスチャをルックアップするために、ソリッドテクスチャマップ402を使用する。
[0063] 主要な色を含むソリッドテクスチャマップが帯域幅および電力消費の低減を提供し得る。具体的には、主要な色である各パーティションについてのソリッドテクスチャマップ内の主要な色を含む以外に、主要な色は一回含まれるのみである。この例では、「T」値に対応する全てのパーティションが主要な色である。加えて、多くのソリッドカラーパーティションを用いるタイルについて、フレームレートパフォーマンスが改善され得る。しかしながら、わずかなソリッドパーティション(solid partitions)を有するまたはソリッドパーティションを有していないタイルにおいて、ピクセルシェーダ237内の所定以上の仕事を行うオーバーヘッドは、パフォーマンスを落とし、より多くの電力を消費し得る。これらのタイルにおいて、通常のテクスチャルックアップはうまく機能する傾向があり得る。従って、各テクスチャのソリッドカラーパーティションの閾値パーセンテージまたは閾値数に基づいて、ピクセルシェーダ237Aまたはピクセルシェーダ237Bの適切な選択が有効であり得る。一例では、閾値に到達する場合、ピクセルシェーダ237Aはソリッドテクスチャマップ402を使用し、ピクセルシェーダ237Bはタイルテクスチャマップ242を使用する。この例では、ピクセルシェーダ237は、ディスプレイ118上でピクセルにレンダリングするためにソリッドテクスチャマップ402を使用する、「変更された」ピクセルシェーダ(例えば、ピクセルシェーダ237A)を含み得る。加えて、閾値に到達しない場合、ピクセルシェーダ237は、ディスプレイ118上のピクセルにレンダリングするためにタイルテクスチャマップ242を使用する、「未変更の」ピクセルシェーダ(例えば、ピクセルシェーダ237B)を使用し得る。
[0064] ピクセルシェーダ237は、タイルテクスチャマップ242またはソリッドテクスチャマップ402を使用して、テクスチャをルックアップし得る。ある実施形態では、ピクセルシェーダ237は、ディスプレイ118上でレンダリングされるべき特定のピクセルが、ソリッドカラーを用いてパーティションにマッピングを行うかどうかを決定する。特定のピクセルが、ソリッドカラーであるパーティションにマッピングを行うと決定することに応答して、ピクセルシェーダ237Aが適宜選択され得、テクスチャをルックアップするためにソリッドテクスチャマップ402を使用し得る。特定のピクセルが、ソリッドカラーではないパーティションにマッピングを行うと決定することに応答して、ピクセルシェーダ237Bが適宜選択され得、テクスチャをルックアップするために、メモリ110内に記憶されたタイルテクスチャマップ242を使用し得る。
[0065] ある実施形態では、ピクセルシェーダ237Aは、タイルに対応するソリッドテクスチャマップ402へのアクセスを提供され得、タイルが、ソリッドカラーであるパーティションの閾値パーセンテージを有するかどうかを決定する。それぞれのタイルが、ソリッドカラーであるパーティションの閾値パーセンテージを有すると決定することに応答して、ピクセルシェーダ237Aは、ソリッドテクスチャマップ402を使用して、テクスチャルックアップを行い得る。一例では、ピクセルシェーダ237Aは、タイルの非ソリッドパーティション(non-solid partitions)についてのxy座標に基づいて、ピクセルごとの色を検索する。ソリッドパーティションについて、それが色情報を有しているため、ソリッドテクスチャマップ402を使用して、ピクセルシェーダ237Aはルックアップ(lookup)のみを行い得る。加えて、ピクセルシェーダ237Bは、残りのタイルについてのxy座標に基づいて、ピクセルごとの色を検索し得る。
[0066] 対照的に、それぞれのタイルが、ソリッドカラーであるパーティションの閾値パーセンテージを有さないと決定することに応答して、ピクセルシェーダ237Bは、タイルテクスチャマップ242を使用して、テクスチャルックアップを行い得る。一例では、ピクセルシェーダ237Bは、テクスチャメモリ内に記憶されたタイルテクスチャマップ242のみを使用して、全てのパーティションについてテクスチャルックアップを行う。
[0067] ピクセルシェーダ237は、2D画像を記憶する出力438を提供する。一例では、出力438は、メモリ110から割り当てられたフレームバッファであり得る。フラグメントは、破棄されるかまたはフレームバッファに渡されることができ、最後の画像はドローイングバッファ(drawing buffer)に渡され、そして、ユーザに示されるか、または例えばテクスチャデータとして保存するために、代替的に後の利用のためのオフスクリーンバッファ(off-screen buffer)に保存される。
[0068] 上述されるように、およびここでさらに強調されるように、図1−5は単なる例であり、これらは特許請求の範囲を必要以上に限定するものではない。例えば、この開示で説明される技法は、例えば、グラフィックスAPI 226、GPUドライバ228、コマンドエンジン232、および処理ユニット234を含む、図2で示される任意のコンポーネント内で実装され得る。例えば、テクスチャマッピングまたはテクスチャをレンダリングするための技法は、コマンドエンジン(command engine)232内、および/または処理ユニット234によって実装されるグラフィックスパイプライン(graphics pipeline)内で実装され得る。
[0069] 図6は、ある実施形態に従った、テクスチャマップをGPUに提供するための方法600を図示する簡略化されたフローチャートである。方法600は、限定されることが意味されるものではなく、他のアプリケーションで使用され得る。
[0070] 方法600は、ブロック610〜640を含む。ブロック610では、レンダリング可能なコンテンツのタイルが複数のパーティションに分割される。一例では、タイル生成器410は、レンダリング可能なコンテンツのタイル306Aを、複数のパーティション308に分割する。ブロック620では、複数のパーティションのうちの一組のパーティションがソリッドカラーであると決定される。一例では、タイル生成器410は、複数のパーティション308のうちのパーティション308E〜308H、および308Mがソリッドカラーであることを決定する。ブロック630では、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップが生成される。一例では、ソリッドテクスチャマップ生成器412は、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップ402を生成する。ブロック640では、ソリッドテクスチャマップへのアクセスがGPUに提供される。一例では、ソリッドテクスチャマップ生成器412は、ソリッドテクスチャマップ402へのアクセスをGPU 112に提供する。
[0071] ある実施形態では、ブロック610〜640は、レンダリング可能なコンテンツの任意の数のレイヤまたはタイルの任意の数の発生に対して行われ得る。また、上述されるようなブロック610〜640の前、間、または後に、追加の処理が行われ得ることも理解される。また、本明細書で説明される方法600の1つ以上のブロックが、説明されるものと異なるシーケンスにおいて省略され、組み合わせられ、または実行され得ることが理解される。
[0072] 当業者はさらに、本明細書で開示される実施形態と関連して説明される様々な実例となる論理ブロック、構成、モジュール、回路、およびステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実装されることを理解するだろう。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、一般にそれらの機能の観点から上述されている。このような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、システム全体に課される特定のアプリケーションおよび設計制約に依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、このような実装の決定は、本開示の範囲からの逸脱を引き起こしていると解釈されるべきではない。
[0073] 本明細書に開示された実施形態に関連して説明される方法のブロックまたは動作は、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこれら2つの組み合わせにおいて、具現化され得る。ソフトウェアモジュール(例えば、ブラウザ224、タイル生成器410、またはソリッドテクスチャマップ生成器412)は、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読み取り専用メモリ(CD−ROM)、または当技術分野において周知の記憶媒体のあらゆる他の形態内に存在し得る。ソフトウェアモジュールは、1つ以上のプロセッサ上で実行され得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替では、記憶媒体は、プロセッサと一体化され得る。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)中に存在し得る。ASICは、計算デバイスまたはユーザ端末内に存在し得る。代替では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内のディスクリートコンポーネントとして存在し得る。
[0074] 開示された実施形態の先の説明は、当業者が開示された実施形態を製造または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は、当業者にとって容易に明らかであり、本明細書に定義された原理は、本開示の範囲から逸脱することなく他の実施形態に適用され得る。従って、本開示は、本明細書に示される実施形態に限定されることが意図されるものではなく、下記の請求項によって定義されるような原理および新規な特徴と一致する最も広い範囲が与えられるべきものである。よって、本開示は、請求項によってのみ限定される。
[0074] 開示された実施形態の先の説明は、当業者が開示された実施形態を製造または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は、当業者にとって容易に明らかであり、本明細書に定義された原理は、本開示の範囲から逸脱することなく他の実施形態に適用され得る。従って、本開示は、本明細書に示される実施形態に限定されることが意図されるものではなく、下記の請求項によって定義されるような原理および新規な特徴と一致する最も広い範囲が与えられるべきものである。よって、本開示は、請求項によってのみ限定される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ソリッドテクスチャマップをグラフィックス処理ユニット(GPU)に提供する方法であって、
レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをGPUに提供することと
を備える、方法。
[C2]
ウェブページを1つ以上のレイヤに分割すること
をさらに備える、C1に記載の方法。
[C3]
前記1つ以上のレイヤのうちの1つのレイヤを複数のタイルに分割することと
をさらに備える、C2に記載の方法。
[C4]
前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、C1に記載の方法。
[C5]
前記分割することは、前記タイルを複数の垂直なパーティションに分割することを含む、C1に記載の方法。
[C6]
前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
をさらに備える、C1に記載の方法。
[C7]
前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
をさらに備える、C1に記載の方法。
[C8]
ソリッドテクスチャマップをグラフィックス処理ユニット(GPU)に提供するためのシステムであって、
コンピューティングデバイス上で実行するタイル生成器と、ここにおいて、前記タイル生成器は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割し、前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定する、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成し、前記ソリッドテクスチャマップへのアクセスをGPUに提供するソリッドテクスチャマップ生成器と
を備える、システム。
[C9]
前記タイル生成器は、ウェブページを1つ以上のレイヤに分割する、C8に記載のシステム。
[C10]
前記タイル生成器は、前記1つ以上のレイヤのうちの1つのレイヤを複数のタイルに分割する、C9に記載のシステム。
[C11]
前記タイル生成器は、前記タイルを複数の水平なパーティションに分割する、C8に記載のシステム。
[C12]
前記タイル生成器は、前記タイルを複数の垂直なパーティションに分割する、C8に記載のシステム。
[C13]
前記タイル生成器は、前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定し、前記ソリッドテクスチャマップは、前記色を含む、C8に記載のシステム。
[C14]
前記タイル生成器は、前記タイルの主要なソリッドカラーを決定し、前記ソリッドテクスチャマップは、前記主要な色を含む、C8に記載のシステム。
[C15]
動作を行うためのコンピュータ実行可能な命令を記憶するコンピュータ可読媒体であって、
レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをGPUに提供することと
を備える、コンピュータ可読媒体。
[C16]
前記動作は、
ウェブページを1つ以上のレイヤに分割すること
をさらに備える、C15に記載のコンピュータ可読媒体。
[C17]
前記動作は、
前記1つ以上のレイヤのうちの1つのレイヤを複数のタイルに分割すること
をさらに備える、C16に記載のコンピュータ可読媒体。
[C18]
前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、C15に記載のコンピュータ可読媒体。
[C19]
前記動作は、
前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
をさらに備える、C15に記載のコンピュータ可読媒体。
[C20]
前記動作は、
前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
をさらに備える、C15に記載のコンピュータ可読媒体。

Claims (20)

  1. ソリッドテクスチャマップをグラフィックス処理ユニット(GPU)に提供する方法であって、
    レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
    前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
    前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
    前記ソリッドテクスチャマップへのアクセスをGPUに提供することと
    を備える、方法。
  2. ウェブページを1つ以上のレイヤに分割すること
    をさらに備える、請求項1に記載の方法。
  3. 前記1つ以上のレイヤのうちの1つのレイヤを複数のタイルに分割することと
    をさらに備える、請求項2に記載の方法。
  4. 前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、請求項1に記載の方法。
  5. 前記分割することは、前記タイルを複数の垂直なパーティションに分割することを含む、請求項1に記載の方法。
  6. 前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
    をさらに備える、請求項1に記載の方法。
  7. 前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
    をさらに備える、請求項1に記載の方法。
  8. ソリッドテクスチャマップをグラフィックス処理ユニット(GPU)に提供するためのシステムであって、
    コンピューティングデバイス上で実行するタイル生成器と、ここにおいて、前記タイル生成器は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割し、前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定する、
    前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成し、前記ソリッドテクスチャマップへのアクセスをGPUに提供するソリッドテクスチャマップ生成器と
    を備える、システム。
  9. 前記タイル生成器は、ウェブページを1つ以上のレイヤに分割する、請求項8に記載のシステム。
  10. 前記タイル生成器は、前記1つ以上のレイヤのうちの1つのレイヤを複数のタイルに分割する、請求項9に記載のシステム。
  11. 前記タイル生成器は、前記タイルを複数の水平なパーティションに分割する、請求項8に記載のシステム。
  12. 前記タイル生成器は、前記タイルを複数の垂直なパーティションに分割する、請求項8に記載のシステム。
  13. 前記タイル生成器は、前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定し、前記ソリッドテクスチャマップは、前記色を含む、請求項8に記載のシステム。
  14. 前記タイル生成器は、前記タイルの主要なソリッドカラーを決定し、前記ソリッドテクスチャマップは、前記主要な色を含む、請求項8に記載のシステム。
  15. 複数の動作を行うためのコンピュータ実行可能な命令を記憶するコンピュータ可読媒体であって、
    レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
    前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
    前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
    前記ソリッドテクスチャマップへのアクセスをGPUに提供することと
    を備える、コンピュータ可読媒体。
  16. 前記動作は、
    ウェブページを1つ以上のレイヤに分割すること
    をさらに備える、請求項15に記載のコンピュータ可読媒体。
  17. 前記動作は、
    前記1つ以上のレイヤのうちの1つのレイヤを複数のタイルに分割すること
    をさらに備える、請求項16に記載のコンピュータ可読媒体。
  18. 前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、請求項15に記載のコンピュータ可読媒体。
  19. 前記動作は、
    前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
    をさらに備える、請求項15に記載のコンピュータ可読媒体。
  20. 前記動作は、
    前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
    をさらに備える、請求項15に記載のコンピュータ可読媒体。
JP2017508014A 2014-08-15 2015-07-13 適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減 Expired - Fee Related JP6185211B1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462037785P 2014-08-15 2014-08-15
US62/037,785 2014-08-15
US14/628,935 2015-02-23
US14/628,935 US9569862B2 (en) 2014-08-15 2015-02-23 Bandwidth reduction using texture lookup by adaptive shading
PCT/US2015/040171 WO2016025113A1 (en) 2014-08-15 2015-07-13 Bandwidth reduction using texture lookup by adaptive shading

Publications (2)

Publication Number Publication Date
JP6185211B1 JP6185211B1 (ja) 2017-08-23
JP2017527898A true JP2017527898A (ja) 2017-09-21

Family

ID=55302547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017508014A Expired - Fee Related JP6185211B1 (ja) 2014-08-15 2015-07-13 適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減

Country Status (5)

Country Link
US (1) US9569862B2 (ja)
EP (1) EP3180773B1 (ja)
JP (1) JP6185211B1 (ja)
CN (1) CN106575442B (ja)
WO (1) WO2016025113A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842428B2 (en) * 2014-06-27 2017-12-12 Samsung Electronics Co., Ltd. Dynamically optimized deferred rendering pipeline
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
JP6540949B2 (ja) * 2015-04-28 2019-07-10 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法および表示装置
KR20180037838A (ko) 2016-10-05 2018-04-13 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치
US10163422B1 (en) * 2017-02-22 2018-12-25 Avatron LLC Accelerated secondary display system
GB2564466B (en) 2017-07-13 2020-01-08 Advanced Risc Mach Ltd Storing YUV texture data in a cache in a graphics processing system
CN107463398B (zh) 2017-07-21 2018-08-17 腾讯科技(深圳)有限公司 游戏渲染方法、装置、存储设备及终端
US10726519B2 (en) * 2017-09-25 2020-07-28 Arm Limited Cache arrangement for graphics processing systems
CN109785417B (zh) * 2018-11-29 2023-06-09 武汉凌久微电子有限公司 一种实现OpenGL累积操作的方法及装置
CN111161378B (zh) * 2019-12-27 2023-10-17 北京金山安全软件有限公司 一种填色方法、装置及电子设备
US11625332B2 (en) 2020-01-14 2023-04-11 Arm Limited Cache miss handling for read operations in data processing systems
US11205243B2 (en) 2020-01-14 2021-12-21 Arm Limited Data processing systems
US11789867B2 (en) 2020-01-14 2023-10-17 Arm Limited Cache arrangement for data processing systems
CN111859685B (zh) * 2020-07-27 2024-02-23 中国人民解放军海军航空大学 一种船体红外视景的快速生成方法
CN112652046B (zh) * 2020-12-18 2024-03-22 完美世界(重庆)互动科技有限公司 游戏画面的生成方法、装置、设备及存储介质
US11605364B2 (en) * 2021-05-19 2023-03-14 Cypress Semiconductor Corporation Line-based rendering for graphics rendering systems, methods, and devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228782A1 (en) * 2008-03-04 2009-09-10 Simon Fraser Acceleration of rendering of web-based content
US20120001925A1 (en) * 2010-06-30 2012-01-05 Ati Technologies, Ulc Dynamic Feedback Load Balancing
US20140176578A1 (en) * 2012-12-20 2014-06-26 Nvidia Corporation Input output connector for accessing graphics fixed function units in a software-defined pipeline and a method of operating a pipeline

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6788304B1 (en) 1998-06-11 2004-09-07 Evans & Sutherland Computer Corporation Method and system for antialiased procedural solid texturing
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
WO2000052595A2 (en) 1999-03-04 2000-09-08 Mannacom Technologies Inc. Method and system for transmitting texture information through communications networks
US6636225B2 (en) 2000-11-20 2003-10-21 Hewlett-Packard Development Company, L.P. Managing texture mapping data in a computer graphics system
US6778181B1 (en) 2000-12-07 2004-08-17 Nvidia Corporation Graphics processing system having a virtual texturing array
US6894695B2 (en) * 2001-04-27 2005-05-17 National Semiconductor Corporation Apparatus and method for acceleration of 2D vector graphics using 3D graphics hardware
US7069387B2 (en) 2003-03-31 2006-06-27 Sun Microsystems, Inc. Optimized cache structure for multi-texturing
US7652674B2 (en) * 2006-02-09 2010-01-26 Real D On the fly hardware based interdigitation
US7570271B1 (en) * 2006-02-10 2009-08-04 Adobe Systems Incorporated High speed display of high resolution image
US8035650B2 (en) * 2006-07-25 2011-10-11 Qualcomm Incorporated Tiled cache for multiple software programs
US8232991B1 (en) * 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
US9665951B2 (en) * 2007-12-20 2017-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Unified compression/decompression graphics architecture
US8605104B1 (en) 2009-12-31 2013-12-10 Nvidia Corporation Threshold-based lossy reduction color compression
US8587602B2 (en) 2010-08-16 2013-11-19 Microsoft Corporation GPU texture tile detail control
US9196086B2 (en) 2011-04-26 2015-11-24 Here Global B.V. Method, system, and computer-readable data storage device for creating and displaying three-dimensional features on an electronic map display
US9087409B2 (en) * 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US9349210B2 (en) 2012-11-30 2016-05-24 Arm Limited Methods of and apparatus for using textures in graphics processing systems
CN103021023A (zh) * 2012-12-05 2013-04-03 上海创图网络科技发展有限公司 一种基于浏览器的三维场景构建方法
WO2014151796A1 (en) * 2013-03-15 2014-09-25 Robert Bosch Gmbh System and method for display of a repeating texture stored in a texture atlas

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228782A1 (en) * 2008-03-04 2009-09-10 Simon Fraser Acceleration of rendering of web-based content
US20120001925A1 (en) * 2010-06-30 2012-01-05 Ati Technologies, Ulc Dynamic Feedback Load Balancing
US20140176578A1 (en) * 2012-12-20 2014-06-26 Nvidia Corporation Input output connector for accessing graphics fixed function units in a software-defined pipeline and a method of operating a pipeline

Also Published As

Publication number Publication date
JP6185211B1 (ja) 2017-08-23
EP3180773A4 (en) 2018-04-04
WO2016025113A1 (en) 2016-02-18
EP3180773A1 (en) 2017-06-21
US9569862B2 (en) 2017-02-14
CN106575442B (zh) 2018-05-04
EP3180773B1 (en) 2020-01-29
CN106575442A (zh) 2017-04-19
US20160048980A1 (en) 2016-02-18

Similar Documents

Publication Publication Date Title
JP6185211B1 (ja) 適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減
US10885607B2 (en) Storage for foveated rendering
KR102475212B1 (ko) 타일식 아키텍처들에서의 포비티드 렌더링
US9483861B2 (en) Tile-based rendering
CN107003964B (zh) 处理未对准块传送操作
JP6073533B1 (ja) タイルベースのアーキテクチャ上での最適化されたマルチパスレンダリング
JP6133490B2 (ja) タイルベースのレンダリングのためのイントラフレームタイムスタンプ
US10078883B2 (en) Writing graphics data from local memory to system memory
JP6884766B2 (ja) 帯域幅圧縮グラフィックスデータの記憶
JP2008097583A (ja) グラフィックスパイプラインにおけるタイルベース精度のラスタライズ
CN109564694B (zh) 用于基于入库的图形处理的顶点着色器
US9280956B2 (en) Graphics memory load mask for graphics processing
JP2018512644A (ja) 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法
JP2016520909A (ja) タイルベースレンダラに関するクエリ処理
US10262391B2 (en) Graphics processing devices and graphics processing methods

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170421

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170421

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170421

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170726

R150 Certificate of patent or registration of utility model

Ref document number: 6185211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees