IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ クアルコム,インコーポレイテッドの特許一覧

特表2024-500205アプリケーションレイヤレンダリングのインテリジェント管理
<>
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図1
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図2
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図3
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図4
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図5
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図6
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図7
  • 特表-アプリケーションレイヤレンダリングのインテリジェント管理 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-05
(54)【発明の名称】アプリケーションレイヤレンダリングのインテリジェント管理
(51)【国際特許分類】
   H04N 5/262 20060101AFI20231225BHJP
   G09G 5/00 20060101ALI20231225BHJP
   H04N 5/66 20060101ALI20231225BHJP
   H04N 5/04 20060101ALI20231225BHJP
【FI】
H04N5/262
G09G5/00 550H
H04N5/66 Z
H04N5/04 101
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023520499
(86)(22)【出願日】2020-10-28
(85)【翻訳文提出日】2023-04-04
(86)【国際出願番号】 CN2020124252
(87)【国際公開番号】W WO2022087871
(87)【国際公開日】2022-05-05
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ナン・ジャン
(72)【発明者】
【氏名】ヨンジュン・シュ
(72)【発明者】
【氏名】ウェンカイ・ヤオ
【テーマコード(参考)】
5C023
5C058
5C182
【Fターム(参考)】
5C023BA11
5C023BA16
5C023CA01
5C058BA35
5C182AB02
5C182AB08
5C182AB14
5C182AB25
5C182AB37
5C182AC02
5C182AC03
5C182AC12
5C182AC43
5C182BB01
5C182BB11
5C182BC03
5C182BC22
5C182CB52
5C182CC01
5C182CC13
5C182DA22
5C182DA64
5C182DA66
(57)【要約】
高フレーム毎秒(FPS)のディスプレイは、スマートフォン、ラップトップなどのデバイスにより広く普及するようになっている。データをディスプレイに表示するために、Vsync-appおよびVsync-sfが、レンダリングおよび合成のタイミングを制御する。従来は、ディスプレイに対して1つのVsync-appおよび1つのVsync-sfがあり、どちらもディスプレイハードウェアのHW Vsyncと同じ周波数を共有する。ディスプレイのFPSがますます速くなるにつれて、すなわち、HW Vsync周波数が増加するにつれて、いくつかのアプリケーションレイヤは、増加した周波数に対応するのに十分な速さでレンダリングすることができない場合がある。この問題に対処するために、異なる周波数および位相の複数のVsync-appを提供することが提案され、異なるVsync-appが、異なるアプリケーションレイヤのレンダリングのタイミングを制御するために使用されてもよい。アプリケーションレイヤのレンダリングをそのように管理することによって、より良いユーザエクスペリエンスの提供が可能である。
【特許請求の範囲】
【請求項1】
ディスプレイシステムのレンダマネージャであって、
1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するように構成されるレンダ同期レシーバと、
各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するように構成されるレンダ同期スケジューラであって、前記複数のVsync-appの各Vsync-appが、周期的に繰り返すレンダ同期イベントを定義する、レンダ同期スケジューラと、
各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するように構成されるレンダ同期レスポンダであって、前記レンダ同期応答が、前記選択されたVsync-appを示すように構成されるVsync-appインジケータを含む、レンダ同期レスポンダと
を備え、
各アプリケーションレイヤについて、前記選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定する、レンダマネージャ。
【請求項2】
前記複数のVsync-appの各Vsync-appが、前記複数のVsync-appのうちの少なくとも1つの他のVsync-appとは周波数、位相、または両方が異なる、請求項1に記載のレンダマネージャ。
【請求項3】
前記複数のVsync-appの各Vsync-appについて、そのVsync-appのハードウェア(HW)周波数比が正の整数であり、Vsync-appの前記HW周波数比が、前記Vsync-appの周波数に対する前記ディスプレイシステムのディスプレイのHW Vsyncの周波数の比である、請求項1に記載のレンダマネージャ。
【請求項4】
前記複数のVsync-appの各Vsync-appについて、そのVsync-appの前記HW周波数比が2nであり、nは0以上の整数である、請求項3に記載のレンダマネージャ。
【請求項5】
前記複数のVsync-appのうちの少なくとも1つのVsync-appの前記HW周波数比が1である、請求項3に記載のレンダマネージャ。
【請求項6】
前記複数のVsync-appが、第1および第2の周波数を有し、第1および第2の位相を有する少なくとも第1および第2のVsync-appを含み、前記第1および第2の周波数は同じであるが、第1および第2の位相は異なる、請求項1に記載のレンダマネージャ。
【請求項7】
前記第1および第2の周波数が前記HW Vsyncの前記周波数よりも低い、請求項6に記載のレンダマネージャ。
【請求項8】
前記第1のVsync-appの各発生が前記HW Vsyncの各第1の発生と一致し、
前記第2のVsync-appの各発生が前記HW Vsyncの各第2の発生と一致する、
請求項6に記載のレンダマネージャ。
【請求項9】
前記レンダ同期スケジューラが、前記ディスプレイシステムの現在の動作モードに基づいて少なくとも1つのレンダ同期要求に対して前記Vsync-appを選択するように構成される、請求項1に記載のレンダマネージャ。
【請求項10】
前記ディスプレイシステムの前記現在の動作モードが複数の動作モードのうちの1つであり、前記複数の動作モードの各動作モードが、異なる性能のレベルおよび/または異なる電力消費のレベルに対応する、請求項9に記載のレンダマネージャ。
【請求項11】
前記レンダ同期スケジューラが、2つ以上のアプリケーションレイヤの前記レンダ開始時間が異なるように前記Vsync-appを選択するように構成される、請求項1に記載のレンダマネージャ。
【請求項12】
前記レンダ同期レシーバが、同じアプリケーションレイヤから第1および第2の時間に第1および第2のレンダ同期要求を受信するとき、前記レンダ同期スケジューラが、互いに異なる第1および第2のVsync-appを選択するように構成される、請求項1に記載のレンダマネージャ。
【請求項13】
対応する少なくとも1つのアプリケーションレイヤからの少なくとも1つのレンダ同期要求が、前記対応する少なくとも1つのアプリケーションレイヤに関連する前記サーフェスの2つのレンダ開始時間の間の最小持続時間を示すMinRenderCycleを含み、
前記レンダ同期スケジューラが、前記MinRenderCycleに基づいて前記少なくとも1つのレンダ同期要求に対して前記Vsync-appを選択するように構成される、
請求項1に記載のレンダマネージャ。
【請求項14】
ディスプレイシステムのレンダマネージャの方法であって、
1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するステップと、
各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するステップであって、前記複数のVsync-appの各Vsync-appが、周期的に繰り返すレンダ同期イベントを定義する、ステップと、
各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するステップであって、前記レンダ同期応答が、前記選択されたVsync-appを示すように構成されるVsync-appインジケータを含む、ステップと
を含み、
各アプリケーションレイヤについて、前記選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定する、方法。
【請求項15】
前記複数のVsync-appの各Vsync-appが、前記複数のVsync-appのうちの少なくとも1つの他のVsync-appとは周波数、位相、または両方が異なる、請求項14に記載の方法。
【請求項16】
前記複数のVsync-appの各Vsync-appについて、そのVsync-appのハードウェア(HW)周波数比が正の整数であり、Vsync-appの前記HW周波数比が前記Vsync-appの周波数に対する前記ディスプレイシステムのディスプレイのHW Vsyncの周波数の比である、請求項14に記載の方法。
【請求項17】
前記複数のVsync-appの各Vsync-appについて、そのVsync-appの前記HW周波数比が2nであり、nは0以上の整数である、請求項16に記載の方法。
【請求項18】
前記複数のVsync-appのうちの少なくとも1つのVsync-appの前記HW周波数比が1である、請求項16に記載の方法。
【請求項19】
前記複数のVsync-appが、第1および第2の周波数を有し、第1および第2の位相を有する少なくとも第1および第2のVsync-appを含み、前記第1および第2の周波数は同じであるが、第1および第2の位相は異なる、請求項14に記載の方法。
【請求項20】
前記第1および第2の周波数が前記HW Vsyncの前記周波数よりも低い、請求項19に記載の方法。
【請求項21】
前記第1のVsync-appの各発生が前記HW Vsyncの各第1の発生と一致し、
前記第2のVsync-appの各発生が前記HW Vsyncの各第2の発生と一致する、
請求項19に記載の方法。
【請求項22】
前記レンダ同期スケジューラが、前記ディスプレイシステムの現在の動作モードに基づいて少なくとも1つのレンダ同期要求に対して前記Vsync-appを選択するように構成される、請求項14に記載の方法。
【請求項23】
前記ディスプレイシステムの前記現在の動作モードが、複数の動作モードのうちの1つであり、前記複数の動作モードの各動作モードが異なる性能のレベルおよび/または異なる電力消費のレベルに対応する、請求項22に記載の方法。
【請求項24】
2つ以上のアプリケーションレイヤの前記レンダ開始時間が異なるように前記Vsync-appが選択される、請求項14に記載の方法。
【請求項25】
第1および第2のレンダ同期要求が、同じアプリケーションレイヤから第1および第2の時間に受信されるとき、互いに異なる第1および第2のVsync-appが選択される、請求項14に記載の方法。
【請求項26】
対応する少なくとも1つのアプリケーションレイヤからの少なくとも1つのレンダ同期要求が、前記対応する少なくとも1つのアプリケーションレイヤに関連する前記サーフェスの2つのレンダ開始時間の間の最小持続時間を示すMinRenderCycleを含み、
前記Vsync-appを選択するステップが、前記MinRenderCycleに基づいて前記少なくとも1つのレンダ同期要求に対して前記Vsync-appを選択するステップを含む、
請求項14に記載の方法。
【請求項27】
ディスプレイシステムのレンダマネージャであって、
1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するための手段と、
各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するための手段であって、前記複数のVsync-appの各Vsync-appが、周期的に繰り返すレンダ同期イベントを定義する、手段と、
各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するための手段であって、前記レンダ同期応答が、前記選択されたVsync-appを示すように構成されるVsync-appインジケータを含む、手段と
を備え、
各アプリケーションレイヤについて、前記選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定する、レンダマネージャ。
【請求項28】
前記複数のVsync-appの各Vsync-appが、前記複数のVsync-appのうちの少なくとも1つの他のVsync-appと周波数、位相、または両方が異なる、請求項27に記載のレンダマネージャ。
【請求項29】
前記選択するための手段が、
前記ディスプレイシステムの前記現在の動作モードであって、前記複数の動作モードの各動作モードが、異なる性能のレベルおよび/または異なる電力消費のレベルに対応する、現在の動作モード、
前記レンダ同期要求に含まれるMinRenderCycleであって、前記対応するアプリケーションレイヤに関連する前記サーフェスの2つのレンダ開始時間の間の最小持続時間を示す、MinRenderCycle、
前記複数のVsync-appの各々に整合されたアプリケーションレイヤの数、または
それらの任意の組合せ
に基づいて、前記Vsync-appを選択するように構成される、請求項27に記載のレンダマネージャ。
【請求項30】
ディスプレイシステムのレンダマネージャのためのコンピュータ実行可能命令を記憶する非一時的コンピュータ可読記録媒体であって、前記コンピュータ実行可能命令が、
前記レンダマネージャに1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するよう命令する1つまたは複数の命令と、
各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するよう前記レンダマネージャに命令する1つまたは複数の命令であって、前記複数のVsync-appの各Vsync-appが、周期的に繰り返すレンダ同期イベントを定義する、1つまたは複数の命令と、
各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するよう前記レンダマネージャに命令する1つまたは複数の命令であって、前記レンダ同期応答が、前記選択されたVsync-appを示すように構成されるVsync-appインジケータを含む、1つまたは複数の命令と
を含み、
各アプリケーションレイヤについて、前記選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定する、非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で説明される様々な態様は、一般に表示制御に関し、より詳細にはアプリケーションレイヤレンダリングのインテリジェント管理に関する。
【背景技術】
【0002】
スマートフォン、ラップトップ、高精細度テレビジョンなどのデバイスのハードウェア表示速度は、ますます速くなっている。たとえば、ディスプレイのフレーム毎秒(FPS)能力は向上している。一般には望ましいが、表示速度の増加はまた、表示される視覚情報をレンダリングするアプリケーションレイヤの同期が、対処されるべき重要な問題になる可能性があることを意味している。
【発明の概要】
【課題を解決するための手段】
【0003】
この発明の概要は、いくつかの例示的な態様の特徴を特定するものであり、開示される主題の排他的または包括的な説明ではない。特徴または態様がこの発明の概要に含まれるか、またはこの発明の概要から省略されるかは、そのような特徴の相対的重要性を示すものとして意図されていない。以下の詳細な説明を読み、その一部を形成する図面を見ると、追加の特徴および態様が説明され、当業者に明らかになるであろう。
【0004】
ディスプレイシステムの例示的なレンダマネージャを開示する。レンダマネージャは、レンダ同期レシーバと、レンダ同期スケジューラと、レンダ同期レスポンダとを備えてもよい。レンダ同期レシーバは、1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するように構成されてもよい。レンダ同期スケジューラは、各レンダ同期要求に対して、複数のVsync-app(垂直同期アプリ)からあるVsync-appを選択するように構成されてもよい。複数のVsync-appの各Vsync-appは、周期的に繰り返すレンダ同期イベントを定義してもよい。レンダ同期レスポンダは、各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するように構成されてもよい。レンダ同期応答は、選択されたVsync-appを示すように構成されるVsync-appインジケータを含んでもよい。各アプリケーションレイヤについて、選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定してもよい。
【0005】
レイヤレンダリング管理のための例示的な方法を開示する。この方法は、1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するステップを含んでもよい。この方法はまた、各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するステップを含んでもよい。複数のVsync-appの各Vsync-appは、周期的に繰り返すレンダ同期イベントを定義してもよい。この方法はさらに、各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するステップを含んでもよい。レンダ同期応答は、選択されたVsync-appを示すように構成されるVsync-appインジケータを含んでもよい。各アプリケーションレイヤについて、選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定してもよい。
【0006】
ディスプレイシステムの別の例示的なレンダマネージャを開示する。このレンダマネージャは、1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するための手段を備えてもよい。このレンダマネージャはまた、各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するための手段を備えてもよい。複数のVsync-appの各Vsync-appは、周期的に繰り返すレンダ同期イベントを定義してもよい。このレンダマネージャはさらに、各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するための手段を備えてもよい。レンダ同期応答は、選択されたVsync-appを示すように構成されるVsync-appインジケータを含んでもよい。各アプリケーションレイヤについて、選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定してもよい。
【0007】
ディスプレイシステムのレンダマネージャのためのコンピュータ実行可能命令を記憶する非一時的コンピュータ可読媒体を開示する。実行可能命令は、レンダマネージャに1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するように命令する1つまたは複数の命令を含んでもよい。実行可能命令はまた、各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するようレンダマネージャに命令する1つまたは複数の命令を含んでもよい。複数のVsync-appの各Vsync-appは、周期的に繰り返すレンダ同期イベントを定義してもよい。実行可能命令はさらに、各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するようレンダマネージャに命令する1つまたは複数の命令を含んでもよい。レンダ同期応答は、選択されたVsync-appを示すように構成されるVsync-appインジケータを含んでもよい。各アプリケーションレイヤについて、選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定してもよい。
【0008】
例示的なディスプレイシステムを開示する。ディスプレイシステムは、プロセッサと、メモリと、レンダマネージャとを備えてもよい。プロセッサおよびメモリは、1つまたは複数のアプリケーションレイヤを実行するように構成されてもよい。レンダマネージャは、1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するように構成されてもよい。レンダマネージャはまた、各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するように構成されてもよい。複数のVsync-appの各Vsync-appは、周期的に繰り返すレンダ同期イベントを定義してもよい。レンダマネージャはさらに、各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するように構成されてもよい。レンダ同期応答は、選択されたVsync-appを示すように構成されるVsync-appインジケータを含んでもよい。各アプリケーションレイヤについて、選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定してもよい。
【0009】
本明細書で開示する態様に関連する他の目的および利点が、添付図面および発明を実施するための形態に基づいて当業者に明らかとなろう。
【図面の簡単な説明】
【0010】
添付の図面は、開示する主題の1つまたは複数の態様の例について説明する助けとするために提示され、例の限定ではなく、例の例示のためにのみ提供される。
図1】表示フレームを同期させるための従来の信号を示す図である。
図2】フレームの従来の表示の一例を示す図である。
図3】本開示の1つまたは複数の態様による、アプリケーションレイヤによるレンダリングをスケジュールするための、アプリケーションレイヤとレンダマネージャとの間の通信を示す図である。
図4】本開示の1つまたは複数の態様による、レンダリングのためのアプリケーションレイヤの複数のVsync-appの一例を示す図である。
図5】本開示の1つまたは複数の態様による、フレームの例示的な表示を示す図である。
図6】1つまたは複数の態様による、例示的なディスプレイシステムで採用される場合があるコンポーネントのいくつかの例示的な態様のブロック図である。
図7】本開示の1つまたは複数の態様による、ディスプレイシステムによって実行される例示的な方法のフローチャートである。
図8】ディスプレイシステムが中に組み込まれたデバイスの例を示す図である。
【発明を実施するための形態】
【0011】
開示する主題の特定の例を対象とする以下の説明および関連する図面において、主題の態様を提供する。開示する主題の範囲から逸脱することなく、代替形態が考案され得る。さらに、関連する詳細を不明瞭にしないように、よく知られている要素については詳細には説明しない、または省略する。
【0012】
「例示的」という語は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。「例示的」として本明細書で説明するいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきでない。同様に、「態様」という用語は、すべての態様が論じられる特徴、利点、または動作モードを含むことを必要としない。
【0013】
本明細書で使用する用語は、特定の態様について説明するものにすぎず、本明細書で開示するいかなる態様も限定すると解釈されるべきでない。本明細書で使用する単数形「a」、「an」、および「the」は、文脈が別段に明確に示さない限り、複数形も含むものとする。「備える(comprises)」、「備える(comprising)」、「含む(includes)」、および/または「含む(including)」という用語は、本明細書で使用されると、述べられた特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除しないことを、当業者はさらに理解されよう。
【0014】
さらに、様々な態様について、たとえば、コンピューティングデバイスの要素によって実行されるべきアクションのシーケンスに関して説明することがある。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されているプログラム命令によって、または両方の組合せによって実行され得ることは、当業者には認識されよう。さらに、本明細書で説明するアクションのこれらのシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させるようになる、コンピュータ命令の対応するセットを記憶した、任意の形態の非一時的コンピュータ可読媒体内で完全に具現化されるものと見なされ得る。したがって、本明細書で説明する様々な態様は、いくつかの異なる形態で具現化され得、それらのすべては、請求する主題の範囲内に入るように企図されている。加えて、本明細書で説明する態様の各々について、任意のそのような態様の対応する形態について、たとえば、説明するアクションを実行する「ように構成される論理」として、および/または実行するように構成される他の構造コンポーネントとして、本明細書で説明することがある。
【0015】
本明細書で使用する「ディスプレイシステム」という用語は、別段に記載されていない限り、任意の特定のディスプレイ技術に固有であること、またはさもなければそのようなディスプレイ技術に限定されることは意図されていない。一般に、ディスプレイシステムは、1つまたは複数のディスプレイを含む任意のデバイスであってもよい。いくつかの事例では、ディスプレイは、デバイス内に組み込まれる場合がある。携帯電話、タブレット、およびラップトップは、組込みディスプレイを備えたデバイスの例であることがある。他の事例では、ディスプレイは、インターフェースコネクタ(たとえば、高精細度マルチメディアインターフェース(HDMI(登録商標))、デジタルビジュアルインターフェース(DVI)、ビデオグラフィックスアレイ(VGA)、シリアルデジタルインターフェース(SDI)など)を介してデバイスに接続されることがある。いくつかのデバイスは、組込みディスプレイならびに接続されたディスプレイをどちらも含むことがあることに留意されたい。
【0016】
上述のように、スマートフォン、ラップトップ、高精細度テレビジョンなどのデバイスのハードウェア表示速度は、ますます速くなっている。60Hzデバイスが非常に普及しているが、120Hzデバイスが、ますます一般的になっている。また、180Hzデバイス、さらには240Hzデバイスが、1年以内に利用可能になると予想される。フレーム毎秒(FPS)能力の向上は望ましいが、それはまた、ディスプレイ上に表示される視覚情報をレンダリングするアプリケーションレイヤの同期に関しては、重大な課題をもたらすことがある。
【0017】
ディスプレイ画面に視覚情報を提示することは、一般に、以下の動作、すなわちレンダリング、合成、および表示を含む。異なるアプリケーションレイヤがサーフェスをレンダリングし、レンダリングされたサーフェスは、フレームに構成され、構成されるフレームは、ディスプレイに表示される。これらの動作、すなわちサーフェスレンダリング、合成、および表示は、同期信号Vsync-app、Vsync-sf、およびHW Vsyncを通して同期される。Vsync-appは、アプリケーションレイヤレンダリングを同期するために使用され、Vsync-sfは、合成を同期するために使用され、HW Vsyncは、ハードウェアリフレッシュサイクルを制御する。
【0018】
従来は、ディスプレイに対して1つのVsync-appおよび1つのVsync-sfがあり、それらはHW Vsyncと同じ周波数を共有する。これは図1に示している。Vsync-appイベントが発生すると、アプリケーションレイヤの各々が、サーフェスレンダリングを開始する。Vsync-appイベント発生の周波数は、レンダリングされたサーフェスの合成を開始するVsync-sfイベントと同じ周波数である。したがって、各Vsync-appイベントで表示のために、サーフェスをレンダリングするために、およびサーフェスを構成するために、計算需要に急激な上昇がある。
【0019】
したがって、例として120Hzディスプレイの場合、HW Vsync、Vsync-sf、およびVsync-appがすべて120Hzで動作する。すべての通常のアプリケーションは、レンダリングのために120HzのVsync-appに同期する。例外的なアプリケーション(たとえば、ゲーミングアプリケーション)は、「アンマネージド(unmanaged)」方式で実行していることがあり、これはVsync-appのイベントまたは信号に遅れをとらない十分な速さでそれのサーフェスをレンダリングすることができないことがあるアプリケーションレイヤを指すことができる。たとえば、アプリケーションレイヤは、サーフェスをレンダリングするのに8.33ms(1/120Hz)よりも長くかかる場合がある。しかし、すべてのアプリケーションレイヤが120HzのVsync-app周波数でレンダリングすることを強いられる場合、得られる表示は滑らかではなく、一般的に不快である。図2は、単一フレームの従来の表示の一例を示す。アプリケーションレイヤのすべてのサーフェス(ステータスバー、スライディングアニメーションウィンドウ、ナビゲーションバー、ゲームウィンドウ、ゲームステータスバー、ウィーチャット(wechat)ウィンドウなど)が、120Hzでレンダリングされることに留意されたい。
【0020】
すべてのアプリケーションレイヤが120Hzでレンダリングされる必要があるとは限らないことに留意されたい。より一般的には、すべてのアプリケーションレイヤが、ディスプレイハードウェアのFPSレートでレンダリングされる必要があるとは限らない。すなわち、すべてのアプリケーションレイヤが、HW Vsyncの周波数でレンダリングする必要があるとは限らない。たとえば、ナビゲーションおよびステータスバーは、より低い周波数、たとえば60Hzでレンダリングされてもよく、スライディングアニメーションなど他のものは、120Hzの高レートでレンダリングされるべきである。強度のジャンク(jank)および滑らかさのなさを生じる可能性がある120HzのHW Vsyncレートでレンダリングすることを強いられるとき、ウィーチャットなどのいくつかのアプリケーションは、アンマネージドであってもよい。これはやはり、すべてのアプリケーションレイヤに同じ高速周波数でレンダリングすることを強いることが望ましくない可能性があることを示す。
【0021】
そのような問題に対処するために、アプリケーションレイヤレンダリングに複数のVsync-appを提供することが提案される。アプリケーションレイヤの各々が、レンダリングのためにVsync-appの1つと整合されてもよい。このようにして、アプリケーションレイヤは、異なるレンダスケジューリングを提供されてもよい。動的であってもよい、複数のVsync-appは、異なる周波数、位相オフセット、スケジューリング(たとえば、開始/終了/スリープ)、および動的FPS切替えを有してもよい。複数のVsync-appは、HW VsyncおよびVsync-sfとの関係を共有してもよい。
【0022】
アプリケーションレイヤをVsync-appと整合させるために、レンダマネージャが提供されてもよい。アプリケーションレイヤは、Table 1(表1)に例示するような、異なるサービス品質(QOS)カテゴリでタグ付けされた好ましいレンダFPSリストを要求するために、レンダマネージャに対してレンダ同期要求を行ってもよい。
【表1】
【0023】
レンダマネージャは、各レイヤについて現在のフレームのレンダFPSを選択、またはさもなければ決定してもよい。これは図3に示している。わかるように、複数のVsync-app、すなわちVsync-app-1、Vsync-app-2……Vsync-app-nが、レンダリング同期のために利用可能にされる。各アプリケーションレイヤ(たとえば、レイヤ1、レイヤ2、……レイヤn)が、レンダマネージャに対してレンダ同期要求(一点鎖線矢印)を行ってもよい。次にレンダマネージャは、各要求中のアプリケーションレイヤに対して、レンダ同期応答で応答してもよい。各レンダ同期応答は、Vsync-app(たとえば、Vsync-app-1、Vsync-app-2……Vsync-app-nのいずれか)のどれが対応するアプリケーションレイヤに選択されたかを示してもよい。
【0024】
図4は、図1に示す従来のシナリオとは異なる、アプリケーションレイヤのレンダリングに複数のVsync-appを利用する実行時の一例を示す。図4では、HW Vsync(ハードウェア表示周波数)およびVsync-sf(合成周波数)は、どちらも120Hzであると仮定される。
【0025】
しかし、ただ単一のVsync-appの代わりに、複数のVsync-appが利用可能にされてもよい。一例として、3つのVsync-app、すなわち120HzのVsync-app-120と、60HzのVsync-app-60Aと、同じく60Hzの、ただしVsync-app-60Aとは位相のずれがあるVsync-app-60Bとが示されている。図4はまた、異なるアプリケーションレイヤがレンダリングのために複数のVsync-appと整合される可能性があることを示す。たとえば、Vsync-app-120が、App-layer-1に選択されてもよい。これは、App-layer-1が、120FPSのハードウェア表示周波数でサーフェスレンダリングを行ってもよいことを意味する。別の例として、Vsync-app-60Aが、App-layer-2に選択されてもよく、App-layer-2が60FPSでレンダリングしてもよいことを意味する。これは、App-layer-2が、App-layer-1と比較すると、サーフェスをレンダリングするために2倍多い持続時間を有することができる(16.67ms対8.33ms)ことを意味する。さらなる例として、Vsync-app-60Bが、App-layer-3に選択されてもよく、App-layer-3もまた60FPSでレンダリングしてもよいことを意味する。加えて、位相オフセットにより、App-layer-3は、それのサーフェスレンダリングをApp-layer-2と同時に開始する必要がない。位相オフセットの使用は、計算リソースの需要が分散できるので有利である。
【0026】
3つのVsync-appが図4に示されているが、これは一例にすぎず、限定ではない。一般に、複数のVsync-appに2つ以上のVsync-appがある可能性がある。複数のVsync-appの各Vsync-appは、複数のVsync-appのうちの少なくとも1つの他のVsync-appとは周波数、位相、または周波数と位相の両方が異なっていてもよい。
【0027】
また、各Vsync-appについて、HW Vsyncの周波数またはFPSとそのVsync-appの周波数またはFPSの比は、正の整数である可能性がある。たとえば、図4のHW VsyncとApp-layer-1のFPS比は1(120/120)である。参照しやすいように、そのような比はハードウェア(HW)周波数比と呼ばれる場合がある。したがって、Vsync-app-60AとVsync-app-60Bの両方のHW周波数比は2に等しい。詳細には、HW周波数比は、2の累乗であってもよく、すなわち2nであってもよく、ただしnは0以上の整数である。たとえば、App-layer-1、App-layer-2、およびApp-layer-3のHW周波数比は、それぞれ20=1、21=2、および21=2であってもよい。一態様では、HW周波数比は、正の整数であるとして、より一般化されてもよい。たとえば、図4には明示的に示されていないが、複数のVsync-appは、すべて40Hzで、互いから8.33msだけ位相がオフセットに設定されたVsync-app-40A、Vsync-app-40B、およびVsync-app-40Cを含むことがある。
【0028】
一態様では、少なくとも1つのVsync-appのHW周波数比は、1であってもよく、すなわち、少なくとも1つのVsync-appは、Vsync-app-120などのハードウェア表示レートと同じ速さで動作してもよい。別の態様では、複数のVsync-appは、それらの周波数は同じであるが、それらの位相が異なる、少なくとも2つのVsync-appを含んでもよい。別の言い方をすれば、複数のVsync-appは、第1および第2の周波数は同じであるが、第1および第2の位相は異なるような、第1および第2の周波数ならびに第1および第2の位相を有する第1および第2のVsync-appを含んでもよい。そのような事例では、第1および第2の周波数は、HW Vsync周波数よりも低い(すなわち、より低いFPSである)ことがある。
【0029】
図4では、Vsync-app-60AおよびVsync-app-60Bが、第1および第2のVsync-appの例であってもよい。より低い周波数のVsync-appが、それでも依然としてHW Vsyncと整列する、または同時に起こる場合があることに留意されたい。言い換えれば、Vsync-appとHW Vsyncとの間に依然として同期があることがある。たとえば、Vsync-app-60AおよびVsync-app-60Bは、実質的に1つおきのHW Vsyncと整列することに留意されたい。より一般的には、第1のVsync-app(たとえば、Vsync-app-60A)の各発生は、HW Vsyncの各第1の発生と一致してもよく、第2のVsync-app(たとえば、Vsync-app-60B)の各発生は、HW Vsyncの各第2の発生と一致してもよい。
【0030】
Vsync-appが複数のアプリケーションレイヤと整合される場合があることに留意されたい。言い換えれば、アプリケーションレイヤとVsync-appとの間で1対1整合の必要はない。また、アプリケーションレイヤは、異なる時間に、たとえば異なるフレームで、異なるVsync-appと整合されてもよい。
【0031】
図5は、1つまたは複数の態様による、単一フレームの表示の一例を示す。アプリケーションレイヤのサーフェス(ステータスバー、スライディングアニメーションウィンドウ、ナビゲーションバー、ゲームウィンドウ、ゲームステータスバー、ウィーチャットウィンドウなど)は、すべて同じ周波数でレンダリングされるとは限らないことに留意されたい。ここでは、ステータスおよびナビゲーションバーは、120Hzではなく60Hzでレンダリングされてもよい。たとえば、ステータスおよびナビゲーションバーのアプリケーションレイヤのレンダリングは、Vsync-app-60AまたはVsync-app-60Bと同期されてもよい。また、ウィーチャットアプリケーションはおそらく現在、それのレンダリングを120Hzではなく60HzのVsync信号(たとえば、Vsync-app-60AまたはVsync-app-60B)と同期することによって管理されてもよく、それによってウィーチャットアプリケーションに、サーフェスをレンダリングするためのより多くの時間(たとえば、16.67ms)を与える。より高速のレンダリングが望ましいそれらのアプリケーションレイヤ(たとえば、スライディングアニメーションウィンドウ、ゲームウィンドウ)では、それらは高速のVsync-app-120と同期されてもよい。
【0032】
図6は、本明細書で開示する動作をサポートするためにディスプレイシステム600に組み込まれる場合がある(対応するブロックによって表された)いくつかの例示的なコンポーネントを示す。これらのコンポーネントは、異なる実装形態で(たとえば、ASICで、システムオンチップ(SoC)で、など)異なるタイプの装置において実装され得ることが諒解されよう。
【0033】
ディスプレイシステム600は、たとえば、フレームのサーフェスをレンダリングするアプリケーションレイヤを実装することに関係する機能を提供するためのプロセッサ610を含んでもよい。一態様では、プロセッサ610は、たとえば、1つまたは複数の汎用プロセッサ、マルチコアプロセッサ、ASIC、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブル論理デバイスもしくは処理回路を含んでもよい。
【0034】
ディスプレイシステム600はまた、情報(たとえば、予約済みリソース、しきい値、パラメータ、Vsync-app、アプリケーションレイヤなどを示す情報)を維持するためのメモリ620を含んでもよい。様々な実装形態では、メモリ620は、1つまたは複数のコンピュータ実行命令を記憶するコンピュータ可読媒体を含んでもよく、1つまたは複数の命令は、ディスプレイシステム600(たとえば、プロセッサ610、レンダマネージャ630、および/またはディスプレイシステム600の他の態様)に本明細書で説明する機能のいずれかを実行するよう命令する。
【0035】
ディスプレイシステム600は、アプリケーションレイヤのレンダスケジューリングを管理するように構成されるレンダマネージャ630をさらに含んでもよい。レンダマネージャ630は、レンダ同期レシーバ632と、レンダ同期スケジューラ634と、レンダ同期レスポンダ636とを備えてもよい。レンダマネージャ630の詳細を、以下でさらに提供する。
【0036】
プロセッサ、メモリ620、およびレンダ630は、ディスプレイデバイス640または単にディスプレイ640に提示するためにフレームをレンダし、合成するように構成されてもよい。1つのディスプレイ640が示されているが、これは便宜上、容易にするためにすぎない。一般に、ディスプレイシステム600は、1つまたは複数のディスプレイ640を含むことがある。また、各ディスプレイ640は、ディスプレイシステム600の内部または外部(たとえば、HDMI(登録商標)ケーブルによって接続される)にあってもよい。
【0037】
便宜上、ディスプレイシステム600は、本明細書で説明する様々な例に従って構成される場合がある様々なコンポーネントを含むものとして図6に示される。しかしながら、図示されたブロックは異なる設計において異なる機能を有する場合があることが諒解されよう。図6のコンポーネントは、様々な方法で実装される場合がある。いくつかの実装形態では、図6のコンポーネントは、たとえば、1つまたは複数のプロセッサおよび/または(1つまたは複数のプロセッサを含む場合がある)1つまたは複数のASICなどの、1つまたは複数の回路に実装される場合がある。ここで、各回路は、この機能を提供するために回路によって使用される情報または実行可能コードを記憶するための少なくとも1つのメモリコンポーネントを使用し、かつ/または組み込むことがある。たとえば、ブロック610、ブロック620、ならびに(ブロック632、634、および636を含む)ブロック630によって表される機能の一部または全部が、(たとえば、適切なコードの実行によって、かつ/またはプロセッサコンポーネントの適切な構成によって)ディスプレイシステム600のプロセッサおよびメモリコンポーネントによって実施される場合がある。
【0038】
図7は、ディスプレイシステム600などのディスプレイシステムによって実行される例示的な方法のフローチャートを示す。メモリ620は、レンダマネージャ630(レンダ同期レシーバ632、レンダ同期スケジューラ634、およびレンダ同期レスポンダ636を含む)、プロセッサ610(1つまたは複数のプロセッサを含む)、メモリ620などの、ディスプレイシステム600のコンポーネントを動作させるためのコンピュータ実行可能命令を記憶する非一時的コンピュータ可読媒体の一例として見られてもよい。
【0039】
図7では、アプリケーションレイヤによって実行される動作が、偶数番号のブロックで左側に示され、レンダマネージャによって実行される動作が、奇数番号のブロックで右側に示されている。1つのアプリケーションレイヤとレンダマネージャとの間の対話が示されているが、複数のアプリケーションレイヤがあることがあり、各アプリケーションレイヤが図7に示すように対話する場合があることに留意されたい。さらに、同じアプリケーションレイヤが、異なる時間にレンダマネージャと対話する場合がある。
【0040】
ブロック710において、アプリケーションレイヤ(たとえば、プロセッサ610によって実装される)がレンダ同期要求を送信してもよく、ブロック715において、レンダマネージャ630(たとえば、レンダ同期レシーバ632)が、レンダ同期要求を受信してもよい。1つまたは複数のアプリケーションレイヤがあることがあるので、レンダマネージャ630(たとえば、レンダ同期レシーバ632)は、1つまたは複数のレンダ同期要求を受信する場合がある。
【0041】
ブロック725において、レンダマネージャ630(たとえば、レンダ同期スケジューラ634)は、複数のVsync-appからあるVsync-appを選んでもよい。たとえば、図4を参照すると、レンダ同期スケジューラ634は、受信したレンダ同期要求に対して、Vsync-app-120、Vsync-app-60A、またはVsync-app-60Bのいずれか1つを選んでもよい。選択されたVsync-appは、周期的に繰り返すレンダ同期イベントを定義してもよい。たとえば、再び図4を参照すると、Vsync-app-120、Vsync-app-60A、およびVsync-app-60Bの各々が周期的に繰り返すことに留意されたい。
【0042】
1つまたは複数のレンダ同期要求があることがあるので、レンダマネージャ630(たとえば、レンダ同期スケジューラ634)は、1つまたは複数のレンダ同期要求の各々に対してVsync-appを選択する、またはさもなければ決定する場合がある。アプリケーションレイヤの数は、複数のVsync-appのVsync-appの数に一致する必要がないことに留意されたい。たとえば、図5を参照すると、6つのアプリケーションレイヤがあり、複数のVsync-appのうちの1つ(Vsync-app-120、Vsync-app-60A、およびVsync-app-60Bのうちの1つ)が、各アプリケーションレイヤに選択される。
【0043】
再び図7を参照すると、ブロック735において、レンダマネージャ630(たとえば、レンダ同期レスポンダ636)は、レンダ同期要求を送信したアプリケーションレイヤに、レンダ同期応答を送信してもよい。一態様では、レンダ同期応答は、選択されたVsync-appを示すように構成されるVsync-appインジケータを含んでもよい。たとえば、Vsync-appの一部または全部は、タイマー(ソフトウェアまたはハードウェア)として実装されてもよい。そのような事例では、選択されたタイマーは、レンダ同期応答において示されてもよい。別の例では、レンダ同期応答は、選択されたVsync-appの特性を指定するインデックス(たとえば、開始、終了、スリープなど)を表の中に含んでもよい。また別の例では、レンダ同期応答は、選択されたVsync-appの実際の特性を含んでもよい。1つまたは複数の同期要求があることがあるので、レンダマネージャ630(たとえば、レンダ同期レスポンダ636)は、1つまたは複数のレンダ同期応答を送信する場合がある。
【0044】
ブロック740において、アプリケーションレイヤは、レンダ同期応答を受信してもよい。ブロック750において、アプリケーションレイヤは、選択されたVsync-appが発生するごとに、アプリケーションレイヤに関連するサーフェスをレンダリングしてもよい。参照しやすいように、選択されたVsync-appの発生が、アプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定できると言うことができる。たとえば、図4を参照すると、App-layer-1は、HW Vsyncに同期され、したがって、8.33msごとに(1/120Hz)それの関連するサーフェスのレンダリングを開始可能にされる。App-layer-2は、1つおきのHW Vsyncに同期され、したがって、16.67msごとに(1/60Hz)それの関連するサーフェスのレンダリングを開始可能にされる。App-layer-3もまた、1つおきのHW Vsyncに同期され、したがって、16.67msごとに(1/60Hz)、ただしApp-layer-2とはずれて、それの関連するサーフェスのレンダリングを開始可能にされる。
【0045】
レンダ同期スケジューラ634は、1つまたは複数のレンダ同期要求に対してVsync-appを選択するとき、1つまたは複数の要素を考慮に入れてもよい。1つの要素は、ディスプレイシステム600の現在の動作モードであってもよい。現在の動作モードは、複数の動作モードのうちの1つであってもよい。上記のTable 1(表1)は、動作モードの例、たとえば節電、レギュラー、パフォーマンス、ブーストなどを示す。一般に、動作モードの各々が、異なるレベルの性能および/または異なるレベルの電力消費に対応してもよい。一例として、アプリケーションレイヤが異なる周波数で(たとえば、異なるFPSで)レンダリングすることができる場合、レンダ同期スケジューラ634は、ディスプレイシステム600の現在の動作モードが節電であるとき、より低い周波数のVsync-appを選んでもよい。
【0046】
別の要素は、時間的にリソース需要を分散させること、すなわちリソース需要の急上昇を減らすことであってもよい。たとえば、再び図4を参照すると、App-layer-3の各発生は、App-layer-2とはずれていることに留意されたい。これは、App-layer-2およびApp-layer-3のサーフェスレンダリング開始時間が異なることを意味する。これは、HW Vsyncイベントごとに急上昇する代わりに、ディスプレイシステム600のリソースの需要(たとえば、計算需要)がより均等に分散できるので、有利である可能性がある。一態様では、リソース需要が考慮に入れられるとき、2つ以上のアプリケーションレイヤのレンダ開始時間が異なるように、Vsync-appが選択されてもよい。
【0047】
一態様では、アプリケーションレイヤからのレンダ同期要求は、アプリケーションレイヤに関連するサーフェスの2つのレンダ開始時間の間の最小持続時間を示すMinRenderCycleを含んでもよい。たとえば、図4のApp-layer-2は、それのMinRenderCycleを10msと示してもよい。この事例では、連続するVsync-app-120イベント間の持続時間(8.33ms)は、MinRenderCycle持続時間よりも短いので、Vsync-app-120は選択されない。しかしながら、App-layer-2またはApp-layer-3のいずれかが選択されてもよい。
【0048】
アプリケーションレイヤは、異なる時間にレンダ同期要求を送信してもよいことに留意されたい。しかしながら、アプリケーションレイヤに同じVsync-appが選択されることは要求されない。すなわち、Vsync-appの選択は動的とすることができる。たとえば、アプリケーションレイヤが、スクロール可能なウィンドウのサーフェスに関連している場合がある。ユーザインターフェース(UI)が、ウィンドウをスクロールするためのユーザからのコマンドを検出しない場合、ウィンドウは、ほぼ静的である可能性があり、したがってより低い周波数(より低いFPS)のVsync-appが選択されてもよい。しかしながら、UEがユーザからのスクロールアクションを検出する場合、より滑らかなスクロールを可能にするために、より高い周波数のVsync-appが選択されてもよい。
【0049】
概して、レンダ同期レシーバ630が、同じアプリケーションレイヤから第1および第2の時間に第1および第2のレンダ同期要求を受信するとき、レンダ同期スケジューラ634は、互いに異なる第1および第2のVsync-appを選択するように構成されてもよい。一態様では、アプリケーションレイヤは、より高い/より低い周波数のVsync-appのそれの優先を示すために、異なるレンダ同期要求において異なるMinRenderCycleを示してもよい。
【0050】
図8は、図6に示す前述のディスプレイシステム600と統合される場合がある様々な電子デバイスを示す。たとえば、携帯電話デバイス802、ラップトップコンピュータデバイス804、端末デバイス806、ならびに本明細書で説明するように発振検出器135/検出システム130を組み込むセキュリティデバイスが、装置800を含む場合がある。装置800は、センサー、固定センサー、IoT(モノのインターネット)デバイスなどの、スタンドアロンデバイスであってもよい。図8に示すデバイス802、804、806は、例にすぎない。他の電子デバイスもまた、限定はしないが、セキュリティデバイス、モバイルデバイス、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、全地球測位システム(GPS)対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、メータ読取り機器などの固定位置データユニット、通信デバイス、スマートフォン、タブレットコンピュータ、コンピュータ、ウェアラブルデバイス、サーバ、ルータ、自動車車両(たとえば、自律走行車両)内に実装された電子デバイス、またはそれらの任意の組合せを含むデバイス(たとえば、電子デバイス)のグループを含む装置800を特徴とする場合がある。
【0051】
以下は、本開示の実施例の概要を提供する。
【0052】
実施例1: ディスプレイシステムのレンダマネージャの方法であって、1つまたは複数のアプリケーションレイヤから1つまたは複数のレンダ同期要求を受信するステップと、各レンダ同期要求に対して、複数のVsync-appからあるVsync-appを選択するステップであって、複数のVsync-appの各Vsync-appが周期的に繰り返すレンダ同期イベントを定義する、選択するステップと、各レンダ同期要求に対して、そのレンダ同期要求を送信したアプリケーションレイヤにレンダ同期応答を送信するステップであって、レンダ同期応答が、選択されたVsync-appを示すように構成されるVsync-appインジケータを含む、送信するステップとを含み、各アプリケーションレイヤについて、選択されたVsync-appの発生が、そのアプリケーションレイヤに関連するサーフェスのレンダリングが開始可能にされる時間を定義するレンダ開始時間を決定する、方法。
【0053】
実施例2: 複数のVsync-appの各Vsync-appは、複数のVsync-appのうちの少なくとも1つの他のVsync-appとは周波数、位相、または両方が異なる、実施例1に記載の方法。
【0054】
実施例3: 複数のVsync-appの各Vsync-appについて、そのVsync-appのハードウェア(HW)周波数比が正の整数であり、Vsync-appのHW周波数比が、Vsync-appの周波数に対するディスプレイシステムのディスプレイのHW Vsyncの周波数の比である、実施例1から2のいずれかに記載の方法。
【0055】
実施例4: 複数のVsync-appの各Vsync-appについて、そのVsync-appのHW周波数比が2nであり、nは0以上の整数である、実施例3に記載の方法。
【0056】
実施例5: 複数のVsync-appのうちの少なくとも1つのVsync-appのHW周波数比が1である、実施例3から4のいずれかに記載の方法。
【0057】
実施例6: 複数のVsync-appが、第1および第2の周波数を有し、第1および第2の位相を有する少なくとも第1および第2のVsync-appを含み、第1および第2の周波数は同じであるが、第1および第2の位相は異なる、実施例1から5のいずれかに記載の方法。
【0058】
実施例7: 第1および第2の周波数が、HW Vsyncの周波数よりも低い、実施例6に記載の方法。
【0059】
実施例8: 第1のVsync-appの各発生が、HW Vsyncの各第1の発生と一致し、第2のVsync-appの各発生が、HW Vsyncの各第2の発生と一致する、実施例6から7のいずれかに記載の方法。
【0060】
実施例9: レンダ同期スケジューラが、ディスプレイシステムの現在の動作モードに基づいて、少なくとも1つのレンダ同期要求に対してVsync-appを選択するように構成される、実施例1から8のいずれかに記載の方法。
【0061】
実施例10: ディスプレイシステムの現在の動作モードが、複数の動作モードのうちの1つであり、複数の動作モードの各動作モードが、異なる性能のレベルおよび/または異なる電力消費のレベルに対応する、実施例9に記載の方法。
【0062】
実施例11: レンダ同期スケジューラが、2つ以上のアプリケーションレイヤのレンダ開始時間が異なるように、Vsync-appを選択するように構成される、実施例1から10のいずれかに記載の方法。
【0063】
実施例12: レンダ同期レシーバが、同じアプリケーションレイヤから第1および第2の時間に第1および第2のレンダ同期要求を受信するとき、レンダ同期スケジューラが、互いに異なる第1および第2のVsync-appを選択するように構成される、実施例1から11のいずれかに記載の方法。
【0064】
実施例13: 対応する少なくとも1つのアプリケーションレイヤからの少なくとも1つのレンダ同期要求が、対応する少なくとも1つのアプリケーションレイヤに関連するサーフェスの2つのレンダ開始時間の間の最小持続時間を示すMinRenderCycleを含み、レンダ同期スケジューラが、MinRenderCycleに基づいて少なくとも1つのレンダ同期要求に対してVsync-appを選択するように構成される、実施例1から12のいずれかに記載の方法。
【0065】
実施例14: 実施例1から13のいずれかに記載の方法を実行するための少なくとも1つの手段を備える、ディスプレイシステムのレンダマネージャ。
【0066】
実施例15: プロセッサと、プロセッサと結合されたメモリとを備えるディスプレイシステムであって、プロセッサおよびメモリが、実施例1から13のいずれかに記載の方法を実行するように構成される、ディスプレイシステム。
【0067】
実施例16: プロセッサと、プロセッサと結合されたメモリと、メモリに記憶され、実施例1から13のいずれかに記載の方法をディスプレイシステムに実行させるためにプロセッサによって実行可能な命令とを備えるディスプレイシステムのためのコードを記憶する非一時的コンピュータ可読媒体。
【0068】
情報および信号が、様々な異なる技術および技法のいずれかを使用して表される場合があることは、当業者には諒解されよう。たとえば、上記の説明全体にわたって言及される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現される場合がある。
【0069】
さらに、本明細書で開示される態様に関して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装されてもよいことを当業者は諒解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップは、概してそれらの機能に関して上で説明されている。そのような機能がハードウェアとして実装されるのかまたはソフトウェアとして実施されるのかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【0070】
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、DSP、ASIC、FPGAもしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェアコンポーネント、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行される場合がある。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。
【0071】
本明細書で開示する態様に関して説明した方法、シーケンス、および/またはアルゴリズムは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで具現化される場合がある。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体の中に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ることおよび記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体化されてもよい。プロセッサおよび記憶媒体は、ASICの中に存在してもよい。ASICは、ユーザ端末(たとえば、UE)の中に存在してもよい。代替として、プロセッサおよび記憶媒体は、個別のコンポーネントとしてユーザ端末の中に存在してもよい。
【0072】
1つまたは複数の例示的な態様では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶され得るか、またはコンピュータ可読媒体を介して送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用できるとともにコンピュータによってアクセスできる、任意の他の媒体を含むことができる。また、いかなる接続も、コンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ディスク(disk)およびディスク(disc)は、本明細書で使用するとき、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0073】
上記の開示は本開示の例示的な態様を示すが、添付の特許請求の範囲によって定義される本開示の範囲から逸脱することなく、本明細書で様々な変更および修正を行うことができることに留意されたい。本明細書で説明される本開示の態様による方法クレームの機能、ステップおよび/またはアクションは、任意の特定の順序で実行される必要はない。さらに、本開示の要素は、単数形で説明または特許請求されることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
【符号の説明】
【0074】
130 検出システム
135 発振検出器
600 ディスプレイシステム
610 プロセッサ
620 メモリ
630 レンダマネージャ
632 レンダ同期レシーバ
634 レンダ同期スケジューラ
636 レンダ同期レスポンダ
640 ディスプレイ
800 装置
802 携帯電話デバイス
804 ラップトップコンピュータデバイス
806 端末デバイス
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】