(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024015959
(43)【公開日】2024-02-06
(54)【発明の名称】性能メトリックを使用するコンテンツ配信ネットワーク(CDN)選択
(51)【国際特許分類】
H04L 65/80 20220101AFI20240130BHJP
H04N 21/6338 20110101ALI20240130BHJP
【FI】
H04L65/80
H04N21/6338
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023067009
(22)【出願日】2023-04-17
(31)【優先権主張番号】PCT/CN2022/107669
(32)【優先日】2022-07-25
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】17/822,053
(32)【優先日】2022-08-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】512333560
【氏名又は名称】フル・エルエルシー
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】トンギュ・ダイ
(72)【発明者】
【氏名】ダーリャン・フー
(72)【発明者】
【氏名】スー・チェン
(72)【発明者】
【氏名】ラーメイ・フアン
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164MA02S
5C164SB29S
5C164SB41S
5C164TA14S
5C164TB25P
5C164YA24
(57)【要約】 (修正有)
【課題】現在のセッションにおけるメディアコンテンツのインスタンスの要求を受信する方法、装置及び記憶媒体を提供する。
【解決手段】方法は、セッションのセット内のセッションについて決定されるコンテンツ配信ネットワークの状態CDNを取得する。この状態は、性能メトリックの第1の値のセットを含み、第1の値のセットは、コンテンツ配信ネットワークと関連している。方法はまた、現在のセッションに対する性能メトリックの第2の値のセットを決定する。第2の値のセットは、コンテンツ配信ネットワークと関連している。方法はさらに、コンテンツ配信ネットワークを、現在のセッションをセッションのセット内の1つのセッションとして扱うことに基づいて、現在のセッションにおける要求に対して選択さする。現在のセッションに対するセッションは、セッションのセット内の、状態に対するセッションの後である。
【選択図】
図2
【特許請求の範囲】
【請求項1】
コンピュータデバイスによって、現在のセッションにおいてメディアコンテンツのインスタンスの要求を受信することと、
前記コンピュータデバイスによって、セッションのセット内の1つのセッションについて決定される複数のコンテンツ配信ネットワークの状態を取得することとを備える方法であって、ここにおいて、前記状態が性能メトリックの第1の値のセットを含み、ここにおいて、前記第1の値のセットが前記複数のコンテンツ配信ネットワークと関連しており、前記方法がさらに、
前記コンピュータデバイスによって、前記現在のセッションに対する前記性能メトリックの第2の値のセットを決定することを備え、ここにおいて、前記第2の値のセットが前記複数のコンテンツ配信ネットワークと関連しており、前記方法がさらに、
前記コンピュータデバイスによって、前記現在のセッションにおける前記要求に対して、前記複数のコンテンツ配信ネットワーク内の1つのコンテンツ配信ネットワークを、前記現在のセッションを前記セッションのセット内の1つのセッションとして扱うことに基づいて選択することを備え、前記現在のセッションに対する前記セッションが、前記セッションのセット内の、前記状態に対する前記セッションの後であり、ここにおいて、前記選択することが、前記状態からの前記第1の値のセットと前記現在のセッションからの前記第2の値のセットとを最適化することに基づいている、方法。
【請求項2】
前記コンテンツ配信ネットワークを選択することが、
前記複数のコンテンツ配信ネットワークに対する前記性能メトリックの第3の値のセットを、それぞれのコンテンツ配信ネットワークの前記第1の値のセットと前記第2の値のセットとを使用して決定することと、
前記現在のセッションにおける前記要求に対して、前記複数の配信ネットワーク内で前記コンテンツ配信ネットワークを選択するために前記第3の値のセットを使用することを備える、請求項1に記載の方法。
【請求項3】
前記第3の値のセットを決定することが、
前記第3の値のセット内のそれぞれの第3の値を生成するために、それぞれのコンテンツ配信ネットワークの第1の値のセット内のそれぞれの第1の値を、前記それぞれのコンテンツ配信ネットワークの前記第2の値のセット内のそれぞれの第2の値と組み合わせることを備え、ここにおいて、各コンテンツ配信ネットワークがそれぞれの第3の値と関連している、請求項2に記載の方法。
【請求項4】
前記コンテンツ配信ネットワークを選択することが、
それぞれのコンテンツ配信ネットワークの前記それぞれの第3の値を互いに比較することを備え、ここにおいて、前記コンテンツ配信ネットワークが前記比較することに基づいて選択される、請求項3に記載の方法。
【請求項5】
前記コンテンツ配信ネットワークを選択することが、
前記第3の値のセット内の、最適なそれぞれの第3の値を有するコンテンツ配信ネットワークを選択することを備える、請求項4に記載の方法。
【請求項6】
前記第1の値のセット内の第1の値が、前記状態と関連する前記セッションと、前記セッションのセット内の、前記状態と関連する前記セッションより前のセッションとに対する全体性能メトリックの最適値を表す、請求項1記載の方法。
【請求項7】
前記コンテンツ配信ネットワークを選択することが、
前記現在のセッションを前記セッションのセット内の最後のセッションとして使用することを備え、ここにおいて、前記状態と関連する前記セッションが前記最後のセッションに隣接している、請求項1に記載の方法。
【請求項8】
前記第1の値のセット内の第1の値が、前記状態と関連する前記セッションと、前記セッションのセット内の、前記状態と関連する前記セッションより前のセッションとに基づいた、コンテンツ配信ネットワークに対する全体性能メトリックの最適値を表し、
前記状態と関連する前記セッションと、前記状態と関連する前記セッションより前の前記セッションとにわたって、前記複数のコンテンツ配信ネットワーク内の前記コンテンツ配信ネットワークのそれぞれを選択するように割り振りが満たされる、請求項7に記載の方法。
【請求項9】
前記選択されたコンテンツ配信ネットワークが、前記メディアコンテンツのインスタンスを要求したクライアントへ、前記メディアコンテンツのインスタンスを配信するようにすることをさらに備える、請求項1に記載の方法。
【請求項10】
前記セッションのセットに対する前記性能メトリックに基づいて、前記セッションのセットの最適性能を決定することと、
前記状態と関連する前記セッションの最適性能に基づいて前記状態を記憶することとをさらに備える、請求項1に記載の方法。
【請求項11】
前記最適性能が、前記セッションのセットにわたって前記複数のコンテンツ配信ネットワーク内の前記コンテンツ配信ネットワークのそれぞれを選択するための割り振りに基づいている、請求項10に記載の方法。
【請求項12】
前記割り振りは、それぞれのコンテンツ配信ネットワークが前記セッションのセット内で選択されるべき回数に対する制限を指定する、請求項11に記載の方法。
【請求項13】
前記最適性能を決定することが、
割り振りに至るまで、異なる割り振りに対する複数の状態を決定することを備え、ここにおいて、前記複数の状態のうちの1つの状態が、それぞれの割り振りにおける性能メトリックの最適値を表す、請求項10に記載の方法。
【請求項14】
前記最適値が、前記それぞれの割り振りに対する前記性能メトリックの最適化全体値である、請求項13に記載の方法。
【請求項15】
メディアコンテンツのインスタンスの複数の要求を処理する際に使用するための複数の状態を記憶することをさらに備え、ここにおいて、前記複数の状態のうちの状態が、異なるセッションのセットに基づいている、請求項1に記載の方法。
【請求項16】
前記複数の状態のうちの異なる状態が、メディアコンテンツのインスタンスの異なる要求に対して1つのコンテンツ配信ネットワークを選択するために使用される、請求項15に記載の方法。
【請求項17】
前記複数の状態のうちの状態は、メディアコンテンツのインスタンスの要求を処理するために状態が反復して使用されるループを形成する、請求項15に記載の方法。
【請求項18】
コンピュータ実行可能命令を記憶している非一時的なコンピュータ可読記憶媒体であって、コンピュータ実行可能命令は、コンピュータデバイスによって実行されると、前記コンピュータデバイスが、
現在のセッションにおいてメディアコンテンツのインスタンスの要求を受信するように、ならびに、
セッションのセット内の1つのセッションについて決定される複数のコンテンツ配信ネットワークの状態を取得するように動作可能になり、ここにおいて、前記状態が性能メトリックの第1の値のセットを含み、ここにおいて、前記第1の値のセットが前記複数のコンテンツ配信ネットワークと関連しており、前記コンピュータデバイスがさらに、
前記現在のセッションに対する前記性能メトリックの第2の値のセットを決定するように動作可能になり、ここにおいて、前記第2の値のセットが前記複数のコンテンツ配信ネットワークと関連しており、前記コンピュータデバイスがさらに、
前記現在のセッションにおける前記要求に対して、前記複数のコンテンツ配信ネットワーク内の1つのコンテンツ配信ネットワークを、前記現在のセッションを前記セッションのセット内の1つのセッションとして扱うことに基づいて選択するように動作可能になり、前記現在のセッションに対する前記セッションが、前記セッションのセット内の、前記状態に対する前記セッションの後であり、ここにおいて、前記選択することが、前記状態からの前記第1の値のセットと前記現在のセッションからの前記第2の値のセットとを最適化することに基づいている、非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記コンテンツ配信ネットワークを選択することが、
前記現在のセッションを前記セッションのセット内の最後のセッションとして使用することを備え、ここにおいて、前記状態と関連する前記セッションが前記最後のセッションに隣接している、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
【請求項20】
1つまたは複数のコンピュータプロセッサと、
前記1つまたは複数のコンピュータプロセッサを制御するための命令を備えるコンピュータ可読記憶媒体とを備える装置であって、前記1つまたは複数のコンピュータプロセッサが、
現在のセッションにおいてメディアコンテンツのインスタンスの要求を受信するように、ならびに、
セッションのセット内の1つのセッションについて決定される複数のコンテンツ配信ネットワークの状態を取得するように動作可能であり、ここにおいて、前記状態が性能メトリックの第1の値のセットを含み、ここにおいて、前記第1の値のセットが前記複数のコンテンツ配信ネットワークと関連しており、前記1つまたは複数のコンピュータプロセッサがさらに、
前記現在のセッションに対する前記性能メトリックの第2の値のセットを決定するように動作可能であり、ここにおいて、前記第2の値のセットが前記複数のコンテンツ配信ネットワークと関連しており、前記1つまたは複数のコンピュータプロセッサがさらに、
前記現在のセッションにおける前記要求に対して、前記複数のコンテンツ配信ネットワーク内の1つのコンテンツ配信ネットワークを、前記現在のセッションを前記セッションのセット内の1つのセッションとして扱うことに基づいて選択するように動作可能であり、前記現在のセッションに対する前記セッションが、前記セッションのセット内の、前記状態に対する前記セッションの後であり、ここにおいて、前記選択することが、前記状態からの前記第1の値のセットと前記現在のセッションからの前記第2の値のセットとを最適化することに基づいている、装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、参照によりその全体がすべての目的のために本明細書に組み込まれる、2022年7月25日に出願されたDAIらのCONTENT DELIVERY NETWORK(CDN)SELECTION USING PERFORMANCE METRICという名称の同時係属の国際出願番号PCT/CN2022/107669(整理番号DISNP325WO)の継続出願であり、その優先権を主張する。
【背景技術】
【0002】
[0002]ビデオ配信システムは、ビデオをクライアントに配信するのに複数のコンテンツ配信ネットワーク(CDN)を使用することができる。クライアントがビデオを要求すると、ビデオ配信システムは、その要求を再生セッション中に処理するようにコンテンツ配信ネットワークのうちの1つを選択することができる。コンテンツ配信ネットワークを選択すると、クライアントは、ビデオをストリーミングするために、そのコンテンツ配信ネットワークと通信する。
【0003】
[0003]異なるコンテンツ配信ネットワークが、異なるサービス品質(QoS)を異なるクライアントに提供し得る。したがって、クライアントに割り当てられるコンテンツ配信ネットワークは、再生セッション中の再生経験に影響を及ぼし得る。たとえば、ビデオを再生するクライアントに、第1のコンテンツ配信ネットワークが第1のサービス品質を提供することがあり、第2のコンテンツ配信ネットワークが第2のサービス品質を提供することがある。第1のサービス品質および第2のサービス品質の再生経験が異なるときには、ビデオ配信システムが、より高いサービス品質をもたらし得るコンテンツ配信ネットワークをビデオの再生セッションに割り当てることが望ましい場合があるが、ランダム選択を使用すると、ビデオ配信システムは、コンテンツ配信ネットワークをビデオの要求に対して最適に割り当てない可能性がある。
【発明の概要】
【0004】
[0004]以下の議論および図面に関して、示された詳細は、説明的な議論の目的のための例を表しているとともに、本開示の原理および概念上の態様の説明をするために提示されていることが強調される。この点で、本開示の基本的な理解のために必要とされる以上には実施態様の詳細を示す試みがなされていない。後に続く議論は、図面と併せて、本開示による実施形態がどのように実践され得るかを当業者に明らかにするものである。同様または同一の参照番号が、様々な図面および補助説明中で、同様または同一の要素を識別するために、または別に参照するために使用されることがある。
【図面の簡単な説明】
【0005】
【
図1】[0005]いくつかの実施形態による、コンテンツ配信ネットワーク(CDN)を選択するための簡略化されたシステムを示す図。
【
図2】[0006]いくつかの実施形態による、CDN選択システムのより詳細な例を示す図。
【
図3】[0007]いくつかの実施形態による、コンテンツ配信ネットワークを選択するための方法の簡略化されたフローチャートを示す図。
【
図4】[0008]いくつかの実施形態による、コンテンツ配信ネットワークを選択するためのより詳細な方法の簡略化されたフローチャートを示す図。
【
図5】[0009]いくつかの実施形態による、コンテンツ配信ネットワークにおけるこれら5つのセッションのQoS性能のテーブルを示す図。
【
図6A】[0010]いくつかの実施形態による、ステップバック状態の例をテーブルで示す図。
【
図6B】[0011]いくつかの実施形態による、それぞれのコンテンツ配信ネットワークのQoS性能を示すテーブル。
【
図7】[0012]1つの実施形態による、1つまたは複数の通信ネットワークを介して複数のクライアントと通信しているビデオストリーミングシステムを示す図。
【
図8】[0013]ビデオコンテンツおよび広告を見るための装置の概略図。
【発明を実施するための形態】
【0006】
[0014]本明細書では、ビデオ配信システムの技法が説明される。以下の説明では、説明のために、多数の例および具体的な詳細が、いくつかの実施形態についての完全な理解が得られるように示される。特許請求の範囲によって定義されるいくつかの実施形態は、これらの例における一部または全部の特徴を単独で、または以下で説明される他の特徴と一緒に含むことができ、また、本明細書に記載の特徴および概念の修正形態および等価物をさらに含むことができる。
【0007】
[0015]システムは、メディアコンテンツの要求に割り当てるためのコンテンツ配信ネットワークを選択することができる。この選択は、メディアコンテンツのインスタンスの配信の性能を多数のコンテンツ配信ネットワークについて測定する性能メトリックに基づくことができる。たとえば、性能メトリックは、サービス品質(QoS)性能メトリックであってよいが、他のメトリックが使用されてもよい。
【0008】
[0016]いくつかの実施形態では、システムは、要求に対してコンテンツ配信ネットワークを選択することについての制限を含み得る。いくつかの実施形態では、その制限は、コンテンツ配信ネットワークの割り振りに基づいている。たとえば、ビデオ配信システムは、各コンテンツ配信ネットワークに割り振られる要求の比率に対する制限を設定する構成を有し得る。この制限は、CDNとの契約上の義務または他の理由によるものであり得る。いくつかの例では、1つの単純な比率は、要求の30%がコンテンツ配信ネットワーク#1に割り振られるべきであり、要求の40%がコンテンツ配信ネットワーク#2に割り振られるべきであり、要求の20%がコンテンツ配信ネットワーク#3に割り振られるべきであり、要求の10%がコンテンツ配信ネットワーク#4に割り振られるべきものでよい。
【0009】
[0017]システムは、最大全体性能メトリックを達成するなどの、性能メトリックを最適化することに基づいて、さらに割り振りの制限を考慮しながら、コンテンツ配信ネットワークの選択を調整することができる。全体性能メトリックは、特定の割り振りを受けた全セッションの性能メトリックの和の最大値などの、特定の割り振りを受けた全セッションの性能メトリックの最大値に基づくことができる。システムは、1つのコンテンツ配信ネットワークをある要求にそれぞれが割り振った、セッションのバッチなどの履歴データを処理して、これらのセッションでは何が最適性能であったかを決定することができる。処理する際に、最適性能はまた、所望の割り振りを満たし得る。すなわち、コンテンツ配信ネットワーク#1に30%、コンテンツ配信ネットワーク#2に40%、コンテンツ配信ネットワーク#3に20%、およびコンテンツ配信ネットワーク#4に10%という割り振りとすると、システムは要求を、最適性能が得られるようにセッションに割り振る。最大全体性能メトリックが、上記の割り振りを遵守しながら得られる。次に、このプロセスでは、「ステップバック状態」と呼ばれる中間状態を保存することができ、この状態は、ステップバック状態と関連する要求より前の要求と、そのステップバック状態とに対する全体性能メトリック(たとえば、バッチ中の最後の要求より前の全体性能)を表す。次に、システムは、現在の要求に対するコンテンツ配信ネットワークを中間状態に基づいて選択し、このコンテンツ配信ネットワークは現在の要求を、ステップバック状態の後の要求(たとえば、バッチ中の最後の要求)として扱う。中間状態は、その状態が、バッチ中の最後の要求まで割り振りを満たすように要求を割り振るための最適性能を表すので、使用される。選択を行うために、コンテンツ配信ネットワークには、現在の要求に対する性能メトリックの値が割り当てられ得る。中間状態が、割り振りを満たすために達成され得る最適の性能を表している場合、プロセスは、中間状態と性能メトリックの現在の値とを使用して全体性能を最適化するために、要求に対するコンテンツ配信ネットワークを選択する。たとえば、システムは、最適全体性能を有するコンテンツ配信ネットワークを、中間状態と性能メトリックの現在の値とを考慮して選択する。後述されるように、このプロセスでは、セッションのバッチの全体性能メトリックを最適化しながら、所望の割り振りに基づいてコンテンツ配信ネットワークを選択することができる。
【0010】
[0018]中間状態を使用することで、コンテンツ配信ネットワークを選択するプロセスを改善することができる。たとえば、後述されるように、中間状態が、将来の要求に対してセッションのバッチを再処理する代わりに使用されるので、プロセスがより速く実施され得るとともに、使用される記憶装置がより少なくなり得る。加えて、コンテンツ配信ネットワークの改善された選択は、割り振りをなお考慮しながら性能メトリックの全体値を最適化することによって実施される。全体性能に基づく最適化は、コンテンツ配信ネットワークの性能を考慮に入れていなかったこともある従来技法と比較して、改善点になり得る。また、コンテンツ配信ネットワークの選択は、以前のセッションからの中間状態に基づいて決定論的にも行われる。このタイプの選択はまた、コンテンツ配信ネットワークをランダムに選択するために使用される選択確率を変更することとは異なることもある。性能メトリックの最適化は、メディアコンテンツを受信するクライアントにおいて、より良質の経験をもたらし得る。
【0011】
[0019]システム概要
[0020]
図1は、いくつかの実施形態による、コンテンツ配信ネットワーク106を選択するための簡略化されたシステム100を示す。システム100は、コンテンツ配信ネットワーク(CDN)106-1~106-Nと、クライアント102と、オリジンサーバ104と、サーバシステム108とを含む。コンテンツプロバイダは、エンティティが、オンデマンドビデオおよびライブビデオなどのメディアコンテンツのライブラリからのメディアコンテンツを要求および受信することを可能にするビデオ配信サービスを提供するために、サーバシステム108を動作させることができる。コンテンツプロバイダは、クライアント102へのメディアコンテンツの配信を調整するために、サーバシステム108を使用することができる。メディアコンテンツは、ビデオ、オーディオ、またはコンピュータデバイス上でレンダリングされることが可能な他のタイプのコンテンツ情報などの、様々なタイプのコンテンツを含み得る。ビデオは議論の目的のために使用され得るが、他のタイプのコンテンツも評価されてよい。メディアコンテンツのインスタンスは、ある要求に対して要求されるインスタンスであってもよい。たとえば、メディアコンテンツの第1のインスタンスは第1の番組に対するものであってもよく、メディアコンテンツの第2のインスタンスは第2の番組に対するものであってもよく、第3のインスタンスは第1の番組に対するものであってもよい、などである。
【0012】
[0021]コンテンツ配信ネットワーク106は、ビデオ配信サービスのためにメディアコンテンツのインスタンスを配信することができる。コンテンツ配信ネットワーク106は、メディアコンテンツのインスタンスをクライアント102に配信する、サーバなどの1つまたは複数のコンピュータデバイスを含み得る。コンテンツプロバイダは、そのメディアコンテンツのクライアント102への配信を支援するために多数のサードパーティコンテンツ配信ネットワークと契約することに加えて、それ自体のコンテンツ配信ネットワークを動作させることもできる。クライアント102の1つのインスタンスが示されているが、コンテンツ配信ネットワーク106は、メディアコンテンツをクライアント102の1つまたは複数のインスタンスに配信していてもよい。また、コンテンツ配信ネットワーク106は、地理的に分散していることがある、エッジノードなどの複数のコンピュータデバイスも含み得る。エッジノードは、メディアコンテンツのセグメントをオリジンサーバ104から受信し、そのセグメントを別のクライアント102に配信することができる。コンテンツ配信ネットワーク106に結合されているどのサーバも、本明細書に記載の機能を実施することができる。また、サーバシステム108およびコンテンツ配信ネットワーク106について説明されることがあるが、いずれかによって実施される機能は、2つのエンティティ間で分散されても、他のエンティティによって実施されてもよい。
【0013】
[0022]クライアント102は、スマートフォン、セットトップボックス、タブレットデバイス、リビングルームデバイス、ゲーム機などのコンピュータデバイスを含み得る。クライアント102は、コンテンツを再生することができるメディアプレーヤ114を含む。クライアント102は、メディアプレーヤ114によってメディアコンテンツのインスタンスを再生し始めるには、コンテンツ配信ネットワーク#2などの、コンテンツ配信ネットワーク106のうちの1つを使用することができる。
【0014】
[0023]サーバシステム108は、クライアント102からの、メディアコンテンツのインスタンスの要求を処理することができる。図示されていないが、サーバシステム108は、多数のクライアント102からの要求を順次と同時の両方で処理していることもある。たとえば、クライアント102は、複数のビデオを同時に、またはある期間内に要求するのにビデオ配信サービスを使用していることがある。
【0015】
[0024]オリジンサーバ104は、メディアコンテンツの表現を記憶装置112に記憶することができる。その表現は、異なるビットレートまたは品質(たとえば、解像度)で符号化されたメディアコンテンツの異なる表現などの、異なるコンテンツの再生特性を含み得る。たとえば、ビデオが、異なるビットレートで符号化されることがある。いくつかの例では、クライアント102は、各コンテンツ配信ネットワーク106からメディアコンテンツのインスタンスを要求することができ、各コンテンツ配信ネットワーク106は別個に、メディアコンテンツのインスタンスの表現で応じることができ得る。たとえば、各コンテンツ配信ネットワーク106は、オリジンサーバ104からのメディアコンテンツの表現を要求し受信することができる1つまたは複数のサーバを含み得る。この場合、各コンテンツ配信ネットワーク106は、メディアコンテンツのインスタンスをクライアント102に配信することができる。
【0016】
[0025]サーバシステム108は、メディアコンテンツのインスタンスの要求を処理するために、コンテンツ配信ネットワーク106のうちの1つを選択するように設定されている。コンテンツ配信ネットワーク(CDN)選択システム110は、その要求に対してコンテンツ配信ネットワークを選択し、コンテンツ配信ネットワーク106の選択を表す選択データをクライアント102に提供することができる。選択データは、それをクライアント102に提供することに加えて、またはそうする代わりに、選択されたコンテンツ配信ネットワーク106に提供されてもよい。次に、クライアント102は、メディアコンテンツのインスタンスのセグメントを要求するために、コンテンツ配信ネットワーク#2 106-2などの選択されたコンテンツ配信ネットワーク106と対話することができる。次に、コンテンツ配信ネットワーク#2 106-2は、そのセグメントをクライアント102に配信し、クライアント102は、メディアプレーヤ114にセグメントを表示することができる。
【0017】
[0026]クライアント102は、メディアコンテンツのインスタンスの再生中に、異なる再生状態を経験し得る。たとえば、再生状態は、コンテンツ配信ネットワーク106ごとに異なり得る。この結果、コンテンツのインスタンスがメディアクライアント102に異なる性能メトリックの値で配信されることになる。性能メトリックはサービス品質と呼ばれることがあり、このサービス品質は、メディアコンテンツのインスタンスをコンテンツ配信ネットワーク106からクライアント102へ配信するサービスの全体性能の測定値になり得る。サービス品質の性能メトリックを測定するために使用され得るいくつかのメトリックは、パケットロス、ビットレート、スループット、伝送遅延、ネットワーク可用性、ジッタなどのネットワーク性能と関係付けられ得る。性能メトリックは、1つまたは複数のメトリックに基づくことができる。
【0018】
[0027]CDN選択システム110は、要求に対して1つのコンテンツ配信ネットワーク106を選択プロセスに基づいて選択することができる。たとえば、CDN選択システム110は、要求に対して1つのコンテンツ配信ネットワーク106を選択するのに、複数のコンテンツ配信ネットワーク106に対する性能メトリックの解析を使用してもよく、これについては以下でさらに詳細に説明される。いくつかの実施形態では、CDN選択システム110は、メディアコンテンツのインスタンスの要求を受信すると即時に選択を実施することができる。すなわち、CDN選択システム110は、メディアコンテンツのインスタンス(たとえば、番組)の要求を受信し、コンテンツ配信ネットワーク#1~#Nのうちの1つを選択する。次に、CDN選択システム110は、選択されたコンテンツ配信ネットワークの識別情報をクライアント102に送信し、クライアント102は次に、その選択されたコンテンツ配信ネットワーク106からのメディアコンテンツのインスタンスを要求することができる。要求に対するコンテンツ配信ネットワーク106の選択を伝えるための他の方法もまた、評価されてよい。たとえば、CDN選択システム110は、選択されたコンテンツ配信ネットワーク106に要求を送信してもよく、そうすると、コンテンツ配信ネットワーク106はクライアント102と通信することができる。選択プロセスについては、
図2で始まる以下でより詳細に説明される。
【0019】
[0028]選択されたコンテンツ配信ネットワーク106からクライアント102へとメディアコンテンツのインスタンスが配信されると、性能メトリックが測定され得る。性能メトリックの測定は、異なる方法を使用して実施されてよく、たとえば、性能メトリックを測定するために使用される情報をクライアント102が送信してもよく、コンテンツ配信ネットワーク106がその情報を送信してもよい。たとえば、スループットが使用されている場合、ある期間にわたって配信されているメディアコンテンツのインスタンスのバイトが収集されてもよい。その後、スループットに基づく性能メトリックが、このクライアント102または他のクライアント102からのメディアコンテンツのその後の要求に対して1つのコンテンツ配信ネットワーク106を選択するために使用されてよい。スループットだけが性能メトリックに使用されている場合に、CDN選択システム110は、全体スループットを最適化することができる。他の性能メトリックが使用されている場合には、CDN選択システム110は、性能メトリックを組み合わせたものを最適化することができる。
【0020】
[0029]以下では、全体性能メトリックなどの性能メトリックを最適化することによってコンテンツ配信ネットワーク106を選択できる選択プロセスについて説明する。用語のQoS性能が議論の目的のために使用されることがあるが、QoS性能は、別の性能メトリックと交換され得る。選択プロセスは、コンテンツ配信ネットワーク106の割り振りに基づく制限などの制限を使用することができる。割り振りは、ある期間にコンテンツ配信ネットワーク106によって処理されるべき要求の所望の分布を指定することができる。たとえば、割り振りは、ある比率、百分率などであってもよい。割り振りは、百分率についてコンテンツ配信ネットワーク106と合意されたような異なる因子に基づいて、ある期間にわたっていくつの要求をコンテンツ配信ネットワーク106が処理すべきかに基づいてよい。いくつかの例では、割り振りが11:12:17であってよく、この場合、コンテンツ配信ネットワークAには、ある期間内に11個の要求が割り振られるべきであり、コンテンツ配信ネットワークBには、その期間内に12個の要求が割り振られるべきであり、コンテンツ配信ネットワークCには、その期間内に17個の要求が割り振られるべきである。CDN選択システム110は、割り振りを考慮しながら要求に対してコンテンツ配信ネットワーク106を選択する中で全体QoS性能を最適化する、選択プロセスを使用する。この全体QoS性能は、1つのセッションではなく多数のセッションにわたってQoS性能を最適化することに基づいてよい。後述されるように、コンテンツ配信ネットワーク106の割り振りでは、全体QoS性能を最適化しながら所望の割り振りからのドリフトを最小化しようとする。ドリフトとは、要求に対するコンテンツ配信ネットワークの総割り振りが、ある期間にわたって所望の割り振りに忠実ではないことがある場合であり得る。ドリフト最小化および全体QoS性能最適化は、全体QoS性能を最適化するセッションのバッチでのステップバック状態を決定することと、現在のセッションをバッチ中の最後のセッションとして扱うこととによって実施され得る。ステップバック状態は、所望の割り振りに従いながら、セッションのバッチ中の最後の要求より前の要求に対する全体性能メトリックを表す。次に、選択プロセスは、ステップバック状態および現在のセッションについての現在の予測QoS性能に基づいて、コンテンツ配信ネットワークを選択する。選択されたコンテンツ配信ネットワークは、全体QoS性能を最適化する。また、ドリフトは、使用されるセッションの数の因子として、ある期間にわたって最小化され得る。たとえば、ステップバック状態の全体QoS性能値が所望の割り振りに隣接する状態についてのものであるので、ドリフトは限定される。100セッションのバッチサイズが使用され、ステップバック状態が最初の99セッションに対するものである場合、現在のセッションが100番目のセッションとして扱われるときには、約1%(たとえば、100のうちの1つ)のドリフトが経験され得る。バッチサイズが1000セッションであり、ステップバック状態が最初の999セッションに対するものである場合、ドリフトは約0.1%になり得る。このプロセスについては次に、より詳細に説明される。
【0021】
[0030]CDN選択システム
[0031]
図2は、いくつかの実施形態によるCDN選択システム110のより詳細な例を示す。要求プロセッサ202は、メディアコンテンツのインスタンスの要求をクライアント102から受信する。図示されていないが、要求プロセッサ202は、メディアコンテンツのインスタンスの複数の要求を複数のクライアント102から受信していることがある。要求は、異なるメディアコンテンツの要求であっても、同じメディアコンテンツの要求であってもよい。たとえば、第1の要求は第1の番組の要求であり、第2の要求は第2の番組の要求であり、第3の要求は第1の番組の要求である。
【0022】
[0032]選択プロセスエンジン204は、要求に対して1つのコンテンツ配信ネットワークを選択することができる。コンテンツ配信ネットワーク106を選択すると、要求プロセッサ202は、選択されたコンテンツ配信ネットワーク106をクライアント102に返すことができる。選択プロセスを実施するために、選択プロセスエンジン204は、コンテンツ配信ネットワークについての割り振りと性能メトリックに対する値を受け取る。その値は、現在のセッションにおけるコンテンツ配信ネットワークの性能の予測値であってもよい。割り振りおよびそれぞれの性能メトリックに対する値に基づいて、選択プロセスエンジン204は、全体性能を最適化する1つのコンテンツ配信ネットワーク106を要求に対して選択する。いくつかの実施形態では、割り振りは、ある期間にわたって変化しないことがある。すなわち、割り振りは、コンテンツ配信ネットワーク106の複数の選択の間ずっと変更されないことがある。割り振りはいくつかの時点で変更され得るが、X個の要求に対して選択プロセスが実行されている間は、割り振りが変更されないことがある。性能メトリックは、メディアコンテンツをクライアント102に配信しているコンテンツ配信ネットワーク106から異なるメトリックが受信されるときに、変化し得る。
【0023】
[0033]次に以下で、選択プロセスをより詳細に説明する。CDN選択システム110は、割り振りの制限を条件として考慮しながら、最適化目標として全体QoS性能を最大化するなどの、QoS性能の最適化を試みることができる。いくつかの実施形態では、プロセスは、割り振りを満たそうとしながら全体QoS性能を最適化する。以下で一例を用いるが、他の例も理解され得る。この例では、コンテンツ配信ネットワークA、コンテンツ配信ネットワークB、およびコンテンツ配信ネットワークCと呼ばれる3つのコンテンツ配信ネットワーク106が使用され得るが、他の数のコンテンツ配信ネットワーク106が使用されてもよい。
【0024】
[0034]
図3は、いくつかの実施形態によるコンテンツ配信ネットワーク106を選択する方法の簡略化されたフローチャート300を示す。302で、CDN選択システム110は、現在の再生セッションにおいてクライアント102からメディアコンテンツの要求を受信する。上で論じられたように、コンテンツ配信ネットワーク106の選択は、要求を受信したときに動的に実施されてもよい。1つのセッションでは、要求が受信され、メディアコンテンツのインスタンスの再生が実施されてよい。
【0025】
[0035]304で、CDN選択システム110は、QoS性能情報を決定し、さらに、要求をコンテンツ配信ネットワーク106に分配するための割り振りを決定する。QoS性能情報は、再生セッションの履歴情報により決定され得る。また、QoS情報は、現在のセッションについての予測QoS性能情報であってもよい。予測されたQoS情報は、過去の性能に基づくなど、様々な方法で決定されてもよい。QoS性能情報の決定については、以下で
図4に関してより詳細に説明される。
【0026】
[0036]306で、CDN選択システム110は、QoS性能情報と、現在のセッションについての予測QoS性能と、割り振りとに基づいて、コンテンツ配信ネットワーク106を要求に対して選択する。以下で
図4に関して論じられるように、この選択では、割り振りからのドリフトを最小限にしながら全体QoS性能を最適化しようとする。
【0027】
[0037]
図4は、いくつかの実施形態による、コンテンツ配信ネットワーク106を選択するためのより詳細な方法のフローチャート400を示す。402で、CDN選択システム110は、過去のセッションのバッチのQoS性能情報を収集する。使用され得るセッションの数は、100セッション、150セッションなど、様々であり得る。また、セッションの数は、過去24時間などの、ある期間内のものでもあり得る。
【0028】
[0038]404で、CDN選択システム110は、402で受信されたQoS性能情報について最適性能を計算する。たとえば、402で受信されたセッションでは、CDN選択システム110は、そのセッションの最適化目標としてコンテンツ配信ネットワーク106を選択するために、全体QoS性能を最適化することができる。CDN選択システム110は、1つの条件を用いてQoS性能最適化を実施する。この場合、その限定条件は、コンテンツ配信ネットワーク106ごとに設定された割り振り制限である。以下では、最適化プロセスの一例について説明する。この例では、コンテンツ配信ネットワークA、コンテンツ配信ネットワークB、およびコンテンツ配信ネットワークCと名付けられた3つのコンテンツ配信ネットワーク106があり、これら3つのコンテンツ配信ネットワークにおける任意の1つのセッションのQoS性能は、それぞれ(pA、pB、pC)である。異なる方法が、QoS性能値を決定するのに使用されてもよい。いくつかの実施形態では、QoS性能値は過去のセッションから予測され得る。すなわち、履歴情報は、コンテンツ配信ネットワークが要求を処理した場合に、1つのセッション内でコンテンツ配信ネットワークごとに得られた可能性があるQoSを予測するのに使用され得る。履歴情報に基づいて補間を使用するなどの、QoS性能値を決定する他の方法もまた評価されてよい。これらのコンテンツ配信ネットワークにおける合計セッション数がSA、SBおよびSCである場合、CDN選択システム110は、これらのQoS性能の総計をそれぞれPA、PBおよびPCとして計算することができる。その設定において、これらのコンテンツ配信ネットワークの割り振り比率は、TA:TB:TCである。したがって、この場合、最適化目標は「max(PA+PB+PC)」であり、その限定制約は「SA:SB:SC=TA:TB:TC」である。これは、最大全体QoS性能が、割り振り比率が等しいセッションに対して選択されたコンテンツ配信ネットワークの制限に基づいて決定されることを意味する。いくつかの実施形態では、選択プロセスは、以下のように表され得る。
【0029】
【0030】
関数Fは、限定制約が満たされているコンテンツ配信ネットワークの全体QoS性能の項の和(s.t.)であり得る。上記において、CDN選択システム110は、最適化目標として「max(PA+PB+PC)」を使用し、ここで、maxは最大関数であり、Pは、それぞれのコンテンツ配信ネットワークの全体QoS性能である。全体値は、QoS性能の和などの、いくつかのセッションにわたるQoS性能の累積表現を表し得る。CDN選択システム110は、コンテンツ配信ネットワークA、BおよびCのトラフィックがそれぞれi、jおよびkであるときの最大全体QoS性能を表す中間結果を保存するために、状態関数F(i,j,k)を使用する。i、jおよびkの値は、いくつのセッションがそれぞれのコンテンツ配信ネットワークA、B、Cに割り振られているか、の値である。たとえば、状態関数F(2,1,3)は、i=2、j=1、k=3という値を含む。ここでは、2つの要求がコンテンツ配信ネットワークAに割り振られており、1つの要求がコンテンツ配信ネットワークBに割り振られており、3つの要求がコンテンツ配信ネットワークCに割り振られている。状態関数F(i,j,k)は、i、j、kで定義される特定の割り振りを受けた全セッションの全体QoS性能の最適値(たとえば、この性能メトリックの最大値)を表す。すなわち、状態関数は、CDN選択システム110が2つのセッションをコンテンツ配信ネットワークAに、1つのセッションをコンテンツ配信ネットワークBに、3つのセッションをコンテンツ配信ネットワークCに割り振ったときの、全体QoS性能の最適値を表す。したがって、状態関数はまた、割り振り制限(2、1、3)を受けて獲得され得る最適な全体QoS性能も表す。
【0031】
[0039]現在のセッションに対してコンテンツ配信ネットワーク106を選択するために、CDN選択システム110は状態遷移関数を使用する。たとえば、CDN選択システム110は、F(SA,SB,SC)の最適全体性能を計算するのに以下の状態遷移関数を使用する。
【0032】
【0033】
状態遷移関数は、異なる(隣接)状態関数間の関係を記述する。3つのコンテンツ配信ネットワークがある例では、状態関数F(i,j,k)は、F(i-1,j,k)、F(i,j-1,k)およびF(i,j,k-1)の状態関数と隣接している。すなわち、状態関数がF(8,12,15)である場合、隣接する状態関数は、F(7,12,15)、F(8,11,15)およびF(8,12,14)である。3つの状態関数は、それぞれのコンテンツ配信ネットワークのセッション値から1つのセッションを差し引く。状態遷移関数において、以前の状態は、コンテンツ配信ネットワークA、B、およびCそれぞれについて、「i-1」、「j-1」、「k-1」で表される。それぞれのコンテンツ配信ネットワークの以前の各状態には、コンテンツ配信ネットワークAのF(i-1,j,k)+pAのように、現在のQoS性能が加算されていてよい。この例では、F(7,12,15)がコンテンツ配信ネットワークAの現在のQoS性能値pAに加算される。
【0034】
[0040]CDN選択システム110は、この再生セッションのバッチの最適全体性能F(SA,SB,SC)を計算するのに状態遷移関数を使用する。たとえば、状態関数F(SA,SB,SC)の値を生成するプロセスでは、CDN選択システム110はF(0,0,0)から開始する。次に、F(0,0,0)に基づいて、F(1,0,0)、F(0,1,0)およびF(0,0,1)の結果が状態遷移関数を使用して決定される。プロセスの最後において、F(SA,SB,SC)が、F(SA-1,SB,SC)、F(SA,SB-1,SC)、およびF(SA,SB,SC-1)である以前の状態から最終的に決定される。
【0035】
[0041]以下では、再生セッションのバッチの最適全体QoS性能を決定するための状態遷移関数の使用を示す例について説明する。議論の目的のために5つのセッションが使用されるが、セッションの数は変わり得る。3つのコンテンツ配信ネットワークA、B、およびCについて、これらのコンテンツ配信ネットワークの割り振り比率の設定は、TA:TB:TC=1:2:2である。すなわち、5つの要求のうち、コンテンツ配信ネットワークAには1つの要求が割り振られるべきであり、コンテンツ配信ネットワークBには2つの要求が割り振られるべきであり、コンテンツ配信ネットワークCには2つの要求が割り振られるべきである。したがって、最終セッション数は、SA:SB:SC=1:2:2になると予想され、これは、状態関数F(SA,SB,SC)=F(1,2,2)が最終目標であることを意味する。
【0036】
[0042]
図5は、いくつかの実施形態による、コンテンツ配信ネットワークにおける5つのセッションのQoS性能のテーブル500を示す。テーブル500は、5つのセッションについて、セッション識別子を列502に列記している。セッションごとのQoS性能が、コンテンツ配信ネットワークA、B、およびCについて、列504、506、および508に列記されている。QoS性能は、履歴情報に基づいた予測性能であってよい。このQoS性能メトリックでは、QoS性能の小さい値が低いQoS性能を表し、大きい値が高いQoS性能を表す。たとえば、スループットに基づく最適性能メトリックは大きい値を有し、再バッファ率に基づく最適性能メトリックは小さくなり得る。これは、より高いスループットがより良好と考えられ、より少ない再バッファの発生がより良好と考えられるからである。以下では、最適全体QoS性能を決定するのに最大関数を使用するが、再バッファ率の場合には所望の合計がより小さくなければならないときには最小関数が使用されてもよいなど、最適全体QoS性能の決定では、他の関数を使用してもよい。この例では、セッション#1において、コンテンツ配信ネットワークAは0.3のQoS性能を有し、コンテンツ配信ネットワークBは0.5のQoS性能を有し、コンテンツ配信ネットワークCは0.9のQoS性能を有していた。すなわち、コンテンツ配信ネットワークCが要求のメディアコンテンツを配信した場合、コンテンツ配信ネットワークCが、セッション#1では最良のQoS性能を有していた。
【0037】
[0043]複数のセッションにわたって最適全体QoS性能を決定するために、CDN選択システム110は、状態関数F(1,2,2)の目標で最大全体QoS性能を計算する。以下は、状態ごとの最大全体QoS性能を計算するための段階的なプロセスを表す。このプロセスでは、F(1,2,2)の状態関数に到達するために、可能な各状態の組み合わせを計算することができる。このプロセスを通じて、状態関数F(1,2,2)に対するQoS性能はこの場合、可能な最大全体QoS性能を表す。
【0038】
[0044]最初の状態は、F(0,0,0)=0の状態であり、この場合、コンテンツ配信ネットワークに割り振られたセッションのバッチ中には何もセッションがなかったので、QoS性能の合計は0である。
【0039】
[0045]状態関数F(0,0,1)を計算するのに、全コンテンツ配信ネットワークに割り振られるセッションの総カウントは1(たとえば、0+0+1=1)セッションである。この場合、ここで割り振られるべきセッションは、このセッションが1つのセッションしか割り振っていないので、セッションid=1である。F(0,0,1)と隣接する状態関数は、割り振りに負の値が許され得ないので(たとえば、-1のセッション数は許されない)、F(0,0,0)だけである。状態遷移F(0,0,1)=F(0,0,0)+0.9=0.9である。項F(0,0,0)は、状態遷移関数の隣接状態を決定するために、F(0,0,1-1=0)である。上で論じられたように、F(0,0,0)の値=0である。また、0.9は、セッション1におけるコンテンツ配信ネットワークCのQoS性能である。これにより、この状態に対する全体QoS性能0.9が得られる。
【0040】
[0046]状態関数F(0,0,2)を計算するのに、ここで割り振られるべきセッションはセッションid=2であり、隣接する状態関数はF(0,0,1)である。状態関数の値は、F(0,0,2)=F(0,0,1)+0.3=0.9+0.3=1.2である。
【0041】
[0047]コンテンツ配信ネットワークCのセッション数は、割り振り比率ごとに2を超えないように制限されているので、CDN選択システム110は、状態関数F(0,0,3)を計算しない。次の状態関数は、F(0,1,0)となり得る。ここで割り振られるべきセッションは、1つのセッションが割り振られたので、再びセッションid=1であるが、セッションは今回、コンテンツ配信ネットワークBに割り振られる。状態関数の値は、F(0,1,0)=F(0,0,0)+0.5=0.5=0.0+0.5=0.5である。この0.5の値は、id=1のセッションにおけるコンテンツ配信ネットワークBの最大全体QoS性能である。
【0042】
[0048]別の状態関数は、F(0,1,1)である。ここで割り振られるセッションは、再びセッションid=2であるが、2つの状況があり得る。第1は、id=1のセッションがコンテンツ配信ネットワークBに割り当てられ、id=2であるセッションがコンテンツ配信ネットワークCに割り当てられる。別の状況では、セッション1(コンテンツ配信ネットワークC)とセッション2(コンテンツ配信ネットワークB)の割り振りが逆である。したがって、F(0,1,1)の隣接する状態関数は、F(0,1,0)およびF(0,0,1)である。次いで、CDN選択システム110は、状態関数F(0,1,1)=max{F(0,1,0)+0.3,F(0,0,1)+0.2}=max{0.5+0.3,0.9+0.2}=max{0.8,1.1}=1.1を計算することができる。この場合、状態関数F(0,1,0)の値は上記から0.5と決定され、状態関数F(0,0,1)の値は上記の0.9である。最大値は2つの値のうちの1.1が取られ、これは、この状態の最大全体QoS性能を表す。
【0043】
[0049]状態関数F(0,1,2)を計算するのに、3つのセッションがあるので、割り振られるべきセッションはここではid=3になる。F(0,1,2)の隣接する状態関数は、F(0,1,1)およびF(0,0,2)である。状態関数はF(0,1,2)=max{F(0,1,1)+1.0,F(0,0,2)+0.5}=max{1.1+1.0,1.2+0.5}=max{2.1,1.7}=2.1である。上記より、状態関数F(0,1,1)の値は1.1であり、コンテンツ配信ネットワークCのセッション#3におけるQoS性能は1.0である。また、状態関数F(0,0,2)の値は、上記より1.2であり、コンテンツ配信ネットワークBのセッション#3におけるQoS性能は0.5である。最大値は2つの値のうちの2.1が取られ、これは、この状態の最大全体QoS性能を表す。
【0044】
[0050]状態関数F(0,2、0)を計算するのに、割り振られるべきセッションはここでは再びid=2になるが、1つの隣接する状態関数F(0,1,0)しかない。したがって、状態関数の処理は、F(0,2,0)=F(0,1,0)+0.2=0.5+0.2=0.7である。状態関数F(0,1,0)の値は上記から0.5であり、セッション#2のコンテンツ配信ネットワークBの値は0.2である。0.7の値は、この状態の最大全体QoS性能である。
【0045】
[0051]状態関数F(0,2,0)を計算するのに、割り振られるべきセッションはここでは再びid=2になるが、1つの隣接する状態関数F(0,1,0)しかない。状態関数の処理は、F(0,2、1)=max{F(0,2,0)+1.0,F(0,1,1)+0.5}=max{0.7+1.0,1.1+0.5}=max{1.7,1.6}=1.7である。
【0046】
[0052]状態関数F(0,2,2)を計算するのに、割り振られるべきセッションはid=4である。隣接する2つの状態があり、状態関数の処理は、F(0,2、2)=max{F(0,2,1)+0.3,F(0,1,2)+0.5}=max{1.7+0.3,2.1+0.5}=max{2.0,2.6}=2.6である。
【0047】
[0053]以下では、他の状態関数の処理について説明するが、その処理は上記と類似している。以下の状態関数は、次式のように計算される:
【0048】
【0049】
[0054]状態関数の値は、その割り振りでの以前のセッションの全体QoS性能の最大値を表し得る。たとえば、状態関数F(1,2、2)=max{F(1,2、1)+0.3、F(1,1,2)+0.7、F(0,2、2)+0.2}=max{3.3+0.3,3.7+0.7,2.6+0.2}=4.4では、(1,2、2)の割り振り比率での全体QoS性能の最大値は4.4である。すなわち、このセッションに対してコンテンツ配信ネットワークBを選択すると、コンテンツ配信ネットワークAの3.6およびコンテンツ配信ネットワークCの2.8よりも大きい、4.4という最高の全体QoS性能が得られるはずである。コンテンツ配信ネットワークごとに、それぞれの値は、そのコンテンツ配信ネットワークが現在のセッションに対して選択されている場合に、そのセッションの最適全体QoS性能を表す。たとえば、コンテンツ配信ネットワークAには3.6の合計があり、コンテンツ配信ネットワークBには4.4の合計があり、コンテンツ配信ネットワークCには2.8の合計がある。これらの値は、セッションの全体QoS性能を数量化したものになる。上で論じられたように、その値の意味は、使用されている性能メトリックに基づいてよい。ここで、より高い値は、QoS性能がより高いことを意味する。
【0050】
[0055]
図4に戻って参照すると、406でCDN選択システム110は、404での上記の計算によるステップバック状態を保存する。CDN選択システム110は、所望の割り振りの値をステップバック状態として保存する。ステップバック状態とは、要求に対して1つのコンテンツ配信ネットワークが選択されるべき現在のセッションより前の状態のことである。このステップバック状態の値は、以前のセッションの最適全体QoS性能を表し得る。ステップバック状態を保存することによって、現在のセッションのためのコンテンツ配信ネットワークの選択がより速く実施され得る。たとえば、以前のセッションの全体QoS性能は、多数の要求を処理するのに、再度計算される必要がない。このことは、コンテンツ配信ネットワークを要求に対して割り当てるのに必要な時間を低減させる。また、ステップバック状態は、割り振りに至る前の状態から達成され得る最適全体QoS性能も表す。したがって、QoS性能を最適化することに加えて、これらのセッションに対する割り振り比率が遵守される。
【0051】
[0056]404で過去のセッションから計算された最適全体性能を用いて、CDN選択システム110は、ステップバック状態の結果に基づいて、受信された要求に対して1つのコンテンツ配信ネットワーク106を選択する。CDN選択システム110は、ステップバック結果に基づいて(たとえば、関数F(SA-1,SB,SC)、F(SA,SB-1,SC)およびF(SA,SB,SC-1)を使用して)、今後のセッションのためのコンテンツ配信ネットワークを選択する。その処理を実施するために、CDN選択システム110は、将来の要求に対するコンテンツ配信ネットワークの選択に必要とされるステップバック状態値を記憶している。具体的には、以前の406の例では、ステップバック状態は、F(SA-1,SB,SC)=F(0,2,2)=2.6、F(SA,SB-1,SC)=F(1,1,2)=3.7と、F(SA,SB,SC-1)=F(1,2,1)=3.3とを含む。CDN選択システム110は、全体QoS性能の値の組(2.6,3.7,3.3)を割り振りのステップバック状態として保存する。
【0052】
[0057]408で、CDN選択システム110は、ステップバックループを生成し更新する。いくつかの実施形態では、CDN選択システム110は、単一グループ中のサンプルによって生じたバイアスを避けるために、より多くのステップバック状態を使用する必要があり得るが、他の実施形態では、ステップバックループは使用されなくてもよい。いくつかの実施形態では、CDN選択システム110は、408でループを作成するためにステップバック状態を追加することができる。ループとは、CDN選択システム110が要求に対してコンテンツ配信ネットワークを選択するために使用する、いくつかのステップバック状態のことである。CDN選択システム110は、受信される要求ごとにループ内の新たなステップバック状態を使用して、ステップバック状態を通ってループすることができる。ループの終わりに達すると、CDN選択システム110は、ステップバック状態を再利用するためにループの初めにループバックする。たとえば、CDN選択システム110は、ステップバック状態として200グループのセッション(たとえば、それぞれ100セッションからなる200グループからのステップバック状態)を使用することを要望し得る。408の上記の処理では、100セッションからなる1つのグループのステップバック状態を計算した。他の199のステップバック状態もまたループに含まれ得る。新たな要求を処理するのに、すべての要求に対して同じステップバック状態ではなく、ループ内の異なるステップバック状態が使用されるので、バイアスが回避され得る。
【0053】
[0058]CDN選択システム110は、ある期間にわたって使用される100グループのセッションを変更できるループを形成することができる。異なる方法のうちの1つが、ステップバック状態ループを更新するために使用されてよい。たとえば、CDN選択システム110は、先入れ先出し(FIFO)キューなどのキューを使用してもよい。新たなステップバック状態が生成されると、CDN選択システム110は、新たなステップバック状態をキューに記憶することができ、キューの先頭にある最後のステップバック状態がドロップされる。このようにして、CDN選択システム110は、ループ内のステップバック状態を増分更新する。CDN選択システム110はまた、使用されるステップバック状態を更新するのに、1回限りの更新を使用してもよい。CDN選択システム110は、新たなループを形成するのに100の最新ステップバック状態を蓄積してもよい。その後、CDN選択システム110は、以前のステップバック状態ループを新たなステップバック状態と直接置き換える。
【0054】
[0059]ステップバック状態のループを生成した後、410でCDN選択システム110は、要求に対して最適コンテンツ配信ネットワーク106を選択する。いくつかの実施形態では、CDN選択システム110は、ステップバック状態ループを更新する前に、ステップバック状態ループを使用して単一の要求を処理することができる。他の実施形態では、CDN選択システム110は、ステップバック状態ループを更新する前に、ステップバック状態ループを使用して多数の要求を処理することができる。
【0055】
[0060]要求に対して1つのコンテンツ配信ネットワーク106を選択するために、CDN選択システム110は状態遷移関数を使用して、全体QoS性能を最適化するコンテンツ配信ネットワーク106を選択することができる。遷移関数を使用する際に、CDN選択システム110は、ループ内のステップバック状態を使用することができ、100セッションのうちの100番目のセッションなどの、バッチ内の最後のセッションとして要求を考慮する。すなわち、CDN選択システム110は、要求に対するコンテンツ配信ネットワーク106を以前の99セッションの後の100番目のセッションである要求に基づいて決定するのに、遷移関数を使用する。たとえば、CDN選択システム110は、最高の全体QoS性能を有する100番目のセッションのコンテンツ配信ネットワークを選択する。ステップバック状態が、以前のセッションのコンテンツ配信ネットワークの最適全体QoS性能を示している場合、CDN選択システム110は、現在のセッションのどのコンテンツ配信ネットワークが最高の全体QoS性能をもたらすかを決定することができる。たとえば、現在のセッションのコンテンツ配信ネットワークの予測QoS性能は、ステップバック状態のそれぞれのQoS性能に加算され得る。結果として得られる値は、現在のセッションで選択された場合のそのコンテンツ配信ネットワークの全体QoS性能を示す。最高の全体QoS性能(ステップバック状態+現在のQoS)を有するコンテンツ配信ネットワークを選択することによって、CDN選択システム110は、コンテンツ配信ネットワークを選択するときに全体QoS性能を最大化することができる。以下では、要求に対するコンテンツ配信ネットワーク106の選択の一例について説明する。
【0056】
[0061]
図6Aは、いくつかの実施形態による、ステップバック状態の例をテーブル600に示す。3つのステップバック状態がこの例には示されているが、200のステップバック状態など、より多くのステップバック状態がテーブル中にあり得る。602で、テーブル600は、ステップバック状態識別子を列記している。列604、606、および608には、コンテンツ配信ネットワークA、コンテンツ配信ネットワークB、およびコンテンツ配信ネットワークCそれぞれのステップバック状態識別子ごとに、ステップバック状態が示されている。609で示されるように、406で決定されたステップバック状態は、テーブル600に格納されている。他のステップバック状態が、上述のようにループに追加されていることもある。
【0057】
[0062]この例では、割り振られるべき4つの要求に対して4つのセッションがある。
図6Bは、いくつかの実施形態による、それぞれのコンテンツ配信ネットワークのQoS性能を示すテーブル610を示す。列612は、セッション識別子を示す。次いで、列614、616、および618はそれぞれ、コンテンツ配信A、コンテンツ配信B、およびコンテンツ配信ネットワークCのQoS性能を示す。QoS性能は、現在のセッションについてのコンテンツ配信ネットワークの予測性能であり得る。たとえば、現在のセッションについてのコンテンツ配信ネットワークのQoS性能を予測するためにモデルが訓練されてもよく、または過去のセッションに基づいた補間が使用されてもよい。
【0058】
[0063]CDN選択システム110は、テーブル610に示されたセッションごとにコンテンツ配信ネットワーク106を選択することができる。これらのセッションは、順番に受信され処理される要求に対するものであってよい。たとえば、CDN選択システム110は、セッション1の要求を受信し、セッション1に対して1つのコンテンツ配信ネットワークを選択することができる。次に、CDN選択システム110は、セッション2の要求を受信し、セッション2に対して1つのコンテンツ配信ネットワークを選択することができ、以下同様である。一般に、ステップバック状態の値を調べて、ステップバック状態における値の差が、コンテンツ配信ネットワークの選択を決定するのに使用され得る。セッション1では、コンテンツ配信ネットワークBが、コンテンツ配信ネットワークCよりも0.4高いQoS性能を有する(3.7-3.3=0.4)。また、コンテンツ配信ネットワークBは、コンテンツ配信ネットワークAよりも1.1高いQoS性能を有する(3.7-2.6=1.1)。したがって、コンテンツ配信ネットワークBよりもコンテンツ配信ネットワークCを選択するためには、コンテンツ配信ネットワークCの現在のQoS性能値がコンテンツ配信ネットワークBよりも0.4高くなければならない。同様に、コンテンツ配信ネットワークBよりもコンテンツ配信ネットワークAを選択するためには、コンテンツ配信ネットワークAの現在のQoS性能値がコンテンツ配信ネットワークBよりも1.1高くなければならない。
【0059】
[0064]セッション1では、ID=1のステップバック状態が、コンテンツ配信ネットワークを選択するために使用されるステップバック状態である。上で論じられたように、CDN選択システム110は、バイアスを回避するために、ループ内の異なるステップバック状態を使用することができる。以下では、状態遷移関数(i、j、k)=max{F(i-1,j,k)+p
A、F(i,j-1,k)+p
B,F(i,j,k-1)+p
C}を使用して、コンテンツ配信ネットワークを選択するための値を計算する。状態遷移関数の値は、x
A+F(S
A-1,S
B,S
C)=0.2+2.6=2.8、x
B+F(S
A,S
B-1,S
C)=0.4+3.7=4.1,x
C+F(S
A,S
B,S
C-1)=0.7+3.3=4.0である。第1項において、ステップバック状態は、コンテンツ配信ネットワークAでは2.6であり、
図6Aで620に示されている。この場合、現在のセッションにおけるコンテンツ配信ネットワークAのQoS性能は、622において0.2である。したがって、状態遷移関数の第1項の値は、0.2+2.6=2.8になる。第2項において、ステップバック状態は、コンテンツ配信ネットワークBでは3.7であり、
図6Aで624に示されている。この場合、現在のセッションにおけるコンテンツ配信ネットワークBのQoS性能は、626において0.4である。したがって、状態遷移関数の第2項の値は、0.4+3.7=4.1になる。第3項において、ステップバック状態は、コンテンツ配信ネットワークCでは3.3であり、
図6Aで628に示されている。この場合、現在のセッションにおけるコンテンツ配信ネットワークCのQoS性能は、630において0.7である。したがって、状態遷移関数の第3項の値は、0.7+3.3=4.0になる。次いで、CDN選択システム110は、決定された値を比較することによって最大の項を決定する。ここで値は、コンテンツ配信ネットワークA、B、Cそれぞれについて2.8、4.1、4.0である。コンテンツ配信ネットワークBの第2項、x
B+F(S
A,S
B-1,S
C)が最大であるので、CDN選択システム110は、セッション1にはコンテンツ配信ネットワークBを選択する。コンテンツ配信ネットワークBを選択することは、状態遷移関数の値が最大であるので、全体QoS性能を最適化し得る。これは、この要求に対してコンテンツ配信ネットワークBを選択することが、全体QoS性能を最大化し得ることを意味する。
【0060】
[0065]セッション2では、ID=2のステップバック状態が、コンテンツ配信ネットワークを選択するために使用される。これは、ループ内の第2のステップバック状態である。状態遷移関数の値は、xA+F(SA-1,SB,SC)=0.3+3.2=3.5、xB+F(SA,SB-1,SC)=0.5+3.3=3.8、xC+F(SA,SB,SC-1)=0.6+3.6=4.2である。コンテンツ配信ネットワークCの第3項、xC+F(SA,SB,SC-1)が最大であるので、CDN選択システム110は、セッション2にはコンテンツ配信ネットワークCを選択する。
【0061】
[0066]セッション3では、ID=3のステップバック状態が、コンテンツ配信ネットワークを選択するために使用される。状態遷移関数の値は、xA+F(SA-1,SB,SC)=3.3<xC+F(SA,SB,SC-1)=3.9<xB+F(SA,SB-1,SC)=4.1である。コンテンツ配信ネットワークBの第2項、F(SA,SB-1,SC)が最大であるので、CDN選択システム110は、セッション3にはコンテンツ配信ネットワークBを選択する。
【0062】
[0067]セッション4では、ID=1のステップバック状態が、コンテンツ配信ネットワークを選択するために再び使用される。この理由は、ループ内のステップバック状態が順番に使用され、このステップバック状態が、セッション3が使用された後にループ内でセッション3からセッション1まで反復するからである。状態遷移関数の値は、xA+F(SA-1,SB,SC)=4.0>xB+F(SA,SB-1,SC)=3.9>xC+F(SA,SB,SC-1)=3.5である。コンテンツ配信ネットワークAの第1項、xA+F(SA-1,SB,SC)が最大であるので、CDN選択システム110は、セッション4にはコンテンツ配信ネットワークAを選択する。もっと多くのセッションがある場合にも、CDN選択システム110は、ステップバック状態およびQoS性能値について同様の処理を実施する。
【0063】
[0068]CDN選択システム110は、すべてのセッションのQoS性能をコンテンツ配信ネットワーク106上で、固定された分布を形成しているとして扱うことができる。その分布において、各セッションは等価であり、独立して分布している。この場合、いずれかのセッションが一括して置き換えられたとしても各セッションが独立して決定されるので、設定されたトラフィック割り振りによって決まる結果は依然として維持され得る。たとえば、ある期間にわたって、コンテンツ配信ネットワークのQoS性能は、それぞれの確率分布(たとえば、平均値が0.9で分散が0.01のガウス分布)に従う。この場合、任意のセッションについて、異なるCDNにおけるQoS性能は、分布内のサンプリングになる。すべてのサンプルが完全な分布から来る場合には、100サンプルが任意に選択されてよく、計算されたステップバック状態は同じになる。言い換えると、これらのサンプルは互いに置き換えられ得る。
【0064】
[0069]CDN選択システム110は、多くの利点が得られるようにしてコンテンツ配信ネットワーク106を選択する。たとえば、QoS性能が全体で改善されるので、システムの全体性能が改善され得る。また、所望のトラフィック割り振りが選択によって考慮に入れられ、ドリフトが最小化される。
【0065】
[0070]コンテンツ配信ネットワークのランダム選択と比較して、以下のプロセスでは、コンテンツ配信ネットワークを選択するときに、異なるコンテンツ配信ネットワーク106間の最適化された全体QoS性能差を考慮に入れる。QoS性能を考慮に入れることで全体QoS性能を改善することができ、この改善は、メディアコンテンツの配信中により良好な条件が得られる場合にストリーミングおよびユーザ経験を改善する。この選択では、全体性能を改善するために決定論的な選択を行うが、全体割り振り比率が考慮に入れられることもまた確保する。
【0066】
[0071]システム
[0072]本明細書に開示された特徴および態様は、
図7に示されるように、1つまたは複数の通信ネットワークを介して多数のクライアントと通信するビデオストリーミングシステム700と組み合わせて実施され得る。ビデオストリーミングシステム700の態様は、本開示に応じて用意されたコンテンツの配布および配信を可能にするための適用例の一例を提供するために説明されるにすぎない。この技術は、ストリーミングビデオ用途に限定されず、他の用途および配信機構にも適合され得ることを理解されたい。
【0067】
[0073]1つの実施形態では、メディア番組プロバイダは、メディア番組のライブラリを含み得る。たとえば、メディア番組は、サイト(たとえば、ウェブサイト)、アプリケーション、またはブラウザを通して集約され提供され得る。ユーザは、メディア番組プロバイダのサイトまたはアプリケーションにアクセスし、メディア番組を要求することができる。ユーザは、メディア番組プロバイダによって提供されるメディア番組だけを要求するように制限されることがある。
【0068】
[0074]システム700では、ビデオデータは、ビデオコンテンツサーバ702への入力として使用するために、たとえば、ビデオソース710からの1つまたは複数のソースから取得され得る。入力ビデオデータは、任意の適切なデジタルフォーマットの、たとえば、動画像符号化専門家会合(MPEG)-1,MPEG-2、MPEG-4、VC-1,H.264/アドバンストビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、または他のフォーマットの生の、または編集されたフレームベースのビデオデータを備え得る。代替形態では、ビデオは非デジタルフォーマットで提供され、スキャナまたはトランスコーダを使用してデジタル形式に変換されてもよい。入力ビデオデータは、様々なタイプのビデオクリップまたは番組、たとえば、テレビ番組作品と、動画と、消費者にとって関心のある一次コンテンツとして制作された他のコンテンツとを備え得る。ビデオデータはまた、音声を含むこともあったり、音声だけが使用されたりすることもある。
【0069】
[0075]ビデオストリーミングシステム700は、1つまたは複数のコンピュータ上に分散された1つまたは複数のコンピュータサーバもしくはモジュール702、704、または707を含み得る。各サーバ702、704、707は、1つまたは複数のデータ記憶装置709、たとえばデータベース、インデックス、ファイル、または他のデータ構造を含み得るか、これらに動作可能に結合され得る。ビデオコンテンツサーバ702は、様々なビデオセグメントのデータ記憶装置(図示せず)にアクセスすることができる。ビデオコンテンツサーバ702は、クライアントと通信するユーザインターフェースコントローラによって指示されると、ビデオセグメントを供給することができる。本明細書で用いられるビデオセグメントとは、テレビ番組作品、動画、記録された生演奏、または他のビデオコンテンツを見るためのストリーミングビデオセッションで使用され得るような、フレームベースのビデオデータの限定的な一部分を指す。
【0070】
[0076]いくつかの実施形態では、ビデオ広告サーバ704は、特定の広告主またはメッセージのための広告として構成された比較的短いビデオ(たとえば、10秒、30秒、または60秒のビデオ広告)のデータ記憶装置にアクセスすることができる。この広告は、ある種の支払いと引き換えに広告主のために提供されてもよく、またはシステム700の販売促進メッセージ、公共サービスメッセージ、または何か他の情報を備えてもよい。ビデオ広告サーバ704は、ユーザインターフェースコントローラ(図示せず)によって指示されると、ビデオ広告セグメントを供給することができる。
【0071】
[0077]ビデオストリーミングシステム700はまた、CDN選択システム110も含み得る。
【0072】
[0078]ビデオストリーミングシステム700は、ビデオコンテンツとビデオ広告をストリーミングビデオセグメントに統合する、統合およびストリーミングコンポーネント707をさらに含み得る。たとえば、ストリーミングコンポーネント707は、コンテンツサーバまたはストリーミングメディアサーバであってよい。コントローラ(図示せず)は、任意の適切なアルゴリズムまたはプロセスに基づいて、ストリーミングビデオ中の広告の選択または構成を決定することができる。ビデオストリーミングシステム700は、
図7に示されていない他のモジュールまたはユニット、たとえば、管理サーバ、商取引サーバ、ネットワークインフラストラクチャ、広告選択エンジンなどを含み得る。
【0073】
[0079]ビデオストリーミングシステム700は、データ通信ネットワーク712に接続することができる。データ通信ネットワーク712は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、たとえばインターネット、電話網、ワイヤレスセルラ電気通信ネットワーク(WCS)714、またはこれらもしくは同様のネットワークの何らかの組み合わせを備え得る。
【0074】
[0080]1つまたは複数のクライアント720は、データ通信ネットワーク712、ワイヤレスセルラ電気通信ネットワーク714、または別のネットワークを介して、ビデオストリーミングシステム700と通信していることが可能である。このようなクライアントは、たとえば、1つまたは複数のラップトップコンピュータ720-1,デスクトップコンピュータ720-2、「スマート」携帯電話720-3、タブレットデバイス720-4、ネットワーク対応テレビジョン720-5、またはこれらの組み合わせを、LAN用のルータ718を介して、ワイヤレスセルラ電気通信ネットワーク714用の基地局717を介して、または何か他の接続を介して含み得る。動作中、このようなクライアント720は、ユーザ入力デバイスから受信されたユーザ入力または他の入力に応答して、システム700との間でデータまたは命令を送信および受信し得る。それに応じて、システム700は、メディア番組の選択に対応するデータ記憶装置709からのビデオセグメントおよびメタデータをクライアント720に供給することができる。クライアント720は、ストリーミングビデオセグメントからのビデオコンテンツをメディアプレーヤに、ディスプレイスクリーン、プロジェクタ、または他のビデオ出力デバイスを使用して出力するとともに、ビデオコンテンツと対話するためのユーザ入力を受け取ることができる。
【0075】
[0081]オーディオビデオデータの配布は、ストリーミングコンポーネント707からリモートクライアントへ、コンピュータネットワークと、電気通信ネットワークと、このようなネットワークの組み合わせとを介して、様々な方法、たとえばストリーミングを用いて実施され得る。ストリーミングの際、コンテンツサーバは、クライアント上で少なくとも一部動作するメディアプレーヤコンポーネントにオーディオビデオデータを連続的にストリーミングし、メディアプレーヤコンポーネントは、サーバからストリーミングデータを受信すると同時にオーディオビデオデータを再生することができる。ストリーミングが論じられたが、他の配信の方法も使用されてよい。メディアプレーヤコンポーネントは、データの初期部分をコンテンツプロバイダから受信した直後にビデオデータの再生を開始することができる。従来のストリーミング技法では、データのストリームをエンドユーザの集合に配信する、単一のプロバイダを用いる。単一のストリームを多数の視聴者に配信するには、大きい帯域幅および処理能力が必要とされる可能性があり、エンドユーザの数が増加するにつれて、プロバイダの必要帯域幅が増加し得る。
【0076】
[0082]ストリーミングメディアは、オンデマンドまたはライブで配信され得る。ストリーミングは、ファイル内の任意の点における即時再生を可能にする。エンドユーザは、再生を開始するのに、または再生をメディアファイル内の任意の点へ変更するのに、メディアファイル中をスキップすることができる。したがって、エンドユーザは、ファイルが徐々にダウンロードされるのを待つ必要がない。通常、ストリーミングメディアは、高い帯域幅能力を有する少数の専用サーバから特化デバイスを介して配信され、この専用デバイスは、ビデオファイルの要求を受け付け、これらのファイルのフォーマット、帯域幅および構造についての情報を用いて、ビデオを再生するのに必要な量のデータを、それを再生するのに必要な速度で配信する。ストリーミングメディアサーバはまた、送信先クライアントのメディアプレーヤの伝送帯域幅および能力を明らかにすることもできる。ストリーミングコンポーネント707は、ビデオが再生されるときに変化するネットワーク状況に適合するために、制御メッセージおよびデータ・メッセージを使用してクライアント720と通信することができる。これらの制御メッセージは、クライアントにおける早送り、早戻し、一時停止、またはファイルの特定の部分へのシークなどの制御機能を有効にするためのコマンドを含むことができる。
【0077】
[0083]ストリーミングコンポーネント707は、必要とされるだけのビデオデータを必要とされる速度で送信するので、供給されるストリーム数の正確な制御が維持され得る。視聴者は、低いデータ転送速度の伝送媒体を介して高いデータ転送速度のビデオを見ることはできない。しかし、ストリーミングメディアサーバは、(1)ユーザにビデオファイルへのランダムアクセスを提供し、(2)誰がどのビデオプログラムを見ているか、またそれがどのくらいの時間見られているかの監視を可能にし、(3)視聴経験をサポートするのに必要な量のデータだけが送信されるので、伝送帯域幅をより効率的に使用し、(4)ビデオファイルは視聴者のコンピュータに記憶されずに、メディアプレーヤによって廃棄されるので、コンテンツのいっそうの管理が可能になる。
【0078】
[0084]ストリーミングコンポーネント707は、HTTPおよびリアルタイムメッセージングプロトコル(RTMP)などのTCPベースのプロトコルを使用することができる。ストリーミングコンポーネント707はまた、ライブウェブキャストを配信することもでき、またマルチキャストすることができ、これにより、複数のクライアントが単一のストリームにチューニングすることが可能になり、それによって帯域幅が節約される。ストリーミングメディアプレーヤは、メディアプログラム中の任意のポイントにランダムアクセスするためにビデオ全体のバッファリングに依拠しなくてもよい。そうしないで、このランダムアクセスは、メディアプレーヤからストリーミングメディアサーバへ送信される制御メッセージを使用して達成される。ストリーミングに使用される他のプロトコルは、ハイパーテキスト転送プロトコル(HTTP)ライブストリーミング(HLS)またはダイナミックアダプティブストリーミングオーバHTTP(DASH)である。HLSプロトコルおよびDASHプロトコルは、通常は1つまたは複数のコンテンツ配信ネットワーク(CDN)から様々なビットレートで利用可能になる小さなセグメントのプレイリストを介して、HTTPによってビデオを配信する。これにより、メディアプレーヤは、セグメントごとにビットレートとコンテンツソースの両方を切り替えることが可能になる。この切り替えは、ビデオの再生中に発生し得るネットワーク帯域幅変化およびインフラストラクチャ障害を補償する助けになる。
【0079】
[0085]ストリーミングによるビデオコンテンツの配信は、様々なモデルのもとで達成され得る。1つのモデルでは、ユーザは、ビデオ番組の視聴の代価を、たとえば、メディア番組のライブラリへのアクセス、または制限されたメディア番組の一部分へのアクセスに対する料金を支払って、またはペイパービューサービスを使用して、支払う。放送テレビの開始直後に放送テレビによって広く採用された別のモデルでは、スポンサは、メディア番組を提示する代価を、番組のプレゼンテーション中に、またはそれに隣接して広告を提示する権利と引き換えで、支払う。いくつかのモデルでは、広告がビデオプログラム中の所定の時間に挿入され、この時間は、「広告スロット」または「広告ブレーク」と呼ばれることがある。ストリーミングビデオでは、メディアプレーヤは、指定された広告スロット中の所定の広告を再生することもまたしないでクライアントがビデオを再生できないように設定され得る。
【0080】
[0086]
図8を参照すると、ビデオコンテンツおよび広告を見るための装置800の概略図が示されている。選択された実施形態では、装置800は、プロセッサメモリ804に動作可能に結合されたプロセッサ(CPU)802を含むことができ、このプロセッサメモリは、プロセッサ802によって実行するためのバイナリコーディングされた機能モジュールを保持する。このような機能モジュールは、入出力およびメモリアクセスなどのシステム機能を扱うためのオペレーティングシステム806と、Webページを表示するためのブラウザ808と、ビデオを再生するためのメディアプレーヤ810とを含み得る。メモリ804は、
図8に示されていない追加のモジュール、たとえば、本明細書のどこか他の所に記載されている他の動作を実施するためのモジュールを保持し得る。
【0081】
[0087]バス814または他の通信コンポーネントは、装置800内での情報の伝達をサポートし得る。プロセッサ802は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって、本明細書に開示された特徴および態様に応じて特定のタスクを実施するように構成され得る、または動作可能であり得る、特化または専用マイクロプロセッサであり得る。プロセッサメモリ804(たとえば、ランダムアクセスメモリ(RAM)または他のダイナミック記憶デバイス)は、バス814に接続されるか、またはプロセッサ802に直接接続され、情報と、プロセッサ802によって実行されるべき命令とを記憶することができる。メモリ804はまた、そのような命令の実行中に、一時変数または他の中間情報を記憶することもできる。
【0082】
[0088]記憶デバイス824内のコンピュータ可読媒体は、バス814に接続され、プロセッサ802の静的情報および命令を記憶することができ、たとえば、記憶デバイス(CRM)824は、装置800が電源オフされたときにモジュール806、808、810および812を記憶することができ、記憶デバイスからモジュールは、装置800が電源投入されたときにプロセッサメモリ804にロードされ得る。記憶装置824は、情報、命令、またはこれらの何らかの組み合わせ(たとえば、プロセッサ802によって実行されると、装置800が本明細書に記載の方法の1つまたは複数の動作を実施するように設定される、または動作可能になる命令)を保持する非一時的なコンピュータ可読記憶媒体を含み得る。
【0083】
[0089]通信インターフェース816もまた、バス814に接続され得る。通信インターフェース816は、装置800と、1つまたは複数の外部デバイス、たとえばストリーミングシステム700との間で、任意選択でルータ/モデム826と有線またはワイヤレス接続とを介して、双方向データ通信を提供またはサポートすることができる。代替形態において、または加えて、装置800は、アンテナ829に接続されたトランシーバ818を含むことができ、このトランシーバを介して装置800は、ワイヤレスで無線通信システムの基地局と、またはルータ/モデム826と通信することができる。代替形態として、装置800は、ローカルエリアネットワーク、仮想プライベートネットワーク、または他のネットワークを介して、ビデオストリーミングシステム700と通信することができる。別の代替形態において、装置800は、システム700のモジュールまたはコンポーネントとして組み込まれ、バス814を介して、または何か他の様式で、他のコンポーネントと通信することができる。
【0084】
[0090]装置800は、(たとえば、バス814およびグラフィックス処理ユニット820を介して)ディスプレイユニット828に接続され得る。ディスプレイ828は、装置800のオペレータに情報を表示するための任意の適切な構成を含み得る。たとえば、ディスプレイ828は、液晶ディスプレイ(LCD)、タッチスクリーンLCD(たとえば、容量性ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、または装置800のユーザに情報を視覚ディスプレイで提示するための他のディスプレイデバイスを含み得るか利用し得る。
【0085】
[0091]1つまたは複数の入力デバイス830(たとえば、英数字キーボード、マイクロフォン、キーパッド、リモートコントローラ、ゲームコントローラ、カメラ、またはカメラアレイ)は、情報およびコマンドを装置800に伝達するために、ユーザ入力ポート822を介してバス814に接続され得る。選択された実施形態では、入力デバイス830は、カーソルの位置決めの制御を提供またはサポートすることができる。ポインティングデバイスとも呼ばれるこのようなカーソル制御デバイスは、マウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キー、または物理的移動を受けるか追跡し、その移動を、カーソル移動を示す電気信号に変換するための他のデバイスとして、構成され得る。カーソル制御デバイスは、たとえばタッチセンシティブスクリーンを使用して、ディスプレイユニット828に組み込まれてもよい。カーソル制御デバイスは、方向情報およびコマンド選択をプロセッサ802に伝達し、ディスプレイ828上のカーソル移動を制御することができる。カーソル制御デバイスは、たとえば、平面または3次元空間内のカーソル位置をデバイスが指定することを可能にする、2つ以上の自由度を有し得る。
【0086】
[0092]いくつかの実施態様は、命令実行システム、装置、システム、または機械で使用するための、またはこれらと接続して使用するための非一時的なコンピュータ可読記憶媒体で実施され得る。このコンピュータ可読記憶媒体は、いくつかの実施形態によって説明された方法を実施するようにコンピュータシステムを制御するための命令を収容する。このコンピュータシステムは、1つまたは複数のコンピュータデバイスを含み得る。命令は、1つまたは複数のコンピュータプロセッサによって実行されたときに、いくつかの実施形態で説明されていることを実施するように構成され得るか動作可能であり得る。
【0087】
[0093]本明細書および後に続く特許請求の範囲全体を通して用いられる、「1つの(a)」、「1つの(an)」、および「その(the)」は、文脈から別に明示されない限り、複数形を含む。また、本明細書および後に続く請求項全体を通して用いられる、「中に(in)」の意味は、文脈から別に明示されない限り、「中に」と「上に」を含む。
【0088】
[0094]上記の説明は、いくつかの実施形態の態様がどのように実施され得るかの例とともに、様々な実施形態を例示している。上記の例および実施形態は、唯一の実施形態であるとみなされるべきではなく、以下の特許請求の範囲によって定義されるいくつかの実施形態の適応性および利点を例示するために提示されている。上記の開示および以下の特許請求の範囲に基づいて、特許請求の範囲によって定義される本開示の範囲から逸脱することなく、他の構成、実施形態、実施態様、および等価物が使用され得る。
【外国語明細書】