(57)【特許請求の範囲】
【請求項１】
ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法であって、
通信ネットワークを介して前記ワイヤレスハンドヘルドコンピューティングデバイスにダウンロードすることができる媒体のファイルセグメントの特性を記述するメタオブジェクトを受信するステップであって、
前記媒体は、複数の時間セグメントを含み、各時間セグメントは、ビットレートと解像度の組合せがそれぞれ異なる利用可能な複数のファイルセグメントを含み、
前記利用可能な複数のファイルセグメントが、所与の解像度に対してビットレートがそれぞれ異なる複数のファイルセグメントおよび所与のビットレートに対して解像度がそれぞれ異なる複数のファイルセグメントを含む、ステップと、
前記メタオブジェクトに記述された前記ビットレートと解像度のそれぞれの異なる組合せのオプションを検討するステップと、
1つまたは複数のセンサからのデータを評価して、前記ワイヤレスハンドヘルドコンピューティングデバイスに対する通信ネットワークの急速な変化の可能性を推定し、現在のネットワーク条件が同一のままである時間を前記推定に基づいて計算するステップと、
前記ビットレートと解像度のそれぞれの異なる組合せならびに前記推定に基づいて前記ワイヤレスハンドヘルドコンピューティングデバイスでの媒体再生を最適化するダウンロードできる任意のファイルセグメントを選択するステップとを含む方法。
【請求項２】
アプリケーションサブシステムおよびモデムサブシステムからのデータを評価するステップをさらに含み、前記任意のファイルセグメントを選択するステップは、さらに、前記アプリケーションサブシステムおよびモデムサブシステムのうち少なくとも１つから受信したデータに依存する、請求項1に記載の方法。
【請求項３】
前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも1つからのデータに基づいてワイヤレスネットワークの将来の条件を推定するステップをさらに含む、請求項2に記載の方法。
【請求項４】
アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項５】
アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御している場合、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項4に記載の方法。
【請求項６】
前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信された場合、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項6に記載の方法。
【請求項８】
前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項９】
前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項１０】
ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するためのコンピュータシステムであって、
通信ネットワークを介して前記ワイヤレスハンドヘルドコンピューティングデバイスにダウンロードすることができる媒体のファイルセグメントの特性を記述するメタオブジェクトを受信することであって、
前記媒体は、複数の時間セグメントを含み、各時間セグメントは、ビットレートと解像度の組合せがそれぞれ異なる利用可能な複数のファイルセグメントを含み、
前記利用可能な複数のファイルセグメントが、所与の解像度に対してビットレートがそれぞれ異なる複数のファイルセグメントおよび所与のビットレートに対して解像度がそれぞれ異なる複数のファイルセグメントを含む、ことと、
前記メタオブジェクトに記述された前記ビットレートと解像度のそれぞれの異なる組合せのオプションを検討することと、
1つまたは複数のセンサからのデータを評価して、前記ワイヤレスハンドヘルドコンピューティングデバイスに対する通信ネットワークの急速な変化の可能性を推定し、現在のネットワーク条件が同一のままである時間を前記推定に基づいて計算することと、
前記ビットレートと解像度のそれぞれの異なる組合せならびに前記推定に基づいて前記ワイヤレスハンドヘルドコンピューティングデバイスでの媒体再生を最適化するダウンロードできるファイルセグメントを選択することとを行うように動作可能なプロセッサを備えるシステム。
【請求項１１】
前記プロセッサは、アプリケーションサブシステムおよびモデムサブシステムからのデータを評価するようにさらに動作可能であり、前記ファイルセグメントの選択は、さらに、前記アプリケーションサブシステムおよびモデムサブシステムのうち少なくとも１つから受信したデータに依存する、請求項10に記載のシステム。
【請求項１２】
前記プロセッサは、前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方からのデータに基づいてワイヤレスネットワークの将来の条件を推定するようにさらに動作可能である、請求項11に記載のシステム。
【請求項１３】
前記プロセッサは、アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するようにさらに動作可能である、請求項10に記載のシステム。
【請求項１４】
前記プロセッサは、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するようにさらに動作可能である、請求項13に記載のシステム。
【請求項１５】
前記プロセッサは、前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するようにさらに動作可能である、請求項10に記載のシステム。
【請求項１６】
前記プロセッサは、前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信されたかどうかを判定し、次いで、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するようにさらに動作可能である、請求項10に記載のシステム。
【請求項１７】
前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項10に記載のシステム。
【請求項１８】
前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項10に記載のシステム。
【請求項１９】
ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムであって、
通信ネットワークを介して前記ワイヤレスハンドヘルドコンピューティングデバイスにダウンロードすることができる媒体のファイルセグメントの特性を記述するメタオブジェクトを受信するための手段であって、
前記媒体は、複数の時間セグメントを含み、各時間セグメントは、ビットレートと解像度の組合せがそれぞれ異なる利用可能な複数のファイルセグメントを含み、
前記利用可能な複数のファイルセグメントが、所与の解像度に対してビットレートがそれぞれ異なる複数のファイルセグメントおよび所与のビットレートに対して解像度がそれぞれ異なる複数のファイルセグメントを含む、手段と、
前記メタオブジェクトに記述された前記ビットレートと解像度のそれぞれの異なる組合せのオプションを検討するための手段と、
1つまたは複数のセンサからのデータを評価して、前記ワイヤレスハンドヘルドコンピューティングデバイスに対する通信ネットワークの急速な変化の可能性を推定し、現在のネットワーク条件が同一のままである時間を前記推定に基づいて計算するための手段と、
前記ビットレートと解像度のそれぞれの異なる組合せならびに前記推定に基づいて前記ワイヤレスハンドヘルドコンピューティングデバイスでの媒体再生を最適化するダウンロードできるファイルセグメントを選択するための手段とを備えるシステム。
【請求項２０】
アプリケーションサブシステムおよびモデムサブシステムからのデータを評価するための手段をさらに含み、前記ファイルセグメントを選択するための手段は、さらに、前記アプリケーションサブシステムおよびモデムサブシステムのうち少なくとも１つから受信したデータに依存する、請求項19に記載のシステム。
【請求項２１】
前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方からのデータに基づいてワイヤレスネットワークの将来の条件を推定するための手段をさらに備える、請求項20に記載のシステム。
【請求項２２】
アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するための手段をさらに備える、請求項19に記載のシステム。
【請求項２３】
前記選択されたファイルセグメントの品質が最低であるかどうか、およびアプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するための手段をさらに備える、請求項19に記載のシステム。
【請求項２４】
前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するための手段をさらに備える、請求項19に記載のシステム。
【請求項２５】
前記選択されたファイルセグメントの品質が最低であるかどうか、および前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信されたかどうかを判定するための手段をさらに備える、請求項19に記載のシステム。
【請求項２６】
前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項19に記載のシステム。
【請求項２７】
前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項19に記載のシステム。
【請求項２８】
コンピュータにより実行可能なコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードは、ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法を実施するために実行されるようになされ、前記方法は、
通信ネットワークを介して前記ワイヤレスハンドヘルドコンピューティングデバイスにダウンロードすることができる媒体のファイルセグメントの特性を記述するメタオブジェクトを受信するステップであって、
前記媒体は、複数の時間セグメントを含み、各時間セグメントは、ビットレートと解像度の組合せがそれぞれ異なる利用可能な複数のファイルセグメントを含み、
前記利用可能な複数のファイルセグメントが、所与の解像度に対してビットレートがそれぞれ異なる複数のファイルセグメントおよび所与のビットレートに対して解像度がそれぞれ異なる複数のファイルセグメントを含む、ステップと、
前記メタオブジェクトに記述された前記ビットレートと解像度のそれぞれの異なる組合せのオプションを検討するステップと、
1つまたは複数のセンサからのデータを評価して、前記ワイヤレスハンドヘルドコンピューティングデバイスに対する通信ネットワークの急速な変化の可能性を推定し、現在のネットワーク条件が同一のままである時間を前記推定に基づいて計算するステップと、
前記ビットレートと解像度のそれぞれの異なる組合せならびに前記推定に基づいて前記ワイヤレスハンドヘルドコンピューティングデバイスでの媒体再生を最適化するダウンロードできるファイルセグメントを選択するステップとを含むコンピュータプログラム。
【請求項２９】
前記方法を実施する前記コンピュータ可読プログラムコードは、
アプリケーションサブシステムおよびモデムサブシステムからのデータを評価するステップをさらに含み、前記ファイルセグメントを選択するステップは、さらに、前記アプリケーションサブシステムおよびモデムサブシステムのうち少なくとも１つから受信したデータに依存する、請求項28に記載のコンピュータプログラム。
【請求項３０】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方からのデータに基づいてワイヤレスネットワークの将来の条件を推定するステップをさらに含む、請求項29に記載のコンピュータプログラム。
【請求項３１】
前記方法を実施する前記コンピュータ可読プログラムコードは、
アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するステップをさらに含む、請求項28に記載のコンピュータプログラム。
【請求項３２】
前記方法を実施する前記コンピュータ可読プログラムコードは、
アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定し、次いで、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項28に記載のコンピュータプログラム。
【請求項３３】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するステップをさらに含む、請求項28に記載のコンピュータプログラム。
【請求項３４】
前記方法を実施する前記コンピュータ可読プログラムコードは、前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信されたかどうかを判定し、次いで、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項33に記載のコンピュータプログラム。
【請求項３５】
前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを含む、請求項28に記載のコンピュータプログラム。
【請求項３６】
前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項28に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照および優先権主張
本特許出願は、2009年10月16日に出願された、「Mobile System Aware HTTP Stream Manager」という表題の米国特許仮出願第61/252,621号への、米国特許法第119条(e)に基づく優先権を主張し、上記の出願の内容全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
今日のコンピューティング環境はますます携帯性の高い環境になっている。携帯電話を使用して通常の通話を行うのと同様に容易にワイヤレスハンドヘルドコンピューティングデバイスによってインターネットが利用されることが多い。代表的な従来のワイヤレスハンドヘルドコンピューティングデバイスには、限定はしないが、携帯電話、携帯情報端末(「PDA」)、「スマート」フォン、ページャ、ポータブルGPSユニットのようなナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを有するハンドヘルドコンピュータのようなデバイスが含まれる。これらのワイヤレスハンドヘルドコンピューティングデバイスは通常、人の手の中に納まるか、または片手で持ち運ぶことができる。
【０００３】
これらのワイヤレスハンドヘルドコンピューティングデバイスによって、ユーザの外出時にコンピューティング環境により容易にアクセスできるようになっているが、ワイヤレスハンドヘルドコンピューティングデバイスは、ワイヤレスネットワーク内でのこれらのデバイスの性能に関して固有の問題を有する。性能に関する問題には、ワイヤレスネットワーク帯域幅が小さいときにデータのダウンロードの速度が低下すること、および受信エラーによって通信速度が低下することが含まれる。この性能は、これらのハンドヘルドサイズのユニットの密閉された電子パッケージ内に含めることのできるハードウェアとソフトウェアの関数であることが多い。これらのハンドヘルドサイズのユニットの性能は、ワイヤレスハンドヘルドコンピューティングデバイスが通信リンクを確立するワイヤレスネットワークの関数でもあり得る。
【０００４】
ワイヤレスハンドヘルドコンピューティングデバイスの多くのユーザによって、映像を実現する通信リンクが望まれている。通常、映像はそのファイルサイズのためにワイヤレスハンドヘルドコンピューティングデバイス上にダウンロードするのに時間がかかることがある。映像は、ワイヤレスネットワークに関係する要因によって再生中に中断されることがある。ワイヤレスハンドヘルドコンピューティングデバイスの性能に悪影響を与えることがある1つの要因として、ハンドヘルドコンピューティングデバイスが、帯域幅が小さくなる可能性があるワイヤレス通信ネットワークとの通信リンクを確立することが挙げられる。
【０００５】
ワイヤレス通信ネットワークにおけるハンドヘルドコンピューティングデバイスの性能低下に関係する別の要因としてレイテンシがある。パケット交換ネットワークにおけるレイテンシは、一方向(パケットの送信元からパケットの受信先までの時間)または往復(送信元から送信先までの一方向レイテンシと送信先から送信元に戻る一方向レイテンシの和)のいずれかで測定される。ワイヤレス通信ネットワークにおいてレイテンシが高いと、一般にワイヤレスハンドヘルドコンピューティングデバイス用の映像のロードにかかる時間が、レイテンシが低いかまたは最低限のネットワークと比べて長くなる。一般に、たいていのワイヤレスハンドヘルドコンピューティングデバイスは、ワイヤレス通信ネットワークの性能に悪影響を与える要因を補正しない。
【０００６】
デバイスがワイヤレス通信ネットワークに結合されているときに、映像の再生時などに、ワイヤレスハンドヘルドコンピューティングデバイスの性能に悪影響を与える要因を補正することのできるシステムおよび方法が必要である。
【発明の概要】
【課題を解決するための手段】
【０００７】
第1の例示的な態様によれば、ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法を開示する。この方法は、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信することと、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討することとを含む。この方法は、アプリケーションサブシステムからのデータおよびモデムサブシステムからのデータを評価することをさらに含む。この方法は、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択することも含む。
【０００８】
ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するためのコンピュータシステムを開示する。このシステムは、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信し、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討するように動作可能なプロセッサを含む。プロセッサは、アプリケーションサブシステムからのデータおよびモデムサブシステムからのデータを評価するように動作可能である。プロセッサは、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択する。
【０００９】
ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムは、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信するための手段と、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討するための手段とを含む。このシステムは、アプリケーションサブシステムからのデータを評価するための手段とモデムサブシステムからのデータを評価するための手段も有する。このシステムは、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択するための手段も含む。
【００１０】
コンピュータ可読プログラムコードが実現されるコンピュータで使用可能な媒体を備えるコンピュータプログラム製品を開示する。コンピュータ可読プログラムコードは、ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法を実行し実装するようになされ、実行される方法は、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信することと、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討することとを含む。コンピュータ可読プログラムコードは、アプリケーションサブシステムからのデータを評価するためのステップとモデムサブシステムからのデータを評価するためのステップを実行するようにさらになされる。コンピュータ可読プログラムコードは、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択するためのステップをさらに実行する。
【００１１】
図中、別段規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。「102A」または「102B」のような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。
【図面の簡単な説明】
【００１２】
【図１Ａ】ワイヤレス通信ネットワークに結合されたワイヤレスハンドヘルドコンピューティングデバイスの図である。
【図１Ｂ】図2のワイヤレスハンドヘルドコンピューティングデバイス上の映像再生を最適化するシステムのソフトウェアアーキテクチャの一態様の図である。
【図２】携帯電話を備える例示的なワイヤレスハンドヘルドコンピューティングデバイスの図である。
【図３】ワイヤレスハンドヘルドコンピューティングデバイスのタッチスクリーンの図である。
【図４】ワイヤレスハンドヘルドコンピューティングデバイスによってダウンロードされたビデオのコンテンツを表示する画面の図である。
【図５Ａ】ワイヤレスハンドヘルドコンピューティングデバイスの映像再生を最適化するための方法を示すフローチャートである。
【図５Ｂ】ワイヤレスハンドヘルドコンピューティングデバイスの映像再生を最適化するための方法を示す、図5Aのフローチャートに続くフローチャートである。
【図６】ワイヤレスハンドヘルドコンピューティングデバイスのセンサからのデータを評価するための図5Aのサブ方法またはルーチンを示すフローチャートである。
【図７】ワイヤレスハンドヘルドコンピューティングデバイスのモデムサブシステムからのデータを評価するための図5Aのサブ方法またはルーチンを示すフローチャートである。
【図８】ワイヤレスハンドヘルドコンピューティングデバイスのストリーミングマネージャとワイヤレスハンドヘルドコンピューティングデバイスによってダウンロードできる様々な映像ファイルを有するサーバとの間の通信を示す状態図である。
【発明を実施するための形態】
【００１３】
「例示的な」という言葉は、「一例、実例または例として」を意味するように本明細書で使用される。「例示的な」ものとして本明細書で説明するいかなる態様も、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【００１４】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１５】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は交換可能に用いられる。第3世代(「3G」)ワイヤレス技術の出現により、より広い帯域が利用できるようになり、より広範なワイヤレス機能を備えたより多くの電子デバイスが使用可能になった。したがって、ワイヤレスデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータであってよい。
【００１６】
図1Aは、ワイヤレス通信ネットワーク206に結合されたワイヤレスハンドヘルドコンピューティングデバイス200の図である。図1Aに示されるシステム要素の多くは、通信リンク103A〜103Bを介して通信ネットワーク206に結合されている。図1に示すリンク103は、ワイヤレスリンクを備えてもよい。ワイヤレスリンクには、限定はしないが、高周波(「RF」)リンク、赤外線リンク、音響リンク、および他のワイヤレス媒体が含まれる。
【００１７】
通信ネットワーク206は、ワイドエリアネットワーク(「WAN」)、ローカルエリアネットワーク(「LAN」)、ワイヤレスLAN(「wLAN」)インターネット、公衆交換電話網(「PSTN」)、ページングネットワーク、またはこれらの組合せを備えてもよい。通信ネットワーク206は、ブロードキャストRFトランシーバタワー208によって確立されてもよい。しかし、当業者には、通信ネットワーク206を確立するための通信デバイスとして、ブロードキャストRFトランシーバタワー208以外の他の種類の通信デバイスが本発明の範囲内に含まれることが認識されよう。
【００１８】
サーバ210は、ワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードしメモリに記憶することのできるメタオブジェクト402および映像ファイルセグメント212を有してもよい。ハンドヘルドコンピューティングデバイス200は、それぞれのハンドヘルドデバイス200が、通信ネットワーク206とのワイヤレス通信リンク103を確立できるように、アンテナ372を有するように示される。
【００１９】
サーバ210は、通信ネットワーク206上でワイヤレスハンドヘルドコンピューティングデバイス200と通信し、そのメタオブジェクト402およびファイルセグメント212をハンドヘルドコンピューティングデバイス200と共有してもよい。メタオブジェクトおよびファイルセグメント212は、ハンドヘルドコンピューティングデバイス200のアプリケーションサブシステム102およびモデムサブシステム133によって処理され管理される。
【００２０】
各メタオブジェクト402は、ワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードすることのできる映像ファイル212に関する詳細なファイル情報206を有する拡張可能なマーク付け言語(XML)フォーマットを有するファイルなどのファイルを備えてもよい。映像ファイルセグメント212が例示されているが、任意の種類のメディアファイルが本発明の範囲内にあることが、当業者には認識される。すなわち、メディアファイルには、限定はしないが、映像ファイル、オーディオファイル、大きい画像ファイル、およびそれらの任意の組合せを含めてもよい。
【００２１】
メタオブジェクト402の詳細ファイル情報206は、ワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードすることのできる映像ファイルセグメント212A〜212Dの様々な特性を記述してもよい。例示的な特性には、限定はしないが、複数のファイルセグメント212を含む映像の全長、各ファイルセグメント212の個別の長さ、互いに類似したセグメント212のそれぞれの異なるビットレート、互いに類似したセグメント212のそれぞれの異なる映像解像度が含まれる。本明細書では説明しないが、映像の様々な態様/特徴を表す映像の他の特性は、当業者に理解されるように本発明の範囲内に含まれる。さらに、本発明は、映像ファイルに限定されず、画像ファイル、音声ファイル、テキストファイル、および一般にファイルを様々なセグメントに分割することを必要とするサイズを有するデータを含む任意の他の種類のファイルのような他の種類のファイルに適した発明であってもよい。
【００２２】
4つのファイルセグメント212A〜212Dしか示されていないが、当業者に理解されるように、4つよりも多いかまたは少ない数のファイルセグメント212も本発明の範囲内である。さらに、当業者に理解されるように、ビットレートがそれぞれ異なるが同様の解像度を有する4つよりも多いかまたは少ない数の複製ファイルセグメント212、同様のビットレートおよび同様の解像度を有する4つよりも多いかまたは少ない数の複製ファイルセグメント212、ビットレートおよび解像度がそれぞれ異なる4つよりも多いかまたは少ない数の複製ファイルセグメント212も本発明の範囲内である。
【００２３】
第1のファイルセグメント212Aは、第1の映像解像度で第1のビットレートを有し、ワイヤレスハンドヘルドコンピューティングデバイス200によって選択することのできるユニバーサルリソースロケータ(「URL」)を備える。第2のファイルセグメント212Bは、第1のファイルセグメント212Aと同様の第1のビットレートを有するが、第1のファイルセグメント212Aの第1の解像度とは異なる第2の映像解像度を有する。第2のファイルセグメント212Bは、第1のファイルセグメント212Aの第1のURLとは異なる第2のURLを有する。
【００２４】
第3のファイルセグメント212Cは、第1のファイルセグメントおよび第2のファイルセグメント212A〜212Bの第1のビットレートとは異なる第2のビットレートを有する。第3のファイルセグメント212Cは、第1のファイルセグメント212Aの映像解像度と同一の第1の映像解像度を有する。第3のファイルセグメント212Cは、第1のファイルセグメント212Aの第1のURLおよび第2のファイルセグメント212Bの第2のURLとは異なる第3のURLを有する。
【００２５】
第4のファイルセグメント212Dは、第3のファイルセグメント212Cの第2のビットレートと等しい第2のビットレートを有するが、第2のファイルセグメント212Bの第2の映像解像度と同じ第2の映像解像度を有する。第4のファイルセグメント212Dは、第1のファイルセグメント212Aの第1のURL、第2のファイルセグメント212Bの第2のURL、および第3のファイルセグメント212Cの第3のURLとは異なる第4のURLを有する。本発明の範囲から逸脱することなく4つよりも多いかまたは少ない数のファイルセグメント212を設け得ることが、当業者には認識される。メタオブジェクト402およびファイルセグメント212に関する詳細について、以下に図5A〜図5Bおよび図8に関連して説明する。
【００２６】
図1Bは、ワイヤレスハンドヘルドコンピューティングデバイス200の映像再生を最適化するシステム102のソフトウェアアーキテクチャの第1の態様の図である。アプリケーションサブシステム102は、中央処理ユニット324(図2参照)によって実行され、ハイパーテキスト転送プロトコル(「HTTP」)ストリーミング要求マネージャ109によってサポートされる映像を実行することのできるモバイルウェブブラウザアプリケーション105を備えてもよい。
【００２７】
モバイルウェブブラウザアプリケーションまたはモジュール105は、当業者に理解され以下に説明するようにインターネットプロトコル(「IP」)層129の上方に存在する転送通信プロトコル(「TCP」)モジュール127と通信してもよい。
【００２８】
IP層129は、当業者に理解されるように、ネットワークバッファ層131と通信する。IP層129は、第2の中央処理ユニット326(図2参照)によって実行されるモデムサブシステム133と通信する。
【００２９】
モバイルウェブブラウザモジュール105は、ハイパーテキスト転送プロトコル(「HTTP」)ストリーミング要求マネージャ109と、HTTPスタック111と、ドメインネームサーバモジュール113とを含む。ウェブブラウザモジュール105内に含められるように示されているが、さらなる例示的な代替実施形態(図示せず)では、HTTPストリーミング要求マネージャ109は、ウェブブラウザ105に対する別個のモジュールとして存在してもよい。
【００３０】
HTTPストリーミングプロトコルは、イベントに応答してデータをサーバ210からハンドヘルドコンピューティングデバイス200上のウェブブラウザに送信するための機構である。HTTPストリーミングプロトコルは、いくつかの一般的な機構によって実現されてもよい。そのような一機構において、サーバ210は、データが処理された後も、クライアントとも呼ばれるコンピューティングデバイス200への応答を終了しない。このことは、データ送信の直後に応答が閉じられる典型的なHTTPサイクルとは異なる。サーバ210は、イベントを受信後にただちにクライアントに送信できるように応答を開いたままにしておく。場合によっては、クライアントがサーバ210に次の要求を出すまでデータを待ち行列に入れる必要がある。HTTPストリーミングプロトコルの典型的な使用法には、限定はしないが、映像再生、市場データ分散(株価表示機)、ライブチャット/メッセージングシステム、オンラインの賭けおよびゲーム、スポーツ結果、監視コンソール、およびセンサネットワーク監視が含まれる。HTTPストリーミングプロトコルは通常、ポート80またはポート8080を使用する。
【００３１】
モバイルウェブブラウザモジュール105は、メモリリソース119に結合されてもよい。メモリリソース119には、限定はしないが、キャッシュ、ランダムアクセスメモリ(「RAM」)、フラッシュメモリ、セキュアデジタル(「SD」)メモリカード、およびそれらの任意の組合せを含めてもよい。
【００３２】
要求マネージャ109は、コンピューティングデバイス200に最適な映像再生品質を確保するために次にハンドヘルドモバイルコンピューティングデバイス200にどんなファイルセグメント212をダウンロードすべきであるかをウェブブラウザ105を制御または指示する役割を果たしてもよい。要求マネージャ109は、アプリケーションサブシステム102ならびにモデムサブシステム133の各要素を連続的に監視することができるという点で動的であってもよい。さらに、要求マネージャ109は、アプリケーションサブシステム102およびモデムサブシステム133内の各要素からメッセージを受信してもよい。
【００３３】
ウェブブラウザ105のDNSモジュール113は、当業者に理解されるように、テキストベースのドメイン名を数値のインターネットプロトコル(IP)アドレスに変換する役割を果たしてもよい。DNSモジュール113は、IPアドレスをまたHTTPスタック111に伝達してもよく、HTTPスタック111がIPアドレスをTCP接続モジュール127に中継する。
【００３４】
HTTPスタック111がTCP接続モジュール127からメタオブジェクト402を返すとき、HTTPスタックモジュール111はこのメタオブジェクト402をストリーミングクライアント要求マネージャ109に中継する。HTTPスタックモジュール111は、クライアント要求マネージャ109にあるステータス情報を供給してもよい。ステータス情報には、限定はしないが、高速スケジュール制御チャネル(「HS-SCCH」)、有効ステータス、高速トランスポートブロックサイズ(「HS-TBS」)、レイヤ1ブロック誤り率(「L1 BLER」)、無線リンク制御プロトコルデータ単位(「RLC PDU」)サイズ、無線リンク制御ダウンリンクサービスデータ単位(「RLC DL SDU」)バイト受信(「Rx」)、高速ダウンリンクパケットアクセス(「HSDPA」)、ユーザ端末(「UE」)カテゴリ、媒体アクセス制御アップリンクバッファステータス報告(「MAC UL BSR」)、拡張アップリンク送信時間間隔(「EUL TTI」)、拡張トランスポートフォーマット組合せ識別子(「ETFCI」)テーブルインデックス、ETCFI、新規送信数(「Tx」)、無線リンク制御アップリンクサービスデータ単位(「RLC UL SDU」)バイト送信(「Tx」)、ダイバーシチ送信/ダイバーシチ受信(「DTX/DRX」)モード、拡張アップリンクユーザ端末(「EUL UE」)カテゴリ、媒体アクセス制御送信レイヤトランスポートブロックサイズ(「MAC TL TBS」)、パケットデータコンバージェンスプロトコルダウンリンクサービスデータ単位(「PDCP DL SDU」)バイト受信(「Rx」)、媒体アクセス制御アップリンクトランスポートブロックサイズ(「MAC UL TBS」)、パケットデータコンバージェンスプロトコルアップリンクサービスデータ単位(「PDCP UL SDU」)バイト送信(「Tx」)、およびユーザ端末カテゴリ(「UE Category」)を含めてもよい。
【００３５】
要求マネージャ109は、メタオブジェクト402の構文解析および/または検討を行い、現在のワイヤレスネットワーク条件およびハンドヘルドコンピューティングデバイス200の動作環境を評価した後、次のダウンロードにはどの映像セグメント212が適切であるかを判定する。
【００３６】
転送制御プロトコル(「TCP」)接続モジュール127は、当業者に理解されるように、一般的なネットワーキングの開放型システム間相互接続(OSI)モデルのトランスポートレイヤ内で動作する。TCP接続モジュール127は、アプリケーションデータブロックを宛先ホストに送信できるようにネットワークインフラストラクチャに転送するのに適したデータ単位(データグラム、セグメント)としてカプセル化するか、あるいはネットワークデータグラムを抽象化しそのペイロードをモバイルウェブブラウザ105に送出することによってリバーストランザクションを管理する役割を果たす。
【００３７】
TCP接続モジュール127は、限定はしないが、再送タイムアウト(「RTO」)、受信ウィンドウ広告(「Rx Window」)、送信-受信スループット(Tx/Rxスループット)、パケット統計、TCP接続の総数、推定往復時間(「RTT」)、受信バイト数、シーケンス内パケット数、およびTCP送信ウィンドウサイズを含む情報を提供してもよい。
【００３８】
インターネットプロトコル(「IP」)モジュール129は、TCP接続モジュール127およびネットワークバッファレイヤ131と通信する。IPモジュール129は、識別されたプロトコルデータグラム(パケット)をそのアドレスに基づいてモバイルウェブブラウザからサーバ210に送出する役割を果たす。IPモジュール129は、アドレス指定方法およびデータグラムカプセル化の構造を定義する。IPモジュール129は、インターネットプロトコルバージョン4(「IPv4」)ならびに本明細書を作成している時点で積極的に使用されているインターネットプロトコルバージョン6(「IPv6」)を利用してもよい。しかしながら、まだ開発されていない将来のバージョンを含む、インターネットプロトコルの他のバージョンが本発明の範囲内に含まれる。
【００３９】
ネットワークバッファレイヤ131は、IPモジュール129およびモデムサブシステム133と通信する。ネットワークバッファレイヤ131は、イーサネット(登録商標)および他のIEEE 802カプセル化方式のようなハードウェア特有のすべてのインターフェース方法を含んでもよい。ネットワークバッファレイヤ131は、通信ネットワーク206のようなローカルネットワークのトポロジーを調査してもよい。ネットワークバッファレイヤ131は、ルータおよび近傍のホストを発見してもよく、かつリンク上の他のノードを発見する役割を果たしてもよい。ネットワークバッファレイヤ131は、他のノードのリンクレイヤアドレスを判定し、利用可能なルータを見つけ、他の近傍のアクティブノードへのパスに関するアクセス情報を維持してもよい。
【００４０】
ストリーミングクライアント要求マネージャ109は、HTTPスタック111ならびにTCPモジュール127と通信してもよい。ストリーミング要求マネージャ109は1つまたは複数のセンサ125とも通信する。センサ125には、限定はしないが、歩数計125A、加速度計125B、近位センサ125C、コンパス125D、および周辺光センサ125Eを含めてもよい。歩数計125Aは、ハンドヘルドコンピューティングデバイス200が歩行中の人によって使用されていることを示す信号を生成してもよい。
【００４１】
加速度計125Bは、ハンドヘルドコンピューティングデバイス200が自動車などの電動車両に配置されていることを示す信号を生成してもよい。近位センサ125Cは、ハンドヘルドコンピューティングデバイス200が電話をかけている人の顔の隣に位置しているかどうかを示してもよい。コンパス125Dは、ハンドヘルドコンピューティングデバイス200が走行している特定の方向を示す信号を生成してもよい。周辺光センサ125Eは、コンピューティングデバイス200上で映像をどのように表示する必要があるかに影響を及ぼす、ハンドヘルドコンピューティングデバイス200が明環境で使用されているかそれとも暗環境で使用されているかを示す信号を生成してもよい。
【００４２】
モデムサブシステム133は、無線リンク制御(「RLC」)レイヤ135、媒体アクセス制御(「MAC」)レイヤ139、物理(「PHY」)レイヤ141、無線-中継制御(「RRC」)モジュール137、および全地球測位システム(「GPS」)143を備えてもよい。モデムサブシステム133のこれらの要素は、図2に示すようなRFトランシーバ368などの通信ハードウェアと通信する役割を果たしてもよい。
【００４３】
モデムサブシステム133の各要素は、メッセージを送信するかまたはHTTPストリーミングクライアント要求マネージャ109からクエリを受信してもよい。たとえば、RRCモジュール137は、限定はしないが、高速ダウンリンクパケットアクセス(「HSDPA」)カテゴリ情報、拡張アップリンクレイヤ(「EUL」)カテゴリ情報、および不連続受信/送信(「DRX/DTX」)構成(「Config」)情報のような情報を伝達してもよい。
【００４４】
RLCモジュール135は、スループットならびに無線リンク制御(「RLC」)プロトコルデータ単位(「PDU」)サイズを伝達してもよい。MACレイヤ139は、限定はしないが、バッファステータス報告(「BSR」)情報および拡張専用チャネル(「EDCH」)トランスポートフォーマット(「TF」)情報のようなアップリンク(「UL」)情報を伝達してもよい。物理レイヤ141は、限定はしないが、高速トランスポートブロックサイズ(「HS-TBS」)、変調、チャネル品質指示(「CQI」)、ブロック誤り率(「BLER」)測定値、多入力/多出力(「MIMO」)、受信機(「Rx」)自動利得制御(「AGC」)、ならびに等化器集積回路(「EQ/IC」)受信機(「Rx」)ダイバーシチ(「D」)のようなダウンリンク(「DL」)情報を伝達してもよい。物理レイヤ141は、限定はしないが、BLER、変調、および送信機(「Tx」)自動利得制御(「AGC」)のようなアップリンク(「UL」)情報を伝達してもよい。
【００４５】
RRCモジュール137、RLCモジュール135、MACモジュール139、およびPHYモジュール141は、当業者に理解されるように、進化型高速パケットアクセスシステム(「HSPA」)を形成してもよい。一方、GPSモジュール143は、限定はしないが、ハンドヘルドモバイルコンピューティングデバイス200の位置および速度のような情報をストリーミング要求マネージャ109に供給してもよい。
【００４６】
ストリーミングクライアント要求マネージャ109は、アプリケーションサブシステム102およびモデムサブシステム133の各要素を監視することによって、ワイヤレスハンドヘルドコンピューティングデバイス200が、ワイヤレスネットワークの条件ならびにハンドヘルドコンピューティングデバイス200自体の条件を監視することによってデバイス200上に表示される映像品質をインテリジェントに変化させるのを可能にしてもよい。映像品質は、ストリーミングクライアント要求マネージャ109により、監視される条件を使用して映像セグメントファイル212をサーバ210からダウンロードするのに適切なビットレートがどのようなビットレートであるかを判定することによって変化させてもよい。
【００４７】
アプリケーションサブシステム102およびモデムサブシステム133から供給されるデータに基づく監視される条件の一部には、限定はしないが、現在のバッファのサイズおよびバッファが増大しコンピューティングデバイス200によって消費される速度を含むメディアプレーヤバッファ条件、現在および過去のWWAN帯域幅、現在および過去のWWAN信号強度、利用可能なIPソケットデータ接続数、ビデオクリップ推定全長ならびに信号対雑音比履歴/ヒストグラムおよびロケーションベースサービス(「LBS」)に基づく各ファイルセグメント212の各ユニフォームリソースロケータ(「URL」)推定ダウンロード時間、GPSモジュール143のようなロケーションベース技術を使用することによりセルタワー識別三角法または厳密な緯度経度のいずれかによって計算されたハンドヘルドコンピューティングデバイス200の速度、ならびに加速度計および/またはLBSを使用したハンドヘルドコンピューティングデバイス200の走行方向が含まれる。
【００４８】
ストリーミングクライアント要求マネージャ109は、信号対雑音比が連続的に高くおよび/またはBLERが連続的に低くなるまでクライアント要求マネージャ109が下位ビットレートを維持または使用しなければならない所定の期間を算出してもよい。ストリーミングクライアント要求マネージャ109は、モデムサブシステム133における任意の種類の1つまたは複数の受信ダイバーシチ機能を「オン」または「オフ」にして、ハンドヘルドコンピューティングデバイス200が静止しているとき、またはユーザがコンピューティングデバイス200を持って歩いているときなど、ハンドヘルドコンピューティングデバイス200が比較的低速の条件の下で動作しているときのような、理想的なネットワーク状況の間出力を最低限に抑えてもよい。
【００４９】
図2を参照する。この図は、図1のワイヤレスハンドヘルドコンピューティングデバイスに対応するワイヤレス電話を備えるワイヤレスハンドヘルドコンピューティングデバイス200の例示的かつ非限定的な態様の図である。図示のように、ワイヤレスハンドヘルドコンピューティングデバイス102は、互いに結合された、デジタル信号プロセッサおよび/または第1の中央処理ユニット324とアナログ信号プロセッサおよび/または第2の中央処理ユニット326とを含むオンチップシステム322を含む。さらに、第1のプロセッサ324およびメモリリソース119は、本開示において図5〜図8に関連して説明する方法ステップの1つまたは複数を実行するための手段として働いてもよい。一方、第2のデジタル信号プロセッサ/中央処理ユニット326は、同じく図5〜図8に関連して説明する、モデムサブシステム133に関する1つまたは複数の命令を実行してもよい。
【００５０】
ワイヤレスハンドヘルドコンピューティングデバイス200を例示するが、当業者には、コンピューティングデバイスのサイズにかかわらず任意の種類のワイヤレスコンピューティングデバイスを用いて本発明を実施できることが認識されよう。すなわち、ノートコンピュータ、ラップトップコンピュータ、およびデスクトップコンピュータのような、ハンドヘルドユニット以外の他のワイヤレスコンピューティングデバイスが本発明の範囲内に含まれる。
【００５１】
図2に示されるように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330が、デジタル信号プロセッサ324に結合される。オンチップシステム322の外部にあるタッチスクリーンディスプレイ332が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。
【００５２】
図2は、ビデオエンコーダ334、たとえば位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のビデオエンコーダが、デジタル信号プロセッサ324に結合されることをさらに示している。上記のように、当業者には理解されるように、第1のデジタル信号プロセッサ324および/または第2のデジタル信号プロセッサ326を中央プロセッサユニット(「CPU」)で置き換えてもよい。いずれかのハードウェアユニットが図5A〜図8のソフトウェア要素/命令のサブシステムを実行してもよい。
【００５３】
ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ332に結合される。ビデオポート338がビデオ増幅器336に結合される。図2に示すように、ユニバーサルシリアルバス(「USB」)コントローラ340がデジタル信号プロセッサ324に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリリソース119および加入者識別モジュール(「SIM」)カード346も、デジタル信号プロセッサ324に結合され得る。さらに、図2に示すように、デジタルカメラ348がデジタル信号プロセッサ324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００５４】
図2にさらに示すように、ステレオオーディオコーデック350がアナログ信号プロセッサ326に結合され得る。その上、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356がオーディオ増幅器352に結合される。図2は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示している。加えて、マイクロフォン360がマイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(「FM」)無線チューナー362がステレオオーディオコーデック350に結合され得る。また、FMアンテナ364がFM無線チューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。
【００５５】
図2は、高周波(「RF」)トランシーバ368がアナログ信号プロセッサ326に結合され得ることをさらに示している。RFスイッチ370がRFトランシーバ368およびRFアンテナ372に結合され得る。RFトランシーバ368は、従来の通信ネットワークと通信するとともに、地理的な座標についてGPS信号を取得するために、全地球測位システム(「GPS」)衛星とも通信することができる。RFトランシーバは、図1BのGPSモジュール143によって制御され監視されてもよい。
【００５６】
図2に示すように、キーパッド374がアナログ信号プロセッサ326に結合され得る。また、マイクロフォンを備えたモノヘッドセット376がアナログ信号プロセッサ326に結合され得る。さらに、バイブレータデバイス378がアナログ信号プロセッサ326に結合され得る。図2は、電源380がオンチップシステム322に結合され得ることも示している。特定の態様では、電源380は、電力を必要とするワイヤレスハンドヘルドコンピューティングデバイス200の様々な構成要素に電力を供給する直流(「DC」)電源である。さらに、特定の態様において、電源装置は、AC電源に接続された交流(「AC」)-DC変換器から導かれたDC電源または充電式DCバッテリである。
【００５７】
図2に示されるように、タッチスクリーンディスプレイ332、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378および電源380は、オンチップシステム322の外部にある。
【００５８】
図3は、ワイヤレスハンドヘルドコンピューティングデバイス200のタッチスクリーンディスプレイ332の図である。図3に示すように、ワイヤレスハンドヘルドコンピューティングデバイス200は、この例示的な実施形態において方形のボックスとして表されたプログラムアイコン505のメニューまたはリスト510を含んでもよい。ワイヤレスハンドヘルドコンピューティングデバイス200はまた、携帯電話での会話を聞き取るために、ユーザの耳の横に配置され得る、ヘッドセットまたはスピーカー376を含む。
【００５９】
図4は、ワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードされた映像400のコンテンツを表示する画面332の図である。映像400は動画を含んでもよい。図4に示す例示的な実施形態では、2台の自動車が互いに向かって矢印に対応する方向に移動するように示されている。当業者には、本発明が図4に示す例示的な自動車の画像に限定されず、様々な映像の他の種類の動画が本発明の範囲内であることが認識される。
【００６０】
図5Aを参照する。この図は、ワイヤレスハンドヘルドコンピューティングデバイス200の映像再生を最適化するための方法500Aを示すフローチャートである。ブロック505は、サーバ210上で利用可能なビデオファイルセグメント212を記述するメタオブジェクト402がワイヤレスハンドヘルドコンピューティングデバイス200によって受信されるプロセス500における第1のステップである。前述のように、各メタオブジェクト402は、ワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードすることのできる映像ファイル212に関する詳細なファイル情報206を有する拡張可能なマーク付け言語(XML)フォーマットを有するファイルなどのファイルを備えてもよい。
【００６１】
メタオブジェクト402のこの詳細ファイル情報206は、ワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードすることのできる映像ファイルセグメント212A〜212Dの様々な特性を記述する情報であってもよい。例示的な特性には、限定はしないが、複数のファイルセグメント212を含む映像の全長、各ファイルセグメント212の個別の長さ、互いに類似したセグメント212のそれぞれの異なるビットレート、互いに類似したセグメント212のそれぞれの異なる映像解像度が含まれる。本明細書では説明しないが、映像の様々な態様/特徴を記述する映像の他の特性は、当業者に理解されるように本発明の範囲内に含まれる。さらに、本発明は、映像ファイルに限定されず、画像ファイル、音声ファイル、テキストファイル、および一般にファイルを様々なセグメントに分割することを必要とするサイズを有するデータを含む任意の他の種類のファイルのような他の種類のファイルに適した発明であってもよい。
【００６２】
図1Aに示す例示的な実施形態では、メタオブジェクト402は、長さがY秒であるファイルセグメント212に分割される長さがX分の映像を記述している。メタオブジェクト402は、各ファイルセグメント212に3つのビットレートがもたらされることを記述している。メタオブジェクト402は、各ファイルセグメント212に2つの解像度が利用可能であることも記述している。一方の解像度は「High」解像度として示されており、一方、他方のファイルセグメント212は「Low」解像度して示されている。
【００６３】
次に、ブロック510において、HTTPストリーミングクライアント要求マネージャ109は、メタオブジェクト402に記載されているファイルセグメント212のオプションを検討してもよい。クライアント要求マネージャ109は、1つまたは複数のメモリリソース119にこれらのオプションを格納してもよい。
【００６４】
ルーチンブロック515において、クライアント要求マネージャ109は、図1Bに示すようにクライアント要求マネージャ109がセンサ125から受信するデータを評価してもよい。上記のように、クライアント要求マネージャ109がセンサ125に能動的にデータを要求するかまたは「ピング」してもよく、あるいはセンサ125が、条件が変化したときにクライアント要求マネージャ109に対してステータスの更新を行ってもよい。ルーチンブロック515のさらなる詳細については、図6に関連して以下にさらに詳しく説明する。
【００６５】
次に、ブロック520において、クライアント要求マネージャ109は、センサ125からのデータを1つまたは複数のメモリリソース119に格納してもよい。ブロック525において、クライアント要求マネージャ109は、アプリケーションサブシステム102からのデータを評価してもよい。
【００６６】
具体的には、ブロック525において、クライアント要求マネージャ109は、TCP接続モジュール127、およびHTTPスタック111によって供給されるデータを評価してもよい。上記のように、TCP接続モジュール127は、限定はしないが、再送タイムアウト(「RTO」)、クライアント要求マネージャ109が、当業者には理解されるように達成可能な最大スループットを推定するのを可能にする受信ウィンドウ広告(「Rx Window」)、送信-受信スループット(Tx/Rxスループット)、パケット統計、TCP接続の総数、当業者には理解されるように様々なホスト名に関して推定することのできる推定往復時間(「RTT」)、クライアント要求マネージャ109が、当業者には理解されるように平均サービングスループットを算出するのを可能にする受信バイト数、クライアント要求マネージャ109が、当業者には理解されるようにTCP送信ウィンドウサイズを推定するのを可能にするシーケンス内パケット数、およびクライアント要求マネージャ109が、当業者には理解されるように達成可能な最大スループットを推定するのを可能にするTCP送信ウィンドウサイズを含む情報を供給してもよい。
【００６７】
HTTPスタックモジュール111は、限定はしないが、ハンドヘルドコンピューティングデバイス200がネットワークによって送信をスケジューリングされる回数をクライアント要求マネージャ109が推定するのを可能にし、クライアント要求マネージャ109が、当業者には理解されるように最大達成可能スループットを推定するのを可能にする値である高速スケジュール制御チャネル(「HS-SCCH」)有効ステータス、クライアント要求マネージャ109が、当業者には理解されるように平均スループットおよび最大達成可能スループットを推定するのを可能にする高速トランスポートブロックサイズ(「HS-TBS」)およびレイヤ1ブロック誤り率(「L1 BLER」)、クライアント要求マネージャ109が、当業者には理解されるように達成可能な最大スループットを推定するのを可能にする無線リンク制御プロトコルデータ単位(「RLC PDU」)サイズ、クライアント要求マネージャ109が、当業者には理解されるようにインターネットプロトコル(「IP」)レイヤに対する平均スループットを算出するのを可能にする無線リンク制御ダウンリンクサービスデータ単位(「RLC DL SDU」)バイト受信(「Rx」)を含めてもよいステータス情報をクライアント要求マネージャ109に供給してもよい。
【００６８】
HTTPスタックモジュール111は、限定はしないが、クライアント要求マネージャ109が、当業者には理解されるように理論最大ダウンリンクスループットを算出するのを可能にする高速ダウンリンクパケットアクセス(「HSDPA」)ユーザ端末(「UE」)カテゴリ、当業者には理解されるようにどれだけのデータがプロトコルスタックにバッファリングされアップリンク送信をスケジューリングされるのを待っているかを示す媒体アクセス制御アップリンクバッファステータス報告(「MAC UL BSR」)、拡張アップリンク送信時間間隔(「EUL TTI」)、拡張トランスポートフォーマット組合せ識別子(「ETFCI」)テーブルインデックス、ETCFI、新規送信数(「Tx」)、クライアント要求マネージャ109が、当業者には理解されるようにIPレイヤから見える平均スループットを算出するのを可能にする無線リンク制御アップリンクサービスデータ単位(「RLC UL SDU」)送信バイト(「Tx」)、クライアント要求マネージャ109が、当業者には理解されるようにHTTP要求をバンドルしてレイテンシを短縮することができるようにこのモードを構成することが可能なダイバーシチ送信/ダイバーシチ受信(「DTX/DRX」)モード、クライアント要求マネージャ109が、当業者には理解されるように理論最大アップリンクスループットを算出するのを可能にする拡張アップリンクユーザ端末(「EUL UE」)カテゴリ、クライアント要求マネージャ109が、当業者には理解されるように平均スループットを算出するのを可能にする媒体アクセス制御送信レイヤトランスポートブロックサイズ(「MAC TL TBS」)、クライアント要求マネージャ109が、当業者には理解されるようにIPレイヤに対する平均スループットを算出するのを可能にするパケットデータコンバージェンスプロトコルダウンリンクサービスデータ単位(「PDCP DL SDU」)バイト受信(「Rx」)、クライアント要求マネージャ109が、当業者には理解されるように平均スループットを算出するのを可能にする媒体アクセス制御アップリンクトランスポートブロックサイズ(「MAC UL TBS」)、クライアント要求マネージャ109が、当業者には理解されるようにIPレイヤから見える平均スループットを算出するのを可能にするパケットデータコンバージェンスプロトコルアップリンクサービスデータ単位(「PDCP UL SDU」)送信バイト(「Tx」)、クライアント要求マネージャ109が、当業者には理解されるように理論最大スループットを算出するのを可能にするユーザ端末カテゴリ(「UE Category」)のようなステータス情報をさらにクライアント要求マネージャ109に供給してもよい。
【００６９】
クライアント要求マネージャ109は、EUL TTI ETFCIテーブルインデックス、およびHTTPスタック111から供給される新規Txパラメータ数によって、当業者には理解されるように平均スループットおよび最大達成可能スループットを推定してもよい。ブロック530において、クライアント要求マネージャ109は、アプリケーションサブシステム102からのデータを1つまたは複数のメモリリソース119に格納してもよい。ルーチンブロック535において、クライアント要求マネージャ109は、モデムサブシステム133からのデータを評価してもよい。ルーチンブロック535のさらなる詳細については、図7に関連して以下でさらに詳しく説明する。
【００７０】
ルーチンブロック545において、HTTPストリーミングクライアント要求マネージャ109は、履歴データとアプリケーションサブシステム102およびモデムサブシステム133から取り込まれた新しいデータとの比較に基づいてワイヤレスネットワーク206の将来の条件を推定してもよい。たとえば、クライアント要求マネージャ109は、クライアント要求マネージャ109がセンサ125から受信するデータに基づいて、ハンドヘルドコンピューティングデバイス200が移動しているかどうかを判定しかつハンドヘルドコンピューティングデバイス200の移動速度を求めてもよい。これによって、ストリーミングクライアント要求マネージャ109は、近い将来にハンドヘルドコンピューティングデバイス200に対してどんな種類の無線条件が予期されるかを推定することができる。
【００７１】
クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が、移動中に多数の異なるワイヤレスネットワーク206を通過する可能性がある自動車のような自走車の中に存在すると判定したときに、ハンドヘルドコンピューティングデバイス200の動作にある種の調整を施してもよい。これによって、クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が特定のワイヤレスネットワーク206、特にセルラー基地局トランシーバタワー208の受信範囲内にどれだけ長く存在し得るかを判定することができる。
【００７２】
別の例として、ブロック545において、HTTPストリーミングクライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が歩行中の人間によって搬送されていると判定してもよい。この条件が検出された場合、クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が、特定のワイヤレスネットワーク206内、特にセルラー基地局トランシーバタワー208の範囲内に、ハンドヘルドコンピューティングデバイス200が自動車などの自走車内に位置する場合に存在すると考えられる期間よりも通常長いある期間にわたって存在すると判定する。
【００７３】
クライアント要求マネージャ109は、ブロック545において、ハンドヘルドコンピューティングデバイス200が特定のワイヤレスネットワーク206の範囲内に存在する時間を計算することによって、あるセルラー基地局トラシーバタワー208から別のトランシーバタワー208にハンドオフが行われる可能性があると予期することができる。この時間計算の代わりにまたはこの時間計算に加えて、ストリーミングクライアント要求マネージャ109は、セルサイトハンドオフがいつ行われるかを示すデータを追跡することができるモデムサブシステム133内のハードウェア要素またはソフトウェア要素に問合せを行ってもよい。
【００７４】
クライアント要求マネージャ109がハンドオフがいつ行われるかを厳密に算出することは重大ではなく、ハンドヘルドコンピューティングデバイス200が通信を確立することのできるワイヤレスネットワーク206に対する急速な変化をハンドヘルドコンピューティングデバイス109がいつ経験するかをクライアント要求マネージャ109が判定することが有用である。
【００７５】
次に、ルーチンブロック550において、クライアント要求マネージャ109は、現在のネットワーク条件およびハンドヘルドコンピューティングデバイス109の現在の条件ならびに/またはルーチンブロック545において算出されたネットワーク条件の推定値に基づいてサーバ210からダウンロードすべきファイルセグメントタイプを選択してもよい。このルーチンブロック550において、クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200上に表示されている映像400の再生を最適化するためにどのファイルセグメント212をサーバ210からダウンロードしたいかを指定してもよい。ストリーミングクライアント要求マネージャ109は、状況によっては、第3のファイルセグメント212Cと比べてビットレートが低くかつ解像度が低い第4のファイルセグメント212Dのような低品質ビデオストリーミング信号を絶えず要求することがある。
【００７６】
ストリーミングクライアント要求マネージャ109は通常、ハンドヘルドデバイス109がワイヤレスネットワーク206に対する急速な変化を経験し、場合によってはワイヤレスネットワーク206との通信を失う可能性があると判定した場合に、低品質ビデオストリーミング信号を要求してもよい。ハンドヘルドコンピューティングデバイス200が静止している可能性があるとクライアント要求マネージャ109が判定した場合、クライアント要求マネージャ109は、クライアント要求マネージャ109によって検出される条件に応じて高品質信号または低品質信号と高品質信号の組合せを要求してもよい。たとえば、ハンドヘルドコンピューティングデバイス200が静止していることをクライアント要求マネージャ109が検出した場合、クライアント要求マネージャ109は、第1の最高ビットレートおよび第1の最高映像解像度を有する図1Aの第1のファイルセグメント212Aを含む高品質信号を要求してもよい。クライアント要求マネージャ109は、ストリーミング映像用のバッファのようなデータのバッファを構築してもよく、それによって、ハンドヘルドコンピューティングデバイス200は、ユーザからは見えない映像ストリームの高度なセグメント212をメモリリソース119内に維持することができる。
【００７７】
ルーチンブロック550においてクライアント要求マネージャ109によって実行できるステップの別の例として、クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200がユーザの耳の近くに位置しており、したがって、電話呼を確立することができると近位センサ125Cが判定したときに表示画面332を停止してもよい。そのようなシナリオでは、ハンドヘルドコンピューティングデバイス200がユーザの耳の近くに位置しているときにハンドヘルドコンピューティングデバイス200の映像態様を使用している可能性は低いので、ハンドヘルドコンピューティングデバイスの表示画面232を非アクティブ化するか表示画面232の電源を切断してもよい。代替として、クライアント要求マネージャ109は、そのようなシナリオでは、映像がユーザによって監視されるかまたは注意深く見られている可能性は低いので低品質映像を要求してもよい。
【００７８】
ルーチンブロック550においてクライアント要求マネージャ109によって実行できるステップのさらなる例には、クライアント要求マネージャ109が周辺光センサ125Eから受信したデータに基づいてファイルセグメント212を選択することを含む。ハンドヘルドコンピューティングデバイス200が映像を表示する能力を低下させることのある顕著な量の光にさらされていることを周辺光センサ125Eが示している場合、このシナリオではクライアント要求マネージャ109は低品質映像を要求してもよい。ハンドヘルドコンピューティングデバイス200が、光が存在しない環境にさらされていることを周辺光センサ125Eが示している場合、このシナリオでは、映像品質がユーザによって容易に知覚されるので、クライアント要求マネージャ109はより高品質の映像を要求してもよい。
【００７９】
次に、破線によって示されている任意のブロック555において、クライアント要求マネージャ109は、所定の期間および/または異なるレベルの映像品質に切り替わるのを防止するための条件を設定してもよい。任意のブロック555において、クライアント要求マネージャ109は、通常、ネットワーク条件がハンドヘルドコンピューティングデバイス200とブロードキャストトランシーバタワー208との間に通信を確立するのに不十分である状況において現在のネットワーク条件が変化しないと考えられる時間を算出する。この時間計算は、ブロック545においてクライアント要求マネージャ109が算出したネットワーク条件の推定値に基づく計算である。
【００８０】
任意のブロック555は通常、PHYレイヤモジュール141によって追跡される信号対雑音比(「SNR」)が所定のレベルに達したとクライアント要求マネージャ109がブロック545において判定した後、ストリーミングクライアント要求マネージャ109によって実施または実行される。任意のブロック555において、ストリーミングクライアント要求マネージャ109は、SNRが所定の期間にわたって所定のレベルのままであり、一方、ブロック誤り率(「BLER」)が所定の期間にわたって連続的に所定のレベルのままであるのでない限り、より高い映像品質のセグメント212への変更を妨げてもよい。
【００８１】
任意のブロック560において、クライアント要求マネージャ109は、任意のブロック555において算出された所定の期間および/または任意のブロック555において算出された条件を、履歴追跡を目的として現在の条件に関連付けられた1つまたは複数のメモリリソース119に記憶してもよい。次に、任意のブロック565において、クライアント要求マネージャ109は、モデムサブシステム133の拡張特徴を無効化するかまたはアクティブ化するかを判定してもよい。
【００８２】
この任意のブロック565において、クライアント要求マネージャ109は、GPSモジュール143からのGPSデータおよびクライアント要求マネージャ109によって監視される電力レベル条件に基づいて、受信機ダイバーシチ(「RxDiv」)機能のような高度な受信機機能を無効化するかまたはアクティブ化するかを判定してもよい。クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が低電力状態を経験しており、ワイヤレスネットワーク206同士の間を移動していると、GPSデータに基づいて判定した場合、1つまたは複数の高度な受信機機能を無効化して電力を節約し、ワイヤレスネットワーク206との通信を維持することを決定してもよい。クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が、完全に充電されている通常電力状態を経験しており、かつハンドヘルドコンピューティングデバイス200が静止していると判定した場合、1つまたは複数の高度な受信機機能をその無効化状態から有効化またはアクティブ化することを決定してもよい。
【００８３】
任意のブロック570において、クライアント要求マネージャ109は、任意のブロック565におけるクライアント要求マネージャ109自体の決定に基づいて高度な受信機機能を有効化してもあるいは無効化してもよい。クライアント要求マネージャによって無効化または有効化することのできる他の高度な受信機機能には、限定はしないが、等化器有効化(「EQ Enable」)機能および干渉除去有効化(「IC Enable」)機能が含まれる。そして、プロセスは、図5Bの決定ブロック575に続く。
【００８４】
図5Bは、ワイヤレスハンドヘルドコンピューティングデバイス200の映像再生を最適化するための方法500を示す、図5Aのフローチャートに続くフローチャートである。決定ブロック575は、このフローチャートの第1のブロックであり、クライアント要求マネージャ109は、1つまたは複数のアプリケーションがハンドヘルドコンピューティングデバイス200の一次的な使用および/または制御を行っているかどうかを判定してもよい。この決定ブロック575において、クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200上の別のアプリケーションプログラムモジュールによって電話呼のような別のアプリケーションがサポートまたは実行されているかどうかを判定してもよい。代替として、クライアント要求マネージャ109は、表示画面332の、表示中の映像400をサポートする部分と比べて大きい部分を主に使用するかまたは利用する別のアプリケーションプログラムモジュールを検出してもよい。
【００８５】
決定ブロック575において、ハンドヘルドコンピューティングデバイス200によって電話呼が受信された状況のように、ハンドヘルドコンピューティングデバイス200の一次的な使用および/または制御を行っているアプリケーションがあるとクライアント要求マネージャ109が判定した場合、プロセスは決定ブロック580に進む。決定ブロック575において、ハンドヘルドコンピューティングデバイス200の一次的な使用および/または制御を行っているアプリケーションがあることをクライアント要求マネージャ109が検出しない場合、プロセスは図5Aのブロック515に戻る。
【００８６】
決定ブロック580において、要求されたファイルセグメント212の品質が最低であるかどうかをクライアント要求マネージャ109が判定する。メモリリソース119中の現在のファイルセグメント212がメタオブジェクト402に記述されているファイルセグメントと比べて高い品質を有するとクライアント要求マネージャ109が判定した場合、プロセスはブロック585に進み、クライアント要求マネージャは、より品質の低いファイルセグメント212が利用可能であるかどうかを判定し、利用可能である場合、他のアプリケーションモジュールがハンドヘルドコンピューティングデバイス200の使用および/または制御を支配している間、そのより品質の低いファイルセグメント212を選択する。
【００８７】
他のアプリケーションモジュールがモバイルコンピューティングデバイス200の主な使用および/または制御を放棄すると、クライアント要求マネージャ109は、ネットワーク条件およびワイヤレスハンドヘルドコンピューティングデバイス200の条件に応じてより品質の高い映像ファイルセグメントを求める要求を許容してもよい。決定ブロック580において、現在の映像ファイルセグメント212がすでに最低の品質を有するとクライアント要求マネージャ109が判定した場合、プロセスは図5Aのブロック515に戻る。
【００８８】
図6は、ワイヤレスハンドヘルドコンピューティングデバイス200のセンサ125からのデータを評価するための図5Aのサブ方法またはルーチン515を示すフローチャートである。ブロック605は、ルーチン515の第1のブロックであり、クライアント要求マネージャ109は歩数計センサ125Aからのデータを評価する。前述のように、歩数計センサ125Aからのデータは、ハンドヘルドコンピューティングデバイス200が歩行中の人によって持ち運ばれており、したがって、クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200があるワイヤレスネットワーク206内に存在し得る時間の推定値を算出することができることを示してもよい。
【００８９】
次に、ブロック610において、クライアント要求マネージャ109は、加速度計125Bから受信するデータを評価してもよい。加速度計125Bからのデータは、ハンドヘルドコンピューティングデバイス200が移動する車両内に存在するか否かをクライアント要求マネージャ109に示してもよい。ブロック620において、クライアント要求マネージャ109は、近位センサ125Cからのデータを評価してもよい。近位センサ125Cからのデータは、(通常)電話呼を行うためにハンドヘルドコンピューティングデバイス200がユーザの顔の隣に位置していることをクライアント要求マネージャ109に示してもよい。
【００９０】
次に、ブロック625において、クライアント要求マネージャ109は、コンパス125Dから受信するデータを評価してもよい。コンパス125Dからのデータは、ハンドヘルドコンピューティングデバイス200が自走車内に配置されているか否かを示してもよい。
【００９１】
ブロック630において、クライアント要求マネージャ109は、周辺光センサ125Eからのデータを評価してもよい。周辺光センサ125Eからのデータは、ハンドヘルドコンピューティングデバイス200に関する照明条件をクライアント要求マネージャ109に示してもよい。周辺光センサ125Eは、低レベル照明条件および直射日光のような高レベル照明条件ならびに日光が存在しない夜間のハンドヘルドコンピューティングデバイス200の動作を検出してもよい。ブロック630の後、プロセスは図5Aのブロック520に戻る。
【００９２】
図7は、ワイヤレスハンドヘルドコンピューティングデバイス200のモデムサブシステム133からのデータを評価するための図5Aのサブ方法またはルーチン535を示すフローチャートである。ブロック705は、ルーチン535の第1のブロックであり、クライアント要求マネージャ109はGPSモジュール143から受信したデータを評価してもよい。GPSモジュール143は、限定はしないが、ハンドヘルドモバイルコンピューティングデバイス200の位置および速度のような情報をストリーミング要求マネージャ109に供給してもよい。具体的には、GPSモジュール143は、楕円体に対する緯度、経度、高度、平均海面に対する高度、水平速度、垂直速度、およびヘッディング情報を提供してもよい。
【００９３】
ブロック710において、クライアント要求マネージャ109は、無線中継制御(「RRC」)モジュール137からのデータを評価してもよい。RRCモジュール137は、限定はしないが、高速ダウンリンクパケットアクセス(「HSDPA」)カテゴリ情報、拡張アップリンクレイヤ(「EUL」)カテゴリ情報、および不連続受信/送信(「DRX/DTX」)構成(「Config」)情報のような情報を伝達してもよい。
【００９４】
ブロック720において、クライアント要求マネージャ109は、無線リンク制御(「RLC」)モジュール135からのデータを評価してもよい。RLCモジュール135は、スループットならびに無線リンク制御(「RLC」)プロトコルデータ単位(「PDU」)サイズを伝達してもよい。
【００９５】
ブロック720において、クライアント要求マネージャは、媒体アクセス制御(「MAC」)モジュール139からのデータを評価してもよい。MACレイヤ139は、限定はしないが、バッファステータス報告(「BSR」)情報および拡張専用チャネル(「EDCH」)トランスポートフォーマット(「TF」)情報のようなアップリンク(「UL」)情報を伝達してもよい。
【００９６】
ブロック730において、クライアント要求マネージャ109は、物理レイヤ(「PHY」)モジュール147からのデータを評価してもよい。物理レイヤ141は、限定はしないが、高速トランスポートブロックサイズ(「HS-TBS」)、変調、チャネル品質指示(「CQI」)、ブロック誤り率(「BLER」)測定値、多入力/多出力(「MIMO」)、受信機(「Rx」)自動利得制御(「AGC」)、ならびに等化器集積回路(「EQ/IC」)受信機(「Rx」)ダイバーシチ(「D」)のようなダウンリンク(「DL」)情報を伝達してもよい。物理レイヤ141は、限定はしないが、BLER、変調、および送信機(「Tx」)自動利得制御(「AGC」)のようなアップリンク(「UL」)情報を伝達してもよい。
【００９７】
PHYモジュール141によって監視される他のパラメータには、限定はしないが、クライアント要求マネージャ109が、当業者には理解されるようにワイヤレスチャネルプロファイル、単一パスプロファイルまたは多重パスプロファイルを推定するのを可能にし得るレイクフィンガパス数、クライアント要求マネージャ109が、当業者には理解されるようにフェージングチャネル条件を予測するのを可能にする共通パイロットチャネル(「CPICH」)信号対雑音比(「SNR」)、クライアント要求マネージャ109が、当業者には理解されるようにフェージングチャネル条件を予測するのを可能にするチャネル品質インジケータ(「CQI」)、クライアント要求マネージャ109が、当業者には理解されるように測定帯域幅にわたる信号品質を算出するとともにフェージングチャネル条件を予測するのを可能にするアンテナ372当たりの基準信号受信品質(「RSRQ」)、クライアント要求マネージャ109が、当業者には理解されるように空間多重化多重入力多重出力(「SU-MIMO」)条件における送信レイヤ数を算出するのを可能にするランクインジケータ(「RI」)が含まれる。
【００９８】
次に、ブロック735において、モデムサブシステム要素からのデータをクライアント要求マネージャ109によって1つまたは複数のメモリリソース119に記憶してもよい。プロセスは次いで、図5Aのルーチンブロック540に戻る。
【００９９】
図8は、ワイヤレスハンドヘルドコンピューティングデバイス200のストリーミングマネージャ109とワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードできる様々な映像ファイル212を有するサーバ210との間の通信を示す状態図である。この状態図の第1の通信133Aは、モデムサブシステム133からストリーミングクライアントマネージャ109に送信される。第1の通信133Aは、平均送信プロトコル(「TP」)のステータスを含んでもよい。TPの現在のステータスは、ハンドヘルドコンピューティングデバイス109によってサポートできる毎秒1.8メガビット数(「Mbps」)を示してもよい。第1の通信133Aはまた、ブロック誤り率(「BLER」)のステータスを提供してもよい。この通信133AのBLERは、2%の値を含んでもよい。
【０１００】
第1の通信133Aはまた、ハンドヘルドコンピューティングデバイス200とサーバ210との間の往復時間(「RTT」)のステータスを提供してもよい。RTTは、100ミリ秒(ms)の値を含んでもよい。第1の通信133Aはまた、GPSモジュール143からのステータスを提供してもよい。GPSモジュール143からのステータスは、ハンドヘルドコンピューティングデバイス200が毎時約1マイルの速度で移動していることを示してもよい。
【０１０１】
第2の通信111Aは、ストリーミングサーバ210からメタオブジェクト402を要求するためにHTTPクライアント111から送信されてもよい。第3の通信133Bは、送信プロトコルに関する速度が第1の通信133Aに対して1.5Mbpsまで低下したことを示してもよい。第3の通信133Bはまた、BLERが3%に増大し、一方、RTTが100msのままであることを示してもよい。GPSモジュール143は、ハンドヘルドコンピューティングデバイス200の速度が第1の通信133Aに対して2mphまで上昇したことを示してもよい。
【０１０２】
第4の通信210Aは、サーバ210からハンドヘルドコンピューティングデバイス200のHTTPクライアント111に送信される。第4の通信210Aは、メタオブジェクトファイル402を含んでもよい。メタオブジェクトファイル402は、各ファイルセグメント212の長さが約5秒であり、一方、セグメントの各々のビットレートのオプションに1.5Mbps、1Mbps、768Mbps、384Mbps、および64kbpsのビットレートが含まれることを示してもよい。メタオブジェクトファイル402はまた、ファイルセグメント212が、一方の解像度が800X400であり別の解像度が400X200である2つの異なる映像解像度を有し得ることを示してもよい。
【０１０３】
第5の通信111Bにおいて、メタオブジェクトファイル402は検討するためにクライアント要求マネージャ109に転送される。第6の通信109Aにおいて、クライアント要求マネージャ109は、第1のファイルセグメント212に関する速度および第1のファイルセグメントの解像度をすでに求めており、速度が1Mbpsであり、解像度が800X400になっている。メタオブジェクトファイル402を含む第5の通信111Bが終了してから第6の通信109Aが開始するまでの間に、クライアント要求マネージャ109が図5Aのブロック510〜550を実行しておいてもよい。
【０１０４】
第7の通信111Bにおいて、HTTPクライアント111は、ビットレートが1Mbpsであり映像解像度が800X400であるファイルセグメント212を求める要求をサーバ210に発行する。第8の通信133Cにおいて、モデムサブシステム133は、平均送信プロトコル速度が500kbpsに低下し、一方、BLERが10%に増大したことを示す。一方、RTTは100msのままであり、それに対して、GPSモジュール143は、ハンドヘルドコンピューティングデバイス109の速度が第3の通信133Bに対して10mphに増大したことを示す。
【０１０５】
第8の通信133Cにおいて示される条件に基づいて、クライアント要求マネージャ109は、次にダウンロードすべきファイルセグメント212が、ビットレートが1Mbpsであり、映像解像度が、以前にクライアント要求マネージャ109によって発行された第6の通信109Aよりも低い400X200であるべきであると、第9の通信109Bの直前に判定する。クライアント要求マネージャ109は、この第9の通信をHTTPクライアント111に送信する。
【０１０６】
しかしながら、ストリーミングサーバ210はHTTPクライアントの前回の要求に応答していないので、HTTPクライアント111は第9の通信109Bのコンテンツをストリーミングサーバ210に送信することができない。HTTPクライアント111は、ストリーミングサーバ210から次の通信を受信したときに初めて、その次の要求をストリーミングサーバ210に送信することができる。これは、当業者には理解されるように、HTTPストリーミングプロトコルの特性である。
【０１０７】
第10の通信210Bにおいて、ストリーミングサーバ210は、第7の通信111BであったHTTPクライアント111からの前回の要求に対する応答を生成する。第10の通信210Bは、ビットレートが1Mbpsであり映像解像度が800X400であるファイルセグメントであった前回の要求111Bのコンテンツを含んでもよい。
【０１０８】
次に、モデムサブシステム133からクライアント要求マネージャ109への第11の通信133Dにおける条件は、平均送信プロトコルのビットレートが500kbpsのままであり、一方、BLERも10%のままであったことを示してもよい。第11の通信133Dは、RTTが100msから120msに増大しており、クライアントコンピューティングデバイス109の速度が10MPHのままであることを示してもよい。
【０１０９】
第12の通信109Cにおいて、クライアント要求マネージャ109は、ビットレートおよび映像解像度が、ビットレートが384kbpsであり映像解像度が400X200であった前回のクライアント要求マネージャ通信109Bに対して同じままであり得ると判定していてもよい。この第12の通信109Cは、クライアント要求マネージャ109からHTTPクライアント111に送信される。
【０１１０】
第13の通信111Cにおいて、HTTPクライアント111は、次のファイルセグメント212のビットレートを384kbpsにし映像解像度を400X200にする要求をストリーミングサーバ210に伝達してもよい。第14の通信210Cにおいて、ストリーミングサーバ210は、ビットレートが384kbpsであり映像解像度が400X200である要求されたファイルセグメント212を供給してもよい。
【０１１１】
次に、第15の通信133Eにおいて、モデムサブシステム133は、平均TP速度およびBLERがそれぞれ500kbpsおよび10%で同じままであることを示してもよい。モデムサブシステム133はまた、RTTが120msから150msに増大しており、速度が10MPHのままであることを示してもよい。
【０１１２】
第15の通信133Eにおいてモデムサブシステム133によって供給されるこれらの条件に基づいて、クライアント要求マネージャ109は、要求されたビットレートが384kbpsであり映像解像度が400X200である前回の第12の要求109Cと等しいビットレートおよび映像解像度を有するセグメント212を要求することを決定してもよい。クライアント要求マネージャ109は、このデータを第16の通信109Dにおいて送信する。
【０１１３】
第17の通信133Fにおいて、モデムサブシステム133は、送信プロトコルのビットレートが500kbpsから3Mbpsに増大しており、かつBLERが10%から0.5%に低下していることを示してもよい。第17の通信133Fはまた、RTTが150msから100msに低下しており、ハンドヘルドコンピューティングデバイス200の速度が10MPHから1MPHに低下していることを示してもよい。
【０１１４】
クライアント要求マネージャは、第17の通信133Fにおいて供給される条件を考慮して、少なくとも図5Aのブロック510〜550を実行した後、クライアント要求マネージャ109は、ビットレートが1.5Mbpsであり解像度が比較的高く800X400であるファイルセグメント212を要求してもよい。その後、HTTPクライアント111は、ビットレートが1.5Mbpsであり解像度が高く800X400であるファイルセグメント212を求める要求を第19の通信111Dにおいてストリーミングサーバ210に送信する。
【０１１５】
図8の状態図を参照して特定の値について考察したが、当業者には、TP、BLER、RTT、およびGPSの他の値が可能であり、かつ本発明の範囲内であることが認識されよう。さらに、当業者には、モデムサブシステム133とアプリケーションサブシステム102の両方によって監視される他の因子が本発明の範囲内であることが認識されよう。
【０１１６】
当業者には、クライアント要求マネージャ109を使用してインターネットを介してコンテンツにアクセスする家庭用パーソナルコンピュータが本発明の範囲内であることが認識されよう。クライアント要求マネージャ109は、Windows(登録商標)などのオペレーティングシステム(「OS」)上で実装され実行され、また通常、帯域幅(選択されたストリーミングビデオのビットレート)およびマルチメディアバッファステータス(ビデオストリームのビット消費率)を監視し、次のファイルセグメント212における解像度コンテンツをより高くするかそれともより低くするかの決定を下す。
【０１１７】
クライアント要求マネージャ109を使用するモバイルハンドセットを、Windows(登録商標)を備えるOS上に実装しWWAN(Gobiなど)に接続しても、あるいはクライアント要求マネージャ109を携帯電話内のANDROID(登録商標)、SYMBIAN(登録商標)、またはモバイルWINDOWS(登録商標)ブランドモバイルオペレーティングシステムのようなOS上に設けてもよい。クライアント要求マネージャ109は、上記と同様の帯域幅およびマルチメディアバッファステータスを監視してもよい。しかしながら、この携帯電話環境において、クライアント要求マネージャ109は、ユーザが移動しており加速していることをGPSモジュール143および加速度計125Bを介して考慮してもよい。クライアント要求マネージャ109は、統計的に、ユーザが過去に同様に加速したときに、帯域幅が減少していることに注目してもよい。したがって、クライアント要求マネージャ109が将来帯域幅が減少する可能性があると仮定した場合、要求マネージャ109は、現在検出されているネットワーク条件の下でサポートすることのできる映像解像度よりも低い映像解像度を要求するインテリジェントな決定を下してもよい。
【０１１８】
当業者には、より高度なクライアント要求マネージャ109が信号対雑音(「SNR」)を考慮してもよいことが認識されよう。たとえば、ハンドヘルドコンピューティングデバイス109が移動を停止し、より高いビットレートが利用可能である場合、クライアント要求マネージャ109は通常より高いビットレートを要求するにもかかわらず、SNRが低いことに注目してもよく、したがって、次の1組のファイルセグメント212にはよりビットレートの高いストリームを要求しない。
【０１１９】
本発明が説明通りに機能するために、本明細書で説明したプロセスまたはプロセスの流れの特定のステップが他のステップよりも前に実施されるのは当然である。しかしながら、ステップの順序または順番によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、あるいは各ステップを並行して(実質的に同時に)実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
【０１２０】
加えて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を特定し、開示された発明を容易に実施することができる。
【０１２１】
したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるコンピュータで実施されるプロセスの発明性のある機能は、上の説明において、かつ、様々なプロセスの流れを示し得る図面とともに、より詳細に説明される。
【０１２２】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを伝送もしくは記憶するために使用でき、コンピュータによってアクセスされ得るその他の媒体を含み得る。
【０１２３】
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、またはワイヤレス技術、たとえば赤外線、無線、およびマイクロ波を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義内に含まれる。
【０１２４】
ディスク(disk)およびディスク(disc)は、本明細書で使用される場合、コンパクトディスク(「CD」)、レーザディスク、光ディスク、デジタル多用途ディスク(「DVD」)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１２５】
選択された態様について詳細に説明し、詳述してきたが、以下の請求項によって定義されるような本発明の趣旨および範囲から逸脱することなく、本明細書において様々な置換および改変を実施できることが理解されよう。
【符号の説明】
【０１２６】
102 アプリケーションサブシステム
103A〜103B 通信リンク
105 ウェブブラウザ
109 要求マネージャ
109A 第6の通信
109B 第9の通信
109C 第12の通信
109D 第16の通信
111 HTTPスタック
111A 第2の通信
111B 第5の通信、第7の通信
111C 第13の通信
111D 第19の通信
113 DNSモジュール
119 メモリリソース
125 センサ
125A 歩数計
125B 加速度計
125C 近位センサ
125D コンパス
125E 周辺光センサ
127 転送通信プロトコル(「TCP」)モジュール
129 インターネットプロトコル(「IP」)レイヤ
131 ネットワークバッファレイヤ
133 モデムサブシステム
133A 第1の通信
133B 第3の通信
133C 第8の通信
133D 第11の通信
133E 第15の通信
133F 第17の通信
135 無線リンク制御(「RLC」)レイヤ
137 無線中継制御(「RRC」)モジュール
139 媒体アクセス制御(「MAC」)レイヤ
141 物理(「PHY」)レイヤ
143 全地球測位システム(「GPS」)
200 ワイヤレスハンドヘルドコンピューティングデバイス
206 ワイヤレス通信ネットワーク
208 ブロードキャストRFトランシーバタワー
210A 第4の通信
210B 第10の通信
210C 第14の通信
212A〜212D 映像ファイルセグメント
322 オンチップシステム
324 デジタル信号プロセッサ
326 アナログ信号プロセッサ
330 タッチスクリーンコントローラ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(「USB」)コントローラ
346 加入者識別モジュール(「SIM」)カード
348 デジタルカメラ
350 ステレオオーディオコーデック
352 オーディオ増幅器
354 第1のステレオスピーカー
356 第2のステレオスピーカー
358 マイクロフォン増幅器
360 マイクロフォン
362 周波数変調(「FM」)無線チューナー
364 FMアンテナ
366 ステレオヘッドフォン
368 無線周波数(「RF」)トランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 モノヘッドセット
378 バイブレータデバイス
380 電源
400 映像
402 メタオブジェクト
505 プログラムアイコン
510 メニュー
【図１Ａ】
0005878614.tif 000002
【図１Ｂ】
0005878614.tif 000003
【図２】
0005878614.tif 000004
【図３】
0005878614.tif 000005
【図４】
0005878614.tif 000006
【図５Ａ】
0005878614.tif 000007
【図５Ｂ】
0005878614.tif 000008
【図６】
0005878614.tif 000009
【図７】
0005878614.tif 000010
【図８】
0005878614.tif 000011