(57)【要約】【課題】本発明は、受信されるデータストリームを他の同期化デバイスの夫々で受信されるデータストリームと同期させるよう配置される複数の同期化デバイスを含むシステムにおける使用のための同期化デバイスを提供する。【解決手段】同期化デバイスは、データストリームを受信する同期化バッファと、受信されたデータストリームにおいてイベントを検出し、イベント検出時間を含むイベント情報をブロードキャストするイベント検出器と、システム内の各同期化デバイスのイベント検出器からそのイベント検出器での検出されたイベントのイベント検出時間を含むイベント情報を受け取り、システムにおいて最も遅延しているデータストリームの遅延時間を特定し、受信されたデータストリームに適用される遅延時間を計算して、受信されたデータストリームを最も遅延しているデータストリームと同期させる遅延算出要素とを有する。【選択図】図２Ｂ
2017108399.tif 000002
【特許請求の範囲】
【請求項１】
受信されるデータストリームを他の同期化デバイスの夫々で受信されるデータストリームと同期させるよう配置される複数の同期化デバイスを含むシステムにおける使用のための同期化デバイスであって、
データストリームを受信するよう構成される同期化バッファと、
前記受信されたデータストリームにおいてイベントを検出し、イベント検出時間を含むイベント情報をブロードキャストするよう構成されるイベント検出器と、
前記システムにおける各同期化デバイスの前記イベント検出器から当該イベント検出器での前記検出されたイベントの前記イベント検出時間を含むイベント情報を受け取り、前記システムにおいて最も遅延しているデータストリームの遅延時間を特定し、前記受信されたデータストリームを前記最も遅延しているデータストリームと同期させるよう前記受信されたデータストリームに適用される遅延時間を計算するよう構成される遅延算出要素と
を有する同期化デバイス。
【請求項２】
前記受信されたデータストリームが前記システムにおける前記最も遅延しているデータストリームである場合に、前記遅延算出要素は、如何なる前に適用された遅延時間も取り外すことによって前記最も遅延しているデータストリームのタイミングを調整するよう構成される、
請求項１に記載の同期化デバイス。
【請求項３】
前記イベントは、ストリームパラメータの変化の割合の極大又は極小のような、前記データストリームの固有特性である、
請求項１又は２に記載の同期化デバイス。
【請求項４】
前記計算された遅延時間は、前記同期化バッファの容量を変えることによって適用される、
請求項１乃至３のうちいずれか一項に記載の同期化デバイス。
【請求項５】
前記データストリームは、前記同期化バッファを通った後に前記イベント検出器を通る、
請求項１乃至４のうちいずれか一項に記載の同期化デバイス。
【請求項６】
前記イベント情報は、当該同期化デバイスを識別する識別子と、前記同期化バッファのバッファ容量のインジケーションとを更に含む、
請求項１乃至５のうちいずれか一項に記載の同期化デバイス。
【請求項７】
当該同期化デバイスは、前記複数の同期化デバイスの夫々からの複数のイベントについての前記イベント情報を記憶する記憶ユニットを更に有し、
順次的なイベント間の一連の時間ギャップは、前記適用される時間遅延を計算するために使用される、
請求項１乃至６のうちいずれか一項に記載の同期化デバイス。
【請求項８】
異なるメディアストリームも当該同期化デバイスによって受信され、
前記異なるメディアストリームは、前記データストリームとは異なったデータを有し、該異なったデータは、前記データストリームと時間的にリンクされ、
前記算出要素は、前記異なるメディアストリームが前記データストリームと同期するように、異なるメディア遅延を前記異なるメディアストリームに適用するよう構成される、
請求項１乃至７のうちいずれか一項に記載の同期化デバイス。
【請求項９】
前記データストリームは、オンデマンドのメディア片を含み、
前記異なるメディアストリームは、インタラクティブなメッセージングフィードを含み、
前記遅延算出要素は、前記メディア片のライブ開始時間と、前記計算された遅延時間を含む前記メディア片のオンデマンド開始時間との間の時間オフセットを特定し、前記メディア片の再生と同期して前記インタラクティブなメッセージングフィードにおけるメッセージを表示するよう前記時間オフセットを前記異なるメディアストリームに適用することによって前記異なるメディアストリームを前記データストリームと同期させるよう構成される、
請求項８に記載の同期化デバイス。
【請求項１０】
前記同期化バッファは、ストリーム配信のレートに対する変化を補償する再生バッファとしても働く、
請求項１乃至９のうちいずれか一項に記載の同期化デバイス。
【請求項１１】
データストリーム源と、請求項１乃至１０のうちいずれか一項に記載の同期化バッファのグループとを含むシステム。
【請求項１２】
前記同期化デバイスのうちの１つ以上は、前記データストリームの遅延を制御し且つ前記データストリームをユーザデバイスへ送信するネットワークエッジプロキシである、
請求項１１に記載のシステム。
【請求項１３】
前記グループにおける各同期化デバイスに関するシステム情報を記憶するよう構成されるディスカバリサーバを更に有し、
新しい同期化デバイスが前記グループに加えられる場合に、前記新しい同期化デバイスは、システム情報の要求を前記ディスカバリサーバへ送信するよう構成され、前記ディスカバリサーバは、前記システム情報を含む前記新しい同期化デバイスへの応答を送信するよう構成される、
請求項１１又は１２に記載のシステム。
【請求項１４】
複数の同期化デバイスを含むシステムにおける同期化デバイスで受信される受信されたデータストリームを、前記システムにおける他の同期化デバイスの夫々で受信されるデータストリームと同期させる方法であって、
当該同期化デバイスの同期化バッファでデータストリームを受信し、
前記受信されたデータストリームにおいてイベントを検出し、
イベント検出時間を含むイベント情報をブロードキャストし、
前記システムにおける各同期化デバイスから、その同期化デバイスでの前記検出されたイベントの前記イベント検出時間を含むイベント情報を受け取り、
前記システムにおいて最も遅延しているデータストリームの遅延時間を特定し、
前記受信されたデータストリームを前記最も遅延しているデータストリームと同期させるよう前記受信されたデータストリームに適用される遅延時間を計算する
ことを有する方法。
【請求項１５】
同期化デバイスのコンピュータプロセッサで実行される場合に、該コンピュータプロセッサに、請求項１４に記載の方法を実施させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期化デバイス、方法、プログラム及びシステムに関係があり、特に、メディアストリームに同時にアクセスするビューアーの分散グループによるビューイングのために複数のメディアストリームを同期させる同期化デバイス、方法、プログラム及びシステムに関係がある。
【背景技術】
【０００２】
ブロードキャストメディアの消費は、人気のあるアクティビティである。特定のデバイスタイプ（すなわち、テレビ受信機及びラジオ）への同時ブロードキャストが従前は支配的であったが、ネットワークの能力の伸びは、コンピュータ、電話機及びタブレットのような広範なデバイスでこのコンテンツを消費する人々を見込んでいる。メディアストリームは、それらのデバイスの夫々でライブで到来しているように見えるが、実際には、ネットワーキングの要件、及びストリームが全てのタイプのデバイスの異なった表示能力に調整される必要性は、ストリームが、メディアストリームの発生時の実時間と比較して、わずかに（数秒）遅延して各デバイスに達することを意味する。
【０００３】
ソーシャルメディア、並びにビデオ及びオーディオ会議の広い利用可能性は、人々のグループが互いに物理的に近くなくとも実時間において互いと相互作用することができることを意味する。これは、分散したグループが、彼らのローカルのデバイスで同時にイベントを見て、他の通信チャネルを用いてグループの他のメンバーと対話することによって、イベントの経験を共有することを可能にする。そのようなインタラクションは、ライブのスポーツイベントについてのスコアのような、メディアストリームにおけるイベントに対するコメント及び反応を含む。このようなインタラクションは、グループの全メンバーが同時にイベントを計算する場合に最も良く働き、故に、前の段落で記載された遅延は、グループによって共有される経験の喜びを減らす。
【０００４】
グループの分布は、異なる大陸から同じバーの異なるテーブルまで、全範囲の物理的分離で起こり得る（問題は、１つのテーブルが、他のテーブルのデバイスがイベントを見る前に喝采することによって、イベントに反応する、すなわち、スコアを言うことである。）。
【０００５】
分散したグループのメンバーは、異なるソースから彼らのメディアストリームを取得する。彼らが異なる国にいる場合には、共有されるイベントは、地元放送局によってカバーされる（オリンピックイベントの世界放送を考える。）。それらの異なるソースは、異なる遅延をストリームにもたらす。
【発明の概要】
【０００６】
本発明の実施形態の主たる対象である遅延は、同じストリームの他のビューアーと比較される場合に明らかであるもの（例えば、０．５秒から数秒）であり、更には、相当量の時間の間（例えば、ストリームの存続期間の間又は数分間）配置される。なお、地理的に近い（例えば、同じ会場にいる）ビューアーのグループに関して、遅延許容量は低減され、これは、よりずっと小さい遅延しか受け入れられ得ないことを意味する。
【０００７】
それらの遅延の主たる原因には、次のものがある：
−トランスコーディング
メディアストリームは、デバイスのタイプのための且つ配信の方法のための正確なフォーマットで配信される必要があり、地上放送ＴＶのフォーマットは衛星放送とは異なり、両者は、ＩＰを介したメディアストリームとは異なる。オリジナルソースは１つのフォーマットにあり、残りのフォーマットはこのフォーマットから生成される。このリフォーマッティング、又はトランスコーディングは、何らかの処理を必要とし、これを行うための時間は、トランスコーディングされたストリームの送信を遅延させる。
【０００８】
−意図的な遅延
いくつかのストリームは、例えば、スウェアワード（swear  word）の削除を可能にするために、ストリームの製作者によって挿入された意図的な遅延を含んでよい。全ての製作者が同じ長さの遅延を挿入するわけではない。
【０００９】
−局所遅延
ビューアーがストリームを表示すると選択する方法は、遅延を導入し得る。例えば、ストリームを得るためにタブレットを用いるが、結果を（例えば、Ｃｈｒｏｍｅｃａｓｔ（登録商標）を用いて）その場にあるＴＶで表示することは、純粋なタブレット表示に対して遅延を付加し得る。
【００１０】
−異なる開始時間
グループが記録されたストリームを（オンデマンドで）見ている場合に、彼らは、わずかに異なった時点で夫々見始めてよく、あるいは、彼らが一時的にビューイングを停止することに同意する場合に、彼らの再開もわずかに非同期であってよい。
【００１１】
−再生バッファ
異なる再生メカニズムは異なるバッファサイズを有し、バッファが遅延をストリームに導入するとして、異なるバッファサイズは異なる遅延を生み出す。
【００１２】
メディアストリームを配信するために使用されるネットワーク及びコンピューティング資源は多くの他のユーザと共有され、それらの資源についてのコンテンションは変化する点に留意されたい。これは、メディアストリームの見かけの速度において時間にわたってわずかな変動が存在することを意味する。それらは、上述された遅延よりもずっと小さく、個々のストリームを配信するメカニズムによって補償される一時的な遅延又は加速を生じさせる。この遅延発生源は本実施形態の対象ではないが、異なる再生速度が続く場合に、実施形態は、遅延が大きくなりすぎないことを確かにする。
【００１３】
メディアストリームが異なるルートを通って、ビューアーごとに異なる処理を受ける場合に、ユーザの分散したグループによるメディアストリームの同期された同時のビューイングを可能にすることが望ましい。これは、ビューアーが、一部のビューアーが他のビューアーよりも前にイベントを見ることなしに、メディアストリームにおけるイベントに関して相互作用することを可能にする。
【００１４】
第１の態様の実施形態に従って、受信されるデータストリームを他の同期化デバイスの夫々で受信されるデータストリームと同期させるよう配置される複数の同期化デバイスを含むシステムにおける使用のための同期化デバイスであって、データストリームを受信するよう構成される同期化バッファと、前記受信されたデータストリームにおいてイベントを検出し、イベント検出時間を含むイベント情報をブロードキャストするよう構成されるイベント検出器と、前記システムにおける各同期化デバイスの前記イベント検出器から当該イベント検出器での前記検出されたイベントの前記イベント検出時間を含むイベント情報を受け取り、前記システムにおいて最も遅延しているデータストリームの遅延時間（最大の遅延時間を有する。）を特定し、前記受信されたデータストリームを前記最も遅延しているデータストリームと同期させるよう前記受信されたデータストリームに適用される遅延時間を計算するよう構成される遅延算出要素とを有する同期化デバイスが提供される。
【００１５】
本発明の実施形態は、異なる場所にいるユーザによるメディアストリーム（例えば、ライブのイベントのビデオ又は予め記録されたビデオ若しくはオーディオストリーム）の同期された同時のビューイングを可能にする技術に関係があり、メディアストリームは異なるルート及び場合により異なるコンテンツプロバイダを介して各個人へ供給される。
【００１６】
（例えば、異なる伝送経路及びチャネルにわたって）異なるルートを通り、異なるタイプのビューイングデバイス（例えば、テレビジョン、ラジオ、コンピュータモニタ又はモバイルデバイス）に向けられるメディアストリームは、異なる量の遅延を受け、一方で、それらのストリームを消費する個人は、瞬間的なルートを介してイベントについて論じるためにしばしば互いと相互作用する。これは、例えば、ビデオを見ている間に、貧しい経験をもたらし得る。一部の個人は、他の個人がまだ見ていないイベントについてコメントする。本願で記載される実施形態は、メディアストリームに対する変更を必ずしも必要としないユーザ間の有益なピア・ツー・ピアの同期化を供給することができ、そして、ビューインググループの全てのメンバーが共通のストリームを足並みをそろえて見ることを確かにすることができる。
【００１７】
本質的に同じ情報を多数のデバイスへ送信する無線又は有線通信システムにおいて、特定のデバイスで受信される夫々のデータストリーム（又はメディアストリーム）は、システムにおける他のデバイスへ送られる他のデータストリームとは異なる伝送遅延の量を経験してよい。
【００１８】
実施形態に関連するデータストリームは、データストリーム源（例えば、放送局）から絶えず送信されるデータのフローであってよく、デバイス（実施形態に関連して同期化デバイスと通常は称される。）で相応に受信される。データストリームは、放送局によって送信されている間、同期化デバイスで連続して受信されてよい。
【００１９】
同期化デバイスは、データストリーム源からデータストリームを受信し、データストリームがその後にシステムにおける全ての他のデータストリームと同時に表示／出力されるように、ある時間量（遅延時間）だけデータを同期化バッファにおいて格納する。
【００２０】
遅延時間を計算するために、データストリームは、同期化バッファからイベント検出器（認識器又は識別器）へ出力される。イベント検出器は、時間マーカとして使用されるイベントを検出する。検出されたイベントから、データストリームによって経験される相対的な遅延量は、システムにおける他のデータストリームと比較される場合に、計算され得る。イベント検出器は、次いで、イベントが検出された時間を示す情報（イベント情報）を遅延算出要素（実際上、相対遅延計算器）へ渡す。
【００２１】
イベント検出器は、イベントが検出される時間を特定するために、クロックを含んでよく、あるいは、別個の時間基準デバイスへ接続されてよい。遅延算出要素は、その特定の同期化デバイスに属するイベント検出器からのイベント情報とともに、全ての他のイベント検出器（システムにおける他の同期化デバイスに属する。）からの対応するイベント情報を受け取り、システムにおける最も遅延しているデータストリームによって経験される遅延に対して、それ自身の同期化デバイスの受信されたデータストリームにおける遅延の量を特定する。遅延算出要素は、次いで、受信されたデータストリームが（対応する同期化デバイスで）最も遅延しているデータストリームと同時に出力されることを可能にするために必要とされる遅延の量を計算する。
【００２２】
同期化デバイスは、出力デバイス（テレビジョン、パーソナルコンピュータ、モバイルデバイス、など）に含まれてよく、あるいは、データストリーム伝送の受信側にある又はそのための別個のデバイスであってよい。同期化デバイスは、システム内の他の同期化デバイスによる対応する出力デバイス／出力セクションへの他のデータストリームの出力と同期して、遅延されたデータストリームを出力デバイスへ（あるいは、出力デバイスに組み込まれている場合には、出力セクションへ）出力する。
【００２３】
遅延算出要素は、１つの送信方法（例えば、有線ルート）によるそれ自身の同期化デバイスのイベント検出器からのイベント情報と、他の方法（例えば、無線）によるシステム内の全ての他のイベント検出器からのイベント情報とを受け取ってよい。遅延算出要素は、受信されたイベント情報及び／又はその起源を送信方法に基づき認識する別個のイベント情報認識ユニットを含んでよい。
【００２４】
システムは、複数の（場合により同じ）同期化デバイスを含んでよく、それらの同期デバイスのうちの１つは、夫々の受信機又はデータストリーム出力点で又はその中に位置付けられる。従って、上記の実施形態は、同期化デバイスのうちの１つに言及するが、これは、単に説明のためであり、他の同期化デバイスは対応する構成を備えてよい点が理解されるべきである。
【００２５】
任意に、受信されたデータストリームがシステムにおける最も遅延しているデータストリームである場合には、遅延算出要素は、前記遅延算出要素は、如何なる前に適用された遅延時間も取り外すことによって、最も遅延しているデータストリームのタイミングを調整するよう構成される。
【００２６】
相応に、システムにおける同期化デバイスの遅延算出要素は、如何なる以前に適用された遅延時間も取り外すような、最も遅延しているデータストリームのタイミングに対する調整を考慮しながら、最も遅延しているデータストリームと同期するよう構成される。言い換えると、遅延算出要素は、調整されたタイミングと同期する。
【００２７】
最も遅延しているデータストリームへ加えられた遅延をゼロにすることは、別のデータストリームが最も遅延しているデータストリームになるとして遅延が累積的に付加されるクリープ（creep）又はバッファ消耗を回避する。例えば、最も遅延しているデータストリームにおいて（過去の実績に起因して）含まれている“３”の遅延は、他のデバイスでは３よりも大きい遅延をもたらす。
【００２８】
任意に、イベントは、ストリームパラメータの変化の割合の極大又は極小のような、データストリームの固有特性である。
【００２９】
この実施形態では、検出可能なイベントは、夫々のデータストリームの既に一部である特定のイベントであってよい。如何なる適切なアルゴリズムも、イベントとなり得る特定のストリーム特性を検出するために使用され得る。有利なことに、データストリームが検出可能なイベントを既に含む場合には、特定のイベントを付加する必要はなく、これは、処理を減らし、更には、データストリームが不変なままであることを可能にしながら、データストリームにおけるデータの改悪の機会を減らす。検出可能なイベントは、しかしながら、（例えば、データストリーム源で）データストリームに加えられてよい。検出可能なイベントを加える利点は、ほとんど又は全く固有の検出可能なイベントを有さないデータストリームにおいて確認され得る。この具体的な場合において、容易に検出可能なイベントは、イベント検出器がイベントを検出できないことがないことを確かにするよう送信側で加えられてよい。
【００３０】
任意に、計算された遅延時間は、同期化バッファの容量を変えることによって適用される。
【００３１】
遅延算出要素は、必要とされる遅延時間値を適用するよう、バッファの使用容量を設定してよい。ここで、遅延時間は、データストリームのどれくらいが出力される前にバッファされる（遅延される）かによって指示される。バッファの設定された使用容量に基づき遅延量を制御することによって、同期化デバイスは、遅延がバッファサイズに由来する受動的なアクションになる点で、簡単にされる。これは、制御信号が遅延時間を示す必要性を減らし、更には、バッファ資源が適切に使用されることを確かにする。
【００３２】
任意に、データストリームは、同期化バッファを通った後にイベント検出器を通る。
【００３３】
データストリームを同期化バッファの後にイベント検出器に通すことによって、データストリームのその意図された出力タイミングとのより近いアライメントが達成される。加えて、データストリームの伝送経路に沿って後にイベント検出器を位置付けることは、全ての先行する段でのデータストリームの通信に付随した遅延（特に、データストリームの出力時間に影響を及ぼし得る予測不可能な遅延）が考慮され得ることを意味する。
【００３４】
任意に、イベント情報は、同期化デバイスを識別する識別子と、同期化バッファのバッファ容量のインジケーションとを更に含む。
【００３５】
識別子及びバッファ容量を知っていることは、このデータが格納され、夫々の同期化デバイスのために更新されることを可能にする。これは、最も遅延しているストリームを受信するデバイスによって行われる如何なる調整も考慮しながら、新しい遅延時間の簡単な適用を可能にすることができる。実際に、他のデバイスは、最も遅延しているストリーム
を有するデバイスのアイデンティティ及びその現在のバッファ容量（遅延）を知っており、この現在の遅延を、このデバイスと同期するために加えられた遅延から減じることができる。
【００３６】
同期化バッファの容量は、如何なる適切な方法においても、例えば、絶対容量（トータルのサイズ／メモリ）に関して、又はバッファのトータルのサイズのパーセンテージ（すなわち、利用可能な（使用中及び未使用の）容量のパーセンテージとしての使用容量として）、あるいは、時間単位又は単位の任意の組を用いて、提示されてよい。技術が進歩し、メディアをストリーミングする品質が高くなるにつれて、関連するデータの量は増大する。従って、バッファ容量に関する情報を含めることは、バッファがシステムにおいてアップグレードされる必要があるとの早期の警告を提供するために使用されてよい。
【００３７】
任意に、同期化デバイスは、他の同期化デバイスの夫々からの複数のイベントについてのイベント情報を記憶する記憶ユニットを更に有する。この場合に、順次的なイベント間の一連の時間ギャップは、適用される時間遅延を計算するために使用されてよい。例えば、不規則なイベントが存在する場合に、異なるデバイスでのデータストリーム間の時間オフセットは、データストリームにおける変化する時間ギャップ値の連続をアライメントすることによって、検出され得る。連続は、夫々のデバイスで同じ時間ギャップ値を有するが、異なる時間遅延によってオフセットされている。全てのバッファは、ゼロ遅延による初期設定を有する。
【００３８】
任意に、異なるメディアストリームも当該同期化デバイスによって受信される。異なるメディアストリームは、データストリームとは異なったデータ（例えば、Ｔｗｉｔｔｅｒ（登録商標）フィード及び同様のもののような、別個のオーディオストリーム又はコメンタリ）を有する。異なったデータは、データストリームと時間的にリンクされる。算出要素は、異なるメディアストリームがデータストリームと同期するように、異なるメディア遅延を異なるメディアストリームに適用するよう構成される。対比しやすくするために、この遅延時間は、以降、異なるメディア遅延時間と称される。
【００３９】
異なるデバイスで受信されるデータストリームは、全て同じデータを含んでよい。例えば、テレビ放送イベントが（多数の同期化デバイスを通じて）複数のテレビジョンへ送信される場合に、全てのテレビジョンは本質的に同じデータを表示する。代替的に、データは対応するが同じでなくてよい。例えば、１つのデータストリームは、テレビ放送イベント（例えば、スポーツイベント／プログラム）を示すためのデータを含んでよく、異なるデバイス又は同じデバイスによって受信される他の異なるメディアデータストリームは、テレビ番組への別のオーディオコメンタリを示すためのデータを含んでよい。それら２つは、望ましくは、対象の聴衆が所望の時点でコメンタリとともに番組を経験し得るように、同期して出力される。この場合における２つ（又はそれ以上）のデータストリームは、互いに同じデータを有さないが、互いに合わせて再生される（聴衆に出力される）よう意図される。更なるシナリオでは、システム内のいくつかのデータストリームは同じデータを含んでよく、一方、他は、上述されたように、異なるが対応するデータを含んでよい。
【００４０】
任意に、データストリームは、オンデマンドのメディア片を含み、異なるメディアストリームは、インタラクティブなメッセージングフィードを含み、遅延算出要素は、メディア片のライブ開始時間と、計算された遅延時間を含むメディア片のオンデマンド開始時間との間の時間オフセットを特定し、メディア片の再生と同期してインタラクティブなメッセージングフィードにおけるメッセージを表示するよう時間オフセットを異なるメディアストリームに適用することによって異なるメディアストリームをデータストリームと同期させるよう構成される。
【００４１】
オンデマンドのビューイングは、グループが、そもそもはライブで放送されていた記憶されているショーを見ることに決める状況に関係があり得る。この状況では、夫々のビューアーがわずかに異なる時点でオンデマンドのメディア片を再生し始めるか、又はわずかに異なる点へ早送りしたいと望む場合に、遅延が存在する。
【００４２】
放送ショーの記録されたバージョンのようなオンデマンドのサービスを見るために、本発明の実施形態は、グループを構成しない、最初の放送中にショーに反応した人々からのインタラクティブなメッセージングフィードと同期することを可能にする。インタラクティブなメッセージングフィードは、グループローカル時間と最初の放送の時間との間の時間差を示すショーオフセットを含んでよい。メッセージングフィードはまた、メッセージがフィードに投稿されるショータイムライン内の時間にマークして、非同期のメッセージがあたかも最初の放送の間に起こったかのようにタイムライン内にマージされ得るようにするオプションを含むよう増強されてよい。
【００４３】
任意に、同期化バッファは、ストリーム配信のレートに対する変化を補償する再生バッファとしても働く。
【００４４】
本発明の更なる態様の実施形態に従って、データストリーム源と、様々に上述された同期化バッファのグループとを含むシステムが提供される。
【００４５】
システムは、少なくとも１つのデータストリーム源を含む。ストリーミングされるデータに応じて、更なるデータストリーム源が存在してよい。１つのデータストリーム源は、単一の物理送信機／放送局であってよく、あるいは、例えば、送信範囲を増やすために、複数の送信機を含んでよい。複数のデータストリーム源は、例えば、システムが地理的に広い範囲にわたって延在する場合に、又はデータストリームが異なるが対応するデータを含む場合に（以下でより詳細に記載される。）、使用されてよい。
【００４６】
任意に、同期化デバイスのうちの１つ以上は、データストリームの遅延を制御し且つデータストリームをユーザデバイスへ送信するネットワークエッジプロキシである。
【００４７】
任意に、システムは、グループにおける各同期化デバイスに関するシステム情報を記憶するよう構成されるディスカバリサーバを更に有し、新しい同期化デバイスがグループに加えられる場合に、新しい同期化デバイスは、システム情報の要求をディスカバリサーバへ送信し、ディスカバリサーバは、システム情報を含む新しい同期化デバイスへの応答を送信する。
【００４８】
ディスカバリサーバは、システム（同期化デバイスのグループ）に加わることを望む同期化デバイスによって接触されてよい。
【００４９】
本発明の更なる他の態様の実施形態に従って、複数の同期化デバイスを含むシステムにおける同期化デバイスで受信される受信されたデータストリームを、前記システムにおける他の同期化デバイスの夫々で受信されるデータストリームと同期させる方法であって、当該同期化デバイスの同期化バッファでデータストリームを受信し、前記受信されたデータストリームにおいてイベントを検出し、イベント検出時間を含むイベント情報をブロードキャストし、前記システムにおける各同期化デバイスから、その同期化デバイスでの前記検出されたイベントの前記イベント検出時間を含むイベント情報を受け取り、前記システムにおいて最も遅延しているデータストリームの遅延時間を特定し、前記受信されたデータストリームを前記最も遅延しているデータストリームと同期させるよう前記受信されたデータストリームに適用される遅延時間を計算することを有する方法が提供される。
【００５０】
システムにおける最も遅延しているデータストリームは、最大の（相対）遅延時間を有するデータストリームであるか、あるいは、検出されたイベント検出時間に基づき最も遅延されている。上述されたように、最も遅延しているデータストリームのタイミングは、対応するデバイスへ加えられている遅延時間をゼロにすることによって、調整され得る。
【００５１】
本発明の更なる他の態様の実施形態に従って、コンピュータプロセッサで実行される場合に、該コンピュータプロセッサに、上記の実施形態に従う方法を実施させるプログラムが提供される。
【００５２】
上述された機能モジュール／デバイスの夫々は、モジュールの機能を実施するために特に構成されたハードウェアによって実現されてよい。機能モジュールは、コンピュータプロセッシングユニットによって実行される場合にコンピュータプロセッシングユニットに機能モジュールによる機能を実施させる命令又は実行可能プログラムコードによっても実現されてよい。コンピュータプロセッシングユニットは、機能モジュールによる機能を実現するために、メモリ、ストレージ、Ｉ／Ｏデバイス、ネットワークインターフェイス、センサ（オペレーティングシステム又は他を介する。）、及びコンピュータデバイスの他のコンポーネントと協働して動作してよい。モジュールは、ユニット又は要素とも呼ばれてよく、方法、プログラム又はプロセスのステップ又は段階であってよい。
【００５３】
同期化デバイスは、コンピュータデバイス又はサーバのような単一のエンティティによって実現されてよく、あるいは、例えば、制御プロトコルのレイヤとして、協働する１つよりも多いコンピュータデバイスによって実現されてよい。従って、夫々の機能モジュールは、複数のコンピュータデバイスに属するコンポーネントによって実行されてよく、機能モジュールは、１つよりも多いコンピュータデバイスよって提供されてよい。
【００５４】
態様（ソフトウェア／方法／装置）は別々に論じられているが、１つの態様／実施形態に関して論じられている特徴及びその結果は、他の態様に同様に適用可能である点が理解されるべきである。従って、方法の特徴が論じられている場合に、装置の実施形態が、その特徴を実施するか又は適切な機能を提供するよう構成されたユニット又は装置を含むこと、及びプログラムが、それらが実行されているコンピュータ装置に前記の方法の特徴を実施させるよう構成されることは、当たり前である。上記の態様のいずれでも、様々な特徴はハードウェアにおいて、又は１つ以上のプロセッサで実行されるソフトウェアモジュールとして、実装されてよい。
【００５５】
従って、本発明の好適な実施形態に従う方法は、装置の態様の如何なる組み合わせも有することができる。それらの更なる実施形態に従う方法は、それらがプロセッシング及びメモリ機能を必要とする点で、コンピュータにより実施されるものとして記載され得る。
【００５６】
本発明は、デジタル電子回路において、あるいは、コンピュータハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせにおいて、実装され得る。本発明は、コンピュータプログラム又はコンピュータプログラム製品、すなわち、１つ以上のハードウェアモジュールによる実行のために又はその動作を制御するために、情報担体において、例えば、マシン可読記憶デバイスにおいて、又は伝播される信号において、実体的に具現されるコンピュータプログラムとして実装され得る。コンピュータプログラムは、スタンドアローンのプログラム、コンピュータプログラム部分又は１つよりも多いコンピュータプログラムの形をとることができ、コンパイル済み又は解釈済み言語を含む如何なる形式のプログラミング言語でも記述され得、そして、それは、スタンドアローンのプログラムとして又はモジュール、コンポーネント、サブルーチン、又はデータ処理環境での使用に適した他のユニットとしてを含め、如何なる形でも展開され得る。コンピュータプログラムは、１つの場所において１つモジュールで又は複数のモジュールで実行されるか、あるいは、複数の場所にわたって分散されるように、展開され得る。
【００５７】
実施形態に関連する利点は、“第２のスクリーン”（例えば、ビューイングが第１のデバイス（例えば、ＴＶスクリーン）で起こるのと同時に使用される付加的なデバイス（例えば、電話機／タブレット））を通じて相互作用する物理的に離れた人々のグループによるデータストリーム（メディアストリーム）の改善された消費である。第２のスクリーンは、ライブメッセージング、ライブブログ、ボーティング、などのような他のルートを介して相互作用するために使用されてよい。本発明の実施形態は、メディアストリームを配信する方法への変更を必要とせずに、全てのタイプのデバイス及びネットワークにとって有効であることができる。実施形態の使用は、コンテンツ製作者へ及びネットワークプロバイダへ収入機会を提供しながら、ブロードキャスト及びオンデマンドのメディアの消費を奨励する。実施形態は、ネットワークエッジコンピューティングから提供されるサービスとして実装され得、故に、如何なるタイプの表示機器も対象とする。
【００５８】
本発明の好適な実施形態は、単なる一例として、添付の図面を参照して以降記載される。
【図面の簡単な説明】
【００５９】
【図１】異なるメディアストリームにおける遅延の発生源を示す例である。
【図２Ａ】単一のビューアーに適用される本発明の実施形態を示す。
【図２Ｂ】本発明の簡略化された実施形態を示す。
【図２Ｃ】受信されたデータストリームが最初にイベント検出器を通る実施形態を示す。
【図２Ｄ】ディスカバリサーバを含むシステムの実施形態を示す。
【図３】メディアストリームが同期されているグループのメンバー間のインタラクションのパターンの例を示す。
【図４】遅延算出要素の実施形態の制御のフローを示す。
【図５】Ａ〜Ｃは、ビューアーがグループに参加する場合のメッセージのフローの例を示す。
【図６】３ビューアーシステムのためのサンプルデータ構造を示す。
【図７】図５Ａで示される例のＮＥプロキシを使用する変形例を示す。
【図８】図３で示される例の２つのＮＥプロキシを使用する変形例を示す。
【発明を実施するための形態】
【００６０】
図１は、メディアストリームの受信における遅延の発生源及び受信されたストリームに対する作用の例を示す。２つの放送局（放送局１及び２と称される。）は、様々なソースにわたるイベントの範囲を伝えている。カメラ及びミキシングは共通の動作であり、同じストリームが両方の放送局へ配信される。放送局１は、如何なる編集上の遅延もなしでイベントを送信し、一方、放送局２は、ストリームを５秒間遅延させる。いずれの放送局も、異なるユーザデバイスを可能にするよういくつかのストリームにトランスコーディングを適用するが、それらは異なる技術を使用し、故に、放送局１によって導入される遅延は６秒であり、放送局２からの遅延は４秒である。ユーザ１乃至３は、自身の受信デバイスで直接にイベントを見るが、ユーザ４は、自身のデバイスからテレビジョン（ＴＶ）へストリームを投じ、更なる１秒の遅延を導入する。それらの遅延の累積的影響は、ユーザがインシデントを見る時とユーザが同じインシデントを見る時との間に１０秒の時間差が存在することである。
【００６１】
実施形態は、ビューインググループのメンバーごとに個々にメディアストリームの遅延を挿入することを含む。夫々の遅延のサイズは異なり、遅延がストリームの受信に合わせてというよりむしろ“グループ時間”に合わせるように決定される。グループ時間は、最も遅い（最も遅延している）グループメンバーが最も遅延が小さいメンバーと同時にイベントを見るように、ストリームに対する一般に認められている遅延である。グループ時間は、メディアストリームにおいて検出されたイベントがいつ起こったかに関する情報の軽い（lightweight）ピア・ツー・ピア共有を用いてローカル計算によって決定される。
【００６２】
詳細には、多くの受信デバイスを含むシステムにおいて、夫々の受信デバイスは、その受信デバイスの出力をシステムにおける全ての他の受信デバイスの出力と同期させるために使用される同期化部分を含む。例えば、スポーツイベント又は会場で、夫々の受信デバイスは、テレビジョンにおいて具現されてよく、同期された出力は、全てのＴＶが関連するオーディオ／ビジュアルフィードを同時に再生することを意味する。
【００６３】
これを達成するために、本発明の実施形態は同期化デバイスを用いる。そのような部分は、一実施形態において、入来するデータストリームを受信し、それを、遅延算出要素によって指示された時間量の間保持するバッファ（同期化バッファ）を含む。システムにおける夫々の受信デバイスは、そのような遅延算出要素を含む。夫々の受信デバイスは、イベント検出デバイスを更に含む。遅延算出要素、イベント検出デバイス及び同期化バッファは一緒に同期化デバイスを構成する。
【００６４】
イベント検出デバイスは、受信されたデータストリームにおいてイベントを検出し、イベントが検出された時間を示すイベント情報を（少なくとも遅延算出要素へ及びシステムにおける他の受信デバイスの他の遅延算出要素へ）ブロードキャスト（送信）するよう構成される。
【００６５】
遅延算出要素は、従って、システムにおける全てのイベント検出デバイスからイベント情報を受け取る。このことは、いずれか１つのストリームが遅延している最大の時間量を計算することを遅延算出要素に可能にする。遅延算出要素は、計算された時間量をそれ自身の受信デバイスのイベント検出デバイスと比較し、それ自身のデータストリームの受信と、システムにおける最も遅い（最も遅延している）データストリームの受信との間の時間差を決定する。
【００６６】
遅延算出要素が、比較及び決定を通じて、システムにおける他のデータストリームのいずれもそれ自身のデータストリームよりも遅くないと結論を出す場合に、遅延算出要素は、それ自身を、システムにおいて最も遅いデータストリームを有していると見なし、同期化バッファに、データストリームを遅延させないように（すなわち、ゼロの遅延を提供するように）指示する。しかし、他のデータストリームがそれ自身のデータストリームよりも遅いものとして計算される場合には、遅延算出要素は、それ自身のデータストリームにおけるイベントが検出された時間と、最も遅いデータストリームにおけるイベントが検出された時間との間の差を計算し、同期化バッファに、最も遅いデータストリームを有するデバイスから取り外される如何なる遅延も時間差から減じたものに等しい時間量だけデータストリームを遅延させるように指示する。それにより、自身のデータストリームは、次いで、システムにおける全ての他のデータストリームが各自の同期化バッファから出力されるのと同時に同期化バッファから出力される。
【００６７】
データストリームが計算された遅延時間だけ遅延されると、データストリームは、意図された聴衆への通信のためにディスプレイ／出力ユニットへ転送される。
【００６８】
図２Ａは、単一のビューアーに適用されるものとして本発明の実施形態を示す。ビューアーのディスプレイ２０１は、３つの新しいコンポーネント２０２、２０３、２０４によって増強される。２０２は、メディアストリーム２０５の受信と２０１でのその表示との間に遅延を付加するよう導入された同期化バッファである。遅延の長さは、ビューインググループのメンバー間で異なり、個々のビューアーごとに遅延算出要素２０４によって制御される。メディアストリームは、同期化バッファの後にイベント検出デバイス２０３を通る（この配置は、イベントが同期化に近づくにつれて、遅延算出要素におけるアライメント動作の有効性を高める。）。この実施形態の変形例は、２０２の前に２０３を置き、場合により、２０４での更なる計算を犠牲にする可能性を有しながら、現在のバッファサイズをブロードキャストする必要性を除く。イベント検出要素２０３は、ビューインググループの全てのメンバーのメディアストリームにおいて同様のイベントを検出し（更なる議論については以下を参照。）、それらのイベントの時間をグループの全てのメンバーの遅延算出要素へ送信する（送信については外向き矢印２０６ａ及び２０６ｂとして、他のグループメンバーからのタイミングの受信については内向き矢印２０７として示される。）。同期化のために必要とされる遅延に対する変更は、遅延算出要素２０４によって必要に応じて同期化バッファ２０２へ（矢印２０８）、そして、新たに同期化されたビューイング時間への滑らかな遷移を可能にするようディスプレイ２０１へ送信される。
【００６９】
図２Ｂは、システム（図示せず。）における同期化デバイス３００を示す。データストリーム（ＤＳ）は同期化デバイス３００で受信される。例えば、データストリームは、データストリーム源から受信される。受信されたデータストリームは、次いで、所定の時間量又は遅延時間の間、同期化バッファ３０２においてバッファリングされる。その後に、データストリームは、イベント検出器３０３（イベント検出要素）へ転送される。イベント検出器３０３は、データストリームにおいてイベントを検出する（それは、データストリームデータの部分であるか、あるいは、データストリームに別個に加えられてよい。）。イベント検出器３０３は、次いで、イベントが検出されたイベント検出時間を示し、イベント検出時間をシステムにおける他の同期化デバイス３００へ及び遅延算出要素３０４へイベント情報（ＥＩ）として送信（ブロードキャスト）する。より具体的には、イベント検出器３０３は、イベント検出時間をシステムにおける夫々の遅延算出要素３０４へ送信する。次いで、遅延算出要素３０４は、このときシステムにおける夫々のイベント検出器３０３からイベント検出時間を受信しており、受信されたイベント検出時間に基づき、システムにおけるいずれのデータストリームの最大遅延時間がどのようであるかを特定する。この最大遅延時間は、次いで、受信されたデータストリーム（比較を実施する遅延算出要素３０４を含む同期化デバイス３００で受信されたデータストリーム）によって経験されている遅延時間と比較される。この比較から、遅延算出要素３０４は、受信されたデータストリームを、最大遅延時間を有するデータストリームと同期させるために必要とされる（追加の）遅延時間の量を計算する。この計算された遅延時間は、次いで、同期化バッファ３０２において、データストリーム（データストリーム源から連続して受信されている。）に適用される。それによって、受信されたデータストリームは、システムにおける最も遅延しているデータストリーム（最大遅延時間を有するデータストリーム）と同期する。受信されたデータストリームは、同期化デバイス３００から（出力／ディスプレイデバイス３０１へ）出力される。
【００７０】
図２Ｃは、図２Ｂで示される実施形態変形例を示す。受信されたデータストリームは最初にイベント検出器３０３を通り、その後に同期化バッファ３０２を通る。この配置は、遅延時間が加えられる前に計算されることを可能にし、遅延時間が最初の適用から正確であることを意味する。他のコンポーネントは、図２Ｂについて上述されたとおりである。
【００７１】
図２Ｄは、システム内で使用される複数の同期化デバイス３００、ブロードキャスト源３４０、及びディスカバリサーバ３５０（中央サーバ）を含むシステム又はグループの例となる実施形態を示す。ディスカバリサーバ３５０は、同期化デバイス３００によって接触される。同期化デバイス３００は、システムに加えられる（含まれる）べき出力デバイス３０１において具現されてよい。ディスカバリサーバ３５０は、システムに加わりたいと望むデバイスから、システムに関する情報の要求（ｒｅｑ）を受信する。ディスカバリサーバ３５０は、次いで、新しいデバイスに関する情報を記憶する。ディスカバリサーバ３５０は、システムにおける全てのデバイス（それ自身、データストリーム源、及び夫々の同期化デバイス３００を含む夫々の受信機）に関するシステム情報（ＳＩ）も記憶する。特に、ディスカバリサーバ３５０は、システムにおける夫々の同期化デバイス３００を識別するシステム情報を記憶するよう構成されてよい。このとき、新しいデバイス３００がシステムに加わりたいと望む場合に、同期化デバイス３００はディスカバリサーバ３５０と接触してよく、これに応答して、ディスカバリサーバ３５０は、新しい同期化デバイス３００にシステム情報を送る。ディスカバリサーバ３５０は、次いで、新しい同期化デバイス３００に関する情報をシステムにおける既存の同期化デバイス３００へ送信してよい。ディスカバリサーバ３５０は、別個のエンティティとして配置されてよく、あるいは、システムにおける同期化デバイス３００の１つにおいて含まれてよい。
【００７２】
図３は、メディアストリームが同期しているグループのメンバー間のインタラクションのパターンを示す。４人のビューアーが存在し、各人は異なるソースから異なるルートを介して異なるメディアストリームを受信している。図１で表されるように、夫々のストリームは異なる遅延を有してよい。点線は、全ての他のグループメンバーへのイベントのブロードキャストを示す（線２０６及び２０７の外部表現）。従って、夫々のデバイスは、イベント情報をシステムにおける全ての他のデバイスへ送信し、且つ、イベント情報をシステムにおける他のデバイスの夫々から受信するよう構成される。この方法によって、遅延算出要素は、それが位置している同期化デバイスのための適切な遅延時間を確実に計算するために必要とされる関連情報を得ることができる。
【００７３】
図４は、遅延算出要素２０４の実施形態の制御のフローを示す。図４で示されるように、遅延算出要素２０４は、それ自身のデバイスのイベントストリーム（イベントを含むデータストリーム）を、システムにおける他のイベントストリームとアライメントする（Ｓ１０１）。このアライメントは、イベント情報及び計算された遅延時間に基づき実施される。次いで、その後のイベントから、如何なる関連する動きもデータストリーム間（遅延算出要素が属する同期化デバイスで受信されたデータストリームと、システムにおける最も遅延しているデータストリームとの間）で検出され（Ｓ１０２）、遅延算出要素は、同期化バッファのサイズを然るべく変更する。受信されたデータストリームが前に測定された遅延に対して遅い場合には、受信されたデータストリームを最も遅延しているデータストリームと同期させるために必要とされる遅延はより小さいので、バッファサイズは低減される（Ｓ１０３）。遅延における目に見えるほど明らかな変化を最小限にするために、データストリームは、後述されるように、滑らかに前進される（Ｓ１０４）。測定された遅延において変化がない場合には、バッファサイズは変更されない（Ｓ１０５）。受信されたデータストリームが前に測定された遅延に対して速い場合には、より大きい遅延時間が適用される必要があり、バッファサイズは増大される（Ｓ１０６）。この変化の影響を最小限にするために、データストリームは、後述されたように、滑らかに遅延される（減速される）（Ｓ１０７）。次いで、適切な動作がバッファサイズを調整又は維持するために行われた後、遅延算出要素２０４は、データストリームを再びアライメントする（Ｓ１０１）ために、イベント情報を受信するよう次のインターバルを待機する（Ｓ１０８）。
【００７４】
従って、規則的な、しかし、それほど頻繁でないインターバルにおいて、遅延算出要素は、全てのグループメンバーのイベントストリームをアライメントする（これは、全てのメンバーの遅延算出要素において独立して起こる。）。それは、次いで、ストリームを最も遅いメンバーと同期させるために維持すべきバッファのサイズを計算する。最も遅いメンバーに対して進めた場合には、バッファサイズは増大する。遅延した（又は最も遅くなる）場合には、バッファサイズは低減される。
【００７５】
ビューアーに提示されるメディアストリームは、バッファサイズの変化を反映するよう同様に前進又は遅延される必要がある。この変化は、ビューアーにとって目立つアーチファクトを引き起こすほど十分に大きいことがある。そのようなアーチファクトの影響は、メディアストリームにおいて時間を圧縮又は伸長するためのよく知られた技術、例えば、２倍速及び１／２倍速再生ボタンを実装するために使用される技術を用いて、新しいメディア表示点へ滑らかに移動することによって低減され得る。
【００７６】
同期化バッファは、メディア再生ソフトウェアにおいて使用される再生バッファ機能とは異なる。再生バッファは、ストリーム配信のレートに対する変化を補償するために使用され、一方、同期化バッファは、ストリームに遅延を導入するために使用される。再生バッファの副次的な作用は、ストリームを遅延させることであり得る。故に、本実施形態の実施は、再生及び同期化の両機能を提供する再生ソフトウェアにおいて、変形されたバッファを使用してよい。
【００７７】
ストリームを共有したいと望むビューアーのグループをサポートするソフトウェアは、ピア・ツー・ピアネットワークを形成する。ピア・ツー・ピアネットワーキングは、汎用的な分野であり、標準技術の多くが、同期化されたビューイングネットワークを形成するために使用され得る。しかし、グループは分散し、様々な技術（有線、無線）を介して通信しており、故に、最初のピア・ディスカバリは、導入のために、指定された中央サーバ又は確立されたネットワークにおける既知のノードを使用する必要がある。中央サーバは、ビューアーがグループに参加する場合のメッセージのフローを示す図５において、例示のために使用されている。新しいビューアーは、グループ詳細のためにディスカバリサーバに接触して、返答として現在のメンバーのリストを受信する。新しいビューアーは、次いで、彼ら自身を他のグループメンバーに紹介し、その後に、イベント情報は、夫々の同期化デバイスへ及びそれからブロードキャストされてよく、新しいグループメンバー（及び既存のグループメンバー）が適切な遅延時間を計算することを可能にする。
【００７８】
同期化が満足な共有経験を提供するための要件は、他のタイプのメディア同期化ほど強くない。同じストリーム上でボイス及びビデオを同期させることは、動きの時間と再生される音響との間のほんのわずかの不一致も気になってしまうので、非常に厳しい要件を有する。共有経験のための同期化要件は、それらが人間の反応時間によって決定されるので、グループインタラクションがメッセージを思いついて書き込む時までにテキストメッセージングを介する場合に、よりずっと緩い。これは、正確に居場所を確認できるビーコンを使用する必要がなく、緩やかな、おおよその同期化で十分であることを意味する。しかし、課されるシステム制限内で実施できる限り同期化を改善することが望ましい。
【００７９】
一実施形態において、夫々のグループメンバーによって使用されるソフトウェアは、あらゆるグループメンバーが同じイベントを検出するようにイベント検出が指定される識別可能なイベント（容易に検出可能なイベントを定義する１つの方法について以下を参照。）についてメディアストリームをモニタする。イベントは、不規則なパターンにおいて起こり得る。夫々のメンバーは、ストリームにおいて検出されたあらゆるイベントについてのメッセージをビューインググループの他の全てのメンバーへブロードキャストする。メッセージは、メンバーの識別子、検出されたイベントの時間スタンプ、及びメンバーの現在のバッファサイズ（遅延時間に対応する。）を含む。時間スタンプは、例えば、ネットワーク時間プロトコル（Network  Time  Protocol）を用いて、全てのグループメンバーと同期した時間値である。
【００８０】
あらゆるグループメンバーは、あらゆる他のグループメンバーからの相当数（例えば、１０）の受信されたメッセージを記録するデータ構造を保持する。周期的に、メンバーは、あらゆる時間差のパターンを照合して、どの程度あらゆる他のメンバーからオフセットしているかを決定する同期化チェックを実施する。メンバーは自身のローカルオフセット（及びバッファサイズ）を調整して、最も遅延しているメンバーと同期する。
【００８１】
図６は、ビューアー１の同期化ユニットにおける３ビューアーシステムのためのサンプルデータ構造の例を示す。
【００８２】
ビューアーの現在のバッファサイズは０、２、１である。すなわち、ビューアー１は、前の同期化点で最も遅かった。
【００８３】
自己（ビューアー１）とビューアー２との間のイベントシーケンスは、ビューアー１のシーケンスが１列だけ進められる（差は、１、４、１、３・・・である。）場合にアライメントし、タイミングは、自己（ビューアー１）のストリームがビューアー２よりも３秒遅れていることを示す。同様に、ビューアー３を１列進めることによって、差はアライメントし、ビューアー３が自己（ビューアー１）よりも２秒遅れていることを示す。言い換えれば、メソッドロジは、その後のイベント間の同じ時間差がアライメントされるようにストリームを調整する（これは、不規則なイベントを使用することが重要であるからである。）。必要とされる調整の量は、ストリームの相対遅延を示す。メソッドロジは、不規則なイベント自体の他に更なるデータ（例えば、イベントラベリング）なしで遅延算出を可能にする。
【００８４】
見られるストリームの推測される順序は、ビューアー３、ビューアー１（２秒先行）、ビューアー２（更に３秒先行）である。ビューアー１の遅延算出ユニットは、従って、ビューアー３と同期するために、自身の同期化バッファに遅延を２秒増やすように指示する。ビューアー２の同様の計算は、５秒の遅延増大を引き起こし、ビューアー３は変わりない。
【００８５】
それらの計算の後、新しいバッファサイズの初期設定は２、７、及び１である。バッファサイズのクリープを防ぐために、最小のバッファサイズは０に低減され、遅延算出ユニットは、次のようなコマンドを実際に送る：ビューアー１はバッファサイズを１に増やし、ビューアー２はバッファサイズを６に増やし、ビューアー３はバッファサイズを０に減らす。
【００８６】
最善のイベント検出は、２つの特性、すなわち、実行するのに効率がよいこと及び確実にアライメントされ得るイベントの分布を生じることを必要としてよい。以下は、イベントを検出する方法の一例であるが、多数の更なる方法が存在する。
【００８７】
急な変化及び緩やかな変化の周期の間でメディアストリームは移動する。故に：
１）ピクセル間の差の絶対値の和としてフレームごとの差の程度を計算する：
【数１】
2017108399.tif 000003
【００８８】
ここで、d(t,t+1)は、時間t及び時間t+1でのフレーム間の差の程度であり、p(i,j,t)は、時間tにおける位置i、jでのピクセル値である。I、Jはフレームの寸法である。ピクセル値は、一般に、ピクセルによって放射される光に作用する数又は数の集合である。ピクセル値は、例えば、ピクセルによって放射される光及び／又は特定の色の強さを示す。“p”は、例において、値（pr、pg、pb）のグループであると見なされてよく、２つのピクセル値（例えばp＝（pr、pg、pb）及びq＝（qr、qg、qb））どうしの差は、｜pr−qr｜＋｜pb−qb｜＋｜pg−qg｜として再定義されてよい。
【００８９】
２）次のように、差の変化の割合を近似する：
【数２】
2017108399.tif 000004
【００９０】
３）イベントは、距離測度の極大、極小又は変曲点で起こる：
【数３】
2017108399.tif 000005
threshold値（閾値）は、信頼できるイベント検出を達成するよう決定され、様々な要因（例えば、異なるスクリーンサイズ）に起因して、デバイスタイプごとに異なる。
【００９１】
本発明の実施形態のコンポーネントは、原理上、ビューアーへの同時の出力を確かにするよう、実施形態が最終の表示の前に補償する遅延がそれ以上ないビデオ表示のためのストリーム処理に挿入されるべきである。
【００９２】
遅延のほとんどは、コンテンツストリームの上流での処理において起こるので、本実施形態はまた、夫々のクライアント（グループメンバー）のネットワークサービスプロバイダによるサービスとして提供され、ネットワークエッジでクラウドサービスとして実装されてよい。これは、個々に実施形態を物理的に実装するようソフトウェア及びデバイス製造者に求めることなしに、全てのメディアストリームへの展開の利点を提供する。１つの例となる場合において、ネットワークは、図７及び８で説明されるように、本実施形態の機能を実施するビューアーのためのネットワークエッジプロキシ（ＮＥプロキシ）を生成する。図７は、代理（プロキシ）されるビューアーがＮＥプロキシとのメディアストリームの同期化に関心を示すように図５Ａを変更する。ＮＥプロキシは、次いで、ビューアーの代わりに更に仲介し、同期されたストリームのみを送る（グループメンバーのうちの２人についてＮＥプロキシを有して図３を更新する図８に図示。）。
【００９３】
本発明の他の実施形態では、全てのコンポーネントは、表示デバイス（スマートフォン、セットトップボックス、コンピュータなど）のマルチメディアソフトウェアの部分として実装されてよい。
【００９４】
ビューインググループはまた、ソーシャルメディアメッセージストリーム（Ｔｗｉｔｔｅｒ、Ｆａｃｅｂｏｏｋ（登録商標）コメント、ソーシャルメディアネットワークコメント）のような手段を通じて、より広い世界と相互作用したいと望んでよい。通常は、それらは、現実世界の時間において到達し、故に、本実施形態を使用するビューインググループは、グループ通信内で本実施形態によって解決されるのと同じイベントの先取りを経験する。本実施形態の実施のために記述された特別目的のアプリケーションのような、ソーシャルメディアメッセージストリームを表示するアプリケーションも、グループ時間へのオフセットによりメッセージデータベースクエリ時間を変更するか、あるいは、グループ時間オフセットまでメッセージをバッファリングすべきである。
【００９５】
他の適用範囲は、グループが記憶されているショーを見ることに決めるオンデマンド／ビューイングで起こる。上記のアライメントの不整の原因のいくつかは、ショーが全てのデバイスタイプに適した複数のバージョンで記憶されるので、トランスコーディングの問題はないとして、当てはまらない。しかし、夫々のビューアーがわずかに異なる時間で再生し始めるか、又はわずかに異なる点まで早送りする場合に、新しい一定の遅延が存在する。
【００９６】
放送ショーの記録されたバージョンのような、オンデマンドのサービスを見ている場合に、この実施形態は、グループを構成しない、最初の放送中にショーに反応した人々からのソーシャルメディアメッセージストリーム（例えば、“tweetalongs”と呼ばれる。）と同期することを可能にする。ソーシャルメディアフィードは、グループローカル時間及び最初の放送の時間によるショーオフセットに関するタグを有するメッセージをクエリされる。ソーシャルメディアメッセージのタグ付けはまた、ショータイムライン内の時間にマークして、非同期のメッセージがあたかも最初の放送の間に起こったかのようにタイムライン内にマージされ得るようにするよう増強されてよい。
【符号の説明】
【００９７】
２０１          ディスプレイ
２０２，３０２  同期化バッファ
２０３，３０３  イベント検出デバイス
２０４，３０４  遅延算出要素
２０５          メディアストリーム
３００          同期化デバイス
３４０          ブロードキャスト源
３５０          ディスカバリサーバ
【図１】
2017108399.tif 000006
【図２Ａ】
2017108399.tif 000007
【図２Ｂ】
2017108399.tif 000008
【図２Ｃ】
2017108399.tif 000009
【図２Ｄ】
2017108399.tif 000010
【図３】
2017108399.tif 000011
【図４】
2017108399.tif 000012
【図５】
2017108399.tif 000013
【図６】
2017108399.tif 000014
【図７】
2017108399.tif 000015
【図８】
2017108399.tif 000016