(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】シーンベースの没入型メディアをストリーミングするための方法、コンピューティングデバイス及びコンピュータプログラム
(51)【国際特許分類】
H04N 21/2668 20110101AFI20240905BHJP
H04N 21/2343 20110101ALI20240905BHJP
H04N 21/258 20110101ALI20240905BHJP
【FI】
H04N21/2668
H04N21/2343
H04N21/258
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024515921
(86)(22)【出願日】2023-03-10
(85)【翻訳文提出日】2024-03-12
(86)【国際出願番号】 US2023014987
(87)【国際公開番号】W WO2023200535
(87)【国際公開日】2023-10-19
(32)【優先日】2022-04-14
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-03-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】アリアンヌ・ハインズ
(72)【発明者】
【氏名】ステファン・ウェンガー
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164PA31
5C164SB02P
5C164SC05P
5C164SC11P
5C164YA19
5C164YA20
(57)【要約】
コンピューティングデバイスによって実行されるメディアストリーミングセッション中にシーンベースのメディアアセットをストリーミングするための方法が提供される。本方法は、ネットワークサーバとクライアントデバイスとして機能するコンピューティングデバイスとの間でシーンベースのメディアアセットに関する情報を通信するための双方向インターフェースを提供するステップと、インターフェースを介してネットワークサーバへ、クライアントデバイス属性、および要求されたときのクライアントデバイスリソースの可用性に関する対応する情報を提供するステップであって、クライアントデバイス属性および情報が、シーンベースのメディアアセットをレンダリングするためにコンピューティングデバイスによって使用される、ステップと、を含む。例えば、コンピューティングデバイスは、ネットワークサーバから要求を受信し、次いで、ローカルに記憶された、以前にストリーミングされたシーンベースのメディアアセットのリストにアクセスすることによって、要求されたシーンベースのメディアアセットが、ネットワークサーバからストリーミングされるかどうかを判定する。次いで、ネットワークサーバは、シーンベースのメディアアセットまたはそれらのプロキシを生成し、シーンベースのメディアアセットをレンダリングするためにコンピューティングデバイスにストリーミングされるメディアストリーミングセッションに、それらを挿入する。
【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって実行されるメディアストリーミングセッション中に、シーンベースのメディアアセットをストリーミングするための方法であって、前記方法は、
ネットワークサーバとクライアントデバイスとして機能する前記コンピューティングデバイスとの間でシーンベースのメディアアセットに関する情報を通信するための双方向インターフェースを提供するステップと、
前記インターフェースを介して前記ネットワークサーバへ、クライアントデバイス属性、および要求されたときのクライアントデバイスリソースの可用性に関する対応する情報を、提供するステップであって、前記クライアントデバイス属性および前記情報が、前記シーンベースのメディアアセットをレンダリングするために前記コンピューティングデバイスによって使用される、ステップと、を含む、方法。
【請求項2】
前記方法は、
前記インターフェースを介して前記ネットワークサーバから要求を受信するステップであって、前記要求がストリーミングされる1つまたは複数のシーンベースのメディアアセットを識別する、ステップと、
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバからストリーミングされるかどうか判定するために、前記要求に応答して、ローカルに記憶され、以前にストリーミングされたシーンベースのメディアアセットのリストにアクセスするステップと、
前記インターフェースを介して前記ネットワークサーバへ、前記判定を送信するステップであって、前記ネットワークサーバが、前記判定に従って、前記1つまたは複数のシーンベースのメディアアセットに関する情報を前記コンピューティングデバイスに配信するように構成されている、ステップと、をさらに含む、請求項1に記載の方法。
【請求項3】
前記ネットワークサーバが、前記ネットワークサーバから前記要求されたシーンベースのメディアアセットをストリーミングする必要がないという判定に従って、要求されたシーンベースのメディアアセットのプロキシを生成し、前記プロキシを前記メディアストリーミングセッションに挿入するように構成される、請求項2に記載の方法。
【請求項4】
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバによって生成されたという判定後に、前記要求が前記ネットワークサーバにおいて生成される、請求項2に記載の方法。
【請求項5】
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバによって生成されたという判定前に、前記要求が前記ネットワークサーバにおいて生成される、請求項2に記載の方法。
【請求項6】
前記方法は、
前記インターフェースを介して前記ネットワークサーバへ、前記クライアントデバイス属性およびクライアントデバイスリソースの可用性に関する関連情報を送信するステップであって、前記ネットワークサーバが、前記クライアントデバイス属性およびクライアントデバイスリソースの可用性に関する関連情報に従って、前記1つまたは複数のシーンベースのメディアアセットに関する情報を、前記コンピューティングデバイスに配信するように構成されている、ステップをさらに含む、請求項5に記載の方法。
【請求項7】
前記方法は、
前記クライアントデバイスのユーザからユーザ要求を受信するステップであって、前記ユーザ要求が、ストリーミングされる前記1つまたは複数のシーンベースのメディアアセットを識別する、ステップと、
前記インターフェースを介して前記ネットワークサーバへ、前記ユーザ要求を転送するステップと、をさらに含む、請求項1に記載の方法。
【請求項8】
前記インターフェースを介して前記ネットワークサーバから、前記ネットワークサーバによって生成された前記メディアストリーミングセッション内の前記1つまたは複数のシーンベースのメディアアセットを、受信するステップと、
前記1つまたは複数のシーンベースのメディアアセットを、前記クライアントデバイスにアクセス可能なメディアストアに記憶するステップと、をさらに含む、請求項7に記載の方法。
【請求項9】
コンピューティングデバイスであって、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
メディアストリーミングセッション中にシーンベースのメディアアセットをストリーミングする方法を実行するために、前記コンピュータプログラムコードを実行するように構成された、少なくとも1つのプロセッサと、を含み、前記方法が、
ネットワークサーバとクライアントデバイスとして機能する前記コンピューティングデバイスとの間でシーンベースのメディアアセットに関する情報を通信するための双方向インターフェースを提供するステップと、
前記インターフェースを介して前記ネットワークサーバへ、クライアントデバイス属性、および要求されたときのクライアントデバイスリソースの可用性に関する対応する情報を提供するステップであって、前記クライアントデバイス属性および前記情報が、前記シーンベースのメディアアセットをレンダリングするために前記コンピューティングデバイスによって使用される、ステップと、を含む、コンピューティングデバイス。
【請求項10】
前記方法が、
前記インターフェースを介して前記ネットワークサーバから要求を受信するステップであって、前記要求がストリーミングされる1つまたは複数のシーンベースのメディアアセットを識別する、ステップと、
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバからストリーミングされるかどうか判定するために、前記要求に応答して、ローカルに記憶され、以前にストリーミングされたシーンベースのメディアアセットのリストにアクセスするステップと、
前記インターフェースを介して前記ネットワークサーバへ、前記判定を送信するステップであって、前記ネットワークサーバが、前記判定に従って、前記1つまたは複数のシーンベースのメディアアセットに関する情報を前記コンピューティングデバイスに配信するように構成されている、ステップと、をさらに含む、請求項9に記載のコンピューティングデバイス。
【請求項11】
前記ネットワークサーバが、前記ネットワークサーバから前記要求されたシーンベースのメディアアセットをストリーミングする必要がないという判定に従って、要求されたシーンベースのメディアアセットのプロキシを生成し、前記メディアストリーミングセッションに前記プロキシを挿入するように構成される、請求項10に記載のコンピューティングデバイス。
【請求項12】
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバによって生成されたという判定後に、前記要求が前記ネットワークサーバにおいて生成される、請求項10に記載のコンピューティングデバイス。
【請求項13】
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバによって生成されたという判定前に、前記要求が前記ネットワークサーバにおいて生成される、請求項10に記載のコンピューティングデバイス。
【請求項14】
前記方法が、
前記インターフェースを介して前記ネットワークサーバへ、前記クライアントデバイス属性およびクライアントデバイスリソースの可用性に関する関連情報を送信するステップであって、前記ネットワークサーバが、前記クライアントデバイス属性およびクライアントデバイスリソースの可用性に関する関連情報に従って、前記1つまたは複数のシーンベースのメディアアセットに関する情報を前記コンピューティングデバイスに配信するように構成されている、ステップをさらに含む、請求項13に記載のコンピューティングデバイス。
【請求項15】
前記方法が、
前記クライアントデバイスのユーザからユーザ要求を受信するステップであって、前記ユーザ要求が、ストリーミングされる前記1つまたは複数のシーンベースのメディアアセットを識別する、ステップと、
前記インターフェースを介して前記ネットワークサーバへ、前記ユーザ要求を転送するステップと、をさらに含む、請求項9に記載のコンピューティングデバイス。
【請求項16】
前記方法が、
前記インターフェースを介して前記ネットワークサーバから、前記ネットワークサーバによって生成された前記メディアストリーミングセッション内の前記1つまたは複数のシーンベースのメディアアセットを受信するステップと、
前記1つまたは複数のシーンベースのメディアアセットを、前記クライアントデバイスにアクセス可能なメディアストアに記憶するステップと、をさらに含む、請求項15に記載のコンピューティングデバイス。
【請求項17】
コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、メディアストリーミングセッション中にシーンベースのメディアアセットをストリーミングする方法を実行させる命令を記憶する非一時的コンピュータ可読媒体であって、前記方法が、
ネットワークサーバとクライアントデバイスとして機能する前記コンピューティングデバイスとの間でシーンベースのメディアアセットに関する情報を通信するための双方向インターフェースを提供するステップと、
前記インターフェースを介して前記ネットワークサーバへ、クライアントデバイス属性、および要求されたときのクライアントデバイスリソースの可用性に関する対応する情報を提供するステップであって、前記クライアントデバイス属性および前記情報が、前記シーンベースのメディアアセットをレンダリングするために前記コンピューティングデバイスによって使用される、ステップと、を含む、非一時的コンピュータ可読媒体。
【請求項18】
前記方法が、
前記インターフェースを介して前記ネットワークサーバから要求を受信するステップであって、前記要求がストリーミングされる1つまたは複数のシーンベースのメディアアセットを識別する、ステップと、
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバからストリーミングされるかどうか判定するために、前記要求に応答して、ローカルに記憶され、以前にストリーミングされたシーンベースのメディアアセットのリストにアクセスするステップと、
前記インターフェースを介して前記ネットワークサーバへ、前記判定を送信するステップであって、前記ネットワークサーバが、前記判定に従って、前記1つまたは複数のシーンベースのメディアアセットに関する情報を前記コンピューティングデバイスに配信するように構成されている、ステップと、をさらに含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記ネットワークサーバが、前記ネットワークサーバから前記要求されたシーンベースのメディアアセットをストリーミングする必要がないという判定に従って、要求されたシーンベースのメディアアセットのプロキシを生成し、前記メディアストリーミングセッションに前記プロキシを挿入するように構成される、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバによって生成されたという判定後に、前記要求が前記ネットワークサーバにおいて生成される、請求項18に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年4月14日に出願された「SmartClient for Streaming of SceneーBased Immersive Media」と題する米国仮特許出願第63/331,152号明細書に基づいて優先権を主張し、2023年3月8日に出願された「SmartClient for Streaming of Scene-Based Immersive Media」と題する米国特許出願第18/119,074号明細書の継続および優先権を主張し、その開示はその全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ビデオ、オーディオ、幾何学的(3D)オブジェクト、触覚、関連付けられたメタデータ、またはクライアントデバイスのための他のコンテンツを含む、メディアを配信するシステムおよびネットワークのためのアーキテクチャ、構造、および構成要素に関する実施形態について説明する。特定の実施形態は、異種没入型および対話型クライアントデバイスへのメディアコンテンツの配信のためのシステム、構造、およびアーキテクチャに関する。
【背景技術】
【0003】
没入型メディアは、一般に、時限2次元(2D)ビデオおよび対応するオーディオのために既存の(例えば、「レガシー」)商用ネットワークを介して配信されるものを超えるなど、任意のまたはすべての人間の感覚システム(例えば、視覚、聴覚、体性感覚、嗅覚、および場合によっては味覚)を刺激して、メディアの体験に物理的に存在するユーザの知覚を作成または強化するメディアを指し、そのような時限メディアは「レガシーメディア」としても知られている。没入型メディアはまた、動力学および物理法則のデジタルシミュレーションを介して物理世界を作成または模倣しようとするメディアとして定義されてもよく、それにより、現実世界または仮想世界を描写するシーン内に物理的に存在するというユーザによる知覚を作成するように、任意またはすべての人間の感覚システムを刺激する。
【0004】
没入型メディア対応表現デバイスは、没入型メディアにアクセスし、解釈し、表現するのに十分なリソースおよび能力を備えたデバイスを指す場合がある。そのような没入型メディア対応デバイスは、複数の量およびフォーマットのメディアをサポートし、また、没入型メディアを大規模に配信するために必要な複数のネットワークリソースをサポートする。「大規模に」とは、ネットワークを介したレガシーのビデオおよびオーディオメディアの配信と同等の配信を達成するサービスプロバイダによるメディアの配信、例えば、Netflix、Hulu、Comcastのサブスクリプション、およびSpectrumのサブスクリプションを指すことがある。
【0005】
対照的に、ラップトップディスプレイ、テレビ、およびモバイルハンドセットディスプレイなどのレガシー表現デバイスは、それらのデバイスのすべてが、それらの主要な視覚メディアフォーマットとして2D矩形ビデオまたは静止画像を消費する矩形ディスプレイスクリーンから構成されるので、それらの能力において均一である。レガシーの表現デバイスで一般的に使用されている視覚メディアフォーマットの一部には、高効率ビデオコーディング/H.265、アドバンストビデオコーディング/H.264、および多用途ビデオコーディング/H.266が含まれることがある。
【0006】
「フレームベース」メディアという用語は、視覚メディアが画像の1つまたは複数の連続した矩形フレームで構成されるという特性を指す。対照的に、「シーンベース」メディアは、各シーンが視覚的シーンを集合的に記述する個々のアセットを指す「シーン」によって編成された視覚的メディアを指す。
【0007】
フレームベースの視覚メディアとシーンベースの視覚メディアとの比較例は、森を示す視覚メディアの場合に示されている。フレームベース表示では、携帯電話機に備えられたカメラデバイスなどを使用して森がキャプチャされる。ユーザは、カメラが森に焦点を合わせられるようにして、でキャプチャされるフレームベースのメディアは、ユーザが電話機で提供されるカメラビューポートを通して見るものと同じであり、ユーザによって開始されるカメラの任意の動きを含んでいる。結果として得られる森のフレームベース表示は、通常30フレーム/秒または60フレーム/秒の標準レートでカメラによって記録される一連の2D画像フレームである。各画像フレームは、各画素に記憶された情報が次の画素と調和する画素の集合である。
【0008】
森のシーンベース表示は、森の中の各オブジェクトを記述する個々のアセットで構成される。例えば、シーンベース表示は、「木」と呼ばれる個々のオブジェクトを含むことができ、各木は、「幹」、「枝」、および「葉」と呼ばれるより小さなアセットの集合で構成される。各木の幹は、幹の完全な3Dジオメトリを記述するメッシュと、幹の色および放射輝度特性をキャプチャするために木-幹メッシュに適用されるテクスチャと、によって個別にさらに記述できる。さらに、幹は、その滑らかさもしくは粗さ、または光を反射する能力に関して幹の表面を記述する追加情報を伴ってもよい。シーンを構成する個々のアセットは、各アセットに記憶される情報のタイプと量が異なる。
【0009】
ネットワークを介したあらゆるメディアの配信は、入力またはネットワーク「取り込み」メディアフォーマットから配信メディアフォーマットにメディアを再フォーマットおよび/または変換するメディア配信システムおよびアーキテクチャを用いてもよく、その配信メディアフォーマットは、対象クライアントデバイスおよびそのアプリケーションによって取り込まれるのに適しているだけでなく、ネットワークを介して「ストリーミング」されるのにも役立つ。ネットワークは、通常、取り込まれたメディアに対して2つのプロセスを実行する。すなわち、1)メディアをフォーマットAから対象クライアントによって取り込まれるのに適したフォーマットBに変換すること、すなわち、特定のメディアフォーマットを取り込むクライアントの能力に基づいて変換すること、および2)ストリーミングされるメディアを準備すること、である。
【0010】
メディアの「ストリーミング」とは、広義には、メディアを断片化および/またはパケット化することを指し、メディアの時間的または空間的構造のいずれかまたは両方に従って論理的に編成およびシーケンス化された連続した小さいサイズの「チャンク」でネットワークを介して配信することができる。フォーマットAからフォーマットBへのメディアの変換(「トランスコーディング」とも呼ばれる)は、クライアントにメディアを配信する前に、通常はネットワークまたはサービスプロバイダによって実行されるプロセスであってもよい。そのようなトランスコーディングは、フォーマットBが、対象クライアントによって取り込まれ得る好ましいフォーマットもしくは唯一のフォーマットである、または商用ネットワークなどの制約のあるリソースを介した配信により適しているという事前知識に基づいて、フォーマットAからフォーマットBにメディアを変換することから構成され得る。メディアの変換の一例は、シーンベース表示からフレームベース表示へのメディアの変換である。場合によっては、代わりにクライアントがメディアを受信および処理することができる前に、メディアを変換するステップと、ストリーミングするメディアを準備するステップの両方が必要である。
【0011】
ネットワークによって、すなわちメディアをクライアントに配信する前に、取り込まれたメディアに作用する上記の1つステップまたは2つステップのプロセスにより、「配信メディアフォーマット」または単に「配信フォーマット」と呼ばれるメディアフォーマットが得られる。一般に、これらのステップは、クライアントが変換および/またはストリーミングされたメディアオブジェクトを複数の場合に必要とすることを示す情報に、ネットワークがアクセスできる場合、所与のメディアデータオブジェクトに対して、1回だけ実行されるべきである。すなわち、メディアの変換およびストリーミングのためのデータの処理および転送は、一般に、潜在的にかなりの量のネットワークおよび/または計算リソースを消費する必要があるレイテンシの発生源と見なされる。したがって、クライアントが、そのキャッシュに記憶されている、またはクライアントに対してローカルに記憶されている、特定のメディアデータオブジェクトを既に有している可能性がある場合を示す情報に、アクセスを有するネットワーク設計が必要とされている。
【発明の概要】
【課題を解決するための手段】
【0012】
実施形態によれば、クライアントデバイスがクライアントデバイスによって管理されるローカルキャッシュ上に記憶されたメディアアセットおよび/またはメディアオブジェクトのコピーへのアクセスを既に有しているかどうか、またはメディアアセットの新しいコピーがネットワークサーバによって生成されてメディアストリームセッションに挿入されるべきであるかどうか、を判定するプロセスを容易にするための方法、システム、およびデバイスが提供される。実施形態によれば、本明細書で開示されるプロセスは、サーバもしくはクライアントデバイスによって、または一緒に実行されてもよい。
【0013】
本開示の一態様によれば、コンピューティングデバイスによって実行されるメディアストリーミングセッション中にシーンベースのメディアアセットをストリーミングするための方法が提供される。本方法は、ネットワークサーバとクライアントデバイスとして機能するコンピューティングデバイスとの間でシーンベースのメディアアセットに関する情報を通信するための双方向インターフェースを提供するステップと、インターフェースを介してネットワークサーバへ、クライアントデバイス属性、および要求されたときのクライアントデバイスリソースの可用性に関する対応する情報を提供するステップであって、クライアントデバイス属性および情報が、シーンベースのメディアアセットをレンダリングするためにコンピューティングデバイスによって使用される、ステップと、を含む。
【0014】
本開示の別の態様によれば、メディアストリーミングセッション中にメディアアセットをストリーミングするためのコンピューティングデバイスが提供される。コンピューティングデバイスは、コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、メディアストリーミングセッション中にシーンベースのメディアアセットをストリーミングする前述の方法を実行するために、コンピュータプログラムコードを実行するように構成された少なくとも1つのプロセッサと、を含む。
【0015】
本開示の別の態様によれば、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、メディアストリーミングセッション中にシーンベースのメディアアセットをストリーミングする前述の方法を、コンピューティングデバイスに実行させる命令を記憶する非一時的コンピュータ可読媒体が提供される。
【0016】
さらなる実施形態は、以下の説明に記載され、部分的には、説明から明らかとなり、および/または本開示の表現された実施形態の実施によって実現されてもよい。
【0017】
本発明の前述の実施態様および追加の実施態様は、図面と併せて解釈すると、本発明の様々な態様の以下の詳細な説明の結果としてより明確に理解されるであろう。図面のいくつかの図を通して、同様の参照番号は対応する部分を指す。
【図面の簡単な説明】
【0018】
【
図1A】実施形態による、メディアストリーミングネットワーク内のクライアントデバイスへのメディア配信の例示的な図である。
【
図1B】実施形態による、配信フォーマットにおけるメディアの作成、およびメディアストリーミングネットワークにおける再利用インジケータの生成、を示す例示的なワークフローである。
【
図2A】実施形態による、クライアントデバイスへのストリーミングメディアを示す例示的なワークフローである。
【
図2B】実施形態による、クライアントデバイスへのストリーミングメディアを示す例示的なワークフローである。
【
図2C】実施形態による、以前にストリーミングされたメディアがローカルまたは他の様態で近隣のキャッシュ内でまだ利用可能であるかどうかを判定し、それをネットワークに報告するスマートクライアントが追加された、スマートクライアントへのストリーミングメディアを示す例示的なワークフローである。
【
図2D】実施形態による、スマートクライアントがデバイスステータス、プロファイル情報およびリソース可用性を取得し、それらをネットワークに返答することを追加した、スマートクライアントへのストリーミングメディアを示す例示的なワークフローである。
【
図2E】実施形態による、ネットワークプロセスからストリーミングされたメディアを要求および受信するスマートクライアントが追加された、スマートクライアントへのストリーミングメディアを示す例示的なワークフローである。
【
図3A】実施形態による、時限没入型メディアの表示およびストリーミングのためのデータモデルの例示的な図である。
【
図3B】実施形態による、降順の頻度値に基づいてリストに順序付けられた視覚アセットを有する時限没入型メディアの表示およびストリーミングのためのデータモデルの例示的な図である。
【
図4A】実施形態による、非時限没入型メディアの表示およびストリーミングのためのデータモデルの例示的な図である。
【
図4B】実施形態による、増加する頻度値に基づいて順序付けられた触覚およびオーディオアセットを有する非時限没入型メディアの表示およびストリーミングのためのデータモデルの例示的な図である。
【
図5】実施形態による、自然メディア合成を示す例示的なワークフローを示す図である。
【
図6】実施形態による、合成メディア取り込み生成を示す例示的なワークフローである。
【
図7】実施形態による、コンピュータシステムの例示的な図である。
【
図8】実施形態による、ネットワークメディア配信システムの例示的な図である。
【
図9】実施形態による、冗長キャッシュを使用する没入型メディア配信を示す例示的なワークフローである。
【
図10】実施形態による、メディアアダプテーションプロセスシステムのシステム図である。
【
図11A】実施形態による、配信フォーマットにおけるメディアの作成を示す例示的なワークフローである。
【
図11B】実施形態による、アセットタイプによって順序付けられたアセットと、アセットタイプに基づく表現全体にわたってアセットが使用される頻度とを有する配信フォーマットでのメディアの作成を示す例示的なワークフローである。
【
図12】実施形態による、パケット化プロセスを示す例示的なワークフローである。
【
図13】実施形態による、構成要素間の通信フローを示す例示的なワークフローを示す図である。
【
図14A】実施形態による、メディアの再利用分析を示す例示的なワークフローである。
【
図14B】実施形態による、表現中のシーンの固有アセットのリストのセットの一例である。
【発明を実施するための形態】
【0019】
例示的な実施形態の以下の詳細な説明は、添付の図面を参照する。異なる図面における同じ参照番号は、同じまたは同様の要素を識別し得る。
【0020】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実施態様を開示された厳密な形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。さらに、一実施形態の1つまたは複数の特徴または構成要素は、別の実施形態(または別の実施形態の1つまたは複数の特徴)に組み込まれるか、または組み合わされてもよい。加えて、以下に提供される動作のフローチャートおよび説明では、1つまたは複数の動作が省略されてもよく、1つまたは複数の動作が追加されてもよく、1つまたは複数の動作が同時に(少なくとも部分的に)行われてもよく、1つまたは複数の動作の順序が入れ替えられてもよいことが理解される。
【0021】
本明細書に説明のシステムおよび/または方法は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。よって、本明細書ではシステムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく説明されている。ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実施するように設計され得ることを理解されたい。
【0022】
特定の特徴の組合せが、特許請求の範囲に記載され、かつ/または本明細書に開示されていても、これらの組合せは、可能な実施態様の開示を限定することを意図されたものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されておらず、かつ/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙されている各従属請求項は1つの請求項のみに直接従属することができるが、各従属請求項を請求項の集合中の他の任意の請求項と組み合わせたものが、可能な実現例の開示に含まれる。
【0023】
以下で説明される提案された特徴は、個別に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0024】
本出願で用いられている要素、動作または指示は、核心的であったり必須であったりするものとしては当然解釈されない。ただし、そのように明記されている場合を除く。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図されており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが意図される場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される「有する(has)」、「有する(have)」、「有する(having)」、「含む(include)」、「含む(including)」などの用語は、オープンエンド用語であることが意図されている。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。さらに、「[A]および[B]の少なくとも一方」や「[A]または[B]の少なくとも一方」などの表現は、Aのみ、Bのみ、またはAとBの両方を含むと理解されるべきである。
【0025】
実施形態によれば、没入型メディア対応表現デバイスは、没入型メディアにアクセスし、解釈し、表現するのに十分なリソースおよび能力を備えたデバイスを指す場合がある。そのようなデバイスは、それらがサポートすることができるメディアの量およびフォーマット、ならびにそのようなメディアを大規模に配信するために必要なネットワークリソースの量およびタイプに関して異種である。「大規模に」とは、ネットワークを介したレガシーのビデオおよびオーディオメディアの配信と同等の配信を達成するサービスプロバイダによるメディアの配信、例えば、Netflix、Hulu、Comcastのサブスクリプション、およびSpectrumのサブスクリプションを指すことがある。
【0026】
実施形態によれば、ネットワークを介した没入型メディアの配信のためのエンドポイントとして機能するクライアントデバイスはすべて非常に多様である。ネットワークを介したあらゆるメディアの配信は、入力またはネットワーク「取り込み」メディアフォーマットから配信メディアフォーマットにメディアを再フォーマットするメディア配信システムおよびアーキテクチャを用いてもよく、その配信メディアフォーマットは、対象クライアントデバイスおよびそのアプリケーションによって取り込まれるのに適しているだけでなく、ネットワークを介して「ストリーミング」されるのにも役立つ。したがって、ネットワークによって取り込まれたメディアに対して実行される以下の2つのプロセスがあってもよい。1)メディアをフォーマットAから、対象クライアントにより取り込まれるのに適したフォーマットBに変換すること、すなわち、特定のメディアフォーマットを取り込むクライアントの能力に基づくこと、および2)ストリーミングされるメディアを準備すること。
【0027】
実施形態では、メディアのストリーミングは、メディアのフラグメント化および/またはパケット化を広く指し、それにより、メディアの時間的または空間的構造のいずれかまたは両方に従って論理的に編成およびシーケンス化された連続した小さいサイズのチャンクでネットワークを介してメディアを配信することができる。フォーマットAからフォーマットBへのメディアの変換(「トランスコーディング」と呼ばれることもある)は、クライアントデバイスにメディアを配信する前に、通常はネットワークまたはサービスプロバイダによって実行されるプロセスであってもよい。そのようなトランスコーディングは、フォーマットBが、対象クライアントデバイスによって取り込まれ得る好ましいフォーマットもしくは唯一のフォーマットである、または商用ネットワークなどの制約のあるリソースを介した配信により適しているという事前知識に基づいて、フォーマットAからフォーマットBにメディアを変換することから構成され得る。多くの場合、すべてではないが、メディアを変換するステップと、ストリーミングされるメディアを準備するステップの両方が、メディアがネットワークから対象クライアントデバイスによって受信および処理され得る前に必要である。
【0028】
メディアを変換(Converting)(または変換(transforming))し、ストリーミング用にメディアを準備することは、メディアをクライアントデバイスに配信する前に、ネットワークによって取り込まれたメディアに作用するプロセスのステップである。処理(すなわち、ストリーミングのための変換および準備)の結果は、配信メディアフォーマット、または単に配信フォーマットと呼ばれるメディアフォーマットである。これらのステップは、所与のメディアデータオブジェクトに対して実行される場合、クライアントがそのようなメディアの変換およびストリーミングを複数回トリガする複数の機会のために変換および/またはストリーミングされたメディアオブジェクトを必要とすることを示す情報にネットワークがアクセスできる場合、1回だけ実行されるべきである。すなわち、メディアの変換およびストリーミングのためのデータの処理および転送は、一般に、潜在的にかなりの量のネットワークおよび/または計算リソースの消費を必要とするレイテンシの発生源と見なされる。したがって、クライアントが特定のメディアデータオブジェクトを既にキャッシュに記憶しているか、またはクライアントに対してローカルに記憶している可能性があることを示す情報にアクセスできないネットワーク設計は、このような情報にアクセスできるネットワークに比べて最適に機能しない。
【0029】
シーングラフは、ベクトルベースのグラフィック編集アプリケーションおよび最新のコンピュータゲームによって一般的に使用される一般的なデータ構造であってもよく、グラフィックシーンの論理的かつしばしば(必ずしもそうとは限らない)空間的表示を配置するか、またはグラフ構造内のノードおよび頂点の集合であってもよい。
【0030】
シーンは、コンピュータグラフィックスの状況では、オブジェクト(例えば、3Dアセットーメディアアセット、メディアオブジェクト、オブジェクト、およびアセットとしても知られている場合がある)、オブジェクト属性、およびその設定内のオブジェクトの相互作用に関して空間または時間のいずれかによって境界付けられる特定の設定を記述する視覚的、音響的、および物理学ベースの特性を含む他のメタデータの集合であってもよい。
【0031】
ノードは、視覚、オーディオ、触覚、嗅覚、味覚、または関連する処理情報の論理的または空間的または時間的表示に関連する情報で構成されるシーングラフの基本要素であってもよい。各ノードは、最大で1つの出力エッジ、0つ以上の入力エッジ、およびそれに接続された少なくとも1つのエッジ(入力または出力のいずれか)を有するものとする。
【0032】
ベース層は、メディアアセットの公称表示であってもよく、通常、アセットをレンダリングするのに必要な計算リソースもしくは時間、またはネットワークを介してアセットを送信する時間を最小化するように定式化される。
【0033】
強化層は、アセットのベース層表示に適用される場合、ベース層でサポートされない機能または能力を含むようにベース層を拡張する情報のセットであってもよい。
【0034】
属性は、基準形式またはより複雑な形式(例えば、別のノードに関して)のいずれかでそのノードの特定の特性または特徴を記述するために使用されるノードに関連付けられたメタデータであってもよい。
【0035】
コンテナは、シーングラフおよびシーンのレンダリングに必要なすべてのメディアリソースを含む、すべての自然シーン、すべての合成シーン、または合成シーンと自然シーンとの組合せを表すための情報を記憶し、交換するためのシリアル化されたフォーマットであってもよい。
【0036】
シリアル化は、データ構造またはオブジェクト状態を、(例えば、ファイルまたはメモリバッファに)記憶することができ、または(例えば、ネットワーク接続リンクを介して)送信することができ、後で(場合によっては異なるコンピュータ環境で)再構築することができるフォーマットに変換するプロセスであってもよい。結果として得られた一連のビットがシリアル化フォーマットに従って再読み取りされると、これを使用して、元のオブジェクトと意味的に同一のクローンを作成することができる。
【0037】
レンダラは、音響物理学、光物理学、視覚知覚、オーディオ知覚、数学、およびソフトウェア開発に関連する学問分野の選択的な組合せに基づく(典型的にはソフトウェアベースの)アプリケーションまたはプロセスであってもよく、入力シーングラフおよびアセットコンテナが与えられると、対象デバイス上での表現に適した、またはシーングラフ内のレンダリング対象ノードの属性によって指定された所望の特性に適応した、典型的な視覚信号および/またはオーディオ信号を発する。視覚ベースのメディアアセットの場合、レンダラは、対象ディスプレイに適した、または(例えば、別のコンテナに再パッケージングされた、すなわち、グラフィックスパイプラインでの一連のレンダリングプロセスにおいて使用される)中間アセットとしての記憶に適した視覚信号を発することができ、オーディオベースのメディアアセットの場合、レンダラは、マルチチャネルラウドスピーカおよび/またはバイノーラル化されたヘッドフォンでの表現のために、または別の(出力)コンテナに再パッケージングするために、オーディオ信号を発することができる。レンダラの一般的な例は、ゲームエンジンのUnityEngineやUnrealEngineのリアルタイムレンダリング機能を含む。
【0038】
スクリプト言語は、シーングラフノードに加えられる動的な入力および可変の状態変化を処理するために、実行時にレンダラによって実行され得るインタプリタ型プログラミング言語であってもよく、この変化は、空間的および時間的なオブジェクトのトポロジ(物理的な力、制約、逆運動学、変形、衝突を含む)のレンダリングおよび評価ならびにエネルギーの伝播および輸送(光、音)に影響を及ぼす。
【0039】
シェーダは、コンピュータプログラムの一種であってもよく、元々はシェーディング(画像内の適切なレベルの明暗および色の生成)に使用されていたが、現在では、コンピュータグラフィックスの特殊効果の様々な分野で様々な特殊機能を実行し、またはシェーディングとは無関係のビデオ後処理を行い、またはグラフィックスとは全く無関係の機能さえも実行する。
【0040】
経路追跡は、シーンの照明が現実に忠実になるように3次元シーンをレンダリングするコンピュータグラフィックス方法である。
【0041】
時限メディアは、例えば、特定のクロックに従って開始時間および終了時間を有し、時間によって順序付けられ得るメディアおよび/またはメディアオブジェクトを含んでもよい。非時限メディアは、例えば、ユーザによって行われたアクションに従って実現される対話型体験のように、空間的、論理的、または時間的関係によって編成され得るメディアおよび/またはメディアオブジェクトを含んでもよい。
【0042】
ニューラルネットワークモデル(NNモデル)は、元の信号によっては明示的に提供されなかった視覚信号の新しいビューの補間を含むことができる改善された視覚出力に到達するために、視覚信号に適用される、明確に定義された数学的演算で使用される重み(すなわち、数値)を定義するパラメータおよびテンソル(例えば、行列)の集合であってもよい。
【0043】
ヘッドマウントディスプレイ、拡張現実メガネ、ハンドヘルドコントローラ、マルチビューディスプレイ、触覚グローブ、およびゲーム機を含む、消費者市場に導入されている没入型メディア対応デバイスの数は、この10年間で爆発的に増加している。さらに、ホログラフィックディスプレイおよび他の形態の体積測定ディスプレイは、今後3~5年以内に消費者市場に登場する準備ができている。しかしながら、これらのデバイスの即時の、または差し迫った可用性にもかかわらず、商用ネットワークを介した没入型メディアの配信のための一貫したエンドツーエンドエコシステムは、いくつかの理由で実現されていない。
【0044】
商用ネットワークを介した没入メディアの配信のためのコヒーレントなエンドツーエンドエコシステムが実現されていない理由の1つは、没入型ディスプレイのためのそのような配信ネットワークのエンドポイントとして機能するクライアントデバイスが、すべて非常に多様であることである。一部のクライアントデバイスは、特定の没入型メディアフォーマットをサポートしているが、他のクライアントデバイスはサポートしていない。レガシーなラスタベースのフォーマットから没入型体験を作り出すことができるものもあれば、そうでないものもある。レガシーメディアの配信のためにだけ設計されたネットワークとは異なり、多様なディスプレイクライアントをサポートしなければならないネットワークは、このようなネットワークがアダプテーションプロセスを用いて、メディアを各対象ディスプレイおよび対応するアプリケーションに適したフォーマットに変換可能となる前に、各クライアントの能力の詳細および配信されるメディアのフォーマットに関するかなりの量の情報を必要とする。このようなネットワークは、少なくとも、入力メディアソースを対象ディスプレイおよびアプリケーションに適したフォーマットに有意に適応させる方法をネットワークが確認するために、各対象ディスプレイの特性と取り込まれたメディアの複雑度とを記述する情報にアクセスする必要がある。
【0045】
異種クライアントデバイスをサポートするネットワークは、入力メディアフォーマットから特定の対象フォーマットに適応されたアセットのいくつかが同様のディスプレイ対象のセットにわたって再利用され得るという事実を活用すべきである。すなわち、対象ディスプレイに適したフォーマットに変換されると、一部のアセットは、同様のアダプテーション要件を有するいくつかのこのようなディスプレイにわたって再利用されてもよい。したがって、適応されたアセットを比較的不変の領域に記憶するためにキャッシュ機構を使用するそのようなネットワークは、より効率的である。
【0046】
没入型メディアは、シーン記述としても知られるシーングラフによって記述される「シーン」に編成されてもよい。シーングラフの範囲は、表現の一部である特定の設定を含む視覚、オーディオ、および他の形態の没入型アセットを記述することであってもよく、例えば、映画などの表現の一部である建物内の特定の場所で行われる俳優およびイベントである。単一の表現を含むすべてのシーンのリストは、シーンのマニフェストに定式化されてもよい。
【0047】
「シーン」ベースの手法の利点は、このようなコンテンツを配信しなければならない前に準備されるコンテンツの場合、表現全体で使用されるアセットのすべてと、表現内の様々なシーンにわたって各アセットが使用される頻度とを特定する「部品表」を作成することができることである。特定の表現のアセット要件を満たすために使用され得るキャッシュされたリソースの存在に関する知識を有するネットワーク。同様に、一連のシーンを表現しているクライアントデバイスは、複数のシーンにわたって使用される任意の所与のアセットの頻度に関する知識を有することを望む場合がある。例えば、メディアアセット(メディアオブジェクト、アセット、またはオブジェクトとしても知られる)が、クライアントによって処理された、または処理される複数のシーンにわたって複数回参照される場合、クライアントデバイスは、その特定のアセットを必要とする最後のシーンがクライアントデバイスによって表現されるまで、そのアセットをキャッシュリソースから破棄することを避けるべきである。
【0048】
レガシー表現デバイスの場合、配信フォーマットは、表現を作成するためにクライアント表現デバイスによって最終的に使用される「表現フォーマット」と同等または十分に同等であり得る。すなわち、表現メディアフォーマットは、そのプロパティ(解像度、フレームレート、ビット深度、色域など、…)がクライアント表現デバイスの能力に密接に調整されたメディアフォーマットである。配信フォーマット対表現フォーマットの一部の例は、ネットワークによって解像度(3840画素列×2160画素行)の超高解像度(UHD)クライアントデバイスに配信される高解像度(HD)ビデオ信号(1920画素列×1080画素行)を含む。UHDクライアントは、「超解像」と呼ばれる処理をHD配信フォーマットに施して、ビデオ信号の解像度をHDからUHDに向上させることができる。したがって、クライアントデバイスによって表現される最終的な信号フォーマットは、この例ではUHD信号である「表現フォーマット」であるが、HD信号は配信フォーマットを含む。本例では、HD信号配信フォーマットは、両方の信号が直線ビデオフォーマットであることから、UHD信号表現フォーマットに非常に類似しており、HDフォーマットをUHDフォーマットに変換するプロセスは、比較的簡単であり、ほとんどのレガシークライアントデバイス上で実行するのが容易なプロセスである。
【0049】
しかしながら、いくつかの実施形態では、対象とするクライアントデバイスのための好ましい表現フォーマットは、ネットワークによって受信される取り込みフォーマットとは大きく異なり得る。それにもかかわらず、クライアントデバイスは、メディアを取り込みフォーマットからクライアントデバイスによる表現に適した必要な表現フォーマットに変換するのに十分な計算、記憶、および帯域幅リソースにアクセスし得る。このシナリオでは、ネットワークは、取り込まれたメディアを再フォーマットするステップ、例えばメディアを第1のフォーマットAから第2のフォーマットBに「トランスコーディング」するステップをバイパスすることができ、これは、クライアントが、ネットワークが事前にそうする必要なしにすべてのメディア変換を実行するのに十分なリソースにアクセスすることができるからである。ネットワークは、依然として、メディアをクライアントにストリーミングできるように、取り込みメディアを断片化およびパッケージ化するステップを行う場合がある。
【0050】
しかしながら、いくつかの実施形態では、ネットワークによって受信された取り込まれたメディアが、クライアントの好みの表現フォーマットと大きく異なり、クライアントデバイスが、メディアを好みの表現フォーマットに変換するのに十分な計算リソース、ストレージリソース、および/または帯域幅リソースにアクセスできないことである。リソースへのアクセスがない場合、ネットワークは、取り込みフォーマットから、クライアントに代わってクライアントデバイスの好ましい表現フォーマットと同等またはほぼ同等のフォーマットへの変換の一部または全部を実行することによってクライアントを支援し得る。いくつかの実施形態では、クライアントに代わってネットワークによって提供されるこのような支援は、一般に「分割レンダリング」と呼ばれる。
【0051】
本明細書に記載の本開示の実施形態は、ネットワークサーバプロセスに応答し、クライアントデバイスに代わって本明細書に記載のアーキテクチャに関与する、「スマートクライアント」機構またはプロセスの必要性に対処する。そのような「スマートクライアント」機構は、メディアの配信が効率的に実行されるように、そして、メディアストリーミングネットワーク全体の様々な構成要素の能力の制約内で、シーンベースのメディアを没入型異種インタラクティブクライアントデバイスにストリーミングするように、設計されたネットワークに特に関連する。「スマートクライアント」は、その関連するクライアントデバイスの現在の状態に関する情報を求めるネットワークの要求に応答する特定のクライアントデバイスに関連付けられ、シーンベースのメディアの表現をレンダリングおよび作成するためのクライアントデバイス上のリソースの可用性を含む。
【0052】
本開示の残りの部分は、一般性を失うことなく、特定のクライアントデバイスの代わりに応答することができるスマートクライアントが、1つまたは複数のアプリケーションがアクティブであるクライアントデバイスの代わりに応答することもできることを想定していることに留意されたい。すなわち、クライアントデバイスの代わりに応答するという問題は、1つまたは複数のアプリケーションがアクティブであるクライアントの代わりに応答するという問題と同等である。
【0053】
さらに、「メディアオブジェクト」「メディアアセット」または「アセット」という用語は、交換可能に使用される場合があり、すべてメディアデータの特定のフォーマットの特定のインスタンスを指すことに留意されたい。「クライアントデバイス」または「クライアント」(限定なし)という用語は、メディアの表現が最終的に実行されるデバイスおよびその構成要素を指す。「スマートクライアント」という用語は、本開示に記載のクライアント、またはネットワーク対話機能を有するクライアントのネットワーク対話機能を指してもよい。
【0054】
図1Aは、実施形態による、ネットワーククラウド、エッジデバイス、またはサーバ104からクライアントデバイス108として機能するコンピューティングデバイスに、メディアを配信するためのメディア配信プロセス100の例示的な図である。
図1Aに示すように、第1のフォーマットA(以下、「取り込みメディアフォーマットA」)の1つまたは複数のシーンおよび1つまたは複数のメディアオブジェクトを含む没入型メディアを含むメディアが、コンテンツプロバイダから受信される。プロセス(すなわち、メディアフロープロセス100)は、ネットワーククラウドまたはエッジデバイス(以下、「ネットワークデバイス104」)によって実行または実施され、クライアント、例えばクライアントデバイス108に配信され得る。いくつかの実施形態では、同じプロセスは、手動プロセスまたはクライアントデバイスによって事前に実行されてもよい。ネットワークデバイス104は、例えば、配信モジュールを使用して、第1のフォーマット101のメディアを取り込み、第2のフォーマットの配信メディア102を生成および/または作成し(以下、「配信メディア作成102」)、第2のフォーマット103のメディアを配信することができる。クライアントデバイス108は、レンダリングモジュール106および表現モジュール107を含んでもよい。
【0055】
一態様によれば、ネットワークデバイス104は、コンテンツプロバイダなどから取り込まれたメディアを受信してもよい。メディアストリーミングネットワークは、取り込みメディアのフォーマットAに記憶された取り込まれたメディアを取得することができる。メディアの潜在的な代替表示を作成するために、取り込みメディアの任意の必要な変換または条件を使用して、配信メディアを作成および/または生成することができる。すなわち、取り込みメディア内のメディアオブジェクトの配信フォーマットを作成することができる。上述したように、配信フォーマットは、メディアを配信フォーマットBにフォーマットすることによってクライアントに配信され得るメディアフォーマットである。配信フォーマットBは、クライアントデバイス108にストリーミングされる準備ができているフォーマットである。配信メディア作成102は、特定のメディアオブジェクトがクライアントデバイス108に既にストリーミングされているかどうかを判定するための意思決定プロセスを実行する最適化再利用ロジックを含んでもよい。配信メディア作成102および最適化再利用ロジックに関連するさらなる動作は、
図1Bを参照して詳細に説明される。
【0056】
メディアフォーマットAおよびBは、特定のメディアフォーマット仕様の同じシンタックスに従う表示であってもなくてもよいが、フォーマットBは、ネットワークプロトコルを介したメディアの配信を容易にする方式に調整される可能性が高い。ネットワークプロトコルは、例えば、コネクション型プロトコル(TCP)またはコネクションレス型プロトコル(UDP)であってもよい。ネットワークデバイス104の配信モジュールは、ネットワーク接続105を介してネットワークデバイス104からクライアントデバイス108にストリーミング可能メディア(すなわち、メディアフォーマットB)をストリーミングする。
【0057】
クライアントデバイス108は、レンダリングモジュール106を使用して表現のための配信メディアおよびレンダリングメディアを受信することができる。レンダリングモジュール106は、目標とされているクライアントデバイス108に応じて、初歩的または同様に洗練されたものであり得るいくつかのレンダリング機能にアクセスすることができる。レンダリングモジュール106は、表現フォーマットCで表現メディアを作成することができる。表現フォーマットCは、第3のフォーマット仕様に従って表現されてもされなくてもよい。したがって、表現フォーマットCは、メディアフォーマットAおよび/またはBと同じであっても異なっていてもよい。レンダリングモジュール106は、表現フォーマットCを表現モジュール107へ出力し、表現モジュール107は、クライアントデバイス108のディスプレイ(または同様のもの)内に表現メディアを表現し得る。
【0058】
本開示の実施形態は、ネットワークからクライアントにアセットをパッケージングしてストリーミングするシーケンス順序を計算するためにネットワークによって用いられる意思決定プロセスを容易にする。この場合、表現を構成する1つ以上のシーンのセットにわたって利用されるすべてのアセットは、メディア再使用アナライザによって解析されて、表現を構成するすべてのシーンにわたって各アセットが使用される頻度を判定する。したがって、特定のシーンのアセットがパッケージングされてクライアントにストリーミングされる順序は、表現を構成するシーンのセットにわたって各アセットが使用される頻度に基づくことができる。
【0059】
実施形態は、没入型メディアシーンを分析して、ネットワークまたはクライアントによって採用されるときに、フォーマットAからフォーマットBへのメディアオブジェクトの変換が完全にネットワークによって実行されるべきか、完全にクライアントによって実行されるべきか、または両方の混合を介して(どのアセットがクライアントまたはネットワークによって変換されるべきかの指示と共に)実行されるべきかに関する指示を提供する意思決定プロセスをサポートするために使用され得る十分な情報を取得する機構またはプロセスの必要性に対処する。そのような没入型メディアデータ複雑度アナライザは、自動化された状況でクライアントまたはネットワークのいずれかによって、または例えば人間がシステムもしくはデバイスを操作することによって手動で使用され得る。
【0060】
実施形態によれば、入力没入型メディアソースを特定のエンドポイントクライアントデバイスに適応させるプロセスは、同じ入力没入型メディアソースを特定のクライアントエンドポイントデバイス上で実行されている特定のアプリケーションに適応させるプロセスと同じであってもよく、または同様であってもよい。したがって、入力メディアソースをエンドポイントデバイスの特性に適応させる問題は、特定の入力メディアソースを特定のアプリケーションの特性に適応させる問題と同じ複雑度である。
【0061】
図1Bは、実施形態による、配信メディア作成102のワークフローである。より具体的には、
図1Bのワークフローは、特定のメディアオブジェクトがクライアントデバイス108に既にストリーミングされているかどうかを判定するための意思決定プロセスを支援する再利用ロジックの意思決定プロセスである。
【0062】
152において、配信メディア作成プロセスを開始する。155において、現在のメディアオブジェクトが以前にクライアントデバイス108にストリーミングされたかどうかを判定するために、条件ロジックが実行することができる。メディアオブジェクトが以前にクライアントにストリーミングされているかどうかを判定するために、表現のために固有アセットのリストにアクセスすることができる。現在のメディアオブジェクトが以前にストリーミングされている場合、動作160に進む。動作160において、クライアントが現在のメディアオブジェクトを既に受信しており、ローカルキャッシュまたは他のキャッシュからメディアオブジェクトのコピーにアクセスすべきであることを識別するためのインジケータ(後に「プロキシ」とも呼ばれる)が作成される。メディアオブジェクトが以前にストリーミングされていないと判定された場合、プロセスは動作165に進む。動作165において、メディアオブジェクトを、変換および/または配信のために準備することができ、メディアオブジェクトのための配信フォーマットが作成される。その後、現在のメディアオブジェクトのプロセスは終了する。
【0063】
図2Aは、ネットワークを介して取り込まれたメディアを処理するための例示的なワークフローである。
図2Aに示すワークフローは、実施形態によるメディア変換意思決定プロセス200を示す。メディア変換意思決定プロセス200は、クライアントデバイスにメディアを配信する前にネットワークがメディアを変換すべきかどうかを判定するために採用される。メディア変換意思決定プロセス200は、ネットワーク内の手動または自動プロセスを介して処理され得る。
【0064】
フォーマットAで表される取り込みメディアは、コンテンツプロバイダによってネットワークに提供される。205において、メディアは、コンテンツプロバイダからメディアストリーミングネットワークによって取り込まれる。210において、まだ知られていない場合、対象クライアントの属性が取得される。属性は、対象クライアントの処理能力を記述する。
【0065】
215において、ネットワーク(またはクライアント)が、取り込まれたメディアの変換を支援すべきかどうかが判定される。いくつかの実施形態では、215において、メディアが対象クライアントにストリーミングされる前に、取り込まれたメディア(例えば、フォーマットAからフォーマットBへの1つまたは複数のメディアオブジェクトの変換)内に含まれるメディアアセットのいずれかに対するフォーマット変換があるかどうかが、具体的に判定される。215において、判定は、メディアがその元の取り込まれたフォーマットAでストリーミングされ得るかどうか、またはクライアントによるメディアの表現を容易にするために異なるフォーマットBに変換されなければならないかどうかの判定に基づいていてもよい。そのような意思決定(すなわち、メディアをクライアントにストリーミングする前に取り込みメディアの変換が必要であるかどうか、またはメディアをクライアントに直接その元の取り込みフォーマットAでストリーミングする必要があるかどうかを判定するために)は、取り込みメディアの態様または特徴を記述する情報へのアクセスを必要とする場合がある。
【0066】
ネットワーク(またはクライアント)がいずれかのメディアアセットの変換を支援すべきであると判定された場合(215で「はい」)、プロセス200は220に進む。
【0067】
220において、取り込まれたメディアが、フォーマットAからフォーマットBに変換され、変換されたメディア222を生成する。変換されたメディア222は、225において、メディアをクライアントにストリーミングするための準備プロセスを受ける。この場合、変換されたメディア222(すなわち、225における入力メディア)がストリーミングされるように準備される。
【0068】
没入型メディアのストリーミングは、特にそのようなメディアが「フレームベース」ではなく「シーンベース」である場合、比較的初期段階であり得る。例えば、フレームベースのメディアのストリーミングは、ビデオのフレームのストリーミングと同等となり得ることができ、各フレームは、シーン全体の完全なピクチャまたはクライアントによってプレゼンテーションされるオブジェクト全体の完全なピクチャをキャプチャする。フレームのシーケンスは、それらの圧縮形式からクライアントによって再構成され、視聴者に表現されると、没入型表現全体または表現の一部を含むビデオシーケンスを作成する。フレームベースのストリーミングの場合、フレームがネットワークからクライアントにストリーミングされる順序は、所定の仕様(例えば、汎用オーディオ視覚サービスのためのITUーT勧告H.264アドバンストビデオコーディングなど)と一致し得る。しかしながら、フレームベースのストリーミングとは異なり、メディアのシーンベースのストリーミングは、それ自体が互いに独立していてもよい個々のアセットで構成されてもよい。所与のシーンベースのアセットは、特定のシーン内で、または一連のシーンにわたって複数回使用することができる。クライアント、または任意の所与のレンダラが特定のアセットを再構築するのに費やす必要がある時間量は、アセットのサイズ、レンダリングを実行する計算リソースの可用性、およびアセットの全体的な複雑度を記述する他の属性を含むがこれらに限定されない多くの要因に依存し得る。シーンベースのストリーミングをサポートするクライアントは、シーン内のアセットごとのレンダリングの一部または全部が、シーンの表現のいずれかが開始できる前に完了することを必要とする場合がある。したがって、アセットがネットワークからクライアントにストリーミングされる順序は、システムの全体的な性能に影響を及ぼす可能性がある。
【0069】
フォーマットAから別のフォーマット(例えば、フォーマットB)へのメディアの変換は、完全にネットワークによって、完全にクライアントによって、またはネットワークとクライアントとの両方の間で一緒に行われ得る。分割レンダリングでは、クライアントとネットワークの両方が行わなければならない作業を特徴付ける完全な情報を有するように、メディアフォーマットを記述する属性の辞書が必要とされ得ることが明らかになる。さらに、例えば、利用可能な計算リソース、利用可能なストレージリソース、および帯域幅へのアクセスに関して、クライアントの能力の属性を提供する辞書が同様に必要とされ得る。さらに、取り込みメディアフォーマットの計算、ストレージ、または帯域幅の複雑度のレベルを特徴付ける機構が必要とされ、その結果、ネットワークとクライアントが一緒に、または単独で、ネットワークがクライアントにメディアを配信するための分割レンダリングプロセスを採用するかどうか、またはいつ採用するかを判定し得る。
【0070】
ネットワーク(またはクライアント)がいずれのメディアアセットの変換も支援すべきでない(または支援する必要がない)と判定された場合(215で「いいえ」)、プロセス200は225に進む。225において、メディアはストリーミングのために準備される。この場合、取り込まれたデータ(すなわち、元の形態のメディア)がストリーミングされるように準備される。
【0071】
最後に、メディアデータがストリーミング可能なフォーマットになると、225で準備されたメディアは、230でクライアントにストリーミングされる。いくつかの実施形態では、(
図1Bを参照して説明したように)メディアの表現を完了するためにクライアントによって必要とされるか、または必要とされる特定のメディアオブジェクトの変換および/またはストリーミングが回避され得る場合、クライアントのメディアの表現を完了するために必要とされ得るメディアオブジェクトへのアクセスまたは可用性をクライアントが依然として有すると仮定して、ネットワークは、取り込みメディアの変換および/またはストリーミングをスキップすることができる(すなわち、215~230)。クライアントがその最大限の能力で実行する能力を促進するために、シーンベースのアセットがネットワークからクライアントにストリーミングされる順序に関して、ネットワークがクライアントのパフォーマンスを向上させるためにそのような順序を判定できるように、ネットワークが十分な情報を備えることが望ましい場合がある。例えば、特定の表現において複数回使用されるアセットの反復的な変換および/またはストリーミングステップを回避するのに十分な情報を有するそのようなネットワークは、このように設計されていないネットワークよりも最適に実行することができる。同様に、クライアントへのアセットの配信を「インテリジェントに」順序付けることができるネットワークは、クライアントがその十分な潜在力で実行する能力を促進することができる(すなわち、エンドユーザにとってより楽しむことができる体験を作り出すために)。
【0072】
図2Bは、実施形態による、メディアアセット再使用および冗長キャッシュを判定するためのアセット再使用プロセスを含む例示的なメディア変換プロセス250を示す。メディア変換意思決定プロセス200と同様に、アセット再使用および冗長キャッシュプロセスを使用するメディア変換プロセス250は、ネットワークを介してメディアを取り込み、メディアをクライアントに配信する前にネットワークがメディアを変換すべきかどうかを判定する。
【0073】
フォーマットAで表される取り込みメディアは、コンテンツプロバイダによってネットワークに提供される。一実施形態によれば、動作255~260および275~286は、
図2Aに示す205~210および215~230と同様に実行される。255において、メディアは、コンテンツプロバイダからネットワークによって取り込まれる。次に、260において、まだ知られていない場合、対象クライアントの属性が取得される。属性は、対象クライアントの処理能力を記述する。
【0074】
ネットワークが以前に特定のメディアオブジェクトまたは現在のメディアオブジェクトをストリーミングしたことがあると判定された場合(265で「はい」)、プロセスは270に進む。270において、以前にストリーミングされたメディアオブジェクトの代わりにプロキシが作成され、クライアントが以前にストリーミングされたオブジェクトのそのローカルコピーまたはメディアストリーミングネットワークによって管理される冗長キャッシュに記憶された、以前にストリーミングされたオブジェクトのコピーを使用すべきであることを示す。
【0075】
ネットワークがメディアオブジェクトを以前にストリーミングしていないと判定された場合(265で「いいえ」)、プロセスは275に進む。275において、ネットワークまたはクライアントが、255において、取り込まれたメディア内に含まれるメディアアセットのいずれかに対して任意のフォーマット変換を実行すべきかどうかが判定される。例えば、変換は、メディアがクライアントにストリーミングされる前に、特定のメディアオブジェクトをフォーマットAからフォーマットBに変換することを含み得る。動作275は、
図2Aに示す215で実行されるものと同様であってもよい。
【0076】
メディアアセットをネットワークで変換すべきであると判定された場合(275で「はい」)、プロセスは280へ進む。280において、メディアオブジェクトは、フォーマットAからフォーマットBに変換される。次に、変換されたメディアは、クライアントにストリーミングされるように準備される(286)。
【0077】
メディアアセットをネットワークで変換すべきでないと判定された場合(275で「いいえ」)、プロセスは285へ進む。285において、メディアオブジェクトは、クライアントにストリーミングされるように準備される。メディアがストリーミング可能フォーマットになると、285で準備されたメディアは、286でクライアントにストリーミングされる。
【0078】
図2Cは、クライアント側のスマートクライアントが、以前にストリーミングされたメディアがローカルまたは他の近くのキャッシュでまだ利用可能であるかどうか、またはクライアント側およびネットワーク側で実装されたアセットクエリロジックを使用しないかどうかを、ネットワーク側が判定するのをどのように支援するかの例示的なプロセス2500を示す。ネットワーク側の動作255~265は、
図2Bに示す動作255~265と同様であるが、特定のアセットがクライアントに既にアクセス可能であるときを判定する際のスマートクライアントの役割を示すために、クライアント側で実装されたアセットクエリロジックプロセスを有する。255において、メディアがネットワークに取り込まれる。260において、ネットワークは、対象クライアント(図示せず)の処理能力を記述する属性を取得する。次いで、ネットワークは、クライアント側のアセットクエリロジックへの要求を開始して、アセットがクライアントにストリーミングされるべきかどうかを判定する。265ー1において、スマートクライアントは、表現のためにスマートクライアントに必要とされるアセットに関する情報をネットワークから受信する。265ー3において、スマートクライアントは、ネットワークからの要求に基づいて、ローカルキャッシュまたはネットワークベースのストレージ(例えば、データベース)に記憶された以前にストリーミングされたアセットのリストにアクセスする。265ー2において、スマートクライアントは、要求されたアセットがクライアントデバイスに既にアクセス可能であるかどうかを判定し、アセットがストリーミングされるべきかどうかに関する情報を、問題となっているアセットがストリーミングされるべきかどうかに関するネットワークのアセットクエリロジックに返答する。アセットがストリーミングされる必要がない場合、ネットワークは、
図2Bに示すように、270で問題となっているアセットのプロキシを作成し、285でプロキシをメディアに挿入してクライアントへのストリーミングを準備する。アセットがクライアントにストリーミングされる必要がある場合、ネットワークはその後、275において、クライアントにストリーミングされるメディアの任意の変換をネットワークが支援すべきかどうかを判定することに進む。そのような変換が必要な場合(275で「はい」)、ネットワークは、それに応じてメディアアセット上で変換を実行し、次いで285で、変換されたメディアアセットをクライアントにストリーミングされるメディアにマージする。ネットワークがそのような変換の必要がないと判定した場合(275で「いいえ」)、ネットワークは、クライアントにストリーミングされる元のメディアアセットを有するメディアを準備する。最後に、286において、ネットワークは、クライアントにメディアをストリーミングする。
【0079】
図2Dは、スマートクライアントがそのデバイスステータス、プロファイル情報、およびリソース可用性を取得し、上述のアセット再使用ロジックに関連してそのような情報をネットワークに返答する方法の例示的なプロセス2600を示す。プロセス2600は、
図2Cに示すプロセス2500と同様であるが、メディアをレンダリングするために使用されるリソースのステータス、プロファイル、および可用性を含むクライアントデバイスの能力に関する情報を取得する際のスマートクライアントの役割を示すために、クライアント側でスマートクライアントによって実行されるクライアントの属性を取得する動作を伴う。255において、メディアは、ネットワークに取り込まれ、クライアントデバイス(図示せず)によって要求される。次いで、ネットワークは、260において、デバイス属性およびリソース状況を取得するためにスマートクライアントへの要求を開始する。次に、スマートクライアントは、260ー1において、そのデバイス属性およびリソース可用性についてクライアントデバイスへのクエリを開始する。次いで、クライアントデバイスは、260ー3において、クライアントデバイスに関する属性(例えば、メモリ、GPU、CPU、およびそれらの現在のステータス)と、260ー2において、そのプロファイルおよび将来の作業を処理するためのリソース可用性を含む他の利用可能なリソースに関する記述情報と、をスマートクライアントに返答する。次いで、スマートクライアントは、260ー4において、対象クライアントの処理能力と、クライアントデバイス上のリソースのステータスおよび可用性を記述するクライアントデバイス属性と、をネットワークに配信する。次いで、265において、クライアントに関する受信情報に基づいて、ネットワークは、アセットがクライアントにストリーミングされるべきどうかを判定する。アセットがストリーミングされる必要がない場合、ネットワークは、
図2Bに示すように、270で問題となっているアセットのプロキシを作成し、285でプロキシをメディアに挿入してクライアントへのストリーミングを準備する。アセットがクライアントにストリーミングされる必要がある場合、ネットワークはその後、275において、クライアントにストリーミングされるメディアの任意の変換をネットワークが支援すべきかどうかを判定することに進む。そのような変換が必要な場合(275で「はい」)、ネットワークは、それに応じてメディアアセット上で変換を実行し、次いで285で、変換されたメディアアセットをクライアントにストリーミングされるメディアにマージする。ネットワークがそのような変換の必要がないと判定した場合(275で「いいえ」)、ネットワークは、クライアントにストリーミングされる元のメディアアセットを有するメディアを準備する。最後に、ネットワークは、
図2Bに示すように、286において、クライアントにメディアをストリーミングする。
【0080】
図2Eは、スマートクライアントがネットワークからストリーミングされたメディアをどのように要求および受信するかの例示的なプロセス2700を示す。プロセス2700は、
図2Dに示すプロセス2600と同様であるが、クライアント側のスマートクライアントによって管理されるメディアの要求および受信が追加されている。
図2Eに示すように、スマートクライアントは、まず255ー1でユーザからメディアの要求を受信する。例えば、要求はクライアントデバイスによって受信され、次いで255ー1でスマートクライアントに転送される。次に、スマートクライアントは、255ー2において、メディア要求をネットワークサーバに転送する。メディア要求を受信すると、ネットワークサーバは、
図2Bに示すように、260において、デバイス属性およびリソースステータスを取得するステップを開始する。クライアントデバイス上のリソースのステータスおよび可用性は、ネットワークサーバに返される。次に、ネットワークは、
図2Bに示すようにアセットクエリロジックを開始して、265でアセットがクライアントにストリーミングされるべきかどうかを判定する。アセットがストリーミングされる必要がない場合、ネットワークは、
図2Bに示すように、270で問題となっているアセットのプロキシを作成し、285でプロキシをメディアに挿入してクライアントへのストリーミングを準備する。アセットがクライアントにストリーミングされる必要がある場合、ネットワークはその後、275において、クライアントにストリーミングされるメディアの任意の変換をネットワークが支援すべきかどうかを判定することに進む。そのような変換が必要な場合(275で「はい」)、ネットワークは、それに応じてメディアアセット上で変換を実行し、次いで285で、変換されたメディアアセットをクライアントにストリーミングされるメディアにマージする。ネットワークがそのような変換の必要がないと判定した場合(275で「いいえ」)、ネットワークは、クライアントにストリーミングされる元のメディアアセットを有するメディアを準備する。最後に、ネットワークは、
図2Bに示すように、286において、クライアントにメディアをストリーミングする。その後、スマートクライアントは、255ー3においてメディアストアにメディアを記憶し、クライアントデバイスは、255ー4においてメディアストアからメディアにアクセスすることができる。
【0081】
図3A~
図3Bは、時限メディアのための時限シーンを指し、
図4A~
図4Bは、非時限メディアのための非時限シーンを指す。時限シーンおよび非時限シーンは、様々なシーン表示またはシーン記述に対応してもよい。
図3A~
図3Bと
図4A~
図4Bとは両方とも、特定のクライアントエンドポイントの能力に一致するようにソース取り込みメディアフォーマットから適合された単一の例示的な包括的メディアフォーマットを採用する。すなわち、包括的メディアフォーマットは、クライアントデバイスにストリーミング可能な配信フォーマットである。包括的メディアフォーマットは、その構造において、多種多様なメディア属性に対応するのに十分にロバストであり、各層がメディアの表現に寄与する顕著な情報の量に基づいて、それぞれが階層化され得る。
【0082】
図3Aに示すように、時限メディア表示300は、シーン情報301のリストを含む時限シーンマニフェスト300Aを含む。各シーン情報301は、シーン情報301を構成する処理情報およびメディアアセットのタイプ、例えば、アセットリストおよび他の処理情報、を別々に記述する構成要素302のリストを指す。構成要素302のリストは、アセットのタイプ(例えば、
図3に示すように、プロキシ視覚および聴覚アセット)に対応するプロキシアセット308を参照してもよい。構成要素302は、他のシーンで以前に使用されたことがない固有アセットのリストを指す。例えば、(時限)シーン1の固有アセットのリスト307を
図3に示す。構成要素302はまた、ベース層304および属性強化層305を含むアセット303を指す。ベース層は、計算リソース、アセットをレンダリングするのに必要な時間、および/またはネットワークを介してアセットを送信するのに必要な時間を最小限に抑えるように定式化できるアセットの公称表示である。この例示的な実施形態では、ベース層304のそれぞれは、表現を含むシーンのセットにわたってアセットが使用された回数を示す数的頻度メトリックを指す。強化層は、アセットのベース層表示に適用されると、ベース層でサポートされない可能性がある機能または能力を含むようにベース層を拡張する情報のセットであってもよい。
【0083】
図3Bは、頻度を降順に並べた時限メディア表示3100を示す。この時限メディア表示3100は、
図3Bに示すアセットが各アセットタイプ内のアセットタイプおよび降順の頻度値によってリスト内で順序付けられていることを除いて、
図3Aに示す時限メディア表示300と同様である。時限シーンマニフェスト303Aは、シーン情報3031のリストを含む。各シーン情報3031は、シーン情報3031を含む処理情報およびメディアアセットのタイプを別々に記述する構成要素3032のリストを指す。構成要素3032は、アセット3033を参照し、アセット3033は、ベース層3034および属性強化層3035をさらに参照する。ベース層3034のそれぞれは、対応する頻度メトリックにおける降順値に従って順序付けられる。他のシーンにおいて以前に使用されたことがない固有アセットのリストが、3037において提供される。
【0084】
図4Aに示すように、非時限メディアおよび複雑度表示400はシーン情報401を含む。シーン情報401は、(クロック、タイマなどに従って)開始および終了時間/継続時間と関連付けられない。非時限シーンマニフェスト(図示せず)は、シーン1.0に分岐することができる他のシーンがないシーン1.0を参照することができる。シーン情報401は、シーン情報401を構成する処理情報およびメディアアセットのタイプを別々に記述する構成要素402のリストを指す。構成要素402は、視覚アセット、オーディオアセット、触覚アセット、および時限アセット(アセット403と総称する)を指す。アセット403は、ベース層404ならびに属性強化層405および406をさらに指す。この例示的な実施形態では、ベース層404のそれぞれは、表現を構成するシーンのセットにわたってアセットが使用された回数を示す数的頻度値を指す。シーン情報401はまた、非時限メディアソースのためのものである他の非時限シーン(すなわち、
図4Aでは非時限シーン2.1~2.4として参照される)、および/または時限メディアシーン(すなわち、
図4において時限シーン3.0として参照される)のためのものであるシーン情報407を指すことができる。
図4Aの例では、非時限没入型メディアは、5つのシーンのセット(時限および非時限の両方を含む)を含む。固有アセットのリスト408は、より高次の(例えば、親)シーンで以前に使用されたことがない特定のシーンに関連付けられた固有アセットを識別する。
図4Aに示す固有アセットのリスト408は、非時限シーン2.3の固有アセットを含む。
【0085】
図4Bは、非時限メディアおよび順序付き複雑度表示4100を示す。非時限シーンマニフェスト(図示せず)は、シーン1.0に分岐することができる他のシーンがないシーン1.0を参照する。シーン情報4041は、クロックなどに応じた開始時間および終了時間に関連付けられていない。シーン情報4041はまた、シーン情報4041を含む処理情報およびメディアアセットのタイプを別々に記述する構成要素4042のリストを指す。構成要素4042は、アセット4043を参照し、アセット4043は、ベース層4044および属性強化層4045、4046をさらに参照する。この実施形態では、各ベース層4044は、表現を構成するシーンのセットにわたってアセットが使用された回数を示す数的頻度値を指す。この実施形態では、触覚アセット4043は頻度値を増加させることによって編成され、オーディオアセット4043は頻度値を減少させることによって編成される。また、シーン情報4041は、非時限メディア用の他のシーン情報4041を指す。シーン情報4041は、時限メディアシーンのためのシーン情報4047も指す。リスト4046は、高次(例えば、親)シーンで以前に使用されたことがない特定のシーンに関連付けられた固有アセットを識別する。
【0086】
包括的メディアフォーマットに従ってストリーミングされるメディアは、レガシー視覚およびオーディオメディアに限定されない。包括的するメディアフォーマットは、機械と相互作用して人間の視覚、聴覚、味覚、触覚、嗅覚を刺激する信号を生成することができる任意のタイプのメディア情報を含み得る。
図3A~
図3Bと
図4A~
図4Bに示すように、包括的メディアフォーマットに従ってストリーミングされるメディアは、時限メディアもしくは非時限メディア、または両方の組み合わせであってもよい。包括的メディアフォーマットは、ベース層および強化層アーキテクチャを使用して、メディアオブジェクトの階層化表示を可能にすることによってストリーミング可能である。
【0087】
いくつかの実施形態では、別々のベース層および強化層は、各シーン内のメディアオブジェクトについての多重解像度または多重モザイク化の分析技術の適用によって計算される。この計算技術は、ラスタベースの視覚フォーマットに限定されない。
【0088】
いくつかの実施形態では、幾何学的オブジェクトのプログレッシブ表示は、ウェーブレット分析技術を使用して計算されたオブジェクトの多重解像度表示であり得る。
【0089】
いくつかの実施形態では、階層化表示メディアフォーマットにおいて、強化層は、ベース層に異なる属性を適用し得る。例えば、1つまたは複数の強化層は、ベース層によって表される視覚オブジェクトの表面の材料特性を改良し得る。
【0090】
いくつかの実施形態では、階層化表示メディアフォーマットにおいて、属性は、例えば、表面を滑らかなテクスチャから多孔質テクスチャに、またはつや消しの表面から光沢のある表面に変更することによって、ベース層によって表されるオブジェクトの表面のテクスチャを改良し得る。
【0091】
いくつかの実施形態では、階層化表示メディアフォーマットにおいて、シーン内の1つまたは複数の視覚オブジェクトの表面は、ランバート面から光線追跡可能な表面に変更されてもよい。
【0092】
いくつかの実施形態では、階層化表示メディアフォーマットにおいて、ネットワークは、クライアントがシーンの公称表現を作成し得るようにベース層表示をクライアントに配信してもよく、クライアントは、ベース層の解像度または他の特性を改良するために追加の強化層の送信を待つ。
【0093】
実施形態では、強化層内の属性の解像度または改良情報は、ベース層内のオブジェクトの解像度と明示的に結合されない。さらに、包括的メディアフォーマットは、表現デバイスまたはマシンによって表現または作動され得る任意のタイプの情報メディアをサポートし得、それによって異種のクライアントエンドポイントへの異種のメディアフォーマットのサポートを可能にする。いくつかの実施形態では、メディアフォーマットを配信するネットワークは、最初にクライアントエンドポイントに問い合わせてクライアントの能力を判定する。クエリに基づいて、クライアントがメディア表示を有意な取り込みができない場合、ネットワークは、クライアントによってサポートされていない属性の層を除去し得る。いくつかの実施形態では、クライアントがメディア表示の有意な取り込みができない場合、ネットワークは、メディアをその現在のフォーマットからクライアントエンドポイントに適したフォーマットに適応させ得る。例えば、ネットワークは、ネットワークベースのメディア処理プロトコルを使用して、立体視覚メディアアセットを同じ視覚アセットの2D表示に変換することによってメディアを適応させ得る。いくつかの実施形態では、ネットワークは、適切なフォーマットにメディアを再フォーマットするためにニューラルネットワーク(NN)プロセスを採用することによって、または任意選択的にクライアントエンドポイントによって必要とされるビューを合成することによって、メディアを適応させ得る。
【0094】
完全な(または部分的に完全な)没入型体験(ライブストリーミングイベント、ゲーム、またはオンデマンドアセットの再生)のためのシーンのマニフェストは、表現を作成するためにレンダリングおよび取り込みに必要な最小限の量の情報を含むシーンによって編成される。シーンのマニフェストは、クライアントによって要求された没入型体験の全体がレンダリングされる個々のシーンのリストを含む。各シーンには、シーンジオメトリのストリーミング可能なバージョンに対応するシーン内の幾何学的オブジェクトの1つまたは複数の表示が関連付けられている。シーンの一実施形態は、シーンの幾何学的オブジェクトの低解像度バージョンを参照し得る。同じシーンの他の実施形態は、同じシーンの幾何学的オブジェクトにさらなる詳細を追加するか、またはモザイク化を増加させるための、シーンの低解像度表示のための強化層を参照し得る。上述したように、各シーンは、シーンの幾何学的オブジェクトの詳細を漸進的に増加させるために、1つまたは複数の強化層を有してもよい。シーン内で参照されるメディアオブジェクトの各層は、リソースがネットワーク内でアクセスされ得る場所のアドレスを指すトークン(例えば、ユニフォームリソース識別子(URI))に関連付けられ得る。そのようなリソースは、コンテンツがクライアントによってフェッチされ得るコンテンツ配信ネットワーク(CDN)に類似している。幾何学的オブジェクトの表示のためのトークンは、ネットワーク内の位置またはクライアント内の位置を指してもよい。すなわち、クライアントは、そのリソースがネットワークベースのメディア処理のためにネットワークに利用可能であることをネットワークにシグナリングしてもよい。
【0095】
実施形態によれば、シーン(時限または非時限)は、多平面画像(MPI)または多球面画像(MSI)としてシーングラフによって対応できる。MPIおよびMSI技術の両方は、自然なコンテンツ(すなわち、1つまたは複数のカメラから同時にキャプチャされた現実世界の画像)についてディスプレイに依存しないシーン表示の作成を支援する技術の例である。一方、シーングラフ技術は、合成表示の形態で自然画像とコンピュータ生成画像の両方を表すために採用され得る。しかしながら、そのような表示は、コンテンツが1つまたは複数のカメラによって自然なシーンとしてキャプチャされる場合に作成するために特に計算集約的である。自然にキャプチャされたコンテンツのシーングラフ表示は、作成するために時間と計算の両方に集約的であり、対象の没入型クライアントディスプレイの視錐台を満たすのに十分かつ適切な数のビューを補間するために後で使用できる合成表示を作成するために、写真測量または深層学習またはその両方の技術を用いた自然画像の複雑な分析を必要とする。結果として、そのような合成表示は、リアルタイム配信を必要とするユースケースを考慮するためにリアルタイムで実際に作成することができないため、自然なコンテンツを表示するための候補として考慮するには実用的ではない。したがって、コンピュータ生成画像の最良の表示は、合成モデルでシーングラフを使用することであり、これは、コンピュータ生成画像が3Dモデリングプロセスおよびツールを使用して作成され、合成モデルでシーングラフを使用すると、コンピュータ生成画像の最良の表示が得られるからである。
【0096】
図5は、実施形態による、自然メディア合成プロセス500の一例を示す。自然メディア合成プロセス500は、自然シーンからの取り込みフォーマットを、異種クライアントエンドポイントにサービスを提供するネットワークの取り込みフォーマットとして使用することができる表示に変換する。破線510の左側は、自然メディア合成プロセス500のコンテンツキャプチャ部分である。破線510の右側は、自然メディア合成プロセス500の取り込みフォーマット合成(自然画像用)である。
【0097】
図5に示すように、第1のカメラ501は、単カメラレンズを使用して、例えば人物(すなわち、
図5に示す俳優)のシーンをキャプチャする。第2のカメラ502は、リング状オブジェクトの周囲に5つのカメラレンズを装着することで、5つの発散する視野のシーンをキャプチャする。
図5に示す第2のカメラ502の配置は、VRアプリケーション用の全方向コンテンツをキャプチャするために一般的に使用される例示的な配置である。第3のカメラ503は、7つのカメラレンズを球体の内径部分に装着することにより、7つの視野が収束するシーンをキャプチャする。第3のカメラ503の配置は、光照射野またはホログラフィック没入型ディスプレイのための光照射野をキャプチャするために一般的に使用される例示的な配置である。実施形態は、
図5に示す構成に限定されない。第2のカメラ502および第3のカメラ503は、複数のカメラレンズを含んでもよい。
【0098】
自然画像コンテンツ509は、第1のカメラ501、第2のカメラ502、および第3のカメラ503から出力され、シンセサイザ504への入力として機能する。シンセサイザ504は、キャプチャNNモデル508を生成するために、トレーニング画像506の集合を使用するNNトレーニング505を採用し得る。トレーニング画像506は、事前定義されてもよく、または前の合成処理から記憶されてもよい。NNモデル(例えば、キャプチャNNモデル508)は、元の信号によって明示的に提供されなかった視覚信号の新しいビューの補間を含み得る改善された視覚出力に到達するために視覚信号に適用される明確に定義された数学的演算で使用される重み(すなわち、数値)を定義するパラメータおよびテンソル(例えば、行列)の集合である。
【0099】
いくつかの実施形態では、NNトレーニング505の代わりに写真測量プロセスが実施され得る。キャプチャNNモデル508が自然メディア合成プロセス500中に作成される場合、キャプチャNNモデル508は、自然メディアコンテンツの取り込みフォーマット507におけるアセットのうちの1つになる。取り込みフォーマット507は、例えば、MPIやMSIであってもよい。取り込みフォーマット507は、メディアアセットも含み得る。
【0100】
図6は、実施形態による、合成メディア取り込み作成プロセス600の一例を示す。合成メディア取り込み作成プロセス600は、例えばコンピュータ生成画像などの合成メディア用の取り込みメディアフォーマットを作成する。
【0101】
図6に示すように、カメラ601は、シーンの点群602をキャプチャし得る。カメラ601は、例えばLIDARカメラであってもよい。コンピュータ603は、例えば、共通ゲートウェイインターフェース(CGI)ツール、3Dモデリングツール、または別のアニメーションプロセスを採用して、合成コンテンツ(すなわち、異種クライアントエンドポイントにサービスを提供するネットワークの取り込みフォーマットとして使用することができる合成シーンの表示)を作成する。コンピュータ603は、ネットワークを介してCGIアセット604を作成し得る。さらに、センサ605Aは、シーン内の俳優605に装着されてもよい。センサ605Aは、例えば、センサが取り付けられたモーションキャプチャスーツであってもよい。センサ605Aは、俳優605の動きのデジタル記録をキャプチャして、アニメーション化されたモーションデータ606(またはMoCapデータ)を生成する。点群602、CGIアセット604、およびモーションデータ606からのデータは、合成メディア取り込みフォーマット608を作成するシンセサイザ607への入力として提供される。いくつかの実施形態では、シンセサイザ607は、NNおよびトレーニングデータを使用してNNモデルを作成し、合成メディア取り込みフォーマット608を生成し得る。
【0102】
自然コンテンツおよびコンピュータ生成(すなわち、合成)コンテンツの両方が、コンテナに記憶され得る。コンテナは、シーングラフおよびシーンのレンダリングに必要なすべてのメディアリソースを含むすべての自然、すべての合成、または合成と自然のシーンの混合を表す情報を記憶および交換するための直列化フォーマットを含むことができる。コンテンツのシリアル化プロセスは、データ構造またはオブジェクト状態を、記憶(例えば、ファイルまたはメモリバッファ)または送信(例えば、ネットワーク接続リンクを介して)し、同じまたは異なるコンピュータ環境で後で再構築することができるフォーマットに変換することを含む。結果として得られた一連のビットがシリアル化フォーマットに従って再読み取りされると、これを使用して、元のオブジェクトと意味的に同一のクローンを作成することができる。
【0103】
自然コンテンツとコンピュータ生成コンテンツの両方の最適表示における二分法は、自然にキャプチャされたコンテンツの最適な取り込みフォーマットが、リアルタイム配信アプリケーションに必須ではないコンピュータ生成(すなわち、合成)コンテンツまたは自然コンテンツの最適な取り込みフォーマットとは異なることを示唆している。したがって、実施形態によれば、ネットワークは、例えば物理カメラを使用して自然に作成されるかコンピュータによって作成されるかにかかわらず、視覚的没入型メディアのための複数の取り込みフォーマットをサポートするのに十分にロバストであることを目標とする。
【0104】
OTOY社のORBX、Pixar社のUniversal SceneDescription、およびKhronos 3D Groupによって書かれたGraphics Language Transmission Format 2.0(glTF2.0)仕様などの技術は、コンピュータ生成技術を使用して作成される視覚没入型メディア、または自然シーンの対応する合成表示を作成するために深層学習または写真測量技術が使用される自然にキャプチャされたコンテンツを表すのに適したフォーマットとしてシーングラフを具現化する(すなわち、リアルタイム配信アプリケーションには必須ではない)。
【0105】
OTOY社のORBXは、光線追跡可能、レガシー(フレームベース)、立体および他のタイプの、合成またはベクトルベースの視覚フォーマットを含む、時限または非時限の任意のタイプの視覚メディアをサポートすることが可能ないくつかのシーングラフ技術のうちの1つである。ORBXは、メッシュ、ポイントクラウド、およびテクスチャ用の自由に利用可能な、および/またはオープンソースフォーマットをネイティブにサポートするので、他のシーングラフとは異なる。ORBXは、シーングラフ上で動作する複数のベンダ技術にわたる交換を容易にすることを目的として意図的に設計されたシーングラフである。さらに、ORBXは、豊富な素材システム、オープンシェーダ言語のサポート、ロバストなカメラシステム、およびLuaスクリプトのサポートを提供する。ORBXはまた、没入型デジタル体験アライアンス(IDEA)によって使用料無料の条件でライセンスのために公開された没入型技術メディアフォーマット(Immersive Technologies Media Format)の基礎でもある。メディアのリアルタイム配信の状況では、自然なシーンのORBX表示を作成および配信する能力は、カメラによってキャプチャされたデータの複雑な分析および同じデータの合成表示への合成を実行するための計算リソースの可用性の関数である。
【0106】
Pixar社のUSDは、視覚エフェクトやプロのコンテンツ制作で広く使用されているシーングラフである。USDは、Nvidia社のグラフィック処理ユニット(GPU)を用いた3Dモデル作成およびレンダリングのための開発者向けツールのセットであるNvidia社のOmniverseプラットフォームに統合されている。Apple社およびPixar社によって公開されたUSDのサブセットは、Apple社のARKitによってサポートされているUSDZと呼ばれる。
【0107】
glTF2.0は、Khronos 3D Groupによって書かれたグラフィックス言語伝送フォーマット(Graphics Language Transmission Format)仕様のバージョンである。このフォーマットは、PNGおよびJPEG画像フォーマットを含む、一般にシーン内の静的(非時限)オブジェクトをサポートすることができる単純なシーングラフフォーマットをサポートする。glTF2.0は、単純なアニメーションをサポートしており、これは、glTFプリミティブを使用して記述された基本形状(すなわち、幾何学的オブジェクト)の並進、回転およびスケーリングのサポートを含む。glTF2.0は時限メディアをサポートしておらず、したがって、ビデオもオーディオメディア入力もサポートしていない。
【0108】
没入型視覚メディアのシーン表示のためのこれらの設計は、例として提供されているにすぎず、入力没入型メディアソースをクライアントエンドポイントデバイスの特定の特性に適したフォーマットに適応させるプロセスを指定するその能力において開示された主題を限定しない。さらに、上記の例示的なメディア表示のいずれかまたはすべては、錐台の特定の寸法に基づいて特定のディスプレイの視錐台を満たすために特定のビューの選択を可能にするかまたは容易にするNNモデルを訓練して作成するために、ディープラーニング技術を採用するか、または採用してもよい。特定のディスプレイの視錐台のために選択されるビューは、シーン表示で明示的に提供される既存のビューから、例えばMSIまたはMPI技術から補間されてもよい。ビューはまた、特定の仮想カメラ位置、フィルタ、またはこれらのレンダリングエンジンの仮想カメラの記述に基づいて、レンダリングエンジンから直接レンダリングされてもよい。
【0109】
本開示の方法およびデバイスは、自然に(例えば、1つまたは複数のカメラを用いて)キャプチャされるか、またはコンピュータ生成技術を使用して作成されるメディアのリアルタイムまたはオンデマンド(例えば、非リアルタイム)配信の両方の要件を十分に満たすことができる、比較的小さいが周知の没入型メディア取り込みフォーマットのセットがあることを考慮するのに十分にロバストである。
【0110】
NNモデルまたはネットワークベースのレンダリングエンジンのいずれかの使用による没入型メディア取り込みフォーマットからのビューの補間は、高度なネットワーク技術(例えば、モバイルネットワーク用の5G)としてさらに容易になり、光ファイバケーブルは固定ネットワークに配備される。これらの高度なネットワーク技術は、そのような高度なネットワークインフラストラクチャがますます大量の視覚情報の伝送および配信をサポートすることができるので、商用ネットワークの容量および能力を増加させる。マルチアクセスエッジコンピューティング(MEC、MultiーaccessEdgeComputing)、ソフトウェア定義ネットワーク(SDN、SoftwareDefined Networks)、およびネットワーク機能仮想化(NFV、Network Functions Virtualization)などのネットワークインフラ管理技術は、商用ネットワークサービスプロバイダが、特定のネットワークリソースに対する需要の変化に適応するように、例えば、ネットワークスループット、ネットワーク速度、往復レイテンシ、および計算リソースに対する需要の動的な増減に応答するように、それらのネットワークインフラを柔軟に構成することを可能にする。さらに、動的ネットワーク要件に適応するこの固有の能力は、同様に、異種クライアントエンドポイントのための潜在的に異種の視覚メディアフォーマットを有する様々な没入型メディアアプリケーションをサポートするために、没入型メディア取り込みフォーマットを適切な配信フォーマットに適応させるネットワークの能力を容易にする。
【0111】
没入型メディアアプリケーション自体はまた、ゲームの状態でリアルタイム更新に応答するために著しく低いネットワークレイテンシを必要とするゲームアプリケーション、ネットワークのアップリンク部分およびダウンリンク部分の両方に対して対称的なスループット要件を有するテレプレゼンスアプリケーション、およびデータを消費しているクライアントエンドポイントのディスプレイのタイプに応じてダウンリンクリソースに対する需要が増加する可能性のある受動的閲覧アプリケーションを含む、ネットワークリソースに対する様々な要件を有してもよい。一般に、任意の消費者向けアプリケーションは、記憶、計算および電力のための様々なオンボードクライアント機能、ならびに特定のメディア表示のための同じく様々な要件を含む様々なクライアントエンドポイントによってサポートされてもよい。
【0112】
したがって、本開示の実施形態は、十分に装備されたネットワーク、すなわち、最新のネットワークの特性の一部またはすべてを使用するネットワークが、デバイス内で指定された特徴に従って複数のレガシーおよび没入型メディア対応デバイスを同時にサポートすることを可能にする。したがって、本明細書に記載の没入型メディア配信方法およびプロセスは、メディアの配信のためのリアルタイムおよびオンデマンドのユースケースの両方に実用的なメディア取り込みフォーマットを活用する柔軟性、レガシーおよび没入型メディア対応クライアントエンドポイントの両方の自然およびコンピュータ生成コンテンツをサポートする柔軟性、ならびに時限メディアおよび非時限メディアの両方のサポートを提供する。本方法およびプロセスはまた、クライアントエンドポイントの機能および能力に基づいて、ならびにアプリケーションの要件に基づいて、ソースメディア取り込みフォーマットを適切な配信フォーマットに動的に適応させる。これにより、配信フォーマットがIPベースのネットワーク上でストリーミング可能であることが保証され、ネットワークが、レガシーおよび没入型メディア対応デバイスの両方を含み得る複数の異種クライアントエンドポイントに同時にサービスすることが可能になる。さらに、実施形態は、シーン境界に沿った配信メディアの編成を容易にする例示的なメディア表示フレームワークを提供する。
【0113】
前述の改善を提供する、本開示の実施形態による異種没入型メディア配信のエンドツーエンド実装は、以下でさらに詳細に説明される
図7~
図14の詳細な説明に記載されるプロセスおよび構成要素に従って達成される。
【0114】
上述した異種没入型メディアを表現およびストリーミングするための技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとしてソースおよび宛先の両方に実装され、1つまたは複数の非一時的コンピュータ可読媒体に、または具体的に構成された1つまたは複数のハードウェアプロセッサによって物理的に記憶されてもよい。
図7は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム700を示す。
【0115】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって、直接、またはインタープリテーション、マイクロコードの実行などを介して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構の適用を受け得る、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0116】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0117】
コンピュータシステム700について
図7に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能に関するいかなる限定も示唆することは意図されていない。また、構成要素の構成は、コンピュータシステム700の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関連するいかなる依存関係または要件も有すると解釈されるべきではない。
【0118】
コンピュータシステム700は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力を介して、1人または複数の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスを使用して、オーディオ(発話、音楽、周囲音など)、画像(スキャン画像、静止画像カメラから取得される写真画像など)、ビデオ(二次元ビデオ、立体ビデオを含む三次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係ない特定のメディアをキャプチャしてもよい。
【0119】
入力ヒューマンインターフェースデバイスは、キーボード701、トラックパッド702、マウス703、例えばタッチスクリーンであり得るスクリーン709、ジョイスティック704、マイクロフォン705、カメラ706、およびスキャナ707のうちの1つまたは複数(それぞれ1つのみが図示されている)を含んでもよい。
【0120】
コンピュータシステム700はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および臭い/味を介して、1人または複数の人間ユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、スクリーン709、データグローブ、またはジョイスティック704による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る)と、オーディオ出力デバイス(例えば、スピーカ708、ヘッドフォンなど)と、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン709であって、それぞれにタッチスクリーン入力機能を備えたものと備えていないものとがあり、それぞれに触覚フィードバック機能を備えたものと備えていないものとがあり、これらの一部は、ステレオグラフィック出力、仮想現実メガネ、ホログラフィックディスプレイ、およびスモークタンクなどの手段を介して、二次元視覚出力または三次元超出力を出力することができてもよい)と、プリンタと、を含んでもよい。
【0121】
コンピュータシステム700はまた、CD/DVDまたは同様の媒体710を有するCD/DVD ROM/RW711を含む光学媒体、サムドライブ712、リムーバブルハードドライブまたはソリッドステートドライブ713、テープおよびフロッピーディスクなどのレガシー磁気媒体、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイスなどの、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体を含んでもよい。
【0122】
また、当業者は、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解されたい。
【0123】
コンピュータシステム700はまた、1つまたは複数の通信ネットワーク714への双方向インターフェース715を含んでもよい。ネットワーク714は、例えば、無線、有線、光であってもよい。ネットワーク714はさらに、ローカル、広域、都市、車両および産業、リアルタイム、遅延耐性などであってよい。ネットワーク714の例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線または無線の広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワーク714は、通常、(例えば、コンピュータシステム700のUSBポートなどの)特定の汎用データポートまたは周辺バス716に取り付けられた外部ネットワークインターフェースアダプタ(例えば、グラフィックスアダプタ725)を必要とし、他のネットワークは、通常、以下に記載されるシステムバス748に取り付けることによってコンピュータシステム700のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワーク714のいずれかを使用して、コンピュータシステム700は、他のエンティティと通信し得る。そのような通信は、単方向の受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルエリアまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明したように、それらのネットワークおよびネットワークインターフェースのそれぞれで使用され得る。
【0124】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム700のコア717に取り付けられ得る。
【0125】
コア717は、1つまたは複数の中央処理装置(CPU)718、グラフィックス処理装置(GPU)719、フィールドプログラマブルゲートエリア(FPGA)720の形態の特殊なプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ721などを含んでもよい。これらのデバイスは、読み取り専用メモリ(ROM)723、ランダムアクセスメモリ(RAM)724、内部のユーザがアクセスできないハードドライブ、SSDなどの内部大容量ストレージ722と共に、システムバス748を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス748は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス748に直接取り付けられても、周辺バス716を介して取り付けられてもよい。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0126】
CPU718、GPU719、FPGA720、およびアクセラレータ721は、組み合わせて上述のマシンコード(またはコンピュータコード)を構成し得る特定の命令を実行し得る。そのコンピュータコードは、ROM723またはRAM724に記憶され得る。また、一時データが、RAM724に記憶されてもよいが、永続データが、例えば内部大容量ストレージ722に記憶されてもよい。任意のメモリデバイスへの高速記憶および検索は、1つまたは複数のCPU718、GPU719、大容量ストレージ722、ROM723、RAM724などと密接に関連付けられ得るキャッシュメモリの使用によって可能にされ得る。
【0127】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよいし、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0128】
限定ではなく、例として、コンピュータシステム700のアーキテクチャを有するコンピュータシステム、特にコア717は、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供し得る。そのようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ722またはROM723などの非一時的な性質のコア717の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア717によって実行され得る。コンピュータ可読媒体は、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア717、および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM724に記憶されたデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することと、を含む、本明細書に記載された特定のプロセス、または特定のプロセスの特定の部分を実行させ得る。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ721)にハードワイヤードされた、または他の方法で具現化されたロジックの結果として機能性を提供してもよく、この回路はソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載された特定プロセス、または特定プロセスの特定の部分を実行し得る。ソフトウェアへの参照は、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0129】
図7に示す構成要素の数および配置は、一例として提供されている。実際には、入力ヒューマンインターフェースデバイスは、追加の構成要素、より少ない構成要素、異なる構成要素、または
図7に示すものとは異なる配置の構成要素を含んでもよい。追加的または代替的に、入力ヒューマンインターフェースデバイスの構成要素のセット(例えば、1つまたは複数の構成要素)は、入力ヒューマンインターフェースデバイスの構成要素の別のセットによって実行されるものとして説明される1つまたは複数の機能を実行してもよい。
【0130】
実施形態では、
図1~
図6および
図8~
図15の動作またはプロセスのいずれか1つは、
図7に示す要素のいずれか1つによって、またはそれを使用して実施され得る。
【0131】
図8は、複数の異種クライアントエンドポイントにサービスを提供する例示的なネットワークメディア配信システム800を示す。すなわち、システム800は、クライアントエンドポイントとして様々なレガシーおよび異種没入型メディア対応ディスプレイをサポートする。システム800は、コンテンツ取得モジュール801、コンテンツ準備モジュール802、および送信モジュール803を含み得る。
【0132】
コンテンツ取得モジュール801は、例えば、
図6および/または
図5に記載された実施形態を使用してソースメディアをキャプチャまたは作成する。コンテンツ準備モジュール802は、送信モジュール803を使用してネットワークメディア配信システムに送信される取り込みフォーマットを作成する。ゲートウェイ804は、顧客宅内機器にサービスして、ネットワークのための様々なクライアントエンドポイントへのネットワークアクセスを提供し得る。セットトップボックス805はまた、ネットワークサービスプロバイダによる集約コンテンツへのアクセスを提供するための顧客宅内機器として機能し得る。無線復調器806は、例えば、モバイルハンドセットディスプレイ813で示されるように、モバイルデバイスのためのモバイルネットワークアクセスポイントとして機能し得る。システム800のこの特定の実施形態では、レガシー2Dテレビ807は、ゲートウェイ804、セットトップボックス805、またはWi-Fi(ルータ)808のうちの1つに直接接続されるように示されている。ラップトップ2Dディスプレイ809(すなわち、レガシー2Dディスプレイを有するコンピュータまたはラップトップ)は、Wi-Fi(ルータ)808に接続されたクライアントエンドポイントとして示されている。ヘッドマウント2D(ラスタベース)ディスプレイ810もWi-Fi(ルータ)808に接続されている。ゲートウェイ804のうちの一方に接続されたレンチキュラー光照射野ディスプレイ811が示されている。レンチキュラー光照射野ディスプレイ811は、1つまたは複数のGPU811A、ストレージデバイス811B、および光線ベースのレンチキュラー光学技術を使用して複数のビューを作成する視覚表現構成要素811Cを含み得る。セットトップボックス805に接続されたホログラフィックディスプレイ812が示されている。ホログラフィックディスプレイ812は、1つまたは複数のCPU812A、GPU812B、ストレージデバイス812C、および視覚化構成要素812Dを含み得る。視覚化構成要素812Dは、フレネルパターン、波ベースのホログラフィックデバイス/ディスプレイであってもよい。拡張現実(AR)ヘッドセット814は、無線復調器806に接続されて示されている。ARヘッドセット814は、GPU814A、ストレージデバイス814B、バッテリ814C、および立体視覚表現構成要素814Dを含み得る。高密度光照射野ディスプレイ815は、Wi-Fi(ルータ)808に接続されているものとして示されている。高密度光照射野ディスプレイ815は、1つまたは複数のGPU815A、CPU815B、ストレージデバイス815C、視線追跡デバイス815D、カメラ815E、および高密度光線ベースの光照射野パネル815Fを含み得る。
【0133】
図8に示す構成要素の数および配置は、一例として提供されている。実際には、システム800は、
図8に示された構成要素に比べて、追加の構成要素、少ない構成要素、異なる構成要素、または異なる配置の構成要素を含んでもよい。追加的または代替的に、システム800の構成要素のセット(例えば、1つまたは複数の構成要素)は、デバイスまたは各ディスプレイの構成要素の別のセットによって実行されるものとして説明される1つまたは複数の機能を実行してもよい。
【0134】
図9は、
図8に前述したようにレガシーおよび異種没入型メディア対応ディスプレイにサービスを提供することができる没入型メディア配信プロセス900の例示的なワークフローを示す。ネットワークによって実行される没入型メディア配信プロセス900は、例えば、特定の没入型メディアクライアントエンドポイントによる消費(
図10を参照して説明したように)のためにメディアを適応させるネットワークのプロセスの前に、メディア取り込みフォーマットで表される特定のメディアに関するアダプテーション情報を提供することができる。
【0135】
没入型メディア配信プロセス900は、破線912の左側の没入型メディア制作と、破線912の右側の没入型メディアネットワーク配信の2つの部分に分けられてもよい。没入型メディア制作および没入型メディアネットワーク配信は、ネットワークまたはクライアントデバイスによって実行されてもよい。
【0136】
メディアコンテンツ901は、それぞれネットワーク(またはクライアントデバイス)またはコンテンツソースから作成または取得される。データを作成または取得するための方法は、それぞれ自然および合成コンテンツについて
図5および
図6に対応することができる。次いで、作成されたコンテンツ901は、ネットワーク取り込みフォーマット作成プロセス902を使用して取り込みフォーマットに変換される。ネットワーク取り込みフォーマット作成プロセス902はまた、それぞれ自然および合成コンテンツについて
図5および
図6に対応することができる。取り込みフォーマットはまた、例えばメディア再利用アナライザ911(
図10および
図14Aを参照して後で詳述する)からの複数のシーンにわたって潜在的に再利用されるアセットに関する情報を記憶するために更新されてもよい。取り込みフォーマットは、ネットワークに送信され、取り込みメディアストレージ903(すなわち、ストレージデバイス)に記憶される。いくつかの実施形態では、ストレージデバイスは、没入型メディアコンテンツ制作者のネットワーク内にあってもよく、没入型メディアネットワーク配信920のためにリモートでアクセスされてもよい。クライアントおよびアプリケーション固有の情報は、任意選択的に、リモートストレージデバイス、クライアント固有情報904において利用可能である。いくつかの実施形態では、クライアント固有情報904は、代替クラウドネットワークにリモートで存在してもよく、ネットワークに送信されてもよい。
【0137】
その後、ネットワークオーケストレータ905が実行される。ネットワークオーケストレーションは、ネットワークの主要なタスクを実行するための情報の主要なソースおよびシンクとして機能する。ネットワークオーケストレータ905は、ネットワークの他の構成要素と統一されたフォーマットで実装されてもよい。ネットワークオーケストレータ905は、クライアントデバイスの特性に従ってメディアのすべての処理および配信を容易にするために、クライアントデバイスとの双方向メッセージプロトコルをさらに採用するプロセスであってもよい。さらに、双方向プロトコルは、異なる配信チャネル(例えば、制御プレーンチャネルおよび/またはデータプレーンチャネル)にわたって実装されてもよい。
【0138】
図9に示すように、ネットワークオーケストレータ905は、クライアントデバイス908の特徴および属性に関する情報を受信する。ネットワークオーケストレータ905は、クライアントデバイス908上で現在実行されているアプリケーションに関する要件を収集する。この情報は、クライアント固有情報904から取得され得る。いくつかの実施形態では、情報は、クライアントデバイス908に直接問い合わせることによって取得され得る。クライアントデバイスが直接照会されるとき、クライアントデバイス908がネットワークオーケストレータ905と直接通信し得るように、双方向プロトコルが存在し、動作可能であると仮定される。
【0139】
ネットワークオーケストレータ905はまた、メディアアダプテーションおよびフラグメンテーションモジュール910(これは
図10に記載されている)を開始してそれと通信してもよい。取り込みメディアがメディアアダプテーションおよびフラグメンテーションモジュール910によって適応および断片化されると、メディアは、配信用に準備されたメディア909などのメディア間ストレージデバイスに転送されてもよい。ネットワークが、表現の文脈で複数回使用されるアセットのためのキャッシュを含むように設計されている場合、再利用されたメディアアセット912のための別のメディア間ストレージデバイス冗長キャッシュを利用して、そのようなアセットのキャッシュとして機能することができる。配信メディアが準備され、配信用に準備されたメディア909ストレージデバイスに記憶されると、ネットワークオーケストレータ905は、クライアントデバイス908が「プッシュ」要求を介して配信メディアおよび記述情報906を受信するか、またはクライアントデバイス908が記憶された配信用に準備されたメディア909から配信メディアおよび記述情報906の「プル」要求を開始し得ることを保証する。情報は、クライアントデバイス908のネットワークインターフェース908Bを介して「プッシュされ」または「プルされ」得る。「プッシュされた」または「プルされた」配信メディアおよび記述情報906は、配信メディアに対応する記述情報であってもよい。
【0140】
いくつかの実施形態では、ネットワークオーケストレータ905は、双方向メッセージインターフェースを使用して、クライアントデバイス908によって「プッシュ」要求を実行するか、または「プル」要求を開始する。クライアントデバイス908は、任意選択的に、GPU908C(またはCPU)を採用し得る。
【0141】
次いで、配信メディアフォーマットは、クライアントデバイス908に含まれるストレージデバイスまたはストレージキャッシュ908Dに記憶される。最後に、クライアントデバイス908は、視覚化構成要素908Aを介してメディアを視覚的に表現する。
【0142】
没入型メディアをクライアントデバイス908にストリーミングするプロセス全体を通して、ネットワークオーケストレータ905は、クライアントの進捗およびステータスフィードバックチャネル907を介してクライアントの進捗のステータスを監視する。いくつかの実施形態では、ステータスの監視は、双方向通信メッセージインターフェースを介して実行されてもよい。
【0143】
図10は、例えば、メディアアダプテーションおよびフラグメンテーションモジュール910によって実行されるメディアアダプテーションプロセス1000の一例を示す。メディアアダプテーションプロセス1000を実行することにより、取り込まれたソースメディアは、クライアントの要件(例えば、クライアントデバイス908)に一致するように適切に適応され得る。
【0144】
図10に示すように、メディアアダプテーションプロセス1000は、クライアントデバイス908のための適切な配信フォーマットへの取り込みメディアのアダプテーションを容易にする複数の構成要素を含む。
図10に示された構成要素は、例示として見なされるべきである。実際には、メディアアダプテーションプロセス1000は、
図10に示された構成要素に比べて、追加の構成要素、より少ない構成要素、異なる構成要素、または異なる配置の構成要素を含んでもよい。追加的または代替的に、メディアアダプテーションプロセス1000の構成要素のセット(例えば、1つまたは複数の構成要素)は、別の構成要素のセットによって実行されるものとして説明される1つまたは複数の機能を実行し得る。
【0145】
図10において、アダプテーションモジュール1001は、ネットワーク上の現在のトラフィック負荷を追跡するために入力ネットワークステータス1005を受信する。上述したように、アダプテーションモジュール1001はまた、ネットワークオーケストレータ905から情報を受信する。情報は、クライアントの錐台のジオメトリを取り込み没入型メディアの補間機能にマッピングするのを助けるために、クライアントデバイス908の属性および機能の説明、アプリケーションの機能および説明、アプリケーションの現在のステータス、およびクライアントNNモデル(利用可能な場合)を含み得る。そのような情報は、双方向メッセージインターフェースによって取得され得る。アダプテーションモジュール1001は、適応された出力が、生成されると、クライアント適応メディア1006を記憶するためのストレージデバイスに記憶されることを保証する。
【0146】
メディア再利用アナライザ911は、事前に、またはメディアの配信のためのネットワーク自動化プロセスの一部として実行され得るオプションのプロセスであり得る。メディア再利用アナライザ911は、取り込みメディアフォーマットおよびアセットをストレージデバイス(1002)に記憶し得る。次いで、取り込みメディアフォーマットおよびアセットは、ストレージデバイス(1002)からアダプテーションモジュール1001に送信され得る。
【0147】
アダプテーションモジュール1001は、ロジックコントローラ1001Fによって制御されてもよい。アダプテーションモジュール1001はまた、特定の取り込みソースメディアをクライアントに適したフォーマットに適応させるために、レンダラ1001Bまたはプロセッサ1001Cを採用してもよい。プロセッサ1001Cは、NNベースのプロセッサであってもよい。プロセッサ1001Cは、NNモデル1001Aを使用する。このようなプロセッサ1001Cとしては、例えば、MPIやMSIに記載されているようなDeepview NNモデル生成部が挙げられる。メディアが2Dフォーマットであるが、クライアントが3Dフォーマットを有さなければならない場合、プロセッサ1001Cは、メディアに描写されたシーンの立体表示を導出するために2Dビデオ信号から高度に相関付けられた画像を使用するプロセスを呼び出してもよい。
【0148】
レンダラ1001Bは、音響物理学、光物理学、視覚知覚、オーディオ知覚、数学、およびソフトウェア開発に関連する分野の選択的な混合に基づいて、ソフトウェアベース(またはハードウェアベース)のアプリケーションまたはプロセスであってもよく、入力シーングラフおよびアセットコンテナが与えられると、対象デバイス上での表現に適した、またはシーングラフ内のレンダリング対象ノードの属性によって指定される所望の特性に適合する(通常は)視覚信号および/またはオーディオ信号を発する。視覚ベースのメディアアセットの場合、レンダラは、対象のディスプレイに適した、または中間アセット(例えば、別のコンテナに再パッケージングされ、グラフィックスパイプラインの一連のレンダリングプロセスで使用される)としての記憶に適した視覚信号を発してもよい。オーディオベースのメディアアセットの場合、レンダラは、マルチチャネルラウドスピーカおよび/またはバイノーラル化されたヘッドフォンでの表現のために、または別の(出力)コンテナに再パッケージ化するために、オーディオ信号を発してもよい。レンダラは、例えば、ソースおよびクロスプラットフォームゲームエンジンのリアルタイムレンダリング機能を含む。レンダラは、シーングラフノードに対して行われる動的入力および可変状態変更を処理するために、ランタイムにおいてレンダラによって実行され得るスクリプト言語(すなわち、解釈されたプログラミング言語)を含み得る。動的入力および可変状態の変化は、空間的および時間的なオブジェクトトポロジ(物理的な力、制約、逆運動学、変形、衝突を含む)、ならびにエネルギー伝搬および輸送(光、音)のレンダリングおよび評価に影響を及ぼし得る。空間的および時間的なオブジェクトトポロジの評価は、出力を抽象的なものから具体的なものに移行させる結果(例えば、ウェブページの文書オブジェクトモデルの評価と同様)を生成する。
【0149】
レンダラ1001Bは、例えば、アダプテーションモジュール1001と直接対話するように修正されるOTOY Octaneレンダラの修正バージョンであってもよい。いくつかの実施形態では、レンダラ1001Bは、シーンの照明が現実に忠実になるように3次元シーンをレンダリングするコンピュータグラフィックス方法(例えば、経路追跡)を実装する。いくつかの実施形態では、レンダラ1001Bは、シェダーを用いることができる(すなわち、シェーディング(画像内の適切なレベルの光、暗さ、および色の生成)に元々使用されていたが、今ではコンピュータグラフィックスの特殊効果、シェーディングとは無関係のビデオの後処理、およびグラフィックスとは無関係の他の機能の様々な分野における様々な特殊な機能を果たすタイプのコンピュータプログラム)。
【0150】
アダプテーションモジュール1001は、取り込みメディアのフォーマットおよびクライアントデバイス908が必要とするフォーマットに基づく圧縮および解凍の必要性に応じて、メディア圧縮器1001Dおよびメディア解凍器1001Eをそれぞれ使用してメディアコンテンツの圧縮および解凍を実行し得る。メディア圧縮器1001Dはメディアエンコーダであってもよく、メディア解凍器1001Eはメディアデコーダであってもよい。圧縮および解凍を実行した後(必要な場合)、アダプテーションモジュール1001は、ストリーミングまたは配信に最適なクライアント適応メディア1006をクライアントデバイス908に出力する。クライアント適応メディア1006は、適応メディアを記憶するためのストレージデバイスに記憶されてもよい。
【0151】
図11は、配信フォーマット作成プロセス1100の一例を示す。
図11に示すように、配信フォーマット作成プロセス1100は、メディアアダプテーションモジュール1101、およびメディアアダプテーションプロセス1000から出力され、クライアント適応メディア1006として記憶されたメディアをパッケージングする適応されたメディアパッケージングモジュール1103を含む。メディアパッケージングモジュール1103は、クライアント適応メディア1006からの適応メディアをロバストな配信フォーマット1104にフォーマットする。配信フォーマットは、例えば、
図3A~
図3Bまたは
図4A~
図4Bに示す例示的なフォーマットであってもよい。情報マニフェスト1104Aは、クライアントデバイス908にシーンデータアセット1104Bのリストを提供し得る。シーンデータアセット1104Bのリストはまた、各アセットが表現を構成するシーンのセットにわたって使用される頻度を記述するメタデータを含んでもよい。シーンデータアセット1104Bのリストは、視覚アセット、オーディオアセット、および触覚アセットのリストを示し、それぞれ対応するメタデータを伴う。この例示的な実施形態では、シーンデータアセット1104Bのリスト内の各アセットは、表現を構成するすべてのシーンにわたって特定のアセットが使用された回数を示す数的頻度値を含むメタデータを参照する。
【0152】
メディアは、スチーミングの前にさらにパケット化されてもよい。
図12は、例示的なパケット化プロセス1200を示す。パケット化システム1200は、パケット化器1202を備える。パケット化器1202は、(
図12に示すように)シーンデータアセット1104B(または11044B)のリストを入力メディア1201として受信してもよい。いくつかの実施形態では、クライアント適応メディア1006または配信フォーマット1104は、パケット化器1202に入力される。パケット化器1202は、入力メディア1201を、ネットワーク上のクライアントデバイス908への表示やストリーミングに適した個別のパケット1203に分離する。
【0153】
図13は、実施形態による構成要素間のデータおよび通信フローの一例を示すシーケンス図である。
図13のシーケンス図は、取り込みフォーマットの特定の没入型メディアを特定の没入メディアクライアントエンドポイントのためのストリーミング可能で適切な配信フォーマットに適応させるネットワークのものである。データと通信フローは以下の通りあってもよい。
【0154】
クライアントデバイス908は、ネットワークオーケストレータ905に対するメディア要求1308を開始する。いくつかの実施形態では、要求は、クライアントデバイスのネットワーク配信インターフェースに対して行われてもよい。メディア要求1308は、クライアントデバイス908によって要求されるメディアを識別するための情報を含む。メディア要求は、例えば、ユニフォーム・リソース・ネーム(URN)または別の標準的な命名法によって識別され得る。次いで、ネットワークオーケストレータ905は、プロファイル要求1309でメディア要求1308に応答する。プロファイル要求1309は、クライアントが現在利用可能なリソースに関する情報(クライアントの現在の動作ステータスを特徴付けるための計算、記憶、バッテリ充電率、および他の情報を含む)を提供することを要求する。プロファイル要求1309はまた、そのようなNNモデルがクライアントエンドポイントで利用可能である場合、クライアントの表現システムの特徴に一致するように正しいメディアビューを抽出または補間するために、NN推論のためにネットワークによって使用され得る1つまたは複数のNNモデルをクライアントが提供することを要求する。
【0155】
次いで、クライアントデバイス908は、クライアントトークン、アプリケーショントークン、および(そのようなNNモデルトークンがクライアントエンドポイントで利用可能である場合)1つまたは複数のNNモデルトークンとして提供されるネットワークオーケストレータ905へのクライアントデバイス908からの応答1310を続ける。次いで、ネットワークオーケストレータ905は、セッションIDトークン1311をクライアントデバイスに提供する。次いで、ネットワークオーケストレータ905は、取り込みメディアサーバ1303に取り込みメディア1312を要求する。取り込みメディアサーバ1303は、例えば、取り込みメディアストレージ903または取り込みメディアフォーマットおよびストレージデバイス1002のアセットを含んでもよい。取り込みメディア1312の要求はまた、要求1308で識別されたメディアのURNまたは他の標準名を含んでもよい。取り込みメディアサーバ1303は、取り込みメディアトークンを含む応答1313で取り込みメディア1312の要求に応答する。次いで、ネットワークオーケストレータ905は、呼び出し1314において応答1313からのメディアトークンをクライアントデバイス908に提供する。次いで、ネットワークオーケストレータ905は、要求1315において、アダプテーションおよびフラグメンテーションモジュール910に取り込みメディアトークン、クライアントトークン、アプリケーショントークン、およびNNモデルトークンを提供することによって、要求されたメディアに対するアダプテーションプロセスを開始する。アダプテーションおよびフラグメンテーションモジュール910は、取り込みメディアアセットへのアクセスを要求する要求1316において取り込みメディアトークンを取り込みメディアサーバ1303に提供することによって取り込みメディアへのアクセスを要求する。
【0156】
取り込みメディアサーバ1303は、アダプテーションおよびフラグメンテーションモジュール910に対する応答1317において、取り込みメディアアクセストークンを用いて要求1316に応答する。次いで、アダプテーションおよびフラグメンテーションモジュール910は、メディアアダプテーションプロセス1000が、応答1313において作成および送信されたセッションIDトークンに対応するクライアント、アプリケーション、およびNN推論モデルのために、取り込みメディアアクセストークンに位置する取り込みメディアを適応させることを要求する。アダプテーションおよびフラグメンテーションモジュール910からメディアアダプテーションプロセス1000への要求1318が行われる。要求1318は、必要なトークンおよびセッションIDを含む。メディアアダプテーションプロセス1000は、更新応答1319において適応メディアアクセストークンおよびセッションIDをネットワークオーケストレータ905に提供する。次いで、ネットワークオーケストレータ905は、インターフェース呼び出し1320において、メディアパッケージングモジュール11043に、適合されたメディアアクセストークンおよびセッションIDを提供する。メディアパッケージングモジュール11043は、応答1321内のパッケージングされたメディアアクセストークンおよびセッションIDと共に、応答1321をネットワークオーケストレータ905に提供する。次に、メディアパッケージングモジュール11043は、応答1322において、セッションID用のパッケージングされたアセット、URN、およびパッケージングされたメディアアクセストークンを、記憶されるパッケージングされたメディアサーバ1307に提供する。続いて、クライアントデバイス908は、応答1321で受信されたパッケージングメディアアクセストークンに対応するメディアアセットのストリーミングを開始するために、パッケージングされたメディアサーバ1307に対する要求1323を実行する。最後に、クライアントデバイス908は、他の要求を実行し、メッセージ1324内のステータス更新をネットワークオーケストレータ905に提供する。
【0157】
図14Aは、
図9に示されたメディア再利用アナライザ911のためのワークフローを示す。メディア再利用アナライザ911は、メディアデータに含まれるシーンのオブジェクトの固有性に関するメタデータを解析する。
【0158】
1405において、メディアデータは、例えば、コンテンツプロバイダまたはコンテンツソースから取得される。1410において、初期化が実行される。具体的には、イテレータ「i」を0に初期化する。イテレータは、例えば、カウンタであってもよい。表現(
図3および/または
図4に示す)を含むすべてのシーンにわたって発生した固有アセットを識別する、各シーンの固有アセットのリストのセット1465(
図14Bに示す)も初期化される。
【0159】
1415において、イテレータ「i」の値が表現を含むシーンの総数N未満であるかどうかが判定される。イテレータ「i」の値が表現を含むシーンの数Nに等しい(またはそれより大きい)場合(1415「いいえ」)、プロセスは1420に進み、そこで再利用分析が終了する(すなわち、プロセスは終了する)。イテレータ「i」の値が表現を含むシーンの数N未満である場合(1415「はい」)、プロセスは1425に進む。1425において、イテレータ「j」の値が0に設定される。
【0160】
続いて、1430において、イテレータ「j」の値が現在のシーンにおけるメディアアセットの総数X(メディアオブジェクトとも呼ばれる)未満であるかどうかが判定される。イテレータ「j」の値がシーンsのメディアアセットの総数Xに等しい(またはそれより大きい)場合(1435で「いいえ」)、プロセスは1410に進み、イテレータ「i」が1だけインクリメントされた後、1415に戻る。イテレータ「j」の値がシーンsのメディアアセットの総数X未満であれば(1430で「はい」)、プロセスは1440に進む。
【0161】
1440において、メディアアセットの特徴は、現在のメディアアセットが以前に使用されたかどうかを判定するために、現在のシーンの前のシーンから以前に分析されたアセット(すなわち、シーンs)と比較される。
【0162】
現在のメディアアセットが固有アセットとして識別されている場合(1440で「いいえ」)、すなわち、現在のメディアアセットが、より小さいイテレータ「i」の値に関連付けられたシーンで以前に分析されていない場合、プロセスは1445に進む。1445において、現在のシーン(すなわち、シーンs)に対応する固有アセットのリストのセット1465に固有アセットエントリを作成する。固有のアセットエントリにも固有の識別子が割り当てられ、アセットがシーン0~Nー1にわたって使用された回数(例えば、頻度)は1に設定される。次に、1455へ進む。
【0163】
現在のメディアアセットがシーンsの前に1つまたは複数のシーンで使用されたアセットとして識別された場合(1440で「はい」)、プロセスは1450に進む。1450で、現在のメディアアセットがシーン0からN-1にわたって使用された回数は、現在のシーンに対応する固有アセットのリストのセット1465で1だけインクリメントされる(すなわち、シーンs)。次に、1455へ進む。
【0164】
1455において、イテレータ「j」の値が1だけインクリメントされる。その後、1430に戻る。
【0165】
いくつかの実施形態では、メディア再利用アナライザ911は、クライアント、例えばクライアントデバイス108に、(アセットが初めてクライアントに配信された後)アセットがシーンのセットで使用される各インスタンスについてのアセットのコピーをクライアントが使用すべきであることをさらにシグナリングし得る。
【0166】
図13~
図14を参照して説明したシーケンス図およびワークフローのステップは、実施形態におけるデータおよび通信フローの構成を限定することを意図するものではないことに留意されたい。例えば、ステップのうちの1つまたは複数が同時に実行されてもよく、データが記憶されてもよく、および/または
図13~
図14Aのフローに明示的に示されていない方向に流れてもよい。
【0167】
図14Bは、実施形態による、表現の完了時にすべてのシーンについて1410で初期化された(および潜在的に1445~1450で更新された)固有アセットのリストのセット1465の一例である。固有アセットのリストのセット1465内の固有アセットのリストは、ネットワークまたはクライアントデバイスによって事前に識別されてもよく、または事前定義されてもよい。固有アセットのリストのセット1465は、アセットを構成するメディアのタイプ(例えば、メッシュ、オーディオ、またはボリューム)のインジケータ、アセットの固有識別子、およびアセットが表現全体を構成するシーンのセットにわたって使用される回数を含む、表現全体に対して固有であるアセットを記述する情報のエントリのサンプルリストを示す。一例として、シーンNー1の場合、シーンNー1に必要なすべてのアセットがシーン1およびシーン2でも使用されるアセットとして識別されているため、そのリストに含まれるアセットはない。
【0168】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0169】
100 メディア配信プロセス、メディアフロープロセス
101 フォーマット
102 配信メディア作成
103 フォーマット
104 ネットワークデバイス、サーバ
105 ネットワーク接続
106 レンダリングモジュール
107 表現モジュール
108 クライアントデバイス
200 メディア変換意思決定プロセス
222 メディア
250 メディア変換プロセス
300 時限メディア表示
300A 時限シーンマニフェスト
301 シーン情報
302 構成要素
303 アセット
303A 時限シーンマニフェスト
304 ベース層
305 属性強化層
307 リスト
308 プロキシアセット
400 複雑度表示
401 シーン情報
402 構成要素
403 アセット
404 ベース層
405 属性強化層
407 シーン情報
408 リスト
500 自然メディア合成プロセス
501 カメラ
502 カメラ
503 カメラ
504 シンセサイザ
505 NNトレーニング
506 トレーニング画像
507 取り込みフォーマット
508 キャプチャNNモデル
509 自然画像コンテンツ
510 破線
600 合成メディア取り込み作成プロセス
601 カメラ
602 点群
603 コンピュータ
604 CGIアセット
605 俳優
605A センサ
606 モーションデータ
607 シンセサイザ
608 合成メディア取り込みフォーマット
700 コンピュータシステム
701 キーボード
702 トラックパッド
703 マウス
704 ジョイスティック
705 マイクロフォン
706 カメラ
707 スキャナ
708 スピーカ
709 スクリーン
710 媒体
712 サムドライブ
713 ソリッドステートドライブ
714 通信ネットワーク
715 双方向インターフェース
716 周辺バス
717 コア
720 FPGA
721 ハードウェアアクセラレータ
722 内部大容量ストレージ
723 ROM
725 グラフィックスアダプタ
748 システムバス
800 ネットワークメディア配信システム
801 コンテンツ取得モジュール
802 コンテンツ準備モジュール
803 送信モジュール
804 ゲートウェイ
805 セットトップボックス
806 無線復調器
807 レガシー2Dテレビ
809 ラップトップ2Dディスプレイ
810 ディスプレイ
811 レンチキュラー光照射野ディスプレイ
811B ストレージデバイス
811C 視覚表現構成要素
812 ホログラフィックディスプレイ
812C ストレージデバイス
812D 視覚化構成要素
813 モバイルハンドセットディスプレイ
814 拡張現実(AR)ヘッドセット
814A GPU
814B ストレージデバイス
814C バッテリ
814D 立体視覚表現構成要素
815 高密度光照射野ディスプレイ
815C ストレージデバイス
815D 視線追跡デバイス
815E カメラ
815F 光照射野パネル
900 没入型メディア配信プロセス
901 メディアコンテンツ
902 ネットワーク取り込みフォーマット作成プロセス
903 取り込みメディアストレージ
904 情報
905 ネットワークオーケストレータ
906 記述情報
907 ステータスフィードバックチャネル
908 クライアントデバイス
908A 視覚化構成要素
908B ネットワークインターフェース
908D ストレージキャッシュ
909 メディア
910 フラグメンテーションモジュール
911 メディア再利用アナライザ
912 破線
920 没入型メディアネットワーク配信
1000 メディアアダプテーションプロセス
1001 アダプテーションモジュール
1001A NNモデル
1001B レンダラ
1001C プロセッサ
1001D メディア圧縮器
1001E メディア解凍器
1001F ロジックコントローラ
1002 ストレージデバイス
1005 入力ネットワークステータス
1006 クライアント適応メディア
1100 配信フォーマット作成プロセス
1101 メディア適応モジュール
1103 メディアパッケージングモジュール
1104 配信フォーマット
1104A 情報マニフェスト
1104B シーンデータアセット
1200 パケット化システム、パケット化プロセス
1201 入力メディア
1202 パケット化器
1203 パケット
1303 取り込みメディアサーバ
1307 パッケージングされたメディアサーバ
1308 メディア要求
1309 プロファイル要求
1310 応答
1311 セッションIDトークン
1312 取り込みメディア
1313 応答
1314 呼び出し
1315 要求
1316 要求
1317 応答
1318 要求
1319 更新応答
1320 インターフェース呼び出し
1321 応答
1322 応答
1323 要求
1324 メッセージ
1465 セット
2500 プロセス
2600 プロセス
2700 プロセス
3031 シーン情報
3032 構成要素
3033 アセット
3034 ベース層
3035 属性強化層
3100 時限メディア表示
4041 シーン情報
4042 構成要素
4043 アセット、オーディオアセット、触覚アセット、
4044 ベース層
4045 属性強化層
4046 属性強化層、リスト
4047 シーン情報
4100 順序付き複雑度表示
【手続補正書】
【提出日】2024-03-12
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって実行されるメディアストリーミングセッション中に、シーンベースのメディアアセットをストリーミングするための方法であって、前記方法は、
ネットワークサーバとクライアントデバイスとして機能する前記コンピューティングデバイスとの間でシーンベースのメディアアセットに関する情報を通信するための双方向インターフェースを提供するステップと、
前記インターフェースを介して前記ネットワークサーバへ、クライアントデバイス属性、および要求されたときのクライアントデバイスリソースの可用性に関する対応する情報を、提供するステップであって、前記クライアントデバイス属性および前記情報が、前記シーンベースのメディアアセットをレンダリングするために前記コンピューティングデバイスによって使用される、ステップと、を含む、方法。
【請求項2】
前記方法は、
前記インターフェースを介して前記ネットワークサーバから要求を受信するステップであって、前記要求がストリーミングされる1つまたは複数のシーンベースのメディアアセットを識別する、ステップと、
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバからストリーミングされるかどうか判定するために、前記要求に応答して、ローカルに記憶され、以前にストリーミングされたシーンベースのメディアアセットのリストにアクセスするステップと、
前記インターフェースを介して前記ネットワークサーバへ、前記判定を送信するステップであって、前記ネットワークサーバが、前記判定に従って、前記1つまたは複数のシーンベースのメディアアセットに関する情報を前記コンピューティングデバイスに配信するように構成されている、ステップと、をさらに含む、請求項1に記載の方法。
【請求項3】
前記ネットワークサーバが、前記ネットワークサーバから前記要求されたシーンベースのメディアアセットをストリーミングする必要がないという判定に従って、要求されたシーンベースのメディアアセットのプロキシを生成し、前記プロキシを前記メディアストリーミングセッションに挿入するように構成される、請求項2に記載の方法。
【請求項4】
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバによって生成されたという判定後に、前記要求が前記ネットワークサーバにおいて生成される、請求項2に記載の方法。
【請求項5】
前記要求された1つまたは複数のシーンベースのメディアアセットが前記ネットワークサーバによって生成されたという判定前に、前記要求が前記ネットワークサーバにおいて生成される、請求項2に記載の方法。
【請求項6】
前記方法は、
前記インターフェースを介して前記ネットワークサーバへ、前記クライアントデバイス属性およびクライアントデバイスリソースの可用性に関する関連情報を送信するステップであって、前記ネットワークサーバが、前記クライアントデバイス属性およびクライアントデバイスリソースの可用性に関する関連情報に従って、前記1つまたは複数のシーンベースのメディアアセットに関する情報を、前記コンピューティングデバイスに配信するように構成されている、ステップをさらに含む、請求項5に記載の方法。
【請求項7】
前記方法は、
前記クライアントデバイスのユーザからユーザ要求を受信するステップであって、前記ユーザ要求が、ストリーミングされる前記1つまたは複数のシーンベースのメディアアセットを識別する、ステップと、
前記インターフェースを介して前記ネットワークサーバへ、前記ユーザ要求を転送するステップと、をさらに含む、請求項1に記載の方法。
【請求項8】
前記インターフェースを介して前記ネットワークサーバから、前記ネットワークサーバによって生成された前記メディアストリーミングセッション内の前記1つまたは複数のシーンベースのメディアアセットを、受信するステップと、
前記1つまたは複数のシーンベースのメディアアセットを、前記クライアントデバイスにアクセス可能なメディアストアに記憶するステップと、をさらに含む、請求項7に記載の方法。
【請求項9】
請求項1から8のいずれか一項に記載の方法を実行する、コンピューティングデバイス
。
【請求項10】
コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
請求項1から8のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【国際調査報告】