特許第6023213号(P6023213)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップの特許一覧 ▶ ネダーランゼ・オルガニサティ・フォーア・トゥーゲパスト−ナトゥールヴェテンシャッペリーク・オンデルゾエク・ティーエヌオーの特許一覧

特許6023213セグメント化されたコンテンツについての制御されたストリーミング
<>
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000002
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000003
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000004
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000005
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000006
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000007
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000008
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000009
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000010
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000011
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000012
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000013
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000014
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000015
  • 特許6023213-セグメント化されたコンテンツについての制御されたストリーミング 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6023213
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月9日
(54)【発明の名称】セグメント化されたコンテンツについての制御されたストリーミング
(51)【国際特許分類】
   H04N 21/2662 20110101AFI20161027BHJP
【FI】
   H04N21/2662
【請求項の数】15
【全頁数】30
(21)【出願番号】特願2014-549463(P2014-549463)
(86)(22)【出願日】2012年12月27日
(65)【公表番号】特表2015-508596(P2015-508596A)
(43)【公表日】2015年3月19日
(86)【国際出願番号】EP2012076941
(87)【国際公開番号】WO2013098319
(87)【国際公開日】20130704
【審査請求日】2014年8月27日
(31)【優先権主張番号】11196064.7
(32)【優先日】2011年12月29日
(33)【優先権主張国】EP
(31)【優先権主張番号】12153228.7
(32)【優先日】2012年1月31日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】504292093
【氏名又は名称】コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ
(73)【特許権者】
【識別番号】508351406
【氏名又は名称】ネダーランゼ・オルガニサティ・フォーア・トゥーゲパスト−ナトゥールヴェテンシャッペリーク・オンデルゾエク・ティーエヌオー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】ファン・デーフェンター,マタイス・オスカル
(72)【発明者】
【氏名】ファンブランデンブルク,ライ
(72)【発明者】
【氏名】ニアムット,オマール・アジス
【審査官】 梅本 達雄
(56)【参考文献】
【文献】 国際公開第2011/047335(WO,A1)
【文献】 米国特許出願公開第2009/0292819(US,A1)
【文献】 国際公開第2009/075033(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/10
H04N 7/14 − 7/173
H04N 21/00 − 21/858
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
セグメント化されたコンテンツのストリーミングをマニフェスト・ファイルに基づいて可能にするための方法であって、前記マニフェスト・ファイルが、1つ以上のセグメント識別子と、該セグメント識別子によって識別される1つ以上のセグメントをクライアントに配信するように構成される1つ以上の配信ノードを位置特定するための1つ以上の関連のセグメント・ロケ−タとを含み、当該方法が、
前記マニフェスト・ファイル内のセグメント識別子に少なくとも基づいて、少なくとも1つのセグメントの配信を要求するステップと、
前記少なくとも1つのセグメント識別子に基づいて、前記マニフェスト・ファイルから少なくとも1つの別のセグメント識別子を選択するステップであって、前記別のセグメント識別子が少なくとも1つの予想される将来のセグメント要求に関連付けられる、ステップと、
1セグメント・ロケ−タに関連付けられるネットワーク情報を取得するために、前記選択した別のセグメント識別子に関連付けられる前記第1セグメント・ロケ−タの少なくとも一部を事前解決するステップと
を含む、方法。
【請求項2】
請求項1記載の方法において、前記ネットワーク情報が、前記第1セグメント・ロケ−タの少なくとも一部に関連付けられるネットワーク・アドレスの少なくとも一部に関する情報、前記選択した別のセグメント識別子に関連付けられる第1セグメント・ロケ−タが、前記予想された将来のセグメント要求に関連付けられるセグメントの配信のための配信ノードをポイントするか、若しくは前記予想された将来のセグメント要求のリダイレクトのためのネットワーク・ノードをポイントするかについての情報、および/または、前記選択された別のセグメント識別子に関連付けられる第2セグメント・ロケ−タの少なくとも一部を含む、方法。
【請求項3】
請求項1または2記載の方法であって、更に、
前記第1セグメント・ロケ−タがリダイレクトのためにネットワーク・ノードをポイントする場合に、前記第1セグメント・ロケ−タの少なくとも一部を、前記選択された別のセグメント識別子に関連付けられる第2セグメント・ロケ−タの少なくとも一部に事前解決するステップを含む、方法。
【請求項4】
請求項1から3のいずれか一項記載の方法であって、
前記ネットワーク情報に基づいて前記マニフェスト・ファイルを修正するステップを含む、方法。
【請求項5】
請求項2または3記載の方法であって、
前記第2セグメント・ロケ−タの前記少なくとも一部に基づいて前記マニフェスト・ファイルを修正するステップを含む、方法。
【請求項6】
請求項1から5のいずれか一項記載の方法において、前記事前解決するステップが、
ネットワーク情報についての要求を、前記第1セグメント・ロケータに関連付けられるネットワーク・ノードに送信するステップと、
応答メッセージを受信するステップと、
前記選択した別のセグメント識別子に関連付けられる前記第1セグメント・ロケータが、前記予想された将来のセグメント要求に関連付けられるセグメントの配信のために配信ノードをポイントするか、または前記予想された将来のセグメント要求のリダイレクトのためにネットワーク・ノードをポイントするかについて、前記応答メッセージに基づいて決定するステップと
を含む、方法。
【請求項7】
請求項6記載の方法において、ネットワーク情報についての前記要求が、HTTP、RTSPおよびDNSのプロトコル・メッセージの少なくとも1つを含み、並びに/または、前記応答メッセージがHTTP若しくはRTSPの応答メッセージである、方法。
【請求項8】
請求項1から7のいずれか一項記載の方法において、前記事前解決するステップが、前記少なくとも1つのセグメントの少なくとも一部の配信の間、バックグラウンド処理として実施される、方法。
【請求項9】
請求項1から8のいずれか一項記載の方法において、
ユーザ・プロファイル、ユーザ・ナビゲーション履歴、セグメント化されたコンテンツとのユーザ相互作用、並びに/または、クライアントおよび/若しくはユーザの地理的位置の内少なくとも一部に基づいて、前記少なくとも1つの別のセグメント識別子を選択するステップを含む、方法。
【請求項10】
請求項1から9のいずれか一項記載の方法において、前記マニフェスト・ファイルが、将来のセグメント要求についての1つ以上の別のセグメント識別子をマークするための1つ以上のマーカを含む、方法。
【請求項11】
請求項1から10のいずれか一項記載の方法において、前記事前解決するステップが、
ネットワーク情報の求を1コンテンツ配信ネットワーク(CDN1)に送信するステップであって、前記要求が前記選択した別のセグメント識別子を少なくとも含む、ステップと、
前記第1コンテンツ配信ネットワーク(CDN1)が、前記選択した別のセグメント識別子によって識別される前記セグメントの将来の配信をネゴシエートするために、前記選択した別のセグメント識別子を含むCDN間要求メッセージを、第2コンテンツ配信ネットワーク(CDN2)に送信するステップと、
前記第1コンテンツ配信ネットワーク(CDN1)が、位置情報を含むCDN間応答メッセージを受信するステップであって、前記1つ以上の配信ノードが、前記選択した別のセグメント識別子によって識別されるセグメントをクライアントに配信するように構成される、ステップと
を含み、
オプションとして、前記CDN間要求メッセージがインジケータを含み、前記第2コンテンツ配信ネットワーク(CDN2)により、前記CDN間要求メッセージがセグメント・ロケータについて前記事前解決するステップに関連付けられるのを判断することを可能にし、または、前記CDN間要求メッセージが、HTTPHEADメッセージ若しくはRTSP DESCRIBEメッセージに基づいて実装されることにより、前記第2コンテンツ配信ネットワーク(CDN2)により、前記CDN間要求メッセージがセグメント・ロケータについて前記事前解決するステップに関連付けられるのを判断することを可能にする、方法。
【請求項12】
ネットワーク内の1つ以上の配信ノードにホストされたセグメント化されたコンテンツについてのクライアント制御によるストリーミングのためのクライアントであって、
マニフェスト・ファイルの少なくとも一部を格納するためのマニフェスト・キャッシュであって、前記マニフェスト・ファイルが、1つ以上のセグメント識別子と、該セグメント識別子によって識別される1つ以上のセグメントを当該クライアントに配信するように構成される1つ以上の配信ノードを位置特定するための1つ以上の関連のセグメント・ロケ−タとを含む、マニフェスト・キャッシュと、
前記マニフェスト・ファイル内の少なくとも1つのセグメント識別子に基づいて、少なくとも1つのセグメントの配信を要求するセグメント抽出機能と、
前記少なくとも1つのセグメント識別子に基づいて、少なくとも1つの予想される将来のセグメント要求に関連付けられる少なくとも1つの別のセグメント識別子を、前記セグメント抽出機能から選択するように構成されるセグメント・セレクタと、
1セグメント・ロケータに関連付けられるネットワーク情報を取得するために、前記少なくとも1つの別のセグメント識別子に関連付けられる前記第1セグメント・ロケータの少なくとも一部を事前解決する事前解決機能と
を備える、クライアント。
【請求項13】
請求項12記載のクライアントと共に使用するためのネットワーク・ノードにおいて、当該ネットワーク・ノードが、第1コンテンツ配信ネットワーク(CDN1)に関連付けられ、
セグメント・ロケータに関連付けられるネットワーク情報の要求をクライアントから受信し、前記セグメント・ロケータが、セグメントを識別するセグメント識別子に関連付けられ、
前記セグメントの将来の配信をネゴシエートするために、前記セグメント・ロケータの少なくとも一部および/またはセグメント識別子を含むCDN間要求メッセージを、第2コンテンツ配信ネットワーク(CDN2)に送信する
ように構成され、
前記CDN間要求メッセージがフラグを含み、または、
前記CDN間要求メッセージが、HTTP HEADメッセージ若しくはRTSP DESCRIBEメッセージに基づくものであり
前記フラグ、または前記HTTP HEADメッセージ若しくは前記RTSP DESCRIBEメッセージは、前記第2コンテンツ配信ネットワーク(CDN2)により、前記CDN間要求メッセージが、前記クライアントによって要求されたセグメント・ロケータについての事前解決に関連付けられるのを判断することを可能にする、ネットワーク・ノード。
【請求項14】
請求項12記載のクライアントで使用するためのデータ構造であって
該データ構造が、1つ以上のセグメント識別子と、該1つ以上のセグメント識別子によって識別される1つ以上のセグメントを前記クライアントに配信するように構成される1つ以上の配信ノードを前記クライアントによって位置特定するため1つ以上の関連のセグメント・ロケ−タとを含み、
当該データ構造が更に、前記セグメント識別子の内1つ以上に関連付けられる1つ以上のマーカを含み、該1つ以上のマーカは、前記クライアントの事前解決機能により、1つ以上の予想される将来のセグメント要求に関連付けられる1つ以上の別のセグメント識別子を選択するのを可能にする、データ構造。
【請求項15】
コンピュータのメモリにおいて起動したときに、請求項1〜11のいずれか一項に記載の方法のステップを実行するように構成されるソフトウェア・コード部を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セグメント化されたコンテンツについての制御されたストリーミングに関するものである。より詳細には、排他的ではないが、セグメント化されたコンテンツについての制御されたストリーミングを可能にする方法、セグメント化されたコンテンツについてストリーミングを制御するクライアント、クライアントで使用するためのネットワーク・ノードおよびデータ構造、並びにこのような方法を用いたコンピュータ・プログラム製品に関するものである。
【従来技術】
【0002】
現在のところ、拡大しているビデオ・ストリーミング技術は、いわゆるセグメント化(segmentation)を用いる。例えば、HTTP適用可能ストリーミング(HAS)、スケーラブル・ビデオ符号化(SVC)、および空間的にセグメント化したビデオ(例えば、タイル化したビデオ)は、それぞれ、時間、品質、および空間に基づいてセグメント化を用いる。セグメント化処理の間、異なるセグメンント・ファイルおよび/またはストリームの間の関係、並びにセグメントを抽出できる位置について記述する所謂マニフェスト・ファイルが生成されることになる。セグメント・ファイルはセグメント・データを含むファイルに関連し、当該セグメント・データはファイル抽出プロトコル、例えばHTTPまたはFTPにより抽出することができる。同様に、セグメント・ストリームはセグメント・データを含むストリームに関連し、当該セグメント・データは、ストリーミング・プロトコル、例えばRTSP/RTPまたはHASにより抽出することができるセグメント・データにより抽出することができる。以降において、セグメント・ファイルまたはストリームについてセグメントと称することがある。更に、ビデオ、より包括的にはセグメント化方式でレンダリングされるコンテンツをセグメント化されたコンテンツ(segmented content)と称することがある。
【0003】
セグメント化されたコンテンツは、例えば、高品質から低品質へとビデオ・ストリームを切り替えることにより、帯域幅要件の変更に対して動的に調整するのに使用することができる。更に、セグメント化されたコンテンツはまた、ポピュラーなビデオ・セグメントとあまりポピュラーではないビデオ・セグメントの間を区別するのを可能にする。例えば、通例、ビデオの開始に関連付けられるコンテンツは、終了したコンテンツよりもより頻繁に(よりポピュラーに)視聴される(ダウンロード/アクセス/抽出される)ことになる。同様に、低ビットレートでより低い品質のビデオ・コンテンツ(例えば、最低解像度のHASセグメントまたはSVC基礎レイヤ)は、高品質コンテンツ(例えば、より高い解像度のHASセグメントまたはSVC強化レイヤ)よりもより頻繁に視聴される(ダウンローにアクセス/抽出される)ことになる。
【0004】
したがって、コンテンツをセグメント化するときは、特定のセグメントは、他のコンテンツよりも消費者によって(非常に)より頻繁に要求されることになる。この特性は、コンテンツを消費者に配信するように構成されるコンテンツ配信ネットワーク(CDN)により使用されると有利なものとなる。CDNは、例えば、CDN内の複数のノードにおいてよりポピュラーなコンテンツに関連付けられるセグメントを格納することができる。その結果、(とても離れたサーバから多くのポピュラーなセグメントを取得することによりネットワーク帯域が輻輳することがあるというような)帯域幅の課題を低減させることができ、配信の効率性が保証される。CDNコンテンツ位置マネージャは、セグメントを抽出できるCDN内の位置を中央で管理することができる。
【0005】
クライアントによる、CDN内に格納されるセグメントへのアクセスを可能とするために、クライアントには、セグメント識別子とネットワーク内の位置をポイントするセグメント・ロケータとについてのリストを識別する所謂マニフェスト・ファイルが提供され、クライアントがセグメントを抽出するのを可能にする。通例、プレイ・アウトが開始される前に、クライアント(デバイス)に関連付けられるセグメント・バッファが所定の数のセグメントにより負荷を掛けられるように、クライアントはセグメントを抽出するように構成される。更にまた、プレイ・アウトの間、クライアントは、マニフェスト・ファイルに基づいてセグメントを継続的に抽出し、その結果、十分なセグメントがバッファ内に維持される。このように、セグメントの抽出に関連するレイテンシは、セグメントのシームレスなプレイ・アウトと干渉することはない。
【0006】
しかしながら、幾らかの場合では、クライアントは、コンテンツのプレイ・アウト(例えば、早送り(fast-forwarding)、パン(panning)、ズーム、および/またはタイル化)をユーザに相互作用させることもある。更に、ユーザは、別のレートまたはビデオ品質に切り替えるように、クライアントに指示することもある。上記の全ての場合において、セグメントのプレイ・アウトはバッファ内で利用可能なことを必要とはしなくてもよく、その結果、クライアントは、オンザフライ(on the fly)で(CDNまたは別のネットワークから)そのセグメントの抽出を開始することになる。しかしながら、この処理は相当量の時間を要する場合がある。何故ならば、セグメントが、DNSルック・アップおよびHTTPリダイレクトを伴うことがある解決処理を用いて位置特定および抽出されることになるからである。更には、幾らかの場合では、コンテンツ・アイテム(例えば、ビデオ/動画)に関連付けられる(コンテンツ)セグメントは、2つ以上の異なるCDNに所属する(CDN/他のネットワークの)ノードに格納する場合がある。その場合は、どの中央の位置マネージャも、異なるCDNドメイン内のセグメントを位置特定するのに利用可能ではない。それ故、第1のCDNに関連付けられるマニフェスト・ファイルは、別のCDNにおいてルーティング機能を参照することのみができる。何故ならば、第1のCDNは、第2のCDNにあるセグメントの位置に関する知識を有しないからである。別の(第2の)CDNからのあるセグメントが要求される都度、その他の(第2の)CDNへのルーティング要求は必要とされる。また、1つ以上の更なるルーティング要求(および応答)が別の(第2の)CDNで生成されることがある。このような要求は、要求ルーティングの遅延を生じさせることになり、その結果、クライアントが要求されたセグメントを受信するのにより多くの時間、最大数秒も掛かることになる。
【0007】
したがって、上記のことから、ユーザの如何なる相互作用なしで、DNS要求に関連する遅延、リダイレクトおよび/またはCDN間(CDN−I)の要求ルーティングは、(ビデオ)ストリームの品質についてユーザの知覚にほとんど影響しないということになる。何故ならば、クライアントは通例、バッファされた少しのセグメントを有し、あるスラックを許容するからである。しかしながら、(セグメント化された)コンテンツとの相互作用が認められる場合は、バッファ内で利用可能ではないセグメントについてのプレイ・アウトは、相当量の時間を要する。何故ならば、セグメントは、解決処理を用いて位置特定される必要があるからである。この処理は、複雑に相互接続されたCDNの場合、最大で秒数も掛かることになり、その結果、セグメント化された(ビデオ)コンテンツのシームレスなプレイ・アウトはもはや可能ではなく、ユーザ経験(user experience)は深刻に格下げされる。
【0008】
したがって、当該技術分野では、セグメント化されたコンテンツについてクライアントへの効率的なストリーミングの必要性が存在する。具体的には、ユーザがセグメント化されたコンテンツと相互作用する場合であっても、セグメント化されたコンテンツのシームレスなプレイ・アウトを提供する方法およびシステムの必要性が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明の目的は、当該技術分野において公知とされる欠点の内の少なくとも1つを削減または排除して、本発明の第1の態様における方法を提供することである。
【課題を解決するための手段】
【0010】
当該方法は、1つ以上の配信ノードを位置特定するマニフェスト・ファイルに基づいて、セグメント化されたコンテンツのストリーミング、好ましくはクライアントにより制御される(client-controlled)ストリーミングを可能にする。当該方法は次のステップの内少なくとも1つを含むことができる。即ち、マニフェスト・ファイルに基づいて、少なくとも1つのセグメントの配信を要求するステップ、当該セグメントの要求に関連付けられるセグメント識別子に基づいて、マニフェスト・ファイルから少なくとも1つの別のセグメント識別子を選択するステップであって、当該別のセグメント識別子が、予想された将来のセグメント要求に関連付けられるステップ、および、第1のセグメント・ロケ−タに関連付けられたネットワーク情報を取得するために、上記選択した別のセグメント識別子に関連付けられる第1セグメント・ロケ−タの少なくとも一部を事前解決するステップである。一実施形態では、マニフェスト・ファイルは、1つ以上のセグメント識別子および/または1つ以上の関連するセグメント・ロケータを含む。他の実施形態では、配信ノードは、当該セグメント識別子によって識別される1つ以上のセグメントをクライアントに配信するように構成できる。更なる他の実施形態では、セグメント・ロケ−タは、ネットワーク・ノードをポイントする所定のURLの一部とすることができる。
【0011】
したがって、本方法は、クライアントが、マニフェスト・ファイルにリストされ、将来要求されることになると予想されるセグメントを選択することを可能にし、また、クライアントによって要求される1つ以上のセグメントの内1つに基づいて、これら選択されるセグメントに関連付けられる1つ以上のセグメント・ロケータを少なくとも部分的に事前解決することを可能にする。このようにして、要求ルーティング、DNS要求および/またはレダイレクトに関連する遅延は、除去されるかまたは少なくとも実質的に削減される。その結果、ユーザ相互作用の間においてシームレスなまたは少なくとも実質的にシームレスなセグメントのプレイ・アウトを実現することができる。
【0012】
一実施形態では、ネットワーク情報は、第1セグメント・ロケ−タの少なくとも一部に関連付けられるネットワーク・アドレスの少なくとも一部に関する情報や、選択した別のセグメント識別子に関連付けられる第1のセグメント・ロケ−タが、上記予想された将来のセグメント要求に関連付けられるセグメントの配信のための配信ノードをポイントするか、若しくは、上記予想された将来のセグメント要求のリダイレクトのためにネットワーク・ノードをポイントするかについての情報、および/または、上記選択された別のセグメント・ロケータに関連付けられる第2のセグメント・ロケ−タの少なくとも一部を含むことができる。他の実施形態では、本方法は、第1セグメント・ロケ−タがリダイレクトのためにネットワーク・ノードをポイントする場合に、当該第1セグメント・ロケ−タを、上記選択された別のセグメント識別子に関連付けられる第2のセグメント・ロケ−タに事前解決するステップを含むことができる。更なる他の実施形態では、上記ネットワーク情報に基づいて上記マニフェスト・ファイルを修正するステップを含む。したがって、抽出したネットワーク情報に基づいて、マニフェスト・キャッシュに格納されるマニフェスト・ファイルを更新することができる。このようにして、特に、クライアントに関連付けられる事前解決機能は、継続的におよび動的に、事前解決セグメント・ロケータの全部および/または一部を用いてマニフェスト・ファイルを更新することができる。
【0013】
一実施形態において、本方法は、上記第2セグメント・ロケ−タの少なくとも一部に基づいて、上記マニフェスト・ファイルを修正するステップであって、好ましくは、第1セグメント・ロケ−タの少なくとも一部を第2セグメント・ロケ−タの少なくとも一部で置き換えるステップを含むことができる。事前解決ステップについての結果は、元のセグメント・ロケータを部分的な事前解決された別のセグメント・ロケータにリプレイおよび/または修正するのに使用することができる。その結果、部分的に事前解決されるセグメント・ロケータに関連付けられるセグメントが要求されると、セグメント・ロケータを解決することに関連する遅延が実質的に削減される。
【0014】
更なる実施形態では、本方法は、第2セグメント・ロケータが、予想された将来のセグメント要求に関連付けされるセグメントの配信のために、配信ノードのネットワーク・アドレスに関連付けられる場合に、上記第2セグメント・ロケータに基づいて、マニフェスト・ファイルを修正するステップを含む。事前解決ステップの結果は、元のセグメント・ロケータを完全に事前解決したセグメント・ロケータにリプレイおよび/または修正するのに使用することができる。その結果、セグメントが要求されても、セグメント要求の解決は必要ない。
【0015】
更なる他の実施形態では、本方法は次のステップの内の少なくとも1つを含むことができる。即ち、ネットワーク情報についての要求を、第1セグメント・ロケータに関連付けられるネットワーク・ノードに送信するステップ、応答メッセージを受信するステップ、上記選択した別のセグメント識別子に関連付けられる第1セグメント・ロケータが、上記予想された将来のセグメント要求に関連付けられるセグメントの配信のために配信ノードをポイントするか、または上記予想された将来のセグメント要求のリダイレクトのためにネットワーク・ノードをポイントするかについて、応答メッセージに基づいて決定するステップである。
【0016】
更なる他の実施形態では、ネットワーク情報についての要求が、HTTP、RTSPおよび/若しくはDNSのプロトコル・メッセージ、好ましくは、HTTPHEADメッセージ若しくはRTSP DESCRIBEメッセージを含むことができ、並びに/または、上記応答メッセージがHTTP若しくはRTSPの応答メッセージである。
【0017】
一実施形態では、上記事前解決ステップは、少なくとも1つのセグメントの少なくとも一部の配信の間、バックグラウンド処理として実施することができる。
【0018】
一実施形態では、本方法は、ユーザ・プロファイル、ユーザ・ナビゲーション履歴、セグメント化されたコンテンツとのユーザ相互作用、並びに/またはユーザの地理的位置の少なくとも一部に基づいて、上記少なくとも1つの別のセグメント識別子を選択するステップを含むことができる。したがって、予想される将来のセグメント要求に関連付けられるセグメントの選択は、ユーザ関連情報に基づくものとすることができる。
【0019】
一実施形態では、マニフェスト・ファイルは、将来のセグメント要求のために1つ以上の別のセグメント識別子をマークする1つ以上のマーカを含み、好ましくは、当該マーカはランキング値を含む。このようにして、事前解決のためのセグメントの選択は、マニフェスト・ファイルの情報に基づくことができる。この情報は、CDNによってまたはコンテンツ・プロバイダによって、マニフェスト・ファイルに挿入することができる。
【0020】
一変更態様では、事前解決するステップは、次の内の少なくとも1つを含むことができる。即ち、ネットワーク情報についての要求、好ましくは、HTTPHEADメッセージまたはRTSP DESCRIBEメッセージを第1のコンテンツ配信ネットワーク(CDN1)に送信するステップであって、上記要求が少なくとも選択される別のセグメント識別子を含むステップ、第1コンテンツ配信ネットワーク(CDN1)が、選択される別のセグメント識別子によって識別されるセグメントについての将来の配信をネゴシエートするために、上記選択された別のセグメント識別子を含むCDN間要求メッセージ、好ましくはDELIVERYREQUESTメッセージを、第2のコンテンツ配信ネットワーク(CDN2)に送信するステップ、および/または、第1コンテンツ配信ネットワーク(CDN1)が、位置情報、好ましくは第2コンテンツ配信ネットワーク(CDN2)内の1つ以上の配信ノードに関連付けられるネットワーク・アドレスまたはセグメント・ロケータを含むCDN内応答メッセージ、好ましくは、DELIVERYRESPONSEメッセージを受信するステップであって、1つ以上の配信ノードが、上記選択された別のセグメント識別子によって識別されるセグメントをクライアントに配信するように構成されるステップである。したがって、事前解決処理の間、第1のCDN内のネットワーク・ノードは、セグメント識別子の事前解決に関連付けられるネットワーク情報についての要求を識別し、当該要求を第2のCDN内のネットワーク・ノードに転送することができる。これにより、事前解決処理の効率性を改良することができる。
【0021】
一実施形態では、CDN間(inter-CDN)要求メッセージはフラグを含むことができ、第2コンテンツ配信ネットワーク(CDN2)により、CDN間要求メッセージがセグメント・ロケータの事前解決に関連付けられるのを判断することを可能にする。
【0022】
他の実施形態では、CDN間要求メッセージが、HTTP HEADメッセージ若しくはRTSP DESCRIBEメッセージに基づいて実装され、これにより、第2コンテンツ配信ネットワーク(CDN2)により、CDN間メッセージがセグメント・ロケータについての事前解決に関連付けられるのを判断することを可能にする。
【0023】
更なる他の実施形態では、マニフェスト・ファイルは、第1のコンテンツ配信ネットワーク(CDN1)内の1つ以上の配信ノードに関連付けられる第1の位置情報、好ましくはネットワーク・アドレス、および第2のコンテンツ配信ネットワーク(CDN2)内の1つ以上の配信ノードに関連付けられる第2の位置情報、好ましくはネットワーク・アドレスを含むことができる。
【0024】
更なる実施形態では、上記セグメント化されたコンテンツは、空間的にセグメント化されたコンテンツであり、クライアントは、時間的距離を規定する時間近接度パラメータを用いる。その結果、クライアントによって現在処理されている時間的セグメントから時間近接度距離内に配置される時間的セグメントを識別する1つ以上のセグメント識別子をマークすることができ、および/若しくは1つ以上の関連するセグメント・ロケータを事前解決するように選択することができる。または、
上記セグメント化されたコンテンツは、空間的にセグメント化されたコンテンツであり、クライアントは空間的距離を規定する空間的近接度パラメータを用いる。その結果、クライアントによって現在処理されている空間的セグメントから空間近接度距離内に配置される空間的セグメントを識別する1つ以上のセグメント識別子をマークすることができ、および/若しくは1つ以上の関連するセグメント・ロケータを事前解決するように選択することができる。または、
上記セグメント化されたコンテンツは、品質的にセグメント化されたコンテンツであり、クライアントは品質的距離を規定する品質的近接度パラメータを用いる。その結果、クライアントによって現在処理されている品質的セグメントから品質的近接度距離内に配置される品質的セグメントを識別する1つ以上のセグメント識別子をマークすることができ、および/若しくは1つ以上の関連するセグメント・ロケータを事前解決するように選択することができる。
【0025】
更なる態様では、本発明は、ネットワーク内の1つ以上の配信ノードにホストされたセグメント化されたコンテンツについてのクライアント制御ストリーミングのためのクライアントに関するものである。当該クライアントは、マニフェスト・ファイルの少なくとも一部を格納するためのマニフェスト・キャッシュであって、当該マニフェスト・ファイルが、1つ以上のセグメント識別子と、1つ以上のセグメント識別子によって識別される1つ以上のセグメントをクライアントに配信するにように構成される1つ以上の配信ノードを位置特定するための1つ以上の関連のセグメント・ロケ−タ、好ましくは1つ以上のURLを含むマニフェスト・キャッシュ、マニフェスト・ファイル内の少なくとも1つのセグメント識別子に基づいて少なくとも1つのセグメントの配信を要求するセグメント抽出機能、少なくとも1つのセグメント識別子に基づいて少なくとも1つの予想される将来のセグメント要求に関連付けられる少なくとも1つの別のセグメント識別子を選択するように構成されるセグメント・セレクタ、そして、第1セグメント・ロケータに関連付けられるネットワーク情報を取得するために少なくとも1つの別のセグメント識別子に関連付けられる第1セグメント・ロケータの少なくとも一部を事前解決する事前解決機能を含む。
【0026】
他の態様では、本発明は、先に説明したクライアントと共に使用するためのネットワーク・ノードに関するものである。ネットワーク・ノードは、第1のコンテンツ配信ネットワーク(CDN1)に関連付けられる。また、ネットワーク・ノードは、セグメント・ロケータに関連付けられるネットワーク情報についての要求をクライアントから受信し、好ましくは、上記要求が、HTTPHEADメッセージまたはRTSP DESCRIBEメッセージを含み、セグメント・ロケータが、セグメントを識別するセグメント識別子に関連付けられ、CDN間要求メッセージ、好ましくは、セグメントの将来の配信をネゴシエートするために、上記セグメント・ロケータおよび/またはセグメント識別子の少なくとも一部を含むDELIVERYREQUESTメッセージを、第2のコンテンツ配信ネットワーク(CDN2)に送信するように構成される。CDN間要求メッセージはフラグを含み、CDN間要求メッセージは、HTTPHEADメッセージ若しくはRTSP DESCRIBEメッセージに基づくものであり、フラグ、HTTPHEADメッセージ、またはRTSP DESCRIBEメッセージにより、CDN間メッセージがクライアントによって要求されたセグメント・ロケータについての事前解決に関連付けられることを、第2コンテンツ配信ネットワーク(CDN2)が判断するのを可能にする。
【0027】
更なる別の態様では、本発明は、先に説明したようなクライアントで使用するためのデータ構造、好ましくはマニフェスト・ファイルである。データ構造は、1つ以上のセグメント識別子、および当該1つ以上のセグメント識別子によって識別される1つ以上のセグメントをクライアントに配信するように構成される1つ以上の配信ノードを位置特定するための1つ以上の関連のセグメント・ロケ−タ、好ましくはURLを含む。当該データ構造は更に、上記セグメント識別子の内の1つ以上に関連付けられる1つ以上のマーカを含む。1つ以上のマーカは、クライアントの事前解決機能が、将来のセグメント要求について別のセグメント識別子を選択するのを可能にする。好ましくは、1つ以上のマーカは、ランキング値、好ましくは有名度スコアに関連付けられる。
【0028】
本発明はまた、コンピュータのメモリにおいて実施したときに、先に説明した方法ステップの少なくとも1つを実行するように構成されるソフトウェア・コード部を含むコンピュータ・プログラム製品に関するものである。
【0029】
本発明について添付の図面を参照して更に説明する。図面は本発明の実施形態を概略的に示している。本発明は、これら特定の実施形態に如何なる方法でも制限されないことが理解されるであろう。
【図面の簡単な説明】
【0030】
図1A図1Aは、クライアントで使用するための適用ストリーミング・クライアントおよびマニフェスト・ファイルを示す。
図1B図1Bは、クライアントで使用するための適用ストリーミング・クライアントおよびマニフェスト・ファイルを示す。
図2図2は、従来型のASクライアントについてのセグメント抽出およびプレイ・アウト処理のフロー図を示す。
図3図3は、本発明の一実施形態によるクライアントについて示す。
図4A図4Aは、本発明の一実施形態により、CDNベース・コンテンツ配信システム、およびCDNベース・コンテンツ配信システムにおける位置を解決するための事前解決処理に関連するフロー図である。
図4B図4Bは、本発明の一実施形態により、CDNベース・コンテンツ配信システム、およびCDNベース・コンテンツ配信システムにおける位置を解決するための事前解決処理に関連するフロー図である。
図5図5は、本発明の一実施形態による事前解決セグメントの抽出について示す。
図6図6は、本発明の一実施形態により、クライアントによって実施されるセグメント事前解決および抽出処理に関連するフロー図である。
図7図7は、本発明の一実施形態により、クライアントのマニフェスト・キャッシュに格納されるマニフェスト・ファイルの少なくとも一部を事前解決する例について示す。
図8図8は、マニフェスト・ファイルの要求およびプレイ・アウトについて、マニフェスト・ファイルにおける未解決セグメントURLが事前解決される処理のフロー図について示す。
図9図9は、本発明の実施形態により、クライアントにおける事前解決機能により実行される処理についての詳細なフロー図である。
図10図10は、本発明の一実施形態により、事前解決のための適切なセグメントの選択について示す。
図11図11は、本発明の他の実施形態により、事前解決のための適切なセグメントの選択について示す。
図12図12は、本発明の更なる他の実施形態により、事前解決のための適切なセグメントの選択について示す。
図13図13は、本発明の一実施形態により事前解決のためにマークされるセグメントを含むマニフェスト・ファイルの少なくとも一部について示す。
【発明を実施するための形態】
【0031】
図1Aおよび図1Bは、それぞれ、従来型の適応ストリーミング(AS; adaptive streaming)クライアント、およびこのようなASクライアントで使用するマニフェスト・ファイルについて示す。
【0032】
クライアント102は、端末(図示せず)にホストすることができ、ネットワーク内の1つ以上のメディア・サーバと通信して、例えば、アップル社のHTTP Live Streaming[http://tools.ietf.org/html/draft-pantos-http-live-streaming-07]、マイクロソフト社のSmooth Streaming[http://www.iis.net/download/SmoothStreaming]、アドビ社のHTTP Dynamic Streaming[http://www.adobe.com/products/httpdynamicstreaming]、3GPP―DASH[3GPP-DASH [TS 26.247 Transparent end-to- end Packet-switched Streaming Service (PSS); Progressive Download and Dynamic Adaptive Streaming over HTTP]、そして、MPEG Dynamic Adaptive Streamingover HTTP [MPEG DASH ISO/IEC 23001-6]のような適応ストリーミング・プロトコルに基づいて、コンテンツのストリーミングを可能にするように構成される。
【0033】
端末は、全般的に、コンテンツ処理デバイス、例えば、電子タブレット、スマートフォン、ノートブック、メディア・プレーヤ等のような(モバイル)コンテンツ・プレイ・アウト・デバイスに関する。実施形態の中には、端末は、コンテンツ・プレイ・アウト・デバイスによる将来の消費のためのコンテンツを処理し一時的に格納するように構成されるセットトップ・ボックスまたはコンテンツ・ストレージ・デバイスとすることもある。
【0034】
ユーザは、ネットワーク、例えばインターネットに端末を接続し、ビデオ・タイトルのリンクを含むコンテンツ・プロバイダのウェブサイトをブラウズして、その1つを選択することができる。リンク、例えばURLの選択に応じて、所謂マニフェスト・ファイルをクライアントに送信することができる。ここで、マニフェスト・ファイルという用語は、一般的に、ビデオ・タイトル、ネットワーク・ノード(1または複数)、例えばメディア・サーバ(1または複数)のセットについて位置情報を識別するセグメント識別子(記述子)を含む特別のデータ構造のことを称し、セグメントをクライアントに配信するか、情報をクライアントに提供するかのいずれかのように構成することができる。クライアントでは、セグメント、オプションとしてセグメント間の関係を決定するセグメント制御情報を抽出することができる。セグメント制御情報は、プレイ・アウトについてのセグメントのシーケンスを正確に決定するために、クライアントにより使用されることができる。異なるプロトコルはマニフェスト・ファイルに対して異なる名前を用いてもよい。例えば、DASHストリーミング・プロトコルでは、マニフェスト・ファイルは、メディア・プレゼンテーション記述(MPD)と称してもよい。
【0035】
図1Bは、コンテンツ・アイテムを構築するセグメント、および1つ以上のネットワーク・ノードへの参照を含む位置情報を識別するための識別子を含むマニフェスト・ファイルについての概略図である。1つ以上のネットワーク・ノードは、識別されるセグメントをクライアントに配信するように構成され、またはセグメントを抽出できるクライアントに情報を提供するように構成される。したがって、このような参照は、以降セグメント・ロケータと称するが、識別されるセグメントを配信するように構成されるネットワーク・ノードをポイントするか、または、その代替として、識別されるセグメントを配信可能である1つ以上のネットワーク・ノードを決定することができるネットワーク・ノードをポイントすることができる。更に他の実施形態では、セグメント・ロケータはまた、ネットワーク・ノードの位置をポイントすることもできる。例えば、異なるセグメント・ロケータは、1つの配信ノードにおいて定められる異なるフォルダをポイントすることができる。
【0036】
図1Bは、マニフェスト・ファイルで識別されるセグメントをクライアントに配信するように構成される配信ノードの位置特定をするために、クライアントにより使用されるマニフェスト・ファイルの概略図である。そのために、マニフェスト・ファイルは、セグメントを識別するために、少なくとも1つのセグメント識別子、例えばセグメント・ファイル名、セグメント識別子に関連付けられる少なくとも1つのセグメント識別子の形態の位置情報を含むことができる。セグメント・ロケータは、1つ以上のネットワーク・ノード(またはネットワーク・ノード上の1つ以上のフォルダ)をポイントするように規定することができる。当該ネットワーク・ノードは、識別されたセグメントをホストし、セグメントをクライアントまで配信するように構成されるか、または識別されたセグメントをクライアントに配信可能な1つ以上の別のネットワーク・ノードを決定するように構成される。
【0037】
実施形態の中には、セグメント識別子およびセグメント・ロケータは、URLのような所定のデータ構造の一部とすることができるものもある。例えば、central.cdnA.com/segment1-1.aviというURLは、セグメント・ロケータ central.cdnA.com、即ちCDNAのネットワークへのポインタ(または参照)、およびセグメント識別子、即ちセグメント・ファイル名segment1-1.aviを含む。ここで、セグメント・ロケータcentral.cdnA.com に関連付けられるネットワーク・ノードは、セグメントをクライアントに配信するように構成することができ、または、セグメントsegment1-1.aviを配信可能な1つ以上のネットワーク・ノードをポイントする1つ以上の別のセグメント・ロケータを配信するように構成することができる。以下の例示では、URLを用いて説明するが、本発明はそれに限定されない。他の実施形態では、セグメント識別子およびセグメント・ロケータは、ネットワークにおいてセグメントを識別および位置特定するために、如何なる適切なフィーマットとしてもよい。実施形態の中には、セグメント識別子およびセグメント・ロケータは、セグメント識別子またはセグメント・ロケータのどちらかが、ネットワーク内でセグメントを識別および位置特定するのに使用できるという意味において一致させることができる。
【0038】
図1Bの例では、マニフェスト・ファイルは、異なる2セットのセグメント、即ち、低ビットレート・セグメントである第1のセット、および高ビットレート・セグメントである第2のセットに関連付けられるセグメント識別子およびセグメント・ロケータを含むことができ、各セットはビデオ・タイトルを収容する。低ビットレートのセグメントに関連付けられるURLのセグメント・ロケータ部は、第1のコンテンツ配信ネットワークCDNAのネットワーク・ノードをポイントし、また、高ビットレートのセグメントに関連付けられるURLのセグメント・ロケータ部は、第2のCDNBのネットワーク・ノードをポイントする。クライアントは、マニフェスト・ファイル内のセグメントのURLに基づいて、セグメントを抽出することができる。この方式について、以下により詳細に説明する。
【0039】
図1Aに示したように、マニフェスト・ファイルは、マニフェスト・キャッシュ104に格納され、パースされて、セグメント・リスト、即ち論理データ構造に構造化されることができる。当該セグメント・リストは、セグメントを抽出するための情報、例えば、セグメント識別子(例えばセグメント・ファイル名)およびセグメント・ロケータ(例えばURL(1または複数)のうち所定の部分)を抽出する情報、これらセグメントが抽出される位置を決定する情報、およびセグメントのプレイ・アウト、即ちセグメント間の関係(例えば、時間的関係、品質的関係、および/または空間的関係)を制御するためのプレイ・アウト制御情報を含む。
【0040】
セグメント抽出機能106は、マニフェスト・キャッシュ内の位置情報を使用することができ、その結果、メディア・サーバまたはコンテンツ配信ネットワーク(CDN)に関連付けられる1つ以上の配信ノードからセグメントを抽出することができる。セグメントは、(セグメント)転送プロトコル(通例、これはHTTPであろうが、また、RTSP/RTP、FTPおよび他のプロトコルを使用することもできる)を使用して抽出され、一時的にセグメント・バッファ108に格納することができる。更に、ビデオ・プレイ・アウト機能110(これはまた、メディア・エンジンとも称することがある)が、マニフェスト・キャッシュ内の情報に基づいてセグメント・バッファ内に格納されるセグメントをプレイ・アウトすることができる。
【0041】
セグメント抽出機能は、セグメントを抽出して、プレイ・アウトが開始されないうちに、セグメント・バッファが所定の数のセグメントによって負荷を掛けられるように構成することができる。更に、プレイ・アウトの間、セグメント抽出機能は、マニフェスト・ファイルに基づいて継続的にセグメントを抽出する。その結果、充分なセグメントをセグメント・バッファに格納することができる。このように、セグメント抽出に関連したレイテンシは、セグメントのシームレスなプレイ・アウトを干渉することがない。セグメント抽出機能は、ユーザ・ナビゲーション機能112からのセグメント抽出命令を受け入れて処理することができる。ここで、ユーザ・ナビゲーション機能からのセグメント抽出命令は、時間的ナビゲーション(例えば早送り)、または空間的ナビゲーション(例えばパニング・ズーム・タイトル化)に関するものとすることができる。
【0042】
図1Aに示すような従来型のASクライアントに関する1つの課題は、ユーザ・ナビゲーション機能がセグメント・バッファにおいて利用可能ではないセグメントのプレイ・アウトを要求する場合に、セグメント抽出機能が、要求されたセグメントをオンザフライで抽出するのを開始することになってしまうという事実に関する。この処理は、しかしながら、相当量の時間を要する。何故ならば、セグメントは、解決処理を用いて位置特定される必要があるからであり、ここでは、マニフェスト・ファイルの(未解決の)セグメント・ロケータが、セグメントをホストするネットワークに関連付けられるネットワーク・アドレスに解決される。この解決処理は、DNSルック・アップ、HTTPリダイレクト、および/またはCDN間(CDN―I)要求ルーティングを伴うことがある。この処理は、複雑なまたは相互接続されたCDNの場合に、最大で数秒も掛かることがある。セグメントをダウンロードする処理はまた、著しく時間が掛かることもある。しかしながら、プレイ・アウト処理は、セグメント全体がダウンロードされないうちに既に開始することになるので、ユーザが知覚する経験の品質は、コンテンツを通じてナビゲートするときは、主にセグメント解決処理によって決定されることになる。
【0043】
図2は、図1Aに示した従来型のクライアントについてのセグメント抽出およびプレイ・アウト処理について、より詳細に示している。t=0において処理は開始し、クライアントはバッファ・セグメント、この場合は第1のセグメント「segment1-1.avi」のプレイ・アウトを開始することができる(ステップ200)。バッファ・セグメントは、図1Aおよび図1Bを参照して説明したマニフェスト・ファイルに基づくセグメント抽出機能により、CDNから既に抽出されている。第1セグメントのプレイ・アウトが一旦終了すると、後続のt=1でのセグメント(segment1-2.avi)、およびt=2でのセグメント(segment1-3.avi)が処理されて、プレイ・アウトされることになる。
【0044】
次いで、t=2において、segment1-3.aviのセグメント・ファイル名を有するセグメントのプレイ・アウトの間、ユーザは、クライアントのユーザ・ナビゲーション機能を用いて、(例えば、ボタンを低ビットレートのプレイ・アウト・モードに入れよう選択することによって)コンテンツと相互作用することができる。相互作用の結果として、端末のセグメント・バッファにおいて利用可能ではない新規のセグメント、即ち低ビットレートのセグメントsegument2-4.aviが要求される(ステップ202)。
【0045】
クライアントは、セグメントがバッファにおいて利用可能ではないと決定するときに、セグメント抽出機能をトリガして、マニフェスト・ファイルの低ビットレート・セグメントsegment2-4.aviの位置情報、例えばセグメント・ロケータを抽出し、CDNAの要求ルーティング機能に関連付けられるセグメント・ロケータcentral.cdnA.comを含むDNS要求メッセージをDNSシステムに送信することによって、セグメント・ロケータcentral.cdnA.comを解決する。DNSシステムは、解決済みのIPアドレスを含むDNS応答メッセージをクライアントに戻すことができる(ステップ204,206)。応答では、クライアントは、セグメントsegment2-4.aviついてのHTTPゲット要求をCDNAの要求ルーティング・ノードのDNS解決済みIPアドレス123.45.67.89に送信することができる。要求に応答して、CDNA、上流(upstream)CDNは、CDN B、下流(downstream)CDNと要求されたセグメントの配信について協議することができる(ステップ210,210)。
【0046】
ここで、CDN AとCDNBの間の通信は、draft−ietf−cdni−problem−statement−01に説明されるように、CDNI要求ルーティング(RR)インタフェースに基づいてもよい。このインタフェースは、相互接続されるCDN内の要求ルーティング・ノードが通信するのを可能にし、ユーザ要求が上流CDN(この場合CDNB)から下流CDNの代理物(surrogate)まで(リ)ダイレクトされるのを確実にすることができる。CDNI RRインタフェースは、下流CDNが、情報(例えば、リソース、フットプリント、負荷)を上流CDNに提供するのを可能にし、コンテンツ要求を処理するときに、上流CDNの要求ルーティング・システムによる下流CDNの選択を容易にする。
【0047】
CDN間による協議の後に、CDN Aの要求ルーティング・ノードは、この特定のユーザについてのセグメントの配信がCDN Bによって最良に届けられることを判断することができる。CDN Aの要求ルーティング機能は、それ故、CDNBの要求ルーティング・ノードの位置情報を収容するHTTPリダイレクト応答をクライアントに送信し戻すことができる(ステップ214)。HTTPリダイレクトを受信すると、クライアントは、別のDNSクエリを実行し、新規のHTTPゲットを解決済みのIPアドレス98.65.45.201に送信する(ステップ216−220)。
【0048】
その後に、CDN Bの要求ノード、特にCDNBのCDN制御機能(CDNCF)は、特定のセグメントをクライアントに配信するのに最適な配信ノード(DN)を決定し、セグメント・ロケータ(この場合は、node3.cdnB.com)を収容するHTTPリダイレクトをクライアントに送信し戻す。クライアントは、その後、別のDNSクエリを実行して、配信ノードのIPアドレス24.67.13.57を抽出することができる。次いで、クライアントは、URL 24.67.13.57/segment2-4.aviを含むHTTP GETを、配信ノードのこのような解決済みのIPアドレスに送る(ステップ228−232)。これに応答して、配信ノードは、要求されたセグメント(segment2-4.avi)をクライアントに送信する(ステップ234)。次いで、t=9において、クライアント、segment2-4.aviを受信し、プレイ・アウトを開始することができる。
【0049】
したがって、図2からも分かるように、ユーザ相互作用なしで、リダイレクトおよび要求ルーティングの遅延は、ユーザ知覚への影響をほとんど有さない。何故ならば、クライアントは、通例、プレイ・アウトを開始しないうちに幾らかのセグメントをバッファするからである。しかしながら、クライアントとのユーザ相互作用が許容される場合、そのクライアントは、どのセグメントをユーザが選択することになるかについての知識を何ら有しない。図2に示すように、時間的(早送り)、空間的(パニング/拡大)、またはマルチ・レート方式での別のレートへのスイッチは、アドホックの抽出を必要とし、相当量の遅延が生じることになる。例えば、図2では、t=2におけるユーザ相互作用と、t=9におけるそのユーザ・アクションに関連するセグメントの受信との間で全てのプロトコル変換(DNS、HTTPリダイレクト、およびCDN間シグナリング)を実行するために、最大で数秒ものレイテンシがあり得る。このようなレイテンシは、セグメントのシームセスなプレイ・アウトを中断することになり、これによりユーザ経験を損なう。
【0050】
図3は、本発明の一実施形態によるクライアントを示す。特に、図3は、事前解決機能を含むASクライアントを示し、プレイ・アウトのためにクライアントによって近い将来に選択されることが予想されるセグメントのセグメント・ロケータ、例えば少なくともURLの一部を事前解決するように構成される。
【0051】
このようなセグメントを予測するために、セグメント・セレクタ313は、ユーザ・ナビゲーション機能312からのユーザ・ナビゲーション情報を用いることができ、その結果、マニフェスト・ファイル304に格納されるセグメント・リストから少なくとも1つのセグメントを選択することができる。この処理について以下により詳細に説明する。クライアントは更に、図1を参照して説明したような、セグメント抽出機能306、セグメント・バッファ308、およびビデオ・プレイ・アウト機能310(メディア・エンジン)を含むことができる。
【0052】
プレイ・アウトのセグメントに基づいて、また、ユーザ・ナビゲーション機能により提供されるナビゲーション情報に基づいて、セグメント・セレクタは、どのセグメント(1または複数)が、近い将来にクライアントによって選択されることに概ねなるかについて予測することができる。ユーザ・ナビゲーション情報は、つまり、コンテキスト情報、即ち、ユーザに特化した情報(例えばユーザ・プロファイル、ユーザ・ナビゲーション履歴、ユーザの(地理的)位置など)を供給する。コンテキスト情報は、将来のセグメント・プレイ・アウトを予測するセグメント・セレクタによって使用される。
【0053】
事前解決機能はまた、プレイされるセグメント・コンテンツに関連付けられる包括的なナビゲーション情報、例えば、特定のコンテンツ・アイテムに関連付けられる頻繁に要求されるセグメントに関する情報を使用することもできる。この包括的なナビゲーション情報は、将来のセグメントのプレイ・アウトを予測するために、ユーザ・ナビゲーション情報と共に用いることができる。一実施形態では、コンテンツ・プロバイダまたはCDNの制御機能は、マニフェスト・ファイル内の包括的なコンテンツ・ナビゲーション情報(例えばポピュラーなものとしてマークされたセグメント)を、それがクライアントに配信されたときに、挿入することができる。当該実施形態については図13を参照して更に詳細に説明する。他の実施形態では、事前解決機能は、コンテンツ・プロバイダ、CDNまたはサード・パーティから別の通信チャネルを通じて包括的なナビゲーション情報を受信することができる。
【0054】
予測したセグメント(1または複数)がセグメント・キャッシュにない場合は、事前解決機能は事前解決処理を開始することができ、予測したセグメントのセグメント・ロケータが、予測したセグメントを実際に抽出することなく、完全にまたは少なくとも部分的に事前解決される。ここで、事前解決という用語とは、予測したセグメントのセグメント位置に関連付けられるネットワーク情報を取得する処理に関するものである。ネットワーク情報は、IPアドレス、別のセグメント・ロケータ(一部)、および/またはセグメント・ロケータがネットワーク・ノードをポイントするかについての情報を含むことができる。ネットワーク・ノードは、セグメントをクライアント(即ち配信ノード)に配信する、またはネットワーク情報についての要求をリダイレクトするように構成される。予測したセグメントの事前解決セグメント・ロケータについての当該処理は、セグメントのプレイ・アウトと共に並行して(またはバックグラウンド処理として)実施することができ、また、DNSルック・アップ、リダイレクト、および/または実際にセグメント抽出することのないCDN間要求ルーティングのような技術を用いることができる。
【0055】
セグメント・ロケータと関連付けられるネットワーク情報は、クライアントのマニフェスト・ファイルを修正するのに用いることができる。例えば、一実施形態では、予測したセグメントのセグメント・ロケータを事前解決する処理の結果、完全に事前解決したセグメント・ロケータ、即ちクライアントにセグメントを配信するように構成された配信ノードのネットワーク・アドレスをポイントするセグメント・ロケータとなる場合は、事前解決機能は、事前解決済みのネットワーク・アドレスを受信し、当該ネットワーク・アドレスを用いて、マニフェスト・キャッシュ304内に格納されたセグメント・リストのエントリを修正およびリライトすることができる。代替として、事前解決機能は、解決済みのネットワーク・アドレスをセグメント・リストに追加することができる。更に、予測したセグメントのセグメント・ロケータについての事前解決処理の結果、部分的に事前解決セグメント・ロケータ、即ち第2のセグメント・ロケータ(これは、完全に事前解決したセグメント・ロケータへとそれを解決させるために、1つ以上の別の事前解決ステップを必要とする)となる場合は、事前解決機能は、当該部分的に事前解決済みのセグメント・ロケータを使用して、マニフェスト・キャッシュ304内に格納されたセグメント・リストのエントリを更新、例えば修正およびリライトすることができる。
【0056】
このように、完全にまたは部分的に事前解決済みのセグメントがユーザ・ナビゲーション機能を通じてユーザによって選択されたときに、クライアントは、図2を参照して説明する解決ステップの全部または少なくとも一部をスキップすることができる。これにより、予測したセグメントについての抽出時間を相当量削減することができる。特に、セグメント・ロケータが完全に事前解決される場合は、クライアントは、マニフェスト・ファイルに格納された事前解決済みのネットワーク・アドレスに基づいて、最小の要求ルーティング遅延でセグメントを抽出することができる。当該アドレスは、事前解決機能によってより早く決定されている。
【0057】
図4Aは、本発明の一実施形態によるコンテンツ・ストリーミング・システムを示す。特に、図4Aは、CDN相互接続インタフェース464を介して少なくとも第2のCDN404(下流CDNとも称される)に相互接続する第1のCDN402(上流CDNとも称される)を備えるCDNベース・コンテンツ配信システムを示す。
【0058】
コンテンツ配信システムは更に、クライアントのホストする1つ以上の端末408にトランスポート・ネットワーク407を介して接続されるコンテンツ・ソース406を備えることができる。コンテンツ・ソースは、コンテント・プロバイダ・システムCPS、コンテンツ準備システム、または別のCDNに関する。CPSは、コンテンツ、例えばビデオ・タイトルを顧客に供給するように構成するこができる。顧客は、ビデオ・プレイ・アウトについて図3を参照して説明したASクライアントを用いて、コンテンツを購入および受信することができる。
【0059】
CDNは、配信ノード410,413,414、および少なくとも1つの中央のDNノード416,418を備えることができる。各配信ノードは、コントローラ420,422,424、並びにコンテンツを格納およびバッファするためのキャッシュ440,442,444を備え、または関連付けることができる。各中央CDNノードは、外部ソース、例えばコンテンツ・プロバイダまたは別のCDNからのコンテンツの摂取(ingestion)を制御するための摂取ノード(ingestion node)(またはコンテンツ起始機能、COF;content origin function)425,427、コンテンツがCDN内に格納される場所についての情報を保持するためのコンテンツ位置データベース434,436、および、コンテンツの1つ以上のコピーを配信ノードに配給するのを制御し、且つ適切な配信ノードに対してクライアントをリダイレクトする(要求ルーティングとしてまた知られる処理)ためのCDN制御機能426,428を備え、または関連付けることができる。一実施形態では、CDNCFをホストするノードは、要求ルーティングRRと称することもある。顧客は、要求をウェブポータル(WP)432に送信することにより、コンテンツ、例えばビデオ・タイトルをCPS430から購入することができる。WP432は、購入可能なコンテンツ・アイテムを識別するタイトルの参照を提供するように構成される。CDNCFは、セグメントがコンテンツ位置データベース434,436を用いて抽出される位置を管理することができる。
【0060】
図4Aのコンテンツ配信システムでは、上流CDNは、クライアントへのセグメントの配信の一部を下流CDNにアウトソースすることができる。例えば、一実施形態では、低品質セグメントは、(例えば、モバイル・デバイスにコンテンツを配信するように構成される)第1のCDNAによって位置決定および配信することができ、また、高品質セグメントは、(例えば、HDTV技術をサポートするホーム・メディア・デバイスに高品質セグメントを配信するように構成される)第2のCDNBによって位置決定および配信することができる。
【0061】
図4Bは、本発明の一実施形態による事前解決処理に関連するフロー図を示す。図4Bは、特に、HTTPHEADメッセージが使用されるHTTPベース事前解決処理についてのフロー図を示す。
【0062】
t=2において、クライアントによるセグメントのバッファリングおよびプレイ・アウトの間、ユーザは、クライアントのユーザ・ナビゲーション機能を用いて(例えば、ボタンを押下してパニング動作を実行させることによって)コンテンツと相互作用することができる。相互作用の間、セグメント・セレクタは、マニフェスト・ファイル内の特定のセグメント、segment2-4.aviが、近い将来プレイ・アウトによって要求することができるということ、およびこのような要求に関連付けられるセグメントが現在のところ端末のセグメント・バッファでは利用可能でない見込みが高いということを判断(予測)することができる。このようなセグメント要求は、予測した将来のセグメント要求と称することもある。
【0063】
この予測したセグメントがセグメント・バッファでは利用可能でないと判断されるときは、クライアントは、セグメント・ロケータに関連付けられたネットワーク情報をネットワークから要求することによって、予測したセグメントの(未解決の)セグメント・ロケータを、部分的にまたは完全に事前解決するよう決定することができる(ステップ452)。
【0064】
このネットワーク情報に基づいて、事前解決機能は、例えばセグメント・ロケータ(この場合は、要求ルーティング・ノードcentral.cdnA.comをポイントするURLの一部)を修正して別のセグメント・ロケータとすることができる。このような別のセグメント・ロケータは、部分的に事前解決したセグメント・ロケータ、または完全に事前解決したセグメント・ロケータに関するものであり、セグメント・ロケータは、このセグメントをクライアントに配信するように構成される少なくとも1つの配信ノードに関連付けられるネットワーク・アドレス、例えばIPアドレスを含む。事前解決セグメント・ロケータについてのこの処理について、以下により詳細に説明する。
【0065】
事前解決処理は、ネットワーク・ノード、例えば、CDN Aの要求ルーティング機能を含むネットワーク・ノードに関連付けられるURLの一部(central.cdnA.com)を含むDNS要求メッセージをネットワーク内の解決機能、例えばDNSシステムに送信することによって開始することができる。そして、ネットワーク・ノード、この場合はCDN Aに関連付けられる要求ルーティング機能を含むネットワーク・ノードのIPアドレスを含む応答メッセージを受信することができる(ステップ454,456)。更に、クライアントは、このネットワーク・ノードが、予測したセグメントを配信することができるかどうかについて検査することができる。そのために、クライアントは、segument2-4.aviについてのHTTP HEAD要求をDNS解決IPアドレス123.45.67.89に送信することができる(ステップ458)。このネットワーク・ノードが、要求されたセグメントを配信することができる場合は、HTTP200 OKメッセージにより当該要求に応答することができる。要求したセグメントを送信することができない場合は、別のセグメント・ロケータを含むHTTPREDIRETメッセージにより応答することができる。別のセグメント・ロケータは更に事前解決される必要があり、その結果、要求されたセグメントをクライアントに配信するように構成されるネットワーク・ノードのネットワーク・アドレスを取得することができる。既に先に説明したように、このような別のセグメント・ロケータについて、以降では部分的に事前解決したセグメント・ロケータと称することもある。
【0066】
したがって、HTTP HEAD要求メッセージを受信するときは、CDN Aの要求ルーティング機能は、CDNI要求ルーティング(RR)インタフェースを介して、要求されたセグメントの配信についてCDNBと協議することができる(ステップ460,462)。
【0067】
一実施形態では、クライアントをCDN Bにリダイレクトしないうちに、CDN AのRRノードは、CDNBが特定のセグメントをクライアントに配信することができ、且つその意思があることの確認を要求することができる。その場合、CDNAは、CDN間メッセージ、例えばDELIVERY REQUESTメッセージをCDN BのRRノードに送信することができる。ここでは、要求は、要求したセグメントおよび位置情報、例えばクライアントのIPアドレスを識別するパラメータを含むことができる。このDELIVERYREQUESTは、HTTP GETメッセージにより実施することができる。
【0068】
他の実施形態では、CDN間メッセージ、例えばHTTP GET DELIVERY REQUESTメッセージは、CDNAのRRノードによりCDN BのRRノードに送信され、特定のCDN間メッセージが、クライアントによる実際のコンテンツ要求(例えばHTTPGETメッセージ)に関連しないものの、クライアントにより(例えばHTTP HEADメッセージに基づいて)実行される事前解決ステップに関連することを示すフラグを含むことができる。当該フラグは、CDN BのRRノードに要求の性質(nature)を通知するように使用され、CDN BのRRノードは(チャージ、統計等の目的で)適切な後続のアクションの選択が可能になる。
【0069】
他の実施形態では、CDN間メッセージ、例えばDELIVERY REQUESTがコンテンツ要求の代わりに事前解決ステップに関連する場合は、CDN間メッセージは、HTTP GETメッセージの代わりにHTTP HEADメッセージにより実装することができ、その結果、CDNBのRRノードは、要求の性質により、(チャージ、統計等の目的で)適切な後続のアクションが選択になる。この実施形態では、HTTPHEADメッセージに応答して、HTTP OK応答メッセージは、要求されたセグメントおよび位置情報、例えば、クライアントのIPアドレスをそのヘッダーに含めることができる(HTTPHEADへの応答メッセージはボディ部を有しないためである)。
【0070】
CDN Bとの協議の後、CDNAの要求ルーティング・ノードは、この特定のユーザへのこの特定のセグメントの配信がCDNBにより最適にサービス提供されることを決定することができる。それ故、部分的に解決したセグメント・ロケータ、例えば、CDNBの要求ルーティング・ノードをポイントするURLの一部(central.cdnB.com)を含むHTTP 302 REDIRECT応答を、クライアントに送り戻す(ステップ464)。HTTPHEADメッセージに応答して送信されるメッセージは、ボディ部を有しないので、HTTP302 REDIRECTメッセージもまたボディ部を有しない。しかしながら、このことは課題にはならない。何故ならば、リダイレクト情報は、部分的に解決したセグメント・ロケータを含むが、そのヘッダーには収容されず、その結果、メッセージのボディ部は必要されることはないからである。
【0071】
部分的に解決したセグメント・ロケータを含むHTTP REDIRECTメッセージを受信すると、クライアントは、要求内のセグメント・ロケータが完全に事前解決されてネットワーク・アドレスにはなっていないと判断する。事前解決機能は、次いで、事前解決処理を停止するよう決定し、元のセグメント・ロケータcentral.cdnA.comを、部分的に解決したセグメント・ロケータcentral.cdnB.comに置き換えることにより、マニフェスト・キャッシュ内のマニフェスト・ファイルの一部をリライトすることができる(図4Bには図示せず)。
【0072】
代替として、HTTP REDIRECTを受信すると、ASクライアントは、別のDNSクエリを実行することによって事前解決処理を継続し(ステップ466,468)、そして、新規のHTTPHEADを、CDN Bの要求ルーティング・ノードの解決済みのIPアドレス98.65.45.210を送信する(ステップ470)ように決定することができる。
【0073】
その後に、CDN Bの要求ノード、特にCDNBのCDN制御機能(CDNCF)は、配信ノード(DN)を決定することができる。DNは、特定のセグメントをクライアントに配信し(ステップ472,474)、そして、選択した配信ノードの位置、この場合はセグメント・ロケータnode3.cdnB.comを収容するHTTPリダイレクトをクライアントに送信し戻す(ステップ476)のに最適なものとなる。HTTPREDIRECTメッセージを受信すると、クライアントは、事前解決処理を停止して、元のセグメント・ロケータcentral.cdnA.comを、部分的に事前解決済みのセグメント・ロケータnode3.cdnB.comで置き換える(その結果、修正したURLであるnode3.cdnB.com/segment2-4.aviとする)ことによりマニフェスト・キャッシュ内のマニフェスト・ファイルの一部をリライトするか、または、事前解決処理を継続するかについて、再度決定することができる。
【0074】
クライアントは、別のDNSクエリを実行することにより事前解決処理を継続することができ(ステップ478,480)、その結果、URLを解決して、セグメントをクライアントに配信するように構成される配信ノードのネットワーク・アドレス(この場合、24.67.13.57)とすることができる。また、この時に、事前解決機能は、事前解決処理を停止し、結果、即ちセグメント・ロケータ24.67.13.57をマニフェスト・キャッシュに格納するように決定することができる(図示せず)。
【0075】
事前解決機能が事前解決処理を継続する場合は、当該事前解決機能は、事前解決済みのセグメント・ロケータに関連付けられたネットワーク・ノードが予測したセグメントを配信可能かについて、再度検査することができる。そのために、ASクライアントは、HTTPHEADを配信ノードのネットワーク・アドレスに送信することができる。ここでは、応答により、事前解決処理が早期のセグメント・ロケータ(即ち、開始時に、または事前解決処理の中間段階において使用されるもの)を完全に解決したことを事前解決機能に確認するHTTP200 OKメッセージを送信する。このようにして、セグメントがURL 24.67.13.57/segment2-4.aviに基づいて抽出できるかについて決定することができる(ステップ484)。
【0076】
次いで、t=9において、事前解決処理は、元のセグメント・ロケータcentral.cdnA.comを完全に事前解決済みのセグメント・ロケータ24.67.13.57 で置き換えることによって(その結果、完全に解決済みのURL 24.67.13.57/segment2-4.aviとなる)、マニフェスト・キャッシュ内のマニフェスト・ファイルの一部をリライトすることができる(ステップ486)。フラグ即ちセグメント・ロケータに関連付けられるインジケータは、セグメント・ロケータが、完全に事前解決済みかまたは部分的に事前解決済みかについて示すことができる。先に説明した処理は、他のセグメントについて繰り返すことができ、ユーザ・ナビゲーション情報により、どの後続のセグメントが部分的にまたは完全に解決したかについて決定する。
【0077】
したがって、上記から導き出すことができるように、部分的にまたは完全に事前解決する事前解決機能では、セグメント・ロケータに関連付けられるネットワーク情報に基づいてASクライアントのマニフェスト・キャッシュ内にあるマニフェスト・ファイルにおいて、セグメント・ロケータを予め規定している。このようなネットワーク情報を取得するために、事前解決機能は、RFC2616に規定されるDNS要求またはHTTPHEAD要求のような、予め規定されたプロトコル・メッセージを使用することができる。HEAD要求は、ネットワーク・ノードが応答のメッセージ・ヘッダーを戻すのみであるという点を除き、HTTTGET要求と同一である。HEAD要求をマニフェスト・ファイル内に見いだされるURLに送信することによって、ASクライアントは、URLが実際のセグメントをホストするか否かを、応答メッセージに基づいて検査することができる。HTTPHEAD要求がHTTP OK応答を戻す場合は、ASクライアントは、URLが最終宛先であり、更なる要求ルーティング遅延を予想する必要がないことを分かる。サーバの応答がHTTPREDIRECTメッセージである場合は、ASクライアントは、その時点で事前解決処理を停止し、未解決のセグメントURLを部分的に解決済みのセグメントURLで置き換えることができる。代替として、クライアントは、別のHTTPHEAD要求をリダイレクト・メッセージ内にリストされたURLに送信することによって、事前解決処理を継続するように決定することができる。この処理は、最終的に完全に事前解決済みのURLが受信されるまで繰り返すことができる。次いで、マニフェスト・キャッシュに格納したURLは、事前解決処理により取得したURLで置き換えることができる。
【0078】
図4Bに示した処理ではHTTPプロトコルに関して説明したが、これに限定されない。例えば、マニフェスト・ファイルが1つ以上のRTSPセグメント・ロケータ、例えばRTSPURLを含む場合は、クライアントは、RTSP DESCRIBE要求を用いてセグメント・ロケータについて事前解決を実行することができる。更に、RTSPでは、応答時に3xx応答を用いることによって、リダイレクトをHTTPと同様のやり方で処理することができる。したがって、クライアントがRTSPDESCRIBEに応答して3xx応答を受信したときに、クライアントは、別のRTSPDESCRIBE要求を3xx応答のURLに送信する必要があることが分かる。
【0079】
図5は、本発明の一実施形態により、事前解決済みのセグメント・ロケータに基づいたセグメントの抽出に示す。この特定の例では、処理は、図2を参照して説明した処理、即ち、バッファされたセグメントのプレイ・アウトと同一のやり方で開始することができる。ここでは、セグメント・バッファは、セグメント抽出機能により別のセグメントで継続的に満たされる。セグメント抽出機能は、セグメント・プレイ・アウト処理と並行に実施することができる。一方、図4に示した事前解決処理は、バックグラウンド処理としてクライアントにおいて実施することができる。その結果、セグメント・ロケータcentral.cdnA.comを含む、マニフェスト・ファイルのセグメント・ロケータは、図3を参照して説明したユーザ・ナビゲーション情報に基づき事前解決される。
【0080】
したがって、図5に示すように、t=0において、クライアントは、セグメント(この場合、segment1-1.avi)のプレイ・アウトを開始することができる。簡単のため、セグメント抽出機能については図示しない(ステップ500)。最初のセグメントのプレイ・アウトが一旦終了すると、t=1(segment1-2.avi)およびt=2(segment1-3.avi)において後続のセグメントを処理およびプレイ・アウトすることができる。次いで、t=2では、クライアントがsegment1-3.aviをプレイ・アウトするときに、ユーザは、(例えば、ボタンを押下して、パニング動作を実行することによって)コンテンツと相互作用することができる。当該相互作用の結果は、新規のセグメントsegument2-4.aviが要求されるというものである。
【0081】
このセグメントに関連付けられるセグメント・ロケータは、バックグランド処理で起動する事前解決機能によって既に完全に事前解決しているので、クライアントは、HTTPGETを配信ノードのアドレスに送信する。ここでは、HTTP GETメッセージはセグメント識別子segment2-4.aviを含む(ステップ532)。CDN Bの配信ノードは、HTTP200 OK応答メッセージの要求セグメントsegment2-4.aviをクライアントに送信することによって応答することができる(ステップ534)。次いで、t=4において、クライアントは、segment2-4.aviの受信およびプレイを開始する(ステップ536)。
【0082】
図5からも理解できるように、クライアントの事前解決機能は、クライアントとのユーザ相互作用を受けて、セグメント抽出処理により導出される遅延を著しく削減させる。セグメントが部分的に事前解決のみされている場合は、事前解決処理の未終了の部分については、セグメントが抽出できる前に、終了される必要がある。それにもかかわらず、その場合はまた(特に、大多数のセグメントが事前解決される必要がある場合は)、要求ルーティング遅延の削減において相当量の改良を達成することができる。このようにして、ユーザによる経験の知覚品質は、コンテンツを通じてナビゲートするときに、相当量改良することができる。更に、事前解決機能は、クライアント・ソフトウェアの更新を要求のみする既存のネットワーク技術と共に使用することができる。
【0083】
図6は、本発明の実施形態により、クライアントによって実施される事前解決処理およびセグメント抽出処理に関するフロー図である。ウェブサイトをブラウズしている間の或る時に、ユーザはウェブ・ビデオへのリンクを選択する。選択を受けて、ユーザのクライアントは、HTTPGET要求をリンク内に収容されたURLに送信する。この場合は、リンクは、CDN Aの要求ルーティング・ノード上のmanifest.mfと名付けられるマニフェスト・ファイルをポイントする(ステップ600)。マニフェスト・ファイルについてのクライアントによる要求を受け取ると、要求ルーティング・ノードは、クライアントにマニフェスト・ファイルを配信するのにどの配信ノードが最も適しているかについて決定することができる。次いで、HTTPREDIRECTメッセージを、選択された配信ノードのURLを収容するクライアントに送信することができる(ステップ601)。クライアントが、一旦、HTTPREDIRECTメッセージを受信すると、クライアントは、REDIRECTメッセージに収容されるURL(この場合は、node1.cdnA.com/manifest.mf)に新規のHTTP GETを送信することができる(ステップ602)。CDN Aの配信ノードは、要求されたマニフェスト・ファイルをクライアントに送信することによって応答することができる(ステップ603)。
【0084】
マニフェスト・ファイルを受信すると、クライアントは、当該マニフェスト・ファイルをパースして、記述されたコンテンツの構造についての概念(idea)をゲットすることができる(ステップ604)。マニフェスト・ファイルをパースした後、クライアント処理を(少なくとも)2つの別個の処理(スレッド)に分割する。第1の処理は、図5を参照して説明したセグメントの要求およびプレイ・アウト(第1処理607)についてのものであり、第2の(バックグラウンド)処理は、図3から図4を参照して説明した、セグメント・セレクタにより選択されたセグメントに関連付けられるセグメント・ロケータの事前解決(第2処理606)についてのものである。
【0085】
これらのメッセージのフローは、一旦セグメント・ロケータが事前解決されると、更なるリダイレクトは何れも必要とされないことを明確に示している。何故ならば、クライアントは、マニフェスト・キャッシュ内の事前解決済みのネットワーク・アドレスに基づいて、セグメントをホストするサーバと即座にコンタクトできるからである。また、異なるセグメントが異なるノード上で位置される場合であっても、また、異なるCDNにおける場合であっても、セグメントの効率的な抽出を実現できることを示している。
【0086】
図7は、本発明の一実施形態により、マニフェスト・ファイルの少なくとも一部のセグメント・ロケータを事前解決する例を示す。特に、図7は、如何にしてクライアントが事前解決処理を用いて、セグメント・ロケータ、例えば、端末のマニフェスト・キャッシュに格納されたURLの所定の一部を置き換えることができるかについての例を示す。ここでは、事前解決されることになるセグメント・ロケータは、(図3を参照して説明した)ユーザ・ナビゲーション情報およびコンテンツ・ナビゲーション情報に基づいて、セグメント・セレクタによって選択される。
【0087】
第1のマニフェスト・ファイル700は、図6を参照して説明したように、CDNからクライアントが受信することができる。この場合、マニフェスト・ファイルは、所謂多数の空間的セグメント・ファイルに関連し、空間的にセグメント化されたコンテンツをクライアントにストリーミングするのに使用することができる。
【0088】
空間的にセグメント化されたコンテンツ、即ちタイル化されたコンテンツは、所謂タイル化されたビデオ・システムにおいて使用され、ビデオ・コンテンツ・ファイルについての複数の解像度のレイヤを生成することができる。タイル化されたビデオ・システムの例は、Mavlankarらによる、「An interactive region-of-interest video streaming system for online lecturing viewing」ICIP2010会報,4437-4440ページに記載されている。
【0089】
空間的にセグメント化されたコンテンツは、ビデオ・ファイルのビデオ・フレームを所謂タイルに空間的に分割することによって生成することができ、各タイルは、そこから該タイルが生成される元のビデオ・フレームの空間領域に関連付けられるコンテンツを含む。ビデオ・フレームのシーケンスに基づいて、1つの空間領域に関連付けられるタイルのシーケンスは、別個のストリーム、例えばMPEGストリームとして生成およびフォーマットすることができる。このようなストリームは、空間的なセグメント・ストリーム、即ち、空間セグメントと称することができる。
【0090】
したがって、空間的ストリームは、各々独立してコード化され、配給(即ちストリーム)される。端末のビデオ・クライアントは、特定の空間領域、即ち関心領域(ROI; Region of Interest)を要求することができ、サーバは、引き続いてROI要求を1つ以上の空間セグメントにマップして、空間セグメントについて選択したグループをクライアントに送信する。端末は、空間セグメントのストリームを1つのシームレスなビデオに結合するように構成される。セグメント化したコンテンツについては、図10から図12を参照してより詳細に説明する。
【0091】
図7のマニフェスト・ファイルは、空間的にセグメント化されたコンテンツがコンテンツ・ソース・ファイルMovie_4に基づいて生成されたこと、また、セグメント識別子(ファイル名)によって規定される4つの別個の空間セグメントのストリーム、 Movie-4-1.seg,Movie-4-2.seg,Movie-4-3.seg,Movie-4-4.segがCDN Aのドメイン内に格納されていることを示す。ここでは、URLの所定の一部central.cdn_A.com(701a〜701d)は、CDN A内の包括的なRequestRoutingノードをポイントする。したがって、これらのセグメント・ロケータは、セグメントを抽出できるノードのネットワーク・アドレスを備えていないという意味では未解決である。このマニフェスト・ファイルがストリーミング処理においてクライアントによって使用されるときは、図4を参照して詳細に説明したように、事前解決処理を用いることができる。
【0092】
その処理の間、4つのセグメントに関連付けられるURL701a〜701dにおける未解決のセグメント・ロケータの少なくとも一部central.cdn_A.comは、ネットワーク・アドレスで置き換えることができる。このようにして、4つの未解決のURL703a〜703dは、これらセグメントが抽出することができる配信ノードのネットワーク・アドレスをそれぞれ含むように形成することができる。解決済みのURLは、例えば1つ以上の配信ノードをポイントすることができ、その内の幾らかは、例えば別のCDNBに位置することができる。図7に見ることができるように、セグメントは、ネットワーク・アドレス24.67.13.57により識別される1つの配信ノードから全て抽出することができる。
【0093】
図8は、マニフェスト・ファイルの要求およびプレイ・アウトのための処理についてのフロー図を示し、未解決のセグメント・ロケータが少なくとも部分的に事前解決される。この処理は、クライアントが所望のコンテンツに関連付けられるマニフェスト・ファイルを要求することにより開始する(ステップ800)。当該要求に応じて、クライアントは、サーバからマニフェスト・ファイルを受信し(ステップ801)、マニフェスト・ファイル内にリストされる最初のセグメントを要求することによってビデオのプレイ・アウトを開始する(ステップ802)。
【0094】
プレイ・アウトの間、ユーザ相互作用は、セグメント・セレクタによって分析されて、どのセグメントおよび関連のセグメント・ロケータをユーザが好ましくは近い将来において要求するかについて予測する(ステップ803)。これら予測したセグメント・ロケータは、次いで、(部分的な)事前予測のために、セグメント・セレクタによってマークされる。事前解決機能は、次いで、事前解決のためにマークされたセグメント・ロケータを部分的にまたは完全に事前解決することができる(ステップ804)。最後のセグメント・ロケータが処理されると(ステップ805)、本処理は停止する。そうでない場合は、事前解決についての新規のラウンドを開始する。
【0095】
図9は、本発明の実施形態による、事前解決処理についての詳細なフロー図を示す。特に、図9は事前解決処理のフロー図を示し、マニフェスト・ファイル内のセグメント・ロケータは、これらセグメント・ロケータに関連付けられるネットワーク情報に基づいて事前解決される。
【0096】
最初のステップ900では、事前解決機能は、部分的にまたは完全に事前解決される必要があるセグメント・ロケータ、例えばURLについてのリストを受信することができる。セグメント・ロケータに関連付けられる各セグメントは、特定のセグメント識別子、例えばセグメント・ファイル名により識別される。このリストは、図8を参照して説明した処理のステップ803の間、生成することができる。
【0097】
事前解決機能は、最初のセグメント・ロケータ、例えばネットワーク・ノードをポイントするURLの所定の一部を、解決するのに必要とされるセグメント・ロケータのリストからフェッチすることができ(ステップ901)、そして、セグメント・ロケータに関連するネットワーク情報の取得を開始する(ステップ902)。ネットワーク情報は、図4Bを参照して説明したように、ネットワーク情報についての1つ以上の要求メッセージを用いて取得することができる。これらのメッセージは、1つ以上のDNSメッセージ(例えばDNSクエリ)、セグメントの配信若しくは要求のリダイレクトのためのネットワーク・ノードをセグメント・ロケータがポイントするかを判断する1つ以上の要求メッセージ(例えば、HTTPHEADまたはRTSP DESCRIBEメッセージ)、および/またはセグメント・ロケータがセグメントの配信のためのネットワーク・ノード、若しくは要求のリダイレクトのためのネットワーク・ノードをポイントするかを示す1つ以上の応答メッセージ(例えば、HTTP200 OKメッセージ若しくは3xxRTSPエラー・メッセージ)を含むことができる。
【0098】
これらメッセージに基づいて、事前解決機能は、ネットワーク情報を用いてセグメント・ロケータを更新することができる(ステップ903)。ネットワーク情報に基づいて、更新されたセグメント・ロケータが、セグメント・ロケータに関連付けられるセグメントを配信するために配信ノードをポイントすることが確立される(ステップ904)(何故ならば、例えばHTTP200 OKメッセージが受信されたからである)場合は、事前解決機能は、更新されたセグメント・ロケータが完全に事前解決済みのセグメント・ロケータであることを判断することができる(ステップ905)。事前解決機能は更に、マニフェスト・リスト内の当初のセグメント・ロケータを、完全に事前解決済みのセグメント・ロケータで置き換えることによって、セグメント・リストを更新することができる(ステップ906)。オプションとして、フラグ、即ち、インジケータを用いて、このように修正したセグメント・ロケータが完全に事前解決済みのセグメント・ロケータに関連することをクライアントにシグナリングすることができる。
【0099】
ネットワーク情報に基づいて、更新されたセグメント・ロケータは、配信ノードをポイントするのではなく、リダイレクトのためにノードをポイントすることが確立される(何故ならば、例えばHTTPREDIRECTが受信されたからである)場合は、事前解決機能は、事前解決処理を停止すべきか否かについて判断することができる(ステップ907)。事前解決手段が事前解決処理の係属を決定する場合(ステップ908)は、ネットワーク情報を取得する処理が開始される(ステップ902)。事前解決処理の停止を決定する場合は、事前解決機能は、更新されたセグメント・ロケータが部分的に解決済みのセグメント・ロケータであると判断することができる(ステップ909)。事前解決機能は更に、マニフェスト・ファイル内の当初のセグメント・ロケータを部分的に事前解決済みのセグメント・ロケータで置き換えることによって、セグメント・リストを更新することができる(ステップ910)。オプションとして、フラグ、即ちインジケータを用いて、このように修正したセグメント・ロケータが完全に事前解決済みのセグメント・ロケータに関連することをクライアントに示すことができる。
【0100】
セグメント・リストを更新した後、事前解決機能は、セグメント・ロケータが更に事前解決される必要があるかどうかを判断することができる(ステップ911)。この場合は、事前解決機能は、次のセグメント・ロケータに基づいて事前解決処理を開始することができる(ステップ912)。
【0101】
この事前解決処理は、ネットワークからセグメントを抽出する間、バックグラウンドで実施することができる。このようにして、セグメント・リストは、完全におよび/または部分的に事前解決したセグメント・ロケータで継続的におよび動的に更新される。ここでは、事前解決されることになるセグメント・ロケータは、例えばユーザ・プロファイル、ユーザ・ナビゲーション履歴および/若しくはユーザの地理的位置のようなユーザ関連情報のような事前解決済みの情報、または、例えば、事前解決機能が事前解決のためにマークされたセグメント・ロケータを選択することができるために、マニフェスト・ファイル内で識別される特定のセグメント・ロケータをマークするためのセグメント・マーカのようなマニフェスト・ファイル内の情報に基づいて、セグメント・セレクタによって選択される。
【0102】
図10は、本発明の一実施形態による事前解決のための適切なセグメント・ロケータの選択について示す。特に、図10は、時間的にセグメント化されたビデオ、例えばHASベースのビデオ・ストリームに関連付けられるマニフェスト・ファイル内のどのセグメント・ロケータが、事前解決に適しているかについてセグメント・セレクタが判断するための簡潔なアルゴリズムを示す。この場合、現在視聴されているセグメント1000の時間的に近くにあるセグメント1001は事前解決するのに適している。現在視聴されているセグメントから、時間において更に遠く離れて位置する時間的なセグメント(1002)は、事前解決に(未だ)適していない。一実施形態では、クライアントは、時間的距離を規定する時間的な近接度パラメータを用いることができる。時間的近接度パラメータは、マニフェスト・ファイル内に識別されるどのセグメントが、クライアントによって現在プレイ・アウトされているセグメントに近い時間的近接度にあるかについて決定するために用いることができる。その時間的距離内にある、マニフェスト・ファイルにおいて識別されるセグメントは、事前解決のためにマークすることができる。
【0103】
図11は、本発明の他の実施形態により、事前解決のための適切なセグメント・ロケータの選択について示す。特に、図11は、質的にセグメント化されたビデオに関連付けられるマニフェスト・ファイル内のどのセグメント・ロケータが、事前解決に適しているかについてセグメント・セレクタが判断するための簡潔なアルゴリズムを示す。この場合、品質が現在視聴されている品質(1100)に(品質の尺度において)近くにある品質レイヤ1101に関連付けられるセグメント・ロケータが、事前解決するのに適している。現在視聴されている品質から遠く離れる品質を有する品質レイヤ1102に関連付けられるセグメント・ロケータは、事前解決に適していない。一実施形態では、クライアントは、品質的距離を規定する品質的近接度パラメータを用いることができる。品質的近接度パラメータは、マニフェスト・ファイル内に識別されるどのセグメントが、クライアントによって現在プレイ・アウトされているセグメントに近い品質的近接度にあるかについて決定するために用いることができる。その品質的距離内にある、マニフェスト・ファイルにおいて識別されるセグメントは、事前解決のためにマークすることができる。
【0104】
図12は、本発明の更なる他の実施形態による、事前解決のための適切なセグメント・ロケータの選択について示す。特に、図12は、空間的にセグメント化されたビデオに関連付けられるマニフェスト・ファイル内のどのセグメント・ロケータが、事前解決に適しているかについてセグメント・セレクタが判断するための簡潔なアルゴリズムを示す。アルゴリズムは、空間的セグメントのマトリクスを決定する。各空間的セグメントは、空間的セグメントのマトリクスによりカバーされる総合的なエリア内の(点線で形成される)特定の領域のコンテンツに関連付けられる。ユーザは、1つの特定の空間的セグメント1201を選択して視聴することができる。したがって、ユーザが(例えば、パニング動作を通じて)端末上に表示されるコンテンツとの相互作用を開始するときは、視聴されているセグメントと直接境界を有する(bordering)1つ以上のセグメントが、プレイ・アウトのためにユーザによって選択されることになるという大きな機会がある。この状況では、事前解決に適した空間的なセグメント・ロケータは、視聴されるセグメントの周りで直接位置特定される。したがって、ユーザ・ナビゲーション情報が特定のエリアx,yと関連付けられる空間的セグメントがプレイ・アウトされることを示す場合は、セグメント・セレクタは、別のセグメント・ロケータのセット、例えば、位置(x−1,y)(x−1,y−1)(x−1,y+1)(x,y+1)(x,y−1)(Sx+1,y)(x+1,y―1)(x+1,y+1)でのエリアに関連付けられる空間的セグメント・ロケータを、事前解決に適したセグメント・ロケータとして選択することができる。ユーザ・ナビゲーション情報に基づいて、セグメント・セレクタは、他の空間的セグメントが事前解決に(未だ)適していないと判断することができる。一実施形態では、クライアントは、空間的距離を規定する空間的近接度パラメータを用いることができる。現在視聴されている空間的セグメント(1または複数)からの空間的近接距離内に位置するエリアに関連付けられる空間的セグメントは、事前解決のためにマークされる。
【0105】
図13は、本発明の一実施形態により、事前解決のためにマークされる(URLの一部としての)未解決のセグメント・ロケータ1302を含むマニフェスト・ファイルの少なくとも一部を示す。この特定の実施形態では、コンテンツ・プロバイダまたはCDNプロバイダは、特定のセグメント・ロケータについてのマーカ1301a,1302bをマニフェスト・ファイル1300に挿入することができる。これらのマーカは、セグメントのナビゲーション統計に基づいて挿入することができ、その結果、ポピュラーなセグメント、例えば、頻繁に要求されるセグメントは、マニフェスト・ファイル内のマーカに基づいてクライアントによって識別されることができる。このようなマーカは、セグメント・ロケータを事前解決に適したものとして識別する。一実施形態では、マーカは、ランキング値、例えば有名度スコアに関連付けることができ、その結果、未解決のセグメント・ロケータはランキングに従ってランク付けされることができる。これらのマーカは、つまり、将来のセグメント要求についての1つ以上の別のセグメント識別子を選択するために、セグメント・セレクタのためにランキング方式を提供する。このように、高い有名度スコアに関連付けられる未解決のセグメント・ロケータは、低い有名度スコアに関連付けられるものよりも早期に事前解決することができる。一実施形態では、コンテンツ・プロバイダまたはCDNは、これらマーカをマニフェスト・ファイルに挿入することができる。他の実施形態では、コンテンツ・プロバイダまたはCDNは、新規にマークされたマニフェスト・ファイルを生成することができる。
【0106】
如何なる一実施形態に関連して説明した如何なる特徴もが単独で、または説明した他の特徴と組み合わせて使用することができ、また、如何なる他の実施形態の1つ以上の特徴と組み合わせて、または如何なる他の実施形態の如何なる組み合わせにおいて使用することもできることが理解されるべきである。
【0107】
本発明の一実施形態では、コンピュータ・システムと共に使用するためのプログラム製品として実施することができる。このプログラム製品のプログラム(1または複数)は、(本明細書で説明した方法を含む)実施形態の機能を規定し、多様なコンピュータ可読ストレージ媒体上に収容することができる。例示のコンピュータ可読ストレージ媒体は、以下を含むが、これに限定されるものではない。即ち、(i)情報が永続的に格納される、(例えば、CD−ROMドライブにより読み取り可能なCD−ROMディスクのようなコンピュータ内のリード・オンリ・メモリ・デバイス、フラッシュ・メモリ、ROMチップ、または如何なる種別のソリッド・ステート非一時的半導体メモリのような)非書き込み可能なストレージ媒体、および(ii)代替可能な情報が格納される、(例えば、ディスケット・ドライブ内のフロッピー(登録商標)・ディスク、ハード・ディスク・ドライブ、または如何なる種別のソリッド・ステート・ランダム・アクセス半導体メモリのような)書き込み可能なストレージ媒体である。本発明は、先に説明した実施形態に限定されることはなく、添付の特許請求の範囲内で変更を加えることができる。
図1A
図1B
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13