IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ フェニックス リアル タイム ソリューションズ, インコーポレイテッドの特許一覧

特開2024-56880ライブブロードキャスティングに対する適応ビットレート方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024056880
(43)【公開日】2024-04-23
(54)【発明の名称】ライブブロードキャスティングに対する適応ビットレート方法
(51)【国際特許分類】
   H04N 21/238 20110101AFI20240416BHJP
   H04N 21/2343 20110101ALI20240416BHJP
   H04N 21/438 20110101ALI20240416BHJP
   H04L 67/565 20220101ALI20240416BHJP
   H04L 47/38 20220101ALI20240416BHJP
【FI】
H04N21/238
H04N21/2343
H04N21/438
H04L67/565
H04L47/38
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024020633
(22)【出願日】2024-02-14
(62)【分割の表示】P 2020559366の分割
【原出願日】2019-04-26
(31)【優先権主張番号】62/663,182
(32)【優先日】2018-04-26
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FIREWIRE
(71)【出願人】
【識別番号】519379400
【氏名又は名称】フェニックス リアル タイム ソリューションズ, インコーポレイテッド
(74)【代理人】
【識別番号】110000062
【氏名又は名称】弁理士法人第一国際特許事務所
(72)【発明者】
【氏名】ビーラー, ステファン
(72)【発明者】
【氏名】ブスタマンテ, ファビアン
(57)【要約】      (修正有)
【課題】ライブメディアストリームの連続性を維持可能な方法及びデバイスを提供する。
【解決手段】方法は、送信元サーバが、時間領域に対して第1の時刻で少なくとも1つのキーフレームを有する第1のビットレートの第1のディストリビューション層と、第1のキーフレームに続くデルタフレームのセットとを含むメディアストリームを、クライアントデバイスに送信し、クライアントデバイスが、レンダリング変更指示を受信したことに応じて、第1の時刻から時間的にシフトされている第2の時刻に、少なくとも1つのキーフレームを含む第2のディストリビューション層を含むメディアストリームを、メディアコンテンツの様々な複雑さと動的なネットワーク条件の中で、最小の起動時間と最適化された体験品質でサブスクライブする。
【選択図】図13
【特許請求の範囲】
【請求項1】
ライブメディアストリームをレンダリングするために、システムが、連続性を維持する
ために実行する方法であって、
第1のディストリビューション層を含むライブメディアストリームを取得するステップ
であって、前記第1のディストリビューション層が、第1の時点での第1のキーフレーム
及び前記第1のキーフレームに続くデルタフレームのセットを含む、ステップと、
クライアントデバイスが、前記ライブメディアストリームのレンダリングを変更する指
示を受信するステップと、
前記指示の受信に応答して、前記ライブメディアストリームの第2のディストリビュー
ション層を前記クライアントデバイスに通信するステップであって、前記第2のディスト
リビューション層が、第2の時点にシフトされている第2のキーフレームを含み、前記第
2の時点が、時間的に、前記第1の時点より遅く、そして前記クライアントデバイスが、
前記第1のディストリビューション層に代えて前記第2のディストリビューション層をレ
ンダリングすることによって、前記ライブメディアストリームをレンダリングすることに
より、前記第2のキーフレームが、継続性を可能にする、ステップと、
第1のディストリビューション層の次のキーフレームに関連付けられている第2の時点
と第3の時点との間の時間間隔が、閾値時間間隔よりも短いか否かを決定するステップで
あって、前記第2のディストリビューション層の当該通信が、前記時間間隔が前記閾値時
間間隔よりも短いとの決定に基づいている、ステップとを、
備える方法。
【請求項2】
送信元サーバが、前記第1のディストリビューション層を生成するステップと、
前記送信元サーバが、前記クライアントデバイスから、前記ライブメディアストリーム
のレンダリングを変更する前記指示を受信することに基づいて、前記第2のディストリビ
ューション層を生成するステップとを、
更に、備える、請求項1に記載の方法。
【請求項3】
当該取得するステップが、
中間サーバが、送信元サーバから、前記第1のディストリビューション層を受信する
ステップであって、前記第1のディストリビューション層が、前記送信元サーバによって
生成される、ステップと、
前記中間サーバが、前記クライアントデバイスから、前記ライブメディアストリーム
の前記レンダリングを変更する前記指示を受信することに基づいて、前記第2のディスト
リビューション層を生成するステップと、
前記中間サーバが、前記第1のディストリビューション層と前記第2のディストリビ
ューション層の両方を前記クライアントデバイスに通信するステップとを、
備える、請求項1に記載の方法。
【請求項4】
前記第1のディストリビューション層が、第1のビットレートを含み、そして前記第2
のディストリビューション層が、前記第1のビットレートとは異なる第2のビットレート
を含む、請求項1に記載の方法。
【請求項5】
前記第2のディストリビューション層が、前記第2の時点で前記第2のディストリビュ
ーション層の前記第2のキーフレームに続く第2のセットのデルタフレームを含み、前記
第2のセットのデルタフレームが、前記第1のキーフレームから、前記第1のディストリ
ビューション層の次のフレームまで拡がっている、請求項1に記載の方法。
【請求項6】
メディアストリームの連続性を維持するために、デバイスが実行する方法であって、
周期的な時点に配置されたキーフレームのシリーズを備えた第1のディストリビューシ
ョン層を含むメディアストリームを取得するステップであって、キーフレームの前記シリ
ーズが、第1の時点で第1のキーフレームを含み、そして複数のデルタフレームが、キー
フレームの前記シリーズの各キーフレームに続く、ステップと、
前記メディアストリームの連続性を維持するために、前記メディアストリームの第2の
ディストリビューション層を送信する指示を伝送するステップと、
前記第2のディストリビューション層を受信するステップであって、前記第2のディス
トリビューション層が、前記第1の時点から第2の時点にシフトしている第2のキーフレ
ーム及び前記第2のキーフレームに続く少なくとも1つのデルタフレームを含む、ステッ
プと、
第1のディストリビューション層の次のキーフレームに関連付けられている第2の時点
と第3の時点との間の時間間隔が、閾値時間間隔よりも短いか否かを決定するステップで
あって、前記第2のディストリビューション層の当該受信が、前記時間間隔が前記閾値時
間間隔よりも短いとの決定に基づいている、ステップとを、
備える方法。
【請求項7】
前記第1の時点で、前記第1のディストリビューション層の前記第1のキーフレームを
レンダリングするステップと、
前記デバイスが、前記第1のディストリビューション層の第1のビットレートよりも大
きいビットレートで、前記メディアストリームを処理することができることを決定するス
テップであって、前記指示が、前記第1のビットレートよりも大きい前記ビットレートで
、前記第2のディストリビューション層を送信する指示を含む、ステップと、
前記第2の時点で、前記第1のビットレートよりも大きい前記ビットレートで、前記第
2のディストリビューション層の前記第2のキーフレームをレンダリングするステップと
を、
更に、備える、請求項6に記載の方法。
【請求項8】
前記第2の時点で、前記第2のディストリビューション層の前記第2のキーフレームを
レンダリングするステップと、
第3の時点で、前記第1のディストリビューション層のキーフレームの前記シリーズ内
の第3のキーフレームをレンダリングするステップであって、前記デバイスが、前記第3
の時点で前記第2のディストリビューション層を放棄する、ステップとを、
更に、備える、請求項6に記載の方法。
【請求項9】
前記デバイスが、前記第1のディストリビューション層に関連付けられている第1のビ
ットレートで、前記第1のディストリビューション層を処理することができないことを指
示するネットワーク環境の変化を検出するステップであって、前記指示が、前記第2のデ
ィストリビューション層を、前記第1のビットレートよりも低い第2のビットレートで、
送信する指示を含む、ステップと、
前記第2の時点で、前記第2のディストリビューション層の前記第2のキーフレームを
前記第2のビットレートでレンダリングするステップとを、
更に、備える、請求項6に記載の方法。
【請求項10】
前記第2のディストリビューション層が、前記第1のキーフレームに続く第1の複数の
デルタフレームに含まれるデルタフレームの数よりも少ない数のデルタフレームを含む、
請求項6に記載の方法。
【請求項11】
前記メディアストリームが、ライブビデオブロードキャスティングコンテンツを含む、
請求項6に記載の方法。
【請求項12】
ライブメディアコンテンツをストリーミングするデバイスであって、
ライブメディアストリームの連続性を維持するための命令を含むメモリであって、前記
命令が、プロセッサによって実行されると、前記プロセッサに、以下のステップ:
時間領域に対して第1の時刻での少なくとも第1のキーフレームを有する第1のビッ
トレートの第1のディストリビューション層と、前記第1のキーフレームに続く第1のデ
ルタフレームのセットとを、含む前記ライブメディアストリームを取得するステップ;
前記第1のビットレートとは異なる第2のビットレートで、前記ライブメディアスト
リームの第2のディストリビューション層を通信する指示を、クライアントデバイスから
受信するステップ;
前記指示の受信に基づいて、前記第2のビットレートを有する前記第2のディストリ
ビューション層を生成するステップであって、前記第2のディストリビューション層が、
前記時間領域で第2の時刻にシフトされた第2のキーフレームと、前記第2のキーフレー
ムに続く少なくとも1つのデルタフレームとを含む、ステップ;
前記第2のビットレートで、前記第2のディストリビューション層を含む前記ライブ
メディアストリームを前記クライアントデバイスに通信するステップ;および
第1のディストリビューション層の次のキーフレームに関連付けられている第2の時
点と第3の時点との間の時間間隔が、閾値時間間隔よりも短いか否かを決定するステップ
であって、前記第2のディストリビューション層の当該通信が、前記時間間隔が前記閾値
時間間隔よりも短いとの決定に基づいている、ステップ、
を実行させる、メモリを
備えるデバイス。
【請求項13】
前記プロセッサに、
発信元のクライアントデバイスからのライブストリーミングデータを受信させ、そし

前記ライブストリーミングデータをエンコードして、前記第1のディストリビューシ
ョン層及び前記第2のディストリビューション層を含む前記ライブメディアストリームを
生成させる、
請求項12に記載のデバイス。
【請求項14】
前記プロセッサに、送信元デバイスからの前記第1のディストリビューション層を受信
させる、請求項12に記載のデバイス。
【請求項15】
前記第2のキーフレームに続く少なくとも1つのデルタフレームが、前記第2のディス
トリビューション層の前記第2のキーフレームに続く第2のセットのデルタフレームを含
み、前記第2のセットのデルタフレームが、前記第1のキーフレームから前記第1のディ
ストリビューション層の次のキーフレームに拡がっている、請求項12に記載のデバイス
【請求項16】
前記第2のキーフレームに続く前記少なくとも1つのデルタフレームが、前記第2のデ
ィストリビューション層の前記第2のキーフレームに続く第2のセットのデルタフレーム
を含み、前記第2のセットのデルタフレーム内のデルタフレームの数が、前記第1のキー
フレームに続く前記第1のデルタフレームのセットに含まれるデルタフレームの数よりも
少ない、請求項12に記載のデバイス。
【請求項17】
前記プロセッサに、
第3の時刻に時間領域でシフトされた第3のキーフレームを含む第3のディストリビ
ューション層を生成させ、ここで、前記第3の時刻が、前記第2の時刻と前記第1のディ
ストリビューション層の新しいキーフレームに関連付けられている第4の時刻との間にあ
り、そして
前記第1のディストリビューション層、前記第2のディストリビューション層、及び
前記第3のディストリビューション層を含む前記ライブメディアストリームを、前記クラ
イアントデバイスに通信させる、
請求項12に記載のデバイス。
【請求項18】
前記プロセッサに、
前記第2の時刻と前記第1のディストリビューション層の新しいキーフレームに関連
付けられている第4の時刻との間の時間間隔が、閾値の時間間隔よりも短いことを決定さ
せる、デバイスであって、前記第2のディストリビューション層の当該生成が、前記時間
間隔が、閾値の時間間隔より短いとの決定に基づいている、
請求項12に記載のデバイス。
【請求項19】
前記プロセッサに、
前記第1のディストリビューション層の前記新しいキーフレームに関連付けられてい
る、前記第4の時刻での前記第2のディストリビューション層を放棄させる、
請求項18に記載のデバイス。

【発明の詳細な説明】
【技術分野】
【0001】
開示された教示は、パケット交換ネットワークを介したライブメディアストリーミング、より具体的には、そのようなネットワークを介したライブストリーミングメディアコンテンツに対する適応レートの選択に関する。
【背景技術】
【0002】
インターネットを介したビデオコンテンツのストリーミングは、ビデオコンテンツを表示する方法として急速に人気を集めている。ストリーミングビデオコンテンツのこのような形式の1つは、ライブアクションスポーツ、デバイス間のビデオコール、ライブニュースレポートのようなライブビデオコンテンツである。電子デバイス(例、スマートフォン、コンピュータ、タブレット)は、インターネットを介してビデオストリームにアクセスする(又はそれを「サブスクライブする」)ことが出来る。
【0003】
インターネットを介してビデオコンテンツをストリーミングするための重要な評価基準は、ストリーミングされたビデオの品質を示す品質レベルである。この品質レベルは、インターネットを介してビデオコンテンツを伝送するために選択されたビットレートによって、決定させることができる。ビットレートが高いことは、ビデオコンテンツ内の情報がより多くエンコードされ、そして元のビデオコンテンツの再生がより正確になることを示す。これに対し、ビットレートが低いと、エンコードされた情報の量が少なくなり、そして元のビデオコンテンツの再現精度が低下する可能性がある。
【0004】
ビデオコンテンツを伝送するためのビットレートは、クライアントデバイスのネットワ
ーク状態、所望の起動レイテンシ(すなわち、ビデオ再生を最初に初期化するときに体験
する遅延)、及びグリッチ/再バッファリングに対する耐性(つまり、ビデオコンテンツ
データが欠落しているためにビデオ再生が停止した場合の耐性)の様ないくつかの要因に
基づいて、クライアントデバイスが選択することができる。多くの場合、ビデオコンテン
ツのストリーミング中の起動レイテンシ又は再バッファリングは、望ましくない。従って
、より高いビットレートのビデオストリームをストリーミングしつつ、ストリーミングビ
デオコンテンツの起動レイテンシ及び再バッファリングを最小化又は排除することが望ま
しい。
【発明の概要】
【0005】
本開示は、ライブメディアストリームの連続性を維持するための技術に関する。このメ
ディアストリームは、時間領域に対して第1の時刻で少なくとも1つのキーフレームを有
する第1のビットレートの第1のディストリビューション層と、第1のキーフレームに続
くデルタフレームのセットとを含むことができる。このメディアストリームは、また、各
ディストリビューション層が、キーフレームに続くデルタフレームのセットに、他の層に
対して時間的にシフトされた少なくとも1つのキーフレームを含む、多くの追加のディス
トリビューション層も含むことができる。
【0006】
ストリーミングサーバは、メディアストリームの第1のディストリビューション層を取
得することができる。このストリーミングサーバは、第1の時刻から時間的にシフトされ
たキーフレームを備えたメディアストリームの追加のディストリビューション層を生成す
ることができる。追加のディストリビューション層は、追加のディストリビューション層
を生成するリクエストを表す指示を識別することに基づいて、生成させることができる。
メディアストリームは、少なくとも1つのクライアントデバイスに送信させることができ
る。
【0007】
クライアントデバイスは、メディアストリームの第1のディストリビューション層又は
追加のディストリビューション層のうちの1つをサブスクライブすることができる。デバ
イスは、第2の時刻でメディアストリームの追加のディストリビューション層をサブスク
ライブして、起動時間を最小限に抑え、そしてメディアコンテンツの様々な複雑さと動的
なネットワーク条件の中で体験の品質を最適化することができる。
【0008】
技術の他の態様は、添付の図及び詳細な説明から明らかになるであろう。
【0009】
この要約は、以下の詳細な説明でさらに説明される簡略化された形式で概念の選択を紹
介するために提供される。この要約は、主張された主題の主要な特徴又は本質的な特徴を
特定することを意図しておらず、主張された主題の範囲を制限するために使用されること
も意図されていない。
【図面の簡単な説明】
【0010】
図1】様々な実施形態による、ライブメディアコンテンツを複数のクライアントデバイスにストリーミングするためのシステムを示す。
図2】様々な実施形態による、ストリーミングサーバのアーキテクチャを示す。
図3】様々な実施形態による、クライアントデバイスのアーキテクチャを示す。
図4】様々な実施形態による、エンコードされたメディアストリームを示す。
図5】様々な実施形態による、ディストリビューション層のセットを備えた、エンコードされたメディアストリームを示す。
図6】様々な実施形態による、適応ビットレートを有する、エンコードされたメディアストリームを示す。
図7A】様々な実施形態による、複数のサブスクライバによるライブブロードキャスティングに対する、適応ビットレートストリーミングを示す。
図7B】様々な実施形態による、動的ネットワーク条件でのライブブロードキャスティングに対する、適応ビットレートストリーミングを示す。
図8A】様々な実施形態による、シフトされたディストリビューション層を有する、エンコードされたメディアデータのセットを示す。
図8B】様々な実施形態による、複数のビットレートのシフトされたディストリビューション層を備えた、エンコードされたメディアデータのセットを示す。
図9】様々な実施形態による、動的に生成されたディストリビューション層及びキーフレームを備えた、エンコードされたストリーミングデータを示す。
図10】様々な実施形態による、エンコードされたメディアストリームに対する、ディストリビューション層及び動的に生成された層のセットを示す。
図11】様々な実施形態による、エンコードされたメディアストリームに対する、ディストリビューション層及びブリッジディストリビューション層のセットを示す。
図12A】様々な実施形態による、送信元ストリーミングサーバでディストリビューション層を動的に生成するためのアーキテクチャを示す。
図12B】様々な実施形態による、データパスに沿ってディストリビューション層を動的に生成するためのアーキテクチャを示す。
図13】様々な実施形態による、メディアストリームの連続性を維持するためのシグナリングプロセスを示す。
図14】本明細書に記載の少なくともいくつかの操作を実施することができる処理システムの例を示すブロック図である。
【発明を実施するための形態】
【0011】
図面は、例示のみを目的として様々な実施形態を示す。当業者は、技術の原理から逸脱
することなく、代替の実施形態を採用できることを認識するであろう。従って、特定の実
施形態が図面に示されているが、技術は様々な修正に適している。
【0012】
以下に記載される実施形態は、当業者が実施形態を実施することを可能にし、かつ実施
形態を実施する最良のモードを例示するために必要な情報を表す。添付の図に照らして以
下の説明を読むと、当業者は、本開示の概念を理解し、そして本明細書で特に扱われてい
ないこれらの概念の適用を認識するであろう。これらの概念及び適用は、本開示及び付随
する特許請求の範囲に含まれる。
【0013】
実施形態は、特定のコンピュータプログラム、システム構成、ネットワークなどを参照
して説明することができる。しかし、当業者は、これらの機能が他のコンピュータプログ
ラムタイプ、システム構成、ネットワークタイプ等にも等しく適用可能であることを認識
するであろう。例えば、「Wi‐Fiネットワーク」という用語は、ネットワークを説明
するために使用することができるが、関連する実施形態は、別のタイプのネットワークに
展開することもできる。
【0014】
さらに、開示された本技術は、特別な目的のハードウェア(例、回路)、ソフトウェア
及び/又はファームウェアで適切にプログラムされたプログラム可能な回路、又は特別な
目的のハードウェアとプログラム可能な回路の組み合わせを使用して具体化させることが
できる。従って、実施形態は、電子デバイスによって生成されたビデオコンテンツを検査
し、ビデオコンテンツに含まれる要素を識別し、分類モデルを適用して適切なアクション
を決定し、そして適切なアクションを実行するために、コンピューティングデバイス(例
、基地局又はネットワーク接続されたコンピュータサーバ)をプログラムするために使用
することができる命令を有するマシン可読媒体を含むことができる。
【0015】
(用語)
本明細書で使用される用語の目的は、実施形態を説明するためのみであり、本開示の範
囲を限定することを意図するものではない。文脈が許す場合、単数形又は複数形を使用す
る単語は、それぞれ複数形又は単数形も含む。
【0016】
本明細書で使用される場合、特に明記しない限り、「処理」、「演算」、「計算」、「
決定」、「表示」、「生成」などの用語は、コンピュータのメモリ又はレジスタ内の物理
(電子)量として表されるデータを、操作し、そしてコンピュータのメモリ、レジスタ、
又は他のそのような格納媒体、送信、又は表示デバイス内の物理量として同様に表される
他のデータに、変換するコンピュータ又は同様の電子コンピューティングデバイスの、ア
クション及びプロセスを指す。
【0017】
本明細書で使用される場合、「接続された」、「結合された」のような用語は、2つ以
上の要素間の直接又は間接の任意の接続又は結合を指す。要素間の結合又は接続は、物理
的、論理的、又はそれらの組み合わせとすることが出来る。
【0018】
「一実施形態」又は「1つの実施形態」への言及は、説明されている特定の特徴、機能
、構造、又は特性が、少なくとも1つの実施形態に含まれることを意味する。このような
句の出現は、必ずしも同じ実施形態を指すわけではなく、また、それらが、必ずしも、互
いに相互に排他的である代替の実施形態を指すわけでもない。
【0019】
文脈が明らかに他のことを要求しない限り、「備える」及び「含む」という用語は、排
他的又は網羅的な意味ではなく、包括的意味で(すなわち、「それを含むがそれに限定さ
れない」という意味で)解釈されるべきである。
【0020】
「に基づく」という用語は、また、排他的又は網羅的な意味ではなく、包括的意味で解
釈されるべきである。従って、特に断りのない限り、「に基づく」という用語は、「少な
くとも部分的に基づく」ことを意味することを意図している。
【0021】
「モジュール」という用語は、ソフトウェアコンポーネント、ハードウェアコンポーネ
ント、及び/又はファームウェアコンポーネントを広く指す。モジュールは、通常、指定
された入力に基づいて有用なデータ又は他の出力を生成することが出来る機能コンポーネ
ントである。モジュールは、自己完結型とすることができる。コンピュータプログラムは
、1つ又は複数のモジュールを含むことができる。従って、コンピュータプログラムは、
異なるタスクを完了させことが出来る複数のモジュール、又は複数のタスクを完了させる
ことが出来る単一モジュールを含むことができる。
【0022】
「ライブメディアストリーム」という用語は、広い意味で、イベントが発生している際
にネットワーク上でイベントをブロードキャストすることを指す。これは、送信元デバイ
スによって生成され、ネットワークを介して伝送され、そして受信デバイスのユーザがレ
イテンシ/遅延を認識することができない(これは、「ほぼリアルタイム」とも呼ばれる
)状態で、受信デバイスによってレンダリングされる、コンテンツのブロードキャストを
含むことができる。デバイスのユーザが認識できないこのようなレイテンシの例は、10
0ミリ秒、300ミリ秒、500ミリ秒等を含むことが出来る。従って、ブロードキャス
トグループ内のクライアントデバイスのユーザは、ライブメディアストリームとほぼリア
ルタイム(つまり、遅延が、ブロードキャストグループ内のクライアントデバイスのユー
ザには認識されない状態)で対話又は応答することが出来る。
【0023】
複数のアイテムのリストを参照して使用される場合、単語「又は」は、以下の解釈:リ
スト内の任意のアイテム、リスト内の全てのアイテム、及びリスト内のアイテムの任意の
組み合わせ、の全てを網羅することが意図されている。
【0024】
本明細書に記載のプロセスの何れかで実行されるステップのシリーズは、例示的なもの
である。しかしながら、物理的可能性に反しない限り、ステップは、様々な順序及び組み
合わせで実行させることができる。例えば、ここで説明するプロセスにステップを追加し
たり、プロセスからステップを削除したりできるであろう。同様に、ステップを置き換え
たり、並べ替えたりすることもできるであろう。従って、如何なるプロセスの説明も、制
限がないことが意図されている。
【0025】
(概要)
インターネットのようなパケット交換ネットワークを介したストリーミングメディアコ
ンテンツは、様々なメディア(例、ビデオ、オーディオ)を利用する方法として急速に人
気を集めている。電子デバイス(例、スマートフォン、コンピュータ、タブレット)は、
ネットワーク(例、インターネット)に接続し、そして様々なビデオ及びオーディオデー
タストリームをサブスクライブすることが出来る。例えば、複数の電子デバイス(又は「
クライアントデバイス」)は、発信デバイスによって生成されたビデオ通話のライブスト
リームをサブスクライブすることができる。別の例では、クライアントデバイスは、スポ
ーツイベントのライブストリームをサブスクライブすることができる。メディアストリー
ムをサブスクライブする全てのクライアントデバイスは、まとめて「ブロードキャストグ
ループ」と呼ぶことができる。
【0026】
ストリーミングメディアコンテンツの人気の増加に伴い、インターネットを介して高品
質のビデオ及びオーディオストリーミングを配信するための、帯域幅及び計算リソースに
対するユーザからの要求も、増加している。ビデオ再生の初期化時に発生する遅延により
、ユーザ体験の品質が低下する可能性があるので、ライブメディアストリームの品質は、
少なくとも部分的に、ビデオ再生の起動レイテンシに基づく。さらに、ライブメディアス
トリームの品質は、ビデオ再生の再バッファリング又はグリッチに基づく可能性があり、
これにより、ユーザ体験の品質も低下してしまう可能性がある。
【0027】
ストリーミングメディアコンテンツを様々なクライアントデバイスに提供するために、
ストリーミングデバイスは、メディアストリームを生成し、そしてネットワークを介して
クライアントデバイスにメディアストリームを伝送することができる。このメディアスト
リームは、少なくとも1つのキーフレーム(すなわち、クライアントデバイスが、エンコ
ードして、完全なフレームをレンダリングすることが出来るデータ)、及び多くの予測(
又は「デルタ」)フレーム(すなわち、キーフレームとの相違を表すデータ)、を含むこ
とができる。このメディアストリームは、ビデオフレームを表すビット数を表すビットレ
ートを含むことができ、ここで、ビットレートの増加は、関連付けられているビデオのよ
り高い画質を表す。
【0028】
いくつかの実施形態では、新しいクライアントデバイスは、ストリーミングメディアコ
ンテンツをサブスクライブすることができる。新しいクライアントデバイスがストリーミ
ングメディアコンテンツをサブスクライブするために、クライアントデバイスは、先ず、
キーフレームを処理して、ビデオフレームをレンダリングすることができる。レンダリン
グされると、新しいクライアントデバイスは、後続の予測フレームを処理して、ビデオを
構成するフレームのシリーズをレンダリングし及び出力することが出来る。しかしながら
、キーフレームのシリーズは、メディアストリームに沿って様々な時点に配置させること
ができる。もし、新しいクライアントデバイスが、キーフレーム間の時刻にメディアスト
リームをサブスクライブする場合、次のキーフレームが到着するまで、新しいクライアン
トデバイスは、メディアストリームを処理することができずそしてビデオをレンダリング
できない場合がある。これにより、新しいクライアントデバイスに対し、起動レイテンシ
が発生する可能性がある。
【0029】
同様に、いくつかの実施形態では、クライアントデバイスに関連付けられているネット
ワーク条件が、変化する可能性がある。例えば、クライアントデバイスの帯域幅が低下し
、クライアントデバイスが現在のビットレートでメディアストリームを処理できない場合
がある。これにより、クライアントデバイスが、ビデオを適切に処理及びレンダリングす
ることができないため、ビデオのグリッチ/中断が発生する可能性がある。第2の例とし
て、クライアントデバイスが、現在のビットレートよりも高いビットレートでメディアス
トリームを処理することができる可能性がある。しかしながら、クライアントデバイスは
、より大きなビットレートストリームの新しいキーフレームが到着するまで、より大きな
ビットレートストリームをサブスクライブできない可能性がある(これは、帯域幅が十分
に活用されず、そしてビデオ品質が低下することをもたらす)。ネットワーク状態の変化
を体験するクライアントデバイスは、異なるビットレートを含むストリーミングメディア
コンテンツの代替ストリームをサブスクライブする可能性がある。しかしながら、新しい
サブスクライバの場合と同様に、クライアントデバイスは、ストリーミングメディアコン
テンツを異なるビットレートでレンダリングするために、新しいキーフレームまで待機す
る必要がある可能性がある。
【0030】
従って、起動レイテンシ及び再バッファリング/グリッチを最小化又は排除して、ライ
ブメディアストリーミングの品質を最適化するためには、様々なストリーミング技術を使
用することができる。さらに、ライブメディアストリーミングの品質を最適化するには、
動的又は異種のネットワーク条件のコンテキストにおいてその品質を維持しつつ、メディ
アコンテンツを中断させずに転送及び再構成することが出来るように、メディアコンテン
ツをエンコードする品質レベルを、選択することが含まれる。
【0031】
本開示は、ライブメディアストリーミングに対し、適応ビットレート技術を利用するこ
と及びメディアストリームに対するディストリビューション層を動的に生成することに関
する。エンコードされたメディアストリームは、クライアントデバイスが、ストリーミン
グされつつあるメディアを処理及びレンダリングする際の起動レイテンシを短縮させるた
めに、時間に対してシフトされるキーフレームを備えた、1つ以上の代替ストリーム(又
は「ディストリビューション層」)により、生成させることができる。エンコードされた
メディアストリームのディストリビューション層は、新しいクライアントデバイスがこの
メディアストリームをサブスクライブするか否か、又はクライアントデバイスがネットワ
ーク状態の変化を体験するか否かの決定に基づいて、クライアントデバイスに対して動的
に生成させることができる。これにより、既存のメディアデータストリームをサブスクラ
イブするクライアントデバイスの起動時間が短縮され、そしてストリーミングメディアコ
ンテンツの品質が向上し、この結果、ブロードキャストグループに含まれる全てのクライ
アントデバイスのユーザ体験を向上させることができる。
【0032】
図1は、様々な実施形態による、ビデオコンテンツを、複数のクライアントデバイス1
14a~cにストリーミングするためのシステム100を示す。システム100は、イン
ターネットのようなネットワーク112を介してメディアコンテンツを、エンコーディン
グ及びストリーミングするように構成された1つ又は複数のストリーミングサーバ110
を含むことができる。いくつかの実施形態では、ストリーミングサーバ110は、「ネッ
トワークアクセス可能なサーバシステム110」と呼ぶことができる。ストリーミングサ
ーバ110は、外部ノード(例、クライアントデバイス、外部サーバ、ビデオカメラ)か
らメディアデータを受信することができる。ストリーミングサーバ110は、メディアデ
ータをエンコードし、そしてブロードキャストグループ内のクライアントデバイス114
a~cに転送することができる。
【0033】
いくつかの実施形態では、メディアデータは、ライブビデオストリームを含むことがで
きる。一例として、ライブビデオストリームは、外部ノードによって生成させ、ストリー
ミングサーバ110によってネットワークを介して転送させ、そしてクライアントデバイ
ス114a-cのユーザが知覚できない時間間隔内にクライアントデバイス114a~cに
よってレンダリングさせることができる。いくつかの実施形態では、ライブビデオは、ほ
ぼリアルタイムであるビデオを含むことができる。ライブビデオを視聴しているユーザが
、ライブビデオと対話しそしてライブビデオに対応することができるように、ライブビデ
オは、ブロードキャストグループに含まれるクライアントデバイスに伝送させることがで
きる。
【0034】
一例として、スマートフォン114aは、ライブビデオ(例、ビデオキャプチャゲーム
プレイ、ユーザの動きをキャプチャするビデオ)を生成し、そしてストリーミングサーバ
110に伝送することができる。ストリーミングサーバ110は、受信したライブビデオ
をエンコードし、そしてエンコードされたビデオをブロードキャストグループ内の他のク
ライアントデバイス(例、ラップトップコンピュータ114b、コンピュータ114c)に
伝送することが出来る。この例では、ブロードキャストグループ内の他のクライアントデ
バイスは、最小限のバッファリングで、ユーザが認識できない時間遅延(例、300ミリ
秒未満)で、エンコードされたライブビデオを受信することができる。
【0035】
上記の例をさらに進めると、ラップトップコンピュータ114bは、ライブビデオを受
信し、そして第2のライブビデオを生成することが出来る。第2のライブビデオは、スト
リーミングサーバ110に伝送させることができる。このストリーミングサーバ110は
、第2のライブビデオを、エンコードし、そしてブロードキャストグループ内の他のクラ
イアントデバイス(スマートフォン114a、コンピュータ114c)に伝送する。この
例では、ブロードキャストグループに含まれるデバイスは、ライブビデオストリームによ
り、デバイス114a~cのユーザが知覚できない遅延/レイテンシで、インタラクティ
ブに通信することが出来る。
【0036】
ストリーミングサーバ110は、エンコードされたメディアストリーム(例、メディア
ストリーム116)を、(まとめてブロードキャストグループ114a~cと呼ぶことが
できる)クライアントデバイス114a~cに伝送することができる。いくつかの実施形
態では、ストリーミングサーバ110は、クライアントデバイス114a~cからストリ
ームリクエスト118を受信することに基づいて、エンコードされたメディアストリーム
116をクライアントデバイス114a~cに伝送することができる。ストリームリクエ
スト118は、クライアントデバイス114a~cのユーザが、エンコードされたメディ
アストリーム116をサブスクライブすることを既にリクエストしていることを示すこと
ができる。
【0037】
例えば、ラップトップコンピュータ114bのユーザは、ネットワーク112を介して
ストリーミングサーバ110にストリームリクエストを伝送することによって、スポーツ
イベントのライブビデオストリームをサブスクライブすることができる。ストリーミング
リクエストを受信すると、ストリーミングサーバ110は、エンコードされたビデオコン
テンツをラップトップコンピュータ114bに伝送することが出来る。次に、ラップトッ
プコンピュータ114bは、エンコードされたビデオデータをデコードし、そしてスポー
ツイベントのライブビデオストリームをディスプレイに出力することが出来る。
【0038】
図2は、様々な実施形態による、ストリーミングサーバ210のアーキテクチャを示す
。ストリーミングサーバ210は、エンコードされたメディアストリームをエンコードし
、そしてネットワークを介して1つ又は複数のクライアントデバイスに伝送するように構
成された1つ又は複数の電子デバイスを含むことができる。いくつかの実施形態では、ス
トリーミングサーバ210は、サーバ間でデータを伝送するように構成された、相互接続
されたストリーミングサーバのシリーズの一部である。
【0039】
上述したように、ストリーミングサーバ210は、外部デバイス(例、ビデオカメラ、
外部サーバ)からライブストリーム212を受信することができる。ストリーミングサー
バ210は、ネットワークインターフェース216でライブメディアコンテンツを受信す
ることができる。ネットワークインターフェース216は、適切な有線及び/又は無線通
信プロトコルを介して外部デバイスとインターフェースすることができる。
【0040】
いくつかの実施形態では、ネットワークインターフェース216は、第2のストリーミ
ングサーバからメディアコンテンツ210のエンコードされたストリームを受信する。以
下の図12に示されているように、データパスに沿って、複数のストリーミングサーバを
配置させて、エンコードされたメディアストリームを、生成させ、そしてそれをデータパ
スに沿ってクライアントデバイス(例、クライアントデバイス114a~c)に転送させ
ることができる。
【0041】
ネットワークインターフェース216でデータが受信されると、ストリーミングサーバ
110は、受信したデータがエンコードされているか否かを決定することができる。もし
、受信データがエンコードされている場合、ストリーミングデータは、デコーダ218に
転送させることができる。いくつかの実施形態では、受信データが、エンコードされてい
ないライブストリーム212である場合がある。この場合、このライブストリームは、ト
ランスコーダ220に転送させて、適切なエンコーディングプロトコルを使用して、この
ライブストリームを、エンコードされたメディアストリームにエンコードさせることがで
きる。
【0042】
デコーダ218は、適切なデコーディングプロトコルを使用して、受信された、エンコ
ーされているメディアストリームをデコードするように構成することができる。デコード
されたメディアストリームは、トランスコーダ220に転送させることができる。トラン
スコーダ220は、適切なエンコーディングプロトコルを使用して、受信されたデータを
、エンコードされたメディアストリームにエンコードさせることができる。
【0043】
エンコードされたメディアコンテンツは、ネットワークインターフェース222に転送
させることができる。ネットワークインターフェース222は、適切な有線及び/又は無
線通信プロトコルにより、エンコードされたメディアコンテンツ214をネットワークを
介して様々なクライアントデバイスに転送することができる。
【0044】
いくつかの実施形態では、ネットワークモニタ224は、受信されたメディアストリー
ムのデコーディング及びエンコーディングを監視し、そしてメディアストリームのデコー
ディング及びエンコーディングに関連する情報を受信することができる。受信した情報に
基づいて、ネットワークモニタ224は、エンコードされたストリームのエラーを識別す
ることができる。
【0045】
ネットワークモニタ224は、ストリーミングサーバ210内の他の構成要素を修正又
は調整するリクエストを調整器226に伝送することができる。調整器226は、ビデオ
ストリーム及び/又はトランスコーダ220の一部を調整/修正することができる。この
ような調整は、例えば、トランスコーディング技術又はプロトコルの修正を含むことがで
きる。
【0046】
いくつかの実施形態では、広告228がビデオストリームに追加される。広告は、ビデ
オストリームに補足されるように構成されたビデオコンテンツを含むことができる。一例
では、ストリーミングサーバ210は、様々な時点で、エンコードされたメディアストリ
ームに広告を追加することができる。
【0047】
図3は、様々な実施形態による、クライアントデバイス314のアーキテクチャを示す
。クライアントデバイス314は、スマートフォン、コンピュータ、タブレット、ゲーム
機、スマートホームデバイス等のようなネットワークアクセス可能な電子デバイスを含む
ことができる。
【0048】
上述したように、クライアントデバイス314は、インターネットのようなネットワー
クに接続されたネットワークインターフェース330を介して、ストリームリクエスト3
18をストリーミングサーバ(例、図1のストリーミングサーバ110)に伝送すること
ができる。ストリームリクエスト318は、ライブビデオストリームをサブスクライブし
、そしてストリーミングサーバからエンコードされたメディアストリームを受信するため
のリクエストを含むことができる。
【0049】
クライアントデバイス314のネットワークインターフェース330は、ストリーミン
グサーバからエンコードされたストリーム316を受信することができる。エンコードさ
れたメディアストリーム316は、デコーダ332に転送させることができる。デコーダ
332は、エンコードされたメディアストリームをデコードし、そしてレンダリングされ
たビデオ/オーディオコンテンツをディスプレイ334のような出力コンポーネントに伝
送することができる。他の例示的な出力コンポーネントは、スピーカ、ヘッドセット、タ
ッチスクリーンを含むことができる。ディスプレイ334は、関連付けられているビデオ
ストリームを、エンコードされたメディアストリームのビットレートに対応する解像度/
画質で表示することができる。
【0050】
サービスモニタ336は、エンコードされたストリーム及びストリームのデコーディン
グを監視することができる。例えば、もし、エンコードされたストリームのデコーディン
グにエラーがある場合、サービスモニタは、エラーを識別する、又はエラーに基づいてク
ライアントデバイスを修正することができる。
【0051】
(エンコードされたメディアストリームの概要)
図4は、様々な実施形態による、エンコードされたメディアストリームを示す。エンコ
ードされたメディアストリーム(例、チャンクベースのストリームS1、エンコードされ
たストリームS2)は、例えば、ライブビデオストリームのようなメディアコンテンツを
表すデータを含むことができる。
【0052】
エンコードされたメディアストリームは、キーフレームのシリーズ(例、キーフレーム
402-1~402-3、404-1~404-3)及びそれらに続く予測フレーム(例、予
測フレームのセット406、408)を含むことができる。キーフレーム(例、第1のキ
ーフレーム402-1)(又は「iフレーム」)は、ビデオ内の画像のフルフレームを表
すことができる。一例では、キーフレームは、VP8のイントラフレーム又はMPEGの
キーフレームに類似させることができる。
【0053】
動作中、クライアントデバイス(例、図3のクライアントデバイス314)は、第1の
キーフレーム402-1、404-1を処理して、ビデオフレームのような、対応するメ
ディアコンテンツをレンダリングすることができる。キーフレームは、シーケンス内の他
のフレームを参照せずにデコードさせることができる。この場合、デコーダは、デコーダ
の「デフォルト」状態から始まるこのようなフレームを再構成する。いくつかの実施形態
では、キーフレームは、ビデオストリーム内のランダムアクセス(又はシーキング)ポイ
ントを提供することができる。
【0054】
エンコードされたメディアストリームは、また、時間に関してキーフレームに続く複数
の予測フレーム406、408(又は「デルタフレーム」)を含むこともできる。予測フ
レーム406、408は、キーフレーム間の相違を表すことができる。これは、予測フレ
ームによって表されるフレームのレンダリングに要求されるデータを、低下させることが
できる。一例では、予測フレーム406、408は、VP8のインターフレーム又はMP
EG用語のPフレームに類似させることができる。予測フレーム406、408は、前の
フレームを参照してエンコードさせることができ、そしていくつかの実施形態では、全て
の前のフレームは、最新のキーフレームまで、そしてそれを含めて、エンコードさせるこ
とができる。多くの場合、予測フレーム406、408の正しいデコーディングは、最新
のキーフレーム及びそれに続く全ての予測フレームの正しいデコーディングに依存する。
この結果、デコーディングアルゴリズムは、キーフレームのドロップを許容しない。フレ
ームがドロップ又は破損する可能性がある環境では、キーフレームが正しく受信されるま
で、正しいデコーディングを行うことができない可能性がある。
【0055】
メディアストリームは、チャンク(すなわち、メディアストリームの分割された重複し
ない部分)を作成するためのチャンク転送エンコーディングのようなエンコード技術を使
用して、エンコードさせることが出来る。図4のチャンクベースのストリームS1は、チ
ャンクベースのストリームの例を表すことができる。エンコードされたメディアストリー
ムのチャンクは、互いに独立させて、伝送させそして受信させることができる。いくつか
の実施形態では、チャンクベースのストリームの受信者と送信者の両者は、現在処理され
つつあるチャンクの外側のデータストリームを知る必要はない。
【0056】
図5は、様々な実施形態による、ディストリビューション層のセットを備えた、エンコ
ードされたメディアストリームを示す。エンコードされたメディアストリームは、「ディ
ストリビューション層」と呼ばれる複数の代替ストリームLD、SD、HDを含むことが
できる。図5に示されるように、エンコードされたメディアストリームは、複数のビット
レート508-1、508-2、508-3(又は「マルチビットレート(MBR: mult
i bit-rate)エンコーディング」)によりストリーミングさせることができる。ディスト
リビューション層のビットレートは、ビデオフレームのビット数を表すことができる。こ
の場合、ビットレートが高いほど、高画質のビデオに相関する。例えば、図5に示される
ように、第1のディストリビューション層LDは、低画質ビットレート508-1を含む
ことができ、第2のディストリビューション層SDは、標準画質ビットレート508-2
を含むことができ、そして第3のディストリビューション層HDは、高画質ビットレート
508-3を含むことができる。
【0057】
いくつかの実施形態では、エンコードされたメディアコンテンツは、様々なビット(又
は「エンコーディング」)レートで、セグメント又はチャンク(例、図4に示されるよう
なチャンクベースのストリーム)でストリーミングされる。これらの実施形態では、もし
、ネットワーク条件が変化する(すなわち、データ送信及び処理能力が増加又は減少する
)場合、サブスクライブするデバイスは、異なるチャンク間を切り替えて、異なるビット
レートでエンコードされたメディアストリームの代替バージョンを、サブスクライブする
ことができる。
【0058】
多くの場合、MBRエンコーディングは、固定ビットレートアプローチを使用して、各
メディアストリームをエンコードする。固定ビットレートエンコーディングを使用して代
替ストリームをエンコードすると、結果として得られるメディアの出力品質には一貫性が
なく、かつ結果が望ましくないものとなる可能性がある。例えば、エンコードされたメデ
ィアストリームで表されるビデオには、様々な視覚的複雑さを持つ部分(又は「シーン」
)が含まれる。この例では、固定ビットレートのエンコーディングは、様々な品質を含む
これらのビデオセグメントを効率的にエンコードすることはできない。これは、固定ビッ
トレートのエンコーディングの場合、複雑度の低いビデオセグメントをエンコードするに
はビットが多すぎ、そして複雑度の高いビデオセグメントをエンコードするにはビットが
不足している可能性があるためである。
【0059】
多くの場合、MBRエンコーディングは、クライアントデバイスの最終的なディスプレ
イ解像度を固定することを要求する。固定ディスプレイ解像度を使用すると、マルチビッ
トレートのビデオストリームをデコードし、そしてそれを固定ディスプレイ解像度にスケ
ーリングして、表示されるメディアのグリッチを最小限に抑えることが出来る。固定ディ
スプレイ解像度を使用すると、様々な代替メディアストリームは、例えば、毎秒数メガビ
ットから毎秒数キロビットまで等、幅広いビットレートを持つことが出来る。このような
場合、固定ディスプレイ解像度へのストリーミングが直面する問題は、適切なビデオ解像
度を、複数のビデオストリームの様々なビットレートに一致させることである。多くのマ
ルチビットレートエンコード技術は、予め定義されているエンコード解像度を利用するが
、これは、ビデオシーンの変化する複雑さ、及び様々なネットワーク上のクライアントデ
バイスについての動的ネットワーク条件に、十分適しているとは言えない。
【0060】
多くの場合、エンコードされるメディアストリームは、メディアコンテンツを複数のビ
ットレートでエンコードするために、適応ビットレートストリーミングを利用することが
できる。図6は、様々な実施形態による、適応ビットレートでエンコードされたメディア
ストリームを示す。適応ビットレートでエンコードされたメディアストリームを使用する
と、クライアントデバイスは、使用可能なリソースに基づいて、エンコードされたメディ
アを様々なビットレートでストリーミングすることを切り替えることができる。例えば、
もし、クライアントデバイスが、現在ストリーミングされているビットレートよりも高い
コーディングレートのビットレートでストリーミングすることができる場合、クライアン
トデバイスは、より高いコーディングレートの他のビットレートに切り替えることができ
る。
【0061】
いくつかの実施形態では、送信元メディアコンテンツは、様々なビットレートで、様々
なディストリビューション層にエンコードさせ、そしてメディアコンテンツの部分にセグ
メント化させることができる。ストリーミングクライアントには、様々なビットレートで
利用可能なストリームを認識させることができ、そしてストリーミングクライアントは、
マニフェストファイルによってストリームをセグメント化することができる。
【0062】
例えば、(時刻T1で)開始/初期化すると、クライアントデバイスは、より低いビッ
トレート608-1の第1のストリームLDをサブスクライブする(又はこの第1のスト
リームLDからセグメントをリクエストする)ことができる。もし、クライアントデバイ
スが、時刻T2において、より低いビットレートの第1のストリームよりも高いビットレ
ートのストリームを処理できると、クライアントデバイスが決定した場合、クライアント
デバイスは、より高いビットレート608-2の第2のストリームSDをサブスクライブ
することができる。同様に、クライアントデバイスは、クライアントデバイスがより高い
ビットレート608-3のストリームを処理することが出来るとの決定に基づいて、時刻
T3で第3のストリームHDをサブスクライブすることができる。
【0063】
逆に、もし、クライアントデバイスのダウンロード速度又は処理速度が、現在サブスク
ライブされつつあるストリームのビットレートよりも低い場合、クライアントデバイスは
、より低いビットレートセグメントをサブスクライブすることができる。いくつかの実施
形態では、クライアントデバイスは、ネットワークスループットが既に低下している、又
はクライアントデバイスの処理能力が既に閾値レベルを下回っているとの決定に基づいて
、より低いビットレートセグメントをサブスクライブすることができる。
【0064】
図7Aは、様々な実施形態による、複数のサブスクライバによるライブブロードキャス
ティングに対する適応ビットレートストリーミングを示す。図7Aに示されるように、複
数のサブスクライバ(例、サブスクライバS1、S2)が、エンコードされたメディアス
トリームをサブスクライブすることができる。一例として、サブスクライバ1(S1)は
、エンコードされたメディアストリームを時刻T0でサブスクライブすることができる。
サブスクライバ2(S2)は、時刻T1でサブスクライブすることができる。
【0065】
いくつかの実施形態では、もし、エンコードされたメディアストリームが、適応ビット
レートストリーミングを利用する場合、ストリームの各ディストリビューション層は、予
めエンコードさせておくことができる。しかしながら、ライブブロードキャスティングの
場合、既にブロードキャストされている、エンコードされたメディアストリームをサブス
クライブする新しいクライアント(例、サブスクライバ2(S2))は、特定の解像度の
新しいキーフレーム(つまり、特定の解像度に関連付けられているストリームのディスト
リビューション層)をリクエストする。多くの場合、新しいクライアントS2は、時間領
域に関し、新しいキーフレームが到着する時刻T2より前のサブスクリプション時刻に、
エンコードされたメディアストリームをリクエストすることができる。新しいクライアン
トのサブスクリプション時刻T1と第1のフレームがレンダリングされる時刻T2との間
の時間間隔は、起動レイテンシT3を含むことができる。
【0066】
図7Bは、様々な実施形態による、動的ネットワーク条件でのライブブロードキャステ
ィングに対する適応ビットレートストリーミングを示す。いくつかの実施形態では、ネッ
トワーク条件の変化に応答して、クライアントは、変化するネットワーク条件に適応する
ために、エンコードされたメディアストリームのビットレートの変更をリクエストするこ
とができる。
【0067】
一例として、図7Bに示されるように、クライアントは、第1の時刻T1でより高い帯
域幅が利用可能であると決定することができる。より高い帯域幅が利用可能であると決定
することは、利用可能な帯域幅が、より高いビットレートの、エンコードされたメディア
ストリームの処理に対応できることを、クライアントが識別することを含むことができる
。従って、クライアントは、代表的なメディアの品質を向上させるために、より高いビッ
トレートでディストリビューション層をサブスクライブすることをリクエストすることが
できる。
【0068】
しかしながら、より大きなビットレートでディストリビューション層をサブスクライブ
するために、クライアントは、リクエストされたディストリビューション層の新しいキー
フレームが到着する時刻T2まで待たなければならない可能性がある。従って、第1の時
刻T1と時刻T2との間の時間間隔は、帯域幅が十分に活用されない時間T3を表す。帯
域幅が十分に活用されないこの待機時間T3(つまり、「第1のフレームまでの時間」)
は、デコードされたメディアのビットレートが、より高いビットレートストリームから生
じる品質よりも低い品質であるため、クライアント体験が低い品質となる結果をもたらす
可能性がある。
【0069】
さらに、図7Bに示されるように、クライアントは、時刻T4で帯域幅の低下に遭遇す
る可能性がある。帯域幅の低下には、クライアントが、現在のビットレートではエンコー
ドされたメディアストリームを処理することができないので、利用可能な帯域幅が低下す
ることが、含まれる。この例では、クライアントは、より低いビットレートのストリーム
をリクエストすることができ、そしてこのより低いビットレートの新しいキーフレームは
、後の時刻(例、第1のキーフレーム時刻T5)に到着する。ドロップ時刻T4と新しい
キーフレームの時刻T5との間の帯域幅の持続時間は、レンダリング不連続持続時間T6
とすることができる。このレンダリング不連続時間中には、結果的に得られるメディアが
、中断/グリッチされる、又はメディアを表示することができない可能性がある。
【0070】
ブロードキャストグループは、エンコードされたメディアストリームをサブスクライブ
したクライアントデバイスのグループを含むことができる。あるケースでは、もし、ブロ
ードキャストグループ内の1つのクライアントが、エンコードされたメディアストリーム
のビットレートを維持することができない場合、このクライアントは、ストリームから除
外される、又はより低いビットレートのストリームをサブスクライブした新しいブロード
キャストグループに移動される。第2のケースでは、もし、ブロードキャストグループ内
の1つのクライアントが、エンコードされたメディアストリームのビットレートを維持で
きない場合、ブロードキャストグループ内の全てのクライアントが、より低いビットレー
トでストリームを処理することができるように、エンコードされたメディアストリームを
、より低いビットレートに下げることができる。何れの場合にも、単一のクライアント又
はブロードキャストグループの何れかに対し、全体の品質が、低下してしまう可能性があ
る。
【0071】
いくつかの実施形態では、計算及びネットワークリソースを効率的に利用しつつ、クラ
イアントの体験及び品質を最適化することは、複数のステップに関係する。第1のステッ
プは、コンテンツを、ブロードキャストグループ内の複数のクライアントに、中断するこ
となく転送及び再構成することが出来るように、コンテンツをエンコードする品質レベル
を、選択することを含むことができる。第2のステップは、動的ネットワーク条件のコン
テキストでその品質を維持しつつ、エンコードされたメディアストリームの新しいサブス
クライバが、第1のフレームに至るまでの時間を短縮することを含むことができる。
【0072】
(ライブブロードキャスティングに対するシフトされたディストリビューション層(SD
L: shifted distribution layers))
図8Aは、様々な実施形態による、シフトされたディストリビューション層を有する、
エンコードされたメディアデータのセットを示す。エンコードされたメディアストリーム
のディストリビューション層LD、LD+、LD++は、様々な時刻位置にキーフレーム
のセット(これは、「シフトされたディストリビューション層」と呼ぶことができる)を
含むことができる。
【0073】
一例として、図8Aにおいて、第1のディストリビューション層LDは、第1の時刻位
置T1に第1のキーフレーム802-1を有するキーフレームのシリーズ802-1~8
02-4を含むことができる。第2のディストリビューション層LD+は、時間領域に関
してシフトされたキーフレームのシリーズ804-1~804-3を含むことができ、こ
こで、第1のキーフレーム804-1は、第2の時刻位置T2にある。同様に、第3のデ
ィストリビューション層LD++は、時間領域に関してシフトされたキーフレームのシリ
ーズ806-1~806-3を含むことができ、ここで、第1のキーフレーム806-1
は、第2の時刻位置T3にある。元のストリーム内のキーフレームの位置に応じてキーフ
レームが時間的にシフトされたストリームの代替バージョンを使用することにより、起動
レイテンシは短縮され、ストリーミングの中断が回避され、そしてネットワーク条件の変
化の下でのリソース使用率が向上する。
【0074】
図8Bは、様々な実施形態による、複数のビットレートのディストリビューション層が
シフトされた、エンコードされたメディアデータのセットを示す。図8Bに示されるよう
に、エンコードされたメディアデータは、様々なビットレート又はコーディングレートの
ディストリビューション層(例、LD、SD、HD)を含むことができる。さらに、ディ
ストリビューション層LD、SD、HDのエンコードされたメディアデータは、第1の時
刻T1で第1のキーフレームを含むことができる。
【0075】
エンコードされたメディアストリームのディストリビューション層は、シフトされたデ
ィストリビューション層を含むことができ、ここで、キーフレームは、時間領域に関して
シフトされている。例えば、図8に示されるように、シフトされたディストリビューショ
ン層LD+、SD+、及びHD+は、時間的に第2の時刻T2にシフトされた第1のキー
フレームを含む。同様に、シフトされたディストリビューション層LD++、SD++、
及びHD++は、時間的に第3の時刻T3にシフトされた第1のキーフレームを含む。デ
ィストリビューション層は、時間領域に対して任意の時刻位置に、時間的にシフトされた
キーフレームを含むことができる。
【0076】
エンコードされたメディアストリームの新しいサブスクライバは、現在のサブスクリプ
ション時刻に時間的に最も近いキーフレームを有するディストリビューション層をサブス
クライブすることができるので、エンコードされたメディアストリームにおいてシフトさ
れたディストリビューション層を利用することは、起動レイテンシを減少させることを可
能にする。例えば、新しいクライアントデバイスは、時刻TAで、エンコードされたメデ
ィアストリームをサブスクライブして、HDビットレートのディストリビューション層を
リクエストすることができる。この例では、時間的に第3の時刻T3にシフトされた第1
のキーフレームが、時間的には現在の時刻TAに最短の距離にあるので、新しいクライア
ントデバイスは、ディストリビューション層HD++をサブスクライブすることができる。
従って、エンコードされたデータストリームのシフトされたディストリビューション層を
サブスクライブすることにより、新しいクライアントが、シフトされていないディストリ
ビューション層(HD)の次のキーフレームを待機することが無いので、起動レイテンシ
は短縮させることができる。
【0077】
(シフトされたディストリビューション層及び動的に生成された層(DGL; dynamicall
y generated layers))
いくつかの実施形態では、シフトされたディストリビューション層及びキーフレームは
、動的に生成させることができる。図9は、様々な実施形態による、動的に生成されたデ
ィストリビューション層及びキーフレームを備えた、エンコードされたストリーミングデ
ータを示す。
【0078】
シフトされたディストリビューション層は、動的に生成させることができる。一例では
、新しいクライアントは、時刻TAで、標準画質(SD: standard definition)エンコ
ーディング速度でエンコードされたメディアストリームをサブスクライブすることができ
る。しかしながら、もし、新しいクライアントが、時刻TAでディストリビューション層
SDをサブスクライブすると、時刻TAと次のキーフレーム906-2の時刻との間に、
起動レイテンシが発生する可能性がある。上述したように、エンコードされたメディアス
トリームから得られるメディアのクライアント体験と品質は、起動レイテンシにより、低
下してしまう可能性がある。
【0079】
上記の例をさらに進めると、新しいクライアントが、エンコードされたメディアストリ
ームを既にサブスクライブしているとの決定に基づいて、新しいディストリビューション
層を、動的に生成させることができる。動的に生成された層(DGL: dynamically gene
rated layer)は、SD*によって表すことができる。動的に生成されたSD* 908のキ
ーフレームは、サブスクリプション時刻TAとキーフレーム時刻との間の起動レイテンシ
を短縮する。
【0080】
いくつかの実施形態では、起動レイテンシを短縮するために、エンコードされたメディ
アストリームをサブスクライブする新しいクライアントに対し、新しいDGLを生成させ
ることができる。もし、現在の時刻(例、TA)と次のキーフレームとの間の時間間隔が
、閾値時間間隔を超えると、新しいDGLを生成させることができる。閾値時間間隔は、
次のキーフレームまでの特定の数の予測フレーム、又は次のキーフレームまでの時間間隔
を表すことができる。
【0081】
一例として、もし、この閾値時間間隔が、現在の時刻とディストリビューション層(例
、SD)の次のキーフレームとの間の5予測フレームである場合で、もし、現在の時刻と
ディストリビューション層の次のキーフレームが、7フレームである場合には、DGL(
例、SD*)を生成させることができる。逆に、もし、現在の時刻とディストリビューシ
ョン層の次のキーフレームとの間の時間間隔が、閾値時間間隔(例、3フレーム)より短
い場合、DGL(例、SD*)は、生成されない。
【0082】
図10は、様々な実施形態による、エンコードされたメディアストリームのディストリ
ビューション層及び動的に生成された層のセットを示す。図10に示される実施形態では
、層LD*、SD*、及びHD*は、様々なビットレートで動的に生成された層(DGL)
とすることができる。シフトされたディストリビューション層とDGLを利用することに
より、ストリームサブスクライバの体験の品質を向上させ、そしてリソースの要求を減少
させることができる。
【0083】
一例として、識別されたビットレートに対する新しいDGLは、エンコードされたメデ
ィアストリームをサブスクライブする新しいクライアント、又はネットワーク状態の変化
を体験するクライアントの何れかに基づいて、動的に生成させることができる。いくつか
の実施形態では、ストリーミングサーバは、クライアントデバイスに対するネットワーク
状態の変化を検出すること、又はネットワーク状態の変化を示すメッセージをクライアン
トデバイスから受信することの何れかに基づいて、動的に生成された層又はシフトされた
ディストリビューション層を、生成することができる。
【0084】
(ディストリビューション層及び関連付けられているブリッジディストリビューション層
(BDL: bridge distribution layers))
図11は、様々な実施形態による、エンコードされたメディアストリームのディストリ
ビューション層及びブリッジディストリビューション層のセットを示す。図11に示され
るように、層LD、SD、及びHDは、エンコードされたメディアストリームのディスト
リビューション層を表し、並びに層LD**、SD**、及びHD**は、エンコードされたメ
ディアストリームのブリッジディストリビューション層を表す。
【0085】
ブリッジディストリビューション層(BDL)は、有限数のフレームを有する、動的に
生成されたディストリビューション層を含むことができる。BDL(例、LD**、SD**
、HD**)には、キーフレーム、及び現在の時刻とディストリビューション層の次のキー
フレームとの間の数の予測フレームを含めることができる。一例として、SD**は、時刻
T3で生成させることができる。ここで、BDLは、時刻T3でのキーフレーム1110
と、対応するディストリビューション層(SD)のキーフレームから次のキーフレームの
時刻までの数の予測フレーム1112を含む。
【0086】
もし、クライアントが、BDL(例、SD**)をサブスクライブすると、クライアント
は、時間が次のキーフレーム(例、T4)の時刻に一致するときに、対応するディストリ
ビューション層(例、HD)に切り替わることができる。いくつかの実施形態では、BD
L(例、HD**)は、クライアントデバイスがBDLから切り替わるときに、時刻T4で
放棄させることができる。
【0087】
いくつかの実施形態では、ストリーミングサーバは、トリガーイベントに基づいて、B
DLの予測フレームの生成を停止することができる。このようなトリガーイベントの1つ
は、到着する、対応するディストリビューション層のキーフレームを含むことができる。
この場合、ストリーミングサーバは、この対応するディストリビューション層のキーフレ
ームの時刻に、予測フレームの生成を停止することが出来る。第2のトリガーイベントは
、現在の時刻(例、T3)と次のキーフレームの時刻(例、T4)との間の持続時間を予
測/推定することを含むことができる。この推定された時間間隔に基づいて、ストリーミ
ングサーバは、BDLのキーフレームの後に、適切な数の予測フレームを生成することが
できる。
【0088】
図12Aは、様々な実施形態による、送信元ストリーミングサーバでディストリビュー
ション層を動的に生成するためのアーキテクチャを示す。このアーキテクチャは、エンコ
ードされたメディアストリームをクライアントデバイスに転送することを支援する1つ以
上のサーバを含むことができる。図12Aに示されるように、送信元ストリーミングサー
バ1210は、エンコードされたメディアストリームを、中間ストリーミングサーバ12
12a~bにより、ネットワークを介してクライアントデバイスに伝送することができる
【0089】
図12Aに示される実施形態では、送信元ストリーミングサーバ1210は、ディスト
リビューション層LD、SD、HDとシフトされたディストリビューション層LD+、S
D+、HD+との両方を有する、エンコードされたメディアストリームを、生成すること
ができる。エンコードされたメディアストリームは、様々な中間ストリーミングサーバ1
212a~bに伝送させ、そしてブロードキャストグループの一部である様々なクライア
ントデバイス1214a~bに転送させることができる。この構成により、体験の品質を
低下させながら、エンコードされたメディアストリームディストリビューション層を生成
する際のリソースに対する要求を減らすことができる。クライアントデバイスが、ディス
トリビューション層の次のキーフレームまでより長い待機時間待機しなければならないの
で、体験の品質は、低下してしまう可能性がある。
【0090】
図12Bは、様々な実施形態による、データパスに沿ってディストリビューション層を
動的に生成するためのアーキテクチャを示す。図12Bに示されるように、送信元ストリ
ーミングサーバ1210は、ディストリビューション層LD、SD、HDを有する、エン
コードされたメディアストリームを生成することができる。中間ストリーミングサーバ1
212a~bは、エンコードされたメディアストリームを受信し、そしてそのストリーム
をクライアントデバイス1214a~bに転送することができる。いくつかの実施形態で
は、中間クライアントデバイス1212a~bは、シフトされたディストリビューション
層LD+、SD+、HD+を生成し、そしてシフトされたディストリビューション層をク
ライアントデバイス1214a~bに伝送することができる。中間クライアントデバイス
1212a~bは、ネットワーク条件が変化したこと又はクライアントデバイスが新しい
サブスクライバであることにより、シフトされたディストリビューション層のリクエスト
を受信することに基づいて、シフトされたディストリビューション層をクライアントデバ
イス1214a~bに伝送することができる。
【0091】
複数の中間ストリーミングサーバが、クライアントデバイスに対して、シフトされたデ
ィストリビューション層を動的に生成することが出来るので、現在の時刻から第1のフレ
ームまでの、クライアントデバイスに対する時間をより短くすることができる。さらに、
送信元ストリーミングサーバに加えて、データパスの両端で、複数のエンコーダを実行さ
せることもできる。
【0092】
図13は、様々な実施形態による、メディアストリームの連続性を維持するためのシグ
ナリングプロセスを示す。図13に示されるように、1つ又は複数のサーバ(例、送信元
サーバ1312及び中間サーバ1314)は、データパスに沿って、エンコードされたラ
イブメディアストリームをクライアントデバイス1316に伝送することが出来る。
【0093】
クライアントデバイス1316は、新しいストリームリクエスト1301を、データパ
スに沿って中間サーバ1314に伝送することが出来る。新しいストリームリクエスト1
301は、ライブメディアストリームをサブスクライブするリクエストを表すことが出来
る。新しいストリームリクエスト1301を受信すると、中間サーバ1314は、リクエ
スト1301を、データパスに沿って送信元サーバ1312に転送することが出来る。
【0094】
送信元サーバ1312は、ライブメディアストリーム1302を生成することができる
。いくつかの実施形態では、送信元サーバ1312は、新しいストリームリクエスト13
01に基づいて、1つ又は複数のビットレートでメディアストリームを生成することがで
きる。送信元サーバ1312は、メディアストリーム1303を、ブロードキャストグル
ープ内の複数のクライアントデバイス(例、クライアントデバイス1316)に伝送する
ことができる。いくつかの実施形態では、送信元サーバ1312は、データパスに沿って
メディアストリーム1303を中間サーバ1314に伝送することが出来る。この中間サ
ーバ1314は、メディアストリーム1303をクライアントデバイス1316に転送す
ることができる。メディアストリーム1303を受信すると、クライアントデバイス13
16は、関連付けられているライブメディアコンテンツを処理及びレンダリングすること
ができる。
【0095】
いくつかの実施形態では、クライアントデバイス1316は、リクエスト1304を中
間サーバ1314に伝送しそしてそれを更新することが出来る。更新リクエスト1304
は、異なるビットレートでの、メディアストリームの新しいディストリビューション層に
対するリクエストを表すことが出来る。例えば、クライアントデバイス1316は、それ
が、より高いビットレートでメディアストリームを処理することが出来ると決定すること
が出来る。別の例として、クライアントデバイス1316は、それが、この現在のビット
レートでは、もはや、メディアストリームのグリッチ又は中断を体験することなく、メデ
ィアストリームを処理することは出来ないと決定することができる。
【0096】
いくつかの実施形態では、中間サーバ1314は、クライアントデバイス1316から
更新リクエスト1304を受信すると、第2のディストリビューション層1305を生成
することが出来る。第2のディストリビューション層1305は、クライアントデバイス
1316に最初に送信されたメディアストリーム1303のビットレートとは異なる、更
新リクエスト1304で指定されたビットレートを含むことができる。第2のディストリ
ビューション層1305が生成されると、中間サーバ1314は、第2のディストリビュ
ーション層1306をクライアントデバイス1316に伝送することが出来る。第2のデ
ィストリビューション層1306は、メディアストリームの第1のディストリビューショ
ン層のキーフレームに対して、時間的にシフトされているキーフレームを、含むことが出
来る。
【0097】
いくつかの実施形態では、クライアントデバイス1316は、データパス上の更新リク
エスト1307を中間サーバ1314に送信することができる。中間サーバ1314は、
このリクエスト1307を送信元サーバ1312に転送することができる。リクエスト1
307の受信に応答して、送信元サーバ1312は、第2のディストリビューション層1
308を生成することが出来る。送信元サーバ1312は、第2のディストリビューショ
ン層1310を、データパスに沿って中間サーバ1314に伝送することが出来る。中間
サーバ1314は、第2のディストリビューション層1310をクライアントデバイス1
316に転送することができる。
【0098】
(処理システム)
図14は、本明細書に記載の少なくともいくつかの動作を実施することができる処理シ
ステム1400の例を示すブロック図である。例えば、処理システム1400のいくつか
のコンポーネントは、ストリーミングサーバ(例、図2のストリーミングサーバ210)
又はクライアントデバイス(例、図3のクライアントデバイス314)上でホストさせる
ことができる。
【0099】
処理システム1400は、1つ又は複数の中央処理ユニット(「プロセッサ」)140
2、メインメモリ1406、不揮発性メモリ1410、ネットワークアダプタ1412(
例、ネットワークインターフェース)、ビデオディスプレイ1418、入力/出力デバイ
ス1420、制御デバイス1422(例、キーボード及びポインティングデバイス)、格
納媒体1426を含むドライブユニット1424、及びバス1416に通信可能に接続さ
れたシグナル生成デバイス1430を含むことができる。バス1416は、適切なブリッ
ジ、アダプタ、又はコントローラによって接続されている1つ又は複数の物理バス及び/
又はポイントツーポイント接続を表す抽象化されたものとして示されている。従って、バ
ス1416は、システムバス、PCI:Peripheral Component Interconnect バス又はP
CI-Expressバス、HyperTransport又は業界標準アーキテクチャ
(ISA:industry standard architecture)バス、スモールコンピュータシステムイン
ターフェイス(SCSI: small computer system interface)バス、ユニバーサルシリ
アルバス(USB: universal serial bus)、IIC(I2C)バス、又は電気電子技術
者協会(IEEE; Institute of Electrical and Electronics Engineers)標準139
4バス(つまり、「Firewire」)を含むことが出来る。
【0100】
処理システム1400は、デスクトップコンピュータ、タブレットコンピュータ、携帯
情報端末(PDA: personal digital assistant)、スマートフォン、ゲームコンソール
、音楽プレーヤ、ウェアラブル電子デバイス(例、時計又はフィットネストラッカ)、ネ
ットワーク接続された(「スマート」)デバイス(例、テレビ又はホームアシスタントデ
バイス)、仮想/拡張現実システム(例、ヘッドマウントディスプレイ)、又は処理シス
テム1400によって実行されるべきアクションを指定する(順次又は他の)命令のシー
ケンスを実行することができる別の電子デバイスのような、コンピュータプロセッサアー
キテクチャを共有することができる。
【0101】
メインメモリ1406、不揮発性メモリ1410、及び格納媒体1426(「マシン可
読媒体」とも呼ばれる)は、単一の媒体として示されているが、「マシン可読媒体」及び
「格納媒体」という用語は、1つ又は複数のセットの命令1428を格納する単一の媒体
又は複数の媒体(例、集中型/分散型データベース及び/又は関連付けられているキャッ
シュ及びサーバ)を含むと解釈されるべきである。「マシン可読媒体」及び「格納媒体」
という用語は、また、処理システム1400によって実行するための命令のシーケンスを
記憶、エンコーディング、又は運ぶことができる任意の媒体を含むと解釈されなければな
らない。
【0102】
一般に、本開示の実施形態を実施するために実行されるルーチンは、オペレーティング
システム又は特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モ
ジュール、又は命令のシーケンス(総称して「コンピュータプログラム」と呼ばれる)の
一部として実施させることができる。コンピュータプログラムは、通常、コンピューティ
ングデバイス内の様々なメモリ及び格納デバイスに、様々な時間に設定された1つ又は複
数の命令(例、命令1404、1408、1428)を備える。1つ又は複数のプロセッ
サ1402によって読み取られそして実行されると、命令は、処理システム1400に、
本開示の様々な態様を含む要素を実行するための動作を実行させる。
【0103】
さらに、実施形態は、ここまで、完全に機能するコンピューティングデバイスの文脈で
説明されてきたが、当業者は、様々な実施形態が、様々な形態のプログラム製品として流
通させることができることを理解するであろう。本開示は、実際に流通させるために使用
される特定のタイプのマシン又はコンピュータ可読媒体に関わりなく、適用される。
【0104】
マシン可読格納媒体、マシン可読媒体、又はコンピュータ可読媒体のさらなる例には、
揮発性及び不揮発性メモリデバイス1410、フロッピ及び他のリムーバブルディスク、
ハードディスクドライブ、光ディスク(例、コンパクトディスク読み取り専用メモリ(C
D-ROM)、デジタル多用途ディスク(DVD))、及びデジタル及びアナログ通信リ
ンクのような伝送型メディアのような記録可能型媒体が含まれる。
【0105】
ネットワークアダプタ1412は、処理システム1400が、処理システム1400及
び外部エンティティによってサポートされる任意の通信プロトコルを介して、処理システ
ム1400の外部にあるエンティティとのネットワーク1414内のデータを仲介するこ
とを可能にする。ネットワークアダプタ1412は、ネットワークアダプタカード、無線
ネットワークインターフェースカード、ルータ、アクセスポイント、無線ルータ、スイッ
チ、多層スイッチ、プロトコルコンバータ、ゲートウェイ、ブリッジ、ブリッジルータ、
ハブ、デジタルメディアレシーバ、及び/又はリピータを含むことが出来る。
【0106】
ネットワークアダプタ1412は、コンピュータネットワーク内のデータにアクセス/
プロキシする許可を決定及び/又は管理し、そして異なるマシン及び/又はアプリケーシ
ョン間の様々なレベルの信頼を追跡するファイアウォールを含むことができる。ファイア
ウォールは、特定のセットの、マシンとアプリケーションの間、マシンとマシンの間、及
び/又はアプリケーションとアプリケーションの間で所定のアクセス権のセットを(例、
これらのエンティティ間のトラフィックとリソース共有のフローを規制するために)実施
することができるハードウェア及び/又はソフトウェアコンポーネントの任意の組み合わ
せを有する任意の数のモジュールとすることができる。ファイアウォールは、さらに、個
人、マシン、及び/又はアプリケーションによるオブジェクトのアクセス権及び操作権、
並びに許可権が存在する状況を含む許可を詳述するアクセス制御リストを、管理する及び
/又はそれにアクセスすることができる。
【0107】
ここで紹介する技術は、プログラム可能な回路(例、1つ又は複数のマイクロプロセッ
サ)、ソフトウェア及び/又はファームウェア、専用のハードワイヤード(すなわち、プ
ログラム不可能な)回路、又はそのような形態の組み合わせによって実施させることがで
きる。専用回路は、1つ又は複数の、特定用途向け集積回路(ASIC: application-sp
ecific integrated circuits)、プログラマブルロジックデバイス(PLD: programmabl
e logic devices )、フィールドプログラマブルゲートアレイ(FPGA: field-progra
mmable gate arrays)等の形式とすることができる。
【0108】
いくつかの実施形態では、任意の適切なエンコーディングプロトコルを利用することが
できる。例えば、プロトコルH.264又はVP9を、利用することができそしてこのよ
うなプロトコルの任意の組み合わせに適用することが出来る。
【0109】
(備考)
請求された主題の様々な実施形態の前述の説明は、例示及び説明の目的で提供されて来
ている。制限列挙とすること、又はクレームされた主題を開示された正確な形式に限定す
ることは、意図されていない。多くの修正及び変形は、当業者には明らかであろう。実施
形態は、本発明の原理及びその実際の用途を最も良く説明するために、選択及び説明され
た。これにより、関連技術分野の当業者は、請求項に記載される主題、様々な実施形態、
及び特定の用途に適した様々な修正を理解することができる。
【0110】
発明の詳細な説明は、特定の実施形態及び企図される最良のモードを説明しているが、
発明の詳細な説明がどれほど詳細に表示されていても、この技術は、多くの方法で実施さ
せることが出来る。実施形態は、明細書に含まれているが、それらの実施の詳細ではかな
り異なる場合がある。様々な実施形態の特定の特徴又は側面を説明するときに使用される
特定の用語は、その用語が関連する技術の特定の特性、特徴、又は側面に限定されるよう
に本明細書で再定義されていることを意味すると解釈されるべきではない。一般に、以下
の特許請求の範囲で使用される用語は、それらの用語が本明細書で明示的に定義されない
限り、技術を本明細書に開示される特定の実施形態に限定すると解釈されるべきではない
。従って、技術の実際の範囲は、開示された実施形態だけでなく、実施形態を実施又は実
施する全ての同等の方法も包含する。
【0111】
本明細書で使用される言語は、主に、読みやすさ及び説明目的のために選択されている
。これは、主題を描写又は制限するために選択されていない。従って、技術の範囲は、こ
の発明の詳細な説明ではなく、これに基づくアプリケーションについて発行される請求項
によって、制限されることが意図されている。従って、様々な実施形態の開示は、以下の
特許請求の範囲に記載される技術の範囲を例示することを意図しているが、限定すること
を意図されていない。
【0112】
(関連出願の相互参照)
本出願は、2018年4月26日に出願された、「ライブブロードキャスティングのた
めの適応ビットレート法」という発明の名称を有する米国仮特許出願シリアルNo.62
/663,182の利益を主張し、これは、本引用によりその全体が本明細書に組み込ま
れている。

図1
図2
図3
図4
図5
図6
図7A
図7B
図8A
図8B
図9
図10
図11
図12A
図12B
図13
図14
【手続補正書】
【提出日】2024-03-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1のディストリビューション層を含むライブメディアストリームを取得するステップであって、前記第1のディストリビューション層が、第1のキーフレームセットと、前記第1のキーフレームセット内の複数のキーフレームのそれぞれに対して、前記第1のキーフレームセット内の次のキーフレームまで記キーフレームに続く第1のデルタフレームセットを含む、ステップ
クライアントデバイスが、前記ライブメディアストリームのレンダリングを変更する指示を受信するステップ
前記指示の受信に応答して、前記ライブメディアストリームの第2のディストリビューション層を前記クライアントデバイスに通信するステップであって、前記第2のディストリビューション層が、第2のキーフレームセットと、前記第2のキーフレームセット内の複数のキーフレームのそれぞれに対して、 前記キーフレームに続く第2のデルタフレームセットとを含み、前記第2のキーフレームセットが、前記第1のキーフレームセットよりも少ないキーフレームを含む、ステップ;および
前記クライアントデバイスが、前記第1のディストリビューション層の前記第1のデルタフレームセットの内の1つのレンダリングから、前記第2のキーフレームセットの選択されたキーフレームで開始する前記第2のディストリビューション層のレンダリングに切り替えそして前記選択したキーフレームに続く前記第2のデルタフレームセットに連続させることにより、前記ライブメディアストリームの連続性を維持することを可能にするステッ
備える方法。
【請求項2】
送信元サーバが、前記第1のディストリビューション層を生成するステップ;および
前記送信元サーバが、前記クライアントデバイスから、前記ライブメディアストリームのレンダリングを変更する前記指示を受信することに基づいて、前記第2のディストリビューション層を生成するステッ
を、更に、備える、請求項1に記載の方法。
【請求項3】
前記ライブメディアストリームを取得するステップが、
中間サーバが、送信元サーバから、前記第1のディストリビューション層を受信するステップであって、前記第1のディストリビューション層が、前記送信元サーバによって生成される、ステップ
前記中間サーバが、前記クライアントデバイスから、前記ライブメディアストリームの前記レンダリングを変更する前記指示を受信することに基づいて、前記第2のディストリビューション層を生成するステップ;および
前記中間サーバが、前記第1のディストリビューション層と前記第2のディストリビューション層の両方を前記クライアントデバイスに通信するステッ
を備える、請求項1に記載の方法。
【請求項4】
前記第1のディストリビューション層が、第1のビットレートを含み、そして前記第2のディストリビューション層が、前記第1のビットレートとは異なる第2のビットレートを含む、請求項1に記載の方法。
【請求項5】
前記クライアントデバイスが、前記ライブメディアストリームの新しいサブスクライバであるとの決定に基づいて、前記第2のディストリビューション層を生成するステップを、更に、備える、請求項1に記載の方法。
【請求項6】
前記第2のディストリビューション層を生成するステップが:
前記クライアントデバイスによる前記ライブメディアストリームのサブスクリプションの時刻と、前記第1のキーフレームセット内の次のキーフレームの時刻との間の時間間隔が、閾値時間間隔よりも大であると決定するステップ;および
前記時間間隔が前記閾値時間間隔よりも大であるとの決定に応答して、前記第2のディストリビューション層を生成するステップ
を備える、請求項5に記載の方法。
【請求項7】
ライブメディアコンテンツをストリーミングするデバイスであって、
ライブメディアストリームの連続性を維持するための命令を含むメモリであって、前記命令が、プロセッサによって実行されると、前記プロセッサに、以下のステップ:
第1のディストリビューション層を含むライブメディアストリームを取得するステップであって、前記第1のディストリビューション層が、第1のキーフレームセットと、前記第1のキーフレームセット内の複数のキーフレームのそれぞれに対して、前記第1のキーフレームセット内の次のキーフレームまで前記キーフレームに続く第1のデルタフレームセットとを含む、ステップ
ライアントデバイスが、前記ライブメディアストリームのレンダリングを変更する指示を受信するステップ;
前記クライアントデバイスへの前記ライブメディアストリームの第2のディストリビューション層を生成するステップであって、前記第2のディストリビューション層が、第2のキーフレームセットと、前記第2のキーフレームセット内の複数のキーフレームのそれぞれに対して、前記キーフレームに続く第2のデルタフレームセットとを含み、前記第2のキーフレームセットが、前記第1のキーフレームセットよりも少ないキーフレームを含む、ステップ;および
記第2のディストリビューション層を含む前記ライブメディアストリームを前記クライアントデバイスに通信するステップ
を実行させる、メモリを
備えるデバイス。
【請求項8】
前記命令が、更に、前記プロセッサに、
発信元クライアントデバイスからのライブストリーミングデータを受信させそして
前記ライブストリーミングデータをエンコードさせて、前記第1のディストリビューション層前記第2のディストリビューション層を含む前記ライブメディアストリームを生成させる、
請求項に記載のデバイス。
【請求項9】
前記命令が、更に、前記プロセッサに、送信元デバイスからの前記第1のディストリビューション層を受信させる、請求項に記載のデバイス。
【請求項10】
前記ライブメディアストリームを取得するステップが、
中間サーバが、送信元サーバから、前記第1のディストリビューション層を受信するステップであって、前記第1のディストリビューション層が、前記送信元サーバによって生成される、ステップ
前記中間サーバが、前記クライアントデバイスからの前記ライブメディアストリームの前記レンダリングを変更する前記指示の受信に基づいて、前記第2のディストリビューション層を生成するステップそして
前記中間サーバが、前記第1のディストリビューション層と前記第2のディストリビューション層の両方を前記クライアントデバイスに通信するステッ
備える、請求項に記載のデバイス
【請求項11】
前記第1のディストリビューション層が、第1のビットレートを含み、そして前記第2のディストリビューション層が、前記第1のビットレートとは異なる第2のビットレートを含む、請求項に記載のデバイス
【請求項12】
前記クライアントデバイスが、前記ライブメディアストリームの新しいサブスクライバであるという決定に基づいて、前記第2のディストリビューション層を生成するステップを、更に、備える、請求項7に記載のデバイス。
【請求項13】
前記第2のディストリビューション層を生成するステップが、
前記クライアントデバイスによる前記ライブメディアストリームのサブスクリプション時刻と、前記第1のキーフレームセット内の次のキーフレームの時刻との間の時間間隔が、閾値時間間隔よりも大であると決定するステップ;および
前記時間間隔が前記閾値時間間隔よりも大であるとの決定に応答して、前記第2のディストリビューション層を生成するステップ
を、更に、備える、請求項7に記載のデバイス。
【請求項14】
コンピュータプログラム命令を記憶する非一時的コンピュータ可読記憶媒体であって、
前記コンピュータプログラム命令が、プロセッサによって実行されると、前記プロセッサに、以下のステップ:
第1のディストリビューション層を含むライブメディアストリームを取得するステップであって、前記第1のディストリビューション層が、第1のキーフレームセットと、前記第1のキーフレームセット内の複数のキーフレームのそれぞれに対して、前記第1のキーフレームセット内の次のキーフレームまで前記キーフレームに続く第1のデルタフレームセットとを含む、ステップ;
クライアントデバイスが、前記ライブメディアストリームのレンダリングを変更する指示を受信するステップ;および
前記指示の受信に応答して、前記ライブメディアストリームの第2のディストリビューション層を前記クライアントデバイスに通信させるステップであって、前記第2のディストリビューション層が、第2のキーフレームセットと、前記第2のキーフレームセット内の複数のキーフレームのそれぞれに対して、 前記キーフレームに続く第2のデルタフレームセットとを含み、前記第2のキーフレームセットが、前記第1のキーフレームセットよりも少ないキーフレームを含み、そして前記第2のキーフレームセット内の選択されたキーフレームが、前記クライアントデバイスが、 前記第1のディストリビューション層の前記第1のデルタフレームセットの内の1つのレンダリングから、前記選択されたキーフレームから始まる前記第2のディストリビューション層のレンダリングに切り替えることを可能にする、ステップ
を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項15】
前記コンピュータプログラム命令が、更に、前記プロセッサに:
発信元クライアントデバイスからライブストリーミングデータを受信させ;そして
前記ライブストリーミングデータをエンコードさせて、前記第1のディストリビューション層と前記第2のディストリビューション層を含む前記ライブメディアストリームを生成させる、
請求項14に記載の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記コンピュータプログラム命令が、更に、前記プロセッサに:
前記第1のディストリビューション層を送信元サーバに生成させ;そして
前記クライアントデバイスからの前記ライブメディアストリームの前記レンダリングを変更する前記指示の受信に基づいて、前記第2のディストリビューション層を前記送信元サーバに生成させる、
請求項14に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記ライブメディアストリームを取得するステップが:
中間サーバが、送信元サーバから前記第1のディストリビューション層を受信するステップであって、前記第1のディストリビューション層が、前記送信元サーバによって生成される、ステップ;
前記クライアントデバイスからの前記ライブメディアストリームの前記レンダリングを変更する前記指示の受信に基づいて、前記中間サーバが、前記第2のディストリビューション層を生成するステップ;そして
前記中間サーバが、前記第1のディストリビューション層と前記第2のディストリビューション層の両方を前記クライアントデバイスに通信するステップ、
を備える、請求項14に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記第1のディストリビューション層が、第1のビットレートを含み、そして前記第2のディストリビューション層が、前記第1のビットレートとは異なる第2のビットレートを含む、請求項14に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記クライアントデバイスが、前記ライブメディアストリームの新しいサブスクライバであるとの決定に基づいて、前記第2のディストリビューション層を生成するステップを、更に、備える、請求項14に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記第2のディストリビューション層を生成するステップが:
前記クライアントデバイスによる前記ライブメディアストリームのサブスクリプション時刻と、前記第1のキーフレームセット内の次のキーフレームの時刻との間の時間間隔が、閾値時間間隔よりも大であると決定するステップ;および
前記時間間隔が前記閾値時間間隔よりも大であるとの決定に応答して、前記第2のディストリビューション層を生成するステップ
を備える、請求項14に記載の非一時的コンピュータ可読記憶媒体。