(57)【要約】  サーバーからクライアントへのメディアコンテンツのストリーミングを制御するための方法およびそれに対応する装置。コンピューティングデバイスは、メディアコンテンツの複数の可変ビットレートバージョンのそれぞれについて、メディアコンテンツの近づきつつある部分のビットレートを予測し、予測ビットレートならびにネットワーク帯域幅の測定基準を基準として使用して、クライアントに対してストリーム配信される可変ビットレートバージョンのうち一つを選択する。メディアコンテンツ全体で、この予測と選択の機能をスライディングウィンドウに基づき反復することにより、可変ビットレートバージョンの選択は劇的に変化する可能性があり、メディアコンテンツ全体を通してのビットレートの変動やネットワーク帯域幅の変動への順応に役立つ。【特許請求の範囲】
【請求項１】
サーバーからクライアントへのメディアコンテンツのストリーミングを制御するための方法であって、前記サーバーが、前記メディアコンテンツの複数の可変ビットレート（ＶＢＲ）バージョンに対するアクセス権を持ち、前記方法が、前記メディアコンテンツが前記サーバーから前記クライアントにストリーム配信されている間に、前記メディアコンテンツの連続的に発生する複数の部分のそれぞれについて、以下の機能を実行する過程を含む方法：
前記メディアコンテンツが前記クライアントによって受信される部分よりも前に、前記メディアコンテンツの一つ以上の前記ＶＢＲバージョンを特定する過程であって、前記特定が少なくとも部分的に、前記一つ以上のＶＢＲバージョンのそれぞれのメディアコンテンツの前記部分が帯域幅閾値よりも低いビットレートを持つことを判断することに基づく過程と、
前記メディアコンテンツの決定された前記一つ以上のＶＢＲバージョンから、前記メディアコンテンツの最高ビットレートのＶＢＲバージョンを選択する過程と、
前記メディアコンテンツの前記選択されたＶＢＲバージョンが、前記サーバーから前記クライアントにストリーム配信されるようにする過程とを含む方法。
【請求項２】
前記特定が、少なくとも部分的に前記クライアントでの再生バッファの占有レベルに基づく、請求項１に記載の方法。
【請求項３】
請求項１に記載の方法であって、前記クライアントによって受信される前記メディアコンテンツの前記部分よりも前に、前記メディアコンテンツの一つ以上の前記ＶＢＲバージョンを特定する過程が
前記複数のＶＢＲバージョンのそれぞれについて、前記メディアコンテンツの前記部分のビットレートの測定基準を予測する過程と、
前記複数のＶＢＲバージョンのそれぞれについて、前記メディアコンテンツの前記部分のビットレートの前記予測された測定基準が、前記帯域幅閾値よりも小さいかどうかを決定する過程とを含む方法。
【請求項４】
前記測定基準が平均値または最大値を含む、請求項３に記載の方法。
【請求項５】
請求項３に記載の方法であって、さらに、前記メディアコンテンツの前記複数の連続的に発生する部分のそれぞれについて、前記メディアコンテンツが前記サーバーから前記クライアントにストリーム配信されている間に：
前記サーバーと前記クライアントの間のネットワーク帯域幅の評価に基づき、前記帯域幅閾値を決定する過程を含む方法。
【請求項６】
前記帯域幅閾値の決定が、前記クライアントでの前記サーバーからのデータ到着レートを測定する過程と、少なくとも部分的に前記測定された到着レートに基づき前記帯域幅閾値を確立する過程とを含む、請求項５に記載の方法。
【請求項７】
前記メディアコンテンツの前記連続的に発生する部分が互いに重なり合い、前記メディアコンテンツに対するスライディングウィンドウを協調的に定義する、請求項５に記載の方法。
【請求項８】
前記スライディングウィンドウが、サイズ限界または時間限界である、請求項７に記載の方法。
【請求項９】
前記メディアコンテンツの前記連続的に発生する部分が、前記メディアコンテンツの相互排他的な部分である、請求項５に記載の方法。
【請求項１０】
前記メディアコンテンツの前記選択されたＶＢＲバージョンを前記サーバーから前記クライアントにストリーム配信させる過程が、前記サーバーに、前記メディアコンテンツの前記ＶＢＲバージョンの別のどれかのストリーミングから前記メディアコンテンツのうち前記選択されたＶＢＲバージョンのストリーミングに移行させる過程を含む、請求項１に記載の方法。
【請求項１１】
前記クライアントによって実行される、請求項１に記載の方法であって、
前記メディアコンテンツの前記選択されたＶＢＲバージョンを前記サーバーから前記クライアントにストリーム配信させる過程が、前記クライアントから前記サーバーに、前記サーバーが前記メディアコンテンツの前記選択されたＶＢＲバージョンを前記クライアントにストリーム配信するよう要求する制御信号を転送する過程を含む方法。
【請求項１２】
請求項１１に記載の方法であって、さらに、前記メディアコンテンツの前記複数の連続的に発生する部分のそれぞれについて、
前記クライアントにより、前記サーバーから前記クライアントへの通信のためのネットワーク帯域幅のリアルタイム測定基準としての前記帯域幅閾値を決定する過程を含む方法。
【請求項１３】
前記サーバーによって実行される、請求項１に記載の方法であって、
前記方法がさらに、前記クライアントからネットワーク帯域幅の測定基準を受信する過程を含み、前記帯域幅閾値が前記受信した測定基準に基づくものである方法。
【請求項１４】
前記メディアコンテンツをサーバーから前記デバイスにストリーミングする間に、前記メディアコンテンツの複数の連続的に発生する部分のそれぞれについて、デバイスに以下の機能を実行させるよう実行可能な命令をその上に格納した非一時的コンピュータ可読媒体であって、
前記サーバーから前記デバイスへの通信のためのネットワーク帯域幅を決定する過程と、
前記メディアコンテンツが前記デバイスにより受信される前記部分よりも前に、前記メディアコンテンツの複数の可変ビットレート（ＶＢＲ）バージョンのうち一つ以上を特定する過程であって、前記特定が少なくとも部分的に、前記決定されたネットワーク帯域幅よりも小さいかまたは等しいビットレートを持つ前記一つ以上のＶＢＲバージョンのそれぞれの部分にある前記メディアコンテンツの前記部分に基づく過程と、
前記メディアコンテンツの特定された前記一つ以上のＶＢＲバージョンから、前記メディアコンテンツの最高ビットレートのＶＢＲバージョンを選択する過程と、
前記サーバーに選択した前記メディアコンテンツの前記選択されたＶＢＲバージョンを前記デバイスにストリーム配信するよう要求する制御信号を前記サーバーに転送する過程が関与する方法。
【請求項１５】
前記特定がさらに、少なくとも部分的に、前記デバイスでの再生バッファの占有レベルに基づく、請求項１４の非一時的コンピュータ可読媒体。
【請求項１６】
前記デバイスが手持ち式の無線通信装置であり、前記非一時的コンピュータ可読媒体が前記デバイスのデータストレージを備えた、請求項１４の非一時的コンピュータ可読媒体。
【請求項１７】
前記機能がさらに以下を含む、請求項１４に記載の非一時的コンピュータ可読媒体であって、
前記メディアコンテンツのインデックスを受信し格納する過程を含み、前記インデックスが、時間に対する前記複数のＶＢＲバージョンのビットレートを表すデータを含み、また前記メディアコンテンツの一つ以上の前記ＶＢＲバージョンの特定が、前記インデックスを前記特定の基準として使用する過程を含む、非一時的コンピュータ可読媒体。
【請求項１８】
請求項１７の非一時的コンピュータ可読媒体であって、前記インデックス内の前記データが、前記複数のＶＢＲバージョンのそれぞれについて、前記ＶＢＲバージョンの連続的チャンクのサイズおよび持続時間を指定し、また前記特定のための基準として前記インデックスを使用する過程が、
前記インデックスから、前記メディアコンテンツの前記部分について時間当たりのチャンクのサイズの測定基準を決定する過程と、
前記決定された測定基準を前記メディアコンテンツの前記部分のビットレートの表現として使用する過程と、
前記メディアコンテンツの前記部分のビットレートの前記表現が前記決定されたネットワーク帯域幅より小さいかまたは等しい場合に、前記ＶＢＲバージョンが、前記メディアコンテンツの前記部分が前記決定されたネットワーク帯域幅よりも小さいかまたは等しいビットレートを持つものであることを確認する過程とを含む、非一時的コンピュータ可読媒体。
【請求項１９】
前記メディアコンテンツの前記部分について時間当たりのチャンクのサイズの前記測定基準が平均値または最大値を含む、請求項１８の非一時的コンピュータ可読媒体。
【請求項２０】
請求項１７の非一時的コンピュータ可読媒体であって、前記インデックス内の前記データが、各ＶＢＲバージョンについてメディアコンテンツの時間位置とメディアコンテンツのデータ位置の間のマッピングを指定し、また、前記特定のための基準として前記インデックスを使用する過程が、
前記インデックスから、前記メディアコンテンツの前記部分について時間範囲当たりのメディアコンテンツのデータサイズの測定基準を決定する過程と、
前記測定基準を前記メディアコンテンツの前記部分のビットレートの表現として使用する過程と、
前記メディアコンテンツの前記部分のビットレートの前記表現が前記決定されたネットワーク帯域幅より小さいかまたは等しい場合に、前記ＶＢＲバージョンが、前記メディアコンテンツの前記部分が前記決定されたネットワーク帯域幅よりも小さいかまたは等しいビットレートを持つものであることを確認する過程とを含む、非一時的コンピュータ可読媒体。
【請求項２１】
前記測定基準が平均値または最大値を含む、請求項２０の非一時的コンピュータ可読媒体。
【請求項２２】
前記サーバーから前記デバイスへの通信のためにネットワーク帯域幅を決定する過程が、前記デバイスでの前記サーバーからのデータの到着レートを測定する過程を含み、前記ネットワーク帯域幅が少なくとも部分的に前記測定された到着レートに基づく、請求項１４の非一時的コンピュータ可読媒体。
【請求項２３】
前記メディアコンテンツの前記連続的に発生する部分が互いに重なり合い、前記メディアコンテンツに対するスライディングウィンドウを協調的に定義する、請求項１４の非一時的コンピュータ可読媒体。
【請求項２４】
前記スライディングウィンドウがサイズ限界または時間限界である、請求項２３の非一時的コンピュータ可読媒体。
【請求項２５】
前記メディアコンテンツの前記連続的に発生する部分が相互排他的である、請求項１４の非一時的コンピュータ可読媒体。
【請求項２６】
前記制御信号が、前記メディアコンテンツの前記ＶＢＲバージョンのうち別の一つを前記デバイスにストリーム配信する過程から、前記メディアコンテンツのうち前記選択されたＶＢＲバージョンを前記デバイスにストリーム配信する過程へと移行するよう前記サーバーに要求する、請求項１４の非一時的コンピュータ可読媒体。
【請求項２７】
以下を含む、コンピューティングデバイス。
ネットワーク通信インターフェースと、
ユーザーインターフェースと、
プロセッサと、
データストレージと、
前記データストレージ内に格納され、少なくとも以下を含む機能を実行するために前記プロセッサによって実行可能なプログラム命令であって、
（ａ）前記ネットワーク通信インターフェースにより、前記コンピューティングデバイスからサーバーにストリーム配信されているメディアコンテンツを受信する過程と、
（ｂ）前記ユーザーインターフェースで、受信される前記メディアコンテンツを再生する過程と、
（ｃ）前記コンピューティングデバイスに前記サーバーからストリーム配信されている前記メディアコンテンツを受信しながら、周期的に（ｉ）前記サーバーから前記コンピューティングデバイスへの通信のためのネットワーク帯域幅の測定基準を決定する機能と、（ｉｉ）前記メディアコンテンツの複数のＶＢＲバージョンを特定し、その複数のＶＢＲバージョンから、前記決定されたネットワーク帯域幅よりも小さいかまたは等しい前記メディアコンテンツの次のスライディングウィンドウを越えるビットレートを持つ最高ビットレートＶＢＲバージョンを選択する過程と、および（ｉｉｉ）前記ネットワーク通信インターフェースによって、前記サーバーが前記選択したＶＢＲバージョンを前記コンピューティングデバイスにストリーム配信する要求を前記サーバーに転送する過程とを含む、コンピューティングデバイス。
【請求項２８】
請求項２７に記載のコンピューティングデバイスであって、
前記メディアコンテンツの前記再生中に、前記データストレージが前記メディアコンテンツのための再生バッファを定義し、
前記機能がさらに、前記再生バッファの占有レベルに基づき前記最高ビットレートのＶＢＲバージョンを選択する過程を含む、コンピューティングデバイス。
【請求項２９】
前記要求が、前記サーバーに、前記ＶＢＲバージョンのうち別の一つのストリーム配信から前記選択されたＶＢＲバージョンのストリーム配信に移行させることを目的とする、請求項２７のコンピューティングデバイス。
【請求項３０】
前記データストレージが前記メディアコンテンツのインデックスを保持し、前記インデックスが前記ＶＢＲバージョンの時間に対するビットレートを表現するデータを含み、また、前記メディアコンテンツの前記複数のＶＢＲバージョンを評価し、前記複数のＶＢＲバージョンから、前記メディアコンテンツの次のスライディングウィンドウ全体にわたり前記決定されたネットワーク帯域幅よりも小さいかまたは等しくなるビットレートを持つ最高ビットレートのＶＢＲバージョンを選択する過程が、前記メディアコンテンツの前記次のスライディングウィンドウ全体にわたり、前記メディアコンテンツの各ＶＢＲバージョンのビットレートを決定する基準として前記インデックスを使用する過程を含む、請求項２７のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
本明細書に別途指示のない限り、本セクションに記載した資料は、請求の範囲に対する従来技術ではなく、本セクションに含めることによる従来の技術としては認められない。
【０００２】
ネットワークおよびコンピューティング技術の進歩により、デバイスがネットワークサーバーからリアルタイムでストリーム配信されるメディアを受信して再生することは、今では一般的である。実際には、例えば、デバイスは、デバイスが特定のメディアのプレイアウトをストリーム配信するためのユーザー要求を受信できるユーザーインターフェースを提供するメディアプレーヤーについて、プログラムまたは他の方法でアレンジしうる。次に、メディアプレーヤーは、デバイスに合意済みのプロトコル（ハイパーテキスト転送プロトコル（ＨＴＴＰ）、リアルタイムストリーミングプロトコル（ＲＴＳＰ）、リアルタイム転送プロトコル（ＲＴＰ）、リアルタイム制御プロトコル（ＲＴＣＰ）、およびリアルタイムメッセージングプロトコル（ＲＴＭＰ）など）に従い、サーバーと相互作用させて、サーバーに特定のメディアをストリーム配信するよう要求しうる。応答してストリーム配信されたメディアをサーバーから受信すると、次にデバイスは、ユーザーが楽しめるようにユーザーインターフェースでメディアをプレイアウトする。
【発明の概要】
【０００３】
本書には、サーバーからのメディアストリーム配信の制御に関連する方法およびデバイスが開示されている。
【０００４】
一つの点で、例えば、サーバーからクライアントへのメディアコンテンツのストリーミングを制御するための方法が開示されている。実際には、サーバーは、メディアコンテンツの複数の可変ビットレート（ＶＢＲ）バージョンへのアクセスを持ちうる。次に、方法には、メディアコンテンツがサーバーからクライアントにストリーム配信されている間に、メディアコンテンツの複数の連続的に発生する部分のそれぞれについて、（ｉ）メディアコンテンツがクライアントによって受信される部分よりも前に、メディアコンテンツの一つ以上のＶＢＲバージョンを特定する過程であって、その特定が少なくとも部分的に、一つ以上のＶＢＲバージョンのそれぞれのメディアコンテンツの部分が、帯域幅閾値よりも低いビットレートを持つことを確認することに基づく機能と、（ｉｉ）確認済みのメディアコンテンツの一つ以上のＶＢＲバージョンから、最高ビットレートのメディアコンテンツのＶＢＲバージョンを選択する機能と、および（ｉｉｉ）選択したメディアコンテンツのＶＢＲバージョンがサーバーからクライアントにストリーム配信されるようにする機能とを実行することが関与しうる。
【０００５】
別の点で、サーバーからデバイスへのメディアコンテンツのストリーミング中に、メディアコンテンツの複数の連続的に発生する部分のそれぞれについて、（ｉ）サーバーからデバイスへの通信のためのネットワーク帯域幅を決定する機能と、（ｉｉ）メディアコンテンツがデバイスによって受信される部分よりも前に、メディアコンテンツの一つ以上の複数のＶＢＲバージョンを特定する機能であって、その特定が少なくとも部分的に確認済みのネットワーク帯域幅より小さいかまたは等しいビットレートを持つ一つ以上のＶＢＲバージョンのそれぞれにおけるメディアコンテンツの部分に基づく機能と、（ｉｉｉ）特定された一つ以上のメディアコンテンツのＶＢＲバージョンから、最高ビットレートのメディアコンテンツのＶＢＲバージョンを選択する機能と、（ｉｖ）サーバーに選択したメディアコンテンツのＶＢＲバージョンをデバイスにストリーム配信するよう要求する制御信号をサーバーに転送する機能とをデバイスに実行させるよう、実行可能な命令がその上に格納された非一時的コンピュータ可読媒体が開示されている。
【０００６】
さらに、また別の観点から、ネットワーク通信インターフェース、ユーザーインターフェース、プロセッサ、データストレージ、およびデータストレージ内に格納され、プロセッサによって様々な機能を実行するために実行可能なプログラム命令を含むコンピューティングデバイスが開示されている。機能には、（ａ）ネットワーク通信インターフェースによる、コンピューティングデバイスからサーバーにストリーム配信されているメディアコンテンツを受信する機能と、（ｂ）ユーザーインターフェースでの、受信中のメディアコンテンツを再生する機能と、（ｃ）コンピューティングデバイスにサーバーからストリーム配信されているメディアコンテンツを受信しながら、周期的に（ｉ）サーバーからコンピューティングデバイスへの通信のためのネットワーク帯域幅の測定値を決定する機能と、（ｉｉ）メディアコンテンツの複数のＶＢＲバージョンを評価して、複数のＶＢＲバージョンの中から、確認したネットワーク帯域幅よりも小さいかまたは等しいメディアコンテンツの次のスライディングウィンドウを越えるビットレートを持つ最高ビットレートＶＢＲバージョンを選択する機能と、（ｉｉｉ）ネットワーク通信インターフェースによって、サーバーが選択したＶＢＲバージョンをコンピューティングデバイスにストリーム配信する要求をサーバーに転送する機能とが含まれうる。
【０００７】
これらの、またその他の態様、利点、および代替案は、下記の詳細な記述を適切な場合に添付図面を参照しながら読むことにより、当業者にとってさらに明らかとなる。
【０００８】
さらに、当然のことながら、この要約セクションおよび本書の他の部分に記載された内容は、例としてのみの役目を果たすことが意図される。こうして、その他の配置およびその他の要素（例えば、マシン、インターフェース、機能、機能の順序、など）を代わりに使用することができ、また一部の要素をまとめて省略することもできる。さらに、本書に記載された多くの要素は、個別または分散コンポーネントとして、またはその他のコンポーネントと連動して、および様々な適切な組合せや位置で実装しうる。
【図面の簡単な説明】
【０００９】
【図１】図１は、メディアコンテンツの固定ビットレート（ＣＢＲ）バージョンの例のグラフである。
【図２】図２は、バージョン別の平均ターゲットビットレートを図示した、メディアコンテンツのＶＢＲバージョンの例のグラフである。
【図３】図３は、バージョン別の最大ターゲットビットレートを図示した、図２のＶＢＲバージョンの例のグラフである。
【図４】図４は、バージョン別の予測ターゲットビットレートを図示した、図２のＶＢＲバージョンの例のグラフである。
【図５】図５は、本発明の方法を実装できるネットワーク配置の簡略化したブロック図である。
【図６】図６は、方法の範囲内で動作可能なクライアントデバイスの簡略化したブロック図である。
【図７】図７は、方法の範囲内で動作可能なサーバーの簡略化したブロック図である。
【図８】図８は、方法に従い実行が可能な機能を描写した流れ図である。
【図９】図９は、方法に従い実行が可能な機能を描写した別の流れ図である。
【図１０】図１０は、方法に従い実行が可能な機能を描写したさらなる流れ図である。
【発明を実施するための形態】
【００１０】
以下の詳細な説明においては、添付図面を参照するが、これは本書の一部を形成する。詳細な説明、図面、および請求項で説明した例証のための実施形態は、限定的なものではない。ここで提示された主題の精神または範囲を逸脱することなく、その他の実施形態を利用することもでき、またその他の変更を行うこともできる。本発明の開示の態様は、本書で概略的に説明したとおり、また図面に図示されているとおり、多種多様な異なる構成で配置、置換、組合せ、分離、および設計ができることが簡単に理解され、その全てが本書で明示的に意図される。
【００１１】
一般に、オーディオまたはビデオなどのリアルタイムメディアの符号化には、未加工のデジタル化されたバージョンのメディアを伝送や格納に適した圧縮形態に変換する過程が関与しうる。エンコーダ・デコーダ（コーデック）は、メディアを表現する未加工のビットストリームを受信して、未加工のビットストリームにあるビットよりも少ないビットを持つ各時間間隔を表現するようにビットストリームのそれぞれの連続的な時間間隔を圧縮するアルゴリズムを適用するように演算しうる。この圧縮プロセスは、限定的な伝送速度または「帯域幅」に対応するネットワークを介して十分に高速にメディアが転送され受信されるようにすることで、リアルタイムでのメディアストリーミングおよびプレイアウトの促進に役立つことができる。特に、少なめのビットを持つメディアの連続的な時間間隔を表現することで、要求するデバイスへのリアルタイムでのメディアの伝送に対応するのに必要な帯域幅はより少ないものとなる。
【００１２】
実際には、リアルタイムメディアを符号化するために使用されるコーデックは、固定ビットレート（ＣＢＲ）符号化または可変ビットレート（ＶＢＲ）符号化を適用することができる。ＣＢＲ符号化は、メディアの連続的なそれぞれの時間間隔を所定数のデータに変換し、その数量はメディアの持続時間全体においてほぼ同じである。こうして、ＣＢＲ符号化されたメディアのストリーミングのためのネットワーク帯域幅の要件は、時間経過に伴ってもほぼ同じとなる。
【００１３】
一方で、ＶＢＲ符号化には、メディアのある一部の時間間隔を符号化するのに、メディアの他の時間間隔を符号化するためのものよりも高いビットレートを使用する。ＶＢＲ符号化では、それによって利益を受けうる（例えば、より詳細な細部のビデオ、または高速の動画など）メディアの一定セクションを表現するためにより多くのデータが使用されるため、結果的にＣＢＲ符号化と比較して高い品質が得られうる。さらに、ＶＢＲ符号化では、メディアの高めのビットレートセクションのストリーミングにより多くの帯域幅を使用できる一方で、メディアの低めのビットレートセクションのストリーミングにより少ない帯域幅を使用できるため、より適切にネットワーク帯域幅が使用されうる。
【００１４】
サーバーからクライアントデバイスへのメディアの伝送に効果的に利用可能なネットワーク帯域幅は、サーバーでの負荷の変化、クライアントでの負荷の変化、およびサーバーとクライアントとの間の通信路での負荷の変化を含むがこれに限定されない数多くの要因によって、時間経過とともに変化しうる。
【００１５】
ネットワーク帯域幅のこうした変動に順応するために、ストリーミングメディアサーバーは、メディアコンテンツの様々な異なるビットレートバージョン（すなわち、異なる符号化）を持つ（またはその場で生成する）ことができ、また要求されているクライアントデバイスに現在のネットワーク帯域幅で対応が可能な最高ビットレートバージョンをストリーム配信しうる。実際には、例えば、クライアントデバイスは、ストリーミング用にアクセス可能な様々なバージョンのビットレートを指定するインデックスを持つことができ、またクライアントは、ネットワーク帯域幅を決定して、決定されたネットワーク帯域幅が対応すべき最高ビットレートバージョンを選択しうる（例えば、決定されたネットワーク帯域幅より小さいかまたは等しいビットレートを持つバージョン）。次に、クライアントは、サーバーが要求されたバージョンをストリーム配信するよう要求をサーバーに送信することができ、またサーバーは、それに応答してその要求されたバージョンをクライアントにストリーム配信しうる。代替的に、クライアントは、ネットワーク帯域幅を決定して、サーバーに決定されたネットワーク帯域幅の指示を送信することができ、またサーバーは、決定されたネットワーク帯域幅が対応すべき最高ビットレートバージョンを選択してクライアントにストリーム配信しうる。
【００１６】
ネットワーク帯域幅に基づきビットレートバージョンを選択するこのプロセスは、ストリーミングメディアセッション（静的アダプティブストリーミングプロセスとして）の開始時に一回、またはストリーミング中に変化するネットワーク状態を調節するために（動的アダプティブストリーミングプロセスとして）動的に実行できる。さらに、このプロセスは、ＣＢＲ符号化メディア用、およびＶＢＲ符号化メディア用に実行できる。
【００１７】
ＣＢＲ符号化メディアに関連してこのプロセスを理解するために、図１のグラフを考慮するが、これは５分の間隔に対して２０００ｋｂｐｓ（Ｔ１）、３５００ｋｂｐｓ（Ｔ２）、および５０００ｋｂｐｓ（Ｔ３）といった異なる３つのビットレートで符号化された一片のビデオメディアについてのビットレートを示す。メディアコンテンツのこれらのかなり固定的なビットレート符号化バージョンを仮定すると、開始時の利用可能なネットワーク帯域幅が４０００ｋｂｐｓである場合に、クライアントは、サーバーにバージョンＴ２のストリーム配信を要求しうるが、それは、利用可能な４０００ｋｂｐｓ帯域幅でのストリーム配信が可能な最高ビットレートバージョンであるため、またそのためシームレスなプレイアウトのためにクライアントに十分に早く到達できるためである。ある時点で、ネットワーク帯域幅が３０００ｋｂｐｓに減少した場合、クライアントはサーバーにストリーミングバージョンＴ１への移行を要求しうるが、これは、それが利用可能な３０００ｋｂｐｓ帯域幅でストリーム配信可能な最高ビットレートバージョンとなるためであり、またシームレスなプレイアウトのために十分に早くクライアントに到達できるためである。こうして、メディアコンテンツの低めのビットレートバージョンにもかかわらず、ネットワーク帯域幅が減少した時でもストリーミングは継続できる。同様に、ネットワーク帯域幅が増大した場合、ストリーミングは元のメディアコンテンツの高めのビットレートバージョンに移行する。
【００１８】
この同一のプロセスは、ＶＢＲ符号化メディアに関連して実行できる。例えば、図２は、５分の間隔を示す異なる３つのビットレートレベルで符号化された１片のメディアコンテンツの異なるビットレートを描写するものである。この例に示すとおり、各バージョンの実際のビットレートは、時間経過に伴い著しく変化する。その時点で、各バージョンを通して描写されている点線は、各バージョン（ここでも２０００ｋｂｐｓ（Ｔ１）、３５００ｋｂｐｓ（Ｔ２）、および５０００ｋｂｐｓ（Ｔ３））について何が「ターゲット」ビットレート（例えば、平均ビットレート）と考えられうるかを表す。これらのターゲットビットレートを変化するネットワーク帯域幅と比較する点として使用した時、開始時の利用可能なネットワーク帯域幅が４０００ｋｂｐｓである場合、クライアントはバージョンＴ２をストリーム配信するようサーバーに要求しうるが、これは、利用可能な４０００ｋｂｐｓ帯域幅において、それが少なくともそのターゲットビットレート（３５００ｋｂｐｓ）でストリーム配信可能な最高ビットレートバージョンであるためである。また繰り返しになるが、ネットワーク帯域幅がある時点で３０００ｋｂｐｓに減少した場合、クライアントはストリーミングバージョンＴ１に移行するようサーバーに要求しうるが、それは利用可能な３０００ｋｂｐｓ帯域幅においてそのバージョンがその時点で少なくともそのターゲットビットレート（２０００ｋｂｐｓ）でストリーム配信可能な最高ビットレートバージョンであるためである。
【００１９】
ところが、ＶＢＲ符号化メディアのストリーミングについてのこのプロセスの適用は、実際上にはさらに複雑なものとなる場合があるが、これは、変化するメディアビットレートおよびネットワーク帯域幅が、クライアントの再生バッファ（アダプティブストリーミング  バッファ）の枯渇の原因となり、そのために再生が停止されるというリスクが高まるためである。特に、クライアントが比較ポイントとして平均ビットレートを使用している場合、ネットワーク帯域幅よりも高い実際のビットレートを持つメディアコンテンツの任意のセクションは、要求されるビットレートでのプレイアウトに十分なだけ早くクライアントに到達しない可能性がある。その結果、クライアントが追加的なデータの到達を待機する間、再生が中断されることになる。例えば、図２に示すＶＢＲバージョンでは、現在のネットワーク帯域幅が４０００ｋｂｐｓであり、そのためクライアントはバージョンＴ２（ターゲットビットレート３５００ｋｂｐｓを持つ）を選択する場合、メディアビットレートがネットワーク帯域幅４０００ｋｂｐｓを上回りクライアントの再生バッファを危うい状態に枯渇させる可能性がある約１００秒から１７０秒までの間で、問題が発生しうる。
【００２０】
この問題に対処する一つの方法は、メディアコンテンツの各ＶＢＲバージョンのための比較ポイントとして、平均ビットレートの倍数、または最大ビットレートなどの「伝統的要因」を適用することである。例えば、図３を参照するが、各ＶＢＲバージョンの点線はそのバージョンの最大ビットレートを表す。ネットワーク帯域幅との比較ポイントとしてこの最大ビットレートを使用することで、選択されたＶＢＲバージョンは決定された最新のネットワーク帯域幅よりも常に小さいかまたは等しくなるため、クライアントがその再生バッファの枯渇を避ける上で役立つ。一方、この伝統的なアプローチのマイナス面は、このプロセスでは利用可能な帯域幅が最適に使用されないことである。
【００２１】
本発明の方法は、バッファの枯渇のリスクを低減しつつネットワーク帯域幅の使用をより最適なものとするのに役立ちうる先進的なプロセスを提供する。予測アダプティブメディアストリーミングと呼ぶことのできるこの方法には、メディアの近づきつつある一連のセクションのそれぞれ（例えば、時間間隔（「時間限界」）またはデータ量間隔（「データ限界」））について、各ＶＢＲバージョンのどのビットレートがそのセクションにあるかを予測する過程と、およびそれらの予測ビットレートをネットワーク帯域幅との比較ポイントとして使用して、クライアントにストリーム配信されるＶＢＲバージョンが選択されるようにする過程とが関与しうる。このプロセスは、メディア全体にわたり連続的なビットレート予測が提供されるように、また近づきつつあるビットレートの最新の予測をストリーム配信されるＶＢＲバージョンの選択の基準として使用するように、スライディングウィンドウベースで（または代替的には、非重複（すなわち、相互排他的な）ウィンドウで）有利に反復されうる。
【００２２】
図４は、各ＶＢＲバージョンの近づきつつあるビットレートが、３０秒または５メガバイトのスライディングウィンドウ全体について、スライディングウィンドウに基づき近づきつつある平均ビットレートとして毎秒１回予測される、このプロセスの例の説明に役立つ。図４のグラフで、予測ビットレートは、各ＶＢＲバージョンを通して点線でプロットされており、バージョン毎のビットレート曲線を効果的に円滑なものとしている。任意の一時点において、ＶＢＲバージョン毎のこの予測ビットレートは、そのＶＢＲバージョンでのメディアの近づきつつあるウィンドウについての平均ビットレートを表すものであり、よって、メディアコンテンツ全体にわたり近づきつつある平均ビットレートの変化に伴い、予測ビットレートはメディアコンテンツ全体で変化する。
【００２３】
図４に示す予測ビットレートで、簡単にするために、全体にわたりネットワーク帯域幅が４０００  ｋｂｐｓであると仮定した場合、約２０秒の時点でＶＢＲバージョンＴ２が選択されることになるが、これは、３つのＶＢＲバージョンのうちバージョンＴ２の予測ビットレートがネットワーク帯域幅より少ないかまたは等しくなる最高予測ビットレートを持つことになるためである。ところが、約９０秒の時点からバージョンＴ２の予測ビットレートはネットワーク帯域幅を上回ることになり、代わりにバージョンＴ１が選択されるが、これは、その時点でバージョンＴ１がネットワーク帯域幅より少ないかまたは等しくなる最高予測ビットレートを持つためである。次に、約１４０秒の時点で、バージョンＴ２の予測ビットレートが再び減少してネットワーク帯域幅を下回ると、バージョンＴ２がネットワーク帯域幅より少ないかまたは等しくなる最高予測ビットレートを持つようになるため、再び選択されるようになる。また、約１８０秒の時点からバージョンＴ３が減少してネットワーク帯域幅を下回るようになるが、そのため、バージョンＴ３がネットワーク帯域幅より少ないかまたは等しくなる最高予測ビットレートを持つようになるため、選択されることになる。
【００２４】
この例で明らかなとおり、約１８０秒の時点で始まるバージョンＴ３の選択は、（メディアのより高いビットレートバージョンのストリーミングにより）その時点での再生品質を最大化するのに役立ちうる。この点は、考察したアダプティブストリーミング他のアプローチでは未だに発生していない。これは、一例として、本発明の方法がメディアストリーミングを改善するために使用できることを示す。
【００２５】
また、上記の例から数多くの変形物が可能であることが注目される。例えば、メディアコンテンツの近づきつつある各ウィンドウについてのビットレートの予測は、平均値以外の測定基準でもよい。例えば、近づきつつある各ウィンドウについて、予測は、メディアコンテンツの最大ビットレートでもよく、また平均、最大、またはその他の特性に基づくより複雑な統計的予測でもよい。
【００２６】
別の例として、予測間隔やウィンドウサイズのパラメータの変動も同様に考えられる。例えば、各予測を行う間隔は定数と変数のどちらでもよく、１秒以外でもよく、また時間間隔とデータ間隔のどちらでもよい。最適には、間隔は、最も適切な近づきつつあるビットレートの予測が提供されるように、処理能力およびその他のリソースが許容しうる程度に小さくしうる。さらに、近づきつつあるビットレートの予測がなされるウィンドウのサイズは、固定サイズと変動サイズのどちらでもよく、また３０秒または５メガバイト以外でもよい。例えば、ウィンドウサイズは、バッファの枯渇を避けるのに役立つように、近づきつつあるビットレートを現実的に測定するのに十分小さいものとしうる。
【００２７】
実際には、ＶＢＲバージョン毎の予測ビットレートの生成は、各ＶＢＲバージョンの可変ビットレートを定義するインデックスに応じて、クライアント、サーバー、またはその他の任意のコンピューティングエンティティによって実行されうる。
【００２８】
例えば、クライアントは、サーバーがメディアコンテンツをクライアントにストリーム配信している間にこのプロセスを実施でき、予測の各ウィンドウは、例えばそれまでに受け取ったメディアコンテンツの最新ポイント（またはそのポイントからのある程度のオフセット）からでありうる。例えば、上記のパラメータ例を使用して、クライアントは毎秒、各ＶＢＲバージョンについて、クライアントによって受信された最新のメディアファイル位置を開始点としメディアファイルの前方に３０秒または５メガバイトだけ伸びる、近づきつつあるセクションについてのメディアの代表的なビットレートを予測しうる。（その結果、予測ウィンドウには、サーバーをすでに離れているがクライアントに未だ到着していない１片のメディアコンテンツが含まれることがある。）また、クライアントは、ネットワーク帯域幅の最新の測定基準より小さいかかまたは等しい最高予測ビットレートを持つＶＢＲバージョンを選択することができ、またその選択されたＶＢＲバージョンをクライアントにストリーム配信するよう、サーバーに要求しうる。
【００２９】
別の方法として、クライアントは、ストリーミングメディアセッションが開始される前などのある一定の時点で、メディアコンテンツの一連の各ウィンドウについてこの予測を（ＶＢＲバージョン別に）実施することができ、それによって各ＶＢＲバージョンについて図４で点線で表したものなどのデータが確立される。ストリーミングの進行に伴い、クライアントは、連続的に（例えば、同一または別の予測間隔で）、それまでに確立された予測を、ネットワーク帯域幅の最新の測定基準より小さいかまたは等しい最高予測ビットレートを持つＶＢＲを選択するための基準として使用し、またサーバーにその選択されたＶＢＲバージョンをクライアントにストリーム配信するよう要求しうる。
【００３０】
なおも別の方法として、サーバーは、サーバーがメディアコンテンツをクライアントにストリーム配信している間にこのプロセスを実施でき、予測の各ウィンドウは、例えばそれまでにサーバーからストリーム配信されたメディアコンテンツでの最新ポイント（またはそのポイントからのある程度のオフセット）からでありうる。それぞれの予測間隔で、サーバーは各ＶＢＲバージョンの近づきつつあるビットレートを予測することができ、また、ネットワーク帯域幅の最新の測定基準より小さいかかまたは等しい最高予測ビットレートを持つＶＢＲバージョンを選択することができ、また選択されたＶＢＲバージョンをクライアントにストリーム配信しうる。
【００３１】
さらに別の方法として、サーバーまたは別の実体は、ストリーミングメディアセッションが開始される前などのある一定の時点で、メディアコンテンツの一連の各ウィンドウについてこの予測を（ＶＢＲバージョン別に）実施することができ、それによって各ＶＢＲバージョンについて図４で点線で表したものなどのデータが確立される。その予測ビットレートデータは、ストリーミングの進行に伴いＶＢＲバージョンを選択し要求する基準としてクライアントで使用するために、クライアント（例えば、メディアファイルインデックスの一部として、またはその他の何らかの方法で）に供給されてもよく、また、ストリーミングの進行に伴いクライアントにストリーム配信するＶＢＲバージョンを選択するための基準としてサーバーで使用するために、サーバーに供給されてもよい。その他の方式も同様に可能である。
【００３２】
実際には、メディアコンテンツの所定のＶＢＲバージョンについての近づきつつあるビットレートの予測には、時間経過に伴うＶＢＲバージョンの近づきつつあるビットレートを示す（例えば、指定またはその他の方法で定義または確立する）データが考慮される。上述のとおり、例えば、問題のメディアコンテンツは関連するインデックスを持つことができ、またそのインデックスは、予測ビットレートを確立するために使用できるデータを供給しうる。
【００３３】
例えば、各ＶＢＲバージョンのメディアコンテンツは、セグメントまたはチャンクと呼ばれる連続的な部分に分割でき、また各部分についてインデックスは、その部分のデータサイズおよびその部分の持続時間を指定しうる。インデックスを参照することにより、コンピューティングデバイスは、ＶＢＲバージョンの部分当たりのビットレートを、示されたデータサイズを持続時間で割ったものとして計算しうる。さらに、コンピューティングデバイスは、適用される時間またはデータウィンドウを定義する多数のこうした部分全体にわたり、ビットレートの平均またはその他の統計的測定基準を計算しうる。こうして、ビットレート予測は、複数の近づきつつあるチャンクのＶＢＲバージョンの長さにわたるウィンドウを含みうる。
【００３４】
別の例として、各ＶＢＲバージョンについて、メディアファイルインデックスは、ファイル内でメディアコンテンツのそれぞれの時間位置がどの程度離れて位置するかを示すファイルオフセットなど、メディアコンテンツファイル内のファイル位置に対して、メディアコンテンツの時間位置をマッピングしうる。こうしたインデックスを参照することで、コンピューティングデバイスは、表示されたセッションの開始ファイル位置および終了ファイル位置の間の差としてセクションのデータサイズを計算し、そのデータサイズをその部分の対応する時間で割ることによって、メディアファイルの任意のセクションについてビットレートを計算しうる。より特定的には、セクションの開始時間がｘの場合、開始ファイルの位置はｆｐ（ｘ）、時間はｎ、および終了ファイル位置はｆｐ（ｘ＋ｎ）、セクションのビットレートは（ｆｐ（ｘ＋ｎ）−  ｆｐ（ｘ））／ｎである。さらに、ファイル位置がビット数ではなくバイト数で測定される場合、この値は８を掛けることによってビット数に変換できる。（ただし、本書で使用するとき、「ビットレート」という用語は、必ずしもビットに限定されず、また同様に、ビット数、バイト数、あるいはその他のデータ量のどれであるか、また毎秒またはその他の時間単位毎のどれであるかによらず、「データ転送速度」として広範囲に特性付けられる。）
【００３５】
次に、図５は、本発明の方法の例を実施できるネットワーク配置の簡略化したブロック図である。図５に示すとおり、ネットワーク配置は、クライアントデバイス１２、ネットワーク（例えば、インターネットまたはその他のネットワーク）１４、およびサーバー１６を含み、サーバーは、特定のメディアコンテンツの複数のＶＢＲバージョン１８へのアクセスを持ち、またクライアントは、各ＶＢＲバージョンについて様々なビットレートを定義するメディアインデックス２０へのアクセスを持つ。
【００３６】
この配置により、クライアント１２は、それを通してサーバー１６がネットワーク１４を介してメディアコンテンツをクライアントにストリーム配信する、ストリーミングメディアセッションをセットアップしうる。例えば、クライアントは、ＲＴＳＰ  ＤＥＳＣＲＩＢＥ要求をサーバーに送信し、それに応答して、サーバーがクライアントにストリーム配信できる一つ以上のストリーム（例えば、オーディオおよびビデオなど）を指定するＲＴＳＰ  ＤＥＳＣＲＩＢＥ返答をサーバーから受信することができ、例えばこうしたストリームの一つは問題のメディアコンテンツを定義する。さらに、クライアントは、メディアコンテンツ用のインデックス２０を要求し、それをサーバーまたは別の実体から受信しうる。
【００３７】
インデックスを参照することにより、次にクライアントは、メディアコンテンツの各ＶＢＲバージョンについて、メディアコンテンツの第一の部分（例えば、第一のウィンドウ）のビットレートを予測しうる。さらに、クライアントは、ネットワーク帯域幅の現在の測定基準を決定しうる。次に、クライアントは、各ＶＢＲバージョンの近づきつつある部分についての予測ビットレートをネットワーク帯域幅と比較し、決定されたネットワーク帯域幅より少ないかまたは等しいその近づきつつある部分の予測ビットレートを持つ一つ以上のＶＢＲバージョンを決定するようにしうる。さらに、一つ以上の決定されたＶＢＲバージョンについて、クライアントは次に、近づきつつある部分で最高予測ビットレートを持つそのＶＢＲバージョンを選択しうる。次に、クライアントは、要求のパラメータ中でのＶＢＲバージョンの指定などによって、サーバーが選択されたＶＢＲバージョンのストリーム配信をするよう、サーバーにＲＴＳＰ  ＰＬＡＹ要求を送信しうる。次に、サーバーは、クライアントに対してメディアコンテンツの要求されたＶＢＲバージョンのストリーミングを開始することができ、クライアントは、ストリーム配信されたメディアコンテンツの受信、バッファリング、および再生を開始しうる。
【００３８】
インデックスを継続的に参照することにより、クライアントは次に、メディアコンテンツの近づきつつある次の部分についてＶＢＲバージョンのビットレートを同様に予測することができ、クライアントは再び、ネットワーク帯域幅の現在の測定基準を決定でき、またクライアントは再び、その近づきつつある次の部分について最高予測ビットレートを持つ、決定されたネットワーク帯域幅よりも小さいかまたは等しいＶＢＲバージョンを選択しうる。
【００３９】
選択されたＶＢＲバージョンが、サーバーが現在クライアントに対してストリーミングをしているバージョンである場合には、クライアントは何の動作もとる必要がない。ところが、選択されたＶＢＲバージョンが、サーバーが現時点でクライアントにストリーミングしているバージョンと異なる場合には、クライアントは、選択されたＶＢＲバージョンのストリーミングへのサーバーの移行をもたらす制御信号をサーバーに送信しうる。例えば、クライアントは、現在のＶＢＲバージョンを指定しサーバーに新しい選択されたＶＢＲバージョンに移行するよう要求するスイッチストリームヘッダーを含むＲＴＳＰ  ＰＬＡＹを、サーバーに送信できる。別の方法として、クライアントは、別のＲＴＳＰ要求、ＲＴＭＰ要求、ＲＴＣＰ要求、ＨＴＴＰ要求、またはサーバーが新しいＶＢＲバージョンのストリーミングに移行するための要求として解釈するよう取り決められたその他の任意のコマンドをサーバーに送信することもできる。次に、サーバーは、それに応じて新しいＶＢＲバージョンのストリーミングに移行しうるが、（新しく選択されたＶＢＲバージョンを古いＶＢＲバージョンに効果的に重ね継ぐことで）時間経過に伴いシームレスに移行することが最も望ましい。
【００４０】
クライアントデバイス１２は、ストリーミングメディアの要求および受信を行い、メディアが受信されている時にメディアをプレイアウトするように配置された任意のコンピューティングデバイスでよい。例えば、クライアントデバイスは、パーソナルコンピュータ、タブレットコンピュータ、携帯電話またはその他の通信デバイス、統合型のオーディオまたはビデオプレーヤー、ゲーム用デバイス、または既知のあるいは今後開発されるその他の任意のデバイスとしうる。図６は、実際的な本方法の態様の実行を促進するためにこうしたデバイスに含めることができるコンポーネントを示す、簡略化したブロック図である。
【００４１】
図６に示すとおり、クライアントデバイスの例には、ネットワーク通信インターフェース２２、ユーザーインターフェース２４、プロセッサ２６、およびデータストレージ２８が含まれ、その全ては、システムバスまたはその他の接続機構３０により一つに結合しうる。
【００４２】
ネットワーク通信インターフェース２２は、クライアント１２が、ネットワーク１４上で、またネットワーク１４を介して実体（例えばサーバー１６）と通信するよう配置された、有線または無線のインターフェースを備えうる。例えば、ネットワーク通信インターフェース２２は、ローカルエリアネットワークで、さらには、ルーターおよび／または一つ以上のその他のネットワーク要素を介してネットワーク１４上の実体との通信用に、有線または無線のイーサネット（登録商標）インターフェースを備えうる。別の例として、ネットワーク通信インターフェースは、ＬＴＥ、ＷｉＭＡＸ、ＣＤＭＡ、ＧＳＭ（登録商標）、または同種のものなどのプロトコルに従った無線アクセスネットワークとエアインターフェース通信に従事する、またネットワーク１４上の実体との無線アクセスネットワークを介した、セル方式無線インターフェースを備えうる。その他の例も同様に考えられる。
【００４３】
ユーザーインターフェース２４は、クライアント１２がクライアントのユーザーと相互作用できるようにしうるが、従って、ディスプレイスクリーン、音声スピーカー、およびこれに類するものなどの出力コンポーネント、ならびにキーボード、カメラ、タッチパッドまたはタッチスクリーン、およびこれに類するものなどの入力コンポーネントを備えうる。さらに、ユーザーインターフェース２４には、ユーザーへのデジタル形式のメディアのプレイアウトを促進するための、メディアをデジタル形式からアナログ形式に変換する回路を含みうる。
【００４４】
プロセッサ２６は、一つ以上の汎用プロセッサ（例えば、ＩＮＴＥＬマイクロプロセッサ）および／または一つ以上の特殊目的プロセッサ（例えば、アプリケーション固有の集積回路、デジタル形式の信号プロセッサなど）を備えうる。プロセッサ２６に複数のプロセッサが含まれる場合、プロセッサは、組み合わせで（例えば、並列）または別個に作動するよう配置しうる。さらに、プロセッサ２６は、ネットワーク通信インターフェース２２または一つ以上のその他のコンポーネントと全部または一部を統合しうる。
【００４５】
データストレージ２８は次に、磁気、光、有機、フラッシュ、または現時点で既知の、または今後開発されるその他のタイプの記憶装置など、一つ以上の揮発性および／または不揮発性の記憶装置コンポーネントを備えうるが、全部または一部をプロセッサ２６と統合することもでき、および／またはクライアント１２から取り外し可能とすることも、クライアント１２と外部的に接続する（有線または無線の手段によって）こともできる。図示のとおり、データストレージ２８は、プログラム命令３２およびプログラムデータ３４を含む。一般に、プログラム命令３２は、本書に記載した様々なクライアント機能を実行するためにプロセッサ２６によって実行可能としうる。代替的に、一部または全てのこうした機能は、様々なその他のマシンの実装により実行することもできる。次に、プログラムデータ３４は、プレイアウト用にバッファされた受信済みメディアコンテンツ、メディアファイルインデックス、およびユーザーによるストリーミングメディアまたはこれに類するものの要求を促進するためにクライアントがユーザーインターフェース２４上に提示可能なグラフィカルユーザーインターフェースを定義するデータなどの、データを含みうる。
【００４６】
サーバー１６は、メディアのストリーミングを求める要求を受信し、プレイアウトのために要求したメディアをストリーム配信するように配置される、任意のコンピューティングデバイスとしうる。そのため、サーバーは、サーバークラスのコンピュータであることが適当である。ところが、サーバーは、上述のデバイスの一つなど、サーバーとして動作する論理回路とともに配置されたより単純なものでもよい。図７は、実際的な本方法の態様の実行を促進するために、こうしたサーバーに含めることができるコンポーネントを示す、簡略化したブロック図である。
【００４７】
図７に示すとおり、サーバーの例には、ネットワーク通信インターフェース４０、プロセッサ４２、およびデータストレージ４４が含まれ、その全ては、システムバスまたはその他の接続機構４６により一つに結合しうる。
【００４８】
ネットワーク通信インターフェース４０は、サーバー１６がネットワーク１４上またネットワーク１４を介して実体（例えばクライアント１２）と通信するように配置された、有線または無線のインターフェースを備えうる。そのため、ネットワーク通信インターフェース４０は、有線または無線のイーサネット（登録商標）インターフェース、セル方式無線インターフェース、またはその他の任意のタイプのネットワークインターフェースを備えうる。
【００４９】
プロセッサ４２は、一つ以上の汎用プロセッサおよび／または一つ以上の特殊目的プロセッサを備えうるが、ネットワーク通信インターフェースと全部または一部を統合しうる。また、データストレージ４４は、一つ以上の揮発性および／または不揮発性の記憶装置コンポーネントを備えうるが、全部または一部をプロセッサ４２と統合しうる。図示のとおり、データストレージ４４は、本書に記載した様々なサーバー機能を実行するための実行可能なプログラム命令４８や、またプレイアウトのためにクライアント１２に対してストリーム配信するためのメディアコンテンツの様々なＶＢＲバージョンなどのプログラムデータ５０を含む。
【００５０】
次に、図８は、本発明の方法の実施例に従い、サーバーからクライアントへのメディアコンテンツのストリーミングを制御するために実行できる機能を描写した流れ図であり、ここで、サーバーはメディアコンテンツ複数のＶＢＲバージョンへのアクセス権を持つ。
【００５１】
図８に示すとおり、ブロック６０で、方法例には帯域幅閾値を決定する過程が関与する。帯域幅閾値は、ネットワーク帯域幅のリアルタイム（すなわち、現時点または実質的に現時点）での尺度、または例えばこうした尺度の何らかの派生物としうる。そうであるため、帯域幅の閾値は、随時変化しうるかまたは一定で、おそらくは所定の値に設定することさえもできる。
【００５２】
クライアントにより実行される場合、帯域幅閾値を決定するというこの機能には、クライアントがその再生バッファを枯渇させた後でバッファがサーバーから入ってくるデータで満たされるようにし、バッファが満たされるレートを測定する手順、またはサーバーからクライアントへのデータの到着率を他の方法で測定する手順が関与しうる。次にクライアントは、測定したレートまたは測定したレートの何倍かまたはオフセットバージョンが、帯域幅閾値であるとみなしうる。別の方法として、クライアントは、帯域幅閾値をその他の何らかの方法で決定でき、および／または別の実体により帯域幅閾値についての情報を受けることができる。一方、機能がサーバーにより実行される場合、サーバーは、ネットワーク帯域幅または帯域幅閾値についてのレポートをクライアントからまたはサーバーとクライアントの間の通信経路内の一つ以上のその他の実体から受信しうるか、またはサーバーはその他の任意の方法で帯域幅を決定できる。
【００５３】
ブロック６２（これはブロック６０の前に来ることもある）で、方法の例にはメディアコンテンツの各ＶＢＲバージョンについて、メディアコンテンツの近づきつつある部分のビットレートを予測する過程がさらに関与する。上述のとおり、例えば、これにはメディアファイルインデックスを参照してＶＢＲバージョン別に近づきつつある部分のビットレートを予測する過程も含まれうる。さらに、予測ビットレートが、各ＶＢＲバージョンの一連の部分（例えば、スライディングウィンドウ）のそれぞれについてすでに確立されている場合、この機能には、既に確立された予測ビットレートデータを参照して、ＶＢＲバージョン別に近づきつつある部分について予測ビットレートを決定する過程が関与しうる。
【００５４】
次に、ブロック６４で、方法の例には、帯域幅閾値よりも小さい予測ビットレートを持つこうしたそれぞれのＶＢＲバージョンでメディアコンテンツの近づきつつある部分に基づき、メディアコンテンツの一つ以上のＶＢＲバージョンを特定する過程が関与する。（ここで「より小さい」の検定は、帯域幅閾値を望ましいレベルに、またはそれよりもわずかに高く設定できることから、「より小さいかまたは等しい」も同様に含みうることに注意。）    特に、方法には、各ＶＢＲバージョンについての予測ビットレートをそれぞれ帯域幅閾値と比較して、近づきつつある部分が帯域幅閾値よりも小さい予測ビットレートを持つ、一つ以上のＶＢＲバージョンを特定する過程が関与しうる。
【００５５】
一つ以上のＶＢＲバージョンを特定する機能では、ＶＢＲバージョンの近づきつつある部分が帯域幅閾値を満足するかどうか以外に一つ以上のその他の要因を考慮しうる。例えば、特定は、少なくとも部分的にクライアントの再生バッファが現時点でどの程度占有されているかの判断に基づきうる。これに関連して、クライアントの再生バッファが閾値エンプティである（例えば、危険なまでに枯渇状態に近い）場合、別の形で選択されるよりも低めのビットレートバージョンを選択することが有利である場合があるが、これは、低めのビットレートバージョンはよりゆっくりと再生され、そのためバッファの占有に役立ちうるためである。こうして、特定の機能がクライアントによって実行される場合、クライアントはその再生バッファが閾値エンプティであるかを判断し、そうである場合には、可能性としてより低めのビットレートのＶＢＲバージョンが強制的に選択されるように、何らかの要因によって帯域幅閾値を下げて調節しうる。同様に、特定の機能がサーバーによって実行される場合、クライアントはそのバッファ占有量をサーバーに報告し、サーバーは、バッファ占有量が考慮されるよう、同様の調節を適用しうる。その他の要因も同様に考慮されうる。
【００５６】
ブロック６６で、次に方法の例には、一つ以上の特定されたＶＢＲバージョンについて最高ビットレートのＶＢＲバージョンを選択する過程が関与する。一つのＶＢＲバージョンのみが特定された場合には、この機能はそのＶＢＲバージョンを選択することになる。これに対して、複数のＶＢＲバージョンが特定された場合には、この機能は一つ以上の特定されたＶＢＲバージョンのうち最高ビットレートを持つＶＢＲバージョンを選択する過程が関与することになる。
【００５７】
ブロック６６のこの機能は、異なる方法でブロック６４の機能と組み合わせることができることが注目される。例えば、この機能には、まずＶＢＲバージョンをランク付けしてから、最高ビットレートのＶＢＲバージョンから最低ビットレートのＶＢＲバージョンまでのランク順で、ＶＢＲバージョンの近づきつつある部分が帯域幅閾値より小さな予測ビットレートを持つかどうかをチェックする過程が関与しうる。順番に進んで、その近づきつつある部分についてのこの帯域幅閾値の検定を満たすＶＢＲバージョンが見つかると、次に機能にはそのＶＢＲバージョンをバージョンとして選択する過程が関与することになる。このプロセスで、ブロック６４の機能には、帯域幅閾値よりも小さい予測ビットレートを持つＶＢＲバージョンのうち最高ランクのものを特定する過程が、またブロック６６の機能には、その特定されたＶＢＲバージョンを選択する過程が関与しうる。
【００５８】
ブロック６８では、方法の例にはさらに、サーバーに選択されたＶＢＲバージョンをクライアントにストリーム配信させる手順が含まれうる。例えば、この機能がクライアントにより実行される場合、この機能は、選択されたＶＢＲバージョンをクライアントにストリーム配信するようサーバーに指図する制御コマンドをサーバーに送信する過程が関与しうる（またはＶＢＲバージョンが現時点でクライアントにストリーム配信されているものと同じ場合には何も動作しない）。一方で、この機能がサーバーにより実行される場合、この機能には、選択されたＶＢＲバージョンをクライアントにストリーム配信するよう移行する過程が関与しうる（またはそのバージョンが現時点でクライアントへのストリーム配信に使用されている場合は、ＶＢＲバージョンのストリーム配信を続ける）。
【００５９】
ブロック７０では、次に方法の例には、メディアコンテンツファイルの最後に達するまで、メディアコンテンツの近づきつつある次の部分に進む過程が関与しうる。次に、方法には、ブロック６０で開始されるプロセスを反復する過程が関与しうる。上述のとおり、メディアコンテンツの各部分は時間またはデータ量に対して定義でき、また部分は分離することも重ねることもできる（スライディングウィンドウとして）。
【００６０】
次に、図９は、サーバーからデバイスへのメディアコンテンツのストリーミングを制御するために、本発明の方法の実装例に従い実行されうる機能を描写した別の流れ図である。この方法は、例えば、クライアント１２のプロセッサ２６などのプロセッサにより様々な機能を実行できる、例えば、クライアント１２のデータストレージなど非一時的コンピュータ可読媒体上に符号化された命令により定義することができる。
【００６１】
図９に示すとおり、ブロック７２では、方法の例には、サーバーからデバイスへの通信のためのネットワーク帯域幅を決定する機能が関与する。ブロック７４では、次に、方法の例には、デバイスにより受信されるメディアコンテンツの部分よりも前に、メディアコンテンツの一つ以上の複数のＶＢＲバージョンを特定する過程が関与し、その特定は、少なくとも部分的に、確認済みのネットワーク帯域幅より小さいかまたは等しいビットレートを持つ、一つ以上のＶＢＲバージョンのそれぞれにあるメディアコンテンツの部分に基づく。ブロック７６では、特定された一つ以上のメディアコンテンツのＶＢＲバージョンから、最高ビットレートのメディアコンテンツのＶＢＲバージョンを選択する過程が関与する。またブロック７８では、方法の例には、サーバーに選択したメディアコンテンツのＶＢＲバージョンをデバイスにストリーム配信するよう要求する制御信号をサーバーに転送する機能が関与する。ブロック８０では、次に、方法の例には、メディアファイルの終わりに達するまで、メディアコンテンツの連続的に発生する次の部分に進み（例えば、スライディングウィンドウベースで、または次の分離した相互排他的な部分として）、ブロック７２で方法を反復する過程が関与する。
【００６２】
図８の流れ図に関連して上述した類似した機能の定義および考察は、図９の機能に関しても同様に適用でき、またその逆もありうる。例えば、上記のとおり、一つ以上のＶＢＲバージョンを特定する動作は、再生バッファ占有量に基づくものでありうる。また別の例として、ネットワーク帯域幅を決定する動作には、クライアントデバイスでのサーバーからのデータの到着レートを決定し、ネットワーク帯域幅をその測定された到着レートに基づく値として見なす過程が関与しうる。
【００６３】
さらに、この方法の例および上述の例には、さらにその他の機能または考察した機能に対する変形物が含まれうる。例えば、上述のとおり、方法には、メディアコンテンツのインデックスを受信して格納する過程が関与することがあり、インデックスには、時間経過に伴い各ＶＢＲバージョンのビットレートを表すデータが含まれる。その場合、メディアコンテンツの一つ以上のＶＢＲバージョンを特定する機能には、インデックスを参照して、ＶＢＲバージョン別にメディアコンテンツの近づきつつある部分のビットレートを予測するなど、特定のための基準としてインデックスを使用する過程や、それらの予測ビットレートを一つ以上のＶＢＲバージョンを特定するための基準として使用する過程が関与しうる。
【００６４】
上述のとおり、例えば、インデックス内のデータは、各ＶＢＲバージョンについて、連続的なチャンクのＶＢＲバージョンのサイズおよび持続時間を指定でき、また一つ以上のＶＢＲバージョンを特定する基準としてインデックスを使用する機能には、（ｉ）インデックスから、メディアコンテンツのその部分について時間当たりのチャンクのサイズの測定基準（平均値または最大値など）を決定する過程と、（ｉｉ）決定された測定基準をメディアコンテンツの部分のビットレートの表現として使用する過程と、（ｉｉｉ）メディアコンテンツの部分のビットレートの表現が決定されたネットワーク帯域幅よりも小さいか等しい場合に、ＶＢＲバージョンが、メディアコンテンツのその部分が確認済みのネットワーク帯域幅より小さいかまたは等しいビットレートを持つものであることを確認する過程とが関与しうる。
【００６５】
別の方法として、または追加的に、インデックス内のデータは、各ＶＢＲバージョンについて、メディアコンテンツの時間位置とメディアコンテンツのデータ位置との間のマッピングを指定でき、またインデックスを一つ以上のＶＢＲバージョンを特定するための基準として使用する機能には、（ｉ）インデックスから、メディアコンテンツの部分について時間範囲当たりのメディアコンテンツのデータサイズの測定基準（平均値または最大値など）を決定する過程と、（ｉｉ）測定基準をメディアコンテンツの部分のビットレートの表現として使用する過程と、（ｉｉｉ）メディアコンテンツの部分のビットレートの表現が決定されたネットワーク帯域幅よりも小さいか等しい場合に、ＶＢＲバージョンが、メディアコンテンツのその部分が確認済みのネットワーク帯域幅より小さいかまたは等しいビットレートを持つものであることを確認する過程とが関与しうる。
【００６６】
最後に、図１０は本発明の方法の実施例に従い実行できる機能のさらに別の描写である。これらの機能は同様に、例えば、クライアント１２など、コンピューティングデバイスにより実行することもできる。特に、こうしたデバイスのデータストレージは、方法の機能を実行するために、デバイスのプロセッサにより実行可能なプログラム命令を保存しうる。
【００６７】
図１０に示すとおり、ブロック８２では、方法の例には、ネットワーク通信インターフェースによる、コンピューティングデバイスにサーバーからストリーム配信されているメディアコンテンツを受信する機能が関与する。それまでに受信されたメディアコンテンツについてのブロック８２と並列に発生しうるブロック８４では、方法の例にはさらに、ユーザーインターフェースで受信中のメディアコンテンツを再生する過程が関与する。また、ブロック８５では、方法の例には、コンピューティングデバイスにサーバーからストリーム配信されているメディアコンテンツを受信しながら、周期的に（ｉ）サーバーからコンピューティングデバイスへの通信のためのネットワーク帯域幅の測定基準を決定する機能と、（ｉｉ）メディアコンテンツの複数のＶＢＲバージョンを特定し、その複数のＶＢＲバージョンから、確認したネットワーク帯域幅よりも小さいかまたは等しいメディアコンテンツの次のスライディングウィンドウを越えるビットレートを持つ最高ビットレートＶＢＲバージョンを選択する過程と、および（ｉｉｉ）ネットワーク通信インターフェースによって、サーバーが選択したＶＢＲバージョンをコンピューティングデバイスにストリーム配信する要求をサーバーに転送する過程とが関与する。
【００６８】
上記の考察と同様、上述の類似した機能の定義および考察は図９の機能に関しても同様に適用でき、またその逆もありうる。例えば、上記のとおり、メディアコンテンツのプレイアウト中、コンピューティングデバイスのデータストレージは、メディアコンテンツ用の再生バッファを定義でき、また方法の例の機能はさらに、再生バッファの占有レベルに基づき、最高ビットレートのＶＢＲバージョンを選択する過程を含みうる。別の例として、コンピューティングデバイスのデータストレージは、メディアコンテンツのインデックスを保持することができ、またコンピューティングデバイスは、メディアコンテンツの次のスライディングウィンドウに対して確認したネットワーク帯域幅よりも小さいかまたは等しいメディアコンテンツのビットレートを持つ最高ビットレートのＶＢＲバージョンを選択する過程が促進されるように、メディアコンテンツの次のスライディングウィンドウに対してメディアコンテンツの各ＶＢＲバージョンのビットレートを決定するための基準としてそのインデックスを使用しうる。
【００６９】
本書でさまざまな様相および実施形態を開示してきたが、当業者にとってはその他の態様および実施形態が明白である。本書で開示したさまざまな態様および実施形態は例証を目的とするものであり、限定的なものとする意図はなく、真の範囲および精神は下記の請求項によって示されている。
【図１】
2015515788.tif 000002
【図２】
2015515788.tif 000003
【図３】
2015515788.tif 000004
【図４】
2015515788.tif 000005
【図５】
2015515788.tif 000006
【図６】
2015515788.tif 000007
【図７】
2015515788.tif 000008
【図８】
2015515788.tif 000009
【図９】
2015515788.tif 000010
【図１０】
2015515788.tif 000011
【手続補正書】
【提出日】平成27年2月12日(2015.2.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバーからクライアントへのメディアコンテンツのストリーミングを制御するための方法であって、
前記メディアコンテンツのインデックスにアクセスする過程であって、前記インデックスが前記メディアコンテンツの複数の可変ビットレート（VBR）バージョンにおける前記メディアコンテンツの部分のビットレートを表すデータを含む過程と、
前記インデックスに応答して、前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測する過程と、
前記予測されたビットレートおよび帯域幅閾値に応答して、前記メディアコンテンツの複数のVBRバージョンのうちの一つのVBRバージョンを選択する過程と、
前記メディアコンテンツの前記選択されたVBRバージョンが、前記サーバーから前記クライアントにストリーム配信されるようにする過程とを含む方法。
【請求項２】
前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測する過程が、
前記メディアコンテンツのうちの次に続く一部分を決定する過程と、
前記インデックスを使用して、前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツのうちの次に続く一部分のビットレートを決定する過程とを含む、請求項1に記載の方法。
【請求項３】
前記メディアコンテンツの複数のVBRバージョンのうちの一つのVBRバージョンを選択する過程が、
前記帯域幅閾値を前記サーバーからの前記クライアントにおけるデータの到着レートとして決定する過程と、
前記帯域幅閾値より低い前記一部分について予測されたビットレートを有する前記メディアコンテンツの一つ以上のVBRバージョンを特定する過程と、
前記特定されたメディアコンテンツの一つ以上のVBRバージョンの中から前記メディアコンテンツの一つのVBRバージョンを選択する過程とを含む、請求項1に記載の方法。
【請求項４】
前記特定されたメディアコンテンツの一つ以上のVBRバージョンの中から前記メディアコンテンツの一つのVBRバージョンを選択する過程が、
前記決定された帯域幅閾値より小さいかまたは等しい最高ビットレートバージョンを選択する過程を含む、請求項3に記載の方法。
【請求項５】
前記インデックスが時間経過に伴う前記メディアコンテンツのVBRバージョンのビットレートを表すデータを含み、前記予測することが前記メディアコンテンツの複数のVBRバージョンにおける近づきつつある一部分のビットレートを予測する、請求項1に記載の方法。
【請求項６】
前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測する過程が、
前記メディアコンテンツの各VBRバージョンについて前記メディアコンテンツの一部分のビットレートの測定基準を予測する過程を含む、請求項1に記載の方法。
【請求項７】
前記メディアコンテンツの前記選択されたVBRバージョンがストリーム配信されるようにする過程が、
前記サーバーに、前記メディアコンテンツのVBRバージョンの別のどれかのストリーミングから前記メディアコンテンツの前記選択されたVBRバージョンのストリーミングに移行させる過程を含む、請求項1に記載の方法。
【請求項８】
コンピューティングデバイスであって、
プロセッサと、
サーバーから前記コンピューティングデバイスへのメディアコンテンツのストリーミングを制御するための実行可能なコンピュータプログラム命令を格納した非一時的コンピュータ可読媒体とを備え、
前記コンピュータプログラム命令が、
前記メディアコンテンツのインデックスにアクセスするステップであって、前記インデックスが前記メディアコンテンツの複数の可変ビットレート（VBR）バージョンにおける前記メディアコンテンツの部分のビットレートを表すデータを含むステップと、
前記インデックスに応答して、前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測するステップと、
前記予測されたビットレートおよび帯域幅閾値に応答して、前記メディアコンテンツの複数のVBRバージョンのうちの一つのVBRバージョンを選択するステップと、
前記メディアコンテンツの前記選択されたVBRバージョンが、前記サーバーから前記コンピューティングデバイスにストリーム配信されるようにするステップと
のために実行可能であるコンピューティングデバイス。
【請求項９】
前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測するステップが、
前記メディアコンテンツのうちの次に続く一部分を決定するステップと、
前記インデックスを使用して、前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツのうちの次に続く一部分のビットレートを決定するステップとを含む、請求項8に記載のコンピューティングデバイス。
【請求項１０】
前記メディアコンテンツの複数のVBRバージョンのうちの一つのVBRバージョンを選択するステップが、
前記帯域幅閾値を前記サーバーからの前記コンピューティングデバイスにおけるデータの到着レートとして決定するステップと、
前記帯域幅閾値より低い前記一部分について予測されたビットレートを有する前記メディアコンテンツの一つ以上のVBRバージョンを特定するステップと、
前記特定されたメディアコンテンツの一つ以上のVBRバージョンの中から前記メディアコンテンツの一つのVBRバージョンを選択するステップとを含む、請求項8に記載のコンピューティングデバイス。
【請求項１１】
前記特定されたメディアコンテンツの一つ以上のVBRバージョンの中から前記メディアコンテンツの一つのVBRバージョンを選択するステップが、
前記決定された帯域幅閾値より小さいかまたは等しい最高ビットレートバージョンを選択するステップを含む、請求項10に記載のコンピューティングデバイス。
【請求項１２】
前記インデックスが時間経過に伴う前記メディアコンテンツのVBRバージョンのビットレートを表すデータを含み、前記予測することが前記メディアコンテンツの複数のVBRバージョンにおける近づきつつある一部分のビットレートを予測する、請求項8に記載のコンピューティングデバイス。
【請求項１３】
前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測するステップが、
前記メディアコンテンツの各VBRバージョンについて前記メディアコンテンツの一部分のビットレートの測定基準を予測するステップを含む、請求項8に記載のコンピューティングデバイス。
【請求項１４】
前記メディアコンテンツの前記選択されたVBRバージョンがストリーム配信されるようにするステップが、
前記サーバーに、前記メディアコンテンツのVBRバージョンの別のどれかのストリーミングから前記メディアコンテンツの前記選択されたVBRバージョンのストリーミングに移行させるステップを含む、請求項8に記載のコンピューティングデバイス。
【請求項１５】
サーバーからクライアントへのメディアコンテンツのストリーミングを制御するために実行可能な命令を格納した非一時的コンピュータ可読記憶媒体であって、
前記メディアコンテンツのインデックスにアクセスするステップであって、前記インデックスが前記メディアコンテンツの複数の可変ビットレート（VBR）バージョンにおける前記メディアコンテンツの部分のビットレートを表すデータを含むステップと、
前記インデックスに応答して、前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測するステップと、
前記予測されたビットレートおよび帯域幅閾値に応答して、前記メディアコンテンツの複数のVBRバージョンのうちの一つのVBRバージョンを選択するステップと、
前記メディアコンテンツの前記選択されたVBRバージョンが、前記サーバーから前記クライアントにストリーム配信されるようにするステップと
を含むステップを実行するために前記命令が実行可能である非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツの一部分のビットレートを予測するステップが、
前記メディアコンテンツのうちの次に続く一部分を決定するステップと、
前記インデックスを使用して、前記メディアコンテンツの複数のVBRバージョンにおける前記メディアコンテンツのうちの次に続く一部分のビットレートを決定するステップとを含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記メディアコンテンツの複数のVBRバージョンのうちの一つのVBRバージョンを選択するステップが、
前記帯域幅閾値を前記サーバーからの前記クライアントにおけるデータの到着レートとして決定するステップと、
前記帯域幅閾値より低い前記一部分について予測されたビットレートを有する前記メディアコンテンツの一つ以上のVBRバージョンを特定するステップと、
前記特定されたメディアコンテンツの一つ以上のVBRバージョンの中から前記メディアコンテンツの一つのVBRバージョンを選択するステップとを含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記特定されたメディアコンテンツの一つ以上のVBRバージョンの中から前記メディアコンテンツの一つのVBRバージョンを選択するステップが、
前記決定された帯域幅閾値より小さいかまたは等しい最高ビットレートバージョンを選択するステップを含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記インデックスが時間経過に伴う前記メディアコンテンツのVBRバージョンのビットレートを表すデータを含み、前記予測することが前記メディアコンテンツの複数のVBRバージョンにおける近づきつつある一部分のビットレートを予測する、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記メディアコンテンツの前記選択されたVBRバージョンがストリーム配信されるようにするステップが、
前記サーバーに、前記メディアコンテンツのVBRバージョンの別のどれかのストリーミングから前記メディアコンテンツの前記選択されたVBRバージョンのストリーミングに移行させるステップを含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2015515788.tif 000012