JP6338669B2 - 熱電力配分に対する動的マルチメディアデータフロー制御のための方法、デバイスおよびシステム - Google Patents

熱電力配分に対する動的マルチメディアデータフロー制御のための方法、デバイスおよびシステム Download PDF

Info

Publication number
JP6338669B2
JP6338669B2 JP2016538983A JP2016538983A JP6338669B2 JP 6338669 B2 JP6338669 B2 JP 6338669B2 JP 2016538983 A JP2016538983 A JP 2016538983A JP 2016538983 A JP2016538983 A JP 2016538983A JP 6338669 B2 JP6338669 B2 JP 6338669B2
Authority
JP
Japan
Prior art keywords
data flow
multimedia
concurrent
priority
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016538983A
Other languages
English (en)
Other versions
JP2016539585A (ja
JP2016539585A5 (ja
Inventor
ヒー−ジュン・パク
ピーター−ルイス・ダム・バッカー
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016539585A publication Critical patent/JP2016539585A/ja
Publication of JP2016539585A5 publication Critical patent/JP2016539585A5/ja
Application granted granted Critical
Publication of JP6338669B2 publication Critical patent/JP6338669B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Power Sources (AREA)
  • Telephonic Communication Services (AREA)

Description

関連出願の相互参照
本出願は、その内容全体が参照によって本明細書に組み込まれる、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)に示すように、上から下の降順に整列され得る。
Figure 0006338669
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 アンテナ

Claims (32)

  1. コンカレントマルチメディアアプリケーションに対するデータフローを管理することによってシステムオンチップ(SoC)を含むデバイスの電力または温度を管理する方法であって、
    温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの1つまたは複数を決定することに応答して、前記コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するステップと、
    前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップであって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するステップと、
    記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップとを含
    前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
    前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップが、
    前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するステップと、
    ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するステップと、
    ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するステップとを含む、方法。
  2. 前記温度および前記電力消費の1つまたは複数が前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するステップとをさらに含む、請求項1に記載の方法。
  3. 所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む、請求項1に記載の方法。
  4. 最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む、請求項1に記載の方法。
  5. ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む、請求項1に記載の方法。
  6. 所定のアプリケーション優先度;
    最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
    ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップと、
    前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するステップとをさらに含む、請求項1に記載の方法。
  7. 前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項1に記載の方法。
  8. 前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含む、請求項1に記載の方法。
  9. コンピューティングデバイスであって、
    メモリと、
    前記メモリに結合され、動作を実施するためのプロセッサ実行可能命令によって構成されたプロセッサとを備え、前記動作が、
    温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの1つまたは複数を決定することに応答して、コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するステップと、
    前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップであって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するステップと、
    前記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールのマルチメディアパラメータを低減するステップとを含み、
    前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
    前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップが、
    前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するステップと、
    ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するステップと、
    ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するステップとを含む、コンピューティングデバイス。
  10. 前記温度および前記電力消費の1つまたは複数が、前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するステップとをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
  11. 所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
  12. 最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
  13. ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
  14. 所定のアプリケーション優先度;
    最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
    ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップと、
    前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するステップとをさらに含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
  15. 前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項9に記載のコンピューティングデバイス。
  16. 前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含むような動作を実施するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項9に記載のコンピューティングデバイス。
  17. ンピューティングデバイスであって、
    温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの1つまたは複数を決定することに応答して、コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するための手段と、
    前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するための手段であって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するための手段と、
    記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するための手段とを含
    前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
    前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するための手段が、
    前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するための手段と、
    ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記データフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するための手段と、
    ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記データフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するための手段とを含む、コンピューティングデバイス。
  18. 前記温度および前記電力消費の1つまたは複数が前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するための手段とをさらに含む、請求項17に記載のコンピューティングデバイス。
  19. 所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段をさらに含む、請求項17に記載のコンピューティングデバイス。
  20. 最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段をさらに含む、請求項17に記載のコンピューティングデバイス。
  21. ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段をさらに含む、請求項17に記載のコンピューティングデバイス。
  22. 所定のアプリケーション優先度;
    最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
    ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するための手段と、
    前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するための手段とをさらに含む、請求項17に記載のコンピューティングデバイス。
  23. 前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項17に記載のコンピューティングデバイス。
  24. 前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含む、請求項17に記載のコンピューティングデバイス。
  25. プロセッサに動作を実行させるように構成されたプロセッサ実行可能命令を記憶する非一時的プロセッサ可読記憶媒体であって、前記動作が
    温度が温度しきい値を超えること、および電力消費が電力しきい値を超えることのうちの1つまたは複数を決定することに応答して、コンカレントマルチメディアアプリケーションの間の最低優先度データフローを識別するステップと、
    前記識別された最低優先度データフローに関連するデータフローに対するデータフローパスを追跡するステップであって、前記追跡されたデータフローパスが、マルチメディアパラメータを使用して動作する前記最低優先度データフローによって通過されたすべてのハードウェアモジュールを識別する、追跡するステップと、
    前記識別された最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップとを含み、
    前記マルチメディアパラメータが、前記データフローの解像度およびフレームレートのうちの少なくとも1つを含み、
    前記追跡されたデータフローパスに沿った前記識別されたハードウェアモジュールの前記マルチメディアパラメータを低減するステップが、
    前記データフローに関連するダイナミクスのレベルを決定するために前記データフローの画像統計を解析するステップと、
    ダイナミクスの前記レベルがしきい値レベルを上回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記解像度を低減するステップと、
    ダイナミクスの前記レベルが前記しきい値レベルを下回ると決定することに応答して、前記追跡されたデータフローパスに沿って前記識別されたハードウェアモジュールに対する前記フレームレートを低減するステップとを含む、非一時的プロセッサ可読記憶媒体。
  26. 記憶された前記プロセッサ実行可能命令が、
    前記温度および前記電力消費の1つまたは複数が前記温度しきい値または前記電力しきい値をもはや超えないと決定することに応答して、前記最低優先度データフローに関連する前記データフローに対する前記追跡されたデータフローパスに沿って前記マルチメディアパラメータを前記識別されたハードウェアモジュールに対する最初の値に復元するステップとをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
  27. 記憶された前記プロセッサ実行可能命令が、
    所定のアプリケーション優先度に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
  28. 記憶された前記プロセッサ実行可能命令が、
    最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計に基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
  29. 記憶された前記プロセッサ実行可能命令が、
    ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウに基づいて、前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
  30. 記憶された前記プロセッサ実行可能命令が、
    所定のアプリケーション優先度;
    最も頻繁に凝視されている前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウを示す視線統計;および
    ディスプレイの最大面積を占める前記コンカレントマルチメディアアプリケーションに関連する同時表示ウィンドウのうちの1つのウィンドウ、のうちの1つまたは複数に基づいて前記コンカレントマルチメディアアプリケーションのデータフローの間の優先度を確立するステップと、
    前記コンカレントマルチメディアアプリケーションに割り当てられた優先度に基づいて、前記コンカレントマルチメディアアプリケーションの前記データフローの間で前記確立された優先度を調整するステップとをさらに含む動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
  31. 前記マルチメディアパラメータが、前記データフローに関連する詳細度(LoD)をさらに含む、請求項25に記載の非一時的プロセッサ可読記憶媒体。
  32. 記憶された前記プロセッサ実行可能命令が、
    前記コンカレントマルチメディアアプリケーションが、少なくとも遠隔会議アプリケーションとゲームアプリケーションとを含むような動作をプロセッサに実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。
JP2016538983A 2013-08-28 2014-08-21 熱電力配分に対する動的マルチメディアデータフロー制御のための方法、デバイスおよびシステム Expired - Fee Related JP6338669B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361870856P 2013-08-28 2013-08-28
US61/870,856 2013-08-28
US14/034,725 2013-09-24
US14/034,725 US9703355B2 (en) 2013-08-28 2013-09-24 Method, devices and systems for dynamic multimedia data flow control for thermal power budgeting
PCT/US2014/052193 WO2015031169A1 (en) 2013-08-28 2014-08-21 Method, devices and systems for dynamic multimedia data flow control for thermal power budgeting

Publications (3)

Publication Number Publication Date
JP2016539585A JP2016539585A (ja) 2016-12-15
JP2016539585A5 JP2016539585A5 (ja) 2017-08-24
JP6338669B2 true JP6338669B2 (ja) 2018-06-06

Family

ID=52584969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016538983A Expired - Fee Related JP6338669B2 (ja) 2013-08-28 2014-08-21 熱電力配分に対する動的マルチメディアデータフロー制御のための方法、デバイスおよびシステム

Country Status (6)

Country Link
US (1) US9703355B2 (ja)
EP (1) EP3039383B1 (ja)
JP (1) JP6338669B2 (ja)
KR (1) KR20160046824A (ja)
CN (1) CN105492875B (ja)
WO (1) WO2015031169A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130278834A1 (en) * 2012-04-20 2013-10-24 Samsung Electronics Co., Ltd. Display power reduction using extended nal unit header information
US9530174B2 (en) * 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
KR102210770B1 (ko) * 2014-09-02 2021-02-02 삼성전자주식회사 반도체 장치, 반도체 시스템 및 그 제어 방법
US20160094849A1 (en) * 2014-09-27 2016-03-31 Intel Corporation THERMAL THROTTLING OF WiDi VIDEO STREAM RESOLUTION
WO2016062346A1 (en) * 2014-10-23 2016-04-28 Nokia Solutions And Networks Oy Distributed trace of network procedures for network elements in cloud deployment
CN107431613B (zh) 2015-04-20 2021-02-05 深圳市大疆创新科技有限公司 用于支持可移动物体应用开发的系统和方法
GB2553744B (en) * 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US10156881B2 (en) * 2016-06-24 2018-12-18 Mediatek Inc. Electronic device and method for controlling user experience with application on electronic device
KR101853059B1 (ko) * 2016-08-10 2018-04-30 한국과학기술연구원 가상 모델 제어 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US10423209B2 (en) 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US20180329465A1 (en) * 2017-05-11 2018-11-15 Qualcomm Incorporated System and method for intelligent adjustment of an immersive multimedia workload in a portable computing device
US11258293B2 (en) * 2017-10-10 2022-02-22 Schneider Electric It Corporation Methods and systems for backup power management at a power device
US11256313B2 (en) 2017-10-10 2022-02-22 Schneider Electric It Corporation Methods and systems for dynamic backup power management at a power node
WO2019097572A1 (ja) * 2017-11-14 2019-05-23 三菱電機株式会社 車載用情報機器、車載用ワイヤレスシステム及び制御方法
US10942557B2 (en) * 2018-07-18 2021-03-09 Dell Products L.P. System and method to maintain optimal system performance while adhering to competing power cap policies
CN109960395B (zh) * 2018-10-15 2021-06-08 华为技术有限公司 资源调度方法和计算机设备
KR20210011166A (ko) 2019-07-22 2021-02-01 삼성전자주식회사 전자 장치 및 전자 장치에서 발열 기반의 데이터 처리량 제어 방법
US11627088B2 (en) * 2021-05-31 2023-04-11 Agora Lab, Inc. Method for prioritizing data packets based on application scenario, user state and user role
US20230324979A1 (en) * 2022-04-12 2023-10-12 Meta Platforms Technologies, Llc Systems and methods for managing power consumption of device subsystems

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859641A (en) 1997-10-10 1999-01-12 Intervoice Limited Partnership Automatic bandwidth allocation in multimedia scripting tools
US6493331B1 (en) * 2000-03-30 2002-12-10 Qualcomm Incorporated Method and apparatus for controlling transmissions of a communications systems
US6813284B2 (en) * 2001-01-17 2004-11-02 Qualcomm Incorporated Method and apparatus for allocating data streams given transmission time interval (TTI) constraints
US6948082B2 (en) 2002-05-17 2005-09-20 International Business Machines Corporation Method and apparatus for software-assisted thermal management for electronic systems
JP4230463B2 (ja) * 2003-09-03 2009-02-25 シャープ株式会社 制御装置、通信装置、通信機器、電子装置、および情報処理装置
KR20050042399A (ko) 2003-11-03 2005-05-09 삼성전자주식회사 게이즈 디텍션을 이용한 비디오 데이터 처리 장치 및 방법
KR101048256B1 (ko) * 2004-03-31 2011-07-08 엘지전자 주식회사 이동통신 시스템의 중요도에 따른 데이터 전송방법
JP2009520993A (ja) * 2005-12-22 2009-05-28 リサーチ イン モーション リミテッド 電子デバイスのためのディスプレイにおける電力消費量を減少させるための方法および装置
US20070192641A1 (en) 2006-02-10 2007-08-16 Intel Corporation Method and apparatus to manage power consumption in a computer
US7962182B2 (en) 2006-08-25 2011-06-14 Qualcomm Incorporated Method and apparatus for content delivery to devices
US8135443B2 (en) 2006-08-31 2012-03-13 Qualcomm Incorporated Portable device with priority based power savings control and method thereof
US8001407B2 (en) * 2006-10-31 2011-08-16 Hewlett-Packard Development Company, L.P. Server configured for managing power and performance
US20100079508A1 (en) * 2008-09-30 2010-04-01 Andrew Hodge Electronic devices with gaze detection capabilities
CN101741707B (zh) * 2008-11-04 2012-04-04 上海华为技术有限公司 一种上行数据传输方法、装置及通信系统
US9172117B2 (en) * 2008-12-04 2015-10-27 Domingo Enterprises, Llc User-controlled application-based power management
US8280456B2 (en) * 2009-08-14 2012-10-02 Google Inc. Providing a user with feedback regarding power consumption in battery-operated electronic devices
US8843774B2 (en) * 2010-08-20 2014-09-23 Qualcomm Incorporated Method and apparatus for managing battery power in response to an indication of an application being scheduled for immediate execution
US9374787B2 (en) * 2011-02-10 2016-06-21 Alcatel Lucent Method and apparatus of smart power management for mobile communication terminals using power thresholds
US20120210150A1 (en) * 2011-02-10 2012-08-16 Alcatel-Lucent Usa Inc. Method And Apparatus Of Smart Power Management For Mobile Communication Terminals
US8954017B2 (en) * 2011-08-17 2015-02-10 Broadcom Corporation Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device
WO2013033842A1 (en) * 2011-09-07 2013-03-14 Tandemlaunch Technologies Inc. System and method for using eye gaze information to enhance interactions
TWI556092B (zh) * 2011-09-30 2016-11-01 英特爾公司 用以減少電力消耗之基於優先順序的應用程式事件控制技術
US9442773B2 (en) 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
KR101920646B1 (ko) 2011-12-15 2018-11-22 한국전자통신연구원 시각인식 기반의 프로그래시브 비디오 스트리밍 장치 및 방법
DE112011106059T5 (de) 2011-12-28 2014-09-18 Intel Corporation Dimmen einer Anzeige in Reaktion auf Benutzer
US9009502B2 (en) * 2012-06-29 2015-04-14 Time Warner Cable Enterprises Llc System and method for managing battery usage of a mobile device

Also Published As

Publication number Publication date
JP2016539585A (ja) 2016-12-15
EP3039383B1 (en) 2017-06-21
US9703355B2 (en) 2017-07-11
US20150067377A1 (en) 2015-03-05
WO2015031169A1 (en) 2015-03-05
CN105492875B (zh) 2018-12-25
CN105492875A (zh) 2016-04-13
EP3039383A1 (en) 2016-07-06
KR20160046824A (ko) 2016-04-29

Similar Documents

Publication Publication Date Title
JP6338669B2 (ja) 熱電力配分に対する動的マルチメディアデータフロー制御のための方法、デバイスおよびシステム
US9621741B2 (en) Techniques for context and performance adaptive processing in ultra low-power computer vision systems
US20190371037A1 (en) Display control method and apparatus for game screen, electronic device, and storage medium
TWI590149B (zh) 包括根據觀看條件之動態使用者介面的能量效率及能量保存之方法,設備,及系統
TWI578153B (zh) 適應性圖形次級系統電源及效能管理
EP3622369B1 (en) System and method for intelligent adjustment of an immersive multimedia workload in a portable computing device
US9509741B2 (en) Snapshot capture for a communication session
US9336747B2 (en) Display dimming to save mobile device power during webpage, web content, and device application loading
CN109254849B (zh) 应用程序的运行方法及装置
KR20140018157A (ko) 미디어 작업부하 스케줄러
US9864647B2 (en) System and method for dynamic bandwidth throttling based on danger signals monitored from one more elements utilizing shared resources
US20220311952A1 (en) Intelligent video source selection
US20180095531A1 (en) Non-uniform image resolution responsive to a central focus area of a user
US9792151B2 (en) Energy efficient burst mode
US20210303058A1 (en) Screen casting
US9467655B2 (en) Computer readable recording medium, communication terminal device and teleconferencing method
WO2020038071A1 (zh) 视频增强控制方法、装置、电子设备及存储介质
EP4044583A1 (en) Information processing apparatus and control method
US20230308770A1 (en) Methods, apparatuses and computer program products for utilizing gestures and eye tracking information to facilitate camera operations on artificial reality devices
EP4274387A1 (en) Selecting entertainment lighting devices based on dynamicity of video content
US11561809B2 (en) Dynamic remote display resource management
KR102623137B1 (ko) 컴퓨팅 디바이스에서 동적 버퍼 사이징을 위한 시스템 및 방법
TW202121889A (zh) 動態調整顯示區域亮度狀態的方法及電子裝置
TW202310609A (zh) 電子裝置與視訊會議之處理器使用率的控制方法
JP6037694B2 (ja) サーバシステム、画像処理システム、プログラム及び画像処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170712

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170712

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170712

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180508

R150 Certificate of patent or registration of utility model

Ref document number: 6338669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees