(57)【特許請求の範囲】
【請求項１】
複数のアプリケーション（１０４、１０６）を有するコンピュータのプロセッサが実行するコンピュータ実施方法であって、
前記複数のアプリケーション（１０４、１０６）のうちの１つのアプリケーションから、カスタムリフレッシュレートでフレームを提示する要求を受信するステップと、
前記フレームをバッファリングするステップと、
前記カスタムリフレッシュレートおよび前記カスタムリフレッシュレートと異なる標準リフレッシュレートで前記フレームを表示するためのタイミングデータを前記アプリケーションがカスタムモードで前記バッファに追加する各フレームに対して生成し、当該生成したタイミングデータを格納するステップと、
前記アプリケーション（１０４、１０６）のうちの１つから、利用可能なリフレッシュレートに対する要求を受信するステップ（５００）であり、前記カスタムリフレッシュレートが、前記利用可能なリフレッシュレートのうちの１つである、ステップ（５００）と、
前記要求に応答して、前記利用可能なリフレッシュレートを前記アプリケーションに提供するステップ（５０２）と、
前記タイミングデータに従って、前記バッファリングしたフレームをディスプレイに表示するステップであり、前記アプリケーション（１０４、１０６）による前記リフレッシュレートへの調整を前記コンピュータのオペレーティングシステム（１０２）が統合する、ステップと、
を含む、コンピュータ実施方法。
【請求項２】
前記バッファリングしたフレームを前記標準リフレッシュレートで前記ディスプレイに表示するステップ（６０４）をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記カスタムリフレッシュレートの使用を前記アプリケーション（１０４、１０６）のうちの１つが認められているか否かを判定するステップ（５０６）と、
前記カスタムリフレッシュレートの使用を前記アプリケーション（１０４、１０６）が認められているか否かを示す情報を前記アプリケーション（１０４、１０６）に提供するステップと、
をさらに含む、請求項１または２に記載のコンピュータ実施方法。
【請求項４】
前記カスタムリフレッシュレートの使用を前記アプリケーションが認められていない場合、前記アプリケーションが提示するフレームを前記標準リフレッシュレートで表示するステップをさらに含む、請求項３に記載のコンピュータ実施方法。
【請求項５】
表示装置（１０８）全体で一定のフォーマットの利用可能なリフレッシュレートを規定した情報を前記オペレーティングシステム（１０２）が提供する、請求項１〜４のいずれか一項に記載のコンピュータ実施方法。
【請求項６】
前記アプリケーション（１０４、１０６）とは異なる他のアプリケーションが前記標準リフレッシュレートに依存していない場合に、前記オペレーティングシステム（１０２）が前記カスタムリフレッシュレートの使用を前記アプリケーション（１０４、１０６）に認める、請求項１〜５のいずれか一項に記載のコンピュータ実施方法。
【請求項７】
前記オペレーティングシステム（１０２）が、アプリケーション（１０４、１０６）が選択可能な１つまたは複数のカスタムモードと、初期設定としての標準モードとを含む少なくとも２つの再生モードを規定することによって、前記リフレッシュレートの動的調整を管理し、前記カスタムモードが、４８Ｈｚ、５５Ｈｚ、および１２０Ｈｚのうちの１つでの再生を含む、請求項１〜６のいずれか一項に記載のコンピュータ実施方法。
【請求項８】
前記オペレーティングシステム（１０２）が、持続時間に関して、前記利用可能なリフレッシュレートを前記アプリケーション（１０４、１０６）に提供する、請求項１〜７のいずれか一項に記載のコンピュータ実施方法。
【請求項９】
利用可能なリフレッシュレートに対する前記アプリケーション（１０４、１０６）からの前記要求が、持続時間を規定することによって所望のリフレッシュレートを指定し、これに応答して、前記オペレーティングシステム（１０２）が、前記要求の持続時間の前後で利用可能な最も近い持続時間を提供し、前記要求の持続時間が利用できない場合に、前記アプリケーション（１０４、１０６）が、利用可能な持続時間の中から持続時間を選択する、請求項１〜８のいずれか一項に記載のコンピュータ実施方法。
【請求項１０】
カスタムモードを許可または有効とするフルスクリーンモードで前記アプリケーションが表示を行っているか否かおよび前記カスタムモードを禁止または無効とする任意の情報の表示をその他任意のアプリケーションが開始したか否かをステータスモニタが判定する、請求項１〜９のいずれか一項に記載のコンピュータ実施方法。
【請求項１１】
前記アプリケーション以外の任意の理由により開始された標準モードへの遷移の間、前記アプリケーションが前記カスタムリフレッシュレートでフレームを提示し続けている場合は、前記オペレーティングシステム（１０２）が、標準モード表示用のタイミングデータを演算する（５１０）とともに、前記標準リフレッシュレート用のタイミングデータを用いてバッファリングしたフレームを表示する、請求項１〜１０のいずれか一項に記載のコンピュータ実施方法。
【請求項１２】
前記カスタムリフレッシュレートから前記標準リフレッシュレートへの遷移を実行するステップであって、前記標準リフレッシュレートの使用の場合にフレームを表示する回数を指定した標準インターバルを計算するため、前記オペレーティングシステムが、
前記アプリケーションが、標準持続時間を用いてフレームを最後に提示した後、カスタム持続時間を用いて他のフレームを提示するたびに、積算器をゼロに初期化することと、
現在のカスタム持続時間を前記積算器に加算することと、
前記標準リフレッシュレートの持続時間を前記積算器から差し引くことと、
前記積算器の残余が閾値よりも大きい場合に、前記標準インターバルに１フレーム分の表示回数を加算することと、
前記標準リフレッシュレートの持続時間を前記積算器から再度差し引くとともに、別のフレーム分の表示回数を前記標準インターバルに加算することと、
所定の閾値を満足するまでこれらの動作を繰り返すことであり、前記積算器の残余が、最終フレームの所望の再生時間と実際の再生時間との間の積算誤差である、ことと、
を含む動作を行う、ステップを含む、請求項１〜１１のいずれか一項に記載のコンピュータ実施方法。
【請求項１３】
コンピュータ記憶媒体と、
前記コンピュータ記憶媒体に格納されたコンピュータプログラム命令であって、処理装置により処理された場合に、
カスタムリフレッシュレートでフレームを提示する要求をアプリケーションから受信するステップと、
前記フレームをバッファリングするステップと、
前記カスタムリフレッシュレートおよび前記カスタムリフレッシュレートと異なる標準リフレッシュレートで前記フレームを表示するためのタイミングデータを格納するステップと、
前記要求に応答して、利用可能なリフレッシュレートを前記アプリケーションに提供するステップと、
前記タイミングデータに従って、前記バッファリングしたフレームをディスプレイ（１０８）に表示するステップと、
前記処理装置のオペレーティングシステム（１０２）によって、前記処理装置上の複数のアプリケーション（１０４、１０６）による前記利用可能なリフレッシュレートへの調整を統合するステップと、
を含む方法を実行するように前記処理装置に指示するコンピュータプログラム命令と、
を備えた、製造品。
【請求項１４】
メモリ（７０４）と、
前記メモリ（７０４）に接続されたプロセッサ（７０２、７２０）であって、
カスタムリフレッシュレートでフレームを提示する要求をアプリケーション（１０４、１０６）から受信し、
前記フレームをバッファリングし、
前記カスタムリフレッシュレートおよび前記カスタムリフレッシュレートと異なる標準リフレッシュレートで前記フレームを表示するためのタイミングデータを格納し、
利用可能なリフレッシュレートに対する要求を前記アプリケーション（１０４、１０６）から受信し、前記カスタムリフレッシュレートが、前記利用可能なリフレッシュレートのうちの１つであり、
前記要求に応答して、前記利用可能なリフレッシュレートを前記アプリケーションに提供し、
格納された前記タイミングデータに従って、前記バッファリングしたフレームをディスプレイ（１０８）に表示し、
コンピュータのオペレーティングシステム（１０２）によって、コンピュータ装置上の複数のアプリケーション（１０４、１０６）による前記リフレッシュレートへの調整を統合する、
ように構成された前記オペレーティングシステム（１０２）を実装するようにプログラムされたプロセッサ（７０２、７２０）と、
を備えた、コンピュータ。
【請求項１５】
前記オペレーティングシステム（１０２）が、前記バッファリングしたフレームを前記標準リフレッシュレートで前記ディスプレイ（１０８）に表示するようにさらに構成された、請求項１４に記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
背景技術
[0001]  コンピュータディスプレイは一般的に、１秒間に６０回すなわち６０ヘルツ（Ｈｚ）の更新レートでディスプレイ上の画像を更新する。一部のコンピュータディスプレイでは、４８Ｈｚ、５０Ｈｚ、５９．９４Ｈｚ、７２Ｈｚ等、考え得る様々なレートの範囲内でこのレートを設定可能である。
【０００２】
[0002]  コンピュータでビデオを再生する場合は、フレームと称する一連の画像が所望の再生レートまたはフレームレートでコンピュータディスプレイ上に表示される。ビデオのフレームレートは通常、２４Ｈｚ、２５Ｈｚ、２９．９７Ｈｚ等である。ビデオは、映画、アニメ、ゲーム等を由来とすることができる。
【０００３】
[0003]  映画の再生の場合、コンピュータディスプレイは、再生するビデオのフレームレートの整数倍のリフレッシュレートに設定するのが好ましい。そうしなければ、フレームが不均一に繰り返されて、平均フレームレートがディスプレイのリフレッシュレートに一致してしまう。たとえば、リフレッシュレートが６０Ｈｚのディスプレイ上でフレームレートが２４Ｈｚのビデオを再生する場合は、一部のフレームが３回繰り返されるのに、他のフレームは２回しか繰り返されず、フレームレートが６０Ｈｚになってしまう。フレームの不均一な繰り返しは、目に見えるため望ましくない。また、ディスプレイのリフレッシュレートが高くなると、消費する電力も大きくなる。
【０００４】
[0004]  ビデオゲームにも同様の問題がある。ビデオゲームでは、スクリーン上にフレームを表示可能な場合にレンダリングを揃えることによって、テアリングおよびスタッタリングアーチファクトを防止する。このように揃えることにより、ゲームのレンダリングがリフレッシュレートよりも低い速度でのみ可能な場合は、ゲームのレンダラをいくつかの方法で実施することができる。いくつかの実施態様においては、テアリングおよびスタッタリングアーチファクトが発生しても差し支えない。別の選択肢としては、フレームレートの非整数倍でレンダリングを行い、最も近いモニタフレームに対してフレームを一致させる。他の実施態様において、レンダリングは、リフレッシュレートの次の倍数に抑えることができる。たとえば、レンダリングが５５フレーム／秒でしか行えず、リフレッシュレートが６０フレーム／秒である場合、ゲームは、３０フレーム／秒でレンダリングを行う。このパターンを繰り返して、レンダリングが３０フレーム／秒未満でしか行えない場合は、２０フレーム／秒でレンダリングを実行する。ゲームは、５５フレーム／秒でレンダリングを行える場合、リフレッシュレートを６０Ｈｚから５５Ｈｚに変更することによって、３０フレーム／秒ではなく５５フレーム／秒で表示可能となるため、視覚体験がより心地良いものとなる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0005]  この概要では、以下の発明を実施するための形態で詳述する単純な形態の概念を選択的に紹介する。この概要は、特許請求の範囲に係る主題の重要または本質的な特徴を特定するものでもなければ、特許請求の範囲に係る主題の範囲を制限するものでもない。
【０００６】
[0006]  アプリケーションが生成するビデオのフレームレートの整数倍にディスプレイのリフレッシュレートを設定することを当該アプリケーションによって可能とするのが望ましいものの、コンピュータ上の複数のアプリケーションがそれぞれコンピュータディスプレイ上にデータを提示している場合は、アプリケーションによるリフレッシュレートへの調整をオペレーティングシステムが統合する。特に、それぞれが表示するデータを生成している複数のマルチタスクアプリケーションをコンピュータのオペレーティングシステムが管理している場合、コンピュータディスプレイのリフレッシュレートは、１つのアプリケーションに望ましいフレームレートだけでは決まらない。たとえば、表示レートが６０Ｈｚであるという前提に基づいて多くのコンピュータアプリケーションがそれぞれのインターフェースでアニメを作成しているのに対して、ビデオ・ゲームアニメは、様々な再生レートを有する可能性がある。
【０００７】
[0007]  コンピュータディスプレイのリフレッシュレートの動的調整を管理するため、オペレーティングシステムは、アプリケーションが選択可能な１つまたは複数のカスタムモードと、アプリケーションが予想可能なシステム初期設定の標準モードという少なくとも２つの再生モードを規定する。カスタムモードは、４８Ｈｚのビデオ再生に限定されず、たとえば５５Ｈｚのゲーム、たとえば１２０Ｈｚのペイントアプリケーション、および他のレートに対して規定可能である。各カスタムモードでは一般的に、アプリケーションが生成するビデオのフレームレートの整数倍のリフレッシュレートを規定する。カスタムモードは、標準モードよりも高いリフレッシュレートを与えて、視覚品質を改善可能である。また、カスタムモードは、標準モードよりも低いリフレッシュレートを与えて、視覚品質および消費電力の両者を改善可能である。このようなモードは、携帯用コンピュータ、タブレットコンピュータ、スレートコンピュータ、手持ち式コンピュータ、携帯電話等のバッテリ駆動装置に対して特に有用である。ビデオゲームの場合は、このような実施態様によって、システムが一致し得る最も高い一貫したレートでゲームのレンダラがフレームを生成することができる。
【０００８】
[0008]  オペレーティングシステムは、コンピュータで発生する様々なイベントに応答して、カスタムモードと標準モードとの間でシームレスな遷移を行う問題を解決する。
【０００９】
[0009]  一般的に、オペレーティングシステムは、アプリケーションからの要求に応答して、カスタムモードを開始する。オペレーティングシステムは、アプリケーションがカスタムモードを使用可能であるか否かを示す情報とともに応答するこのような要求をアプリケーションが発行できるアプリケーションプログラミングインターフェースを提供する。アプリケーションは、カスタムモードの使用を認められた場合、カスタムモードに基づいて、表示用バッファにビデオデータを生成する。
【００１０】
[0010]  カスタムモードから標準モードへの復帰遷移は、様々なイベントに応答して発生し得る。この遷移は、アプリケーションによる開始またはアプリケーションと非同期のイベントへの応答による開始が可能である。ただし、表示用バッファには、カスタムモードに基づいてアプリケーションが生成したビデオデータが既に存在していてもよい。
【課題を解決するための手段】
【００１１】
[0011]  この問題を解決するため、オペレーティングシステムは、ビデオ再生に用いられるバッファリングを利用する。ビデオデータがバッファに格納されると、選定されたカスタムモードまたは標準モードで各フレームを表示する持続時間を指定したタイミングデータと各フレームが関連付けられる。標準モードへの遷移が発生すると、関連付けられたタイミングデータ用いて、既にバッファにあるビデオデータの標準モードのリフレッシュレートでの再生が行われる。アプリケーションには、標準モードへの復帰遷移がシステムにより通知される。アプリケーションは、このような通知に応答した後、システム表示が標準モードに復帰遷移したという情報とともに、バッファへのデータの書き込みを開始する。
【００１２】
[0012]  以上から、一態様においては、カスタムリフレッシュレートでフレームを提示する要求がアプリケーションから受信される。このフレームは、バッファリングされる。そして、カスタムリフレッシュレートおよび当該カスタムレートと異なる標準リフレッシュレートでフレームを表示するためのタイミングデータが格納される。バッファリングされたフレームは、タイミングデータに従ってディスプレイに表示される。バッファリングされたフレームは、実際に使用するリフレッシュレートのタイミングデータを用いて、標準リフレッシュレートまたはカスタムリフレッシュレートでディスプレイに表示可能である。
【００１３】
[0013]  一実施態様においては、利用可能なリフレッシュレートに対する要求がアプリケーションから受信されるが、上記カスタムリフレッシュレートは、この利用可能なリフレッシュレートのうちの１つである。この要求に応答して、利用可能なリフレッシュレートがアプリケーションに提供される。一実施態様においては、カスタムリフレッシュレートの使用をアプリケーションが認められているか否かが判定される。アプリケーションには、カスタムリフレッシュレートの使用を当該アプリケーションが認められているか否かを示す情報が提供される。カスタムリフレッシュレートの使用をアプリケーションが認められていない場合は、アプリケーションが提示するフレームがカスタムリフレッシュレートで提示されているか否かに関わらず、当該フレームが標準リフレッシュレートで表示される。コンピュータのオペレーティングシステムは、表示装置全体で一定のフォーマットの利用可能なリフレッシュレートを規定した情報を提供可能である。また、オペレーティングシステムは、他のアプリケーションが標準リフレッシュレートに依存していない場合に、カスタムリフレッシュレートの使用をアプリケーションに認めることができる。
【００１４】
[0014]  これら様々な動作は、オペレーティングシステムが管理するコンピュータ上で動作する複数のアプリケーションに応答して、オペレーティングシステムが実行可能である。たとえば、オペレーティングシステムは、カスタムリフレッシュレートでの再生のタイミングデータによりフレームを提示するアプリケーションに応答して、標準リフレッシュレートのタイミングデータを演算することができる。
【００１５】
[0015]  種々態様において、このような技術は、コンピュータ実施方法、コンピュータ、およびコンピュータプログラム製品として具現化可能であるとともに、当該コンピュータのオペレーティングシステムを用いて実施可能である。
【００１６】
[0016]  以下の説明においては、本明細書の一部を成し、この技術の具体例としての実施態様を一例として示す添付の図面を参照する。本開示の範囲から逸脱することなく、他の実施形態が利用可能であるとともに構造を変更可能であることが了解される。
【図面の簡単な説明】
【００１７】
【図１】[0017]リフレッシュレートの動的調整を実施できる例示的なシステムのデータフロー図である。
【図２】[0018]ディスプレイのリフレッシュレートのこのような動的調整に対応したオペレーティングシステムの例示的な一実施態様のデータフロー図である。
【図３】[0019]オペレーティングシステムが保持する例示的なタイミングデータの例示的な一実施態様を示した図である。
【図４】[0020]オペレーティングシステムが保持するタイミングデータの別の例を示した図である。
【図５】[0021]リフレッシュレートをカスタムモードに変更する例示的な一実施態様のフローチャートである。
【図６】[0022]リフレッシュレートをカスタムモードから標準モードに変更する例示的な一実施態様のフローチャートである。
【図７】[0023]このようなシステムのコンポーネントを実施できる例示的なコンピュータのブロック図である。
【発明を実施するための形態】
【００１８】
[0024]  以下では、様々なビデオ再生シナリオに対する適応表示レートに対応した例示的な動作環境を提供する。
【００１９】
[0025]  図１を参照して、コンピュータ１００は、ディスプレイ１０８および図５に関連して後述するような当該コンピュータの他のリソース等、当該コンピュータのリソースに対するアプリケーション１０４および１０６のアクセスを管理するオペレーティングシステム１０２を具備する。ディスプレイは、実施可能なリフレッシュレートを示し、少なくともオペレーティングシステム１０２によりアクセス可能な関連パラメータ１１０を有する。ディスプレイ１０８は、アプリケーション１０４および１０６が表示データ１１４および１１６をそれぞれ提供するオペレーティングシステムにより管理された１つまたは複数のバッファ１１２からデータを読み出す。オペレーティングシステムは一般的に、複数のアプリケーションからの表示データ１１４および１１６を組み合わせて表示用バッファ１１２に格納する方法を管理する。
【００２０】
[0026]  ディスプレイ１０８が対応するリフレッシュレートを使用することにより、対応するオペレーティングシステムのデフォルトのリフレッシュレートである標準モードと、他のリフレッシュレートが利用可能でアプリケーションにより選択可能な１つまたは複数のカスタムモードとが規定される。
【００２１】
[0027]  カスタムモードを選択可能なアプリケーションに対応するため、オペレーティングシステムは、アプリケーションプログラミングインターフェース１２０を提供する。アプリケーションプログラミングインターフェースを介して、アプリケーションは、情報またはオペレーティングシステムによる演算の実行を求める要求１２２を提出可能であり、これに対して、オペレーティングシステムが応答１２８を与える（図１においては便宜上、アプリケーション１０４のみがこの交換を行うものとして示している）。たとえば、アプリケーションは、利用可能なリフレッシュレートを要求することができ、これに対しては、当該利用可能なリフレッシュレートをもってオペレーティングシステムが応答する。
【００２２】
[0028]  また、アプリケーションは、カスタムモードの使用の承認を要求することができ、これに対しては、アプリケーションによるカスタムモードの使用可能性に関する情報をもってオペレーティングシステムが応答する。図２に関連して以下に詳述する通り、カスタムモードの使用をアプリケーションが認められているか否かは、リフレッシュレートのカスタムモードへの変更が他のアプリケーションに影響するか否かによって決まり、これは、標準モードのリフレッシュレートに依存している場合がある。カスタムモードの使用をアプリケーションに認めるには、様々な条件を確立可能である。たとえば、ビデオの再生の場合、フルスクリーン再生モードが使用されている場合は、アプリケーションがカスタムモードを使用できるようにすることが可能である。
【００２３】
[0029]  アプリケーションは、表示用の表示データ１１４、１１６を提出する場合、表示データを使用するモード１２４、１２６も指定する。アプリケーションは、その時点で承認されている場合はカスタムモードを指定可能であり、そうでなければ、標準モードが使用される。
【００２４】
[0030]  アプリケーションがカスタムモードで表示する表示データを提出した後は、オペレーティングシステムがディスプレイを標準モードに戻す起点となるイベントが発生する可能性がある。既にビデオバッファにあるデータを適正に表示するため、アプリケーションは、現在選択されているカスタムモードでのフレームの再生持続時間を指定する各フレームのタイミングデータを規定する。オペレーティングシステムは、標準モードでのフレームの再生持続時間を規定する各フレームのタイミングデータを演算する。標準モードのタイミングデータを利用可能とすることによって、カスタムモードから標準モードへの復帰遷移を円滑に行うことができる。このようなタイミングデータの演算および使用については、以下に詳述する。
【００２５】
[0031]  このような状況を前提に、図２〜図５に関連して、例示的な一実施態様をより詳細に説明する。
【００２６】
[0032]  図２は、ディスプレイのリフレッシュレートのこのような動的調整に対応したオペレーティングシステムの例示的な一実施態様のデータフロー図である。
【００２７】
[0033]  オペレーティングシステムは、所与のディスプレイに関して、当該ディスプレイが対応するリフレッシュレートおよび当該ディスプレイのリフレッシュレートがフレーム間で滑らかに切り替え可能であるか否かを規定したパラメータ２００（たとえば、図１のパラメータ１１０）を保持する。このような情報は、コンピュータを接続可能な各種ディスプレイに提供される。一般的に、各種ディスプレイが異なるためである。ディスプレイに関するこの情報すなわちパラメータ２００をリフレッシュレート計算機２０２が用いることにより、カスタムモードとしてアプリケーションに提供できる利用可能なリフレッシュレート２０４が決定される。一般的に、オペレーティングシステムは、所与のディスプレイに提供されるパラメータ２００の形態に関わらず、利用可能なリフレッシュレートが一定フォーマットでアプリケーションに提示されるようにする。リフレッシュレートの切り替えに際してディスプレイが滑らかに遷移可能であるか否かは、ディスプレイ製造業者による規定、実験的な決定、またはディスプレイに使用したチップセットの識別子等のディスプレイに関する提供情報からの推測が可能である。
【００２８】
[0034]  一実施態様において、オペレーティングシステムは、持続時間に関して、対応するリフレッシュレートをアプリケーションに報告する。単位時間の一例は、１００ナノ秒である。たとえば、６０Ｈｚは、１６６６６７すなわち１６，６６６，７００ナノ秒で表され、４８Ｈｚは、２０８３３３すなわち２０，８３３，３００ナノ秒で表される。アプリケーションプログラミングインターフェースの例示的な一実施態様において、アプリケーションは、持続時間を規定することによって、所望のリフレッシュレートを指定した要求を提供する。これに応答して、オペレーティングシステムは、要求持続時間の前後で利用可能な最も近い持続時間を提供可能であり、当該要求持続時間が利用できない場合に、アプリケーションが利用可能な持続時間の中から持続時間を選択できるようにする。
【００２９】
[0035]  利用可能なリフレッシュレート２０４およびフレームの再生モード２０６の指定をタイミング発生器２０８が用いることにより、再生用にアプリケーションが提出した各フレームのタイミングデータ２１０が生成される。このようなタイミングデータの一例については、図３に関連して以下に詳述する。後述の通り、このタイミングデータをオペレーティングシステムが内部で用いることにより、カスタムモードから標準モードへの遷移中のビデオの再生が管理される。
【００３０】
[0036]  アプリケーションのステータス２１２および利用可能なリフレッシュレート２０４がステータスモニタ２１６に入力されると、ステータスモニタ２１６は、カスタムモードとしての利用可能なリフレッシュレートの使用をアプリケーションが認められているか否かを示す承認データ２１４を提供する。承認データ２１４および利用可能なリフレッシュレート２０４は、オペレーティングシステムＡＰＩを介してアプリケーションに提供可能である。一実施態様において、ステータスモニタは、（カスタムモードを許可または有効とする）フルスクリーンモードでアプリケーションが表示を行っているか否かおよび（カスタムモードを禁止または無効とする）任意の情報の表示をその他任意のアプリケーションが開始したか否かを判定する。
【００３１】
[0037]  次に図３を参照して、オペレーティングシステムが生成するタイミングデータの例示的な一実施態様を以下に説明する。
【００３２】
[0038]  図３の表３００は、アプリケーションがオペレーティングシステムに対して表示用に提示した各フレーム、たとえば３０２についての（一例としての）様々なデータを示している。この例において、カスタムレートは４８Ｈｚ、標準レートは６０Ｈｚであり、表示するコンテンツは２４Ｈｚの画像を含むビデオである。フレームをオペレーティングシステムに提示する場合、アプリケーションは、列３０４および３０６に示すように、フレームを表示する回数を指定したインターバルと、カスタムフレームレートを使用すべきか否かを指定したレートフラグとを提供する。オペレーティングシステムは、これに応じて、標準リフレッシュレートの使用の場合にフレームを表示する回数を指定した標準インターバル３０８と、アプリケーションが提供するカスタムインターバル３１０と、カスタムリフレッシュレートでフレームを表示する持続時間であるカスタム持続時間３１２とを含むタイミングデータを生成して格納する。カスタムリフレッシュレートでの再生において、オペレーティングシステムは、指定の持続時間３１２にわたって指定のインターバル３１０で各フレームを表示する。
【００３３】
[0039]  次に図４を参照して、表４００は、何らかのイベントの後に標準レートへの復帰遷移が発生した場合に起こることを一例として示している。この例は特に、フレーム２の第１の過程の表示とフレーム２の第２の過程の表示との間で遷移が起こった（４３０）場合を示している。図３に示した列（図４では、４０４、４０６、４０８、４１０、および４１２と標識）のほか、図４では、説明のため、フレームの表示時間を列４１４に示している。この例においては、遷移後、リフレッシュレートが標準モードに設定され、各フレームに対して標準インターバルを用いることにより、３から２への引き下げによって２４Ｈｚを基に６０Ｈｚのフレームが生成される。特に、フレーム２の第２の過程が繰り返される。フレーム３の各過程が１回提示されるのに対して、フレーム４の第２の過程は繰り返される。
【００３４】
[0040]  一実施態様において、標準インターバルを演算するため、オペレーティングシステムは、以下の演算を実行可能である。アプリケーションが標準持続時間を用いてフレームを最後に提示した後、カスタム持続時間を用いてフレームを提示するたびに、積算器をゼロに初期化する。現在のカスタム持続時間を積算器に加算する。標準リフレッシュレートの持続時間を差し引くとともに、１つのフレームを標準インターバルに加算する。積算器の残余が閾値よりも大きい場合に、標準リフレッシュレートの持続時間を再度差し引くとともに、別のフレームを標準インターバルに加算する。所定の閾値を満足するまでこのプロセスを繰り返す。積算器の残余は、最終フレームの所望の再生時間と実際の再生時間との間の積算誤差である。このような演算は、アプリケーションがカスタムモードでバッファに追加する各フレームに対して行われ、積算器に現在格納されている残余（積算誤差）に対して、カスタム持続時間が加算される。
【００３５】
[0041]  最終的に、アプリケーションは、４３２に示すように、カスタムモードとしてマーキングされたフレームの提示を停止し、標準モードでのフレームの提示を開始する。この時点以降、オペレーティングシステムは、受信したフレームを標準リフレッシュレートで提示する。
【００３６】
[0042]  次に図５および図６を参照して、標準モードのタイミングデータをオペレーティングシステムが演算する例示的な一実施態様におけるコンピュータの動作を記述したフローチャートを以下に説明する。
【００３７】
[0043]  アプリケーションは、カスタムリフレッシュレートで提示可能なコンテンツを有する場合、５００において、利用可能なリフレッシュレートをオペレーティングシステムに要求する。これに応じて、オペレーティングシステムは、５０２において、利用可能なリフレッシュレートを提供する。
【００３８】
[0044]  アプリケーションまたはユーザが利用可能なリフレッシュレートのうちの１つを選択した場合、アプリケーションは、５０４において、選択したリフレッシュレートの使用の承認を確認する。実施態様に応じて、このような確認には、オペレーティングシステムへの要求の送信、オペレーティングシステムにより設定されたステータス情報のポーリング、またはこのようなリフレッシュレートが使用可能であることを示すオペレーティングシステムからのデータの受信を含むことができる。オペレーティングシステムは、５０６において、カスタムレートの使用をアプリケーションが認められているか否かを判定する。この判定は、たとえばアプリケーションからの要求に応答して、カスタムレートでの使用に対してフラグ付けされたフレームのアプリケーションによる提出に応答して、またはアプリケーションに関するステータス情報の更新として周期的に実行可能である。
【００３９】
[0045]  アプリケーションは、カスタムリフレッシュレートの使用を認められた後、５０８において、カスタムリフレッシュレートで再生するようにフラグ付けされたデータのフレームの送信を開始する。このようなフレームがバッファリングされると、オペレーティングシステムは、５１０において、バッファリングされたフレームごとに、標準モードでフレームを表示するためのタイミングデータを演算する。カスタムモードのタイミングデータは、アプリケーションによる提供、オペレーティングシステムによる読み出し、あるいはオペレーティングシステムによる入手が可能である。標準モードおよびカスタムモードの両者のタイミングデータが格納される。また、アプリケーションがフレームを生成し続け、オペレーティングシステムが生成されたフレームをバッファリングしている場合は、フレームを提出するステップおよびタイミングデータを演算するステップが繰り返される。オペレーティングシステムは、５１２において、カスタムモードでの使用に対してフラグ付けされたバッファリングフレームを用いて表示している場合、リフレッシュレートを変更する。リフレッシュレートは、カスタムリフレッシュレートでの再生が何らかの理由で終了となるまで、カスタムモードのままである。
【００４０】
[0046]  次に図６を参照して、オペレーティングシステムは、６００において、発生してカスタムモードの終了および表示のための標準モードへの復帰遷移に帰結したイベントに関する情報を受信する。アプリケーション自体がカスタムモードを終了した場合、オペレーティングシステムは、６０２に示すように、リフレッシュレートの変更および再生モードの更新のみを行う。カスタムモードの使用を認められたアプリケーションに関するステータス情報についても変更可能である。アプリケーション以外の任意の理由により標準モードへの遷移が発生した場合、アプリケーションは、カスタムリフレッシュレートでフレームを提示し続けることができる。これにより、オペレーティングシステムは、６０４において、標準リフレッシュレートのタイミングデータを用いたバッファリングフレームの表示を開始する。最終的に、アプリケーションは、６０６において、標準リフレッシュレートでのフレームの提示を開始する。この時点で、アプリケーションがカスタムレートでフレームを提供しなくなっていることから、オペレーティングシステムは、標準モード表示用のタイミングデータの演算を停止することができる。
【００４１】
[0047]  以上、例示的な一実施態様を説明したが、次に、このようなシステムのコンポーネントが動作するように設計されたコンピュータを説明する。以下の説明は、このようなシステムを実装できる適当なコンピュータの簡単な概要を与えるものである。コンピュータは、様々な汎用または専用コンピュータハードウェア構成のうちのいずれかとすることができる。適当と考えられる周知のコンピュータの例としては、パーソナルコンピュータ、サーバコンピュータ、手持ち式またはラップトップ装置（たとえば、メディアプレーヤ、ノートブックコンピュータ、携帯電話、携帯情報端末、ボイスレコーダ）、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、ゲームコンソール、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のうちのいずれかを含む分散コンピュータ環境等が挙げられるが、これらに限定されない。
【００４２】
[0048]  図７は、適当なコンピュータの一例を示している。これは、適当なコンピュータの一例に過ぎず、このようなコンピュータの使用または機能の範囲の制限を何ら示唆するものではない。
【００４３】
[0049]  図７を参照して、基本的な構成の例示的なコンピュータ７００は、少なくとも１つの処理ユニット７０２およびメモリ７０４を具備する。コンピュータは、グラフィックス処理ユニット７２０等の複数の処理ユニットおよび／または付加的な共処理ユニットを具備していてもよい。コンピュータの厳密な構成および種類に応じて、メモリ７０４は、揮発性（RAM等）であってもよいし、不揮発性（ROM、フラッシュメモリ等）であってもよし、これら２つの何らかの組み合わせであってもよい。この構成は、図７に破線７０６で示している。
【００４４】
[0050]  また、コンピュータ７００は、付加的な特徴／機能を有していてもよい。たとえば、コンピュータ７００は、磁気または光ディスクまたはテープ等の付加的なストレージ（リムーバブルおよび／または非リムーバブル）を具備していてもよいが、これらに限定されない。このような付加的なストレージは、リムーバブルストレージ７０８および非リムーバブルストレージ７１０として図７に示している。コンピュータ記憶媒体としては、コンピュータプログラム命令、データ構造、プログラムモジュール、または他のデータ等の情報を格納する任意の方法または技術において実施される揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体が挙げられる。メモリ７０４、リムーバブルストレージ７０８、および非リムーバブルストレージ７１０はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（DVD）等の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ等の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ７００によるアクセスが可能なその他任意の媒体等が挙げられるが、これらに限定されない。このような任意のコンピュータ記憶媒体は、コンピュータ７００の一部であってもよい。
【００４５】
[0051]  また、コンピュータ７００は、通信媒体を介した装置の他の装置との通信を可能にする（１つまたは複数の）通信接続７１２を含んでいてもよい。通信媒体は通常、搬送波または他の伝達機構等の変調データ信号にてコンピュータプログラム命令、データ構造、プログラムモジュール、または他のデータを搬送するとともに、任意の情報送達媒体を含む。用語「変調データ信号」は、信号中の情報を符号化するように設定または変更された特性のうちの１つまたは複数を有することにより信号受信装置の構成または状態を変更する信号を意味する。限定ではなく一例として、通信媒体としては、有線ネットワークまたは有線直結等の有線媒体および音響、ＲＦ、赤外線等の無線媒体が挙げられる。通信接続７１２は、ネットワークインターフェース等、通信媒体と連動して、通信媒体上でのデータ送信および通信媒体からのデータ受信を行う装置である。
【００４６】
[0052]  コンピュータ７００は、キーボード、マウス、ペン、カメラ、タッチ入力装置等、（１つまたは複数の）様々な入力装置７１４を有していてもよい。また、ディスプレイ、スピーカ、プリンタ等、（１つまたは複数の）出力装置７１６を具備していてもよい。これらの装置はすべて、当技術分野において周知であるため、ここで詳細に論じる必要はない。様々な入力および出力装置は、マウス、キーボード、リモコン等の入力装置による人工的な制約なく、ユーザが「自然」に装置と相互作用できる任意のインターフェース技術であるナチュラルユーザインターフェース（NUI）を実装可能である。
【００４７】
[0053]  ＮＵＩ法の例としては、発話認識、タッチ・スタイラス認識、スクリーン上およびスクリーン隣接の両者のジェスチャ認識、エアジェスチャ、頭部・視標追跡、音声・発話、視覚、タッチ、ジェスチャ、ならびに人工知能等に依拠したものが挙げられ、タッチセンサ式ディスプレイ、音声・発話認識、目的・目標理解、デプスカメラ（立体カメラシステム、赤外線カメラシステム、および他のカメラシステム、ならびにこれらの組み合わせ等）を用いたモーションジェスチャ検出、加速度計またはジャイロスコープを用いたモーションジェスチャ検出、顔認識、３次元ディスプレイ、頭部、視標、および視線追跡、より自然なインターフェースを提供する没入型拡張現実・仮想現実システムのほか、電界検知電極を用いて脳の活動を検知する技術（EEGおよび関連方法）の使用を含んでいてもよい。
【００４８】
[0054]  コンピュータ上で動作するこのシステムの各コンポーネントは一般的に、プログラムモジュール等、コンピュータが処理するコンピュータ実行可能命令および／またはコンピュータ解釈命令を含む１つまたは複数のコンピュータプログラム等のソフトウェアによって実施される。一般的に、プログラムモジュールとしては、処理ユニットにより処理された場合に、特定のタスクの実行または特定の抽象データ型の実施を処理ユニットに指示するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が挙げられる。このコンピュータシステムは、通信ネットワークを介してリンクされたリモート処理装置がタスクを実行する分散コンピュータ環境において実現されるようになっていてもよい。分散コンピュータ環境においては、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体の両者にプログラムモジュールが配置されていてもよい。
【００４９】
[0055]  上記の代替または追加として、本明細書に記載の機能は、１つまたは複数のハードウェアロジックコンポーネントによって、少なくとも一部が実行可能である。たとえば、使用可能なハードウェアロジックコンポーネントの例示的な種類としては、フィールドプログラマブルゲートアレイ（FPGA）、特定用途向け集積回路（ASIC）、特定用途向け標準品（ASSP）、システムオンチップシステム（SOC）、コンプレックスプログラマブルロジックデバイス（CPLD）等が挙げられるが、これらに限定されない。
【００５０】
[0056]  添付の特許請求の範囲の前文中の用語「製造品」、「方法」、「マシン」、および「組成物」は、米国特許法第１０１条におけるこれら用語の使用により定義された特許性のある主題の範囲内と考えられる主題に特許請求の範囲を限定するものである。
【００５１】
[0057]  本明細書に記載の上記代替実施形態のいずれかまたはすべては、別の混成実施形態を構成するのに望ましい任意の組み合わせで使用するようにしてもよい。添付の特許請求の範囲に規定の主題は、必ずしも上述の特定の実施態様に限定されないことが了解されるものとする。上述の特定の実施態様は、例として開示したに過ぎない。
【図１】
0006314217.tif 000002
【図２】
0006314217.tif 000003
【図３】
0006314217.tif 000004
【図４】
0006314217.tif 000005
【図５】
0006314217.tif 000006
【図６】
0006314217.tif 000007
【図７】
0006314217.tif 000008