(57)【特許請求の範囲】
【請求項１】
物理層コンポーネントおよびアプリケーション層コンポーネントを有するモバイルデバイスにおけるモバイルデバイス性能およびユーザ経験を向上させるための方法であって、
前記モバイルデバイスの前記アプリケーション層コンポーネントにおけるリソースアベイラビリティを決定することと、
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
前記物理層コンポーネントにおいてコンテンツを受信することであって、前記コンテンツは、圧縮されたビデオフレームを備える、受信することと、
前記アプリケーション層コンポーネントがコンテンツデータのサブセットを前記物理層コンポーネントからプルすることと、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記アプリケーション層コンポーネントは、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く非基準ビデオフレームとを前記最早のシーン変化の瞬間までプルしない、
を備える、方法。
【請求項２】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記アプリケーション層コンポーネントがプログラミングインターフェースを通じて前記モバイルデバイスのオペレーティングシステムと通信することを含む、請求項１に記載の方法。
【請求項３】
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記モバイルデバイスが定常電源に接続されているか否かを判定することを含む、請求項１に記載の方法。
【請求項４】
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、バッテリ電力をモニタリングすることを含む、請求項１に記載の方法。
【請求項５】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることを含む、請求項１に記載の方法。
【請求項６】
前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることは、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記モバイルデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含む、請求項５に記載の方法。
【請求項７】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、前記物理層コンポーネントが、ビデオデータストリームにおいて非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを拒否することを含む、請求項５に記載の方法。
【請求項８】
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
をさらに含む、請求項５に記載の方法。
【請求項９】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、前記最早のシーン変化が前記閾値持続時間よりも早く発生すると検出されるまで、前記物理層コンポーネントが、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを拒否することを含む、請求項５に記載の方法。
【請求項１０】
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む、請求項５に記載の方法。
【請求項１１】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含み、前記方法は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに備える、請求項５に記載の方法。
【請求項１２】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、
必要とされないビデオフレームの送信中、前記物理層コンポーネントがこれらのビデオフレームを受信しないように、前記モバイルデバイスの無線モジュールを電源オフにすること
を含む、請求項５に記載の方法。
【請求項１３】
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、データを収集することと、使用率およびアベイラビリティ情報を１つ以上のアプリケーション層コンポーネントに報告することとを含む、請求項５に記載の方法。
【請求項１４】
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに備える、請求項５に記載の方法。
【請求項１５】
コンピューティングデバイスであって、
コンテンツを受信するように構成された受信機回路と、
メモリと、
前記メモリおよび前記受信機回路に結合されたプロセッサと
を備え、前記プロセッサは、
前記コンピューティングデバイスのリソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
コンテンツデータのサブセットを前記受信機回路からプルすることと、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記コンテンツデータのサブセットは、受信された圧縮されたビデオフレームを備え、前記コンテンツデータのサブセットを前記受信機回路からプルすることは、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間までプルしないことを含む、
を含む動作を実行するようにプロセッサ実行可能な命令で構成される、コンピューティングデバイス。
【請求項１６】
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じてオペレーティングシステムと通信することを含むように、プロセッサ実行可能な命令で構成される、請求項１５に記載のコンピューティングデバイス。
【請求項１７】
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが前記コンピューティングデバイスが定常電源に接続されているか否かを判定することを含むように、プロセッサ実行可能な命令で構成される、請求項１５に記載のコンピューティングデバイス。
【請求項１８】
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがバッテリ電力をモニタリングすることを含むように、プロセッサ実行可能な命令で構成される、請求項１５に記載のコンピューティングデバイス。
【請求項１９】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、請求項１５に記載のコンピューティングデバイス。
【請求項２０】
前記プロセッサは、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２１】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、ビデオデータストリームにおいて非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを前記受信機回路が拒否することを含むように、プロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２２】
前記プロセッサは、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２３】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、前記最早のシーン変化が前記閾値持続時間よりも早く発生すると検出されるまで、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを前記受信機回路が拒否することを含むように、プロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２４】
前記プロセッサは、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む動作を実行するようにプロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２５】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含むように、プロセッサ実行可能な命令で構成され、
前記プロセッサは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２６】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、
必要とされないビデオフレームの送信中、前記受信機回路がこれらのビデオフレームを受信しないように、前記コンピューティングデバイスの無線モジュールを電源オフにすること
を含むように、プロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２７】
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがデータを収集することと使用率およびアベイラビリティ情報を報告することとを含むように、プロセッサ実行可能な命令で構成される、請求項１９に記載のコンピューティングデバイス。
【請求項２８】
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに備える、請求項１９に記載のコンピューティングデバイス。
【請求項２９】
コンピューティングデバイスであって、
コンテンツを受信するための手段と、
前記コンピューティングデバイスのリソースアベイラビリティを決定するための手段と、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段と、
コンテンツデータのサブセットをプルするための手段と、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記コンテンツデータのサブセットは、受信された圧縮されたビデオフレームを備え、前記コンテンツデータのサブセットをプルするための前記手段は、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間までプルしないための手段を備える、
を備える、コンピューティングデバイス。
【請求項３０】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、プログラミングインターフェースを通じてオペレーティングシステムと通信するための手段を含む、請求項２９に記載のコンピューティングデバイス。
【請求項３１】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、前記コンピューティングデバイスが定常電源に接続されているか否かを判定するための手段を含む、請求項２９に記載のコンピューティングデバイス。
【請求項３２】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、バッテリ電力をモニタリングするための手段を含む、請求項２９に記載のコンピューティングデバイス。
【請求項３３】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルするための手段を含む、請求項２９に記載のコンピューティングデバイス。
【請求項３４】
前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルするための手段は、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてデータをプルするための手段を含む、請求項３３に記載のコンピューティングデバイス。
【請求項３５】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、コンテンツを受信するための前記手段において、ビデオデータストリームで非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを拒否するための手段を含む、請求項３３に記載のコンピューティングデバイス。
【請求項３６】
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えるための手段
をさらに備える、請求項３３に記載のコンピューティングデバイス。
【請求項３７】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、
コンテンツを受信するための前記手段において、前記最早のシーン変化が前記閾値持続時間よりも早く発生すると検出されるまで基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを拒否するための手段
を含む、請求項３３に記載のコンピューティングデバイス。
【請求項３８】
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えるための手段
をさらに備える、請求項３３に記載のコンピューティングデバイス。
【請求項３９】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、
非基準フレームのデブロッキングを簡略化またはスキップするための手段と、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップするための手段と
のうちの１つを含み、
前記コンピューティングデバイスは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えるための手段をさらに含む、請求項３３に記載のコンピューティングデバイス。
【請求項４０】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、
必要とされないビデオフレームの送信中、これらのビデオフレームが、コンテンツを受信するための前記手段で受信されないように、前記コンピューティングデバイスの無線モジュールを電源オフにするための手段
を含む、請求項３３に記載のコンピューティングデバイス。
【請求項４１】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、
データを収集するための手段と、
使用率およびアベイラビリティ情報を報告するための手段と
を含む、請求項３３に記載のコンピューティングデバイス。
【請求項４２】
リソースが不足しているときに、より高い品質からより低い品質に遷移するための手段と、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻るための手段と
をさらに含む、請求項３３に記載のコンピューティングデバイス。
【請求項４３】
プロセッサ実行可能ソフトウェア命令を格納した非一時的なコンピュータ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令は、
コンピューティングデバイスのリソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
コンテンツデータのサブセットを受信機回路からプルすることと、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記コンテンツデータのサブセットは、受信された圧縮されたビデオフレームを備え、前記コンテンツデータのサブセットをプルすることは、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間までプルしないことを含む、
を含む動作をプロセッサに実行させるように構成される、非一時的なコンピュータ可読記憶媒体。
【請求項４４】
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じてオペレーティングシステムと通信することを含むように、動作をプロセッサに実行させるように構成される、請求項４３に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４５】
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが定常電源のアベイラビリティを決定することを含むように、動作をプロセッサに実行させるように構成される、請求項４３に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４６】
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがバッテリ電力をモニタリングすることを含むように、動作をプロセッサに実行させるように構成される、請求項４３に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４７】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、請求項４３に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４８】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４９】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることがビデオデータストリームにおいて非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを拒否することを含むように、動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５０】
前記格納されているプロセッサ実行可能ソフトウェア命令は、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５１】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、前記最早のシーン変化が前記閾値持続時間よりも早く発生すると検出されるまで基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを拒否することを含むように、動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５２】
前記格納されているプロセッサ実行可能ソフトウェア命令は、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５３】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含むように、動作をプロセッサに実行させるように構成され、
前記格納されているプロセッサ実行可能ソフトウェア命令は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることを含む動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５４】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルすることが、
必要とされないビデオフレームの送信中、前記受信機回路がこれらのビデオフレームを受信しないように、無線モジュールを電源オフにすること
を含むように、動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５５】
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが、データを収集することと、使用率およびアベイラビリティ情報を報告することとを含むように、動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５６】
前記格納されているプロセッサ実行可能ソフトウェア命令は、
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
を含む動作をプロセッサに実行させるように構成される、請求項４７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５７】
アプリケーション層コンポーネントを有するモバイルデバイスにおけるモバイルデバイス性能およびユーザ経験を向上させるための方法であって、
前記アプリケーション層コンポーネントにおいてモバイルデバイスリソースアベイラビリティを決定することと、
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
前記アプリケーション層コンポーネントの動的適応ビデオストリーミングセッションでストリーミングサーバからコンテンツを受信することと、
前記アプリケーション層コンポーネントが、コンテンツデータのサブセットを前記ストリーミングサーバからプルすることと、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記アプリケーション層コンポーネントは、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの１つ以上を前記最早のシーン変化の瞬間までプルしない、
を備える方法。
【請求項５８】
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記アプリケーション層コンポーネントがプログラミングインターフェースを通じて前記モバイルデバイスのオペレーティングシステムと通信することを含む、請求項５７に記載の方法。
【請求項５９】
前記ストリーミングサーバからコンテンツをプルすることは、圧縮されたビデオフレームをプルすることおよび受信することを含む、請求項５７に記載の方法。
【請求項６０】
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、バッテリ電力をモニタリングすることを含む、請求項５７に記載の方法。
【請求項６１】
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記モバイルデバイスが定常電源に接続されているか否かを判定することを含む、請求項５７に記載の方法。
【請求項６２】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、前記決定されたモバイルデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることを含む、請求項５７に記載の方法。
【請求項６３】
前記決定されたモバイルデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることは、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記モバイルデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含む、請求項６２に記載の方法。
【請求項６４】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルすることを含む、請求項６２に記載の方法。
【請求項６５】
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
さらに備える、請求項６２に記載の方法。
【請求項６６】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、前記最早のシーン変化の瞬間が前記閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間まで復号しないことを含む、請求項６２に記載の方法。
【請求項６７】
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む、請求項６２に記載の方法。
【請求項６８】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを備え、前記方法は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに備える、請求項６２に記載の方法。
【請求項６９】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、データを収集することと、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告することとを含む、請求項６２に記載の方法。
【請求項７０】
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに含む、請求項６２に記載の方法。
【請求項７１】
コンピューティングデバイスであって、
コンピューティングデバイスリソースアベイラビリティを決定するための手段と、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段と、
動的適応ビデオストリーミングセッションで、ストリーミングサーバからコンテンツを受信するための手段と、
コンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段と、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記コンテンツデータのサブセットを前記ストリーミングサーバからプルするための前記手段は、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの１つ以上を、前記最早のシーン変化の瞬間までプルしないための手段を含む、
を含む、コンピューティングデバイス。
【請求項７２】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、プログラミングインターフェースを通じて前記コンピューティングデバイスのオペレーティングシステムと通信するための手段を含む、請求項７１に記載のコンピューティングデバイス。
【請求項７３】
コンテンツを前記ストリーミングサーバから受信するための手段は、圧縮されたビデオフレームをプルおよび受信するための手段を含む、請求項７１に記載のコンピューティングデバイス。
【請求項７４】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、バッテリ電力をモニタリングするための手段を含む、請求項７１に記載のコンピューティングデバイス。
【請求項７５】
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、前記コンピューティングデバイスが定常電源に接続されているか否かを判定するための手段を含む、請求項７１に記載のコンピューティングデバイス。
【請求項７６】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルするための手段を含む、請求項７１に記載のコンピューティングデバイス。
【請求項７７】
前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルするための手段は、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルするための手段を含む、請求項７６に記載のコンピューティングデバイス。
【請求項７８】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルするための手段を含む、請求項７６に記載のコンピューティングデバイス。
【請求項７９】
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えるための手段
をさらに含む、請求項７６に記載のコンピューティングデバイス。
【請求項８０】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、前記最早のシーン変化の瞬間が前記閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間まで復号しないための手段を含む、請求項７６に記載のコンピューティングデバイス。
【請求項８１】
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えるための手段
をさらに備える、請求項７６に記載のコンピューティングデバイス。
【請求項８２】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、
非基準フレームのデブロッキングを簡略化またはスキップするための手段と、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップするための手段と
のうちの１つを備え、前記コンピューティングデバイスは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えるための手段をさらに含む、請求項７６に記載のコンピューティングデバイス。
【請求項８３】
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、データを収集するため、ならびに、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告するための手段を含む、請求項７６に記載のコンピューティングデバイス。
【請求項８４】
リソースが不足しているときに、より高い品質からより低い品質に遷移するための手段と、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻るための手段と
をさらに含む、請求項７６に記載のコンピューティングデバイス。
【請求項８５】
コンピューティングデバイスであって、
メモリと、
ネットワークを介してストリーミングサーバと通信するように構成されたネットワークインターフェースと、
前記メモリおよび前記ネットワークインターフェースに結合されたプロセッサと
を備え、前記プロセッサは、
コンピューティングデバイスリソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
動的適応ビデオストリーミングセッションで、コンテンツを前記ストリーミングサーバから受信することと、
コンテンツデータのサブセットを前記ストリーミングサーバからプルすることでと、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記コンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの１つ以上を前記最早のシーン変化の瞬間までプルしないことを含む、
を含む動作を実行するために、プロセッサ実行可能な命令で構成される、コンピューティングデバイス。
【請求項８６】
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じて前記コンピューティングデバイスのオペレーティングシステムと通信することを含むように、プロセッサ実行可能な命令で構成される、請求項８５に記載のコンピューティングデバイス。
【請求項８７】
前記プロセッサは、コンテンツを前記ストリーミングサーバから受信することが圧縮されたビデオフレームをプルおよび受信することを含むように、プロセッサ実行可能な命令で構成される、請求項８５に記載のコンピューティングデバイス。
【請求項８８】
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが、バッテリ電力をモニタリングすることを含むように、プロセッサ実行可能な命令で構成される、請求項８５に記載のコンピューティングデバイス。
【請求項８９】
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが、前記コンピューティングデバイスが定常電源に接続されているか否かを判定することを含むように、プロセッサ実行可能な命令で構成される、請求項８５に記載のコンピューティングデバイス。
【請求項９０】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、請求項８５に記載のコンピューティングデバイス。
【請求項９１】
前記プロセッサは、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９２】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルすることを含むように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９３】
前記プロセッサは、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９４】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、前記最早のシーン変化の瞬間が前記閾値持続時間よりも早く発生すると検出されたときに、前記最早のシーン変化の瞬間まで、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームのうちの少なくとも１つ以上を復号しないことを含むように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９５】
前記プロセッサは、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９６】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含むように、プロセッサ実行可能な命令で構成され、
前記プロセッサは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９７】
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、データを収集することと、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告することとを含むように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９８】
前記プロセッサは、
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、請求項９０に記載のコンピューティングデバイス。
【請求項９９】
前記ネットワークインターフェースは、ワイヤレスネットワークを介して通信するように構成されたトランシーバ回路を含む、請求項８５に記載のコンピューティングデバイス。
【請求項１００】
プロセッサ実行可能ソフトウェア命令を格納した非一時的なコンピュータ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令は、
コンピューティングデバイスリソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
動的適応ビデオストリーミングセッションで、ストリーミングサーバからコンテンツを受信することと、
コンテンツデータのサブセットを前記ストリーミングサーバからプルすることと、ここにおいて、前記サブセットは前記決定された品質レベルを提供するのに十分であり、前記コンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、現在の時間と最早のシーン変化の瞬間との間の時間期間が閾値持続時間よりも短いときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの１つ以上を前記最早のシーン変化の瞬間までプルしないことを含む、
を含む動作をプロセッサに実行させるように構成される、非一時的なコンピュータ可読記憶媒体。
【請求項１０１】
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じてコンピューティングデバイスのオペレーティングシステムと通信することを含むように、動作をプロセッサに実行させるように構成される、請求項１００に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０２】
前記格納されているプロセッサ実行可能ソフトウェア命令は、コンテンツを前記ストリーミングサーバから受信することが圧縮されたビデオフレームをプルすることおよび受信することを含むように、動作をプロセッサに実行させるように構成される、請求項１００に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０３】
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがバッテリ電力をモニタリングすることを含むように、動作をプロセッサに実行させるように構成される、請求項１００に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０４】
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがコンピューティングデバイスが定常電源に接続されているか否かを判定することを含むように、動作をプロセッサに実行させるように構成される、請求項１００に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０５】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、請求項１００に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０６】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、請求項１００に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０７】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルすることを含むように、動作をプロセッサに実行させるように構成される、請求項１００に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０８】
前記格納されているプロセッサ実行可能ソフトウェア命令は、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、請求項１０７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１０９】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、前記最早のシーン変化の瞬間が前記閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間まで復号しないことを含むように、動作をプロセッサに実行させるように構成される、請求項１０７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１１０】
前記格納されているプロセッサ実行可能ソフトウェア命令は、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、請求項１０７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１１１】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが前記閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含むように、動作をプロセッサに実行させるように構成され、
前記格納されているプロセッサ実行可能ソフトウェア命令は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることを含む動作をプロセッサに実行させるように構成される、請求項１０７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１１２】
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、データを収集することと、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告することとを含むように、動作をプロセッサに実行させるように構成される、請求項１０７に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１１３】
前記格納されているプロセッサ実行可能ソフトウェア命令は、
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
を含む動作をプロセッサに実行させるように構成される、請求項１０７に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  ワイヤレス通信技術は、過去数年にわたり爆発的な成長を経験してきている。ワイヤレスサービスプロバイダは現在、彼らの顧客に対して、数々のサービスを供給し、通信、リソース、および情報へのアクセスを前例のないレベルでユーザに提供している。これらのサービス拡張（service enhancement）と歩調を合わせるために、モバイル電子デバイス（例えば、セルラ電話、タブレット、ラップトップ、等）は、以前にも増して強力かつ複雑になってきている。モバイル電子デバイスは現在、一般に、モバイルデバイスユーザが彼らのモバイルデバイス上で複雑かつ電力集約的なソフトウェアアプリケーション（例えば、ビデオ処理ソフトウェア）を実行することを可能にする、多数のプロセッサ、システムオンチップ（ＳｏＣｓ）、および他のリソース（例えば、電力レール、メモリ、等）を含んでいる。これらは、モバイルデバイスのバッテリ寿命を大いに消耗させるため、モバイルデバイスリソースの効率的な利用が、これまで以上に重要な設計検討事項（design consideration）となってきている。
【発明の概要】
【０００２】
[0002]  様々な実施形態は、バッテリ寿命を改善することまたは現在のプロセッサアベイラビリティ（processor availability）または作業負荷に適応することを可能にする方法で、ビデオコンテンツを受信し、軽量のポータブル受信機デバイス上に表示するための方法、システム、およびデバイスを提供する。
【０００３】
[0003]  様々な実施形態は、アプリケーション層コンポーネントにおけるリソースアベイラビリティ（resource availability）を決定することと、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、物理層コンポーネントにおいてコンテンツを受信することと、アプリケーション層コンポーネントがコンテンツデータのサブセットを物理層コンポーネントからプルすることであって、該サブセットは決定された品質レベルを提供するのに十分である、プルすることと、によって、物理層コンポーネントおよびアプリケーション層コンポーネントを有するモバイルデバイスにおける性能およびユーザ経験を向上させる方法を含む。
【０００４】
[0004]  一実施形態では、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、アプリケーション層コンポーネントがプログラミングインターフェースを通じてモバイルデバイスのオペレーティングシステムと通信することを含みうる。さらなる実施形態では、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、モバイルデバイスが、定常電源に接続されているか否かを判定することを含みうる。さらなる実施形態では、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、バッテリ電力をモニタリングすることを含みうる。さらなる実施形態では、物理層コンポーネントにおいてコンテンツを受信することは、物理層コンポーネントにおいて圧縮されたビデオフレームを受信することを含みうる。
【０００５】
[0005]  さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルすることは、決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることを含みうる。さらなる実施形態では、決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることは、瞬間プロセッサ使用率（instantaneous processor utilization）、平均プロセッサ使用率、モバイルデバイスの残りのバッテリ電力、瞬間消費電力（instantaneous power consumption）、平均消費電力、アイドルプロセッサ周期、利用可能なシステムメモリ、および利用可能なシステムメモリ帯域幅のうちの少なくとも１つに基づいてリソースアベイラビリティを決定することを含みうる。さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルすることは、物理層コンポーネントが、ビデオデータストリームにおいて非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを拒否することを含みうる。
【０００６】
[0006]  さらなる実施形態では、方法は、少なくとも１つの受信された非基準ビデオフレームを復号しないことによって復号フレームレートを変えることを含みうる。さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルすることは、最早のシーン変化の瞬間（earliest scene change instant）が閾値持続時間（threshold duration）よりも早く（sooner）発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序で基準フレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上をその最早のシーン変化の瞬間までプルしないことを含みうる。さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルすることは、最早のシーン変化が閾値持続時間よりも早く発生すると検出されるまで、物理層コンポーネントが、基準ビデオフレームと、プレゼンテーション順序で基準フレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを拒否することを含みうる。さらなる実施形態では、方法は、復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレート（render frame rate）を変えることを含みうる。
【０００７】
[0007]  さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルすることは、非基準フレームのデブロッキング（deblocking）を簡略化またはスキップすることと、フルスクリーンリフレッシュ（full screen refresh）が閾値持続時間よりも早く発生すると検出されたときに基準フレームのデブロッキングを簡略化またはスキップすることとのうちの１つを含むことができ、一実施形態では、方法は、表示に使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることを含みうる。さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルすることは、必要とされないビデオフレームの送信中、物理層コンポーネントがこれらのビデオフレームを受信しないように、モバイルデバイスの無線モジュールの電源を切ることを含みうる。
【０００８】
[0008]  さらなる実施形態では、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、データを収集することと、使用率およびアベイラビリティ情報を１つ以上のアプリケーション層コンポーネントに報告することとを含みうる。さらなる実施形態では、方法は、リソースが不足しているときに、より高い品質からより低い品質に遷移することと、リソースがもはや不足していないときに、より低い品質からより高い品質に遷移し戻ることとを含みうる。
【０００９】
[0009]  様々な実施形態は、アプリケーション層コンポーネントにおけるモバイルデバイスリソースアベイラビリティを決定することと、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、アプリケーション層コンポーネントの動的適応ビデオストリーミングセッションでストリーミングサーバからコンテンツを受信することと、アプリケーション層コンポーネントが、コンテンツデータのサブセットをストリーミングサーバからプルすることであって、該サブセットは決定された品質レベルを提供するのに十分である、プルすることとによって、アプリケーション層コンポーネントを有するモバイルデバイスにおけるモバイルデバイス性能およびユーザ経験を向上させる方法を含みうる。
【００１０】
[0010]  一実施形態では、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、アプリケーション層コンポーネントが、プログラミングインターフェースを通じてモバイルデバイスのオペレーティングシステムと通信することを含みうる。さらなる実施形態では、ストリーミングサーバからコンテンツを受信することは、圧縮されたビデオフレームをプルすることおよび受信することを含みうる。さらなる実施形態では、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、バッテリ電力をモニタリングすることを含みうる。さらなる実施形態では、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、モバイルデバイスが定常電源に接続されているか否かを判定することを含みうる。
【００１１】
[0011]  さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをストリーミングサーバからプルすることは、デバイスリソースのアベイラビリティに基づいてコンテンツデータをプルすることを含みうる。さらなる実施形態では、デバイスリソースのアベイラビリティに基づいてコンテンツデータをプルすることは、瞬間プロセッサ使用率、平均プロセッサ使用率、モバイルデバイスの残りのバッテリ電力、瞬間消費電力、平均消費電力、アイドルプロセッサ周期、利用可能なシステムメモリ、および利用可能なシステムメモリ帯域幅のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含みうる。さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをストリーミングサーバからプルすることは、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルすることを含みうる。さらなる実施形態では、方法は、少なくとも１つの受信された非基準ビデオフレームを復号しないことによって復号フレームレートを変えることを含みうる。
【００１２】
[0012]  さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルすることは、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序で基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つをその最早のシーン変化の瞬間までプルしないことを含みうる。さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをストリーミングサーバからプルすることは、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上をその最早のシーン変化の瞬間まで復号しないことを含みうる。さらなる実施形態では、方法は、復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えることを含みうる。
【００１３】
[0013]  さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをストリーミングサーバからプルすることは、非基準フレームのデブロッキングを簡略化またはスキップすること、および、フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに基準フレームのデブロッキングを簡略化またはスキップすることのうちの１つを含みうる。さらなる実施形態では、方法は、表示に使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることを含みうる。さらなる実施形態では、決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをストリーミングサーバからプルすることは、データを収集することと、システムワイド・リソースモニタリングエージェントによって使用率およびアベイラビリティ情報を１つ以上のアプリケーション層コンポーネントに報告することとを含みうる。さらなる実施形態では、方法は、リソースが不足しているときに、より高い品質からより低い品質に遷移することと、リソースがもはや不足していないときに、より低い品質からより高い品質に遷移し戻ることとを含みうる。
【００１４】
[0014]  さらなる実施形態は、上述された方法に対応する様々な動作を実行するようにプロセッサ実行可能な命令で構成されたプロセッサを有するコンピューティングデバイスを含みうる。
【００１５】
[0015]  さらなる実施形態は、上述された方法動作（method operation）に対応する機能を実行するための様々な手段を有するコンピューティングデバイスを含みうる。
【００１６】
[0016]  さらなる実施形態は、プロセッサ実行可能な命令を格納した非一時的なプロセッサ可読記憶媒体を含むことができ、プロセッサ実行可能な命令は、上述された方法動作に対応する様々な動作を実行することをプロセッサに行わせるように構成される。
【００１７】
[0017]  本明細書に組み込まれ、かつ、本明細書の一部を成す添付の図面は、本発明の例示的な実施形態を例示し、以上で与えられた概要と、以下で与えられる詳細な説明とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１８】
【図１】図１は、様々な実施形態での使用に適したモバイルマルチメディア通信システムを示す通信システムブロック図である。
【図２】図２は、様々な実施形態で使用されうる直交周波数分割多重化（ＯＦＭＤ）モバイルマルチメディア通信システムにおけるマルチメディア基地局およびワイヤレス受信機デバイスのシステムブロック図である。
【図３】図３は、様々な実施形態による、様々なハードウェアおよびソフトウェアプロトコルモジュールを通る情報フローを示す通信およびソフトウェアプロトコルスタックアーキテクチャ図である。
【図４】図４は、様々な層と、様々なハードウェアおよびソフトウェアプロトコルモジュールを通る情報フローとを示す別のプロトコルスタックアーキテクチャ図である。
【図５】図５は、マルチメディアパケットを受信し、メディアサンプルをメディアプレーヤに配信するための方法の一実施形態のプロセスフロー図である。
【図６】図６は、リソースアベイラビリティに基づいてメディアサンプルをプルするための方法の一実施形態のプロセスフロー図である。
【図７Ａ】図７Ａは、リソースアベイラビリティに基づいてメディアサンプルを要求するための方法の一実施形態のプロセスフロー図である。
【図７Ｂ】図７Ｂは、特定の品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルすることによって、物理層コンポーネントおよびアプリケーション層コンポーネントを有するモバイルデバイスのモバイルデバイス性能およびユーザ経験を向上させるための方法の一実施形態のプロセスフロー図である。
【図７Ｃ】図７Ｃは、特定の品質レベルを提供するのに十分なコンテンツデータのサブセットをストリーミングサーバからプルすることによって、アプリケーション層コンポーネントを有するモバイルデバイスのモバイルデバイス性能およびユーザ経験を向上させるための方法の一実施形態のプロセスフロー図である。
【図８】図８は、メディアプレーヤと物理アダプテーション層コンポーネントとが、処理されるデータのフレームの数を減らすために、どのように共働しうるかを示す図である。
【図９】図９は、任意の実施形態とともに使用するのに適した受信機デバイスのシステムブロック図である。
【図１０】図１０は、任意の実施形態とともに使用するのに適したラップトップコンピュータのシステムブロック図である。
【発明を実施するための形態】
【００１９】
[0030]  様々な実施形態について、添付の図面を参照して詳細に説明する。可能な限り、図面全般にわたって同一または同様の部分を参照するために同一の参照番号が使用される。特定の例および実装形態への言及は、例示を目的としており、本発明または特許請求の範囲の適用範囲（scope）を限定することを意図としているわけではない。
【００２０】
[0031]  「例示的な」という用語は、本明細書では、「例、事例、または例証としての役割を果たす」という意味で使用される。「例示的な」ものとして本明細書で説明される任意の実現は、必ずしも、他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
【００２１】
[0032]  本明細書では、「モバイルデバイス」、「モバイルコンピューティングデバイス」、および「受信機デバイス」という用語は、セルラ電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤ、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラ電話、ワイヤレスゲーミングコントローラ、ならびに、マルチメディアを受信および処理するためのプログラマブルプロセッサおよび回路を含む類似したパーソナル電子デバイスのうちのいずれか１つまたはすべてを指すために、交換可能に使用される。
【００２２】
[0033]  本明細書では、「コンピューティングデバイス」という用語は、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルデバイス、セルラ電話、スマートブック、ウルトラブック、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラ電話、全地球測位システム（ＧＰＳ）受信機、ワイヤレスゲーミングコントローラ、ならびに、情報をワイヤレスで送るまたは受信するためのプログラマブルプロセッサおよび回路を含む他の類似した電子デバイスのうちのいずれか１つまたはすべてを指すために、総称的に使用される。
【００２３】
[0034]  本明細書では、「ブロードキャスト」という用語は、多数の受信側デバイスによって同時に受信可能となるようなデータ（ファイル、情報パケット、テレビジョンプログラミング、等）の送信、の意味で使用され、それは、マルチキャストを含む。
【００２４】
[0035]  多数の異なるモバイルブロードキャストテレビジョンサービスおよびブロードキャスト規格は、利用可能であるか、または将来的に検討されており、それらはすべて、様々な実施形態を実現し、それらによって利益を受けうる。そのようなサービスおよび規格は、例えば、ＯＭＡ ＢＣＡＳＴ（Open Mobile Alliance Mobile Broadcast Services Enabler Suite）、メディアＦＬＯ（登録商標）、ＤＶＢ−ＩＰＤＣ（Digital Video Broadcast IP Datacasting）、ＤＶＢ−Ｈ（Digital Video Broadcasting-Handheld）、ＤＶＢ−ＳＨ（Digital Video Broadcasting-Satellite services to Handhelds）、ＤＶＢ−Ｈ２（Digital Video Broadcasting-Handheld 2）、ＡＴＳＣ−Ｍ／Ｈ（Advanced Television Systems Committee-Mobile/Handheld）、およびＣＭＭＢ（China Multimedia Mobile Broadcasting）を含む。これらのブロードキャスト形式の各々は、ブロードキャスト通信チャネを含む。追加的に、マルチメディアサービスは、第３世代パートナーシッププロジェクト（３ＧＰＰ）、ロングタームエボリューション（ＬＴＥ）システム、第３世代ワイヤレスモバイル通信技術（３Ｇ）、第４世代ワイヤレスモバイル通信技術（４Ｇ）、モバイル通信のためのグローバルシステム（ＧＳＭ（登録商標））、ユニバーサルモバイル電気通信システム（ＵＭＴＳ）、３ＧＳＭ、ＧＰＲＳ（general packet radio service）、符号分割多元接続（ＣＤＭＡ）システム（例えば、cdmaOne、ＣＤＭＡ２０００（登録商標））、ＥＤＧＥ（enhanced data rates for GSM evolution）、高度携帯電話システム（ＡＭＰＳ）、デジタルＡＭＰＳ（ＩＳ−１３６／ＴＤＭＡ）、ＥＶ−ＤＯ（evolution-data optimized）、ＤＥＣＴ（digital enhanced cordless telecommunications）、ＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）、ＷＰＡ、ＷＰＡ２（Wi-Fi Protected Access I & II）、およびｉｄｅｎ（integrated digital enhanced network）を含みうる、セルラおよび／またはワイヤレス通信サービスおよび技術を介して個々のモバイルデバイスに直接配信（すなわち、ユニキャスト）されうる。これらのセルラ／ワイヤレス技術の各々は、例えば、音声、データ、シグナリング、および／またはコンテンツメッセージの送信および受信を含む。
【００２５】
[0036]  個々の規格または技術に関連した専門用語および／または技術的な詳細への任意の参照が例示だけを目的としていること、および、特許請求の範囲の用語で明記されていない限り、特許請求の範囲の適用範囲を特定の通信システムまたは技術に限定することを目的としているわけではないことは理解されるべきである。
【００２６】
[0037]  様々な実施形態は、マルチメディアコンテンツ（例えば、オーディオビデオストリーム、等）を効率的に受信し、コンピューティングデバイス、特にモバイルコンピューティングデバイス上に表示するための方法、システム、およびデバイスを提供する。
【００２７】
[0038]  様々な実施形態は、アプリケーション層コンポーネント（例えば、メディアプレーヤアプリケーション）が、デバイスリソースのアベイラビリティ（例えば、プロセッサアベイラビリティ、バッテリ予備電力（battery reserve）、等）に基づいてコンテンツデータのサブセットを物理層コンポーネントから選択的にプルすることを可能にする。事実上、様々な実施形態で実現されるアプローチは、物理層コンポーネントが受信データのすべてを、その一部が使用されない場合であってもそれらデータすべてをその後処理しなければならないアプリケーション層コンポーネントにプッシュする、従来のマルチメディアプレーヤで使用されるものとは正反対のものである。すへての受信データをアプリケーション層にプッシュする従来のアプローチは、データが、内部データチャネルを通して転送され（これは、電力を消費する）、アプリケーションによってアクセス可能なバッファに記憶されなければならない（これもまた電力を消費する）ので、より多くの電力消費を必要とする。様々な実施形態はメディアプレーヤアプリケーションによって使用されることとなるデータのサブセットをプルするので、データをパスおよびバッファすることに関連付けられた電力およびプロセッサリソースは、アプリケーションによって実際に使用されるデータによってのみ消費され、残りの受信データ（すなわち、アプリケーションによってプルされない受信データ）は、単に、無視されるか、物理層において上書きされる。したがって、様々な実施形態は、電力節減に対してユーザの経験のバランスを保ち、および／またはプロセッサの作業負荷に適応するような形で、何をどのように処理するかをアプリケーション層コンポーネント（例えば、メディアプレーヤ）によって決定しつつ、メディアプレーヤアプリケーションが、ビデオストリーム処理（受信、復号、およびレンダリング）レートをリソースのアベイラビリティに基づいて変えることを可能にする。
【００２８】
[0039]  一般に、コンテンツを受信し、コンピューティングデバイス上に表示することは、かなりの量の不可欠なデバイスリソース（ＣＰＵ動作、バッテリ電力、メモリ、等）を消費するソフトウェアアプリケーション（例えば、メディアプレーヤ）の実行を必要とする。そのようなソフトウェアアプリケーションは、典型的に、バッテリ寿命を大きく減らし、および／または、そうでなければモバイルデバイスリソースを占有／消費／消耗させうる、多数の電力およびリソース集約的なマルチメディアタスクを実行する。例えば、典型的なモバイルデバイスプロセッサは、アイドル状態である間は、そのキャパシティの５％で動作し、約１０ミリアンペア（ｍＡ）の電流を消費しうるが、マルチメディアタスクの実行中は、そのキャパシティの約６０％で動作し、約４００ｍＡの電流を消費する。加えて、マルチメディアタスクの実行は、電圧レール、グラフィック処理ユニット（ＧＰＵ）、およびメモリのような他のデバイスリソースおよびコンポーネントに対して同様の要求をしうる。これは、一つには、受信され、誤り訂正され、レンダリングアプリケーションに通信され、モバイルデバイス内のそのアプリケーションによって処理されなければならない大量のデジタル情報が原因である。加えて、マルチメディアコンテンツの性質により、受信および処理は、満足できるユーザ経験を提供するために、厳密な時間および同期要件内で達成されなければならない―――ユーザは、ビデオと同期がずれている（out of synchronization）オーディオおよび欠落したフレームに対して寛容でない。さらに、レンダリングされたメディアの品質に対するそのような要求は、モバイルデバイスが動作しうるすべての状況の下で満たされなければならない。
【００２９】
[0040]  現在、ビデオの空間的および時間的冗長性を低減する（したがって、通信されなければならない情報量を減らす）、いくつもの容易に利用可能なオーディオおよびビデオ圧縮技法（例えば、「ＭＰＥＧ（moving picture experts group）」圧縮）が存在する。しかしながら、圧縮方法の効率にかかわらず、マルチメディアコンテンツの受信およびレンダリングは、受信機デバイスにおいてかなりのエネルギーおよびプロセッサリソースを必要とする。圧縮されたデータを受信するためだけに、無線周波数受信機を介してシンボルを受信し、受信信号をバッファし、シンボルの誤り訂正および復号を実行するプロセスは、物理層でかなりの電力および処理リソースを消費する。その後、マルチメディアコンテンツをレンダリングする目的で、受信された圧縮されたマルチメディアデータは、表示されることおよびスピーカを通じて再生されることができる形式にデータを適切に復号するために、いくつかの事前処理および事後処理動作を通して処理されなければならない。これらの事前処理および事後処理動作は、かなりの量の電力、ＣＰＵリソース、およびメモリを消費する。したがって、リソースの量、または、事前処理および事後処理動作の一部として実行される処理を減らす処理方法は、バッテリ寿命を大幅に増加させ、総合的なユーザ経験を改善しうる。
【００３０】
[0041]  様々な実施形態は、モバイルデバイスプロセッサが、利用可能なデバイスリソースの能力をマッチ（match）させるため、および／または、バッテリ消費の必要性／要件を満たすために、バッテリ消費およびプロセッサ使用率の節減を増加させる方法で、受信および復号動作を調節することを可能にする。具体的には、様々な実施形態は、より高いレベルのコンポーネント（例えば、アプリケーションレベルのコンポーネント）が、データをより低いレベルのコンポーネント（例えば、物理層またはアダプテーション層コンポーネント）から選択的にプルすることを可能にすることによって、メディアをレンダリングする際に使用されるリソース量に対して、表示されるビデオ品質のバランスをインテリジェントに保つ。様々な実施形態は、電力および処理動作を節減しつつも、ユーザ経験を著しく劣化させることなく、アプリケーションが、コンテンツを表示するために必要とされるビデオデータのほぼ最小量でありうるコンテンツデータのサブセットをプルすることを可能にし、それによって、ユーザに、コンテンツ品質と消費電力との間の最適なまたは最適に近いバランスを提供する。
【００３１】
[0042]  物理層において受信されたがアプリケーション層によってプルされないデータは、さらなる処理がほとんどまたはまったくなしに、破棄されうる（例えば、受信機バッファにおいて上書きされることによって）。アプリケーション層において使用されることになるデータをプルすることによって（物理層によって受信されるすべてのデータを受け入れなければならないのではなく）、メディアのレンダリングには使用されないデータを通信すること（例えば、データバスを介して）、バッファすること、事前処理すること、および事後処理することによって、電力およびプロセッサリソースが消費されないので、アプリケーションは、従来のメディアプレーヤで可能となるよりも大きい効率を達成しながら、利用可能なリソース（例えば、電力および／またはプロセッサアベイラビリティ）に相応の分解能または品質のレベルでメディアをレンダリングしうる。
【００３２】
[0043]  様々な実施形態は、様々なネットワークおよび／またはモバイルマルチメディアシステム内で実現されることができ、その一例が図１に示されている。具体的には、図１は、モバイルデバイス１０がマルチメディアブロードキャストネットワーク１、ユニキャストネットワーク１１から、またはインターネット７を介してコンテンツを受信しうることを示す。典型的なマルチメディアブロードキャストネットワーク１は、モバイルブロードキャストネットワーク制御センター／ブロードキャスト動作センター（ＢＯＣ）４によって制御される複数のブロードキャスト送信機２を含む。マルチメディアブロードキャストネットワーク１は、スマートフォン、ラップトップ、携帯情報端末（ＰＤＡ）、および他の類似した電子デバイスのようなモバイル受信機デバイス１０による受信のために、モバイルブロードキャスト送信３としてブロードキャスト送信機２からコンテンツをブロードキャストする。ＢＯＣ ４内には、コンテンツブロードキャストを管理するための１つ以上のサーバおよびシステム３１が存在しえ、それらは、インターネット７への接続を提供する。
【００３３】
[0044]  マルチメディアブロードキャストネットワーク１に加えて、またはそれの代わりに、モバイル受信機デバイス１０は、セルラ電話ネットワーク、ＷｉＦｉネットワーク（図示せず）、ＷｉＭＡＸ、等のユニキャストネットワーク１１を介して通信しうる。典型的なセルラ電話ネットワークは、ネットワーク動作センター１４に結合された複数のセルラ基地局１２を含む。ネットワーク動作センター１４は、例えば、電話固定回線（例えば、ＰＯＴＳネットワーク、図示せず）およびインターネット７などを介して、モバイルデバイス１０と他のネットワーク宛先との間で音声およびデータ呼を接続するように動作する。
【００３４】
[0045]  モバイル受信機デバイス１０とユニキャストネットワーク１１との間の通信は、ＬＴＥ、４Ｇ、３Ｇ、ＣＤＭＡ、ＴＤＭＡ、および他のセルラ電話通信技術のような双方向ワイヤレス通信リンク１３を介して達成されうる。そのような双方向ワイヤレス通信リンク１３は、ユーザがマルチメディアコンテンツをモバイルデバイスにストリーミングすることを可能にしうる。インターネットデータ通信（例えば、ビデオフィードのストリーミング）を円滑にするために、ユニキャストネットワーク１１は、典型的に、インターネット７への接続を提供する、ネットワーク動作センター１４に結合された、またはネットワーク動作センター１４内の、１つ以上のサーバ１６を含む。モバイル受信機デバイス１０は、利用可能なときには有線接続を介してインターネット７にさらに接続することができ、このケースでは、インターネット７は、ユニキャストネットワークとして機能しうる。モバイル受信機デバイス１０はまた、周知の従来のウェブベースアクセスプロトコルを使用して、インターネット７を通じて非ブロードキャストコンテンツを受信しうる。
【００３５】
[0046]  モバイルデバイスにおいてマルチメディアコンテンツを受信およびレンダリングすることに関与する処理のタイプの一例として、下記段落では、ワイヤレスデータリンクを介して送信されるマルチメディアの符号化、送信、受信、復号、およびその後のレンダリングで達成される処理およびコンポーネントが示される。
【００３６】
[0047]  図２は、様々な実施形態で使用されうる直交周波数分割多重化（ＯＦＭＤ）モバイルマルチメディア通信システム１００における例示的なマルチメディア基地局１１０および例示的なワイヤレス受信機回路１５０のブロック図を示す。マルチメディア基地局１１０は、固定局、ベース送信機システム（ＢＴＳ：base transmitter system）、アクセスポイント、その他の類似したコンポーネントでありうる。ワイヤレス受信機回路１５０は、固定またはモバイルでありうる。
【００３７】
[0048]  マルチメディア基地局１１０では、送信機（ＴＸ）データおよびパイロットプロセッサ１２０は、異なるタイプのデータ（例えば、リアルタイムおよび非リアルタイムコンテンツ、オーバヘッド／制御データ、等）を受信し、受信データを処理（例えば、符号化、インターリーブ、シンボルマップ、等）して、データシンボルを生成しうる。送信機データおよびパイロットプロセッサ１２０はまた、パイロットシンボルを生成し、データおよびパイロットシンボルをＯＦＤＭ変調器１３０に提供しうる。ＯＦＤＭ変調器１３０は、データおよびパイロットシンボルを、適切なサブバンドおよびシンボル期間上に多重化し、多重化されたシンボルに対してＯＦＤＭ変調を実行して、ＯＦＤＭシンボルを生成しうる。送信機（ＴＭＴＲ）ユニット１３２は、ＯＦＤＭシンボルを１つ以上のアナログ信号にコンバートし、このアナログ信号をさらに調整（例えば、増幅、フィルタリング、周波数アップコンバート、等）して、変調信号を生成しうる。マルチメディア基地局１１０は、ＯＦＭＤモバイルマルチメディア通信システム１００において、ワイヤレス受信機による受信のために、アンテナ１３４を介して変調信号を送信しうる。
【００３８】
[0049]  受信機側では、ワイヤレス受信機回路１５０は、マルチメディア基地局１１０からの送信信号を、受信機ユニット１５４に結合されたアンテナ１５２を介して受信しうる。受信機ユニット１５４は、受信信号を調整（例えば、フィルタリング、増幅、周波数ダウンコンバート、等）し、調整信号をデジタル化して、入力サンプルのストリームを取得しうる。受信機ユニット１５４は、短い時間インターバル内に２つ以上の周波数間で切り替えることができるように構成されることができ、それにより、受信機ユニット１５４が、単一のフレーム内で２つ以上の異なるキャリアからシンボルを受信することができる（時間ホッピング）。受信機ユニット１５４は、受信されたデータおよびパイロットシンボルを取得するために入力サンプルに対してＯＦＤＭ復調を実行しうるＯＦＤＭ復調器１６０に入力サンプルを提供しうる。ＯＦＤＭ復調器１６０は、チャネル推定値（例えば、周波数応答推定値、等）を用いて、受信データシンボルに対して検出（例えば、マッチドフィルタリング（matched filtering）、等）を実行して、検出されたデータシンボルを取得することができ、それは、マルチメディア基地局１１０によって送られたデータシンボルの推定値でありうる。ＯＦＤＭ復調器１６０は、検出されたデータシンボルを、受信（ＲＸ）データプロセッサ１７０に提供しうる。
【００３９】
[0050]  同期／チャネル推定ユニット（ＳＣＥＵ）１８０は、受信機ユニット１５４からの入力サンプルを受信し、同期動作を実行して、フレームおよびシンボルタイミングを決定しうる。ＳＣＥＵ １８０はまた、ＯＦＤＭ復調器１６０から受信されたパイロットシンボルを使用してチャネル推定値を導き出しうる。ＳＣＥＵ １８０は、シンボルタイミングおよびチャネル推定値をＯＦＤＭ復調器１６０に提供しうる。ＳＣＥＵ １８０は、フレームタイミングをＲＸデータプロセッサ１７０および／またはコントローラ１９０に提供しうる。ＯＦＤＭ復調器１６０は、シンボルタイミングを使用して、ＯＦＤＭ復調を実行しうる。ＯＦＤＭ復調器１６０は、チャネル推定値を使用して、受信データシンボルに対して検出動作を実行しうる。
【００４０】
[0051]  ＲＸデータプロセッサ１７０は、ＯＦＤＭ復調器１６０からの検出されたデータシンボルを処理（例えば、シンボルデマップ、デインターリーブ、復号、等）し、復号されたデータを提供する。ＲＸデータプロセッサ１７０および／またはコントローラ１９０は、フレームタイミングを使用して、マルチメディア基地局１１０によって送られた異なるタイプのデータを復元しうる。一般に、ＯＦＤＭ復調器１６０およびＲＸデータプロセッサ１７０による処理は、それぞれ、マルチメディア基地局１１０におけるＯＦＤＭ変調器１３０ならびにＴＸデータおよびパイロットプロセッサ１２０による処理と相補的である。
【００４１】
[0052]  コントローラ１４０、１９０は、それぞれ、マルチメディア基地局１１０およびワイヤレス受信機回路１５０での動作を指揮しうる。コントローラ１４０、１９０は、プロセッサおよび／またはステートマシンでありうる。メモリユニット１４２、１９２は、それぞれ、コントローラ１４０および１９０によって使用されるデータおよびプログラムコードのための記憶容量を提供しうる。メモリユニット１４２、１９２は、情報を記憶するための様々なタイプの記憶媒体を使用しうる。
【００４２】
[0053]  ワイヤレス受信機回路１５０は、プロセッサ１７２およびメモリ１７４に結合されうる。プロセッサ１７２は、アプリケーションソフトウェアで構成されることができ、その一部は、図３および４に関して以下で説明されるようなアプリケーション層コンポーネントを構成しうる。プロセッサ１７２、メモリ１７４、およびワイヤレス受信機回路１５０の組み合わせは、様々な実施形態の実現に適したコンピューティングデバイスを提供する。そのような実施形態では、ワイヤレス受信機回路１５０は、コンピューティングデバイスがストリーミングコンテンツサーバ（図２には図示せず）からそれを通じてコンテンツを受信しうる、ワイヤレスネットワークへのネットワークインターフェースとして機能しうる。
【００４３】
[0054]  上述されたように、マルチメディアアプリケーション（例えば、メディアプレーヤ、等）は、一般に、電力および計算を多く必要とし（hungry）、ＣＰＵ、バッテリ、およびメモリのような必須のモバイルデバイスリソースに対して大きな要求を突きつける。これは、一つには、既存の解決策がマルチメディアストリーム／ブロードキャストを受信および処理する方法に原因がある。
【００４４】
[0055]  モバイルデバイスでは、コンテンツを受信およびレンダリングするための動作は、別個の独立したグループまたはカテゴリの動作へと分割されることができ、動作の各グループまたはカテゴリは、層に割り当てられうる。各層では、様々なハードウェアおよび／またはソフトウェアコンポーネントが、その層に割り当てられたレスポンシビリティに相応するその層のための機能を実現しうる。例えば、モバイルデバイスでは、メディアストリーム（例えば、ブロードキャスト、ポイント・ツー・ポイント、等）は、典型的に、物理層において受信され、それは、無線周波数（ＲＦ）信号内のシンボルを復調し、認識し、受信されたＲＦ信号から原データを抽出するために必要な前方誤り符号化（ＦＥＣ）処理を実行する動作を実行する、無線受信機、バッファ、および処理コンポーネントを含みうる。ストリーミングビデオを受信するための既存の解決策は、物理層で受信されたデータが、ビデオおよび／またはサウンドのようなコンテンツのレンダリングに有用な情報へとデータが処理されうるアプリケーション層まで、様々な層（例えば、データリンク層、ネットワーク層、トランスポート層、等）を通じてプッシュされることを必要とする。
【００４５】
[0056]  様々な層を通じて情報をプッシュすることは、メモリに記憶されている情報を処理すること、変換すること、記憶すること、および／またはアクセスすることを必要とし、多数のデータ転送およびメモリアクセス動作を必要としうる。これらのデータ転送およびメモリアクセス動作が多くのエネルギー（通常、データ処理動作よりも多くの電力）を消費するので、すべての受信データをアプリケーション層までプッシュすることは、高価でありうる（例えば、バッテリドレインの観点から）。その上、ブロードキャストフローおよびストリーミングメディアパケットは、典型的に、莫大な量の情報を符号化するが、それらのすべてがマルチメディアアプリケーションによって必要とされるまたは使用されるわけではない。したがって、受信データストリーム全体を様々な層を通じてプッシュすることは、エネルギーを必要以上に消費する可能性があり、様々な動作モードでは、デバイスリソースのかなりの浪費に相当しうる。様々な実施形態は、アプリケーションによって最終的に必要とされる（それによって、ユーザ経験にいい意味で影響を及ぼす）コンテンツデータのサブセットが、複数の層を通して上にパスされ、記憶され、および／または処理されることを確実にすることによって、これらの無駄な動作（例えば、プロトコル層において、下位の層がすべてのデータを上にプッシュすること）を回避する。
【００４６】
[0057]  様々な実施形態は、アプリケーション層によって処理されることとなるコンテンツデータのサブセットを物理層からプルすることによって、ストリーミングまたはブロードキャストビデオのようなコンテンツを表示するときにモバイルコンピューティングデバイスのアプリケーション層コンポーネント（例えば、メディアプレーヤ）によって消費されるエネルギーの量を減らす。様々な実施形態は、メディアプレーヤによって必要とされる情報量を決定し、必要とされないデータのフローおよび処理を防ぐことによって、コンテンツを受信し、モバイルデバイス上に表示するために必要とされるデータ転送およびメモリアクセス動作の数を減らす。
【００４７】
[0058]  図３は、様々な実施形態による、コンテンツの受信および表示に適したモバイルコンピューティングデバイスのサンプルのプロトコルスタック３００を通る情報フローを例示する。具体的には、図３は、物理層３０２で受信されたマルチメディアパケットが、物理層アダプテーション層（ＰＡＬ）３０４を通じてメディアプレーヤ層３０６まで上にプッシュされうることを、ユーザインターフェース層３０８に提供される出力とともに示す。層３０２、３０４、３０６、３０８の各々は、ハードウェアで、ソフトウェアで、または、ハードウェアとソフトウェアとの組み合わせで実現されうる。一実施形態では、メディアプレーヤ層３０６は、アプリケーション層でありうる。
【００４８】
[0059]  一実施形態では、メディアプレーヤ層３０６と物理層アダプテーション層（ＰＡＬ）３０４との間のクロスレイヤ最適化は、物理層３０２からの従来の「プッシュ」動作とは対照的に、メディアプレーヤ層３０６による「プル」動作を可能にしうる。例えば、ビデオ情報がモバイルデバイスの物理層３０２で受信されるとき、メディアプレーヤ層３０６（例えば、モバイルデバイスプロセッサ上で動作しているマルチメディアプレーヤ、等）は、さらなる処理のためにメモリに保存されることとなる情報を選択および／または「プル」することができ、これは、他のビデオ情報が破棄または上書きされることを可能にする。メディアプレーヤ層３０６は、リソースアベイラビリティ（例えば、瞬間ＣＰＵ使用率、残りのバッテリ寿命、等）、所望のユーザ経験レベル（例えば、必要とされるプレゼンテーション品質、フレームレート、等）、および表示されるべきコンテンツ（例えば、ハイモーション、静止、等）のような様々なファクタに基づいて、何が選択／プルされるかについて決定を行いうる。
【００４９】
[0060]  一実施形態では、メディアプレーヤ層３０６は、記憶および操作（manipulation）のために、物理層３０２からデータを選択的にプルするように構成されうる。代替的な実施形態では、メディアプレーヤ層３０６は、物理層３０２がデータをいつバッファへとプッシュすることができるかを示すフィルタを設定しうる。ビデオ処理動作（例えば、復号、レンダリング、等）は、リソースのアベイラビリティに基づいて調節されることができ、および／または、メディアプレーヤ層３０６は、プルすべきビデオデータを選ぶ際に、および／または、どの処理動作を実行するか、変更するか、または実行しないかを決める際に利用可能なように、デバイスリソースに対してプレゼンテーション品質のバランスをインテリジェントに保つように構成されうる。
【００５０】
[0061]  一実施形態では、メディアプレーヤ層３０６にパスされるべきデータをインテリジェントに識別および選択するための論理が、メディアプレーヤ層３０６（すなわち、アプリケーション層）と物理アダプテーション層３０４との間で実現されうる。メディアプレーヤ層３０６は、メディアプレーヤ層３０６による、最適化された／選択的なデータプル動作の実行（performance）を可能にするクロスレイヤ設計（プロトコル層をまたぐ）を使用して実現されうる（より下位の層からの一般的なプッシュ型データアップフローと対比して）。一実施形態では、２つの非隣接プロトコル層が、簡潔かつ制限付き情報搬送メッセージの交換を通じて結合されうる、「ゆるく結合された（loosely coupled）」クロスレイヤ解決策が実現されうる。これらの実施形態は、メディアプレーヤアプリケーションのようなメディアプレーヤ層３０６におけるハードウェアおよび／またはソフトウェアコンポーネントを介して実現されうる。
【００５１】
[0062]  様々な実施形態では、より下位の層からデータを選択的にプルすること（例えば、コンテンツに基づいてデータをプッシュすることとは対照的に）によって、効率的にコンテンツ（例えば、オーディオビデオストリーム、等）を受信し、それをモバイルデバイス上に表示するための方法は、ＰＡＬ ３０４内、メディアプレーヤ層３０６内、ＰＡＬ ３０４とメディアプレーヤ層３０６との間、または、部分的にＰＡＬ ３０４とメディアプレーヤ層３０６の両方の中で、ソフトウェア命令を用いて構成されたモバイルデバイスのプロセッサで実現されうる。
【００５２】
[0063]  一実施形態では、物理アダプテーション層３０４は、メディアプレーヤ層３０６が例えばマルチメディアデータのストリームにおいて受信データのサブセットまたは特定のタイプをインテリジェントに要求することを可能にする、プルメカニズムを実現するか、またはそれに応答するように構成されうる。例えば、物理アダプテーション層３０４は、メディアプレーヤ層３０６コンポーネントまたはアプリケーションが、不可欠なリソース（例えば、ＣＰＵ、電力、およびメモリ）のアベイラビリティに基づいて決定されうる、それらが必要とするコンテンツデータのサブセットを要求または選択的に受信することを可能にする論理を含みうる。
【００５３】
[0064]  図４は、一実施形態による、コンテンツの受信および表示に適したモバイルコンピューティングデバイスの例示的なプロトコルスタック４００を示す。図４に示された例では、プロトコルスタック４００は、物理層４０２、データリンク層４０４、ネットワーク層４０６、トランスポート層４０８、およびアプリケーション層４１０を含み、それらの各々が、ハードウェアで、ソフトウェアで、または、ハードウェアとソフトウェアの組み合わせで実現されうる。一実施形態では、モバイルコンピューティングデバイスは、電気通信工業会（Telecommunication Industry Association）規格ＴＩＡ １０９９によって規定されるハードウェアおよびソフトウェアモジュールを実装しうる。
【００５４】
[0065]  物理層４０２は、基本信号を受信し、受信データをデータリンク層４０４内のメディアトランスポートストリーム（例えば、ＭＰＥＧ−２トランスポートストリーム）または媒体アクセス制御モジュールに提供する無線コンポーネントを含みうる。データリンク層４０４は、モバイルコンピューティングデバイスの様々なコンポーネントが異なるデータストリームを受信することを可能にする、アドレス指定およびチャネルアクセス制御メカニズムを提供しうる。データリンク層４０４はまた、ここに示されたマルチプロトコルカプセル化（ＭＰＥ）前方誤り訂正（ＭＰＥ−ＦＥＣ）副層ならびにプログラムおよびシステム情報（ＳＩ／ＳＰＩ）副層のような、ＭＰＥＧトランスポートストリーム（ＴＳ）の上で、パケットプトロコル（例えば、インターネットプロトコル）を搬送するための副層を含みうる。
【００５５】
[0066]  コンテンツおよび情報フローを搬送するストリーム／信号の一部は、データリンク層４０４によってネットワーク層４０６にパスされることができ、それは、ストリーム、データグラム、および／またはパケットをトランスポート層４０８に通信／中継するためのインターネットプロトコル（ＩＰ）モジュール／インターフェースを含みうる。トランスポート層４０８で受信されるストリームおよびデータは、トランスポートのためにデータを処理およびパッケージ化する適切なトランスポート層モジュールに届けられうる。図４に示された例では、プトロコルスタックは、ユーザデータグラムプロトコル（ＵＤＰ）モジュール／副層に加え、非同期階層化コーディング／階層化コーディングトランスポート（ＡＬＣ／ＬＣＴ）副層、リアルタイムトランスポートプロトコル（ＲＴＰ）副層、および一方向トランスポート上ファイルデリバリー（ＦＬＵＴＥ：file delivery over unidirectional transport）副層のような、アプリケーション層４１０との通信を円滑にするためのモジュール／副層を含みうる。アプリケーション層４１０は、ホスト・ツー・ホスト、エンド・ツー・エンド接続を確立するため、およびプロセス・ツー・プロセス通信を実行するために必要とされるプロトコルおよび方法を含みうる。アプリケーション層４１０はまた、コンテンツを処理し、コンテンツをモバイルコンピューティングデバイス上に表示するためのエンドユーザアプリケーション（例えば、メディアプレーヤ）を含みうる。
【００５６】
[0067]  プロトコルスタック４００はまた、リアルタイムトランスポートプロトコル（ＲＴＰ）副層とアプリケーション層４１０との間に、トランスポート層４０８の一部として、物理層アダプテーション層（ＰＡＬ）４５０を含みうる。物理層４２０に到達する信号、パッケージ、およびデータは、物理アダプテーション層４５０を通じてアプリケーション層（例えば、メディアプレーヤ）まで上にプッシュされうる。一実施形態では、より下位の層からデータを選択的にプルすること（例えば、コンテンツに基づいてデータをプッシュすることとは対照的に）によって、コンテンツ（例えば、オーディオビデオストリーム、等）を受信し、それをモバイルコンピューティングデバイス上に表示するための方法／論理は、物理アダプテーション層４５０において実現されうる。
【００５７】
[0068]  物理アダプテーション層４５０は、アプリケーション層４１０コンポーネント（例えば、メディアプレーヤ、等）が、不可欠なリソース（例えば、ＣＰＵ、電力、およびメモリ）のアベイラビリティに基づいて決定されうるデータパケットを選択的に要求することを可能にする論理を含みうる。一実施形態では、物理アダプテーション層４５０は、メディアプレーヤがストリーミングマルチメディアデータのようなデータのストリーム内の特定のタイプのデータまたはデータエレメントをインテリジェントに要求することを可能にする、プルメカニズムを実現しうる。
【００５８】
[0069]  上述されたように、従来のプッシュ動作の代わりに、様々な実施形態は、アプリケーション層コンポーネント（例えば、メディアプレーヤ）が特定のタイプのデータをインテリジェントに要求することを可能にする、プルメカニズムを実現する。一実施形態では、データをプルする代わりに、アプリケーション層コンポーネントは、物理層（または中間層）によってアクセス可能なフラグを、アプリケーション層によってアクセスされるメモリに特定のフレームがロードされることを許可するように設定しうる。例えば、フレームごとに、アプリケーション層コンポーネントによってオンまたはオフにされるブールフラグ（Boolean flag）またはブール状態（Boolean state）が存在しうる。コンピューティングデバイスに重い負荷がかかっており、かつ、フレームレートが下げられるべきであること（例えば、毎秒３０フレームから毎秒１５フレームの受信レートに）をアプリケーション層コンポーネントが決定した場合、メディアプレーヤは、様々なフラグを設定／消去しうる。受信フレームのすべてが必要なわけではないことをアプリケーション層コンポーネントが決定した場合、それは、物理層（または中間層）によってアクセスされるブールフラグを設定することができ、それは、物理層に、設定されたフラグ条件に対応するそれらのフレームをアプリケーション層まで上にプッシュさせる。設定されたフラグに対応する条件を満たさない（すなわち、アプリケーションによって必要とされない）フレームは、物理層コンポーネントによって受信されたフレームの次にセットによって上書きされるなどして、破棄されうる。したがって、このようなフラグを設定することで、アプリケーションは、フィルタリング条件を設定することによって所望のフレームを効率的に「プル」することができる。アプリケーション層コンポーネントはまた、リソースのアベイラビリティに相応する最適な視覚経験をユーザに提供するために、毎秒プルされるべき（すなわち、アプリケーション層まで上にパスされるべき）フレームの数（例えば、３０ＦＰＳ対１５ＦＰＳ）を決定し、それに従ってフラグを設定しうる。
【００５９】
[0070]  図５は、コンピューティングデバイスにおいてマルチメディアパケットを受信し、メディアプレーヤのようなアプリケーションレベルのコンポーネントにメディアサンプルを提供するための、一実施形態の方法５００を示す。ブロック５０２では、マルチメディアパケットは、モバイルデバイスの物理層コンポーネントによって受信され、物理層アダプテーション層（ＰＡＬ）コンポーネントに報告されうる。ブロック５０４では、物理層アダプテーション層（ＰＡＬ）コンポーネントは、例えば、メディアプレーヤアプリケーションによってアクセス可能な状態フラグを設定することなどによって、利用可能なメディアサンプル（ＶＡＵ）をメディアプレーヤに報告しうる。ブロック５０６では、メディアプレーヤは、適切なリソース最適化検討事項に基づいて、それが必要とするコンテンツデータのサブセット（例えば、フレーム）を特定および／またはプルしうる。ブロック５０８では、要求またはプルされたデータ／フレームが、ＰＡＬによってメディアプレーヤに提供されうる。
【００６０】
[0071]  上述されたように、アプリケーション層コンポーネント（例えば、メディアプレーヤ）は、システム状態に（例えば、リソースに関して）気づいており、層を通して上に伝搬されるべき情報のタイプに関してインテリジェントな決定を行いうる。図６は、アプリケーション層コンポーネントによって最終的に利用されない情報の無駄な記憶および処理を低減するおよび／または回避するために、アプリケーション層コンポーネント（例えば、メディアプレーヤ）まで上に伝搬されるべき情報のタイプをインテリジェントに選択するための、一実施形態の方法６００を示す。１つの実施形態では、方法６００は、図５に関して上述されたブロック５０６の一部として実行されることができ、ここで、アプリケーション層コンポーネント（例えば、メディアプレーヤ）は、リソース最適化検討事項に基づいてデータ（例えば、フレーム）を特定および／またはプルする。
【００６１】
[0072]  ブロック６０２では、アプリケーション層コンポーネントは、物理層で受信されている情報に関する情報（例えば、受信されているビデオフレームのタイプ）を、より下位の層コンポーネント（例えば、ＰＡＬ層コンポーネント、物理層コンポーネント、等）から受信しうる。例えば、より下位の層（例えば、物理アダプテーション層、物理層）におけるコンポーネントは、ビデオフレームが受信されていることを示し、かつ、その受信フレームに関連付けられた１つ以上のコーディングタイプを識別するメッセージをアプリケーション層コンポーネントに送りうる。ブロック６０４では、アプリケーション層コンポーネントは、使用されているリソースと、それらのそれぞれの作業負荷とを識別しうる。決定ブロック６０６では、アプリケーション層コンポーネントは、コンピューティングデバイスに重い作業負荷がかかっているか否かを、識別された作業負荷およびリソース使用量に基づいて判定しうる。コンピューティングデバイスに重い作業負荷がかかっていないと決定されると（決定ブロック６０６＝「いいえ」）、アプリケーション層は、受信された情報をすべて使用して動作を実行しうる。一方で、コンピューティングデバイスに重い作業負荷がかかっていると決定されると（決定ブロック６０６＝「はい」）、ブロック６０８で、アプリケーション層コンポーネントは、適切なまたは所望の再生品質を決定しうる。
【００６２】
[0073]  ブロック６１０では、アプリケーション層コンポーネントは、決定された再生品質を提供するために所与のインターバル（例えば、１秒、２秒、等）にわたって所望される／必要とされる情報のタイプを決定しうる。ブロック６１２では、アプリケーション層コンポーネントは、そのインターバルについて所望されるタイプの情報だけを要求しうる。例えば、アプリケーション層コンポーネントは、利用可能なコーディングタイプおよび所望される／必要とされるサービス品質に基づいて、所望される／必要とされるサービス品質をユーザに提供するのに有利である受信フレームの部分を決定しうる。ブロック６１２の一部として、アプリケーション層コンポーネントは、受信フレームの決定された部分をプル／許可し、および／または、アプリケーションレベルに伝搬すべきコーディングタイプを選択しうる。これは、例えば、アプリケーション層コンポーネントが、物理層（または、中間層）によってアクセスされる様々なブールフラグを設定／消去することによって達成されうる。
【００６３】
[0074]  一実施形態では、アプリケーション層コンポーネントは、消費電力、ＣＰＵ消費量、メモリ使用率、および他のデバイスリソースに関する、変化する（一時的または漸進的）デバイスリソースアベイラビリティ条件に適応することができ、それは、全体的なデバイス性能およびユーザ経験を改善する。
【００６４】
[0075]  図７Ａは、リソースアベイラビリティに基づいてメディアサンプルを要求するための一実施形態の方法７００を示す。ブロック７０２では、メディアプレーヤは、リソースアベイラビリティを決定しうる。ブロック７０４では、メディアプレーヤは、許容品質レベルを選択しうる。一実施形態では、許容品質レベルは、リソースのアベイラビリティに基づいて決定されうる。ブロック７０６では、メディアプレーヤは、選択された品質レベルを提供するのに十分なメディアサンプルのサブセットを要求しうる。例えば、メディアプレーヤは、現在の／予想されるデバイスリソース状態に基づいて、プルすべき情報の適切なサブセットを選択しうる。その際に、メディアプレーヤは、計算複雑性とプレゼンテーション品質との間の１つ以上のトレードオフを評価または検討し、それは、メディアプレーヤが、実行されることとなる非標準化表示処理動作（例えば、画像リサイジング、色空間コンバージョン、ノイズ除去（de-noising）／リンギング除去（de-ringing））の１つ以上のセットを選択することを可能にする。ブロック７０８では、物理層アダプテーション層（ＰＡＬ）コンポーネントは、メディアプレーヤに、メディアサンプルの要求されたサブセットを送り、他のサンプルをすべて破棄しうる。
【００６５】
[0076]  図７Ｂは、物理層コンポーネントおよびアプリケーション層コンポーネントを有するモバイルデバイスのモバイルデバイス性能およびユーザ経験を向上させるための、一実施形態のモバイルデバイス方法７２０を示す。ブロック７２２では、モバイルデバイスのアプリケーション層コンポーネントは、モバイルデバイスリソースのアベイラビリティを決定しうる。ブロック７２４では、アプリケーション層コンポーネントは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定しうる。ブロック７２６では、モバイルデバイスは、物理層コンポーネントにおいてコンテンツ（例えば、ビデオ、等）を受信しうる。ブロック７２８では、アプリケーション層コンポーネントは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ、決定された許容品質レベルを提供するのに十分なコンテンツデータのサブセットを物理層コンポーネントからプルしうる。
【００６６】
[0077]  図７Ｃは、アプリケーション層コンポーネントを有するモバイルデバイスのモバイルデバイス性能およびユーザ経験を向上させるための、一実施形態のモバイルデバイス方法７４０を示す。ブロック７４２では、モバイルデバイスのアプリケーション層コンポーネントは、モバイルデバイスリソースのアベイラビリティを決定しうる。ブロック７４４では、アプリケーション層コンポーネントは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定しうる。ブロック７４６では、モバイルデバイスは、アプリケーション層コンポーネントの動的適応ビデオストリーミングセッションにおいてコンテンツ（例えば、ビデオ、等）をストリーミングサーバから受信しうる。ブロック７４８では、アプリケーション層コンポーネントは、決定された許容品質レベルを提供するのに十分なコンテンツデータのサブセットをストリーミングサーバからプルしうる。
【００６７】
[0078]  様々な実施形態では、リソースのアベイラビリティの考慮に加え、メディアプレーヤは、また、ビデオ情報に基づいてビデオ情報を選択／プルしうる。例えば、デバイスに重い作業負荷がかかっていること、および／またはリソースが節約されるべきであること（例えば、デバイスがバッテリ電力で動いていること）が決定されると、メディアプレーヤは、画像が静止しているときを（または、非常にゆっくりと動いているときを）検出するためにビデオ情報における動きベクトルをモニタリングしうる。動きをほとんどまたはまったく有さないセグメントの場合、メディアプレーヤは、特定のフレームをスキップすることを選びうる。これにより、コンピューティングデバイスは、ユーザに満足のいく経験を提供しながら、高速のリフレッシュレートを必要としないセグメントについて、記憶され１秒あたりに処理されるフレームの総数を減らすことができるようになる。
【００６８】
[0079]  一実施形態では、メディアプレーヤは、リソースが豊富なときには特定のタイプのデータ（例えば、ＩフレームおよびＢフレーム）を要求し、リソースがより限られているときには他のタイプのデータ（例えば、Ｂフレームのみ）を要求しうる。
【００６９】
[0080]  特定の状況では、共有配信ネットワークの状態を経時的に変化させるネットワーク変動（例えば、リソースのアベイラビリティの変化）が存在しうる。データ配信の待ち時間（latency）が増加していること（例えば、パケットが予想されたよりも遅く到着していること）を、クライアントコンピューティングデバイス（例えば、ラップトップ、ＷＩＦＩコンポーネント、ハンドセット、デスクトップ、セットトップボックス、アップルＴＶ、等）が観察すると、クライアントデバイスは、データの受信を管理するための動作を実行しうる。そうでなければ、クライアントバッファは、アンダーラン（under-run）し、ビデオ再生においてグリッチ（glitch）またはポーズ（pause）を引き起こしうる（すなわち、クライアントはリップルフレームを経験しうる）。「動的適応的に（dynamic adaptively）」サポートする技術により、クライアントは、配信ネットワークの状態のそのような変化に応答することができる。例えば、動的適応ストリーミングオーバＨＴＴＰ（ＤＡＳＨ）のような特定の技術は、送信されているビデオストリームの品質を、受信デバイスの利用可能な帯域幅およびＣＰＵ能力に基づいてリアルタイムで調節する。すなわち、これらの技術は、送られることとなる各ビデオストリームの多数のバージョンを生成することによって、「動的適応的に」サポートする。例えば、コンテンツ生成サーバは、１つの原ビデオファイルを読み込み、生成的（generative）ＩＰネットワーク上での配信のために多数のバージョンのファイルを生成しうる。各バージョンは、帯域幅、ビットレート、割当、分解能、空間分解能、時間分解能、フレームレート、品質、等の特定の組み合わせをサポートしうる。これにより、コンピューティングデバイスは、データ配信の待ち時間に基づいて、異なるバージョンのビデオストリームを要求することができる。そのような要求は、様々な実施形態を介して達成され、メディアコンテンツの選択されたファイルのバージョンまたはサブセットだけが、メディアプレーヤまで、またはアプリケーション層内の他のアプリケーションまで上にパスされることを確実にすることができる。
【００７０】
[0081]  また、共有ネットワーク上でも、クライアントは、変化する能力を有しうる。例えば、最新のラップトップコンピュータは、より高速のＧＰＵおよびＣＰＵを有している可能性があり、小型ハンドセットよりも高い帯域幅を処理することができる。各コンピューティングデバイスが、その能力に気づいているため、デバイスプロセッサは、その能力に相応する特定のバージョンのコンテンツを要求しうる。しかしながら、既存の解決策は、サーバから要求されるコンテンツのタイプが、消費電力、ＣＰＵ消費量、メモリ使用率、および他のデバイスリソースに関するデバイスリソースアベイラビリティ条件に基づくことを可能にしない。一実施形態では、コンピューティングデバイスは、サーバからの特定のタイプまたはバージョンのコンテンツが、消費電力、ＣＰＵ消費量、メモリ使用率、および他のデバイスリソースに関連するデバイスリソースアベイラビリティ条件に基づくことを要求するように構成されることができ、それは、全体的なデバイス性能およびユーザ経験を改善する。
【００７１】
[0082]  一実施形態では、コンピューティングデバイスは、電力、プロセッサ、および他のリソース制約に応答してビデオ品質を増加または減少させるように構成されうる。一実施形態では、情報の特定のフレームがスキップされて、コンピューティングデバイスが、スキップされたフレームを収集、受信、記憶、またはバッファしないようにしうる。一実施形態では、コンピューティングデバイス無線機は、バッテリ電力をさらに節約するために、スキップされたフレームについてオフにされうる。例えば、特定のフレームがスキップされることとなることをコンピューティングデバイスが決定すると、無線機は、それらのフレームが送信される時間の間、電源が切断され、次の要求フレームを受信するのに合わせて電源が投入されうる。
【００７２】
[0083]  一実施形態では、コンピューティングデバイスは、特定のタイプのデータ（例えば、基準フレーム、等）を搬送するＯＦＤＭシンボルを識別し、メディアプレーヤまたは他のアプリケーションによって要求またはプルされている情報を搬送しないＯＦＤＭシンボルの送信中、無線機の電源を切断するように構成されうる。
【００７３】
[0084]  一実施形態では、コンテンツは、スケーラブルビデオコーディング（ＳＶＣ）を使用して符号化されるスケーラブルビットストリームで搬送されうる。サブセットビデオビットストリームは、そのサブセットビットストリームについて必要とされる帯域幅を減らすために、より大きいビデオからパケットをドロップすることによって得られうる。サブセットビットストリームは、より低い空間分解能（より小さいスクリーン）、より低い時間分解能（より低いフレームレート）、または、より低い品質のビデオ信号を表しうる。スケーラブルビデオコーディングは、ベース層およびエンハンスメント層を含みうる。ベース層およびエンハンスメント層の各々は、特定のシンボル（例えば、Ｅ、Ｄ）に配置されうる。コンピューティングデバイスは、これらの層（例えば、ベース層、エンハンスメント層）に基づいて、および／または、それらの層を搬送するシンボル（例えば、Ｅ、Ｄ）に基づいて、受信された情報をアプリケーション層より下でフィルタリングするように構成されうる。一実施形態では、受信された情報（例えば、パケット、シンボル、等）を受信および破棄するのではなく、コンピューティングデバイスは、無線機の電源を切断し、情報をまったく受信せず、それによって、受信される情報を選択しうる。無線機は、情報より先にブロードキャストされたデータの記述に基づいてパワーダウンされうる。
【００７４】
[0085]  図８は、処理されるデータのフレームの数を減らす目的で、ビデオフレームデータ（すなわち、Ｉフレーム、Ｂフレーム、およびＰフレーム）を提供するために、メディアプレーヤとＰＡＬコンポーネントとがどのように共働しうるかを示す。ステップ８０２では、ビデオデータは、ＩＢＢＰＢＢＰフレームのストリームにおいて、毎秒３０フレーム（ｆｐｓ）のような第１のフレームレートで提供されうる。ステップ８０４では、メディアプレーヤは、現在のリソース制限／要件の観点からメディアを提示すべきフレームレートを決定することができ、またさらに、ビデオがユーザ経験に影響を及ぼすことなく提示されることができるフレームレートについての決定を行うことができる。図８の示された例では、ステップ８０４において、メディアプレーヤは、３０ｆｐｓから１５ｆｐｓにメディアレートを減らすことを決定し、プルされるべきフレームおよび／またはプルされないフレームを識別しうる。ステップ８０６では、メディアプレーヤは、物理層から受信されるプルされたフレームを識別、要求、プル、受信、および復号しうる。一実施形態では、メディアプレイは、双方向フレーム（Ｂフレーム復号）を可能にするのに必要なデータを含むフレーム８１２、８１４、８１６を、それらのフレームが最終的にレンダリングされない場合であっても、除外しないことを選びうる。ステップ８０６では、フレーム８１２、８１４、８１６は、破棄され、プルされたフレームデータが、８０４で決定されたフレームレートでユーザに提示されうる。
【００７５】
[0086]  様々な実施形態は、アプリケーション層コンポーネントを有するモバイルデバイスにおけるモバイルデバイス性能およびユーザ経験を向上させる方法を含み、それは、アプリケーション層コンポーネントにおいてモバイルデバイスリソースアベイラビリティを決定することと、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、アプリケーション層コンポーネントの動的適応ビデオストリーミングセッションでストリーミングサーバからコンテンツを受信することと、アプリケーション層コンポーネントがコンテンツデータのサブセットをストリーミングサーバからプルすることであって、該サブセットは決定された品質レベルを提供するのに十分である、プルすることと、を含みうる。そのようなコンテンツデータのサブセットは、決定された品質レベルを提供するためにモバイルデバイスによって必要とされるそれらのコンテンツサンプルまたはフレームだけでありうるが、追加のサンプルまたはフレームを含みうる。動的適応ビデオストリーミングセッションは、ＤＡＳＨアプリケーションまたは他の類似した動的適応ビデオストリーミング技術／アプリケーションでありうる。そのような実施形態では、アプリケーション層は、それが処理しているメディアを最もよく理解しており、よって、それは、モバイルデバイスリソースが不足する／ボトルネックとなるときに、コンテンツデータを処理してデバイス性能とユーザ経験の両方を改善するように構成される。
【００７６】
[0087]  ＤＡＳＨおよび他の類似した動的適応ビデオストリーミングアプリケーション（例えば、Ｎｅｔｆｌｉｘ（登録商標）、Ａｐｐｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ａｄｏｂｅ（登録商標）、等のプロプライエタリ・アプリケーション）は、ネットワーク条件（例えば、ネットワークスループット、帯域幅、ネットワーク待ち時間、およびパケット誤り／損失率）、デバイス能力（例えば、ネットワークインターフェースカード容量、受信品質、プロセッサ速度、ディスプレイ分解能、およびディスプレイリフレッシュレート）、または、ユーザ選好（例えば、スタートアップ待ち時間、初期バッファ期間、空間分解能、フレームレート、および忠実性（fidelity））に基づく、ストリーミングされたコンテンツ表現の動的適応に専念しうる。しかしながら、これらの解決策は、動的なボトルネックとなりうる、および／または他の何らかの形で様々なアプリケーション性能に影響を及ぼしうる、デバイスリソースを考慮しない。そのため、既存の解決策は、アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定しない。例えば、様々な実施形態では、モバイルデバイスは、毎秒３０フレームの高画質でビデオを表示し始め、アクティブストリーミングセッション中にバッテリレベルが特定の閾値よりも下に減少したときに、毎秒１５フレームの標準画質でビデオを表示することに切り替えうる。
【００７７】
[0088]  図９は、実施形態のいずれかとともに使用するのに適したモバイルコンピューティングデバイスのシステムブロック図である。典型的なモバイルコンピューティングデバイス９００は、内部メモリ９０２、ディスプレイ９０３、およびスピーカ９０８に結合されたプロセッサ９０１を含みうる。追加的に、モバイルコンピューティングデバイス９００は、ワイヤレスデータリンクに接続されうる電磁放射を送受信するためのアンテナ９０４、および／またはプロセッサ９０１に結合されたセルラ電話トランシーバ９０５、およびプロセッサ９０１に結合されたモバイルマルチメディアブロードキャスト受信機９０６を含む。モバイルコンピューティングデバイス９００は、通常、ユーザ入力を受信するためのメニュー選択ボタン９０７またはロッカースイッチも含む。
【００７８】
[0089]  ブロードキャスト側の様々な実施形態は、図１０に示されたラップトップ１０００のような、様々な市販のコンピューティングデバイスのいずれかで実現されうる。そのようなラップトップ１０００は、通常、揮発性メモリ１００２と、ディスクドライブ１００３のような不揮発性メモリとに結合されたプロセッサ１００１を含む。ラップトップ１０００はまた、プロセッサ１００１に結合された、フロッピー（登録商標）ディスクドライブ、コンパクトディスク（ＣＤ）またはＤＶＤディスクドライブを含みうる。ラップトップ１０００はまた、ディスプレイ１００９、キーボード１００８、ユーザ入力を受信するための入力デバイス１００７、および、他のブロードキャストシステムコンピュータおよびサーバと結合されたローカルエリアネットワークのようなネットワークとのデータ接続を確立するための、プロセッサ１００１に結合されたネットワークアクセスポート１００４を含みうる。
【００７９】
[0090]  プロセッサ９０１、１００１は、上述された様々な実施形態の機能を含む様々な機能を実行するようにソフトウェア命令（アプリケーション）によって構成されうる、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、あるいはマルチプルプロセッサチップでありうる。いくつかのモバイル受信機デバイスでは、ワイヤレス通信機能専用の１つのプロセッサおよび他のアプリケーションを走らせること専用の１つのプロセッサのような、マルチプルなプロセッサ８０１が提供されうる。典型的に、ソフトウェアアプリケーションは、内部メモリ９０２、１００２、１００３に記憶されてから、アクセスされ、プロセッサ８０１、１００１にロードされる。プロセッサ９０１、１００１は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含みうる。
【００８０】
[0091]  以上の方法の説明およびプロセスフロー図は、単に、例として提供されており、様々な実施形態のステップが提示された順序で実行されなければならないことを必要とするまたは暗示することを意図したものではない。当業者によって認識されるように、以上の実施形態における諸ステップは、任意の順序で実行されうる。「その後」、「次に」、等という用語は、ステップの順序を限定することを意図したものではなく、これらの用語は、単に、方法の説明を通じて読者を導くために使用される。プロセスフロー図は、連続したプロセスとして動作を説明しているが、動作の多くは、並列してまたは同時に実行されうる。加えて、動作の順序は再配列されうる。プロセスは、方法、関数、手順、サブルーチン、サブプログラム、等に対応しうる。プロセスが関数に対応するとき、その終了は、呼び出し関数または主関数に関数の復帰に対応しうる。
【００８１】
[0092]  本明細書で開示された実施形態と関連して説明されている様々な例示的な論理ブロック、モジュール、回路、アルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実現されうる。このハードウェアおよびソフトウェアの交換可能性を明確に示すために、実例となる様々なコンポーネント、ブロック、モジュール、回路、およびステップが、概ねそれらの機能の観点から上述されている。このような機能がハードウェアとして実現されるかソフトウェアとして実現されるかは、特定の用途およびシステム全体に課せられる設計制約に依存する。当業者は、特定の用途ごとに、上述された機能を様々な方法で実現することができるが、このような実現の決定は、本発明の適用範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００８２】
[0093]  コンピュータソフトウェアにおいて実現される実施形態は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述用語、またはそれらの任意の組み合わせにおいて実現されうる。コードセグメントまたは機械実行可能な命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは、命令、データ構造、またはプログラムセグメントの任意の組み合わせに相当しうる。コードセグメントは、情報、データ、アーギュメント、パラメータ、またはメモリコンテンツをパスことおよび／あるいは受信することによって別のコードセグメントまたはハードウェア回路に結合されうる。情報、アーギュメント、パラメータ、データ、等は、メモリ共有、メッセージパッシング（passing）、トークンパッシング、ネットワーク送信、等を含む任意の適切な手段を介して、パスされるか、転送されるか、あるいは送信されうる。
【００８３】
[0094]  ソフトウェアで実現されるとき、これら機能は、非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上の１つ以上の命令またはコードとして記憶されうる。本明細書で開示される方法またはアルゴリズムのステップは、コンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上に存在しうるプロセッサ実行可能なソフトウェアモジュールで具現化されうる。非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、ある場所から別の場所へのコンピュータプログラムの転送を円滑にする有形の記憶媒体およびコンピュータ記憶媒体の両方を含む。非一時的なプロセッサ可読記憶媒体は、コンピュータによってアクセスされることができる任意の入手可能な媒体でありうる。限定ではなく例として、そのような非一時的なプロセッサ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光学ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、コンピュータまたはプロセッサによってアクセスされることができ、命令やデータ構造の形式で所望のプログラムコードを記憶するために使用されうるその他の有形な媒体を備えうる。ディスク（disk）およびディスク（disc）は、本明細書で使用される場合、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスク、およびブルーレイ（登録商標）ディスクを含み、ディスク（disk）は、通常、データを磁気的に再生するが、ディスク（disc）は、データをレーザで光学的に再生する。上記の組み合わせもまた、コンピュータ読取可能な媒体の適用範囲内に含まれるべきである。追加的に、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれうる、非一時的なプロセッサ可読媒体および／またはコンピュータ可読媒体上で、コードおよび命令のうちの１つ、それらの任意の組み合わせ、または、それらのセットとして存在しうる。
【００８４】
[0095]  ハードウェアで実現されるとき、これらの機能は、ワイヤレス受信機またはモバイルデバイスでの使用に適切でありうるワイヤレス信号処理回路の回路内で実現されうる。そのようなワイヤレス信号処理回路は、様々な実施形態において説明された信号測定および算出ステップを達成するための回路を含みうる。
【００８５】
[0096]  本明細書で開示された実施形態に関連して説明された実例となる様々な論理、論理ブロック、モジュール、および回路を実現するために使用されるハードウェアは、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは本明細書で説明された機能を実行するように設計されたこれらの任意の組み合わせで実現または実行されうる。汎用プロセッサは、マイクロプロセッサでありうるが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでありうる。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰと、１つのマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つ以上のマイクロプロセッサ、または任意のその他のそのような構成との組み合わせとして実現されうる。代替的に、いくつかのステップまたは方法は、所与の機能に固有の回路により実行されうる。
【００８６】
[0097]  例えば、「ａ」、「ａｎ」、または「ｔｈｅ」という冠詞を使用した単数形の請求項の要素への任意の参照は、その要素を単数形に限定するものとして解釈されるべきではない。
【００８７】
[0098]  開示された実施形態についての以上の説明は、当業者が本発明を製造または使用できるように提供されている。これらの実施形態に対する様々な変更は、当業者には容易に明らかであり、本明細書で定義された包括的な原理は、本発明の精神または適用範囲から逸脱することなく、他の実施形態に適用されうる。このように、本発明は、本明細書に示された実施形態に制限されることが意図されず、以下の特許請求の範囲ならびに本明細書に開示された原理および新規な特徴と合致する最も広い適用範囲が与えられるべきである。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
物理層コンポーネントおよびアプリケーション層コンポーネントを有するモバイルデバイスにおけるモバイルデバイス性能およびユーザ経験を向上させるための方法であって、
前記アプリケーション層コンポーネントにおけるリソースアベイラビリティを決定することと、
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
前記物理層コンポーネントにおいてコンテンツを受信することと、
前記アプリケーション層コンポーネントがコンテンツデータのサブセットを前記物理層コンポーネントからプルすることであって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルすることと
を備える、方法。
［Ｃ２］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記アプリケーション層コンポーネントがプログラミングインターフェースを通じて前記モバイルデバイスのオペレーティングシステムと通信することを含む、Ｃ１に記載の方法。
［Ｃ３］
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記モバイルデバイスが定常電源に接続されているか否かを判定することを含む、Ｃ１に記載の方法。
［Ｃ４］
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、バッテリ電力をモニタリングすることを含む、Ｃ１に記載の方法。
［Ｃ５］
前記物理層コンポーネントにおいてコンテンツを受信することは、前記物理層コンポーネントにおいて、圧縮されたビデオフレームを受信することを含む、Ｃ１に記載の方法。
［Ｃ６］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることを含む、Ｃ５に記載の方法。
［Ｃ７］
前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることは、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記モバイルデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含む、Ｃ６に記載の方法。
［Ｃ８］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、前記物理層コンポーネントが、ビデオデータストリームにおいて非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを拒否することを含む、Ｃ６に記載の方法。
［Ｃ９］
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
をさらに含む、Ｃ６に記載の方法。
［Ｃ１０］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く非基準ビデオフレームとを前記最早のシーン変化の瞬間までプルしないことを含む、Ｃ６に記載の方法。
［Ｃ１１］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、最早のシーン変化が閾値持続時間よりも早く発生すると検出されるまで、前記物理層コンポーネントが、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを拒否することを含む、Ｃ６に記載の方法。
［Ｃ１２］
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む、Ｃ６に記載の方法。
［Ｃ１３］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含み、前記方法は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに備える、Ｃ６に記載の方法。
［Ｃ１４］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記物理層コンポーネントからプルすることは、
必要とされないビデオフレームの送信中、前記物理層コンポーネントがこれらのビデオフレームを受信しないように、前記モバイルデバイスの無線モジュールを電源オフにすること
を含む、Ｃ６に記載の方法。
［Ｃ１５］
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、データを収集することと、使用率およびアベイラビリティ情報を１つ以上のアプリケーション層コンポーネントに報告することとを含む、Ｃ６に記載の方法。
［Ｃ１６］
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに備える、Ｃ６に記載の方法。
［Ｃ１７］
コンピューティングデバイスであって、
コンテンツを受信するように構成された受信機回路と、
メモリと、
前記メモリおよび前記受信機回路に結合されたプロセッサと
を備え、前記プロセッサは、
リソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
コンテンツデータのサブセットを前記受信機回路からプルすることであって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルすることと、
を含む動作を実行するようにプロセッサ実行可能な命令で構成される、コンピューティングデバイス。
［Ｃ１８］
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じてオペレーティングシステムと通信することを含むように、プロセッサ実行可能な命令で構成される、Ｃ１７に記載のコンピューティングデバイス。
［Ｃ１９］
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが前記コンピューティングデバイスが定常電源に接続されているか否かを決定することを含むように、プロセッサ実行可能な命令で構成される、Ｃ１７に記載のコンピューティングデバイス。
［Ｃ２０］
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがバッテリ電力をモニタリングすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ１７に記載のコンピューティングデバイス。
［Ｃ２１］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが前記決定された品質レベルを提供するために必要とされる受信された圧縮されたビデオフレームだけを前記受信機回路からプルすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ１７に記載のコンピューティングデバイス。
［Ｃ２２］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ２１に記載のコンピューティングデバイス。
［Ｃ２３］
前記プロセッサは、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ２４］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、ビデオデータストリームにおいて非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを前記受信機回路が拒否することを含むように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ２５］
前記プロセッサは、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ２６］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに基準ビデオフレームとプレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間までプルしないことを含むように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ２７］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、最早のシーン変化が閾値持続時間よりも早く発生すると検出されるまで、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを前記受信機回路が拒否することを含むように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ２８］
前記プロセッサは、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む動作を実行するようにプロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ２９］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含むように、プロセッサ実行可能な命令で構成され、
前記プロセッサは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ３０］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、
必要とされないビデオフレームの送信中、前記受信機回路がこれらのビデオフレームを受信しないように、前記コンピューティングデバイスの無線モジュールを電源オフにすること
を含むように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ３１］
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがデータを収集することと使用率およびアベイラビリティ情報を報告することとを含むように、プロセッサ実行可能な命令で構成される、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ３２］
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに備える、Ｃ２２に記載のコンピューティングデバイス。
［Ｃ３３］
コンピューティングデバイスであって、
コンテンツを受信するための手段と、
リソースアベイラビリティを決定するための手段と、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段と、
コンテンツデータのサブセットをプルするための手段であって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルするための手段と、
を備える、コンピューティングデバイス。
［Ｃ３４］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、プログラミングインターフェースを通じてオペレーティングシステムと通信するための手段を含む、Ｃ３３に記載のコンピューティングデバイス。
［Ｃ３５］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、前記コンピューティングデバイスが定常電源に接続されているか否かを判定するための手段を含む、Ｃ３３に記載のコンピューティングデバイス。
［Ｃ３６］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、バッテリ電力をモニタリングするための手段を含む、Ｃ３３に記載のコンピューティングデバイス。
［Ｃ３７］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、前記決定された品質レベルを提供するために必要とされる受信された圧縮されたビデオフレームだけをプルするための手段を含む、Ｃ３３に記載のコンピューティングデバイス。
［Ｃ３８］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルするための手段を含む、Ｃ３７に記載のコンピューティングデバイス。
［Ｃ３９］
前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルするための手段は、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてデータをプルするための手段を含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４０］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、コンテンツを受信するための前記手段において、ビデオデータストリームで非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを拒否するための手段を含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４１］
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えるための手段
をさらに備える、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４２］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、
最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間までプルしないための手段
を含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４３］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、
コンテンツを受信するための前記手段において、最早のシーン変化が閾値持続時間よりも早く発生すると検出されるまで基準ビデオフレームとプレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを拒否するための手段
を含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４４］
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えるための手段
をさらに備える、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４５］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、
非基準フレームのデブロッキングを簡略化またはスキップするための手段と、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップするための手段と
のうちの１つを含み、
前記コンピューティングデバイスは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えるための手段をさらに含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４６］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、
必要とされないビデオフレームの送信中、これらのビデオフレームが、コンテンツを受信するための前記手段で受信されないように、前記コンピューティングデバイスの無線モジュールを電源オフにするための手段
を含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４７］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、
データを収集するための手段と、
使用率およびアベイラビリティ情報を報告するための手段と
を含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４８］
リソースが不足しているときに、より高い品質からより低い品質に遷移するための手段と、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻るための手段と
をさらに含む、Ｃ３８に記載のコンピューティングデバイス。
［Ｃ４９］
プロセッサ実行可能ソフトウェア命令を格納した非一時的なコンピュータ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令は、
リソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
コンテンツデータのサブセットを受信機回路からプルすることであって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルすることと、
を含む動作をプロセッサに実行させるように構成される、非一時的なコンピュータ可読記憶媒体。
［Ｃ５０］
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じてオペレーティングシステムと通信することを含むように、動作をプロセッサに実行させるように構成される、Ｃ４９に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５１］
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが定常電源のアベイラビリティを決定することを含むように、動作をプロセッサに実行させるように構成される、Ｃ４９に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５２］
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがバッテリ電力をモニタリングすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ４９に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５３］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが前記決定された品質レベルを提供するために必要とされる受信された圧縮されたビデオフレームだけをプルすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ４９に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５４］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ５３に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５５］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定されたリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５６］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることがビデオデータストリームにおいて非基準ビデオフレームおよびエンハンスメント層ビデオフレームのうちの１つ以上を受信することを拒否することを含むように、動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５７］
前記格納されているプロセッサ実行可能ソフトウェア命令は、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５８］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに基準ビデオフレームとプレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間までプルしないことを含むように、動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ５９］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、最早のシーン変化が閾値持続時間よりも早く発生すると検出されるまで基準ビデオフレームとプレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を受信することを拒否することを含むように、動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ６０］
前記格納されているプロセッサ実行可能ソフトウェア命令は、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ６１］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記受信機回路からプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含む動作をプロセッサに実行させるように構成され、
前記格納されているプロセッサ実行可能ソフトウェア命令は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることを含む動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ６２］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルすることが、
必要とされないビデオフレームの送信中、前記受信機回路がこれらのビデオフレームを受信しないように、無線モジュールを電源オフにすること
を含むように、動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ６３］
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが、データを収集することと、使用率およびアベイラビリティ情報を報告することとを含むように、動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ６４］
前記格納されているプロセッサ実行可能ソフトウェア命令は、
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
を含む動作をプロセッサに実行させるように構成される、Ｃ５４に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ６５］
アプリケーション層コンポーネントを有するモバイルデバイスにおけるモバイルデバイス性能およびユーザ経験を向上させるための方法であって、
前記アプリケーション層コンポーネントにおいてモバイルデバイスリソースアベイラビリティを決定することと、
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
前記アプリケーション層コンポーネントの動的適応ビデオストリーミングセッションでストリーミングサーバからコンテンツを受信することと、
前記アプリケーション層コンポーネントが、コンテンツデータのサブセットを前記ストリーミングサーバからプルすることであって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルすることと、
を備える方法。
［Ｃ６６］
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記アプリケーション層コンポーネントがプログラミングインターフェースを通じて前記モバイルデバイスのオペレーティングシステムと通信することを含む、Ｃ６５に記載の方法。
［Ｃ６７］
前記ストリーミングサーバからコンテンツをプルすることは、圧縮されたビデオフレームをプルすることおよび受信することを含む、Ｃ６５に記載の方法。
［Ｃ６８］
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、バッテリ電力をモニタリングすることを含む、Ｃ６５に記載の方法。
［Ｃ６９］
前記アプリケーション層コンポーネントにおいてリソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することは、前記モバイルデバイスが定常電源に接続されているか否かを判定することを含む、Ｃ６５に記載の方法。
［Ｃ７０］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、前記決定されたモバイルデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることを含む、Ｃ６５に記載の方法。
［Ｃ７１］
前記決定されたモバイルデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることは、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記モバイルデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含む、Ｃ７０に記載の方法。
［Ｃ７２］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルすることを含む、Ｃ７０に記載の方法。
［Ｃ７３］
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
さらに備える、Ｃ７０に記載の方法。
［Ｃ７４］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルすることは、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つを前記最早のシーン変化の瞬間までプルしないことを含む、Ｃ７０に記載の方法。
［Ｃ７５］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間まで復号しないことを含む、Ｃ７０に記載の方法。
［Ｃ７６］
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む、Ｃ７０に記載の方法。
［Ｃ７７］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを備え、前記方法は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに備える、Ｃ７０に記載の方法。
［Ｃ７８］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることは、データを収集することと、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告することとを含む、Ｃ７０に記載の方法。
［Ｃ７９］
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに含む、Ｃ７０に記載の方法。
［Ｃ８０］
コンピューティングデバイスであって、
コンピューティングデバイスリソースアベイラビリティを決定するための手段と、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段と、
動的適応ビデオストリーミングセッションで、ストリーミングサーバからコンテンツを受信するための手段と、
コンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段であって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルするための手段と、
を含む、コンピューティングデバイス。
［Ｃ８１］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、プログラミングインターフェースを通じて前記コンピューティングデバイスのオペレーティングシステムと通信するための手段を含む、Ｃ８０に記載のコンピューティングデバイス。
［Ｃ８２］
コンテンツを前記ストリーミングサーバから受信するための手段は、圧縮されたビデオフレームをプルおよび受信するための手段を含む、Ｃ８０に記載のコンピューティングデバイス。
［Ｃ８３］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、バッテリ電力をモニタリングするための手段を含む、Ｃ８０に記載のコンピューティングデバイス。
［Ｃ８４］
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定するための手段は、前記コンピューティングデバイスが定常電源に接続されているか否かを判定するための手段を含む、Ｃ８０に記載のコンピューティングデバイス。
［Ｃ８５］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルするための手段を含む、Ｃ８０に記載のコンピューティングデバイス。
［Ｃ８６］
前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルするための手段は、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルするための手段を含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ８７］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルするための手段を含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ８８］
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えるための手段
をさらに含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ８９］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルするための手段は、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つを前記最早のシーン変化の瞬間までプルしないための手段を含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ９０］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間まで復号しないための手段を含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ９１］
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えるための手段
をさらに備える、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ９２］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、
非基準フレームのデブロッキングを簡略化またはスキップするための手段と、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップするための手段と
のうちの１つを備え、前記コンピューティングデバイスは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えるための手段をさらに含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ９３］
前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルするための手段は、データを収集するため、ならびに、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告するための手段を含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ９４］
リソースが不足しているときに、より高い品質からより低い品質に遷移するための手段と、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻るための手段と
をさらに含む、Ｃ８５に記載のコンピューティングデバイス。
［Ｃ９５］
コンピューティングデバイスであって、
メモリと、
ネットワークを介してストリーミングサーバと通信するように構成されたネットワークインターフェースと、
前記メモリおよび前記ネットワークインターフェースに結合されたプロセッサと
を備え、前記プロセッサは、
コンピューティングデバイスリソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
動的適応ビデオストリーミングセッションで、コンテンツを前記ストリーミングサーバから受信することと、
コンテンツデータのサブセットを前記ストリーミングサーバからプルすることであって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルすることと、
を含む動作を実行するために、プロセッサ実行可能な命令で構成される、コンピューティングデバイス。
［Ｃ９６］
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じて前記コンピューティングデバイスのオペレーティングシステムと通信することを含むように、プロセッサ実行可能な命令で構成される、Ｃ９５に記載のコンピューティングデバイス。
［Ｃ９７］
前記プロセッサは、コンテンツを前記ストリーミングサーバから受信することが圧縮されたビデオフレームをプルおよび受信することを含むように、プロセッサ実行可能な命令で構成される、Ｃ９５に記載のコンピューティングデバイス。
［Ｃ９８］
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが、バッテリ電力をモニタリングすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ９５に記載のコンピューティングデバイス。
［Ｃ９９］
前記プロセッサは、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することが、前記コンピューティングデバイスが定常電源に接続されているか否かを決定することを含むように、プロセッサ実行可能な命令で構成される、Ｃ９５に記載のコンピューティングデバイス。
［Ｃ１００］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ９５に記載のコンピューティングデバイス。
［Ｃ１０１］
前記プロセッサは、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
前記コンピューティングデバイスの残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０２］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルすることを含むように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０３］
前記プロセッサは、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０４］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルすることが、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、前記最早のシーン変化の瞬間まで、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つをプルしないことを含むように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０５］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、前記最早のシーン変化の瞬間まで、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームのうちの少なくとも１つ以上を復号しないことを含むように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０６］
前記プロセッサは、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０７］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含むように、プロセッサ実行可能な命令で構成され、
前記プロセッサは、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることをさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０８］
前記プロセッサは、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、データを収集することと、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告することとを含むように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１０９］
前記プロセッサは、
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
をさらに含む動作を実行するように、プロセッサ実行可能な命令で構成される、Ｃ１００に記載のコンピューティングデバイス。
［Ｃ１１０］
前記ネットワークインターフェースは、ワイヤレスネットワークを介して通信するように構成されたトランシーバ回路を含む、Ｃ９５に記載のコンピューティングデバイス。
［Ｃ１１１］
プロセッサ実行可能ソフトウェア命令を格納した非一時的なコンピュータ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令は、
コンピューティングデバイスリソースアベイラビリティを決定することと、
リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することと、
動的適応ビデオストリーミングセッションで、ストリーミングサーバからコンテンツを受信することと、
コンテンツデータのサブセットを前記ストリーミングサーバからプルすることであって、前記サブセットは前記決定された品質レベルを提供するのに十分である、プルすることと、
を含む動作をプロセッサに実行させるように構成される、非一時的なコンピュータ可読記憶媒体。
［Ｃ１１２］
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがプログラミングインターフェースを通じてコンピューティングデバイスのオペレーティングシステムと通信することを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１１に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１１３］
前記格納されているプロセッサ実行可能ソフトウェア命令は、コンテンツを前記ストリーミングサーバから受信することが圧縮されたビデオフレームをプルすることおよび受信することを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１１に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１１４］
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがバッテリ電力をモニタリングすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１１に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１１５］
前記格納されているプロセッサ実行可能ソフトウェア命令は、リソースアベイラビリティとプレゼンテーション品質のバランスを保つ許容品質レベルを決定することがコンピューティングデバイスが定常電源に接続されているか否かを判定することを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１１に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１１６］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１１に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１１７］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定されたコンピューティングデバイスリソースアベイラビリティに基づいてコンテンツデータをプルすることが、
瞬間プロセッサ使用率、
平均プロセッサ使用率、
残りのバッテリ電力、
瞬間消費電力、
平均消費電力、
アイドルプロセッサ周期、
利用可能なシステムメモリ、および
利用可能なシステムメモリ帯域幅
のうちの少なくとも１つに基づいてコンテンツデータをプルすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１１に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１１８］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、フレームレート、フレーム空間分解能、およびフレーム圧縮品質のうちの少なくとも１つにおいて変えられた品質レベルを有する圧縮されたビデオフレームのセットをプルすることを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１１に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１１９］
前記格納されているプロセッサ実行可能ソフトウェア命令は、
少なくとも１つの受信された非基準ビデオフレームを復号しないことによって、復号フレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、Ｃ１１８に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１２０］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットをプルすることが、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序で前記基準ビデオフレームに続く任意の非基準ビデオフレームとのうちの少なくとも１つを前記最早のシーン変化の瞬間までプルしないことを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１８に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１２１］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、最早のシーン変化の瞬間が閾値持続時間よりも早く発生すると検出されたときに、基準ビデオフレームと、プレゼンテーション順序でそれらに続く任意の非基準ビデオフレームとのうちの少なくとも１つ以上を前記最早のシーン変化の瞬間まで復号しないことを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１８に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１２２］
前記格納されているプロセッサ実行可能ソフトウェア命令は、
復号の後に少なくとも１つ以上のビデオフレームをレンダリングしないことによって、レンダフレームレートを変えること
を含む動作をプロセッサに実行させるように構成される、Ｃ１１８に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１２３］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、
非基準フレームのデブロッキングを簡略化またはスキップすることと、
フルスクリーンリフレッシュが閾値持続時間よりも早く発生すると検出されたときに、基準フレームのデブロッキングを簡略化またはスキップすることと
のうちの１つを含むように、動作をプロセッサに実行させるように構成され、
前記プロセッサ実行可能ソフトウェア命令は、表示のために使用されるデフォルトのより高い複雑性でより高い性能の空間リサイジングアルゴリズムを、より低い複雑性のアルゴリズムと置き換えることを含む動作をプロセッサに実行させるように構成される、Ｃ１１８に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１２４］
前記格納されているプロセッサ実行可能ソフトウェア命令は、前記決定された品質レベルを提供するのに十分なコンテンツデータのサブセットを前記ストリーミングサーバからプルすることが、データを収集することと、システムワイド・リソースモニタリングエージェントにより、１つ以上のアプリケーション層コンポーネントに使用率およびアベイラビリティ情報を報告することとを含むように、動作をプロセッサに実行させるように構成される、Ｃ１１８に記載の非一時的なコンピュータ可読記憶媒体。
［Ｃ１２５］
前記格納されているプロセッサ実行可能ソフトウェア命令は、
リソースが不足しているときに、より高い品質からより低い品質に遷移することと、
リソースがもはや不足していないときに、前記より低い品質から前記より高い品質に遷移し戻ることと
を含む動作をプロセッサに実行させるように構成される、Ｃ１１８に記載の非一時的なコンピュータ可読記憶媒体。
【図１】
0006009659.tif 000002
【図２】
0006009659.tif 000003
【図３】
0006009659.tif 000004
【図４】
0006009659.tif 000005
【図５】
0006009659.tif 000006
【図６】
0006009659.tif 000007
【図７Ａ】
0006009659.tif 000008
【図７Ｂ】
0006009659.tif 000009
【図７Ｃ】
0006009659.tif 000010
【図８】
0006009659.tif 000011
【図９】
0006009659.tif 000012
【図１０】
0006009659.tif 000013