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