従来のストリーミングサーバは、個々のクライアント装置に対するマルチメディア信号の適合及び分配を実行している。パノラママルチメディア信号の場合には、大容量経路をマルチメディアソースとストリーミングサーバとの間において確立する必要があり、且つ、適応型の容量の経路をストリーミングサーバと複数のクライアント装置との間において確立する必要がある。
ストリーミングサーバは、ストリーミングサーバとクライアント装置との間の接続の性能メトリックを取得することができると共に、性能メトリックに従って、接続に対して割り当てられているフローレートを調節することができる。例えば、ネットワーク経路の専用のリンク又は予約済みの容量を通じて、保証された一定のフローレートが接続に対して割り当てられている場合には、性能メトリックは、一定のフローレートの値及びクライアント装置の特性に依存することになろう。例えば、ネットワークの共有されたリンクを通じて、公称フローレートが接続に対して割り当てられている場合には、性能メトリックは、公称フローレートの値、その他のデータソースからのネットワークデータトラフィックの強度の変動、及びクライアント装置の特性に依存することになろう。
又、ストリーミングサーバは、部分コンテンツの信号を抽出するべく、パノラママルチメディアソースから受け取った信号を処理するように構成することもできる。本発明のストリーミングサーバは、4πステラジアンの立体角をカバーする完全カバレッジパノラマビデオ信号を含む信号をソースから受信することができると共に、部分カバレッジの信号を抽出することができる。この能力によれば、ビデオ信号の表示を視聴している人物は、入力装置を使用することにより、その人物の視聴の好みに従って特定の部分カバレッジを選択することができる。好ましいビデオ信号の情報コンテンツは、主に、選択されたカバレッジに依存している。従って、性能メトリックは、公称フローレートの値、その他のデータソースからのネットワークデータトラフィックの強度の変動、クライアント装置の特性、及び選択された情報コンテンツに依存することになろう。
公称フローレートを規定する代わりに、視聴者は、忠実度レベル及び情報コンテンツを規定することもできる。マルチメディアサーバは、忠実度レベルを必須フローレートに変換することができる。
コンテンツの選択と受信機及びネットワーク状態に対するフローレートの適合の両方を提供するストリーミングサーバは、本明細書においては、ユニバーサルストリーミングサーバとして参照されている。
図1は、伝送媒体115を通じてユニバーサルストリーミングサーバ120に結合されたパノラママルチメディアソース110を有するストリーミングシステム100を示している。伝送媒体115は、光ファイバリンク又は無線リンクなどの専用の媒体であってもよく、或いは、共有された通信ネットワークを通じた交換型の経路であってもよい。パノラママルチメディアサーバは、ネットワーク150を通じて、個々に180(0)~180(m)として識別されている複数のクライアント装置180と通信することができるが、この場合に、m>1である。パノラママルチメディアソース110は、完全カバレッジカメラを有しており、且つ、デワープモジュール及び/又は圧縮モジュールを有することができる。又、本明細書においては、4πカメラとも呼称されている、完全カバレッジカメラは、完全カバレッジビデオ信号を生成する。パノラママルチメディアソース110からユニバーサルストリーミングサーバ120に送信される、本明細書においては、「ソースマルチメディア信号」と呼称される、マルチメディア信号は、オーディオ信号又はテキスト信号などのその他の形態の信号に加えて、ビデオ信号を含むことができる。
図2はストリーミングシステム200を示しており、このシステムには、v個(v≧1)のパノラママルチメディアソース110(個別には110(0)から110(v-1)として識別されている)と、μ個(μ≧1)のユニバーサルストリーミングサーバ(個別には120(0)から120(μ-1)として識別されている)とが含まれており、これらのユニバーサルストリーミングサーバは、複数のクライアント装置180のうちのM個(M>1)のクライアント装置に同時にサービスを提供することが可能である。ユニバーサルストリーミングサーバ120は、ネットワーク150を介して、パノラママルチメディアソース110及びクライアント装置と通信してよい。代替として、ユニバーサルストリーミングサーバ120は、パノラママルチメディアソース110とは、ある共用ネットワーク(図示せず)を介して通信してよく、一方、クライアント装置180とは、別のネットワーク(図示せず)を介して通信してよい。
パノラママルチメディアソース110は、最大4πステラジアンの視聴カバレッジをもたらす完全カバレッジパノラマカメラ(本明細書では4πカメラと称する)を使用することが好ましい。4πカメラの出力信号を、本明細書では、4πビデオ信号と称する。キャプチャされたシーンの4πビデオ信号の、フラットスクリーン上の表示は、本来的な歪みのために、実際のシーンとはかなり異なる可能性がある。表示の歪みを無くすか大幅に減らすために、表示とキャプチャされたシーンとがよく似るように、カメラで生成された信号に、人工的にオフセットされた歪みを与えてよい。「デワープ」と呼ばれる、歪んだビデオ信号を補正する様々な処理が、当該技術分野において知られている。
デワープ処理は、ソースにおいて実施されてよく(即ち、カメラの出力信号に直接適用されてよく)、或いは、ユニバーサルストリーミングサーバ120において実施されてよい。
ソース110におけるビデオ信号は、大容量通信経路を介してユニバーサルストリーミングサーバ120に直接送れられてよく、或いは、ソースにおいて圧縮されて、占有スペクトル帯域が(格段に)狭い圧縮済みの信号が生成されてよく、この圧縮済みの信号は、低容量通信経路を介してユニバーサルストリーミングサーバ120に送られ、ユニバーサルストリーミングサーバにおいて圧縮解除される。
図3は、マルチメディアパノラマソース110とサーバ120との間の4つの通信選択肢を示している。マルチメディアパノラマソースは、未加工の信号312を生成する4πカメラを含んでおり、且つ、デワープモジュール330及び/又はソース圧縮モジュール340を含むことができる。未加工の信号312は、表示の前に、或いは、信号を特定の受領者に対してコンディショニングするための更なる処理の前に、デワープされる必要がある。
図3には、ソースに結合されている通信装置は、示されていない。図3に示されているように、第1ソースは、4πカメラを有し、第2ソースは、4πカメラと、デワープモジュール330と、を有し、第3ソースは、4πカメラと、ソース圧縮モジュール340と、を有し、且つ、第4ソースは、4πカメラと、デワープモジュール330と、ソース圧縮モジュール340と、を有する。
一実施形態によれば、未加工の信号312は、デワープモジュール320を装備したサーバ120Aに送られてもよく、デワープモジュール320は、受領者に固有の信号を生成するべく更に処理される補正済みの信号322を生成している。補正済みの信号は、ソースにおいてキャプチャされた個々のシーンに対応する「純ビデオ信号」であるものと見なされる。
別の実施形態によれば、未加工の信号312は、ソース110に結合されたデワープモジュール330において処理されてよく、ここで生成された補正済みの信号(純ビデオ信号)322がサーバ120Bに送られ、更に処理されて、受信者に固有の信号が生成される。
更に別の実施形態によれば、未加工の信号312は、ソース110に結合されているソース圧縮モジュール340において処理されてよく、ここで生成された圧縮済みの信号342がサーバ120Cに送られる。サーバ120Cには圧縮解除モジュール350が装備されており、サーバ圧縮解除モジュール350は、圧縮済みの信号342を圧縮解除して圧縮解除済みの信号 352を生成し、これがデワープモジュール320において処理されて、整流済みの信号324が生成される。整流済みの信号324は、上で定義されている通り「純ビデオ信号」である。ロスレス圧縮処理と理想的な圧縮解除処理とが行われれば、圧縮解除済みの信号 352は、未加工の信号312の複製になるであろう。理想的なデワープが行われれば、整流済みの信号324は、キャプチャされたシーンの忠実な表現、即ち「純ビデオ信号」になるであろう。
更に別の実施形態によれば、未加工の信号312は、ソース110に結合されているデワープモジュール330において処理されてよく、ここで生成された補正済みの信号322がソース圧縮モジュール340において処理されて、コンパクトな信号343が生成され、これがサーバ120Dに送られる。サーバ120Dには圧縮解除モジュール350が装備されており、サーバ圧縮解除モジュール350は、コンパクトな信号343を圧縮解除して整流済みの信号324を生成する。理想的なデワープモジュール330が使用され、ロスレス圧縮処理が行われ、理想的な圧縮解除処理が行われれば、整流済みの信号は、キャプチャされたシーンの忠実な表現、即ち、「純ビデオ信号」になるであろう。
従って、本発明は、複数の物理的プロセッサと、関連するメモリ装置と、を有するサーバにおいて実装されたビデオ信号ストリーミングの方法を提供している。サーバは、
(1)パノラマカメラを有する信号ソース、
(2)パノラマカメラ及びデワープモジュールを有する信号ソース、
(3)パノラマカメラ及び圧縮モジュールを有する信号ソース、或いは、
(4)パノラマカメラ、デワープモジュール、及び圧縮モジュールを有する信号ソース、
からビデオ信号を有するパノラママルチメディア信号を取得するように構成されている。
方法は、ビデオ信号を取得するべく、パノラママルチメディアソースにアクセスするプロセスを有する。取得されたビデオ信号が圧縮されておらず、且つ、ソースにおいてデワープされていない場合には、ビデオ信号は、画面上において表示されうる、又はクライアント装置への分配のために更に処理されうる、「純ビデオ信号」を生成するべく、サーバにおいてデワープされる。取得されたビデオ信号が圧縮されておらず、且つ、ソースにおいてデワープされている場合には、ビデオ信号は、「純ビデオ信号」を構成している。取得されたビデオ信号が、圧縮されているが、ソースにおいてデワープされていない場合には、ビデオ信号は、「純ビデオ信号」を生成するべく、サーバにおいて、圧縮解除され、次いで、デワープされる。取得されたビデオ信号がデワープされており、且つ、ソースにおいて圧縮されている場合には、ビデオ信号は、「純ビデオ信号」を生成するべく、サーバにおいて圧縮解除される。
図4は、図3の通信選択肢に対応する通信経路を示す。
第1の通信選択肢によれば、パノラママルチメディアソースモジュール110Aの4πカメラ310において生成されたパノラマ信号が、大容量経路480を介してサーバ120Aに送信され、サーバ120Aはデワープモジュール320及び信号編集モジュール460を含み、信号編集モジュール460は、クライアント装置にフローレート制約に合わせてコンテンツフィルタリング及び信号適応の両方を実施する。サーバ120Aは、デワープモジュール320及び信号編集モジュール460として編成された、少なくとも1つのプロセッサ(図4には示されず)と、プロセッサ実行可能命令(ソフトウェア命令)を記憶するメモリ装置とを含む。デワープモジュール320のソフトウェア命令が実行されると、その少なくとも1つのプロセッサが、受け取られた信号とカメラの既知の特性とを使用して、デワープされた補正済みの信号322を生成し、この信号は、フラットディスプレイ装置に直接渡されてよく、或いは、信号編集モジュール460において更に処理されてよい。信号編集モジュール460は、コンテンツフィルタリング処理を実施して、受信者ごとに1つ1つ調整された選択的部分カバレッジストリームを生成することが可能である。信号編集モジュール460は、受信者ごとに1つ1つ調整された完全カバレッジストリームを生成することも可能である。
第2の通信選択肢によれば、ソースモジュール110Bは、4πカメラ310、デワープモジュール330、及びプロセッサ(図示せず)を含み、プロセッサは、デワープモジュール330のソフトウェア命令を4πカメラの出力信号(未加工の信号312)に適用する。結果として得られるデワープされた信号が大容量通信経路480を介してサーバ120Bに送られ、サーバ120Bは、上述の第1の実施態様選択肢と同様の信号編集モジュール460を含む。
第3の通信選択肢によれば、ソースモジュール110Cは、4πカメラ310、ソース圧縮モジュール340、及びプロセッサ(図示せず)を含み、プロセッサは、ソース圧縮モジュール340のソフトウェア命令を4πカメラの出力信号(未加工の信号312)に適用する。結果として得られる圧縮済みの信号342が、通信経路480と比較して低容量の通信経路490を介してサーバ120Cに送られ、サーバ120Cは、サーバ圧縮解除モジュール350、デワープモジュール320、及び信号編集モジュール460を含む。サーバ120Cは、少なくとも1つのプロセッサ(図示せず)を含み、プロセッサは、サーバ圧縮解除モジュール350のソフトウェア命令を実施して圧縮解除済みの信号 352を生成する。この少なくとも1つのプロセッサは更に、デワープモジュール320のソフトウェア命令を実施して整流済みの信号324を生成する。信号編集モジュール460は、整流済みの信号324のコンテンツフィルタリングを実行することにより、受信者ごとに1つ1つ調整された選択的部分カバレッジストリームを生成する。信号編集モジュール460は、受信者ごとに1つ1つ調整された完全カバレッジストリームを生成することも可能である。
第4の通信選択肢によれば、ソースモジュール110Dは、4πカメラ310、デワープモジュール330、ソース圧縮モジュール340、及びプロセッサ(図示せず)を含み、プロセッサは、デワープモジュール330のソフトウェア命令を4πカメラの出力信号(未加工の信号312)に適用して補正済みの信号322を生成する。プロセッサは、ソース圧縮モジュール340のソフトウェア命令を適用してコンパクトな信号343を生成する。コンパクトな信号343は低容量通信経路490を介してサーバ120Dに送られ、サーバ120Dは、サーバ圧縮解除モジュール350及び信号編集モジュール460を含む。サーバ120Dは、少なくとも1つのプロセッサ(図示せず)を含み、プロセッサは、サーバ圧縮解除モジュール350のソフトウェア命令を実施して補正済みの信号322を復元する。上述の通信選択肢と同様に、信号編集モジュール460は、整流済みの信号324のコンテンツフィルタリングを実施することにより、受信者ごとに1つ1つ調整された選択的部分カバレッジストリームを生成する。信号編集モジュール460は、受信者ごとに1つ1つ調整された完全カバレッジストリームを生成することも可能である。
第1又は第2の通信選択肢の場合は、補正済みビデオ信号322が信号編集モジュール460に渡される。第3又は第4の通信選択肢の場合は、整流済みビデオ信号324が信号編集モジュール460に渡される。補正済みビデオ信号322及び整流済みビデオ信号324はそれぞれ、ソースにおいてキャプチャされた個々のシーンに対応する純ビデオ信号と見なされる。
図5は、図3の通信選択肢のうちの第1の通信選択肢に対応する端から端までの経路500の構成要素を示す。ソース110Aが(ベースバンド)未加工の信号312を生成し、これは、大容量経路480を介してサーバ120Aに送信される。大容量経路480は、ソース110Aと並置されたソース送信機520と、伝送媒体115と、サーバ120Aと並置されたサーバ受信機540と、を含む。受信機540は、伝送媒体115を介して受信された変調済みの搬送波信号528を復調して、未加工の信号312の複製542を取得する。サーバ120Aは、デワープモジュール320を構成するソフトウェア命令を記憶するメモリ装置と、信号編集モジュール460を構成するソフトウェア命令を記憶するメモリ装置と、を含む。サーバ120Aは更に、サーバ送信機を含むクライアント装置インタフェース560を含む。サーバ120Aの出力信号585は、ネットワーク150を介して各クライアント装置180に伝達される。
図6は、図3の通信選択肢のうちの第2の通信選択肢に対応する端から端までの経路600の構成要素を示す。ソース110Bは、4πカメラ310と、デワープモジュール330を構成するソフトウェア命令を記憶するメモリ装置とを含み、この命令によって、プロセッサ(図示せず)は補正済みの信号322を生成する。補正済みの信号322は、大容量経路480を介してサーバ120Bに送信される。大容量経路480は、ソース110Bと並置されたソース送信機520と、伝送媒体115と、サーバ120Bと並置されたサーバ受信機540と、を含む。受信機540は、伝送媒体115を介して受信された変調済みの搬送波信号628を復調して、補正済みの信号322の複製642を取得する。サーバ120Bは、信号編集モジュール460を構成するソフトウェア命令を記憶するメモリ装置を含む。サーバ120Bは更に、サーバ送信機を含むクライアント装置インタフェース560を含む。サーバ120Bの出力信号685は、ネットワーク150を介して各クライアント装置180に伝達される。
図7は、図3の通信選択肢のうちの第3の通信選択肢に対応する端から端までの経路700の構成要素を示す。ソース110Cは、(ベースバンド)未加工の信号312を生成する4πカメラ310と、ソース圧縮モジュール340を構成するソフトウェア命令を記憶するメモリ装置とを含む。ソース圧縮モジュール340は、未加工の信号312を圧縮して圧縮済みの信号342にし、圧縮済みの信号342は、経路490を介してサーバ120Cに送信される。経路490は、ソース110Cと並置されたソース送信機720と、伝送媒体115と、サーバ120Cと並置されたサーバ受信機740と、を含む。受信機740は、伝送媒体115を介して受信された変調済みの搬送波信号728を復調して、圧縮済みの信号342の複製742を取得する。サーバ120Cは、サーバ圧縮解除モジュール350を構成するソフトウェア命令を記憶するメモリ装置と、デワープモジュール320を構成するソフトウェア命令を記憶するメモリ装置と、信号編集モジュール460を構成するソフトウェア命令を記憶するメモリ装置と、を含む。サーバ120Cは更に、サーバ送信機を含むクライアント装置インタフェース560を含む。サーバ120Cの出力信号785は、ネットワーク150を介して各クライアント装置180に伝達される。
図8は、図3の通信選択肢のうちの第4の通信選択肢に対応する端から端までの経路800の構成要素を示す。ソース110Dは、4πカメラ310と、デワープモジュール330を構成するソフトウェア命令であって、補正済みの信号322の生成をプロセッサ(図示せず)に行わせるソフトウェア命令を記憶するメモリ装置と、ソース圧縮モジュール340を構成するソフトウェア命令であって、コンパクトな信号343の生成をプロセッサ(図示せず)に行わせるソフトウェア命令を記憶するメモリ装置と、を含む。コンパクトな信号343は、経路490を介してサーバ120Dに送信される。経路490は、ソース110Dと並置されたソース送信機720と、伝送媒体115と、サーバ120Cと並置されたサーバ受信機740と、を含む。受信機740は、伝送媒体115を介して受信された変調済みの搬送波信号828を復調して、コンパクトな信号343の複製842を取得する。サーバ120Dは、サーバ圧縮解除モジュール350を構成するソフトウェア命令を記憶するメモリ装置と、信号編集モジュール460を構成するソフトウェア命令を記憶するメモリ装置と、を含む。サーバ120Dは更に、サーバ送信機を含むクライアント装置インタフェース560を含む。サーバ120Dの出力信号885は、ネットワーク150を介して各クライアント装置180に伝達される。
図9は、ユニバーサルストリーミングサーバ120の入力及び出力におけるマルチメディア信号及び制御信号を示している。サーバ120は、ビデオ信号を含むマルチメディア信号をソース110から受け取り、ビデオ信号900は、未加工の信号312、補正済みの信号322、圧縮済みの信号342、又はコンパクトな信号343であってよい。サーバがソース110から受け取るビデオ信号を、本明細書では「ソースビデオ信号」と称する。
サーバ120は、図2に示されたように、様々なパノラママルチメディアソース110からマルチメディア信号を受け取ってよい。従って、サーバは、第1ソース110から未加工のビデオ信号312を受け取ってよく、第2ソース110から補正済みビデオ信号322を受け取ってよく、第3ソースから圧縮済みの信号342を受け取ってよく、且つ/又は第4ソースからコンパクトな信号343を受け取ってよい。そして、好ましくは、サーバは、様々なタイプのソース110と関与して、純ビデオ信号420を生成することが可能であるように、デワープモジュール320及びサーバ圧縮解除モジュール350を装備されてよく、純ビデオ信号420は、補正済みビデオ信号322又は整流済みビデオ信号324であってよい。
サーバ120は、クライアント装置180からアップストリーム制御信号935を受信し、ソース110から制御信号905を受信する。サーバは、クライアント装置にダウンストリーム制御信号945を送信し、ソース110に制御信号925を送信してよい。サーバのカーネル、即ち、信号編集モジュール460は、ソースのタイプにかかわらず、制御信号935及び905に基づいて純ビデオ信号420を処理する。
アップストリーム制御信号935は、クライアントの特性化データとクライアントの要求とを含んでよい。ダウンストリーム制御信号945は、クライアントの要求に対する応答を含んでよい。ダウンストリーム制御信号945は更に、つながっている各クライアント装置が好ましい視聴領域をサーバに伝えることを可能にするためにクライアント装置180にインストールされるソフトウェアモジュールを含んでよい。制御信号905は、ソースの特性と、ソースにおいて既に実施された動作(例えば、デワープ及び/又はデータ圧縮)とに関連するデータを含んでよい。制御信号925は、サーバを特徴づける情報を含んでよい。
サーバ120の信号編集モジュール460は、編集済みのマルチメディア信号940を生成し、各編集済みのマルチメディア信号は、各クライアントの視聴の好み、各クライアントの装置の能力、及びサーバから各クライアントの装置までのネットワーク経路の条件に合わせて個別に調整される。サーバ120は、編集済みのマルチメディア信号940をクライアント装置に送信する。
図10は、一例示的サーバ120の構成要素1000を示す。サーバは、少なくとも1つのプロセッサ(図示せず)と、プロセッサ実行可能命令を記憶する複数のメモリ装置とを含み、これらの命令は幾つかのモジュールに編成されており、これらには、サーバ-ネットワークインタフェース1010、ソース制御データモジュール1022、ソース信号処理モジュール1024、クライアント制御データモジュール1026、及び一連のクライアント別適応モジュール1060が含まれる。サーバ-ネットワークインタフェース1010は、信号ソース及びクライアント装置に由来する、又はこれらを宛先とする、すべての信号1005を搬送する少なくとも1つのデュアルリンク1008又は少なくとも1つのネットワークに結合されている。サーバ-ネットワークインタフェース1010は、サーバ受信機540(図5及び図6)又は740(図7及び図8)を含み、これは、変調搬送波(光搬送波又は無線マイクロ波搬送波)を復調して、ソース110(110A、110B、110C、又は110D)から送られたベースバンドソースビデオ信号900(未加工の信号312、補正済みの信号322、圧縮済みの信号342、又はコンパクトな信号343)を検波する。少なくとも1つのデュアルリンク1008のデュアルリンクは、少なくとも1つのソース110と複数のクライアント装置との間を行き来する制御データと、ソースマルチメディア信号と、複数のクライアント装置に向けられた編集済みのマルチメディア信号と、を搬送する。
ソースビデオ信号処理モジュール1024は、デワープモジュール320及び/又はサーバ圧縮解除モジュール350を装備されて、純ビデオ信号420を生成してよく、純ビデオ信号420は、補正済みビデオ信号322又は整流済みビデオ信号324であってよい。
サーバ-ネットワークインタフェース1010は、ソースビデオ信号900をソースビデオ信号処理モジュール1024に誘導し、制御信号905をソース制御データ処理モジュール1022に誘導する。ソースビデオ信号処理モジュール1024は以下の処理を実施する。
(1)ビデオ信号のデワープ(モジュール320、図5)
(2)ビデオ信号の圧縮解除(モジュール350)及びデワープ(モジュール320、図7)、又は
(3)ビデオ信号の圧縮解除(モジュール350、図8)
モジュール1022とモジュール1024は、図10に示されるように、通信可能に結合されている。モジュール1022の出力は、モジュール1024の処理に影響を及ぼしうる。モジュール1024は、ソース110に向けて制御データ925を生成してよく、制御データ925は、モジュール1022及びサーバ-ネットワークインタフェース1010を介して伝達される。
モジュール1024は、純ビデオ信号420を、m個(m>1)のクライアント別適応モジュール1060(個別には1060(0)から1060(m-1)として識別されている)に向ける。クライアント別適応モジュール1060は、それぞれ独立したハードウェアプロセッサを使用することが好ましい。各クライアント別適応モジュール1060は、必要なコード変換機能を各プロセッサに実施させる命令を記憶するメモリ装置を含む。
クライアント装置から受信された信号は、アップストリーム制御信号935を含む。クライアント装置に向けられるデータは、制御信号945及び編集済みのマルチメディア信号940を含む。アップストリーム制御信号935は、サーバ-ネットワークインタフェース1010において抽出され、クライアントの制御データモジュール1026に向けられる。クライアント別適応モジュール1060は、クライアント制御バス1061を介してアップストリーム制御データ935にアクセスし、クライアント別制御信号は、バッファ1062で、又は当該技術分野において知られている別の手段で保持される。クライアント別適応モジュール1060において生成されるダウンストリーム制御データは、クライアント制御バス1061、クライアント制御データモジュール1026、サーバ-ネットワークインタフェース1010、及び少なくとも1つのデュアルリンク1008を介して各クライアント装置180に配信される。各編集済みクライアント別マルチメディア信号940が結合されて(コンバイナ1090)、この集合体ストリーム1095が、サーバ-ネットワークインタフェース1010、少なくとも1つのデュアルリンク1008、及び少なくとも1つのネットワークを介して各クライアント装置180に配信される。
図11は、クライアント別適応モジュール1060の詳細を示す。このモジュールは、プロセッサ実行可能命令を記憶する少なくとも1つのメモリ装置を含み、これらの命令が実行されると、少なくとも1つのプロセッサが、選択された視聴領域に対応する信号を抽出する、ビデオ信号のコンテンツフィルタリングの処理と、コンテンツフィルタリング済みのビデオ信号をコード変換して、ターゲットクライアント装置180の能力に適合させる処理と、を実施する。ビデオ信号は、時間変動するフローレートの代表値であってよい許容可能なフローレートの制約下で圧縮されてよい。
クライアントに固有の適合モジュール1060は、コンテンツフィルタリングモジュール(コンテンツフィルタ)1120と、クライアント装置能力に対する信号適合用のコード変換モジュール1140と、許容可能なフローレート内のフローレートを有するビデオ信号を生成するためのサーバ圧縮モジュール1160と、を有する。
一実施形態によれば、コンテンツフィルタ1120は、純ビデオ信号420を処理して、指定された視聴領域に対応する信号部分を抽出することにより、コンテンツフィルタリング済みの信号1122を生成する。コンテンツフィルタリング済みの信号1122の平均フローレートは、純ビデオ信号420の平均フローレートより低くなる。コンテンツフィルタリング済みの信号1122がターゲットクライアント装置の能力に適合していて、各許容値を満たすフローレートであれば、この信号がターゲットクライアント装置に送信されてよい。そうでない場合は、コード変換モジュール1140が適用されて、ターゲットクライアント装置の特性(例えば、フレームレートの上限やフレーム分解能の上限)に適合するようにコンテンツフィルタリング済みの信号1122のコード変換が行われる。結果として得られるコード変換されたコンテンツフィルタリング済みの信号1142のフローレートが許容値を超えていなければ、信号1142がターゲットクライアント装置に送信されてよい。そうでない場合は、サーバ圧縮モジュール1160が適用されて、許容可能なフローレートに従って信号1142の圧縮が行われてよく、これによって、圧縮済み、コード変換済み、且つコンテンツフィルタリング済みの信号の信号940が生成される。
別の実施形態によれば、コード変換モジュール1140が適用されて、純ビデオ信号420のコード変換が行われてよく、これによって、ターゲットクライアント装置の能力に適合するコード変換済みの信号1152が生成される。コンテンツフィルタ1120は、信号1152を処理して、指定された視聴領域に対応する信号部分を抽出することにより、コンテンツフィルタリングされたコード変換済みの信号1132を生成する。コンテンツフィルタリングされたコード変換済みの信号1132の平均フローレートは、純ビデオ信号420の平均フローレートより低くなる。信号1132のフローレートが許容値を満たせば、この信号がターゲットクライアント装置に送信されてよい。そうでない場合は、サーバ圧縮モジュール1160が適用されて、許容可能なフローレートに従って信号1132の圧縮が行われてよく、これによって、圧縮済み、コード変換済み、且つコンテンツフィルタリング済みの信号となった信号940が生成される。
ソース又はサーバにおいてデワープされた圧縮されていない又は圧縮解除されたビデオ信号は、純ビデオ信号である。サービスを特定のクライアント装置に提供するために、純ビデオ信号は、クライアント装置と互換性を有するコード変換済みの信号を生成するべく、コード変換される。純ビデオ信号は、最大で4πステラジアンの立体角の実現可能なカバレッジに対応しており、且つ、恐らくは、例えば、マルチGb/sという大きなフローレート(ビットレート)を有することを要し、この大きなフローレートは、サーバからクライアント装置までの経路の利用可能な容量を超過しうる。又、コード変換済みの信号も、経路の容量を超過したフローレートを有しうる。従って、コード変換済みの信号は、経路の容量を超過しないフローレートをもたらすように、圧縮することができる。
圧縮されたコード変換済みの信号は、クライアント装置において圧縮解除され且つ表示されるように、クライアント装置に送信される。次いで、クライアント装置における視聴者は、好ましい視聴領域を識別できると共に、好ましい視聴領域の記述子をサーバに送信することができる。次いで、信号は、好ましい視聴領域に対応する信号の部分のみを保持するように、コンテンツフィルタリングすることができる。コンテンツフィルタリング済みの信号は、圧縮できると共に、次いで、クライアント装置に送信することができる。
サーバがパノラママルチメディアソース110にアクセスした際に、パノラママルチメディアソースは、ビデオ信号のみならず、デワープ及び圧縮などの、ビデオ信号に適用されたいずれかの信号処理の通知を含む制御データをも有するマルチメディア信号を提供する。取得されたビデオ信号は、パノラマビデオ信号であり、このパノラマビデオ信号は、単一のカメラにより、生成されたものであってもよく、或いは、複数のカメラからのビデオ信号を組み合わせることにより、生成されたものであってもよい。
クライアント装置のユーザが好ましい視聴領域の識別子を伝達できるようにするべく、サーバは、これを目的として構成されたソフトウェアモジュールをクライアント装置に送信している。サーバは、物理的プロセッサ及び関連するメモリ装置が必要に応じて割り当てられる共有型のクラウド演算ネットワーク内において、部分的に又は完全に、設置することができる。
図12は、圧縮済みのビデオ信号のフローレート(ビットレート)の時間的変動を示している。当技術分野において周知のように、いくつかの記述子は、フローレートの平均値1220及びピーク値1230などの可変フローレート信号(可変ビットレートとも呼称される)と、信号バースト持続時間を表すパラメータと、の特徴を判定するべく、使用することができる。可変ビットレート信号を搬送するべく指定された共有ネットワーク経路の記述子及び容量は、信号を搬送するべく通信経路内において割り当てられる必要がある有効フローレート(有効ビットレート)1225を判定するべく、使用することができる。サーバ圧縮モジュール1160は、有効フローレート(有効ビットレート)が(購入された)ネットワーク接続の許容可能なフローレートを超過しないことを保証するように、構成されることになろう。
図13に示されるモジュール1300は、時間制限され、低フローレートでありながらも、パノラマ完全空間カバレッジを提示することに適するビデオ信号を生成することにより、この時間制限ビデオ信号を受信するクライアントが好ましい部分カバレッジ視聴を選択することを可能にする。
フレームサンプリングモジュール1320に含まれる、プロセッサ実行可能命令により、プロセッサは、離れたフレーム間隔の間に、純ビデオ信号420、又は純ビデオ信号から抽出されたコード変換済みのビデオ信号をサンプリングして、完全空間カバレッジサンプリングされた画像に対応する、フレームサンプリング済みのビデオ信号1322を生成する。フレームサンプリング済みのビデオ信号1322は、圧縮されておらず、許容可能なフローレートを超えない一定のフローレートを有する。フレームサンプリング済みのビデオ信号1322は、クライアント装置において表示されうる。
純ビデオ信号420は、補正済みの信号322又は整流済みの信号324(図3)であってよい。フレーム間のサンプリング期間は、純ビデオ信号420のサンプリングされる部分のストリームの(一定)フローレートが許容可能なフローレートを超えないように選択される。例えば、純ビデオ信号420のデータフローレートが1Gb/sであって、許容可能なフローレートが5Mb/sである場合、フレームサンプリングモジュール1320は、ひと組が連続する200フレームである各組から1つのフレームを選択する。そして、サンプリングされたフレームを受信した特定のクライアント装置180が、200フレームの時間間隔(フレームレートが40フレーム毎秒であれば5秒)の間に各フレームを繰り返し表示する。サーバ120は、その特定のクライアント装置から好ましい視聴領域の指示を受け取ったら、各編集済みのマルチメディア信号940の送信を開始し(図9)、フレームサンプルの送信を終了する。
サーバ120は、視聴選択ソフトウェア命令を各クライアント装置に送ることにより、クライアントによる好ましい視聴領域の選択を促進することが可能である。このソフトウェア命令は、ダウンストリーム制御データ945(図9)を搬送する経路と同じ経路で送られてよい。
従って、サーバ120は、プロセッサが、フレームサンプリング済みのビデオ信号を生成するべく、離隔したフレーム間隔においてビデオ信号をサンプリングするようにするプロセッサ実行可能命令を有するフレームサンプリングモジュールを利用することができる。サーバは、クライアント装置のユーザが好ましい視聴領域の識別情報をサーバに伝達できるようにするべく、複数のクライアント装置への分配のためのソフトウェアモジュールを記憶するメモリ装置を更に有する。
空間-時間的サーバ圧縮モジュール1340に含まれる、プロセッサ実行可能命令により、プロセッサは、純ビデオ信号420、又は純ビデオ信号から抽出されたコード変換済みのビデオ信号を圧縮して、完全空間カバレッジ画像に対応する圧縮済みの信号1342を生成する。圧縮済みの信号1342は、図12に示されたようにフローレートが変動するが、サーバ圧縮モジュール1340は、実効フローレート(実効ビットレート)が許容可能なフローレートを超えないようにしている。
空間-時間的圧縮モジュール1360は、空間-時間的サーバ圧縮モジュール1340と同様に、純ビデオ信号420から抽出された、予め選択されたコンテンツフィルタリング済みの信号(部分カバレッジ信号)1362の圧縮をプロセッサに行わせる。連続する時間窓を占有する一連の圧縮されたコンテンツフィルタリング済みの信号1364が、ターゲットクライアント装置に送られる。各圧縮済みの信号1364は、図12に示されたようにフローレートが変動するが、圧縮モジュール1360は、各圧縮済みの信号1364の実効フローレート(実効ビットレート)が許容可能なフローレートを超えないようにしている。
図14は、コンテンツフィルタリング済みのビデオ信号をクライアント装置に渡す処理を示す。時刻t1に、特定のクライアント装置180のユーザが、特定のイベントの視聴を要求するメッセージ1402をサーバ120に送る。このメッセージは、時刻t2にサーバ120が受け取る。特定のクライアント装置のユーザが好ましい視聴領域の識別子をサーバに伝達することを可能にするために、幾つかの視聴選択方法が考えられる。
1つの視聴選択方法では、サーバが、選択された完全空間カバレッジパノラマ画像に対応するフレームサンプリング済みの信号1322を時刻t3に送信する。時刻t4に、クライアント装置180は、フレームサンプリング済みの信号1322の受信を開始し、この信号は、1フレーム分のコンテンツが蓄積された後にディスプレイ装置にサブミットされる。時刻t5に、特定のクライアント装置のユーザは、選択された視聴領域を指定するパラメータを渡すメッセージ1404を送信する。メッセージ1404は、時刻t6にサーバが受け取る。サーバ120は、選択された視聴領域に対応する各コンテンツフィルタリング済みのビデオ信号を形成する。各コンテンツフィルタリング済みのビデオ信号は圧縮されてよく、これによって、圧縮されたコンテンツフィルタリング済みの信号(部分空間カバレッジ信号)1440が生成される。サーバは、フレームサンプリング済みの信号1322の送信を時刻t7に終了し、クライアント装置180への圧縮されたコンテンツフィルタリング済みの信号1440の送信を時刻t9に開始する。信号1440は、クライアント装置において圧縮解除され、表示される。クライアント装置は、フレームサンプリング済みの信号1322の最後のフレームを時刻t8までに受け取り、圧縮済みの信号1440の受信を時刻t10に開始する。圧縮済みの信号1440の送信は時刻t11に終了し、この信号の、クライアント装置での受信は時刻t12に終了する。
別の視聴選択方法では、サーバは、図13に示されたように、クライアント装置に適合する、許容可能なフローレートまで圧縮された完全カバレッジビデオ信号1342を生成する。サーバは、信号1342を時刻t3に送信し、クライアント装置180は、圧縮済みの信号の受信を時刻t4に開始する。圧縮済みの信号1342は、クライアント装置において圧縮解除され、ディスプレイ装置にサブミットされる。時刻t4の後のイベントシーケンスは、フレームサンプリング済みのビデオ信号1322の場合に対応するイベントシーケンスと同様になる。
別の視聴選択方法では、サーバは、図13に示されたように、事前選択された視聴領域に対応する幾つかのコンテンツフィルタリング済みのビデオ信号1362を純ビデオ信号420から抽出する。これらの抽出されたコンテンツフィルタリング済みのビデオ信号のそれぞれは、クライアント装置の能力に適合するものであり、許容可能なフローレートまで圧縮されている。一連の圧縮済みの信号1364がクライアント装置に送信されてよく、クライアント装置のユーザは、事前選択された視聴領域のうちの好みの1つを示すメッセージをサーバに送信してよい。
従って、本発明は、視聴領域の予め定義された組に対応するコンテンツフィルタリング済みの信号の組を生成するべく、ビデオ信号のコンテンツを編集するステップを有する信号ストリーミングの方法を提供している。それぞれのコンテンツフィルタリング済みの信号は、特定のクライアント装置と互換性を有するコード変換済みの信号の組を生成するように、コード変換される。コード変換済みの信号のそれぞれは、圧縮済みの信号の組を生成するように、圧縮される。圧縮済みの信号は、クライアント装置に対して連続的に送信される。特定のクライアント装置から好ましい視聴領域に対応する特定の圧縮済みの信号の識別子を受け取った際に、特定の圧縮済みの信号のみが、後から、クライアント装置に対して送信される。
図15は、サーバ120からクライアント装置180に送信されるビデオ信号のビットレート(フローレート)の時間変動を示す。フレームサンプリング済みの信号1322のビットレートは一定であり、所定の許容ビットレートを超えない値に設定されている。圧縮されたコンテンツフィルタリング済みの信号1440のビットレートは時間変動する。当該技術分野で知られている通り、可変ビットレートは、平均ビットレート、ピークビットレート、平均データバースト長などのパラメータによって特徴づけられうる。これらのパラメータを、各ネットワーク経路の容量とともに使用して、「実効ビットレート」1525を決定することが可能であり、これは平均ビットレート1520より大きい。フレームサンプリング済みの信号1322を形成することにより、結果として得られる一定ビットレートは、確実に、(サービスレベル合意又はネットワーク制約に基づいてよい)所定の許容ビットレートを超えない。サーバ120における圧縮処理は、圧縮済みの信号1440の実効ビットレートが許容可能なビットレートを超えないように考案されている。
クライアント装置の組のうちの特定のクライアント装置に対してサービスを提供するべく、純ビデオ信号をコード変換することにより、クライアント装置タイプと互換性を有するコード変換済みの信号を生成することができる。コード変換済みの信号は、サーバからクライアント装置までの経路のいくつかの経路の容量を超過するフローレートを有する場合がある。完全カバレッジ(実現可能なカバレッジ)の視聴をクライアント装置に対して提供するべく、低減されたフローレートの信号サンプルが生成され、且つ、クライアント装置にマルチキャストされる。信号サンプルは、フレームサンプリングされたコード変換済みの信号又は圧縮されたコード変換済みの信号であってもよい。個別の好ましい視聴領域の識別子を特定のクライアント装置から受け取った際に、コード変換済みの信号は、個々の好ましい視聴領域に対応するクライアントに固有の信号を生成するように、コンテンツフィルタリングされる。クライアントに固有の信号は、圧縮され、且つ、特定のクライアント装置に対して送信される。
信号編集モジュール
図16は、サーバ120の信号編集モジュール460(図4から図8)の基本コンポーネント1600を示す。第1の段階1610では、純ビデオ信号420が処理されて、K個(K≧1)のコンテンツフィルタリング済みの信号1612が生成される。第2の段階1620では、各コンテンツフィルタリング済みの信号1612が、それぞれのクライアント装置又はクライアント装置群180に適応される。各コンテンツフィルタリング済みの信号は、それぞれの信号処理ユニット1630に誘導されて、フレームレートの上限、分解能、及びフローレート(ビットレート)を含む幾つかの条件を満たす、それぞれの調整済み信号1650が生成される。調整済み信号1650は、幾つかのクライアント装置にマルチキャストされることに適していてよい。コンテンツフィルタリング済みの信号1612は、個別には1612(0)から1612(K-1)として識別されている。信号処理ユニット1630は、個別には1630(0)から1630(K-1)として識別されている。調整済み信号1650は、個別には1650(0)から1650(K-1)として識別されている。
図17は、完全コンテンツ信号からの異なる部分コンテンツ信号の同時生成のための、1120(0)~1120(K-1)として個別に識別されたK個のコンテンツフィルタ1120を有するコンテンツフィルタリング段階1610を示している。サーバ-ネットワークインタフェース1710を通じて受け取られた完全コンテンツ信号900は、すべてのコンテンツフィルタ1120の入力にルーティングされる純ビデオ信号420を生成するように、圧縮解除及び/又はデワープ(モジュール1725)することができる。要求されたコンテンツを識別するパラメータが、コンテンツフィルタ1120の入力1720を制御するべく、分配されている。
各コンテンツフィルタ1120は、純ビデオ信号420から、指定された視聴領域に対応する部分を抽出することを物理プロセッサ(図示せず)に行わせるように考案されている。純ビデオ信号420は各コンテンツフィルタ1120にサブミットされ、各モジュール1120は、対応するコンテンツフィルタリング済みの信号1612を生成するように活性化される。特定のコンテンツフィルタリング済みの信号1612が、その特定のコンテンツフィルタリング済みの信号に対応する、視聴領域の好みを示した幾つかのクライアントにマルチキャストされてよい。しかしながら、クライアント装置はそれぞれ特性が異なる場合があり、クライアント装置までのネットワーク経路の容量がそれぞれ異なる場合があり、ネットワーク経路の容量、及びクライアント装置における時間変動トラフィック負荷がそれぞれ異なるためにクライアント装置に対する許容可能なフローレートがそれぞれ異なる場合がある。従って、コンテンツフィルタリング済みの信号1612は、第2の段階1620において、クライアント装置及びネットワーク経路に適応するように処理される。
図18は、信号編集モジュール460の第2の段階1620の信号処理ユニット1630を示しており、これは、クライアント装置タイプに対する信号適応を行うコード変換モジュール1840と、許容可能なフローレートに適合するための信号フローレート適応を行うモジュール1860と、を含む。コード変換モジュール1840は、フレームレート及び分解能が各クライアント装置の能力の範囲に収まるようにビデオ信号を適応させることが可能である。N個のタイプ(N≧1)のクライアント装置が活動している場合、コード変換モジュール1840は、それぞれが各装置タイプに適応されたN個の信号1842(個別には1842(0)から1842(K-1)として識別されている)を生成する。モジュール1860は更に、信号のフローレートが許容値を超えた場合にはフローレートを下げることが可能である。各モジュール1860(j)(0≦j<N)は、各信号1842のデータブロックを保持するバッファ1861と、プロセッサで実行可能なフローレート適応命令を記憶するメモリ装置1862と、を含む。
図19は、信号編集モジュール460の一例示的実施態様1900を示す。図17に示されたように、コンテンツフィルタリング段階1610は、K個のコンテンツフィルタ1120を含む。各コンテンツフィルタリング済みの信号1612は、コード変換モジュール1840にサブミットされて、クライアント装置の各タイプに対して適応される。コード変換モジュール1840は、コンテンツフィルタリング済みの信号1612のデータブロックを保持するバッファ1922と、プロセッサ実行可能命令を記憶するメモリ装置1923とを含み、これらの命令によって、プロセッサは、フレームレート及び/又は分解能を、クライアント受信機の能力に適合するように修正する。コード変換モジュール1840の各出力信号1842は、フローレート適合モジュール1860において更に処理されてよい。
図17に示されたように、K個のコンテンツフィルタ1120(個別には1120(0)から1120(K-1)として識別されている)(K>1)が同時に活性化されることにより、異なるコンテンツフィルタリング済みの信号1612(0)から1612(K-1)が抽出されてよく、これらのそれぞれが更に、それぞれの信号処理ユニット1630において処理されて、各クライアント装置又はクライアント装置群での表示に適する信号1650が生成される。図18に示されたように、コンテンツフィルタリング済みの信号1612は、ターゲットクライアント装置180に適合するようにコード変換され、更に、許容上限を超えないフローレートに適応される。
図20は、ターゲットクライアント装置180に対するビデオ信号編集の処理2000を示す。制御信号935は、トラフィックパフォーマンス測定値2014、公称フレームレート及びフレーム分解能2016、並びに好ましい視聴領域の識別子2012を提供してよい。純ビデオ信号420がコンテンツフィルタ1120(j)に誘導されることにより、ターゲットクライアント装置のユーザによって識別された視聴領域jに対応するコンテンツが純ビデオ信号420から抽出される。フローレート計算モジュール2040は、コード変換モジュール1840(j)において使用される、ターゲットクライアント装置180に適合する許容可能なフローレートΦ、並びにフレームレート及びフレーム分解能を決定するために活性化される。コード変換モジュール1840(j)は、抽出されたコンテンツフィルタリング済みの信号1612(j)を、フローレート計算モジュール2040によって決定されたフレームレート及びフレーム分解能に適応させるために活性化される。サーバ圧縮モジュール2030が編集済みビデオ信号940を生成し(図9)、この信号は、識別された視聴領域に適合し、ターゲットクライアント装置180の能力と、サーバ120からターゲットクライアント装置180までのネットワーク経路の能力とに対応している。送信機2050が信号2052をターゲットクライアント装置に送信する。信号2052は、ビデオ信号940と、付随するマルチメディア信号(例えば、オーディオ信号及び/又はテキスト)及び制御信号とを一緒に含む。信号2052は、ネットワーク経路2060を通ってターゲットクライアント装置にルーティングされる。
図21は、フローレート計算モジュール2040の詳細を示す。処理2110は、サーバに記憶されるか、ターゲットクライアントから受信される制御信号935に含まれていてよい、ターゲットクライアント装置180の公称フレームレート及び公称フレーム分解能から始めて、ターゲットクライアント装置180のディスプレイ装置において必要なフローレートRを、フレームレートとフレーム当たり画素数と画素当たりビット数とを直接掛け合わせることによって決定する。処理2120は、独立に、サーバとターゲットクライアント装置との間の許容可能なフローレートΦ(参照符号2122)を、ネットワーク経路2060上のトラフィックパフォーマンスの測定値と、クライアント装置の受信バッファの占有率とに基づいて決定する。トラフィックパフォーマンス測定値は、データロスインジケータ(あれば)及び遅延ジッタを含む。トラフィックパフォーマンス測定値は、当該技術分野においてよく知られている技術を用いて決定される。測定されたトラフィックパフォーマンスに基づいて許容可能なフローレートを決定することは、実験式に基づいてよく、或いはパラメータ化分析モデルに基づいてよい。
処理2140は、ネットワーク経路2060上の許容可能なフローレートΦに対する、ターゲットクライアントサーバのディスプレイ装置において必要なフローレートRの圧縮比(プロセス2130で決定される)が、サーバ圧縮モジュール2030にとって適切かどうかを判定する。フローレートRを下げないと圧縮比制限が満たされない場合には、処理2150は、修正済みのフレームレート及び/又は修正済みの分解能2152を決定してよく、これがコード変換モジュール1840(図20)に伝達される。許容可能なフローレートΦは、サーバ圧縮モジュール2030に伝達されてよい。
図22は、クライアント装置180の構成要素を示す。メモリ装置2210が、クライアント装置の特性化データ(例えば、ディスプレイ装置のフレームレート及びフレーム分解能の上限)を記憶する。メモリ装置2220が、特定のサーバ120と相互作用するソフトウェア命令を記憶する。これらの命令は、クライアント装置のユーザが好ましい視聴領域の識別情報をサーバに伝達することを可能にするソフトウェアモジュールを含んでよい。ソフトウェア命令は、クライアント装置のユーザによってインストールされてよく、或いは、ダウンストリーム制御信号945と一緒にサーバ120から送信されてよい(図9)。クライアント送信機2230が、すべての制御データをクライアント装置から各サーバ120に送信する。クライアント受信機2240が、サーバ120からのすべての信号を受信し、これには、編集済みビデオ信号940(これは圧縮されていてよい)、他のマルチメディアデータ(オーディオ信号及びテキスト)、及び制御信号945が含まれる。インタフェース2242が、制御信号945をプロセッサ2250に振り分け、編集済みビデオ信号940を、付随するオーディオ信号及びテキストと一緒にメモリ装置2260に振り分け、メモリ装置2260は、ビデオ信号940、オーディオデータ、及びテキストを含む着信マルチメディアデータのデータブロックをバッファリングする。着信マルチメディアデータが圧縮されていない場合、データはディスプレイ装置2290に渡される。着信マルチメディアデータが圧縮されている場合は、クライアント圧縮解除モジュール2270が、メモリ装置2260にバッファリングされている圧縮データブロックを圧縮解除して表示データを生成し、これが、ディスプレイ装置2290に結合されているメモリ装置2280で保持される。特に、完全カバレッジのフレームサンプリング済みの信号1322(図13、図14)の1フレーム分に対応するデータブロックが、メモリ装置2280からデキューされるまで何度も表示されてよい。
図23は、ネットワーク150を通じたユニバーサルストリーミングサーバ120と2つのパノラママルチメディアソース110-0及び110-1との間の通信経路を示している。マルチメディアソース110は、パノラマカメラ310(例えば、4πカメラ)を有しており、且つ、図3~図8に示されているように、デワープモジュール330及び/又はソース圧縮モジュール340を含むことができる。2つのパノラママルチメディアソース110しか示されていないが、ユニバーサルストリーミングサーバ120は、図2に示されているように、更に多くの数のマルチメディアソース110に同時に接続しうることを理解されたい。好ましい一実装形態においては、ユニバーサルストリーミングサーバは、ユニバーサルストリーミングサーバのネットワーク接続性及び処理容量が、変化する活動レベルに適するように選択されうるように、クラウドに埋め込まれている。パノラママルチメディアソース110からのソースマルチメディア信号は、適切な送信容量のネットワーク経路480/490(図4)を通じてユニバーサルストリーミングサーバ120に送信されている。ソースマルチメディア信号は、ソースビデオ信号900を含む。
ネットワーク経路480/490が理想的であれば、ユニバーサルストリーミングサーバ120が受信するマルチメディア信号は、送信されたビデオ信号の遅延した複製となる。しかしながら、ネットワーク経路480/490は、ソース側のデータルータ、受け側のデータルータ、並びに場合によっては1つ以上の中間データルータを通る可能性がある。従って、受信されるマルチメディア信号は、ノイズ、遅延ジッタ、並びに場合によっては信号の一部消失に見舞われる可能性がある。サーバ120における信号フィルタリング、並びにフローレート制御によって、受信されるマルチメディア信号のコンテンツは、送信されたマルチメディア信号のコンテンツに近い複製となる。
ソースビデオ信号900は、図3に示されたように、パノラマカメラで生成された「未加工」のビデオ信号312、補正済みビデオ信号322、圧縮済みのビデオ信号342、又はコンパクトビデオ信号343であってよい。デワープモジュール330を使用して、未加工のビデオ信号から補正済みビデオ信号322が生成される。ソース圧縮モジュール340(図3)を使用して、標準化された圧縮方法又は独自の圧縮方法のいずれかに従って、未加工の信号312から圧縮済みのビデオ信号342が生成される。ソース圧縮モジュール340を使用して、補正済みビデオ信号322からコンパクトビデオ信号343が生成される。未加工のビデオ信号は、単一のパノラマカメラ、又は複数のカメラにより生成されてよい。
ユニバーサルストリーミングサーバ120は、ネットワーク経路2314を介して、制御信号925(図9)をパノラママルチメディアソース110に送信してよく、ネットワーク経路2314は、ペイロード経路480/490に比べて伝送容量が(格段に)低いものとなる。
図24は、ユニバーサルストリーミングサーバ120、パノラママルチメディア信号を提供する信号ソース110、及び複数のクライアント装置180をサポートするネットワーク150を示している。1つの信号ソースしか示されていないが、ユニバーサルストリーミングサーバ120は、図2に示されているように、同時に複数の信号ソースに接続しうることを理解されたい。通信経路は、ユニバーサルストリーミングサーバ120と複数の異種のクライアント装置180との間において確立されている。ユニバーサルストリーミングサーバ120は、編集済みのマルチメディア信号940(図9)をネットワーク経路2412を通じてクライアント装置に送信している。ユニバーサルストリーミングサーバ120は、個々のクライアント装置180からネットワーク150内の(図示されてはいない)制御経路を通じて制御データ935を受け取っている。制御データ935は、サービスの要求及び視聴領域の選択を含むことができる。
ソース110からのソースマルチメディア信号は、高フローレートをサポートするべく、十分に高容量のペイロードネットワーク経路480/490を通じてサーバ120に送信されている。マルチメディア信号は、ソースビデオ信号900を含む(図3、312、322、342、又は343)。サーバ120から信号ソース110への制御信号は、ペイロードネットワーク経路480/490との比較において格段に低容量となるであろう制御経路上において送信されている。ソースマルチメディア信号のビデオ信号コンポーネント900は、パノラマカメラによって生成されたオリジナルの圧縮されていないビデオ信号であってもよく、或いは、規格化された圧縮方法のうちの1つ又はプロプライエタリな圧縮方法に従ってオリジナルのビデオ信号から生成された圧縮済みのビデオ信号であってもよい。オリジナルのビデオ信号は、単一のパノラマカメラによって生成されてもよく、或いは、複数のカメラによって生成されてもよい。
理想的なネットワーク経路の場合には、サーバ120における受信されたビデオ信号は、送信されたビデオ信号の遅延したレプリカとなろう。但し、ネットワーク経路は、ソースにおけるデータルータ、宛先におけるデータルータ、並びに、恐らくは、1つ又は複数の中間のデータルータを経由しうる。従って、受信されたマルチメディア信号は、ノイズ、遅延ジッタ、並びに、恐らくは、部分な信号損失を経験しうる。ユニバーサルストリーミングサーバ120は、個々のクライアント装置180からコマンドを受け取っている。コマンドは、サービスに対する要求や視聴パターンの選択などを含むことができる。
ユニバーサルストリーミングサーバからクライアント装置180への、個別に又は集合的に940として参照されている、ビデオ信号は、個々のクライアント装置180の能力、利用可能なネットワーク経路の能力(「帯域幅」)、並びに、クライアントの好みに対して個別に適合されている。個々のクライアント装置からユニバーサルストリーミングサーバへの制御データは、集合的に935(図9)として参照されている。ユニバーサルストリーミングサーバ120は、共有型のクラウド演算ネットワーク内において割り当てられたハードウェア処理ユニット及びメモリ装置を使用することにより、実装することができる。或いは、この代わりに、選択されたプロセスは、クラウド外の演算設備内において実行することもできる。
図25は、ソース110からサーバ120にマルチメディア信号を搬送する経路480/490と、制御信号905をソース110からサーバ120に、且つ、制御信号925をサーバ120からソース110に、搬送するデュアル制御経路2512と、を示している。ダウンストリームネットワーク経路2525は、サーバ120からクライアント180にマルチメディア信号を搬送している。デュアル制御経路2526は、ダウンストリーム制御信号をクライアント装置180に、且つ、アップストリーム制御信号935をクライアント装置180からサーバ120に、搬送している。クライアント装置180と関連するオートマトン2545は、コマンドをユニバーサルストリーミングサーバに送信することができる。オートマトンは、通常、人間の観察者となろう。但し、いくつかの用途においては、人工知能能力を有するモニタを想定することができる。
マルチメディアソース110において生成されたパノラママルチメディア信号900から適応されたクライアント別マルチメディア信号940は、複数の異種のクライアント装置180にマルチキャストされてよい。マルチメディア信号940は、各クライアント装置の能力、ネットワーク経路の利用可能な容量(「帯域幅」)、及びクライアントの好みに対して個別に適応される。
図26は、少なくとも1つのハードウェアプロセッサ2610を含む、ユニバーサルストリーミングサーバ120のモジュール構造を示す。サーバ-ソースインタフェース2651が、マルチメディアソース110との通信を制御する。ソース特徴付けモジュール2652が、マルチメディアソース110を特性化し、受信されたパノラマビデオ信号900を処理するように考案されたモジュールのセット2620にソース特性化データを伝達する。ソース特性化データは、パノラママルチメディアソースによって伝達される特性化データから、或いは、記憶されているレコードから決定されてよい。モジュールのセット2620は、伝送ノイズや遅延ジッタに起因する信号劣化を相殺する信号フィルタリングモジュール2621を含み、サーバ圧縮解除モジュール350及びデワープモジュール320を含んでよい(図3)。信号フィルタリングモジュール2621は、ノイズ及び遅延ジッタによって引き起こされる信号劣化を相殺する。「未加工」のビデオ信号312(図3)がソースにおいてデワープされて「補正済みの信号」322が生成され、これが更にソースにおいて圧縮される場合、サーバ圧縮解除モジュール350は、適切な圧縮解除処理を適用して、補正済みの信号322の複製を生成する。そうでない場合、未加工のビデオ信号312がソースにおいてデワープされずに圧縮されていれば、サーバ圧縮解除モジュール350は、適切な圧縮解除処理を適用して、未加工の信号312の複製を生成し、これがデワープモジュール320を使用してデワープされる。
クライアント装置に関係したモジュール2640は、クライアント装置特徴付けモジュール2642と、クライアント装置特性に対する信号適合のためのモジュール2643と、を含む。クライアント装置特徴付けモジュール2642は、クライアント装置タイプの組のうちのそれぞれのクライアント装置タイプの特性を記憶するクライアントプロファイルデータベース2641に依存したものであってもよく、或いは、サーバ-クライアントインタフェース2661を介して受け取った特徴付けデータからクライアント装置特性を抽出することもできる。クライアントの装置特性は、処理能力、フレームレートの上部境界、フレーム分解能、及びフローレートなどに関係したものであってもよい。
クライアントに固有のモジュール2660は、サーバ-クライアントインタフェース2661と、クライアントの環境に対する信号適合用のモジュール2662と、クライアントの視聴の好みに対する信号適合用のモジュール2663と、を含む。
図27は、視聴選択肢のクライアントの選択を追跡するための学習モジュール2725を含むユニバーサルストリーミングサーバ120を示している。学習モジュールは、視聴の好みデータを保持すると共に、視聴の好みをクライアント装置の特性に対して、且つ、任意選択により、クライアントの環境に対して、相関させるように、構成することができる。
従って、サーバは、少なくとも1つのネットワークを通じて少なくとも1つのパノラマビデオソースと複数のクライアント装置との間において通信経路を確立するように構成されたネットワークインタフェースモジュールを有する。様々な設計は、
ソースにおいて圧縮済みのビデオ信号を圧縮解除するように構成された圧縮解除モジュール、
ソースにおいてデワープされていないビデオ信号をデワープするように構成されたデワープモジュール、
複数のクライアント装置のうちの任意のクライアント装置の特性に対してビデオ信号を適合させるように構成されたコード変換モジュール、
識別された視聴領域に対応するようにビデオ信号のコンテンツを編集するべく構成されたコンテンツフィルタ、並びに、
ソースビデオ信号を取得し、クライアント固有のビデオ信号を生成するべくビデオ信号をコード変換モジュール及びコンテンツフィルタに提示し、且つ、クライアント固有のビデオ信号を個々のクライアント装置に送信するために、少なくとも1つのパノラマビデオソースとの間において通信するように構成された制御モジュール、
というモジュールに基づいて、ユニバーサルストリーミングサーバ120を構築しているものと見なすことができる。
サーバは、視聴の好みデータを保持すると共に視聴の好みをクライアント装置の特性に相関させるように構成された学習モジュールを更に使用することができる。
図28は、ユニバーサルストリーミングサーバ120において実施される処理を示しており、この処理では、パノラマビデオ信号がクライアント装置タイプに対して適応されてから、コンテンツフィルタリングされる。処理2820では、ソースビデオ信号900がソースにおいて圧縮されている場合に、受信されたソースビデオ信号900が圧縮解除される。ソースビデオ信号がソースにおいてデワープされていない場合には、受信されたソースビデオ信号900がデワープされる。処理2820では純ビデオ信号420が生成され(図4~図8)、この信号は、上述のように、補正済みビデオ信号322又は整流済みビデオ信号324(図3)であってよい。複数の処理2830が並列に実行されてよく、これによって、純ビデオ信号420が、様々なタイプのクライアント装置に適応されたビデオ信号にコード変換される。
処理2830のそれぞれは、クライアント装置の各タイプに固有である。処理2830では、処理2820の結果として得られる純ビデオ信号420がコード変換されて、クライアント装置の各タイプに適する修正済み信号が生成される。幾つかのクライアントが同じタイプの装置を使用していてよい。しかしながら、各クライアントは視聴の好みが異なってよい。処理2830で生成されたビデオ信号が、コンテンツフィルタ1120において、各クライアント(人間)の視聴領域の選択結果に適応される。しかしながら、同じタイプの装置を使用する2人以上のクライアントが視聴の好みも同様である場合には、コンテンツフィルタリング処理が1つだけ実行されてよく、結果として適応された信号がその2つ以上のクライアントに送信される。
図29は、ユニバーサルストリーミングサーバ120において実施される処理を示しており、この処理では、パノラマビデオ信号が、コンテンツフィルタリングされてから、クライアント装置タイプに対して適応される。図28の処理2820と同様に、ソースビデオ信号900がソースにおいて圧縮されている場合に、受信されたソースビデオ信号900が圧縮解除される。ソースビデオ信号900がソースにおいてデワープされていない場合には、受信されたソースビデオ信号900がデワープされる。処理2820では純ビデオ信号420が生成され、この信号は、上述のように、補正済みビデオ信号322又は整流済みビデオ信号324(図3)であってよい。メモリ装置が、部分カバレッジ視聴領域の所定の記述子のセット2925を記憶する。
純ビデオ信号420のコンテンツフィルタリングの複数の処理が並列に実施されてよく、これによって、部分カバレッジ視聴領域の所定の記述子に対応するコンテンツフィルタリング済みのビデオ信号が生成される。コンテンツフィルタリング済みのビデオ信号を、タイプの異なる複数のクライアント装置に適応させるために、複数の処理2940が並列に実行されてよい。2人以上のクライアントが同じ視聴領域を選択し、同じタイプのクライアント装置を使用する場合には、処理2940が1つだけ実行され、結果として適応されたビデオ信号がその2つ以上のクライアントに送信される。
図30は、パノラママルチメディア信号を取得し、取得したマルチメディア信号を個々のクライアントに適応させる方法3000を示す。ユニバーサルストリーミングサーバ120は、パノラママルチメディア信号と、好ましくはそれぞれのメタデータとを、選択されたパノラママルチメディアソース110から取得する(処理3010)。取得されたパノラママルチメディア信号はソースビデオ信号を含み、これは、図3に示されたように、未加工のビデオ信号312、補正済みビデオ信号322、圧縮済みのビデオ信号342、又はコンパクトビデオ信号343であってよい。ソースビデオ信号は、ノイズや遅延ジッタに起因する劣化を相殺するためにフィルタリングされ(処理3012)、信号がソースにおいて圧縮されている場合には圧縮解除される(処理3014)。そこまでに処理された信号は、ソースにおいて最初にデワープされていない場合にはデワープされる(処理3018)。処理3010から処理3018までで純ビデオ信号420が生成される。
クライアントからのサービス要求が受信されると(処理3020)、純ビデオ信号420は、クライアントの装置の特性に対して適応される(処理3022)。適応された信号は、圧縮され(処理3026)、クライアント装置に送信される(処理3028)。処理3026では、サーバからクライアント装置までのネットワーク経路の状態によって生ずる可能性があるフローレート制約が考慮される。
クライアントは、特定の視聴領域を希望してよく、ユニバーサルストリーミングサーバ120と通信して好ましい視聴領域を定義することが可能である。好ましい視聴領域を定義する制御信号3030がクライアントから受信されると(処理3032)、処理3022で生成された、適応された信号がコンテンツフィルタリングされ(処理3034)、圧縮され(処理3026)、クライアント装置に送信される(処理3028)。純視聴信号420は、ストリーミングセッション中に複数回コンテンツフィルタリングされてよい。
図31は、図30の方法と同様の、パノラママルチメディア信号を取得し、取得したマルチメディア信号を個々のクライアントに適応させる方法3100を示す。異なるのは、処理3010、3020、及び3022の実行順序だけである。
図32は、特定のパノラママルチメディアソース110に対応する、ユニバーサルストリーミングサーバ120において保持される、一例示的ストリーミング制御テーブル3200を示す。特定のクライアント装置180に配信される編集済みのマルチメディア信号940(図9、図24)は、そのクライアント装置の特性と、そのクライアント装置を使用する視聴者の視聴の好みとに依存する。多数のクライアント装置180が(活動をリアルタイムで監視している)ユニバーサルストリーミングサーバ120に同時に接続している場合には、以下のことが可能性としてありそうである。
(i)多数のクライアントが、同じ特性のクライアント装置180を使用するが、クライアントは視聴の好みがそれぞれ異なる。
(ii)多数のクライアントが、視聴の好みはよく似ているが、使用するクライアント装置の特性がそれぞれ異なる。且つ/又は、
(iii)2人以上のクライアントが、同じ特性のクライアント装置を使用し、視聴の好みも同じである。
従って、ユニバーサルストリーミングサーバ120の処理負荷を低減するべく、
クライアント装置に対する信号適合のモジュール2643は、同一の特性のすべてのクライアント装置について、一度だけ、稼働してもよく、次いで、クライアントの視聴の好みに対する信号適合のモジュール2663は、類似のクライアント装置及び類似の視聴の好みを有するすべてのクライアントについて、一度だけ、稼働し、或いは、
クライアントの視聴の好みに対する信号適合のモジュール2663は、類似の視聴の好みを有するすべてのクライアントについて、一度だけ、稼働してもよく、次いで、クライアント装置に対する信号適合のモジュール2643は、類似の視聴の好み及び類似のクライアント装置を有するすべてのクライアントについて、一度だけ、稼働している。
上述のように、モジュール2643は、クライアント装置の特性に対する信号適応を行うように考案されており、モジュール2663は、クライアントの視聴の好みに対する信号適応を行うように考案されている。
クライアントのサービス要求はランダムな順序で到着する可能性があり、先行する信号適応処理を追跡する簡単な一方法は、ストリーミング制御テーブル3200(図32)を使用することである。ストリーミング制御テーブル3200は、NULLで初期化されている。図32の例では、クライアント装置180の8つのタイプがD0、D1、…、D7と表されており、6つの視聴選択肢がV0、V1、…、V5と表されており、これらは、例えば、視聴立体角に従って定量化される。第1のクライアントが、タイプD1のクライアント装置を使用してユニバーサルストリーミングサーバ120にアクセスし、視聴選択肢V3を要求した。この場合は、ストリーム0と表されたストリームが生成され、ストリーミング制御テーブル3200に示される。タイプD5のクライアント装置180を使用し、視聴選択肢V2を指定した別のクライアントに対しては、ストリーム1と表される別のストリームが生成され、その他も同様に行われる。ストリーミング制御テーブル3200には6つのストリームだけが識別されているが、当然のことながら、同時に接続されているクライアント装置180が多数ある場合には、多数のストリームがあってよいことが理解される。クライアントからの新しい要求が受信されると、ストリーミング制御テーブル3200がアクセスされて、新しいストリームを生成するべきか、既存のストリームをそのクライアントに向けるべきかが判定される。本明細書では、ある装置タイプに対応するすべてのストリームが、ある「ストリームカテゴリ」を形成するものとされている。
図33は、特定のクライアント装置180に対するビデオ信号の最初の適応のストリーミング制御処理3300を示す。クライアント装置180からのサービス要求がサーバ-クライアントインタフェースモジュール2661において受信され(処理3310)、クライアント装置180のタイプが識別される(処理3312)。処理3314では、その装置タイプが想定されているかどうかが判定される。
クライアント装置タイプがまだ想定されていないものであれば(処理3314)、新しいストリームカテゴリが作成され(処理3320)、対応する純ビデオ信号420がその装置タイプに適応される(処理3322)。新しいストリームカテゴリが記録され(処理3324)、新しいストリームが生成され(処理3326)、その特定のクライアント装置に送信される(処理3330)。
その装置タイプが既に想定されている場合(処理3314)には、ストリームカテゴリが識別される(処理3316)。この時点では、クライアントは視聴の好みを示していなくてもよく、デフォルトの視聴選択肢が割り当てられてよい。識別された視聴領域に対応するストリームが既に生成されている場合(処理3326)には、そのストリームがその特定のクライアント装置に送信される(処理3330)。そうでない場合には、新しいストリームが生成され(処理3326)、その特定のクライアント装置に送信される(処理3330)。
図34は、クライアント装置180のタイプごとの視聴選択肢の数を示す、学習モジュール2725によって生成された一例示的テーブル3400を示す。D0、D1、…、D7と表される8つのクライアント装置タイプと、V0、V1、…、V5と表される6つの視聴選択肢とが想定されている。このテーブルは、装置タイプと、可動時間窓であってよい所定の時間窓にわたる視聴選択肢と、によって規定される各ストリームの選択数を蓄積してよい。
図34の例示的テーブルでは、D1と表されるクライアント装置を使用するクライアントに最も人気のある視聴選択肢は、(その時間窓の間に64回選択されている)視聴選択肢V3である。そこで、ユニバーサルストリーミングサーバ120において受信される、タイプD1のクライアント装置からの新しいサービス要求に対しては、まず視聴選択肢V3が割り当てられてよい。
従って、本発明は、共有型のクラウド演算ネットワーク内において割り当てられたハードウェア処理ユニット及びメモリ装置を使用して実装されうるサーバにおいて実装される信号ストリーミングの方法を提供している。方法は、信号を複数のクライアントにマルチキャストするプロセスと、信号のコンテンツを変更するための要求を特定のクライアントから受け取るプロセスと、変更済みの信号を生成するプロセスと、変更済みの信号をその特定のクライアントに送信するプロセスと、を有する。信号は、単一のカメラによって生成された、或いは、複数のカメラからのビデオ信号を組み合わせることによって生成された、パノラマビデオ信号を含むパノラママルチメディア信号から導出することができる。変更済みの信号は、部分カバレッジマルチメディア信号であってもよい。
変更済みの信号を生成するべく、方法は、デワープ済みのビデオ信号を生成するべく信号のビデオ信号コンポーネントをデワープするプロセスと、装置に固有のビデオ信号を生成するべくクライアント装置に対してデワープ済みのビデオ信号を適合させるプロセスと、を有する。装置に固有の信号は、クライアントの視聴の好みに対して適合させることができる。視聴の好みは、クライアントから受け取った要求内において記述されてもよく、或いは、クライアント装置タイプの固有の既定値に基づいたものであってもよい。
方法は、ストリーミングサービスを要求するべくサーバと通信しているクライアント装置の特性を取得するプロセスを有する。クライアント装置の特性及び視聴の好みの記録は、サーバにおいて維持されている視聴の好みデータベースに追加することができる。
本発明は、サーバにおいて実行される信号ストリーミングの方法を更に提供しており、この方法は、クラウド演算ネットワークのリソースを使用することにより、完全に又は部分に、実装することができる。サーバは、パノラママルチメディア信号を取得することができると共に、次いで、純ビデオ信号を生成するべく、パノラママルチメディア信号のビデオ信号コンポーネントを圧縮解除又はデワープすることができる。複数のクライアント装置のうちの所与のクライアント装置について、
(i)純ビデオ信号は、選択された視聴領域に対応する個別のコンテンツフィルタリング済みの信号を生成するべく、コンテンツフィルタリングされており、且つ、
(ii)クライアント装置に結び付けられたコンテンツフィルタリング済みの信号は、クライアント装置の特性に対してのみならず、サーバからターゲットクライアント装置までのネットワーク経路の特性に対しても、適合されている。
それぞれのクライアント装置は、プロセッサと、メモリ装置と、表示画面と、を有する。クライアント装置は、視聴の好みの通知をサーバに送信することができる。サーバは、クライアント装置に送信されるように、視聴の好みに対応する個々のコンテンツフィルタリング済みの信号を生成している。
サーバは、
(a)視聴の好みをクライアントの装置の特性に関係付けているデータを保持するプロセスと、
(b)複数のクライアント装置のそれぞれのクライアント装置ごとに既定の視聴の好みを判定するべく、保持されているデータを使用するプロセスと、
を更に実行することができる。
サーバは、ソースにおいて既にデワープ及び圧縮済みであるパノラマビデオ信号を取得することができると共に、次いで、純ビデオ信号を生成するべく、パノラマビデオ信号を圧縮解除することができる。この結果、変更済みの信号の組が生成され、この場合に、それぞれの変更済みの信号は、予め定義された部分カバレッジパターンの組のうちの1つの個別の部分カバレッジパターンに対応している。複数のクライアント装置から、それぞれの接続要求が好ましい部分カバレッジパターンを規定している接続要求を受け取った際に、サーバは、それぞれのクライアント装置ごとに、個々の好ましい部分カバレッジパターンに従って個々の変更済みの信号を判定する。特定のクライアント装置に結び付けられた個々の変更済みの信号は、特定のクライアント装置の特性と、特定のクライアント装置までのネットワーク経路の特性と、に適するように、更に適合させることができる。
図35は、信号コンテンツの変化及び性能メトリックに基づいたダウンストリーム信号のフローレート制御のプロセス3500を示している。サーバのフローコントローラは、2つのフロー制御選択肢のうちの1つを実装する。第1選択肢(選択肢0)においては、コンテンツフィルタリング済みのビデオ信号のエンコーダは、現時点の許容可能なフローレートを強制実施している(プロセス3542)。第2選択肢(選択肢1)においては、フローコントローラは、相対的に大きな経路容量を予約するべく、或いは、過剰な経路容量を解放するべく、サーバからクライアント装置までの経路を提供しているネットワークのコントローラと通信している(プロセス3544)。
サーバ120のネットワークインタフェース(1010、図10)は、好ましいビデオ信号コンテンツの定義のみならず、パフォーマンス測定値をも含みうるアップストリーム制御データをクライアント装置120から受け取っている。当技術分野において周知のように、第1装置を第2装置に接続している通信経路のトラフィック性能は、第1装置と第2装置との間において制御データを交換することにより、評価することができる。第1装置は、時刻及びデータパケットインデックスを送信する通知を送信することができる一方で、第2装置は、遅延ジッタ及び/又はデータパケット損失を検出できると共に、関連する情報を第1装置に伝達することができる。これに加えて、第2装置は、第2装置のデコーダにおける処理遅延及びパケットバッファ占有率を追跡することもできるが、このような情報は、第2装置における現時点の処理負荷を通知することになり、その結果、第1装置から第2装置までのフローレートの低減が必要になりうる。
ネットワークインタフェースは、アップストリーム制御データを受け取り、且つ、性能計測データを抽出している(プロセス3510)。フローコントローラは、当技術分野において周知の方法を使用して性能メトリックを判定している。パフォーマンス測定値は、サーバ120からクライアント装置において受け取られた搬送波信号から検出されたデータを保持するクライアント装置におけるデータ損失、遅延ジッタ、及びバッファの占有率を含むことができる。パフォーマンス測定値は、現時点の許容可能なフローレートに対応している。フローコントローラは、パフォーマンス測定値に基づいて性能メトリックを判定し(プロセス3512)、且つ、性能メトリックを個々の受け入れレベルと比較するが(プロセス3514)、個々の受け入れレベルは、既定値に基づいたものであってもよく、或いは、アップストリーム制御データにおいて定義されているものであってもよい。性能が受け入れ可能である場合には、コンテンツフィルタリング済みのビデオ信号が、現時点の許容可能なフローレート下においてエンコーディングされる(プロセス3550)。性能が受け入れ可能ではない場合には、フローコントローラは、相対的に低いフローレートにおいてコンテンツフィルタリング済みのビデオ信号をエンコーディングするように(選択肢0、プロセス3540、3542)、或いは、相対的に大きな容量の経路を取得するべくネットワークコントローラと通信するように(選択肢1、プロセス3540、3544)、エンコーダに対して命令する。第2選択肢は、トラフィック計測値がクライアント装置における受け入れ不能な処理負荷を通知している場合には、選択することができない。
又、ネットワークインタフェースは、完全コンテンツの純ビデオ信号の好ましい部分コンテンツを定義するデータをも抽出し、且つ、この情報をコンテンツフィルタに伝達している(プロセス3520)。コンテンツフィルタは、受け取った新しいコンテンツの定義に従ってコンテンツフィルタリング済みのビデオ信号を生成するべく、純ビデオ信号から新しいコンテンツフィルタリング済みの信号を抽出している(プロセス3522)。フローコントローラは、新しいコンテンツに対応する一時的なフローレート要件を判定している(プロセス3524)。一時的なフローレートが現時点の許容可能なフローレートを超過していない場合には(プロセス3526)、新しいコンテンツフィルタリング済みのビデオ信号が、許容可能なフローレート下においてエンコーディングされる(プロセス3550)。さもなければ、フローコントローラは、現時点の許容可能なフローレートの制約下においてエンコーディングされた新しいコンテンツフィルタリング済みのビデオ信号をエンコーディングするように(選択肢0、プロセス3540、3542)、或いは、相対的に大きな容量の経路を取得するべくネットワークコントローラと通信するように(選択肢1、プロセス3540、3544)、エンコーダに対して命令する。
図36は、フローコントローラ3610を有するユニバーサルストリーミングサーバ120のフロー制御システムを示している。フローコントローラは、プロセッサ3630と、好ましいフローレートを判定するモジュール3635を形成する命令を記憶しているメモリ装置と、を有する。モジュール3635は、図35のプロセス3500を実装することができる。サーバ-ネットワークインタフェース3625は、コンテンツ定義パラメータ3612と、パフォーマンス測定値3616と、を受け取っている。コンテンツフィルタ1120は、純ビデオ信号420(図4)を受け取り、且つ、クライアント装置と関連するオートマトン2545(図25)から受け取った要求されている部分コンテンツのコンテンツ定義パラメータ3612に従って部分コンテンツ信号3650を抽出している。モジュール3635は、好ましいフローレートを判定するべく、クライアント装置から受け取ったパフォーマンス測定値3616を使用している。エンコーダ3640は、好ましいフローレートにおいて部分コンテンツ信号をエンコーディングし、且つ、クライアント装置に送信されるように、圧縮済みの信号3660を生成している。エンコーダ3640は、コード変換器と、サーバ圧縮モジュール(図示されてはいない)と、を有する。
ユニバーサルストリーミングサーバ120においては、ソースからの受け取った信号は、オリジナルの完全コンテンツ信号を再生するべく、圧縮解除されてもよく、好ましくは、ソースは、損失なしの圧縮技法を使用して圧縮済みの信号を送信している。完全コンテンツ信号は、規定されたコンテンツ定義パラメータに従って部分コンテンツ信号を生成するべく、コンテンツフィルタ内において処理されている。部分コンテンツ信号の好ましいフローレートは、図41において更に詳述されているように、受信機のパフォーマンス測定値又はネットワークのパフォーマンス測定値に基づいて判定されている。従って、部分コンテンツ信号は、個別のクライアント装置に送信される、圧縮済みの部分コンテンツ信号を生成するように、エンコーディングされている。
図37は、図24のストリーミングシステム内における信号のコンテンツフィルタリングとフローレート適合の組み合わせられたプロセス3700を示している。ユニバーサルストリーミングサーバ120は、コンテンツ定義パラメータ及びパフォーマンス測定値の形態において、関連するオートマトン制御データをクライアントから継続的に受け取っている(プロセス3710)。クライアントからのコンテンツ定義パラメータが、コンテンツを変更するための要求を通知している場合には、コンテンツ定義パラメータは、コンテンツフィルタ1120まで導かれ(プロセス3720及び3760)、且つ、受け取ったクライアントの制御データが変更済みの信号コンテンツに対応することを保証するべく、人工的な遅延3770を課した後に、プロセス3710が起動される。そうではなくて、コンテンツ定義パラメータが、現時点のコンテンツの維持を通知している場合には、ユニバーサルストリーミングサーバは、好ましいフローレートを判定する(プロセス3730)。好ましいフローレートが、現時点のフローレートと同一であるか、或いは、現時点のフローレートからわずかな逸脱しか有していない場合には、動作は発生せず、且つ、プロセス3710に戻る(プロセス3740)。好ましいフローレートが現時点のフローレートと大幅に異なっている場合には、新しいフローレートがエンコーダ3640に伝達され(プロセス3740及び3750)、且つ、受け取ったクライアントの制御データが新しいフローレートに対応することを保証するべく、人工的な遅延3770の後に、プロセス3710が起動される。人工的な遅延は、ユニバーサルストリーミングサーバとクライアントの装置との間の往復遅延を超過しうるであろう。
図38は、ユニバーサルストリーミングサーバのコンテンツフィルタ1120を示している。コンテンツフィルタ1120は、プロセッサ3822と、純ビデオ信号420のデータブロックを保持するバッファ3826と、プロセッサに純ビデオ信号のバッファ処理されたデータブロックから部分コンテンツの更新済みのコンテンツ信号3860を抽出させるようにするソフトウェア命令を記憶しているメモリ装置3824と、を有する。部分コンテンツ信号のブロックは、バッファ3828内において記憶されている。プロセッサ3822は、コード変換モジュール及び/又は圧縮モジュールを含みうる後続の処理ステージへのバッファ3828内のデータの転送をもたらすソフトウェア命令を実行する。
従って、本発明は、ネットワークインタフェース1010と、コンテンツフィルタ1120と、フローコントローラ3610と、エンコーダ3640と、を有するユニバーサルストリーミングサーバ120を提供している。
ネットワークインタフェースは、パノラマ信号ソース110からのソースビデオ信号900、コンテンツ定義パラメータ3612、及びクライアント装置180からのパフォーマンス測定値3616を受け取るように構成されている。圧縮解除モジュール及びデワープモジュールを有するソース信号処理モジュール1024は、ソースビデオ信号900から純ビデオ信号420を生成している。純ビデオ信号420は、ソースにおいてキャプチャされた個別のシーンに対応する完全カバレッジ信号である。
コンテンツフィルタ1120は、コンテンツ定義パラメータ3612に従って純ビデオ信号420から更新済みのコンテンツ信号3860を抽出するように構成されている。コンテンツフィルタのプロセッサは、現時点のコンテンツ信号のサイズに対する更新済みのコンテンツ信号のサイズの比率を判定するように構成されている。
フローコントローラ3610は、ハードウェアプロセッサ3630に、パフォーマンス測定値及び現時点のコンテンツ信号のサイズに対する更新済みのコンテンツ信号のサイズの比率に基づいて部分カバレッジ信号の現時点の許容可能なフローレートを判定させるようにするフロー制御命令3635を記憶しているメモリ装置を有する。
エンコーダ3640は、コード変換器モジュール及び圧縮モジュールを有しており、且つ、現時点の許容可能なフローレート下において部分カバレッジ信号をエンコーディングするように構成されている。
フローコントローラ3610は、ユニバーサルストリーミングサーバ120とクライアント装置との間における必須フローレートと互換性を有する経路を取得するべく、ネットワークコントローラ(図示されてはいない)と通信するように構成されている。
フロー制御命令3635は、ハードウェアプロセッサに、現時点の許容可能なフローレートと先行する許容可能なフローレートとの間の差の通知を保持させるようにしている。差が、予め定義された閾値を超過している場合には、命令は、プロセッサが、受け取ったパフォーマンス測定値が現時点の許容可能なフローレートに対応することを保証するべく、予め定義されている遅延期間にわたって後続の許容可能なフローレートの判定のプロセスを遅延させるようにする。
コンテンツフィルタ1120は、個別のプロセッサ3822と、個別のプロセッサに純ビデオ信号420から更新済みのコンテンツ信号を抽出させるようにするコンテンツ選択命令3824を記憶している個別のメモリ装置と、を有する。第1バッファ3826は、完全カバレッジビデオ信号のデータブロックを保持している。第2バッファ3828は、更新済みのコンテンツ信号3860のデータブロックを保持している。
コンテンツ選択命令3824は、個別のプロセッサが、現時点の許容可能なフローレートを判定する際に使用されるように、完全コンテンツ信号のデータブロックのサイズ及び更新済みの信号の対応するデータブロックのサイズに基づいて現時点のコンテンツ信号のサイズに対する更新済みのコンテンツ信号のサイズの比率を判定するようにしている。
ユニバーサルストリーミングサーバは、個別のハードウェアプロセッサに、フレームサンプリング済みのビデオ信号1322(図13及び図15)を導出するべく、離隔したフレーム間隔において純ビデオ信号420をサンプリングさせるようにするフレームサンプリング命令を記憶しているメモリ装置を有するフレームサンプリングモジュール1320を更に有する。フレーム間隔は、フレームサンプリング済みのビデオ信号が、公称フローレートを超過しない一定のフローレートを有するように選択されており、且つ、この場合に、ネットワークインタフェースは、フレームサンプリング済みのビデオ信号をクライアントに送信するように更に構成されている。
コンテンツフィルタ1120は、完全コンテンツビデオ信号から異なる視聴領域に対応する予め選択されたコンテンツフィルタリング済みの信号の組を導出するように、構成することができる。連続的な時間窓を占有する圧縮されたコンテンツフィルタリング済みの信号の連続体を生成するべく、信号圧縮命令を記憶しているメモリ装置を有する圧縮モジュールを予め選択されたコンテンツフィルタリング済みの信号を圧縮するように構成することができる。ネットワークインタフェースは、圧縮されたコンテンツフィルタリング済みの信号の連続体をクライアント装置に送信し、予め選択されたコンテンツフィルタリング済みの信号の組のうちの好ましいコンテンツフィルタリング済みの信号の通知を受け取り、且つ、この通知をコンテンツフィルタに伝達するように、更に構成されている。
図39は、ストリーミングセッションを開始するべく、ユニバーサルストリーミングサーバ120において実行される初期プロセス3900を示している。ユニバーサルストリーミングサーバは、信号ソースからデワープされた圧縮済みの完全コンテンツ信号を受け取り(プロセス3910)、且つ、ソースにおいてキャプチャされた個別のシーンに対応する純ビデオ信号を生成するべく完全コンテンツ信号を圧縮解除している(プロセス3915)。サーバは、クライアント装置から接続要求を受け取っており(プロセス3920)、この要求は、信号の部分コンテンツのパラメータを含むことができる。コンテンツ定義パラメータが提供されていない場合には、既定のコンテンツ選択が使用される(プロセス3925、3930)。ユニバーサルストリーミングサーバのコンテンツフィルタは、既定のコンテンツ選択又は規定された部分コンテンツ選択に基づいて部分コンテンツ信号を抽出している(プロセス3940)。初期コンテンツ選択は、完全コンテンツであるものと設定することができる。抽出された信号のフローレートは、接続要求内において規定することができるが、このケースにおいては、ユニバーサルストリーミングサーバのエンコーダは、規定されているフローレートの制約下において信号をエンコーディングすることができる(プロセス3950及び3960)。さもなければ、既定のフローレートをエンコーダに提供することができる(プロセス3955)。圧縮されたエンコーディング済みの部分コンテンツ(又は、完全コンテンツ)信号は、ターゲットクライアント装置に送信される(プロセス3970)。
図40は、送信されたエンコーディング済みの信号のビデオ信号コンテンツ及びフローレートの適合型の変更方法4000を示している。ユニバーサルストリーミングサーバは、クライアント装置と関連するオートマトン(人物)から新しいコンテンツの好みを受け取っている(プロセス4010)。新しいコンテンツが現時点のコンテンツと同一である場合には(プロセス4020及び4050)、ユニバーサルストリーミングサーバのコンテンツフィルタは、その以前の設定を維持し、且つ、受け取った性能データに基づいた好ましいエンコーディングレートが判定される(プロセス4050、好ましいフローレートを判定するモジュール3635、図36)。信号は、好ましいエンコーディングレートにおいてエンコーディングされ(プロセス4060)、且つ、ターゲットクライアント装置に送信される(プロセス4070)。新しいコンテンツが現時点のコンテンツと異なっているとプロセス4020が判定した場合には、ユニバーサルストリーミングサーバのコンテンツフィルタは、純ビデオ信号から部分コンテンツ信号を抽出し(プロセス4020及び4030)、且つ、公称フローレートにおいて信号をエンコーディングする(プロセス4040)。圧縮されたエンコーディング済みの部分コンテンツ信号は、ターゲットクライアント装置に送信される(プロセス4070)。
図41は、受信機の状態及びネットワーク経路の状態に関連するパフォーマンス測定値に基づいて信号の好ましいエンコーディングレートを判定する基準4100を示している。いくつかのクライアント装置に対してサービスしているユニバーサルストリーミングサーバは、クライアント装置からのクライアントの受信機の状態に関連する性能データと、ユニバーサルストリーミングサーバからクライアントの受信機までのネットワーク経路に関連する性能データと、受け取っている。ユニバーサルストリーミングサーバに結合されたモジュールが、受信機の状態に関連するプライマリメトリックと、ネットワーク経路状態に関連するセカンダリメトリックと、を判定している。下部境界及び上部境界によって定義される受け入れインターバルが、それぞれのメトリックごとに規定される。これらのメトリックは、個々の上部境界超の値が受け入れ不能な性能を通知する一方で、個々の下部境界未満の値が予想よりも良好な性能を通知するように、定義されている。メトリックは、値が個々の受け入れインターバルの下部境界未満である場合の「-1」という状態、値が受け入れインターバルの上部境界超である場合の「1」という状態、並びに、これら以外の場合、即ち、値が下部及び上部境界を含む受け入れインターバル内にある場合の、「0」という状態、という3つの状態のうちの1つにあるものと見なすことができる。「メトリック状態」及び「メトリックインデックス」という用語は、本明細書において同義的に使用されている。
受信機の状態及びネットワーク経路の状態は、相互に独立したものではない。ネットワーク経路は、遅延ジッタ及び/又はデータ損失に起因して、受信機へのデータフローに対して影響を及しうる。好ましいエンコーディングレート(従って、フローレート)は、以下の規則(i)~(iv)に従って判定することができる。
(i)いずれかのプライマリメトリックが、個々の予め定義された受け入れインターバルから逸脱しており、これにより、受け入れ不能な受信機性能を通知している場合には、即ち、プライマリメトリックが、予め定義されている受け入れインターバル超である場合には、新しい公正に低減された許容可能なフローレート(プロセス4120)が、セカンダリメトリックの値とは無関係に、プライマリメトリックに基づいて、判定される。
(ii)プライマリメトリックのいずれもが予め定義された受け入れインターバル超ではなく、且つ、いずれかのセカンダリメトリックが個々の受け入れインターバル超である場合には、新しい公正に低減された許容可能エンコーディングレート(プロセス4130)が、セカンダリメトリックに基づいて判定される。
(iii)それぞれのプライマリメトリックが個々の受け入れインターバル未満であり、且つ、それぞれのセカンダリメトリックが個々の受け入れインターバル未満である場合には、新しい相対的に大きな許容可能なフローレート(プロセス4140)が、プライマリ及びセカンダリメトリックに基づいて公正に判定されてもよい。
(iv)上述の(i)、(ii)、又は(iii)のうちのいずれもが適用されない場合には、現時点のフローレート(エンコーディングレート)が、不変の状態において留まる(4110)。
図42は、図41の基準に基づいて信号の好ましいエンコーディングレートを判定する方法を示している。方法は、図40のプロセス4050を詳述している。方法は、同一のビデオ信号のコンテンツ選択(視聴領域選択)内において適用される、即ち、ビデオ信号のコンテンツの変化に対する要求が受け取られる時点まで現在のビデオ信号のコンテンツが不変の状態において留まることを要するとユニバーサルストリーミングサーバが判定した際に、適用される。
ユニバーサルストリーミングサーバのコントローラは、クライアントの受信機と関連する性能データに基づいてプライマリメトリックを判定している(プロセス4210)。いずれかのプライマリメトリックが個々の受け入れインターバル超である場合には、公正に低減された許容可能なフローレートが、プライマリメトリックに基づいて判定され(プロセス4220及び4225)、且つ、個々のエンコーダに伝達される(プロセス4280)。そうではなくて、プライマリメトリックのいずれもが、その個々の受け入れインターバル超ではない状態においては、ユニバーサルストリーミングサーバのコントローラは、ユニバーサルストリーミングサーバからクライアント装置までのネットワーク経路の状態に関連する性能データに基づいて、セカンダリメトリックを判定する(プロセス4220及び4230)。
いずれかのセカンダリメトリックが、その予め定義された受け入れインターバル超である場合には、公正に低減された許容可能なフローレートが、セカンダリメトリックに基づいて判定され(プロセス4240及び4245)、且つ、個々のエンコーダに伝達される(プロセス4280)。そうではなくて、それぞれのプライマリメトリックがその予め定義された受け入れインターバル未満であり、且つ、それぞれのセカンダリメトリックがその予め定義された受け入れインターバル未満である場合には、プライマリ及びセカンダリメトリックに基づいて新しいエンコーディングレートが判定され(プロセス4250及び4260)、且つ、個々のエンコーダに伝達される(プロセス4280)。いずれかのプライマリメトリック又はいずれかのセカンダリメトリックが、その個々の受け入れインターバル内にある場合には、現時点のエンコーディングレートが維持される(プロセス4255)。
従って、本発明は、フローレート調節下にあるストリーミングシステム内における信号ストリーミングの方法を提供している。方法は、少なくとも1つのハードウェアプロセッサを有するサーバ120において、純ビデオ信号420が導出されるソースビデオ信号900を取得するステップと、純ビデオ信号の派生物をクライアント装置180に送信するステップと、サーバ120のコントローラ3610において、完全カバレッジビデオ信号の好ましい部分カバレッジを定義するコンテンツ選択パラメータ3612をクライアント装置から受け取るステップと、を有する。サーバのコンテンツフィルタ1120が、コンテンツ選択パラメータ3612に従って、純ビデオ信号420から部分カバレッジビデオ信号3650を抽出している。
サーバは、部分カバレッジビデオ信号をクライアント装置180に送信している。部分カバレッジビデオ信号に関連するパフォーマンス測定値3616を受け取った際に、コントローラ3610は、パフォーマンス測定値に基づいて部分カバレッジビデオ信号の更新済みの許容可能なフローレートを判定している。エンコーダ3640は、更新済みの許容可能なフローレートに従って部分カバレッジビデオ信号をエンコーディングしている。エンコーダ3640は、クライアント装置の特性と互換性を有するコード変換済みの信号を生成するべく、部分カバレッジビデオ信号をコード変換し、且つ、コード変換済みの信号を圧縮している。
コントローラ3610は、現時点の許容可能なフローレートの制約下において部分カバレッジビデオ信号をエンコーディングするように、エンコーダ3640に対して命令することができる。或いは、この代わりに、コントローラは、サーバ120とクライアント装置180との間における更新済みの許容可能なフローレートと互換性を有するダウンストリームネットワーク経路を取得するべく、ネットワークコントローラ(図示されてはいない)と通信することもできる。
純ビデオ信号の派生物は、予め定義されている公称フローレートを超過しない一定のフローレートのフレームサンプリング済みのビデオ信号1322(図13、図15)として生成することができる。或いは、この代わりに、派生物は、純ビデオ信号420から導出された、予め定義された公称フローレート内の、圧縮済みのビデオ信号1342(図13)として、生成されてもよい。又、純ビデオ信号の派生物は、連続的な時間窓を占有する、且つ、純ビデオ信号から導出された、圧縮されたコンテンツフィルタリング済みのビデオ信号の連続体1364(図13)として生成されてもよい。
パフォーマンス測定値は、クライアント装置の受信機における状態と、サーバからクライアント装置までのダウンストリームネットワーク経路の状態と、に関連している。コントローラ3610は、受信機の状態に関連するパフォーマンス測定値に基づいてプライマリメトリックを判定している。少なくとも1つのプライマリメトリックが個々の受け入れインターバル超である場合には、コントローラ3610は、プライマリメトリックに基づいて現時点の許容可能なフローレートを公正に低減する(図41)。そうではなくて、プライマリメトリックのいずれもが個々の受け入れインターバル超ではない場合には、コントローラ3610は、ダウンストリームネットワーク経路に関連するパフォーマンス測定値に基づいてセカンダリメトリックを判定する。少なくとも1つのセカンダリメトリックが個々の受け入れインターバル超である場合には、コントローラは、セカンダリメトリックの値に基づいて信号の現時点のフローレートを公正に低減する(図41)。
それぞれのプライマリメトリックが個々の受け入れインターバル未満であり、且つ、それぞれのセカンダリメトリックが個々の受け入れインターバル未満である場合には、コントローラは、プライマリ及びセカンダリメトリックに基づいて現時点の許容可能なフローレートを公正に増大させる(図41)。
図43は、多数のクライアントに対してサービスしているユニバーサルストリーミングサーバ120内におけるコンテンツ選択の冗長的処理を低減する方法を示している。ユニバーサルストリーミングサーバ120において完全カバレッジ信号を受信した際に(プロセス4310)、ユニバーサルストリーミングサーバのコントローラは、生成された部分カバレッジ信号(コンテンツフィルタリング済みの信号)のパラメータを保持するためのレジスタを生成している(プロセス4320)。当初、レジスタは、空の状態となろう。圧縮済みの完全カバレッジ信号は、サーバにおいて、圧縮解除され、且つ、ソースにおいてデワープされていない場合には、デワープされる。コントローラは、特定のクライアント装置から、好ましい視聴領域を定義するパラメータを受け取っている(プロセス4330)。コントローラは、予め生成された部分カバレッジ信号の存在又は不存在を特定するべく、レジスタを検査している(プロセス4340)。
マッチングする部分カバレッジ信号が既に生成されているとレジスタコンテンツが通知している場合には、コントローラは、マッチングする部分カバレッジ信号に対するアクセスを提供する(プロセス4350及び4360)。部分カバレッジ信号は、更なる処理のためにエンコーダまで導かれる(プロセス4390)。部分カバレッジ信号は、すべてのエンコーディング済みの信号が同一の視聴領域に対応する状態において、異なるフローレートのエンコーディング済みの信号を生成するべく、異なる許容可能なフローレート下において動作している複数のエンコーダまで導くことができる。エンコーダは、コード変換モジュールと、サーバ圧縮モジュールと、を有する。或いは、この代わりに、部分カバレッジ信号は、すべてのエンコーディング済みの信号が同一の視聴領域に対応する状態において、異なるフローレートのエンコーディング済みの信号を順番に生成するべく、1つのエンコーダに対して提示されてもよい。
マッチングする部分カバレッジ信号が見出されない場合には、コントローラは、好ましい視聴領域を定義する新しいコンテンツ定義パラメータに従って新しい部分カバレッジ信号を抽出するべく(プロセス4370)、完全カバレッジ信号をコンテンツフィルタ1120(図36)まで導いている。新しいコンテンツ定義パラメータは、将来の使用のためにレジスタに追加されており(プロセス4380)、且つ、新しい部分カバレッジ信号は、更なる処理のためにエンコーダまで導かれている。
従って、本発明は、信号ストリーミングの方法を提供しており、この方法は、
完全カバレッジ信号をサーバにおいて受け取るステップと、
ハードウェアプロセッサを有するコントローラにおいて、
完全カバレッジ信号から導出された部分カバレッジ信号の識別子を保持するレジスタを形成するステップと、
視聴領域を定義する新しいコンテンツ定義パラメータをサーバに結合されているクライアント装置から受け取るステップと、
新しいコンテンツ定義パラメータに対応したマッチングする部分カバレッジ信号の存在を特定するべくレジスタを試験するステップと、
を有する。
マッチングする部分カバレッジ信号が見出された場合には、マッチングする部分カバレッジ信号は、クライアント装置に送信される。さもなければ、完全カバレッジ信号は、新しいコンテンツ定義パラメータに従って新しい部分カバレッジ信号を抽出するべく、コンテンツフィルタまで導かれる。新しい部分カバレッジビデオ信号は、エンコーディング済みのビデオ信号を生成するべく、エンコーディングされ、且つ、エンコーディング済みのビデオ信号のビットレートが判定される。新しいコンテンツ定義パラメータは、レジスタに追加される。
エンコーディングのプロセスは、コード変換済みのビデオ信号を生成するべく新しい部分カバレッジビデオ信号をコード変換するステップと、次いで、予め定義された公称フローレートの制約下においてコード変換済みのビデオ信号を圧縮するステップと、を有する。
サーバは、クライアント装置の受信機における状態と、サーバから受信機までのネットワーク経路の状態と、に関連するパフォーマンス測定値をクライアント装置から受け取っている。コントローラは、パフォーマンス測定値及び許容可能なフローレートに基づいて性能メトリックを判定している。許容可能なフローレートは、対応する予め定義された閾値及びエンコーディング済みのビデオ信号のビットレートからの性能メトリックの逸脱の関数として判定されている。
エンコーディングのプロセスは、視聴領域に対応する異なるフローレートのエンコーディング済みの信号を生成するべく、新しい部分カバレッジ信号を異なる許容可能なフローレート下において動作している複数のエンコーダまで更に導くことができる。
シームレスなコンテンツの変更
ユニバーサルストリーミングサーバ120は、複数のパノラママルチメディアソース110にアクセスできると共に(図2)、処理され、且つ、様々なクライアント装置180に伝達されるように、マルチメディア信号を同時に取得することができる。それぞれのマルチメディア信号は、ソースビデオ信号900(図9、図17、図23、及び図28)を含んでいてもよく、この信号は、未加工の信号312、補正済みの信号322、圧縮済みの信号342、又はコンパクトな信号343(図3)であってもよい。ソースビデオ信号は、異なる視聴領域に対応する部分カバレッジビデオ信号を生成するべく、コンテンツ定義パラメータの異なる組に従ってコンテンツフィルタリングされうる完全カバレッジビデオ信号である。ソースビデオ信号900は、ソースにおいてキャプチャされた個々のシーンに対応する純ビデオ信号420を生成するべく、サーバにおいて圧縮解除及び/又はデワープすることができる。サーバ120は、図17、図19、図28、及び図29において示されているように、複数のコンテンツフィルタ1120を利用することができる。
サーバ120は、コンテンツフィルタ1120を有する信号編集モジュール460、コード変換モジュール1140、及び圧縮モジュール1160(図11)を使用することにより、それぞれのアクティブなクライアント装置に固有のコンテンツフィルタリング済みのビデオ信号を提供している。サーバは、新しい視聴領域に対応する新しいコンテンツ定義パラメータを含むアップストリーム制御信号を特定のクライアント装置180から受け取ることができる。1つの視聴領域から別のものへのシームレスな遷移を提供するべく、サーバは、特定の信号編集モジュール460-Aが現時点のビデオ信号コンテンツの処理に関与している際に、自由な信号編集モジュール460-Bが、新しいコンテンツ定義パラメータ内において規定されているビデオ信号コンテンツを処理し、次いで、特定の信号編集モジュール460-Aを置換し、その結果、信号編集モジュール460-Aが自由な信号編集モジュールとなりうるように、いくつかのスペア信号編集モジュール460を提供することができる。
図44は、1つの視聴領域から別のものへのシームレスな遷移を可能にするためのビデオ信号の一時的な同時コンテンツフィルタリングを示している。純ビデオ信号420は、460(0)~460(7)として個々に識別されている8つの信号編集モジュール460に対して提示されている。6つの異なるコンテンツフィルタリング済みの信号が、少なくとも6つのクライアント装置180に分配されるように、純ビデオ信号から生成されている。インデックス0、1、2、3、5、及び7という信号編集モジュール460が、個々のコンテンツフィルタリング済みのビデオ信号を同時に生成している。上述の信号編集モジュールにおいて生成されたデータブロックは、インデックス2、0、4、1、3、及び5というバッファ4420にそれぞれ導かれている。マルチプレクサ4450が、バッファから読み取ったデータブロックを組み合わせており、且つ、結果的に得られた複数のコンテンツフィルタリング済みのストリーム4460が、ネットワークを通じて個々のクライアント装置に分配されている。
図44の例においては、信号編集モジュール460(2)において処理されたコンテンツフィルタリング済みのビデオ信号を受け取ったクライアント装置180は、新しいコンテンツ定義パラメータを提供している。ハードウェアプロセッサを有するコントローラ(図示されていない)は、新しいコンテンツ定義パラメータに従って新しいコンテンツフィルタリング済みのビデオ信号を生成するように、現在自由である信号編集モジュール460(6)に対して命令する。束の間の期間の後に、信号編集モジュール460(6)は、新しいコンテンツフィルタリング済みのビデオ信号のデータブロックをバッファ4420(4)まで導くことになり、且つ、信号編集モジュール460(2)は、接続解除され、且つ、スペア信号編集モジュールとなることになろう。
図45は、ユニバーサルストリーミングサーバ120をネットワークに結合するステップを示している。ユニバーサルストリーミングサーバ120は、その全体をクラウド演算ネットワーク内において実装できると共に、クライアント装置180との間の通信も、クラウド演算ネットワーク内において実行することができる。或いは、この代わりに、生成されたクライアントに結び付けられたストリーム940(図9)は、別のネットワークのルータ/スイッチ4540を通じてクライアント装置にルーティングすることもできる。ルータ-スイッチ4540は、入力ポート4541及び出力ポート4542を通じて、多数のその他のサーバ又はその他のルータ-スイッチに接続することができる。
従って、サーバは、共有されたネットワークを通じて複数のビデオソース及び複数のクライアント装置と通信するべくネットワークアクセスポートを有する。サーバは、物理的プロセッサ及び関連するメモリ装置が需要に応じて動的に割り当てられる共有型のクラウド演算ネットワーク内において部分的又は全体的に設置することができる。
要すれば、開示されているユニバーサルストリーミングサーバは、異なるタイプの複数のパノラママルチメディアソース及び異なる能力のクライアント装置との間においてやり取りするように構成されている。サーバは、パノラママルチメディアソースと制御信号を交換することにより、マルチメディア信号を、マルチメディア信号の記述子、並びにソースにおいて実施された信号処理を示すデータと一緒に取得することを可能にしてよい。サーバは、クライアント装置と制御信号を交換することにより、完全カバレッジ(達成可能カバレッジ)パノラマビデオ信号の信号サンプルの配信を調整し、クライアント装置における視聴者から好ましい視聴領域の識別子を取得してよい。
サーバは、クライアントの視聴の好みをキャプチャする幾つかの方法を実施するように考案される。一方法によれば、達成可能空間カバレッジに対応する信号サンプルがクライアント装置に送信され、クライアント装置における視聴者が、好ましい視聴領域の識別子をサーバに送信してよい。そして、サーバは、対応するコンテンツフィルタリング済みのビデオ信号を送信する。サーバは、つながっている各クライアント装置にソフトウェアモジュールを配信することにより、この処理を可能にする。別の方法によれば、サーバは、様々な視聴領域に対応する幾つかのコンテンツフィルタリング済みのビデオ信号を各クライアント装置にマルチキャストしてよい。コンテンツフィルタリング済みのビデオ信号は、完全カバレッジ(達成可能カバレッジ)パノラマビデオ信号から抽出される。クライアント装置における視聴者は、それぞれの選択結果を個別にシグナリングしてよい。サーバは、冗長な処理を無くすためにストリーミング制御テーブル(図32)を使用してよい。
パノラマビデオ信号は、クライアント装置と互換性を有するコード変換済みの信号を生成するべく、取得され、且つ、コード変換される。次いで、コード変換済みの信号の信号サンプルは、クライアント装置に送信される。好ましい視聴領域の記述子をクライアント装置から受け取った際に、コード変換済みの信号のコンテンツは、好ましい視聴領域に対応するコンテンツフィルタリング済みの信号を生成するべく、編集される。コンテンツフィルタリング済みの信号、或いは、コンテンツフィルタリング済みの信号の圧縮された形態が、信号サンプルの代わりに、クライアント装置に送信される。
パノラマビデオ信号を取得するステップは、サーバからパノラママルチメディアソースまでの接続を確立するプロセスと、ソースにおいてパノラマビデオ信号に適用されたいずれかの信号処理の通知と共にパノラマビデオ信号を含むマルチメディア信号を要求するプロセスと、この信号を受け取るプロセスと、を有する。取得されたパノラマビデオ信号は、ソースにおいて実行されたプロセスの通知に従って、サーバにおいて圧縮解除及び/又はデワープすることができる。信号サンプルは、コード変換済みの信号の離隔したフレームを有するフレームサンプリング済みの信号であってもよい。或いは、この代わりに、信号サンプルは、コード変換済みの信号の圧縮された形態であってもよい。
図19、図28、図29、及び図43には、多数のクライアントに対してサービスしているユニバーサルストリーミングシステムにおける効率的なビデオ信号コンテンツ選択用の構成について記述及び図示されている。図43の信号ストリーミングの方法は、
完全カバレッジ信号をサーバ120において受け取るステップ(プロセス4310)と、
ハードウェアプロセッサを有するコントローラにおいて、
完全カバレッジ信号から導出された部分カバレッジ信号の識別子を保持するレジスタを形成するステップ(プロセス4320)と、
サーバ120に結合されたクライアント装置180から、視聴領域を定義する新しいコンテンツ定義パラメータを受け取るステップ(プロセス4330)と、
新しいコンテンツ定義パラメータに対応したマッチングする部分カバレッジ信号の存在を特定するように、レジスタを試験するステップ(プロセス4340)と、
を有する。
マッチングする部分カバレッジ信号が見出された場合には(プロセス4350及び4360)、コントローラは、クライアント装置への送信の前に、マッチングする部分カバレッジ信号をエンコーダまで導いている(プロセス4390)。マッチングする部分カバレッジ信号が見出されない場合には、コントローラは、新しいコンテンツ定義パラメータに従って、新しい部分カバレッジ信号を抽出するべく(プロセス4370)、完全カバレッジ信号をコンテンツフィルタまで導いている(プロセス4350)。
新しい部分カバレッジビデオ信号は、クライアント装置の特性と互換性を有するコード変換済みのビデオ信号を生成するべく、コード変換する必要がありうる。コード変換済みのビデオ信号は、予め定義された公称フローレート下において更に圧縮することができる。コントローラは、エンコーディング済みのビデオ信号のビットレートを判定し、且つ、レジスタ内において新しいコンテンツ定義パラメータを挿入している(プロセス4380)。
方法は、クライアント装置の受信機の状態と、サーバから受信機までのネットワーク経路の状態と、に関連するパフォーマンス測定値をクライアント装置から受け取るステップを更に有する。コントローラは、パフォーマンス測定値に基づいて性能メトリックを判定している。コントローラは、対応する予め定義された閾値(図41)及びエンコーディング済みのビデオ信号のビットレートからの性能メトリックの逸脱の関数として、許容可能なフローレートを判定する。
新しい部分カバレッジ信号は、異なるクライアント装置に送信される、同一の視聴領域に対応するが、異なるフローレート及び/又は異なるフォーマットを有する、エンコーディング済みの信号を生成するべく、異なる許容可能なフローレート下において動作している複数のエンコーダまで導くことができる。
上述の各処理を各ハードウェアプロセッサに実施させる、プロセッサ実行可能命令は、プロセッサ可読媒体、例えば、フロッピーディスク、ハードディスク、光ディスク、フラッシュROM、不揮発性ROM、又はRAMに記憶されてよい。様々なプロセッサ、例えば、マイクロプロセッサ、デジタル信号プロセッサ、ゲートアレイなどが使用されてよい。
図46は、選択的なコンテンツブロードキャストのための従来のシステム4600を示す。複数の信号ソース4610は、イベントの生中継のために配置されている。各信号ソース4610は、人4612によって操作され、送信機4616に結合されているカメラ4614を備える。信号ソース4610からの信号は、伝送媒体4620を介して放送局に伝達される。放送局での受信機4630は、ベースバンド信号4640を取得する。受信機4630は、それぞれが個々の信号ソース4610で生成されたベースバンド信号4640を搬送するための複数の出力チャネルを有する。それぞれの取得されたベースバンド信号は、複数の表示装置の各ディスプレイ装置4650に供給される。手動動作の視聴選択ユニット4660は、表示装置4650に供給されるベースバンド信号のうちの1つのベースバンド信号を選択する。視聴者4662は、全ての表示を観測し、セレクタ(「スイッチ装置」)4664を使用して、好ましいベースバンド信号4640を送信機4680に導く。送信機4680は、アンテナ又はケーブル4690を介して伝送媒体に結合される。ベースバンド信号の圧縮及び圧縮解除を実行するために使用される、当該分野で周知のエンコーダ及びデコーダなどのコンポーネントが、図46において省略される。
図47は、マルチメディア信号のオペレータ定義のコンテンツをブロードキャストするための装置を示す。パノラマ信号ソース4710は、パノラママルチメディア信号を含む変調済みの搬送波ソース信号4712を生成する。パノラママルチメディア信号は、4πカメラからの4πビデオ信号コンポーネント、及び、カメラ回路及び/又は別の装置(図示されてはいない)によって生成されうる、オーディオ及びテキストコンポーネントなどのその他のコンポーネントを含む。カメラによって提供される未加工のビデオ信号312(図3)は、本来的にワープされてよい。ソース処理ユニット4714は、
未加工の信号をデワープして補正済みの信号322を生成する(図3)ことと、
デワープすることなく未加工の信号を圧縮して、宛先で圧縮解除及びデワープされるであろう圧縮済みの信号342を生成することと、
未加工の信号をデワープ及び圧縮して、宛先で圧縮解除されるであろうコンパクトな信号343を生成することと
を含むプロセスを実行してよい。
ソース処理ユニット4714は、任意の信号プロセス(デワープ/圧縮)が実行されたか否かを示す信号記述データを更に挿入してよい。
ソース処理ユニット4714は、巡回ビデオフレーム数を提供するためのモジュール4715を更に含んでよい。ここで、フレームの順番が示されうる。例えば、8ビットの単一バイトを使用して順番をマークすることによって、フレームは、0から255として巡回的にインデックス付けされるであろう。このインデックスは、コンテンツフィルタリングを容易にする。
広帯域送信機4716は、信号を放送設備に伝達する前に、コンテンツフィルタリングのために処理されたマルチメディア信号を伝送媒体4718に沿ってコンテンツセレクタ4740に伝送する。
取得モジュール4720は、変調済みの搬送波ソース信号4712から純マルチメディア信号4730及び信号記述子4732を生成する。純マルチメディア信号4730は、カメラによってキャプチャされた画像を表す純ビデオ信号を含む。信号記述子4732は、パノラマ信号ソース4710で実行されるプロセスを識別する。純マルチメディア信号が、図50を参照して以下で説明されるように、コンテンツセレクタ4740に渡され、コンテンツフィルタリング済みの信号4764を生成する。コンテンツセレクタ4740は、バーチャルリアリティ(VR)ヘッドセット4750及びコンテンツフィルタ4760を含む。オペレータ4725は、VRヘッドセットを使用して、ターゲット視聴者に適していると判定されたコンテンツを選択する。オペレータは、VRヘッドセットの内部ディスプレイ及び/又は外部ディスプレイ4770を頼りにしてよい。
図48は、変調済みの搬送波ソース信号4712を受信し、オペレータ定義のコンテンツフィルタリング済みのマルチメディア信号及び複数の視聴者定義のコンテンツフィルタリング済みのマルチメディア信号を生成するように構成された、第1の統合されたブロードキャスト及びストリーミングシステム4800を示す。
4πマルチメディアベースバンド信号が、搬送波信号を変調して変調済みの搬送波ソース信号4712を生成するマルチメディア信号ソース4710(図47)で生成される。受信した変調済みの搬送波ソース信号4712が、ブロードキャストサブシステム4804及びストリーミングサブセクション4808に同時に導かれる。
中継器4810は、変調済みの搬送波ソース信号4712を改善してよく、伝送媒体4812を介して改善された搬送波信号をストリーミング装置4820に導いてよい。ストリーミング装置4820は、取得モジュール4720-B及びユニバーサルストリーミングサーバ120を備える。ユニバーサルストリーミングサーバ120は、図10、図28及び図29参照して前述のように、複数のクライアント装置180からネットワーク150を介して視聴の好みの指示を受信し、クライアント別マルチメディア信号を提供する。
取得モジュール4720-Aは、イベントのフィールドで、変調済みの搬送波ソース信号4712からキャプチャされたコンテンツに対応する純マルチメディア信号4730を生成する。純マルチメディア信号4730は、放送設備に伝達されるコンテンツフィルタリング済みの信号4764を継続的に抽出するコンテンツセレクタ4740に導かれる。ブロードキャストされたコンテンツフィルタリング済みの信号4764は、圧縮モジュール4862で圧縮されて、それぞれ変調搬送波をチャネル4880を介して放送局に、及び/又はチャネル4890及びネットワーク150を介してユニバーサルストリーミングサーバ120に伝送するために、送信機4870に供給される圧縮されたコンテンツフィルタリング済みの信号4864を生成してよい。ユニバーサルストリーミングサーバ120は、視聴領域の好みを指定していないクライアント180のためのデフォルトとしてブロードキャストされたマルチメディア信号を提供してよい。
図49は、パノラママルチメディア信号ソースから受信した変調済みの搬送波ソース信号4712から純マルチメディア信号を復元するための取得モジュール4720を示す。純マルチメディア信号は、純ビデオ信号及び別のマルチメディアコンポーネントを含む。図3に示されるように、マルチメディアソースから伝送されたベースバンド信号は、未加工の信号312、純マルチメディア信号である補正された(デワープされた)信号322、圧縮された未加工の信号342、又は、コンパクトな信号(デワープされて圧縮された)343であってよい。従って、受信した変調済みの搬送波ソース信号4712は、4つのベースバンド信号312、322、342及び343のうちの1のベースバンド信号を搬送してよい。
受信機4940は、変調済みの搬送波ソース信号4712を復調し、ソースマルチメディア信号4943及びソースで実行されるプロセスを識別する信号記述子4732を生成する。入力セレクタ4946は、取得モジュールの出力への様々な経路にソースマルチメディア信号4943を導く。出力セレクタ4947は、入力セレクタ4946と同期され、それを補完する。
受信機4940は、
(a)純マルチメディア信号4730を生成するために、デワープモジュール320を含む純信号ジェネレータ4950-Aに供給される未加工の信号312の複製、
(b)純マルチメディア信号4730である(デワープされた)補正済みの信号322、
(c)純マルチメディア信号4730を生成するために、圧縮解除モジュール350及びデワープモジュール320を含む純信号ジェネレータ4950-Bに供給される圧縮済みの信号342、又は
(d)純マルチメディア信号4730を生成するために、圧縮解除モジュール350を含む純信号ジェネレータ4950-Cに供給される(デワープされて圧縮された)コンパクトな信号343
を生成する。
図50は、バーチャルリアリティのヘッドセット(VRヘッドセット)4750及びコンテンツフィルタ4760を含む、ブロードキャストのためのコンテンツ選択の装置を示す。VRヘッドセットは、少なくとも1つのプロセッサ、ストレージ媒体、及び凝視追跡メカニズムを含む。
コンテンツセレクタ(4740-A)の第1の実装において、コンテンツフィルタ4760Aは、分離したハードウェアエンティティであり、純マルチメディア信号4730は、VRヘッドセット4750及びコンテンツフィルタ4760Aの両方に供給される。コンテンツフィルタ4760Aは、個別のプロセッサ及び低レイテンシのVRヘッドセット4750を使用するオペレータの頭又は目の動きに厳密に対応する適応型の空間カバレッジで純マルチメディア信号からフィルタリング済みのマルチメディア信号を抽出するためのモジュールを構成するプロセッサ可読命令を記憶するメモリ装置を備える。制御信号4752は、空間カバレッジを定義するパラメータをVRヘッドセット4750からコンテンツフィルタ4760Aに伝達する。コンテンツフィルタ4760Aは、ブロードキャストを対象としているコンテンツフィルタリング済みの信号4764を生成する。コンテンツフィルタリング済みの信号4764は、外部ディスプレイ5090を使用して表示されてよい。
コンテンツセレクタ(4740-B)の第2の実施において、コンテンツフィルタ4760BがVRヘッドセット4750に埋め込まれる。ここで、フィルタリング済みのマルチメディア信号を抽出するためのプロセッサ可読命令は、VRヘッドセットのメモリ装置に存在する。従って、コンテンツフィルタリング済みの信号がVRヘッドセット4750の出口で提供される。
図51は、パノラマカメラ及びVRヘッドセットを利用した選択的なコンテンツブロードキャストのための第1のブロードキャストサブシステム5100を示す。複数の信号ソース4610(図46)を配置する代わりに、単一の、場合によっては無人のパノラマ信号ソース4710がイベントをカバーするために使用されてよい。4πカメラ310は、視聴をキャプチャし、広帯域送信機4716に直接供給されうる未加工の信号312を生成する。或いは、この代わりに、図3に示されるように、未加工の信号は、補正された(デワープされた)信号322、圧縮された未加工の信号342、又は(デワープされて圧縮された)コンパクトな信号343を選択的に生成するソース処理ユニット4714に供給されてよい。ソース処理ユニット4714の出力は、広帯域送信機4716に供給される。
図3に示されるように、広帯域送信機4716は、変調済みの搬送波ソース信号4712を、伝送媒体4718を介して、受信機4940、監視設備5120に存在するプロセッサ、及び、プロセッサにデワープ及び/又は圧縮解除の機能を実行させるプロセッサ可読命令を記憶するメモリ装置を備えるハードウェアエンティティである取得モジュール4720に送信する。取得モジュールは、VRヘッドセット4750及びコンテンツフィルタ4760に供給される純マルチメディア信号4730(図50)を生成する。純マルチメディア信号4730は、VRヘッドセットが内部ディスプレイユニットを有していない、又は、好ましいディスプレイを提供しない場合、パノラマディスプレイ装置4770に更に供給される。上述のように、視聴選択ユニット4740は、イベントのテレビ視聴者に関心があると判定されたパノラマディスプレイの視聴を追跡するためにオペレータ4725が着用するVRヘッドセット4750を備える。
コンテンツフィルタ4760とやり取りする低レイテンシのVRヘッドセット4750は、オペレータの変更した視聴角度に対応するコンテンツフィルタリング済みのマルチメディア信号4764を生成する。コンテンツフィルタリング済みのマルチメディア信号は、補助表示装置5090及び圧縮モジュール4862に供給されてよい。圧縮モジュールの出力信号4864は、送信機4870に供給されて、チャネル4880に沿って放送局に、及び、-任意に-チャネル4890に沿ってユニバーサルストリーミングサーバ120に送信される搬送波信号を変調する。
図51のブロードキャストサブシステムにおいて、監視設備5120に存在する、好ましくは、パノラマ信号ソース4710から短距離に位置するコンテンツセレクタ4740は、VRヘッドセット及びコンテンツフィルタ4760を備える。VRヘッドセットは、オペレータと共に、「コンテンツコントローラ」を構成する。コンテンツフィルタ4760は、VRヘッドセット4750に直接結合されるか、又はVRヘッドセットに埋め込まれるかのいずれかである。VRヘッドセットで生成される制御データ4752は、VRヘッドセットに供給される純信号4730に対応する。
図52は、オペレータ定義のコンテンツを生成するための第2システム5200を示す。ここで、VRヘッドセット4750及びコンテンツフィルタ4760は、取得モジュール4720からコンテンツフィルタ4760への信号転送遅延が取得モジュール4720からVRヘッドセット4750への信号転送遅延とは大幅に異ってよいように、並置されていない。信号転送遅延に起因して、VRヘッドセットから送信された制御データに基づいて、コンテンツフィルタで生成されたコンテンツフィルタリング済みの信号は、VRヘッドセットのオペレータが選択する視聴領域とは異なる視聴領域をもたらしてよい。
図53は、図52の視聴アダプタの主なコンポーネントを示す。視聴アダプタは、取得モジュール4720から純信号4730のフレームを、離れたコンテンツセレクタ5240のVRヘッドセットから制御データ5260を受信し、コンテンツフィルタリング済みの信号5280を生成する。相違を回避すべく、図53に示されるように、コンテンツフィルタ4760に先行する循環コンテンツバッファ5330が、十分な数の純信号4730のフレームのコンテンツデータを保持するために使用される。循環コンテンツバッファ及びコンテンツフィルタ4760に結合されたコンテンツフィルタコントローラ5320は、離れたVRヘッドセットから視聴領域の定義及び各フレームインデックス5322を備える制御データを受信する。コンテンツフィルタコントローラ5320は、循環バッファから各フレームインデックスのフレームデータを読み取り、次に、視聴領域の定義と共にフレームデータを、ブロードキャスト又はデータストリーミングのために転送されるコンテンツフィルタリング済みの信号4764を生成するコンテンツフィルタ4760に渡す。循環バッファ5330、コンテンツフィルタコントローラ5320、及びコンテンツフィルタ4760は、視聴アダプタ5210を形成する。
視聴アダプタ5210(図52)と並置される取得モジュール4720で導出される純信号4730のデータブロックが、循環コンテンツバッファ5330に記憶され、通信チャネル5220、送信機5221及びネットワーク5226を介して離れたVRヘッドセット4750に同時に導かれる。循環コンテンツバッファは、データブロック、フレームに対応する各データブロック、即ち、フレーム期間(例えば、50フレーム毎秒のフレームレートでの20ミリ秒)の間の純信号データを記憶する。各データブロックは、巡回フレーム数に対応するバッファアドレスで記憶される。例えば、循環コンテンツバッファは、L個のセグメントに編成されてよい。L>1であり、それぞれが1つのフレームのデータブロックを保持する。L個のセグメントは、0から(L-1)としてインデックス付けされるであろう。フレームには、0から(Γ-1)の間の巡回数が割り当てられ、Γ≧Lである。Γは、好ましくは、巡回コンテンツバッファ5330において、フレームMに対応するデータブロックがインデックスm、m=Mmodulo L、のメモリセグメントに記憶されるように、Lの整数倍として選択される。例えば、L=128及びΓ=16384の場合、インデックス12000のフレームのデータブロックが、アドレス(12000modulo 128)、即ち、96、で記憶されるであろう。
50フレーム毎秒のフレームレートで、128フレームの持続時間は、視聴アダプタ5210と離れたVRヘッドセット4750との間の往復信号転送遅延より格段に大きい2.56秒である。従って、各データブロックは、対応する制御データと共に、視聴アダプタ5210(図53)のコンテンツフィルタ4760に渡されるのに十分な期間、コンテンツバッファに保持されるであろう。これは、オペレータの操作から生じる各制御信号が各巡回フレーム数と関連していることを必要とする。
図47に示されるように、パノラマ信号ソース4710のモジュール4715は、視聴アダプタ5210で離れたVRヘッドセット4750から受信した、制御データ(メッセージ)5260(図52)を対応するビデオフレームに関連付けることを促進するために必要とされるであろう巡回ビデオフレーム数を提供する。パノラマ信号ソース4710がフレームインデックスを提供しない場合、純信号4730の各フレームデータブロックにそれぞれの巡回フレームインデックスを挿入するためのモジュール(示されていない)は、取得モジュール4720内に組み込まれてよい。
上述のように、Γと表される、巡回ビデオフレーム数の巡回期間は、少なくともLに等しく、それより格段に大きくてもよい。例えば、Γ=16384、L=128である場合、絶対フレーム数12000のフレームは、巡回期間Γに関して3808である巡回数20192|modulo 16384を、巡回期間Lに関して96である巡回数20192|modulo 128を有するであろう。次に、コンテンツフィルタコントローラ5320は、96である3808|modulo 128として、フレーム巡回数3808に対応するフレームデータブロックのアドレスを決定するであろう。
図54は、視聴アダプタ5210を詳細に示す。取得モジュールインタフェース5412は、プロセッサ5450に、コンテンツフィルタコントローラ5320の制御下で循環5330に記憶されるフレームデータブロックに編成される取得モジュール4720から信号4730を受信させる格納されたソフトウェア命令を備える。取得モジュールインタフェース5412は、取得モジュール4720で、又は信号ソース4710で生成されうる個々のフレームインデックス5322を検出する。上述のように、フレームインデックスは、巡回数である。VRインタフェース5416は、プロセッサ5450に、離れたコンテンツセレクタ5240のVRヘッドセットから視聴領域の定義5324を含む制御データ5260を受信させるソフトウェア命令を備える。
コンテンツフィルタコントローラ5320は、プロセッサ5450に、フレームインデックス5322に従って循環コンテンツバッファ5330にフレームデータブロックを格納させ、循環制御バッファから選択されたフレームデータブロック5332を検索させる、格納されたソフトウェア命令を備える。
コンテンツフィルタ4760は、プロセッサ5450に、選択されたフレームデータブロックからコンテンツフィルタリング済みの信号5280を抽出するためにフィルタリングさせ、コンテンツフィルタリング済みの信号5280をメモリ装置5470に格納させるソフトウェア命令を含む。
コンテンツフィルタコントローラ5320は、プロセッサ5450に、コンテンツフィルタリング済みの信号を初期化及び/又は圧縮すること、及び/又は、放送局及び/又はストリーミングサーバに伝達するために生成された信号を送信機5490に導く前にメモリ5470に記憶されたコンテンツフィルタリング済みの信号を圧縮することなど、従来の信号-処理機能を実行させるソフトウェア命令を更に備えてよい。
視聴領域の更新の調節
図55は、離れたVRヘッドセット4750から図52のシステムの視聴アダプタ5210に送信される制御データ(視聴領域の定義データ)5260を示す。制御データは、「凝視位置」5520を定義する従来のパラメータ「パン-チルト-ズーム」(PTZ)、及びオペレータの凝視方向に対応する視聴領域の正確な定義を可能にする別のパラメータなどの視聴領域の定義データを備える。パラメータを純信号4730の適切な部分に関連付けるべく、対応するフレームの識別子は、制御データ5260に含まれる必要がある。それは、巡回フレーム数を使用すれば十分である。図55に示されるように、巡回フレーム数は、各凝視位置に関連している。Γ=16384である場合、フレーム巡回数0は、フレーム巡回数16383の後に続く。巡回期間Γは、巡回コンテンツバッファ5330のバッファセグメントの数Lに等しくてよく、又は、その整数倍であってよい。離れたVRヘッドセットから視聴アダプタ5210へんを制御データは、凝視位置、対応するフレームインデックス、及び別の関連したパラメータを示す。
本明細書において、凝視位置ジッタとして参照されている凝視位置の小さい変位のための視聴領域の不必要な再定義を回避すべく、Δと表わされる、最新の視聴領域を定義する基準凝視位置からの現時点の凝視位置の変位5530が決定される。変位は、VRヘッドセットで、又は、視聴アダプタ5210のコンテンツフィルタ5320で決定されてよい。変位は、現時点の凝視位置と基準凝視位置との間のユークリッド距離として、又は、凝視位置を定義する調整値のシフトの絶対値の合計として決定されてよい。図55の例において、変位が、座標の絶対シフトの合計として決定される。変位を決定するための別の手段が使用されてよい。
変位が予め定義された変位閾値Δ*を超過している場合、新しい視聴領域がコンテンツフィルタコントローラ5320で決定され、現時点の凝視位置が基準凝視位置(参照符号5540)になる。そうではなくて、変位が予め定義された閾値Δ*未満又はこれに等しい場合、最新の基準凝視位置が有効のままである。
変位がVRヘッドセットで決定される場合、変位がΔ*を超過する場合に、離れたVRヘッドセットからの制御データは、「リフレッシュ」フラグを更に含んでよい。そうではなくて、最新の基準凝視位置が有効のままであるように、制御データは、「変更なしフラグ」を含んでよい。リフレッシュフラグは、視聴領域を再定義するための、視聴アダプタ5210のコンテンツフィルタコントローラ5320への命令である。
図55に示されるように、タプル{40,60,20}は、巡回フレームインデックス16350に対応する凝視位置を定義する。以前のフィルタリング済みのフレームからの変位計測は、11ユニットである。9.0の予め定義された閾値Δ*である場合、フレーム16350に対応する新しい視聴領域及び予め定義された境界形状が、視聴アダプタ5210のコンテンツフィルタ4760で決定される。
フレーム16350に続く55フレーム期間の間の凝視位置の変位は、わずかであると決定される(以下、予め定義された閾値)。例えば、タプル{42,56,21}は、巡回フレームインデックス16383に対応する凝視位置を定義する。7である調整値のシフトの絶対値の合計(|42-40|+|56-60|+|21-20|)として決定される、インデックス16350の以前のフィルタリング済みのフレームからの変位は、閾値より小さく、したがって、以前の視聴領域は不変のままである。
タプル{41,58,21}は、巡回フレームインデックス0に対応する凝視位置を定義する。4である調整値のシフトの絶対値の合計(|41-40|+|58-60|+|21-20|)として決定される、インデックス16350の以前のフィルタリング済みのフレームからの変位は、閾値より小さく、したがって、以前の視聴領域は不変のままである。
タプル{37,68,17}は、巡回フレームインデックス21に対応する凝視位置を定義する。14である調整値のシフトの絶対値の合計(|37-40|+|68-60|+|17-20|)として決定される、インデックス16350の以前のフィルタリング済みのフレームからの変位は予め定義された閾値を超過する。したがって、フレーム21に対応する新しい視聴領域及び予め定義された境界形状が、視聴アダプタ5210のコンテンツフィルタ4760で決定される。
示されるように、視聴領域の再定義は、フレーム16350、21及び50に対応する。フレーム16350に対応する視聴領域は、((21-16350)modulo 16384として決定される)55フレームの期間の間、有効のままである。フレーム21に対応する視聴領域は、((50-21)modulo 16384として決定される)29フレームの期間の間、有効のままである。
図56は、VRヘッドセットに伝送されるコンテンツデータ5610及びVRヘッドセットから伝送される制御データ5690を含む、オペレータ定義のコンテンツを生成する第1のシステム4700内のデータフロー5600を示す。取得モジュール4720は、VRヘッドセット4750及びコンテンツフィルタ4760と並置される(図47)。取得モジュールは、ソース信号4712から純マルチメディア信号4730を生成し、VRヘッドセット4750及びコンテンツフィルタ4760に、各フレームデータブロック各フレームのコンテンツを備える連続したフレームデータブロック5630を同時に供給する。VRヘッドセット4750及びコンテンツフィルタ4760に供給される純信号4730のフレームデータブロックの巡回フレーム識別子5620は、fjと表され、j≧0であり、f0からf9までのみが示される。j≧0であるフレーム識別子fjは、0から(Γ-1)までの間の値を有する。ここで、Γは、前述のように、十分に大きな整数であり、従ってfj=jmodulo Γである。時点t0、t1、…、t9は、それぞれ、フレームf0、f1、…、f9の伝送の完了に対応する。フレームデータブロックに対応する表示画像は、VRヘッドセットの追跡メカニズムに、凝視検出インスタント5635に続くレイテンシ5650で新しい凝視位置を生成させるオペレータ4725からの応答をもたらしてよい。3つの凝視検出インスタント5635(0)、5635(1)、及び5635(2)が示される。
凝視位置を示すVRヘッドセット4750からコンテンツフィルタ4760への制御データが、制御信号4752に挿入される。制御データは、フレーム識別子及び視聴領域を定義する別の制御パラメータを更に含んでよい。制御データは、凝視位置の変化を検出した際に送信されてよく、又は、定期的に送信されてよい。図56の例において、定期的な制御データメッセージ5640が、各フレームデータ5630の受信に続く処理遅延δ*の後、フレーム期間ごとに送信される。各メッセージ5640は、j≧0であり、凝視位置に対応する、φjと表されるフレーム識別子5660を含む。コンテンツフィルタ4760でVTヘッドセット4750から受信した、j≧0であるフレーム識別子φjは、フレームインデックスfjに対応する。従って、0から(Γ-1)までの間の値を有する、j≧0であるフレーム識別子φjは周期的であり、即ち、φj=jmodulo Γである。
制御データ遅延の説明
図57は、オペレータ定義のコンテンツを生成する第2システム5200内の制御データフロー5700を示す。取得モジュール4720で生成される純マルチメディアデータ4730が、循環コンテンツバッファ5330に供給され、離れたVRヘッドセット4750に伝送される。循環コンテンツバッファ5330及び離れたVRヘッドセットに供給される純信号4730のフレームデータブロック5730の巡回フレーム識別子は、fjと表される整数であり、j≧0であり、fj=jmodulo Γであり、f0からf9までのみが示される。時点t0、t1、…、t9は、それぞれ、フレームf0、f1、…、f9の伝送の完了に対応する。視聴アダプタと並置される取得モジュール4720から離れたVRヘッドセット4750に送信される各フレームデータブロック5730は、転送遅延5722の影響を受ける。フレームデータブロックに対応する表示画像は、VRヘッドセットの追跡メカニズムに、レイテンシ5750で新しい凝視位置を生成させるオペレータ4725からの応答をもたらしてよい。凝視位置を示す制御メッセージ5740は、視聴アダプタ5210に送信されるコンテンツ制御データ5260に挿入される。制御メッセージ5740は、5724の転送遅延を経験する。制御メッセージ5740は、フレーム識別子及び視聴領域を定義する別の制御パラメータを更に含む。
コンテンツ制御データ5260は、凝視位置の変化を検出した際に送信されてよく、又は、定期的に送信されてよい。図57の例において、制御メッセージ5740が、各フレームデータの受信に続く処理遅延δ*の後、フレーム期間ごとに送信される。フレーム期間ごとに送信される制御メッセージ5740は、フレームインデックス及び対応する凝視位置を含む。
総往復及び処理遅延は、視聴アダプタ5210と離れたVRヘッドセットとの間の距離に依存するフレーム期間5725より大幅に大きくてよい。示された例において、フレームf0のコンテンツデータの受信に続く処理遅延δ*の後に送信される、第1のメッセージ5740は、フレームf0に対応せず、Nullフレームφ*(参照符号5745)及び既定の凝視位置を示す。VRヘッドセットは、VRヘッドセットがフレームf1のコンテンツデータを受信した後に発生する第1の凝視検出インスタント5735(0)に続く遅延5750の後、凝視位置を生成する。
メッセージ5740に示されるフレーム識別子はφjと表され、j≧0であり、φ0からφ5までのみが示される。示されるように、視聴アダプタ5210に結合された取得モジュールからフレームデータブロック5710を送信するインスタントと、離れたVRヘッドセットから各制御メッセージ5740を受信するインスタントとの間に約3.4フレーム期間の遅延が存在する。t5の時点で、フレームデータブロックf5が循環コンテンツバッファ5330に既に記憶され、先に送信されたフレームf0に関連する制御データは、視聴アダプタ5210のコンテンツフィルタコントローラ5320で受信される。従って、循環コンテンツバッファは、少なくとも6フレームのコンテンツを格納する容量を有するべきである。
図58は、視聴アダプタ5210と離れたVRヘッドセットとの間の大きな往復転送遅延の場合の、オペレータ定義のコンテンツを生成する第2システム5200内の制御データフロー5800の別の例を示す。循環コンテンツバッファ5330及び離れたVRヘッドセットに供給される純信号4730のフレームデータブロック5830の巡回フレーム識別子は、fjと表わされる整数であり、j≧0であり、fj=jmodulo Γであり、f0からf15までのみが示される。時点t0、t1、…、t15は、それぞれ、フレームf0、f1、…、f15の伝送の完了に対応する。視聴アダプタと並置される取得モジュール4720から離れたVRヘッドセット4750に送信される各フレームデータブロック5830は、転送遅延5822の影響を受ける。フレームデータブロックに対応する表示画像は、VRヘッドセットの追跡メカニズムに、レイテンシ5850で新しい凝視位置を生成させるオペレータ4725からの応答をもたらしてよい。インデックスkのフレームのフレームデータ5830に対応する凝視位置を示す、k≧0である制御メッセージ5840(k)が、視聴アダプタ5210に送信されるコンテンツ制御データ5260に挿入される。制御メッセージ5840は、5824の転送遅延を経験する。制御メッセージ5840は、フレーム識別子及び視聴領域を定義する別の制御パラメータを更に含む。
フレームインデックスを含む制御メッセージ5840及び対応する凝視位置は、各フレームデータの受信に続く処理遅延δ*の後、フレーム期間ごとにVRヘッドセットからコンテンツフィルタコントローラ5320に送信される。
総往復及び処理遅延は、8.3フレーム期間5825に略等しくなる。示された例において、フレームf0のコンテンツデータの受信に続く処理遅延δ*の後に送信される、第1のメッセージ5840は、フレームf0に対応せず、Nullフレームφ*(参照符号5845)及び既定の凝視位置を示す。VRヘッドセットは、VRヘッドセットがフレームf1のコンテンツデータを受信した後に発生する第1の凝視検出インスタント5835(0)に続く遅延5850の後、凝視位置を生成する。
メッセージ5840に示されるフレーム識別子はφjと表され、j≧0であり、φ0からφ9までのみが示される。示されるように、視聴アダプタ5210に結合された取得モジュールからフレームデータブロック5810を送信するインスタントと、離れたVRヘッドセットから各制御メッセージ5840を受信するインスタントとの間に約8.3フレーム期間の遅延が存在する。t10の時点で、フレームデータブロックf10が循環コンテンツバッファ5330に既に記憶され、先に送信されたフレームf0に関連する制御データは、視聴アダプタ5210のコンテンツフィルタコントローラ5320で受信される(フレーム識別子φ0)。従って、循環コンテンツバッファは、少なくとも11フレームのコンテンツを格納する容量を有するべきである。
本発明の一実施形態によると、取得モジュール4720から受信した最も最近のフレームデータブロック及び最も最近の検出された凝視位置のフレームインデックスの指示を保持するためのレジスタが、VRヘッドセット内にインストールされ、又はVRヘッドセット結合される。k≧0である制御メッセージ5840(k)は、レジスタのコンテンツを含む。
図57に示されるように、k≧0である制御メッセージ5740(k)は、レジスタのコンテンツを含む。制御メッセージ5740(0)及び5740(1)は、凝視検出インスタント5735(0)に対応する凝視位置に対応し、PTZ0と表される同一のパン-チルト-ズームの値を含む。制御メッセージ5740(2)から5740(5)は、後続の凝視検出インスタント5735(1)に対応する凝視位置に対応し、PTZ1と表される同一のパン-チルト-ズームの値を含む。
図58に示されるように、4フレームの期間の間凝視位置を更新しない場合、制御メッセージ5840(0)から5840(3)は、凝視検出インスタント5835(0)に対応する凝視位置に対応し、PTZ3と表される同一のパン-チルト-ズームの値を含む。同様に、4フレームの期間の間凝視位置を更新しない場合、制御メッセージ5840(4)から5840(7)は、後続の凝視検出インスタント(図示されてはいない)に対応する凝視位置に対応し、PTZ4と表される同一のパン-チルト-ズームの値を含む。
図59は、VRヘッドセットで凝視位置を決定することを示す。現時点のフレームインデックス5950が、パノラマ信号ソース4710(参照符号4715)又は取得モジュール4720のいずれで、パノラマ純マルチメディア信号4730に挿入される。VRヘッドセット4750は、その他のコンポーネントの間、凝視センサ5950及び内部ディスプレイスクリーン5930を備える。VRヘッドセットに結合される凝視位置変換モジュール5960は、特定のフレームに対応するPTZ座標及びフレームの特定のポイントを提供する。PTZ座標の値が、送信機5261及び通信経路5250を介して視聴アダプタ5210に送信される制御データ5260に含まれる。
図60は、連続するフレーム期間の間のコンテンツバッファの占有率を示す、視聴アダプタ5210の循環コンテンツバッファ5330内のフレームデータコンテンツ6000を更新することを示す。コンテンツバッファ5230に記憶される各フレームデータブロック6010のメモリアドレス6020が示される。上述のように、コンテンツバッファ5330は、L個のフレームデータブロックの最大値を記憶する循環バッファであり、L>1であり、各フレームデータブロックは1個のバッファセグメントを占有する。L個のフレームの持続時間が視聴アダプタ5210と離れたVRヘッドセット4750との間の往復データ転送遅延を超過するように、数Lが選択されてよい。フレームデータブロックがインデックス0から(L-1)までの連続するバッファセグメントに順番に書き込まれる。フレームデータブロックがフレーム期間jの間に書き込まれるバッファセグメントがW(j)と表され、フレームデータブロックがフレーム期間kの間に読み取られるバッファセグメントがR(k)と表され、j≧0であり、k≧0である。例えば、50フレーム毎秒のフレームレートの場合、128個の最も最近のフレーム(L=128)を格納することは、予想される往復遅延より大幅に大きい、最大2.56秒の、視聴アダプタ5210と離れたVRヘッドセット4750との間の往復遅延に適している。示されるケースにおいて、図示を簡単にするために、Lが8のみに等しくなるように選択される。
視聴アダプタ5210と並置される取得モジュールの出力で純信号4730の連続するフレームデータブロックが、A0、A1、…、などと表される。ここで、A0は、特定のビデオストリームの純信号4730の第1のフレームデータブロックである。バッファセグメントが、セグメント-0、セグメント-1、…、及びセグメント-7として参照される。第1のフレーム期間の間、フレームデータブロックA0がセグメントW(0)に書き込まれる。第2のフレーム期間の間、フレームデータブロックA1がセグメントW(1)等に書き込まれる。第5のフレーム期間の間、フレームデータブロックA0がセグメントR(0)から読み取られる。第6のフレーム期間の間、フレームデータブロックA1がセグメントR(1)から読み取られる。フレームデータブロックの下線表記は、データブロックが読み取られて上書きされうることを示す。
第8のフレーム期間の間、フレームデータブロックA8が、A0を上書きしてセグメント-0(8modulo L=0)に書き込まれ、第9のフレーム期間の間、フレームデータブロックA9が、A1等を上書きしてセグメント-1(9modulo L=1)に書き込まれる。往復転送遅延が8個のフレーム期間を超過しない場合、8個のフレームデータブロックA0からA7までが、第1の8個のフレーム期間の間にコンテンツバッファに書き込まれ、少なくともフレームデータA0が読み取られ、従って、バッファの少なくともセグメント-0が新しいフレームデータブロックを格納するために利用可能になる。例えば、フレーム期間5000の間、フレームデータブロックA5000がインデックス5000modulo8のバッファセグメント、即ち、セグメント-0に書き込まれ、フレームデータブロックA4992を上書きする。フレーム期間5091の間、フレームデータブロックA5091がインデックス5091modulo8のバッファセグメント、即ち、セグメント-3に書き込まれ、フレームデータブロックA5088を上書きする。
図61は、VRヘッドセットから受信した制御データを各フレームデータに関連付けるよう循環コンテンツバッファ5330を使用することを示す。例示的な循環コンテンツバッファが、0から23までとしてインデックス付けされた24個のセグメント6120に論理的に分割され、各セグメントは、フレーム画素及び関連のメタデータを備えるフレームデータブロックを保持するのに十分なストレージ容量を有する。例えば、0から16383までの範囲の巡回フレーム数の場合、0から23までのインデックスのセグメントは、例えば、フレーム24のコンテンツが書き込まれる直前にインデックス(0,1,…,22,23)の24個の連続したフレーム、フレーム944のコンテンツが書き込まれる直前にインデックス(920,921,…,942,943)のフレーム、又は、巡回インデックス20のフレームのコンテンツが書き込まれる直前の(16380,16381,16382,16383,0,1,…,19)に関連するデータを含んでよい。
視聴アダプタ5210と並置される取得モジュール4720から離れたVRヘッドセット4750に送信されるフレームデータブロック5730(図57)は、Δ1の伝播遅延を経験する。VRヘッドセット4750は、δ*の処理遅延の後、制御メッセージ5740(図57)を視聴アダプタ5210に送信する。制御メッセージ5740は、Δ2の伝播遅延を経験する。
インデックス0のフレームに対応する制御メッセージ5740が、インデックス06のフレームのフレームデータがバッファ5330に書き込まれた後、コンテンツフィルタコントローラ5320で受信される。次に、インデックス00のフレームのフレームデータが、バッファから読み取られ(参照符号6182)、制御メッセージと共に、コンテンツフィルタ4760にサブミットされる。次に、インデックス07のフレームのフレームデータが、バッファ5330に書き込まれる(参照符号6188)。
インデックス11のフレームに対応する制御メッセージ5740が、インデックス17のフレームのフレームデータが循環コンテンツバッファ5330に書き込まれた後、コンテンツフィルタコントローラ5320で受信される。次に、インデックス11のフレームのフレームデータが、バッファから読み取られ(参照符号6192)、制御メッセージと共に、コンテンツフィルタ4760にサブミットされる。次に、インデックス18のフレームのフレームデータが、バッファ5330に書き込まれる(参照符号6198)。
循環バッファコンテンツ
現時点のフレーム期間の終了時に、視聴アダプタ5210の循環バッファ5330は、合計L個のフレームに先行する幾つかのフレームのコンテンツデータに加えて、現時点のフレームのコンテンツデータを含み、L>1である。最初のL個のフレームの後、循環バッファは、最新のL個のフレームのフレームデータを保持する。L個のフレーム期間の持続時間が視聴アダプタ5210とVRヘッドセット4750との間の往復転送遅延を超過するように、数Lが選択される。転送遅延は、任意の途中の処理遅延又はキューイング遅延に加えて往復伝播遅延を含む。
上述のように、j≧0であるフレーム識別子f
jは、0から(Γ-1)までの間の値を有する。ここで、Γは、十分に大きな整数であり、従ってf
j=j
modulo Γであり、Γ≧Lである。以下の表は、例えば、Lが8のみであり、Γ>>Lであり、Γ=16384である場合のバッファコンテンツを示す。フレームが順番にインデックス付けされる場合、フレームf
0の開始時点でバッファは空である。f
0の間、フレーム0のコンテンツがバッファに格納される。フレームf
1の開始時点で、バッファは、f
0のコンテンツを含む。f
1の間、フレーム1のコンテンツがバッファに格納される。フレームf
2の開始時点で、バッファは、f
0及びf
1のコンテンツを含む。f
2の間、フレーム2のコンテンツがバッファに格納される。フレームf
7に開始時点で、バッファは、f
0からf
6までのコンテンツを含む。f
7の間、フレーム7のコンテンツがバッファに格納される。
例えば、実際の往復転送遅延が5.5フレーム期間の場合、フレーム7の開始時点で、フレーム0のコンテンツがバッファから読み取られて(参照符号5332)、コンテンツフィルタリング済みのフレーム(参照符号5280)を生成するコンテンツフィルタ4760に、VRヘッドセットから受信した、フレーム0に対応する、視聴領域の定義データ5324と共に渡され得る。
フレームf
8から開始すると、バッファは、以下の表に示されるように8フレーム(L=8)のフレームデータを常に含む。従って、フレーム8の開始時点でバッファはフレーム0から7までのフレームデータを含み、フレーム88の開始時点でバッファはフレーム80から87のフレームデータ等を含む。バッファは、Γの値にかかわらず、最大L個のフレームためのフレームデータを含む。
図62は、L=16で、連続したフレーム期間160から175までの間の循環バッファ5330のコンテンツ6100を示し、各フレームが、以前のフレームが循環バッファ(参照符号6140)に保持される循環バッファに書き込まれる(参照符号6130)ことを示す。フレーム160の開始時点で、バッファは、フレーム144から159までのコンテンツデータを含む。フレーム160の間、フレーム160のコンテンツは、フレーム144のコンテンツを上書きする。従って、フレーム160の終了時点で、バッファは、フレーム145から160のコンテンツデータ等を含む。
好ましくは、コンテンツデータが、任意の格納されているコンテンツを新しいフレームのコンテンツで上書きする前にバッファから読み取られる。VRヘッドセットから視聴アダプタ5210への通信経路5250は、好ましくは、連続するフレームに対応する視聴領域の定義の順番を維持する。しかしながら、コンテンツフィルタコントローラ5320は、必要に応じて、視聴領域の定義を並び替えるように構成されてよい。
図63は、図52の分散システムを使用してオペレータ定義のコンテンツを生成する方法6300を示す。プロセス6310は、パノラマ信号ソース4710からマルチメディア信号ストリーム4712及び信号記述子4732を継続的に受信する。プロセス6320は、信号記述子4732に従って純マルチメディア信号ストリーム4730を生成する。取得モジュール4720で実施されるプロセス6330は、現時点のフレームデータを抽出し、巡回フレームインデックスを挿入する。プロセス6340は、現時点のフレームデータ及び対応する巡回フレームインデックスをVRヘッドセット4750に伝送する。プロセス6350は、現時点のフレームデータを視聴アダプタ5210の巡回コンテンツバッファ5330に配置する。プロセス6360は、VRヘッドセット4750から、新しい凝視位置及び各フレームのインデックスを含む制御データ5260を受信する。プロセス6370は、制御データ5260を視聴アダプタ5210のコンテンツフィルタコントローラ5320に渡す。プロセス6380は、視聴アダプタ5210のコンテンツフィルタ4760からコンテンツフィルタリング済みの信号5280を受信し、信号を放送局及び/又はストリーミングサーバに伝送する。コンテンツフィルタリング済みの信号は、伝送より前に圧縮されてよい。
図64は、凝視位置の変化に基づいた適応型のコンテンツフィルタリングの方法6400を示す。最初に、コンテンツフィルタコントローラ5320は、既定値として凝視位置を初期化し(プロセス6410)、例えば、フレーム表示の中間点に対応する。既定の視聴領域がそれに応じて定義される。プロセス6420は、VRヘッドセット4750から、新しい凝視位置及び対応するフレームインデックスを受信する。プロセス6430は、新しい凝視位置と現時点の凝視位置との間の差の絶対値を決定する。プロセス6440において決定されるように、差の絶対値が予め定義された閾値未満であり、差がわずかである場合、 現時点の凝視位置が不変のままであり、従って、視聴領域は不変のままであり、コンテンツフィルタコントローラ5320は、循環バッファ5330から受信されたフレームインデックス5322に対応するフレームデータを読み取る(プロセス6470)。そうではなくて、絶対値が少なくとも閾値に等しく、差が大きい(プロセス6440)場合、新しい凝視位置に対応する視聴領域が定義され(プロセス6450)、現時点の凝視位置が、プロセス6430における後続の使用のために、新しい位置に等しくするように設定される(プロセス6460)。次に、コンテンツフィルタコントローラ5320は、循環バッファ5330から受信されたフレームインデックス5322に対応するフレームデータを読み取る。
視聴アダプタ5210のコンテンツフィルタ4760は、視聴領域に従ってコンテンツフィルタリング済みのフレーム5280を生成し、プロセス6420が新しい凝視位置を受信するように再検討される。
従って、本発明は、マルチメディア信号を備える純信号4730のバーチャルリアリティの表示を生成し、表示の選択された視聴領域の定義データを定義する幾何学的データ4752を生成するために、バーチャルリアリティのヘッドセット、4750、図47を利用することを備える通信方法を提供する。バーチャルリアリティの表示が、バーチャルリアリティのヘッドセット4750の内部ディスプレイ装置及び/又は外部ディスプレイ装置4770を使用して純信号から生成されてよい。
コンテンツフィルタ4760は、幾何学的データに従って純信号からコンテンツフィルタリング済みの信号4764を抽出する。コンテンツフィルタリング済みの信号が、ブロードキャスト装置に導かれる。バーチャルリアリティのヘッドセットは、幾何学的データを生成するプロセス及びバーチャルリアリティのヘッドセット4750を着用するオペレータ4752の凝視方向の変化を追跡するプロセスを実行するために、プロセッサ及びメモリ装置を備える。
バーチャルリアリティのヘッドセット内のセンサは、オペレータ4725の現時点の凝視方向を定義するパラメータを提供する。コンテンツフィルタが、現時点の凝視方向及び視聴領域の予め定義された形状に従って、選択された視聴領域を決定するように構成される。
純信号4730が、パノラマ信号ソース4710から受信したソース信号4712から生成される。ソース信号4712は、マルチメディア信号コンポーネント4943及びマルチメディア信号を識別する信号記述子4732を含む。信号記述子は、
純信号322(図3)、
未加工の信号312、
ワープされた圧縮済み信号342、及び
ワープされた圧縮済み信号343
のうちの1つの信号としてソース信号のコンテンツを識別する。
ソース信号のコンテンツが純信号でない場合、ソース信号が、純信号を生成するために、マッチングする純信号ジェネレータ4950(図49)に供給される。
コンテンツフィルタリング済みの信号4764が、幾何学的データに従って純信号から抽出される。コンテンツフィルタリング済みの信号4764は、輪郭内にコンテンツに対応する純信号のサンプリングを備える。コンテンツフィルタ4760の機能は、コンテンツフィルタリング済みの信号を抽出することがバーチャルリアリティのヘッドセットのメモリ装置に格納されるプロセッサ実行可能命令を使用して実行できるように、バーチャルリアリティのヘッドセット内で実行されてよい。或いは、この代わりに、コンテンツフィルタリング済みの信号を抽出することが、バーチャルリアリティのヘッドセットに結合され、個別のプロセッサ及びメモリ装置を備える、独立したコンテンツフィルタ4760で実行されてよい。
コンテンツフィルタリング済みの信号4764が、圧縮されたフィルタリング済みの信号4864を生成するように圧縮されてよい(図48)。次に、圧縮されたフィルタリング済みの信号が、チャネル4890及びネットワーク150を介して、チャネル4880及び/又はユニバーサルストリーミングサーバを介して、放送局に伝送されてよい。
パノラマ信号ソース4710から受信したソース信号4712が、中継器4810を使用して、取得モジュール4720-B及びユニバーサルストリーミングサーバ120を備えるストリーミング装置4820に中継されてよい(図48)。取得モジュールは、ユニバーサルストリーミングサーバに供給される純信号4730のレプリカを生成する。ユニバーサルストリーミングサーバは、複数の視聴者180に視聴者コンテンツの制御を提供するように構成される(図48)。
上述のように、本発明は、変調済みの搬送波ソース信号4712を受信し、ブロードキャストのためにコンテンツフィルタリング済みの信号4764を抽出するように構成される通信システムを提供する。システムは、バーチャルリアリティのヘッドセット4750と、コンテンツフィルタ4760と、送信機とを備える。
バーチャルリアリティのヘッドセットは、受信した変調済みの搬送波ソース信号4712から導出された純信号4730のバーチャルリアリティの表示を渡すように構成される。コンテンツフィルタが、幾何学的データに従って純信号からコンテンツフィルタリング済みの信号4764を生成するように構成される。送信機は、コンテンツフィルタリング済みの信号をチャネルに沿って放送局に送信する。
バーチャルリアリティのヘッドセットは、バーチャルリアリティのヘッドセットを着用するオペレータ4752の凝視方向のセンサと、プロセッサに凝視方向に従って表示の視聴領域を定義する幾何学的データ4752を生成させるプロセッサ実行可能命令を記憶するメモリ装置とを備える。コンテンツフィルタは、個別のプロセッサ及びメモリ装置を備える。
通信システムは、受信したパノラママルチメディア信号4712から純信号4730を導出するための取得モジュール4720(図47、図49)を更に備える。取得モジュールは、受信機4942と、純信号を生成するための一連の純信号ジェネレータ4950と、セレクタ4946とを備える。受信機4942は、変調済みの搬送波ソース信号からソースマルチメディア信号及び対応する信号記述子を生成する。セレクタ4946は、対応する信号記述子に従って、ソースマルチメディア信号をマッチングする純信号ジェネレータ4950に導く。
バーチャルリアリティのヘッドセットは、オペレータ4752の凝視位置と、凝視位置を囲む予め定義された形態の輪郭の代表的な空間座標として幾何学的データ4752とを決定するように更に構成される。コンテンツフィルタリング済みの信号4764は、輪郭内にコンテンツに対応する純信号4730のサンプリングを備える。
任意に、通信システムは、パノラマ信号ソース4710から送信される変調済みの搬送波ソース信号4712をストリーミング装置4820に中継するための中継器4810(図48)を備えてよい。ストリーミング装置は、純信号4730のレプリカを生成するための取得モジュール4720及び、純信号4730を受信し、個々の視聴者選択に基づいてコンテンツフィルタリング済みの信号を提供するユニバーサルストリーミングサーバ120を備える。
図65は、パノラマカメラ及びVRヘッドセットを利用する、統合された選択的なコンテンツブロードキャスト及びストリーミングのための第2システムを示し、システムは、ルーティング設備6520と、取得モジュール4720及び離れたコンテンツセレクタ5240を備えるリモートコンテンツコントローラ6540とを備える。ルーティング設備6520は、ネットワーク6530を介してリモートコンテンツコントローラ6540と通信する。図66は、図65のルーティング設備6520を詳細に示す。
図51の構成と同様に、4πカメラは、伝送チャネル6522を介してルーティング設備に送信された変調済みの搬送波ソース信号4712を生成するために、ソース処理ユニット4714においてデワープ及び/又は圧縮され、次に送信機5416に供給されうる広帯域信号を生成する。ルーティング設備は、入力(a)で変調済みの搬送波ソース信号4712を受信し、
オペレータ定義のコンテンツフィルタリング済みの信号を生成するために、出力(c)からチャネル6524、ネットワーク6530、及びネットワーク6530からのチャネル6544を介して、リモートコンテンツコントローラ6540に導かれる増幅された変調搬送波6551と、
視聴者に定義されたコンテンツフィルタリング済みの信号を生成するために、出力(b)からクラウド演算ネットワーク6570に埋め込まれたユニバーサルストリーミングサーバ120に増幅された変調搬送波6552と
を生成する中継器6610(図66)に信号を供給する。
制御データは、リモートコンテンツコントローラ6540から、チャネル6546、ネットワーク6530、及びチャネル6526を介して、ルーティング設備6520に送信される。ルーティング設備6520は入力(d)で制御データをキャプチャし、受信機6670はネットワーク6530及びチャネル6526を介してリモートコンテンツコントローラ6540から送信された制御データ6548から制御データを検出する。検出された制御データが、オペレータ定義のコンテンツフィルタリング済みの信号4764を生成する視聴アダプタ5210に供給される。出力(e)からチャネル6528を介して放送局6580に、チャネル6529を介してチャネル6529及びネットワーク6530を介するユニバーサルストリーミングサーバ120のうちの1つに導かれる変調済みの搬送波信号を生成するために、コンテンツフィルタリング済みの信号4764が圧縮モジュール4862で圧縮され、送信機4870に供給される。
図67は、取得モジュール4720(図47)と、オペレータ4725によって使用されるバーチャルリアリティのヘッドセット4750を含む離れたコンテンツセレクタ5240とを備えるリモートコンテンツコントローラ6540を詳細に示す。フレーム数抽出モジュール6710は、取得モジュール4720で検出された純マルチメディア信号4730から巡回フレーム数を抽出する。フレーム数挿入モジュール6712は、抽出された巡回フレーム数を、表示のオペレータの好ましい視聴領域を定義する制御データ6548に挿入する。離れたコンテンツセレクタ5240と並置されるリフレッシュモジュール6720は、制御データ6548を更に変更する。
或いは、この代わりに、制御データ(個々の制御メッセージ)6548をモジュール4715(図47、図65)で識別されたビデオフレームに関連付けるプロセスは、「タイムスタンプ」を使用すること及び視聴アダプタ5210(図52、図66)と離れたコンテンツセレクタ5240(図52、図67)との間の往復転送遅延を測定することに依存しうる。しかしながら、上述のように巡回フレーム数を使用することが好ましい。
選択的なコンテンツブロードキャストのためのハイブリッドシステム
図68は、パノラマカメラ、コンテンツフィルタのバンク、及び従来のスイッチ装置(セレクタ)を使用するマルチメディア信号の選択的なコンテンツブロードキャストのためのハイブリッドシステムを示す。マルチメディア信号が、ソース処理ユニット4714に結合された4πカメラ310及び広帯域送信機4716を備える信号ソース4710で生成される。カメラは、パノラマ視聴をキャプチャし、広帯域送信機4716に直接供給されうる、又は、別の制御データを挿入することに加えて、図3に示されるように、未加工の信号312を処理して、(デワープされた)補正済みの信号322、圧縮された未加工の信号342、又は、(デワープされて圧縮された)コンパクトな信号343を生成するソース処理ユニット4714に供給されうる未加工の信号312を生成する。ソース処理ユニット4714の出力は、広帯域送信機4716に供給される。
図49に示されるように、広帯域送信機4716は、変調済みの搬送波ソース信号4712を、伝送媒体4718を介して、受信機4940(図49に詳細に示される)、プロセッサ、及び、プロセッサにデワープ及び/又は圧縮解除の機能を実行させるプロセッサ可読命令を記憶するメモリ装置を備えるハードウェアエンティティである取得モジュール4720に送信する。取得モジュールは、パノラマカメラ310によってキャプチャされる全体視聴を集合的にカバーするフィルタリング済みの信号を提供するように構成されるコンテンツフィルタ6832のバンク6825に供給される純マルチメディア信号4730を生成する。「A」、「B」、「C」及び「D」で個別にラベル付けされた4つのコンテンツフィルタ6832が示される。各コンテンツフィルタ6832の出力信号6840が、各ディスプレイ装置4650に供給される。「A」から「D」までのラベル付けされた4つのコンテンツフィルタに結合された表示装置が、それぞれ、4650-A、4650-B、4650-C及び4650-Dとして個別に識別される。
手動動作の視聴選択ユニット4660は、図46のものと同様に、表示装置4650に供給されるベースバンド信号のうちの1つのベースバンド信号を選択する。オペレータ4662は、全ての表示を観測し、セレクタ(「スイッチ装置」とも称される)4664を使用して、好ましい出力信号を送信機4680に導く(図46及び図68)。送信機4680は、アンテナ又はケーブル4690を介して伝送媒体に結合される。
図69は、図51のシステムに実装される選択的なコンテンツブロードキャストの方法6900を示す。固定の4πカメラ310と、ソース処理ユニット4714と、広帯域送信機4716とを含むパノラマ信号ソースが、カバーされるようイベントのフィールドに適切に配置される。純マルチメディア信号4730が、広帯域無線チャネル又は光ファイバリンクであり得る伝送媒体4718を介して、パノラマ信号ソースに近い位置で取得される(プロセス6910、取得モジュール4720)。パノラマ信号が表示される(プロセス6920、VRヘッドセットの内部ディスプレイ及び/又は表示装置4770)。オペレータ4725は、VRヘッドセット4750を使用するディスプレイを検査する(プロセス6930)。オペレータの凝視方向に対応するコンテンツフィルタリング済みの信号がVRヘッドセットから取得される。コンテンツフィルタリング済みの信号が圧縮され(プロセス6940、圧縮モジュール4862)、放送局に伝送される圧縮済みの信号を生成する(プロセス6950、送信機4870)。
図70は、図68のシステムに実装される選択的なコンテンツブロードキャストの方法7000を示す。図69の方法と同様に、4πカメラ310と、ソース処理ユニット4714と、広帯域送信機4716とを含むパノラマ信号ソースが、カバーされるようイベントのフィールドに適切に配置される。純マルチメディア信号4730が、伝送媒体4718を介して、パノラマ信号ソースに近い位置で取得される(プロセス7010、取得モジュール4720)。
コンテンツフィルタ6832のバンク6825が提供され、純マルチメディア信号4730が各コンテンツフィルタ6832に供給される。各コンテンツフィルタ6832が、パノラマ信号からそれぞれの視聴角度に対応するそれぞれのフィルタリング済みの信号を抽出する(プロセス7020)ように構成される。集合的に、フィルタリング済みの信号がイベントのフィールド全体をカバーする。当然ながら、フィルタリング済みの信号に対応するフィールドの視聴部分が、重複するようバインドされる。フィルタリング済みの信号が別の表示装置に表示される(プロセス7030)。オペレータ4662(図68)は、セレクタ(スイッチ装置)4664を有効にして、好ましいフィルタリング済みの信号を送信機4680に導く(プロセス7040)。送信機の出力での変調搬送波が、放送局に送信される(プロセス7050)。
図71は、図48及び図51のシステムの基本的処理を示すフローチャートである。プロセス7110において、変調済みの搬送波ソース信号4712が監視設備5120で受信される。プロセス7130において、ソース信号4712が、ストリーミングサブシステム4808に中継されうる(中継器4810)。プロセス7112において、取得モジュール4720は、ソース信号4712から純マルチメディア信号4730を取得する。プロセス7114において、コンテンツセレクタ4740は、ブロードキャストを対象とするオペレータ定義のコンテンツフィルタリング済みのマルチメディア信号を生成する。信号が、放送設備及びユニバーサルストリーミングサーバ120に伝送される前に圧縮されて、既定の視聴選択に使用されてよい(プロセス7120)。
ストリーミングサブシステム4808で、取得モジュール4720は、ユニバーサルストリーミングサーバ120に供給される純マルチメディア信号4730のレプリカを取得する(プロセス7140)。ユニバーサルストリーミングサーバは、好ましくは図13、図14、及び図15に示されるように低フローレートで、完全コンテンツ信号をユニバーサルストリーミングサーバ120に通信可能に結合されるクライアント装置180に送信する(プロセス7142)。ユニバーサルストリーミングサーバ120は、クライアント180から視聴の好みを受信し(プロセス7144)、個別のコンテンツフィルタリング済みの信号を生成してよい(プロセス7146)。クライアントの好みの通知がない場合、既定の視聴選択に基づいたコンテンツがクライアントに送信されてよい。ユニバーサルストリーミングサーバ120は、既定の視聴選択に加えて、図32に示されるように、視聴者の選択に基づいたコンテンツを保持する(プロセス7148)。
図72は、ブロードキャストのために、パノラママルチメディア信号をコンテンツフィルタリングしてオペレータ定義のコンテンツを生成する方法を示す。方法は、パノラマ信号ソース4710からソース信号4712を受信すること(プロセス7220)と、取得モジュール4720(図47、図51)でパノラママルチメディアソース4710(図47、図51)から受信したマルチメディア信号4712(図47、図48、図49、図51)から純信号4730(図47)を生成すること(プロセス7230)と、純信号から表示された純信号の様々な視聴領域に対応するコンテンツフィルタリング済みの信号を抽出するよう構成されたコンテンツセレクタ4740を利用することとを備える。
コンテンツセレクタ4740は、バーチャルリアリティのヘッドセット4750(図47、図50)を利用して純信号4730の表示を視聴し(プロセス7240、図72)、バーチャルリアリティのヘッドセットから現時点の凝視位置を決定する(プロセス7244)プロセスを実行する。
基準凝視位置が、(例えば、フレーム中心に対応する)既定値として初期化される(プロセス7242、図72)。VRヘッドセットは、ヘッドセットを着用するオペレータの凝視位置を継続的に識別する。
次に、基準凝視位置から現時点の凝視位置の変位5530(図55)が決定される(プロセス7246)。変位5530が予め定義された閾値を超過するという決定を条件として、基準凝視位置が現時点の凝視位置に等しくするように更新される(プロセス7248及び7250、図72)。
次に、視聴領域の定義データが、基準凝視位置及び予め定義された輪郭の形状(長方形など)を使用して生成される(プロセス7260)。コンテンツフィルタリング済みの信号5280(図52)が、視聴領域の定義データに従って純信号4730から抽出され(プロセス7270)、放送設備に伝送される(プロセス7274)。コンテンツフィルタリング済みの信号4764は、伝送前に圧縮されてよい(プロセス7272)。
凝視位置は、複数の次元の一連のパラメータ又はベクトルとして表わされる。凝視位置の変位の異なる測定が使用されてよい。1つの測定に従って、基準凝視位置を表す第1のベクトル(第1の一連のパラメータ)及び現時点の凝視位置を表す第2のベクトル(第2の一連のパラメータ)が比較される。次に、図55に示されるように、変位が、凝視位置を定義する調整値のシフトの絶対値の合計として決定される。
凝視位置を定義する一連のパラメータが、バーチャルリアリティのヘッドセットおセンサから取得される従来の「パン、チルト、及びズーム」(PTZ)パラメータとして選択されてよい。プロセス7260において生成される視聴領域の定義データが、変位が予め定義された閾値より小さい又はこれに等しい(プロセス7248、7270)場合に再使用するために保持されてよい。
図73及び図74は、図65のシステムに実装されるパノラママルチメディア信号のコンテンツフィルタリング方法を示す。ここで、可動性でありうるルーティング設備6520は、パノラマ信号ソース4710の近傍に配置され、バーチャルリアリティのヘッドセット4750を着用するオペレータ4725で、離れたコンテンツセレクタ5240を収容するリモートコンテンツコントローラ6540と通信する。
図73は、リモートコンテンツコントローラ6540で実行されるプロセスを示す。ソース信号(変調済みの搬送波信号)4712が、離れたコンテンツセレクタ5240で受信される(プロセス7310)。基準凝視位置が、最初に観測される凝視位置が視聴領域の定義の計算を強制的に生成するように選択される位置でありうる規定の位置として初期化される(プロセス7320)。純マルチメディア信号4730が、離れたコンテンツセレクタ5240でソース信号4712から取得される(プロセス7330)。
離れたコンテンツセレクタ5240で取得された純マルチメディア信号が表示される(プロセス7340)。離れたコンテンツセレクタ5240と並置されたリフレッシュモジュール6720(図67)は、視聴領域を更新するレートに影響を与えプロセス7350を実行する。フレームインデックス抽出モジュール6710は、リモートコンテンツコントローラ6540の取得モジュール4720(図67)で検出された純マルチメディア信号から巡回フレーム識別子を抽出する(プロセス7352)。フレームインデックス挿入モジュール6712は、フレーム数を視聴アダプタ5210に導かれる制御データ5260に挿入する。好ましいフレーム識別子は、本明細書において判定された好ましい識別子である巡回フレームインデックスである。現時点の凝視位置5520(図55)が、離れたコンテンツセレクタ5240のバーチャルリアリティのヘッドセットの出力から決定される(プロセス7354)。
プロセス7356は、基準凝視位置から現時点の凝視位置の変位を決定する。プロセス7358は、変位が予め定義された変位閾値Δ*を超過するか否かを決定する。そうである場合、現時点の凝視位置が基準凝視位置になり(プロセス7370)、新しい基準凝視位置を含む制御メッセージが対応するフレーム識別子と共に形成される(プロセス7372)。そうではなくて、変位が、Δ*より小さい又はこれに等しく、わずかである場合、プロセス7374は、対応するフレーム識別子及び循環コンテンツバッファ5330に格納されるフレームデータブロックが以前の視聴領域の定義に従って表示されうることを示すNull凝視位置を含むメッセージを生成する。プロセス7372又はプロセス7374で形成される制御メッセージが、視聴アダプタ5210に伝送される(プロセス7378)。バーチャルリアリティのヘッドセットのレイテンシを追跡することに起因して、巡回フレーム数の(小さい)シフトが必要とされうる。プロセス7380は、リモートコンテンツコントローラ6540から新しいメッセージを受信する。次に、プロセス7352に戻る。
図74は、ルーティング設備6520に存在する視聴アダプタ5210で実行されるプロセス7400を示す。
プロセス7410は、リモートコンテンツコントローラ6540のリフレッシュモジュール6720から、新しい凝視位置5520及び対応する巡回フレーム数5510(図55)を受信する。プロセス7410は、同時に、巡回フレーム識別子7412をプロセス7420に導き、新しい凝視位置をプロセス7440に導く。
プロセス7420は、受信した巡回フレーム数7412に従って、コンテンツバッファ5330におけるフレームデータブロック5332のアドレスを決定する。フレームデータブロック5332がコンテンツバッファから読み取られ(プロセス7430)、最新の視聴領域の定義に基づいてコンテンツフィルタリング済みの信号を生成するようにプロセス7460に導かれる。
プロセス7440は、新しい凝視位置がNull位置である場合、新しい凝視位置をプロセス7460に導く。そうではなくて、プロセス7450が起動され、現在の視聴領域の定義を上書きであろう新しい視聴領域の定義を生成して保持する。新しい視聴領域の定義は、新しい凝視位置及び予め定義された領域の形状(輪郭)に基づいているであろう。
プロセス7460は、制御メッセージが、凝視位置が変化しない又はわずか変化することを示すNull凝視位置を含むとき、プロセス7450で生成された1つ又は以前の視聴領域の定義であろう最新の視聴領域の定義に基づいてコンテンツフィルタリング済みの信号5280を生成する。
コンテンツフィルタリング済みの信号が、視聴アダプタ5210をサポートするルーティング設備6520(図66)で圧縮されうる(プロセス7462)。圧縮されたコンテンツフィルタリング済みの信号がルーティング設備から伝送される(プロセス7464)。新しいコンテンツ選択データ(新しい凝視位置及びフレーム識別子)がリフレッシュモジュール6720から受信され(プロセス7480)、コンテンツフィルタリング済みの信号を生成する上述のプロセスが継続的に実行され、プロセス7410から開始する。
コンテンツフィルタリング済みの信号を生成する上述のプロセスが各フレーム期間又は予め定義された数のフレーム(例えば、各8-フレーム期間)期間で起動されてよい。
コンテンツフィルタ4760(図47、図50、及び図53)及びコンテンツフィルタ6832(図68)が、ハードウェアプロセッサ及びハードウェアプロセッサに本発明のそれぞれのプロセスを実行させるプロセッサ実行可能命令を格納するメモリ装置を利用することが留意される。
図75は、パノラマ信号ソース4710、離れたコンテンツセレクタ5240、及び視聴アダプタ5210を備える選択的なビデオコンテンツ伝達の地理的な分散システムを示す。取得モジュール4720A及び4720Bは、それぞれ、視聴アダプタ5210及びコンテンツセレクタ5240と並置される。パノラマ信号ソース4710から視聴アダプタ5210と並置された取得モジュール4720Aへの経路7510に沿った信号転送遅延7512がT1と表わされる。パノラマ信号ソース4710から離れたコンテンツセレクタ5240と並置された取得モジュール4720Bへの経路7520に沿った信号転送遅延7522がT2と表わされる。離れたコンテンツセレクタ5240から視聴アダプタ5210への経路7530に沿った信号転送遅延7532がT3と表される。経路7510、7520及び7530のいずれかは、専用の通信経路又はネットワークを介して確立された経路でありうる。経路がネットワークを介して確立される場合、転送遅延は、ネットワーク内の任意のキューイング遅延を含む。
パノラマ信号ソース4710はビデオ信号を視聴アダプタ5210に結合された取得モジュール4720Aに送信するが、ビデオ信号又はビデオ信号から導出されたフレームサンプリング済みの信号のいずれをVRヘッドセット4750に結合された取得モジュール4720Bに送信してよい。フレームサンプリング済みの信号は、選択されたビデオフレーム、例えば、各ビデオ信号の16個の連続するフレームのうちの1つを備える。パノラマ信号ソースに結合されたフレームセレクタ7550は、規定されたサンプリングパラメータに従って、フレームサンプリング済みの信号を生成する。
図76は、ビデオアダプタでの、フレームコンテンツデータ及び対応する制御データの到着時刻の差を示す。視聴アダプタ5210でパノラマ信号ソース4710から受信したフレームデータに対応するフレームインデックスが、f0、f1、f2、…などと表される。視聴アダプタ5210でVRヘッドセットから受信した制御データに対応するフレームインデックスが、φ0、φ1、φ2、…などと表される。
示されるように、T1が(T2+T3)未満である場合、ソース(参照符号7620)から受信した特定のフレームのコンテンツデータは、特定のフレームの制御データ(参照符号7640)の前に到着する。例えば、インデックス0のフレームの制御データは、フレームのコンテンツの受信に続く略4.5フレーム期間の後、到着する。
T1が(T2+T3)より大きい場合、ソース(参照符号7660)から受信した特定のフレームのコンテンツデータは、特定のフレームの制御データ(参照符号7680)の後、到着する。例えば、インデックス0のフレームの制御データは、フレームのコンテンツの受信の前の略5.2フレーム期間の後、到着する。2つのポイント間の通信経路は、専用であるかネットワークを介して確立されたかにかからわらず、必ずしも視線に沿ってルーティングされない。従って、T1は、必ずしも(T2+T3)未満でない。加えて、経路が共有されたネットワークを介して確立されたとき、転送遅延は、ネットワークトラフィック状態に大きく依存する。
図77は、ビデオアダプタ5210での、フレームコンテンツデータ及び対応する制御データの相対的な到着時間に対する信号転送遅延ジッタの影響を示す。フレームコンテンツデータに対応するフレームインデックス(参照符号7730)が、f4、f5などと表される。フレーム制御データに対応するフレームインデックス(参照符号7740)が、φ4、φ5などと表わされる。
遅延ジッタ(参照符号7710)のない状態下で最もありうるシナリオである、T1が(T2+T3)未満である場合において、フレームに対応する制御データは、フレームのコンテンツが到着した後、視聴アダプタ5210に到着する。この場合において、それは、(循環コンテンツバッファ5330に類似する)循環コンテンツバッファ7750を使用すれば十分である。しかしながら、適度なレベルの遅延ジッタ(参照符号7720)の場合でさえ、フレーム特定制御データ及びコンテンツデータの視聴アダプタ5210への一連の到着時刻は、一致しない場合がある。例えば、インデックス5のフレームに対応する制御データがフレームのコンテンツデータを受信した後に到着する一方で、インデックス6のフレームに対応する制御データがフレームのコンテンツデータを受信する前に到着する。同一フレーム制御データ及びフレームコンテンツをマッチングすることを可能にすべく、循環制御バッファに加えて循環制御バッファ7760が提供される。循環制御バッファは、循環コンテンツバッファの方法に類似した方法で動作する。循環コンテンツバッファは、フレームの可動窓の幾つかのフレームのコンテンツデータ7752を保持する。上述のように、フレームが巡回フレームインデックス7751に割り当てられる。上述のように、巡回インデックスjのフレームのコンテンツデータがインデックスjのバッファ部分に格納され、0≦j<Lであり、Lは予め定義された巡回期間である。循環制御バッファは、フレームの可動窓の幾つかのフレームの制御データ7762を保持する。フレームが巡回フレームインデックス7761に割り当てられ、巡回インデックスjのフレームの制御データがインデックスjのバッファ部分に格納される。
図77は、バーチャルリアリティのヘッドセットが完全ビデオ信号を受信し、ビデオフレーム期間ごとに制御データを伝達する場合に、循環コンテンツバッファ及び循環制御バッファを備えるデュアル循環バッファを使用することを示す。
図78は、循環コンテンツバッファ5530、循環制御バッファ7760、コンテンツフィルタ4760、コンテンツフィルタコントローラ7820を備える視聴アダプタ5210Bを示す。上述のように、コンテンツフィルタコントローラ5320(図53)は、離れたVRヘッドセットから視聴領域の定義及び各フレームインデックスを備える制御データを受信し、次に、循環コンテンツバッファ5330から各フレームインデックスのフレームデータを読み取る。
コンテンツフィルタコントローラ7820は、離れたVRヘッドセットから視聴領域の定義及び各フレームインデックスを備える制御データを受信し、次に、各フレームインデックスを循環制御バッファ7760に挿入する。循環制御バッファから読み取られるフレームデータブロック5332のインデックス7822が、循環制御バッファ格納されたフレームインデックス及び循環コンテンツバッファ5330に格納されたフレームインデックスに従って決定される。
図79は、バーチャルリアリティのヘッドセットがビデオフレーム期間ごとに制御データを伝達する場合の、循環コンテンツバッファ7750及び循環制御バッファ7760のデータストレージ編成7900を示す。循環コンテンツバッファがL個の部分7910に編成され、各部分がビデオフレームのコンテンツデータ7920を格納する。巡回インデックスjのフレームのコンテンツが同一のインデックスjの部分に格納され、0≦j<Lである。同様に、循環制御バッファがL個の部分7930に編成され、各部分がビデオフレームの制御データ(凝視位置)7940を格納する。巡回インデックスjのフレームの制御データが同一のインデックスjの部分に格納される。示されるように、バッファのコンテンツが循環的に上書きされる(参照符号7950)。
図80は、バーチャルリアリティのヘッドセットがY>1であるYビデオフレーム期間ごとに制御データを伝達する場合の、循環コンテンツバッファ及び循環制御バッファのデータストレージ編成8000を示す。循環コンテンツバッファがL個の部分7910に編成され、各部分がビデオフレームのコンテンツデータ7920を格納する。巡回インデックスjのフレームのコンテンツが同一のインデックスjの部分に格納され、0≦j<Lである。循環制御バッファが
個の部分8030に編成され、各部分がYビデオフレーム期間ごとにVRヘッドセットから受信した制御データ(凝視位置)8040を格納する。従って、巡回インデックスjのフレームの制御データがインデックス
の部分に格納される。循環制御バッファの部分が、γ
0、γ
1、γ
2及びγ
3と表される。示されるように、バッファのコンテンツが循環的に上書きされる(8051,8052)。
図81は、f
0からf
31までの巡回インデックスの32個のビデオフレーム(L=32)のコンテンツ8122を保持するように構成された循環コンテンツバッファを備えるデュアル循環バッファのデータストレージ編成8100を示す。循環制御バッファは、4個のビデオフレーム期間(Y=4)ごとに受信した制御データ8132を保持する。従って、循環制御バッファが8個の部分に編成される(
、L=32、Y=4)。循環制御バッファのストレージ部分のインデックス8130がγ
0からγ
7までと表される。循環コンテンツバッファのストレージ部分のインデックス8120は、ビデオフレームの巡回インデックスに対応する。
は、Rが整数の場合にRの値を表し、又はRが正の実数である場合にRに最も近い大きな正の整数を表し、
は、Rが整数の場合にRの値を表し、又はRが正の実数である場合にRの整数部分を表すことが留意される。
図47又は図52のシステムがクラウド演算設備内に部分的に実装されうることも留意される。
従って、本発明は、選択的なビデオコンテンツ伝達のための装置4740を提供する。取得モジュール4720は、パノラママルチメディアソース4710から変調搬送波4712を受信し、純ビデオ信号4730を抽出する。取得モジュール4720に通信可能に結合されたバーチャルリアリティのヘッドセット4750は、純ビデオ信号及びバーチャルリアリティのヘッドセットを着用するオペレータ4725の凝視位置の座標のバーチャルリアリティの表示を提供する。凝視位置に対応するビデオフレームインデックスが決定される。
取得モジュール4720及びバーチャルリアリティのヘッドセット4750に通信可能に結合されたコンテンツフィルタ4760は、純ビデオ信号4730からコンテンツフィルタリング済みの信号4764を生成するように構成されたハードウェアプロセッサを利用する。コンテンツフィルタ4760は、純ビデオ信号4730、凝視位置の座標、及び対応するビデオフレームインデックスを受信する。次に、それぞれの凝視位置に対応する表示の視聴領域を定義する幾何学的データが生成される。次に、それぞれの幾何学的データに従って純ビデオ信号の各フレームから抽出されたコンテンツフィルタリング済みの信号が、伝達のために通信設備に伝送される。
通信設備は、視聴者のコンテンツ選択を可能にし、ストリーミングサーバの視聴者が視聴領域を選択しない場合の既定の選択としてオペレータの凝視位置に基づいてコンテンツフィルタリング済みの信号を提供するように構成された放送局又はストリーミングサーバ120(図48)であってよい。
取得モジュール4720、図49、は、変調搬送波4712からソースマルチメディア信号及び対応する信号記述子を検出するように構成された受信機4940を備える。信号記述子は、信号ソースで実行される処理を示す(図3)。取得モジュールは、個々の信号記述子にそれぞれ調整された、一連の純ビデオ信号ジェネレータ4950を利用し、ソースマルチメディア信号の記述子に従って純ビデオ信号を生成する。セレクタ4947は、純ビデオ信号を生成するために、対応する信号記述子に従ってソースマルチメディア信号をマッチングする純ビデオ信号ジェネレータに導く。
コンテンツフィルタリング済みの信号は、視聴領域内のポイントに対応する純ビデオ信号のサンプルを備える。任意に、バーチャルリアリティのヘッドセットは、予め定義された視聴領域の形状の組のうちの視聴領域の形状の指示を提供する。次に、コンテンツフィルタは、それぞれの視聴領域の形状に従って幾何学的データを生成する。
本発明は、選択的なビデオコンテンツ伝達のための地理的な分散システム5200を更に提供する。システムは、コンテンツセレクタ5240及び視聴アダプタ5210を備える。コンテンツセレクタ5240は、バーチャルリアリティのヘッドセット4750を含む。
バーチャルリアリティのヘッドセット4750は、ソースから、ソースビデオ信号又はソースビデオ信号から導出されたフレームサンプリング済みの信号(図75、フレームセレクタ7550)のいずれかでありうる特定の信号を受信する。バーチャルリアリティのヘッドセット4750は、特定の信号を表示し、間隔の空いた時点で、ヘッドセットを着用するオペレータの凝視位置を決定する。凝視位置は、対応するビデオフレームインデックスと共に、後続の処理のために伝達される。
視聴アダプタ5210は、ソースからソースビデオ信号を受信し、バーチャルリアリティのヘッドセットから凝視位置及び対応するフレームインデックスを受信するように構成されたハードウェアプロセッサ5450(図54)を利用する。様々な信号転送遅延の影響を無効にすべく、視聴アダプタ5210は、ビデオ信号から導出された完全コンテンツフレームデータを記憶するための循環コンテンツバッファ(6200、図62、7750、図77)と、バーチャルリアリティのヘッドセットから受信した凝視位置を記憶するための循環制御バッファ7760とを備えるデュアル循環バッファを利用する。視聴アダプタ5210のコンテンツフィルタコントローラ5320(図53、図54)は、凝視位置ごとに、予め定義された視聴領域の形状に従って周囲の視聴領域を決定する。
コンテンツフィルタ4760(図53、図54)は、伝達のために、循環制御バッファから読み取られた各凝視位置の視聴領域に従って、循環コンテンツバッファから読み取られた各完全コンテンツフレームデータの一部を抽出する。
コンテンツフィルタコントローラ5320は、基準凝視位置を初期化し、基準凝視位置から現時点の凝視位置の変位を決定し、変位が予め定義された閾値を超過したという決定を条件として、現時点の凝視位置に等しくするように基準凝視位置を更新する。変位が予め定義された閾値未満又はこれに等しい場合、現時点の凝視位置が基準凝視位置に等しくするように設定される。
循環コンテンツバッファ6200、7750は、少なくとも予め定められた数のフレームの完全コンテンツを保持する。予め定義された数×1つのフレーム期間が2つの経路に沿った転送遅延の差の大きさ(即ち、絶対値)を超過するように、予め定義された数が選択される。1つの経路に沿った信号転送遅延(7520、7530)は、ソースからバーチャルリアリティのヘッドセットへの信号転送遅延T2と、バーチャルリアリティのヘッドセットからコンテンツフィルタコントローラへの信号転送遅延T3との合計である。他の経路(7510)に沿った信号転送遅延T1は、ソースから視聴アダプタ5210への遅延である。
間隔の空いた時点は、離れたビデオフレームに対応する。ここで、間髪を入れずに連続するビデオフレームのインデックスは、予め定義された整数Yだけ異なり、Y>1である。循環制御バッファは、少なくとも
に等しい幾つかの凝視位置を保持し、Hは、コンテンツデータが循環コンテンツバッファに保持されるフレームの予め定義された数である。当然ながら、H>Yである。図80の構成において、H=16、Y=4である。図81の構成において、H=32、Y=4である。Hは、予め定義された巡回期間Lに等しい。
コンテンツフィルタコントローラ5320は、循環コンテンツバッファのインデックスf
*のストレージ部分において、0≦f
*<Lである巡回インデックスf
*のビデオフレームのフレームコンテンツを配置する循環制御バッファにフレームコンテンツを格納する。コンテンツフィルタコントローラは、インデックス
のストレージ部分において、0≦φ
*<Lである巡回インデックスφ
*に対応する凝視位置を格納し、Lは、予め定義された巡回期間である。
フレームサンプリング済みの信号は、好ましくは、ソースに結合されたフレーム選択モジュール(フレームセレクタ7550、図75)で生成される。フレームサンプリング済みの信号は、離れたビデオフレームを備える。ここで、間髪を入れずに連続するビデオフレームは、単一期間のフレームの持続時間を超過する時間間隔によって分離される。
バーチャルリアリティのヘッドセット4750は、従来のパン、チルト、及びズームの座標としてそれぞれの凝視位置を定義するように構成される。フィルタリングコントローラ5320は、基準凝視位置を表す第1の一連の座標及び現時点の凝視位置を表す第2の一連の座標のパン、チルト、及びズームの値の絶対差分の合計として、凝視位置の変位を更に評価する。
バーチャルリアリティのヘッドセット4750は、既定の視聴領域の形状、又は一連の予め定義された視聴領域の形状のうちの視聴領域の形状として、オペレータ4725が予め定義された視聴領域の形状を選択することを可能にするように更に構成される。
選択的なビデオコンテンツ伝達の方法が、図72から図74に示される。方法は、ビデオ信号の表示を視聴し、間隔の空いた時点で、ヘッドセットを着用するオペレータの凝視位置を識別し、更なる処理のために凝視位置及び対応するビデオフレームインデックスを伝達するためにバーチャルリアリティのヘッドセットを利用する段階を備える。
方法は、基準凝視位置及び対応する視聴領域の定義を初期化し、次に、ビデオ信号を受信する処理と、凝視位置及び対応するビデオフレームインデックスを受信する処理と、基準凝視位置を更新する処理と、基準凝視位置に従って視聴領域の定義データを生成する処理と、視聴領域の定義データに従ってビデオ信号からコンテンツフィルタリング済みの信号を抽出する処理と、コンテンツフィルタリング済みの信号を放送設備に伝送する処理とを継続的に実行するハードウェアプロセッサを利用する。
基準凝視位置を更新する段階は、基準凝視位置からの現時点の凝視位置の変位を決定することに基づいている。変位が予め定義された閾値7358を超過したという決定を条件として、基準凝視位置が現時点の凝視位置に等しくするように設定され(プロセス7370)、視聴領域の定義データが基準凝視位置及び予め定義された輪郭の形状に従って生成される(図80、図81)。
各時点と間髪を入れずに連続する時間間隔との間の時間間隔がビデオフレーム期間の整数倍、Y、であり、Y>1であるように、間隔の空いた時点が選択される。プロセッサは、ビデオ信号の最も最近のビデオフレームの予め定義された数、H、の完全コンテンツフレームデータを循環コンテンツバッファに記憶する段階であって、H>Yである、段階と、バーチャルリアリティのヘッドセットから受信した数、h、の最も最近の凝視位置を循環制御バッファに記憶する段階であって、h=
である、段階とを行うための命令を実行する。
コンテンツフィルタリング済みの信号を抽出する処理は、循環コンテンツバッファに存在しているビデオフレームごとに、循環制御バッファに存在している各凝視位置を決定する処理と、各完全コンテンツフレームデータ(図81)からコンテンツフィルタリング済みのフレームを導出する処理とを備える。
基準凝視位置(図55)からの現時点の凝視位置の変位を決定することは、一連の座標として一連の凝視位置の各凝視位置を表す処理と、基準凝視位置を表す第1の一連の座標及び現時点の凝視位置を表す第2の一連の座標の対応する座標値の絶対差分の合計として変位を評価する処理とを備える。
バーチャルリアリティのヘッドセットは、ビデオ信号全体を受信してよく、又は、ビデオ信号のフレームサンプリング済みの信号のみを受信してよい。フレームサンプリング済みの信号は、ビデオ信号のソースに結合されたフレーム選択モジュールで生成され、間髪を入れずに連続するビデオフレームが単一期間のフレームの持続時間を超過する時間間隔によって分離された状態で離れたビデオフレームを備える。
バーチャルリアリティのヘッドセットがビデオ信号全体を受信した場合、表示はビデオ信号の全てのビデオフレームをカバーする。バーチャルリアリティのヘッドセットがフレームサンプリング済みの信号を受信した場合、表示は離れたビデオフレームをカバーする。
本発明の実施形態方法は、ハードウェアプロセッサに上述の処理を実装させるプロセッサ実行可能命令を実行する1又は複数のハードウェアプロセッサを使用して実行される。コンピュータ実行可能命令が、フロッピーディスク、ハードディスク、光ディスク、フラッシュROM、不揮発性ROM、及びRAMなどのプロセッサ可読ストレージ媒体に格納されてよい。マイクロプロセッサ、デジタル信号プロセッサ、ゲートアレイなどの様々なプロセッサが利用されてよい。
本発明の実施形態のシステムは、1又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別ロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせなどの任意の様々な適切な回路として実装されてよい。本発明の実施形態のシステムのモジュールが部分的に又は完全にソフトウェアに実装されるとき、モジュールは、ソフトウェア命令を適切な非一時的なコンピュータ可読記憶媒体に記憶するためのメモリ装置を含み、ソフトウェア命令は、本開示の技術を実行するための1又は複数のプロセッサを使用してハードウェアで実行される。
本発明の実施形態の方法及びシステム、並びに上述のデータストリームは、いかなる意味においても、抽象的又は無形でないことに留意されたい。代わりに、データは、必然的にデジタル形式で示され、電子メモリ、大容量記憶装置、又は別の物理的に有形なデータストレージ装置及び媒体などの物理データストレージコンピュータ可読媒体に格納される。現在説明されているデータ処理及びデータストレージ方法は、かなりわずかな量のデータを処理して分析するために生成された中間結果の複雑さと膨大な数のために、人間の分析者によって手動で実行されることができないことも留意されたい。代わりに、本明細書で説明された方法は、必然的に、電子的に又は磁気的に格納されたデータに対するプロセッサを有する電子演算システムによって実行され、データ処理及びデータ分析の結果が、1又は複数の有形で物理的なデータストレージ装置及び媒体にデジタル処理で格納される。
本発明の特定の実施形態を詳細に説明してきたが、当然のことながら、記載された実施形態は、例示的であって限定的ではないものとすることを理解されたい。図面において示され、本明細書において記載された実施形態の様々な変更及び修正が、本発明の、そのより広い態様での範囲から逸脱しない限り、以下の特許請求の範囲内で行われてよい。