(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-14
(45)【発行日】2023-09-25
(54)【発明の名称】マルチティアドエンコーディングを有するデータを配信するためのシステム、デバイス、及び方法
(51)【国際特許分類】
H04N 21/2385 20110101AFI20230915BHJP
H04N 21/2662 20110101ALI20230915BHJP
【FI】
H04N21/2385
H04N21/2662
(21)【出願番号】P 2021147026
(22)【出願日】2021-09-09
(62)【分割の表示】P 2018503699の分割
【原出願日】2016-04-08
【審査請求日】2021-10-04
(32)【優先日】2015-04-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517351983
【氏名又は名称】デジェロ ラブス インコーポレイテッド
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100191086
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】サイズ,デイビッド
(72)【発明者】
【氏名】スミス,キャメロン ケニス
(72)【発明者】
【氏名】シュナイダー,トッド
(72)【発明者】
【氏名】フルシナ,ボグダン
【審査官】醍醐 一貴
(56)【参考文献】
【文献】米国特許出願公開第2011/0188567(US,A1)
【文献】米国特許出願公開第2014/0313281(US,A1)
【文献】特開2009-027440(JP,A)
【文献】特表2004-533748(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
H04L 47/2416
(57)【特許請求の範囲】
【請求項1】
複数のデータ通信装置と複数のエンドポイントとの間のデータストリームを通信するためのシステムであって、前記システムは、
前記複数のデータ通信装置と前記複数のエンドポイントとの間の通信特徴を監視し、かつ前記通信特徴に基づく複数のグループにおけるデータ通信装置のグルーピングを調整するように構成される、少なくとも1つのプロセッサであって、
複数のエンコーダの各エンコーダは少なくとも1つのエンコードパラメータによってデータストリームをエンコードするように構成され、かつ前記複数のエンコーダが、少なくとも1つの通信特徴に基づき前記複数のグループに編成された複数のデータ通信装置に接続され、各エンコーダの前記少なくとも1つのエンコードパラメータは、前記エンコーダに対応するグループの対応するエンドポイントのセットの前記少なくとも1つの通信特徴の最小特徴に基づき確立されており、
各グループのデータ通信装置は前記エンコーダのうち関連する1つからエンコードされたデータを受信するように構成され、かつ
前記複数のデータ通信装置の各データ通信装置は、前記エンコードされたデータを前記複数のエンドポイントのうち関連する1つに伝送するように構成される、
少なくとも1つのプロセッサ、を備えるシステム。
【請求項2】
前記グループのうち少なくとも複数のグループはランク付けされたティアに対応し、前記ランク付けされたティアは前記少なくとも1つの通信特徴によってランク付けされる、請求項1に記載のシステム。
【請求項3】
前記少なくとも1つのプロセッサは、前記複数のグループ内の前記データ通信装置のグルーピングを調整するように構成され、前記少なくとも1つのプロセッサは以下の処理を実行するように構成される、請求項2に記載のシステム:
グループ調整条件をトリガとして判定する場合、現在のグループの現在のメンバーであるターゲットデータ通信装置に関する新しいグループを決定する、前記新しいグループは、前記複数のデータ通信装置と前記複数のエンドポイントとの間の監視された前記通信特徴に基づいて決定されている;
前記現在のグループによって処理された現在のフレームナンバーが前記新しいグループによって処理された新しいフレームナンバーと一致するか否かを決定する;かつ
前記現在のフレームナンバーが前記新しいフレームナンバーと一致しないと決定した場合には、前記ターゲットデータ通信装置を操作して、前記新しいグループに対応する前記エンコーダと同期して前記現在のフレームナンバーと前記新しいフレームナンバーをコーディネートさせるべく、1つまたは複数の制御信号を生成し送信する。
【請求項4】
前記現在のフレームナンバーが前記新しいフレームナンバーよりも大きい場合、前記データ通信装置の前記操作を同期させるべく、前記少なくとも1つのプロセッサは以下の処理を実行するように構成される、請求項3に記載のシステム:
前記現在のグループに対応するエンコーダに制御信号を送信して、前記ターゲットデータ通信装置を前記現在のグループから接続解除し、かつ制御信号を前記データ通信装置に送信して、前記新しいグループに対応するエンコーダによって提供されるフレームが前記現在のフレームナンバーに到達するまで、前記新しいグループに対応する前記エンコーダによって提供されるフレームを廃棄する。
【請求項5】
前記現在のフレームナンバーが前記新しいフレームナンバーよりも小さい場合、前記データ通信装置の前記操作を同期させるべく、前記少なくとも1つのプロセッサは以下の処理を実行するように構成される、請求項3に記載のシステム:
前記現在のグループおよび前記新しいグループの両方において、前記ターゲットデータ通信装置のグルーピングを維持し、かつ現在のグループに対応する前記エンコーダによって提供される前記フレームが前記新しいグループに対応する前記エンコーダによって提供される最先のフレームと一致するまで、ソートされたキューの中で前記新しいグループに対応する前記エンコーダによって提供されるフレームを保存し、前記少なくとも1つのプロセッサが、制御信号を、前記ターゲットデータ通信装置の接続を解除している前記現在のグループに対応する前記エンコーダに送信するように構成されている場合は、制御信号を前記データ通信装置に送信して前記ソートされたキューの中に保存された前記フレームを処置する。
【請求項6】
前記複数のエンコーダの各々のエンコーダは、前記通信特徴に基づいて前記少なくとも1つのエンコードパラメータを定期的に更新するように構成される、請求項1に記載のシステム。
【請求項7】
前記少なくとも1つのプロセッサは、前記複数のエンコーダのうちの1つのエンコーダと関連付けている各々の負荷状態を監視するように構成され、かつ所定の負荷状態値よりも大きな負荷状態を検出した場合には、新しいエンコーダおよび対応する新しいグループを提供して、前記複数のグループ内の前記データ通信装置のグルーピングを調整し、前記データ通信装置が前記複数のグループの中で実質的に一様に分散されるように構成される、請求項1に記載のシステム。
【請求項8】
前記システムは、データソースから受信したデコードデータを受信し、かつ前記デコードデータを前記複数のエンコーダの各々に提供するように構成された検出器を備える、請求項1に記載のシステム。
【請求項9】
前記システムは、複数のデコーダを備え、各デコーダは複数のエンコーダのうちの少なくとも1つと関連付けされており、各デコーダはデータソースから受信したデータをデコードし、かつデコードデータを前記関連付けされたエンコーダに提供するように構成される、請求項1に記載のシステム。
【請求項10】
前記少なくとも1つの通信特徴は、ビットレート、レイテンシー、個々のエンコード化と関連するエンコード化のエラー率、構造的類似性の指標、画像類似性の指標、およびパケット損失率のうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項11】
複数のデータ通信装置と複数のエンドポイントとの間のデータストリームの通信のためのコンピュータにより実行される方法であって:
少なくとも1つのプロセッサによって、前記複数のデータ通信装置と前記複数のエンドポイントとの間の通信特徴を監視する工程a;
前記通信特徴を基に、複数のグループ内の前記複数のデータ通信装置のグルーピングを調整する工程b、
を包含し、
複数のエンコーダは少なくとも1つのエンコードパラメータによってデータストリームをエンコードするように構成され、かつ前記複数のデータ通信装置は少なくとも1つの通信特徴に基づいて前記複数のグループに編成されており、各々のエンコーダの前記少なくとも1つのエンコードパラメータは、前記エンコーダに対応するグループの対応するエンドポイントのセットの前記すくなくとも1つの通信特徴の最小特徴に基づき確立されており、
データ通信装置の各々のグループは、エンコードされたデータを複数の前記エンコーダのうち関連する1つと通信するように構成され、前記エンコーダは前記複数のエンドポイントのうち関連する1つとデータ通信するように構成される、方法。
【請求項12】
少なくとも複数の前記グループはランク付けされたティアと対応し、前記ランク付けされたティアは前記少なくとも1つの通信特徴によってランク付けされる、請求項11に記載の方法。
【請求項13】
前記工程bはさらに:
グループ調整条件をトリガとして判定する場合、現在のグループの現在のメンバーであるターゲットデータ通信装置に関する新しいグループを決定する工程b1であって、前記新しいグループが、前記複数のデータ通信装置と前記複数のエンドポイントとの間の監視された前記通信特徴に基づいて決定されている、工程b1;
前記現在のグループによって処理された現在のフレームナンバーが前記新しいグループによって処理された新しいフレームナンバーと一致するか否かを決定する工程b2;および
前記現在のフレームナンバーが前記新しいフレームナンバーと一致しないと決定した場合には、前記ターゲットデータ通信装置を前記新しいグループに対応する前記エンコーダと同期操作して、前記現在のフレームナンバーと前記新しいフレームナンバーをコーディネートさせるべく、1つまたは複数の制御信号を生成し送信する工程b3、
を包含する、請求項12に記載の方法。
【請求項14】
前記工程b3において、前記現在のフレームナンバーが前記新しいフレームナンバーよりも大きい場合、前記データ通信装置の前記操作を同期させるべく、前記現在のグループに対応するエンコーダに制御信号を送信して、前記ターゲットデータ通信装置を前記現在のグループから接続解除し、かつ制御信号を前記データ通信装置に送信して、前記新しいグループに対応するエンコーダによって提供されるフレームが前記現在のフレームナンバーに到達するまで、前記新しいグループに対応する前記エンコーダによって提供されるフレームを廃棄する工程を包含する、請求項13に記載の方法。
【請求項15】
前記工程b3において、前記現在のフレームナンバーが前記新しいフレームナンバーよりも小さい場合、前記データ通信装置の前記操作を同期させるべく、
前記現在のグループおよび前記新しいグループの両方において、前記ターゲットデータ通信装置のグルーピングを維持する工程、
現在のグループに対応する前記エンコーダによって提供される前記フレームが前記新しいグループに対応する前記エンコーダによって提供される最先のフレームと一致するまで、ソートされたキューの中で前記新しいグループに対応する前記エンコーダによって提供されるフレームを保存する工程、
現在のグループに対応する前記エンコーダによって提供される前記フレームが前記新しいグループに対応する前記エンコーダによって提供される前記最先のフレームと一致する場合、制御信号を、前記ターゲットデータ通信装置と接続を解除している現在のグループに対応する前記エンコーダに送信する工程、
制御信号を前記データ通信装置に送信して前記ソートされたキューに保存された前記フレームを処理する工程、
を包含する請求項13に記載の方法。
【請求項16】
前記複数のエンコーダの各々のエンコーダは、前記通信特徴に基づいて前記少なくとも1つのエンコードパラメータを定期的に更新するように構成される、請求項11に記載の方法。
【請求項17】
前記複数のエンコーダのうちの1つのエンコーダと関連付けている各々の負荷状態を監視する工程であって、所定の負荷状態値よりも大きな負荷状態を検出した場合には、新しいエンコーダおよび対応する新しいグループを提供して、前記複数のグループ内の前記データ通信装置のグルーピングを調整し、前記データ通信装置が前記複数のグループの中で実質的に一様に分散される、工程を包含する請求項11に記載の方法。
【請求項18】
デコーダがデータソースから受信したデコードデータを受信し、かつ前記デコードデータを前記複数のエンコーダの各々に提供する工程を包含する、請求項11に記載の方法。
【請求項19】
複数のデコーダを備え、各デコーダは複数のエンコーダのうちの少なくとも1つと関連付けされており、各デコーダはデータソースから受信したデータをデコードし、かつデコードデータを前記関連付けされたエンコーダに提供する工程を包含する、請求項11に記載の方法。
【請求項20】
前記少なくとも1つの通信特徴は、ビットレート、レイテンシー、個々のエンコード化と関連するエンコード化のエラー率、構造的類似性の指標、画像類似性の指標、およびパケット損失率のうちの少なくとも1つを含む、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
相互参照
本願は、参照により本明細書に組み込まれる2015年4月9日に出願された「SYSTEMS DEVICES AND METHODS FOR DISTRIBUTING DATA WITH MULTI-TIERED ENCODING」と題する米国特許出願第62/145,363号の非仮特許出願であり、その優先権を含むそのすべての利益を主張するものである。
【0002】
本開示は、一般に、データ通信に関し、より具体的には、限定はされないがビデオ送信器と受信器との間のデータ通信のためのシステム、デバイス、方法、及びコンピュータプログラム製品に関する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
1つの場所から複数のエンドポイントへのライブビデオ又は他のデータの伝送は、いくつかの産業にわたる共通の課題である。広い地域にわたる多数のテレビステーションに伝送される必要があるブロードキャスト品質のライブショットから、第一対応者及びコントロールセンターのスタッフを含む様々なユーザが入手できる必要があるセキュリティ又は緊急シーン情報に至るまで、この情報を、費用効果の高い且つ信頼できる様態で伝達することが望ましい場合がある。
【0004】
受信器エンドポイントの一部(例えば、TVスタジオ)は、入来するビデオの品質及び待ち時間に関する様々な規定要件を有する場合があり、又は不適切な又は一貫性のない伝送網に起因する高品質で短い待ち時間のビデオを受信する際に課題を有する場合がある。
【課題を解決するための手段】
【0005】
一態様では、データストリームを複数のエンドポイントに伝送するためのシステムであって、それぞれ少なくとも1つのエンコーディングパラメータに従ってデータストリームをエンコードするように構成された複数のエンコーダと、少なくとも1つの伝送特徴に基づいて複数のグループに編成される複数の仮想送信器と、仮想送信器の各グループは、エンコーダのうちの関連する1つからエンコードされたデータを受信するように構成され、複数の仮想送信器のうちの各仮想送信器は、エンコードされたデータを複数のエンドポイントのうちの関連する1つに伝送するように構成され、複数の仮想送信器の伝送特徴を監視し、監視される伝送特徴に基づいて複数のグループにおける仮想送信器のメンバーシップを調整するように構成された少なくとも1つのコントローラと、を備えるシステムが提供される。
【0006】
別の態様では、グループのうちの少なくとも2つは、少なくとも1つの伝送特徴に従ってランク付けされる、ランク付けされたティアに対応する。
【0007】
別の態様では、少なくとも1つのコントローラは、複数のグループにおける仮想送信器のメンバーシップを調整するように構成され、少なくとも1つのコントローラは、グループメンバーシップ調整条件がトリガされていると判定すると、現在のグループの現在のメンバーであるターゲット仮想送信器に関する新しいグループを決定し、新しいグループは監視される伝送特徴に基づいており、現在のグループによって処理されている現在のフレームナンバーが新しいグループによって処理されている新しいフレームナンバーと一致するかどうかを判定し、新しいグループのメンバーとしてターゲット仮想送信器のプロビジョニングを要求する制御信号を生成し、新しいグループに対応するエンコーダに伝送し、新しいグループに対応するエンコーダからのキーフレームを要求し、現在のフレームナンバーが新しいフレームナンバーと一致しないと判定すると、ターゲット仮想送信器を新しいグループに対応するエンコーダと同期させるべく1つ又は複数の制御信号を生成又は伝送するように構成される。
【0008】
別の態様では、現在のフレームナンバーが新しいフレームナンバーよりも大きいときに仮想送信器を同期させるために、少なくとも1つのコントローラは、ターゲット仮想送信器のメンバーシップを終了する現在のグループに対応するエンコーダに制御信号を伝送し、新しいグループに対応するエンコーダによって提供されるフレームが現在のフレームナンバーに達するまで新しいグループに対応するエンコーダによって提供されるフレームを廃棄するべく仮想送信器に制御信号を伝送するように構成される。
【0009】
別の態様では、現在のフレームナンバーが新しいフレームナンバーよりも小さいときに仮想送信器を同期させるために、少なくとも1つのコントローラは、現在のグループと新しいグループとの両方におけるターゲット仮想送信器のメンバーシップを維持し、現在のグループに対応するエンコーダによって提供されるフレームが新しいグループに対応するエンコーダによって提供される最先のフレームと一致するまで新しいグループに対応するエンコーダによって提供されるフレームをソートされるキューに格納するように構成され、一致すると、少なくとも1つのコントローラは、ターゲット仮想送信器のメンバーシップを終了する現在のグループに対応するエンコーダに制御信号を伝送し、ソートされるキューに格納されたフレームを処理するべく仮想送信器に制御信号を伝送するように構成される。
【0010】
別の態様では、複数のエンコーダのうちの各エンコーダは、該エンコーダに対応するグループのメンバーである複数の仮想送信器において最も低い伝送特徴に従ってデータストリームをエンコードするように構成される。
【0011】
別の態様では、少なくとも1つのコントローラは、複数のエンコーダのうちの1つのエンコーダとそれぞれ関連付けられる負荷状態を監視し、所定の負荷状態値を上回る負荷状態を検出すると、新しいエンコーダ及び対応する新しいグループをプロビジョンし、仮想送信器が複数のグループ間で実質的に一様に分散されるように複数のグループにおける仮想送信器のメンバーシップを調整するように構成される。
【0012】
別の態様では、システムは、データソースから受信したデータをデコードし、デコードされたデータを複数のエンコーダのそれぞれに提供するように構成されたデコーダをさらに備える。
【0013】
別の態様では、システムは、それぞれ複数のエンコーダのうちの少なくとも1つと関連付けられ、それぞれデータソースから受信したデータをデコードし、デコードされたデータを関連するエンコーダに提供するように構成された、複数のデコーダをさらに備える。
【0014】
別の態様では、少なくとも1つの伝送特徴は、ビットレート、待ち時間、個々のエンコーディングに対するエンコーディングエラー率、構造的類似性メトリック、ピクチャ類似性インデックス、及びパケット損失率のうちの少なくとも1つを含む。
【0015】
別の態様では、データストリームを複数のエンドポイントに伝送するためのコンピュータで実施される方法であって、少なくとも1つのコントローラによって、複数の仮想送信器の伝送特徴を監視することと、監視される伝送特徴に基づいて複数のグループにおける仮想送信器のメンバーシップを調整することと、を含み、複数のエンコーダが、それぞれ、少なくとも1つのエンコーディングパラメータに従ってデータストリームをエンコードするように構成され、複数の仮想送信器が、少なくとも1つの監視される伝送特徴に基づいて複数のグループに編成され、仮想送信器の各グループが、エンコーダのうちの関連する1つからエンコードされたデータを受信するように構成され、複数の仮想送信器のうちの各仮想送信器が、エンコードされたデータを複数のエンドポイントのうちの関連する1つに伝送するように構成される、方法が提供される。
【0016】
別の態様では、グループのうちの少なくとも2つは、少なくとも1つの伝送特徴に従ってランク付けされる、ランク付けされたティアに対応する。
【0017】
別の態様では、複数のグループにおける仮想送信器のメンバーシップを調整することはグループメンバーシップ調整条件がトリガされていると判定すると、現在のグループの現在のメンバーであるターゲット仮想送信器に関する新しいグループを決定することと、新しいグループは監視される伝送特徴に基づいており、現在のグループによって処理されている現在のフレームナンバーが新しいグループによって処理されている新しいフレームナンバーと一致するかどうかを判定することと、新しいグループのメンバーとしてターゲット仮想送信器のプロビジョニングを要求する制御信号を生成し、新しいグループに対応するエンコーダに伝送することと、新しいグループに対応するエンコーダからのキーフレームを要求することと、現在のフレームナンバーが新しいフレームナンバーと一致しないと判定すると、ターゲット仮想送信器を新しいグループに対応するエンコーダと同期させるべく1つ又は複数の制御信号を生成又は伝送することをさらに含む。
【0018】
別の態様では、現在のフレームナンバーが新しいフレームナンバーよりも大きいときに仮想送信器を同期させるために、方法は、ターゲット仮想送信器のメンバーシップを終了する現在のグループに対応するエンコーダに制御信号を伝送することと、新しいグループに対応するエンコーダによって提供されるフレームが現在のフレームナンバーに達するまで新しいグループに対応するエンコーダによって提供されるフレームを廃棄するべく仮想送信器に制御信号を伝送することをさらに含む。
【0019】
別の態様では、現在のフレームナンバーが新しいフレームナンバーよりも小さいときに仮想送信器を同期させるために、方法は、現在のグループと新しいグループとの両方におけるターゲット仮想送信器のメンバーシップを維持することと、現在のグループに対応するエンコーダによって提供されるフレームが新しいグループに対応するエンコーダによって提供される最先のフレームと一致するまで新しいグループに対応するエンコーダによって提供されるフレームをソートされるキューに格納することと、現在のグループに対応するエンコーダによって提供されるフレームが新しいグループに対応するエンコーダによって提供される最先のフレームと一致するときに、ターゲット仮想送信器のメンバーシップを終了する現在のグループに対応するエンコーダに制御信号を伝送することと、ソートされるキューに格納されたフレームを処理するべく仮想送信器に制御信号を伝送することをさらに含む。
【0020】
別の態様では、複数のエンコーダのうちの各エンコーダは、エンコーダに対応するグループのメンバーである複数の仮想送信器において最も低い伝送特徴に従ってデータストリームをエンコードするように構成される。
【0021】
別の態様では、方法は、複数のエンコーダのうちの1つのエンコーダとそれぞれ関連付けられる負荷状態を監視することと、所定の負荷状態値を上回る負荷状態を検出すると、新しいエンコーダ及び対応する新しいグループをプロビジョンすることと、仮想送信器が複数のグループ間で実質的に一様に分散されるように複数のグループにおける仮想送信器のメンバーシップを調整することをさらに含む。
【0022】
別の態様では、方法は、データソースから受信したデータをデコードし、デコードされたデータを複数のエンコーダのそれぞれに提供するように構成されたデコーダをさらに備える。
【0023】
別の態様では、方法は、それぞれ複数のエンコーダのうちの少なくとも1つと関連付けられ、それぞれデータソースから受信したデータをデコードし、デコードされたデータを関連するエンコーダに提供するように構成された、複数のデコーダをさらに備える。
【0024】
別の態様では、少なくとも1つの伝送特徴は、ビットレート、待ち時間、個々のエンコーディングに対するエンコーディングエラー率、構造的類似性メトリック、ピクチャ類似性インデックス、及びパケット損失率のうちの少なくとも1つを含む。
【0025】
図面では、実施形態が例として例示される。説明及び図面は、理解の助けとして単に例示するためのものであることが明確に理解される。
【0026】
ここで実施形態が単なる例として添付の図面を参照して説明される。
【図面の簡単な説明】
【0027】
【
図1】一部の実施形態に係る1つの多地点配信(MPD)ノードを有するシステムの例示的な概略図である。
【
図2A】一部の実施形態に係る
図1のシステムにおける仮想送信器がティア間を移動する前の例を示す図である。
【
図2B】一部の実施形態に係る
図1のシステムにおける仮想送信器がティア間を移動した後の例を示す図である。
【
図3A】一部の実施形態に係る複数の複製されたMPDノードを有するシステムの例示的な概略図である。
【
図3B】一部の実施形態に係る複数の複製されたMPDノードを有するシステムの例示的な概略図である。
【
図3C】一部の実施形態に係る複数の複製されたMPDノードを有するシステムの例示的な概略図である。
【
図4A】一部の実施形態に係る複数のMPDノードによってサービスされる複数の送信器を有するシステムの例示的な概略図である。
【
図4B】一部の実施形態に係る複数の複製された仮想送信器ブロックを有するシステムの例示的な概略図である。
【
図5】一部の実施形態に係るクロックを同期させるための方法を例示するサンプルワークフロー図である。
【
図6】一部の実施形態に係るコンピューティングデバイスの概略図である。
【
図7】一部の実施形態に係るマルチティアドエンコーディングを有するデータを配信するための方法を例示するワークフローである。
【
図8】一部の実施形態に係る2つの異なるティア間で仮想送信器を調整するための方法を例示するワークフローである。
【発明を実施するための形態】
【0028】
実装に用いるのに適した方法、システム、及び装置の実施形態が、図面の参照を通じて説明される。以下の説明は、発明的な主題の多くの例示的な実施形態を提供する。
【0029】
市場で入手可能な一部のソリューションは、適切な品質又は一貫性を可能にしない、かつ異なるフィードを生成するのに過度の計算を必要とする個別化されたウェブストリーム、又は容易にカスタマイズ可能な顧客の組がビデオを受信する又はその製作者と対話することを可能にしないネットワーク又はステーショングループ内のステーション間の費用のかかる専用のデータリンクを含む。
【0030】
一部の実施形態では、エンドポイント間の通信を容易にするシステムが提供される。種々のタイプのエンドポイントが存在する場合があり、受信することができるエンドポイント(受信器)、送信することができるエンドポイント(送信器)、及び/又は送信と受信との両方が別々に又は同時に可能であり得るエンドポイント(トランシーバ)が存在する場合がある。
【0031】
通信される信号は、種々の形態の情報を表す場合があり、アナログ及び/又はデジタルである場合がある。種々の形態の情報は、メディア情報(例えば、ビデオ、オーディオ、テキスト、マルチメディアプレゼンテーション、スライドプレゼンテーション、サブタイトル、3Dレンダリング情報、及びその組合せ)、メタデータ情報(例えば、ブックマーク、アノテーション、コメント、パリティ)、ヘッダ情報などを含む場合がある。これらのソースは、種々の特性を有する情報を運ぶ(例えば、アナログ、デジタル、圧縮された、スクランブルをかけられた、暗号化された、及び/又はデコードされた)信号を提供する場合がある。ソースからの信号はまた、信頼できない又はノイズのある通信チャネルを通って移動する信号に関する情報の品質を改善するために用いられる種々のエラー訂正技術、ハンドシェーキング技術、冗長技術、及び/又はエンコーディング技術と関連付けられる場合がある。
【0032】
伝送ソースが上述の情報信号を主に伝送している間に、ブロードキャスト環境で監視及びキューイングするのに必要とされる情報信号(例えば、IFB(interruptible foldback))などの逆方向に進む情報信号も存在する場合がある。
【0033】
信号(順方向と逆方向との両方)は、インターネット、ポイント・ツー・ポイントリンク機構、イントラネット、ピア・ツー・ピアネットワークなどの種々の通信メディア及びトポロジーを通って伝送される場合がある。信号はまた、有線及び/又は無線(例えば、マイクロ波、Bluetooth(登録商標)、セルラー技術)などの種々の通信技術を用いて伝送される場合がある。
【0034】
信号は、メディア情報などの情報を運ぶフレームと、情報の種々の要素(例えば、遷移、伝送)の始点及び終点を示すのに用いられるキーフレームとの両方を含む場合がある。キーフレームは、iフレーム、IDR(instantaneous decorder refresh)フレームなどの種々のタイプのキーフレームを含む場合がある。1つのタイプのキーフレームが本明細書で言及されるが、他のタイプのキーフレームが使用される場合もある。
【0035】
一部の実施形態では、システムは、情報を配信するための1つ又は複数のプロキシを使用する場合がある。例えば、これらのプロキシは、エンコードされたストリームを受信し、これを1つ又は複数の他のプロキシ及び/又は1つ又は複数のデコーダに繰り返すように構成されてよい。1つ又は複数のプロキシの使用は、デプロイメントのサイズ及び/又はスケールに依存する場合があり、例えば、プロキシは、複数のデコーダをホストするクラウドコンピューティングリソース、ソース送信器、及び/又は送信器及び/又はデコーダ間の種々の通信リンク上の負荷を軽減する一助となり得る。プロキシの層(例えば、中間プロキシの1つ又は複数の層にフィードするマスタープロキシ)が存在する場合がある。プロキシの層は、一部の実施形態では、プロキシの階層として編成される。プロキシは、1つ又は複数のマスターコントローラによって制御される場合があり、又は、例えば、中間コントローラによって制御される1つ又は複数の中間プロキシが存在する場合がある。
【0036】
プロキシは、ソースから紛失した情報パケットを要求する、ソースから紛失した情報パケットを前方エラー訂正(FEC)に基づいて再構築する、エンコードされた情報パケットをプロキシ及び/又はデコーダの階層における次の下流のコンポーネントのそれぞれに伝送する、失われたパケットの再送を取り扱う、下流のコンポーネントから受信したキーフレームオンデマンド要求をソースに転送する、IFB機能(例えば、下流のコンポーネントから受信したIFBパケットをデコードし、これらを単一のオーディオストリームへ混合し、このストリームを再エンコードし、次いで、これをソースに送信する)を提供する、下流のコンポーネントによって報告される負荷を追跡する、ディスパッチャからの要求を取り扱う(例えば、階層における最小の負荷を有する下流のコンピューティングリソースにデリゲートし、別の下流のコンピューティングリソースを追加し、空の下流のコンピューティングリソースを除去し、アクティブストリームを階層における或るレベルから別のレベルに遷移させることによってエンドポイント/受信器への仮想伝送を開始する)などの他の機能を提供するように構成されてよい。
【0037】
仮想送信器は、エンドポイントとエンコーダとの間で確立される通信リンクを提供する又はこれとインターフェースする場合があり、仮想送信器は、エンドポイントとの間で情報を伝送するために用いられる。仮想送信器は、一方向又は双方向である場合があり、情報は、特に、コンテンツデータ、付属のデータ(例えば、サブタイトル、ロゴ、オーバーレイされたイメージ)、メタデータ、制御データ、信号データ、エラー訂正データを含む場合がある。仮想送信器は、例えば、物理アンテナアレイ、有線リンク機構、セルラー接続、ボンディングされた接続などを通じて提供される場合がある。仮想送信器は、特に、それぞれ種々の伝送特徴(例えば、特に、スループット、待ち時間、パケット損失、暗号化、プロトコル)を有する種々のチャネル及びサブチャネルを動作させる場合がある。仮想送信器は、例えば、特に、ネットワーク伝送特徴、エンドポイント特徴、要求される情報信号特徴、負荷状態、動作状態を表す電気信号を通信する1つ又は複数のコントローラと通信するように構成されてよい。
【0038】
例証となる限定ではない例として、「仮想」対「物理」は、システムのユーザの観点から考えられてよい。例えば、物理送信器では、ユーザは、1台の機器を所有し、ユーザは、この機器にビデオソース(例えば、カメラ)を繋ぎ、これを宛先に割り当て、この機器に付随する任意のネットワーク接続(例えば、セルモデム、WiFi、イーサネット(登録商標)など)上で伝送を開始する。
【0039】
仮想送信器に関して、ユーザは、特定のハードウェアを見ない/所有しない場合があるが、むしろ、一部の実施形態では、サービスは、クラウドにおいて又は分散されたリソースを用いて実行される場合があり、この場合、ビデオソースは、(カメラのように)直接のソースではないが、代わりに、間接的なソースである(物理送信器からのライブフィード、又はディスク(又は他のメディア)上のファイルなど)。伝送は、その上で仮想送信器が実行するクラウドサーバ(又は分散されたリソース)に存在するネットワーク接続上で行われる。
【0040】
仮想送信器は、種々の信号圧縮/エンコーディング(例えば、多重化/シンプレックス信号、デュープレクシング、時分割、周波数分割、コード分割、変調)、冗長性(例えば、パリティチェック及び/又はクローン信号を送信する)、及び/又はエラーエンコーディング/訂正技術(例えば、ハンドシェイク、エコーキャンセル)の使用を組み込む場合がある本質的にアナログ及び/又はデジタルの信号を送信する場合がある。これらの信号は、1つ又は複数の通信リンク上で伝送される場合がある。
【0041】
一部の実施形態では、仮想送信器は、例えば、コード化された命令セット、マシンレベル命令、オブジェクトコードなどを含む制御コマンドを受信又は生成するように構成される。これらの制御コマンドは、仮想送信器の動作特徴が修正されるように、コントローラ又はエンコーダに送信される場合があり、又はコントローラ又はエンコーダから受信する場合がある。例えば、仮想送信器は、エンドポイントとエンコーダとの間のリンクを提供するように適応される場合があり、仮想送信器は、2つのエンドポイント及びエンコーダとのリンク機構を確立する、リンク機構を断つように構成されてよい。例えば、仮想送信器は、仮想送信器が1つのエンコーディンググループ(例えば、ティア)から別のエンコーディンググループに移動している場合に、第2のエンコーダが有利になるように第1のエンコーダとの接続を断つことを仮想送信器に要求する制御命令セットを受信する場合がある。
【0042】
システムは、ボンディングされた通信リンクを形成するべく通信リンクをボンドするように構成された1つ又は複数のボンディングコンポーネントを含む場合がある。通信リンクは、両方の内容が参照により本明細書に組み込まれるFrusina及びHorvath(以下、’560特許と称す)の米国特許第8,873,560号又はSze他の米国特許第8,984,576号(以下、‘576特許と称す)に記載されるのと類似した様態でボンドされる場合がある。例えば、システムは、データ通信を、ディスアセンブルされた形態で複数の無線周波数(RF)インターフェース(例えば、モデム)によって複数の通信リンク上で伝送される複数のデータストリームに分割することができる。このようなディスアセンブリは、例えば、1つのデータソースからのパケットを複数のRFインターフェース上で伝送すること、パケットをアウトオブオーダーで伝送すること、冗長パケットを伝送すること、紛失したパケットを再伝送すること、前方エラー訂正(FEC)データを計算し、伝送することなどを含む場合がある。システムはまた、ボンディングされた通信リンク上のデータ通信がボンディングされたリンクを通じて伝送されたときに、使用するために再アセンブルされる又は他の方法で再構築されることを可能にするように構成された、1つ又は複数の相補的なデボンディングコンポーネントを含む場合がある。このような再アセンブリは、例えば、データパケットを再び順序付けること、データパケットを再アセンブルすること、紛失したデータパケットを再要求すること、紛失したパケットをFECデータに基づいて再計算することなどを含む場合がある。
【0043】
一部の実施形態では、信号は、伝送のために、エンコード/トランスコード及び/又は他の方法で変換される場合があり、例えば、信号は、特定のエンコーディングスキームに基づいて(例えば、種々のコーデック、振幅変調、周波数変調、コード分割マルチアクセススキーム、周波数分割マルチアクセススキーム、時分割マルチアクセススキーム、直交位相シフトキーイングスキームを用いて)変調され、(例えば、パブリック/秘密キーペアを用いて)暗号化され、スクランブルをかけられ、フィルタされ、デジタル化され、エンハンスされ、劣化され、圧縮される場合などがある。付加的な情報(例えば、ロゴ、広告、タイムスタンプ、ジオコーディング、オーディオ又はグラフィカルオーバーレイ)が種々の目的で信号に添付又はマージされる場合がある。
【0044】
第1の実施形態において、1つ又は複数のエンドポイントの第1の組から信号を受信し、1つ又は複数のエンドポイントの第2の組を1つ又は複数のグループへグループ化し、受信した信号のエンコーディングを行うためのシステムが提供され、この場合、データのエンコーディングは、グループメンバーの特徴のうちの少なくとも1つに基づいている。1つ又は複数のエンコーダが、グループのそれぞれにつき少なくとも1つのエンコーダとしてプロビジョンされる場合があり、エンコーダは、グループを構成するエンドポイントの最低特徴に基づいて信号をエンコードするように構成される。
【0045】
一部の実施形態によれば、エンコーディングのためのエンドポイントのグループ化の潜在的利点は、エンドポイントによる使用のために信号をエンコードするのに必要とされるエンコーダの数及び/又は処理の減少であり得る。
【0046】
エンドポイントに関するグループ化を決定する際に用いられ得る種々の特徴が存在する場合があり、これらの特徴は、例えば、平均ビットレート、最低ビットレート、アフィリエート付きエンティティ(例えば、これらのエンドポイントは、同様のロゴがつけられることになる)、地理、言語(例えば、これらのエンドポイントは、スペイン語のサブタイトルを必要とする)、アクセシビリティ(例えば、これらのエンドポイントは、クローズドキャプショニングを必要とする)、ネットワークコンポーネントの考慮事項(例えば、これらのエンドポイントは、ファイアウォールの後ろにある及び/又はこれらのエンドポイントは、特定のポートを用いてのみ到達することができる)、待ち時間、送信器、エンコーダ、及びエンドポイント間の接続の信頼性、接続のアップタイム、接続の性質(例えば、一部はファイバを経由してリンクされ、他は衛星を経由してリンクされる)、オーディオ又はビデオ伝送フォーマット(例えば、適応的又は固定ビットレート、異なるエンコーディングタイプ)、異なるオーディオコンポーネント(例えば、ステレオ対5.1サラウンドサウンド)、オーディオオーバーレイの所望の言語(例えば、英語又はスペイン語解説)、時間要件(例えば、これらのエンドポイントは、PM6:30~PM8:30のみブロードキャストする)、ブロードキャストされるべきメディア(例えば、これらのエンドポイントは、オーディオのみのフィードである)、セキュリティレベル(例えば、これらのエンドポイントは、伝送に関連する或るメタデータの受信を制約される、又はこれらのエンドポイントは、或る場所からのビデオを受信してはならない、又はこれらのエンドポイントは、暗号化された伝送のみを送信しなければならない)、支払いレベル(例えば、これらのエンドポイントは、それらが購入したものに基づく特定の帯域幅又はタイムスライスに制限される)などを含む。
【0047】
グループ化は、分離され、ランク付けされ、及び優先順位付けされる場合がある。例えば、グループは、ティアにされる又はティアに設定される場合がある(例えば、ティア1は、10~50Mbpsのビットレートを有するエンドポイントの組であり、ティア2は、3~10Mbpsのビットレートを有するエンドポイントの組であり、ティア3は、0~3Mbpsのビットレートを有するエンドポイントの組である)。ティアの順番は重要な場合があり、システムの一部の実施形態において、より下位のティアを上回る優先度がより上位のティアに与えられる場合がある。このような優先度は、種々の因子に応じて経時的に変化する場合がある(例えば、ティアは、該ティアにあるエンドポイントのグループがプライムタイムニュース放送に関してスケジュールされるときに優先度が上がるが、該時間期間外の優先度は下がる場合がある)。グループ化はまた、複数の寸法にわたる場合があり、例えば、エンドポイントは、1つ又は複数のグループのメンバーである場合がある。
【0048】
例証となる限定ではない例として、それぞれ以下のビットレート、すなわち、VTx1:1.5Mbps、VTx2:2.0Mbps、VTx3:3.5Mbps、VTx4:6.0Mbps、及びVTx5:9.5Mbpsで現在送信している5つの仮想送信器が存在するシナリオを考える。
【0049】
ティア無しでは、これらの5つの別個のビットレートでビデオを再エンコードするのに十分な計算処理が存在する必要があるであろう。ティア有りでは、送信器は、例えば、ティア1:0~2.5Mbps、ティア2:2.5~5.0Mbps、及びティア3:5.0~10.0Mbpsの、グループに「ビニング」されることになる。ティア1は、VTx1、VTx2を含むことになる。ティア2は、VTx3を含むことになる。ティア3は、VTx4、VTx5を含むことになる。ティア有りでは、計算処理は、3つの別個のビットレートでのみビデオを再エンコードするのに用いられる。ティアは、例えば、特定のグループである場合があり、一部の実施形態ではランク付けされる場合があり、又は他の実施形態ではランク付けされない場合がある。例えば、ティア/グループは、速度によってだけでなく、一方向/双方向コンテンツ、エラーエンコーディング、ロゴ、サブタイトルなどに関する要件などの他の因子によって確立される場合がある。これらの因子のそれぞれは、エンコーダへの計算処理の影響を有する場合があり、より高いレベルの効率を維持するべくグループのメンバーシップが確立される(又は調整される)ことを保証する際に考慮に入れなければならない場合がある。例えば、グループのメンバーシップの決定は、エンコーダ及び/又はコントローラによってワンタイムで、周期的に、又は継続的に行われてよい。基本ケースは、別々にエンコードされている各仮想送信器に対して必要とされる計算処理を減らすために仮想送信器をグループ化することであるが、一部の実施形態では、メンバーシップは、各仮想送信器に送達されるサービスの品質(例えば、特定のグループどれくらい良く「適合」するか、仮想送信器への信号をエンコードするために必要とされるエンコーディングリソースの総量、利用可能なエンコーディングリソースの合計量に)を考慮に入れて導出される。
【0050】
グループのメンバーシップはまた、動的である場合がある。例えば、グループを構成するエンドポイントは、変化するネットワーク条件、変化する需要要件、変化するリソース利用可能性、スケジューリング、フィードへのオンデマンドアクセスのための支払いなどの種々の理由で経時的に適応することができる。
【0051】
一部の実施形態では、グループ化は、例えば、外部システムから又はエンドポイント自体から提供される場合がある。一部の実施形態では、グループ化は、感知されたリアルタイム情報(例えば、ネットワーク監視コンポーネントを用いる)、ヒストリカル情報、予測された情報、エンドポイント特徴情報(限定はされないが、場所、支払いステータス、セキュリティクリアランスレベルなど)などの情報を用いてシステムによって決定される場合がある。
【0052】
一部の実施形態では、種々のグループにおけるエンドポイントのメンバーシップは、システムによって決定される場合があり、システムは、1つ又は複数のエンドポイントを1つのグループから別のグループに移動することができる(例えば、エンドポイントの要件が、エンドポイントが別のグループのメンバーであれば該エンドポイントがより効率よくサービスを受けることになることを示す)。一部の実施形態では、種々のグループにおけるエンドポイントのメンバーシップは、例えば、1つのグループから別のグループへの移転を要求し得るエンドポイントによって決定される場合がある。
【0053】
一部の実施形態では、システムは、グループへのメンバーシップを決定するのに用いられる基準、グループのランキング及び/優先順位付け、プロビジョンされるべきグループの数、グループ内に入るべきエンドポイントの数などを含む、エンドポイントのグループ化に関係した種々の態様を決定するように構成される。エンドポイントのグループ化に関係した態様の決定は、例えば、送達効率、全コスト、処理サイクル、エンコーディングの効率、デコーディングの効率、サービスレベル、及び/又は因子の種々の組合せなどの種々の因子を最適化する最適化アルゴリズムの使用を通じて行われる場合がある。例えば、種々の因子は、どのようにしてグループが割り当てられるべきかを決定する際に因子の重み付けされた集合が用いられ得るように、それらに割り当てられた重み係数を有する場合がある。グループ化は、種々のルール、条件、ルール、トリガなどの使用を通じて決定される場合がある。
【0054】
基準は、エンコーディングのために利用可能なリソースの合計量を含む場合がある。例えば、コンピューティングリソースは、有限であって、リソースのより大きいプール間で共有される場合があり、この場合、一部のリソースは他の機能(例えば、ニュースキャスティング、他の信号伝送)のために用いられ、利用可能なリソースも動的である場合がある。システムは、負荷のバランスをとる又はコンピューティングリソースの利用可能性を予測するように構成される場合があり、グループは、エンコーディング行為が利用可能な(又は利用可能となることが予測された)リソースの量に良く適合することを保証するために確立される場合がある。例えば、或る期間の低減したリソースが予想される場合、システムは、エンコーディング負荷が低減するように仮想送信器を事前にグループ化する(例えば、グループの数を減らすべくメンバーシップを調整する)ことができる。逆に、或る期間の利用可能なリソースが予想される場合、システムは、エンコーディング負荷が増加するように(例えば、より細かいグループに)仮想送信器を事前にグループ化する(例えば、メンバーシップを調整する)ことができ、仮想送信器は、より高品質のサービスを受信することができる。
【0055】
一部の実施形態では、エンコードされたソース信号をデコードするためのデコーダ、仮想送信器(これらの1つ又は複数のエンドポイントへの信号の伝送のために1つ又は複数のエンドポイントと関連付けられ得る)、コントローラ(例えば、負荷バランシングのための)などの他のコンポーネントが使用される場合がある。
【0056】
一部の実施形態では、本明細書で説明される方法及びシステムは、例えば、参照によりその内容全体が本明細書に組み込まれる米国特許出願第14/329,112号(FrusinaのUS20150020135A1として公開される、以下、‘112出願と称す)で説明されるマルチビューワシステムと併せて用いられる場合がある。
【0057】
このマルチビューワシステムと併せて、エンドポイント/受信器に送達するための(例えば、エンドポイント/受信器で閲覧する及びこれによって制御するための)送信器によって提供される種々のストリームが存在する場合がある。これらのストリームは、種々のオーディオ/ビデオ/メタデータストリーム、プレビューストリーム、種々のビットレートでのストリームなどを含む場合がある。複数の送信器からのストリームは、エンドポイント/受信器で同時に閲覧するためにエンドポイント/受信器にパラレルに伝送される場合がある。‘112出願で開示された様態で、低いビットレート/低いフレームレートのプレビューストリームが、プレビューの目的でエンドポイント/受信器に提供される場合がある。さらに、‘112出願で開示された様態で、各エンドポイント/受信器に伝送するための1つ又は複数のストリームを選択する及び割り当てるためのインターフェースが提供される場合がある。一部のストリームは、本明細書で開示された様態で処理(例えば、デコード、エンコード、伝送、及び動作)される場合がある。
【0058】
図1は、一部の実施形態に係る1つの多地点配信(MPD)ノード120を有するシステムの例示的な概略
図100である。
【0059】
図示されるように、MPDノード120は、デコーダ104、MPDコントローラ106、複数のティアコントローラ108a..108n、複数の再エンコーダ110a..110n、及び複数の仮想送信器112a..112nを含む。MPDノード120は、ソース送信器102、1つ又は複数の受信器エンドポイント114a..114n、及び制御ポータル150と相互接続される。
【0060】
ティアコントローラ108a..108nと、再エンコーダ110a..110nと、仮想送信器112a..112nは、グループに編成される。各グループは、1つのティアコントローラ108と、1つの再エンコーダ110と、仮想送信器112a..112nのサブセットを含む。仮想送信器112a..112nのこれらのサブセットのそれぞれは、仮想送信器ブロック130と呼ばれる場合がある。再エンコーダ110a..110nの数は、システムによって追跡される1つ又は複数の変数を最適化するように選択される場合がある。例えば、システムはまた、1つ又は複数の変数を最適化するように適応されてよく、一部の実施形態では、監視される供給、需要、及び/又は負荷状態に基づいて、必要とされる場合に再エンコーダをプロビジョン又はプロビジョン解除してよい。
【0061】
デコーダ104は、送信器102から受信したデータをデコードし、デコードされたデータを再エンコーダ110a..110nに提供し、再エンコーダのそれぞれは、関連するティアコントローラ108の制御下でデータを再エンコードする。一部の実施形態では、「ヌル」再エンコーダとして動作できることがある1つ又は複数のティア再エンコーダ110a..110nが存在する場合がある。これらの状況では、デコーダ104は、ビデオ/オーディオ/メタデータが送信器102から1つ又は複数のエンドポイント114a..114nに元の形態で通過されることを意味する、「ヌル」デコーダとしても動作する場合がある。
【0062】
再エンコーダ110a..110nのそれぞれは、再エンコードされたデータを、関連する仮想送信器ブロック130による伝送のために、該ブロック130における仮想送信器112a..112nに提供する。仮想送信器112a..112nのそれぞれは、再エンコードされたデータを、割り当てられたエンドポイント114a..114nに伝送する。
【0063】
一部の実施形態では、送信器102は、最初に該送信器102をデコーダ104に割り当て、次いで仮想送信器112をエンドポイントに割り当てることによって、エンドポイント114と関連付けられてよい。一部の実施形態では、エンドポイントへの仮想送信器112の割り当ては、エンドユーザ(例えば、エンドポイントにいる)にトランスペアレントな様態で行われてよい。
【0064】
例えば、エンドユーザは、(例えば、エンドポイント114へのソース送信器102のドラッグアンドドロップ操作によって)ソース送信器102を単純に選択することができる。その後、仮想送信器112が、一部の実施形態ではダブル割り当てを通じてエンドポイント114に関して自動的に選択され、ペアにされ、この場合、送信器102がデコーダ104に割り当てられ、実行中に(on-the-fly)仮想送信器112が配置又は作成され、仮想送信器112の出力が、ソース送信器102がドラッグされたエンドポイント114に割り当てられる。
【0065】
図1の例では、共通の再エンコーダ110及びコントローラ108によってサービスを受ける仮想送信器112のグループは、ティアと呼ばれる場合がある。
【0066】
提供されるコントローラの一部は、ティアレベルで動作するように構成され、ティアコントローラ108a..108nと呼ばれる場合がある。ノード120の動作を管理するためにMPDノード120内にMPDコントローラ106が提供される場合がある。例えば、MPDコントローラ106は、特に、ティアを定義し、必要とされる場合にクラウドコンピュートリソースを動的にスピンアップし、ティアを管理し(例えば、ティアにある仮想送信器の数を管理するためにティアコントローラ108をオーバーライドすることができる)、ティア間の仮想送信器112の移転を管理し、プロキシ(
図3A~
図3Cを参照してさらに説明される)及び/又はデコーダ104との及びプロキシを介する送信器102との相互作用を取り扱うように構成されてよい。
【0067】
一部の実施形態では、クラウドサーバもティアと関連付けられてよく、リアルタイム・メッセージング・プロトコル(RTMP)、HTTPライブストリーミング(HLS)、又は同様のリアルタイムストリーミングプロトコルを受け取るコンテンツ配信ネットワーク(CDN)又は同様のものを介してエンドポイントへの伝送を容易にする。
【0068】
一部の実施形態では、システムは、データコンテンツとは別であり得る、エラー訂正データを取り扱うように構成される。例えば、112aと114aとの間のリンクが完璧であって、エラー訂正が必要とされない場合がある。対照的に、112bと114bとの間のリンクが5%の損失を被り、5%のエラー訂正を必要とする場合がある。上記の両方のケースにおいて、(ティア1再エンコーダ110aによって生成される場合の)コンテンツは同じであるが、エラー訂正データは異なる。エラー訂正データは、同じチャネル又は異なるチャネルにわたって伝送される場合がある。エラー訂正データが、通信リンクの異なるチャネル上で伝送されるならば、一部の実施形態では、破損(例えば、パリティチェックに失敗する)/紛失した(例えば、時間通りに届かなかった)/奇形の(例えば、ヘッダが破損した)データを再要求し、すぐに対応して(例えば、迅速に)アクションをとることができるように、エラー訂正がより早く受信されるように、より速いチャネル(例えば、より短い待ち時間)が選択される。
【0069】
MPDコントローラ106は、例えば、制御信号の送信を通じて他のコンポーネントと相互作用することができ、該制御信号は、例えば、ティアパラメータへの必要とされる変更の情報、新しいティアに移動する必要がある仮想送信器112の情報、及び移動が完了したときのデコーダ又はプロキシへの確認、ティア上のフィードバック(例えば、特定の場所に関するストリームの需要がもはや存在しない場合に伝送/デコードを停止する)を示す。MPDコントローラ106はまた、信号、例えば、どの受信器及び/又はコンポーネントがオーディオ並びにステータス情報(帯域幅の使用状況、欠落したフレーム、及び他の重要なパフォーマンスパラメータ)の送信及び受信の制御下にあるかを示すIFB制御情報を受信器に送信するように構成されてよい。
【0070】
MPDコントローラ106の構成及びステータスの監視(例えば、MPDノード制御入力125による)を可能にするために制御ポータル150が提供される場合がある。これは、ウェブアプリケーション、モバイルアプリケーション、又はカスタムソフトウェアアプリケーションを含むがこれらに限定されない種々の手法を用いて実装されてよい。制御ポータルはまた、ユーザロール及びログオン資格証明書によって制御されるアクセス及び許可により構成及び/又は分散されてよい。
【0071】
一部の実施形態では、受信器エンドポイント114から送信器102に来るIFBの切り換え及び管理を可能にするとともに、付加的なオーディオソース(例えば、IFBのために随意的に用いることができるSIP(session initiation protocol)カンファレンス/ダイヤルインサービス)の切り換え及び管理を提供するように構成された、別個のIFBコントローラが提供される。IFBコントローラは、随意的にMPDコントローラ106によって管理することができる。IFBコントローラに関する構成及びステータス情報は、制御ポータル150によって取り扱われる。
【0072】
制御ポータル150を用いて、MPDコントローラ106は、コスト、必要な計算パワー、必要とされる及び/又は使用されるデータ帯域幅、及び/又は所与のデバイス又は地理に関するヒストリカルな伝送及び受信特徴の統計的分析などの種々の基準に基づいて、必要とされるティアの数を決定するようにユーザにより構成されてよい。ティアは、種々のエンコーディング要件(例えば、ビットレートの範囲、ビットレートの一貫性、エンコーディングフォーマット、入来する情報フローに付随する又はオーバーレイされるべき情報)を規定される場合がある。
【0073】
各ティアのサイズ(例えば、送信器の数)の最小と最大との両方での制限が存在する場合があり、MPDコントローラ106は、ティア間で仮想送信器112を再割当てするプロセス、及び/又はティアの特徴を動的に変化させるプロセス(例えば、付加的なリソースが利用可能となった、ティアにある仮想送信器の最大数を増加させる、データ帯域幅の割り当てが超過されそうである又は既に超過されている)を管理するように構成されてよい。
【0074】
一部の実施形態では、ティアの数は動的に変えることができる。例えば、ティアは、新しい送信器(異なるデコーダ要件を有する異なる場所にある可能性がある)に対応するために追加されてよく、又は計算コスト及び/又は帯域幅コストを低減させるために縮小されてよい。ティアの追加又は除去は、仮想送信器の監視される挙動、又は制御ポータル150を介して設定される管理基準を用いる他のネットワーク条件特徴、又は他のシステムポリシーに基づいて実施されてよい。ティア境界(例えば、3~5Mbps)も(例えば、3~6Mbpsに)変えることができ、例えば、コストが固定されていた(例えば、エンコーダの数の制限がある)場合に、ティア境界は、仮想送信器(又はプール内の特定の優先度の仮想送信器/受信器)が著しくより低いパフォーマンスを有する下位のティアに移動するのではなく所望のレベルにより近く動作することを最もよく可能にするように、変化するように構成されてよい。ティアはまた、例えば、クラウドコンピューティングリソースに制限があり、クラウドコンピュートリソースの利用及び/又はデータ使用を管理する(例えば、最大にする)要望があるならば、コストの管理を助けるために、プロビジョン解除及び(再)プロビジョンされてよい。ティアはまた、ティアが所定の時間にわたってアイドルであるなどの場合にプロビジョン解除されてよい。
【0075】
ティアコントローラ108a..108nは、仮想送信器112a..112nのステータスを維持及び/又は追跡し、ティア再エンコーダ110a..110nの設定を(例えば、最適化ルールに基づいて)動的に、能動的に、及び/又は受動的に適応させ、ティア間の仮想送信器の移動及び/又は割当てに関連してMPDコントローラ106への種々の推奨を作成するように構成されてよい。例えば、ティアコントローラ108a..108nは、仮想送信器がそのパフォーマンスが例えば、遅すぎる、速すぎる、信頼できなすぎるならば新しいティアに割り当てられる必要があることを示す信号を伝送してよく、且つ、仮想送信器が1つのティアから別のティアに移動されるべきであることを示す信号をMPDコントローラ106に伝送してよい。
【0076】
この例では、ソース送信器102(Tx)は、不定の数の受信器エンドポイント114a..114n(R1~RN)にライブビデオを供給するビデオソース送信器である。このビデオは、限定はされないが’560特許又は‘576特許に記載のボンディングされた通信リンク上の伝達を含む種々の手段によって伝達されてよい。
【0077】
ソース送信器102は、デコーディングを必要とするエンコードされた信号を伝送してよい。ソース送信器102は、デコーダ104に情報を通信してよく、又は他の方法で相互作用してよい。
【0078】
デコーダ104は、以下の機能を行う、すなわち、上流のコンポーネント(例えば、ソース送信器102、マスタープロキシ、又は中間プロキシ)からエンコードされた情報パケットを受信する、上流から紛失した情報パケットを要求する、上流のコンポーネントから紛失した情報パケットをエラー訂正(例えば、前方エラー訂正技術)に基づいて再構築する、情報パケットを生フレームへデコードする、必要な場合に生フレーム上のタイムスタンプ及び他のメタデータを調整する、及び/又は生フレームを再エンコーダティアに渡すように構成されてよい。
【0079】
例えば、デコーダ104は、入来する情報(例えば、オーディオ、テキスト、ビデオ、メタデータ)パケットをアセンブル及びデコードし、次いで、該情報を(例えば、データストリームの形態で)、1つ又は複数のティアコントローラ108a..108nを監視するMPDコントローラ106によって決定される、1つ又は複数の再エンコーダティアに転送してよい。
【0080】
デコーダ104が「ヌル」デコーダである場合、データを再エンコーダティアに転送する前の上述の動作のいずれかを省略することができる。
【0081】
MPDコントローラ106によってプロビジョンされ得る1つ又は複数の再エンコーダティアが存在する場合があり、該再エンコーダティアは、信号をエンコードし、ティアに関連する特徴に基づいてエンコードされる(例えば、特定のビットレートに、特定のロゴを有する、サブタイトル又は他のオーバーレイを追加する)出力情報ストリームを提供するように構成される、別個のティアと関連付けられる。
【0082】
例えば、再エンコーダティアは、ティアに割り当てられるいくつかの仮想送信器112a..112n(すなわち、仮想送信器ブロック130)を含んでよく、又はこれと関連付けられてよく、デコーダ104から生フレームを受信し、その対応するティアに割り当てられた仮想送信器112a..112nのすべてによって報告される種々のルール(例えば、最低ビットレート及び最もアグレッシブなGTG(glass-to-glass)待ち時間(例えば、GTGは、エンコーダ構成に影響する場合がある)に従ってこれらを再エンコードし、エンコードされたフレームを仮想送信器に送達し、及び/又は現在このティアにある仮想送信器112の別のティアへの移動をコーディネートすることをティアコントローラ108に要求する(例えば、仮想送信器のパフォーマンスは、仮想送信器がより上位のティア又はより下位のティアなどの異なるティアと関連付けられるべきであることを示す場合がある)ように構成されてよい。管理及びセットアップを簡単にするために、ティア内のすべての受信器エンドポイントは、最初に同じGTGに設定されてよく、このGTGからのオフセットが、GTG調整の妥当な範囲内の容認できるビデオ品質を維持するために、必要とされる場合に受信器エンドポイント設定又は制御ポータル150を介して個々の送信器に適用されてよい。
【0083】
各ティアコントローラ108は、1つ又は複数の受信器エンドポイント114との相互作用を管理し、対応する仮想送信器112を作成及び関連付けるように構成されてよい。ティアコントローラ108a..108nは、ソース送信器102から受信される受信された(一部の実施形態では、デコードされた)情報に関連した種々のエンコーディング及び/又は他の変換処理を行うように構成され得る1つ又は複数のティア再エンコーダ110a..110nを含んでよく及び/又はこれと関連付けられてよい。
【0084】
種々の受信器エンドポイント114と仮想送信器112a..112nとの相互作用は、例えば、参照によりそれらの全体が本明細書に組み込まれる米国特許第8873560号及び米国特許第8984576号に記載の種々の方法及びシステムを用いて支配される場合がある。例えば、デバイス間の情報の伝送を改善するべく情報を複数のデータストリームに分割するためにネットワーク通信パフォーマンスプロファイルが用いられる場合があり、及び/又は、一貫したデータ受信を容易にするためにバッファ管理及び輸送コントローラが使用される場合がある。
【0085】
ティアコントローラ108によって提供される機能は、ティアから受信したキーフレームオンデマンド要求を上流のコンポーネント(例えば、ソース送信器102又はティア再エンコーダ110)に転送すること、仮想送信器から受信したIFBパケットをデコードすること、これらを単一のオーディオストリームへ混合すること、オーディオストリームを再エンコードすること、及び/又は上流のコンポーネント(例えば、ソース送信器102)に提供されるオーディオストリームを切り換えることを含んでよい。ティアコントローラ108はまた、負荷を追跡し、これを種々の他のコンポーネント(例えば、MPDコントローラ106)に報告し、及び/又は1つのティアから別のティアへの仮想送信器112の移動をコーディネートし、及び/又は上流のコンポーネントからの種々の要求を取り扱ってよい(例えば、最小の負荷を有する下流の分岐にデリゲートし、別の下流の分岐を追加し、空の下流の分岐を除去し、階層における或るレベルからのアクティブストリームを別のレベルに遷移させることによってエンドポイント/受信器への仮想伝送を開始する)。上記で概説したように、IFBは、別個のIFBコントローラを用いて取り扱われてもよい。この場合、IFB信号のデコーディング、混合、再エンコーディング、切り換え、及び管理は、ティアコントローラの代わりにIFBコントローラによって取り扱われることになる。
【0086】
ティアコントローラ108はまた、例えば、特定のビットレート範囲(例えば、5~10Mbps)でのティア境界によって決まるエンコーディングパラメータ内の1つ又は複数の仮想送信器112に関するデコーダ104から送信されたストリームを再エンコードするティア再エンコーダ110の種々の態様を管理する及び/又は他の方法で制御するように構成されてよい。一部の実施形態では、ティア境界及びティアの数は、種々の最適化アルゴリズム及び技術を用いてシステムによって決定されてよい。このような技術の使用は、サービス効率を増加させる、コストを低減させるなどのために用いられてよい。
【0087】
一部の実施形態では、グループ/ティア特性(例えば、ビットレート)の構成は、システムの起動時に静的に選択されてよいが、他の実施形態では、よりインテリジェントな(例えば、動的に、継続的に/周期的に調整される)決定が使用されてよく、この場合、ティアのメンバーシップは、(例えば、特に、フィードバックループ、PIコントローラ、Pコントローラ、PIDコントローラなどのエラー最小化制御技術を使用して)自動的に/半自動的に調整される。追跡される制御パラメータ、制御パラメータの多様性、重み付けされた制御パラメータなどに基づいて調整がなされてよい。
【0088】
例として、特定のマシン上で最大3つのティアがサポートされるという制約が与えられる場合、以下の5つのVTx、すなわち、VTx1:1.5Mbps、VTx2:2.0Mbps、VTx3:3.5Mbps、VTx4:6.0Mbps、及びVTx5:9.5Mbpsがサポートされる。例えば、列挙したVTxのうちの2つをティア境界として選択することによって、3つのティアの選択が決定されてよい。どのようにしてグループ及びティア境界が選択されるかを決定するのに反復法が用いられてよい。例えば、第1の「推測」として、コントローラが、第1の境界としてVTx1を選択し、第2の境界としてVTx2を選択すると仮定する。このシナリオでは、3つのティアは、ティア1:0~1.5Mbps、ティア2:1.5~2.0Mbps、及びティア3:2.0~最高Mbpsである。システム全体の「エラー」は、この場合、(ティア1エラー)+(ティア2エラー)+(ティア3エラー)=(1.5-1.5)+(2.0-2.0)+(3.5-2.0+6.0-2.0+9.5-2.0)=(0)+(0)+(1.5+4.0+7.5)=13.0Mbpsとなるであろう。
【0089】
可能な方法は、すべての可能な「推測」を徹底的に試み、結果的に最も低い全体エラーを生じる組合せを選択することであろう。ティア及びティア値の多数の可能な順列及び/又は組合せが存在する場合、それらの関連するトレードオフ(例えば、エラー、エンコーディングパラメータの妥当性)と共に、各順列/組合せに関連する潜在的に効率的な利得を判定するために、種々のシミュレーション(例えば、網羅的な手法、網羅的でない手法、決定論的な手法、又は確率論的な手法)が使用されてよい。パラメータのライブラリが、パフォーマンス(例えば、効率)メトリクス及びトレードオフ(例えば、エラー)メトリクスと共に記憶されてよい。ライブラリは、予測される将来の状況及びシナリオを含む特定の状況及びシナリオに適応可能なグループ化制御のための予め分析されたオプションの利用可能な組をシステムが有することができるように、前もって計算されてよく又は周期的に開発されてよい(例えば、グループからグループへのメンバーシップの調整又はエンコーダのプロビジョン/プロビジョン解除は、行うのに時間がかかる場合があり、早くに開始される必要がある場合がある)。
【0090】
一部の実施形態では、全体のビットレートエラーを最小にするために及び/又は全体の構造的類似性(SSIM)を最大にするために調整基準が確立される。例えば、システムは、各VTxによって要求されるカスタムビットレート(システムが各ティアを実行するのに十分なコンピューティングリソースを有するシナリオを本質的にシミュレートする)でビデオフレームを再エンコードするためのメトリクスを決定し、例えば、これらのエンコードされたフレームのそれぞれに関するSSIMを決定し、これらの理論上のフレームに対するVTxによって伝送された実際のビデオフレームのSSIM「エラー」を計算するように構成されてよい。一部の実施形態では、ピクチャ類似性インデックス(PSIM)メトリックが追跡され、制御される。
【0091】
ティア再エンコーダ110が「ヌル」再エンコーダである場合、ティアコントローラ108は、データを仮想送信器112に転送する前の上述の動作のいずれかを省略することができる。
【0092】
各仮想送信器112は、対応する受信器エンドポイント114とペアにされてよい。仮想送信器112は、少なくとも1つの受信器エンドポイント114への新たに再エンコードされたビデオストリームの伝送を管理し、種々の伝送特徴、例えば、待ち時間、パケット損失、トレースルート及び/又はスループットをティアコントローラへ報告するように構成されてよい。仮想送信器112は、一部の実施形態では、それが受信器と相互作用するという点で物理送信器のクラウドに基づく表現であり得る(例えば、受信器は、仮想送信器とこれが物理送信器であった場合と同様に相互作用し、受信器は、仮想送信器が、物理送信器が複数のエンドポイントに効率よく伝送することを可能にする抽象化されたものであることに気づかない場合がある)。仮想送信器112は、限定はされないが、’560特許又は‘576特許に記載のボンディングされた通信リンク上の伝達を含む種々の手段によってエンドポイント114にデータを伝達するように構成されてよい。
【0093】
仮想送信器112はまた、受信器エンドポイント114から制御データ、IFB、又は他のコンテンツを受信し、通過させてよく、これは送信器102にリレーされてよい。例えば、このような制御データ及び/又は他のコンテンツは、監視及びキューイングの目的などで用いられてよい。
【0094】
一部の実施形態では、システムは、‘112出願に記載のマルチビューワシステムと同時に使用するように構成されてよい。このような実施形態では、各仮想送信器112は、(例えば、ショットの選択の目的、又は遠隔制御の目的などで)マルチビューワシステムによって選択可能な送信器であってよい。したがって、各仮想送信器112は、‘112出願に記載の種々の様態でマルチビューワシステムと制御信号を交換するように構成されてよい。
【0095】
低いビットレート及び/又は低いフレームレートのプレビューは、‘112出願に記載の送信器112によって提供されてよく、これらのプレビューは、1つ又は複数のエンドポイントに配信するためのビデオストリームの割り当て、選択などのために制御ポータル150によってユーザに提示される。
【0096】
一部の実施形態では、各ティアにある再エンコーダ110は、予め設定された及び/又は適応的な範囲内の、組における最もパフォーマンスの低い受信器に合わせて適応的に調整し、該範囲は、限定はされないが、ビットレート又は待ち時間などのパラメータ又はこのようなパラメータの組合せを含む場合がある。例えば、エンコーディングの特徴は、受信器114の数、受信器114の特徴、種々のエンコーディングプロセスの(例えば、サイクルにおける)処理コスト、種々のエンコーディングプロセスに関連する金銭的コストなどに関連してコストオプティマイザを用いて決定されてよい。他の実施形態(例えば、組における2つの最もパフォーマンスの低い受信器の組合せを用いること又は組における選択された受信器から導出された統計を用いること)も可能である。
【0097】
種々のレベルでのコンポーネント(例えば、ブロック130における仮想送信器112、再エンコーダ110、ティアコントローラ108、MPDコントローラ106)は、使用状況及び/又は問題を種々の他のコンポーネントに及び制御ポータル150にも報告するように構成されてよい。例えば、仮想送信器112a..112nがエンドポイントに静的に割り当てられる場合、使用状況の追跡は、仮想送信器レベルで提供されてよい。別の例として、仮想送信器112a..112nがエンドポイントに動的に割り当てられる場合、使用状況の追跡は、階層における別のレベルで提供されてよい。
【0098】
一部の実施形態では、システムは、仮想送信器112a..112nを構成するためにヒストリカルデータ(例えば、スタンディングスタートからの)及び最初のフィードバックを用いてティアを確立するように構成される。例えば、このデータは、ティアの数、ティア間の分離を決定するためなどに用いられてよい。
【0099】
一部の実施形態では、システムは、例えば、受信器エンドポイント114がビデオストリームを受信する又はストリームの受信を停止することを選択する場合に、伝送の全体を通して仮想送信器112を追加及び除去してよい。
【0100】
一部の実施形態では、システムは、受信器エンドポイントからIFBを提供し、IFBを切り換える及び/又は混合するように構成されてよい。一部の実施形態では、切り換えられたIFBの使用は、異なるエンドポイント114(例えば、伝送を受信するステーションのうちの1つにいるニュースアンカー)が、制御ポータル150を用いてMPDコントローラ106又は別個のIFBコントローラによって管理される送信器102とシステムとの間の1つ又は複数の接続を通じて送信器102(例えば、現地レポーター)と相互作用することを可能にするであろう。
【0101】
システムは、個別のデバイスを用いて実装されてよく、又は、分散ネットワーキング(例えば、クラウドコンピューティング)トポロジーを用いて実装されてよい。分散ネットワーキング実装が使用される場合、種々のリソース及びコンポーネントは、仮想又は物理とすることができる。リソースは、プロビジョン及び/又はプロビジョン解除(例えば、スピンアップ、スピンダウン)することができ、種々の関連する接続により種々の地理において提供されてよい(例えば、米国の東部におけるサーバのプロビジョニング)。一部の実施形態では、MPDコントローラ106及び/又はティアコントローラ108a..108nは、ことによると制御ポータル150によって提供された情報及びパラメータを用いて、リソースのプロビジョン及び/又はプロビジョン解除を要求するように構成されてもよい。例えば、リソースの割当ては、MPDコントローラ106からの総負荷の報告を通じて決定されてよく、付加的なリソースが利用可能となった後で、MPDコントローラ106は、コンポーネントの階層への付加的なリソースの追加をコーディネートするように構成することもできる。
【0102】
一部の実施形態では、エンドポイント受信器は、制御ポータル150を用いて送信器にIFB制御チャネルを要求する時間枠をスケジュールしてよい。一部の実施形態では、IFBチャネルは、先着順に選択されるであろう。一部の実施形態では、IFBチャネルの制御は、制御ポータル150を介してMPDコントローラ106とのインターフェースを通じて作用する外部エージェント(例えば、伝送を提供するネットワークの本部)によって少なくとも部分的に決定されてよい。
【0103】
距離によって(例えば、電気的に又は物理的に)分離され得る異なるコンポーネントが存在し得るならば、通信及びコーディネートは、待ち時間、許容差、変動性などの差異が存在し得るので、同期(例えば、クロック、タイマの)を必要とする場合がある。
【0104】
同期は、伝送の各ステージで、パケット毎に、などの種々の様態で行われてよい。一部の実施形態では、2つのコンポーネント間のクロックの同期は、その内容が参照により組み込まれるFrusina他の米国特許第9,042,444号に記載されるように行われてよい。一部の実施形態では、システムは、クラウドを通じて伝送の複数のステージ(伝送のデコーディングステップ、再エンコーディングステップ、及び種々のステップを含む)間の待ち時間及びクロックの同期を維持するように構成されてよい。
【0105】
このサンプルシナリオでは、デコーダ104と、ティアコントローラ108と、仮想送信器112は、同じコンピューティングリソース上にある。より複雑なシナリオでは、デコーダ104及び/又は他のコンポーネントは、別個のコンピューティングリソース上にある場合がある。
【0106】
クロック同期プロセスは、そのデプロイメントが異なるコンピューティングリソース(物理又は仮想)上で実行している場合に、ステージ間で行われる必要があり得る。
図5は、一部の実施形態に係るクロックを同期させるための方法を例示するサンプルワークフロー
図500である。
【0107】
一部の実施形態によれば、通常のデプロイメントでは、以下のステージが異なるコンピューティングリソース上で行われてよい:
【0108】
・(Tx)送信器
【0109】
・(Px)プロキシ
【0110】
・(MPD)デコーダ、ティアコントローラ、仮想送信器(MPDノード120に対応する)
【0111】
・(Rx)受信器
【0112】
これらのコンピューティングリソースのそれぞれの間で、例えば、2つのクロック間の距離を周期的に測定するクロック/時間同期プロセスが使用されてよく、これは、クロック間の速度を計算するのに用いられ、所与の時点での距離を推定するのに用いられる。この距離の推定の組は、以下のように与えられる:
【0113】
・d(Tx-to-Px)
【0114】
・d(Px-to-MPD)
【0115】
・d(MPD-to-Rx)
【0116】
システムを通じて伝達される単一のメディア(例えば、ビデオ)フレームに関係している例が提供される。502で、システムは、最初に、クロック間の推定される距離(例えば、d(Tx,Px)、d(Px,MPD)、d(MPD,Rx)を周期的に決定し、値をコンポーネントが利用できるようにする。
【0117】
1. 504で、生ビデオフレームが送信器によって取り込まれ、送信器のクロックによって測定される現在の取り込み時間tでスタンプを付けられる。
【0118】
2. 506で、生ビデオフレームがエンコードされ、次いで、プロキシに伝送される。
【0119】
3. 508で、プロキシがビデオフレーム上のタイムスタンプをt+d(Tx-to-Px)に調整する。
【0120】
4. 510で、プロキシがビデオフレームをMPDに伝送する。
【0121】
5. 512で、MPDがビデオフレーム上のタイムスタンプをt+d(Tx-to-Px)+d(Px-to-MPD)に調整する。
【0122】
6. 514で、MPDがビデオフレームをデコードし、これをティアコントローラ108a..108nに受け渡し、該ティアコントローラがこれを再エンコードして仮想送信器に受け渡す。
【0123】
7. 516で、仮想送信器がフレームを受信器/エンドポイントに送信する。
【0124】
8. 518で、受信器がビデオフレーム上のタイムスタンプをt+d(Tx-to-Px)+d(Px-to-MPD)+d(MPD-to-Rx)に調整する。
【0125】
9. 520で、タイムスタンプは、ここでは受信器/エンドポイントのクロックに対するものであり、ユーザの選択した待ち時間(例えば、GTG(glass to glass)待ち時間)に対していつ再生するかの潜在的により正確な決定を可能にする。
【0126】
一部の実施形態では、再エンコードティアは、限定はされないが、待ち時間、品質、及び一貫性などのパラメータをカバーするために複数の軸にわたって形成されてよい。各軸は1つのパラメータに対応することができる。
【0127】
一部の実施形態では、再エンコードティアは、伝送のコスト、エンコーディングのコスト、又は他の因子を最小にする、及び/又はピクチャ品質を最大にするように選択及び/又は最適化されてよい。再エンコードティアの最適化は、例えば、データ使用制約に基づいていてよい。
【0128】
一部の実施形態では、パフォーマンス特徴が測定され評価される間に最小限の伝送が試みられるようにするために、よりパフォーマンスの低い仮想送信器に関してより低いビットレートを有する特別な「非常用」ティアが用いられてよい。この情報は、例えば、トラブルシューティングのために又は仮想送信器の適正な位置を決定するために用いられてよい。
【0129】
一部の実施形態では、メタデータが、ストリームに含まれていてよく、ルールのセットに応じて種々のエンドポイントに送られてよい。メタデータは、ストリーム内のデータのタイムスタンプ、ジオコーディング、ソース、及び所有権などの情報の種々の要素、関係性情報(例えば、伝送の発信者と受信者との関係性)、ヘッダなどを提供してよく、一部の実施形態では、メタデータはまた、グループ化の決定、エンコード、及び/又は接続の監視の際に使用されてよい。
【0130】
一部の実施形態では、再エンコードするグループ(例えば、ティア)は、限定はされないが特定のネットワークのロゴなどの、再エンコードされるピクチャに(例えば、自動的に)適用されるべき1つ又は複数のオーバーレイに基づいて決定及び/又は選択されてよい。サブタイトル、マーキング、オーバーレイ、代替的なオーディオトラック、クローズドキャプショニングなどの他の情報が適用されてよい。これらの実施形態では、新しい再エンコードするグループは、新しい又は使用されない情報の削除の需要を満たすべく、必要とされる場合にスピンアップ又はスピンダウンされてよい。例えば、一実施形態では、ステーション又はネットワークマーキングに関してスピンアップされる特定のグループは、特定のインターバルでのみ(例えば、10分毎に)存在してよく、グループは、特定のオーバーレイを10秒間表示するために作成され、次いで、他の基準に基づいて他のティアに分散されるグループにおけるエンドポイントを有する次のインターバルまでスピンダウンされる。
【0131】
図2A及び
図2Bは、一部の実施形態に係る仮想送信器がティア間を移動する前及び移動した後の例を示す図である。
【0132】
図2A及び
図2Bに示されるように、エンドポイント、関連する仮想送信器、及び/又は他のデバイスが1つのグループから別のグループへ移動され得る種々のシナリオが存在し得る。この例では、グループは、異なるティアとして表され、各ティアは、連続的に増加したビットレートに対応する(例えば、
図2Aに示されるように、ティア1(5~10Mbps)とティア2(3~5Mbps)との2つの例示的なティアが存在する)。
【0133】
図2Aは、一部の実施形態に係る仮想送信器がティア間を移動する前の概略
図200Aを示す。
【0134】
ここでティア1を参照すると、最初に、両方の仮想送信器は、対応する受信器にティア1に関して指定されたビットレート範囲内で伝送している。特に、仮想送信器1は、受信器1に8Mbpsで伝送しており、仮想送信器2は、受信器2に6Mbpsで伝送している。これらの伝送レートに関して、ティア1コントローラは、ティアにある最もパフォーマンスが低い仮想送信器のレートで、すなわち、仮想送信器2に合わせるために6Mbpsでビデオデータをエンコードするようにティア1再エンコーダを制御する。
【0135】
ここでティア2を参照すると、両方の仮想送信器は、対応する受信器にティア2に関して指定されたビットレート範囲内で伝送している。特に、仮想送信器3は、受信器3に4.5Mbpsで伝送しており、仮想送信器4は、受信器4に3Mbpsで伝送している。これらの伝送レートに関して、ティア2コントローラは、ティアにある最もパフォーマンスが低い仮想送信器のレートで、すなわち、仮想送信器4に合わせるために3Mbpsでビデオデータをエンコードするようにティア2再エンコーダを制御する。
【0136】
図2Aに示すように、仮想送信器2の伝送レートは、例えば、仮想送信器2と受信器2とを相互接続するリンク(単数又は複数)(ネットワーク)における減少した伝送容量の結果として4Mbpsに下がる場合がある。この減少したビットレートはティア1に関して指定された範囲外なので、仮想送信器2は、本明細書で開示された様態でティア2に移動される。この減少したビットレートは、ティア2に関して指定された範囲内である。
【0137】
図2Bは、一部の実施形態に係る仮想送信器がティア間を移動した後の概略
図200Bを示す。この移動後に、ティア1コントローラは、そのエンコーディングレートを増加させるようにティア1再エンコーダを制御する。特に、エンコーディングレートは、ティアにある新しい最もパフォーマンスが低い仮想送信器、すなわち仮想送信器1のレートに対応する8Mbpsに増加される。
【0138】
一部の実施形態では、仮想送信器は、例えば、仮想送信器が、その伝送の特徴が変化している(例えば、より高いビットレートが必要とされる、より低いビットレートが必要とされる)ことを示す場合に、1つのティアから別のティアへの仮想送信器の移動を開始し、コントローラに制御信号要求を提出することができる。このシナリオにおけるコントローラは、別のティアへの仮想送信器の移動をコーディネートするように構成されてよい。
【0139】
仮想送信器を1つのティアから別のティアへ移動させるために種々のステップが行われてよい。遷移だけが結果的にビデオ品質の変化をもたらす(例えば、下がった又は重複したフレームは存在しないはずである)ように遷移を容易にするために提供されるいくつかのステップが存在し得る。
【0140】
1つのティアから別のティアへの仮想送信器の移動は、シームレスな遷移を提供するために以下の例示的なステップに基づく場合がある。
・ティアは、仮想送信器の移動を要求する信号をティアコントローラに送信する(一部の実施形態では、ティアコントローラ又はMPDコントローラは、ティアに関係した種々の態様を監視するように構成されてよく、ティア間の移動を開始することができる)。
・ティアコントローラは、ビットレート(又は他の基準)に基づいて新しいティアを決定する。
・ティアコントローラは、新しいティアによって取り扱われるべき次の生フレームのプレゼンテーションタイムスタンプ(PTS)(例えば、PTSnew)を読み出す。
・ティアコントローラは、移動されるべき仮想送信器によって予想される次のフレームのPTS(例えば、PTSnext)を読み出す。
【0141】
これらの値に応じて、以下の3つのケースが存在し得る。
・PTSnew==PTSnext - ティアコントローラは、新しいティア再エンコーダからのキーフレームを直ちに要求し、仮想送信器が直ちに移動される。仮想送信器は、新しいティアからのフレームの受信を開始し、PTSnewとしてスタンプを付けられたフレームが提供されるまですべての古いフレームを廃棄する。例えば、再エンコーダは、それ自身の内部バッファリングを有する場合があり(例えば、エンコーダは、「先読み」するように構成することもできる)、キーフレームがPTSnewで直ちに要求され、該エンコーダに入る次のフレームがPTSnewであるにもかかわらず、エンコーダを出る次のフレームは、より古い(PTSnewからエンコーダがするように構成される「先読み」の量を差し引く)ことがある。したがって、一部の実施形態では、これらの古いフレームのすべては、PTSnewのスタンプの付いたエンコードされたフレームが提供されるまでVTxによって廃棄されることになる。
・PTSnew<PTSnext - ティアコントローラは、PTSnextで新しいティア再エンコーダからのキーフレームを要求し、仮想送信器が直ちに移動される。仮想送信器は、新しいティアからのフレームの受信を開始し、PTSnewとしてスタンプを付けられたフレームが提供されるまですべての古いフレームを廃棄する。
・PTSnew>PTSnext - ティアコントローラは、PTSnewで新しいティア再エンコーダからのキーフレームを要求し、仮想送信器は、両方のティアに属する中間状態に入る。これは両方のティアからフレームを受信するが、それらをソートされるキューに保持する。これはPTSnextとPTSnewとの間のスタンプを付けられる古いティアからのフレームを受信し続ける。一方では、これはまた、PTSnewの及びこれを過ぎたスタンプを付けられた新しいティアからのフレームを受信する。古いティアが最終的にPTSnewまで捕らえるときに、仮想送信器が古いティアから除去され、キューに入れられたフレームが処理される。
・ティア再エンコーダは、オンデマンドのキーフレームではなく周期的なキーフレームのために構成されてよい。このような状況では、上記の例は、ティアの切り換えを完了する前に、次の周期的なキーフレーム、すなわち、>=PTSnextまで仮想送信器が待つことになるように変化するであろう。
【0142】
例えば、仮想送信器は、これが入っているティアの最低レベルでの伝送を維持することができないときに、より下位のティアへ適応してシームレスに移転され、エンコーディングパラメータの異なる組を用いて異なる再エンコーダによってサービスされてよい。このような移動は、一部の実施形態では、伝送効率を増加させる、エンコーディング処理要件を減少させる、及び/又は信号の伝送に関連する全コストを減少させるために用いられてよい。
【0143】
一部の実施形態では、仮想送信器に存在する一部の又は各ネットワーク接続は、フィードバック(例えば、リアルタイム又はほぼリアルタイム)に基づいて宛先に確実に伝送することができるビットレートを決定する、輻輳制御アルゴリズムを実行する。この輻輳制御アルゴリズムによって決定されたビットレートは、コントローラへ提供され、コントローラは、VTxが異なるグループ/ティア(より上位又は下位)に移動されるべきであるかどうかを判定する。
【0144】
仮想送信器が最初に入っていたグループは、次いで、そのエンコーディングパラメータを、新しい最もパフォーマンスの低い受信器の値に変更することによって適応するように構成されてよい。他のタイプの適応が考えられる場合があり、この例は単に例示のために提供される。
【0145】
同様の様態で、より下位のティアにある仮想送信器は、(受信器エンドポイントとの接続の属性の監視を通じて)より上位のティアの最低伝送要件を満たすことができることを示す場合があり、より上位のパフォーマンスのティアに移動されてよい。
【0146】
より上位のティアは、次いで、そのランクへの新しい仮想送信器の追加を反映するべくそのエンコーディングパラメータを適応するように構成されてよい(新しい仮想送信器は、このとき、より上位のティアにある最もパフォーマンスの低い仮想送信器であったと仮定する)。他のタイプの適応が考えられる場合があり、この例は単に例示のために提供される。
【0147】
ティア間の移転(又はストリーム全体からの除去/追加)は、ティア及びネットワーク条件に応じてキーフレームをオンデマンドで送信することによって又は1つ又は複数のキーフレームを周期的インターバルで送信することによって、且つまた、タイムスタンプを受け渡すことによって、パケットを複製することによって、又は他の方法によって行われてよい。例えば、システムは、新しいティアからのキーフレームが受信されるまで、最初のティアからの違うフレームを送信し続けることもできる。より詳細には、上記の例は、PTSnewでの正しいキーフレームを常に期待するのではなく最初のキーフレーム>=PTSnewまで仮想送信器が待つことになるように変化するであろう。
【0148】
仮想送信器は、新しいティアからのPTSnewでのキーフレームを待っている合間に、古いティアからのフレームを消費し、これらを受信器に伝送し続ける。古いティアからのフレームを受信器に確実に送信することができない場合(例えば、ビットレートが、受信器がサポートするには高すぎるために)、ティアの切り換えはシームレスとならず、仮想送信器及び受信器は、‘560特許及び‘576特許に記載されるようにエラーを隠す場合がある。
【0149】
例示的なティアの移転を以下でより詳細に説明する。
【0150】
ティアの移転に関連して発生し得る問題は、ティアにあるエンコーダが、それらが現在表示している及び/又は他の方法で処理しているメディア(例えば、ビデオ)フレームを(例えば、PTSの観点で)同期していない場合があることである。この問題は、エンコーダが別に(例えば、異なる先読み値で)構成されてよいために、又は単純に、オペレーティングシステムスレッドスケジューリングによりエンコーダが僅かに異なる量のCPU実行時間を得ることから起こる場合がある。
【0151】
問題は、種々の状況で発生する場合があり、2つのサンプルケースが以下で説明される。第1のサンプルケースは、ティア1からティア2への移動を希望する仮想送信器を考える。
【0152】
ケース1:
【0153】
・ティア1エンコーダの現在の出力フレームは、PTS1000である。
【0154】
・ティア2エンコーダの現在の出力フレームは、PTS1005である。
【0155】
・仮想送信器は、切り換えを準備するにあたり、ティア2のエンコーダからのキーフレームを要求する。
【0156】
・キーフレームは、ティア2からPTS1010で来ると仮定する。
【0157】
・ゆえに、仮想送信器は、ティア2から1010でキーフレームが提供され及び/又は受信し、最終的に切り換えを行うことができるまで、ティア1からのフレーム1001~1009を消費し続けなければならない。
【0158】
ケース2:
【0159】
・ティア1エンコーダの現在の出力フレームは、PTS1000である。
【0160】
・ティア2エンコーダの現在の出力フレームは、PTS990である。
【0161】
・仮想送信器は、切り換えを準備するにあたり、ティア2のエンコーダからのキーフレームを要求するが、それがPTS>=1000で行われることを要求する。
【0162】
・ティア2は、エンコーダにそれをキーフレームにすることを要求する前に、次の生入力フレームがPTS1001であるまで待つ。
【0163】
・仮想送信器は、ティア2に切り換えるが、PTS1001まですべてのフレームを廃棄する。
【0164】
上記の例でのユニットは、公称ビデオフレーム持続時間のものである(例えば、PTSは、各新しいビデオフレームに関して1だけ増分された)が、実際には、実ユニットは任意であり得る(例えば、関係者によって取り決められる/同意される)。
【0165】
PTSは、メディア(例えば、ビデオ及び/又はオーディオ)再生を同期させるのに用いられてよい。例えば、PTS1000でスタンプを付けられたビデオフレームは、PTS1000でスタンプを付けられたオーディオフレームと同時に再生されなければならない。
【0166】
新しいティアコントローラが異なるマシン上にあった場合、例えば、d(MPD-to-Rx)の値は変化の途中であり得るので、引き渡しは実により複雑となるであろう。引き渡しの一部として、新しいターゲットのMPD及びRxは、それらのタイミングを同期させる必要がある場合がある。次いで、引き渡し中に、Rxは、d(MPD-to-Rx)に関する2つの値を有することになり、古い値から新しい値(本質的に新しいキーフレーム上にある)にいつ切り換えるかを知る必要があるであろう。
【0167】
図3Aは、一部の実施形態に係るプロキシ170によってサービスを受ける複数のMPDノード120を含むようにスケール変更されたシステムの例示的な概略
図300Aである。MPDノード120及びプロキシ170は、総称してプロキシ・スケール変更MPDブロック310と呼ばれる場合がある。
【0168】
MPDノード120は、総じて、送信器102から受信したデータをエンドポイント104に配信するように機能する。有利なことに、
図3Aのシステムは、
図1のシステムよりも多くのエンドポイント104がサービスされることを可能にし得る。
【0169】
MPDノード120のそれぞれは、制御ポータル150からのユーザ入力を用いてマスターコントローラ160によって制御されてよい。マスターコントローラ160は、例えば、制御ポータル150からの制御入力(例えば、入力125a、125b、及び125c)をMPDノード120のうちの適切なものに配信することによって、MPDノード120のそれぞれを制御するように構成される。特に、制御入力は、MPDノード120にあるMPDコントローラ106に配信されてよい。マスターコントローラ160はまた、MPDコントローラ106のそれぞれからフィードバック及びステータスデータを受信するように構成されてよい。
【0170】
プロキシ170は、送信器102からエンコードされたストリームを受信し、MPDノード120のそれぞれにあるデコーダ140によるデコーディングのために、これをMPDノード120のそれぞれに繰り返すように構成される。
【0171】
この例では、システムは、異なる場所にある(これは、送信器又は受信器のいずれかの近くにあることによって又は他の理由で伝送のパフォーマンスを改善することができる)又はネットワーク規格を有する環境にある(例えば、1つのデコーダは、衛星リンクを介してクラウドに接続するエンドポイントにサービスを提供することができ、例えば、高速ファイバ回線を通じて接続されるエンドポイントのグループとは異なる待ち時間に関する期待値を有し得る)複数のコンピューティングリソース(例えば、マシン)上のMPDノード120を提供するように構成されてよい。
【0172】
図3Bは、複数のプロキシ・スケール変更MPDブロック310を提供するべくさらにスケール変更されたシステムの例示的な概略
図300Bである。図示されるように、システムは、複数のプロキシ・スケール変更MPDブロック310と接続される中間プロキシ172を含む。プロキシ・スケール変更MPDブロック310のそれぞれは、エンドポイント114a..nのサブセット、例えば、特定の地理的領域にあるエンドポイント、又は特定の伝送/エンコーディング要件を有するエンドポイントにサービスするように構成される。
【0173】
プロキシ・スケール変更MPDブロック310は、例えば、制御ポータル150からの入力を用いてマスターコントローラ160によって制御されてよい。一例では、マスターコントローラ160は、エンドポイントをブロック310間で再分散させ、これにより、ブロック310間の負荷のバランスをとるようにプロキシ・スケール変更MPDブロック310を制御してよい。マスターコントローラ160はまた、必要とされる場合にブロック310をスピンアップ又はスピンダウンさせてよい。
【0174】
有利なことに、
図3Bのシステムは、
図3Aのシステムよりもさらに多くのエンドポイント104がサービスされることを可能にし得る。
【0175】
中間プロキシ172は、送信器102からエンコードされたストリームを受信し、これをプロキシ・スケール変更MPDブロック310のそれぞれに繰り返すように構成される。特に、各繰り返しのストリームが、ブロック310にあるプロキシ170に提供され、これは複数のMPDノード120にさらに配信されてよい。
【0176】
例えば、プロキシの階層を提供するためにプロキシの付加的な層が提供されてよい。例えば、
図3Cは、マスタープロキシ174、中間プロキシ172、及びプロキシ170(プロキシ・スケール変更MPDブロック310内にある)を含む、プロキシ300Cの階層を例示する。マスタープロキシ174は、データを送信器102から複数の中間プロキシ172に配信する。次に、各中間プロキシ172が、データを複数のプロキシ170(プロキシ・スケール変更MPDブロック310内にある)に配信する。
【0177】
図4Aは、一部の実施形態に係る複数の送信器102を有するシステムの例示的な概略
図400Aである。図示された例では、各送信器102は、各MPDノード120によってサービスされてよい。各送信器102からのデータは、各MPDノード120のそれぞれにあるデコーダ104によってデコードされてよい。
【0178】
システムは、上記で開示された様態で(例えば、ドラッグアンドドロップによって)エンドポイント114への送信器102の選択及び割り当てを可能にするように構成されてよい。システムはまた、1つのエンドポイント114での複数の送信器102からのストリームのプレビューを含む、送信器102からのストリームのプレビューを可能にするように構成されてよい。
【0179】
システムは、エンドポイント114が1つの送信器102から別の送信器102に切り換えることを可能にするように構成されてよい。例えば、このような切り換えは、上記のマルチビューワシステムによって発行され得るユーザ要求の受信に応答して行われてよい。要求される切り換えは、エンドポイント114を新しい仮想送信器112、例えば、新たに要求された送信器102と関連付けられた送信器112に再割り当てすることによって提供されてよい。
【0180】
便利なことに、新たに要求された送信器102に関する(例えば、1つ又は複数の他のエンドポイント114への伝送のための)データを適切な形態(例えば、適切なビットレート及びエンコーディングフォーマット)で受信し、再エンコードする再エンコーダ110が既に存在している場合がある。このような場合、新しい送信器102からのデータ(切り換えが要求される前にMPDノード120で受信されたデータを含む)は、エンドポイント114に伝送されてよく、これにより、少ない待ち時間で切り換えがなされることが可能となる。
【0181】
図4Bは、一部の実施形態に係る複数の複製された仮想送信器ブロック130を有するシステムの例示的な概略
図400Bである。
【0182】
一部の実施形態では、特定のティアと関連付けられる複数の仮想送信器ブロック130が存在する場合がある。これらの仮想送信器ブロック130は、ティアコントローラ108によってプロビジョン又はプロビジョン解除(例えば、クラウドコンピューティング実装との関連では「スピンアップ」又は「スピンダウン」)されてよく、仮想送信器ブロック130のそれぞれは、1つ又は複数の仮想送信器112を含むことができ、各仮想送信器112は、対応する受信器エンドポイント114とデータを通信するように構成されている。
【0183】
図4Bに描画された例に関して、ティアコントローラ108aは、レプリケータ402a及びフィードバックアグリゲータ404aと関連付けられてよい。
【0184】
ティアコントローラ108a及びティア再エンコーダ110aの再エンコードされたデータ出力は、レプリケータ402aによって複製されてよく、レプリケータ402aは、複製された再エンコードされたデータを、それぞれの受信器エンドポイントに伝送するために1つ又は複数の仮想送信器ブロック130ai..130anに提供する。一部の実施形態では、レプリケータ402aはまた、他の方法ではティアコントローラ108a及び/又はティア再エンコーダ110aによって提供され得る、種々の伝送パラメータ、メタデータ、及び/又は制御信号を伝送する。レプリケータ402aは、ティアコントローラ108aと関連付けられるティアに関してのみ
図4Bに示され得るが、他のティアコントローラ(例えば、108b..108n)と関連付けられる他のティアに関して提供される他のレプリケータ402が存在し得る。
【0185】
再エンコードされた出力を仮想送信器ブロック130ai..130anに通信するのにレプリケータ402aを用いることの潜在的利点は、ティア再エンコーダ110aが情報を多数の仮想送信器ブロック130ai..130anに直接伝送する必要性が低減する及び/又はなくなる場合があることである。各仮想送信器112が個々に「スピンアップ」又は「スピンダウン」される必要性も低減する及び/又はなくなる場合がある。
【0186】
例えば、レプリケータなしに単一のティア再エンコーダ110aによってサービスされるかなりの数の仮想送信器が存在する実装に関して、ティア再エンコーダ110aのパフォーマンスは、ティア再エンコーダ110aによって行われるエンコーディング機能に加えて、情報を多数の仮想送信器に伝送する必要性によって影響を受ける場合がある。したがって、レプリケータ402aを使用することの潜在的利点は、MPDノード120のスケーラビリティが向上することにより、MPDノードがより多数の受信器エンドポイント114にサービスすることが可能となることであり得る。
【0187】
仮想送信器ブロック130ai..130anから種々のフィードバック情報(例えば、信号品質、ノイズ、パケット損失、待ち時間)を受信し、受信したフィードバック情報を集計し、及び/又はフィードバック情報の集合セットをティアコントローラ108aに提供するために、フィードバックアグリゲータ404aが提供されてよい。フィードバックアグリゲータ404aは、仮想送信器112及び/又は仮想送信器ブロック130ai..130an(例えば、種々の受信器エンドポイント114と結合される)の使用を監視してよい。フィードバックアグリゲータ404aは、ティアコントローラ108aと関連付けられるティアに関してのみ
図4Bに示され得るが、他のティアコントローラ(例えば、108b..108n)と関連付けられる他のティアに関して提供される他のフィードバックアグリゲータ404が存在し得る。
【0188】
ティアコントローラ108aは、レプリケータ402a、フィードバックアグリゲータ404aの動作、仮想送信器ブロック130ai..130anの数、及び/又は仮想送信器ブロック130ai..130anにおける仮想送信器のメンバーシップを管理及び/又は制御する際にフィードバック情報を使用してよい。
【0189】
ティアコントローラ108は、レプリケータ402、仮想送信器ブロック130ai..130an、及び/又は仮想送信器112の動作の種々の態様を制御するように構成されてよい。例えば、ティアコントローラ108は、仮想送信器がサービスするのに必要とされる仮想送信器ブロックの数を決定し、例えば、リソース(例えば、仮想送信器ブロック)を動的に「スピンアップ」及び/又は「スピンダウン」する、仮想送信器のメンバーシップを1つの仮想送信器ブロックから別の仮想送信器ブロックに変更する(例えば、仮想送信器の分布を変更する)、種々の仮想送信器ブロックにわたる負荷バランシングを行う(例えば、仮想送信器の一様な分布を促進するために仮想送信器ブロック間で仮想送信器を再割当てする)などを行ってよい。
【0190】
仮想送信器ブロックにおける仮想送信器のメンバーシップは、地理(例えば、1つ又は複数の仮想送信器ブロックにある米国の東海岸の受信器エンドポイントに関するすべての仮想送信器を一緒にグループ化する)、伝送特徴(例えば、待ち時間、パケット損失)などの種々の因子に基づいていてよい。
【0191】
一部の実施形態では、物理マシン間の仮想送信器の移転は、負荷分散又はフェイルオーバーの目的でライブストリーム中に行われてよい。例えば、システムは、特定のグループ(例えば、又はティア)と関連付けられる多数のエンドポイント及び/又は仮想送信器が存在すると判定する場合があり、これは、該グループと関連付けられるエンコーダ及び/又は伝送リンクが比較的大きい負荷の下にあり得ることを示す場合がある。
【0192】
一部の実施形態では、1つ又は複数のエンコーダが故障する、及び/又は他のコンポーネントが故障する、及び/又はパフォーマンス問題を有する場合に、システムは、1つ又は複数のグループから他の1つ又は複数のグループへのエンドポイントの移転を行うように構成されてよい。
【0193】
一例では、システムは、送信器102と受信器エンドポイント114との両方として、送信器102のみとして、又は受信器エンドポイント114のみとしてそれぞれサービスを提供することができるステーションを含んでよい。一実施形態では、このシステムは、ステーションのグループが、限定はされないがライブビデオデータを含むデータを、クラウドによってステーションからステーションへ伝達することを可能にするように構成され、費用のかかるポイント・ツー・ポイントビデオ伝送システムの必要性を潜在的に減少させ及び/又はなくし、インターネットなどの種々のネットワークを通じた伝達を可能にする。
【0194】
一部の実施形態では、システムは、通信ネットワークを通じて接続された分散型コンピューティングデバイスの組によって部分的に又はすべて実装されてよい。このような分散型コンピューティングデバイスの組の例は、「クラウドコンピューティング」実装として通常知られているものであろう。このようなネットワークでは、複数の接続されたデバイスが、それらの共有リソースの使用を通じてサービスを提供するべく一緒に動作する。
【0195】
情報を配信するためのクラウドベースの実装は、特に、開放性、融通性、及び拡張可能性、集中管理可能であること、信頼性、スケーラビリティ、オンデマンドのプロビジョニング、コンピューティングリソースに関して最適化されること、待ち時間に関して最適化されることを含む、1つ又は複数の利点を提供し得る。実施形態及び実装は、システムプラットフォームの態様を実装するためにクラウドの使用に関する特定の限定ではない例で説明される場合があるが、ローカルサーバ、単一のリモートサーバ、サービスプラットフォームとしてのソフトウェア、又は任意の他のコンピューティングデバイスが、クラウドの代わりに用いられてよい。一部の実施形態では、エンコーダがクラウドベースのリソースとして提供されるならば、必要とされるときに動的な様態で新しいティアを確立するために必要ならば新しいエンコーダがプロビジョンされてよい。逆に、もはや必要ではないエンコーダは、プロビジョン解除され、クラウドリソースに戻されてよい。一部の実施形態では、システムの必要性に応じて、そこからエンコーダリソースがプロビジョンされる及び/又はそこへのプロビジョンを解除される、物理エンコーダファームの形態のエンコーダが提供される。例えば、コントローラは、効率を増加させるために新しいティアが確立される必要があり得る(例えば、現在のティアは、広すぎるビットレート範囲にわたっており、したがって、最適には及ばないエンコードをする)と判断する場合があり、エンコーダファームから新しいエンコーダがプロビジョンされてよい。
【0196】
図7は、一部の実施形態に係る仮想送信器を1つのティアから別のティアへ移動させるために行われ得るステップを示す例示的なワークフローである。ワークフロー700で例示されるように、種々のステップが例示され、より多くの、異なる、代替的な、又はより少ないステップが存在する場合があり、ステップは、種々の順列、組合せ、及び/又はサブの組合せで行われ得る。例えば、ステップは、示された順番以外で、種々のステップが置き換えられた及び/又は他の方法で省略された状態で行われ得る。
【0197】
コントローラは、702で、複数の仮想送信器の伝送特徴を監視し、704で、監視される伝送特徴に基づいて複数のグループ(例えば、ランク付けされたティア)における仮想送信器のメンバーシップを調整するように構成される。一部の実施形態では、伝送特徴は、特に、ビットレート、待ち時間、パケット損失、QoS、通信リンク品質、信号対ノイズ比を含むことができる。
【0198】
コントローラは、例えば、監視される伝送特徴に基づいて複数のグループにおける仮想送信器のメンバーシップを動的に調整するように構成される。潜在的利点は、変化するチャネル条件及び/又はネットワーク条件に適応して調整できることであり得る。例えば、仮想送信器は、そのティアにあるそのピアに対して優れた伝送特徴を有すると判定され、したがって、より上位のエンコーディングティアに昇格するための候補である場合がある。逆に、劣った伝送特徴は、より下位のティアへの降格につながる場合がある。したがって、メンバーシップの調整は、仮想送信器が目的に適合する(例えば、伝送特徴に基づいて一致する)グループへ確実にグループ化されるようにする一助となる。一部の実施形態では、伝送特徴の重み付けされた組合せが使用される(例えば、重み付けは、伝送の品質及び/又はチャネル容量への伝送特徴のそれぞれの寄与の相対的重要度を示す)。
【0199】
706で、グループメンバーシップ調整条件(例えば、待ち時間が特定の値よりも増加した、パケット損失が予め定義された閾値を上回る、待ち時間が予め定義された期間にわたって短い)がトリガされていると判定すると、コントローラは、現在のグループの現在のメンバーであるターゲット仮想送信器に関する新しいグループを決定し、この新しいグループは監視される伝送特徴に基づいている。
【0200】
708で、コントローラは、現在のグループによって処理されている現在のフレームナンバーを追跡し、これが新しいグループによって処理されている新しいフレームナンバーと一致するかどうかを確認するべくチェックし、710で、新しいグループのメンバーとしてターゲット仮想送信器のプロビジョニングを要求する制御信号を生成し、新しいグループに対応するエンコーダに伝送する。
【0201】
712で、コントローラは、新しいグループに対応するエンコーダからのキーフレームを要求し、714で、現在のフレームナンバーが新しいフレームナンバーと一致しないと判定すると、ターゲット仮想送信器を新しいグループに対応するエンコーダと同期させるべく1つ又は複数の制御信号を生成又は伝送する。
【0202】
図8は、一部の実施形態に係る1つのティアから別のティアへの仮想送信器の移動を同期させるために行われ得るステップを示す例示的なワークフローである。ワークフロー800で例示されるように、種々のステップが例示され、より多くの、異なる、代替的な、又はより少ないステップが存在する場合があり、ステップは、種々の順列、組合せ、及び/又はサブの組合せで行われ得る。例えば、ステップは、示された順番以外で、種々のステップが置き換えられた及び/又は他の方法で省略された状態で行われ得る。
【0203】
802で現在のフレームナンバーが新しいフレームナンバーと一致しないと判定すると、804で、コントローラは、現在のフレームナンバーが新しいフレームナンバーよりも大きいか又は小さいかをチェックする。仮想送信器をティア間で動的に遷移することに伴う課題の1つは、各ティアに関するエンコーダによって移転されるフレームが同期していない場合があるので、不注意で「スキップ」を起こすリスクがあることである。遷移はもはやシームレスではなく、情報を損失する可能性があるので、これは結果的に最適に及ばない経験をもたらす場合がある。以下に説明するように、一部の態様は、遷移プロセスの一部として行われるべき同期のためのステップを含む。
【0204】
現在のフレームナンバーが新しいフレームナンバーよりも大きいときに仮想送信器を同期させるために、少なくとも1つのコントローラは、806Bで、ターゲット仮想送信器のメンバーシップを終了する現在のグループに対応するエンコーダに制御信号を伝送し、808Bで、新しいグループに対応するエンコーダによって提供されるフレームが現在のフレームナンバーに達するまで新しいグループに対応するエンコーダによって提供されるフレームを廃棄するべく仮想送信器に制御信号を伝送するように構成される。
【0205】
現在のフレームナンバーが新しいフレームナンバーよりも小さいときに仮想送信器を同期させるために、少なくとも1つのコントローラは、806Aで、現在のグループと新しいグループとの両方におけるターゲット仮想送信器のメンバーシップを維持し、808Aで、現在のグループに対応するエンコーダによって提供されるフレームが新しいグループに対応するエンコーダによって提供される最先のフレームと一致するまで、新しいグループに対応するエンコーダによって提供されるフレームをソートされるキューに格納するように構成される。
【0206】
この時点で、コントローラは、810Aで、ターゲット仮想送信器のメンバーシップを終了する現在のグループに対応するエンコーダに制御信号を伝送し、812Aで、ソートされるキューに格納されたフレームを処理するべく制御信号を仮想送信器に伝送するように構成される。
【0207】
制御信号は、アプリケーションプログラミングインターフェース、関数呼び出し、マシンレベル命令セット、オブジェクトコードなどを通じて送信される通知の形態であってよい。一部の実施形態では、インターフェースは、エンドユーザ(例えば、仮想送信器と関連付けられる)に又はコントローラのオペレータにティアの遷移を示すために更新される。
【0208】
本明細書で説明されるデバイス、システム、及び方法の実施形態は、ハードウェアとソフトウェアとの両方の組合せで実装されてよい。これらの実施形態は、プログラム可能コンピュータ上で実装されてよく、各コンピュータは、少なくとも1つのプロセッサ、データストレージシステム(揮発性メモリ又は不揮発性メモリ又は他のデータストレージ要素又はこれらの組合せを含む)、及び少なくとも1つの通信インターフェースを含む。
【0209】
一部の実施形態では、通信インターフェースは、ネットワーク通信インターフェースであってよい。要素が組み合わされ得る実施形態では、通信インターフェースは、プロセス間通信用のものなどのソフトウェア通信インターフェースであってよい。さらに他の実施形態では、ハードウェア、ソフトウェア、及びこれらの組合せとして実装される通信インターフェースの組合せが存在する場合がある。
【0210】
上記の説明の全体を通して、コンピューティングデバイスから形成されるサーバ、サービス、インターフェース、ポータル、プラットフォーム、又は他のシステムに関する多くの言及がなされることになる。このような用語の使用は、コンピュータ可読の有形の一時的でない媒体上に記憶されたソフトウェア命令を実行するように構成された少なくとも1つのプロセッサを有する1つ又は複数のコンピューティングデバイスを表すとみなされることを理解されたい。例えば、サーバは、説明された役割、責任、又は機能を果たす様態でウェブサーバ、データベースサーバ、又は他のタイプのコンピュータサーバとして動作する1つ又は複数のコンピュータを含むことができる。
【0211】
本明細書で説明されるシステム及び方法は、より効率的なエンコーディング、通信リンクのより良好な利用、変化する通信需要及び/又はネットワーク条件により対応した適応を提供し得ることを理解されたい。
【0212】
上記の説明は、多くの例示的な実施形態を提供する。各実施形態は発明的な要素の単一の組合せを表すが、他の例は、開示された要素のすべての可能な組合せを含む場合がある。したがって、一実施形態が要素A、B、及びCを含み、第2の実施形態が要素B及びDを含む場合、A、B、C、又はDの他の残りの組合せも用いられ得る。
【0213】
「接続される」又は「に結合される」という用語は、直接結合(互いに結合される2つの要素は互いに接触する)と間接結合(2つの要素間に少なくとも1つの付加的な要素が存在する)との両方を含む場合がある。
【0214】
実施形態の技術的ソリューションは、ソフトウェア製品の形態であり得る。ソフトウェア製品は、コンパクトディスク読出し専用メモリ(CD-ROM)、USBフラッシュディスク、又はリムーバブルハードディスクとすることができる不揮発性の又は一時的でない記憶媒体に記憶される場合がある。ソフトウェア製品は、コンピュータデバイス(パーソナルコンピュータ、サーバ、又はネットワークデバイス)が実施形態によって提供される方法を実行することを可能にするいくつかの命令を含む。
【0215】
本明細書で説明される実施形態は、コンピューティングデバイス、サーバ、受信器、送信器、プロセッサ、メモリ、ディスプレイ、及びネットワークを含む、物理コンピュータハードウェアによって実装される。本明細書で説明される実施形態は、有用な物理マシン及び特に構成されたコンピュータハードウェア配置を提供する。本明細書で説明される実施形態は、種々のタイプの情報を表す電磁気信号を処理及び変換するように適応された電子マシン及び電子マシンによって実施される方法に向けられる。本明細書で説明される実施形態は、広く(pervasively)且つ全体的に(integrally)マシン及びそれらの使用に関係し、本明細書で説明される実施形態は、コンピュータハードウェア、マシン、及び種々のハードウェアコンポーネントでのそれらの使用外の意味又は実用の可能性を有さない。メンタルステップを用いて非物理ハードウェアに関する種々の行為を実装するように特に構成された物理ハードウェアの置き換えは、例えば、実施形態が作用する方法に実質的に影響する場合がある。このようなコンピュータハードウェア制限は、本明細書で説明される実施形態の明らかに本質的な要素であり、それらは、本明細書で説明される実施形態の動作及び構造への重大な影響を有さずして省略する又はメンタル手段と置き換えることはできない。コンピュータハードウェアは、本明細書で説明される種々の実施形態を実装するのに必須であり、単にステップを迅速に効率的に行うために用いられるのではない。
【0216】
簡単にするために1つだけのコンピューティングデバイス600が
図6に示されるが、システムは、遠隔ネットワークリソース600にアクセスし、データを交換するために、ユーザによって動作可能なより多くのコンピューティングデバイス600を含んでよい。コンピューティングデバイス600は、同じ又は異なるタイプのデバイスであってよい。コンピューティングデバイス600は、少なくとも1つのプロセッサ、データ記憶装置(揮発性メモリ又は不揮発性メモリ又は他のデータストレージ要素又はこれらの組合せを含む)、及び少なくとも1つの通信インターフェースを含んでよい。コンピューティングデバイスのコンポーネントは、直接結合、ネットワークによる間接結合、及びネットワークによる広い地理領域にわたる分散及び接続(「クラウドコンピューティング」と呼ばれる場合がある)を含む種々の方法で接続されてよい。
【0217】
例えば、限定ではなく、コンピューティングデバイスは、本明細書で説明される方法を実施するように構成することができる、サーバ、ネットワークアプライアンス、セットトップボックス、組み込みデバイス、コンピュータ拡張モジュール、パーソナルコンピュータ、ラップトップ、パーソナルデータアシスタント、セルラー電話、スマートフォンデバイス、UMPCタブレット、ビデオディスプレイ端末、ゲーミングコンソール、電子読取デバイス、及び無線ハイパーメディアデバイス、又は種々のコンピューティングデバイスであってよい。
【0218】
図6は、コンピューティングデバイス600の一実施形態を例示する概略図である。図示されるように、コンピューティングデバイス600は、少なくとも1つのプロセッサ60002、メモリ60004、少なくとも1つのI/Oインターフェース60006、及び少なくとも1つのネットワークインターフェース60008を含む。
【0219】
各プロセッサ60002は、例えば、種々のタイプのマイクロプロセッサ又はマイクロコントローラ、デジタル信号処理(DSP)プロセッサ、集積回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、再構成可能プロセッサ、プログラム可能読出し専用メモリ(PROM)、又はその任意の組合せであってよい。
【0220】
メモリ60004は、例えば、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、コンパクトディスク読出し専用メモリ(CDROM)、電気光学メモリ、光磁気メモリ、消去可能プログラム可能読出し専用メモリ(EPROM)、及び電気的に消去可能プログラム可能読出し専用メモリ(EEPROM)、強誘電性RAM(FRAM(登録商標))などの内部的に又は外部的に存在する任意のタイプのコンピュータメモリの適切な組合せを含んでよい。
【0221】
各I/Oインターフェース60006は、コンピューティングデバイス600が、キーボード、マウス、カメラ、タッチスクリーン、及びマイクロフォンなどの1つ又は複数の入力デバイスと、又はディスプレイ画面及びスピーカなどの1つ又は複数の出力デバイスと相互接続することを可能にする。
【0222】
各ネットワークインターフェース60008は、コンピューティングデバイス600が、インターネット、イーサネット(登録商標)、POTS(plain old telephone service)回線、PSTN(public switch telephone network)、ISDN(integrated services digital network)、DSL(digital subscriber line)、同軸ケーブル、光ファイバ、衛星、モバイル、無線(例えば、Wi-Fi、WiMAX)、SS7シグナリングネットワーク、固定回線、ローカルエリアネットワーク、広域ネットワーク、及びこれらの任意の組合せを含む他のものを含む、データを搬送することができるネットワーク(又は複数のネットワーク)に接続することによって、他のコンポーネントと通信すること、他のコンポーネントとデータを交換すること、ネットワークリソースにアクセス及び接続すること、アプリケーションをサーブすること、及び他のコンピューティングアプリケーションを行うことを可能にする。
【0223】
コンピューティングデバイス600は、アプリケーション、ローカルネットワーク、ネットワークリソース、他のネットワーク、及びネットワークセキュリティデバイスへのアクセスを提供する前に、(例えば、ログイン、一意識別子、及びパスワードを用いて)ユーザを登録及び認証するように動作してよい。コンピューティングデバイス600は、1人のユーザ又は複数のユーザにサーブしてよい。
【0224】
実施形態が詳細に説明されているが、これらに種々の変化、置換え、及び変更を行うことができることを理解されたい。
【0225】
さらに、本願の範囲は、本明細書で説明されるプロセス、機械、生産物、組成物、手段、方法、及びステップの特定の実施形態に限定されることを意図されない。当業者であれば本開示からすぐに理解するように、本明細書で説明される対応する実施形態と実質的に同じ機能を果たす又は実質的に同じ結果を達成する現存の又は後で開発されることになるプロセス、機械、生産物、組成物、手段、方法、又はステップが使用され得る。したがって、実施形態は、それらの範囲内にこのようなプロセス、機械、生産物、組成物、手段、方法、又はステップを含むことを意図される。
【0226】
理解されるように、前述の及び例示された例は、単に例示となることを意図される。