(57)【要約】  ローカルコンテンツコントローラにおいてトランスポートコマンドを処理して、共有コンテンツの再生を他と同期して制御するための方法を、リモートコンテンツコントローラが、受信したトランスポートコマンドが、ローカルコンテンツコントローラから、または、少なくとも１つのリモートコンテンツコントローラから生じたか否かを最初に判定することにより開始する。ローカルに生じたトランスポートコマンドのイベントにおいて、ローカルコンテンツコントローラは、最近受信したトランスポートコマンドを用いて、ローカルに生じたトランスポートコマンドに優先順位をつける。その後、ローカルに生じたトランスポートコマンドが優先度を持つ場合に、ローカルコントローラは、ローカルに生じたトランスポートコマンドを、それによる実行のために、少なくとも１つのリモートコンテンツコントローラに送信する。リモートに生じたトランスポートコマンドのイベントにおいて、ローカルコントローラは、最近受信したトランスポートコマンドを用いて、リモートに生じたトランスポートコマンドに優先順位を付け、次に、コンテンツコントローラ間の待ち時間に従って、優先順位付けされたトランスポートコマンドを実行する。
2015515774.tif 000002
【特許請求の範囲】
【請求項１】
ローカルコンテンツコントローラにおいてトランスポートコマンドを処理するための方法であって、
１）受信したトランスポートコマンドが、前記ローカルコンテンツコントローラから、または、少なくとも１つのリモートコンテンツコントローラから生じたか否かを判定するステップと、
２）ローカルに生じたトランスポートコマンドのイベントにおいて、
（ｉ）まだ実行されていないトランスポートコマンドと共に、前記ローカルに生じたトランスポートコマンドに優先順位を付けるステップと、
（ｉｉ）前記ローカルに生じたトランスポートコマンドが優先度を持つ場合、前記ローカルに生じたトランスポートコマンドを、実行のために、前記リモートコンテンツコントローラに送信するステップと、
３）リモートに生じたトランスポートコマンドのイベントにおいて
（ｉｉｉ）まだ実行されていないトランスポートコマンドと共に、前記リモートに生じたトランスポートコマンドに優先順位をつけるステップと、
４）コンテンツコントローラ間の待ち時間に従って、前記優先順位付けされたトランスポートコマンドを実行するステップと、
を含む、前記方法。
【請求項２】
前記コンテンツコントローラ間の待ち時間が、信号が１つのコントローラと別のコントローラとの間を伝播するための往復時間に従って、判定される、請求項１に記載の方法。
【請求項３】
まだ実行されていないトランスポートコマンドと共に、前記ローカルに生じたトランスポートコマンドに優先順位を付けるステップが、前記ローカルに生じたトランスポートコマンドが、まだ実行されていないトランスポートコマンドに関連して最初に発生したか否かを判定するステップを含む、請求項１に記載の方法。
【請求項４】
まだ実行されていないトランスポートコマンドを用いて、前記リモートに生じたトランスポートコマンドに優先順位を付けるステップが、前記リモートに生じたトランスポートコマンドが、まだ実行されていないトランスポートコマンドに関連して最初に発生したか否かを判定するステップを含む、請求項１に記載の方法。
【請求項５】
前記まだ実行されていないコマンドが、ローカルに生じたトランスポートコマンドを含む、請求項１に記載の方法。
【請求項６】
前記まだ実行されていないコマンドが、リモートに生じたトランスポートコマンドを含む、請求項１に記載の方法。
【請求項７】
ホールドオフインターバルにより、リモートに生じたトランスポートコマンドの実行をディレイさせるステップを含む、請求項１に記載の方法。
【請求項８】
前記ローカルに生じたトランスポートコマンドおよびリモートに生じたトランスポートコマンドがそれぞれ、優先度を判定するためのコマンドの発行時刻を示すそれぞれのタイムスタンプを含む、請求項１に記載の方法。
【請求項９】
ローカル コンテンツコントローラにおいて第１のトランスポートコマンドを処理して、共有コンテンツを制御するための方法であって、 
（ａ）ローカルコンテンツコントローラにて受信した前記第１のトランスポートコマンドが、先に受信された第２のトランスポートコマンドに対して優先度を持つか否かを判定するステップと、
ｂ）前記第１のトランスポートコマンドが優先度を持つというイベントにおいて、前記第１のトランスポートコマンドをローカルコンテンツコントローラで実行して、前記第１のトランスポートコマンドに従って共有コンテンツを制御するステップと、しかし、
ｃ）前記第２のトランスポートコマンドが優先度を持つというイベントにおいて、前記第１のトランスポートコマンドをローカルコンテンツコントローラで実行しないステップと、
を含む、前記方法
【請求項１０】
前記第１のトランスポートコマンドがローカルに生じたものであり、かつ、ステップ（ｂ）が、前記第１のトランスポートコマンドを少なくとも１つのリモートコンテンツコントローラに転送するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記第１のトランスポートコマンドの優先度が、コマンドを生じた複数のコンテンツコントローラのいずれかに従って判定される、請求項９に記載の方法。
【請求項１２】
前記第１のトランスポートコマンドの優先度が、前記第１および第２のトランスポートコマンドがいつ発行されたのかに基づき判定される、請求項９に記載の方法。
【請求項１３】
前記第１および第２のトランスポートコマンドそれぞれが、コマンドの発行時刻を示すそれぞれのタイムスタンプを含む、請求項１２に記載の方法。
【請求項１４】
ｉ）前記第１のコマンドが前記第２のコマンドの前に発行された場合、前記第１のコマンドが優先度を持ち、
ｉｉ）前記第１のコマンドが、前記第２のコマンドの前に発行されず、前記第１および第２のコマンドの発行元が同じである場合、前記第１のコマンドが優先度を持ち、
ｉｉｉ）前記第１のコマンドが、少なくとも所定の時間量分だけ前記第２のコマンドより前に発行され、前記第１および第２のコマンドの発行元が異なる場合、前記第１のコマンドが優先度を持ち、
ｉｖ）前記第１のコマンドが、所定の値より小さい値分だけ前記第２のコマンドより後に発行され、前記第１および第２のコマンドの発行元が異なる場合、前記第１のコマンドは優先度を持たず、
ｖ）前記第１のコマンドが、前記第２のコマンドと同時に発行された場合、前記第１および第２のトランスポートコマンドがいつ発行されたのかということ以外に基づき、前記第１のトランスポートコマンドが優先度を持つか否かを判定する、
請求項９に記載の方法。
【請求項１５】
ｉ）前記第１のコマンドが、所定の値より小さい値分だけ前記第２のコマンドより前に発行された場合、前記第１のコマンドの実行が、先に実行された前記第２のコマンドより優先され、
ｉｉ）そうでない場合、前記第１のコマンドの実行が、先に実行された前記第２のコマンドより優先されない、請求項９に記載の方法。
【請求項１６】
ローカルの第１のコンテンツコントローラにおいてトランスポートコマンドを処理するための方法であって、
ａ）少なくとも１つのリモートコンテンツコントローラのそれぞれの動作を表すデータを提供するステップと、
ｂ）前記第１のコンテンツコントローラにて受信されたトランスポートコマンドが、ローカルに生じたのか否かを判定するステップと、
ｃ）トランスポートコマンドが前記第１のコンテンツコントローラにおいて生じたというイベントにおいて、前記トランスポートコマンドをお互いのコンテンツコントローラに送信するステップと、
ｄ）前記トランスポートコマンドが、前記少なくとも１つのリモートコンテンツコントローラのうちの第２のコンテンツコントローラにおいて生じたというイベントにおいて、トランスポートコマンドの兆候を表示するステップであって、前記トランスポートコマンドが実行されるとき、前記兆候が、第２のコンテンツコントローラに対応するデータを含む、ステップと、
を含む、前記方法。
【請求項１７】
前記データがオペレータの名前を含む、請求項１８に記載の方法。
【請求項１８】
前記データがオペレータの画像を含む、請求項１６に記載の方法。
【請求項１９】
ａ）複数のリモートコンテンツコントローラのそれぞれのオペレータを表すデータを取得するための手段と、
ｂ）前記ローカルコンテンツコントローラにおいて受信されたトランスポートコマンドが、ローカルに生じたか否かを判定するための手段と、
ｃ）前記トランスポートコマンドが前記ローカルコンテンツコントローラにおいて生じたというイベントにおいて、前記トランスポートコマンドをお互いのコンテンツコントローラに転送するための手段と、
ｄ）前記トランスポートコマンドが、前記複数のリモートコンテンツコントローラのうちの第２のコンテンツコントローラにおいて生じたというイベントにおいて、トランスポートコマンドの兆候を表示するための手段であって、前記トランスポートコマンドが実行されるとき、前記兆候が、第２のコンテンツコントローラに対応するデータを含む、手段と、
を備える、ローカルコンテンツコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、米国特許法第１１９条（ｅ）の下、２０１２年３月９日にて提出された米国仮出願第６１／６０９，０４０号の優先権を主張し、その教示がここに組み込まれる。
本発明は、異なる場所における複数の参加者の間で、共有コンテンツの再生を制御するための技術に係わる。
【背景技術】
【０００２】
種々の既知の技術により、複数のコンテンツコントローラ（「メディアコントローラ」とも呼ばれる）を、１つの分散型コンテンツコントローラ、「分散型トランスポート」とも呼ばれる、として集合的に動作させるような制御が可能とされる。コンテンツコントローラのコンフェデレーションのためのそのような技術により、複数の局（station）（通常は異なる場所にある）のそれぞれにおける個々のコンテンツコントローラが、情報およびコマンドを共有して、コントローラ同士の協調したアクションを通じて、全参加局で音声および／または映像のコンテンツの略同時再生を行うことが可能とされる。そのような技術により、各参加サイトを「共有コンテンツ」内のほぼ同じポイントで、ほぼ同じステータスで維持しながら、種々の場所にいる参加者が、異なるコンテンツコントローラコマンド、「トランスポートコマンド」（例えば、一時停止、巻き戻し、早送りおよび再生）とも呼ばれる、を実行することができる。換言すれば、分散型コンテンツコントローラを使用して提示される音声または映像のコンテンツは、介入するトランスポートコマンドに係わらず、各局においてコンテンツ内のほぼ同じ位置でほぼ同じ状態にあるように見える（例えば、再生中、一時停止中、早送り中）。（「トランスポート」という名詞は、本明細書において使用されるとき、デジタルコンテンツコントローラに関連し、テープレコーダで読込みおよび書込みのヘッドを通過して磁気テープを動かすのに使用される機械的な「テープトランスポート」の例えとして使用される。）従って、「共有コンテンツ」は、各局が実際にコンテンツをどのように取得するのかに依存せず、１参加局においてコンテンツコントローラの内の１つを使用したコンテンツの視聴歴が、他の参加局のいずれかにおけるものとほぼ同じであることを示す。
【０００３】
映像放送を見ている異なる視聴者が、同じコンテンツを同じ状態および位置で見ているとしても、これは、１視聴者が、例えば自分が所有するデジタルビデオレコーダ（ＤＶＲ）を使用して、プレイアウトを一時停止する場合に、映像の視聴は一時停止するが、全ての他の視聴者が見る映像は継続する、という意味において、「共有コンテンツ」ではない。コンテンツは同じであるが、複数の局を通してステータスおよび位置の一貫性が無いために、そのような放送は「共有コンテンツ」として適格であるとは見なされない。異なるシナリオにおいて、そのような放送が、協同して分散型コンテンツコントローラを形成するＤＶＲを使用して複数の参加者により見られる場合、その放送は、それらの視聴者にとっては「共有コンテンツ」であり、何故なら、１視聴者が自分のＤＶＲ上でコンテンツを一時停止または巻き戻しした場合、全ての参加ＤＶＲがそれに倣うからである。
【０００４】
たとえそうであっても、既存の分散型コンテンツコントローラには欠点がある。あるシステムでは、分散型コンテンツコントローラの制御が指定された参加者に限定される。スタジオ技術者が記録再生機器を制御するが、バンドのメンバーは制御しない、ということによく似ている。他のシステムでは、種々の場所にいる参加者が、平等の能力を有して共有コンテンツのプレイアウトを制御し、例えば、わずかに分かるフレーズをもう一度聴くために巻き戻す。しかし、２人またはそれ以上の参加者がお互いに短い間隔をおいてコマンドを発行する場合、追加的または相反する性質の複数のコマンドが生じ、競合状態が生じ得る。そのような複数のコマンドの実行により、望ましくないというわけでなくとも、予期しない結果が生じることがある。
【０００５】
任意の参加者が、分散型コンテンツコントローラに対してコマンドを発行することができる現在のシステムでは、トランスポートコマンドの発行者を識別することができないことも、問題の原因となり得る。現在、トランスポートコマンドの発行者のみが、コマンドの発行についての情報を有する。複数の参加者が、誰がそのようなコマンドを発行したのかについての情報を持たずに同時にコマンドを発行すると、個々の参加者が混乱して、１つまたは複数の追加コマンドを発行してしまう可能性があり、さらに状況が混乱する。
【０００６】
米国特許第６，６５３，５４５号（Ｒｅｄｍａｎｎら）、および第７，５１８，０５１号（Ｒｅｄｍａｎｎ）では、ｃｏｌｌａｂｏｒａｔｉｖｅ  ｍｕｓｉｃ  ｒｅｃｏｒｄｉｎｇ（協調的音楽記録）での使用に適した分散型トランスポート制御スキームが教示される。そのような分散型トランスポート制御戦略は、分散型コンテンツコントローラに命令する能力が、１つの指定された参加者に制限されるために、ソーシャルテレビジョン応用での使用には適さないと判明するであろう。米国特許第７，８１８，７７０号（Ｄｕｃｈｅｎｅａｕｔら）、第７，８７３，９８３号（同じくＤｕｃｈｅｎｅａｕｔら）、及び米国特許出願第２０１１／０２１８６５６号（Ｂｉｓｈｏｐら）のそれぞれにおいて、個別局がその対応するコンテンツコントローラに対しコマンドを発行した場合でも、共有コンテンツのプレイアウトで複数局の同期を維持するための１つまたは複数の方法が教示される。しかし、これらの技術は、上述の欠点による不利益を被り、すなわち、ある場合において、同期が不十分な局を外すことにより特定の発行を回避する。従って、異なる場所における複数の聴衆構成員の間で共有コンテンツの再生を制御するための向上した技術が必要である。
【発明の概要】
【課題を解決するための手段】
【０００７】
簡潔には、好ましい実施形態によると、ローカルコンテンツコントローラにおいてトランスポートコマンドを処理して共有コンテンツの再生を制御するための方法が、受信したトランスポートコマンドが、ローカルコンテンツコントローラから、または、少なくとも１つのリモートコンテンツコントローラから生じたか否かを最初に判定することにより開始される。ローカルに生じたトランスポートコマンドのイベントにおいて、ローカルコンテンツコントローラは、まだ実行されていないトランスポートコマンドと共に、ローカルに生じたトランスポートコマンドに優先順位をつける。その後、ローカルに生じたトランスポートコマンドが優先度を持つ場合に、ローカルコントローラは、ローカルに生じたトランスポートコマンドを、それによる実行のために、少なくとも１つのリモートコンテンツコントローラに送信する。リモートに生じたトランスポートコマンドのイベントにおいて、ローカルコントローラは、まだ実行されていないトランスポートコマンドと共に、リモートに生じたトランスポートコマンドに優先順位を付け、次に、コンテンツコントローラ間の待ち時間に従って、優先順位付けされたトランスポートコマンドを実行する。
【図面の簡単な説明】
【０００８】
【図１】分散した聴衆としての参加者が使用して共有コンテンツを視聴するための分散型コンテンツコントローラの例示のブロック図を、テレプレゼンスの特徴と共に示す図である。
【図２】図１の分散型コンテンツコントローラ内で共有コンテンツの再生を行うためのコンテンツコントローラコマンド（すなわち、「トランスポートコマンド」）により誘発されるコンテンツコントローラの状態の遷移を示す例示の状態遷移図を示す図である。
【図３】図２に示すコンテンツコントローラの状態遷移を実装するための例示の遷移表を示す図である。
【図４】図１の分散型コンテンツコントローラ内でコンテンツコントローラ間の共通タイミングを確立するトランザクション例のトランザクション図を示す図である。
【図５Ａ】例示のトランスポートコマンド（例えば、「スキップ」コマンド）を、同様のコマンド（共に「スキップ後方向」）との競合状態のイベントにおいて説明する分散型コンテンツコントローラのトランザクション図を示す図である。
【図５Ｂ】例示のトランスポートコマンド（例えば、「スキップ」コマンド）を、異種のコマンド「スキップ前方向」／「スキップ後方向）との競合状態のイベントにおいて説明する分散型コンテンツコントローラのトランザクション図を示す図である。
【図６】図１の分散した聴衆としての参加者のそれぞれから見た、図５Ａに示される分散トランザクションを示す図であり、図１の分散型コンテンツコントローラが同期を復元する際に映像が一時停止されている。
【図７】図５Ａの分散トランザクションの代替実施形態を示す図であり、図１の分散型コンテンツコントローラが同期を復元する際に映像がプリロールしている。
【図８】別の例示のトランスポートコマンドを説明する分散型コンテンツコントローラのトランザクション図を示す図であり、図１の分散型コンテンツコントローラのホールドオフ挙動を表す。
【図９】本原理の好ましい実施形態に従い、共有コンテンツを再生するための分散型コンテンツコントローラにおける参加のためのコンテンツコントローラ処理を、フローチャートの形式で示す図である。
【図１０】リモートコンテンツコントローラコマンドに応答して共有コンテンツを制御するためのコンテンツコントローラ処理を、フローチャートの形式で示す図である。
【図１１Ａ】ローカル局が図５Ｄの例示のトランザクションに応答する、異なる例示の挙動を示す図である。
【図１１Ｂ】ローカル局が図５Ｄの例示のトランザクションに応答する、異なる例示の挙動を示す図である。
【図１１Ｃ】ローカル局が図５Ｄの例示のトランザクションに応答する、異なる例示の挙動を示す図である。
【図１１Ｄ】ローカル局が図５Ｄの例示のトランザクションに応答する、異なる例示の挙動を示す図である。
【発明を実施するための形態】
【０００９】
図１は、共有コンテンツシステム１００のブロック概略図を示し、このシステムは共通通信チャンネル１０１を使用して、複数の局、例えば、例示の局１１０、１２０、および１３０、とお互いに、かつヘッドエンド１０２と、リンクする。図示の実施形態において、局１１０、１２０、および１３０は、その目的に合わせて提供されるモニタおよびカメラ（図示の通り）を使用してその局間にテレプレゼンスを提供するのに適した特徴を持つ。このようにして、局１１０、１２０、および１３０は、お互いに通信することができ、また、個々の消費と共に、１つまたは複数の他の局と共有コンテンツとして共有するために、ヘッド１０２からコンテンツをダウンロードすることができる。ヘッドエンド１０２からダウンロードされたコンテンツには、映画、テレビ番組、ゲーム、広告などのオーディオビジュアルファイルを含むことができる。図１では３局１１０、１２０、および１３０が示されるが、より多くのまたは少ない局が本原理から逸脱することなく存在してよい。
【００１０】
局１１０、１２０、および１３０のそれぞれは、コンテンツモニタ１１２、１２２、および１３２それぞれを別個のものとして備え、それらは対応する参加者１１３、１２３、および１３３それぞれが視聴するためのものである。参加者１１３、１２３、および１３３は、そのコンテンツモニタ１１２、１２２、および１３２それぞれを、カウチまたは椅子１１４、１２４、および１３４それぞれから見る。図１の例示される実施形態において、局１１０、１２０、および１３０のそれぞれは、セットトップボックス（ＳＴＢ）１１１、１２１、および１３１それぞれを別個のものとして含み、ヘッドエンド１０２からのコンテンツにチューニングし、および、対応するコンテンツモニタ１１２、１２２、および１３２それぞれを駆動する。局１１０、１２０、および１３０はまた、テレプレゼンスモニタ１１６、１２６、および１３６それぞれと、配置されるテレプレゼンスカメラ１１７、１２７、および１３７それぞれとを含み、各々がＳＴＢ１１１、１２１、および１３１それぞれに個別に連結される。実際には、テレプレゼンスモニタ１１６、１２６、および１３６は、コンテンツモニタ１１２、１２２、および１３２それぞれの側面に置かれる。一例として、コンテンツモニタ１１２は参加者１１２と一直線に並べて置かれ、参加者１１３が方向１１８（例えば、正面）を見て、共有コンテンツを見る。しかし、参加者１１３は、異なる方向１１９（例えば、ある角度で）を向いてテレプレゼンスモニタ１１６を眺め、リモートテレプレゼンスカメラ１２７および１３７それぞれにより別個にキャプチャされる参加者１２３および１３３の画像を眺めることもある。
【００１１】
検討を簡単にするために、局１１０、１２０、および１３０の内の関連するものに常駐する参加者を「ローカル参加者」と称する。各ローカル参加者の観点からは、別の局の各参加者は「リモート参加者」となる。従って、局１１０の参加者１１３の観点から、それぞれ局１２０および１３０の参加者１２３および１３３は、リモート参加者となる。
【００１２】
図１には図示しないが、テレプレゼンスカメラ１１７、１２７、および１３７の内の１つまたは複数を、対応するコンテンツモニタ１１２、１２２、および１３２それぞれのスクリーンと共に置くことができる。そのような場合、各リモート参加者の画像を、ローカル参加者のコンテンツモニタ上にピクチャ・イン・ピクチャモードで現わすことができる。例として、参加者１１３は、リモート参加者１２３および１３３のそれぞれの画像を自分のコンテンツモニタ１１２上で眺めることができる。リモート参加者の画像をローカル参加者のコンテンツモニタ上に表示することにより、各ローカル参加者に個別のテレプレゼンスモニタを提供する必要性がなくなる。
【００１３】
セットトップボックス１１１、１２１、および１３１のそれぞれは、リモートコントロールユニット１１５、１２５、および１３５の内の関連するものそれぞれを有する。実際には、参加者１１３、１２３、および１３３のそれぞれが、対応するリモートコントロール１１５、１２５、および１３５それぞれを作動させて、それぞれのＳＴＢによるヘッドエンド１０２からのコンテンツのチューニング、および、コンテンツモニタ１１２、１２２、および１３２上でのそのプレイアウトを制御する。このように、参加者１１２、１２３、および１３３のそれぞれが、自分のコンテンツモニタ上でのコンテンツのプレイアウトを制御することができる。１つまたは複数のリモート参加者との共有コンテンツセッションの間、ローカル参加者は、対応する１つまたは複数のリモート局においてコンテンツのプレイアウトを制御することもできる。
【００１４】
実際には、ヘッドエンド１０２からチューニングされたコンテンツは、テレビ放送装置、衛星テレビ会社、および／または、ケーブルテレビ会社、を含むがこれに限定されない１つまたは複数のソースからのものである。さらに、ＳＴＢ１１１、１２１、および１３１のそれぞれによってチューニングされるコンテンツは、例えば、ＶＣＲ、ＤＶＤプレイヤ、パーソナルビデオレコーダ、パーソナルコンピュータ、またはローカルゲートウェイからのものであってよい。いくつかの例において、共有コンテンツの別個のコピーが、局１１０、１２０、および１３０のそれぞれに、存在してよい（例えば、ＳＴＢ１１１、１２１、および１３１に接続される別個のＤＶＤプレイヤ）。他の例において、１つのＳＴＢ（例えば、ＳＴＢ１１１）が利用可能な番組は、各局においてコンテンツのローカルコピーを要求するのではなく、他の２つのＳＴＢ１２１および１３１にストリーミングされてもよい。
【００１５】
以下の検討では、ヘッドエンド１０２が、共有コンテンツモニタ１１２、１２２、および１３２それぞれにおいて、略同時かつ略同期して（以下で定義するように）に視聴するためのコンテンツのソースとして機能するものとする。実際には、共有コンテンツには、画像（例えば、映像）と共に、映像と同期して表される付随する音声が含まれる。説明を簡単にするために、図１では、音声のプレイアウトに必要な音声再生装置（例えば、スピーカ）を示さないが、そのような装置は、典型的には局１１０、１２０、および１３０それぞれにおいて存在する。
【００１６】
ヘッドエンド１０２は、サーバ１０３がＳＴＢ１１１、１２１、および１３１に通信チャンネル１０１を介して配信するためのコンテンツを格納する少なくとも１つの記憶装置１０４を備える。サーバ１０３にはまた、以下の種々の目的で、参加者１１３、１２３、および１３３またはＳＴＢ１１１、１２１、および１３１を認証するためのデータベース１０６が含まれてよい。
【００１７】
（ａ）特定のコンテンツを記憶装置１０４からダウンロードするための適格性を判定する
（ｂ）電子番組ガイドまたは記憶装置１０４内の利用可能なコンテンツのインデックスを維持する
（ｃ）参加者１１３、１２３、および１３３のそれぞれの友人のリストを維持して共有コンテンツの視聴を円滑にする
【００１８】
図２は、分散型コンテンツコントローラとして協働する図１のＳＴＢ１１１、１２１、および１３１が実装するコンテンツコントローラの例示の状態遷移図２００を示し、コンテンツモニタ１１２、１２２、および１３２上で視聴されるコンテンツがそれぞれ、局１１０、１２０、および１３０それぞれにおいて、略同期した状態にあり、それにより、対応する参加者１１３，１２３，１３３に「共有コンテンツ」が提供される。各ＳＴＢは、コンテンツを再生するためのコンテンツコントローラを提供する。「ローカルコンテンツコントローラ」は、メディアをローカルに再生するために必要な要素の集まりであり、例えば、物理的なＤＶＤプレイヤおよびその動作を管理するための制御システムを備えてよく、代替的には（または追加的に）、ローカルコンテンツコントローラは、バッファ、デコーなどを含むデジタルメディアプレイヤを備えてよく、この場合も、その動作を管理するための制御システムが含まれてデジタルコンテンツが再生できるようにされる。本明細書において提供される「分散型コンテンツコントローラ」は、複数の局のそれぞれにおける別個のローカルコンテンツコントローラのコンフェデレーションであり、各局におけるコンテンツの再生がお互いに略同期した状態に落ち着くように、別々のコンテンツコントローラが協働して動作する。分散型コンテンツコントローラのいくつかの実施形態において、１つの局が、コンテンツ（例えば、ＤＶＤまたは事前にＤＶＲによりキャプチャされた記録から）を提供し、それを他の局に提供してもよい。典型的には、最新のシステムでは、コンテンツコントローラが論理コンテンツコントローラを構成する。この論理コンテンツコントローラは、提示装置、例えばＳＴＢ、の適切なバッファ記憶装置を有するメモリバッファ（図示せず）からのデジタルコンテンツのプレイアウトを管理して、例えば、ヘッドエンド１０２もしくはＰＶＲまたはＤＶＤ（図示せず）などの他のコンテンツソースから、または、リモートコンテンツコントローラから、デジタルコンテンツが配信される際のドロップアウトおよび変動に対処する。例示される実施形態において、信頼できるプレイアウト（すなわち、不適切な一時停止またはドロップアウトが無いプレイアウト）を確実にするために、各ＳＴＢは、自身のローカル論理コンテンツコントローラを維持し、かつ、本明細書に記載される処理を適用して、各ＳＴＢのそれぞれの論理コンテンツコントローラを略同期状態に保持する。
【００１９】
本原理の論理コンテンツコントローラは、仮想読取ヘッド、すなわちポインタ、を設け、バッファ（図示せず）内のコンテンツの現在のプレイアウトの位置を示す。最終的には、読取ヘッドがプレイアウト用のコンテンツの部分を読みだした後に、バッファがそのコンテンツをフラッシュして、まだ再生されていないコンテンツの受け取るためのスペースを作ることができる。この周知の構成においては、コンテンツがプレイアウトを受けて、バッファ内における一時停止、リジューム、早送り、巻き戻し、およびスキップなどのトランスポートコマンドのための早い信頼できるアクセスタイムを提示する際に、コンテンツへの正規の予測可能な信頼できるアクセスが可能となる。しかし、このアプローチでは、前方向または後方向へ大きくスキップする、または、全く異なるコンテンツを呼ぶ（すなわち、バッファ内に無いコンテンツへジャンプする）要求をするトランスポートコマンドに応答する際に、相当な待ち時間が表わされる。
【００２０】
相当な待ち時間は、以下のいくつかの原因から生じる。すなわち、（ａ）ＳＴＢ−サーバ間の各方向の通信リンクが課すディレイ。（２）コンテンツサーバ１０３におけるキューイングの要求に関連するディレイ、（３）コンテンツサーバでのアクセスタイムラグ（プレイアウトポイントの不測の変更による）、および、（４）新しい場所でプレイアウトを開始する前に、適切なバッファリングのためにＳＴＢに課される要求。いくつかの状況下で、例えば、サーバ１０３に、または単一のＳＴＢ（例えば、ＳＴＢ１１１）上に実装される、単一のコンテンツコントローラは、コンテンツストリームを全ての参加ＳＴＢに提供することができる。各ＳＴＢは、トランスポートディレイを明らかにするためにコンテンツを別にバッファリングし、略同期してコンテンツモニタ１１２、１２２、および１３２のそれぞれに提示されるコンテンツを保持する必要がある。
【００２１】
通信ディレイおよびリモート装置の他の待ち時間を考慮することは、複数のＳＴＢにわたって再生されるコンテンツの略同期の維持には重要である。図２において、一時停止状態２０１と再生状態２０３との間に「再生ペンディング」状態２０２を割り込ませること、および再生遷移２５１に向かう再生ペンディングにおいて使用されるタイムアウトの適切な設定が、待ち時間の問題に対処する働きをする。遷移２５１およびタイムアウトの適切な設定も、再生ペンディング状態２０２に遷移する他の状態を考慮する際には依然として重要である。タイムアウト遷移２５１以外の、ダイアグラム２００内の残りの遷移は、トランスポートコマンドに相当し、これは典型的には、参加者によりリモートコントロール（例えば、リモートコントロール１１５）からコンテンツコントローラに発行される。ローカルＳＴＢ（例えば、ＳＴＢ１１１）がそのようなコマンドを受け取り、そのコマンドを他のＳＴＢ（例えば、ＳＴＢ１２１および１３１）に、他のＳＴＢが予測可能に同期するための十分な追加情報と共に伝える。いくつかの実施形態において、そのようなコマンドはまた、ヘッドエンド１０２に伝わり、参加ＳＴＢが要求する対応するストリーム（またはそれらのストリーム内での位置）が変更されたという通知をできるだけ早く提供する。一時停止コマンドにより、遷移２３２および２５２が生み出され、その両方が一時停止状態２０１を引き起こす。他の遷移２２２、２２４、２２６、および２２８もまた、一時停止状態を引き起こす。これらのコマンドが簡単に実装できるのは、それらが明確な、静止状態（共有コンテンツが一時停止される）を引き起こすからである。対照的に、遷移２３１は一時停止状態中に再生コマンドから生じ、遷移２４２、２４４、２４６、および２４８は全て、再生ペンディング状態を引き起こす（共有コンテンツは再生されるはずであるか、または間もなく再生される）。
【００２２】
リモートコントロール（例えば、リモートコントロール１１５）上に現れるスキップ後方向ボタンは、作動されると、現在の状態に依存して３つの異なる遷移を生み出すことが可能なスキップ後方向コマンド（ＳＫ−）をトリガする。現在の状態は、（ａ）一時停止状態２０１、（ｂ）再生ペンディング状態２０２、または（ｃ）再生状態２０３であってよく、これらにより、スキップ−／一時停止状態２１０に向かう遷移２２１、および、スキップ−／再生状態２１４に至る遷移２４１および２６１、が生み出される。リモートコントロール１１５上にスキップ後方向ボタンをリリースすることにより、コマンド（〜ＳＫ−）に、２つの遷移（ａ）一時停止状態２０１に戻る遷移２２２、または、（ｂ）再生ペンディング２０２に向かう遷移２４２、の内の一方を生じさせる。
【００２３】
遷移と状態についての同様のまとまりも、状態遷移図２００に表される。３つの遷移２２５、２４５、および２６５は、巻き戻しボタン押下により誘発されるコマンド（ＲＷ）から引き起こされ、同様に２つの状態（ａ）巻き戻し／一時停止状態２１２、および（ｂ）巻き戻し／再生２１６、を生じさせる。巻き戻しボタンのリリースにより、それぞれ一時停止状態２０１および再生ペンディング状態２０２に向かう遷移２２６および２４６を生み出すコマンド（〜ＲＷ）がトリガされる。同様の関係がスキップ前方向ボタンの作動においても存在し、スキップ＋／一時停止状態２１１およびスキップ＋／再生状態２１５に向かう遷移２２３、２４３、および２６３を生み出すコマンド（ＳＫ＋）がトリガされる。スキップ前方向ボタンのリリースによりコマンド（〜ＳＫ＋）が生み出され、一時停止状態２０１に向かう遷移２２４および再生ペンディング状態２０２に向かう遷移２４４を生じさせる。
【００２４】
最後に、同様の関係が早送りボタンの作動において存在し、早送り／一時停止状態２１３および早送り／再生状態２１７に向かう遷移２２７、２４７、および２６７をトリガするコマンド（ＦＦ）が生み出される。早送りボタンのリリースにより、一時停止状態２０１に向かう遷移２２８および再生ペンディング状態２０２に向かう遷移２４８を生み出すコマンド（〜ＦＦ）がトリガされる。
【００２５】
ＤＶＤから供給されるコンテンツを使用することにより、例えば、（１）チャプタ＋、（２）チャプタ−、（３）メインメニュー、（４）カーソルのアップ／ダウン／左／右、（５）選択などの追加コマンドを生じさせることができ、典型的には、同様の方法で実装される。実際には、「静的」状況に関連するコマンド（例えば、カーソル移動）は、最終状態を直接的に達成するが、「動的」状況（再生に向かうチャプタ＋）を引き起こすコマンドは、適切に判定されるタイムアウト値を有する再生ペンディング２０２のような中間同期状態を通過する。そのようなコマンドは、本明細書において検討するものと同様の様式で処理され、これについては、以下のさらなる検討に基づき明らかになるであろう。ヘッドエンド１０２からのビデオオンデマンド（ＶＯＤ）、または、他のウェブサイト（図示せず）からストリーミングされるオーバーザトップ（ＯＴＴ）コンテンツと共に生じる他のコマンドについても同様であり、例えば、必要に応じて、電子番組ガイド（ＥＰＧ）をナビゲートしたり、どのコンテンツを対応する商品から共有すべきかを選択したりする。
【００２６】
図３は、分散型コンテンツコントローラの現在の状態に依存して、１つまたは複数の外部イベント、例えばリモートコントロール１１５のボタンの作動、に応答したコマンドの発行を説明する遷移表３００を示す。分散型コンテンツコントローラの集約状態、現在の協調時間、および／または、各ローカルコンテンツコントローラ動作の予想性能についての情報に基づき、少なくとも１つのパラメータを用いたコマンドの強化が可能である。遷移表３００は、行３０１および列３０２を持つ。各行は、状態遷移図２００の状態の内の１つに対応し、一方、各列は、リモートコントロール（例えば、リモートコントロール１１５）を介してなされるボタン作動の内の１つに対応する。遷移表３００の各セル３０３は、図２の遷移に対応し、分散型コンテンツコントローラ用のコマンドを提供し、このコマンドは、行３０１の内の対応する状態によって示される状態中に列３０２の内の対応するイベントが発生するとき、発生する。多くの場合、示されるコマンドはヌルコマンド（例えば、セル３０４）を構成し、これは、何もアクションが必要でないことを意味する。リリースされたイベント〜ＳＫ＋および〜ＳＫ−に対応するアクションも列も存在しないのは、本実施形態では、これらのアクションが全ての状況でヌルのままであるためである。全ての関連するアクションは、発生する場合は、ＳＫ＋またはＳＫ−のボタン作動で起こり、ボタンのリリースでは起きない。
【００２７】
表３００内の頻繁に見られるアクションは、「Ｐａｕｓｅ  ｔｏ  Ｐ」であり、遷移２３２、２５２、２２６、および２２８と共に見られる。このコマンドの表記が示すことは、コマンドを受け取るローカル装置は位置「Ｐ」で一時停止すべきである、ということである。位置「Ｐ」は、イベントが発生しているローカル装置によりプレイアウトが制御されているコンテンツ内の一義的な位置を識別する。実際には、位置Ｐは、コマンドがリモートコントロール１１５を用いて発行される時の、ＳＴＢ１１１における共有コンテンツ内のコンテンツコントローラの現在位置に相当する。位置Ｐは典型的には、実装に依存して、フレーム番号、時間、またはコンテンツ内へのフレームオフセット、すなわち、コンテンツに埋め込まれるタイムコードの値、の内の１つを構成する。「Ｐａｕｓｅ  ｔｏ  Ｐ」は、「静的」アクションを構成し、そのようなものとして、全てのＳＴＢは、コマンドを実行すると同期されることになる（このコマンドに、後に続くコマンドが干渉しないものとする）。
【００２８】
「Ｐａｕｓｅ  ｔｏ  Ｐ＋ｄ」および「Ｐａｕｓｅ  ｔｏ  Ｐ−ｄ」は、表３００においてそれぞれ遷移２２３および２２１と共に示す「Ｐａｕｓｅ  ｔｏ  Ｐ」条件の変形を構成する。ここで、「ｄ」は、システム１００においてスキップの基準として使用される変動（差分）を表す。いくつかの実装において、パラメータ「ｄ」は、一時停止中にスキップコマンドと共に実際に送信されるパラメータではなく、所定の値を構成するものとすることができる。スキップサイズ「ｄ」は、フレームや時間の大きさを表し、そういうものとして、イベントが発生すると、共有コンテンツ内のローカルコンテンツコントローラの現在位置「Ｐ」に対して加算または減算されてよく、コンテンツコントローラに対して共有コンテンツ内の正確な新しい位置が判定される。これらのアクションは「静的」アクションを表し、なぜなら、このアクションが、各コンテンツコントローラを特定の判別できる位置に導き、そこで無期限に（少なくとも、次のコマンドを受信するまで）待機するからである。
【００２９】
表３００に見られる「ＦＦ  ｆｒｏｍ  Ｐ＠ｓｐｅｅｄ  Ｓ」および「ＲＷ  ｆｒｏｍ  Ｐ＠ｓｐｅｅｄ  Ｓ」などのアクションは、遷移、２２７、２４７、２６７、２２５、２４５、および２６５と共に発生し、各ローカルコンテンツコントローラ（例えば、各ＳＴＢ）に、速度係数「Ｓ」で、理想的には位置「Ｐ」から開始してそれぞれ順行再生または逆行再生させる。速度係数「Ｓ」は乗数を構成する。実装の決定事項に依存して、「Ｓ」には、整数値（例えば、２ｘ、５ｘ）または非整数値（例えば、２．５ｘ、３．３ｘ）が含まれてよく、また、１より大きい数に限定されるか、またはスローモーションが可能とされる１より小さい数（例えば、０．５ｘまたは０．０４１７ｘ）に限定される。他の実施形態において、「Ｓ」は、１秒あたりのフレームで表現される値を表すことができる（「１」がスローモーションの場合、「２４」は通常速度、「４８」は倍速、など）。
【００３０】
興味深いことに、２つのアクション「ＦＦ／ＲＷ  ｆｒｏｍ  Ｐ＠ｓｐｅｅｄ  Ｓ」は、各装置の実装に依存して、「静的」または「動的」なアクションを表すことができる。遷移２２５および２２７の場合、次の遷移はそれぞれ静的コマンドを構成する２２６または２２８に制限される。参加者がＦＦまたはＲＷのボタンを作動させる限り、参加者のローカル装置（例えば、ＳＴＢ）は、適切な速度係数で忠実に順行再生または逆行再生する。参加者がボタンをリリースすると、ローカル装置は、対応する静的コマンド「Ｐａｕｓｅ  ａｔ  Ｐ」を伝える。最終的には、ボタンのリリースに続き、プレイアウトが全てのＳＴＢにわたって同期される。しかし、分散型コンテンツコントローラが、早送りまたは巻き戻しの動作の実行中にも（どの程度良好に）引き続き略同期しているか否かは、実装の細部にすぎない。
【００３１】
例えば、早送りボタンの押下について考える。一実施形態において、ＦＦボタンの作動時、ローカルコンテンツコントローラ（典型的には、ローカルＳＴＢ１１１により実装される）が現在位置「Ｐ」を与え、２ｘ通常速度でプレイアウトを開始する（２ｘは、早送り速度係数の所定のデフォルトであるものとする）。ローカルＳＴＢ１１１は、ＦＦコマンドを、Ｐについてローカルに取得された値および現在の同期された時刻Ｔ（図４と併せて以下で検討する）と共に、リモートＳＴＢ（例えば、ＳＴＢ１２１、１３１）に伝える。しかし、リモートＳＴＢは、リモートＳＴＢとの通信の待ち時間のため、少し後まで、そのような情報を受信しない。早送りコマンドの受信時、本実施形態では、リモートＳＴＢが、「Ｐ」および「Ｔ」のパラメータを考慮せずに２ｘの速度で直ちに再生を開始する（なぜなら、「Ｐ」は正確であるか、最近通過されたものであり、「Ｔ」は常に過去のものであるため）。分散型コンテンツコントローラが、早送り（ＦＦ）ボタン作動の前に一時停止状態２０１にある時は、このアクションが、全ての参加局の参加者に酷似した形で、コマンドを発した局に比べてわずかに遅れてリモート局がこのコンテンツを再生するという警告と共に、現れる。後に続く、静的「Ｐａｕｓｅ  ｔｏ  Ｐ」アクションの伝送、受信、実行の際、各ＳＴＢのコンテンツコントローラはもう一度同期する。
【００３２】
分散型コンテンツコントローラが、早送り（ＦＦ）ボタン作動の前に再生状態２０３である場合は、多少異なる挙動が起こる。リモート局は、コマンド発行局（例えば、ＳＴＢ１１１）と元々同期しており、コマンドが各リモートＳＴＢ（例えば、ＳＴＢ１２１１３１）に伝わる間は、通常速度でコンテンツの再生を継続する。リモートＳＴＢがＰまたはＴを考慮せずにコマンドに従うのであれば、リモートＳＴＢは、２ｘ通常速度で早送りのプレイアウトを開始する前に、少し多くのコンテンツを通常速度で提示するはずである。この状態は、ボタンのリリース、ならびに、コマンド「Ｐｌａｙ  ｐｅｎｄｉｎｇ  ｆｒｏｍ  Ｐ＠Ｔ＋ｘ」（早送りまたは巻き戻しのコマンドについては、遷移２４８または２４６に相当する）のリモートＳＴＢへの伝送およびリモートＳＴＢによる受信まで続く。
【００３３】
例示される実施形態において、図２の再生ペンディング状態２０２に向かってゼロのタイムアウトで遷移することによってのみ、通常速度の再生状態２０３に向かって直ちに遷移２５１が起こり、かつ、全ての局で略同期したプレイアウトが復元される。各局は、略同量のコンテンツを２ｘ速度で再生するが、２ｘ速度で再生されるコンテンツの開始部分が、各局において、チャンネル１０１を介する対応する接続の通信待ち時間の分だけ、多少異なる。
【００３４】
例示される実施形態では、あるＳＴＢ（例えば、ＳＴＢ１１１）から別のもの（例えば、ＳＴＢ１２１）に送られたコマンドの待ち時間が、ほぼ一致していると仮定している。待ち時間が一致しないならば、再生ペンディング状態２０２への（例えば、遷移２４８を介した）遷移が、ＦＦコマンドの速度Ｓパラメータで除算した、ＦＦコマンドおよび〜ＦＦコマンドに相当する第１および第２のＰパラメータにより示されるインターバルに従って、タイムアウトを設定することができる。このように、行われるアクション間の時間は、大元のボタンのイベント間の時間（または、代替えとして、このパラメータがどのコマンドにも付随すると仮定すると、２つのＴパラメータ間の差）とほぼ等しい。このように、第１のコマンドが著しくディレイされ、後のコマンドがそうでない場合、２ｘのプレイアウトの非常に短いインターバルを持たせるのではなく、２ｘのプレイアウトは確なインターバルのために生じる。
【００３５】
第１のコマンドが適時に配信されるが、第２のコマンドがさらに著しくディレイするという、正反対の場合を管理するために、リモートＳＴＢは、瞬間的なホールドオフを設けることができ、それにより、ＳＴＢは、第１のコマンドの実行をホールドオフインターバルによりディレイさせる。ホールドオフ継続期間は、所定の値を持つこと、最悪の場合の待ち時間を表すことができ、または、待ち時間の観察される変化に基づき、動的に変動してよい。対の一方である第２のコマンドが現れると、インターバルの計算が発生し、早送り動作の正確な継続期間が再現される。このアプローチは、可変の待ち時間の存在下で同期を確実に復元するが、２ｘ速度で再生されるコンテンツの開始部分が、各局において、チャンネル１０１を介する対応する接続の通信待ち時間とホールドオフ継続期間の分だけ異なる、という欠点がある。
【００３６】
さらに別の実施形態において、リモート局は、遮断位置を算出することができる。一例として、遷移２６７に関連してコマンド「ＦＦ  ｆｒｏｍ  Ｐ＠ｓｐｅｅｄ  Ｓ」が、同期された時刻Ｔ１に発生したが、後の時刻Ｔ２に受信されたとする。その結果、発信局は、元の速度Ｓ０ではなく速度Ｓでコンテンツを再生する。そのような状況下で、発信局は推定上、受信局に対して相対的にΔＰＢ＝（Ｓ−Ｓ０）（Ｔ２−Ｔ１）分だけ、受信局に先んじて再生する。受信局では、例えば、継続期間（Ｔ２−Ｔ１）（Ｓ−Ｓ０）／（２Ｓ−Ｓ）の間、速度２Ｓで稼働することにより追いつこうと試みることができ、その後、２つの局の間の現在のプレイアウト位置の差は、ほぼゼロになるはずである。
【００３７】
その後、受信局は、他にコマンドを受けるまで、速度Ｓで再生することができる。ここで、速度２Ｓは、「追いつく」速度となるが、この速度は、実装の細部に依存して決めてよく、または、好みの問題として予め決めることができ、すなわち、受信コンテンツコントローラがうまく稼働すると思われる特定の速度があるためである。その後、発信局の参加者が早送りボタンをリリースすると、時刻Ｔ３に、プレイアウトが元の速度Ｓ０で再開し、受信局はこのことを時刻Ｔ４に学習する。そのような状況下で、受信局は、ΔＰＢ＝（Ｓ−Ｓ０）（Ｔ４−Ｔ３）分だけ行き過ぎ、典型的には、適切な継続期間の間、一時停止する（速度をゼロ、または、Ｓ０より小さい値に設定する）。一例として、受信局は、継続期間（Ｔ４−Ｔ３）（Ｓ−Ｓ０）／Ｓ０の間一時停止することにより、行き過ぎ分を補うことができる。
【００３８】
例示される実施形態において、先に急進しているかまたは後に遅れている発信局を補正する試みが、予測因子原理処理を使用して生じる。例示される実施形態の変形において、発信局は、自局の現在位置Ｐおよび対応する時刻Ｔを周期的に送信することができ、また、他の局が、必要に応じて、予測因子原理処理を使用して、位置を合わせるよう作動する、ことを見込むことができる。予測因子原理処理の正確な実装は、対応するローカルコンテンツコントローラの特定の挙動、例えば、速度の値について特定の制限が存在するか否か、または、速度変更、一時停止などの際に、固有の待ち時間が存在するか否か、に依存する。他の制限が、本実装において生じてよく、例えば、位置の不連続を最小にする、または、発信局が一時停止していない場合の一時停止を防ぐ（すなわち、一時停止の代わりに、行き過ぎを補正しながら、１より小さい速度を使用する）。一般に、予測因子原理処理により、ロバストなシステムが同期を維持することが可能となり、例えば、直前に推測されたΔＰがゼロに減少してしまう前に、新しい動的コマンドを受信するなど、複数のイベントが立て続けに発生することが容認される実施形態において、特にそうである。
【００３９】
例えば、「ＰＬＡＹＰＥＮＤＩＧ  ｆｒｏｍ  Ｐ＠Ｔ＋ｘ」コマンドなどのいくつかのコマンドが、遷移が再生ペンディング状態２０２を引き起こし、ここで、タイムアウトは時刻Ｔ＋ｘに時間切れとなるよう設定され、「ｘ」は任意の対のＳＴＢの間の最悪の予想待ち時間に基づくホールドオフを表す。これにより、どの局も時刻Ｔ＋ｘの前のローカル時刻ＴＲに、コマンドを受け取るだろうという見込みでで、コマンドの転送が可能であり、従って、タイムアウトがＴ＋ｘ−ＴＲに設定された状態で、再生ペンディング状態２０２に向かう遷移が直ちに発生する。以下に、ｘの適正な値を測るための例示の機構の説明を、図４と併せて示す。あるいは、分散型コンテンツコントローラシステムでは、十分に大きい所定の値（例えば、ｘ＝５００ｍＳという設定）を用いることができる。このアプローチは、コンテンツのプレイアウトが、発信局を含めて、同時に開始されるという利点をもたらす。時折、通信チャンネル１０１での予想外の待ち時間のため、局が、時間通りに開始するには、コマンドを受信するのが遅すぎることがあるが、そのような場合には、予測因子原理処理により、その局を発信局に追いつかせることができる。
【００４０】
競合状態は、全ての他のＳＴＢへの他のアクションの伝送の前に、１つまたは複数の参加者１１３、１２３、および１３３が、それぞれのリモートコントロール１１５、１２５、および１３５のそれぞれのボタンを押すとき、発生する。そのような競合状態を解消するために、各ボタンの作動は、参加者がボタンを押下した時間を示す付随の時間のタグ「Ｔ」を有する。時間「Ｔ」は、各ローカルクロックが他のローカルクロックと略同期した状態で、各局のローカルクロックに対して決められる。
【００４１】
図４は、分散型コンテンツコントローラに参加している３つのＳＴＢの間でクロックを同期する様式を示す、例示のクロック同期トランザクションシーケンス４００を示す。ＳＴＢ１１１、１２１、および１３１のそれぞれがお互いに通信する。本例において、ＳＴＢ１１１はマスタの役割を担う。ＳＴＢ１１１は、メッセージ４０１をＳＴＢに送信してタイミングの関係性を確立する。ＳＴＢ１１１では、メッセージ４０１の送信時刻を時刻Ｔ１１１Ｓであると留意する。メッセージ４０１の受信時、ＳＴＢ１２１はメッセージ４０２で応答する。ＳＴＢ１２１は、この応答を可及的迅速に行うべきである。実際には、ＳＴＢ１２１では、メッセージ４０２の送信時刻を時刻Ｔ１２１Ｓであると留意し、この時刻をメッセージ４０２に含めることができる。ＳＴＢ１１１は、メッセージ４０２の受信時刻を時刻Ｔ１１１Ｒであると留意し、往復時間４０３をＴ１１１Ｒ−Ｔ１１１Ｓであると判定することができる。正確には正しくないが、往復時間が表すのは、双方の方向の送信の待ち時間Ｌ１１１ｔｏ１２１の適正な近似値であり、（Ｔ１１１Ｒ−Ｔ１１１Ｓ）／２とされる。ＳＴＢ１２１が送信時刻Ｔ１２１Ｓをメッセージ４０２に含めたのであれば、時刻情報の受信時、ＳＴＢ１１１は、それら２つのクロック間の差を、関係性（Ｔ１２１Ｓ−（Ｔ１１１Ｒ−Ｔ１１１Ｓ）／２）−ＴｌｌｌＲに従って、判定することができる。続いて、ＳＴＢ１１１は、ＳＴＢ１２１により提供されたどの時刻もローカル時刻に変換することができる。メッセージ４０２の受信時、ＳＴＢ１１１は、可及的迅速に応答を返さなければならず、これはメッセージ４０４を用いて時刻Ｔ１１１Ａに送信され、この時刻がメッセージ４０４に含まれる。
【００４２】
ＳＴＢ１２１は、メッセージ４０４を時刻Ｔ１２１Ｒに受信し、関係性Ｔ１２１Ｒ−Ｔ１２１Ｓに従って、往復時間４０５を判定することができる。ＳＴＢ１２１は、Ｔ１１１Ａ−（Ｔ１２１Ｒ−（Ｔ１２１Ｒ−Ｔ１２１Ｓ）／２）の値を自身のローカルクロックに加えることにより、ＳＴＢ１１１のクロック値を判定することができる。これにより、ＳＴＢ１２１は、マスタクロック（すなわち、ＳＴＢ１１１のクロック）の現在値を自身のクロックから算出することができる。いくつかの実施形態において、ＳＴＢ１２１は、自身のローカルクロックを、マスタクロックの算出された値と等しくなるように設定することができる。しかし、特定のＳＴＢは、長い運用年数の間にはいくつかの異なるマスタを有しているかもしれない。このため、ＳＴＢは、マスタに対応するオフセットを維持はするべきである。同様の様式で、ＳＴＢ１１１は、メッセージ４１１、４１２、および４１４を交換することによりＳＴＢ１３１と同期し、これにより、往復時間４１３および４１５が算出される。往復時間４１５は、ＳＴＢ１３１が自身のローカルクロックに適用してＳＴＢ１１１上のマスタクロックの現在値を判定するために必要なオフセットを規定する。
【００４３】
任意の所与の往復交換において、通信チャンネル１０１が、非対称すなわち偽の余剰の待ち時間を導入することがある。そのようなことが発生し得る間は、図１のシステムは、最小往復時間と同期して、クロックを同期させる目的で、偽の長い往復時間を無視すべきである。往復時間の統計的分析は、例えば、予想待ち時間を判定するために有用であることが分かる（例えば、一実装では、平均待ち時間を選択可能であり、別の実装では９０パーセンタイル選択される）。参加ＳＴＢの全ての対の中で最高予想待ち時間は、「ｘ」について所定の値（例えば、５００ｍＳ）が選ばれない限りは、図３においてコマンドのいくつかと併せて上記で検討したように、適切なホールドオフ「ｘ」を判定するのに有用である。
【００４４】
概して、伝送のディレイが、ＳＴＢの異なる対の間で同じであると信じる理由は無いため、同期は、ＳＴＢの各対の間で発生するはずである。他の実施形態において、第１のＳＴＢは、マスタとして機能することができ、他のそれぞれのＳＴＢがマスタＳＴＢのクロックに同期する。さらに他の実施形態において、ＳＴＢの全てが、例えば、ネットワークタイムプロトコル（ＮＴＰ）サーバを使用する信頼筋のクロックなどの別のマスタクロック、または、ＧＰＳ（ｇｌｏｂａｌ  ｐｏｓｉｔｉｏｎｉｎ  ｇｓｙｓｔｅｍ）由来のクロックに、同期することができる。さらに、クロックに同期する以外では、いくつかの状況において、図４と併せて説明したトランザクションに関連してホールドオフ「ｘ」について適切な値を使用することが、有用であると分かる。
【００４５】
参加者は、ＳＴＢの対の間の伝送のディレイのため、相反するコマンドをほぼ同時に発行することがある。本原理のシステムは、有利には、異なる局の参加者からのそのような同時のコマンドを管理して、矛盾を最小限にして、かつ、発生する矛盾を軽減する、直感的な、有効なインターフェースを提供する。同様のコマンドの場合、２つの参加者（例えば、参加者１１３および１２３）が、何かおかしな再生があって、両参加者がもう一度見たいと考えたため、それぞれ、自分のリモートコントロール（例えば、リモートコントロール１１５および１２５）のスキップ後方向（ＳＫ−）ボタンを作動させるという可能性を考える。各ボタン押下は、対応するローカルＳＴＢによる処理がなされ、これにより、通信チャンネル１０１を介して他のＳＴＢにコマンドが伝送される。管理されない場合、ＳＴＢ１１１、１２１、および１３１のそれぞれは、２回後方向にスキップし、おかしい部分を行き過ぎ、これは、どちらの参加者も意図しないことである。このアクションにより、分散型コンテンツコントローラを使用してコンテンツを視聴する参加者に対して、ぎこちなさと混乱を招くことになる。
【００４６】
図５Ａは、可能性のある、相反するコマンドを処理するための分散トランザクション５００を示す。各縦軸は、ＳＴＢ１１１、１２１、および１３１の１つを表す。時間は、図５Ａにおいて、上から下に向かって進み、同時に発生するイベントが水平に並ぶ。ＳＴＢ１１１、１２１、１３１が略同期してコンテンツを再生している間に、参加者１１３が自分のリモートコントロール１１５のスキップ後方向ボタン５５１を押下して、ローカルＳＴＢ１１１によって時刻ＴＰＲＩＯＲ５５３に受信される、ＳＫ−コマンド５５２が生成される、と仮定する。遷移表３００から、このイベントは、アクション２４１「ＰＬＡＹＰＥＮＤＩＮＧｆｒｏｍＰ−ｄ＠Ｔ＋ｘ」を引き起こす。Ｐ−ｄは、現在位置からＳＫ−（すなわち、スキップサイズ）に関連する所定の差を引くことに相当するので、ＳＴＢ１１１は、これを位置「Ｎ」として算出する。Ｔ＋ｘは、現在時刻「Ｔ」に何らかの差「ｘ」を足したものであり、これは、所定の値を構成し得、または、上記で検討し、かつ、ここにＴＴＲＡＮＳＰＯＲＴ＋ＲＥＳＰＯＮＳＥ５５４（すなわち、リモートコンテンツコントローラのためのトランスポートのディレイおよび応答時間に余裕を与えるのに十分であると予想される時間量）として示すような現在の待ち時間条件に基づくものであってよい。従って、ＳＴＢ１１１Ｔ＋ｘを時刻ｔＳＹＮＣ５５５と算出する。さらに、このコマンドの発行の時刻を示すために、コマンドには、時刻ｔＰＲＩＯＲが付加される。従って、ＳＴＢ１１１は、コマンドＰＬ：ｆｒ（Ｎ）＠ｔＳＹＮＣ，ｔＰＲＩＯＲをメッセージ５５７としてＳＴＢ１２１に送り、メッセージ５５８としてＳＴＢ１１１からＳＴＢ１３１に送る。この表記ＰＬ：ｆｒ（Ｎ）＠ｔＳＹＮＣは、「時刻ｔＳＹＮＣに位置Ｎから再生する」ことを示す。
【００４７】
ｔＰＲＩＯＲをメッセージ５５７に付加することにより、一時的な優先度コマンドが規定される。相反する場合、先のコマンドが統制する。可能性の低い、一時的な優先度が同じであるという場合、すなわち、２つのコマンドが同じ一時的な優先度値を持つ場合、より高い優先度を持つ参加ＳＴＢからのコマンドが有効となり、一例の実施形態において、ＳＴＢの優先度判定が、ＳＴＢがセッションに参加した順序に依存する。この場合、ＳＴＢ１１１が最初に参加し、ＳＴＢ１２１が２番目に参加し、ＳＴＢ１３１が３番目に参加した。従って、メッセージ５５７は、コマンドが、第１の優先装置（ここではＳＴＢ１１１）から第２の優先装置（ＳＴＢ１２１）への送信用に生じたことを示すタグ「ｌ→２」を有する。なお、メッセージがどのＳＴＢから生じたのかは他のＳＴＢに分かるため、各メッセージがＳＴＢ優先度を含む必要あるわけではない。別の例の実施形態のように、ＳＴＢ優先度は、ＳＴＢのＩＰアドレスに応じて決めてもよく、より下位のＩＰアドレスの値がより高い優先度を有する。なお、これらの例では、ＳＴＢ１１１が、直ちに後方向にスキップするべく動作して、ローカル参加者１１３に、スキップコマンドが再生する映像を見せることができる。ローカルプレイアウトの種々の処理が、図６および７示されるが、以下で検討する。
【００４８】
コマンドのための時間が有効であるようにするために、システム１００は、動的に指定しても、予め決めてもよい、ホールドオフインターバルｔＨＯＬＤＯＦＦ５５６を課すことができ、先のコマンドのすぐ後に発行された他の参加者によるコマンドを許可しない。ホールドオフインターバルは、リモートコマンドを受ける参加者のための時間に、そのリモートコマンドが十分に効果的であるようにする。このように、参加者は、リモートに誘発されたコンテキストの変更を理解する機会を持った後、後続のコマンドを作成する。例えば、参加者は、別の参加者が後方向にスキップするコマンドを既に発行済みだとしても、後方向にスキップする必要はない。別の例として、参加者が早送りを試みても、別の参加者が既に同じアクションの実行をしようとした場合は、不適切とされる。ホールドオフインターバルを策定することでは、参加者が相反するコマンドを与えることを妨げなくても、そのようなコマンドをディレイさせることにより、そのような参加者に、そのコマンドが矛盾の原因になることに気付く機会を与える。
【００４９】
続いて、参加者１２３がリモート１２５のスキップ後方向ボタン５６１を押し、ＳＫ−コマンド５６２が生成されローカルＳＴＢ１２１で時刻ｔＬＡＴＥＲ５６３に受信される。これに応じて、ＳＴＢ１２１が、Ｐ−ｄの値として「Ｍ」を算出するが、この値は「Ｎ」と同じ値である必要はなく、なぜなら、ｔＰＲＩＯＲでのＳＴＢ１１１のプレイアウト位置が、ｔＬＡＴＥＲでのＳＴＢ１２１のプレイアウト位置と一致する可能性が低いからである。同様に、ＳＴＢ１２１によるＴ＋ｘの計算でｔＳ５６５が算出されるが、これがｔＳＹＮＣと等しい可能性は低い。その結果、ＳＴＢ１２１は、コマンドＰＬ：ｆｒ（Ｍ）＠ｔＳ，ｔＬＡＴＥＲをメッセージ５６７としてＳＴＢ１３１に送り、メッセージ５６８としてＳＴＢ１２１からＳＴＢ１１１に送る。
【００５０】
時刻ｔＦＩＲＳＴにて、ＳＴＢ１３１は、ＳＴＢ１２１からメッセージ５６７でＰＬ：ｆｒ（Ｍ）＠ｔＳコマンドを受信し、実装に応じて、時刻ｔＳまで動作することを待機できる。例えば、ＳＴＢ１３１は、タイムアウトがｔＳ−ｔＦＩＲＳＴに設定された状態で再生ペンディング状態２０２に入るか、直ちにプレイアウトを開始することができ、この場合は、実際のコマンドにプリロールを設けるように位置Ｍの前のｔＳ−ｔＦＩＲＳＴに対応する位置で開始され、または、図６および７にいくつかの例が見られる何らかの同様の挙動が設けられる。ｔＳＹＮＣ＋ｔＨＯＬＤＯＦＦの少し前の時刻に、ＳＴＢ１１１は、ＳＴＢ１２１からメッセージ５６８でＰＬ：ｆｒ（Ｍ）＠ｔＳコマンドを受信する。ｔＬＡＴＥＲに開始されたコマンドより先に、ＳＴＢ１２１がｔＰＲＩＯＲにコマンドを開始し、ｔＬＡＴＥＲの時点で、早いほうのコマンドのホールドオフインターバル５５６がまだ時間切れしていないため、ＳＴＢ１１１は、メッセージ５６８による後のコマンドを無視する。
【００５１】
時刻ｔＳＥＣＯＮＤにて、ＳＴＢ１３１は、ＳＴＢ１１１からメッセージ５５８でＰＬ：ｆｒ（）＠ｔＳＹＮＣコマンドを受信する。ＳＴＢは既にＳＴＢ１２１からメッセージ５６７でコマンドを受信しているが、この後から受信したコマンドは、ｔＰＲＩＯＲがｔＬＡＴＥＲより早いため優先度を有する。この２つのコマンドが同一の一時的な優先度（例えば、両者ともｔＰＲＩＯＲに開始された）を持つとしても、メッセージ５５７は、メッセージ５６７より高い優先度を持つが、これは、前者のメッセージが高優先度のＳＴＢから生じたものであるからである。その結果、ＳＴＢ１３１は、ＳＴＢ１１１からのメッセージ５５８によるコマンドに従ってアクションをとる。実装に応じて、参加者１３３には、明らかでない変化が発生することがある。任意の明らかな変化が無いのは、ＳＴＢ１３１のコンテンツコントローラが既に再生ペンディング状態に入っているが、現在はタイムアウトがｔＳＹＮＣ−ｔＳＥＣＯＮＤになる場合である。任意の明らかな変化が無いのは、ＳＴＢ１３１が既にプリロールを開始しており、ＳＴＢ１２１がｔＳに関して命令したプレイアウトと最終的には同期することになるという場合にもある。プレイアウトは、必要に応じてスキップして、ＳＴＢ１１１が時刻ｔＳＹＮＣに関して命令したプレイアウトと同期する。アクションが無い別の例は、プリロールを採用する場合に生じ、プリロールにより、ＳＴＢ１３１が両リモート局からのコマンドが同じ差「ｄ」分だけ後方向にスキップすることを認識するからである。その結果、プリロールまたは同期の変化が必要でなくなるか、または、差が、例えば１、２フレームの映像など小さ過ぎて、修正が必要ない。
【００５２】
ＳＴＢ１２１は、メッセージ５５７の受信時に同様の様式で動作する。メッセージ５５７のコマンドは、コマンド５６２より高い優先度を持ち、ＳＴＢ１２１は、同期したプレイアウトをｔＳＹＮＣに達成する必要があるものとして、このコマンドに対処する。さらに、ＳＴＢ１２１は、ｔＨＯＬＤＬＤＯＦＦ５５６の時間切れまでコンテンツコントローラに影響を与えるリモートコントロール１２５からの追加コマンドを無視する。あるいは、ＳＴＢ１２１は、アイコンを表示すること、または、現在のところＳＴＢ１２１がそのようなコマンドを無視する旨を示す可聴の信号を生成すること、により、コマンドを受信したことに応答を返すことができる。そうであっても、ＳＴＢ１２１は、非トランスポートコマンド（例えば、これらの量の変更）は受け取るが、これらがローカル局のみに影響するからである。時刻ｔＳＹＮＣにて、ＳＴＢ１１１、１２１、および１３１のそれぞれが、お互いに分散して同期した状態でコンテンツを再生する。プリロールを設けることができるＳＴＢのいずれも、既に再生状態２０３に入っている。タイムアウト２５１が時刻ｔＳＹＮＣに発生することを待っている、再生ペンディング状態２０２にあるＳＴＢは、再生状態２０３に遷移したところである。
【００５３】
図５Ｂは、トランザクションシーケンス５００と同様の分散トランザクションシーケンス５７０を示す。図５Ｂが異なっているのは、参加者１２３がリモートコントロール１２５のスキップ前方向ボタン５７１を押して、ＳＫ＋コマンド５７２（ＳＫ−コマンド５６２ではなく）を生成したためである。このアクションにより、コマンドメッセージ５７５〜５７６が送信される。図５Ｂに示される条件の下、ＳＫ−およびＳＫ＋コマンドは、増分コマンドを構成し、すなわち、表３００に示すコマンド形式とは対照的に、所定量だけ後方向または前方向にスキップさせる。従って、時刻ｔＰＲＩＯＲに、ＳＴＢ１１１は、ＳＴＢ１２１へメッセージ５７３でコマンド「ＳＫ−，ｔＰＲＩＯＲ」を送り、メッセージ５７４でＳＴＢ１３１向けにもそのコマンドを送る。この場合、前述のように、ＳＴＢ１１１は、分散型コンテンツコントローラが、一時停止していたか再生中であるかに係わらず、既に同期していると仮定する。さらに、ＳＴＢ１１１は、各局が、受信時にスキップを適切に処理する、または、いくつかの実施形態において、所定または動的に定められる時刻に、時刻ｔＰＲＩＯＲの後についてインクリメントする、と仮定する。同様に、ＳＫ＋コマンド５７２は、「ＳＫ＋，ＰＬＡＴＥＲ」としてパッケージ化され、ＳＴＢ１３１および１１１に、それぞれメッセージ５７５および５７６を介して送信される。しかし、ＳＴＢ１３１が、時刻ｔＦＩＲＳＴ５６９に受信した第１のコマンドメッセージ５７５の受信直後に動作したか、または、再生ペンディング状態２０２用にＳＴＢ１３１が設定したタイムアウトが時間切れとなって、コマンド５７４の受信時には、既に実行済みのコマンド５７４より高い優先度を持つと判定される（ｔＰＲＩＯＲ＜ｔＬＡＴＥＲであるため）場合、ＳＴＢ１３１は、先の実行を戻す必要があるが、メッセージ５７５の優先度を持つコマンドを低くする。さらに、ＳＴＢ１３１は、メッセージ５７４からのコマンドを実行して、結果的に、時刻ｔＳＥＣＯＮＤ５５９から前進して、ＳＴＢ１３１が第２のメッセージ５７４を受け取っただけであるかのように、ＳＴＢ１３１のローカルコンテンツコントローラが振る舞うようにする必要がある。
【００５４】
この、ローカルトランスポートコマンドを「戻す」能力は、第１のトランスポートコマンドの実行時に、ＳＴＢがコマンドに従ってローカルコンテンツコントローラを指示する以上のことを必ず行う、ということを要求する。むしろ、ＳＴＢは、モデルまたは十分なコンテンツコントローライベントデータを保持して、将来のステータスを判定する必要があり、なぜなら、ローカルコンテンツコントローラが第１のコマンドを無視して、そのままの状態が維持されたためである。概して、このことは、第１のコマンド（ここでは５７５）の実行時における時刻「Ｔ１」でのコンテンツ位置「Ｐ１」および速度「Ｓ１」に留意することに等しい。そして、後の時刻Ｔ２に、ｔＨＯＬＤＯＦＦ（例えば、ここではｔＨＯＬＤＯＦＦ５５６などであるが、図示はしないが、ｔＳ５６５に開始して測定されるものでよい）の時間切れより早く、ＳＴＢが、第１のコマンドより優先度が高い（５７４のように）、相反する第２のトランスポートコマンドを受信した場合、簡単な計算により、ＳＴＢが第１のコマンドを実行しなかった、Ｔ２時点のコンテンツ位置Ｐ２が提供される（Ｐ２＝Ｐ１＋Ｓ（Ｔ２−Ｔ１））。第２のコマンドが第１のコマンドより高い優先度を持たない場合は、ＳＴＢは第２のコマンドを無視する。
【００５５】
第２のコマンドが実行されると、ＳＴＢは、ＳＴＢが第３の相反する、かつ、さらに高い優先度のコマンドを受信するという低い可能性の場合に使用できるように、Ｐ２、Ｓ２、およびＴ２を必ず記憶する。ｔＨＯＬＤＯＦＦインターバルが時間切れとなったコマンドと相反する優先度の高いコマンドは無く、このことにより、ＳＴＢがどの程度の期間Ｐ１、Ｓ１、Ｔ１の組み合わせ（または、Ｐ２、Ｓ２、Ｔ２）を記憶するのかについて、上限が設定される。現在の最高の優先度を持つコマンドに関連するｔＨＯＬＤＯＦＦインターバルの時間切れの際、ＳＴＢは、対応するＰ、Ｓ、Ｔの組み合わせの記憶を消してよい。なお、各コマンドの時刻Ｔがコマンドの優先度を表す。上述のように、優先度が同じである場合、優先度を判定するためのさらなる機構を使用することが必要となる。従って、各実行済みコマンドについて、ＳＴＢは、優先度値を保持すること、または、ＳＴＢが現在のＰ、Ｓ、Ｔの組み合わせを保持して、任意の新しく受信されるコマンドと完全な優先度比較を可能にするだけの、優先度を判定する能力を持つことが必要である。なお、より高い優先度を持つメッセージ５５７または５７３の受信時、コマンド５５２に関連するｔＨＯＬＤＯＦＦインターバル５５６の時間切れまで、ＳＴＢ１２１は、リモートコントロール１２５からそれ以上コマンドを受け取らない。ＳＴＢ１３１は、メッセージ５７５の受信時、対応するホールドオフ時間（図示せず）まで、ローカルコマンドを受けておらず、リモートコントロール１３５からコマンドを受け取らない。メッセージ５７４でより高い優先度のコマンドを受信すると、ＳＴＢ１３１は、その制約を解いて、ｔＨＯＬＤＯＦＦインターバル５５６の有効時間のみを要求することができる。
【００５６】
ＳＴＢ１３１とは異なり、ＳＴＢ１１１はそのような制約を受けない。受信したコマンドメッセージ５７６が、既に実施済みの受信コマンド５５２より低い優先度を持つため、ＳＴＢ１１１は、メッセージ５７６を無視する。ｔＨＯＬＤＯＦＦ５５６が時間切れしない限り、参加者１１３は、自分のリモート１１５を使用して別のコマンドを発行することができ、該コマンドは分散型コンテンツコントローラの関連で受け取られる。参加者のコマンドが優先度を持つと、最後のホールドオフインターバルが時間切れになり、「優先度」が簡単に手に入るまでは、次に続くコマンドもそのようになる。これにより、参加者１１３はアクションを開始することができ、例えば、特定のシーンを検索するなどして、１つ以上のコマンドコマンド５５２、例えば、数ステップ後方向にスキップするなど、が必要となる。このようにして、参加者は、そういった試みを干渉したり混乱させたりする参加者１２３および１３３などの他の参加者のコマンドの介入なく、各スキップを実行する権限を持つ。しかし、最後のスキップに対応するホールドオフインターバルが時間切れになると、参加者のコマンドのいずれもが、ローカルにかつ共有のために受け取られ、この優先度機構により解く別のコマンドの相反が生じる。
【００５７】
図５Ａおよび５Ｂは、２つの例示のコマンドの表現機構を示す。シーケンス５００のコマンドは、目標フレーム数（例えば、「Ｎ」、「Ｍ」）および表３００に見られるような目標同期時刻（例えば、ｔＳＹＮＣ５５５）を用いて完全に適格とされるという特性を持つ。シーケンス５７０のコマンドは、その発行時刻（例えば、ｔＰＲＩＯＲ５５３）に関連して現れる。受信されて現在は最高の優先度を持つ各コマンドについて、示した例示の処理機構には、アクションを取る前に同期時刻まで待機すること、同期時刻には略同期を達成するように適宜プリロールすること、および、同期点で、同期時刻まで一時停止すること、が含まれる。
【００５８】
これらのコマンド表現（および、図示しない他のもの）、および処理機構（図示しない他のものを含む）は、アクションにより（例えば、表３００に入力することにより）、また、ＳＴＢにより選択することができる。すなわち、遷移セル３０３内の異なるアクションは、そのものを異なる方法でコマンドメッセージとして明示することができ、個々のＳＴＢ１１１、１２１、および１３１が同じアクションに異なる方法で応答することができる。しかし、一般に、各協働するＳＴＢのローカルコンテンツコントローラを備える分散型コンテンツコントローラは、数フレームまたはほんの一瞬、ならびに、伝送およびコマンドの相反解消時の瞬間的に過ぎない相違、の略同期を維持する。
【００５９】
図６および７はそれぞれ、トランザクションシーケンス５００への異なる応答の効果を示す。図６は、時刻ｔＳＹＮＣ５５５を待つ間の（すなわち、再生ペンディングタイムアウトがｔＳＹＮＣに時間切れになるよう設定されている）、再生ペンディング状態２０２での一時停止を示す。一方、図７は、時刻ｔＳＹＮＣまたはその前での同期が確保された再生状態２０３でのプリロールを示す（すなわち、再生ペンディングタイムアウトは、ｔＳＹＮＣまたはその前に時間切れになり、前である場合、再生状態２０３は、指定される位置Ｎより前の、位置ｔＳＹＮＣ−ｔＳＴＡＲＴから開始される）。図６に示すように、共有される提示６００は、それぞれ局１１０、１２０、および１３０のモニタ１１２、１２２、および１３２に表示される。時間６１０にて、提示が同期し、それぞれ対応するモニタ１１２、１２２、１３２上に現れる表示６１１、６１２、および６１３が、ほぼ同じ画像を示す。時間６２０にて、局１１０の参加者１１３が、リモートコントロール１１５のスキップ後方向ボタン５５１を押し、その結果、ＳＴＢ１１１が時刻ｔＰＲＩＯＲ５５３に、ＳＫ−コマンドを受信する。現在のフレーム６３１が、ＳＴＢ１１１については「Ｎ」に設定され、これは、所定の値だけ後方向にスキップすることに相当し、プレイアウトが一時停止する。しかし、局１２０および１３０は再生を継続しており、現在のところ、局１１０からのコマンドについては通知されていない。従って、オンゴーイングのプレイアウトフレーム６３２および６３３がそれぞれ局１２０および１３０に現れる。スキップ後方向アイコン６３４が、局１１０のディスプレイに現れる。本例において、コマンド発行局１１０は「Ｎ」で一時停止して、指定の再同期時刻ｔＳＹＮＣ５５５を待っている。
【００６０】
時間６４０にて、局１２０の参加者１２３が、リモートコントロール１２５のスキップ後方向ボタン５６１を押し、その結果、ＳＴＢ１２１が時刻ｔＬＡＴＥＲ５６３にＳＫ−コマンドを受信する。局１２０の現在のフレーム６４２が今度は「Ｍ」に設定され、これは、所定の値だけ後方向にスキップすることに相当する。プレイアウトが一時停止し、スキップ後方向アイコン６４４が今度はローカルディスプレイに現れる。局１１０は、背景を斑点にして図６に示すように、フレーム６４１で一時停止している。局１３０は、フレーム６４３の再生を継続しており、まだリモートで生成されたコマンドのことを知らない。
【００６１】
時間６２０および６４０でのリモートコントロールイベントにより、図５Ａに示すようにコマンドメッセージ５５７、５５８、５６７、５６８が生成される。時刻ｔＦＩＲＳＴ５６９にて、局１３０のＳＴＢ１３１がメッセージ５６７を受信する。同時に、局１２０のＳＴＢ１２１がメッセージ５５７を受信する。これら２つのコマンドメッセージの受信の結果、局１２０は、局１１０からのコマンドに応答して一時停止したフレーム６５２を表示する。局１３０は、局１２０からのコマンドに応答して一時停止したフレーム６５３を表示する。スキップ後方向アイコン６５４が、局１１０の参加者１１３に対して表示され、本例においては、参加者１１３を表す画像を使用してコマンドに属性を持たせる。同時に、同様の様式で、スキップ後方向アイコン６５５が局１２０の参加者１２３に属するものとなる。この時点で、局１３０は局１２０から低優先度のコマンドを受信しているだけであり、後方向にスキップしたが、局１１０および１２０のスキップには及んでいない。
【００６２】
時刻ｔＳＹＮＣ５５５になるまでには、ＳＴＢ１１１および１３１はコマンドメッセージ５６８および５５８を受信する。ＳＴＢ１１１はメッセージ５６８を無視するが、そのＳＴＢが既により高い優先度のコマンド５５２のことが分かっているからである。しかし、局１３０のＳＴＢ１３１がメッセージ５５８を受信したとき、そのメッセージは、より高い優先度を持ちかつメッセージ５６７のコマンドよりも優先されていた。その結果、局１３０は、より高い優先度コマンドを受け取り、フレーム「Ｎ」にスキップした。時刻ｔＳＹＮＣにて、局１１０、１２０、および１３０のそれぞれが、略同期した画像６６１〜６６３それぞれの表示を開始する。局１３０は、スキップ後方向アイコン６６４を表示することもできるが、アイコンは今のところ、参加者１１３に属するものとなっている。続いて、３つの局が、略同期した状態で画像６７１〜６７３の再生を継続する。スキップ後方向アイコン６３４、６４４、６５４、６６４があるインターバルの後消え、これにより、所定の時間（例えば、図示のように約１秒）が構成され、または、同期点（例えば、時刻ｔＳＹＮＣ５５５）まで、または、この状態が、ホールドオフインターバル（例えば、時刻ｔＨＯＬＤＯＦＦ５５６）が時間切れになるまで、持続される。なお、アイコン６５５は、より高い優先度のコマンド５５８に対応するアイコン６６４と入れ替えられている。後者のポリシーでは、現在別の参加者が優先度を命令しているということを示す視覚的表示を提供するという利点を提供がされる。しかし、アイコン６５５および６６４で分かるように、現在優先度を持つ参加者が変更することができる。アイコンにより、なぜローカルリモートが効力を持たないのか（優先度を持つ別の参加者のせいで）についての視覚的なリマインダが提供される。インターバル６１０、６２０、および６６０の間、局１１０、１２０、および１３０はほぼ同期して動作し、その一方、インターバル６３０の間は、局のステータスが一時的に分化する。
【００６３】
図７は、先に検討したものと同じトランザクションシーケンス５００に応答する共有される提示７００を示すが、局が映像をプリロールして、指定のフレームＮ上で指定の時刻ｔＳＹＮＣ５５５にロール同期を達成する時の状況下のものである。時間７１０にて、局１１０、１２０、および１３０は、それぞれ同期フレーム７１１、７１２、および７１３を表示する。時間７２０にて、局１１０では、参加者１１３がＳＫ−コマンド５５２を発行して、ＳＴＢ１１１が時刻ｔＰＲＩＯＲ５５３に受信し、その結果即座にフレーム７１０が「Ｎ」として指定され、後方向スキップアイコン７３４がモニタ１１２上にローカルに表示される。リモート局１２０および１３０は、まだコマンド５５２を知らない状態にあり、それぞれフレーム７３２および７３３の表示を継続する。
【００６４】
時間７４０にて、参加者１２３がＳＫ−コマンド５６２を発行して、ＳＴＢ１２１が時刻ｔＬＡＴＥＲ５６３に受信する。フレーム７４２は、ローカルな後方向スキップを示すもので、「Ｍ」として指定され、後方向スキップアイコン７４４がコンテンツモニタ１２２上に表示される。リモート局１１０および１３０は、まだコマンド５６２のことを知らない状態にある。ＳＴＢ１３１は再生を継続して、現在フレーム７４３であり、一方、ＳＴＢ１１１はフレームＮを超えて後方向にスキップして、現在フレーム７４１を再生しており、プリロールイベントが示される。参加者１１３は、フレーム７４１の表示を薄暗くする、または、フレームにタグをつける（図７では斜線で示す）などすることができ、他の参加者１２３および１３３が、このプリロールを共有コンテンツとして視聴しないかもしれない（するかもしれないが）ことに、参加者１１３が気付くようにする。
【００６５】
時刻ｔＦＩＲＳＴ５６９にて、ＳＴＢ１１１は、まだフレーム７５１を再生しており、従って、まだローカルコマンド５５２に応答してプリロール動作を実行している。ＳＴＢ１２１は、後方向にスキップして、現在フレーム７５２を再生している。従って、ＳＴＢ１２１は、現在、リモートコマンドメッセージ５５７の受信に応答して、プリロール動作を実行している。さらに、ＳＴＢ１２１は、参加者１１１あるいは局１１０属する、または全く属性の無いリモートのスキップ後方向アイコン７５４の表示をトリガする。ＳＴＢ１３１は後方向にスキップして、現在、リモートコマンドメッセージ５６７の受信に応答してプリロール動作を実行した結果、フレーム７５３を再生している。さらに、ＳＴＢ１３１は、参加者１２１に属するリモートスキップ後方向アイコン７５５の表示をトリガする。最高の優先度のコマンドに対応するプリロール動作と結びついたそれらの局（例えば、局１１０および１２０）に対して、それらの画像（例えば、画像７５１および７５２）が略同期する。
【００６６】
時刻ｔＳＹＮＣ５５５にて、モニタ１１２、１２２、１３２のそれぞれが、フレームＮ（画像７６１、７６２、７６３）を表示し、局１３０が、現在参加者１１１に属するリモートスキップ後方向コマンドアイコン７６４を示す。表示は、略同期され、プレイアウト、すなわち、この画像７７１、７７２、および７７３の表示が継続するように保たれる。インターバル７１０、７２０、および７６０の間、分散型コンテンツコントローラは略同期した状態を保ち、インターバル７３０の間は、いくつかの局のステータスは分化する。
【００６７】
図８はトランザクションシーケンス８００を示し、ホールドオフインターバルの別の目的および効果が説明される。時刻ｔＰＲＩＯＲ８５３にて、ＳＴＢ１１１が、リモートコントロール１１５のボタン押下８５１の結果、ＳＫ−コマンド８５２を受信する。ＳＴＢ１１１は、このインターバルを動的に判定することにより、または、所定のトランスポートディレイおよび応答時間インターバル８５４に従って時刻ｔＳＹＮＣ８５５を設定する。ＳＴＢ１１１は、得られたコマンドをＳＴＢ１２１およびＳＴＢ１３１に、それぞれメッセージ８５７および８５８によって送信する。ＳＴＢ１２１がメッセージ８５７を受信した後、このＳＴＢは、同期時刻（ｔＳＹＮＣ）まで、リモート１２５のボタン押下８６１で生じるトランスポートコマンド８６２などのトランスポートコマンドを無視するが、なぜなら、そのコマンドが、コマンド８５２（メッセージ８５７により中継される）より低い優先度（このコマンドは後に到着した）を持つからである。さらに、時刻ｔＳＹＮＣ８５５の後でさえ、ポリシーにより時刻ｔＨＯＬＤＯＦＦ８５６などのホールドオフインターバルが必要とされる場合は、ＳＴＢ１２１は、ボタン押下８７１で生じるトランスポートコマンド８７２などのトランスポートコマンドも無視する。時間ｔＨＯＬＤＯＦＦが時間切れとなった後、例えば、ａｔＮＥＸＴ８８３に、ＳＴＢ１２１がボタン押下８８１で生じるトランスポートコマンド８８２を受信する場合、ＳＴＢ１２１は、そのコマンドを受け取り、リモート局１１０および１３０にそれぞれメッセージ８８８および８８７を介して伝送する。
【００６８】
ホールドオフインターバルは、優先度を持つコマンドを発行した局（ここでは、ＳＴＢ１１１を有する局１１０）には適用される。これにより、優先度を持つコマンドを発行する参加者（ここでは、局１１０の参加者１１３）が、いかなる目的のためでも、他の参加者のコマンドから干渉されることなく、後に続くコマンドを発行することができる。さらに、これにより、別の参加者（ここでは、参加者１２３）にもコマンド（例えば、コマンド８８２）の発行前に何が起こったのかが分かるように、適宜時間が与えられる。時間ｔＨＯＬＤＯＦＦ８５６の時間切れ前に、コマンド８５２に続いてコマンドを発行しないことで、参加者１１１は、任意の他の参加者に優先度を譲る。ホールドオフインターバルの時間切れ前にコマンド８６２および８７２を許可しないことにより、参加者１２１は、関係のないコマンドを開始する前に、より高い優先度コマンド、例えばコマンド８５２、の結果が分かる機会を確実に得る。本原理の分散型コンテンツコントローラのこれらの重要な態様は、欠如していると、混乱、不満、およびあからさまな矛盾を引き起こす可能性が高い。
【００６９】
図９は、コマンド操作処理９００を示し、分散型コンテンツコントローラへの参加のためにＳＴＢ１１１により実行される。処理９００は、ＳＴＢ１１１が既に１つまたは複数のリモート局（例えば、ＳＴＢ１２１および１３１）に接続された状態で、ステップ９１０にて開始される。いくつかの例において、ステップ９１１にて、ＳＴＢ１１１が、クロック同期処理４００を用いるなどして、リモート局のそれぞれに対して待ち時間を判定し、結果は待ち時間データ９０１に格納される。他の実施形態において、特に、ＳＴＢ１１１がローカルクロックタイムを確立する際に他の機構を使用する場合、待ち時間データ９０１が予め定められてよい。待ち時間データ９０１は、十分な情報を提供して、リモート局（例えば、局１３０）が、リモート局から（例えば、メッセージ５５８を介して）送信される、ローカルに生じたコマンド（例えば、コマンド５５２）を実行可能な時間（例えば、ｔＳＹＮＣ５５５）を、ローカル局（例えば、局１１０）が正確に予測できるようにする。逆の状況では、待ち時間データ９０１により、メッセージ（例えば、５５８）で受信されるリモートに生じたコマンドが、リモート発信局（例えば、局１１０）によって実行される時間（ｔＳＹＮＣ５５５）を、ローカル局（例えば、局１３０）が正確に予測できるようになる。
【００７０】
待ち時間データ９０１は、様々な形式で存在させることができる。例えば、待ち時間データは、マスタ局のクロックのオフセットを構成することができ、マスタ局についてはゼロでよい。あるいは、待ち時間データ９０１は、他のリモートクロックのそれぞれに対してローカルクロックのオフセットを表すデータを構成することができる。同期前のクロックに用いて有用な待ち時間データのさらに別の例は、各リモート局へのトランスポート待ち時間の記録である。十分に正確な同期前のクロックを有し、実際のトランスポート待ち時間ではない所定の値を使用するいくつかの実施形態では、データの取得を全く必要とせず、その場合、待ち時間データ９０１は所定の値のセットを構成する。
【００７１】
ステップ９１２にて、局１１０は、その情報を各リモート局と交換する。ローカル局（例えば、局１１０）についての情報は、ローカル局情情報ストア９０２Ａにあり、ローカル局情情報ストア９０２Ａからダウンロードされ、典型的にはローカル局に関連するＳＴＢに常駐する。ローカル局（例えば、局１１０）は、リモート局（例えば、局１２０および１３０）について取得した情報をリモート局情報ストア９０２Ｂに記録する。局情報には、アイコン６５４、６５５、６６４、７５４、７５５、および７６４（これらのアイコンには参加者の画像を使用することができる）に含まれる参加者の属性などの属性に使用するための画像、名前、アイコン、またはローカル参加者もしくは局を表す番号、を含むことができる。従って、局１１０では、カメラ１１７で参加者１１３の画像をキャプチャすることができ、または、参加者の画像を、ＳＴＢ１１１がアクセス可能なローカル局情報ストア９０２Ａに格納することができる。参加者の画像のキャプチャまたはプロビジョニングは、処理９００（図示せず）の開始と同時に発生してよい。あるいは、参加者の画像は、開始ステップ９１０の時点で存在していてよい。各リモート局から受信した局情報は、メモリ９０２Ｂに格納される。
【００７２】
いくつかの状況において、各局がお互いに局同士で情報を交換するのではなく、参加局の１つが、マスタとして機能することができる。従って、１つの局が、局情報のクリアリングハウスとして動作することができ、その場合、ステップ９１２での局情報の交換は、クリアリングハウスとして指定される局と行われる。各局は、他の局が分散型コンテンツコントローラに参加すると、臨時の更新を要求してよい。さらに他の状況では、サーバ１０３は、他の局によるアクセスのために局情報を保持することができる。交換用に提供される追加の局情報には、各ローカルコンテンツコントローラの特性が含まれてよい。例えば、いくつかのローカル局が、早送りのレートに１０ｘの制限があるが、他の局が２０ｘを達成できる場合、分散型コンテンツコントローラは、下限に制約されることになる。他の実装において、コンテンツコントローラ能力が遅い局が、早送りのプレイアウトではなく、前方向スキップを用い、それにより、分散型コンテンツコントローラの動作を「最小公分母」に制約する。
【００７３】
局間の潜在的な相違の別の例には、再生コマンドの予想セットアップ時間に対して発生するものがある。いくつかの局は、シークタイムが速いが、他の局ではシーク動作が遅く、分散型コンテンツコントローラは、参加局の最低のシークタイムに対する性能上の制約に直面する。性能に関する別の制約が生じるのは、スキップ前方向とスキップ後方向のコマンドについて、異なる局が異なるスキップサイズを実装する場合である。
【００７４】
他の局情報には、コンテンツの利用可能なソースを含むことができる。図１は、ヘッドエンド１０２が共有コンテンツのソースとして機能する例示の実施形態を示す。１つまたは複数のＳＴＢが追加のヘッドエンド（図示せず）をサポートするか、または、１つまたは複数のサービスの「オーバーザトップ」のインターネットストリーミングをサポートするか、または、ローカルにキャッシュされるコンテンツをサポートする場合、局は、そのような代替のソースからコンテンツを共有することができる。利用可能なコンテンツが多ければ、例えば、参加者１１３、１２３、および１３３に、３つ全てのＳＴＢ１１１、１２１、１３１がアクセスかつ共有できるコンテンツを提示することにより、「何を見るか」を決めることが容易にされる。制約により、参加者が利用可能なコンテンツの検索能力が制限することができる。さらに、電子番組ガイドには、どの参加者（または局）が各番組を共有できるのかを示す注記を含むことができる。この特徴により、参加者のグループは、どの参加者の構成が、コンテンツ選択についてのグループの幅広さを最も制約するのかを認識することが可能となり、このことにより、次回誰を招かないか、または、誰が機器またはサービスの更新について考えるのか、が示唆されることになる。
【００７５】
図９に示される処理９００と併せて、以下で検討する種々の例示は、特定の局の観点についての例の先行する検討に基づく。明確にするために、以下の処理ステップは、分散型コンテンツコントローラと併せて各局により実行され、各局はその対応する観点を有する。ＳＴＢ１１１で発生する処理９００では、そのＳＴＢは、「ローカルＳＴＢ」として動作し、それに対して、他のＳＴＢ１２１、１３１が、ＳＴＢ１１１に対して「リモートＳＴＢ」として現れる。種々の例において、異なるＳＴＢを「ローカル」または「リモート」装置として呼び出すことがあると言う事実は、どの局の条件も全て提供しているのではないが、図３〜８についての上述の検討から得られるものである。
【００７６】
処理９００には、ステップ９２０から開始して実行されるメインループが含まれる。最初に、チェックが行われて、ローカルコマンドの発生が判定される（例えば、コマンド８５２および８６２の一方の発生）。発生した場合、ステップ９２１にて、アクティブな（時間切れしていない）リモートホールドオフインターバル（例えば、タイムインターバル８５６）についてチェックが行われ、コマンド履歴バッファ９０３に反映される。アクティブなリモートホールドオフインターバルが現在存在する場合、ＳＴＢは、ローカルコマンドを無視して、ステップ９２０にてメインループを再スタートする。この状況の例は、ＳＴＢ１２１がコマンド８６２および８７２を受信するときに発生するが、ホールドオフインターバル８５６が、リモート局ＳＴＢ１１１からのコマンド８５２に関連して、まだ時間切れではないためある。ローカルＳＴＢは、ｃａｎビープ音を出す、アイコンを点滅させる、または他の方法で、このようにしてコマンドの拒否を示す。いくつかの例では、ＳＴＢは、ローカルコンテンツモニタ（例えば、１２２）上にリモート局コマンドアイコン（例えば、アイコン６５４）の表示を開始することができる、さらに、ローカル参加者（例えば、１２３）にローカルコマンドがブロックされている理由を通知する
ステップ９２１にて、実行されたチェックにより、所定位置にアクティブなリモートホールドオフが無いことが明らかにされる。例えば、この状況はコマンド８８２と共に存在し得え、時刻ＮＥＸＴ８８３までに発生したため、それより前のリモートホールドオフ８５６が時間切れになってしまうのである。アクティブなリモートホールドオフが無い状態で、ステップ９３０が、ローカルコマンド（例えば、コマンド８８２）を処理するべく実行され、その時刻に、ＳＴＢがローカルコマンドを各リモート局に（例えば、メッセージ８８７および８８８として）送信する。ステップ９５０にて、コマンド履歴バッファ９０３では、処理されるコマンドを配慮することができ、該コマンドより前の、現在位置Ｐ、速度係数Ｓ、時刻Ｔを表すまたはそれらに基づく情報が含まれる。コマンド履歴バッファ９０３では、このコマンドに対応するホールドオフの失効時間を考慮することもでき、または、必要に応じてこの値をＴから導き出すことができる。コマンドの優先度の判定に、Ｔの他にも情報が必要な場合は、２つのコマンドが時刻Ｔに同時に起こる場合のように、コマンド履歴バッファ９０３は、追加の優先度情報（例えば、コマンドを提供する局、コマンド提供する局のＩＰアドレスなど、上述の通り）も記録することができる。
【００７７】
ステップ９５１にて、ローカルコンテンツコントローラの状態に変化が起きたか否かについてチェックが行われ、これには、上記で検討したように、再生ペンディング状態２０２の適切なタイムアウト値の計算が含まれてよい。この計算では、ステップ９５０で言及したばかりのローカルコンテンツコントローラの状態（すなわち、位置Ｐおよび速度Ｓ）を考慮することができ、また、シークタイム、スルーレート、早送り／巻き戻し速度の限界または量子化などの、ローカルコンテンツコントローラの性能限界を考慮することができる。この計算により、ローカルコンテンツコントローラで使用するためのコマンドの良好な変換が提供される。全ての局が同一のローカルコンテンツコントローラ性能パラメータを有するならば、この計算は自明なものとなる。しかし、性能パラメータが異なる場合、例えば、１つのコマンドが３ｘの早送りを指定するが、ローカルコンテンツコントローラが２ｘまたは５ｘしかできない場合、差を解消するためのいくつかの可能性が存在する。例えば、ＳＴＢが、単一の速度（例えば、２ｘ）を選択できるようにする。あるいは、ＳＴＢは、より複雑なコマンドのシーケンス（図示せず）を実行して、２ｘと５ｘの間で早送りのレートをディザリングすることができる。例えば、ＳＴＢは、２ｘで２秒間稼働し、次に、５ｘで１秒間稼働することを繰り返すことで、平均して３ｘとなるが、３ｘで稼働するコンテンツコントローラを追い越すことはない。どちらの場合も、ＳＴＢは、後の一時停止または通常速度プレイアウトのコマンドの処理の際には「フィックスアップ（整える）」を実行する必要がある。いくつかの場合、ステップ９５１で発生する計算により、先のコマンド（例えば、ディザリングされた早送り速度）の近似のために要求される、必要なフィックスアップが提供される。
【００７８】
リモートコマンドが、ステップ９５１にて処理される場合、待ち時間データ９０１は、必要に応じて適切なタイミングオフセットを判定する機能があるため、各局で実行されるコマンドが最終的に同時発生するようにされる（インターバル６６０および７６０の間に達成されるように）。待ち時間データ９０１の使用例により生じる結果は、略同期がｔＳＹＮＣ５５５にグローバルに起きるように、コマンドメッセージ５５７が、ＳＴＢ１１１のローカルクロックに従ってｔＳＹＮＣとして表現され、そして、ＳＴＢ１２１を処理する際にＳＴＢ１２１のローカルクロックに変換されるはずであるということである。
【００７９】
ステップ９５２にて、ローカルＳＴＢ１１１は、ステップ９５１にて計算されたトランスポートコマンドを、ローカルコンテンツコントローラに対して発行する。例えば、ローカルコンテンツコントローラがＤＶＤプレイヤを備え、コマンドが、プレイアウトを開始すること、である場合、再生コマンドが、ＤＶＤプレイヤに適切なタイミングで発行され、コマンドにはＤＶＤプレイヤのレスポンスの任意の予測可能な待ち時間についての補償が含まれる。ローカルコンテンツコントローラが、入力メディアブッファを含むデジタルメディアプレイヤを備える場合、再生コマンドにより、確実に適切なコンテンツがバッファに送り込まれ、時間通りにプレイアウトが、コマンドが指定した時間と場所から開始されるようにする。
【００８０】
ステップ９５３にで、必要であれば、コマンドアイコンを、ある時間の間スクリーン上に表示させることができる。ローカルコマンド（例えば、ＳＴＢ１１１でのコマンド５５２）の場合、ローカルコマンドアイコン（例えば、アイコン６３４）を、モニタ１１２上に表示させることができる。リモートコマンド（例えば、ＳＴＢ１２１で受信されたメッセージ５５７）の場合、属性のあるコマンドアイコン（例えば、アイコン６５４）を、リモート局情報ストア９０２からのリモート局（例えば、ＳＴＢ１１１）に対応する情報を使用して、モニタ（例えば、モニタ１２２）上に表示させることができる。コマンドアイコンを、ステップ９５３を通る次の経路に対応するタイムインターバルの間に表示させて、最新の優先度を持つコマンドを表すことができる。あるいは、コマンドアイコンを、対応するホールドオフインターバルの時間切れまで、まだ過ぎていない場合で、ある所定の最小時間（例えば、１秒）以上、表示させることができ、状態について現在の変化の原因を参加者が判定する機会が常にあるようにされる。
【００８１】
この時点で、ステップ９２０にて、処理がメインループを再スタートさせ、コマンドアイコンは、交換されてしまっていなければ、ステップ９５３で判定されたタイミングに従って消えるように設定された状態にある。任意のローカルトランスポートコマンドシーケンス（例えば、ステップ９５１にて実行される、早送り速度をディザリングする例）は、後に続くコマンドによりキャンセルされるまで、必要に応じて継続される。ステップ９２０にて、処理を必要とするローカルコマンドが無い場合、ステップ９２２にてテストが行われて、リモートコマンドメッセージ（例えば、メッセージ５５７、５６７、および５６８）の受信がチェックされる。リモートコマンドメッセージが無い場合、ステップ９２０にて、処理がメインループを再スタートさせる。コマンドメッセージの受信時、ステップ９２３にて、テストが行われて、任意のホールドオフがアクティブであるか否かが判定される。コマンド履歴バッファ９０３は、ステップ９５０において先になされた各実行の間に更新され、ホールドオフが無い場合、または、時間切れでないものが無い場合、この新しいリモートコマンドの処理がステップ９５０にて継続される。これの例には、ＳＴＢ１３１によるコマンドメッセージ５６７の最初の受信、および、ｔＨＯＬＤＯＦＦ８５６の時間切れの後のＳＴＢ１１１によるコマンドメッセージ８８８の受信、が含まれる。
【００８２】
しかし、ホールドオフがアクティブである場合、リモートまたはローカルのコマンドに関連するか否かに係わらず、ステップ９２４にて、再度コマンド履歴９０３からのデータを使用してチェックが行われて、新しいリモートコマンドが、先の優先度を持つコマンドより高い優先度を持つか否かが判定される。持たない場合、ＳＴＢは、新しいリモートコマンドを静かに破棄し、ステップ９２０にて処理を再スタートさせる。これの例は、ｔＨＯＬＤＯＦＦ５５６がまだ時間切れでなく際の、ＳＴＢ１１１によるコマンド５６８の受信時に発生する。
【００８３】
ステップ９２４にて、新しいリモートコマンドが、より高い優先度を持つ場合（その例には、ＳＴＢ１３１によるメッセージ５５８および５７４の受信が含まれる）、ステップ９２５にて、任意的なテストが実行されて、新たに受信されたより高い優先度のコマンドが、実効的な変化を示す否かが判定される。実効的な変化が発生していない場合、すなわち、ローカル局の観察できる挙動が、先のコマンドの代わりに新しくより高い優先度コマンドを実行することにより、実施的に変化しない場合、局は、より高い優先度コマンドの実行を見送ることができる。これの例は、ＳＴＢ１３１によるコマンドメッセージ５５８の受信と併せて検討したいくつかの実施形態と共に発生するが、それにおいて、２つの異なるＳＫ−コマンド５５２および５６２により、分化するインターバル（例えば、インターバル６３０および７３０）の間に、異なる挙動が引き起こされ得るが、最終的には、少し後に（例えば、インターバル６６０７６０）、略同期されることになる。分化のインターバルは、それほど厳しくも破壊的にもならないため、実際のより高い優先度を持つコマンドの発行に厳密さは必要ない。事実、ローカルコンテンツモニタに提示される表示に実際に示される混乱は、実際に存在するよりも少ない。にもかかわらず、実際のより高い優先度コマンドをコマンド履歴９０３に記録することが、記録にはコマンドが実行されなかったことが注記されるけれども、依然望ましい。ＳＴＢが、適切な属性のあるアイコンの表示を提供するので、特定のリモート局が現在優先権を有する、という視覚的表示をローカル参加者は受信できるが、このアクションは、ステップ９２５に関連して現れない。 
【００８４】
ステップ９２５にて行われるテストにより、新しくより高い優先度を持つリモートコマンドが実効的な変化を示すと判定された場合（または、実装により、ステップ９２５にてテストが実行されず、ステップ９２４にて実行されたテストにより、新しいコマンドが優先度を持つと分かった場合）、ステップ９４０にて、ＳＴＢ１１１は、１つまたは複数の先のコマンドを先制して回避し、ステップ９５０にて、新しくより高い優先度を持つコマンドを処理する。この一連のイベントの例は、ＳＴＢ１３１によるＳＫ−コマンドメッセージ５７４の受信時に発生し、先のＳＫ＋コマンド５７５を後から行う。ＳＫ＋コマンドは、先制して回避されて、より高い優先度ＳＫ−コマンドがＳＴＢ１３１により処理される。いくつかの場合、ローカルコンテンツコントローラの仮説上のステータスの計算が生じ、現在のものであったステータスが、今度は先制して回避されるコマンドを持つことになり、実行されない。最も早く先制して回避されたコマンドに関連したステップ９５０の早期の実行中に、コマンド履歴９０３に記録された位置／速度／時間の状態により、そのような仮説的ステータスが容易に生み出される。ローカルコンテンツコントローラの仮説的ステータスが、現在時刻と新しい優先度を持つコマンドの実効時間と間のどこかの時間（実装に依存する）に対する記録された状態の外挿を構成する。実際には、実効時間は、メッセージ５７４から渡された、または、ポリシーまたは局情報から識別できる、時刻ｔＳＹＮＣを構成する。この仮説的ステータスは、ステップ９５０にて記録されるものであって、現在先制して回避されるコマンドによって誘発される実際のステータスではない。
【００８５】
なお、いくつかの実装について、特に、メッセージ待ち時間および装置応答時間に適度な余裕を与える実装では、実際のローカルコンテンツコントローラステータスから仮説的ステータスへの必要とされる任意のフィックスアップは、ささいなものである。例えば、メッセージ５６７受信時の図５ＡのＳＴＢ１３１を考えると、ローカルコンテンツコントローラは、フレーム「Ｍ」にジャンプして、一時停止され、再生ペンディング状態２０２で待機しており、タイムアウトが時刻ｔＳに設定されている。メッセージ５５８で、より高い優先度を持つコマンドを受信すると、ＳＴＢ１３１は、そのタイムアウトを先制して回避する。後に続く、新しい優先度を持つコマンド（ステップ９５０−９５３）の処理において、ローカルコンテンツコントローラは、フレーム「Ｎ」にジャンプして、再生ペンディング状態のタイムアウトが時刻ｔＳＹＮＣに設定された状態で待機する。
【００８６】
図１０は、分散型コンテンツコントローラを提供する局で使用するための簡略化したリモートコマンド操作処理１０００を示す。処理１０００は、ステップ１００１にて、新しいリモートコマンドを分散型コンテンツコントローラに参加する他の局の１つから受信すると、開始される。ステップ１００２にて、コマンド履歴バッファ９０３のチェックが行われて、現在アクティブなホールドオフが残っているか否かが判定される。残っていない場合、新しいコマンドが、ステップ１００５にて即座に実行される（または、適切な時刻に実行されるようスケジュールされる）。コマンド履歴バッファ９０３は、現在のローカルコンテンツコントローラステータスを、現在の優先度を持つコマンドとして記録する。
【００８７】
しかし、ステップ１００２にて、アクティブなホールドオフアクティブが存在する場合、ステップ１００３にて、チェックが行われて、コマンド履歴バッファ９０３からのデータを使用して、新しいコマンドが、現在の優先度を持つコマンドより高い優先度を持つか否かが判定される。アクティブなホールドオフが存在し、かつ、それを超える優先度を新しいコマンドが持たない場合、ＳＴＢは、新しいコマンドを無視し、ステップ１００６にて処理が終了する。しかし、新しいコマンドが優先度を持つ場合ＳＴＢは、ステップ１００４にて、先に受信したが優先度が低いコマンドを先制して回避し、仮説的コンテンツコントローラ状態を計算して、コンテンツコントローラの状態が、先制して回避されたコマンドが決して実行されない状態であることを判定する。ステップ１００５にて、ＳＴＢは、新しいコマンドを実行する（または、実行用にスケジュールする、すなわち、１つまたは複数のアクションが、必要に応じてタイムアウト値を含んでローカルコンテンツコントローラに与えられる）。ＳＴＢは、現在のコンテンツコントローラ状態（これは、仮説的コンテンツコントローラ状態であり、ステップ１００４にて先制して回避された任意のコマンドに因る）を、現在の優先度を持つコマンドとしてコマンド履歴バッファ９０３に記録する。ステップ１００５にて、新しいコマンドが実行用にスケジュールされると、ステップ１００６にて処理が終わる。
【００８８】
図１１Ａ〜Ｄは、図５Ｂに示すトランザクションに反応してＳＴＢ１１１、１２１、１３１がとる例示のローカルコンテンツコントローラの挙動を示す。以下で検討するように、ＳＴＢ１３１の挙動は、図１１Ａ〜Ｄのそれぞれにおける異なる例示の戦略によって、異なる。これら４図のそれぞれにおいて、垂直のコンテンツ位置軸１１０１では、コンテンツの前の方（コンテンツ自身のタイムラインの意味で）ほど、軸の下端近くに示され、後ろの方ほど上端に近づく。水平の時間軸１１０２は、（先から後へ）左から右へ進む。そのうえで、通常速度のプレイアウトは傾き１の直線により示される。図５Ｂに示される時間の値（ｔＰＲＩＯＲ５５３、ｔＬＡＴＥＲ５６３、ｔＦＩＲＳＴ５６９、ｔＳＥＣＯＮＤ５５９、ｔＳＹＮＣ５５５、およびｔＳ５６５）が、時間軸１１０２に沿って示され、いくつかの時間値（ｔＦＩＲＳＴからｔＳ）は、延長線が上方に延び、種々のコンテンツコントローラのステータス変化との並びが良好に示される。特定のコンテンツの場所「Ｐ１」１１０３、「Ｐ２」１１０４、および「Ｐ３」１１０５が、コンテンツ軸１１０１に沿って示される。
【００８９】
図１１ＡからＤのそれぞれにおいて、図５Ｂにあるように、時刻ｔＰＲＩＯＲ５５３の前は３つ全てのＳＴＢ１１１、１２１、１３１が正規の速度で略同期して再生している。正規の速度でのプレイアウトは、図１ｌＡから１１Ｄの図示では、傾き１．０を持つ区間１１１０に相当し、通常プレイアウトを表す。区間１１１０は太線で示され、３つ全てのＳＴＢがその時刻／位置の関係に追従することを表す。しかし、時刻ｔＰＲＩＯＲ５５３に、ＳＴＢ１１１がＳＫ−コマンド５５２を受信することにより、そのローカルコンテンツコントローラはコンテンツ内で後方向スキップ１１１１を実行し、スキップのサイズは「−ｄ」である。その結果、時刻ｔＰＲＩＯＲ５５３に続いてすぐに、ＳＴＢ１１１は区間１１１２に従ってコンテンツを再生する。区間１１１２は、スキップ後方向のため、ＳＴＢ１１１によるコンテンツのプレイアウトが、ＳＴＢ１２１および１３１によるコンテンツのプレイアウトに後れをとることを表し、ＳＴＢ１２１および１３１は、「ｄ」分だけ（コンテンツ軸１１０１の単位で測定されるものであり、フレームまたはタイムコードの単位であってもよい）コンテンツの再生を継続している（区間１１１３で示すように）。なお、区間１１１３が中太線で示され、２つのＳＴＢのコンテンツのプレイアウトを表し、一方、区間１１１２は最細線で示され、その時刻／位置の関係にある単一のＳＴＢのプレイアウトを表す。
【００９０】
時刻ｔＬＡＴＥＲ５６３に、ＳＴＢ１２１がＳＫ＋コマンド５７２を受信し、前方向スキップ１１１４で示すように「＋ｄ」分だけコンテンツを前方向にスキップする。その結果、ＳＴＢ１１１、１２１、１３１のそれぞれが、時刻ｔＬＡＴＥＲ５６３の直後はコンテンツ内の異なる場所で再生中であり、それぞれ細線区間１１１２、１１１５、および１１１６で示す通りである。時刻ｔＦＩＲＳＴの少し前、ＳＴＢ１２１がＳＴＢ１１１からコマンドメッセージ５７３を受信し、時間が早かったためにより高い優先度を取得していた元のＳＫ−５５２コマンドに応答して、ジャンプ１１１７（−２ｄサイズの幅で）で応じる。その結果、ＳＴＢ１１１および１２１が、中太線の区間１１１８で示すように同時に再生を行い、ＳＴＢ１２１は、区間１１１９に沿った軌道で表すように自らのそれまでのプレイアウトを放棄する。なお、ジャンプ１１１７のサイズを判定するためのＳＴＢ１２１が必要とする計算の詳細については、ここでは明らかにしないが、そういった詳細は、ＳＴＢ１３１の例示の挙動のそれぞれと併せて以下で明らかにされる。
【００９１】
時刻ｔＦＩＲＳＴ５６９に、ＳＴＢ１３１がＳＴＢ１２１からコマンドメッセージ５７５を受信し、これは、ＳＫ＋コマンド５７２から生じたものである。図９および１０に示す例示の処理に従って、ＳＴＢ１３１が、現在時刻（ｔＦＩＲＳＴ５６９）、位置（「Ｐ３」１１０５）、および速度（「１ｘ」、傾きは前の時刻／位置区間１１１６）のログをローカルコマンド履歴バッファ９０３にとり、これらは、まとまってローカルコンテンツコントローラステータス１１２０を表す。この時点から、ＳＴＢ１３１の例示の挙動により、図中の残りの部分が統制され、図１１Ａ〜Ｄのそれぞれで異なる。
【００９２】
図１１Ａにおいて、ＳＴＢ１３１が例示の様式で動作するとき、ＳＴＢ１３１は、即座に予想同期点までジャンプし、そこで予想同期時刻まで待機し、その後、予想再生レートで再生を行う。この挙動は、図６に示す「一時停止」挙動に相当する（図６は図５Ａのトランザクションに基づく）。メッセージ５７２から、ＳＴＢ１３１は、所定のインターバル５５４をコマンドの時刻ｔＬＡＴＥＲ５６３に加えることにより同期時刻を計算し、時刻ｔＳ５６５を得る。図５Ａの例示のトランザクションにおいて、メッセージ５７２は同期時刻を明示的に与える。予想同期点を計算するための一方法では、ローカルコンテンツコントローラステータス点１１２０から逆に外挿して、時刻ｔＬＡＴＥＲでのコンテンツコントローラ位置を判定し、デフォルトのＳＫ＋サイズ（＋ｄ）を加えて新しい位置を計算し、その位置時刻ｔＳに対して前方向に外挿して、コンテンツ位置「Ｐ２」１１０４を得る。この特定の方法は、コマンドまたはコンテンツコントローラステータスが、１ｘ以外の速度を（例えば、早送りまたは巻き戻しのコマンドで）を伴う場合でも、良好に働く。
【００９３】
従って、時刻ｔＦＩＲＳＴに、ＳＴＢ１３１のローカルコンテンツコントローラが、区間１１２１に示すように、現在位置「Ｐ３」から予想同期点「Ｐ２」にジャンプし、傾きゼロの区間１１２２に示すように一時停止し、時間の経過につれて位置が進まないことが示される。この時、ＳＴＢ１３１は、一時停止のまま（区間１１２３を通過して時刻ｔＳまで）であると予想する。その後、ＳＴＢ１３１は、傾き１で区間１１１５と共線の区間１１２４で示すように、プレイアウトを予想し、そこではＳＴＢ１３１がＳＴＢ１２１と同期し、ＳＴＢ１２１がジャンプ１１１７をせずに再生を継続している。
【００９４】
しかし、時刻ｔＳＥＣＯＮＤ５５９に、ＳＴＢ１３１がＳＴＢ１１１からＳＫ−コマンドメッセージ５７４をするため、ＳＴＢ１３１は、区間１１２３および１１２４には決して達しない。このコマンドは、ステータス１１２０に関連するコマンド履歴入力を超える優先度を獲得する。その結果、ＳＴＢ１３１は、時刻ｔＰＲＩＯＲ５５３でのそのローカルコンテンツコントローラ位置を計算する（メッセージ５７４で与えられるように）、そして、この位置を「−ｄ」分だけオフセットし、その後、予想同期時刻ｔＳＹＮＣ５５５に対して前方向に外挿して、予想同期点「Ｐ１」１１０３を判定する。従って、時刻ｔＳＥＣＯＮＤに、ＳＴＢ１３１は、区間１１２５に示すように「Ｐ１」にジャンプし、時刻ｔＳＹＮＣに、ＳＴＢが区間１１２７に沿って通常速度でプレイアウトを開始するであろうという予想の下、区間１１２６に示すように待機する。このアクションを先制して回避する優先度を持つコマンドが他に無いため、これはまさに起こることであるが、ｔＳＹＮＣ５５５に続いて、３つ全ての局が再び同期して再生を行う。
【００９５】
なお、コマンド履歴バッファ９０３のおかげで、ＳＴＢ１３１は、予測同期位置および予想同期時刻を外挿するのに、最新の優先度を持つコマンドより劣る最も早いログ入力（すなわち、低優先度を持つログ入力であり、通常、優先時刻が遅いことを意味する）を使用するだけでよい。最新のホールドオフインターバルが時間切れになるまでは正当に起こるが、コマンド履歴バッファ９０３に入力が無いときは、ＳＴＢは、現在のローカルコンテンツコントローラステータスを使用するが、その状況では全てのコンテンツコントローラが同期すると予想するからである。
【００９６】
ジャンプ１１２１および１１２５に費やされる時間はゼロ（または、事実上、は１フレーム分の時間）であるように見えるが、この条件は、これらの点に関連するコンテンツが既にローカルバッファに存在している時を除いて、実際には発生しないかもしれない。図１１ＡのＳＴＢ１３１の挙動は、新しい位置へのジャンプに必要な時間が比較的長い、または、信頼性低く予測される場合のシステムには容易に適合する。従って、区間１１２１、１１２５がそれぞれ、ジャンプに費やされる時間がゼロでないことを示す傾きを持つ場合でも、たとえ個別に一時停止される区間１１２２、１１２６が短いとしても同じ成果が生じる。ＳＴＢ１３１がこれらの一時停止の間に画像をブランクにすると、ローカル参加者１３３は違いに気付かない。
【００９７】
図１１Ｂでは、ＳＴＢが即座に一時停止して予想同期時刻を待っているため、ＳＴＢ１３１の例示の挙動が異なる。予想同期時刻に、ＳＴＢ１３１は、予想同期点にジャンプし、そこからプレイアウトを開始する。従って、時刻ｔＦＩＲＳＴに、ＳＴＢ１３１が、予想同期時刻ｔＳおよび位置「Ｐ３」を以前のように計算し、ローカルコンテンツコントローラが、区間１１３１で示すように即座に一時停止する。ＳＴＢ１３１は、区間１１３４、１１３２を通して一時停止したままであると予想し、「Ｐ２」までジャンプ１１３３を行い、そこから区間１１２４（区間１１１５との共線）に沿って再生を行う。しかし、ＳＴＢ１３１は、区間１１３２、１１３３、および１１２４に追従しない。その代わり、時刻ｔＳＥＣＯＮＤに、ＳＴＢ１３１は、上述のように、新しい予想同期時刻ｔＳＹＮＣおよび位置「Ｐ１」を再度計算する。その結果、ローカルコンテンツコントローラは、予想同期時刻ｔＳＹＮＣまでのみ一時停止されたままとなり（区間１１３４）、その時刻ｔＳＹＮＣに、ローカルコンテンツコントローラが（区間１１３５を）予測同期位置「Ｐ１」までジャンプし、コンテンツの正規のプレイアウト（区間１１２７）を、ＳＴＢ１１１および１２１と同期して、開始する。
【００９８】
図１１ＢのＳＴＢ１３１の挙動は、最初に「Ｐ２」の未来のイベントにジャンプして、「Ｐ１」に戻ることにより、参加者１３３を混乱させるような画像の変化を最小にするべく機能する。代わりに、ＳＴＢ１３１は、最終的な優先度持つコマンドの結果を示すのみにして、「Ｐ１」から開始する。ＳＴＢ１３１が一時停止１１３１および１１３４の間に画像をブランクにすると、参加者１３３は、違いに気付かない（７５５から７６４へのような、コマンドの属性に変化が無ければ）。今現在の挙動により、配信が速く（すなわち、ジャンプにほとんど時間がかからない）かつ予測可能である帯域幅の消費を減少させる機会も示されるが、それは、そのような状況下では、予想同期時刻の直前までコンテンツをフェッチする必要がないためである。このことにより、ＳＴＢ１３１は、そのスキップ前方向が時刻ｔＳＥＣＯＮＤに、先制して回避されるため、時刻ｔＦＩＲＳＴの直後、メッセージ５７５に応答して、「Ｐ２」について不必要なコンテンツのフェッチを避けることが可能となる。
【００９９】
図１１Ｃでは、ＳＴＢ１３１の例示の挙動は、図１１Ａ〜Ｄの全てにおいてＳＴＢ１２１のそれと一致する。図１１Ｃでは、ＳＴＢ１３１は予想現在位置に即座にジャンプし、プレイアウトを開始する。この動作は、図７に示す「プリロール」挙動を構成する（図７は、図５Ａに示すトランザクションに基づく）。ここで、時刻ｔＦＩＲＳＴに、ＳＫ＋コマンドメッセージ５７５のため、ＳＴＢ１３１は、最初に、時刻ｔＬＡＴＥＲでの位置を逆に外挿して、次に、オフセット「＋ｄ」を加え、その後、時刻ｔＦＩＲＳＴに対して前方向に外挿することにより、ＳＴＢ１２１の現在位置を計算する。ローカルコンテンツコントローラは、区間１１４２で示すように、その点に即座にジャンプし、時刻ｔＳＥＣＯＮＤにＳＫ−コマンドメッセージ５７４を受信するまでの、区間１１４３（区間１１１５との共線）で示すように、プレイアウトを開始する。時刻ｔＳＥＣＯＮＤに、ＳＴＢ１３１は、時刻ｔＰＲＩＯＲに対して、コマンド履歴９０３に格納される記録１１２０によって表されるような、自らのコンテンツ位置を逆に外挿することにより、ＳＴＢ１１１の現在位置を計算する。ＳＴＢ１３１は、その位置に、新しい優先度を持つコマンドに従ってオフセット「−ｄ」を加え、次に、前方向に外挿して現在時刻での位置を判定し、区間１１４４で示すように対応するジャンプを行って、区間１１２７の前までのＳＴＢ１１１および１２１と共線であり同期する区間１１４５で示すように、即座にプレイアウトを開始する。この挙動により、最小限の時間の間スクリーンを一時停止させるという利点が提供され、最高の優先度を持つコマンドを発行する局との同期が可及的速やかに発生する。
【０１００】
図１１Ｄでは、ＳＴＢ１３１の例示の挙動が示され、その有用性についてはそれほど示さず、広範囲の多様な可能性ついて多く示される。ここでの挙動では、ローカルコンテンツコントローラが任意の速度で再生できる能力が必要とされる。従って、ｔＦＩＲＳＴに、予想同期時刻「ｔＳ」における予測同期位置「Ｐ２」の計算が発生すると、時刻／位置の対への傾きが、区間１１２０での現在の時刻／位置の対から判定され、本例では１．２５である。この計算に応答して、ローカルコンテンツコントローラは、区間１１５１で示すように速度１＋１／４ｘで再生を即座に開始し、「ｔＳ」で「Ｐ２」に到達して、その後は区間１１２４で示すように通常速度で再生を行う、と予測されている。しかし、この早送りのプレイアウトは、ｔＳＥＣＯＮＤに先制して回避され（よって、区間１１５３は再生されない）、ＳＴＢ１３１が、そのローカルコンテンツコントローラの現在位置から、ｔＳＹＮＣでの予想同期点「Ｐ１」への傾きを計算し、傾き−０．５が算出される。従って、ｔＳＥＣＯＮＤに、ＳＴＢが、ｔＳＹＮＣまでの区間１１５４で示すように低速−０．５ｘで巻き戻しを開始し、その後、プレイアウトは再度前方向となり、通常速度で、区間１１２７に示すようにＳＴＢ１１１、１２１と同期する。
【０１０１】
ＳＴＢ１３１が設けるローカルコンテンツコントローラが、例えば、早送りまたは巻き戻しの速度が整数値に制約されるために、任意の速度でプレイアウトを達成できない場合でも、ＳＴＢは、なお、区分的に達成可能なレートを使用して、この挙動を達成することができる。例えば、ＳＴＢは、最初に２ｘで早送りし、次に、区間１１１９との交点の後は１ｘに落とすという計画を立てることにより、区間１１２０の間、傾き１．２５に接近することができる。同様に、ＳＴＢ１３１は、区間１１５４の傾き−０．５への接近を、「Ｐ１」に到達するまでは１ｘで巻き戻し、次に、ｔＳＹＮＣまで一時停止する、または、代替えとして、区間１１１８との交点まで１ｘで巻き戻し、次に、ｔＳＹＮＣと「Ｐ１」に真っ直ぐに通常速度で前方向に再生する、ことにより行う。
【０１０２】
ＳＴＢ１３１のこの挙動には、リモート参加者が何のコマンドを受けているのかを理解するために必要なアイコンの数を減らすことができるという利点がある。例えば、映像がその点に向かって視覚的に後方向に動けば、後方向スキップを示す必要はない。そのようなアイコン（例えば、６５４、６５５、６６４）の属性要素を、誰がコマンドを発行したのかを示すために提供することはできる。これらの挙動のそれぞれにおいて、スキップ前方向、または、プレイアウトのレートあるいは方向の変更には、待ち時間を持つ種々のソースのため、時間がかかる。これらの問題に対処して同期を復元するための複数の方法が存在する。１つは、各コマンドの性能で経験される待ち時間を測定することである。ある場所までスキップして再生を開始するという計画で、これが直ちに発生するが、実際には１００ｍＳかかる、という場合、次にコマンド（発生する場合は必ず）に対して、その目標位置が１００ｍＳ後になることが示される。このようにして、同期が最悪の待ち時間より悪くなることは決してなく、また、その可能性が低いのは、各局が自らの待ち時間を経験して、これらが少なくともお互いの一部をキャンセルする傾向があるからである。別の方法は、各コマンドの待ち時間を予測することである。例えば、短いスキップ前方向（および、恐らくは大きなスキップ後方向も）が、待ち時間がゼロである（コンテンツが既にバッファされているからである）か、または、わずかな待ち時間である（例えば、映像デコーダのパイプラインをフラッシュして入れ替えることに関連して）ことが知られている。どちらの方向の大きなスキップも、待ち時間は異なりかつ大きく（まだバッファされていないコンテンツのフェッチ、または、バッファリングのために、バッファがまだフラッシュされていないこと、に関連して）、その場合、命令された位置を、予想待ち時間によって再生の方向にオフセットすることができる。すなわち、新しい場所へのスキップが、速度−２ｘで後方向のプレイアウトで追従されるはずである場合、目標位置は、スキップにおいて予想待ち時間の−２倍分だけオフセットされるはずである。このように、ローカルな同期誤差は、単に、任意の予測ミスの大きさであり、予想待ち時間全体ではない。
【０１０３】
第３の方法は、これらの方法の組み合わせであり、以前の経験と現在のネットワークの待ち時間を使用して、各コマンドのオフセットを予測し、次のコマンドが到着する度に、測定された予測ミスを次のコマンドに組み込む。第４の方法では、極小のジャンプまたはプレイアウト速度のわずかな変動を使用して、測定される同期誤差を減少させる。例えば、ローカルＳＴＢにおいて、適正な同期が復元されるまで、フレームがスキップされる、または、再生速度が＋／−１％調整される。そのような速度調整の間、対応する音声ピッチの調整が発生して、音声および音楽のテンポが微妙に変更ピッチが変わらないようにするが、テンポは微妙に変化してしまう。
【０１０４】
例えば、１つのＳＴＢが数秒間コンテンツにアクセスできないなど、何らかの壊滅的な非同期イベントが発生した場合は、ＳＴＢを回復させることができるいくつかの方法が存在する。不運なＳＴＢは、コンテンツ喪失のずっと前の時点まで、コンテンツが復元されると期待される時間量分、後方向にスキップする効果を持つコマンドを発行することができる。従って、ＳＴＢが、コンテンツは回復に１０秒かかる、と予想する場合、被害を受けているＳＴＢに起因する１０秒の後方向スキップにより、失ったコンテンツを再要求および再取得するための時間が与えられ、瞬間的に巻き戻ししなくても、プレイアウトが正確に起こる。この選択により、「再バッファ中」のアイコンを、信号を喪失したＳＴＢに帰属させた状態で、全てのシステム上でプレイアウトを一時停止させることが好ましいことが分かり、なぜなら、プレイアウトの１０秒間の中断が、１０秒間のスキップ後方向よりも破壊できであると認識されるかもしれないからである。あるいは、コンテンツを喪失したＳＴＢが、コンテンツの復元まで一時停止し、次に、誇張された速度（例えば、＋５％）で再生を行って、もっと早く追いついてもよい。この場合も、対応する音声を補償することができる。
【０１０５】
本発明の別の例では、テレプレゼンスのモニタおよびカメラを提供する別のテレビ会議システム（図示せず）を考慮に入れる。対応するＤＶＤプレイヤ（図示せず）では、本明細書に記載される分散型コンテンツコントローラの機構および処理を組み込み、ＳＴＢ１１１、１２１、および１３１を置き換えることができる。そのようなＤＶＤプレイヤはそれぞれ、同じＤＶＤのコピーを有することができる。コンテンツコントローラの動作の何らかを円滑にするために、そのようなプレイヤは、同期を円滑にするための追加のデジタルバッファリングを有することができる。
【０１０６】
いくつかの実施形態において、局間で共有されるコンテンツには、メニュー、チェックボックス、およびボタンなどのグラフィカルユーザインターフェース要素、ならびに、コンテンツのロード（または選択）、イジェクトなどの追加コマンド、を含むインタラクティブ要素を含むことができる。これらのユーザインターフェース要素を共有するために、分散型コンテンツコントローラに対して拡張または変形を厳しく要求する必要はなく、コマンドおよび状態を状態図２００に、コマンド、状態、およびアクションを状態遷移表３００に追加することで、達成できる。しかし、コマンド履歴、コマンド優先度、ホールドオフ、および、先の実行を低優先度コマンドにして戻すこと、という原理は適用可能である。
【０１０７】
正反対に、他の実施形態において、どのコンテンツを共有モニタ１１２、１２２、および１３２上で（例えば、ユーザインターフェースを使用して）再生するべきかを、マスタ局が選択することができる。選択されると、各局または単にヘッドエンド１０２が、どのコンテンツを局が共有するのかについて情報を受信し、状態図２００または遷移表３００を拡張する必要なく、参加者１１３、１２３、１３３に分散型コンテンツコントローラを用いてコンテンツを共有するという経験が提供される。
【０１０８】
上記では、分散型コンテンツコントローラを使用して複数の局間に共有コンテンツを提供するための技術について説明した。
【図１】
2015515774.tif 000003
【図２】
2015515774.tif 000004
【図３】
2015515774.tif 000005
【図４】
2015515774.tif 000006
【図５Ａ】
2015515774.tif 000007
【図５Ｂ】
2015515774.tif 000008
【図６】
2015515774.tif 000009
【図７】
2015515774.tif 000010
【図８】
2015515774.tif 000011
【図９】
2015515774.tif 000012
【図１０】
2015515774.tif 000013
【図１１Ａ】
2015515774.tif 000014
【図１１Ｂ】
2015515774.tif 000015
【図１１Ｃ】
2015515774.tif 000016
【図１１Ｄ】
2015515774.tif 000017
【国際調査報告】
2015515774.tif 000018
2015515774.tif 000019
2015515774.tif 000020