ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法であって、媒体の1つまたは複数のファイルセグメントを記述したメタオブジェクトを受信するステップと、前記メタオブジェクトに記述された前記1つまたは複数のファイルセグメントのオプションを検討するステップと、アプリケーションサブシステムからのデータを評価するステップと、モデムサブシステムからのデータを評価するステップと、前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方から受信された前記データに基づいて前記ワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできる任意のファイルセグメントを選択するステップとを含む方法。1つまたは複数のセンサからのデータを評価するステップをさらに含む、請求項1に記載の方法。前記センサ、前記アプリケーションサブシステム、および前記モデムサブシステムのうちの少なくとも1つからのデータに基づいてワイヤレスネットワークの将来の条件を推定するステップをさらに含む、請求項2に記載の方法。前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも1つからのデータに基づいてワイヤレスネットワークの将来の条件を推定するステップをさらに含む、請求項1に記載の方法。アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するステップをさらに含む、請求項1に記載の方法。アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御している場合、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項5に記載の方法。前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するステップをさらに含む、請求項1に記載の方法。前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信された場合、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項7に記載の方法。前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項1に記載の方法。前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項1に記載の方法。ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するためのコンピュータシステムであって、媒体の1つまたは複数のファイルセグメントを記述したメタオブジェクトを受信し、前記メタオブジェクトに記述された前記1つまたは複数のファイルセグメントのオプションを検討し、アプリケーションサブシステムからのデータを評価し、モデムサブシステムからのデータを評価し、前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方から受信された前記データに基づいて前記ワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択するように動作可能なプロセッサを備えるシステム。前記プロセッサは、1つまたは複数のセンサからのデータを評価するようにさらに動作可能である、請求項11に記載のシステム。前記プロセッサは、前記センサ、前記アプリケーションサブシステム、および前記モデムサブシステムのうちの少なくとも1つからのデータに基づいてワイヤレスネットワークの将来の条件を推定するようにさらに動作可能である、請求項12に記載のシステム。前記プロセッサは、前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方からのデータに基づいてワイヤレスネットワークの将来の条件を推定するようにさらに動作可能である、請求項11に記載のシステム。前記プロセッサは、アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するようにさらに動作可能である、請求項11に記載のシステム。前記プロセッサは、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するようにさらに動作可能である、請求項15に記載のシステム。前記プロセッサは、前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するようにさらに動作可能である、請求項11に記載のシステム。前記プロセッサは、前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信されたかどうかを判定し、次いで、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するようにさらに動作可能である、請求項11に記載のシステム。前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項11に記載のシステム。前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項11に記載のシステム。ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムであって、媒体の1つまたは複数のファイルセグメントを記述したメタオブジェクトを受信するための手段と、前記メタオブジェクトに記述された前記1つまたは複数のファイルセグメントのオプションを検討するための手段と、アプリケーションサブシステムからのデータを評価するための手段と、モデムサブシステムからのデータを評価するための手段と、前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方から受信された前記データに基づいて前記ワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択するための手段とを備えるシステム。1つまたは複数のセンサからのデータを評価するための手段をさらに備える、請求項21に記載のシステム。前記センサ、前記アプリケーションサブシステム、および前記モデムサブシステムのうちの少なくとも1つからのデータに基づいてワイヤレスネットワークの将来の条件を推定するための手段をさらに備える、請求項22に記載のシステム。前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方からのデータに基づいてワイヤレスネットワークの将来の条件を推定するための手段をさらに備える、請求項21に記載のシステム。アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するための手段をさらに備える、請求項21に記載のシステム。前記選択されたファイルセグメントの品質が最低であるかどうか、およびアプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するための手段をさらに備える、請求項21に記載のシステム。前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するための手段をさらに備える、請求項21に記載のシステム。前記選択されたファイルセグメントの品質が最低であるかどうか、および前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信されたかどうかを判定するための手段をさらに備える、請求項21に記載のシステム。前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項21に記載のシステム。前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項21に記載のシステム。コンピュータによりコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードは、ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法を実施するために実行されるようになされ、前記方法は、媒体の1つまたは複数のファイルセグメントを記述したメタオブジェクトを受信するステップと、前記メタオブジェクトに記述された前記1つまたは複数のファイルセグメントのオプションを検討するステップと、アプリケーションサブシステムからのデータを評価するステップと、モデムサブシステムからのデータを評価するステップと、前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方から受信された前記データに基づいて前記ワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択するステップとを含むコンピュータプログラム。前記方法を実施する前記プログラムコードは、1つまたは複数のセンサからのデータを評価するステップをさらに含む、請求項31に記載のコンピュータプログラム。前記方法を実施する前記プログラムコードは、前記センサ、前記アプリケーションサブシステム、および前記モデムサブシステムのうちの少なくとも1つからのデータに基づいてワイヤレスネットワークの将来の条件を推定するステップをさらに含む、請求項32に記載のコンピュータプログラム。前記方法を実施する前記プログラムコードは、前記アプリケーションサブシステムおよび前記モデムサブシステムのうちの少なくとも一方からのデータに基づいてワイヤレスネットワークの将来の条件を推定するステップをさらに含む、請求項31に記載のコンピュータプログラム。前記方法を実施する前記プログラムコードは、アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定するステップをさらに含む、請求項31に記載のコンピュータプログラム。前記方法を実施する前記プログラムコードは、アプリケーションプログラムモジュールが前記ワイヤレスハンドヘルドコンピューティングデバイスを一次的に制御しているかどうかを判定し、次いで、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項31に記載のコンピュータプログラム。前記方法を実施する前記プログラムコードは、前記ワイヤレスハンドヘルドコンピューティングデバイスが電話呼を受信したかどうかを判定するステップをさらに含む、請求項31に記載のコンピュータプログラム。前記方法を実施する前記プログラムコードは、前記ワイヤレスハンドヘルドコンピューティングデバイスによって電話呼が受信されたかどうかを判定し、次いで、前記選択されたファイルセグメントの品質が最低であるかどうかを判定するステップをさらに含む、請求項37に記載のコンピュータプログラム。前記ワイヤレスハンドヘルドコンピューティングデバイスは、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを含む、請求項31に記載のコンピュータプログラム。前記媒体は、映像、音声、画像、およびそれらの組合せのうちの少なくとも1つを含む、請求項31に記載のコンピュータプログラム。第1の例示的な態様によれば、ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法を開示する。この方法は、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信することと、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討することとを含む。この方法は、アプリケーションサブシステムからのデータおよびモデムサブシステムからのデータを評価することをさらに含む。この方法は、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択することも含む。ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するためのコンピュータシステムを開示する。このシステムは、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信し、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討するように動作可能なプロセッサを含む。プロセッサは、アプリケーションサブシステムからのデータおよびモデムサブシステムからのデータを評価するように動作可能である。プロセッサは、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択する。ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムは、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信するための手段と、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討するための手段とを含む。このシステムは、アプリケーションサブシステムからのデータを評価するための手段とモデムサブシステムからのデータを評価するための手段も有する。このシステムは、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択するための手段も含む。コンピュータ可読プログラムコードが実現されるコンピュータで使用可能な媒体を備えるコンピュータプログラム製品を開示する。コンピュータ可読プログラムコードは、ワイヤレスハンドヘルドコンピューティングデバイスの媒体再生品質を最適化するための方法を実行し実装するようになされ、実行される方法は、媒体の1つまたは複数のファイルセグメントを記述するメタオブジェクトを受信することと、メタオブジェクトに記述された1つまたは複数のファイルセグメントのオプションを検討することとを含む。コンピュータ可読プログラムコードは、アプリケーションサブシステムからのデータを評価するためのステップとモデムサブシステムからのデータを評価するためのステップを実行するようにさらになされる。コンピュータ可読プログラムコードは、アプリケーションサブシステムおよびモデムサブシステムのうちの少なくとも一方から受信されたデータに基づいてワイヤレスハンドヘルドコンピューティングデバイス上の媒体再生を最適化するダウンロードできるファイルセグメントを選択するためのステップをさらに実行する。図中、別段規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。102Aまたは102Bのような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。例示的なという言葉は、一例、実例または例としてを意味するように本明細書で使用される。例示的なものとして本明細書で説明するいかなる態様も、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。本明細書では、アプリケーションという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及するアプリケーションは、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。本明細書では、通信デバイス、ワイヤレスデバイス、ワイヤレス電話、ワイヤレス通信デバイス、およびワイヤレスハンドセットという用語は交換可能に用いられる。第3世代ワイヤレス技術の出現により、より広い帯域が利用できるようになり、より広範なワイヤレス機能を備えたより多くの電子デバイスが使用可能になった。したがって、ワイヤレスデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータであってよい。図1Aは、ワイヤレス通信ネットワーク206に結合されたワイヤレスハンドヘルドコンピューティングデバイス200の図である。図1Aに示されるシステム要素の多くは、通信リンク103A~103Bを介して通信ネットワーク206に結合されている。図1に示すリンク103は、ワイヤレスリンクを備えてもよい。ワイヤレスリンクには、限定はしないが、高周波リンク、赤外線リンク、音響リンク、および他のワイヤレス媒体が含まれる。通信ネットワーク206は、ワイドエリアネットワーク、ローカルエリアネットワーク、ワイヤレスLANインターネット、公衆交換電話網、ページングネットワーク、またはこれらの組合せを備えてもよい。通信ネットワーク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を有する拡張可能なマーク付け言語フォーマットを有するファイルなどのファイルを備えてもよい。映像ファイルセグメント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によって選択することのできるユニバーサルリソースロケータを備える。第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によって実行され、ハイパーテキスト転送プロトコルストリーミング要求マネージャ109によってサポートされる映像を実行することのできるモバイルウェブブラウザアプリケーション105を備えてもよい。モバイルウェブブラウザアプリケーションまたはモジュール105は、当業者に理解され以下に説明するようにインターネットプロトコル層129の上方に存在する転送通信プロトコルモジュール127と通信してもよい。IP層129は、当業者に理解されるように、ネットワークバッファ層131と通信する。IP層129は、第2の中央処理ユニット326によって実行されるモデムサブシステム133と通信する。モバイルウェブブラウザモジュール105は、ハイパーテキスト転送プロトコルストリーミング要求マネージャ109と、HTTPスタック111と、ドメインネームサーバモジュール113とを含む。ウェブブラウザモジュール105内に含められるように示されているが、さらなる例示的な代替実施形態では、HTTPストリーミング要求マネージャ109は、ウェブブラウザ105に対する別個のモジュールとして存在してもよい。HTTPストリーミングプロトコルは、イベントに応答してデータをサーバ210からハンドヘルドコンピューティングデバイス200上のウェブブラウザに送信するための機構である。HTTPストリーミングプロトコルは、いくつかの一般的な機構によって実現されてもよい。そのような一機構において、サーバ210は、データが処理された後も、クライアントとも呼ばれるコンピューティングデバイス200への応答を終了しない。このことは、データ送信の直後に応答が閉じられる典型的なHTTPサイクルとは異なる。サーバ210は、イベントを受信後にただちにクライアントに送信できるように応答を開いたままにしておく。場合によっては、クライアントがサーバ210に次の要求を出すまでデータを待ち行列に入れる必要がある。HTTPストリーミングプロトコルの典型的な使用法には、限定はしないが、映像再生、市場データ分散、ライブチャットメッセージングシステム、オンラインの賭けおよびゲーム、スポーツ結果、監視コンソール、およびセンサネットワーク監視が含まれる。HTTPストリーミングプロトコルは通常、ポート80またはポート8080を使用する。モバイルウェブブラウザモジュール105は、メモリリソース119に結合されてもよい。メモリリソース119には、限定はしないが、キャッシュ、ランダムアクセスメモリ、フラッシュメモリ、セキュアデジタルメモリカード、およびそれらの任意の組合せを含めてもよい。要求マネージャ109は、コンピューティングデバイス200に最適な映像再生品質を確保するために次にハンドヘルドモバイルコンピューティングデバイス200にどんなファイルセグメント212をダウンロードすべきであるかをウェブブラウザ105を制御または指示する役割を果たしてもよい。要求マネージャ109は、アプリケーションサブシステム102ならびにモデムサブシステム133の各要素を連続的に監視することができるという点で動的であってもよい。さらに、要求マネージャ109は、アプリケーションサブシステム102およびモデムサブシステム133内の各要素からメッセージを受信してもよい。ウェブブラウザ105のDNSモジュール113は、当業者に理解されるように、テキストベースのドメイン名を数値のインターネットプロトコルアドレスに変換する役割を果たしてもよい。DNSモジュール113は、IPアドレスをまたHTTPスタック111に伝達してもよく、HTTPスタック111がIPアドレスをTCP接続モジュール127に中継する。HTTPスタック111がTCP接続モジュール127からメタオブジェクト402を返すとき、HTTPスタックモジュール111はこのメタオブジェクト402をストリーミングクライアント要求マネージャ109に中継する。HTTPスタックモジュール111は、クライアント要求マネージャ109にあるステータス情報を供給してもよい。ステータス情報には、限定はしないが、高速スケジュール制御チャネル、有効ステータス、高速トランスポートブロックサイズ、レイヤ1ブロック誤り率、無線リンク制御プロトコルデータ単位サイズ、無線リンク制御ダウンリンクサービスデータ単位バイト受信、高速ダウンリンクパケットアクセス、ユーザ端末カテゴリ、媒体アクセス制御アップリンクバッファステータス報告、拡張アップリンク送信時間間隔、拡張トランスポートフォーマット組合せ識別子テーブルインデックス、ETCFI、新規送信数、無線リンク制御アップリンクサービスデータ単位バイト送信、ダイバーシチ送信ダイバーシチ受信モード、拡張アップリンクユーザ端末カテゴリ、媒体アクセス制御送信レイヤトランスポートブロックサイズ、パケットデータコンバージェンスプロトコルダウンリンクサービスデータ単位バイト受信、媒体アクセス制御アップリンクトランスポートブロックサイズ、パケットデータコンバージェンスプロトコルアップリンクサービスデータ単位バイト送信、およびユーザ端末カテゴリを含めてもよい。要求マネージャ109は、メタオブジェクト402の構文解析およびまたは検討を行い、現在のワイヤレスネットワーク条件およびハンドヘルドコンピューティングデバイス200の動作環境を評価した後、次のダウンロードにはどの映像セグメント212が適切であるかを判定する。転送制御プロトコル接続モジュール127は、当業者に理解されるように、一般的なネットワーキングの開放型システム間相互接続モデルのトランスポートレイヤ内で動作する。TCP接続モジュール127は、アプリケーションデータブロックを宛先ホストに送信できるようにネットワークインフラストラクチャに転送するのに適したデータ単位としてカプセル化するか、あるいはネットワークデータグラムを抽象化しそのペイロードをモバイルウェブブラウザ105に送出することによってリバーストランザクションを管理する役割を果たす。TCP接続モジュール127は、限定はしないが、再送タイムアウト、受信ウィンドウ広告、送信受信スループット、パケット統計、TCP接続の総数、推定往復時間、受信バイト数、シーケンス内パケット数、およびTCP送信ウィンドウサイズを含む情報を提供してもよい。インターネットプロトコルモジュール129は、TCP接続モジュール127およびネットワークバッファレイヤ131と通信する。IPモジュール129は、識別されたプロトコルデータグラムをそのアドレスに基づいてモバイルウェブブラウザからサーバ210に送出する役割を果たす。IPモジュール129は、アドレス指定方法およびデータグラムカプセル化の構造を定義する。IPモジュール129は、インターネットプロトコルバージョン4ならびに本明細書を作成している時点で積極的に使用されているインターネットプロトコルバージョン6を利用してもよい。しかしながら、まだ開発されていない将来のバージョンを含む、インターネットプロトコルの他のバージョンが本発明の範囲内に含まれる。ネットワークバッファレイヤ131は、IPモジュール129およびモデムサブシステム133と通信する。ネットワークバッファレイヤ131は、イーサネットおよび他のIEEE802カプセル化方式のようなハードウェア特有のすべてのインターフェース方法を含んでもよい。ネットワークバッファレイヤ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は、無線リンク制御レイヤ135、媒体アクセス制御レイヤ139、物理レイヤ141、無線中継制御モジュール137、および全地球測位システム143を備えてもよい。モデムサブシステム133のこれらの要素は、図2に示すようなRFトランシーバ368などの通信ハードウェアと通信する役割を果たしてもよい。モデムサブシステム133の各要素は、メッセージを送信するかまたはHTTPストリーミングクライアント要求マネージャ109からクエリを受信してもよい。たとえば、RRCモジュール137は、限定はしないが、高速ダウンリンクパケットアクセスカテゴリ情報、拡張アップリンクレイヤカテゴリ情報、および不連続受信送信構成情報のような情報を伝達してもよい。RLCモジュール135は、スループットならびに無線リンク制御プロトコルデータ単位サイズを伝達してもよい。MACレイヤ139は、限定はしないが、バッファステータス報告情報および拡張専用チャネルトランスポートフォーマット情報のようなアップリンク情報を伝達してもよい。物理レイヤ141は、限定はしないが、高速トランスポートブロックサイズ、変調、チャネル品質指示、ブロック誤り率測定値、多入力多出力、受信機自動利得制御、ならびに等化器集積回路受信機ダイバーシチのようなダウンリンク情報を伝達してもよい。物理レイヤ141は、限定はしないが、BLER、変調、および送信機自動利得制御のようなアップリンク情報を伝達してもよい。RRCモジュール137、RLCモジュール135、MACモジュール139、およびPHYモジュール141は、当業者に理解されるように、進化型高速パケットアクセスシステムを形成してもよい。一方、GPSモジュール143は、限定はしないが、ハンドヘルドモバイルコンピューティングデバイス200の位置および速度のような情報をストリーミング要求マネージャ109に供給してもよい。ストリーミングクライアント要求マネージャ109は、アプリケーションサブシステム102およびモデムサブシステム133の各要素を監視することによって、ワイヤレスハンドヘルドコンピューティングデバイス200が、ワイヤレスネットワークの条件ならびにハンドヘルドコンピューティングデバイス200自体の条件を監視することによってデバイス200上に表示される映像品質をインテリジェントに変化させるのを可能にしてもよい。映像品質は、ストリーミングクライアント要求マネージャ109により、監視される条件を使用して映像セグメントファイル212をサーバ210からダウンロードするのに適切なビットレートがどのようなビットレートであるかを判定することによって変化させてもよい。アプリケーションサブシステム102およびモデムサブシステム133から供給されるデータに基づく監視される条件の一部には、限定はしないが、現在のバッファのサイズおよびバッファが増大しコンピューティングデバイス200によって消費される速度を含むメディアプレーヤバッファ条件、現在および過去のWWAN帯域幅、現在および過去のWWAN信号強度、利用可能なIPソケットデータ接続数、ビデオクリップ推定全長ならびに信号対雑音比履歴ヒストグラムおよびロケーションベースサービスに基づく各ファイルセグメント212の各ユニフォームリソースロケータ推定ダウンロード時間、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、たとえば位相反転線エンコーダ、順次式カラーメモリエンコーダ、全国テレビジョン方式委員会エンコーダ、または任意の他のビデオエンコーダが、デジタル信号プロセッサ324に結合されることをさらに示している。上記のように、当業者には理解されるように、第1のデジタル信号プロセッサ324およびまたは第2のデジタル信号プロセッサ326を中央プロセッサユニットで置き換えてもよい。いずれかのハードウェアユニットが図5A~図8のソフトウェア要素命令のサブシステムを実行してもよい。ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ332に結合される。ビデオポート338がビデオ増幅器336に結合される。図2に示すように、ユニバーサルシリアルバスコントローラ340がデジタル信号プロセッサ324に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリリソース119および加入者識別モジュールカード346も、デジタル信号プロセッサ324に結合され得る。さらに、図2に示すように、デジタルカメラ348がデジタル信号プロセッサ324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイスカメラまたは相補型金属酸化膜半導体カメラである。図2にさらに示すように、ステレオオーディオコーデック350がアナログ信号プロセッサ326に結合され得る。その上、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356がオーディオ増幅器352に結合される。図2は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示している。加えて、マイクロフォン360がマイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調無線チューナー362がステレオオーディオコーデック350に結合され得る。また、FMアンテナ364がFM無線チューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。図2は、高周波トランシーバ368がアナログ信号プロセッサ326に結合され得ることをさらに示している。RFスイッチ370がRFトランシーバ368およびRFアンテナ372に結合され得る。RFトランシーバ368は、従来の通信ネットワークと通信するとともに、地理的な座標についてGPS信号を取得するために、全地球測位システム衛星とも通信することができる。RFトランシーバは、図1BのGPSモジュール143によって制御され監視されてもよい。図2に示すように、キーパッド374がアナログ信号プロセッサ326に結合され得る。また、マイクロフォンを備えたモノヘッドセット376がアナログ信号プロセッサ326に結合され得る。さらに、バイブレータデバイス378がアナログ信号プロセッサ326に結合され得る。図2は、電源380がオンチップシステム322に結合され得ることも示している。特定の態様では、電源380は、電力を必要とするワイヤレスハンドヘルドコンピューティングデバイス200の様々な構成要素に電力を供給する直流電源である。さらに、特定の態様において、電源装置は、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を有する拡張可能なマーク付け言語フォーマットを有するファイルなどのファイルを備えてもよい。メタオブジェクト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は、限定はしないが、再送タイムアウト、クライアント要求マネージャ109が、当業者には理解されるように達成可能な最大スループットを推定するのを可能にする受信ウィンドウ広告、送信受信スループット、パケット統計、TCP接続の総数、当業者には理解されるように様々なホスト名に関して推定することのできる推定往復時間、クライアント要求マネージャ109が、当業者には理解されるように平均サービングスループットを算出するのを可能にする受信バイト数、クライアント要求マネージャ109が、当業者には理解されるようにTCP送信ウィンドウサイズを推定するのを可能にするシーケンス内パケット数、およびクライアント要求マネージャ109が、当業者には理解されるように達成可能な最大スループットを推定するのを可能にするTCP送信ウィンドウサイズを含む情報を供給してもよい。HTTPスタックモジュール111は、限定はしないが、ハンドヘルドコンピューティングデバイス200がネットワークによって送信をスケジューリングされる回数をクライアント要求マネージャ109が推定するのを可能にし、クライアント要求マネージャ109が、当業者には理解されるように最大達成可能スループットを推定するのを可能にする値である高速スケジュール制御チャネル有効ステータス、クライアント要求マネージャ109が、当業者には理解されるように平均スループットおよび最大達成可能スループットを推定するのを可能にする高速トランスポートブロックサイズおよびレイヤ1ブロック誤り率、クライアント要求マネージャ109が、当業者には理解されるように達成可能な最大スループットを推定するのを可能にする無線リンク制御プロトコルデータ単位サイズ、クライアント要求マネージャ109が、当業者には理解されるようにインターネットプロトコルレイヤに対する平均スループットを算出するのを可能にする無線リンク制御ダウンリンクサービスデータ単位バイト受信を含めてもよいステータス情報をクライアント要求マネージャ109に供給してもよい。HTTPスタックモジュール111は、限定はしないが、クライアント要求マネージャ109が、当業者には理解されるように理論最大ダウンリンクスループットを算出するのを可能にする高速ダウンリンクパケットアクセスユーザ端末カテゴリ、当業者には理解されるようにどれだけのデータがプロトコルスタックにバッファリングされアップリンク送信をスケジューリングされるのを待っているかを示す媒体アクセス制御アップリンクバッファステータス報告、拡張アップリンク送信時間間隔、拡張トランスポートフォーマット組合せ識別子テーブルインデックス、ETCFI、新規送信数、クライアント要求マネージャ109が、当業者には理解されるようにIPレイヤから見える平均スループットを算出するのを可能にする無線リンク制御アップリンクサービスデータ単位送信バイト、クライアント要求マネージャ109が、当業者には理解されるようにHTTP要求をバンドルしてレイテンシを短縮することができるようにこのモードを構成することが可能なダイバーシチ送信ダイバーシチ受信モード、クライアント要求マネージャ109が、当業者には理解されるように理論最大アップリンクスループットを算出するのを可能にする拡張アップリンクユーザ端末カテゴリ、クライアント要求マネージャ109が、当業者には理解されるように平均スループットを算出するのを可能にする媒体アクセス制御送信レイヤトランスポートブロックサイズ、クライアント要求マネージャ109が、当業者には理解されるようにIPレイヤに対する平均スループットを算出するのを可能にするパケットデータコンバージェンスプロトコルダウンリンクサービスデータ単位バイト受信、クライアント要求マネージャ109が、当業者には理解されるように平均スループットを算出するのを可能にする媒体アクセス制御アップリンクトランスポートブロックサイズ、クライアント要求マネージャ109が、当業者には理解されるようにIPレイヤから見える平均スループットを算出するのを可能にするパケットデータコンバージェンスプロトコルアップリンクサービスデータ単位送信バイト、クライアント要求マネージャ109が、当業者には理解されるように理論最大スループットを算出するのを可能にするユーザ端末カテゴリのようなステータス情報をさらにクライアント要求マネージャ109に供給してもよい。クライアント要求マネージャ109は、EULTTIETFCIテーブルインデックス、および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によって追跡される信号対雑音比が所定のレベルに達したとクライアント要求マネージャ109がブロック545において判定した後、ストリーミングクライアント要求マネージャ109によって実施または実行される。任意のブロック555において、ストリーミングクライアント要求マネージャ109は、SNRが所定の期間にわたって所定のレベルのままであり、一方、ブロック誤り率が所定の期間にわたって連続的に所定のレベルのままであるのでない限り、より高い映像品質のセグメント212への変更を妨げてもよい。任意のブロック560において、クライアント要求マネージャ109は、任意のブロック555において算出された所定の期間およびまたは任意のブロック555において算出された条件を、履歴追跡を目的として現在の条件に関連付けられた1つまたは複数のメモリリソース119に記憶してもよい。次に、任意のブロック565において、クライアント要求マネージャ109は、モデムサブシステム133の拡張特徴を無効化するかまたはアクティブ化するかを判定してもよい。この任意のブロック565において、クライアント要求マネージャ109は、GPSモジュール143からのGPSデータおよびクライアント要求マネージャ109によって監視される電力レベル条件に基づいて、受信機ダイバーシチ機能のような高度な受信機機能を無効化するかまたはアクティブ化するかを判定してもよい。クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が低電力状態を経験しており、ワイヤレスネットワーク206同士の間を移動していると、GPSデータに基づいて判定した場合、1つまたは複数の高度な受信機機能を無効化して電力を節約し、ワイヤレスネットワーク206との通信を維持することを決定してもよい。クライアント要求マネージャ109は、ハンドヘルドコンピューティングデバイス200が、完全に充電されている通常電力状態を経験しており、かつハンドヘルドコンピューティングデバイス200が静止していると判定した場合、1つまたは複数の高度な受信機機能をその無効化状態から有効化またはアクティブ化することを決定してもよい。任意のブロック570において、クライアント要求マネージャ109は、任意のブロック565におけるクライアント要求マネージャ109自体の決定に基づいて高度な受信機機能を有効化してもあるいは無効化してもよい。クライアント要求マネージャによって無効化または有効化することのできる他の高度な受信機機能には、限定はしないが、等化器有効化機能および干渉除去有効化機能が含まれる。そして、プロセスは、図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は、無線中継制御モジュール137からのデータを評価してもよい。RRCモジュール137は、限定はしないが、高速ダウンリンクパケットアクセスカテゴリ情報、拡張アップリンクレイヤカテゴリ情報、および不連続受信送信構成情報のような情報を伝達してもよい。ブロック720において、クライアント要求マネージャ109は、無線リンク制御モジュール135からのデータを評価してもよい。RLCモジュール135は、スループットならびに無線リンク制御プロトコルデータ単位サイズを伝達してもよい。ブロック720において、クライアント要求マネージャは、媒体アクセス制御モジュール139からのデータを評価してもよい。MACレイヤ139は、限定はしないが、バッファステータス報告情報および拡張専用チャネルトランスポートフォーマット情報のようなアップリンク情報を伝達してもよい。ブロック730において、クライアント要求マネージャ109は、物理レイヤモジュール147からのデータを評価してもよい。物理レイヤ141は、限定はしないが、高速トランスポートブロックサイズ、変調、チャネル品質指示、ブロック誤り率測定値、多入力多出力、受信機自動利得制御、ならびに等化器集積回路受信機ダイバーシチのようなダウンリンク情報を伝達してもよい。物理レイヤ141は、限定はしないが、BLER、変調、および送信機自動利得制御のようなアップリンク情報を伝達してもよい。PHYモジュール141によって監視される他のパラメータには、限定はしないが、クライアント要求マネージャ109が、当業者には理解されるようにワイヤレスチャネルプロファイル、単一パスプロファイルまたは多重パスプロファイルを推定するのを可能にし得るレイクフィンガパス数、クライアント要求マネージャ109が、当業者には理解されるようにフェージングチャネル条件を予測するのを可能にする共通パイロットチャネル信号対雑音比、クライアント要求マネージャ109が、当業者には理解されるようにフェージングチャネル条件を予測するのを可能にするチャネル品質インジケータ、クライアント要求マネージャ109が、当業者には理解されるように測定帯域幅にわたる信号品質を算出するとともにフェージングチャネル条件を予測するのを可能にするアンテナ372当たりの基準信号受信品質、クライアント要求マネージャ109が、当業者には理解されるように空間多重化多重入力多重出力条件における送信レイヤ数を算出するのを可能にするランクインジケータが含まれる。次に、ブロック735において、モデムサブシステム要素からのデータをクライアント要求マネージャ109によって1つまたは複数のメモリリソース119に記憶してもよい。プロセスは次いで、図5Aのルーチンブロック540に戻る。図8は、ワイヤレスハンドヘルドコンピューティングデバイス200のストリーミングマネージャ109とワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードできる様々な映像ファイル212を有するサーバ210との間の通信を示す状態図である。この状態図の第1の通信133Aは、モデムサブシステム133からストリーミングクライアントマネージャ109に送信される。第1の通信133Aは、平均送信プロトコルのステータスを含んでもよい。TPの現在のステータスは、ハンドヘルドコンピューティングデバイス109によってサポートできる毎秒18メガビット数を示してもよい。第1の通信133Aはまた、ブロック誤り率のステータスを提供してもよい。この通信133AのBLERは、2の値を含んでもよい。第1の通信133Aはまた、ハンドヘルドコンピューティングデバイス200とサーバ210との間の往復時間のステータスを提供してもよい。RTTは、100ミリ秒の値を含んでもよい。第1の通信133Aはまた、GPSモジュール143からのステータスを提供してもよい。GPSモジュール143からのステータスは、ハンドヘルドコンピューティングデバイス200が毎時約1マイルの速度で移動していることを示してもよい。第2の通信111Aは、ストリーミングサーバ210からメタオブジェクト402を要求するためにHTTPクライアント111から送信されてもよい。第3の通信133Bは、送信プロトコルに関する速度が第1の通信133Aに対して15Mbpsまで低下したことを示してもよい。第3の通信133Bはまた、BLERが3に増大し、一方、RTTが100msのままであることを示してもよい。GPSモジュール143は、ハンドヘルドコンピューティングデバイス200の速度が第1の通信133Aに対して2mphまで上昇したことを示してもよい。第4の通信210Aは、サーバ210からハンドヘルドコンピューティングデバイス200のHTTPクライアント111に送信される。第4の通信210Aは、メタオブジェクトファイル402を含んでもよい。メタオブジェクトファイル402は、各ファイルセグメント212の長さが約5秒であり、一方、セグメントの各々のビットレートのオプションに15Mbps、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から05に低下していることを示してもよい。第17の通信133Fはまた、RTTが150msから100msに低下しており、ハンドヘルドコンピューティングデバイス200の速度が10MPHから1MPHに低下していることを示してもよい。クライアント要求マネージャは、第17の通信133Fにおいて供給される条件を考慮して、少なくとも図5Aのブロック510~550を実行した後、クライアント要求マネージャ109は、ビットレートが15Mbpsであり解像度が比較的高く800X400であるファイルセグメント212を要求してもよい。その後、HTTPクライアント111は、ビットレートが15Mbpsであり解像度が高く800X400であるファイルセグメント212を求める要求を第19の通信111Dにおいてストリーミングサーバ210に送信する。図8の状態図を参照して特定の値について考察したが、当業者には、TP、BLER、RTT、およびGPSの他の値が可能であり、かつ本発明の範囲内であることが認識されよう。さらに、当業者には、モデムサブシステム133とアプリケーションサブシステム102の両方によって監視される他の因子が本発明の範囲内であることが認識されよう。当業者には、クライアント要求マネージャ109を使用してインターネットを介してコンテンツにアクセスする家庭用パーソナルコンピュータが本発明の範囲内であることが認識されよう。クライアント要求マネージャ109は、Windowsなどのオペレーティングシステム上で実装され実行され、また通常、帯域幅およびマルチメディアバッファステータスを監視し、次のファイルセグメント212における解像度コンテンツをより高くするかそれともより低くするかの決定を下す。クライアント要求マネージャ109を使用するモバイルハンドセットを、Windowsを備えるOS上に実装しWWANに接続しても、あるいはクライアント要求マネージャ109を携帯電話内のANDROID、SYMBIAN、またはモバイルWINDOWSブランドモバイルオペレーティングシステムのようなOS上に設けてもよい。クライアント要求マネージャ109は、上記と同様の帯域幅およびマルチメディアバッファステータスを監視してもよい。しかしながら、この携帯電話環境において、クライアント要求マネージャ109は、ユーザが移動しており加速していることをGPSモジュール143および加速度計125Bを介して考慮してもよい。クライアント要求マネージャ109は、統計的に、ユーザが過去に同様に加速したときに、帯域幅が減少していることに注目してもよい。したがって、クライアント要求マネージャ109が将来帯域幅が減少する可能性があると仮定した場合、要求マネージャ109は、現在検出されているネットワーク条件の下でサポートすることのできる映像解像度よりも低い映像解像度を要求するインテリジェントな決定を下してもよい。当業者には、より高度なクライアント要求マネージャ109が信号対雑音を考慮してもよいことが認識されよう。たとえば、ハンドヘルドコンピューティングデバイス109が移動を停止し、より高いビットレートが利用可能である場合、クライアント要求マネージャ109は通常より高いビットレートを要求するにもかかわらず、SNRが低いことに注目してもよく、したがって、次の1組のファイルセグメント212にはよりビットレートの高いストリームを要求しない。本発明が説明通りに機能するために、本明細書で説明したプロセスまたはプロセスの流れの特定のステップが他のステップよりも前に実施されるのは当然である。しかしながら、ステップの順序または順番によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、あるいは各ステップを並行して実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、その後、次いで、次になどの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。加えて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよびもしくは回路を特定し、開示された発明を容易に実施することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるコンピュータで実施されるプロセスの発明性のある機能は、上の説明において、かつ、様々なプロセスの流れを示し得る図面とともに、より詳細に説明される。1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CDROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを伝送もしくは記憶するために使用でき、コンピュータによってアクセスされ得るその他の媒体を含み得る。また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線、またはワイヤレス技術、たとえば赤外線、無線、およびマイクロ波を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義内に含まれる。ディスクおよびディスクは、本明細書で使用される場合、コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、フレキシブルディスク、およびブルーレイディスクを含み、ディスクは、通常、磁気的にデータを再生し、ディスクは、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。選択された態様について詳細に説明し、詳述してきたが、以下の請求項によって定義されるような本発明の趣旨および範囲から逸脱することなく、本明細書において様々な置換および改変を実施できることが理解されよう。