説明

デジタルコンテンツ配布システム及び方法

本発明の一実施形態は、複数のコンテンツ配布ネットワーク(CDN)から、少なくとも1つのコンテンツサーバを備えるCDN、及びコンテンツプレーヤ上のCDNから再生しているデジタルコンテンツファイルを選択するための技術について記載する。CDNを選択することは、CDNの順位と、CDNごとの割り当てられた重み値と、コンテンツプレーヤと各CDNとの間で測定される帯域幅とに基づく。有利には、所与のコンテンツプレーヤは、一般的なネットワーク及びCDN荷重条件に基づいてCDNを選択することができ、それによって、CDNからデジタルコンテンツファイルをダウンロードするとき、全体的な頑強性及び信頼性が増す。

【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001]本出願は、参照により本明細書に組み込まれている2009年7月16日出願の米国特許出願第12/504,528号の利益を主張する。
【発明の背景】
【0002】
【技術分野】
【0003】
[0002]本発明の実施形態は、一般にデジタルメディアに関し、より詳細には、デジタルコンテンツ配布システム及び方法に関する。
【関連技術の説明】
【0004】
[0003]デジタルコンテンツ配布システムは、従来、コンテンツサーバ、コンテンツプレーヤ、及びコンテンツサーバをコンテンツプレーヤに接続する通信ネットワークを含む。コンテンツプレーヤは、少し例を挙げれば、例えばデジタルコード化された歌、動画、又はテレビ番組などのデジタルコンテンツファイルを再生するように構成することができる。所与のデジタルコンテンツファイルは、通信ネットワークを介して、コンテンツサーバからコンテンツプレーヤにダウンロードすることができる。コンテンツプレーヤは、タイトルの連続的な再生を容易にするために、少なくともデジタルコンテンツファイルの一部をダウンロードし、格納することができる。コンテンツは、音声システム、ビデオシステム、又はそれらの組み合わせを介して再生することができる。コンテンツサーバは、特定の1組のタイトルを格納し、1つ又は複数のコンテンツプレーヤへのデジタルコンテンツファイルのダウンロードを容易にするように構成されたコンピュータシステムを備える。
【0005】
[0004]実際のシナリオにおいて、1つ又は複数のコンテンツサーバを一緒に通信ネットワーク内に構成して、コンテンツ配布ネットワークを形成することができる。各コンテンツ配布ネットワークは、コンテンツサーバとコンテンツプレーヤとを相互接続するように構成された1つ又は複数のコンテンツサーバ及び1つ又は複数のネットワーク通信システムを含み得る。各コンテンツ配布ネットワークは、複数のデジタルコンテンツファイルをホストすることができる。コンテンツディレクトリサーバは、デジタルコンテンツファイルのタイトル名のリストを提供し、例えばユニバーサルリソースロケータ(URL)などの参照機構を介してコンテンツ配布ネットワークを各タイトルと関連付けるように構成されたコンピュータシステムを備える。コンテンツプレーヤは、特定のタイトルを再生する必要があるとき、まず、タイトルをホストするように構成されたコンテンツ配布ネットワークへの参照についての要求をコンテンツディレクトリサーバに対して掲示する。次いで、コンテンツプレーヤは、コンテンツディレクトリサーバによって提供される参照で指定されたコンテンツ配布ネットワークから、タイトルをダウンロードし、再生する。
【0006】
[0005]コンテンツプレーヤは、通信ネットワークの1つの領域に配置されてもよく、コンテンツ配布ネットワークは、通信ネットワークの異なる領域に配置されてもよい。ルータ及びスイッチなどのネットワーキングシステムは、従来、コンテンツプレーヤをコンテンツ配布ネットワークと相互接続するように構成されている。いくつかの高トラフィックのシナリオで、通信ネットワーク内の輻輳は、例えばコンテンツプレーヤとコンテンツ配布ネットワークとの間など、いくつかのエンドポイント間の帯域幅を制約し得る。さらに、コンテンツプレーヤとコンテンツ配布ネットワークとの間のネットワーキングシステムは、前触れもなく故障する場合があり、信頼性の問題が生じる。信頼性の問題を悪化させて、コンテンツ配布ネットワーク内のコンテンツサーバ及びネットワーキングシステムは、前触れもなく故障したり、過負荷となったりすることもある。結果として、コンテンツプレーヤは、ユーザによって要求されるデジタルコンテンツファイルを確実にダウンロードし、再生することができないことがある。
【0007】
[0006]上記が示すように、当分野では、従来技術の手法より頑強で信頼できるコンテンツプレーヤにデジタルコンテンツファイルをダウンロードするための手法が必要である。
【発明の概要】
【0008】
[0007]本発明の一実施形態は、コンテンツ配布システム内にあるコンテンツ配布ネットワーク(CDN)からデジタルコンテンツファイルをダウンロードするための方法を記載する。この方法は、コンテンツ配布システム内にある1つ又は複数のCDNを含み、1つ又は複数のCDNのそれぞれのランク及び重みも含むCDNリストをコンテンツディレクトリサーバから受信するステップと、帯域幅のテストに基づいてデジタルコンテンツファイルをダウンロードするためのCDNをCDNリストから選択するステップであり、選択されたCDNが、コンテンツプレーヤマシンと関連した最高のビットレートでコンテンツプレーヤマシンにデジタルコンテンツファイルの一部をダウンロードすることができる、又はCDNリストに含まれる他の任意のCDNと関連した加重帯域幅以上の加重帯域幅を有する、ステップとを含む。また、この方法は、選択されたCDNからデジタルコンテンツファイルに関連したデジタルコンテンツをダウンロードし、デジタルコンテンツをコンテンツバッファに格納するように構成されたバッファリングスレッドを開始するステップと、コンテンツバッファに格納されたデジタルコンテンツを再生するように構成された再生スレッドを開始するステップとを含む。
【0009】
[0008]通信ネットワーク内のいくつかの障害及びいくつかの他のCDNの障害にもかかわらず、開示された方法の1つの利点は、コンテンツ配布システム内の各コンテンツプレーヤが信頼できるコンテンツの再生を容易にすることができることである。コンテンツプレーヤは、ひどい故障の状態で再生を再確立し、部分最適のシステム全体の状態でデジタルコンテンツファイルをダウンロードするための良好なCDNを有益に選択することができる。
【0010】
[0009]他の実施形態は、それだけには限定されないが、処理ユニットが開示された方法の1つ又は複数の態様を実施することができる命令を含むコンピュータ可読媒体、及び開示された方法の1つ又は複数の態様を実施するように構成されたシステムを含む。
【図面の簡単な説明】
【0011】
[0010]本発明の上記の特徴を詳しく理解することができるように、実施形態を参照して上記で簡単に要約した本発明のより特定の説明を行い、その一部が添付の図面に図示される。しかし、添付の図面は本発明の代表的な実施形態のみを示しており、したがって、本発明は、他の等しく有効な実施形態を認めることができるため、その範囲を制限するものと見なされないことに留意されたい。
【図1】[0011] 本発明の1つ又は複数の態様を実施するように構成されたコンテンツ配布システムを示す図である。
【図2】[0012] 本発明の一実施形態による図1のコンテンツプレーヤのより詳細な図である。
【図3A】[0013] 本発明の一実施形態による、コンテンツ配布システム内のコンテンツ配布ネットワークからデジタルコンテンツファイルをダウンロードするための方法ステップのフロー図である。
【図3B】[0014] 本発明の一実施形態による、特定のデジタルコンテンツファイルをダウンロードするためのコンテンツ配布システム内のコンテンツ配布ネットワークを選択するための方法ステップのフロー図である。
【図3C】[0015] 本発明の一実施形態による、コンテンツ配布ネットワークからダウンロードされたデジタルコンテンツファイルをバッファリングするための方法ステップのフロー図である。
【図3D】[0016] 本発明の一実施形態による、コンテンツプレーヤ内のコンテンツバッファにバッファされているデジタルコンテンツファイルを再生するための方法ステップのフロー図である。
【詳細な説明】
【0012】
[0017]以下の説明では、本発明をより完全に理解できるように、多数の特定の詳細について記載する。しかし、本発明をこれらの特定の詳細のうちの1つ又は複数なしに実施することができることは、当業者にとって明らかである。他の例では、本発明をわかりにくくすることを避けるために、周知の特徴については記載していない。
【0013】
[0018]図1は、本発明の1つ又は複数の態様を実施するように構成されたコンテンツ配布システム100を示す。示すように、コンテンツ配布システム100は、それだけには限定されないが、複数のコンテンツ配布ネットワーク140のうちの1つから再生のためのデジタルコンテンツファイルを選択するように構成されたコンテンツプレーヤ110を含む。コンテンツディレクトリサーバ120は、デジタルコンテンツファイルをホストするコンテンツ配布ネットワークのリストをコンテンツプレーヤ110に提供するように構成される。例えば周知のインターネット通信ネットワークなど、通信ネットワーク150は、コンテンツプレーヤ110、コンテンツディレクトリサーバ120、及びコンテンツ配布ネットワーク140の間の通信を可能にするための通信インフラストラクチャを提供する。
【0014】
[0019]コンテンツプレーヤ110は、コンピュータシステム、セットトップボックス、携帯電話などのモバイルデバイス、又はネットワーク接続を有し、表示装置に結合される、又は表示装置を含む他の任意の技術的に実行可能なコンピューティングプラットフォームを備え得る。各コンテンツ配布ネットワーク(CDN)140は、コンテンツプレーヤ110からのデジタルコンテンツファイルについてのダウンロード要求に応えるように構成された少なくとも1つのコンピュータシステムを備える。デジタルコンテンツファイルは、それだけには限定されないが、動画コンテンツ、テレビ番組コンテンツ、又は音声コンテンツを含む、任意のタイプのコード化された、又はコード化されていないデジタルコンテンツ(データ)を備えることができる。デジタルコンテンツファイルは、それだけには限定されないが、直接接続されたストレージ、ネットワーク接続されたファイルストレージ、又はネットワーク接続されたブロックレベルストレージを含む、コンピュータシステムからアクセス可能な大容量記憶システムに存在し得る。デジタルコンテンツファイルは、任意の技術的に実行可能な技術を使用して、フォーマットされ、大容量記憶システムに格納され得る。デジタルコンテンツファイルをCDN140からコンテンツプレーヤ110にダウンロードするために、任意のデータ転送プロトコル、例えば従来のファイル転送プロトコル(FTP)又は従来のハイパーテキスト転送プロトコル(HTTP)を使用することができる。
【0015】
[0020]実際的な設定において、複数のコンテンツプレーヤ110は、複数のCDN140に接続する。コンテンツディレクトリサーバ120を使用して、特定のデジタルコンテンツファイルをダウンロードするための特定のCDN140に所与のコンテンツプレーヤ110を向けることができる。コンテンツディレクトリサーバ120は、複数のコンテンツプレーヤ110にわかるネットワークアドレスに存在していなければならない。ネットワークアドレスは、特定のインターネットプロトコル(IP)アドレス若しくは特定のユニバーサルリソースロケータ(URL)、又は技術的に実行可能な他の任意のネットワークアドレスを備え得る。
【0016】
[0021]通信ネットワーク150は、コンテンツプレーヤ110と複数のコンテンツ配布ネットワーク140との間のデータ通信を容易にするように構成された、ルータやスイッチなど複数のネットワーク通信システムを含むことができる。周知のインターネット通信ネットワークを配置する際に実施される技術を含めて、通信システム150を構築するための技術的に実行可能な多くの技術があることを当業者であれば認識されよう。
【0017】
[0022]ある動作シナリオにおいて、コンテンツプレーヤ110は、タイトルルックアップ要求112をコンテンツディレクトリサーバ120に送信することができる。タイトルルックアップ要求112は、例えば「風と共に去りぬ」など、特定のデジタルコンテンツファイルの特定のタイトル名を含むことができる。タイトルルックアップ要求112に応答して、コンテンツディレクトリサーバ120は、CDNリスト122を生成し、コンテンツプレーヤ110に送信する。CDNリスト122は、タイトルルックアップ要求112において指定されたデジタルコンテンツファイルのコピーをそれぞれホストする1つ又は複数のCDN140を指定する。所与のタイトルについて、各CDNリスト122はコンテンツプレーヤ110ごとに異なってもよく、所与のコンテンツプレーヤ110は、要求された異なるタイトルごとに異なるCDNリスト122を受信することができる。
【0018】
[0023]一実施形態において、CDNリスト122は、CDN140ごとにランク及び重みも提示する。ランクは、CDNリスト122の順序によって暗に示されていてもよく、又は所与のCDN140と関連した数として明示的に提示されていてもよい。重みは、所与のCDN140と関連した数として明示的に提示される。一実施形態において、CDNリスト122内の各CDN140は、CDN140内の個々のコンテンツサーバのURLのリストを含む。表1は、CDNリスト例122を示す。
【表1】

【0019】
[0024]示すように、図1のCDN140−1〜CDN140−3までに対応する「CDN1」〜「CDN3」までの3つのCDNが列挙されている。各CDN140は、ランクフィールド、重みフィールド、及びデジタルコンテンツファイルを再生デバイス110にダウンロードするように構成された1つ又は複数のコンテンツサーバを指定するために使用されるストリームフィールドを含む。各URL1〜URL8までは、「http://network−address−name」の形のものでもよく、この場合、URLは、データ転送プロトコルとしてハイパーテキスト転送プロトコル(HTTP)を指定する。
【0020】
[0025]様々なCDNリスト122の内の異なるCDN140と関連したランキングの順序は、コンテンツ配布システム100内のコンテンツプレーヤ110とCDN140との間のトラフィックを管理するために使用される。所与のコンテンツプレーヤ110についての異なるCDN140と関連したランキングの順序は、それだけには限定されないが、例えば、顧客識別番号、タイトル識別番号、インターネットサービスプロバイダ識別番号、コンテンツプレーヤ110の地理的な位置、顧客履歴、若しくは一般的なサーバロードなどの要因、又は任意のそれらの組み合わせに基づいて任意の技術的に実行可能な技術を使用して選択することができる。
【0021】
[0026]例えば、所与のコンテンツプレーヤのために、顧客識別(顧客に割り当てられる一意の番号)に対してモジュロ100演算(modulo one hundred operation)を実行して、ゼロ〜99に及ぶ顧客モジュロ値を生成することができる。ゼロ〜69までの関連するモジュロ値を有するコンテンツプレーヤ110は、CDN1を1位にランク付けているCDNリスト122を受信し、一方、70〜99までの関連するモジュロ値を有するコンテンツプレーヤ110は、CDN2を1位にランク付けているCDNリスト122を受信することができる。こうしたシナリオにおいて、顧客識別番号の約70パーセントがゼロと69との間に収まるので、CDN1は全ダウンロード帯域幅の70パーセントを平均するものとし、一方、顧客識別番号の約30パーセントが70と99との間に収まるので、CDN2は全ダウンロード帯域幅の30パーセントを平均するものとする。
【0022】
[0027]重み値も、CDNリスト122に含まれる各CDN140に関連付けられている。本明細書においてより詳細に説明したように、CDNリスト122に含まれるCDN140のいずれも「最高のビットレート」のダウンロードストリームをコンテンツプレーヤ110に送信することができない場合、重み値は、コンテンツプレーヤ110が、特定のデジタルコンテンツファイルをダウンロードするためのCDNリスト122に含まれるCDN140のうちの1つを選択するための選好又は好みとして役立つ。本明細書で使用されるとき、「最高のビットレート」は、コンテンツプレーヤ110によってサポートされる最大平均ビットレートに対応する。最高のビットレートに加えて、コンテンツプレーヤ110は、通常、少なくとも1つ低い平均ビットレートをサポートする。
【0023】
[0028]CDNリスト122を受信すると、コンテンツプレーヤ110は、タイトルルックアップ要求112において指定されたデジタルコンテンツファイルをダウンロードするための1つのCDN140を選択する。次いで、コンテンツプレーヤ110は、タイトルルックアップ要求112において指定されたデジタルコンテンツファイルをダウンロードし、再生し始める。一実施形態において、コンテンツプレーヤ110は、タイトルルックアップ要求112と関連したデジタルコンテンツファイルの特定の部分を要求する要求ストリーム114、及びデジタルコンテンツファイルの特定の部分をコンテンツプレーヤ110にダウンロードするように構成されたデータ転送ストリーム144を確立する。
【0024】
[0029]上記の説明において、1つのコンテンツプレーヤ110及び3つのCDN140を含むコンテンツ配布システム100が示されているが、図1のアーキテクチャは単に本発明の実施形態例を企図するにすぎないことを当業者であれば理解されよう。他の実施形態は、任意の数のコンテンツプレーヤ110及び/又はCDN140を含むことができる。したがって、図1は、どのような形であれ決して本発明の範囲を制限するものではない。
【0025】
[0030]図2は、本発明の一実施形態による図1のコンテンツプレーヤ110のより詳細な図である。示すように、コンテンツプレーヤ110は、それだけには限定されないが、中央演算処理装置(CPU)210と、グラフィックサブシステム212と、入出力(I/O)デバイスインターフェース214と、ネットワークインターフェース218と、相互接続220と、メモリサブシステム230とを含む。コンテンツプレーヤ110は、大容量記憶装置216も含み得る。
【0026】
[0031]中央演算処理装置(CPU)210は、メモリサブシステム230に格納されるプログラミング命令を取り出し、実行するように構成される。CPU210は、相互接続220を介してメモリサブシステム230からプログラミング命令を取り出す。CPU210は、相互接続220を介してメモリサブシステム230にデータを格納し、取り出すように構成される。
【0027】
[0032]グラフィックサブシステム212は、例えば一連のグラフィック画像など、ビデオデータのフレームを生成し、ビデオデータのフレームを表示装置250に送信するように構成される。グラフィックサブシステム212は、相互接続220を介してCPU210に結合される。一実施形態において、グラフィックサブシステム212は、CPU210とともに、集積回路に統合される。表示装置250は、表示する画像を生成するための任意の技術的に実行可能な手段を備え得る。例えば、表示装置250は、ビデオデータのフレームの可視表現を生成するために、液晶式ディスプレイ(LCD)技術、陰極線技術、及び発光ダイオード(LED)ディスプレイ技術(有機又は無機)を使用して製造することができる。入出力(I/O)デバイスインターフェース214は、相互接続220を介してユーザI/O装置252から入力データを受信し、入力データをCPU210に送信するように構成される。例えば、ユーザI/O装置252は、1つ又は複数のボタン、キーボード、及びマウス又は他のポインティングデバイスを備え得る。I/Oデバイスインターフェース214は、電気音声出力信号を生成するように構成された音声出力ユニットも含む。ユーザI/Oデバイス252は、電気音声出力信号に応答して音響出力を生成するように構成されたスピーカを含む。代替の実施形態では、表示装置250は、スピーカを含み得る。テレビは、ビデオフレームを表示し、音響出力を生成することができる、当分野で知られているデバイスの一例である。例えばハードディスクドライブ又はフラッシュメモリ記憶ドライブなど、大容量記憶装置216は、不揮発性データを格納するように構成される。大容量記憶装置216は、相互接続220を介してCPU210に結合される。ネットワークインターフェース218は、通信ネットワーク150を介してデータのパケットを送信及び受信するように構成される。一実施形態において、ネットワークインターフェース218は、周知のイーサネット標準を使用して通信するように構成される。ネットワークインターフェース218は、相互接続220を介してCPU210に結合される。
【0028】
[0033]メモリサブシステム230は、オペレーティングシステム232を備えるデータ及びプログラミング命令を含む。オペレーティングシステム232は、例えばネットワークインターフェース218、大容量記憶装置216、I/Oデバイスインターフェース214、及びグラフィックサブシステム212を含む管理ハードウェアデバイスなど、システム管理機能を実行する。また、オペレーティングシステム232は、ユーザインターフェース234及び再生アプリケーション236のプロセス及びメモリ管理モデルを提供する。ユーザインターフェース234は、コンテンツプレーヤ110とのユーザ対話のために、例えばウィンドウ及びオブジェクトメタファなど、特定の構造を提供する。当業者であれば、当分野で周知の、及びコンテンツプレーヤ110への組み込みに適している様々なオペレーティングシステム及びユーザインターフェースを認識されよう。
【0029】
[0034]再生アプリケーション236は、ネットワークインターフェース218を介してCDN140からデジタルコンテンツファイルを取り出し、グラフィックサブシステム212及び表示装置250を介してデジタルコンテンツファイルを再生するように構成される。再生アプリケーション236は、例えば図1のCDNリスト122など、CDNリスト240をコンテンツディレクトリサーバ120に要求する。再生アプリケーション236は、図3Bで後でより詳細に説明するように、CDNをCDNリスト240から選択する。次いで、再生アプリケーション236は、選択されたCDN140からデジタルコンテンツファイルをダウンロードし、バッファリングし始める。再生アプリケーション236は、図3A、図3C、及び図3Dで後でより詳細に説明するように、再生プロセス中に、ユーザに対してデジタルコンテンツファイルの可視のレンダリングを生成する。
【0030】
[0035]音声バッファ242は、選択されたCDN140からダウンロードされた1つのデジタルコンテンツから音声データを格納するために使用され得る。一実施形態において、オーディオデコーダ244は、音声バッファ242に格納されたデータを1つ又は複数のオーディオトラックにデコードするために使用される。ビデオバッファ246は、選択されたCDN140からダウンロードされた1つのデジタルコンテンツからビデオデータを格納するために使用される。ビデオデコーダ248は、ビデオバッファ242に格納されたデータを可視のビデオフレームの1つ又は複数のシーケンスにデコードし、レンダリングするために使用される。一実施形態において、コンテンツバッファ245は、音声バッファ242及びビデオバッファ246を含む一体化されたバッファ構造を備える。本実施形態において、音声データとビデオデータとが単一のストリームに構築される。代替実施形態では、コンテンツバッファ245は、データを追加又は削除するために、個々にアクセスすることができる別々のバッファとして構成された音声バッファ242及びビデオバッファ246を備える。
【0031】
[0036]図3Aは、本発明の一実施形態による、コンテンツ配布システム100内のコンテンツ配布ネットワーク140からデジタルコンテンツファイルをダウンロードするための方法ステップ300のフロー図である。方法ステップは図1及び図2のシステムとの関係で記載されているが、方法ステップを任意の順序で実行するように構成された任意のシステムは本発明の範囲内に含まれることを当業者であれば理解されよう。一実施形態において、方法ステップ300は、再生アプリケーション236内のコンテンツプレーヤ管理スレッドとして実行する。
【0032】
[0037]方法は、ステップ310で開始し、再生アプリケーション236は、選択されたデジタルコンテンツタイトルを再生する旨のユーザの要求を受信する。例えば、ユーザは、例えばキーボード又はマウスなど、図2のユーザI/O装置252のうちの1つ又は複数を使用して選択を入力することができる。ステップ312において、再生アプリケーション236は、タイトルルックアップ要求112を介して、コンテンツディレクトリサーバ120に、選択されたデジタルコンテンツファイルのCDNリスト122を要求する。一実施形態において、コンテンツディレクトリサーバ120は、コンテンツプレーヤ110がわかる例えばURLなどある位置の通信ネットワークに存在する。ステップ314で、再生アプリケーション236は、コンテンツディレクトリサーバ120からCDNリスト122を受信し、CDNリスト122は、メモリサブシステム230内にCDNリスト240として格納される。この場合もまた、本明細書において上述した表1は、CDNリスト240の構造例を記載する。
【0033】
[0038]ステップ320で、再生アプリケーション236は、選択されたデジタルコンテンツファイルがダウンロードされることになっているCDNリスト240から、コンテンツ配布システム100内の1つのCDN140を選択する。1つのCDN140を選択するためのアルゴリズムについては、図3Bとの関連で後でより詳細に記載する。ステップ320の1つの結果は、ステップ324で、選択されたデジタルコンテンツファイルと関連したデジタルコンテンツの一部がコンテンツバッファ245に格納されることである。その結果として、選択されたデジタルコンテンツファイルと関連したデジタルコンテンツにアクセスし、より迅速に再生することができ、それによって、再生プロセスと関連した遅延が低減する。ステップ326で、再生アプリケーション236は、再生を開始する前に、選択されたデジタルコンテンツファイルと関連した追加の量のデジタルコンテンツをプリバッファリングする。
【0034】
[0039]ステップ330で、再生アプリケーション236は、図3Cでより詳細に説明するように、バッファリングスレッドを開始する。バッファリングスレッドは、CDN140から選択されたデジタルコンテンツファイルに関連した追加のデジタルコンテンツをダウンロードし、そのデータをコンテンツバッファ245にバッファリングし続けるように構成される。ステップ335で、再生アプリケーション236は、再生スレッドを開始する。再生スレッドは、コンテンツバッファ245から音声及びビデオデータを読み出し、ユーザに対して再生するための対応する音声及びビデオストリームを生成するように構成される。
【0035】
[0040]ステップ338で、再生アプリケーション236は、ステップ335で開始された再生スレッドが終了するのを待つ。ステップ390で、再生アプリケーション236は、選択されたデジタルコンテンツファイルが再生スレッドの終了条件に基づいて終端まで再生されたかどうかを決定する。ステップ390で、選択されたデジタルコンテンツファイルが終端まで再生されていない場合、方法300は、上述したステップ320に戻る。こうしたシナリオは、再生スレッドがバッファアンダーランに遭遇し、再開する必要があるときに起こる。再開時に選択されたデジタルコンテンツファイルがどこで再生を開始すべきかを示すためのタイムマーカを格納することができる。しかし、ステップ390で、選択されたデジタルコンテンツファイルが終端まで再生されている場合、方法はステップ392で終了する。
【0036】
[0041]図3Bは、本発明の一実施形態による、選択されたデジタルコンテンツファイルをダウンロードするためのコンテンツ配布システム100内のCDN140を選択するための方法ステップ322のフロー図である。方法ステップは図1及び図2のシステムとの関係で記載されているが、方法ステップを任意の順序で実行するように構成された任意のシステムは本発明の範囲内に含まれることを当業者であれば理解されよう。要するに、方法ステップ322は、コンテンツプレーヤ110によって指定されたダウンロード実行要件、及びCDNリスト240に反映されるコンテンツプレーヤ110の割り当てられたCDN選好に基づいて、選択されたデジタルコンテンツファイルがダウンロードされるべき特定のCDN140を決定する。また、方法ステップ322は、図3Aのステップ320をより詳細に説明しており、一実施形態において、再生アプリケーション236内のコンテンツプレーヤ管理スレッドによって実行される。
【0037】
[0042]方法は、ステップ340で開始し、再生アプリケーション236は、CDN140と関連したランクに基づいてCDNリスト240に含まれるCDN140をソートして、ソートされたCDNリストを生成する。表1に示したように、ソートされたCDNリストの各CDN140は、対応するランクが割り当てられる。一実施形態において、ソートされたCDNリスト内の第1のCDN140は、1(「1」)のランクを有し、ソートされたCDNリストのそれぞれ次のCDNは、ランクが上がる。ソートされたCDNリスト内のCDN140のカウントを反映するために、可変「CDN_Count」が設定される。
【0038】
[0043]ステップ342で、再生アプリケーション236は、可変「i」をゼロに初期化する。可変「i」は、ソートされたCDNリスト内のどのCDN140が現在評価されているかを決定する。ステップ344で、再生アプリケーション236は、「i」の値と、ソートされたCDNリスト内のCDN140の合計数とを比較する。「i」の値がソートされたCDNリスト内のCDN140の合計数を反映するCDN_Count未満である場合、方法はステップ346に進む。ステップ346で、再生アプリケーション236は、CDN[i]、すなわち現在評価されているCDN140において帯域幅のテストを実行する。帯域幅のテストを実行するために、CDN[i]とコンテンツプレーヤ110との間で使用可能な帯域幅の量を評価するために、選択されたデジタルコンテンツファイルの一部が、CDN[i]からコンテンツプレーヤ110にダウンロードされる。この文脈における使用可能な帯域幅は、通信ネットワーク150を介したCDN[i]とコンテンツプレーヤ110との間の瞬時帯域幅を含み、CDN[i]における全体的な現在の負荷も考慮に入れる。通信ネットワーク150がCDN[i]とコンテンツプレーヤ110との間で輻輳するとき、使用可能な帯域幅の量は、通常、輻輳により低減する。同様に、CDN[i]にダウンロード要求の負荷がかなりかかっていると、CDN[i]がダウンロード要求に迅速に対応できないため、一般に、使用可能な帯域幅の量は低減する。
【0039】
[0044]ステップ348で、再生アプリケーション236は、「帯域幅値」と呼ばれる、CDN[i]とコンテンツプレーヤ110との間の利用可能な帯域幅の量をメモリサブシステム230内に存在するアレイ「帯域幅[i]」に格納する。ステップ350で、再生アプリケーション236は、「帯域幅テストデータ」と呼ばれるダウンロードされたデータをコンテンツバッファ245に格納する。
【0040】
[0045]ステップ352で、再生アプリケーション236は、CDN[i]がコンテンツプレーヤ110と関連した最高のビットレートでコンテンツプレーヤ110にデータをダウンロードすることができるかどうかを決定する。また、最高のビットレートは、コンテンツプレーヤ110によってサポートされる最大平均ビットレートである。CDN[i]が最高のビットレートでデータをダウンロードすることができない場合(ステップ346でCDN[i]について測定された帯域幅値がコンテンツプレーヤ110と関連した最高のビットレート未満であることを意味する)、方法はステップ354に進み、再生アプリケーション236は、CDN[i]についての加重帯域幅値を計算する。CDN[i]についての加重帯域幅値は、ステップ346でCDN[i]について測定された帯域幅にCDN[i]と関連したソートされたCDNリストに含まれる重み値を掛けたものに等しい。ステップ356で、再生アプリケーション236は、上述したように、方法がステップ344に戻る前に、可変「i」を1だけインクリメントする。
【0041】
[0046]ステップ344に戻ると、再生アプリケーション236は、「i」の値を、ソートされたCDNリスト内のCDN140の合計数と再度比較する。「i」の値がCDN_Count以上である場合、ソートされたCDNリスト内の各CDN140の帯域幅はテストされており、ソートされたCDNリスト内の各CDN140についての加重帯域幅値が計算されている。次いで、方法は、ステップ360に進み、再生アプリケーション236は、最も大きい加重帯域幅値を有するCDN140を、選択されたデジタルコンテンツファイルをダウンロードするためのCDN140として選択する。2つ以上のCDN140が最も大きい加重帯域幅値に等しい加重帯域幅値を有する場合、再生アプリケーション236は、選択されたデジタルコンテンツファイルをダウンロードするためのCDN140として、ソートされたCDNリストに記載されたように、2つ以上のCDN140の中で最低の相対的ランキングを有するCDN140を選択する。次いで、方法は、ステップ364で終了する。
【0042】
[0047]次にステップ352に戻って、CDN[i]が最高のビットレートでデータをダウンロードすることができる場合(ステップ346でCDN[i]について測定された帯域幅がコンテンツプレーヤ110と関連した最高のビットレート以上であることを意味する)、方法はステップ362に進み、再生アプリケーション236は、CDN[i]を、選択されたデジタルコンテンツファイルをダウンロードするためのCDN140として選択する。このシナリオにおいて、現在テストされたCDN140がコンテンツプレーヤ110のダウンロード実行要件を満たすので、さらなるテストは必要ない。この場合もまた、方法は、ステップ364で終了する。
【0043】
[0048]当業者であれば理解できるように、少なくとも1つのCDN140がサポートされた最高のビットレートでデジタルコンテンツファイルのダウンロードを提供することができるシナリオでは、ソートされたCDNリスト内のCDN140の順位は、どのCDN140がデジタルコンテンツファイルをコンテンツプレーヤ110に提供すべきかを決定する。ソートされたCDNリスト内に、サポートされた最高のビットレートでデジタルコンテンツファイルのダウンロードを提供することができるCDN140がないシナリオでは、上述したように、ソートされたCDNリストの各CDN140の加重帯域幅値を使用して、選択されたデジタルコンテンツファイルをダウンロードするためのCDN140を選択する。一実施形態において、等しい重み×帯域幅の積の複数のCDN140が使用可能であるとき、最高ランク(最も低いランク番号)のCDN140が選択される。
【0044】
[0049]図3Cは、本発明の一実施形態による、コンテンツ配布ネットワーク140からダウンロードされたデジタルコンテンツファイルをバッファリングするための方法ステップ332のフロー図である。方法ステップは図1及び図2のシステムとの関係で記載されているが、方法ステップを任意の順序で実行するように構成された任意のシステムは本発明の範囲内に含まれることを当業者であれば理解されよう。
【0045】
[0050]方法は、ステップ370で開始し、図3Aのステップ330で開始されるバッファリングスレッドは、実行を開始する。所与のスレッドの実施のために必要とされる初期化を、このステップで実行することができる。それだけには限定されないが、図3Aのステップ320でどのCDN140が選択されたか、及びバッファリングの開始時刻を決定するために、バッファリングスレッドによって使用されるタイムマーカを含めて、いくつかのパラメータをバッファリングスレッドに渡すことができる。新しいCDN140がバッファアンダーラン前であるために選択する必要があるシナリオにおいて、タイムマーカは重要である。
【0046】
[0051]ステップ372で、バッファリングスレッドは、終了信号が受信されるかどうかを決定する。信号が実行スレッド間にメッセージを送信するためのプロセス間通信機構を備えることを当業者であれば理解されよう。この文脈において、終了信号は、バッファリングスレッドが実行を終了することを要求する、再生スレッドによってバッファリングスレッドに送信される特定の信号である。終了信号は、再生スレッドが例えばバッファアンダーランなどの重大な課題に遭遇すると、再生スレッドによって生成される。図3Aにおいて反映されるように、バッファアンダーラン状態によって、再生アプリケーション236内で実行しているコンテンツプレーヤ管理スレッドは、デジタルコンテンツファイルをダウンロードするための新しいCDN140を選択する。一旦新しいCDN140を選択するための決定が行われると、古いCDN140からデジタルコンテンツファイルをダウンロードすることを試みているバッファリングスレッドが終了する。
【0047】
[0052]ステップ372で、終了信号が受信されない場合、方法はステップ374に進み、バッファリングスレッドは、図3Aのステップ320で選択されるCDN140から、選択されたデジタルコンテンツファイルと関連した追加のデジタルコンテンツを取り出し、バッファリングする。ステップ376で、バッファリングスレッドは、バッファアンダーランがコンテンツバッファ245で生じたかどうかを決定する。バッファアンダーランは、バッファリングスレッドが、デジタルコンテンツファイルの再生を実行しながら、コンテンツバッファ245からのデータを消費するように作動している再生スレッドに追随していくのにコンテンツバッファ245に充分なデータを追加しなかったときに生じる。バッファリングスレッドは、それだけには限定されないが、通信ネットワーク150内の一時的な障害、選択されたCDN140の障害、選択されたCDN140の過負荷などを含む理由のために充分なデータを追加しない場合がある。バッファアンダーランがコンテンツバッファ245で生じると、コンテンツプレーヤ110によるリアルタイムのコンテンツの再生は停止する。次いで、上述したように、選択されたデジタルコンテンツファイルをダウンロードするための新しいCDN140を選択することができる。
【0048】
[0053]ステップ376で、バッファアンダーランは生じていない場合、方法はステップ378に進む。ステップ378で、バッファリングスレッドは、ストリーム(デジタルコンテンツファイル)が選択されたCDN140から完全にダウンロードされたかどうかを決定する。ステップ378で、ストリームが選択されたCDN140からダウンロードし終わらない場合、方法は、上述したステップ372に戻り、追加データは、コンテンツバッファ245にダウンロードされる。しかし、ステップ378で、ストリーム(デジタルコンテンツファイル)が選択されたCDN140からダウンロードし終わる場合、方法はステップ394で終了する。この時点で、バッファリングスレッドは、デジタルコンテンツファイルをコンテンツバッファ245に正常にダウンロードしている。
【0049】
[0054]ステップ376を再度参照すると、バッファアンダーランがコンテンツバッファ245で生じた場合、方法はステップ394で終了する。同様に、ステップ372で、終了信号が受信された場合も、方法はステップ394で終了する。
【0050】
[0055]図3Dは、本発明の一実施形態による、コンテンツプレーヤ110内のコンテンツバッファ245にバッファされているデジタルコンテンツを再生するための方法ステップ336のフロー図である。方法ステップは図1及び図2のシステムとの関係で記載されているが、方法ステップを任意の順序で実行するように構成された任意のシステムは本発明の範囲内に含まれることを当業者であれば理解されよう。
【0051】
[0056]方法は、ステップ380で開始し、図3Aのステップ335で開始する再生スレッドは、所与のスレッドの実施に従って初期化される。この場合もまた、それだけには限定されないが、タイムマーカを含む、いくつかのパラメータを再生スレッドに渡すことができる。ステップ381で、再生スレッドは、コンテンツバッファ245からコンテンツサンプル(音声及びビデオストリームデータ)を取り出すことを試みる。ステップ382で、再生スレッドは、コンテンツバッファ245が空かどうかを決定する。ステップ382で、コンテンツバッファ245が空でない場合、再生スレッドはステップ384に進み、再生スレッドは、コンテンツバッファ245からある量(あるタイムスパン又はバイト数)のコンテンツサンプルを再生する。次いで、方法は、ステップ381に戻る。
【0052】
[0057]しかし、ステップ382で、コンテンツバッファ245が空である場合、方法はステップ386に進む。ステップ386で、再生スレッドは、ストリームの終端に遭遇し、デジタルコンテンツファイルは正常な終わりまで再生されたかどうかを決定する。ステップ386で、ストリームの終端に遭遇していない場合、方法はステップ388に進み、終了信号は、図3Cのバッファリングスレッドに送信される。次いで、方法は、ステップ396で終了し、再生ストリームは、図3Aのコンテンツプレーヤ管理スレッドにストリームステータスの非終端を戻す。しかし、ステップ386で、ストリームの終端に遭遇した場合、方法はステップ398で終了し、再生ストリームは、図3Aのコンテンツプレーヤ管理スレッドに、ストリームステータスの終端を戻す。
【0053】
[0058]本発明の一実施形態は、コンテンツプレーヤ110内に存在する少なくとも1つのコンピュータ可読記憶媒体に格納されるプログラム製品として実装することができる。こうした実施形態では、コンテンツプレーヤ110は、セットトップボックスなどの組み込みコンピュータプラットフォームを備え、格納されたプログラム製品は、図3A〜3Dの方法をコンテンツプレーヤ110によって実施できるようにする。代替実施形態では、プログラム製品は、コンピュータデバイス内のメモリにダウンロードすることができる。例えば、ダウンロードされたプログラム製品は、インターネットウェブサイト内に組み込まれた実行可能な命令でもよい。こうした実施形態では、コンテンツプレーヤ110は、コンピュータデバイスを備え、ダウンロードされたプログラム製品は、図3A〜3Dの方法をコンテンツプレーヤ110によって実施できるようにする。
【0054】
[0059]要するに、コンテンツプレーヤ110上でデジタルコンテンツファイルを再生するための技術が開示される。この技術は、要求されたデジタルコンテンツファイルと関連したコンテンツ配布ネットワーク(CDN)140のリストを受信するステップと、コンテンツ配布ネットワークのうちの1つを選択するステップと、コンテンツバッファ245にデジタルコンテンツファイルをダウンロードするステップと、コンテンツバッファ245からデジタルコンテンツファイルを再生するステップとを伴う。CDN140を選択するプロセスは、CDNリスト240をソートされたCDNリストにソートするステップと、少なくとも1つのCDN140について帯域幅をテストするステップとを伴う。ソートされたCDNリスト内のCDN140が最高のビットレートストリームに適した帯域幅を提供することができる場合、CDN140が選択される。最高のビットレートストリームを提供することができるCDN140が見つからない場合、CDN140は、重み×帯域幅の積に基づいて選択される。
【0055】
[0060]開示されたシステム及び方法の1つの利点は、通信ネットワーク150内のいくつかの障害、及びいくつかの他のCDN140の障害にもかかわらず、コンテンツ配布システム100内の各コンテンツプレーヤ110が信頼できるコンテンツの再生を容易にすることができることである。コンテンツプレーヤ110は、ひどい故障状態で再生を再確立し、部分最適のシステム全体の状態でデジタルコンテンツファイルをダウンロードするための良好なCDNを有益に選択することができる。これに対して、通信ネットワーク障害及びコンテンツサーバ障害を受けるとき、従来のソリューションでは破局的な再生障害を経験する傾向にある。他の利点は、正常な動作状態がコンテンツ配布システム全体にわたって存在するときでさえ、本発明は最適なCDNの選択を可能にすることである。
【0056】
[0061]上記は本発明の実施形態を対象とするが、本発明の他の及びさらなる実施形態は、その基本的な範囲を逸脱しない範囲で考案され得る。例えば、本発明の態様は、ハードウェア若しくはソフトウェア、又はハードウェア及びソフトウェアの組み合わせに実装することができる。本発明の一実施形態を、コンピュータシステム用のプログラム製品として実装することができる。プログラム製品のプログラム(複数可)は、(本明細書に記載した方法を含む)実施形態の機能を定義し、様々なコンピュータ可読記憶媒体上に含めることができる。コンピュータ可読記憶媒体例には、それだけには限定されないが、(i)情報が永久に格納される書き込み不可の記憶媒体(例えば、CD−ROMドライブによって読み込み可能なCD−ROMディスク、フラッシュメモリ、ROMチップ、又は任意のタイプの固体不揮発性半導体メモリなど、コンピュータ内の読み取り専用記憶装置)、(ii)変更可能な情報が格納される書き込み可能な記憶媒体(例えば、ディスケットドライブ又はハードディスクドライブ内のフロッピーディスク、又は任意のタイプの固体ランダムアクセス半導体メモリ)が含まれる。本発明の機能を指示するコンピュータ可読命令を含む、こうしたコンピュータ可読記憶媒体は本発明の実施形態である。
【0057】
[0062]上記を鑑み、本発明の範囲は、以下の特許請求の範囲によって決定される。


【特許請求の範囲】
【請求項1】
コンテンツ配布システム内にあるコンテンツ配布ネットワーク(CDN)からデジタルコンテンツファイルをダウンロードするための方法であって、
前記コンテンツ配布システム内にある1つ又は複数のCDNを含み、前記1つ又は複数のCDNのそれぞれのランク及び重みも含むCDNリストをコンテンツディレクトリサーバから受信するステップと、
帯域幅のテストに基づいて前記デジタルコンテンツファイルをダウンロードするためのCDNを前記CDNリストから選択するステップであり、前記選択されたCDNが、コンテンツプレーヤマシンと関連した最高のビットレートで前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの一部をダウンロードすることができる、又は前記CDNリストに含まれる他の任意のCDNと関連した加重帯域幅以上の加重帯域幅を有する、ステップと、
前記選択されたCDNからの前記デジタルコンテンツファイルに関連したデジタルコンテンツをダウンロードし、前記デジタルコンテンツをコンテンツバッファに格納するように構成されたバッファリングスレッドを開始するステップと、
前記コンテンツバッファに格納された前記デジタルコンテンツを再生するように構成された再生スレッドを開始するステップと
を含む方法。
【請求項2】
選択する前記ステップが、
前記CDNリスト内の第1のCDNについて、前記第1のCDNが前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの前記一部をダウンロードすることができる第1のビットレートを計算するサブステップと、
前記第1のビットレートが前記コンテンツプレーヤマシンと関連した前記最高のビットレートに等しいかどうか決定するサブステップと
を含む請求項1に記載の方法。
【請求項3】
前記第1のビットレートが前記コンテンツプレーヤマシンと関連した前記最高のビットレートに等しく、選択する前記ステップが、前記第1のCDNを選択するサブステップをさらに含む請求項2に記載の方法。
【請求項4】
前記第1のビットレートが前記コンテンツプレーヤマシンと関連した前記最高のビットレートに等しくなく、選択する前記ステップが、
前記CDNリスト内の第2のCDNについて、前記第2のCDNが前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの前記一部をダウンロードすることができる第2のビットレートを計算するサブステップと、
前記第2のビットレートが前記コンテンツプレーヤマシンと関連した前記最高のビットレートに等しいかどうか決定するサブステップと
をさらに含む請求項2に記載の方法。
【請求項5】
前記最高のビットレートで前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの前記一部をダウンロードすることができるCDNが前記CDNリストにはなく、選択する前記ステップが、
前記CDNリストに含まれるCDNごとに、前記デジタルコンテンツファイルの前記一部を前記コンテンツプレーヤマシンにダウンロードすることができるビットレートを計算するサブステップと、
前記CDNリストに含まれるCDNごとに、前記CDNが前記デジタルコンテンツファイルの前記一部を前記コンテンツプレーヤマシンにダウンロードすることができる前記ビットレートと前記CDNについての前記CDNリストに含まれる前記重みとの積に等しい加重帯域幅を計算するサブステップと
を含む請求項1に記載の方法。
【請求項6】
前記CDNリスト内の第1のCDNが、前記CDNリストに含まれる他の任意のCDNと関連した前記加重帯域幅より大きい加重帯域幅を有し、選択する前記ステップが、前記第1のCDNを選択するサブステップをさらに含む請求項5に記載の方法。
【請求項7】
前記CDNリストにおける2つ以上のCDNが同じ加重帯域幅を有し、選択する前記ステップが、前記CDNリストに記載される最低の相対的ランクを有する、前記2つ以上のCDNのうちの第1のCDNを選択するサブステップをさらに含む請求項5に記載の方法。
【請求項8】
前記バッファリングスレッドが、バッファアンダーラン状態が生じたことを示す終了信号、又は前記全デジタルコンテンツファイルがダウンロードされ、再生されたことを示すストリーム終了信号に遭遇するまで、前記バッファリングスレッドが、前記デジタルコンテンツファイルと関連した前記デジタルコンテンツをダウンロードし、格納し続けるようにさらに構成された請求項1に記載の方法。
【請求項9】
前記再生スレッドが、
前記コンテンツバッファが空であると決定するまで、前記コンテンツバッファに格納された前記デジタルコンテンツを再生し続け、
前記全デジタルコンテンツファイルが再生されていない場合、前記終了信号を前記バッファリングスレッドに送信し、又は
前記全デジタルコンテンツファイルが再生されている場合、前記ストリーム終了信号をコンテンツプレーヤ管理スレッドに送信する
ように構成された請求項8に記載の方法。
【請求項10】
前記再生スレッドが前記終了信号を前記バッファリングスレッドに送信する場合、CDNを選択する前記ステップが繰り返されて、新しいCDNを前記CDNリストから選択する、請求項9に記載の方法。
【請求項11】
前記デジタルコンテンツファイルが、動画又はテレビ番組と関連したデジタルコンテンツを備える請求項1に記載の方法。
【請求項12】
処理ユニットによって実行されると、
コンテンツ配布システム内にある1つ又は複数のコンテンツ配布ネットワーク(CDN)を含み、前記1つ又は複数のCDNのそれぞれのランク及び重みも含むCDNリストをコンテンツディレクトリサーバから受信するステップと、
帯域幅のテストに基づいて前記デジタルコンテンツファイルをダウンロードするためのCDNを前記CDNリストから選択するステップであり、前記選択されたCDNが、コンテンツプレーヤマシンと関連した最高のビットレートで前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの一部をダウンロードすることができる、又は前記CDNリストに含まれる他の任意のCDNと関連した加重帯域幅以上の加重帯域幅を有する、ステップと、
前記選択されたCDNからの前記デジタルコンテンツファイルに関連したデジタルコンテンツをダウンロードし、前記デジタルコンテンツをコンテンツバッファに格納するように構成されたバッファリングスレッドを開始するステップと、
前記コンテンツバッファに格納された前記デジタルコンテンツを再生するように構成された再生スレッドを開始するステップと
を実行することによって、
前記処理ユニットに、前記コンテンツ配布システム内にあるCDNからデジタルコンテンツファイルをダウンロードさせる命令を含むコンピュータ可読媒体。
【請求項13】
選択する前記ステップが、
前記CDNリスト内の第1のCDNについて、前記第1のCDNが前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの前記一部をダウンロードすることができる第1のビットレートを計算するサブステップと、
前記第1のビットレートが前記コンテンツプレーヤマシンと関連した前記最高のビットレートに等しいかどうか決定するサブステップと
を含む請求項12に記載のコンピュータ可読媒体。
【請求項14】
前記第1のビットレートが前記コンテンツプレーヤマシンと関連した最高のビットレートに等しく、選択する前記ステップが、前記第1のCDNを選択するサブステップをさらに含む請求項13に記載のコンピュータ可読媒体。
【請求項15】
前記第1のビットレートが前記コンテンツプレーヤマシンと関連した前記最高のビットレートに等しくなく、選択する前記ステップが、
前記CDNリスト内の第2のCDNについて、前記第2のCDNが前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの前記一部をダウンロードすることができる第2のビットレートを計算するサブステップと、
前記第2のビットレートが前記コンテンツプレーヤマシンと関連した前記最高のビットレートに等しいかどうか決定するサブステップと
をさらに含む請求項13に記載のコンピュータ可読媒体。
【請求項16】
前記最高のビットレートで前記コンテンツプレーヤマシンに前記デジタルコンテンツファイルの前記一部をダウンロードすることができるCDNが前記CDNリストにはなく、選択する前記ステップが、
前記CDNリストに含まれるCDNごとに、前記デジタルコンテンツファイルの前記一部を前記コンテンツプレーヤマシンにダウンロードすることができるビットレートを計算するサブステップと、
前記CDNリストに含まれるCDNごとに、前記CDNが前記デジタルコンテンツファイルの前記一部を前記コンテンツプレーヤマシンにダウンロードすることができる前記ビットレートと前記CDNについての前記CDNリストに含まれる前記重みとの積に等しい加重帯域幅を計算するサブステップと
を含む請求項12に記載のコンピュータ可読媒体。
【請求項17】
前記CDNリスト内の第1のCDNが、前記CDNリストに含まれる他の任意のCDNと関連した前記加重帯域幅より大きい加重帯域幅を有し、選択する前記ステップが、前記第1のCDNを選択するサブステップをさらに含む請求項16に記載のコンピュータ可読媒体。
【請求項18】
前記CDNリストにおける2つ以上のCDNが同じ加重帯域幅を有し、選択する前記ステップが、前記CDNリストに記載される最低の相対的ランクを有する、前記2つ以上のCDNのうちの第1のCDNを選択するサブステップをさらに含む請求項16に記載のコンピュータ可読媒体。
【請求項19】
前記バッファリングスレッドが、バッファアンダーラン状態が生じたことを示す終了信号、又は前記全デジタルコンテンツファイルがダウンロードされ、再生されたことを示すストリーム終了信号に遭遇するまで、前記バッファリングスレッドが、前記デジタルコンテンツファイルと関連した前記デジタルコンテンツをダウンロードし、格納して続けるようにさらに構成された請求項12に記載のコンピュータ可読媒体。
【請求項20】
前記再生スレッドが、
前記コンテンツバッファが空であると決定するまで、前記コンテンツバッファに格納された前記デジタルコンテンツを再生し続け、
前記全デジタルコンテンツファイルが再生されていない場合、前記終了信号を前記バッファリングスレッドに送信し、又は
前記全デジタルコンテンツファイルが再生されている場合、前記ストリーム終了信号をコンテンツプレーヤ管理スレッドに送信する
ように構成された請求項19に記載のコンピュータ可読媒体。
【請求項21】
コンテンツ配布システム内にあるコンテンツ配布ネットワーク(CDN)からデジタルコンテンツファイルをダウンロードするように構成されたコンテンツプレーヤデバイスであって、
ダウンロードされたデジタルコンテンツを格納するためのコンテンツバッファを含むメモリと、
前記コンテンツ配布システム内にある1つ又は複数のCDNを含み、前記1つ又は複数のCDNのそれぞれのランク及び重みも含むCDNリストをコンテンツディレクトリサーバから受信し、
帯域幅のテストに基づいて前記デジタルコンテンツファイルをダウンロードするためのCDNを前記CDNリストから選択し、前記選択されたCDNが、コンテンツプレーヤデバイスと関連した最高のビットレートで前記コンテンツプレーヤデバイスに前記デジタルコンテンツファイルの一部をダウンロードすることができる、又は前記CDNリストに含まれる他の任意のCDNと関連した加重帯域幅以上の加重帯域幅を有し、
前記選択されたCDNからの前記デジタルコンテンツファイルに関連したデジタルコンテンツをダウンロードし、前記デジタルコンテンツを前記コンテンツバッファに格納するように構成されたバッファリングスレッドを開始し、
前記コンテンツプレーヤデバイスに結合された表示装置において、前記コンテンツバッファに格納された前記デジタルコンテンツを再生するように構成された再生スレッドを開始する
ように構成された、前記メモリに結合された処理ユニットと
を備えるコンテンツプレーヤデバイス。


【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate


【公表番号】特表2012−533938(P2012−533938A)
【公表日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−520793(P2012−520793)
【出願日】平成22年7月15日(2010.7.15)
【国際出願番号】PCT/US2010/042174
【国際公開番号】WO2011/008984
【国際公開日】平成23年1月20日(2011.1.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.フロッピー
【出願人】(506267178)ネットフリックス・インコーポレイテッド (6)
【氏名又は名称原語表記】NETFLIX, INC.
【Fターム(参考)】