(57)【特許請求の範囲】
【請求項１】
コンカレントマルチメディアアプリケーションに対するデータフローを管理することによってシステムオンチップ(SoC)を含むデバイスの電力または温度を管理する方法であって、
温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの１つまたは複数を決定することに応答して、前記コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するステップと、
前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップであって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するステップと、
前記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップとを含み、
前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップが、
前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するステップと、
ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するステップと、
ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するステップとを含む、方法。
【請求項２】
前記温度および前記電力消費の1つまたは複数が前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するステップとをさらに含む、請求項1に記載の方法。
【請求項３】
所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む、請求項1に記載の方法。
【請求項４】
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む、請求項1に記載の方法。
【請求項５】
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む、請求項1に記載の方法。
【請求項６】
所定のアプリケーション優先度;
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップと、
前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するステップとをさらに含む、請求項1に記載の方法。
【請求項７】
前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項1に記載の方法。
【請求項８】
前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含む、請求項1に記載の方法。
【請求項９】
コンピューティングデバイスであって、
メモリと、
前記メモリに結合され、動作を実施するためのプロセッサ実行可能命令によって構成されたプロセッサとを備え、前記動作が、
温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの１つまたは複数を決定することに応答して、コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するステップと、
前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップであって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するステップと、
前記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールのマルチメディアパラメータを低減するステップとを含み、
前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップが、
前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するステップと、
ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するステップと、
ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するステップとを含む、コンピューティングデバイス。
【請求項１０】
前記温度および前記電力消費の1つまたは複数が、前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するステップとをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１１】
所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１２】
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１３】
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１４】
所定のアプリケーション優先度;
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップと、
前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するステップとをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１５】
前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項9に記載のコンピューティングデバイス。
【請求項１６】
前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
【請求項１７】
コンピューティングデバイスであって、
温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの１つまたは複数を決定することに応答して、コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するための手段と、
前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するための手段であって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するための手段と、
前記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するための手段とを含み、
前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するための手段が、
前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するための手段と、
ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記データフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するための手段と、
ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記データフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するための手段とを含む、コンピューティングデバイス。
【請求項１８】
前記温度および前記電力消費の1つまたは複数が前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するための手段とをさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項１９】
所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段をさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項２０】
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段をさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項２１】
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段をさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項２２】
所定のアプリケーション優先度;
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段と、
前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するための手段とをさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項２３】
前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項17に記載のコンピューティングデバイス。
【請求項２４】
前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含む、請求項17に記載のコンピューティングデバイス。
【請求項２５】
プロセッサに動作を実行させるように構成されたプロセッサ実行可能命令を記憶する非一時的プロセッサ可読記憶媒体であって、前記動作が
温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの１つまたは複数を決定することに応答して、コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するステップと、
前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップであって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するステップと、
前記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップとを含み、
前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップが、
前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するステップと、
ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するステップと、
ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するステップとを含む、非一時的プロセッサ可読記憶媒体。
【請求項２６】
記憶された前記プロセッサ実行可能命令が、
前記温度および前記電力消費の1つまたは複数が前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するステップとをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
記憶された前記プロセッサ実行可能命令が、
所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
記憶された前記プロセッサ実行可能命令が、
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項２９】
記憶された前記プロセッサ実行可能命令が、
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項３０】
記憶された前記プロセッサ実行可能命令が、
所定のアプリケーション優先度;
最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップと、
前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するステップとをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項３１】
前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【請求項３２】
記憶された前記プロセッサ実行可能命令が、
前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含むような動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照によって本明細書に組み込まれる、2013年8月28日に出願された「Methods, Devices And Systems For Dynamic Multimedia Data Flow Control For Thermal Power Budgeting」という名称の米国仮特許出願第61/870,856号の優先権の利益を主張する。
【背景技術】
【０００２】
現代のスマートフォンシステムオンチップ(SoC)は、コンカレントマルチメディアアプリケーションまたはセッションを実行する能力を伴って、より集積化され、強力になっており、延長されたバッテリー寿命およびより小さいフォームファクタに対する要求はより厳格になっているので、電力およびバッテリーの管理問題に対する解決策は、より難しいものになっている。コンカレントマルチメディアアプリケーションの一例には、ゲームアプリケーションとビデオ会議アプリケーションの両方が同じデバイス上で実行され、たとえば、デバイスのディスプレイ上の異なるウィンドウの中にマルチメディア出力を供給する、ゲームアプリケーションおよびビデオ会議アプリケーションが含まれる。マルチメディア出力は、カメラモジュールおよびグラフィックスシステムなど、デバイス内のサブシステムによって生成され得る。複数のデバイスが、コンカレントマルチメディアアプリケーションのうちの少なくともいくつかのアプリケーションに関連することがある。したがって、マルチメディア出力は、ネットワーク接続を介するなど、他のデバイスから受信されたマルチメディア情報を含むことがある。
【０００３】
様々な理由によって、複数のコンカレントマルチメディアアプリケーションを実行しているモバイルコンピューティングデバイスは、過度の電力消費を経験することがある。そのような電力消費のかなりの部分は、高解像度マルチメディアビデオ、画像およびグラフィックスならびに他のコンカレントマルチメディアデータフローを供給することに起因することがある。コンカレントマルチメディアアプリケーションおよびプロセスを実行しているとき、モバイルコンピューティングデバイスおよびそれらのシステムオンチップ(SoC)は、それらの熱的制限に適合しないことがある。この理由によって、環境条件が電力配分(power budgeting)および/または熱的制限を超えるとき、解像度、フレームレート、詳細度(LoD)などのマルチメディアパラメータ設定、またはアプリケーションに対して通常指定される他のパラメータ設定において、性能レベルが持続できないことがある。
【０００４】
制限内にとどまるための現在の手法は、電力消費および/または温度のしきい値または制限に達するかまたはそれを超えるときに、制限された数のハードウェアサブシステムのハードウェアレベルの周波数調整(frequency throttling)を使用する。現在のシステムでは、デバイス全体の動作周波数、およびしたがって処理能力は、電力消費、熱的問題の原因、または使用されているアプリケーションのタイプを問わずに制限される。モバイルコンピューティングデバイス中のサブシステムのうちのいくつかだけに対して周波数が調整されるかまたは制限されるとき、アプリケーションの重要な性能的側面が障害を受け、ユーザエクスペリエンスが損なわれることがある。コンカレントマルチメディアデータフローに対する画像解像度、フレームレート、LoDまたは他のパラメータなど、アプリケーションの他のプロセッサ集約型の側面に関連するマルチメディアパラメータを制御するための、オペレーティングシステム(OS)レベルの集中化されたフレームワークは、現在のところ存在しない。
【０００５】
電力消費および熱配分の問題を管理することに対する現在の解決策は、中央処理装置(CPU)およびグラフィック処理装置(GPU)など、SoCの主ハードウェアシステムサブブロック上の周波数を調整することを伴う。測定された温度および電力消費のレベルが制限を超えるとき、これらのサブブロックの周波数調整が、ハードウェアレベルで発生する。主処理サブブロックにわたる周波数の無差別の調整は、ユーザエクスペリエンスまたは熱問題/電力消費問題に対する、アプリケーションまたはマルチメディアデータフローの各々のソフトウェアレベルまたはユーザレベルそれぞれの寄与を考慮することなく、コンカレントマルチメディアデータフローのフレームレートを低下させることがある。さらに、主サブブロックを調整することは、他のハードウェアモジュールが、最初の解像度/フレームレート/LoDでマルチメディアデータフローの生成を継続することに基づく非効率を引き起こすことがある。具体的に言うと、マルチメディアデータフローパスに沿った周波数調整されたハードウェアシステムサブブロックに先行または後続する調整されないサブブロックは、不必要に最大周波数でマルチメディアデータフローを処理し、不必要な電力消費および非効率的な電力低下または電力制御につながることがある。
【０００６】
現在のシステムでは、各アプリケーションが、解像度、フレームレートおよびLoDなどのマルチメディアパラメータを決定する。マルチメディアパラメータを、たとえば電力配分および各データフローの優先度に基づいて決定するための、集中化されたOSレベルのプロセスは存在しない。
【発明の概要】
【課題を解決するための手段】
【０００７】
様々な態様が、コンカレントマルチメディアアプリケーションに対するデータフローを管理することによって、システムオンチップ(SoC)を含むデバイスの電力または温度を管理することを対象とする方法およびデバイスを提供する。一態様方法は、温度しきい値を超える温度および電力しきい値を超える電力消費のうちの1つまたは複数を決定することに応答してコンカレントマルチメディアアプリケーション間の最低優先度データフローを識別するステップと、識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップと、データフローに対する追跡されたデータフローパスに沿ったハードウェアモジュールのマルチメディアパラメータを低減するステップとを含み得る。一態様方法は、温度および電力消費のうちの1つまたは複数がもはやしきい値を超えないときにマルチメディアパラメータを低減させたコンカレントマルチメディアアプリケーション間の最高優先度データフローを識別するステップと、識別された最高優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップと、識別された最高優先度データフローに関連するデータフローに対する追跡されたデータフローパスに沿ってマルチメディアパラメータを最初の値に復元するステップとをさらに含み得る。
【０００８】
一態様方法では、識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップは、マルチメディアパラメータを使用して動作するデータフローパスに沿ったすべてのハードウェアサブシステムを識別するステップを含み得る。一態様方法では、データフローに対する追跡されたデータフローパスに沿った任意のハードウェアモジュールのマルチメディアパラメータを低減するステップは、データフローパスに沿って識別されたハードウェアサブシステムに対するマルチメディアパラメータを低減するステップを含み得る。
【０００９】
一態様方法では、マルチメディアパラメータは、データフローの解像度およびフレームレートのうちの1つを含み得、データフローに対する追跡されたデータフローパスに沿った任意のハードウェアモジュールのマルチメディアパラメータを低減するステップは、データフローに関連するダイナミクスのレベルを決定するためにデータフローの画像統計を解析するステップと、ダイナミクスのレベルがしきい値レベルを上回るときにデータフローパスに沿って識別されたハードウェアサブシステムに対する解像度を最初に低減するステップと、ダイナミクスのレベルがしきい値レベルを下回るときにデータフローパスに沿って識別されたハードウェアサブシステムに対するフレームレートを最初に低減するステップとを含み得る。
【００１０】
一態様方法は、所定のアプリケーション優先度に基づいてコンカレントマルチメディアアプリケーションのデータフロー間の優先度を確立するステップをさらに含み得る。一態様方法は、最も頻繁に凝視されているコンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計(eye gaze statistics)に基づいて、コンカレントマルチメディアアプリケーションのデータフロー間の優先度を確立するステップをさらに含み得る。一態様方法は、コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウがディスプレイの最大面積を占めることに基づいて、コンカレントマルチメディアアプリケーションのデータフロー間の優先度を確立するステップをさらに含み得る。
【００１１】
一態様方法は、所定のアプリケーション優先度のうちの1つまたは複数に基づいて、最も頻繁に凝視されているコンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、およびディスプレイの最大面積を占めるコンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、コンカレントマルチメディアアプリケーションのデータフロー間の優先度を確立するステップをさらに含み得る。一態様方法は、コンカレントマルチメディアアプリケーションのうちの1つまたは複数に対するアプリケーション優先度に関連する重みに基づいて、コンカレントマルチメディアアプリケーションに対するデータフロー間の確立された優先度を調整するステップをさらに含み得る。
【００１２】
態様方法では、識別された最低優先度データフローに関連するデータフローのマルチメディアパラメータを低減するステップが、データフローのコンテンツの特性を解析するステップと、データフローのコンテンツの特性を解析するステップの結果に基づいて低減のためのマルチメディアパラメータを選択するステップとを含み得る。一態様方法では、マルチメディアパラメータは、データフローに関連する解像度、フレームレート、および詳細度(LoD)のうちの1つを含み得る。一態様方法では、コンカレントマルチメディアアプリケーションは、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含み得る。
【００１３】
さらなる態様は、上記で説明した方法の動作を実施するようにプロセッサ実行可能命令によって構成された1つまたは複数のプロセッサを有するコンピューティングデバイスを含む。さらなる態様はまた、上記で説明した方法の機能を実施するための手段を有するコンピューティングデバイスを含む。さらなる態様は、上で説明した方法の動作をプロセッサに実施させるように構成されたプロセッサ実行可能命令が記憶されている、非一時的プロセッサ可読記憶媒体を含む。
【００１４】
本明細書に組み込まれ、本明細書の一部を構成している添付の図面は、本発明の例示的態様を示したものであり、上で示した一般的な説明および以下の詳細な説明とともに本発明の特徴を説明する働きをしている。
【図面の簡単な説明】
【００１５】
【図１Ａ】様々な態様とともに使用するのに好適なデバイス、ネットワーク、共有通信チャネル、およびコンカレントマルチメディアアプリケーションを示す図である。
【図１Ｂ】デバイス構成およびコンカレントマルチメディアアプリケーションに対するハードウェアブロックの電力消費を示すグラフである。
【図１Ｃ】ハードウェアデバイスおよびコンカレントマルチメディアアプリケーションを含む電力消費を周波数調整を使用して管理するためのシステム構成を示すブロック図である。
【図２Ａ】様々な態様における、ハードウェアデバイスおよびコンカレントマルチメディアアプリケーションを含む電力消費をマルチメディアパラメータマネージャおよびデータフロートレーサを使用して管理するためのシステム構成を示すブロック図である。
【図２Ｂ】様々な態様における、通知、データフロー追跡、およびマルチメディアパラメータ管理を示すハードウェアブロック図である。
【図３Ａ】様々な態様におけるハードウェアサブシステムおよびデータフローパスを示す図である。
【図３Ｂ】様々な態様における、ハードウェアサブシステムと、データフローパスと、高優先度データフローと、ハードウェアサブシステムを含むデータフローパスとを示す図である。
【図３Ｃ】様々な態様における、現在のハードウェアサブシステムに対するマルチメディアパラメータ設定を確立するための論理を示す図である。
【図４Ａ】様々な態様における、ウィンドウ優先度を設定するためのカメラおよび視線検出を含むデバイスとコンカレントマルチメディアアプリケーションとを示す図である。
【図４Ｂ】様々な態様における、ウィンドウ優先度を設定するための優先度ヒントを含むデバイスとコンカレントマルチメディアアプリケーションとを示す図である。
【図５Ａ】マルチメディアパラメータ管理およびデータフロー追跡の一態様方法を示すプロセスフロー図である。
【図５Ｂ】データフロー優先度を確立する一態様方法を示すプロセスフロー図である。
【図５Ｃ】オーバーライドするためにマルチメディアパラメータ間で最初のマルチメディアパラメータを選択する一態様方法を示すプロセスフロー図である。
【図５Ｄ】アプリケーション優先度に基づいてデータフロー優先度を調整する一態様方法を示すプロセスフロー図である。
【図６】様々な態様の実装形態に好適な例示的なモバイルデバイスを示すブロック図である。
【図７】様々な態様の実装形態に好適な例示的なモバイルコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【００１６】
様々な態様を、添付図面を参照して詳細に説明する。可能である場合、同じまたは同様の部品を参照するためにすべての図面を通して同じ参照番号が使用される。特定の例および実施態様へと行われる言及は、説明を目的とし、本発明の範囲または特許請求の範囲を限定することを意図するものではない。
【００１７】
「コンピューティングデバイス」という用語は、本明細書では、携帯電話と、スマートフォンと、パーソナルまたはモバイルのマルチメディアプレーヤと、携帯情報端末(PDA)と、ラップトップコンピュータと、デスクトップコンピュータと、タブレットコンピュータと、スマートブックと、パームトップコンピュータと、ワイヤレス電子メールレシーバと、マルチメディアインターネット対応携帯電話と、テレビジョンと、スマートTVと、スマートTVセットトップバディボックスと、一体化スマートTVと、ストリーミングメディアプレーヤと、スマートケーブルボックスと、セットトップボックスと、デジタルビデオレコーダ(DVR)と、デジタルメディアプレーヤと、プログラマブルプロセッサを含む同様のパーソナル電子デバイス、特にSoCを含むパーソナル電子デバイスとのうちのいずれか1つもしくはすべてを指すために使用される。
【００１８】
本明細書で使用する「マルチメディアパラメータ」という用語は、解像度、フレームレート(たとえば、フレーム毎秒)、詳細度(LoD)などの固定パラメータもしくは設定可能パラメータ、またはコンピューティングデバイス上で捕捉、生成、表示、処理され得るか、さもなければ取り扱われ得るマルチメディアデータに関連する他のパラメータを指すことができる。マルチメディアデータは、ビデオソース、音声ソース、グラフィックスソース、または他のデータ生成ソースなど、経時的にデータを生成するソースに一般的に関連するデータフローまたはデータストリームと関連付けられ得る。様々な態様では、マルチメディアデータは、画像データ、ビデオデータ、音声データ、音声とビデオまたは画像との組合せデータ、およびユーザ対話データなどの他のデータを含み得る。マルチメディアデータは、複数のハードウェアブロックおよびサブブロック、さらにはデータフローパスに沿った複数の相互接続デバイスに及ぶデータフローの中に含まれ得る。相互接続デバイスは、外部ディスプレイなどの外部デバイスを含み得、ネットワークを介して接続される通信デバイスなどの他のデバイスを含み得る。マルチメディアデータは、さらに、様々なハードウェアブロックまたはサブブロックによって生成され得る。様々な態様では、マルチメディアデータは、ネットワークにわたる共有通信チャネルにわたって別のマルチメディアデバイスに送信され得る。
【００１９】
本明細書で使用する「解像度」および「フレームレート」という用語は、一般に、データフローにおける、画像データのフレーム当たりのピクセル数と、所与の時間期間当たり(たとえば、1秒当たり)のフレーム数とを指すことができる。解像度およびフレームレートは、ともに、所与のモードに関して表現され得る。たとえば、1080p30のビデオモードは、1080水平ラインの垂直解像度の解像度と、毎秒30フレームのフレームレートとを指すことができる。16:9の一般的なワイドスクリーンアスペクト比において、1080pのビデオモードは、1920ラインの垂直解像度のピクセルまたはピクセルグループ(たとえば、RGBピクセル)を暗示する。いくつかの解像度およびフレームレートが実例および代表例として本明細書で説明され得るが、本明細書で開示する発明的概念は、任意の解像度およびフレームレートに適用され得る。
【００２０】
本明細書で使用する「詳細度」または「LoD」という用語は、コンピュータグラフィックスに関連するパラメータまたは特性を指すことができる。詳細度またはLoDは、オブジェクトがレンダリングおよび表示されるとき、オブジェクトの3D表現など、表現の詳細さまたは複雑さを指すことができる。様々な態様では、LoDは、表示されるオブジェクトが移動してビューアに向かうかまたはビューアから遠ざかるときを含む様々な状況の下で、増加または減少を含めて修正され得る。LoDは、オブジェクトの重要性、視点関連の速度もしくは位置、または他のメトリックなど、他のメトリックに従って、増加または減少を含めて修正され得る。LoDの修正は、たとえばLoDが減少されるとき、グラフィックス処理パイプラインステージ、通常は頂点変換、に対する作業負荷を減少することによってオブジェクトレンダリングの効率を増加することができる。対応するオブジェクトの低下した視覚的品質は、オブジェクトが遠いかまたは高速で移動しているとき、オブジェクトの外観に及ぼす影響は小さいので、気づかれないことが多い。LoDの修正は、通常、ジオメトリ詳細(geometry detail)に適用され得る。しかしながら、本明細書で使用されるように、LoDは、付加的に、シェーディング、テクスチャリング、または他の詳細など、他の詳細を指すことができ、詳細の管理が、ピクセルの複雑さおよびオブジェクトレンダリングの品質の制御に貢献し得る。
【００２１】
態様では、コンカレントマルチメディアアプリケーションを実行中の1つまたは複数のデバイスにおいて、SoC温度またはSoC電力消費のレベルが所定の制限またはしきい値を超えると、その状況の下で最善の達成可能なユーザエクスペリエンスを維持または提供しながら処理需要を低減するためのアクションが取られ得る。センサで測定されるかまたはさもなければ取得されるSoC温度およびSoC電力は、1つまたは複数のデータフローに対する対応する1つまたは複数のデータフローパス内に存在する各ハードウェアブロックにおいて、処理解像度、フレームレート、LoDまたは他のパラメータなどのマルチメディアパラメータを制御またはオーバーライドするように構成され得るマルチメディアパラメータマネージャに供給され得る。マルチメディアパラメータマネージャによるマルチメディアパラメータの制御は、各データフローまたはマルチメディアアプリケーションに対して確立された優先度に基づくことができる。データフロートレーサは、各データフローパス内に存在するハードウェアブロックまたはサブブロックに関する情報など、すべてのデータフローパスの情報を収集し得る。データフローパスについての情報は、データフローに関連するパケットのパケットヘッダ情報を含む様々なソースから取得され得る。データフローパス情報は、通信チャネルならびにマルチプレーヤゲームアプリケーション、遠隔会議アプリケーション、または他のマルチユーザアプリケーションなどのコンカレントマルチメディアアプリケーションのうちの少なくとも1つを共有している可能性がある別のユーザのデバイスに関する情報をさらに含み得る。そのような情報は、他の1人または複数のユーザの宛先アドレス、ネットワークを介して他の1人または複数のユーザに延びるデータフローの少なくとも一部に関連するサービス品質(QoS)を含み得る。
【００２２】
マルチメディアパラメータ調整が、1つまたは複数の高優先度データフローに関連するマルチメディアパラメータを保存しながら、マルチメディアパラメータマネージャによって1つまたは複数の低優先度データフロー内で行われ得る。低優先度データフロー内でマルチメディアパラメータを調整することによって、高優先度データフローにおけるユーザエクスペリエンスの劣化が、低減、最小化または排除され得る。共有通信チャネル上で結合されるデバイス内のハードウェアブロックまたはサブブロックを含む、低優先度データフロー内に存在するデータフロートレーサによって識別されたすべてのハードウェアブロックまたはサブブロック内の電力消費は、効率的に低減され得る。たとえば、ブロックに対する調整されたマルチメディアパラメータを決定するために、データフローパス内の各ブロックまたはサブブロックに対して論理回路が設けられ得る。調整されたマルチメディアパラメータは、最初のパラメータ、オーバーライドパラメータ、およびダウンストリームブロックのパラメータに基づくことができる。
【００２３】
データフローの各々に対する優先度は、多様な方法で確立され得る。たとえば、高優先度は、デバイスのユーザによって最も頻繁に見られるディスプレイ上のアプリケーションウィンドウに関連するデータフローに対して確立され得る。デバイス上のカメラによって捕捉される画像を解析することによって達成される視線認識が、スクリーン上または外部デバイス上の視線位置を自動的に検出し、その統計を生成するために使用され得る。視線位置統計とウィンドウ位置との間の最大の相関を有するウィンドウ、およびこれらのウィンドウに関連するアプリケーションまたはデータフローが、高優先度のアプリケーションまたはデータフローとして確立され得る。代替的に、最大のスクリーン面積を占めるアクティブウィンドウに関連するデータフローが、高優先度データフローとして指定され得る。さらに、アプリケーションは、たとえば、データフローに対する少なくとも初期の優先度の確立に使用され得る解像度、フレームレート、またはLoDなど、それらの選好、要求、または推奨されるマルチメディアパラメータ要件に関連する追加の情報を提供し得る。マルチメディアパラメータマネージャおよびデータフロートレーサは、上記で説明した情報、たとえば視線情報、ウィンドウ面積情報、ヒント情報、およびデータフローに対して確立するための優先度の決定における他の情報、のいずれかまたはすべてを使用し得る。
【００２４】
上記で説明したように、優先度は、低優先度データフローのデータフローパスに沿ったハードウェアモジュールの性能または電力需要の調整に使用するためにデータフローに対して確立され得る。しかしながら、アプリケーション層を考慮すると、上記で説明した態様方法に従ってデータフローに対する確立された優先度から逸脱するかまたはそれと矛盾する、アプリケーションに対する優先度をもたらすことがある。Table 1(表1)は、割り当てられた優先度を有するアプリケーションおよびデータフローの一例を示す。図示の例では、データフローA-1、A-2およびA-3はコンカレントマルチメディアアプリケーションAと関連付けられ、データフローB-1およびB-2はコンカレントマルチメディアアプリケーションBと関連付けられ、データフローCはコンカレントマルチメディアアプリケーションCと関連付けられる。データフローと関連付けられた優先度は、Table 1(表1)に示すように、上から下の降順に整列され得る。
【００２５】
【表１】
0006338669.tif 000002
【００２６】
Table 1(表1)に示す例では、データフローA-1は1の優先度(たとえば、最高優先度)を割り当てられており、データフローA-2は2の優先度を割り当てられており、データフローA-3は3の優先度を割り当てられており、データフローB-1は4の優先度を割り当てられており、データフローB-2は5の優先度を割り当てられており、データフローCは6の優先度(たとえば、最低優先度)を割り当てられている。しかしながら、Table 1(表1)はまた、コンカレントマルチメディアアプリケーションA、BおよびCに対する優先度が、データフローに対する確立された優先度から潜在的に逸脱するかまたはそれと矛盾する順序で確立されることを示す。一態様では、複数のコンカレントアプリケーションが(たとえば、視線、ウィンドウ順序、ユーザ設定などに基づいて)優先度を付けられ、コンカレントアプリケーションのうちの1つまたは複数が2つ以上のデータフローを有する状況は、図5Dを参照して以下でより詳細に説明するように、アプリケーションの優先度に基づいてデータフローの優先度を重み付け、割り当てられた重みに基づいてデータフロー優先度を調整することによって対処され得る。
【００２７】
態様では、システムオンチップ(SoC)は、変動する性能のプロセッサ、1つまたは複数のカメラブロック、1つまたは複数のカメラサブシステムブロック、DRAMを含む1つまたは複数のメモリデバイスブロック、1つまたは複数の電力管理ブロック、1つまたは複数のディスプレイブロック、1つまたは複数の無線モジュールブロック、および他のブロックを含む、複数のハードウェアブロックまたはサブブロックを有することができる。プロセッサの非限定的な例は、DSP、モデムプロセッサ、ビジュアルまたはグラフィックス処理装置(GPU)、専用高効率処理エンジン、専用高効率ハードウェアエンジンなどの高効率プロセッサを含み得る。さらに、プロセッサの非限定的な例は、アプリケーションプロセッサ、多重プロセッサコアを有する高性能プロセッサ、ARMアーキテクチャプロセッサ、またはSoCにおいて好適な他のプロセッサなどの高性能プロセッサを含み得る。
【００２８】
図1Aは、第1のデバイス110を含むデバイス環境101および第2のデバイス130を含むデバイス環境103の例100を示す。第1のデバイス110および第2のデバイス130は、ネットワーク102を介して接続され得る。接続は、たとえば、デバイス110および130を、それぞれのアクセスポイント、セルラーネットワークインフラストラクチャ構成要素、または他のワイヤレス(またはワイヤード)アクセスノードにリンクするワイヤレスリンク105aおよび105bを介して達成され得る。ネットワーク102は、ワイヤレスローカルエリアネットワーク(WLAN)またはセルラー通信ネットワークであってよく、そのネットワークを介して第1のデバイス110および第2のデバイス130が通信し得る。第1のデバイス110および第2のデバイス130は、ネットワーク102を介して、たとえば、共有通信チャネル、パケットデータセッション、またはネットワーク102に関連する構成およびプロトコルに応じた他の通信メカニズムを介して通信し得る。デバイス環境101において、第1のデバイス110は、ワイファイダイレクト(WFD)、WiDi、または同様の接続であり得るワイヤレス接続116を介して外部ディスプレイ120と通信し得る。ワイヤレス接続116は、第2のデバイス130および外部ディスプレイ120がアクセスポイントを必要とせずに直接、ワイヤレスに通信することを可能にする。
【００２９】
第1のデバイス110は、カメラ114とディスプレイ115とを装備され得る。第1のデバイス110は、ビデオ遠隔会議アプリケーションおよびゲームアプリケーションなどのコンカレントマルチメディアアプリケーションを実行中であり得る。ビデオ遠隔会議アプリケーションは、カメラ114を使用して第1のデバイス110のユーザのビデオを捕捉し得、ユーザのビデオを第1のデバイス110のディスプレイ115上のウィンドウ111にローカルに表示し得る。ビデオ遠隔会議アプリケーションはまた、カメラ114によって捕捉されたビデオストリームをネットワーク102を介して第2のデバイス130に送信し得る。ゲームアプリケーションは、第1のデバイス110のディスプレイ115上のウィンドウ112の中に、たとえばゲームアプリケーションの制御ウィンドウのローカルディスプレイをレンダリングし得る。第1のデバイス110はまた、ゲーム表示のアクション部分に関連するグラフィックスデータをウィンドウ122の中にレンダリングするためにディスプレイ120に送るために、外部ディスプレイ120とワイヤレス接続116とを利用することができる。
【００３０】
態様では、第1のデバイス110は、他方の側のビデオ遠隔会議アプリケーションに関連するビデオストリームまたはデータフローの到来部分をウィンドウ121の中に同時に表示し得る。ビデオストリームまたはデータフローの到来部分は、ネットワーク102を介して第2のデバイス130から受信されたビデオデータに基づくことができる。ビデオストリームの到来部分は、ネットワーク102を介して第2のデバイス130から第1のデバイス110に転送され得、ビデオ遠隔会議アプリケーションのためのデータフローパスに沿って転送され得る。ゲームアプリケーションおよびビデオ遠隔会議アプリケーションに対する解像度、フレームレート、LoD、および他のマルチメディアパラメータなどのマルチメディアパラメータは、ウィンドウ111、ウィンドウ112、ウィンドウ122およびウィンドウ121に適用され得る。マルチメディアパラメータは、ゲームグラフィックスデータおよびビデオ遠隔会議データを捕捉、生成および転送するためのデータフローに関連するそれぞれのデータフローパスに沿った、様々なハードウェアモジュールの元のマルチメディアパラメータまたは修正されたマルチメディアパラメータに基づいて適用され得る。加えて、マルチメディアパラメータは、データフローを構成するデータパケットに関連するQoSパラメータとして指定され得る。
【００３１】
同様に、第2のデバイス130は、カメラ134とディスプレイ135とを含み得る。第2のデバイス130は、ビデオ遠隔会議アプリケーションおよびゲームアプリケーションなどのコンカレントマルチメディアアプリケーションを実行中であり得る。ビデオ遠隔会議アプリケーションは、カメラ134を使用して第2のデバイス130のユーザのビデオを捕捉し得、ユーザのビデオを第2のデバイス130のディスプレイ135上のウィンドウ133にローカルに表示し得る。ビデオ遠隔会議アプリケーションはまた、カメラ134によって捕捉されたビデオストリームをネットワーク102を介して第1のデバイス110に送信し得る。ゲームアプリケーションは、第2のデバイス130のディスプレイ135上のウィンドウ132の中に、ゲーム表示のアクション部分または他の部分のローカルディスプレイをレンダリングすることができる。第2のデバイス130は、第2のデバイス130および第1のデバイス110上のビデオ遠隔会議アプリケーションに対するデータフローパスの一部であるネットワーク102を介して第1のデバイス110から受信されたビデオデータに基づいて、他方の側のビデオ遠隔会議アプリケーションに関連するビデオストリームをウィンドウ131の中に同時に表示し得る。ゲームアプリケーションおよびビデオ遠隔会議アプリケーションに対する解像度、フレームレート、LoD、および他のマルチメディアパラメータなどのマルチメディアパラメータは、ウィンドウ131、ウィンドウ133およびウィンドウ132に適用され得る。マルチメディアパラメータは、ゲームグラフィックスデータおよびビデオ遠隔会議データを捕捉、生成および転送するためのデータフローに関連するそれぞれのデータフローパスに沿った、様々なハードウェアモジュールの元のマルチメディアパラメータまたは修正されたマルチメディアパラメータに基づいて適用され得る。
【００３２】
コンカレントマルチメディアアプリケーションを実行している間に、第1のデバイス110および第2のデバイス130、ならびにそれらの中に組み込まれている特定のSoCブロックまたはサブブロックなどのデバイスは、電力または温度の制限に接近するかまたはそれらを超えることがある。そのような状況では、フルスケールのマルチメディアパラメータにおける継続的動作は、持続できなくなることがある。図1Bでは、グラフ140は、第1のデバイス110および第2のデバイス130内に組み込まれ得る、SoC内の様々なブロックに対する例示的な電力レベルを示す。グラフ140aは、ローカルディスプレイおよび外部ワイヤレス(WFD)ディスプレイデバイスをサポートする第1のデバイス110などのデバイスに対する相対的電力消費を示す。デバイスは、ゲームアプリケーションおよびビデオ遠隔会議またはビデオチャットのアプリケーションなどのコンカレントマルチメディアアプリケーションを実行中であり得る。図1Bは、コンカレントマルチメディアアプリケーションの実行中に、第1のデバイス110に関連するSoC141に対する電力レベル141aが、約3.2ワット(W)の例示的な値における例示的な総電力消費限界148をどのようにして超えるかを示す。追加の電力消費の寄与は、第1のデバイス110に関連するDRAM142、電力管理集積回路(PMIC)143、ディスプレイ144、カメラ145、および無線モジュール146によって追加され得る。それぞれのブロックは、DRAM電力寄与142a、PMIC電力寄与143a、ディスプレイ電力寄与144a、カメラ電力寄与145a、および無線モジュール電力寄与146aを第1のデバイス110の電力消費に追加する。追加の電力寄与は、本例では電力/熱配分のほぼ2倍である量147aだけ、総電力消費限界148を著しく超えることをもたらす。
【００３３】
グラフ140bは、ローカルディスプレイ(たとえば、デバイスディスプレイ)をサポートする第2のデバイス130などのデバイスに対する相対的電力消費を示し、ゲームアプリケーションおよびビデオ遠隔会議またはビデオチャットのアプリケーションなどのコンカレントマルチメディアアプリケーションを実行中である。コンカレントマルチメディアアプリケーションの実行中に、第2のデバイス130に関連するSoC141に対する電力レベル141bが、約3.2ワット(W)における例示的な総電力消費限界148を超えることがある。追加の電力消費の寄与は、第2のデバイス130に関連するDRAM142、電力管理集積回路(PMIC)143、ディスプレイ144、カメラ145、および無線モジュール146によって追加され得る。それぞれのブロックは、DRAM電力寄与142b、PMIC電力寄与143b、ディスプレイ電力寄与144b、カメラ電力寄与145b、および無線モジュール電力寄与146bを追加する。追加の電力寄与は、量147bだけ例示的な総電力消費限界148を著しく超えることをもたらすことがある。第1のデバイス110および第2のデバイス130が電力制限を超える量147aおよび147bは、周囲温度および他の要因などの状況に応じて短い時間期間の間許容可能であり得るが、いかなるゲームまたは会議のセッションが進行中であるとしても、コンカレントマルチメディアアプリケーションを終了させるという不都合な結果をもたらすことがあるシャットダウン機構または他の非常措置を起動することなく、長い時間期間の間持続され得ない。
【００３４】
一般的な例では、コンカレントマルチメディアアプリケーションを実行するデバイスに関連するハードウェアおよびソフトウェアは、図1Cに示すように構成され得る。1つまたは複数のマルチメディアアプリケーション150、151、152は、マルチメディアパラメータに対する特定の要件を有する様々なデータフローを有し得る。マルチメディアアプリケーション150は、解像度、フレームレート、LoD、およびそれらに関連する他のパラメータなどのマルチメディアパラメータ要件を有し得るデータフロー150aおよび150bを有し得る。マルチメディアアプリケーション151は、それらに関連するそれぞれのマルチメディアパラメータ要件を有するデータフロー151a、151bおよび151cを有し得る。さらに、マルチメディアアプリケーション152は、それらに関連するそれぞれのマルチメディアパラメータ要件を有するデータフロー152aおよび152bを有し得る。データフロー150a、150b、151a、151b、151c、152aおよび152bに対するマルチメディアパラメータ要件は、アプリケーションの各々の中、または様々なアプリケーションの間で同じであってよく、または異なってもよい。一般的に、データフローに対するマルチメディアパラメータ要件のうちの少なくともいくつかは、アプリケーションの各々の中、または様々なアプリケーションの間で異なってもよい。通常、アプリケーションの中で、異なるデータフローが、たとえば、データフローに関連する異なるハードウェアブロックまたはモジュールに基づいて、異なるマルチメディアパラメータ要件によって確立され得る。より具体的には、データフローを生成する異なるハードウェアブロックまたはモジュールは、異なるマルチメディアパラメータにおいてデータフローを生成することができ、一方、データフローを処理する様々なハードウェアモジュールは、異なるマルチメディアパラメータによってデータフローを取り扱うことが可能である。たとえば、カメラアプリケーションは、特定の解像度、フレームレートおよびLoDにおける、ビデオに関連するデータフローを有し得る。たとえば、コンカレントゲームアプリケーションに関連するグラフィックスレンダリングもまた、特定の解像度、フレームレートおよびLoDを有し得る。
【００３５】
既存の解決策では、データフロー150a、150b、151a、151b、151c、152aおよび152bならびにデータフロー自体に対する個別の元のマルチメディアパラメータ要件は、オペレーティングシステム(OS)サービスおよびOSカーネルモジュール155によって処理され得るかまたは取り扱われ得る。OSカーネルは、デバイス内で生成されたデータを使用しているデバイスおよびアプリケーションに対して個別のデバイスレベルサービスおよびアプリケーションレベルサービスを提供し得る。様々なマルチメディアパラメータ要件155a、155b、155cおよび155dは、SoC156上の個別のハードウェアおよびデバイスのセッティングおよび構成として実装され得る、SoC156に関連するハードウェアコアおよびデバイスに個別に送られ得る。しかしながら、現在のマルチメディアデバイスでは、協調するシステムの広範な変化をマルチメディアパラメータに組み入れるための、集中化されたOSサービスまたはカーネルモジュールは存在しない。従来のシステムの一例では、周波数調整モジュール160は、温度入力157aを供給し得る温度センサ157、電力入力158aを供給し得る電力センサ158、または入力159aを供給し得る他のセンサ159など、様々なセンサからの入力を受信するように構成され得る。他のセンサまたは入力は、デバイスの表面温度、外部もしくは周囲の温度、温度傾向(temperature trend)入力、バッテリー充電レベル入力、または他の入力と関連付けられてよく、それらを含んでよい。入力が一定の確立された値またはレベルに達するかまたはそれを超えると、周波数調整モジュール160は、マルチメディアパラメータを特別に考慮することなく、調整信号160a、160bおよび/または160cをSoC156内のハードウェアモジュールの特定の固定されたセットまたはサブセットに供給し得る。概して、主処理装置(MPU)およびグラフィック処理装置(GPU)などの主ハードウェアモジュールは、これらのモジュールが、電力消費に対して最も速やかな際立った効果を有すると見なされるように調整され得る。しかしながら、他の調整されないモジュールは、元のマルチメディアパラメータに従って通常の周波数での動作を継続するので、電力消費を低減するための調整の効率は不都合なほどに限定される。入力のレベルがしきい値以下のレベルに戻ると、周波数調整は終了され得、調整されたハードウェアモジュールの動作周波数は、通常の周波数値に戻され得る。
【００３６】
周波数調整および他の手法のこれらおよび他の不利点に対処するために、様々な態様とともに使用するのに好適な図2Aに示す例示的なシステム200は、たとえばSoC内の電力消費を低減するためのより包括的で効率的な手法を提供する要素を含み得る。コンカレントマルチメディアアプリケーション150、151および152は、マルチメディアパラメータに対する要件を有する様々なデータフローを有し得る。マルチメディアアプリケーション150は、解像度、フレームレート、LoD、およびそれらに関連する他のパラメータなどのマルチメディアパラメータ要件を有し得るデータフロー150aおよび150bを有し得る。マルチメディアアプリケーション151は、それらに関連するそれぞれのマルチメディアパラメータ要件を有するデータフロー151a、151bおよび151cを有し得る。さらに、マルチメディアアプリケーション152は、それらに関連するそれぞれのマルチメディアパラメータ要件を有するデータフロー152aおよび152bを有し得る。コンカレントマルチメディアアプリケーション150、151、152は、たとえば、ビデオ遠隔会議アプリケーション、リアルタイムマルチプレーヤゲーム、およびビデオディスプレイアプリケーションを含み得る。ビデオ遠隔会議アプリケーションおよびマルチプレーヤゲームアプリケーションは、ネットワークを介して追加の1人または複数の相手に接続され得るコンカレントマルチメディアアプリケーションの例である。したがって、ビデオ遠隔会議アプリケーションおよびゲームアプリケーションに関連するマルチメディアデータフローは、ネットワークを介して他の1人または複数の相手に及ぶものと見なされ得る。
【００３７】
データフロー150a、150b、151a、151b、151c、152aおよび152bならびにデータフロー自体に対するマルチメディアパラメータ要件は、OSサービスおよびOSカーネルモジュール210によって処理され得るかまたは取り扱われ得る。OSカーネルは、デバイス内で生成されたデータを使用しているデバイスおよびアプリケーションに対してデバイスレベルサービスおよびアプリケーションレベルサービスを提供し得る。様々な態様では、マルチメディアパラメータマネージャおよびデータフロートレーサ220は、OSサービスおよびOSカーネルモジュール210、コンカレントマルチメディアアプリケーション150、151および152とSoCモジュール230内のハードウェアコアおよびデバイスとの間の層として挿入され得る。マルチメディアパラメータマネージャおよびデータフロートレーサ220は、温度入力157aを供給する温度センサ157、電力入力158aを供給する電力センサ158、または入力159aを供給し得る他のセンサ159などのセンサからの入力を受信し得る。センサとして説明したが、温度センサ157、電力センサ158、または他の1つまたは複数のセンサ159は、計算された値または実際のセンサとは異なるソースから取得された値が記憶され得るレジスタまたは他のデバイスを表すこともある。したがって、温度入力157a、電力入力158a、または他の1つまたは複数の入力159aなど、供給される入力は、センサ、レジスタ、他のデバイス、またはそれぞれの値の他のソースから供給され得る。
【００３８】
マルチメディアパラメータマネージャおよびデータフロートレーサ220に入力される温度入力157a、電力入力158a、または他の1つまたは複数の入力159aのうちの1つまたは複数が、電力および熱の管理に対して確立されたしきい値を超えることがある。値がしきい値を超えることに応答して、またはその前に、マルチメディアパラメータマネージャおよびデータフロートレーサ220は、対応するデータフローパスを確立するためにSoC230に関連する様々なハードウェアコアおよびデバイスを介してデータフロー220a、220b、220cおよび220dなどのデータフローを追跡する動作を実施することができる。データフローパスを追跡するステップは、データパケットによって取られるハードウェアを通るパスを決定するために、データフローに関連するパケットのパケットヘッダを調査または検査するステップを含み得る。データフローパスは、デバイスが、たとえばネットワーク接続上で共有通信チャネルを介して接続され得る他のデバイスとの間に延びるパスの部分を含み得る。マルチメディアパラメータマネージャおよびデータフロートレーサ220は、データフローおよび/またはコンカレントマルチメディアアプリケーション150、151および152に関連する優先度を確立し得る。温度および電力などのセンサ入力値が温度および電力の制御のために必要なしきい値レベルに達するかまたはそれを超えると、マルチメディアパラメータマネージャおよびデータフロートレーサ220は、マルチメディアパラメータを低減またはオーバーライドすることができる。ユーザエクスペリエンスを保存または最大化するのにほとんど貢献しない低優先度データフローおよび/またはアプリケーションに関連する、解像度、フレームレート、LoDまたは他のパラメータなどのマルチメディアパラメータは、低優先度データフローパスに沿ったハードウェアモジュール内の電力消費を低減するために、オーバーライドまたは低減され得る。センサ入力値がしきい値を下回る値に戻ると、マルチメディアパラメータマネージャおよびデータフロートレーサ220は、低優先度データフローまたは任意のデータフローに関連するマルチメディアパラメータが低減またはオーバーライドされているかどうかを決定し得る。マルチメディアパラメータマネージャおよびデータフロートレーサ220は、以下でより詳細に説明するように、マルチメディアパラメータが低減されている最高優先度データフローに関連するマルチメディアパラメータを、それらの事前低減値(pre-reduction value)、最初のまたは元の値に復元することができる。
【００３９】
態様を実装するのに好適な、代表的なデバイス205を、図2Bに示す。デバイス205は、異なるタイプおよびマルチメディアパラメータ要件の複数の同時実行マルチメディアアプリケーションの環境を表し得る、コンカレントアプリケーションブロック250を含み得る。コンカレントアプリケーションブロック250は、デバイス205をネットワーク接続を介して別の1つまたは複数のデバイスに結合する共有通信チャネルを伴うコンカレントマルチメディアアプリケーション251を含み得る。コンカレントマルチメディアアプリケーション251は、たとえば、3-Dゲームアプリケーション252およびビデオチャットアプリケーション253を含み得る。コンカレントアプリケーションブロック250はまた、デバイス205の外部にあるワイヤレスディスプレイを制御するために使用され得るディスプレイアプリケーション254を含み得る。アプリケーションブロック250はまた、他のマルチメディアアプリケーション255を含み得る。デバイス205はまた、解像度、フレームレート、LoD、または他のパラメータなどのマルチメディアパラメータを管理し、データフローパスを追跡するように構成され得るマルチメディアパラメータマネージャおよびデータフロートレーサ260を含み得る。マルチメディアパラメータマネージャおよびデータフロートレーサ260は、たとえば、マルチメディアデータフローに関連するデータフローパスを追跡し、それぞれのデータフローに関わるすべてのハードウェアモジュールを識別し得る。マルチメディアパラメータマネージャおよびデータフロートレーサ260は、さらに、ネットワーク接続207などのネットワーク接続を介して別の1つまたは複数のデバイスに延びるデータフローパスを識別し得る。
【００４０】
デバイス205はまた、たとえば、SoCのモジュールであってよいハードウェアサブブロックまたはサブシステムを含み得るハードウェアブロック270を含み得る。ハードウェアブロック270は、カメラモジュール262、カメラサブシステム263、中央処理装置(CPU)264、グラフィック処理装置(GPU)265、ビデオエンコーダ/デコーダ(CODEC)266、およびモバイル開発プラットフォーム(MDP)モジュール267を含み得る。ハードウェアサブブロックは、各ハードウェアサブシステムのために特別に構成され得る、対応するデバイスドライバ258に結合され得る。代替として、デバイスドライバ258は、汎用的であってよく、またはサブシステムに関連するハードウェアのタイプに対して汎用的であってよい。デバイスドライバ258は、ハードウェアサブブロックが、オペレーティングシステム、アプリケーションソフトウェア、およびデバイスの構成要素、システムおよびサブシステムの残りとともに機能することを可能にするオペレーティングシステムカーネルまたはオペレーティングシステムサービスの一部として組み込まれてよい。代替として、デバイスドライバ258は、ランタイム中にアプリケーションプログラムによってリンクされるライブラリの一部であってよい。ハードウェアサブシステムは、それぞれのデバイスドライバ258との相互作用を通じてハードウェアサブシステムを使用するソフトウェアモジュールによって制御され得る、解像度、フレームレート、詳細度(LoD)、および他のパラメータなど、多様なマルチメディアパラメータに従ってマルチメディアデータを生成することができる。デバイスドライバ258は、デバイス自体と、ハードウェアサブシステムへのアクセスを要求し得るかまたはハードウェアサブシステムとデータを送受信し得るソフトウェアとの間のインターフェースを提供し得る。
【００４１】
ハードウェアモジュールとの相互作用は、ライブラリおよびマルチメディアフレームワーク256ならびにアプリケーションプログラミングインターフェース(API)257を介して達成され得る。ライブラリおよびマルチメディアフレームワーク256は、プラグアンドプレイ機構、電力管理機構および他の機構など、様々なオペレーティングシステムカーネルレベルのフレームワークを介してハードウェアサブシステムへのアクセスを提供し得る。ライブラリおよびマルチメディアフレームワーク256はまた、様々なライブラリを介してハードウェアサブシステムへのアクセスを提供し得る。ライブラリは、ダイナミックリンクライブラリ(DLL)、汎用デバイスドライバのライブラリ、デバイス固有のデバイスドライバのライブラリ、タイマーおよびデバッガなどのデバイスドライバに対するサポート機能のライブラリを含み得る。API257は、ハードウェアサブシステムへのアクセスを提供する関数呼出しおよび他のインターフェースなど、より高レベルのソフトウェアインターフェースを提供し得る。アクセスは、ソフトウェア関数呼出しなどのユーザモード機構、オペレーティングシステムサービス、直接デバイス関数呼出しを含む機構を介して提供され得る。アクセス機構は、デバイスドライバ、オペレーティングシステム、およびサポートサービスを介してハードウェアサブシステムのソフトウェア制御を可能にする。ハードウェアサブシステムへのアクセスは、マルチメディアアプリケーションにだけではなく、マルチメディアパラメータマネージャおよびデータフロートレーサを含む他のアプリケーションおよびシステムにも提供され得る。態様では、アクセスは、ハードウェアサブシステムのマルチメディアパラメータをオーバーライドするために使用され得る。
【００４２】
様々な態様では、コンカレントアプリケーションブロック250およびハードウェアブロック270は、ライブラリおよびマルチメディアフレームワーク256およびAPI257に結合され得る。コンカレントアプリケーションブロック250、ハードウェアブロック270、ライブラリおよびマルチメディアフレームワーク256、およびAPI257の間の結合は、オペレーティングシステムサービス、プロセス間メッセージ、および/またはコンカレントマルチメディアアプリケーションのうちの様々なアプリケーションから様々なハードウェアサブシステムへの関数呼出しを介して、あるいは同様の機構を介して結合するソフトウェアの形態であり得る。関数呼出しまたは他の結合機構は、コンカレントアプリケーションブロック250内のマルチメディアアプリケーションが、データフローパスに沿った様々なハードウェアサブシステムおよび他のマルチメディアアプリケーションからデータを受信すること、そこにデータを送ることを可能にし得る。関数呼出しまたは他の結合機構は、さらに、コンカレントアプリケーションブロック250内のマルチメディアアプリケーションが、ハードウェアブロック270内の様々なハードウェアサブシステムを構成することを可能にし得る。コンカレントアプリケーションブロック250内のアプリケーションによって作られた関数呼出しまたは他の結合機構のうちの一部または全部、およびハードウェアブロック270のハードウェア要素を含むマルチメディアデータのフローに対して確立された対応するパスは、本明細書で説明する様々なマルチメディアデータフローに対するデータフローパスを形成することができる。データフローパスは、ネットワーク接続207を介して、1つまたは複数の他のデバイスとの双方向通信を含む通信を可能にするネットワークモジュールの間のデータフローをさらに含み得る。
【００４３】
デバイス205は、センサ入力データ206aをマルチメディアパラメータマネージャおよびデータフロートレーサ260に供給し得るセンサブロック206をさらに含み得る。説明しやすいようにセンサブロック206は単一のブロックとして示すが、センサブロック206は、上記のように、温度入力、電力入力、または他の入力など、1つまたは複数のセンサ入力を表し得る。マルチメディアパラメータマネージャおよびデータフロートレーサ260は、コンカレントアプリケーションブロック250内のアプリケーションに関連するデータフローのうちの様々なデータフローに優先度を指定し得る。優先度は、周期的に更新または調整され得る。センサ入力データ206aの値がしきい値に達するかまたは超えると、マルチメディアパラメータマネージャおよびデータフロートレーサ260は、指定された優先度に基づいて解像度、フレームレート、LoDなど、データフローに関連するマルチメディアパラメータを調整し得る。たとえば、低優先度を有するデータフローは、より高い優先度を有するデータフローの前にまたはそれの代わりに、解像度、フレームレート、LoD、または他のパラメータなどのマルチメディアパラメータの低減を経験することがある。
【００４４】
一態様では、マルチメディアパラメータの低減、復元、または調整は、デバイスドライバ258のうちのいくつかとマルチメディアパラメータマネージャおよびデータフロートレーサ260との間のソフトウェア接続または論理接続であり得る接続261を介してデバイスドライバレベルにおいて達成され得る。具体的に言うと、マルチメディアパラメータマネージャおよびデータフロートレーサ260は、ハードウェアブロック270内の様々なハードウェアサブシステムに対するマルチメディアパラメータ値をモニタするように構成され得る。マルチメディアパラメータマネージャおよびデータフロートレーサ260は、さらに、温度および電力の入力などの電力関連レベルがしきい値または制限を超えると、データフローパスに沿ったハードウェアデバイスまたはサブシステムのいくつかのマルチメディアパラメータの値をオーバーライドまたは低減する論理によって構成され得る。マルチメディアパラメータマネージャおよびデータフロートレーサ260は、電力関連レベルがしきい値または制限を下回ると、マルチメディアパラメータの値を復元し得る。
【００４５】
たとえば、マルチメディアパラメータマネージャおよびデータフロートレーサ260は、データフローパスに関連する優先度を決定し、マルチメディアパラメータ値が、データフローパスに沿ったハードウェアブロックに対して低減されているかどうかを決定することができる。電力関連値がしきい値または制限を下回ると、マルチメディアパラメータマネージャおよびデータフロートレーサ260は、マルチメディアパラメータ値の低減を経験した最高優先度ハードウェアブロックのマルチメディアパラメータの最初のまたは元の値を復元し得る。
【００４６】
態様では、デバイスドライバ258は、ソフトウェア接続、プロセス間通信機構、またはマルチメディアアプリケーションのうちの様々なアプリケーションへの他の論理接続などの接続262a〜267aを介して、コンカレントアプリケーションブロック250内の対応するアプリケーションにマルチメディアパラメータの値の低減または復元を通知し得る。たとえば、マルチメディアアプリケーションは、それぞれのデバイスドライバ258を介して供給される信号または他の機構を介して通知され得る。代替として、ライブラリおよびマルチメディアフレームワーク256ならびにAPI257は、ハードウェアが制御され得、マルチメディアパラメータ変更の通知がマルチメディアアプリケーションに供給され得る機構を提供し得る。アプリケーションブロック250内のマルチメディアアプリケーションによってアサートされ、予期される設定と、マルチメディアパラメータマネージャおよびデータフロートレーサ260によってアサートされるオーバーライド設定との間の差のために、アプリケーションブロック250内のマルチメディアアプリケーションの通知が必要になるかまたは望ましくなることがある。特に、通知に応答してアプリケーションがマルチメディアパラメータに対する期待値を低減し得るとき、さもなければマルチメディアパラメータの期待値と低減された値との間の差を補正するために必要となり得る追加の処理が排除され得る。
【００４７】
本態様に従って追跡するデータフローパスをよりよく理解するために、様々なハードウェアサブシステムに及ぶ様々なデータフローおよびデータフローパスを含む例300を図3Aに示す。態様では、カメラ310が、ビデオデータ310aを形成するために、1080p30 YUV420など、所与のマルチメディアパラメータに従って未加工ビデオデータを生成し得る。ビデオデータ310aは、たとえば、カメラ310が生成することができる最大のフレームレートおよび解像度において生成され得る。代替として、ビデオデータ310aは、生成のためにカメラ310が現在ハードウェアレベルにおいて構成されているいかなる解像度およびフレームレートにおいても生成され得る。ビデオデータ310aは、1080p30 YUV420などの最初のマルチメディアパラメータにおいて、データフロー1 311aおよびデータフロー2 311bを形成するためにビデオデータ310aを処理し得るカメラサブシステム311に結合され得る。
【００４８】
様々な態様では、データフローパス内のデータは、データパケットが様々なハードウェアモジュールを通過するときの、一連のカプセル化されたヘッダを含むパケットデータであり得る。パケットヘッダ情報は、パケットが通過した様々なハードウェアモジュールを識別するために使用され得る。さらに、アプリケーションおよびデータフローは、プロセス識別子、スレッド識別子、コンテキスト識別子などの様々な機構を用いて識別され得る。デバイスドライバおよびオペレーティングシステムサービスは、ハードウェアモジュールに関連するコンテキスト、プロセスおよびスレッドを追跡するために使用され得る。上記の情報を使用して、マルチメディアパラメータマネージャおよびデータフロートレーサは、SoC内のハードウェアサブシステムを介してデータフローパスを確立するために、各アプリケーションおよびデータフローに関連する様々なハードウェアモジュールを追跡し得る。
【００４９】
データフロー311aおよびデータフロー311bは、本明細書で説明するように、カメラサブシステム311との相互作用を介して構成可能な解像度およびフレームレートなどのパラメータを有するビデオデータフローであり得る。データフロー1 311aはビデオエンコーダ312に論理的に結合され得、ビデオエンコーダ312は、たとえばビデオチャットまたはビデオ会議アプリ(app)313にさらに論理的に結合され得る符号化されたデータフロー312aを生成し得る。符号化されたデータフロー312aは、たとえば、解像度およびフレームレートなどの1つまたは複数のマルチメディアパラメータに従って、ビデオ会議アプリ313の他方の端部上のデバイスなど、別のデバイスに、ワイヤレスリンク305を介して外部フロー313xとして転送され得る。ビデオ会議アプリ313はまた、外部フロー313xから符号化されたビデオを受信し得、外部フロー313xは、復号されたデータフロー314aが生成され得るビデオデコーダ314に、符号化されたデータフロー313aとして転送され得る。データフロー311a、311b、312a、313a、313x、314aまたは他のデータフローのデータパケットに対するヘッダ情報は、パケットがすでに存在する場所、パケットが宛先指定される場所、および他の情報などの情報を決定するために任意の点において検査され得る。各デバイスまたはハードウェアサブシステムは、自体を識別するパケットヘッダ内の情報にタイムスタンプなどの他の情報を付加することができる。
【００５０】
復号されたデータフロー314aは、グラフィック処理装置(GPU)316に転送され得、GPU316は、外部デバイスに対する2次グラフィックス合成を生成することと関連付けられ得る。GPU316はまた、GPUゲームレンダリングブロック315から生成されたグラフィックスデータフロー315aを受信し得、GPUゲームレンダリングブロック315は、解像度、フレームレート、LoDまたは他のパラメータなどのマルチメディアパラメータに従ってゲームアプリケーションなどと関連して動作し得る。GPU316は、コンカレントマルチメディアデータが、1080p60 YUVなど、外部ディスプレイデバイスと互換性があるマルチメディアパラメータに従ってともに表示され得るように、グラフィックスデータフロー315aと復号されたデータフロー314aとの合成であり得るビデオデータフロー316aを生成し得る。ビデオデータフロー316aは、さらに論理的に結合されてビデオエンコーダ2 317に転送され、ビデオエンコーダ2 317は、合成ビデオデータフロー316aを符号化してビデオビットストリームを生成することができる。ビデオビットストリームは、WFDビデオデータフロー317aなどの外部ディスプレイデバイスと互換性のあるWFDビデオビットストリームを含み得る。WFDビデオデータフロー317aは、WLANモジュール318に転送され得る。WLANモジュール318は、ビデオビットストリームをワイヤレスビデオデータフロー318aとして2次ワイヤレスディスプレイ319に転送し得る。データフロー2 311bは、1080p30 YUV420などの1つまたは複数のマルチメディアパラメータに従って構成され得、ローカル1次ディスプレイに対する1次グラフィックス合成を生成することと関連付けられたGPU320に論理的に結合され得る。GPU320はまた、ネットワーク接続を介して結合されたデバイスからなど、外部データフロー311xからデータを受信し得る。外部デバイスは、1080p30 ARGBなどの1つまたは複数のマルチメディアパラメータ値に従って外部データフロー311xに対するマルチメディアデータを生成し得るゲームアプリケーションおよび遠隔会議アプリケーションなど、1つまたは複数のマルチメディアアプリケーションを実行中であり得る。
【００５１】
本明細書で説明するようにデータフローパスが追跡され、優先度が評価されると、データフローパス中に存在する特定のハードウェアサブシステムが識別され得、優先度に基づいて特定のデータフローと関連付けられ得る。図3Bに示すように、ハードウェアサブシステムのグループを有するデータフローパスは、データフローパストレース330の中に含まれ得る。データフローパストレース330は、たとえば、図中で強調されているように、ゲームレンダリングブロック315、グラフィックスフロー315a、GPU316、ビデオデータフロー316a、ビデオエンコーダ2 317、WFDビデオデータフロー317a、WLANモジュール318、ワイヤレスビデオデータフロー318a、および2次ワイヤレスディスプレイ319を含み得る。データフローパストレース330中の要素は、特定の優先度を割り当てられてよく、またはさもなければ、グラフィックスレンダリングモジュール315、GPU316、ビデオエンコーダ2 317、WLANモジュール318、および2次ディスプレイ319などのハードウェアまたはソフトウェアのブロックに対するマルチメディアパラメータを調整するために識別され得る。これらのブロックのマルチメディアパラメータを調整することによって、データフローのマルチメディアパラメータは、それに応じて調整され得る。さらに、データフローパスは、コンカレントマルチメディアアプリケーションに関連するすべてのデータフローに対して、追跡されて優先度を付けられ、条件が変化するときに更新され得る。データフローパスおよび優先度を更新することは、マルチメディアアプリケーションが新しく実行または終了されるときにとりわけ有用であり得る。
【００５２】
態様では、データフローパストレース330は、別のデータフローパス340またはその一部への結合を有するGPU316などのハードウェアモジュールを含み得る。データフローパス330およびデータフローパス340は、ともに、復号されたビデオフロー314aを含み得る。態様では、復号されたビデオフロー314aは、高優先度データフローとして指定され得るデータフローパストレース330の部分でないことがある。そのため、データフローパストレース330に対するマルチメディアパラメータは、低優先度データフローパスが完全に低減された後にのみ低減されるべきである。データフローパストレース330は高優先度データフローであるので、復号されたビデオフロー314aは、たとえ高優先度データフローパストレース330内のハードウェアモジュールに結合されるとしても、データフローパストレース330から省略されてよい。代わりに、復号されたビデオフロー314aは、低優先度で指定され得るデータフローパス340の部分として指定され得る。データフローパス340は、本明細書で説明する態様に従って、高優先度データフローパス330の前にマルチメディアパラメータ低減を受けるようになる。
【００５３】
本例では、ビデオフロー314aは、解像度、フレームレート、LoDまたは他のパラメータなど、低減されたそれらのマルチメディアパラメータを有し得る。ビデオフロー314aは、低減されたマルチメディアパラメータによってGPU316に入力され得るが、GPU316の出力に対する現在のマルチメディアパラメータは低減されない。ビデオフロー314a(たとえば、低減されたマルチメディアパラメータを有する)はGPU316の出力中に現れることになるが、その出力は、全マルチメディアパラメータ値において生成され得る。しかしながら、ビデオフロー314aの効率的な出力は、低減されたパラメータを有する出力である。代替として、いくつかの例では、ビデオフロー314aのマルチメディアパラメータ値は低減されるが、GPU316は、改善された出力を供給するためにビデオフロー314aのスケール変更を試行することがある。高優先度によって指定され得るグラフィックスレンダリングモジュール315からのグラフィックスフロー315aを含むデータフローパストレース330と関連付けられるGPU316の部分は、解像度、フレームレート、LoDまたは他のパラメータなどの元のまたは最初のマルチメディアパラメータ値によって表示され得る。
【００５４】
追跡されたデータフローパスに沿ったハードウェアサブシステムの各々に対する設定を確立することは、図3Cに示す論理に従って達成され得る。図示の論理は、本質的に例示的であり、ハードウェア論理、処理論理、ソフトウェアモジュール中に組み込まれる論理を含む多様な方法、または他の方法で実施され得る。データフローパス中のハードウェアサブシステムの各々に対する最新または現在のマルチメディアパラメータ設定に関して決定するために、論理が、マルチメディアパラメータマネージャおよびデータフロートレーサによって使用され得る。論理ブロック340は、入力を受信し、現在のハードウェアサブシステムに対する現在のマルチメディアパラメータ設定に対する出力を供給するように構成され得る。論理ブロック340は、ハードウェアサブシステムに対する元のまたは最初のマルチメディアパラメータ値に対応する入力341を受信し得る。最初のマルチメディアパラメータ値は、データフローに関する対応するアプリケーションによって、または場合によってはデータフローによって最初に指定された値を含み得る。論理ブロック340は、さらに、マルチメディアパラメータに対するオーバーライド値に対応する入力342を受信し得る。オーバーライド値は、マルチメディアパラメータの調整された値であり得る。確立された熱または電力の配分内で動作を維持するために調整またはオーバーライドが必要であることを、温度および/または電力のレベルが示すとき、調整されたマルチメディアパラメータが、マルチメディアパラメータマネージャおよびデータフロートレーサによって確立され得る。代替として、調整されたマルチメディアパラメータまたはオーバーライド値は、他の理由のために作成されることがある。論理ブロック340は、さらに、論理ブロック344の結果または出力を表す入力343を受信し得る。
【００５５】
論理ブロック344は、データフローパス中の次のダウンストリームハードウェアサブシステムの現在のマルチメディアパラメータ設定に対応する入力345を受信し得る。論理ブロック344は、さらに、次のダウンストリームハードウェアサブシステムの後であるデータフローパス中の第2のダウンストリームハードウェアサブシステムに対する現在のマルチメディアパラメータ設定に対応する入力346を受信し得る。論理ブロック344は、N番目のダウンストリームブロックに対する現在のマルチメディアパラメータ設定に対応するデータフローパスに沿ったN番目のダウンストリームサブシステムからの入力347など、追加の入力を受信し得る。論理ブロック344は、マルチメディアパラメータ設定入力345、346および347の間の最大値を入力343として論理ブロック340に供給し得る。したがって、論理ブロック344は、ユーザエクスペリエンスの可能な最高品質を維持するための試行において、ダウンストリームブロックに対する最大のマルチメディアパラメータ値の考慮を可能にする。
【００５６】
論理ブロック340が、マルチメディアパラメータ入力341、342および343、ならびに随意に優先度値349などの他の入力のすべてを受信しているとき、マルチメディアパラメータ出力348が供給され得る。他の態様では、優先度は、様々な追跡されたデータフローパスに対してマルチメディアパラメータマネージャおよびデータフロートレーサにおいてすでに知られている。論理ブロック340は、マルチメディアパラメータ入力341、342および343の間の最小マルチメディアパラメータ値を出力348として供給し得る。したがって、マルチメディアパラメータ出力348は、現在のハードウェアサブシステムに対するマルチメディアパラメータ設定となり得る。態様では、図3Cに示す論理は、あらゆるハードウェアモジュールまたはサブシステムに対するマルチメディアパラメータ値を調整することに関連して適用され得る。論理は、たとえば、優先度、温度および電力の値、または他の条件に変化が発生するときに、周期的に適用され得る。代替として、論理は、変化する条件によりよく適合するように連続的に適用され得る。
【００５７】
述べたように、温度レベル、電力レベル、または他の入力が、電力管理を起動するためのしきい値を超えるとき、マルチメディアパラメータがより高い優先度データフローに対して低減または調整される前に、マルチメディアパラメータが最初に低優先度データフローに対して低減または調整され得る。反対に、温度レベル、電力レベル、または他の入力が、電力管理を起動するためのしきい値を下回るとき、マルチメディアパラメータは、低優先度データフローおよびアプリケーションに対して復元または調整される前に、高優先度データフローに対して復元または調整され得る。優先度は、コンカレントマルチメディアアプリケーションウィンドウのうちのどれが、最も頻繁に、または最も長い時間期間の間見られているかを検出することによることを含めて、多様な方法で様々なデータフローに対して確立、維持および更新され得る。
【００５８】
図4Aに示すように、視線の検出および認識が、コンカレントマルチメディアアプリケーションに対するデータフロー間の優先度を決定するために使用され得る。第1のデバイス110は、多様な1つまたは複数の方法でカメラ114の光場422の中で片方または両方の目421をモニタするためにカメラ114を使用し得る。片方または両方の目421の凝視点423に関連する統計424が、第1のデバイス110の動作中に凝視点423の方向に対して収集および記憶されるように、視線優先度モジュール420に入力され得る。視線優先度モジュール420は、視線情報を使用し得るか、または視線情報を本明細書で説明する他の優先度関連情報と組み合わせて使用し得る。優先度は、マルチメディアパラメータマネージャおよびデータフロートレーサ460に対して利用可能にされ得る。一態様では、視線検出は、たとえば、角膜反射(CR)を生成するために、瞳孔の中心と赤外または近赤外の非コリメート光とを使用し得る。瞳孔中心と角膜反射との間のベクトルは、固視点または視線方向を計算するために使用され得る。他の方法は、視線方向または固視点を検出するために使用され得る。たとえば、視線検出が使用され得る前のセットアップ手順中に実施され得る、ユーザに対する参照点を確立するための較正手順を実施することが、さらに必要である。
【００５９】
眼球運動は、凝視とサッカードとの2つの一般的カテゴリーに分類され得る。凝視は、片方または両方の目421の視線がある位置に休止するときに発生し得る。サッカードは、片方または両方の目421が別の凝視位置に移動する過程で発生する。一連の凝視およびサッカードは、スキャンパスと呼ばれることがある。コンカレントマルチメディアアプリケーションのデータフローに対する優先度を確立するために、凝視に関連する片方または両方の目421からの情報が、どのウィンドウをユーザが最も頻繁に見ているかまたは最も長く持続して見ているかに関する統計を確立するのに最も有用であり得る。凝視は、一般的に約200ms〜350ms続く可能性があるか、あるいはユーザが、たとえばテキストを読んでいるかまたはシーンを見ているかに応じてより長くまたはより短くなり得る。対話型ゲーミングセッション、および集中と焦点合わせとが必要な他のアプリケーションに対して、ゲームアプリケーションまたは他のアプリケーションに関連するウィンドウの中の凝視の持続時間は、より長くなる可能性がある。
【００６０】
本例では、凝視点423は、ゲームアプリケーションと関連付けられ得るウィンドウ410の中に位置し得る。遠隔会議アプリケーションの当事者1のウィンドウ411は、外部ディスプレイ120上のゲームアプリケーションのゲーミングウィンドウ410上に重ね合わせられ得る。遠隔会議アプリケーションの当事者2のウィンドウ412およびゲームアプリケーションのゲーミング制御ウィンドウ413などの追加のウィンドウが、第1のデバイス110上に表示され得る。しかしながら、ゲーミングウィンドウ410内の凝視点423上の片方または両方の目421の視線の焦点合わせの持続時間は、ゲームプレイの間、顕著である。遠隔会議アプリケーションウィンドウ411、当事者2のウィンドウ412、またはゲーミング制御ウィンドウ413への周期的視線固定(eye gaze fixation)は発生し得るが、片方または両方の目421の視線固定の統計は、ユーザが、ゲーミングウィンドウ410の中でゲームアプリケーションに主に焦点を合わせていることを示しており、したがって、ゲームアプリケーションおよび対応するデータフローが、高い優先度を有するものと確認され得る。
【００６１】
視線優先度モジュール420内で展開された優先度情報が、マルチメディアパラメータマネージャおよびデータフロートレーサ460に供給されると、コンカレントマルチメディアアプリケーションに関連するデータフローパスが追跡され得る。温度、電力および他のセンサ入力レベル、または他の入力レベルが上昇し下降するにつれて、追跡されたデータフローパスに沿ったハードウェアサブシステムおよびモジュールが、マルチメディアパラメータ調整のために識別され得る。視線統計が変わるにつれて、優先度が更新され得る。センサ入力レベルまたは他の入力レベルが上昇してしきい値に達するかまたはそれを超えると、電力管理が起動され得る。低優先度データフローに関連するデータフローパスに沿ったマルチメディアパラメータは、より高い優先度データフローの前に低減または調整され得る。センサ入力レベルまたは他の入力レベルがしきい値レベルを下回ると、電力管理が中止され得る。電力管理が中止されると、高優先度データフローに関連するデータフローパスに沿ったサブシステムおよびモジュールに対するマルチメディアパラメータが、低優先度データフローの前に復元または調整され得る。
【００６２】
他の態様では、図4Bに示すように、コンカレントマルチメディアアプリケーションは、マルチメディアパラメータマネージャおよびデータフロートレーサ460と関連して動作するように構成され得る優先度割り当てモジュール440に情報を供給し得る。第2のデバイス130は、第2のデバイス130のディスプレイ上に表示される、当事者1のウィンドウ431および当事者2のウィンドウ432を有する遠隔会議アプリケーションなど、コンカレントマルチメディアアプリケーションによって構成され得る。コンカレントマルチメディアアプリケーションはまた、ゲームに関連するグラフィックスが第2のデバイス130のディスプレイ上にレンダリングされ表示されるゲーミングウィンドウ430を有するゲームアプリケーションを含み得る。態様では、ビデオ遠隔会議アプリケーションは、優先度に関する情報を提供し得る。優先度情報は、ビデオ会議アプリケーションデータフロー優先度モジュール442と関連する優先度の選好、示唆、要件、または推奨であり得る優先度ヒント442aを含み得る。
【００６３】
1つまたは複数の特定のデータフロー442b、442cおよび442dに対して要求または推奨されるマルチメディアパラメータに関連するヒントを含む様々なヒントが、ビデオ会議アプリケーションデータフロー優先度モジュール442によってマルチメディアパラメータマネージャおよびデータフロートレーサ460の優先度割り当てモジュール440に供給され得る。ゲームアプリケーションは、ゲームアプリケーションデータフロー優先度モジュール441と関連する優先度の選好、示唆、要件、または推奨であり得る優先度ヒント441aなどの情報を、さらに供給し得る。1つまたは複数の特定のデータフロー441b、441c、441dおよび441eに対して要求または推奨されるマルチメディアパラメータに関連するヒントを含む様々なヒントが、ゲームアプリケーションデータフロー優先度モジュール441によってマルチメディアパラメータマネージャおよびデータフロートレーサ460の優先度割り当てモジュール440に供給され得る。優先度割り当てモジュール440は、コンカレントマルチメディアアプリケーションのデータフローに関連する優先度を確立、維持および更新するために、ヒント情報を使用し得る。優先度割り当てモジュール440は、視線検出統計または他の優先度関連情報からの情報を含む他の情報と組み合わせてヒント情報を使用し得る。優先度を確立および更新するために使用され得る追加の優先度関連情報の非限定的な例は、コンカレントマルチメディアアプリケーションのウィンドウのうちのどれがディスプレイの最大面積を占めるか、ウィンドウのうちのどれが「アクティブ」(たとえば、入力デバイスからの入力を現在受信中)であるか、どのウィンドウがマルチメディアデータの最大量を供給中であるかなどに関する情報を含み得る。
【００６４】
態様方法500では、温度しきい値を超える温度および電力しきい値を超える電力消費のうちの1つまたは複数を決定することに応答して、SoCを含むデバイス上で実行するコンカレントマルチメディアアプリケーションに対するデータフローを管理する方法が、図5Aに示される。動作デバイスは、ブロック501においてSoCの温度をモニタし得る。温度値は、本明細書で上述したように、センサによって測定された値としてリアルタイムで取得され得る。温度値はまた、レジスタに記憶されてよく、または前に測定された値に基づく予測値であってよく、または何らかの組合せであってよい。さらに、動作デバイスは、ブロック502においてSoCの電力値をモニタし得る。電力値は、たとえば、リアルタイムの電圧、電流、送信電力、または他の測定値の関数として、リアルタイムで取得され得る。電力値は、記憶された電力レベル、予測された電力レベル、または測定または記憶された値から計算された傾向に基づく値、および電力に影響を与え得る他の入力をさらに含み得る。代替の電力値の非限定的な例は、前の電力消費レベルの履歴値を含み得る。前の電力消費レベルは、さらに、様々な条件下でコンカレントマルチメディアアプリケーションのうちのいくつかを実行する過去の例と関連付けられ得る。そのような前の電力消費情報は、アプリケーションが新しく開始されるとき、または現在実行中で同様の条件に遭遇しているときに、同じアプリケーションに対する現在および将来の電力レベルが予測されることを可能にし得る。
【００６５】
SoC温度がしきいの温度レベル、たとえばレベルが適合または超過する(すなわち、決定ブロック503=「Yes」)ときに温度レベルを低減するためにシステム電力管理活動を起動するために事前に決定または設定されるレベル以上であるとき、電力消費を軽減するためのアクションが取られ得る。SoC温度がしきいの温度を上回らず(すなわち、決定ブロック503=「No」)、SoC電力がしきいの電力レベル以上である(すなわち、決定ブロック504=「Yes」)とき、電力消費を軽減するためのアクションが、同様に取られ得る。しきい値レベルは、レベルが適合または超過するときに電力レベルを低減するためにシステム電力管理活動を起動するために事前に決定または設定されるレベルを含み得る。
【００６６】
一態様では、ブロック505において、電力消費を軽減するために、マルチメディアパラメータ低減を経験していないデータフロー間で最低優先度を有するコンカレントマルチメディアアプリケーションのデータフローのうちの1つまたは複数が識別され得る。データフローの優先度は、1つまたは複数のマルチメディアパラメータにおける低減が引き起こす、ユーザエクスペリエンスへの影響に直接関係することがある。さらに、最低優先度を有するデータフローが識別されると、最高に次ぐ優先度を有する、コンカレントマルチメディアアプリケーションのデータフローのうちの追加のいくつかが識別され得、すべてのコンカレントマルチメディアデータフローがそれらに優先度を割り当てるまで、以下同様である。態様では、優先度は、新しいコンカレントマルチメディアアプリケーションが開始、終了されるとき、またはユーザが、焦点をアプリケーションのうちの異なるものに切り替えるときに、デバイス動作中に連続的または周期的に調整および更新され得る。
【００６７】
最低優先度を有するデータフローが識別されると、ブロック506において、データフローパスが、識別されたデータフローに対して追跡され得る。一態様では、データフローパスは、たとえば、物理的データフローパスを追跡することによって追跡され得る。上記のように、データフローに関連する各パケットは、パケットが通過したハードウェアモジュールまたはサブシステムの各々を識別するヘッダまたは一連のカプセル化されたヘッダを含み得る。パケットヘッダ情報は、さらに、パケットに対するデータフローパスに沿ったハードウェアモジュールまたはサブシステムの発信元および宛先のアドレスを識別し得る。物理的フローパスを追跡するステップは、パケットの発信元および宛先のアドレスを識別するステップと、そのアドレスを、データフローまたはデータ転送パス内のハードウェアモジュールまたはサブシステムと関連付けるステップとを伴い得る。したがって、特定のデータフローパスに対してSoC全体にわたってマルチメディアデータを受信することおよび送信することに伴うハードウェアモジュールまたはサブシステムが、識別され得る。パケットにアクセス中(たとえば、パケットを読み取り中または書込み中)のハードウェア要素が、レジスタまたはパケットを転送するための他の機構などの様々なプロセッサリソースをモニタすることによって識別され得る。代替として、ハードウェア要素は、たとえばマルチメディアパラメータマネージャおよびデータフロートレーサによってパケットヘッダ情報を別個に読み取ることによって識別され得る。
【００６８】
他の態様では、データフローパスは、特定のマルチメディアデータフローまたはストリームに対する様々なハードウェア要素に関連する様々なカーネル関連呼出しを決定するために、アプリケーションコードの解析に基づいて事前に決定され得る。他の態様では、マルチメディアデータフローは、データフローパスと、データフローパス内のハードウェア要素とを識別するのを支援し得るフロー識別子を提供され得る。態様では、データフローパスは、新しいコンカレントマルチメディアアプリケーションが開始、終了されるとき、またはユーザが、焦点をアプリケーションのうちの異なるものに切り替えるときに、デバイス動作中に連続的または周期的に追跡および更新され得る。
【００６９】
データフローパスに沿ったハードウェア要素を識別するためにデータフローパスが追跡されているとき、ブロック507において、解像度、フレームレート、LoDまたは他のパラメータなどの1つまたは複数のマルチメディアパラメータは、電力消費を引き下げるためにデータフローパスに沿ったすべてのハードウェア要素に対して低減され得る。マルチメディアパラメータを低減することは、カメラなどの画像またはビデオストリーム捕捉デバイスに関連する解像度、フレームレート、LoDまたは他のパラメータを低減すること、カメラサブシステムの選択された解像度またはフレームレートを低減すること、あるいは1つまたは複数のマルチメディアパラメータの低減に影響を及ぼすための他の機構を含み得る。そのような低減は、たとえば、コンカレントマルチメディアアプリケーションのうちの1つによって前に行われた既存の設定をオーバーライドすることを伴い得る。低減は、たとえば、オペレーティングシステムと協力して働くように構成されたマルチメディアパラメータマネージャおよびデータフロートレーサモジュールによって関連ハードウェアサブシステムに対するデバイスドライバとの相互作用を通して達成され得る。
【００７０】
マルチメディアパラメータが低減されると、マルチメディアパラメータマネージャおよび/または影響を受けるデバイスドライバは、関連する1つまたは複数のアプリケーションに通知を送るように構成され得る。通知は、電力管理措置を実施するためにパラメータが低減されたことを示し得る。代替として、アプリケーションは、そのような低減が発生したことに気づかないままであることがある。低減を通知されると、アプリケーションは、ユーザに通知を送ることができる。ユーザは、電力消費性能を改善するために、どのアプリケーションが低減用に選択されてよいか、またはどのアプリケーションが完全に閉じられてよいかを決定する機会を持つことができる。マルチメディアパラメータが、識別されたデータフローパスに対して低減された後、処理は、温度および電力のモニタを継続するために戻ることができる。温度および電力のレベルがしきい値を上回ったままである場合、プロセスは、追加のアプリケーションおよび/またはデータフローパスに対する反復を継続し得る。温度および電力のレベルの引き下げにおける現在の低減の有効性が決定され得るまで、追加のアプリケーションおよび/またはデータパスに対するマルチメディアパラメータの低減を遅らせることも有益であり得る。代替として、パラメータ低減しきい値、およびパラメータ低減しきい値より低いパラメータ復元しきい値が、あるレベルのヒステリシスを設けるために確立され得る。
【００７１】
SoC温度がしきいの温度レベル未満である(すなわち、決定ブロック503=「No」)とき、およびSoC電力がしきいの電力レベル未満である(すなわち、決定ブロック504=「No」)とき、マルチメディアパラメータを復元するためのアクションが取られ得る。SoC電力がしきいの電力レベルより低く、現在のレベルにおいて継続される動作が電力管理措置を起動しないときに、アクションが取られてよい。マルチメディアパラメータ値は、マルチメディアパラメータが低減されているハードウェア要素において復元され得る。態様では、温度および電力のレベルの引き下げにおける現在の低減の有効性が決定され得るまで、マルチメディアパラメータが低減されているハードウェア要素に対するマルチメディアパラメータの復元を遅らせることも有益であり得る。
【００７２】
たとえば、いくつかの態様では、マルチメディアパラメータの復元がしきい値を上回る温度または電力のレベルの即時の復帰につながらないと決定されるときに、マルチメディアパラメータが復元されてよい。そのような決定は、たとえば、モニタされる温度または電力のレベルの低下の傾向の解析を伴うことがある。代替として、または傾向の解析に加えて、固定の時間または個別の復元しきい値レベルが、ユーザエクスペリエンスに望ましくない影響を及ぼす可能性が高い、パラメータ低減または復元の措置の急速な循環を防止するために、ある量のヒステリシスを設けるために確立され得る。代替として、マルチメディアパラメータの復元または低減の程度は、電力消費レベルが目標レベルに収束するように調整され得る。たとえば、温度または電力のレベルが電力しきい値の制限をほんの少しだけ下回るかまたは上回る場合、小さい復元または低減が行われ得る。温度または電力のレベルが電力しきい値の制限を大幅に下回るかまたは上回るとき、より大きい復元または低減が行われ得る。
【００７３】
温度および電力のレベルが、ある長さの時間の間にしきい値または制限を下回ることを含めて、しきい値または制限を下回ると決定されるとき、マルチメディアパラメータを復元するためのアクションが取られ得る。代替として、温度および電力のレベルが復元のしきい値レベルを下回ると決定されるとき、マルチメディアパラメータを復元するためのアクションが取られ得る。ブロック508において、解像度、フレームレート、LoDまたは他のパラメータなどの1つまたは複数のマルチメディアパラメータが追跡されたデータパスに沿ったハードウェア要素内で低減されている、最高優先度を有するデータフローが識別され得る。たとえば、マルチメディアパラメータマネージャおよびデータフロートレーサは、優先度に関する、および最初のまたは元のパラメータおよび現在のパラメータに基づいて、どのハードウェアモジュールがマルチメディアパラメータの低減を経験したかに関する情報を維持し得る。
【００７４】
さらに、1つまたは複数のマルチメディアパラメータが低減されている、最高優先度を有するデータフローが識別され得る。最高優先度を有するデータフローが識別されると、最低に次ぐ優先度を有するデータフローのうちの追加のものが識別され得、以下同様である。データフローの優先度は、マルチメディアパラメータが低減されているすべてのデータフローが識別され得るまで、識別され得る。代替として、そのような決定は、態様方法500を通して後続の反復において行われ得る。マルチメディアパラメータが低減されている、最高優先度を有するデータフローが識別されているとき、ブロック509において、データフローパスは、関連する優先度を有する識別されたデータパスに対して追跡され得る。代替として、マルチメディアパラメータマネージャおよびデータフロートレーサは、以前に、関連するデータフローパスを識別し、追跡し、関連するデータフローパスに関する情報を記憶していることがある。
【００７５】
データフローパスが追跡されているとき、ブロック510において、データフローパスに沿ったハードウェアサブシステムに対するマルチメディアパラメータは、最初のまたは元の値に復元され得る。1つまたは複数のマルチメディアパラメータが、識別されたデータフローパスに対して復元されているとき、処理は、温度および電力のモニタを継続するために復帰することができる。温度および電力のレベルがしきい値を下回るままである場合、プロセスは、追加のアプリケーションおよび/またはデータフローパスに対する反復を継続し得る。反復は、マルチメディアパラメータが最初のまたは元の値に復元されるまで継続し得る。
【００７６】
本明細書で上述したように、優先度はデータフローに対して確立され得る。態様方法520では、図5Bに示すように、ブロック521において、利用可能な場合、コンカレントマルチメディアアプリケーションは、たとえば、解像度、フレームレート、LoDまたはそれらに関連する他のパラメータなどのマルチメディアパラメータに対して要求、推奨または選好される値に関して、情報を、オペレーティングシステムに、またはマルチメディアパラメータマネージャおよびデータフロートレーサに供給し得る。そのような情報を供給することは、アプリケーションの始動もしくは実行において発生することがあるか、またはオペレーティングシステムもしくはマルチメディアパラメータマネージャおよびデータフロートレーサによって要求されるときに供給されることがある。アプリケーションによって供給されたマルチメディアパラメータは、選好された値、要求された値、値の範囲を含むことがあり、または容認できるユーザエクスペリエンスを提供するマルチメディアパラメータに対する最小値を含むことがある。たとえば、アプリケーションは、選好された解像度、フレームレート、LoD、および/またはそれを下回るとユーザエクスペリエンスが容認できなくなる最小の解像度、フレームレート、LoDを供給し得る。コンカレントマルチメディアアプリケーションはまた、たとえば、最適なユーザエクスペリエンスのための推奨された優先度を供給し得る。マルチメディアパラメータマネージャおよびデータフロートレーサは、データフローに対する優先度を確立するために、供給されたマルチメディアパラメータ情報を使用し得る。たとえば、第1のアプリケーションが、第2のアプリケーションに対して要求される最小の解像度より下に延びる選好または推奨された解像度の範囲を示す場合、第1のアプリケーションに対するデータフローは、第2のアプリケーションに関連するデータフローより大きい程度に解像度の低減を許容することができるので、第1のアプリケーションに対するデータフローは、より低い優先度を割り当てられ得る。
【００７７】
初期の解像度および優先度が確立されると、視線入力が利用可能であるかどうかが決定され得る。視線入力が利用可能である(すなわち、決定ブロック522=「Yes」)とき、ブロック523において、前に確立された優先度が洗練または更新され得、または新しい優先度が視線入力を使用して確立され得る。視線入力は、上記で説明した視線統計を含んでよく、または視線サブシステムからの直接入力であってよい。視線統計は、異なる形態を取ることができる。たとえば、視線統計は、記憶された画像のヒストグラムデータ、変換データ、またはアプリケーションに関連するデータストリーム内の画像に対する他の視線関連データの集合であってよい。視線統計は、さらに、連続的に更新され、特定の時間期間に収集され、または視線情報の特性に基づいて分離される、記憶された画像のヒストグラムデータのグループの1つまたは複数の集合であり得る。代替として、リアルタイム視線統計もしくは視線情報をモニタすること、またはリアルタイム情報と記憶された視線情報とを組み合わせることが可能である。
【００７８】
優先度が確立、更新、または洗練されているとき、他の優先度情報が利用可能であるかどうかが決定され得る。他の優先度情報が利用可能である(すなわち、決定ブロック524=「Yes」)とき、ブロック525において、他の優先度情報が、既存の優先度を確立、更新または洗練するために使用され得る。他の優先度情報は、現在アクティブなウィンドウ(たとえば、入力の制御を有するかまたは入力を受信するウィンドウ)に関する情報を含み得る。他の優先度情報は、最大の表示面積を占めるウィンドウに関する情報をさらに含み得る。優先度情報のすべてが供給されているとき、ブロック526において、すべてのコンカレントマルチメディアアプリケーションのデータフローに対する優先度は、優先度情報に基づいて確立され得る。上記で説明した情報以外の追加の情報も使用されることがある。たとえば、ユーザエクスペリエンスに対するコンカレントマルチメディアアプリケーションの各々の品質の寄与を決定するための情報が利用可能であり得る。しかしながら、ある程度まで、データフローに対して上記で説明した優先度情報は、それぞれの品質の寄与の表示を提供し得る。品質の寄与は、必要なマルチメディアパラメータ、優先度の値などの要因、ならびに必要な相互作用および他のヒューリスティックのレベルなどの他の要因に基づいて決定され得る。優先度がすべてのデータフローに対して確立されると、プロセスはブロック521に戻り、動作中に反復してプロセスを通して循環することによって、優先度の洗練および更新を継続することができる。
【００７９】
いくつかのデータフローに対するマルチメディアパラメータの調整を行うことは、データフローのコンテンツに関連する特性に基づくことがある。図5Cに示す態様方法530において、様々なマルチメディアパラメータの間のどれを最初に調整するかに関する決定を行うために、特性が使用され得る。たとえば、一態様では、とりわけ解像度およびフレームレートが、調整されるとき、ビデオまたはグラフィックスデータのいくつかの特性に基づいてコンカレントマルチメディアアプリケーションのうちの様々なアプリケーションに対するユーザエクスペリエンスの品質に異なる影響を及ぼし得るパラメータとして識別され得る。ブロック531において、マルチメディアパラメータマネージャおよびデータフロートレーサまたは他の処理モジュールは、コンカレントマルチメディアアプリケーションに関連するデータフローの各々に関連する画像統計を解析し、データコンテンツの動特性を決定するように構成され得る。代替として、リアルタイム解析が、パラメータ低減の候補(たとえば、最低優先度)として識別されているアプリケーションに関連するデータフローのコンテンツに対して実施され得る。
【００８０】
画像統計は、画像ヒストグラム、または存在もしくは不在および画像ダイナミクスの程度を表示する、データフロー中の画像に関連する要因に関する他の統計もしくは情報を含み得る。「画像ダイナミクス」という用語は、遠隔会議アプリケーションに関連するビデオストリーム、またはゲームアプリケーションに関連するグラフィックスストリームのデータフローを構成する連続画像に対する変化または動きなどの情報を指すことがある。概して、画像統計は、フレーム間の類似性または差異に対して解析され得る。エッジなど、画像の特徴が検出され得る。特徴のフレーム間の動きが、データフローの動特性を決定または表示するために使用され得る。特徴は、極大値をさらに含み得る。極大値はバックグラウンドレベルと比較されてよく、極大値のフレーム間の動きが、データフローの動特性を決定または表示するために使用され得る。色、色の変化、色の強度の変化、または他の特徴などの他の特徴が、データフロー中のダイナミックレンジのレベルまたは程度を表示し得る。たとえば、画像に関連する「広い」ヒストグラムが高ダイナミックレンジを示す一方で、ヒストグラムの特色における急速なフレーム間変化が動きを示すことができる。データの動特性は、値の範囲または連続性から値を割り当てられ得る。したがって、1つまたは複数のフレームまたは全データフローの動特性が、互いに対して、たとえば別のものより「より高い」または「より低い」として評価され得る。代替として、値は1つまたは複数の参照値に対する値であり得る。
【００８１】
データフローに対してマルチメディアパラメータ低減が必要であり、高いダイナミクスがデータフロー中に存在する(すなわち、決定ブロック532=「Yes」)とき、ブロック533において、解像度パラメータが最初に低減され、次いで、必要ならば、フレームレートパラメータが低減され得る。フレームレートの前の解像度の低減は、同じパラメータ調整動作中に実施されてよく、またはプロセスが反復するときに後続のパラメータ低減動作中に実施されてもよい。高い画像ダイナミクスは、概して、内在するコンテンツに関連する画像中の高レベルの変化または動きと相関性があり得る。さらに、高い動きの程度を有する画像ストリームの表示またはレンダリングの知覚品質は、フレームレートパラメータの低減によって最も悪い影響を受ける。したがって、最初に解像度を低減することによって、表示またはレンダリングされる動きの速い画像ストリームの知覚品質は、有利に保存され得る。解像度パラメータが低減されると、ブロック531において、処理はさらなる解析のために戻ることができる。
【００８２】
データフローに関連する画像中に高いダイナミクスが存在しない(すなわち、決定ブロック532=「No」)とき、データフローに関連する画像中に低いダイナミクスが存在するかどうかが決定され得る。画像ダイナミクスの「高い」値と「低い」値とを区別するために、1つまたは複数のしきい値が、画像統計中のダイナミクスのレベルに対して確立され得る。ダイナミクスのレベルが1つまたは複数のしきい値を上回るとき、データフローは、高レベルのダイナミクスを有するとして指定され得る。ダイナミクスのレベルが1つまたは複数のしきい値を下回るとき、データフローは、低レベルのダイナミクスを有するとして指定され得る。2つのしきい値を使用する態様では、中間レベルのダイナミクスが発生し得、ダイナミクスのレベルが高にも低にも指定されず、いずれのパラメータも低減され得る結果をもたらす。
【００８３】
データフローに関連する画像中に低いダイナミクスが存在する(すなわち、決定ブロック534=「Yes」)とき、ブロック535において、フレームレートが最初に低減され、次いで、必要ならば、解像度パラメータが低減され得る。解像度の前のフレームレートの低減は、同じパラメータ調整動作中に実施されてよく、またはプロセスが反復するときに後続のパラメータ低減動作中に実施されてもよい。低い画像ダイナミクスは、概して、内在するコンテンツに関連する画像中の低レベルの変化または動きと相関性があり得る。さらに、低い動きの程度を有する画像ストリームの表示またはレンダリングの知覚品質は、解像度パラメータの低減によって最も悪い影響を受ける。したがって、最初にフレームレートを低減することによって、表示またはレンダリングされる動きの遅い画像ストリームの知覚品質は、有利に保存され得る。フレームレートパラメータが低減されると、処理は、ブロック531において、さらなる解析のために戻ることができる。データフローに関連する画像中に低いダイナミクスが存在しない(すなわち、決定ブロック534=「No」)とき、処理は、ブロック531における画像統計の解析を継続するために、ブロック531に戻ることができる。
【００８４】
いくつかのアプリケーションは複数のデータパスを有するかまたはサポートすることができ、アプリケーションは優先度を(たとえば、視線、ウィンドウ位置などに基づいて)割り当てられ得るので、図5Dに示す態様方法540は、データフロー優先度を適切に調整するためにアプリケーション優先度を考慮することができる。上記で説明したブロック526におけるように、データフロー優先度が確立されているとき、コンカレントマルチメディアアプリケーションはまた、ブロック541において、優先度を割り当てられ得る。アプリケーション優先度は、アプリケーションに関連するスレッドまたはプロセスに対するスケジューリング優先度などのオペレーティングシステム指定に基づくことがあり、オペレーティングシステムプロセス優先度、アプリケーションプロセスのステータス、コンテキストスイッチング、および他の考慮対象を含む多様な要因に依存することがある。アプリケーション優先度は、アイドル、低優先度、高優先度、リアルタイムなど、各アプリケーションのステータスおよびそのプロセスのクラスに応じて、アプリケーションの実行中に変わることがある。プロセスのクラスの各々の中のスレッドを処理するために割り当てられた優先度が存在することもある。
【００８５】
アプリケーション優先度が考慮されるべきかどうかを決定するために、決定ブロック542において、プロセッサは、アプリケーションに関連する優先度が、データフローに対して確立された優先度と矛盾する(すなわち、異なる)かどうかを決定することができる。プロセッサが、アプリケーションとデータフローとの優先度が矛盾する(すなわち、決定ブロック542=「Yes」)と決定するとき、ブロック543において、プロセッサは、対応するアプリケーション優先度に基づいてデータフロー優先度に重みを割り当てることができる。たとえば、所与のコンカレントマルチメディアアプリケーションに対する優先度が比較的低いが、そのアプリケーションに対して確立されたデータフロー優先度が、より高い優先度のアプリケーションに対するデータフロー優先度と比較して相対的に高いとき、より低い重みが、比較的低い優先度のアプリケーションに関連するデータフローに割り当てられ得る。
【００８６】
決定ブロック544において、プロセッサはまた、図5Bを参照して上記で説明した視線情報または他の情報など、他の優先度情報が利用可能であるかどうかを決定し得る。他の優先度情報が利用可能である(すなわち、決定ブロック544=「Yes」)とき、ブロック545において、データフローに割り当てられた重みが、追加の優先度情報に基づいて修正され得る。
【００８７】
ブロック546において、プロセッサは、データフロー優先度を調整するために割り当てられた優先度を使用し得る。この動作において、最初により低い優先度を割り当てられるがその対応するアプリケーションの優先度に基づいて高い重み係数を割り当てられるデータフローは、その優先度を増加され得る一方で、最初により高い優先度を割り当てられるがその対応するアプリケーションの優先度に基づいて低い重み係数を割り当てられるデータフローは、その優先度を減少され得る。次いで、調整されたデータフロー優先度は、たとえば図5Aのブロック505を参照して上記で説明した動作を続行するなど、上記で説明したようなリソースの調整およびプロセスの制御に使用され得る。
【００８８】
プロセッサが、アプリケーションとデータフローとの優先度が矛盾しない(すなわち、決定ブロック542=「No」)と決定するとき、データフローに対する優先度は、変化しないままであり得、最初のデータフロー優先度が、図5Aのブロック505を参照して上記で説明した動作を続行するなど、上記で説明したようなリソースの調整およびプロセスの制御に使用され得る。
【００８９】
本明細書に記載の様々な態様は、その一例を図6に示す様々なモバイルコンピューティングデバイス(たとえば、スマートフォン、フィーチャーフォン、など)のいずれかで実施され得る。たとえば、モバイルコンピューティングデバイス600は、内部メモリ602に結合されたプロセッサ601を含むことができる。内部メモリ602は、揮発性メモリまたは不揮発性メモリであり得、また、セキュアメモリおよび/もしくは暗号化メモリ、または非セキュアメモリおよび/もしくは非暗号化メモリ、またはそれらの任意の組合せであり得る。また、プロセッサ601は、抵抗性感知タッチスクリーン、静電容量感知タッチスクリーン、赤外線感知タッチスクリーンなどのタッチスクリーンディスプレイ606に結合することができる。しかしながら、モバイルコンピューティングデバイス600のディスプレイは、タッチスクリーン機能を有する必要はない。モバイルコンピューティングデバイス600は、1つまたは複数の短距離無線信号トランシーバ618(たとえば、Peanut、Bluetooth(登録商標)、Zigbee(登録商標)、RF無線)と、本明細書で説明するワイヤレス信号を送信および受信するためのアンテナ608とを有し得る。トランシーバ618およびアンテナ608は、様々なワイヤレス送信プロトコルスタック/インターフェースを実装するために、上記の回路とともに使用され得る。モバイルコンピューティングデバイス600は、セルラーネットワークを介する通信を可能にするセルラーネットワークワイヤレスモデムチップ620を含む場合がある。モバイルコンピューティングデバイス600はまた、ユーザ入力を受信するための物理的ボタン612aおよび612bを含むことができる。
【００９０】
パーソナルコンピュータおよびラップトップコンピュータを含む、コンピューティングデバイスの他の形態は、様々な態様を実装するために使用される場合がある。そのようなコンピューティングデバイスは、通常、例示的なラップトップコンピュータデバイス700を示す図7に示されたコンポーネントを含む。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面714を含み、したがって、タッチスクリーンディスプレイを備える上述のモバイルコンピューティングデバイスに実装されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受信することができる。そのようなラップトップコンピュータ700は、一般に、揮発性内部メモリ702、およびディスクドライブ706などの大容量不揮発性メモリに結合されたプロセッサ701を含む。ラップトップコンピュータ700はまた、プロセッサ701に結合されたコンパクトディスク(CD)および/またはDVDドライブ708を含む場合がある。ラップトップコンピュータ700はまた、プロセッサ701をネットワークに結合するためのネットワーク接続回路などの、データ接続を確立し外部メモリデバイスを受け入れるための、プロセッサ701に結合されたいくつかのコネクタポート710を含む場合がある。ラップトップコンピュータデバイス700は、1つまたは複数の短距離無線信号トランシーバ718(たとえば、Peanut(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、RF無線)と、本明細書で説明するワイヤレス信号を送信および受信するためのアンテナ720とを有し得る。トランシーバ718およびアンテナ720は、様々なワイヤレス送信プロトコルスタック/インターフェースを実装するために、上記の回路とともに使用され得る。ラップトップまたはノートブック構成では、コンピュータのハウジングはタッチパッド714、キーボード712、およびディスプレイ716を含み、すべてはプロセッサ701に結合される。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含んでよく、それらはまた、様々な態様とともに使用され得る。
【００９１】
プロセッサ601および701は、上記で説明した様々な態様の機能を含む様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意の1つまたは複数のプログラマブルマイクロプロセッサ、マイクロコンピュータ、またはマルチプロセッサチップであり得る。様々なデバイスでは、1つのプロセッサをワイヤレス通信機能専用とし、1つのプロセッサを他のアプリケーションの実行専用とするなど、複数のプロセッサが設けられてもよい。一般的には、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ601および701にロードされる前に、内部メモリ602および702内に記憶され得る。プロセッサ601および701は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多くのデバイスでは、内部メモリは、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合であり得る。本明細書では、メモリへの一般的な言及は、様々なデバイスに差し込まれる内部メモリまたはリムーバブルメモリと、プロセッサ601および701の中のメモリとを含む、プロセッサ601および701によってアクセス可能なメモリを指す。
【００９２】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な態様のステップが提示された順序で実行されなければならないことを要求または意味するものではない。当業者によって諒解されるように、上記の態様におけるステップの順序は、いかなる順序でも実行され得る。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、方法の説明を通して読者を案内するために使用される。さらに、たとえば、冠詞"a"、"an"、または"the"を使用する単数形での請求要素への任意の言及は、その要素を単数に限定するものとして解釈されるべきではない。
【００９３】
本明細書で開示された態様に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装される場合がある。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、全般にそれらの機能に関して上述されている。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例およびシステム全体に課される設計制約に依存する。当業者なら、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００９４】
本明細書において開示されている態様に関連して説明されている様々な実例論理、論理ブロック、モジュールおよび回路を実現するために使用されるハードウェアは、本明細書において説明されている機能を実施するために設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のプログラマブル論理デバイス、離散ゲートまたはトランジスタ論理、離散ハードウェア構成要素、またはそれらの任意の組合せを使用して実現または実施することができる。汎用プロセッサはマイクロプロセッサであってもよいが、代替では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラまたは状態マシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実装され得る。代替的には、いくつかのステップまたは方法は、所与の機能に固有の回路網によって実行され得る。
【００９５】
1つまたは複数の例示的な態様では、説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実施され得る。ソフトウェアで実施される場合、機能は、非一時的プロセッサ可読媒体上に1つまたは複数の命令またはコードとして記憶され得る。本明細書で開示される方法またはアルゴリズムのステップは、非一時的プロセッサ可読記憶媒体に常駐できるプロセッサ実行可能ソフトウェアモジュール内で具現化される場合がある。非一時的プロセッサ可読記憶媒体は、プロセッサまたはコンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのような非一時的プロセッサ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。ディスク(diskおよびdisc)は、本明細書において使用されるときに、コンパクトディスク(disc)(「CD」)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピー（登録商標）ディスク(disk)およびブルーレイディスク(disc)を含み、diskは通常、データを磁気的に再生し、一方、discは、レーザを用いてデータを光学的に再生する。上記の組合せも非一時的プロセッサ可読媒体の範囲内に含めるべきである。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的プロセッサ可読媒体/または非一時的コンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在することができる。
【００９６】
開示されている態様の前述の説明は、当業者が本発明を作成または使用することを可能にするために提供されている。これらの態様に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本発明の要旨または範囲から逸脱することなく、他の態様に適用され得る。したがって、本発明は、本明細書に示されている態様に限定されることを意図しておらず、以下の特許請求の範囲、ならびに、本明細書で開示されている原理および新規な特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００９７】
100  例
101  デバイス環境
102  ネットワーク
103  デバイス環境
105a  ワイヤレスリンク
105b  ワイヤレスリンク
110  第1のデバイス、デバイス
111  ウィンドウ
112  ウィンドウ
114  カメラ
115  ディスプレイ
116  ワイヤレス接続
120  外部ディスプレイ
121  ウィンドウ
122  ウィンドウ
130  第2のデバイス、デバイス
131  ウィンドウ
132  ウィンドウ
133  ウィンドウ
134  カメラ
135  ディスプレイ
140  グラフ
140a  グラフ
140b  グラフ
141  システムオンチップ(SoC)
141a  電力レベル
141b  電力レベル
142  DRAM
142a  DRAM電力寄与
142b  DRAM電力寄与
143  電力管理集積回路(PMIC)
143a  PMIC電力寄与
143b  PMIC電力寄与
144  ディスプレイ
144a  ディスプレイ電力寄与
144b  ディスプレイ電力寄与
145  カメラ
145a  カメラ電力寄与
145b  カメラ電力寄与
146  無線モジュール
146a  無線モジュール電力寄与
146b  無線モジュール電力寄与
147a  量(電力消費)
147b  量(電力消費)
148  総電力消費限界
150  コンカレントマルチメディアアプリケーション、マルチメディアアプリケーション
150a  データフロー
150b  データフロー
151  コンカレントマルチメディアアプリケーション、マルチメディアアプリケーション
151a  データフロー
151b  データフロー
151c  データフロー
152  コンカレントマルチメディアアプリケーション、マルチメディアアプリケーション
152a  データフロー
152b  データフロー
155  オペレーティングシステム(OS)サービスおよびOSカーネルモジュール
155a  マルチメディアパラメータ要件
155b  マルチメディアパラメータ要件
155c  マルチメディアパラメータ要件
155d  マルチメディアパラメータ要件
156  SoC
157  温度センサ
157a  温度入力
158  電力センサ
158a  電力入力
159  他のセンサ
159a  他の入力、入力
160  周波数調整モジュール
160a  調整信号
160b  調整信号
160c  調整信号
200  例示的なシステム
205  代表的なデバイス
206  センサブロック
206a  センサ入力データ
207  ネットワーク接続
210  OSサービスおよびOSカーネルモジュール
220  マルチメディアパラメータマネージャおよびデータフロートレーサ
220a  データフロー
220b  データフロー
220c  データフロー
220d  データフロー
230  SoCモジュール
250  コンカレントアプリケーションブロック
251  コンカレントマルチメディアアプリケーション
252  3-Dゲームアプリケーション
253  ビデオチャットアプリケーション
254  ディスプレイアプリケーション
255  他のマルチメディアアプリケーション
256  マルチメディアフレームワーク
257  アプリケーションプログラミングインターフェース(API)
258  デバイスドライバ
260  マルチメディアパラメータマネージャおよびデータフロートレーサ
261  接続
262  カメラモジュール
262a  接続
263  カメラサブシステム
263a  接続
264  中央処理装置(CPU)
264a  接続
265  グラフィック処理装置(GPU)
265a  接続
266  ビデオエンコーダ/デコーダ(CODEC)
266a  接続
267  モバイル開発プラットフォーム(MDP)
267a  接続
270  ハードウェアブロック
300  例
305  ワイヤレスリンク
310  カメラ
310a  ビデオデータ
311  カメラサブシステム
311a  データフロー1
311b  データフロー1
311x  外部データフロー
312  ビデオエンコーダ
312a  符号化されたデータフロー
313  ビデオ会議アプリ
313a  符号化されたデータフロー
313x  外部フロー
314  ビデオデコーダ
314a  復号されたデータフロー
315  GPUゲームレンダリングブロック
315a  グラフィックスデータフロー
316  グラフィック処理装置(GPU)
316a  ビデオデータフロー
317  ビデオエンコーダ2
317a  WFDビデオデータフロー
318  WLANモジュール
318a  ワイヤレスビデオデータフロー
319  2次ワイヤレスディスプレイ
320  GPU
330  データフローパス
340  データフローパス、論理ブロック
341  入力
342  入力
343  入力
344  論理ブロック
345  マルチメディアパラメータ設定入力
346  マルチメディアパラメータ設定入力
347  マルチメディアパラメータ設定入力
348  マルチメディアパラメータ出力
349  優先度値
410  ゲーミングウィンドウ
411  当事者1のウィンドウ
412  当事者2のウィンドウ
413  ゲーミング制御ウィンドウ
420  視線優先度モジュール
421  目
422  光学場
423  凝視点
424  統計
430  ゲーミングウィンドウ
431  当事者1のウィンドウ
432  当事者2のウィンドウ
440  優先度割り当てモジュール
441  ゲームアプリケーションデータフロー優先度モジュール
441a  優先度ヒント
441b  データフロー
441c  データフロー
441d  データフロー
441e  データフロー
442  ビデオ会議アプリケーションデータフロー優先度モジュール
442a  優先度ヒント
442b  データフロー
442c  データフロー
442d  データフロー
460  マルチメディアパラメータマネージャおよびデータフロートレーサ
600  モバイルコンピューティングデバイス
601  プロセッサ
602  内部メモリ
606  タッチスクリーンディスプレイ
608  アンテナ
612a  物理的ボタン
612b  物理的ボタン
618  短距離無線信号トランシーバ
620  セルラーネットワークワイヤレスモデムチップ
700  ラップトップコンピュータデバイス
701  プロセッサ
702  揮発性内部メモリ
706  ディスクドライブ
708  コンパクトディスク(CD)および/またはDVDドライブ
710  コネクタポート
712  キーボード
714  タッチパッド
716  ディスプレイ
718  トランシーバ
720  アンテナ
【図１Ａ】
0006338669.tif 000003
【図１Ｂ】
0006338669.tif 000004
【図１Ｃ】
0006338669.tif 000005
【図２Ａ】
0006338669.tif 000006
【図２Ｂ】
0006338669.tif 000007
【図３Ａ】
0006338669.tif 000008
【図３Ｂ】
0006338669.tif 000009
【図３Ｃ】
0006338669.tif 000010
【図４Ａ】
0006338669.tif 000011
【図４Ｂ】
0006338669.tif 000012
【図５Ａ】
0006338669.tif 000013
【図５Ｂ】
0006338669.tif 000014
【図５Ｃ】
0006338669.tif 000015
【図５Ｄ】
0006338669.tif 000016
【図６】
0006338669.tif 000017
【図７】
0006338669.tif 000018