(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-08
(45)【発行日】2024-02-19
(54)【発明の名称】可変レートリフレッシュディスプレイのためのフレーム再生
(51)【国際特許分類】
H04N 5/04 20060101AFI20240209BHJP
G09G 5/00 20060101ALI20240209BHJP
G06F 3/14 20060101ALI20240209BHJP
【FI】
H04N5/04 Z
G09G5/00 555D
G09G5/00 555G
G09G5/00 550P
G09G5/00 520V
G06F3/14 400
(21)【出願番号】P 2021571832
(86)(22)【出願日】2020-06-08
(86)【国際出願番号】 IB2020055384
(87)【国際公開番号】W WO2020250117
(87)【国際公開日】2020-12-17
【審査請求日】2023-06-02
(32)【優先日】2019-06-10
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】アンソニー ダブリューエル. クー
(72)【発明者】
【氏名】サイド アザー フセイン
【審査官】鈴木 肇
(56)【参考文献】
【文献】特開2007-164071(JP,A)
【文献】米国特許出願公開第2014/0002739(US,A1)
【文献】米国特許出願公開第2015/0348509(US,A1)
【文献】米国特許第09524008(US,B1)
【文献】米国特許出願公開第2017/0249920(US,A1)
【文献】米国特許出願公開第2012/0147020(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/04-5/12
G09G 5/00-5/42
G06F 3/14-3/153
(57)【特許請求の範囲】
【請求項1】
グラフィックス処理ユニット(GPU)において、ディスプレイ装置の第1のリフレッシュサイクル中に、第1のフレームと、前記第1のフレームに関連付けられた情報と、を前記ディスプレイ装置に送信することであって、前記情報は、前記ディスプレイ装置が前記第1のフレームを表示する間のディスプレイリフレッシュサイクル数を示す、ことと、
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記GPUにおいて、メモリ内の前記第1のフレームにアクセスすること、及び、前記第1のフレームを送信した後の前記ディスプレイ装置の第2のリフレッシュサイクルの間に前記第1のフレームを前記ディスプレイ装置に送信すること、を省略することと、を含む、
方法。
【請求項2】
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記第1のフレームをキャプチャするように前記ディスプレイ
装置に信号を送ることをさらに含む、
請求項1の方法。
【請求項3】
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記第1のフレームを、前記ディスプレイ装置に関連付けられたバッファに記憶するように前記ディスプレイ
装置に信号を送ることをさらに含む、
請求項1の方法。
【請求項4】
前記情報によって示された前記ディスプレイリフレッシュサイクル数だけ前記ディスプレイ装置で前記第1のフレームを表示するように前記ディスプレイ
装置に信号を送ることをさらに含む、
請求項1の方法。
【請求項5】
前記ディスプレイ装置が前記第1のフレームを表示している前記第1のリフレッシュサイクル後の各リフレッシュサイクルの間、前記GPUにおいて、無効なデータ及びGPUタイミング情報を送信することをさらに含む、
請求項4の方法。
【請求項6】
前記無効なデータを破棄するように前記ディスプレイ装置に信号を送ることをさらに含む、
請求項5の方法。
【請求項7】
前記GPUにおいて、前記GPUが前記第1のフレームを生成するレートに基づいて、前記ディスプレイ装置のリフレッシュレートを決定することであって、前記ディスプレイ装置は可変リフレッシュレートを有する、ことをさらに含む、
請求項1の方法。
【請求項8】
ディスプレイ装置において、前記ディスプレイ装置の第1のリフレッシュサイクル中に、グラフィックス処理ユニット(GPU)から、第1のフレームと、前記第1のフレームに関連付けられた情報と、を受信することであって、前記情報は、前記ディスプレイ装置が前記第1のフレームを表示する間のディスプレイリフレッシュサイクル数を示す、ことと、
前記情報によって示された前記ディスプレイリフレッシュサイクル数だけ前記第1のフレームを表示することと、を含む、
方法。
【請求項9】
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記第1のフレームをキャプチャすることをさらに含む、
請求項8の方法。
【請求項10】
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記第1のフレームを、前記ディスプレイ装置に関連付けられたバッファに記憶することをさらに含む、
請求項8の方法。
【請求項11】
前記ディスプレイ装置が前記第1のフレームを表示している前記第1のリフレッシュサイクル後の各ディスプレイリフレッシュサイクルの間、前記ディスプレイ装置において、無効なデータ及びGPUタイミング情報を受信することをさらに含む、
請求項8の方法。
【請求項12】
前記無効なデータを破棄することをさらに含む、
請求項11の方法。
【請求項13】
前記GPUにおいて、前記GPUが前記第1のフレームを生成するレートに基づいて、前記ディスプレイ装置のリフレッシュレートを決定することであって、前記ディスプレイ装置は可変リフレッシュレートを有する、ことをさらに含む、
請求項8の方法。
【請求項14】
メモリと、
グラフィックス処理ユニット(GPU)と、を備えるシステムであって、
前記グラフィックス処理ユニットは、
ディスプレイ装置に送信される複数のフレームをレンダリングすることと、
前記ディスプレイ装置の第1のリフレッシュサイクル中に、前記複数のフレームのうち第1のフレームと、前記第1のフレームに関連付けられた情報と、を前記ディスプレイ装置に送信することであって、前記情報は、前記ディスプレイ装置が前記第1のフレームを表示する間のディスプレイリフレッシュサイクル数を示す、ことと、
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記メモリ内の前記第1のフレームにアクセスすること、及び、前記第1のフレームを送信した後の前記ディスプレイ装置の第2のリフレッシュサイクルの間に前記第1のフレームを前記ディスプレイ装置に送信すること、を省略することと、
を行うように構成されている、
システム。
【請求項15】
前記GPUは、
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記第1のフレームをキャプチャするように前記ディスプレイ
装置に信号を送るようにさらに構成されている、
請求項14のシステム。
【請求項16】
前記GPUは、
前記情報が、前記ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、前記第1のフレームを、前記ディスプレイ装置に関連付けられたバッファに記憶するように前記ディスプレイ
装置に信号を送るようにさらに構成されている、
請求項14のシステム。
【請求項17】
前記GPUは、
前記情報によって示された前記ディスプレイリフレッシュサイクル数だけ前記ディスプレイ装置で前記第1のフレームを表示するように前記ディスプレイ
装置に信号を送るようにさらに構成されている、
請求項14のシステム。
【請求項18】
前記GPUは、
前記ディスプレイ装置が前記第1のフレームを表示している前記第1のリフレッシュサイクル後の各ディスプレイリフレッシュサイクルの間、無効なデータ及びGPUタイミング情報を送信するようにさらに構成されている、
請求項17のシステム。
【請求項19】
前記GPUは、
前記無効なデータを破棄するように前記ディスプレイ装置に信号を送るようにさらに構成されている、
請求項18のシステム。
【請求項20】
前記GPUは、
前記GPUが前記第1のフレームを生成するレートに基づいて、前記ディスプレイ装置のリフレッシュレートを決定することであって、前記ディスプレイ装置は可変リフレッシュレートを有する、ことを行うようにさらに構成されている、
請求項14のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
典型的な処理システムは、ディスプレイ用の画像を生成するためにグラフィックス処理ユニット(GPU)を使用する。具体的には、中央処理装置(CPU)又は他の処理装置から受信した情報に基づいて、GPUは、一連のフレームを生成し、一連のフレームを、コンピュータのモニタ等のディスプレイにレンダリングする。2つの異なるタイミング要素(すなわち、GPUがフレームを生成するレート、及び、ディスプレイのリフレッシュレート)が、一連のフレームを表示し得るレートを管理する。一部の処理システムは、ディスプレイのリフレッシュをGPUでのフレームの生成と同期させることによってユーザエクスペリエンスを改善する。例えば、ディスプレイのブランキング間隔を調整することによって、処理システムは、新しいフレームがGPUで表示される準備ができている時点に、又は、その時点の近くでディスプレイがリフレッシュされることを確実にすることができる。しかし、多くのシナリオでは、ディスプレイのリフレッシュレートは、GPUがフレームを生成するレートを超え、2倍を超える場合もある。ディスプレイのフレーム生成レートとリフレッシュレートとの不一致は、処理システムにリソースの不要な消費をもたらし、場合によっては、ユーザエクスペリエンスに悪影響を及ぼす画面の乱れ及び他の視覚アーティファクトをもたらす。
【0002】
添付図面を参照することによって、本開示をより良好に理解することができ、その多数の特徴及び利点が当業者に明らかになる。異なる図面における同じ符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、ディスプレイのリフレッシュレートとグラフィックス処理ユニットがフレームを生成するレートとの間の不一致に基づいて、ディスプレイ装置用のディスプレイ制御モジュールに対してフレームをキャプチャ及び再生するように指示するように構成された処理システムのブロック図である。
【
図2】いくつかの実施形態による、ディスプレイ制御モジュールに対してコンテンツをキャプチャ及び再生するように指示する
図1の処理システムの一例を示す図である。
【
図3】いくつかの実施形態による、ディスプレイ制御モジュールに対してライブコンテンツを表示するように指示する
図1の処理システムのグラフィックス処理ユニットの一例のブロック図である。
【
図4】いくつかの実施形態による、ディスプレイ制御モジュールに対してコンテンツをキャプチャし、ライブコンテンツを表示するように指示する
図1の処理システムのグラフィックス処理ユニットの一例の図である。
【
図5】いくつかの実施形態による、ディスプレイ制御モジュールに対してキャプチャされたコンテンツを表示するように指示する
図1の処理システムのグラフィックス処理ユニットの一例の図である。
【
図6】いくつかの実施形態による、ディスプレイのリフレッシュレートがフレーム生成レートを超えることに応じて、グラフィックス処理ユニットが、ディスプレイ制御モジュールに対してコンテンツをキャプチャし、キャプチャされたコンテンツを表示するように指示する方法のフロー図である。
【発明を実施するための形態】
【0004】
図1~
図6は、キャプチャされたコンテンツがディスプレイに再生されている間、GPUによるメモリへのアクセスを低減しながら、ディスプレイのリフレッシュレートがグラフィックス処理ユニット(GPU)のフレーム生成レートを超えることに応じて、コンテンツをキャプチャし、キャプチャされたコンテンツを表示するように、ディスプレイ制御モジュールに指示する技術を示す。ディスプレイのリフレッシュレートは、GPUがフレームを生成するレートを超えることが多く、場合によっては2倍以上になる場合もある。GPUは、同じフレームを複数回再送信するのではなく、以前に送信されたフレームを再生するようにディスプレイ制御モジュールに指示するする。GPUは、例えば、固定レートのビデオストリームのフレームレート、又は、可変フレームレートのゲームアプリケーションに生成されたフレームの複雑さに基づいて、フレーム生成レートを検出する。フレームを再生すべきと判別したことに応じて(例えば、ディスプレイのリフレッシュレートがフレーム生成レートを少なくとも閾値量だけ超えたことを検出することによって)、GPUは、2回目(又は、それ以上)の表示のためにフレームを再送信するのではなく、コンテンツをキャプチャし、キャプチャされたコンテンツを再生するようにディスプレイ制御モジュールに指示する。ディスプレイ制御モジュールがキャプチャされたコンテンツを再生しているリフレッシュサイクルの間、GPUは、再生中のフレームを取得する(及び、再送する)ためのメモリへのアクセスを省略し、代わりに、ディスプレイ制御モジュールがGPUと同期した状態を維持するように、ダミーコンテンツ(例えば、無効なデータ)及びGPUタイミング情報のみを送信する。このようにして、GPUは、キャプチャされたコンテンツをディスプレイに再生すると同時に、メモリへのアクセス回数を低減することによって、メモリ帯域幅及び電力を節約する。
【0005】
図1は、いくつかの実施形態による、ディスプレイのリフレッシュレートが、グラフィックス処理ユニットがフレームを生成するレートを超える場合に、ディスプレイ装置170に対してフレームをキャプチャ及び再生するようにディスプレイ制御モジュール160に指示する処理システム100を示す図である。処理システム100は、電子デバイスに対して指定されたタスクを実行するために、命令のセット(例えば、コンピュータプログラム)を実行する。このようなタスクの例には、電子デバイスの動作の態様の制御、特定のユーザエクスペリエンスを提供するための情報のユーザへの表示、他の電子デバイスとの通信等が含まれる。したがって、異なる実施形態において、処理システム100は、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、ゲームコンソール、タブレット、スマートフォン等の複数のタイプの電子デバイスの何れかで使用される。
【0006】
命令のセットの実行をサポートするために、処理システム100は、複数のプロセッサコア(
図1には示されていない)を含む。いくつかの実施形態では、各プロセッサコアは、命令をフェッチし、命令を対応する動作にデコードし、動作を1つ以上の実行ユニットにディスパッチし、動作を実行し、動作をリタイアするための1つ以上の命令パイプラインを含む。命令を実行する過程で、プロセッサコアは、情報の視覚的表示に関連するグラフィックス動作及びその他の動作を生成する。これらの動作に基づいて、プロセッサコアは、
図1に示すグラフィックス処理ユニット(GPU)110にコマンド及びデータを提供する。
【0007】
GPU110は、複数のプロセッサコアからグラフィックス及び他の表示動作に関連するコマンド及びデータを受信する。GPU110は、受信したコマンドに基づいて、ディスプレイ用フレーム(例えば、フレーム140)を生成する動作を実行する。動作の例には、ベクトル動作、描画動作等が含まれる。GPU110がこれらの動作に基づいて生成することができるレートは、フレーム生成レート、又は、単にGPU110のフレームレートと呼ばれる。フレーム生成レートは、フレームレート105として
図1に示されている。1セットのフレームを生成するためにGPUによって実行される動作の複雑さに部分的に基づいて、フレームレート105が経時的に変動することが理解されよう。例えば、比較的多い数の動作を必要とするフレームのセット(例えば、比較的多くの移動するオブジェクトを描画する結果として)は、より低いフレームレートを生じさせる可能性が高いが、比較的少ない数の動作を必要とするフレームのセットは、より高いフレームレートを許容する可能性が高い。さらに、いくつかのアプリケーションでは、フレームレート105が固定され、他のアプリケーションでは、フレームレート105が可変である。ユーザが、あるアプリケーションから別のアプリケーションに切り替えると、フレームレート105を固定から可変に又はその逆に切り替えることができる。
【0008】
グラフィックス処理ユニット110は、メモリ130に結合されている。GPU110は、命令を実行し、実行された命令の結果等の情報をメモリ130に記憶する。例えば、メモリ130は、GPU110から受信した、以前生成された複数の画像(図示省略)を記憶する。いくつかの実施形態では、メモリ130は、ダイナミックランダムアクセスメモリ(DRAM)として実装され、いくつかの実施形態では、メモリ130は、スタティックランダムアクセスメモリ(SRAM)、不揮発性RAM等を含む他のタイプのメモリを用いて実装される。処理システム100のいくつかの実施形態は、ディスプレイ170に関連する入力又は出力動作を処理するための入出力(I/O)エンジン(図示省略)と、キーボード、マウス、プリンタ、外部ディスク等の処理システム100の他の要素と、を含む。
【0009】
フレームを表示するために、処理システム100は、ディスプレイ制御モジュール160及びディスプレイ170を含む。ディスプレイ170は、GPU110によって生成されたフレームに基づいて視覚的に画像を表示するディスプレイ装置である。したがって、異なる実施形態では、ディスプレイ170は、液晶ディスプレイ(LCD)装置、有機発光ダイオード(OLED)装置等である。当業者に理解されるように、ディスプレイ170は、GPU110によって生成された最新のフレームを定期的にレンダリングし(又は、「描画」し)、それによってフレームを表示する。いくつかの実施形態では、ディスプレイ170は、固定リフレッシュレート155を有する。各フレームレンダリングは、ディスプレイ170が画像データをレンダリングしないブランキング間隔と呼ばれる時間の一部に関連付けられる。いくつかの実施形態では、ディスプレイ170は、プログラム可能な長さのブランキング間隔を有する。したがって、本明細書でさらに説明するように、いくつかの実施形態では、ディスプレイ170は、ブランキング間隔について異なる長さをプログラムすることによって調整可能な可変リフレッシュレート155を有する。
【0010】
ディスプレイ制御モジュール160は、ディスプレイ170でのフレームのレンダリングを制御し、1つ以上の集積回路(IC)チップ上のハードコードされたロジックとして、プログラマブルロジックとして、構成可能ロジック(例えば、ヒューズ構成可能ロジック)として実装され、1つ以上のプロセッサが、命令のプログラム又はこれらの組み合わせを実行する。いくつかの実施形態では、ディスプレイ制御モジュール160は、GPU110によって生成されたフレームのバッファリング、異なるブランキング間隔長をプログラミングすることによるディスプレイ170のリフレッシュレート155の調整等を含む動作を実行する。ディスプレイ制御モジュール160は、説明を容易にするためにGPU110とは別のモジュールとして示されているが、いくつかの実施形態では、ディスプレイ制御モジュール160は、GPU110に組み込まれていることが理解されよう。他の実施形態では、ディスプレイ制御モジュール160の1つ以上の動作は、ディスプレイ170で実施される。
【0011】
メモリ帯域幅を節約し、GPU110によるメモリ130へのアクセスを減らすために、GPU110は、ディスプレイ170のリフレッシュレート155をGPU110のフレームレート105と比較し、ディスプレイ制御モジュール160がライブコンテンツ(すなわち、現在のフレーム)をディスプレイ170に表示し、ライブコンテンツをバッファ165でキャプチャし、キャプチャされたコンテンツを相対レートに基づいて表示(再生)するかどうかを判別し、命令をディスプレイ制御モジュール160に送信する再生ロジック120を含む。再生ロジック120は、1つ以上の集積回路(IC)チップ上のハードコードされたロジックとして、プログラマブルロジックとして、構成可能ロジック(例えば、ヒューズ構成可能ロジック)として実装され、1つ以上のプロセッサが、命令のプログラム又は命令の組み合わせを実行する。
【0012】
説明のために、動作中、再生ロジック120は、再生モードがディスプレイ170でサポートされているかどうかを検出する。再生モードがディスプレイ170でサポートされていることを検出したことに応じて、再生ロジック120は、再生モードを有効にするようにディスプレイ制御モジュール160に信号を送る。再生モードが有効になると、再生ロジック120は、現在のフレーム140について、ディスプレイ170のリフレッシュレート155がGPU110のフレームレート105を閾値量だけ超えているかどうかを判別する。いくつかの実施形態では、閾値量は、フレームレート105の2倍である。したがって、フレームレート105がディスプレイリフレッシュレート155の半分以下であれば、閾値量を満たす。他の実施形態では、閾値量は、フレームレート105よりわずかに大きいが、必ずしも2倍である必要はない。例えば、フレームレート105よりわずかに高いリフレッシュレート155を有する固定リフレッシュレートディスプレイの場合、ある量のフレームが繰り返され、その場合、GPU110は、フレーム140を再生するようにディスプレイ制御モジュール160に信号を送る。
【0013】
ディスプレイ170のリフレッシュレート155がGPU110のフレームレート105を閾値量よりも超えない場合、再生ロジック120は、ディスプレイ制御モジュール160がディスプレイ170に現在のフレーム140を表示することを判別する(すなわち、ディスプレイ170は、ライブコンテンツを表示する)。再生ロジック120は、フレーム140と、ディスプレイ制御モジュール160が現在のフレーム140をディスプレイ170に表示することを示す再生情報150と、を送信する。この例では、再生ロジック120は、ディスプレイ制御モジュール160が、現在のフレーム140をキャプチャすることなく、又は、以前にキャプチャされたフレームを再表示することなく、ディスプレイに現在のフレーム140を表示することを判別したので、再生情報150は、ディスプレイ制御モジュール160が、現在のディスプレイリフレッシュサイクルの間、ディスプレイ170に現在のフレーム140を表示することのみを示す。次のディスプレイリフレッシュサイクルで、GPU110は、次のフレーム及び再生情報をディスプレイ制御モジュール160に送信する。
【0014】
ディスプレイ170のリフレッシュレート155がフレームレート105よりも閾値量を超える場合(例えば、リフレッシュレート155が、フレームレート105の少なくとも2倍である)、再生ロジック120は、ディスプレイ制御モジュール160がディスプレイ170に後続の再生のために現在のフレーム140をキャプチャすることを判別する。したがって、再生ロジック120は、現在のフレーム140と、ディスプレイ制御モジュール160が現在のフレーム140をディスプレイ170に表示し、現在のフレーム140をバッファ165にキャプチャすることを示す再生情報150と、を送信する。これに応じて、ディスプレイ制御モジュール160は、現在のフレーム140をディスプレイ170に表示し、現在のフレーム140をバッファ165にコピーする。ディスプレイ170の後続のリフレッシュサイクルでは、GPU110は、メモリ130内の現在のフレーム140へのアクセスを省略し、代わりに、ディスプレイ制御モジュール160がGPU110のフレームレートタイミングを使用し、以前にキャプチャされた現在のフレーム140をディスプレイ170で再生することを示す再生情報150と共に、ダミーコンテンツ(図示省略)をディスプレイ制御モジュール160に送信する。再生ロジック120は、ダミーコンテンツと、リフレッシュレート155がフレームレート105を超える回数だけ、又は、新しいフレームがGPU110によって生成されるまで、以前キャプチャされた現在のフレーム140をディスプレイ制御モジュール160が再生することを示す再生情報150と、の送信を繰り返す。
【0015】
したがって、例えば、フレームレート105が24フレーム/秒(fps)であり、ディスプレイ170のリフレッシュレートが48Hzである場合、GPU110によって生成されるフレーム毎にディスプレイ170の2つのリフレッシュサイクルが存在する。両方のレートが固定されている場合、第1のディスプレイリフレッシュサイクル中に、再生ロジック120は、現在のフレームN140と、ディスプレイ制御モジュール160が現在のフレームN140をディスプレイ170に表示し、現在のフレーム140をバッファ165でキャプチャすることを示す再生情報150と、を送信する。第2のディスプレイリフレッシュサイクル中に、再生ロジック120は、ダミーコンテンツと、ディスプレイ制御モジュール160が以前にキャプチャされたフレームN140を再生することを示す再生情報150と、を送信する。ディスプレイ制御モジュール160は、ダミーコンテンツを破棄し、ディスプレイ170に表示するために、バッファ165から以前にキャプチャされたフレームN 140にアクセスする。第3のディスプレイリフレッシュサイクル中に、GPU110は、現在のフレームN+1 140を生成し、再生ロジック120は、現在のフレームN+1 140と、ディスプレイ制御モジュール160が現在のフレームN+1 140をディスプレイ170に表示し、現在のフレームN+1 140をバッファ165でキャプチャすることを示す再生情報150と、を送信する。第4のディスプレイリフレッシュサイクル中に、再生ロジック120は、ダミーコンテンツと、ディスプレイ制御モジュール160が以前にキャプチャされたフレームN+1 140を再生することを示す再生情報150と、を送信する。ディスプレイ制御モジュール160は、ダミーコンテンツを破棄し、ディスプレイ170に表示するために、バッファ165から以前にキャプチャされたフレームN+1 140にアクセスする。したがって、第2及び第4のディスプレイリフレッシュサイクル中に、GPU110は、N及びN+1フレームがディスプレイ170で再生されている間、メモリ130内のN及びN+1フレームにアクセスすることと、N及びN+1フレームをディスプレイ制御モジュール160に再送信することと、を省略する。
【0016】
PowerPoint(登録商標)のプレゼンテーション中等のいくつかの実施形態では、単一のフレームが長期間に亘って変更されずに表示される。再生ロジック120は、フレームのコンテンツが不変であることを検出し、静的フレームをキャプチャして継続的に再生するようにディスプレイ制御モジュール160に信号を送る。このシナリオでは、再生ロジック120は、フレーム毎に、キャプチャされたフレームを再生するようにディスプレイ制御モジュール160に信号を送るかどうかを動的に判別する。再生ロジック120は、GPUフレームレート105とは無関係にキャプチャされたフレームを再生するようにディスプレイ制御モジュール160に信号を送るかどうかを決定し、代わりに、フレームコンテンツが変更されるまでキャプチャされたコンテンツを再生し続けることを決定する。再生ロジック120が静的フレームコンテンツを検出し、フレームをキャプチャするようにディスプレイ制御モジュール160に信号を送るが、後続のフレームでコンテンツが変更されたと判別した場合、再生ロジック120は、現在のフレーム140と、ディスプレイ制御モジュール160が現在のフレーム140をディスプレイ170に表示することを示す再生情報150と、を送信することに戻る。したがって、再生ロジック120は、ライブコンテンツを再生することを動的に決定し、この場合、キャプチャされたフレームが使用されない。
【0017】
いくつかの実施形態では、ディスプレイ170のリフレッシュレート155は、GPU110のフレームレート105の2倍以上である。このような場合、再生ロジック120は、ディスプレイ170の2回以上のリフレッシュサイクルの間、キャプチャされたコンテンツを表示するようにディスプレイ制御モジュール160に指示することを決定する。ディスプレイが可変リフレッシュレートを有する他の実施形態では、ディスプレイ170のリフレッシュレート155をGPU110のフレームレート105と同期させることができたとしても、ちらつき(flicker)を減らすために、ディスプレイのリフレッシュレートがより高いレートに設定されている場合、再生ロジック120は、ユーザエクスペリエンスが向上されると判別することができる。このような場合、再生ロジック120は、ライブコンテンツをキャプチャし、キャプチャされたライブコンテンツを、ディスプレイ170の少なくとも2回の高いレートのリフレッシュサイクルの間、表示するようにディスプレイ制御モジュール160に指示する。本明細書で使用される「ライブコンテンツ」という用語は、再表示のためにディスプレイ制御モジュール160によって記憶されていない、GPUによって生成されたフレームを指す。
【0018】
いくつかの実施形態では、ディスプレイ170は、ある範囲のリフレッシュ周波数を有する可変リフレッシュレートを有する。例えば、いくつかの実施形態では、ディスプレイ170は、40Hz~120Hzの範囲内で動的に変更可能なリフレッシュレートを有する。GPU110で実行されるゲームアプリケーションが毎秒30フレームのフレームレートを有する場合、再生ロジック120は、ユーザエクスペリエンスを最適化するディスプレイ170のフレーム再生の数及びディスプレイリフレッシュレートを決定する。例えば、再生ロジック120が、第1のオプションとして、ディスプレイを90Hzでリフレッシュすることを決定した場合、再生ロジック120は、ディスプレイ制御モジュール160に対して、第1のリフレッシュサイクル中にフレームをキャプチャし、フレームを2回再生するように信号を送る。或いは、第2のオプションとして、再生ロジック120は、60Hzでディスプレイをリフレッシュし、フレームを1回再生することを決定することができ、又は、第3のオプションとして、再生ロジック120は、120Hzでディスプレイをリフレッシュし、フレームを3回再生することを決定することができる。ディスプレイリフレッシュレート及びフレーム再生回数を決定することにより、特にゲームアプリケーション等の可変フレームレートのコンテンツで、スタッタ(stutter)やティアリング(tearing)等の副作用が観察されるかどうかに影響を与える可能性がある。この例では、第2のオプション(60Hz、1回の再生)のリフレッシュレートが低いため、電力を節約する。ただし、第1のオプション(90Hz、2回の再生)は、ディスプレイ170のリフレッシュレート範囲40Hz~120Hzの中央にあり、レンダリングの複雑さにおけるフレーム間の変形によりフレームレートが変更する場合に、スタッタやティアリングが発生する可能性が低くなる。したがって、第1のオプションは、可変レートコンテンツのユーザエクスペリエンスを向上させる可能性がある。
【0019】
図2は、いくつかの実施形態による、ディスプレイ制御モジュール160に対してコンテンツをキャプチャ及び再生するように指示する
図1の処理システム100のGPU110の再生ロジック120の一例を示す図である。第1のリフレッシュサイクル1 202の間、再生ロジック120は、ディスプレイ170のリフレッシュレート155がGPU110のフレームレート105よりも閾値量を超えないことを検出し、それによって、ディスプレイ170は、ライブコンテンツを表示することを決定する。したがって、再生ロジック120は、アクティブ(現在の)フレームN210と、ディスプレイ制御モジュール160がアクティブフレームN210をディスプレイ170に表示することを示すライブコンテンツインジケータ215と、をディスプレイ制御モジュール160に送信する。
【0020】
第2のリフレッシュサイクル2 204の間に、再生ロジック120は、ディスプレイ170のリフレッシュレート155が、GPU110のフレームレート105よりも閾値量を超えることを検出し(例えば、再生ロジック120は、ディスプレイ170のリフレッシュレート155が、GPU110のフレームレート105の2倍以上であることを検出し)、したがって、ディスプレイ制御モジュール160がライブコンテンツをキャプチャし、ライブコンテンツをバッファ165に記憶する間、ディスプレイ170がライブコンテンツを表示することを決定する。したがって、再生ロジック120は、アクティブフレームN+1 220と、キャプチャコンテンツインジケータ225と、をディスプレイ制御モジュール160に送信する。キャプチャコンテンツインジケータ225の受信に応じて、ディスプレイ制御モジュール160は、アクティブフレームN+1 220をバッファ165にコピーし、アクティブフレームN+1 220をディスプレイ170に表示する。
【0021】
第3のリフレッシュサイクル3 206の間、再生ロジック120は、ディスプレイ170のリフレッシュレート155が依然としてPU110のフレームレート105を閾値よりも超えていることを確認する。再生ロジック120は、既にアクティブフレームN+1 220をディスプレイ制御モジュール160に送信し、ディスプレイ制御モジュール160に対してアクティブフレームN+1 220をキャプチャするように指示しているので、GPU110は、アクティブフレームN+1 220をディスプレイ制御モジュール160に再送信したり、メモリ130からアクティブフレームN+1 220に再アクセスしたりする必要がない。代わりに、再生ロジック120は、ダミーコンテンツ230及び再生コンテンツインジケータ235をディスプレイ制御モジュール160に送信する。ダミーコンテンツ230及び再生コンテンツインジケータ235を受信したことに応じて、ディスプレイ制御モジュール160は、ダミーコンテンツ230を破棄し、バッファ165からアクティブフレームN+1 220にアクセスし、アクティブフレームN+1 220をディスプレイ170に表示する。
【0022】
第4のリフレッシュサイクル4 208の間、再生ロジック120は、ディスプレイ170のリフレッシュレート155がGPU110のフレームレート105よりも閾値を超えていないことを検出する。したがって、再生ロジック120は、ディスプレイ170がライブコンテンツを表示することを決定する。したがって、再生ロジック120は、アクティブ(現在の)フレームN+2 240と、ディスプレイ制御モジュール160がアクティブフレームN+2 240をディスプレイ170に表示することを示すライブコンテンツインジケータ215と、をディスプレイ制御モジュール160に送信する。
【0023】
図3は、いくつかの実施形態による、ディスプレイ制御モジュール160に対してライブコンテンツを表示するように指示する
図1の処理システム100のグラフィックス処理ユニット110の一例のブロック図である。図示した例では、GPU110の再生ロジック(図示省略)は、ディスプレイ170のリフレッシュレートがGPU110のフレームレートよりも閾値量を超えないと判別している。したがって、GPU110は、アクティブフレームN310及び再生情報をライブコンテンツインジケータ312の形態でディスプレイ制御モジュール160に送信し、ディスプレイ制御モジュール160が、アクティブフレームN310をバッファ165に記憶せずに、アクティブフレームN310をディスプレイ170に表示することを通知する。アクティブフレームN310及びライブコンテンツインジケータ312の受信に応じて、ディスプレイ制御モジュール160は、アクティブフレームN310をバッファ165にキャプチャせずに、アクティブフレームN310をディスプレイ170に表示する。
【0024】
図4は、いくつかの実施形態による、ディスプレイ制御モジュール160に対してコンテンツをキャプチャし、ライブコンテンツを表示するように指示する
図1の処理システム100のグラフィックス処理ユニット110の一例の図である。図示した例では、GPU110の再生ロジック(図示省略)は、ディスプレイ170のリフレッシュレートがGPU110のフレームレートよりも閾値量を超えると判別している。したがって、GPU110は、アクティブフレームN+1 410及びキャプチャライブコンテンツインジケータ412をディスプレイ制御モジュール160に送信し、ディスプレイ制御モジュール160が、アクティブフレームN+1 410をディスプレイ170に表示し、アクティブフレームN+1 410をバッファ165にコピーすることを通知する。アクティブフレームN+1 410及びキャプチャライブコンテンツインジケータ412の受信に応じて、ディスプレイ制御モジュール160は、アクティブフレームN+1 410をディスプレイ170に表示し、アクティブフレームN+1をバッファ165にコピーする。
【0025】
図5は、いくつかの実施形態による、ディスプレイ制御モジュール160に対してキャプチャされたコンテンツを表示するように指示する
図1の処理システム100のグラフィックス処理ユニット110の一例の図である。図示した例では、GPU110の再生ロジック(図示省略)は、ディスプレイ170のリフレッシュレートがGPU110のフレームレートよりも閾値量を超えていると以前に判別し、
図4に示すように、以前に、ディスプレイ制御モジュール160に対して、以前に送信されたアクティブフレームN+1 410をキャプチャするように指示している。現在のディスプレイリフレッシュサイクルにおいて、GPU110は、ダミーコンテンツ510及び再生コンテンツインジケータ512をディスプレイ制御モジュール160に送信し、ディスプレイ制御モジュール160に対して、バッファ165からアクティブフレームN+1 410にアクセスし、ディスプレイ170にアクティブフレームN+1 410を表示するように指示する。ダミーコンテンツ510及び再生コンテンツインジケータ512の受信に応じて、ディスプレイ制御モジュール160は、ダミーコンテンツ510を破棄し、バッファからアクティブフレームN+1 410にアクセスし、GPU110のタイミングと同期を維持しながら、アクティブフレームN+1 410をディスプレイ170に表示する。
【0026】
図6は、いくつかの実施形態による、ディスプレイのリフレッシュレートがフレーム生成レートを超えたことに応じて、グラフィックス処理ユニットが、ディスプレイ制御モジュールに対してコンテンツをキャプチャし、キャプチャされたコンテンツを表示するように指示する方法600のフロー図である。方法600は、
図1に示す処理システム100のいくつかの実施形態で実施される。
【0027】
ブロック602で、GPU110の再生ロジック120は、GPU110がフレームを生成するレート105をディスプレイ170のリフレッシュレート155と比較する。ブロック604で、再生ロジック120は、ディスプレイリフレッシュレート155がフレームレート105よりも閾値量を超えるかどうかを判別する。ブロック604で、再生ロジック120が、リフレッシュレート155がフレームレート105よりも閾値量を超えていないと判別した場合、方法フローは、ブロック606に続く。ブロック606で、再生ロジック120は、アクティブフレームN140及びライブコンテンツインジケータ215をディスプレイ制御モジュール160に送信する。アクティブフレームN140及びライブコンテンツインジケータ215の受信に応じて、ディスプレイ制御モジュール160は、アクティブフレームN 140をディスプレイ170に表示する。次に、方法フローはブロック602に戻る。
【0028】
ブロック604で、再生ロジック120が、リフレッシュレート155がフレームレート105よりも閾値量を超えると判別した場合、方法フローは、ブロック608に続く。ブロック608で、再生ロジック120は、アクティブフレームN140及びキャプチャコンテンツインジケータ225をディスプレイ制御モジュール160に送信する。アクティブフレームN140及びキャプチャコンテンツインジケータ225の受信に応じて、ディスプレイ制御モジュール160は、アクティブフレームN140をディスプレイ170に表示し、アクティブフレームN140をバッファ165にコピーする。ブロック610で、再生ロジック120は、メモリ130内のアクティブフレームN140にアクセスすることを省略し、代わりに、ダミーコンテンツ230及び再生コンテンツインジケータ235をディスプレイ制御モジュール160に送信する。ダミーコンテンツ230及び再生コンテンツインジケータ230の受信に応じて、ディスプレイ制御モジュール160は、ダミーコンテンツ230を破棄し、バッファ165からアクティブフレームN140にアクセスし、アクティブフレームN140をディスプレイ170に表示する。
【0029】
本明細書で説明するように、いくつかの実施形態では、方法は、グラフィックス処理ユニット(GPU)において、ディスプレイ装置の第1のリフレッシュサイクル中に、第1のフレームと、第1のフレームに関連付けられた情報と、をディスプレイ装置に送信することであって、情報は、ディスプレイ装置が第1のフレームを表示する間のディスプレイリフレッシュサイクル数を示す、ことと、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、GPUにおいて、メモリ内の第1のフレームにアクセスすること、及び、第1のフレームを送信した後のディスプレイ装置の第2のリフレッシュサイクルの間に第1のフレームをディスプレイ装置に送信すること、を省略することと、を含む。一態様では、方法は、情報が、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、第1のフレームをキャプチャするようにディスプレイに信号を送ることを含む。別の態様では、方法は、情報が、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、第1のフレームを、ディスプレイ装置に関連付けられたバッファに記憶するようにディスプレイに信号を送ることを含む。
【0030】
一態様では、方法は、情報によって示されたディスプレイリフレッシュサイクル数だけディスプレイ装置で第1のフレームを表示するようにディスプレイに信号を送ることを含む。別の態様では、この方法は、ディスプレイ装置が第1のフレームを表示している第1のリフレッシュサイクル後の各リフレッシュサイクルの間、GPUにおいて、無効なデータ及びGPUタイミング情報を送信することを含む。さらに別の態様では、この方法は、無効なデータを破棄するようにディスプレイ装置に信号を送ることを含む。さらに別の態様では、方法は、GPUにおいて、GPUが第1のフレームを生成するレートに基づいて、ディスプレイ装置のリフレッシュレートを決定することであって、ディスプレイ装置は可変リフレッシュレートを有する、ことを含む。
【0031】
いくつかの実施形態では、方法は、ディスプレイ装置において、ディスプレイ装置の第1のリフレッシュサイクル中に、グラフィックス処理ユニット(GPU)から、第1のフレームと、第1のフレームに関連付けられた情報と、を受信することであって、情報は、ディスプレイ装置が第1のフレームを表示する間のディスプレイリフレッシュサイクル数を示す、ことと、情報によって示されたディスプレイリフレッシュサイクル数だけ第1のフレームを表示することと、を含む。一態様では、方法は、情報が、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、第1のフレームをキャプチャすることを含む。別の態様では、方法は、情報が、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、第1のフレームを、ディスプレイ装置に関連付けられたバッファに記憶することを含む。
【0032】
一態様では、方法は、ディスプレイ装置が第1のフレームを表示している第1のリフレッシュサイクル後の各ディスプレイリフレッシュサイクルの間、ディスプレイ装置において、無効なデータ及びGPUタイミング情報を受信することを含む。別の態様では、方法は、無効なデータを破棄することを含む。さらに別の態様では、方法は、GPUにおいて、GPUが第1のフレームを生成するレートに基づいて、ディスプレイ装置のリフレッシュレートを決定することであって、ディスプレイ装置は可変リフレッシュレートを有する、ことを含む。
【0033】
いくつかの実施形態では、システムは、メモリと、グラフィックス処理ユニット(GPU)と、を備え、グラフィックス処理ユニットは、ディスプレイ装置に送信される複数のフレームをレンダリングすることと、ディスプレイ装置の第1のリフレッシュサイクル中に、複数のフレームのうち第1のフレームと、第1のフレームに関連付けられた情報と、をディスプレイ装置に送信することであって、情報は、ディスプレイ装置が第1のフレームを表示する間のディスプレイリフレッシュサイクル数を示す、ことと、情報が、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、メモリ内の第1のフレームにアクセスすること、及び、第1のフレームを送信した後のディスプレイ装置の第2のリフレッシュサイクルの間に第1のフレームをディスプレイ装置に送信すること、を省略することと、を行うように構成されている。一態様では、GPUは、情報が、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、第1のフレームをキャプチャするようにディスプレイに信号を送るように構成されている。別の態様では、GPUは、情報が、ディスプレイリフレッシュサイクル数が1つのディスプレイリフレッシュサイクルを超えることを示すことに応じて、第1のフレームを、ディスプレイ装置に関連付けられたバッファに記憶するようにディスプレイに信号を送るように構成されている。
【0034】
一態様では、GPUは、情報によって示されたディスプレイリフレッシュサイクル数だけディスプレイ装置で第1のフレームを表示するようにディスプレイに信号を送ることを含む。別の態様では、GPUは、ディスプレイ装置が第1のフレームを表示している第1のリフレッシュサイクル後の各ディスプレイリフレッシュサイクルの間、無効なデータ及びGPUタイミング情報を送信するようにさらに構成されている。さらに別の態様では、GPUは、無効なデータを破棄するようにディスプレイ装置に信号を送るようにさらに構成されている。さらに別の態様では、GPUは、GPUが第1のフレームを生成するレートに基づいてディスプレイ装置のリフレッシュレートを決定することであって、ディスプレイ装置は可変リフレッシュレートを有する、ことを行うようにさらに構成されている。
【0035】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0036】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0037】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0038】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。