(57)【要約】  リフレッシュレート動的制御の手法。一態様では、たとえば、電力、性能、品質、又は他のポリシー等のポリシーにアクセスする。次いで、リフレッシュレートを、定期的にリフレッシュされるディスプレイに対して検出された表示コンテンツアクティビティ及びポリシープリファレンスに応答して動的に選択することができる。別法として、ディスプレイが双安定ディスプレイ、セルフリフレッシュディスプレイ、又は不定期にリフレッシュされる別の種類のディスプレイのうちの１つである場合、ディスプレイをリフレッシュすべきか否かを、検出されたコンテンツアクティビティに基づいて判断することができる。【選択図】  図１０
2008527418.tif 000002
【特許請求の範囲】
【請求項１】
ポリシーにアクセスすること、
ディスプレイが定期的にリフレッシュされる場合、検出された表示コンテンツアクティビティ及び前記ポリシーによって示されるプリファレンスに応答してリフレッシュレートを動的に選択すること、及び
前記ディスプレイが双安定ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記検出された表示コンテンツアクティビティ及び前記ポリシーによって示される前記プリファレンスに基づいて、前記ディスプレイをリフレッシュすべきか否かを判断すること
を含む方法。
【請求項２】
表示コンテンツアクティビティを検出すること、
前記ディスプレイが定期的にリフレッシュされる場合であり、
前記検出された表示コンテンツアクティビティが第１の閾値を超える場合、高リフレッシュレートへの変更を示すこと、及び
前記検出された表示コンテンツアクティビティが第２の閾値よりも低下する場合、低リフレッシュレートへの変更を示すこと
をさらに含む、請求項１に記載の方法。
【請求項３】
表示コンテンツアクティビティを検出すること、及び
前記ディスプレイが双安定ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合であり、
前記検出された表示コンテンツアクティビティが第１の閾値を超え、且つディスプレイが双安定状態ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記ディスプレイをリフレッシュすべきであることを示すこと、及び
前記検出された表示コンテンツアクティビティが第２の閾値よりも低下し、且つ前記ディスプレイが双安定状態ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記ディスプレイをリフレッシュすべきではないことを示すこと
をさらに含む、請求項１に記載の方法。
【請求項４】
前記表示コンテンツアクティビティを検出することは、第１のフレームの少なくともいくつかの表示走査線のコンテンツを第２のフレームの対応する走査線のコンテンツと比較することを含む、請求項２に記載の方法。
【請求項５】
前記第１のフレームの前記少なくともいくつかの表示走査線のコンテンツを前記第２のフレームの前記対応する走査線のコンテンツと比較することは、
前記第１のフレームの前記少なくともいくつかの表示走査線及び前記第２のフレームの前記対応する走査線のハッシュを計算すること、及び
前記第１のフレームの前記少なくともいくつかの表示走査線の前記ハッシュを前記第２のフレームの前記対応する走査線の前記ハッシュと比較すること
を含む、請求項４に記載の方法。
【請求項６】
前記表示コンテンツアクティビティを検出することは、
差が検出された走査線の数のカウントを保持すること、
前記カウントが第３の閾値を超えるか否かを判断すること、及び
前記カウントが前記第３の閾値を超える場合、新規フレームを示すこと、
をさらに含み、
前記検出された表示コンテンツアクティビティが前記第１の閾値を超えるか否かを判断することは、第１の時間期間中の新規フレーム数を求めることを含む、請求項５に記載の方法。
【請求項７】
リフレッシュレートの変更が示される場合、該リフレッシュレートの変更が、視覚的に目障りなアーチファクトが実質的に回避されるようなときに行われるように調整することをさらに含む、請求項２に記載の方法。
【請求項８】
前記表示コンテンツアクティビティを検出することは、
第１のフレームの表示コンテンツの第１のエリアのハッシュを計算すること、
第２のフレームの表示コンテンツの対応するエリアのハッシュを計算すること、及び
前記計算されたハッシュを比較することであって、それによって前記第１のフレームと前記第２のフレームとの差の量が第３の閾値を上回るか否かを判断する、比較すること
を含む、請求項２に記載の方法。
【請求項９】
前記表示コンテンツアクティビティを検出することは、
レンダリング中のエリアの数が第３の閾値を超える場合、
レンダリング中のエリアのサイズが第４の閾値を超える場合、及び
エリア内のレンダリング動作数が第５の閾値を超える場合
のうちの１つが当てはまる場合に新規フレームを示すこと、並びに
或る時間期間中の新規フレームの数が前記第１の閾値を超える場合、前記表示コンテンツアクティビティが前記第１の閾値を超えると判断すること
を含む、請求項２に記載の方法。
【請求項１０】
特定のリフレッシュレート及びリフレッシュモードを含む各リフレッシュ状態間の遷移数を求めること、
前記リフレッシュ状態で費やされた比例時間に基づいて、各リフレッシュレートに関連する重みを計算すること、及び
リフレッシュ状態間の遷移レートが第３の閾値を超える場合、前記遷移状態が第４の閾値よりも低下するまで、最高の重みに関連するリフレッシュ状態からの遷移を遅延させること
をさらに含む、請求項２に記載の方法。
【請求項１１】
表示コンテンツアクティビティを検出する表示コンテンツアクティビティ検出モジュールと、
ポリシーにアクセスし、前記検出された表示コンテンツアクティビティ及び前記ポリシーにより示されるプリファレンスに基づいて、ディスプレイのリフレッシュレートを動的に調整するか否かを判断するリフレッシュレート動的制御モジュールと
を備える、装置。
【請求項１２】
前記検出された表示コンテンツアクティビティが第１の閾値を超える場合、前記リフレッシュレート動的制御モジュールは高リフレッシュレートへの変更を示し、
前記検出された表示コンテンツアクティビティが第２の閾値よりも低下する場合、前記リフレッシュレート動的制御モジュールは低リフレッシュレートへの変更を示す、請求項１１に記載の装置。
【請求項１３】
前記表示コンテンツアクティビティ検出モジュールは、第１のフレームの少なくともいくつかの表示走査線のコンテンツを第２のフレームの対応する走査線のコンテンツと比較する、請求項１２に記載の装置。
【請求項１４】
前記第１のフレームの前記少なくともいくつかの表示走査線のコンテンツを前記第２のフレームの前記対応する走査線のコンテンツと比較することは、
前記第１のフレームの前記少なくともいくつかの表示走査線及び前記第２のフレームの前記対応する走査線のハッシュを計算すること、及び
前記第１のフレームの前記少なくともいくつかの表示走査線のハッシュを前記第２のフレームの前記対応する走査線のハッシュと比較すること
を含む、請求項１３に記載の装置。
【請求項１５】
前記表示コンテンツアクティビティ検出モジュールは、
差が検出された走査線の数のカウントを保持すること、
前記カウントが第３の閾値を超えるか否かを判断すること、及び
前記カウントが前記第３の閾値を超える場合、新規フレームを示すこと、
をさらに行い、
前記検出された表示コンテンツアクティビティが前記第１の閾値を超えるか否かを判断することは、第１の時間期間中の新規フレーム数を求めることを含む、請求項１４に記載の装置。
【請求項１６】
リフレッシュレートの変更が示される場合、前記リフレッシュレート動的制御モジュールは、前記リフレッシュレートの変更が、視覚的に目障りなアーチファクトが実質的に回避されるようなときに行われるように調整することをさらに行う、請求項１２に記載の装置。
【請求項１７】
前記表示コンテンツアクティビティ検出モジュールは、
レンダリング中のエリアの数が第３の閾値を超える場合、
レンダリング中のエリアのサイズが第４の閾値を超える場合、及び
エリア内のレンダリング動作数が第５の閾値を超える場合、
のうちの１つが当てはまる場合に新規フレームを示すこと、並びに
或る時間期間中の新規フレームの数が前記第１の閾値を超える場合、前記表示コンテンツアクティビティが前記第１の閾値を超えると判断すること
を行う、請求項１２に記載の装置。
【請求項１８】
前記リフレッシュレート動的制御モジュールは、
各リフレッシュ状態間の遷移数を求めること、
前記リフレッシュレートで費やされた比例時間に基づいて、各リフレッシュレートに関連する重みを計算すること、及び
リフレッシュレート間の遷移レートが第３の閾値を超える場合、前記遷移状態が第４の閾値よりも低下するまで、最高の重みに関連するリフレッシュ状態からの遷移を遅延させること
をさらに行う、請求項１２に記載の装置。
【請求項１９】
情報を伝達するバスと、
前記バスに結合され、グラフィックスコンテンツを表示するディスプレイと、
前記バスに結合され、無線通信を可能にするアンテナと、
前記バスに結合され、命令を処理するプロセッサと、
前記バスに結合され、グラフィックス制御及びディスプレイ制御を提供するグラフィックス制御モジュールと、
表示コンテンツアクティビティを検出する表示コンテンツアクティビティ検出モジュールと、
該システムに関連するポリシーにアクセスし、前記検出された表示コンテンツアクティビティ及び前記ポリシーによって示される品質、性能、及び節電のうちの１つに対するプリファレンスに基づいて、前記ディスプレイのリフレッシュレート及び前記ディスプレイをリフレッシュすべきか否かのうちの一方を判断するリフレッシュ制御モジュールと
を備える、システム。
【請求項２０】
前記表示コンテンツアクティビティ検出モジュール及び前記リフレッシュ制御モジュールのうちの少なくとも一方を記憶するマシンアクセス可能な記憶媒体をさらに備える、請求項１９に記載のシステム。
【請求項２１】
前記ディスプレイが定期的にリフレッシュされる場合であり、
前記検出された表示コンテンツアクティビティが第１の閾値を超える場合、前記リフレッシュ制御モジュールは、高リフレッシュレートへの変更を示し、
前記検出された表示コンテンツアクティビティが第２の閾値よりも低下する場合、前記リフレッシュ制御モジュールは低リフレッシュレートへの変更を示す、請求項１９に記載のシステム。
【請求項２２】
前記ディスプレイが双安定ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合であり、
前記検出された表示コンテンツアクティビティが第１の閾値を超え、且つディスプレイが双安定状態ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記リフレッシュ制御モジュールは前記ディスプレイをリフレッシュすべきであることを示し、
前記検出された表示コンテンツアクティビティが第２の閾値よりも低下し、且つ前記ディスプレイが双安定状態ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記リフレッシュ制御モジュールは前記ディスプレイをリフレッシュすべきではないことを示す、請求項１９に記載のシステム。
【請求項２３】
前記表示コンテンツアクティビティ検出モジュールは、
第１のフレームの少なくともいくつかの表示走査線のコンテンツを第２のフレームの対応する走査線のコンテンツと比較する、請求項２１に記載のシステム。
【請求項２４】
前記第１のフレームの前記少なくともいくつかの表示走査線のコンテンツを前記第２のフレームの前記対応する走査線のコンテンツと比較することは、
前記第１のフレームの前記少なくともいくつかの表示走査線及び前記第２のフレームの前記対応する走査線のハッシュを計算すること、及び
前記第１のフレームの前記少なくともいくつかの表示走査線のハッシュを前記第２のフレームの前記対応する走査線のハッシュと比較すること
を含む、請求項２３に記載のシステム。
【請求項２５】
前記表示コンテンツアクティビティを検出することは、
差が検出された走査線の数のカウントを保持すること、
前記カウントが第３の閾値を超えるか否かを判断すること、及び
前記カウントが前記第３の閾値を超える場合、新規フレームを示すこと、
をさらに含み、
前記検出された表示コンテンツアクティビティが前記第１の閾値を超えるか否かを判断することは、第１の時間期間中の新規フレーム数を求めることを含む、請求項２４に記載のシステム。
【請求項２６】
前記表示コンテンツアクティビティ検出モジュールは、
レンダリング中のエリアの数が第３の閾値を超える場合、
レンダリング中のエリアのサイズが第４の閾値を超える場合、及び
エリア内のレンダリング動作数が第５の閾値を超える場合、
のうちの１つが当てはまる場合に新規フレームを示すこと、並びに
或る時間期間中の新規フレームの数が前記第１の閾値を超える場合、前記表示コンテンツアクティビティが前記第１の閾値を超えると判断すること
を行う、請求項２１に記載のシステム。
【請求項２７】
マシンアクセス可能媒体であって、
マシンによりアクセスされると、該マシンに、
ポリシーにアクセスすること、
ディスプレイが定期的にリフレッシュされる場合、検出された表示コンテンツアクティビティ及び前記ポリシーによって示されるプリファレンスに応答してリフレッシュレートを動的に選択すること、及び
前記ディスプレイが双安定ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記検出された表示コンテンツアクティビティ及び前記ポリシーによって示される前記プリファレンスに基づいて、前記ディスプレイをリフレッシュすべきか否かを判断すること
を実行させる情報を記憶している、マシンアクセス可能媒体。
【請求項２８】
マシンによりアクセスされると、該マシンに、
表示コンテンツアクティビティを検出すること、
前記ディスプレイが定期的にリフレッシュされる場合であり、
前記検出された表示コンテンツアクティビティが第１の閾値を超える場合、高リフレッシュレートへの変更を示すこと、及び
前記検出された表示コンテンツアクティビティが第２の閾値よりも低下する場合、低リフレッシュレートへの変更を示すこと
を実行させる情報をさらに記憶している、請求項２７に記載のマシンアクセス可能媒体。
【請求項２９】
マシンによりアクセスされると、該マシンに、
表示コンテンツアクティビティを検出すること、
前記ディスプレイが双安定ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合であり、
前記検出された表示コンテンツアクティビティが第１の閾値を超え、且つディスプレイが双安定状態ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記ディスプレイをリフレッシュすべきであることを示すこと、及び
前記検出された表示コンテンツアクティビティが第２の閾値よりも低下し、且つ前記ディスプレイが双安定状態ディスプレイ及びセルフリフレッシュディスプレイのうちの一方である場合、前記ディスプレイをリフレッシュすべきではないことを示すこと
を実行させる情報をさらに記憶している、請求項２７に記載のマシンアクセス可能媒体。
【請求項３０】
前記表示コンテンツアクティビティを検出することは、第１のフレームの少なくともいくつかの表示走査線のコンテンツを第２のフレームの対応する走査線のコンテンツと比較することを含む、請求項２８に記載のマシンアクセス可能媒体。
【請求項３１】
前記第１のフレームの前記少なくともいくつかの表示走査線のコンテンツを前記第２のフレームの前記対応する走査線のコンテンツと比較することは、
前記第１のフレームの前記少なくともいくつかの表示走査線及び前記第２のフレームの前記対応する走査線のハッシュを計算すること、及び
前記第１のフレームの前記少なくともいくつかの表示走査線のハッシュを前記第２のフレームの前記対応する走査線のハッシュと比較すること
を含む、請求項３０に記載のマシンアクセス可能媒体。
【請求項３２】
前記表示コンテンツアクティビティを検出することは、
差が検出された走査線の数のカウントを保持すること、
前記カウントが第３の閾値を超えるか否かを判断すること、及び
前記カウントが前記第３の閾値を超える場合、新規フレームを示すこと、
をさらに含み、
前記検出された表示コンテンツアクティビティが前記第１の閾値を超えるか否かを判断することは、第１の時間期間中の新規フレーム数を求めることを含む、請求項３１に記載のマシンアクセス可能媒体。
【請求項３３】
前記表示コンテンツアクティビティを検出することは、
レンダリング中のエリアの数が第３の閾値を超える場合、
レンダリング中のエリアのサイズが第４の閾値を超える場合、及び
エリア内のレンダリング動作数が第５の閾値を超える場合、
のうちの１つが当てはまる場合に新規フレームを示すこと、並びに
或る時間期間中の新規フレームの数が前記第１の閾値を超える場合、前記表示コンテンツアクティビティが前記第１の閾値を超えると判断すること
を含む、請求項２８に記載のマシンアクセス可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一実施の形態はディスプレイの分野に関し、特に表示リフレッシュの制御に関する。
【背景技術】
【０００２】
大半の現在のＬＣＤディスプレイは、能動ピクセル素子の応答時間に固有の限度を有する。このようなディスプレイは通常、４０Ｈｚよりも高速で黒からフルカラーに切り替わることができない。したがって、リフレッシュレートが制限されることによる影響は、他の種類のディスプレイ技術よりも目立たない。
【０００３】
これが当てはまる場合、大半のノート型コンピューティングシステムは常にリフレッシュレート６０Ｈｚ、場合によっては５０Ｈｚで動作する。こういったリフレッシュレートは表示パネル、グラフィックスコントローラ、及び／又はグラフィックスメモリ（又は統合グラフィックスの場合はシステムメモリ）での不必要な電力消費に繋がる恐れがある。
【０００４】
本発明を、同様の参照が同様の要素を示す添付図面の図に限定ではなく例として示す。
【発明を実施するための最良の形態】
【０００５】
表示リフレッシュを制御する方法、装置、及びシステムを記載する。以下の説明において、特定のソフトウェアモジュール、構成要素、システム、ディスプレイタイプ等を例示のために述べる。しかし、他の実施形態が、たとえば他の種類のソフトウェアモジュール、構成要素、システム、及び／又はディスプレイタイプに適用可能なことが理解されよう。
【０００６】
「一実施形態」、「実施形態例」、「各種実施形態」等への言及は、そのように説明される本発明の実施形態（複数可）が特定の特徴、構造、又は特性を含むことができるが、全ての実施形態が必ずしも特定の特徴、構造、又は特性を備える必要があるわけではないことを示す。さらに、繰り返し使用される「一実施形態では」なる語句は、必ずしも同じ実施形態を指すとは限らないが、同じ実施形態を指す場合もある。
【０００７】
本発明の実施形態は、ハードウェア、ファームウェア、及びソフトウェアのうちの１つ又はそれらの組み合わせで実施することができる。本発明の実施形態は、その全体又は部分を、マシン可読媒体に記憶され、少なくとも１つのプロセッサにより読み取られて実行され、本明細書において述べる動作を実行することができる命令として実施することもできる。マシン可読媒体は、マシン（たとえば、コンピュータ）が読み取り可能な形態で情報を記憶又は伝送する任意の機構を含むことができる。たとえば、マシン可読媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、電子形態、光学形態、音響形態、又は他の形態の伝搬信号（たとえば、搬送波、赤外線信号、デジタル信号等）、及び他を含むことができる。
【０００８】
ディスプレイを含むシステムの電子システム電力は、表示リフレッシュ周波数による影響を受け得る。リフレッシュ周波数が低いと、それに対応して、様々な理由によりシステム全体の電力を低減するという影響を有し得る。たとえば、薄膜トランジスタ（ＴＦＴ）液晶ディスプレイ（ＬＣＤ）装置が使用される場合、このＬＣＤ装置は、表示リフレッシュレートに比例する切り替えレートで蓄電する能動ピクセルトランジスタを有する。さらに、表示インタフェース（たとえば、ＬＶＤＳ（低電圧差動信号伝送）又はＴＭＤＳ（遷移最小化差動信号伝送）へのグラフィックスコントローラは、表示リフレッシュレートに比例するレートで信号伝送する。
【０００９】
さらに、グラフィックスコントローラは、ディスプレイブレンディングパイプラインでのピクセル又はグラフィックスメモリからの画像ピクセルを表示リフレッシュレートに比例するレートで処理する。同様に、グラフィックスメモリは、画像ピクセルデータをメモリデータバスに、表示リフレッシュレートに比例するレートで駆動する。（シームレスで裂け目のない視覚的体験を提供するために）コンテンツを表示リフレッシュレートに同期させるアプリケーションは通常、コンテンツを処理し、グラフィックスコントローラに、コンテンツを表示リフレッシュレートに比例するレートでレンダリングするように命令する。
【００１０】
使用モデルによっては（例としては、たとえばビデオ又は３Ｄ）、視覚的品質を高めるためにより高いコンテンツ表示レートが望ましい。このような使用モデルの場合、システムポリシーを通して表示されるように、可能又は望ましい場合には常に、システムが最高品質を実現しようとすべきであるものと予想される。対照的に、使用モデルによっては、バッテリの寿命が視覚的品質よりも重要なものもある。このシナリオの場合、リフレッシュレートを低くすることが、グラフィックスドライバにとって望ましい省電力法であり得る。
【００１１】
一実施形態では、図１を参照すると、ブロック１０５においてポリシーにアクセスする。ポリシーは、たとえば、特定の使用モデル又は１組の動作条件に関連する１組のポリシーのうちの１つであってもよく、動作条件及び／又は他のパラメータの制御に使用できる、たとえば性能、品質、節電、及び／又はバッテリ寿命の延長等のプリファレンスを指定することができる。ブロック１１０において、ポリシープリファレンス（複数可）が決定される。ブロック１１５において、連続リフレッシュするディスプレイの場合、リフレッシュレートを、検出された表示コンテンツアクティビティ及びポリシープリファレンス（複数可）に応答して動的に選択することができる。たとえば、ポリシープリファレンスが節電又はバッテリ寿命である場合、表示リフレッシュレートは下方調整される傾向があり得る。しかし、ポリシープリファレンスが表示品質の場合、表示リフレッシュレートは上方調整される傾向があり得る。不定期にリフレッシュするディスプレイの場合、検出されたコンテンツアクティビティがコンテンツアクティビティ閾値を上回る、又は下回ることに応答してリフレッシュを開始することができる。これらの実施形態及び他の実施形態のさらなる詳細を以下の説明において提供する。
【００１２】
図２は、表示リフレッシュレートを動的に調整する１つ又は複数の実施形態の手法を有利に実施できる電子システム例２００のブロック図である。図２のシステム例はラップトップコンピューティングシステム又はノート型コンピューティングシステムであるが、本明細書において述べるリフレッシュレート管理手法の１つ又は複数が、関連する表示装置を有する、多くの異なる種類の電子システムに適用可能なことが理解されよう。このようなシステムの例としては、個人情報端末（ＰＤＡ）、パームトップコンピュータ、ノート型コンピュータ、タブレットコンピュータ、フラットパネルディスプレイを使用するデスクトップコンピュータ、無線電話、キオスクディスプレイ等が含まれるがこれらに限定されない。
【００１３】
コンピューティングシステム２００は、バス２０５に結合されるプロセッサ２０２を備え、バス２０５は、たとえば、ポイントツーポイントバス、マルチドロップバス、スイッチドファブリック又は別種のバスであってもよい。プロセッサ２０２は、少なくとも、システム２００の１つ又は複数の記憶装置に記憶可能な命令、又はシステム２００が別の様式でアクセス可能な命令を実行する第１の実行ユニット２０７を備える。プロセッサ２０２は、シングルコアプロセッサであってもよく、又はマルチコアプロセッサであってもよい。
【００１４】
一実施形態では、プロセッサ２０２は、たとえば、カリフォルニア州サンタクララ所在のIntel（登録商標）Corporationから入手可能なＰｅｎｔｉｕｍ−Ｍファミリプロセッサからのプロセッサ等の、Ｐｅｎｔｉｕｍ（登録商標）ファミリのプロセッサからのプロセッサであることができる。別法として、異なる種類のプロセッサ及び／又は異なるソースからの、且つ／又は異なるアーキテクチャを使用するプロセッサを、上記プロセッサに代えて、又は上記プロセッサに加えて使用することができる。各種実施形態に使用可能な他の種類のプロセッサとしては、たとえば、デジタル信号プロセッサ、埋め込みプロセッサ、又はグラフィックスプロセッサが含まれる。
【００１５】
メモリコントローラ２１０、すなわちノースブリッジもバス２０５に結合される。メモリコントローラ２１０は、いくつかの実施形態では、統合グラフィックス制御機能を備えても備えなくてもよく、メモリサブシステム２１５に結合される。メモリサブシステム２１５は、プロセッサ２０２又は電子システム２００に含まれる別の装置により実行されるデータ及び命令を記憶するために提供される。一実施形態では、メモリサブシステム２１５はダイナミックランダムアクセスメモリ(ＤＲＡＭ）を含むことができる。しかし、メモリサブシステム２１５は、ＤＲＡＭに加えて、又はＤＲＡＭに代えて他の種類のメモリを使用して実施することもできる。いくつかの実施形態では、メモリサブシステム２１５はまた、ビデオＢＩＯＳテーブル（ＶＢＴ）２１９を含むＢＩＯＳ（基本入出力システム）ＲＯＭ２１７を含んでもよい。図２に示していない追加の、且つ／又は異なる装置をメモリサブシステム２１５内に含んでもよい。
【００１６】
メモリコントローラ２１０には、バス２４３を介して、入出力装置へのインタフェースを提供する入出力（Ｉ／Ｏ）コントローラ２４５、すなわちサウスブリッジも結合される。入出力コントローラ２４５は、たとえば、オレゴン州ポートランド所在のPCI Special Interest Groupにより公布されたＲｅｖｉｓｉｏｎ  ２．１(ＰＣＩ）又は１．０ａ（ＰＣＩ  Ｅｘｐｒｅｓｓ）等のＰＣＩ仕様に従って周辺機器相互接続（ＰＣＩ（商標））バス又はＰＣＩ  Ｅｘｐｒｅｓｓ（商標）バス２４７に結合することができる。他の実施形態では、1つ又は複数の異なる種類のバス、たとえば、アクセラレイテッドグラフィックスポート（ＡＧＰ）仕様Ｒｅｖｉｓｉｏｎ３．０又は別のバージョンに準拠したＡＧＰバス等を、これに加えて、又はこれに代えて入出力コントローラ２４５に結合してもよく、又はバス２４７は別の種類のバスであってもよい。
【００１７】
一実施形態では、入出力バス２４７に、音声装置２５０及び大容量記憶装置２５３、たとえばディスクドライブ、コンパクトディスク(ＣＤ）ドライブ、及び／又は電子システム２００がネットワークを介して大容量記憶装置にアクセスできるようにするネットワーク装置等が結合される。関連する記憶媒体（複数可）２５５が大容量記憶装置２５３に結合されて、システム２００がアクセスするソフトウェア及び／又は他の情報の記憶を提供する。
【００１８】
オペレーティングシステム（図示せず）並びに他のシステム及び／又はアプリケーションソフトウェアに加えて、たとえば、記憶媒体２５５は、以下により詳細に説明するグラフィックス機能を提供するグラフィックススタック２３７を記憶することができる。ディスプレイドライバ２４１はグラフィックススタック２３７に含まれてもよい。一実施形態では、ディスプレイドライバ２４１は、少なくとも、以下により詳細に説明するリフレッシュレート制御モジュール２５７及びポリシーモジュール２５９を含むか、これらと協働する。ポリシーモジュール２５９を、図２にディスプレイドライバ２４１の一部として示すが、ポリシーモジュール２５９はシステム２００内の別のモジュールにより提供されるか、そこに記憶されてもよく、又はシステム２００によってアクセス可能であってもよいことが理解されよう。他の実施形態では、他のモジュールも含めてもよい。
【００１９】
システム２００は、無線通信を提供する無線ローカルエリアネットワーク（ＬＡＮ）モジュール２６０及び／又はアンテナ２６１を含むこともできる。バッテリ又は他の代替の電源アダプタ２６３を提供して、システム２００に従来の交流電流（ＡＣ）電源以外で給電できるようにすることもできる。
【００２０】
引き続き図２を参照すると、ディスプレイ２３５は、グラフィックス／メモリコントローラ２１０に結合することができる。一実施形態では、ディスプレイ２３５は、ローカルフラットパネル（ＬＦＰ）ディスプレイ、たとえば薄膜トランジスタ（ＴＦＴ）液晶ディスプレイ（ＬＣＤ）等である。他の実施形態では、ディスプレイ２３５は、異なる種類のディスプレイ、たとえば陰極線管（ＣＲＴ）ディスプレイ又はデジタルビジュアルインタフェース（ＤＶＩ）ディスプレイ等、又は異なる技術を使用するＬＦＰディスプレイであってもよい。
【００２１】
メモリコントローラ２１０は、グラフィックス制御機能をさらに含むことができる。グラフィックス制御機能の一環として、タイミング発生器２１９、ディスプレイブレンダ２２１、及びエンコーダ２２３が設けられてもよい。フレームバッファ２２９をグラフィックス／メモリコントローラに結合することもできる。
【００２２】
いくつかの実施形態では、ＬＣＤディスプレイ２３５の動作には、パルス幅変調器（ＰＷＭ）２２５、高電圧インバータ２３１、及び冷陰極蛍光灯（ＣＣＦＬ）バックライト２３９も関連付けることができる。しかし、他の実施形態は、エレクトロルミネッセンスパネル（ＥＬＰ）、白熱灯光、又は発光ダイオード（ＬＥＤ）を含むがこれらに限定されない、バックライトを提供する代替の方法を含んでもよく、又はバックライトを含まなくてもよい。
【００２３】
いくつかの実施形態では、直接駆動ＤＣ電流を使用する白熱灯光バックライトの場合のようにＰＷＭ又は高電圧インバータを必要としない場合もあれば、又はＬＥＤバックライトの場合のようにＰＷＭを備えてインバータを備えない場合もある。各種実施態様では、上記要素のうちの２つ以上を単一の装置内に統合してもよく、又は他の実施形態では異なる様式で統合してもよい。たとえば、パルス幅変調器２２５とグラフィクスコントローラとを、スタンドアロン構成要素に統合してもよく、又はインバータ２３１に統合してもよい。このような実施形態では、ＰＷＭ２２５／インバータ２３１は、ソフトウェアにより駆動され、グラフィックス・メモリ制御ハブ２１０又はＩ／Ｏ制御ハブ２４０のいずれかに結合することができる。さらに、グラフィックス関連要素の１つ又は複数の機能は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの何らかの組み合わせ、又はシステム２００の別の構成要素で実施することができる。
【００２４】
フレームバッファ２２９、タイミング発生器２１９、ディスプレイブレンダ２２１、及びエンコーダ２２３は、協働してパネルディスプレイ２３５のパネル２３６を駆動することができる。フレームバッファ２２９は、メモリ（図示せず）を含むことができ、パネルディスプレイ２３５により表示される１つ又は複数のグラフィックスデータフレームを記憶するように構成することができる。
【００２５】
タイミング発生器２１９は、パネル２３６のリフレッシュレート（たとえば、リフレッシュ周波数）を制御するリフレッシュ信号を生成するように構成することができる。タイミング発生器２１９は、ディスプレイドライバ２４１のおそらくリフレッシュレート動的制御モジュール２５７からの制御信号に応答してリフレッシュ信号を生成することができる。いくつかの実施態様では、タイミング発生器２１９により生成されるリフレッシュ信号は、パネル２３６を、通常（たとえば、非節電）動作中の基準リフレッシュレート（たとえば、６０Ｈｚ）でリフレッシュさせることができる。節電動作中、タイミング発生器２１９は、以下により詳細に説明するようにパネルディスプレイ１１０のリフレッシュレートを下げることができる（たとえば、５０Ｈｚ、４０Ｈｚ、３０Ｈｚ等に）。
【００２６】
ディスプレイブレンダ２２１は、グラフィックスデータ（たとえば、ピクセル）をグラフィックスメモリのフレームバッファ２２９から、タイミング発生器２１９からのリフレッシュ信号によって指定されるリフレッシュレートで読み取ることができる。ディスプレイブレンダ２２１は、このグラフィックスデータ（たとえば、表示平面、スプライト、カーソル、及びオーバーレイ）をブレンドすることができるとともに、グラフィックスデータをガンマ補正することができる。ディスプレイブレンダ２２１はまた、ブレンドされた表示データをリフレッシュレートで出力することもできる。一実施態様では、ディスプレイブレンダ２２１は、エンコーダ２２３に送信する前にグラフィックスデータを記憶する先入れ先出し（ＦＩＦＯ）バッファを備えることができる。
【００２７】
エンコーダ２２３は、ディスプレイブレンダ２２１により出力されたグラフィックスデータを、パネル２３６での表示に向けて符号化することができる。パネル２３６がアナログディスプレイである場合、エンコーダ２２３は、低電圧差動信号伝送（ＬＶＤＳ）方式を使用してパネル２３６を駆動することができる。他の実施態様では、パネル２３６がデジタルディスプレイである場合、エンコーダ２２３は、この種類のディスプレイに適した別の符号化方式を使用することができる。エンコーダ２２３は、ディスプレイブレンダ２２１により出力されるレートでデータを受け取ることができるため、エンコーダはタイミング発生器２１９からのリフレッシュ信号により指定されるリフレッシュレートでパネル２３６をリフレッシュすることができる。
【００２８】
各種実施形態によるシステムが、必ずしも図２を参照して説明したすべての要素を含む必要はなく、且つ／又は図２に示さない要素を含んでもよいことを理解されよう。たとえば、いくつかの実施形態では、周辺光センサ（ＡＬＳ）２７９ならびに関連する回路及び／又はソフトウェアを含むことができる。
【００２９】
一実施形態では、上述したように、たとえばポリシーモジュール２５９によって提供されるポリシーが、バッテリ寿命の延長又は別の様式での消費電力の低減に対するプリファレンスを示す場合、リフレッシュレートを、たとえばコンテンツアクティビティ検出モジュール２８５によって検出できる、検出されたコンテンツアクティビティに応じて動的に調整することができる。
【００３０】
図３は、表示リフレッシュレートを動的に制御する一実施形態の方法を示す流れ図である。ブロック３０５において、たとえば、ＡＣからＤＣ（バッテリ）への電源の変更が検出されたこと、或る期間、システムが不活性であったことが検出されたこと、及び／又は別の状況の発生が検出されたことに応答して、ブロック３１０において、ポリシープリファレンスにアクセスする。ポリシーは、ディスプレイ制御に特に関連する１つ又は複数のポリシーであってもよく、又は、たとえば、消費電力、性能、品質、又はバッテリ寿命に関連するシステム全体ポリシーの一部であってもよい。
【００３１】
たとえば、図２のシステムの場合、対象となるポリシー２５９をソフトウェア又はファームウェアに記憶してもよく、且つ／又はグラフィックススタック又は１つ若しくは複数の他のモジュールの一部として提供することができる。リフレッシュレート動的制御モジュール２５７は、ポリシー２５９にアクセス可能であり、本明細書において述べるリフレッシュレート制御機能のうちの１つ又は複数を実行することができる。
【００３２】
一実施形態では、ポリシーは、システム製造業者により、又はオペレーティングシステムを介して設定することができる。別の実施形態では、表示リフレッシュをどのように制御できるかを決めるポリシー（複数可）は、システム２００により実行中のアプリケーション（複数可）に従って、又はユーザプリファレンスに従って変化することができ、これはユーザインタフェース２８３を通して指定することができる。ユーザインタフェース２８３はたとえば、オペレーティングシステムの一部として、又は他のソフトウェア（図示せず）として提供することができる。他の実施形態では、対象となるポリシー（複数可）は異なる様式で提供し、且つ／又は設定することもできる。
【００３３】
再び図３を参照すると、ポリシー（複数可）がたとえば、性能及び／又は表示品質に対するプリファレンスを示す場合（ブロック３１５）、ブロック３２０において、定期的にリフレッシュされるディスプレイの場合、利用可能なリフレッシュレートのうちの高い方（たとえば、典型的なラップトップディスプレイの場合は６０Ｈｚ又は５０Ｈｚ）を選択することができる。それに代えて、ブロック３２５において、バッテリ寿命の延長に対するプリファレンスが示される場合、ブロック３３０において、高い方のリフレッシュレートではなく低い方のリフレッシュレート（たとえば、典型的なラップトップディスプレイの場合は６０Ｈｚインタレース又は４０Ｈｚ）を選択することができる。
【００３４】
図４は、リフレッシュレートを図３のブロック３２０又は３３０のいずれかで調整すべきであると判断される場合にリフレッシュレートを動的に調整する方法の実施形態例を示す流れ図である。ブロック４０５において、利用可能なリフレッシュレートに関連するタイミング値を、たとえばＣＰＩＳ（共通パネルインタフェース仕様）仕様において定義された、たとえば拡張ディスプレイ識別データ（ＥＤＩＤ）の詳細タイミング記述子（ＤＴＤ）フィールドから、又は別の様式で求めることができる。図２を参照すると、いくつかの実施形態では、ディスプレイ２３６を使用してＥＤＩＤ２８１を提供することができる。他の実施形態では、利用可能なリフレッシュレート及び関連するタイミング値を示す同様の情報を、他の様式で、たとえば、グラフィックスドライバがアクセス可能なファームウェアに埋め込むことで提供することができる。
【００３５】
特定のシステム及びディスプレイの特徴、特性、及び機能に応じて、異なる種々のリフレッシュレートが利用可能である。たとえば、いくつかのシステムでは、利用可能なリフレッシュレートは、種々の異なるレートを含むことができ、且つ／又は１つ又は複数の異なるレートでの種々の異なる種類のリフレッシュモードを含むことができる。
【００３６】
サポート可能な異なる種類のリフレッシュモードの例としては、プログレッシブタイミング及び／又はインタレースタイミングが含まれる。インタレース走査の場合、インタレース線の２つ以上の交互になったフィールドが１フレーム毎に表示され、たとえば、６０Ｈｚインタフェースは３０Ｈｚプログレッシブにおおよそ等しい。これに加えて、又はこれに代えて、双安定モード及び／又はセルフリフレッシュモード等の他のリフレッシュモードをサポートすることができる。双安定モード又はセルフリフレッシュモードの場合、ディスプレイは連続した表示リフレッシュを必要とせずにピクセル情報を静的に保持することができる。このようなリフレッシュモードが可能なディスプレイに提供される１つ又は複数の実施形態のリフレッシュ制御手法の適用について、以下にさらに詳細に考察する。
【００３７】
図４及び図５を参照すると、ブロック４０７において、グラフィックスハードウェアに関連するパディング時間（padding time）及び／又はリフレッシュモードが判断された後、ブロック４１０において、グラフィックスハードウェア（たとえば、チップセットに統合された、又は別個に提供されるグラフィックスコントローラ）を、次の垂直ブランク前に変更を開始するように割り込みを生成するようにプログラムすることができる。この割り込みは、垂直ブランクの少なくともパディング時間前に生成することができる。パディング時間は、ピクセルクロック及びアクティブ時間を一定に保ちながら、及び／又はピクセルクロック変更後のフェーズロックループ（ＰＬＬ）設定時間中に、ピクセル／ラインダブルモードへの変更、タイミングパラメータの変更（たとえば、フロント／バックポーチ、同期、ブランク等）を変更できるようにする。割り込みに応答して、ブロック４１５において、モードタイミングレジスタに、垂直ブランク中且つ次のフレームの開始前に、ブロック４０５において求められたディスプレイクロック速度及びタイミング値を再プログラムすることができる。このようにして、別のときにリフレッシュレートを変更することに関連する視覚的アーチファクトを実質的に回避することができる。
【００３８】
図４及び図５のタイミング例について垂直ブランク間隔を参照して説明したが、他の実施形態では、異なるタイミングを使用して実質的に回避される。たとえば、変更は、たとえば水平ブランク間隔中、すなわち走査線間で行われるように実施することができる。リフレッシュレートを調整しながら視覚的に目障りなアーチファクトを実質的に回避する他の手法も、各種実施形態の範囲内である。
【００３９】
図３を再び参照すると、ブロック３３５において、ポリシーが、バッテリ寿命の延長に対するプリファレンスを有する適応制御ポリシーである場合、一実施形態では、ブロック３４０において、検出された表示コンテンツアクティビティに従ってグラフィックスを低リフレッシュレートから高リフレッシュレートに、またこの逆に動的に変更することができる。さらに、連続／定期的なリフレッシュを必要としないディスプレイの場合、ブロック３３５において、リフレッシュすべきか否かを表示コンテンツアクティビティに基づいて判断することができる。
【００４０】
図６は、検出されたコンテンツアクティビティに従って表示リフレッシュレートを動的に制御するために一実施形態において使用できる手法例を示す流れ図である。図２及び図６を参照すると、ブロック６０５において、高レベルにおいて、グラフィックスドライバ２４１は、所与のサンプルウィンドウ（たとえば、１秒以下）以内に存在する動作、たとえばオーバーレイ又はディスプレイフリップ、及びプライマリサーフェスに対するストレッチＢｌｔ（stretchBlts）の現在の数のカウントを保持して、以下により詳細に説明するように、グラフィックスを通って流れるコンテンツに関連する移動平均又は１秒当たりの有効フレーム数（ＥＦＰＳ）を求めることができる。一実施形態では、これは、グラフィックスドライバ２４１の一部として提供されるコンテンツアクティビティ検出モジュール２８５を使用して行うことができる。
【００４１】
移動平均又はＥＦＰＳは、コンテンツによってはフレーム間の動き量に関係なくかなり一貫していることもあれば、レートが全体的に変化し、グラフィックスジオメトリ及びレンダラパイプラインの速度に大きく依存するものもある（たとえば、リフレッシュ同期（sync-on-refresh）ディセーブルのゲーム）。
【００４２】
引き続き図２及び図６を参照するとともに、図７をさらに参照すると、ブロック６１０において、ＥＦＰＳが低閾値レート（たとえば、図７ではｎ）未満に減速した場合、これに応答して、リフレッシュ動的制御モジュール２５７は、リフレッシュレートを高リフレッシュレートＲｍから低リフレッシュレートモードＲｎに切り替えることができる。低リフレッシュレートＲｎである間、ＥＦＰＳが高閾値レートを超えた（たとえば、ｍを上回った）と判断した場合、ドライバは高リフレッシュレートＲｍに切り替える。さらなるモードも、図８の例に示すそれぞれに関連する閾値を使用してサポートすることができる。
【００４３】
一実施形態では、図７の閾値ｍ及びｎは異なり、図８の実施形態例に関連する閾値のようにヒステリシスを提供するように入念に選択される。選択された特定の閾値は、たとえばシステム製造業者によりプログラムすることができ、リフレッシュ制御アルゴリズムの所望の積極性、対象となるシステムの予想される用途、システムの所望性能、及び他の要因等の種々の要因によって決定することができる。
【００４４】
いくつかの実施形態では、リフレッシュレート間及び／又はモード間での遷移に関連する、ユーザが知覚可能なアーチファクトを回避することが望ましいが、移動平均ＥＦＰＳ変更が検出される前の短期間、フレームレートが現在のリフレッシュレートよりも低下した場合、テアリングが発生し得る。これに代えて、フレームレートがリフレッシュレートを超えた場合、高速の動きを適宜表示することができない。
【００４５】
たとえば、積極的すぎる状態遷移によるこのようなアーチファクトの発生を回避しようとして、いくつかの実施形態では、別のアルゴリズムを使用して、遷移を監督し管理することができる。このアルゴリズムは、たとえばリフレッシュ動的制御モジュール２５７（図２）の一部として提供することができる。このような実施形態の場合、図９に示すように、ブロック９０５において、リフレッシュモード間及び／又はレート間での遷移数のカウントが保持される。ブロック９１０において、各状態（たとえば、リフレッシュレート及び／又はリフレッシュモード）毎の重みが、その状態で費やされた比例時間に基づいて計算される。ブロック９１５において、毎秒当たりの遷移レートが第１の閾値を超える場合、その後の最高加重状態からの遷移は、レートが第２の閾値よりも低下するまで行うことができない（特定の状態にスタックしている間に時間が経過するため）。
【００４６】
これらの例のそれぞれにおいて、第１のリフレッシュレート及び／又はリフレッシュモードから第２のリフレッシュレート及び／又はリフレッシュモードへの遷移を開始すべきであると判断された場合、遷移のタイミングは図３及び図４の例に従うことができる。他の実施形態では、リフレッシュレート間及び／又はリフレッシュモード間での遷移に異なるタイミングを使用してもよい。
【００４７】
図６を再び参照すると、ＥＦＰＳを求める各種手法を種々の異なる実施形態に使用することができる。いくつかの実施形態では、たとえば図１０を参照すると、フレーム内の顕著なレンダリングを、更新中又は「接触中」の有界エリア（bounded area）を見ることによって検出することができる。有界エリアがエリアで顕著である（たとえば、Ｘ１、Ｙ１）か、エリア内のレンダリング深度で顕著であるか、又は離散エリア更新数が顕著である場合、そのフレームは「新規」とみなされる。この手法の場合、１間隔当たりの新規フレームをカウントして、閾値と比較することができる。閾値よりもかなり大きいか、又は小さい場合、イベントを生成することができる。これを、フレーム内空間エントロピーを使用した時間エントロピー検出手法と呼ぶことができる。
【００４８】
図１１〜図１４は、このような手法のより詳細な例を示す。まず図１１を参照すると、フレームを処理するために、ブロック１１１０において、レンダーキューが処理される。判断ブロック１１１５において、フルスクリーンレンダリングが実行されている場合、ブロック１１２０において、新規フレームフラグをセットすることができる。フルスクリーンレンダリングが実行されていない場合、ブロック１１２５において、レンダリング範囲を調べることができる。
【００４９】
レンダリング範囲を調べるために使用することができる一手法を図１２に示すとともに図１２を参照して説明する。以下の説明では、各動作に含まれるエリアを「ＯｐＲｅｃｔ」と呼び、これは、レンダリング動作によりダーティになるピクセル領域を囲む有界矩形である。こういった動作は、特定の場所内で群化されるダーティ領域を囲むように成長する「ビン」に群化される。
【００５０】
一実施形態では、ダーティ矩形ビン構造は、プライマリサーフェス領域用のＮ深度ダーティ矩形ビン、多数のビン（バウンディングボックスアレイのアレイ）、バウンディングボックス矩形のアレイ、エリア、タイムスタンプ、及び／又は垂直リフレッシュスタンプを含む。
【００５１】
動作の記録に使用される簡略化された構造は、以下のようなものであり得る。
typedef struct _BOUNDING_BOX {
RECTL        rclBounds;
DWORD        ulArea;
DWORD        ulOpsCount;
DWORD        ulFirstVRefreshStamp; //最初の更新のVSyncカウント
DWORD        ulLastVRefreshStamp; //最後の更新のVSyncカウント
ULONGLONG    uqFirstTimeStamp;  //取り込まれた最初の更新のタイムスタンプ
ULONGLONG  uqLastTimeStamp;  //最後の更新のタイムスタンプ
}  BOUNDING_BOX;
typedef struct  _BOUNDING_BOX_BINS  {
BOUNDING_BOX  Boxes[NUM_BINS];
}  BOUNDING_BOX_BINS;
【００５２】
コンテンツアクティビティ検出モジュール２８５（図２）内の更新マネージャ（図示せず）が、特定の使用モデルでの性能を向上させるように調整可能な構成可能パラメータを含むことができる。構成可能なパラメータの種類のいくつかの例としては、エリア閾値、カウント閾値、及びビン数が含まれる。たとえば、エリア閾値は典型的な６４×６４アイコンよりもわずかに大きく設定することができ、カウント閾値は、エリア内の特定数の動作を容認するように設定することができ、ビン数は、アクティブであり続ける有界エリアの数を決定するように設定することができる。他の実施形態では、他の種類のパラメータを含めることもできる。
【００５３】
高レベルにおいて、レンダリング範囲を調べるために、プロセスが、マッチングビンを探すこと（たとえば、交差テストを使用して）によって開始される。一実施形態において、ダーティ矩形リストの上が最新の描画範囲に交差するか否かをテストするために使用できる交差テストの一例が、以下のコードで記述される。
////////////////////////////////////////////////////////////////////////////
// BOOL  bIntersect
//
// 'prcl1'及び'prcl2'が交差する場合、戻り値TRUEを有し、交点を'prclResult'
//で戻す。交差しない場合、戻り値FALSEを有し'prclResult'は定義されない。
//
BOOL bIntersect (RECTL* prcl1, RECTL* prcl2, RECTL* prclResult)
{
prclResult->left = max(prcl1->left, prcl2->left);
prclResult->right = min(prcl1->right, prcl2->right);
if (prcResult->left <prclResult->right)
{
prclResult->top  =max(prcl1->top, prcl2->top);
prclResult->bottom =min(prcl1->bottom, prcl2->bottom);
if (prclResult->top < prclResult->bottom)
{
return(TRUE);
}
}
return(FALSE);
}
【００５４】
レンダリング動作が既存のビン内にある場合、そのビン内の動作数が増分され、タイムスタンプが更新される。動作カウントが動作閾値を超えると判断される場合、そのビンはパージされる。レンダリング動作が既存のビンに交差する場合、（たとえば、ダーティ矩形バウンディングボックスルーチンを使用して）そのビンに関連するバウンディングボックスが拡張される。一実施形態において、すべての交差矩形のバウンディングボックスの作成に使用できるダーティ矩形バウンディングボックスルーチンの例は、以下のコードで記述される。
////////////////////////////////////////////////////////////////////////////
// LONG cBoundingBox
//
//このルーチンは、'prclIn'から矩形リストをとり、矩形'prclBounds'を作成する。
//入力矩形は'prclBounds'に交差する必要はなく、戻り値はバウンディングボックス
//内に収まった入力矩形の数を反映し、バウンディング矩形は密に詰め込まれる。
//
// RECTL*  prclBounds
// RECTL*  prclIn  矩形リスト
// LONG c  ０であり得る
//
LONG cBoundingBox (RECTL* prclIn, RECTL* prclBounds, LONG c)
{
LONG cIntersections;
RECTL* prclOut;
cIntersections=0;
prclOut       =prclIn;
for (; c !=0; prclIn++, c--)
{
prclOut->left =min(prclIn->left, prclBounds->left);
prclOut->right =max(prclIn->right, prclBounds->right);
if (prclOut->left < prclOut->right)
{
prclOut->top =min(prclIn->top, prclBounds->top);
prclOut->bottom =max(prclIn->bottom, prclBounds->bottom);
if (prclOut-> top< prclOut->bottom)
{
prclOut++;
cIntersections++;
}
}
}
return (cIntersections);
}
【００５５】
次いで、新しいエリアが計算され、それに従って拡張される。エリアがエリア閾値よりも大きい場合、ビンはパージされる。レンダリング動作がすべてのビンの外である場合、空のビンを識別する試みが行われる。空のビンが見つかる場合、バウンディングボックス、動作数、及びタイムスタンプが更新される。空のビンがない場合、すべてのビンがパージされる。上記の様式では、ビンが多すぎる場合、又はビンが満杯すぎる、大きすぎる、若しくは所与の時間期間にわたって更新されなかった場合、そのビンをパージすることができる。次いで、バウンディングエリア検査を行い、更新を比較的小さく保つことができる。すべてのリフレッシュ関連更新は、そのリフレッシュが終了するまで保持される。
【００５６】
より具体的には、図１２を参照すると、判断ブロック１２０５において、新規のフレームフラグがセットされているか否かが判断される。セットされていない場合、プロセスは最初のビンでブロック１２１０に続く。ブロック１２１５において、上述したような交差テストがビン範囲を使用して実行され、判断ブロック１２２０において、レンダリング動作（ＯｐＲｅｃｔ）によって囲まれるエリアが範囲内であるか否かが判断される。
【００５７】
範囲内にある場合、ブロック１２２５において、レンダリング動作数のカウント及びタイムスタンプが更新される。判断ブロック１２３０において、更新されたカウントが、顕著なコンテンツアクティビティを示すカウント閾値を超えるか否かが判断される。超えない場合、プロセスは終了し、次のフレームが処理される（図１１）。しかし、カウントがカウント閾値を超える場合、コンテンツアクティビティが顕著であると考えられ、「新規フレーム」フラグがセットされる（ブロック１２３５）。
【００５８】
再び判断ブロック１２２０を参照すると、レンダリング動作で囲まれるエリアが範囲内にない場合、ブロック１２４０において、レンダリング動作により影響を受けるエリアが範囲に交差するか否かが判断される。交差する場合、ブロック１２４５において、ビン範囲が、レンダリング動作により影響を受けるエリアを囲むように拡張され、ブロック１２５０において、新しい有界エリアが計算される。判断ブロック１２５５において、新しい有界エリアが、顕著なコンテンツアクティビティが示されるエリア閾値を超えるか否かが判断される。超える場合、ブロック１２６０において、新規フレームフラグがセットされる。
【００５９】
再び判断ブロック１２４０を参照すると、レンダリング動作によって囲まれるエリアがビン範囲に交差しない場合、ブロック１２６５において、まだビンがあるか否かが判断される。ある場合、ブロック１２７０において、次のビンがアクセスされ、処理が述べたように続けられる。もうビンがない場合、ブロック１２７５において、空のビン空間があるか否かが判断される。ある場合、ブロック１２８０において、現在のビン範囲を画定する矩形座標を含む新しいビンが初期化される。そのビンに関連するカウント及びタイムスタンプも初期化される。空のビン空間がない場合、ブロック１２８５において、顕著なコンテンツアクティビティが示され、新規フレームフラグがセットされる。
【００６０】
いくつかの実施形態では、上述した手法を、範囲のハッシュをさらに計算して、同じ描画があらゆるフレームで繰り返されているか否かを検出するようにさらに拡張することができる。
【００６１】
上記プロセスは、フレームレンダリングプロセスに関連する。垂直フレーム割り込みルーチンを含むディスプレイプロセスが平行して進められ、これが、レンダリングプロセスで求められたＥＦＰＳ又は他のコンテンツアクティビティ測定基準が、閾値を上回るか、それとも下回るかの判断に使用されるとともに、リフレッシュレートの任意の変更又はディスプレイの更新の調整にも使用される。いくつかの実施形態で使用できる垂直フレーム割り込みルーチンの例について、図１３を参照して説明する。
【００６２】
ブロック１３０５において、算術右シフトがフレームマスクレジスタに対して行われる。フレームマスクレジスタは、対象となるシステムの任意のデータストアで実施することができる。一実施形態では、フレームマスクレジスタは、たとえば、メモリマップドＩ／Ｏ、フレームバッファメモリ（たとえば、図２のフレームバッファ２２９）、又は別のロケーションで実施することができる。図１４は、いくつかの実施形態で使用できるフレームマスクレジスタ構造の例を示す。
【００６３】
判断ブロック１３１０において、新規フレームフラグがセットされているか否かが判断される。セットされている場合、ブロック１３１５において、フレームマスクレジスタ（ＦＭＲ）の最上位ビット（ＭＳＢ）を「１」にセットすることができ、新規フレームフラグをクリアすることができる。ブロック１３２０において、フレームマスクレジスタ内の「１」の数がカウントされ、これを１秒当たりの有効フレーム数（ＥＦＰＳ）又は検出されたコンテンツアクティビティの別の測定基準として記憶することができる。
【００６４】
判断ブロック１３２５において、ＥＦＰＳが下限ヒステリシス閾値未満であるか否かが判断される。閾値未満である場合、ブロック１３３０において、コンテンツレートアンダーフローイベントが通知される。閾値未満でない場合、判断ブロック１３３５において、ＥＦＰＳが上限ヒステリシス閾値を超えるか否かが判断される。超える場合、ブロック１３４０において、コンテンツレートオーバーフローイベントが通知される。ＥＦＰＳ及びコンテンツレートアンダーフローイベント又はコンテンツレートオーバーフローイベントを通知することを使用して、リフレッシュレート調整が図６，図７、及び図８を参照して説明したように行われるか否かを判断することができる。
【００６５】
図１５を参照すると、いくつかの実施形態において、図６のブロック６０５において１秒当たりの有効フレーム数（ＥＦＰＳ）又は検出されたコンテンツアクティビティを求めるために使用できる別の手法が、時間的に隣接するフレームの走査線間の差を検出し、時間差カウントが所与の閾値を超える場合、フレームが新規とみなされる。図１０〜図１４を参照して説明した手法と同様に、１間隔当たりの新規フレーム数がカウントされ、これが各閾値よりも大きいか又は小さい場合、イベントが生成される。一実施形態では、この手法は、グラフィックスハードウェア、たとえば図２のグラフィックスコントローラ２１０で実施することができる。
【００６６】
この手法の例について図１６及び図１７を参照して説明する。垂直リフレッシュに続き、ブロック１６０５において、時間差カウンタ（ＴｅｍｐＤｉｆｆ）がゼロにされ、走査線（Ｙ，Ｎ）（ここで、Ｙは走査線であり、Ｎはフレームである）がフェッチされる。ブロック１６１０において、走査線の、たとえばハッシュ又はチェックサムが計算されて記憶される。一実施形態では、ＣＲＣ３２を使用してハッシュ／チェックサムを実行することができる。他の実施形態では、異なるハッシュ又はチェックサムを使用してもよいことが理解されよう。判断ブロック１６１５において、計算されたばかりの走査線のハッシュが前のフレームの同じ走査線のハッシュに等しいか否かが判断される。等しくない場合、ブロック１６２０において、時間差カウンタが増分される。
【００６７】
ブロック１６２５において、Ｙが増分され、判断ブロック１６３０において、最後の走査線が評価されたか否かが判断される。最後の走査線ではない場合、方法は、フレームのすべての走査線が同様に評価されるまで上述したように続けられる。最後の走査線がすでに処理されている場合、ブロック１６３５において、算術右シフト演算が、たとえば図１４に示すように構成可能なフレームマスクレジスタに対して実行され、ブロック１６４０において、時間差カウンタがフレーム間差閾値を超えているか否かが判断される。超えている場合、ブロック１６４５において、レジスタの最上位ビットをセットして、新規フレームフラグをセットすることができる。
【００６８】
ブロック１６５０において、フレームマスクレジスタ内の１（１秒当たりの有効フレーム数を示す）の数がカウントされる。判断ブロック１６５５において、ＥＦＰＳが下限ヒステリシス閾値未満である場合、ブロック１６６０において、コンテンツレートアンダーフローイベントが開始される。これに代えて、ブロック１６６５において、ＥＦＰＳが上限ヒステリシス閾値を超えると判断される場合、コンテンツレートオーバーフローイベントが開始される。ＥＦＰＳ及び／又はコンテンツアンダーフロー情報若しくはコンテンツオーバーフロー情報を使用して、リフレッシュレートを変更すべきか否かを判断することができる。
【００６９】
図１８を参照すると、別の実施形態では、上述したように対応する走査線のハッシュを計算して比較することに代えて、画面の１つ又は複数のゾーン、たとえばＸピクセル×Ｙピクセルサイズの矩形チャンクのハッシュ）を計算し、フレーム間で比較して有効表示コンテンツアクティビティを求めることができる。このようなプロセスは実質的に、図１６を参照して説明したように進む。
【００７０】
上記の例は、連続してリフレッシュされるディスプレイの場合のリフレッシュレート調整を参照して説明されているが、同様の手法を、双安定ディスプレイ又はセルフリフレッシュディスプレイ等のより不規則に更新されるディスプレイに対して表示リフレッシュを実行すべきか否かの判断に使用することもできる。
【００７１】
こうして、表示リフレッシュレートを動的に調整する方法及び装置の各種実施形態について説明した。上記明細書では、本発明の特定の例示的な実施形態を参照して本発明を説明した。しかし、添付の特許請求の範囲に記載される本発明の広義の精神及び範囲から逸脱することなく各種変形及び変更を行い得ることが理解されようたとえば、特定のデータ構造例及びコード例を本明細書に提供したが、他の実施形態では、異なるデータ構造ならびにコード及び／又はハードウェアを使用できることが理解されよう。したがって、本明細書及び図面は、限定の意味ではなく例示の意味で解釈されるべきである。
【図面の簡単な説明】
【００７２】
【図１】表示リフレッシュレートを動的に変更する一実施形態の方法を示す流れ図である。
【図２】１つ又は複数の実施形態のリフレッシュレート動的調整手法の一実施形態を実施することができるシステム例のブロック図である。
【図３】表示リフレッシュレートを動的に変更する一実施形態の方法を示す流れ図である。
【図４】新しいリフレッシュレート又はリフレッシュモードを動的に実施する一実施形態の方法を示す流れ図である。
【図５】表示リフレッシュレートを動的に変更する一実施形態のタイミング例を示すタイミング図である。
【図６】有効なコンテンツアクティビティを検出する一実施形態の方法を示す流れ図である。
【図７】一実施形態のリフレッシュレートモード間の遷移例を示す状態図である。
【図８】一実施形態のさらなるリフレッシュレートモード間での遷移例を示す状態図である。
【図９】リフレッシュレート／リフレッシュモード間の遷移を制御する一実施形態の方法を示す流れ図である。
【図１０】フレームにわたるコンテンツの変更を示す概念図である。
【図１１】一実施形態のフレームレンダリング方法を示す流れ図である。
【図１２】図１１のフレームレンダリング方法と併せて使用してコンテンツアクティビティを評価することができる一実施形態のレンダリング範囲検査プロセスを示す流れ図である。
【図１３】コンテンツアクティビティの評価に使用できる一実施形態のディスプレイ処理方法を示す流れ図である。
【図１４】一実施形態に使用することができるフレームマスクレジスタを示す図である。
【図１５】走査線で評価されるようにフレームにわたりコンテンツを変更することを示す概念図である。
【図１６】一実施形態においてコンテンツアクティビティの評価に使用することができる表示方法を示す流れ図である。
【図１７】図１６の実施形態に使用することができる時間差カウンタの動作を示す図である。
【図１８】別の実施形態のコンテンツアクティビティ検出手法を示す概念図である。
【図１】
2008527418.tif 000003
【図２】
2008527418.tif 000004
【図３】
2008527418.tif 000005
【図４】
2008527418.tif 000006
【図５】
2008527418.tif 000007
【図６】
2008527418.tif 000008
【図７】
2008527418.tif 000009
【図８】
2008527418.tif 000010
【図９】
2008527418.tif 000011
【図１０】
2008527418.tif 000012
【図１１】
2008527418.tif 000013
【図１２】
2008527418.tif 000014
【図１３】
2008527418.tif 000015
【図１４】
2008527418.tif 000016
【図１５】
2008527418.tif 000017
【図１６】
2008527418.tif 000018
【図１７】
2008527418.tif 000019
【図１８】
2008527418.tif 000020
【国際調査報告】
2008527418.tif 000021
2008527418.tif 000022
2008527418.tif 000023
2008527418.tif 000024
2008527418.tif 000025