(57)【要約】【課題】コンテンツ再生時にネットワーク帯域幅障害をユーザにとってより透過的にする、ストリーミングコンテンツ配信の方法を提供すること。【解決手段】ホストコンピュータ上の変換マネージャが、ネットワーク帯域幅の制限があるかどうか判断し、それに従ってストリーミングメディアコンテンツのビットレートを制御する。そのビットレートは、複数のタイプのビデオフレームをストリーミングメディアコンテンツから除外し、次いで、ネットワークが回復するときに、除外されたタイプのビデオフレームをストリーミングビデオコンテンツ内に再び挿入することによって制御される。【選択図】図２
2006060802.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してメディアストリームを送信するステップと、
ネットワーク帯域幅の可用性を示すフィードバックデータを受信するステップと、
前記フィードバックデータに応答して、前記送信するステップ時にビデオフレームを前記メディアストリームから除外するステップと
を含むことを特徴とする方法
【請求項２】
前記ビデオフレームを除外するステップは、
前記フィードバックデータに基づいて前記ネットワーク帯域幅の可用性を推定するステップと、
前記推定されたネットワーク帯域幅の可用性に基づいて特定のタイプのビデオフレームを前記メディアストリームから選択的に除外するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記フィードバックデータは再生装置からのバッファ占有率報告を含み、前記ネットワーク帯域幅の可用性を推定する前記ステップは、
前記バッファ占有率報告が、前記再生装置上のオーディオバッファが使い果たされようとしていることを示す場合は、前記ネットワーク帯域幅の可用性が低いと判断するステップと、
前記バッファ占有率報告が、前記再生装置上の前記オーディオバッファが使い果たされようとしていないことを示す場合は、前記ネットワーク帯域幅の可用性が高いと判断するステップと
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
特定のタイプのビデオフレームを選択的に除外する前記ステップは、デルタビデオフレームを除外するステップを含むことを特徴とする請求項２に記載の方法。
【請求項５】
特定のタイプのビデオフレームを選択的に除外する前記ステップは、キービデオフレームを除外するステップをさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記メディアストリームはＭＰＥＧメディアストリームであり、前記デルタビデオフレームを除外するステップは、Ｂ（双方向）ビデオフレームを除外するステップを含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記メディアストリームはＭＰＥＧメディアストリームであり、前記デルタビデオフレームを除外するステップは、Ｐ（予測）ビデオフレームを除外するステップを含むことを特徴とする請求項４に記載の方法。
【請求項８】
前記メディアストリームはＭＰＥＧメディアストリームであり、前記キービデオフレームを除外するステップは、ｎ番目ごとのＩ（イントラ）ビデオフレームを除外するステップを含むことを特徴とする請求項５に記載の方法。
【請求項９】
前記フィードバックデータを受信するステップは、再生装置からバッファ占有率報告を受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記フィードバックデータを受信するステップは、定期的なレートで再生装置からバッファ占有率報告を受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記フィードバックデータを受信するステップは、前記ネットワーク帯域幅の可用性によってさまざまなレートで、再生装置からバッファ占有率報告を受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
さまざまなレートでバッファ占有率報告を受信する前記ステップは、
前記ネットワーク帯域幅の可用性が低い場合は、増加されたレートでバッファ占有率報告を受信するステップと、
前記ネットワーク帯域幅の可用性が高い場合は、減少されたレートでバッファ占有率報告を受信するステップと
を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ネットワーク帯域幅の可用性が制限され、
前記ビデオフレームを除外するステップの後に前記ネットワーク帯域幅の可用性をテストするステップと、
前記テストするステップにより前記ネットワーク帯域幅の可用性が制限されていないことが明らかにされる場合は、前記除外されたタイプのビデオフレームを前記メディアストリームに再び挿入するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記送信することは初期ビットレートで行われ、前記ビデオフレームを除外するステップは、前記初期ビットレートを低減ビットレートに減少させ、前記テストするステップは、
ますます多くのパディング用データパケットを前記メディアストリーム内に挿入して、前記低減ビットレートを増加させるステップと、
前記フィードバックデータを監視して、再生装置上のオーディオバッファが使い果たされようとしているかどうか判断するステップと、
前記ますます多くのパディング用データパケットによって、前記オーディオバッファを使い果たさずに、前記低減ビットレートが前記初期ビットレートにまで増加される場合、前記除外されたタイプのビデオフレームを前記メディアストリームに再び挿入するステップと
を含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記除外されたタイプのビデオフレームを再び挿入する前記ステップと同時に、前記パディング用データパケットを挿入する前記ステップを停止するステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ネットワーク帯域幅の可用性が低いと判断する前記ステップは、前記バッファ占有率報告から、前記オーディオバッファが最小閾値率を示して、使い果たされようとしていると判断するステップを含むことを特徴とする請求項３に記載の方法。
【請求項１７】
請求項１に記載の方法を実施するように構成されたプロセッサ実行可能命令を含むことを特徴とするプロセッサ読取り可能記憶媒体。
【請求項１８】
ホスト装置からストリーミングメディアコンテンツを最大フレーム伝送レベルで受信するステップと、
前記ホスト装置にバッファ占有率報告を送信するステップと、
前記バッファ占有率報告送信後に、低減フレーム伝送レベルで前記ホスト装置から前記ストリーミングメディアコンテンツを受信するステップと
を含むことを特徴とする方法。
【請求項１９】
前記送信するステップは、
オーディオバッファを監視して、バッファ占有率レベルを判断するステップと、
前記バッファ占有率レベルを含む前記バッファ占有率報告を生成するステップと
をさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記最大フレーム伝送レベルで受信された前記ストリーミングメディアコンテンツを再生するステップをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
前記低減フレーム伝送レベルで受信された前記ストリーミングメディアコンテンツからのビデオフレームを複製するステップと、
前記複製されたビデオフレームを、前記低減フレーム伝送レベルで受信された前記ストリーミングメディアコンテンツと共に再生するステップと
をさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２２】
ネットワークを介して再生装置にメディアストリームを送信し、
前記再生装置からバッファ占有率報告を受信し、
前記バッファ占有率報告により前記再生装置上のオーディオバッファが使い果たされようとしていることが示される場合は、あるタイプのビデオフレームを前記メディアストリームから除去するように構成されたプロセッサ実行可能命令を含むことを特徴とするプロセッサ読取り可能記憶媒体。
【請求項２３】
あるタイプのビデオフレームを除去する前記ステップは、前記送信するステップを最大フレーム伝送レベルから低減フレーム伝送レベルに変更するステップを含むことを特徴とする請求項２２に記載のプロセッサ読取り可能記憶媒体。
【請求項２４】
前記最大フレーム伝送レベルは、Ｉ（イントラ）、Ｂ（双方向）およびＰ（予測）タイプのビデオフレームを含み、前記低減フレーム伝送レベルは、
ＩおよびＰビデオフレーム伝送レベルと、
Ｉビデオフレーム伝送レベルと、
ｎ番Ｉビデオフレーム伝送レベルと
を含むグループから選択されることを特徴とする請求項２２に記載のプロセッサ読取り可能記憶媒体。
【請求項２５】
あるタイプのビデオフレームを前記メディアストリームから除去する前記ステップは、
前記バッファ占有率報告内の占有率値を監視するステップと、
前記再生装置上の前記オーディオバッファが使い果たされようとしていると判断するステップと、
前記送信することを前記最大フレーム伝送レベルから前記ＩおよびＰビデオフレーム伝送レベルに変更するステップと
を含むことを特徴とする請求項２４に記載のプロセッサ読取り可能記憶媒体。
【請求項２６】
あるタイプのビデオフレームを前記メディアストリームから除去する前記ステップは、
前記監視することを継続するステップと、
前記再生装置上の前記オーディオバッファが使い果たされようとしていると判断するステップと、
前記送信することを前記ＩおよびＰビデオフレーム伝送レベルから前記Ｉビデオフレーム伝送レベルに変更するステップと
をさらに含むことを特徴とする請求項２５に記載のプロセッサ読取り可能記憶媒体。
【請求項２７】
あるタイプのビデオフレームを前記メディアストリームから除去する前記ステップは、
前記監視することを継続するステップと、
前記再生装置上の前記オーディオバッファが使い果たされようとしていると判断するステップと、
前記送信することを前記Ｉビデオフレーム伝送レベルから、前記ｎ番Ｉビデオフレーム伝送レベルに変更するステップと
をさらに含むことを特徴とする請求項２６に記載のプロセッサ読取り可能記憶媒体。
【請求項２８】
あるタイプのビデオフレームを前記メディアストリームから除去した後に、前記バッファ占有率報告から、前記オーディオバッファが使い果たされようとしていないと判断し、
前記ネットワークをテストして、前記オーディオバッファのさらなる占有を引き起こさずに、除去されたタイプのビデオフレームが前記メディアストリーム内に再び挿入され得るかどうか判断し、
前記再挿入が前記オーディオバッファのさらなる占有を引き起こさない場合は、除去されたタイプのビデオフレームを前記メディアストリーム内に再び挿入するように構成されたプロセッサ実行可能命令をさらに含むことを特徴とする請求項２２に記載のプロセッサ読取り可能記憶媒体。
【請求項２９】
前記送信するステップは最初に第１のビットレートで行われ、あるタイプのビデオフレームを除去する前記ステップは、前記送信するステップを低減された第２のビットレートで行われるようにし、前記テストするステップは、
前記オーディオバッファが使い果たされようとしていないと判断した後に、バッファ占有率報告を監視しながら、ますます多くのパディング用データパケットを前記メディアストリームと共に送信するステップと、
一緒に送信されている前記パディング用データパケットおよび前記メディアストリームによって前記第２のビットレートが前記第１のビットレートまで増加する場合は、前記除去されたタイプのビデオフレームを前記メディアストリーム内に再び挿入するステップと
を含むことを特徴とする請求項２８に記載のプロセッサ読取り可能記憶媒体。
【請求項３０】
パディング用データパケットを送信する前記ステップを、前記除去されたタイプのビデオフレームを前記メディアストリーム内に再び挿入する前記ステップと同時に停止するように構成されたプロセッサ実行可能命令をさらに含むことを特徴とする請求項２８に記載のプロセッサ読取り可能記憶媒体。
【請求項３１】
請求項２２に記載の前記プロセッサ読取り可能記憶媒体を含むことを特徴とするコンピュータ。
【請求項３２】
ホスト装置からストリーミングメディアコンテンツを受信するように構成されたメディアバッファと、
前記メディアバッファにアクセスし、前記ストリーミングメディアコンテンツを再生するように構成されたプレーヤーアプリケーションと、
オーディオバッファの占有率レベルを監視し、前記ホスト装置にバッファ占有率報告を送信するように構成されたバッファモニタと
を含むことを特徴とするコンピュータ。
【請求項３３】
デスクトップＰＣと、
ノートブックＰＣと、
ハンドヘルドＰＣと、
携帯情報端末（ＰＤＡ）と、
携帯電話と、
ゲームコンソールと、
セットトップボックスと、
ワークステーションと、
インターネット機器と
を含むグループから選択されることを特徴とする請求項３２に記載のコンピュータ。
【請求項３４】
メディアコンテンツと、
ネットワークを介して再生装置に前記メディアコンテンツをストリーミングするように構成されたトランスレータと、
前記ネットワークが帯域幅制限を有するかどうか判断し、前記帯域幅制限に応じてさまざまなレートで前記メディアコンテンツをストリーミングするように前記トランスレータを制御するように構成された変換マネージャと
を含むことを特徴とするコンピュータ。
【請求項３５】
前記再生装置から受信されたバッファ占有率報告をさらに含み、
前記変換マネージャは、前記占有率報告を分析して、前記ネットワークが帯域幅制限を有するかどうか判断するようにさらに構成されることを特徴とする請求項３４に記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般には、メディアストリーミングに関し、より詳細には、ネットワーク帯域幅情報に基づいて、ビデオ伝送のビットレートを変更することに関する。
【背景技術】
【０００２】
オーディオ、ビデオおよび／またはテキストメディアコンテンツのストリーミングなどのコンテンツストリーミングは、ますます普及している。用語「ストリーミング」は一般に、メディアを表すデータが、ネットワークを介してホストコンピュータによってクライアントコンピュータ（すなわち、デスクトップＰＣ、ノートブックまたはポータブルコンピュータ、携帯電話または他の無線通信装置、携帯情報端末（ＰＤＡ：Personal Digital Assistant）、ゲームコンソール、ＩＰセットトップボックス、ハンドヘルドＰＣなど、様々な従来のコンピューティング装置のいずれかとして実装されたメディア再生コンピュータ装置）に提供され、クライアントコンピュータが、「ファイル」全体が配信されるのを待つのではなく、ストリーミングコンテンツをホストから受信しながらそれをレンダリングすることを示すために使用される。
【０００３】
メディアコンテンツは一般に、ネットワークを介して「ストリーミング」される場合、データパケットの形でストリーミングされる。しかし、データパケットがその宛先に、それが送信されたのと同じ順序で届くという保証、または、データパケットがその宛先に本当に届くという保証さえ、必ずしもあるとは限らない。さらに、データパケットが送信元から宛先に移動するのに要する時間が特定の長さであるという保証、または、その時間がそれぞれ異なるデータパケットについて同じであるという保証は通常ない。
【０００４】
クライアントコンピュータへのデータ配信におけるこうしたばらつきについての責任を負うために、クライアントコンピュータは一般に、データのバッファを維持する。このバッファによって、クライアントコンピュータは、コンテンツの再生時にデータ配信のばらつきがユーザに分からないように、そのばらつきをならすことができる。しかし、このバッファリングの１つの問題は、ネットワークの輻輳（ネットワークのクロストラフィック、干渉、無線受信不良など）によって生じるネットワーク帯域幅の障害の責任を常にそれが負い得るとは限らないことである。ネットワーク帯域幅の障害が数秒以上持続する場合、それは、クライアントバッファが補償する能力を超えることがあり、それによって、ユーザのためのコンテンツ再生に対してかなりの悪影響がもたらされ得る。たとえば、ネットワーク帯域幅における持続的な障害によって、クライアントコンピュータ上のビデオ（すなわちオーディオ／ビデオ）コンテンツの再生が休止し、ビデオコンテンツのリアルタイム体験が一般に不可能になることがある。
【０００５】
こうしたネットワーク帯域幅問題に対する１つの解決策は、ストリーミングコンテンツのサイズ（すなわちビットレート）を下げることである。ストリーミングコンテンツのビットレートを下げるための現在のいくつかの方法は、同じビデオコンテンツの複数のコピーを生成し格納することを伴う。したがって、ユーザまたはシステムは、低いビットレートのビデオコンテンツのバージョンを選択し、ビデオコンテンツのリアルタイム再生がネットワーク帯域幅障害によって中断される可能性を小さくするオプションを有する。ストリーミングコンテンツのビットレートを下げるための別の方法は、ビットレートの低減を「オンザフライ」で実施することである。
【０００６】
こうした方法は、リアルタイムビデオ再生の中断を少なくし得るが、様々な欠点を有する。たとえば、同じビデオコンテンツのそれぞれ異なるビットレートのコピーが格納される場合、ビデオコンテンツの再生ビットレートの選択は一般に、再生の最初に行われ、通常、再生中に変更され得ない。ビデオコンテンツをあるビットレートのコピーから別のビットレートのコピーに変更するには、再生の中断、およびコンテンツの最初から再生を再開することが必要であり得る。別の欠点は、ホスト装置上に同じコンテンツの複数のコピーを保持するには、かなり大きな記憶領域が必要なことである。上記の方法の両方が、極めてプロセッサ集約型であるという追加の欠点をもつ。すなわち、同じビデオコンテンツのビットレート符号化された複数の異なるコピーを生成することと、「オンザフライ」のビットレート低減を実施することの両方が、極めてプロセッサ集約的である。ホスト装置上で一般に実施されるこうしたプロセスは、ビデオコンテンツを、非圧縮のまたは生のビデオに、完全に復号することを伴う。完全な復号の後に、生のビデオを完全に符号化して、パラメータ調整でそれを再圧縮し、それによって、ビデオコンテンツのより小さい全体のコピーとなる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、コンテンツ再生時にネットワーク帯域幅障害をユーザにとってより透過的にする、ストリーミングコンテンツ配信の方法が求められている。
【課題を解決するための手段】
【０００８】
ホストコンピュータ上の変換マネージャ（transrate manager）は、ネットワーク帯域幅の制限があるかどうか判断し、それに従ってストリーミングメディアコンテンツのビットレートを制御する。ビットレートは、ストリーミングメディアコンテンツから複数のタイプまたはクラスのビデオフレームを除外し、次いで、ネットワークが回復されるときに、その除外されたタイプまたはクラスのビデオフレームをストリーミングメディアコンテンツに再び挿入することによって制御される。
【０００９】
ある実装では、ホストコンピュータは、ビデオ（すなわちオーディオ／ビデオ）コンテンツを再生装置にストリーミングし、バッファ占有率（buffer fullness）についての報告を再生装置から受信する。バッファ報告が再生装置上のメディアバッファ（すなわちオーディオバッファ）が使い果たされようとしていることを示す場合、変換マネージャは、トランスレータ（transrater）に、ストリーミングビデオコンテンツからビデオフレームを選択的に除外するように指示する。バッファ占有の度合いに応じて、それぞれ異なるタイプまたはクラスのビデオフレームが、次第に、または１度にすべて、ストリーミングビデオコンテンツから除外され得る。たとえば、第１のステップで、特定のデルタビデオフレームが除外され得る（たとえば、ＭＰＥＧビデオコンテンツについて、Ｂフレームがまず除外され、バッファが依然として占有される場合には、それに続いてＰフレームが除外される）。変換マネージャは、バッファ占有率報告を引き続き監視する。すべてのデルタビデオフレーム（ＢおよびＰデルタフレームなど）が除外された後に、再生装置上のバッファ占有が続くならば、トランスレータは、特定のキーフレーム（１つおきの「Ｉ」フレームなど）を除外することもできる。特定のタイプのビデオフレームの各除外によって、ビデオストリームのビットレートが低減され、ユーザのためのリアルタイム再生体験を持続するのに間に合う時間内にキービデオフレームが再生装置に到着する可能性が高まる。フレームは、除外されたフレームを補い、満足できるリアルタイムビデオ再生の体験を維持するために、再生装置上で持続され、または複製され得る。オーディオコンテンツはメディアストリームから除去されず、したがって、オーディオ再生は、シームレス体験である。
【００１０】
ネットワーク帯域幅制限が和らぐと、変換マネージャは、除外されたタイプのビデオフレームのビデオストリームへの再挿入を制御する。ネットワーク帯域幅の全体的な状態（health）は、再生装置のバッファが再び占有され始めるまで、またはさらなるバッファ占有を生じずにメディアストリームの前のビットレートに達するまで、増加していくレートで（at an increasing rate）パディング用データパケットをメディアストリームに挿入することによってテストされる。さらなるバッファ占有を生じずにメディアストリームの前のビットレートに達する場合、直前に除外されたタイプのビデオフレームがビデオストリーム内に再び挿入される。このプロセスは、ビデオコンテンツのすべてのタイプのビデオフレームが再生装置上に再びストリーミングされるまで続く。
【００１１】
すべての図面を通じて同じ参照番号を使用して、同様のコンポーネントおよび特徴を参照する。
【発明を実施するための最良の形態】
【００１２】
（序論）
以下の議論は、ネットワーク帯域幅制限を補償するために、ストリーミングメディアコンテンツの「オンザフライ」変換（すなわちビットレート変換）を提供するシステムおよび方法を対象とする。一時的なネットワーク帯域幅問題によって中断されないリアルタイム再生の体験を維持するために、それぞれ異なるタイプのフレームが、メディアストリームのビデオ部分から選択的に除外され得る。ネットワークが回復するときに、除外されたタイプのビデオフレームがメディアストリーム内に再び挿入され得る。開示されるシステムおよび方法の利点は、ネットワーク問題による中断が減少される、および、ネットワーク帯域幅が使用可能なときにより高い品質を維持する、ビデオ再生体験を含む。追加の利点は、メディアコンテンツを維持し配信するホスト装置の、ストレージおよびメディア処理要件を低減することを含む。
【００１３】
（例示的な環境）
図１に、ネットワーク１０６を介してホストコンピュータ装置１０２から再生コンピュータ装置１０４にストリーミングされるメディアコンテンツをレート変換（すなわちビットレート変換）するのに適した例示的な環境１００を示す。ネットワーク１０６は、様々な従来のネットワークプロトコル（公開および／または独自仕様のプロトコルを含む）のいずれかを使用する、様々な従来のネットワークトポロジまたはタイプ（光、有線および／または無線ネットワークを含む）のいずれかを表すものである。ネットワーク１０６は、たとえばホームネットワーク、企業ネットワーク、またはインターネット、ならびに場合によっては、１つまたは複数のローカルエリアネットワーク（ＬＡＮ：local area network）および／または広域ネットワーク（ＷＡＮ：wide area network）の少なくとも一部を含み得る。
【００１４】
ホスト装置１０２は一般に、メディアコンテンツを格納し、要求に応じて、再生装置１０４にメディアコンテンツをストリーミングする。再生装置１０４は一般に、ホスト装置１０２からストリーミングメディアコンテンツを受信し、ユーザのためにそれを再生する。ホスト装置１０２上で入手可能なストリーミングメディアコンテンツを求める、再生装置１０４からの要求は、ネットワーク１０６を介して再生装置１０４からホスト装置１０２にルーティングされる。ホスト装置１０２は、要求を受信し、ネットワーク１０６を介して要求側の再生装置１０４に、要求されたコンテンツを返す。
【００１５】
ホスト装置１０２は、メディアコンテンツを格納し、再生装置１０４にストリーミングするように構成することができる、たとえばデスクトップＰＣ、ノートブックまたはポータブルコンピュータ、ワークステーション、メインフレームコンピュータ、インターネット機器、その組合せなどを含めて、様々な従来のコンピューティング装置のいずれかとして実装され得る。再生装置１０４もまた、たとえばデスクトップＰＣ、ノートブックまたはポータブルコンピュータ、ワークステーション、メインフレームコンピュータ、インターネット機器、ゲームコンソール、ハンドヘルドＰＣ、携帯電話または他の無線通信装置、携帯情報端末（ＰＤＡ）、セットトップボックス、その組合せなどを含めて、様々な従来のコンピューティング装置のいずれかとして実装され得る。ホスト装置１０２および再生装置１０４を実装するための例示的なコンピューティング環境について、図１１を参照して、本明細書中で以下により詳細に述べる。
【００１６】
ホスト装置１０２は、オーディオ、ビデオ、テキスト、画像、アニメーションなどを含めて、様々なデータのいずれも、再生装置１０４へのストリーミングに使用できるようにすることができる。しかし、メディアコンテンツ２００は、以下で述べる例示的な諸実施形態に関して本明細書で用いられるときは、オーディオ／ビデオ（Ａ／Ｖ：audio/video）コンテンツ、またはビデオコンテンツだけを表すためのものである。さらに、「メディアコンテンツ」、「ストリーミングメディア」、「ストリーミングビデオ」、「ビデオコンテンツ」、およびその任意のバリエーションについて本明細書中でなされる言及は一般に、オーディオ／ビデオコンテンツを含むものである。用語「ストリーミング」は、メディアコンテンツを表すデータがネットワーク１０６を介して再生装置１０４に提供され、コンテンツ全体が配信される前にコンテンツの再生が開始し得ることを示すために使用される。データは、公的に入手可能であることも、あるいは、（特定のユーザだけに制限される、適切な料金が支払われる場合にだけ入手可能である、特定のネットワークへアクセスできるユーザに制限されるなど）制限付きであることもある。さらに、データは、「オンデマンド型」（たとえば、事前に記録されたもの、および、既知のサイズのものなど）であることも、あるいは、「ブロードキャスト型」（たとえば、コンサートが実施される間にキャプチャされ、キャプチャの直後にストリーミングに使用できるようにされるコンサートのデジタル表現など、サイズが知られていないもの）であることもある。
【００１７】
（例示的な実施形態）
図２に、ネットワーク１０６を介して再生コンピュータ装置１０４にメディア／ビデオコンテンツ２００をストリーミングし、ネットワーク帯域幅の可用性（availability）に関する情報に応答してメディアコンテンツ２００のビデオ成分を変換する（すなわちビットレートを変換する）ように構成されたホスト装置１０２の例示的な一実施形態を示す。この実施形態では、再生装置１０４は、バッファ占有率報告２０２の形でネットワーク帯域幅の可用性に関する情報を提供し、このバッファ占有率報告は、再生装置１０４へのメディアコンテンツのストリーミング中に、再生装置１０４上のメディアバッファ２０６内にあるデータのレベル（すなわちオーディオバッファ２０６（１）内のオーディオデータのレベル）を示す。この実施形態に関して本明細書で論じるバッファ占有率報告２０２は、ホスト装置１０２がどのようにネットワーク帯域幅の可用性を判断し得るかについての単に１つの可能な例を示すものであることに留意されたい。したがって、ホスト装置１０２にネットワーク帯域幅の可用性に関する情報を提供する他の方法が企図され、その方法は、バッファ占有率報告２０２に関して本明細書で論じるものと類似の利点をもたらし得る。
【００１８】
ホスト装置１０２は、再生装置１０４上のメディアプレーヤーアプリケーション２０４によって（たとえば、プレーヤーアプリケーション２０４を介したユーザ入力に応答して）選択が行われる対象のメディアコンテンツ２００の１つまたは複数のファイルを維持する。この実施形態では、メディアコンテンツ２００は、オーディオ成分を一般に含むビデオコンテンツであると見なされたい。したがって、上記で示したように、「メディアコンテンツ」、「ストリーミングメディア」、「ストリーミングビデオ」、「ビデオコンテンツ」、およびその任意のバリエーションについて本明細書中でなされる言及は一般に、オーディオ／ビデオ（Ａ／Ｖ）および／またはビデオコンテンツを指すものである。ホスト装置１０２は、ネットワーク１０６を介して再生装置１０４上のプレーヤーアプリケーション２０４に、要求されたメディアコンテンツ２００をデータストリームとして送信する。
【００１９】
ストリーミングメディアコンテンツ２００のビデオ部分の一例は、１秒当たり３０個のビデオフレームで構成されるビデオコンテンツであり、このコンテンツの一部のフレームはキーフレーム（アンカーフレーム）であり、また一部のフレームは、デルタフレームである。キーフレームは、フレーム全体を表す情報を含む。したがって、キーフレームは、ピクチャーについてのすべての情報を再作成するために使用され得る独立のビットマップ画像のようなものである。デルタフレームは、隣接キーフレームまたはデルタフレームに関して変化する情報だけを含む。すなわち、デルタフレーム内のデータは、あるフレームから次のフレームへのビデオシーケンス内で生じるピクチャーの変化を表す。デルタフレームは、ピクチャー全体を表していない。
【００２０】
この実施形態について、ＭＰＥＧフォーマットされたビデオコンテンツを一例として使用して論じる。ＭＰＥＧフォーマットされたビデオコンテンツでは、キーフレームは「Ｉ」フレームと表され、デルタフレームは、「Ｐ」フレームおよび「Ｂ」フレームの両方で表される。Ｉフレームは、「イントラ」フレームであり、キーフレームとして、対応する元のビデオフレームを再構成するのに必要なすべての情報を運ぶ。Ｐフレームは、「予測」フレームであり、Ｐフレーム自体をピクチャー全体として再作成するために、直前のＩまたはＰフレームからの情報に依存する。Ｂフレームは、Ｂフレーム自体を完全に再構成するために、前のフレームおよび後続のフレームの両方からの情報を必要とする「双方向」フレームである。
【００２１】
図３を参照すると、しばしばピクチャー群（ＧＯＰ：group of pictures）３００と称される、ビデオフレーム３００の例示的なシーケンスが示されている。図３のＧＯＰシーケンス３００は、限定するためのものではなく、例示するためのものにすぎない。この例示的なＧＯＰシーケンス３００では、ビデオシーケンスの１２フレーム毎に１つだけＩフレームがあり、このＩフレームの後に、シーケンスはそれ自身を繰り返している。この３つのＭＰＥＧビデオフレームタイプのうち、Ｉフレームは、ビデオフレーム全体を表すことができるので、より多くのデータを含む傾向があり、Ｂフレームは、Ｂフレームが表示され得る前に周囲のフレームからの情報を必要とするので、一般に最も小さい。Ｉ、ＰおよびＢフレームの相対サイズは一般に、ＧＯＰシーケンス内でのその使用頻度に反映されている。
【００２２】
再び図２を参照して、プレーヤーアプリケーション２０４はホスト装置１０２にメディアコンテンツ２００を要求し、また図３のＧＯＰシーケンス３００は、ホスト装置１０２から再生装置１０４にストリーミングされるそのコンテンツの一部を表すものとする。ネットワーク１０６上で輻輳がなく、また十分な帯域幅が使用可能である好ましいネットワーク状況では、ＧＯＰシーケンス３００を表すデータパケットは、再生装置１０４に届き、ビデオフレームデータ２０８としてビデオバッファ２０６（２）内に格納される。さらに、ビデオフレームデータ２０８に対応する、メディアコンテンツ２００からのオーディオデータ２０９は、オーディオバッファ２０６（１）内に格納される。
【００２３】
再生装置１０４上のバッファモニタ２１０は、オーディオバッファ２０６（１）の占有率レベルを監視し、メディアコンテンツ２００がホスト装置１０２からストリーミングされている間にバッファ占有率報告を生成するように構成される。オーディオバッファ２０６（１）の占有率レベルを監視することによって、ビデオバッファの占有率レベルの表示を提供する。好ましいネットワーク状況では、オーディオバッファ２０６（１）の占有率レベルは高く（８０％より高い占有など）、またビデオバッファ２０６（２）も同様に良好な占有率レベルを維持していることを示している。ビデオバッファ２０６（２）の占有率レベルが高いと一般に、プレーヤーアプリケーション２０４による、ＧＯＰシーケンス３００内のすべてのビデオフレーム、および残りのストリーミングメディアコンテンツのリアルタイム再生が可能である。この実施形態は一般に、シームレスなオーディオ体験を提供する。したがって、オーディオデータの意図的な除去はなく、オーディオバッファ２０６（１）の占有率レベルによって、ネットワーク帯域幅の可用性の正確な表示が提供される。しかし、以下でより完全に論じるように、それぞれ異なるタイプのビデオフレームがメディアストリームから除去され、次いで再び挿入される。ビデオフレームタイプのこの意図的な除去および再挿入によって、ネットワーク状況だけに基づくものではない理由から、ビデオバッファ（２）の占有率レベルの変化が引き起こされる。したがって、ビデオバッファ２０６（２）の占有率レベルの監視は、ネットワーク状態の正確な表示を提供しない。したがって、バッファモニタ２１０は、オーディオバッファ２０６（１）の占有率レベルを監視し、メディアコンテンツ２００がホスト装置１０２からストリーミングされる間のネットワーク帯域幅の可用性についての表示を提供するバッファ占有率報告を生成する。バッファ占有率報告２０２は、再生装置１０４がホスト装置１０２にオーディオバッファの占有率について報告するための機構である。一般に、また以下でより完全に論じるように、この情報は、ネットワーク１０６のパフォーマンスを測定し、またネットワーク帯域幅制限があるかどうか判断するために、ホスト装置１０２上の変換マネージャ２１２によって使用される。
【００２４】
バッファ占有率報告２０２は、タイムスタンプ情報、およびオーディオバッファ２０６（１）の占有率に関する情報を含む。バッファ占有率報告２０２（１）を送信するためのある周知のプロトコルは、ＲＴＣＰ（リアルタイム制御プロトコル：Real Time Control Protocol）である。ＲＴＣＰは、ネットワークを介してオーディオおよびビデオなどのリアルタイムデータを送信するためのＲＴＰ（リアルタイムプロトコル：Real Time Protocol）と共に働く制御プロトコルである。ＲＴＣＰ制御パケットは、ＲＴＰセッション内の参加者間で定期的に送信される。ＲＴＣＰ制御パケットは、バッファ占有率報告２０２（１）がネットワーク１０６を介して再生装置１０４からホスト装置１０２に送信され得る１つの方法である。
【００２５】
バッファモニタ２１０は一般に、バッファ占有率報告２０２（１）をホスト装置１０２（２０２（２））に定期的に、たとえば１秒毎や１／４秒毎に１つの報告を、送信する。しかし、バッファモニタ２１０は、バッファ占有率のレベルによってさまざまなレートで、ホスト装置１０２にバッファ占有率報告２０２（１）を送信することもできる。たとえば、ネットワーク状況が好ましく、また上記で論じたようにオーディオバッファ２０６（１）が良好（８０％より高い占有など）であれば、バッファモニタ２１０は、低頻度（１秒毎に１報告など）で、ホスト装置にバッファ占有率報告２０２（１）を送信し得る。しかし、オーディオバッファの状態が劣化する場合（８０％より低い占有、６０％より低い占有、４０％より低い占有など）、バッファモニタ２１０は、バッファ占有率報告２０２の頻度を増すことができる。こうしたシナリオでは、バッファモニタ２１０は、オーディオバッファ２０６（１）が、良好なレベル、たとえば８０％より高い占有の閾値に回復するまで、バッファ占有率報告２０２の頻度の増加を維持する。
【００２６】
ホスト装置１０２上の変換マネージャ２１２は、バッファ占有率報告２０２（２）を受信し、ネットワーク帯域幅の可用性の全体的な尺度としてオーディオバッファ２０６（１）の占有率を監視する。上述したように、バッファ占有率報告２０２は、ホスト装置１０２上の変換マネージャ２１２がどのようにネットワーク帯域幅可用性のレベルを測定し得るかについての１つの可能な例にすぎず、類似の利点を提供できるものとして、ネットワーク帯域幅可用性に関する情報を提供する他の方法が、この開示によって企図される。
【００２７】
バッファ占有率報告２０２（２）によりオーディオバッファ２０６（１）が使い果たされようとしていることが示される範囲内において、変換マネージャ２１２は、ネットワーク帯域幅の問題があるかどうか、および、その問題がいかに厳しいものであり得るかを判断することができる。次いで、変換マネージャ２１２は、それに応じて、１つまたは複数のタイプのビデオフレームを除外し、メディアストリームのビットレートを下げることができる。変換マネージャ２１２は、様々な方法でバッファ占有率報告２０２（２）を監視して、オーディオバッファ２０６（１）がいつ使い果たされるかを判断し得る。たとえば、変換マネージャ２１２は、バッファ占有率報告２０２（２）からの占有率データをプロットし、プロットされた線の傾きを監視することができる。
【００２８】
図４に、ホスト装置１０２がネットワーク１０６を介して再生装置１０４にストリーミングメディアコンテンツ２００を送信する間の、時間に対するオーディオバッファ２０６（１）の占有率および回復率、ならびオーディオバッファ２０６（１）の占有率のパーセント（すなわちバッファ占有率プロット）を示している例示的なバッファ占有率プロット４００を示すチャートを図示する。以下で論じるように、図４のバッファ占有率プロット４００は、２つの異なるメディアシナリオを示すのに役立つ。第１のメディアシナリオでは、送信されるメディアコンテンツ２００は格納されたファイルからのものであり、第２のメディアシナリオでは、送信されるメディアコンテンツはライブコンテンツである。図４のチャートは、同じ時間間隔でネットワーク帯域幅の可用性の例示的な変化を示す、例示的なネットワーク帯域幅プロット４０１をも示している。したがって、図４は、ネットワーク帯域幅の変化に対してオーディオバッファ２０６（１）の占有率レベルがどのように変化し得るかについての例を提供する。図４のチャートは、変換マネージャ２１２がどのようにバッファ占有率報告２０２（２）を監視し得るかについての単なる一例を示している。たとえば、時間間隔４０２（すなわち０から０．５秒）で、バッファ占有率プロット４００は、変換マネージャ２１２によって受信された１つまたは複数のバッファ占有率報告２０２（２）からの情報により、再生装置１０４上のオーディオバッファ２０６（１）の占有率のパーセントが約８５％で安定した状態のままであることが示されていることを描いている。この間隔では、バッファ占有率はゼロである。同じ時間間隔についてのネットワーク帯域幅プロット４０１は、良好な（１００％など）帯域幅の可用性を示している。図４のバッファ占有率プロット４００は、１秒毎にいくつのバッファ占有率報告２０２（２）が変換マネージャ２１２に情報を提供するかについて示すためのものではない。しかし、上記で示したように、オーディオバッファ２０６（１）の占有率が比較的高い（８０％より高い占有など）時間の間は、オーディオバッファ２０６（１）の占有率が低い、および／またはオーディオバッファ２０６（１）が使い果たされる場合よりも少ない報告が、再生装置１０４からホスト装置１０２に送信され得る。
【００２９】
時間間隔４０４（すなわち０．５から１．０秒）で、バッファ占有率プロット４００は、バッファ占有率報告２０２（２）により、再生装置１０４上のオーディオバッファ２０６（１）の占有率のパーセントが急速に低下していることが示されていることを描いている。オーディオバッファ２０６（１）の占有率レベルのマイナスの占有率が存在する。意外なことではないが、それと同じ時間間隔のネットワーク帯域幅プロット４０１は、帯域幅の可用性（１００％から５０％など）の低下を描いている。時間間隔４０６で、バッファ占有率のパーセントは、直前の時間間隔のようなかなりの率ではないが、低下し続ける。時間間隔４０８で、バッファ占有率のパーセントは、低下が止まり、約３０％でとどまる。同様に、残りの図４の時間間隔（４１０、４１２、４１４および４１６）は、オーディオバッファ２０６（１）の占有率のパーセント、および占有率および／または回復率の例示的な変化を図示している。ネットワーク帯域幅プロット４０１は、間隔４０４から間隔４１２までの間低下した帯域幅の可用性を示し、この間隔４１２の後に、ネットワーク帯域幅の可用性が１００％まで上昇することを描いていることに留意されたい。
【００３０】
図５、６および７に、図３の例示的なＧＯＰビデオフレームシーケンス３００、およびこうしたフレームシーケンスが、再生装置１０４上のオーディオバッファ２０６（１）の占有率レベルの変化に応答して、ホスト装置１０２上の変換マネージャ２１２およびトランスレータ２１４によってどのように変更され得るかを示す。一般に、図５、６および７は、トランスレータ２１４が、バッファ占有率報告２０２に応答して変換マネージャ２１２によって指示される通りに、それぞれ異なるフレームタイプ（すなわちＢ、ＰおよびＩフレーム）をどのように選択的に除去するかを示している。図５、６および７について、図４のチャートを参照して以下に述べる。図４は、オーディオバッファ２０６（１）の占有率レベルの変化率、ならびにオーディオバッファ２０６（１）の占有率レベルの絶対変化を示すのに有用であり、この変化に対して、変換マネージャ２１２およびトランスレータ２１４は応答する。たとえば、変換マネージャ２１２は、オーディオバッファ２０６（１）の占有率がある最小閾値に達するときに応答して、それぞれ異なるフレームタイプを除去し得る。
【００３１】
図５のビデオフレームシーケンス５００は、オーディオバッファ２０６（１）が使い果たされようとしていることを示すバッファ占有率報告２０２（２）に応答して、ＢフレームがどのようにＧＯＰビデオフレームシーケンス３００などのメディアコンテンツのストリームから選択的に除去され得るかについて示している。変換マネージャ２１２は、バッファ占有率報告２０２（２）によって示される占有率レベルの変化率と、占有率レベルの絶対値の両方の閾値レベルに応答し得る。図４に関して上記で論じたように、バッファ占有率プロット４００の時間間隔４０４でオーディオバッファ２０６（１）が使い果たされようとしていることの表示が存在する。このシナリオでは、変換マネージャ２１２は、時間間隔４０４で示されるようなオーディオバッファ２０６（１）の占有率レベルの低下（すなわち占有）を示す１つまたは複数のバッファ占有率報告２０２（２）を受信する。バッファ占有率のこうした低下は、ネットワーク帯域幅プロット４０１によって示されるようにネットワーク帯域幅の可用性を結果として制限することになる、ネットワーク１０６の輻輳によってもたらされると見なされる。
【００３２】
メディアバッファ２０６の占有率のこうした低下に応答して、変換マネージャ２１２は、トランスレータ２１４に、コンテンツの送信／ストリーミングの前に、特定のタイプのビデオフレームをメディアコンテンツから選択的に除去するよう指示する。トランスレータ２１４は、ホスト装置がメディアコンテンツをストリーミングする方法を、最大フレーム伝送レベル（full frame transmission level）から低減フレーム伝送レベル（reduced frame transmission level）に変更することができ、したがって、ストリーミングメディアコンテンツのビットレートを変更する（すなわち下げる）。（たとえばプロット４００の傾きによって示されるような）オーディオバッファ２０６（１）の占有率の度合いに応じて、変換マネージャ２１２は、トランスレータ２１４に、それぞれ異なるタイプのビデオフレームを様々な低減フレーム伝送レベルに選択的に低下させるよう指示し得る。フレームタイプは、この場合も同様にオーディオバッファ２０６（１）の占有率の度合いに応じて、１度に１つのレベルを選択的に除去されることができ、または複数のレベルが一度に除去され得る。低減フレーム伝送レベルは、「ＩおよびＰフレームレベル」５００（すなわち、すべてのＢタイプフレームが除去される）、「Ｉフレームだけのレベル」５０２（すなわち、すべてのＢおよびＰタイプフレームが除去される）、ならびに、「ｎ番Ｉフレームレベル」５０４（すなわち、すべてのＢおよびＰタイプフレームが、除去されるｎ個に１つのＩフレームと共に除去される）を含む。異なる低減フレーム伝送レベルに下げるフレームタイプの各除去によって、ストリーミングメディアコンテンツのビットレートのそれに対応する低下がもたらされる。
【００３３】
したがって、図４を再び参照すると、変換マネージャ２１２は、たとえば時間間隔４０４でオーディオバッファ２０６（１）が使い果たされようとしていると判断する場合、トランスレータ２１４に、Ｂタイプビデオフレームを選択的に除去することによってビデオフレーム伝送レベルを最大の「Ｉ、ＰおよびＢフレームレベル」３００から「ＩおよびＰフレームレベル」５００に下げるように指示することによって対処し得る。この対処は、図４の時間間隔４０６で示すように、オーディオバッファ２０６（１）の占有率の減少をもたらし得る。ビデオフレームの「Ｉフレームだけのレベル」５０２（すなわち、すべてのＢおよびＰタイプフレームが除去される）へのさらなる除去によって、図４の時間間隔４０８に示すように、オーディオバッファ２０６（１）の占有の停止がもたらされ得る。
【００３４】
図６に、図５に示す低減フレーム伝送レベルの一部についてのより明確な図を提供する。この図では、除去されるタイプのビデオフレームが、図５に示すように単に線を引いて消されているのではなく、フレームシーケンスから取り除かれている。したがって、「ＩおよびＰフレームレベル」６００では、すべてのＢタイプフレームが除去され、および示されておらず、「Ｉフレームだけのレベル」６０２では、すべてのＢおよびＰタイプフレームが除去され、および示されておらず、「ｎ番のＩフレームレベル」６０４では、すべてのＢおよびＰ、ならびにｎ番目のＩフレーム（すなわちこの例では、「１つおき」のＩフレーム）が除去され、および示されていない。
【００３５】
図７に、図６に示すものに類似のフレームシーケンス（すなわち３００、６００および６０２）の進行を示す。この図では、ストリーミングメディアコンテンツのビットレートが、オーディオバッファ２０６（１）が使い果たされてているときに、フレームタイプをストリーミングコンテンツから選択的に除去することによって低減フレーム伝送レベルに下げられている。さらに、図７は、ストリーミングメディアコンテンツが低減フレーム伝送レベルに下げられた後に、変換マネージャ２１２およびトランスレータ２１４がどのようにネットワーク１０６をテストするか、またさらには、低減フレーム伝送レベルを元のレベルに戻すために、除去されたフレームタイプがどのようにストリーミングメディアコンテンツ内に再び挿入されるかについても示している。ネットワーク１０６をテストして、その帯域幅の可用性が、オーディオバッファ２０６（１）のさらなる占有を引き起こさずに、除去されたフレームタイプをストリーミングメディアコンテンツ内に再び挿入することに対処できるほど十分に回復したかどうか判断する。十分な帯域幅があるかどうかネットワーク１０６をテストしないと、メディアストリームの伝送レベルの急上昇（「Ｉフレームだけのレベル」６０２から「ＩおよびＰフレームレベル」６００へなど）が、オーディオバッファ２０６（１）の突然の占有を引き起こすことがあり、それによって、ビデオバッファ２０６（２）が空にされ、再生装置上のビデオ再生の休止がもたらされ得る。
【００３６】
図４を再び参照すると、変換マネージャ２１２は、時間間隔４０８で示すようにオーディオバッファ２０６（１）の占有が停止したと判断すると、以下で論じる、２つの結果のうちの１つが検出されるまで、増加していくレートでパディング用のデータパケット（図７中に「Ｄ」フレームとして示す）をストリームメディアコンテンツ内に挿入するようトランスレータ２１４に指示し得る。パディング用のデータパケット（「Ｄ」フレーム）は、ビデオデータを含まないダミーのパケットである。もっと正確にいえば、ダミーのパケットは、パディング用パケットが挿入されるときにメディアストリームのビットレートを単に上昇させる不要データを含む。
【００３７】
ネットワーク１０６が依然として輻輳している（すなわち帯域幅が制限される）場合、ますます多くのパディング用のデータパケットをメディアストリーム内に挿入すると、結局、オーディオバッファ２０６（１）のさらなる占有がもたらされる。これは、パディング用のデータパケットが乏しいネットワーク帯域幅を消費し尽し、それによって、オーディオバッファ２０６（１）内に入るオーディオデータ２０９の量がさらに減らされるために生じる。パディング用のデータパケットは、メディアバッファ２０６内に格納されず、したがって、ネットワークの輻輳時にオーディオバッファ２０６（１）内に入るオーディオデータ２０９の量が減らされる以外は、オーディオバッファ占有率レベルに対するその他の効果をもたないことに留意されたい。この第１の起こり得る結果は、たとえば、図４の時間間隔４１０に示されており、そこで、変換マネージャ２１２は、パディング用のデータパケットの挿入がオーディオバッファ２０６（１）のさらなる占有を引き起こしたと判断する。この場合、変換マネージャ２１２は、図４の時間間隔４１２に示されるように、オーディオバッファ２０６（１）のさらなる占有を回避するために、パディング用のデータパケットの挿入を停止する。
【００３８】
ますます多くのパディング用データパケットをメディアストリーム内に挿入することの第２の起こり得る結果は、ネットワーク帯域幅の可用性の回復時に生じる。この状況では、ますます多くのパディング用データパケットをメディアストリーム内に挿入すると、結局、ホスト装置１０２がメディアコンテンツのストリームとパディング用データとを出力することになり、それらを組み合わせたビットレートは、次に最も高い（next highest）ビデオフレーム伝送レベルのビットレートに等しい。さらに、オーディオバッファ２０６（１）の占有率レベルは、ネットワークがパディング用データパケット、およびメディアコンテンツのストリームに対処できるほど十分な帯域幅を有しているので、さらに低減されない（また増加し得る）。変換マネージャ２１２は、パディング用データパケットと、ビデオフレーム伝送の現在のレベルとの両方に対処できるほど十分なネットワーク帯域幅が使用可能であると判断すると、オーディオバッファ２０６（１）のさらなる占有はないと確信して、ビデオフレーム伝送のレベルを（たとえば「Ｉフレームだけのレベル」６０２から「ＩおよびＰフレームレベル」６００に）上げることができる。この第２の起こり得る結果は、たとえば、図４の時間間隔４１２に示されており、そこで、変換マネージャ２１２は、パディング用データパケットの挿入によってオーディオバッファ２０６（１）のさらなる占有がもたらされていないと判断する。この場合、変換マネージャ２１２は、パディング用データパケットの挿入を停止し、ビデオフレーム伝送のレベルを（たとえば「Ｉフレームだけのレベル」６０２から「ＩおよびＰフレームレベル」６００に）上げる。一般に、十分なネットワーク帯域幅の可用性があると判断されると、前に除外されたタイプのビデオフレームが、メディアストリームに再び挿入される。
【００３９】
伝送されるメディアコンテンツが、１倍の（１ｘ）再生レートより大きいレートで伝送され得るファイルコンテンツである場合（すなわち上述の第１メディアシナリオ）、ビデオフレーム伝送レベルを上げると、図４の時間間隔４１４および４１６に示すように、占有率レベルの回復がもたらされ得る。しかし、メディアコンテンツがライブである場合（すなわち上述の第２メディアシナリオ）、一倍の（１ｘ）再生レートより大きいレートでコンテンツを伝送する方法はなく、したがって、オーディオバッファ２０６（１）の占有率レベルは、それが以前に占有していたレベルを超えて増加し得ない。したがって、そのレベルは、間隔４１２で示すレベルにとどまる。
【００４０】
図７に、帯域幅の可用性についてネットワークをテストするために、パディング用データパケットを段階的に増加させることについて示す。たとえば、「Ｉフレームだけ」の伝送レベル６０２から、ビデオシーケンス７００およびビデオシーケンス７０２に示すように、ますます多くのパディング用データパケット（「Ｄ」フレーム）が、メディアコンテンツのストリーム内に追加される。変換マネージャ２１２は、「Ｉフレームだけ」の伝送レベル６０２と、パディング用データパケットとの両方に対処できるほどに十分に使用可能なネットワーク帯域幅があると判断すると、変換マネージャは、前に除外されたタイプのビデオフレームを再び挿入して、ビデオフレーム伝送レベルを「Ｉフレームだけのレベル」６０２から「ＩおよびＰフレームのレベル」６００に上げる。同様に、変換マネージャ２１２は、ネットワーク１０６がビデオシーケンス７０６および７０８において挿入されるパディング用データパケットの増加したビットレートに対処することができると判断すると、ビデオフレーム伝送レベルを「ＩおよびＰフレームのレベル」６００から最大の「Ｉ、ＰおよびＢフレームのレベル」３００に上げる。
【００４１】
低減されたビデオフレーム伝送レベルでは、上述したように、すべてのオーディオデータパケットが、ホスト装置１０２によって送信され、再生装置１０４によって再生され続ける。これは、ユーザのための一貫したオーディオ体験を維持し、またオーディオデータのビットレートが比較的に低いので可能である。ビデオ体験は、メディアバッファ２０６内でビデオフレームを複製し、および／または持続させることによって、低減されたビデオフレーム伝送レベルでも再生装置１０４上で維持され得る。ビデオフレームの複製および持続については、よく知られており、さらに論じない。バッファ占有率監視、バッファ占有率報告２０２、およびホスト装置１０２上の選択的フレーム除去と結合されたこうしたプロセスによって、かなりのネットワーク輻輳の最中でも、再生全体を通して比較的に安定したリアルタイムのビデオ体験が提供される。
【００４２】
（例示的な方法）
ネットワーク１０６を介してホストコンピュータ装置１０２から再生コンピュータ装置１０４にストリーミングされるメディアコンテンツを変換（すなわちビットレート変換）するための例示的な方法について、図８、９および１０のフローチャートを主に参照して次に述べる。この諸方法は、図１〜７に関して上記で論じた例示的な諸実施形態に適用される。１つまたは複数の方法が、フローチャート、およびフローチャートのブロックに関連するテキストを用いて開示されているが、説明する諸方法の要素は、それが提示される順序で必ずしも実施される必要はなく、また代替の順序によって類似の利点がもたらされ得ることを理解されたい。さらに、この諸方法は、排他的なものではなく、単独で実施することも、別のものと組み合わせて実施することもできる。説明する諸方法の要素は、たとえば、ＡＳＩＣ（Application Specific Integrated Circuits：特定用途向け集積回路）上のハードウェア論理ブロック、またはプロセッサ読取り可能記憶媒体上で定義されたプロセッサ読取り可能命令の実行を含めて、任意の適切な手段によって実施され得る。
【００４３】
本明細書では、「プロセッサ読取り可能記憶媒体」は、プロセッサによる使用または実行のための命令を含み、格納し、通信し、伝播しまたは移送することができる任意の手段であり得る。プロセッサ読取り可能記憶媒体は、それだけに限らないが、電子、磁気、光、電磁気、赤外線、または半導体のシステム、機器、装置または伝播媒体であり得る。プロセッサ読取り可能記憶媒体のより具体的な例には、他にもあるが特に、１つまたは複数のワイヤを含む電気接続（電子）、ポータブルコンピュータディスケット（磁気）、ランダムアクセスメモリ（ＲＡＭ：random access memory）（磁気）、読出し専用メモリ（ＲＯＭ：read-only memory）（磁気）、消去可能プログラマブル読出し専用メモリ（ＥＰＲＯＭ：erasable programmable-read-only memoryまたはフラッシュメモリ）、光ファイバ（光）、再書込み可能コンパクトディスク（ＣＤ−ＲＷ：rewritable compact disc）（光）、およびポータブルコンパクトディスク読出し専用メモリ（ＣＤＲＯＭ：compact disc read-only memory）（光）が含まれる。
【００４４】
方法８００のブロック８０２で、メディアストリームが、ネットワーク１０６を介してメディア再生装置１０４に送信される。そのメディアストリームは、ホスト装置１０２から送信され、オーディオ／ビデオ、および／またはビデオコンテンツを含む。ブロック８０４で、ホスト装置１０２は、ネットワーク帯域幅の可用性に関するフィードバックデータを受信する。こうしたフィードバックデータは、たとえばネットワーク１０６を介してデータフローを監視するサーバなど、様々なリソースから生じ得る。こうしたフィードバックデータのより具体的な一例は、再生装置１０４から受信されるバッファ占有率報告２０２である。バッファ占有率報告２０２は、再生装置１０４上のオーディオバッファ２０６（１）の占有率レベルを示す情報を含む。
【００４５】
バッファ占有率報告２０２は、１秒に１回など、定期的に受信されることができ、またはネットワーク帯域幅の可用性によってさまざまなレートで受信され得る。たとえば、好ましいネットワーク帯域幅状況では、再生装置１０４上のオーディオバッファ２０６（１）は良好な状態（８０％より高い占有など）であり、再生装置１０４上のバッファモニタ２１０は、低頻度で（１秒当たり１報告など）、ホスト装置１０２にバッファ占有率報告２０２を送信することができる。しかし、ネットワークの輻輳があり、ネットワーク帯域幅の可用性が制限される場合、バッファの状態が劣化することがあり（８０％より低い占有、６０％より低い占有、４０％より低い占有など）、バッファモニタ２１０は、バッファ占有率報告２０２の頻度を増加させることができる。ホスト装置１０２がバッファ占有率報告２０２を受信する頻度を増加させることによって、ホスト装置１０２は、こうしたネットワーク帯域幅制限をより早く発見し、より迅速に応じることができる。
【００４６】
方法８００のブロック８０６で、ホスト装置１０２は、フィードバックデータ（すなわちバッファ占有率報告２０２）に応答して、特定のタイプのビデオフレームをメディアストリームから除外する。ホスト装置１０２上の変換マネージャ２１２は、バッファ占有率報告２０２内に示されるバッファ占有率に基づいて、ネットワーク帯域幅の可用性を推定する。すなわち、低いネットワーク帯域幅は、占有されたオーディオバッファ２０６（１）を示すバッファ占有率報告から判断され、良好なまたは高い帯域幅は、オーディオバッファ２０６（１）が良好な状態であり、または占有されていない（８０％より大きい占有など）ことを示すバッファ占有率報告から判断される。
【００４７】
複数のタイプのビデオフレームをメディアストリームから除外することは、使用可能なネットワーク帯域幅についての推定に基づいて、特定のタイプのビデオフレーム（デルタビデオフレーム、キービデオフレームなど）を選択的に除外することである。複数のタイプのビデオフレームをメディアストリームから除外すると、メディアストリームの伝送が、最大フレーム伝送レベル（すなわち、すべてのタイプのビデオフレームが伝送される）から低減フレーム伝送レベル（すなわち、すべてのタイプより少ないビデオフレームが伝送される）に変更される。したがって、ホスト装置１０２上の変換マネージャ２１２は、オーディオバッファ２０６（１）が使い果たされようとしていると判断すると、トランスレータ２１４に、Ｂタイプのビデオフレームを選択的に除去することによってビデオフレーム伝送レベルを最大の「Ｉ、ＰおよびＢフレームレベル」３００から「ＩおよびＰフレームレベル」５００に下げるよう指示することによって対処することができる（図４〜６）。複数のタイプのビデオフレームのさらなる除外には、たとえば、すべてのＢおよびＰデルタタイプフレームが除外される「Ｉフレームだけのレベル」５０２、ならびにすべてのＢおよびＰデルタタイプフレームと、ｎ番目のＩタイプフレームとが除外される「ｎ番Ｉフレームレベル」６０４が含まれる。
【００４８】
方法８００のブロック８０８で、特定のタイプのビデオフレームがメディアストリームから除外された後に、ネットワーク帯域幅の可用性がテストされる。最初に、伝送は、最大フレーム伝送レベルで（すなわち、すべてのタイプのビデオフレームが伝送される）、および初期ビットレートで行われる。特定のタイプのビデオフレームを除外すると、伝送は、低減されたフレーム伝送レベルで、および低減されたビットレートで行われる。複数のタイプのビデオフレームが除外された後にネットワーク帯域幅の可用性をテストするために、ますます多くのパディング用データパケットが、低減フレーム伝送レベルで送信されるメディアストリーム内に挿入される（すなわち、トランスレータ２１４によって、変換マネージャ２１２による指示どおりに行われる）。パディング用データパケットは、メディアストリームの低減ビットレートを増加させる。再生装置１０４上のバッファ２０６が使い果たされようとしているかどうか判断するために、パディング用データパケットの挿入の間、フィードバックデータ（すなわちバッファ占有率レポート２０２）が継続的に監視される。
【００４９】
方法８００は、図９のブロック８１０に続く。ブロック８１０で、テストによって、ネットワーク帯域幅がもはや制限されていないことが明らかに示されている場合、除外されたタイプのビデオフレームがメディアストリーム内に再び挿入される。すなわち、ますます多くのパディング用データパケットの挿入によって、オーディオバッファ２０６（１）を占有させずに、低減ビットレートが初期ビットレートまで増加する場合、ホスト装置１０２（変換マネージャ２１２）は、ネットワーク帯域幅が再び初期ビットレートに対処できるほど十分にあることを知る。したがって、トランスレータ２１４は、（変換マネージャ２１２によって指示されるように）除外されたタイプのビデオフレームをメディアストリーム内に再び挿入する。この再挿入は、現在の低減フレーム伝送レベルが何かによって様々なレベルまたはタイプのビデオフレーム（ｎ番Ｉフレーム、Ｐフレーム、Ｂフレーム、ＰおよびＢフレームなど）の再挿入を伴い得ることに留意されたい。この点で、「初期ビットレート」は、最大フレーム伝送レベルではなく、次に最も高い低減フレーム伝送レベルのビットレートであるかもしれないことにも留意されたい。したがって、複数のレベルまたはタイプのビデオフレームが除外されている場合、その除外されたタイプのビデオフレームは、初期ビットレートが単に次に最も高い低減フレーム伝送レベルのビットレートである状態で、１度に１つのレベルまたはタイプのメディアストリームに再び戻されることもできる。
【００５０】
ブロック８１２で、方法８００は、パディング用データパケットの挿入が、除外されたタイプのビデオフレームがメディアストリームに再び挿入されるのと同時に終了されることを示している。
【００５１】
図１０は、ネットワーク１０６を介してホストコンピュータ装置１０２から再生装置１０４にストリーミングされるメディアコンテンツを変換（すなわちビットレート変換）するために、再生装置１０４から実施される代替方法１０００を示すフローチャートである。方法１０００のブロック１００２で、再生装置１０４は、最大フレーム伝送レベル（すなわち、メディアコンテンツ内のすべてのタイプのビデオフレームが送信される）で、ホスト装置１０２からストリーミングメディアコンテンツを受信する。ブロック１００４で、再生装置１０４は、ホスト装置１０２にバッファ占有率報告を送信する。再生装置１０４上のバッファモニタ２１０は、オーディオバッファ２０６（１）を監視して、データ占有率のレベルを判断する。バッファモニタ２１０は、バッファの占有率レベルに関する情報を含むバッファ占有率報告を生成する。
【００５２】
ブロック１００６で、バッファ占有率報告を送信した後に、再生装置１０４は、低減フレーム伝送レベル（すなわち、１つまたは複数のタイプのビデオフレームが除外されている）でストリーミングメディアコンテンツを受信し始める。これは、ホスト装置１０２がバッファ占有率報告２０２から、オーディオバッファ２０６（１）が使い果たされようとしていて、ネットワーク帯域幅制限の問題がある可能性が高いと判断する結果としてもたらされることに留意されたい。
【００５３】
ブロック１００８で、再生装置１０４上のプレーヤーアプリケーション２０４は、最大フレーム伝送レベルで受信されたストリーミングメディアコンテンツを再生する。プレーヤーアプリケーション２０４は、ブロック１０１０で示すように、低減フレーム伝送レベルで受信されたストリーミングメディアコンテンツからのビデオフレームを複製することもできる。ブロック１０１２で、再生装置１０４上のプレーヤーアプリケーション２０４は、複製されたビデオフレームを、低減フレーム伝送レベルで受信されたストリーミングメディアコンテンツと共に再生する。
【００５４】
（例示的なコンピューティング環境）
図１１に、図１〜１０を参照して上記で論じたホスト装置１０２および再生装置１０４などのコンピュータ装置を実装するのに適した例示的なコンピューティング環境を示す。図１１にはある特定の構成が示されているが、こうしたコンピューティング装置は、他のコンピューティング構成で実装されることもできる。
【００５５】
コンピューティング環境１１００は、コンピュータ１１０２の形の汎用コンピューティング装置を含む。コンピュータ１１０２の構成要素は、それだけに限らないが、１つまたは複数のプロセッサまたは処理装置１１０４、システムメモリ１１０６、ならびにプロセッサ１１０４を含めた様々なシステム構成要素をシステムメモリ１１０６に結合するシステムバス１１０８を含み得る。
【００５６】
システムバス１１０８は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレイテッドグラフィックスポート、および様々なバス構造のいずれかを使用したプロセッサまたはローカルバスを含めた、複数のタイプのバス構造のいずれかのうちの１つまたは複数を表す。システムバス１１０８の一例は、メザニンバスとも呼ばれる周辺コンポーネント相互接続（ＰＣＩ：Peripheral Component Interconnect）バスであろう。
【００５７】
コンピュータ１１０２は、様々なコンピュータ読取り可能記憶媒体を含む。こうした媒体は、コンピュータ１１０２からアクセスすることができる任意の使用可能な媒体とすることができ、揮発性と不揮発性の媒体、取外し可能と取外し不可能な媒体の両方を含む。システムメモリ１１０６は、ランダムアクセスメモリ（ＲＡＭ）１１１０などの揮発性メモリ、および／または読出し専用メモリ（ＲＯＭ）１１１２などの不揮発性メモリの形のコンピュータ読取り可能記憶媒体を含む。起動時などにコンピュータ１１０２内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム（ＢＩＯＳ：basic input/output system）１１１４は、ＲＯＭ１１１２に格納される。ＲＡＭ１１１０は、処理装置１１０４から即時にアクセス可能であり、および／またはそれによる操作を現在受けているデータおよび／またはプログラムモジュールを含む。
【００５８】
コンピュータ１１０２は、その他の取外し可能／取外し不可能、揮発性／不揮発性のコンピュータ記憶媒体をも含み得る。例示するために、図１１に、取外し不可能な不揮発性の磁気媒体（図示せず）から読み出し、そこに書き込むためのハードディスクドライブ１１１６、取外し可能な不揮発性の磁気ディスク１１２０（「フロッピー（登録商標）ディスク」など）から読み出し、そこに書き込むための磁気ディスクドライブ１１１８、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取外し可能な不揮発性の光ディスク１１２４から読み出し、および／またはそこに書き込むための光ディスクドライブ１１２２を示す。ハードディスクドライブ１１１６、磁気ディスクドライブ１１１８および光ディスクドライブ１１２２はそれぞれ、１つまたは複数のデータメディアインターフェース１１２５によってシステムバス１１０８に接続される。あるいは、ハードディスクドライブ１１１６、磁気ディスクドライブ１１１８および光ディスクドライブ１１２２は、ＳＣＳＩインターフェース（図示せず）によってシステムバス１１０８に接続され得る。
【００５９】
ディスクドライブおよびその関連のコンピュータ読取り可能記憶媒体によって、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびコンピュータ１１０２のためのその他のデータの、不揮発性の記憶域がもたらされる。この例は、ハードディスク１１１６、取外し可能な磁気ディスク１１２０、および取外し可能な光ディスク１１２４を示しているが、磁気カセット、またはその他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）またはその他の光記憶装置、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ：electrically erasable programmable read-only memory）など、コンピュータによってアクセス可能なデータを格納することができるその他のタイプのコンピュータ読取り可能記憶媒体を使用して、この例示的なコンピューティングシステムおよび環境を実装することもできることを理解されたい。
【００６０】
たとえば、オペレーティングシステム１１２６、１つまたは複数のアプリケーションプログラム１１２８、その他のプログラムモジュール１１３０、およびプログラムデータ１１３２を含めた、任意の数のプログラムモジュールが、ハードディスク１１１６、磁気ディスク１１２０、光ディスク１１２４、ＲＯＭ１１１２、および／またはＲＡＭ１１１０内に格納され得る。こうしたオペレーティングシステム１１２６、１つまたは複数のアプリケーションプログラム１１２８、その他のプログラムモジュール１１３０、およびプログラムデータ１１３２（あるいは、その何れかの組合せ）はそれぞれ、ユーザネットワークアクセス情報のキャッシング方式の一実施形態を含み得る。
【００６１】
コンピュータ１１０２は、通信媒体と見なされる様々なコンピュータ／プロセッサ読取り可能記憶媒体を含み得る。通信媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、または搬送波やその他のトランスポート機構などの被変調データ信号内のその他のデータを実装し、また任意の情報配信媒体を含む。用語「被変調データ信号」は、信号の情報を符号化するなどの方法で、その特性の１つまたは複数が設定され、または変更された信号を意味する。限定のためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、無線周波数（ＲＦ）、赤外線などの無線媒体、およびその他の無線媒体が含まれる。上記内容のいずれかの組合せもまた、コンピュータ読取り可能記憶媒体の範囲内に含まれる。
【００６２】
ユーザは、キーボード１１３４、およびポインティング装置１１３６（たとえば「マウス」）などの入力装置を用いて、コンピュータシステム１１０２にコマンドおよび情報を入力することができる。その他の入力装置１１３８（具体的には図示せず）には、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、シリアルポート、スキャナ、および／またはその類似物が含まれ得る。これらのおよびその他の入力装置は、システムバス１１０８に結合された入出力インターフェース１１４０を介して処理装置１１０４に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ：universal serial bus）などのその他のインターフェースおよびバス構造によって接続されることもできる。
【００６３】
モニタ１１４２またはその他のタイプの表示装置もまた、ビデオアダプタ１１４４などのインターフェースを介してシステムバス１１０８に接続され得る。その他の出力周辺装置は、モニタ１１４２に加えて、入出力インターフェース１１４０を介してコンピュータ１１０２に接続され得るスピーカ（図示せず）およびプリンタ１１４６などの構成要素を含み得る。
【００６４】
コンピュータ１１０２は、リモートコンピューティング装置１１４８などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で動作することができる。例を挙げると、リモートコンピューティング装置１１４８は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、またはその他の一般的なネットワークノードなどであり得る。リモートコンピューティング装置１１４８は、コンピュータシステム１１０２に関して本明細書で述べた要素および特徴の多くまたはすべてを含み得るポータブルコンピュータとして示されている。
【００６５】
コンピュータ１１０２とリモートコンピュータ１１４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ：local area network）１１５０、および一般的な広域ネットワーク（ＷＡＮ：wide area network）１１５２として示されている。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。ＬＡＮネットワーキング環境内で実装される場合、コンピュータ１１０２は、ネットワークインターフェースまたはアダプタ１１５４を介してローカルネットワーク１１５０に接続される。ＷＡＮネットワーキング環境内で実装される場合、コンピュータ１１０２は、モデム１１５６、あるいは広域ネットワーク１１５２を介して通信を確立するその他の手段を含む。コンピュータ１１０２の内部にあることも、外部にあることもあるモデム１１５６は、入出力インターフェース１１４０またはその他の適切な機構を介してシステムバス１１０８に接続され得る。図示するネットワーク接続は例示的なものであり、コンピュータ１１０２とリモートコンピュータ１１４８の間の通信リンクを確立するその他の手段が使用され得ることを理解されたい。
【００６６】
コンピューティング環境１１００で示されるようなネットワーク化された環境内では、コンピュータ１１０２に関して示したプログラムモジュールまたはその一部は、リモートメモリ記憶装置内に格納され得る。例を挙げると、リモートアプリケーションプログラム１１５８は、リモートコンピュータ１１４８のメモリ装置内に常駐する。図示するために、本明細書では、アプリケーションプログラム、およびオペレーティングシステムなどのその他の実行可能プログラムコンポーネントは別個のブロックとして示されているが、こうしたプログラムおよびコンポーネントは、それぞれ異なるときに、コンピュータシステム１１０２のそれぞれ異なる記憶コンポーネント内に常駐し、コンピュータのデータプロセッサによって実行されることが理解されよう。
【００６７】
（結論）
本発明について、構造上の特徴および／または方法論的な行為に特有の言語で説明してきたが、添付の特許請求の範囲中で定める本発明は、説明した特定の特徴または行為に必ずしも限定されないことを理解されたい。むしろ、その特定の特徴または行為は、特許請求の範囲に記載される本発明を実施する例示的な形として開示されている。
【図面の簡単な説明】
【００６８】
【図１】ネットワークを介してホストコンピュータ装置から再生コンピュータ装置にストリーミングされるメディアコンテンツを変換するのに適した例示的な環境を示す図である。
【図２】ネットワークを介して再生コンピュータ装置にメディア／ビデオコンテンツをストリーミングし、コンテンツのビデオ成分を変換するように構成されたホスト装置の例示的な一実施形態を示す図である。
【図３】ピクチャー群（ＧＯＰ）と呼ばれるビデオフレームの例示的なシーケンスを示す図である。
【図４】ホスト装置がネットワークを介して再生装置にストリーミングメディアコンテンツを送信するときの、時間に対するメディアバッファの占有率のパーセントの例示的なプロットを示す図である。
【図５】例示的なＧＯＰビデオフレームシーケンス、およびこうしたフレームシーケンスが変換によってどのように変更され得るかを示す図である。
【図６】例示的なＧＯＰビデオフレームシーケンス、およびこうしたフレームシーケンスが変換によってどのように変更され得るかを示す図である。
【図７】例示的なＧＯＰビデオフレームシーケンス、およびこうしたフレームシーケンスが変換によってどのように変更され得るかを示す図である。
【図８】ネットワークを介してホストコンピュータ装置から再生コンピュータ装置にストリーミングされるメディアコンテンツを変換するための例示的な方法を示すフローチャートである。
【図９】ネットワークを介してホストコンピュータ装置から再生コンピュータ装置にストリーミングされるメディアコンテンツを変換するための例示的な方法を示すフローチャートである。
【図１０】ネットワークを介してホストコンピュータ装置から再生コンピュータ装置にストリーミングされるメディアコンテンツを変換するための例示的な方法を示すフローチャートである。
【図１１】図１〜１０を参照して論じたようなホストコンピュータ装置および再生コンピュータ装置を実装するのに適した例示的なコンピューティング環境を示す図である。
【図１】
2006060802.tif 000003
【図２】
2006060802.tif 000004
【図３】
2006060802.tif 000005
【図４】
2006060802.tif 000006
【図５】
2006060802.tif 000007
【図６】
2006060802.tif 000008
【図７】
2006060802.tif 000009
【図８】
2006060802.tif 000010
【図９】
2006060802.tif 000011
【図１０】
2006060802.tif 000012
【図１１】
2006060802.tif 000013
【外国語明細書】
2006060802000001.pdf